14. Dezember 2022

Ein erster Eindruck von Google Clouds neuem KI-Tool Visual Inspection

Mitwirkende
Jérémy Keusters
Machine Learning Engineer
Jules Talloen
Machine Learning Engineer
Newsletter abonnieren
Diesen Beitrag teilen

Einführung

Bereits im Juni 2021 kündigte Google Cloud Visual Inspection AI an. Mit diesem Tool können Hersteller und Konsumgüterunternehmen die Anzahl der Fehler reduzieren, indem sie KI-Modelle zur Erkennung von Produktionsfehlern schnell trainieren und einsetzen können. Es ist Teil des Vertex-KI-Angebots von Google Cloud und ist zum Zeitpunkt der Erstellung dieses Artikels noch unter eingeschränktem GA-Zugang, das heißt, es ist nicht öffentlich zugänglich. Da ML6 ein Premier Google Cloud Services Partner ist, konnten wir glücklicherweise frühzeitig Zugang zu diesem brandneuen Tool erhalten und es für Sie testen.

Visuelle Inspektion AI konzentriert sich auf drei Arten von Inspektionen:

  • Erkennung von Bildanomalien
  • Inspektion der Montage
  • Kosmetische Inspektion

In diesem Blogpost gehen wir auf jede dieser Arten ein und besprechen ihre Eigenschaften. Außerdem stellen wir die kosmetische Inspektion auf den Prüfstand, um zu sehen, wie sie abschneidet.

Erkennung von Bildanomalien

Quelle: https://console.cloud.google.com/ai/visual-inspection/datasets/create

Die erste Art von Inspektion, die von Visual Inspection AI angeboten wird, ist die Erkennung von Bildanomalien. Obwohl es sich hierbei um eine sehr beliebte Aufgabe im Bereich der Computer Vision handelt, war diese Art der Inspektion noch nicht verfügbar, als die eingeschränkte GA-Zugangsversion im Februar 2022 für uns verfügbar wurde. Stattdessen wurde sie als Update im August 2022 verfügbar.

Wie der Name schon sagt, wird bei dieser Art der Inspektion das gesamte Bild auf Anomalien untersucht, anstatt einzelne Anomalien zu lokalisieren. Interessant ist hier, dass eine Kennzeichnung (Annotation) nicht zwingend erforderlich ist. Das bedeutet, dass Sie ein Modell auch trainieren können, ohne die Bilder als normal oder abnormal zu kennzeichnen, aber das geht natürlich auf Kosten einer potenziell schlechteren Trainingsleistung. Ein weiterer Nachteil ist, dass Sie keine Bewertungsmetriken anzeigen können, da es keine Grundwahrheit gibt. Bei Google Cloud müssen Sie mindestens 20 normale Bilder oder mindestens 10 normale und 10 abnormale Bilder hochladen. Um die Leistung zu verbessern, werden mindestens 1000 normale Bilder oder 100 normale und 100 abnormale Bilder empfohlen.

Nach dem Training kann das Modell mit typischen Bewertungsmethoden wie einer Präzisions- und Recall-Kurve und einer Konfusionsmatrix bewertet werden. Auf dieser Grundlage kann der Benutzer eine geeignete Vertrauensschwelle festlegen. Dieser Schwellenwert bestimmt, ob das Bild als abnormal eingestuft wird oder nicht. Auf diese Weise kann eine Abwägung zwischen einem präziseren oder einem empfindlicheren Modell getroffen werden.

Die Tatsache, dass man ein Modell trainieren kann, ohne die Bilder als normal oder abnormal zu kennzeichnen, hat uns fasziniert, weshalb wir beschlossen haben, diese Funktion auszuprobieren. Wir sammelten einen internen ML6-Datensatz mit schwarzen und blauen Tassen und beschlossen, 200 Bilder von schwarzen Tassen und 5 von blauen Tassen hochzuladen, wobei wir die blauen Tassen als abnormale Tassen behandelten.

Nach dem Training des Modells und dem Aufrufen der Bewertungsseite erhalten wir natürlich die Meldung, dass keine Kennzeichnungen für die Berechnung der Metriken vorliegen. Interessant ist jedoch, dass Visual Inspection AI uns anschließend vorschlägt, welche Bilder wir in einer bestimmten Reihenfolge beschriften sollen. Und raten Sie mal, unsere fünf blauen Tassen stehen ganz oben auf der Liste, was zeigt, dass das Modell diesen Bildern nicht wirklich traut und glaubt, dass die Beschriftung dieser Bilder einen großen Einfluss auf die Modellausgabe haben wird.

Überraschenderweise verbleibt jedoch nur ein blauer Becher in der Top-Liste, wenn wir sie nach ihrer Fehlerbewertung sortieren. Dies deutet darauf hin, dass Visual Inspection AI sowohl eine Fehlerbewertung als auch eine Art interne Vertrauensbewertung für jedes Bild hat.

Danach kann man mit der Beschriftung von Bildern fortfahren und das Modell neu trainieren, um es schrittweise zu verbessern.

Inspektion der Montage

Quelle: https://console.cloud.google.com/ai/visual-inspection/datasets/create

Eine zweite Art der Prüfung, die wir uns ansehen, ist die Montageprüfung. Dieser Modus eignet sich für die Qualitätsprüfung von zusammengebauten Produkten, da er jedes einzelne Bauteil Ihres Produkts auf zwei Dinge prüft:

  • ob sich das einzelne Bauteil an der richtigen Stelle befindet.
  • ob das einzelne Bauteil defekt ist.

Wir haben einige Bilder von Leiterplatten (aus dem Demo-PCB-Bilddatensatz von Google Cloud) in Visual Inspection AI hochgeladen, um die wichtigsten Prinzipien der Baugruppeninspektion zu demonstrieren. Nach dem Hochladen der Bilder sind zunächst drei Hauptschritte zu befolgen:

  1. Wählen Sie ein Bild eines fehlerfreien Produkts als Vorlage.
  2. Markieren Sie den zu untersuchenden Bereich. Dies ist der Bereich, der vom KI-Algorithmus inspiziert werden muss. Sie haben auch die Möglichkeit, alle Bereiche zu markieren, die sich innerhalb dieses Inspektionsbereichs befinden und ausgeschlossen werden müssen. Ein Beispiel hierfür ist im folgenden Screenshot zu sehen, in dem ein Loch, das sich im Bauteil befinden soll, als auszuschließender Bereich markiert ist. In diesem Screenshot sehen Sie auch den zu prüfenden Bereich, der durch den grünen Begrenzungskasten markiert ist.
  3. Markieren Sie die einzelnen Komponenten, die Sie prüfen wollen, auf dem Produkt.

Markieren eines auszuschließenden Bereichs in der Visual Inspection UI.

Zur Veranschaulichung haben wir einen der Kondensatoren, den integrierten Schaltkreis und einen der Widerstände auf unserem Basisbild markiert. Obwohl hier nicht gezeigt, ist es auch möglich, mehrere einzelne Komponenten desselben Typs auf einem Bild zu markieren (z. B. alle Widerstände).

Kennzeichnung der Komponenten unseres Basisprodukts in der Visual Inspection UI. Der äußere grüne Begrenzungsrahmen kennzeichnet den zu prüfenden Bereich, während der rote den Bereich kennzeichnet, der bei der Prüfung ausgeschlossen werden soll.

Sobald diese ersten Schritte abgeschlossen sind, erkennt Visual Inspection AI die zuvor beschrifteten Komponenten auf den verbleibenden Bildern. Bei diesem Prozess werden die Komponenten auch automatisch ausgerichtet, so dass die Produkte (in unserem Fall Leiterplatten) nicht unbedingt auf den Bildern ausgerichtet sein müssen. Das bedeutet, dass sie z. B. um einige Grad gedreht werden können, wie es beim zweiten Bild im Screenshot unten der Fall ist. Nachdem dieser Vorgang abgeschlossen ist, können Sie die Anzahl der Kondensatoren, integrierten Schaltkreise und Widerstände sehen, die vom Modell erkannt wurden.

Die linke Spalte zeigt die Anzahl der gefundenen Komponenten für jeden Komponententyp.

Sie können auf die Komponenten im Untermenü auf der linken Seite klicken, um die ausgeschnittenen und ausgerichteten Bilder zu sehen und die Komponenten als normal oder abnormal zu kennzeichnen. Da Visual Inspection AI ein Modell zur Erkennung von Anomalien für jede einzelne Komponente trainiert, ist es nicht erforderlich, dass Sie anormale Komponenten markieren. Wie bei dem Modell zur Erkennung von Bildanomalien hilft es jedoch beim Training und der Genauigkeit des Modells.

In der individuellen Komponentenansicht kann die Komponente als normal oder abnormal gekennzeichnet werden.

Google Cloud benötigt mindestens 100 normale oder nicht beschriftete Bilder pro Komponente, um mit dem Training zu beginnen. Nach dem Training gibt das Modell für jede Komponente eine Anomalie-Erkennungsbewertung zwischen 0 und 1 aus. Neben dieser Punktzahl empfiehlt Visual Inspection AI auch Bilder für die Kennzeichnung nach dem Prinzip des aktiven Lernens. Das bedeutet, dass die Bilder, die bei der Kennzeichnung den größten Einfluss auf die Modellausgabe haben, zuerst vorgeschlagen werden.

Kosmetische Inspektion

Quelle: https://console.cloud.google.com/ai/visual-inspection/datasets/create

Die letzte von Visual Inspection AI angebotene Art der Prüfung ist die kosmetische Prüfung. Bei dieser Art von Inspektion liegt der Schwerpunkt auf der Erkennung und Lokalisierung kleiner und subtiler Fehler, die überall auf einem Produkt auftreten können. Anders als bei der Baugruppeninspektion gibt es keine vordefinierte Bauteilposition, die die visuelle Inspektion unterstützen könnte. Damit die Lösung Defektmuster lernen kann, müssen daher zumindest einige Defektbilder mit Anmerkungen versehen werden. Es ist wichtig zu beachten, dass man zwar nicht alle Bilder, die einen Defekt enthalten, beschriften muss, aber dennoch jeden Defekt, der in einem Bild sichtbar ist, mit Anmerkungen versehen muss, da dies sonst zu einer schlechteren Leistung beim Training des Modells führen kann. Die Beschriftungen können vom Typ Bounding Box, Polygon oder Maske sein.

Um diese Lösung zu testen, haben wir den MVTec AD-Datensatz verwendet. Dieser Datensatz besteht aus über 5000 hochauflösenden Bildern von fünfzehn verschiedenen Objekten und Texturkategorien, die einen Vergleich von Anomalieerkennungsmethoden ermöglichen.

Beispielbilder aus dem MVTec AD-Datensatz. Die obere Reihe enthält normale Bilder, die mittlere Reihe anomale Bilder und die untere Reihe bietet eine Nahaufnahme der Defekte, die in den anomalen Bildern auftreten.

Für dieses Experiment haben wir uns für das Schraubenobjekt entschieden. Diese Untergruppe hat fünf Arten von Defekten: manipulierte Vorderseite, Kratzkopf, Kratzhals, Gewindeseite und Gewindeoberseite.

Von links nach rechts: normal, manipulierte Vorderseite, Rubbelkopf, Rubbelhals, Fadenseite und Fadenoberseite.

Zu jedem Bild gehört auch ein Maskenbild, das die Position der Mängel definiert. Google empfiehlt, mindestens 125 Bilder in einem Datensatz für kosmetische Inspektionen zu haben. Wir haben also 22 Bilder für jede Klasse ausgewählt (wir haben insgesamt sechs Klassen) und sie in Visual Inspection AI hochgeladen. Von dort aus können Sie die Bilder entweder selbst über die Anmerkungsschnittstelle in Google Cloud Platform beschriften (siehe Screenshot unten) oder vorhandene Beschriftungen importieren. Da wir bereits über detaillierte Masken der Defekte verfügen, haben wir uns dafür entschieden, diese zu importieren und somit Beschriftungsmasken zu verwenden.

Manueller Beschriftungsprozess in der Benutzeroberfläche, falls Sie keine Etiketten importieren.

Im MVTec AD-Datensatz sind die bereitgestellten Masken einfach weiße Pixel (die den Fehlerbereich definieren) auf einem schwarzen Hintergrund. Damit wir sie in Google Visual Inspection AI verwenden können, müssen sie nach Klassen farbkodiert werden. Ein Beispiel dafür ist im folgenden Screenshot zu sehen.

Ein Beispiel für die Masken. Die erste Reihe enthält einfach die Originalbilder. Die mittlere Reihe enthält die Masken aus dem MVTec-Datensatz, die den Defektbereich definieren. Die letzte Reihe enthält die nach Klassen farbkodierten Masken. In diesem Beispiel ist die Klasse "manipulierte Front" mit einer roten Farbe markiert.

Anschließend haben wir ein Modell für die kosmetische Inspektion auf 132 Bildern trainiert, die von Visual Inspection AI automatisch in ausgewogene Trainings- und Testsets aufgeteilt wurden. Nach dem Training kann das Modell in der Google Cloud Platform ausgewertet werden. Interessant dabei ist, dass die Plattform die Auswertung auf zwei verschiedene Arten ermöglicht:

  • Bewertung auf Bildebene: Wie gut hat das Modell ein Bild als fehlerhaft klassifiziert? Dies erklärt die Leistung des Modells auf Bildebene.
  • Bewertung auf Pixelebene: Wie gut hat das Modell den/die Defekt(e) im Bild lokalisiert und klassifiziert?

Auswertung auf Bildebene

Lassen Sie uns zunächst die Auswertung auf Bildebene betrachten. In diesem Bewertungsmodus hat jedes Bild eine Fehlerbewertung zwischen 0 und 1, die angibt, wie sicher das Modell ist, dass sich ein Fehler im Bild befindet. Der Screenshot unten zeigt ein Beispiel dafür.

Beispielbilder, die vom Modell für die kosmetische Inspektion eine Fehlerbewertung zwischen 0 und 1 erhalten haben.

Nachdem wir mit der generierten Präzisions-Recall-Kurve herumgespielt haben, kann die optimale Vertrauensschwelle bestimmt werden, die in diesem Fall 0,016 beträgt. Mit diesem Schwellenwert erreichen wir eine Genauigkeit von 1 und einen Recall von 0,95, was angesichts der begrenzten Anzahl von Beispielen, die für das Training verwendet wurden, recht gut ist.

Bewertungsseite mit den verschiedenen verfügbaren Metriken und Kurven für die Bewertung auf Pixelebene.

Auswertung auf Pixelebene

Bei der Bewertung auf Pixelebene sind die Ergebnisse schlechter. Bei der Standard-Vertrauensschwelle erreichen wir eine Genauigkeit von 0,82 und einen Recall von nur 0,56. Wenn man mit dem Konfidenzschwellenwert herumspielt, kann die Genauigkeit immer noch auf 0,91 erhöht werden, was jedoch dazu führt, dass die Auffindbarkeit auf 0,43 fällt.

Bewertungsseite mit den verschiedenen verfügbaren Metriken und Kurven für die Bewertung auf Pixelebene.

Im Bewertungsmodus auf Pixelebene ist auf der Bewertungsseite auch eine Verwechslungsmatrix verfügbar, die uns hilft, die Vorgänge im Detail zu verstehen. Bei der Betrachtung der Konfusionsmatrix (Screenshot unten) fällt auf, dass das Modell bei der Kennzeichnung von Bereichen als fehlerhaft eher "konservativ" zu sein scheint. Dies führt zu einem niedrigen Recall, aber immer noch zu einer recht hohen Präzision.

Konfusionsmatrix für die Bewertungsmethode auf Pixelebene mit einer Konfidenzschwelle von 0,5.

Zusätzliche Bilder

Wie man sehen kann, sind die Ergebnisse dieses Experiments bei der kosmetischen Inspektion etwas durchwachsen, aber wir haben natürlich nur 126 Bilder und ein Trainingsbudget von 30 Knotenstunden verwendet. Wir wollten daher herausfinden, ob wir das Modell verbessern können, indem wir zusätzliche Bilder hinzufügen und etwas länger trainieren. Da der MVTec AD-Datensatz nur eine begrenzte Anzahl an abnormalen Bildern und eine große Anzahl an normalen Bildern enthält, beschlossen wir, diese normalen Bilder zu nutzen. Dazu fügten wir die verbleibenden, nicht verwendeten 339 normalen Bilder von Schrauben zum Visual Inspection AI-Datensatz hinzu und starteten einen weiteren Trainingslauf. Der Vorteil dabei ist, dass Sie Ihren Trainingslauf vom vorherigen Kontrollpunkt aus fortsetzen können, so dass Sie den vorherigen Trainingsfortschritt des Modells nicht verlieren.

Zu unserer Überraschung stellten wir nach dem Training fest, dass das Hinzufügen zusätzlicher normaler Bilder das Modell nicht eindeutig verbessert hat. Bei der Bewertung auf Pixelebene(Wie gut hat das Modell den/die Defekt(e) innerhalb des Bildes lokalisiert und klassifiziert?) erhöhte sich beispielsweise der Präzisionswert um 0,04, während der Wiedererkennungswert auf demselben Wert blieb. Dies ist gut, aber wenn man die Konfusionsmatrix berücksichtigt, kann man feststellen, dass sich die Prozentsätze für 2 Klassen im Vergleich zu unserem ersten Modell verschlechtert haben.

Konfusionsmatrix für die Bewertungsmethode auf Pixelebene des zweiten Modells unter Verwendung einer Vertrauensschwelle von 0,543.

Bei der Bewertung auf Bildebene(Wie gut hat das Modell ein Bild als fehlerhaft klassifiziert?) sank der Recall-Wert auf 0,85 (von 0,95), wenn die Präzision bei 1 blieb.

Wir können feststellen, dass die Ergebnisse dieses Experiments für die kosmetische Inspektion gemischt sind. Einerseits haben wir mit minimalem Aufwand ein funktionierendes KI-Modell und ein Tool zur Datensatzverwaltung erhalten. Andererseits könnten die Bewertungsergebnisse besser sein. Es ist jedoch wichtig anzumerken, dass wir immer mit relativ kleinen Budgets für Trainingsknoten-Stunden gearbeitet haben und dass größere Budgets einen positiven Einfluss haben könnten.

Exportieren, Servieren und Preisgestaltung

Wenn Sie mit Ihrem Modell zufrieden sind, können Sie es als Lösungsartefakt exportieren. Dieses Lösungsartefakt enthält ein Container-Image für die Modelle und eine Laufzeit für die Bereitstellung von Vorhersagen. Durch Ausführen des Containers können Sie dann Vorhersagen aus dem Modell bereitstellen.

Visuelle Inspektion AI hat ein recht einfaches Kostenschema:

  • Die Ausbildung eines Modells (Anomalie/Kosmetik/Zusammenbau) kostet 2 $ pro Knotenstunde.
  • Inference kostet 100 US-Dollar pro Kamera und Lösung pro Monat.

Das hört sich nicht nach viel an, aber für einen einzelnen Trainingslauf zur kosmetischen Inspektion empfahl mir Google Cloud ein Budget von 216 Knotenstunden, was 432 $ für einen einzelnen Trainingslauf mit 126 Bildern entspricht. Es ist wichtig zu wissen, dass das System vorzeitig aufhört, wenn sich das Modell nicht mehr verbessert, und dass Sie von einem früheren Kontrollpunkt aus weitermachen können, wenn Sie bereits einmal trainiert haben, wie wir in diesem Blogpost gezeigt haben.

Fazit

In diesem Blogpost haben wir die verschiedenen Arten der Inspektion besprochen, die die neue Visual Inspection AI von Google Cloud bietet. Wir haben uns insbesondere das Tool für die kosmetische Inspektion näher angesehen, mit dem wir Mängel erkennen und lokalisieren können. Wir haben auch die Möglichkeiten des Exports und der Bereitstellung dieser Lösungen sowie die Preise besprochen.

Mit Visual Inspection AI macht es Google Cloud seinen Kunden so einfach wie nie zuvor, Modelle zur Fehlererkennung zu trainieren und zu bewerten. Es verspricht eine schnelle Schulung und Bereitstellung von KI-Modellen, und genau das tut es auch. Das Tool hat viel Potenzial und die Grundlage scheint zu stimmen, auch wenn es hier und da noch etwas Feinschliff gebrauchen kann. Einige Nachteile von Visual Inspection AI sind, dass es eine Blackbox-Lösung bleibt, eine laufende Lizenzgebühr anfällt und sicherlich nicht für jeden Anwendungsfall perfekt ist. Dennoch kann das Tool sehr wertvoll sein, wenn ein Unternehmen nicht zu viele Ressourcen in die Entwicklung und den Einsatz eines benutzerdefinierten KI-Modells zur Erkennung von Fertigungsfehlern investieren möchte.

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision