openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)

news2024/12/18 23:26:41

需要做template match, 比较注重时间,因此opencv 的普通版本不适用。需要用GPU 的。

下载

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

确保准备好以下内容

1: visual studio (不是vs code)

2:下载后的两个包裹会放在以下结构

这样放的原因是我Ubuntu的Home容量不够多,导致我需要把这些东西放在另一个盘上,其次是这样安装比较干净。
需要自己额外添加 buildinstall 两个 folders

安装要用的conda 环境(optional)

conda create --name detection python=3.9
pip install numpy
conda install -c conda-forge cudatoolkit=11.8 cudnn

Cmake 里需要更改的选项

  • 填完以下的两个框后
  • 就点configure, 这样它就去找opencv那个folder的对应cmake文件,把需要的信息列表显示出来
    在这里插入图片描述3. 以下是要修改的项目(在search里输入以下内容寻找并打勾,不确定的都打上就行)
  • Fast_math
  • CuDA related(with cuda, opencv_dnn_cuda)
  • opencv world
  • extra
  • python 3
  • prefix
  • config_ 删了只剩下release

以下是Python3相关会填入的内容

Ubuntu 版本

/media/xxx/cozynest/anaconda3/envs/detection/bin/python
/media/xxx/cozynest/anaconda3/envs/detection/include/python3.9
/media/xxx/cozynest/anaconda3/envs/detection/lib/libpython3.9.so
/media/xxx/cozynest/anaconda3/envs/detection/lib/python3.9/site-packages/numpy/core/include/numpy
/media/xxx/cozynest/anaconda3/envs/detection/lib/python3.9/site-packages

Windows 版本

F:/build_opencv/install
F:/build_opencv/opencv_contrib/modules
F:/anaconda3/envs/detection/python.exe
F:/anaconda3/envs/detection/include
F:/anaconda3/envs/detection/libs/python3.lib
F:/anaconda3/envs/detection/Lib/site-packages/numpy/core/include
F:/anaconda3/envs/detection/Lib/site-packages
  1. 然后点 configure,继续添加CUDA 的信息,直到在opencv 那一个部分里,Python3 不再出现在 unavailable
  2. 最后才是generate

安装cmake后的包裹

在命令行:
用detection的环境打开

nproc
make -j24

比如我有24 cores
这一步比较时间长
最后得到:
Linking CXX shared module …/…/lib/python3/cv2.cpython-39-x86_64-linux-gnu.so

 sudo make install

例子:/media/xxx/cozynest/anaconda3/envs/detection/lib/python3.9/site-packages/cv2/python-3.10

推荐用anaconda的terminal:

cmake --build "F:\build_opencv\build" --target INSTALL --config Release

以下是最终的成品

在这里插入图片描述

测试

conda 同一个 环境打开terminal:

python
import cv2
cv2.cuda.getCudaEnabledDeviceCount()

如果安装成功就会返回 1

注意

install 这个文件夹不能删!!!所有的conda和 GPU opencv 的联系都靠它

报错

config files not found

这里有可能会出现configure的文件找不到的错误,可以直接copy paste Python 版本的文件,根据缺失文件的名字添加。
上面图片中 config.py, config-3.pyconfig-3.9.py 都是手动制作的。

debug 模式 报错: `GLIBCXX_3.4.30’ not found 没装

在 conda的环境下的terminal输入:

conda install -c conda-forge libstdcxx-ng

4090的GPU 测试:
使用普通的python-opencv template match 耗时0.089秒。
GPU 版本:0.0065秒
快了13.69倍

Oh YEAH, case sealed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吉利银河L6顶配续航测试 记录 方便后续对比

智能模式 不设置保电(优先用电)强动能回收,7成道路开启了L2辅助驾驶。基本无急加速,急减速。 空调开了不到20min 驾驶总时长:3h 5min,平均车速:35Km/h 充电: 慢充到100% 胎压: 2…

使用树莓派(香橙派)搭建文件共享服务器-samba服务器

域网内部通过文件共享来传输文件是一种非常方便的方式,小米摄像头也支持用文件共享smb模式将视频备份到局域网中的文件服务器上。之前我一直使用荣耀pro路由器游戏版,是自带USB接口支持文件共享服务的,接上USB移动硬盘,小米摄像头…

推荐收藏系列!2万字图解Hadoop

今天我用图解的方式讲解pandas的用法,内容较长建议收藏,梳理不易,点赞支持。 学习 Python 编程,给我的经验就是:技术要学会分享、交流,不建议闭门造车。一个人可能走的很快、但一堆人可以走的更远。如果你…

Spring AOP 详细深入讲解+代码示例

Spring AOP 这里是引用 一,介绍 spring aop工作原理图 1.什么是spring aop Spring AOP(Aspect-Oriented Programming)是Spring框架提供的一种面向切面编程的技术。它通过将横切关注点(例如日志记录、事务管理、安全性检查等&a…

solidworks 2024新功能之-让您的工作更加高效

您可以创建杰出的设计,并将这些杰出的设计将融入产品体验中。为了帮您简化和加快由概念到成品的产品开发流程,SOLIDWORKS 2024 涵盖全新的用户驱动型增强功能,致力于帮您实现更智能、更快速地与您的团队和外部合作伙伴协同工作。 SOLIDWORKS…

【JavaEE初阶】 线程池详解与实现

文章目录 🌴线程池的概念🎄标准库中的线程池🍀ThreadPoolExecutor 类🚩corePoolSize与maximumPoolSize🚩keepAliveTime🚩ThreadFactory🚩workQueue🚩RejectedExecutionHandler handl…

思科披露新的IOS XE零日漏洞,用于部署恶意软件植入

导语:思科最近披露了一个新的高危零日漏洞(CVE-2023-20273),该漏洞被积极利用来在已经通过本周早些时候披露的CVE-2023-20198零日漏洞遭到侵害的IOS XE设备上部署恶意植入物。 漏洞披露 思科最近披露了一款名为CVE-2023-20273的高…

Leetcode-Easy题解1-回文数字

目录 解法1解法2 解法1 自己的想法,直接转成字符串首尾俩下标同时遍历比较 class Solution {public boolean isPalindrome(int x) {if(x<0){return false;}String strString.valueOf(x);int i0;for (;i<str.length()>>1;i){if(str.charAt(i)!str.charAt(str.leng…

Unity中Shader阴影的接收

文章目录 前言一、阴影接受的步骤1、在v2f中添加UNITY_SHADOW_COORDS(idx),unity会自动声明一个叫_ShadowCoord的float4变量&#xff0c;用作阴影的采样坐标.2、在顶点着色器中添加TRANSFER_SHADOW(o)&#xff0c;用于将上面定义的_ShadowCoord纹理采样坐标变换到相应的屏幕空间…

DC-4 靶机

DC_4 信息搜集 存活检测 详细扫描 后台网页扫描 网页信息搜集 只有一个登陆界面 漏洞利用 尝试使用 burpsuite 密码爆破 尝试使用用户名 admin 登录管理员页面 成功爆破出密码 happy 登录管理员页面 显示可以使用命令 但只能使用三个命令 继续使用 bp 拦截查看数据包…

【C++】VS2019,关于scanf等的报错及其解决方案

参考资料&#xff1a;B站袁春旭老师的网课 报错一&#xff1a;this function may be unsafe. Consider using scanf_s instead. 如下图 这种错误是因为SDL检查不通过&#xff0c;默认这个检查是开的&#xff0c;如下图&#xff0c; 解决方案&#xff1a;把这个SDL检查关闭即…

5、k8s部署Nginx Proxy Manager

前言 Nginx-Proxy-Manager 是一个基于 Web 的 Nginx 服务器管理工具&#xff0c;它允许用户通过浏览器界面轻松地管理和监控 Nginx 服务器。通过 Nginx-Proxy-Manager&#xff0c;可以获得受信任的 SSL 证书&#xff0c;并通过单独的配置、自定义和入侵保护来管理多个代理。用…

51单片机KeyWard

eg1&#xff1a; 单片机键盘的分类 键盘分为编码键盘和非编码键盘&#xff0c;键盘上闭合键的识别由专用的硬件编码器实现&#xff0c;并产生键编码号或键值得称为编码键盘&#xff0c;如计算机键盘&#xff0c;而靠软件来识别的称为非编码键盘&#xff0c;在单片机组成的各种…

Python数字类型

目录 目标 版本 种类 官方文档 数据运算方法 常用函数 转整数 转浮点数 转绝对值 四舍五入 进制转换 math模块常用函数 目标 掌握Python两种数据类型的使用方法。 版本 Python 3.12.0 种类 数字类型有三种&#xff0c;分别是&#xff1a; 整数&#xff08;int&…

C++类和对象(五) 拷贝构造函数

1 概念 在现实生活中&#xff0c;可能存在一个与你一样的自己&#xff0c;我们称其为双胞胎。那在创建对象时&#xff0c;可否创建一个与已存在对象一某一样的新对象呢&#xff1f; 那在创建对象时&#xff0c;可否创建一个与已存在对象一某一样的新对象呢&#xff1f; 拷贝构造…

Linux高性能编程学习-TCP/IP协议族

一、TCP/IP协议族结构与主要协议 分层&#xff1a;数据链路层、网络层、传输层、应用层 1. 数据链路层 功能&#xff1a;实现网卡驱动程序&#xff0c;处理数据在不同物理介质的传输 协议&#xff1a; ARP&#xff1a;将目标机器的IP地址转成MAC地址RARP&#xff1a;将MAC地…

【Java基础面试四十五】、 介绍一下泛型擦除

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;介绍一下泛型擦除 参考…

2023年10月小程序云开发cms内容管理无法使用,无法同步内容模型到云开发数据库的解决方案

一&#xff0c;问题描述 最近越来越多的同学找石头哥&#xff0c;说cms用不了&#xff0c;其实是小程序官方最近又搞大动作了&#xff0c;偷偷的升级的云开发cms&#xff08;内容管理&#xff09;以下都称cms&#xff0c;不升级不要紧&#xff0c;这一升级&#xff0c;就导致我…

【Matlab】三维绘图函数汇总

本文用于汇总 Matlab 中的三维绘图函数。plot3() 函数用于绘制用参数方程表示的三维曲线。ezplot3() 函数用于三维曲线的符号绘图&#xff0c;需要用参数方程表示。mesh() 函数用于绘制三维曲面网格。surf() 函数用于绘制三维空间曲面。 目录 1. plot3() 2. ezplot3() 3. me…

中医理疗中药材经营小程序商城的作用是什么

对消费者而言&#xff0c;能找到一家靠谱的中医养生馆很重要&#xff0c;但如非朋友介绍或恰好看到纸质广告等&#xff0c;仅依赖线下跑腿很难找到合适的门店&#xff0c;同时也很费时费力。 同时购买相关产品&#xff0c;也只能前往实体店购买或线上第三方商城&#xff0c;当…