-
Gebiet der Erfindung
-
Die vorliegende Offenbarung betrifft Computersysteme und Verfahren zur Verarbeitung von Kandidatenkanten und/oder Raumstrukturinformationen. Ausführungsformen davon betreffen beispielsweise Texturfilterung und Kantendetektion.
-
Allgemeiner Stand der Technik
-
Mit zunehmender Automatisierung werden Roboter in mehr Umgebungen, wie beispielsweise in Lagerhaltungs- und Fertigungsumgebungen, verwendet. Roboter können zum Beispiel verwendet werden, um in einem Warenlager Elemente auf eine Palette zu laden oder davon zu entladen oder Gegenstände von einem Förderband in einem Werk aufzunehmen. Die Bewegung des Roboters kann festgelegt sein oder auf einer Eingabe, wie beispielsweise Raumstrukturinformationen, die von einem oder mehreren Sensoren in einem Warenlager oder einer Fabrik erhalten werden, basieren. Die Roboterführung kann durch eine Objekterkennung unterstützt werden, die anhand der Raumstrukturdaten erfolgt. Verfahren und Techniken, welche die Objekterkennung verbessern, sind daher wertvoll.
-
Kurzdarstellung
-
Ein Aspekt der vorliegenden Offenbarung betrifft ein Computersystem, ein Verfahren und/oder ein nicht flüchtiges computerlesbares Medium mit Befehlen zur Verarbeitung von Kandidatenkanten. In einigen Fällen kann das Computersystem eine Verarbeitungsschaltung zur Ausführung des Verfahrens umfassen, wie beispielsweise durch Ausführen der Befehle. Bei einer Ausführungsform kann das Verfahren ausgeführt werden, wenn Raumstrukturinformationen, die jeweils eine oder mehrere Objektstrukturen für ein oder mehrere Objekte beschreiben, auf dem nicht flüchtigen computerlesbaren Medium gespeichert sind, und wenn 2D-Bildinformationen, die das eine oder die mehreren Objekte beschreiben, auf dem nicht flüchtigen computerlesbaren Medium gespeichert sind. Bei einer Ausführungsform kann das Verfahren das Identifizieren, basierend auf den Raumstrukturinformationen, eines 3D-Orts, der eine Ecke einer Objektstruktur der einen oder der mehreren Objektstrukturen darstellt; das Identifizieren, basierend auf den Raumstrukturinformationen, eines 3D-Vektors, der sich von dem 3D-Ort erstreckt und parallel zu einer Kante der Objektstruktur ist; das Bestimmen eines 2D-Orts innerhalb der 2D-Bildinformationen, der dem 3D-Ort entspricht; das Bestimmen eines 2D-Vektors innerhalb der 2D-Bildinformationen, der dem 3D-Vektor entspricht; das Bestimmen einer Kantendetektionsregion innerhalb der 2D-Bildinformationen basierend auf dem 2D-Ort; das Identifizieren eines Clusters von Kandidatenkanten innerhalb der Kantendetektionsregion, die keine Objektkante der einen oder der mehreren Objektstrukturen darstellen, gemäß einem Vergleich zwischen den Kandidatenkanten und dem 2D-Vektor; das Identifizieren, als eine 2D-Objektkante, einer Kandidatenkante, die nicht Teil des identifizierten Clusters von Kandidatenkanten ist; und das Ausführen einer Segmentierung der Raumstrukturinformationen basierend auf der 2D-Objektkante umfassen.
-
Figurenliste
-
- Die 1A bis 1F veranschaulichen eine Raumstrukturerfassungsvorrichtung und ein Computersystem, das für den Zugriff auf und die Verarbeitung von Raumstrukturinformationen und 2D-Bildinformationen konfiguriert ist, in Übereinstimmung mit Ausführungsformen hiervon.
- Die 2A bis 2C stellen Blockdiagramme bereit, die ein Computersystem veranschaulichen, das konfiguriert ist, Raumstrukturinformationen und 2D-Bildinformationen zu verarbeiten, in Übereinstimmung mit Ausführungsformen hiervon.
- Die 3A und 3B stellen ein Flussdiagramm bereit, das ein Verfahren zur Verarbeitung von Raumstrukturinformationen und Kandidatenkanten in 2D-Bildinformationen veranschaulicht, gemäß einer Ausführungsform hiervon.
- Die 4A veranschaulichen ein Beispiel für ein System zur Verarbeitung von Raumstrukturinformationen und 2D-Bildinformationen in Übereinstimmung mit einer Ausführungsform hiervon.
- Die 4B bis 4C zeigen ein Beispiel für 2D-Bildinformationen in Übereinstimmung mit einer Ausführungsform hiervon.
- Die 4D bis 4G veranschaulichen Beispiele für Raumstrukturinformationen in Übereinstimmung mit einer Ausführungsform hiervon.
- Die 5A bis 5E veranschaulichen Beispiele für Raumstrukturinformationen in Übereinstimmung mit Ausführungsformen hiervon.
- Die 5F bis 5G veranschaulichen Beispiele für 2D-Bildinformationen in Übereinstimmung mit Ausführungsformen hiervon.
- Die 5H bis 5J veranschaulichen Beispiele für eine Kantendetektionsregion in Übereinstimmung mit einer Ausführungsform hiervon.
- Die 6A bis 6F veranschaulichen Beispiele von Clustern von Kandidatenkanten in Übereinstimmung mit Ausführungsformen hiervon.
- 6G veranschaulicht ein Beispiel für aktualisierte 2D-Bildinformationen in Übereinstimmung mit einer Ausführungsform hiervon.
- Die 7A bis 7D veranschaulichen Beispiele der Segmentierung von Raumstrukturinformationen in Übereinstimmung mit Ausführungsformen hiervon.
-
Detaillierte Beschreibung der Figuren
-
Die vorliegende Offenbarung stellt Systeme und Verfahren zur Verarbeitung von Raumstrukturinformationen (z. B. eine Punktwolke, die von einer Raumstrukturerfassungsvorrichtung erzeugt wird) und/oder 2D-Bildinformationen (z. B. ein 2D-Bild, das von einem 2D-Bildsensor erzeugt wird) bereit. Ein Aspekt der Ausführungsformen hierin bezieht sich auf die Segmentierung von Raumstrukturinformationen. Die Raumstrukturinformationen können beispielsweise einen Satz von Objekten (z. B. einen Satz von Kisten) darstellen und in separate Teile segmentiert sein, die einzelne Objekte repräsentieren (z. B. einzelne Kisten). In einigen Fällen können die 2D-Bildinformationen zur Unterstützung bei der Segmentierung der Raumstrukturinformationen verwendet werden. Die 2D-Bildinformationen können beispielsweise eine visuelle Textur umfassen, die sich auf ein visuelles Muster, eine visuelle Markierung oder andere visuelle Details beziehen kann. In einigen Fällen kann eine visuelle Markierung eine Kandidatenkante bilden, die ein physisches Merkmal eines der Objekte erfasst, wie beispielsweise eine physische Kante oder eine physische Ecke (die auch einfach als Kante oder Ecke eines der Objekte bezeichnet werden kann). In einigen Fällen kann es schwierig sein, ein physisches Merkmal (z. B. eine Innenkante) allein anhand der Raumstrukturinformationen zu erkennen. Daher kann die Kandidatenkante der 2D-Bildinformationen bei einigen Beispielen dazu verwendet werden, Informationen über das physische Merkmal bereitzustellen, was bei der Segmentierung der Raumstrukturinformationen unterstützen kann.
-
Ein Aspekt der Ausführungsformen hierin bezieht sich auf das Identifizieren von Kandidatenkanten, die falsche Kanten sein können. Eine falsche Kante kann z. B. eine Kandidatenkante sein, die nicht wirklich eine physische Kante oder ein anderes physisches Merkmal darstellt. Die falsche Kante kann beispielsweise eine Ähnlichkeit damit aufweisen, wie eine physische Kante in den 2D-Bildinformationen erscheinen sollte, kann aber tatsächlich ein anderes Merkmal darstellen (z. B. Text oder Grafiken, die auf einem Objekt angeordnet sind) oder kann tatsächlich ein Artefakt sein, das durch Bildrauschen verursacht ist. Daher können Ausführungsformen hierin das Identifizieren falscher Kanten und das Herausfiltern dieser aus den 2D-Bildinformationen oder das Entfernen der falschen Kanten von der Berücksichtigung, wenn nach Kandidatenkanten gesucht wird, die eine physische Kante darstellen, beinhalten.
-
In einigen Fällen können falsche Kanten identifiziert werden, indem ihre Ausrichtungen mit einer Eckenausrichtung verglichen wird, wie beispielsweise einer 2D-Eckenausrichtung oder einer 3D-Eckenausrichtung, was nachstehend ausführlicher beschrieben wird. Die 3D-Eckenausrichtung kann z. B. durch einen oder mehrere 3D-Vektoren definiert werden. In einigen Fällen können der eine oder die mehreren 3D-Vektoren eine oder mehrere physische Kanten darstellen, die sich von einer bestimmten physischen Ecke des Objekts erstrecken. Der eine oder die mehreren 3D-Vektoren können in einigen Fällen eine oder mehrere Kantenausrichtungen angeben. Bei einer Ausführungsform kann die 2D-Eckenausrichtung bestimmt werden, indem die 3D-Eckenausrichtung von einem Bezugsrahmen der Raumstrukturinformationen (der als 3D-Raum bezeichnet werden kann) auf einen Bezugsrahmen der 2D-Bildinformationen (der als 2D-Raum bezeichnet werden kann) projiziert wird. Bei einer solchen Ausführungsform können die falschen Kanten basierend darauf, ob ihre Ausrichtungen ausreichend mit der 2D-Eckenausrichtung und/oder der 3D-Eckenausrichtung übereinstimmen, identifiziert werden.
-
Ein Aspekt der Ausführungsformen hierin bezieht sich auf das Clusterbilden von Kandidatenkanten, was sich auf das Identifizieren beziehen kann, welche Kandidatenkanten der 2D-Bildinformationen zu einem gemeinsamen Cluster gehören sollten. Das Clusterbilden der Kandidatenkanten kann z. B. zu einer effizienteren Verarbeitung der Kandidatenkanten führen. Das Clusterbilden kann z. B. das Herausfiltern von Kandidatenkanten aus 2D-Bildinformationen auf einer Cluster-für-Cluster-Basis anstatt basierend auf einzelnen Kandidatenkanten ermöglichen. Das Clusterbilden kann z. B. basierend auf der Ähnlichkeit zwischen den entsprechenden Ausrichtungen der Kandidatenkanten, basierend darauf, welche der Kandidatenkanten kolinear sind, der Nähe zwischen den Kandidatenkanten, basierend auf einem anderen Kriterium oder irgendeiner Kombination davon ausgeführt werden.
-
1A veranschaulicht ein System 100 zur Segmentierung oder anderweitigen Verarbeitung von Raumstrukturinformationen (Raumstrukturinformationen werden nachstehend ausführlicher beschrieben). Bei der Ausführungsform von 1A kann das System 100 ein Computersystem 101, eine Raumstrukturerfassungsvorrichtung 151 und eine 2D-Bilderfassungsvorrichtung 152 umfassen. Bei einer Ausführungsform kann die Raumstrukturerfassungsvorrichtung 151 konfiguriert sein, Raumstrukturinformationen (auch als Raumstrukturdaten bezeichnet) zu erzeugen, und konfiguriert sein, die Raumstrukturinformationen dem Computersystem 101 verfügbar zu machen, das konfiguriert sein kann, die Raumstrukturinformationen zu verarbeiten. In einigen Fällen kann die 2D-Bilderfassungsvorrichtung 152 konfiguriert sein, 2D-Bildinformationen (z. B. ein oder mehrere 2D-Bilder) zu erzeugen, was ebenfalls nachstehend ausführlicher beschrieben wird. In einigen Fällen können sich das Computersystem 101, die Raumstrukturerfassungsvorrichtung 151 und die 2D-Bilderfassungsvorrichtung 152 in den gleichen Räumlichkeiten befinden, wie beispielsweise in einem Lager oder einer Fabrik. In einigen Fällen können sich das Computersystem 101, die 2D-Bilderfassungsvorrichtung 152 und/oder die Raumstrukturerfassungsvorrichtung 151 voneinander entfernt befinden.
-
Bei einer Ausführungsform können die Raumstrukturerfassungsvorrichtung 151 und/oder die 2D-Bilderfassungsvorrichtung 152 konfiguriert sein, die Raumstrukturinformationen und die 2D-Bildinformationen über eine Kommunikationsschnittstelle und/oder eine Datenspeichervorrichtung (die auch als Speichervorrichtung bezeichnet sein kann) verfügbar zu machen. 1B zeigt beispielsweise ein System 100A, das eine Ausführungsform des Systems 100 von 1A ist. Das System 100A umfasst das Computersystem 101, die Raumstrukturerfassungsvorrichtung 151 und ferner eine Datenspeichervorrichtung 198 (oder jede andere Art eines nicht flüchtigen computerlesbaren Mediums). Die Datenspeichervorrichtung 198 kann Teil der Raumstrukturerfassungsvorrichtung 151/der 2D-Bilderfassungsvorrichtung 152 sein oder von der Raumstrukturerfassungsvorrichtung 151/der 2D-Bilderfassungsvorrichtung 152 getrennt sein. Die Speichervorrichtung 198 kann sich beispielsweise in einem Datenzentrum befinden, das sich entfernt von der Raumstrukturerfassungsvorrichtung 151 und der 2D-Bilderfassungsvorrichtung 152 befindet, und kann Raumstrukturinformationen, die von der Raumstrukturerfassungsvorrichtung 151 erzeugt werden, und/oder 2D-Bildinformationen, die von der 2D-Bilderfassungsvorrichtung 152 erzeugt werden, empfangen und speichern. Bei dieser Ausführungsform kann das Computersystem 101 konfiguriert sein, auf die Raumstrukturinformationen und/oder die 2D-Bildinformationen zuzugreifen, indem es die Raumstrukturinformationen und/oder die 2D-Bildinformationen von der Datenspeichervorrichtung 198 abruft (oder allgemeiner empfängt).
-
In 1B kann die Speichervorrichtung 198 jede Art von nicht flüchtigem computerlesbarem Medium (oder Medien) umfassen, das auch als nicht flüchtige computerlesbare Speichervorrichtung bezeichnet werden kann. Ein solches nicht flüchtiges computerlesbares Medium oder eine solche Speichervorrichtung kann konfiguriert sein, gespeicherte Informationen (auch als gespeicherte Daten bezeichnet) zu speichern und den Zugriff darauf bereitzustellen. Beispiele für das nicht flüchtige computerlesbare Medium oder die Speichervorrichtung können beispielsweise eine elektronische Speichervorrichtung, eine magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektromagnetische Speichervorrichtung, eine Halbleiterspeichervorrichtung oder eine geeignete Kombination davon, wie beispielsweise eine Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), ein Festkörperlaufwerk, einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD) und/oder einen Speicherstick umfassen, sind aber nicht darauf beschränkt.
-
Bei einer Ausführungsform können das Computersystem 101 und die Raumstrukturerfassungsvorrichtung 151 konfiguriert sein, Raumstrukturinformationen über ein Netzwerk zu kommunizieren. Ähnlich können das Computersystem 101 und die 2D-Bilderfassungsvorrichtung 152 konfiguriert sein, 2D-Bildinformationen über das Netzwerk zu kommunizieren. 1C zeigt beispielsweise ein System 100B, das eine Ausführungsform des Systems 100 von 1A und/oder des Systems 100A in 1B ist. In System 100B kann das Computersystem 101 konfiguriert sein, Raumstrukturinformationen von der Raumstrukturerfassungsvorrichtung 151 über ein Netzwerk 199 und 2D-Bildinformationen von der 2D-Bilderfassungsvorrichtung 152 über das Netzwerk 199 zu empfangen. Das Netzwerk 199 kann eine einzelne Netzwerkverbindung oder eine Reihe von Netzwerkverbindungen bereitstellen, damit das Computersystem 101 Raumstrukturinformationen und/oder 2D-Bildinformationen empfangen kann, in Übereinstimmung mit den Ausführungsformen hiervon.
-
In 1C kann das Netzwerk 199 über drahtgebundene oder drahtlose Verbindungen verbunden sein. Drahtgebundene Verbindungen können Digital Subscriber Line (DSL), Koaxialkabel- oder Glasfaserleitungen umfassen. Drahtlose Verbindungen können Bluetooth®, Bluetooth Low Energy (BLE), ANT/ANT+, ZigBee, Z-Wave, Thread, Wi-Fi®, Worldwide Interoperability for Microwave Access (WiMAX®), Mobile WiMAX®, WiMAX®-Advanced, NFC, SigFox, LoRa, Random Phase Multiple Access (RPMA), Weightless-N/P/W, ein Infrarotkanal oder ein Satellitenband umfassen. Die drahtlosen Verbindungen können auch alle zellularen Netzwerkstandards zur Kommunikation zwischen mobilen Vorrichtungen umfassen, einschließlich Standards, die als 2G, 3G, 4G oder 5G qualifizieren. Drahtlose Standards können verschiedene Kanalzugriffsverfahren verwenden, wie beispielsweise FDMA, TDMA, CDMA, OFDM oder SDMA. Bei einigen Ausführungsformen können verschiedene Arten von Informationen über verschiedene Verbindungen und Standards übertragen werden. Bei anderen Ausführungsformen können die gleichen Arten von Informationen über verschiedene Verbindungen und Standards übertragen werden. Die Netzwerkkommunikation kann über jedes geeignete Protokoll erfolgen, einschließlich z. B. http, tcp/ip, udp, ethernet, ATM usw.
-
Das Netzwerk 199 kann jede Art und/oder Form von Netzwerk sein. Der geografische Umfang des Netzwerks kann sehr unterschiedlich sein, und das Netzwerk 199 kann ein Körpernetzwerk (BAN), ein Personal Area Network (PAN), ein Local Area Network (LAN), z. B. Intranet, ein Metropolitan Area Network (MAN), ein Wide Area Network (WAN) oder das Internet sein. Die Topologie des Netzwerks 199 kann in irgendeiner Form vorliegen und z. B. eine der folgenden umfassen: Punkt-zu-Punkt, Bus, Stern, Ring, Netz oder Baum. Das Netzwerk 199 kann eine beliebige Netzwerktopologie aufweisen, die einem Durchschnittsfachmann bekannt und in der Lage ist, die hierin beschriebenen Betriebsweisen zu unterstützen. Das Netzwerk 199 kann verschiedene Techniken und Schichten oder Protokollstapel verwenden, einschließlich z. B. das Ethernet-Protokoll, die Internetprotokollfamilie (TCP/IP), die ATM- (Asynchronous Transfer Mode) - Technik, das SONET-(Synchronous Optical Networking) -Protokoll oder das SDH-(Synchronous Digital Hierarchy) -Protokoll. Die Internetprotokollfamilie TCP/IP kann die Anwendungsschicht, Transportschicht, Internetschicht (einschließlich z. B. IPv4 und IPv4) oder die Verbindungsschicht umfassen. Das Netzwerk 199 kann eine Art von Rundfunknetzwerk, ein Telekommunikationsnetzwerk, ein Datenkommunikationsnetzwerk oder ein Computernetzwerk sein.
-
Bei einer Ausführungsform können das Computersystem 101, die 2D-Bilderfassungsvorrichtung 152 und die Raumstrukturerfassungsvorrichtung 151 in der Lage sein, über eine direkte Verbindung anstatt über eine Netzwerkverbindung zu kommunizieren. Das Computersystem 101 kann bei einer solchen Ausführungsform z. B. konfiguriert sein, die Raumstrukturinformationen und/oder 2D-Bildinformationen über eine spezielle Kommunikationsschnittstelle, wie beispielsweise eine RS-232-Schnittstelle, eine universelle serielle Busschnittstelle (USB) und/oder über einen lokalen Computerbus, wie beispielsweise einen PCI-Bus (Peripheral Component Interconnect), zu empfangen.
-
1D veranschaulicht ein System 100C, das eine Ausführungsform des Systems 100 sein kann, zur Erzeugung und Verarbeitung von Raumstrukturinformationen und 2D-Bildinformationen. Das System 100C umfasst ein Computersystem 101A, eine Raumstrukturerfassungsvorrichtung 151A, eine 2D-Bilderfassungsvorrichtung 152A, die Speichervorrichtung 198 und das Netzwerk 199. Die Raumstrukturerfassungsvorrichtung 151A ist konfiguriert, Raumstrukturinformationen zu erfassen oder anderweitig zu erzeugen, die eine Struktur von einem oder mehreren Objekten beschreiben, wie beispielsweise eine Struktur von Objekt 190A und eine Struktur von Objekt 190B (auch als Objektstruktur für Objekt 190A und Objektstruktur für Objekt 190B bezeichnet). Bei einer Ausführungsform können die von der Raumstrukturerfassungsvorrichtung 151/151A erzeugten Raumstrukturinformationen verwendet werden, um die Struktur des einen oder der mehreren Objekte 190A, 190B in drei Dimensionen zu beschreiben (d. h., eine 3D-Struktur des einen oder der mehreren Objekte 190A, 190B zu beschreiben). Daher kann die Raumstrukturerfassungsvorrichtung 151/151A auch als 3D-Erfassungsvorrichtung bezeichnet werden (z. B. eine 3D-Kamera). Die 2D-Bilderfassungsvorrichtung 152A ist konfiguriert, 2D-Bildinformationen zu erfassen oder auf andere Weise zu erzeugen, die ein Erscheinungsbild des einen oder der mehreren Objekte 190A, 190B beschreiben oder auf andere Weise darstellen oder spezifischer ein oder mehrere visuelle Merkmale (z. B. visuelle Textur), die auf dem einen oder den mehreren Objekten 190A, 190B erscheinen. Wenn die 2D-Bilderfassungsvorrichtung 152/152A speziell zur Erzeugung eines oder mehrerer 2D-Bilder konfiguriert ist, kann sie auch als 2D-Kamera bezeichnet werden. Das Computersystem 101A ist konfiguriert, auf die Raumstrukturinformationen und die 2D-Bildinformationen zuzugreifen und diese zu verarbeiten. Bei der Ausführungsform von 1D kann das Computersystem 101A ein Desktopcomputer sein, der eine Ausführungsform des Computersystems 101 von 1A ist.
-
Bei einer Ausführungsform kann die Raumstrukturerfassungsvorrichtung 151A eine Tiefenerfassungskamera sein (z. B. eine Laufzeitkamera oder eine Strukturlichtkamera), die eine Ausführungsform der Raumstrukturerfassungsvorrichtung 151 von 1A ist, und die erzeugten Raumstrukturinformationen können Tiefeninformationen umfassen. Bei einer Ausführungsform kann die 2D-Bilderfassungsvorrichtung 152A eine Farbkamera, eine Graustufenkamera oder eine andere 2D-Kamera sein. Ferner kann bei diesem Beispiel das Computersystem 101A auf die Raumstrukturinformationen und die 2D-Bildinformationen über jedes geeignete Mittel zugreifen. Das Computersystem 101A kann die Raumstrukturinformationen beispielsweise von der Raumstrukturerfassungsvorrichtung 151A über die Speichervorrichtung 198, über das Netzwerk 199 und/oder über eine direkte Verbindung zur Raumstrukturerfassungsvorrichtung 151A abrufen (oder allgemeiner empfangen). In ähnlicher Weise kann auf die 2D-Bildinformationen von der 2D-Bilderfassungsvorrichtung 152A über die Speichervorrichtung 198, über das Netzwerk 199 und/oder über eine direkte Verbindung mit der 2D-Bilderfassungsvorrichtung 152A zugegriffen werden.
-
Bei einer Ausführungsform können die Raumstrukturinformationen wie vorstehend angegeben erzeugt werden, um die Steuerung eines Roboters zu erleichtern. 1E veranschaulicht beispielsweise ein Roboterbetriebssystem 100D (das eine Ausführungsform des Systems 100 ist), welches in der Lage ist, Raumstrukturinformationen und/oder 2D-Bildinformationen zu erzeugen und zu verarbeiten und einen Roboter 161 basierend auf der Verarbeitung zu steuern. Die Raumstrukturerfassungsvorrichtung 151 kann beispielsweise eine Tiefenmessungskamera sein, die konfiguriert ist, Raumstrukturinformationen (z. B. eine Punktwolke) zu erzeugen, die eine Struktur eines oder mehrerer Objekte in einem Sichtfeld der Tiefenmessungskamera beschreibt. Ferner kann die 2D-Bilderfassungsvorrichtung 152 eine 2D-Kamera sein, die konfiguriert ist, 2D-Bildinformationen zu erzeugen, die das Erscheinungsbild eines oder mehrerer Objekte in einem Sichtfeld der 2D-Kamera beschreiben. Das Computersystem 101 kann z. B. konfiguriert sein, die Raumstrukturinformationen und/oder 2D-Bildinformationen zu empfangen und diese Informationen zu verwenden, um eine Größe, Form, Lage, Ausrichtung, eine Ecke und/oder eine Kante des einen oder der mehreren Objekte zu bestimmen. In diesen Fällen kann die Bewegung des Roboters 161 derart gesteuert werden, dass er mit dem einen oder den mehreren Objekten basierend auf ihrer bestimmten Größe, Form, Lage, Ausrichtung, Ecke und/oder Kante interagiert.
-
Bei einer Ausführungsform kann das Computersystem 101 konfiguriert sein, die Bewegung des Roboters 161 basierend auf Informationen, die von der Verarbeitung der Raumstrukturinformationen und/oder der 2D-Bildinformationen bestimmt werden, direkt zu steuern. Das Computersystem 101 kann beispielsweise konfiguriert sein, einen oder mehrere Bewegungsbefehle (z. B. Motorbefehle) basierend auf den bestimmten Informationen zu erzeugen und den oder die Bewegungsbefehle zum Roboter 161 zu kommunizieren. Bei einem solchen Beispiel kann das Computersystem 101 als Robotersteuersystem (auch als Robotersteuerung bezeichnet) fungieren.
-
Bei einer anderen Ausführungsform kann das Computersystem 101 konfiguriert sein, die bestimmten Informationen an ein vom Computersystem 101 getrenntes Robotersteuersystem zu kommunizieren, und das Robotersteuersystem kann konfiguriert sein, die Bewegung des Roboters 161 (z. B. durch Generieren eines oder mehrerer Bewegungsbefehle) basierend auf den bestimmten Informationen zu steuern. 1F zeigt beispielsweise ein Roboterbetriebssystem 100E (das eine Ausführungsform des Systems 100 von 1A und des Systems 100D von 1E ist), welches ein Robotersteuersystem 162 umfasst. Insbesondere können das Computersystem 101, die Raumstrukturerfassungsvorrichtung 151 und die 2D-Bilderfassungsvorrichtung 152 in 1F ein Bilderkennungssystem 150 bilden, das konfiguriert ist, dem Robotersteuersystem 162 Informationen über eine Umgebung des Roboters 161 und insbesondere über Objekte in dieser Umgebung bereitzustellen, die der Roboter 161 handhaben oder mit denen er auf andere Weise interagieren soll. Das Computersystem 101 kann als Bildsteuerung fungieren, die konfiguriert ist, Raumstrukturinformationen und/oder 2D-Bildinformationen zu verarbeiten, um Informationen zu bestimmen, die z. B. eine Klassifizierung umfassen können, die eine Art des Objekts, eine Form oder Größe der Objekte und/oder einen Ort der Objekte relativ zu dem Roboter 161 (z. B. relativ zu einem Roboterarm des Roboters 161) angibt. Das Computersystem 101 kann konfiguriert sein, die bestimmten Informationen zu dem Robotersteuersystem 162 zu kommunizieren, das konfiguriert sein kann, einen oder mehrere Bewegungsbefehle basierend auf den vom Computersystem 101 empfangenen Informationen zu erzeugen.
-
Wie vorstehend angegeben, kann die Raumstrukturerfassungsvorrichtung 151 der 1A bis 1F konfiguriert sein, Raumstrukturinformationen zu erzeugen, welche die entsprechenden Strukturen eines oder mehrerer Objekte in einer Umgebung der Raumstrukturerfassungsvorrichtung 151 beschreiben. Wie hierin verwendet, beziehen sich Raumstrukturinformationen auf jede Art von Informationen, die eine physische Struktur eines physischen Objekts (auch als Struktur des Objekts bezeichnet) beschreiben, und können insbesondere Informationen über die Form, Ausrichtung, Anordnung, Größe, eine Ecke und/oder eine Kante des physischen Objekts umfassen. Bei einer Ausführungsform können die Raumstrukturinformationen Ortsdaten umfassen, die einen Ort der Struktur relativ zur Raumstrukturerfassungsvorrichtung 151, relativ zu dem Roboter 161 oder relativ zu einem anderen Element beschreiben. Wie vorstehend angegeben, können die Raumstrukturinformationen zur Beschreibung einer 3D-Struktur eines Objekts verwendet werden. Daher können die Raumstrukturinformationen auch als 3D-Informationen bezeichnet werden.
-
Bei einer Ausführungsform können die Raumstrukturinformationen Bilddaten umfassen, und alle hierin beschriebenen Systeme, Verfahren und Techniken, die sich auf Raumstrukturinformationen beziehen, können, sofern nicht ausdrücklich anders angegeben, gleichermaßen auf die Bilddaten angewandt werden, die eine Form der Raumstrukturinformationen darstellen. Die Raumstrukturinformationen können beispielsweise ein Bild umfassen, das eine Tiefenkarte ist oder eine solche umfasst. Die Tiefenkarte kann ein Bild mit mehreren Pixeln sein, das außerdem Tiefeninformationen umfasst. Die Tiefeninformationen können z. B. entsprechende Tiefenwerte umfassen, die einigen oder allen Pixeln zugeordnet sind oder darin umfasst sind. Der Tiefenwert für ein bestimmtes Pixel kann die Tiefe eines Ortes angeben, der durch dieses Pixel darstellt wird oder diesem anderweitig entspricht.
-
Insbesondere stellen die Tiefeninformationen Informationen dar, die Abstände entlang einer Achse angeben, die zu einer imaginären Ebene orthogonal ist, auf der sich die Raumstrukturerfassungsvorrichtung 151 befindet. In einigen Fällen kann die imaginäre Ebene eine durch den Bildsensor definierte Bildebene sein, wenn die Raumstrukturerfassungsvorrichtung 151 eine Kamera mit einem Bildsensor ist. Bei einer Ausführungsform können die Tiefeninformationen, wie sie hierin verwendet werden, einen Abstand von der Raumstrukturerfassungsvorrichtung 151 angeben. Bei einer Ausführungsform können die Tiefeninformationen derart manipuliert werden, dass sie relative Abstände von jeder geeigneten Ebene parallel zu der imaginären Ebene, auf der sich die Raumstrukturerfassungsvorrichtung 151 befindet, angeben. Die geeignete Ebene kann z. B. durch eine Decke, einen Boden oder eine Wand eines Raums oder eine Plattform, auf der sich ein oder mehrere Objekte befinden, definiert werden. Wenn sich die Raumstrukturerfassungsvorrichtung 151 beispielsweise über einem oder mehreren Objekten befindet, können die Tiefeninformationen für die Höhe verschiedener Punkte und Flächen des einen oder der mehreren Objekte relativ zu einer Fläche, auf der das eine oder die mehreren Objekte angeordnet sind, repräsentativ sein. Bei einem weiteren Beispiel, wenn ein oder mehrere Objekte zu der Raumstrukturerfassungsvorrichtung 151 horizontal verschoben oder anderweitig versetzt sind, können die Tiefeninformationen angeben, wie weit sich das eine oder die mehreren Objekte horizontal von der Raumstrukturerfassungsvorrichtung 151 erstrecken.
-
Bei einer Ausführungsform können die Raumstrukturinformationen eine Punktwolke sein. Wie hierin verwendet, kann eine Punktwolke mehrere Punkte identifizieren, welche die Objektstruktur beschreiben (d. h. eine Struktur eines Objekts beschreiben). Die mehreren Punkte können z. B. die entsprechenden Positionen auf einer oder mehreren Flächen der Objektstruktur sein. In einigen Fällen kann die Punktwolke mehrere Koordinaten umfassen, welche die mehreren Punkte identifizieren oder anderweitig beschreiben. Die Punktwolke kann beispielsweise eine Reihe von kartesischen oder polaren Koordinaten (oder andere Datenwerte) umfassen, die entsprechende Orte oder andere Merkmale der Objektstruktur spezifizieren. Die entsprechenden Koordinaten können in Bezug auf einen Bezugsrahmen (z. B. Koordinatensystem) der Raumstrukturerfassungsvorrichtung 151 oder in Bezug auf einen anderen Bezugsrahmen ausgedrückt werden. In einigen Fällen sind die entsprechenden Koordinaten diskret und voneinander beabstandet, können aber als für eine zusammenhängende Fläche der Objektstruktur repräsentativ verstanden werden. Bei einer Ausführungsform kann die Punktwolke aus einer Tiefenkarte oder anderen Informationen erzeugt werden (z. B. durch das Computersystem 101).
-
Bei einigen Ausführungsformen können die Raumstrukturinformationen ferner in irgendeinem geeigneten Format gespeichert werden, wie beispielsweise Polygon- oder Dreiecksnetzmodelle, Non-Uniform Rational Basis Spline-Modelle, CAD-Modelle, Parametrierung von Primitiven (z. B. kann ein Rechteck gemäß einem Zentrum und Erweiterungen in x-, y- und z-Richtung definiert werden, ein Zylinder kann durch ein Zentrum, eine Höhe, einen oberen und einen unteren Radius definiert werden usw.) usw.
-
Wie vorstehend angegeben, werden die Raumstrukturinformationen über die Raumstrukturerfassungsvorrichtung 151 erfasst oder anderweitig erzeugt. Bei einer Ausführungsform können die Raumstrukturerfassungsvorrichtungen eine 3D-Kamera oder irgendeine andere 3D-Bilderfassungsvorrichtung sein oder diese umfassen. Die 3D-Kamera kann eine Tiefenmessungskamera sein, wie beispielsweise eine Time of Flight- (TOF) - Kamera oder eine Strukturlichtkamera oder jede andere Art von 3D-Kamera. In einigen Fällen kann die 3D-Kamera einen Bildsensor umfassen, wie beispielsweise einen ladungsgekoppelte Bauelemente- (CCDs) -Sensor und/oder einen komplementäre Metalloxidhalbleiter- (CMOS) -Sensor. Bei einer Ausführungsform kann die Raumstrukturerfassungsvorrichtung 151 Laser, eine LIDAR-Vorrichtung, eine Infrarotvorrichtung, einen Hell/Dunkel-Sensor, einen Bewegungssensor, einen Mikrowellendetektor, einen Ultraschalldetektor, einen RADAR-Detektor oder jede andere Vorrichtung umfassen, die zur Erfassung von Raumstrukturinformationen konfiguriert ist.
-
Bei einer Ausführungsform kann die 2D-Bilderfassungsvorrichtung wie vorstehend angegeben eine 2D-Kamera sein, wie beispielsweise eine Farbkamera oder Graustufenkamera. Die 2D-Kamera kann z. B. auch einen Bildsensor umfassen, wie beispielsweise einen ladungsgekoppelte Bauelemente- (CCDs) -Sensor und/oder einen komplementäre Metalloxidhalbleiter- (CMOS) -Sensor. In einigen Fällen können die 2D-Bildinformationen mehrere Pixel umfassen, die ein 2D-Bild bilden. Jedes Pixel der 2D-Bildinformationen kann z. B. eine Intensität oder eine andere Eigenschaft von Licht darstellen, das von einer dem Pixel entsprechenden Stelle reflektiert wird. Bei einer Ausführungsform können die Raumstrukturerfassungsvorrichtung 151 und die 2D-Bilderfassungsvorrichtung 152 in eine einzelne Vorrichtung integriert sein. Sie können z. B. von einem einzelnen Gehäuse umschlossen sein und einen festen relativen Ort und eine relative Ausrichtung aufweisen. In einigen Fällen können sie eine einzelne Kommunikationsschnittstelle und/oder eine einzelne Stromversorgung teilen. Bei einer Ausführungsform können die Raumstrukturerfassungsvorrichtung 151 und die 2D-Bilderfassungsvorrichtung 152 zwei getrennte Vorrichtungen sein, die voneinander unabhängige Orte und/oder Ausrichtungen aufweisen können.
-
Wie vorstehend weiter ausgeführt, können die von der Raumstrukturerfassungsvorrichtung 151 erzeugten Raumstrukturinformationen und/oder 2D-Bildinformationen von dem Computersystem 101 verarbeitet werden. Das Computersystem 101 kann bei einer Ausführungsform einen Server (z. B. mit einem oder mehreren Server-Blades, Prozessoren usw.), einen Personal-Computer (z. B. einen Desktop-Computer, einen Laptop-Computer usw.), ein Smartphone, eine Tablet-Computervorrichtung und/oder ein anderes Computersystem umfassen oder als solches konfiguriert sein. Bei einer Ausführungsform kann ein Teil oder die gesamte Funktionalität des Computersystems 101 als Teil einer Cloud Computing-Plattform ausgeführt werden. Das Computersystem 101 kann eine einzelne Computervorrichtung (z. B. ein Desktop-Computer) sein oder mehrere Computervorrichtungen umfassen.
-
2A stellt ein Blockdiagramm bereit, das eine Ausführungsform des Computersystems 101 veranschaulicht. Das Computersystem 101 umfasst eine Verarbeitungsschaltung 110 und ein nicht flüchtiges computerlesbares Medium (oder Medien) 120. Bei einer Ausführungsform umfasst die Verarbeitungsschaltung 110 einen oder mehrere Prozessoren, einen oder mehrere Verarbeitungskerne, eine programmierbare logische Steuerung („PLC“), eine anwendungsspezifische integrierte Schaltung („ASIC“), ein programmierbares Gate-Array („PGA“), ein feldprogrammierbares Gate-Array („FPGA“), eine beliebige Kombination davon oder irgendeine andere Verarbeitungsschaltung. Bei einer Ausführungsform kann das nicht flüchtige computerlesbare Medium 120 eine Speichervorrichtung sein, wie beispielsweise eine elektronische Speichervorrichtung, eine magnetische Speichervorrichtung, eine optische Speichervorrichtung, eine elektromagnetische Speichervorrichtung, eine Halbleiterspeichervorrichtung oder eine beliebige geeignete Kombination davon, z. B. eine Computerdiskette, eine Festplatte, ein Festkörperlaufwerk (SSD), einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compact Disc-Festwertspeicher (CD-ROM), eine Digital Versatile Disk (DVD), einen Speicherstick, eine beliebige Kombination davon oder eine andere Speichervorrichtung. In einigen Fällen kann das nicht flüchtige computerlesbare Medium mehrere Speichervorrichtungen umfassen. In bestimmten Fällen ist das nicht flüchtige computerlesbare Medium 120 konfiguriert, Raumstrukturinformationen, die von der Raumstrukturerfassungsvorrichtung 151 empfangen werden, und/oder 2D-Bildinformationen, die von der 2D-Bilderfassungsvorrichtung 152 empfangen werden, zu speichern. In bestimmten Fällen speichert das nicht flüchtige computerlesbare Medium 120 ferner computerlesbare Programmbefehle, die, wenn sie von der Verarbeitungsschaltung 110 ausgeführt werden, die Verarbeitungsschaltung 110 veranlassen, eine oder mehrere hier beschriebene Methodiken auszuführen, wie beispielsweise die in 3A und 3B beschriebene Operation.
-
2B zeigt ein Computersystem 101A, das eine Ausführungsform des Computersystems 101 ist und eine Kommunikationsschnittstelle 130 umfasst. Die Kommunikationsschnittstelle 130 kann konfiguriert sein, z. B. Raumstrukturinformationen von der Raumstrukturerfassungsvorrichtung 151 und/oder 2D-Bildinformationen von der 2D-Bilderfassungsvorrichtung 152 zu empfangen, wie beispielsweise über die Speichervorrichtung 198 von 1B, das Netzwerk 199 von 1C oder über eine direktere Verbindung. Bei einer Ausführungsform kann die Kommunikationsschnittstelle 130 konfiguriert sein, mit dem Roboter 161 von 1E oder dem Robotersteuersystem 162 von 1F zu kommunizieren. Die Kommunikationsschnittstelle 130 kann z. B. eine Kommunikationsschaltung umfassen, die konfiguriert ist, die Kommunikation über ein verdrahtetes oder drahtloses Protokoll auszuführen. Die Kommunikationsschaltung kann als Beispiel einen RS-232-Port-Controller, einen USB-Controller, einen Ethernet-Controller, einen Bluetooth®-Controller, einen PCI-Bus-Controller, jede andere Kommunikationsschaltung oder eine Kombination davon umfassen.
-
Bei einer Ausführungsform kann die Verarbeitungsschaltung 110 durch einen oder mehrere computerlesbare Programmbefehle programmiert werden, die auf der Speichervorrichtung 120 gespeichert sind. 2C veranschaulicht zum Beispiel ein Computersystem 101B, das eine Ausführungsform des Computersystems 101 ist, in dem die Verarbeitungsschaltung 110 durch einen Datenmanager 202, einen Segmentierungsmanager 204 und einen Objekterkennungsmanager 208 programmiert ist. Es versteht sich, dass die Funktionalität der verschiedenen Manager, wie sie hierin beschrieben sind, repräsentativ und nicht einschränkend ist.
-
Bei verschiedenen Ausführungsformen werden die Begriffe „Softwareprotokoll“, „Softwarebefehle“, „Computerbefehle“, „computerlesbare Befehle“ und „computerlesbare Programmbefehle“ verwendet, um Softwarebefehle oder Computercode zu beschreiben, die bzw. der zur Ausführung verschiedener Aufgaben und Operationen konfiguriert sind/ist. Wie hierin verwendet, bezieht sich der Begriff „Manager“ allgemein auf eine Sammlung von Softwarebefehlen oder Code, die bzw. der konfiguriert ist, die Verarbeitungsschaltung 110 zu veranlassen, eine oder mehrere Funktionsaufgaben auszuführen. Der Einfachheit halber werden die verschiedenen Manager, Computerbefehle und Softwareprotokolle derart beschrieben, dass sie verschiedene Operationen oder Aufgaben ausführen, während die Manager, Computerbefehle und Softwareprotokolle in Wirklichkeit Hardwareprozessoren programmieren, die Operationen und Aufgaben auszuführen. Obwohl an verschiedenen Stellen als „Software“ beschrieben, wird davon ausgegangen, dass die von den „Managern“, „Softwareprotokollen“ und „Computerbefehlen“ ausgeführten Funktionen genereller als Firmware, Software, Hardware oder eine Kombination davon implementiert sein können. Des Weiteren werden Ausführungsformen hierin in Form von Verfahrenschritten, Funktionsschritten und anderen Arten von Ereignissen beschrieben. Bei einer Ausführungsform erfolgen diese Aktionen entsprechend den Computerbefehlen oder Softwareprotokollen, die von der Verarbeitungsschaltung 110 ausgeführt werden.
-
Bei einer Ausführungsform ist der Datenmanager 202 ein Softwareprotokoll, das auf dem Computersystem 101B arbeitet. Der Datenmanager 202 ist konfiguriert, auf Raumstrukturinformationen und/oder 2D-Bildinformationen zuzugreifen (z. B. zu empfangen, abzurufen, zu speichern) und jede andere geeignete Operation im Zusammenhang mit Raumstrukturinformationen und/oder 2D-Bildinformationen auszuführen, die von dem Computersystem 101B empfangen oder verarbeitet (z. B. analysiert) werden. Der Datenmanager 202 kann beispielsweise konfiguriert sein, auf Raumstrukturinformationen und/oder 2D-Bildinformationen, die in einem nicht flüchtigen computerlesbaren Medium 120 oder 198 gespeichert sind, oder über das Netzwerk 199 und/oder die Kommunikationsschnittstelle 130 von 2B zuzugreifen. Der Datenmanager 202 kann auch konfiguriert sein, mit anderen Vorrichtungen über das Netzwerk 199, mit der Datenspeichereinheit 198, mit dem nicht flüchtigen computerlesbaren Medium 120, mit der Raumstrukturerfassungsvorrichtung 151 und/oder mit der 2D-Bilderfassungsvorrichtung 152 zu interagieren, um die Raumstrukturinformationen und/oder 2D-Bildinformationen anzufordern, abzurufen, darauf zuzugreifen, sie zu senden, zu speichern oder anderweitig Operationen damit auszuführen.
-
Bei Ausführungsformen ist der Datenmanager 202 ferner konfiguriert, einem Benutzer Zugriffswerkzeuge zur Verwaltung und Manipulation von Raumstrukturinformationen und/oder 2D-Bildinformationen bereitzustellen. Der Datenmanager 202 kann beispielsweise konfiguriert sein, Zugriff auf Datenbanken, Tabellen, Dateiablagen und andere Datenspeicherstrukturen zu erzeugen und/oder bereitzustellen. Bei Ausführungsformen kann der Datenmanager 202 Datenspeicherungsfunktionen bereitstellen. Der Datenmanager 202 ist konfiguriert, auf die Speichervorrichtung 120, die Datenspeichereinheit 198 und andere Speichereinheiten zuzugreifen, um Raumstrukturinformationen und alle anderen Informationen, die während der Prozesse des Computersystems 101B erzeugt werden, zu archivieren, zu speichern und/oder anderweitig zu bewahren.
-
Bei einer Ausführungsform kann der Segmentierungsmanager 204 konfiguriert sein, Raumstrukturinformationen in mehrere Segmente aufzuteilen. Wenn die Raumstrukturinformationen z. B. eine Struktur für eine Gruppe von Einzelobjekten darstellen, wie beispielsweise eine Gruppe von nebeneinander angeordneten Einzelkisten, kann der Segmentierungsmanager 204 konfiguriert sein, entsprechende Teile der Raumstrukturinformationen, die den Einzelobjekten entsprechen, zu identifizieren. Bei einem weiteren Beispiel kann der Segmentierungsmanager 204 konfiguriert sein, einen Teil der Raumstrukturinformationen zu identifizieren, der einem der individuellen Objekte entspricht, und diesen Teil aus den Raumstrukturinformationen zu extrahieren. Bei einer Ausführungsform kann der Segmentierungsmanager 204 ein Softwareprotokoll sein, das auf dem Steuersystem 101B arbeitet.
-
Bei einer Ausführungsform kann der Objekterkennungsmanager 208 konfiguriert sein, die Objekterkennung basierend auf den Raumstrukturinformationen auszuführen. Wenn der Segmentierungsmanager 204 zum Beispiel einen Teil der Raumstrukturinformationen extrahiert, der einem einzelnen Objekt einer Gruppe von Objekten entspricht, kann der Objekterkennungsmanager 208 konfiguriert sein, die Objekterkennung basierend auf dem extrahierten Teil der Raumstrukturinformationen auszuführen. Bei einer Ausführungsform kann der Objekterkennungsmanager 208 ein Softwareprotokoll sein, das auf dem Computersystem 101 arbeitet. Bei einer Ausführungsform kann der Objekterkennungsmanager 208 konfiguriert sein, basierend auf den Raumstrukturinformationen eine Detektionshypothese zu erzeugen, wie es nachstehend ausführlicher beschrieben wird.
-
Die 3A und 3B stellen ein Flussdiagramm bereit, das beispielhafte Operationen für ein Verfahren 300 zur Verarbeitung von Raumstrukturinformationen veranschaulicht. Bei einem Beispiel kann das Verfahren 300 Teil eines Verfahrens sein, bei dem ein Roboter mit mehreren Objekten (z. B. einer Gruppe von Kisten oder anderen Paketen) interagiert. 4A veranschaulicht beispielsweise eine Ausführungsform, bei der Raumstrukturinformationen für eine Reihe von physischen Objekten 410, 420, 430, 440 (auch als eine Reihe von Objekten 410-440 bezeichnet) erzeugt werden, die auf einer Fläche 491 einer Plattform 490 (z. B. einer Etage eines Warenlagers) angeordnet sind. Die Objekte 410-440 können z. B. eine Gruppe von Kisten oder anderen Paketen sein, die von einem Roboter 161A (der eine Ausführungsform des Roboters 161 der 1E und 1D sein kann) aufgenommen oder anderweitig bewegt werden sollen.
-
Bei einer Ausführungsform sind die Raumstrukturinformationen eine informatorische Darstellung der Struktur der Objekte 410-440 (die auch als entsprechende Objektstrukturen für die Objekte 410-440 bezeichnet werden können). Die Raumstrukturinformationen können von der Raumstrukturerfassungsvorrichtung 151A (z. B. einer 3D-Kamera) gemessen, erfasst oder anderweitig erzeugt werden. In einigen Fällen können die Raumstrukturinformationen entsprechende Tiefenwerte (z. B. relativ zu der Raumstrukturerfassungsvorrichtung 151A) für mehrere Orte auf einer oder mehreren Flächen beschreiben (z. B. obere Flächen, die der Kamera zugewandt sind oder sich anderweitig innerhalb des Sichtfelds der Raumstrukturerfassungsvorrichtung 151A und/oder der 2D-Bildinformationserfassungsvorrichtung 152A) der Objekte 410-440 befinden, wie beispielsweise die Fläche 411 des Objekts 410 (auch als Fläche 411 der Objektstruktur für das Objekt 410 bezeichnet), die Fläche 421 des Objekts 420, die Fläche 431 des Objekts 430 und die Fläche 441 des Objekts 440 (auch als Flächen 411-441 bezeichnet). Die Raumstrukturinformationen werden unter Bezugnahme auf 4D-4G näher beschrieben.
-
Bei einer Ausführungsform kann die 2D-Bildinformationserfassungsvorrichtung 152A (die eine Ausführungsform der 2D-Bildinformationserfassungsvorrichtung 152 von 1A sein kann) konfiguriert sein, 2D-Bildinformationen zu messen, zu erfassen oder anderweitig zu erzeugen, die z. B. das Erscheinungsbild der entsprechenden Flächen 411-441 der Objekte 410-440 beschreiben. Wie vorstehend angegeben, kann der 2D-Bildsensor 152A z. B. eine 2D-Kamera sein. Die 2D-Bildinformationen werden in Bezug auf die 4B und 4C näher erklärt.
-
4B veranschaulicht die 2D-Bildinformationen 500, welche die physischen Flächen 411-441 der physischen Objekte 410-440 von 4A (auch als die Flächen 411-441 der Objekte 410-440 bezeichnet) beschreiben oder anderweitig darstellen. Insbesondere veranschaulicht 4B ein 2D-Bild, das die 2D-Bildinformationen 500 bildet oder durch diese beschrieben wird, wobei das 2D-Bild ein Erscheinungsbild der Objekte 410-440 darstellt. Wie in 4B dargestellt, umfassen die 2D-Bildinformationen 500 Informationen über visuelle Merkmale auf Flächen der Objekte 410-440, wie beispielsweise die Flächen 411-441, oder allgemeiner über visuelle Merkmale, die von der 2D-Bilderfassungsvorrichtung 152A erfasst werden. Zu den visuellen Merkmalen kann z. B. eine visuelle Textur gehören, die sich auf ein visuelles Muster, eine visuelle Markierung oder ein anderes visuelles Detail beziehen kann. Die visuelle Textur kann auch als 2D-Textur bezeichnet werden. Daher können in einigen Fällen die 2D-Bildinformationen 500 als 2D-Texturinformationen (auch als 2D-Texturdaten bezeichnet) bezeichnet werden. Bei Ausführungsformen umfassen die 2D-Bildinformationen 500 keine Tiefeninformationen.
-
Bei einer Ausführungsform kann die visuelle Textur eine oder mehrere visuelle Markierungen umfassen oder aus einer oder mehreren visuellen Markierungen gebildet sein, die auf eine oder mehrere Flächen 411-441 der Objekte 410-440 gedruckt oder anderweitig angeordnet sind, wie beispielsweise visuelle Markierungen, die ein Logo auf einer der Flächen 411-441 bilden, visuelle Markierungen, die Text auf einer der Flächen 411-441 bilden, oder andere visuelle Markierungen. Bei einer Ausführungsform kann die visuelle Textur eine oder mehrere visuelle Markierungen umfassen oder aus einer oder mehreren visuellen Markierungen gebildet sein, die Artefakte in den 2D-Bildinformationen 500 sind, die durch Bildrauschen verursacht sind. Bei einer Ausführungsform kann die visuelle Textur in den 2D-Bildinformationen eine 3D-Textur auf der einen oder den mehreren Flächen 411-441 darstellen, wie bei einem Beispiel, bei dem die eine der Flächen 411-441 jeweils eine gewellte Struktur aufweist.
-
Wie in den 4B und 4C dargestellt, können die 2D-Bildinformationen 500 physische Merkmale der Objekte 410-440 erfassen oder anderweitig darstellen. Die physischen Merkmale können beispielsweise eine oder mehrere physische Ecken und/oder physische Kanten (auch als eine oder mehrere Ecken und eine oder mehrere Kanten bezeichnet) umfassen. Insbesondere umfassen die 2D-Bildinformationen 500 Teile (z. B. Pixel), die eine Ecke 415A des Objekts 410 (auch als Ecke der Objektstruktur für das Objekt 410 bezeichnet), eine Ecke 425A des Objekts 420, eine Ecke 435A des Objekts 430 und eine Ecke 445A des Objekts 440 erfassen oder anderweitig darstellen. Die 2D-Bildinformationen 500 umfassen ferner Teile (z. B. Pixel), welche die Kanten 416A-416D des Objekts 410, die Kanten 426A-426D des Objekts 420, die Kanten 436A-436D des Objekts 430 und die Kanten 446A-446D der Kante 440 erfassen oder anderweitig darstellen. Wie in 4C dargestellt, können einige der Kanten eine Außenkante sein, während andere Kanten eine Innenkante sein können. Die Kanten 416A und 416B können beispielsweise eine Außenkante des Objekts 410 sein, während die Kanten 416C und 416D eine Innenkante des Objekts 410 sein können.
-
Bei einer Ausführungsform können die 2D-Bildinformationen 500 ferner Kandidatenkanten, wie beispielsweise die Kandidatenkanten 561A, 561B, 561C, 561D, 563A und 563B in 4B, erfassen oder anderweitig umfassen. In einigen Fällen kann eine Kandidatenkante eine visuelle Markierung sein, die damit übereinstimmt, wie eine physische Kante für ein durch die 2D-Bildinformationen 500 beschriebenes Objekt aussehen sollte. Das heißt, die Kandidatenkante kann eine Eigenschaft aufweisen, die sie zu einem Kandidaten macht oder anderweitig dazu berechtigt, als eine physische Kante des Objekts darstellend erkannt zu werden. Wenn die Objekte 410-440 als gerade Kanten aufweisend bekannt sind, kann eine visuelle Markierung, die eine gerade Linie in den 2D-Bildinformationen 500 bildet, eine Kandidatenkante sein. Als Beispiel zeigt 4B die Kandidatenkanten 561A, 561B und 561C, welche entsprechend die physischen Kanten 416A, 416B und 416C von 4C des Objekts 410 darstellen. In einigen Fällen können die 2D-Bildinformationen 500 Kandidatenkanten umfassen, die falsche Kanten sind. Eine falsche Kante kann eine Kandidatenkante sein, die nicht wirklich eine physische Kante eines durch die 2D-Bildinformationen beschriebenen Objekts darstellt. 4B zeigt beispielsweise die Kandidatenkanten 563A und 564A als Beispiele für falsche Kanten, die in den 2D-Bildinformationen 500 erscheinen. In einigen Fällen können die Kandidatenkanten in den 2D-Bildinformationen 500 mindestens einen Teil ihrer visuellen Textur bilden. Wie nachstehend ausführlicher beschrieben, bezieht sich ein Aspekt der Ausführungsformen hierin darauf, Kandidatenkanten einzeln oder als einen Cluster zu identifizieren, die wahrscheinlich falsche Kanten sind, und die falschen Kanten herauszufiltern oder die wahrscheinlich falschen Kanten aus der Berücksichtigung zu entfernen, um die Chance zu erhöhen, aus den verbleibenden Kandidatenkanten eine Kandidatenkante, die tatsächlich eine physische Kante eines Objekts darstellt, korrekt zu identifizieren. Diese letztere Kandidatenkante kann zur Segmentierung der nachstehend beschriebenen Raumstrukturinformationen 400/400A verwendet werden und kann als Segmentierungskante bezeichnet werden.
-
4D veranschaulicht ein Beispiel der Raumstrukturinformationen 400, welche entsprechende Strukturen der physischen Objekte 410-440 von 4A beschreiben (auch als entsprechende Objektstrukturen für die Objekte 410-440 bezeichnet). Insbesondere veranschaulicht die Figur mehrere physische Punkte (auch als Punkte bezeichnet) auf einer oder mehreren der Flächen 411-441 von 4A der Objekte 410-440, die durch die Raumstrukturinformationen 400 dargestellt werden. Eine Punktwolke ist ein Beispiel für die Raumstrukturinformationen 400, die mit Ausführungsformen hiervon übereinstimmen. Bei einer Ausführungsform können die mehreren Punkte Orte (auch als physische Orte bezeichnet) auf einer oder mehreren Flächen (z. B. 411, 421, 431 und 441) der Objekte 410-440 sein. Die Raumstrukturinformationen 400 können beispielsweise eine Punktwolke sein, die eine entsprechende Koordinate (z. B. [X Y Z]T-Koordinate) für jeden der mehreren Punkte in 4D umfasst oder anderweitig angibt. In einigen Fällen kann eine Komponente der Koordinate (z. B. die Z-Komponente) für einen bestimmten Punkt einen Tiefenwert dieses Punkts relativ zu der Raumstrukturerfassungsvorrichtung 151/151A darstellen. Der Tiefenwert für einen bestimmten Punkt kann beispielsweise ein entlang der Achse 480 in 4A gemessener Abstand zwischen diesem Punkt und der Raumstrukturerfassungsvorrichtung 151A sein. Die Achse 480 kann z. B. eine optische Achse sein, die zu einer Bildebene 470 der Raumstrukturerfassungsvorrichtung 151A orthogonal ist. Die Dichte der physischen Punkte, die durch die Raumstrukturinformationen 400 dargestellt werden, kann abhängig von einer Auflösung der Raumstrukturerfassungsvorrichtung 151/151A größer oder kleiner als in 4D dargestellt sein. Zur Veranschaulichung stellen die 4D und 4E die Raumstrukturinformationen 400 dar, wobei die mehreren Punkte auf den Flächen 411-441 und Teile der Raumstrukturinformationen 400 den Seiten der Objekte 410-440 entsprechen, die senkrecht zu den Flächen 411-441 sind (auch als senkrechte Flächen bezeichnet). Es versteht sich jedoch, dass die Raumstrukturinformationen 400 beispielsweise nicht die Punkte umfassen können, die Tiefenmessungen auf den senkrechten Flächen entsprechen, z. B. aufgrund der Sichtlinie oder des Sichtfeldes für die Raumstrukturerfassungsvorrichtung 151/151A.
-
Wie in 4E dargestellt, können die Raumstrukturinformationen 400 von 4D einen ersten Teil 410A umfassen, der physische Punkte darstellt, die zu dem ersten Objekt 410 gehören (oder insbesondere zu Flächen einer Objektstruktur für das erste Objekt 410), einen zweiten Teil 420A, der physische Punkte darstellt, die zu dem zweiten Objekt 420 gehören, einen dritten Teil 430A, der physische Punkte darstellt, die zu dem dritten Objekt 430 gehören, und einen vierten Teil 440A, der physische Punkte darstellt, die zu dem vierten Objekt 440 gehören. 4E stellt ferner die Raumstrukturinformationen 400 als Darstellung der physischen Ecken 415A, 415B des Objekts 410 (auch als Ecken 415A, 415B bezeichnet), der Ecke 425A des Objekts 420, der Ecken 435A, 435B des Objekts 430 und der Ecken 445A, 445B des Objekts 440 dar. Insbesondere können die Raumstrukturinformationen 400 Koordinaten umfassen, die genau den entsprechenden Orten der Ecken gleichen (z. B. 415A, 415B, 425A, 435A, 435B, 445A, 445B) oder welche die entsprechenden Orte der Ecken annähern. In einigen Fällen umfassen die Raumstrukturinformationen 400 möglicherweise nicht vollständige Informationen über alle Ecken in den Objekten 410, 420, 430, 440. Beispielsweise können die Ecken 415B, 435B und 445B möglicherweise nicht genau erfasst werden, da sie gegenüber der Raumstrukturerfassungsvorrichtung 151A verdeckt sind. Wie in 4D und 4E dargestellt, können die Raumstrukturinformationen 400 beispielsweise eine Koordinate [X1 Y1 Z1]T umfassen, welche die Ecke 415A darstellt. Die Koordinate kann unter allen Koordinaten der Raumstrukturinformationen 400 eine Koordinate sein, die sich am nächsten an einem Ort der Ecke 415A befindet. Diese Koordinate [X1 Y1 Z1]T kann genau gleich dem Ort der Ecke 415A oder im Wesentlichen gleich dem Ort der Ecke 415A sein.
-
4E stellt ferner die Raumstrukturinformationen 400 als Darstellung der physischen Kanten 416A, 416B, 416E (auch als Kanten 416A, 416B, 416E bezeichnet) des Objekts 410, der Kanten 426A und 426B des Objekts 420, der Kanten 436A, 436B des Objekts 430 und der Kanten 446A, 446B des Objekts 440 dar. In einigen Fällen können die Raumstrukturinformationen 400 keine vollständigen Informationen über alle physischen Kanten in den Objekten 410, 420, 430, 440 umfassen. Insbesondere können die Raumstrukturinformationen 400 Koordinaten umfassen, die genau auf die Kanten fallen (z. B. 416A, 416B, 426A, 426B, 436A, 436B, 446A, 446B) oder die ungefähr auf die Kanten fallen. Wie in den 4D und 4E dargestellt, können die Raumstrukturinformationen die Koordinaten [X1 Y1 Z1]T, [X2 Y1 Z1]T und [X3 Y1 Z1]T umfassen, welche die Kante 416A des Objekts 410 darstellen. Die Koordinaten können unter den nächstgelegenen Koordinaten in den Raumstrukturinformationen 400 zur Kante 416A sein.
-
4F zeigt ein Beispiel für die Raumstrukturinformationen 400A, die speziell Punkte mit dem gleichen Tiefenwert darstellen können. Insbesondere können die Raumstrukturinformationen 400A mehrere Punkte repräsentieren, die sich auf den Flächen 411-441 (z. B. obere Flächen) der Objekte 410-440 von 4A befinden, wobei die mehreren Punkte, die durch die Raumstrukturinformationen 400A dargestellt werden, alle einen Tiefenwert von Z1 aufweisen können. Wie in 4F dargestellt, können die Raumstrukturinformationen 400A einen ersten Teil 411A umfassen, der Punkte auf der Fläche 411 des Objekts 410 darstellt, einen zweiten Teil 421A, der Punkte auf der Fläche 421 des Objekts 420 darstellt, einen dritten Teil 431A, der Punkte auf der Fläche 431 des Objekts 430 darstellt, und einen vierten Teil 441A, der Punkte auf der Fläche 441 des Objekts 440 darstellt. Wie die Raumstrukturinformationen 400 der 4D und 4E können auch die Raumstrukturinformationen 400A von 4F z. B. die Ecken 415A, 425A, 435A, 445A und die Kanten 416A, 416B, 426A, 426B, 436A, 436B, 446A und 446B der Objekte 410-440 darstellen. In einigen Fällen können die Raumstrukturinformationen 400A von 4F ein Teil der Raumstrukturinformationen 400 der 4D und 4E sein und aus den Raumstrukturinformationen 400 extrahiert sein. In einigen Fällen können die Raumstrukturinformationen 400A ein Teil der in 4G dargestellten Raumstrukturinformationen 400B sein und können aus den Raumstrukturinformationen 400B extrahiert sein. Insbesondere können die Raumstrukturinformationen 400B von 4G Punkte auf den Flächen 411-441 der Objekte 410-440 und Punkte auf der Fläche 491 der Plattform 490 von 4A darstellen. Im Beispiel von 4G können die Raumstrukturinformationen 400B einen Tiefenwert von Z=Z1 für physische Punkte auf den Flächen 411-441 für die Objekte 410-440 und einen Tiefenwert von Z=Z2 für physische Punkte auf der Fläche 491 der Plattform 490 angeben.
-
Bei einer Ausführungsform können die Raumstrukturinformationen 400/400A eine Tiefenkarte umfassen, die mehrere Pixel [u, v] aufweisen kann, und wobei einige oder alle davon einen Tiefenwert aufweisen können. Jedes der Pixel in der Tiefenkarte kann einem entsprechenden physischen Punkt (auch als physischer Ort bezeichnet) entsprechen, der durch das Pixel erfasst oder anderweitig dargestellt wird, und der Tiefenwert kann einen Abstand von der Raumstrukturerfassungsvorrichtung (z. B. 151A von 4A) und dem bestimmten physischen Punkt angeben. Der physische Punkt kann sich z. B. auf der einen oder den mehreren Flächen 411-441 der Objekte 410-440 befinden. In einigen Fällen kann der Abstand entlang der Achse 480 gemessen werden. In einigen Fällen kann der einem Pixel zugeordnete Tiefenwert [u, v] eine Z-Komponente der Koordinate des entsprechenden physischen Punkts darstellen. Die Raumstrukturerfassungsvorrichtung 151A kann beispielsweise eine Tiefenmessungskamera sein. In einem solchen Fall kann ein bestimmtes Pixel [u, v] in der Tiefenkarte einem physischen Punkt auf den Flächen 411-440 der Objekte 410-440 oder auf der Fläche 491 der Plattform 490 entsprechen, wobei der physische Punkt eine Koordinate [X, Y, Z]T aufweist. Die X-Komponente und die Y-Komponente der Koordinate können auf einer inversen Projektionsmatrix der Tiefenmessungskamera basieren, und die Z-Komponente der Koordinate kann gleich dem dem Pixel [u v] zugewiesenen Tiefenwert sein oder anderweitig darauf basieren (die Koordinate [X, Y, Z]T kann sich in einem Bezugsrahmen (z. B. Koordinatensystem) der Tiefenmessungskamera befinden).
-
Bei einer Ausführungsform können die Raumstrukturinformationen 400 eine Punktwolke umfassen. Wie vorstehend angegeben, kann die Punktwolke mehrere Koordinaten umfassen, die mehrere Punkte auf einer Objektstruktur oder insbesondere auf einer Fläche einer Objektstruktur identifizieren, wie beispielsweise die Fläche 411 auf einer Objektstruktur für das Objekt 410. Wenn die Raumstrukturinformationen 400 bei einer Ausführungsform die Punktwolke umfassen, können sie in einigen Szenarien (z. B. durch die Raumstrukturerfassungsvorrichtung 151 oder das Computersystem 101 der 1A bis 2C) basierend auf der vorstehend beschriebenen Tiefenkarte erzeugt werden.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren durch das Computersystem 101 der 2A bis 2C und insbesondere durch die Verarbeitungsschaltung 110 ausgeführt werden, wenn Raumstrukturinformationen (z. B. 400), welche die entsprechenden Objektstrukturen eines oder mehrerer Objekte beschreiben, auf einem nichtflüchtigen computerlesbaren Medium 120 des Computersystems 101 gespeichert sind, und wenn 2D-Bildinformationen (z. B. 500), die das eine oder die mehreren Objekte beschreiben, auf dem nicht flüchtigen computerlesbaren Medium (z. B. 120) des Computersystems 101 gespeichert sind. Die entsprechenden Objektstrukturen für das eine oder die mehreren Objekte können auch als entsprechende Strukturen des einen oder der mehreren Objekte bezeichnet werden. Bei einer Ausführungsform kann das nicht flüchtige computerlesbare Medium 120 der 2A bis 2C ferner mehrere Befehle (z. B. Computerprogrammbefehle) speichern, die bei Ausführung durch die Verarbeitungsschaltung 110 die Verarbeitungsschaltung 110 veranlassen, das Verfahren 300 auszuführen.
-
Bei einer Ausführungsform umfasst das Verfahren 300 der 3A und 3B eine Operation 302, bei der die Verarbeitungsschaltung 110 des Computersystems 101 (der 2A bis 2C) auf Raumstrukturinformationen (z. B. 400/400A der 4D bis 4F) zugreift, welche die Struktur eines Objekts (auch als Objektstruktur bezeichnet) beschreiben. In einigen Fällen kann die Operation 302 von dem Datenmanager 202 von 2C ausgeführt werden. Bei einer Ausführungsform kann der Zugriff auf die Raumstrukturinformationen (z. B. 400/400A) das Abrufen (oder allgemeiner das Empfangen) der Raumstrukturinformationen (z. B. 400/400A) von dem nicht flüchtigen computerlesbaren Medium 120 oder von einer anderen Vorrichtung beinhalten. In einigen Situationen können die Raumstrukturinformationen (z. B. 400/400A) von der Raumstrukturerfassungsvorrichtung 151/151A erzeugt und von dem Computersystem 101 von der Raumstrukturerfassungsvorrichtung 151/151A empfangen worden sein, wie beispielsweise über die Kommunikationsschnittstelle 130 von 2B, und sie können in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert worden sein, das einen temporären Puffer oder einen Langzeitspeicher für die Raumstrukturinformationen bereitstellen kann. Die Raumstrukturinformationen (z. B. 400/400A) können beispielsweise eine Punktwolke umfassen, die von der Raumstrukturerfassungsvorrichtung 151 empfangen und in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert wurde. Auf die Punktwolke kann dann durch die Verarbeitungsschaltung 110 in der Operation 302 zugegriffen werden.
-
In einigen Situationen können die Raumstrukturinformationen (z. B. 400/400A), auf die zugegriffen wird, in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert sein und sie können zuvor von der Verarbeitungsschaltung 110 selbst basierend auf den von der Raumstrukturerfassungsvorrichtung 151/151A empfangenen Informationen erzeugt worden sein. Die Verarbeitungsschaltung 110 kann beispielsweise derart konfiguriert sein, dass sie basierend auf Sensorrohdaten eine Punktwolke erzeugt, die von der Raumstrukturerfassungsvorrichtung 151/151A empfangen wurden, und sie kann konfiguriert sein, die erzeugte Punktwolke in dem nicht flüchtigen computerlesbaren Medium 120 zu speichern. Auf die Punktwolke kann dann durch die Verarbeitungsschaltung 110 in Operation 302 zugegriffen werden (z. B. durch Abrufen der Daten von dem nicht flüchtigen computerlesbaren Medium 120).
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 304 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 basierend auf den Raumstrukturinformationen (z. B. 400/400A) einen 3D-Ort identifiziert, der eine Ecke einer Objektstruktur darstellt, die eine Struktur eines Objekts (z. B. 410/420/430/440) sein kann, die durch die Raumstrukturinformationen dargestellt wird. Der 3D-Ort, der die Ecke darstellt, kann auch als 3D-Eckenort oder als 3D-Objektecke bezeichnet werden. Unter Bezugnahme auf die 5A und 5B kann die Verarbeitungsschaltung 110 in Operation 304 beispielsweise basierend auf den Raumstrukturinformationen 400/400A einen ersten 3D-Ort 405A identifizieren, der die Ecke 415A des Objekts 410 darstellt, einen zweiten 3D-Ort 405B, der die Ecke 425A des Objekts 420 darstellt, einen dritten 3D-Ort 405C, der die Ecke 435A des Objekts 430 darstellt, und einen vierten 3D-Ort 405D, der die Ecke 445A des Objekts 440 darstellt (die auch gemeinsam als 3D-Orte 405A-405D bezeichnet werden können).
-
Im Beispiel der
5A und
5B kann jeder der 3D-Orte
405A-405D durch eine 3D-Koordinate beschrieben werden, wie beispielsweise eine [X Y Z]
T-Koordinate. Der 3D-Ort
405A in den
5A und
5B kann beispielsweise eine 3D-Koordinate von [X
1 Y
1 Z
1]
T aufweisen, wie es in
4D dargestellt ist. In einigen Fällen kann die 3D-Koordinate für einen 3D-Ort (z. B.
405A) relativ zu einem Bezugsrahmen (z. B. Koordinatensystem) der Raumstrukturinformationen
400/400A ausgedrückt werden, der auch ein Bezugsrahmen der Raumstrukturerfassungsvorrichtung
152/152A sein kann. Bei einer Ausführungsform kann ein 3D-Ort (z. B.
405A), der aus den Raumstrukturinformationen
400/400A bestimmt wird und der eine entsprechende physische Ecke eines Objekts (z. B. die physische Ecke
415A) darstellt, genau identifizieren, wo sich die physische Ecke befindet, oder kann den Ort annähern, an dem sich die physische Ecke befindet. Die 3D-Koordinate [X
1 Y
1 Z
1]
T des 3D-Orts
405A kann beispielsweise einen exakten Ort der physischen Ecke
415A der Objektstruktur für das Objekt
410 darstellen oder kann annähern, wo sich die physische Ecke
415A befindet. In einigen Fällen kann der 3D-Ort (z. B.
405A) ein Ort sein, der sich neben anderen in den Raumstrukturinformationen
400/400A beschriebenen Orten am nächsten an einer entsprechenden physischen Ecke (z. B.
415A) befindet. Die 3D-Orte, die auch als 3D-Objektecken (z. B.
405A-405D) bezeichnet werden können, können von den Raumstrukturinformationen (z. B.
400/400A) durch jedes geeignete Mittel identifiziert werden. Bei einer Ausführungsform kann ein 3D-Ort, der eine Ecke einer Objektstruktur darstellt, beispielsweise anhand einer Analyse von mehreren Eckpunkten identifiziert werden, die aus den Schichten in den Raumstrukturinformationen identifiziert werden, wie es in der US-Patentanmeldung Nr.
16/578.900 , eingereicht am 23. September 2019, beschrieben ist und die hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen wird. Zum Beispiel kann der in Operation
304 bestimmte 3D-Ort ein Ort einer konvexen Ecke sein, wie es in der US-Patentanmeldung Nr.
16/578,900 beschrieben ist. Bei einer Ausführungsform kann der 3D-Ort (z. B.
405A) eine Ecke einer Kontur für Punkte (z. B. Orte) sein, die durch die Raumstrukturinformationen (z. B.
400/400A) beschrieben werden.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 306 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 basierend auf den Raumstrukturinformationen (z. B. 400/400A) einen 3D-Vektor identifiziert, der sich von dem 3D-Ort erstreckt und parallel zu einer physischen Kante einer Objektstruktur (auch als Kante der Objektstruktur bezeichnet) ist. Insbesondere kann der 3D-Ort eine Ecke einer Struktur eines Objekts darstellen und der 3D-Vektor kann parallel zu einer Kante des Objekts sein. Der 3D-Vektor kann die Kante darstellen und kann daher als 3D-Kante oder 3D-Objektkante bezeichnet werden. Die 5C und 5D zeigen beispielsweise ein Beispiel, bei dem die Verarbeitungsschaltung 110 einen 3D-Vektor 406A-1 identifiziert, der sich von dem 3D-Ort 405A erstreckt und parallel zur Kante 416A des Objekts 410 ist. In einigen Fällen kann der 3D-Vektor durch mindestens zwei 3D-Koordinaten definiert werden (z. B. genau zwei 3D-Koordinaten). Der 3D-Vektor 406A-1 kann beispielsweise durch [X1 Y1 Z1]T und [X2 Y2 Z2]T definiert werden. Der 3D-Vektor (z. B. 406A-1) kann z. B. eine Ausrichtung angeben. In einigen Fällen kann der 3D-Vektor auch eine Richtungsabhängigkeit (z. B. von [X1 Y1 Z1]T bis [X2 Y2 Z2]T) und/oder eine Größe (z. B. eine Größe, die durch einen Abstand zwischen [X1 Y1 Z1]T bis [X2 Y2 Z2]T definiert ist) angeben. In einigen Fällen kann der 3D-Vektor 406A-1 verwendet werden, um eine Linie zu definieren, die eine bestimmte Ausrichtung und/oder einen Ort aufweist und möglicherweise keine Angabe zur Richtungsabhängigkeit und/oder zur Größe aufweist.
-
Bei einer Ausführungsform kann der 3D-Vektor 406A-1 Punkte (z. B. Orte) umfassen, die sich an der äußersten Peripherie von Punkten befinden, die durch die Raumstrukturinformationen 400/400A beschrieben werden. Die Koordinaten [X1 Y1 Z1]T und [X2 Y2 Z2]T, die den 3D-Vektor 406A- bilden 1 können zu Punkten gehören, die eine äußerste Peripherie aller Punkte bilden, die durch die Raumstrukturinformationen 400/400A beschrieben werden, und stellen daher eine Kante der durch die Raumstrukturinformationen 400/400A beschriebenen Punkte dar. In einigen Fällen kann der 3D-Vektor (z. B. 406A-1) genau auf die Kante (z. B. 416A) fallen, die er darstellt, und kann daher genau angeben, wo sich die Kante befindet, oder annähern, wo sich die Kante befindet. Ferner kann der 3D-Vektor (z. B. 406A-1) eine Ausrichtung der Kante (z. B. 416A) angeben, die auch als eine 3D-Kantenausrichtung bezeichnet werden kann.
-
Bei einer Ausführungsform kann das Bestimmen des 3D-Vektors (z. B. 406A-1) ein Teil der Bestimmung einer 3D-Eckenausrichtung sein. Die 3D-Eckenausrichtung kann sich auf eine Ausrichtung (z. B. Richtung) einer physischen Ecke beziehen, die durch einen 3D-Ort dargestellt wird, und/oder auf die Form eines Objekts, das die Ecke bildet. In einigen Fällen kann die 3D-Eckenausrichtung durch mehrere Vektoren definiert sein. Insbesondere kann eine physische Ecke ein Schnittpunkt von zwei oder mehr physischen Kanten sein. 5E stellt beispielsweise die Ecke 415A des Objekts 410 als Schnittpunkt der Kanten 416A und 416B oder der Kanten 416A, 416B und 416E dar. Bei diesem Beispiel kann ein 3D-Ort 405A, der die physische Ecke 415A darstellt, durch mehrere 3D-Vektoren, wie beispielsweise die Vektoren 406A-1 und 406A-2, oder durch die Vektoren 406A-1, 406A-2 und 406A-3 in 5E dargestellt werden. Der Vektor 406A-1 kann wie vorstehend beschrieben parallel zur Kante 416A sein, während der Vektor 406A-2 parallel zur Kante 416B und der Vektor 406A-3 parallel zur Kante 416E sein kann. Ferner können die Vektoren 406A-1, 406A-2 und 406A-3 von dem 3D-Ort 405A weg, der die Ecke 415A darstellt, in entsprechende Richtungen zeigen, die den entsprechenden Kanten 416A, 416B, 416E entsprechen. Bei einer Ausführungsform können die Vektoren 406A-1, 406A-2 und 406A-3 nach innen in Richtung anderer Punkte zeigen, die durch die Raumstrukturinformationen 400 dargestellt werden. Bei diesem Beispiel kann eine 3D-Eckenausrichtung der Ecke 415A, die durch die 3D-Ort 405A dargestellt wird, durch mindestens zwei der 3D-Vektoren 406A-1, 406A-2, 406A-3 definiert werden. Die 3D-Eckenausrichtung kann beispielsweise durch alle drei Vektoren definiert werden. Wenn die drei Vektoren 406A-1, 406A-2, 406A-3 orthogonal sind, kann der resultierende 3D-Ort eine quadratische Ecke darstellen.
-
Bei einer Ausführungsform kann die Steuerschaltung 110 die Operationen 304 und 306 mehrfach ausführen, um mehrere 3D-Orte zu identifizieren, die entsprechende Ecken eines oder mehrerer Objekte oder insbesondere entsprechende Ecken einer oder mehrerer Objektstrukturen darstellen. Die Steuerschaltung 110 kann, wie in 5E und 4E veranschaulicht, beispielsweise den 3D-Ort 405B, der die Ecke 425A des Objekts 420 darstellt, den 3D-Ort 405C, der die Ecke 435 des Objekts 430 darstellt, und/oder den 3D-Ort 405D, der die Ecke 445A des Objekts 440 darstellt, identifizieren. In einigen Fällen kann die Steuerschaltung 110 außerdem eine 3D-Eckenausrichtung für jede der Ecken identifizieren. Die Steuerschaltung 110 kann beispielsweise die 3D-Vektoren 406B-1 bis 406B-3 identifizieren, die eine 3D-Eckenausrichtung für die Ecke 425A definieren, die durch den 3D-Ort 405B dargestellt wird. Sie kann auch die 3D-Vektoren 406C-1 bis 406C-3 identifizieren, die eine 3D-Eckenausrichtung für die durch den 3D-Ort 405C dargestellte Ecke 435A definieren. Die Steuerschaltung 110 kann ferner die 3D-Vektoren 406D-1 bis 406D-3 identifizieren, die eine 3D-Eckenausrichtung für die Ecke 445A definieren können, die durch den 3D-Ort 405D dargestellt wird.
-
Bei einer Ausführungsform können die vorstehend beschriebenen 3D-Vektoren (z. B. 406A-1 bis 406A-3) entsprechende physische Kanten (z. B. 416A, 416B, 416E) darstellen und als 3D-Kanten oder 3D-Objektkanten bezeichnet werden. Wie vorstehend angegeben, können die 3D-Vektoren einen exakten Ort ihrer entsprechenden physischen Kanten angeben oder einen Ort ihrer entsprechenden physischen Kanten annähern.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 308 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 2D-Bildinformationen (z. B. die 2D-Bildinformationen 500) erhält, darauf zugreift oder auf andere Weise empfängt. Wie vorstehend angegeben, können die 2D-Bildinformationen 500 Informationen umfassen, die von visuellen Merkmalen auf Objektflächen detektiert werden (z. B. die Flächen 411-441 der Objekte 410-440). Das visuelle Merkmal kann eine visuelle Textur umfassen, die aus einem visuellen Muster, einer visuellen Markierung oder einem anderen visuellen Detail gebildet sein kann. Bei einer Ausführungsform können die 2D-Bildinformationen Kandidatenkanten umfassen oder anderweitig beschreiben, die z. B. aus einigen oder allen visuellen Markierungen gebildet sein können, wie es vorstehend beschrieben ist. In einigen Fällen kann die Operation 308 vom Datenmanager 202 von 2C ausgeführt werden. Bei einer Ausführungsform kann das Erhalten oder Zugreifen auf die 2D-Bildinformationen 500 das Abrufen (oder allgemeiner das Empfangen) der 2D-Bildinformationen 500 von dem nicht flüchtigen computerlesbaren Medium 120 der 2A bis 2C oder von einer anderen Vorrichtung beinhalten. In einigen Situationen können die 2D-Bildinformationen 500 von dem Computersystem 101 von der 2D-Bilderfassungsvorrichtung 152/152B der 1A bis 1F z. B. über die Kommunikationsschnittstelle 130 von 2B empfangen und auf dem nicht flüchtigen computerlesbaren Medium 120 gespeichert worden sein, das einen temporären Puffer oder einen Langzeitspeicher für die 2D-Bildinformationen bereitstellen kann. Die 2D-Bildinformationen 500 können beispielsweise ein Bildspeichermuster, eine Textur und andere visuelle Informationen umfassen, die von der 2D-Bilderfassungsvorrichtung 152 empfangen und in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert wurden. Auf die 2D-Bildinformationen kann dann durch die Verarbeitungsschaltung 110 bei Operation 308 zugegriffen werden.
-
In einigen Situationen können die 2D-Bildinformationen, auf die zugegriffen wird, in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert sein und sie können zuvor von der Verarbeitungsschaltung 110 selbst basierend auf den von der 2D-Bilderfassungsvorrichtung 152 empfangenen Informationen erzeugt worden sein. Die Verarbeitungsschaltung 110 kann beispielsweise konfiguriert sein, ein 2D-Bild basierend auf Sensorrohdaten zu erzeugen, die von der 2D-Bilderfassungsvorrichtung 152 empfangen werden, und sie kann konfiguriert sein, das erzeugte 2D-Bild in dem nicht flüchtigen computerlesbaren Medium 120 zu speichern. Auf das 2D-Bild kann dann von der Verarbeitungsschaltung 110 in nachfolgenden Operationen zugegriffen werden (z. B. durch Abrufen der Daten von dem nicht flüchtigen computerlesbaren Medium 120).
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 310 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 einen 2D-Ort innerhalb der 2D-Bildinformationen (z. B. 500) bestimmt, der dem 3D-Ort des Objekts von Schritt 304 entspricht. In einigen Fällen kann der 2D-Ort eine Projektion des 3D-Orts von Schritt 304 sein, wie es nachstehend ausführlicher beschrieben wird, und kann als projizierte 2D-Ecke bezeichnet werden. In einigen Fällen kann der 2D-Ort eine 2D-Koordinate umfassen oder durch durch diese definiert sein, wie beispielsweise eine Pixelkoordinate [u v]T innerhalb der 2D-Bildinformationn. In solchen Fällen können die 2D-Bildinformationen mehrere Pixel, die ein 2D-Bild bilden, sein oder umfassen. Unter Bezugnahme auf 5F kann die Verarbeitungsschaltung 110 beispielsweise einen 2D-Ort 505A identifizieren, der dem 3D-Ort 405A von 5A bis 5D entspricht. Der 2D-Ort 505A kann auch eine Ecke 415A des Objekts 410 darstellen. Insbesondere kann der 2D-Ort 505A genau angeben, wo sich die Ecke 415A befindet, oder sie kann annähernd angeben, wo sich die Ecke 415A befindet.
-
Bei einer Ausführungsform kann der 2D-Ort
505A bestimmt werden, indem der 3D-Ort
405A von einem Bezugsrahmen der Raumstrukturinformationen
400/400A (der als 3D-Raum bezeichnet werden kann) auf einen Bezugsrahmen der 2D-Bildinformationen
500 (der als 2D-Raum bezeichnet werden kann) projiziert wird. In einigen Fällen kann der Bezugsrahmen der Raumstrukturinformationen
400/400A z. B. ein physisches 3D-Koordinatensystem sein, das relativ zu der Raumstrukturerfassungsvorrichtung
151/151A definiert ist, und der Bezugsrahmen der 2D-Bildinformationen
500 kann z. B. ein Pixelkoordinatensystem sein, das relativ zu der 2D-Bilderfassungsvorrichtung
152/152A definiert ist. Als Beispiel kann der Projektionsvorgang auf einer räumlichen Beziehung (z. B. relativer Ort und/oder relative Ausrichtung) zwischen der Raumstrukturerfassungsvorrichtung
151/151A und der 2D-Bilderfassungsvorrichtung
152/152A und auf einer Projektionsmatrix der 2D-Bilderfassungsvorrichtung
152/152A basieren. Die räumliche Beziehung kann durch eine Transformationsfunktion (z. B. eine Matrix) dargestellt werden, die konfiguriert ist, eine 3D-Koordinate umzuwandeln (z. B. [X Y Z]
T), die den 3D-Ort
405A in einem 3D-Koordinatensystem der Raumstrukturerfassungsvorrichtung
151/151A ausdrückt, in eine andere 3D-Koordinate (z. B. [X' Y' Z']
T), die den gleichen 3D-Ort
405A in einem 3D-Koordinatensystem der 2D-Bilderfassungsvorrichtung
152/152A ausdrückt. Insbesondere kann die Umrechnung ausgedrückt werden als:
-
Bei diesem Beispiel kann
die Transformationsfunktion und insbesondere eine Matrix sein, welche die räumliche Beziehung (z. B. relativer Ort und/oder relative Ausrichtung) zwischen der Raumstrukturerfassungsvorrichtung
151/151A und der 2D-Bilderfassungsvorrichtung
152/152A beschreibt. In einigen Fällen kann die Transformationsfunktion in dem nicht flüchtigen computerlesbaren Medium
120 gespeichert sein und kann manuell oder z. B. durch eine Stereokalibrierungsoperation bestimmt worden sein.
-
Im vorstehenden Beispiel kann die Verarbeitungsschaltung
110 konfiguriert sein, eine Pixelkoordinate [u v]
T zu bestimmen, die den 2D-Ort
505A basierend auf einer Projektionsmatrix des 2D-Bildsensors
152/152A definiert. Die Bestimmung kann wie folgt ausgedrückt werden:
-
Im vorstehenden Beispiel kann K eine Projektionsmatrix der 2D-Bilderfassungsvorrichtung 152/152A sein. Die Projektionsmatrix kann z. B. in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert sein und kann aus einer Kamerakalibrierung ermittelt worden sein. In einigen Fällen kann bei der Bestimmung der Pixelkoordinate auch eine durch den 2D-Bildsensor 152/152A eingeführte Linsenverzerrung berücksichtigt werden. Bei einer Ausführungsform kann die Steuerschaltung 110 die Operation 310 mehrmals ausführen, um mehrere 2D-Orte zu identifizieren, die mehreren 3D-Orten entsprechen. Die Steuerschaltung 110 kann, wie in 5F dargestellt, beispielsweise den 2D-Ort 505B identifizieren, der einem 3D-Ort 405B entspricht, der die Ecke 425A des Objekts 420 darstellt. Die Steuerschaltung 110 kann auch die 2D-Orte 505C/505D identifizieren, die den 3D-Orten 405C/405D entsprechen, welche die Ecken 435A/445A der Objekte 430/440 darstellen.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 312 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 einen 2D-Vektor bestimmt, der dem 3D-Vektor der Operation 306 entspricht. Bei einer Ausführungsform kann der 2D-Vektor eine Projektion des 3D-Vektors sein, wie es nachstehend ausführlicher beschrieben wird, und kann daher als projizierte 2D-Kante oder projizierte 2D-Objektkante bezeichnet werden. Unter Bezugnahme auf 5F kann die Verarbeitungsschaltung 110 beispielsweise einen 2D-Vektor 506A-1 identifizieren, der dem 3D-Vektor 406A-1 der 5C bis 5E entspricht. Bei einer Ausführungsform kann der 2D-Vektor 506A-1 durch mindestens zwei 2D-Koordinaten (z. B. genau zwei 2D-Koordinaten) definiert werden, wie beispielsweise mindestens zwei Pixelkoordinaten [u1 v1]T und [u2 v2]T. Der 2D-Vektor 506A-1 kann z. B. eine Ausrichtung angeben. In einigen Fällen kann der 2D-Vektor 506A-1 auch eine Richtungsabhängigkeit (z. B. von [u1 v1]T bis [u2 v2]T) und/oder eine Größe (z. B. eine Größe, die durch einen Abstand zwischen [u1 v1]T bis [u2 v2]T definiert ist) angeben. In einigen Fällen kann der 2D-Vektor 506A-1 verwendet werden, um eine Linie zu definieren, die eine bestimmte Ausrichtung und/oder einen Ort aufweist und keine Angabe oder Richtungsabhängigkeit und/oder Größe aufweist.
-
Bei einer Ausführungsform kann die Verarbeitungsschaltung 110 den 2D-Vektor 506A-1 durch Projektion des 3D-Vektors 406A-1 von einem Bezugsrahmen der Raumstrukturinformationen 400/400A auf einen Bezugsrahmen der 2D-Bildinformationen 500 wie vorstehend beschrieben identifizieren. Der Projektionsvorgang kann beispielsweise die Projektion der 3D-Koordinaten [X1 Y1 Z1]T und [X2 Y2 Z2]T umfassen, die teilweise oder vollständig den 3D-Vektor 406A-1 definieren, um 2D-Pixelkoordinaten [u1 v1]T und [u2 v2]T zu erhalten. Der Projektionsvorgang kann dem vorstehend beschriebenen Verfahren zur Bestimmung eines 2D-Orts in Schritt 310 ähnlich oder gleich sein. Bei einer Ausführungsform kann der 2D-Vektor 506A-1 mindestens teilweise durch die zwei 2D-Pixelkoordinaten definiert werden. In einigen Fällen kann der 2D-Vektor 506A-1 eine Ausrichtung einer Projektion des 3D-Vektors 406A-1 darstellen, die auch als projizierte Kantenausrichtung oder projizierte 2D-Kantenausrichtung bezeichnet werden kann.
-
Bei einer Ausführungsform kann das Bestimmen des 2D-Vektors 506A-1 Teil der Bestimmung einer 2D-Eckenausrichtung für eine Ecke sein, die durch den 2D-Ort von Schritt 310 und/oder den 3D-Ort von Schritt 304 dargestellt wird. In einigen Fällen kann die 2D-Eckenausrichtung eine Projektion der 3D-Eckenausrichtung von einem Bezugsrahmen der Raumstrukturinformationen 400/400A auf einen Bezugsrahmen der 2D-Bildinformationen 500 sein. Wie vorstehend angegeben, kann sich die 3D-Eckenausrichtung für eine Ecke, die durch einen 3D-Ort (z. B. 405A) dargestellt wird, z. B. auf eine Ausrichtung einer Objektstruktur in Bezug auf die Ecke beziehen und durch mehrere Vektoren definiert sein (z. B. 406A-1, 406A-2, 406A-3). Bei einer Ausführungsform kann sich die 2D-Eckenausrichtung für eine Ecke (z. B. 415A), die durch einen 2D-Ort (z. B. 505A) dargestellt wird, darauf beziehen, wie eine Fläche eines Objekts (z. B. die Fläche 411 für das Objekt 410) in Bezug auf die Ecke ausgerichtet ist. In einigen Fällen kann eine 2D-Eckenausrichtung durch zwei oder mehr 2D-Vektoren definiert sein. Wie durch die 4C und 5G veranschaulicht, kann beispielsweise eine 2D-Eckenausrichtung für die Ecke 415A des Objekts 410 (wie in 4C dargestellt), die durch den 2D-Ort 505A dargestellt wird, durch die Vektoren 506A-1 und 506A-2 (wie in 5G dargestellt) definiert werden. Ferner kann bei diesem Beispiel eine 2D-Eckenausrichtung für die Ecke 425A von Objekt 420, die durch den 2D-Ort 505B dargestellt wird, durch die Vektoren 506B-1 und 506B-2 definiert werden. Eine 2D-Eckenausrichtung für die Ecke 435A von Objekt 430, die durch den 2D-Ort 505C dargestellt wird, kann durch die Vektoren 506C-1 und 506C-2 definiert werden. Eine 2D-Eckenausrichtung für die Ecke 445A des Objekts 440, die durch den 2D-Ort 505D dargestellt wird, kann durch die Vektoren 506D-1 und 506D-2 definiert werden. Der Einfachheit halber können die Objektstrukturen für die Objekte 410-440 als von den Ecken 415A-445A nach innen verlaufend bezeichnet werden und die 2D-Vektoren (z. B. 506A-1, 506A-2 bis 506D-1, 506D-2) können ebenfalls als nach innen verlaufend bezeichnet werden.
-
Bei einer Ausführungsform kann die Verarbeitungsschaltung 110 konfiguriert sein, die vorstehend beschriebene 3D-Eckenausrichtung zu projizieren, um die 2D-Eckenausrichtung zu erhalten, indem sie einen oder mehrere der 3D-Vektoren, welche die 3D-Eckenausrichtung definieren, projiziert, um einen oder mehrere entsprechende 2D-Vektoren zu bestimmen, welche die 2D-Eckenausrichtung definieren. Die Verarbeitungsschaltung kann wie in 5E und 5G dargestellt beispielsweise eine 2D-Ausrichtung für eine Ecke 415A bestimmen, die durch den 2D-Ort 505A dargestellt wird, indem sie mindestens zwei 3D-Vektoren (z. B. 406A-1 und 406A-2) projiziert, die eine 3D-Eckenausrichtung für diese Ecke definieren. Der Projektionsvorgang kann zwei entsprechende 2D-Vektoren (z. B. 506A-1 und 506A-2) ergeben, die eine 2D-Eckenausrichtung für die Ecke 415A definieren, die durch den 2D-Ort 505A dargestellt wird. Wenn in einigen Fällen die zwei 2D-Vektoren orthogonal sind, können sie eine quadratische Ecke darstellen. Bei einer Ausführungsform kann die Verarbeitungsschaltung 110 konfiguriert sein, 3D-Eckenausrichtungen für andere Ecken (z. B. 425A, 435A, 445A von 4C) zu projizieren, um entsprechende 2D-Eckenausrichtungen zu bestimmen. Die Verarbeitungsschaltung 110 kann beispielsweise konfiguriert sein, die 2D-Vektoren 506B-1 und 506B-2 zu bestimmen, die eine 2D-Eckenausrichtung für eine durch den 2D-Ort 505B dargestellte Ecke definieren können, indem sie zwei entsprechende 3D-Vektoren, wie beispielsweise 406B-1 und 406B-2 in 5E, von 3D-Raum in 2D-Raum projiziert. Die Verarbeitungsschaltung 110 kann ferner auf ähnliche Weise die 2D-Vektoren 506C-1 und 506C-2 und/oder die 2D-Vektoren 506D-1 und 506D-2 bestimmen. Diese Vektoren können entsprechende 2D-Eckenausrichtungen für Ecken definieren, die entsprechend durch die 2D-Orte 505C und 505D dargestellt werden.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 314 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 eine Kantendetektionsregion bestimmt, wie beispielsweise eine Kantendetektionsregion 520 in 5H oder eine Kantendetektionsregion 521 in 51. Bei einer Ausführungsform kann die Kantendetektionsregion (z. B. 520/521) eine Region der 2D-Bildinformationen 500 sein, in der die Verarbeitungsschaltung 110 versuchen kann, eine Objektkante für ein Objekt zu identifizieren, wie beispielsweise die Objektkante 416C/436C. Das heißt, die Verarbeitungsschaltung 110 kann nach einer oder mehreren Kanten einzelner physischer Objekte suchen, die durch die 2D-Bildinformationen in der Kantendetektionsregion 520/521 dargestellt werden. Bei einer Ausführungsform kann die Verarbeitungsschaltung versuchen, die Objektkante aus Kandidatenkanten zu identifizieren, die in der Kantendetektionsregion 520/521 erscheinen oder anderweitig darin umfasst sind.
-
Bei Ausführungsformen basiert das Bestimmen der Kantendetektionsregion 520/521 innerhalb der 2D-Bildinformationen 500 auf dem in Schritt 310 identifizierten 2D-Ort, dem in Schritt 312 identifizierten 2D-Vektor und/oder der vorstehend beschriebenen 2D-Eckenausrichtung. In Bezug auf 5H kann die Kantendetektionsregion 520 beispielsweise eine Region der 2D-Bildinformationen 500 sein, die eine Ecke aufweist, die sich an dem in Schritt 310 bestimmten 2D-Ort (z. B. 505A) befindet. In einigen Fällen kann diese Region eine Ausrichtung aufweisen, die mit der 2D-Eckenausrichtung übereinstimmt. Eine Grenze der Region 520 (auch als eine Kante der Region 520 bezeichnet) kann beispielsweise eine gleiche Ausrichtung wie der 2D-Vektor 506A-1 aufweisen, der die 2D-Eckenausrichtung definiert.
-
Bei einer Ausführungsform kann die Verarbeitungsschaltung eine Größe und/oder einen Ort der Kantendetektionsregion 520 basierend auf einer definierten maximalen Objektgröße bestimmen. Die Größe der Kantendetektionsregion 520 kann sich z. B. auf eine oder mehrere Dimensionen der Kantendetektionsregion 520 beziehen, wie beispielsweise ihre Länge und Breite (z. B. in Pixeln). Die definierte maximale Objektgröße (die auch als maximale Kandidatengröße bezeichnet werden kann) kann sich z. B. auf eine oder mehrere Dimensionen, wie Länge und Breite (z. B. in cm) eines größten Objekts, das voraussichtlich in einem Sichtfeld der Raumstrukturerfassungsvorrichtung 151/151A und/oder der 2D-Bilderfassungsvorrichtung 152/152A platziert wird, beziehen. In einigen Fällen kann die definierte maximale Objektgröße einen Wert bzw. Werte aufweisen, die vordefiniert und in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert sind. Bei einem Beispiel kann die Verarbeitungsschaltung 110 basierend auf einer Projektionsmatrix des 2D-Bildsensors 152/152A oder basierend auf einer durch die Projektionsmatrix angegebenen Brennweite und Bildsensorgröße eine erste Zählung bestimmen, die angibt, wie viele Pixel einer Länge der definierten maximalen Objektgröße entsprechen, und eine zweite Zählung, die angibt, wie viele Pixel einer Breite der definierten maximalen Objektgröße entsprechen. Bei diesem Beispiel kann die Kantendetektionsregion 520 eine Länge aufweisen, die der ersten Zählung entspricht; und eine Breite, die der zweiten Zählung entspricht. Bei dieser Ausführungsform sollte jedes physische Objekt, das eine Größe aufweist, die gleich oder kleiner als die definierte maximale Objektgröße ist, in eine Region der 2D-Bildinformationen 500 projiziert werden, die in die Kantendetektionsregion 520 passt. Daher kann die Verarbeitungsschaltung 110 nach Objektkanten innerhalb der Kantendetektionsregion 520 und nicht nach Objektkanten außerhalb der Kantendetektionsregion 520 suchen. Bei einer Ausführungsform kann die Kantendetektionsregion 520 eine rechteckige Region mit einer Ecke sein, die an dem 2D-Ort 505A koinzidiert und die sich in einer Richtung erstreckt, die durch die 2D-Eckenausrichtung angegeben wird. Insbesondere kann sich die Kantendetektionsregion 520/521 in einer Richtung (z. B. einer nach innen gerichteten Richtung) erstrecken, die mit einer Richtung des 2D-Vektors 506A-1 und/oder einer Richtung des 2D-Vektors 506A-2 übereinstimmt, wenn die 2D-Vektoren eine Richtungsabhängigkeit angeben.
-
Bei einer Ausführungsform kann die Verarbeitungsschaltung eine Größe und/oder Lage der Kantendetektionsregion 521 von 51 basierend auf einer definierten minimalen Objektgröße und/oder der definierten maximalen Objektgröße bestimmen. Die definierte minimale Objektgröße (die auch als minimale Kandidatengröße bezeichnet werden kann) kann sich z. B. auf eine oder mehrere Dimensionen, wie Länge und Breite (z. B. in cm) eines kleinsten Objekts, das voraussichtlich in einem Sichtfeld der Raumstrukturerfassungsvorrichtung 151/151A und/oder der 2D-Bilderfassungsvorrichtung 152/152A platziert wird, beziehen. In einigen Fällen kann die definierte maximale Objektgröße und/oder die definierte minimale Objektgröße in einer Vorlage (z. B. Objekterkennungsvorlage) definiert werden, die auf dem nicht flüchtigen computerlesbaren Medium 120 gespeichert ist. In einigen Fällen kann die definierte minimale Objektgröße einen Wert bzw. Werte aufweisen, die vordefiniert und in dem nicht flüchtigen computerlesbaren Medium 120 gespeichert sind. Bei einem Beispiel kann wie in 5J veranschaulicht die definierte minimale Objektgröße einer ersten Region 522 in den 2D-Bildinformationen 500 entsprechen. Die erste Region 522 kann beispielsweise eine Projektion der definierten minimalen Objektgröße sein (z. B. basierend auf einer Brennweite und/oder Bildsensorgröße). Die erste Region 522 kann eine Ecke aufweisen, die sich an dem Ort 505A befindet, und kann eine Ausrichtung aufweisen, die mit dem Vektor 506A-1 und/oder 506A-2 übereinstimmt. Bei diesem Beispiel sollte jedes physische Objekt, das eine Größe aufweist, die gleich oder größer als die definierte minimale Objektgröße ist, auf Orte projizieren, die über die erste Region 522 hinausgehen. Wie in 5J weiter dargestellt, kann die definierte maximale Objektgröße einer zweiten Region 520 entsprechen, die mit der Kantendetektionsregion 520 von 5H identisch sein kann. In einigen Situationen kann die Verarbeitungsschaltung 110 nach Objektkanten außerhalb der ersten Region 522, aber innerhalb der zweiten Region 520 suchen. In solchen Situationen kann die Verarbeitungsschaltung 110 eine Kantendetektionsregion 521 verwenden, die sich außerhalb der ersten Region 522 aber innerhalb der zweiten Region 520 befindet.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 316 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 einen oder mehrere Cluster von Kandidatenkanten innerhalb der Kantendetektionsregion (z. B. 520/521) identifiziert, die keine Objektkante der durch die 2D-Bildinformationen dargestellten Objektstrukturen (z. B. 500) darstellen. 6A zeigt beispielsweise ein Beispiel von Clustern 603, 605, 607 von Kandidatenkanten in der Kantendetektionsregion 520, die keine Objektkante der Objektstruktur für das in den 2D-Bildinformationen 500 dargestellte Objekt 410 darstellen. Das Bestimmen, welche Kandidatenkanten zu den Clustern 603, 605, 607 gehören, wird nachstehend ausführlicher beschrieben. Bei einer Ausführungsform kann die Verarbeitungsschaltung 110 basierend auf einem Vergleich zwischen den Kandidatenkanten und dem in Operation 314 bestimmten 2D-Vektor (z. B. 506A-1) bestimmen, dass die zu den Clustern 603, 605, 607 gehörenden Kandidatenkanten keine Objektkante einer Objektstruktur darstellen. Die Verarbeitungsschaltung 110 kann beispielsweise konfiguriert sein, die entsprechenden Ausrichtungen der Kandidatenkanten von Cluster 603 mit einer Ausrichtung des 2D-Vektors zu vergleichen, die auch als eine projizierte Kantenausrichtung bezeichnet werden kann. Wie vorstehend angegeben, kann der 2D-Vektor (z. B. 506A-1) mindestens einen Teil einer 2D-Eckenausrichtung für eine Ecke definieren, die durch einen 2D-Ort (z. B. 505A) dargestellt wird, von dem sich der 2D-Vektor erstreckt. Daher kann der vorstehend beschriebene Ausrichtungsvergleich Teil eines Vergleichs der entsprechenden Ausrichtungen der Kandidatenkanten mit einer 2D-Eckenausrichtung für die durch den 2D-Ort (z. B. 505A) dargestellte Ecke sein. Wenn der Vergleich angibt, dass die Kandidatenkanten der Cluster 603, 605, 607 nicht ausreichend mit einer Ausrichtung des 2D-Vektors (z. B. 506A-1) übereinstimmen, dann kann die Verarbeitungsschaltung 110 bestimmen, dass die Kandidatenkanten in den Clustern 603, 605, 607 wahrscheinlich keine Objektkante darstellen. Wenn die Kandidatenkanten in den Clustern 603, 605, 607 z. B. nicht ausreichend parallel zu dem Vektor 506A-1 oder dem Vektor 506A-2 sind (der auch einen Teil der 2D-Eckenausrichtung definieren kann), dann können die Kandidatenkanten eine hohe Wahrscheinlichkeit aufweisen, falsche Kanten zu sein. Daher kann die Verarbeitungsschaltung 110 die Kandidatenkanten aus den 2D-Bildinformationen 500 herausfiltern oder allgemeiner die Kandidatenkanten bei der Suche nach einer Objektkante für das Objekt 410 ignorieren, um die Wahrscheinlichkeit zu verringern, dass eine falsche Kante als die Objektkante erkannt wird.
-
Bei einer Ausführungsform kann die Gruppierung von Kandidatenkanten in ein oder mehrere Cluster eine effizientere Verarbeitung von Kandidatenkanten in 2D-Bildinformationen (z. B. 500) ermöglichen, indem dem Computersystem 101 z. B. ermöglicht wird, die Verarbeitung der Kandidatenkanten in weniger Schritte zu konsolidieren. Die Clusterbildungsoperation kann ermöglichen, dass Kandidatenkanten auf einer Cluster-für-Cluster-Basis anstatt basierend auf einzelnen Kandidatenkanten verarbeitet (z. B. herausgefiltert) werden.
-
In einigen Fällen kann die Operation 316 das Identifizieren beinhalten, welche Kandidatenkanten in einen oder mehrere Cluster gruppiert werden sollen, und dann das Bestimmen, welche von diesem Cluster oder diesen Clustern keine Objektkante der Objekte (z. B. 410-440) darstellen, die in den 2D-Bildinformationen (z. B. 500) dargestellt werden. Der eine oder die mehreren Cluster können anhand der 2D-Bildinformationen 500 identifiziert werden. Das Computersystem 101 kann die Cluster von Kandidatenkanten durch irgendeine oder eine Kombination von mehreren Clusterbildungstechniken identifizieren.
-
Bei einer Ausführungsform kann das Computersystem 101 einen Cluster von Kandidatenkanten durch eine Ausrichtungsclusterbildungstechnik identifizieren, bei der die Kandidatenkanten basierend auf der Ähnlichkeit zwischen den entsprechenden Ausrichtungen der Kandidatenkanten gruppiert werden. Das Computersystem 101 kann bei dieser Ausführung beispielsweise einen Grad an Parallelität bestimmen, der von den Kandidatenkanten geteilt wird, und kann Kandidatenkanten, die parallel oder nahezu parallel zueinander sind, als zu einem gleichen Cluster gehörend identifizieren. 6A stellt beispielsweise einen Fall dar, bei dem das Computersystem 101 Kandidatenkanten, die parallel oder im Wesentlichen parallel zu einer der Kandidatenkanten in dem Cluster 603 sind, wie beispielsweise die Kandidatenkante 563A von 6B, als zum Cluster 603 gehörend identifiziert hat. Bei einer Ausführungsform kann das Identifizieren von Kandidatenkanten, die in ihrer Ausrichtung ähnlich sind, das Gruppieren von Kandidatenkanten beinhalten, deren Ausrichtungen im Vergleich zu einem Zielvektor für den Cluster innerhalb eines definierten Winkelschwellenwerts (z. B. einer ausgewählten Anzahl an Graden) liegen. Der Clusterzielvektor kann z. B. der in Schritt 312 bestimmte 2D-Vektor (z. B. 506A-1) sein. Jede Kandidatenkante kann bezüglich der Ausrichtung mit dem Clusterzielvektor verglichen werden, um den Winkel dieser Kandidatenkante zu bestimmen. Wenn der Winkel geringer als der Winkelschwellenwert ist, kann die Kandidatenkante in den Cluster aufgenommen werden. In einigen Fällen kann das Identifizieren eines Clusters basierend auf der Ausrichtungsähnlichkeit mit dem Clusterzielvektor in einem absoluten Clusterbilden resultieren, bei dem alle Kandidatenkanten, die sich innerhalb einer vordefinierten Region befinden und deren entsprechende Winkel mit dem 2D-Vektor (z. B. 506A-1) innerhalb eines definierten Schwellenwerts des Clusterzielvektors liegen, zu einem Cluster gruppiert werden. In diesen Fällen können Kandidatenkanten, deren Ausrichtung innerhalb des definierten Schwellenwerts des Clusterzielvektors liegt, als im Wesentlichen die gleiche Ausrichtung wie der Clusterzielvektor aufweisend betrachtet werden. Der definierte Schwellenwert, der auch als ein Winkelschwellenwert bezeichnet wird, kann z. B. innerhalb von 5°, 4°, 3°, 2° oder 1° liegen. Für solche Vergleiche, die in einem Winkel unterhalb des Winkelschwellenwerts resultieren, können die entsprechenden Kandidatenkanten zu Clustern gruppiert werden. Wenn der Winkelschwellenwert angepasst oder anderweitig dynamisch definiert werden kann, kann die resultierende Clusterbildung fließende Clustergrenzen aufweisen. Die Größe der Cluster kann basierend auf der Größe des Winkelschwellenwerts gesteuert werden. Größere Winkelschwellenwerte können in großen Clustern resultieren, während kleinere Winkelschwellenwerte in kleineren Clustern resultieren können. Das Auswählen eines geeigneten Winkelschwellenwerts kann wichtig sein, um den gesamten Winkelbereich in jedem Cluster zu steuern. Kandidatenkanten mit Winkelunterschieden innerhalb des Winkelschwellenwerts können als im Wesentlichen die gleiche Ausrichtung aufweisend angesehen werden. Geeignete Winkelschwellenwerte können innerhalb von 5°, 4°, 3°, 2° oder 1° liegen.
-
Bei einer Ausführungsform kann das Bestimmen eines Ähnlichkeitsgrads zwischen den entsprechenden Ausrichtungen zweier Kandidatenkanten basierend auf einem Punkt- oder Kreuzprodukt der zwei Kandidatenkanten erfolgen. Um z. B. einen Ähnlichkeitsgrad zwischen den entsprechenden Ausrichtungen der Kandidatenkanten 563A und 563B in 6B zu bestimmen, kann ein Kreuzprodukt zwischen zwei entsprechenden Vektoren bestimmt werden, wie beispielsweise den Vektoren v1 und v2 in 6B, die parallel zu den beiden Kandidatenkanten 563A und 563B sind. Eine Größe des Kreuzprodukts kann den Ähnlichkeitsgrad zwischen den entsprechenden Ausrichtungen der beiden Kandidatenkanten angeben. Das Kreuzprodukt f kann beispielsweise für zwei Kandidatenkanten, die genau parallel zueinander sind, Null sein. Wenn in einigen Fällen die Größe des Kreuzprodukts unter dem vorstehend beschriebenen definierten Winkelschwellenwert liegt, können die beiden Kandidatenkanten als ausreichend parallel zueinander betrachtet werden, um zu dem gleichen Cluster zu gehören.
-
Bei einer Ausführungsform kann das Computersystem 101 einen Cluster von Kandidatenkanten basierend auf einer Ausrichtungsclusterbildungstechnik identifizieren, die Kandidatenkanten, die kolinear zueinander sind, gruppiert. Die Gruppierung der Kandidatenkanten basierend auf Kolinearität kann sich auf die Gruppierung von Kandidatenkanten beziehen, die miteinander ausgerichtet oder im Wesentlichen zueinander ausgerichtet sind. Die 6A und 6C stellen beispielsweise ein Cluster 605 dar, das die Kandidatenkanten 565A-565D umfasst, die kolinear sind. Die Kandidatenkanten 505A-505D können mit anderen Worten (innerhalb eines bestimmten Schwellenwerts) zueinander ausgerichtet oder im Wesentlichen zueinander ausgerichtet sein (die Kandidatenkanten 565A-565D können auch aufgrund ihrer ähnlichen Ausrichtung gruppiert sein). Bei einer Ausführungsform, wie es in 6C veranschaulicht ist, kann die Ausrichtungsclusterbildungstechnik basierend auf der Bestimmung eines extrapolierten Vektors (z. B. einer Linie) 605A von mindestens einer der Kandidatenkanten 565A-565D ausgeführt werden. Der extrapolierte Vektor 605A kann mit der mindestens einen Kandidatenkante (z. B. 565A) kolinear sein, indem z. B. die mindestens eine Kandidatenkante nach außen z. B. zu den Grenzen der Kantendetektionsregion 520 von 6A extrapoliert wird. Bei dieser Ausführungsform kann die Ausrichtungsclusterbildungstechnik auf der Bestimmung basieren, welche anderen Kandidatenkanten (z. B. 565B-565D) auf den extrapolierten Vektor 605A fallen. Bei einer Ausführungsform kann die Ausrichtungsclusterbildungstechnik beinhalten, die entsprechenden extrapolierten Vektoren für die Kandidatenkanten 503A-503D zu bestimmen und zu bestimmen, ob sich die extrapolierten Vektoren überlappen. Wenn sich zum Beispiel zwei Kandidatenkanten bei der Extrapolation ihrer Länge überlappen, kann das Computersystem 101 sie als ausgerichtet betrachten.
-
Bei einer Ausführungsform kann die substanzielle Kolinearität (auch als im Wesentlichen ähnliche Ausrichtung bezeichnet) gemäß einem vordefinierten Winkelschwellenwert und/oder einem vorbestimmten Versatzschwellenwert definiert werden. Der Winkelschwellenwert für zwei Kandidatenkanten kann z. B. erfordern, dass ein Winkel zwischen den beiden Kandidatenkanten innerhalb des Winkelschwellenwerts liegt (z. B. eine bestimmte Anzahl an Grad, wie beispielsweise 5°, 4°, 3°, 2° oder 1°), oder dass die entsprechenden Winkel, die von jeder der beiden Kandidatenkanten mit dem 2D-Vektor von Schritt 312 gebildet werden, innerhalb des Winkelschwellenwerts liegen. Der Versatzschwellenwert für zwei Kandidatenkanten kann z. B. erfordern, dass die Kandidatenkanten einen kleineren Versatz als ein Versatzschwellenwert aufweisen. Bei einer Ausführungsform kann ein Versatz zwischen zwei Kandidatenkanten durch einen Abstand zwischen den entsprechenden Linien definiert werden, die von den Kandidatenkanten ausgehen oder anderweitig davon extrapoliert werden. Bei einer Ausführungsform kann der Versatz als ein Abstand zwischen den entsprechenden Mittelpunkten der extrapolierten Linien gemessen werden.
-
Bei einer Ausführungsform kann das Computersystem 101 basierend auf einer Annäherungsclusterbildungstechnik, die Kandidatenkanten gruppiert, die eine Annäherungsbedingung erfüllen, einen Cluster von Kandidatenkanten identifizieren. Die Annäherungsbedingung kann sich z. B. auf Kandidatenkanten beziehen, die sich nahe beieinander befinden. Die 6A und 6D stellen beispielsweise ein Cluster 607 dar, das die Kandidatenkanten 567A-567D umfasst, die sich nahe beieinander befinden. Bei einer Ausführungsform kann das Computersystem 101 bestimmen, ob die Annäherungsbedingung erfüllt ist, indem es bestimmt, ob ein Abstand zwischen Orten von Kandidatenkanten oder zwischen den aus den Kandidatenkanten extrapolierten Linien einen definierten Abstandsschwellenwert erfüllt. Bei einer Ausführungsform kann der Abstand zwischen den Orten der Kandidatenkanten (auch als Kandidatenkantenorte bezeichnet) ein Abstand zwischen den entsprechenden Mittelpunkten der Kandidatenkanten sein, wie beispielsweise den Mittelpunkten 568A-568D in 6D. Bei einer Ausführungsform kann der Abstand zwischen den Orten der Kandidatenkanten für zwei Kandidatenkanten ein maximaler Abstand zwischen den Kandidatenkanten sein, der ein Abstand zwischen entsprechenden Orten auf den beiden Kandidatenkanten sein kann, die sich am weitesten voneinander entfernt befinden.
-
Wie vorstehend angegeben, können mehrere Clusterbildungstechniken kombiniert werden, um zu identifizieren, welche Kandidatenkanten zu einem bestimmten Cluster gehören. Der Cluster 603 von 6B kann beispielsweise basierend auf einer Kombination der Ausrichtungsclusterbildungstechnik und der Annäherungsclusterbildungstechnik zu einem Cluster gruppiert werden. Insbesondere kann der Cluster 603 Kandidatenkanten umfassen, die entsprechende Ausrichtungen aufweisen, die einander ausreichend ähnlich sind und deren Abstände zueinander innerhalb eines definierten Abstandsschwellenwerts liegen. In einigen Fällen kann das Computersystem 101 eine Kandidatenkante als zu mehr als einem Cluster gehörend identifizieren.
-
6E zeigt ein Beispiel, bei dem das Computersystem 101 die Cluster 611, 613 und 609 z. B. basierend auf der vorstehend beschriebenen Ausrichtungsclusterbildungstechnik identifiziert. In einigen Fällen können die Cluster 609, 611 und 613 von der Identifizierung als Cluster der Operation 316 ausgeschlossen werden, da der Cluster der Operation 316 Kandidatenkanten umfassen kann, die mit hoher Wahrscheinlichkeit falsche Kanten sind, während die Kandidatenkanten der Cluster 609, 611 und 613 mit geringerer (z. B. Null) Wahrscheinlichkeit falsche Kanten sein können. Der Cluster 611 kann beispielsweise die Kandidatenkanten 561B und 561C umfassen, während der Cluster 613 die Kandidatenkanten 561A und 561D umfassen kann. Diese Kandidatenkanten 561A-561D stellen tatsächlich physische Kanten des Objekts 410 dar. Bei einigen Implementierungen kann eine 2D-Objektkante von Schritt 318 (die nachstehend beschrieben wird) aus den Clustern 609, 611, 613 identifiziert werden.
-
Bei einer Ausführungsform kann das Computersystem 101 aus einem Cluster (z. B. 603, 607, 605, 609, 611, 613) eine Kandidatenkante, die eine Länge unterhalb eines definierten Mindestlängenschwellenwerts aufweist, ausschließen. Dementsprechend können die Cluster bei dieser Ausführungsform jeweils aus Kandidatenkanten bestehen, deren Länge den definierten Mindestlängenschwellenwert überschreitet.
-
Während die Operation 316 das Identifizieren eines Clusters von Kandidatenkanten beinhaltet, die keine Objektkante darstellen, kann sie bei einigen Ausführungsformen zusätzlich oder alternativ eine oder mehrere einzelne Kandidatenkanten identifizieren, die keine Objektkante darstellen. Eine solche Bestimmung kann auf einem Vergleich zwischen der Ausrichtung einer einzelnen Kandidatenkante und einer Ausrichtung des 2D-Vektors (z. B. 506A-1) von Operation 314 basieren oder allgemeiner zwischen der Ausrichtung der einzelnen Kandidatenkante und der der 2D-Eckenausrichtung, wie es vorstehend beschrieben ist.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 318 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 eine Kandidatenkante als eine 2D-Objektkante identifiziert, die nicht Teil des in Operation 316 identifizierten Clusters von Kandidatenkanten ist. Die 2D-Objektkante, die identifiziert wird, kann auch als eine Segmentierungskante bezeichnet werden, da sie verwendet werden kann, um eine Segmentierungsoperation auszuführen, wie es nachstehend beschrieben wird. Da das Computersystem 101 den Cluster von Kanten der Operation 316 ignoriert, wenn es die 2D-Objektkante identifiziert, wobei der Cluster von Kanten der Operation 316 eine hohe Wahrscheinlichkeit aufweist, dass es falsche Kanten sind, kann die 2D-Objektkante, die in Operation 318 identifiziert wird, ferner eine höhere Wahrscheinlichkeit aufweisen, dass sie als korrekt identifizierte 2D-Objektkante verifiziert wird. Daher kann die 2D-Objektkante auch als eine verifizierbare Kante bezeichnet werden. Die Operation 318 kann beispielsweise beinhalten, die Kandidatenkante 561D als eine 2D-Objektkante in den 2D-Bildinformationen (z. B. 500) zu identifizieren. Die 2D-Objektkante kann z. B. die physische Kante 416D des Objekts 410 darstellen (wie veranschaulicht in 4C). Bei einer Ausführungsform kann die Kante (z. B. 416A), zu welcher der Vektor (z. B. 406A-1) von Operation 306 parallel ist, eine erste Kante der entsprechenden Objektstruktur (z. B. der Objektstruktur für Objekt 410) sein, während die 2D-Objektkante eine andere Kante der Objektstruktur darstellen kann, wie beispielsweise die Kante 416D oder Kante 416C.
-
Bei einer Ausführungsform kann die Operation 318 das Filtern der 2D-Bildinformationen beinhalten, um aktualisierte 2D-Bildinformationen zu erzeugen, welche die in Operation 316 identifizierten Cluster entfernen. Bei dieser Ausführungsform kann die Kante des 2D-Objekts aus den Kandidatenkanten identifiziert werden, die in den aktualisierten 2D-Bildinformationen verbleiben (z. B. die in den aktualisierten 2D-Bildinformationen immer noch erscheinen). 6F zeigt beispielsweise ein Beispiel für Cluster, die in Operation 316 identifiziert werden. Die Cluster umfassen die Cluster 603, 605, 607 sowie andere Cluster (die mit gestrichelten Grenzen dargestellt sind), die sich ganz oder teilweise innerhalb der Kantendetektionsregion 520 befinden können. 6G zeigt die aktualisierten 2D-Bildinformationen 500A, in denen die in 6F identifizierten Cluster entfernt wurden. Bei diesem Beispiel könnte die Operation 318 das Identifizieren der Kandidatenkante 561D als 2D-Objektkante von den aktualisierten 2D-Bildinformationen 500A beinhalten. Bei einer Ausführungsform können die 2D-Bildinformationen 500 von 6F aktualisiert werden, indem die Kandidatenkanten der Cluster von 6F markiert oder gekennzeichnet werden, um anzugeben, dass sie für Operation 318 ignoriert werden sollten. Bei einer Ausführungsform kann die Operation 318 das Identifizieren mehrerer 2D-Objektkanten beinhalten (oder mehrere Male ausgeführt werden, um diese zu identifizieren). Die Operation 318 kann beispielsweise das Identifizieren der Kandidatenkante 561D als eine erste 2D-Objektkante einer Objektstruktur für ein durch die 2D-Bildinformationen 500 dargestelltes Objekt und das Identifizieren der Kandidatenkante 561C als eine zweite Objektkante der Objektstruktur beinhalten.
-
Bei einer Ausführungsform kann das Computersystem 101 einen Cluster von Kandidatenkanten entweder als Teil von Operation 318 oder als Teil einer anderen Operation herausfiltern oder einzelne Kandidatenkanten aus den 2D-Bildinformationen herausfiltern. In einigen Fällen kann das Filtern oder anderweitige Eliminieren von Kandidatenkanten aus der Berücksichtigung als 2D-Objektkante (auch als eine Segmentierungskante bezeichnet) gemäß entsprechenden Ausrichtungen der Kandidatenkanten ausgeführt werden. Jeder Cluster in der Kantendetektionsregion (z. B. 520) oder in den 2D-Bildinformationen, dessen Kandidatenkanten entsprechende Ausrichtungen aufweisen, die (innerhalb eines bestimmten Schwellenwerts) nicht ausreichend mit einer in Operation 312 bestimmten Ausrichtung des 2D-Vektors übereinstimmen oder die genereller nicht ausreichend mit einer 2D-Eckenausrichtung übereinstimmen, die mit dem 2D-Vektor verbunden ist, kann beispielsweise von der Berücksichtigung als eine Segmentierungskante eliminiert werden. Bei diesem Beispiel kann die Ausrichtung des 2D-Vektors eine projizierte 2D-Kantenausrichtung sein.
-
Bei einer Ausführungsform kann die Filterung gemäß einer in Schritt 306 bestimmten Ausrichtung des 3D-Vektors erfolgen. Die Ausrichtung des 3D-Vektors kann eine 3D-Kantenausrichtung sein. Bei dieser Ausführungsform kann jeder Cluster in der Kantendetektionsregion (z. B. 520) oder in den 2D-Bildinformationen, der Kandidatenkanten aufweist, deren entsprechende Ausrichtungen nicht ausreichend mit der 3D-Kantenausrichtung übereinstimmen oder die nicht ausreichend mit einer 3D-Eckenausrichtung übereinstimmen, die mit der 3D-Kantenausrichtung verbunden ist, von der Berücksichtigung als eine Segmentierungskante eliminiert werden. Wie vorstehend angegeben, können die herausgefilterten Kandidatenkanten eine hohe Wahrscheinlichkeit aufweisen, falsche Kanten zu sein und daher eine geringe Wahrscheinlichkeit aufweisen, dass sie tatsächlich eine physische Kante eines in den 2D-Bildinformationen dargestellten Objekts darstellen.
-
Bei einer Ausführungsform kann die Filterung gemäß einem Ort einer Kandidatenkante ausgeführt werden. Eine Kandidatenkante, die sich zu weit entfernt von dem in Operation 310 bestimmten 2D-Ort (der eine Ecke einer Objektstruktur darstellt) oder zu weit von dem in Schritt 312 bestimmten 2D-Vektor (der eine projizierte 2D-Objektkante ist) befindet, herausgefiltert werden. In einigen Fällen kann die Kandidatenkante als zu weit entfernt betrachtet werden, wenn sie außerhalb der Kantendetektionsregion liegt (z. B. 520). In einigen Fällen kann die Kandidatenkante als zu weit entfernt betrachtet werden, wenn der Abstand zwischen einem Ort der Kandidatenkante und dem 2D-Ort oder dem 2D-Vektor einen Wert der vorstehend beschriebenen maximalen Objektgröße überschreitet. Der Ort der Kandidatenkante kann z. B. ein Mittelpunkt der Kandidatenkante oder einer extrapolierten Linie sein, wie es vorstehend beschrieben ist. Bei einer Ausführungsform kann jede beliebige Kombination der vorstehend beschriebenen Filtertechniken von dem Computersystem 101 verwendet werden. Die Cluster der Kandidatenkanten können beispielsweise allein nach der Ausrichtung oder nach einer Kombination von Ausrichtung und Ort gefiltert werden.
-
Unter Bezugnahme auf die 3A und 3B kann das Verfahren 300 ferner eine Operation 320 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 eine Segmentierung der Raumstrukturinformationen (z. B. 400/400A) basierend auf der in Operation 318 identifizierten 2D-Objektkante (die als eine Segmentierungskante bezeichnet werden kann) ausführt. Bei einer Ausführungsform kann die Operation 320 durch den Segmentierungsmanager 204 von 2C ausgeführt werden.
-
Bei einer Ausführungsform kann die Operation 320 das Bestimmen eines 3D-Vektors beinhalten, welcher der 2D-Objektkante entspricht. Bei dieser Ausführungsform kann der in Operation 306 identifizierte 3D-Vektor ein erster 3D-Vektor sein, der eine erste Kante einer Objektstruktur darstellt, während der in Operation 320 identifizierte 3D-Vektor eine zweite Kante der Objektstruktur darstellen kann. Die Segmentierung bei einer solchen Ausführungsform kann das Extrahieren eines Teils der Raumstrukturinformationen (z. B. 400/400A) beinhalten, die Punkte darstellen, die sich zwischen dem ersten 3D-Vektor und dem zweiten 3D-Vektor befinden. 7A zeigt beispielsweise ein Beispiel, bei dem der Vektor 406A-1 (bestimmt in Operation 306) ein erster 3D-Vektor ist, bei dem die in Operation 318 als 2D-Objektkante identifizierte Kandidatenkante 561D zur Bestimmung eines zweiten 3D-Vektors 406E-1 verwendet werden kann. Operation 320 kann die Extraktion eines Teils der Raumstrukturinformationen 400A beinhalten, die Punkte zwischen dem ersten Vektor 406A-1 und dem zweiten Vektor 406A-1 darstellen (einschließlich der Punkte, die auf die zwei Vektoren fallen). Der Vektor 406A-1 kann, wie vorstehend beschrieben, eine erste Kante der Objektstruktur für das Objekt 410 darstellen, während der Vektor 406E-1 eine weitere Kante (z. B. eine zweite Kante) der Objektstruktur darstellen kann.
-
Bei einer Ausführungsform kann der 3D-Vektor
406E-1 bestimmt werden, indem die als 2D-Objektkante identifizierte Kandidatenkante
561D von einem Bezugsrahmen der 2D-Bildinformationen
500/500A (die als 2D-Raum bezeichnet werden können) auf einen Bezugsrahmen der Raumstrukturinformationen
400/400A (die als 3D-Raum bezeichnet werden können) projiziert wird. In einigen Fällen kann der Projektionsvorgang die Umwandlung von mindestens zwei 2D-Pixelkoordinaten ([u v]
T-Koordinaten), die sich auf der Kandidatenkante
561D befinden, in entsprechende 3D-Koordinaten [X' Y' Z']
T umfassen, wobei die 3D-Koordinaten in Bezug auf die 2D-Bilderfassungsvorrichtung
152/152A ausgedrückt werden. Die Umwandlung kann z. B. auf einer inversen Projektionsmatrix der 2D-Bilderfassungsvorrichtung
152/152A basieren:
-
In einigen Fällen kann der vorstehende Ausdruck modifiziert werden, um eine durch den 2D-Bildsensor
152/152A verursachte Linsenverzerrung zu berücksichtigen. Die 3D-Koordinaten [X' Y' Z']
T können von als in einem Koordinatensystem der 2D-Bilderfassungsvorrichtung
152/152A als in einem Koordinatensystem der Raumstrukturerfassungsvorrichtung
151/151A ausgedrückt umgewandelt werden, wie beispielsweise basierend auf der folgenden Formel:
-
Bei diesem Beispiel kann
eine Matrix oder eine andere Transformationsfunktion sein, die eine Umkehrung von
ist, was vorstehend beschrieben wurde. Zwei oder mehr der 3D-Koordinaten [X Y Z]
T in diesem Beispiel können den 3D-Vektor
406E-1 definieren.
-
Wie vorstehend angegeben, kann die Operation 318 bei einer Ausführungsform das Identifizieren mehrerer Kandidatenkanten, wie beispielsweise die Kandidatenkanten 561C und 561D, als entsprechende 2D-Objektkanten beinhalten. Bei einer Ausführungsform kann die Operation 320 das Bestimmen mehrerer 3D-Vektoren umfassen, die den 2D-Objektkanten entsprechen. 7B veranschaulicht beispielsweise das Computersystem 101, das den 3D-Vektor 406E-1 identifiziert, welcher der Kandidatenkante 561D entspricht, und einen zusätzlichen 3D-Vektor 406F-1 identifiziert, welcher der Kandidatenkante 561C entspricht. Bei diesem Beispiel kann das Computersystem 101 einen Teil der Raumstrukturinformationen 400/400A extrahieren, die Punkte darstellen, die zwischen dem bzw. den in Operation 306 bestimmten 3D-Vektoren (z. B. 406A-1) und den in Operation 320 bestimmten 3D-Vektoren (z. B. 406E-1 und 406F-1) liegen. In einigen Fällen können der bzw. die in Operation 306 bestimmten und für die Segmentierung verwendeten 3D-Vektoren sowohl den Vektor 406A-1 als auch den Vektor 406A-2 umfassen (die zwei Vektoren können als Teil der Bestimmung der 3D-Eckenausrichtung bestimmt worden sein).
-
7C zeigt ein Beispiel, bei dem das Computersystem 101 den Teil 410A aus den Raumstrukturinformationen 400/400A extrahiert, wobei der Teil 410A die Objektstruktur für das Objekt 410 von 4A darstellt. Bei einer Ausführungsform kann die Operation 320 mehrmals wiederholt werden, um zusätzliche Teile aus den Raumstrukturinformationen 400/400A zu extrahieren. Die Extraktion kann die Raumstrukturinformationen 400/400A in Teile aufteilen oder anderweitig segmentieren, die z. B. den entsprechenden Objekten oder Objektstrukturen entsprechen, die durch die Raumstrukturinformationen 400/400A dargestellt werden. 7D veranschaulicht beispielsweise, wie die Raumstrukturinformationen 400/400A in die Teile 410A-440A segmentiert sind, die jeweils Objektstrukturen für die Objekte 410-440 repräsentieren.
-
Bei einer Ausführungsform kann ein Teil, der in Operation
320 extrahiert wird, zur Ausführung einer Objekterkennung verwendet werden, wie beispielsweise durch den Objekterkennungsmanager
208 von
2C. In einigen Fällen kann der Objekterkennungsmanager
208 konfiguriert sein, eine Detektionshypothese zu erzeugen, eine Detektionshypothese zu modifizieren und/oder eine Detektionshypothese basierend auf dem in Operation
320 extrahierten Teil der Raumstrukturinformationen
400/400A zu filtern. Die Detektionshypothese ist in US-Patentanmeldung Nr.
16/578,900 , eingereicht am 23. September 2019, ausführlicher beschrieben, die hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
-
Weitere Ausführungsformen, die mit der Offenbarung übereinstimmen, umfassen mindestens die folgenden.
-
Ein Aspekt der vorliegenden Offenbarung bezieht sich auf Ausführungsform 1, die ein Computersystem umfasst, das ein nicht flüchtiges computerlesbares Medium und eine Verarbeitungsschaltung umfasst. Die Verarbeitungsschaltung kann konfiguriert sein, wenn Raumstrukturinformationen, die entsprechend eine oder mehrere Objektstrukturen für ein oder mehrere Objekte beschreiben, auf dem nicht flüchtigen computerlesbaren Medium gespeichert sind, und wenn 2D-Bildinformationen, die das eine oder die mehreren Objekte beschreiben, auf dem nicht flüchtigen computerlesbaren Medium gespeichert sind, das Folgende auszuführen: Identifizieren, basierend auf den Raumstrukturinformationen, eines 3D-Orts, der eine Ecke einer Objektstruktur der einen oder der mehreren Objektstrukturen darstellt; Identifizieren, basierend auf den Raumstrukturinformationen, eines 3D-Vektors, der sich von dem 3D-Ort erstreckt und parallel zu einer Kante der Objektstruktur ist; Bestimmen eines 2D-Orts innerhalb der 2D-Bildinformationen, der dem 3D-Ort entspricht; Bestimmen eines 2D-Vektors innerhalb der 2D-Bildinformationen, der dem 3D-Vektor entspricht; Bestimmen einer Kantendetektionsregion innerhalb der 2D-Bildinformationen basierend auf dem 2D-Ort; Identifizieren eines Clusters von Kandidatenkanten innerhalb der Kantendetektionsregion, die keine Objektkante der einen oder der mehreren Objektstrukturen darstellen, gemäß einem Vergleich zwischen den Kandidatenkanten und dem 2D-Vektor; Identifizieren einer Kandidatenkantenkante, die nicht Teil des identifizierten Clusters von Kandidatenkanten ist, als 2D-Objektkante; und Ausführen einer Segmentierung der Raumstrukturinformationen basierend auf der 2D-Objektkante.
-
Ausführungsform 2 umfasst das Computersystem von Ausführungsform 1. Bei Ausführungsform 2 ist die Kante der Objektstruktur, zu welcher der 3D-Vektor parallel ist, eine erste Kante der Objektstruktur, und wobei die 2D-Objektkante, die von den 2D-Bildinformationen identifiziert wird, eine zweite Kante der Objektstruktur darstellt.
-
Ausführungsform 3 umfasst das Computersystem von Ausführungsform 1 oder 2. Bei Ausführungsform 3 umfassen die Raumstrukturinformationen eine Punktwolke, die Tiefeninformationen für mehrere Orte auf der Objektstruktur beschreiben, und wobei die 2D-Bildinformationen ein 2D-Bild sind, das keine Tiefeninformationen aufweist.
-
Ausführungsform 4 umfasst das Computersystem von einer der Ausführungsformen 1 bis 3. Bei Ausführungsform 4 ist die Verarbeitungsschaltung ferner konfiguriert, den Cluster von Kandidatenkanten aus den 2D-Bildinformationen herauszufiltern, um aktualisierte 2D-Bildinformationen zu erzeugen, wobei die 2D-Objektkante aus den Kandidatenkanten identifiziert wird, die in den aktualisierten 2D-Bildinformationen beschrieben sind.
-
Ausführungsform 5 umfasst das Computersystem von einer der Ausführungsformen 1 bis 4. Bei Ausführungsform 5 ist die Verarbeitungsschaltung konfiguriert, den Cluster von Kandidatenkanten als Kandidatenkanten zu identifizieren, deren entsprechende Ausrichtungen nicht mit einer Ausrichtung des 2D-Vektors übereinstimmen.
-
Ausführungsform 6 umfasst das Computersystem von einer der Ausführungsformen 1 bis 5. Bei Ausführungsform 6 ist die Verarbeitungsschaltung konfiguriert, den Cluster von Kandidatenkanten als einen Satz von Kandidatenkanten in der Kantendetektionsregion zu identifizieren, deren entsprechende Ausrichtungen im Wesentlichen gleich sind.
-
Ausführungsform 7 umfasst das Computersystem von einer der Ausführungsformen 1 bis 6. Bei Ausführungsform 7 ist die Verarbeitungsschaltung konfiguriert, den Cluster von Kandidatenkanten als einen Satz von Kandidatenkanten in der Kantendetektionsregion zu identifizieren, die entsprechende Orte aufweisen, die eine definierte Annäherungsbedingung erfüllen.
-
Ausführungsform 8 umfasst das Computersystem von einer der Ausführungsformen 1 bis 7. Bei Ausführungsform 8 ist die Verarbeitungsschaltung konfiguriert, den Cluster von Kandidatenkanten als einen Satz von Kandidatenkanten in der Kantendetektionsregion zu identifizieren, die im Wesentlichen kolinear sind.
-
Ausführungsform 9 umfasst das Computersystem von einer der Ausführungsformen 1 bis 8. Bei Ausführungsform 9 ist die Verarbeitungsschaltung ferner konfiguriert, einen Satz von Kandidatenkanten in der Kantendetektionsregion zu identifizieren, deren entsprechende Längen kleiner als ein definierter Längenschwellenwert sind, und den Satz von Kandidatenkanten aus den 2D-Bildinformationen herauszufiltern.
-
Ausführungsform 10 umfasst das Computersystem von einer der Ausführungsformen 1 bis 9. Bei Ausführungsform 10 ist die Verarbeitungsschaltung konfiguriert, die Kantendetektionsregion zu identifizieren durch: Identifizieren einer ersten Region der 2D-Bildinformationen, die sich von dem 2D-Ort erstreckt und eine definierte minimale Objektgröße darstellt; Identifizieren einer zweiten Region der 2D-Bildinformationen, die sich von dem 2D-Ort erstreckt und eine definierte maximale Objektgröße darstellt; und Bestimmen der Kantendetektionsregion als eine Region, die sich außerhalb der ersten Region und innerhalb der zweiten Region befindet.
-
Ausführungsform 11 umfasst das Computersystem von einer der Ausführungsformen 1 bis 10. Bei Ausführungsform 11 ist der 3D-Vektor ein erster 3D-Vektor und stellt eine erste Kante der Objektstruktur dar, wobei die Verarbeitungsschaltung konfiguriert ist, eine Segmentierung der Raumstrukturinformationen auszuführen durch: Identifizieren eines zweiten 3D-Vektors, der dem 2D-Vektor entspricht und der eine zweite Kante der Objektstruktur darstellt; und Extrahieren eines Teils der Raumstrukturinformationen, der Orten auf der Objektstruktur entspricht, die sich zwischen dem ersten 3D-Vektor und dem zweiten 3D-Vektor befinden.
-
Ausführungsform 12 umfasst das Computersystem von einer der Ausführungsformen 1 bis 11. Bei Ausführungsform 12 werden die Raumstrukturinformationen von einer Raumstrukturerfassungsvorrichtung empfangen oder basieren auf Informationen, die von der Raumstrukturerfassungsvorrichtung erzeugt werden, und die 2D-Bildinformationen werden von einer zweiten Kamera einer 2D-Bilderfassungsvorrichtung empfangen oder basieren auf Informationen, die von der 2D-Bilderfassungsvorrichtung erzeugt werden.
-
Ausführungsform 13 umfasst das Computersystem von einer der Ausführungsformen 1 bis 12. Bei Ausführungsform 13 umfasst der Vergleich zwischen den Kandidatenkanten des Clusters und dem 2D-Vektor einen Vergleich zwischen entsprechenden Ausrichtungen der Kandidatenkanten und einer Ausrichtung des 2D-Vektors.
-
Es wird einem Durchschnittsfachmann offensichtlich sein, dass andere geeignete Modifikationen und Anpassungen an den hierin beschriebenen Verfahren und Anwendungen vorgenommen werden können, ohne vom Umfang einer der Ausführungsformen abzuweichen. Die vorstehend beschriebenen Ausführungsformen sind veranschaulichende Beispiele, und es sollte nicht der Schluss gezogen werden, dass die vorliegende Erfindung auf diese besonderen Ausführungsformen beschränkt ist. Es versteht sich, dass verschiedene Ausführungsformen, die hierin offenbart werden, in anderen Kombinationen kombiniert werden können, als die speziell in der Beschreibung und den begleitenden Zeichnungen dargestellten Kombinationen. Es versteht sich auch, dass abhängig vom Beispiel bestimmte Handlungen oder Ereignisse eines der hierin beschriebenen Prozesse oder Verfahren in einer anderen Reihenfolge ausgeführt, hinzugefügt, zusammengefügt oder ganz ausgelassen werden können (z. B. können nicht alle beschriebenen Handlungen oder Ereignisse zur Ausführung der Verfahren oder Prozesse erforderlich sein). Des Weiteren werden zwar bestimmte Merkmale von Ausführungsformen aus Gründen der Klarheit als von einer einzelnen Komponente, einem einzelnen Modul oder einer einzelnen Einheit ausgeführt beschrieben, jedoch versteht es sich, dass die hierin beschriebenen Merkmale und Funktionen von jeder beliebigen Kombination von Komponenten, Einheiten oder Modulen ausgeführt werden können. Daher können verschiedene Änderungen und Modifikationen von einem Fachmann vorgenommen werden, ohne vom Sinn oder Umfang der Erfindung, wie er in den beigefügten Ansprüchen definiert ist, abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 16/578900 [0053, 0098]