Deep Learning von Biegekantenqualitäten

Master Projekt

Marlon Vollert, WS 2018/2019

In vielen industriellen Anwendungen ist eine Qualitätskontrolle im Laufe von Fertigungsprozessen sehr wichtig. Eine mögliche Methode ist die manuelle Überprüfung der Qualität über menschliche Kontrollen, wobei dies meistens mit hohem Aufwand und hohen Kosten verbunden ist. Eine immer gängigere Methode ist deshalb eine automatische und maschinelle Überprüfung, so auch bei der Qualitätsermittlung von Biegeprozessen. Eine Möglichkeit für eine automatische Qualitätsbestimmung sind klassische Bildverarbeitungsalgorithmen.

In dieser Arbeit soll die Qualitätsermittlung der Biegekanten mit Hilfe von „Deep Learning“ Methoden umgesetzt werden. Dafür sollen Bilder von Biegekanten in fünf Qualitätsklassen unterteilt werden. (Abbildung 1) Dabei haben die Klassen folgende Bedeutung: Klasse 1: sehr gute Qualität, Klasse 2: leichte Orangenhaut, Klasse 3: deutliche Orangenhaut, Klasse 4: Rissansatz, Klasse 5: Riss. Im weiteren Verfahren sollen bei Bildern mit Rissen die Risse pixelweise segmentiert werden. 

Abbildung 1: Die Qualitätsklassen von Klasse Eins bis Klasse Fünf

Für die Klassifizierung der Qualitätsstufen stehen insgesamt 4200 Bilder zur Verfügung. Da die Datenmenge für das Training eines neuronalen Netzes zu gering ist, wird das sogenannte „Transferlearning“ eingesetzt, bei dem vortrainierte Modelle zum Einsatz kommen. Des Weiteren wird über „Data Augmentation“ die Anzahl der Bilder künstlich erhöht. Die 4200 Bilder werden in drei Datensätze unterteilt. Für das eigentliche Training werden ca. 3000 Bilder verwendet. Zur Validierung des Modells nach jeder Epoche werden ca. 400 Bilder herangezogen und für einen finalen Test am Ende des Trainings werden ca. 800 Bilder reserviert.

Die Klassifizierungsaufgabe wurde mit verschiedenen Modellen und Parametern umgesetzt. Das erfolgreichste neuronale Netz ist in diesem Fall das „VGG16“ Modell. Bei den „Optimizern“ sind vor allem die „Adaptiven Optimizer“, wie Adam oder Nadam, mit einer Lernrate von 0.001 zielführend. In Abbildung 2 ist eine Konfusionsmatrix der Test-Bilder dargestellt, nachdem das neuronale Netz mit 100 Epochen und einer „Batch Size“ von 128 trainiert wurde. Durch diese Matrix wird anhand der Diagonalen ersichtlich, dass die meisten Bilder richtig klassifiziert werden. Des Weiteren wird durch die Matrix deutlich, dass die Klassifizierung der Klassen Eins und Zwei des Öfteren verwechselt werden. Die finale Test Accuracy beträgt ca. 84.4%. 

Abbildung 2: Konfusionsmatrix der Testdaten

Für die semantische Segmentierung von Rissen stehen 166 Bilder zur Verfügung. Diese Bilder werden wie bei der Klassifizierung ebenfalls in drei Datensätze aufgeteilt. Für das Training werden 116 Bilder, für die Validierung 20 Bilder und für den Test am Ende des Trainings 30 Bilder verwendet. Auch bei der Segmentierung wird über „Data Augmentation“ die Datenmenge künstlichen erhöht. Als Architektur zur Lösung der Segmentierungsaufgabe kommt das „U-Net“ Modell zum Einsatz. Dieses zeigte schon in anderen Wissenschaftlichen Arbeiten, dass eine Segmentierung auch mit sehr geringen Datenmengen möglich ist. Zur Verbesserung der Ergebnisse wird in einem weiteren Versuch das „VGG16“ Modell mit vortrainierten Gewichten als Encoder genutzt. Eine Darstellung des implementierten „U-Net“ Modells ist in Abbildung 3 visualisiert. 

Abbildung 3: „U-Net“ Modell für die Segmentierung von Rissen

Die Filterlänge des größten „Convolutional Layers“ beträgt zwischen 256 und 512 Filter. Die „Adaptiven Optimizer“ zeigen erneut die besseren Ergebnisse. Die Lernrate für die „Optimizer“ wird bei der Segmentierung auf einen sehr geringen Wert von 0.00001 gesetzt.

Das Ergebnis der Segmentierung ist in Abbildung 4 zu sehen. In dieser Abbildung ist in der oberen Hälfte das Test-Bild dargestellt, das in das neuronale Netz eingelesen wird. Das untere Bild ist eine Überlagerung des prädizierten Ausgangsbildes des Modells und der „Ground Truth Maske“. Dabei sind alle schwarzen Pixel der von beiden Bildern dargestellte Hintergrund (True Negative). Die weißen Pixel zeigen eine Übereinstimmung der „Maske“ und des Ausgangsbildes der segmentierten Risse (True Positive). Die blauen Pixel sind die Pixel, die bei der „Maske“ als Riss markiert sind, aber die nicht vom Modell als Riss erkannt werden (False Negative). Die roten Pixel sind Bildbereiche, die vom Modell als Riss klassifiziert werden, allerdings bei der „Maske“ nicht als diese markiert wurden (False Positive). 

Abbildung 4: Ergebnis der Segmentierung

Nach einem Training von 100 Epochen und einer „Batch Size“ von 1 kann mit der „U-Net“ Architektur ein F1-Score von ca. 0.804 erzielt werden. Durch den Einsatz des „VGG16“ Modells als vortrainierten Encoder verbessert sich das Ergebnis auf ca. 0.830.