更新日期2025/3/11
筆者使用windows11筆電MSI GS77 12UHS ,CPU為Intel(R) Core(TM) i9 ,GPU為GeForce GTX 3080 Ti 16GB。
Step1)安裝Visual Studio2022 Community(https://visualstudio.microsoft.com/zh-hant/downloads/)
Step2)安裝cuda、cudnn與opencv
cuda12.6.3(cuda_12.6.3_561.17_windows.exe) https://developer.nvidia.com/cuda-toolkit-archive
cudnn9.8.0(cudnn-windows-x86_64-9.8.0.87_cuda12-archive.zip) https://developer.nvidia.com/cudnn-downloads,需登入nvidia帳號進行下載。將cudnn解壓縮後的bin、include與lib資料夾,覆蓋C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6資料夾。
opencv4.5(opencv-4.5.4-vc14_vc15.exe) https://sourceforge.net/projects/opencvlibrary/files/4.5.4/opencv-4.5.4-vc14_vc15.exe/download
zlib(zlib123dllx64.zip) http://www.winimage.com/zLibDll/zlib123dllx64.zip 解壓縮後獲得zlibwapi.dll ,此連結已經失效,改用雲端硬碟分享zlibwapi.dll。將zlibwapi.dll複製到C:\Windows\system32\下,編譯好的darknet.exe執行時需要此函式庫。
Step3)驗證cuda與cudnn是否安裝完成
編輯系統環境變數,path中新增「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\bin」與「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6\libnvpp」。
在命名提示字元執行「nvcc -V」與「nvidia-smi」確認cuda與cudnn是否安裝完成,會顯示cuda版本為12.6。
Step4)使用指令「cmd」開啟命令提示字元。
Step4a)使用git從https://github.com/Microsoft/vcpkg.git下載程式碼
#git clone https://github.com/Microsoft/vcpkg.git
Step4b)切換到資料夾vcpkg,執行「 .\bootstrap-vcpkg.bat」
Step4c)執行「 .\vcpkg install darknet[full]:x64-windows」,下載所有套件的原始碼並重新編譯,執行時間約2.1小時。
Step5)下載yolov4.weights(https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights)到資料夾C:\vcpkg\installed\x64-windows\tools\darknet,該資料夾為編譯完成後執行檔darknet.exe所在位置。
Step6)開啟命令提示字元,切換到資料夾C:\vcpkg\installed\x64-windows\tools\darknet,執行「darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg 」可以辨識圖片data/dog.jpg,「Ctrl+C」中斷執行。
Step7)執行「darknet detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0 」開啟筆電攝影機進行即時辨識,MSI GS77側面USB槽附近有攝影機開關,請先啟用攝影機,再到MSI center開啟攝影機,「Ctrl+C」中斷執行。
Step7)執行「darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights input.mp4 -out_filename output.avi」,影片input.mp4輸入到yolov4辨識結果輸出到output.avi。影片來源https://mixkit.co/free-stock-video/crowds-of-people-cross-a-street-junction-4401/,辨識影片截圖如下。
註:執行「 .\vcpkg install darknet[full]:x64-windows」過程出現以下錯誤。
error: building ffmpeg:x64-windows failed with: BUILD_FAILED
發現防毒軟體將產生的test.exe視為病毒,暫時關閉防毒軟體的即時防護功能,再重新執行即可