-
Querverweis auf verwandte Anmeldungen
-
Diese Anmeldung beansprucht den Nutzen aus und die Priorität von US-Patentanmeldung Nr. 61/516,952, eingereicht am 16. Dezember 2011, mit dem Titel ”Multi-Part Corresponder for Multiple Cameras”, deren gesamter Inhalt hierin durch Verweis aufgenommen wird.
-
Gebiet der Technologie
-
Die vorliegende Erfindung bezieht sich im Allgemeinen auf das Gebiet des maschinellen Sehens und insbesondere auf korrespondierende Teile in separaten Kamerabildern.
-
Hintergrund
-
Digitale Bilder werden durch viele Vorrichtungen erzeugt und für viele praktische Zwecke verwendet. Vorrichtungen umfassen Kameras, welche mit sichtbarem oder infrarotem Licht operieren, Line-Scan-Sensoren, Flying-Spot-Scanner, Elektronenmikroskope, Röntgenstrahlenvorrichtungen einschließlich CT-Scanner, magnetische Resonanzaufnahmegeräte und andere Vorrichtungen, welche dem Fachmann bekannt sind. Praktische Anwendungen werden in industrieller Automatisierung, medizinischer Diagnostik, Satellitenbildaufnahme für eine Vielzahl von militärischen, zivilen und wissenschaftlichen Zwecken, fotografische Verarbeitung, Überwachung und Verkehrsüberwachung, Dokumentenverarbeitung und vieles mehr gefunden.
-
Um diesen Anwendungen zu dienen, werden die Bilder, welche durch die verschiedenen Vorrichtungen erzeugt werden, durch digitale Vorrichtungen analysiert, um geeignete Informationen zu extrahieren. Eine Form der Analyse, welche von bemerkenswerter praktischer Bedeutung ist, ist das Bestimmen der Position, Orientierung und Größe der Muster in einem Bild, welche Objekten in dem Blickfeld der Bildaufnahmevorrichtung entsprechen. Musterortungsverfahren sind von spezieller Bedeutung in industrieller Automatisierung, wo sie verwendet werden, um Roboter und andere Automatisierungsausrüstung in Halbleiterherstellung, Elektronikfertigung, Arzneimittel, Lebensmittelverarbeitung, Gebrauchsgüterherstellung und vielen anderen zu lenken.
-
In Anwendungen, welche mehr als eine Bildaufnahmevorrichtung verwenden, ist eine andere Form der digitalen Bildanalyse von praktischer Bedeutung Identifizieren der Korrespondenz zwischen Teilen in einem Blickfeld der Vorrichtung und in dem Blickfeld einer anderen Vorrichtung (z. B. welche Teile in den separaten Blickfeldern mit dem gleichen physischen Teil korrespondieren). Dementsprechend werden Systeme und Verfahren von schnell korrespondierenden Teilen in separaten Blickfeldern benötigt.
-
Zusammenfassung der Technologie
-
In einem Aspekt bezieht sich die Technologie auf ein computerimplementiertes Verfahren des Findens von Korrespondenzen eines oder mehrerer Teile in einem Kamerabild von zwei oder mehreren Kameras. Das Verfahren umfasst für einen ersten Teil in einem ersten Kamerabild einer ersten Kamera ein Berechnen eines ersten 3D-Strahls, welcher eine erste Rückprojektion einer ersten Merkmalskoordinate des ersten Teils in dem ersten Kamerabild zu einem 3D-physischen Raum ist. Das Verfahren umfasst für einen zweiten Teil in einem zweiten Kamerabild einer zweiten Kamera ein Berechnen eines zweiten 3D-Strahls, welcher eine zweite Rückprojektion einer zweiten Merkmalskoordinate des zweiten Teils in dem zweiten Kamerabild zu dem 3D-physischen Raum ist, wobei die erste Merkmalskoordinate und die zweite Merkmalskoordinate mit einem ersten Merkmal wie in einem Modell identifiziert korrespondieren. Das Verfahren umfasst das Berechnen eines ersten Abstands zwischen dem ersten 3D-Strahl und dem zweiten 3D-Strahl.
-
In einem Aspekt bezieht sich die Technologie auf ein computerimplementiertes Verfahren des Findens einer Korrespondenz einer oder mehrerer Teile in einem Kamerabild von zwei oder mehreren Kameras. Das Verfahren umfasst für einen ersten Teil in einem ersten Kamerabild einer ersten Kamera ein Berechnen eines ersten 3D-Strahls, welcher eine Rückprojektion einer ersten Merkmalskoordinate in dem ersten Kamerabild zu einem 3D-physischen Raum ist, Berechnen eines zweiten 3D-Strahls, welcher eine zweite Rückprojektion einer zweiten Merkmalskoordinate in dem ersten Kamerabild zu dem 3D-physischen Raum ist. Das Verfahren umfasst für einen zweiten Teil in einem zweiten Kamerabild einer zweiten Kamera das Berechnen eines dritten 3D-Strahls, welcher eine dritte Rückprojektion einer dritten Merkmalskoordinate in dem zweiten Kamerabild zu dem 3D-physischen Raum ist, Berechnen eines vierten 3D-Strahls, welcher eine vierte Rückprojektion einer vierten Merkmalskoordinate in dem zweiten Kamerabild zu dem 3D-physischen Raum ist, wobei die erste Merkmalskoordinate und die dritte Merkmalskoordinate mit einem gleichen ersten Merkmal wie in einem Modell identifiziert korrespondieren und die zweite Merkmalskoordinate und die vierte Merkmalskoordinate mit einem gleichen zweiten Merkmal wie in dem Modell identifiziert korrespondieren. Das Verfahren umfasst das Berechnen eines ersten Punkts zwischen nächsten Punkten auf den ersten und dritten 3D-Strahlen und einen zweiten Punkt zwischen den nächsten Punkten auf den zweiten und vierten 3D-Strahlen.
-
In einigen Ausführungsformen umfasst das Verfahren für den ersten Teil in dem ersten Kamerabild der ersten Kamera das Berechnen eines dritten 3D-Strahls, welcher eine dritte Rückprojektion einer dritten Merkmalskoordinate in dem ersten Kamerabild zu dem 3D-physischen Raum ist, für den zweiten Teil in dem zweiten Kamerabild der zweiten Kamera, Berechnen eines vierten 3D-Strahls, welcher eine vierte Rückprojektion einer vierten Merkmalskoordinate in dem zweiten Kamerabild zu dem 3D-physischen Raum ist, wobei die dritte Merkmalskoordinate und die vierte Merkmalskoordinate mit einem zweiten Merkmal wie in dem Modell identifiziert korrespondieren, und das Berechnen eines zweiten Abstands zwischen dem dritten 3D-Strahl und dem vierten 3D-Strahl.
-
In einigen Ausführungsformen umfasst das Verfahren Berechnen eines Kandidatenteilkorrespondenzstands basierend auf mindestens einem des ersten Abstands und des zweiten Abstands. In einigen Ausführungsformen ist der Kandidatenteilkorrespondenzstand ein Durschnitt des ersten Abstands und des zweiten Abstands. In einigen Ausführungsformen umfasst das Verfahren Ausschließen eines Paarens des ersten Teils in dem ersten Kamerabild der ersten Kamera und des zweiten Teils in dem zweiten Kamerabild der zweiten Kamera als eine Kandidatenteilkorrespondenz, wenn der erste Abstand eine vorbestimmte Schwelle überschreitet.
-
In einigen Ausführungsformen umfasst das Verfahren für einen dritten Teil in einem dritten Kamerabild einer dritten Kamera Berechnen eines dritten 3D-Strahls, welcher eine dritte Rückprojektion einer dritten Merkmalskoordinate des dritten Teils in dem dritten Kamerabild zu dem 3D-physischen Raum ist, wobei die erste Merkmalskoordinate, die zweite Merkmalskoordinate und die dritte Merkmalskoordinate mit dem ersten Merkmal wie in dem Modell identifiziert korrespondieren, und Berechnen eines zweiten Abstands zwischen dem dritten 3D-Strahl und einem ersten Punkt zwischen nächsten Punkten auf den ersten und den zweiten 3D-Strahlen.
-
In einigen Ausführungsformen umfasst das Verfahren für einen dritten Teil in einem dritten Kamerabild einer dritten Kamera, Berechnen eines dritten 3D-Strahls, welcher eine dritte Rückprojektion einer dritten Merkmalskoordinate des dritten Teils in dem dritten Kamerabild zu dem 3D-physischen Raum ist, wobei die erste Merkmalskoordinate, die zweite Merkmalskoordinate und die dritte Merkmalskoordinate mit dem Merkmal wie in dem Modell identifiziert korrespondieren, und Berechnen eines zweiten Abstands zwischen dem ersten 3D-Strahl und dem dritten 3D-Strahl und Berechnen eines dritten Abstands zwischen dem zweiten 3D-Strahl und dem dritten 3D-Strahl.
-
In einigen Ausführungsformen umfasst das Verfahren Berechnen eines Abstands zwischen dem ersten Punkt und dem zweiten Punkt. In einigen Ausführungsformen umfasst das Verfahren Vergleichen des Abstands mit einem vorbestimmten Wert, um den Abstandsrest zu bestimmen. In einigen Ausführungsformen basiert der vorbestimmte Wert auf dem ersten Merkmal und dem zweiten Merkmal wie in dem Modell identifiziert. In einigen Ausführungsformen basiert der vorbestimmte Wert auf einem eingegebenen Wert.
-
In einigen Ausführungsformen umfasst das Verfahren Berechnen eines Kandidatenkorrespondenzstands basierend auf dem Abstandsrest. In einigen Ausführungsformen umfasst das Verfahren das Ausschließen eines Paarens des ersten Teils in dem ersten Kamerabild und des zweiten Teils in dem zweiten Kamerabild als eine Kandidatenteilkorrespondenz, wenn der Abstandsrest eine vorbestimmte Schwelle überschreitet. In einigen Ausführungsformen umfasst das Verfahren Berechnen eines ersten Abstands zwischen dem ersten 3D-Strahl und dem dritten 3D-Strahl und Berechnen eines zweiten Abstands zwischen dem zweiten 3D-Strahl und dem vierten 3D-Strahl; und Berechnen eines Kandidatenteilkorrespondenzstands basierend auf dem Abstandsrest, dem ersten Abstand und dem zweiten Abstand.
-
In einem anderen Aspekt bezieht sich die Technologie auf ein System. Das System umfasst zwei oder mehrere Kameras; ein Korrespondenzmodul eingerichtet zum: für einen ersten Teil in einem ersten Kamerabild einer ersten Kamera der zwei oder mehreren Kameras, Berechnen eines ersten 3D-Strahls, welcher eine erste Rückprojektion einer ersten Merkmalskoordinate des ersten Teils in dem ersten Kamerabild zu einem 3D-physischen Raum ist; für einen zweiten Teil in einem zweiten Kamerabild einer zweiten Kamera der zwei oder mehreren Kameras, Berechnen eines zweiten 3D-Strahls, welcher eine zweite Rückprojektion einer zweiten Merkmalskoordinate des zweiten Teils des zweiten Kamerabilds zu dem 3D-physischen Raum ist, wobei die erste Merkmalskoordinate und die zweite Merkmalskoordinate mit einem ersten Merkmal wie in einem Modell identifiziert korrespondieren; und Berechnen eines ersten Abstands zwischen dem ersten 3D-Strahl und dem zweiten 3D-Strahl.
-
In einem anderen Aspekt bezieht sich die Technologie auf ein System. Das System umfasst zwei oder mehrere Kameras; ein Korrespondenzmodul eingerichtet zum: für einen ersten Teil in einem ersten Kamerabild einer ersten Kamera der zwei oder mehreren Kameras, Berechnen eines ersten 3D-Strahls, welcher eine Rückprojektion einer ersten Merkmalskoordinate in dem ersten Kamerabild zu einem 3D-physischen Raum ist, Berechnen eines zweiten 3D-Strahls, welcher eine zweite Rückprojektion einer zweiten Merkmalskoordinate in dem ersten Kamerabild zu dem 3D-physischen Raum ist; für einen zweiten Teil in einem zweiten Kamerabild einer zweiten Kamera der zwei oder mehreren Kameras, Berechnen eines dritten 3D-Strahls, welcher eine dritte Rückprojektion einer dritten Merkmalskoordinate in dem zweiten Kamerabild zu dem 3D-physischen Raum ist, Berechnen eines vierten 3D-Strahls, welcher eine vierte Rückprojektion einer vierten Merkmalskoordinate in dem zweiten Kamerabild zu dem 3D-physischen Raum ist, wobei die erste Merkmalskoordinate und die dritte Merkmalskoordinate mit einem gleichen ersten Merkmal wie in einem Modell identifiziert korrespondieren und die zweite Merkmalskoordinate und die vierte Merkmalskoordinate mit einem gleichen zweiten Merkmal wie in dem Modell identifiziert korrespondieren; und Berechnen eines ersten Punkts zwischen nächsten Punkten auf den ersten und dritten 3D-Strahlen und eines zweiten Punkts zwischen nächsten Punkten auf den zweiten und vierten 3D-Strahlen.
-
Andere Aspekte und Vorteile der vorliegenden Technologie werden aus der folgenden detaillierten Beschreibung klar werden, die in Verbindung zu setzen ist mit den begleitenden Zeichnungen, welche die Prinzipien der Technologie nur beispielhaft zeigen.
-
Kurze Beschreibung der Zeichnungen
-
Das Vorangegangene und andere Ziele, Merkmale und Vorteile der vorliegend beschriebenen Technologie werden vollständiger verstanden werden aus der folgenden Beschreibung der verschiedenen Ausführungsformen, wenn zusammen mit den begleitenden Zeichnungen gelesen, in welchen:
-
1 ein System zeigt, welches mit der Technologie verwendet werden kann;
-
2 die Blickfelder von zwei Bildaufnahmevorrichtungen zeigt;
-
3 ein Flussdiagramm ist, welches ein Verfahren zum Finden einer Korrespondenz einer oder mehrerer Teile in dem Blickfeld von zwei oder mehreren Kameras zeigt; und
-
4 Teile und Bilder der Teile zeigt.
-
Detaillierte Beschreibung
-
Im Allgemeinen umfasst die Technologie computerisierte Systeme und computerimplementierte Verfahren für korrespondierende Teile unter mehreren Kamerabildern. Im System von 3D-maschinellem Sehen, können zwei oder mehrere 2D-Kameras, welche die gleichen oder überlappende Szenen aufnehmen, verwendet werden, um 3D-Informationen zu bestimmen (z. B. Abstand von einer Kamera oder einem anderen bekannten Punkt) über Gegenstände in der Szene oder den Szenen. Bestimmen, ob ein Gegenstand in dem Blickfeld einer Kamera und ein Gegenstand in dem Blickfeld einer zweiten Kamera mit dem gleichen physischen Gegenstand korrespondieren kann das Verwenden der separaten Bilder in Verbindung mit dem Bestimmen von 3D-Informationen über Gegenstände in der Szene vereinfachen. Die computerisierten Systeme und computerimplementierten Verfahren, welche hierin beschrieben werden, vereinfachen das Korrespondieren von Gegenständen in den Blickfeldern separater Kameras.
-
1 zeigt ein System 100, welches mit der Technologie verwendet werden kann. System 100 umfasst eine Bilderfassungsvorrichtung (z. B. Kamera) 105 und eine Bilderfassungsvorrichtung 110. Die Bilderfassungsvorrichtung 105 und die Bilderfassungsvorrichtung 110 werden positioniert, um Bilder von einem Arbeitsraum 112 zu erfassen. Die Bildebene 115 ist die Bildebene der Bilderfassungsvorrichtung 105 und stellt die zweidimensionale Ebene der Bilder des Arbeitsbereichs 112 dar, welche durch die Bilderfassungsvorrichtung 105 erfasst wurden. Die Bildebene 120 ist die Bildebene der Bilderfassungsvorrichtung 110 und stellt die zweidimensionale Ebene der Bilder des Arbeitsbereichs 112 dar, welche durch die Bilderfassungsvorrichtung 110 erfasst wurden. Während das System 100 mit zwei Bilderfassungsvorrichtungen gezeigt wird (Bilderfassungsvorrichtung 105 und Bilderfassungsvorrichtung 110), kann die Technologie mit Systemen verwendet werden mit zwei oder mehreren Bilderfassungsvorrichtungen.
-
Das System 100 umfasst ein Korrespondenzmodul 125. Das Korrespondenzmodul 125 empfängt Bilder von der Bilderfassungsvorrichtung 105 und der Bilderfassung 110. Das Korrespondenzmodul 125 kann eingerichtet sein zum Verwenden der Verfahren, welche hierin beschrieben werden, um die Korrespondenz der Teile in der Bildebene 115 zu bestimmen (z. B. das Blickfeld der Bilderfassungsvorrichtung 105) zu Teilen in der Bildebene 120 (z. B. das Blickfeld der Bilderfassungsvorrichtung 110).
-
Das System
100 kann kalibriert werden, um eine mathematische Transformation von einem Koordinatensystem einer Bilderfassungsvorrichtung zu einem Koordinatensystem einer anderen Bilderfassungsvorrichtung bereitzustellen. Das System
100 kann kalibriert werden, um eine mathematische Transformation von den Koordinatensystemen der Bilderfassungsvorrichtungen zu einem Koordinatensystem für die physische Szene in dem Blickfeld der Bilderfassungsvorrichtungen bereitzustellen. Ein Bildpunkt x, welcher mit einer Merkmalskoordinate assoziiert ist, wird rückprojiziert zu einem 3D-Strahl, welcher durch x und dem Kameramittelpunkt definiert ist. Die Kalibrierung bezieht den Bildpunkt auf die Richtung des Strahls. Zusätzliche Informationen bezüglich Kamerakalibrierung können gefunden werden in
US-Patent Nr. 6 798 925 , mit dem Titel ”Method and apparatus for calibrating an image acquisition system” und eingereicht am 22. Dezember 2000, und ”Multiple view Geometry in Computer Vision”, Second Edition, Richard Hartley and Andrew Zisserman (2004), die hiermit durch Verweis in ihrer Gesamtheit aufgenommen werden.
-
Das System 100 ist ein Beispiel eines computerisierten Systems, welches speziell eingerichtet ist zum Ausführen der hierin beschriebenen computerimplementierten Verfahren. Jedoch sind die Systemstruktur und der Inhalt, welche mit Bezug auf 1 zitiert werden, nur für beispielhafte Zwecke und sollen nicht andere Beispiele auf die spezifische Struktur, welche in 1 gezeigt ist, beschränken. Wie einem Fachmann klar sein wird, können viele variante Systemstrukturen gebaut werden, ohne von den computerisierten Systemen und Verfahren, welche hierin beschrieben werden, abzuweichen.
-
2 zeigt die Blickfelder der zwei Bilderfassungsvorrichtungen. Das Blickfeld 210 ist das Blickfeld einer ersten Bilderfassungsvorrichtung (z. B. Bilderfassungsvorrichtung 105). Das Blickfeld 220 ist das Blickfeld einer zweiten Bilderfassungsvorrichtung (z. B. Bilderfassungsvorrichtung 110). Die Blickfelder 210 und 220 zeigen die gleiche Gruppe von Teilen. Die Technologie, welche hierin beschrieben wird, kann verwendet werden, um das Identifizieren, welche Teilinstanz in einem Blickfeld mit einer Teilinstanz in dem anderen Blickfeld korrespondiert, zu vereinfachen. Wie hierin verwendet, bezieht sich die Teilinstanz auf eine Darstellung eines physischen Teils innerhalb eines Bildes.
-
In 2 beispielweise enthalten die Blickfelder 210 und 220 beide einige Teilinstanzen. Die computerisierten Systeme und computerimplementierten Verfahren, welche hierin beschrieben werden, helfen dabei, Teile in dem Blickfeld 210 zu Teilen in dem Blickfeld 220 passend zu machen (z. B. Bestimmen, dass das Teil 225 in dem Blickfeld 210 und das Teil 230 in dem Blickfeld 220 mit dem gleichen physischen Teil korrespondieren).
-
3 ist ein Flussdiagramm
300, welches ein Verfahren zum Auffinden einer Korrespondenz eines oder mehrerer Teile in dem Blickfeld zweier oder mehrerer Kameras zeigt. Bei Schritt
305 werden 3D-Modellmerkmale für einen Teil erzeugt. In einigen Ausführungsformen können die 3D-Modellmerkmale 3D-Punkte sein. In einigen Ausführungsformen können die 3D-Modellmerkmale auch mindestens eine von Ecken, Kreisen und Liniensegmenten sein. Ein 3D-Modell kann eine mathematische Beschreibung eines physischen Teils sein. Verfahren des Erzeugens von 3D-Modellen sind dem Fachmann wohlbekannt. Siehe z. B.
"Computer Graphics: principles and practice", James D. Foley (1996), die hiermit durch Verweis in ihrer Gesamtheit aufgenommen wird. Zum Beispiel kann ein 3D-Modell die Dimensionen eines Teils, seine Eckpunkte oder andere Attribute, welche die physischen Charakteristika des Teils spezifizieren, umfassen. Teilmerkmale sind Aspekte der Teile, welche ausgewählt werden können, um bei der Identifikation von Teilen in einem Bild zu helfen, welches durch eine Bilderfassungsvorrichtung erfasst wurde. Zum Beispiel können Teilmerkmale eine gezackte Kante des Teils, ein Loch in dem Teil oder irgendein anderer physischer Aspekt des Teils sein. Teilmerkmale können manuell oder programmatisch basierend auf dem Modell ausgewählt werden. Ein 3D-Modell kann unter Verwendung von Cognex VisionPro
® 3D-Triangulationsfunktionalität erzeugt werden, welche durch Cognex Corporation aus Natick, MA, angeboten wird.
-
Bei Schritt 310 wird ein Teilortungstool trainiert, um Teilinstanzen zu lokalisieren. Ein Merkmalsfindertool wird trainiert, um Teilmerkmale zu lokalisieren. In einigen Ausführungsformen wird das Teillokalisieren und Merkmalsfinden unter Verwendung des gleichen Tools ausgeführt. In einigen Ausführungsformen wird das Teillokalisieren und das Merkmalsfinden unter Verwendung von separaten Tools ausgeführt. In einigen Ausführungsformen können die Merkmale unter Verwendung von Eckfindern, Kreisfindern oder anderen Musteranpassungstools lokalisiert werden. In einigen Ausführungsformen können die Merkmale direkt durch Anwenden der 2D-Stellung lokalisiert sein, welche aus dem Teillokalisierungstool resultiert (z. B. durch Verwenden der Teillokalisierungsstellung, um Orte der Merkmale aus dem Trainingsbild auf das Laufzeitbild abzubilden).
-
Der Trainingsschritt trainiert das Merkmalsfindertool, um den Teil zu lokalisieren, welcher durch das 3D-Modell in dem 2D-Bild einer Bilderfassungsvorrichtung beschrieben wird. Zum Beispiel kann Cognex Pat-Max trainiert werden, um die Teilmerkmale in einem Bild zu finden.
-
Bei Schritt
315 sind 2D-Teilinstanzen in dem Bild jeder Kamera angeordnet.
4 zeigt Teile und Bilder dieser Teile. In
4 hat das Teil
402 das Merkmal
405 (z. B. eine boxed-corner des Teils
405) und Teil
407 weist Merkmal
410 auf. Sowohl das Teil
402 als auch das Teil
407 sind durch das gleiche Modell (nicht gezeigt) modelliert und das Merkmal
405 und das Merkmal
410 sind Instanzen des gleichen Merkmals in dem Modell. Die Kamera
415 kann ein Bild
420 einschließlich 2D-Projektionen des Teils
405 (Teilinstanz
425) und des Teils
407 (Teilinstanz
430) in die Bildebene der Kamera
415 erfassen. Die Kamera
435 kann ein Bild
440 einschließlich 2D-Projektionen des Teils
405 (Teilinstanz
445) und des Teils
407 (Teilinstanz
450) in die Bildebene der Kamera
435 erfassen. Die Teilinstanzen können in einem speziellen Bild (z. B. Teilinstanzen
425 und
430 in dem Bild
420 und Teilinstanzen
445 und
450 in dem Bild
440) unter Verwendung z. B. von Cognex PatMax angeordnet sein. Weitere Beschreibung wie Cognex PatMax Teilinstanzen in einem Bild finden kann, kann in
US-Patent Nr. 7 016 539 mit dem Titel ”Method for Fast, Robust, Multi-Dimensional Pattern Recognition” und eingereicht am 13. Juli 1998 und in
US-Patent 7 065 262 mit dem Titel ”Fast high-accuracy multi-dimensional pattern inspection” und eingereicht am 10. November 2003 gefunden werden, die hiermit in ihrer Gesamtheit durch Verweis aufgenommen werden.
-
Bei Schritt 320 werden die Merkmalsorte oder Koordinaten für jede 2D-Teilinstanz in dem Bild jeder Kamera gefunden. In dem gezeigten Beispiel der 4 können das Merkmal 455 (die 2D-Projektion des Merkmals 405 in das Bild 420), Merkmal 460 (die 2D-Projektion des Merkmals 410 in das Bild 420), Merkmal 465 (die 2D-Projektion des Merkmals 405 in das Bild 440) und das Merkmal 470 (die 2D-Projektion des Merkmals 410 in das Bild 440) z. B. unter Verwendung von Cognex Pat-Max gefunden werden. In einigen Ausführungsformen können die Merkmalsorte durch Anwenden der Teilortsstellung auf den Merkmalsortsversatz innerhalb der Teilinstanz berechnet werden. Zum Beispiel kann der Versatz für das Merkmal 455 innerhalb der Teilinstanz 425 mit der gefundenen Stellung des Teils 425 kombiniert werden und als ein Merkmalsort verwendet werden. Ein Nutzen dieser Herangehensweise ist, dass die Orte der verdeckten Merkmale auf diese Weise erhalten werden können.
-
Bei Schritt 325 wird eine Liste von Korrespondenzkandidaten erzeugt. In einigen Ausführungsformen kann die Korrespondenzkandidatenliste eine Liste von allen Kombinationen, welche durch Auswählen einer Teilinstanz aus dem Bild jeder Kamera produziert wird, sein. In einigen Ausführungsformen kann die Korrespondenzkandidatenliste eine Liste einschließlich einer Untermenge von allen Kombinationen, welche durch das Auswählen einer Teilinstanz aus dem Bild jeder Kamera produziert wird, sein. Zum Beispiel Bezug nehmend auf 4, können die Korrespondenzkandidaten sein (Teilinstanz 425/Teilinstanz 445); (Teilinstanz 425/Teilinstanz 450); (Teilinstanz 430/Teilinstanz 445); (Teilinstanz 430/Teilinstanz 450) (z. B. jede Kombination einer Teilinstanz aus dem Bild 420 und einer Teilinstanz aus dem Bild 440).
-
In Ausführungsformen, welche drei Kameras verwenden, können die Korrespondenzkandidaten alle Kombinationen umfassen, welche durch Auswählen einer Teilinstanz aus dem Bild der ersten Kamera, einer Teilinstanz aus dem Bild der zweiten Kamera und einer Teilinstanz aus dem Bild der dritten Kamera produziert werden, sein. Wie zuvor angemerkt, können die Verfahren, welche hierin beschrieben werden, mit irgendeiner Zahl von Kameras verwendet werden, welche größer als Eins ist.
-
Bei Schritt 330 werden die Korrespondenzkandidaten ausgewertet. In einigen Ausführungsformen wird ein Korrespondenzkandidat basierend auf einer Triangulation unter Verwendung der Instanzen der gleichen Teilmerkmale in jeder Teilinstanz der Korrespondenzkandidaten ausgewertet. Die korrespondierenden Teilmerkmale können verglichen werden (z. B. ein Merkmal 455 in einer Teilinstanz 425 wird verglichen mit dem gleichen Merkmal 465 in einer anderen Teilinstanz 445). Bezug nehmend auf 4 z. B. kann der Korrespondenzkandidat (Teilinstanz 425/Teilinstanz 445) ausgewertet werden. Beginnend mit Merkmal 455 wird der Strahl 475 (welcher eine Rückprojektion der Koordinate des Merkmals 455 in dem Bild 420 zu dem 3D-physischen Raum ist) berechnet. Der Strahl 480 (welcher eine Rückprojektion der Koordinate des Merkmals 465 im Bild 440 zu dem 3D-physischen Raum ist) wird auch berechnet. Ein Strahlrest zwischen dem Strahl 475 und Strahl 480 (z. B. der Abstand zwischen den nächsten Punkten auf den Strahlen 475 und 480) wird berechnet. In einigen Ausführungsformen, wenn der Strahlrest größer als eine Schwelle ist, wird der Korrespondenzkandidat aus der Korrespondenzkandidatenliste entfernt. Ein großer Strahlenrest kann darauf hinweisen, dass die Teilinstanzen, welche verglichen werden, mit zwei unterschiedlichen physischen Teilen korrespondieren. Wenn der Strahlrest kleiner als eine Schwelle ist, werden die verbleibenden Merkmale in einer ähnlichen Weise ausgewertet und die Strahlenreste werden mit der Schwelle verglichen. Wenn jeder Rest für jedes der Merkmale kleiner als die Schwelle ist, wird der Korrespondenzkandidatenstand berechnet und der Korrespondenzkandidat verbleibt in der Korrespondenzkandidatenliste. In einigen Ausführungsformen werden die Strahlenreste für weniger als alle der Merkmale berechnet.
-
In einigen Ausführungsformen basiert die Schwelle auf Teildimensionen. Zum Beispiel kann die Schwelle ein Prozentsatz einer Dimension des Teils entlang einer Seite sein.
-
In einigen Ausführungsformen kann der Korrespondenzkandidatenstand der Durchschnitt der Reste sein. In einigen Ausführungsformen kann der Korrespondenzkandidatenstand eine Summe der Reste sein.
-
Der Strahlenrest kann in einer Anzahl von unterschiedlichen Weisen abhängig von der Anzahl der vorliegenden Kameras berechnet werden. Zum Beispiel in Ausführungsformen, welche drei Kameras verwenden, kann der Strahlenrest berechnet werden als die Summe der Abstände zwischen drei Strahlen (z. B. jeder Strahl ist eine Rückprojektion einer Merkmalskoordinate für jedes Kamerabild zu dem 3D-physischen Raum). In einigen Ausführungsformen kann der Rest als die Summe des Abstands zwischen den ersten und den zweiten Strahlen und dem Abstand zwischen einem Punkt zwischen den ersten zwei Strahlen und dem dritten Strahl berechnet werden. In einer anderen Ausführungsform, welche drei oder mehrere Kameras verwendet, kann der Strahlenrest berechnet werden durch Bestimmen eines Punktes zwischen dem nächsten Punkt der ersten und der zweiten Strahlen und dann Projizieren des 3D-Punkts in das Bild der dritten Kamera und Vergleichen des Abstands des projizierten Punkts mit dem Ort des Merkmals in dem dritten Bild.
-
In einigen Ausführungsformen kann der Korrespondenzkandidat basierend auf den Geometrien des Modells ausgewertet werden. Zum Beispiel kann ein erster Punkt zwischen den nächsten Punkten auf dem Strahl 475 und dem Strahl 480 berechnet werden. Ein Punkt zwischen den nächsten Punkten für Strahlen für andere Merkmale kann berechnet werden. Der berechnete Abstand zwischen jenen zwei Punkten kann verglichen werden mit einem bereitgestellten Abstand zwischen jenen zwei Merkmalen in dem Teilmodell. Zum Beispiel kann ein Abstandsrest berechnet werden, welcher die Differenz zwischen dem berechneten Abstand und dem bereitgestellten Abstand ist. In einigen Ausführungsformen, wenn der Abstandsrest größer als eine Schwelle ist, wird der Korrespondenzkandidat aus der Korrespondenzkandidatenliste entfernt. Ein großer Abstandsrest kann darauf hinweisen, dass Teilinstanzen, welche mit zwei unterschiedlichen physischen Teilen korrespondieren, ausgewertet werden. Wenn der Abstandsrest kleiner als eine Schwelle ist, werden die verbleibenden Abstände zwischen Merkmalen in einer ähnlichen Weise ausgewertet und die Abstandsreste werden mit der Schwelle verglichen. Wenn jeder Abstandsrest kleiner als die Schwelle ist, wird der Korrespondenzkandidatenstand berechnet und der Korrespondenzkandidat verbleibt auf der Korrespondenzkandidatenliste. In einigen Ausführungsformen kann der Korrespondenzkandidatenstand der Durchschnitt der Abstandsreste sein. In einigen Ausführungsformen kann der Korrespondenzkandidatenstand eine Summe der Abstandsreste sein. In einigen Ausführungsformen kann der Korrespondenzkandidatenstand ein gewichteter Durchschnitt der Abstandsreste sein, wo die Gewichtung auf der Modelldimension basiert. In einigen Ausführungsformen basiert der Korrespondenzkandidatenstand auf den Strahlenresten und den Abstandsresten.
-
Bei Schritt 335 werden die Korrespondenzkandidaten in der Korrespondenzkandidatenliste sortiert. In einigen Ausführungsformen werden die Korrespondenzkandidaten durch ihre entsprechenden Korrespondenzkandidatenstände sortiert, so dass der wahrscheinlichste Korrespondenzkandidat erster ist. Die Korrespondenzkandidatenliste kann ein Feld, eine verkettete Liste oder andere Datenstruktur sein.
-
Bezug nehmend auf 4 z. B. kann die sortierte Korrespondenzkandidatenliste die folgenden Korrespondenzkandidaten umfassen:
Teilinstanz 425/Teilinstanz 445 (Korrespondenzkandidatenstand 8);
Teilinstanz 430/Teilinstanz 450 (Korrespondenzkandidatenstand 9);
Teilinstanz 425/Teilinstanz 450 (Korrespondenzkandidatenstand 20);
Teilinstanz 430/Teilinstanz 445 (Korrespondenzkandidatenstand 35).
-
Bei Schritt 340 wird der beste Korrespondenzkandidat aus der Korrespondenzkandidatenliste entfernt und der Ergebnisliste hinzugefügt. In einigen Ausführungsformen muss der beste Korrespondenzkandidat einen Stand haben, welcher eine vorbestimmte Schwelle befriedigt und wird dann zu der Ergebnisliste hinzugefügt. Die Ergebnisliste ist eine Liste von gefundenen Teilkorrespondenzen.
-
Bei Schritt 345 werden die Korrespondenzkandidaten in der Korrespondenzkandidatenliste, welche eine Teilinstanz in dem Korrespondenzkandidaten, welcher in Schritt 340 entfernt wurde, umfassen, aus der Korrespondenzkandidatenliste entfernt. Zum Beispiel Bezug nehmend auf die obige Korrespondenzkandidatenliste, nachdem der Korrespondenzkandidat (Teilinstanz 425/Teilinstanz 445) aus der Korrespondenzkandidatenliste als der Korrespondenzkandidat mit dem niedrigsten Stand entfernt wird, können beide Korrespondenzkandidaten (Teilinstanz 445/Teilinstanz 450) und Korrespondenzkandidat (Teilinstanz 430/Teilinstanz 445) entfernt werden, weil jeder eine Teilinstanz mit Korrespondenzkandidat (Teilinstanz 425/Teilinstanz 445) teilt.
-
Bei Schritt 350 wird bestimmt, ob es irgendwelche Kandidaten gibt, die in der Korrespondenzkandidatenliste übrig sind. Wenn die Liste leer ist, kann das Verfahren zurückkehren. Die Korrespondenzkandidaten in der Ergebnisliste identifizieren die gefundenen Teilinstanzkorrespondenzen.
-
Wenn es mehrere Korrespondenzkandidaten in der Korrespondenzkandidatenliste gibt, wird der Korrespondenzkandidat mit dem niedrigsten Korrespondenzkandidatenstand aus der Korrespondenzkandidatenliste entfernt, wie mit Bezug auf Schritt 340 beschrieben. Die Korrespondenzkandidatenliste wird dann ausgelesen, wobei Korrespondenzkandidaten, welche eine Teilinstanz mit Korrespondenzkandidaten mit dem niedrigsten Korrespondenzkandidatenstand teilen, entfernt werden, wie mit Bezug auf Schritt 345 beschrieben.
-
Die oben beschriebenen Techniken können in digitalen und/oder analogen elektronischen Schaltungen oder in Computerhardware, Firmware, Software oder in verschiedenen Kombinationen implementiert werden. Die Ausführungsform kann ein Computerprogrammprodukt sein, d. h. ein Computerprogramm, welches in einer maschinenlesbaren Speichervorrichtung, für die Ausführung durch oder zum Steuern der Operation von einer Datenverarbeitungsvorrichtung, z. B. einem programmierbaren Prozessor, einem Computer und/oder mehreren Computern greifbar verkörpert ist. Ein Computerprogramm kann in irgendeiner Form von Computer- oder Programmiersprache, einschließlich Quellcode, kompiliertem Code, interpretiertem Code und/oder Maschinencode geschrieben werden, und das Computerprogramm kann angewendet werden, um auf einem Computer oder auf mehreren Computern an einer oder mehreren Orten ausgeführt zu werden.
-
Verfahrensschritte können durch einen oder mehrere Prozessoren ausgeführt werden, welche ein Computerprogramm ausführen, um Funktionen der Erfindung durch Operieren auf Eingabedaten und/oder Erzeugen von Ausgabedaten auszuführen. Verfahrensschritte können auch ausgeführt werden durch, und eine Vorrichtung kann implementiert werden als Spezialzweck logische Schaltung, z. B. ein FPGA (Field Programmable Gate Array), FPAA (Field Programmable Analog Array), ein CPLD (Complex Programmable Logic Device), ein PSoC (Programmable System-on-Chip), ASIP (Application-Specific Instruction-Set Processor), oder ein ASIC (Application-Specific Integrated Circuit). Subroutinen können sich auf Abschnitte des Computerprogramms und/oder den Prozessor/die Spezialschaltung beziehen, welche eine oder mehrere Funktionen implementiert.
-
Prozessoren, welche zur Ausführung eines Computerprogramms geeignet sind, umfassen beispielhaft sowohl allgemeine als auch Spezialzweckmikroprozessoren und irgendeinen oder mehrere Prozessoren irgendeiner Art von Digital- oder Analogcomputer. Im Allgemeinen empfingt ein Prozessor Instruktionen und Daten von einem Nur-Lese-Speicher oder einem Speicher mit wahlfreiem Zugriff oder beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen von Instruktionen und eine oder mehrere Speichervorrichtungen zum Speichern der Instruktionen und/oder Daten. Die Speichervorrichtungen, wie beispielsweise ein Cache, können zum temporären Speichern von Daten verwendet werden. Die Speichervorrichtungen können auch zur Langzeitdatenspeicherung verwendet werden. Im Allgemeinen umfasst ein Computer auch oder ist operativ gekoppelt zum Empfangen von Daten von oder Übertragen von Daten zu oder beidem einer oder mehreren Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magneto-optische Platten oder optische Platten. Ein Computer kann auch mit einem Kommunikationsnetzwerk operativ gekoppelt sein, um Instruktionen und/oder Daten von dem Netzwerk zu empfangen und/oder Instruktionen und/oder Daten an das Netzwerk zu übertragen. Computerlesbare Speichervorrichtungen, welche geeignet sind zum Verkörpern von Computerprogramminstruktionen und Daten, umfassen alle Formen von flüchtigen und nicht-flüchtigen Speichern, einschließlich beispielhaft Halbleiterspeichervorrichtungen, z. B. DRAM, SRAM, EPROM, EEPROM und Flashspeichervorrichtungen; magnetische Platten, z. B. interne Festplatten oder entfernbare Platten; magneto-optische Platten; und optische Platten, z. B. CD, DVD, HD-DVD und Bluray-Disks. Der Prozessor und der Speicher können ergänzt werden durch und/oder aufgenommen werden in Spezialzweck-logischen Schaltungen.
-
Um die Interaktion mit einem Nutzer bereitzustellen, können die oben beschriebenen Techniken auf einem Computer in Kommunikation mit einer Anzeigevorrichtung implementiert werden, z. B. einem CRT (Cathode Ray Tube), Plasma, oder LCD (Liquid Crystal Display) Monitor, zum Anzeigen von Informationen an den Nutzer und einer Tastatur und einer Zeigevorrichtung, z. B. einer Maus, einem Trackball und einem Touchpad oder einem Bewegungssensor, durch welchen der Nutzer Eingabe an den Computer bereitstellen kann (z. B. Interagieren mit einem Nutzerschnittstellenelement). Andere Arten von Vorrichtungen können auch verwendet werden zum Bereitstellen von Interaktion mit einem Nutzer; z. B. Rückmeldung, welche dem Nutzer bereitgestellt wird, kann irgendeine Form von fühlbarer Rückmeldung sein, z. B. visuelle Rückmeldung, hörbare Rückmeldung oder taktile Rückmeldung; und eine Eingabe von dem Nutzer kann in irgendeiner Form einschließlich akustisch, Sprach- und/oder taktiler Eingabe empfangen werden.
-
Die oben beschriebenen Techniken können in einem verteilten Computersystem implementiert werden, welches eine Back-End-Komponente umfasst. Die Back-End-Komponente kann z. B. ein Datenserver, eine Middleware-Komponente und/oder ein Anwendungsserver sein. Die oben beschriebenen Techniken können in einem verteilten Computersystem implementiert werden, welches eine Front-End-Komponente umfasst. Die Front-End-Komponente kann z. B. ein Clientcomputer mit einer grafischen Nutzerschnittstelle, einem Webbrowser, durch welchen ein Nutzer mit einer beispielhaften Ausführungsform interagieren kann, und/oder anderen grafischen Nutzerschnittstellen für eine Übertragungsvorrichtung sein. Die oben beschriebenen Techniken können in einem verteilten Computersystem implementiert werden, welches irgendeine Kombination solcher Back-End-, Middleware- oder Front-End-Komponenten umfasst.
-
Das Rechnersystem kann Clients und Server umfassen. Ein Client und ein Server sind im Allgemeinen entfernt voneinander und typischerweise agieren sie über ein Kommunikationsnetzwerk. Die Beziehung des Clients und des Servers entsteht aufgrund von Computerprogrammen, welche auf den entsprechenden Computern laufen und eine Client-Server-Beziehung zueinander haben.
-
Die Komponenten des Computersystems können durch irgendeine Art oder Medium von digitaler oder analoger Datenkommunikation (z. B. ein Kommunikationsnetzwerk) verbunden werden. Beispiele von Kommunikationsnetzwerken umfassen schaltungsbasierte und paketbasierte Netzwerke. Paketbasierte Netzwerke können z. B. das Internet, ein Trägerinternetprotokoll-(IP)-Netzwerk (z. B. lokales Netzwerk (LAN), Großraumnetzwerk (wide area network) (WAN), Campus Area Network (CAN), Metropolraumnetzwerk (Metropolitan Area Network) (MAN), Home Area Network (HAN)), ein privates IP-Netzwerk, ein IP Private Branch Exchange (IPBX), ein drahtloses Netzwerk (z. B. Radio Access Network (RAN), 802.11 Netzwerk, 802.16 Netzwerk, General Paket Radio Device(GPRS)-Netzwerk, und HiperLAN), und/oder andere paketbasierte Netzwerke umfassen. Schaltungsbasierte Netzwerke können z. B. das Public Switch Telephone Network (PSTN), ein Private Branch Exchange (PBX), ein drahtloses Netzwerk (z. B. RAN, Bluetooth, Code-Division Multiple Access(CDMA)-Netzwerk, Time Division Multiple Access(TDMA)-Netzwerk, Global System for Mobile Communication(GSM)-Netzwerk), und/oder andere schaltungsbasierte Netzwerke umfassen.
-
Vorrichtungen des Rechnersystems und/oder der Rechnervorrichtung können z. B. einen Computer, einen Computer mit einer Browservorrichtung, ein Telefon, ein IP-Phone, eine Mobilvorrichtung (z. B. Mobiltelefon, Persönlicher Digitaler Assistent(PDA)-Vorrichtung, Laptopcomputer, elektronische Mailvorrichtung), einen Server, einen Rahmen (Rack) mit einer oder mehreren Verarbeitungskarten, Spezialzweckschaltungen, und/oder andere Kommunikationsvorrichtungen umfassen. Die Browservorrichtung umfasst z. B. einen Computer (z. B. Desktopcomputer, Laptopcomputer) mit einem World Wide Web Browser (z. B. Microsoft® Internet Explorer® verfügbar von Microsoft Corporation, Mozilla® Firefox verfügbar von Mozilla Corporation). Eine mobile Rechenvorrichtung umfasst z. B. einen Blackberry®. IP-Phones umfassen z. B. ein Cisco® Unified IP Phone 7985G verfügbar von Cisco Systems, Inc., und/oder ein Cisco® Unified Wireless Phone 7920 verfügbar von Cisco Systems, Inc.
-
Ein Fachmann wird realisieren, dass die Erfindung in anderen spezifischen Formen verkörpert sein kann, ohne vom Geist oder den wesentlichen Charakteristiken davon abzuweichen. Die vorangegangenen Ausführungsformen sind somit in allen Bezügen als veranschaulichend anstatt beschränkend für die Erfindung, welche hierin beschrieben ist, anzusehen. Der Geltungsbereich der Erfindung ist somit angedeutet durch die angehängten Ansprüche anstatt durch die vorangegangene Beschreibung und alle Änderungen, welche innerhalb der Bedeutung und dem Bereich der Äquivalenz der Ansprüche kommen, sind somit als darin umfasst beabsichtigt.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 6798925 [0025]
- US 7016539 [0032]
- US 7065262 [0032]
-
Zitierte Nicht-Patentliteratur
-
- ”Computer Graphics: principles and practice”, James D. Foley (1996) [0029]