Arquitectura de solución: Clasificación de imágenes con redes neuronales convolucionales

La fabricación ajustada (lean manufacturing), el control de costos y la reducción del desperdicio son factores clave para que un sistema de fabricación sea competitivo. En la fabricación de placas de circuitos, las placas defectuosas suponen una pérdida de costos y productividad para sus fabricantes. Las cadenas de montaje cuentan con operarios humanos para revisar y validar rápidamente las placas que las máquinas de pruebas de la cadena de montaje han marcado como posiblemente defectuosas.

Esta solución analiza imágenes de componentes electrónicos generadas por cámaras de cadenas de montaje en una planta de fabricación de placas de circuitos y detecta si tienen errores. El objetivo es minimizar o eliminar la necesidad de intervención humana. La solución crea un sistema de clasificación de imágenes usando una red neuronal convolucional con 50 niveles ocultos, entrenada previamente con 350 000 imágenes en un conjunto de datos ImageNet para generar características visuales de las imágenes quitando la última capa de red. Estas características se usan después para entrenar un árbol de decisiones mediante boosting con el fin de clasificar la imagen como “correcta” o “incorrecta”, y la puntuación final se lleva a cabo en máquinas perimetrales de la planta. Los resultados de la clasificación son buenos (validación cruzada basada en el tiempo con un valor de AUC > 0,90), lo que indica que la solución es válida para minimizar drásticamente la intervención humana en la detección de errores de componentes electrónicos en placas de circuitos ensambladas.

El uso de esta solución para automatizar la detección de errores en lugar de utilizar operarios humanos mejora la identificación de componentes electrónicos defectuosos y favorece la productividad.

Azure Blob Storage GPU Data Science Virtual Machine Azure Container Registry Azure Machine Learning Model Management Service Machine Learning Model Predictive Web Application Azure Container Service Java ETL

Guía sobre la implementación

Productos Documentación

Azure Blob Storage

Los datos se ingieren y almacenan en Azure Blob Storage.

Máquina virtual de ciencia de datos de Azure basada en GPU

El entorno de desarrollo básico consta de máquinas virtuales de ciencia de datos (DS) de Azure con GPU basadas en Ubuntu. Los datos se extraen de blobs y se insertan en el disco duro virtual (VHD) de Azure asociado a la máquina virtual DS. En ese disco VHD, se procesan los datos, se analizan las características de las imágenes con una red neuronal profunda y se entrena el modelo de árbol mediante boosting. Para el desarrollo de soluciones, se utiliza un servidor IPython Notebook en una máquina virtual DS.

Entrenamiento con inteligencia artificial de Azure Batch (BAIT)

Como alternativa al entrenamiento basado en máquinas virtuales DS, para trabajos que requieren una gran cantidad de computación y utilizan procesamiento de imágenes de aprendizaje profundo, usamos BAIT como un marco de Azure Batch administrado para ofrecer computación en paralelo y distribuida usando clústeres de nodos de proceso con GPU.

Microsoft Machine Learning para clústeres de Apache Spark en HDInsight

Como alternativa al entrenamiento basado en máquinas virtuales DS, para conjuntos de datos de gran tamaño, utilizamos MMLSpark para crear una solución de entrenamiento muy escalable.

Azure Container Registry

El modelo y la aplicación web se empaquetan en una imagen de Docker y se escriben en Azure Container Registry.

Servicio Administración de modelos de Azure Machine Learning

El servicio Administración de modelos de Azure Machine Learning se usa para implementar y administrar el modelo final en una máquina virtual y escalarlo horizontalmente con Azure Container Service a un clúster de Azure administrado por Kubernetes.

En la máquina virtual, se escriben también un servicio web predictivo y un servicio Java ETL, cada uno en su propio contenedor.

Clúster de Azure Container Service

La implementación de esta solución utiliza Azure Container Service ejecutándose en un clúster administrado por Kubernetes. Los contenedores se implementan en Azure Container Registry desde las imágenes almacenadas.