NVIDIA DeepStream笔记(一):Deepstream SDK到底解决了什么问题?

2019-07-04 15:43:42 浏览数 (1)

我们讨论如何使用deep stream SDK和transfer learning toolkit来做大规模部署的视频流分析。

我们将讲几个主题:

首先我们会谈视频分析的实时steaming,

然后我们会讲解一个标准的视频分析的通用框架,对于很多应用来说是相当普遍的。

接着我们会介绍Deepstream ,特别是Deepstream 3.0里发布了什么新功能。

我们会演示一些示例应用, 展示用Deepstream SDK如何轻松构建可能的应用。

最后,我们将讨论新版本迁移学习工具包,它使开发人员和领域专家能够轻松地利用预训练模型来加快构建最新的模型。

今天是第一部分

我们现在讲视频分析deepstream SDK是一个通用的Steaming分析框架,可以让你从各个传感器中构建你自己的应用。但是视频是最常见的传感器数据之一。摄像头无处不在。实际上到2020年全球启用的摄像头达到10亿,这是一个难以置信的原始传感器数据量。有了这些数据,人们、社会团体和公司正在构建强大的应用,利用摄像头和streaming分析来做一些东西,比如机场的入境管理,制造中心和工厂的产线管理、停车管理,还有客流分析应用,这对构建智慧城市是很重要的。零售分析也是另外一个很重要的使用场景,对于商店来说可以帮助他们了解客户想买什么,甚至商店都不需要收银员,类似亚马逊无人商店那样....还有其它的行业应用,这些都需要利用视频分析从而让人们具备更全面的洞察力。

我们已经建立了一个平台,我们称之为METROPOLIS,它是一个从边缘终端到云端的生态系统,将硬件和软件结合在一起,帮助您构建智能视频分析应用程序。它依赖于NVIDIA硬件和软件生态系统,同一个应用你可以部署在边缘或者本地服务器上,也可以部署在云端。也就是说在边缘终端,你可以用Jetson家族,不管是TX2或者AGX Xavier,也可以是Tesla V100等。所有的这些都可以用相同的程序,你只需要构建一次,就可以在任何地方部署。

我们这样做的原因是,我们意识到很多应用的视频分析都有一个共同的框架,在这个框架里,视频分析依赖来自相机的像素,不管是网络录像机,也或者是光盘,都需要解码。在你创建自己的智能引擎,从这些像素里抽取你要的信息之前,你都会需要解码后进行处理。 这步完成后,下一步就可以做推理了。 推理能完成像是目标识别、跟踪、分类、特征提取、从像素中创造或者提取内含的信息。你有了这些推理出来的信息后,可以根据你的应用做很多事情, 例如你可能会在本机的显示器上,在原始的图像/像素上层,将这些信息聚合,并叠加组合,实时反馈显示出来。此外还可以,将/原始图片附加上刚才识别出来的那些信息,重新进行视频编码,然后在磁盘上进行存储和以后的再次分析。还可以在推理得到了这些信息后,将信息传给数据分析后端,无论是包括实时处理、批处理、还是串流显示,然后能发送给依赖于这些信息的其他用户。

因为所有智能视频分析应用程序都会用到这种类型的框架,这意味着它们可以共享组件:解码、预处理、数据编码、传输、推理——所有应用程序都必须建立某种形式的系统来处理这些事情,但这并不是开发团队想要干的, 我们建立了流媒体和视频分析SDK,允许开发人员集中精力开发他们的应用和他们的核心知识产权。它使开发人员不必担心为解码、高效的预处理、推理、屏幕显示、平铺等内容构建商品化组件。在其核心,Deepstream sdk允许开发人员挑选插件,在他们的代码中利用这些插件并构建一个单独的应用程序类型。

Deepstream 3.0代表了在Deepstream世界中的一个重要进步,您可以使用很多新技术,例如添加支持360度摄像头的变形库,现有插件的重大改进,大规模扩展的参考应用程序,包括端到端配置, 用于构建从像素到信息的智能视频分析应用程序的指南,它们都基于同样熟悉的硬件和软件堆栈,利用Nvidia工具和技术生态系统,如tensorRT、基于硬件的多媒体API、视频编解码器SDK,以及 提供对Docker容器和消息总线客户端(如Kafka和qtg)的支持,它由Nvidia CUDA提供支持,它是一个架构,您使用deepstream构建的应用程序可以在Jetson系列平台或Tesla系列卡上运行,因此它让您自由地构建一次并随处部署

Deepstream 3.0带有一个参考应用程序,这是一个参考应用程序的架构,其中摄像机数据通过实时流协议进入,一旦所需的数据被拍到,使用内置在GPU中的基于Nvidia硬件的加速解码进行解码,然后处理图像。在这种情况下来自不同摄像机的多个画面必须一起批量处理,因此此参考应用程序中还显示了如何从30个摄像机拍摄30个主题的流管理,并一次性分析它们,以有效使用GPU。我们有多个神经网络在这个参考应用程序上运行,特别是首先作为主神经网络运行,然后根据第一个神经网络中发生的情况运行二级模型。还有跟踪的例子,也利用硬件加速,还有可视化、显示以及存储。参考应用程序架构为您提供了为应用程序构建所需内容的完美示例。

Deepstreams 3.00具有一些重要的增强功能和新功能。它支持最新的转向架构GPU,并提供对TensorRT 5.0和CUDA10的支持,这两者都是这些软件的最新版本,而Deepstream 3.0也提供了增加的新插件能力以及增加更好吞吐量的机会。一个重要的新功能是动态流管理,允许您在不重新启动应用程序的情况下即时添加删除或修改流。现在,这为您提供了更高的灵活性以及更高的应用程序稳定性。我们还提供新的插件并允许您将边缘设备连接到云,这些插件显示在示例应用程序中。Deepstream 3.0版本向您展示如何从像素到对您提取的元数据进行流传输和批量分析,可以在云服务器上进行分析。因为Deepstream 3.0支持docker容器,可以将其部署为docker组件,让您轻松扩展和管理应用程序的组件。Deepstreams 3.0支持迁移学习工具包模型文件。这使您可以有效地构建和调整预先训练的神经网络到您的用例,并将它们无缝地插入到Deepstream应用程序中.

0 人点赞