Win10下部署VS+Qt+OpenCV+darknet(YOLO)集成環境
- 2021 年 10 月 2 日
- 筆記
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