In diesem Artikel geht es darum, wie Convolutional Neural Networks (CNNs) in der Industrieautomatisierung schneller implementiert werden können, indem individuelle Anpassungsprozesse überflüssig werden und außerdem ein nahezu sofortiger Einsatz möglich wird. Zu diesem Zweck zeigen wir anhand unserer Hauptanwendung Bin Picking (dt.: Griff-in-die-Kiste) auf, wie CNNs klassische Algorithmen wie Clustering und 3D-Matching ersetzen können. Insgesamt lässt sich unser Hauptkonzept der klassenagnostischen Segmentierung, aber auch allgemein bei Robotermanipulationen in industriellen Anwendungen einsetzen. Die erzielte Verbesserung von Bildverarbeitungssystemen beim Bin Picking kann nicht nur zur Automatisierung der Aufgabe selbst führen, sondern kann auch die Effizienz des Materialflusses zwischen und innerhalb von Lagern und Fabriken insgesamt verbessern.
Die Einführung einer neuen Technologie in der industriellen Automatisierung hängt hauptsächlich von zwei Faktoren ab: deren Integrationsfähigkeit und ihrer Zuverlässigkeit. Die CNN-basierte Objektsegmentierung ist eine relativ neue Technologie in der Industrieautomatisierung. Ihre Integration würde es jedoch ermöglichen, mehrere Aufgaben zu automatisieren, die derzeit noch manuell ausgeführt werden. Um CNNs aber schließlich in einer beliebigen Anwendung verwenden zu können, müssen sie einen langen Anpassungsprozess durchlaufen, der zu Beginn eine schlechte Integrierbarkeit und einen hohen Aufwand erfordert. Zudem sehen sich neue Verfahren immer mit der Skepsis der Industrie konfrontiert, wie zuverlässig und reproduzierbar die endgültige Implementierung wirklich sein wird. Aus diesen Gründen ist die CNN-basierte Objektsegmentierung in der Forschung bereits gut entwickelt, findet aber in der Automatisierung bislang nur begrenzt Anwendung.
Diese Lücke zwischen den CNN-Fähigkeiten im Bereich der Forschung und der tatsächlichen Nutzung in Automatisierungsanwendungen konnte entstehen, weil die Forscher*innen eine wichtige Information auslassen, die in der realen Anwendung genutzt werden kann: das Vorwissen über die zu bearbeitenden Objekte oder Objekttypen. Bei diesem Vorwissen handelt es sich ganz einfach um die Datenbank der Fabrik oder des Lagers, in der sich die Listen aller gelagerten Objekte und deren Lagerplatz befinden.
In der Forschung ist es üblich, dass bei der Objektsegmentierung mit einer begrenzten Anzahl von Klassen operiert wird. In der Logistik und der Industrie müssen hingegen oft Hunderte oder Tausende von Objekttypen segmentiert werden – und das häufig allein innerhalb ein und derselben Anlage. Außerdem ändern sich die betroffenen Objekte regelmäßig, da neue Objekte hinzugefügt und andere entfernt werden. Ein CNN, das auf eine bestimmte, begrenzte Anzahl von Objekten trainiert ist, würde in der Industrie keine Verwendung finden – einfach, weil es wiederholt auf die wechselnden Zielobjekte trainiert werden müsste, was mit einem großen Aufwand verbunden ist. Wie bereits erwähnt, wären viele Einrichtungen lediglich an einer Lösung interessiert, die universell einsetzbar ist und eine enorme Anzahl von Objekten abdecken kann, statt an einem Modell mit Begrenzungen.
Klassenagnostische Segmentierungs-Pipeline
Die Hauptidee der von uns vorgeschlagenen Pipeline basiert auf einer klassenagnostischen Segmentierung und adressiert die zuvor beschriebenen Herausforderungen beim Einsatz von CNNs in der Automatisierung. Bei diesem Ansatz wird der Segmentierungsprozess in die folgenden drei Schritte unterteilt:
- Die klassenunabhängige Segmentierung: Ein CNN segmentiert alle Objekte im Bild in eine einzige Klasse, unabhängig ihrer Art- oder Objektklasse. Dadurch können dieselben CNNs für ein größeres Objekt-Spektrum verwendet werden, was die Integration von CNNs in der Industrie erleichtert.
- Abruf von Kandidatenobjekten und -bildern: Eine Liste der Objekte, die in der Kiste gelagert sind, wird aus dem Lagerdatensatz abgerufen. Anschließend werden für jedes Objekt sechs vorgespeicherte Bilder abgerufen, die alle Seiten abdecken.
- Der Abgleich-Schritt: Die Objektmasken werden mit der Liste der Kandidatenobjekte abgeglichen. Nach diesem Schritt können wir die Segmentierungsmasken aller Objekte klassifizieren lassen.
Training unseres CNN mit synthetischen Daten
Unser klassenagnostisches CNN entwickelt sich abweichend von Mask R-CNN. Für das Training haben wir den synthetisch erzeugten NVIDIA Faling Things Datensatz (FAT) verwendet. FAT enthält eine Untermenge von 21 Objekten aus dem YCB-Objektdatensatz. Der Trainingsdatensatz umfasst 80.000 Bilder, auf denen sich kein anderes Objekt im Hintergrund befindet. Die Tatsache, dass sich keine anderen Objekte im Hintergrund befinden, ist ein wichtiger Aspekt beim Training. Diese würden sonst das klassendiagnostische CNN verwirren, indem sie als falsch-positiv erkannt werden würden, obwohl sie richtig-positiv sind, da sie nicht in der Annotation enthalten sind.
Das folgende Bild zeigt das Ergebnis unserer Segmentierung, wenn sie mit dem Validierungsset getestet wird: Das Netz war also in der Lage, auch ungesehene Objekte, die nicht im Datensatz enthalten waren, zu segmentieren. Dazu gehören die Bratpfanne, die Milchpackung, das Brot, die Teller und die Äpfel.
Inferenz auf reale Daten (erster Schritt unserer Pipeline)
Aber lässt sich das Training mit synthetischen Daten auch auf reale Daten übertragen? Dies zeigen die nächsten beiden Bilder, die ein Beispiel aus unseren DoPose-Datensatz zeigen. Es ist zu erkennen, dass die Daten nach einer schnellen Feinabstimmung gut auf reale Bilder übertragen werden können. Beachtlich ist außerdem, dass keines der erkannten Objekte im Datensatz enthalten ist. Dies zeigt, wie gut das Netzwerk verallgemeinern konnte.
Merkmalsabgleich (dritter Schritt unserer Pipeline)
Der letzte Teil unserer Pipeline ist der Merkmalsabgleich. Das Bild unten zeigt die klassische ORB-Merkmalskorrespondenz zwischen einem Bild des in der Datenbank gespeicherten Objekts (links) und einem Szenenbild (rechts). Die besten 30 Übereinstimmungen aus beiden Bildern entsprachen alle demselben Objekt. Das bedeutet, dass der klassische Merkmalsabgleich leicht dazu verwendet werden kann, segmentierte Masken mit den Objektkandidaten abzugleichen, indem zuvor gespeicherte Bilder für die Objekte verwendet werden. Für jedes Objekt sollten dabei sechs vorgespeicherte Bilder genutzt werden, die alle sechs Seiten abdecken – das folgende Bild zeigt nur eines, um die Visualisierung zu vereinfachen. Dieser Vorgang wird für jede segmentierte Maske wiederholt, um sie mit der höchsten Übereinstimmung der Kandidatenobjekte zu klassifizieren.
Schlussfolgerungen
Die oben dargestellten Ergebnisse zeigen, dass die von uns vorgeschlagene Pipeline klassische Objekterkennungsalgorithmen (z. B. ICP, 3D-Matching) ablösen kann, die immer noch für die Objekterkennung beim Bin Picking verwendet werden. Unsere Pipeline kann diese Algorithmen übertreffen, da CNNs bei der Segmentierung besser abschneiden können. Außerdem hat unsere Pipeline gezeigt, dass sie trotz des lernbasierten Ansatzes allgemein genug ist, um diese Algorithmen ersetzen zu können. Dadurch könnte zukünftig eine breitere Produktpalette mit der gleichen Roboterzelle bearbeitet werden. Darüber hinaus würde dies die zunehmende Automatisierung weiterer Aufgaben ermöglichen, wie z. B. Behälter mit gemischten Objekten, die Automatisierung von Retouren und vieles mehr.
Weitere Details zu diesem Thema finden Sie in unserem Artikel „Object class-agnostic segmentation for practical CNN utilization in industry“, der in den IEEE ICMERR 2021 Conference Proceedings veröffentlicht wurde, Link.