【译】NVIDIA DeepStream 概况

关注【CV面试宝典】,分享面试高频题目、工业实践项目等技术文章

一、NVIDIA DeepStream 概况

DeepStream 是一个流分析工具包,用于构建人工智能应用程序。它以流数据作为输入——从 USB/CSI 摄像机、从 RTSP 上的文件或流中获取视频,并使用人工智能和计算机视觉从像素中生成洞察力,以便更好地理解环境。DeepStream SDK 可以成为一系列视频分析解决方案的基础层,比如理解智能城市中的交通和行人,医院的健康和安全监控,零售业的自检和分析,检测生产设施中的部件缺陷等等。点击这里阅读更多关于 DeepStream 的内容。

一、应用开发

支持C++ 和Python上实现应用开发。

二、SDK

核心 SDK 包括几个硬件加速器插件,它们使用各种加速器,如 VIC、 GPU、 DLA、 NVDEC 和 NVENC。通过在专用加速器中执行所有繁重的计算操作,DeepStream可以为视频分析应用程序实现最高性能。DeepStream 的核心功能之一是实现边缘与云之间的安全双向通信。DeepStream提供了一些开箱即用的安全协议,如使用用户名/密码的SASL/Plain身份验证和2-way TLS身份验证。要了解更多关于这些安全特性的信息,请阅读物联网章节。

三、CUDA-X

DeepStream 基于 CUDA、 TensorRT、 Triton 和multimedia等数个 NVIDIA 库。TensorRT 加速了 NVIDIA GPU 的人工智能推理。DeepStream 在 DeepStream 插件中对这些库进行了抽象,使得开发人员可以轻松地构建视频分析管道,而无需了解所有的单个库。

四、计算平台

DeepStream 针对 NVIDIA GPUs 进行了优化; 应用程序可以部署在运行 Jetson 平台的嵌入式边缘设备上,也可以部署在更大的边缘或数据中心 gpu 上,如 T4。DeepStream 应用程序可以使用NVIDIA container Runtime部署在容器中。这些容器可以在 NGC, NVIDIA GPU 云注册表中找到。要了解更多关于使用 Docker 部署的信息,请参阅 Docker 容器章节。DeepStream 应用程序可以使用图形处理器上的 Kubernetes 在边缘编排。展开深流应用程序的样本舵图可在 NGC 上找到。

二、DeepStream Graph Architecture

DeepStream 是使用开源 GStreamer 框架构建的一个经过优化的图形体系结构。下面的图表显示了一个典型的视频分析应用程序,从输入视频开始,到输出分析结果。所有的单个模块都是使用的各种插件。底部是在整个应用程序中使用的不同硬件引擎。插件之间零内存拷贝的最佳内存管理和各种加速器的使用确保了最高的性能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ODwgL2F1-1615774568817)(https://docs.nvidia.com/metropolis/deepstream/dev-guide/_images/DS_overview_graph_architecture.png)]

DeepStream 以 GStreamer 插件的形式提供模块,可用于构建高效的视频分析流水线。有超过15个插件可以为不同的任务提供硬件加速。

  • 流数据可以通过 RTSP、本地文件或直接从摄像头来通过网络传输。流是用 CPU 捕获的。帧一旦进入存储器,就会被发送到 NVDEC 加速器进行解码。这个解码插件叫做 Gst-nvvideo4linux2

  • 解码后,有一个可选的图像预处理步骤,这个过程是对输入的图像进行预处理,然后进行推断。预处理可以是图像去噪或色彩空间转换。Gst-nvdewarper 插件可以从鱼眼镜头或360度摄像机上分离图像。Gst-nvvideoconvert 插件可以对帧进行颜色格式转换。这些插件使用 GPU 或 VIC (视觉图像合成器)。

  • 下一步是批处理帧以获得最佳的推理性能。批处理是使用Gst-nvstreammux插件完成的。

  • 批处理帧后,将其发送以进行推断。可以使用NVIDIA的推理加速器运行时TensorRT进行推理,也可以使用Triton推理服务器在本机框架(如TensorFlow或PyTorch)中进行推理。本地TensorRT推断是使用进行GST-nvinfer插件和推理的Triton使用使用做GST-nvinferserver插件。推论可以使用Jetson AGX Xavier和Xavier NX的GPU或DLA(深度学习加速器)。

  • 推断之后,下一步可能涉及跟踪对象。SDK中有多个内置参考跟踪器,范围从高性能到高精度。使用Gst-nvtracker插件执行对象跟踪。

  • 为了创建可视化工件(例如边界框,分割蒙版,标签),有一个名为Gst-nvdsosd的可视化插件。

  • 最后,要输出结果,DeepStream提供了各种选项:在屏幕上用边框显示输出,将输出保存到本地磁盘,通过RTSP进行流传输或仅将元数据发送到云。为了将元数据发送到云,DeepStream使用Gst-nvmsgconvGst-nvmsgbroker插件。Gst-nvmsgconv将元数据转换为架构有效负载,而Gst-nvmsgbroker建立与云的连接并发送遥测数据。有几种内置的代理协议,例如Kafka,MQTT,AMQP和Azure IoT。可以创建自定义代理适配器。

三、DeepStream参考应用

首先,开发人员可以使用提供的参考应用程序。还包括这些应用程序的源代码。端到端应用程序称为deepstream-app。该应用程序是完全可配置的-它允许用户配置任何类型和数量的源。用户还可以选择运行推理的网络类型。**它预先内置了一个推理插件来进行对象检测,并由推理插件进行级联以进行图像分类。**有一个配置跟踪器的选项。对于输出,用户可以选择在屏幕上渲染,保存输出文件或通过RTSP传输视频。

这是开始学习DeepStream功能的一个很好的参考应用程序。DeepStream参考应用程序-deepstream-app一章中将更详细地介绍此应用程序。该应用程序的源代码位于/opt/nvidia/deepstream/deepstream-5.1/sources/apps/sample_apps/deepstream-app中。该应用程序将适用于所有AI模型,并在各个自述文件中提供详细说明。性能基准测试也使用此应用程序运行。

四、开始构建应用

对于希望构建其自定义应用程序的开发人员而言,deepstream-app对于开始开发可能会有些不知所措。该SDK附带了几个简单的应用程序,开发人员可以在其中学习DeepStream的基本概念,构造一个简单的管道,然后逐步构建更复杂的应用程序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MGLamPM-1615774568827)(https://docs.nvidia.com/metropolis/deepstream/dev-guide/_images/DS_overview_building_apps.png)]

  • 开发人员可以从deepstream-test1开始,它几乎像DeepStream的hello world。在此应用程序中,开发人员将学习如何使用各种DeepStream插件构建GStreamer管道。他们将从文件中获取视频,进行解码,批处理,然后进行对象检测,最后在屏幕上呈现这些框。
  • deepstream-test2从test1进行,并将级联网络级联到主网络。
  • deepstream-test3显示了如何添加多个视频源,
  • 最后test4将显示如何使用消息代理插件为IoT服务。这4个入门应用程序在本机C / C ++和Python中均可用。要了解有关DeepStream中这些应用程序和其他示例应用程序的更多信息,请参见C / C ++示例应用程序源详细信息Python示例应用程序源详细信息

Python中的DeepStream

Python易于使用,并且在创建AI模型时被数据科学家和深度学习专家广泛采用。NVIDIA引入了Python绑定,以帮助您使用Python构建高性能的AI应用程序。可以使用GStreamer框架的Python绑定Gst-Python构造DeepStream管道。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bxowKvgL-1615774568829)(https://docs.nvidia.com/metropolis/deepstream/dev-guide/_images/DS_Overview_deepstream_python.png)]

DeepStream Python应用程序使用Gst-Python API操作构造管道,并使用探测函数访问管道中各个点的数据。这些数据类型都是原生 c 语言,需要通过 PyBindings 或 NumPy 的 shim 层从 Python 应用程序访问它们。张量数据是推断后得出的原始张量输出。如果要检测对象,则需要使用解析和聚类算法对该张量数据进行后处理,以在检测到的对象周围创建边界框。要开始使用Python,请参阅本指南中的Python示例应用程序源详细信息以及DeepStream Python API指南中的“ DeepStream Python”。

关注【CV面试宝典】,分享面试高频题目、工业实践项目等技术文章

原文链接

https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Overview.html#nvidia-deepstream-overview

猜你喜欢

转载自blog.csdn.net/u010414589/article/details/114820293
今日推荐