En este artículo se describe cómo usar un robot móvil con una cámara de streaming en vivo para implementar varios casos de uso. La solución implementa un sistema que se ejecuta localmente en Azure Stack Edge para ingerir y procesar la transmisión de vídeo y los servicios de Azure AI que realizan la detección de objetos.
Arquitectura
Descargue un archivo Visio de esta arquitectura.
Flujo de trabajo
En este flujo de trabajo se describe cómo procesa el sistema los datos entrantes:
Una cámara que se instala en el robot transmite vídeo en tiempo real mediante el protocolo de streaming en tiempo real (RTSP).
Un contenedor del clúster de Kubernetes en Azure Stack Edge lee la transmisión entrante y divide el vídeo en imágenes independientes. Una herramienta de software de código abierto denominada FFmpeg ingiere y procesa la transmisión de vídeo.
Las imágenes se almacenan en la cuenta de almacenamiento local de Azure Stack Edge.
Cada vez que se guarda un nuevo fotograma clave en la cuenta de almacenamiento, un contenedor de Visión de AI lo recoge. Para obtener información sobre la separación de lógica en varios contenedores, consulte los detalles del escenario.
Cuando carga un fotograma clave desde el contenedor de almacenamiento, el contenedor de Visión de AI lo envía a los servicios de Azure AI en la nube. Esta arquitectura usa Visión de Azure AI, que permite la detección de objetos a través del análisis de imágenes.
Los resultados del análisis de imágenes (objetos detectados y una calificación de confianza) se envían al contenedor de detección de anomalías.
El contenedor de detección de anomalías almacena los resultados del análisis de imágenes y la detección de anomalías en la instancia de SQL Database de Azure de Azure Stack Edge para futuras referencias. El uso de una instancia local de la base de datos mejora el tiempo de acceso, lo que ayuda a minimizar los retrasos en el acceso a los datos.
El procesamiento de datos se ejecuta para detectar anomalías en la transmisión de vídeo entrante en tiempo real. Si se detectan anomalías, una interfaz de usuario de front-end muestra una alerta.
Componentes
Azure Stack Edge es un dispositivo administrado de Azure que aporta el proceso, el almacenamiento y la inteligencia de Azure al entorno perimetral. Esta arquitectura lo usa para hospedar servicios de Azure en el entorno local, cerca de la ubicación donde se produce la detección de anomalías, lo que reduce la latencia.
Azure Kubernetes Service (AKS) en Azure Stack Edge. Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado que puede usar para implementar y administrar aplicaciones contenedorizadas. En esta arquitectura, se usa una versión de AKS que se ejecuta en el dispositivo Azure Stack Edge para administrar contenedores responsables de la lógica del sistema.
Azure Arc es un puente que extiende los servicios de Azure al entorno perimetral. Al usar Azure Arc en esta arquitectura, podemos controlar los servicios perimetrales a través del portal en la nube.
Visión de Azure AI es un servicio unificado que ofrece funcionalidades de Computer Vision. En esta arquitectura, la característica de análisis de imágenes se usa para detectar objetos en fotogramas clave de la secuencia de vídeo.
Azure Blob Storage es una solución de almacenamiento de objetos de Microsoft para la nube. En esta arquitectura, se usa para almacenar imágenes de fotogramas clave extraídos de la secuencia de vídeo.
Azure SQL Edge es un motor SQL de pequeño tamaño y optimizado para el entorno perimetral con IA integrada. En esta arquitectura, optamos específicamente por la versión perimetral del motor de SQL para almacenar metadatos de análisis de imágenes, manteniéndolos cerca del servicio que los consume y procesa.
Azure Container Registry es un registro de imágenes de Docker y Open Container Initiative (OCI), con compatibilidad con todos los artefactos de OCI. En esta arquitectura, el registro almacena imágenes de contenedor de Docker para la detección de anomalías y los contenedores de visión de IA.
Azure Key Vault es un servicio para proporcionar administración segura de claves en la nube. En esta arquitectura, se usa para almacenar secretos y claves para permitir que la lógica del sistema interactúe con servicios externos en los que la identidad administrada no está disponible.
Azure Monitor es una solución de supervisión completa para recopilar, analizar y responder a los datos de supervisión de sus entornos en la nube y locales. En esta arquitectura, este servicio es la plataforma de observabilidad principal para la carga de trabajo.
Detalles del escenario
Esta arquitectura muestra un sistema que procesa una transmisión de vídeo en tiempo real, compara los datos extraídos en tiempo real con un conjunto de datos de referencia y toma decisiones en función de los resultados. Por ejemplo, podría usarse para proporcionar inspecciones programadas de un perímetro delimitado alrededor de una ubicación protegida.
La arquitectura usa Azure Stack Edge para asegurarse de que los procesos que hacen un uso más intensivo de recursos se realicen en el entorno local, cerca del origen del vídeo. Este diseño mejora significativamente el tiempo de respuesta del sistema, que es importante cuando una respuesta inmediata a una anomalía es crítica.
Dado que las partes del sistema se implementan como contenedores independientes en un clúster de Kubernetes, solo puede escalar los subsistemas necesarios según la demanda. Por ejemplo, si aumenta el número de cámaras de la fuente de vídeo, puede escalar el contenedor responsable de la ingesta y el procesamiento de vídeo para controlar la demanda, pero mantener el resto del clúster en el nivel original.
La descarga de la funcionalidad de detección de objetos en los servicios de Azure AI reduce significativamente la experiencia que necesita para implementar esta arquitectura. A menos que sus requisitos para la detección de objetos sean altamente especializados, el enfoque listo para usarse que obtiene del servicio de análisis de imágenes es suficiente y no requiere conocimientos de aprendizaje automático.
Posibles casos de uso
Supervisión de la seguridad de un perímetro
Detección de un entorno de trabajo no seguro en una fábrica
Detección de anomalías en una línea de ensamblado automatizada
Detección de falta de líquido descongelante en aviones
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Una de las mayores ventajas de usar Azure Stack Edge es que obtiene componentes totalmente administrados en el hardware local. Todos los componentes de Azure totalmente administrados son resistentes automáticamente en un nivel regional.
Además, la ejecución del sistema en un clúster de Kubernetes le permite descargar la responsabilidad de mantener los subsistemas en buen estado en el sistema de orquestación de Kubernetes.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Las identidades administradas de Microsoft Entra proporcionan seguridad para todos los componentes de esta arquitectura. El uso de identidades administradas elimina la necesidad de almacenar secretos en archivos de código o configuración. Simplifica el control de acceso, la administración de credenciales y la asignación de roles.
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.
Si quiere ver un ejemplo de precios para este escenario, use la Calculadora de precios de Azure. Los componentes más caros del escenario son Azure Stack Edge y Azure Kubernetes Service. Estos servicios proporcionan capacidad para escalar el sistema con el objetivo de abordar el aumento de la demanda en el futuro.
El costo de usar los servicios de Azure AI para la detección de objetos varía en función del tiempo que se ejecute el sistema. El ejemplo de precios anterior se basa en un sistema que genera una imagen por segundo y funciona durante 8 horas al día. Un FPS es suficiente para este escenario. Sin embargo, si el sistema necesita ejecutarse durante períodos de tiempo más largos, el costo de usar los servicios de Azure AI es mayor:
Eficiencia del rendimiento
La eficiencia del rendimiento es la capacidad de la carga de trabajo para escalar con el fin de satisfacer de manera eficiente las demandas que los usuarios hayan ejercido sobre ella. Para obtener más información, vea Resumen del pilar de eficiencia del rendimiento.
Dado que el código se implementa en un clúster de Kubernetes, puede aprovechar las ventajas de este eficaz sistema de orquestación. Como los distintos subsistemas se separan en contenedores, puede escalar solo las partes más exigentes de la aplicación. En un nivel básico, con una fuente de vídeo entrante, el sistema puede contener solo un nodo en un clúster. Este diseño simplifica significativamente la configuración inicial. A medida que crece la demanda de procesamiento de datos, puede escalar fácilmente el clúster agregando nodos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
- Nick Sologoub | Responsable principal de ingeniería de software
Otros colaboradores:
- Mick Alberts | Escritor técnico
- Frédéric Le Coquil | Ingeniero principal de software
Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.
Pasos siguientes
Documentación del producto:
- Detección de objetos
- Uso responsable de la IA
- ¿Qué es Azure Stack Edge Pro 2?
- Azure Kubernetes Service
- Introducción a Azure Arc
Ruta de aprendizaje guiado:
- Lleve la innovación de Azure a sus entornos híbridos con Azure Arc
- Introducción a Azure Kubernetes Service
- Introducción a Azure Stack
- Análisis de imágenes con el servicio Computer Vision