3D Gripping Point Detection

Liste der Abschnitte ↓

Dieses Kapitel beschreibt die Nutzung der 3D Gripping Point Detection.

Mit der 3D Gripping Point Detection findet man geeignete Greifpunkte auf der Oberfläche beliebiger Objekte in einer 3D-Szene. Die Ergebnisse können verwendet werden um die Greifpunkte mit einem Roboterarm anzusteuern und die die Objekte mit einem Vakuumsauger anzuheben.

image/svg+xml
Ein mögliches Beispiel für eine Anwendung zur 3D Gripping Point Detection: Eine 3D-Szene (z.B. ein RGB-Bild und XYZ-Bilder) wird analysiert und mögliche Greifpunkte werden vorgeschlagen.

HALCON liefert ein vortrainiertes Modell, das ohne zusätzlichen Trainingsschritt bereit für die Inferenz ist. Dabei funktioniert die 3D Gripping Point Detection auch für Objekte, die im Training nicht aufgetreten sind. Außerdem ist es nicht notwendig 3D-Objektmodelle für die Objekte, die angesteuert werden sollen, bereitzustellen. 3D Gripping Point Detection kann außerdem mit Szenen umgehen, die mehrere unterschiedliche Objekte gleichzeitig beinhalten, Szenen, in denen teilweise verdeckte Objekte enthalten sind, sowie Szenen, die Störungen in den 3D-Daten enthalten.

Im folgenden Abschnitt wird der generelle Ablauf der Inferenz beschrieben.

Genereller Ablauf

Dieser Abschnitt beschreibt, wie ein passender Greifpunkt auf beliebigen Objektoberflächen mit Hilfe eines 3D Gripping Point Detection-Modells bestimmt werden kann. Ein Anwendungsszenario findet sich im HDevelop-Beispielprogramm 3d_gripping_point_detection_workflow.hdev.

  1. Einlesen eines vortrainierten 3D Gripping Point Detection-Modells mit

  2. Setzen von Modellparametern, beispielsweise bezüglich der verwendeten Hardware-Einheit oder der Bilddimensionen, mit

  3. Generieren eines Dictionarys DLSample für jede 3D-Szene. Dazu kann die Prozedur

    verwendet werden, welche verschiedene Arten von 3D-Daten verarbeiten kann. Für weitere Informationen zu den Anforderungen an die Daten siehe den Abschnitt „Daten“ weiter unten.

  4. Vorverarbeiten der Daten vor der Inferenz. Dazu wird die Prozedur

    verwendet. Die notwendigen Vorverarbeitungsparameter können aus dem Modell mittels

    generiert werden, oder manuell mittels

    gesetzt werden.

    Es ist zu beachten, dass die Vorverarbeitung der Daten einen signifikanten Einfluss auf die Inferenz hat. Für weitere Details, siehe den Abschnitt „3D-Szenen“ weiter unten.

  5. Anwenden des Modells über den Operator

  6. Nachverarbeiten des Ergebnisses in DLResult um Greifpunkte für die Szene zu erhalten mittels

  7. Visualisieren der 2D- und 3D-Ergebnisse mit der Prozedur

Daten

Dieser Abschnitt enthält Informationen bezüglich Daten, die für die Inferenz mittels eines 3D Gripping Point Detection-Modells benötigt werden.

Ein Grundgedanke der Datenhandhabung: Das Modell interagiert mit den Daten über Dictionaries. Dies bedeutet, das Modell erhält die Eingabedaten über das Dictionary DLSample und gibt die Ausgabe über das Dictionary DLResult zurück. Für weitere Informationen zur Datenhandhabung wird auf das Kapitel Deep Learning / Modell verwiesen.

3D-Szenen

Die 3D Gripping Point Detection verarbeitet 3D-Szenen, welche aus klassischen 2D-Bildern und Tiefeninformationen bestehen.

Um diese 3D-Daten an die Anforderungen für Eingabedaten des Netzwerks anzupassen ist ein Vorverarbeitungsschritt für die Inferenz notwendig. Für Informationen zu bestimmten Vorverarbeitungsparametern, siehe den Abschnitt „Spezifische Vorverarbeitungsparameter“ weiter unten. Es wird empfohlen einen hochauflösenden 3D-Sensor zu verwenden um die notwendige Datenqualität zu sicherzustellen. Folgende Daten werden benötigt:

2D-Bild

  • RGB-Bild, oder

  • Intensitätsbild (Grauwertbilder)

Intensitätsbild.
Tiefeninformationen

  • X-Bild (Werte müssen von links nach rechts aufsteigend)

  • Y-Bild (Werte müssen von oben nach unten aufsteigend)

  • Z-Bild (Werte müssen von dem Sensor nahen zu fernen Punkten aufsteigen; das ist z.B. der Fall wenn die Daten bezüglich des Kamerakoordinatensystems angegeben werden)

(1) (2) (3)
(1) X-Bild, (2) Y-Bild, (3) Z-Bild.
Normalen (optional)

  • 2D-Mappings (3-kanaliges Bild)

Normalenbild.
Werden Normalenbilder übergeben, dann verringert sich die Laufzeit, da die Normalen nicht erst berechnet werden müssen.

Um den Suchbereich einzuschränken kann die Domäne des RGB-/Intensitätsbildes reduziert werden. Es ist zu beachten, dass die Domäne der XYZ-Bilder und der (optionalen) Normalenbilder identisch sein muss. Außerdem dürfen für alle Eingabedaten nur gültige Pixel Teil der genutzten Domäne sein.

Modell-Ausgabe

Als Ausgabe gibt das Modell ein Dictionary DLResult für jedes Sample zurück. Dieses Dictionary beinhaltet die folgenden Einträge:

Nachverarbeitung

Die Modell-Ergebnisse in DLResult können mit gen_dl_3d_gripping_points_and_poses nachverarbeitet werden um Greifpunkte zu generieren. Diese Prozedur kann außerdem parametrisiert werden um kleine Greifflächen zu unterdrücken (mit min_area_size), oder als Vorlage dienen um eigene Auswahlkriterien zu definieren.

Folgender Eintrag wird von dieser Prozedur zum Dictionary DLResult hinzugefügt:

Spezifische Vorverarbeitungsparameter

Zusammen mit den Daten müssen Vorverarbeitungsparameter an preprocess_dl_samples übergeben werden. Zwei Parameterpaare haben einen besonders hohen Einfluss:

Eine Einschränkung des Suchbereichs kann durch Reduzierung der Domäne der Suchbilder (mittels reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain) durchgeführt werden. Für preprocess_dl_samples muss mit dem Vorverarbeitungsparameter 'domain_handling' festgelegt werden, wie die Domäne gehandhabt werden soll. Der Parameter 'domain_handling' sollte dabei so verwendet werden, dass nur essentielle Informationen zur Inferenz an das Netzwerk weitergegeben werden. Die folgenden Bilder zeigen, in Abhängigkeit von 'domain_handling', wie ein Eingabebild mit reduzierter Domäne nach der Vorverarbeitung weitergegeben wird.

(1) (2) (3) (4)
(1) Eingabebild mit reduzierter Domäne (rot), (2) Bild mit 'full_domain', (3) Bild mit 'keep_domain', (4) Bild mit 'crop_domain'.

Liste der Abschnitte