最近新出了YOLOV4,我係統的從V1開始整理出稿,傳送門:
【YOLOv1原文+翻譯】You Only Look Once Unified, Real-Time Object Detection
【YOLOv2原文+翻譯】YOLO9000: Better, Faster, Stronger
【YOLOv3原文+翻譯】YOLOv3:An Incremental Improvement
【YOLOv4原文+翻譯】YOLOv4:Optimal Speed and Accuracy of Object Detection
python
實驗室大佬在Ubuntu16.04上輕鬆實現,我也來個Win10版的~
先上一張成功檢測的結果圖:
git
正文開始github
1 軟件安裝
個人軟件環境:WIN10,CUDA10.2,cuDNN7.6.5,python3.7,VS2019,OpenCV3.4.2
硬件環境:GTX2080Ti ×2,80G內存
工具
1.1 下載安裝NVIDIA顯卡驅動
設備管理器查看本身電腦的顯卡型號,而後進入NVIDIA驅動下載,下載對應硬件的驅動版本。安裝好後,把測試
C:\Program Files\NVIDIA Corporation\NVSMI
添加到環境變量的path中,而後CMD中輸入:ui
nvidia-smi
若是顯示下圖內容,證實驅動安裝成功:
spa
1.2 下載安裝CUDA
CUDA官網已到11.0版本,我建議用10.2版本。
傳送門:各個版本的CUDA下載
點擊
CUDA Toolkit 10.2 (Nov 2019)下載
建議默認路徑安裝。
安裝時勾選Visual Studio Integration
.net
安裝後配置環境變量
計算機上點右鍵,打開屬性->高級系統設置->環境變量,能夠看到系統中多了CUDA_PATH和 CUDA_PATH_V10_2兩個環境變量。
翻譯
接下來,還要在系統中添加如下幾個環境變量(默認安裝路徑):
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2
3d
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2 CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 CUDA_BIN_PATH = %CUDA_PATH%\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64 CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
而後,在系統變量 Path 的末尾添加: %CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
再添加以下5條(默認安裝路徑):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\CUPTI\lib64 C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64 C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\common\lib\x64
CUDA測試——CMD執行:
nvcc -V
1.3 下載安裝cuDNN
cuDNN官方下載地址
須要登陸帳號
點擊Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2
沒有帳號能夠在個人百度網盤下載,提取碼是:lk48
cuDNN下載好後直接將其解開壓縮包,而後須要將bin,include,lib中的文件分別複製粘貼到CUDA相對應的文件夾下
1.4 下載安裝OpenCV
OpenCV官網下載3.4.2版本(通常不高於4.0便可)
下載後運行exe文件(解壓)到相應目錄下:
C:\Program Files (x86)\opencv
在系統變量 Path 的末尾添加:
C:\Program Files (x86)\opencv\build\x64\vc15\bin
1.5 下載安裝VS2019
進入VS官網下載社區版
走流程安裝便可
2 配置YOLOv4環境
咱們已經實現了準備工做:win10+CUDA10.2+cuDNN7.6.5+VS2019+OpenCV3.4.2
2.1 下載YOLOv4
YOLOv4官方網址下載
下載到本地,解壓。我將darknet-master重命名爲darknet,保存至D盤
2.1 複製OpenCV文件
將文件夾
C:\Program Files (x86)\opencv\build\x64\vc15\bin
的兩個dll文件: opencv_ffmpeg340_64.dll
和opencv_world340.dll
複製到
D:\darknet\build\darknet\x64
2.2 VS2019項目配置
用VS2019打開D:\darknet\build\darknet
下darknet.sln文件
有可能VS2019要走一下以下流程:
重啓電腦。
右鍵對darknet.sln進行配置:
1.選擇release和x64
2.項目 ->屬性 注意一樣應選release和x64,同時檢查注意檢查Windows SDK版本和平臺工具集
3.修改包含目錄和庫目錄
添加opencv3.4的包含目錄和庫目錄(按照本身的opencv3.4的路徑)
包含目錄:
C:\Program Files (x86)\opencv\build\include C:\Program Files (x86)\opencv\build\include\opencv C:\Program Files (x86)\opencv\build\include\opencv2
庫目錄:
C:\Program Files (x86)\opencv\build\x64\vc14\lib
4.附加依賴項
添加附加依賴項(按照本身的opencv3.4的路徑)
C:\Program Files (x86)\opencv\build\x64\vc14\lib\opencv_world340.lib
須要添加的是opencv_world342.lib
2.3 修改darknet.vcxproj
D:\darknet\build\darknet下,右鍵,能夠txt打開
ctrl+f搜索 10.0 所有改爲 10.2 (由於咱們的CUDA版本是10.2)
2.4 拷貝CUDA文件
1.將NVIDIA CUDA的安裝程序(.exe文件)數據解壓到一個指定文件夾中(最好是新建一個文件夾CUDA,解壓後會出現不少文件,這樣方便查找)
2.將第一個路徑下的文件直接拷貝到第二個路徑下的文件夾中
D:\CUDA\VisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations
2.5 下載YOLOv4預訓練權重文件
直接點擊個人百度網盤進行下載,提取碼是:0sti
下載後拷貝到
D:\darknet\build\darknet\x64
3 目標檢測
以上已經完成了全部環境的配置,可使用yolov4.weights實現目標檢測了,方法以下:
在D:\darknet\build\darknet\x64\
目錄下CMD執行:
darknet.exe detector test cfg\coco.data cfg\yolov4.cfg yolov4.weights data\dog.jpg
對圖像進行目標檢測;
CMD執行:
darknet.exe detector demo cfg\coco.data cfg\yolov4.cfg yolov4.weights data\001.mp4
對視頻進行目標檢測。
其中,待檢測的圖片或者視頻放在如下路徑:
D:\darknet\build\darknet\x64\data