-
HINTERGRUND DER ERFINDUNG
-
Die Erfindung betrifft maschinelles Sehen und insbesondere dreidimensionales (3D) maschinelles Sehen. Die Erfindung findet Anwendung bei der Herstellung, Qualitätskontrolle und Robotertechnik, um nur einige Gebiete zu erwähnen.
-
Maschinelles Sehen bezeichnet die automatisierte Analyse von Bildern zur Bestimmung von Eigenschaften von in ihnen gezeigten Gegenständen. Es wird häufig bei automatisierten Fertigungsstraßen verwendet, bei denen Bilder von Komponenten analysiert werden, um Stückentnahme zu erleichtern sowie Stückplatzierung und – ausrichtung für die Montage zu bestimmen. Wenn Roboter die Mittel für automatisierten Zusammenbau darstellen und automatisierte Bildanalyse zur Erleichterung von Stückentnahme, -platzierung und -ausrichtung verwendet wird, bezeichnet man das System als sichtgestützte Robotertechnik. Maschinelles Sehen wird ebenso für Roboternavigation verwendet, zum Beispiel zur Sicherstellung der Erkennung von Szenen, wenn sich Roboter durch Umgebungen bewegen.
-
Obgleich dreidimensionale (3D-)Analyse schon lange in der Literatur diskutiert wird, verlassen sich die meisten Maschinensehsysteme von heute auf zweidimensionale (2D-)Bildanalyse. Dazu ist es in der Regel notwendig, dass dem Sehsystem Untersuchungsgegenstände in beschränkten Orientierungen und Orten „dargestellt” werden. Gewöhnlich wird für diesen Zweck ein Förderband verwendet. Zu montierende oder untersuchende Gegenstände werden in der Regel mit einer bestimmten bekannten, stabilen 3D-Konfiguration auf das Band platziert, aber mit einer unbekannten Position und Orientierung, und in das Sehfeld des Sehsystems bewegt. Auf Grundlage der 2D-Pose (d. h. Position und Orientierung) eines Gegenstands im Sehfeld, und unter Berücksichtigung der Tatsache, dass es auf dem Förderer angeordnet ist (wodurch seine ”Lage” und sein Abstand zu der Sichtsystemkamera sichergestellt wird), wendet das System 2D-Geometrie an, um die genaue 3D-Pose des Gegenstands und/oder dessen Übereinstimmung mit einem erwarteten Erscheinungsbild zu bestimmen.
-
Beispiele, bei denen eine derartige 2D-Analyse verwendet wird, liegen in früheren Arbeiten der hiesigen Inhaberin vor, einschließlich den
US-Patenten 6,748,104 mit dem Titel „Methods and apparatus for machine vision inspection using single and multiple templates or patterns” [Verfahren und Vorrichtung zur Maschinensichtprüfung mit einziger und mehrfachen Vorlagen und Mustern],
6,639,624 mit dem Titel „Machine vision methods for inspection of leaded components” [Maschinensehverfahren für die Prüfung von verdrahteten Bauteilen],
6,301,396 mit dem Titel „Nonfeedback-based machine vision methods for determining a calibration relationship between a camera and a moveable object” [Maschinensehverfahren, die nicht auf Feedback basieren, zur Bestimmung einer Kalibrationsbeziehung zwischen einer Kamera und einem bewegbaren Gegenstand],
6,137,893 mit dem Titel „Machine vision calibration targets and methods of determining their location and orientation in an image” [Maschinensehkalibrationsziele und -verfahren zur Bestimmung ihrer Position und Orientierung in einem Bild],
5,978,521 mit dem Titel „Machine vision methods using feedback to determine calibration locations of multiple cameras that image a common object” [Maschinensehverfahren unter Verwendung von Feedback zum Bestimmen von Kalibrationspositionen von mehreren Kameras, die einen gemeinsamen Gegenstand abbilden],
5,978,080 mit dem Titel ”Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view” [Maschinensehverfahren unter Verwendung von Feedback zum Bestimmen von Orientierung, Pixelbreite und Pixelhöhe eines Sehfelds],
5,960,125 mit dem Titel ”Nonfeedback-based machine vision method for determining a calibration relationship between a camera and a moveable object” [Maschinensehverfahren, das nicht auf Feedback basiert, zur Bestimmung einer Kalibrationsbeziehung zwischen einer Kamera und einem bewegbaren Gegenstand],
6,856,698 mit dem Titel ”Fast high-accuracy multi-dimensional pattern localization” [Schnelle hochgenaue mehrdimensionale Musterlokalisierung],
6,850,646 mit dem Titel ”Fast high-accuracy multi-dimensional pattern inspection” [Schnelle hochgenaue mehrdimensionale Musterprüfung] und
6,658,145 mit dem Titel ”Fast high-accuracy multi-dimensional pattern inspection” [Schnelle hochgenaue mehrdimensionale Musterprüfung], um nur einige zu erwähnen.
-
Mit zunehmendem Verlassen auf die Robotik ist überall von Fabrikhallen bis zur Privatwohnung der Bedarf an praktischen 3D-Sehsystemen hervorgetreten. Dies liegt daran, dass in vielen dieser Umgebungen Gegenstände, die einer Prüfung unterzogen werden, nicht unbedingt in einer Gesamtposition und -lage eingeschränkt sind, wie es zum Beispiel ansonsten der Fall bei Gegenständen sein kann, die auf einem Förderband präsentiert werden. Das heißt, die präzise 3D-Konfiguration des Gegenstands kann unbekannt sein.
-
Zur Einbeziehung der zusätzlichen Freiheitsgrade von Pose und Position in einer 3D-Szene sind 3D-Sehwerkzeuge hilfreich, wenn nicht sogar notwendig. Beispiele für diese sind die
US-Patente Nr. 6,771,808 mit dem Titel „System and method for registering patterns transformed in six degrees of freedom using machine vision” [System und Verfahren zum Registrieren von Muster, transformiert in sechs Freiheitsgraden, durch maschinelles Sehen] und
6,728,582 mit dem Titel „System and method for determining the position of an object in three dimensions using a machine vision system with two cameras” [System und Verfahren zum Bestimmen der Position eines Gegenstands in drei Dimensionen unter Verwendung eines Maschinensehsystems mit zwei Kameras].
-
Andere Maschinensehtechniken sind auf dem technischen Gebiet vorgeschlagen worden. Einige erfordern zu viel Prozessorleistung, um für eine Echtzeitanwendung praktisch zu sein. Andere erfordern es, dass Gegenstände, die einer Prüfung unterzogen werden, komplexe Registrierungsvorgänge durchlaufen und/oder dass während der Laufzeit viele der Merkmale der Gegenstände gleichzeitig im Sehfeld des Maschinensehsystems sichtbar sind.
-
Außerhalb des Bereichs des maschinellen Sehens stellt die Technik auch auf Kontakt basierende Verfahren zur Bestimmung von 3D-Posen bereit – wie etwa die Verwendung einer x,y,z-Messmaschine mit einem Berührungssensor. Jedoch erfordert dies Kontakt, ist relativ langsam und kann manuelles Eingreifen erfordern. Verfahren auf der Basis von elektromagnetischen Wellen zum Bestimmen von 3D-Posen sind ebenfalls angeboten worden. Diese erfordern keinen physischen Kontakt, leiden aber an separaten Nachteilen, wie zum Beispiel, dass sie den oft unpraktischen Schritt des Anbringens von Sender an Gegenständen, die einer Prüfung unterzogen werden, erfordern.
-
Eine Aufgabe der vorliegenden Erfindung ist die Bereitstellung verbesserter Verfahren und Vorrichtungen für maschinelles Sehen und insbesondere für maschinelles Sehen in 3D.
-
Eine verwandte Aufgabe der vorliegenden Erfindung liegt in der Bereitstellung derartiger Verfahren und Vorrichtungen, die ein Spektrum praktischer Anwendungen aufweisen, einschließlich, aber nicht darauf beschränkt, der Herstellung, Qualitätskontrolle und Robotertechnik.
-
Eine weitere verwandte Aufgabe der Erfindung ist die Bereitstellung derartiger Verfahren und Vorrichtungen, die die Bestimmung von beispielsweise der Position und Pose im dreidimensionalen Raum. erlauben.
-
Eine noch weitere verwandte Aufgabe der Erfindung ist die Bereitstellung derartiger Verfahren und Vorrichtungen, die reduzierte Beschränkungen, zum Beispiel hinsichtlich der Gesamtposition und -lage, von Gegenständen, die geprüft werden, auferlegen.
-
Eine noch weitere verwandte Aufgabe der Erfindung ist die Bereitstellung derartiger Verfahren und Vorrichtungen, die Erfordernisse für die Registrierung von Gegenständen, die einer Prüfung unterzogen werden, minimieren.
-
Eine immer noch weitere verwandte Aufgabe der Erfindung ist die Bereitstellung derartiger Verfahren und Vorrichtungen, die bei heutigen und zukünftigen Plattformen für maschinelles Sehen umgesetzt werden können.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die oben angegebenen Aufgaben gehören zu den Aufgaben, die von der Erfindung gelöst werden, welche unter anderem Verfahren und Vorrichtungen zur Bestimmung der Pose, d. h. die Position längs der x-, y- und z-Achse, des Nickens, Rollens und Gierens (oder einer oder mehrerer Eigenschaften der Pose), eines Gegenstands in drei Dimensionen durch Triangulieren von Daten, die von mehreren Bildern des Gegenstands gesammelt wurden, bereitstellt.
-
Somit stellt die Erfindung beispielsweise in einem Aspekt ein Verfahren fair maschinelles Sehen in 3D bereit, bei dem während eines Kalibrierungsschritts mehrere Kameras, die angeordnet sind, um Bilder vom Gegenstand aus verschiedenen jeweiligen Blickpunkten zu erfassen, kalibriert werden, um eine Abbildungsfunktion wahrzunehmen, die Strahlen im 3D-Raum identifiziert, die von der Linse jeder jeweiligen Kamera ausgehen und Pixelorten im Sehfeld dieser Kamera entsprechen. In einem Trainingsschritt wird die mit den Kameras verbundene Funktionalität trainiert, um erwartete Muster in Bildern, die von dem Gegenstand zu erfassen sind, zu erkennen. Ein Laufzeitschritt trianguliert Orte im 3D-Raum von einem oder mehreren dieser Muster von Pixeln betreffenden Positionen dieser Muster in Bildern des Gegenstands und von den während des Kalibrierungsschritts wahrgenommenen Abbildungen.
-
Weitere Aspekte der Erfindung stellen wie oben beschriebene Verfahren bereit, bei denen der Laufzeitschritt Orte aus Bildern vom Gegenstand trianguliert, die im Wesentlichen gleichzeitig von den mehreren Kameras aufgenommen wurden.
-
Noch weitere Gegenstände der Erfindung stellen derartige Verfahren bereit, die einen Rekalibrierungsschritt beinhalten, bei dem Laufzeitbilder des Gegenstands zur Wahrnehmung der oben genannten Abbildungsfunktion, zum Beispiel für eine Kamera, die aus der Kalibrierung geraten ist, eingesetzt werden. Somit können zum Beispiel, wenn eine Kamera Bilder erzeugt, in denen die Muster an Orten zu liegen scheinen (zum Beispiel, wenn sie auf den 3D-Strahlen für diese Kamera abgebildet sind), die mit Bildern von den anderen Kameras inkonsistent sind und/oder im Wesentlichen nicht übereinstimmen (zum Beispiel, wenn sie unter Verwendung ihrer jeweiligen 3D-Strahlen abgebildet sind), mit den Bildern von diesen anderen Kameras bestimmte Musterorte zur Rekalibrierung der einen Kamera verwendet werden.
-
Immer noch weitere Aspekte der Erfindung stellen wie oben beschriebene Verfahren bereit, bei denen der Kalibrierungsschritt das Positionieren von Registrierungszielen (wie etwa Mittelpunktmarkierungen, Fadenkreuz oder dergleichen, zum Beispiel auf Kalibrierungsplatten oder anderweitig) an bekannten Positionen im 3D-Raum und das Aufzeichnen – oder anderweitig Charakterisieren, zum Beispiel algorithmisch – von Korrelationen zwischen diesen Positionen und den Pixelbezogenen Orten der jeweiligen Ziele in den Sehfeldern der Kameras beinhaltet. Verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, bei denen eines oder mehrere dieser Registrierungsziele, Kalibrierungsplatten usw. verwendet werden, um mehrere Kameras zur gleichen Zeit, zum Beispiel mittels gleichzeitigem Abbilden, zu kalibrieren.
-
Andere Aspekte der Erfindung stellen Verfahren, wie oben beschrieben, bereit, bei denen der Kalibrierungsschritt das Wahrnehmen einer Abbildungsfunktion für jede Kamera, die ein Verzerren im Sehfeld berücksichtigt, beinhaltet.
-
Weitere Aspekte der Erfindung beinhalten wie oben beschriebene Verfahren, bei denen der Trainingsschritt das Trainieren der mit den Kameras verbundenen Funktionalität zur Erkennung erwarteter Muster, wie etwa Buchstaben, Zahlen, anderer Symbole (wie zum Beispiel Registrierungsziele), Ecken oder anderer wahrnehmbarer Merkmale (wie zum Beispiel dunkler und heller Flecken) des Gegenstands, beinhaltet und beispielsweise für die Messtechniken und Such-/Detektionsmodelle auf dem technischen Gebiet bekannt sind.
-
Weitere verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, bei denen der Trainingsschritt das Trainieren der oben genormten Funktionalität hinsichtlich der „Modellpunkte” – d. h. erwarteter Orte im 3D-Raum der Muster (zum Beispiel absolut oder verhältnismäßig) auf Gegenständen beinhaltet, die in der Laufzeit geprüft werden. In Kombination mit den aus diesen Bildern wahrgenommenen triangulierten 3D-Orten kann diese Information während des Laufzeitschritts verwendet werden, um die Pose dieses Gegenstands wahrzunehmen.
-
Gemäß Aspekten der Erfindung beinhaltet das Trainieren hinsichtlich erwarteter Orte der Muster (d. h. Modellpunkte) das Finden von 2D-Posen eines Referenzpunkts (oder „Ursprungs”) von jedem derartigen Muster. Für Muster, von denen erwartet wird, dass sie in den Sehfeldern von zwei oder mehr Kameras erscheinen, erleichtern derartige Referenzpunkte die Triangulation, wie nachstehend beschrieben wird, zu Zwecken des Bestimmens der Position dieser Muster (und daher des Gegenstands) im 3D-Raum.
-
Verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, bei denen das Training hinsichtlich erwarteter Muster die Verwendung – innerhalb der jeder Kamera zugeordneten Funktionalität – gleicher Modelle zum Trainieren gleicher erwarteter Muster wie zwischen verschiedenen Kameras beinhaltet. Dies hat den Vorteil, dass sichergestellt wird, dass die Referenzpunkte (oder Ursprünge) für in der Laufzeit gefundene Muster wie zwischen Bildern, die von diesen verschiedenen Kameras erhalten wurden, zusammenfallen.
-
Weitere verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, bei denen das Training hinsichtlich erwarteter Muster die Verwendung – innerhalb der jeder Kamera zugeordneten Funktionalität – verschiedener Modelle für gleiche Muster wie zwischen verschiedenen Kameras beinhaltet, Dies erleichtert das Finden von Mustern, zum Beispiel, wenn Pose, Sichtwinkel und/oder Hindernisse den Weg, auf dem verschiedene Kameras diese Muster abbilden werden, ändern.
-
Verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, die das Trainieren der Auswahl von Referenzpunkten (oder Ursprüngen) von derart modellhaft dargestellten Muster beinhalten. Ein derartiges Training kann beispielsweise von einer Bedienperson, die zum Beispiel einen Laserzeiger oder etwas anderweitiges verwendet, durchgeführt werden, um sicherzustellen, dass diese Referenzpunkte (oder Ursprünge) wie zwischen Bildern, die von diesen verschiedenen Kameras erhalten werden, zusammenfallen.
-
Verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, bei denen der Trainingsschritt das Wahrnehmen des Orts der Muster, beispielsweise durch Verwendung einer Triangulationsmethodologie ähnlich derjenigen, die während der Laufzeitphase angewendet wird, beinhaltet. Alternativ dazu können die erwarteten (relativen) Orte der Muster von den Bedienpersonen eingegeben und/oder durch andere Messmethodologien wahrgenommen werden.
-
Weitere verwandte Aspekte der Erfindung stellen derartige Verfahren bereit, bei denen der Trainingsschritt das Finden eines erwarteten Musters in einem Bild von einer (oder mehreren) Kamera(s) auf der Basis vorheriger Identifizierung dieses Musters in einem Bild von einer anderen Kamera beinhaltet. So kann zum Beispiel, wenn die Bedienperson erst einmal ein erwartetes Muster in einem von einer Kamera aufgenommenen Bild identifiziert hat, der Trainingsschritt automatisch das Finden dieses gleichen Musters in Bildern von den anderen Kameras beinhalten.
-
Noch weitere Aspekte der Erfindung stellen wie oben beschriebene Verfahren bereit, bei denen der Trainingsschritt mehrere Ansichten des Gegenstands für jede Kamera erfasst, bevorzugt so, dass die auf diesen Gegenständen gefundenen Ursprünge der Muster konsistent definiert sind. Zur Berücksichtigung einer möglichen Inkonsistenz unter den Bildern können die, die das höchste Abstimmungsergebnis für die Muster erzeugen, verwendet werden. Dies hat den Vorteil, dass die Methodologie robuster zum Finden von Teilen in willkürlichen Posen gemacht wird.
-
In noch anderen Aspekten der Erfindung beinhaltet der Laufzeitschritt das Triangulieren der Position von einem oder mehreren der Muster in Laufzeitbildern, zum Beispiel unter Verwendung von Musterabstimmung oder anderen zweidimensionalen Sehwerkzeugen, und das Verwenden der Abbildungen, die während der Kalibrierungsphase wahrgenommen wurden, um die pixelbezogenen Orte dieser Muster in den Sehfeldern der jeweiligen Kamera mit den oben erwähnten 3D-Strahlen zu korrelieren, auf denen diese Muster liegen.
-
Gemäß verwandten Aspekten der Erfindung kann es sich bei der Triangulation des Musterorts um „direkte” Triangulation handeln, wie zum Beispiel dort, wo der Ort eines gegebenen Musters aus dem Schnittpunkt (oder dem Punkt der Approximation nach der Methode der kleinsten Quadrate) mehrerer 3D-Strahlen (von mehreren Kameras), auf denen dieses Muster liegt, bestimmt wird. Alternativ oder zusätzlich dazu kann die Triangulation „indirekt” gestaltet sein, wie z. B. dort, wo der Ort eines gegebenen Musters nicht nur aus dem Strahl (oder den Strahlen), auf dem (denen) dieses Muster liegt, bestimmt wird, sondern auch aus (i) den Strahlen, auf denen die anderen Muster liegen, und (ii) den relativen Orten dieser Muster zueinander (zum Beispiel wie während der Trainingsphase bestimmt).
-
Andere Aspekte der Erfindung stellen wie oben beschriebene Verfahren bereit, bei denen die mit den Kameras verbundene Funktionalität „unterbrachen wird”, wenn sie ein erwartetes Muster in einem Bild eines Gegenstands – während des Trainings oder der Laufzeit – nicht finden kann, wodurch eine ungebührliche Verzögerung bei der Positionsbestimmung vermieden wird, zum Beispiel wenn ein derartiges Muster fehlt, verdeckt ist oder anderweitig nicht erfasst wird.
-
Noch andere Aspekte der Erfindung entsprechen den oben beschriebenen Verfahren, bei denen ID-Matrixcodes (oder andere Muster, deren Erscheinungsbild und/oder Positionen vordefiniert oder anderweitig bekannt sind) statt der oben diskutierten Muster verwendet werden. Bei diesen Aspekten der Erfindung entfällt der Trainingsschritt oder er ist reduziert. Stattdessen können die 2D-Positionen dieser Codes (oder andere Muster) aus den Trainingsphasen- oder Laufzeitbildern wahrgenommen werden, zum Beispiel durch Sehwerkzeuge, die für generische Arten von Merkmalen entwickelt sind, um auf 3D-Orte abzubilden.
-
Noch andere Aspekte der Erfindung entsprechen den oben beschriebenen Verfahren, bei denen ID-Matrixcodes (oder andere Muster, deren Erscheinungsbild und/oder Positionen vordefiniert oder anderweitig bekannt sind) statt der oben diskutierten Muster verwendet werden. Bei diesen Aspekten der Erfindung entfallt der Trainingsschritt oder er ist reduziert. Stattdessen können die 2D-Positionen dieser Codes (oder andere Muster) aus den Trainingsphasen- oder Laufzeitbildern wahrgenommen werden, zum Beispiel durch Sehwerkzeuge, die für generische Arten von Merkmalen entwickelt sind, um auf 3D-Orte abzubilden.
-
Noch weitere Aspekte der Erfindung stellen Systeme für maschinelles Sehen bereit, zum Beispiel einschließlich einer digitalen Verarbeitungsfunktionalität und Kameras, die in Übereinstimmung mit den obigen Verfahren arbeiten. Diese und andere Aspekte der Erfindung sind in den Zeichnungen und in der folgenden Beschreibung ersichtlich.
-
Ein noch weiterer verwandter Aspekt der Erfindung sieht solche Verfahren und Vorrichtungen bereit, die die Prüfung eines Gegenstands erlauben, z. B. um relative Positionen von seinen Bereichen zu bestimmen und zu validieren. Derartige Verfahren und Vorrichtungen können mit Bezug auf ein nicht einschränkendes Beispiel verwendet werden, um die Prüfung und Verifikation, zum Beispiel während einer Montage, Qualitätssicherung, Wartung oder eines anderen Vorgangs, zu unterstützen.
-
Weitere verwandte Aspekte der Erfindung stellen derartige Verfahren und Vorrichtungen bereit, die auf die Abwesenheit oder Falschplatzierung eines Teils (oder anderen Abschnitts) eines Gegenstands schließen, wo eines oder mehrere erwartete Muster (zum Beispiel mit diesem Teil/Abschnitt verbunden) bei Laufzeitbildern fehlen oder in diesen Bildern vorhanden sind, aber an Pixelorten, die auf 3D-Orte abbilden, die nicht erwartet oder erwünscht sind.
-
Noch weitere verwandte Aspekte der Erfindung stellen derartige Verfahren und Vorrichtungen bereit, wobei während des Laufzeitschritts die Positionen von Teilen oder anderen Abschnitten des Gegenstands auf der Basis von Teilmengen von 3D-Orten entsprechend Mustern, die in Laufzeitbildern gefunden werden, bestimmt werden und wobei diese 3D-Orte benutzt werden, um erwartete Orte noch weiterer Muster zu bestimmen. Die erwarteten Orte dieser weiteren Muster können mit ihren tatsächlichen 3D-Orten, wie sie zum Beispiel aus den Laufzeitbildern bestimmt werden, verglichen werden. Wo bei dem Vergleich identifizierte Positionsunterschiede eine vorgegebene Toleranz überschreiten, kann das System geeignete Benachrichtigungen (zum Beispiel an die Bedienperson) erzeugen.
-
Vorteile von erfindungsgemäßen Systemen und Verfahren bestehen darin, dass sie leichter zu verwenden sind und praktischer als Vorgehensweisen bei Systemen des Standes der Technik sind, und dennoch auf Sehen basieren und daher keinen Kontakt mit oder eine vorherige Vorbereitung von Gegenständen, die einer Prüfung unterzogen werden, benötigen. Derartige (erfindungsgemäße) Systeme und Verfahren können leicht eingerichtet werden und dann mittels „Zeigen-und-Durchführen” trainiert werden.
-
Außerdem bieten sie schnelle Leistung und Robustheit, zum Beispiel gegenüber fehlender und inkorrekter Ergebnisse. So können beispielsweise Verfahren und Vorrichtungen gemäß Aspekten der Erfindung die Pose von Gegenständen bestimmen, selbst wenn einige Muster nicht in einigen (und unter manchen Umständen in keinen) der Laufzeitbilder gefunden werden, zum Beispiel weil die Muster für den Blick durch eine oder mehrere Kameras verdeckt sind oder weil Bilder dieser Muster nicht rechtzeitig erfasst werden konnten. Nach einem weiteren Beispiel stellen Verfahren und Vorrichtungen gemäß Aspekten der Erfindung Robustheit gegenüber inkorrekten Ergebnissen (die zum Beispiel durch falsch ausgerichtete Kameras verursacht wurden) durch Triangulieren unter Verwendung von Teilmengen der 3D-Orte bereit, die in Laufzeitbildern gefundenen Muster entsprechen: wenn eine der Teilmengen zu einer niedrigeren Summe der Fehlerquadrate führt, kann statt aller Muster diese Teilmenge für die Positionstriangulation verwendet werden.
-
Mindestens einige Ausführungsformen enthalten ein Verfahren zum Spezifizieren eines Gebiets von Interesse bei einem 3D-Abbildungssystem, das mehrere Kameras enthält, die mindestens erste und zweite Kameras einschließen, wobei jede Kamera ein Sehfeld aufweist, das entlang einer eigenständigen Kamerabahn verläuft, wobei das Verfahren die Schritte Darstellen eines Teils an einem Ort innerhalb der Sehfelder der mehreren Kameras, Anzeigen an dem Teil eines Gebiets von Interesse, das sich im Sehfeld jeder der mehreren Kameras befindet, für jede der mehreren Kameras: (i) Erfassen mindestens eines Bilds des Teils, enthaltend das Gebiet von Interesse, (ii) Identifizieren eines kameraspezifischen Felds von Interesse innerhalb des Sehfelds der Kamera, das mit dem Gebiet von Interesse in dem mindestens einem Bild verbunden ist, und (iii) Speichern des Felds von Interesse für spätere Verwendung umfasst.
-
Bei einigen Ausführungsformen enthält der Schritt des Anzeigens eines Gebiets von Interesse an dem Teil das Anzeigen von mindestens drei Punkten an dem Teil, die das Gebiet von Interesse definieren. Bei einigen Ausführungsformen enthält der Schritt des Anzeigens von mindestens drei Punkten die Verwendung einer Lasereinrichtung zur sequenziellen Anzeige jedes der mindestens drei Punkte, wobei der Schritt des Erfassens mindestens eines Bilds das Erfassen eines separaten Bilds für jeden der mindestens drei Punkte enthält. Bei einigen Ausführungsformen enthält der Schritt des Identifizierens eines kameraspezifischen Felds von Interesse die Verwendung von mehreren erfassten Bildern zur Identifizierung des Felds von Interesse.
-
In einigen Fällen enthält das Verfahren weiterhin die folgenden Schritte: für jeden Punkt, Bestimmen, wann der Punkt in mindestens einem von jeder Kamera erfassten Bild identifiziert worden ist, und Anzeigen, wann der Punkt in mindestens einem von jeder der Kameras erfassten Bild identifiziert worden ist. In einigen Fällen enthält das Verfahren weiterhin die folgenden Schritte: für jeden Punkt, Bestimmen, wann der Punkt in mindestens einem von mindestens einer Kamera erfassten Bild identifiziert worden ist, während der Punkt in mindestens einem von mindestens einer weiteren Kamera erfassten Bild nicht identifiziert worden ist.
-
Bei einigen Ausführungsformen enthält der Schritt des Anzeigen eines Gebiets von Interesse an dem Teil die Verwendung einer Lasereinrichtung zur Anzeige des Gebiets von Interesse auf der Oberfläche des Teils durch Beleuchtung mindestens eines Abschnitts des Teils mittels eines Laserstrahls. Bei einigen Ausführungsformen enthält die Lasereinrichtung einen Knopf, der dazu auswählbar ist, anzuzeigen, dass ein derzeit beleuchteter Abschnitt des Teils mindestens einem Gebiet von Interesse definierenden Informationen entspricht und dass Bilder des Teils zu dem Zeitpunkt, an dem der Knopf gewählt wird, analysiert werden sollten, um Ortsinformationen, die mit dem derzeit beleuchteten Abschnitt des Teils verbunden sind, zu erhalten, wobei das Verfahren weiterhin den Schritt des Überwachens auf eine Anzeige von der Lasereinrichtung enthält.
-
In einigen Fällen ist die Lasereinrichtung dazu programmiert, wenn der Knopf gewählt wird, eine Veränderung des Erscheinungsbilds des Beleuchtungsstrahls auf dem Teil zu verursachen, wobei der Schritt des Überwachens auf eine Anzeige von der Lasereinrichtung das Analysieren von Kamerabildern enthält, um die Veränderung des Erscheinungsbilds des Beleuchtungsstrahls auf dem Teil zu identifizieren. In einigen Fällen enthält das Verfahren weiterhin die Schritte des Bereitstellens von Feedback an den Systembenutzer, das anzeigt, warm die kameraspezifischen Felder von Interesse für jede der mehreren Kameras identifiziert worden sind. Bei einigen Ausführungsformen enthält der Schritt des Erfassens mindestens eines Bilds das Erfassen von Bildern in schneller Folge, wobei der Schritt des Anzeigens von mindestens drei Punkten die Verwendung einer Lasereinrichtung zur unabhängigen Beleuchtung von jedem der drei Punkte enthält. Bei einigen Ausführungsformen enthält der Schritt des Anzeigens von mindestens drei Punkten, für jeden Punkt, während die Lasereinrichtung den Punkt beleuchtet, das Anzeigen, dass der beleuchtete Ort einer der Punkte zum Definieren des Gebiets von Interesse ist.
-
Einige Ausführungsformen enthalten ein Verfahren zum Spezifizieren eines Gebiets von Interesse in einem 3D-Abbildungssystem, enthaltend mehrere Kameras, die mindestens erste und zweite Kameras enthalten, wobei jede Kamera ein Sehfeld aufweist, das entlang einer eigenständigen Kamerabahn verläuft, wobei das Verfahren die folgenden Schritte umfasst: Darstellen eines Teils an einem Ort innerhalb der Sehfelder der Kameras, Verwenden einer Lasereinrichtung zum sequenziellen und unabhängigen Anzeigen an dem Teil von mehreren Punkten, die ein Gebiet von Interesse definieren, für jede der mehreren Kameras, während des Anzeigens der Punkte an dem Teil, Erfassen von Bildern des Teils, enthaltend das Gebiet von Interesse, Verwenden der Punkte in mehreren Bildern für jede Kamera zum Identifizieren eines Felds von Interesse in dem Sehfeld, das dem Gebiet von Interesse entspricht, und Speichern des Felds von Interesse in dem Sehfeld als kameraspezifisches Feld von Interesse.
-
Andere Ausführungsformen enthalten ein System zum Trainieren eines Systems für dreidimensionales Sehen zur Definierung von kameraspezifischen Feldern von Interesse, wo ein Gebiet von Interesse an einem Teil angezeigt ist, wobei das System mehrere Kameras umfasst, wobei jede Kamera ein Sehfeld aufweist, das entlang einer eigenständigen Kamerabahn verläuft, so dass das Gebiet von Interesse innerhalb des Sehfelds der Kamera liegt, wobei jede Kamera zum Erhalten von Bildern des Teils in dem Sehfeld der Kamera ist, und einen Maschinensehprozessor umfasst, der für jede Kamera zur Ausführung der folgenden Schritte programmiert ist: (i) Erhalten von Bildern, (ii) Verwenden mindestens eines der erhaltenen Bilder zur Identifizierung eines Abschnitts des Sehfelds der zur Erzeugung des Bilds verwendeten Kamera, das mit dem Gebiet von Interesse verbunden ist, als ein Feld von Interesse und (iii) Speichern des Felds von Interesse, das mit dem Gebiet von Interesse verbunden ist, als ein kameraspezifisches Feld von Interesse.
-
In einigen Fällen enthalt das System weiterhin eine Laserzeigereinrichtung für das Lenken eines Laserstrahls in Richtung des Teils zur Anzeige des Gebiets von Interesse an dem Teil. In einigen Fällen enthält die Laserzeigereinrichtung einen Knopf, der dazu auswählbar ist, anzuzeigen, dass ein derzeit beleuchteter Abschnitt des Teils mindestens einem Gebiet von Interesse definierenden Informationen entspricht und dass Bilder des Teils zu dem Zeitpunkt, an dem der Knopf gewählt wird, analysiert werden sollten, um Ortsinformationen, die mit dem derzeit beleuchteten Abschnitt des Teils verbunden sind, zu erhalten, wobei der Prozessor weiterhin dazu programmiert ist, den Schritt des Überwachens auf eine Anzeige von der Laserzeigereinrichtung, dass Bilder analysiert werden sollen, auszuführen. In einigen Fällen ist die Laserzeigereinrichtung dazu programmiert, wenn der Knopf gewählt wird, eine Veränderung des Erscheinungsbilds des Beleuchtungsstrahls auf dem Teil zu verursachen, wobei der Schritt des Überwachens auf eine Anzeige von der Laserzeigereinrichtung das Analysieren von Kamerabildern enthält, um die Veränderung des Erscheinungsbilds des Beleuchtungsstrahls auf dem Teil zu identifizieren. In einigen Ausführungsformen enthält die Laserzeigereinrichtung einen Sender, der ein Signal sendet, wenn der Knopf gewählt wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Ein umfassenderes Verständnis der Erfindung kann unter Bezugnahme auf die Zeichnungen erreicht werden, in denen:
-
1 einen Digitaldatenprozessor zeigt, der für die Praxis der Erfindung konfiguriert ist;
-
2 ein Flussdiagramm ist, das den Betrieb eines Systems gemäß der Erfindung zeigt;
-
3 die Kalibrierung eines Systems gemäß der Erfindung zeigt;
-
4A–4B das Training und/oder den Laufzeitbetrieb eines erfindungsgemäßen Systems zeigen; und
-
5 ein Flussdiagramm ist, das ein Verfahren zum Training von eigenständigen Feldern von Interesse für mehrere Kameras in einem 3D-Abbildungssystem zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG DER DARGESTELLTEN AUSFÜHRUNGSFORM
-
1 zeigt ein erfindungsgemäßes Maschinensehsystem 10, das dazu fähig ist, die Pose eines Gegenstands 12 in drei Dimensionen durch Triangulieren von Daten, die von mehreren Bildern des Gegenstands gesammelt wurden, zu bestimmen. Bei der dargestellten Ausführungsform ist die Pose die definierte Position und Ausrichtung des Gegenstands im dreidimensionalen Raum – oder genauer gesagt, die Position des Gegenstands längs der x-, y- und z-Achse 14, 16, 18 sowie das Nicken. Rollen und Gieren des Gegenstands relativ zu diesen. Bei anderen Ausführungsformen kann die Pose auf Teilmengen dieser räumlichen Eigenschaften beschränkt sein (zum Beispiel Position entlang der Achse 16 und Gieren; Position entlang der Achsen 14-18; Rollen; usw.). Die dargestellten Achsen 14–18 sind mit einem Rahmen 20 des Sehsystems 10 ausgerichtet; obwohl bei anderen Ausführungsformen andere Bezugsrahmen verwendet werden können. Der Rahmen 20 der dargestellten Ausführungsform ist figürlich durch Kameraträger 20a und Plattform 20b dargestellt, die mit starker Schattierung gezeigt sind; obwohl bei anderen Ausführungsformen andere oder keine derartigen Glieder verwendet zu werden brauchen.
-
Das System 10 enthält weiterhin einen Digitaldatenprozessor 22 und Bilderfassungseinrichtungen 24. Der Digitaldatenprozessor 22, der hier der Einfachheit halber als iMac® G5 Personalcomputer gezeigt ist, kann ein Zentralrechner, ein Arbeitsplatzrechner, ein Personalcomputer (der zum Beispiel auf einer Windows®/Intel Pentium 4-Plattform oder sonstigem läuft), ein zweckbestimmter Sehcomputer, ein eingebetteter Prozessor oder eine andere Digitaldateneinrichtung sein, die mit einem proprietären Open-Source- oder anderweitigem Betriebssystem lauft, das in Übereinstimmung mit den vorliegenden Lehren programmiert oder anderweitig konfiguriert ist, um die Pose des Gegenstands 12 aus von Erfassungseinrichtungen 24 gelieferten Bildern zu bestimmen. Der Digitaldatenprozessor kann eine Anzeige 22a, wie gezeigt, sowie eine Tastatur 22b, eine Maus 22c und andere Eingabe-/Ausgabeeinrichtungen enthalten, die alle von dem Typ sind, der im Stand der Technik bekannt ist.
-
Die Bilderfassungseinrichtungen 24 können Maschinensehkameras, Videokameras, Standbildkameras oder andere Einrichtungen sein, die dazu fähig sind, Bilder des Gegenstands 12 im sichtbaren oder einem anderen relevanten Spektrum zu erfassen. Ohne Verlust von Allgemeinheit werden in dem folgenden Text die Einrichtungen 24 typischerweise als „Kameras” bezeichnet – obwohl sie in der Praxis irgendeine Art von Bilderfassungsfunktionalität umfassen können. In der veranschaulichten Ausführungsform sind drei derartige Einrichtungen 24 gezeigt, obwohl in der Praxis irgendeine Mehrzahl von Einrichtungen (zum Beispiel zwei oder mehr) eingesetzt werden kann. Diese Einrichtungen sind dazu angeordnet, Bilder des Gegenstands 24 aus verschiedenen jeweiligen Blickpunkten zu erfassen. Der Fachmann wird auch wissen, dass bei einigen Ausführungsformen die 3D-Pose eines Prüfgegenstands auch unter Verwendung von Bildern von einer einzigen derartigen Einrichtung 24 bestimmt werden kann und dass daher nicht alle Ausführungsformen Bilder von mehreren Kameras benötigen.
-
Der Digitaldatenprozessor 22 enthält weiterhin einen Zentralprozessor (CPU), einen Speicher (RAM) und eine Eingabe-/Ausgabe-Funktionalität (I/O-Funktionalität) der Art, die in dem technischen Gebiet bekannt ist, obwohl sie für den Betrieb in Übereinstimmung mit den vorliegenden Lehren programmiert ist.
-
Insbesondere sind diese in der dargestellten Ausführungsform dazu konfiguriert, 3D-Maschinensehen in Übereinstimmung mit dem in 2 gezeigten Verfahren bereitzustellen. Dort wird im Kalibrierungsschritt 30 jede der mehreren Kameras 24 kalibriert, um eine jeweilige Abbildungsfunktion wahrzunehmen, die Strahlen im 3D-Raum, die von der Linse dieser Kamera ausgehen und Pixelorten im Sehfeld dieser Kamera entsprechen, identifiziert.
-
Mit Bezug auf 3 enthält in dieser Hinsicht der Kalibrierungsschritt das Positionieren von Registrierungszielen (wie etwa Mittelpunktmarkierungen. Fadenkreuze oder dergleichen, zum Beispiel auf Kalibrierungsplatten 40 oder anderweitig) an bekannten Positionen im 3D-Raum und das Aufzeichnen – oder sonstiges Charakterisieren, zum Beispiel algorithmisch – von Korrelationen zwischen diesen Positionen und den pixelbezogenen Orten der jeweiligen Ziele in den Sehfeldern der Kameras. Vorzugsweise berücksichtigt dieses Abbilden das Verzerren im Sehfeld jeder jeweiligen Kamera 24.
-
In der dargetellten Ausführungsform werden die Registrierungsziele, Kalibrierungsplatten 40 usw. dazu verwendet, mehrere Kameras 24 zur gleichen Zeit zu kalibrieren, zum Beispiel mittels simultanen Abbildens. Somit kann die Bedienperson beispielsweise ein Ziel im Sehfeld von zwei oder mehr der Bilderfassungseinrichtungen 24 platzieren, die das Ziel zu Kalibrierungszwecken gleichzeitig abbilden. Wo Kalibrierungsplatten 40 oder dergleichen zur Kalibrierung verwendet werden, zeigen sie vorzugsweise eine Passermarke 41 (zum Beispiel ein einzigartiges Muster, das sich von dem gleichförmigen Schachbrettmuster unterscheidet) an einem Ursprung, so dass alle Erfassungseinrichtungen 24 bezüglich des gleichen einzigartigen Referenzpunktes mit spezifizierter Ausrichtung kalibriert werden können. Indem die Einrichtungen 24 so in konsistenter Weise kalibriert werden, können sie alle zum Abbilden von ihren Bildkoordinaten (zum Beispiel den pixelbezogenen Orten von Musterursprüngen) auf einen gemeinsamen Referenzpunkt oder -rahmen verwendet werden. Bevorzugte derartige Passermarken sind asymmetrisch, wie in dem Fall der L-förmigen Passermarke in der Zeichnung.
-
Zugrundeliegende Methodologien und Vorrichtungen für eine derartige Kalibrierung werden mittels eines nichteinschränkenden Beispiels in den
US-Patenten 6,748,104 mit dem Titel ”Methods and apparatus for machine vision inspection using single and multiple templates or Patterns”,
6,639,624 mit dem Titel ”Machine vision methods for inspection of leaded components”,
6,301,396 mit dem Titel ”Nonfeedbackbased machine vision methods for determining a calibration relationship between a camera and a moveable object”,
6,137,893 mit dem Titel ”Machine vision calibration targets and methods of determining their location and orientation in an image”,
5,978,521 mit dem Titel ”Machine vision methods using feedback to determine calibration location of multiple cameras that image a common object”,
5,978,080 mit dem Titel ”Machine vision methods using feedback to determine an orientation, pixel width and pixel height of a field of view”,
5,960,125 mit dem Titel ”Nonfeedback-based machine vision method for determining a calibration relationship between a camera and a moveable object”,
6,856,698 mit dem Titel ”Fast high-accuracy multi-dimensional pattern localization”,
6,850,646 mit dem Titel ”Fast high-accuracy multi-dimensional pattern inspection” und
6,658,145 mit dem Titel ”Fast high-accuracy multi-dimensional pattern inspection” gelehrt, deren Lehren hiermit durch Bezugnahme aufgenommen sind. Die in den letzten drei Patenten beschriebenen Methodologien und Vorrichtungen werden an anderer Stelle mit dem Namen „PatMax” bezeichnet.
-
In einem optionalen Trainingsschritt 32 wird ein mit jeder jeweiligen Kamera 24 verbundenes Modul (zum Beispiel eine Codesequenz, Subroutine, Funktion, ein Objekt, andere Datenstruktur und/oder zugehörige Software oder eine andere Funktionalität) dazu trainiert, erwartete Muster in zu erfassenden Bildern des Gegenstands 12 während der Laufzeit zu erkennen. Bei diesen kann es sich um Buchstaben, Zahlen, andere Symbole (wie etwa Registrierungsziele), Ecken oder andere Merkmale (wie etwa dunkle und helle Flecken) handeln, von denen erwartet wird, dass sie in den Laufzeitbildern des Gegenstands 12 wahrnehmbar sind und für die beispielsweise Messtechniken und Such-/Detektionsmodelle auf dem technischen Gebiet bekannt sind. Diese Muster können permanent Teil des Gegenstands oder an ihm befestigt sein. Sie können jedoch auch temporär sein, wie zum Beispiel in dem Fall von entfernbaren Kalibrierungszielen. In der Tat brauchen sie nicht einmal physisch mit dem Objekt verbunden zu sein. Zum Beispiel können sie optisch oder anderweitig auf Gegenstände projiziert sein, die während Trainings- und/oder Laufzeitphasen abgebildet werden, zum Beispiel durch einen Laser oder andere Vorrichtungen.
-
Zusätzlich zum Trainieren der Module oder einer anderen mit jeder Kamera 24 verbundenen Funktonalität zum Erkennen eines Musters enthält der Trainingsschritt 32 der veranschaulichten Ausführungsform das Trainieren davon hinsichtlich der Modellpunktorte, d. h. der erwarteten Orte der Muster, zum Beispiel relativ zueinander (d. h. im 3D-Raum) auf Gegenständen, die während der Laufzeit geprüft werden. Dies kann zum Beispiel durch Verwendung einer Triangulationsmethodologie ähnlich der, die während der Laufzeitphase ausgeübt wurde, sein. Alternativ dazu können die erwarteten (relativen) Orte der Muster von der Bedienperson eingegeben und/oder durch andere Messmethodologien (zum Beispiel Lineale, Messschieber, Messgeräte für optischen Abstand und so weiter) wahrgenommen werden.
-
Ungeachtet dessen, ob Triangulation oder andere Methodologien verwendet werden, enthält der Trainingsschritt 32 bevorzugt das Trainieren der Module oder anderen Funktionalität oder anderen mit jeder Kamera 24 verbundenen Funktionalität hinsichtlich eines Referenzpunkts (oder „Ursprungs”) von jedem derartigen trainierten Muster. Für Muster, von denen erwartet wird, dass sie in den Sehfeldern von zwei oder mehr Kameras erscheinen, erleichtert das Training hinsichtlich derartiger Referenzpunkte das direkte und indirekte Triangulieren der Position dieser Muster und/oder des Gegenstands im 3D-Raum.
-
In der dargestellten Ausführungsform kann ein derartiges Training unter Verwendung gleicher Modelle (zum Beispiel „PatMax” oder so weiter) zum Trainieren gleicher erwarteter Muster wie zwischen verschiedenen Kameras 24 durchgeführt werden. Dies hat den Vorteil, dass sichergestellt wird, dass die Referenzpunkte (oder Ursprünge) für zur Laufzeit gefundene Muster wie zwischen von diesen verschiedenen Kameras erhaltenen Bildern zusammenfallen.
-
Wo Pose, Sichtwinkel und/oder Hindernisse den Weg ändern, entlang dem verschiedene Kameras 24 gleiche Muster sehen, kann ein derartiges Training die Verwendung verschiedener Modelle (für gleiche Muster) wie zwischen verschiedenen Kameras enthalten. Da verschiedene Modelle dahin tendieren können, verschiedene Referenzpunkte für gleiche Muster zu identifizieren, erlaubt es die veranschaulichte Ausführungsform einer Bedienperson, die Auswahl gleicher Referenzpunkte für gleiche Muster zu trainieren.
-
Dies kann beispielsweise während des Trainingsschritts 32 durch gleichzeitiges Erfassen von Bildern des Musters von mehreren Kameras 24 (um als Vorlage für die Suche in Schritt 34 verwendet zu werden) und anschließendes Leuchten eines Laserzeigers auf den Gegenstand erreicht werden. Aus Bildern, die mit dem Laserbeleuchten erfasst werden, kann der 3D-Ort des Laserpunkts berechnet werden, wodurch zusammenfallende Ursprünge auf allen Bildern der Muster definiert werden (obwohl sie hier bezüglich der Verwendung verschiedener Modelle für das Mustertraining beschrieben ist, kann diese Technik auch in Fällen angewendet werden, in denen gleiche Modelle verwendet werden). Zu diesem Zweck kann unter Verwendung der Bilder mit und ohne den überflüssigen Laserzeigerfleck eine Autoschwellwertverarbeitung und eine Klecksanalyse ablaufen gelassen werden, um die Mitte des Flecks in allen Bildern zu finden und so konsistente zusammenfallende Ursprünge zu bestimmen. Wie hier an anderer Stelle diskutiert ist, kann die Triangulation eingesetzt werden, um die 3D-Position des Flecks zu erhalten, wodurch die Verwendung dieser Technik für mehrere Muster auf dem (Trainings-)Gegenstand gestattet ist, z. B. vorausgesetzt, dass es sich nicht bewegt.
-
Dies kann beispielsweise während des Trainingsschritts 32 durch gleichzeitiges Erfassen von Bildern des Musters von mehreren Kameras 24 (um als Vorlage für die Suche in Schritt 34 verwendet zu werden) und anschließendes Leuchten eines Laserzeigers auf den Gegenstand erreicht werden. Aus Bildern, die mit dem Laserbeleuchten erfasst werden, kann der 3D-Ort des Laserpunkts berechnet werden, wodurch zusammenfallende Ursprünge auf allen Bildern der Muster definiert werden (obwohl sie hier bezüglich der Verwendung verschiedener Modelle für das Mustertraining beschrieben ist, kann diese Technik auch in Fällen angewendet werden, in denen gleiche Modelle verwendet werden). Zu diesem Zweck kann unter Verwendung der Bilder mit und ohne den überflüssigen Laserzeigerfleck eine Autoschwellwertverarbeitung und eine Klecksanalyse ablaufen gelassen werden, um die Mitte des Flecks in allen Bildern zu finden und so konsistente zusammenfallende Ursprünge zu bestimmen. Wie hier an anderer Stelle diskutiert ist, kann die Triangulation eingesetzt werden, um die 3D-Position des Flecks zu erhalten, wodurch die Verwendung dieser Technik für mehrere Muster auf dem (Trainings-)Gegenstand gestattet ist, z. B. vorausgesetzt, dass es sich nicht bewegt.
-
Gemäß einer bevorzugten Praxis der Erfindung enthält der Trainingsschritt 32 das Finden eines erwarteten Musters in einem Bild von einer (oder mehreren) Kameras) 24 auf der Basis einer vorherigen Identifizierung dieses Musters in einem Bild von einer anderen Kamera. Somit kann beispielsweise, sobald die Bedienperson ein erwartetes Muster in einem von einer Kamera aufgenommenen Bild identifiziert hat, der Trainingsschritt automatisch das Finden des gleichen Musters in Bildern von den anderen Kameras enthalten.
-
Bei bevorzugten Ausführungsformen enthält der Schritt 32 das Erfassen mehrerer Ansichten des Gegenstands für jede Kamera 24, vorzugsweise derart, dass die Ursprünge der auf diesen Gegenständen gefundenen Muster konsistent definiert sind. Zur Berücksichtigung einer möglichen Inkonsistenz zwischen Bildern können diejenigen verwendet werden, die das höchste Abstimmungsergebnis für die Muster erzeugen. Dies hat den Vorteil, dass die Methodologie robuster für das Finden von Teilen in willkürlichen Posen gemacht wird.
-
Wie oben angegeben, ist der Trainingsschritt 32 optional: bei einigen Ausführungsformen der Erfindung wird er in verringerter Kapazität oder überhaupt nicht eingesetzt. Sind beispielsweise die zur Laufzeit erwarteten Muster für eine Suche über ein Klecksmodell anfällig (zum Beispiel eine, die nach hellen Merkmalen sucht), ist kein Mustertraining nötig – obwohl ein Positionstraining der Art, wie sie oben beschrieben ist, immer noch verwendet werden wird. Dies trifft auch, erneut beispielsweise, zu, wenn es sich bei den Mustern um ID-Matrixcodes handelt (oder um andere Muster, deren Erscheinungsbild und/oder Positionen vordefiniert oder anderweitig bekannt sind) und statt der oben diskutierten trainierbaren Muster verwendet werden. Hier werden die 2D-Positionen dieser Codes (oder anderer Muster) aus den Trainingsphasen- oder Laufzeitbildern wahrgenommen, zum Beispiel durch Sehwerkzeuge, die für generische Arten von Merkmalen entworfen wurden, um auf 3D-Orten abzubilden. Solche Umsetzungen der Erfindung sind nützlich, weil industrielle Teile immer ID-Matrixcodes haben können und mehrere trainingslose Sensoren dadurch 3D-Positionen des ID-Matrixcodes ausgeben könnten. Da weiterhin ein ID-Matrixcode ein rechteckiges Gebiet überspannt, könnten alle Sensoren die 2D-Positionen der 4 Ecken ausgeben; wenn ferner die ID-Matrix mit einem bestimmten Prozess gedruckt wird, kann man die 3D-Positionen kennen (aufgrund der gefundenen Größe/des gefundenen Typs des Codes) und die 3D-Pose berechnen.
-
Im Laufzeitschritt 34 trianguliert der Digitaldatenprozessor 22 Orte im 3D-Raum von einem oder mehreren der Muster 42a–42c auf dem Gegenstand 12 auf Basis von pixelbezogenen Positionen von Darstellungen dieser Muster in Laufzeitbildern des Gegenstands 12 und aus den Abbildungen, die während des Kalibrierungsschritts 32 wahrgenommen wurden. Bei der veranschaulichten Ausführungsform werden diese Laufzeitbilder vom Gegenstand 12 durch die Einrichtungen 24 bevorzugt gleichzeitig oder im Wesentlichen gleichzeitig erfasst. In dieser Hinsicht bezieht sich „im Wesentlichen gleichzeitig” auf eine Bilderfassung, die zeitlich so nahe auftritt, dass die Bewegung des Gegenstands 12, der Einrichtungen 24, des Rahmens 20 oder anderweitig den pixelbezogenen Ort von Muster in den Laufzeitbildern und/oder daraus bestimmten Abbildungen im Wesentlichen nicht beeinflusst. Eine derartige gleichzeitige Erfassung kann durch Auslösen der Kameras 24 zur gleichen (oder fast gleichen) Zeit oder durch andere Mittel erreicht werden – einschließlich beispielsweise des stroboskopischen Beleuchtens des abgebildeten Gegenstands, während die Verschlüsse der Kamera 24 offen sind.
-
Bei der dargestellten Ausführungsform wird die Positionstriangulation erreicht, indem Musterabstimmung oder andere zweidimensionale Sehwerkzeuge zur Wahrnehmung des pixelbezogenen Orts von Muster in den Laufzeitbildern und die Abbildungen, die während der Kalibrierungsphase wahrgenommen werden, um die pixelbezogenen Orte dieser Muster in den Sehfeldern der jeweiligen Kamera
24 mit den oben erwähnten 3D-Strahlen, auf denen diese Muster liegen, zu korrelieren, verwendet werden. Beispiele, die solche 2D-Sehwerkzeuge verwenden, beinhalten die oben erwähnten, durch Bezugnahme hier aufgenommenen
US-Patente 6,748,104 ,
6,639,624, 6,301,396 ,
6,137,893 ,
5,978,521 ,
5,978,080 ,
5,960,125 ,
6,856,698 ,
6,850,646 und
6,658,145 .
-
Die Triangulation von Musterort kann durch „direkte” Triangulation erfolgen, wie zum Beispiel dort, wo der Ort eines gegebenen Musters aus dem Schnittpunkt mehrerer 3D-Strahlen (von mehreren Kameras), auf denen dieses Muster liegt, bestimmt wird. Alternativ oder zusätzlich dazu kann die Triangulation „indirekt” sein, wie dort, wo der Ort eines gegebenen Musters nicht nur aus dem Strahl (oder Strahlen), auf dem/denen dieses Muster liegt, bestimmt wird, sondern auch aus (i) den Strahlen, auf denen die anderen Muster liegen, und (ii) den relativen Orten dieser Muster zueinander (zum Beispiel wie während der Trainingsphase bestimmt) auf dem abgebildeten Gegenstand.
-
Bei der dargestellten Ausführungsform kann die direkte und/oder indirekte Triangulation eine „Anpassung durch die Methode der kleinsten Quadrate” oder andere solche Methodologien zum Finden von Schnittpunkten (oder nächstliegenden Schnittstellen) wie zwischen oder unter mehreren 3D-Strahlen verwenden (von mehreren Kameras 24), auf welchen (ein oder mehrere) Muster zu liegen scheint oder scheinen. Beispielsweise liegt, wo von zwei oder mehr Kameras 24 erfasste Bilder anzeigen, dass ein gegebenes Muster (und genauer gesagt der anscheinende Ursprung dieses Musters) auf zwei oder mehr Strahlen liegt, eine Methodologie der Anpassung durch die Methode der kleinsten Quadrate verwendet werden, um einen Schnittstellenort dieser Strahlen im 3D-Raum oder einen nächstliegenden Punkt dazu (d. h. einen Punkt im Raum, der diesen Strahlen am nächsten liegt) zu bestimmen. Ebenso kann, wo Bilder von den Kameras 24 Ursprünge für mehrere Muster auf mehreren Strahlen anzeigen, chic Anpassung durch die Methode der kleinsten Quadrate unter Verwendung der Modellpunkte dieser Muster auf dem Objekt verwendet werden, um die wahrscheinlichsten Orte der Muster und/oder des Gegenstands selbst zu bestimmen.
-
Die dargestellte Ausführungsform verwendet einen Optimierer (oder „Löser”), um die Anpassung durch die Methode der kleinsten Quadrate (oder des Effektivwerts) von Strahlen und Mustern zu finden. Bei diesem kann es sich um ein Allzweckwerkzeug des Typs handeln, der auf dem technischen Gebiet erhältlich ist, und/oder er kann in der unten ausführlich beschriebenen Weise betrieben werden. Auf jeden Fall wird während des Laufzeitschritts 34 der Löser mit Definitionen der 3D-Strahlen versorgt, auf denen die Muster (und genauer gesagt die Musterursprünge) liegen, die aus den Laufzeitbildern identifiziert wurden, sowie (wo relevant) der Orte oder relativen Orte der Muster auf dem Gegenstand.
-
In der Regel definieren diese Informationen ein übereingeschränktes System (d. h. mehr Informationen werden mittels Strahlendefinitionen und relativen Musterorten auf dem Gegenstand geliefert, als nötig ist, um die tatsächlichen Orte zu erschließen), eine Tatsache, aus der das veranschaulichte System zu Zwecken der Robustheit Kapital schlägt. Somit kann beispielsweise der Laufzeitschritt 34 die Gegenstandpose bestimmen, zum Beispiel sogar dort, wo Muster aus dem Gegenstand oder seinem Laufzeitbild fehlen (wie zum Beispiel dort, wo ein Muster für den Blick von einer oder mehr Kameras verdeckt ist oder wo Beleuchtung oder andere Bedingungen eine rechtzeitige Erfassung eines Musterbilds nicht erlauben). Beispielsweise kann der Laufzeitschritt 34 das Probieren von Teilmengen der Musterursprünge (und genauer gesagt Teilmengen der Orte, die den Musterursprüngen entsprechen), die von den Erfassungseinrichtungen 24 gefunden wurden, enthalten, um den Effektivwert(„Root Mean Square” – RMS)-Fehler der Anpassung zwischen den Strahlen und den Modellpunkten oder die Triangulation der Strahlen zu minimieren. Wenn eine der Teilmengen eine niedrigere Summe der Fehlerquadrate aufweist, kann statt aller Musterursprünge diese Teilmenge für die Positionstriangulation verwendet werden.
-
In der Regel definiert diese Information ein übereingeschränktes System (d. h. mehr Informationen werden mittels Strahlendefinitionen und relativen Musterorten auf dem Gegenstand geliefert, als nötig ist, um die tatsächlichen Orte zu erschließen), eine Tatsache, aus dem das veranschaulichte System zu Zwecken der Robustheit Kapital schlägt. Somit kann beispielsweise der Laufzeitschritt 34 die Gegenstandspose bestimmen, zum Beispiel sogar dann, wenn bestimmte Muster absichtlich aus der Überlegung weggelassen werden (zum Beispiel, um eine Position eines Musters zu inspizieren/validieren, indem sie mit der von den anderen gefundenen Mustern vorhergesagten Position verglichen wird).
-
Nach einem weiteren Beispiel kann der Laufzeitschritt 34 das Probieren von Teilmengen der Musterursprünge (und genauer gesagt Teilmengen der Orte, die Musterursprüngen entsprechen) enthalten, die von den Erfassungseinrichtungen 24 gefunden wurden, um den Effektivwert(RMS)-Fehler der Anpassung zwischen den Strahlen und den Modellpunkten oder die Triangulation der Strahlen zu minimieren. Dann kann der Schritt die 3D-Position der Muster extrapolieren, die nicht in der Teilmenge enthalten waren (d. h. die absichtlich ausgelassen wurden, wie oben erwähnt), und die 2D-Bildpositionen in ihren jeweiligen Kameras vorhersagen. Die vorhergesagte Bildposition kann mit der tatsächlichen gemessenen Bildposition verglichen werden: Wenn der Abstand zwischen der vorhergesagten Bildposition und der tatsächlich gemessenen Bildposition eine benutzerspezifizierte Abstandstoleranz überschreitet, dann kann das System eine geeignete Warnung oder eine andere Benachrichtigung erzeugen. Alternativ oder zusätzlich dazu können die extrapolierten 3D-Positionen der weggelassenen Muster mit 3D-Positionen, die durch Triangulieren bestimmt wurden, verglichen werden; erneut kann, wo der Abstand zwischen extrapolierten (vorhergesagten) und tatsächlichen Positionen unterschiedlich ist, der Laufzeitschritt 34 das Erzeugen einer geeigneten Warnung oder einer anderen Benachrichtigung enthalten.
-
Um die Mustererkennung während sowohl der Trainingsphase als auch der Laufzeitphase zu beschleunigen, kann die veranschaulichte Ausführungsform die gefundene Position eines Musters zur Begrenzung der Such-Freiheitsgrade für das andere Muster ausnutzen. Wenn zum Beispiel eine erste Kamera 24 das Muster bei 15 Grad findet und sich eine andere Kamera ungefähr in derselben Orientierung wie die erste Kamera befindet, braucht sie nur nach dem Muster bei den Orientierungen 15 +/– 10 Grad zu suchen. Zusätzlich weiß man, wenn die Position des Ursprungs von einer Kamera gegeben ist, dass der Ursprung entlang eines 3D-Strahls liegen wird; dadurch können wir diesen Strahl auf das Sehfeld der zweiten Kamera projizieren und nur nach dem Muster entlang dieser Linie suchen.
-
Wenn zwei Muster miteinander verwechselbar sind (d. h. es gibt zwei Fälle, die dem Muster im Sehfeld der Kamera ähnlich sind), kann die veranschaulichte Ausführungsform alle der verschiedenen möglichen Entsprechungen ausprobieren. Wenn zum Beispiel die Technologie verwendet wird, die in den oben erwähnten, durch Bezugnahme hier aufgenommenen
US-Patenten Nr. 6,856,698 mit dem Titel „Fast high-accuracy multi-dimensional pattern localization”,
6,850,646 mit dem Titel „Fast high-accuracy multi-dimensional pattern inspection” und
6,658,145 mit dem Titel „Fast high-accuracy multi-dimensional pattern inspection” beschrieben ist, sind beispielsweise Muster wie die Buchstabenfolgen „P”, „ST”, „It” und „Notes” (von einer POST-IT
®-Notes-Aufschrift) alle unterschiedlich, also weiß man, wenn eine Übereinstimmung gefunden wird, dass es eine korrekte Übereinstimmung ist.
-
Alternativ dazu kann das als „Blob”- bzw. „Klecks”-Analyse bekannte Maschinensehwerkzeug verwendet werden, um Muster zu finden (zum Beispiel, wenn es sich um dunkle Löcher handelt). In diesem Fall könnte die Hypothese aufgestellt werden, dass Klecks #1 dem 3D-Modellpunkt 1 und Klecks #2 dem 3D-Modellpunkt 2 usw. entspricht. Wenn dies nicht funktioniert, dann kann die Analyse zur nächsten Hypothese fortschreiten: dass Klecks #2 dem 3D-Modellpunkt #2 und Klecks #1 dem 3D-Modellpunkt #1 entspricht.
-
Ein umfassenderes Verständnis des Triangulationsprozesses der veranschaulichten Ausführungsform kann aus der folgenden Diskussion verstanden werden.
-
Um n 3D-Strahlen zu schneiden (d. h. um den Punkt zu finden, der den Summenquadratabstand zu n 3D-Strahlen minimiert), wird zunächst jeder Strahl als zwei separate orthogonale Ebenen charakterisiert (da der Quadratabstand von einem Punkt zu einem Strahl die Summe der Quadratabstände des Punkts zu zwei diesen Strahl schneidenden orthogonalen Ebenen ist). Dies ist in dem folgenden C++-Code beispielhaft dargestellt:
-
Um nach der Pose aufzulösen, die am besten die 3D-Punkte auf die entsprechenden 3D-Strahlen abbildet, kann gesagt werden, dass die folgenden Gleichungen verwendet werden (die im Maple-Mathematik-Paket ausgedrückt sind, das von Maplesoft, einem Unternehmensbereich von Waterloo Maple, im Handel erhältlich ist), die zur Erstellung eines optimierten C-Codes verwendet werden.
-
Der Ansatz löst nach der Pose auf (die hinsichtlich der Variablen a, b, c, d, tx, ty, tz ausgedrückt ist), die die Summe der Fehlerquadrate zwischen Punkten p (die als x, y, z ausgedrückt sind) und Ebenen, die als (px, py, pz, pt) ausgedrückt sind, minimiert. Es ist zu beachten, dass jeder 3D-Strahl zwei solchen Ebeneneinschränkungen entspricht.
-
Der Ansatz berechnet die Summe der Fehlerquadrate durch Aufaddieren der Koeffizienten der algebraischen Fehlerfunktion. Dann löst der Ansatz nach dem optimalen a, b, c, d, tx, ty, tz unter Verwendung der Gradientenabnahme auf. Man beachte, dass man, da es 7 Variablen (a, b, c, d, tx, ty, tz) und nur 6 Freiheitsgrade gibt, 4 verschiedene Fälle ausprobiert – wo a auf 1 gesetzt wird und die Variablen b, c, d sind; wo b auf 1 gesetzt wird und die Variablen a, c, d sind; wo c auf 1 gesetzt wird und die Variablen a, b, d sind; und wo d auf 1 gesetzt wird und die Variablen a, b, c sind.
-
-
Das zuvor Gesagte wird weiterhin angesichts des Folgenden verstanden, in dem GenericPoly() eine Funktion ist, die die Koeffizienten einer Funktion extrahiert. Somit ist, wenn die Funktion x*x+2*x*y+y*y ist, die generische Funktion f0x2y0*x*x+f0x1y1*x*y+f0x0y2*y*y, wo f0x2y0 = 1, f0x1y1 = 2, f0x0y2 = 1. GenericPoly() ist in MARS enthalten, einem öffentlich und frei erhältlichen Maple Matlab Resultat-Löser-System, zum Beispiel von www.cs.unc.edu/~geom/MARS (nichteinschränkendes Beispiel).
-
-
(Man beachte, dass, weil die Fehlerfunktion nicht nur derivative(weightMat*weightMat) ist, sondern tatsächlich (a*a+b*b+c*c+d*d)*derivative(weightMat*weightMat) minus 4*a*weightMat*weightMat (zum Berechnen der Teilableitung bezüglich a) (die geschrieben ist als: unit*diff(eval(genPoly[1]),a)–eval(genPoly[1])*4*a));), weil die Kettenregel für Quotienten: deriv(F(x)/G(x)) = (G(x)*F'(x)–F(x)*G'(x))/(G(x)*G(x)), ist zu beachten, dass man das Quadrat des Nenners (im Nenner der Kettenregel für Teilableitungen) für diese Analyse ignorieren kann, da der Nenner (a*a+b*b+c*c+d*d) gleichmäßig auf alle Teilableitungen zutrifft: d((a*a+b*b+c*c+d*d)^2)/da = 4*a*(a*a+b*b+c*c+d*d)).
-
Nach weiterer Erklärung des oben Erwähnten verwenden Verfahren mit numerischer Gradientenabnahme eine Fehlerfunktion, ebenso wie Ableitungen dieser Fehlerfunktion. Die Derivate einer Fehlerfunktion lassen sich numerisch oder symbolisch berechnen. Für numerisch berechnete Derivate kann man einfach eine der Variablen um einen kleinen Betrag ändern und dann die Fehlerfunktion neu berechnen und so die Ableitung numerisch berechnen. Für symbolisch berechnete Ableitungen benötigt man eine der Ableitung entsprechende symbolische Funktion, die in diesem Fall vorliegt, da die die Fehlerfunktion beschreibenden algebraischen Ausdrücke vorliegen, und man kann diese algebraische Fehlerfunktion symbolisch differenzieren.
-
In der veranschaulichten Ausführungsform hält eine C-Datenstruktur alle Koeffizienten für den algebraischen Ausdruck wie folgt:
-
Die veranschaulichte Ausführungsform verwendet auch eine Funktion, die zu den Koeffizienten des algebraischen Ausdrucks (diese Funktionen nehmen als Eingabe einen 3D-Punkt (x, y, z) und eine entsprechende Ebene – charakterisiert durch px, py, pz, pt) Folgendes addiert:
-
Die veranschaulichte Ausführungsform verwendet auch eine Funktion, die den Fehler an einer gegebenen Pose (a, b, c, d, tx, ty, tz) berechnet, wo (a, b, c, d) eine Quaternion-Darstellung der 3D-Rotation (rollen, nicken, gieren) ist und (tx, ty, tz) die Translation sind:
-
Die veranschaulichte Ausführungsform stellt auch Funktionen bereit, die die Ableitungen berechnen:
-
Zum Beispiel kann die Funktion, die zu den Koeffizienten addiert, auf eine Weise ausgedrückt werden, die mit den beispielhaften folgenden Auszügen konsistent ist; die vollständige Funktion ist angesichts der vorliegenden Lehren und dem bereitgestellten Maple-Code offensichtlich:
-
Es ist zu beachten, dass die Art, wie dies funktioniert, darin besteht, dass die fa...'s die Koeffizienten sind und dass die Namen der Variablen den Grad jedes Monoms kodieren
-
Darauf folgend wird ein Aufruf an eine Funktion ptRayGenericPoly_addToVals() für jeden Satz von Punkten, eine Ebene (charakterisiert durch (x, y, z, px, py, pz, pt)) durchgeführt und er akkumuliert die Monom-Koeffizienten zu der Summenfehlerfunktion.
-
Mit Bezug auf den optionalen Schritt 36 in 2 kann das dargestellte System Bilderfassungseinrichtungen 24 rekalibrieren, die aus der Ausrichtung geraten sind, zum Beispiel, wenn eine der Kameras nach der Kalibrierung angestoßen wird. (In dieser Hinsicht versteht es sich, dass es bei der dargestellten Ausführungsform vorzugsweise beabsichtigt ist, dass die Kameras 24 nach der Kalibrierung fixiert und/oder ortsfest bleiben, um während der Kalibrierungsphase bestimmte Abbildungen beizubehalten). Dies kann während der in Schritt 34 durchgeführten Ortstriangulation und möglicherweise während der, die in Schritt 32 durchgeführt wurde, detektiert werden. Zu diesem Zweck können, wenn eine Kamera 24 Bilder erzeugt, in denen die in Laufzeitbildern gefundenen Muster eines Gegenstands, der geprüft wird, an Orten zu liegen scheinen (zum Beispiel, wenn sie auf den 3D-Strahlen für diese Kamera abgebildet sind), die mit Bildern von den anderen Kameras inkonsistent sind und/oder im Wesentlichen nicht übereinstimmen (zum Beispiel, wenn sie unter Verwendung ihrer jeweiligen 3D-Strahlen abgebildet werden), Musterorte, die mit den Bildern von diesen anderen Kameras bestimmt wurden, verwendet werden, um die eine Kamera unter Anwendung derselben Kalibrierungsmethodologie, die oben in Verbindung mit Schritt 30 beschrieben wurde, zu rekalibrieren.
-
In dieser Hinsicht versteht es sich, dass die in Schritt 30 (sowie auch in Schritt 36) bestimmten Abbildungen in zwei separate Effekte zerlegbar sind: Linsenverzerrung, wie etwa Kissenverzerrung und andere Abbildungsfehler, die konstant bleiben, wenn gegen die Kamera 24 gestoßen wird (weil sie nur eine Funktion der Linse ist und weil die Linse zum Beispiel hinsichtlich der CCD, CMOS oder eines anderen Bildsensors festgeklebt werden kann) und die Pose der Kamera 24 in Bezug auf den Arbeitsbereich. Es ist Letzteres – die Pose –, die sich ändert, wenn die Kamera angestoßen wird. In Schritt 36 kann dieser Aspekt der Abbildung, der der Pose der Kamera im Arbeitsbereich zuschreibbar ist, erneut berechnet werden, beispielsweise ohne, dass eine Kalibrierungsplatte nötig ist, da angenommen wird, dass die Linsenverzerrung konstant bleibt.
-
Das veranschaulichte System 10 enthält vorzugsweise ein „Unterbrechungs”-Merkmal, das eine ungebührliche Verzögerung in Fällen verhindert, in denen ein erwartetes Muster nicht in einem Bild, das während der Laufzeitphase 34 erfasst wurde, detektiert wird. In dieser Hinsicht behandelt das System einfach ein Muster, das nicht innerhalb eines vorgegebenen Verzögerungsintervalls (zum Beispiel gesetzt durch die Bedienperson oder anderweitig) detektiert wird, als nicht gefunden und fährt mit der Positionsbestimmung auf der Basis der anderen, gefundenen Muster fort. Dies hat den Vorteil, dass das System 10 bezüglich fehlender Merkmale robuster und in seinem Betrieb zeitgemäßer gemacht wird.
-
Bei zumindest einigen Ausführungsformen kann es ein bestimmter Maschinensehprozess erfordern, oder dadurch optimiert sein, dass ein Systemanwender ein oder mehrere spezifische Gebiete innerhalb erhaltener Bilder eines zu untersuchenden oder analysierenden Teils identifiziert. Zum Beispiel kann ein Systemanwender in dem Fall, dass ein erster Teil überprüft wird, wissen, dass ein Muster von Interesse stets innerhalb eines Sehfelds einer Kamera liegen wird, so dass das Muster in dem oberen linken Viertel von durch die Kamera erzeugten Bildern erscheinen wird. In diesem Fall wäre es zur Beschleunigung des Mustererkennungsprozesses optimal, wenn ein Kameraprozessor die Suche nach dem Muster auf das obere linke Viertel eines erhaltenen Bilds einschränken würde. Wo eine zweite Kamera ebenfalls Bilder von Instanzen des ersten Teils gleichzeitig wie die erste Kamera erhält, kann das Muster dabei stets in dem unteren rechten Viertel des Sehfelds der zweiten Kamera erscheinen, so dass es optimal wäre, wenn ein Prozessor, der Bilder von der zweiten Kamera verarbeitet, die Suche nach dem Muster auf die untere rechte Ecke einschränkt. Wo ein System eine dritte, vierte etc. Kamera enthält, kann ähnlich die Bildverarbeitung für die Mustererkennung optimal auf nur Abschnitte der Kamerabilder eingeschränkt werden.
-
Bei zumindest einigen Ausführungsformen ist es denkbar, dass ein Anwender während eines Trainingsprozesses einen Trainingsvorgang in Bezug auf ein Gebiet von Interesse („Area Of Interest” – AOI) durchführt, wobei der Anwender, wenn ein ideales Teil innerhalb eines Sehfelds von zwei oder mehr Kameras positioniert ist, per Hand Punkte auf dem Teil identifiziert, die zusammen ein Gebiet von Interesse definieren, das in erhaltenen Bildern geprüft oder analysiert werden sollte. Bilder werden mittels der zwei oder mehr Kameras erhalten, bei denen die Punkte, die durch den Anwender ausgewählt werden, durch die oder den Computer-CPU/Prozessor wahrnehmbar sind (siehe 1). Daraufhin speichert der Prozessor die Koordinaten der ausgewählten Punkte in den erhaltenen Bildern, um separate „Felder von Interesse” („Fields Of Interest” – FOIs), die dem Gebiet von Interesse für jede der Kameras entsprechen, zu definieren.
-
Während die Punkte in den separaten Bildern mit den gleichen ausgewählten Punkten auf dem Teil, das abgebildet wird, übereinstimmen, sind die Felder von Interesse (d. h. Abschnitte von Bildern), die den ausgewählten Punkten entsprechen, für jede Kamera unterschiedlich, weil jede Kamera anders in Bezug auf das Teil und die ausgewählten Punkte orientiert ist. So können zum Beispiel, wenn vier ausgewählte Punkte ein Quadrat in einem Bild, das mittels einer ersten Kamera, deren Sehfeld entlang einer ersten Bahn verläuft, erzeugt wird, definieren können, dieselben vier Punkte in einem Bild, das mittels einer zweiten Kamera, deren Sehfeld entlang einer zweiten Bahn verläuft, erzeugt wird, ein Rechteck, Trapez oder anderes Viereck definieren.
-
Es versteht sich, dass dieser AOI-Trainingsvorgang relativ leicht ist und sicherstellt, dass jede Kamera eines Mehrkamera-3D-Systems darauf kalibriert ist, das genau gleiche Gebiet oder den genau gleichen Bereich eines Teils zu prüfen oder zu analysieren. Es versteht sich, dass während eines einzigen AOI-Trainingsvorgangs alle Felder von Interesse der Kameras gleichzeitig trainiert werden können.
-
Mehrere unterschiedliche Verfahren werden für das Anzeigen oder Spezifizieren eines AOIs während des Inbetriebnahmevorgangs in Betracht gezogen. Beispielsweise kann in einigen Fällen ein Systemanwender einen manuellen Laserzeiger 80 zum punktweisen Aufzeigen von ausgewählten Punkten auf einem Teil 12 verwenden. Dabei können die Kameras, wenn ein erster Punkt über den Laserzeiger ausgewählt wird, dahingehend gesteuert werden, gleichzeitige Bilder zu erhalten.
-
In zumindest einigen Fallen kann der manuelle Laserzeiger einen Sender und einen Knopf enthalten, wobei bei Auswahl des Knopfs der Zeigersender ein Signal an einen mit einem Computer 22a (siehe erneut 1) verbundenen Empfänger sendet, das anzeigt, dass diesem Zeitpunkt entsprechende Bilder untersucht werden sollten, um die Orte in den Bildern des laserbeleuchteten Punkts zu identifizieren. In anderen Fällen kann eine Aktivität des Lasers innerhalb einer Serie von erhaltenen Bildern dem Computerprozessor anzeigen, dass ein Punkt ausgewählt worden ist. Zum Beispiel kann der Zeiger 80 an sein und einen Laserstrahl in Dauerleistung erzeugen, aber zweimal aus- und angehen, wenn ein Zeigerknopf ausgewählt wird. In diesem Fall, wenn jede Kamera eine Serie von Bildern in schneller Aufeinanderfolge während des AOI-Trainingsvorgangs erhält, kann der Computerprozessor dazu programmiert sein, den an- und ausgehenden Leuchtpunkt als ein Signal zu erkennen, dass der Punkt ausgewählt worden ist und dass verbundene Bilder überprüft werden sollten, um die Orte innerhalb der Bilder des laserbeleuchteten Punkts zu identifizieren. In noch anderen Fällen kann ein Anwender einfach eine Taste über eine Tastatur 22b auswählen, um anzuzeigen, dass Bilder zu einem speziellen Zeitpunkt analysiert werden sollten, um die Orte eines beleuchteten Punkts in jedem Bild zu identifizieren.
-
Als nächstes kann der Anwender den Zeiger 80 verwenden, um einen zweiten gebietdefinierenden Punkt auszuwählen und die Kameras dazu veranlassen, gleichzeitig Bilder zu erhalten, gefolgt von einer Auswahl eines dritten benötigten Punkts und so weiter. Wenn Bilder einschließlich aller Punkte, die zur Definition des AOIs nötig sind, erfasst worden sind, kann der Computerprozessor FOIs für jede der separaten Kameras für darauffolgende Verwendung identifizieren. Nachdem kameraspezifische FOIs gespeichert worden sind, während eines normalen Betriebes, wenn ein Teil daraufhin abgebildet wird, kann der Prozessor nur die FOIs in Bildern für die spezifischen Kameras analysieren.
-
Während einige Ausführungsformen es erfordern, dass ein Anwender vier Punkte zur Definition von im Allgemeinen rechteckigen AOIs auswählt, können bei zumindest einigen Ausführungsformen je nach Anwenderwunsch mehr oder weniger Punkte verwendet werden, um andere AOI-Formen auszuwählen. Beispielsweise können drei Punkte zum Spezifizieren eines Dreiecks, fünf Punkte für ein Pentagon usw. spezifiziert/ausgewählt werden.
-
Wie bei anderen Beispielen kann eine Laserlichtquelle dazu programmiert sein, schnell einen Laserstrahl zu scannen, unter Ausbildung eines Quadrats (siehe 82 in 1), eines Rechtecks, eines Dreiecks, eines Kreises usw., AOI-Grenze, wo die AOI-Grenze in Richtung einer Fläche, und zum Schneiden einer Fläche, eines Teils 12 gerichtet werden kann, um ein AOI zu definieren. Hier braucht jede Kamera evtl. nur ein einziges Bild des Teils aufnehmen können, und der oder die Kameraprozessor(en) kann oder können dazu programmiert sein, daraus die kameraspezifischen FOIs zu „erlernen”. Hier kann erneut das Signal zur Anzeige, dass ein AOI ausgewählt worden ist, erleichtert werden über ein Senden von Laserzeiger zu Computerprozessor, eine Aktivität, die von dem Computerprozessor erkannt werden kann, wenn ein Zeigerknopf ausgewählt wird (z. B. an- und ausgehen der AOI-Grenze, eine Veränderung der AOI-Grenzintensität, schneller Wechsel von einer AOI-Grenze zu einer Menge grenzendefinierender Punkte usw.), Auswahl eines Computertastaturknopfes usw.
-
Wie bei noch einem anderen Beispiel kann ein Systemanwender während eines AOI-Trainingsvorgangs Aufkleber oder dergleichen auf ein Teil anbringen. Nach Anbringung der Aufkleber zur Definition eines AOIs, werden Bilder über mehrere Kameras erhalten, der Computerprozessor identifiziert die kameraspezifischen FOIs in jedem den Aufkleberorten entsprechenden Bild und verwendet daraufhin die kameraspezifischen FOIs entsprechend.
-
Bei zumindest einigen Ausführungsformen ist es denkbar, dass jede Kamera während eines AOI-Trainingsvorgangs dahingehend wirken kann, mehrere Bilder in schneller Aufeinanderfolge zu erhalten. In diesem Fall kann bei zumindest einigen Ausführungsformen ein Laser zur „Zeichnung” eines Kastens, Kreises etc., AOI-Grenze um ein AOI verwendet werden, während die Bilder erhalten werden, wo der Computerprozessor dazu programmiert ist, Laserpunktortsinformationen aus den mehreren Bildern für jede Kamera zu verwenden, um kameraspezifische FOIs zu erzeugen.
-
Bei zumindest einigen Ausführungsformen ist es denkbar, dass der Computerprozessor dazu programmiert werden kann, einem Systemanwender während eines AOI-Trainingsvorgangs zumindest etwas Feedback bereitzustellen. Beispielsweise kann in einem Fall, wo ein System drei Kameras enthält und ein Anwender einen Punkt über einen Laserzeiger auswählt, wenn die Kameras Bilder erhalten, aber das Bild oder die Bilder, die mit einer oder mehr der Kameras verbunden sind, zu der von dem Anwender angezeigten Instanz keinen Punkt enthalten, der von dem Laser beleuchtet wird, entweder der Prozessor über einen Piepton oder dergleichen anzeigen, dass ein anderer Punkt ausgewählt werden sollte, oder der Prozessor kann nicht anzeigen, dass der Punkt erfasst wurde (d. h. nur einen Piepton abgeben, wenn Punkte in Bildern für alle Kameras identifiziert wurden), und den Anwender so dazu anregen, einen anderen Punkt auszuwählen. Als weiteres Beispiel, wo die mit zwei von drei Systemkameras verbundenen Bilder dazu verwendet werde können, vier ausgewählte Punkte wahrzunehmen, während mit der dritten Kamera verbundene Bilder nur dazu verwendet werden können, zwei ausgewählte Punkte in gleichzeitig erhaltenen Bildern wahrzunehmen, kann der Prozessor anzeigen, dass der Trainingsprozess nicht erfolgreich war. Als weiteres Beispiel, wo ein Laser dazu verwendet wird, eine AOI-Grenze auf einem Teil zu „zeichnen”, während Kameras Bilder in schneller Aufeinanderfolge aufnehmen, kann der Prozessor dazu programmiert sein, zu erkennen, wenn ein Umriss geschlossen wird (d. h. eine Schneidung tritt auf), und kann die Schließung über einen Piepton oder dergleichen anzeigen. Feedback kann auch optisch über den Computerdisplayschirm 22a stattfinden.
-
Bei zumindest einigen Ausführungsformen kann, zusätzlich zur Verwendung eines AOI-Trainingsvorgangs zur Definition von kameraspezifischen AOIs für spätere Verwendung, ein ähnlicher Trainingsvorgang während einer Muster/Modell-Trainingssitzung verwendet werden, um ein Gebiet/Bereich an einem Teil, für das oder den ein Modellmuster geschaffen werden sollte, anzuzeigen. Beispielsweise kann ein Anwender den Laserzeiger 80 oder dergleichen verwenden, um ein AOI auf einem Teil zu definieren, einschließlich spezifische Merkmale von Interesse, und der Computerprozessor kann dann einen separaten Modellerzeugungsprozess für jedes der kameraspezifischen FOIs, die von dem Anwender spezifiziert wurden, ausführen.
-
Mit Bezug auf 5 ist ein beispielhafter AOI-Trainingsvorgang 50 veranschaulicht. Bei Block 52 beginnt der AOI-Trainingsvorgang. Zum Starten des Vorgangs kann ein Anwender hier über einen Computer 22 (oder über den Laserzeiger 80) anzeigen, dass der Vorgang starten soll (siehe 1). Bei Block 54 zeigt der Anwender AOI-Punkte auf einem Teil (siehe 12 in 1) an, der sich im Sehfeld der Systemkameras 24 befindet. In dem vorliegenden Beispiel werden Punkte zur Definition des AOIs wie in 1 über den Laserzeiger 80 angezeigt, obgleich auch irgendeine andere oben gelehrte Methode oder eine den obigen Lehren gleichwertige Methode verwendet werden kann.
-
Bei Block 56 werden Kameras 24 verwendet, um Bilder des Teils 12 zu erhalten. Bei Block 58 werden die Bilder von dem Computerprozessor untersucht, um die ausgewählten Punkte, die das AOI definieren, zu identifizieren. Bei Block 60 bestimmt der Prozessor, ob die AOI-definierenden Punkte in wenigstens einem mit jeder Kamera verbunden Bild lokalisiert wurden. Wo die AOI-definierenden Punkte nicht alle identifiziert worden sind, wird die Ansteuerung bei Block 54 zurückgereicht, wo der Prozess weiterhin in einer Schleife läuft. Im optimalen Fall kann dem Systemanwender am Block 55 Feedback bereitgestellt werden. Sind einmal alle AOI-definierenden Punkte identifiziert worden, werden bei Block 62 die FOIs für jede Kamera gespeichert und dem Anwender wird bei Block 64 Feedback (z. B. ein Piepton) bereitgestellt, was anzeigt, dass der AOI-Trainingsvorgang für das derzeitige AOI beendet wurde. Wenn ein Anwender ein zweites AOI für den Teil definieren möchte, kann der Prozess 50 wiederholt werden.
-
Oben sind Verfahren und Vorrichtungen beschrieben, die unter anderem die oben aufgestellten Aufgaben erfüllen. Es versteht sich, dass die in den Zeichnungen gezeigten und oben beschriebenen Verfahren und Vorrichtungen lediglich Beispiele von Ausführungsformen der Erfindung sind und dass andere Ausführungsformen, die Änderungen enthalten, unter den Erfindungsumfang fallen. Angesichts des oben Angegebenen wird Folgendes beansprucht:
-
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 6748104 [0004, 0062, 0074]
- US 6639624 [0004, 0062, 0074]
- US 6301396 [0004, 0062]
- US 6137893 [0004, 0062, 0074]
- US 5978521 [0004, 0062, 0074]
- US 5978080 [0004, 0062, 0074]
- US 5960125 [0004, 0062, 0074]
- US 6856698 [0004, 0062, 0074, 0082]
- US 6850646 [0004, 0062, 0074]
- US 6658145 [0004, 0062, 0074, 0082]
- US 6771808 [0006]
- US 6728582 [0006]
- US 6850656 [0082]
-
Zitierte Nicht-Patentliteratur
-
- von www.cs.unc.edu/~geom/MARS [0089]