DE112021002702T5 - Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern - Google Patents

Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern Download PDF

Info

Publication number
DE112021002702T5
DE112021002702T5 DE112021002702.6T DE112021002702T DE112021002702T5 DE 112021002702 T5 DE112021002702 T5 DE 112021002702T5 DE 112021002702 T DE112021002702 T DE 112021002702T DE 112021002702 T5 DE112021002702 T5 DE 112021002702T5
Authority
DE
Germany
Prior art keywords
point cloud
data points
straight line
path
identified
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
DE112021002702.6T
Other languages
English (en)
Inventor
Nathaniel Bogan
Andrew Hoelscher
David J. Michael
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.)
Cognex Corp Natick Us
Original Assignee
Cognex Corp
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 Cognex Corp filed Critical Cognex Corp
Publication of DE112021002702T5 publication Critical patent/DE112021002702T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Die hierin beschriebenen Techniken Betreffen Verfahren, Apparate und computerlesbare Medien, due konfiguriert sind, ein Oberflächenmerkmal einer dreidimensionalen (3D) Punktwolke zu identifizieren. Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, werden empfangen, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst. Eine Vielzahl von Listen von 3D-Datenpunkten wir erzeugt, wobei: jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet. Ein Charakteristikum, das mit dem Oberflächenmerkmal assoziiert ist, wird zumindest in manchen der Vielzahl von Listen von 3D-Datenpunkten identifiziert. Die identifizierten Charakteristika werden gruppiert basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika. Das Oberflächenmerkmal wird basierend auf den gruppierten Charakteristika identifiziert.

Description

  • VERWANDTE ANMELDUNGEN
  • Diese Anmeldung beansprucht unter 35 U.S.C. 9 119(e) die Priorität der vorläufigen U.S.-Anmeldung Nr. 63/023,186, mit dem Titel „METHODS AND APPARATUS FOR IDENTIFYING SURFACE FEATURES IN THREE-DIMENSIONAL IMAGES,“ eingereicht am 11. Mai 2020, die hierin durch Verweis vollständig eingegliedert ist.
  • TECHNICHES GEBIET
  • Die hierin beschriebenen Techniken betreffen allgemein Verfahren und Apparate für maschinelles Sehen, einschließlich Techniken zum Identifizieren von Oberflächenmerkmalen eines in dreidimensionalen Bildern eingefangenen Objekts.
  • HINTERGRUND DER ERFINDUNG
  • Systeme für maschinelles Sehen könne robuste Bildgebungsfähigkeiten umfassen, einschließlich dreidimensionaler (3D) Bildgebungsvorrichtungen. Zum Beispiel können 3D-Sensoren eine Szene abbilden, um einen Satz von 3D-Punkten zu erzeugen, die jeweils eine (x,y,z)-Position innerhalb eines 3D-Koordinatensystems umfassen (z.B. wobei die z-Achse des Koordinatensystems den Abstand von der 3D-Bildgebungsvorrichtung darstellt). Solche 3D-Bildgebungsvorrichtungen können eine 3D-Punktewolke erzeugen, die einen Satz von während eines Bildgebungsprozesses aufgenommenen 3D-Punkten umfasst. Jedoch kann die schiere Anzahl von 3D-Punkten in 3D-Punktwolken massiv sein (z.B. verglichen mit 2D-Daten der Szene). Zusätzlich können 3D-Punktwolken nur reine 3D-Datenpunkte umfassen, und können daher keine Daten umfassen, die für Beziehungen zwischen/unter den 3D-Punkten bezeichnend sind, oder andere Informationen wie etwa Oberflächennormaleninformation, es kann kompliziert sein, 3D-Punkte ohne Daten, die für Beziehungen unter anderen Punkten bezeichnend sind, zu verarbeiten. Während daher 3D-Punktwolken große Mengen an 3D-Daten liefern können, kann das Durchführen von Aufgaben maschinellen Sehens auf 3D-Punktwolkendaten kompliziert sein, zeitaufwändig sein, bedeutende Verarbeitungsressourcen erfordern, und/oder dergleichen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In Übereinstimmung mit dem offenbarten Gegenstand werden Apparate, Systeme und Verfahren für verbesserte Techniken maschinellen Sehens bereitgestellt, und insbesondere für verbesserte Techniken maschinellen Sehens, die Oberflächenmerkmale von in 3D-Bildern aufgenommenen Objekten orten können. Zum Beispiel können die Techniken Falten, Grate und/oder andere Faltkanten in Oberflächen der 3D-Bilder orten.
  • Manche Aspekte betreffen ein computergestütztes Verfahren zum Identifizieren eines Oberflächenmerkmals eines Teiles einer dreidimensionalen (3D) Punktwolke. Das Verfahren umfasst Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst. Das Verfahren umfasst Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet, und jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet. Das Verfahren umfasst Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist. Das Verfahren umfasst Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika. Das Verfahren umfasst Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
  • Gemäß manchen Beispielen umfasst das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen. Die Ebene kann senkrecht zum empfangenen Pfad sein, so dass die für die Erzeugung jeder der Listen von 3D-Datenpunkten verwendeten Ebenen parallel sind.
  • Gemäß manchen Beispielen ist das identifizierte Oberflächenmerkmal des Teils der 3D-Punktwolke eine Faltkante, und die mit der Faltkante assoziierte Charakteristik ist eine Ecke.
  • Gemäß manchen Beispielen umfasst das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika. Das Anpassen einer Geraden an die identifizierten Merkmale kann Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale, Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist, und Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
  • Gemäß manchen Beispielen umfasst das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse bezeichnend sind. Die spezifizierte Region von Interesse kann eine Breite, eine Länge und eine Höhe umfassen, und der Pfad wird basierend auf der Breite, Länge und Höhe spezifiziert.
  • Gemäß manchen Beispielen umfasst das Verfahren Bestimmen einer Anzahl der identifizierten Merkmale, und Bestimmen, basierend auf der Anzahl, einer Abdeckung des Oberflächenmerkmals entlang des Teils der 3D-Punktwolke. Das Verfahren kann das Bestimmen einer Punktzahl für jedes der identifizierten Merkmale und das Bestimmen, basierend auf der Anzahl der identifizierten Merkmale und der Punktzahl jedes der identifizierten Merkmale, einer Gesamtpunkzahl des Merkmals umfassen.
  • Gemäß manchen Beispielen ist der Pfad ein durch eine Richtung spezifizierter linearer Pfad, ein gekrümmter Pfad, ein kreisförmiger Pfad, ein Spiralpfad, oder irgendeine Kombination davon.
  • Manche Ausführungsformen betreffen ein nichtflüchtiges computerlesbares Medium umfassend Anweisungen, die, wenn durch einen oder mehr Prozessoren auf einer Rechenvorrichtung ausgeführt, fähig sind, den einen oder mehr Prozessoren das Verfahren irgendeines der Ausführungsformen hierin ausführen zu lassen.
  • Manche Ausführungsformen betreffen ein System umfassend einen Speicher, der Anweisungen speichert, und einen Prozessor, der konfiguriert ist, die Anweisungen auszuführen, um das Verfahren irgendeines der Ausführungsformen hierin durchzuführen.
  • Demnach wurden die Merkmale des offenbarten Gegenstands eher breit umrissen, damit seine ausführliche Beschreibung, die folgt, besser verstanden werden kann, und damit der vorliegende Beitrag zur Technik besser eingeschätzt werden kann. Es gibt natürlich zusätzliche Merkmale des offenbarten Gegenstands, die nachfolgend beschrieben werden und die den Gegenstand der hier beigefügten Ansprüche bilden werden. Es versteht sich, dass die hierin verwendete Phraseologie und Terminologie dem Zwecke der Beschreibung dienen und nicht als einschränkend angesehen werden sollten.
  • Figurenliste
  • In den Zeichnungen ist jede identische oder beinahe identische Komponente, die in verschiedenen Figuren abgebildet ist, durch eine gleiche Referenznummer dargestellt. Zum Zwecke der Klarheit muss nicht jede Komponente in jeder Zeichnung gekennzeichnet sein. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu gezeichnet, stattdessen liegt der Nachdruck auf der Veranschaulichung verschiedener Aspekte der hierin beschriebenen Techniken und Vorrichtungen.
    • 1 ist ein Diagramm, das ein beispielhaftes System für maschinelles Sehen zeigt, gemäß einigen Ausführungsformen.
    • 2 ist ein Flussdiagramm, das ein beispielhaftes computergestütztes Verfahren zum Identifizieren eines Oberflächenmerkmals eines Teils einer 3D-Punktwolke zeigt, gemäß einigen Ausführungsformen.
    • 3 ist ein Diagramm, das ein Beispiel einer 3D-Punktwolke zeigt, gemäß einigen Ausführungsformen
    • 4 ist ein Diagramm, das ein Beispiel eines Pfades durch die Punktwolke von 3 zeigt, gemäß einigen Ausführungsformen.
    • 5A ist ein Diagramm, das ein Beispiel einer Ebene zeigt, die zur Bestimmung einer Liste von 3D-Datenpunkten verwendet wird, gemäß einigen Ausführungsformen.
    • 5B ist ein Diagramm, das eine Liste von 3D-Datenpunkten zeigt, die entlang der Ebene aus 5A sind, gemäß einigen Ausführungsformen.
    • 5C ist ein Diagramm, das zwei weitere Ebenen und assoziierte 3D-Datenpunkte zeigt, gemäß einigen Ausführungsformen.
    • 6A-6C ist ein Diagramm, das Beispiele von Ecken zeigt, die basierend auf den Listen von 3D-Datenpunkten aus 5B-5C identifiziert wurden, gemäß einigen Ausführungsformen.
    • 7 ist ein Diagramm, das eine beispielhafte Gruppierung von identifizierten Ecken aus 6A-6C zeigt, gemäß einigen Ausführungsformen.
    • 8 ist ein Diagramm, das ein Beispiel einer identifizierten Faltkante zeigt, gemäß einigen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Die hierin beschriebenen Techniken stellen Datenreduktionstechniken bereit, die verwendet werden können, um 3D-Punktwolkenbilder zu analysieren. Die Erfinder haben erkannt, dass konventionelle Techniken maschinellen Sehens an bedeutenden Effizienzmängeln leiden können, wenn 3D-Bilder wie etwa 3D-Punktwolkendaten, Voxelgitter und/oder 3D-Volumendarstellungen verwendet werden. Zum Beispiel umfassen 3D-Punktwolken oft Hunderttausende oder Millionen Punkte. Direktes Interpretieren einer solch massiven Anzahl von 3D-Punkten im Raum kann ziemlich herausfordernd sein. Des Weiteren enthalten 3D-Punktwolken typischerweise keine Informationen über die räumlichen Beziehungen zwischen den 3D-Punkten. Daher kann es zeitaufwändig sein und bedeutende Verarbeitungsressourcen erfordern, Objektmerkmale in 3D-Bildern zu identifizieren. Manche Techniken versuchen, lokale Regionen in einer Punktwolke durch Suche nach Eigenschaften eines Merkmals (z.B. einer Faltkante) direkt zu identifizieren, und verketten dann die identifizierten Regionen, um ein generelles Oberflächenmerkmal zu identifizieren. Jedoch können solche Techniken langsam und rudimentär sein, weil es herausfordernd sein kann, lokal objektartige Charakteristika in einer willkürlichen Orientierung zu identifizieren.
  • Die Erfinder haben technologische Verbesserungen für Techniken maschinellen Sehens entwickelt, um diese und andere Effizienzmängel zu adressieren. Gemäß manchen Ausführungsformen können die Techniken Zugreifen auf und/oder Empfangen eines Suchvolumens und Suchpfads, und Suchen entlang des Pfads, um Merkmale von Objektoberflächen in 3D-Bilddaten zu orten (z.B. identifizieren und/oder lokalisieren), umfassen. Als ein veranschaulichendes Beispiel können die Techniken verwendet werden, um eine Faltkante (z.B. eine Falte in einem gefalteten Stück Papier, eine Ecke einer Schachtel, und/oder dergleichen) in verschiedenen Orientierungen (z.B. in konkaven oder konvexen Ansichten) zu orten. Faltkanten und/oder andere Objektmerkmale (z.B. Bögen, Kreise, usw.) können für verschiedene Aufgaben maschinellen Sehens nützlich sein, wie etwa um hergestellte Teile zu messen und/oder zu inspizieren.
  • In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten betreffend das System und Verfahren des offenbarten Gegenstands und der Umgebung, in der solche Systeme und Verfahren operieren können, usw., dargelegt, um ein gründliches Verständnis des offenbarten Gegenstands zu vermitteln. Zusätzlich versteht es sich, dass die nachfolgend bereitgestellten Beispiele beispielhaft sind, und dass erwogen wird, dass es andere Systeme und Verfahren gibt, die innerhalb des Umfangs des offenbarten Gegenstands sind.
  • 1 zeigt ein beispielhaftes System für maschinelles Sehen 100, gemäß einigen Ausführungsformen. Das beispielhafte System für maschinelles Sehen 100 umfasst eine Kamera 102 (oder andere Bildaufnahmevorrichtung) und einen Computer 104. Während in 1 nur eine Kamera 102 gezeigt ist, versteht es sich, dass eine Vielzahl von Kameras in dem System für maschinelles Sehen verwendet werden kann (z.B. wo eine Punktwolke aus denen mehrerer Kameras verschmolzen wird). Der Computer 104 umfasst einen oder mehr Prozessoren und eine Mensch-Maschinen-Schnittstelle in der Form eines Computerdisplays und optional eine oder mehr Eingabevorrichtungen (z.B. eine Tastatur, eine Maus, einen Trackball, usw.). Kamera 102 umfasst, unter anderen Komponenten, eine Linse 106 und ein Kamerasensorelement (nicht dargestellt). Die Linse 106 umfasst ein Sichtfeld 108, und die Linse 106 fokussiert Licht aus dem Sichtfeld 108 auf das Sensorelement. Das Sensorelement erzeugt ein digitales Bild des Kamerasichtfeldes 108 und stellt jenes Bild einem Prozessor zur Verfügung, der Teil des Computers 104 ist. Wie im Beispiel von 1 gezeigt, bewegt sich Objekt 112 entlang eines Fließbandes 110 ins Sichtfeld 108 der Kamera 102. Die Kamera 102 kann zur Verarbeitung, wie hierin weiter beschrieben, ein oder mehr digitale Bilder des Objekts 112 erzeugen, während es im Sichtfeld 108 ist. Im Betrieb kann das Fließband eine Vielzahl von Objekten beinhalten. Diese Objekte können nacheinander das Sichtfeld 108 der Kamera 102 passieren, wie etwa während eines Inspektionsprozesses. Mithin kann die Kamera 102 mindestens ein Bild jedes beobachteten Objekts 112 aufnehmen.
  • In einigen Ausführungsformen ist die Kamera 102 ein dreidimensionales (3D) Bildgebungsgerät. Zum Beispiel kann die Kamera 102 ein 3D-Sensor sein, der eine Szene zeilenweise abtastet, wie z. B. die DS-Reihe der Laser-Profiler-3D-Verschiebungssensoren, die von der Cognex Corp. erhältlich sind, dem Rechtsnachfolger der vorliegenden Anmeldung. In einigen Ausführungsformen kann die 3D-Bildgebungsvorrichtung einen Satz von (x, y, z)-Punkten erzeugen (z. B. wobei die z-Achse eine dritte Dimension hinzufügt, wie etwa einen Abstand von der 3D-Bildgebungsvorrichtung). Die 3D-Bildgebungsvorrichtung kann verschiedene 3D-Bilderzeugungstechniken verwenden, wie z. B. Form-aus-Schatten, Stereo-Bildgebung, Flugzeittechniken, projektorbasierte Techniken und/oder andere 3D-Erzeugungstechnologien. In einigen Ausführungsformen umfasst das System für maschinelles Sehen 100 eine zweidimensionale Bildgebungsvorrichtung, wie etwa ein zweidimensionales (2D) CCD- oder CMOS-Bildgebungsarray. In einigen Ausführungsformen erzeugen zweidimensionale Bildgebungsgeräte ein 2D-Array von Helligkeitswerten.
  • In einigen Ausführungsformen verarbeitet das System für maschinelles Sehen die 3D-Daten von der Kamera 102. Die von der Kamera 102 empfangenen 3D-Daten können zum Beispiel eine Punktwolke und/oder ein Entfernungsbild umfassen. Eine Punktwolke kann eine Gruppe von 3D-Punkten enthalten, die sich auf oder in der Nähe der Oberfläche eines festen Objekts befinden. Die Punkte können beispielsweise in Form ihrer Koordinaten in einem geradlinigen oder anderen Koordinatensystem dargestellt werden. In einigen Ausführungsformen können optional auch andere Informationen, wie z. B. eine Maschen- oder Gitterstruktur, die anzeigt, welche Punkte auf der Oberfläche des Objekts benachbart sind, vorhanden sein. In einigen Ausführungsformen können Informationen über Oberflächenmerkmale, einschließlich Krümmungen, Oberflächennormalen, Kanten und/oder Farb- und Albedoinformationen, entweder aus Sensormessungen abgeleitet oder zuvor berechnet, in den Eingabepunktwolken enthalten sein. In einigen Ausführungsformen können die 2D- und/oder 3D-Daten von einem 2D- und/oder 3D-Sensor, von einem CAD oder anderen Festkörpermodell und/oder durch Vorverarbeitung von Entfernungsbildern, 2D-Bildern und/oder anderen Bildern gewonnen werden.
  • Gemäß einigen Ausführungsformen kann die Gruppe von 3D-Punkten ein Teil einer 3D-Punktwolke innerhalb benutzerspezifizierter Regionen von Interesse sein und/oder Daten enthalten, die die Region von Interesse in der 3D-Punktwolke spezifizieren. Da zum Beispiel eine 3D-Punktwolke so viele Punkte enthalten kann, kann es wünschenswert sein, eine oder mehr Regionen von Interesse zu spezifizieren und/oder zu definieren (z. B. um den Raum zu begrenzen, auf den die hierin beschriebenen Techniken angewendet werden).
  • Beispiele für Computer 104 können umfassen, sind aber nicht beschränkt auf, einen einzelnen Servercomputer, eine Reihe von Servercomputern, einen einzelnen PersonalComputer, eine Reihe von Personal-Computern, einen Mini-Computer, einen Großrechner und/oder eine Computerwolke. Die verschiedenen Komponenten des Computers 104 können ein oder mehr Betriebssysteme ausführen. Beispiele davon können umfassen, sind aber nicht beschränkt auf: Microsoft Windows Server™; Novell Netware™; Redhat Linux™, Unix und/oder ein benutzerdefiniertes Betriebssystem, zum Beispiel. Die ein oder mehr Prozessoren des Computers 104 können konfiguriert sein, Operationen zu verarbeiten, die in einem mit den ein oder mehr Prozessoren verbundenen Speicher gespeichert sind. Der Speicher kann umfassen, ist aber nicht beschränkt auf, ein Festplattenlaufwerk, ein Flash-Laufwerk, ein Bandlaufwerk, ein optisches Laufwerk, ein RAID-Array, einen Direktzugriffsspeicher (RAM) und einen Festwertspeicher (ROM).
  • Wie hierin beschrieben werden Techniken zur Identifizierung und Lokalisierung von Objektmerkmalen, wie etwa Faltkanten, in Oberflächen in 3D-Bildern bereitgestellt. Gemäß einigen Ausführungsformen können die Techniken das Auswählen eines Satzes von Ebenen basierend auf einem spezifizierten Pfad und das Bestimmen entsprechender Listen von Punkten aus dem 3D-Bild basierend auf dem Schnittpunkt der Oberfläche der Ebene und der Punkte im 3D-Bild umfassen. Wie hierin beschrieben können die Listen von Punkten eine lineare Anordnung von Punkten sein. Es versteht sich, dass die Punkte eine ID-Mannigfaltigkeit (z. B. einen ID-Pfad entlang der Oberfläche eines Objekts) in 3D darstellen können. Die Region, die eine Liste von Punkten enthält, kann eine 2D-Ebene sein. Daher kann die Liste von Punkten einen 2D-Pfad entlang der 2D-Ebene darstellen. Die Techniken können jede Liste von Punkten analysieren, um Objektcharakteristika zu extrahieren, wie z. B. Ecken und/oder andere Punkte mit starker Krümmung (z. B. in einem bestimmten Maßstab entlang des Konturverlaufs). Die extrahierten Merkmale können basierend auf ihrer 3D-Nähe und/oder anderen Eigenschaften gruppiert werden. Gemäß einigen Beispielen können die Techniken eine Gerade an die extrahierten Merkmale anpassen, um allgemeine Oberflächenmerkmale von Objekten in dem 3D-Bild zu identifizieren.
  • 2 ist ein Flussdiagramm, das ein beispielhaftes computergestütztes Verfahren 200 zur Identifizierung eines Oberflächenmerkmals (z. B. einer Faltkante) eines Teils einer 3D-Punktwolke zeigt, gemäß einigen Ausführungsformen. Die 3D-Punktwolke enthält eine große Anzahl von 3D-Datenpunkten und kann, wie hierin beschrieben, Hunderttausende oder Millionen von 3D-Datenpunkten enthalten. 3 ist ein Diagramm, das ein Beispiel für eine 3D-Punktwolke 300 zeigt, gemäß einigen Ausführungsformen. Zum Zwecke der Veranschaulichung zeigt die 3D-Punktwolke 300 nur eine kleine Anzahl von 3D-Punkten 302A, 302B bis 302N, zusammen als 3D-Punkte 302 bezeichnet. Ebenfalls zum Zwecke der Veranschaulichung zeigt 3 den Umriss einer Schachtel 304 (z. B. einer Schachtel, die in der von einer 3D-Bildgebungsvorrichtung aufgenommenen Szene vorhanden ist). Es versteht sich, dass die 3D-Punktwolke 300 keine Informationen enthält, die die Schachtel 304 anzeigen. Vielmehr enthält die 3D-Punktwolke 300 nur Daten der 3D-Punkte 302 und kann nicht einmal Daten enthalten, die Beziehungen zwischen den 3D-Punkten 302 selbst anzeigen. Zum Beispiel kann die 3D-Punktwolke 300 einfach die (x, y, z)-Position jedes 3D-Punktes 302 in der 3D-Punktwolke 300 enthalten. Die in 3 gezeigte Punktwolke wird verwendet werden, um Beispiele für die hierin beschriebenen Techniken zu liefern. Es versteht sich daher, dass die Techniken durch diese Beispiele nicht eingeschränkt werden sollen.
  • In Schritt 202 greift das System für maschinelles Sehen (z. B. das System für maschinelles Sehen 100 aus 1) auf Daten zu und/oder empfängt Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind. 4 zeigt ein Beispiel für einen Pfad 402 durch die Punktwolke 300 von 3, gemäß einigen Ausführungsformen. Der Pfad 402 ist ein linearer Pfad. Der Pfad 402 kann z. B. als Richtung angegeben werden (z. B. eine Richtung, die unter Verwendung eines mit der 3D-Punktwolke 300 verbundenen Koordinatensystems angegeben wird). Jedoch versteht es sich, dass während Pfad 402 ein linearer Pfad ist, dies nur dem Zwecke der Veranschaulichung dient und nicht als Einschränkung gedacht ist. Je nach Wunsch können verschiedene Formen und Arten von Pfaden verwendet werden. Zum Beispiel kann der Pfad einen gekrümmten Pfad, einen kreisförmigen Pfad, einen Spiralpfad, einen rechteckigen Pfad, und/oder dergleichen umfassen.
  • In einigen Ausführungsformen kann der Pfad mithilfe einer Region von Interesse in der 3D-Punktwolke spezifiziert werden. Zum Beispiel kann das System für maschinelles Sehen eine spezifizierte Region von Interesse (z. B. einen Kasten, eine Kugel usw.) empfangen und/oder darauf zugreifen, die Daten enthält, die für einen Pfad bezeichnend sind. Der Pfad kann in Bezug auf die Region von Interesse spezifiziert werden. Wenn zum Beispiel die Region von Interesse ein Kasten ist, kann die Region von Interesse Daten enthalten, die für eine Breite, eine Länge und eine Höhe bezeichnend sind, und kann Daten enthalten, die den Pfad basierend auf der Breite, Länge und Höhe spezifizieren. Als ein weiteres Beispiel kann die Region von Interesse ein Zylinder sein, und die Region von Interesse kann Daten enthalten, die den Pfad basierend auf einem zylindrischen Koordinatensystem, das dem Zylinder zugeordnet ist, spezifizieren.
  • In Schritt 204 erzeugt das System für maschinelles Sehen eine Vielzahl von Listen von 3D-Datenpunkten. Jede Liste von 3D-Datenpunkten erstreckt sich über die 3D-Punktwolke an einem Ort, der den Pfad schneidet. Daher kann jede Liste von 3D-Datenpunkten eine ID-Mannigfaltigkeit von Punkten erfassen, die sich entlang der Oberfläche eines von der 3D-Punktwolke erfassten Objekts befinden können. Gemäß einigen Ausführungsformen können die Listen von Punkten unter Verwendung eines Satzes zweidimensionaler Ebenen erzeugt werden, die sich entlang des Pfades erstrecken, so dass jede Liste von Punkten innerhalb der Ebene und/oder innerhalb eines Schwellenabstandes von der Ebene liegt. Die Ebenen können verschiedene Anordnungen entlang des Pfades haben. Zum Beispiel können die Ebenen parallel zueinander sein und sich in Richtung eines geraden Pfades erstrecken. Als ein weiteres Beispiel können die Ebenen senkrecht zu einem gekrümmten Pfad entlang der Richtung des Pfades sein. Jede Ebene, und damit jede Liste von 3D-Datenpunkten, schneidet den empfangenen Pfad an verschiedenen Stellen und/oder Richtungen.
  • 5A zeigt ein Beispiel für eine Ebene 502, die zur Bestimmung einer Liste von 3D-Datenpunkten verwendet wird, gemäß einigen Ausführungsformen. In diesem Beispiel ist die Ebene 502 senkrecht zum Pfad 402 angeordnet, aber wie hierin beschrieben dient dies nur als Beispiel und soll nicht einschränkend sein. Wie in 5B gezeigt, bestimmt das System für maschinelles Sehen die Liste von 3D-Datenpunkten 504 durch Identifizieren der Punkte, die entlang der Ebene 502 liegen. 5C zeigt zwei weitere Listen von 3D-Datenpunkten gemäß einigen Ausführungsformen. Wie in 5C gezeigt, wird Ebene 506 verwendet, um die assoziierte Liste von 3D-Datenpunkten 508 zu identifizieren, und Ebene 510 wird verwendet, um die assoziierte Liste von 3D-Datenpunkten 512 zu identifizieren. Ebenen 502, 506 und 510 sind in diesem Beispiel parallel zueinander.
  • In Schritt 206 identifiziert das System für maschinelles Sehen in mindestens einigen der Vielzahl von Listen von 3D-Datenpunkten ein mit einem Oberflächenmerkmal assoziiertes Charakteristikum. Das Charakteristikum kann zum Beispiel ein definierendes Merkmal eines Objekts sein, wie z. B. ein Grat, eine Falte, eine Ecke, eine Kante und/oder dergleichen. Die Verfahren können zum Beispiel Ecken oder andere Punkte starker Krümmung in einem bestimmten Maßstab entlang des Konturverlaufs identifizieren. 6A-6C zeigen Beispiele von Ecken 602, 604 und 606, die in den Listen von 3D-Datenpunkten 504, 508 und 512 von 5B-5C identifiziert wurden, gemäß einigen Ausführungsformen. Zum Zwecke der Veranschaulichung sind die Ecken 602, 604 und 606 mit Linien entlang der Punkte veranschaulicht, obwohl dies nur zum Zwecke der Veranschaulichung geschieht, da das System für maschinelles Sehen intern Daten, die für die Ecken bezeichnend sind, in verschiedenen Formaten speichern kann. Zum Beispiel können die Daten, die für Ecken bezeichnend sind, einen Punkt und/oder einen oder mehr Sätze von Strahlen, einen Winkel zwischen dem Satz von Strahlen, eine Punktzahl der Ecke, Daten, die angeben, ob die Ecke konkav oder konvex ist, und/oder dergleichen umfassen.
  • In Schritt 208 gruppiert das System für maschinelles Sehen die identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika. Zum Beispiel kann das System für maschinelles Sehen die identifizierten Charakteristika basierend auf der Nähe der identifizierten Charakteristika in 3D und/oder basierend auf anderen Eigenschaften gruppieren (z. B. basierend darauf, ob die Gruppierung der Charakteristika einen Pfad innerhalb eines Winkels der erwarteten Richtung der Charakteristika bildet). 7 zeigt eine beispielhafte Gruppierung der identifizierten Ecken 602, 604 und 606 aus 6A-6C, gemäß einigen Ausführungsformen. Zum Beispiel kann das System für maschinelles Sehen feststellen, dass Ecken jeweils die gleiche Orientierung (oder eine ähnliche Orientierung, die innerhalb eines Schwellenwerts liegt) innerhalb des Koordinatensystems der 3D-Punktwolke haben, und die drei Ecken als potenziell miteinander verwandt gruppieren.
  • In Schritt 210 identifiziert das System für maschinelles Sehen basierend auf den gruppierten Charakteristika ein Oberflächenmerkmal eines Teils der 3D-Punktwolke. Gemäß einigen Ausführungsformen kann das System für maschinelles Sehen an jeder Gruppe von identifizierten Charakteristika eine Gerade anpassen. Zum Beispiel kann das System für maschinelles Sehen eine bestangepasste Gerade für jede Gruppe bestimmen, wie etwa durch Verwendung von Anpassungsverfahren kleinsten Quadraten, RANSAC und/oder dergleichen. 8 zeigt ein Beispiel für eine identifizierte Faltkante 800, gemäß einigen Ausführungsformen. Wie in 8 gezeigt, stellt die Faltkante 800 einen Teil einer Seite 802 des von der 3D-Punktwolke 300 erfassten 3D-Objekts 304 dar. Daher können die Techniken verwendet werden, um Merkmalen innerhalb der 3D-Punktwolke zu identifizieren, die letztlich zum Identifizieren eines von der 3D-Punktwolke erfassten Objekts verwendet werden können. Wie hierin beschrieben, kann die 3D-Punktwolke ein gewisses Rauschen aufweisen, so dass die ermittelten Merkmale eine gewisse Schwellenrauschdifferenz aufweisen können (z. B. im Vergleich zu den Merkmalen des echten Objekts, das durch das System für maschinelles Sehen erfasst wurde). Gemäß einigen Ausführungsformen kann eine Gerade an die ermittelten Merkmale angepasst werden, indem mehrere Geraden an verschiedene Gruppen von Merkmalen angepasst und Geraden kombiniert werden, die innerhalb einer Schwellenorientierung liegen. Zum Beispiel kann das System für maschinelles Sehen eine erste Gerade an einen ersten Teil der identifizierten Merkmale anpassen und eine zweite Gerade an einen zweiten Teil der identifizierten Merkmale anpassen. Das System für maschinelles Sehen kann feststellen, dass die erste Gerade eine erste Orientierung hat, die innerhalb einer Schwellendifferenz zu einer zweiten Orientierung der zweiten Geraden liegt (z. B. sind die Geraden annähernd kolinear), und kann die erste Gerade und die zweite Gerade zu einer einzigen repräsentativen Geraden kombinieren.
  • In einigen Ausführungsformen kann das System für maschinelles Sehen konfiguriert sein, einen Schwellenwert (z. B. ein Trennungs- oder Orientierungsschwelle) zu verwenden, um zu bestimmen, ob mehrere Geraden zu identifizieren sind oder nicht. Wenn zum Beispiel das System für maschinelles Sehen Objekte mit linearen Merkmalen abbildet, die einen geringen Abstand voneinander haben (z. B. in der Größenordnung von Mikrometern), kann das System für maschinelles Sehen mit einem Schwellenwert entsprechend konfiguriert sein, so dass das System für maschinelles Sehen zwei Geraden identifiziert, anstatt die Punkte/Linien zu nur einer Geraden zu kombinieren. Wenn als veranschaulichendes Beispiel ein Objekt Linien aufweist, von denen bekannt ist, dass sie 10 Mikrometer voneinander entfernt sind, kann der Schwellenwert auf basierend auf dem bekannten Abstand eingestellt werden (z. B. auf 10 Mikrometer, 12 Mikrometer usw.), so dass wenn das System für maschinelles Sehen feststellt, dass zwei Geraden weniger als den Schwellenwert voneinander entfernt sind, das System für maschinelles Sehen zwei Geraden auflösen wird, anstatt die beiden Geraden zu einer einzigen Geraden zu kombinieren. Als weiteres Beispiel kann das System für maschinelles Sehen den Schwellenwert verwenden, wenn es bestimmt, welche 3D-Punkte zu assoziierten Linien oder Merkmalen gehören.
  • Gemäß einigen Ausführungsformen kann das System für maschinelles Sehen die Abdeckung eines Oberflächenmerkmals in der Punktwolke bestimmen. Zum Beispiel kann das System für maschinelles Sehen eine Anzahl identifizierter Merkmale bestimmen und basierend auf der Anzahl eine Abdeckung des Oberflächenmerkmals entlang des Teils der 3D-Punktwolke bestimmen.
  • Gemäß einigen Ausführungsformen kann das System für maschinelles Sehen das ermittelte Merkmal bewerten. Zum Beispiel kann das System für maschinelles Sehen eine Punktzahl für jedes der identifizierten Merkmale bestimmen. Das System für maschinelles Sehen kann basierend auf der Anzahl der identifizierten Merkmale und der Punktzahl jedes der identifizierten Merkmale eine Gesamtpunktzahl des Merkmals bestimmen.
  • Verschiedene Bewertungstechniken können zur Bewertung jedes identifizierten Merkmals verwendet werden. Beispielsweise kann das System für maschinelles Sehen einzelne Eckpunkte danach bewerten, wie viele Proben nahe an den Geradensegmenten liegen, die die Ecke bilden. Dann kann das System für maschinelles Sehen die gefundenen Faltkanten basierend auf der Quantität und Qualität (z. B. Ko-Linearität) der übereinstimmenden Eckpunkte bewerten. Die Bewertungstechniken können ausgestaltet sein, um zu bestimmen, wie zuverlässig die Kante ist, die basierend auf den identifizierten Ecken bestimmt wurde (z. B. anstatt zu bestimmen perfekt geformt die Kante ist).
  • Wie hierin beschrieben, sind 3-8 vereinfachte Diagramme zur Veranschaulichung der hierin beschriebenen Techniken, und verschiedene Aspekte können modifiziert werden, ohne vom Geist der hierin beschriebenen Techniken abzuweichen. Zum Beispiel können die Techniken nichtlineare Merkmale (z. B. Falten) durch Verkettung von Käntchen oder Ecken extrahieren und die Ketten als Ergebnis ausgeben. In einigen Ausführungsformen kann das System für maschinelles Sehen 3D-Punkte radial entlang des Umfangs eines kreisförmigen Pfades analysieren. Solche Techniken können zum Beispiel verwendet werden, um einen Kreis an einem ungefähren Ort genau einzupassen (z. B. um den Radius und/oder andere Dimensionen eines kreisförmigen Merkmals zu erhalten). Als weiteres Beispiel können die Techniken lineare Falten in allen möglichen Richtungen extrahieren, indem das hierin beschriebene Verfahren bei einer Reihe von Ausrichtungen der Extraktionsebene angewendet wird. Als ein weiteres Beispiel können die hierin beschriebenen Verfahren mit einer Vielzahl von Eckerkennungsmaßstäben (z. B. in einer exponentiellen Folge) wiederholt werden, um Faltkanten in einer Vielzahl von Größenordnungen zu finden und optional die Ergebnisse mit der höchsten Punktzahl aus Gruppen auszuwählen, die räumlich nahe beieinander liegen. Solch ein Ansatz kann zum Beispiel die Notwendigkeit beseitigen, die Größenordnung des Oberflächenmerkmals überhaupt zu spezifizieren.
  • In einigen Ausführungsformen kann das System für maschinelles Sehen konfiguriert sein, bei einer gewünschten Auflösung zu arbeiten. Bei einer hohen Auflösung kann ein lineares Merkmal auf Grund von Oberflächenunvollkommenheiten und/oder Bildgebungsartefakten nichtlinear (z. B. wellig) erscheinen, während das lineare Merkmal bei einer gröberen/geringeren Auflösung linearer erscheinen kann. Zum Beispiel können hochauflösende Bildgebungsgeräte Details im Mikrometermaßstab extrahieren, so dass Grate von bearbeiteten Aluminiumteilen, die ansonsten für das menschliche Auge nicht sichtbar wären, von dem Bildgebungsgerät erkannt werden. In einigen Ausführungsformen kann die Auflösung gesteuert werden durch Unterabtastung der Punktwolke vor der Identifizierung von Oberflächenmerkmalen. Das System für maschinelles Sehen kann die Anzahl von 3D-Punkten zu Voxeln konsolidieren, wie etwa durch Reduzierung der 3D-Punkte in einem Voxel auf einen einzigen 3D-Punkt. Zum Beispiel kann das System für maschinelles Sehen für ein oder mehr Voxel einer Ebene eine Vielzahl von 3D-Datenpunkten in dem Voxel bestimmen, einen einzelnen 3D-Datenpunkt für das Voxel basierend auf den 3D-Datenpunkten bestimmen und den einzelnen 3D-Datenpunkt in dem Voxel speichern. Gemäß einigen Ausführungsformen kann das System für maschinelles Sehen den Schwerpunkt der 3D-Punkte im Voxel berechnen. Gemäß einigen Ausführungsformen können die Verfahren den Schwerpunkt eines Voxels basierend auf den Punkten im aktuellen Voxel und/oder den Punkten in benachbarten Voxeln bestimmen. Zum Beispiel kann der Schwerpunkt basierend auf den Punkten im aktuellen Voxel und den Punkten in den sechsundzwanzig (26) Voxeln berechnet werden, die dem aktuellen Voxel benachbart sind (z. B. neun unterhalb, neun oberhalb und acht um die Seiten des Voxels herum).
  • Die hierin beschriebenen Techniken können für verschiedene Anwendungen maschinellen Sehens eingesetzt werden. Zum Beispiel können die Techniken zur Objekterkennung, -inspektion, -analyse und/oder dergleichen eingesetzt werden. Als ein Beispiel können die Techniken zur Objektvermessung eingesetzt werden, wie etwa durch Verwendung der Kanten zur Messung der Länge/Größe einer bestimmten Falte, zum Vergleich der Abstände zu anderen Falten und/oder dergleichen. Als ein weiteres Beispiel können die Techniken für die Inspektion zur Inspektion von Objekten verwendet werden, um sicherzustellen, dass Falten im Objekt richtig geformt, auf dem Objekt richtig positioniert/angeordnet sind, und/oder dergleichen.
  • Techniken, die nach den hierin beschriebenen Grundsätzen operieren, können auf jede geeignete Weise implementiert werden. Die Verarbeitungs- und Entscheidungsblöcke in den obigen Flussdiagrammen stellen Schritte und Handlungen dar, die in Algorithmen enthalten sein können, die diese verschiedenen Prozesse ausführen. Aus diesen Prozessen abgeleitete Algorithmen können als Software implementiert werden, die in einen oder mehr Einzweck- oder Mehrzweckprozessoren integriert ist und deren Betrieb steuert, können als funktional äquivalente Schaltkreise wie eine digitale Signalverarbeitungsschaltung (DSP) oder eine anwendungsspezifische integrierte Schaltung (ASIC) implementiert werden, oder können auf jede andere geeignete Weise implementiert werden. Es versteht sich, dass die hierin enthaltenen Flussdiagramme nicht die Syntax oder den Betrieb irgendeiner bestimmten Schaltung oder irgendeiner bestimmten Programmiersprache oder Typs von Programmiersprache darstellen. Vielmehr veranschaulichen die Flussdiagramme die funktionalen Informationen, die ein Fachmann zur Herstellung von Schaltungen oder zur Implementierung von Computersoftware-Algorithmen verwenden kann, um die Verarbeitung eines bestimmten Apparats durchzuführen, das die hier beschriebenen Techniken ausführt. Es versteht sich auch, dass, sofern nicht anders hierin angegeben, die besondere Abfolge der in jedem Flussdiagramm beschriebenen Schritte und/oder Handlungen lediglich veranschaulichend für die Algorithmen sind, die implementiert werden können, und in Implementierungen und Ausführungsformen der hierin beschriebenen Prinzipien variiert werden können.
  • Dementsprechend können in einigen Ausführungsformen die hierin beschriebenen Techniken in computerausführbaren Anweisungen verkörpert sein, die als Software implementiert sind, einschließlich als Anwendungssoftware, Systemsoftware, Firmware, Middleware, eingebettetem Code oder jede andere geeignete Art von Computercode. Solche computerausführbaren Anweisungen können unter Verwendung jeder beliebigen einer Anzahl geeigneter Programmiersprachen und/oder Programmier- oder Skript-Tools geschrieben sein, und können auch als ausführbarer Maschinensprachcode oder Zwischencode kompiliert sein, der auf einem Framework oder einer virtuellen Maschine ausgeführt wird.
  • Wenn hierin beschriebene Techniken als computerausführbare Anweisungen verkörpert sind, können diese computerausführbaren Anweisungen auf jede geeignete Weise implementiert sein, einschließlich als eine Reihe von funktionalen Einrichtungen, die jeweils eine oder mehr Operationen zur vollständigen der Ausführung von Algorithmen bereitstellen, die gemäß diesen Techniken arbeiten. Eine „funktionale Einrichtung,“ wie auch immer sie instanziiert ist, ist eine strukturelle Komponente eines Computersystems, die, wenn sie in einen oder mehr Computer integriert und von diesen ausgeführt wird, den einen oder mehr Computer veranlasst, eine spezifische operationale Rolle zu erfüllen. Eine funktionale Einrichtung kann ein Teil eines oder ein ganzes Softwareelement sein. Zum Beispiel kann eine funktionale Einrichtung als eine Funktion eines Prozesses, oder als diskreter Prozess, oder als jede andere geeignete Verarbeitungseinheit implementiert sein. Wenn hierin beschriebene Techniken als mehrere funktionale Einrichtungen implementiert sind, kann jede funktionale Einrichtung auf ihre eigene Weise implementiert sein; sie müssen nicht alle auf die gleiche Weise implementiert sein. Zusätzlich können diese funktionalen Einrichtungen je nach Bedarf parallel und/oder seriell ausgeführt werden und Informationen untereinander unter Verwendung eines gemeinsamen Speichers auf dem/den Computer(n), auf dem/denen sie ausgeführt werden, unter Verwendung eines Nachrichtenübermittlungsprotokolls oder auf jede andere geeignete Weise weitergeben.
  • Generell umfassen funktionale Einrichtungen Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben erfüllen oder bestimmte abstrakte Datentypen implementieren. Typischerweise kann die Funktionalität der funktionalen Einrichtungen in den Systemen, in denen sie operieren, nach Wunsch kombiniert oder verteilt werden. In einigen Implementierungen können eine oder mehr funktionale Einrichtungen, die die hierin beschriebenen Techniken ausführen, zusammen ein vollständiges Softwarepaket bilden. Diese funktionalen Einrichtungen können in alternativen Ausführungsformen angepasst werden, mit anderen, nicht verwandten funktionalen Einrichtungen und/oder Prozessen zu interagieren, um eine Softwareprogramm-Anwendung zu implementieren.
  • Einige beispielhafte funktionelle Einrichtungen zur Ausführung einer oder mehr Aufgaben wurden hierin beschrieben. Es versteht sich jedoch, dass die beschriebenen funktionalen Einrichtungen und die Aufteilung der Aufgaben lediglich für die Art von funktionalen Einrichtungen veranschaulichend ist, die die hierin beschriebenen beispielhaften Techniken implementieren können, und dass Ausführungsformen nicht darauf beschränkt sind, in einer bestimmten Anzahl, Aufteilung oder Art von funktionalen Einrichtungen implementiert zu sein. In einigen Ausführungsformen kann die gesamte Funktionalität in einer einzigen funktionalen Einrichtung implementiert sein. Es versteht sich auch, dass in einigen Implementierungen einige der hierin beschriebenen funktionalen Einrichtungen zusammen mit oder getrennt von anderen implementiert werden können (d.h. als eine einzige Einheit oder separate Einheiten), oder einige dieser funktionalen Einrichtungen nicht implementiert werden können.
  • Computerausführbare Anweisungen, die die hierin beschriebenen Techniken implementieren (wenn als eine oder mehr funktionale Einrichtungen oder auf beliebige andere Weise implementiert), können in einigen Ausführungsformen auf einem oder mehr computerlesbaren Medien kodiert sein, um den Medien Funktionalität zu verleihen. Computerlesbare Medien umfassen magnetische Medien wie ein Festplattenlaufwerk, optische Medien wie eine Compact Disk (CD) oder eine Digital Versatile Disk (DVD), einen persistenten oder nicht persistenten Festkörperspeicher (z. B. Flash-Speicher, Magnetic RAM usw.) oder jedes andere geeignete Speichermedium. Solch ein computerlesbares Medium kann auf jede geeignete Weise implementiert sein. Wie hierin verwendet bezieht sich der Begriff „computerlesbare Medien“ (auch „computerlesbare Speichermedien“ genannt) auf materielle Speichermedien. Materielle Speichermedien sind nichtflüchtig und haben mindestens eine physische, strukturelle Komponente. In einem „computerlesbaren Medium“ wie hierin verwendet hat mindestens eine physikalische, strukturelle Komponente mindestens eine physikalische Eigenschaft, die in irgendeiner Weise während eines Prozesses der Erstellung des Mediums mit eingebetteten Informationen, eines Prozesses der Aufzeichnung von Informationen darauf, oder irgendeines anderen Prozesses der Codierung des Mediums mit Informationen verändert werden kann. Zum Beispiel kann der Magnetisierungszustand eines Teils einer physikalischen Struktur eines computerlesbaren Mediums während eines Aufzeichnungsvorgangs verändert werden.
  • Ferner umfassen einige der oben beschriebenen Techniken Handlungen des Speicherns von Information (z. B. Daten und/oder Anweisungen) auf bestimmte Weise zur Verwendung durch diese Techniken. In einigen Implementierungen dieser Techniken - wie etwa Implementierungen, bei denen die Techniken als computerausführbare Anweisungen implementiert werden - kann die Information auf einem computerlesbaren Speichermedium kodiert werden. Wenn hierin spezifische Strukturen als vorteilhafte Formate für die Speicherung dieser Information beschrieben werden, können diese Strukturen verwendet werden, um der Information eine physische Organisation zu verleihen, wenn sie auf dem Speichermedium kodiert sind. Diese vorteilhaften Strukturen können dann dem Speichermedium eine Funktionalität verleihen, indem sie die Operationen von einem oder mehr mit den Informationen interagierenden Prozessoren beeinflussen; zum Beispiel durch Erhöhung der Effizienz der von dem/den Prozessor(en) durchgeführten Computeroperationen.
  • In einigen, aber nicht allen Implementierungen, in denen die Techniken als computerausführbare Anweisungen verkörpert sein können, können diese Anweisungen auf einem oder mehr geeigneten Rechenvorrichtung(en) ausgeführt werden, die in einem beliebigen geeigneten Computersystem arbeiten, oder eine oder mehr Rechenvorrichtungen (oder ein oder mehr Prozessoren von einer oder mehr Rechenvorrichtungen) können so programmiert werden, dass sie die computerausführbaren Anweisungen ausführen. Eine Rechenvorrichtung oder ein Prozessor kann programmiert sein, Anweisungen auszuführen, wenn die Anweisungen in einer für die Rechenvorrichtung oder den Prozessor zugänglichen Weise gespeichert sind, wie etwa in einem Datenspeicher (z. B. einem On-Chip-Cache oder Anweisungsregister, einem über Bus zugänglichen computerlesbaren Speichermedium, einem über ein oder mehr Netzwerke zugänglichen und für die Vorrichtung / den Prozessor zugänglichen computerlesbaren Speichermedium, usw.). Funktionelle Einrichtungen umfassend diese computerausführbaren Anweisungen können in eine einzelne programmierbares digitales Mehrzweck-Rechenvorrichtung, ein koordiniertes System von zwei oder mehr Mehrzweck-Rechenvorrichtungen, die sich die Rechenleistung teilen und gemeinsam die hierin beschriebenen Techniken ausführen, eine einzelne Rechenvorrichtung oder ein koordiniertes System von Rechenvorrichtungen (an einem gemeinsamen Standort oder geografisch verteilt), das der Ausführung der hierin beschriebenen Techniken gewidmet ist, ein oder mehr FPGAs (feldprogrammierbaren Gate-Arrays) zur Ausführung der hierin beschriebenen Techniken oder jedes andere geeignete System integriert sein und dessen Betrieb steuern.
  • Eine Rechenvorrichtung kann mindestens einen Prozessor, einen Netzwerkadapter und computerlesbare Speichermedien umfassen. Eine Rechenvorrichtung kann zum Beispiel ein Desktop- oder Laptop-Computer, ein persönlicher digitaler Assistent (PDA), ein intelligentes Mobiltelefon, ein Server, oder jede andere geeignete Rechenvorrichtung sein. Ein Netzwerkadapter kann jede geeignete Hardware und/oder Software sein, die es der Rechenvorrichtung ermöglicht, über jegliches geeignete Rechennetzwerk drahtgebunden und/oder drahtlos mit jeglicher anderen geeigneten Rechenvorrichtung zu kommunizieren. Das Rechennetzwerk kann drahtlose Zugangspunkte, Schalter, Router, Gateways und/oder andere Netzwerkgeräte sowie jedes geeignete drahtgebundene und/oder drahtlose Kommunikationsmedium oder -medien für den Datenaustausch zwischen zwei oder mehr Computern, einschließlich des Internets, umfassen. Computerlesbare Medien können angepasst sein, zu verarbeitende Daten und/oder vom Prozessor auszuführende Anweisungen zu speichern. Der Prozessor ermöglicht die Verarbeitung von Daten und die Ausführung von Anweisungen. Die Daten und Anweisungen können auf den computerlesbaren Speichermedien gespeichert sein.
  • Eine Rechenvorrichtung kann zusätzlich eine oder mehr Komponenten und Peripheriegeräte haben, einschließlich Eingabe- und Ausgabegeräte. Diese Geräte können unter anderem dazu verwendet werden, eine Benutzeroberfläche darzustellen. Beispiele für Ausgabegeräte, die zur Bereitstellung einer Benutzeroberfläche verwendet werden können, umfassen Drucker oder Bildschirme für die visuelle Darstellung von Ausgaben und Lautsprecher oder andere tonerzeugende Geräte für die akustische Darstellung von Ausgaben. Beispiele für Eingabegeräte, die für eine Benutzeroberfläche verwendet werden können, umfassen Tastaturen und Zeigegeräte wie Mäuse, Touchpads und Digitalisiertablets. Als ein weiteres Beispiel kann eine Rechenvorrichtung Eingabeinformationen durch Spracherkennung oder in einem anderen akustischen Format empfangen.
  • Es wurden Ausführungsformen beschrieben, bei denen die Techniken in Schaltkreisen und/oder computerausführbaren Anweisungen implementiert sind. Es versteht sich, dass einige Ausführungsformen in Form eines Verfahrens erfolgen können, für das mindestens ein Beispiel gegeben wurde. Die als Teil des Verfahrens durchgeführten Handlungen können in jeder geeigneten Weise angeordnet werden. Dementsprechend können Ausführungsformen konstruiert werden, bei denen die Handlungen in einer anderen als der dargestellten Reihenfolge ausgeführt werden, was die gleichzeitige Ausführung einiger Handlungen umfassen kann, auch wenn sie in veranschaulichenden Ausführungsformen als aufeinanderfolgende Handlungen gezeigt werden.
  • Verschiedene Aspekte der oben beschriebenen Ausführungsformen können allein, in Kombination oder in einer Vielzahl von Anordnungen verwendet werden, die in den vorstehend beschriebenen Ausführungsformen nicht speziell erörtert werden, und ist daher in seiner Anwendung nicht auf die Einzelheiten und die Anordnung der Komponenten beschränkt, die in der vorstehenden Beschreibung aufgeführt oder in den Zeichnungen veranschaulicht sind. Zum Beispiel können die in einer Ausführungsform beschriebenen Aspekte in beliebiger Weise mit den in anderen Ausführungsformen beschriebenen Aspekten kombiniert werden.
  • Die Verwendung von Ordnungsbegriffen wie „erster,“ „zweiter,“ „dritter“ usw. in den Ansprüchen zur Modifizierung eines Anspruchselements bedeutet an sich keine Priorität, keinen Vorrang und keine Reihenfolge eines Anspruchselements gegenüber einem anderen oder die zeitliche Reihenfolge, in der Handlungen eines Verfahrens ausgeführt werden, sondern werden lediglich als Kennzeichnungen verwendet, um ein Anspruchselement mit einem bestimmten Namen von einem anderen Element mit demselben Namen (bis auf die Verwendung des Ordnungsbegriffs) zu unterscheiden, um die Anspruchselemente zu unterscheiden.
  • Auch die hier verwendete Phraseologie und Terminologie dient nur dem Zwecke der Beschreibung und ist nicht als einschränkend zu betrachten. Die Verwendung von „einschließlich,“ „umfassend,“ „mit,“ „enthaltend,“ „beinhaltend,“ und Abwandlungen davon hierin, soll die nachfolgend aufgeführten Elemente und deren Äquivalente sowie zusätzliche Elemente umfassen.
  • Das Wort „beispielhaft“ wird hierin verwendet, um als Beispiel, Instanz oder Illustration dienend zu bedeuten. Jede hierin als beispielhaft beschriebene Ausführungsform, Implementierung, Prozess, Merkmal usw. ist daher als ein veranschaulichendes Beispiel zu verstehen und nicht als bevorzugtes oder vorteilhaftes Beispiel, sofern nicht anders angegeben.
  • Nach der Beschreibung verschiedener Aspekte mindestens einer Ausführungsform versteht es sich, dass dem Fachmann ohne Weiteres verschiedene Änderungen, Modifikationen und Verbesserungen einfallen werden. Solche Änderungen, Modifikationen und Verbesserungen sollen Teil dieser Offenbarung sein, und sollen innerhalb des Geistes und des Umfangs der hier beschriebenen Prinzipien sein. Dementsprechend sind die vorangehende Beschreibung und Zeichnungen nur als Beispiel zu verstehen.
  • Verschiedene Aspekte sind in dieser Offenbarung beschrieben, die die folgenden Aspekte umfassen, aber nicht darauf beschränkt sind:
    1. 1. Ein computergestütztes Verfahren zum Identifizieren eines Oberflächenmerkmals eines Teiles einer dreidimensionalen (3D) Punktwolke, das Verfahren umfassend:
      • Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst;
      • Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei:
        • jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und
        • jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet;
      • Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist;
      • Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika; und
      • Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
    2. 2. Das Verfahren aus 1, wobei das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen, umfasst.
    3. 3. Das Verfahren aus 2, wobei die Ebene senkrecht zum empfangenen Pfad ist, so dass die für die Erzeugung jeder der Listen von 3D-Datenpunkten verwendeten Ebenen parallel sind.
    4. 4. Das Verfahren aus 1-3, wobei das identifizierte Oberflächenmerkmal des Teils der 3D-Punktwolke eine Faltkante ist, und die mit der Faltkante assoziierte Charakteristik eine Ecke ist.
    5. 5. Das Verfahren aus 1-4, wobei das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika umfasst.
    6. 6. Das Verfahren aus 5, wobei das Anpassen einer Geraden an die identifizierten Merkmale Folgendes umfasst:
      • Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale;
      • Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist; und
      • Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
    7. 7. Das Verfahren aus 1-6, wobei das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse bezeichnend sind, umfasst.
    8. 8. Das Verfahren aus 7, wobei die spezifizierte Region von Interesse eine Breite, eine Länge und eine Höhe umfasst, und der Pfad basierend auf der Breite, Länge und Höhe spezifiziert wird.
    9. 9. Das Verfahren aus 1-8, weiter umfassend:
      • Bestimmen einer Anzahl der identifizierten Merkmale;
      • Bestimmen, basierend auf der Anzahl, einer Abdeckung des Oberflächenmerkmals entlang des Teils der 3D-Punktwolke.
    10. 10. Das Verfahren aus 9, weiter umfassend:
      • Bestimmen einer Punktzahl für jedes der identifizierten Merkmale;
      • Bestimmen, basierend auf der Anzahl der identifizierten Merkmale und der Punktzahl jedes der identifizierten Merkmale, einer Gesamtpunkzahl des Merkmals.
    11. 11. Das Verfahren aus 1-10, wobei der Pfad:
      • ein durch eine Richtung spezifizierter linearer Pfad;
      • ein gekrümmter Pfad;
      • ein kreisförmiger Pfad;
      • ein Spiralpfad; oder irgendeine Kombination davon ist.
    12. 12. Ein nichtflüchtiges computerlesbares Medium umfassend Anweisungen, die, wenn durch einen oder mehr Prozessoren auf einer Rechenvorrichtung ausgeführt, fähig sind, die ein oder mehr Prozessoren zu veranlassen, ein Oberflächenmerkmal eines Teils einer dreidimensionalen (3D) Punktwolke zu identifizieren, umfassend:
      • Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst;
      • Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei:
        • jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und
        • jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet;
      • Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist;
      • Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika; und
      • Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
    13. 13. Das nichtflüchtige computerlesbare Medium aus 12, wobei das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen, umfasst.
    14. 14. Das nichtflüchtige computerlesbare Medium aus 12-13, wobei das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika umfasst, umfassend:
      • Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale;
      • Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist; und
      • Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
    15. 15. Das nichtflüchtige computerlesbare Medium aus 12-14, wobei das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse umfassend eine Breite, eine Länge und eine Höhe bezeichnend sind, umfasst, und der Pfad basierend auf der Breite, Länge und Höhe spezifiziert wird.
    16. 16. Das nichtflüchtige computerlesbare Medium aus 12-15, wobei die Anweisungen fähig sind, die ein oder mehr Prozessoren zu veranlassen, Folgendes durchzuführen:
      • Bestimmen einer Anzahl der identifizierten Merkmale;
      • Bestimmen, basierend auf der Anzahl, einer Abdeckung des Oberflächenmerkmals entlang des Teils der 3D-Punktwolke.
    17. 17. Ein System umfassend einen Speicher, der Anweisungen speichert, und mindestens einen Prozessor, der konfiguriert ist, die Anweisungen zum Identifizieren mindestens eines Oberflächenmerkmals einer dreidimensionalen (3D) Punktwolke auszuführen, umfassend:
      • Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst;
      • Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei:
        • jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und
        • jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet;
      • Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist;
      • Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika; und
      • Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
    18. 18. Das System aus 17, wobei das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen, umfasst.
    19. 19. Das System aus 17-18, wobei das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika umfasst, umfassend:
      • Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale;
      • Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist; und
      • Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
    20. 20. Das System aus 17-19, wobei das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse umfassend eine Breite, eine Länge und eine Höhe bezeichnend sind, umfasst, und der Pfad basierend auf der Breite, Länge und Höhe spezifiziert wird.

Claims (20)

  1. Ein computergestütztes Verfahren zum Identifizieren eines Oberflächenmerkmals eines Teiles einer dreidimensionalen (3D) Punktwolke, das Verfahren umfassend: Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst; Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei: jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet; Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist; Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika; und Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
  2. Das Verfahren aus Anspruch 1, wobei das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen, umfasst.
  3. Das Verfahren aus Anspruch 2, wobei die Ebene senkrecht zum empfangenen Pfad ist, so dass die für die Erzeugung jeder der Listen von 3D-Datenpunkten verwendeten Ebenen parallel sind.
  4. Das Verfahren aus Anspruch 1, wobei das identifizierte Oberflächenmerkmal des Teils der 3D-Punktwolke eine Faltkante ist, und die mit der Faltkante assoziierte Charakteristik eine Ecke ist.
  5. Das Verfahren aus Anspruch 1, wobei das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika umfasst.
  6. Das Verfahren aus Anspruch 5, wobei das Anpassen einer Geraden an die identifizierten Merkmale Folgendes umfasst: Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale; Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist; und Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
  7. Das Verfahren aus Anspruch 1, wobei das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse bezeichnend sind, umfasst.
  8. Das Verfahren aus Anspruch 7, wobei die spezifizierte Region von Interesse eine Breite, eine Länge und eine Höhe umfasst, und der Pfad basierend auf der Breite, Länge und Höhe spezifiziert wird.
  9. Das Verfahren aus Anspruch 1, weiter umfassend: Bestimmen einer Anzahl der identifizierten Merkmale; Bestimmen, basierend auf der Anzahl, einer Abdeckung des Oberflächenmerkmals entlang des Teils der 3D-Punktwolke.
  10. Das Verfahren aus Anspruch 9, weiter umfassend: Bestimmen einer Punktzahl für jedes der identifizierten Merkmale; Bestimmen, basierend auf der Anzahl der identifizierten Merkmale und der Punktzahl jedes der identifizierten Merkmale, einer Gesamtpunkzahl des Merkmals.
  11. Das Verfahren aus Anspruch 1, wobei der Pfad: ein durch eine Richtung spezifizierter linearer Pfad; ein gekrümmter Pfad; ein kreisförmiger Pfad; ein Spiralpfad; oder irgendeine Kombination davon ist.
  12. Ein nichtflüchtiges computerlesbares Medium umfassend Anweisungen, die, wenn durch einen oder mehr Prozessoren auf einer Rechenvorrichtung ausgeführt, fähig sind, die ein oder mehr Prozessoren zu veranlassen, ein Oberflächenmerkmal eines Teils einer dreidimensionalen (3D) Punktwolke zu identifizieren, umfassend: Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst; Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei: jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet; Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist; Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika; und Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
  13. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen, umfasst.
  14. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika umfasst, umfassend: Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale; Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist; und Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
  15. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse umfassend eine Breite, eine Länge und eine Höhe bezeichnend sind, umfasst, und der Pfad basierend auf der Breite, Länge und Höhe spezifiziert wird.
  16. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei die Anweisungen fähig sind, die ein oder mehr Prozessoren zu veranlassen, Folgendes durchzuführen: Bestimmen einer Anzahl der identifizierten Merkmale; Bestimmen, basierend auf der Anzahl, einer Abdeckung des Oberflächenmerkmals entlang des Teils der 3D-Punktwolke.
  17. Ein System umfassend einen Speicher, der Anweisungen speichert, und mindestens einen Prozessor, der konfiguriert ist, die Anweisungen zum Identifizieren mindestens eines Oberflächenmerkmals einer dreidimensionalen (3D) Punktwolke auszuführen, umfassend: Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, wobei die 3D-Punktwolke eine Vielzahl von 3D-Datenpunkten umfasst; Erzeugen einer Vielzahl von Listen von 3D-Datenpunkten, wobei: jede Liste von 3D-Datenpunkten sich an einem Ort über die 3D-Punktwolke erstreckt, der den empfangenen Pfad schneidet; und jede Liste von 3D-Punkten den empfangenen Pfad an unterschiedlichen Orten schneidet; Identifizieren, in zumindest manchen der Vielzahl von Listen von 3D-Datenpunkten, eines Charakteristikums, das mit einem Oberflächenmerkmal assoziiert ist; Gruppieren der identifizierten Charakteristika basierend auf einer oder mehr Eigenschaften der identifizierten Charakteristika; und Identifizieren, basierend auf den gruppierten Charakteristika, des Oberflächenmerkmals des Teils der 3D-Punktwolke.
  18. Das System aus Anspruch 17, wobei das Erzeugen der Vielzahl von Listen von 3D-Datenpunkten für jede Liste von 3D-Datenpunkten das Bestimmen des Satzes von 3D-Datenpunkten basierend auf einer Ebene, die an dem Ort angeordnet ist, um die Liste von 3D-Datenpunkten zu erzeugen, umfasst.
  19. Das System aus Anspruch 17, wobei das Gruppieren der identifizierten Charakteristika das Anpassen einer Geraden an die identifizierten Charakteristika umfasst, umfassend: Anpassen einer ersten Geraden an einen ersten Teil der identifizierten Merkmale und Anpassen einer zweiten Geraden an einen zweiten Teil der identifizierten Merkmale; Bestimmen, dass die erste Gerade eine erste Orientierung umfasst, die innerhalb eines Schwellenabstandes zu einer zweiten Orientierung der zweiten Geraden ist; und Kombinieren der ersten Geraden und der zweiten Geraden zu einer einzigen repräsentativen Geraden umfassen.
  20. Das System aus Anspruch 17, wobei das Empfangen von Daten, die für einen Pfad entlang einer 3D-Punktwolke bezeichnend sind, das Empfangen von Daten, die für eine spezifizierte Region von Interesse umfassend eine Breite, eine Länge und eine Höhe bezeichnend sind, umfasst, und der Pfad basierend auf der Breite, Länge und Höhe spezifiziert wird.
DE112021002702.6T 2020-05-11 2021-05-10 Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern Pending DE112021002702T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063023186P 2020-05-11 2020-05-11
US63/023,186 2020-05-11
PCT/US2021/031513 WO2021231260A1 (en) 2020-05-11 2021-05-10 Methods and apparatus for identifying surface features in three-dimensional images

Publications (1)

Publication Number Publication Date
DE112021002702T5 true DE112021002702T5 (de) 2023-02-23

Family

ID=76197629

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002702.6T Pending DE112021002702T5 (de) 2020-05-11 2021-05-10 Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern

Country Status (6)

Country Link
US (1) US20210350115A1 (de)
JP (1) JP2023525535A (de)
KR (1) KR20230050270A (de)
CN (1) CN116134482A (de)
DE (1) DE112021002702T5 (de)
WO (1) WO2021231260A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11937019B2 (en) 2021-06-07 2024-03-19 Elementary Robotics, Inc. Intelligent quality assurance and inspection device having multiple camera modules
US11605159B1 (en) 2021-11-03 2023-03-14 Elementary Robotics, Inc. Computationally efficient quality assurance inspection processes using machine learning
US11675345B2 (en) 2021-11-10 2023-06-13 Elementary Robotics, Inc. Cloud-based multi-camera quality assurance architecture
US11605216B1 (en) * 2022-02-10 2023-03-14 Elementary Robotics, Inc. Intelligent automated image clustering for quality assurance

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10462450B2 (en) * 2014-04-28 2019-10-29 Autodesk, Inc. Combining two-dimensional images with depth data to detect junctions or edges
US9327406B1 (en) * 2014-08-19 2016-05-03 Google Inc. Object segmentation based on detected object-specific visual cues
WO2019075276A1 (en) * 2017-10-11 2019-04-18 Aquifi, Inc. SYSTEMS AND METHODS FOR IDENTIFYING OBJECT
CN110998241A (zh) * 2018-01-23 2020-04-10 深圳市大疆创新科技有限公司 用于校准可移动对象的光学***的***和方法
CN112006711A (zh) * 2019-05-31 2020-12-01 通用电气精准医疗有限责任公司 3d透视指示器及其生成方法和应用
US11087479B1 (en) * 2019-12-20 2021-08-10 Facebook Technologies, Llc Artificial reality system with 3D environment reconstruction using planar constraints

Also Published As

Publication number Publication date
KR20230050270A (ko) 2023-04-14
CN116134482A (zh) 2023-05-16
WO2021231260A1 (en) 2021-11-18
JP2023525535A (ja) 2023-06-16
US20210350115A1 (en) 2021-11-11

Similar Documents

Publication Publication Date Title
DE112021002702T5 (de) Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern
DE112014005866B4 (de) Verbesserung der plenoptischen Kameraauflösung
DE102016100101A1 (de) System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen
DE60036780T2 (de) Verfahren zum Vergleichen eines zweidimensionalen Bildes zu einem unter mehreren in einem Datenbank gespeicherten dreidimensionalen Kandidatmodellen
DE102014211948A1 (de) System und Verfahren zur selektiven Bestimmung von Punktwolken
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
DE102012107287A9 (de) System und Verfahren zum identifizieren von Fehlern in einem Material
DE60020038T2 (de) Verfahren zum Verarbeiten eines numerischen Bildes
DE102012201823A1 (de) Verfahren zur Klassifizierung eines Pixels eines hyperspektralen Bildes in einer Fernerfassungsanwendung
DE112011101695T5 (de) System und Verfahren zur Verarbeitung von Bilddaten in Bezug zu einer Konzentration innerhalb des gesamten Bildes
DE112014006439B4 (de) Kantenerkennungsvorrichtung, Kantenerkennungsverfahren und Programm
DE102009051826A1 (de) Verfahren zum Vergleichen der Ähnlichkeit von 3D-bildlichen Objekten
DE102016003294A1 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Speichermedium
WO2020157249A1 (de) Verarbeitung von bilddatensätzen
EP3688725B1 (de) Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts
DE102005010169A1 (de) Aktives Polyeder für 3D-Bildsegmentierung
DE102015122116A1 (de) System und Verfahren zur Ermittlung von Clutter in einem aufgenommenen Bild
DE60217748T2 (de) Verfahren und Gerät zur Anzeige eines Bildraumes
DE102021114078A1 (de) Detektieren dreidimensionaler Strukturmodelle zur Laufzeit in Fahrzeugen
DE202013012443U1 (de) Zusammenführung dreidimensionaler Modelle auf Basis des Konfidenzmaßes
DE102016008744A1 (de) Bildmessapparat, Regel- bzw. Steuerprogramm eines derartigen Apparats und nicht-flüchtiges Aufzeichnungsmedium, auf welchem das Regel- bzw. Steuerprogramm aufgezeichnet is
DE112021002696T5 (de) Verfahren und apparate zum extrahieren von profilen aus dreidimensionalen bildern
DE102023107476A1 (de) Ultraschall-defekterkennung und klassifikationssystem unter verwendung von maschinellem lernen
DE112021002733T5 (de) Verfahren und Apparate zum Bestimmen von Volumina von 3D-Bildern
DE112019004112T5 (de) System und verfahren zur analyse mikroskopischer bilddaten und zur erzeugung eines annotierten datensatzes zum training der klassifikatoren

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: COGNEX CORPORATION, NATICK, US

Free format text: FORMER OWNER: COGNEX COPRORATION, NATICK, MA, US