当前位置: 首页 > news >正文

编译 CUDA加速的 OpenCV-4.8.0 版本

文章目录

  • 前言
  • 一、编译环境
  • 二、前期准备
  • 三、CMake编译
  • 四、VS编译OpenCV.sln
  • 五、问题


前言

由于项目需要用上CUDA加速的OpenCV,编译时也踩了不少坑,所以这里记录一下。


一、编译环境

我的编译环境是:
Win10 + RTX4050 + CUDA-12.0 + CUDNN 8.9.6.50 + VS2019 + CMake-3.28.0 + OpenCV-4.8.0 + OpenCV_Contrib-4.8.0
额外注意的是:CUDA_ARCH_BIN=7.5;8.6;8.9;9.0

二、前期准备

  1. 如果你的编译环境跟我一模一样的话,你可以直接下载百度网盘,提取码:1215,里面的include/lib/bin文件夹直接拷贝出去用就可以了。
  2. 如果有不同之处,一定要重新编译,不然就会报错:
    error: (-216: No CUDA support) OpenCV was not build to work with the selected device.
  3. 上面的链接下载下来后,里面的source包含了 OpenCV-4.8.0 + OpenCV_Contrib-4.8.0的zip文件夹,就不用直接去官网下载了。
  4. 如果重新编译,记得把 source/.cache文件夹,放到解压后的 OpenCV 4.8.0文件夹下。
    在这里插入图片描述

三、CMake编译

接下来,就照着我的截图进行选择。

  1. 先按下图选择,点击Configure。
    在这里插入图片描述

  2. 完成之后,会一片红
    在这里插入图片描述

  3. 去除Python相关;
    在这里插入图片描述

  4. 去除Java相关;
    在这里插入图片描述

  5. 去除JS相关;
    在这里插入图片描述

  6. 去除tests相关;
    在这里插入图片描述

  7. 勾选CUDA相关
    在这里插入图片描述

  8. 将 OpenCV-Contrib 加入到项目中
    在这里插入图片描述

  9. 勾选 build_opencv_world
    在这里插入图片描述

  10. 去除 OpenCV_ENABLE_NONFREE
    在这里插入图片描述

  11. 勾选 ENABLE_FAST_MATH
    在这里插入图片描述

  12. 再次点击Configure

  13. 完成之后,选择CUDA_ARCH_BIN并勾选 CUDA_FAST_MATH
    在这里插入图片描述

  14. 再次点击Configure;

  15. 如果这次完成之后,没有红色,那么就直接Generate,done就结束了。


四、VS编译OpenCV.sln

  1. 打开 build/OpenCV.sln
  2. 选择 Release/x64,右键 ALL_BUILD - >生成即可。
    在这里插入图片描述
  3. 如果全部成功,那么再右键INSTALL -> 生成即可。这个会帮你整理生成的include/lib/bin文件夹
    在这里插入图片描述

五、问题

  1. .cache文件夹一定要提前放到 OpenCV 4.8.0 文件夹下,不然你会在CMake的时候收获一堆Warning,就是因为下载这堆东西失败。
  2. CuDNN下载之后,记得放到CUDA文件夹下,然后添加相应的环境变量。
  3. 我在使用上面的版本时,发现,对于读取同一个model进行推理,Release/cuda下GPU的利用率是30%,但是Debug/cuda的利用率只有5%左右。但是你如果说GPU没用上,其速度又比单纯使用CPU快一倍。目前还没弄懂。
  4. 另外,我在debug/cpu下的内存大概是200m左右,但是debug/gpu跑到了5.7G。我也没弄懂这个。

相关文章:

编译 CUDA加速的 OpenCV-4.8.0 版本

文章目录 前言一、编译环境二、前期准备三、CMake编译四、VS编译OpenCV.sln五、问题 前言 由于项目需要用上CUDA加速的OpenCV,编译时也踩了不少坑,所以这里记录一下。 一、编译环境 我的编译环境是: Win10 RTX4050 CUDA-12.0 CUDNN 8.9.…...

设计模式篇---外观模式

文章目录 概念结构实例总结 概念 外观模式:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式引入了一个新的外观类,它为多个业务类的调用提供了一个统一的入口。主要优点…...

leetcode:520. 检测大写字母

一、题目: 链接:520. 检测大写字母 - 力扣(LeetCode) 函数原型:bool detectCapitalUse(char* word) 二、思路: 本题较为简单,分为三种情况: 1.首字母大写,其余小写 2.首字…...

5-6求1-20的阶乘和

#include<stdio.h> //求阶乘 int main(){int n;double sum0;//求和&#xff1a;一点一点加int t1;for (n1;n<15;n){tt*n;sumsumt;}printf("结果是&#xff1a;%22.15e \n",sum);return 0; }为啥最后是%22.15e呢&#xff1f; 因为这个求和的结果太大了 所以转…...

web需求记录

需求1&#xff1a;根据后端传过来的设备名:DESKTOP-4DQRGQB&#xff0c;以及mac:e0:be:03:74:40:0b&#xff1b;iQOO-8&#xff0c;mac:b0:33:66:38:c3:25&#xff0c;用web option 是动态增加的&#xff08;也就是那个选择框里面的东西是根据后端传过来的值动态增加的&#xf…...

[网鼎杯 2018]Fakebook

[网鼎杯 2018]Fakebook 打开环境出现一个登录注册的页面 在登录和注册中发现 了地址栏出现变化&#xff0c;扫一波看看 看看robots.txt和flag.php 访问robots.txt看看 再访问user.php.bak <?php class UserInfo { public $name ""; public …...

微信小程序蓝牙连接 uniApp蓝牙连接设备

蓝牙列表期待效果 代码 <template><view class"bluetooth-list"><view class"align-items option" style"justify-content: space-between;" v-for"item in bluetoothList" :key"item.deviceId"><vie…...

启动Dubbo项目注册Zookeeper时提示zookeeper not connected异常原理解析

原创/朱季谦 遇到一个很诡异的问题&#xff0c;我在启动多个配置相同zookeeper的Dubbo项目时&#xff0c;其他项目都是正常启动&#xff0c;唯独有一个项目在启动过程中&#xff0c;Dubbo注册zookeeper协议时&#xff0c;竟然出现了这样的异常提示—— Caused by: java.lang.…...

我在Vscode学OpenCV 几何变换(缩放、翻转、仿射变换、透视、重映射)

几何变换指的是将一幅图像映射到另一幅图像内的操作。 cv2.warpAffine&#xff1a;使用仿射变换矩阵对图像进行变换&#xff0c;可以实现平移、缩放和旋转等操作。cv2.warpPerspective&#xff1a;使用透视变换矩阵对图像进行透视变换&#xff0c;可以实现镜头校正、图像纠偏等…...

MATLAB算法实战应用案例精讲-【图像处理】图像缩放

目录 前言 知识储备 MATLAB图像处理函数 数字数字图像增强 数字数字图像的变换...

Doris的PROPERTIES与ENGINE(九)

接上篇----------Doris分区与分桶 在建表语句的最后 PROPERTIES 中&#xff0c;可以指定以下两个参数&#xff1a; replication_num 每个 Tablet 的副本数量。默认为 3&#xff0c;建议保持默认即可。在建表语句中&#xff0c;所有 Partition 中的 Tablet 副本数量统一指定。…...

华为云数据库 RDS 下载全量备份文件 wget

地址下载 wget -O FILE_NAME --no-check-certificate "DOWNLOAD_URL"FILE_NAME&#xff1a;重命名&#xff0c;例如mysql1121.qpDOWNLOAD_URL: 地址下载 参考 华为云数据库 RDS 下载全量备份文件...

C#使用whisper.net实现语音识别(语音转文本)

目录 介绍 效果 输出信息 项目 代码 下载 介绍 github地址&#xff1a;https://github.com/sandrohanea/whisper.net Whisper.net. Speech to text made simple using Whisper Models 模型下载地址&#xff1a;https://huggingface.co/sandrohanea/whisper.net/tree…...

从零开始学习typescript——运算符(算术运算符、赋值运算符、比较运算符)

算术运算符 算术运算符主要是针对数值类型和长整型&#xff1b;包括有加法、减法、乘法、除法、自增、自减等运算 加法&#xff08;&#xff09; let x:number1let y:number 2console.log(xy)减法&#xff08;-&#xff09; let x:number1let y:number 2console.log(y-x)乘法…...

likeshop单商户商城系统 任意文件上传漏洞复现

0x01 产品简介 likeshop单商户标准商城系统适用于B2C、单商户、自营商城场景。完美契合私域流量变现闭环交易使用。 系统拥有丰富的营销玩法&#xff0c;强大的分销能力&#xff0c;支持电子面单和小程序直播等功能。无论运营还是二开都是性价比极高的100%开源商城系统。 0x02…...

CentOS 7 使用pugixml 库

安装 pugixml Git下载地址&#xff1a;https://github.com/zeux/pugixml 步骤1&#xff1a;首先&#xff0c;你需要下载pugixml 的源代码。你可以从Github或者源代码官方网站下载。并上传至/usr/local/source_code/ 步骤2&#xff1a;下载完成后&#xff0c;需要将源代码解压…...

深度学习 loss 是nan的可能原因

1 loss 损失值非常大&#xff0c;超过了浮点数的范围&#xff0c;所以表示为overflow 状态下的男。 解决办法&#xff1a; 减小学习率&#xff0c;观察loss值是不是还是nan 在将数据输入模型前&#xff0c;进行恰当的归一化 缩放 2 loss 的计算中存在除以0&#xff0c; log(0…...

[ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务

本文收录于【#云计算入门与实践 - AWS】专栏中&#xff0c;收录 AWS 入门与实践相关博文。 本文同步于个人公众号&#xff1a;【云计算洞察】 更多关于云计算技术内容敬请关注&#xff1a;CSDN【#云计算入门与实践 - AWS】专栏。 本系列已更新博文&#xff1a; [ 云计算 | …...

第二十章:多线程

进程 线程的特点 1.进程是资源分配的最小单位&#xff0c;线程是最小的执行单位 2.一个进程可以有多个线程 3.线程共享进程资源 package twentyth; public class ThreadTest extends Thread { public void run() { for (int i 1; i < 10; i) {//继承重…...

CentOS 7启动时报“Started Crash recovery kernel arming.....shutdown....”问题处理过程

有台虚拟机由于CPU负载过高而宕机&#xff0c;宕机重启后停在“Started Crash recovery kernel arming…shutdown…”阶段&#xff0c;如下所示&#xff1a; 重置虚拟机&#xff0c;进入grub菜单&#xff0c;按e编辑启动选项&#xff0c;在linux16 行末&#xff0c;加上&…...

零售业供应链数字化实战:拆解爱室丽Ashley的EDI项目如何用3周快速上线(AS2+API方案解析)

零售业供应链数字化实战&#xff1a;拆解爱室丽Ashley的EDI项目如何用3周快速上线&#xff08;AS2API方案解析&#xff09; 在家居零售行业&#xff0c;供应链效率直接决定了企业的市场竞争力。当订单响应速度慢、库存信息滞后成为常态时&#xff0c;头部企业早已开始通过数字化…...

APK Installer:在Windows上轻松安装Android应用的终极指南

APK Installer&#xff1a;在Windows上轻松安装Android应用的终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上使用Android应用&am…...

别再为Matplotlib中文乱码发愁了!Windows/Mac双系统字体配置保姆级教程

跨平台Matplotlib中文显示终极解决方案&#xff1a;从乱码到优雅呈现 每次在Jupyter Notebook里兴奋地跑完数据分析代码&#xff0c;准备用Matplotlib生成可视化图表时&#xff0c;那些莫名其妙变成方框的中文字符就像一盆冷水浇下来。更糟的是&#xff0c;当你切换Windows和Ma…...

LabVIEW FPGA SPI通信:如何像搭积木一样,快速复用代码到cRIO和智能DAQ?

LabVIEW FPGA SPI通信&#xff1a;跨平台代码复用实战指南 当我们需要将LabVIEW FPGA项目从PCIe板卡迁移到cRIO或智能DAQ时&#xff0c;常常会遇到I/O命名不一致、主机部署位置不同等问题。本文将从工程实践角度&#xff0c;分享如何构建可复用的SPI通信框架&#xff0c;让代码…...

告别if-else!用SVA断言给你的SystemVerilog验证代码做个大瘦身

用SVA断言重构SystemVerilog验证代码&#xff1a;从if-else到高效断言的艺术 在数字芯片验证领域&#xff0c;SystemVerilog Assertions (SVA) 正逐渐成为验证工程师的必备技能。传统验证代码中充斥着大量if-else语句和手写checker&#xff0c;不仅维护成本高&#xff0c;而且难…...

STM32H750驱动正点原子1.3寸屏,这个SPI4参数没设对,屏幕会卡顿黑屏

STM32H750驱动正点原子1.3寸屏的SPI4参数优化指南 第一次在STM32H750核心板上成功点亮正点原子1.3寸屏时&#xff0c;那种成就感确实让人兴奋。但当我在压力测试阶段遇到屏幕突然黑屏、显示卡顿甚至必须连接调试器才能工作的诡异现象时&#xff0c;这种兴奋很快被困惑取代。经过…...

2026届最火的AI辅助写作网站解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现有的人工智能内容方面的检测的系统如今已然能够以高效的状态去识别由机器所生成的文本。要…...

让经典魔兽在Win10/11上焕发新生:Warcraft Helper全面优化指南

让经典魔兽在Win10/11上焕发新生&#xff1a;Warcraft Helper全面优化指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还记得那些在网吧通宵…...

VSCode集成ChatGPT:AI原生编程助手实战与效率提升指南

1. 项目概述&#xff1a;当ChatGPT遇见VSCode 作为一名在开发一线摸爬滚打了十多年的老码农&#xff0c;我经历过从记事本写代码到IDE百花齐放&#xff0c;再到如今AI辅助编程的整个变迁。最近两年&#xff0c;以ChatGPT为代表的大语言模型彻底改变了我们与代码交互的方式。但…...

为什么你的Arduino在Linux上不工作?CH341SER驱动修复全解析

为什么你的Arduino在Linux上不工作&#xff1f;CH341SER驱动修复全解析 【免费下载链接】CH341SER CH341SER driver with fixed bug 项目地址: https://gitcode.com/gh_mirrors/ch/CH341SER 当你在Linux系统上连接基于CH340/CH341芯片的Arduino开发板时&#xff0c;是否…...