Conecte y ejecute modelos de aprendizaje automático para anomalías visuales en la arquitectura sin servidor de AWS

Imagine que tiene una gran infraestructura de varios tipos de dispositivos que necesita mantener regularmente o asegurarse de que no sean peligrosos para el entorno circundante.

Una forma de lograr esto es enviar personas regularmente a cada lugar para verificar si todo está bien. Esto es de alguna manera factible, pero también requiere mucho tiempo y recursos. Y si la infraestructura es lo suficientemente grande, es posible que no pueda cubrirla por completo en un año.

Otra forma es automatizar ese proceso y dejar que los trabajos en la nube verifiquen por usted. Para que eso suceda, deberá hacer lo siguiente:

👉 Un proceso rápido sobre cómo obtener imágenes de los dispositivos. Esto todavía lo pueden hacer las personas, ya que aún es mucho más rápido hacer solo una imagen como hacer todos los procesos de verificación del dispositivo. También se puede hacer con fotos tomadas desde automóviles o incluso drones, en cuyo caso se convierte en un proceso de recopilación de imágenes mucho más rápido y automatizado.

👉 Luego, debe enviar todas las imágenes obtenidas a un lugar dedicado en la nube.

👉 En la nube, necesita un trabajo automatizado para recoger las imágenes y procesarlas a través de modelos de aprendizaje automático capacitados para reconocer daños o anomalías en los dispositivos.

👉 Finalmente, los resultados deben ser visibles para los usuarios requeridos para que se pueda programar la reparación de los dispositivos con problemas.

Veamos cómo podemos lograr la detección de anomalías a partir de las imágenes en la nube de AWS. Amazon tiene algunos modelos de aprendizaje automático preconstruidos que podemos usar para ese propósito.

Cómo crear un modelo para la detección de anomalías visuales

Para crear un modelo para la detección de anomalías visuales, deberá seguir varios pasos:

Paso 1: Defina claramente el problema que desea resolver y los tipos de anomalías que desea detectar. Esto lo ayudará a determinar el conjunto de datos de prueba adecuado que necesitará para entrenar el modelo.

Paso 2: Recopile un gran conjunto de datos de imágenes que representen condiciones normales y anómalas. Etiquete las imágenes para indicar cuáles son normales y cuáles contienen anomalías.

Paso 3: Elija una arquitectura modelo que sea adecuada para la tarea. Esto puede implicar seleccionar un modelo previamente entrenado y ajustarlo para su caso de uso específico o crear un modelo personalizado desde cero.

Paso 4: entrenar el modelo utilizando el conjunto de datos preparado y el algoritmo seleccionado. Esto significa usar el aprendizaje de transferencia para aprovechar los modelos previamente entrenados o entrenar el modelo desde cero usando técnicas como las redes neuronales convolucionales (CNN).

Cómo entrenar un modelo de aprendizaje automático

Fuente: aws.amazon.com

El proceso de entrenamiento de los modelos de aprendizaje automático de AWS para la detección de anomalías visuales suele implicar varios pasos importantes.

#1. Recopilar los datos

Al principio, debe recopilar y etiquetar un gran conjunto de datos de imágenes que representen condiciones normales y anómalas. Cuanto más grande es el conjunto de datos, mejor y más preciso se puede entrenar el modelo. Pero además, implica mucho más tiempo dedicado a entrenar al modelo.

Por lo general, desea tener alrededor de 1000 imágenes en un conjunto de prueba para tener un buen comienzo.

#2. preparar los datos

Los datos de la imagen deben preprocesarse primero para que los modelos de aprendizaje automático puedan recogerlos. El preprocesamiento puede significar varias cosas, como:

  • Limpiar las imágenes de entrada en subcarpetas separadas, corregir metadatos, etc.
  • Cambiar el tamaño de las imágenes para cumplir con los requisitos de resolución del modelo.
  • Distribuyéndolos en trozos más pequeños de imágenes para un procesamiento paralelo más efectivo.

#3. Seleccione el modelo

Ahora elija el modelo correcto para hacer el trabajo correcto. Elija un modelo previamente entrenado o puede crear un modelo personalizado adecuado para la detección de anomalías visuales en el modelo.

#4. Evaluar los resultados

Una vez que el modelo procese su conjunto de datos, deberá validar su rendimiento. Además, desea comprobar si los resultados son satisfactorios para las necesidades. Esto puede significar, por ejemplo, que los resultados son correctos en más del 99 % de los datos de entrada.

#5. Implementar el modelo

Si está satisfecho con los resultados y el rendimiento, implemente el modelo con una versión específica en el entorno de la cuenta de AWS para que los procesos y servicios puedan comenzar a usarlo.

#6. Supervisar y mejorar

Deje que se ejecute a través de varios trabajos de prueba y conjuntos de datos de imágenes y evalúe constantemente si los parámetros necesarios para la corrección de la detección todavía están en su lugar.

De lo contrario, vuelva a entrenar el modelo incluyendo los nuevos conjuntos de datos donde el modelo entregó los resultados incorrectos.

Modelos de aprendizaje automático de AWS

Ahora, mire algunos modelos concretos que puede aprovechar en la nube de Amazon.

Reconocimiento AWS

Fuente: aws.amazon.com

Rekognition es un servicio de análisis de imágenes y videos de uso general que se puede utilizar para varios casos de uso, como el reconocimiento facial, la detección de objetos y el reconocimiento de texto. La mayoría de las veces, utilizará el modelo Rekognition para una generación inicial sin procesar de resultados de detección para formar un lago de datos de anomalías identificadas.

Proporciona una gama de modelos preconstruidos que puede usar sin capacitación. Rekognition también ofrece análisis en tiempo real de imágenes y videos con alta precisión y baja latencia.

Estos son algunos casos de uso típicos en los que Rekognition es una buena opción para la detección de anomalías:

  • Tener un caso de uso de propósito general para la detección de anomalías, como la detección de anomalías en imágenes o videos.
  • Realice la detección de anomalías en tiempo real.
  • Integre su modelo de detección de anomalías con servicios de AWS como Amazon S3, Amazon Kinesis o AWS Lambda.

Y aquí hay algunos ejemplos concretos de anomalías que puede detectar usando Rekognition:

  • Anomalías en los rostros, como la detección de expresiones faciales o emociones fuera del rango normal.
  • Objetos faltantes o extraviados en una escena.
  • Palabras mal escritas o patrones inusuales de texto.
  • Condiciones de iluminación inusuales u objetos inesperados en una escena.
  • Contenido inapropiado u ofensivo en imágenes o videos.
  • Cambios repentinos en el movimiento o patrones de movimiento inesperados.

AWS Lookout para la visión

Fuente: aws.amazon.com

Lookout for Vision es un modelo diseñado específicamente para la detección de anomalías en procesos industriales, como líneas de fabricación y producción. Por lo general, requiere un preprocesamiento y posprocesamiento de código personalizado de una imagen o algún recorte concreto de la imagen, generalmente realizado utilizando un lenguaje de programación Python. La mayoría de las veces, se especializa en algunos problemas muy especiales en la imagen.

Requiere capacitación personalizada en un conjunto de datos de imágenes normales y anómalas para crear un modelo personalizado para la detección de anomalías. No está tan enfocado en tiempo real; más bien, está diseñado para el procesamiento por lotes de imágenes, centrándose en la exactitud y la precisión.

Estos son algunos casos de uso típicos en los que Lookout for Vision es una buena opción si necesita detectar:

  • Defectos en productos fabricados o identificación de fallas de equipos en una línea de producción.
  • Un gran conjunto de datos de imágenes u otros datos.
  • Anomalía en tiempo real en un proceso industrial.
  • Anomalía integrada con otros servicios de AWS, como Amazon S3 o AWS IoT.

Y aquí hay algunos ejemplos concretos de anomalías que puede detectar usando Lookout for Vision:

  • Los defectos en los productos fabricados, como rayones, abolladuras u otras imperfecciones, pueden afectar la calidad del producto.
  • Fallas de equipos en una línea de producción, como la detección de maquinaria rota o que funciona mal, que puede causar demoras o riesgos para la seguridad.
  • Los problemas de control de calidad en una línea de producción incluyen la detección de productos que no cumplen con las especificaciones o tolerancias requeridas.
  • Los riesgos de seguridad en una línea de producción incluyen la detección de objetos o materiales que pueden representar un riesgo para los trabajadores o el equipo.
  • Anomalías en un proceso de producción, como detectar cambios inesperados en el flujo de materiales o productos a través de la línea de producción.

Sagemaker de AWS

Fuente: aws.amazon.com

Sagemaker es una plataforma totalmente administrada para crear, entrenar e implementar modelos personalizados de aprendizaje automático.

Es una solución mucho más robusta. De hecho, proporciona una manera de conectar y ejecutar varios procesos de varios pasos en una cadena de trabajos que se suceden uno tras otro, de forma muy similar a lo que pueden hacer las funciones de pasos de AWS.

Pero dado que Sagemaker utiliza instancias EC2 ad-hoc para su procesamiento, no existe un límite de 15 minutos para el procesamiento de un solo trabajo, como en el caso de las funciones AWS lambda en AWS Step Functions.

También puede realizar un ajuste automático del modelo con Sagemaker, que definitivamente es una característica que lo convierte en una opción destacada. Finalmente, Sagemaker puede implementar el modelo sin esfuerzo en un entorno de producción.

Estos son algunos casos de uso típicos en los que SageMaker es una buena opción para la detección de anomalías:

  • Un caso de uso específico no cubierto por modelos prediseñados o API, y si necesita crear un modelo personalizado que se ajuste a sus necesidades específicas.
  • Si tiene un gran conjunto de datos de imágenes u otros datos. Los modelos preconstruidos requieren un procesamiento previo en tales casos, pero Sagemaker puede hacerlo sin él.
  • Si necesita realizar una detección de anomalías en tiempo real.
  • Si necesita integrar su modelo con otros servicios de AWS, como Amazon S3, Amazon Kinesis o AWS Lambda.

Y aquí hay algunas detecciones de anomalías típicas que Sagemaker es capaz de realizar:

  • Detección de fraude en transacciones financieras, por ejemplo, patrones de gasto inusuales o transacciones fuera del rango normal.
  • Ciberseguridad en el tráfico de red, como patrones inusuales de transferencia de datos o conexiones inesperadas a servidores externos.
  • Diagnóstico médico en imágenes médicas, como la detección de tumores.
  • Anomalías en el rendimiento de los equipos, como la detección de cambios en la vibración o la temperatura.
  • Control de calidad en los procesos de fabricación, como la detección de defectos en los productos o la identificación de desviaciones de los estándares de calidad esperados.
  • Patrones inusuales de uso de energía.

Cómo incorporar los modelos en la arquitectura sin servidor

Un modelo de aprendizaje automático entrenado es un servicio en la nube que no utiliza ningún servidor de clúster en segundo plano; por lo tanto, se puede incluir fácilmente en una arquitectura sin servidor existente.

La automatización se realiza a través de funciones AWS lambda, conectadas a un trabajo de varios pasos dentro de un servicio de AWS Step Functions.

Por lo general, necesita una detección inicial justo después de recopilar las imágenes y su preprocesamiento en el depósito S3. Ahí es donde generará la detección de anomalías atómicas en las imágenes de entrada y guardará los resultados en un lago de datos, por ejemplo, representado por la base de datos de Athena.

En algunos casos, esta detección inicial no es suficiente para su caso de uso concreto. Es posible que necesite otra detección más detallada. Por ejemplo, el modelo inicial (por ejemplo, Reconocimiento) puede detectar algún problema en el dispositivo, pero no es posible identificar de manera confiable qué tipo de problema es.

Para eso, es posible que necesite otro modelo con diferentes capacidades. En tal caso, puede ejecutar el otro modelo (p. ej., Lookout for Vision) en el subconjunto de imágenes donde el modelo inicial identificó el problema.

Esta también es una buena manera de ahorrar algunos costos, ya que no necesita ejecutar el segundo modelo en un conjunto completo de imágenes. En su lugar, lo ejecuta solo en el subconjunto significativo.

Las funciones de AWS Lambda cubrirán todo ese procesamiento utilizando código Python o Javascript en su interior. Solo depende de la naturaleza de los procesos y de cuántas funciones AWS lambda necesitará incluir dentro de un flujo. El límite de 15 minutos para la duración máxima de una llamada de AWS lambda determinará cuántos pasos debe contener dicho proceso.

Ultimas palabras

Trabajar con modelos de aprendizaje automático en la nube es un trabajo muy interesante. Si lo mira desde la perspectiva de las habilidades y tecnologías, descubrirá que necesita tener un equipo con una gran variedad de habilidades.

El equipo debe comprender cómo entrenar un modelo, ya sea preconstruido o creado desde cero. Esto significa que se involucran muchas matemáticas o álgebra para equilibrar la confiabilidad y el rendimiento de los resultados.

También necesita algunas habilidades avanzadas de codificación Python o Javascript, bases de datos y SQL. Y después de realizar todo el trabajo de contenido, necesita habilidades de DevOps para conectarlo a una canalización que lo convertirá en un trabajo automatizado listo para su implementación y ejecución.

Definir la anomalía y entrenar el modelo es una cosa. Pero es un desafío integrarlo todo en un equipo funcional que pueda procesar los resultados de los modelos y guardar los datos de manera efectiva y automatizada para entregarlos a los usuarios finales.

A continuación, consulte todo sobre el reconocimiento facial para empresas.