Clasificación de imágenes con redes neuronales convolucionales

Blob Storage
Container Registry
Data Science Virtual Machine
Kubernetes Service
Machine Learning

Idea de solución Solution Idea

Si desea que ampliemos este artículo con más información, detalles de la implementación, guía de precios o ejemplos de código, háganoslo saber en GitHub Feedback (Comentarios de GitHub).If you'd like to see us expand this article with more information, implementation details, pricing guidance, or code examples, let us know with GitHub Feedback!

La producción eficiente, el control de costos y la reducción de residuos son imprescindibles para que la fabricación siga siendo competitiva.Lean manufacturing, cost control, and waste reduction are imperative for manufacturing to remain competitive. En la fabricación de circuitos, las placas defectuosas pueden costar a los fabricantes dinero y productividad.In circuit-board manufacturing, faulty boards can cost manufacturers money and productivity. Las líneas de ensamblado se basan en operadores humanos para revisar y validar rápidamente las placas marcadas como potencialmente defectuosas por las máquinas de pruebas de la línea de montaje.Assembly lines rely on human operators to quickly review and validate boards flagged as potentially faulty by assembly-line test machines.

Esta solución analiza las imágenes de los componentes electrónicos generadas por las cámaras de la línea de montaje en una planta de fabricación de circuitos y detecta su estado de error.This solution analyzes electronic component images generated by assembly-line cameras in a circuit-board manufacturing plant and detects their error status. El objetivo es minimizar o eliminar la necesidad de intervención humana.The goal is to minimize or remove the need for human intervention. La solución crea un sistema de clasificación de imágenes que usa una red neuronal convolucional con 50 niveles ocultos, previamente entrenado con 350 000 imágenes de un conjunto de datos de ImageNet para generar características visuales de las imágenes mediante la eliminación de la última capa de red.The solution builds an image classification system using a convolutional neural network with 50 hidden layers, pretrained on 350,000 images in an ImageNet dataset to generate visual features of the images by removing the last network layer. Estas características se usan para entrenar un árbol de decisión con potenciación para clasificar la imagen como "apta" o "no apta" y para la puntuación final realizada en los equipos perimetrales de la planta.These features are then used to train a boosted decision tree to classify the image as "pass" or "fail" and final scoring conducted on edge machines at the plant. Los resultados de rendimiento de la clasificación son buenos (AUC de validación cruzada basada en el tiempo > 0,90), lo que indica que la solución es adecuada para minimizar drásticamente la intervención humana en la detección de errores de los componentes electrónicos de las placas de los circuitos ensamblados.The classification performance results are good (time-based cross-validation AUC>.90) which indicates the solution is suitable to drastically minimize human intervention for electronic-components failure detection in assembled circuit boards.

El uso de esta solución para automatizar la detección de errores en lugar de confiar exclusivamente en operadores humanos ayuda a mejorar la identificación de los componentes electrónicos defectuosos y a aumentar la productividad.Using this solution to automate failure detection instead of relying solely on human operators helps improve the identification of faulty electronic components and boost productivity.

ArchitectureArchitecture

Diagrama de la arquitectura Descargue un SVG de esta arquitectura.Architecture Diagram Download an SVG of this architecture.

ComponentesComponents

  • Azure Blob Storage: los datos se ingieren y almacenan en Azure Blob Storage.Azure Blob Storage: Data is ingested and stored in Azure Blob Storage.
  • Data Science Virtual Machine de Azure basada en GPU: el entorno de desarrollo principal es la DSVM de Azure con GPU basada en Ubuntu.GPU based Azure Data Science Virtual Machine: The core development environment is the Azure Ubuntu-based GPU DSVM. Los datos se extraen del blob en un disco duro virtual (VHD) de Azure conectado a la DSVM.The data is pulled from blob onto an Azure virtual hard disk (VHD) attached to the DSVM. En ese VHD, se procesan los datos, se caracterizan las imágenes con una red neuronal profunda y se entrena un modelo de árbol con potenciación.On that VHD, the data is processed, the images are featurized using a Deep Neural Network, and a Boosted Tree model is trained. Se utiliza un servidor de IPython Notebook en la DSVM para el desarrollo de la solución.DSVM IPython Notebook server is used for solution development.
  • Microsoft Machine Learning para Apache Spark en un clúster de Spark en HDInsight: Como alternativa al entrenamiento basado en la DSVM, para conjuntos de datos de gran tamaño usamos MMLSpark para crear una solución de entrenamiento muy escalable.Microsoft Machine Learning for Apache Spark HDInsight Spark Cluster: As an alternative to DSVM-based training, for big datasets, we use MMLSpark to build a highly scalable training solution.
  • Azure Container Registry: el modelo y la aplicación web se empaquetan en una imagen de Docker y se escriben en Azure Container Registry.Azure Container Registry: The model and web application are packaged into a Docker image and written to Azure Container Registry.
  • Servicio de Administración de modelos de Machine Learning: el servicio de Administración de modelos de Machine Learning se usa para implementar y administrar el modelo final en una máquina virtual y para escalar horizontalmente mediante Azure Kubernetes Service con un clúster de Azure administrado por Kubernetes.Azure Machine Learning Model Management Service: Azure Machine Learning Model Management service is used to deploy and manage the final model on a VM and to scale out using Azure Kubernetes Service to a Kubernetes managed Azure cluster. También se escriben en la máquina virtual un servicio web predictivo y un servicio ETL de Java, cada uno en su propio contenedor.A predictive web service and a Java ETL service are also written onto the VM, each in its own container.
  • Azure Kubernetes Service (AKS): la implementación de esta solución usa Azure Kubernetes Service para la ejecución de un clúster administrado por Kubernetes.Azure Kubernetes Service (AKS): Deployment for this solution uses Azure Kubernetes Service running a Kubernetes-managed cluster. Los contenedores se implementan a partir de imágenes almacenadas en Azure Container Registry.The containers are deployed from images stored in Azure Container Registry.

Pasos siguientesNext steps