【nvidia jetson xavier】Deepstream 自定义检测Yolo v5模型部署

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 【nvidia jetson xavier】Deepstream 自定义检测Yolo v5模型部署

Deepstream 自定义检测Yolo v5模型部署

依照四部署yolo v5 环境。

Convert PyTorch model to wts file

  1. Download repositories
git clone https://github.com/wang-xinyu/tensorrtx.git
git clone https://github.com/ultralytics/yolov5.git
  1. Download latest YoloV5 (YOLOv5s, YOLOv5m, YOLOv5l or YOLOv5x) weights to yolov5 folder (example for YOLOv5s)
wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt -P yolov5/
  1. Copy gen_wts.py file (from tensorrtx/yolov5 folder) to yolov5 (ultralytics) folder
cp tensorrtx/yolov5/gen_wts.py yolov5/gen_wts.py
  1. 复制检测检测Yolo v5 模型best.pth到yolov5 folder
  2. Generate wts file
cd yolov5
python3 gen_wts.py best.pt

yolov5s.wts file will be generated in yolov5 folder

【错误】No module named tqdm

pip install tqdm

【错误】No module named seaborn

pip3 install seaborn

因matplotlib无法正常安装导致seaborn无法安装,尝试:

python --version
python -m pip install seaborn

再次因matplotlib失败

尝试:

https://toptechboy.com/

https://blog.csdn.net/LYiiiiiii/article/details/119052823

sudo apt-get install python3-seaborn

再次执行

python3 gen_wts.py best.pt

【错误】no module named numpy.testing.nosetester

发生这种情况的原因是numpy和之间的版本不兼容scipynumpy在其最新版本中已弃用numpy.testing.nosetester

尝试

pip install scipy

【报错】No lapack/blas resources found

尝试https://blog.csdn.net/liulangdeshusheng/article/details/52433075

遇到的问题:
no lapack/blas resources found 
解决方法,安装lapack
sudo apt-get install liblapack-dev 
然后重新安装scipy,这次遇到了不一样的问题。
遇到的问题:
error: library dfftpack has Fortran sources but no Fortran compiler found 
解决方法,安装Fortran compiler:
sudo apt-get install gfortran

再次执行

python3 gen_wts.py best.pt

生成 best.wts

依照训练的Yolo v5参数对yololayer.h和yolov5.cpp进行修改

https://zhuanlan.zhihu.com/p/365191541

1.查看Yolo v5的训练参数:

https://www.icode9.com/content-3-774443.html

  • data文件夹下查看myvoc.yaml文件查找对应类别数
  • weights文件夹下查看预训练模型版本-比如yolov5m

2、修改yololayer.h和yolov5.cpp文件,主要修改对应的参数和我们训练时候保持一致,不然会报错

  • 对yololayer.h修改类别数
  • 对yolov5.cpp主要需要根据显存大小调试batchsize大小,一般设成1就可以

Convert wts file to TensorRT model

根据https://github.com/DanaHan/Yolov5-in-Deepstream-5.0的说明,在Build tensorrtx/yolov5之前还需要:

Important Note:

You should replace yololayer.cu and hardswish.cu file in tensorrtx/yolov5

  1. Build tensorrtx/yolov5
cd tensorrtx/yolov5
mkdir build
cd build
cmake ..
make
  1. Move generated yolov5s.wts file to tensorrtx/yolov5 folder (example for YOLOv5s)
cp yolov5/yolov5s.wts tensorrtx/yolov5/build/yolov5s.wts
  1. Convert to TensorRT model (yolov5s.engine file will be generated in tensorrtx/yolov5/build folder)
sudo ./yolov5 -s best.wts best.engine m
  1. Note: by default, yolov5 script generate model with batch size = 1 and FP16 mode.
#define USE_FP16  // set USE_INT8 or USE_FP16 or USE_FP32
#define DEVICE 0  // GPU id
#define NMS_THRESH 0.4
#define CONF_THRESH 0.5
#define BATCH_SIZE 1

Edit yolov5.cpp file before compile if you want to change this parameters.

We can get ‘best.engine’ and ‘libmyplugin.so’ here for the future use.


AIEarth是一个由众多领域内专家博主共同打造的学术平台,旨在建设一个拥抱智慧未来的学术殿堂!【平台地址:https://devpress.csdn.net/aiearth】 很高兴认识你!加入我们共同进步!

目录
相关文章
|
算法 计算机视觉
图像处理常用算法—6个算子 !!
图像处理常用算法—6个算子 !!
735 2
|
计算机视觉 Python
yolov5+deepsort目标检测与跟踪(毕业设计+代码)
yolov5+deepsort目标检测与跟踪(毕业设计+代码)
|
存储 编解码 Android开发
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888等图像色彩编码格式区别
NV21、NV12、YV12、RGB、YUV、RGBA、RGBX8888都是常见的图像颜色编码格式,它们之间的主要区别在于色彩空间和数据排列方式。
336 0
|
设计模式 API
【设计模式】适配器和桥接器模式有什么区别
【设计模式】适配器和桥接器模式有什么区别
273 1
|
存储 传感器 定位技术
Landsat系列卫星遥感影像数据USGS中批量下载多张图像的方法
Landsat系列卫星遥感影像数据USGS中批量下载多张图像的方法
308 1
|
Python
时间序列去趋势化和傅里叶变换
在计算傅里叶变换之前对信号去趋势是一种常见的做法,特别是在处理时间序列时。在这篇文章中,我将从数学和视觉上展示信号去趋势是如何影响傅里叶变换的。
858 0
|
机器学习/深度学习 算法 PyTorch
Linear Regression with PyTorch 用PyTorch实现线性回归
Linear Regression with PyTorch 用PyTorch实现线性回归
256 0
|
Linux Windows
嵌入式Linux系列第13篇:USB摄像头拍照
嵌入式Linux系列第13篇:USB摄像头拍照
|
前端开发 JavaScript Java
前端LayUI框架快速上手实现登入注册
前端LayUI框架快速上手实现登入注册
377 0
|
运维 监控 安全
数字化安全生产平台 DPS 重磅发布
十四五规划下,各行各业全面加速数字化转型与升级。随着企业数字化业务规模变大,迭代速度加快,系统复杂度越来越高,如何保障业务稳定性这一话题也变得愈发重要。
数字化安全生产平台 DPS 重磅发布

热门文章

最新文章