配置安装OpenCV(4.5.4)+Opencv_contrib(4.5.4)+CUDA(v11.5)

目录

  • 配置安装OpenCV(4.5.4)+Opencv_contrib(4.5.4)+CUDA(v11.5)
    • 准备
      • 提示
    • 安装
      • 安装Visual Studio 2019
      • 安装CUDA
      • 安装CUDNN
      • CMake编译OpenCV
      • Visual Studio编译
      • 配置阶段
    • 测试
    • 参考教程

配置安装OpenCV(4.5.4)+Opencv_contrib(4.5.4)+CUDA(v11.5)

结合CUDA,OpenCV的性能可以得到约一个数量级的提升。但据我了解,搭配CUDA的OpenCV需要编译阶段就进行安装,无法在完成OpenCV安装后再补充CUDA功能。在安装过程中,走了很多坑,写这篇博客记录一下,希望大家能少走弯路。

准备

  • Windows10

  • Visual Studio 2017 or 2019

    !!!别用VS2022。因为CMake中的Generator没有Visual Studio 2022这个选项.

    直接进入Visual Studio官网,找到的只有2022。从官网下载旧版本的Visual Studio的链接,点击这里

  • OpenCV 4.5.4 下载链接

    选择4.5.4下面的zip格式下载即可。

  • OpenCV_contrib 4.5.4 下载链接

    选择4.5.4下面的zip格式下载即可。

  • CUDA Toolkit 下载链接

  • CUDNN

    首先,打开命令行(win+r,输入cmd,回车)。输入命令nvidia-smi。

    观察输出结果,找到CUDA Version。

    进入链接,找到与CUDA版本匹配的CUDNN,下载。注:需注册登录NVIDIA,按照指引注册,重新进入上述链接即可。

提示

  • 尽量保存中间文件,包括下载文件至最终完成安装。
  • CUDA Toolkit及CUDNN下载时建议挂VPN,若速度慢,换节点试试。

安装

请按顺序安装

安装Visual Studio 2019

  • 打开前面下载的Installer;
  • 选择“Python 开发”和“使用C++的桌面开发”,点击安装。(安装位置推荐使用默认位置);
  • 等待,完成后按要求重启。

安装CUDA

打开前面下载的安装程序,根据提示安装,在选择添加环境变量时选择为所有用户添加,其他选项默认即可。

安装CUDNN

  • 解压下载的CUDNN安装包,打开;
  • cuda\bin目录下的所有文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\bin下(vx.x为版本);
  • cuda\include目录下的所有文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\include下;
  • cuda\lib\x64目录下的所有文件复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x\lib\x64下;
  • 添加环境变量CUDA_PATH,设置值为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vx.x,若上面安装CUDA时添加了,这里查看确认一下就可以了。

CMake编译OpenCV

关键的一步!

  • 打开下载的CMake,进行安装;

  • 安装完成后,打开CMake GUI(在安装目录下);

  • 将下载好的OpenCV 4.5.4及OpenCV_contrib 4.5.4解压,放到同一个目录下。并在该目录下,建一个空目录build;

    OpenCV

    build

    opencv_contrib-4.5.4

    opencv-4.5.4

  • 在CMake中,Where is the source code添加opencv文件夹,即/Opencv/opencv-4.5.4(注意:如果/Opencv/opencv-4.5.4下还有一层文件夹opencv-4.5.4,请用/Opencv/opencv-4.5.4/opencv-4.5.4);

  • 在CMake中,Where to build the binaries添加build文件夹,即/Opencv/build

  • 点击configure,选择你使用的Visual Studio版本,选择平台(一般是x64);

    注意:如果这里版本选错,点击File > DeleteCache。再点击Configure重新选择。

  • 点击finish;

  • 再次点击configure,等待(过程中有文件下载,请先搭好梯子);

  • 完成后,在编译选项中进行勾选。BUILD_CUDA_STUBSOPENCV_DNN_CUDAWITH_CUDAOPENCV_ENABLE_NONFREEbuild_opencv_world打勾;

  • 找到编译选项OPENCV_EXTRA_MODULES_PATH,将Value设置为/Opencv/opencv_contrib-4.5.4/modules(即/Opencv/opencv_contrib-4.5.4中的modules目录,注意中间有没有多一层文件夹);

  • 点击configure,等待至出现configuring done;

    注:若报错,先查报错并修改后重试;若多次重试,仍报同一个错误,建议新建build1。修改Where to build the binaries/Opencv/build1;点击File > DeleteCache。再点击Configure重新开始。

  • 点击generate,等待至出现generating done;

  • 点击open project。

Visual Studio编译

  • 等待加载完毕(左下角显示就绪);
  • 解决方案配置选择Release,解决方案平台选择x64(在本地Windows调试器左边);
  • 在解决方案资源管理器中找到ALL BUILD,右键,点击生成;
  • 进入漫长的等待,期间尽量不做其他操作;
  • 几个小时完成,输出:生成:成功12x个,失败0个,最新0个,跳过0个;
  • 在解决方案资源管理器中找到INSTALL,右键,点击生成;
  • 等待几十秒,完成。

配置阶段

  • 配置环境变量:右键“此电脑” > 属性 > 高级系统变量 > 环境变量 > 系统变量 > Path > 编辑 > 添加

    \OpenCV\build\install\x64\vc15\bin添加到Path,具体路径根据你的编译情况进行修改;

    重启。

  • 属性管理器配置

    打开VS > 新建 > 空项目。把Debug x86改成Release x64

    点击 视图 > 其他窗口 > 属性管理器;

    点击项目名左侧的 “▶”,找到Release|x64。右键 添加新项目属性表 > 修改名称为opencv454 > 添加;

    双击刚刚添加的opencv454

    点击VC++目录 > 包含目录 > 右侧下三角 > 编辑;

    点击黄色图标(新行) > 添加\OpenCV\build\install\include\OpenCV\build\install\include\opencv2(具体根据你的安装路径确定)> 确定;

    库目录 > 右侧下三角 > 编辑;

    点击黄色图标(新行) > 添加\OpenCV\build\install\x64\vc15\lib(具体根据你的安装路径确定)> 确定;

    连接器 > 输入 > 附加依赖项 > 添加opencv_world454.lib

    确定,完成。

测试

  • 视图 > 解决方案资源管理器;

  • 源文件 > 右键 添加 > 新建项 > 添加;

  • 输入测试代码;

    #include "opencv2/opencv.hpp"
    
    using namespace cv;
    using namespace std;
    
    int main(){
      Mat img = imread("<图片地址>\\example.png", IMREAD_COLOR);
      namedWindow("test", WINDOW_NORMAL);
      imshow("test", img);
      waitKey(0);
      return 0;
    }
    
  • 点击本地Windows调试器;

  • 显示样例图片;

  • 敲击任意键(如回车),结束程序,完成测试。

参考教程

知乎:

  • win10编译opencv4.5.1+opencv_contrib+CUDA

CSDN:

  • 在微软官网下载旧版本的Visual Studio

  • CMake修改Current Generator

  • 报错Please resolve dependency or disable OPENCV_DNN_CUDA=OFF

stackoverflow:

  • 报错:CUDA backend requires cuDNN

NVIDIA:

  • 安装CUDNN

注:当前最新版OpenCV为4.5.4,在github中下载时选择最新版即可。

你可能感兴趣的:(图像处理,opencv,cuda)