NVIDIA DeepStream Graph Composer 介绍
之前,我们介绍了 NVIDIA DeepStream SDK。 开发人员可以使用它来创建优化的智能视频分析 (IVA) 应用程序,这些应用程序可以引入多个视频输入源,对已处理的帧应用级联推理,并生成可发布到 Microsoft Azure 等云服务的遥测数据。
我们着眼于通过配置文件驱动的方法使用 NVIDIA DeepStream SDK 开发应用程序。 这种方法对于 IVA 开发来说是一种非常有利的策略,但 NVIDIA Graph Composer 更进一步地采用了这种方法。 可以使用带有拖放组件的可视化编辑器来生成与 DeepStream 兼容的 IVA 管道。 通过使用此机制,可以进一步简化开发,同时还可以在交互图中查看组件之间的相互关系。
由于我们之前使用的配置组,可用组件也许看起来很熟悉。 这些组件和配置组都派生自 DeepStream SDK C 库中提供的函数。 通过使用本地注册表将这些组件提供给 Composer 应用程序,该注册表提取和存储 NVIDIA 提供的扩展。 Composer 应用程序还允许导入自定义扩展以支持组件。
图准备好进行生产后,包含的 container-builder 工具允许开发人员将 Composer 图形打包到能够在 x86 或 ARM64 设备上运行的容器工作负载中。 可以将此功能与 Graph Composer 结合使用,以生成可部署到服务器级或边缘设备的容器化 IVA 管道。
此处显示了此工作流的完整过程。
将容器化的 Graph Composer 工作负载与 Azure IoT 服务集成
通过将 DeepStream Graph Composer 工作负载打包到容器中,IVA 应用程序可以在具有各种功能的边缘到云场景中运行,例如:
- 设备到云的消息传送。
- 云到设备的消息传送。
- 设备监视。
- 远程更新。
- 与 Azure IoT Edge 集成的可缩放部署。
借助此服务产品,可以使用运行时检测功能强大的设备,该运行时提供容器化工作负载的编排以及与已知为 IoT 中心的引入点的安全连接。
IoT Edge 运行时在容器化工作负载称为“模块”的物理设备上运行。 这些模块可以通过消息路由相互通信。 例如,一个模块可以生成遥测数据,另一个模块可以通过在边缘使用 Azure 流分析来聚合来自第一条消息的消息。 然后可以通过与 IoT 中心的连接将来自该模块的消息直接发布到云。
通过从 IoT 中心安全地注册和管理设备,可以将更新的工作负载无缝部署到设备,并监视整个设备群的连接状态。 因此,可以将 DeepStream Graph Composer 应用程序投入生产,支持软件开发生命周期的所有阶段。 这些领域包括对 Azure DevOps 的插件支持、使用“模块孪生”修改正在运行的工作负载的能力,以及基于设备元数据的有针对性的部署。
在本模块中,我们将探索如何使用 DeepStream Graph Composer 开发应用程序。 接下来,我们将把输出打包成一个容器化的工作负载。 最后,我们将通过将该容器发布到 Azure 容器注册表的实例来准备将其用于生产。 在后续模块中,我们将了解如何从安全容器注册表中提取该工作负载并将其部署到运行 IoT Edge 的 NVIDIA 驱动的嵌入式设备上。
尝试此服务
想象一下,你的任务是开发一个 IVA 应用程序来计算进入餐馆的人数。 现在假设 CEO 喜欢你的概念验证并希望将此应用程序部署到全球 1,000 个位置! 你会如何设计策略来执行此部署? 可以使用哪些工具来加快开发和测试周期?