从OpenCV 4.2.0开始 DNN模块支持CUDA
我自己测试过支持CUDA的DNN模块检测yolov3模型比之前快了10倍以上
环境:Win10 GTX1060 CUDA10.2 Visual Studio 2019 Cmake3.7.1
用VS2019一定需要安装CUDA10.2版本和相应版本的cudnn
国内用码云下载速度很快
OpenCV 4.3.0:https://gitee.com/mirrors/opencv/releases
OpenCV_contrib 4.3.0:https://gitee.com/mirrors/opencv_contrib/releases
在Cmake过程中会有一些国内的网下载不了的东西,我存在百度网盘上了,缺少这些就不能成功,把从网盘下载的.cache文件夹放入opencv文件夹即可
链接:https://pan.baidu.com/s/1W_wPPwcwZPDhKPmCzkrFiA
提取码:ysiw

opencv 构造yuyv opencv cudnn_OpenCV

把opencv解压到E盘,把opencv_contrib解压到opencv文件夹中,在opencv文件夹中创建build文件夹

opencv 构造yuyv opencv cudnn_OpenCV_02


设置源文件夹和目标文件夹

opencv 构造yuyv opencv cudnn_CUDA_03


然后点击Configure

opencv 构造yuyv opencv cudnn_OpenCV_04


选择Visual Studio 2019和x64,点击Finish

opencv 构造yuyv opencv cudnn_CUDA_05


这个错误不用管

opencv 构造yuyv opencv cudnn_OpenCV_06


opencv 构造yuyv opencv cudnn_opencv_07

勾选BUILD_opencv_world,OPENCV_DNN_CUDA,WITH_CUDA三项

opencv 构造yuyv opencv cudnn_OpenCV_08


OPENCV_EXTRA_MODULES_PATH选择opencv_contrib文件夹中的modules文件夹

然后再次点击Configure

opencv 构造yuyv opencv cudnn_opencv 构造yuyv_09


完成后点击Generate,再点击Open Project(用VS2019打开OpenCV项目)或者在build文件夹中用VS2019打开OpenCV.sln文件

opencv 构造yuyv opencv cudnn_CUDA_10


我选择的是Release,点击生成解决方案

opencv 构造yuyv opencv cudnn_神经网络_11


等待两个小时左右,时间由CPU性能决定

opencv 构造yuyv opencv cudnn_神经网络_12


生成成功,然后点击INSTALL

opencv 构造yuyv opencv cudnn_神经网络_13


安装成功,然后配置OpenCV,和普通安装配置OpenCV差不多

opencv 构造yuyv opencv cudnn_opencv 构造yuyv_14


右键点击此电脑,选择属性

opencv 构造yuyv opencv cudnn_神经网络_15


选择高级系统设置

环境变量->系统变量Path->加入build目录中 opencv\build\install\x64\vc16\bin

环境变量->系统变量Path->加入build目录中 opencv\build\install\x64\vc16\bin

opencv 构造yuyv opencv cudnn_CUDA_17


用VS2019创建项目,在属性管理器右键属性中加入包含目录和库目录

opencv 构造yuyv opencv cudnn_神经网络_18


在链接器的输入中加入依赖项opencv_world430.lib,只适应于Release模式(如果需要Debug模式,要用Debug模式生成,安装),然后点击应用。

现在就可以尝试CUDA加速的DNN深度学习模型检测了