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