软件开发工具包--DeepStream札记 ----重复内容,整体概要

监控,控制
1、它是what,用来干什么?
1)使开发人员能够快速地创建视频分析应用程序

2)内部结构:视频编解码,缩放,推理
输入源可以是摄像头或者文件。将视频流传入app

3)DeepStream由很多插件组成的一条流水线,决定DS效率的是:当插件们并发执行时共享底层硬件的效率。
a 帧吞吐量(GStreamer提供的探测功能)—30fps处理输入视频没有性能瓶颈
b 硬件使用率—定位哪个实体是罪魁祸首。比如:内存大小和带宽,GPU核心数,GPU时钟频率和CPU配置。
c 受限于深度学习的复杂性。使用nvidia-smi和top来监控CPU利用率。找出高度利用率
d NVIDIA Nsight 和 NVIDIA NVVP 进行内核级分析。分解插件的执行和理解与其他插件的交互。

目的:最大化流水线性能

2、GStreamer是什么?
它是开源框架,DeepStream SDK基于它开发。通过它构建视频流分析,回放,复杂图形处理的app
3、用处
一些流行的用例是:零售分析、停车管理、管理物流、光学检查和管理操作。

官网FAQ
tx2-DeepStream范例
利用DeepStream SDK 3.0突破智能视频分析的限制
看看1
看看2


deepstream: video—12个分镜—检测 它是一条流水线SDK
视频采集—解码[NVIDIA Tesla GPU的硬件解码NVIDIA Video Codec SDK,H.264、H.265和MPEG-4等格式的视频解码为NV12颜色格式的原始帧]—预处理[NV12转BGR,并将帧的大小调整为神经网络所需分辨率,色彩空间和缩放使用CUDA内核和NVIDIA Performance Primitives(NPP)库函数的组合]—轨迹推理[TensorRT神经网络批处理]—编码—合成物—可视化,展示
分为:SDK提供阶段 用户实现阶段 [1、视频解析和注入流水线 2、提供深度学习网络 3、获取流水线推理结果]

开发者:构建核心深度学习网络和IP
deepstream应用程序将网络和其他处理任务带入流处理管道。
实时视频解码[多线程 将各种输入流送到GPU HW硬件解码器]+神经网络推理[主线程调用TensorRT推理引擎处理推理任务]

用到的加速库:Container容器,Sensors传感器,TensorRT,OpenCV Computer Vision,NPP Imaging,Signal Processing信号处理器

单词:parser(网络)模块:通过阈值过滤输出边界框信息。
presenter模块用于显示
DecodeProfiler类分析解码的帧吞吐量

使用nvidia-smi等工具来快速查找到谁的使用率到100%,找到瓶颈

DeepStream SDK基于开源GStreamer多媒体框架

显示了NVIDIA硬件加速的一些插件。
插件名称 功能
gst-nvvideocodecs 加速H265和H264视频解码器
gst-nvstreammux 流复用和批处理
gst-nvinfer 基于TensorRT的检测和分类的推断
gst-nvtracker KLT跟踪器实现
gst-nvosd 用于绘制框和文本叠加的API
gst-tiler 将视频帧从多源渲染为2D阵列
gst-eglglessink 基于加速X11 / EGL的渲染器插件
gst-nvvidconv 缩放,格式转换,旋转

DeepStream附带一个参考应用程序,可实时显示多个摄像机流的智能视频分析。提供的参考应用程序接受来自各种类型的源(如摄像机,RTSP流和磁盘)的输入。它可以同时接受来自多个源的RAW或编码视频数据。视频聚合器插件(nvstreammux)从这些输入源形成一批缓冲区。然后,基于TensorRT的插件(nvinfer)检测此批帧中的主要对象。基于KLT的跟踪器元素(nvtracker)为每个对象生成唯一ID并跟踪它们。


https://docs.nvidia.com/metropolis/deepstream/4.0/dev-guide/
gst-dsexample–用于将自定义算法集成到DeepStream SDK图形中的模板插件
gst-nvmsgconv–用于将元数据转换为架构格式的GStreamer Gst nvmsgconv插件的源代码。
gst-nvmsgbroker–用于向服务器发送数据的GStreamer Gst nvmsgbroker插件的源代码
gst-nvinfer–用于推断的GStreamer Gst nvinfer插件的源代码。

========
1、deepstream-test1–Simple example of how to use DeepStream elements for a single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary detector) → nvosd → renderer.
2、deepstream-test2–Simple example of how to use DeepStream elements for a single H.264 stream: filesrc → decode → nvstreammux → nvinfer (primary detector) → nvtracker → nvinfer (secondary classifier) → nvosd → renderer.
3、deepstream-test3–基于deepstream-test1(简单测试应用程序1)来演示如何:
•在管道中使用多个来源
•使用uridecodebin接受任何类型的输入(例如RTSP/文件)、任何GStreamer支持的容器格式和任何编解码器
•将Gst nvreammux配置为生成一批帧并对其进行推断,以提高资源利用率
•提取流元数据,其中包含有关批处理缓冲区中帧的有用信息
4、deepstream-test4–为单个H.264流构建deepstream-test1:filesrc、decode、nvstreammux、nvinfer、nvosd、renderer,以演示如何:
•在管道中使用Gst nvmsgconv和Gst nvmsgbroker插件
•创建NVDS_META_EVENT_MSG type元数据并将其附加到缓冲区
•对不同类型的对象(如车辆和人员)使用NVDS_META_EVENT_MSG
•如果元数据通过extMsg字段扩展,则实现“copy”和“free”功能

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值