当前位置:   article > 正文

OpenCV + CUDA + cuDNN模块编译_opencv编译cuda

opencv编译cuda

简介

  在追求高端性能与资源优化并重的应用场景中,如边缘计算设备或资源受限的开发板上运行YOLO等复杂深度学习模型,采用C++结合OpenCV与GPU加速技术相较于传统的Python环境展现出显著优势。这种策略不仅极大地提升了执行效率,还显著降低了运行时资源消耗,是实现实时物体检测与识别的理想选择。
  C++运行YOLO,安装环境稍微复杂些,不像Python一键安装pip包。本案例使用了GPU加速算法运行,所以编译OpenCV的时候需要开启CUDA和DNN模块。

一.CUDA安装
访问下载地址,选择对应的版本,这里我安装的是11.7.0版本
https://developer.nvidia.com/cuda-toolkit-archive
  • 1
  • 2

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

安装命令:
wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run
  • 1
  • 2
  • 3

执行.run 程序后,等待一会输入accept
在这里插入图片描述
已经安装过显卡驱动的话,Driver这里可不用选择
在这里插入图片描述
在这里插入图片描述
安装完成后,根据以上的提示加入环境变量


执行:vim ~/.bashrc,加入以下内容
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
执行:source ~/.bashrc 更新 .bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输入命令进行验证:nvcc -V,出现下面的内容,说明安装成功
在这里插入图片描述

二.cuDNN安装

1.下载地址:https://developer.nvidia.com/rdp/cudnn-archive
在这里插入图片描述


2.下载对应cuda版本的cudnn,解压后将cuDNN头文件和库文件复制到CUDA安装目录:
sudo cp include/cudnn* /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
  • 1
  • 2
  • 3
  • 4
3.更改文件权限:
sudo chmod a+r /usr/local/cuda/include/cudnn*
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
  • 1
  • 2
  • 3
三.OpenCV编译

1.下载源码:https://opencv.org/releases/
在这里插入图片描述

2.解压源码后,在根目录下载执行:
git clone https://github.com/opencv/opencv_contrib.git
  • 1
  • 2
3.CUDA_ARCH_BIN查看方式:
一.git clone https://github.com/NVIDIA-AI-IOT/deepstream_tlt_apps.git.cd deepstream_tlt_apps/TRT-OSS/x86
三.nvcc deviceQuery.cpp -o deviceQuery
四. 执行 ./deviceQuery,得到了Capability Major
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

4.编译环境准备:
一.sudo apt-get update
二.sudo apt-get upgrade
三.sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
四.sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
五.sudo apt-get install libgtk-3-dev libtbb-dev libatlas-base-dev gfortran
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5.开始编译
一.cd opencv-4.10.0 && mkdir build && cd build
 
二.
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_GTK=ON \
-D CUDNN_INCLUDE_DIR=/usr/include \
-D CUDA_ARCH_BIN=7.5 \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_DNN=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON ...make -j$(nproc).sudo make instal
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述
出现红色框的内容,说明模块加载正常,接着执行三和四的步骤即可,编译过程需要二十几分钟;下面是使用C++调用onnx模型的输出结果。
在这里插入图片描述

四.OpenCV编译参数说明

指令 说明
-D CMAKE_BUILD_TYPE=RELEASE 编译opencv的版本。这里是release版本
-D CMAKE_INSTALL_PREFIX=/usr/local 为opencv安装的目录
-D OPENCV_EXTRA_MODULES_PATH=…/opencv_contrib/modules 该选选项为opencv_contrib模块下module文件夹
-D WITH_CUDA=ON 编译CUDA
-D WITH_CUDNN=ON 编译CUDNN
-D WITH_GTK=ON 编译图形界面,cv2.show会用到
-D CUDA_ARCH_BIN=7.5 显卡的算力
-D OPENCV_DNN_CUDA=ON
-D ENABLE_FAST_MATH=1 支持math快速计算
-D CUDA_FAST_MATH=1 cuda的math快速计算
-D WITH_DNN=ON 编译DNN
-D OPENCV_GENERATE_PKGCONFIG=ON … …表示上一层目录

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/974470
推荐阅读
相关标签
  

闽ICP备14008679号