文章目录
- 引言
- 一.环境安装
- 1、yolov5环境安装
- 2、deepstream环境安装
- 二、源码文件说明
- 三.wts与cfg生成
- 1、获得wts与cfg
- 2、修改wts
- 四.libnvdsinfer_custom_impl_Yolo.so库生成
- 五.修改配置文件
- 六.运行demo
引言
DeepStream 是使用开源 GStreamer 框架构建的优化图形架构,用于构建具有AI能力的应用程序的流分析工具包。它以流作为输入,即从USB/CSI/RTSP相机中获取流数据,DeepStream SDK 可以作为许多视频分析解决方案的基础层。DeepStream 提供不同系统平台下的安装方法,Ubuntu系统下的dGPU(独立显卡),RedHat系统下的dGPU(独立显卡),特别是Jetson平台。deepstream可以说是快速实现车载摄像头或道路等摄像头拉视频流,可使用默认pipeline或构建自定义pipeline实现某些工程部署与加速的框架。这里需简答说下deepstream加速是由于使用gpu的tensorrt方式部署AI模型,读取视频流编解码也使用了gpu加速。另外需说明,目前高版本的deepstean已可支持激光雷达数据处理。而本文主要是介绍实现基于deepstram框架部署yolov5模型(或自己模型)方法与实现过程。
源码路径:点击这里
官网示例图:
一.环境安装
1、yolov5环境安装
参考官网:点击这里
2、deepstream环境安装
参考官网:点击这里
二、源码文件说明
我已将生成so库与wts、cfg文件的相关代码已放入链接中,可自行下载点击这里,如下图:
三.wts与cfg生成
1、获得wts与cfg
将gen_wts_yoloV5.py复制到yolov5-6.0中,运行此文件,如下图所示:
2、修改wts
通过查看wts有多少行,获得模型层,并在wts文件头行添加数字,如下图所示:
修改如下:
说明:n与s是291,m是401
四.libnvdsinfer_custom_impl_Yolo.so库生成
在DeepStream-Yolo路径下执行以下命令:
CUDA_VER=11.4 make -C nvdsinfer_custom_impl_Yolo
出现如下编译:
编译成功后会出现libnvdsinfer_custom_impl_Yolo.so,如下图:
五.修改配置文件
主要修改文件路径,如下图所示:
六.运行demo
$cd /opt/nvidia/deepstream/deepstream-6.2/sources/DeepStream-Yolo
$deepstream-app -c deepstream_app_config.txt
初次加载模型,需要构建engine转换,时间较长,加载完后会产生engine文件,不删除,下次运行无需编译可快速运行。
加载好模型会出现*.engine文件,如下所示:
运行成功会出现如下所示: