Um eine Kamera zu kalibriern muss ein Kamera Kalibrier Muster vor die Kamera gehalten werden in unterschiedlichen Positionen und jeweils ein Bild aufgenommen werden. Mithilfe der Bilder können dann die Eigenschaften / Intrinsischen Parameter berechnet werden. Dazu zählen zum Beispiel die Brennweite und Verzerrungsparameter der Kamera. Mithilfe der Parameter können dann prinzipiell 3D Punkte aus einem Kamerabild berechnet werden, die Tiefeninformation fehlt hierfür aber natürlich.
Schritt für Schritt Anleitung
Download und Ausdruck des Musters.
-
Wichtig ist das das Pattern so groß wie möglich ausgedruckt wird
Befestigung ohne Wellen auf einer steifen Unterlage
Länge einer Zelle ausmessen. Die Größe wird später bei der Berechnung der Kalibrierung benötigt.
Kamera fest aufstellen aufstellen, sodas man davor etwas Platz hat
Kalibrierbilder erstellen
-
Das Muster aus verschiedenen Winkeln in die Kamera halten
Das Muster muss in jedem Bild vollständig zu sehen sein
Das Muster muss grob jeden Teil des Kamerabildes mehrmals erfassen
Das Muster darf muss scharf abgebildet werden - Bewegung vermeiden bei der Bildaufnahme um keinen Motionblur zu ereugen
Das Muster darf nicht über 45° gekippt werden, sodass im Bild die Reihen und Spalten eindeutig unterscheidbar sind anhand der Anordnung
Wichtig ist das die Auflösung der Bilder in der gleichen Auflösung erfolgen muss, in der man die Kameradaten letztendlich verwenden möchte
Wichtig ist möglichst Kompressionsfreie Bilder aufzunehmen um Artefakte zu unterbinden, welche Kalibrierfehler erzeugen
Praktische Hinweise für Raspberry Pi
Videoaufnahme nicht verwenden, da dort starke Komprimierung verwendet wird
Serienbildfunktion nutzen
Manuelles Triggern der Kamera
Aufnahme mittels ROS Toolchain möglich - verharren in jeder Lage für ca. 3 Sekunden
Berechnung der Kalibrierung
Tools
-
Mittels OpenCV Sample Code Tool:
-
Konfiguration der Inputbilder als XML file
Starten des Kalibriervorgangs indem man die executable in samples/cpp/tutorial_code/calib3d/camera_calibration/
mit dem XML file als parameter aufruft
Der berechnete mittlere Fehler (RMS) der Kalibrierung sollte sich im Bereich < = 1 Pixel bewegen