1. 程式人生 > 實用技巧 >Win10+YOLOv3完整安裝過程(親測可執行)

Win10+YOLOv3完整安裝過程(親測可執行)

最近了解並嘗試在Win10安裝YOLOv3,參考了十幾篇文章,發現每個人都有自己的安裝方式,最初嘗試用cmake編譯,雖然安裝完成,但無法使用GPU,坑非常多,經2天努力終於安裝成功,分享並記錄自己的安裝過程,供大家參考。

系統:Win10

顯示卡:GeForce RTX2070 with Max-Q Design

其它:CUDA10.2,cuDNN7.6.5,VS2019,OpenCV3.4.0(opencv版本不能高於3.4.0)

1、顯示卡驅動下載和安裝

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

選擇自定義安裝:

登入賬戶,沒有就註冊一個:

點選“跳過”:

確認“NVIDIA Studio Driver”安裝成功。

2、VS2019下載和安裝

切記,先安裝VS2019,再安裝CUDA。

微軟官方下載VS2019社群版

選擇“.Net桌面開發”、“使用C++的桌面開發”、“通用Windwos平臺開發”三項,點選右下角安裝:

安裝成功後,根據提示重啟電腦。

3、CUDA的下載和安裝

點選:https://developer.nvidia.com/cuda-toolkit-archive,選擇cuda10.2版本

下載完成後,雙擊開啟,開始安裝。

選擇自定義安裝:

全部勾選,點選下一步:

使用預設的安裝路徑:

安裝成功後,會看到CUDA向已安裝的Visual Studio2019中寫入了Nsight工具,所以我才強調必須先安裝CS2019,再安裝CUDA。

3.1、配置CUDA環境變數

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

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

變數名:CUDA_BIN_PATH
變數值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin
變數名:CUDA_LIB_PATH
變數值:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
變數名:CUDA_SDK_BIN_PATH
變數值:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\bin\win64
變數名:CUDA_SDK_LIB_PATH
變數值:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2\common\lib\x64
變數名:CUDA_SDK_PATH
變數值:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.2

根據你CUDA的實際安裝路徑配置變數值,但我建議你安裝CUDA時使用預設的路徑,避免出現各種奇葩問題。

然後在系統變數中找到Path,雙擊開啟並加入以下變數值:

%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;
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

然後開啟控制檯,輸入:nvcc -V

如果輸出CUDA版本等相關資訊,說明CUDA安裝成功。

4、CUDNN下載和安裝

點選:https://developer.nvidia.com/rdp/cudnn-download 註冊個賬戶,然後下載Download cuDNN v7.6.5 (November 18th, 2019), for CUDA 10.2

下載完成後,解壓cudnn-10.2-windows10-x64-v7.6.5.32.zip,將解壓後的檔案,覆蓋到CUDA的安裝目錄下,如圖:

5、OpenCV下載和安裝

點選:https://opencv.org/opencv-3-4/ 下載3.4.0版本的OpenCV。

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

然後在環境變數Path中加入以下值:

C:\opencv\build\x64\vc15\bin

6、YOLO下載和編譯

點選https://github.com/AlexeyAB/darknet 下載YOLO。

下載到本地後,解壓,將darknet-master重新命名為darknet,儲存到D盤。

6.1、複製編譯依賴檔案

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

進入D:\darknet\build\darknet目錄,用VS2019開啟darknet.sln,首次開啟可能會出現以下錯誤:

沒關係,確定後,關閉VS2019,重新用VS2019開啟darknet.sln即可,開啟後此處選擇Release X64。

右鍵darknet工程,選擇屬性。

將“常規”下的Windows SDK版本選為10.0,將平臺工具集選為Visual Studio2019(v142),點選應用。

然後點選VC++目錄,編輯包含目錄,將以下路徑新增到包含目錄中:

C:\opencv\build\include\opencv2
C:\opencv\build\include\opencv
C:\opencv\build\include

如果你的opencv路徑和我不一樣,請修改成你自己的路徑。

然後點選庫目錄,把以下內容新增到庫目錄中:

C:\opencv\build\x64\vc14\lib

然後點選連結器->輸入,在附加依賴項中新增:

C:\opencv\build\x64\vc14\lib\opencv_world340.lib

然後點選確定儲存,並退出VS2019。

用記事本或文字編輯器開啟darknet.vcxproj。

將CUDA 10.0,替換為CUDA 10.2,共兩處

用VS2019開啟darknet.sln,再次確保此處為Release X64,然後右鍵點選專案選擇生成。

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

6.2、下載YOLOv3預訓練權重檔案

進入https://pjreddie.com/media/files/yolov3.weights 下載yolov3.weights檔案,再將yolov3.weights放在D:\darknet\build\darknet\x64目錄下。

如果下載慢,選擇迅雷下載。

6.3、執行YOLO

控制檯進入D:\darknet\build\darknet\x64目錄,輸入命令:

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

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

7、注意事項

如果先安裝的CUDA,後安裝的VS2019,可能會出現無法使用GPU進行訓練和識別的問題,可以將CUDA的安裝程式“cuda_10.2.89_441.22_win10.exe”解壓,然後在解壓後的資料夾中找到CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions目錄,將目錄中的四個檔案複製到C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations目錄下,然後重新編譯工程。