当前位置:   article > 正文

基于实时AI的视频和图像分析(一)_ai实时视频

ai实时视频

关于视频分析:
格灵深瞳
千视通
NVIDIA Deepstream 目前5.0已经发布。

做什么?

应用场景
在这里插入图片描述
在这里插入图片描述
多视频分析

可以在边缘和云端灵活部署。

  • 边缘设备
  • 云端处理

获取模型

集成了Nvidia的迁移学习工具包(TLT),您可以使用TLT为您的应用程序训练预训练模型并在deepStream上部署。

AI 媒体服务器

视频分析流程:
在这里插入图片描述
媒体服务器模块:

在这里插入图片描述
设计一个视频分析服务通常要涉及4个模块

  • 视频获取
  • 视频处理 & AI(DeepStream)
  • 视频编码
  • 其他功能:记录、截图等

Gstreamer

如果将上述过程用gstreamer设计并表达出来,可以参考下面代码

v4l2src device=/dev/video1 ! video/x-raw,width=640,height=480 ! videoconvert ! video/x-raw,format=I420,width=640,height=480 ! queue ! tee name=camera0 \
nvarguscamerasrc ! nvvidconv ! video/x-raw,format=I420,width=640,height=480 ! queue ! tee name=camera1 \
camera0. ! video/x-raw,format=I420,width=640,height=480 ! nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12,width=640,height=480 ! nvstreammux0.sink_0 \
camera0. ! video/x-raw,format=I420,width=640,height=480 ! nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12,width=640,height=480 ! nvstreammux0.sink_1 \
camera1. ! video/x-raw,format=I420,width=640,height=480 ! nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12,width=640,height=480 ! nvstreammux0.sink_2 \
camera1. ! video/x-raw,format=I420,width=640,height=480 ! nvvideoconvert ! video/x-raw(memory:NVMM),format=NV12,width=640,height=480 ! nvstreammux0.sink_3 \
nvstreammux name=nvstreammux0 batch-size=4 batched-push-timeout=40000 width=640 height=480 ! queue ! nvinfer batch-size=4 config-file-path=deepstream-models/config_infer_primary_4_cameras.txt ! queue ! nvtracker ll-lib-file=deepstream-models/libnvds_mot_klt.so enable-batch-process=true ! queue ! nvmultistreamtiler width=640 height=480 rows=2 columns=2 ! nvvideoconvert ! nvdsosd ! queue ! tee name=deep \
deep. ! nvvideoconvert ! nvv4l2h264enc insert-sps-pps=true iframeinterval=10 ! tee name=h264 \
deep. ! nvvideoconvert ! nvv4l2h265enc insert-sps-pps=true iframeinterval=10 ! tee name=h265 \
deep. ! nvvideoconvert ! nvv4l2vp9enc ! tee name=vp9 \ 
deep. ! nvvideoconvert ! video/x-raw,width=640,height=480 ! nvjpegenc ! tee name=jpeg \
h264. ! h264parse ! matroskamux ! filesink name=file location=test-h264-0.mkv \
h265. ! h265parse ! matroskamux ! filesink name=file location=test-h265-0.mkv \
vp9. ! matroskamux ! filesink name=file location=test-vp9-0.mkv \
jpeg. ! filesink name=file location=test-snapshot0.jpg
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

可以看出,这种方式难于理解,不易控制、更改。有很多弊端。解决视频流的分析有两个重点

  • 模块内部连接
  • 模块控制

模块内部连接

上述内容可以用下图表示模块的内部连接情况。

  • camera stream : 视频源
  • interpipesink : pipeline内部接口(可能存在视频复用,streammux )
  • interpipesrc :源接口 (tea)
  • 应用分支:本地视频播放、截图、信息发送云端…
    在这里插入图片描述

模块控制

媒体服务器的一个理想特性是能够在一定程度上控制不同视频流的状态和属性。

下图显示了使用GstD(RidgeRun的开源项目,处理GStreamer框架的多线程Linux守护进程)实现的媒体服务器如何通过进程间通信(IPC),进而被其他进程轻松控制。
在这里插入图片描述

Deepstream

Deepstream是基于GStreamer设计的,将很多功能抽象出插件,使得插件的插拔更快捷方便,体现出即插即用理念。

Deepstream是一个流分析工具包,由各种硬件加速插件组成,可为任何计算机视觉和I VA应用程序提供最高吞吐量。配置方面,开发者可以利用NVIDIA容器runtime来配置自己的Deepatream应用。NVIDIA docter runtime可以启用GPU。整个应用都可以在一个Docker Contrainer里面打包。另外NVIDIA还提供了reference application和 orchestration recipes可以帮助你启动任何创意项目。最后就是跟云相连,DeepStream支持使用Azure lOT运行时与Microsoft Azure lOT云通信。这允许与云的无缝连接来运行分析和管理设备。

这是应用级别的整个deepsteam软件堆栈。

  • 顶部是应用程序
  • 在应用程序层下面是SDK
  • 堆栈的下一级是CUDA X,它列出了Deepstream插件使用的各种NVIDIA软件技术。
  • 在最底部列出了完整硬件堆栈。未来的应用程序可以在NVIDIA Jetson平台或数据中心上运行
    在这里插入图片描述

NVIDIA开源了几个主要的插件源代码。这为开发人员提供了更大的灵活性和控制性。 目前正在开源的是推理、解码和消息插件。

基于开源Gstreamer平台的即插即用架构。这使得开发人员不仅可以灵活地使用NVIDIA自带的插件,还可以使用其他开源插件或创建自己的插件并在管道中使用它。

在这里插入图片描述
下图是deepstream SDK中包含的插件列表。

  • 第一个是NVIDIA4linux2,视频和图像解码和编码插件。

  • 第二个是nvinfer,这是一个推理插件,在各种推理加速器上使用tensorRT,这样就可以对目标检测图像进行分类和分割.

  • 第三个是nvtracker,部署几个参考跟踪器,比如KLT、IOU和NvDCF

  • 第四是nvmsgbroker,这允许使用各种协议向云发送消息。

有关如何使用此插件的更多信息,请参考文档中的Plugins菜单。
在这里插入图片描述

Jetson开发板

Deepstream的开发可以基于GPU,也可以基于Jetson。Jetson可以理解为微型主机,它占用空间小,就一块板子大小,如图。
在这里插入图片描述
使用Jetson,可以做很多嵌入式应用。例如将视频分析集成到安全帽内。使得视频分析不再必须跑在大型服务器或主机上,大大地扩大应用范围。

示例展示

且听下回分说~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/315179
推荐阅读
相关标签
  

闽ICP备14008679号