En juin 2021, Google Cloud a annoncé Visual Inspection AI. Cet outil permet aux fabricants et aux entreprises de biens de consommation de réduire le nombre de défauts en permettant la formation et le déploiement rapides de modèles d'IA pour détecter les défauts de production. Il fait partie de l'offre Vertex AI de Google Cloud et, au moment où nous écrivons ces lignes, il est encore soumis à un accès GA restreint, ce qui signifie qu'il n'est pas accessible au public. Heureusement, ML6 étant un partenaire Premier de Google Cloud Services, nous avons pu obtenir un accès anticipé à ce tout nouvel outil et le mettre à l'épreuve pour vous.
Inspection visuelle L'IA se concentre sur trois types d'inspection :
Dans cet article de blog, nous allons passer en revue chacun de ces types et discuter de leurs caractéristiques. Nous mettrons également l'inspection cosmétique à l'épreuve pour voir comment elle se comporte.
Le premier type d'inspection proposé par Visual Inspection AI est la détection d'anomalies dans les images. Bien qu'il s'agisse d'une tâche très populaire dans le domaine de la vision par ordinateur, ce type d'inspection n'était pas encore disponible lorsque la version à accès restreint de l'AG a été mise à notre disposition en février 2022. Il a été mis à disposition sous forme de mise à jour en août 2022.
Comme son nom l'indique, ce type d'inspection vérifie la présence d'anomalies sur l'ensemble de l'image au lieu de localiser des anomalies individuelles. Il est intéressant de noter que l'étiquetage (l'annotation) n'est pas obligatoire. Cela signifie que vous pouvez également entraîner un modèle sans étiqueter les images comme normales ou anormales, mais cela se fait bien sûr au prix d'une performance d'entraînement potentiellement dégradée. Un autre inconvénient est que vous ne pourrez pas visualiser les mesures d'évaluation puisqu'il n'y a pas de vérité terrain. Google Cloud vous demande de télécharger au moins 20 images normales ou au moins 10 images normales et 10 images anormales. Pour améliorer les performances, il est recommandé de télécharger au moins 1 000 images normales ou 100 images normales et 100 images anormales.
Après la formation, le modèle peut être évalué à l'aide de méthodes d'évaluation typiques telles qu'une courbe de précision et de rappel et une matrice de confusion. Sur la base de ces méthodes, l'utilisateur peut définir un seuil de confiance approprié. C'est ce seuil qui détermine si l'image est classée comme anormale ou non. Il est ainsi possible de choisir entre un modèle plus précis et un modèle plus sensible.
Le fait que vous puissiez entraîner un modèle sans étiqueter les images comme normales ou anormales nous a intrigués, c'est pourquoi nous avons décidé d'essayer cette fonctionnalité. Nous avons collecté un ensemble de données ML6 interne de tasses noires et bleues et avons décidé de télécharger 200 images de tasses noires et 5 de tasses bleues, traitant ainsi les tasses bleues comme des tasses anormales.
Après avoir entraîné le modèle et être allé sur la page d'évaluation, nous recevons évidemment un message indiquant qu'il n'y a pas d'étiquettes de vérité terrain pour calculer les métriques. Ce qui est intéressant cependant, c'est que l'IA d'inspection visuelle nous suggère ensuite les images à étiqueter dans un certain ordre. Et devinez quoi, nos cinq tasses bleues sont en haut de la liste, ce qui montre que le modèle n'a pas vraiment confiance en ces images et pense que leur étiquetage aura un impact important sur les résultats du modèle.
Il est toutefois surprenant de constater que lorsque nous les classons en fonction de leur score de défaut, seule une tasse bleue reste dans la liste de tête. Cela suggère que l'IA d'inspection visuelle dispose à la fois d'un score de défauts et d'une sorte de score de confiance interne pour chaque image.
On peut ensuite continuer à étiqueter les images et à réentraîner le modèle pour l'améliorer progressivement.
Le deuxième type d'inspection que nous examinerons est l'inspection d'assemblage. Ce mode convient au contrôle de la qualité des produits assemblés, car il permet d'inspecter chaque composant individuel de votre produit pour deux raisons :
Nous avons téléchargé des images de circuits imprimés (provenant de l'ensemble de données de démonstration de Google Cloud) dans Visual Inspection AI afin de démontrer les principes clés de l'inspection d'assemblage. Une fois les images téléchargées, il y a trois étapes principales à suivre :
À des fins de démonstration, nous avons marqué l'un des condensateurs, le circuit intégré et l'une des résistances sur l'image de notre modèle de base. Bien que cela ne soit pas démontré ici, il est également possible de marquer plusieurs composants individuels du même type sur une image (par exemple, toutes les résistances).
Une fois ces étapes initiales effectuées, l'IA d'inspection visuelle détecte les composants étiquetés précédemment sur les images restantes. Au cours de ce processus, les composants sont également alignés automatiquement, de sorte que les produits (les circuits imprimés dans notre cas) n'ont pas nécessairement besoin d'être alignés sur les images. Cela signifie qu'ils peuvent par exemple être tournés d'un certain nombre de degrés, comme c'est le cas pour la deuxième image de la capture d'écran ci-dessous. Une fois ce processus terminé, vous pouvez voir la quantité de condensateurs, de circuits intégrés et de résistances qui ont été détectés par le modèle.
Vous pouvez cliquer sur les composants dans le sous-menu de gauche pour voir les images découpées et alignées et commencer à étiqueter les composants comme normaux ou anormaux. Étant donné que Visual Inspection AI entraîne un modèle de détection d'anomalies pour chaque composant individuel, il n'est pas nécessaire de marquer les composants anormaux. Toutefois, comme pour le modèle de détection des anomalies des images, cela contribuera à l'entraînement et à la précision du modèle.
Google Cloud a besoin d'au moins 100 images normales ou non étiquetées par composant pour commencer l'entraînement. Une fois entraîné, le modèle délivre un score de détection d'anomalies compris entre 0 et 1 pour chaque composant. En plus de ce score, Visual Inspection AI recommandera également des images à étiqueter sur la base du principe d'apprentissage actif. Cela signifie que les images qui auront le plus d'impact sur les résultats du modèle une fois étiquetées seront suggérées en premier.
Le dernier type d'inspection proposé par Visual Inspection AI est l'inspection cosmétique. Ce type d'inspection se concentre sur la détection et la localisation de petits défauts subtils qui peuvent apparaître n'importe où sur un produit. Contrairement à l'inspection d'assemblage, aucun emplacement de composant ne peut être prédéfini pour faciliter la tâche d'inspection visuelle. Par conséquent, pour permettre à la solution d'apprendre des modèles de défauts, il est nécessaire d'annoter au moins quelques images de défauts. Il est important de noter que, même s'il n'est pas nécessaire d'étiqueter toutes les images contenant un défaut, il faut tout de même annoter chaque défaut visible sur une image, car l'absence d'annotation peut entraîner une performance inférieure de l'apprentissage du modèle. Les annotations peuvent être de type boîte englobante, polygone ou masque.
Pour tester cette solution, nous avons utilisé l'ensemble de données MVTec AD. Cet ensemble de données comprend plus de 5000 images haute résolution de quinze catégories d'objets et de textures différentes qui permettent de comparer les méthodes de détection d'anomalies.
Pour cette expérience, nous avons choisi d'utiliser l'objet "vis". Ce sous-ensemble comporte cinq types de défauts : front manipulé, tête rayée, col rayé, côté du filetage et dessus du filetage.
Chaque image est également accompagnée d'un masque qui définit l'emplacement des défauts. Google recommande d'avoir au moins 125 images dans un ensemble de données d'inspection cosmétique, nous avons donc sélectionné 22 images pour chaque classe (nous avons six classes au total) et les avons téléchargées dans Visual Inspection AI. À partir de là, vous pouvez étiqueter les images vous-même via l'interface d'annotation de Google Cloud Platform (voir la capture d'écran ci-dessous) ou importer des étiquettes existantes. Comme nous disposons déjà de masques détaillés des défauts, nous avons choisi de les importer et donc d'utiliser des masques d'annotation.
Dans le jeu de données MVTec AD, les masques fournis sont simplement des pixels blancs (qui définissent la zone de défaut) sur un fond noir. Pour que nous puissions les utiliser dans Google Visual Inspection AI, ils doivent être codés par couleur et par classe. La capture d'écran ci-dessous en est un exemple.
Ensuite, nous avons entraîné un modèle d'inspection cosmétique sur 132 images, que Visual Inspection AI a divisé automatiquement en deux ensembles équilibrés, l'un pour la formation et l'autre pour le test. Après l'entraînement, le modèle peut être évalué sur Google Cloud Platform. Ce qui est intéressant ici, c'est que la plateforme vous permet d'évaluer de deux manières différentes :
Commençons par l'évaluation au niveau de l'image. Dans ce mode d'évaluation, chaque image a un score de défaut entre 0 et 1, qui indique le degré de confiance du modèle dans la présence d'un défaut dans l'image. La capture d'écran ci-dessous en montre un exemple.
Après avoir joué avec la courbe de précision et de rappel générée, le seuil de confiance optimal peut être déterminé, qui est de 0,016 dans ce cas. En utilisant ce seuil, nous obtenons une précision de 1 et un rappel de 0,95, ce qui est assez bon compte tenu du nombre limité d'exemples utilisés pour la formation.
L'évaluation au niveau du pixel donne des résultats encore plus mauvais. Avec le seuil de confiance par défaut, nous atteignons une précision de 0,82 pour un rappel de seulement 0,56. En jouant avec le seuil de confiance, la précision peut encore être augmentée à 0,91, mais le rappel chute à 0,43.
En mode d'évaluation au niveau du pixel, une matrice de confusion est également disponible sur la page d'évaluation, ce qui nous aide à comprendre plus en détail ce qui se passe. En examinant la matrice de confusion (capture d'écran ci-dessous), on peut remarquer que le modèle semble être plus "conservateur" lorsqu'il s'agit de marquer des zones comme défectueuses. Cela se traduit par un faible rappel, mais une précision assez élevée.
Comme on peut le voir, les résultats de cette expérience d'inspection cosmétique sont quelque peu mitigés, mais nous n'avons bien sûr utilisé que 126 images et un budget d'entraînement de 30 heures-nœuds. Nous nous sommes donc demandé si nous pouvions améliorer le modèle en ajoutant des images supplémentaires et en prolongeant l'entraînement. Étant donné que l'ensemble de données MVTec AD ne comporte qu'un nombre limité d'images anormales et un grand nombre d'images normales, nous avons décidé d'exploiter ces images normales. Pour ce faire, nous avons ajouté les 339 images normales de vis restantes et inutilisées à l'ensemble de données Visual Inspection AI et avons lancé une nouvelle exécution de l'entraînement. L'avantage est que vous pouvez poursuivre votre apprentissage à partir du point de contrôle précédent, ce qui vous évite de perdre la progression de l'apprentissage du modèle précédent.
À notre grande surprise, nous avons découvert après l'entraînement que l'ajout d'images normales supplémentaires n'améliorait pas le modèle de manière univoque. Par exemple, pour l'évaluation au niveau du pixel(dans quelle mesure le modèle a-t-il localisé et classifié le(s) défaut(s) à l'intérieur de l'image ?), la valeur de la précision a augmenté de 0,04, tout en maintenant le rappel à la même valeur. C'est une bonne chose, mais si l'on prend en compte la matrice de confusion, on constate que les pourcentages ont empiré pour deux classes par rapport à notre premier modèle.
Pour l'évaluation au niveau de l'image(dans quelle mesure le modèle a-t-il classé une image comme contenant un défaut ?), le rappel est tombé à 0,85 (au lieu de 0,95) lorsque la précision a été maintenue à 1.
Nous pouvons conclure que les résultats de cette expérience pour l'inspection cosmétique sont mitigés. D'une part, nous avons obtenu un modèle d'IA fonctionnel et un outil de gestion des ensembles de données avec un minimum d'efforts. D'autre part, les résultats de l'évaluation pourraient être meilleurs. Il est cependant important de noter que nous avons toujours utilisé des budgets d'heures de nœuds d'entraînement assez faibles et que des budgets plus importants pourraient avoir un impact positif.
Lorsque vous êtes satisfait de votre modèle, vous pouvez l'exporter en tant qu'artefact de solution. Cet artefact de solution comprend une image de conteneur pour les modèles et un moteur d'exécution pour servir les prédictions. Vous pouvez ensuite servir des prédictions à partir du modèle en exécutant le conteneur.
L'IA d'inspection visuelle a un schéma de coûts assez simple :
Cela ne semble pas beaucoup, mais pour un seul entraînement d'inspection cosmétique, Google Cloud m'a recommandé de fournir un budget de 216 heures-nœuds, ce qui équivaut à 432 $ pour un seul entraînement de 126 images. Il est important de noter que le système s'arrêtera prématurément si le modèle ne s'améliore plus et que vous pouvez continuer à partir d'un point de contrôle précédent si vous vous êtes déjà entraîné une fois, comme nous l'avons démontré dans cet article de blog.
Dans ce billet de blog, nous avons abordé les différents types d'inspection qu'offre la nouvelle IA d'inspection visuelle de Google Cloud. Nous avons notamment approfondi l'outil d'inspection cosmétique, qui permet de détecter et de localiser les défauts. Nous avons également abordé les possibilités d'exporter et de servir ces solutions, ainsi que la tarification.
Avec Visual Inspection AI, Google Cloud permet à ses clients de former et d'évaluer plus facilement que jamais des modèles capables de détecter les défauts. Il promet une formation et un déploiement rapides des modèles d'IA, et c'est exactement ce qu'il fait. L'outil a beaucoup de potentiel et les bases semblent être bonnes, bien qu'il puisse encore être peaufiné ici et là. Parmi les inconvénients de Visual Inspection AI, on peut citer le fait qu'il s'agit d'une boîte noire, qu'il faut payer une licence permanente et qu'il ne sera certainement pas parfait pour n'importe quel cas d'utilisation. Néanmoins, l'outil peut s'avérer très utile si une entreprise ne souhaite pas consacrer trop de ressources au développement et au déploiement d'un modèle d'IA personnalisé pour la détection des défauts de fabrication.