DE102017116952A1 - System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten - Google Patents

System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten Download PDF

Info

Publication number
DE102017116952A1
DE102017116952A1 DE102017116952.0A DE102017116952A DE102017116952A1 DE 102017116952 A1 DE102017116952 A1 DE 102017116952A1 DE 102017116952 A DE102017116952 A DE 102017116952A DE 102017116952 A1 DE102017116952 A1 DE 102017116952A1
Authority
DE
Germany
Prior art keywords
point cloud
points
point
camera
visibility
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
DE102017116952.0A
Other languages
English (en)
Inventor
David J. Michael
Aaron S. Wallack
Andrew Hoelscher
Adam Wagman
Hongjun Jia
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 DE102017116952A1 publication Critical patent/DE102017116952A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/38Registration of image sequences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • 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
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • G06T7/344Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • 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/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Abstract

Diese Erfindung stellt ein System und Verfahren zum Schätzen einer Übereinstimmung einer 3D-Ausrichtungslage einer Laufzeit-3D-Punktwolke bezogen auf eine trainierte Modell-3D-Punktwolke bereit. Es schließt Scoring einer Übereinstimmung einer in Frage kommenden Lage der Laufzeit-3D-Wolke bezogen auf die trainierte Modell-3D-Punktwolke ein, einschließlich einer Sichtbarkeitsprüfung, die Folgendes umfasst: (a) Empfangen eines optischen Zentrums einer 3D-Kamera; (b) Empfangen der trainierten Modell-3D-Punktwolke; (c) Empfangen der Laufzeit-3D-Punktwolke; und (d) Konstruieren einer Vielzahl von Liniensegmenten von dem optischen Zentrum zu einer Vielzahl von 3D-Punkten in der 3D-Punktwolke an der in Frage kommenden Laufzeitlage. Ein System und Verfahren zum Bestimmen einer genauen Darstellung eines in 3D abgebildeten Gegenstands durch Weglassen von Störpunkten aus einer zusammengesetzten Punktwolke auf Grundlage des Vorhandenseins oder Nichtvorhandenseins solcher Punkte in einer gegebenen Anzahl von Punktwolken sind ebenfalls bereitgestellt.

Description

  • VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht den Nutzen der parallel anhängigen US-Anmeldung mit der Seriennummer 62/369,709 mit dem Titel SYSTEM AND METHOD FOR IMPROVED SCORING OF 3D POSES IN THE PRESENCE OF PARTIAL VIEWS AND SELF-OCCLUSIONS IN A VISION SYSTEM, eingereicht am 01.08.2016, deren Lehren hierin durch Bezugnahme aufgenommen sind.
  • GEGENSTAND DER ERFINDUNG
  • Diese Erfindung betrifft Systeme maschinellen Sehens und insbesondere Sehsysteme, die dreidimensionale Bildmerkmale (3D-Bildmerkmale) in Bezug auf ein trainiertes 3D-Muster identifizieren und ausrichten.
  • ALLGEMEINER STAND DER TECHNIK
  • Systeme maschinellen Sehens, die hierin auch als „Sehsysteme” bezeichnet werden, werden verwendet, um eine Vielfalt von Aufgaben in einer Herstellungsumgebung durchzuführen. Im Allgemeinen besteht ein Sehsystem aus einer oder mehreren Kamerabaugruppen mit einem Bildsensor (oder „Bildgeber”), der Graustufen- oder Farbbilder einer Szene erfasst, die einen Gegenstand enthält, der gerade hergestellt wird. Die Bilder des Gegenstands können analysiert werden, um Benutzern und zugeordneten Herstellungsverfahren Daten/Informationen bereitzustellen. Die durch die Kamera erzeugten Daten werden üblicherweise durch das Sehsystem in einem oder mehreren Sehsystemprozessoren analysiert und verarbeitet, die speziell entwickelt oder Teil von einer oder mehreren Softwareanwendungen sein können, die in einem Universalcomputer (z. B. einem PC, Laptop, Tablet oder Smartphone) instanziiert sind.
  • Übliche Sehsystemaufgaben umfassen Ausrichten und Prüfen. Bei einer Ausrichtungsaufgabe vergleichen Sehsystemwerkzeuge, wie etwa das hinreichend bekannte PatMax®-System, das im Handel von der Cognex Corporation, Natick, MA, USA, erhältlich ist, Merkmale eines zweidimensionalen Bildes (2D-Bildes) einer Szene mit einem (unter Verwendung eines tatsächlichen oder synthetischen Modells) trainierten 2D-Muster und bestimmen die Anwesenheit/Abwesenheit und Lage des 2D-Musters in der in 2D abgebildeten Szene. Diese Informationen können bei nachfolgenden Prüfvorgängen (oder anderen Vorgängen) verwendet werden, um Defekte aufzuspüren, und/oder andere Vorgänge durchzuführen, wie etwa die Teileabstoßung.
  • Eine besondere Aufgabe, bei der Sehsysteme genutzt werden, besteht in der Ausrichtung einer dreidimensionalen Zielform (3D-Zielform) während der Laufzeit auf Grundlage einer trainierten 3D-Modellform. 3D-Kameras können auf einer Vielfalt von Technologien basieren – zum Beispiel auf einem Laser-Abstandssensor (Profiler), einer Stereokamera, einer Sonar-, Laser- oder LIDAR-Abstandsmessungskamera, einem Time-of-Flight-Sensor und einer Vielfalt von weiteren passiven oder aktiven Abstandserfassungstechnologien. Solche Kameras erzeugen ein Bereichsbild, in dem ein Bildpixelfeld (üblicherweise als Positionen entlang orthogonaler x- und y-Achsen gekennzeichnet) erzeugt wird, das außerdem eine dritte (Höhen-)Dimension für jeden Pixel (üblicherweise entlang einer z-Achse gekennzeichnet, die senkrecht zu der x-y-Ebene liegt) enthält. Alternativ können solche Kameras eine Punktwolkendarstellung eines abgebildeten Gegenstands generieren. Bei einer Punktwolke handelt es sich um eine Ansammlung von 3D-Punkten im Raum, wobei jeder Punkt i als (Xi, Yi, Zi) dargestellt werden kann. Eine Punktwolke kann einen vollständigen 3D-Gegenstand darstellen, einschließlich der Rückseite, Seiten, Ober- und Unterseite des Gegenstands. 3D-Punkte (Xi, Yi, Zi) stellen Orte im Raum dar, an denen der Gegenstand für die Kamera sichtbar ist. In dieser Darstellung wird leerer Raum durch die Abwesenheit von Punkten dargestellt.
  • Zum Vergleich ist eine 3D-Bereichsbilddarstellung Z(x, y) analog zu einer 2D-Bilddarstellung I(x, y), wobei die Tiefe oder Höhe Z das ersetzt, was der Helligkeit/Intensität I an einem Ort x, y in einem Bild entsprechen würde. Ein Bereichsbild stellt ausschließlich die Vorderseite eines Gegenstands dar, die direkt in Richtung einer Kamera ausgerichtet ist, da jedem Punktort x, y lediglich eine einzige Tiefe zugeordnet ist. Ein Bereichsbild ist eine dichte Darstellung, die jedoch darstellen kann, dass eine (x, y) Stelle nicht durch die Kamera beobachtet wird. Es ist möglich, ein Bereichsbild auf eine Weise in eine 3D-Punktwolke umzuwandeln, die für einen Fachmann nachvollziehbar ist.
  • Bei dem Ausrichten eines Zielbildes, das entweder erfasst oder durch ein synthetisches Verfahren (z. B. ein CAD-Verfahren) generiert wurde, an ein Modellbild (ebenfalls entweder erfasst oder synthetisch) beinhaltet ein Ansatz das Anpassen/Vergleichen von einer 3D-Punktwolke in dem Ziel mit einem in dem Modell, mit dem Ziel, die beste übereinstimmende Lage zu finden. Das Vergleichen kann die Verwendung von einem oder mehreren 3D-Ausrichtungsalgorithmen einschließen, die eine Metrik zum Scoring der Abdeckung des Ziels in Bezug auf das Modell verwenden. Für einen beliebigen 3D-Ausrichtungsalgorithmus gibt es Fälle, in denen das trainierte Modell aus einer größeren (oder vollständigeren) Ansicht des Teils besteht als das, was während der Laufzeit gesehen wird – z. B. kann sich ein Abschnitt des Laufzeitgegenstandbildes außerhalb des Betrachtungsfeldes befinden oder anderweitig – zum Beispiel aufgrund von Selbstverdeckung – abgeschnitten sein. Gleichermaßen gibt es Fälle, in denen die Laufzeitszene mehr Informationen enthält als das Modell. Wenn zum Beispiel sowohl das Modell als auch die Laufzeitszene (von einem entsprechenden Gegenstand) unter Verwendung einer einzigen Kamera erfasst wurde, der Gegenstand jedoch in jeder Version in unterschiedlichen Ausrichtungen dargestellt wird, kann die Laufzeitszene Bereiche des Teils enthalten, die in dem Modell nicht vorhanden sind, und umgekehrt. Wenn diese Szenarien in der Ausrichtungsscoringmetrik nicht berücksichtigt werden, kann hierdurch ein niedrigerer Score berechnet werden als die Übereinstimmung tatsächlich rechtfertigt und die in Frage kommende Lage kann abgelehnt werden. Allgemeiner ausgedrückt besteht diese Problematik in einer beliebigen Anwendung, in der eine Phase der Lösung darin besteht, einen Gegenstand mit entscheidender Selbstverdeckung auszurichten, oder in der mehrere Bilder während der Trainingszeit verschmolzen werden, um eine vollständige 360-Grad-Ansicht des Gegenstands zu erhalten, jedoch lediglich ein erfasstes Bild des Gegenstands während der Laufzeit verwendet wird, um die Ausrichtung durchzuführen. Des Weiteren können sich entweder einige der Laufzeit- oder Trainingszeitgegenstandbild(er) außerhalb der Einheit des Arbeitsbereichs (Betrachtungsfeld) des Bildsensors befinden. Diese Bedingungen können sich auf die Anwendung des 3D-Ausrichtungsalgorithmus und dessen Ergebnisse auf viele Arten auswirken.
  • Eine weitere Problematik von 3D-Sehsystemverfahren besteht darin, dass ein 3D-Bildsensor, wenn er eine Messung von einem Gegenstand erfasst, üblicherweise lediglich den Abschnitt des Gegenstands misst, der dem Sensor zugewandt ist und der Sensor demnach lediglich den Abschnitt des Gegenstands erfasst, der sich in dem Messbereich des Sensors befindet. Manchmal schließen die 3D-Daten Fehlmessungen bzw. inkorrekte Messungen ein (möglicherweise aufgrund von Interreflexion). Diese inkorrekten Daten bzw. Stördaten können die Effizienz und Genauigkeit des Messverfahrens beeinflussen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Diese Erfindung überwindet Nachteile des Stands der Technik durch Bereitstellen eines Systems und Verfahrens zum Erhöhen der Leistung (Finden des richtigen Ausrichtungsergebnisses (der richtigen Ausrichtungsergebnisse)) einer 3D-Ausrichtung von Gegenständen während der Laufzeit, wobei diese Gegenstände in dem erfassten Laufzeitbild, in Form einer 3D-Punktwolke, teilweise verdeckt sind. Die durch die Kameraanordnung (d. h. eine oder mehrere 3D-Kameras) erzeugten 3D-Punktwolkeninformationen schließen den Ort des (durch die Produktionskalibrierung erworbenen) optischen Zentrums der Kamera ein, sodass ein Liniensegment, das einen Abfragepunkt mit der Kamera verbindet, bekannt ist. Ein Abfragepunkt kann somit wie folgt eingestuft werden: (1) vollständig sichtbar, wobei sich der Punkt innerhalb der Einheit des Arbeitsbereichs der Kamera(s) in der Kameraanordnung befindet und kein anderer Punkt in der Szene vorhanden ist, der das Erfassungssystem davon abhält, diesen Punkt zu beobachten; (2) verdeckt, wobei sich der Punkt innerhalb der Einheit des Arbeitsbereichs der Kameraanordnung befindet, jedoch ein anderer Punkt in der Szene Die Beobachtung durch das Erfassungssystem blockiert; und (3) außerhalb des Arbeitsbereichs, wobei sich der Punkt außerhalb der Einheit des Arbeitsbereichs der bestimmten Kameras befindet, sodass das Erfassungssystem diesen Punkt unabhängig von dem Rest der Szene nicht beobachten konnte. Das Scoring an einer 3D-Punktwolke, um eine Übereinstimmung zu bestimmen, kann durchgeführt werden, indem lediglich die vollständig sichtbaren Punkte berücksichtigt werden oder lediglich die vollständig sichtbaren Punkte und Punkte außerhalb des Arbeitsbereichs der zugeordneten Kamera berücksichtigt werden. Diese Auswahl kann durch den Benutzer, abhängig von der Anwendung, getroffen werden. Die Identifizierung von verdeckten Arbeitspunkten oder vollständig sichtbaren Arbeitspunkten ermöglicht es dem System, den Abdeckungsscore eines 3D-Ausrichtungsalgorithmus auf Grundlage einer Sichtbarkeitsprüfung/-anpassung zu modifizieren, wobei bestimmte Punkte aus dem Scoring-Algorithmus ausgeschlossen werden.
  • In einer beispielhaften Ausführungsform werden ein System und Verfahren in einem Sehsystem zum Schätzen eines Übereinstimmungsgrads einer 3D-Ausrichtungslage einer Laufzeit-3D-Punktwolke in Bezug auf eine trainierte Modell-3D-Punktwolke bereitgestellt. Das System und Verfahren schließen Scoring einer Übereinstimmung einer in Frage kommenden Lage der Laufzeit-3D-Punktwolke bezogen auf die trainierte Modell-3D-Punktwolke mit einem Sehsystemprozessor ein, einschließlich Bereitstellung einer Sichtbarkeitsprüfung. Die Sichtbarkeitsprüfung umfasst Folgendes: (a) Empfangen eines optischen Zentrums einer 3D-Kamera; (b) Empfangen der trainierten Modell-3D-Punktwolke; (c) Empfangen der Laufzeit-3D-Punktwolke; und (d) Konstruieren einer Vielzahl von Liniensegmenten von dem optischen Zentrum zu einer Vielzahl von 3D-Punkten in der trainierten Modell-3D-Punktwolke oder der Laufzeit-3D-Punktwolke an der in Frage kommenden Laufzeitlage. Das System und Verfahren bestimmen dadurch auf Grundlage eines Orts der 3D-Punkte entlang entsprechenden Liniensegmenten, ob die 3D-Punkte bei dem Scoring ausgeschlossen oder eingeschlossen werden sollen. Beispielhaft, kann das Scoring zumindest eines von Folgendem einschließen: (a) Berechnung eines Abdeckungsscores, der eine Summe von eingeschlossenen 3D-Punkten definiert, (zum Beispiel unter Verwendung von entweder einer Punkt-zu-Ebene/-Fläche-, Punkt-zu-Linie- oder Punkt-zu-Punkt-Metrik) und (b) Berechnung eines Clutter-Scores, der eine Summe von ausgeschlossenen 3D-Punkten definiert, wobei der Score die schrittweise Durchführung der Sichtbarkeitsprüfung einschließt. Die Sichtbarkeitsprüfung kann mittels eines Angrenzungstests, ob die 3D-Punkte sichtbar sind, durchgeführt werden. Alternativ kann die Sichtbarkeitsprüfung mittels eines Punkt-gegen-Flächennetz-Tests, ob die 3D-Punkte sichtbar sind, durchgeführt werden. Beispielhaft kann die Prüfung mit maschinenbeschleunigter SIMD-Hardware (d. h. Grafik zur Beseitigung verdeckter Linien) durchgeführt werden. Die Sichtbarkeitsprüfung kann auf Grundlage eines Bereichsbildes durchgeführt werden. Die 3D-Kamera kann Teil einer 3D-Kameraanordnung sein, die eine Vielzahl von 3D-Kameras aufweist, die mit dem Sehsystemprozessor verbunden ist. Die Laufzeit-3D-Punktwolke kann von einem Gegenstand erfasst werden, der von zumindest zwei der 3D-Kameras abgebildet wird, wobei ein Abschnitt des Gegenstands in dem Arbeitsbereich von jeder von den zumindest zwei 3D-Kameras abgebildet wird. Die Laufzeit-3D-Punktwolke kann außerdem von einem Gegenstand erfasst werden, der in dem Arbeitsbereich der 3D-Kamera selbstverdeckt ist.
  • In einer weiteren Ausführungsform werden ein System und Verfahren, die die Kombination von Messungen mehrerer Ansichten von einem Gegenstand ermöglichen, während außerdem Stördaten bzw. inkorrekten Daten gelöscht werden, bereitgestellt. Das System und Verfahren kombinieren 3D-Daten (3D-Punkte) von mehreren Punktwolken (von mehreren 3D-Erfassungen) und identifiziert 3D-Stördaten, um solche Daten zu löschen. Im Betrieb nehmen das System und Verfahren an, dass der Sensor die 3D-Messungen der Szene an spezifischen relativen Lagen erfasst. Solche relativen Lagen können durch den Benutzer zur Verfügung gestellt werden (wenn das Teil oder der Sensor in bekannten Lagen positioniert ist – zum Beispiel durch einen Roboter, wobei die Hand-/Augenkalibrierung zwischen dem Roboter und dem Sensor bekannt ist) oder (auf Grundlage von Registrierungsteilsätzen von Merkmalen der verschiedenen 3D-Messungen) abgeleitet werden. Alle Ansichten werden analysiert, darunter alle 3D-Messungen, die in jeder Ansicht auftreten. Das System und Verfahren arbeiten auf Grundlage einer Heuristik der erwarteten Sichtbarkeit, die bestimmt, ob ein 3D-Punkt für einen 3D-Sensor sichtbar sein sollte. Die Heuristik der erwarteten Sichtbarkeit basiert auf dem Messbereich des Sensors (der als Arbeitsbereich des Gesamtbetrachtungsfeldes (FOV) festgelegt ist) sowie der (allgemein vorangehend beschriebenen) lokalen Flächennormale, die jedem 3D-Punkt zugeordnet ist.
  • In einer beispielhaften Ausführungsform werden ein System und Verfahren zur Entfernung von Störpunkten aus einem 3D-Bild eines Gegenstands bereitgestellt, bei dem eine Vielzahl von 3D-Kameras angeordnet sind, um Bilder eines Gegenstands in deren Arbeitsbereich aus einer Vielzahl von entsprechenden Betrachtungspunkten zu erfassen. Ein Sehverfahren (a) erfasst eine gemessene 3D-Punktwolke einer Kamera in der Vielzahl von 3D-Kameras, (b) generiert angenommene Lagen für den Gegenstand bezogen auf die gemessene 3D-Punktwolke und (c) verwendet Informationen bezogen auf den Ort und die Ausrichtung der 3D-Kamera in Bezug auf den Gegenstand, um eine Sichtbarkeit von Punkten der 3D-Punktwolke zu bestimmen. Ein Verfahren zum Generieren einer zusammengesetzten Punktwolke kombiniert die 3D-Punktwolke von der Vielzahl der 3D-Kameras in eine zusammengesetzte 3D-Punktwolke, die frei von Störpunkten ist, indem Punkte weggelassen werden, die nicht durch Erscheinen in einer vorbestimmten Anzahl von Punktwolken bestätigt wurden, in denen auf Grundlage des Sichtbarkeitsverfahrens erwartet wird, dass solche Punkte sichtbar sind. Das Sichtbarkeitsverfahren kann auf einer entsprechend gemessenen Position der 3D-Kamera und einer entsprechenden lokalen Flächennormale für Punkte in der gemessenen 3D-Punktwolke in Bezug auf die 3D-Kamera basieren. Der Veranschaulichung halber wird die lokale Flächennormale auf Grundlage von Punkten generiert, die in der Nähe des Punkts liegen, der die Flächennormale enthält. Die vorbestimmte Anzahl von Punktwolken kann außerdem durch einen automatischen oder benutzerdefinierten Schwellenwert definiert sein.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Bei der nachfolgenden Beschreibung der Erfindung wird auf die beigefügten Zeichnungen verwiesen, für die Folgendes gilt:
  • 1 ist ein Diagramm eines Sehsystems, das eine oder mehrere 3D-Kameraanordnungen einschließt, die ein Bild von einem oder mehreren Gegenständen während der Trainings- oder Laufzeit erfassen, in der sich zumindest einer der beispielhaften Gegenstände teilweise außerhalb des Betrachtungsfelds von zumindest einer Kamera befindet oder anderweitig überlagert/verdeckt ist und der andere beispielhafte Gegenstand fehlerhaft ist – oder einer oder mehrere Gegenstände anderweitig Störpunkte in einer oder mehreren der 3D-Kameraanordnungen generieren;
  • 2 ist ein Flussdiagramm eines beispielhaften Gesamtvorgangs zur Ausrichtung von 3D-Punktwolken eines trainierten Modells und eines Laufzeitgegenstands, einschließlich eines Sichtbarkeitsprüfungs-/-anpassungsverfahren, um der Teilverdeckung der Laufzeitgegenstand-3D-Punktwolke gemäß einer veranschaulichenden Ausführungsform Rechnung zu tragen;
  • 3 ist ein Flussdiagramm des Sichtbarkeitsprüfungs-/-anpassungsverfahrens gemäß dem Vorgang aus 2;
  • 4 ist ein Diagramm, das eine beispielhafte 3D-Punktwolke zeigt, die ein vollständiges Modell eines Gegenstands enthält, der gemäß dem Vorgang aus 2 ausgerichtet werden soll, das während der Trainingszeit bereitgestellt ist;
  • 5 ist ein Diagramm einer beispielhaften 3D-Punktwolke eines Gegenstands, die während der Trainingszeit bereitgestellt ist, einschließlich einer Teilverdeckung des Musters in Bezug auf das trainierte Modell;
  • 6 ist ein Diagramm, das eine ausgerichtete Überlappung der Laufzeit-3D-Punktwolke und der Modell-3D-Punktwolke zeigt, um die beste Übereinstimmung zu definieren, in der ein Abschnitt der Modell-3D-Punktwolke (aufgrund einer Verdeckung bezogen auf den Laufzeitabschnitt usw.) fehlt;
  • 7 ist ein Diagramm, welches das Sichtbarkeitsprüfungs-/-anpassungsverfahren aus 3 darstellt, in dem ein Abfragepunkt in der Laufzeit-3D-Punktwolke als vollständig sichtbar identifiziert ist und in den Abdeckungsscore eingeschlossen wird;
  • 8 ist ein Diagramm, welches das Sichtbarkeitsprüfungs-/-anpassungsverfahren aus 3 darstellt, in dem ein Abfragepunkt in der Modell-3D-Punktwolke als verdeckt identifiziert ist und aus dem Abdeckungsscore ausgeschlossen wird;
  • 9 ist ein Diagramm, das eine Technik zur Einstufung von Abfragepunkten als verdeckt oder vollständig sichtbar, unter Verwendung eines Voxel-Gitteransatzes, gemäß dem beispielhaften Sichtbarkeitsprüfungs-/-anpassungsverfahren aus 3 darstellt;
  • 10 ist ein Diagramm einer Sehsystemanordnung mit einer oder mehrerer Kameraanordnungen, in der Störpunkte in dem (den) erfassten 3D-Bild(ern) eines oder mehrerer der 3D-Kamerabaugruppen erscheinen, die Bilder in einer Szene erfassen;
  • 11 ist ein Flussdiagramm eines Gesamtvorgangs zur Bestimmung von Störpunkten in 3D-Punktwolken in der Anordnung aus 10 und zum Generieren einer zusammengesetzten Punktwolke, die frei von solchen Störpunkten ist;
  • 12 ist eine Vorderansicht einer beispielhaften 3D-Kameraanordnung, wie in der Ausrichtung aus 10 verwendet, die einen anwendbaren Arbeitsbereich zeigt, in dem eine 3D-Punktwolke erfasst wird;
  • 13 ist ein detaillierteres Flussdiagramm eines Vorgangs zum Hinzufügen von Punkten zu einer zusammengesetzten Punktwolke, die gemäß dem Gesamtvorgang aus 11 generiert wird;
  • 14 ist ein Diagramm, das auf einem 2D-Rendering einer 3D-Punktwolke eines Gegenstands (z. B. eines Getriebes) basiert, das von einer oder mehreren 3D-Kameras erfasst wird, das das Auftreten von Störpunkten zeigt; und
  • 15 ist ein Diagramm, das auf einem 2D-Rendering einer 3D-Punktwolke des Gegenstands aus 14 basiert, nachdem die Störpunkte aus der 3D-Punktwolke entfernt wurden.
  • DETAILLIERTE BESCHREIBUNG
  • I. Überblick über das System
  • 1 zeigt eine Anordnung eines Systems zum maschinellen Sehen (hierin auch als „Sehsystem” bezeichnet) 100 zur Verwendung bei der Prüfung und/oder Analyse von Merkmalen von einem oder mehreren Gegenständen 110, 112, die in dem Arbeitsbereich oder Sichtfeld (FOV) von einer oder mehreren 3D-Sehsystemkameraanordnungen mit separaten 3D-Kameras 120 und 122 abgebildet werden. Es ist zu beachten, dass sich diese Beschreibung nachfolgend häufig ausschließlich auf die beispielhafte Kamera 120 bezieht. Die Gesamtkameraanordnung kann jedoch eine Vielzahl von zusätzlichen Kameras (z. B. Kameraanordnung 122, mit gestrichelten Linien gezeigt) einschließen. Diese Kameras können mit dem (den) Gesamtsehsystemprozessor(en) (150, nachfolgend detaillierter beschrieben) verbunden sein. Bei jeder 3D-Kamera (120, 122) kann es sich um eine beliebige annehmbare Anordnung von Komponenten handeln, die üblicherweise eine entsprechende Linsenbaugruppe 121 und ein Kameragehäuse 124 einschließen, der einen Bildsensor (oder „Bildgeber”) S aufnimmt, der auf einer beliebigen annehmbaren Bildverarbeitungstechnologie basiert, wie etwa CCD oder CMOS. Der Bildgeber S kann angeordnet sein, um Bilder in einer oder zwei Dimensionen (d. h. zusammen mit der entsprechenden xi- und yi-Achse des Koordinatensystems 128) in einem Bildpixelfeld zu erfassen, das angepasst sein kann, um die Szene entweder in Graustufen oder in Farbe zu erfassen. Die Kameraanordnung 120 ist ferner angepasst, um eine dritte orthogonale Dimension (d. h. eine Höhe entlang der entsprechenden zi-Achse) zu bestimmen, die ein 3D-„Bereichsbild” der Oberfläche jedes Gegenstands 110 und 112 erzeugt. Eine Vielfalt von Technologien kann verwendet werden, um Höhendaten für entsprechende Bildpixel zu generieren. Alternativ kann die 3D-Sehsystem Kameraanordnung die Sammlung von 3D-Punkten (Punktwolke) direkt unter Verwendung von angemessenen Kamerafunktionen und -einstellungen erfassen. Es ist zu beachten, dass zusätzlich zu dem in 1 dargestellten Beispiel, das eine oder zwei Kameras zeigt, eine größere Anzahl von (d. h. drei oder mehr) Kameras in einer Gesamt-3D-Kameraanordnung genutzt werden kann und dass der Begriff „3D-Kameraanordnung” hierin alternativ verwendet werden kann, um die Gesamtanordnung von einer oder mehreren separaten 3D-Kameras zum Generieren einer 3D-Punktwolken- oder Bereichsbilddarstellung der Gegenstandsoberfläche zu beschreiben.
  • Auch wenn dies nicht gezeigt ist, handelt es sich bei einer exemplarischen 3D-Kameraanordnung, die genutzt wird, um ein 3D-Bereichsbild oder eine 3D-Punktwolke zu generieren, um einen Laser-Abstandssensor, der einen aufgefächerten Laserlichtstrahl an die Gegenstandsoberfläche projiziert, um eine Linie (die z. B. über die x-Achsrichtung ausgerichtet ist) zu bilden und reflektiertes Licht der projizierten Linie mit dem Bildgeber S des Laser-Abstandssensor, in einem relativen (spitzen) Winkel zwischen der Ebene des Lichtfächers und der entsprechenden optischen Achse OA des Bildgebers, empfängt. Wie beschrieben, können weitere Modalitäten verwendet werden, um Bereichs- oder Höheninformationen zu generieren, einschließlich zum Beispiel LIDAR, strukturierter Lichtsysteme, Time-of-Flight-Sensor, Stereosehsysteme (z. B. einem Paar von beabstandeten Kameras 120 und 122), DLP-Messtechnik usw. Diese Systeme generieren alle ein Bild, das einen Höhenwert (z. B. eine z-Koordinate) zu Pixeln bereitstellt.
  • In einer üblichen Anordnung können sich die 3D-Kamera 120 und/oder der Gegenstand 110 in relativer Bewegung (z. B. in der physikalischen y-Achsenkoordinatenrichtung einer oder mehrerer Kameras) befinden, sodass die Gegenstandsoberfläche durch den Laser-Abstandssensor (die Laser-Abstandssensoren) abgetastet wird und eine Bildsequenz der Laserlinie an gewünschten räumlichen Intervallen erfasst wird – üblicherweise zusammen mit einer Bewegungssteuerung und einem zugeordneten Codierer oder einer anderen Bewegungsmessvorrichtung (oder alternativ in zeitbasierten Intervallen), die dem Systemsehprozessor (150, nachfolgend beschrieben) Bewegungsinformationen 140 zur Verfügung stellt. In dieser Hinsicht ist die Position eines Punkts an dem Gegenstand entlang der Bewegungsrichtung als eine Koordinate Yi definiert. Die Ansammlung von Punkten (Xi, Yi, Zi), die durch die 3D-Kameraanordnung erfasst werden, ist als die Punktwolke definiert. In anderen Anordnungen, wie etwa mit einer Time-of-Flight-Sensor-3D-Kamera, ist keine relative Bewegung erforderlich.
  • Das Kameragehäuse 124 kann verschiedene Bildverarbeitungskomponenten enthalten, die einen Sehsystemprozessor 150 bilden, der ein zugeordnetes Sehverfahren durchführt. Der Sehprozessor 150 arbeitet mit Bilddaten 142 auf Grundlage der erfassten Bilder der Szene und/oder anderer Quellen (z. B. einer CAD-Darstellung eines Modells) und kann Sehsystemwerkzeuge und -verfahren 152 nutzen, um Informationen aus dem erfassten Bild zu extrahieren. Diese Informationen können sich Merkmale von Interesse und andere in dem Bild erscheinende Elemente beziehen – es können zum Beispiel Sehsystemwerkzeuge, wie etwa das hinreichend bekannte PatMax®-System, das im Handel von der Cognex Corporation, Natick, MA, USA, erhältlich ist, verwendet werden, um die 2D- und 3D-Merkmale in dem Bild zu analysieren und Informationen über die relative Lage, Ausrichtung und weitere Details bereitzustellen – z. B. Kanten, Flecken usw. Während einige oder alle der Sehsystemverfahren in dem Gehäuse 124 der Kameraanordnung 120 instanziiert sein können, ist es ausdrücklich vorgesehen, dass einige oder alle Verfahren durch eine (verkabelte oder kabellose) verbundene Rechenvorrichtungs-/Prozessoreinheit 160 durchgeführt werden können, wie etwa einem speziell entwickelten Prozessor oder einem Universalcomputer (z. B. einem Server, PC, Laptop, Smartphone, Tablet usw.) mit einer angemessenen Benutzerschnittstelle (Maus, Keyboard) 162 und/oder einem angemessenen Bildschirm 164 (z. B. einem Touchscreen). Die verbundene Rechenvorrichtungs-/Prozessoreinheit 160 kann die verarbeiteten Bildinformationen über den Gegenstand/die Ausrichtung 168 nutzen, um weitere Verwendungsverfahren oder -aufgaben über eine Kommunikationsverbindung 166 oder andere Schnittstellenanordnung durchzuführen. Die Informationen können zum Beispiel verwendet werden, wenn das Sehsystem Prüfaufgaben ausführt, um einer Datenbank Qualitätskontrollinformationen bereitzustellen oder defekte Teile an einer Fertigungsstraße abzustoßen.
  • Ein Trainingsverfahren (-prozessor) oder -modul 154 übernimmt das Training und die Speicherung eines oder mehrerer 3D-Modelle/Repräsentationen, die aus 3D-Bereichsbild- oder Punktwolkendaten aufgebaut sind, die Merkmale definierten, die das Ausrichten des Modells an gefundenen Merkmalen von einem Laufzeit-3D-Bereichsbild oder -Punktwolkenbild eines Laufzeitgegenstands (Laufzeitzielgegenstands) vereinfachen. Das trainierte Modell kann (die trainierten Modelle können) Merkmale umfassen, die in einer Gesamtansicht eines Gegenstands, verschiedenen Teilen oder Ausrichtungen eines bestimmten Gegenstands und/oder mehrerer Gegenstände gefunden werden.
  • In der beispielhaften Ausführungsform schließen das Sehverfahren und der Sehprozessor 150 ein Ausrichtungsverfahren (einen Ausrichtungsprozessor) oder ein Ausrichtungsmodul 156 ein, das (der) einen angemessenen Ausrichtungsalgorithmus (oder -verfahren) nutzt, der versucht, die Merkmale des Modells und des Laufzeit-3D-(Ziel-)Bildes aneinander auszurichten. Das (der) Ausrichtungsverfahren (-prozessor) 154 und Trainingsverfahren (prozessor) 156 arbeiten jeweils mit einem 3D-Ausrichtungsverfahren (-prozessor) oder -modul 158, das (der) eine Sichtbarkeitsprüfung an selbstverdeckten Lagen der Laufzeit-3D-Punktwolke durchführt. Dies ermöglicht eine Modifizierung des Abdeckungs- und/oder Clutter-Scores, auf dem die 3D-Ausrichtung basiert.
  • Der Prozessor 150 schließt ferner ein(en) Verfahren (Prozessor) zur Entfernung von Störpunkten 159 ein, das (der) nachfolgend genauer beschrieben wird, jedoch im Allgemeinen dazu dient, sicherzustellen, dass eine Gesamt-3D-Punktwolke des Gegenstands (z. B. Gegenstand 110), die von mehreren Betrachtungspunkten durch entsprechende 3D-Kameraanordnungen (z. B. Kameras 120, 122) erfasst wurde, frei von Störpunkten (Noise) ist, die nicht Teil des tatsächlichen Gegenstands sind.
  • II. Ausrichtung von teilweise verdeckten Gegenständen
  • Unter Bezugnahme auf den Vorgang 200 aus 2 stellt das System in Schritt 210 ein oder mehrere 3D-Trainingsbilder bereit, die üblicherweise als eine oder mehrere entsprechende 3D-Punktwolken definiert sind. Der Vorgang 200 ist auf den Ort eines trainierten Modellmusters in einer Laufzeitszene ausgerichtet. Während des Betriebs des Systems und dem zugeordneten Vorgang 200 wird eine Vielzahl von in Frage kommenden Lagen generiert. Bei jeder in Frage kommenden Lage handelt es sich um einen möglichen Ort des trainierten Modellmusters in der Szene. Das Ziel besteht darin, jeder der in Frage kommenden Lagen einen numerischen Score bzw. Wert (der als nicht einschränkendes Beispiel normalisiert ist) von 0,0 bis 1,0 zuzuweisen, wobei es sich bei 0,0 um die schlechtmöglichste Übereinstimmung und bei 1,0 um die bestmöglichste Übereinstimmung handelt.
  • Die Trainingsmodellbilder können von einem tatsächlichen Gegenstand erfasst oder als ein synthetisches Bild definiert werden – z. B. einer CAD-Darstellung des Gegenstands von einem oder mehreren Betrachtungspunkten. Im Allgemeinen handelt es sich bei dem trainierten Modellmuster um eine Form einer 3D-Datenstruktur (z. B. eine Punktwolke), die der Benutzer versucht zu finden, zusammen mit einem Satz von Hilfsdatenstrukturen, der während der Ausführung eines 3D-Ausführungsvorgangs durch das System verwendet wird. In diesem Beispiel definiert das trainierte Modellmuster eine vollständige Ansicht des Gegenstands, entweder von CAD oder einem Erfassungssystem, das mehrere Ansichten beinhaltet. Dieses beispielhafte Modell 410 ist in 4 gezeigt.
  • In Schritt 220 erfasst der Vorgang 200 eine oder mehrere Laufzeit-3D-Punktwolken, die Bilddaten von einem oder mehreren Laufzeitgegenständen enthalten. Wie in 1 gezeigt, stellen die beispielhaften Gegenstände 110 und 112 jeweils Fälle dar, in denen die Kameraanordnung 120 ein unvollständiges Bild abbildet, das möglicherweise den Ausrichtungsvorgang beeinflussen könnte. Insbesondere befindet sich der Gegenstand 110 vollständig in dem Arbeitsbereich 170 (im Allgemeinen als eine Pyramide definiert, die sich nach oben in Richtung der Kameraoptik 121 verjüngt) der Kamera, schließt jedoch einen tatsächlichen Defekt 172 (mit gestrichelten Linien gezeigt) in Form eines fehlenden Abschnitts 174 des Laufzeitgegenstands ein. In einer Prüfumgebung würde ein solcher Gegenstand abgelehnt werden. Umgekehrt wird der Gegenstand 112, der vollständig und fehlerfrei ist, derart abgebildet, dass er sich teilweise außerhalb des Arbeitsbereichs der Kamera 120 befindet oder anderweitig verdeckt ist (mit einem Abschnitt 174 außerhalb der Grenzen des Arbeitsbereichs 170). Es ist anzumerken, dass sich der Abschnitt 174 in dem Arbeitsbereich 176 der Kamera 122 befindet (mit gestrichelten Linien gezeigt).
  • Insbesondere ist unter Bezugnahme auf 5 ein Beispiel für die Laufzeitszene gezeigt. Diese Bild schließt eine weitere 3D-Datenstruktur ein, die null oder mehr Fälle des Gegenstands 510 einschließt, die an unterschiedlichen Lagen dem trainierten Muster gleichen. Jeder Fall kann bezogen auf das trainierte Muster übertragen und gedreht werden. In diesem Beispiel handelt es sich bei der Laufzeitszene um eine Einzelansicht (d. h. eine Teilansicht) des Gegenstands.
  • Die Kameraanordnung schließt verschiedene Kalibrierungsparameter/-informationen ein, die als Teil ihrer Einrichtung gespeichert sind. Der Ausrichtungsalgorithmus kann auf relevante Informationen über die Erfassungseinrichtung (z. B. Kalibrierungsinformationen) zugreifen. Diese werden in den Folgeschritten des Vorgangs 200 verwendet.
  • In einem Schritt des Vorgangs 230 versucht der Vorgang 200 eine grobe Ausrichtung der Laufzeitpunktwolke in Bezug auf die trainierte Punktwolke (trainierten Punktwolken) durchzuführen, um alle möglichen, in Frage kommenden Lagen zu lokalisieren. Diese grobe Ausrichtung wird verwendet, um eine verfeinerte Ausrichtung auf Grundlage weiterer Bewertung von in Frage kommenden Lagen zu ermöglichen, wie nachfolgend beschrieben.
  • Der Vorgang 200 bewertet die Qualität einer Übereinstimmung für jede in Frage kommende Lage gegenüber der Modellpunktwolke (Schritt 240). In diesem Schritt des Vorgangs wird bewertet, wie gut eine in Frage kommende Lage ist. Zusätzlich zu den Eingaben des Trainingsmodells, dem Laufzeitbild und den Kalibrierungsinformationen empfängt der Vorgang eine in Frage kommende Lage, die das Muster auf einen Abschnitt der Laufzeitszene abbildet. In dem Vorgang wird angenommen, dass dieser Abschnitt der Szene einen Fall des Musters enthält und der Score ist eine Messung davon, wie stark sich das Verfahren an diese Annahme hält. 5 stellt eine mögliche, in Frage kommende Lage 600 dar, die das Laufzeitbild 510 in Kombination mit dem fehlenden Abschnitt 610 von dem Modellmuster 410 einschließt. Dies stellt das vollständige Muster des Modells und somit die beste Übereinstimmung dar. Somit sollte diese in Frage kommende Lage einen hohen Score erhalten.
  • In Bezug auf Schritt 250 des Vorgangs 200 wird der Score durch Berechnen der zugrundeliegenden Abdeckungs- und Clutter-Scores der in Frage kommenden Lage und nachfolgender Kombination der beiden Scores zu einem Gesamtscore für die Lage, ermittelt. Bei dem Abdeckungsscore handelt es sich um den Anteil des Musters, der in der Laufzeitszene sichtbar ist. Bei dem Clutter-Score handelt es sich um einen Messwert, der angibt, wie viel „zusätzlicher” Noise in der Szene benachbart zu dem Musterfall vorhanden ist, der durch das System, das diesen beobachtet, analysiert wird. In einer Ausführungsform kann der endgültige Score durch Folgendes dargestellt werden: Score = Abdeckung – 0,5·Clutter.
  • Die Berechnung des Clutter-Scores wird in Form von nützlichen Hintergrundinformationen in der gemeinsam zugewiesenen US-Patentanmeldung mit der Seriennummer 14/938,981 mit dem Titel SYSTEM AND METHOD FOR SCORING CLUTTER FOR USE IN 3D POINT CLOUD MATCHING IN A VISION SYSTEM, eingereicht am 11. November 2015 von Hongjun Jia, et al., deren Lehren hierin durch Bezugnahme aufgenommen sind. Da lediglich ein Abschnitt des Laufzeitgegenstands 510 in der in Frage kommenden Lage 600 verfügbar ist, besteht für einen großen Abschnitt (610) des Modellmusters (410) keine Übereinstimmung mit dem Laufzeitbild. In einem herkömmlichen Scoring-Algorithmus werden nicht alle Abschnitte 610 ohne Übereinstimmung in der einfachen Definition des Abdeckungsscores gezählt. Andernfalls ist die dargestellte Übereinstimmung im Wesentlichen perfekt; es wäre also wünschenswert, einen schlechten Score dieser in Frage kommenden Lage, lediglich aufgrund einer Verdeckung eines Abschnitts des Laufzeitbildes, zu vermeiden.
  • Als Versuch, das in 6 dargestellte Szenario anzugehen, führt der Vorgang 200 eine Sichtbarkeitsprüfung/-anpassung während der Abdeckungsbewertung (Schritt 250) durch, um zu bestimmen, ob ein gegebener Punkt in dem Laufzeitbild 510 zu der Gesamtabdeckung (Schritt 260 von Vorgang 200) beitragen soll. Das Gesamtverfahren 300 zum Durchführen einer Sichtbarkeitsprüfung/-anpassung ist in 3 beschrieben. Als Teil des Verfahrens schließen in Schritt 310 die bereitgestellten Kalibrierungsinformationen das optische Zentrum und den Arbeitsbereich der Kamera ein (siehe Darstellung des Arbeitsbereichs 170 und des optischen Zentrums 180 in 1). Diese Parameter sind den verfügbaren Kamerainformationen inhärent (d. h. durch die Herstellungskalibrierung bereitgestellt) und das Verfahren nutzt diese somit (zusammen mit dem trainierten Modell und den Laufzeitbild-3D-Punktwolken – Schritt 320) bei der Bestimmung der Sichtbarkeitsprüfung/-anpassung gemäß beispielhafter Ausführungsformen. Auf Grundlage dieser Eingaben konstruiert das Verfahren in 300 in Schritt 330 Liniensegmente von dem optischen Zentrum 180 zu jedem einer Vielzahl von Punkten in der trainierten Modell-3D-Punktwolke oder der Laufzeit-3D-Punktwolke. In Schritt 340 beschränkt das Verfahren 300 eine Berücksichtigung von Punktinformationen ohne (frei von) ein explizites Rendering einer Ansicht der trainierten Modell-3D-Punktwolke an der in Frage kommenden Laufzeitlage bzw. schießt diese aus. Ein Betriebsbeispiel dieses Sichtbarkeitsprüfungs-/-anpassungsverfahrens ist in den 79 gezeigt.
  • In 7 ist die in Frage kommende Lage 600 mit einem Liniensegment 710 gezeigt, das von dem optischen Zentrum 180 (das aus den Kalibrierungsinformationen bekannt ist) der Kamera 120 zu einem Punkt 720 auf der Punktwolke des Laufzeitbildabschnitts 510 gezeichnet, der zu dem Abdeckungsscore beitragen sollte. Umgekehrt stellt 8 ein Liniensegment 810 zu einem Punkt auf dem verdeckten Abschnitt 610 der in Frage kommenden Lage 600 dar, das von einem Beitrag zu dem Abdeckungsscore sowohl in dem Zähler als auch dem Nenner dieser mathematischen Beziehung ausgeschlossen ist. Dieser Ausschluss ist auf das Vorhandensein eines dazwischenliegenden Verdeckungspunktes 830 auf dem Laufzeitabschnitt 510 entlang des Liniensegments in größerer Nähe zu der Kamera 120 als der verdeckte Punkt 820 zurückzuführen.
  • Als nichteinschränkendes Beispiel ist eine Zusammenfassung einer Routine zum Berechnen des Abdeckungsscores wie folgt bereitgestellt:
    Anzahl berücksichtigter Punkte = 0;
    Anzahl abgedeckter Punkte = 0;
    Für jeden Punkt in dem Muster:
    Abbilden des Punkts durch die in Frage kommende Lage.
    Wenn der abgebildete Punkt nicht verdeckt ist:
    [SICHTBARKEITSPRÜFUNG]
    Anzahl der berücksichtigen Punkte = Anzahl der berücksichtigen Punkte + 1;
    Wenn der abgebildete Punkt nahe einem Punkt in der Laufzeitszene liegt:
    Anzahl der abgedeckten Punkte = Anzahl der abgedeckten Punkte + 1
    Abdeckungsscore = Anzahl der abgedeckten Punkte/Anzahl der berücksichtigen Punkte;
    wobei sich die SICHTBARKEITSPRÜFUNG auf die Leistung des vorangehend beschriebenen Verfahrens bezieht (300 und 78).
  • Es ist zu beachten, dass der Beitrag des Clutters zu dem Gesamtscore für die in Frage kommenden Lage auf eine Weise modifiziert werden kann, die der Abdeckungsscore-Modifizierung gleicht, um das inverse Problem zu vermeiden (d. h., dass die Laufzeitszene Abschnitte enthält, die in dem Muster verdeckt waren). In solchen Fällen wird das Liniensegment von dem optischen Zentrum gezeichnet, um Punkte an der in Frage kommenden Lage zu identifizieren und auszuschließen, die üblicherweise bei Vorhandensein eines vollständigen Laufzeitbildes des Gegenstands ausgeschlossen werden würden.
  • Als kurze Zusammenfassung lässt sich sagen, dass die Schritte zur Bewertung einer Sichtbarkeitsprüfung/-anpassungen das Verwenden von Folgendem einschließen: (a) Kamerakonfigurationsinformationen; (b) einem Abfragepunkt, der den „abgebildeten” Punkt aus der vorangehend beschriebenen Routine umfasst; und (c) einer Laufzeitszene, wobei die Laufzeitszene in einem Voxel-Gitter gehalten werden kann. Dieses kann als eine Reihe von Voxeln definiert sein, von denen jeder eine vorbestimmte Anzahl von Punkten enthalten kann. Dieses Voxel-Gitter 910 kann gemäß 9 dargestellt sein. Jeder Punkt in einem Voxel verdeckt entlang der Richtung der Verdeckung 940 alle Punkte in Voxeln darunter, da sich die Kamera 120 in dieser dargestellten Konfiguration in der Aufwärtsrichtung befindet. Die Routine prüft somit jede Voxel-Spalte in dem Gitter 910, die einen beliebigen Teil des Liniensegments 920 enthält, der einen Abfragepunkt 930 mit der Kamera 120 verbindet. Wenn der oberste Punkt in dieser Spalte höher ist als jeder Punkt der Linie, schneidet die Linie die Laufzeitszene, sodass der Abfragepunkt verdeckt ist. Andernfalls ist der Abfragepunkt nicht verdeckt. Demnach verdecken die Punkte in der Voxel-Spalte (die den Laufzeitabschnitt 510 kreuzen) entlang dem Liniensegment 920 in dem dargestellten Beispiel aus 9 den Abfragepunkt 930. Die Routine zeigt demnach an, dass der Abfragepunkt 930 verdeckt ist.
  • Der Definition nach kann ein Abfragepunkt als Folgendes eingestuft werden: (1) vollständig sichtbar, wobei sich der Punkt innerhalb der Einheit des Arbeitsbereichs der Kamera(s) in der Kameraanordnung befindet und kein anderer Punkt in der Szene vorhanden ist, der das Erfassungssystem davon abhält, diesen Punkt zu beobachten; (2) verdeckt, wobei sich der Punkt innerhalb der Einheit der Arbeitsbereiche der Kameraanordnung befindet, jedoch ein anderer Punkt in der Szene das Erfassungssystem davon abhält, diesen Punkt zu beobachten; und (3) außerhalb des Arbeitsbereichs, wobei sich der Punkt außerhalb der Einheit des Arbeitsbereichs der bestimmten Kameras befindet, sodass das Erfassungssystem diesen Punkt unabhängig von dem Rest der Szene nicht beobachten konnte.
  • Erneut unter Bezugnahme auf das Gesamtvorgangs 200 aus 2 wird der Abdeckungsscore von jeder in Frage kommenden Lage bewertet und gemäß den Schritten 250 und 260 modifiziert, bis (über Entscheidungsschritt 270) ein Scoring aller in Frage kommenden Lagen vorgenommen wurde. Dann werden die Scores (über Entscheidungsschritt 270) verglichen und die in Frage kommenden Lagen mit den besten Scores und/oder die Scores über einem vorbestimmten Schwellenwert werden in Schritt 280 als Ausrichtungsergebnisse zurückgegeben. Es ist anzumerken, dass der Vorgang 200 für jede Kamera und jeden zugeordneten Arbeitsbereich in der Gesamtkameraanordnung durchgeführt werden kann und die Ausrichtungsergebnisse angemessen kombiniert werden können. Beispielhaft können die Kameraanordnungen alle in ein einziges globales Koordinatensystem (z. B. Hand-Auge-Kalibrierungstechniken) kalibriert sein oder jede Kamera kann mit einem lokalen Koordinatensystem arbeiten.
  • Das Sichtbarkeitsprüfungs-/-anpassungsverfahren kann ferner modifiziert werden, um die Genauigkeit und/oder Leistung zu verbessern. Zum Beispiel wendet das vorangehend beschriebene Sichtbarkeitsverfahren einen Batch-Ansatz an, bei dem jeder Punkt berücksichtigt wird, bevor ein endgültiger Abdeckungsscore (und/oder Clutter-Score) bestimmt wird. Alternativ kann ein inkrementeller Ansatz verwendet werden, bei dem der Vorgang (a) einen Abschnitt des trainierten Modellmusters für eine große Anzahl von in Frage kommenden Lagen bewertet; (b) eine Teilsatz dieser Lagen zur weiteren Verarbeitung auswählt; und dann (c) einen anderen Abschnitt des Musters berücksichtigt. Die Schritte (a)–(c) werden wiederholt, bis der Vorgang das gesamte trainierte Modellmuster bewertet hat oder die Anzahl von möglichen in Frage kommenden Lagen auf lediglich eine mögliche in Frage kommende Lage reduziert hat. Wie hierin verwendet, bezieht sich der Begriff „inkrementell” auf einen allgemeinen Vorgang, wie vorangehend dargelegt. In verschiedenen Ausführungsformen kann außerdem Hardware zur Beseitigung verdeckter Linien verwendet werden, um Verdeckungen zu bestimmen, (z. B.) maschinenbeschleunigte Single-Instruction-Multiple-Data-(SIMD-)Hardware.
  • Es ist anzumerken, dass der vorangehend beschriebene Vorgang und Modifikationen davon üblicherweise die Verwendung von Programmiersprachen in betrachtet, die auf Computer-CPUs laufen und nicht auf GPUs von Grafikkarten (z. B. SIMD-Maschinen). Wenn das Verfahren auf einem GPU läuft, wird betrachtet, dass eine große Anzahl von Punkten gleichzeitig abgebildet werden kann und eine Sichtbarkeitsprüfung/-anpassung in einer GPU-Sprache parallel durchgeführt werden kann – zum Beispiel durch Anwenden einer DirectX-Shader-Sprache (HLSL) oder der OpenGL-Shader-Sprache (GLSL).
  • III. Entfernen von Störpunkten und/oder Noise von 3D-Punktwolken
  • Erneut unter Bezugnahme auf den Prozessor 150 aus 1 ist zusätzlich zu den anderen vorangehend beschriebenen Verfahren/Prozessoren und/oder Modulen 152, 154, 156 und 158 ein Verfahren (Prozessor) zur Entfernung von Störpunkten 159 bereitgestellt. Auch in Bezugnahme auf die beispielhafte Anordnung 1000 aus 10 entfernt die beispielhafte Ausführungsform Störpunkte in einer 3D-Punktwolke, die durch das Kombinieren von erfassten Bilddaten 1010 und 1012 von einer Vielzahl von erfassten Kameras 1020 und 1022 generiert wurde, die an vorbestimmten Betrachtungspunkten (OA1 und OA2) in Bezug auf einen beispielhaften Gegenstand 1030 ausgerichtet sind. Wie gezeigt, definiert der beispielhafte Gegenstand 1030 eine geradlinige sechsseitige Form, der Einfachheit halber ohne Fremdmerkmale. Aufgrund der optischen Effekte oder anderer Ursachen (z. B. innere Reflexionen) schließt jede erfasste 3D-Punktwolke 1010 und 1012 zusätzliche Punkte/Merkmale 1040, 1042 ein, die in die ausgerichtete 3D-Gesamtpunktwolke 1050 verschmolzen sind, die durch den Prozessor 150 generiert wurde. Wie nachfolgend beschrieben, werden diese Störbilddaten entfernt (gelöscht), wie durch gestrichelte Linien 1060 und 1062 von der endgültigen Version der Punktwolke angezeigt. Auch wenn dies nicht gezeigt ist, wird betrachtet, dass eine Vielzahl von Kameras auf eine Weise angeordnet sein kann, um eine vollständige 360-Grad-Ansicht des beispielhaften Gegenstands zu erfassen und Punktwolkendaten zu liefern, die durch den Prozessor zu einer 3D-Punktwolkengesamtdarstellung des abgebildeten Gegenstands kombiniert ist.
  • 11 zeigt ein Flussdiagramm, das einen Gesamtvorgang 1100 zum Generieren einer zusammengesetzten Punktwolke von einer Vielzahl von in 3D registrierten Bildern eines Gegenstands zur Verwendung während dem Training oder der Laufzeit zeigt, wobei Störpunkte weggelassen werden. In Schritt 1110 erfasst das System ein oder mehrere 3D-Bilder des Gegenstands von 3D-Kamerasensoren an jeder von einer Vielzahl von Ausrichtungen/Betrachtungspunkten und diese Bilddaten werden dem (den) Systemprozessor(en) und dem (den) zugeordneten Sehsystemverfahren als 3D-Punktwolkendaten bereitgestellt. In Schritt 1120 stellt das System Informationen über den Ort/die Ausrichtung jeder Kamera bereit. Dies kann als der relative Winkel der optischen Achse in dem globalen Koordinatensystem, wie während der Kalibrierung bestimmt und als die relative Entfernung zu anderen Kameras und/oder einem Referenzpunkt in dem Koordinatensystem definiert sein. Andere Parameter, wie etwa die Fokaldistanz usw., können ebenfalls bereitgestellt sein. Diese Informationen werden verwendet, um die Bestimmung von Punktsichtbarkeit zu unterstützen, wie nachfolgend weiter beschrieben.
  • In Schritt 1130 verwendet das System die Informationen von den 3D-Punktwolken und Kameraorten, um angenommene Lagen des Gegenstands zu berechnen. Diese Lageinformationen (1070 in 10) werden an das (den) Sehsystemverfahren (-prozessor) weitergeleitet. Demnach lässt sich zusammenfassend sagen, dass die Eingänge des grundlegenden Vorgangs hierin einen Satz von Datensätzen darstellen, der aus Folgendem besteht: (a) einer Punktwolke, (b) einer Lage des Gegenstands und (c) Sensorinformationen, wobei jeder Datensatz Folgendes einschließt: (i) die gemessene Punktwolke, (ii) die angenommene Lage des Gegenstands, der die Punktwolke induziert hat, und (iii) Informationen über den Sensor zum Berechnen der Sichtbarkeit für jeden Punkt. Ein Sichtbarkeitskriterium kann auf der gemessenen Position in Bezug auf den Messbereich des Sensors und die lokale Flächennormale (vorangehend beschrieben) in Bezug auf den Sensor basieren. Die lokale Flächennormale kann dann von der Punktwolke durch Berücksichtigen „nahegelegener” (wie nachfolgend definiert) Punkte extrapoliert werden.
  • Im Allgemeinen und außerdem in Bezug auf 12 zeigt die beispielhafte Kamera-/Sensoranordnung 1200 eine 3D-Kamera/einen 3D-Sensor 1210, die/der ein Bild einer Szene 1212 erfasst, in der ein kleinerer Arbeitsbereich 1220 in dem breiteren Betrachtungsfeld (FOV) 1230 definiert ist, das Grenzen aufweist, die teilweise durch ein weites FOV 1240 und nahes FOV 1250 als Ergebnis einer auf einer Ebene der abgebildeten Szene 1212 nicht-senkrechten optischen Achse OA3 definiert ist. In dem Vorgang 1100 hierin wird angenommen, dass die Kamera/der Sensor 1210 3D-Messungen der Szene an spezifischen relativen Lagen erfasst und dass die relativen Lagen durch den Benutzer zur Verfügung gestellt werden (wenn das Teil oder der Sensor in bekannten Lagen positioniert wurden – zum Beispiel durch einen Roboter, wobei die Hand-/Augenkalibrierung (in einem gegebenen Bewegungskoordinatenraum) zwischen dem Roboter und dem Sensor bekannt ist) oder abgeleitet werden (auf Grundlage von Registrierungsteilsätzen von Merkmalen der verschiedenen 3D-Messungen). In dem beispielhaften Vorgang werden alle Ansichten durch das Sehsystemverfahren (den Sehsystemprozessor) analysiert, darunter alle 3D-Messungen, die in jeder Ansicht auftreten. Ein primäres Betriebsprinzip der Analyse basiert auf der Heuristik der erwarteten Sichtbarkeit, die bestimmt, ob ein 3D-Punkt auf dem Gegenstand für einen bestimmten 3D-Sensor sichtbar sein sollte. Die Heuristik der erwarteten Sichtbarkeit basiert ferner auf dem Messbereich des Sensors (d. h. des Arbeitsbereichs 1220) sowie der lokalen Flächennormale, die jedem 3D-Punkt zugeordnet ist.
  • In Schritt 1140 bestimmt der Vorgang 1100 bestätigte Punkte in jeder Punktwolke. Dies beinhaltet einen Vergleich von Punkten in jeder Punktwolke mit solchen Punkten, von denen erwartet wird, dass diese in anderen Punktwolken in der Gesamtgruppe von registrierten Punktwolken sichtbar sind, die dem Prozessor von Sensoren zur Verfügung gestellt werden. Diese Sichtbarkeitsbestimmung ist gemäß dem Vorgang 1310 aus 13 abgeleitet, das durch den folgenden Algorithmus dargestellt ist:
    Für jeden Punkt p aus einer Punktwolke,
    wenn p in der Punktwolke sichtbar ist (was nicht immer der Fall ist, insbesondere, wenn p ein Störpunkt ist), Vergleichen jeder anderen registrierten (ausgerichteten) Punktwolke Ci, in der erwartet wird, dass p sichtbar ist (Schritt 1310),
    Bestimmen, ob ein entsprechender Punkt pi in Ci vorhanden ist, der ausreichend nahe an p liegt, und falls ein entsprechender Punkt pi in Ci vorhanden ist, Angeben, dass Ci (in Bezug auf p) sichtbar ist (Schritt 1320).
    Wenn der Anteil von Punktwolken Ci, in denen p sichtbar ist, d. h. |Sichtbar({Ci})|/|{Ci}| einen Schwellenwert T überschreitet (Entscheidungsschritt 1330), dann Hinzufügen von p zu der zusammengesetzten Punktwolke (Schritt 1340). Andernfalls wird p als Störpunkt markiert und aus der zusammengesetzten Punktwolke (1350) weggelassen.
  • Es ist anzumerken, dass (1) Flächennormalen für die Quellpunktwolken (falls nicht vorhanden) berechnet werden, um für den Sichtbarkeitsvorgang (1300) verwendet zu werden, (2) die zusammengesetzte Punktwolke eine client3DFromPointCloud3D-Transformation der ersten Quellpunktwolke kopiert und (3) die Sensorinformationen (falls in den ursprünglichen Quellpunktwolken bereitgestellt) angemessen in der zusammengesetzten Punktwolke eingeschlossen sind (was das Aktualisieren von originalSensor3DFromGeometry3D-Transformationen einschließt, um die Tatsache widerzuspiegeln, dass sich die client3DFromPointCloud3D-Transformation von jedem Quellpunkt zu der zusammengesetzten Punktwolke ändert).
  • Diese Heuristik weist zwei Parameter auf: (1) eine Distanztoleranz (zwischen dem ursprünglichen Punkt p und dem entsprechenden transformierten Punkt pi in der anderen Wolke Ci) und (2) den Schwellenwert des sichtbaren Anteils T, den Anteil aller Wolken, in dem ein erwarteter sichtbarer Punkt gesehen werden muss, um in die zusammengesetzte Punktwolke eingeschlossen zu werden. Der Schwellenwert T kann automatisch auf Grundlage verschiedener Parameter oder Eigenschaften eingestellt werden – zum Beispiel der Anzahl von Sensoren, dem Expositionsniveau usw. Alternativ kann der Schwellenwert unter Verwendung einer Benutzerschnittstelle in der Softwareanwendung des Sehsystems eingestellt werden.
  • Der Hauptvorgang 1100 berechnet dann in Schritt 1150 eine zusammengesetzte Punktwolke aus mehreren registrierten Punktwolken durch Verknüpfen aller bestätigten Punkte (in den entsprechenden Punktwolken), wobei solche Punkte bestätigt wurden, wenn sie in anderen Punktwolken sichtbar waren, in denen erwartet wurde, dass sie sichtbar sind. Der Vorgang 1100 stellt dann in Schritt 1160 die zusammengesetzte Punktwolke bereit, wobei Störpunkte entfernt/weggelassen wurden. Dies ermöglicht eine genaue 3D-Darstellung des Gegenstands zur Verwendung zum Generieren eines Modells oder Durchführen verschiedener Sehsystemanalyseverfahren, wie etwa Ausrichtung, Prüfung, Roboterführung usw.
  • Es wird auf die Bildschirmanzeige aus 14 Bezug genommen, die ein Bild 1400 eines Gegenstands (z. B. eines Getriebes) darstellt, das durch eine Vielzahl von Sensoren zur 3D-Punktwolkengenerierung erfasst wurde. Das Bild 1400 schließt einen Noise als Ergebnis von Störpunkten in einer oder mehreren Punktwolken ein. Umgekehrt wird das resultierende Bild 1500 in 15 durch Anwenden der Entfernungsvorgänge gemäß der beispielhaften Ausführungsform hierin generiert. Es ist anzumerken, dass die Kanten schärfer und klarer definiert erscheinen, wobei weniger Störpunkte/Noise vorhanden sind/ist.
  • Auch wenn dies nicht gezeigt ist, sollte deutlich werden, dass Kameras/Sensoren so angebracht werden können, dass sie alle 360 Grad des Gegenstands abbilden. FOVs und/oder Arbeitsbereiche können sich überlappen, um eine vollständige Abdeckung des Gegenstands zu gewährleisten. Eine angemessene Beleuchtung kann ebenfalls bereitgestellt sein.
  • Es sollte deutlich werden, dass das vorangehend beschriebene Ausrichtungssystem und -verfahren eine effektive Technik zum Ausrichten von Modell-3D-Punktwolken auf Laufzeit-3D-Punktwolken bei Vorhandensein von Selbstverdeckungen bereitstellen. Dieses System und Verfahren kann mit einer Vielzahl von Kameras mit zugeordneten Arbeitsbereichen verwendet werden, das eine vollständig sichtbare Ansicht des Laufzeitgegenstands (der Laufzeitgegenstände) einschließen kann oder nicht einschließen kann. Dieses System und Verfahren kann angepasst sein, um eine Vielfalt von Verarbeitungsplattformen zu betreiben. Gleichermaßen wird hierin außerdem eine effektive Technik zum Generieren von 3D-Bildern von Gegenständen beschrieben. Diese Technik entfernt effektiv jeglichen Noise in Form von Störpunkten durch Vergleichen erwarteter sichtbarer Punkte in einer Vielzahl von Punktwolken, um diejenigen, die nicht in einer ausreichenden Anzahl solcher Punktwolken erscheinen, zu entfernen.
  • Bei dem Vorangehenden handelt es sich um eine ausführliche Beschreibung beispielhafter Ausführungsformen der Erfindung. Es können unterschiedliche Modifikationen und Zusätze vorgenommen werden, ohne vom Geist und Umfang dieser Erfindung abzuweichen. Merkmale von jeder der unterschiedlichen Ausführungsformen, die vorangehend beschrieben wurden, können gegebenenfalls mit Merkmalen anderer beschriebener Ausführungsformen kombiniert werden, um eine Vielfalt von Merkmalskombinationen in zugeordneten neuen Ausführungsformen bereitzustellen. Darüber hinaus beschreibt das Vorangehende zwar eine Anzahl von separaten Ausführungsformen der Vorrichtung und des Verfahrens der vorliegenden Erfindung, was hier beschrieben wurde ist jedoch für die Anwendung der Prinzipien der vorliegenden Erfindung lediglich veranschaulichend. Zum Beispiel werden unterschiedliche, hierin verwendete richtungs- und orientierungsweisende Ausdrücke (und grammatische Abwandlungen davon), wie etwa „vertikal”, „horizontal”, „nach oben”, „nach unten”, „oben”, „unten”, „seitlich”, „vorne”, „hinten”, „links”, „rechts”, „vorderes”, „hinteres” und dergleichen ausschließlich als relative Konventionen und nicht als absolute Orientierungen in Bezug auf ein festes Koordinatensystem, wie etwa die Wirkungsrichtung der Schwerkraft, verwendet. Außerdem kann ein dargestelltes Verfahren oder ein dargestellter Prozessor mit anderen Verfahren und/oder Prozessoren kombiniert oder in unterschiedliche Teilverfahren oder -prozessoren aufgeteilt werden. Solche Teilverfahren und/oder Teilprozessoren lassen sich gemäß vorliegenden Ausführungsformen unterschiedlich kombinieren. Gleichermaßen ist es ausdrücklich vorgesehen, dass sich jede beliebige Funktion, jedes beliebige Verfahren und/oder jeder beliebige Prozessor dieser Schrift unter Verwendung elektronischer Hardware, Software, die aus einem nichtflüchtigen computerlesbaren Medium von Programmanweisungen besteht, oder einer Kombination aus Hardware und Software umsetzen lässt.
  • Dementsprechend soll diese Beschreibung lediglich beispielhaft aufgefasst werden und nicht, um gegenteilig den Umfang dieser Erfindung einzuschränken.

Claims (20)

  1. Verfahren in einem Sehsystem zum Schätzen eines Übereinstimmungsgrads einer 3D-Ausrichtungslage einer Laufzeit-3D-Punktwolke in Bezug auf eine trainierte Modell-3D-Punktwolke, das die folgenden Schritte umfasst: Scoring einer Übereinstimmung einer in Frage kommenden Lage der Laufzeit-3D-Punktwolke bezogen auf die trainierte Modell-3D-Punktwolke mit einem Sehsystemprozessor, einschließlich Bereitstellen einer Sichtbarkeitsprüfung, die Folgendes umfasst: (a) Empfangen eines optischen Zentrums einer 3D-Kamera, (b) Empfangen der trainierten Modell-3D-Punktwolke, (c) Empfangen der Laufzeit-3D-Punktwolke und (d) Konstruieren einer Vielzahl von Liniensegmenten von dem optischen Zentrum zu einer Vielzahl von 3D-Punkten in der trainierten Modell-3D-Punktwolke oder der Laufzeit-3D-Punktwolke an der in Frage kommenden Laufzeitlage; und Bestimmen auf Grundlage eines Orts der 3D-Punkte entlang entsprechenden Liniensegmenten, ob die 3D-Punkte in dem Scoring-Schritt ausgeschlossen oder eingeschlossen werden sollen.
  2. Verfahren nach Anspruch 1, das ferner Beschränken einer Berücksichtigung von Informationen über selbstverdeckende 3D-Punkte umfasst, frei von explizitem Rendern einer Ansicht der trainierten Modell-3D-Punktwolke an der in Frage kommenden Lage der Laufzeit-3D-Punktwolke.
  3. Verfahren nach Anspruch 1, wobei der Scoring-Schritt zumindest eines von Folgendem einschließt: (a) Berechnen eines Abdeckungsscores, der eine Summe von eingeschlossenen 3D-Punkten definiert, und (b) Berechnen eines Clutter-Scores, der eine Summe von ausgeschlossenen Laufzeit-3D-Punkten definiert.
  4. Verfahren nach Anspruch 3, wobei der Schritt des Definierens der Summe von eingeschlossenen 3D-Punkten das Verwenden von zumindest einem von einer Punkt-zu-Ebene-, Punkt-zu-Linie- und Punkt-zu-Punkt-Metrik einschließt.
  5. Verfahren nach Anspruch 1, wobei zumindest eines von Folgendem gilt: (a) der Scoring-Schritt schließt ein, dass die Sichtbarkeitsprüfung schrittweise durchgeführt wird, und (b) die Sichtbarkeitsprüfung wird auf Grundlage eines Bereichsbildes durchgeführt.
  6. Verfahren nach Anspruch 5, wobei die Sichtbarkeitsprüfung durch Testen, ob die 3D-Punkte sichtbar sind, auf Grundlage von zumindest einem von (a) einem Angrenzungstest und (b) einem Punkt-gegen-Flächennetz-Test durchgeführt wird.
  7. Verfahren nach Anspruch 1, wobei die 3D-Kamera Teil einer 3D-Kameraanordnung ist, die eine Vielzahl von 3D-Kameras aufweist, die mit dem Sehsystemprozessor verbunden ist.
  8. Verfahren nach Anspruch 7, wobei die Laufzeit-3D-Punktwolke von einem Gegenstand erfasst wird, der von zumindest zwei der 3D-Kameras abgebildet wird, wobei ein Abschnitt des Gegenstands in dem Arbeitsbereich von jeder von den zumindest zwei 3D-Kameras abgebildet wird.
  9. Verfahren nach Anspruch 1, wobei die Laufzeit-3D-Punktwolke von einem Gegenstand erfasst wird, der in dem Arbeitsbereich der 3D-Kamera selbstverdeckt ist.
  10. System in einem Sehsystem zum Schätzen eines Übereinstimmungsgrads einer 3D-Ausrichtungslage einer Laufzeit-3D-Punktwolke in Bezug auf eine trainierte Modell-3D-Punktwolke, umfassend: ein Scoring-Verfahren in einem Sehsystemprozessor, das eine Übereinstimmung einer in Frage kommenden Lage der Laufzeit-3D-Punktwolke bezogen auf die trainierte Modell-3D-Punktwolke bewertet, einschließlich eines Sichtbarkeitsprüfverfahrens, das zu Folgendem angeordnet ist: (a) Empfangen eines optischen Zentrums einer 3D-Kamera, (b) Empfangen der trainierten Modell-3D-Punktwolke, (c) Empfangen der Laufzeit-3D-Punktwolke und (d) Konstruieren einer Vielzahl von Liniensegmenten von dem optischen Zentrum zu einer Vielzahl von 3D-Punkten in der trainierten Modell-3D-Punktwolke oder der Laufzeit-3D-Punktwolke an der in Frage kommenden Laufzeitlage; und ein Bestimmungsverfahren, das auf Grundlage eines Orts der 3D-Punkte entlang entsprechenden Liniensegmenten bestimmt, ob die 3D-Punkte ausgeschlossen oder eingeschlossen werden sollen.
  11. System nach Anspruch 10, wobei das Scoring-Verfahren zu Folgendem angeordnet ist: (a) Berechnen eines Abdeckungsscores, der eine Summe von eingeschlossenen 3D-Punkten definiert, und (b) Berechnen eines Clutter-Scores, der eine Summe von ausgeschlossenen Laufzeit-3D-Punkten definiert.
  12. System nach Anspruch 10, wobei zumindest eines von Folgendem gilt: (a) das Scoring-Verfahren ist angeordnet, um die Sichtbarkeitsprüfung schrittweise durchzuführen, und (b) das Sichtbarkeitsverfahren wird auf Grundlage eines Bereichsbildes durchgeführt.
  13. System nach Anspruch 12, wobei das Sichtbarkeitsprüfverfahren durch Testen, ob die 3D-Punkte sichtbar sind, auf Grundlage von zumindest einem von (a) einem Angrenzungstest und (b) einem Punkt-gegen-Flächennetz-Test durchgeführt wird.
  14. System nach Anspruch 13, wobei der Test durch maschinenbeschleunigte SIMD-Hardware durchgeführt wird.
  15. System nach Anspruch 10, wobei die 3D-Kamera Teil einer 3D-Kameraanordnung ist, die eine Vielzahl von 3D-Kameras aufweist, die mit dem Sehsystemprozessor verbunden ist.
  16. System nach Anspruch 15, wobei die Laufzeit-3D-Punktwolke von einem Gegenstand erfasst wird, der von zumindest zwei der 3D-Kameras abgebildet wird, wobei ein Abschnitt des Gegenstands in dem Arbeitsbereich von jeder von den zumindest zwei 3D-Kameras abgebildet wird.
  17. System zum Entfernen von Störpunkten aus einem 3D-Bild eines Gegenstands, umfassend: eine Vielzahl von 3D-Kameras, die angeordnet sind, um Bilder eines Gegenstands in einem Arbeitsbereich mit einer Vielzahl von entsprechenden Betrachtungspunkten zu erfassen; ein Sichtbarkeitsverfahren, das: (a) eine gemessene 3D-Punktwolke von einer 3D-Kamera in der Vielzahl von 3D-Kameras empfängt, (b) angenommene Lagen für den Gegenstand bezogen auf die gemessene 3D-Punktwolke generiert und (c) Informationen bezogen auf den Ort und die Ausrichtung der 3D-Kamera in Bezug auf den Gegenstand verwendet, um eine Sichtbarkeit von Punkten der 3D-Punktwolke zu bestimmen; und ein Verfahren zum Generieren einer zusammengesetzten Punktwolke, das die 3D-Punktwolke von der Vielzahl von 3D-Kameras zu einer zusammengesetzten 3D-Punktwolke kombiniert, die frei von Störpunkten ist, indem Punkte weggelassen werden, die nicht durch Erscheinen in einer vorbestimmten Anzahl von Punktwolken bestätigt wurden, in denen auf Grundlage des Sichtbarkeitsverfahrens erwartet wird, dass solche Punkte sichtbar sind.
  18. System nach Anspruch 17, wobei das Sichtbarkeitsverfahren auf einer entsprechenden gemessenen Position der 3D-Kamera und einer entsprechenden lokalen Flächennormale für Punkte in der gemessenen 3D-Punktwolke in Bezug auf die 3D-Kamera basiert.
  19. System nach Anspruch 18, wobei die lokale Flächennormale auf Grundlage von Punkten generiert wird, die in der Nähe des Punkts liegen, der die Flächennormale enthält.
  20. System nach Anspruch 17, wobei die vorbestimmte Anzahl von Punktwolken durch einen automatischen oder benutzerdefinierten Schwellenwert definiert ist.
DE102017116952.0A 2016-08-01 2017-07-26 System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten Pending DE102017116952A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662369709P 2016-08-01 2016-08-01
US62/369,709 2016-08-01
US15/654,793 2017-07-20
US15/654,793 US10482621B2 (en) 2016-08-01 2017-07-20 System and method for improved scoring of 3D poses and spurious point removal in 3D image data

Publications (1)

Publication Number Publication Date
DE102017116952A1 true DE102017116952A1 (de) 2018-03-22

Family

ID=61134153

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017116952.0A Pending DE102017116952A1 (de) 2016-08-01 2017-07-26 System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten

Country Status (5)

Country Link
US (1) US10482621B2 (de)
JP (1) JP6525459B2 (de)
KR (1) KR102296236B1 (de)
CN (1) CN107680124B (de)
DE (1) DE102017116952A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9508186B2 (en) * 2013-11-07 2016-11-29 Autodesk, Inc. Pre-segment point cloud data to run real-time shape extraction faster
JP6576945B2 (ja) * 2014-11-13 2019-09-18 オリンパス株式会社 較正装置、較正方法、光学装置、撮影装置、投影装置、計測システムおよび計測方法
US10452949B2 (en) * 2015-11-12 2019-10-22 Cognex Corporation System and method for scoring clutter for use in 3D point cloud matching in a vision system
US10753726B2 (en) 2017-03-26 2020-08-25 Cognex Corporation System and method for 3D profile determination using model-based peak selection
US20190096134A1 (en) * 2017-09-26 2019-03-28 Toyota Research Institute, Inc. Augmented reality overlay
US10558844B2 (en) * 2017-12-18 2020-02-11 Datalogic Ip Tech S.R.L. Lightweight 3D vision camera with intelligent segmentation engine for machine vision and auto identification
GB2569656B (en) * 2017-12-22 2020-07-22 Zivid Labs As Method and system for generating a three-dimensional image of an object
US10846563B2 (en) 2018-09-12 2020-11-24 Cognex Corporation Methods and apparatus for generating a dense field of three dimensional data for machine vision
JP7182528B2 (ja) * 2018-09-12 2022-12-02 コグネックス・コーポレイション マシンビジョン用の画像データを処理するための方法及び装置
US10825199B2 (en) 2018-09-12 2020-11-03 Cognex Corporation Methods and apparatus for processing image data for machine vision
US10878299B2 (en) 2018-09-12 2020-12-29 Cognex Corporation Methods and apparatus for testing multiple fields for machine vision
US11665372B2 (en) * 2019-01-07 2023-05-30 Samsung Electronics Co., Ltd. Fast projection method in video-based point cloud compression codecs
CN112085786A (zh) * 2019-06-13 2020-12-15 北京地平线机器人技术研发有限公司 位姿信息确定方法及装置
CN110930442B (zh) * 2019-11-26 2020-07-31 广东技术师范大学 基于标定块的机器人手眼标定中关键点位置确定方法与装置
CA3067400A1 (en) 2019-11-28 2021-05-28 Xesto Inc. System and method for mobile 3d scanning and measurement
CN111461980B (zh) * 2020-03-30 2023-08-29 北京百度网讯科技有限公司 点云拼接算法的性能估计方法和装置
CN111539361B (zh) * 2020-04-28 2023-09-05 北京小马慧行科技有限公司 噪点的识别方法、装置、存储介质、处理器和运载工具
CN113808097B (zh) * 2021-09-14 2024-04-12 北京主导时代科技有限公司 一种列车的关键部件丢失检测方法及其系统

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5988862A (en) 1996-04-24 1999-11-23 Cyra Technologies, Inc. Integrated system for quickly and accurately imaging and modeling three dimensional objects
US6420698B1 (en) 1997-04-24 2002-07-16 Cyra Technologies, Inc. Integrated system for quickly and accurately imaging and modeling three-dimensional objects
US6297844B1 (en) 1999-11-24 2001-10-02 Cognex Corporation Video safety curtain
US7574067B2 (en) * 2003-10-03 2009-08-11 General Electric Company Surface reconstruction and registration with a helmholtz reciprocal image pair
US20050140670A1 (en) 2003-11-20 2005-06-30 Hong Wu Photogrammetric reconstruction of free-form objects with curvilinear structures
US8111904B2 (en) * 2005-10-07 2012-02-07 Cognex Technology And Investment Corp. Methods and apparatus for practical 3D vision system
JP4283816B2 (ja) 2006-03-31 2009-06-24 日本電信電話株式会社 三次元環境情報取得装置,三次元環境情報取得方法及びその方法を実現したプログラムを格納した記録媒体
US7822266B2 (en) 2006-06-02 2010-10-26 Carnegie Mellon University System and method for generating a terrain model for autonomous navigation in vegetation
JP2007322351A (ja) 2006-06-05 2007-12-13 Mitsubishi Electric Corp 3次元物体照合装置
WO2008072561A1 (ja) * 2006-12-11 2008-06-19 Mitsubishi Gas Chemical Company, Inc. テレフタル酸の製造方法
US8126260B2 (en) * 2007-05-29 2012-02-28 Cognex Corporation System and method for locating a three-dimensional object using machine vision
JP5224319B2 (ja) 2007-07-23 2013-07-03 富士フイルム株式会社 立体撮像装置および立体撮像装置の制御方法並びにプログラム
US8396284B2 (en) 2007-10-23 2013-03-12 Leica Geosystems Ag Smart picking in 3D point clouds
KR100951890B1 (ko) 2008-01-25 2010-04-12 성균관대학교산학협력단 상황 모니터링을 적용한 실시간 물체 인식 및 자세 추정 방법
CA2734143C (en) * 2008-08-15 2021-08-31 Brown University Method and apparatus for estimating body shape
US8442304B2 (en) * 2008-12-29 2013-05-14 Cognex Corporation System and method for three-dimensional alignment of objects using machine vision
WO2010088840A1 (en) 2009-02-06 2010-08-12 The Hong Kong University Of Science And Technology Generating three-dimensional models from images
US9400503B2 (en) 2010-05-20 2016-07-26 Irobot Corporation Mobile human interface robot
US20140043329A1 (en) 2011-03-21 2014-02-13 Peng Wang Method of augmented makeover with 3d face modeling and landmark alignment
US9367770B2 (en) 2011-08-30 2016-06-14 Digimarc Corporation Methods and arrangements for identifying objects
US9002099B2 (en) 2011-09-11 2015-04-07 Apple Inc. Learning-based estimation of hand and finger pose
US9008192B2 (en) * 2011-10-20 2015-04-14 Digimarc Corporation Arrangements for increasing detection confidence
US9070216B2 (en) 2011-12-14 2015-06-30 The Board Of Trustees Of The University Of Illinois Four-dimensional augmented reality models for interactive visualization and automated construction progress monitoring
US20140082358A1 (en) * 2012-09-17 2014-03-20 General Instrument Corporation Efficient key generator for distribution of sensitive material from mulitple application service providers to a secure element such as a universal integrated circuit card (uicc)
EP2720171B1 (de) * 2012-10-12 2015-04-08 MVTec Software GmbH Erkennung und Haltungsbestimmung von 3D-Objekten in multimodalen Szenen
US9154773B2 (en) 2013-03-15 2015-10-06 Seiko Epson Corporation 2D/3D localization and pose estimation of harness cables using a configurable structure representation for robot operations
US10262462B2 (en) 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
DE102013110580A1 (de) * 2013-09-24 2015-03-26 Faro Technologies, Inc. Verfahren zum optischen Abtasten und Vermessen einer Szene
US9299195B2 (en) 2014-03-25 2016-03-29 Cisco Technology, Inc. Scanning and tracking dynamic objects with depth cameras
JP6338421B2 (ja) 2014-03-31 2018-06-06 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、把持システムおよびプログラム
US20150294046A1 (en) 2014-04-04 2015-10-15 Parkervision, Inc. Optimization of Thermodynamic Efficiency vs. Capacity for a Communications Systems
WO2015155628A1 (en) 2014-04-07 2015-10-15 Eyeways Systems Ltd. Apparatus and method for image-based positioning, orientation and situational awareness
KR102204919B1 (ko) 2014-06-14 2021-01-18 매직 립, 인코포레이티드 가상 및 증강 현실을 생성하기 위한 방법들 및 시스템들
EP3016076A1 (de) * 2014-10-31 2016-05-04 Thomson Licensing Verfahren und Vorrichtung zur Entfernung von Ausreißern aus einer Hauptansicht einer Szene während der 3D-Szenen-Rekonstruktion
US20170352091A1 (en) 2014-12-16 2017-12-07 Metail Limited Methods for generating a 3d virtual body model of a person combined with a 3d garment image, and related devices, systems and computer program products
US10360469B2 (en) * 2015-01-15 2019-07-23 Samsung Electronics Co., Ltd. Registration method and apparatus for 3D image data
US10360718B2 (en) 2015-08-14 2019-07-23 Samsung Electronics Co., Ltd. Method and apparatus for constructing three dimensional model of object
US10452949B2 (en) 2015-11-12 2019-10-22 Cognex Corporation System and method for scoring clutter for use in 3D point cloud matching in a vision system
CN105787933B (zh) * 2016-02-19 2018-11-30 武汉理工大学 基于多视角点云配准的岸线三维重建装置及方法
US10867430B2 (en) * 2018-11-19 2020-12-15 Intel Corporation Method and system of 3D reconstruction with volume-based filtering for image processing

Also Published As

Publication number Publication date
JP2018055675A (ja) 2018-04-05
JP6525459B2 (ja) 2019-06-05
CN107680124B (zh) 2021-08-10
US10482621B2 (en) 2019-11-19
KR20180014677A (ko) 2018-02-09
US20180130224A1 (en) 2018-05-10
KR102296236B1 (ko) 2021-08-30
CN107680124A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
DE102008041523B4 (de) Verfahren zur dreidimensionalen Messung und Vorrichtung zur dreidimensionalen Messung
DE102015002760B4 (de) Robotersimulationssystem, das den Prozess des Entnehmens von Werkstücken simuliert
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE112012001984B4 (de) Integrieren von Video-Metadaten in 3D-Modelle
DE112016006262B4 (de) Dreidimensionaler Scanner und Verarbeitungsverfahren zur Messunterstützung für diesen
DE112010005008B4 (de) System und Verfahren zur Bestimmung von Kamerafehlkalibrierung im Laufzeitbetrieb
EP1173749B1 (de) Bildbearbeitung zur vorbereitung einer texturanalyse
DE60124604T2 (de) Stereobildmessvorrichtung
DE102006055758B4 (de) Verfahren zur Kalibrierung von Kameras und Projektoren
DE102018109774A1 (de) Bildverarbeitungssystem, Bildverarbeitungsvorrichtung und Bildverarbeitungsprogramm
DE112014001268T5 (de) Kompensation eines Scanners mit strukturiertem Licht, der in sechs Freiheitsgraden verfolgt wird
DE112011100652T5 (de) Dreidimensionale messvorrichtung, verarbei- tungsverfahren und nichtflüchtiges computer- lesbares speichermedium
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE112010004767T5 (de) Punktwolkedaten-Verarbeitungsvorrichtung, Punktwolkedaten-Verarbeitungsverfahren und Punktwolkedaten-Verarbeitungsprogramm
DE112013004534T5 (de) Verfahren zur Verbesserung eines Tiefenbilds
DE10326943A1 (de) Autonomes Fahrzeug sowie zugehörige Verfahren und Vorrichtung zur Bewegungsbestimmung, Bewegungssteuerung und Objekterkennung
WO2020104102A1 (de) Erkennung von bearbeitungsfehlern eines laserbearbeitungssystems mithilfe von tiefen faltenden neuronalen netzen
EP3688725B1 (de) Verfahren und vorrichtung zum erzeugen einer 3d-rekonstruktion eines objekts
EP2819109B1 (de) Optoelektronischen 3D-Sensor und Verfahren zum Erkennen von Objekten
DE112014006670T5 (de) Anzeigegerät für ein informationsüberlagertes bild, anzeigeprogramm für ein informationsüberlagertes bild und verfahren für ein informationsüberlagertes bild
DE102012223047B4 (de) Mehrteil-Korrespondierer (corresponder) für mehrere Kameras
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
DE112018001600T5 (de) System und verfahren zur 3d-profilbestimmung unter verwendung einer modellbasierten peak-auswahl
EP2818824B1 (de) Vorrichtung umfassend einen optoelektronischen 3D-Sensor und Verfahren zum Erkennen von Objekten

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06T0007330000

Ipc: G06T0007700000

R082 Change of representative

Representative=s name: PATENTANWAELTE OLBRICHT, BUCHHOLD, KEULERTZ PA, DE

R082 Change of representative

Representative=s name: PATENTANWAELTE OLBRICHT, BUCHHOLD, KEULERTZ PA, DE

R016 Response to examination communication