Object Detection im Kontext industrieller Maschinen
This project is already assigned.
Forschungsfragen
- Können wir Object Detection für einzelne Komponenten an industriellen Maschinen verwenden?
- Wie zuverlässig funktionieren Live-Predictions und welcher Aufwand ist bei Datenerhebung und Training zu erwarten?
Motivation
Große industrielle Maschinen sind mittlerweile derart komplex, dass für Wartungsarbeiten sehr viele Informationen benötigt werden. So fasst beispielsweise allein das Betriebshandbuch für eine moderne Erntemaschine über 500 Seiten. Für die Wartung und Instandsetzung sind für einen Techniker zahlreiche weitere Dokumente, etwa Montageanleitungen, Schaltpläne und Komponentenkataloge relevant. Diese werden heutzutage in digitalen Informationssystemen organisiert, wodurch die Daten zugänglicher werden. Meist kann in solchen Systemen über eine zentrale Suchfunktion nach Komponenten, Teilen oder Funktionsbeschreibungen gesucht werden. Um gewisse Hürden dieser Textsuchen zu umgehen, wurde bereits eine Alternative geschaffen, welche Bilder einer Kamera als Sucheingabe verwendet, indem die darauf abgebildete Komponente erkannt und in die Suche eingespeist wird.
Das zu diesem Zweck verwendete Bilderkennungsverfahren ist jedoch in einigen Belangen limitiert. So kann dabei lediglich eine Komponente pro Bild erkannt werden und der Nutzer kann kein feedback erhalten, welcher Teil des Bildes konkret als Komponente erkannt wurde. Moderne Methoden der Bilderkennung sind mittlerweile in der Lage, besseres Feedback an die Nutzer weiterzugeben. Object Detection Verfahren versuchen nicht bloß ein ganzheitliches Bild einer Klasse zuzuordnen, sondern können mehrere Objekte in einem Bild erkennen, klassifizieren und verorten. Dadurch ergeben sich neue Möglichkeiten für Feedback- und User Interface-Design.
Ich möchte nun ein solches Verfahren im Kontext industrieller Maschinen erproben, um das Sucherlebnis von Nutzer technischer Informationssysteme weiter zu verbessern. Dabei soll auch untersucht werden, welcher Aufwand zu erwarten ist, um einen solchen Object Detector in diesem Kontext zu trainieren.
Ziel
Das Ziel des Projekts ist es, ein Object Detection Verfahren aus der Machine Learning Disziplin auf die Domäne des Maschinen- und Anlagenbaus zu adaptieren. Am Ende soll ein Prototyp stehen, welcher an einem Beispielobjekt unterschiedliche Objekte erkennen, benennen und verorten kann. Er soll mehrere Objekte auf den Einzelbildern eines Videos benennen können und einen Rahmen um die jeweiligen Objekte anzeigen. Das Ganze soll in nahezu-Echtzeit funktionieren, sodass das Live-Video einer Webcam verwendet werden kann. Die Hardware, die dazu zur Verfügung steht, stellt eine handelsübliche GTX 1070 dar.
Zudem soll analysiert werden, wie viel Aufwand zu erwarten ist, um Trainingsdaten für diesen Fall zu generieren, und worauf dabei besonderes Augenmerk gelegt werden sollte. Diese Erkenntnisse sollen zu best practices zusammengefasst werden, welche beim Gestalten eines Arbeitsprozesses zur Erzeugung von Trainingsdaten hilfreich sein könnten.
Ein finaler Object Detector soll als Baseline für künftige Projekte verwendet werden.
Milestones
Milestone | Beschreibung |
---|---|
M1 | Regionen und Klassen definiert |
M2 | Datensätze erstellt |
M3 | Netzarchitekturen festlegen |
M4 | Erste trainierte Modelle erstellt |
M5 | Webcam-Prototyp zur Echtzeitverwendung lauffähig |
M6 | Optimierte Modelle erstellt |
M7 | Analyse von Nutzen und Aufwand |
M8 | Abgabe Projektbericht |
Grobe Zeitplanung |
Novelty
Derzeit bestehen die meisten Object Detection Datensätze aus Szenen und Objekten eines breiten Kontexts. (vgl. CoCo, nuScenes, Google AI Open Images, PASCAL VOC, ILSVRC ). Klassische Aufgaben sind etwa 20 - 90 unterschiedliche Objekte aus dem Alltag oder Straßenverkehr in einem Verkehrsüberwachungsbild zu erkennen (beispiel unten), oder in Fotografien bis zu 500 unterschiedliche Objekte zu finden.
Beispiel für Object Detection im Straßenverkehr, aus: https://robocademy.com/2020/05/01/a-gentle-introduction-to-yolo-v4-for-object-detection-in-ubuntu-20-04/ |
Die Szenen und Perspektiven der Bilder in bestehenden Datensätzen sind daher meist weitläufig und die Klassifizierung eher grobkörnig.
Für unsere Domäne gibt es andere Herausforderungen. Etwa ist die Perspektive nicht fixiert, weswegen die Objekte in verschiedensten Winkeln und Distanzen zur Kamera erkannt werden müssen. Häufig sind auch die Hintergründe (meist die Fassade einer großen Maschine) und die Objekte (eine einzelne Komponente in oder auf dieser Fassade) wenig kontrastreich.
Abgrenzung
Ich werde keine eigenen Machine Learning Architekturen vorschlagen und evaluieren. Stattdessen werde ich mich an bereits existierenden Netzen bedienen. Es gibt bereits zahlreiche Ansätze1 2 3 4 , mit jeweils unterschiedlichen Vorzügen und Nachteilen. Ich werde 2 - 3 Ansätze auswählen, von welchen ich mir ein bestmögliches Ergebnis erhoffe. Wichtigstes Kriterium wird dabei die echtzeit-Tauglichkeit sein. Der Fokus dieser Arbeit liegt einerseits darauf, ein industriell verwendbares Object Detection Modell zu erstellen, andererseits darauf, den Aufwand für das Trainieren eines solchen zu Untersuchen.
You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788).
SSD: Single shot multibox detector. arXiv 2016. arXiv preprint arXiv:1512.02325.
Rich feature hierarchies for accurate object detection and semantic segmentation. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 580-587).
R-fcn: Object detection via region-based fully convolutional networks. In Advances in neural information processing systems (pp. 379-387).
Aufgrund mangelnder Verfügbarkeit und erschwerter Erreichbarkeit werde ich zunächst nicht an einer echten industriellen Maschine arbeiten. Stattdessen wird ein Fahrrad als Anschauungsobjekt dienen. Es bietet jedoch ähnliche Herausforderungen und identische Use Cases für die Nutzung.
Methode
-
Zunächst werden einzelne Regionen mit mehreren Objekten identifiziert, welche als Beispiel dienen sollen. Beispielsweise die Lenkstange mit Objekten wie Klingel, Bremshebel, Lampe, …
-
Für diese Objekte werden dann Trainings- und Testdaten generiert.
-
2-3 unterschiedliche Machine Learning Ansätze für die Object Detection werden ausgewählt, mit Augenmerk auf Echtzeitfähigkeit. Daher werden insbesondere kleinere Versionen der bekannten Architekturen in betracht gezogen, etwa tiny-YOLO oder faster-RCNN
-
Mit diesen Ansätzen und den erstellten Daten wird versucht, möglichst gute Detektoren zu erstellen.
-
Ein Prototyp wird erstellt, welcher das Live-Bild einer Webcam für die Object Detection verwendet. Mit ihm soll die praktische Verwendung des Verfahrens nachempfunden werden können, um einschätzen zu können, ob ein jeweiliger Detector in echter Benutzung gute Ergebnisse liefert.
-
Die Modelle werden optimiert, um bessere Ergebnisse zu erhalten. Dazu helfen Erkenntnisse aus der vorangegangenen Iteration und eventuell zusätzliche Trainingsdaten.
-
Schließlich werden die Ergebnisse verglichen und best practises für das Erstellen der Daten vorgestellt. Dabei wird auch der Aufwand in Betracht gezogen.
Ausblick
Mit fortschreitender Entwicklung der neuronalen Netze wie auch der Hardware könnten die Ergebnisse künftig mit neueren und größeren Architekturen verglichen werden.
Zudem könnte untersucht werden, ob es alternative Möglichkeiten zur Datenerstellung gibt. Die händische Annotation der Daten ist gerade für Object Detection ein sehr aufwendiger Prozess. Evt könnten weniger aufwendige Daten für einen Image Classifier für das Training eines Object Detectors recycelt werden, um den Gesamtaufwand zu minimieren.
Contact Persons at the University Würzburg
Christian Schell (Primary Contact Person)Mensch-Computer-Interaktion, Universität Würzburg
christian.schell@uni-wuerzburg.de