Free Trial

Blog

Visiones e ideas de las mentes más brillantes en el campo del análisis.
Garabujo7
Alteryx
Alteryx

Dentro de la paleta de visión artificial, parte del paquete de Intelligence Suite, desde la versión 21.3. Contamos con la posibilidad de crear modelos para clasificar imágenes con el bloque analítico para reconocimiento de imágenes.

 

 

Garabujo7_0-1654791352449.png

 

 

Aquí les mostraré cómo crear un modelo para clasificar imágenes que haga más fácil identificar defectos en piezas de concreto. Así, en lugar de necesitar que una persona revise las piezas visualmente, una por una, es posible crear un modelo predictivo que lo haga automáticamente y las clasifique en dos, las que tienen defectos y las que no. De esta forma simplificaremos el trabajo visual y liberaremos una persona de esa tarea repetitiva y tediosa.

 

Sobre-ajuste, Sub-ajuste y el arte de conseguir un modelo adecuado

 

El primer paso será mostrarle imágenes al modelo con un conjunto de datos de entrenamiento y otro de validación. Lo hacemos así para asegurar que el modelo no este sobre-ajustando (memorizando las imágenes que le presentamos) ni sub-ajustando (que generalice demasiado sobre las características de las imágenes, en otras palabras, que encuentre semejanzas entre ellas más fácilmente).

 

Lo ideal cuando creamos cualquier modelo predictivo es que sin aprender de memoria los datos, sea capaz de generalizar lo aprendido cuando tenga datos que nunca haya visto antes.

 

Otra forma de ilustrar esto es: cuando estudiamos para un examen, si tenemos una guía y el examen tiene preguntas exactamente iguales a la guía, aprobaremos al memorizar la guía, pero si las preguntas no son las mismas, nuestra calificación podría no ser tan buena.

 

Por otro lado, sí la guía es demasiado superficial o genérica respecto al tema, no seremos capaces de responder las preguntas correctamente.

 

Sin embargo, sí las preguntas son basadas en la guía, con otras palabras, pero hablan del tema, podremos contestar ese y otros exámenes similares con cierta precisión.

Conjuntos de datos

 

Como mencioné arriba, para obtener un modelo que generalice lo mejor posible, necesitamos presentarle 3 conjuntos de datos separados.

 

 

Garabujo7_1-1654791352458.png

 

 

Entrenamiento, sirve para que el modelo conozca los datos y nos dé el primer resultado de su eficacia a la hora de clasificar las imágenes.

Validación. Con este conjunto nos aseguramos de que el modelo tenga un buen desempeño al presentarle imágenes diferentes a las que usamos para entrenarlo.

 

De esta forma aseguramos que no memorice demasiado ni este extendiendo de más las características de la imagen que queremos clasificar.

 

Holdout o retenidos, cuando estamos satisfechos con los resultados, utilizaremos estas imágenes para verificar que el modelo da resultados óptimos de acuerdo al objetivo de negocio que perseguimos.

 

Lectura de imágenes

 

Para ingresar las imágenes en Designer, usaremos el bloque Entrada de Imagen.

 

 

Garabujo7_2-1654791352459.png

 

 

 

Su configuración es sencilla:

 

 

Garabujo7_3-1654791352461.png

 

 

 

Podemos leer una carpeta o si usamos antes una entrada de directorio Garabujo7_4-1654791352461.png, podemos leer la carpeta y sus sub-carpetas donde se encuentran las imágenes.

 

Después asignamos un nombre a la columna Blob (si quieres saber más acerca de este tipo de archivos puedes leer aquí).

 

En este caso, la columna Blob almacenará las imágenes que leamos.

 

El último paso es seleccionar el tipo de imágenes que vamos a leer. La plataforma soporta PDF, BMP, JPEG o PNG.

 

Procesamiento de Imagen

 

 

Este bloque analítico nos permite procesar las imágenes para mejorarlas, ajustarlas y estandarizarlas antes de la creación de los modelos.

 

Garabujo7_5-1654791352461.png

 

Aquí tenemos las siguientes opciones:

 

 

Garabujo7_6-1654791352464.png

 

 

Seleccionar el campo que contiene las imágenes.

 

En los pasos podemos escoger los ajustes que se realizarán a todas las imágenes.

 

 

Garabujo7_7-1654791352465.png

 

 

La opción que llama la atención de entre las que se ofrecen es la optimización para OCR:

 

  • Optimiza los archivos PDF escaneados para el reconocimiento óptico de caracteres (OCR)

 

Preparación de los datos para el modelo

 

Agrego etiquetas a cada una de las imágenes que utilizare para entrenar el modelo de clasificación.

 

Como en cualquier modelo predictivo, necesito tener conjuntos de datos con los casos comprobados de lo que queremos predecir + casos que no tengan la variable que buscamos. De esta forma, el modelo será capaz de clasificar nuevas imágenes con base en lo que aprendió durante las fases de entrenamiento y validación.

 

Para este ejemplo utilizaremos piezas de concreto con defectos y otras que no tienen imperfecciones.

 

Con defectos:

 

Garabujo7_8-1654791352465.jpeg

 

 

Sin defectos:

 

Garabujo7_9-1654791352466.jpeg

 

 

La idea es tener un número de ejemplos, tanto de piezas con defectos como sin defectos para que el modelo sea capaz de clasificar imágenes nuevas, como con imperfecciones o sin ellas de forma efectiva.

 

La cantidad, variedad y calidad de los ejemplos es un punto clave para mejorar la capacidad del modelo para hacer clasificaciones correctas.

 

Una vez que tenemos los conjuntos de imágenes, creamos etiquetas para que el modelo sea capaz de identificar qué características tienen las piezas de concreto defectuosas y las que no lo son.

 

Después, utilizando el bloque de muestreo, separamos las imágenes en los 3 conjuntos de datos que describí arriba: Entrenamiento, Validación y Holdout.

 

Garabujo7_10-1654791352469.png

 

 

 

Teniendo los datos etiquetados y preparados. El siguiente punto es entrenar y validar el modelo para reconocimiento de imágenes.

 

En la siguiente entrega, terminaré el proceso de clasificación de imágenes.

 

Etiquetas