yolo v4的辨識效能比 yolo v3還快。本篇說明如何在Windows 下將yolo v4的原始碼編譯成可在 Windows 10 可執行的 darknet.exe
環境安裝
Visual Studio 2019
請參照本人所寫的 VS簡介及安裝
CUDA Toolkit & cudnn
請參照本站編寫之 TensorFlow安裝
OpenCV
請到 https://opencv.org/releases/ 下載最新的Windows版本
解開後,將 opencv 目錄copy 到 c:\底下
然後在系統變數新增如下
變數名稱 : OpenCV_DIR
變數值 : C:\opencv\build
編譯Yolo V4
下載 Yolo V4 原始碼
請到 Yolo github下載原始碼,解開後的目錄為 darknet-master。為了方便管理,請在d:\之下新增yolo4目錄,然後將darknet-master 移到 d:\yolo4之下
copy cuda library
請將
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.x\extras\visual_studio_integration\MSBuildExtensions
目錄下的四個檔案,copy 到
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\BuildCustomizations ,
然後複製 CUDA 11.x.props及CUDA 11.x.targets二個檔案,並改名為 CUDA 11.1.props及CUDA 11.1.targets
無法開啟檔案 cudnn.lib
在編譯時,會出現找不到 cudnn.lib的錯誤訊息,請將
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\cudnn.lib copy 到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\lib\x64
編譯yolo v4
開啟Visual Studio 2019,選擇開啟專案,並開啟 d:\yolo4\darknet-master\build\darknet\darknet.sln專案,然後設定為 release及 x64版本,如下圖所示
然後按下 建置/建置方案,此時就會開始編譯。編譯完成後,在
d:\yolo4\darknet-master\build\darknet\x64 目錄下就會多出 darknet.exe這個執行檔了。
最後請將x64 copy 到d:\yolo4之下
copy 相關Library
1. 將C:\opencv\build\x64\vc15\bin\opencv_world455.dll copy 到 d:\yolo4\x64 目錄之下
2. 將C:\opencv\build\x64\vc15\bin\opencv_videoio_ffmpeg455_64.dll copy到 d:\yolo4\x64 目錄
3. 請到官網 https://github.com/AlexeyAB/darknet/releases/ 下載權重 yolov4.weights ,並 copy 到 d:\yolo4\x64目錄
上述紅色為OpenCv版本號,2022/02最新版本為4.5.5版本
偵測
偵測圖片
進入 command mode並進入 d:\yolo4\x64 目錄,輸入如下指令
#test為偵測圖片,demo為偵測影片
darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
然後再輸入照片的完整目錄,即可看到成果了。
偵測影片
一樣是進入 d:\yolo4\models 目錄,然後下達如下指令
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights test.mp4 -out_filename test1.mp4
致於辨識的效能,需視影片ROI(Region of Interest)的數量而定。如下的影片,在nVidia RTX3080Ti 顯卡的偵幅可達到27 fps 以上。如果使用 nVidia Geforce GTX 1050Ti,只能達到 7 fps左右。