一、安装库文件

1. cuda安装

cmd命令(按下 Win + R 键,打开“运行”对话框,输入 cmd 后按回车键)中打nvidia-smi看支持的cuda最高版本

目前作者使用的是CUDA11.6,下载网址:CUDA Toolkit Archive | NVIDIA Developer

2. cuDNN安装

在网址:cuDNN Archive | NVIDIA Developer

中选择适合CUDA版本的cuDNN,如下图:

比如我选择的cuDNN v8.4.0可以适配CUDA 11.x,也就是11.0、11.1、11.2、11.3、11.4、...、11.9;然后把cuDNN解压出来的三个文件夹(bin、include、lib)复制到cuda对应同名文件夹的位置中,以默认位置(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6为例),将cuDNN的bin文件夹里的所有内容复制粘贴至C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin中,将cuDNN的include文件夹里的所有内容复制粘贴至C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\include中,将cuDNN的lib文件夹里的所有内容复制粘贴至C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\lib中。

3.cmake安装

Download CMake

只是版本不同,找xxxx-windows-x86_64.zip文件下载安装即可。

4.vs2022 安装

Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器

5.OpenCV和对应contrib包源码下载

https://github.com/opencv

将上述的opencv和opencv_contrib下载zip文件并解压。

二、使用cmake编译生成

1. 第一次Configure

在下载好的cmake的文件夹中搜索cmake-gui.exe,双击运行,填写opencv源码位置(到sources文件夹)和cv文件夹位置(新建):

在这里新建一个cv文件夹。

 点Configure,选择vs2022和x64平台,确定以后就开始第一次Configure。第一次Configure完成时间耗时约几分钟。

2. 第二次Configure

第一次Configure结束后,在search框里搜索并配置一些选项:

勾选 BUILD_opencv_world
配置 OPENCV_EXTRA_MODULES_PATH,填写contrib源码文件夹的位置(例如:F:\savefiles\opencv_contrib),到文件夹的位置opencv_contrib目录即可。
搜索“cuda”,勾选 BUILD_CUDA_STUBS、OPENCV_DNN_CUDA、WITH_CUDA
勾选 ENABLE_FAST_MATH 
勾选 OPENCV_ENABLE_NONFREE
取消勾选 OpenCV_GENERATE_SETUPVARS
分别搜索“python”,“java”,“js”,“tests”,分别取消勾选所有已经勾选的python、java、js、tests相关选项
点击Configure进行第二次Configure,第二次Configure完成时间耗时约几分钟。

3. 第三次Configure以及Generate

取消勾选 BUILD_opencv_xfeatures2d

勾选 CUDA_FAST_MATH
CUDA_ARCH_BIN 填写对应GPU的算力指数,算力指数查询链接:CUDA GPUs - Compute Capability | NVIDIA Developer

删掉所有其他的,只留下自己的

点击CUDA-Enabled NVIDIA Quadro and NVIDIA RTX,以RTX 3060为例,应该填写7.5作为算力指数。

等待Configure done出现,然后点击Generate开始生成。第三次Configure完成时间耗时很短,Generate生成耗时更短,几秒或几十秒。

三、编译

Generate生成完毕之后,Generate按钮旁边会有open project按钮,单击open project按钮启动vs2022的工程,然后注意选择Release和x64平台。

点击这个CMakeTargets展开目录,右键点击展开的ALL_BUILD,点击生成。(注意,此处耗时很长,使用RTX 3050耗时约50分钟,RTX 1060耗时约120分钟)。

生成完毕之后右键 INSTALL 工程,点击仅用于项目->仅生成INSTALL(此处耗时较短,约几分钟)。

最后出现xx成功,0失败即代表编译完成,接下来在vs中导入库文件。

四、导入

打开vs2022的随便一个工程,选择Release和x64,然后右键点击项目名称,点击属性,如下:

点击VC++目录

随后操作如下:

1.点击包含目录,分别输入以下两个文件夹位置:

F:\opencvgpu\opencv\build\x64\cv\install\include\opencv2

F:\opencvgpu\opencv\build\x64\cv\install\include

注意,上述这个文件夹位置中的“cv”是在步骤“二、使用cmake编译生成” 中 “1. 第一次Configure”时新建的文件夹。

2.点击库目录,输入下面这个文件夹位置:

F:\opencvgpu\opencv\build\x64\cv\install\x64\vc17\lib

同样的,这个文件夹位置中的“cv”是在步骤“二、使用cmake编译生成” 中 “1. 第一次Configure”时新建的文件夹。

点击链接器,点击输入,在附加依赖项中输入opencv_world4100.lib;

3.最后,打开目录F:\opencvgpu\opencv\build\x64\cv\install\x64\vc17\bin

找到opencv_world4100.dll,复制这个文件粘贴到C:\Windows\System32目录中,大功告成!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐