Opencv cuda版本在ubuntu22.04中安装办法,解决Could NOT find CUDNN的办法

news2024/12/22 20:54:27

文章目录

    • 概要
    • 下载cuda的runfile版本
    • 配置环境变量
    • 官网下载cudann
    • 安装Opencv依赖包
    • 下载opencv和opencv_contrib并解压
    • 准备编译
    • 安装anaconda环境
    • 执行编译命令
    • 安装OpenCV并检查是否安装成功

概要

解决以下安装问题:

-- Could NOT find CUDNN: Found unsuitable version "..", but required is at least "7.5" (found CUDA_cudnn_LIBRARY-NOTFOUND)

下载cuda的runfile版本

连接地址:
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local
在这里插入图片描述
注意,请下载对应驱动的版本。
在这里插入图片描述
默认驱动和 cuda toolkit都会安装成功!

配置环境变量

在这里插入图片描述

官网下载cudann

官网下载cuda对应版本的cudnn:
https://developer.nvidia.com/rdp/cudnn-archive#a-collapse805-111
这里我们选择的是最新的cudnn版本v8.6.0。
在这里插入图片描述
cudnn 8的版本,将有版本号的头文件单独写了一个文件cudnn_version.h,而不再是之前的cudnn.h,所以需要执行的是以下语句(这里容易出错。8.x以后的cudnn需要执行此语句.)

sudo cp /usr/include/cudnn*.h /usr/local/cuda/include/
sudo cp /usr/lib/libcudnn* /usr/local/cuda/lib64/

安装Opencv依赖包

sudo apt-get update
sudo apt-get upgrade
sudo apt install cmake pkg-config unzip yasm git checkinstall libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libavresample-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev libfaac-dev libmp3lame-dev libvorbis-dev libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd ~
sudo apt-get install libgtk-3-dev libtbb-dev libatlas-base-dev gfortran

下载opencv和opencv_contrib并解压


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


准备编译

cd opencv-4.5.5
mkdir build
cd build

安装anaconda环境

到以下环境安装anaconda
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

执行编译命令

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D CMAKE_C_COMPILER=/usr/bin/gcc-9 \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_opencv_python3=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_TBB=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=8.0 \
-D WITH_CUBLAS=1 \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/qwen/opencv_contrib/modules \
-D PYTHON3_EXECUTABLE=/home/qwen/anaconda3/bin/python3.7m \
-D PYTHON3_INCLUDE_DIR=/home/qwen/anaconda3/include/python3.7m \
-D PYTHON3_LIBRARY=/home/qwen/anaconda3/lib/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/home/qwen/anaconda3/lib/python3.7/site-packages/numpy/core/include \
-D PYTHON3_PACKAGES_PATH=/home/qwen/anaconda3/lib/python3.7/site-packages \
-D PYTHON_DEFAULT_EXECUTABLE=/home/qwen/anaconda3/bin/python3.7m \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.9.4 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include  \
-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
-D OPENCV_PYTHON3_INSTALL_PATH=/home/qwen/anaconda3/lib/python3.7/site-packages \
-D OpenCV_INCLUDE_DIRS=/usr/include/openjpeg-2.3 \
-D WITH_WEBP=OFF \
-D WITH_OPENCL=OFF \
-D ETHASHLCL=OFF \
-D ENABLE_CXX11=ON \
-D BUILD_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D BUILD_OPENJPEG=ON \
-D WITH_V4L=ON \
-D WITH_QT=OFF \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D HAVE_opencv_python3=ON   ..

以下编译命令,需要更换为自己的地址

-D CUDA_ARCH_BIN=8.9.4 \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/qwen/opencv_contrib-4.5.2/modules \
-D PYTHON3_EXECUTABLE=/home/qwen/anaconda3/bin/python3.7m \
-D PYTHON3_INCLUDE_DIR=/home/qwen/anaconda3/include/python3.7m \
-D PYTHON3_LIBRARY=/home/qwen/anaconda3/lib/libpython3.7m.so \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/home/qwen/anaconda3/lib/python3.7/site-packages/numpy/core/include \
-D PYTHON3_PACKAGES_PATH=/home/qwen/anaconda3/lib/python3.7/site-packages \
-D PYTHON_DEFAULT_EXECUTABLE=/home/qwen/anaconda3/bin/python3.7m \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.9.4 \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include  \
-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
-D OPENCV_PYTHON3_INSTALL_PATH=/home/qwen/anaconda3/lib/python3.7/site-packages \

编译成功标识:
在这里插入图片描述

安装OpenCV并检查是否安装成功

在这里插入图片描述
执行make后日志信息如下:


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

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

相关文章

OpenCascade绘制贝塞尔曲线

贝塞尔曲线有着很多特殊的性质, 在图形设计和路径规划中应用都非常广泛。 贝塞尔曲线完全由其控制点决定其形状, n个控制点对应着n-1阶的贝塞尔曲线,并且可以通过递归的方式来绘制。 一阶: 二阶: 高阶: …

雷士、书客、小米的护眼台灯谁的性价比最高?三款护眼台灯真实测评

护眼台灯怎么选一直是许多家长为孩子选台灯时的一个大难题,主要因为市场上的台灯种类太多,而且这些产品中混杂了许多不专业品牌,甚至包括许多劣质台灯和网红品牌!同时也经常能够看到报道很多“抽检不合格”的情况发生,…

S08-如何冻结表格行与列

通常表格第一行或第一列的数据都是数据归类的标题 所以比较常用到的是冻结首行首列 具体操作是点击菜单栏的“开始”-“冻结窗格”“冻结首行”

图像语义分割 FCN图像分割网络网络详解

图像语义分割 FCN图像分割网络网络详解 0、介绍1、VGG16网络结构2、转置卷积3、FCN-32S、FCN-16S,FCN-8S网络结构4、损失函数5、膨胀卷积6、FCN(Backbone-ResNet-50)6.1 项目框架6.2 ResNet50网络结构6.3 FCN(Backbone-ResNet-50)网络结构6.4 FCN(Backbone-ResNet-5…

关于接口测试——自动化框架的设计与实现

一、自动化测试框架 在大部分测试人员眼中只要沾上“框架”,就感觉非常神秘,非常遥远。大家之所以觉得复杂,是因为落地运用起来很复杂;每个公司,每个业务及产品线的业务流程都不一样,所以就导致了“自动化…

LVS和keepalived

Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器&#x…

怎么自制gif动画?简单一招快速搞定

众所周知gif动图的画面非常的丰富生动,并且体积小传播方便,在当下的网络中是非常的受欢迎。那么,这种gif格式的图片是怎么制作的呢?下面,给大家分享一款专业的gif动态图片制作(https://www.gif.cn/&#xf…

Ubuntu 安装PostgreSQL

网上有各种版本的,也可以去官网看官方的文档。我是下载的PostgreSQL-11.4版本的。找到以后直接复制网上的压缩包链接就可以。 $ mkdir /opt/postgresql && cd /opt/postgresql $ wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz…

如何计算3种卷积之后的尺寸(普通卷积,转置卷积,空洞卷积)

文章目录 前言一、普通卷积二、转置卷积三、空洞卷积 前言 三种卷积之后的feature map的尺寸如何计算。包括普通卷积,转置卷积,空洞卷积。可以在下面这个链接看到三种卷积的动态图。 卷积动态图 一、普通卷积 普通卷积比较简单了,其计算方式…

由于找不到msvcr110.dll 无法继续执行的解决方法分享(最新)

msvcp110.dll 是 Microsoft Visual C 2010 Redistributable Package 中的一个组件,它包含了一些运行时库文件。当计算机缺少这个文件时,可能会出现一些问题,如程序无法正常运行、系统不稳定等。下面是 6 种修复方法: 第1种方法&am…

内网穿透的应用-结合内网穿透实现在线远程Linux DataEase,数据可实时进行可视化分析

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

华为小型智能园区网络解决方案

云时代来袭,数字化正在从园区办公延伸到生产和运营的方方面面,智慧校园,柔性制造,掌上金融和电子政务等,面对各种各样的新兴业态的涌现,企业需要构建一张无所不联、随心体验、业务永续的全无线网络&#xf…

数据采集技术在MES管理系统中的应用及效果

在现代制造业中,MES生产管理系统已成为生产过程中不可或缺的一部分。MES管理系统能够有效地将生产计划、生产执行、质量管理等各个生产环节有机地衔接起来,从而实现生产过程的全面优化。本文将以某车间为例,探讨结合MES系统的数据采集技术的应…

10.正则表达式匹配

10.正则表达式匹配 上述5种可匹配情况的举例,便于理解: 1、a与ab星号是匹配的,分析:a与a匹配,让 b星号看作出现0次。 2、abb与ab*匹配,分析:ab与ab星号匹配,让b多出现1次时&#xff…

Windows10关闭小娜最好方法是什么?

Windows10关闭小娜最好方法是什么?Windows10系统内的小娜可以帮助大家实现各种操作和提供一系列的便捷功能。但是,有些用户并不需要小娜的帮助,所以想要关闭小娜功能,下面小编给大家介绍关闭Windows10系统内小娜的最好方法&#x…

一次对app使用socket通信的渗透思路记录

0x1 概述 ​ 本篇文章记叙了一次测试的目标为app,且该app采用了socket进行通信时,一个非常便秘的渗透测试思路。 0x2 app分析 ​ 首先拿到app,对其使用VPN代理抓包、WIFI代理抓包均未果,于是决定脱壳看看,使用MT管理…

【VsCode】vscode创建文件夹有小图标显示和配置

效果 步骤 刚安装软件后, 开始工作目录下是没有小图标显示的。 如下图操作,安装vscode-icons 插件,重新加载即可 创建文件夹,显示图标如下:

小白的二叉树(C语言实现)

前言: 二叉树属于数据结构的一个重要组成部分,很多小白可能被其复杂的外表所吓退,但我要告诉你的是“世上无难事,只怕有心人”,我将认真的对待这篇博客,我相信只要大家敢于思考,肯定会有所收获…

040:vue项目中 transition 动画实现推拉门效果

第040个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

Embeddig技术与应用 (1) :Embedding技术发展概述及Word2Vec

编者按:嵌入(Embedding)是机器学习中一种将高维稀疏向量转换为低维稠密向量的技术。其通常用于处理自然语言、图像等高维离散数据。 嵌入能够有效地解决维度灾难问题,减少存储和计算成本,同时提高模型的表达能力。我们还可以通过得到的嵌入向…