专栏首页贾志刚-OpenCV学堂OpenCV4.2 版本 DNN模块使用CUDA加速教程 VS2017 Window10

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

CUDA安装与配置

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

以及,

cuDNN

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

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

CMake编译

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

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

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

勾选WITH_CUDA。

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

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

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

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

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

运行测试

添加环境变量。

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

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

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

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

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

总结

opencv和opencv_contrib版本要对应

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

勾选WITH_CUDA 、OPENCV_DNN_CUDA。

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

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

本文分享自微信公众号 - OpenCV学堂(CVSCHOOL),作者:小庄头发很多

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 逆天啦!OpenCV4.1.2 CPU上人脸检测居然能跑到700+ FPS

    初学OpenCV开发,配置开发环境,大家都一般都是配置为debug模式,其实时间一长就会给大家带来很多困扰,就是发现OpenCV速度比较慢,感觉有点不真实。其实...

    OpenCV学堂
  • 手撕 | 深度神经网络卷积层计算加速与优化

    最后一页没画,但是基本上就是Filter Matrix乘以Feature Matrix的转置,得到输出矩阵Cout x (H x W),就可以解释为输出的三维B...

    OpenCV学堂
  • Texar-PyTorch:在PyTorch中集成TensorFlow的最佳特性

    Texar-PyTorch 对各类不同的机器学习任务有着广泛的支持,尤其是自然语言处理(NLP)和文本生成任务。

    OpenCV学堂
  • CUDA程序媛之友谊的船

    北京海淀,太平洋吹来暖湿的季风,学霸正在疯长,又到了大学生们最忙碌的季节——配置CUDA环境。在导师眼中,GPU能为学生发毕业论文带来好运,值得为它冒险。现代社...

    GPUS Lady
  • 数据结构中的队列 ADT

    队列的基本操作是Enqueue(入队),它是在表的末端(rear)插入一个元素,还有Dequeue(出队),它是删除(货返回)在表的开头(叫做队头(front)...

    于小勇
  • 特斯拉指控小鹏汽车工程师,离职前盗取Autopilot30万份机密文件

    今日凌晨,据最早爆出这一消息的海外媒体Verge称,特斯拉已经在本周三对一名华裔前雇员发起诉讼,指控他为国内电动车品牌小鹏汽车窃取了机密资料。

    大数据文摘
  • 07:清泉-改(prime+堆)

    时间限制: 10000ms单个测试点时间限制: 1000ms内存限制: 512000kB描述 华北电力大学可以抽象为一张有n个点m条边的无向图. 现在所有的边都...

    attack
  • 利用图形界面对Sql2008做日志收缩

    网上已经有很多文章讲这个了,不过大多是教人如何利用命令来处理的,一直认为:对于能用图形界面搞定的事情,尽量就不用命令方式解决(记命令很伤脑细胞的) 1、打开数据...

    菩提树下的杨过
  • 单步调试理解webpack里通过require加载nodejs原生模块实现原理

    在webpack和nodejs里,我们经常使用require函数加载原生模块或者开发人员自定义的模块。

    Jerry Wang
  • 阿里将 TVM 融入 TensorFlow,在 GPU 上实现全面提速

    AI 研习社按,日前,阿里机器翻译团队和 PAI 团队发表博文,阐述将 TVM 引入 TensorFlow,可以带来至少 13 倍的 batch 矩阵相乘(ma...

    AI研习社

扫码关注云+社区

领取腾讯云代金券