Einführung in NVIDIA DeepStream Graph Composer

Abgeschlossen

Zuvor haben wir das NVIDIA DeepStream SDK vorgestellt. Entwickler können damit optimierte IVA-Anwendungen (Intelligent Video Analytics) erstellen, die mehrere Videoeingabequellen erfassen, kaskadierenden Rückschluss auf verarbeitete Frames anwenden und Telemetriedaten erzeugen können, die in Clouddiensten wie Microsoft Azure veröffentlicht werden können.

Wir haben uns mit der Entwicklung von Anwendungen mit dem NVIDIA DeepStream SDK mithilfe eines auf Konfigurationsdateien gestützten Ansatzes befasst. Diese Methode ist eröffnet eine Vielzahl von Strategien für die IVA-Entwicklung, aber der NVIDIA-Graph Composer treibt diesen Ansatz noch weiter. Sie können damit DeepStream-kompatible IVA-Pipelines generieren, indem Sie einen visuellen Editor mit Drag & Drop-Komponenten verwenden. Mit diesem Mechanismus können Sie die Entwicklung weiter vereinfachen und gleichzeitig in einem interaktiven Diagramm sehen, in welcher Beziehung die Komponenten miteinander stehen.

Screenshot der NVIDIA DeepStream Graph Composer-Anwendung

Die verfügbaren Komponenten kommen Ihnen wegen der zuvor verwendeten Konfigurationsgruppen möglicherweise bekannt vor. Diese Komponenten und die Konfigurationsgruppen leiten sich beide von Funktionen ab, die in den DeepStream SDK C-Bibliotheken zur Verfügung stehen. Diese Komponenten werden der Composer-Anwendung mithilfe einer lokalen Registrierung zur Verfügung gestellt, die von NVIDIA bereitgestellte Erweiterungen pullt und speichert. Die Composer-Anwendung ermöglicht auch das Importieren benutzerdefinierter Erweiterungen zur Unterstützung von Komponenten.

Nachdem ein Diagramm für die Produktion bereit ist, können Entwickler mit einem enthaltenen Container-Builder-Tool Composer-Diagramme in Containerworkloads verpacken, die auf x86- oder ARM64-Geräten ausgeführt werden können. Sie können dieses Feature zusammen mit dem Graph Composer verwenden, um containerisierte IVA-Pipelines zu erstellen, die auf serverklassen- oder edgefähigen Geräten bereitgestellt werden können.

Der vollständige Prozess für diesen Workflow ist hier dargestellt.

Abbildung eines NVIDIA DeepStream Graph Composer-Workflows

Integrieren von containerisierten Graph Composer-Workloads in Azure IoT-Dienste

Durch das Verpacken von DeepStream Graph Composer-Workloads in Container können IVA-Anwendungen in Edge-to-Cloud-Szenarien mit verschiedenen Funktionen ausgeführt werden, wie etwa:

  • Gerät-zu-Cloud-Messaging
  • Cloud-zu-Gerät-Messaging
  • Geräteüberwachung
  • Remoteupdates
  • Skalierbare Bereitstellung durch Integration in Azure IoT Edge

Mit diesem Dienstangebot können Sie ein leistungsfähiges Gerät mit einer Laufzeit instrumentieren, die die Orchestrierung von Containerworkloads und sichere Konnektivität mit einem Erfassungspunkt ermöglicht, der als IoT Hub bezeichnet wird.

Die IoT Edge Runtime wird auf dem physischen Gerät ausgeführt, auf dem Containerworkloads als Module bezeichnet werden. Diese Module können mithilfe von Nachrichtenrouting miteinander kommunizieren. Beispielsweise kann ein Modul Telemetriedaten erzeugen, während ein anderes Modul Nachrichten aus den ersten Nachrichten aggregiert, indem es Azure Stream Analytics in einer Edgeumgebung verwendet. Nachrichten aus diesem Modul können dann über eine Verbindung mit einem IoT Hub direkt in der Cloud veröffentlicht werden.

Abbildung einer Azure IoT Edge-Runtime

Mit Geräten, die sicher über einen IoT Hub registriert und verwaltet werden, ist es möglich, aktualisierte Workloads nahtlos auf Geräten bereitzustellen und außerdem den Konnektivitätsstatus einer gesamten Fahrzeugflotte zu überwachen. Daher können Sie Ihre DeepStream-Graph Composer-Anwendungen mit Unterstützung für alle Phasen des Softwareentwicklungslebenszyklus in die Produktion bringen. Zu diesen Bereichen gehören die Plug-In-Unterstützung für Azure DevOps, die Möglichkeit, ausgeführte Workloads mithilfe von Modulzwillingen zu ändern, und gezielte Bereitstellungen auf der Grundlage von Gerätemetadaten.

Abbildung einer Azure IoT Hub-Cloudschnittstelle

In diesem Modul erkunden wir, wie Sie Anwendungen mithilfe von DeepStream Graph Composer entwickeln. Als Nächstes verpacken wir diese Ausgabe in eine Containerworkload. Schließlich bereiten wir diesen Container für die Produktion vor, indem wir ihn in einer Instanz von Azure Container Registry veröffentlichen. Im Folgemodul erfahren Sie, wie Sie diese Workload aus einer sicheren Containerregistrierung pullen und auf einem NVIDIA-gestützten eingebetteten Gerät bereitstellen, auf dem IoT Edge ausgeführt wird.

Probieren Sie es aus

Stellen Sie sich vor, dass Ihnen die Aufgabe übertragen wurde, eine IVA-Anwendung zu entwickeln, um die Anzahl der Personen zu zählen, die ein Restaurant betreten. Nehmen Sie nun an, dem CEO gefällt Ihr Proof of Concept, und er möchte diese Anwendung an 1.000 Standorten auf der ganzen Welt bereitstellen! Wie könnten Sie eine Strategie für diese Bereitstellung entwerfen? Mit welchen Tools können Sie den Entwicklungs- und Testzyklus beschleunigen?