Camera Calibration

In dem Tab Camera Calibration kann eine geometrische Kalibrierung von Flächenkameras mit Hilfe eines Kalibriermusters vorgenommen werden.

Camera Calibration 1:

Bei der geometrischen Kamerakalibrierung von Flächenkameras wird der Abbildungsvorgang vom Bild aus rekonstruiert. Hierzu werden Punkte im Bild benötigt deren Position in der realen Welt bekannt sind. Dazu gibt es Kalibriermuster mit definierten Punkten von denen Aufnahmen gemacht werden.

Unterstützte Kalibriermuster:

Bildaufnahme / -auswahl

Für die Bildaufnahme gibt es wie im Configuration Assistant Vorschaubild, bei dem sich oberhalb Anzeigeoptionen und unterhalb Controls zur Bildaufnahme befinden:

Camera Calibration 2:
Camera Calibration 3:

Darstellung des Vorschaubildes

Das Bild wird immer so dargestellt, wie es von der Kamera empfangen wird. Ein Bild im Bayer-Format wird also unkodiert als Grauwertbild angezeigt. An dieser Stelle wird das eingestellte Encoding noch nicht auf das Bild angewandt. Das Encoding ist nur für den Kalibrierungsprozess, aber nicht für das Vorschaubild relevant.

Oberhalb des Vorschaufensters:

Unterhalb des Vorschaufensters:

Befindet sich das Kalibriermuster passend im Sichtfeld der Kamera, kann das dazu gehörige Bild für die Kalibrierung ausgewählt werden. Hierzu befinden sich links unterhalb des Vorschaubildes die Controls und rechts daneben die Sammlung der Bilder für die Kalibrierung.

Camera Calibration 4:
Camera Calibration 5:

Bildformat

An dieser Stelle dürfen nur Mono8, RGB24 und Bayer8 Bilder verwendet werden.

Einstellungen und Berechnungen

Camera Calibration 6:

Encoding

Für Vermessungsaufgaben empfiehlt es sich, eine monochrome Kamera zu verwenden. Ist es dennoch notwendig eine Farbkamera mit Bayer-Pattern zu kalibrieren, muss das entsprechende Bayer-Pattern bei Encoding angegeben sein. Dies wird standardmäßig automatisch ausgewählt.

Algorithm

Für die Kreismustererkennung kann zwischen verschiedenen Funktionen der Kantenlokalisierung gewählt werden. Durch die Subpixel Funktion lässt sich, je nach Bildqualität, das Ergebnis verbessern. Damit benötigt der gesamte Vorgang aber auch mehr Zeit. Weitere Informationen zu der Subpixel Funktionalität finden Sie im Measurement Kapitel.

Definition des Kalibriermusters

Unter Pattern wird das verwendete Kalibriermuster ausgewählt und definiert:

  • Chessboard
    Verwendung eines Schachbrettmusters
  • Circles Sym.
    Verwendung eines symmetrischen Kreismusters
  • Circles Asym.
    Verwendung eines asymmetrischen Kreismusters
    • Start Ident
      Checkbox ob die erste Zeile des Kreismusters eingerückt ist. Im Standard ohne Haken wird eine nicht eingerückte Zeile erwartet.
  • Width
    Anzahl der Merkmalspunkte in horizontaler Richtung
  • Height
    Anzahl der Merkmalspunkte in vertikaler Richtung
  • Distance X
    Abstand im Weltkoordinatensystem der Merkmalspunkte in horizontaler Richtung
  • Distance Y
    Abstand im Weltkoordinatensystem der Merkmalspunkte in vertikaler Richtung
  • Dropdown-Menü für individuelle Kreismuster
    Auswahl eines individuellen Kreismusters (Einträge werden nur angezeigt, wenn entsprechende Dateien in dem vorgesehenen Ordner gefunden würden)
  • Color inverted
    Checkbox ob die Farbe des Bildes invertiert werden soll. Im Standard ohne Haken werden schwarze Objekte auf weißem Hintergrund erwartet.
Camera Calibration 7:

Symmetrische Muster

Bei gänzlich symmetrischen Mustern kann die Zuordnung der gefundenen zu den definierten Punkten abweichen bzw. kann der Koordinatenursprungspunkt in einem anderen Quadranten liegen. Wenn sich das Muster auf dem ausgewählten Bild in einer anderen Orientierung befindet als definiert wurde, kann das ebenfalls vorkommen.

Daher sollten sie nach abgeschlossenem Kalibiervorgang kontrollieren, ob das Koordinatensystem ihrer Vorgabe entspricht.

Camera Calibration 8:

Prüfung auf gefüllte Kreise

Bei Kreismustern wird zusätzlich überprüft, ob die Kreise in der entsprechenden Farbe gefüllt sind. Treten an dieser Stelle Abweichungen auf, wird der entsprechende Punkt nicht als Teil des Musters erkannt.

Hinweise zu den Mustern und den Einstellungen der Parameter sind bei den unterstützten Kalibriermustertypen zu finden:

Intrinsic Options

Camera Calibration 9:
  • Fix Center Point: Der Prinzipalpunkt entspricht dem Bildmittelpunkt.
  • Fix Aspect Ratio: Es werden quadratische Pixel auf dem Kamerasensor angenommen, sodass das Seitenverhältnis der Pixel ist in x- und y-Richtung gleich ist.
  • p1=0, p2=0: Es wird angenommen, dass keine tangentialen Verzeichnungen existieren und die entsprechenden Koeffizienten werden auf 0 gesetzt.
  • k3=0: nimmt den Radialverzerrungskoeffizient k3 als 0 an
  • k4=0: nimmt den Radialverzerrungskoeffizient k4 als 0 an
  • k5=0, k6=0: nimmt die Radialverzerrungskoeffizienten k5 und k6 als 0 an

Extrinsic Origin

Camera Calibration 10:

Extrinsic Origin legt den Ursprungspunkt des Weltkoordinatensystems im Kalibriermuster fest.

Je nach ausgewähltem Kalibriermuster wird ein entsprechendes Hintergrundbild angezeigt.

Camera Calibration 11:

Ursprungspunkt

Der ausgewählte Ursprungspunkt bezieht sich auf den entsprechenden Punkt des Kalibriermusters, nicht auf das Gesamtbild.

World Coordinates

Camera Calibration 12:

World Coordinates legt die Ausrichtung des Weltkoordinatensystems fest. Damit kann eine abweichende Ausrichtung im Vergleich zum Bildkoordinatensystem eingestellt werden. Bei der abgebildeten Standardeinstellung stimmen die beiden Koordinatensysteme überein.

Aktionen

Camera Calibration 13:

Calibrate Intrinsics

Durch Calibrate Intrinsics erfolgt die Berechnung der Kameramatrix und der Verzeichnungskoeffizienten. Dazu werden alle Bilder der Auswahl verwendet. Diese müssen dazu alle vollständig das definierte Kalibriermuster enthalten. Ist dies nicht der Fall, ist dies an einem negativen Reproj. Error zu erkennen.

Calibrate Extrinsics

Durch Calibrate Extrinsics erfolgt die Berechnung der Rotationsmatrix und des Translationsvektors. Voraussetzung dazu ist die intrinsische Kalibrierung (Kameramatrix und Verzeichnungskoeffizienten) sowie die Auswahl des Bildes, in dem sich die Punkte des 2D-Kalibriermusters in der späteren Messebene befinden.

Camera Calibration 14:

Dauer einer Kalibrierung

Die Dauer einer Kalibrierung erhöht sich mit der Anzahl der Referenzpunkte im Kalibriermuster und der Anzahl an Kalibrierbildern. Achten Sie daher bei der Auswahl eines Kalibriermusters darauf, dass die Dauer in einem für Sie akzeptablen Rahmen bleibt.

Camera Calibration 15:

Abweichung der Ergebnisse

Aufgrund des verwendeten Algorithmus können die Ergebniswerte der Kalibrierung von Aufruf zu Aufruf leicht im Nachkommastellenbereich voneinander abweichen. Das betrifft sowohl die Ergebnisse der Kalibrierung im Kalibrationsassistenten und die in der SPS als auch zwischen beiden Kalibrationsvarianten.

Camera Calibration 16:

Übernahme der Einstellungen in das TwinCAT Projekt

Die eingestellten Werte und Optionen werden nur nach dem Ausführen der Calibrate Intrinsics- oder Calibrate Extrinsics-Funktion in das TwinCAT Projekt übernommen. Wenn das Projekt danach abgespeichert wird, werden diese Werte beim erneuten Öffnen wieder geladen. Ansonsten werden immer die Default-Einstellungen verwendet.

Advanced Options

Die Kreismustererkennung kann über die Advanced Calibration Options nachparametriert werden. Dies sollte nur erfolgen, wenn es Schwierigkeiten mit den Standardeinstellungen gibt. Zum besseren Verständnis der Einstellparameter hilft ein Blick in die Parametrierung der Funktion F_VN_DetectBlobs.

Camera Calibration 17:

Ergebnisse

Camera Calibration 18:

Reproj. Error
Der Reprojection Error gibt Aufschluss über das Ergebnis der intrinsischen Kalibrierung:

Camera Matrix

Die Kameramatrix beschreibt den Abbildungsvorgang von 3D zu 2D.

Camera Calibration 19:

Distortion Coefficients

Durch Abbildungsfehler des optischen Systems kommt es u.a. zu Verzeichnungen im Bild. Diese können zum Teil durch die Distortion Coefficients bei der Koordinatentransformation ausgeglichen werden.

Camera Calibration 20:

Rotation Matrix

Durch die Rotationsmatrix wird die unterschiedliche Ausrichtung des Kamerakoordinatensystems zum Weltkoordinatensystem beschrieben und umgekehrt.

Camera Calibration 21:

Translation Vector

Der Translationsvektor beschreibt die Verschiebung des Koordinatenursprungs vom Kamera- ins Weltkoordinatensystem und umgekehrt.

Camera Calibration 22:

Write Results

Die Ergebnisse werden in das Image Provider TcCOM-Objekt der Kamera geschrieben. Dadurch sind diese aus der SPS über die Methoden des Funktionsbausteins F_VN_GevCameraControl abrufbar.

Auch wenn noch keine Kalibrierung durchgeführt wurde, wird die Beschreibung des eingestellten Kalibriermusters geschrieben. Diese kann in der SPS mit der Methode GetCalibPatternRef abgerufen werden. Alternativ kann die Beschreibung des Kalibriermusters über die F_VN_GenerateCalibrationPatternReferencePoints auch direkt in der SPS erzeugt werden.

Save To File...

Die Ergebnisse können in einer json-Datei gespeichert werden. Alternativ können die Ergebnisse über den FB_VN_ReadCalibrationResult in die SPS eingelesen werden.

Undistort Selected

Auf das ausgewählte Bild werden die Distortion Coefficients angewendet und das Ergebnis in einem separaten Fenster angezeigt.

Show Output

Öffnet das Verzeichnis C:\ProgramData\Beckhoff\Vision\_CalibrationAssistantOutput. In diesem werden Ergebnisbilder erstellt, um analysieren zu können, welche Merkmalspunkte gefunden und wie diese zugeordnet wurden.

Alternative in der SPS

Falls eine Kamera während der Maschinenlaufzeit kalibriert werden muss, steht dafür in der SPS die Funktion F_VN_CalibrateCamera zu Verfügung.

Camera Calibration 23:

Kalibrierung in der SPS

Die Dauer einer Kalibrierung kann wesentlich höher als ein SPS-Zyklus sein. Achten Sie daher darauf, dass in Ihrem Maschinenablauf keine Probleme verursacht werden, wenn Sie eine Kalibrierung in der SPS ausführen.

Beispiel zum Kalibrierungsassistent

Calibration Assistent