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模型(或自己模型)方法与实现过程。

源码路径:点击这里
官网示例图:
在这里插入图片描述

一.环境安装

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文件,如下所示:

在这里插入图片描述

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

在这里插入图片描述


http://www.niftyadmin.cn/n/5008832.html

相关文章

单例和静态类

C#中的单例(Singleton)和静态类(Static Class)是两种不同的设计模式,它们各自有不同的用途和特点。 单例模式是一种设计模式,它确保一个类只有一个实例,并提供全局访问点。通常,单例…

Nodejs+vue+mysql网上药店购药系统 9h2k5

本毕业设计的内容是设计并且实现一个基于vue.js框架的空巢老人购药系统。采用MYSQL为数据库开发平台,nodejs语言,网络信息服务作为应用服务器。空巢老人购药系统的功能已基本实现,主要用户、家属、养生知识、药品信息、身体信息等。 论文主要…

第六章 图 三、图的存储结构(邻接表、十字链表、邻接多重表)

一、邻接表法 (1)无向图 1.定义 与树的孩子表示法相似,以顺序表的数据域为头结点,往后存储一个单向链表,链表内的值表示与此结点相邻的结点。 2.度的计算 只需遍历某一结点的后接链表,就可以算出该节点…

git撤销还未push的的提交

怎样撤销掉上图中的提交呢 使用以下代码即可提交 git reset --soft HEAD^

【逗老师的无线电】MMDVM盒子安装高颜值仪表盘

目录 开篇、高颜值仪表盘展示1、实时通联卡片2、精简信息仪表盘3、主仪表盘 一、下载W0CHP-PiStar-Dash二、安装1、解压2、刻录SD卡 三、基础配置1、首次启动2、初始化配置2.1、先配置联网2.2、配置热点参数2.3、配置DMR参数2.4、显示屏配置 3、通联测试 四、进阶操作1、自定义…

线性空间和线性变化

目录 考点一、线性空间的基与维数 1、线性空间 2、基底 3、子空间(线性子空间) ​编辑4、生成子空间 (1)、v1 n v2 (2)、v1 v2 5、求和子空间的方法 6、维数定理 7、例题 (1&#xf…

box_iou交并比及assign_anchor_to_bbox个人理解

接上篇文章,李沐沐神的《动手学深度学习》中的show_bboxes还是比较好理解的,于是来看这两个方法 以下内容建议对照源代码理解 def box_iou 首先我们来设置boxes1和boxes2的初始值 boxes1 torch.tensor([[1,2,5,6],[2,1,4,6],[-1,2,7,6],[1,2,5,8]]) …

第二章:25+ Python 数据操作教程(第十七节PYTHON 字典理解与示例)持续更新中

在本教程中,我们将介绍 Python 中字典理解的工作原理。它包含各种示例,可以帮助您学习字典理解的概念以及如何在现实场景中使用它。 什么是词典? 字典是Python中的一种数据结构,用于存储数据,以便将值与其相关的键连接起来。大致来说,它的工作原理与 SQL 表或统计软件中存…