Wprowadzenie do narzędzia NVIDIA DeepStream Graph Composer
Wcześniej wprowadziliśmy zestaw SDK NVIDIA DeepStream. Deweloperzy mogą jej używać do tworzenia zoptymalizowanych aplikacji inteligentnej analizy wideo (IVA), które mogą pozyskiwać wiele źródeł danych wejściowych wideo, stosować kaskadowe wnioskowanie na przetworzonych ramkach i tworzyć dane telemetryczne, które można publikować w usługach w chmurze, takich jak Microsoft Azure.
Przyjrzeliśmy się tworzeniu aplikacji za pomocą zestawu SDK NVIDIA DeepStream przy użyciu podejścia opartego na plikach konfiguracji. Ta metoda jest wysoce umożliwiającą strategią opracowywania IVA, ale narzędzie NVIDIA Graph Composer traktuje to podejście dalej. Można go użyć do generowania potoków IVA zgodnych z funkcją DeepStream za pomocą edytora wizualnego ze składnikami przeciągania i upuszczania. Korzystając z tego mechanizmu, można jeszcze bardziej uprościć programowanie, jednocześnie wyświetlając, jak składniki są ze sobą powiązane w interaktywnym grafie.
Dostępne składniki mogą wydawać się znajome ze względu na użyte wcześniej grupy konfiguracji. Te składniki i grupy konfiguracji pochodzą z funkcji udostępnianych w bibliotekach języka C zestawu DeepStream SDK. Te składniki są udostępniane aplikacji Composer przy użyciu rejestru lokalnego, który ściąga i przechowuje rozszerzenia udostępniane przez firmę NVIDIA. Aplikacja Composer umożliwia również importowanie niestandardowych rozszerzeń do obsługi składników.
Gdy graf będzie gotowy do produkcji, dołączone narzędzie container-builder umożliwia deweloperom spakowanie programu Composer Graphs do obciążeń kontenerów, które mogą działać na urządzeniach x86 lub ARM64. Tej funkcji można używać z narzędziem Graph Composer do tworzenia konteneryzowanych potoków IVA, które można wdrożyć na urządzeniach z obsługą serwerów lub brzegowych.
Pełny proces dla tego przepływu pracy jest pokazany tutaj.
Integrowanie konteneryzowanych obciążeń programu Graph Composer z usługami Azure IoT
Pakując obciążenia DeepStream Graph Composer do kontenerów, aplikacje IVA mogą działać w scenariuszach brzegowych do chmury z różnymi możliwościami, takimi jak:
- Przesyłanie komunikatów z urządzenia do chmury.
- Obsługa komunikatów z chmury na urządzenie.
- Monitorowanie urządzeń.
- Aktualizacje zdalne.
- Skalowalne wdrożenie dzięki integracji z usługą Azure IoT Edge.
Dzięki tej usłudze można instrumentować urządzenie obsługujące środowisko uruchomieniowe, które zapewnia aranżację konteneryzowanych obciążeń i bezpieczną łączność z punktem pozyskiwania znanym jako centrum IoT.
Środowisko uruchomieniowe usługi IoT Edge działa na urządzeniu fizycznym, na którym konteneryzowane obciążenia są nazywane modułami. Te moduły mogą komunikować się ze sobą przy użyciu routingu komunikatów. Na przykład jeden moduł może tworzyć dane telemetryczne, a drugi moduł może agregować komunikaty z pierwszych komunikatów przy użyciu usługi Azure Stream Analytics na urządzeniach brzegowych. Komunikaty z tego modułu można następnie publikować bezpośrednio w chmurze za pośrednictwem połączenia z centrum IoT.
Dzięki urządzeniom zarejestrowanym i zarządzanym bezpiecznie z centrum IoT można bezproblemowo wdrażać zaktualizowane obciążenia na urządzeniach, a także monitorować stan łączności całej floty. W związku z tym można umieścić aplikacje DeepStream Graph Composer w środowisku produkcyjnym z obsługą wszystkich etapów cyklu tworzenia oprogramowania. Obszary te obejmują obsługę wtyczek dla usługi Azure DevOps, możliwość modyfikowania uruchomionych obciążeń przy użyciu bliźniaczych reprezentacji modułów i docelowych wdrożeń na podstawie metadanych urządzenia.
W tym module dowiesz się, jak opracowywać aplikacje przy użyciu narzędzia DeepStream Graph Composer. Następnie spakujemy te dane wyjściowe do konteneryzowanego obciążenia. Na koniec przygotujemy ten kontener do środowiska produkcyjnego, publikując go w wystąpieniu usługi Azure Container Registry. W module kontynuacji przyjrzymy się, jak ściągnąć to obciążenie z bezpiecznego rejestru kontenerów i wdrożyć je na urządzeniu osadzonym opartym na technologii NVIDIA z uruchomioną usługą IoT Edge.
Wypróbuj
Wyobraź sobie, że twoim zadaniem było opracowanie aplikacji IVA w celu zliczenia liczby osób, które wchodzą do restauracji. Teraz załóżmy, że dyrektor generalny kocha twoją weryfikację koncepcji i chce wdrożyć tę aplikację w 1000 lokalizacjach na całym świecie! Jak można zaprojektować strategię przeprowadzania tego wdrożenia? Jakich narzędzi można użyć do przyspieszenia cyklu tworzenia i testowania?