OpenCV4.3.0版本DNN模块使用CUDA加速教程(Window10&VS2019)


精彩预告:

  • 从源码编译到程序测试,详细介绍了DNN模块使用CUDA加速的具体细节;
  • 本文所附链接均可一步到位获得实用资源。

部分配图来源于网络,请仔细核对,根据自己的情况修改。

1. 准备

1.1. 系统及硬件确认

此处所列仅代表测试机信息,请根据实际对照进行。
系统:Windows 10 专业版 64位
显卡型号:GTX 1660Ti

1.2. 资源下载

Tips:请根据显卡型号确定需要安装的cuda版本,根据cuda版本确认cudnn版本。
在这里插入图片描述
(1) 编译环境:VS2019 Community(网址:https://visualstudio.microsoft.com/zh-hans/
(2) 编译器:CMake(最新版)(网址:https://cmake.org/
(3) opencv源码和安装包:opencv4.3.0(网址:https://opencv.org/releases/
(4) opencv-contrib:opencv_contrib4.3.0(网址:https://github.com/opencv/opencv_contrib/releases/tag/4.3.0
(5) cuda:cuda 10.0.130(网址:https://developer.nvidia.com/cuda-toolkit-archive
(6) cudnn:cudnn-10.0-windows10-x64-v7.6.4.38(网址:https://developer.nvidia.com/rdp/cudnn-archive

1.3. 安装

以下参考安装步骤仅作为教程使用,请以“1.2资源下载”版本为准。

1.3.1. 安装VS2019

请参考:vs2019安装及简单处理(详细的很)(网址:https://blog.csdn.net/YSJ367635984/article/details/104648941/

1.3.2. 安装CMake

请参考:Win10下安装CMake3.14.2以及CMake使用教程(网址:https://blog.csdn.net/qq_41895190/article/details/89299988

1.3.3. 安装cuda

安装过程中会有“检查系统兼容性”,所以安装前要注意显卡与cuda版本要匹配。
在这里插入图片描述
请参考:Win10安装CUDA10和cuDNN(网址:https://blog.csdn.net/qq_37296487/article/details/83028394

2. 编译OenCV

2.1. 整理文件目录

将“opencv_contrib-4.3.0”源码拷贝到“opencv-4.3.0”文件夹内,创建“OpenCV430_Build_2019"用于存放编译文件。
在这里插入图片描述

2.2. 设置CMake

打开CMake,选择源码路径,以及生成路径,选择对应VS版本。开始第一次Configue。
在这里插入图片描述

2.3. 修改下载路径

第一次configure完成之后,因一些第三方文件网络限制,无法下载,会出现提示。
此时,应该根据提示信息修改下载路径。
请参考:部分文件联网下载失败导致opencv过不了cmake解决方法(网址:https://blog.csdn.net/weixin_42386056/article/details/105576333

2.4. 修改配置

中间需要多次点击”configure“。
(1) BUILD_opencv_world
勾选 BUILD_opencv_world:此项的目的是生成一个dll文件,比如:opencv_world430d.dll。
在这里插入图片描述
(2) OPENCV_DNN_CUDA
勾选OPENCV_DNN_CUDA。
在这里插入图片描述
(3) OPENCV_ENABLE_NOFREE
勾选 OPENCV_ENABLE_NOFREE:此项目的是编译contrib模块。
在这里插入图片描述
(4) OPENCV_EXTRA_MODULES_PATH
设置OPENCV_EXTRA_MODULES_PATH:设置contrib模块的目录:(注意一定到modules这个目录)。
在这里插入图片描述
(5) WITH_CUDA
勾选WITH_CUDA。
(6) CUDA_ARCH_BIN
将该项中版本小于5.3的都去掉。如果查不到此项,请configure一次。
(7) WITH_CUDNN
勾选 WITH_CUDNN。如果查不到此项,请configure一次。
(8) CUDA_FAST_MATH
勾选CUDA_FAST_MATH。
(9) python相关组件
如果不使用python就将如下python对应项的”√“去掉。(因版本不同,组件名称不一定一样,请根据实际选择)
在这里插入图片描述(10) 其他
其他的选项就根据自己喜好设定,比如test模块等。

2.5. 生成及信息核对

以上经过多次点击”Configure“,确定没有任何错误提示信息。
等待Configure完成之后,查看是否检测到了CUDA和cuDNN,都出现YES之后,说明没有问题。如果没有检测到的话,需要确认是否CUDA和cuDNN版本正确,否则后面的编译将不会编译CUDA模块,白白浪费时间。确认之后,点击Generate。
在这里插入图片描述

2.6. 工程编译

2.6.1. ALL_BUILD

点击“Open Project”打开工程,在Release模式下右键点击ALL_BUILD,生成,时间较长(戴尔G3 i7处理器耗时约100分钟)。
在这里插入图片描述

2.6.2 INSTALL

生成之后,右击INSTALL->仅用于项目->仅生成INSTALL。
在这里插入图片描述
到这边就编译好了,Debug版本同理

3. 测试

3.1. 配置

将“OpenCV430_Build_2019”文件夹拷贝到一个地方。
注意:拷贝这一堆是不是觉得很大,其实只需要将“install”里面的内容拷贝、配置即可。
(1) 添加环境变量
在这里插入图片描述
(2) 在测试代码中配置包含目录、库目录
在这里插入图片描述
在这里插入图片描述
(3) 添加附加依赖项,opencv_world430d.lib。
在这里插入图片描述
(4) 拷贝opencv_videoio_ffmpeg430_64.dll和opencv_world430d.dll到“C:\Windows\System32”下。
在这里插入图片描述

3.2. 识别

3.2.1. 程序

以Mask R-CNN为例,对GPU加速运算效果作个对比。
只使用cpu运算对应的程序为绿框内,使用GPU加速对应的程序为红框内。
在这里插入图片描述

3.2.2. 识别结果对比

只使用cpu计算的耗时为10091ms(约10s)。
在这里插入图片描述
使用GPU加速的耗时为799ms(约0.8s)。
在这里插入图片描述
同样条件下,GPU加速运算耗时仅是cpu运算耗时的7.92%,满足大部分实时性要求一般的场合。

  • 10
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值