目录

CUDA安装与配置

cuDNN

CMake编译

运行测试

总结


本文转载: OpenCV学堂

CUDA安装与配置

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

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

以及,

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

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

cuDNN

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

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

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

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

CMake编译

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

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

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

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

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

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

勾选WITH_CUDA。

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

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

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

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

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

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

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

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

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

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

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

运行测试

添加环境变量。

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

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

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

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

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

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

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

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

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

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

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

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

总结

opencv和opencv_contrib版本要对应

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

勾选WITH_CUDA 、OPENCV_DNN_CUDA。

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

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

相关文章:

  • 2021-10-21
  • 2021-07-21
  • 2021-05-31
  • 2021-04-29
  • 2021-05-26
  • 2021-11-18
  • 2022-02-08
  • 2021-06-22
猜你喜欢
  • 2021-08-27
  • 2022-01-19
  • 2021-06-10
  • 2021-11-24
  • 2021-06-27
  • 2021-07-04
  • 2022-01-15
相关资源
相似解决方案