常用安装包的路径

/usr/local/cuda

/home/hlj/TensorRT-8.2.5.1/

/opt/nvidia/deepstream/deepstream

/home/hlj/anaconda3/

搭建环境前先确认显卡型号

查看显卡型号,通过网址 https://blog.csdn.net/TFATS/article/details/109161006 (感谢博主)对应方法查看显卡型号,确认显卡类别是否为 T4, V100, A2, A10, A30, A100, RTX Ampere(Ax000/RTX30x0)系列。

确认无误可以在 Ubuntu 20.04 的基础上,开始搭建DeepStream6.1相关环境。

搭建DeepStream6.1-Yolov5

(如下是DS官网指定的必备环境,可以先参考,后面【大环境部署的内容一步一步来,DS就可搭建完成啦】)

Requirements

大环境部署

部署DeepStream6.1

请严格按照如下红色框中的版本匹配【请注意GPU平台需与蓝色框中的型号对应】

主要参考Quickstart Guide — DeepStream 6.1 Release documentation (nvidia.com)来部署。

详细搭建过程如下:

1. 安装依赖:

##如下是Deepstream官网的安装依赖。 (下列命令需依次一行一行的输入,直接复制整段会报错)

$ sudo apt install libssl1.1
$ sudo apt install libgstreamer1.0-0 \
$ sudo apt install gstreamer1.0-tools \
【如果无法下载,需要更换下载源】
sudo apt install libgstrtspserver-1.0-0 \
sudo apt install libjansson4 \
sudo apt install libyaml-cpp-dev \
sudo apt install gcc \
sudo apt install make \
sudo apt install git \
sudo apt install python3

建议按照如下命令安装(下列命令是gstream官网推荐的安装依赖)

 sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
安装完成之后执行如下命令,使指定位置。pkg-config --cflags --libs gstreamer-1.0

安装anaconda示例(这是python的环境,如果不需要使用python,可以不装)

参考:(48条消息) Ubuntu 20.04安装Anaconda3及简单使用_气泡水、的博客-CSDN博客_ubuntu20.04安装anaconda

!!!【执行脚本时不要sudo,否则会安装到root】
进入安装包目录,运行Anaconda脚本bash Anaconda3-5.2.0-Linux-x86_64.sh
或bash Anaconda3-2020.02-Linux-x86_64.sh

一路 Enter 或 Yes ,参照下列截图:

可以切换安装路径,也可以不管它。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ene0Tmo-1665714264358)(C:\Users\C202109\AppData\Roaming\Typora\typora-user-images\image-20220607103832546.png)]

将Anaconda添加到用户环境变量中

vim ~/.bashrc  然后“i”表示插入。
添加下面内容
export PATH="/home/ssj/anaconda3/bin:$PATH"
然后“Esc”,":wq"退出再回车
source一下
source ~/.bashrc

再检查是否安装成功

conda --version
cnda -V

【注】 如果复制安装包的时候复制不进去,参照如下

进入DL目录下
sudo su
ls
chmod 777 -R /home/mec/DL/   # 命令表示对该文件夹设置为可读可写权限

2. 安装NVIDIA driver 510.47.03。如下命令:

下载好安装包后,执行如下命令

chmod 755 NVIDIA-Linux-x86_64-510.47.03.run
sudo ./NVIDIA-Linux-x86_64-510.47.03.run
上述第二条命令执行过程中,有一条是否自动更新和重启的提示时,选择【no】

3. Install CUDA Toolkit 11.6.1 (CUDA 11.6 Update 1)

sudo sh cuda_11.6.1_510.47.03_linux.run --silent --toolkit

添加环境变量

nano ~/.bashrc
插入如下路径 如下 到环境变量中export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.6/lib64
export PATH=$PATH:/usr/local/cuda-11.6/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.6
或(下面这两行比较繁琐,建议插入上面的三行)
export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}然后按Ctrl+X 选择yes  即可退出
再source运行一下
source ~/.bashrc执行nvcc -V会显示版本 说明成功

安装cudnn

Run follow commands to install:

运行下列命令安装:

sudo dpkg -i cudnn-local-repo-ubuntu2004-8.4.0.27_1.0-1_amd64.deb
sudo apt-get update
sudo apt install libcudnn8=8.4.0.27-1+cuda11.6
sudo apt install libcudnn8-dev=8.4.0.27-1+cuda11.6

运行第一句命令时报如下问题

The public CUDA GPG key does not appear to be installed.

提示缺少key,安装key,使用下面的命令(To install the key, run this command)

sudo apt-key add /var/cudnn-local-repo-ubuntu2004-8.4.0.27/7fa2af80.pub

运行sudo apt-key add /var/cudnn-local-repo-ubuntu2004-8.4.0.27/7fa2af80.pub即可解决

运行sudo apt-get update时报没有公钥…可以不用管他

4. Install TensorRT 8.2.5.1

如下步骤:

1. 解压:
tar -xzvf TensorRT-8.2.5.1.Linux.x86_64-gnu.cuda-11.4.cudnn8.2.tar.gz
2. 解压得到TensorRT-8.2.5.1/lib文件夹 Lib添加到环境变量中
vim ~/.bashrci
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/ssf/LD/TensorRT-8.2.5.1/lib"Esc ":wq"  Enter
source ~/.bashrc
3. 安装TensorRT-8.2.5.1
cd TensorRT-8.2.5.1/python
sudo pip3 install tensorrt-8.2.5.1-cp38-none-linux_x86_64.whl
此处 尝试install cp37失败,cp36失败 最终只能cp38成功了
4. 安装python uff wheel文件,当TensorRt与TensorFlow一起使用时,需要安装此项
cd TensorRT-8.2.5.1/uff
sudo pip3 install uff-0.6.9-py2.py3-none-any.whl
5. 安装Python graphsurgeon
cd TensorRT-8.2.5.1/graphsurgeon
sudo pip3 install graphsurgeon-0.4.5-py2.py3-none-any.whl
6. 为了避免deepstream找不到tensorrt库,把tensorrt库和头文件添加到系统路径下
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include
7. 如果要使用python接口的tensort,则需要安装pycuda
pip3 install pycuda
8. 测试
cd ~/TensorRT-8.2.5.1/data/mnist
python3 download_pgms.pycd ~/TensorRT-8.2.5.1/samples/sampleMNIST
make clean
make
cd ~/TensorRT-8.2.5.1/bin
./sample_mnist【执行测试时遇到问题】
提示找不到libcudart.so.11.0 => not found  libcublas.so.11 => not foundlibcublasLt.so.11 => not found
可能环境变量没链接到 将对应库拷贝过来到 TensorRT-8.2.5.1/lib 目录下即可
cp /usr/local/cuda-11.6/lib64/libcublasLt.so.11 TensorRT-8.2.5.1/lib

5. Install librdkafka

如下步骤:

(1)Clone the librdkafka repository from GitHub:

$ git clone https://github.com/edenhill/librdkafka.git

(2)Configure and build the library:

cd librdkafka
git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
make
sudo make install

(3)Copy the generated libraries to the deepstream directory:

$ sudo mkdir -p /opt/nvidia/deepstream/deepstream-6.1/lib
$ sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-6.1/lib

6. Install the DeepStream SDK

确保如下依赖包已安装【再次执行如下命令】
sudo apt-get install -y libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libssl1.0.0 libgstrtspserver-1.0-0 libjansson4sudo apt-get install dkmssudo apt-get install libssl1.1 libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstrtspserver-1.0-0 libjansson4 libyaml-cpp-dev
the DeepStream tar package: deepstream_sdk_v6.1.0_x86_64.tbz2
Navigate to the location of the downloaded DeepStream package to extract and install the DeepStream SDK:(使用DeepStream的安装包安装DeepStream)
$ sudo tar -xvf deepstream_sdk_v6.1.0_x86_64.tbz2 -C /
$ cd /opt/nvidia/deepstream/deepstream-6.1/
$ sudo ./install.sh
$ sudo ldconfig

完成后,检验DeepStream是否安装成功

deepstream-app --version-all

上述命令查看版本是否打印输出如下信息:

deepstream-app version 6.1.0
DeepStreamSDK 6.1.0
CUDA Driver Version: 11.6
CUDA Runtime Version: 11.6
TensorRT Version: 8.2
cuDNN Version: 8.4
libNVWarp360 Version: 2.0.1d3

一般来说,如果下述版本信息打印成功,就代表deepstream环境配置成功了。
通过如下命令运行示例程序

$ cd /opt/nvidia/deepstream/deepstream-6.1/samples/configs/deepstream-app
$ sudo deepstream-app -c <path_to_config_file>

例如:deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

【如果运行时 提示找不到一些库,需要将deepstream-6.1-lib添加到系统lib路径中,如下】

sudo vi /etc/ld.so.conf
在文本后面添加该路径
/opt/nvidia/deepstream/deepstream-6.1/lib/
执行 ldconfig 立即生效
sudo ldconfig

7. DeepStream环境配置成功之后

可以进入到如下路径,并通过对应命令查看显卡性能和显卡型号。

:/usr/local/cuda-11.6/extras/demo_suite$ ./bandwidthTest

输出如下图所示内容,Result = PASS,则代表通过,显卡可正常使用。

8. 若上述已完成,通过conda命令 安装Pytorch

安装pytorch是为了运行python文件( gen_wts_yoloV5.py ),如果不在本地运行,可以不安装。

For YOLOv5 x86 platform: PyTorch >= 1.7.0

使用conda命令创建虚拟环境,并激活虚拟环境

conda create -n yolov5t
conda activate yolov5t
##注: 若激活失败  source activate yolov5t 可成功激活。

输入如下命令,安装pyTorch:(会提示下载并安装一系列的包,占用较长时间)

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

如果由于文件不可读写导致无法安装,需要设置文件权限:

sudo chmod -R 777 ./anaconda3

若上述命令无法安装完成,可通过如下两个文件DS6.1_dependence/torch-1.10.0+cu113-cp38-cp38-linux_x86_64.whl 和 torchvision-0.11.0+cu113-cp38-cp38-linux_x86_64.whl 实现安装:

pip install torch-1.10.0+cu113-cp38-cp38-linux_x86_64.whl
pip install torchvision-0.11.0+cu113-cp38-cp38-linux_x86_64.whl

9. 安装opencv4.2.0(如果没有用到 可以先不安装)

准备安装包:

1.解压opencv
unzip opencv-4.2.0.zip
2.进入到解压后的文件包中
cd opencv-4.2.0
3.安装cmake工具
sudo apt-get install cmake
sudo apt-get update
4.安装依赖库
sudo apt-get install build-essential
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-dev pkg-config
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev git
【
若有些库安装不了提示:E: Unable to locate package …
执行:
sudo add-apt-repository “deb http://security.ubuntu.com/ubuntu xenial-security main”
sudo apt-get update
然后再执行安装不了的那些库,如sudo apt install (无法安装的库名libjasper1 libjasper-dev)
】
5.创建编译目录(build)并进入
cd opencv-4.2.0
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_opencv_cudacodec=OFF -D CMAKE_INSTALL_PREFIX=/usr/local ..
如下提示则表示成功,中间有faild 和 no 可以不用管它。
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ssf/DL/opencv-4.2.0/build
6. 继续
make -j8   //8个线程编译,查看cpu核数量
7. 安装
sudo make install

完成上述所有内容,可以搭建yolov5了~

下面的内容概括来说就是为了生成deepstream-yolov5配置文件的相关参数。

搭建Deepstream-yolov5

将DeepStream-Yolo-master拷贝到:/opt/nvidia/deepstream/deepstream-6.1/sources/目录下

1. yoloV5准备模型 .wts 和 .cfg 文件

完成后按照如下步骤的准备工作:

yolov5相关工作

将 ./DeepStream-Yolo-master/utils/gen_wts_yoloV5.py 拷贝到 yolov5-master 文件夹下。

将训练好的模型文件(yolov5s.pt)文件拷贝到 yolov5-master 文件夹下。

将上述(yolov5s.pt)对应的**模型文件(./models/yolov5s.yaml)**文件对应。

如下命令生成对应的yolov5.cfg 和 yolov5.wts文件

conda activate yolov5t
python3 gen_wts_yoloV5.py -w yolov5s.pt
若上述执行不出结果,则使用命令 python gen_wts_yoloV5.py -w yolov5s.pt 尝试。使用本地系统打开【Anaconda Prompt(anaconda3.8)】亦可生成对应.cfg和.wts文件。方法如下:
①. 进入D:\yolov5train\yolov5_5.0_ce输入命令conda activate yolov5t以激活yolov5t环境。
②. 确保对应的yolov5s.pt文件在相应的【weights】目录下。
③. python gen_wts_yoloV5.py -w yolov5s.pt即可生成。
!!!但不知道为什么 本地可以生成对应文件,但放在deepstream对应目录下会报错如下:
Assertion `count > 0 && "Invalid weight map file."
!!!暂时还没找到是什么原因,初步怀疑是TRT环境或显卡驱动的问题。

【执行上述命令的时候 提示No module named ‘***’,则需要依次安装对应的包】

pip3 install pyyaml【yaml】
#  sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python【cv2】
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python【cv2】
conda install pandas 【pandas】
conda install matplotlib
conda install tqdm
conda install seaborn

python3 gen_wts_yoloV5.py -w yolov5s.pt执行结束将生成yolov5s.wts和yolov5s.cfg文件

2. 运行deepstream-app

将上述yolov5.cfg 和 yolov5.wts文件拷贝到 ./DeepStream-Yolo-master目录下。

进入目录 ./DeepStream-Yolo-master

cd ./DeepStream-Yolo-master

执行

CUDA_VER=11.6 make -C nvdsinfer_custom_impl_Yolo

编辑配置文件 config_infer_primary_yoloV5.txt 对应自己的model信息

[property]
...
# 0=RGB, 1=BGR, 2=GRAYSCALE
model-color-format=0
# CFG
custom-network-config=yolov5n.cfg
# WTS
model-file=yolov5n.wts
# Generated TensorRT model (will be created if it doesn't exist)
# model-engine-file=model_b1_gpu0_fp32.engine
# Model labels file
labelfile-path=labels.txt
# Batch size
batch-size=1
# 0=FP32, 1=INT8, 2=FP16 mode
network-mode=0
# Number of classes in label file
num-detected-classes=80
...
[class-attrs-all]
# IOU threshold
nms-iou-threshold=0.45
# Score threshold
pre-cluster-threshold=0.25

编辑 deepstream_app_config.txt 文件对应上述config_infer_primary_yoloV5.txt配置文件

[primary-gie]
enable=1
gpu-id=0
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary_yoloV5.txt

运行程序命令:deepstream-app -c deepstream_app_config.txt

deepstream-app -c deepstream_app_config.txt

deepstream6.1-YOLOv5部署相关推荐

  1. jetson nano yolov5部署及USB摄像头实时检测 初次尝试

    (1条消息) Jetson nano部署Yolov5 --从烧录到运行 1:1复刻全过程_IamYZD的博客-CSDN博客_jetson nano部署yolov5 1.yolov5部署 学校发的板子不 ...

  2. Yolov5部署TensorRT加速

    Yolov5部署TensorRT加速 一.软件安装 1.安装Visual Studio 2017 2.安装CUDA11.0 3.安装cudnn8.0.5 4.安装Opencv3.4.0 5.安装Ten ...

  3. 【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)

    文章目录 前言 一.关于YOLOv5 二.YOLOv5模型的获取 1.下载源码 2.安装模块 3.下载预训练模型 4.转换为onnx模型 三.LabVIEW+TensorRT的yolov5部署实战(y ...

  4. NCNN+Int8+yolov5部署和量化

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 [引言] 刚开始准备写yolov5+ncnn+int8量化的教程,却在yolov5的量化上遇到了麻烦, ...

  5. Yolov5部署训练及代码解读

    5.Yolov5实操训练(重点) 一.前言 1.集成的资源,包括我自己做成的成品,可以直接train与detect.需要加qq群:938162384 2.本文目的主要是能够让读者复现,直接使用,而且少 ...

  6. yolov5部署以及训练10种中药材分类数据集

    记录以下我使用yolov5来训练自己数据集的过程以及遇到的坑~~~ 首先要部署yolov5的环境 首先去github上下载yolov5直达 安装依赖包 编译环境我是用的是anaconda 创建的虚拟环 ...

  7. yolov5部署android教程

    参考部署流程 环境准备:本文讲的是在window上面进行 模型训练完成后 第一步: 在本地yolov5项目执行 先安装onnx python -m pip install --user onnx py ...

  8. yolov5部署在瑞星微1126开发板(末尾彩蛋)

    本文分为两部分,分别是pc端yolov5演示,以及把yolov5模型部署到开发板.这是一套整体流程哦!!!对了,实现的功能是在高速路上完成各种检测:汽车爆炸,汽车碰撞,行人进入高速,应急车道占用,汽车 ...

  9. 【教程】基于TensorFlow Lite的yolov5部署过程

    一.文件转化:先将pt文件转化为tflite,我是基于zldrobit大神的pull代码进行文件转化和后续部署的.但刚开始关于pt文件的转换我是采用yolov5官方的方法,不过按着zldrobit大神 ...

  10. MindSDK+yolov5部署及python版图像视频推理实现

    一.前言 基于华为云上的MindX SDK + Pytorch yolov5 应用案例: https://bbs.huaweicloud.com/forum/thread-118598-1-1.htm ...

最新文章

  1. RxSwift技术路线与参考资料
  2. 阿里云盘又送福利啦?空间大时间长,不要犹豫快上车!
  3. 文本转声音,TTS语音实现
  4. STM32F103CB 芯片FLASH DOWNLOAD编程地址范围设置相关问题记录
  5. 在wdos系统下搭建Dns服务器
  6. VSCode配置Python编辑器
  7. 在Data Lake Analytics中使用视图
  8. ComponentOne FlexGrid for WinForms 中文版快速入门(4)--设置单元格格式
  9. 【数据校验杂谈】循环冗余检验 (CRC) 算法原理
  10. 杭州之行--记杭电网新恩普杯程序设计邀请赛
  11. 《机器学习实战》学习总结(三)朴素贝叶斯在文本分类的应用
  12. 软件工程概论之登录页面
  13. 关于惠普hp服务器开机时F10菜单变成F10 Function Disabled的解决方法
  14. django初体验 学习笔记
  15. Python+Tensorflow+CNN实现车牌识别
  16. 无线通信(1)-无线通信链路结构
  17. CentOS 系统及各版本介绍
  18. Origin下载安装教程(亲测有用)
  19. 室外宽温1口千兆光纤收发器工业导轨式发送机接收机单模单纤单电口
  20. Phaserjs基础教程第八节:Weapon对象

热门文章

  1. 如何把EAN13码外观设置和code128码一样
  2. 论文阅读笔记--Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods 人体姿态估计综述
  3. 华为鸿蒙系统nova5i,华为nova 5i评测:极点全面屏+后置2400万AI四摄 让美更进一步...
  4. 拉上谷歌高通 三星围攻苹果
  5. tableau高级绘图(六)--tableau绘制范围点图
  6. 欢祝圣诞——北斗星的爱!
  7. Unity Shader特效:人物模型动态流动光特效
  8. js仿苹果风格弹出框alert插件
  9. 4.9 黑名单数据库的界面展示
  10. 使用C# 创建windows 服务