其他分享
首页 > 其他分享> > NVIDIA DeepStream 概览

NVIDIA DeepStream 概览

作者:互联网

DeepStream是一个流分析工具包,用于构建人工智能驱动的应用程序。它将来自USB/CSI摄像头的流式数据、来自文件的视频或通过RTSP的流式数据作为输入,并使用人工智能和计算机视觉从像素生成细节,以便更好地了解环境。DeepStream SDK 可以是许多视频分析解决方案的基础层,如理解智能城市中的交通和行人、医院的健康和安全监控、零售中的自我检测和分析、检测制造设施中的组件缺陷等。请在此处阅读有关DeepStream的更多信息。

在这里插入图片描述

DeepStream通过Python绑定支持C/C++和Python中的应用程序开发。为更容易入门学习,DeepStream 发布的时候提供了C/C++和Python的参考应用程序。请参阅C/C++示例应用程序源详细信息Python示例应用程序源详细信息部分,了解更多可用的应用程序。有关一些DeepStream参考应用程序示例,请参见NVIDIA-AI-IOT Github页面。

核心SDK由几个硬件加速插件组成,这些插件使用各种加速器,如VIC、GPU、DLA、NVDEC和NVNC。通过在专用加速器中执行所有计算繁重操作,DeepStream可以实现视频分析应用程序的最高性能。DeepStream的关键功能之一是边缘与云之间的安全双向通信。DeepStream附带了一些现成的安全协议,例如使用用户名/密码的SASL/Plain身份验证和双向TLS身份验证。要了解更多有关这些安全特性的信息,请阅读物联网章节。要了解更多关于双向功能的信息,请参阅本指南中的双向消息传递部分。

DeepStream构建在CUDA-X堆栈中的几个NVIDIA库之上,如CUDA、TensorRT、Triton推理服务器和多媒体库。TensorRT加速了NVIDIA GPU上的AI推断。DeepStream在DeepStream插件中抽象这些库,这样开发者就可以轻松地构建视频分析管道,而不必学习所有的单独库。

针对NVIDIA GPU,对DeepStream进行了优化;该应用程序可以部署在运行Jetson平台的嵌入式边缘设备上,也可以部署在更大的边缘或数据中心gpu(如T4)。可以使用NVIDIA容器运行时将DeepStream应用程序部署在容器中。这些容器可在NGC、NVIDIA GPU云注册表上使用。要了解有关dockers部署的更多信息,请参阅Docker容器一章。可以在GPU上使用Kubernetes在边缘编排DeepStream应用程序。部署DeepStream应用程序的示例Helm图表可在NGC上获得。

1. DeepStream Graph 架构

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

在这里插入图片描述

DeepStream以GStreamer插件的形式提供构建块,可用于构建高效的视频分析管道。至少有15个插件采用了硬件加速完成任务。

2. DeepStream 参考应用程序

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

在这里插入图片描述
这是开始学习DeepStream功能的一个很好的参考应用程序。此应用程序在DeepStream参考应用程序-DeepStream应用程序一章中有更详细的介绍。此应用程序的源代码可在 /opt/nvidia/deepstream/deepstream-5.1/sources/apps/sample\u apps/deepstream-app 中找到。此应用程序将适用于所有AI模型,并在各个自述中提供详细说明。性能基准也使用此应用程序运行。

3. 构建应用入门

对于希望构建其定制应用程序的开发人员来说,deepstream应用程序在开始开发时可能有点难以承受。SDK附带了几个简单的应用程序,开发人员可以从中了解DeepStream的基本概念,构建一个简单的管道,然后继续构建更复杂的应用程序。

在这里插入图片描述

4. Python 中的 DeepStream

Python易于使用,在创建人工智能模型时被数据科学家和深度学习专家广泛采用。NVIDIA引入了Python绑定来帮助您使用Python构建高性能AI应用程序。可以使用gstpython(GStreamer框架的Python绑定)构建DeepStream管道。
在这里插入图片描述

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


参考文献:

标签:DeepStream,插件,Gst,Python,使用,概览,应用程序,NVIDIA
来源: https://blog.csdn.net/quicmous/article/details/116158299