Inleiding tot de NVIDIA DeepStream Graph Composer
Eerder hebben we de NVIDIA DeepStream SDK geïntroduceerd. Ontwikkelaars kunnen het gebruiken om geoptimaliseerde IVA-toepassingen (Intelligent Video Analytics) te maken die meerdere bronnen voor video-invoer kunnen opnemen, trapsgewijze deductie op verwerkte frames kunnen toepassen en telemetrie kunnen produceren die kunnen worden gepubliceerd naar cloudservices zoals Microsoft Azure.
We hebben gekeken naar het ontwikkelen van toepassingen met de NVIDIA DeepStream SDK met behulp van een configuratiebestandsgestuurde benadering. Deze methode is een zeer ingeschakelde strategie voor IVA-ontwikkeling, maar de NVIDIA Graph Composer neemt deze aanpak verder uit. U kunt deze gebruiken om met DeepStream compatibele IVA-pijplijnen te genereren met behulp van een visuele editor met onderdelen voor slepen en neerzetten. Door dit mechanisme te gebruiken, kunt u de ontwikkeling verder vereenvoudigen, terwijl u ook bekijkt hoe onderdelen zich met elkaar verhouden in een interactieve grafiek.
De beschikbare onderdelen zijn mogelijk bekend vanwege de configuratiegroepen die we eerder hebben gebruikt. Deze onderdelen en de configuratiegroepen zijn beide afgeleid van functies in de DeepStream SDK C-bibliotheken. Deze onderdelen worden beschikbaar gesteld aan de Composer-toepassing met behulp van een lokaal register waarmee extensies van NVIDIA worden opgehaald en opgeslagen. Met de Composer-toepassing kunt u ook aangepaste extensies importeren ter ondersteuning van onderdelen.
Nadat een grafiek gereed is voor productie, kunnen ontwikkelaars met een meegeleverd hulpprogramma voor containerbouwer Composer Graphs verpakken in containerworkloads die kunnen worden uitgevoerd op x86- of ARM64-apparaten. U kunt deze functie gebruiken met Graph Composer om container-IVA-pijplijnen te bouwen die kunnen worden geïmplementeerd op apparaten die geschikt zijn voor serverklasse of edge.
Het volledige proces voor deze werkstroom wordt hier weergegeven.
Containerized Graph Composer-workloads integreren met Azure IoT-services
Door DeepStream Graph Composer-workloads in containers te verpakken, kunnen IVA-toepassingen worden uitgevoerd in edge-to-cloud-scenario's met verschillende mogelijkheden, zoals:
- Apparaat-naar-cloud-berichten.
- Cloud-naar-apparaat-berichten.
- Apparaatbewaking.
- Externe updates.
- Schaalbare implementatie via integratie met Azure IoT Edge.
Met deze serviceaanbieding kunt u een geschikt apparaat instrumenteren met een runtime die indeling biedt van containerworkloads en beveiligde connectiviteit in een opnamepunt dat bekend staat als een IoT-hub.
De IoT Edge-runtime wordt uitgevoerd op het fysieke apparaat waarin containerworkloads modules worden genoemd. Deze modules kunnen met elkaar communiceren met behulp van berichtroutering. Eén module kan bijvoorbeeld telemetrie produceren en een andere module kan berichten uit de eerste berichten aggregeren met behulp van Azure Stream Analytics aan de rand. Berichten uit deze module kunnen vervolgens rechtstreeks naar de cloud worden gepubliceerd via een verbinding met een IoT-hub.
Wanneer apparaten veilig zijn geregistreerd en beheerd vanuit een IoT-hub, is het mogelijk om bijgewerkte workloads naadloos op apparaten te implementeren en ook de connectiviteitsstatus van een hele vloot te bewaken. Als gevolg hiervan kunt u uw DeepStream Graph Composer-toepassingen in productie plaatsen met ondersteuning voor alle fasen van de levenscyclus van softwareontwikkeling. Deze gebieden omvatten invoegtoepassingsondersteuning voor Azure DevOps, de mogelijkheid om actieve workloads te wijzigen met behulp van moduledubbels en gerichte implementaties op basis van metagegevens van apparaten.
In deze module verkennen we hoe u toepassingen ontwikkelt met behulp van DeepStream Graph Composer. Vervolgens verpakken we die uitvoer in een in een container geplaatste workload. Ten slotte bereiden we die container voor op productie door deze te publiceren naar een exemplaar van Azure Container Registry. In de vervolgmodule bekijken we hoe u die workload kunt ophalen uit een beveiligd containerregister en deze implementeert op een door NVIDIA mogelijk gemaakt ingesloten apparaat waarop IoT Edge wordt uitgevoerd.
Probeer dit eens
Stel dat u de taak hebt gekregen om een IVA-toepassing te ontwikkelen om het aantal personen te tellen dat een restaurant binnenkomt. Stel nu dat de CEO van uw concept houdt en deze toepassing wil implementeren op 1000 locaties over de hele wereld! Hoe kunt u een strategie ontwerpen om deze implementatie uit te voeren? Welke hulpprogramma's kunt u gebruiken om de ontwikkelings- en testcyclus te versnellen?