Win10下部署VS+Qt+OpenCV+darknet(YOLO)集成环境

  • 2021 年 10 月 2 日
  • 筆記

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