Start eines Deep-Learning-Projekts in der Fertigung – Teil 3: Optimierung

Sobald ein Unternehmen die Ziele festgelegt sowie die Daten und Ground Truth für sein Deep-Learning-Projekt erfasst hat, besteht der nächste Schritt in der Optimierung des Vision-Systems und der Bilddatenbank.
In dieser Phase klassifizieren der menschliche Prüfer und das Vision-System die Produktionsteile als fehlerfrei oder fehlerhaft. Anschließend prüft ein interner Experte alle nicht gelabelten Teile und labelt sie richtig. Die korrigierten unklaren Teile sowie Muster von fehlerfreien und fehlerhaften Teilen werden in die Datenbank aufgenommen, um das Deep-Learning-Modell zu verbessern. Die Entwickler müssen darauf achten, dass komplizierte Bilder, z. B. von Teilen mit ungewöhnlichen Fehlern oder Lichtreflexionen, in den Trainingssatz aufgenommen werden.
Erhöhen Sie die Qualität Ihrer Daten
Auf Deep-Learning-basierte Software bietet in der Regel Trainingssätze und Tools für die Optimierung. Dennoch müssen die Teams zusätzliche Schritte unternehmen, z. B. eine Kreuzvalidierung. Sobald genügend Daten gesammelt wurden, sollte ein Team verschiedene Abschnitte eines Datensatzes für das Training und die Validierung anhand des Rests des Datensatzes verwenden. Unabhängig davon, welche Abschnitte des Datensatzes ausgewählt werden, sollten die Teams darauf achten, dass das gleichbleibende Ergebnisse sichergestellt sind. Wenn sich ein Datensatz anders verhält als ein anderer, kann es zu Labeling-Problemen kommen oder einige Fehlertypen sind möglicherweise unterrepräsentiert.
Ein weiterer Schritt besteht darin, jede Schlüsselvariable im Produktionsprozess für die Gesamtoptimierung zu isolieren. Wenn also mehrere Fertigungslinien vorhanden sind, sollten die Teams Bilder von jeder Linie machen und diese für das Training verwenden, während sie gleichzeitig sicherstellen, dass die Daten und Ergebnisse jeder Linie für sich genommen ausreichend sind. Wenn ein Unternehmen unterschiedliche Prüfverfahren einsetzt, sollten die Teams außerdem die verschiedenen Produktversionen und Fehlertypen optimieren. Dies kann entweder durch Dateinamenskonventionen oder die Struktur von Dateiordnern geschehen.
Außerdem müssen Sie versuchen, Ihren Trainingsdaten möglichst viele Bilder fehlerhafter Teile hinzuzufügen. Wenn Sie z. B. 500 Bilder von fehlerfreien Teilen und 282 Bilder von fehlerhaften Teilen haben, verwenden Sie die Bilder der fehlerhaften Teile, um das System zu trainieren, wonach es suchen soll, damit es während der Produktion effektiver arbeiten kann.
Umgang mit verschiedenen Fehlertypen
Beim Deep Learning gibt es verschiedene Möglichkeiten, Fehler in Bildern zu erkennen. Ein System könnte eine Messung auf Grundlage eines kompletten Bildes durchführen, um festzustellen, ob ein Teil fehlerfrei oder fehlerhaft ist. Das System kann auch einen fehlerbasierten Ansatz verwenden, der spezifische Fehler in Teilen identifiziert. Letzteres erweist sich als nützlich, wenn ein zusätzlicher Klassifizierungsschritt zur Prozesskontrolle hinzugefügt wird. Es kann jedoch auch eine sekundäre Verarbeitung erforderlich sein, um Fehler zusammenzuführen oder zu trennen.
Alternativ dazu könnte das Deep-Learning-System bestimmte Pixel auf jedem Fehler in einem Bild isolieren und Messungen des Fehlerbereichs liefern. Auch bei dieser Methode ist in der Regel eine sekundäre Bildverarbeitung erforderlich, bei der die Fehlerbereiche so bearbeitet werden, dass ein Umriss oder ein Begrenzungsrahmen entsteht und der Fehler gemessen und dann als fehlerfrei oder fehlerhaft eingestuft wird. Einzelne Anwendungen erfordern unterschiedliche Ansätze. Daher sollten Entwickler die Fehlermetriken kennen und wissen, wie sie diese optimieren können.
Durch das Verständnis der verschiedenen Fehlertypen und die Festlegung von Qualitätsspezifikationen können die Teams auch eine End-to-End-Optimierung durchführen, um das Modell weiter zu verbessern. Wenn ein Team festlegt, dass ein Fehler über 10 mm2 oder zwei Fehler über 5 mm2 ein fehlerhaftes Teil darstellen, liefert das Deep-Learning-System nicht unbedingt genaue Pixelmessungen. In diesen Fällen kann ein Blob-Analyse-Tool helfen, eine genauere Messung der Fehler zu erhalten, sodass das Team diese Bilder zur Verfeinerung des Modells verwenden kann. Wenn ein Team jedoch plant, ein Blob-Tool für zusätzliche Optimierungen und Analysen zu verwenden, sollte der Entwickler im Team – um sicherzugehen – das Deep-Learning-System so einstellen, dass es auch grenzwertige Fälle als Fehler meldet.
Deep-Learning-Segmentierungstool (links) und Blob-Analysetool (rechts), die in Kombination verwendet werden, um den Fehlererkennungsbereich zu verfeinern
Behalten Sie die wichtigsten Metriken im Auge
In dieser Phase müssen wichtige Deep-Learning-Metriken berücksichtigt werden. Nicht jeder im Team muss alle Aspekte des Deep Learning verstehen, aber der Entwickler muss alle wichtigen Metriken kennen und wissen, wie sie optimiert werden können. Beispiele hierfür sind der Unterschied zwischen Overkill und Underkill im Vergleich zu Präzision und Recall, F1 Scores und AUC-Statistiken (Area under Curve = Fläche unter der Kurve).
Darüber hinaus sollten sich die Teams die Kostenfunktionen ansehen und die Kosten für den Ausschuss (Overkill) gegen die Kosten für die Escapes (Underkill) abwägen, um den Wert einer Lösung zu ermitteln. Entwickler sollten sich bei der anfänglichen Einrichtung eines Deep-Learning-Projekts nicht zu sehr mit Kostenfunktionen befassen, sondern das Projekt in Richtung hohem F1 Score vorantreiben.
In Teil 4 werden wir uns mit den Werksabnahmeprüfungen befassen.