VS2019编译Opencv4.6.0GPU版本(支持40系显卡)

1 准备工具

点击上面链接跳转,我使用的是CMake3.24,CUDA11.1,CUDNN8.0.5,已上传至百度网盘。

链接:https://pan.baidu.com/s/1NqyHujPUkk8j3LdqH22sGw

提取码:u2it

2. 编译流程

2.1 CUDA

安装CUDA和对应的CUDNN,并配置环境变量。

网址:https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-853/support-matrix/index.html

40系显卡需要cuda11.8以上,不然会编译报错:找不到opencv_world460.lib!

我的显卡4070,cuda11.8,cudnn8.6.0。

2.2 CMake

2.2.1 解压OpenCV和OpenCV_contrib,打开CMake-gui设置source和build(新建)路径,点击Configure。

第一次Configure出现报错,PPICV和FFMPEG下载失败

 

以PPICV为例,在目标路径下找到CMakeDownloadLog.txt,其中关于IPPICV的信息如下

 

打开https://ghproxy.com/,输入网址,下载ippicv_2020_win_intel64_20191018_general.zip

 找到放置zip的路径D:\tool\opencv-4.6.0\.cache\ippicv,替换其中的zip

 

2.2.2 再次Configure,在新生成的选项中,勾选/取消勾选相关内容:

1. 勾选WITH_TBB

2. 勾选CUDA相关

3. 取消选择 java 的编译选项(个人不需要) 

4. 勾选nonfree

5. 取消勾选TEST,加速编译

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

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

 8. 取消选择 OPENCV_GENERATE_SETUPVARS 

2.2.3 再次Configure,xfeatures和face报错,因为用不到,我取消了勾选。选择显卡算力,10系卡为6.1,20系卡为7.5,30系卡为8.6,40系卡为8.9。

2.2.4 再次Configure,确保没有红色报错,然后点Generate。

2.3 VS2019

打开生成的 OpenCV.sln 文件,找到项目 INSTALL 右击生成。大概1个半小时后

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

3 使用

3.1 属性页设置

3.2 拷贝opencv_world460.dll到release下

3.3 开启cuda加速

#include <opencv2/dnn.hpp>
using namespace dnn;
...
this->net.setPreferableBackend(DNN_BACKEND_CUDA);
this->net.setPreferableTarget(DNN_TARGET_CUDA);

yolov5推理时间减少一半。 

 

参考:

1. OpenCV cuda 版本编译使用

2. IPPICV: Download failed: 6;“Couldn‘t resolve host name“

posted @ 2022-10-01 17:26  湾仔码农  阅读(2820)  评论(2编辑  收藏  举报