Passer la navigation

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

Le lean manufacturing, le contrôle des coûts et la réduction du gaspillage sont indispensables aux fabricants qui veulent rester compétitifs. Dans la fabrication de circuits imprimés, les circuits défectueux peuvent coûter de l’argent aux fabricants et affecter la productivité. Les lignes d’assemblage reposent sur des opérateurs humains pour rapidement examiner et valider les circuits imprimés marqués comme étant potentiellement défectueux par les machines de test.

Cette solution analyse les images de composants électroniques générées par les caméras des lignes d’assemblage dans une usine de fabrication de circuits imprimés et détecte leur état d’erreur. L’objectif est de minimiser ou de supprimer la nécessité d’une intervention humaine. La solution crée un système de classification d’images à l’aide d’un réseau neuronal convolutif avec 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. Ces caractéristiques sont ensuite utilisées pour former un arbre de décisions boosté pour classifier l’image en « réussite » ou « échec » et une analyse finale est effectuée sur les machines en périphérie à l’usine. Les résultats des performances de classification sont bons (validation croisée temporelle AUC>.90), ce qui indique que la solution est capable de minimiser considérablement l’intervention humaine dans le cadre de la détection des défaillances des composants électroniques des circuits imprimés assemblés.

L’utilisation de cette solution pour automatiser la détection des défaillances au lieu de s’appuyer uniquement sur des opérateurs humains permet d’améliorer l’identification des composants électroniques défectueux et de booster la productivité.

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

Conseils sur l’implémentation

Produits/Description Documentation

Stockage Blob Azure

Les données sont ingérées et stockées dans Stockage Blob Azure.

Machine virtuelle Science des données Azure basée sur un processeur graphique

La machine virtuelle Science des données Ubuntu basée sur un processeur graphique est l’environnement de développement principal. Les données sont extraites d’un blob dans un disque dur virtuel Azure (VHD) attaché à la machine virtuelle Science des données. Sur le disque dur virtuel, les données sont traitées, les caractéristiques des images sont extraites par un réseau de neurones profonds et un modèle d’arbre boosté est formé. Un serveur IPython Notebook de machine virtuelle Science des données est utilisé pour le développement de la solution.

Azure Batch AI training (BAIT)

Comme alternative à la formation basée sur une machine virtuelle Science des données, pour les travaux nécessitant beaucoup de ressources système qui utilisent le traitement d’images via l’apprentissage profond, nous utilisons BAIT comme infrastructure Azure Batch managée pour l’informatique parallèle et distribuée utilisant des clusters de nœuds de calcul de processeur graphique.

Microsoft Machine Learning pour le cluster Apache Spark HDInsight Spark

Comme alternative à la formation basée sur la machine virtuelle Science des données, pour les volumineux jeux de données, nous utilisons MMLSpark afin de créer une solution de formation hautement scalable.

Azure Container Registry

Le modèle et l’application web sont empaquetés dans une image Docker et écrits dans Azure Container Registry.

Service Gestion des modèles Azure Machine Learning

Le service Gestion des modèles Azure Machine Learning sert à déployer et à gérer le modèle final sur une machine virtuelle, ainsi qu’à assurer la scalabilité horizontale à l’aide d’Azure Container Service vers un cluster Azure managé par Kubernetes.

Un service web prédictif et un service ETL Java sont également écrits dans la machine virtuelle, chacun dans son propre conteneur.

Cluster Azure Container Service

Le déploiement de cette solution utilise Azure Container Service exécutant un cluster managé par Kubernetes. Les conteneurs sont déployés à partir d’images stockées dans Azure Container Registry.