Introdução ao NVIDIA DeepStream Graph Composer
Anteriormente, apresentamos o NVIDIA DeepStream SDK. Os desenvolvedores podem usá-lo para criar aplicativos otimizados de Análise de Vídeo Inteligente (IVA) que podem ingerir várias fontes de entrada de vídeo, aplicar inferência em cascata em quadros processados e produzir telemetria que pode ser publicada em serviços de nuvem como o Microsoft Azure.
Analisamos o desenvolvimento de aplicativos com o NVIDIA DeepStream SDK usando uma abordagem orientada a arquivos de configuração. Este método é uma estratégia altamente habilitadora para o desenvolvimento do IVA, mas o NVIDIA Graph Composer leva essa abordagem adiante. Você pode usá-lo para gerar pipelines IVA compatíveis com DeepStream usando um editor visual com componentes de arrastar e soltar. Usando esse mecanismo, você pode simplificar ainda mais o desenvolvimento enquanto também visualiza como os componentes se relacionam entre si em um gráfico interativo.
Os componentes disponíveis podem parecer familiares para você devido aos Grupos de Configuração que usamos anteriormente. Esses componentes e os Grupos de Configuração derivam de funções fornecidas nas bibliotecas C do SDK do DeepStream. Esses componentes são disponibilizados para o aplicativo Composer usando um registro local que extrai e armazena extensões fornecidas pela NVIDIA. O aplicativo Composer também permite importar extensões personalizadas para suportar componentes.
Depois que um gráfico estiver pronto para produção, uma ferramenta de construção de contêineres incluída permite que os desenvolvedores empacotem Composer Graphs em cargas de trabalho de contêiner capazes de serem executadas em dispositivos x86 ou ARM64. Você pode usar esse recurso com o Graph Composer para criar pipelines IVA em contêineres que podem ser implantados em dispositivos de classe de servidor ou com capacidade de borda.
O processo completo para este fluxo de trabalho é mostrado aqui.
Integrar cargas de trabalho do Graph Composer em contêineres com os serviços do Azure IoT
Ao empacotar cargas de trabalho do DeepStream Graph Composer em contêineres, os aplicativos IVA podem ser executados em cenários de borda para nuvem com vários recursos, como:
- Mensagens de dispositivo para nuvem.
- Mensagens da nuvem para o dispositivo.
- Monitorização de dispositivos.
- Atualizações remotas.
- Implantação escalável por meio da integração com o Azure IoT Edge.
Com essa oferta de serviço, você pode instrumentar um dispositivo capaz com um tempo de execução que fornece orquestração de cargas de trabalho em contêineres e conectividade segura em um ponto de ingestão conhecido como hub IoT.
O tempo de execução do IoT Edge é executado no dispositivo físico onde cargas de trabalho em contêineres são chamadas de módulos. Esses módulos podem se comunicar entre si usando o roteamento de mensagens. Por exemplo, um módulo pode produzir telemetria e outro módulo pode agregar mensagens das primeiras mensagens usando o Azure Stream Analytics na borda. As mensagens desse módulo podem ser publicadas diretamente na nuvem por meio de uma conexão com um hub IoT.
Com dispositivos registrados e gerenciados com segurança a partir de um hub IoT, é possível implantar perfeitamente cargas de trabalho atualizadas em dispositivos e também monitorar o status de conectividade de toda uma frota. Como resultado, você pode colocar seus aplicativos DeepStream Graph Composer em produção com suporte para todos os estágios do ciclo de vida de desenvolvimento de software. Essas áreas incluem suporte a plug-ins para DevOps do Azure, a capacidade de modificar cargas de trabalho em execução usando gêmeos de módulo e implantações direcionadas com base em metadados de dispositivo.
Neste módulo, exploraremos como desenvolver aplicativos usando o DeepStream Graph Composer. Em seguida, empacotaremos essa saída em uma carga de trabalho conteinerizada. Por fim, prepararemos esse contêiner para produção publicando-o em uma instância do Registro de Contêiner do Azure. No módulo de acompanhamento, veremos como extrair essa carga de trabalho de um registro de contêiner seguro e implantá-la em um dispositivo incorporado alimentado pela NVIDIA que executa o IoT Edge.
Experimente isto
Imagine que foi incumbido de desenvolver uma aplicação IVA para contar o número de pessoas que entram num restaurante. Agora suponha que o CEO adora sua prova de conceito e quer implantar esse aplicativo em 1.000 locais ao redor do mundo! Como você pode projetar uma estratégia para realizar essa implantação? Que ferramentas você poderia usar para acelerar o ciclo de desenvolvimento e teste?