cuda 版本_OpenCV4.2 版本 DNN模块使用CUDA加速教程 VS2017 Window10

16e3388214b73973ae5d76501fd17316.gif

点击上方蓝字关注我们

微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识

作者博客:https://blog.csdn.net/weixin_39928773

CUDA安装与配置

根据自己的GPU 选择合适的版本,我的是RTX2080Ti,选择CUDA10.0版本,按照默认地址安装就好,安装完之后看是否有环境变量。没有的话自己加上。

5b5f87fb9255751a9f21ffec62352774.png

以及,

145462cf7a384f916a64fa58c881e10f.png

423392bf7155693b7124eb2dd80b49a0.png

cuDNN

cuDNN一定要7.5版本以上,否则CMake将无法识别出cuDNN路径。
打开下载好的cuDNN,如下图

15724d002ef8e871f15917ca9c8e955e.png

将cuDNN中bin、include、lib文件夹中的文件放入对应CUDA路径下的文件夹中

3e03f633f209d99325c456d3d2aab7b4.png

CMake编译

打开CMake,选择源码路径,以及生成路径,选择对应VS版本。开始第一次Configue。

db009bdd934e1d7d36ba4c0990f1c6d6.png

其中会下载一些第三方文件,可以自行下载,否则速度较慢。第一次configure完成之后,勾选BUILD_opencv_world.

f2e9c4a2d88bf033a46528bfb5100553.png

以及,勾选OPENCV_DNN_CUDA,选择解压好的opencv_contrib中modules路径添加进来。

86de5f3b26e10e37ae7ff71b545dd433.png

勾选WITH_CUDA。

456dbb79faabde316ad6b554d95fd4e9.png

进行第二次Configure,Configure完成之后可能会报错,此时不管他,根据GPU算力表选择合适的CUDA_ARCH_BIN值,如我的是RTX2080Ti,则将CUDA_ARCH_BIN其余值删除,只留下7.5。然后勾选CUDA_FAST_MATH,点击Configure。

ac5d5ae1d0add0fd62b8d4ad6561a5ed.png

3d8c066821ef4b946b572956b48de2da.png

等待Configure完成之后,查看是否检测到了CUDA和cuDNN,都出现YES之后,说明没有问题。这边是一个坑,需要注意,如果没有检测到的话,需要确认是否CUDA和cuDNN版本正确,否则后面的编译将不会编译CUDA模块,白白浪费时间。确认之后,点击Generate。

3513b3a646b21aa8f2925f5a33809c42.png

点击Open Project打开工程,在Release模式下右键点击ALL_BUILD,生成,时间较长

0a186392173f55259f58ac1750f66dce.png

生成之后,右击INSTALL->仅用于项目->仅生成INSTALL

e436f01d72f1d1c109b64d85cb33cdc5.png

到这边就编译好了,Debug版本同理

运行测试

添加环境变量。

fd35ad89bfb79663815b8ae3e5915e5d.png

在测试代码中配置包含目录和库目录,添加附加依赖项,opencv_world420.lib

d7905c864d9ec19be5a723342d829351.png

43a6364f4d83100e630c4898dbb7e11a.png

277d61fd7e8712e85cba041dd098cdf1.png

由于项目的关系,代码就不贴出来了,官方提供了一份代码示例。

在我自己的项目上运行,首先是CPU版本(I9-9900K),推理时间在22.45ms。

2850457ac8647dd0aac3979693084c43.png

CUDA版本(RTX 2080Ti),推理时间是2.16ms。提升了10倍左右。

f18bbd30bcb5ee312629e373fd0265f2.png

顺便贴一个OpenVINO推理引擎的运行效率,大概是8.17ms左右

553dacddcb1c3c814a69d926162852d7.png

总结

opencv和opencv_contrib版本要对应

在下载部分第三方库时也要找好对应版本。

勾选WITH_CUDA 、OPENCV_DNN_CUDA。

一定要查看cuDNN版本是否正确,否则几个小时的编译将是浪费时间。

最好使用VS2017版本,VS2015测试出现异常,编译失败。

推荐阅读

OpenCV加速与优化,让代码执行速度飞起来

详解对象检测网络性能评价指标mAP计算

OpenCV中图像二值化函数调用几个关键点详解

OpenCV中如何提取不规则ROI区域

对象检测新趋势anchor-free模型之CenterNet

anchor-free对象检测网络CornerNet详解

升级到tensorflow2.0,我整个人都不好了

CPU上跑深度学习模型,FPS也可以达100帧

OpenVINO深度学习推理框架 开发技术系列文章汇总

OpenCV4 | 如何一行代码搞定SSD模型推理与结果解析

de1a83d487068267a8b1ad85b84351d3.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值