DE102020120526A1 - Verfahren und computersystem zur objektidentifizierung - Google Patents

Verfahren und computersystem zur objektidentifizierung Download PDF

Info

Publication number
DE102020120526A1
DE102020120526A1 DE102020120526.0A DE102020120526A DE102020120526A1 DE 102020120526 A1 DE102020120526 A1 DE 102020120526A1 DE 102020120526 A DE102020120526 A DE 102020120526A DE 102020120526 A1 DE102020120526 A1 DE 102020120526A1
Authority
DE
Germany
Prior art keywords
corner
points
spatial structure
vertex
corners
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020120526.0A
Other languages
English (en)
Inventor
Jinze Yu
Xutao Ye
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mujin Inc
Original Assignee
Mujin Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mujin Inc filed Critical Mujin Inc
Publication of DE102020120526A1 publication Critical patent/DE102020120526A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/64Analysis of geometric attributes of convexity or concavity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

Es werden Systeme und Verfahren zur Verarbeitung von Raumstrukturdaten bereitgestellt. Das System greift auf Raumstrukturdaten zu, welche die Objektstruktur beschreiben und Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben. Das System extrahiert ferner aus den Raumstrukturdaten einen Teil der Raumstrukturdaten, die für eine Schicht der mehreren Schichten repräsentativ sind. Das System identifiziert aus dem Teil der Raumstrukturdaten mehrere Eckpunkte, die eine Kontur der Schicht beschreiben. Zusätzlich identifiziert das System konvexe Ecken der Schicht basierend auf den mehreren Eckpunkten und führt eine Objekterkennung gemäß den konvexen Ecken aus.

Description

  • Gebiet der Erfindung
  • Die vorliegende Offenbarung betrifft Computersysteme und Verfahren zur Verarbeitung von Raumstrukturdaten. Insbesondere betreffen Ausführungsformen davon das Detektieren von Ecken eines Objekts, dessen Struktur in Raumstrukturdaten beschrieben ist.
  • 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 Raumstrukturdaten, 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
  • Bei einer Ausführungsform wird ein Computersystem mit einem nicht flüchtigen computerlesbaren Medium und einer Verarbeitungsschaltung bereitgestellt. Die Verarbeitungsschaltung ist konfiguriert, wenn Raumstrukturdaten, welche die Objektstruktur beschreiben, auf dem nicht flüchtigen computerlesbaren Medium gespeichert sind, das folgende Verfahren auszuführen: Zugreifen auf die Raumstrukturdaten, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren, aus den Raumstrukturdaten, eines Teils der Raumstrukturdaten, die für eine Schicht der mehreren Schichten repräsentativ sind; Identifizieren, aus dem Teil der Raumstrukturdaten, mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben. Bei einer Ausführungsform weist das nicht flüchtige computerlesbare Medium Befehle auf, die bei Ausführung durch die Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen, das vorstehend beschriebene Verfahren auszuführen.
  • Figurenliste
  • Die 1A bis 1F veranschaulichen eine Raumstrukturerfassungsvorrichtung und ein Computersystem, das für den Zugriff auf und die Verarbeitung von Raumstrukturdaten konfiguriert ist, die mit Ausführungsformen hiervon übereinstimmen.
    • Die 2A bis 2C zeigen Blockdiagramme, die ein Computersystem veranschaulichen, das konfiguriert ist, Raumstrukturdaten in Übereinstimmung mit den Veranschaulichungen dieses Dokuments zu verarbeiten.
    • 3 stellt ein Flussdiagramm bereit, das ein Verfahren zur Verarbeitung von Raumstrukturdaten gemäß einer Ausführungsform davon veranschaulicht.
    • Die 4A bis 4E veranschaulichen Aspekte des Betriebs eines Computersystems, die mit den Ausführungsformen dieses Dokuments übereinstimmen.
    • Die 5A bis 5G veranschaulichen Aspekte des Betriebs eines Computersystems, die mit den Ausführungsformen dieses Dokuments übereinstimmen.
    • Die 6A bis 6C veranschaulichen Aspekte des Betriebs eines Computersystems, die mit den Ausführungsformen dieses Dokuments übereinstimmen. Detaillierte Beschreibung der Figuren
  • Die vorliegende Offenbarung stellt Systeme und Verfahren zur Verarbeitung von Raumstrukturdaten, wie beispielsweise einer Punktwolke, bereit und betrifft insbesondere das Identifizieren von konvexen Ecken von den Raumstrukturdaten. Bei einer Ausführungsform können die Raumstrukturdaten eine Struktur von einem oder mehreren Objekten beschreiben (die als Objektstruktur bezeichnet werden kann) und die konvexen Ecken können im Allgemeinen äußeren Ecken der Objektstruktur entsprechen. In einigen Fällen können die konvexen Ecken zur Ausführung von Objekterkennung verwendet werden, was das Bestimmen des Objekts oder Objekttyps, der durch die Raumstrukturdaten dargestellt wird, einschließen kann. Wenn die Raumstrukturdaten durch eine Raumstrukturerfassungsvorrichtung, wie beispielsweise eine Tiefenkamera, erfasst werden, kann die Objekterkennung bestimmen, welches Objekt oder welcher Objekttyp von der Raumstrukturerfassungsvorrichtung erfasst wird oder erfasst wurde. In einigen Fällen kann eine Ausgabe der Objekterkennung von einem Robotersteuersystem verwendet werden, um die Bewegung eines Roboters oder einer anderen Maschine zu steuern, die mit dem oder den von der Raumstrukturerfassungsvorrichtung erfassten Objekten interagiert. Der Roboter kann beispielsweise zum Greifen, Heben und/oder Bewegen von Objekten in einem Warenlager, einer Fabrik oder einer anderen Umgebung des Roboters konfiguriert sein. Eine Führungsbewegung des Roboters kann die Anpassung der Roboterbewegung an verschiedene Objekte oder Objekttypen umfassen, die unterschiedliche Formen, Größen und/oder Ausrichtungen aufweisen können. Insbesondere kann die Implementierung einer solchen Führung die Ausführung einer Objekterkennung beinhalten, um zu erkennen, mit welchem Objekt oder Objekttyp der Roboter interagiert oder interagieren wird, oder um eine Form, Größe und/oder Ausrichtung des Objekts zu erkennen. Das Bereitstellen einer genauen Objekterkennung zur Verwendung durch das Robotersteuersystem kann die Effizienz und/oder Effektivität des Betriebs der Roboter erhöhen.
  • Bei einem Beispiel kann der Roboter mit einem Stapel von Einzelobjekten interagieren, wie beispielsweise mit einem Stapel von Kisten als Teil eines Depalettierungsvorgangs. Die Ausführung der Objekterkennung in einem solchen Szenario kann eine Herausforderung darstellen, da es schwierig sein kann, die Grenzen zwischen einzelnen Objekten und dem Ort, an dem die Ecken jedes Objekts beginnen, zu detektieren. Die Objekterkennung kann durch die Erkennung und Identifizierung von einer oder mehreren Konturen, Flächen, Kanten und/oder Ecken einzelner Objekte erweitert oder anderweitig verbessert werden. Insbesondere kann die Objekterkennung durch das Identifizieren konvexer Ecken einer Objektstruktur (d. h., einer Struktur eines oder mehrerer Objekte) verbessert werden. Die Objekterkennung kann beispielsweise nur auf den konvexen Ecken und nicht auf allen in den Raumstrukturdaten identifizierten Punkten beruhen. Die alleinige Verwendung der konvexen Ecken zur Objekterkennung kann ein ausreichendes Maß an Genauigkeit bieten und die für die Objekterkennung erforderliche Zeit oder Verarbeitungsleistung reduzieren.
  • Bei einer Ausführungsform kann das Identifizieren der konvexen Ecken schichtweise erfolgen. Ein Stapel von Objekten kann beispielsweise eine Objektstruktur aufweisen, die mehrere Schichten bildet. Jede Schicht kann z. B. eine bestimmte Fläche der Objektstruktur darstellen (z. B. eine Fläche, die parallel zum Boden ist) und kann im Vergleich zu anderen Schichten der Objektstruktur eine andere Höhe oder Tiefe aufweisen. In einem solchen Fall kann für jede Schicht der Objektstruktur ein Satz von konvexen Ecken bestimmt werden. In einer Ausführungsform können konvexe Ecken aus oder allgemeiner basierend auf Eckpunkten einer bestimmten Schicht der Objektstruktur identifiziert werden. Die Eckpunkte können Punkte sein, die eine Kontur der Schicht beschreiben, und können daher auch als Konturpunkte bezeichnet werden.
  • Bei einigen Implementierungen kann das Identifizieren der konvexen Ecken das Bestimmen der Eckpunkte in den Raumstrukturdaten als 3D-Ecken beinhalten. Die 3D-Ecken können 3D-Eckpunkte sein, die ein Orthogonalitätskriterium erfüllen, wobei sich die 3D-Ecken im Allgemeinen auf einen Eckpunkt in den Raumstrukturdaten beziehen können, der mit geringer Wahrscheinlichkeit ein Artefakt ist, das als Resultat von Rauschen, Interferenzen oder anderen Fehlerquellen in die Raumstrukturdaten eingeführt wurde. Die Raumstrukturdaten können beispielsweise eine Punktwolke umfassen, die mehrere Punkte identifiziert oder anderweitig beschreibt (z. B. mittels Koordinaten), die Orte auf einer oder mehreren Flächen einer Objektstruktur sind. Einige der in der Punktwolke identifizierten Punkte können Artefakte sein, die keinem physischen Punkt in der Objektstruktur entsprechen. Einige der in der Punktwolke identifizierten Punkte können mit anderen Worten als entsprechende Eckpunkte der Struktur erscheinen, aber diese Eckpunkte, die in den Raumstrukturdaten erscheinen, können Artefakte sein, die keinen tatsächlichen physischen Eckpunkt auf der Objektstruktur darstellen. Daher bezieht sich ein Aspekt der Bestimmung, ob ein Eckpunkt ein 3D-Eckpunkt oder eine 3D-Ecke ist, hierin auf das Bestimmen, ob ein bestimmter von den Raumstrukturdaten identifizierter Eckpunkt einen physischen Eckpunkt auf der Objektstruktur darstellt oder ob der identifizierte Eckpunkt ein Artefakt ist.
  • Bei einer Ausführungsform kann das Bestimmen, ob ein aus den Raumstrukturdaten identifizierter Eckpunkt ein Artefakt ist, darauf basieren, ob der Eckpunkt ein Längenkriterium oder mehrere Längenkriterien erfüllt. Das Längenkriterium kann z. B. dazu verwendet werden, um zu beurteilen, ob ein Abstand zwischen einem bestimmten Eckpunkt in den Raumstrukturdaten und seinem benachbarten Eckpunkt einen definierten Längenschwellenwert (auch als Schwellenwertlänge bezeichnet) erfüllt oder überschreitet. Das Längenkriterium kann einige Situationen widerspiegeln, in denen ein Merkmal (z. B. eine Kante einer Objektstruktur), das als Ergebnis eines Artefakts in den Raumstrukturdaten erscheint, im Vergleich zu anderen tatsächlichen physischen Merkmalen der Objektstrukturdaten wahrscheinlich klein ist, da z. B. das Bilderfassungsrauschen oder eine andere Fehlerquelle, die das Artefakt verursacht hat, nur einen lokalisierten Teil der Raumstrukturdaten beeinflussen kann. Daher kann sich ein Eckpunkt, der aus dem Artefakt resultiert oder Teil des Artefakts ist, wahrscheinlich in der Nähe eines benachbarten Eckpunkts oder eines anderen benachbarten Merkmals befinden. In einem solchen Beispiel kann ein Eckpunkt, der das Längenkriterium nicht erfüllt, wahrscheinlich als Artefakt betrachtet und bei der Verwendung zur Identifizierung konvexer Ecken ignoriert oder davon ausgeschlossen werden. Ein Eckpunkt, der das oder die Längenkriterien erfüllt, kann für das Identifizieren konvexer Ecken verwendet werden.
  • Bei einer Ausführungsform kann ein Orthogonalitätskriterium für einen 3D-Eckpunkt (oder jeden anderen Eckpunkt) bewertet werden, um zu bestimmen, ob der 3D-Eckpunkt eine 3D-Ecke sein kann. Insbesondere kann der Eckpunkt ein Schnittpunkt zweier Kanten der Objektstruktur sein. Bei dieser Ausführungsform kann die 3D-Ecke diejenigen 3D-Eckpunkte umfassen, bei denen die beiden Kanten orthogonal oder im Wesentlichen orthogonal zueinander (auch als im Wesentlichen senkrecht zueinander bezeichnet) sind. Zumindest einige der konvexen Ecken können aus den 3D-Ecken ausgewählt oder anderweitig identifiziert werden. Bei einer Ausführungsform kann das Orthogonalitätskriterium auch dazu beitragen, Eckpunkte, die ein Artefakt sein können, zu detektieren und auszuschließen. Bei einer Ausführungsform kann das Orthogonalitätskriterium die Objekterkennung für Situationen vereinfachen, in denen erwartet wird, dass die meisten oder alle zu erkennenden Objekte (z. B. Kisten) orthogonale Ecken aufweisen.
  • Bei einer Ausführungsform kann das Identifizieren der konvexen Ecken das Bestimmen einer Konvexität einer 3D-Ecke beinhalten. In einigen Fällen kann die Konvexität des Eckpunkts basierend auf einem Kreuzprodukt zwischen zwei Vektoren bestimmt werden, die vom Eckpunkt weg und/oder in Richtung von zwei entsprechenden benachbarten Eckpunkten zeigen. Das Kreuzprodukt kann ein Kreuzproduktvektor sein oder einen Kreuzproduktvektor umfassen, der orthogonal zu zwei Vektoren ist. Bei dieser Ausführungsform kann die Konvexität des Eckpunkts basierend darauf bestimmt werden, ob der Kreuzproduktvektor in eine oder entlang einer definierten Richtung zeigt. In einigen Fällen können die mehreren Eckpunkte über mehrere Iterationen in einer Reihenfolge bewertet werden, die im Uhrzeigersinn oder entgegen dem Uhrzeigersinn entlang der Kontur der Schicht durch die Eckpunkte fortschreitet. In solchen Fällen kann die definierte Richtung, gegen die der Kreuzproduktvektor verglichen wird, darauf basieren, ob die mehrfachen Iterationen im Uhrzeigersinn durch die Eckpunkte oder entgegen dem Uhrzeigersinn durch die Eckpunkte fortschreiten.
  • Bei einer Ausführungsform kann eine vereinigte Ecke erzeugt werden, wenn ein Eckpunkt ein Orthogonalitätskriterium nicht erfüllt. Die vereinigte Ecke kann eine orthogonale Ecke sein, die sich in der Nähe des Eckpunkts befindet und basierend auf dem Eckpunkt erzeugt wird. Der Eckpunkt kann sich beispielsweise an einem Schnittpunkt einer ersten und einer zweiten Kante befinden, die im Wesentlichen nicht orthogonal sind. Das Erzeugen der vereinigten Ecke kann das Identifizieren einer dritten Kante beinhalten, die orthogonal zur ersten Kante (oder zur zweiten Kante) ist. In einigen Fällen können die Kanten Vektoren oder Linien entsprechen, die sich entlang der Vektoren erstrecken, wie es nachstehend ausführlicher beschrieben wird. Wenn die vereinigte Ecke konvex ist, kann sie als konvexe Ecke identifiziert werden.
  • In einigen Fällen kann die Objekterkennung das Bestimmen der Erzeugung oder Änderung einer Detektionshypothese basierend auf den konvexen Ecken beinhalten. In einigen Fällen kann die Objekterkennung das Filtern einer auf den konvexen Ecken basierenden Detektionshypothese beinhalten. Die Detektionshypothese kann sich z. B. auf den Versuch beziehen, Raumstrukturdaten mit einer Vorlage abzugleichen, wie beispielsweise durch Abbilden von Vorlagenmerkmalen der Vorlage auf die Raumstrukturdaten. Die Vorlage kann die Objektstruktur für ein Objekt oder einen Objekttyp beschreiben, und die Vorlagenmerkmale können z. B. eine Form der Objektstruktur, ihre Ecken oder Kanten oder andere Merkmale der Objektstruktur identifizieren. Die konvexen Ecken können z. B. den Prozess des Abbildens der Vorlagenmerkmale auf die Raumstrukturdaten vereinfachen und/oder die Genauigkeit dieses Abbildens verbessern. Die Objekterkennung kann beispielsweise die Merkmale der Vorlage nur mit den konvexen Ecken vergleichen, anstatt mit allen in den Raumstrukturdaten identifizierten Punkten.
  • 1A veranschaulicht ein System 100 zur Erzeugung und Verarbeitung von Raumstrukturdaten (Raumstrukturdaten werden nachstehend ausführlicher beschrieben). Das System 100 kann ein Computersystem 101 und eine Raumstrukturerfassungsvorrichtung 151 umfassen. Die Raumstrukturerfassungsvorrichtung 151 kann bei einer Ausführungsform konfiguriert sein, Raumstrukturdaten zu erzeugen und konfiguriert sein, die Raumstrukturdaten für das Computersystem 101 verfügbar zu machen, das konfiguriert sein kann, die Raumstrukturdaten zu verarbeiten. In einigen Fällen können sich das Computersystem 101 und die Raumstrukturerfassungsvorrichtung 151 in den gleichen Räumlichkeiten, wie beispielsweise einem Warenlager oder einer Fabrik, befinden. In einigen Fällen können sich das Computersystem 101 und die Raumstrukturerfassungsvorrichtung 151 voneinander entfernt befinden.
  • Die Raumstrukturerfassungsvorrichtung 151 kann konfiguriert sein, die Raumstrukturdaten über eine Kommunikationsschnittstelle und/oder eine Datenspeichervorrichtung (die auch als Speichervorrichtung bezeichnet werden kann) zur Verfügung zu stellen. 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 sein oder von der Raumstrukturerfassungsvorrichtung 151 getrennt sein. Die Speichervorrichtung 198 kann sich beispielsweise in einem Datenzentrum befinden, das sich von der Raumstrukturerfassungsvorrichtung 151 entfernt befindet, und kann von der Raumstrukturerfassungsvorrichtung 151 erzeugte Raumstrukturdaten empfangen und speichern. Bei dieser Ausführungsform kann das Computersystem 101 konfiguriert sein, auf die Raumstrukturdaten zuzugreifen, indem es die Daten von der Datenspeichervorrichtung 198 abruft (oder genereller 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, Daten zu speichern und den Zugriff darauf zu ermöglichen. 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, ein 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, Raumstrukturdaten über ein 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 dem System 100B kann das Computersystem 101 konfiguriert sein, Raumstrukturdaten von der Raumstrukturerfassungsvorrichtung 151 über ein Netzwerk 199 zu empfangen. Das Netzwerk 199 kann eine einzelne Netzwerkverbindung oder eine Reihe von Netzwerkverbindungen bereitstellen, um dem Computersystem 101 zu erlauben, Raumstrukturdaten zu empfangen, die mit den hierin beschriebenen Ausführungsformen übereinstimmen.
  • 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 oder SDMA. Bei einigen Ausführungsformen können verschiedene Arten von Daten über verschiedene Verbindungen und Standards übertragen werden. Bei anderen Ausführungsformen können die gleichen Datentypen ü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 Netztopologie aufweisen, die einem Durchschnittsfachmann bekannt ist, der 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 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 Raumstrukturdaten ü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 zur Erzeugung und Verarbeitung von Raumstrukturdaten, das eine Ausführungsform des Systems 100 sein kann. Das System 100C umfasst ein Computersystem 101A, eine Raumstrukturerfassungsvorrichtung 151A, die Speichervorrichtung 198 und das Netzwerk 199. Die Raumstrukturerfassungsvorrichtung 151A ist konfiguriert, Raumstrukturdaten zu erfassen oder anderweitig zu erzeugen, die eine Struktur eines oder mehrerer Objekte 190 beschreiben. Das Computersystem 101A ist konfiguriert, auf Raumstrukturdaten zuzugreifen und diese zu verarbeiten. Bei der Ausführungsform von 1D kann das Computersystem 101A ein Desktop-Computer sein, der eine Ausführungsform des Computersystems 101 von 1A ist, und die Raumstrukturerfassungsvorrichtung 151A kann eine Tiefenmessungskamera sein (z. B. eine Time-Of-Flight-Kamera oder eine Strukturlichtkamera), die eine Ausführungsform der Raumstrukturerfassungsvorrichtung 151 von 1A ist. Bei diesem Beispiel kann das Computersystem 101A ferner über jedes geeignete Mittel auf die Raumstrukturdaten zugreifen. Das Computersystem 101A kann die Raumstrukturdaten von der Raumstrukturerfassungsvorrichtung 151 beispielsweise über die Speichervorrichtung 198, über das Netzwerk 199 und/oder über eine direkte Verbindung zur Raumstrukturerfassungsvorrichtung 151A abrufen (oder genereller empfangen).
  • Bei einer Ausführungsform können die Raumstrukturdaten, 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, Raumstrukturdaten zu erzeugen und zu verarbeiten und einen Roboter 161 basierend auf der Verarbeitung zu steuern. Die Raumstrukturerfassungsvorrichtung 151 kann beispielsweise eine Tiefenerfassungskamera sein, die konfiguriert ist, Raumstrukturdaten zu erzeugen, welche die Struktur eines oder mehrerer Objekte in einem Sichtfeld der Tiefenerfassungskamera beschreiben. Das Computersystem 101 kann konfiguriert sein, die Raumstrukturdaten zu empfangen und die Daten zur Bestimmung von Größe, Form, Position und/oder Ausrichtung des einen oder mehrerer Objekte zu verwenden. 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, Position und/oder Ausrichtung interagiert.
  • Bei einer Ausführungsform kann das Computersystem 101 konfiguriert sein, die Bewegung des Roboters 161 basierend auf Informationen, die aus der Verarbeitung der Raumstrukturdaten bestimmt werden, direkt zu steuern. Beispielsweise kann das Computersystem 101 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. In 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 und die Raumstrukturerfassungsvorrichtung 151 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, die der Roboter 161 handhaben oder mit denen er auf andere Weise interagieren soll, zu liefern. Das Computersystem 101 kann als Bildsteuerung fungieren, die konfiguriert ist, Daten über die Raumstruktur 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, Raumstrukturdaten zu erzeugen, die eine Struktur eines oder mehrerer Objekte in einer Umgebung der Raumstrukturerfassungsvorrichtung 151 beschreiben. Wie hierin verwendet, beziehen sich Raumstrukturdaten auf jede Art von Daten (auch als Informationen bezeichnet), die eine Struktur eines oder mehrerer physischer Objekte (auch als ein oder mehrere Objekte bezeichnet) beschreiben, und sie können insbesondere Daten über die Form, Ausrichtung, Anordnung und/oder Größe des einen oder der mehreren physischen Objekte umfassen. Bei einer Ausführungsform können die Raumstrukturdaten Ortsdaten umfassen, die einen Ort der Struktur relativ zur Raumstrukturerfassungsvorrichtung 151, relativ zu dem Roboter 161 oder relativ zu einem anderen Element beschreiben.
  • Bei einer Ausführungsform können die Raumstrukturdaten Bilddaten umfassen, und alle hierin beschriebenen Systeme, Verfahren und Techniken, die sich auf Raumstrukturdaten beziehen, können, sofern nicht ausdrücklich anders angegeben, gleichermaßen auf die Bilddaten angewandt werden, die eine Form der Raumstrukturdaten darstellen. Die Raumstrukturdaten 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 repräsentiert 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, anzeigt. 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 anderen 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 erstrecken. Bei einer Ausführungsform können die Tiefeninformationen der Raumstrukturdaten mehrere Tiefenschichten des einen oder der mehreren Objekte angeben und gemäß dieser organisiert sein, wie es nachstehend ausführlicher beschrieben wird. Die mehrere Tiefenschichten umfassen mehrere Schichten, von denen jede eine diskrete Tiefe angibt, die entlang einer Achse senkrecht zu der imaginären Ebene gemessen ist, in der sich die Raumstrukturerfassungsvorrichtung 151 befindet. Bei einigen Ausführungsformen kann jede Schicht einen einzelnen Tiefenwert darstellen. Bei einigen Ausführungsformen kann jede Schicht einen Bereich von Tiefenwerten darstellen. Obwohl die Tiefeninformationen stufenlose Abstandsmessungen umfassen können, kann eine endliche Anzahl an Schichten verwendet werden, um die gesamten Tiefeninformationen zu erfassen.
  • Bei einer Ausführungsform können die Raumstrukturdaten eine Punktwolke sein. Wie hierin verwendet, kann eine Punktwolke mehrere Punkte identifizieren, welche die Objektstruktur beschreiben (d. h., eine Struktur eines oder mehrerer Objekte 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 ein Koordinatensystem der Raumstrukturerfassungsvorrichtung 151 oder in Bezug auf ein anderes Koordinatensystem 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 Bilddaten erzeugt werden (z. B. durch das Computersystem 101).
  • Bei einigen Ausführungsformen können die Raumstrukturdaten 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 Raumstrukturdaten über die Raumstrukturerfassungsvorrichtung 151 erfasst oder anderweitig erzeugt. Bei einer Ausführungsform können die Raumstrukturerfassungsvorrichtungen eine Kamera oder eine andere Bilderfassungsvorrichtung sein oder diese umfassen. Die Kamera kann eine Kamera mit Tiefenmessung sein, wie beispielsweise eine Time of Flight- (TOF) -Kamera oder eine Strukturlichtkamera. Die Kamera kann 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 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 Raumstrukturdaten konfiguriert ist.
  • Wie vorstehend weiter ausgeführt, können die von der Raumstrukturerfassungsvorrichtung 151 erzeugten Raumstrukturdaten von dem Computersystem 101 verarbeitet werden. Das Computersystem 101 kann 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 zeigt ein Blockdiagramm, das eine Ausführungsform des Computersystems 101 darstellt. 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, die von der Raumstrukturerfassungsvorrichtung 151 empfangenen Raumstrukturdaten 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 3 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. Raumstrukturdaten von der Raumstrukturerfassungsvorrichtung 151 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, einen Objektidentifikationsmanager 206 und einen Objekterkennungsmanager 208 programmiert ist. Es versteht sich, dass die Funktionalität der verschiedenen Manager, wie hierin beschrieben, 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 101 arbeitet. Der Datenmanager 202 ist konfiguriert, auf Raumstrukturdaten zuzugreifen (z. B. zu empfangen, abzurufen, zu speichern) und jede andere geeignete Operation im Zusammenhang mit Raumstrukturdaten auszuführen, die von dem Computersystem 101 empfangen oder verarbeitet (z. B. analysiert) werden. Der Datenmanager 202 kann beispielsweise konfiguriert sein, auf Raumstrukturdaten, 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 und/oder mit der Raumstrukturerfassungsvorrichtung 151 zu interagieren, um die Raumstrukturdaten anzufordern, abzurufen, auf sie zuzugreifen, sie zu senden, zu speichern oder anderweitig Operationen mit den Raumstrukturdaten auszuführen.
  • Bei Ausführungsformen ist der Datenmanager 202 ferner konfiguriert, einem Benutzer Zugriffswerkzeuge zur Verwaltung und Manipulation von Raumstrukturdaten 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 Raumstrukturdaten und alle anderen Daten, die während der Prozesse des Computersystems 101 erzeugt werden, zu archivieren, zu speichern und/oder anderweitig zu bewahren.
  • Bei einer Ausführungsform ist der Segmentierungsmanager 204 ein Softwareprotokoll, das auf dem Steuersystem 101 arbeitet. Der Segmentierungsmanager 204 ist konfiguriert, Teile der Raumstrukturdaten zu segmentieren oder zu extrahieren. Der Segmentierungsmanager 204 kann beispielsweise konfiguriert sein, einen Teil der Raumstrukturdaten zu extrahieren, die eine Schicht der Objektstruktur darstellen, wie es nachstehend ausführlicher beschrieben wird. Ein solcher Teil der Raumstrukturdaten kann ein Raumsegment darstellen oder als solches bezeichnet werden.
  • Bei einer Ausführungsform ist der Objektidentifikationsmanager 206 ein Softwareprotokoll, das auf dem Steuerungssystem 101 arbeitet. Der Objektidentifikationsmanager 206 ist derart konfiguriert, dass er ein oder mehrere von dem Segmentierungsmanager 204 erzeugte Raumsegmente empfängt oder darauf zugreift und eine weitere Verarbeitung bereitstellt. Der Objektidentifikationsmanager 206 kann beispielsweise konfiguriert sein, die Eckpunkte einer Schicht der Objektstruktur zu identifizieren und konvexe Ecken basierend auf den Eckpunkten zu identifizieren, wie es nachstehend ausführlicher beschrieben wird.
  • Bei einer Ausführungsform ist der Objekterkennungsmanager 208 ein Softwareprotokoll, das auf dem Computersystem 101 arbeitet. Der Objekterkennungsmanager 208 kann konfiguriert sein, die Objekterkennung entsprechend der erkannten konvexen Ecken auszuführen. Beispielsweise kann der Objekterkennungsmanager 208 die konvexen Ecken dazu verwenden, Detektionshypothesen zu erzeugen, zu modifizieren und/oder zu filtern, wie es nachstehend ausführlicher beschrieben wird.
  • 3 ist ein Flussdiagramm, das Beispieloperationen für ein Verfahren 300 zur Verarbeitung von Raumstrukturdaten veranschaulicht. Bei einem Beispiel kann das Verfahren 300 Teil eines Entpalettierungsvorgangs sein, bei dem ein Stapel von Objekten (z. B. Kisten oder andere Pakete) entladen wird. 4A veranschaulicht beispielsweise eine Ausführungsform, bei der Raumstrukturdaten für eine Reihe von Objekten 401, 402 erzeugt werden. Die Objekte 401, 402 können z. B. ein Stapel von Kisten oder anderen Paketen sein, die von einem Roboter 161A (der eine Ausführungsform des Roboters 161 von 1E und 1D sein kann) von dem Stapel entladen werden. Die Raumstrukturdaten können eine Struktur der Objekte 401, 402 beschreiben (die als Objektstruktur der Objekte 401, 402 bezeichnet werden kann). Im Beispiel von 4A kann eine obere Fläche 411 des Objekts 401 eine erste Schicht der Objektstruktur bilden, und eine obere Fläche 412 des Objekts 402 kann eine zweite Schicht der Objektstruktur bilden. 4B veranschaulicht die Objekte 401, 402 aus dem Blickwinkel der Raumstrukturerfassungsvorrichtung 151A von 4A, die direkt über den Objekten 401, 402 angeordnet sein kann. Von diesem Blickwinkel aus sind nur die oberen Flächen 411 und 412 der Objekte 401 und 402 für die Raumstrukturerfassungsvorrichtung 151A sichtbar. Die Flächen 411 und 412 sind parallel zu einer Plattform 410 und senkrecht zu einer Tiefendimension, die eine Dimension orthogonal zur Plattform 410 sein kann, und parallel zur Achse 480. Wie nachstehend in Bezug auf 4C ausführlicher beschrieben, können die von der Raumstrukturerfassungsvorrichtung 151A erzeugten Raumstrukturdaten angeben, dass sich die oberen Flächen 411 und 412 in unterschiedlichen Tiefen relativ zur Raumstrukturerfassungsvorrichtung 151A (gemessen entlang der Achse 480 von 4A) und in unterschiedlichen Höhen relativ zur Plattform 410 befinden.
  • Bei einer Ausführungsform kann das Verfahren 300 von 3 vom Computersystem 101 der 2A bis 2C und insbesondere von der Verarbeitungsschaltung 110 ausgeführt werden, wenn eine Objektstruktur beschreibende Raumstrukturdaten in dem nicht flüchtigen computerlesbaren Medium (z. B. 120) des Computersystems 101 gespeichert sind. 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 kann das Verfahren 300 das Identifizieren konvexer Ecken aus Raumstrukturdaten und das Verwenden der konvexen Ecken für eine nachfolgende (oder gleichzeitige) Objekterkennungsoperation beinhalten.
  • Bei einer Ausführungsform umfasst das Verfahren 300 von 3 eine Operation 302, bei der die Verarbeitungsschaltung 110 des Computersystems 101 (von 2A-2C) auf Raumstrukturdaten zugreift, welche die Objektstruktur beschreiben. In einigen Fällen kann die Operation 302 durch den Datenmanager 202 von 2C erfolgen. Bei einer Ausführungsform kann der Zugriff auf die Raumstrukturdaten das Abrufen (oder genereller das Empfangen) der Raumstrukturdaten von dem nicht flüchtigen computerlesbaren Medium 120 oder von jeder anderen Vorrichtung beinhalten. In einigen Situationen können die Raumstrukturdaten von dem Computersystem 101 von der Raumstrukturerfassungsvorrichtung 151 empfangen worden sein, wie beispielsweise über die Kommunikationsschnittstelle 130 von 2B, und sie können auf dem nicht flüchtigen computerlesbaren Medium 120 gespeichert worden sein, das einen temporären Puffer oder eine langfristige Speicherung für die Raumstrukturdaten bereitstellen kann. Die Raumstrukturdaten 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 Operation 302 zugegriffen werden.
  • In einigen Situationen können die Raumstrukturdaten, 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 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 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).
  • Wie vorstehend angegeben, können die Raumstrukturdaten eine Struktur von einem oder mehreren Objekten beschreiben, wie beispielsweise den Objekten 401, 402 in 4A. Bei einer Ausführungsform können die Raumstrukturdaten eine Tiefenkarte umfassen, die mehrere Pixel [u, v] aufweisen kann, von denen einige oder alle einen Tiefenwert aufweisen können. Jedes der Pixel in der Tiefenkarte kann einer entsprechenden physischen Position entsprechen, die durch das Pixel erfasst oder anderweitig dargestellt wird, und der Tiefenwert kann einen Abstand von der Raumstrukturerfassungsvorrichtung (z. B. 151A in 4A) und diesem physischen Ort angeben. Der physische Ort kann sich z. B. auf einer Fläche der Objekte 401, 402 oder einer Fläche der Plattform 410 befinden, auf der sich die Objekte 401, 402 befinden. In einigen Fällen kann der Abstand entlang der Achse 480 gemessen werden, die orthogonal zu einer imaginären Ebene 430 ist, auf der sich die Raumstrukturerfassungsvorrichtung 151A befindet. In einigen Fällen kann der einem Pixel zugeordnete Tiefenwert [u, v] eine Z-Komponente der Koordinate des entsprechenden physischen Orts darstellen. Die Raumstrukturerfassungsvorrichtung 151A kann beispielsweise eine Tiefenmessungskamera sein. In einem solchen Fall kann ein bestimmtes Pixel [u, v] in der Tiefenkarte einem physischen Ort auf einer Fläche der Objekte 401, 402 oder der Plattform 410 entsprechen, wobei der physische Ort eine Koordinate [X, Y, Z] aufweist, deren X-Komponente und Y-Komponente auf einer inversen Projektionsmatrix der tiefenempfindlichen Kamera basieren und deren Z-Komponente gleich dem dem Pixel [u v] zugewiesenen Tiefenwert ist oder anderweitig darauf basiert (die Koordinate [X Y Z] kann sich in einem Koordinatensystem der Tiefenerfassungskamera befinden).
  • Bei einer Ausführungsform können die Raumstrukturdaten eine Punktwolke umfassen. Wie vorstehend angegeben, kann die Punktwolke mehrere Koordinaten umfassen, die mehrere Punkte identifizieren, die physische Orte auf der Objektstruktur sind, wie beispielsweise physische Orte auf einer oder mehreren Flächen der Objekte 401, 402 von 4A. Wenn die Raumstrukturdaten bei einer Ausführungsform die Punktwolke umfassen, können sie in einigen Szenarien (z. B. durch die Raumstrukturerfassungsvorrichtung 151 oder das Computersystem 101) basierend auf der vorstehend beschriebenen Tiefenkarte erzeugt werden.
  • 4C veranschaulicht ein Beispiel einer Punktwolke, welche die Objektstruktur für die Objekte 401, 402 von 4A darstellt. Insbesondere veranschaulicht die Figur mehrere Punkte, die durch die Punktwolke repräsentiert werden. Die mehreren Punkte können sich auf einer oder mehreren Flächen der Objekte 401, 402 befinden. Die Punktwolke kann eine entsprechende Koordinate (z. B. [X Y Z]-Koordinate) für jeden der mehreren Punkte umfassen. Die Dichte der physischen Punkte, die durch die Punktwolke dargestellt werden, kann je nach der Auflösung der Raumstrukturerfassungsvorrichtung 151/151A größer oder kleiner sein als in 4C dargestellt. Die Z-Komponente der Koordinate eines bestimmten Punktes kann einen Tiefenwert dieses Punktes darstellen. Im Beispiel von 4C kann die Punktwolke einen Tiefenwert von Z=Z1 (z. B. 150 cm) für physische Punkte auf der Fläche 411 von 4A des Objekts 401 identifizieren, einen Tiefenwert von Z=Z2 (z. B. 200 cm) für physische Punkte auf der Fläche 412 von 4A des Objekts 402 identifizieren und einen Tiefenwert von Z=Z3 (z. B. 260 cm) für physische Punkte auf der Fläche der Plattform 410 von 4A identifizieren.
  • Bei einer Ausführungsform können die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten einer Struktur eines oder mehrerer Objekte (z. B. 401, 402) angeben. In einigen Fällen kann jede Schicht Punkte (z. B. physische Orte) auf der Struktur angeben oder einschließen, die den gleichen Tiefenwert oder im Wesentlichen den gleichen Tiefenwert aufweisen, oder Punkte auf der Struktur angeben, die ihren Tiefenwert allmählich und/oder auf stufenlose kontinuierliche Weise (im Gegensatz zu einer starken oder abrupten Weise) ändern. 4C bezieht sich beispielsweise auf eine Punktwolke, die eine erste Gruppe von Punkten 411a identifiziert, welche die obere Fläche 411 des Objekts 401 darstellt, eine zweite Gruppe von Punkten 412a, welche die obere Fläche 412 des Objekts 402 darstellt, und eine dritte Gruppe von Punkten 410a, welche die obere Fläche der Plattform 410 darstellt. In diesem Beispiel weist die erste Gruppe von Punkten 411a den gleichen Tiefenwert von Z1 auf und kann daher eine erste Schicht der Objektstruktur darstellen. In ähnlicher Weise können in der zweiten Gruppe von Punkten 412a alle den gleichen Tiefenwert von Z2 aufweisen, während in der dritten Gruppe von Punkten 410a alle den gleichen Tiefenwert von Z3 aufweisen können, und daher können die zweite Gruppe von Punkten 412a und die dritte Gruppe von Punkten 410a eine zweite und dritte Schicht der Objektstruktur für das eine oder mehrere Objekte 402 und die Plattform 410 darstellen. Wie vorstehend angegeben, kann jede Schicht einer anderen Fläche der Objektstruktur entsprechen. Die erste Schicht kann beispielsweise der oberen Fläche 411 von 4A entsprechen und die zweite Schicht kann der oberen Fläche 412 entsprechen. In einigen Fällen können die Schichten nur Flächen entsprechen, die sich parallel zu einer Bildebene der Raumstrukturerfassungsvorrichtung 130 befinden, wie beispielsweise die imaginäre Ebene 430.
  • Bei einer Ausführungsform können Punkte, die durch eine Punktwolke (oder eine andere Form von Raumstrukturdaten) dargestellt werden, basierend auf einer starken Änderung des Tiefenwerts in verschiedene Schichten unterteilt werden. Eine Änderung kann als stark angesehen werden, wenn sie z. B. einen absoluten Wert oder eine Änderungsrate aufweist, die einen definierten Schwellenwert überschreitet. Die Punkte, die durch die Punktwolke für 4C dargestellt werden, umfassen beispielsweise eine Änderung von Z2-Z1. (z. B. 50 cm) zwischen dem ersten Satz von Punkten 411a und dem zweiten Satz von Punkten 412a, und umfassen eine Änderung von Z3-Z2 (z. B. 60 cm) zwischen der zweiten Gruppe von Punkten 412a und der dritten Gruppe von Punkten 410a, und insbesondere zwischen benachbarten Punkten. Solche Veränderungen können einen definierten Schwellenwert (z. B. 0,5 cm oder 1 cm) überschreiten und können daher als eine starke Veränderung angesehen werden. Aufgrund der starken Veränderung können die erste Gruppe von Punkten 411a, die zweite Gruppe von Punkten 412a und die dritte Gruppe von Punkten 410a als auf verschiedenen Schichten der Objektstruktur befindlich betrachtet werden.
  • Unter Bezugnahme auf 3 kann das Verfahren 300 ferner eine Operation 304 umfassen, bei der die Verarbeitungsschaltung 101 des Computersystems 101 aus den Raumstrukturdaten einen Teil der Raumstrukturdaten extrahiert, der für eine Schicht der mehreren Schichten repräsentativ ist (der Teil kann auch als Raumabschnitt bezeichnet werden). Bei einer Ausführungsform kann die Operation 304 durch den Segmentierungsmanager 204 erfolgen. Wenn die Raumstrukturdaten ein Bild von einem oder mehreren Objekten erfassen, wie beispielsweise ein Graustufenbild oder ein Farbbild, kann der Teil, der aus den Raumstrukturdaten extrahiert wird, auch als Bildsegment bezeichnet werden. Bei einigen Implementierungen kann der Teil, der extrahiert wird, nur eine Schicht der mehreren Schichten der Objektstruktur darstellen.
  • 4D zeigt ein Beispiel, bei dem die Operation 304 aus der Punktwolke oder anderen Raumstrukturdaten einen ersten Teil extrahiert, der eine erste Schicht 421 der Objektstruktur darstellt, und einen zweiten Teil, der eine zweite Schicht 422 der Objektstruktur darstellt. Der erste Teil kann den ersten Satz von Punkten 411a oder genauer gesagt einen ersten Satz von Koordinaten umfassen, welche diese Punkte darstellen. Der zweite Teil kann den zweiten der Punkte 412a umfassen und insbesondere einen zweiten Satz von Koordinaten, der den zweiten Satz von Punkten 412a darstellt. 4E veranschaulicht zudem die erste Schicht 421 und die zweite Schicht 422, die extrahiert werden, und veranschaulicht ferner eine Kontur 423 der ersten Schicht 421 und eine Kontur 424 der zweiten Schicht 422. Bei einer Ausführungsform umfassen die Raumstrukturdaten daher eine Punktwolke, die mehrere Punkte identifiziert, die jeweils Orte auf einer öder mehreren Flächen der Objektstruktur sind, und der Teil der Raumstrukturdaten, der extrahiert wird, identifiziert einen Satz von Punkten, die für eine bestimmte Schicht repräsentativ sind.
  • Bei einer Ausführungsform kann die Operation 304 das Extrahieren von Datenwerten (z. B. Koordinaten) aus den Raumstrukturdaten beinhalten, die einen Satz von Punkten identifizieren, die den gleichen Tiefenwert aufweisen oder deren Tiefenwerte innerhalb eines definierten Bereichs liegen. Beispielsweise kann die Operation 304 für das Beispiel von 4C und 4D in diesem Beispiel das Identifizieren des ersten Satzes von Punkten 411a aus den Raumstrukturdaten beinhalten, da der erste Satz von Punkten 411a den gleichen Tiefenwert aufweist. In ähnlicher Weise kann die Operation 304 alternativ oder zusätzlich das Identifizieren des zweiten Satzes von Punkten 412a aus den Raumstrukturdaten beinhalten, da der zweite Satz von Punkten 412a den gleichen Tiefenwert aufweist.
  • Bei einer Ausführungsform kann der Teil, der in Operation 304 extrahiert wird (der als Raumsegment bezeichnet werden kann), einen Teil der Raumstrukturdaten darstellen, der Tiefenwerte aufweist, die in einen definierten Bereich fallen, der einer Schicht der mehreren Schichten entspricht. Wenn die Operation 304 abgeschlossen ist, kann jedes Raumsegment eine unterschiedliche Schicht der mehreren Schichten darstellen. Bei einer Ausführungsform können alle oder ein Teil der gesamten mehreren Schichten durch die Raumsegmente dargestellt sein. Bei einer Ausführungsform können einige Schichten einer Struktur des einen oder mehrerer Objekte keine entsprechenden Flächen in der geeigneten Tiefe aufweisen und daher keine entsprechenden Raumsegmente aufweisen. Die Anzahl der in Operation 304 extrahierten Raumsegmente (z. B. durch den Segmentierungsmanager 204) entspricht bei weiteren Beispielen der Anzahl an erkannten Schichten, die durch die Raumstrukturdaten dargestellt werden.
  • Bei einer Ausführungsform kann die Operation 304 beinhalten, dass das Computersystem 101 die Raumstrukturdaten in Teile oder Segmente unterteilt, die verschiedene Ebenen der Objektstruktur darstellen oder die Flächen mit unterschiedlichen entsprechenden Tiefen für diese Objektstruktur darstellen. In einigen Fällen kann die Unterteilung der Raumstrukturdaten auf der Identifizierung der entsprechenden Teile der Raumstrukturdaten basieren, die unterschiedliche Tiefenwerte aufweisen. In einigen Fällen kann die Aufteilung der Raumstrukturdaten auf der Detektion einer starken Änderung des Tiefenwerts unter Teilen der Raumstrukturdaten basieren. Die Ausführung der Operation 304 für 4D kann beispielsweise das Detektieren einer starken Änderung des Tiefenwerts zwischen zwei Punktsätzen der Raumstrukturdaten dieses Beispiels von einem Tiefenwert von Z1 zu einem Wert von Z2 beinhalten. Die beiden Sätze können als der erste Satz von Punkten 411a und der zweite Satz von Punkten 412a identifiziert werden.
  • Bei einer Ausführungsform kann die Operation 304 ein oder mehrere Objekte unterbringen, die eine Struktur mit einer abgewinkelten Fläche aufweisen. Die abgewinkelte Fläche kann z. B. eine Fläche sein, die nicht parallel zu der Raumstrukturerfassungsvorrichtung 151/151A ist und insbesondere nicht parallel zu einer Bildebene davon ist, wie beispielsweise die imaginäre Ebene 430 von 4A. Die abgewinkelte Fläche kann daher relativ zur Raumstrukturerfassungsvorrichtung 151/151A über die Fläche hinweg unterschiedliche Tiefenwerte aufweisen. Bei Ausführungsformen können Schichten ausgewählt werden, um solche abgewinkelten Flächen unterzubringen. Es kann beispielsweise eine Schicht für die Raumsegmentierung ausgewählt werden, welche die Gesamtheit der abgewinkelten Fläche umfasst. Die Schicht in den Raumstrukturdaten kann daher speziell ausgewählt werden, um sicherzustellen, dass die abgewinkelte Fläche in einem einzigen Raumsegment enthalten ist.
  • Wie vorstehend angegeben, kann der Teil der Raumstrukturdaten, der in Operation 304 extrahiert wird, auch als Raumsegment bezeichnet werden. Bei einer Ausführungsform können die zu extrahierenden Raumsegmente als Masken gespeichert werden (z. B. durch den Segmentierungsmanager 204). Jede Maske kann Informationen umfassen, die eine oder mehrere Regionen spezifizieren, die Teil einer entsprechenden Schicht der Objektstruktur des einen oder der mehreren Objekte sind, und kann alle Regionen ausschließen, die nicht Teil der entsprechenden Schicht der Objektstruktur sind. Die Maske kann mit anderen Worten Informationen umfassen, die eine oder mehrere Regionen spezifizieren, die in einer bestimmten Tiefe Teil der Struktur sind, und kann alle Regionen ausschließen, die in der gegebenen Tiefe nicht Teil der Struktur sind. Jedes Raumsegment kann z. B. in der Datenspeichervorrichtung 198 von 1B oder in einem anderen nicht flüchtigen computerlesbaren Speichermedium gespeichert sein. Bei einer Ausführungsform kann das Raumsegment zur weiteren Verarbeitung durch den Objektidentifikationsmanager 206 von 2C entweder direkt von dem Segmentierungsmanager 204 oder über das Datenspeichermedium 198 oder ein nicht flüchtiges computerlesbares Medium 120 von 2A empfangen werden.
  • Unter Bezugnahme auf 3 kann das Verfahren 300 eine Operation 306 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 101 von dem Teil der in Operation 304 extrahierten Raumstrukturdaten mehrere Eckpunkte (auch als Konturpunkte bezeichnet) identifiziert, die eine Kontur der Schicht beschreiben, die in Bezug auf Operation 304 beschrieben wird. Zum Beispiel veranschaulicht 5A mehrere Eckpunkte 512a-512f, die für die Schicht 422 extrahiert werden. Bei einer Ausführungsform kann die Operation 306 durch den Objektidentifikationsmanager 506 erfolgen.
  • Wie vorstehend beschrieben, umfassen die Raumstrukturdaten in einigen Fällen eine Punktwolke, die Punkte auf einer Fläche einer Objektstruktur identifiziert. Der aus der Punktwolke extrahierte Teil, der für die Schicht in Operation 304 repräsentativ ist, kann einen Satz von Punkten (z. B. die Punkte 412a von 4D) identifizieren, die aus den durch die Punktwolke identifizierten mehreren Punkten extrahiert werden. In solchen Fällen kann die Verarbeitungsschaltung 110 die Operation 306 ausführen, indem sie z. B. mehrere Liniensegmente identifiziert, die Kanten (z. B. gerade Kanten) der die Schicht repräsentierenden Punktmenge (z. B. 422) bilden, und die mehreren Eckpunkte der Operation 306 als Endpunkte der Liniensegmente identifiziert. 5B zeigt beispielsweise mehrere Liniensegmente 513a-513f, die gerade Kanten der Punktmenge 412a bilden. Jedes der Liniensegmente kann eine Linie sein, die zwei gegenüberliegende Enden aufweist, die durch zwei entsprechende Endpunkte definiert sind. Zum Beispiel weist das Liniensegment 513a zwei entgegengesetzte Enden auf, die durch die Endpunkte 512a und 512b definiert sind, die in Operation 306 als zwei Eckpunkte identifiziert werden können. In einigen Fällen kann ein bestimmtes Liniensegment als eine Kante betrachtet werden, wenn es sich durch Kantenpunkte des Satzes von Punkten 412a erstreckt, wie in 5B veranschaulicht. Die Kantenpunkte einer Punktmenge (z. B. der Menge 412a) können diejenigen Punkte sein, die sich am Rande der Punktmenge befinden. Allgemeiner gesagt, können die Kantenpunkte Punkte sein, die eine oder mehrere Außenkanten einer bestimmten Schicht darstellen. In einigen Fällen kann sich ein bestimmtes Liniensegment in der Nähe der Kantenpunkte befinden und als Kante betrachtet werden, selbst wenn einige Punkte der Punktmenge etwas über dieses Liniensegment hinausragen. In einigen Fällen kann ein bestimmtes Liniensegment nur dann als Kante angesehen werden, wenn sich keine Punkte der Punktmenge über dieses Liniensegment hinaus erstrecken.
  • In einigen Fällen kann die Verarbeitungsschaltung 110 die Operation 306 ausführen, indem sie mehrere Kantenpunkte aus der Punktmenge (z. B. 412a) extrahiert (oder allgemeiner identifiziert) und mehrere Linien bestimmt, die durch die mehreren Kantenpunkte passen. In solchen Fällen kann die Verarbeitungsschaltung 110 Schnittpunkte als die mehreren Eckpunkte identifizieren, an denen sich die mehreren Linien schneiden. 5C veranschaulicht beispielsweise mehrere Linien 514a-514e, die durch mehrere Kantenpunkte des Teils der Raumstrukturdaten passen, die aus der Operation 304 extrahiert wurden. Als Beispiel kann die Linie 514f eine Linie sein, die derart eingepasst wird, dass sie sich einer Kontur der Kantenpunkte 515 in 5C annähert. Die Figur veranschaulicht nur einen Teil der Kantenpunkte der Schicht 422, die eine gesamte Kontur der Schicht umgeben. 5C zeigt ferner die mehreren Eckpunkte 512a-512f als Schnittpunkte zwischen den Linien 514a-514e. Der Eckpunkt 512a kann beispielsweise ein Schnittpunkt zwischen der Linie 514a und der Linie 515f sein. Die in Operation 306 identifizierten mehreren Eckpunkte (z. B. 512a-512f) können alle Schnittpunkte zwischen den vorstehend beschriebenen Linien (z. B. die Linien 514a-514f) oder nur eine Teilmenge der Schnittpunkte umfassen.
  • Bei einer Ausführungsform können die Kantenpunkte 515, die durch die erfassten Raumstrukturdaten repräsentiert werden, nicht in einer geraden Linie ausgerichtet sein. Bei einer solchen Ausführungsform kann die Operation 306 (z. B. über den Objektidentifikationsmanager 206) die Anpassung des Satzes von Linien 514a-514f in einer Weise beinhalten, welche die entsprechenden Positionen der Kantenpunkte am besten annähert. Der Prozess der Anpassung des Liniensatzes kann jeden geeigneten Algorithmus verwenden, um die Linien 514a-514f an die Kantenpunkte 515 anzupassen, einschließlich z. B. der Analyse der kleinsten Quadrate und anderer. Nach der Erzeugung der Linien 514a-514f können die mehreren Eckpunkte 512a-512f entsprechend den Schnittpunkten der Linien 514a-514f identifiziert werden. Jeder oder einige der Schnittpunkte, an denen sich zwei oder mehrere der Linien 514a-514f schneiden, können als einer der Eckpunkte 512a-512f der Schicht 422 definiert oder anderweitig identifiziert werden. Daher können die mehreren Eckpunkte 512a-512f eine Kontur der Schicht definieren. Bei einer Ausführungsform können die mehreren Eckpunkte, die mit der in 5B veranschaulichten Technik identifiziert werden, die gleichen sein wie die mehreren Eckpunkte, die mit der in 5C veranschaulichten Technik identifiziert werden.
  • Unter Bezugnahme auf 3 kann das Verfahren 300 eine Operation 308 umfassen, bei der die Verarbeitungsschaltung 110 des Computersystems 110 konvexe Ecken der Schicht basierend auf den mehreren Eckpunkten identifiziert. Bei einer Ausführungsform kann die Operation 308 durch den Objektidentifikationsmanager 206 erfolgen. Die konvexen Ecken können z. B. physische Orte auf der Objektstruktur sein oder darstellen, von denen aus die Objekterkennung bequemer, effizienter oder effektiver ausgeführt werden kann, oder physische Orte, an denen eine Interaktion zwischen dem einen oder mehreren Objekten und dem Roboter (z. B. 161 von 1F) bequem sein kann. Wenn in einigen Szenarien eine Objektstruktur einen Kasten oder ein anderes rechteckiges Prisma umfasst, können die konvexen Ecken z. B. einige oder alle Außenecken des rechteckigen Prismas umfassen, und in einigen Szenarien können die konvexen Ecken nur diese Orte einschließen oder darstellen. In einigen Szenarien kann eine konvexe Ecke einer Objektstruktur eine Außenecke sein, für die eine Ebene gezeichnet werden kann, welche die Objektstruktur nur an dieser Ecke schneidet. Wie nachstehend ausführlicher beschrieben, können einige Ausführungsformen des Identifizierens der konvexen Ecken das Identifizieren von 3D-Ecken beinhalten, die konvex sind. Die 3D-Ecken können 3D-Eckpunkte sein, die ein Orthogonalitätskriterium erfüllen, wie es nachstehend ausführlicher beschrieben wird. Bei den 3D-Eckpunkten kann es sich um Eckpunkte handeln, die ein erstes Längenkriterium und/oder ein zweites Längenkriterium erfüllen, wie es ebenfalls nachstehend ausführlicher beschrieben wird. Das erste Längenkriterium, das zweite Längenkriterium und das Orthogonalitätskriterium können allgemeiner als ein erstes, ein zweites und ein drittes Kriterium bezeichnet werden. Bei einigen Ausführungsformen kann das Identifizieren der konvexen Ecken das Bestimmen oder anderweitige Identifizieren einer oder mehrerer vereinigter Ecken beinhalten, die ebenfalls nachstehend ausführlicher beschrieben werden.
  • Bei einer Ausführungsform kann die Operation 308 das Bestimmen einer Beziehung beinhalten, die mindestens einen Abstand oder Abstände zwischen zwei oder mehr Eckpunkten aus den mehreren Eckpunkten (wie die aus Operation 306 identifizierten) angibt. Die Operation kann ferner das Identifizieren einer Teilmenge der mehreren Eckpunkte als 3D-Ecken gemäß der Beziehung und das Identifizieren von konvexen 3D-Ecken als die konvexen Ecken umfassen. In einigen Fällen gibt die Beziehung ferner entsprechende Winkel an, die durch Paare von Vektoren gebildet sind, wobei sich jeder der Vektoren zwischen einem Paar von Eckpunkten der mehreren Eckpunkte erstreckt.
  • Bei einer Ausführungsform können die 3D-Ecken 3D-Eckpunkte sein, die ein Orthogonalitätskriterium erfüllen, wie es nachstehend ausführlicher beschrieben wird. Die Operation 308 kann das Identifizieren eines Satzes von 3D-Eckpunkten basierend auf der Beziehung zwischen den Eckpunkten beinhalten. Ein 3D-Eckpunkt kann im Allgemeinen ein Eckpunkt sein, der mit einer geringen Wahrscheinlichkeit ein Artefakt ist. Genauer gesagt können Rauschen, Interferenzen oder andere Fehlerquellen ein Artefakt in die Raumstrukturdaten einführen, auf die bei Operation 302 zugegriffen wird. Ein Eckpunkt, der ein Artefakt der Raumstrukturdaten ist, bezieht sich auf einen Teil der Raumstrukturdaten, der keinen physischen Eckpunkt auf der Objektstruktur darstellt. Ein solcher Eckpunkt kann aus dem Satz der 3D-Eckpunkte ausgeschlossen werden. In einigen Fällen wird der Satz von 3D-Ecken aus dem Satz von 3D-Eckpunkten identifiziert und zumindest einige der konvexen Ecken können aus dem Satz von 3D-Ecken identifiziert werden, wie es nachstehend ausführlicher beschrieben wird.
  • Der Satz von 3D-Eckpunkten kann bei einigen Implementierungen auch Eckpunkte umfassen, die jeweils einen Abstand zu einem benachbarten Eckpunkt aufweisen, der gleich einem definierten Längenschwellenwert (auch als Schwellenwertlänge bezeichnet) ist oder diesen überschreitet. Der Satz von 3D-Eckpunkten kann ferner jeden Eckpunkt ausschließen, der einen entsprechenden Abstand zu einem benachbarten Eckpunkt aufweist, der kleiner als der definierte Längenschwellenwert ist. Da die Raumstrukturdaten auf Sensordaten basieren und daher Rauschen, Fehlern, Artefakten und anderen Mängeln unterliegen, kann es mit anderen Worten sein, dass die mehreren identifizierten Eckpunkte die Ecken oder andere physische Merkmale der Struktur des einen oder der mehreren Objekte nicht mit vollständiger Genauigkeit darstellen. Ein Objekt kann beispielsweise eine Struktur aufweisen, die ein rechteckiges Prisma (auch als rechteckiger Kasten bezeichnet) mit vier Eckpunkten auf einer Schicht dieser Struktur ist, aber die Raumstrukturdaten für die Struktur dieses Objekts können angeben, dass die Schicht sieben Eckpunkte aufweist. Daher kann eine Operation ausgeführt werden, um die 3D-Eckpunkte der Raumstrukturdaten, die Eckpunkte sind, die eine geringe Wahrscheinlichkeit aufweisen, ein Artefakt zu sein, von denjenigen in den Raumstrukturdaten zu unterscheiden, die wahrscheinlich Artefakte sind.
  • In einigen Fällen wird diese Operation basierend auf einem oder mehreren Längenkriterien ausgeführt. Das eine oder die mehreren Längenkriterien können bewerten, ob der Abstand von einem bestimmten Eckpunkt zu einem benachbarten Eckpunkt (z. B. einem nächstgelegenen benachbarten Eckpunkt) einen definierten Schwellenwert überschreitet. Wenn sich beispielsweise zwei Eckpunkte in den Raumstrukturdaten zu nahe beieinander befinden (z. B. basierend auf der Schwellenwertlänge und/oder dem Längenkriterium), kann einer der Eckpunkte ein Artefakt sein, da sich Rauschen oder Interferenzen, die das Artefakt verursachen, innerhalb der Raumstrukturdaten befinden können, und daher kann jedes Merkmal, das ein Artefakt ist oder als Ergebnis des Artefakts erscheint, im Verhältnis zu den tatsächlichen physischen Merkmalen der Objektstruktur klein sein. Daher können, wie nachstehend ausführlicher beschrieben, ein oder mehrere Längenkriterien verwendet werden, um zu identifizieren, welche Eckpunkte als 3D-Eckpunkt in einem Satz von 3D-Eckpunkten umfasst sein sollten. Außerdem kann der Satz von 3D-Ecken 3D-Eckpunkte aus dem Satz von 3D-Eckpunkten umfassen, die eine orthogonale Ecke der Objektstruktur darstellen.
  • Bei einer Ausführungsform beinhaltet die Operation 308 das Bestimmen (z. B. durch den Objektidentifikationsmanager 206), ob jeder Eckpunkt der mehreren Eckpunkte (der Operation 306) eine 3D-Ecke ist, basierend auf den vorstehend beschrieben Längenkriterien und/oder dem Orthogonalitätskriterium. Eine solche Bestimmung kann ferner beinhalten, dass für jeden Eckpunkt der mehreren Eckpunkte eine Beziehung zwischen diesem Eckpunkt und mindestens einem anderen Eckpunkt von den mehreren Eckpunkten oder eine Beziehung zwischen diesem Eckpunkt und zwei anderen Eckpunkten (z. B. zwei nächstgelegene benachbarte Eckpunkte) bestimmt wird.
  • Bei einer Ausführungsform kann das Identifizieren von 3D-Ecken als Teil der Operation 308 das Bestimmen beinhalten, ob ein erster Eckpunkt der mehreren Eckpunkte in einen Satz von 3D-Ecken aufgenommen werden soll. Als Beispiel kann der erste Eckpunkt der Eckpunkt 512b in 5D sein. In einigen Fällen kann die Operation 308 mehrere Iterationen umfassen, die alle der mehreren Eckpunkte auswerten, um zu bestimmen, ob sie 3D-Eckpunkte sind und/oder um zu bestimmen, ob sie 3D-Ecken sind, und der erste Eckpunkt kann z. B. Teil einer der Iterationen sein. Die Iterationen können z. B. durch die mehreren Eckpunkte in einer Reihenfolge fortschreiten, die der Kontur 423 der Schicht 422 im Uhrzeigersinn oder gegen den Uhrzeigersinn folgt. In solchen Fällen kann der erste Eckpunkt ein aktueller Eckpunkt oder ein aktueller Konturpunkt (der als cVx oder cPt bezeichnet werden kann) für diese bestimmte Iteration sein.
  • Die vorstehende Bestimmung, ob der erste Eckpunkt eine 3D-Ecke ist, kann die Auswahl (z. B. durch den Objektidentifikationsmanager 206) eines zweiten Eckpunkts aus den mehreren Eckpunkten beinhalten, der ein nächstgelegener benachbarter Eckpunkt zu dem ersten Eckpunkt in einer ersten Richtung entlang der Kontur der Schicht ist. Zum Beispiel kann der zweite Eckpunkt der Eckpunkt 512a sein, der ein nächstgelegener benachbarter Eckpunkt (auch als nahester benachbarter Eckpunkt bezeichnet) zu dem Eckpunkt 512b in einer ersten Richtung A (z. B. eine Richtung gegen den Uhrzeigersinn, wie durch den gestrichelten Pfeil veranschaulicht) entlang der Kontur 423 der Schicht 422 ist. Wie vorstehend angegeben, kann die Operation 308 mehrere Iterationen umfassen, die durch die in der Operation 306 identifizierten mehreren Eckpunkte (z. B. im Uhrzeigersinn) fortschreiten, um jeden Eckpunkt der mehreren Eckpunkte zu bewerten und zu bestimmen, ob der Eckpunkt ein 3D-Eckpunkt ist, und/oder ob der Eckpunkt eine 3D-Ecke ist. In diesem Beispiel kann der zweite Eckpunkt ein vorhergehender Eckpunkt oder ein vorhergehender Konturpunkt sein (der als pVx oder pPt bezeichnet wird). Der vorhergehende Eckpunkt kann ein Eckpunkt sein, der in einer vorhergehenden Iteration (z. B. in einer vorhergehenden aufeinanderfolgenden Iteration) bewertet wurde. Wenn eine aktuelle Iteration beispielsweise den Eckpunkt 512b bewertet, um zu bestimmen, ob es eine 3D-Ecke ist, dann kann der Eckpunkt 512b der aktuelle Eckpunkt und der Eckpunkt 512a ein vorhergehender Eckpunkt sein. Außerdem kann der Eckpunkt 512c in diesem Beispiel ein nächster Eckpunkt sein. Der nächste Eckpunkt oder der nächste Konturpunkt kann ein Eckpunkt sein, der in der nächsten aufeinanderfolgenden Iteration bewertet wird, um zu bestimmen, ob dieser Eckpunkt ein 3D-Eckpunkt ist und/oder um zu bestimmen, ob dieser Eckpunkt eine 3D-Ecke ist (der als nVx oder nPt bezeichnet werden kann).
  • Die vorstehende Ausführungsform des Bestimmens, ob der erste Eckpunkt eine 3D-Ecke ist, kann ferner das Definieren eines ersten Vektors beinhalten, der vom ersten Eckpunkt zum zweiten Eckpunkt ist (und daher von dem ersten Eckpunkt wegzeigt). Zum Beispiel kann der erste Vektor der Vektor 551 in 5D sein. Der erste Vektor 551 von 5D kann in einigen Fällen eine Version des Liniensegments 513a von 5B sein, bei der das Liniensegment eine Richtungsabhängigkeit aufweist. Wenn in einigen Fällen der erste Eckpunkt durch eine erste Koordinate [X1, Y1, Z1] und der zweite Eckpunkt durch eine zweite Koordinate [X2, Y2, Z2] repräsentiert wird, kann der erste Vektor v 1
    Figure DE102020120526A1_0001
    definiert werden als <X2-X1, Y2-Y1, Z2-Z1>. In einigen Fällen kann die Z-Komponente ignoriert werden, wenn die Eckpunkte die gleiche Z-Komponente für ihre entsprechenden Koordinaten aufweisen. In solchen Fällen kann der erste Vektor v 1
    Figure DE102020120526A1_0002
    definiert werden als <X2-X1, Y2-Y1>. In einigen Fällen verläuft der erste Vektor von einem aktuellen Eckpunkt oder aktuellen Konturpunkt (cVx oder cPt) zu einem vorhergehenden Eckpunkt oder vorhergehenden Konturpunkt (pVx oder pPt).
  • Die vorstehende Ausführungsform des Bestimmens, ob ein erster Eckpunkt eine 3D-Ecke ist, kann ferner das Auswählen eines dritten Eckpunkts aus den mehreren Eckpunkten beinhalten, der ein nahester benachbarter Eckpunkt zu dem ersten Eckpunkt in einer zweiten Richtung entlang der Kontur der Schicht ist, wobei sich die zweite Richtung von der vorstehend beschriebenen ersten Richtung unterscheidet. Der dritte Eckpunkt kann beispielsweise der Eckpunkt 512c in 5D sein, der ein nahester benachbarter Eckpunkt zu dem Eckpunkt 512b in einer zweiten Richtung B (z. B. Uhrzeigersinnrichtung, wie durch den gestrichelten Pfeil veranschaulicht) entlang der Kontur 423 der durch den Teil/das Raumsegment definierten Schicht ist. Die zweite Richtung B unterscheidet sich von der ersten Richtung A. Insbesondere kann die erste Richtung A von 5D eine Flussrichtung sein, welche die Kontur 423 der Schicht in der Figur im Gegenuhrzeigersinn nachverfolgt, während die zweite Richtung B eine Flussrichtung sein kann, welche die Kontur 423 im Uhrzeigersinn nachverfolgt. In einigen Fällen kann der dritte Eckpunkt der nächste Eckpunkt oder der nächste Konturpunkt (als nVx oder nPt bezeichnet) sein. Ferner kann in dieser Darstellung ein zweiter Vektor bestimmt werden, wobei der zweite Vektor vom ersten Eckpunkt zum dritten Eckpunkt verläuft (und daher auch vom ersten Eckpunkt wegzeigt). Der zweite Vektor kann beispielsweise der Vektor 552 in 5D sein, der vom Eckpunkt 512b zum Eckpunkt 512c verläuft. Wenn der dritte Eckpunkt ähnlich dem vorstehenden Beispiel durch eine dritte Koordinate [X3, Y3, Z3] dargestellt wird, kann der zweite Vektor v 2
    Figure DE102020120526A1_0003
    definiert werden als <X3-X1, Y3-Y1, Z3-Z1>. In einigen Fällen kann der zweite Vektor vom aktuellen Eckpunkt oder aktuellen Konturpunkt zum nächsten Eckpunkt oder nächsten Konturpunkt verlaufen.
    Die vorstehende Darstellung kann ferner das Bestimmen beinhalten, ob der erste Vektor v 1
    Figure DE102020120526A1_0004
    ein erstes Längenkriterium erfüllt und ob der zweite Vektor v 2
    Figure DE102020120526A1_0005
    ein zweites Längenkriterium erfüllt. Eine solche Bestimmung kann den Vergleich einer Länge des ersten Vektors (die als erste Länge bezeichnet werden kann) mit einer definierten Schwellenwertlänge und den Vergleich einer Länge des zweiten Vektors (die als zweite Länge bezeichnet werden kann) mit dem definierten Längenschwellenwert umfassen. Die erste Länge kann z. B. ein Abstand vom Eckpunkt 512b zum Eckpunkt 512a sein. Wenn in einigen Fällen der erste Vektor ein Vektor von einem aktuellen Eckpunkt cVx zu einem vorhergehenden Eckpunkt pVx ist, kann die erste Länge als Norm(cVx-pVx) definiert werden, wobei „Norm“ eine Funktion ist, die einen euklidischen Abstand zwischen zwei Punkten bestimmt. Die zweite Länge kann z.B. ein Abstand von dem Eckpunkt 512b zu dem Eckpunkt 512c sein. Wenn in einigen Fällen der zweite Vektor ein Vektor von einem aktuellen Eckpunkt cVx zu einem nächsten Eckpunkt nVx ist, kann der zweite Abstand als Norm(cVx-nVx) definiert werden. Wie vorstehend angegeben, stellt der Vergleich der Längen der Vektoren mit einer Schwellenwertlänge sicher, dass der erste Eckpunkt (z. B. 512b) weit genug vom zweiten Eckpunkt (z. B. 512a) und vom dritten Eckpunkt (z. B. 512c) entfernt ist, um zu bestimmen, dass der erste Eckpunkt eine geringe Wahrscheinlichkeit aufweist, ein Artefakt zu sein. In einigen Fällen kann der Eckpunkt als ein 3D-Eckpunkt betrachtet werden, wenn er das erste Längenkriterium und das zweite Längenkriterium erfüllt. In einigen Fällen wird ein Eckpunkt nicht als 3D-Eckpunkt (und daher keine 3D-Ecke) bestimmt, wenn er keines von dem ersten und dem zweiten Längenkriterium erfüllt oder wenn er sowohl das erste als auch das zweite Längenkriterium nicht erfüllt. Wenn bestimmt wird, dass der Eckpunkt kein 3D-Eckpunkt ist, kann er von der Verwendung zur Identifizierung konvexer Ecken ausgeschlossen werden. Die Verarbeitungsschaltung 110 kann beispielsweise den Eckpunkt beim Identifizieren konvexer Ecken ignorieren, was nachstehend ausführlicher beschrieben wird. In einigen Fällen kann die Verarbeitungsschaltung 110 konfiguriert sein, aus den Raumstrukturdaten Datenwerte zu entfernen, die einem solchen Eckpunkt entsprechen, der kein 3D-Eckpunkt ist.
  • Die Schwellenwertlänge im vorstehenden Beispiel kann nach einer oder mehreren von mehreren Techniken bestimmt oder anderweitig definiert werden. Bei Ausführungsformen kann die Schwellenwertlänge von einem Benutzer, Manager oder einem anderen Bediener des Computersystems 101 der 1A bis 1C vorgegeben werden. Die Schwellenwertlänge kann entsprechend der Kenntnis der Objekte oder des Objektetyps, die von der Raumstrukturerfassungsvorrichtung 151 der 1A-1C erfasst werden, vorgegeben werden. Wenn z. B. von den Objekten bekannt ist, dass sie Kanten mit einer erwarteten Mindestlänge aufweisen, kann die Schwellenwertlänge derart gewählt werden, dass Eckpunkte der Raumstrukturdaten, die Kanten bilden, welche kleiner als die erwartete Mindestlänge sind, eliminiert oder anderweitig herausgefiltert werden. In einigen Fällen kann die Schwellenwertlänge basierend auf der Kenntnis der Raumstrukturerfassungsvorrichtung 151 bestimmt werden (z. B. Kenntnis eines Genauigkeitsgrads für einen Typ von Raumstrukturerfassungsvorrichtung, zu der die Vorrichtung 151 gehört).
  • Bei Ausführungsformen kann die erwartete Mindestlänge mit einem Korrekturfaktor multipliziert werden, um die Schwellenwertlänge zu erhalten. Der Korrekturfaktor kann z. B. ein vorgegebener skalarer Wert zwischen 0 und 1 sein. Der Korrekturfaktor kann in Abhängigkeit vom Betrag des Rauschens in den Raumstrukturdaten bestimmt werden. Wenn die Raumstrukturdaten Rauschen aufweisen, kann der Korrekturfaktor eine kleinere Zahl sein. Bei verrauschten Raumstrukturdaten wird erwartet, dass es eine größere Anzahl an Eckpunkten in den Raumstrukturdaten gibt, die Artefakte sind. Ein kleinerer Korrekturfaktor senkt die Schwellenwertlänge, um eine größere Variation und ein größeres Rauschen in den Raumstrukturdaten zu berücksichtigen und mehr Artefakte herauszufiltern. Wenn die Raumstrukturdaten dagegen weniger Rauschen aufweisen, kann der Korrekturfaktor eine größere Zahl sein (d. h. die Schwellenwertlänge erhöhen, wenn eine Variation oder ein Rauschen in den Raumstrukturdaten geringer ist). Bei Ausführungsformen können die Raumstrukturdaten von dem Objektidentifikationsmanager 206 bezüglich Rauschen analysiert werden, der dann einen Korrekturfaktor entsprechend eines Maßes des Rauschens in den Raumstrukturdaten auswählen kann. Bei Ausführungsformen kann der Korrekturfaktor entsprechend einer erwarteten Anordnung von Objekten ausgewählt oder anderweitig bestimmt werden. Dieses Merkmal ist unter Bezugnahme auf 5E veranschaulicht, die eine Schicht 590 darstellt, die durch einen Teil/ein Raumsegment der Raumstrukturdaten definiert ist und eine Struktur der Objekte 580, 581 beschreibt. Die Objekte 580, 581 können die gleiche Größe aufweisen und unregelmäßig oder versetzt zueinander angeordnet sein. Zum Beispiel sind solche Objekte 580, 581 nicht zueinander ausgerichtet. Diese Objekte 580, 581 können aufgrund von Versätzen in der Anordnung als eine Struktur mit unterschiedlich langen Kanten erfasst werden. Genauer gesagt sind die Objekte 580 und 581 quadratisch geformt und gleich groß, jeweils mit vier Kanten gleicher Länge. Dementsprechend kann eine erwartete Mindestlänge als Länge irgendeiner Kante gewählt werden, wie beispielsweise die Kante 583 des Objekts 580. 5E zeigt jedoch einen räumlichen Versatz zwischen Objekt 580 und 581, der eine kurze Kante 584 im Raumabschnitt 590 erzeugt. Wenn der Korrekturfaktor als hoher Wert (z. B. nahe 1) eingestellt wird, ist die Schwellenwertlänge nur geringfügig kürzer als die Länge der Kante 583. Ein solch hoher Wert für den Korrekturfaktor resultiert daher darin, dass die Kante 584 das erste und das zweite vorstehend beschriebene Längenkriterium nicht erfüllt, was verursachen kann, dass z. B. der Eckpunkt 582 nicht als ein 3D-Eckpunkt erkannt wird, obwohl der Eckpunkt 582 kein Artefakt ist. Dementsprechend kann der Objektidentifikationsmanager 206 bei Ausführungsformen einen kleineren Korrekturfaktor wählen (z. B. einen Korrekturfaktor mit einem Wert, der näher bei 0 liegt), was zu einer Schwellenwertlänge führt, die kleiner ist als die Länge der Kante 584, sodass der Eckpunkt 582 das erste und zweite Längenkriterium erfüllt.
  • Bei einer Ausführungsform kann die vorstehende Ausführungsform des Bestimmens, ob der erste Eckpunkt eine 3D-Ecke ist, ferner das Bestimmen beinhalten, ob der erste Eckpunkt das Orthogonalitätskriterium erfüllt. Dies kann das Bestimmen beinhalten, ob der erste Vektor v 1
    Figure DE102020120526A1_0006
    und der zweite Vector v 2 ,
    Figure DE102020120526A1_0007
    die vorstehend beschrieben wurden, im Wesentlichen orthogonal zueinander sind. Das Orthogonalitätskriterium kann beispielsweise das Bewerten beinhalten, ob der Vektor 551 von 5D und der Vektor 552 von 5D im Wesentlichen orthogonal (auch als im Wesentlichen senkrecht bezeichnet) sind. Wie hierin verwendet, bezieht sich „im Wesentlichen orthogonal“ auf zwei Linien oder zwei Vektoren, die sich in einem Winkel von ungefähr 90° treffen. Ungefähr 90° kann einen Bereich um 90° herum von +/- 0,1°, 0,5°, 1°, 2°, 3°, 4°, und/oder 5° Grad umfassen. In einigen Fällen kann die vorstehende Bestimmung ausgeführt werden, indem bestimmt wird, ob ein Punktprodukt des ersten Vektors v 1
    Figure DE102020120526A1_0008
    und des zweiten Vektors v 2
    Figure DE102020120526A1_0009
    Null oder im Wesentlichen Null ist. Bei einer Ausführungsform kann ein Eckpunkt (z. B. der Eckpunkt 512b) zu einer 3D-Ecke bestimmt werden oder in einen Satz von 3D-Ecken aufgenommen werden, wenn der Eckpunkt das erste Längenkriterium, das zweite Längenkriterium und das vorstehend beschriebene Orthogonalitätskriterium erfüllt. Bei einer Ausführungsform kann jeder Eckpunkt der in Operation 306 identifizierten mehreren Eckpunkte bewertet werden, um zu bestimmen, ob der Eckpunkt eine 3D-Ecke ist. Wenn ein Eckpunkt ein 3D-Eckpunkt ist, der das erste und das zweite Längenkriterium erfüllt, aber keine 3D-Ecke ist, da er das Orthogonalitätskriterium nicht erfüllt, kann der 3D-Eckpunkt dennoch zur Bestimmung einer vereinigten Ecke verwendet werden, wie es nachstehend ausführlicher beschrieben wird.
  • Bei einigen Ausführungsformen kann das Bestimmen, ob der erste Vektor v 1
    Figure DE102020120526A1_0010
    und der zweite Vektor v 2
    Figure DE102020120526A1_0011
    (z. B. Vektor 551 und Vektor 552) im Wesentlichen orthogonal zueinander sind, die Projektion (z. B. durch den Objektidentifikationsmanager 206) der beiden Vektoren auf eine gemeinsame Ebene beinhalten und dann das Bestimmen, ob die projizierten Vektoren im Wesentlichen orthogonal zueinander sind. Ein aus den Raumstrukturdaten extrahierter Teil/Raumsegment kann beispielsweise Rauminformationen mit einem Bereich von Tiefenwerten umfassen und eine Schicht darstellen, die eine gewinkelte Fläche bildet (z. B. relativ zu einer Bildebene der Raumstrukturerfassungsvorrichtung 151 von 1A-1C). In solchen Situationen können der erste v 1
    Figure DE102020120526A1_0012
    und der zweite Vektor v 2
    Figure DE102020120526A1_0013
    außerhalb der Ebene liegen. Um solchen Situationen Rechnung zu tragen, kann der Objektidentifikationsmanager 206 (oder allgemeiner die Verarbeitungsschaltung 110 des Computersystems 101) derart konfiguriert sein, dass der erste Vektor v 1
    Figure DE102020120526A1_0014
    und der zweite Vektor v 2
    Figure DE102020120526A1_0015
    auf eine gemeinsame Ebene projiziert werden und der Winkel zwischen den projizierten Vektoren dazu verwendet wird, zu bestimmen, ob sie im Wesentlichen orthogonal zueinander sind.
  • Bei einer Ausführungsform beinhaltet die Operation 308 ferner das Bestimmen einer Konvexität eines Eckpunkts, der eine 3D-Ecke ist (d. h. das Bestimmen einer Konvexität der 3D-Ecke) oder allgemeiner, ob die 3D-Ecke eine konvexe Ecke ist. Diese Bestimmung kann z. B. durch den Objektidentifikationsmanager 206 erfolgen. Eine konvexe Ecke einer Form kann eine Ecke sein, bei der ein Winkel innerhalb der Form kleiner als 180° ist, während eine konkave Ecke eine Form sein kann, bei der ein Winkel außerhalb der Form kleiner als 180° ist. Der Eckpunkt 512b in 5D kann beispielsweise eine 3D-Ecke sein, da er das Orthogonalitätskriterium erfüllt, und kann ferner eine konvexe Ecke sein, da ein Winkel 516 innerhalb der Form von 5D am Eckpunkt 512b einen Winkel von im Wesentlichen 90° aufweist, der kleiner als 180° ist. Der Eckpunkt 512d in 5D kann eine 3D-Ecke sein, da er auch das Orthogonalitätskriterium erfüllt, er kann aber eine konkave Ecke sein, da ein Winkel 517 außerhalb der Form von 5D am Eckpunkt 512d im Wesentlichen 90° beträgt, was weniger als 180° ist. Bei einem dreidimensionalen Objekt kann eine konvexe Ecke einer Form als eine Ecke verstanden werden, für die eine Ebene gezeichnet werden kann, welche die Form an nur einem Punkt schneidet - der konvexen Ecke selbst. Konvexe Ecken und konkave Ecken können auch durch den Inhalt des sie umgebenden Raums definiert werden. Ein Eckpunkt kann beispielsweise als ein Punkt verstanden werden, an dem sich vier Quadranten schneiden, und das Bestimmen einer Konvexität des Eckpunkts kann das Bestimmen beinhalten, wie viele Quadranten einen Teil der Form enthalten. Wenn nur ein Quadrant einen Teil der Form enthält, kann der Eckpunkt als konkav bestimmt werden. Wenn drei Quadranten einen Teil der Form enthalten, kann der Eckpunkt als konvex bestimmt werden.
  • Bei einer Ausführungsform bedeutet das Bestimmen, ob ein Eckpunkt, der eine 3D-Ecke ist, auch eine konvexe Ecke ist, dass (z. B. durch den Objektidentifikationsmanager 206) ein Kreuzprodukt des ersten v 1
    Figure DE102020120526A1_0016
    und des zweiten Vektors v 2
    Figure DE102020120526A1_0017
    bestimmt wird, welche die beiden vorstehend beschriebenen Vektoren sind, die von dem Eckpunkt wegzeigen. Das Kreuzprodukt kann einen Kreuzproduktvektor umfassen oder ein solcher sein. 5F veranschaulicht beispielsweise die Kreuzproduktvektoren 553 und 556, die ein Ergebnis von Kreuzproduktoperationen sind. Genauer gesagt stellt die Figur eine perspektivische Ansicht der Schicht 422 bereit. 5F veranschaulicht zudem die Position der Raumstrukturerfassungsvorrichtung 151A in Bezug auf das erfasste Raumsegment 422. Im Beispiel von 5F ist der Kreuzproduktvektor 553 das Ergebnis eines Kreuzprodukts der Vektoren 551, 552 und ist orthogonal zu beiden Vektoren 551, 552. Ferner ist der Kreuzproduktvektor 556 das Ergebnis eines Kreuzprodukts der Vektoren 554, 555. Die Richtung des Kreuzproduktvektors 553 oder 556, wie sie durch die Rechte-Hand-Regel bestimmt ist, kann angeben, ob ein bestimmter Eckpunkt, der eine 3D-Ecke ist (z. B. Eckpunkt 512b oder Eckpunkt 512d in 5F), auch eine konvexe oder konkave Ecke ist. Die Rechte-Hand-Regel ist eine häufig verwendete Konvention zur Bestimmung der Richtung eines Kreuzproduktvektors. Als Beispiel dient die Kreuzproduktgleichung a × b = c .
    Figure DE102020120526A1_0018
    Unter Verwendung der rechten Hand wird der Zeigefinger in Richtung a
    Figure DE102020120526A1_0019
    gerichtet und der Mittelfinger wird in Richtung b .
    Figure DE102020120526A1_0020
    gerichtet. Wenn Zeige- und Mittelfinger derart angeordnet sind, zeigt der ausgestreckte Daumen in Richtung des Kreuzprodukts c .
    Figure DE102020120526A1_0021
    Die Bestimmung, ob ein Eckpunkt eine konvexe Ecke ist, kann die Bestimmung beinhalten, ob eine Richtung eines dem Eckpunkt entsprechenden Kreuzproduktvektors mit einer definierten Richtung übereinstimmt. Wie nachstehend ausführlicher beschrieben, kann die Richtung, an die der Kreuzproduktvektor angepasst wird, eine Richtung sein, in der das Computersystem 101 durch die mehreren Eckpunkte (von Operation 306) fortschreitet.
  • Da die Kreuzproduktoperation antikommutativ ist, beeinflusst die Anordnung der Vektoren und Eckpunkte das Ergebnis der vorstehend beschriebenen Bestimmung. Wenn beispielsweise die Verarbeitungsschaltung 110 des Computersystems 101 bestimmt, ob jeder Eckpunkt der mehreren Eckpunkte ein 3D-Eckpunkt ist, ob jeder Eckpunkt eine 3D-Ecke ist und/oder, ob jeder Eckpunkt eine konvexe Ecke ist, kann sich die Reihenfolge der Eckpunkt darauf beziehen, ob die Verarbeitungsschaltung 110 die vorstehende Bestimmung in einer Reihenfolge ausführt, die im Uhrzeigersinn oder gegen den Uhrzeigersinn durch die mehreren Eckpunkte fortschreitet. Wenn die Verarbeitungsschaltung 110 beispielsweise die Eckpunkte 512a, 512b, 512c, 512d, 512e und 512f von 5D oder 5F bewertet, um zu bestimmen, ob jeder Eckpunkt eine konvexe Ecke ist, kann die Verarbeitungsschaltung 110 als durch die Eckpunkte entlang einer Kontur 423 der Schicht 422 im Uhrzeigersinn fortschreitend betrachtet werden. In einem solchen Beispiel kann die definierte Richtung, gegen die ein Kreuzproduktvektor verglichen wird, eine Richtung sein, die aus der in 5F dargestellten Schicht 422 heraus zeigt (auch bezeichnet als von der Schicht nach oben in Richtung der Raumstrukturerfassungsvorrichtung 151A zeigend). In diesem Beispiel kann ein Eckpunkt als konvexe Ecke betrachtet werden, wenn sein Kreuzproduktvektor in die definierte Richtung zeigt oder anderweitig damit übereinstimmt, und er kann als konkave Ecke betrachtet werden, wenn sein Kreuzproduktvektor nicht in die definierte Richtung zeigt oder allgemeiner nicht damit übereinstimmt. Wenn zum Beispiel die Eckpunkte von 5F bewertet werden, wird der Kreuzproduktvektor 553, der ein Kreuzprodukt der Vektoren 551 und 552 ist, aus der Schicht 422 (oder von der Schicht nach oben), die durch das Raumsegment dargestellt wird, zeigen. Der Kreuzproduktvektor 533 kann als mit der definierten Richtung übereinstimmend betrachtet werden, und daher kann sein entsprechender Eckpunkt (512b) als konvexe Ecke betrachtet werden. Im Beispiel von 5F zeigt der erste Vektor 551 in die Richtung A, die als Richtung gegen den Uhrzeigersinn oder als eine Richtung betrachtet werden kann, die einem Fluss im Gegenuhrzeigersinn entlang der Kontur 423 folgt.
  • Bei einer Ausführungsform kann die Sequenz, die durch die mehreren Eckpunkte verläuft, mit einem Fluss analogisiert werden, der einer Kontur (z. B. Kontur 423) folgt, welche die mehreren Eckpunkte der Kontur nacheinander im Uhrzeigersinn oder gegen den Uhrzeigersinn erreicht, und die definierte Richtung (gegen die ein Kreuzproduktvektor verglichen wird) kann der eines Rotationsvektors des Flusses entgegengesetzt sein. Wenn beispielsweise die Auswertung der mehreren Eckpunkte im Uhrzeigersinn fortschreitet, kann der Rotationsvektor nach unten (von der Raumstrukturerfassungsvorrichtung 151A weg) zeigen, wie es durch die Rechte-Hand-Regel definiert wird. Die definierte Richtung kann der des Rotationsvektors entgegengesetzt sein. Wenn die mehreren Eckpunkte im Gegenuhrzeigersinn bewertet werden, kann der Rotationsvektor nach oben zeigen.
  • Im Beispiel von 5F kann die Operation 308 bestimmen, dass der Eckpunkt 512d eine konkave Ecke ist, oder allgemeiner, dass der Eckpunkt 512d keine konvexe Ecke ist. Wie vorstehend angegeben, kann der Eckpunkt 512d als eine konkave Ecke der Kontur 423 betrachtet werden, da ein Winkel außerhalb der Kontur 423 am Eckpunkt 512 kleiner als 180° ist. Die Bestimmung, ob der Eckpunkt 512d eine konkave oder eine konvexe Ecke ist, kann auch auf einem Kreuzprodukt zweier Vektoren basieren, die von dem Eckpunkt weg in Richtung von zwei entsprechenden nächstgelegenen benachbarten Eckpunkten zeigen. Für 5F sind diese zwei Vektoren die Vektoren 554, 555. Der Vektor 554 zeigt in Richtung eines nächstgelegenen benachbarten Eckpunkts in einer Richtung, die einem Verlauf im Gegenuhrzeigersinn folgt, während der Vektor 555 in Richtung eines nächstgelegenen benachbarten Eckpunkts in einer Richtung zeigt, die einem Verlauf im Uhrzeigersinn folgt. Das Kreuzprodukt der Vektoren 554, 556 umfasst einen Kreuzproduktvektor 556. Der Kreuzproduktvektor 556 zeigt in die Schicht (auch als nach unten zeigend bezeichnet, von der Raumstrukturerfassungsvorrichtung 151A weg). Eine Richtung des Kreuzproduktvektors 556 (nach unten) kann der definierten Richtung (nach oben) entgegengesetzt sein. Daher kann der Eckpunkt 512d, der dem Kreuzproduktvektor 556 entspricht, als konkave Ecke oder allgemeiner als nicht konvexe Ecke betrachtet werden.
  • Wie vorstehend beschrieben, kann die Reihenfolge der Vektoren und Eckpunkte, die bei der Berechnung des Kreuzprodukts verwendet werden, eine Richtung des resultierenden Kreuzproduktvektors beeinflussen. In dem in 5F gezeigten Beispiel können die Eckpunkte über mehrere entsprechende Iterationen in einer Reihenfolge bewertet werden, die im Uhrzeigersinn durch die Eckpunkte fortschreitet (auch als Reihenfolge im Uhrzeigersinn bezeichnet), wobei ein erster Vektor v 1 ,
    Figure DE102020120526A1_0022
    der zur Berechnung der Kreuzproduktpunkte verwendet wird, in eine Richtung zeigt, die einem Fluss im Gegenuhrzeigersinn folgt (von einem aktuellen Eckpunkt zu einem vorherigen Eckpunkt), und ein zweiter Vektor v 2 ,
    Figure DE102020120526A1_0023
    , der zur Berechnung der Kreuzproduktpunkte verwendet wird, in eine Richtung zeigt, die einem Fluss im Uhrzeigersinn folgt (vom aktuellen Eckpunkt zu einem nächsten Eckpunkt). Der Kreuzproduktvektor von v 1 × v 2
    Figure DE102020120526A1_0024
    kann in eine Richtung auf die Raumstrukturerfassungsvorrichtung 151A zeigen. Bei einem weiteren Beispiel können die Eckpunkte in einer Reihenfolge bewertet werden, die gegen den Uhrzeigersinn durch die Eckpunkte verläuft (auch als Reihenfolge gegen den Uhrzeigersinn bezeichnet). In einem solchen Beispiel zeigt der erste Vektor v 1 ,
    Figure DE102020120526A1_0025
    der zur Berechnung des Kreuzprodukts verwendet wird, in eine Richtung, die einem Fluss im Uhrzeigersinn folgt (von einem aktuellen Eckpunkt zu einem vorherigen Eckpunkt), und ein zweiter Vektor v 2 ,
    Figure DE102020120526A1_0026
    der zur Berechnung des Kreuzprodukts verwendet wird, zeigt in eine Richtung, die einem Fluss im Gegenuhrzeigersinn folgt (vom aktuellen Eckpunkt zu einem nächsten Eckpunkt). Der Kreuzproduktvektor von v 1 × v 2
    Figure DE102020120526A1_0027
    kann in eine Richtung zeigen, die von der Raumstrukturerfassungsvorrichtung 151A. wegzeigt. Daher können die Kreuzproduktvektoren in den zwei vorstehenden Beispielen abhängig davon, ob die Eckpunkte im Uhrzeigersinn oder gegen den Uhrzeigersinn durchlaufen werden, in verschiedene Richtungen zeigen. Daher kann die Verarbeitungsschaltung 110 bei der Identifizierung, ob ein Eckpunkt eine konvexe Ecke ist (z. B. bei Ausführung des Objektidentifikationsmanagers 206), berücksichtigen, ob die Eckpunkte im Uhrzeigersinn oder gegen den Uhrzeigersinn bewertet werden. Wenn die Eckpunkte im Uhrzeigersinn bewertet werden, kann die Verarbeitungsschaltung 110 beispielsweise bestimmen, ob die definierte Richtung (gegen die Kreuzproduktvektoren verglichen werden) eine Richtung ist, die nach oben zur Raumstrukturerfassungsvorrichtung 151A hin zeigt. Wenn die Eckpunkte entgegen dem Uhrzeigersinn bewertet werden, kann die Verarbeitungsschaltung 110 bestimmen, ob die definierte Richtung eine Richtung ist, die nach unten und von der Raumstrukturerfassungsvorrichtung 151A weg zeigt.
  • Bei Ausführungsformen kann die Verarbeitungsschaltung 110 (z. B. während der Ausführung des Objektidentifikationsmanagers 206) in beliebiger Reihenfolge das Bestimmen, welche Eckpunkte 3D-Ecken sind, und das Bestimmen, welche Eckpunkte konvexe Ecken sind, ausführen. Bei einigen Ausführungsformen muss das Bestimmen, welche Eckpunkte 3D-Ecken sind, möglicherweise vor dem Bestimmen, welche Eckpunkte konvexe Ecken sind, erfolgen. Die Verarbeitungsschaltung 110 kann alle der mehreren Eckpunkte der Operation 306 bewerten, um 3D-Ecken zu identifizieren, bevor sie bestimmt, welche Eckpunkte ebenfalls konvexe Ecken sind, oder die Verarbeitungsschaltung kann mit der Identifizierung konvexer Ecken beginnen, nachdem nur einige Eckpunkte bewertet wurden, um zu bestimmen, ob diese Eckpunkte 3D-Ecken sind. Bei einigen Ausführungsformen kann die Verarbeitungsschaltung bestimmen, ob ein bestimmter Eckpunkt eine konvexe Ecke ist, nachdem der Eckpunkt als 3D-Ecke bestimmt wurde.
  • Bei einer Ausführungsform kann die Operation 308 das Bestimmen einer vereinigten Ecke beinhalten, die als konvexe Ecke betrachtet werden kann. In einigen Fällen kann die vereinigte Ecke eine orthogonale Ecke einer Form sein, welche die durch die Raumstrukturdaten beschriebene Objektstruktur annähert und sich in der Nähe des Eckpunkts befindet, der bewertet wird. Die vereinigte Ecke kann als Teil einer Eckenvereinigungstechnik bestimmt werden, die nachstehend näher beschrieben wird. Eine solche Ausführungsform kann für Situationen gelten, bei denen ein Eckpunkt als 3D-Eckpunkt bestimmt wird (da er das erste Längenkriterium und das zweite Längenkriterium erfüllt), aber keine 3D-Ecke ist (da er das Orthogonalitätskriterium nicht erfüllt). 5G stellt beispielsweise eine Schicht 622 einer Struktur dar, die durch einen Teil/ein Raumsegment von Raumstrukturdaten beschrieben wird, in dem die Schicht z. B. in Operation 304 extrahiert wird. Insbesondere stellt die Figur mehrere Eckpunkte 532a-532g dar, die eine Kontur der Schicht 622 beschreiben. Die Eckpunkte können z. B. in Operation 306 identifiziert worden sein. In diesem Beispiel kann der Eckpunkt 532b ein erster Eckpunkt (z. B. der aktuelle Eckpunkt) der mehreren Eckpunkte sein, während der Eckpunkt 532a ein zweiter Eckpunkt (z. B. ein vorhergehender Eckunkt) und der Eckpunkt 532c ein dritter Eckpunkt (z. B. ein nächster Eckpunkt) sein kann. Der Eckpunkt 532a kann ein nächstgelegener (auch als nahester) Eckpunkt zu Eckpunkt 532b in einer ersten Richtung A entlang der Kontur der Schicht 622 sein, während der Eckpunkt 532c ein nächstgelegener Eckpunkt zu Eckpunkt 532b in einer zweiten Richtung B entlang der Kontur der Schicht 622 ist. Ein erster Vektor 561 kann derart definiert werden, dass er sich von Eckpunkt 532b zu Eckpunkt 532a erstreckt, während ein zweiter Vektor 562 derart definiert werden kann, dass er sich von Eckpunkt 532b zu Eckpunkt 532c erstreckt. In diesem Beispiel kann der Punkt 532b als 3D-Eckpunkt definiert werden, da er das erste Längenkriterium und das zweite Längenkriterium erfüllt, aber nicht als 3D-Ecke berücksichtigt werden, da er das Orthogonalitätskriterium nicht erfüllt. Das Orthogonalitätskriterium ist nicht erfüllt, da der erste Vektor 561 und der zweite Vektor 562 nicht orthogonal zueinander sind.
  • Bei einer solchen Situation kann die Verarbeitungsschaltung 110 einen vierten Eckpunkt auswählen, der ein zweitnahester Eckpunkt zu dem ersten Eckpunkt in der zweiten Richtung entlang der Kontur der Schicht ist, und sie kann einen dritten Vektor zwischen dem vierten und dem dritten Eckpunkt definieren. Im Beispiel von 5G ist der vierte Eckpunkt 532d, der ein zweitnahester benachbarter Eckpunkt zu Eckpunkt 532b entlang der Richtung B ist. Der dritte Vektor in diesem Beispiel ist der Vektor 563, der sich zwischen dem Eckpunkt 532c und dem Punkt 532d befindet und insbesondere von Eckpunkt 532c zu Eckpunkt 532d verläuft. In einigen Fällen kann die Verarbeitungsschaltung 110 (z. B. bei Ausführung des Objektidentifikationsmanagers 206) durch Vergleichen des dritten Vektors 563 mit der Schwellenwertlänge bestimmen, ob der dritte Vektor ein drittes Längenkriterium erfüllt. In einigen Fällen kann ein solcher Vergleich auch ausgelassen werden.
  • Im vorstehenden Beispiel der Eckenvereinigungstechnik kann die Verarbeitungsschaltung 110 ferner eine erste Linie bestimmen oder anderweitig definieren, die sich entlang des ersten Vektors erstreckt, und eine zweite Linie, die sich entlang des dritten Vektors erstreckt. 5G zeigt beispielsweise ein Beispiel, in dem die erste Linie die Linie 571 und die zweite Linie die Linie 573 ist. Die Linie 571 kann sich entlang des Vektors 561 erstrecken und kann sich über den Eckpunkt 532a hinaus und über den Eckpunkt 532b hinaus erstrecken. In ähnlicher Weise erstreckt sich die Linie 573 entlang des Vektors 563 und über die Eckpunkte 532c und 532d hinaus.
  • Im vorstehenden Beispiel der Eckenvereinigungstechnik kann die Verarbeitungsschaltung 110 ferner einen Schnittpunkt (z. B. Punkt 532h von 5G) identifizieren, der ein Schnittpunkt zwischen der ersten Linie (z. B. 571) und der zweiten Linie (z. B. 573) ist. Bei Identifizieren des Punkts 532h als Eckpunkt kann der Punkt 532h zusammen mit den Eckpunkten 532a-g zu den mehreren Eckpunkten hinzugefügt werden. Wie in 5G dargestellt, kann der Schnittpunkt 532h ein imaginärer Punkt sein, der sich außerhalb einer Form befindet, die durch die in der Figur dargestellte Schicht gebildet wird, oder insbesondere außerhalb einer Kontur der Schicht. In einigen Fällen kann die Verarbeitungsschaltung 110 ferner bestimmen, ob der Schnittpunkt (z. B. 532h) das Orthogonalitätskriterium erfüllt, wie beispielsweise durch das Bestimmen, ob die erste Linie (z. B. 571) orthogonal oder im Wesentlichen orthogonal zur zweiten Linie (z. B. 573) ist. Wenn die erste Linie und die zweite Linie, die den Schnittpunkt definieren, orthogonal zueinander sind, kann der Schnittpunkt als eine vereinigte Ecke bezeichnet werden.
  • Bei dem vorstehenden Beispiel der Eckenvereinigungstechnik kann die Verarbeitungsschaltung 110 ferner bestimmen, ob die vereinigte Ecke konvex ist. In einigen Fällen kann diese Bestimmung ähnlich wie bei der vorstehenden Beschreibung eines Kreuzprodukts zwischen dem ersten und dem zweiten Vektor auf der Bestimmung eines Kreuzprodukts des ersten Vektors und des dritten Vektors basieren. Die Konvexität der vereinigten Ecke kann darauf basieren, ob eine Richtung eines entsprechenden Kreuzproduktvektors mit der vorstehend beschriebenen definierten Richtung übereinstimmt. In einigen Fällen kann das Bestimmen, ob die vereinigte Ecke konvex ist, das Bestimmen beinhalten, ob sich die vereinigte Ecke außerhalb der Kontur der Schicht befindet, die durch die mehreren Eckpunkte beschrieben wird. Punkt 532h ist beispielsweise eine vereinigte Ecke, die konvex ist, da er sich außerhalb der Kontur 623 der Schicht 622 befindet. Wenn die vereinigte Ecke als konvex bestimmt wird, kann sie als eine konvexe Ecke der Operation 308 identifiziert werden.
  • Wie vorstehend angegeben, kann das Bestimmen, ob ein Eckpunkt eine 3D-Ecke ist, oder das Bestimmen einer vereinigten Ecke basierend auf dem Eckpunkt für jeden von mehreren Eckpunkten durch mehrere Iterationen erfolgen. In dem in 5G vorstehend beschriebenen Beispiel wird die aktuelle Iteration für den Eckpunkt 532b derart ausgeführt, dass der Eckpunkt 532b der aktuelle Eckpunkt ist und die Eckpunkte 532a und 532c entsprechend der vorherige und der nächste Eckpunkt für diese Iteration sind. In der nächsten aufeinanderfolgenden Iteration kann die Verarbeitungsschaltung 110 zum nächsten nicht geprüften Eckpunkt fortschreiten. Nachdem der Punkt 532h als vereinigte Ecke identifiziert wurde, kann die Verarbeitungsschaltung 110 den Eckpunkt 532c überspringen und mit der Bestimmung fortfahren, ob der Eckpunkt 532d ein 3D-Eckpunkt oder eine 3D-Ecke ist. Da der Eckpunkt 532c bei der Bestimmung des Punktes 532h als vereinigte Ecke verwendet wurde, ist es nicht notwendig, diesen Punkt erneut zu bewerten.
  • Bei weiteren Ausführungsformen kann die Verarbeitungsschaltung, nachdem der Punkt 532h als eine vereinigte Ecke identifiziert wurde, zu einem dem Punkt 532h nächstgelegenen benachbarten Eckpunkt fortschreiten. In diesem Beispiel kann sie beispielsweise zu Eckpunkt 532c fortschreiten. In diesem Beispiel wird der Eckpunkt 532c zum aktuellen Punkt, während der Punkt 532h, der jetzt zu den mehreren Eckpunkten hinzugefügt wurde, und 532d der vorherige und der nächste Eckpunkt für diese Iteration sind. Da der Punkt 532h auf der Linie 573 liegt, welche die Eckpunkte 532c und 532d verbindet, kann der Eckpunkt 532c das dritte Kriterium (Orthogonalität) nicht erfüllen, und die Verarbeitungsschaltung 110 bestimmt, dass der Eckpunkt 532c kein 3D-Eckpunkt oder keine 3D-Ecke ist.
  • Das vorstehend beschriebene Eckenvereinigungsverfahren kann in mehreren Situationen vorteilhaft sein. Solche Situationen können unregelmäßig geformte Objekte mit nicht rechtwinkligen (d. h. abgewinkelten oder abgerundeten) Ecken und/oder ein bestimmtes physisches Objekt mit einer Ecke umfassen, die relativ zur Raumstrukturerfassungsvorrichtung 151/151A der 1A bis 1D und 5F verdeckt oder nicht sichtbar ist. Ein erstes Objekt kann beispielsweise eine Ecke aufweisen, die durch ein zweites Objekt, das auf das erste Objekt gestapelt ist, verdeckt oder nicht sichtbar ist. Bei einem weiteren Beispiel kann ein Unterschied in der Farbe oder im Material (z. B. reflektierendes Band) an einer Ecke eines Objekts in einer ungenauen Raumstrukturdatenerfassung resultieren. In solchen Situationen kann die Eckenfusionstechnik solche Ungenauigkeiten ausgleichen.
  • Unter Bezugnahme auf 3 umfasst das Verfahren 300 ferner eine Operation 310, bei der die Verarbeitungsschaltung 110 des Computersystems 101 eine Objekterkennung entsprechend den in Operation 308 identifizierten konvexen Ecken ausführt. In einigen Fällen kann die Operation 310 durch den Objekterkennungsmanager 208 erfolgen. Bei einer Ausführungsform kann die Operation 310 das Erzeugen einer Detektionshypothese, das Modifizieren einer Detektionshypothese und/oder das Filtern einer Detektionshypothese, wie hierin beschrieben, umfassen.
  • Bei einer Ausführungsform kann sich eine Detektionshypothese auf eine Schätzung dessen beziehen, welches Objekt, welcher Objekttyp und/oder welche Objektorientierung von der Raumstrukturerfassungsvorrichtung 151 der IFG. 1A bis 1C erfasst wird. In einigen Fällen kann sich die Erfassungshypothese auf das Bestimmen beziehen, ob ein bestimmtes Objekt oder ein bestimmter Objekttyp (z. B. eine bestimmte Art von Kasten oder eine andere Verpackung) durch Raumstrukturdaten, wie beispielsweise die Raumstrukturdaten von Operation 302, beschrieben wird. In einigen Fällen kann die Detektionshypothese eine bestimmte Abbildung zwischen den Raumstrukturdaten und Vorlagenmerkmalen einer Vorlage sein, wobei die Vorlage eine Objektstruktur beschreibt. Die Vorlage kann die Objektstruktur durch Vorlagenmerkmale beschreiben, wie beispielsweise eine Reihe von Koordinaten für Ecken, Flächen und/oder Kanten der Objektstruktur. 6A zeigt ein Beispiel einer Vorlage für einen bestimmten Objekttyp, wie beispielsweise eine bestimmte Art von Kiste, die Teil des Inventars in einem Warenlager ist. Wie vorstehend angegeben, kann die Vorlage mehrere Merkmale des Objekttyps beschreiben, wie beispielsweise eine Reihe von Koordinaten, die Ecken, Kanten, eine oder mehrere Flächen oder einige andere Merkmale darstellen. Im Beispiel von 6A umfasst die Vorlage vier Koordinaten, die vier Punkte 612a-612d auf einem bestimmten Objekttyp (z. B. einer Kiste) beschreiben. Die vier Koordinaten können z. B. vier Ecken dieses Objekttyps darstellen. Bei einigen Implementierungen kann eine Detektionshypothese eine Schätzung für eines oder mehrere der Merkmale in der vorstehend beschriebenen Vorlage umfassen, von denen ein oder mehrere Teile der Raumstrukturdaten auf das eine oder die mehreren Merkmale abgebildet sind oder anderweitig diesen entsprechen.
  • Bei einer Ausführungsform beinhaltet die Operation 310 die Verwendung der in Operation 308 identifizierten konvexen Ecken, um eine Detektionshypothese zu erzeugen. Die konvexe Ecke, die durch Punkt 512a in 6A repräsentiert wird, kann zum Erzeugen einer Detektionshypothese verwendet werden. Die Detektionshypothese in 6A kann eine geschätzte Abbildung sein, die den Punkt 612a der Vorlage auf die konvexe Ecke, die durch Punkt 512a repräsentiert wird, abbildet, wie es in den 6A und 6B veranschaulicht ist. In einigen Fällen kann die Detektionshypothese auch eine Bestimmung beinhalten, dass die Punkte 612a-612d der Vorlage mit den identifizierten konvexen Ecken auszurichten sind. Eine solche Bestimmung kann beispielsweise beinhalten, dass die Punkte 612a-612d derart ausgerichtet sind, dass eine Linie zwischen den Punkten 612a und 612d parallel zu einer Linie zwischen den Punkten 512a und 512f ist, und/oder dass eine Linie zwischen den Punkten 612a und 612b parallel zu einer Linie zwischen den Punkten 512a und 512b ist. Das Verwenden der konvexen Ecken von Schritt 308 zum Erzeugen einer Detektionshypothese kann die Wahrscheinlichkeit erhöhen, dass die Detektionshypothese korrekt ist. Insbesondere können die konvexen Ecken, die in Operation 308 identifiziert werden, mit größerer Wahrscheinlichkeit physischen Merkmalen einer Struktur von einem oder mehreren Objekten (z. B. 401, 402 von 4A) entsprechen, wie beispielsweise Ecken des einen oder der mehreren Objekte. Wenn die Vorlage auch physische Merkmale eines bestimmten Objekts oder Objekttyps identifiziert, dann kann eine Detektionshypothese, bei der ein Merkmal der Vorlage an eine konvexe Ecke angepasst wird, eine höhere Wahrscheinlichkeit aufweisen, genau zu sein. In einigen Fällen kann die Detektionshypothese modifiziert und verfeinert werden und die konvexen Ecken können einen Ausgangspunkt zum Bestimmen einer korrekten Detektionshypothese darstellen. Daher kann bei einer Ausführungsform die Operation 310 das Bestimmen beinhalten, ob die konvexen Ecken mit Merkmalen in einer Vorlage, die eine Objektform definiert, ausgerichtet sind.
  • Bei einer Ausführungsform kann die Operation 310 das Bestimmen beinhalten, ob eine Detektionshypothese herausgefiltert oder anderweitig ignoriert werden soll. Allgemeiner ausgedrückt kann eine solche Ausführungsform das Bestimmen beinhalten, ob die Detektionshypothese wahrscheinlich inkorrekt ist. 6C stellt beispielsweise eine weitere Detektionshypothese dar, die eine weitere Schätzung beinhaltet, welcher Teil der Vorlage (dargestellt durch die Punkte 612a-612d) auf einen weiteren Teil der Raumstrukturdaten abgebildet ist. Da bei dieser Ausführungsform keines der Vorlagenmerkmale auf eine konvexe Ecke (z. B. Punkt 512a) abgebildet ist, kann die Detektionshypothese bei dieser Ausführungsform zum Zwecke der Objekterkennung herausgefiltert oder anderweitig ignoriert werden. Bei einem weiteren Beispiel muss eine Detektionshypothese möglicherweise mindestens ein Vorlagenmerkmal einer Vorlage auf einen Teil der Raumstrukturdaten abbilden, der einen Ort repräsentiert, der sich ausreichend nahe an einer konvexen Ecke befindet. Wenn die Detektionshypothese kein Vorlagenmerkmal auf einen Ort abbildet, der sich ausreichend nahe an einer konvexen Ecke befindet, kann die Detektionshypothese herausgefiltert werden.
  • Weitere Ausführungsformen, die mit der Offenbarung übereinstimmen, umfassen mindestens die folgenden.
  • Ausführungsform 1 ist ein Computersystem, umfassend ein nicht flüchtiges computerlesbares Medium; mindestens eine Verarbeitungsschaltung, die, wenn Raumstrukturdaten, welche eine Objektstruktur beschreiben, auf dem nicht flüchtigen computerlesbaren Medium gespeichert sind, konfiguriert ist zum: Zugreifen auf die Raumstrukturdaten, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren, aus den Raumstrukturdaten, eines Teils der Raumstrukturdaten, der eine Schicht der mehreren Schichten darstellt; Identifizieren, von dem Teil der Raumstrukturdaten, mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben; Identifizieren konvexer Ecken der Schicht basierend auf den mehreren Eckpunkten; und Ausführen einer Objekterkennung gemäß den konvexen Ecken.
  • Ausführungsform 2 ist das Computersystem der Ausführungsform 1, wobei die Raumstrukturdaten eine Punktwolke umfassen, die mehrere Punkte identifiziert, die jeweilige Orte auf einer oder mehreren Flächen der Objektstruktur darstellen, und wobei der Teil der Raumstrukturdaten, der extrahiert wird, einen Satz von Punkten identifiziert, die einen Teil der mehreren Punkte darstellen und die repräsentativ für die Schicht sind.
  • Ausführungsform 3 ist das Computersystem der Ausführungsform 2, wobei die Verarbeitungsschaltung konfiguriert ist, die mehreren Eckpunkte, welche die Kontur der Schicht beschreiben, zu identifizieren, durch: Identifizieren mehrerer Liniensegmente, die gerade Kanten für den Satz von Punkten bilden, welche die Schicht repräsentieren, und Identifizieren der mehreren Eckpunkte als Endpunkte der Liniensegmente.
  • Ausführungsform 4 ist das Computersystem der Ausführungsform 2 oder 3, wobei die Verarbeitungsschaltung konfiguriert ist, die mehreren Eckpunkte, welche die Kontur der Schicht beschreiben, zu identifizieren durch: Identifizieren mehrerer Kantenpunkte aus dem Satz von Punkten, wobei die Kantenpunkte Punkte darstellen, die sich auf einem Umfang des Satzes von Punkten befinden; Bestimmen mehrerer Linien, die durch die mehreren Kantenpunkte passen; und Identifizieren, als die mehreren Eckpunkte, von Schnittpunkten, an denen sich die mehreren Linien schneiden.
  • Ausführungsform 5 ist das Computersystem von einer der Ausführungsformen 1 bis 4, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die konvexen Ecken der Schicht unter den mehreren Eckpunkten zu identifizieren durch: Bestimmen einer Beziehung, die mindestens einen Abstand oder Abstände zwischen zwei oder mehr Eckpunkten aus den mehreren Eckpunkten angibt; Identifizieren einer Teilmenge der mehreren Eckpunkte als 3D-Ecken gemäß der Beziehung; und Identifizieren, als die konvexen Ecken, von 3D-Ecken, die konvex sind.
  • Ausführungsform 6 ist das Computersystem der Ausführungsform 5, wobei die Beziehung ferner die entsprechenden Winkel angibt, die durch Paare von Vektoren gebildet werden, wobei sich jeder der Vektoren zwischen einem Paar von Eckpunkten der mehreren Eckpunkte erstreckt.
  • Ausführungsform 7 ist das Computersystem von einer der Ausführungsformen 1 bis 6, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die konvexen Ecken der Schicht aus den mehreren Eckpunkten zu identifizieren durch: Identifizieren eines Satzes von 3D-Eckpunkten aus den mehreren Eckpunkten, Identifizieren eines Satzes von 3D-Ecken aus dem Satz von 3D-Eckpunkten und Identifizieren mindestens einiger der konvexen Ecken aus dem Satz von 3D-Ecken, wobei der Satz von 3D-Eckpunkten Eckpunkte umfasst, die jeweils einen entsprechenden Abstand zu einem nächstgelegenen benachbarten Eckpunkt aufweisen, der gleich oder größer als eine definierte Schwellenwertlänge ist, und jeden Eckpunkt ausschließt, der einen entsprechenden Abstand zu einem nächstgelegenen benachbarten Eckpunkt aufweist, der kleiner als die definierte Schwellenwertlänge ist, und wobei der Satz von 3D-Ecken 3D-Eckpunkte aus dem Satz von 3D-Eckpunkten umfasst, die eine orthogonale Ecke der Objektstruktur darstellen.
  • Ausführungsform 8 ist das Computersystem der Ausführungsform 7, wobei die Verarbeitungsschaltung ferner konfiguriert ist, den Satz von 3D-Ecken zu identifizieren, indem sie bestimmt, ob ein erster Eckpunkt der mehreren Eckpunkte in den Satz von 3D-Ecken aufgenommen werden soll durch: Auswählen eines zweiten Eckpunkts aus den mehreren Eckpunkten, der ein nächstgelegener benachbarter Eckpunkt zu dem ersten Eckpunkt in einer ersten Richtung entlang der Kontur der Schicht ist; Definieren eines ersten Vektors, der von dem ersten Eckpunkt zu dem zweiten Eckpunkt verläuft; Auswählen eines dritten Eckpunkts aus den mehreren Eckpunkten, der ein nächstgelegener benachbarter Eckpunkt zu dem ersten Eckpunkt in einer zweiten Richtung entlang der Kontur der Schicht ist, wobei sich die zweite Richtung von der ersten Richtung unterscheidet; Definieren eines zweiten Vektors, der von dem ersten Eckpunkt zum dritten Eckpunkt verläuft; Bestimmen, ob der erste Eckpunkt ein erstes Längenkriterium erfüllt, indem eine erste Länge des ersten Vektors mit der definierten Schwellenwertlänge verglichen wird; Bestimmen, ob der erste Eckpunkt ein zweites Längenkriterium erfüllt, indem eine zweite Länge des zweiten Vektors mit der definierten Schwellenwertlänge verglichen wird; Bestimmen, ob der erste Eckpunkt ein Orthogonalitätskriterium erfüllt, indem bestimmt wird, ob der erste Vektor und der zweite Vektor im Wesentlichen orthogonal zueinander sind; und als Reaktion auf eine Bestimmung, dass der erste Eckpunkt das erste Längenkriterium nicht erfüllt, dass der erste Eckpunkt das zweite Längenkriterium nicht erfüllt oder dass der erste Eckpunkt das Orthogonalitätskriterium nicht erfüllt, Bestimmen, dass der erste Eckpunkt aus dem Satz von 3D-Ecken ausgeschlossen wird, als Reaktion auf eine Bestimmung, dass der erste Eckpunkt das erste Längenkriterium erfüllt, dass der erste Eckpunkt das zweite Längenkriterium erfüllt und dass der erste Eckpunkt das Orthogonalitätskriterium erfüllt, Bestimmen, dass der erste Eckpunkt in den Satz von 3D-Ecken aufgenommen wird.
  • Ausführungsform 9 ist das Computersystem der Ausführungsform 8, wobei die Verarbeitungsschaltung ferner konfiguriert ist, als Reaktion auf eine Bestimmung, den ersten Eckpunkt als eine 3D-Ecke in den Satz von 3D-Ecken aufzunehmen, ferner zu Bestimmen, ob die 3D-Ecke eine konvexe Ecke ist, indem ein Kreuzprodukt des ersten Vektors und des zweiten Vektors bestimmt wird, um eine Konvexität der 3D-Ecke zu bestimmen.
  • Ausführungsform 10 ist das Computersystem der Ausführungsform 9, wobei das Bestimmen des Kreuzprodukts das Bestimmen eines Kreuzproduktvektors umfasst, und wobei das Bestimmen, ob die 3D-Ecke eine konvexe Ecke ist, das Bestimmen einschließt, ob eine Richtung des Kreuzproduktvektors mit einer definierten Richtung übereinstimmt.
  • Ausführungsform 11 ist das Computersystem von Ausführungsform 10, wobei die Verarbeitungsschaltung konfiguriert ist, für jeden Eckpunkt der mehreren Eckpunkte zu bestimmen, ob der Eckpunkt als entsprechende 3D-Ecke in den Satz von 3D-Ecken aufgenommen werden soll, und das Bestimmen in einer Reihenfolge auszuführen, die durch die mehreren Eckpunkte entlang der Kontur der Schicht im Uhrzeigersinn oder gegen den Uhrzeigersinn fortschreitet, und wobei die definierte Richtung, gegen welche die Richtung des Kreuzproduktvektors verglichen wird, davon abhängt, ob die Sequenz im Uhrzeigersinn durch die mehreren Eckpunkte fortschreitet oder ob die Sequenz im Gegenuhrzeigersinn durch die mehreren Eckpunkte fortschreitet.
  • Ausführungsform 12 ist das Computersystem von einer der Ausführungsformen 8 bis 11, wobei die Verarbeitungsschaltung konfiguriert ist, als Reaktion auf eine Bestimmung, dass der erste Eckpunkt das Orthogonalitätskriterium nicht erfüllt, basierend auf dem ersten Eckpunkt eine vereinigte Ecke zu bestimmen, wobei die vereinigte Ecke eine orthogonale Ecke einer Form ist, die auf der Objektstruktur basiert und bestimmt wird durch: Auswählen eines vierten Eckpunkts, der ein dem ersten Eckpunkt in der zweiten Richtung entlang der Kontur der Schicht am zweitnächstgelegener benachbarter Eckpunkt ist; Definieren eines dritten Vektors zwischen dem vierten Eckpunkt und dem dritten Eckpunkt; Bestimmen einer ersten Linie, die sich entlang des ersten Vektors erstreckt, und einer zweiten Linie, die sich entlang des dritten Vektors erstreckt; Identifizieren eines Schnittpunkts zwischen der ersten Linie und der dritten Linie; Bestimmen, ob der Schnittpunkt das Orthogonalitätskriterium erfüllt, indem bestimmt wird, ob die erste Linie und die dritte Linie im Wesentlichen orthogonal zueinander sind; und Identifizieren des Schnittpunkts als die vereinigte Ecke als Reaktion auf eine Bestimmung, dass der Schnittpunkt das Orthogonalitätskriterium erfüllt.
  • Ausführungsform 13 ist das Computersystem von Ausführungsform 12, wobei die Verarbeitungsschaltung konfiguriert ist, zu bestimmen, ob die vereinigte Ecke konvex ist, indem sie bestimmt, ob sich die vereinigte Ecke außerhalb der Kontur der Schicht befindet, und die vereinigte Ecke als Reaktion auf eine Bestimmung, dass die vereinigte Ecke konvex ist, als eine der konvexen Ecken zu identifizieren.
  • Ausführungsform 14 ist das Computersystem von einer der Ausführungsformen 8 bis 13, wobei die Verarbeitungsschaltung ferner konfiguriert ist, den ersten Eckpunkt, den zweiten Eckpunkt und den dritten Eckpunkt auf eine gemeinsame Ebene zu projizieren, bevor der erste Vektor und der zweite Vektor definiert werden und bevor bestimmt wird, ob der erste Eckpunkt das erste Längenkriterium, das zweite Längenkriterium und das Orthogonalitätskriterium erfüllt.
  • Ausführungsform 15 ist das Computersystem von einer der Ausführungsformen 1 bis 14, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die Objekterkennung durch Erzeugen einer Detektionshypothese gemäß den konvexen Ecken auszuführen.
  • Ausführungsform 16 ist das Computersystem von einer der Ausführungsformen 1 bis 15, wobei die Verarbeitungsschaltung konfiguriert ist, die Objekterkennung auszuführen, indem sie basierend auf den konvexen Ecken bestimmt, wie die Raumstrukturdaten, welche die Objektstruktur beschreiben, auf Merkmale in einer Vorlage, die ebenfalls die Objektstruktur beschreibt, abzubilden sind.
  • Ausführungsform 17 ist das Computersystem von einer der Ausführungsformen 1 bis 16, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die Objekterkennung durch Modifizieren einer Detektionshypothese gemäß den konvexen Ecken auszuführen.
  • Ausführungsform 18 ist ein nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen, die, bei Ausführung durch eine Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen zum: Zugreifen auf Raumstrukturdaten, die eine Objektstruktur beschreiben, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren, aus den Raumstrukturdaten, eines Teils der Raumstrukturdaten, der für eine Schicht der mehreren Schichten repräsentativ ist; Identifizieren, aus dem Teil der Raumstrukturdaten, mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben; Identifizieren konvexer Ecken der Schicht basierend auf den mehrere Eckpunkten; und Ausführen einer Objekterkennung gemäß den konvexen Ecken.
  • Ausführungsform 19 ist das nicht-flüchtige computerlesbare Medium von Ausführungsform 18, wobei die Befehle bei Ausführung durch die Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen, die konvexen Ecken der Schicht aus den mehreren Eckpunkten zu identifizieren durch: Bestimmen einer Beziehung, die mindestens einen Abstand oder Abstände zwischen zwei oder mehr Eckpunkten aus den mehreren Eckpunkten angibt; Identifizieren einer Teilmenge der mehreren Eckpunkte als 3D-Ecken gemäß der Beziehung; und Identifizieren, als die konvexen Ecken, von 3D-Ecken, die konvex sind.
  • Ausführungsform 20 ist ein Verfahren, das von einem Computersystem ausgeführt wird, wobei das Verfahren umfasst: Zugreifen auf Raumstrukturdaten, welche eine Objektstruktur beschreiben, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren eines Teils der Raumstrukturdaten, der für eine Schicht der mehreren Schichten repräsentativ ist, aus den Raumstrukturdaten; Identifizieren mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben, von dem Teil der Raumstrukturdaten; und Identifizieren konvexer Ecken der Schicht basierend auf den mehreren Eckpunkten; und Ausführen der Objekterkennung gemäß den konvexen Ecken.
  • 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 einzigen Komponente, einem einzigen Modul oder einer einzigen 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.

Claims (15)

  1. Computersystem, umfassend: ein nicht flüchtiges computerlesbares Medium; mindestens eine Verarbeitungsschaltung, die konfiguriert ist, wenn Raumstrukturdaten, welche eine Objektstruktur beschreiben, in dem nicht flüchtigen computerlesbaren Medium gespeichert sind, zum: Zugreifen auf die Raumstrukturdaten, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren, aus den Raumstrukturdaten, eines Teils der Raumstrukturdaten, die für eine Schicht der mehreren Schichten repräsentativ sind; Identifizieren, aus dem Teil der Raumstrukturdaten, mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben; Identifizieren konvexer Ecken der Schicht basierend auf den mehreren Eckpunkten; und Ausführen von Objekterkennung gemäß den konvexen Ecken.
  2. Computersystem nach Anspruch 1, wobei die Raumstrukturdaten eine Punktwolke umfassen, die mehrere Punkte identifiziert, die jeweilige Orte auf einer oder mehreren Flächen der Objektstruktur darstellen, und wobei der Teil der Raumstrukturdaten, der extrahiert wird, einen Satz von Punkten identifiziert, die einen Teil der mehreren Punkte darstellen und die für die Schicht repräsentativ sind.
  3. Computersystem nach Anspruch 2, wobei die Verarbeitungsschaltung konfiguriert ist, die mehreren Eckpunkte, welche die Kontur der Schicht beschreiben, zu identifizieren durch: Identifizieren mehrerer Liniensegmente, die gerade Kanten für den Satz von Punkten bilden, welche die Schicht repräsentieren, und Identifizieren der mehreren Eckpunkte als Endpunkte der Liniensegmente; und/oder wobei die Verarbeitungsschaltung konfiguriert ist, die mehreren Eckpunkte, welche die Kontur der Schicht beschreiben, zu identifizieren durch: Identifizieren von mehreren Kantenpunkten aus dem Satz von Punkten, wobei die Kantenpunkte Punkte darstellen, die sich an der Peripherie des Satzes von Punkten befinden; Bestimmen mehrerer Linien, die durch die mehreren Kantenpunkte passen; und Identifizieren von Schnittpunkten, an denen sich die mehreren Linien schneiden, als die mehreren Eckpunkte.
  4. Computersystem nach einem der vorangegangenen Ansprüche, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die konvexen Ecken der Schicht aus den mehreren Eckpunkten zu identifizieren durch: Bestimmen einer Beziehung, die mindestens einen Abstand oder Abstände zwischen zwei oder mehr Eckpunkten aus den mehreren Eckpunkten angibt; Identifizieren einer Teilmenge der mehreren Eckpunkte als 3D-Ecken gemäß der Beziehung; und Identifizieren von 3D-Ecken, die konvex sind, als die konvexen Ecken, wobei die Beziehung ferner die entsprechenden Winkel angeben kann, die durch Paare von Vektoren gebildet werden, wobei sich jeder der Vektoren zwischen einem Paar von Eckpunkten der mehreren Eckpunkte erstreckt.
  5. Computersystem nach einem der vorangegangenen Ansprüche, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die konvexen Ecken der Schicht aus den mehreren Eckpunkten zu identifizieren durch: Identifizieren eines Satzes von 3D-Eckpunkten aus den mehreren Eckpunkten, Identifizieren eines Satzes von 3D-Ecken aus dem Satz von 3D-Eckpunkten und Identifizieren von mindestens einigen der konvexen Ecken aus dem Satz von 3D-Ecken, wobei der Satz von 3D-Eckpunkten Eckpunkte umfasst, die jeweils einen entsprechenden Abstand zu einem nächstgelegenen benachbarten Eckpunkt aufweisen, der gleich oder größer als eine definierte Schwellenwertlänge ist, und jeden Eckpunkt ausschließt, der einen entsprechenden Abstand zu einem nächstgelegenen benachbarten Eckpunkt aufweist, der kleiner als die definierte Schwellenwertlänge ist, und wobei der Satz von 3D-Ecken 3D-Eckpunkte aus dem Satz von 3D-Eckpunkten umfasst, die eine orthogonale Ecke der Objektstruktur darstellen.
  6. Computersystem nach Anspruch 5, wobei die Verarbeitungsschaltung ferner konfiguriert ist, den Satz von 3D-Ecken zu identifizieren, indem sie bestimmt, ob ein erster Eckpunkt der mehreren Eckpunkte in den Satz von 3D-Ecken aufgenommen werden soll, durch: Auswählen eines zweiten Eckpunkts aus den mehreren Eckpunkten, der ein nächstgelegener benachbarter Eckpunkt zu dem ersten Eckpunkt in einer ersten Richtung entlang der Kontur der Schicht ist; Definieren eines ersten Vektors, der von dem ersten Eckpunkt zu dem zweiten Eckpunkt verläuft; Auswählen eines dritten Eckpunkts aus den mehreren Eckpunkten, der ein nächstgelegener benachbarter Eckpunkt zu dem ersten Eckpunkt in einer zweiten Richtung entlang der Kontur der Schicht ist, wobei sich die zweite Richtung von der ersten Richtung unterscheidet; Definieren eines zweiten Vektors, der von dem ersten Eckpunkt zu dem dritten Eckpunkt verläuft; Bestimmen, ob der erste Eckpunkt ein erstes Längenkriterium erfüllt, indem eine erste Länge des ersten Vektors mit der definierten Schwellenwertlänge verglichen wird; Bestimmen, ob der erste Eckpunkt ein zweites Längenkriterium erfüllt, indem eine zweite Länge des zweiten Vektors mit der definierten Schwellenwertlänge verglichen wird; Bestimmen, ob der erste Eckpunkt ein Orthogonalitätskriterium erfüllt, indem bestimmt wird, ob der erste Vektor und der zweite Vektor im Wesentlichen orthogonal zueinander sind; und als Reaktion auf das Bestimmen, dass der erste Eckpunkt das erste Längenkriterium nicht erfüllt, dass der erste Eckpunkt das zweite Längenkriterium nicht erfüllt, oder dass der erste Eckpunkt das Orthogonalitätskriterium nicht erfüllt, Bestimmen, den ersten Eckpunkt aus dem Satz von 3D-Ecken auszuschließen, als Reaktion auf das Bestimmen, dass der erste Eckpunkt das erste Längenkriterium erfüllt, dass der erste Eckpunkt das zweite Längenkriterium erfüllt, und dass der erste Eckpunkt das Orthogonalitätskriterium erfüllt, Bestimmen, den ersten Eckpunkt in dem Satz von 3D-Ecken aufzunehmen.
  7. Computersystem nach Anspruch 6, wobei die Verarbeitungsschaltung ferner konfiguriert ist, als Reaktion auf eine Bestimmung, den ersten Eckpunkt als eine 3D-Ecke in den Satz von 3D-Ecken aufzunehmen, ferner zu Bestimmen, ob die 3D-Ecke eine konvexe Ecke ist, indem ein Kreuzprodukt des ersten Vektors und des zweiten Vektors bestimmt wird, um eine Konvexität der 3D-Ecke zu bestimmen.
  8. Computersystem nach Anspruch 7, wobei das Bestimmen des Kreuzprodukts das Bestimmen eines Kreuzproduktvektors umfasst, und wobei das Bestimmen, ob die 3D-Ecke eine konvexe Ecke ist, das Bestimmen umfasst, ob eine Richtung des Kreuzproduktvektors mit einer definierten Richtung übereinstimmt.
  9. Computersystem nach Anspruch 8, wobei die Verarbeitungsschaltung konfiguriert ist, für jeden Eckpunkt der mehreren Eckpunkte zu bestimmen, ob der Eckpunkt als entsprechende 3D-Ecke in den Satz von 3D-Ecken aufgenommen werden soll, und das Bestimmen in einer Reihenfolge auszuführen, die durch die mehreren Eckpunkte entlang der Kontur der Schicht im Uhrzeigersinn oder gegen den Uhrzeigersinn fortschreitet, und wobei die definierte Richtung, gegen welche die Richtung des Kreuzproduktvektors verglichen wird, davon abhängt, ob die Sequenz im Uhrzeigersinn durch die mehreren Eckpunkte fortschreitet oder ob die Sequenz im Gegenuhrzeigersinn durch die mehreren Eckpunkte fortschreitet.
  10. Computersystem nach Anspruch 6, wobei die Verarbeitungsschaltung konfiguriert ist, als Reaktion auf eine Bestimmung, dass der erste Eckpunkt das Orthogonalitätskriterium nicht erfüllt, basierend auf dem ersten Eckpunkt eine vereinigte Ecke zu bestimmen, wobei die vereinigte Ecke eine orthogonale Ecke einer Form ist, die auf der Objektstruktur basiert und bestimmt wird durch: Auswählen eines vierten Eckpunkts, der ein dem ersten Eckpunkt in der zweiten Richtung entlang der Kontur der Schicht zweitnächstgelegener benachbarter Eckpunkt ist; Definieren eines dritten Vektors zwischen dem vierten und dem dritten Eckpunkt; Bestimmen einer ersten Linie, die sich entlang des ersten Vektors erstreckt, und einer zweiten Linie, die sich entlang des dritten Vektors erstreckt; Identifizieren eines Schnittpunkts zwischen der ersten Linie und der dritten Linie; Bestimmen, ob der Schnittpunkt das Orthogonalitätskriterium erfüllt, indem bestimmt wird, ob die erste Linie und die dritte Linie im Wesentlichen orthogonal zueinander sind; und Identifizieren des Schnittpunkts als die vereinigte Ecke als Reaktion auf das Bestimmen, dass der Schnittpunkt das Orthogonalitätskriterium erfüllt, wobei die Verarbeitungsschaltung vorzugsweise konfiguriert sein kann zum: Bestimmen, ob die vereinigte Ecke konvex ist, indem bestimmt wird, ob sich die vereinigte Ecke außerhalb der Kontur der Schicht befindet, und Identifizieren der vereinigten Ecke als eine der konvexen Ecken, wenn bestimmt wird, dass die vereinigte Ecke konvex ist.
  11. Computersystem nach Anspruch 6, wobei die Verarbeitungsschaltung ferner konfiguriert ist, den ersten Eckpunkt, den zweiten Eckpunkt und den dritten Eckpunkt auf eine gemeinsame Ebene zu projizieren, bevor der erste Vektor und der zweite Vektor definiert werden und bevor bestimmt wird, ob der erste Eckpunkt das erste Längenkriterium, das zweite Längenkriterium und das Orthogonalitätskriterium erfüllt.
  12. Computersystem nach einem der vorangegangenen Ansprüche, wobei die Verarbeitungsschaltung ferner konfiguriert ist, die Objekterkennung durch Erzeugen einer Detektionshypothese gemäß den konvexen Ecken auszuführen; und/oder wobei die Verarbeitungsschaltung konfiguriert ist, die Objekterkennung auszuführen, indem sie basierend auf den konvexen Ecken bestimmt, wie die Daten der Raumstruktur, welche die Objektstruktur beschreiben, auf Merkmale in einer Vorlage, die ebenfalls die Objektstruktur beschreibt, abzubilden sind; und/oder wobei die Verarbeitungsschaltung ferner konfiguriert ist, die Objekterkennung durch Modifizieren einer Detektionshypothese gemäß den konvexen Ecken auszuführen.
  13. Nicht flüchtiges computerlesbares Medium mit darauf gespeicherten Befehlen, die bei Ausführung durch eine Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen zum: Zugreifen auf Raumstrukturdaten, welche eine Objektstruktur beschreiben, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren, aus den Raumstrukturdaten, eines Teils der Raumstrukturdaten, die für eine Schicht der mehreren Schichten repräsentativ sind; Identifizieren, aus dem Teil der Raumstrukturdaten, mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben; Identifizieren konvexer Ecken der Schicht basierend auf den mehreren Eckpunkten; und Ausführen von Objekterkennung gemäß den konvexen Ecken.
  14. Nicht flüchtiges computerlesbares Medium nach Anspruch 13, wobei die Befehle bei Ausführung durch die Verarbeitungsschaltung die Verarbeitungsschaltung veranlassen, die konvexen Ecken der Schicht aus den mehreren Eckpunkten zu identifizieren durch: Bestimmen einer Beziehung, die mindestens einen Abstand oder Abstände zwischen zwei oder mehr Eckpunkten aus den mehreren Eckpunkten angibt; Identifizieren einer Teilmenge der mehreren Eckpunkte als 3D-Ecken gemäß der Beziehung; und Identifizieren von 3D-Ecken, die konvex sind, als die konvexen Ecken.
  15. Verfahren, das durch ein Computersystem ausgeführt wird, wobei das Verfahren umfasst: Zugreifen auf Raumstrukturdaten, welche eine Objektstruktur beschreiben, wobei die Raumstrukturdaten Tiefeninformationen aufweisen, die mehrere Schichten für die Objektstruktur angeben; Extrahieren, aus den Raumstrukturdaten, eines Teils der Raumstrukturdaten, die für eine Schicht der mehreren Schichten repräsentativ sind; Identifizieren, von dem Teil der Raumstrukturdaten, mehrerer Eckpunkte, die eine Kontur der Schicht beschreiben; und Identifizieren konvexer Ecken der Schicht basierend auf den mehreren Eckpunkten; und Ausführen von Objekterkennung gemäß den konvexen Ecken.
DE102020120526.0A 2019-09-23 2020-08-04 Verfahren und computersystem zur objektidentifizierung Pending DE102020120526A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/578,900 US10614340B1 (en) 2019-09-23 2019-09-23 Method and computing system for object identification
US16/578,900 2019-09-23

Publications (1)

Publication Number Publication Date
DE102020120526A1 true DE102020120526A1 (de) 2021-03-25

Family

ID=70056655

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020120526.0A Pending DE102020120526A1 (de) 2019-09-23 2020-08-04 Verfahren und computersystem zur objektidentifizierung

Country Status (4)

Country Link
US (3) US10614340B1 (de)
JP (3) JP6692107B1 (de)
CN (1) CN112541097A (de)
DE (1) DE102020120526A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2514397B (en) * 2013-05-23 2017-10-11 Linear Algebra Tech Ltd Corner detection
DE112019000125B4 (de) 2018-10-30 2021-07-01 Mujin, Inc. Systeme, vorrichtungen und verfahren zur automatisierten verpackungsregistrierung
US10369701B1 (en) 2018-10-30 2019-08-06 Mujin, Inc. Automated package registration systems, devices, and methods
US10614340B1 (en) * 2019-09-23 2020-04-07 Mujin, Inc. Method and computing system for object identification
KR20220149511A (ko) 2020-01-29 2022-11-08 유아이아머닷컴 엘엘씨 이미지 처리를 위한 시스템, 방법 및 디바이스
US11403764B2 (en) * 2020-02-14 2022-08-02 Mujin, Inc. Method and computing system for processing candidate edges
CN111462147B (zh) * 2020-04-30 2022-07-05 柳州智视科技有限公司 一种基于图像块外轮廓及其角点对图像块进行切割和填补的方法
CN114096331A (zh) * 2020-06-04 2022-02-25 牧今科技 用于执行或促进物理边缘检测的方法和计算系统
CN112907668B (zh) * 2021-02-26 2024-01-30 梅卡曼德(北京)机器人科技有限公司 垛型中组垛箱体的识别方法、装置及机器人
US11158031B1 (en) * 2021-05-24 2021-10-26 ReportsNow, Inc. Systems, methods, and devices for image processing
WO2023021619A1 (ja) * 2021-08-18 2023-02-23 ニューブレクス株式会社 統合化iga-dfosシステム
CN116975581B (zh) * 2023-07-20 2024-04-26 快速直接(深圳)精密制造有限公司 一种基于step格式的钣金件快速识别方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07122908B2 (ja) * 1991-03-12 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 3次元のソリッド物体を表す表示可能情報を生成する装置と方法
JP3426002B2 (ja) 1993-09-20 2003-07-14 三菱電機株式会社 物体認識装置
US6057847A (en) * 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
JPH11333770A (ja) 1998-03-20 1999-12-07 Kobe Steel Ltd 積荷位置姿勢認識装置
US7023435B1 (en) * 2000-04-12 2006-04-04 California Institute Of Technology Object surface representation and related methods and systems
US6920415B1 (en) * 2000-04-12 2005-07-19 California Institute Of Technology Method of trimming a representation of an object surface comprising a mesh of tessellated polygons and related system
US7536052B2 (en) * 2003-12-15 2009-05-19 Xerox Corporation Corner sharpening of text and line art in a super resolution anti-aliasing image path
US7529421B2 (en) 2004-07-01 2009-05-05 Applied Materials, Inc. Optical proximity correction in raster scan printing based on corner matching templates
US7407252B2 (en) * 2004-07-01 2008-08-05 Applied Materials, Inc. Area based optical proximity correction in raster scan printing
US8275193B2 (en) * 2004-08-04 2012-09-25 America Gnc Corporation Miniaturized GPS/MEMS IMU integrated board
KR100657915B1 (ko) * 2004-11-26 2006-12-14 삼성전자주식회사 코너 검출 방법 및 코너 검출 장치
US8004517B1 (en) * 2005-06-24 2011-08-23 Geomagic, Inc. Methods, apparatus and computer program products that model three-dimensional surface structures
JP5373272B2 (ja) * 2007-06-18 2013-12-18 ニチハ株式会社 外壁板及びその塗装方法
JP5429614B2 (ja) 2009-04-16 2014-02-26 株式会社Ihi 箱状ワーク認識装置および方法
JP5480914B2 (ja) 2009-12-11 2014-04-23 株式会社トプコン 点群データ処理装置、点群データ処理方法、および点群データ処理プログラム
US8983643B2 (en) * 2010-01-15 2015-03-17 Stratasys, Inc. Method for generating and building support structures with deposition-based digital manufacturing systems
US8610963B2 (en) * 2010-03-09 2013-12-17 Xerox Corporation Image corner sharpening method and system
US8781152B2 (en) * 2010-08-05 2014-07-15 Brian Momeyer Identifying visual media content captured by camera-enabled mobile device
US8453103B2 (en) * 2010-12-03 2013-05-28 Synopsys, Inc. Real time DRC assistance for manual layout editing
US9582707B2 (en) * 2011-05-17 2017-02-28 Qualcomm Incorporated Head pose estimation using RGBD camera
US9117274B2 (en) * 2011-08-01 2015-08-25 Fuji Xerox Co., Ltd. System and method for interactive markerless paper documents in 3D space with mobile cameras and projectors
CN103135745B (zh) 2011-11-25 2018-01-02 夏普株式会社 基于深度图像的非接触控制方法、信息设备和系统
JP2013145525A (ja) 2012-01-16 2013-07-25 Fuji Electric Co Ltd 物品取り出し判定装置、物品取り出し判定システム、物品取り出しシステム、物品取り出し判定プログラムおよび物品取り出し判定方法
JP5719328B2 (ja) 2012-06-22 2015-05-13 任天堂株式会社 画像処理プログラム、画像処理装置、画像処理システム、および画像処理方法
JP6236759B2 (ja) * 2012-10-10 2017-11-29 セイコーエプソン株式会社 画像表示装置および画像表示装置の画像調整方法
KR102001636B1 (ko) 2013-05-13 2019-10-01 삼성전자주식회사 이미지 센서와 대상 객체 사이의 상대적인 각도를 이용하는 깊이 영상 처리 장치 및 방법
US10154271B2 (en) * 2013-07-12 2018-12-11 Samsung Electronics Co., Ltd. Method and apparatus for inter-layer decoding video using depth-based disparity vector, and method and apparatus for inter-layer encoding video using depth-based disparity vector
WO2015033253A2 (en) * 2013-09-03 2015-03-12 3Ditize Sl Generating a 3d interactive immersive experience from a 2d static image
JP6311404B2 (ja) * 2014-03-31 2018-04-18 富士通株式会社 管理プログラム、管理装置および管理方法
JP6463118B2 (ja) * 2014-12-19 2019-01-30 キヤノン株式会社 映像信号生成装置、液晶表示装置、映像信号生成方法および映像信号生成プログラム
JP6635690B2 (ja) * 2015-06-23 2020-01-29 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
WO2017139330A1 (en) 2016-02-08 2017-08-17 Berkshire Grey Inc. Systems and methods for providing processing of a variety of objects employing motion planning
CN105681627B (zh) 2016-03-03 2019-12-24 联想(北京)有限公司 拍摄图像方法及电子设备
CN107479331B (zh) * 2017-07-31 2020-05-15 上海华力微电子有限公司 一种图形转角的opc修正方法
WO2019032736A1 (en) * 2017-08-08 2019-02-14 Smart Picture Technologies, Inc. METHOD OF MEASURING AND MODELING SPACES USING AUGMENTED REALITY WITHOUT MARKER
US10339669B2 (en) * 2017-08-22 2019-07-02 Here Global B.V. Method, apparatus, and system for a vertex-based evaluation of polygon similarity
US10438371B2 (en) * 2017-09-22 2019-10-08 Zoox, Inc. Three-dimensional bounding box from two-dimensional image and point cloud data
US20210325848A1 (en) * 2018-08-09 2021-10-21 The Research Foundation For The State University Of New York Method for automated 3d print quality assessment and redesign
US10369701B1 (en) * 2018-10-30 2019-08-06 Mujin, Inc. Automated package registration systems, devices, and methods
US10369698B1 (en) * 2019-03-07 2019-08-06 Mujin, Inc. Method and system for performing automatic camera calibration for robot control
US10399227B1 (en) * 2019-03-29 2019-09-03 Mujin, Inc. Method and control system for verifying and updating camera calibration for robot control
US10614340B1 (en) * 2019-09-23 2020-04-07 Mujin, Inc. Method and computing system for object identification
US11103998B2 (en) * 2019-12-12 2021-08-31 Mujin, Inc. Method and computing system for performing motion planning based on image information generated by a camera
US11006039B1 (en) * 2020-02-13 2021-05-11 Mujin, Inc. Method and system for determining occlusion within a camera field of view
US11403764B2 (en) * 2020-02-14 2022-08-02 Mujin, Inc. Method and computing system for processing candidate edges
US20210383550A1 (en) * 2020-06-04 2021-12-09 Mujin, Inc. Method and computing system for performing or facilitating physical edge detection
US11900652B2 (en) * 2021-03-05 2024-02-13 Mujin, Inc. Method and computing system for generating a safety volume list for object detection

Also Published As

Publication number Publication date
JP2021051712A (ja) 2021-04-01
JP7433609B2 (ja) 2024-02-20
JP2024050711A (ja) 2024-04-10
US10614340B1 (en) 2020-04-07
US20210089808A1 (en) 2021-03-25
US20230410319A1 (en) 2023-12-21
CN112541097A (zh) 2021-03-23
JP6692107B1 (ja) 2020-05-13
US11763459B2 (en) 2023-09-19
JP2021051721A (ja) 2021-04-01

Similar Documents

Publication Publication Date Title
DE102020120526A1 (de) Verfahren und computersystem zur objektidentifizierung
DE112019000217B4 (de) Ein Robotersystem mit automatisiertem Paketregistrierungsmechanismus und Leitung zur automatischen Erkennung
DE112011103794B4 (de) Aufnehmervorrichtung für Werkstücke
DE102013012224B4 (de) Vorrichtung zum Entnehmen von lose gespeicherten Gegenständen durch einen Roboter
DE102020206387B4 (de) Verfahren und computersystem zur verarbeitung von kandidatenkanten
EP1987371B1 (de) Verfahren zur detektion von objekten mit einer schwenkbaren sensoreinrichtung
DE102016100101A1 (de) System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen
EP3320483B1 (de) Verfahren zum steuern eines roboters und/oder eines autonomen fahrerlosen transportsystems
DE112016006262B4 (de) Dreidimensionaler Scanner und Verarbeitungsverfahren zur Messunterstützung für diesen
DE102013001603B4 (de) Bildverarbeitungsvorrichtung mit einer Funktion zum automatischen Einstellen des Suchfensters
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
EP1173749A2 (de) Bildbearbeitung zur vorbereitung einer texturnalyse
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE112020006045T5 (de) Formal sicheres symbolisches bestärkendes lernen anhand von visuellen eingaben
EP2819109B1 (de) Optoelektronischen 3D-Sensor und Verfahren zum Erkennen von Objekten
DE102022129008A1 (de) Verfahren zur behandlung von kollisionen bei der griffgenerierung
DE102021105152A1 (de) Verfahren und Computersystem zum Ausführen von Behälterdetektion und Objektdetektion
WO2008014961A2 (de) Verfahren zur lagebestimmung von objekten im dreidimensionalen raum
DE102008008499A1 (de) Verfahren zur rechnergestützten Berechnung der Bewegung eines Objekts aus Sensordaten
EP3663800B1 (de) Verfahren zur objekterfassung mit einer 3d-kamera
EP2818824B1 (de) Vorrichtung umfassend einen optoelektronischen 3D-Sensor und Verfahren zum Erkennen von Objekten
DE102018130745A1 (de) Verfahren zur Steuerung eines autonomen Fahrzeugs
DE10139846C1 (de) Geometrisches Matching zur Lösung von Lokalisationsproblemen
DE102018102691A1 (de) Parallaxenberechnungsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009460000

Ipc: G06V0030180000