DE102019104310A1 - System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem - Google Patents

System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem Download PDF

Info

Publication number
DE102019104310A1
DE102019104310A1 DE102019104310.7A DE102019104310A DE102019104310A1 DE 102019104310 A1 DE102019104310 A1 DE 102019104310A1 DE 102019104310 A DE102019104310 A DE 102019104310A DE 102019104310 A1 DE102019104310 A1 DE 102019104310A1
Authority
DE
Germany
Prior art keywords
edges
image
information
normals
point
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
DE102019104310.7A
Other languages
English (en)
Inventor
Andrew Hoelscher
Simon Barker
Adam Wagman
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 DE102019104310A1 publication Critical patent/DE102019104310A1/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
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • 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/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/66Analysis of geometric attributes of image moments or centre of gravity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/24Character recognition characterised by the processing or recognition method
    • G06V30/248Character recognition characterised by the processing or recognition method involving plural approaches, e.g. verification by template match; Resolving confusion among similar patterns, e.g. "O" versus "Q"
    • G06V30/2504Coarse or fine approaches, e.g. resolution of ambiguities or multiscale approaches
    • 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
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Architecture (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

Die vorliegende Erfindung nimmt bei einem unter Verwendung eines Sichtsystems erfassten Bild Kante für Kante eine dynamische Gewichtung zwischen einer Punkt-zu-Ebene-Metrik und einer Punkt-zu-Kante-Metrik vor. Dadurch kann eine angewandte ICP-Technik bei einer Vielfalt von Objektgeometrien und/oder -okklusionen wesentlich robuster sein. Ein hier vorliegendes System und Verfahren stellt eine Energiefunktion bereit, welche minimiert wird, um für die Verwendung beim Ausrichten von 3D-Laufzeitbilddaten eines Objekts mit 3D-Modellbilddaten in Frage kommende 3D-Posen zu generieren. Da Normale viel präziser als Kanten sind, ist, sofern möglich, die Verwendung der Normalen wünschenswert. In manchen Anwendungsfällen, wie etwa bei Ebenen, stellen jedoch Kanten Informationen zu relativen Richtungen bereit, die aus Normalen nicht gewonnen werden können. Daher wird durch das System und Verfahren eine Normaleninformationsmatrix definiert, welche die Richtungen darstellt, in denen ausreichende Informationen gegeben sind. Die Durchführung von (z. B.) einer Hauptkomponentenanalyse („principle component analysis“, PCA) auf Basis dieser Matrix stellt eine Grundlage für die verfügbaren Informationen bereit.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Maschinensichtsysteme und im Spezielleren Sichtsysteme, welche dreidimensionale Bildmerkmale (3D-Bildmerkmale) erkennen und in Bezug auf ein angelerntes 3D-Muster ausrichten.
  • HINTERGRUND DER ERFINDUNG
  • Maschinensichtsysteme, hier auch „Sichtsysteme“ genannt, werden zur Durchführung einer Vielzahl von Aufgaben in einer Fertigungsumgebung verwendet. Im Allgemeinen besteht ein solches Sichtsystem aus einer oder mehreren Kamerabaugruppen mit einem Bildsensor (oder „Bildwandler“), welcher Graustufen- oder Farbbilder einer Szene erfasst, die ein in Fertigung begriffenes Objekt enthält. Bilder des Objekts können analysiert werden, um Daten/Informationen für Nutzer und zugehörige Fertigungsprozesse bereitzustellen. Die von der Kamera erzeugten Daten werden in der Regel durch das Sichtsystem in einem oder mehreren Sichtsystemprozessoren analysiert und verarbeitet, die speziell angefertigt sein können oder Teil einer oder mehrerer auf einem Allzweckcomputer (z. B. PC, Laptop, Tablet oder Smartphone) instanziierter Software-anwendung(en) sein können.
  • Allgemeine Sichtsystemaufgaben umfassen Ausrichtung und Prüfung. Bei einer Ausrichtungsaufgabe vergleichen Sichtsystemwerkzeuge, wie etwa das allgemein bekannte und von der Cognex Corporation aus Natick in Massachusetts, USA, vertriebene PatMax®-System, Merkmale in einem zweidimensionalen Bild (2D-Bild) einer Szene mit einem (unter Verwendung eines tatsächlich gegebenen oder synthetisch erzeugten Modells) angelernten 2D-Muster und bestimmen dabei das Vorhandensein/Fehlen sowie die Pose des 2D-Musters in der in 2D abgebildeten Szene. Diese Informationen können bei nachfolgenden Prüfvorgängen (oder sonstigen Vorgängen) dazu verwendet werden, nach Mängeln zu suchen und/oder andere Vorgänge, wie etwa die Ausmusterung mangelhafter Bauteile, durchzuführen.
  • Eine spezielle Aufgabe, bei welcher Sichtsysteme zum Einsatz kommen, ist das zur Laufzeit erfolgende Ausrichten einer dreidimensionalen Zielform (3D-Zielform) basierend auf einer angelernten 3D-Modellform. 3D-Kameras können auf einer Vielzahl von Technologien basieren - etwa auf einem Laser-Wegsensor (Profiler), einer Stereokamera, einem Sonargerät, einer Laser- oder LIDAR-Entfemungsmesskamera, einer TOF-Kamera sowie auf verschiedenen weiteren passiven oder aktiven Entfernungsmesstechnologien. Solche Kameras erzeugen ein Entfemungsbild, wobei eine Gruppe von Bildpixeln (in der Regel als Positionen entlang einer X-Achse und einer orthogonal dazu verlaufenden Y-Achse charakterisiert) erzeugt wird, welche für jedes Pixel außerdem eine (in der Regel entlang einer senkrecht zu der X-Y-Ebene verlaufenden Z-Achse charakterisierte) dritte Dimension (Höhendimension) umfasst. Alternativ dazu können solche Kameras eine Punktwolkendarstellung eines abgebildeten Objekts generieren. Bei einer Punktwolke handelt es sich um eine Ansammlung von 3D-Punkten im Raum, wobei sich jeder Punkt i als (Xi, Yi, Zi,) darstellen lässt. Eine Punktwolke kann ein komplettes 3D-Objekt, einschließlich der Rückseite und der Seitenflächen, sowie der Ober- und der Unterseite, umfassen. 3D-Punkte (Xi, Yi, Zi) stellen Orte im Raum dar, an denen das Objekt für die Kamera sichtbar ist. Bei dieser Darstellung wird leerer Raum durch das Nichtvorhandensein von Punkten dargestellt.
  • Um einen Vergleich heranzuziehen, ist eine 3D-Entfernungsbilddarstellung Z(x, y) analog zu einer 2D-Bilddarstellung I(x, y), wobei die Tiefe oder Höhe Z das ersetzt, was ansonsten die Helligkeit/Intensität I an einem gegebenen Ort x, y in einem Bild wäre. Ein Entfernungsbild stellt ausschließlich die Vorderfläche eines Objekts dar, welche unmittelbar der Kamera zugewandt ist, da jedem Punktort x, y nur eine einzige Tiefe zugeordnet ist. Das Entfernungsbild kann typischerweise nicht die Rückseite, die Seitenflächen, die Oberseite oder die Unterseite eines Objekts darstellen. Ein Entfemungsbild weist typischerweise an jedem Ort (x, y) Daten auf, selbst wenn die Kamera an den betreffenden Orten über keine Informationen verfügt. Es ist möglich, ein Entfernungsbild in einer für den Fachmann verständlichen Art in eine 3D-Punktwolke umzuwandeln.
  • Beim Ausrichten eines entweder erfassten oder durch einen synthetischen Prozess (z. B. einen CAD-Prozess) generierten Zielbildes an einem Modellbild (das ebenfalls entweder erfasst oder synthetisch gewonnen wird) besteht ein Ansatz im Zuordnen/Vergleichen der 3D-Zielpunktwolke mit einem Modell, von dem Bemühen geleitet, die am besten übereinstimmende Pose zu finden. Der Vergleich kann eine Punktebewertung der Übereinstimmung des Ziels in Bezug auf das Modell umfassen. Ein Ergebnis über einem bestimmten Schwellenwert wird als eine akzeptable Posenübereinstimmungsschätzung betrachtet und diese Informationen werden zum Generieren eines Ausrichtungsergebnisses herangezogen. Das präzise und effiziente Generieren eines Ausrichtungs-ergebnisses basierend auf 3D-Bildern stellt dennoch eine Herausforderung dar.
  • Das Ausrichten von 3D-Objekten in 3D-Entfernungsbildern oder 3D-Punktwolkenbildern lässt sich am besten mit einem oder mehreren entsprechenden 3D-Ausrichtungsalgorithmen (3D-Registrierungsalgorith-men) durchführen, welche(r) für die 3D-Formen dieser Objekte angemessen ist/sind. Wird ein unangemessener 3D-Ausrichtungsalgorithmus verwendet, kann das 3D-Ausrichtungsverfahren fehlschlagen oder schlechte Ergebnisse liefern, indem entweder eine nicht korrekte Ergebnispose gefunden wird oder überhaupt kein Ergebnis gefunden wird. Ein klassischer Ansatz zur Verfeinerung von Posenschätzungen für die Punktwolkenausrichtung bzw. Punktwolkenregistrierung besteht in einer als Iterative-Closest-Point-Verfahren (ICP-Verfahren) bezeichneten Technik zur iterativen Bestimmung nächster Punkte. Dieses verwendet einen Satz von Merkmalen, wie etwa Punktorten oder Punktnormalen, um eine Grobpose auf dem Weg der iterativen Verfeinerung in eine Finalpose umzuwandeln. Eine Auswahl, die es zu treffen gilt, ist die Metrik, welche von der ICP-Routine minimiert werden soll. Als Standardauswahlmöglichkeiten sind hierzu nennen die Punkt-zu-Linie-Berechnung, bei welcher der ICP-Prozess die Summe der Abstände von Ausgangspunkten zu deren jeweils nächster Kante minimiert, und die Punkt-zu-Ebene-Berechnung, bei welcher der ICP-Prozess die Summe der Abstände von den Ausgangspunkten zu Ebenen durch deren jeweils nächstem Zielpunkt, welche durch die Normale an dem Zielpunkt dargestellt wird, minimiert. Anerkanntermaßen ist jedoch keine der beiden Metriken besonders befriedigend, und dies aus verschiedenen Gründen. Beispielsweise kann in dem Anwendungsfall, in welchem eine Ebene zu einer Ebene ausgerichtet wird, bei der Anwendung der Punkt-zu-Ebene-Metrik das System einen Versatz auf der Normalen und eine Drehung um diese bestimmen, liefert jedoch keine Informationen hinsichtlich der Verdrehung in Bezug auf die Normale. Die Punkt-zu-Linie-Metrik weist darüber hinaus andere dem Fachmann bekannte Nachteile auf.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung beseitigt Nachteile gemäß dem Stand der Technik, indem bei einem unter Verwendung eines Sichtsystems erfassten Bild Kante für Kante eine dynamische Gewichtung zwischen einer Punkt-zu-Ebene-Metrik und einer Punkt-zu-Kante-Metrik vorgenommen wird. Dadurch kann eine angewandte ICP-Technik bei einer Vielfalt von Objekten (Bauteilen) wesentlich robuster hinsichtlich deren Geometrien und/oder Okklusionen sein. Bei einer Ausführungsform stellt ein hier vorliegendes System und Verfahren eine Energiefunktion bereit, welche minimiert wird, um für die Verwendung beim Ausrichten von 3D-Laufzeitbilddaten eines Objekts mit 3D-Modellbilddaten in Frage kommende 3D-Posen zu generieren. Da Normale viel präziser als Kanten sind, ist, sofern möglich, die Verwendung der Normalen wünschenswert. In manchen Anwendungs-fällen, wie etwa bei Ebenen, stellen jedoch Kanten Informationen zu relativen Richtungen bereit, die aus Normalen nicht gewonnen werden können. Daher wird durch das System und Verfahren eine „Normaleninformationsmatrix“ definiert, wobei es sich um eine Matrix handelt, welche die Richtungen darstellt, in denen ausreichende Informationen gegeben sind. Die Durchführung von (z. B.) einer Hauptkomponentenanalyse („principle component analysis“, PCA) auf Basis dieser Matrix stellt eine Grundlage für die verfügbaren Informationen bereit. Anschließend wird beispielsweise jede Kante in Bezug auf die Informationsmenge, welche sie in jeder jeweiligen Richtung beiträgt, und in Bezug auf die bereits verfügbaren Informationen ausgewertet. Trägt die Kante signifikante Informationen in einer Richtung bei, die für die Analyse signifikant ist, so wird dieser Kante eine hohe Gewichtung bei der Berechnung (z. B. nahe bei 1,0) zugewiesen. Andernfalls wird der Kante eine relativ geringe Gewichtung (z. B. nahe bei 0,0) zugewiesen. Diese gewichteten Daten werden unter Verwendung von (z. B.) einer linearen Minimierungsfunktion, welche simultan (gleichzeitig) die Summe der Punkt-zu-Ebene-Entfernungen plus die Summe der Punkt-zu-Kante-Entfernungen minimiert. Vorteilhafterweise verwendet dieses Verfahren diese (typischerweise) niederpräzisen Kanten ausschließlich (nur) dann, wenn die Geometrie des Objekts dies im Hinblick auf eine korrekte Posenbestimmung erfordert. Außerdem gilt es zu beachten, dass es sich bei dem vorliegenden Objekt um einen Abschnitt einer ebenflächigen Oberfläche handeln kann. Somit kann beispielsweise in dem Anwendungsfall einer Ebene das System und Verfahren Normalen verwenden, um die drei Freiheitsgrade („degrees offreedom“ oder DOFs) festzulegen, in welchen die Normalen typischerweise Informationen bereitstellen (z. B. die beiden Schiefstellungen und den Versatz entlang der Normalen der betreffenden Ebene), und werden anschließend die Kanten für die verbleibenden DOFs verwendet (z. B. die beiden Translations-richtungen innerhalb der Ebene und die Rotation um die Normale). Umgekehrt werden durch die alleinige Anwendung der Punkt-zu-Linie-Metrik typischerweise Ergebnisse generiert, die wesentlich weniger präzise sind, während die alleinige Anwendung der Punkt-zu-Ebene-Metrik ebenfalls nicht robust ist.
  • In einer beispielhaften Ausführungsform werden ein System und ein Verfahren zur Auffindung der Pose eines 3D-Modells in einem 3D-Bild eines von einer 3D-Kamerabaugruppe erfassten Objekts bereitgestellt. Das 3D-Modell wird von einem Sichtsystemprozessor gemeinsam mit dem erfassten 3D-Bild verarbeitet. Ein Posenfindungsprozess/Posenfindungsmodul, der/das mit dem Prozessor verbunden ist, vollzieht simultan eine Anpassung von 3D-Kanten in dem 3D-Modell an 3D-Kanten in dem 3D-Bild und von 3D-Normalen in dem 3D-Modell an 3D-Normalen in dem 3D-Bild um eine 3D-Pose zu bestimmen. Veranschaulichungshalber sei erwähnt, dass der Posenfindungsprozess bzw. das Posenfindungsmodul Gewichtungen für die 3D-Kanten in dem 3D-Bild und die 3D-Normalen in dem 3D-Bild anwendet, um die Verwendung von 3D-Kanten gegenüber 3D-Normalen in dem Bild zu gewichten. Der Posenfindungsprozess kann außerdem jeweils bestimmen, ob (a) eine Ebene des Objekts Informationen über die Ausrichtung in Richtungen parallel zu den 3D-Normalen bereitstellt bzw. ob (b) Kanten des Objekts Informationen über die Ausrichtung in einer oder in mehreren Richtungen senkrecht zu den Kanten bereitstellen. Er kann außerdem (a) unter Verwendung einer Punkt-zu-Linie-Metrik die 3D-Kanten in dem 3D-Modell an 3D-Kanten in dem 3D-Bild anpassen und/oder (b) unter Verwendung einer Punkt-zu-Ebene-Metrik die 3D-Normalen in dem 3D-Modell an die 3D-Normalen in dem 3D-Bild anpassen. Überdies kann der Posenfindungsprozess eine Normaleninformationsmatrix definieren, welche die Richtungen darstellt, in denen eine ausreichende Menge der Informationen gegeben ist. Eine Hauptkomponentenanalyse (PCA) kann auf Basis dieser Matrix durchgeführt werden, um die Informationen zu identifizieren und deren Verfügbarkeit im Hinblick auf die Posenfindung zu bestimmen. Der Posenfindungsprozess kann außerdem einen Auswertungsprozess umfassen, welcher die Kanten jeweils im Hinblick auf eine Menge der in entsprechenden Richtungen beigetragenen Informationen und auf die Informationen, die verfügbar sind, auswertet. Veranschaulichungshalber wertet der Auswertungsprozess Posenkanten entsprechend den folgenden Aspekten aus: (a) falls eine der betreffende Kanten eine signifikante Menge an Informationen in einer Richtung, die signifikant ist, beiträgt, so wird dieser speziellen Kante eine hohe Gewichtung bei der Berechnung zugewiesen, und (b) falls eine der betreffende Kanten keine signifikante Menge an Informationen in einer Richtung, die signifikant ist, beiträgt oder falls die Richtung nicht signifikant ist, so wird dieser speziellen Kante eine relativ geringe Gewichtung bei der Berechnung zugewiesen. Überdies kann ein linearer Minimierungsprozess vorgesehen sein, welcher simultan (gleichzeitig) eine Summe von Entfernungen, die unter Verwendung der Punkt-zu-Ebene-Metrik berechnet wurden, plus eine Summe von Entfernungen, die unter Verwendung der Punkt-zu-Kante-Metrik berechnet wurden, minimiert.
  • Figurenliste
  • Die nachstehende Beschreibung der Erfindung nimmt Bezug auf die beiliegenden Zeichnungen, in denen:
    • 1 ein Diagramm eines Sichtsystems mit einer oder mehreren 3D-Kamerabaugruppen ist, die ein Bild eines Objekts während des Anlemens oder der Laufzeit erfassen, wobei von dem Sichtsystem simultane Ausrichtungsalgorithmen (Registrierungsalgorithmen) verwendet werden;
    • 2 ein Ablaufdiagramm eines beispielhaften Anlernverfahrens für 3D-Modellbilddaten zur Verwendung beim Ausrichten von während der Laufzeit erfassten Bilddaten gemäß einer Ausführungsform ist;
    • 3 ein Diagramm ist, das eine anlemzeitspezifische Abbildung von 3D-Modellbilddaten zeigt, mit beispielhaften Begrenzungskästen, die in zwei verschiedenen Ausrichtungen um die 3D-Merkmalsätze herum vorgesehen sind, und mit Oberflächennormalen, die jeweils der 3D-Oberflächen-geometrie eines jeden beispielhaften Merkmalsatzes zugeordnet sind und durch die Unterschiede bei den Richtungen, und somit bei der Wichtigkeit der Informationen, die von jedem der Merkmalsätze hergeleitet werden, veranschaulicht werden;
    • 4 ein Diagramm ist, das ein quaderförmiges Objekt in einer bestimmten Ausrichtung zeigt, wobei die Ausrichtung mehrerer Ebenen und Kanten, welche die Form bilden, aus dem erfassten 3D-Bild bestimmt werden kann;
    • 5 ein Diagramm ist, in welchem die Quaderform aus 4 in einer Stirnflächenausrichtung ausgerichtet ist, die sich von der in 4 abgebildeten Ausrichtung unterscheidet und in welcher basierend auf der vorherrschenden Ausrichtung weniger Ebenen und Kanten präzise bestimmt werden können;
    • 6 ein Ablaufdiagramm eines Verfahrens zur während der Laufzeit erfolgenden Gewichtung von Kanten und Normaler in einem erfassten 3D-Bild eines Objekts ist, das gegenüber den Modelldaten aus 2 auszurichten ist, um die Anwendbarkeit eines jeden aus einer Mehrzahl von 3D-Ausrichtungsalgorithmen zu erwägen;
    • 7 - 7D Graphen sind, die beispielhaften Verläufe der Gaußfunktion g(A) gegenüber dem Eigenwert λ relativ zu dem Gewichtungsverfahren aus 6 zeigen; und
    • 8 ein Ablaufdiagramm eines Verfahrens zur Anwendung von 3D-Ausrichtungsalgorithmen mit angemessener Gewichtung ist, welche gemäß einer beispielhaften Ausführungsform unter Verwendung des Verfahrens aus 6 während der Laufzeit bestimmt wird.
  • DETAILLIERTE BESCHREIBUNG
  • Systemübersicht
  • 1 zeigt eine Maschinensichtsystemanordnung (hier auch „Sichtsystem“ genannt) 100 zur Verwendung beim Prüfen und/oder Analysieren von Merkmalen auf der Oberfläche 112 eines Objekts 110, welches innerhalb des Sichtfeldes („field ofview“, FOV) von einer oder mehreren 3D-Sichtsystemkamerabaugruppen 120 und 130 abgebildet wird. Bei einer jeden Kamerabaugruppe 120, 130 kann es sich um eine beliebige annehmbare Anordnung von Komponenten für die 3D-Bildgebung handeln. Die Kamerabaugruppen 120, 130 sind jeweils dafür angepasst, eine dritte orthogonale Dimension (z. B. eine Höhe entlang der entsprechenden Z1-, ZN-Achse eines jeden der entsprechenden Kamera-Koordinatensysteme 128, 138) zu bestimmen, die ein 3D-„Entfernungsbild“ der Objektoberfläche 112 (die hier, als Beispiel ohne einschränkenden Charakter, als eine Quaderform gezeigt ist) darstellt. Eine Vielzahl von Technologien kann für die Generierung von Höhendaten für entsprechende Bildpixel verwendet werden - etwa ein Laser-Wegsensor (Profiler), eine Stereokamera, ein Sonargerät, eine Laser- oder LIDAR-Entfernungsmesskamera, eine TOF-Kamera sowie verschiedene weitere passive oder aktive Entfernungsmesstechnologien. Es ist anzumerken, dass auch nur eine Kamerabaugruppe oder eine größere Anzahl (z. B, drei oder mehr) von Kamerabaugruppen in einer Gesamtanordnung verwendet werden können und dass der Begriff „3D-Kamerabaugruppe“ hier alternativ dazu verwendet werden kann, um die Gesamtanordnung von einer oder von mehreren diskreten 3D-Kamerabaugruppen zur Erzeugung einer 3D-Punktwolken-darstellung oder einer 3D-Entfernungsbilddarstellung der Objektoberfläche zu beschreiben.
  • Bei einem hier zwar nicht gezeigten, beispielhaften Typ von 3D-Kamerabaugruppe, der zum Generieren eines 3D-Entfernungsbildes oder einer 3D-Punktwolke verwendet wird, handelt es sich um einen Laser-Wegsensor, welcher ein Laserlichtfächer (oder eine andere strukturierte Beleuchtung) auf eine Objektoberfläche 112 projiziert, um eine (z. B. über die X-Achsenrichtung hinweg ausgerichtete) Zeile zu bilden, und der reflektiertes Licht an dem entsprechenden Bildwandler 126, 136 des Laser-Wegsensors von der projizierten Linie in einem relativen (spitzen) Winkel (A) zwischen der Ebene des Beleuchtungsfächers und der entsprechenden optischen Achse OA1, OAN des Bildwandlers aufnimmt. Wie beschrieben, können auch andere Modalitäten zum Generieren von Entfernungs- oder Höheninformationen, einschließlich beispielsweise LIDAR, Strukturlichtsysteme, Stereosichtsysteme (z. B. ein Paar von beabstandeten Kameras 120, 130), DLP-Messverfahren, usw. verwendet werden. Diese Systeme generieren alle ein Bild, das den Pixeln einen Höhenwert (z. B. Z-Koordinate) bereitstellt.
  • Bei einer typischen Anordnung können sich die 3-Kamerabaugruppe 120 und/oder das Objekt 110 in einer Relativbewegung befinden (z. B. in der physischen Y-Achsen-Koordinatenrichtung von einer oder mehreren Kameras), so dass die Objektoberfläche 112 durch den/die Laser-Wegsensor(en) gescannt wird und eine Abfolge von Bildern der Laserzeile in gewünschten Zeitintervallen erfasst werden - typischerweise in Verbindung mit einem Bewegungscontroller samt zugehörigem Codierer oder einer sonstigen Bewegungsmesseinrichtung (oder, alternativ dazu, in zeitbasierten Intervallen), die dem System-Sichtprozessor (150, nachfolgend beschrieben) Bewegungsinformationen 140 bereitstellt. Diesbezüglich ist eine Position eines Punktes auf dem Objekt entlang der Bewegungsrichtung als eine Koordinate Yi definiert. Die Ansammlung von Punkten (Xi, Yi, Zi,), welche von der 3D-Kamerabaugruppe erfasst wird, ist als die Punktwolke definiert. In anderen Ausführungsformen befindet sich die 3D-Kamerabaugruppe relativ zu dem Objekt nicht in Bewegung.
  • Das Kameragehäuse 124, 134 kann verschiedene Bildverarbeitungskomponenten enthalten, die einen Sichtsystemprozessor 150 bilden, der einen damit verbundenen Sichtprozess betreibt. Der Sichtprozessor 150 arbeitet mit Bilddaten 142, die auf den erfassten Bildern von Szenen und/oder auf anderen Quellen (z. B. einer CAD-Darstellung eines Modells) basieren, und kann Sichtsystemwerkzeuge und -prozesse 152 verwenden, um Informationen aus dem erfassten Bild zu extrahieren. Diese Informationen können sich auf interessierende Merkmale und auf andere Gegenstände in dem Bild beziehen - so können beispielsweise Sichtsystemwerkzeuge, wie etwa das von der Cognex Corporation aus Natick, MA, vertriebene PatMax®, dazu verwendet werden, 2D- und 3D-Merkmale in dem Bild zu analysieren und Informationen über die relative Pose, Ausrichtung und weitere Details, z. B. Kanten, Blobs usw., bereitstellen. Es können zwar alle Sichtsystemprozesse in dem Gehäuse 124, 134 der Kamerabaugruppe 120, 130 instantiiert sein, es wird jedoch ausdrücklich erwogen, dass manche oder alle der Prozesse durch eine (über Kabel oder Funk) verbundene Recheneinrichtung bzw. einen Prozessor 160, wie etwa einen speziell entwickelten Prozessor oder einen Allzweck-Computer (z. B. einen Server, PC, Laptopcomputer, Smartphone, Tablet usw.) mit entsprechender Benutzerschnittstelle (Maus/Tastatur) 162 und/oder Anzeige 164 (z. B. einem Touchbildschirm) ausgeführt werden können. Die verbundene Recheneinrichtung bzw. der Prozessor 160 kann die verarbeiteten Bilddaten dazu benutzen, über eine Kommunikationsverbindung 166 oder eine andere Schnittstellenanordnung weitere Verwendungsprozesse oder -aufgaben durchzuführen. Wenn beispielsweise das Sichtsystem Prüfaufgaben durchführt, können die Informationen dazu genutzt werden, Qualitätskontrollinformationen an eine Datenbank zu liefern oder mangelhafte Bauteile aus einer Fertigungslinie auszumustern. Wie weiter unten beschrieben, umfasst die Verwendungs-aufgabe die Nutzung von 3D-Ausrichtungsinformationen 168.
  • Ein Anlernprozess(or) oder -modul 154 handhabt das Anlernen und die Speicherung von einem oder mehreren 3D-Modellen bzw. Darstellungen, die aus 3D-Entfernungsbilddaten oder 3D-Punktwolkendaten bestehen, welche Merkmale definieren, die das Ausrichten des Modells mit vorgefundenen Merkmalen aus einem 3D-Laufzeitentfemungsbild oder 3D-Punktwolkenbild eines laufzeitspezifischen (Ziel-)Objekts erleichtern. Das angelernte Modell bzw. die angelernten Modelle können Merkmale umfassen, die in einer Gesamtansicht eines Objekts, in verschiedenen Teilen oder Orientierungen eines speziellen Objekts und/oder mehrerer Objekte vorhanden sind.
  • In der beispielhaften Ausführungsform umfassen der Sichtprozess und Sichtprozessor 150 einen Ausrichtungsprozess(or) bzw. ein Ausrichtungs-modul 156, der/das einen angemessenen Ausrichtungsalgorithmus (oder -prozess) verwendet, welcher versucht, die Merkmale des Modells und jene des laufzeitspezifischen 3D-(Ziel-)Bildes miteinander auszurichten. Der Ausrichtungsprozess(or) 156 und der Anlernprozess(or) 154 arbeiten beide mit einem Simultanalgorithmus-Abwägungsprozess(or) oder -modul 158 zusammen, der/das die Verwendung von zwei oder mehr 3D-Ausrichtungsalgorithmen basierend auf den 3D-Oberflächenmerkmalen des Modells koordiniert. Der hier verwendete Begriff „simultan“ hat die Bedeutung der allgemeinen Aussage, dass in Bezug auf ein Bild zwei oder mehrere Merkmalsätze und zugeordnete Laufzeit-Posenbestimmungsverfahren gleichzeitig, oder innerhalb derselben Verarbeitungstransaktion, erwogen und betrieben werden können, was bedeutet, dass eine wahre Simultanität nicht erforderlich ist.
  • II. Anlernen von 3D-Modellen
  • Das System und Verfahren verwendet, wie weiter unten beschrieben, angelernte Bilddaten in einem Gesamt-Ausrichtungsprozess. Ein verallgemeinertes Anlernverfahren 200 ist in 2 gezeigt, in welcher das System während der Anlernzeit ein Bild eines Modells in Form einer 3D-Punktwolke oder eines 3D-Entfemungsbildes erfasst oder ihm ein solches bereitgestellt wird. Dieses Bild kann erzeugt werden, indem eine Szene, welche ein Modell/Anlernobjekt in einer oder mehreren Ausrichtungen enthält, abgebildet wird, oder indem eine synthetische (z. B. CAD-Bild) Darstellung des Objekts und/oder von Abschnitten von diesem bereitgestellt wird. Das tatsächliche oder synthetische Bild kann einem Benutzer über eine Schnittstelle als Teil des Anlernprozesses in Schritt 212 bereitgestellt werden. Es ist anzumerken, dass der Schritt 212 optional ist und das Bild dem System direkt bereitgestellt werden kann, ohne jede Benutzereingabe betreffend die Objektart oder Schwellenwerteinstellungen. Alternativ dazu können die Schwellenwerte auch unter Verwendung eines Sichtsystemwerkzeugs basierend auf der automatisierten Erkennung der Objektart oder der Oberflächenmerkmale eingestellt werden. Wenn die Benutzerschnittstelle zum Einsatz kommt, kann das Bild wie allgemein in der Anzeige 300 aus 3 angezeigt werden. Der Benutzer kann das Bild bearbeiten, und zwar einschließlich der Platzierung eines Begrenzungskastens um einige oder alle der Anlernobjekte (Schritt 214), wie dies durch die Begrenzungskästen 310 und 320 um die entsprechenden Bilder 312 und 322 dargestellt ist. Die Größe und Form der Begrenzungskästen kann von dem Benutzer bestimmt werden oder es können die interessierenden Bereiche durch für den Fachmann verständliche, automatisierte Mechanismen umgrenzt werden. Alternativ dazu können die interessierenden Bereiche und die entsprechenden Anlernmerkmale durch die CAD-Datenquelle oder auf andere Weise durch die bzw. mit den Bilddaten bereitgestellt werden. Durch die Abgrenzung des zu analysierenden, interessierenden Bereichs vermeidet der Ausrichtungsprozess all jene Modellmerkmale, die für die Ausrichtung nicht relevant sind, und/oder von dem Modell getrennte Hintergrundmerkmale. Alternativ dazu kann auch das gesamte erfasste Bild als Modell verwendet werden. In Schritt 216 des Verfahrens 200 legt der Algorithmusauswahlprozess(or) (158 in 1) Oberflächennormalen an den Merkmalen in den interessierenden, umgrenzten Bereichen fest (siehe Begrenzungskästen 310, 320 in 3). Das daraus resultierende Modell wird dem Prozess zur Verwendung bei der während der Laufzeit erfolgenden und weiter unten (Schritt 218) beschriebenen Ausrichtung bereitgestellt.
  • Wie in 3 gezeigt, umfassen die abgebildeten (genau genommen als 3D-Entfernungsbild oder 3D-Punktwolke definierten) Oberflächen der Modelle 312, 322 Sätze von Oberflächennormalen, welche die Senkrechten an lokalen Punkten entlang der entsprechenden Oberfläche darstellen. Die Granularität von Normalen ist höchst variabel. Sie kann im Allgemeinen Teil der durch den Benutzer während der Anlernzeit spezifizierten Parameter sein oder von dem Ausrichtungssystem während der Anlernzeit unter Verwendung von (z. B.) für den Fachmann verständlichen Techniken automatisch bestimmt werden. Allgemein kann das System Sätze von Parametern für verschiedene Typen von Oberflächen und/oder Klassen von Objekten, mit denen das System gemeinhin konfrontiert ist (z. B. Bolzen, Bälle, Computerbildschirm, Schaltkreis-Chips, Flaschen, Dosen, Kappen usw.) abspeichern. Für solche Gegenstände werden vorbestimmte Parameter bereitgestellt. Alternativ dazu können spezifische Parameter für ein bestimmtes Modell durch den Benutzer eingestellt oder automatisch bestimmt werden. Es können auch Parameter für die spezifische Ausrichtung des Modells eingestellt werden. So wird etwa eine Flasche von der Seite betrachtet anders aussehen als von oben gesehen.
  • III. Ausrichten während der Laufzeit
  • Bei einer Ausführungsform verwendet der Abwägungsprozess 158 einen normalen basierten und einen kantenbasierten Ausrichtungsalgorithmus gleichzeitig (auch „simultan“ genannt), um eine Feinausrichtung durchzuführen. Dies erfolgt, nachdem ein anfänglicher Grobausrichtungs-schritt dazu benutzt worden ist, das angelernte 3D-Modell grob mit den Bilddaten zur Deckung zu bringen. Der Feinausrichtungsprozess minimiert eine Energiefunktion, wie weiter unten im Detail beschrieben. Da solche Normalen im Allgemeinen präziser sind als Kanten, werden sie bevorzugt verwendet. In manchen Fällen, wie etwa, wenn ein Ebenenmerkmal analysiert wird, stellen jedoch Kanten dem Prozess Informationen bereit, die aus Normalen nicht gewonnen werden können. Somit wird durch den Prozess eine „Normaleninformationsmatrix“ definiert, wobei es sich um eine Matrix handelt, welche die Richtungen darstellt, für welche auf dem Bildmerkmal Informationen verfügbar sind. Beispielsweise wird eine Hauptkomponentenanalyse (PCA) auf Basis dieser Matrix durchgeführt, um eine Grundlage für die Informationen in dem Prozess bereitzustellen. Jede Kante wird anschließend in Bezug auf die Informationsmenge, welche sie in jeder Richtung beiträgt, und in Bezug auf die Informationen, über die der Prozess bereits verfügt, ausgewertet. Trägt diese Kante signifikante Informationen in einer Richtung bei, die für die Ausrichtung verwendbar ist, so erhält diese Kante eine hohe Gewichtung (d. h. nahe bei 1,0). Andernfalls fällt deren Gewichtung relativ gering aus (d. h. nahe bei 0,0). Diese Gewichtungen werden anschließend einer linearen Minimierungsfunktion unterzogen, welche die Summe der Punkt-zu-Ebene-Entfemungen plus die Summe der gewichteten Punkt-zu-Kante-Entfernungen minimiert.
  • Vorteilhafterweise verwendet das oben beschriebene Verfahren diese niederpräzisen Kanten ausschließlich (nur) dann, wenn die Geometrie des in 3D abgebildeten Objekts dies erfordert. Beispielsweise können im Anwendungsfall eines Ebenenmerkmals von dem System Normalen verwendet werden, um die drei Freiheitsgrade zu fixieren, über welche die Normalen im Allgemeinen Informationen bereitstellen (das heißt, die zwei orthogonalen Schiefstellungsgrade und den Versatz entlang der Normalen der Ebene), wobei anschließend die Kanten für die verbleibenden Freiheitsgrade (DOFs) (das heißt, die beiden Translationen innerhalb der Ebene und die Rotation um die Normale) verwendet werden. Die alleinige Verwendung der Punkt-zu-Linie-Metrik liefert ein signifikant weniger präzises Ergebnis und die Verwendung der Punkt-zu-Ebene-Metrik ist absolut nicht robust.
  • In weiterer Beschreibung treten bei dem Versuch, eine Instanz eines Objekts in einer 3D-Szene zu lokalisieren, Kamerablickwinkel und Szenenmerkmale auf, die typischerweise zu fehlenden Informationen führen. Wird das Objekt unter Verwendung einer CAD-Datei beschrieben, so kann das Objekt vollständig beschrieben werden, wobei jede Oberfläche und jedes zugehörige Merkmal vollständig spezifiziert sind. Falls jedoch die Szene unter Verwendung von nur einem 3D-Sensor erfasst wird, können die Beschränkungen des Sensors die verfügbaren Informationen einschränken und begrenzen. Beispielsweise können Teile der Szene die Sicht auf die Gesamtheit des Objekts versperren und/oder es kann das Objekt selber manche seiner eigenen Abschnitte verdecken - wobei die Kamera z. B. die vorderen Seiten des Objekts, nicht jedoch deren hintere Seiten abbilden kann. Der Veranschaulichung halber wird nun auf 4 und 5 Bezug genommen, welche jeweils eine beispielhafte Szene 400 bzw. 500 darstellen, in denen eine quaderförmige Schachtel 410 unterschiedlich ausgerichtet ist bzw. aus unterschiedlichen Blickwinkeln/-punkten („angles/points-of-view“, POVs) betrachtet wird. In der Szene 400 aus 4 sind die Flächen 412 und 416 gezeigt. Nach der in der Szene 500 aus 5 vorgenommenen POV-Veränderung ist jedoch nur die Fläche 414 sichtbar und es ist außerdem eine in der Szene 400 nicht vorhandene, untere Fläche 510 sichtbar. Dadurch kann die Fähigkeit des Systems zu einer korrekten 3D-Messung des Objekts eingeschränkt werden. Allgemeiner gesprochen, kann es daher der für die 3D-Abbildung des Objekts 410 verwendete POV aufgrund von möglicherweise fehlenden Informationen schwierig machen, Objektabmessungen in allen drei orthogonalen Achsen (420 in 4) des Koordinatensystems zu definieren.
  • Ein klassisches Verfahren zur Verfeinerung von Posenschätzungen besteht in dem sogenannten Iterative-Closest-Point-Verfahren (ICP-Verfahren) zur iterativen Bestimmung nächster Punkte. Dieses Verfahren bzw. dieser Algorithmus verwendet einen Satz von Merkmalen, wie etwa Punktorten oder Punktnormalen, um eine Grobpose auf dem Weg der iterativen Verfeinerung in eine Finalpose (Feinpose) umzuwandeln. Eine Auswahl, die es zu treffen gilt, ist die Metrik, welche von der ICP-Routine minimiert werden soll. Als Standardauswahlmöglichkeiten sind hier zu nennen die Punkt-zu-Linie-Berechnung, bei welcher der ICP-Prozess die Summe der Abstände von Ausgangspunkten zu deren jeweils nächster Kante minimiert, und die Punkt-zu-Ebene-Berechnung, bei welcher der ICP-Prozess die Summe der Abstände von den Ausgangspunkten zu Ebenen durch deren jeweils nächstem Zielpunkt, welche durch die Normale an dem Zielpunkt dargestellt wird, minimiert. Bei dem ICP-Algorithmus wird eine 3D-Punktwolke, das Referenz- oder Zielbild, feststehend gehalten, während die andere 3D-Punktwolke, das Ausgangsbild hinsichtlich einer bestmöglichen Anpassung an das Zielbild transformiert wird. Das Referenzbild und das Ausgangsbild können dem angelernten Modell und dem erfassten Laufzeitobjektbild entsprechen. Der ICP-Algorithmus revidiert in iterativer Weise die Transformation (Kombination aus Translation und Rotation), die erforderlich ist, um die Distanz zwischen der Ausgangspunktwolke und der Referenzpunktwolke zu minimieren. Es kann eine anfängliche Schätzung der Transformation vorgenommen werden, die erforderlich ist, um das Ausgangsbild mit dem Referenzbild auszurichten und es werden außerdem ein oder mehrere Kriterien für das Beenden der Iterationen bereitgestellt. Anschließend gibt der Algorithmus eine verfeinerte Transformation (Ergebnispose) aus. Im Betrieb geht der Algorithmus wie folgt vor:
    • Finde für jeden Punkt in der Ausgangspunktwolke den jeweils nächstliegenden Punkt in der Referenzpunktwolke;
    • schätze unter Verwendung einer auf dem mittleren quadratischen Fehler beruhenden Bewertungsfunktion jene Kombination aus Rotation und Translation, durch welche jeder Ausgangspunkt am besten mit seiner in dem vorangegangenen Schritt gefundenen Entsprechung ausgerichtet wird;
    • transformiere die Ausgangspunkte unter Verwendung der so gewonnenen Transformationen; und
    • wiederhole den Vorgang, unter erneuter Zuordnung der Punkte.
  • Es ist anzumerken, dass der ICP-Algorithmus besonders gut für bestimmte Objektformen verwendbar ist, bei denen die Verteilungsschwankung der Oberflächennormalen hoch ist (zum Beispiel bei der Form 322 in 3) (d. h. oberhalb eines gegebenen „Hoch“-Schwellenwerts). Umgekehrt ist ein ICP- und kantenmerkmalbasierter Hybridalgorithmus in jenen Fällen wünschenswert, in denen nur eine geringe Schwankung gegeben ist (d. h. unterhalb eines gegebenen „Niedrig“-Schwellenwerts) (zum Beispiel bei der Form 312 in 3).
  • Wenn somit das quader- bzw. schachtelförmige Objekt 410 gemäß der abgebildeten Szene 500 (5) ausgerichtet wird, so würde die Punkt-zu-Ebene-Technik versagen. Die zur Durchführung einer vollständigen, korrekten Ausrichtung benötigten Informationen sind (genau genommen) in der abgebildeten Szene 500 vorhanden, die Punkt-zu-Ebene-Metrik kann jedoch auf diese Informationen nicht zugreifen, da diese Informationen in den Kanten 530 des Objekts und nicht in den frei sichtbaren Ebenen 414 und 510 dargestellt sind. In diesem Anwendungsfall kann die Punkt-zu-Ebene-Metrik nicht zwischen zwei Ergebnissen unterscheiden, die sich nur durch eine horizontale Neigungslinie unterscheiden.
  • Ähnliche Entartungen ergeben sich bei einer alleinigen Verwendung der Punkt-zu-Linie-Metrik auf ein abgebildetes Objekt wie beispielsweise die Schachtel 410. Die Schwierigkeit liegt darin, dass aufgrund der POV-Beschränkungen des 3D-Bildsensors bestimmte Informationen nur dann verfügbar sind, wenn bestimmte Merkmale in Betracht gezogen werden. Im Hinblick auf ein robustes Ausrichten einer großen Vielfalt von Teilen in einer großen Vielfalt von Ausrichtungen sollte daher während des ICP-Verfeinerungsprozesses mehr als nur ein Merkmal in Betracht gezogen werden.
  • Eine durch die beispielhafte Ausführungsform gelöste Aufgabe besteht in einem Verfahren, eine effiziente Technik zur Kombination mehrerer Merkmale in nur einer hybriden Metrik bereitzustellen. Da die Punkt-zu-Ebene-Metrik mit Abständen zu Ebenen und die Punkt-zu-Linie-Metrik mit Abständen zu Linien arbeitet, ist die Kombination dieser Metriken zu einem einzigen, globalen Anpassungsfehler, welcher sodann minimiert werden kann, kein einfaches Unterfangen. Überdies kann ein typisches 3D-Bild viel mehr Normalen als Kanten enthalten und ist dieser Eigenschaft Rechnung zu tragen, da andernfalls der Beitrag der Kanten nur sehr gering sein wird, wodurch im Wesentlichen eine Punkt-zu-Ebene-Metrik generiert wird (da die Punkt-zu-Ebene-Metrik die zahlreich vorhandenen Normalen und die Punkt-zu-Linie-Metrik die nur spärlich vorhandenen Kanten verwendet). Aufgrund dieser Unausgeglichenheit kommt es zu einer wesentlichen Verschiebung der Gewichtung hin zu den Punkt-zu-Ebene-Ergebnissen. Außerdem sind Normalen (in der Regel) wesentlich präziser als die Kanten, welche in der Art von Bildern vorkommen, um die es bei industriellen Sichtsystemanwendungen gemeinhin geht, und es kann ein Durchschnittswert aus viel mehr Punkten gewonnen werden, um eine Normale zu schätzen als dies für die Schätzung einer Kante möglich ist. Die Verwendung von mehreren (zwei oder mehr) Metriken ist zwar in einem akademisch geprägten Umfeld oder in der ICP-spezifische Fachliteratur weniger zweckmäßig (teilweise auch aufgrund der Komplexität einer hybriden Umsetzung), es ist hier jedoch anzumerken, dass die Verwendung von zwei oder mehr Metriken zur Analyse von Objekten mittels ICP besonders wünschenswert sein kann. Das heißt, die einer Einzelmetrik innewohnenden Beschränkungen werden nur dann problematisch, wenn es darum geht, Bilder von einer Mehrzahl von Objekten in einer Mehrzahl von relativen Ausrichtungen miteinander auszurichten - und darin besteht gerade die vordringliche Herausforderung bei einer hier behandelten, industriellen Sichtsystemumgebung.
  • Wie weiter oben allgemein beschrieben, arbeitet die ICP in einer iterativen Weise, wobei jede Iteration aus zwei Stufen besteht: (a) dem In-Beziehung-Setzen von Merkmalen zwischen dem Ausgangsdatensatz und dem Zieldatensatz und (b) dem Minimieren einer Metrik basierend auf den zueinander in Beziehung gesetzten Merkmalen. Die Metrik nimmt die Form einer Funktion an, deren Eingabewerte Merkmalentsprechungen sind, und deren Ausgabewert eine einzelne Zahl ist. Für die Punkt-zu-Ebene-Metrik gilt die folgende Funktion: F = ( ( d i M * s i ) n i ) 2
    Figure DE102019104310A1_0001
  • Wobei di für die i-te Zielposition, si für die i-te Ausgangsposition, ni für die i-te Ausgangsnormale, M für die Pose, mit der die Ausgangsbilder auf die Zielbilder abgebildet werden, steht, und das Skalarprodukt bezeichnet.
  • Für die Punkt-zu-Linie-Metrik gilt die folgende Formel: G = ( ( d i M * s i ) × u i 2
    Figure DE102019104310A1_0002
  • Das Symbol ui steht für die i-te Kantenrichtung und × bezeichnet das Kreuzprodukt. Die oben beschriebene Beziehung kann allgemein als dem Fachmann bekannt angenommen werden. In einer beispielhaften Ausführungsform wird nun zu der Beziehung die Hybridmetrik H beigesteuert, die aus der folgenden Gleichung besteht: H = ( ( d i M * s i ) n i ) 2 + α i ( ( d i M * s i ) × u i 2
    Figure DE102019104310A1_0003
  • Der Metrikwert H besteht aus der Summe der Punkt-zu-Ebene- und der Punkt-zu-Linie-Metrik, mit einem neuen Kantenentsprechungs-Gewichtungswert, αi. Zur Veranschaulichung sei erwähnt, dass diese Gewichtungen während jeder Iteration dynamisch berechnet werden und nicht vorab berechnet oder im Voraus abgespeichert werden. Bei jeder Gewichtung handelt es sich um eine nichtnegative Zahl, die darstellt, wie wichtig die betreffende Entsprechung für das Auffinden einer guten Pose ist (wobei höhere Zahlen eine höhere Wichtigkeit anzeigen). Es folgt eine Beschreibung der Art, wie Gewichtungen gemäß einer Ausführungsform berechnet werden.
  • Bei der Berechnung von Gewichtungen sind zumindest zwei Überlegungen zu berücksichtigen: (a) eine Ebene eines Objekts stellt Informationen über die Ausrichtung in Richtungen parallel zu der Normalen bereit und (b) eine Kante eines Objekts stellt Informationen über die Ausrichtung in Richtungen senkrecht zu der Kante bereit. Basierend auf diesen Überlegungen und der Bevorzugung der Verwendung von Normalen anstelle von Kanten, sofern ausreichend Informationen vorhanden sind, kommt sodann, unter Bezugnahme auf 6, das Verfahren 600 zur Anwendung. Als Erstes werden unter Heranziehung des erfassten Laufzeitbildes in Schritt 610 die Richtungen berechnet, in denen die Normalen die geringste Informationsmenge bereitstellen. Dies kann durch die Anwendung einer Hauptkomponentenanalyse auf die Normale erfolgen. Als Beispiel ohne einschränkenden Charakter werden durch dieses Verfahren die drei Eigenvektoren der durch n i * n i T
    Figure DE102019104310A1_0004
    berechneten Matrix gefunden. Dieser Ansatz liefert dadurch drei Eigenvektoren und Eigenwerte. Dieser Ansatz stellt eine Zahl bereit, welche angibt, wie viele Informationen in der Richtung des Eigenvektors des Eigenwerts vorhanden sind (wobei Eigenwerte nahe bei Null eine geringe Informationsmenge anzeigen und größere Eigenwerte eine größere Informationsmenge anzeigen). Ein angemessener Schwellenwert kann dafür herangezogen werden, einen Abschaltwert zu bestimmen, sobald ausreichend Informationen gegeben sind.
  • Im Spezielleren fließen in Schritt 620 des Verfahrens 600 die Eigenwerte in eine Messberechnung ein, welche den diesem Eigenvektor zugeschriebenen Wichtigkeitsgrad bestimmt. Dies kann dadurch erfolgen, dass der Eigenwert λ durch die Gaußfunktion f(x; a, b, c) abgebildet wird, die auch als g(A) charakterisiert ist, f ( x ; a , b , c ) = a * e ( x b ) 2 2 * c 2
    Figure DE102019104310A1_0005
    wobei eine Grundverteilungskurve 710 in Graph 700 aus 7 gezeigt ist, und die drei Konstanten a, b und c Zahlen sind, welche die Form der Gaußglocke definieren. Die erste, a, ist der Wert des höchsten Punktes der Kurve; b definiert die Translation um die X-Achse; c definiert die Breite der Kurve. Bei einer beispielhaften Umsetzung kann a auf 10, b auf Null und c auf 2 eingestellt sein (somit ist der Nenner des Exponenten gleich 8). Da jedoch die beispielhaften Eigenwerte λ für den gegenwärtigen Anwendungsfall stets positiv sind, kann die linke Seite der Kurve 710 unberücksichtigt bleiben, wodurch sich der in 7A abgebildete Graph 720 und die zugehörige Positivwert-Kurve 722 ergeben. Dies stellt eine beispielhafte Verteilung für die Verwendung in einer Ausführungsform des vorliegenden Systems und Verfahrens dar. Die X-Achse stellt den Eigenwert dar und die Y-Achse ist eine Konstante, die dazu verwendet wird, die Gewichtungen von Kanten bei Betrachtung dieser Richtung zu multiplizieren. Somit kann in diesem Fall, wenn der Eigenwert für eine bestimmte Eigenrichtung sehr klein ist, der Gewichtungsmultiplizierer ungefähr gleich 10 sein, und kann, wenn der Eigenwert für eine bestimmte Eigenrichtung sehr groß ist, der Gewichtungsmultiplizierer gegen 0 gehen. Wenn daher eine Kante Informationen in einer Richtung beiträgt, deren Eigenwert groß ist (d. h., wenn für diese Richtung bereits signifikante Informationen vorhanden sind), dann wird dieser Kante eine geringe Gewichtung zugewiesen (da der Gewichtungsmultiplizierer niedrig ist). Wenn umgekehrt eine Kante Informationen in einer Richtung beiträgt, deren Eigenwert klein ist (d. h. in einer Richtung, für die bislang nur wenige oder gar keine Informationen verfügbar sind), dann wird deren Gewichtung groß (da der Gewichtungsmultiplizierer hoch ist). Allgemeiner gesprochen können in alternativen Ausführungsformen verschiedene Funktionen zur Anwendung kommen, deren Ausgabewert (a) groß ist, wenn der Eingabewert klein ist, (b) klein ist, wenn der Eingabewert groß ist, (c) stetig ist, und (d) monoton fallend ist. In einem Beispiel kann eine schräg abwärts geneigte Linie eine praktikable Funktion bereitstellen. Somit stellt die oben beschriebene Gaußfunktion einen komfortablen und effizienten Mechanismus zur Erreichung des gewünschten Ziels, basierend auf den für die Parameter a, b und c verwendeten, besonderen Werten dar. Die Parameter können auch auf einen anderen Wert eingestellt werden, um das gewünschte Ergebnis zu erzielen - beispielsweise kann c auf 2,5 gestellt werden.
  • Durch das Verändern des Parameters a können die Gewichtungskanten dahingehend gesteuert werden, wann sie Informationen in einer neuen Richtung beitragen. Es sei angemerkt, dass, wenn a gleich 100 ist, Kanten wesentlich signifikanter werden als Normalen. Wenn umgekehrt a gleich 1 ist, werden Kanten weniger signifikant als bei der gegenwärtigen Umsetzung.
  • Durch Verändern des Parameters b (von seinem Normalwert 0) wird die Gaußsche Kurve 732 horizontal verschoben, wie dies in dem beispielhaften Graphen 730 in 7B gezeigt ist. Da diese Funktion (bei welcher z. B. b = 2) in der positiven Hälfte der Realen Zahlen nicht monoton fallend ist, ist sie keine effiziente Funktion für die Ausführungsform. Desgleichen generiert ein negativer Wert für b die Kurve 742 in Graph 740 aus 7C. Wie gezeigt, weist die positive Hälfte der Kurve 742 in diesem Beispiel einen steileren Abfall auf. Eine solche Eigenschaft lässt (womöglich nachteiligerweise) den Teil der Kurve weg, in welchem der Abfall gering ist (zum Beispiel den Bereich zwischen 0 und 0,001).
  • Durch Verändern des Wertes für c wird die Erstreckung der Kurve nach außen verändert, was sich auf die Größe der Gewichtung auswirken kann, welche Kanten mit geringem Informationsgehalt zugewiesen wird. Somit kann der Wert von c erhöht werden, um Kanten mit geringem Informationsgehalt höher zu gewichten. Um Kanten mit geringem Informationsgehalt geringer zu gewichten, kann der Wert von c vermindert werden. 7D zeigt einen Graphen 750, welcher die Kurve 752 der oben beschriebenen Gaußglocke (7D) und eine zusätzliche Verteilungskurve 754 mit einem Wert von c gleich 4. In der zweiten Kurve 754 sollte es sich verstehen, dass eine Kante mit geringem Informationsgehalt (eine, bei welcher der Eigenwert größer ist) auf der X-Achse weiter rechts gelegen ist und somit eine größere Gewichtung zugewiesen bekommen würde.
  • Außerdem sollte es sich verstehen, dass ein geringer Eigenwert in der Gaußfunktion (oder in einer ähnlichen Funktion) bedeutungsvoll ist, da, wenn die Normalen nicht ausreichend Informationen über eine Richtung bereitstellen, solche Informationen von den Kanten bereitzustellen wären.
  • Anschließend wird in Schritt 630 der Verfahrens 600 die Gewichtung α jeder einzelnen Kante durch die folgende Formel bestimmt: α = i = 1 3 sin ( a n g l e ( u , v i ) ) * g ( λ i )
    Figure DE102019104310A1_0006
    wobei u für die Kante und vi für den i-ten Eigenvektor steht. Die obige Formel beinhaltet zwei Teile. Der erste Teil bezieht sich darauf, wie viele Informationen die betreffende Kante zu einer gegebenen Richtung beiträgt und wie wichtig diese Richtung für die Gesamtberechnung der Gewichtung ist. Somit sollte, wenn die gegenwärtige Kante signifikante Informationen beiträgt und diese Richtung nicht von den Normalen bereitgestellt wird, die berechnete Gewichtung hoch sein. Jede andere Kombination aus Informationsgehalt und Richtungswichtigkeit sollte umgekehrt zu einer niedrigen berechneten Gewichtung führen. Da außerdem der Sinus des Winkels zwischen der Kante und dem Eigenvektor ein Maß dafür ist, wie senkrecht zueinander die beiden Vektoren sind, kann dadurch über diesen gemessen werden, wie viele Informationen die Kante zu der entsprechenden Richtung beiträgt (da Kanten Informationen über senkrecht zu ihnen verlaufende Richtungen beitragen). Der zweite Teil der obigen Formel betrifft die Frage, wie wichtig die betreffende Richtung ist - wenn der Eigenwert gering ist, so tragen die Normalen keine signifikanten Informationen in dieser jeweiligen Richtung bei, und somit wird der Eigenwert g(A) groß sein. Dies wird durch den Graphen 700 in 7 veranschaulicht, welcher einen beispielhaften Verlauf 710 von g(A) gegenüber dem Eigenwert λ zeigt. Es ist anzumerken, dass der Wert für g(A) gegen Null (0) geht, wenn sich der Wert für λ erhöht (in diesem Beispiel über ungefähr λ=7).
  • Der berechnete Gewichtungswert oder die berechneten Gewichtungswerte α werden in Schritt 640 dem laufzeitspezifischen Ausrichtungsverfahren für Kanten und Normalen bereitgestellt. Mit diesen Gewichtungen kann das Verfahren die Hybridmetrik definieren und anschließend dem Fachmann bekannte Standard-Integralrechnungsverfahren verwenden, um eine in Frage kommende Pose zu bestimmen, welche diese Metrik bei der Ausrichtung minimiert (z. B. die Transformationen verfeinert usw.).
  • Es wird nun auf das laufzeitspezifische 3D-Grob- und -Feinausrichtungsverfahren 800 aus 8 Bezug genommen. In Schritt 810 werden ein oder mehrere Objekte während der Laufzeit innerhalb des Sichtfeldes von einer oder mehreren 3D-Kameras platziert und werden dann ein oder mehrere Bilder der Szene erfasst. In Schritt 820 werden die abgespeicherten Anlern- bzw. Modellinformationen für die Ausrichtung der Laufzeitbilddaten, und alle sonstigen Daten, die zur Fertigstellung des Ausrichtungsprozesses nötig sind, bereitgestellt - Schwellenwerte, spezielle Algorithmen, Einstellungen usw. (die vor oder nach der weiter unten in Schritt 830 beschriebenen Grobausrichtung vorgenommen werden können. Eine Grobausrichtung wird in Schritt 830 durchgeführt, bei welchem die erkannten Merkmale des Objekts bzw. der Objekte grob mit den Modellmerkmalen zur Übereinstimmung gebracht werden. Dies kann beinhalten, dass die Merkmale in dem Laufzeitbild mit verschiedenen Modellen verglichen werden, um die nächstliegende Übereinstimmung bereitzustellen - beispielsweise eine Ausrichtung des Modells, die der Ausrichtung des Laufzeitmerkmals am nächsten kommt. Die Grob-ausrichtung kann, neben anderen Grob-Registrierungsverfahren, auf einer Ausrichtung von Kanten oder auf einem Vergleich von Ausgangs- und Zieloberflächennormalen basieren.
  • Die 3D-Ausrichtung wird anschließend in Schritt 840 verfeinert, welcher beinhaltet, dass die Objektmerkmale in dem bzw. den 3D-Bild(ern) analysiert werden und die Eigenschaften von Kanten und Normalen bestimmt werden, um die weiter oben beschriebenen Gewichtungen zu generieren. Diese Gewichtungen werden, wie weiter oben beschrieben, in iterativer Weise auf (z. B.) Punkt-zu-Linie-Verfahren und Punkt-zu-Ebene-Verfahren (oder auf ICP-basierte Verfahren) angewendet, so dass in Frage kommende 3D-Posen generiert werden können. Besonders anzumerken hierbei ist, dass eine in Frage kommende Pose generiert wird, die simultan (gleichzeitig) 3D-Kanten in dem 3D-Modell mit 3D-Kanten in dem 3D-Bild und 3D-Normalen in dem 3D-Modell mit 3D-Normalen in dem 3D-Bild zur Übereinstimmung bringt. Herkömmliche Ausrichtungsverfahren können anschließend auf die Posen angewandt werden, um beispielsweise bestimmte 3D-Formen in 2D-Bilder aufzulösen und eine kantenbasierte Verfeinerungstransformation unter Verwendung von Sichtwerkzeugen (152 in 1) durchzuführen. Die Ergebnisse werden dann in Schritt 850 zur Verwendung in nachfolgenden Prozessen, wie beispielsweise der Qualitätskontrolle, der Bauteilprüfung, der Robotermanipulation und/oder der Bauteilmontage bereitgestellt.
  • Schlussbemerkung
  • Es versteht sich, dass das weiter oben beschriebene System und Verfahren zum Ausrichten von 3D-Objekten in Bezug auf 3D-Modelldaten auf wirksame Weise mit der Tatsache umgeht, dass Objekte innerhalb einer abgebildeten Szene in einer Vielfalt von Ausrichtungen betrachtet werden können, die sich nicht für eine Betrachtung durch nur einen bestimmten Posenbestimmungs- bzw. Posenausrichtungsalgorithmus eignen. Im Spezielleren kann das beispielhafte System und Verfahren eine flexible Entscheidung darüber treffen, ob die Verwendung von Kanten oder Normalen in dem erfassten 3D-Merkmalsatz vorzuziehen ist. Dadurch lassen sich bessere Ergebnisse auf effizientere Weise generieren.
  • Im Vorangegangenen wurden beispielhafte Ausführungsformen der Erfindung eingehend beschrieben. Diverse Modifikationen und Hinzufügungen können vorgenommen werden, ohne dass dadurch von dem Geist und dem Umfang der vorliegenden Erfindung abgewichen wird. Merkmale einer jeden der verschiedenen weiter oben beschriebenen Ausführungsformen können nach Maßgabe der Angemessenheit mit Merkmalen anderer beschriebener Ausführungsformen kombiniert werden, um in entsprechenden neuen Ausführungsformen eine Vielzahl von Merkmalkombinationen bereitzustellen. Darüber hinaus ist festzuhalten, dass obwohl das Vorstehende eine Reihe von getrennten Ausführungsformen der Vorrichtung und des Verfahrens gemäß der vorliegenden Erfindung zeigt, das hier Beschriebene lediglich veranschaulichenden Charakter für die Anwendung der Grundsätze der vorliegenden Erfindung hat. Es ist anzumerken, dass ein hier definiertes „Objekt“ auch einen Teilbereich einer ebenflächigen Oberfläche umfassen kann. Außerdem werden beispielsweise verschiedene hier verwendete richtungs- und ausrichtungsbezogene Ausdrücke (und grammatikalische Abwandlungen derselben) wie „vertikal“, „horizontal“, „aufwärts“, „abwärts“, „untere, -r/-s“, „obere, -r/-s“, „seitliche, -r/-s“, „vordere, -r/-s“, „hintere, - r/-s“, „linke, -r/-s“, „rechte, -r/-s“, „vorwärts“, „rückwärts“ und dergleichen nur als relative Bezüge und nicht als absolute Ausrichtungen bezogen auf ein festes Koordinatensystem wie etwa auf die Wirkrichtung der Schwerkraft verwendet. Darüber hinaus kann ein hier abgebildeter Prozess oder Prozessor mit anderen Prozessen und/oder Prozessoren kombiniert werden oder in verschiedene Teilprozesse oder Teilprozessoren unterteilt werden. Solche Teilprozesse und/oder Teilprozessoren können gemäß vorliegenden Ausführungsformen auf verschiedenartige Weise miteinander kombiniert werden. Gleichermaßen wird ausdrücklich erwogen, dass jede Funktion, jeder Prozess und/oder jeder Prozessor, die hier angeführt sind, unter Verwendung von elektronischer Hardware, von Software bestehend aus auf einem nichtflüchtigen, computerlesbaren Medium vorhandenen Programmanweisungen, oder aus einer Kombination aus Hardware und Software umgesetzt sein kann bzw. können. Demgemäß soll die vorliegende Beschreibung lediglich beispielhaften Charakter aufweisen und sei der Umfang der vorliegenden Erfindung dadurch in keinster Weise eingeschränkt.

Claims (20)

  1. Verfahren zur Auffindung der Pose eines 3D-Modells in einem 3D-Bild eines von einer 3D-Kamerabaugruppe erfassten Objekts, umfassend die Schritte, dass: das 3D-Modell einem Sichtsystemprozessor bereitgestellt wird; das erfasste 3D-Bild dem Sichtsystemprozessor bereitgestellt wird; und mithilfe des Prozessors eine Pose gefunden wird, welche simultan eine Anpassung von 3D-Kanten in dem 3D-Modell an 3D-Kanten in dem 3D-Bild und von 3D-Normalen in dem 3D-Modell an 3D-Normalen in dem 3D-Bild vollzieht.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Findens umfasst, dass Gewichtungen für die 3D-Kanten in dem 3D-Bild und die 3D-Normalen in dem 3D-Bild angewendet werden, um die Verwendung von 3D-Kanten gegenüber 3D-Normalen in dem Bild zu gewichten.
  3. Verfahren nach Anspruch 2, wobei der Schritt des Findens bestimmt, ob (a) eine Ebene des Objekts Informationen über die Ausrichtung in Richtungen parallel zu den 3D-Normalen bereitstellt und ob (b) Kanten des Objekts Informationen über die Ausrichtung in einer oder in mehreren Richtungen senkrecht zu den Kanten bereitstellen.
  4. Verfahren nach Anspruch 1, ferner umfassend, dass die 3D-Kanten in dem 3D-Modell unter Verwendung einer Punkt-zu-Linie-Metrik an die 3D-Kanten in dem 3D-Bild angepasst werden.
  5. Verfahren nach Anspruch 4, ferner umfassend, dass die 3D-Normalen in dem 3D-Modell unter Verwendung einer Punkt-zu-Ebene-Metrik an die 3D-Normalen in dem 3D-Bild angepasst werden.
  6. Verfahren nach Anspruch 1, ferner umfassend, dass die 3D-Normalen in dem 3D-Modell unter Verwendung einer Punkt-zu-Ebene-Metrik an die 3D-Normalen in dem 3D-Bild angepasst werden.
  7. Verfahren nach Anspruch 3, wobei der Schritt des Findens umfasst, dass eine Normaleninformationsmatrix definiert wird, welche die Richtungen darstellt, in denen eine ausreichende Menge der Informationen gegeben ist.
  8. Verfahren nach Anspruch 7, ferner umfassend, dass eine Hauptkomponentenanalyse (PCA) auf Basis der Matrix durchgeführt wird, um die Informationen zu identifizieren und deren Verfügbarkeit im Hinblick auf deren Verwendung bei dem Schritt des Findens zu bestimmen.
  9. Verfahren nach Anspruch 8, wobei der Schritt des Anwendens umfasst, dass die Kanten jeweils im Hinblick auf eine Menge der in entsprechenden Richtungen beigetragenen Informationen und auf die Informationen, die verfügbar sind, ausgewertet werden.
  10. Verfahren nach Anspruch 9, wobei in dem Schritt des Durchführens die Kanten entsprechend den folgenden Aspekten ausgewertet werden: (a) falls eine der betreffende Kanten eine signifikante Menge an Informationen in einer Richtung, die signifikant ist, beiträgt, so wird dieser speziellen Kante eine hohe Gewichtung bei der Berechnung zugewiesen, und (b) falls eine der betreffende Kanten keine signifikante Menge an Informationen in einer Richtung, die signifikant ist, beiträgt oder falls die Richtung nicht signifikant ist, so wird dieser speziellen Kante eine relativ geringe Gewichtung bei der Berechnung zugewiesen.
  11. Verfahren nach Anspruch 6, ferner umfassend das Ausführen einer linearen Minimierungsfunktion, welche simultan eine Summe von Entfernungen, die unter Verwendung der Punkt-zu-Ebene-Metrik berechnet wurden, plus eine Summe von Entfernungen, die unter Verwendung der Punkt-zu-Kante-Metrik berechnet wurden, minimiert.
  12. System zur Auffindung der Pose eines 3D-Modells in einem 3D-Bild eines von einer 3D-Kamerabaugruppe erfassten Objekts, umfassend: einen Sichtsystemprozessor, der das 3D-Modell und das erfasste 3D-Bild empfängt; und einen Posenfindungsprozess, der simultan eine Anpassung von 3D-Kanten in dem 3D-Modell an 3D-Kanten in dem 3D-Bild und von 3D-Normalen in dem 3D-Modell an 3D-Normalen in dem 3D-Bild vollzieht.
  13. System nach Anspruch 12, wobei der Posenfindungsprozess Gewichtungen für die 3D-Kanten in dem 3D-Bild und die 3D-Normalen in dem 3D-Bild anwendet, um die Verwendung von 3D-Kanten gegenüber 3D-Normalen in dem Bild zu gewichten.
  14. System nach Anspruch 13, wobei der Posenfindungsprozess bestimmt, ob (a) eine Ebene des Objekts Informationen über die Ausrichtung in Richtungen parallel zu den 3D-Normalen bereitstellt bzw. ob (b) Kanten des Objekts Informationen über die Ausrichtung in einer oder in mehreren Richtungen senkrecht zu den Kanten bereitstellen.
  15. System nach Anspruch 14, wobei der Posenfindungsprozess (a) unter Verwendung einer Punkt-zu-Linie-Metrik die 3D-Kanten in dem 3D-Modell an 3D-Kanten in dem 3D-Bild anpasst und/oder (b) unter Verwendung einer Punkt-zu-Ebene-Metrik die 3D-Normalen in dem 3D-Modell an die 3D-Normalen in dem 3D-Bild anpasst.
  16. System nach Anspruch 15, wobei der Posenfindungsprozess eine Normaleninformationsmatrix definiert, welche die Richtungen darstellt, in denen eine ausreichende Menge der Informationen gegeben ist.
  17. Verfahren nach Anspruch 16, wobei der Posenfindungsprozess eine Hauptkomponentenanalyse (PCA) auf Basis der Matrix durchführt, um die Informationen zu identifizieren und deren Verfügbarkeit im Hinblick auf die Posenfindung zu bestimmen.
  18. System nach Anspruch 17, wobei der Posenfindungsprozess einen Auswertungsprozess umfasst, welcher die Kanten jeweils im Hinblick auf eine Menge der in entsprechenden Richtungen beigetragenen Informationen und auf die Informationen, die verfügbar sind, auswertet.
  19. System nach Anspruch 18, wobei der Auswertungsprozess die Posenkanten entsprechend den folgenden Aspekten auswertet: (a) falls eine der betreffende Kanten eine signifikante Menge an Informationen in einer Richtung, die signifikant ist, beiträgt, so wird dieser speziellen Kante eine hohe Gewichtung bei der Berechnung zugewiesen, und (b) falls eine der betreffende Kanten keine signifikante Menge an Informationen in einer Richtung, die signifikant ist, beiträgt oder falls die Richtung nicht signifikant ist, so wird dieser speziellen Kante eine relativ geringe Gewichtung bei der Berechnung zugewiesen.
  20. System nach Anspruch 15, ferner umfassend einen linearen Minimierungsprozess, welche simultan eine Summe von Entfernungen, die unter Verwendung der Punkt-zu-Ebene-Metrik berechnet wurden, plus eine Summe von Entfernungen, die unter Verwendung der Punkt-zu-Kante-Metrik berechnet wurden, minimiert.
DE102019104310.7A 2018-02-21 2019-02-20 System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem Pending DE102019104310A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/901,117 US10957072B2 (en) 2018-02-21 2018-02-21 System and method for simultaneous consideration of edges and normals in image features by a vision system
US15/901,117 2018-02-21

Publications (1)

Publication Number Publication Date
DE102019104310A1 true DE102019104310A1 (de) 2019-08-22

Family

ID=67482273

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019104310.7A Pending DE102019104310A1 (de) 2018-02-21 2019-02-20 System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem

Country Status (4)

Country Link
US (2) US10957072B2 (de)
JP (3) JP6983828B2 (de)
CN (2) CN117541753A (de)
DE (1) DE102019104310A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113405451A (zh) * 2020-10-15 2021-09-17 南京航空航天大学 一种基于单目视觉的齿形结构装配测量方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10962630B1 (en) * 2019-10-18 2021-03-30 Toyota Research Institute, Inc. System and method for calibrating sensors of a sensor system
CN112734783B (zh) * 2020-02-14 2022-02-25 牧今科技 用于处理候选边缘的方法和计算***
US11861793B2 (en) * 2022-05-24 2024-01-02 Hunan University Method for merging surface skin three-dimensional data
US20240029407A1 (en) * 2022-07-22 2024-01-25 General Electric Company Machine learning model training corpus apparatus and method
CN116108722B (zh) * 2023-02-28 2024-05-07 南京理工大学 基于数字孪生的大型结构件面形调控方法

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5028138A (en) 1989-05-23 1991-07-02 Wolff Lawrence B Method of and apparatus for obtaining object data by machine vision form polarization information
US5078496A (en) 1990-08-14 1992-01-07 Autospect, Inc. Machine vision surface characterization system
USRE37752E1 (en) 1992-10-29 2002-06-18 Equinox Corporation Polarization viewer
US5557324A (en) 1992-10-29 1996-09-17 The Johns Hopkins University Polorization viewer
EP0718624A3 (de) 1994-12-19 1997-07-30 At & T Corp Vorrichtung und Verfahren zur Beleuchtung durchsichtiger und halbtransparenter Materialien
US5988862A (en) 1996-04-24 1999-11-23 Cyra Technologies, Inc. Integrated system for quickly and accurately imaging and modeling three dimensional objects
US6858826B2 (en) 1996-10-25 2005-02-22 Waveworx Inc. Method and apparatus for scanning three-dimensional objects
US6064759A (en) 1996-11-08 2000-05-16 Buckley; B. Shawn Computer aided inspection machine
US6504957B2 (en) 1997-07-07 2003-01-07 General Electric Company Method and apparatus for image registration
US6173070B1 (en) 1997-12-30 2001-01-09 Cognex Corporation Machine vision method using search models to find features in three dimensional images
WO2001078005A2 (en) 2000-04-11 2001-10-18 Cornell Research Foundation, Inc. System and method for three-dimensional image rendering and analysis
JP3513562B2 (ja) 2000-04-20 2004-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 形状解析システム、3次元形状モデルの差分検出システム、類似形状検索システム、形状解析方法及び記憶媒体
US6701005B1 (en) 2000-04-29 2004-03-02 Cognex Corporation Method and apparatus for three-dimensional object segmentation
US20040184653A1 (en) 2003-03-20 2004-09-23 Baer Richard L. Optical inspection system, illumination apparatus and method for use in imaging specular objects based on illumination gradients
WO2006002320A2 (en) 2004-06-23 2006-01-05 Strider Labs, Inc. System and method for 3d object recognition using range and intensity
US7576738B2 (en) * 2005-05-27 2009-08-18 California Institute Of Technology Method for constructing surface parameterizations
JP4691158B2 (ja) 2005-06-16 2011-06-01 ストライダー ラブス,インコーポレイテッド 三次元クラスモデルを用いた二次元画像における認識システムおよび方法
US7756325B2 (en) 2005-06-20 2010-07-13 University Of Basel Estimating 3D shape and texture of a 3D object based on a 2D image of the 3D object
US8064731B2 (en) 2006-11-13 2011-11-22 Siemens Audiologische Technik Gmbh Generalized rigid alignment of 3D ear impression models
US8126260B2 (en) * 2007-05-29 2012-02-28 Cognex Corporation System and method for locating a three-dimensional object using machine vision
US8591225B2 (en) 2008-12-12 2013-11-26 Align Technology, Inc. Tooth movement measurement by automatic impression matching
US8090160B2 (en) 2007-10-12 2012-01-03 The University Of Houston System Automated method for human face modeling and relighting with application to face recognition
US8085987B2 (en) 2007-10-26 2011-12-27 Ahmed Shalaby Method and tool for surface texture evaluation
US8786595B2 (en) 2008-06-10 2014-07-22 Pinpoint 3D Systems and methods for estimating a parameter for a 3D model
EP2327061A4 (de) 2008-08-15 2016-11-16 Univ Brown Verfahren und vorrichtung zur schätzung von körperformen
US8442304B2 (en) 2008-12-29 2013-05-14 Cognex Corporation System and method for three-dimensional alignment of objects using machine vision
US9197736B2 (en) 2009-12-31 2015-11-24 Digimarc Corporation Intuitive computing methods and systems
US8175617B2 (en) 2009-10-28 2012-05-08 Digimarc Corporation Sensor-based mobile search, related methods and systems
JP5746477B2 (ja) * 2010-02-26 2015-07-08 キヤノン株式会社 モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
US8660355B2 (en) 2010-03-19 2014-02-25 Digimarc Corporation Methods and systems for determining image processing operations relevant to particular imagery
US10702216B2 (en) 2010-06-08 2020-07-07 Styku, LLC Method and system for body scanning and display of biometric data
WO2012018560A2 (en) * 2010-07-26 2012-02-09 Kjaya, Llc Adaptive visualization for direct physician use
MY162769A (en) 2010-10-25 2017-07-14 Lockheed Corp Detecting structural changes to underwater structures
US8401225B2 (en) 2011-01-31 2013-03-19 Microsoft Corporation Moving object segmentation using depth images
WO2012141235A1 (ja) * 2011-04-13 2012-10-18 株式会社トプコン 三次元点群位置データ処理装置、三次元点群位置データ処理システム、三次元点群位置データ処理方法およびプログラム
US20120314031A1 (en) 2011-06-07 2012-12-13 Microsoft Corporation Invariant features for computer vision
WO2013033442A1 (en) 2011-08-30 2013-03-07 Digimarc Corporation Methods and arrangements for identifying objects
US9367770B2 (en) 2011-08-30 2016-06-14 Digimarc Corporation Methods and arrangements for identifying objects
US9129277B2 (en) 2011-08-30 2015-09-08 Digimarc Corporation Methods and arrangements for identifying objects
US8908913B2 (en) 2011-12-19 2014-12-09 Mitsubishi Electric Research Laboratories, Inc. Voting-based pose estimation for 3D sensors
JP5953842B2 (ja) * 2012-03-14 2016-07-20 オムロン株式会社 画像検査方法および検査領域設定方法
US9593982B2 (en) 2012-05-21 2017-03-14 Digimarc Corporation Sensor-synchronized spectrally-structured-light imaging
JP2015532077A (ja) * 2012-09-27 2015-11-05 メタイオ ゲゼルシャフト ミット ベシュレンクテル ハフツングmetaio GmbH 少なくとも1つの画像を撮影する撮影装置に関連する装置の位置及び方向の決定方法
US9196088B2 (en) 2013-03-14 2015-11-24 Robert Bosch Gmbh System and method for classification of three-dimensional models in a virtual environment
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
US9269022B2 (en) 2013-04-11 2016-02-23 Digimarc Corporation Methods for object recognition and related arrangements
US20150003669A1 (en) * 2013-06-28 2015-01-01 Toyota Motor Engineering & Manufacturing North America, Inc. 3d object shape and pose estimation and tracking method and apparatus
US9443297B2 (en) 2013-07-10 2016-09-13 Cognex Corporation System and method for selective determination of point clouds
US9171403B2 (en) * 2014-02-13 2015-10-27 Microsoft Technology Licensing, Llc Contour completion for augmenting surface reconstructions
AU2015287598B2 (en) * 2014-07-10 2018-12-06 Techmah Medical Llc Bone reconstruction and orthopedic implants
JP6594129B2 (ja) * 2014-11-28 2019-10-23 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
KR102306780B1 (ko) 2014-12-15 2021-09-30 삼성전자주식회사 영상 처리 장치 및 방법
US10115035B2 (en) 2015-01-08 2018-10-30 Sungkyunkwan University Foundation For Corporation Collaboration Vision system and analytical method for planar surface segmentation
KR102399686B1 (ko) * 2015-07-28 2022-05-19 삼성전자주식회사 3d 렌더링 방법 및 장치
EP3384428B1 (de) 2015-12-04 2023-07-26 Autodesk, Inc. Keypoint-basiertes punktpaarmerkmal zur skalierbaren automatischen globalen registrierung von grossen rgb-d-scans
US20180053040A1 (en) * 2016-08-19 2018-02-22 Umm Al-Qura University System and method for 3d local surface matching
JP6697986B2 (ja) * 2016-09-07 2020-05-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および画像領域分割方法
US9990780B2 (en) * 2016-10-03 2018-06-05 Ditto Technologies, Inc. Using computed facial feature points to position a product model relative to a model of a face
CN110832348B (zh) 2016-12-30 2023-08-15 辉达公司 用于自主车辆的高清晰度地图的点云数据丰富
SG10201700299QA (en) 2017-01-13 2018-08-30 Otsaw Digital Pte Ltd Three-dimensional mapping of an environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113405451A (zh) * 2020-10-15 2021-09-17 南京航空航天大学 一种基于单目视觉的齿形结构装配测量方法
CN113405451B (zh) * 2020-10-15 2022-05-31 南京航空航天大学 一种基于单目视觉的齿形结构装配测量方法

Also Published As

Publication number Publication date
JP2022028860A (ja) 2022-02-16
JP6983828B2 (ja) 2021-12-17
US20210366153A1 (en) 2021-11-25
JP2019153290A (ja) 2019-09-12
US10957072B2 (en) 2021-03-23
CN110176075A (zh) 2019-08-27
JP7339316B2 (ja) 2023-09-05
JP2023159360A (ja) 2023-10-31
US11881000B2 (en) 2024-01-23
CN117541753A (zh) 2024-02-09
CN110176075B (zh) 2023-10-20
US20190259177A1 (en) 2019-08-22

Similar Documents

Publication Publication Date Title
DE102019104310A1 (de) System und Verfahren zur simultanen Betrachtung von Kanten und normalen bei Bildmerkmalen durch ein Sichtsystem
DE112012001984B4 (de) Integrieren von Video-Metadaten in 3D-Modelle
DE102015011914B4 (de) Konturlinienmessvorrichtung und Robotersystem
DE102013012224B4 (de) Vorrichtung zum Entnehmen von lose gespeicherten Gegenständen durch einen Roboter
DE60036780T2 (de) Verfahren zum Vergleichen eines zweidimensionalen Bildes zu einem unter mehreren in einem Datenbank gespeicherten dreidimensionalen Kandidatmodellen
DE102017116952A1 (de) System und verfahren für verbessertes scoring von 3d-lagen und entfernen von störpunkten in 3d-bilddaten
DE102016100101A1 (de) System zum maschinellen sehen und analytisches verfahren zur segmentierung planarer oberflächen
DE102016013274A1 (de) Bildverarbeitungsvorrichtung und verfahren zur erkennung eines bilds eines zu erkennenden objekts aus eingabedaten
DE102017116853A1 (de) System und Verfahren zur automatischen Auswahl von 3D-Ausrichtungsalgorithmen in einem Sehsystem
DE112018000332T5 (de) Dichtes visuelles slam mit probabilistic-surfel-map
DE102015010096A1 (de) Konfigurationseinstellungen einer Digitalkamera zur Tiefenkarten-Erzeugung
DE102017213752A1 (de) Auswahl von ausgewogenen sondenstellen für 3-d ausrichtungsalgorithmen
WO2015117905A1 (de) 3d-bildanalysator zur blickrichtungsbestimmung
DE102014222617B4 (de) Fahrzeugerfassungsverfahren und Fahrzeugerfassungssytem
DE102013216902A1 (de) Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Programm
DE102013210478A1 (de) Geometrische vorkorrektur zur automatischen nummernschilderkennung
DE102014211948A1 (de) System und Verfahren zur selektiven Bestimmung von Punktwolken
DE102015103022A1 (de) Verfahren und Vorrichtung zum Erkennen eines bekannten Objekts in einem Sehfeld eines dreidimensionalen Maschinensichtsystems
DE112011100681T5 (de) Positions- und orientierungsschätzverfahren und vorrichtung dafür
DE102013211240A1 (de) Bereichsmessvorrichtung und Bereichsmessverfahren
DE102019124810A1 (de) Bildverarbeitungsgerät und Bildverarbeitungsverfahren
DE102012223047B4 (de) Mehrteil-Korrespondierer (corresponder) für mehrere Kameras
DE102012222361B4 (de) Umgebungserkennungsvorrichtung
EP2562681A1 (de) Objektverfolgungsverfahren für ein Kamerabasiertes Fahrerassistenzsystem
EP3931798A1 (de) Schätzung der bewegung einer bildposition

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HOFFMANN - EITLE PATENT- UND RECHTSANWAELTE PA, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000