deepstream6.2部署yolov5详细教程与代码解读

文章目录

  • 引言
  • 一.环境安装
    • 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模型(或自己模型)方法与实现过程。

源码路径:点击这里
官网示例图:
deepstream6.2部署yolov5详细教程与代码解读_第1张图片

一.环境安装

1、yolov5环境安装

参考官网:点击这里

2、deepstream环境安装

参考官网:点击这里

二、源码文件说明

我已将生成so库与wts、cfg文件的相关代码已放入链接中,可自行下载点击这里,如下图:
deepstream6.2部署yolov5详细教程与代码解读_第2张图片

三.wts与cfg生成

1、获得wts与cfg

将gen_wts_yoloV5.py复制到yolov5-6.0中,运行此文件,如下图所示:
deepstream6.2部署yolov5详细教程与代码解读_第3张图片

2、修改wts

通过查看wts有多少行,获得模型层,并在wts文件头行添加数字,如下图所示:
deepstream6.2部署yolov5详细教程与代码解读_第4张图片

修改如下:
deepstream6.2部署yolov5详细教程与代码解读_第5张图片

说明:n与s是291,m是401

四.libnvdsinfer_custom_impl_Yolo.so库生成

在DeepStream-Yolo路径下执行以下命令:

CUDA_VER=11.4 make -C nvdsinfer_custom_impl_Yolo

出现如下编译:

deepstream6.2部署yolov5详细教程与代码解读_第6张图片

编译成功后会出现libnvdsinfer_custom_impl_Yolo.so,如下图:

deepstream6.2部署yolov5详细教程与代码解读_第7张图片

五.修改配置文件

主要修改文件路径,如下图所示:

deepstream6.2部署yolov5详细教程与代码解读_第8张图片

六.运行demo

$cd  /opt/nvidia/deepstream/deepstream-6.2/sources/DeepStream-Yolo
$deepstream-app -c deepstream_app_config.txt

初次加载模型,需要构建engine转换,时间较长,加载完后会产生engine文件,不删除,下次运行无需编译可快速运行。
加载好模型会出现*.engine文件,如下所示:

deepstream6.2部署yolov5详细教程与代码解读_第9张图片

运行成功会出现如下所示:

deepstream6.2部署yolov5详细教程与代码解读_第10张图片

你可能感兴趣的:(YOLO,深度学习,人工智能,边缘计算,性能优化,计算机视觉)