欢迎光临散文网 会员登陆 & 注册

OpenCV cuda 版本编译使用

2022-04-11 18:57 作者:mufasai  | 我要投稿

1. 说明

opencv 默认提供的动态链接库是不支持 cuda 加速的。需要我们自己编译。

本文记录一下编译 opencv cuda 版本的流程,并同步在个人站点。

2. 准备工具

OpenCV cuda 版本的编译需要各种工具版本相互配合。建议选择新版本的 OpenCV 和 CMake。

  • CMake 3.18

  • CUDA Toolkit 11

  • VIstual Studio 2022

  • OpenCV 3.4.15 & OpenCV_contrib

3. 编译流程

3.1 CUDA

安装 CUDA11 和 对应的 CUDNN,并配置环境变量。过程和配置 tensorflow gpu 版本相同。

3.2 CMake

将OpenCV_contrib 3.4.15 和 OpenCV 3.4.15 分别解压到某处。打开 CMake-gui 设置源码目录和目标目录。点击“Configure”按钮。

打开 CMake-gui 工具,填入 OpenCV 解压的源码目录和 build 目录。点击 configure,

生成的选项中,勾选/取消勾选相关内容:

  • 打开 WITH_TBB

  • 勾选和 CUDA 相关选项

  • 取消选择 java 和 python 的编译选项(个人不需要)

  • 勾选 nonfree 的编译选项

  • 取消 TEST 相关选项加快编译速度

  • 勾选 BUILD_opencv_world 最终只生成一个动态链接库方便使用

  • 在 OPENCV_EXTRA_MODULES_PATH 中填入 OpenCV_contrib 解压文件夹 modules 的路径

  • 取消选择 OPENCV_GENERATE_SETUPVARS

再次点击 configure 按钮,由于网络问题会出现无法下载的错误,可以取消勾选 face 模块,然后再次点击 configure 按钮。要保证生成 CMakeLists.txt 过程中不出现红色警告,不然后续的编译过程会出现错误。无错误后点击 Generate 按钮,生成项目文件 Opencv.sln 。

3.3 VS2022

打开生成的 OpenCV.sln 文件,找到项目 ALL_BUILD,分别在 Debug 和 Release 下右击生成。编译大概需要六个小时(等死个人)。

ALL_BUILD 完成后,找到项目 INSTALL 右击生成。最终会在当前 build 目录下生成一个 install 目录,这就是我们需要的可执行文件和库,最后添加到环境变量中测试效果。

也可以使用 Vistual Studio 的批量生成功能。 

4. 使用

将 install 目录的动态链接库添加到环境变量中,这里推荐一个环境变量管理工具 rapid environment editor,非常好用。

bin 文件在 install/x64/vc16 中:

打开项目属性 VC++ 目录

包含目录

库目录

在 链接器 --> 输入 --> 附加依赖项 中,分别在 debug 和 release 模式下添加 opencv_world3415d.lib、opencv_world3415.lib。至此配置完毕。

添加头文件,即可开始使用 cuda 

参考

1. [Win10使用VS2019从源码编译OpenCV 4.4 + CUDA 11.0 + Cudnn 8.0 + python3](https://www.jianshu.com/p/aa8455fcc672)

2. OpenCV + CUDA开发 - 编译与环境配置


OpenCV cuda 版本编译使用的评论 (共 条)

分享到微博请遵守国家法律