NVIDIA Deepstream 4.0笔记(一):加速基于实时AI的视频和图像分析

2019-08-27 16:59:06 浏览数 (1)

本次笔记整理自NVIDIA 8月20日在线研讨会,原讲座标题:DEEPSTREAM SDK – ACCELERATING REAL-TIME AI BASED VIDEO AND IMAGE ANALYTICS

演讲人:

目录:

智能视频分析的应用场景:

应用程序的类型可能不同,但从视频像素到分析的流程在所有用例中仍然很常见。某些应用程序可能需要在边缘设备(如NVIDIA Jetson或Prem服务器)上进行处理。边缘的使用范围从安全到监控施工现场到制造。对于小型企业而言,ON-Prem Server(本地服务器)可以像基于人工智能的VR网络录像机一样简单。于其他应用程序,所有处理都可能在云上进行。DeepStream提供在边缘或云上的灵活部署。对于其他应用程序,所有处理都可能在云上进行.DeepStream提供在边缘或云上的灵活部署。Deesptream还集成了Nvidia的迁移学习工具包(TLT),您可以使用TLT为您的应用程序训练预训练模型。经过预先训练的模型可在NGC上获得。 您可以从NGC中取出所有内容,使用TLT重新训练并在deepStream上部署。

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

堆栈的下一级是CUDA X,它列出了Deepstream插件使用的各种NVIDIA软件技术。

在最底部列出了完整硬件堆栈。未来的应用程序可以在NVIDIA Jetson平台或数据中心上运行

Deepstream 4.0代表了功能可扩展性和可移植性的重大改变。

Deep stream 4.0的灵魂是支持NVIDIA Unified SDK的所有平台,从新推出的Jetson Nano到数据中心GPU,开发人员可以在一个平台上开始开发,然后将其移植到同一代码库不同平台上。

Deepstream 4.0提供交钥匙集成以连接到Microsoft Azure loT hub,我们有消息代理插件。Microsoft Azure loT帮助可用于连接管理和监视IOT边缘设备。

NVIDIA 为Deepstream 3.0的GPU产品发布了部署容器,到了DeepStream 4.0,NVIDIA 提供了对Jetson平台的容器化部署.

4.0还为工业和零售用例发布了新的模型和功能。有新的模型支持单色或灰度图像的图像分割。此外,NVIDIA正在添加硬件加速的PEG解码和编码。

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

这是从像素到视频分析的典型构思图形的高级视图。摄像机上的像素在预处理后被捕获解码并进行预处理。我们将其应用于深度学习或AI以从视频中获得一些见解, 这个内部可以在屏幕上查看,或者可以发送到数据中心或云以进行进一步分析。

这个用于处理和理解视频或图像的pipline是工业的,不同行业之间可能存在一些细微差别。但总的来说,工作流程仍然非常相似。

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

这是一个典型的Ivy管道,由deepstream插件构建,在底部,它显示了插件使用的底层硬件。第一步是捕获流数据。这可能来自RTSP流文件或USB或CSI摄像机。捕获之后,下一步是解码流。解码器插件使用NVIDIA的硬件加速解码引擎。与GPU上的CUDA内核不同。解码帧之后,可能需要进行一些预处理。这可以是图像转换、图像缩放、裁剪或如果流是来自一个360度摄像头,然后你需要转移图像。对于这个操作有各种各样的加速器。接下来的操作是推理,它执行对象检测分类和分割。这是运行在GPU或Jetson AGX Xavier的DLA上。

在进行推理之后,您可能需要跟踪对象以获得深入的了解,最后一步是使用附加元数据在屏幕上查看视频,或者仅将元数据发送到云中进行分析。

这是deepstream SDK中包含的插件列表。

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

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

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

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

有关如何使用此插件的更多信息,请参考文档中的Plugins菜单。

这是在不同NVIDIA平台上利用Deepstream达到的实时性能。更详细的信息可以参考NVIDIA Deepstream开发者手册

下一部分我们将一起来看几个利用Deepstream SDK的工业案例,敬请大家关注本次话题。

0 人点赞