opencv gpu版本安装
cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版本编译方法相同,本文以opencv4.5.5为例
1 编译环境准备
一定确保已经成功安装了cuda工具包,以及VS编译器,清单如下
cuda工具包
visual studio 编译器
cmake构建工具
opencv源码
opencv-contrib源码
1.1 cmake构建工具下载
https://cmake.org/download/
1.2 opencv源码下载
官网下载地址
https://opencv.org/releases/
国内源:
https://www.raoyunsoft.com/wordpress/index.php/2020/03/09/opencvdownload/
1.3 opencv-contrib源码下载
opencv-contrib为opencv的拓展模块,为opencv添加了额外的功能,在编译时一块编译
github下载地址:
https://github.com/opencv/opencv_contrib/
国内源:
https://www.raoyunsoft.com/opencv/opencv_contrib/
2 cmake构建工程
打开cmakecmake-gui在解压出来的文件夹下的bin目录中,双击打开
打开cmake构建工具后,选择源码位置已经输出位置
选择vs版本以及处理器,点击finish,看见configure done表示配置完成
这个会出现很多错误,修改自己需要的即可
去掉python版本,勾选opencv_world找到此文件,后面添加路径(opencv_contrib中modules所在的路径)
再搜索栏搜索cuda,添加BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA
再搜索栏搜索test,去掉test,加快编译
再搜索栏搜索js,去掉js
再搜索栏搜索java,去掉java
看见configure done表示配置完成
CUDA_ARCH_BIN表示的是支持的显卡算力版本,在搜索栏搜索CUDA_ARCH_BIN会看见支持所有算力版本,可以指定自己的版本,加快编译
配置完成后搜索FAST, 勾选CUDA_FAST_MATH、ENABLE_FAST_MATH
修改完成后,再点一次configre
genetate点击genetate生成工程,出现genetate done表示生成成功
3 Visual Studio 编译opencv
双击打开工程文件4 Visual Studio 配置opencv
解决方案资源管理器窗口中,项目右击,选择属性添加编译生成的install 文件下 include路径
添加编译生成的install 文件下 x64\vc17\lib
添加依赖项 opencv_world455d
5 附录
1、验证是否编译后的库在新环境中是否存在缺损dll,找到编译路径下install/x64/vc15/bin文件夹,在终端运行opencv_version.exe,如果成功运行,则opencv运行环境配置没有缺损。
2、opencv 启动 gpu,模型加载后添加如下两行代码:
cv::dnn::Net net = cv::dnn::readNetFromTensorflow("yolo.pb");net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);
3、python opencv-gpu 安装
cmake构建工程时勾选python,编译完成后找编译路径下的python_loader中的cv2文件夹
将其移动到python安装路径中的Lib/site-packages中
6 错误总结
如果在编译过程中出现如下错误,参考下面解决方案vs2022重新编译opencv-python cuda加速时报错的问题解决
2. LNK1104 无法打开文件“python37_d.lib” 解决方法
首先确认环境中有没有安装python3.7,如果已经安装python3.7,可以采用release编译,如需编译bebug版本则需要安装python debug版本,参考下面解决方案
LNK1104 无法打开文件“python37_d.lib” 解决办法
3、如果编译过程中出现LINK : fatal error LNK1104: 无法打开文件“XXX.lib”