-
Die vorliegende Erfindung betrifft ein Verfahren zum Kalibrieren einer Kamera sowie ein Rechensystem und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Kameras wie Videokameras oder Fotokameras werden in verschiedenen Gebieten eingesetzt. Beispielsweise können an einer Robotik-Vorrichtung wie z.B. einem Industrieroboter Kameras vorgesehen sein, die der Überwachung und/oder Erkennung von Objekten oder dergleichen dienen. Außerdem können beispielsweise an Fahrzeugen Kameras vorgesehen sein, die für Fahrerassistenzsysteme verwendet werden, wozu z.B. vorausfahrenden Fahrzeuge erfasst werden müssen.
-
Solche Kameras müssen für einen ordnungsgemäßen Betrieb kalibriert werden. Eine Kalibrierung kann sowohl eine intrinsische Kalibrierung umfassen, bei der Kameraparameter wie Abbildungsverzerrungen ausgeglichen werden, als auch eine extrinsische Kalibrierung, bei der die Anbringung der Kamera auf einem Zielsystem wie dem Fahrzeug berücksichtigt wird.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Kalibrieren einer Kamera sowie eine Rechensystem und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Die vorliegende Erfindung beschäftigt sich mit dem Kalibrieren einer Kamera, und zwar unter Verwendung eines entfernt von der Kamera bereitgestellten Rechensystems wie z.B. einem Server, das eine über ein Kommunikationsnetzwerk wie z.B. ein auf der Internetprotokollfamilie, TCP/IP, basierendes Netzwerk, erreichbare Schnittstelle bereitstellt. Unter Verwendung dieses Rechensystems werden Kameraparameter zum Einstellen der Kamera ermittelt. Als Schnittstelle wird dabei bevorzugt eine Programmierschnittstelle (sog. API, „Application Programming Interface“) bereitgestellt, besonders zweckmäßig ist es auch, wenn ein Zugriff auf die Schnittstelle über einen Web-Service, insbesondere einen Webbrowser oder anderen Web-Client, erfolgt. Bei dem Rechensystem handelt es sich insbesondere um ein zentrales Rechensystem, mit dem zahlreiche bzw. beliebig viele Kameras zur Kalibrierung kommunizieren können. Insbesondere werden also unter Verwendung des entfernt von der Kamera bereitgestellten Rechensystems Kameraparameter zum Einstellen mehrerer Kameras ermittelt.
-
Zur Kalibrierung werden eines oder mehrere, mittels der Kamera aufgenommene Bilder eines Kalibriermusters über die Schnittstelle von dem Rechensystem empfangen. Dieses Bild bzw. diese Bilder können z.B. von einem Benutzer mit der Kamera aufgenommen und dann an die Schnittstelle übermittelt werden, z.B. indem sie über den Web-Browser hochgeladen werden. Mittels des Rechensystems erfolgt dann anhand des einen bzw. der mehreren Bilder und basierend auf dem Kalibriermuster automatisiert eine Kalibrierung der Kamera, bei der die Kameraparameter ermittelt werden - hierunter ist insbesondere auch eine möglichst oder zumindest hinreichend genaue Schätzung zu verstehen -, die über die Schnittstelle zur Verfügung gestellt werden. Mit diesen Kameraparametern kann der Benutzer dann z.B. die Kamera einstellen. Denkbar ist aber auch eine automatisierte Einstellung der Kamera mittels dieser Kameraparameter, d.h. ein automatisches Übertragen in die Kamera.
-
Durch eine solche zentrale Kalibrierung kann eine besonders effiziente und schnelle Einstellung von Kameras vorgenommen werden. Zudem kann die Kalibrierung als ein Online-Dienst bzw. Online-Service für eine Vielzahl von Kamera bereitgestellt werden, insbesondere auch für verschiedene Arten von Kameras. Über eine generische http-Schnittstelle kann dieser Online-Service z.B. auch mit beliebiger Software eines Benutzers kommunizieren, was eine einfache Einbindung in bisherige Routinen ermöglicht. Zudem können z.B. aufgrund der zentralen Berechnungen rechenintensivere Abläufe in kürzerer Zeit erfolgen.
-
Das für die Aufnahme der Bilder zu verwendende Kalibriermuster kann bevorzugt, auf eine Anfrage über die Schnittstelle hin, mittels des Rechensystems ermittelt und über die Schnittstelle bereitgestellt werden. Damit muss ein Benutzer dieses nicht selbst bereitstellen, vielmehr kann z.B. ein individuell für die Kamera benötigtes Kalibriermuster bereitgestellt werden.
-
Ein definiertes Kalibriermuster wird in der Regel für sämtliche Kalibriervorgänge benötigt. Das Kalibriermuster besteht z.B. abwechselnd aus schwarzen und wei-ßen Quadraten, vergleichbar mit einem Schachbrett. Eine Größe sowie die Anzahl der Quadrate, sowohl in vertikaler als auch in horizontaler Richtung, kann variabel als Parameter an das zentrale Rechensystem übermittelt werden, welches daraus das entsprechende Kalibriermuster z.B. als Vektorgrafik erstellt. Die Größe des Kalibriermusters kann z.B. durch den Benutzer vorgegeben werden. Sie ist in der Regel vom Kalibrierabstand abhängig, d.h. wie nahe der Benutzer an die Kamera herankommt, was vor allem beim gleichzeitigen Kalibrieren mehrerer Kameras stark variieren kann. Die Grafik kann zusätzlich mit einer Kennung (z.B. eindeutige Nummer) und mit sämtlichen Parametern in einer Datenbank gespeichert werden. Kennungen (IDs) werden z.B. benötigt, um die Kalibriermuster später im Bild richtig identifizieren und zuordnen zu können. In der Datenbank kann dann hinterlegt werden, welches Kalibriermuster wie groß ist. Diese Information kann für den Kalibriervorgang verwendet werden. Das Kalibriermuster wird dann ausgedruckt. Dies kann z.B. mittels Standardsoftware erfolgen. Bei Vektorgrafiken wie z.B. dem Format „.svg‟ kann die Größe in Metern angeben werden. Beim Drucken wird das Maß dann korrekt umgesetzt. Die Genauigkeit hängt dann vom jeweiligen Drucker ab. Insbesondere wird auch die Kennung mitgedruckt, z.B. in Form eines QR-Codes oder eines anderen maschinell lesbaren Codes. Das ausgedruckte Bild wird dann mit der Kamera aufgenommen.
-
Wie eingangs schon erwähnt, gibt es sowohl eine intrinsische als auch eine extrinsische Kalibrierung, die beide im Rahmen der vorliegenden Erfindung möglich sind. Intrinsische Kameraparameter werden bevorzugt ermittelt, indem mehrere, mittels der Kamera aus verschiedenen Perspektiven aufgenommene Bilder des Kalibriermusters über die Schnittstelle von dem Rechensystem empfangen werden. Die Kameraparameter, dann also die intrinsischen Kameraparameter, können auf dem Rechensystem gespeichert und über die Schnittstelle bereitgestellt werden. Zweckmäßig sind z.B. mindestens zehn Bilder. Denkbar ist z.B. auch, dass von dem Rechensystem über die Schnittstelle Informationen über die aufzunehmenden Bilder, z.B. mit ungefährer Angabe der Perspektiven, bereitgestellt werden.
-
Die extrinsische Kalibrierung wird, wie schon erwähnt, benötigt, um die (exakte) Position und/oder Orientierung der Kamera in Bezug auf ein Zielsystem, an oder auf dem die Kamera angeordnet ist (z.B. eine Robotik-Vorrichtung oder ein Fahrzeug) bzw. dessen Koordinatensystem, das von dem Koordinatensystem der Kamera abweicht, zu bestimmen. Das Ergebnis einer extrinsischen Kalibrierung sind die Rotation sowie die Translation der Kamera in Bezug auf dieses andere Koordinatensystem, also die Orientierung und/oder Position relativ zum Zielsystem. Als Darstellungsform können z.B. eine Rotationsmatrix, Quaternionen oder Eulerwinkel gewählt werden.
-
Im Rahmen der vorliegenden Erfindung kommen dabei insbesondere zwei Varianten der extrinsischen Kalibrierung in Betracht. Die erste Variante beruht auf der sog. „Hand-Eye“-Kalibrierung. Hierbei werden extrinsische Kameraparameter ermittelt, indem mehrere, mittels der Kamera mit verschiedenen Posen (unter dem Begriff Pose sind Position und Orientierung zu verstehen) des Zielsystems aufgenommene Bilder des an einer festen Position gehaltenen Kalibriermusters, zusammen mit Informationen zu den Posen, über die Schnittstelle von dem Rechensystem empfangen werden, wobei mittels des Rechensystems anhand der mehreren Bilder, basierend auf dem Kalibriermuster und basierend auf den Informationen zu den Posen automatisiert die Kalibrierung der Kamera erfolgt, bei der die Kameraparameter ermittelt werden. Dies erfolgt insbesondere, indem zunächst für jedes der mehreren Bilder eine Pose der Kamera ermittelt wird, wobei basierend auf den Posen der Kamera die Kameraparameter ermittelt werden.
-
Zweckmäßigerweise werden mindestens drei Bilder mit verschiedenen Posen des Zielsystems (Referenzkoordinatensystem) und des Koordinatensystems der Kamera (diese werden bei fester Anbringung der Kamera zugleich verändert) verwendet, um die Beziehung zwischen Kamerakoordinatensystem und Referenzkoordinatensystem herzustellen. Bei allen Posen wird ein Bild mit der Kamera aufgenommen, auf dem ein Kalibriermuster zu sehen ist, dessen Position in der Welt sich während der Aufnahmen nicht ändert. Dieser Schritt erfolgt z.B. dadurch, dass der Anwender sich während der Aufnahme die Bilder der Kamera in einer Vorschau in Echtzeit ansieht. Das genaue Vorgehen kann aber je nach Anwendung abweichen. Eine entsprechende Handlungsanweisung kann dem Nutzer z.B. in Form einer Anleitung bereitgestellt werden. Es ist aber auch durchaus denkbar, dass der Webservice bereits Feedback während der Aufnahmen gibt oder die Vorschau des Bildes über die entsprechende Clientsoftware dargestellt wird.
-
Zum Durchführen dieser „Hand-Eye“-Kalibrierung (Hand-Auge-Kalibrierung) können die Bilder mit den zugehörigen Posen des Referenzsystems z.B. über den Webbrowser hochgeladen werden. Die Pose des Referenzsystems beinhaltet die Translation und Rotation des Referenzsystems in der Welt. Mittels einer Kalibriersoftware kann in jedem hochgeladenen Bild die Pose der Kamera relativ zum Kalibriermuster ermittelt werden. Mittels geeigneter Algorithmen (sog. „Hand-Eye-Calibratons“ sind an sich bekannt) kann daraus dann die Beziehung der Kamera zum Referenzsystem berechnet werden. Das Ergebnis kann dann z.B. auf dem Rechensystem gespeichert und über die Schnittstelle zurückgesendet werden.
-
Die andere Variante betrifft eine sog. direkte extrinsische Kalibrierung. Eine Voraussetzung für die direkte extrinsische Kalibrierung ist eine Ermittlung von Translation und Rotation zwischen Kalibriermuster und Zielsystem bzw. einer Pose des Zielsystems relativ zum Kalibriermuster. In dieser bekannten Pose sollte sich das Kalibriermuster vollständig im Blickfeld der Kamera befinden. Anschließend kann ein Bild mit der Kamera aufgenommen werden.
-
Bei dieser Variante wird also genau ein, mittels der Kamera aufgenommenes Bild des an einer festen Position gehaltenen Kalibriermusters zusammen mit Informationen zu der Pose des Zielsystems relativ zu dem Kalibriermuster über die Schnittstelle von dem Rechensystem empfangen. Mittels des Rechensystems erfolgt anhand des Bildes, basierend auf dem Kalibriermuster und basierend auf den Informationen zu der Pose automatisiert die Kalibrierung der Kamera, bei der die Kameraparameter ermittelt werden. Zweckmäßigerweise erfolgt dies, indem zunächst eine Pose der Kamera ermittelt wird, und wobei basierend auf der Pose der Kamera die Kameraparameter ermittelt werden. Eine entsprechende Handlungsanweisung kann dem Nutzer z.B. in Form einer Anleitung bereitgestellt werden, z.B. innerhalb einer Clientsoftware.
-
Mittels geeigneter (bekannter) Bildverarbeitungsalgorithmen können das Kalibriermuster im Bild detektiert und die Pose von Kamera zu Kalibriermuster ermittelt werden. Über die Beziehung Kalibriermuster zu Zielsystem und Kalibriermuster zu Kamera kann daraufhin die extrinsische Kalibrierung von Kamera zu Zielsystem berechnet werden. Das Ergebnis kann auch bei dieser Variante in einer Datenbank gespeichert werden.
-
Im Rahmen des vorgeschlagenen Verfahrens können nicht nur eine intrinsische oder eine extrinsische Kalibrierung vorgenommen werden, sondern auch die intrinsische und eine der beiden Varianten der extrinsischen Kalibrierung zusammen oder hintereinander, wie später im Rahmen der Figurenbeschreibung auch nochmals erwähnt.
-
Ein bevorzugtes Anwendungsgebiet des vorgeschlagenen Verfahrens ist z.B. eine Robotik-Vorrichtung wie z.B. ein Industrieroboter, an dem die Kamera vorgesehen ist, und dort beispielsweise der Überwachung und/oder Erkennung von Objekten oder dergleichen dient. Ein anderes bevorzugtes Anwendungsgebiet ist z.B. bei einem Fahrzeug, in oder an dem die Kamers vorgesehen ist, und dort z.B. für ein Fahrerassistenzsystem verwendet wird, wozu z.B. vorausfahrende Fahrzeuge erfasst werden müssen. Während in diesen beiden Fällen neben der intrinsischen Kalibrierung insbesondere auch die extrinsische Kalibrierung relevant ist, ist ein bevorzugtes Anwendungsgebiet, bei dem insbesondere die intrinsische Kalibrierung relevant ist, die Herstellung bzw. Produktion von Kameras.
-
Ein erfindungsgemäßes Rechensystem, z.B. ein Server, ist, insbesondere programmtechnisch, dazu eingerichtet, alle von dem Rechensystem durchgeführten Verfahrensschritte eines erfindungsgemäßen Verfahrens durchzuführen.
-
Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Computerprogramms oder Computerprogrammprodukts mit Programmcode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Figurenliste
-
- 1 zeigt schematisch eine Anordnung, mit der ein erfindungsgemäßes Verfahren durchführbar ist.
- 2 bis 5 zeigen schematisch Abläufe erfindungsgemäßer Verfahren in verschiedenen bevorzugten Ausführungsformen.
-
Ausführungsform(en) der Erfindung
-
In 1 ist schematisch eine Anordnung dargestellt, mit der ein erfindungsgemäßes Verfahren durchführbar ist. Die Anordnung umfasst ein Rechensystem 100 wie z.B. einen Server, der zur Durchführung eines erfindungsgemäßen Verfahrens in bevorzugter Ausführungsform eingerichtet sein kann. Der Server 100 ist an ein Kommunikationsnetzwerk 110 wie z.B. das Internet bzw. ein auf der Internetprotokollfamilie, TCP/IP, basierendes Netzwerk angebunden, an dem weiterhin - und entfernt von dem Server 100 - ein lokales Rechensystem wie z.B. ein PC angebunden ist, mit dem ein Zugriff auf das Kommunikationsnetzwerk 110 z. B. über einen Webbrowser möglich ist. Bei dem Rechensystem handelt es sich insbesondere um ein zentrales Rechensystem, mit dem zahlreiche bzw. beliebig viele Kameras zur Kalibrierung kommunizieren können.
-
Weiterhin ist eine Kamera 145 gezeigt, die auf einem Zielsystem 140 wie z.B. einem Industrieroboter oder einer sonstigen Robotik-Vorrichtung angeordnet oder montiert ist. Im Sichtfeld der Kamera ist ein Kalibriermuster 150 zu sehen. Außerdem ist ein Benutzer 130 gezeigt. Mit P und O sind eine Position und eine Orientierung, also translatorische und rotatorische Koordinaten veranschaulicht, entlang welcher sich die Kamera (im gezeigten Beispiel durch Bewegung des Zielsystems) bewegen kann.
-
Mit der Kamera 145 aufgenommene Bilder 155 können mittels des PCs 120 bzw. einen darauf ausgeführten Webbrowser über das Kommunikationsnetzwerk 110 an den Server 100 übermittelt werden, dieser wiederum kann basierend darauf eine Kalibrierung durchführen und Kameraparameter 160 bereitstellen bzw. über das Kommunikationsnetzwerk 110 an den PC 120 übermitteln.
-
In den 2 bis 5 sind schematisch Abläufe erfindungsgemäßer Verfahren in verschiedenen bevorzugten Ausführungsformen dargestellt. In 2 ist zunächst dargestellt, wie ein Kalibriermuster erhalten werden kann. Hierzu kann der Benutzer 130 über einen Webbrowser oder anderen Webclient 108 eine Anfrage 200 zum Erstellen eines Kalibriermusters bestimmter Art (z.B. mit Anzahl und Größe von Quadraten) stellen, die über eine Schnittstelle 107 wie z.B. eine (Web-)API bzw. Programmierschnittstelle an einen Kalibriermustergenerator 102 geleitet wird, der Teil des in 1 gezeigten Rechensystem sein bzw. dort ausgeführt werden kann.
-
Dort wird dann in Schritt 202 ein geeignetes Kalibriermuster z.B. als Vektorgrafik erstellt, das dem Benutzer 130, ggf. zusammen mit einer zugehörigen Kalibriermusternummer, bereitgestellt wird, zudem in Schritt 204 aber auch, ggf. ebenfalls zusammen mit der Kalibriermusternummer, in einer Datenbank 101, die Teil des in 1 gezeigten Rechensystem sein bzw. dort bereitgestellt werden kann, gespeichert werden kann.
-
Dieses Kalibriermuster kann dann zum Kalibrieren der Kamera verwendet werden, wie dies in Bezug auf die nachfolgenden Figuren beschrieben werden soll.
-
In 3 ist eine intrinsische Kalibrierung dargestellt. Zunächst werden mittels der Kamera in einem Schritt 300 mehrere Bilder, z.B. zehn oder mehr Bilder, von dem Kalibriermuster aufgenommen, und zwar mit verschiedenen Perspektiven. Hierzu kann z.B. in Schritt 302 ein Bild aufgenommen werden, dann wird in Schritt 300 das Kalibriermuster bewegt, dann können die Schritte 302 und 304 entsprechend oft wiederholt werden.
-
Die so erstellten Bilder werden in einem Schritt 306 dann zusammen mit der Kalibriermusternummer des für die Aufnahme der Bilder verwendeten Kalibriermusters z.B. über den Webbrowser 108 hochgeladen, die über die Schnittstelle 107 als Anfrage 308 zum Kalibrieren an einen Kalibriermusterdetektor 103 geleitet werden, der Teil des in 1 gezeigten Rechensystem sein bzw. dort ausgeführt werden kann. Dort wird in Schritt 310 von der Datenbank 101 die Kalibriermusternummer abgefragt, und es werden in Schritt 312 die entsprechenden Kalibriermusterparameter erhalten. In Schritt 314 werden dann Kameraparameter und ein Kalibrierungsstatus an die Schnittstelle 107 übergeben. Während die Kameraparameter und die Bilder in Schritt 316 abgespeichert werden, wird der Benutzer in Schritt 318 über den Kalibrierungsstatus informiert.
-
Wenn in Schritt 320 die Kalibrierung abgeschlossen ist und der Benutzer darüber informiert wurde, können in Schritt 322 die (hier intrinsischen) Kameraparameter zum Herunterladen angefragt werden. Hierzu wird über die Schnittstelle 107 eine Abfrage 324 an die Datenbank 101 gestellt, von der die Kameraparameter in Schritt 326 bereitgestellt werden.
-
Mit den erhaltenen Kameraparametern kann dann z.B. der Benutzer 130 die Kamera parametrieren, denkbar ist aber auch eine automatische Parametrierung der Kamera, wenn diese z.B. an den PC angebunden ist.
-
In 4 ist eine extrinsische Kalibrierung dargestellt, und zwar in der Variante „Handy-Eye“-Kalibrierung. Zunächst werden mittels der Kamera in einem Schritt 400 mehrere Bilder, z.B. drei oder mehr Bilder, von dem Kalibriermuster aufgenommen, und zwar mit verschiedenen Posen (Position und Orientierung) des Zielsystems, wie in 1 gezeigt.
-
Hierzu kann z.B. in Schritt 402 das Zielsystem (mit darauf montierter Kamera) bewegt werden, in Schritt 404 dann ein Bild des Kalibriermusters aufgenommen werden. Schritt 406 werden die zugehörigen Informationen über die Pose gespeichert, dann können - ggf. optional - in Schritt 408 zudem intrinsische Kameraparameter ermittelt werden, wie z.B. in Bezug auf 3 erläutert. Die Schritte 402, 404, 406 und ggf. 408 können dann entsprechend oft wiederholt werden, wobei bei Schritt 404 das Kalibriermuster immer an derselben Position (in der Welt) vorgesehen sein soll.
-
Die so erstellten Bilder werden in einem Schritt 410 dann zusammen mit der Kalibriermusternummer des für die Aufnahme der Bilder verwendeten Kalibriermusters sowie den Informationen zur Pose z.B. über den Webbrowser 108 hochgeladen, die die Schnittstelle 107 als Anfrage 412 zum Kalibrieren erreicht.
-
In einem Schritt 414 erfolgt dann für jedes Bild die Bestimmung der jeweiligen Pose der Kamera. Hierzu wird an den Kalibriermusterdetektor 103 eine entsprechende Anfrage 416 geleitet. Dort wird in Schritt 418 von der Datenbank 101 die Kalibriermusternummer abgefragt, und es werden in Schritt 420 die entsprechenden Kalibriermusterparameter erhalten. In Schritt 422 wird dann die Pose der Kamera für das aktuelle Bild ermittelt und an die Schnittstelle 107 übergeben.
-
Nachdem die Posen der Kamera für alle Bilder bestimmt sind und Schritt 414 abgeschlossen ist, erfolgt eine Anfrage 424 an eine Kalibrierungseinheit 104 für die „Hand-Eye“-Kalibrierung, die z.B. Teil des in 1 gezeigten Rechensystem sein bzw. dort ausgeführt werden kann, zum Ermitteln der extrinsischen Kameraparameter. Diese extrinsischen Kameraparameter und ein Kalibrierungsstatus werden in Schritt 426 dann an die Schnittstelle 107 übergeben. Während die Kameraparameter, die Bilder und ggf. die Posen in Schritt 428 abgespeichert werden, wird der Benutzer in Schritt 430 über den Kalibrierungsstatus informiert.
-
Wenn in Schritt 432 die Kalibrierung abgeschlossen ist und der Benutzer darüber informiert wurde, können in Schritt 434 die (hier extrinsischen) Kameraparameter zum Herunterladen angefragt werden. Hierzu wird über die Schnittstelle 107 eine Abfrage 436 an die Datenbank 101 gestellt, von der die Kameraparameter in Schritt 438 bereitgestellt werden.
-
Mit den erhaltenen Kameraparametern kann dann z.B. der Benutzer 130 das Zielsystem oder ggf. die Kamera parametrieren, denkbar ist aber auch eine automatische Parametrierung des Zielsystems bzw. der Kamera, wenn diese z.B. an den PC angebunden ist.
-
In 5 ist eine extrinsische Kalibrierung dargestellt, und zwar in der Variante direkte extrinsische Kalibrierung. Zunächst werden mittels der Kamera in einem Schritt 400 Informationen zu einer Pose des Zielsystems relativ zu dem Kalibriermuster bestimmt und ggf. gespeichert, in Schritt 502 wird dann ein Bild von dem Kalibriermuster aufgenommen. Danach können - ggf. optional - in Schritt 504 zudem intrinsische Kameraparameter ermittelt werden, wie z.B. in Bezug auf 3 erläutert.
-
Das so erstellte Bild wird in einem Schritt 510 dann zusammen mit der Kalibriermusternummer des für die Aufnahme des Bildes verwendeten Kalibriermusters sowie den Informationen zur Pose z.B. über den Webbrowser 108 hochgeladen, die die Schnittstelle 107 als Anfrage 512 zum Kalibrieren erreicht.
-
Danach erfolgt die Bestimmung der Pose der Kamera. Hierzu wird an den Kalibriermusterdetektor 103 eine entsprechende Anfrage 516 geleitet. Dort wird in Schritt 518 von der Datenbank 101 die Kalibriermusternummer abgefragt, und es werden in Schritt 520 die entsprechenden Kalibriermusterparameter erhalten. In Schritt 522 wird dann die Pose der Kamera für das aktuelle Bild ermittelt und an die Schnittstelle 107 übergeben.
-
Nachdem die Pose der Kamera bestimmt ist, erfolgt eine Anfrage 524 an eine Kalibrierungseinheit 105 für die direkte extrinsische Kalibrierung, die z.B. Teil des in 1 gezeigten Rechensystem sein bzw. dort ausgeführt werden kann, zum Ermitteln der extrinsischen Kameraparameter. Diese extrinsischen Kameraparameter und ein Kalibrierungsstatus werden in Schritt 526 dann an die Schnittstelle 107 übergeben. Während die Kameraparameter, die Bilder und ggf. die Posen in Schritt 528 abgespeichert werden, wird der Benutzer in Schritt 530 über den Kalibrierungsstatus informiert.
-
Wenn in Schritt 532 die Kalibrierung abgeschlossen ist und der Benutzer darüber informiert wurde, können in Schritt 534 die (hier extrinsischen) Kameraparameter zum Herunterladen angefragt werden. Hierzu wird über die Schnittstelle 107 eine Abfrage 536 an die Datenbank 101 gestellt, von der die Kameraparameter in Schritt 538 bereitgestellt werden.
-
Mit den erhaltenen Kameraparametern kann dann z.B. der Benutzer 130 das Zielsystem oder ggf. die Kamera parametrieren, denkbar ist aber auch eine automatische Parametrierung des Zielsystems bzw. der Kamera, wenn diese z.B. an den PC angebunden ist.