windows11编译OpenCV4.5.0 with CUDA(附注意事项)

这篇具有很好参考价值的文章主要介绍了windows11编译OpenCV4.5.0 with CUDA(附注意事项)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

windows11编译OpenCV4.5.0 with CUDA

win11 opencv编译,opencv,visual studio,计算机视觉,编译,CUDA

从OpenCV4.2.0 版本开始允许使用 Nvidia GPU 来加速推理。本文介绍最近使用windows11系统编译带CUDA的OpenCV4.5.0的过程。

  • 文中使用【特别注意:…】为大家标识出容易出错的地方。
  • 安装成功后,使用CPU与GPU调用yolov4模型进行推理的耗时测试结果:
GPU CPU
4ms 311ms
  • 从差距上看,还是值得花时间编译一下的:)
  • 耗时测试环境:
    • 调用笔记本自带摄像头获取视频
    • Notebook GTX3080显卡

1.准备环境

1.1 下载OpenCV4.5.0

  • 编译需要OpenCV4.5.0的源码
  • 下载地址(3项可选):

    https://opencv.org/releases/
    https://github.com/opencv/opencv/releases/tag/4.5.0
    https://sourceforge.net/projects/opencvlibrary/files/4.5.0/opencv-4.5.0-vc14_vc15.exe/download

  • 下载完成后是一个exe程序,双击即可解压,解压后:
    • source文件夹就是源码
    • build文件夹是编译好的不带CUDA加速的OpenCV4.5.0(本文不使用)

1.2 下载OpenCV4.5.0 contrib

  • Contrib Modules是OpenCV的扩展模块,包含了很多用于实现特定算法
  • 编译OpenCV需要用到contirb模块
  • 特别注意:务必下载与源码对应版本的contrib模块
  • 下载地址(第1个为官方下载地址,第2个为国内某同学搭建的下载库,速度较快):

    https://github.com/opencv/opencv_contrib/tags
    https://www.raoyunsoft.com/opencv/opencv_contrib/opencv_contrib-4.5.0.zip

1.3 准备.cache文件

  • 编译过程中需要联网下载一些依赖库,并存放于sourc.cache文件夹中
  • 特别注意:因要连到外网,因此速度比较慢,有时断网造成编译失败,所以可以提前准备好这些文件
  • OpenCV4.5.0的.cache文件下载地址:

    https://download.csdn.net/download/iracer/85695997

  • 使用方法:
    • 将.cache文件夹拷贝到source文件夹下,与原.cache文件夹合并

1.4 安装Visual Studio 2019

  • 安装CUDA需要vs,这里选择vs2019
  • 安装步提要:
  • Download Visual Studio 2019 Community Edition
  • Select Desktop Development with C++ option and click on install

1.5 安装CUDA和cuDNN

  • NVIDIA官方指南:

    https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows

  • 本次在windows11上安装的CUDA和cuDNN版本为:
  • CUDA 11.3:cuda_11.3.1_465.89_win10.exe
  • duDNN 8.4:cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip
  • 特别注意:zlib库需要下载并添加到系统环境变量path中,因为cdDNN需要调用该库。
  • zlib库下载地址:

    www.winimage.com/zLibDll/zlib123dllx64.zip
    下载完成后解压zip文件,并将zlibwapi.dll所在目录添加到系统环境变量path

  • 查看CUDA安装结果:
C:\Users\irace>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:41:42_Pacific_Daylight_Time_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0

1.6 安装CMake

  • 本次是用的是3.22版本,3.19以上版本应该都可以(未逐一测试)
  • 下载地址:

    https://github.com/Kitware/CMake/releases/download/v3.22.5/cmake-3.22.5-windows-x86_64.msi

2. 编译

2.1 CMake生成解决方案

  • 双击解压OpenCV4.5.0.exe,解压后的source目录即OpenCV4.5.0的源码

  • 解压opencv_contrib-4.5.0

  • 新建一个编译目录

    D:\opencv\oepncv4.5.0cuda\build

  • 打开CMake

  • 配置source code:

    D:/opencv/opencv4.5.0/sources

  • 配置目标目录:

    D:\opencv\oepncv4.5.0cuda\build

  • 第1次点击[Configure]

  • 弹出窗口选择vs2019作为编译器:

    Visual Studio 16 2019

  • generate平台选择x64

  • 第2次点击[Configure]后,搜cuda带cuda的都勾选,

    • BUILD_CUDA_STUBS
    • BUILD_opencv_cudaarithm
    • BUILD_opencv_cudabgsegm
    • BUILD_opencv_cudacodec
    • BUILD_opencv_cudafeatures2d
    • BUILD_opencv_cudafilters
    • BUILD_opencv_cudaimgproc
    • BUILD_opencv_cudalegacy
    • BUILD_opencv_cudaobjdetect
    • BUILD_opencv_cudaoptflow
    • BUILD_opencv_cudastereo
    • BUILD_opencv_cudawarping
    • 除此之外此外以下两项数学加速选项也勾选:
    • CUDA_FAST_MATH
    • ENABLE_FAST_MATHwin11 opencv编译,opencv,visual studio,计算机视觉,编译,CUDA
    • CMake界面上Search栏搜modules,设置contrib模块路径

    D:\opencv\oepncv4.5.0cuda\opencv_contrib-4.5.0\modules

  • 第3次点击[Configure],完成后,再次搜索cuda,配置CUDA_ARCH_BIN中将显卡的算力内容改成自己显卡的算力,t如下网址查询自己显卡的算力,我保留了7.5;8.0;8.6

    • 查询显卡算力链接

    GeForce 笔记本

    GPU Compute Capability
    GeForce RTX 3080 8.6
    GeForce RTX 3070 8.6
    GeForce RTX 3060 8.6
    GeForce RTX 3050 Ti 8.6
    GeForce RTX 3050 8.6
    Geforce RTX 2080 7.5
    Geforce RTX 2070 7.5
    Geforce RTX 2060 7.5
    GeForce GTX 1080 6.1
    GeForce GTX 1070 6.1
    GeForce GTX 1060 6.1

    GeForce and TITAN 台式机

    GPU Compute Capability
    Geforce RTX 3060 Ti 8.6
    Geforce RTX 3060 8.6
    GeForce RTX 3090 8.6
    GeForce RTX 3080 8.6
    GeForce RTX 3070 8.6
    GeForce GTX 1650 Ti 7.5
    NVIDIA TITAN RTX 7.5
    Geforce RTX 2080 Ti 7.5
    Geforce RTX 2080 7.5
    Geforce RTX 2070 7.5
    Geforce RTX 2060 7.5
    NVIDIA TITAN V 7.0
  • 搜索并勾选

    BUILD_opencv_world,可生成一个整的dll方便使用

    OPENCV_ENABLE_NONFREF

  • 解压.cache.rar,将.cache目录拷贝到source目录:

    D:\opencv\oepncv4.5.0\source\.cache >![将下载的.cache目录与source中的.cache目录合并](https://img-blog.yssmx.com/

  • 第4次点击[Configure]

  • 完成后,点击[Generate],完美生成:

    win11 opencv编译,opencv,visual studio,计算机视觉,编译,CUDA
    配置完成后CMake log中显示找到了CUDA和cuDNN:

    NVIDIA CUDA: YES (ver 11.3, CUFFT CUBLAS FAST_MATH)

    NVIDIA GPU arch: 75 80 86

    NVIDIA PTX archs:

    cuDNN: YES (ver 8.4.0)

  • 点击[Open Project],会自动打开vs2019,开始编译

2.2 VS2019编译OpenCV

  • 使用VS2019打开刚刚编译工程后,等待左下角显示的项全部加载完毕才可以继续操作

  • 选择Release x64版本

    win11 opencv编译,opencv,visual studio,计算机视觉,编译,CUDA

  • 找到解决方案资源管理器中的“CmakeTargets”下的“ALL_BUILD”,右键→“生成”,然后开始漫长的等待……

    win11 opencv编译,opencv,visual studio,计算机视觉,编译,CUDA

  • 解决方案资源管理器—>CMakeTargets—>INSTALL—>生成”然后又是等,好在这次时间很短。完成后你的build文件夹中会出现一个install文件夹,这就是完成了。

    win11 opencv编译,opencv,visual studio,计算机视觉,编译,CUDA

2.3 生成文件

  • 生成完成后会出现如下文件夹

    D:\opencv\oepncv4.5.0cuda\build\install

  • build/install目录的目录结构(部分)
    ├─etc
    ├─include
    │ └─opencv2
    │ ├─core
    │ ├─cudalegacy
    │ ├─cudev
    │ ├─datasets
    │ ├─dnn
    │ ├─face
    │ ├─features2d
    └─x64
    └─vc16
    ├─bin
    └─lib

  • tips:在当前目录中运行cmd,使用tree命令,即可生成目录树文章来源地址https://www.toymoban.com/news/detail-657661.html

D:\opencv\oepncv4.5.0cuda\build\install>tree

3. 测试

3.1 配置OpenCV with cuda

  • 配置OpenCV4.5.0cuda,与一般OpenCV的配置方法一致,可参考:
  • Win7系统Visual Studio 2013配置OpenCV3.1图文详解

3.2 YOLOv4 示例程序

  • 测试程序可以直接用《OpenCV4机器学习算法原理与编程实战》书中的代码(部分):
#include<opencv2\opencv.hpp>
#include<opencv2\dnn.hpp>
#include<fstream>
#include<iostream>

using namespace std;
// 检测结果后处理
void postProcess(
	cv::dnn::Net& net,
	cv::Mat& frame,
	const vector<cv::Mat>& outs,
	vector<cv::Rect>& boxes,
	vector<int>& classIds,
	vector<int>& indices,
	double confThreshold,
	double nmsThreshold
);

// 检测绘制结果
void drawPred(
	cv::Mat& frame,
	vector<cv::Rect>& boxes,
	vector<int>& classIds,
	vector<int>& indices,
	vector<string>& classNamesVec);

// 程序设置
bool USE_IMAGE = false;  // true: 测试图像; false: 测试视频
bool USE_YOLOv4 = true; // true: YOLOv4;   false: YOLOv4_tiny
bool USE_CUDA = true; // true: GPU, false: CPU

float confidenceThreshold = 0.3; // 置信度设置
float nmsThreshold = 0.2; 		  // 置信MNS门限

int main()
{
	// [1]模型文件路径设置
	cv::String model, config;
	if (USE_YOLOv4)
	{
		model = "D:/models/yolov4/yolov4.weights"; // 模型权重文件
		config = "D:/models/yolov4/yolov4.cfg";    // 模型配置文件 
	}
	else // use yolov4-tiny
	{
		model = "D:/models/yolov4/yolov4-tiny.weights";
		config = "D:/models/yolov4/yolov4-tiny.cfg";
	}
	cv::String framework = "Darknet";                     // 深度学习框架
	cv::String label_file = "D:/models/yolov4/coco.names";// 类别标签文件

	//[2] 加载类别
	ifstream classNamesFile(label_file);
	vector<string> classNamesVec;
	if (classNamesFile.is_open())
	{
		string className = "";
		while (std::getline(classNamesFile, className))
		{
			classNamesVec.push_back(className);
		}
	}
	// [3]载入模型
	cv::dnn::Net net = cv::dnn::readNet(config, model, framework);

	if (USE_CUDA)
	{
		net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);
		net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
	}
	else
	{		
		net.setPreferableTarget(cv::dnn::DNN_TARGET_OPENCL);
		net.setPreferableBackend(cv::dnn::DNN_BACKEND_OPENCV);
	}

	// ...
	}

4. 相关链接

  • OpenCV4机器学习算法原理与编程实战(附部分模型下载地址)
  • 本文更新链接
  • 转载请注明出处。

到了这里,关于windows11编译OpenCV4.5.0 with CUDA(附注意事项)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Win11下配置OpenCV with CUDA

    前些天在B站上看到用OpenCV调用CUDA加速目标检测和关键点检测的教程,较Pytorch推理速度提升很明显,最近整了个RTX4070,所以就也想来试一试。由于刚换了电脑,没有相关环境,配置过程中踩了一些坑,因此有了这篇记录文章。 系统:Windows11-22H2 显卡:RTX4070 驱动:CUDA-11.8,c

    2024年02月10日
    浏览(23)
  • Jetson Xavier NX编译OpenCV(with cuda)

    Jetson Xavier NX默认安装的OpenCV 4.5.4(不带cuda),因项目要求OpenCV使用cuda作加速,因此,须重新编译OpenCV。这里为了方便直接在目标机上面编译,避免复杂的环境及依赖。 下载地址: OpenCV · GitHub 我这里下载opencv-4.5.4,opencv_contrib-4.5.4,下载后并解压。 查看是否卸载: libs: versi

    2024年02月11日
    浏览(29)
  • 【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

    目录 1. 环境准备 1.1 软件环境 1. 2 源码下载 2. CMake编译项目 2.1 创建cmake项目 2.2 设置编译配置 2.3 解决异常 2.3.1 文件下载异常 2.3.2 解决CUDA版本异常 2.4 编译项目 3. Visual Studio 编译项目 4. 项目测试 5. 总结   OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器

    2024年02月03日
    浏览(29)
  • Linux/Debian/Ubuntu-OpenCV(4.5.4/4.6.0)+CUDA(11.3)配置编译全流程

    本文用来记录在linux环境下docker中编译 OpenCV with cuda 的过程,同时编译了4.5.4和4.6.0两个版本均可编译通过。 本地是linux环境也可参考本文完成编译。 系统:debian 11 CPU:i7 内存:16G 显卡:Nvidia Quadro M2000 github直接下载连接: OpenCV 4.5.4 source code OpenCV 4.6.0 source code 如需下载其他

    2024年02月10日
    浏览(32)
  • Windows11+Opencv+Clion编译源码

    参考:https://www.robotsfan.com/posts/69395e08.html 注意事项 编译过程中使用的软件,开源码等所有工具的安装路径一定不要有中文和空格。 cmake过程会下载一些文件,如果是局域网的话可能下载不下来,可以事先下载好拷贝到相应目录。 OpenCV默认会编译很多功能,有些功能需要先自

    2024年02月14日
    浏览(31)
  • cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版以及vs2022配置opencv-gpu

    cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版本编译方法相同,本文以opencv4.5.5为例 一定确保已经成功安装了cuda工具包,以及VS编译器,清单如下 cuda工具包 visual studio 编译器 cmake构建工具 opencv源码 opencv-contrib源码 1.1 cmake构建工具下载 https://cmake.org/download/ 1.2 opencv源码下载 官网

    2023年04月25日
    浏览(37)
  • OpenCV3程序转到OpenCV4编译的问题

    error: ‘CV_INTER_LINEAR’ was not declared in this scope OpenCV4部分取消了CV_前缀 解决方法很简单,就是找到报错的文件,报错的变量修改适配 OpenCV4 中的变量。 或者,添加头文件 error: ‘CV_RANSAC’ was not declared in this scope error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope 或者,添加头文件

    2024年02月12日
    浏览(26)
  • ubuntu下opencv4.6.0环境安装编译

    目录 一.下载安装包 二.配制安装环境 三.开始安装opencv 四.添加路径 五、配制环境 六、.出现以下异常: 七.测试Opencv: 1.下载opencv opencv-4.6.0.zip + opencv_contrib-4.x.zip 2.新建 opencv 文件夹将下载好的: opencv-4.6.0.zip 解压到opencv文件夹里面; 3.将解压 opencv_contrib-4.x.zip 的文件放入open

    2024年02月12日
    浏览(30)
  • 编译工程需要Opencv3 与 ROS自带Opencv4冲突解决办法

    在CmakeLists中 屏蔽ROS自带的Opencv库 此时可能 cv_brige 也会发生冲突,因为默认的 cv_brige 也是和 Opencv4 配套使用 需要修改如下内容: 1.头文件目录:修改为安装opencv3的路径 2.库目录:需要什么库链接什么库就够了

    2024年02月08日
    浏览(29)
  • Ubuntu 下 opencv4.8.0 (包含拓展库) 的编译安装

    首先展示一下我电脑的信息: opencv-4.8.0.zip: https://codeload.github.com/opencv/opencv/zip/refs/tags/4.8.0 opencv-contrib-4.8.0.zip: https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.8.0 后面我发现在安装扩展库时还有一部分依赖没有装。  关于你缺少了什么依赖,可以通过阅读cmake时的输出来看

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包