top of page
  • AutorenbildStefan Thalhammer

Effiziente 6D-Objektposenschätzung mit Tiefem Template Matching

Da Roboter immer stärker aus der Laborumgebung in die komplexe reale Welt vordringen, besteht Bedarf an der Erkennung diverser und neuer Objekte. Standard Ansätze zur 6D-Objektposenschätzung beruhen auf objektspezifischem Training und lassen sich daher nicht auf neue, ungesehene Objekte verallgemeinern. Neuartige Methoden zur Schätzung der Objektlage lösen dieses Problem, indem sie tiefes Template Matching verwenden, wie TraM3D und ZS6D.

Der Abgleich von Beobachtungen mit vordefinierten Templates ist ein altbewährtes Konzept der Objektposenschätzung [1]. Neuere lernende Lösungen verwenden diese Strategie, da sie zwei wesentliche Vorteile hat.

Erstens ist die Trainingszeit gering, da zur Merkmalsextraktion von den Templates nicht für jedes Objekt eine eigene Repräsentation gelernt werden muss. Daher erfolgt das Lernen der Templates eines Objekts von Interesse, in dieser Onboarding Phase, in der Größenordnung von Sekunden.

Im Vergleich dazu dauert das Training von instanzspezifischen Posenschätzern, je nach Anzahl der Objekte und der verwendeten Hardware, Stunden bis Tage [2]. Zweitens lernen Posenschätzer eine latente Repräsentation des Objekts. Diese Repräsentation lässt sich nicht auf neue Objekte verallgemeinern. Dadurch muss jedes neue Objekt mit einer großen Menge an geeigneten Trainingsdaten auf einer Grafikkarte trainiert werden.

Tiefes Template-Matching löst diese Probleme, da kein Training benötigt wird. Neue Objekte können während der Laufzeit, nach einer kurzen Onboarding Phase, gehandhabt werden. Diese Onboarding Phase dauert bei ZS6D rund 15 Minuten.


Merkmalsextraktion

In der Verarbeitung natürlicher Sprache sind Transformer die vorherrschende Machine Learning Architektur, da sie im Vergleich zu CNNs und RNNs die Eingabedaten parallel verarbeiten und besser generalisieren (siehe Use Case AI-Modelle lernen nicht, was sie lernen sollten). Folglich wurden Anstrengungen unternommen, um diese Architektur in den Bereich der Bildverarbeitung zu überführen, was zum Vision Transformer (ViT) führte. Obwohl ViTs besser generalisieren als CNNs, werden ihre Vorteile erst beim self-supervised Training richtig erkennbar. Durch dieses Verfahren können sie noch besser auf neue Aufgaben angewandt werden und sind robust gegenüber großen Veränderungen in den Daten [3]. Solche self-supervised Modelle, Modelle deren extrahierte Merkmale allgemein verwendbar sind, zeigen vergleichbare Ergebnisse wie der Stand der Technik für überwachte Modelle bei Aufgaben wie Objektklassifizierung und Segmentierung.

ViTs können nun dazu genutzt werden, aus Bildern eine dreidimensionale semantische Beschreibung zu erhalten; Breite mal Höhe mal Merkmale. Im Fall des ViTs, verwendet in TraM3D und ZS6D, haben diese Merkmale haben eine Größe von 384 Werten, pro Pixel. Abbildung 1 zeigt eine Projektion der Merkmale in den Bildraum. Zu sehen ist dasselbe Objekt vom CAD-Modell gerendert und eine Fotografie davon. Erkennbar ist, das die extrahierten Merkmale Ähnlichkeit aufweisen, obwohl die Ursprünge grundlegend verschieden sind, Rendering versus Foto.


Merkmalsextraktion, Rendering versus Fotografie. Eingabefeld und extrahierte Merkmale. Eingabebild eines echten Objekts (links) die extrahierten Merkmale (Mitte-links), und ein Rendering des Objekts (Mitte-rechts) und die extrahierten Merkmale (rechts).
Abbildung 1: Merkmalsextraktion, Rendering versus Fotografie. Eingabefeld und extrahierte Merkmale. Eingabebild eines echten Objekts (links) die extrahierten Merkmale (Mitte-links), und ein Rendering des Objekts (Mitte-rechts) und die extrahierten Merkmale (rechts).

Template-Matching


Während der Laufzeit wird das Template Matching für die Detektion und die Poseschätzung verwendet. Im ersten Schritt werden Templates erstellt, dies kann sowohl durch Rendering oder das Aufnehmen echter Bilder geschehen. Hierbei ist es jedoch wichtig, einen Objektursprung festzulegen und die relative Transformation von Kamera zum Objektursprung zu ermitteln. Anschließend können mithilfe der gerenderten Templates Objekte im Bild detektiert und algorithmisch vereinzelt und klassifiziert werden.


Templateerstellung: Der einfachste Weg, um Templates zu erstellen, ist die Verwendung von Rendering-Software, wie BlenderProc2. CAD-Modelle werden eingespielt und Objektansichten werden icosahedron-förmig verteilt und gerendert. Abbildung 2 zeigt ein paar Beispielansichten.


Abbildung 2: Erstellte Objekttemplates. Eingabefeld und extrahierte Merkmale. Eingabebild eines echten Objekts (links) die extrahierten Merkmale (Mitte-links), und ein Rendering des Objekts (Mitte-rechts) und die extrahierten Merkmale (rechts).
Abbildung 2: Erstellte Objekttemplates. Eingabefeld und extrahierte Merkmale. Eingabebild eines echten Objekts (links) die extrahierten Merkmale (Mitte-links), und ein Rendering des Objekts (Mitte-rechts) und die extrahierten Merkmale (rechts).

Objektdetektion: Unbekannte Objekte können mithilfe von tiefen Modellen in Bildern hervorgehoben werden. Hierzu bieten sich Methoden wie SAM an, siehe Abbildung 3. Solche zero-shot Methoden erlauben das Segmentieren semantisch ähnlicher Bildregionen. Stichprobenartige Entnahme von Bildregionen ermöglicht es, algorithmisch Objekthypothesen zu erzeugen. Diese Objekthypothesen werden nun basierend auf ihren segmentierten Regionen aus dem Bild geschnitten und mit den Templates abgeglichen, um die Objektklasse zu erhalten. Als Heuristik für die Objektklasse kann das näheste Template über die Ähnlichkeit der Merkmale zwischen Template und Objekthypothese herangezogen werden, siehe Abbildung 1.

Abbildung 3: Objektsegmentierung unbekannter Objekte. Eingabefeld und extrahierte Merkmale. Eingabebild eines echten Objekts (links) die extrahierten Merkmale (Mitte-links), und ein Rendering des Objekts (Mitte-rechts) und die extrahierten Merkmale (rechts).
Abbildung 3: Objektsegmentierung unbekannter Objekte. Eingabefeld und extrahierte Merkmale. Eingabebild eines echten Objekts (links) die extrahierten Merkmale (Mitte-links), und ein Rendering des Objekts (Mitte-rechts) und die extrahierten Merkmale (rechts).

Posenschätzung

Um die Pose schätzen zu können, müssen Korrespondenzen im Objektraum definiert werden. Dafür bieten sich standardisierte Lösungen wie NOCS an. Hierbei wird basierend auf des Ortes des Modellvertex ein Farbwert zugewiesen. Die linke Seite von Abbildung 4 visualisiert derartige geometrische Korrespondenzen.

Abbildung 4: Geometrische und semantische Korrespondenzen. Geometrische Korrespondenzen definiert im Objektkoordinatensystem (links), und semantische Korrespondenzen zwischen einem Objektausschnitt und dem nähesten Template (rechts).
Abbildung 4: Geometrische und semantische Korrespondenzen. Geometrische Korrespondenzen definiert im Objektkoordinatensystem (links), und semantische Korrespondenzen zwischen einem Objektausschnitt und dem nähesten Template (rechts).

Nun werden semantische Korrespondenzen, i.e. ähnlich Bildbereiche, zwischen Bildausschnitt und dem nähesten Template ermittelt (rechte Seite der Abbildung 4). Dies ermöglicht das Überführen der geometrischen Korrespondenzen vom Template in den Bildausschnitt, der das Objekt zeigt. Durch Inversion des Ausscheidens des Objektes werden nun die geometrischen Korrespondenzen in das Ursprungsbild projiziert. Schlussendlich werden Algorithmen wie der PnP genutzt, um die rigiden Transformationen von Kamera zum Objekt zu schätzen. Abbildung 5 visualisiert mit ZS6D geschätzte Posen.

Abbildung 5: Geschätzte Posen. Posen ermittelt mit ZS6D. Die visualisierten Posen wurden zero-shot geschätzt, i.e. ohne dass Machine Learning Modelle darauf trainiert wurden.
Abbildung 5: Geschätzte Posen. Posen ermittelt mit ZS6D. Die visualisierten Posen wurden zero-shot geschätzt, i.e. ohne dass Machine Learning Modelle darauf trainiert wurden.

Schlussfolgerung

Tiefes Template-Matching erlaubt es in kürzester Zeit, im Minutenbereich, Machine Learning Modelle auf neue Objekte anzuwenden. Dies erlaubt es Objektposen für industrielle Anwendungen zu schätzen und bietet a) Flexibilität und schnelle Anwendbarkeit klassischer Algorithmen, aber b) mit der Genauigkeit lernender Algorithmen.


Weitere Verweise:

6 Ansichten

Aktuelle Beiträge

Alle ansehen

Comments


bottom of page