首頁 > 軟體

在VS2019環境下使用Opencv呼叫GPU版本YOLOv4演演算法的詳細過程

2022-10-26 14:02:17

前言

隨著人工智慧的不斷髮展,機器學習這門技術也越來越重要,很多人都開啟了學習機器學習,本文就介紹了windows下YOLO的環境搭建流程。

一、相關知識儲備

1. YOLO是什麼?

  • YOLO是一種實時目標檢測演演算法,它是第一個平衡所提供檢測的質量和速度的演演算法。通常,這類最強大的模型,都是建立在折積神經網路的基礎上,這次也不例外。所謂「目標檢測模型」,我們的意思是,我們不僅可以用它來找出給定照片中存在的物件,還可以用它來指示它們的位置和數量。除其他外,這種模型在機器人和汽車工業中都有應用,因此檢測速度至關重要。自2015年以來,該演演算法已經進行了三次迭代,還有為

TinyYOLO 等移動裝置設計的變體。行動版本的精度有限,但計算要求也較低,執行速度更快。

2.CPU&GPU

  • CPU(Central Processing

Unit)是指中央處理器,決定著手機的執行速度。一般來說晶片數位越大代表著型號越新,因此我們在選擇CPU的時候應該選擇名稱中所帶數位較大的。

  • GPU(Graphics Processing

Unit)是指影象處理器,在手機上用於遊戲畫面的渲染,通常GPU的型號越新,頻率越高,意味著遊戲的畫面展示速度越快。

  • CPU和GPU二者對於使用者來說是缺一不可,前者負責計算資料,後者負責顯示內容,構造後端運算,前端顯示的前後搭配。

3.什麼是CUDA

  • CUDA(Compute Unified Device Architecture),顯示卡廠商NVidia推出的運算平臺。CUDA™是一種由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題。它包含了CUDA指令集架構(ISA)以及GPU內部的平行計算引擎。
  • 通過CUDA架構,視訊播放軟體可以充分挖掘NVIDIA系列顯示卡的GPU平行計算能力,輕鬆進行高清影片的播放,與軟體高清解碼相比,CPU佔用可以下降一半以上。當然,CUDA的應用領域絕不僅僅是視訊、圖形、遊戲,包括各種3D和建模,醫療、能源、科學研究等,到處都可見到這種技術架構的應用

4.什麼是cuDNN

  • NVIDIA cuDNN是用於深度神經網路的GPU加速庫。它強調效能、易用性和低記憶體開銷。NVIDIA

cuDNN可以整合到更高階別的機器學習框架中,如加州大學伯克利分校的流行caffe軟體。簡單的,插入式設計可以讓開發人員專注於設計和實現神經網路模型,而不是調整效能,同時還可以在GPU上實現高效能現代平行計算。

5.什麼是OpenCV

  • OpenCV是一個基於Apache2.0許可發行的跨平臺計算機視覺和機器學習軟體庫,可以在Linux、Windows、Android和Mac

OS作業系統上執行。它輕量級而且高效——由一系列 C 函數和少量 C++
類函數構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了很多影象處理和計算機視覺方面的通用演演算法。

二、系統與環境要求

1.硬體環境

  • Windows10系統+GPU顯示卡

2.軟體環境

  • CUDA,cuDNN,VS2019,OpenCV

三、相關環境下載

1.NVIDIA下載驅動

https://developer.nvidia.com/cuda-10.1-download-archive-update2

開啟NVIDIA官網驅動程式下載頁面,選擇適合你顯示卡的驅動,下載並安裝。

2.CUDNN下載

點選:https://developer.nvidia.com/rdp/cudnn-download 註冊個賬戶,然後下載對應版本加速庫

3.VS2019下載

https://visualstudio.microsoft.com/zh-hans/downloads/

4.opencv下載

https://opencv.org/opencv-4-5-0/

四、安裝與設定

1.顯示卡驅動安裝

選擇自定義安裝:

全部勾選,點選下一步:

使用預設的安裝路徑:

2.設定CUDA環境變數

右鍵“我的電腦”選擇屬性,點選“高階系統設定”->“環境變數”。

可以看到CUDA預設寫入了2條環境變數資訊,但這些還不夠,點選新建,新增以下環境變數:

 

根據你CUDA的實際安裝路徑設定變數值,但我建議你安裝CUDA時使用預設的路徑,避免出現各種奇葩問題。
然後在系統變數中找到Path,雙擊開啟並加入以下變數值:

然後開啟控制檯,輸入:nvcc -V
如果輸出CUDA版本等相關資訊,說明CUDA安裝成功。

3.CUDNN安裝

將解壓後的檔案,覆蓋到CUDA的安裝目錄下

4.OpenCV安裝

下載完成後雙擊開啟,該exe是個自解壓程式,選擇一個解壓目錄,解壓完成後,將解壓出來的opencv資料夾複製到C槽根目錄下。

五、YOLO下載和編譯

1.YOLO下載

點選 https://github.com/AlexeyAB/darknet

下載YOLO。

下載到本地後,解壓,將darknet-master重新命名為darknet

2.複製編譯依賴檔案

將c:/opencv/build/x64/vc15/bin目錄下的opencv_ffmpeg340_64.dll、opencv_world340.dll複製到D:darknetbuilddarknetx64目錄下

3.修改darknet.vcxproj檔案

開啟檔案找到兩處有CUDA版本號的地方(一般55 & 307行附近)將這裡的10.1改為自己的版本號,然後儲存

4.YOLO編譯

用vs2019開啟 darknebuilddarknetdarknet.sln 確定彈出的升級視窗,設定為Release,x64編譯 生成可執行檔案

5.YOLO+VS環境設定

右鍵darknet工程,選擇屬性。
然後點選VC++目錄,編輯包含目錄,將以下路徑新增到包含目錄中

 

點選庫目錄,把以下內容新增到庫目錄中。
點選連結器->輸入,在附加依賴項中新增

 

編譯過程可能會出現很多警告,但只要最終提示生成:成功1個,失敗0個,則表示編譯成功。

六、YOLO環境測試

windows+r,輸入cmd,進入自己對應的build/darknet/x64下
執行

darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

如果出現CUDA版本資訊,說明YOLO可以通過GPU來進行目標識別了。

總結

以上就是今天要講的內容,本文僅僅簡單介紹瞭如何在VS2019環境下使用Opencv呼叫GPU版本YOLOv4演演算法。

到此這篇關於如何在VS2019環境下使用Opencv呼叫GPU版本YOLOv4演演算法的文章就介紹到這了,更多相關Opencv呼叫GPU版本YOLOv4演演算法內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com