Introducción a NVIDIA DeepStream Graph Composer

Completado

Anteriormente, presentamos NVIDIA DeepStream SDK. Los desarrolladores pueden usarlo para crear aplicaciones optimizadas de análisis de vídeo inteligente (IVA) que pueden ingerir varios orígenes de entrada de vídeo, aplicar inferencia en cascada en fotogramas procesados y generar telemetría que se pueda publicar en servicios en la nube como Microsoft Azure.

Vimos el desarrollo de aplicaciones con NVIDIA DeepStream SDK mediante un enfoque basado en archivos de configuración. Este método es una estrategia de alta habilitación para el desarrollo de IVA, pero NVIDIA Graph Composer sigue este enfoque. Puede usarlo para generar canalizaciones de IVA compatibles con DeepStream mediante un editor visual con componentes de arrastrar y colocar. Con este mecanismo, puede simplificar aún más el desarrollo mientras ve cómo se relacionan los componentes entre sí en un grafo interactivo.

Screenshot that shows the NVIDIA DeepStream Graph Composer application.

Es posible que los componentes disponibles le parezcan familiares debido a los grupos de configuración que usamos anteriormente. Estos componentes y los grupos de configuración derivan de las funciones proporcionadas en las bibliotecas C de DeepStream SDK. Estos componentes están disponibles para la aplicación Composer mediante un registro local que extrae y almacena las extensiones proporcionadas por NVIDIA. La aplicación Composer también permite importar extensiones personalizadas para admitir componentes.

Una vez que un grafo esté listo para la producción, una herramienta de generación de contenedores incluida permite a los desarrolladores empaquetar grafos de Composer en cargas de trabajo de contenedor capaces de ejecutarse en dispositivos x86 o ARM64. Puede usar esta característica con Graph Composer para compilar canalizaciones de IVA en contenedores que se puedan implementar en dispositivos de clases de servidor y compatible con el borde.

Aquí se muestra el proceso completo para este flujo de trabajo.

Diagram that shows an NVIDIA DeepStream Graph Composer workflow.

Integración de cargas de trabajo de Graph Composer en contenedores con servicios de Azure IoT

Al empaquetar las cargas de trabajo de DeepStream Graph Composer en contenedores, las aplicaciones de IVA se pueden ejecutar en escenarios del borde a la nube con diversas funcionalidades, como:

  • Mensajería del dispositivo a la nube.
  • Mensajería de la nube al dispositivo.
  • Supervisión de dispositivos.
  • Actualizaciones remotas.
  • Implementación escalable mediante la integración con Azure IoT Edge.

Con esta oferta de servicio, puede instrumentar un dispositivo compatible con un entorno de ejecución que proporciona orquestación de cargas de trabajo en contenedores y conectividad segura en un punto de ingesta conocido como centro de IoT.

El tiempo de ejecución de IoT Edge se ejecuta en el dispositivo físico donde las cargas de trabajo en contenedores se denominan módulos. Estos módulos pueden comunicarse entre sí mediante el enrutamiento de mensajes. Por ejemplo, un módulo puede generar telemetría y otro puede agregar mensajes a partir de los primeros mensajes mediante Azure Stream Analytics en el borde. Los mensajes de este módulo se pueden publicar directamente en la nube a través de una conexión a un centro de IoT.

Diagram that shows an Azure IoT Edge runtime.

Con los dispositivos registrados y administrados de forma segura desde un centro de IoT, es posible implementar cargas de trabajo actualizadas en los dispositivos y también supervisar el estado de conectividad de toda una flota. Como resultado, puede poner las aplicaciones de DeepStream Graph Composer en producción con compatibilidad con todas las fases del ciclo de vida del desarrollo de software. Estas áreas incluyen compatibilidad con complementos para Azure DevOps, la capacidad de modificar cargas de trabajo en ejecución mediante módulos gemelos e implementaciones dirigidas basadas en metadatos del dispositivo.

Diagram that shows an Azure IoT Hub cloud interface.

En este módulo, exploraremos cómo desarrollar aplicaciones mediante DeepStream Graph Composer. A continuación, empaquetaremos esa salida en una carga de trabajo en contenedores. Por último, prepararemos ese contenedor para producción publicándolo en una instancia de Azure Container Registry. En el módulo de seguimiento, veremos cómo extraer esa carga de trabajo de un registro de contenedor seguro e implementarla en un dispositivo incrustado con tecnología NVIDIA que ejecute IoT Edge.

Pruebe esto

Imagine que se le ha encargado desarrollar una aplicación de análisis inteligente de vídeo (IVA) para contar el número de personas que entran en un restaurante. Ahora supongamos que al director general le encanta su prueba de concepto y quiere implementar esta aplicación en 1000 ubicaciones de todo el mundo. ¿Cómo podría diseñar una estrategia para llevar a cabo esta implementación? ¿Qué herramientas podría usar para acelerar el ciclo de desarrollo y pruebas?