Automatización industrial en Tyson con visión artificial, AWS Panorama y Amazon SageMaker

Nodo de origen: 1575225

Este es el primero de una serie de blogs de dos partes sobre cómo Tyson Foods, Inc. utiliza Amazon SageMaker y AWS Panorama para automatizar los procesos industriales en sus plantas empacadoras de carne al llevar los beneficios de las aplicaciones de inteligencia artificial al borde. En la primera parte, analizamos una aplicación de recuento de inventario para líneas de envasado. En la segunda parte, analizamos una solución de detección de anomalías basada en visión en el perímetro para el mantenimiento predictivo de equipos industriales.

Como uno de los mayores procesadores y comercializadores de carne de pollo, res y cerdo del mundo, alimentos tyson, inc., se caracteriza por traer soluciones innovadoras a sus plantas de producción y empaque. En febrero de 2020, Tyson anunció su plan para llevar Computer Vision (CV) a sus plantas de pollo y lanzó un piloto con AWS para ser pionero en los esfuerzos de gestión de inventario. Tyson colaboró ​​con Laboratorio de soluciones de Amazon ML para crear una solución CV de conteo de bandejas de pollo de última generación que brinde información en tiempo real sobre los niveles de inventario empacado. En esta publicación, brindamos una descripción general de la arquitectura de AWS y un recorrido completo de la solución para demostrar los componentes clave en la tubería de conteo de bandejas configurada en la planta de Tyson. Nos centraremos en la recopilación y el etiquetado de datos, la capacitación y la implementación de modelos CV en el perímetro utilizando Amazon SageMaker, Apache MXNet Gluóny Panorama de AWS.

La excelencia operativa es una prioridad clave en Tyson Foods. Tyson emplea estrictas medidas de garantía de calidad (QA) en sus líneas de envasado, lo que garantiza que solo se envíen a sus clientes aquellos productos envasados ​​que superen sus protocolos de control de calidad. Con el fin de satisfacer la demanda de los clientes y adelantarse a cualquier problema de producción, Tyson supervisa de cerca los recuentos de bandejas de pollo envasado. Sin embargo, las técnicas manuales actuales para contar las bandejas de pollo que pasan el control de calidad no son precisas y no presentan una imagen clara de los niveles de producción por encima o por debajo. Las estrategias alternativas, como monitorear el peso total de producción por estante por hora, no brindan información inmediata a los empleados de la planta. Con una capacidad de procesamiento de pollo de 45,000,000 XNUMX XNUMX de cabezas por semana, la precisión y la eficiencia de la producción son fundamentales para el negocio de Tyson. CV se puede usar de manera efectiva en tales escenarios para estimar con precisión la cantidad de pollo procesado en tiempo real, lo que permite a los empleados identificar posibles cuellos de botella en el empaque y las líneas de producción a medida que ocurren. Esto permite la implementación de medidas correctivas y mejora la eficiencia de la producción.

La transmisión y el procesamiento de secuencias de video en las instalaciones en la nube para aplicaciones CV requiere un alto ancho de banda de red y el aprovisionamiento de la infraestructura relevante. Esto puede ser una tarea de costo prohibitivo. AWS Panorama elimina estos requisitos y permite que Tyson procese transmisiones de video en el perímetro en el dispositivo AWS Panorama. Reduce la latencia hacia/desde la nube y los costos de ancho de banda, al tiempo que proporciona una interfaz fácil de usar para administrar dispositivos y aplicaciones en el perímetro.

La detección de objetos es uno de los algoritmos de CV más utilizados que pueden localizar la posición de los objetos en imágenes y videos. Esta tecnología se está utilizando actualmente en varias aplicaciones de la vida real, como la detección de peatones en vehículos autónomos, la detección de tumores en escaneos médicos, los sistemas de conteo de personas para monitorear el paso en espacios comerciales, entre otros. También es crucial para los casos de uso de gestión de inventario, como el conteo de bandejas de carne para Tyson, para reducir el desperdicio mediante la creación de un circuito de retroalimentación con los procesos de producción, el ahorro de costos y la entrega a tiempo de los envíos de los clientes.

Las siguientes secciones de esta publicación de blog describen cómo usamos videos en vivo de una de las plantas de Tyson Foods para entrenar un modelo de detección de objetos usando Amazon SageMaker. Luego lo implementamos en el perímetro con el dispositivo AWS Panorama.

Panorama de AWS

AWS Panorama es un dispositivo de aprendizaje automático (ML) que permite a las organizaciones llevar CV a las cámaras locales para hacer predicciones localmente con alta precisión y baja latencia. AWS Panorama Appliance es un dispositivo de hardware que le permite ejecutar aplicaciones que utilizan ML para recopilar datos de transmisiones de video, generar videos con superposiciones de texto y gráficos e interactuar con otros servicios de AWS. El dispositivo puede ejecutar múltiples modelos de CV contra múltiples transmisiones de video en paralelo y generar los resultados en tiempo real. Está diseñado para su uso en entornos comerciales e industriales.

El dispositivo AWS Panorama le permite ejecutar aplicaciones de CV independientes en el perímetro, sin enviar imágenes a la nube de AWS. También puede usar el SDK de AWS en el dispositivo Panorama de AWS para integrarse con otros servicios de AWS y usarlos para realizar un seguimiento de los datos de la aplicación a lo largo del tiempo. Para crear e implementar aplicaciones, utiliza la CLI de la aplicación Panorama de AWS. La CLI es una herramienta de línea de comandos que genera carpetas de aplicaciones y archivos de configuración predeterminados, crea contenedores con Docker y carga activos.

AWS Panorama admite modelos creados con Apache MXnet, red oscura, GluonCV, Keras, ONNX, PyTorch, TensorFlowy TensorFlow Lite. Referirse a así Publicación de blog para obtener más información sobre la creación de aplicaciones en AWS Panorama. Durante el proceso de implementación, AWS Panorama se encarga de compilar el modelo específico para la plataforma de borde a través de Compilación de Amazon SageMaker Neo. Los resultados de la inferencia pueden enrutarse a servicios de AWS como Amazon S3, Amazon CloudWatch o integrarse con aplicaciones de línea de negocio en las instalaciones. Los registros de implementación se almacenan en Amazon CloudWatch.

Para realizar un seguimiento de cualquier cambio en la lógica del script de inferencia o en el modelo entrenado, se puede crear una nueva versión de la aplicación. Versiones de la aplicación son instantáneas inmutables de la configuración de una aplicación. AWS Panorama guarda las versiones anteriores de sus aplicaciones para que pueda revertir las actualizaciones que no se realizaron correctamente o ejecutar diferentes versiones en diferentes dispositivos.

Para obtener más información, consulte la Página panorámica de AWS. Para obtener más información sobre la creación de aplicaciones de muestra, consulte Muestras panorámicas de AWS.

Enfoque

Un empleado de la planta llena continuamente bandejas de pollo empacado en contenedores de plástico y los apila con el tiempo, como se muestra en la figura anterior. Queremos poder detectar y contar el número total de bandejas en todos los contenedores apilados verticalmente.

Un modelo de detección de objetos entrenado puede predecir cuadros delimitadores de todas las bandejas colocadas en un contenedor en cada cuadro de video. Esto se puede usar para medir los recuentos de bandejas en un contenedor en una instancia determinada. También sabemos que, en cualquier momento, solo se llena un contenedor con bandejas empacadas; los recuentos de bandejas oscilan continuamente de alto (durante el llenado) a bajo (cuando un nuevo contenedor obstruye la vista del contenedor lleno).

Con este conocimiento, adoptamos la siguiente estrategia para contar el número total de bandejas de pollo:

  1. Mantenga dos contadores diferentes: local y global. El contador global mantiene el total de bandejas en contenedores y el contador local almacena el número máximo de bandejas colocadas en un contenedor nuevo.
  2. Actualizar el contador local a medida que se colocan nuevas bandejas en el contenedor.
  3. Detecte un nuevo evento bin de las siguientes maneras:
    1. El recuento de bandejas en un marco dado llega a cero. (o)
    2. El flujo de números de bandeja en el último n fotogramas cae continuamente.
  4. Una vez que se detecta el nuevo evento bin, agregue el valor del contador local al contador global.
  5. Poner a cero el contador local.

Probamos este algoritmo en varias horas de video y obtuvimos resultados consistentes.

Entrenamiento de un modelo de detección de objetos con Amazon SageMaker

Creación de conjuntos de datos:

Captura de nuevas imágenes para trabajos de etiquetado

Captura de nuevas imágenes para trabajos de etiquetado

Recolectamos muestras de imágenes de la línea de empaque usando AWS Panorama Appliance. El script para procesar imágenes y guardarlas se empaquetó como una aplicación y se implementó en AWS Panorama. La aplicación recopila fotogramas de video de una cámara instalada cerca de la zona de empaque y los guarda en intervalos de 60 segundos en un Amazon S3 balde; esto evita capturar imágenes similares en la secuencia de video que están separadas por unos pocos segundos. También enmascaramos regiones adyacentes en la imagen que no son relevantes para el caso de uso.

Etiquetamos las bandejas de pollo con cuadros delimitadores usando Amazon SageMaker Ground Truth's trabajo de etiquetado de transmisión. También configuramos una notificación de evento de Amazon S3 que publica eventos creados por objetos a una Servicio de notificación simple de Amazon (SNS), que actúa como fuente de entrada para el trabajo de etiquetado. Cuando el script de la aplicación de AWS Panorama guarda una imagen en un depósito de S3, se publica una notificación de evento en el tema de SNS, que luego envía esta imagen al trabajo de etiquetado. A medida que los anotadores etiquetan cada imagen entrante, Ground Truth guarda las etiquetas en un archivo de manifiesto, que contiene la ruta S3 de la imagen, así como las coordenadas de los cuadros delimitadores de la bandeja de pollo.

Realizamos varios aumentos de datos (por ejemplo: ruido aleatorio, contraste y brillo aleatorios, reproducción aleatoria de canales) en las imágenes etiquetadas para hacer que el modelo sea resistente a las variaciones en la vida real. Las imágenes originales y aumentadas se combinaron para formar un conjunto de datos unificado.

Entrenamiento modelo:

Una vez que se completa el trabajo de etiquetado, activamos manualmente un AWS Lambda función. Esta función de Lambda agrupa imágenes y sus etiquetas correspondientes del manifiesto de salida en un archivo LST. Nuestros archivos de prueba y capacitación tenían imágenes recopiladas de diferentes líneas de empaque para evitar cualquier fuga de datos en la evaluación. Luego, la función Lambda activa un trabajo de capacitación de Amazon SageMaker.

Utilizamos Modo de secuencia de comandos de SageMaker, que le permite traer sus propios algoritmos de entrenamiento y entrenar modelos directamente mientras se mantiene dentro de los límites fáciles de usar de Amazon SageMaker. Entrenamos modelos como SSD, Yolo-v3 (para latencia de inferencia en tiempo real) con varias combinaciones de redes troncales de GluonCV Model Zoo para detección de objetos en modo script. Las redes neuronales tienen la tendencia a sobreajustar los datos de entrenamiento, lo que genera resultados deficientes fuera de la muestra. GluonCV proporciona normalización de imágenes y aumentos de imágenes, como voltear y recortar imágenes aleatoriamente, para ayudar a reducir el sobreajuste durante el entrenamiento. los código de entrenamiento del modelo está en contenedores y utiliza la imagen de Docker en nuestro AWS Elastic Container Registry. El trabajo de entrenamiento toma la carpeta de imágenes S3 y las rutas del archivo LST como entradas y guarda el mejor artefacto del modelo (.parámetros y json) a S3 al finalizar.

Tubería de evaluación del modelo

Tubería de evaluación del modelo

Los 2 mejores modelos basados ​​en nuestro conjunto de prueba fueron SSD-resnet50 y Yolov3-darknet53, con una puntuación de mAP de 0.91 cada uno. También realizamos pruebas del mundo real mediante la implementación de una aplicación de inferencia en el dispositivo AWS Panorama junto con el modelo entrenado. El script de inferencia guarda las predicciones y los fotogramas de video en un depósito de Amazon S3. Creamos otro trabajo de SageMaker Ground Truth para anotar la verdad del terreno y luego realizamos una evaluación cuantitativa adicional del modelo. Las etiquetas de la realidad del terreno y del cuadro delimitador previsto en las imágenes se guardaron en S3 para una evaluación cualitativa. Los modelos pudieron generalizar los datos del mundo real y produjeron un rendimiento consistente similar al de nuestro conjunto de prueba.

Puede encontrar ejemplos completos e integrales sobre la creación de trabajos de entrenamiento personalizados, el entrenamiento de modelos de detección de objetos de última generación, la implementación de la optimización de hiperparámetros (HPO) y la implementación de modelos en Amazon SageMaker en el Repositorio de GitHub de AWS Labs.

Implementación de la aplicación de conteo de bandejas de carne

Arquitectura de Producción

Arquitectura de Producción

Antes de la implementación, empaquetamos todos nuestros activos: modelo, script de inferencia, cámara y configuración de variables globales en un solo contenedor, como se menciona en esta entrada del blog. Nuestra canalización de integración continua e implementación continua (CI/CD) actualiza cualquier cambio en el script de inferencia como una nueva versión de la aplicación. Una vez que se publica la nueva versión de la aplicación, la implementamos mediante programación usando boto3 SDK en Python.

Tras la implementación de la aplicación, AWS Panorama primero crea un trabajo de compilación de AWS SageMaker Neo para compilar el modelo para el dispositivo de AWS Panorama. El script de la aplicación de inferencia importa el modelo compilado en el dispositivo y realiza la detección de la bandeja de pollo en cada cuadro. Además de SageMaker Neo-Compilation, habilitamos la cuantificación posterior al entrenamiento agregando un os.environ['TVM_TENSORRT_USE_FP16'] = '1' bandera en el script. Esto reduce el tamaño de los pesos del modelo de float 32 a float 16, disminuyendo el tamaño del modelo a la mitad y mejorando la latencia sin degradación del rendimiento. Los resultados de la inferencia se capturan en Supervisión de AWS SiteWise a través de mensajes MQTT desde el dispositivo AWS Panorama a través de Núcleo de AWS IoT. Luego, los resultados se envían a Amazon S3 y se visualizan en Amazon QuickSight Tableros. Los gerentes y empleados de la planta pueden ver directamente estos paneles para comprender el rendimiento de cada línea de empaque en tiempo real.

Conclusión

Al combinar el servicio en la nube de AWS como Amazon SageMaker, Amazon S3 y el servicio perimetral como AWS Panorama, Tyson Foods Inc. está infundiendo inteligencia artificial para automatizar procesos industriales intensivos en humanos, como el recuento de inventario en sus plantas de fabricación. Las capacidades de inferencia de borde en tiempo real permiten a Tyson identificar la producción excesiva o insuficiente y ajustar dinámicamente su flujo de producción para maximizar la eficiencia. Además, al poseer el dispositivo AWS Panorama en el perímetro, Tyson también puede ahorrar costos asociados con el costoso ancho de banda de la red para transferir archivos de video a la nube y ahora puede procesar todos sus recursos de video/imagen localmente en su red.

Esta publicación de blog le brinda una descripción general de la aplicación perimetral de extremo a extremo y arquitecturas de referencia para desarrollar una aplicación CV con AWS Panorama. Discutimos 3 aspectos diferentes de la creación de una aplicación de CV perimetral.

  1. Datos: recopilación, procesamiento y etiquetado de datos mediante AWS Panorama y Amazon SageMaker Ground Truth.
  2. Modelo: Capacitación y evaluación de modelos con Amazon SageMaker y AWS Lambda
  3. El paquete de aplicaciones: Agrupación de modelos entrenados, scripts y archivos de configuración para AWS Panorama.

Estén atentos a la segunda parte de esta serie sobre cómo Tyson usa AWS Panorama para el mantenimiento predictivo basado en CV de máquinas industriales.

Haga Clic en esta página para comenzar su viaje con AWS Panorama. Para obtener más información sobre cómo colaborar con ML Solutions Lab, consulte Laboratorio de soluciones de aprendizaje automático de Amazon.


Acerca de los autores

divya bhargavi es un científico de datos en el Laboratorio de soluciones de Amazon ML donde trabaja con clientes en varios verticales y aplica la resolución creativa de problemas para generar valor para los clientes con soluciones ML/AI de última generación.

Dilip Subramaniam es desarrollador sénior en el equipo de tecnologías emergentes de Tyson Foods. Le apasiona crear aplicaciones distribuidas a gran escala para resolver problemas comerciales y simplificar procesos utilizando su conocimiento en desarrollo de software, aprendizaje automático y Big Data.

Fuente: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Sello de tiempo:

Mas de Blog de aprendizaje automático de AWS