DE102021109036A1 - Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte - Google Patents

Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte Download PDF

Info

Publication number
DE102021109036A1
DE102021109036A1 DE102021109036.9A DE102021109036A DE102021109036A1 DE 102021109036 A1 DE102021109036 A1 DE 102021109036A1 DE 102021109036 A DE102021109036 A DE 102021109036A DE 102021109036 A1 DE102021109036 A1 DE 102021109036A1
Authority
DE
Germany
Prior art keywords
groups
matches
descriptor
image
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021109036.9A
Other languages
English (en)
Inventor
Andras Gabor Kupcsik
Philipp Christian Schillinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021109036.9A priority Critical patent/DE102021109036A1/de
Priority to CN202210373602.6A priority patent/CN115205371A/zh
Publication of DE102021109036A1 publication Critical patent/DE102021109036A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10132Ultrasound image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte beschrieben, bei dem für Referenzdeskriptoren, die zu lokalisierenden Stellen zugeordnet sind, Übereinstimmungen für ein Kamerabild gesucht werden und die Übereinstimmungen für unterschiedliche Referenzdeskriptoren zu Gruppen gruppiert werden, durch, ausgehend von Gruppen, die jeweils aus einer Übereinstimmung bestehen, sukzessives Zusammenfassen von Gruppen durch Zusammenfassen einer Gruppe von Übereinstimmungen für einen ersten Teil der Referenzdeskriptoren mit derjenigen Gruppe aus einer Menge von Gruppen mit Übereinstimmungen eines zweiten Teils der Referenzdeskriptoren, für die die relative Lage der in ihr enthaltenen Übereinstimmungen zusammen mit den Übereinstimmungen aus der Gruppe für den ersten Teil von Referenzdeskriptoren am besten mit einer Referenz für die relative Lage übereinstimmt. Die Übereinstimmungen einer Gruppe werden als die für ein jeweiliges Objekt lokalisierten Stellen ausgegeben.

Description

  • Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte.
  • Um eine flexible Herstellung oder Bearbeitung von Objekten durch einen Roboter zu ermöglichen, ist es wünschenswert, dass der Roboter in der Lage ist, ein Objekt ungeachtet der Stellung, mit der das Objekt in den Arbeitsraum des Roboters platziert wird, zu handhaben. Daher sollte der Roboter fähig sein, zu erkennen, welche Teile des Objektes sich an welchen Positionen befinden, sodass er zum Beispiel das Objekt an der korrekten Stelle greifen kann, um es z. B. an einem anderen Objekt zu befestigen, oder das Objekt am aktuellen Ort zu schweißen. Dies bedeutet, dass der Roboter fähig sein sollte, die Pose (Position und Orientierung) des Objekts oder auch Bereiche des Objekts wie einen Barcode aus einem oder mehreren Bildern, die durch eine am Roboter befestigte Kamera aufgenommen werden, zu erkennen. Ein Ansatz zum Erzielen davon besteht darin, Deskriptoren, d. h. Punkte (Vektoren) in einem vordefinierten Deskriptorraum, für Teile des Objekts (d. h. in einer Kamerabildebene repräsentierte Pixel des Objekts) zu bestimmen, wobei der Roboter trainiert ist, unabhängig von einer aktuellen Pose des Objekts den gleichen Teilen eines Objekts die gleichen Deskriptoren zuzuweisen und somit die Topologie des Objekts in dem Bild zu erkennen, sodass dann beispielsweise bekannt ist, wo sich welche Ecke des Objekts in dem Bild befindet. Bei Kenntnis der Pose der Kamera lässt sich dann wiederum auf die Pose des Objekts bzw. die Position von Bereichen des Objekts im dreidimensionalen Raum rückschließen. Das Erkennen der Topologie lässt sich mit einem maschinellen Lernmodell realisieren, das entsprechend trainiert wird. Die Deskriptoren haben die theoretische Eigenschaft, dass sie ansichtsinvariant immer den gleichen Stellen zugeordnet werden. Diese Eindeutigkeit gilt aber insofern nur in einer Richtung, dass ein bestimmter Deskriptor in einem für ein Kamerabild erzeugtes Deskriptorbild mehrmals auftreten kann, beispielsweise wenn mehrere Objekte desselben Objekttyps mehrmals im Kamerabild gezeigt ist. In einem solchen Fall ist eine Zuordnung von Deskriptoren zu Objekten (oder auch Bereichen eines Objekts, die in einem Kamerabild mehrmals auftreten) erforderlich. Dementsprechend sind Herangehensweisen wünschenswert, die es ermöglichen, Deskriptoren, die in Deskriptorbildem für Kamerabilder auftreten, den korrekten Objekten bzw. den korrekten Bereichen auf ein oder mehreren Objekten zuzuordnen, um Stellen auf Objekten mittels der Kamerabilder zu lokalisieren, beispielsweise für eine Robotersteuerung.
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte bereitgestellt, aufweisend: Festlegen der zu lokalisierenden Stellen für einen Objekttyp der Objekte, Bestimmen einer Referenz für die relative Lage der zu findenden Stellen, Trainieren, für den Objekttyp, eines maschinellen Lernmodells zum Abbilden von Kamerabildern, wobei jedes Kamerabild ein Objekt des Objekttyps zeigt, auf Deskriptorbilder, wobei ein Deskriptorbild, auf das ein Kamerabild abzubilden ist, für eine Stelle des Objekts, die das Kamerabild an einer Bildposition zeigt, an der Bildposition einen Deskriptor der Stelle des Objekts aufweist, Festlegen, für jede zu lokalisierenden Stelle, des Deskriptors an der zu lokalisierenden Stelle des Objekts als Referenzdeskriptor für die zu lokalisierende Stelle, Empfangen eines Kamerabilds von ein oder mehreren Objekten des Objekttyps, Abbilden des Kamerabilds auf ein Deskriptorbild mittels des trainierten maschinellen Lernmodells, Ermitteln, für jeden Referenzdeskriptor, von Übereinstimmungen zwischen Deskriptoren des Deskriptorbilds mit dem Referenzdeskriptor, Gruppieren der Übereinstimmungen für unterschiedliche Referenzdeskriptoren zu Gruppen, durch, ausgehend von Gruppen, die jeweils aus einer Übereinstimmung bestehen, sukzessives Zusammenfassen von Gruppen durch
    • Zusammenfassen einer Gruppe von Übereinstimmungen für einen ersten Teil der Referenzdeskriptoren mit derjenigen Gruppe aus einer Menge von Gruppen mit Übereinstimmungen eines zweiten Teils der Referenzdeskriptoren, für die die relative Lage der in ihr enthaltenen Übereinstimmungen zusammen mit den Übereinstimmungen aus der Gruppe für den ersten Teil von Referenzdeskriptoren am besten mit der Referenz für die relative Lage übereinstimmt und
    Ausgeben der Übereinstimmungen einer Gruppe als die für ein jeweiliges Objekt lokalisierten Stellen.
  • Das oben beschriebene Verfahren ermöglicht es, Deskriptoren, die in einem für ein Kamerabild erzeugtes Deskriptor mehrfach auftreten, korrekt zuzuordnen, z.B. korrekt dem jeweiligen Objekt (bzw. der Zielinstanz, die auch ein Bereich oder Teil eines Objekts sein kann) zuzuordnen. Dies erlaubt es, für mehrere Instanzen desselben Ziels, z.B. mehrere Objekte oder auch mehrere gleiche Bereiche auf einem Objekt, Stellen, die zu den Instanzen gehören, zu lokalisieren, z.B. die Pose mehrerer gleiche Objekte in einem Kamerabild zu ermitteln oder den Ort mehrerer Barcodes auf einem oder mehreren Objekten, die im Kamerabild sichtbar sind, im dreidimensionalen Raum zu ermitteln.
  • Im Folgenden sind verschiedene Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist das oben beschriebene Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte.
  • Ausführungsbeispiel 2 ist das Verfahren nach Ausführungsbeispiel 1, wobei die relative Lage der zu findenden Stellen eine Lage der zu findenden Stellen im dreidimensionalen Raum ist.
  • Dies eröffnet viele Möglichkeiten, die relative Lage zu definieren, wie beispielsweise Winkel im Raum, Fläche zwischen Geraden, Länge der Strecken zwischen 3D-Positionen etc. Durch die Verwendung einer Lage im dreidimensionalen Raum (statt nur einer Lage in der Kamerabildebene) wird außerdem sichergestellt, dass Zuordnungsfehler, die sich lediglich in einer Abweichung der Lage senkrecht zur Kamerabildebene widerspiegeln, vermieden werden können.
  • Ausführungsbeispiel 3 ist das Verfahren nach Ausführungsbeispiel 1, wobei die relative Lage die paarweisen Abstände der zu lokalisierenden Stellen bzw. der lokalisierten Stellen im dreidimensionalen Raum aufweist.
  • Dies erlaubt eine einfache Ermittlung der relativen Lage (z.B. über Tiefeninformation oder Lösung eines PnP (Perspective-n-Point)-Problems) und hängt von allen drei Raumdimensionen (nicht nur von den Abständen in der Kamerabildebene) ab.
  • Ausführungsbeispiel 4 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 3, aufweisend nach jedem Zusammenfassen von zwei Gruppen, entfernen von den Gruppen die eine Übereinstimmung enthalten, die in einer der zwei Gruppen des Paares enthalten ist.
  • Dies beschleunigt das Verfahren erheblich, kann jedoch in ungünstigen Fällen („Adversarial“-Situationen) zu Qualitätsverlust führen, falls unvollständige Gruppen entfernt werden, da es sich beim Vervollständigen von Gruppen ändert könnte, welche die bessere relative Lage (näher and er Referenz) liefert.
  • Ausführungsbeispiel 5 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 3, aufweisend nach jedem Zusammenfassen von zwei Gruppen, entfernen von den Gruppen die eine Übereinstimmung enthalten, die in einer der zwei Gruppen des Paares enthalten ist, falls die kombinierte Gruppe, zu der die beiden Gruppen zusammengefasst werden, eine Übereinstimmung für jeden Referenzdeskriptor enthält.
  • Dies beschleunigt das Verfahren ohne Qualitätsverlust, da lediglich vollständige Gruppen entfernt werden.
  • Ausführungsbeispiel 6 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 5, wobei das Ausgeben das wiederholte Durchführen aufweist von, bis keine Gruppen mehr übrig sind oder die verbleibenden Gruppen eine vorgegebene minimalen Gruppengröße erreicht haben:
    • Ausgeben der Gruppe, für die unter allen Gruppen mit maximaler Anzahl von Übereinstimmungen die Übereinstimmungen die beste Lage haben und Entfernen der ausgegebenen Gruppe und aller Gruppen, die mindestens eine Übereinstimmung enthalten, die auch die ausgegebene Gruppe enthält.
  • Insbesondere können Zwischenergebnisse ausgegeben werden und auch Ergebnisse ausgeben werden, falls es für manche Gruppen nicht möglich ist, sie zu vollständigen Gruppen zusammenzufassen, z.B. weil zu lokalisierende Stellen im Kamerabild verdeckt sind.
  • Ausführungsbeispiel 7 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 6, aufweisend Organisieren der Gruppen in einem Graphen, wobei jede Gruppe einem Knoten zugeordnet ist, Kanten zwischen Knoten vorgesehen sind, denen Gruppen zugeordnet sind, die Übereinstimmungen für unterschiedliche Teile der Referenzdeskriptoren aufweisen, wobei das Gewicht einer Kante zwischen zwei Gruppen angibt, wie gut die relative Lage der Übereinstimmungen aus beiden Gruppen zusammen mit der Referenz für die relative Lage übereinstimmt.
  • Dies bildet eine effiziente Datenstruktur zur Implementierung des Verfahrens. Eine Möglichkeit zur Definition eines solchen Graphen besteht in der Konstruktion einer Adjazenzmatrix, deren Einträge gemäß der Kantengewichte gewählt werden, sowie einer Liste, die die Zuordnung von Gruppen zu Indices der Matrix definiert. Eine weitere Möglichkeit besteht in der Verwaltung des Graphens mittels einer Prioritätsliste (engl. „Priority Queue“ oder „Priority Heap“), deren Einträge Kanten des Graphen entsprechen und die gemäß der Kantengewichte sortiert ist.
  • Ausführungsbeispiel 8 ist das Verfahren zum Steuern eines Roboters, das Folgendes aufweist:
    • Lokalisieren von Stellen eines durch den Roboter zu behandelnden Objekts nach einem der Ausführungsbeispiele 1 bis 7,
    • Ermitteln einer Pose des Objekts aus den lokalisierten Stellen und Steuern des Roboters in Abhängigkeit von der ermittelten Pose
    • und/oder
    • Ermitteln eines Bereichs des Objekts aus den lokalisierten Stellen und Steuern des Roboters in Abhängigkeit des ermittelten Bereichs.
  • Ausführungsbeispiel 9 ist das Software- oder Hardware-Agent, insbesondere Roboter, der eine Kamera, die zum Bereitstellen von Kamerabildern von Objekten eingerichtet ist und eine Steuereinrichtung, die zum Durchführen des Verfahrens nach einem der Ausführungsbeispiele 1 bis 8 eingerichtet ist, aufweist.
  • Ausführungsbeispiel 10 ist das Software- oder Hardware-Agent nach Ausführungsbeispiel 9, der mindestens einen Aktor aufweist, wobei die Steuereinrichtung zum Steuern des mindestens einen Aktors unter Verwendung der lokalisierten Stellen eingerichtet ist.
  • Ausführungsbeispiel 11 ist das Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 8 durchführt.
  • Ausführungsbeispiel 12 ist das Computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 8 durchführt.
  • In den Zeichnungen beziehen sich im Allgemeinen überall in den verschiedenen Ansichten ähnliche Bezugszeichen auf die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird der Schwerpunkt allgemein auf die Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben:
    • 1 zeigt einen Roboter.
    • 2 veranschaulicht das Trainieren eines neuronalen Netzes gemäß einer Ausführungsform.
    • 3 veranschaulicht die Ermittlung einer Objektpose bzw. Greifpose gemäß einer Ausführungsform.
    • 4 zeigt Beispiele für Probleme beim Lokalisieren von Stellen, wenn ein Referenzdeskriptor an mehreren Positionen eines Kamerabilds auftritt.
    • 5 zeigt ein Beispiel für das Gruppieren von Übereinstimmungen zwischen Deskriptoren und Referenzdeskriptoren.
    • 6 zeigt ein Ablaufdiagramm für ein Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die veranschaulichend spezifische Einzelheiten und Aspekte dieser Offenbarung zeigen, in der die Erfindung umgesetzt werden kann. Andere Aspekte können genutzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.
  • 1 zeigt einen Roboter 100.
  • Der Roboter 100 beinhaltet einen Roboterarm 101, zum Beispiel einen Industrieroboterarm zum Handhaben oder Montieren eines Arbeitsstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 beinhaltet Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, mittels der die Manipulatoren 102, 103, 104 gestützt werden. Der Ausdruck „Manipulator“ bezieht sich auf die bewegbaren Bauteile des Roboterarms 101, deren Betätigung eine physische Interaktion mit der Umgebung ermöglicht, um z. B. eine Aufgabe auszuführen. Zur Steuerung beinhaltet der Roboter 100 eine (Roboter-) Steuereinrichtung 106, die zum Implementieren der Interaktion mit der Umgebung gemäß einem Steuerprogramm ausgelegt ist. Das letzte Bauteil 104 (das am weitesten von der Basis 105 entfernt ist) der Manipulatoren 102, 103, 104 wird auch als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge beinhalten, wie etwa einen Schweißbrenner, ein Greifinstrument, ein Lackiergerät oder dergleichen.
  • Die anderen Manipulatoren 102, 103 (die sich näher an der Basis 105 befinden) können eine Positionierungsvorrichtung bilden, sodass, zusammen mit dem Endeffektor 104, der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt wird. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm bereitstellen kann (möglicherweise mit einem Werkzeug an seinem Ende).
  • Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 beinhalten, die die Manipulatoren 102, 103, 104 miteinander und mit der Basis 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, die jeweils eine drehbare Bewegung (d. h. Drehbewegung) und/oder translatorische Bewegung (d. h. Verlagerung) für assoziierte Manipulatoren relativ zueinander bereitstellen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren initiiert werden, die durch die Steuereinrichtung 106 gesteuert werden.
  • Der Ausdruck „Aktor“ kann als eine Komponente verstanden werden, die als Reaktion auf ihren Antrieb zum Bewirken eines Mechanismus oder Prozesses ausgebildet ist. Der Aktor kann durch die Steuereinrichtung 106 erstellte Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen implementieren. Der Aktor, z. B. ein elektromechanischer Wandler, kann dazu ausgelegt sein, als Reaktion auf seinen Antrieb elektrische Energie in mechanische Energie umzuwandeln.
  • Der Ausdruck „Steuereinrichtung“ kann als ein beliebiger Typ von logikimplementierender Entität verstanden werden, die zum Beispiel eine Schaltung und/oder einen Prozessor beinhalten kann, die/der in der Lage ist, in einem Speicherungsmedium gespeicherte Software, Firmware oder eine Kombination davon auszuführen, und die/der Anweisungen, z. B. zu einem Aktor im vorliegenden Beispiel, ausstellen kann. Die Steuereinrichtung kann zum Beispiel durch Programmcode (z. B. Software) konfiguriert werden, um den Betrieb eines Systems, eines Roboters im vorliegenden Beispiel, zu steuern.
  • Im vorliegenden Beispiel beinhaltet die Steuereinrichtung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, basierend auf denen der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuereinrichtung 106 den Roboterarm 101 auf Basis eines maschinellen Lernmodells 112, das im Speicher 111 gespeichert ist.
  • Gemäß verschiedenen Ausführungsformen wird das maschinelle Lernmodell 112 dazu ausgelegt und trainiert, dem Roboter 100 zu ermöglichen, aus Kamerabildern eine Aufnehmpose eines Objekts 113 zu erkennen, das zum Beispiel in einen Arbeitsraum des Roboterarms 101 platziert wird, zum Beispiel für einen Roboter, der Objekte aus einer Kiste aufnehmen soll (engl „Bin-picking“). Dies bedeutet, dass der Roboter 100 erkennt, wie er das Objekt 113 aufnehmen kann, d.h. wie er seinen Endeffektor 104 orientieren muss und wohin er ihn bewegen muss, um das Objekt 113 aufzunehmen (z.B. zu greifen). Die Aufnehmpose wird so verstanden, dass sie für das Aufnehmen ausreichend Informationen enthält, d.h. Information über Orientierung und Position 113 des Objekts, die ausreicht, um daraus zu ermitteln, wie das Objekt 113 gegriffen werden kann. Die Aufnehmpose braucht nicht notwendigerweise die vollständige Orientierungsinformation über das Objekt 113 enthalten, da es bei einem Objekt 113 mit einem rotationssymmetrischen Teil zum Greifen beispielsweise unerheblich sein kann, wie das rotationssymmetrische Teil um seine Rotationsachse rotiert ist.
  • Der Roboter 100 kann zum Beispiel mit einer oder mehreren Kameras 114 ausgestattet sein, die es ihm ermöglichen, Bilder seines Arbeitsraums aufzunehmen. Eine Kamera 114 ist zum Beispiel an dem Roboterarm 101 befestigt, sodass der Roboter Bilder des Objekts 113 von verschiedenen Perspektiven aus machen kann, indem er den Roboterarm 101 herumbewegt.
  • Ein Beispiel für ein maschinelles Lernmodell 112 zur Objekterkennung ist ein dichtes Objektnetz. Ein dichtes Objektnetz bildet ein Bild (z. B. ein durch die Kamera 114 bereitgestelltes RGB-Bild) auf ein Deskriptorraumbild mit einer gewissen gewählten Dimension D ab. Es können aber auch andere maschinelle Lernmodelle 112 verwendet werden, insbesondere solche, die nicht notwendigerweise eine „dichte“ Merkmalskarte erzeugen, sondern lediglich bestimmten Punkten (z.B. Ecken) des Objekts Deskriptoren zuordnen.
  • Gemäß verschiedenen Ausführungsformen wird ein Ansatz zum Erkennen eines Objekts und seiner Stellung verwendet, unter der Annahme, dass ein 3D-Modell (z. B. ein CAD(Computer Aided Design)-Modell) des Objekts bekannt ist, was typischerweise für Industriemontage- oder -bearbeitungsaufgaben der Fall ist. Es können nichtlineare Dimensionalitätsreduktionstechniken verwendet werden, um optimale Zielbilder zum Trainieren von Eingabebildern für ein neuronales Netz zu berechnen. Somit wird gemäß verschiedenen Ausführungsformen ein überwachtes Training eines neuronalen Netzes verwendet. Es können auch RGBD-Bilder von einem Objekt aufgenommen werden (RGB + Tiefeninformation) und daraus ein 3D-Modell für das Objekt bestimmt werden. Alternativ kann ein selbstüberwachtes Training durchgeführt werden, bei dem das maschinelle Lernmodell selbst Deskriptoren für Stellen des Objekts lernt.
  • Für ein überwachtes Training wird gemäß einer Ausführungsform zum Erzeugen von Trainingsdaten zum Trainieren des maschinellen Lernmodells 112 zunächst eine Datensammlung durchgeführt. Insbesondere werden zum Beispiel registrierte RGB(Rot-Grün-Blau)-Bilder gesammelt. Ein registriertes Bild bedeutet hier ein RGB-Bild mit bekannten intrinsischen und extrinsischen Kamerawerten. In einem Szenario in der realen Welt wird eine an einem Roboter befestigte Kamera 114 (z. B. eine an einem Roboterhandgelenk befestigte Kamera) zum Beispiel verwendet, um ein Objekt zu scannen, während sich der Roboter (z. B. Roboterarm 101) herumbewegt. In einem simulierten Szenario werden fotorealistisch erzeugte RGB-Bilder unter Verwendung bekannter Objektstellungen verwendet.
  • Nach dem Sammeln der RGB-Bilder werden für überwachtes Training eines neuronalen Netzes Zielbilder für die RGB-Bilder gerendert.
  • Es wird angenommen, dass die Stellung jedes Objekts in Weltkoordinaten in jedem gesammelten RGB-Bild bekannt ist. Dies ist für ein simuliertes Szenario unkompliziert, erfordert aber eine manuelle Abstimmung für ein Szenario in der realen Welt, z. B. Platzieren des Objekts an vordefinierten Positionen. Es können auch RGBD (RGB plus Tiefeninformation)-Bilder verwendet werden, um die Position eines Objekts zu bestimmen.
  • Mit diesen Informationen und unter Verwendung einer Vertexdeskriptorberechnungstechnik, wie zum Beispiel nachstehend beschrieben, für jedes RGB-Bild (d. h. Trainingseingabebild) wird ein Deskriptorbild (d. h. Trainingsausgabebild, auch als Zielbild oder Ground-Truth-Bild bezeichnet) gerendert.
  • Wenn für jedes RGB-Bild ein Zielbild erzeugt wurde, d. h. Paare von RGB-Bildern und Zielbildern gebildet wurden, können diese Paare von Trainingseingabebild und assoziiertem Zielbild als Trainingsdaten zum Trainieren eines neuronalen Netzes verwendet werden, wie in 2 veranschaulicht.
  • 2 veranschaulicht das Trainieren eines neuronalen Netzes 200 gemäß einer Ausführungsform.
  • Das neuronale Netz 200 ist ein voll faltendes Netz (engl. fully convolutional network), das einen h × w × 3-Tensor (Eingabebild) auf einen h × w × D-Tensor (Ausgabebild) abbildet.
  • Es umfasst mehrere Stufen 204 von Faltungsschichten, gefolgt von einer Pooling-Schicht, Upsampling-Schichten 205 und Skip-Verbindungen 206, um die Ausgaben verschiedener Schichten zu kombinieren.
  • Für das Training empfängt das neuronale Netz 200 ein Trainingseingabebild 201 und gibt ein Ausgabebild 202 mit Pixelwerten im Deskriptorraum (z. B. Farbkomponenten gemäß Deskriptorvektorkomponenten) aus. Ein Trainingsverlust wird zwischen dem Ausgabebild 202 und dem mit dem Trainingseingabebild assoziierten Zielbild 203 berechnet. Dies kann für einen Stapel von Trainingseingabebildern stattfinden und der Trainingsverlust kann über die Trainingseingabebilder gemittelt werden und die Gewichte des neuronalen Netzes 200 werden unter Verwendung stochastischen Gradientenabstiegs unter Verwendung des Trainingsverlustes trainiert. Der zwischen dem Ausgabebild 202 und dem Zielbild 203 berechnete Trainingsverlust ist zum Beispiel eine L2-Verlustfunktion (um einen pixelweisen Least-Square-Fehler zwischen dem Zielbild 203 und dem Ausgabebild 202 zu minimieren).
  • Das Trainingseingabebild 201 zeigt ein Objekt und das Zielbild sowie das Ausgabebild beinhalten Vektoren im Deskriptorraum. Die Vektoren im Deskriptorraum können auf Farben abgebildet werden, sodass das Ausgabebild 202 (sowie das Zielbild 203) einer Heatmap des Objekts ähnelt.
  • Die Vektoren im Deskriptorraum (auch als (dichte) Deskriptoren bezeichnet) sind d-dimensionale Vektoren (z. B. beträgt d 1, 2 oder 3), die jedem Pixel im jeweiligen Bild (z. B. jedem Pixel des Eingabebildes 201, unter der Annahme, dass das Eingabebild 201 und das Ausgabebild 202 die gleiche Dimension aufweisen) zugewiesen sind. Die dichten Deskriptoren codieren implizit die Oberflächentopologie des im Eingabebild 201 gezeigten Objekts, invariant gegenüber seiner Stellung oder der Kameraposition.
  • Wenn ein 3D-Modell des Objekts gegeben ist, ist es möglich, einen optimalen und eindeutigen Deskriptor für jeden Vertex des 3D-Modells des Objekts analytisch zu bestimmen. Gemäß verschiedenen Ausführungsformen werden unter Verwendung dieser optimalen Deskriptoren (oder Schätzungen dieser Deskriptoren, die durch eine Optimierung bestimmt werden) Zielbilder für registrierte RGB-Bilder erzeugt, was zu einen voll überwachten Training des neuronalen Netzes 200 führt. Zusätzlich wird der Deskriptorraum ungeachtet der gewählten Deskriptordimension d erläuterbar und optimal.
  • Ist nun das maschinelle Lernmodell 112, z.B. das neuronale Netz 200, zum Abbilden von Kamerabildern eines Objekts 113 auf Deskriptorbilder trainiert, so kann zur Ermitteln einer Aufnehmpose eines Objekts 113 in unbekannter Lage wie folgt vorgegangen werden.
  • Zunächst werden auf dem Objekt mehrere Referenzpunkte pi, i = 1, ...,N, auf dem Objekt 113 ausgewählt und Deskriptoren dieser Referenzpunkte (hierin als Referenzdeskriptoren bezeichnet) ermittelt. Diese Referenzpunkte sind die zu lokalisierenden Stellen des Objekts für ein späteres („neues“) Kamerabild und die Referenzdeskriptoren ist der Referenzsatz von Deskriptoren. Die Auswahl kann dadurch erfolgen, dass ein Kamerabild des Objekts 113 aufgenommen wird, Referenzpixel (ui, vi) auf dem Objekt (und damit entsprechend Referenzpunkte des Objekts) ausgewählt werden und das Kamerabild von dem neuronalen Netz 200 auf ein Deskriptorbild abgebildet wird. Dann können die Deskriptoren an den Positionen im Deskriptorbild, die durch die Positionen der Referenzpixel gegeben sind, als Deskriptoren der Referenzpunkte genommen werden, d.h. die Deskriptoren der Referenzpunkte sind di = Id(ui, vi), wobei Id = ƒ(I; θ) das Deskriptorbild ist, wobei ƒ die von dem neuronalen Netz implementierte Abbildung (von Kamerabild auf Deskriptorbild) ist, / das Kamerabild und θ die Gewichte des maschinellen Lernmodells 200.
  • Befindet sich nun das Objekt 113 in einer unbekannten Lage, wird ein neues Kamerabild Ineu aufgenommen und mittels des maschinellen Lernmodells ein zugehöriges Deskriptorbild Id neu = ƒ{Ineu; θ) ermittelt. In diesem neuen Deskriptorbild werden nun Deskriptoren gesucht, die (innerhalb einer gewissen Toleranz) mit den Referenzdeskriptoren übereinstimmen.
  • Aus den Positionen (ui, vi)* der so gefundenen Deskriptoren im Deskriptorbild Id neu (und damit entsprechend im neuen Kamerabild Ineu) werden die Positionen der entsprechenden Stellen im dreidimensionalen Raum ermittelt. Beispielsweise wird zusammen mit dem Kamerabild Ineu ein Tiefenbild aufgenommen (oder das Kamerabild Ineu hat einen Tiefenkanal, z.B. ist es ein RGBD-Bild), sodass aus (ui, vi)* die dreidimensionale Position der i-ten zu lokalisierenden Stelle pi ermittelt werden kann (durch Projizieren des Tiefenwerts an der Position (ui, vi)* in das jeweilige Arbeitsbereich-Koordinatensystem).
  • Sind die Positionen im Raum von mehreren Referenzpunkten bekannt, kann daraus eine Aufnehmpose ermittelt werden, wie es in 3 dargestellt ist.
  • Beispielsweise wird die Position von zwei Referenzpunkten p1 und p2 auf dem Objekt 300 im Raum ermittelt und die beiden linear kombiniert, z.B. ihr Mittelwert genommen, um einen Ankerpunkt 304 festzulegen. Um eine Greif-Orientierung zu definieren wird eine erste Achse 301 mit der Richtung p1 und p2 festgelegt und eine zweite Achse 302 durch den Ankerpunkt 304 beliebig festgelegt, z.B. in z-Achsenrichtung der Kamera 114 oder in Richtung einer Achse des Arbeitsbereich-Koordinatensystems. Eine dritte Achse 303 durch den Ankerpunkt 304 kann durch das Vektorprodukt aus dem Richtungsvektor der ersten Achse 301 und dem Richtungsvektor der zweiten Achse 302 berechnet werden. Die drei Achsen 301 bis 303 und der Ankerpunkt 304 definieren eine Aufnehmpose für das Objekt 300. Ein Roboter kann dann so gesteuert werden, dass er den Schaft des Objekts 300, der sich in Richtung der ersten Achse erstreckt, umfasst. Die Referenzpunkte p1 und p2 werden beispielsweise so festgelegt, dass sie sich wie dargestellt entlang des Schafts, also entlang eines zum Greifen geeigneten langgestreckten Teilstücks des Objekts, erstrecken.
  • Analog können drei oder mehr Referenzpunkte auf einer Greiffläche eines Objekts angeordnet werden, sodass aus ihrer Position eine volle 6D-Aufnehmpose des Objekts oder auch die Orientierung einer Greiffläche ermittelt werden kann, an der ein Objekt aufgenommen (gegriffen oder angesaugt) werden kann.
  • Es sollte dabei beachtet werden, dass der Greifer nicht notwendig eine Zangenform haben muss, sondern auch beispielsweise eine Saugvorrichtung aufweisen kann, um das Objekt an einer geeigneten Fläche anzusaugen und damit aufzunehmen. Um die Saugvorrichtung in die richtige Stellung zu bringen kann es beispielsweise in diesem Fall gewünscht sein, eine Aufnehmpose zu ermitteln, die die Orientierung und Position einer Fläche des Objekts, die zum Ansaugen geeignet ist, angibt. Dies kann beispielsweise durch Ermittlung eines Ankerpunkts und eines Ebenen-Normalenvektors im Ankerpunkt erfolgen.
  • Es können auch mehr als drei Referenzpunkte verwendet werden, um eine Aufnehmpose zu ermitteln, z.B. um durch Mittelung Fehler zu reduzieren.
  • Ähnlich wie eine Aufnehmpose kann die Steuereinrichtung 106 auch Bereiche auf dem Objekt 300 ermittelt, z.B. eine Bounding-Box eines Barcodes, der auf dem Objekt 300 vorgesehen ist, um das Objekt zu identifizieren. Die Steuereinrichtung 106 kann dann beispielsweise den Roboterarm 101 derart steuern, dass er das Objekt 300 so vor eine Kamera hält, dass sie den Barcode lesen kann.
  • Wie oben erläutert ordnet ein dichtes Objektnetz einem (z.B. RGB-)Kamerabild eines Objekts oder eines Teils davon, aufgenommen aus einem beliebigen Blickwinkel, ein Deskriptorbild zu, das jedem Pixel (bzw. jeder Position) im eingegebenen Kamerabild einen mehrdimensionalen Deskriptor zuordnet. Die Deskriptoren haben die theoretische Eigenschaft, dass ein bestimmter Punkt auf der Oberfläche des Objekts unabhängig vom Blickwinkel immer mit demselben Deskriptor assoziiert wird. Diese Eigenschaft ist für verschiedene Anwendungen nützlich, z. B. für die Erkennung bzw. Lokalisierung einzelner Stellen auf einem Objekt oder auch von Bereichen auf der Oberfläche des Zielobjekts durch die Erkennung mehrerer Deskriptoren, z. B. von Eckpunkten des Bereichs oder einer Aufnehmpose wie oben mit Bezug auf 3 beschrieben. Mit zusätzlichen Tiefeninformationen, d. h. RGBD-Eingangsdaten anstelle von nur RGB-Bildern (d.h. RGB Bilder plus Tiefeninformation), können die ermittelten Punkte in den 3D-Raum projiziert werden, um einen solchen Bereich vollständig zu definieren.
  • Wie oben beschrieben können durch das Auffinden von Deskriptoren in einem Deskriptorbild für ein Kamerabild, das ein Objekt zeigt, die mit Referenzdeskriptoren übereinstimmen, Stellen auf dem Objekt gefunden werden.
  • Dabei besteht jedoch die Schwierigkeit, dass ein Referenzdeskriptor in einem Deskriptorbild für ein Kamerabild mehrmals auftreten kann.
  • 4 zeigt Beispiele für Probleme beim Lokalisieren von Stellen, wenn ein Referenzdeskriptor für an mehreren Positionen eines Kamerabilds auftritt.
  • In allen drei Beispielen 401, 402, 403 wird angenommen, dass ein rechteckiger Bereich (z.B. die Bounding-Box eines Barcodes) auf einem Objekt gefunden werden soll.
  • In dem ersten Beispiel 401 tritt ein Referenzdeskriptor zusätzlich zu einer ersten Position 404 (innerhalb des Objekts 405) an einer zweiten Position 406 auf (z.B. aufgrund einer falsch-positiven Deskriptorermittlung). Als Resultat wird der rechteckige Bereich 407 möglicherweise fälschlicherweise derart ermittelt, dass er teilweise außerhalb des Objekts 405 liegt.
  • In dem zweiten Beispiel 402 sind zwei Instanzen 408, 409 eines Objekttyps vorhanden, sodass entsprechend auch alle Deskriptoren doppelt vorliegen. Dementsprechend könnte der rechteckige Bereich 410 fälschlicherweise derart ermittelt werden, dass er Stellen von beiden Objekten 408, 409 aufweist.
  • Im dritten Beispiel 403 ist die Situation ähnlich wie im zweiten Beispiel 402, hier liegen die Objekte und Deskriptorpositionen zudem so, dass es eine Gruppe von Deskriptoreositionen gibt, für die die Abstände ähnlich derer zwischen den korrekten (d.h. den Objekten korrekt zugeordneten) Deskriptorpositionen sind. Auch hier kann der rechteckige Bereich 411 fälschlicherweise derart ermittelt werden, dass er Stellen von beiden Objekten aufweist. Das Beispiel von 4 kann als „Adversarial“-Situation angesehen werden.
  • Wie aus den Beispielen von 4 ersichtlich ist, werden Stellen auf einem Objekt dann falsch lokalisiert, wenn die Positionen, an denen Deskriptoren mit Referenzdeskriptoren übereinstimmen (hierin auch als Übereinstimmungen bezeichnet), nicht korrekt gruppiert werden. Das heißt, dass sie so gruppiert werden, dass sie nicht zur selben Instanz eines Ziels (dasselbe Objekt oder denselben Bereich auf einem Objekt, z.B. denselben Barcode) gehören.
  • Deshalb wird gemäß verschiedenen Ausführungsformen eine Herangehensweise zum Gruppieren von Übereinstimmungen bereitgestellt, die es ermöglicht, Gruppen von Übereinstimmungen zu erzeugen, die zu derselben Instanz eines Ziels gehören. In jeder solchen Gruppe gehört jede Übereinstimmung zu einem anderen Referenzdeskriptor. Dies bedeutet, dass jede Gruppe für jeden Referenzdeskriptor höchstens eine Übereinstimmung zwischen dem Referenzdeskriptor und einem Deskriptor aufweist. Es ist möglich, dass eine Gruppe nicht für jeden Referenzdeskriptor eine Übereinstimmung aufweist (z.B., weil eine Stelle des Objekts im aktuellen Kamerabild nicht sichtbar ist oder eine Übereinstimmung nicht korrekt gefunden wurde (falsch negativ)).
  • Durch die Gruppierung zu Gruppen, die zu Instanzen eines Ziels gehören, wird anschaulich von individuellen Deskriptoren zu Zielinstanzen übergegangen.
  • Selbst wenn es ausreicht, dass nur eine Zielinstanz gefunden wird, ist diese Herangehensweise von Vorteil, weil sie die Robustheit gegenüber Fällen erhöht, in dem ein Referenzdeskriptor mehrmals gefunden wird (wie im ersten Beispiel 401). In diesem Fall kann erreicht werden, dass die beste Übereinstimmung ausgewählt wird anstatt einer beliebigen guten Übereinstimmung.
  • Im Folgenden wird ein Beispiel für die Gruppierung von Übereinstimmungen zu Gruppen beschrieben.
  • Zunächst wird ein Maß für die relative Lage von Positionen (und damit auch von Übereinstimmungen, da diese eine Position im Kamerabild und damit auch eine (z.B. über Tiefeninformation) zugeordnete Position im dreidimensionalen Raum haben, definiert. Das Maß enthält beispielsweise die paarweisen Abstände zwischen den Positionen im dreidimensionalen Raum. Damit kann einer Gruppe von Positionen (bzw. Übereinstimmungen) ein Maß zugeordnet werden. (Im Falle der paarweisen Abstände ist das Maß ein Vektor von paarweisen Abständen, dessen Dimension von der Anzahl von Übereinstimmungen abhängt).
  • Diese Maß wird für die zu lokalisierenden Stellen des Objekts als Referenz für die relative Lage ausgewertet, z.B. zusammen mit der Festlegung der Referenzpunkte pi auf dem Objekt.
  • Dieses Maß kann für Gruppen von Übereinstimmungen ausgewertet werden und für eine Gruppe kann durch Vergleich des Maßes für die Gruppe mit der Referenz eine Qualität der Gruppe ermittelt werden. Beispielsweise wird die euklidische Norm der Differenz der beiden Maße oder Maß-Vektoren genommen. (Hat eine Gruppe weniger Übereinstimmungen als die Menge von Referenzpunkten und ist das Maß ein Vektor von paarweisen Abständen, erfolgt der Vergleich mit dem entsprechenden Teilvektor des Vektors für die Referenzpunkte).
  • Je geringer die Differenz zwischen dem Maß für die Gruppe und der Referenz ist, desto ähnlicher sind sich die Lage der Übereinstimmungen der Gruppe und die Lage der Referenzpunkte und desto höher ist die Qualität der Gruppe.
  • Empfängt nun die Steuereinrichtung 106 ein Kamerabild, so bildet sie es mittels des maschinellen Lernmodells auf ein Deskriptorbild ab und ermittelt die Übereinstimmungen mit den Referenzdeskriptoren. Dann gruppiert sie die Übereinstimmungen zu Gruppen.
  • Dies erfolgt gemäß verschiedener Ausführungsformen gemäß einer Graph-Repräsentation, bei der Knoten Gruppen entsprechen. Gewichtete Kanten zwischen jeweils zwei Knoten (und damit jeweils zwei Gruppen) geben an, dass zwei Gruppen zu einer Gruppe kombiniert werden können, wobei das Gewicht einer Kante zwischen zwei Knoten (und damit Gruppen) angibt, wie hoch die die Abweichung zum Referenzmaß der resultierenden Gruppe ist, wenn die beiden Gruppen kombiniert werden.
  • Die Steuereinrichtung 106 beginnt damit, einen Graph mit den folgenden Daten zu erzeugen:
    • (A1) Jede Übereinstimmung wird als eigene Gruppe betrachtet und fügt somit dem Graphen einen Knoten hinzu
    • (A2) Übereinstimmungen für unterschiedliche Referenzdeskriptoren werden durch Kanten verbunden, d.h. es existiert keine Kante zwischen Übereinstimmungen für denselben Referenzdeskriptor. Das Kantengewicht wird gesetzt durch Auswertung des Maßes für die Gruppe, die die beiden durch die Kante verbundenen Übereinstimmungen enthält, und Differenzbildung mit dem Referenzmaß (und ggf. der Anwendung einer Norm auf die Differenz im Falle von Maßen in Vektorform mit mehreren Komponenten).
  • Die Steuereinrichtung 106 aktualisiert den Graphen dann wiederholt wie folgt:
    • (B1) Finde ein Paar von Gruppen, die zu einer Gruppe mit höchster Qualität kombiniert werden können, d.h. finde die Kante im Graphen mit minimalem Gewicht.
    • (B2) Kombiniere das gefundene Paar von Gruppen durch:
      • (B2a) Hinzufügen eines neuen Knotens für die kombinierte Gruppe
      • (B2b) Hinzufügen einer neuen Kante zwischen dem neuen Knoten und jedem anderen Knoten, der einer Gruppe entspricht, die nur Übereinstimmungen für Referenzdeskriptoren enthält, für die die kombinierte Gruppe keine Übereinstimmungen enthält
      • (B2c) Setzen der Kantengewichte (analog zu A2) für die verbundenen Gruppen.
  • Zu jedem Zeitpunkt während dieses Verfahrens kann die Steuereinrichtung das bisher beste Ergebnis für die Zuordnung von Übereinstimmungen zu Zielinstanzen aus dem aktuellen Graphen wie folgt ausgeben:
    • (C1) Ordne die Gruppen (primär) nach absteigender Anzahl von Übereinstimmungen und (sekundär) absteigender Qualität,
    • (C2) Wähle die erste Gruppe in der Liste, gib sie als Teil des Ergebnisses aus und entferne sie von der Liste,
    • (C3) Entferne alle restlichen Gruppen, die mindestens eine Übereinstimmung für einen Referenzdeskriptor aufweisen, für die die in (C2) gewählte Gruppe eine Übereinstimmung aufweist,
    • (C4) Wiederhole (C1-C3) für die verbleibenden Gruppen bis keine Gruppen mehr übrig sind oder bis zu einer vorgegebenen minimalen Gruppengröße.
  • Um die Effizienz zu erhöhen, kann das Aktualisieren (B1-B2c) wie folgt erweitert werden.
  • Erstens kann ein Zuschneiden (Pruning) nach (B2) hinzugefügt werden, das alle Knoten (Gruppen) aus dem Graphen entfernt, die eine Übereinstimmung enthalten, die in einer der Gruppen des Paares enthalten ist, falls die kombinierte Gruppe eine Übereinstimmung für jeden Referenzdeskriptor enthält, d. h. vollständig ist. Es kann gezeigt werden, dass diese Übereinstimmungen nicht zu einer (oder mehreren) anderen Gruppe kombiniert werden können, die eine bessere Qualität aufweisen würden. Dieses Zuschneiden hat also keinen qualitativen Nachteil und kann immer berücksichtigt werden.
  • Zweitens kann das Aktualisieren „gierig“ ausgeführt werden, indem das obige Zuschneiden für jeden Kombinationsschritt (B2) unabhängig von der Anzahl der gruppierten Übereinstimmungen durchgeführt wird (also auch wenn die kombinierte Gruppe nicht vollständig ist). Dadurch wird die Rechenkomplexität erheblich reduziert (linear statt exponentiell), aber die resultierenden Gruppen können falsch sein, wenn die Zielinstanzen nahe beieinander liegen (z.B. näher als die Größe des Bereichs, den die zu lokalisierenden Stellen beschreiben).
  • 5 zeigt ein Beispiel für das Gruppieren von Übereinstimmungen.
  • Zunächst werden in einem ersten Kamerabild 503 vier Referenzpunkte 502 (z.B. manuell durch einen Benutzer) eines Objekts 501 ausgewählt. Durch Abbilden des Kamerabilds 503 auf ein Deskriptorbild mittels des maschinellen Lernmodells 112 ermittelt die Steuereinrichtung 106 zugehörige Referenzdeskriptoren.
  • Später empfängt die Steuereinrichtung 106 ein zweites Kamerabild 504, das zwei Instanzen 505 desselben Objekttyps enthält. Sie bildet das zweite Kamerabild 504 auf ein Deskriptorbild ab und findet Übereinstimmungen mit den Referenzdeskriptoren. In 5 sind die Übereinstimmungen für denselben Referenzdeskriptor von 1 bis 2 bzw. von 1 bis 3 durchnummeriert.
  • Die Steuereinrichtung 106 konstruiert dann einen Graphen 506 nach (A1) und (A2). Diesen aktualisiert sie dann wiederholt zu aktualisierten Graphen durch Erzeugen größerer und letztlich vollständiger kombinierter Gruppen und Zuschneiden, bis nur noch einzelne Gruppen verbleiben. Diese Gruppen definieren die ermittelten Zuordnungen und die Steuereinrichtung lokalisiert daraus beispielsweise Bereiche 510 auf den Objektinstanzen und steuert den Roboterarm entsprechend.
  • Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in 6 veranschaulicht bereitgestellt.
  • 6 zeigt ein Ablaufdiagramm 600 für ein Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte.
  • In 601 werden die zu lokalisierenden Stellen für einen Objekttyp der Objekte festgelegt.
  • In 602 wird eine Referenz für die relative Lage der zu findenden Stellen bestimmt.
  • In 603 wird für den Objekttyp ein maschinelles Lernmodell zum Abbilden von Kamerabildern, wobei jedes Kamerabild ein Objekt des Objekttyps zeigt, auf Deskriptorbilder, trainiert, wobei ein Deskriptorbild, auf das ein Kamerabild abzubilden ist, für eine Stelle des Objekts, die das Kamerabild an einer Bildposition zeigt, an der Bildposition einen Deskriptor der Stelle des Objekts aufweist.
  • In 604 wird für jede zu lokalisierenden Stelle der Deskriptor an der zu lokalisierenden Stelle des Objekts als Referenzdeskriptor für die zu lokalisierende Stelle festgelegt.
  • In 605 wird ein Kamerabild von ein oder mehreren Objekten des Objekttyps empfangen.
  • In 606 wird das Kamerabild mittels des trainierten maschinellen Lernmodells auf ein Deskriptorbild abgebildet.
  • In 607 werden für jedes Referenzdeskriptor Übereinstimmungen zwischen Deskriptoren des Deskriptorbilds mit dem Referenzdeskriptor ermittelt.
  • In 608 werden die Übereinstimmungen für unterschiedliche Referenzdeskriptoren zu Gruppen gruppiert, durch, ausgehend von Gruppen, die jeweils aus einer Übereinstimmung bestehen, sukzessives Zusammenfassen von Gruppen durch
    • Zusammenfassen einer Gruppe von Übereinstimmungen für einen ersten Teil der Referenzdeskriptoren mit derjenigen Gruppe aus einer Menge von Gruppen mit Übereinstimmungen eines zweiten Teils der Referenzdeskriptoren, für die die relative Lage der in ihr enthaltenen Übereinstimmungen zusammen mit den Übereinstimmungen aus der Gruppe für den ersten Teil von Referenzdeskriptoren am besten mit der Referenz für die relative Lage übereinstimmt.
  • In 609 werden die Übereinstimmungen einer Gruppe als die für ein jeweiliges Objekt gefundenen Stellen ausgegeben.
  • Gemäß verschiedenen Ausführungsformen werden in anderen Worten Übereinstimmungen von Deskriptoren mit unterschiedlichen Referenzdeskriptoren derart gruppiert, dass die Lage der Übereinstimmungen (d.h. die Lage der Positionen der Deskriptoren im Deskriptorbild, die mit den Referenzdeskriptoren übereinstimmen) möglichst gut mit einer vorgegebenen Referenz für die relative Lage übereinstimmt. Beispielsweise können die Form und Größe einer Bounding-Box eines Barcodes vorgegeben werden und die Übereinstimmungen werden dann so zu Gruppen gruppiert, dass jede Gruppe einen Bereich definiert, der zu der vorgegebenen Bounding-Box passt. Wie oben erläutert brauchen die Gruppen nicht vollständig gruppiert werden, sondern es kann auch bei teilweiser Gruppierung schon ein Zwischenergebnis ausgegeben werden (d.h. die Steuereinrichtung kann auch unter Verwendung eines Zwischenergebnisses den Roboterarm steuern). In dem Fall eines Zwischenergebnisses definiert eine Gruppe z.B. erst eine Kante der Bounding-Box aber noch nicht die komplette Bounding-Box.
  • Die Objekte sind Instanzen des Objekttyps, haben also z.B. alle dieselbe durch den Objekttyp vorgegebene Form. Beispielsweise sind die Objekte Bauteile eines mit einer bestimmten Form. Es kann aber auch Unterschiede in der Form geben, solange die Topologie der Objekte gleich ist. Beispielsweise kann der Objekttyp „Schuh“ sein, die zu lokalisierenden Stellen Randpunkte der Schuhzunge und die Objekte können verschiedene Schuhe sein.
  • Das maschinelle Lernmodell ist beispielsweise ein neuronales Netz. Es können aber auch andere maschinelle Lernmodelle verwendet werden, die entsprechend trainiert werden.
  • Gemäß verschiedenen Ausführungsformen weist das maschinelle Lernmodell Pixeln des Objekts (in der Bildebene des jeweiligen Kamerabilds) Deskriptoren zu. Dies kann als indirektes Codieren der Oberflächentopologie des Objekts angesehen werden. Diese Verbindung zwischen Deskriptoren und der Oberflächentopologie kann durch Rendern explizit vorgenommen werden, um die Deskriptoren auf die Bildebene abzubilden. Es sollte angemerkt werden, dass Deskriptoren an Flächen (d. h. Punkten, die keine Vertices sind) des Objektmodells mittels Interpolation bestimmt werden können. Wenn beispielsweise eine Fläche durch 3 Vertices des Objektmodells mit ihren jeweiligen Deskriptoren y1, y2, y3 gegeben ist, dann kann an einem beliebigen Punkt der Fläche der Deskriptor y als eine gewichtete Summe dieser Werte
    w1 · y1 + w2 · y2 + w3 · y3 berechnet werden. Mit anderen Worten werden die Deskriptoren an den Vertices interpoliert.
  • Zum Erzeugen von Bildpaaren für Trainingsdaten für das maschinelle Lernmodell wird beispielsweise ein Bild des Objekts (z. B. ein RGB-Bild) einschließlich des Objekts (oder mehrerer Objekte) mit bekanntem 3D(z. B. CAD)-Modell und bekannter Stellung (in einem globalen (d. h. Welt-) Koordinatensystem auf ein (dichtes) Deskriptorbild abgebildet, das in dem Sinne optimal ist, dass es durch eine Suche nach Deskriptoren zum Minimieren der Abweichung geometrischer Eigenschaften (insbesondere der Nähe von Punkten des Objekts) zwischen dem Objektmodell und seiner Repräsentation (Einbettung) im Deskriptorraum erzeugt wird. Im praktischen Gebrauch wird die theoretische optimale Lösung zur Minimierung im Allgemeinen nicht lokalisiert werden, da die Suche auf einen gewissen Suchraum beschränkt ist. Nichtsdestotrotz wird eine Schätzung des Minimums innerhalb der Beschränkungen einer praktischen Anwendung (verfügbare Berechnungsgenauigkeit, maximale Anzahl von Iterationen usw.) bestimmt.
  • Jedes Trainingsdatenbildpaar umfasst ein Trainingseingabebild des Objekts und ein Zielbild, wobei das Zielbild durch Projizieren der in dem Trainingseingabebild sichtbaren Deskriptoren der Vertices auf die Trainingseingabebildebene gemäß der Stellung, die das Objekt in dem Trainingseingabebild aufweist, erzeugt wird. Die Bilder zusammen mit ihren assoziierten Zielbildern werden zum überwachten Trainieren des maschinellen Lernmodells verwendet.
  • Das maschinelle Lernmodell wird somit trainiert, um eindeutige Merkmale eines Objekts (oder mehrerer Objekte) zu erkennen. Diese Informationen können für verschiedene Anwendungen bei der Robotersteuerung mittels Evaluierung des maschinellen Lernmodells in Echtzeit verwendet werden, z. B. Vorhersagen einer Objektgreifstellung zur Montage. Es sollte angemerkt werden, dass der überwachte Trainingsansatz das explizite Codieren von Symmetrieinformationen ermöglicht.
  • Das Verfahren von 6 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten beinhalten. Der Ausdruck „Datenverarbeitungseinheit“ kann als eine beliebige Art von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Beispielsweise können die Daten oder Signale gemäß mindestens einer (d. h. einer oder mehr als einer) spezifischen Funktion bearbeitet werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Mischsignalschaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), ein programmierbares Gate-Array (FPGA), eine integrierte Schaltung oder eine beliebige Kombination davon beinhalten oder daraus gebildet werden. Eine beliebige andere Weise zum Implementieren der jeweiligen Funktionen, die nachstehend ausführlicher beschrieben wird, kann auch als eine Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es versteht sich, dass ein oder mehrere der hierin ausführlich beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit über eine oder mehrere spezifische durch die Datenverarbeitungseinheit durchgeführte Funktionen ausgeführt (z. B. implementiert) werden können.
  • Verschiedene Ausführungsformen können Sensorsignale von verschiedenen Sensoren wie etwa einer (z. B. RGB oder RGB-D) Kamera, einem Video-, Radar-, LiDAR-, Ultraschall-, Wärmebildtechnik-Sensor usw. empfangen und verwenden, um beispielsweise Sensordaten zu erhalten, die ein Objekt zeigen. Ausführungsformen zum autonomen Steuern eines Roboters verwendet werden, z. B. eines Robotermanipulators, um verschiedene Manipulationsaufgaben unter verschiedenen Szenarios zu erzielen. Insbesondere sind Ausführungsformen bei der Steuerung und Überwachung der Ausführung von Manipulationsaufgaben z. B. bei Montagelinien, anwendbar.
  • Obwohl spezifische Ausführungsformen hierin veranschaulicht und beschrieben wurden, sollte ein Durchschnittsfachmann erkennen, dass eine Vielfalt alternativer und/oder äquivalenter Implementierungen für die spezifischen gezeigten und beschriebenen Ausführungsformen ersetzt werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll jegliche Anpassungen oder Variationen der spezifischen hierin besprochenen Ausführungsformen abdecken. Daher wird beabsichtigt, dass diese Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt wird.

Claims (12)

  1. Verfahren zum Lokalisieren von Stellen von Objekten aus Kamerabildern der Objekte aufweisend: Festlegen der zu lokalisierenden Stellen für einen Objekttyp der Objekte; Bestimmen einer Referenz für die relative Lage der zu findenden Stellen; Trainieren, für den Objekttyp, eines maschinellen Lernmodells zum Abbilden von Kamerabildern, wobei jedes Kamerabild ein Objekt des Objekttyps zeigt, auf Deskriptorbilder, wobei ein Deskriptorbild, auf das ein Kamerabild abzubilden ist, für eine Stelle des Objekts, die das Kamerabild an einer Bildposition zeigt, an der Bildposition einen Deskriptor der Stelle des Objekts aufweist; Festlegen, für jede zu lokalisierenden Stelle, des Deskriptors an der zu lokalisierenden Stelle des Objekts als Referenzdeskriptor für die zu lokalisierende Stelle; Empfangen eines Kamerabilds von ein oder mehreren Objekten des Objekttyps; Abbilden des Kamerabilds auf ein Deskriptorbild mittels des trainierten maschinellen Lernmodells; Ermitteln, für jeden Referenzdeskriptor, von Übereinstimmungen zwischen Deskriptoren des Deskriptorbilds mit dem Referenzdeskriptor; Gruppieren der Übereinstimmungen für unterschiedliche Referenzdeskriptoren zu Gruppen, durch, ausgehend von Gruppen, die jeweils aus einer Übereinstimmung bestehen, sukzessives Zusammenfassen von Gruppen durch Zusammenfassen einer Gruppe von Übereinstimmungen für einen ersten Teil der Referenzdeskriptoren mit derjenigen Gruppe aus einer Menge von Gruppen mit Übereinstimmungen eines zweiten Teils der Referenzdeskriptoren, für die die relative Lage der in ihr enthaltenen Übereinstimmungen zusammen mit den Übereinstimmungen aus der Gruppe für den ersten Teil von Referenzdeskriptoren am besten mit der Referenz für die relative Lage übereinstimmt; und Ausgeben der Übereinstimmungen einer Gruppe als die für ein jeweiliges Objekt lokalisierten Stellen.
  2. Verfahren nach Anspruch 1, wobei die relative Lage der zu findenden Stellen eine Lage der zu findenden Stellen im dreidimensionalen Raum ist.
  3. Verfahren nach Anspruch 1, wobei die relative Lage die paarweisen Abstände der zu lokalisierenden Stellen bzw. der lokalisierten Stellen im dreidimensionalen Raum aufweist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, aufweisend nach jedem Zusammenfassen von zwei Gruppen, entfernen von den Gruppen die eine Übereinstimmung enthalten, die in einer der zwei Gruppen des Paares enthalten ist.
  5. Verfahren nach einem der Ansprüche 1 bis 3, aufweisend nach jedem Zusammenfassen von zwei Gruppen, entfernen von den Gruppen die eine Übereinstimmung enthalten, die in einer der zwei Gruppen des Paares enthalten ist, falls die kombinierte Gruppe, zu der die beiden Gruppen zusammengefasst werden, eine Übereinstimmung für jeden Referenzdeskriptor enthält.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei das Ausgeben das wiederholte Durchführen aufweist von, bis keine Gruppen mehr übrig sind oder die verbleibenden Gruppen eine vorgegebene minimalen Gruppengröße erreicht haben: Ausgeben der Gruppe, für die unter allen Gruppen mit maximaler Anzahl von Übereinstimmungen die Übereinstimmungen die beste Lage haben und Entfernen der ausgegebenen Gruppe und aller Gruppen, die mindestens eine Übereinstimmung enthalten, die auch die ausgegebene Gruppe enthält.
  7. Verfahren nach einem der Ansprüche 1 bis 6, aufweisend Organisieren der Gruppen in einem Graphen, wobei jede Gruppe einem Knoten zugeordnet ist, Kanten zwischen Knoten vorgesehen sind, denen Gruppen zugeordnet sind, die Übereinstimmungen für unterschiedliche Teile der Referenzdeskriptoren aufweisen, wobei das Gewicht einer Kante zwischen zwei Gruppen angibt, wie gut die relative Lage der Übereinstimmungen aus beiden Gruppen zusammen mit der Referenz für die relative Lage übereinstimmt.
  8. Verfahren zum Steuern eines Roboters, das Folgendes aufweist: Lokalisieren von Stellen eines durch den Roboter zu behandelnden Objekts nach einem der Ansprüche 1 bis 7, Ermitteln einer Pose des Objekts aus den lokalisierten Stellen und Steuern des Roboters in Abhängigkeit von der ermittelten Pose und/oder Ermitteln eines Bereichs des Objekts aus den lokalisierten Stellen und Steuern des Roboters in Abhängigkeit des ermittelten Bereichs.
  9. Software- oder Hardware-Agent, insbesondere Roboter, der Folgendes aufweist: eine Kamera, die zum Bereitstellen von Kamerabildern von Objekten eingerichtet ist; eine Steuereinrichtung, die zum Durchführen des Verfahrens nach einem der Ansprüche 1 bis 8 eingerichtet ist.
  10. Software- oder Hardware-Agent nach Anspruch 9, der mindestens einen Aktor aufweist, wobei die Steuereinrichtung zum Steuern des mindestens einen Aktors unter Verwendung der lokalisierten Stellen eingerichtet ist.
  11. Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 8 durchführt.
  12. Computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 8 durchführt.
DE102021109036.9A 2021-04-12 2021-04-12 Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte Pending DE102021109036A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021109036.9A DE102021109036A1 (de) 2021-04-12 2021-04-12 Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte
CN202210373602.6A CN115205371A (zh) 2021-04-12 2022-04-11 用于根据对象的摄像机图像定位对象的部位的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021109036.9A DE102021109036A1 (de) 2021-04-12 2021-04-12 Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte

Publications (1)

Publication Number Publication Date
DE102021109036A1 true DE102021109036A1 (de) 2022-10-13

Family

ID=83361800

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021109036.9A Pending DE102021109036A1 (de) 2021-04-12 2021-04-12 Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte

Country Status (2)

Country Link
CN (1) CN115205371A (de)
DE (1) DE102021109036A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130156262A1 (en) 2011-12-19 2013-06-20 Yuichi Taguchi Voting-Based Pose Estimation for 3D Sensors
US20170032220A1 (en) 2015-07-28 2017-02-02 GM Global Technology Operations LLC Method for object localization and pose estimation for an object of interest

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130156262A1 (en) 2011-12-19 2013-06-20 Yuichi Taguchi Voting-Based Pose Estimation for 3D Sensors
US20170032220A1 (en) 2015-07-28 2017-02-02 GM Global Technology Operations LLC Method for object localization and pose estimation for an object of interest

Also Published As

Publication number Publication date
CN115205371A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
DE102019130046B4 (de) Robotersytem mit verbessertem Abtastmechanismus
DE102015111080B4 (de) Robotervorrichtung mit maschinellem Sehen
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE112018000332T5 (de) Dichtes visuelles slam mit probabilistic-surfel-map
DE102015015194A1 (de) Bildverarbeitungsvorrichtung und -verfahren und Programm
DE112017002154T5 (de) Mobiler Roboter und Steuerverfahren für einen mobilen Roboter
DE112011100652T5 (de) Dreidimensionale messvorrichtung, verarbei- tungsverfahren und nichtflüchtiges computer- lesbares speichermedium
DE102020101767B4 (de) Steuerverfahren und steuerung für ein robotersystem
DE102013203381A1 (de) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration
DE102021103726B4 (de) Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
DE102021107333A1 (de) 3d-stellungsabschätzung mit einer 2d-kamera
Mishra et al. Active segmentation for robotics
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
DE102020208211A1 (de) Vorrichtungen und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erkennen einer Objekttopologie eines Objekts aus einem Bild des Objekts
EP4094897B1 (de) Hand-auge-kalibrierung von kamerageführten apparaturen
EP4177013A1 (de) Ansteuerung eines industrieroboters für eine greifaufgabe
DE102021107479A1 (de) Erfassung einer dreidimensionalen pose durch mehrere 2d-kameras
DE102021107351A1 (de) System zur eigenschaftserkennung durch deep-learning und vektorfeldschätzung
DE102021202570A1 (de) Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
DE102021109036A1 (de) Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte
DE102021212859A1 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erzeugen von Deskriptorbildern zu Bildern von Objekten
DE102022201719A1 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Erzeugen von Deskriptorbildern zu Bildern von Objekten
EP2059905A2 (de) Verfahren zur lagebestimmung von objeckten im dreidimensionalen raum
DE102021201921A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06V0030190000

Ipc: G06V0010762000

R163 Identified publications notified