Win10下部署VS+Qt+OpenCV+darknet(YOLO)整合環境

RabbitKeeper發表於2021-10-02

VS+Qt整合環境

  1. 下載VS與Qt並安裝。

    VS:官網連結
    Qt:下載連結

  2. 將Qt的bin目錄加入PATH路徑

    bin目錄舉例:D:\development\Qt\5.12.0\msvc2017_64\bin

  3. 下載VS對應版本的Qt擴充套件外掛,可以在VS的擴充套件商店下載也可以去網站下載然後安裝

    Qt Visual Studio Tools:下載連線
    字尾名為vsix可以直接安裝,如果是zip等壓縮檔案可以修改為vsix

  4. 安裝完成後開啟VS,在擴充套件->Qt VS Tools->Qt Options->Add,將Qt安裝路徑新增進來。

    如果第三步沒有將Qt加入PATH路徑的話這裡可能沒有可點選的選項
    安裝路徑舉例:D:\development\Qt\5.12.0\msvc2017_64

  5. 建立一個Qt新專案,如果建立成功就說明整合環境已經搭建完成。

    有幾種Qt新專案,如果一種不行就嘗試另一種,因為可能有未知的錯誤導致失敗

  6. 如果如上搭建完成但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中整合,具體原因暫未知。
  1. 下載OpenCV原始碼並解壓,下載並安裝CMake的帶GUI版本

    OpenCV:官網連結
    CMake:官網連線

  2. 使用CMakd構建OpenCV
    1. Where is the source code選擇OpenCV的sources目錄

      sources目錄舉例:D:/development/OpenCV/opencv/sources

    2. 在sources目錄下建立build資料夾,Where to build the binaries選擇該資料夾

      build目錄舉例:D:/development/OpenCV/opencv/sources/build

    3. 點選Configure生成配置列表

      如果有彈出CMakeSetup選項框的話:

      1. Specify the generator for this project選擇你所使用的VS版本
      2. Optional platform for generator選擇你所使用的平臺,預設X64
      3. 然後點Finish
    4. 在生成的配置列表中找到"BUILD_opencv_world"勾上,然後再點選Configure,完成後點選Generate,完成後點選Open Project。

      這樣做的好處就是能將OpenCV模組構建為一個庫(dll檔案),VS中方便新增

  3. 使用VS生成OpenCV
    1. 點選生成(Build)->批生成(Batch Build)
    2. 將"ALL_BUILD"與"INSTALL"全都勾上(有4個)
    3. 點選生成(Build)
  4. 將OpenCV dll檔案加入PATH環境變數,dll檔案就是上面的lib同級目錄下的bin目錄

    路徑舉例:D:\development\OpenCV\opencv\sources\build\install\x64\vc16\bin

  5. 配置VS+OpenCV環境
    1. 在專案->屬性中選擇VC++目錄,在包含目錄中新增include目錄,在庫目錄中新增lib目錄

      include目錄舉例:D:\development\OpenCV\opencv\build\include
      lib目錄舉例:D:\development\OpenCV\opencv\build\x64\vc15\lib

    2. 選擇連結器的輸入選項卡,在附加依賴項中將lib目錄下的兩個.lib檔案加入

      舉例:
      D:\development\OpenCV\opencv\build\x64\vc15\lib\opencv_world346.lib
      D:\development\OpenCV\opencv\build\x64\vc15\lib\opencv_world346d.lib

  6. 新建一個Qt檔案或者命令列應用,然後使用OpenCV的函式,如果不報錯說明環境搭建完成。

Darknet部署YOLO

  1. 去GitHub上下載Darknet的zip包或者clone原始碼,或者在gitee的國內倉庫下載,速度更快

    Darknet:GitHub倉庫地址gitee倉庫地址其一

  2. 下載CUDA以及cuDNN,要求CUDA>=10.2,cuDNN可用版本與CUDA一致,cnDNN要登入

    CUDA:官方地址
    cnDNN:官方地址

  3. CUDA安裝完成後開啟C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0將cnDNN的檔案解壓覆蓋
  4. 將Darknet原始碼中build目錄下的darknet.vcxproj檔案中的CUDA版本改為安裝的版本。

    darknet.vcxproj檔案路徑舉例:D:\development\Tools\darknet\build\darknet

  5. 使用CMake-GUI,將Darknet原始碼構建,設定好Where is the source code與Where to build the binaries(注意原始碼中已經有build資料夾,不要選擇該資料夾),點選Configure -> Finish(選項和上面一樣) -> Generate -> Open Project,開啟VS之後將Debug改為Release,並且選擇x64平臺,然後點選選單的生成 -> 生成解決方案,只要生成成功就說明環境已經搭建成功。
  6. 將darknet.exe加入PATH路徑,darknet.exe在生成資料夾的Release檔案裡,至此環境搭建已經完成

    路徑舉例:D:\development\Tools\darknet\newbuild\Release

  7. 如果在使用YOLO時提示CUDA Error:no kernel image is available for execution on the device,說明CUDA版本太高,不支援當前顯示卡,請降低版本。
  8. 如果在使用YOLO時提示找不到pthreadsCV2.dll,前往Darknet的3rdparty資料夾將pthreads.dll複製到C:\Windows\SysWOW64與C:\Windows\System32中

    pthreadsCV2.dll路徑舉例:D:\development\Tools\darknet\3rdparty\pthreads\bin

相關文章