Aprovechar los servicio cognitivos para simplificar el seguimiento del inventario

Publicado el 10 octubre, 2019

Sr. Content Developer

El equipo de prácticas del Centro de Investigación y Desarrollo en Nueva Inglaterra, Cambridge
¿Quién pasa el verano en el centro de Investigación y Desarrollo Microsoft Garage en Nueva Inglaterra (conocido como NERD)? El programa de prácticas Microsoft Garage busca estudiantes con ganas de aprender, sin miedo a probar cosas nuevas y capaces de salir de su zona de confort en situaciones ambiguas. En este programa se dan cita Grace Hsu del Instituto Tecnológico de Massachusetts, Christopher Bunn de la Universidad Northeastern, Joseph Lai de la Universidad de Boston y Ashley Hong de la Universidad Carnegie Mellon. Han decidido formar parte del programa de prácticas Garage porque su objetivo es analizar todo el ciclo de desarrollo, desde la idea hasta el envío, y aprender a centrarse en el cliente.

Los becarios de Microsoft Garage se embarcan en proyectos experimentales para potenciar su creatividad y sus habilidades de desarrollo de productos mediante el uso de tecnología nueva. Por lo general, estos proyectos son propuesta de los grupos de productos internos de Microsoft, aunque cuando Stanley Black & Decker preguntó si Microsoft podía aplicar el reconocimiento de imágenes en la gestión de activos de las zonas de construcción, este equipo formado por cuatro becarios aceptó el desafío de crear un prototipo funcional en apenas doce semanas.

A partir de una solicitud de aprovechamiento del reconocimiento de imágenes, el equipo hizo un análisis del mercado y una investigación de usuarios para garantizar la utilidad y diferenciación del producto. Dedicaron el verano a conseguir experiencia en el desarrollo de aplicaciones móviles e inteligencia artificial para desarrollar una aplicación que reconociera las herramientas con una precisión similar a la humana.

El problema

En el sector de la construcción es habitual que los contratistas dediquen 50 horas al mes a hacer un seguimiento del inventario, lo que conlleva retrasos innecesarios, exceso de existencias y falta de herramientas. Es total, las zonas de construcción de mayor tamaño pueden perder equipo por un valor superior a 200 000 $ en un proyecto de larga duración. Para abordar este problema se pone en marcha una combinación de estrategias no estandarizadas, como códigos de barras, Bluetooth, etiquetas RIFD y códigos QR. El equipo de Stanley Black & Decker se preguntó si no sería más sencillo hacer una fotografía para reconocer automáticamente la herramienta.

Como hay muchas herramientas con mínimas diferencias, para reconocer un taladro determinado debe indicarse el número de modelo como DCD996. Además, las herramientas pueden mostrar diversas configuraciones, con o sin broca, con o sin batería, y se puede ver desde distintos ángulos. También se debe tener en cuenta la infinidad de condiciones de iluminación y fondos que se encuentran en las zonas de construcción. Por todo ello, se trata de un problema muy interesante que resolver mediante visión por ordenador.

Cuatro taladros DeWalt con un aspecto muy similar
 

Cómo se resolvió

Los algoritmos de clasificación se pueden entrenar para conseguir una alta precisión a la hora de identificar distintos objetos, por ejemplo: diferenciar entre un taladro, una sierra y una cinta métrica. No obstante, el objetivo era saber si un clasificador podía diferenciar entre herramientas muy parecidas, como los cuatro taladros anteriores. En la primera repetición del proyecto, el equipo analizó el servicio Custom Vision de PyTorch y Microsoft. Los usuarios recurren a Custom Vision porque no requiere de amplios conocimientos científicos para comenzar a utilizar un modelo, y con las imágenes suficientes (aproximadamente 400 para cada herramienta) Custom Vision es una solución adecuada. No obstante, pronto resultó evidente que la recopilación manual de tal cantidad de imágenes supondría un gran reto para una gama de productos formada por miles de herramientas. Por lo tanto, el objetivo pasó a ser encontrar formas de generar estas imágenes de forma sintética.

En su enfoque inicial, el equipo realizó escaneos tridimensionales y renderizados con croma verde de las herramientas. Posteriormente, se superpusieron estas imágenes con fondos aleatorios para simular una fotografía real. Aunque este enfoque parecía esperanzador, la calidad de las imágenes generadas no era la correcta.

En el segundo intento el equipo colaboró con el departamento de ingeniería de Stanley Black & Decker para adoptar un nuevo enfoque con renderizados fotorrealistas obtenidos gracias a modelos de diseños asistidos por ordenador (CAD). Para ello, utilizaron scripts de Python relativamente sencillos para redimensionar, girar y superponer de forma aleatoria estas imágenes en una amplia variedad de fondos. Gracias a esta técnica, el equipo generó miles de imágenes de entrenamiento en cuestión de minutos.


    Imagen generada con un croma verde frente a imagen renderizada con CAD

A la izquierda aparece una imagen generada con un croma verde, mientras que a la derecha se aprecia un extracto de CAD.

Evaluación comparativa de las repeticiones

El servicio Custom Vision ofrecer informes de la precisión del modelo, tal y como se muestra a continuación.

Ejemplo de un informe extraído del servicio Custom Vision
En un modelo de clasificación destinado a productos visualmente tan similares, una matriz de confusión como la siguiente resulta muy útil. Una matriz de confusión visualiza el rendimiento de un modelo de predicción al comparar la etiqueta real de una categoría en las filas que llevan la etiqueta impresa y el modelo en las columnas. Cuanto mayores sean las puntuaciones diagonales, más preciso será el modelo. Cuando los valores superiores se alejan de la diagonal, los analistas de datos detectan qué dos categorías confunde el modelo entrenado.

Se pueden utilizar las bibliotecas Python existentes para crear una matriz de confusión con un conjunto de imágenes de prueba.
Matriz de confusión para 10 productos de DeWalt 

El resultado

El equipo desarrolló una aplicación de React Native compatible con iOS y Android que se puede utilizar como herramienta de gestión de activos gracias a su sencilla e intuitiva interfaz de usuario. Esta aplicación se adapta a varios niveles de disponibilidad Wi-Fi y, cuando aparece una conexión fiable, las imágenes captadas se envían a las API del modelo entrenado de Custom Vision en Azure Cloud. De no haber conexión a Internet, las imágenes se envían a un modelo de visión por ordenador local.

Estos modelos locales se pueden conseguir con Custom Vision, que exporta modelos a Core ML para iOS, TensorFlow para Android, o como contenedor Docker compatible con App Service de Linux en Azure. Se puede introducir un marco sencillo para añadir nuevos productos al modelo de aprendizaje automatizado mediante la exportación de imágenes renderizadas desde CAD y la generación de imágenes sintéticas.

Capturas de la interfaz de usuario de la aplicación de inventarioCapturas de la interfaz de usuario de la aplicación de inventario
  
Imágenes de izquierda a derecha: pantalla con la lista de comprobación de inventario, función cámara para enviar una imagen al servicio Custom Vision, visualización de los resultados del modelo de aprendizaje automatizado y forma manual de añadir una herramienta a la lista de comprobación.

Arch_Diagram

A continuación

¿Busca una oportunidad para que su equipo desarrolle un proyecto de visión por ordenador? Buscar un OpenHack cercano.

Microsoft OpenHack es evento orientado a los desarrolladores en el que una gran variedad de participantes (Open) aprenden con experimentos manuales (Hack) a resolver retos basados en compromisos de clientes reales de todo el mundo, diseñados para simular el trayecto de un desarrollador. OpenHack es un evento prémium de Microsoft que ofrece una experiencia de desarrollo continua y única a clientes y socios. A diferencia de las conferencias y presentaciones tradicionales, OpenHack ofrece una experiencia de codificación única a los desarrolladores.

Además, las rutas de aprendizaje le ayudarán a conocer los servicios cognitivos.