deepstream6.1-YOLOv5部署
常用安装包的路径
/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
Requirements
DeepStream 6.1 on x86 platform
大环境部署
部署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部署相关推荐
- jetson nano yolov5部署及USB摄像头实时检测 初次尝试
(1条消息) Jetson nano部署Yolov5 --从烧录到运行 1:1复刻全过程_IamYZD的博客-CSDN博客_jetson nano部署yolov5 1.yolov5部署 学校发的板子不 ...
- Yolov5部署TensorRT加速
Yolov5部署TensorRT加速 一.软件安装 1.安装Visual Studio 2017 2.安装CUDA11.0 3.安装cudnn8.0.5 4.安装Opencv3.4.0 5.安装Ten ...
- 【YOLOv5】LabVIEW+TensorRT的yolov5部署实战(含源码)
文章目录 前言 一.关于YOLOv5 二.YOLOv5模型的获取 1.下载源码 2.安装模块 3.下载预训练模型 4.转换为onnx模型 三.LabVIEW+TensorRT的yolov5部署实战(y ...
- NCNN+Int8+yolov5部署和量化
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 [引言] 刚开始准备写yolov5+ncnn+int8量化的教程,却在yolov5的量化上遇到了麻烦, ...
- Yolov5部署训练及代码解读
5.Yolov5实操训练(重点) 一.前言 1.集成的资源,包括我自己做成的成品,可以直接train与detect.需要加qq群:938162384 2.本文目的主要是能够让读者复现,直接使用,而且少 ...
- yolov5部署以及训练10种中药材分类数据集
记录以下我使用yolov5来训练自己数据集的过程以及遇到的坑~~~ 首先要部署yolov5的环境 首先去github上下载yolov5直达 安装依赖包 编译环境我是用的是anaconda 创建的虚拟环 ...
- yolov5部署android教程
参考部署流程 环境准备:本文讲的是在window上面进行 模型训练完成后 第一步: 在本地yolov5项目执行 先安装onnx python -m pip install --user onnx py ...
- yolov5部署在瑞星微1126开发板(末尾彩蛋)
本文分为两部分,分别是pc端yolov5演示,以及把yolov5模型部署到开发板.这是一套整体流程哦!!!对了,实现的功能是在高速路上完成各种检测:汽车爆炸,汽车碰撞,行人进入高速,应急车道占用,汽车 ...
- 【教程】基于TensorFlow Lite的yolov5部署过程
一.文件转化:先将pt文件转化为tflite,我是基于zldrobit大神的pull代码进行文件转化和后续部署的.但刚开始关于pt文件的转换我是采用yolov5官方的方法,不过按着zldrobit大神 ...
- MindSDK+yolov5部署及python版图像视频推理实现
一.前言 基于华为云上的MindX SDK + Pytorch yolov5 应用案例: https://bbs.huaweicloud.com/forum/thread-118598-1-1.htm ...
最新文章
- RxSwift技术路线与参考资料
- 阿里云盘又送福利啦?空间大时间长,不要犹豫快上车!
- 文本转声音,TTS语音实现
- STM32F103CB 芯片FLASH DOWNLOAD编程地址范围设置相关问题记录
- 在wdos系统下搭建Dns服务器
- VSCode配置Python编辑器
- 在Data Lake Analytics中使用视图
- ComponentOne FlexGrid for WinForms 中文版快速入门(4)--设置单元格格式
- 【数据校验杂谈】循环冗余检验 (CRC) 算法原理
- 杭州之行--记杭电网新恩普杯程序设计邀请赛
- 《机器学习实战》学习总结(三)朴素贝叶斯在文本分类的应用
- 软件工程概论之登录页面
- 关于惠普hp服务器开机时F10菜单变成F10 Function Disabled的解决方法
- django初体验 学习笔记
- Python+Tensorflow+CNN实现车牌识别
- 无线通信(1)-无线通信链路结构
- CentOS 系统及各版本介绍
- Origin下载安装教程(亲测有用)
- 室外宽温1口千兆光纤收发器工业导轨式发送机接收机单模单纤单电口
- Phaserjs基础教程第八节:Weapon对象
热门文章
- 如何把EAN13码外观设置和code128码一样
- 论文阅读笔记--Monocular Human Pose Estimation: A Survey of Deep Learning-based Methods 人体姿态估计综述
- 华为鸿蒙系统nova5i,华为nova 5i评测:极点全面屏+后置2400万AI四摄 让美更进一步...
- 拉上谷歌高通 三星围攻苹果
- tableau高级绘图(六)--tableau绘制范围点图
- 欢祝圣诞——北斗星的爱!
- Unity Shader特效:人物模型动态流动光特效
- js仿苹果风格弹出框alert插件
- 4.9 黑名单数据库的界面展示
- 使用C# 创建windows 服务