0
点赞
收藏
分享

微信扫一扫

网络编程----TCP/IP协议

晚熟的猫 2024-08-13 阅读 42

简介

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

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

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

安装命令:
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

执行.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

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

二.cuDNN安装

2.下载对应cuda版本的cudnn,解压后将cuDNN头文件和库文件复制到CUDA安装目录:
sudo cp include/cudnn* /usr/local/cuda/include
sudo cp lib/libcudnn* /usr/local/cuda/lib64
3.更改文件权限:
sudo chmod a+r /usr/local/cuda/include/cudnn*
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
三.OpenCV编译
2.解压源码后,在根目录下载执行:
git clone https://github.com/opencv/opencv_contrib.git
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

在这里插入图片描述

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

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

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

四.OpenCV编译参数说明

在这里插入图片描述

举报

相关推荐

0 条评论