-
Die vorliegende Offenbarung bezieht sich auf Verfahren zum Aufnehmen eines Objekts mittels einer Robotervorrichtung.
-
Um eine flexible Herstellung oder Bearbeitung von Objekten durch einen Roboter zu ermöglichen, ist es wünschenswert, dass der Roboter fähig ist, ein Objekt ungeachtet der Lage, mit der das Objekt in den Arbeitsraum des Roboters platziert wird, aufzunehmen (z.B. zu greifen) und auch in der Lage ist, noch nicht gesehene Varianten des Objekts aufzunehmen.
-
Es gibt mehrere Verfahren, um beispielsweise bei der Entnahme von Gegenständen durch einen Roboter aus einem Behälter (engl. bin picking) die vielversprechendsten Stellen für das Greifen für eine erfolgreiche Entnahme eines Gegenstands aus dem Behälter zu erkennen. Diese Verfahren arbeiten typischerweise mit Farb(z.B. RGB)- und Tiefenbildern des jeweiligen Szenarios, wobei in einigen Fällen entweder Farb- oder Tiefenbilder ausreichen. Darüber hinaus stützen sich die meisten dieser Ansätze auf KI-Methoden, z. B. die Verwendung neuronaler Netze zum Erlernen einer Zuordnung zwischen Eingabedaten und vielversprechenden Greifpunkten.
-
Eine Schwierigkeit bei diesen Ansätzen ist die Generalisierung auf unterschiedliche Eingaben, z. B. neue Szenen/Hintergründe, neue Formen von Objekten, unterschiedliches Aussehen/Farben von Objekten usw. Um einige dieser Schwierigkeiten in Hinblick auf Generalisierung abzuschwächen können Vorverarbeitungsschritte angewendet werden, um relevante Aspekte der jeweiligen Roh-Kameradaten hervorzuheben.
-
Entsprechende effektive Ansätze zum Vorverarbeiten von Bildern von Objekten, die die Erkennung von Aufnehmbereichen durch ein neuronales Netzwerk ermöglichen, sind deshalb wünschenswert.
-
Offenbarung der Erfindung
-
Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Aufnehmen eines Objekts mittels einer Robotervorrichtung bereitgestellt, aufweisend Beschaffen mindestens eines Tiefenbilds des Objekts, Ermitteln, für jeden mehrerer Punkte des Objekts, des Werts eines Maßes für die Streuung von Oberflächen-Normalenvektoren in einem Bereich um den Punkt des Objekts, Zuführen der ermittelten Werte zu einem neuronalen Netzwerk, eingerichtet, in Reaktion auf eine Eingabe, die Streuungsmaßwerte enthält, eine Angabe von Objektstellen zum Aufnehmen auszugeben, Ermitteln von einer Stelle des Objekts zum Aufnehmen des Objekts aus einer Ausgabe, die das neuronale Netzwerk in Reaktion auf die Zufuhr der ermittelten Werte ausgibt, und Steuern der Robotervorrichtung zum Aufnehmen des Objekts an der ermittelten Stelle.
-
Das oben beschriebene Verfahren ermöglicht durch die Verwendung einer Vorverarbeitung von Bilddaten in Form der Ermittlung von Streuungsmaßwerten von (Oberflächen-)Normalenvektoren eine Detektion von Stellen zum Aufnehmen von Objekten, die robuster ist gegenüber Änderungen Bildbereich und eine bessere Verallgemeinerung auf neue (d.h. im Training nicht gesehene) Szenen und Objekte ermöglicht, die ein anderes Aussehen (als die im Training gesehenen) haben, aber ähnliche Eigenschaften hinsichtlich des Aufnehmens haben.
-
Das Resultat der Vorverarbeitung (d.h. die Berechnung der Streuungsmaßwerte), mit denen Bildeingabedaten des neuronalen Netzwerks beispielsweise ergänzt wird, führt zu aussagekräftigeren Eingabedaten für das neuronale Netzwerk. Das Training auf der Grundlage solcher Eingabedaten wird deshalb beschleunigt und das neuronale Netzwerk kann verhältnismäßig klein gewählt werden, da die Abbildung von Eingabe des neuronalen Netzwerks auf die Ausgabe des neuronale Netzwerks weniger kompliziert bzw. direkter ist.
-
Die durchgeführte Verarbeitung, insbesondere die von dem neuronalen Netz durchgeführte Inferenz, wird zur Detektion von Stellen oder Bereichen oder auch Posen zum Aufnehmen von Objekten verwendet. Dies geschieht modellfrei, d.h. allein durch die Beurteilung der Aufnehmbarkeit von Stellen des Objekts aus den Eingabebildern (z.B. RGB- und Tiefeneingabe oder nur aus der Tiefe) anstelle des Abgleichs mit einem Zielobjektmodell. Die Bestimmung der Aufnehmpose ist beispielsweise für Anwendungen relevant, bei der ein Roboter Gegenstände aus einem Behälter entnimmt, um die Aktionen für das Aufnehmen entsprechend zu planen. Die Erkennung von Bestimmung von Stellen oder Bereichen (oder letztlich der Pose) zum Aufnehmen kann auch für weitere Roboteranwendungen relevant sein, z. B. für die Montage, wo ein Roboter Objekte greifen muss. Anwendungen sind nicht auf einen bestimmten Typ von Aufnehmvorrichtung (z.B. Greifertyp) beschränkt.
-
Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
-
Ausführungsbeispiel 1 ist ein Verfahren zum Aufnehmen eines Objekts mittels einer Robotervorrichtung wie oben beschrieben.
-
Ausführungsbeispiel 2 ist ein Verfahren nach Ausführungsbeispiel 1, wobei das Maß für die Streuung die Standardabweichung oder die Varianz der Oberflächen-Normalenvektoren in dem Bereich um den Punkt des Objekts ist.
-
Die Standardabweichung und die Varianz sind bewährte Maße für die Streuung von Größen.
-
Ausführungsbeispiel 3 ist ein Verfahren nach Ausführungsbeispiel 1 oder 2, wobei die Ausgabe des neuronalen Netzes eine Aufnehmqualität für Punkte des Objekts angibt.
-
Aus dieser Ausgabe kann dann (von einer entsprechenden Steuereinrichtung) eine (z.B. die beste) Aufnehmstelle ausgewählt werden, wobei die Größe des erforderlichen Bereichs (z.B. zum Ansaugen) berücksichtigt werden kann. Beispielsweise kann ein Bereich mit ausreichender Größe gewählt werden, in dem die Aufnehmqualität im Mittel am höchsten ist.
-
Ausführungsbeispiel 4 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 3, wobei das neuronale Netzwerk eingerichtet ist, in Reaktion auf eine Eingabe, die Streuungsmaßwerte und Tiefenbilddaten enthält, eine Angabe von Objektstellen zum Aufnehmen auszugeben, und wobei die ermittelten Werte dem neuronalen Netz zusammen mit dem Tiefenbild zugeführt werden;
-
Die Berücksichtigung des Tiefenbilds selbst durch das neuronale Netz kann die Genauigkeit der Bestimmung von Aufnehmstellen erhöhen.
-
Ausführungsbeispiel 5 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 4, wobei das neuronale Netzwerk eingerichtet ist, in Reaktion auf eine Eingabe, die Streuungsmaßwerte und Farbbilddaten enthält, eine Angabe von Objektstellen zum Aufnehmen auszugeben, und wobei die ermittelten Werte dem neuronalen Netz zusammen mit einem oder mehreren Farbbildern des Objekts zugeführt werden.
-
Die Berücksichtigung von ein oder mehreren Farbbildern durch das neuronale Netz kann die Genauigkeit der Bestimmung von Aufnehmstellen ebenfalls erhöhen.
-
Ausführungsbeispiel 6 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 5, wobei das Beschaffen des Tiefenbildes die Vorverarbeitung eines von einer Kamera empfangenen Kamera-Tiefenbildes zu dem Tiefenbild aufweist, wobei die Vorverarbeitung ein Auffüllen von Löchern, eine Rauschreduzierung und/oder eine Entfernung von Ausreißern aufweist.
-
Dadurch wird die Zuverlässigkeit der Bestimmung von Aufnehmstellen erhöht.
-
Ausführungsbeispiel 7 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6, wobei das Ermitteln der Werte des Maßes für die Streuung von Oberflächen-Normalenvektoren eine Umwandlung von Pixeln des Tiefenbilds in 3D-Punkte aufweist und das Ermitteln von Oberflächen-Normalenvektoren aus den 3D-Punkten aufweist.
-
Dadurch kann die Robustheit und Genauigkeit der Bestimmung der Oberflächen-Normalenvektoren und letztendlich der Werte des Streuungsmaßes erhöht werden. Insbesondere können intrinsische und extrinsische Parameter einer Kamera, mit der das Tiefenbild aufgenommen wurde, berücksichtigt werden.
-
Ausführungsbeispiel 8 ist ein Verfahren nach einem der Ausführungsbeispiele 1 bis 7, wobei die Robotervorrichtung eine Saugvorrichtung aufweist und gesteuert wird, das Objekt an der ermittelten Stelle mittels der Saugvorrichtung aufzunehmen.
-
Die vorgeschlagene Herangehensweise, Streumaße der Oberflächen-Normalenvektoren zu berücksichtigen, trägt besonders gut den physikalischen Erfordernissen von Saug-Aufnehmvorrichtungen Rechnung, bei denen abgedichtetes Vakuum zwischen der Aufnehmvorrichtung und der Objektoberfläche gebildet werden muss, um das Objekt anzuheben, und deshalb die Oberfläche beispielsweise nicht zu rau sein darf (d.h. die Streuung der Normalenvektoren sollte gering sein).
-
Ausführungsbeispiel 9 ist eine Steuereinrichtung, die eingerichtet ist, ein Verfahren nach einem der Ausführungsbeispiele 1 bis 8 durchzuführen.
-
Ausführungsbeispiel 10 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 8 durchführt.
-
Ausführungsbeispiel 11 ist ein computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 8 durchführt.
-
In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den ganzen verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
- 1 zeigt einen Roboter.
- 2 veranschaulicht eine Datenverarbeitung zum Aufnehmen eines Objekts durch einen Roboter.
- 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Aufnehmen eines Objekts mittels einer Robotervorrichtung veranschaulicht.
-
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige 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 genauer 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 Stütze 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 Stütze 105 befinden) können eine Positionierungsvorrichtung bilden, sodass, zusammen mit dem Endeffektor 104, der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt ist. 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 Stütze 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 „Steuerung“ 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 Steuerung 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 ist das maschinelle Lernmodell 112 dazu ausgelegt und trainiert, dem Roboter 100 zu ermöglichen, eine Stellen eines Objekts 113 zu erkennen, an denen der Roboter 100 das Objekt 113 aufnehmen kann (oder auf andere Weise damit interagieren kann, z.B. lackieren).
-
Der Roboter 100 kann zum Beispiel mit einer oder mehreren Kameras 114 ausgestattet sein, die es ihm ermöglichen, Bilder seines Arbeitsraums aufzunehmen. Die 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.
-
Gemäß verschiedenen Ausführungsformen ist das maschinelle Lernmodell 112 ein neuronales Netz 112 und die Steuereinrichtung 106 führt dem neuronalen Netz 112 Eingabedaten basierend auf den ein oder mehreren digitalen Bildern (Farbbilder, Tiefenbilder oder beides) eines Objekts 113 zu und das neuronale Netz 112 ist dazu eingerichtet, Stellen (bzw. Bereiche) des Objekts 113 anzugeben, die für das Aufnehmen des Objekts 113 geeignet sind. Beispielsweise kann das neuronale Netz ein Eingabebild, das das Objekt 113 zeigt, entsprechend segmentieren, z.B. jedem Pixel einen Wert („Aufnehmqualitätswert“) zuordnen, der anzeigt, wie gut der Pixel zum Aufnehmen geeignet ist. Die Steuereinrichtung 106 kann dann einen Bereich ausreichender Größe zum als Stelle zum Aufnehmen wählen, in dem diese Werte ausreichend hoch sind (z.B. über einem Schwellwert liegen, im Mittel maximal sind, etc.).
-
Gemäß verschiedenen Ausführungsformen werden die Roh-Bilddaten, die von den Kameras geliefert werden, von der Steuereinrichtung 106 vorverarbeitet, anstatt sie direkt dem neuronalen Netz 112 als Eingabe zuzuführen. Das Resultat dieser Vorverarbeitung wird (ggf. zusammen mit zumindest einem Teil der Roh-Bilddaten) als Eingabe des neuronalen Netzes 112 verwendet, sodass eine Qualitätsverbesserung hinsichtlich der Eingabedaten des neuronalen Netzes 112 erreicht wird. Qualitätsverbesserung bedeutet hierbei, dass die Roh-Bilddaten auf eine oder mehrere der folgenden Arten verändert werden:
- (1) Rauschen und Artefakte werden entfernt, die bei Daten aus bestimmten Quellen stärker vorhanden sein können, z. B. durch Tiefenkomplettierung, um fehlende Daten zu entfernen, die für einen bestimmten Kameratyp charakteristisch sind, oder durch künstliche Erzeugung solcher Artefakte in synthetischen Daten. Diese Form der Vorverarbeitung, die auch als Bildverbesserungs-Vorverarbeitung bezeichnet wird, ist auch eine nützliche Vorbereitung für die Berechnungen, die im Folgenden beschrieben werden.
- (2) Die vorverarbeiteten Daten bewirken ein Training des neuronalen Netzes 112 für verschiedene Modalitäten über Farbe und Tiefe hinaus. Eine Modalität, die gemäß verschiedenen Ausführungsformen speziell in Betracht gezogen wird, ist die Standardabweichung (oder ein anderes Maß für die Streuung wie die Varianz) von Normalenvektoren der Oberfläche von in den Bildern gezeigten Objekten. Die Normalvektor-Standardabweichung ist geeignet, die lokale Ebenheit einer Oberfläche darzustellen, und ist somit eine besonders relevante Information für die Greifqualität (bzw. für die Qualität eines Objektbereichs für das Ansaugen). Weitere Modalitäten können sich aus anderen Vorverarbeitungsschritten ergeben, z. B. aus Objektmasken oder Hintergrundsegmentierung.
-
2 veranschaulicht eine Datenverarbeitung zum Aufnehmen eines Objekts durch einen Roboter 201 (entsprechend dem Roboter 100).
-
Eine oder mehrere Kameras 202, beispielsweise entsprechend der Kamera 114, liefern Roh-Bilddaten (d.h. ein oder mehrere Bilder) 203. Es wird angenommen, dass die Roh-Bilddaten insbesondere Tiefeninformation über ein Objekt 204, das von dem Roboter 201 aufgenommen werden soll, enthalten.
-
Aus diesen Tiefeninformationen werden in einer Vorverarbeitung 205 Normalenvektoren der Oberfläche des Objekts 204 und deren Standardabweichungen (in verschiedenen Bereichen der Oberfläche) 206 ermittelt. Diese wird einem neuronalen Netz 207 als Eingabe zugeführt. Die Eingabe des neuronalen Netzes 207 kann auch Teile der (oder die gesamten) Roh-Bilddaten 203 enthalten oder gemäß vorhergehender Bildverbesserungs-Vorverarbeitungen (z.B. Rauschreduzierung) daraus erzeugter Bilddaten. Wie oben erwähnt können solche vorhergehender Bildverbesserungs-Vorverarbeitungen auch verwendet werden, um Bilddaten zu erzeugen, die dann als Grundlage der Standardabweichungsbestimmung 205 verwendet werden.
-
Das neuronale Netz 201 ist darauf trainiert (z.B. mittels entsprechender Trainings-Eingaben und zugehöriger Ziel-Ausgaben, d.h. Ground-Truth-Labels für überwachtes Lernen), die Eingabe auf eine Ausgabe abzubilden, die Stellen oder Bereiche des Objekts 113 identifiziert, die (z.B. besonders gut) zum Aufnehmen des Objekts geeignet sind.
-
Verschiedene Architekturen können für das neuronale Netz 207 verwendet werden. Das neuronale Netz 207 kann lediglich einen einzelnen Eingangskanal für die Standardabweichungen der Normalenvektoren oder eine Mehrkanaleingabe aufweisen, die die Standardabweichung der Normalenvektoren als Daten eines Kanals zusätzlich zu anderen (z.B. Farbbilddaten und/oder Tiefenbilddaten) enthält. Beispiele sind volle Konvolutionsnetze (engl. fully convolutional networks z. B. UNet, ResNet), die jedem Pixel eines Eingangsbildes einen Wert (der die Eignung der jeweiligen Stelle zum Aufnehmen des gezeigten Objekts anzeigt) zuordnen, um ein Ausgangsbild von der gleichen Größe wie das Eingangsbild zu bilden. Dies ermöglicht eine weitere Verarbeitung der Ausgabe zur Bestimmung einer Aufnehmpose, z. B. durch Auswahl eines globalen Maximums im Ausgangsbild.
-
Etablierte Bildverarbeitungs(z.B. Computervisions)-Algorithmen können für die Vorverarbeitung 205 von Bilddaten (insbesondere Tiefenbilddaten) verwendet werden, um die Standardabweichung der Normalenvektoren zu bestimmen. Zum Berechnen der Normalenvektoren kann der Gradient eines jeweiligen Tiefenbilds numerisch berechnet werden. Es können pixelweise Durchschnittswerte der Normalenvektoren mittels Bild-Konvolution (Faltung) berechnet werden. Die Berechnung der Standardabweichung aus den Normalenvektoren und ihren Durchschnittswerten erfolgt gemäß der dafür definierten und etablierten statistischen Operation.
-
Die Datenverarbeitung bestehend aus (Normalenvektor-Standardabweichungsbestimmungs-)Vorverarbeitung 205 und neuronalem Netz 207 liefert eine Ausgabe, die als Angabe eines Aufnehmbereichs oder einer Aufnehmpose interpretiert werden kann. Sie erhält wie oben erläutert Tiefeninformation des Objekts 204 also z.B. ein digitales Tiefenbild. Das neuronale Netz 207 kann auch zusätzlich ein oder mehrere Farbbilder des Objekts erhalten.
-
Gemäß einer Ausführungsform wird nach Erhalten solcher Bilder 203 Folgendes durchgeführt:
- (A) [Optional] Bildverbesserungs-Vorverarbeitung des empfangenen Tiefenbilds
- (B) Berechnung der Standardabweichung von Normalenvektoren in dem Tiefenbild
- (C) Inferenz durch das neuronale Netz 207 zum Detektieren von vielversprechenden Kandidaten für Aufnehmstellen und/oder -posen
- (D) [Optional] Auswahl einer Aufnehmstelle und/oder -pose aus den detektierten Kandidaten
-
Möglichkeiten für die optionale Bildverbesserungs-Vorverarbeitung, die besonders nützlich für die Berechnung der Normalenvektor-Standardabweichungen sind, sind die Folgenden:
- (A1) Auffüllen von Löchern im Tiefenbild, d. h. von Pixeln mit fehlenden Werten, z. B. durch (A1a) Verwendung von Inpainting-Operationen, (A1b) Verwendung von Werten von nächsten Nachbarn, (A1c) Verwendung von Dilatationsoperationen etc. Das Auffüllen von Löchern verbessert die Qualität der Normalvektoren, da Normalvektoren in der Nähe von Löchern aufgrund der fehlenden Informationen weniger genau sind und Lochmuster die Netzinferenz dominieren und zu einer Überanpassung führen können.
- (A2) Glättung der Werte im Tiefenbild, z. B. um Rauschen zu reduzieren. Dies kann z.B. durch (A2a) klassische Computervision-Unschärfeoperationen oder (A2b) Ausreißerentfernung durch lokale Filteroperationen erfolgen. Durch die Glättung wird die Aussagekraft der Standardabweichung der Normalvektoren verbessert, da eine hohe Standardabweichung eher die tatsächliche Standardabweichung der Oberflächennormalvektoren widerspiegelt als eine Standardabweichung, die lediglich auf Rauschen in den Tiefenmessungen zurückzuführen ist.
- (A3) Filtern von Tiefenwerten nach verschiedenen Kriterien, z. B. (A3a) Entfernen von Tiefenwerten außerhalb eines Zielbereichs oder (A3b) Subtraktion eines Hintergrundtiefenbildes. Filtern ist nützlich, um die Netzinferenz auf relevante Bereiche des Bildes zu konzentrieren. Es sollte beachtet werden, dass ein Filtern durch Setzen der Tiefe auf einen bestimmten Wert, z. B. Null, eine geringe Standardabweichung der Normalvektoren erzeugt, was irreführend sein könnte. Daher wird gemäß einer Ausführungsform die Standardabweichung für ungeeignete Pixel explizit auf einen hohen Wert gesetzt.
-
Aus dem (optional vorverarbeiteten) Tiefenbild kann die Normalenvektor-Standardabweichung für jeden Pixel des Tiefenbilds wie folgt berechnet werden:
- (B1) [Optional] Alle Pixel des Tiefenbilds werden (unter Verwendung ihres Tiefen-Pixelwertes) in Punkte im 3D-Raum unter Berücksichtigung der intrinsischen Parameter der Kamera 202, falls bekannt, konvertiert. Die Folgenden Operationen erfolgen dann mit diesen Punkten, anstatt direkt mit dem Tiefenbild, indem ein Bild konstruiert wird, indem für jeden Pixel die 3D-Koordinaten des Punktes enthalten sind. Dies kann die Robustheit und Genauigkeit der ermittelten Normalenvektoren verbessern.
- (B2) Berechnen der Normalenvektoren aus dem Tiefenbild oder den Punkten des in (B1) erzeugten Bilds durch Bilden eines numerischen Gradienten, z.B. durch Verschieben des Tiefenbilds und Subtrahieren des verschobenen Tiefenbilds von dem ursprünglichen Tiefenbild. Auf diese Weise können z.B. Tiefenänderungen in x- und y- Richtung ermittelt werden und daraus ein Normalenvektor unter Verwendung des Vektorprodukts und anschließender Normalisierung gewonnen werden. Die Normalenvektoren an allen Pixel-Positionen können in Form eines weiteren Bilds repräsentiert werden, das dieselben Dimensionen wie das Tiefenbild hat und drei Kanäle aufweist, die die x, y und z-Komponenten der Normalenvektor angeben (aufgrund der Normierung reichen ohne Informationsverlust auch zwei dieser Kanäle,).
- (B3) Berechnen eines Mittels der Normalenvektoren für jeden Pixel in einer bestimmten Umgebung des Pixels, d.h. einem bestimmten Einzugsgebiet. Das Einzugsgebiet kann beliebig definiert werden, seine Größe wird aber beispielsweise entsprechend der Größe der Aufnehmvorrichtung gewählt, d.h. gleich der Größe des „Fußabdrucks“ der Aufnehmvorrichtung, also der von der Aufnehmvorrichtung zum Aufnehmen verwendeten Fläche. Im allgemeinen Fall ist das Einzugsgebiet durch eine Matrix einer bestimmten Größe gegeben (typischerweise viel kleiner als das Tiefenbild bzw. das in (B1) konstruierte Bild), die einen Faltungskern definiert. Die Matrix enthält Einträge für Pixelpositionen in einer Umgebung des Pixels (und für den Pixel selbst), für den das Mittel berechnet werden soll, und eine Null zeigt an, dass der Wert an der jeweiligen Pixelposition nicht berücksichtigt werden soll und ein Eintrag größer Null zeigt an, dass er mit einer entsprechenden Gewichtung berücksichtigt werden soll. Die Mittel der Normalenvektoren können dann mittels einer Faltungsoperation mit dem Faltungskern berechnet werden, wobei anschließend durch die Summe der Einträge des Faltungskerns dividiert wird. Die Mittelung erfolgt komponentenweise.
-
Das Ergebnis ist ein weiteres Bild mit denselben Dimensionen (und der gleichen Anzahl von Kanälen), das für jeden Pixel einen Wert E(X) enthält, der den Mittelwert von relevanten Normalenvektoren X in seiner Umgebung enthält.
- (B4) Die Mittelwertberechnung von (B3) wird für die komponentenweise quadrierten Normalenvektoren X2 anstatt X wiederholt, d.h. für jeden Pixel ein Mittel von (komponentenweise) quadrierten Normalenvektoren in der Umgebung des Pixels (und des Pixels selbst). Das Ergebnis wird als E(X2) bezeichnet.
- (B5) Es wird komponentenweise und pixelweise die Normalenvektor-Standardabweichung STD(X) berechnet als
-
Die Wurzeloperation ändert nicht die Ordnung und kann deshalb zur Reduzierung der Rechenzeit weggelassen werden.
-
Gemäß einer Ausführungsform wird die so komponentenweise berechnete Standardabweichung als Eingabe für das neuronale Netz 207 verwendet. Es können auch die Standardabweichungen für jeden Pixel über alle Komponenten summiert werden und das Resultat (d.h. ein Bild mit einem Kanal, das die summierte Standardabweichung enthält) als Eingabe für das neuronale Netz 207, ggf. zusammen mit einem oder mehreren Farb- und/oder Tiefenbildern 203, verwendet werden.
-
Des weiteren können die Werte der Standardabweichung jedes Pixels über das Bild normiert werden, z.B. auf den Wertebereich 0 - 1, bevor sie als Eingabe für das neuronale Netz 207 verwendet werden, um eine bessere Vergleichbarkeit verschiedener Bilder herzustellen, die die Generalisierungsfähigkeit des neuronalen Netzes unterstützt.
-
Gemäß einer Ausführungsform können zusätzliche Methoden verwendet werden, um die Vergleichbarkeit von Werten der Standardabweichung zu gewährleisten. Beispielsweise eignet sich ein Normalisierungsverfahren wie „contrast limited adaptive histogram equalization“ (CLAHE), um relative Unterschiede der Standardabweichung stärker zu betonen anstatt absolute Werte zu verwenden. Dies bietet sich insbesondere in Bildern an, in lokal große Unterschiede der Standardabweichung auftreten.
-
Das neuronale Netz 207 kann unter Verwendung von existierenden Datensätzen mit Tiefen- und ggf. Farbbildern trainiert werden, da die gesamte hierfür erforderliche Information aus diesen Daten ermittelt werden kann.
-
Das neuronale Netz 207 kann entweder direkt eine Aufnehmpose/stelle oder optional eine Liste von Aufnehmposen/stellen, eine pixelweise Aufnehmqualität oder eine Ausgabe in einem andere Format ausgeben, die anschließend in einer weiteren Verarbeitung zur Ableitung einer Aufnehmstelle und einer Aufnehmpose des Objekts 204 (wobei die Ableitung der Aufnehmpose die Ableitung der Aufnehmstelle beinhaltet) verwendet werden kann.
- (D1) Wenn eine pixelweise Aufnehmqualität vom neuronalen Netz 207 ermittelt wird, bestimmt die Steuereinrichtung 106 beispielsweise aus dieser Ausgabe eine Menge von Kandidaten für Aufnehmstellen. Dies kann z.B. geschehen (D1a) durch Auswahl lokaler Maxima der Aufnehmqualität, (D1b) durch Schwellenwertbildung der Aufnehmqualität und Clustering des Ergebnisses zu Bereichen, (D1c) durch Kombination der Aufnehmqualität mit weiteren Verarbeitungsergebnissen, z.B. mit einer Obj ektsegmentierung.
- (D2) Wenn Kandidaten für Aufnehmstellen wie in (D1) bestimmt wurden oder die Aufnehmstellen in Pixelkoordinaten angegeben sind, berechnet die Steuereinrichtung 106 eine vollständige Aufnehmpose, indem sie jeden Pixel der Aufnehmstelle in eine 3D-Position umwandelt wird, vgl. (B1), und eine Orientierung ausgewählt, indem das Vorzeichen des Normalenvektors an diesem Pixel umgedreht wird, vgl. (B2).
- (D3) Wurde mehr als eine Aufnehmpose ermittelt, wählen die Steuereinrichtung 106 eine davon aus oder ordnet (sortiert) die Ergebnisse. Die Einstufung kann z. B. wie folgt erfolgen: (D3a) auf der Grundlage eines bestimmten Wertes für die Aufnehmqualität, (D3b) auf der Grundlage einer Clustergröße, (D3c) auf der Grundlage einer Instanzbewertung, (D3d) auf der Grundlage der Höhe der Pose etc.
-
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie in 3 dargestellt.
-
3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Aufnehmen eines Objekts mittels einer Robotervorrichtung veranschaulicht.
-
In 301 wird mindestens ein Tiefenbilds des Objekts beschafft.
-
In 302 wird für jeden mehrerer Punkte des Objekts der Wert eines Maßes für die Streuung von Oberflächen-Normalenvektoren in einem Bereich um den Punkt des Objekts ermittelt.
-
In 303 werden die ermittelten Werte einem neuronalen Netzwerk zugeführt, das eingerichtet (z.B. trainiert) ist, in Reaktion auf eine Eingabe, die Streuungsmaßwerte enthält, eine Angabe von Objektstellen zum Aufnehmen auszugeben.
-
In 304 wird eine Stelle des Objekts zum Aufnehmen des Objekts aus einer Ausgabe, die das neuronale Netzwerk in Reaktion auf die Zufuhr der ermittelten Werte ausgibt, ermittelt (z.B. ausgewählt aus Stellen oder Bereichen, die die Ausgabe des neuronalen Netzes als geeignet angibt).
-
In 305 wird die Robotervorrichtung zum Aufnehmen des Objekts an der ermittelten Stelle gesteuert.
-
Das Verfahren kann das Trainieren des neuronalen Netzes, in Reaktion auf eine Eingabe, die Streuungsmaßwerte enthält, eine Angabe von Objektstellen zum Aufnehmen auszugeben, aufweisen. Dies erfolgt beispielsweise mittels überwachten Lernens durch Verwendung von Objekten mit bekannten Stellen zum Aufnehmen (bzw. Aufnehmposen, je nach Ausgabe des neuronalen Netzes).
-
Das Verfahren von 3 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein. Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
-
Die Herangehensweise von 3 kann zum Erzeugen eines Steuersignals für eine Robotervorrichtung dienen. Der Begriff „Robotervorrichtung“ kann als sich auf irgendein physikalisches System (mit einem mechanischen Teil, dessen Bewegung gesteuert wird) beziehend verstanden werden, wie z. B. eine computergesteuerte Maschine, ein Haushaltsgerät, ein Elektrowerkzeug oder eine Fertigungsmaschine.
-
Als Eingabedaten für das neuronale Netzwerk dienen beispielsweise Farb- und Tiefenbilder. Diese können aber auch durch Sensorsignale von anderen Sensoren wie z. B. Radar, LiDAR, Ultraschall, Bewegung, Wärmebilder etc. ergänzt werden.
-
Das neuronale Netzwerk klassifiziert die Eingabedaten und detektiert beispielsweise die Präsenz von Objekten und führt eine semantische Segmentierung auf der Grundlage der Sensordaten durch in Hinblick auf Stellen oder Bereiche, an denen die Objekte aufgenommen werden können, Posen (z.B. eine Greiferorientierung), mit der die Objekte aufgenommen (z.B. gegriffen) werden können.
-
Ausführungsformen können zum Trainieren eines Maschinelles-Lernen-Systems und Steuern eines Roboters, z. B. autonom von Robotermanipulatoren, um verschiedene Manipulationsaufgaben unter verschiedenen Szenarios zu erreichen, verwendet werden. Insbesondere sind Ausführungsformen auf die Steuerung und Überwachung der Ausführung von Manipulationsaufgaben anwendbar, z. B. in Montagelinien.
-
Obwohl spezielle Ausführungsformen hier dargestellt und beschrieben wurden, wird vom Fachmann auf dem Gebiet erkannt, dass die speziellen Ausführungsformen, die gezeigt und beschrieben sind, gegen eine Vielfalt von alternativen und/oder äquivalenten Implementierungen ausgetauscht werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll irgendwelche Anpassungen oder Variationen der speziellen Ausführungsformen abdecken, die hier erörtert sind. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und die Äquivalente davon begrenzt ist.