Opencv4.12.0 (CUDA CUDNN ONNX)编译

AudioSeal 音频水印系统

**AudioSeal** 是 Meta 开源的语音水印系统,用于 AI 生成音频的检测和溯源。

Opencv 4.12.0 源码编译

依赖下载

VS2019
opencv-4.12.0
opencv_contrib-4.12.0
onnxruntime-1.18.1
onnxruntime-win-x64-gpu-1.18.1
cudnn-windows-x86_64-8.5.0.96_cuda11-archive
cuda_11.8.0_522.06_windows.exe
nasm-2.16.03-installer-x64
如果访问github下载慢可以访问https://github.akams.cn/加速
注意:必须下载VS2019,使用2022会编译不过,会报CUD版本必须高于12.0,文中中有些图片显示2022,就是因为我踩坑导致,所以各位同志注意一下

准备

nasm安装

安装nasm-2.16.03-installer-x64.exe后,设置系统环境变量中的path

在这里插入图片描述

cuda cudnn 安装

安装cuda_11.8.0_522.06_windows.exe

将下图所选整体复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8中
在这里插入图片描述
重启Cmake

Cmake配置

基础配置

在这里插入图片描述
在这里插入图片描述

新增CMAKE_DEBUG_POSTFIX变量

由于我不想debug加后缀d,所以这里新增CMAKE_DEBUG_POSTFIX string类型变量,不填写内容
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

OPENCV_EXTRA_MODULES_PATH

搜索框搜索OPENCV_EXTRA_MODULES_PATH,添加解压的opencv_contrib中的modules的路径
在这里插入图片描述

OPENCV_ENABLE_NONFREE

搜索并勾选OPENCV_ENABLE_NONFREE选项。
在这里插入图片描述

build_opencv_world

build_opencv_world可以将所有opencv的库都打包编译在一起,后续配置C++的opencv环境时不需要自己手动选择添加每个小模块
在这里插入图片描述

OPENCV_DNN_CUDA\OPENCV_DNN_OPENVINO

OPENCV_DNN_CUDA\OPENCV_DNN_OPENVINO☑️
CPU\GPU两种硬件加速模块
在这里插入图片描述在这里插入图片描述

ENABLE_FAST_MATH☑️

用于启用快速数学计算模式,它会牺牲一些精度来换取计算性能的提升
在这里插入图片描述

“python”,“java”,“js”,“tests”

分别搜索“python”,“java”,“js”,“tests”,根据需要选中和取消相关选项,默认都是选中的,我们只需要c++相关的,因此都取消了,点击Configure。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

BUILD_WITH_STATIC_CRT

BUILD_WITH_STATIC_CRT❌ 编译时不启用静态编译
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/5b446536c5864491ade13a772a95618d.png

OPENMP

WITH_OPENMP☑️
MKL_WITHOPENMP
在这里插入图片描述

CUDA 配置

CUDA☑️

在这里插入图片描述
CUDA_ARCH_BIN☑️
CUDA_ARCH_PTX:同CUDA_ARCH_BIN

CUDA_ARCH_BIN:NVIDIA GPU 计算架构版本 的关键编译参数,决定了 CUDA 程序(如 OpenCV 的 CUDA 模块)针对哪些 GPU 架构进行优化和兼容
CUDA_ARCH_BIN 用于指定编译后的程序支持哪些架构,例如:
6.1:支持 Pascal 架构(如 GTX 1080)
7.5:支持 Turing 架构(如 RTX 2080)
8.6:支持 Ampere 架构(如 RTX 3090)
8.9:支持 Ada Lovelace 架构(如 RTX 4090)
生成针对性优化代码
编译器(NVCC)会根据 CUDA_ARCH_BIN 生成对应架构的二进制代码(sm_xx),充分利用该架构的硬件特性(如 Tensor Core、新指令集等),提升运行性能

CUDA_ARCH_PTX:指定要生成 PTX 代码(Parallel Thread Execution,并行线程执行代码,是一种中间表示形式 )的 CUDA GPU 架构。PTX 代码可在不同架构的 GPU 上,由 CUDA 运行时及时编译(JIT)为二进制代码,以适配目标 GPU ,比如设置为 8.6,能让程序对该架构及后续兼容架构的 GPU 有更好的适配性 。

在这里插入图片描述

CUDA_ENABLE_DELAYLOAD☑️

启用 CUDA 延迟加载(Delay-Load)机制。
在这里插入图片描述

CUDA_USE_STATIC_CUDA_RUNTIME❌ 编译时不启用静态编译

在这里插入图片描述

onnx 配置

ONNX

启用ONNX,再次点击configure
在这里插入图片描述
将onnxruntime-1.18.1\include整体复制到onnxruntime-win-x64-gpu-1.18.1中,然后配置onnxrt_root_dir后再次点击configure
在这里插入图片描述
注意:ORT_EP_INCLUDE参数如果没有onnxruntime DirectML 版本的链接库不要填写,下一步的复制文件夹也不用做
在这里插入图片描述
将下图所示文件复制到指示的文件夹中
在这里插入图片描述

生成VS2019方案

点击Generate

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

.cache 依赖文件下载失败解决

由于网络问题,opencv依赖的库都会下载失败,这个时候需要我们手动下载
打开下图文件
在这里插入图片描述
其中#cmake_download 第一个是依赖是文件应该存放的位置与名称,第二个是下载地址
复制下载地址到浏览器下载
在这里插入图片描述
下载完成后将文件改名成一样的名称(所有手动下载的都需要这样改名)在这里插入图片描述注意:有些文件访问后是在网页中呈现,需要手动另存为文件才能过md5验证
也可以直接下载文章顶部的(适合opencv 4.12.0)
在这里插入图片描述

编译

报错解决

CUSTOMBUILD : nvcc warning : The 'compute_35', 'compute_37', 'sm_35', and 'sm_37' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).

这个报错可以忽略,只是提示后续会弃用较旧的 NVIDIA GPU型号

CUDA4DNN_CHECK_CUDNN(cudnnCreateConvolutionDescriptor(&descriptor));

在这里插入图片描述
这个报错是缺少zlibwapi.dll导致

您可能感兴趣的与本文相关的镜像

AudioSeal 音频水印系统

AudioSeal 音频水印系统

语音合成
PyTorch
Cuda

**AudioSeal** 是 Meta 开源的语音水印系统,用于 AI 生成音频的检测和溯源。

OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软件库。它包含了数千个优化的算法,用于图像处理和视频分析。此源代码为 VS2017打开,可以自己安装VS2017进行编译OpenCV库自1999年成立以来,已经成为计算机视觉领域的基石,它广泛应用于学术研究和产业实践中。OpenCV4.12.0版本是该库发展史上的一个重要里程碑,提供了大量改进和新功能,为开发者和研究者提供了强大的工具集。该版本特别适配于Visual Studio 2017开发环境,让开发者可以方便地在Windows平台上进行计算机视觉项目的开发。 OpenCV 4.12.0包含了广泛的图像处理和计算机视觉算法,例如特征检测、图像分割、对象识别、机器学习等。这些算法在性能上做了优化,确保了在各种应用场景中的高效性。其中一些关键特性包括对深度学习的支持、新的多维数组操作接口、改进的GUI和视频分析功能等。库中的模块经过精心设计,可互相协作,同时也提供了丰富的接口与其他库和应用程序集成。 对于希望使用OpenCV 4.12.0进行开发的用户来说,通过Visual Studio 2017工程可以简化整个编译和配置过程。开发者无需从头开始设置项目,可以利用提供的工程文件快速启动和运行项目。此外,VS2017工程还允许开发者轻松地将OpenCV集成到自己的应用程序中,并根据需要进行定制和扩展。 作为最新版本,OpenCV 4.12.0还加入了许多新模块和改进,比如3D重建模块的增强,新的立体匹配算法,以及对无人机平台的图像稳定算法等。在性能方面,库中的许多函数和模块通过优化代码来提高效率,为需要高速处理的应用提供支持。 OpenCV在学术界和工业界的广泛采用,证明了其在计算机视觉和图像处理领域的领先地位。OpenCV 4.12.0开源
OpenCV(开源计算机视觉库)是计算机视觉和机器学习领域广泛应用的一个强大工具,它提供了丰富的图像处理、特征检测、模式识别等功能。在这个“OpenCV4.12.0 + CUDA + 扩展模块Contrib+VS2019编译库”项目中,我们将深入探讨如何在Visual Studio 2019环境下,利用CUDA技术来加速OpenCV的计算,并集成OpenCV的扩展模块Contrib。 OpenCV 4.12.0是这个库的最新稳定版本,它包含了许多性能优化和新功能。例如,更新的算法、改进的接口以及对新硬件的支持。CUDA是NVIDIA提供的并行计算平台,通过GPU进行高性能计算,可以显著提升图像处理和计算机视觉任务的速度。将OpenCVCUDA结合,可以充分利用现代GPU的并行计算能力,加快计算密集型操作,如图像金字塔构建、特征匹配和物体检测等。 在编译OpenCV时,需要确保安装了CUDA Toolkit,这是CUDA编程所必需的。安装后,你需要配置OpenCV的CMake构建系统,指定CUDA支持,并设置相应的编译选项。在CMake中,你可以通过设置WITH_CUDA标志为ON来启用CUDA支持。同时,你还需要确保设置正确的CUDA版本和对应的NVIDIA驱动程序。 接下来,OpenCV的扩展模块Contrib包含了更多实验性和专有功能,这些功能可能尚未被纳入OpenCV的主要库中。例如,深度学习模块(DNN)、图像超分辨率模块(SuperRes)和增强现实模块(aruco)等。要集成这些模块,你需要在CMake配置阶段设置WITH_CONTRIB标志为ON。这些额外的模块可以提供更广泛的算法选择,满足更专业或特定的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值