-
GEBIET DER ERFINDUNG
-
Die Erfindung betrifft Bildverarbeitungssyteme und insbesondere Kalibrierung von Bildverarbeitungssystemkameras.
-
HINTERGRUND DER ERFINDUNG
-
Bildverarbeitungssysteme werden in der Industrie im Allgemeinen eingesetzt, um die Ausrichtung von Teilen und Objekten in Bezug auf einen vorher festgelegten zwei (2D)- oder drei (3D)-dimensionalen Koordinatenraum zu bestimmen. Diese Systeme setzen verschiedene Techniken und Programme ein, um Ausrichtung von Objekten zu bestimmen, die oft auf trainierten Modellen der Objekte beruhen. Kamerakalibrierung ist ein wesentlicher Schritt beim Computersehen – sowohl bei zweidimensionalen (2D) als auch bei dreidimensionalen (3D) Abbildungssystemen. Kamerakalibrierung schließt die Modellierung einer Position der Kamera und von Linsenmerkmalen, die als extrinsische und intrinsische Parameter bekannt sind, ein Kamerakalibrierung kann entweder an einer einzelnen oder an einer Anordnung von mehreren Kameras, wie etwa einem System, das eine oder mehrere Stereokameraköpfe einschließt, durchgeführt werden. Stereokameraköpfe und andere Formen von 3D-Sensoren machen die Erzeugung einer 3D-Tiefenabbildung eines Objekts möglich. Die Kalibrierung dieser Kameras bestimmt die Beziehung zwischen den beobachteten 2D-Abbildungsräumen und der 3D-Welt. Nach der Kamerakalibrierung können die 3D-Informationen aus den 2D-Computerbildkoordinaten abgeleitet werden, und in ähnlicher Weise können die 2D-Bildkoordinaten aus den 3D-Informationen abgeleitet werden.
-
Insbesondere schließt Kamerakalibrierung die Modellierung eines Bildentstehungssystems durch die Beurteilung der internen geometrischen und optischen Kameramerkmale (intrinsische Parameter, die effektive Brennweite oder Abstand Bildebene zu Projektionsmitte, Linsenverzerrungskoeffizient, Skalierungsfaktor für x aufgrund des Fehlers der Kameraabtastung und des Erfassungstimings, Computerbildkoordinate für den Ursprung in der Bildebene einschließen) und der 3D-Position und -Ausrichtung der Kamera relativ zu einem definierten Weltkoordinatensystem (extrinsische Parameter) ein. Die intrinsischen und extrinsischen Werte einer Kamera (oft auch Kamerakalibrierungsparameter genannt) werden bei Laufzeitausrichtung- oder Überprüfungsaufgaben eingesetzt, um die Linsenverzerrung zu beseitigen und die beobachteten 2D-Bildmerkmalspunkte in einem 3D-Raum zu interpretieren. Die Genauigkeit der Kamerakalibrierung beeinflusst unmittelbar die Leistung eines Bildverarbeitungssystems.
-
Der Einsatz einer oder mehrerer 2D- oder 3D-Kameras an einem oder mehreren entsprechenden Aussichtspunkten um eine Szene, die ein Objekt enthält herum kann Vorteile beim Erzeugen eines Gesamtbildes des Subjektobjekts mit Blick auf einen Weltkoordinatenraum haben. Durch die Kombination der Bilder von verschiedenen Kameras, werden viele Verdeckungen und Behinderungen von Teilen des Objekts, die in einem oder mehreren Bildern erscheinen können, durch Bilder aus anderen Blickrichtungen kompensiert. So ist in allen Fällen, aber besonders da, wo ein Bildverarbeitungssystem eine Vielzahl von 2D- oder 3D-Kameras einsetzen kann, die Genauigkeit der Kamerakalibrierung entscheidend für die Gesamtleistung des Bildverarbeitungssystems. Allerdings wird die Kamerakalibrierung normalerweise als einmaliger Vorgang für das Einrichten des Bildverarbeitungssystems angesehen. Normalerweise wird sie von Technikern durchgeführt, die wesentlich mehr Kenntnisse über das Bildverarbeitungssystem besitzen als die typischen Benutzer während der Laufzeit, die oft Fließbandarbeiter und ihre Vorgesetzten sind. So werden typischerweise die Kameraparameter – nachdem das System kalibriert wurde – wiederholt durch Arbeiten des Computersehens durch diese Benutzer während der Laufzeit ohne Rücksicht auf die wirkliche Genauigkeit der augenblicklichen Kalibrierung verwendet. Da Kalibrierung eine aufwendige und zeitintensive Aufgabe darstellt, die von erfahrenen Technikern ausgeführt wird, wird sie am besten nur dann vorgenommen, wenn sie wirklich notwendig ist.
-
Wenn allerdings das Bildverarbeitungssystem in einer ungünstigen Umgebung, wie etwa einem Fließband, arbeitet, kann sich die tatsächliche Kameraposition und Linsenverzerrungen je nach Wärmeausdehnung, Vibration, unbeabsichtigter Änderung der Brennweite etc. ändern. Als Folge davon kann die Anwendung des Computersehens nicht optimal arbeiten, wenn die Kamerakalibrierung nicht mehr das Verhältnis zwischen beobachteten 2D-Bildern und der 3D-Welt darstellt. Weiterhin, selbst wenn eine Anordnung für Computersehen nicht optimal arbeitet, kann es schwierig sein, den Grund für die nachlassende Leistung der Anordnung wegen der Kamerafehlkalibrierung nachzuverfolgen.
-
Überprüfung von Kamerakalibrierung in regelmäßigen Abständen kann eine Hilfe sein, um sicherzustellen, dass Kameras mit akzeptablen Kalibrierungsparametern funktionieren, und unnötige Kalibrierungsvorgänge vermeiden, oder im Gegenzug dass unkalibrierte Kameras weiterlaufen. Ein neuer und effektiver Ansatz für eine regelmäßige Überprüfung von Kamerakalibrierung, der sich auf eine einzelne oder eine Vielzahl von 2D- oder 3D-Kameras anwenden lässt, zeigt die US Patentanmeldung, Seriennummer 12/346.773 mit dem Titel SYSTEM UND VERFAHREN ZUR ÜBERPRÜFUNG VON KAMERAKALIBRIERUNG BEI EINEM BILDVERARBEITUNGSSYSTEM von Xiangyun Ye et al., auf deren Lehre hierin als wichtige Hintergrundinformation Bezug genommen wird. Kurz gesagt, hat dieser Überprüfungsvorgang zur Folge, dass das Kamerasystem aus dem laufenden Betrieb genommen wird und dass ein Kalibrierungsziel ins Blickfeld der Kameras gesetzt wird. Unter Einsatz dieses Ziels wird dann ein Überprüfungsvorgang vorgenommen, normalerweise von den Laufzeitbenutzern des Systems, weniger von Kalibrierungstechnikern. Dieser Vorgang ergibt dann die gegenwärtigen intrinsischen und (im Falle von Mehrkamerasystemen) extrinsischen Parameter. Intrinsische Parameter schließen effektive Brennweite oder Entfernung von Bildebene zum Projektionszentrum, Linsenverzerrungskoeffizient, Skalierungsfaktor für x, Verschiebung beim Ursprung der erfassten Bilder je nach Kameraabtastung und Timing-Erfassungsfehler ein. Extrinsische Parameter sind normalerweise durch die 3D-Position und -Ausrichtung der Kamera relativ zu einem gegebenen Weltkoordinatensystem definiert. Diese geltenden Parameter werden in Bezug auf gespeicherte, die Einrichtungszeit betreffende intrinsische und extrinsische Werte analysiert, um zu bestimmen, ob das Kamerasystem und/oder einzelne Kameras darin innerhalb der akzeptablen Kalibrierung bleiben. Dieser Überprüfungsvorgang verkürzt die Stillstandszeit des Systems erheblich, weil der Überprüfungsvorgang nur einen Bruchteil der Kalibrierungszeit in Anspruch nimmt, und eine erneute Kalibrierung nur ausgeführt werden muss, wenn der Überprüfungsvorgang ergibt, dass die Kamera „aus der Kalibrierung” ist. Er kann ebenfalls von den Laufzeitbenutzern des Systems ausgeführt werden. Trotzdem macht es der Ansatz noch notwendig, dass das System aus der Produktion genommen wird, wenn der Überprüfungsvorgang ausgeführt wird. Die Häufigkeit der Durchführung der Überprüfung kann sich als problematisch erweisen, da die Überprüfung oft mehrere Stillstandszeiten des Bildverarbeitungssystems erforderlich macht, was den Durchsatz der Produktionslinie reduziert. Im Gegenzug kann eine zu seltene Überprüfung das 3D-Bildverarbeitungssystem dem Risiko aussetzen, dass zu viele Stücke als Ausschuss zurückgewiesen oder angenommen werden, wenn die Kamerakalibrierung sich verschlechtert.
-
Deshalb ist es wünschenswert, ein System und ein Verfahren für eine Diagnose der Kalibrierung eines Kamerasystems während der Laufzeit vorzusehen, bei dem das System nicht abgeschaltet werden muss, oder für einen getrennten Überprüfungsvorgang, der von den Systembetreibern vorgenommen wird. Ein solches System und Verfahren sollte eine häufige Überprüfung ermöglichen, die besser sicherstellt, dass keine falschen Ablesewerte als Folge eines außerhalb der Kalibrierung stehenden Kamerasystems auftreten.
-
ZUSMMENFASSUNG DER ERFINDUNG
-
Diese Erfindung stellt ein System und ein Verfahren für die Laufzeitbestimmung (Selbstdiagnose) von Kamerafehlkalibrierung (Genauigkeit) zur Verfügung, das normalerweise mit den extrinsischen Werten der Kamera zusammenhängt und das auf historischen Statistiken von Laufzeitmessungen von Objekten, die in der Szene erfasst wurden, beruht. Ein Beispiel der Laufzeitmessung ist das Ausrichtungsergebnis, das auf der Anpassung von beobachteten und erwarteten Bilddaten von trainierten Objektmodellen basiert. Dieser Anordnung vermeidet, dass der laufende Betrieb des Bildsystems beendet werden und/oder die Produktionslinie, die vom Bildsystem bedient wird, gestoppt werden muss, um zu diagnostizieren, ob die Kamera(s) des Systems kalibriert bleiben. Unter der Annahme, dass Objekte oder Merkmale, die vom Bildverarbeitungssystem im Laufe der Zeit überprüft werden, im Wesentlichen die gleichen sind, sammelt das Bildverarbeitungssystem Statistiken von Teilausrichtungsergebnissen an und speichert Zwischenergebnisse, die als Indikator für die gegenwärtige Systemgenauigkeit verwendet werden sollen. Für Bildverarbeitungssysteme mit mehreren Kameras wird zur Erläuterung eine Vergleichsprüfung eingesetzt, um einzelne Problemkameras zu identifizieren. Das System und Verfahren ermöglicht eine schnellere, weniger kostenintensive und gezieltere Diagnose von Fehlern in Bildverarbeitungssystemen im Zusammenhang mit sich verschlechternder Kamerakalibrierung.
-
In einem Anschauungsbeispiel wird ein System, das eine Vielzahl von Kameras, anschaulicher Weise drei oder mehr Kameras, umfasst, von diskreten Blickwinkeln heraus auf eine Szene gerichtet. Die mindestens drei Kameras sind anfänglich kalibriert, was das Auffinden entsprechender extrinsischer Kalibrierungsparameter für jede der mindestens drei Kameras einschließt. Ein erstes Objektmerkmal oder das ganze Objekt (oder ein Teil davon) wird im dreidimensionalen Raum mit einer ersten Vielzahl der mindestens drei Kameras aufgefunden. Eine erste Messung des ersten Objektmerkmals oder einer ersten Objektlage wird dann abgeleitet. Ein zweites Objektmerkmal oder das ganze Objekt (oder ein Teil davon) wird im dreidimensionalen Raum mit einer zweiten Vielzahl der mindestens drei Kameras aufgefunden. Eine zweite Messung des zweiten Objektmerkmals oder der zweiten Objektlage wird dann abgeleitet. Das aufgefundene erste Merkmal kann im Wesentlichen ähnlich sein wie das aufgefundene zweite Merkmal, oder die beiden Merkmale können sich unterscheiden und durch bekannte physikalische Größen getrennt werden. Die erste Messung und die zweite Messung werden dann mit Blick auf jeweils eines von: (i) eine beim Kalibrierungsvorgang ermittelte Genauigkeit, (ii) eine gewünschte Systemgenauigkeit und (iii) eine bekannte Eigenschaft der beiden Merkmale, verglichen. Anschaulicherweise umfasst die erste Messung eine erste geschätzte Position des ersten Merkmals und die zweite Messung umfasst eine geschickte zweite Position des zweiten Merkmals. Die erste Messung kann eine Erfolgsrate bei der Auffindung des ersten Merkmals umfassen und die zweite Messung kann etliche Erfolge bei der Auffindung des zweiten Merkmals umfassen. In einer Ausführungsform schließt der Vergleichsschritt oder -Vorgang die Berechnung einer Abweichung von erster und zweiter Messung und den Vergleich der Abweichung mit Blick auf jeweils mindestens eines von: (i) die Genauigkeit, die bei der Kalibrierung ermittelt wurde, (ii) die gewünschte Systemgenauigkeit und (iii) eine bekannte Eigenschaft des Objekts, ein.
-
In illustrativen Ausführungsformen wird als Antwort auf den Vergleichsschritt oder -Vorgang ein Signal ausgegeben, das eine erforderliche Neukalibrierung basierend auf einem Ergebnis des Vergleichsschrittes anzeigt, der mindestens einen der Punkte überschreitet: (i) Genauigkeit, die beim Schritt (a) bestimmt wurde und (ii) die gewünschte Systemgenauigkeit. Dies kann die Erzeugung von neuen extrinsischen Parametern, die auf dem Vergleich beruhen, und die Bereitstellung der extrinsischen Kalibrierungsparameter für mindestens eine der mindestens drei Kameras einschließen, so dass die mindestens eine der mindestens drei Kameras neu kalibriert wird. Anschaulicherweise kann das System von mindestens drei Kameras eine Überprüfungsfunktion für ein Bildverarbeitungssystem einschliessen, um eine Überprüfung der Laufzeitbildverarbeitung für Objekte durchzuführen, die einen Volumenraum, der von den mindestens drei Kameras gesehen wird, durchlaufen. Diese Objekte bilden die Grundlage für die Erzeugung von Messungen durch die Vielzahl an Kameras.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die untenstehende Beschreibung der Erfindung bezieht sich auf die beigefügten Zeichnungen, in welchen:
-
1 ein Diagramm eines Bildverarbeitungssystems ist, das mindestens drei diskreten Kameras zur Erfassung von Bildern eines Objekts innerhalb einer Szene im dreidimensionalen Raum gemäß einem Anschauungsbeispiel einsetzt, einschließlich eines exemplarischen Kalibrierungsobjekts, das für eine Anfangskalibrierung des Kamerasystems verwendet wird;
-
1A ein Diagramm eines beispielhaften Systems von drei Kameras ist, das eingesetzt wird, um Aufgaben der Bildverarbeitung in Bezug auf ein Objekt zu übernehmen;
-
1B ein Diagramm eines beispielhaften Systems von vier Kameras, das eingesetzt wird, um Aufgaben der Bildverarbeitung in Bezug auf ein Objekt zu übernehmen;
-
1C ein Diagramm eines beispielhaften Systems, bei dem zwei Paare (zwei Vielzahlen) von Kameras jeweils Aufgaben der Bildverarbeitung in Bezug auf ein Objekt übernehmen, wobei jede der Vielzahlen in Bezug auf ein, unterschiedliches diskretes Merkmal des Objekts arbeitet;
-
2 ein Blockdiagramm des Einrichtungs- und Kalibrierungsvorgangs für ein Bildverarbeitungssystem, das mindestens drei Kameras und die Laufzeitüberprüfung und das Eigendiagnoseverfahren aufweist, gemäß eines Anschauungsbeispiels;
-
3 ein Diagramm, das die verschiedenen Fehlerstatistiken zeigt, deren Teilmengen beim Eigendiagnoseverfahren der 2 verwendet werden;
-
4 ein Flussdiagramm für ein illustratives Vorgehen bei der Durchführung einer Laufzeiteigendiagnose, der eine erneute Kalibrierung, gemäß dem System und dem Verfahren hierin, folgt;
-
5 eine grafische Darstellung der Abbildungspunkte zwischen einem 3D-Weltkoordinatenraum und einem 2D-Kamerakoordinatenraum, zum Einsatz in Ausführungsformen hier; und
-
6 eine grafische Darstellung einer Triangulation eines Punktes in einem Weltkoordinatensystem aus seinen Bildpunkten in zwei oder mehr (eine Vielzahl von) Kameras zum Einsatz in Ausführungsformen hierin, ist.
-
GENAUE BESCHREIBUNG
-
A. Systemüberblick und Kalibrierung
-
1 zeigt eine typische Anordnung für ein Bildverarbeitungssystem 100 zur Bestimmung der zwei-(2D) oder dreidimensionalen (3D) Ausrichtung oder Lage einer betrachteten Szene, die ein oder mehrere Laufzeitobjekte einschließen kann, die geprüft oder ausgerichtet werden, auf die ein Robotergreifarm oder irgendeine andere Operation einwirkt, die von Vorgängen des Computersehens gesteuert oder unterstützt wird. Das System kann gemäß einer illustrativen Ausführungsform dieser Erfindung kalibriert werden (und die Kalibrierung kann später der Eigendiagnose unterzogen werden).
-
Im Allgemeinen kann das System 100 jede Bildverarbeitungssystemanordnung sein, die mindestens drei Kameras enthält, die die Szene 128, die das Objekt enthält, innerhalb ihres Blickwinkels haben. Die Kamera(s) oder Sensor(en) 120, 122, 124 kann/können jeweils eine 2D-Kamera, wie gezeigt, umfassen, oder optional einen 3D-Sensor. Wo zur Verfügung gestellt, kann ein 3D-Sensor angepasst werden, um Tiefenbilder einer Szene zu erzeugen, indem optische Triangulation zwischen zwei diskreten Kameras (binokulare Optik) innerhalb eines Stereokamerakopfes, der von einer bekannten Grundlinie dazwischen getrennt ist, eingesetzt wird. Allgemeiner, kann ein 3D-Sensor auf verschiedenen Abtastmodalitäten basieren, die Tiefendaten erzeugen können, indem sie eine Anzahl von Techniken anwenden, wobei die Anzahl von Techniken wie Stereoabbildung (Mehrfachkamera), Light Detection and Ranging oder LIDAR, strukturiertes Licht oder Vorrichtungen, die einen Abtastlaser verwenden, einschließt, hierauf jedoch nicht beschränkt ist. In ähnlicher Weise können 2D- und 3D-Abbildungsvorrichtungen gemäß einer Anzahl von Prinzipien, einschließlich CCD und CMOS arbeiten. Für entweder 2D-Kameras oder 3D-Sensoren kann eine Vielzahl von zusätzlichen Kameras/Sensoren, die im Allgemeinen als Block 125 dargestellt sind, an unterschiedlichen, diskreten Aussichtspunkten in Bezug auf die Szene 128 angeordnet sein. Wird eine Vielzahl von Stereokameraköpfen zur Verfügung gestellt, sind einzelne Kameras innerhalb jedes Kopfes getrennt durch das System zugänglich oder das Tiefenbild, das vom Kopf erzeugt wird, wird als Rohdatenzufuhr einem Prozessor zur Verfügung gestellt. Dieser Prozessor, an den die 2D-Kamera(s) und/oder 3D-Sensoren angeschlossen ist/sind, ist beispielsweise als Mehrzweckcomputer 130 mit Interface und Bildschirm gezeigt, der einen software- und/oder hardwarebasierten Kalibrierungsvorgang (150) implementiert, und der auch die Laufzeitbildverarbeitungsprozesse (Überprüfung, Ausrichtung, Manipulation etc.) (152) implementiert. Die Anordnung, der Typ und die Position des/der Bildverarbeitungsprozessor(en) sind hoch variabel. In illustrativen Ausführungsformen kann/können der/die Prozessor(en) innerhalb der einen oder mehreren 2D-Kameras und/oder 3D-Sensoren enthalten sein und entsprechende Kabel- oder kabellose Verbindungen zwischen den Mehrfachkameras und/oder den Sensoren können vorgesehen sein.
-
In Ausführungsformen, in denen mehrfache 2D-Kameras und/oder mehrfache 3D-Sensoren eingesetzt werden, legt jede Kamera 120, 122, 124 ihr eigenes, internes Koordinatensystem fest, hier dargestellt als senkrechte x-, y- und z-Achsen 140, 142, 143, wobei z die optische Kameraachse darstellt, die auf die Szene gerichtet ist, und x und y die Bildebene definieren. Der Bildverarbeitungsprozessor (130) ist geeignet, um jedes dieser individuellen Koordinatensysteme der Kameras auf ein gemeinsames 3D-Weltkoordinatensystem 148 zu kalibrieren, das durch die x-, y- und z-Achsen mit Bezug auf die Szene 128 dargestellt ist. Eine allgemeine Abhandlung der 3D-Abbildung und damit in Zusammenhang stehenden Konzepten sind als weiteres allgemein zugeordnetes Hintergrundwissen zu finden in der US Patentanmeldung, Seriennummer 12/345.130 mit dem Titel SYSTEM UND VERFAHREN ZUR DREIDIMENSIONALEN AUSRICHTUNG VON OBJEKTEN UNTER EINSATZ VON BILDVERARBEITUNG von Cyril B. Marrion et al., deren Lehren hier als nützliche Hintergrundinformation eingebunden sind.
-
1A und 1B zeigen im Detail zwei Beispiele von Kamerasystemanordnungen, die kalibriert und anschließend (wie gezeigt) bei Überprüfungsvorgängen der Laufzeitbildverarbeitung auf Objekten gemäß dieser Erfindung angewendet werden können. Bei jeder gezeigten Anordnung wird die Ausrichtung eines Objektes im dreidimensionalen Raum durch Triangulation der erfassten Merkmale des Bildes und Bewertung der Übereinstimmung der erwarteten Merkmale und der gemessenen Merkmale erreicht.
-
Gemäß der beispielhaften Anordnung mit drei Kameras 153 von 1A sind drei Kameras 154, 155, 156 an unterschiedlichen Ausrichtungen in Bezug auf das Objekt oder das Teil 157, das das Blickfeld des Systems durchläuft, auf der Basis eines bewegten Förderbands oder eines anderen Mechanismus, der eine Abfolge von Objekten, die überprüft und/oder ausgerichtet werden sollen, ermöglicht, positioniert. Dieses System 163 kann unter Anderem eingesetzt werden, um Teile auf Qualität zu überprüfen oder um die Ausrichtung eines Robotergreifarms (nicht gezeigt) zu ermöglichen. Die Kameraanordnung 153 in diesem Beispiel ähnelt im Allgemeinen der, die bei Vision Guided Robotics(VGS)-Anwendungen eingesetzt wird. Bei solchen VGR-Anwendungen ist typischerweise das Teil 157 für alle Kameras 154, 155, 156 sichtbar. Wie weiter unten beschrieben wird, basiert das Ergebnis der Lage eines Teils auf einem Triangulationsfehler, der misst, wie die beobachteten Bilder mit dem trainierten Modell übereinstimmen. In diesem Fall, schließt das Modell eine oder mehrere Eigenschaften 158, 159, 160 ein, die für jede Kamera sichtbar sind, wie mit den gestrichelten Linien dargestellt. Die Querverweisabweichung misst, wie eng sich die Strahlen von gleichen Merkmalspunkten aus Mehrfachkameras gegenseitig schneiden.
-
Eine abweichende beispielhafte Anordnung 161 eines Kamerasystems, das vier Kameras 163, 164, 165, 166 enthält, wird in 1B gezeigt. Jede der Kameras 163, 164, 165, 166 ist auf einer diskreten Position mit Bezug auf das Teil 162 positioniert, wie gezeigt, und jede definiert eine entsprechende Bildebene 167, die mit einer einzelnen x-, y-, z-Orientierung (oder einem anderen Koordinatensystem) ausgerichtet ist. Bei dieser Anordnung muss die Ausrichtung eines Teils 162 nicht auf Kameras beruhen, die allgemeine Merkmale gleichzeitig sehen, sondern das Ergebnis einer Teillage beruht anschaulicher Weise darauf, wie die beobachteten Bilder mit den vorhergesagten Bildern eines trainierten 3D-Formmodells übereinstimmen. Eine Anzahl von alternativen Mehrkameraanordnungen und Laufzeitüberprüfungs-/Ausrichtungsvorgängen werden ausdrücklich in Betracht gezogen.
-
Mit weiterem Bezug auf 1 verwendet ein exemplarischer Kamerakalibrierungsvorgang, wie etwa (aber nicht beschränkt auf) Kalibrierungssoftware, die in Verbindung mit Bildverarbeitungssystemen erhältlich ist, die von Cognex Corporation in Natick, Massachusetts, USA, bezogen werden kann, eine flexible Technik, die typischerweise erfordert, dass die Kamera ein planares Kalibrierungsobjekt 170 mit bekannter Größe und Form beobachtet, das der Kamera/den Kameras 120, 122 und 124 in einer Fülle von unterschiedlichen Orientierungen (dargestellt durch ein Beispiel in Phantom) geboten wird. Dieser Kalibrierungsvorgang dient zur Einstellung der intrinsischen und extrinsischen Werte (typischerweise bei einer Mehrfachkameraausbildung) für jede Kamera, zur Festlegung des 3D-Weltkoordinatenraums für jede Kamera. Beim gezeigten Kalibrierungsvorgang bewegt der Techniker oder ein Roboter (Pfeile 171) das Kalibrierungsobjekt 170 – hier zur Erläuterung ein Schachbrett mit bekannter Größe und Form, das auch eine Bezugsmitte 172 einschließen kann – zwischen jeder der vielen Positionen, während die Kalibrierungsanwendung 150 am Bildverarbeitungssystem 130 arbeitet, um Bilder des Objekts 170 in jeder Position zu erfassen und zu analysieren. Der Kamerakalibrierungsvorgang kalkuliert intrinsische und extrinsische Werte unter Verwendung der erfassten Bilder des Objektes aus (bildliche gegen physikalische) Merkmalsübereinstimmungen, die sich auf die beobachteten 2D-Bildmerkmalspunkte und 3D-Merkmale beziehen, die sich auf einer ebenen Oberfläche befinden. Bei einem Beispiel können diese (bildlichen gegen physikalischen) Merkmalsübereinstimmungen automatisch bestimmt werden, beispielsweise dadurch, dass man die Bildverarbeitungssystemsoftware des Schachbrettmerkmalsextraktors bei Bildern einer Schachbrettkalibrierungsplatte laufen lässt, wobei sowohl die Software als auch die Kalibrierungsplatte von Cognex Corporation bezogen werden können.
-
Eine wohlbekannte Technik zur Kamerakalibrierung, die bei veranschaulichenden Systemen angewendet werden kann, wird bei Roger Tsai in „Eine vielseitig verwendbare Kamerakalibrierungstechnik für hochgenaue 3D-Bildverarbeitungsmesstechnik, unter Verwendung von serienmäßigen Fernsehkameras und -Linsen", IEEE JOURNAL OF ROBOTICS AND AUTOMATION, Band. RA-3, Nr. 4, August 1987, Seiten 323–344, beschrieben, deren Lehren hierin als nützliche Hintergrundinformationen einbezogen werden. Kalibrierungsvorgänge werden allgemeiner in der oben aufgenommenen US Patentanmeldung, Seriennr. 12/346.773 mit dem Titel SYSTEM UND VERFAHREN ZUR ÜBERPRÜFUNG VON KAMERAKALIBRIERUNG BEI EINEM BILDVERARBEITUNGSSYSTEM beschrieben. Zusätzlich wird auf solche Vorgänge allgemein unten im Zusammenhang mit der Abschätzung der Lage, die auf erfassten Merkmalen bei zwei einzelnen Kameras beruht, Bezug genommen.
-
Zusammengefasst beinhaltet Kamerakalibrierung ein nichtlineares Optimierungverfahren, um die Abweichungen zwischen den entdeckten 2D-Bildmerkmalspunkten (Ecke des Schachbrettmusters) und den vorhergesagten Merkmalspunkten zu minimalisieren. Dieses Kamerakalibrierungsverfahren berechnet die Kalibrierungsplattenlagen (mit Bezug auf die Kamera).
-
Nun wird auf 2 Bezug genommen, die einen schematischen Überblick 200 über den Systemkalibrierungsprozess, der Laufzeitausrichtungs- oder Überprüfungsaufgaben und der Eigendiagnose der Systemkalibrierung zeigt. Wie gezeigt, sind der Teil- oder Objekttrainingsprozess 213 Teil der Offline-Prozess 212, bei dem das Bildsystem trainiert wird, damit es ein oder mehrere unterschiedliche Objektmerkmale (z. B. eine Ecke, einen Aufdruck, ein Loch, usw.) von vorgegebener Größe, Position und/oder Form erkennt. Alternativ dazu kann das System trainiert werden, damit es die Gesamtform des Objektes oder eines Teils davon erkennt. Das Training hängt ab von den speziellen Anwendungen, die vom Bildverarbeitungssystem eingesetzt werden. Diese kann Blobanalyse, Eckenerkennung, Rotation und skaleninvariante Suche usw. einschließen. Andere Einrichtungsprozesse 214, die spezifisch für Bildverarbeitungssysteme sind, treten auch während des Offline-Prozesses 212 auf. Diese können Beleuchtungskontrolle, Koordination mit einem Robotergreifarm und eine Anzahl anderer Operationen einschließen. Insbesondere werden die intrinsischen Werte 222 und die extrinsischen Werte 224 der Kamera bei der Kalibrierung 226 abgeleitet. Diese intrinsischen und extrinsischen Werte werden (Pfeil 225) während der Systemlaufzeitoperation (Block 230) eingesetzt. Genauer gesagt, extrinsische Werte werden in einer illustrativen Kalibrierungseigendiagnose, die während der Laufzeit 230 ausgeführt wird, eingesetzt. In der illustrativen Ausführungsform speichert der Einrichtungsspeicher 220 auch „Fehler”-Statistiken 228, die Informationen in Bezug auf die Abweichungen zwischen den beobachteten Bildmerkmalen und den vorhergesagten physikalischen Merkmalen enthalten, die zur Festlegung von akzeptierten Schwellen verwendet werden, die es möglich machen, dass das System bestimmt, ob die Kalibrierung sich immer noch innerhalb der Toleranzen befindet.
-
Mit Bezug auch auf 3 schließen die Fehlerstatistiken 228 ein, sind aber nicht beschränkt auf:
- a) Genauigkeit oder Abweichung bei den verzerrten Bildkoordinaten (tatsächlich erfasste Pixel) 310. Für jede geschätzte Kalibrierungsobjekt/Plattenlage kalkuliert der Kalibrierungsprozess die 2D-Position auf der Bildebene jedes 3D-Merkmalpunkts (Ecken der Schachbrettmuster im Muster der Platte), wobei die Linsenverzerrung berücksichtigt wird. Die Genauigkeitsmessungen entsprechen der Abweichung zwischen jedem beobachteten 2D-Punkt und der damit verbundenen projizierten/verzerrten 2D-Position, und werden als Fehlerstatstiken 228 gespeichert;
- b) Genauigkeit oder Abweichung in den unverzerrten Bildkoordinaten (d. h., die z = 1 Projektionsebene in einem 3D-Koordinatensystem, bei dem z die Tiefe für jedes Pixel ist und x, y die 2D-Koordinaten für jedes Pixel innerhalb des Blickfelds sind) 320. Für jede geschätzte Kalibrierungsplattenlage berechnet der Prozess die lineare Projektion der 3D-Punkte auf der z = 1 Projektionsebene. Zusätzlich bildet der. Prozess die erfassten 2D-Bildpunkte durch die Umkehrfunktion der Linsenverzerrung ab (in anderen Worten, Punkte werden mit Hilfe der gespeicherten Linsenkorrekturfaktoren neu berechnet). Die Genauigkeitsmessungen entsprechen der Abweichung zwischen den projizierten 2D-Punkten und den entsprechenden, verzerrten 2D-Punkten und werden als Fehlerstatistiken 228 gespeichert; und
- c) Genauigkeit der 3D-Position, die aus Stereotriangulation 330 erhalten wird. Für ein Mehrkamerasystem berechnet der Prozess für jede kalkulierte Kalibrierungsplattenlage die 3D-Koordinaten jedes Merkmalspunktes, der von mehreren Kameras über Triangulation abgebildet wird und hält den rmsFitError zurück. Die Abweichungen zwischen den triangulierten und kalkulierten Positionen von Merkmalspunkten für die mehreren Kameras werden als Fehlerstatistiken 228 gespeichert.
-
Die oben beschriebenen Genauigkeitsmessungen a–c sind allen mit durchschnittlichem Wissen auf dem Gebiet der Bildverarbeitungssysteme bekannt und können mit Hilfe von Vorgängen, die allen mit durchschnittlichem Wissen bekannt sind, erzeugt werden. Typischerweise werden diese Messungen verwendet, um ein Kamerakalibrierungsverfahren mit einem anderen zu vergleichen. Gemäß eines Anschauungsbeispiels werden diese Fehlerstatistiken 228 gespeichert, so dass sie verwendet werden können, um anschließend die Genauigkeit der Kamerakalibrierung bei einer Laufzeitbildverarbeitungssystemoperation (Block 230 in 2) zu diagnostizieren. Es wird angemerkt, dass die Akzeptanzschwelle gemäß der speziellen Anforderungen an eine Bildverarbeitungssystemanwendung variabel eingestellt werden kann. Das heißt, bestimmte Anwendungen können einen höheren Grad an Genauigkeit verlangen, wobei eine niedrigere Akzeptanzschwelle nötig ist (z. B. ein kleinerer Unterschied zwischen Kalibrierung und Laufzeit-/Überprüfungsabweichungen).
-
Die Genauigkeit von Kamerakalibrierung, die oben beschrieben wird, hat direkten Einfluss auf die Leistung eines Bildverarbeitungssystems. Während für die meisten Bildverarbeitungssysteme die Kalibrierung als einmalige Systemeinrichtungsaufgabe gesehen wird, kann sich das tatsächliche Verhalten eines Bildentstehungssystems über die Zeit je nach Wärmeausdehnung des Kamerarahmens, versehentlicher Kamerabewegung usw. verschieben. Ein Weg um diese Verschiebung anzugehen ist, die Kameras regelmäßig neu zu kalibrieren. Allerdings ist Kalibrieren von Kameras eine aufwändige Aufgabe, die es erforderlich macht, mehrere Bilder eines Kalibrierungszieles mit verschiedenen Lagen zu erfassen, was zeitraubend sein kann. Weiterhin erfordert es normalerweise einen Experten, wie etwa einen Systemintegrator. Folglich wird eine Kamerakalibrierung (Block 226) typischerweise nur wenn notwendig, und von ausgebildeten Spezialisten, ausgeführt.
-
B. Laufzeitverfahren
-
Gemäß eines Anschauungsbeispiels ist der Kalibrierungseigendiagnoseprozess Teil der gesamten Laufzeitbildverarbeitungssystemoperation 230. Allgemein setzt das System in diesem Beispiel mehrere Kameras ein, um Objekte/Teile auf der Basis eines trainierten Modells zusammen mit den gespeicherten intrinsischen Werten 222, extrinsischen Werten 224 und Fehlerstatistiken 228 (über den Prozesszweig 234) auszurichten und zu überprüfen. Ausrichtungsergebnisse werden von Messungen gesammelt, die aus kalkulierten Positionen (in x-, y- und z-Weltkoordinaten oder einem anderen Weltkoordinatensystem) eines oder mehrerer Objektmerkmalen bestehen, oder der Objektlage. Diese Daten können verwendet werden, um die Ausrichtungsergebnisse gemäß Laufzeitblock 240 zu berechnen. Wie gezeigt, kann der Laufzeitprozess historische Statistiken von Ausrichtungsergebnissen ebenso wie Zwischenergebnisse (Block 250) erfassen. Diese werden einem Speicher 260 zur Verfügung gestellt, der die Staistiken von Ausrichtungsergebnissen und Zwischenergebnissen, die auf Teilmengen oder Gruppierungen (einer Vielzahl) oder dem Gesamtsystem von drei oder mehreren Kameras beruht, sammelt und organisiert. So können die Gruppierungen als eine Vielzahl, die aus mindestens zwei Kameras besteht, aber aus weniger als der ganzen Kameragruppe der mindestens drei Kameras definiert werden. Das heißt, das System erzeugt einen Satz von N-Choose-M-Gruppierungen oder Teilmengen von Kamerakombinationen. Jede Merkmalsposition oder -Lage, die gerade vom Bildverarbeitungssystem geschätzt wird, wird mit einer Ergebnisfunktion, die definiert wurde, um die Übereinstimmung des trainierten 3D-Modells mit den beobachteten Bilddaten zu messen, anschaulich ausgewertet. Lagekandidaten und zugehörige Ergebnisse können durch Auswahl jeder der N-Choose-M-Kamerakombinationen geschätzt werden. Genauer gesagt, kann der Speicher 260 die Statistik der Abweichungen zwischen den beobachteten Bildmerkmalen und den vorhergesagten physikalischen Merkmalen enthalten.
-
Beispielsweise definiert die 3-Kamera(VGR)-Einrichtung der 1A 3-Choose-2, das heißt 3 Kamerakombinationen können für Teilausrichtung (Lageabschätzung) verwendet werden. Die 4-Kameraanordnung, gezeigt in 1B, definiert 4-Choose-2 plus 4-Choose-3, das heißt, 10 Kamerakombinationen können für Teilausrichtung (Lageabschätzung) verwendet werden. Unter den 10 Kamerakombinationen können 4 Kamerakombinationen, die 2 benachbarte Kameras für Teilausrichtung einsetzen, wegen ihrer günstigen Blickwinkel sehr repräsentativ sein.
-
Beim Laufzeitprozessschritt 270 werden die gespeicherten Statistiken (Block 260) eingesetzt, um zu bestimmen, ob die Kameras innerhalb einer vorgegebenen Kalibrierungsgenauigkeit oder -Schwelle bleiben. Die Schwelle kann auf einem vorgegebenen Wert, der von der speziellen Bildverarbeitungsaufgabe abhängt oder auch nicht, beruhen. Beispielsweise kann die Schwelle für eine sehr genaue Aufgabe einen kleinen Wert haben, während eine Grobbearbeitungsaufgabe einen größeren Wert zulassen kann.
-
Der Prozessschritt 270 bestimmt, welche der einzelnen Kamera(s) genügend von der Genauigkeit abgewichen ist. Allgemein beinhalten solche Abweichungen extrinsische Parameter – der relative Stand einer Kamera in Bezug auf die anderen im System eher als die intrinsischen Werte. Allerdings wird die Speicherung intrinsischer Parameter ausdrücklich in Betracht gezogen und diese Parameter können bei jedem nachfolgenden Neukalibrierungsschritt (226) zugänglich gemacht werden. Der Entscheidungsschritt 280 bestimmt, ob eine oder mehrere Kameras genügend in ihrer Kalibrierung abgewichen sind, um eine Durchführung der Neukalibrierung zu rechtfertigen. Wenn die Schwelle nicht erreicht wurde, beobachtet und speichert das System weiter Statistiken (über den Prozesszweig 290), während der normalen Durchführung von Laufzeitteil oder Objektüberprüfung und/oder -Ausrichtung, gemäß der Schritte 240, 250, 260 und 270. Wenn allerdings eine vorgegebene Genauigkeit/Schwelle bei einer oder mehreren Kameras des Systems überschritten wird, dann verzweigt sich der Entscheidungsschritt 280 (über Abzweigung 292) in dem Kalibrierungsschritt 226. Wie unten beschrieben, kann das System Online bleiben und dem Operator anzeigen oder ihn aufmerksam machen, oder die Arbeit einstellen und das Eingreifen der Operatoren abwarten (z. B. einen Neukalibrierungsvorgang). Als Teil des Schritts 280 kann das System die extrinsischen Parameter und die Abweichungsdaten, die während des Laufzeitprozesses (230) abgeleitet wurden, liefern, so dass es zur Identifizierung der Kamera(s) verwendet werden kann, die einer Neukalibrierung bedarf/bedürfen. Zusätzlich wird in Betracht gezogen, dass automatisierte Neukalibrierungsprozesse eingesetzt werden können, um (gemäß herkömmlichen Techniken) automatisch die Kamera(s) neu zu kalibrieren, wobei die aktualisierten, extrinsischen Parameter verwendet werden.
-
Der Abgleich von Kalibrierungsmessungen gegenüber Laufzeitstatistiken gemäß Schritt 270 kann mit Hilfe verschiedener Techniken erreicht werden. Bei einer Ausführungsform werden die Genauigkeitsbeobachtung beim Laufzeitstatistikprozess und jene Messungen, die beim Kalibrierungsprozess mit Hilfe des Statistical Hypothesis Testing erhalten wurden, verglichen. Das heisst, bei einer gegebenen Verteilung von Kalibrierungsmessungen und einer Verteilung von Laufzeitsmessungen, der statistische Zusammenhang der zwei Verteilungen. Die Nullhypothese kann eingestellt werden, da die beiden Vorgänge die gleiche Genauigkeit mit bestimmter statistischer Bedeutung haben. Wenn eine Entscheidung auf der Basis von zwei Beobachtungssätzen einmal gefallen ist, kann der Endverbraucher festlegen, ob die Kameras neu kalibriert werden müssen. Eine andere Ausführungsform stellt einen Prozess zur Verfügung, der die maximale Abweichung mit einer Schwelle vergleicht, die als Funktion der Abweichungen, die bei der Kamerakalibrierung beobachtet wurden, eingestellt ist.
-
Nun wird auf 4 Bezug genommen, die einen verallgemeinerten Prozess 400 zur Laufzeiteigendiagnose der Kamerakalibrierung in einer Anordnung von drei oder mehr Kameras gemäß eines Anschauungsbeispiels beschreibt. Beispielsweise kann dieser Prozess bei einer Diagnoseanwendung 180 (1), die auf einem Computer oder dem Prozessor läuft, instanziiert werden oder er kann direkt für die Hardware einer oder mehrerer Kameras innerhalb des Systems vorgesehen sein. Der Kalibrierungsprozess wird anfangs offline durchgeführt, gemäß Schritt 410 und wie oben beschrieben. Während des Prozesses werden extrinsische Parameter und andere Parameter und Statistiken, wie etwa Abweichungen zwischen Messungen von Merkmalspositionen oder Lage mit Bezug auf verschiedene Kameragruppierungen oder Teilmengen (z. B. Kamerapaare) erzeugt und gespeichert. Wie angemerkt, ist eine „Kamera”, wie sie hierin definiert ist, jede Vorrichtung, die ein diskretes Bild der Szene erfasst. Ein Sensor ist eine Form einer Kamera, die eine oder mehrere Abbildungsvorrichtungen (Kameras ebenso wie andere Entfernungsmessungsvorrichtungen für 3D-Abbildung) einschließen kann.
-
Der Prozess 400 tritt dann in ein Laufzeitstadium (gestrichelte Linie 420) ein, bei dem das Objektmerkmal oder das gesamte Objekt von jeder Kamera im System gefunden wird – mindestens drei Kameras sind als Blöcke 430, 432, 434 dargestellt, und gegebenenfalls andere Kameras, (Block 436). Das aufgefundene Merkmal kann im Wesentlichen das gleiche sein (das heißt, jede Kamera findet im Allgemeinen das gleiche Merkmal mit ihrer eigenen Abschätzung von Position in Weltkoordinaten x, y, z oder anderen Koordinaten). Alternativ können verschiedene Kameras ein oder mehrere verschiedene Merkmale finden, die sich an bekannten Positionen im physikalischen Raum mit Bezug zueinander befinden. Das kann zweckmäßig sein, wo einige Kameras einen schlechten oder verdeckten Blick auf ein Merkmal haben, das andere Kameras gefunden haben. Alternativ kann jede Kamera eine Lage im dreidimensionalen Raum des Objekts bestimmen, der auf dem trainierten Modell beruht. Gemäß der Blocks 430, 432, 434, 436 bestimmt jede der Kameras eine „Messung” des Merkmals des Objekts. Anschaulicherweise, kann die Messung eine berechnete x-, y-, z-Lage (oder ein anderes Koordinatensystem) für ein Merkmal, eine Lage oder ein Ergebnis sein, wie erfolgreich das Merkmal oder Objekt von jeder Kamera aufgefunden wird. Die Messungen jeder Kamera können in Schritt 440 mit Bezug auf jede Kamera im System gespeichert werden. Sie können in Kameragruppierungen organisiert sein und in ein entsprechendes Format übersetzt werden.
-
Merkmalspositionen und/oder -Lage im dreidimensionalen Raum können durch einen weiten Bereich von konventionellen Bildverarbeitungstechniken, einschließlich Eckenauffindung, Blobanalyse, Rotation und Skalainvarianzsuche usw., bestimmt werden. Eine Technik zur Auffindung der Lage in 3D ist in der oben einbezogenen US Patentanmeldung, Seriennummer 12/345.130, mit dem Titel SYSTEM UND VERFAHREN ZUR DREIDIMENSIONALEN AUSRICHTUNG VON OBJEKTEN UNTER VERWENDUNG VON BILDVERARBEITUNG beschrieben.
-
Im Schritt 450 werden dann die Messungen der Merkmale, die von jeder einer Vielzahl von Kameras (Gruppierungen oder Teilmengen von Kameras vom gesamten Mehrkamerasystem, typischerweise in Kamerapaaren) aufgefunden wurden, verglichen, um ein Ergebnis oder einen Restfehler des Triangulationsresultats dazwischen abzuleiten. Dies kann auch als die Abweichung definiert werden. Diese Vergleiche werden wiederum in Bezug auf einen Schwellen- oder Genauigkeitswert analysiert. Der Genauigkeitswert kann dann als der gewünschte, vorgegebene Wert definiert werden, der vom Benutzer bereitgestellt wird oder im System vorprogrammiert ist. Solch ein einzelner Schwellenwert kann teilweise auf der erforderlichen Genauigkeit beruhen, die das Toleranzniveau für die Kameraabweichung vorgibt – das heißt, geringe Genauigkeit macht eine größere Kameraabweichung möglich, bevor neu kalibriert werden muss, während höhere Genauigkeit weniger Kameraabweichung vorgibt. Alternativ kann es sich bei der Genauigkeit um eine Systemgenauigkeit handeln, die auf der Basis einer Ansammlung von Restfehlern oder Abweichungen, die während der Kalibrierung abgeleitet werden, definiert ist.
-
Beim Entscheidungsschritt 460 bringt der Vergleich der Messungen aus jeder Kameragruppierung oder Teilmenge beim Schritt 450, der das Überschreiten der Schwelle oder der Genauigkeit zum Ergebnis hat, das System dazu, dass es ein Signal zur Neukalibrierung ausgibt, oder eine andere entsprechende Maßnahme (Schritt 470) einleitet. Die ergriffene Maßnahme kann von einer Anzahl von Faktoren und programmierten Anweisungen abhängen. Wenn zum Beispiel die. Schwelle nicht deutlich überschritten wird, kann das System eine Warnung zur Neukalibrierung aussenden, aber weiterarbeiten. Alternativ kann das Signal bewirken, dass das System gestoppt wird und ein Alarm ertönt. In einer weiteren Ausführungsform kann das System wahlweise die gespeicherten Messungen einsetzen, die über eine Anzahl von Objektüberprüfungszyklen als einigermaßen genauer Indikator des aktuellen Systemstatus dienen, um neue extrinsische Parameter (Schritt 480) für die eine oder mehreren Kamera(s), die nicht mehr kalibriert sind, abzuleiten. Diese neuen extrinsischen Parameter können an die entsprechenden Kamera(s) zurückgegeben (über den Prozesszweig 482), und zur Durchführung einer Neukalibrierung verwendet werden, entweder vom Personal oder in einem automatisierten Vorgang (z. B. Ersetzen der gegenwärtigen extrinsischen Parameter der Kamera durch neue extrinsische Parameter, die die entdeckte Abweichung ausmachen). Die Neukalibrierung kann offline durchgeführt werden oder, wenn entsprechende Anwendungen vorhanden sind, spontan mit der Neukalibrierungskamera oder mindestens anderen Nicht-Neukalibrierungskameras im System, wobei man online bleibt, um Überprüfungsaufgaben weiterlaufen zu lassen. Bei jeder Neukalibrierung wird in Betracht gezogen, dass intrinsische Werte auch mit Hilfe von entsprechenden Kalibrierungsobjekten und/oder anderen Vorgängen aktualisiert werden können.
-
Wo Entscheidungsschritt 460 bestimmt, dass die Messungen verglichen für jede der Kameragruppierungen innerhalb der erlaubten Genauigkeit bleiben, geht der Laufzeitvorgang weiter (über den Prozesszweig 484), und häuft weitere Messungen an. Es muss angemerkt werden, dass jeder Vergleich mit Bezug auf System- oder gewünschte Genauigkeit, die durchschnittlichen (historischen) Messungen über viele Prüfungszyklen berücksichtigen kann, so dass eine ziemlich kleine Anzahl von anormalen Messungen kein vorzeitiges Neukalibrierungssignal auslöst
-
Es wird angemerkt, dass der akzeptable Fehler für eine Kamera wegen Verschiebung auf einer Fehlerverteilung beruhen kann. Das System kann beispielsweise so angepasst sein, dass es einen RMS-Fehler der Position mit Bezug auf die Fehlerhistorie erneut überprüft.
-
Im Allgemeinen schließt das System bei drei oder mehr Kameras innewohnende Redundanz bei der Messung der Objekte ein. Diese Redundanz macht Abweichungen bei Messungen zwischen Teilmengengruppierungen der gesamten Gruppe von Kameras möglich, um zumindest bei einer Kamera anzuzeigen, dass sie ausserhalb der Kalibrierung liegt.
-
C. Eine anschauliche Technik zur Bestimmung und zum Vergleich von Positions- und Lageschätzungen
-
Gemäß des Vergleichsschritts 450 der 4 kann das System eine Anzahl von Techniken einsetzen, um die 3D-Merkmalsposition oder -Lage eines Objekts zu bestimmen und Fehler oder Abweichungen auf der Basis der Kalkulation abzuleiten. Im Folgenden wird eine Technik zur Bestimmung und zum Vergleich erläutert.
-
1. Abschätzung der 3D-Position eines Merkmalspunktes aus 2D-Bildpunkten bei mehreren Kameras
-
Nach der Kamerakalibrierung kann ein 3D-Punkt im physikalischen Raum auf einen 2D-Punkt im Bildraum abgebildet werden; ein 2D-Punkt im Bildraum kann auf einem 3D-Strahl im physikalischen Raum abgebildet werden. Die folgende Beschreibung von Abbildung wird als Hintergrund im Buch Geometrie der Mehrfachansicht, zweite Ausgabe von Richard I. Hartley und Andrew Zissermann, Cambridge University Press, 2004, weiter erörtert. Um die vorliegende Beschreibung zu vereinfachen, wird nun angenommen, dass die radiale Verzerrung vernachlässigt werden kann. So wird die Abbildung aus einem Punkt im 3D-Weltkoordinatensystem 510 zu Prozessorbildkoordinatensystem 520 durch die Kamerakalibrierungsmatrix M bestimmt. Für ein System mit n Kameras, können diese Matrizen mit Mi, 1 ≤ i ≤ n bezeichnet werden. Mit Bezug auf 6 wird ein Punkt P in der Welt als pi gemäß der Gleichung pi = MiP abgebildet. In ähnlicher Weise kann, wenn das Bild eines Punktes (Beispielspunkte p1 und p2, wie gezeigt) in zwei oder mehr Kameras (beispielsweise KAMERA1 und KAMERA2, wie gezeigt) gegeben ist, dessen Stellung im Weltkoordinatensystem mit Triangulation berechnet werden. Für einen Punkt pi (p1, p2) in der entsprechenden Kamera i (KAMERA1, KAMERA2) projiziert das Bild als Strahl Ri (R1 und R2). Die Gleichung des Strahls im Weltkoordinatensystem wird angegeben durch Pi(λ) = Mi +pi + λCi, wobei Ci (C1 und C2) das Zentrum der Kamera im Weltkoordinatensystem ist. Ci und Mi + werden aus den Kamerakalibrierungsparametern erhalten. Der Punkt im Weltkoordinatensystem kann durch das Auffinden des Kreuzungspunktes zwischen den Strahlen aus den mehreren Kameras erhalten werden.
-
In der Praxis, wenn es Rauschen gibt, ist es nicht sicher, ob sich die zwei Strahlen (R1 und R2) schneiden. Es gibt verschiedene Techniken, um in solchen Situationen zu triangulieren. Das Anschauungsbeispiel setzt eine Technik ein, die zuerst einen Punkt im Weltkoordinatensystem auffindet, der die kleinste Summe des Abstands zwischen dem Punkt und allen Strahlen aufweist. Diese Schätzung wird auf der Basis des Abstands des Punktes von den Mittelpunkten der Kamera und des Winkels der Strahlen zur optischen Achse verfeinert. Andere Techniken für Triangulation können auch zusätzlich zu oder anstatt dieser Technik eingesetzt werden.
-
So wird, unter weiterer Bezugnahme auf 6, der Wert für Punkt P mit Hilfe von Triangulation, wie hier beschrieben, abgeleitet, und die Position P wird durch das Auffinden der Werte von λ und β in den Gleichungen Pi(λ) = Mi +pi + λCi und P2(β) = M2 +p2 + βC2 berechnet.
-
2. Abschätzung der 3D-Lage eines Objekts aus 2D–3D-Entsprechungen
-
Eine Lage eines Objekts ist die strikte 3D-Transformation, die notwendig ist, um ein Objektmodell aus seinem inhärenten Koordinatensystem in Übereinstimmung mit den sensorischen Daten abzubilden. Die Lage eines starren Körpers zu kalkulieren bedeutet, die Bewegung des starren Körpers im 3D-Raum aus den 2D-Bildern zu bestimmen. Wenn das 3D-Modell bekannt ist, baut der Kalkulationsprozess auf Entsprechungen zwischen einigen 2D-Merkmalen in den Bildern und ihren Gegenstücken auf dem 3D-Modell auf.
-
Lösungen für verschiedene Lagekalkulationsprobleme lehrt Haralick, R. M. in Lagekalkulation aus sich entsprechenden Punktdaten, IEEE Transactions an Systems, Man and Cybernetics, Band 19, Ausgabe 6, Nov./Dez. 1989, Seiten 1426–1446.
-
Zur weitern Erläuterung und wie in der Tsai-Veröffentlichung wiedergegeben, erläutert 5 die grundlegende Geometrie des Kameramodells. (xw, yw, zw) die die 3D-Koordinaten des Objektpunts P im 3D-Weltkoordinatensystem festlegt. (x, y, z) legen die 3D-Koordinaten 510 des Objektpunktes P im 3D-Kamerakoordinatensystem 520 fest, das am Punkt 0, dem optischen Zentrum, zentriert ist, wobei die z-Achse gleich der optischen Achse (siehe auch 1) ist. (x, y) ist das Bildkoordinatensystem mit Zentrum bei 0i (Kreuzung der optischen Achse z und der vorderen Bildebene 530) und parallel zu x- und y-Achsen. f ist der Abstand zwischen der vorderen Bildebene 530 und dem optischen Zentrum 0. (xu, yu) ist die Bildkoordinate von (X, Y, Z), wenn ein perfektes Pinhole-Kameramodell verwendet wird. (xd, yd) ist die tatsächliche Bildkoordinate, die sich von (xu, yu) wegen der Linsenverzerrung unterscheidet. Da allerdings die Kamera nun kalibriert ist, kann die Linsenverzerrung vor dem Mapping korrigiert werden.
-
Das Mapping aus den 3D-Weltkoordinaten zum 2D-Kamerakoordinatensystem wird anschaulich als Vierschritttransformation vorgesehen, die gemäß der folgenden Schritte abläuft:
- 1. Führen eine Transformation des starren Körpers aus dem Objekt-3D-Weltkoordinatensystem (xw, yw, zw) 510 zum Kamera-3D-Koordinatensystem (x, y, z) durch, wobei R eine 3×3-Rotationsmatrix und T der 3×1-Translationsvektor ist. Die Parameter, die zu kalibrieren sind, sind R und T.
- 2. Führen eine Transformation aus 3D-Kamerakoordinaten (X, Y, Z) zu idealen (unverzerrten) Bildkoordinaten (xu, yu) mit Hilfe der perspektivischen Projektion mit Pinholekamerageometrie durch.
- 3. Berechnen radiale Linsenverzerrung als xd + Dx = xu yd + Dy = yx wobei (xd, yd) die verzerrte oder wahre Bildkoordinate auf der Bildebene 530 ist. Es steht eine Anzahl von Modellen zur Spezifizierung der radialen Linsenverzerrung zur Verfügung. Für eines der Modelle, Dx = xd(κ1r2 + κ2r4 + ...) Dy = yd(κ1r2 + κ2r4 + ...) Über die Art des Modells, das benutzt werden soll, kann auf Grund des Linsentyps, der bei der Abbildung verwendet wird, entschieden werden.
- 4. Führen eine Transformation der wahren Bildkoordinate (xd, yd) zur Prozessobildkoordinaten-(xf, yf)-durch. xf = axdx –1xd + Cx yf = dy –1yd + Cy
Wobei - (xf, yf)
- Reihen- und Spaltennummern der Bildpixel beim Prozessorbildrahmenspeicher sind
- (cx, cy)
- Computerbildkoordinaten für den Ursprung in der Bildebene sind
- dx
- Der Abstand Mitte zu Mitte zwischen benachbarten Sensorelementen in x(Abtastlinie)-Richtung ist
- dy
- Der Abstand Mitte zu Mitte zwischen benachbarten CCD-Sensor in der y-Richtung ist
- Ncx
- Die Anzahl der Sensorelemente in der x-Richtung ist
- Nfx
- Die Anzahl der Pixel in einer Reihe, wie vom Prozessor getestet, ist
ax2 entspricht einer Anzahl von Faktoren, wie etwa leichten Hardwaretimingfehlanpassung zwischen Bilderfassungs/Prozessorhardware und der Kameraabtasthardware, oder der Ungenauigkeit des Timings der Abtastung selbst. Wenn sx = axd'x –1 eingesetzt wird, und dy auf eins gesetzt wird, müssen wir sx finden. Wenn dy auf eins gesetzt wird, ist die berechnete Brennweite f ein Produkt der tatsächlichen Brennweite und dem Skalierungsfaktor in y.
-
Das Problem der Lageabschätzung ist das gleiche wie extrinsische Kamerakalibrierung, für die die intrinsischen Werte der Kamera bereits bekannt sind. Um das Problem zu vereinfachen, werden die 2D-Bildpunkte, die in Rohbildern gefunden wurden, normalisiert, um in der Bezugsbildebene als Schritt 2 in der obigen Beschreibung dargestellt werden zu können. Daher kann das Problem der Lageabschätzung wie folgt formuliert werden:
Mit einem gegebenen Satz von Weltpunkten (Xw, Yw, Zw), i = 1, 2, ..., n, und einem entsprechenden Satz von normalisierten Bildpunkten (x
u, y
u)
i, besteht das Problem der Lagekalkulation darin, eine Rotationsmatrix R und einen Translationsvektor T zu finden, die den geometrischen Rückprojektionsfehler minimalisieren:
-
Da jeder Bildpunkt einen Projektionsstrahl definiert, der als 3D-Linie dargestellt werden kann, ist alternativ das Problem der Lageabschätzung gleichwertig zur Auffindung einer Transform derart, dass der 3D Punkt-zu-Linie-Abstand für alle Paare minimal ist, was auch als Objektraumkollinearität bekannt ist.
-
Die Minimierung der Fehlermessung kann durch eine nicht lineare Optimierungsmethode geschehen, wie etwa Levenberg-Marquardt. Bei einem Mehrkamera-(oder Mehrblick)Bildsystem, können, nachdem alle Kameras auf das gleiche Weltkoordinatensystem kalibriert sind, die Entsprechungen für jede Kamera zu einem linearen System hinzugefügt werden und gleichzeitig gelöst werden. Der Einsatz von mehreren Kameras hat den Vorteil der besseren Auflösung von Mehrdeutigkeiten und verbesserter Genauigkeit.
-
3. Abschätzung der 3D-Lage eines Objektes durch direkte Anpassung von vielflächigen Modellen an Graupegelgradienten
-
Abschnitt 2 oben beschreibt das Problem der Lagekalkulation als nicht lineares Optimierungsproblem, bei dem die starre Transformation (Rotation und Translation) des Objekts durch Minimierung einer Fehlermessung auf der Basis von Fehlerrückprojektion entsprechender 2D- und 3D-Punkte gefunden wird.
-
Alternativ dazu kann, wenn die 2D-3D-Entsprechung schwierig hergestellt werden kann, die 3D-Lage eines Objekts durch die direkte Anpassung des Modells bei verschiedenen, hypothetischen Lagen an Graupegelgradientbildern geschätzt werden und die Lage mit den höchsten Abgleichergebnissen wird gemeldet.
-
Beispielsweise kann der Abgleichungsprozess mit den folgenden Schritten durchgeführt werden:
- a) Richte einen Suchraum für Rx, Ry, Rz und tx, ty, tz ein. Jeder Probepunkt im sechsdimensionalen Raum Rx, Ry, Rz, tx, ty, tz definiert eine hypothetische Lag.
- b) Für jeden Probepunkt (hypothetische Lage) Projiziere das 3D-Modell des Objekts auf den Bildraum, der auf Kamerakalibrierung beruht. Berechne das Abgleichungsergebnis zwischen den projizierten 2D-Punkten und Graupegelgradientbildern.
- c) Suche nach dem maximalen Ergebnis im sechsdimensionalen Raum Rx, Ry, Rz, tx, ty, tz. Wende typische Techniken zur Peakermittlung, wie etwa eine nicht maximale Unterdrückung an.
- d) Die Lage, die mit dem maximalen Ergebnis in Zusammenhang steht, ist die geschätzte Lage für das Objekt.
-
In Schritt b muss bemerkt werden, dass, wenn das 3D Modell auf eine Bildebene projiziert wird, die Topologie des 3D Modells durch Entfernen selbst-verdeckender Merkmale berücksichtigt werden sollte.
-
Das Folgende ist eine Technik zur Anwendung der Abschätzungen von Position und Lage, wie oben beschrieben, um zwei Messungen von diesen zu vergleichen, gemäß der Anschauungsbeispiele.
-
i. Vergleichen zweier Kalkulationen der 3D Position eines Merkmalspunktes
-
Beim Vergleich von zwei Berechnungen der 3D Position eines Merkmalspunkts kann der euklidische Abstand von zwei kalkulierten 3D-Punkten verwendet werden: Dist(P1, P2) = ((P1x – P2x)2 + (P1y – P2y)2) + (P1z – P2z)2)1/2
-
Wenn das erste aufgefundene Merkmal und das zweite aufgefundene Merkmal im Wesentlichen gleich sind, kann ein direkter Vergleich zwischen dem euklidischen Abstand der beiden aufgefundenen Positionen mit mindestens einem der Punkte gemacht werden: (i) eine Genauigkeit, die im Schritt (a) bestimmt wurde und (ii) eine gewünschte Systemgenauigkeit.
-
Kurz Bezug nehmend auf die Bildverarbeitungssystemanordnung 180 in 1C, sind die Kameras 182, 184, 186, 188 in zwei Gruppierungen (182, 184) und (186, 188) angeordnet, wobei jede eine Vielzahl von Kameras umfasst. Wie in anderen Ausführungsbeispielen hierin beschrieben, kann jede der Kameras 182, 184, 186, 188 eine Anzahl interner und externer Hardware- und Softwareprozesse für Bilderfassung und Bildsystemverarbeitung einschließen. Externe Prozessoren und zugehörige Vorrichtungen (nicht gezeigt) können auch als geeignet vorgesehen sein, die Kameras und/oder externen Vorrichtungen können geeigneter Weise durch Kabel- oder drahtlose Verbindungen verbunden sein. Alle Kameras erfassen Bilder eines Beispielsobjekts 190 innerhalb des Volumenraums. Ein beispielhaftes erstes Merkmal 192 und ein beispielhaftes zweites Merkmal 194 sind an entfernten Positionen und/oder unterschiedlichen Oberflächen/3D-Orientierungen am Objekt vorgesehen. Die Kameragruppierung/Vielzahl 182, 184 erfasst und findet das erste Merkmal, und die zweite Gruppierung/Vielzahl 186, 188 erfasst und findet das zweite Merkmal 194. Beachte, dass, wenn andere Merkmale zur Verfügung gestellt werden, die Gruppierungen variiert werden können, um jene Kameras einzusetzen, die am besten positioniert sind, um die Position und Orientierung dieses Merkmals auf dem Objekt zu erfassen. Gemäß eines Anschauungsbeispiels, kann allgemein, wenn das erste gefundene Merkmal und das zweite gefundene Merkmal sich im physikalischen Raum unterscheiden und durch eine bekannte physikalische Größe getrennt werden, wie gezeigt (das heißt eine „bekannte Eigenschaft”), ein Vergleich zwischen dem euklidischen Abstand der zwei gefundenen Positionen und der bekannten physikalischen Größe gemacht werden. Ein anderer Vergleich kann zwischen den beiden Restfehlern der jeweiligen Triangulationsergebnisse gemacht werden.
-
ii. Vergleich von zwei Abschätzungen von 3D-Lage eines Objekts
-
Eine Lage eines Objekts ist die starre 3D-Transformation, die nötig ist, um ein Objektmodell aus seinem inhärenten Koordinatensystem in Übereinstimmung mit den Sensordaten abzubilden. Lageabschätzung besteht aus einer Rotationsmatrix R und einem Translationsvektor T. Eine Anzahl von Wegen kann eingesetzt werden, um zwei Lageabschätzungen eines Objektes zu vergleichen.
-
Eine intuitive Messung ist der quadratische mittlere Abstand zwischen den beiden Modellpunktsätzen, die mit den zwei Lagen transformiert sind:
Lässt man
P = {p →i}, i = 1, 2, ..., N einen Satz Modellpunkte sein, ist der quadratische mittlere Abstand von zwei Lageabschätzungen definiert als
wobei [R
1|T
1] die erste Lageabschätzung, [R
2|T
2] eine zweite Lageabschätzung darstellt.
-
Der Modellpunktsatz kann als eine Handvoll einzigartiger Merkmalspunkte auf der Oberfläche oder im Inneren des Objektmodells definiert werden. Alternativ dazu kann er als die Eckpunkte der mosaikartigen Facetten auf der Oberfläche von festen Modellen definiert werden.
-
Eine alternative Technik des Vergleiches von zwei Lagen ist die Berechnung der Arbeitsmenge, die eingesetzt würde, um einen Roboter das Objekt von einer ersten Lage [R1|T1] zu einer zweiten Lage [R2|T2] bewegen zu lassen. Die Transformation zwischen den zwei Lagen ist immer noch eine Starrkörpertransformation [R1|T1]–1·[R2|T2]. Das Objekt kann aus der ersten Lage in eine zweite Lage mit einer kombinierten Operation aus Rotation und Translation, die als Skew-Theorie bekannt ist, bewegt werden. Um die zwei Lagen zu vergleichen, kann man die Schraubenachse und die Schraubenbewegungsparameter der Transformation [R1|T1]–1·[R2|T2] berechnen. Für jeden Punkt im Modellpunktsatz kann ein Linienintegral entlang der Helix der Operation berechnet werden. Der Versatz zwischen den beiden Lagen wird dann als Summierung aller Punkte im Modellpunktsatz berechnet. Wiederum kann der Modellpunktsatz ein Satz von eindeutigen Merkmalspunkten auf der Oberfläche des Objekts oder die Eckpunkte der mosaikartigen Facetten auf dem Objekt sein.
-
Es sollte klar sein, dass das System und Verfahren des Anschauungsbeispiels eine effektive Technik zur Identifizierung von Fehlkalibrierung einer oder mehrerer Kameras in einem System von drei oder mehr Bildverarbeitungskameras aufgrund der Variation der extrinsischen Parameter bietet. Dieses System und Verfahren stellt sicher, dass Fehlkalibrierung identifiziert wird, bevor fehlerhafte Aufgaben der Bildverarbeitung auftreten können und kann sicherstellen, dass eine Neukalibrierung automatisch erfolgen kann. Es ist anzumerken, dass sich dieses System und Verfahren sich auf eine Reihe von Überprüfungsanwendungen und Mechanismen zur Bestimmung der Position oder Lage des Objektmerkmals anwenden lässt.
-
Das oben Ausgeführte ist eine detaillierte Beschreibung von Anschauungsbeispielen der Erfindung. Verschiedene Änderungen und Zusätze können gemacht werden, ohne vom Sinn und Umfang dieser Erfindung abzuweichen. Jedes der verschiedenen, oben beschriebenen Ausführungsbeispiele kann mit anderen beschriebenen Ausführungsbeispielen kombiniert werden, um mehrfache Merkmale zu erhalten. Weiterhin, während das oben Gesagte eine Anzahl von getrennten Ausführungsbeispielen der Vorrichtung und des Verfahrens der vorliegenden Erfindung beschreibt, ist das, was hierin beschrieben ist, nur eine anschauliche Anwendung der Prinzipien der vorliegenden Erfindung. Beispielsweise kann das System mit vielen Merkmalen und Lagen eines Objektes arbeiten, um einen Vergleich mit einer gewünschten Genauigkeit oder anderen Schwellen durchzuführen. Auch sollte der Begriff „position” weit aufgefasst werden, um eine Reihe von verschiedenen Konstrukten zu definieren, die es möglich machen, dass ein erfasstes Bild eines Merkmals oder Objekts mit einem anderen Bild verglichen wird, um einen Versatz bei der Kalibrierungsgenauigkeit festzustellen. Alternative Ansätze zur Lokalisierung eines Objektes können ebenfalls eingesetzt werden. Beispielsweise kann eine Silhouettenanpassungstechnik gemäß herkömmlicher Techniken eingesetzt werden, um Messungen gemäß einer Ausführungsform abzuleiten. Darüber hinaus kann das Objekt oder Teil als permanentes Merkmal (zum Beispiel ein Referenzpunkt) innerhalb der Szene definiert werden, das zusammen mit jeder Teilerfassung erfasst wird. Dieses permanente Merkmal oder Muster wird eingesetzt, um Messungen gemäß eines Anschauungsbeispiels zu bestimmen. Darüber hinaus wird ausdrücklich in Betracht gezogen, dass jeder Prozess und Vorgang, der hier beschrieben wurde, als Hardware, Software, die aus computerlesbaren Programmanweisungen oder einer Kombination von Hardware und Software besteht, hier durchgeführt werden kann. Entsprechend ist diese Beschreibung nur als Beispiel zu verstehen und beschränkt nicht anderweitig den Umfang dieser Anmeldung.
-
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 Nicht-Patentliteratur
-
- Roger Tsai in „Eine vielseitig verwendbare Kamerakalibrierungstechnik für hochgenaue 3D-Bildverarbeitungsmesstechnik, unter Verwendung von serienmäßigen Fernsehkameras und -Linsen”, IEEE JOURNAL OF ROBOTICS AND AUTOMATION, Band. RA-3, Nr. 4, August 1987, Seiten 323–344 [0028]
- Geometrie der Mehrfachansicht, zweite Ausgabe von Richard I. Hartley und Andrew Zissermann, Cambridge University Press, 2004 [0048]
- Haralick, R. M. in Lagekalkulation aus sich entsprechenden Punktdaten, IEEE Transactions an Systems, Man and Cybernetics, Band 19, Ausgabe 6, Nov./Dez. 1989, Seiten 1426–1446 [0052]