Win10下部署VS+Qt+OpenCV+darknet(YOLO)整合環境
VS+Qt整合環境
- 下載VS與Qt並安裝。
- 將Qt的bin目錄加入PATH路徑
bin目錄舉例:D:\development\Qt\5.12.0\msvc2017_64\bin
- 下載VS對應版本的Qt擴充套件外掛,可以在VS的擴充套件商店下載也可以去網站下載然後安裝
Qt Visual Studio Tools:下載連線
字尾名為vsix可以直接安裝,如果是zip等壓縮檔案可以修改為vsix - 安裝完成後開啟VS,在擴充套件->Qt VS Tools->Qt Options->Add,將Qt安裝路徑新增進來。
如果第三步沒有將Qt加入PATH路徑的話這裡可能沒有可點選的選項
安裝路徑舉例:D:\development\Qt\5.12.0\msvc2017_64 - 建立一個Qt新專案,如果建立成功就說明整合環境已經搭建完成。
有幾種Qt新專案,如果一種不行就嘗試另一種,因為可能有未知的錯誤導致失敗
- 如果如上搭建完成但include匯入包時顯示無包,則在專案->屬性->VC++目錄,將Qt的include目錄加入包含目錄,將Qt的lib目錄加入庫目錄
include目錄舉例:D:\development\Qt\5.12.0\msvc2017_64\include
lib目錄舉例:D:\development\Qt\5.12.0\msvc2017_64\lib
VS+OpenCV整合環境
注意:通過這個方式搭建的環境無法在Qt Creator中整合,具體原因暫未知。
- 下載OpenCV原始碼並解壓,下載並安裝CMake的帶GUI版本
- 使用CMakd構建OpenCV
- Where is the source code選擇OpenCV的sources目錄
sources目錄舉例:D:/development/OpenCV/opencv/sources
- 在sources目錄下建立build資料夾,Where to build the binaries選擇該資料夾
build目錄舉例:D:/development/OpenCV/opencv/sources/build
- 點選Configure生成配置列表
如果有彈出CMakeSetup選項框的話:
- Specify the generator for this project選擇你所使用的VS版本
- Optional platform for generator選擇你所使用的平臺,預設X64
- 然後點Finish
- 在生成的配置列表中找到"BUILD_opencv_world"勾上,然後再點選Configure,完成後點選Generate,完成後點選Open Project。
這樣做的好處就是能將OpenCV模組構建為一個庫(dll檔案),VS中方便新增
- Where is the source code選擇OpenCV的sources目錄
- 使用VS生成OpenCV
- 點選生成(Build)->批生成(Batch Build)
- 將"ALL_BUILD"與"INSTALL"全都勾上(有4個)
- 點選生成(Build)
- 將OpenCV dll檔案加入PATH環境變數,dll檔案就是上面的lib同級目錄下的bin目錄
路徑舉例:D:\development\OpenCV\opencv\sources\build\install\x64\vc16\bin
- 配置VS+OpenCV環境
- 在專案->屬性中選擇VC++目錄,在包含目錄中新增include目錄,在庫目錄中新增lib目錄
include目錄舉例:D:\development\OpenCV\opencv\build\include
lib目錄舉例:D:\development\OpenCV\opencv\build\x64\vc15\lib - 選擇連結器的輸入選項卡,在附加依賴項中將lib目錄下的兩個.lib檔案加入
舉例:
D:\development\OpenCV\opencv\build\x64\vc15\lib\opencv_world346.lib
D:\development\OpenCV\opencv\build\x64\vc15\lib\opencv_world346d.lib
- 在專案->屬性中選擇VC++目錄,在包含目錄中新增include目錄,在庫目錄中新增lib目錄
- 新建一個Qt檔案或者命令列應用,然後使用OpenCV的函式,如果不報錯說明環境搭建完成。
Darknet部署YOLO
- 去GitHub上下載Darknet的zip包或者clone原始碼,或者在gitee的國內倉庫下載,速度更快
Darknet:GitHub倉庫地址、gitee倉庫地址其一
- 下載CUDA以及cuDNN,要求CUDA>=10.2,cuDNN可用版本與CUDA一致,cnDNN要登入
- CUDA安裝完成後開啟C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0將cnDNN的檔案解壓覆蓋
- 將Darknet原始碼中build目錄下的darknet.vcxproj檔案中的CUDA版本改為安裝的版本。
darknet.vcxproj檔案路徑舉例:D:\development\Tools\darknet\build\darknet
- 使用CMake-GUI,將Darknet原始碼構建,設定好Where is the source code與Where to build the binaries(注意原始碼中已經有build資料夾,不要選擇該資料夾),點選Configure -> Finish(選項和上面一樣) -> Generate-> Open Project,開啟VS之後將Debug改為Release,並且選擇x64平臺,然後點選選單的生成 -> 生成解決方案,只要生成成功就說明環境已經搭建成功。
- 將darknet.exe加入PATH路徑,darknet.exe在生成資料夾的Release檔案裡,至此環境搭建已經完成
路徑舉例:D:\development\Tools\darknet\newbuild\Release
- 如果在使用YOLO時提示CUDA Error:no kernel image is available for execution on the device,說明CUDA版本太高,不支援當前顯示卡,請降低版本。
- 如果在使用YOLO時提示找不到pthreadsCV2.dll,前往Darknet的3rdparty資料夾將pthreads.dll複製到C:\Windows\SysWOW64與C:\Windows\System32中
pthreadsCV2.dll路徑舉例:D:\development\Tools\darknet\3rdparty\pthreads\bin