Blog de Amazon Web Services (AWS)

Detección de anomalías en imágenes con Amazon Lookout for Vision (parte 1)

Thiago Couto, Arquitecto de Soluciones en Enterprise,
Rafael Almeida, Arquitecto de Soluciones y
Davi Holanda, Arquitecto de Soluciones

 

La detección de anomalías es una característica necesaria en una variedad de industrias y etapas de la cadena de producción. En el comercio minorista, por ejemplo, conocer el mal estado de un embalaje o producto evita daños con productos defectuosos que no pueden comercializarse. En sectores como la logística donde el mantenimiento es un elemento crucial para el flujo de carga, conocer el buen estado de las piezas que componen locomotoras y camiones es decisivo para evitar accidentes y optimizar los beneficios. En la industria automotriz, los beneficios se vuelven aún más evidentes, garantizando la calidad en la línea de producción.

Si bien es integral, crear un modelo de aprendizaje automático que detecte anomalías es una tarea costosa que requiere un conocimiento profundo. Para solucionar este problema, AWS ha lanzado la familia Amazon Lookout, una serie de servicios que detectan anomalías en los equipos, como Amazon Lookout for Equipment, métricas empresariales y operaciones con Amazon Lookout for Metrics e imágenes con Amazon Lookout for Vision.

En esta serie de publicaciones en blogs, exploraremos la funcionalidad de cada uno de estos servicios, empezando por Amazon Lookout for Vision. Detectar anomalías fotográficas de piezas, por ejemplo, es una tarea particularmente difícil, dada la complejidad necesaria para un modelo eficaz. En esta entrada de blog utilizaremos un conjunto de datos público Kaggle, que se puede encontrar en este enlace, para detectar anomalías en las imágenes de un impulsor. En este experimento vamos a utilizar un subconjunto de los elementos en la carpeta «casting_data», ya categorizados entre normal (ok_front) y anormal (def_front) y tendremos dos versiones, una para el efecto de demostración a través de consola que veremos a continuación y otra vía código con Jupyter Notebook, disponible en GitHub.

 

 

Dataset y etiquetas

Para demostrar la funcionalidad a través de la consola, utilizaremos imágenes del archivo dataset_reduzido.zip. Primero vamos a la página Amazon Lookout for Vision, para esta publicación utilizaremos la región de Ohio (us-east-2), confirmaremos la creación de un depósito de Amazon S3 para almacenar los archivos y, a continuación, hacer clic en «Crear proyecto» para crear un proyecto y comenzar nuestro análisis.

 

 

Con el proyecto creado, comenzaremos a subir nuestras imágenes y clasificarlas como normales o anómalas. Para esto, seleccionamos la opción «Crear conjunto de datos», en la siguiente pantalla seleccionaremos «Crear un único conjunto de datos» y «Cargar imágenes desde su computadora». Para facilitar la demostración utilizaremos un conjunto de datos a través de la carga, en la versión de código, utilizaremos cubos para hacer referencia a las imágenes con un conjunto de datos más grande y también utilizaremos un conjunto de datos para probar.

 

 

Vamos a empezar a subir las imágenes, haga clic en «Añadir imágenes», haga clic en»

Elija archivos» y seleccione las imágenes de la carpeta «normal», haga clic en «Subir imágenes». Para facilitar el proceso de categorización (etiquetado) lo haremos en dos pasos, uno para imágenes normales y otro para las imágenes anómalas. En la versión de código, esta identificación se realiza en función del nombre de la carpeta.

 

 

Seleccionamos las imágenes de la carpeta «normal». Con las imágenes añadidas, vamos a añadir las categorías, primero ir a «Añadir etiquetas», hacer clic en «Seleccionar todas las imágenes en esta página» y «Clasificar como normal», utilizar la navegación para navegar por las páginas y repetir el proceso de selección de las imágenes y ordenar como normal hasta que todas las imágenes estén ordenadas y haga clic en «Guardar cambios».

 

 

Ahora realizaremos el mismo proceso para las piezas consideradas defectuosas. Haga clic en «Acciones», «Añadir imágenes al conjunto de datos de entrenamiento» y vamos a repetir el proceso con la carpeta anormal. Una vez que se haya cargado, seleccionaremos «Sin etiqueta» en el menú de la izquierda, y repetiremos el proceso de categorización navegando por las páginas seleccionando todas las imágenes y haciendo clic en «Clasificar como anomalía».

Después de este proceso, tendremos 60 imágenes etiquetadas en total, 30 en la categoría «Normal» y 30 en la categoría «Anomalía». Esto concluye el paso de creación del conjunto de datos.

 

 

Construyendo del modelo

Al hacer clic en «Entrenar modelo» y confirmando en las dos pantallas siguientes, nuestro modelo comenzará su entrenamiento. Esto puede llevar algún tiempo.

 

 

Detección de anomalías

Después de la construcción completa del modelo podemos inspeccionar el rendimiento del modelo con los datos que enviamos al servicio. Ahora, vamos a utilizar la plantilla para hacer algunas detecciones: haga clic en «Detecciones de prueba» y «Ejecutar detección de prueba», seleccione la configuración como en la captura de pantalla a continuación, los elementos de la carpeta «validación» y haga clic en «Ejecutar detección de prueba». Esta detección puede tardar algún tiempo.

 

 

Una vez finalizada la detección, inspeccionaremos los resultados. Incluimos 5 imágenes de cada tipo, el nombre define a qué tipo pertenece cada imagen, el desglose muestra las 5 anomalías detectadas con éxito.

 

 

Conclusión

En este primer paso de esta serie de publicaciones de blog, vimos cómo utilizar Amazon Lookout Vision, a través de la consola o el código, para detectar anomalías utilizando imágenes reales de un conjunto de datos público. El mismo enfoque puede utilizarse en otras áreas para problemas similares. Para obtener más información, consulte los siguientes enlaces:

 

Página oficial: https://aws.amazon.com/lookout-for-vision/

 

Precios: https://aws.amazon.com/lookout-for-vision/pricing/

Documentación:https://docs.aws.amazon.com/lookout-for-vision/latest/developer-guide/what-is.html

Vídeo (inglés): https://www.youtube.com/watch?v=fOh-p9P8TFo

 

 

Este artículo fue traducido del Blog de AWS en Portugués

 


Sobre los autores

Thiago Couto es arquitecto de soluciones en AWS y trabaja en el segmento empresarial ayudando a clientes de Retail y CPG en sus viajes a la nube. Tiene más de 10 años de experiencia trabajando en arquitecturas que incluyen AI/ML, integraciones, IoT y arquitecturas relacionadas.

 

 

 

Davi Holanda es arquitecto de soluciones en AWS y opera en el segmento GreenField, ayudando a los clientes de fabricación en sus viajes a la nube. Sus principales áreas de experiencia son AI/ML, DevOps y desarrollo de aplicaciones.

 

 

 

 

Rafael Almeida es arquitecto de soluciones de AWS y opera en el segmento de pequeñas y medianas empresas (PYMES) ,  ayudando a diversos clientes en sus viajes de AWS .  Sus principales áreas de experiencia son AI/ML, sin servidor y desarrollo de aplicaciones web .