DE112021002696T5 - Verfahren und apparate zum extrahieren von profilen aus dreidimensionalen bildern - Google Patents

Verfahren und apparate zum extrahieren von profilen aus dreidimensionalen bildern Download PDF

Info

Publication number
DE112021002696T5
DE112021002696T5 DE112021002696.8T DE112021002696T DE112021002696T5 DE 112021002696 T5 DE112021002696 T5 DE 112021002696T5 DE 112021002696 T DE112021002696 T DE 112021002696T DE 112021002696 T5 DE112021002696 T5 DE 112021002696T5
Authority
DE
Germany
Prior art keywords
points
axis
determining
representative
bins
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
DE112021002696.8T
Other languages
English (en)
Inventor
Hongwei Zhu
Nathaniel Bogan
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
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 DE112021002696T5 publication Critical patent/DE112021002696T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2134Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
    • G06F18/21345Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis enforcing sparsity or involving a domain transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • 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/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

Die hierin beschriebenen Techniken betreffen Verfahren, Apparate und computerlesbare Medien, die zur Bestimmung eines zweidimensionalen (2D) Profils eines Teils einer dreidimensionalen (3D) Punktwolke konfiguriert sind. Eine 3D-Region von Interesse wird bestimmt, die eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst. Die 3D-Punkte innerhalb der 3D-Region von Interesse werden als ein Satz von 2D-Punkten basierend auf den Koordinatenwerten der ersten und zweiten Achse dargestellt. Die 2D-Punkte werden in eine Vielzahl von 2D-Bins gruppiert, die entlang der ersten Achse angeordnet sind. Für jeden 2D-Bin wird eine repräsentative 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten bestimmt. Jede der repräsentativen 2D-Positionen wird mit benachbarten repräsentativen 2D-Positionen verbunden, um das 2D-Profil zu erzeugen.

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,179, mit dem Titel „METHODS AND APPARATUS FOR EXTRACTING PROFILES FROM THREE-DIMENSIONAL IMAGES,“ eingereicht am 11. Mai 2020, die hierin durch Verweis vollständig eingegliedert ist.
  • TECHNISCHES GEBIET
  • Die hierin beschriebenen Techniken betreffen allgemein Verfahren und Apparate für maschinelles Sehen, einschließlich Techniken zum Extrahieren von Profilen aus dreidimensionalen Bildern, und insbesondere Extrahieren von Profilen aus dreidimensionalen Punktwolken in beliebigen Stellungen.
  • 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 Profile aus Punkten in einer 3D-Punktwolke (z. B. von Objektoberflächen) erzeugen. Die Techniken können die Profile in beliebigen Stellungen erzeugen. Gemäß einigen Ausführungsformen wird für die Erzeugung jedes Profils eine Ebene und/oder Region von Interesse, die benutzerdefiniert sein kann, verwendet. Die Region von Interesse kann eine 3D-Region von Interesse sein, so dass 3D-Punkte innerhalb der Region von Interesse zu 2D-Punkten kollabiert, gebinnt und zur Erzeugung des resultierenden Profils verwendet werden können.
  • Einige Aspekte betreffen ein computergestütztes Verfahren zum Bestimmen eines zweidimensionalen (2D) Profils eines Teils einer dreidimensionalen (3D) Punktwolke. Das Verfahren umfasst Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind, und Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst. Das Verfahren umfasst Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst, Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten, und Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst. Das Verfahren umfasst Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten, und Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
  • Gemäß einigen Beispielen umfasst das Verfahren ferner Erzeugen eines Koordinatensystems der 3D-Region umfassend die erste Achse, die zweite Achse und die dritte Achse, wobei ein Ursprung des Koordinatensystems der 3D-Region in der Mitte der Breite und Tiefe der 3D-Region angeordnet ist und die Höhe der 3D-Region am Ursprung beginnt. Das Verfahren kann weiter Abbilden von Punkten aus einem Koordinatensystem der 3D-Punktwolke auf das Koordinatensystem der 3D-Region umfassen.
  • Gemäß einigen Beispielen umfasst das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt. Das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten kann Setzen jedes Wertes der dritten Achse des Satzes von 3D-Punkten auf Null beinhalten. Die Vielzahl von 2D-Bins kann nebeneinander entlang der ersten Achse innerhalb der ersten Dimension der 2D-Ebene angeordnet sein.
  • Gemäß einigen Beispielen umfasst das Bestimmen einer repräsentativen 2D-Position für jedes der Vielzahl von 2D-Bins Bestimmen, dass der Satz der 2D-Punkte in einem oder mehr 2D-Bins der Vielzahl von 2D-Bins kleiner als ein Schwellenwert ist, und Setzen des Satzes von 2D-Punkten des einen oder mehr 2D-Bins auf eine leere Menge.
  • Gemäß einigen Beispielen umfasst das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins.
  • Gemäß einigen Beispielen umfasst das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Auswählen eines 2D-Punktes aus dem assoziierten Satz von 2D-Punkten mit einem maximalen Wert der zweiten Achse als die repräsentative 2D-Position.
  • Gemäß einigen Beispielen umfasst das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins, für jeden 2D-Bin, Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert, Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen, Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst, und Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.
  • Gemäß einigen Beispielen umfasst das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen der repräsentativen 2D-Position nur für 2D-Bins der Vielzahl von 2D-Bins mit nicht leeren Mengen von 2D-Punkten.
  • 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 eines beispielhaften computergestützten Verfahrens zum Bestimmen eines 2D-Profils eines Teils einer 3D-Punktwolke, gemäß einigen Ausführungsformen.
    • 3 ist ein Diagramm, das ein Beispiel einer 3D-Punktwolke zeigt, gemäß einigen Ausführungsformen.
    • 4A ist ein Diagramm, das ein Beispiel einer rechteckigen 3D-Region von Interesse zeigt, gemäß einigen Ausführungsformen.
    • 4B ist ein Diagramm, das die 3D-Punktwolke aus 3 überlagert mit der 3D-Region von Interesse in 4A zeigt, gemäß einigen Ausführungsformen.
    • 5 ist ein Diagramm, das auf eine 2D-Ebene projizierte 3D-Punkte zeigt, gemäß einigen Ausführungsformen.
    • 6 ist ein Diagramm, das die 2D-Ebene aus 5 zeigt, wobei Punkte in der Ebene in Bins quantisiert sind, gemäß einigen Ausführungsformen.
    • 7 ist ein Diagramm, das einen beispielhaften Satz von repräsentativen 2D-Positionen zeigt, bestimmt durch Mitteln der Werte der 2D-Punkte jedes Bins aus 6, gemäß einigen Ausführungsformen.
    • 8 ist ein Diagramm, das einen beispielhaften Satz von repräsentativen 2D-Positionen zeigt, bestimmt durch Auswählen des 2D-Punktes jedes Bins aus 6 mit einem maximalen Z-Wert, gemäß einigen Ausführungsformen.
    • 9 ist ein Diagramm, das einen beispielhaften Satz von repräsentativen 2D-Positionen zeigt, bestimmt durch Clustern der 2D-Punkte aus 6, gemäß einigen Ausführungsformen.
    • 10 zeigt ein Beispiel von Profilresultaten, die aus einer Reihe von schneidenden Rechtecken extrahiert sind, die gleichmäßig entlang der Y-Richtung einer Kastenregion verteilt sind, gemäß einigen Ausführungsformen.
    • 11 zeigt ein Beispiel von Profilresultaten, die aus einer Reihe von schneidenden Rechtecken extrahiert sind, die gleichmäßig entlang der Winkelrichtung eines Frustums verteilt sind, gemäß einigen Ausführungsformen.
    • 12 ist ein Diagramm, das beispielhafte aus einem Profil abgeleitete verschiedene Merkmale zeigt, gemäß einigen Ausführungsformen.
    • 13 ist ein Diagramm, das ein Beispiel einer mittels Eckenmerkmalen extrahierten 3D-Geraden zeigt, die aus einer Sequenz von extrahierten Profilen detektiert werden, gemäß einigen Ausführungsformen.
    • 14 ist ein Diagramm, das ein Beispiel eines durch Überwachung der Variation einer aufeinanderfolgenden Sequenz von extrahierten Profilen detektierten Oberflächendefekts 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. 3D-Punktwolken sind beliebte Darstellungen von zu untersuchenden Objektoberflächen mittels 3D-Punktpositionen. 3D-Punktwolken umfassen jedoch oft Hunderttausende oder Millionen von (x, y, z)-Punkten. Daher haben die Erfinder erkannt, dass direktes Interpretieren einer solch massiven Anzahl von 3D-Punkten im Raum sehr zeit- und ressourcenaufwändig sein kann. Da zum Beispiel 3D-Punktwolken solch massive Anzahlen von 3D-Punkten umfassen und typischerweise keine Informationen über räumliche Beziehungen zwischen 3D-Punkten umfassen, kann der Versuch, eine reine 3D-Punktwolke zu interpretieren, für viele Anwendungen maschinellen Sehens, die begrenzte Zeit zur Durchführung solcher Interpretationen, begrenzte Hardwareressourcen und/oder dergleichen haben können, undurchführbar sein. Daher vernetzen herkömmlichen Verfahren typischerweise die 3D-Punkte zunächst, um Oberflächen entlang der 3D-Punkte zu erzeugen, und führen dann geometrische Operationen basierend auf den vernetzten Oberflächen durch. Jedoch kann die Vernetzung der 3D-Punkte das Durchführen komplexer Operationen erfordern. Darüber hinaus können die resultierenden Netzoberflächen Rauschartefakte enthalten (z. B. aufgrund von verrauschten 3D-Punkten, die nicht entlang der tatsächlichen Oberfläche der abgebildeten Objekte liegen).
  • Die Erfinder haben technologische Verbesserungen für Techniken maschinellen Sehens entwickelt, um diese und andere Effizienzmängel zu adressieren. Die hierin beschriebenen Techniken können Punktwolkenprofile direkt aus 3D-Punktwolken in beliebigen Stellungen extrahieren und eindimensionale (1D) Signale erzeugen (z. B. von Objektoberflächen). Gemäß einigen Ausführungsformen kann jedes 1D-Signal als eine geordnete Folge von 2D-Punkten in einer 2D-Ebene dargestellt werden. Eine 3D-Form, wie etwa eine rechteckige 3D-Form, die basierend auf der 2D-Ebene dimensioniert ist, kann angeben, wie benachbarte 3D-Punkte in der 3D-Punktwolke zur Erstellung des Profils verwendet werden. Die 3D-Punkte innerhalb der 3D-Form können gebinnt und als Cluster von 3D-Punkten verarbeitet werden, um das Rauschen in den 3D-Punkten zu glätten und zu verringern.
  • Gemäß einigen Ausführungsformen können die Techniken Projizieren der 3D-Punkte in der Nähe oder innerhalb der 3D-Form als 2D-Punkte auf die 2D-Ebene und Quantisieren der projizierten 2D-Punkte in Bins umfassen. Repräsentative Positionen können für jeden Bin bestimmt werden, und die repräsentativen Positionen benachbarter Bins können verbunden werden, um Linienzüge zu erzeugen. Da die traditionell massiven Datenmengen in einer 3D-Punktwolke auf eine oder zwei Dimensionen reduziert werden können, können die hierin beschriebenen Techniken die Leistung erheblich verbessern. Die Techniken können in verschiedenen Arten von Punktwolken-basierten Anwendungen eingesetzt werden, einschließlich Merkmalsextraktion, messtechnische Messungen, Fehlerprüfung, bildgesteuerten Robotern und/oder dergleichen.
  • 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).
  • 3D-Sichtsysteme erfassen Bilder von Szenen durch Erzeugen von 3D-Punktwolken der Szene. Wenn ein 3D-Sichtsystem eine Objektoberfläche aus einer bestimmten Richtung betrachtet, werden nur die sichtbaren Oberflächen in der 3D-Punktwolke erfasst, da andere Oberflächen (z. B. Seiten- und/oder Bodenflächen) oft verdeckt sind. Wie hierin beschrieben, ermöglichen die Techniken das Schätzen von 1D-Mannigfaltigkeiten, oder Profilen, von Oberflächen in 3D-Punktwolken. Ein Profil kann zum Beispiel eine oder mehr Oberflächenkurven der Oberfläche eines Objekts in einer Region von Interesse der Punktwolke darstellen.
  • In einigen Ausführungsformen wird ein 3D-Kasten verwendet, um einen Satz von 3D-Punkten in der 3D-Punktwolke zu identifizieren. Die identifizierten 3D-Punkte werden auf 2D-Punkte entlang einer mit dem 3D-Kasten assoziierten 2D-Ebene abgebildet. Die 2D-Punkte können in Bins gruppiert werden, und für jeden Bin kann ein repräsentativer Punkt berechnet werden. Verschiedene Techniken können zum Bestimmen der repräsentativen Punkte der Bins verwendet werden, einschließlich Mitteln der 2D-Positionen, Identifizieren der maximalen 2D-Punkte und/oder Mitteln von Positionen aus qualifizierten Clustern. Die repräsentativen Punkte benachbarter Bins können verbunden werden, um Linienzüge zu bilden. Gemäß einigen Beispielen kann jeder Linienzug durch Verbinden von 2D-Scheitelpunkten gebildet werden, die entlang einer zur Blickrichtung senkrechten Richtung monoton ansteigen.
  • 2 ist ein Flussdiagramm eines beispielhaften computergestützten Verfahrens 200 zum Bestimmen eines 2D-Profils eines Teils einer 3D-Punktwolke, gemäß einigen Ausführungsformen. In Schritt 202 empfängt das System für maschinelles Sehen (z. B. das System für maschinelles Sehen 100 aus 1) eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten. Gemäß einigen Ausführungsformen kann die 3D-Punktwolke ein Voxelgitter, ein 3D-Gitter und/oder dergleichen sein. 3 ist ein Diagramm, das ein Beispiel für eine 3D-Punktwolke 300 gemäß einigen Ausführungsformen zeigt. Zur Veranschaulichung zeigt die 3D-Punktwolke 300 nur eine kleine Anzahl von 3D-Punkten 302A, 302B bis 302N, die zusammen als 3D-Punkte 302 bezeichnet werden. Die 3D-Punktwolke enthält ein Punktwolken-Koordinatensystem 304 mit zugehörigen X-, Y- und Z-Achsen.
  • In Schritt 204 bestimmt das System für maschinelles Sehen eine 3D-Region von Interesse in der 3D-Punktwolke. Die 3D-Region kann eine beliebige 3D-Form haben, wie z. B. einen 3D-Kasten, eine Kugel usw. Gemäß einigen Ausführungsformen umfassen die Techniken das Festlegen einer Schnittebene (z. B. einschließlich einer Projektions-/Abtastrichtung, einer Blickrichtung in der Ebene und/oder einer Region von Interesse, um benachbarte Punkte einzuschränken). Die Schnittebene kann zum Beispiel in Verbindung mit einer Tiefe festgelegt werden, die zur Bestimmung der 3D-Region von Interesse verwendet werden kann.
  • In einigen Ausführungsformen kann die 3D-Region in Bezug auf ein Koordinatensystem der 3D-Region festgelegt werden. Bei einem 3D-Kasten kann die 3D-Region von Interesse zum Beispiel eine Breite entlang einer ersten Achse des Koordinatensystems (z. B. entlang der X-Achse), eine Höhe entlang einer zweiten Achse des Koordinatensystems (z. B. entlang der Z-Achse) und eine Tiefe entlang einer dritten Achse des Koordinatensystems (z. B. entlang der Y-Achse) haben. Gemäß einigen Ausführungsformen können die Techniken das Konstruieren eines geradlinigen Koordinatenraums umfassen, dessen X- und Z-Achse der Breite bzw. Höhe einer rechteckigen Region von Interesse entsprechen und dessen Y-Achse einer Tiefe der rechteckigen Region von Interesse entspricht. Die Region von Interesse kann basierend auf dem Ursprung des Koordinatensystems der 3D-Region festgelegt werden. Um bei dem Beispiel der rechteckigen Region von Interesse zu bleiben, können zum Beispiel die Mittelpunkte der Breite und Tiefe der 3D-Region am Ursprung liegen, und die Höhe der 3D-Region kann am Ursprung beginnen (z. B. so, dass sich der Ursprung in der Mitte einer kurzen Seite der 3D-Region befindet).
  • 4A ist ein Diagramm, das ein Beispiel einer rechteckigen 3D-Region von Interesse 400 gemäß einigen Ausführungsformen zeigt. Die Region von Interesse 400 kann als ein 2D-Rechteck 402 festgelegt werden, das als ein Schnittrechteck für die Region von Interesse bezeichnet werden kann. Die Breite 404 des Rechtecks 402 ist an der X-Richtung des Koordinatensystems der 3D-Region ausgerichtet, und die Höhe 406 des Rechtecks 402 ist an der Z-Richtung des Koordinatensystems ausgerichtet. Ein Kasten 408 wird konstruiert, um die 3D-Region von Interesse für die Identifizierung der benachbarten 3D-Punkte aus der 3D-Punktwolke zu definieren. Der Kasten 408 umfasst eine Vorderseite 410 und eine Rückseite 412, die beide eine parallele Kopie des Schnittrechtecks 402 sind und voneinander durch die Dicke 414 entlang der Normalenrichtung des Rechtecks 402 getrennt sind und jeweils um die Hälfte der Dicke 414 vom Rechteck 402 getrennt sind.
  • Wie in 4A gezeigt, ist das Koordinatensystem 416 der 3D-Region so definiert, dass sein Ursprung in der Mitte der Unterseite des Rechtecks 402 liegt und seine X- bzw. Z-Achse parallel zur Breite bzw. Höhe des Rechtecks 402 sind, während sich die Y-Richtung entlang der Dicke 414 erstreckt. 4B zeigt die 3D-Punktwolke 300 aus 3, überlagert mit der 3D-Region von Interesse 400 von 4A, gemäß einigen Ausführungsformen.
  • Wie hierin beschrieben, kann die 3D-Region von Interesse mit ihrem eigenen Regionskoordinatensystem assoziiert sein, das sich von dem Koordinatensystem der 3D-Punktwolke 304 unterscheiden kann. Gemäß einigen Ausführungsformen können die Techniken die 3D-Punkte aus dem 3D-Punktwolken-Koordinatensystem auf das Regionskoordinatensystem der 3D-Region von Interesse abbilden. Das Durchführen einer solchen Abbildung kann die Projektion jedes 3D-Punktes in die Ebene erhalten, in der die Region von Interesse (z. B. das Rechteck 402) liegt, während jene ausgeschlossen werden, die außerhalb der Region von Interesse liegen. Gemäß einigen Ausführungsformen kann eine starre Transformation verwendet werden, um den 3D-Punktwolken-Koordinatenraum mit dem Koordinatenraum der 3D-Region in Beziehung zu setzen. Ein 3D-Punkt im 3D-Punktwolkenraum „pointPointCloud“ kann mittels der Transformation transformProfileFromPointCloud unter Verwendung von Gleichung 1 in den 3D-Regionskoordinatenraum „Profile“ transformiert werden: pointlnROI = transformProfileFromPointCloud * pointPointCloud
    Figure DE112021002696T5_0001
    wobei:
    * den Kompositionsoperator angibt; und
    pointlnROI ein 3D-Punkt innerhalb der rechteckigen 3D-Region ist und die folgenden drei in Gleichungen 2-4 gezeigten Bedingungen erfüllt: rectSizeX * 0,5 < = pointlnROI .x < = rectSizeX * 0,5
    Figure DE112021002696T5_0002
    0 < = pointlnROI .z und pointlnROI .z < = Thickness * 0,5
    Figure DE112021002696T5_0003
    Thickness * 0,5 < = pointlnROI .y und pointlnROI .y < = Thickness * 0,5
    Figure DE112021002696T5_0004
  • Wobei:
    • rectSizeX die Breite des Rechtecks ist (z. B. Breite 404 in 4A);
    • rectSizeY die Höhe des Rechtecks ist (z. B. Höhe 406 in 4A); und
    • Thickness die Tiefe des Rechtecks ist (z. B. Tiefe 414 in 4A).
  • In Schritt 206 bestimmt das System für maschinelles Sehen die Menge der 3D-Punkte, die sich innerhalb der 3D-Region von Interesse befinden. Gemäß einigen Ausführungsformen bestimmt das System für maschinelles Sehen die 3D-Punkte innerhalb der 3D-Region von Interesse basierend auf einem oder mehr Aspekten der 3D-Region von Interesse. Zum Beispiel kann mit Bezug auf 4B das System für maschinelles Sehen die 3D-Punkte der 3D-Punktwolke, die innerhalb der rechteckigen 3D-Region von Interesse 400 gezeigt wird, bestimmen durch Bestimmen der Punkte innerhalb der Dicke 414 (die z. B. benutzerspezifisch sein kann). Daher ist in diesem Beispiel ein 3D-Punkt innerhalb der Region von Interesse ein Punkt, der einen Abstand von der Ebene 402 hat, der kleiner als die Hälfte der Dicke 414 ist.
  • In Schritt 208 stellt das System für maschinelles Sehen den Satz von 3D-Punkten als einen Satz von 2D-Punkten basierend auf der Koordinatenwerten der designierten ersten und zweiten Achsen des Satzes der 3D-Punkte dar (z. B. können für eine durch (X, Y, Z) dargestellte Koordinatenform die designierten ersten und zweiten Achsen X und Z, Y und Z und/oder dergleichen sein). Gemäß einigen Ausführungsformen wird jeder benachbarte Punkt auf einen 2D-Aspekt der 3D-Region von Interesse projiziert. Gemäß einigen Ausführungsformen können die 3D-Punkte in einer 2D-Ebene dargestellt werden. Gemäß einigen Ausführungsformen können die 3D-Punkte als 2D-Punkte dargestellt werden durch Darstellen der 3D-Punkte mit nur zwei der drei Koordinatenachsenwerte und/oder durch Setzen jedes Wertes einer Achse des Satzes von 3D-Punkten (z. B. die dritte Achse) auf Null.
  • Zum Beispiel können die 3D-Punkte mit Bezug auf 4B auf die Ebene 402 projiziert werden durch Setzen der Y-Komponente jedes 3D-Punktes auf Null, um Punkte in einer Ebene zu erhalten, wie in 5 gezeigt. Wie in 5 gezeigt, wird die erste Dimension der Ebene 402 beibehalten, so dass sie gleich der Breite 404 ist, und die zweite Dimension der Ebene 402 wird ebenfalls beibehalten, so dass sie gleich der Höhe 406 ist, so dass die Ebene 402 die gleichen Dimensionen wie ursprünglich konfiguriert und in den 4A-4B gezeigt beibehält. Die Dimensionen der Ebene 402 können auch in Bezug auf das Koordinatensystem der 3D-Region beibehalten werden. Dementsprechend erstreckt sich, wie in 5 gezeigt, die Breite 404 entlang der X-Achse des Koordinatensystems 416 der 3D-Region und die Höhe 406 entlang der Z-Achse des Koordinatensystems 416 der 3D-Region.
  • In Schritt 210 gruppiert das System für maschinelles Sehen den Satz von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind. Jeder der 2D-Bins hat eine Bin-Breite, und in einigen Ausführungsformen hat jeder der 2D-Bins die gleiche Bin-Breite. Jeder der Vielzahl von 2D-Bins kann nebeneinander entlang der ersten Achse (z. B. entlang der X-Achse) innerhalb der ersten Dimension der 2D-Ebene angeordnet sein.
  • Wenn zum Beispiel die erste Achse die X-Achse ist, dann können die 2D-Punkte in entlang der X-Achse angeordnete Bins gruppiert werden durch Quantisieren ihrer Komponenten mittels Gleichung 5: quantizedPointROI = floor ( pointlROI .x ( ) / BinSize )
    Figure DE112021002696T5_0005
    wobei:
    • pointlnROI ein 3D-Punkt innerhalb der rechteckigen Region ist; und BinSize die Bin-Größe ist.
  • Infolgedessen kann ein belegter Bin einen oder mehr Punkte in einer Ebene enthalten. Daher kann in einigen Ausführungsformen die Position jedes 2D-Punktes in der Ebene dem entsprechenden Bin basierend auf der Grundlage der höchsten ganzen Zahl zugewiesen werden, die nicht größer ist als das Verhältnis: pointInROl.x() / BinSize.
  • 6 ist ein Diagramm, das die Ebene 402 mit in der Ebene liegenden Punkten zeigt, die in Bins quantisiert sind, gemäß einigen Ausführungsformen. Die Ebene 402 umfasst Bins 602A, 602B bis 602N, die zusammen als Bins 602 bezeichnet werden und eine gemeinsame Bin-Größe 604 haben. Zur Veranschaulichung zeigen 4A-4B auch die Bin-Größe 604, um den Bin im 3D-Raum (und die entsprechenden 3D-Punkte, die auf 2D projiziert und dem Bin zugeordnet sind) konzeptionell zu veranschaulichen. Wie dargestellt, können einige Bins 602 keine 3D-Punkte enthalten, wie z. B. Bin 602B.
  • In Schritt 212 bestimmt das System für maschinelles Sehen eine repräsentative 2D-Position (z. B. eine (x,z)-Position) für jeden der 2D-Bins basierend auf den 2D-Punkten in jedem Bin. Gemäß einigen Ausführungsformen können die Techniken einen Schwellenwert verwenden, um zu bestimmen, ob die 2D-Punkte eines bestimmten Bins einbezogen werden sollen (was z. B. einen weiteren Einfluss darauf haben kann, ob der Bin zur Bestimmung eines Teils des Profils verwendet wird). Wenn das System für maschinelles Sehen zum Beispiel feststellt, dass die Anzahl der 2D-Punkte eines oder mehr 2D-Bins unter einem Schwellenwert liegt, kann das System für maschinelles Sehen die 2D-Punkte dieser Bins auf Null setzen, so dass die Bins mit keinen 2D-Punkten assoziiert sind. Wenn zum Beispiel mit Bezug auf 6 die Mindestanzahl von Punkten auf zwei (2) festgelegt wird, kann der Bin 602N aus der nachfolgenden Verarbeitung herausgefiltert werden, da er nur einen 2D-Punkt enthält.
  • Verschiedene Techniken können zur Bestimmung der repräsentativen 2D-Position jedes Bins (z. B. jedes nicht leeren Bins) verwendet werden. Zum Beispiel kann die repräsentative 2D-Position basierend auf einem Durchschnitt, einem Mittelwert, einer Standardabweichung und/oder dergleichen der 2D-Punkte des Bins bestimmt werden. Als ein weiteres Beispiel kann die repräsentative 2D-Position basierend auf einem oder mehr maximalen Punktwerten, minimalen Punktwerten, und/oder dergleichen, der 2D-Punkte des Bins bestimmt werden. Als ein weiteres Beispiel kann die repräsentative 2D-Position bestimmt werden durch Clustern der Punkte eines 2D-Bins und Bestimmen der repräsentativen 2D-Position basierend auf dem Cluster.
  • 7-9 sind Diagramme, die verschiedene Techniken veranschaulichen, die zum Bestimmen der repräsentativen 2D-Positionen verwendet werden können, gemäß einigen Ausführungsformen. Gemäß einigen Ausführungsformen kann der repräsentative 2D-Punkt durch Mitteln der Koordinatenwerte der 2D-Punkte in einem Bin bestimmt werden. 7 ist ein Diagramm, das einen beispielhaften Satz repräsentativer 2D-Positionen 702 zeigt, die durch Mitteln der Werte der 2D-Punkte aus 6 bestimmt wurden, gemäß einigen Ausführungsformen. Zum Beispiel kann das System für maschinelles Sehen so konfiguriert sein, dass ein Durchschnittsmodus ausgeführt wird, der die X- und Z-Werte der 2D-Punkte in jedem Bin 0 bis 9 mittelt, um die repräsentativen 2D-Punkte 702 zu bestimmen, die jeweils einen X-Wert gleich dem Durchschnitt der X-Werte und einen Z-Wert gleich dem Durchschnitt der Z-Werte haben.
  • Als ein weiteres Beispiel können einige Ausführungsformen den 2D-Punkt mit einem maximalen Wert einer Achse (z. B. der zweiten Achse) als die repräsentative 2D-Position auswählen. 8 ist ein Diagramm, das einen beispielhaften Satz repräsentativer 2D-Positionen 802 zeigt, die durch Auswählen des 2D-Punktes jedes Bins aus 6 mit einem maximalen Z-Wert bestimmt wurden, gemäß einigen Ausführungsformen. In diesem Beispiel werden die repräsentativen 2D-Positionen 802 jedes Bins gleich den X- und Z-Werten des 2D-Punktes mit dem maximalen Z-Wert in jedem Bin gesetzt.
  • Als ein weiteres Beispiel können einige Ausführungsformen die 2D-Punkte jedes Bins clustern, um die repräsentative 2D-Position zu bestimmen. Zum Beispiel kann das System für maschinelles Sehen den Satz von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten gruppieren, mit Abständen zwischen den Werten einer Achse der 2D-Punkte (z. B. der Z-Achse) jedes Clusters innerhalb eines Trennschwellenwertes, während die Abstände zwischen den Werten der 2D-Punkte verschiedener Cluster größer als derTrennschwellenwert sind. Das System für maschinelles Sehen kann alle Cluster mit weniger als einer Mindestanzahl von 2D-Punkten entfernen, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen. Das System für maschinelles Sehen kann einen maximalen Cluster der ein oder mehr verbleibenden Cluster bestimmen, indem es ermittelt, welcher der verbleibenden Cluster den 2D-Punkt mit einem maximalen Koordinatenwert (z. B. entlang der zweiten Achse) aufweist. Das System für maschinelles Sehen kann die 2D-Punkte des Clusters mit diesem 2D-Punkt-Durchschnitt mitteln, um die repräsentative 2D-Position zu bestimmen.
  • 9 ist ein Diagramm, das einen beispielhaften Satz repräsentativer 2D-Positionen 902 zeigt, die durch Clustern der 2D-Punkte bestimmt wurden, gemäß einigen Ausführungsformen. Gemäß einigen Ausführungsformen kann der Trennschwellenwert basierend auf der Bin-Größe festgelegt werden. Als ein anschauliches Beispiel werden mit Bezug auf 9 die 2D-Punkte eines Bins basierend auf ihren Z-Komponenten in Clustern gruppiert, so dass: 1) die Z-Abstände zwischen verschiedenen Clustern größer sind als der Trennschwellenwert; und 2) für jeden Cluster der Z-Abstand zwischen einem beliebigen Paar von Z-benachbarten Punkten (nach Z-basierter Sortierung) nicht größer ist als der Trennschwellenwert. Für dieses Beispiel wird der Trennschwellenwert als das Maximum der Dicke der 3D-Region von Interesse und eines Konnektivitätsabstands bestimmt, der bei der Erzeugung der Profillinie verwendet wird (z. B. in Verbindung mit Schritt 214 näher erläutert). Ein Cluster kann als qualifizierter Cluster betrachtet werden, wenn er mindestens eine Mindestschwellenanzahl von Punkten im Bin enthält. Das System für maschinelles Sehen kann den qualifizierten Cluster mit der größten Z-Komponente auswählen. Das System für maschinelles Sehen kann den Durchschnitt der Punkte des ausgewählten qualifizierten Clusters als den repräsentativen Punkt des Bins bestimmen.
  • Wie hierin erwähnt, dienen die Beispiele mit rechteckigen Kästen der Veranschaulichung, sollen aber die hier beschriebenen Techniken nicht einschränken. Andere Ausführungsformen können einen oder mehr Aspekte dieser Beispiele modifizieren, z. B. durch Verwendung anderer Formen, anderer Regionskoordinatensysteme und/oder anderer Anordnungen der 3D-Region in Bezug auf das Regionskoordinatensystem. Die hierin beschriebenen Techniken können daher entsprechend modifiziert werden. Als ein einfaches Beispiel können, wenn das Schnittrechteck in seiner Y-Richtung gespiegelt wird, der Maximum-Modus und der Clustering-Modus minimale Z-Werte/Profile statt maximaler Z-Werte/Profile extrahieren.
  • In Schritt 214 verbindet das System für maschinelles Sehen jede der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen. Gemäß einigen Ausführungsformen können die Techniken die benachbarten repräsentativen 2D-Positionen von belegten Bins, die entlang einer Achse (z. B. der X-Achse) angeordnet sind, miteinander verbinden, um einen oder mehr Linienzüge zu bilden. Zwei belegte Bins können als benachbart angesehen werden, wenn ihre Bins nebeneinander liegen und/oder nur unbesetzte Bins zwischen ihnen existieren. Zwei benachbarte Bins können als zum selben Linienzug gehörig betrachtet werden, wenn der Abstand entlang der ersten Achse (z. B. X-Achse) zwischen ihren repräsentativen 2D-Positionen nicht größer ist als eine bestimmte Konnektivitätsabstandsschwelle. Zum Beispiel kann die Konnektivitätsabstandsschwelle auf mehr als das Doppelte der Bin-Größe festgelegt werden (z. B. so dass Bin 3 und Bin 5 in jedem der in 7-9 gezeigten Beispiele miteinander verbunden werden).
  • In einigen Ausführungsformen, wie etwa bei Bin 4 in 7-9 gezeigt, können einige Bins nicht mit 2D-Punkten belegt sein und/oder die 2D-Punkte in dem Bin können entfernt und/oder ignoriert werden (z. B. wenn nicht genügend 2D-Punkte in dem Bin vorhanden sind). Daher kann es in einigen Ausführungsformen leere Bins oder Lücken zwischen belegten Bins geben. In einigen Ausführungsformen kann das System für maschinelles Sehen so konfiguriert sein, dass es belegte Bins über Lücken hinweg verbindet. Zum Beispiel verbindet das System für maschinelles Sehen die Bins 3 und 5 durch den leeren Bin 4, wie in 7-9 gezeigt. In einigen Ausführungsformen kann das System für maschinelles Sehen einen Schwellenwert für den Lückenabstand verwenden, um zu bestimmen, ob belegte Bins durch leere Bins verbunden werden sollen. Der Schwellenwert kann zum Beispiel bei zwei leeren Bins, drei leeren Bins, fünf leeren Bins usw. liegen. Wenn das System für maschinelles Sehen feststellt, dass die Lücke über dem Schwellenwert liegt, kann das System für maschinelles Sehen so konfiguriert sein, dass es die belegten Bins nicht verbindet (z. B. um zwei separate 2D-Profile zu erstellen), während das System für maschinelles Sehen so konfiguriert sein kann, dass es die belegten Bins verbindet, wenn die Lücke unter dem Schwellenwert liegt (z. B. um das 2D-Profil über die Lücke fortzusetzen).
  • Gemäß einigen Ausführungsformen können die Techniken zum Erzeugen von Profilen entlang von Objekten verwendet werden. Zum Beispiel können die Techniken für einen Kasten gleichmäßig verteilte Schnittrechtecke entlang der Y-Richtung des Kastens erzeugen, wobei jedes Rechteck, das zum Erzeugen eines assoziierten Profils verwendet wird, eine parallele Kopie der vorderen XZ-Fläche des Kastens ist. 10 zeigt ein Beispiel für Profilergebnisse 1000, die aus einer Reihe von Schnittrechtecken extrahiert wurden, die gleichmäßig entlang der Y-Richtung eines Kastenbereichs verteilt sind, gemäß einigen Ausführungsformen. Wie gezeigt, wird für jedes Schnittrechteck ein assoziiertes Profil 1002A bis 1002N entlang der Y-Richtung erzeugt.
  • Als ein weiteres Beispiel können die Techniken gleichmäßig verteilte Schnittebenen oder -rechtecke entlang der Winkelrichtung eines Objekts erzeugen, so dass die Profile radial von der Mitte des Objekts aus angeordnet sind (z. B. so, dass die Profilregionen zylindrisch angeordnet sind). In solchen Beispielen kann jedes Rechteck parallel zur Achse des Objekts liegen und seine innere Y-Seite mit der Achse und der äußeren Y-Seite auf der Oberfläche ausgerichtet sein. Als ein weiteres Beispiel können die Techniken zum Erzeugen von Profilen unter Verwendung eines Satzes beliebiger Rechtecke verwendet werden. 11 zeigt ein Beispiel für Profilergebnisse 1100, die aus einer Reihe von Schnittrechtecken extrahiert wurden, die gleichmäßig entlang der Winkelrichtung eines Frustums verteilt sind, gemäß einigen Ausführungsformen. Wie dargestellt, wird für jedes Schnittrechteck ein assoziiertes Profil 1102A bis 1102N entlang der Winkelrichtung erzeugt.
  • Die hierin beschriebenen Profile können für verschiedene Anwendungen maschinellen Sehens verwendet werden. Jedes Profil kann als eine Darstellung verwendet werden, die eine zusammengefasste Ansicht der Oberflächenpunkte eines Objekts bietet, wie etwa der Oberflächenpunkte, die sich auf oder in der Nähe einer Schnittebene befinden. Die Profile können zum Beispiel zur Messung von Merkmalen, Dimensionen und/oder anderen Aspekten eines erfassten Objekts verwendet werden, wie etwa von Eckpunkten, dem Umfang des Objekts, einer Fläche des Objekts und/oder dergleichen. Als weiteres Beispiel kann eine Reihe von Profilen verwendet werden, um Informationen über das Objekt zu bestimmen, wie etwa 3D-Merkmale (z. B. 3D-Umfangslinien) des Objekts, das Volumen irgendeines und/oder eines Teils des Objekts, Defekte des Objekts und/oder dergleichen. Wie im Diagramm 1200 von 12 gezeigt, können aus einem Profil 1202 verschiedene Merkmale abgeleitet werden, einschließlich in diesem Beispiel der Eckpositionen 1206A bis 1206N (z. B. mit großen Neigungsänderungen auf beiden Seiten bestimmt), Extrempositionen 1204A und 1204B (z. B. mit maximalen oder minimalen X- oder Z-Positionen), linearer Segmente 1208A bis 1208N und Kreisabschnitte 1210. Solche abgeleiteten Merkmale können für 3D-Sicht-Anwendungen, wie etwa Inspektionsanwendungen, nützlich sein. 13 ist ein Diagramm 1300 eines Beispiels einer 3D-Geraden 1306, die durch Geradenanpassung an die Eckmerkmale 1304A bis 1304N extrahiert wird, die aus einer Sequenz von assoziierten extrahierten Profilen 1302A bis 1302N detektiert wurden. Unter Berücksichtigung der Fläche jedes Profils auf seiner Schnittebene und der Dicke des Schnitts können die Techniken auch das von der Oberfläche bedeckte Volumen schätzen. 14 ist ein Diagramm, das ein Anwendungsbeispiel für die Erkennung von Oberflächendefekten 1404 durch Überwachen der Veränderung einer aufeinanderfolgenden Folge von Profilen 1402A bis 1402N zeigt.
  • 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 Bestimmen eines zweidimensionalen (2D) Profils eines Teils einer dreidimensionalen (3D) Punktwolke, das Verfahren umfassend:
      • Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind;
      • Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst;
      • Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst;
      • Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten;
      • Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst;
      • Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten; und
      • Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
    2. 2. Das Verfahren aus 1, weiter umfassend:
      • Erzeugen eines Koordinatensystems der 3D-Region umfassend die erste Achse, die zweite Achse und die dritte Achse, wobei ein Ursprung des Koordinatensystems der 3D-Region in der Mitte der Breite und Tiefe der 3D-Region angeordnet ist und die Höhe der 3D-Region am Ursprung beginnt.
    3. 3. Das Verfahren aus 2, weiter umfassend Abbilden von Punkten aus einem Koordinatensystem der 3D-Punktwolke auf das Koordinatensystem der 3D-Region.
    4. 4. Das Verfahren aus 1-3, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe umfasst, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt.
    5. 5. Das Verfahren aus 4, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Setzen jedes Wertes der dritten Achse des Satzes von 3D-Punkten auf Null umfasst.
    6. 6. Das Verfahren aus 4, wobei die Vielzahl von 2D-Bins nebeneinander entlang der ersten Achse innerhalb der ersten Dimension der 2D-Ebene angeordnet sind.
    7. 7. Das Verfahren aus 1-6, wobei das Bestimmen einer repräsentativen 2D-Position für jedes der Vielzahl von 2D-Bins Folgendes umfasst:
      • Bestimmen, dass der Satz der 2D-Punkte in einem oder mehr 2D-Bins der Vielzahl von 2D-Bins kleiner als ein Schwellenwert ist; und Setzen des Satzes von 2D-Punkten des einen oder mehr 2D-Bins auf eine leere Menge.
    8. 8. Das Verfahren aus 1-7, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins umfasst.
    9. 9. Das Verfahren aus 1-8, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Auswählen eines 2D-Punktes aus dem assoziierten Satz von 2D-Punkten mit einem maximalen Wert der zweiten Achse als die repräsentative 2D-Position umfasst.
    10. 10. Das Verfahren aus 1-9, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins für jeden 2D-Bin Folgendes umfasst:
      • Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert;
      • Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen;
      • Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst; und
      • Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.
    11. 11. Das Verfahren aus 1-10, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen der repräsentativen 2D-Position nur für 2D-Bins der Vielzahl von 2D-Bins mit nicht leeren Mengen von 2D-Punkten umfasst.
    12. 12. Ein nichtflüchtiges computerlesbares Medium umfassend Anweisungen, die, wenn durch einen oder mehr Prozessoren in einer Rechenvorrichtung ausgeführt, fähig sind, den einen oder mehr Prozessoren zu veranlassen, ein zweidimensionales (2D) Profil eines Teils einer dreidimensionalen (3D) Punktwolke zu bestimmen, umfassend:
      • Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind;
      • Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst;
      • Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst;
      • Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten;
      • Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst;
      • Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten; und
      • Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
    13. 13. Das nichtflüchtige computerlesbare Medium aus 12, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe umfasst, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt.
    14. 14. Das nichtflüchtige computerlesbare Medium aus 12-13, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins umfasst.
    15. 15. Das nichtflüchtige computerlesbare Medium aus 12-14, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Auswählen eines 2D-Punktes aus dem assoziierten Satz von 2D-Punkten mit einem maximalen Wert der zweiten Achse als die repräsentative 2D-Position umfasst.
    16. 16. Das nichtflüchtige computerlesbare Medium aus 12-15, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins für jeden 2D-Bin Folgendes umfasst:
      • Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert;
      • Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen;
      • Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst; und
      • Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.
    17. 17. Ein System umfassend einen Speicher, der Anweisungen speichert, und mindestens einen Prozessor, der konfiguriert ist, die Anweisungen auszuführen, um Folgendes durchzuführen:
      • Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind;
      • Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst;
      • Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst;
      • Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten;
      • Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst;
      • Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten; und
      • Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
    18. 18. Das System aus 17, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe umfasst, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt.
    19. 19. Das System aus 17-18, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins umfasst.
    20. 20. Das System aus 17-19, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins für jeden 2D-Bin Folgendes umfasst:
      • Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert;
      • Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen;
      • Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst; und
      • Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.

Claims (20)

  1. Ein computergestütztes Verfahren zum Bestimmen eines zweidimensionalen (2D) Profils eines Teils einer dreidimensionalen (3D) Punktwolke, das Verfahren umfassend: Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind; Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst; Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst; Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten; Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst; Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten; und Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
  2. Das Verfahren aus Anspruch 1, weiter umfassend: Erzeugen eines Koordinatensystems der 3D-Region umfassend die erste Achse, die zweite Achse und die dritte Achse, wobei ein Ursprung des Koordinatensystems der 3D-Region in der Mitte der Breite und Tiefe der 3D-Region angeordnet ist und die Höhe der 3D-Region am Ursprung beginnt.
  3. Das Verfahren aus Anspruch 2, weiter umfassend Abbilden von Punkten aus einem Koordinatensystem der 3D-Punktwolke auf das Koordinatensystem der 3D-Region.
  4. Das Verfahren aus Anspruch 1, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe umfasst, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt.
  5. Das Verfahren aus Anspruch 4, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Setzen jedes Wertes der dritten Achse des Satzes von 3D-Punkten auf Null umfasst.
  6. Das Verfahren aus Anspruch 4, wobei die Vielzahl von 2D-Bins nebeneinander entlang der ersten Achse innerhalb der ersten Dimension der 2D-Ebene angeordnet sind.
  7. Das Verfahren aus Anspruch 1, wobei das Bestimmen einer repräsentativen 2D-Position für jedes der Vielzahl von 2D-Bins Folgendes umfasst: Bestimmen, dass der Satz der 2D-Punkte in einem oder mehr 2D-Bins der Vielzahl von 2D-Bins kleiner als ein Schwellenwert ist; und Setzen des Satzes von 2D-Punkten des einen oder mehr 2D-Bins auf eine leere Menge.
  8. Das Verfahren aus Anspruch 1, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins umfasst.
  9. Das Verfahren aus Anspruch 1, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Auswählen eines 2D-Punktes aus dem assoziierten Satz von 2D-Punkten mit einem maximalen Wert der zweiten Achse als die repräsentative 2D-Position umfasst.
  10. Das Verfahren aus Anspruch 1, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins für jeden 2D-Bin Folgendes umfasst: Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert; Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen; Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst; und Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.
  11. Das Verfahren aus Anspruch 1, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen der repräsentativen 2D-Position nur für 2D-Bins der Vielzahl von 2D-Bins mit nicht leeren Mengen von 2D-Punkten umfasst.
  12. Ein nichtflüchtiges computerlesbares Medium umfassend Anweisungen, die, wenn durch einen oder mehr Prozessoren in einer Rechenvorrichtung ausgeführt, fähig sind, den einen oder mehr Prozessoren zu veranlassen, ein zweidimensionales (2D) Profil eines Teils einer dreidimensionalen (3D) Punktwolke zu bestimmen, umfassend: Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind; Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst; Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst; Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten; Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst; Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten; und Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
  13. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe umfasst, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt.
  14. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins umfasst.
  15. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Auswählen eines 2D-Punktes aus dem assoziierten Satz von 2D-Punkten mit einem maximalen Wert der zweiten Achse als die repräsentative 2D-Position umfasst.
  16. Das nichtflüchtige computerlesbare Medium aus Anspruch 12, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins für jeden 2D-Bin Folgendes umfasst: Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert; Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen; Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst; und Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.
  17. Ein System umfassend einen Speicher, der Anweisungen speichert, und mindestens einen Prozessor, der konfiguriert ist, die Anweisungen auszuführen, um Folgendes durchzuführen: Empfangen von Daten, die für eine 3D-Punktwolke umfassend eine Vielzahl von 3D-Punkten bezeichnend sind; Bestimmen einer 3D-Region von Interesse in der 3D-Punktwolke, wobei die 3D-Region von Interesse eine Breite entlang einer ersten Achse, eine Höhe entlang einer zweiten Achse und eine Tiefe entlang einer dritten Achse umfasst; Bestimmen eines Satzes von 3D-Punkten in der Vielzahl von 3D-Punkten, von denen jeder eine 3D-Position innerhalb der 3D-Region von Interesse umfasst; Darstellen des Satzes von 3D-Punkten als einen Satz von 2D-Punkten basierend auf Koordinatenwerten der ersten und zweiten Achsen des Satzes von 3D-Punkten; Gruppieren des Satzes von 2D-Punkten in eine Vielzahl von 2D-Bins, die entlang der ersten Achse angeordnet sind, wobei jeder 2D-Bin eine Bin-Breite umfasst; Bestimmen, für jeden der Vielzahl von 2D-Bins, einer repräsentativen 2D-Position basierend auf dem assoziierten Satz von 2D-Punkten; und Verbinden jeder der repräsentativen 2D-Positionen mit benachbarten repräsentativen 2D-Positionen, um das 2D-Profil zu erzeugen.
  18. Das System aus Anspruch 17, wobei das Darstellen des Satzes von 3D-Punkten als den Satz von 2D-Punkten Darstellen der 3D-Punkte in einer 2D-Ebene umfassend eine erste Dimension gleich der Breite und eine zweite Dimension gleich der Höhe umfasst, wobei sich die erste Dimension entlang der ersten Achse und die zweite Dimension entlang der zweiten Achse erstreckt.
  19. Das System aus Anspruch 17, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins Bestimmen eines Durchschnitts des Satzes von 2D-Punkten jedes Bins umfasst.
  20. Das System aus Anspruch 17, wobei das Bestimmen der repräsentativen 2D-Position für jeden der Vielzahl von 2D-Bins für jeden 2D-Bin Folgendes umfasst: Gruppieren des Satzes von 2D-Punkten in ein oder mehr Cluster von 2D-Punkten mit Abständen zwischen Werten der zweiten Achse der 2D-Punkte jedes Clusters innerhalb eines Trennschwellenwerts, wobei Abstände zwischen den Werten der zweiten Achse der 2D-Punkte verschiedener Cluster größer sind als der Trennschwellenwert; Entfernen jeglicher Cluster mit weniger als einer minimalen Schwellenanzahl von 2D-Punkten, um einen verbleibenden Satz von einem oder mehr Clustern zu erzeugen; Bestimmen eines maximalen Clusters der ein oder mehr verbleibenden Clustern, umfassend Bestimmen, welcher von den ein oder mehr verbleibenden Clustern einen 2D-Punkt mit einer maximalen Koordinate entlang der zweiten Achse umfasst; und Mitteln der 2D-Punkte des maximalen Clusters, um die repräsentative 2D-Position zu bestimmen.
DE112021002696.8T 2020-05-11 2021-05-10 Verfahren und apparate zum extrahieren von profilen aus dreidimensionalen bildern Pending DE112021002696T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063023179P 2020-05-11 2020-05-11
US63/023,179 2020-05-11
PCT/US2021/031503 WO2021231254A1 (en) 2020-05-11 2021-05-10 Methods and apparatus for extracting profiles from three-dimensional images

Publications (1)

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

Family

ID=76217920

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112021002696.8T Pending DE112021002696T5 (de) 2020-05-11 2021-05-10 Verfahren und apparate zum extrahieren von profilen aus dreidimensionalen bildern

Country Status (6)

Country Link
US (1) US11893744B2 (de)
JP (1) JP2023525534A (de)
KR (1) KR20230050268A (de)
CN (1) CN116830155A (de)
DE (1) DE112021002696T5 (de)
WO (1) WO2021231254A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116704125B (zh) * 2023-06-02 2024-05-17 深圳市宗匠科技有限公司 一种基于三维点云的映射方法、装置、芯片及模组设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411966B1 (de) * 1989-08-04 1994-11-02 Canon Kabushiki Kaisha Verfahren und Vorrichtung zur Positionsbestimmung
US6992773B1 (en) * 1999-08-30 2006-01-31 Advanced Micro Devices, Inc. Dual-differential interferometry for silicon device damage detection
JP2004062980A (ja) * 2002-07-29 2004-02-26 Toyota Gakuen 磁性合金、磁気記録媒体、および磁気記録再生装置
US20090232388A1 (en) * 2008-03-12 2009-09-17 Harris Corporation Registration of 3d point cloud data by creation of filtered density images
US20110310088A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Personalized navigation through virtual 3d environments
TWI528329B (zh) * 2011-11-01 2016-04-01 鴻海精密工業股份有限公司 產品輪廓影像分析系統及方法
US8670591B2 (en) * 2012-03-01 2014-03-11 Exelis, Inc. Foliage penetration based on 4D LIDAR datasets
EP2674913B1 (de) * 2012-06-14 2014-07-23 Softkinetic Software Modellierungsanpassung und -verfolgung für dreidimensionales Objekt
US9836871B2 (en) * 2012-08-02 2017-12-05 Here Global B.V. Three-dimentional plane panorama creation through hough-based line detection
US9536339B1 (en) * 2013-06-13 2017-01-03 Amazon Technologies, Inc. Processing unordered point cloud
CA2924156A1 (en) * 2013-09-17 2015-03-26 Societe Des Arts Technologiques Method, system and apparatus for capture-based immersive telepresence in virtual environment
US11340345B2 (en) * 2015-07-17 2022-05-24 Origin Wireless, Inc. Method, apparatus, and system for wireless object tracking
US10699444B2 (en) * 2017-11-22 2020-06-30 Apple Inc Point cloud occupancy map compression
TWI651686B (zh) * 2017-11-30 2019-02-21 國家中山科學研究院 一種光學雷達行人偵測方法
GB2569654B (en) * 2017-12-22 2022-09-07 Sportlight Tech Ltd Apparatusses, systems and methods for object tracking
US11151734B2 (en) * 2018-09-14 2021-10-19 Huawei Technologies Co., Ltd. Method and system for generating synthetic point cloud data using a generative model
US20200191971A1 (en) * 2018-12-17 2020-06-18 National Chung-Shan Institute Of Science And Technology Method and System for Vehicle Detection Using LIDAR
US11532168B2 (en) * 2019-11-15 2022-12-20 Nvidia Corporation Multi-view deep neural network for LiDAR perception
WO2021113810A1 (en) * 2019-12-06 2021-06-10 Mashgin, Inc. System and method for identifying items
WO2021118809A1 (en) * 2019-12-11 2021-06-17 Nvidia Corporation Surface profile estimation and bump detection for autonomous machine applications

Also Published As

Publication number Publication date
WO2021231254A1 (en) 2021-11-18
CN116830155A (zh) 2023-09-29
US11893744B2 (en) 2024-02-06
KR20230050268A (ko) 2023-04-14
US20210350615A1 (en) 2021-11-11
JP2023525534A (ja) 2023-06-16

Similar Documents

Publication Publication Date Title
DE112021002702T5 (de) Verfahren und apparate zum identifizieren von oberflächenmerkmalen in dreidimensionalen bildern
DE10392705B4 (de) Verfahren zur Musterprüfung
DE60310226T2 (de) Verfahren zur linearen raumabtastung und vorrichtung zur erzeugung eines numerischen 3d modells
DE102016100101A1 (de) System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
DE102014211948A1 (de) System und Verfahren zur selektiven Bestimmung von Punktwolken
WO2020157249A1 (de) Verarbeitung von bilddatensätzen
DE102015107872A1 (de) Neu beleuchtbare Textur zur Verwendung beim Rendern eines Bildes
EP3688725B1 (de) Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts
DE112013000627T5 (de) Segmentierung zur Waferinspektion
DE102017102952A1 (de) Eine Vorrichtung zum Erzeugen eines dreidimensionalen Farbbildes und ein Verfahren zum Produzieren eines dreidimensionalen Farbbildes
CN107004256A (zh) 用于噪声深度或视差图像的实时自适应滤波的方法和装置
DE112017008101T5 (de) Autonome roboter und verfahren zum betreiben derselben
DE102016100134B4 (de) Verfahren und Vorrichtung zum Untersuchen eines Objekts unter Verwendung von maschinellem Sehen
DE102008050049A1 (de) Verfahren zur Bestimmung einer die Objektgrenze eines Objekts in einem digitalen 3D-Datensatz annähernden 3D-Oberfläche
DE202013012443U1 (de) Zusammenführung dreidimensionaler Modelle auf Basis des Konfidenzmaßes
DE102020123979A1 (de) Defekterkennung für Halbleiterstrukturen auf einem Wafer
DE102023124813A1 (de) Modifizieren von zweidimensionalen bildern unter verwendung von iterativen dreidimensionalen netzen der zweidimensionalen bilder
DE102023124805A1 (de) Modifizieren von zweidimensionalen bildern unter verwendung von segmentierten dreidimensionalen objektnetzen der zweidimensionalen bilder
DE112021002696T5 (de) Verfahren und apparate zum extrahieren von profilen aus dreidimensionalen bildern
DE102022102459A1 (de) Systeme und verfahren zur bildbasierten erkennung von elektrischen verbinderbaugruppen
DE102016008744A1 (de) Bildmessapparat, Regel- bzw. Steuerprogramm eines derartigen Apparats und nicht-flüchtiges Aufzeichnungsmedium, auf welchem das Regel- bzw. Steuerprogramm aufgezeichnet is
DE102023124586A1 (de) Erzeugen von adaptiven dreidimensionalen netzen von zweidimensionalen bildern
DE102020207974A1 (de) Systeme und verfahren zum nachweis von bewegung während 3d-datenrekonstruktion
DE102023107476A1 (de) Ultraschall-defekterkennung und klassifikationssystem unter verwendung von maschinellem lernen