Introduzione al Graph Composer NVIDIA DeepStream

Completato

In precedenza, è stato introdotto NVIDIA DeepStream SDK. Gli sviluppatori possono usarlo per creare applicazioni IVA (Intelligent Video Analytics) ottimizzate che possono inserire più origini di input video, applicare l'inferenza a catena nei fotogrammi elaborati e produrre dati di telemetria che possono essere pubblicati nei servizi cloud come Microsoft Azure.

È stato esaminato lo sviluppo di applicazioni con NVIDIA DeepStream SDK usando un approccio basato su file di configurazione. Questo metodo è una strategia altamente abilitante per lo sviluppo di IVA, ma NVIDIA Graph Composer porta questo approccio oltre. È possibile usarlo per generare pipeline IVA compatibili con DeepStream usando un editor visivo con componenti di trascinamento della selezione. Usando questo meccanismo, è possibile semplificare ulteriormente lo sviluppo mentre si visualizza anche come i componenti si relazionano tra loro in un grafo interattivo.

Screenshot that shows the NVIDIA DeepStream Graph Composer application.

I componenti disponibili potrebbero sembrare familiari a causa dei gruppi di configurazione usati in precedenza. Questi componenti e i gruppi di configurazione derivano entrambi dalle funzioni fornite nelle librerie C di DeepStream SDK. Questi componenti vengono resi disponibili all'applicazione Composer usando un registro locale che estrae e archivia le estensioni fornite da NVIDIA. L'applicazione Composer consente anche di importare estensioni personalizzate per supportare i componenti.

Dopo che un grafo è pronto per la produzione, uno strumento generatore di contenitori incluso consente agli sviluppatori di creare un pacchetto dei grafi Graph Composer nei carichi di lavoro dei contenitori in grado di essere eseguiti in dispositivi x86 o ARM64. È possibile usare questa funzionalità con Graph Composer per creare pipeline IVA in contenitori che possono essere distribuite in dispositivi di classe server o con funzionalità perimetrali.

Il processo completo per questo flusso di lavoro viene visualizzato qui.

Diagram that shows an NVIDIA DeepStream Graph Composer workflow.

Integrare carichi di lavoro Graph Composer in contenitori con i servizi di Azure IoT

Con la creazione di un pacchetto di carichi di lavoro Graph Composer DeepStream in contenitori, le applicazioni IVA possono essere eseguite in scenari da ambiente perimetrale a cloud con varie funzionalità, ad esempio:

  • Messaggistica da dispositivo a cloud.
  • Messaggistica da cloud a dispositivo.
  • Monitoraggio dei dispositivi.
  • Aggiornamenti remoti.
  • Distribuzione scalabile tramite l'integrazione con Azure IoT Edge.

Con questa offerta di servizio è possibile instrumentare un dispositivo idoneo con un runtime che fornisce l'orchestrazione dei carichi di lavoro in contenitori e la connettività sicura in un punto di inserimento noto come hub IoT.

Il runtime IoT Edge viene eseguito nel dispositivo fisico in cui i carichi di lavoro in contenitori vengono chiamati moduli. Questi moduli possono comunicare tra loro usando il routing dei messaggi. Ad esempio, un modulo può produrre dati di telemetria e un altro modulo può aggregare i messaggi dai primi messaggi usando Analisi di flusso di Azure nell'ambiente perimetrale. I messaggi di questo modulo possono quindi essere pubblicati direttamente nel cloud tramite una connessione a un hub IoT.

Diagram that shows an Azure IoT Edge runtime.

Con i dispositivi registrati e gestiti in modo sicuro da un hub IoT, è possibile distribuire facilmente carichi di lavoro aggiornati nei dispositivi e monitorare anche lo stato di connettività di un'intera flotta. Di conseguenza, è possibile mettere in produzione le applicazioni Graph Composer DeepStream con il supporto per tutte le fasi del ciclo di vita dello sviluppo del software. Queste aree includono il supporto dei plug-in per Azure DevOps, la possibilità di modificare i carichi di lavoro in esecuzione usando i moduli gemelli e le distribuzioni mirate basate sui metadati del dispositivo.

Diagram that shows an Azure IoT Hub cloud interface.

In questo modulo verrà illustrato come sviluppare le applicazioni usando Graph Composer DeepStream. Verrà quindi creato un pacchetto dell'output in un carico di lavoro in contenitori. Infine, si preparerà tale contenitore per la produzione pubblicandolo in un'istanza di Registro Azure Container. Nel modulo di completamento si esaminerà come eseguire il pull del carico di lavoro da un registro contenitori sicuro e distribuirlo in un dispositivo incorporato con tecnologia NVIDIA che esegue IoT Edge.

Prova

Si supponga di essere stati incaricati di sviluppare un'applicazione IVA per contare il numero di persone che entrano in un ristorante. Si supponga ora che il CEO apprezzi il modello di verifica e voglia distribuire questa applicazione in 1.000 sedi in tutto il mondo! Come è possibile progettare una strategia per eseguire questa distribuzione? Quali strumenti è possibile usare per velocizzare il ciclo di sviluppo e test?