Classification d’images avec les réseaux de neurones convolutifs

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

Idée de solution Solution Idea

Si vous souhaitez nous voir développer cet article avec d’autres informations, les détails de l’implémentation, le guide de tarification ou des exemples de code, faites-le-nous savoir avec les Commentaires 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!

Une production allégée, un contrôle des coûts et une réduction des déchets sont indispensables pour que le secteur manufacturier reste compétitif.Lean manufacturing, cost control, and waste reduction are imperative for manufacturing to remain competitive. En matière de fabrication de cartes de circuits imprimés, des cartes défectueuses peuvent s’avérer coûteux en termes d’argent et de productivité pour les fabricantsIn circuit-board manufacturing, faulty boards can cost manufacturers money and productivity. Les lignes d’assemblage s’appuient sur des opérateurs humains pour examiner et valider rapidement les cartes marquées comme étant potentiellement défectueuses par les machines de test.Assembly lines rely on human operators to quickly review and validate boards flagged as potentially faulty by assembly-line test machines.

Cette solution analyse les images des composants électroniques générées par les caméras des lignes d’assemblage d’une usine de fabrication de circuits et détecte leur état d’erreur.This solution analyzes electronic component images generated by assembly-line cameras in a circuit-board manufacturing plant and detects their error status. L’objectif consiste à limiter, voire éliminer la nécessité d’une intervention humaine.The goal is to minimize or remove the need for human intervention. La solution crée un système de classification d’images à l’aide d’un réseau neuronal convolutionnel doté de 50 couches masquées, préformées sur 350 000 images dans un jeu de données ImageNet pour générer les caractéristiques visuelles des images en supprimant la dernière couche réseau.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. Ces caractéristiques sont ensuite utilisées pour former un arbre de décision amélioré afin de classer l’image sur « Réussite » ou « Échec », et le scoring final effectué sur les machines de périphérie de l’usine.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. Les résultats des performances de classification sont bons (AUC de validation croisée basée sur le temps > .90), ce qui indique que la solution permet de considérablement réduire l’intervention humaine à des fins de détection des défaillances des composants électroniques dans cartes de circuit assemblé.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.

L’utilisation de cette solution pour automatiser la détection des défaillances, sans compter uniquement sur des opérateurs humains, permet d’améliorer l’identification des composants électroniques défectueux et de dynamiser la productivité.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

Diagramme d’architecture Télécharger une SVG de cette architecture.Architecture Diagram Download an SVG of this architecture.

ComponentsComponents

  • Stockage Blob Azure : Les données sont ingérées et stockées dans Stockage Blob Azure.Azure Blob Storage: Data is ingested and stored in Azure Blob Storage.
  • Instance Data Science Virtual Machine (DSVM) Azure basée sur GPU : L’environnement de développement principal correspond à la machine virtuelle DSVM GPU basée sur Azure Ubuntu.GPU based Azure Data Science Virtual Machine: The core development environment is the Azure Ubuntu-based GPU DSVM. Les données sont extraites de l’objet blob sur un disque dur virtuel (VHD) Azure attaché à la machine virtuelle DSVM.The data is pulled from blob onto an Azure virtual hard disk (VHD) attached to the DSVM. Sur ce disque dur virtuel, les données sont traitées, les images sont caractérisées à l’aide d’un réseau neuronal profond et un modèle d’arbre amélioré est formé.On that VHD, the data is processed, the images are featurized using a Deep Neural Network, and a Boosted Tree model is trained. Le serveur DSVM IPython Notebook est utilisé pour développer des solutions.DSVM IPython Notebook server is used for solution development.
  • Microsoft Machine Learning pour Apache Spark HDInsight Spark Cluster : En guise d’alternative à la formation basée sur la machine virtuelle DSVM, pour les jeux de données volumineux, nous utilisons MMLSpark afin de créer une solution de formation hautement évolutive.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 : Le modèle et l’application web sont empaquetés dans une image Docker et écrits dans Azure Container Registry.Azure Container Registry: The model and web application are packaged into a Docker image and written to Azure Container Registry.
  • Service de gestion des modèles Azure Machine Learning : Le service de gestion des modèles Azure Machine Learning permet de déployer et de gérer le modèle final sur une machine virtuelle et d’effectuer un scale-out à l’aide d’Azure Kubernetes Service sur un cluster Azure géré par 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. Un service web prédictif et un service ETL Java sont également écrits sur la machine virtuelle, chacun dans son propre conteneur.A predictive web service and a Java ETL service are also written onto the VM, each in its own container.
  • Azure Kubernetes Service (AKS) : Le déploiement de cette solution utilise le service Azure Kubernetes exécutant un cluster géré par Kubernetes.Azure Kubernetes Service (AKS): Deployment for this solution uses Azure Kubernetes Service running a Kubernetes-managed cluster. Les conteneurs sont déployés à partir d’images stockées dans Azure Container Registry.The containers are deployed from images stored in Azure Container Registry.

Étapes suivantesNext steps