Creación de un modelo de detección de objetos con AI Builder



AI Builder es la nueva funcionalidad de Power Platform, un nuevo servicio capaz de incorporar Inteligencia Artificial a nuestras aplicaciones bajo esa filosofía de “Low Code/No Code”. Es decir, aunque no tengas ni idea de Inteligencia Artificial, ahora no es un obstáculo para proporcionar funcionalidades inteligentes a tus Power Apps y a tus flows (en Power Automate).

Obviamente en Azure podemos construir nuestros propios modelos en los servicios cognitivos, pero hay que bajar a un nivel más funcional: Si tenemos casos de negocio específicos, ¿no sería genial poder conectar módulos inteligentes a nuestras aplicaciones sin depender del desarrollo?

He podido juguetear y diseñar Pruebas de Concepto que integran AI Builder y el tiempo invertido es, como todo en la Power Platform, bastante reducido para los buenos resultados obtenidos (aquí podríamos discutir sobre la complejidad de datos y casos de uso que manejan estas soluciones).
Decidí crear una pequeña aplicación personal (wAIsh it) para poner a prueba la funcionalidad y manejo del modelo de detección de objetos (hay que destacar que en el momento de escribir este post, aún se encuentra en Preview!). Estructurado en fases, decidí crear dos modelos de detección de objetos siguiendo las recomendaciones de la propia documentación de Microsoft y comparar los resultados.

¡Vamos allá!

Requisitos


  • >> Necesitamos identificar, precisamente, ¿qué queremos detectar? ¿Frutas?¿Ropa? ¿Iconos? En este ejemplo quiero detectar iconos en etiquetas de ropa. Recopilamos entonces una lista de todos aquellos objetos que queremos detectar
  • >> Imágenes, en formato JPG, PNG o BMP con un tamaño máximo de 6MB de tus objetos a detectar. Tras más de 20 modelos entrenados mi recomendación es: subid fotos de todos los ángulos, con distinta iluminación, con más de un objeto en la imagen; si el objeto tiene una forma no uniforme, intentad colgar tantas fotos de posiciones distintas. Cuanto más rico y variado sea tu set de entrenamiento 😊 mejor.
  • >> 15 Imágenes mínimo por elemento que queremos detectar (necesario para crear el modelo), pero Microsoft recomienda hasta 50 para que el modelo tenga buena fiabilidad. El conjunto de imágenes lo identificaremos como "data set".

Empezamos



Accedemos al entorno Power Apps o Power Automate (podemos acceder a AI Builder desde ambas plataformas) y vamos a la opción de “Construir”. Ahí veremos la lista de modelos que podemos crear y personalizar con nuestro set de datos, se nos proporciona también un conjunto de modelos ya entrenados para integrar directamente a nuestras soluciones.




Lo primero de todo es darle un nombre, sed creativos (pero precisos). 


A continuación nos pedirá la lista de etiquetas, elementos, que queremos detectar en las imágenes. Mi recomendación: trabajad íntegramente con CDM. Crearos una entidad, proporcionadle unos atributos y cread así el modelo. De este modo podréis identificar estas etiquetas y acceder a sus atributos una vez el modelo os detecte el objeto en una imagen. Mi entidad se llama “Treatment” y entre sus atributos elijo el Nombre, la etiqueta por la que identifico al elemento.





A continuación nos pide que subamos las imágenes (¡espero que tengáis buena conexión a internet!). 
Simplemente selecciona la carpeta donde has recopilado todas las imágenes de tu data set.
Una vez subidas llega la tediosa pero necesaria tarea de etiquetar imagen por imagen. Tendremos ir por cada imagen y encuadrar el objeto o objetos que se encuentran en la imagen y seleccionar la etiqueta. Es una tarea muy entretenida, pero buena noticia: en la parte superior a mano derecha tenéis la opción de guardar el progreso y continuar más tarde 😊 Creedme, cuando empecéis a cansaros os irá bien una pausa. En la parte derecha podréis ver el conteo total, solo cuando todas las etiquetas lleguen a un mínimo de 15, podrás terminar de configurar el modelo.




¡Enhorabuena! Ha pasado lo peor. Ahora haz un repaso en el sumario final y solo nos queda… ¡entrenar nuestro modelo! Cuando le des a entrenar, especialmente al modelo de detección en imágenes, ya le puedes dar tiempo. Te diría de irte a tomar un café, pero depende del número de imágenes, mejor vete a comer.


En cualquier momento podemos volver a nuestro entorno Power Apps/Power Automate y en el apartado de AI Builder, acceder a nuestros modelos.
Una vez nuestro modelo ya esté entrenado se nos proporcionará una puntuación. Esta puntuación (de 1 a 100) nos muestra la fiabilidad de nuestro modelo. Vaya, parece que necesitaré más imágenes, pues una puntuación de 47 sobre 100 pues no es muy buena señal.




Antes de utilizar el modelo e integrarlo en Power Apps o Power Automate, podéis hacer un test rápido: comprobar con otra imagen, que no haya formado parte del test, qué fiable es el modelo.




Tengo un caso de éxito para vosotros, este modelo creado con más de 50 imágenes por objeto es bastante más fiable 😊




¿Significa una puntuación baja que mi modelo no reconocerá nada?

Creo que es depende del tipo de objetos que estemos reconociendo. Yo os puedo decir que en el caso de minúsculos iconos en las etiquetas de ropa (seamos sinceros, la resolución y la nitidez será bastante limitado) funciona bastante bien. Según las estadísticas, tras pasarle 35 imágenes nuevas, solo en 9 hizo detecciones erróneas (y era porque los símbolos eran muy muy parecidos). Eso es un % de error solo del 25.

Estad atentos a siguientes entradas, os enseñaré cómo he integrado estos modelos en mi aplicación 😊 Tanto vía Power Apps como Power Automate.

¡Gracias por leerme!