next up previous contents
Next: 6.2 Belichtungssimulation Up: 6. Algorithmen Previous: 6. Algorithmen

Unterabschnitte

6.1 2-D-Kalibration

6.1.1 Kalibration

Der eigentliche Kalibrationsalgorithmus verteilt sich auf die drei Dateien kalib, abweich und abstand. In abstand wird mittels der Gleichungen 1.8 und 1.24 der Offset der Datenpunkte vom Referenzpunkt im ungedrehten Bild ( $\delta \vec{\tilde{x}}_i'$) berechnet. abweich verwendet diesen Offset, subtrahiert den Offset der Meßdaten ( $\delta\vec{x}_i$), berechnet die Quadratsumme der Differenzen und liefert sie als Ergebnis zurück. kalib ruft zur eigentlichen Kalibrierung die in Matlab eingebaute Funktion fmins, die den Nelder-Mead-Fit durchführt, mit dem Auftrag auf, abweich bezüglich der vier Kalibrationsparameter zu minimieren. Die von fmins zurückgegebenen Parameter werden zur Berechnung des Kamerarotationswinkels $\alpha$ verwendet und die fünf so bestimmten Parameter dann als Ausgabe zurückgegeben.

kalib hat zusätzlich zu den Listen von Fixationswinkeln und Pixelkoordinaten als weiteren Parameter noch ein Flag, das angibt, ob bei der Berechnung des Abstandes vom Referenzpunkt die genaue optische Abbildung oder die Näherung herangezogen werden soll. Dies ist für die Überprüfung der Messgenauigkeit und den damit zusammenhängenden Optimierungsvorschlag in Abschnitt 2.7 von Bedeutung.

6.1.2 Überprüfung

Die praktische Überprüfung wird, wie in Kapitel 2 erläutert, durch Simulation tatsächlicher Kalibrationsvorgänge vorgenommen. Dafür zuständig ist das Programmodul kaltest, das die Anzahl der Simulationen, den Namen der Protokolldatei, falls es eine geben soll, die Fehlerschwankung der Fixationspunkte und ein Flag übergeben bekommt. Das Flag gibt an, ob die Fixationspunkte zufällig verteilt oder auf einem vorgegebenen Raster (siehe Abbildung A.1) liegen und ob die Daten der einzelnen Simulationen (alle Winkel und Pixelkoordinaten, sowie die vorgegebenen und die von kalib errechneten Parameter) zur Kontrolle gespeichert werden sollen. kaltest ruft nun das Modul test_kalib so oft auf, wie im Parameter anzahl vorgegeben. test_kalib nimmt den eigentlichen Test wie folgt vor und liefert die 5 Fehlerwerte in einem Vektor zurück, den kaltest aufzeichnet.

test_kalib erhält von kaltest das Flag sowie die Größe der vorgesehenen Fehlerschwankung übergeben und legt nun die fünf Kalibrationsparameter mittels eines Zufallsgenerators fest. Dann wird eine Liste von Fixationswinkeln zufällig angelegt oder im Raster gewählt und über die Funktion abstand die Lage der Pupillenmittelpunkte im Bild berechnet - inklusive des nach Vorgabe berechneten statistischen Fixationsfehlers. Anschließend ruft test_kalib den Kalibrationsalgorithmus kalib auf und übergibt ihm die Winkel- und Pixelkoordinaten. Aus den von kalib erhaltenen Parameterwerten wird die Abweichung von den vorgegebenen Parametern bestimmt und an kaltest zurückgegeben.

Nach der vorgegebenen Anzahl von Aufrufen von test_kalib mittelt kaltest die Fehlerwerte über alle Simulationsdurchläufe.

Dieser Vorgang wird für einen bis dreizehn Punkte wiederholt, anschließend wird der gemittelte Fehler entweder grafisch ausgegeben, oder, falls ein Dateiname angegeben war, als Tabelle in einer Datei gespeichert.

Die Wertebereiche der Kalibrationsparameter betragen dabei (in Klammern jeweils die Einheit):


\begin{eqnarray*}290 \le & x_{ref} \mbox{(Pixel)} & \le 350 \\
170 \le & y_{ref...
... & \le 30 \\
-30 \le & \phi_i \mbox{(\textdegree)} & \le 30 \\
\end{eqnarray*}


Das Modul darstellen dient der Einsicht in die von test_kalib auf Wunsch erzeugten Protokolldateien und zu ihrer automatischen Löschung, das Modul findname erzeugt automatisch Namen für diese Dateien.


  
Abbildung A.1: Verteilungsraster für die Fixationspunkte.
\includegraphics[width=6cm]{Bilder/raster.eps}

6.1.2.1 Geometrische Näherung

Der Fehler bei der geometrischen Näherung konstanter Gegenstandsweite wurde über simulierte Kalibrations-/Meßvorgänge berechnet. Dazu ruft das Programm messtest das Modul test_mess eine Anzahl von Malen auf und gibt die mittleren Fehler aus. Für die Graphen und Tabellen in Anhang B wurde allerdings nur ein einzelner Messvorgang simuliert.

test_mess selbst legt zunächst die Kalibrationsparameter fest, berechnet die Bildkoordinaten einer Anzahl von Fixationspunkten und übergibt beides an kalib. Je nach Wahl des Programmparameters geon verwendet kalib nun die geometrische Näherung oder nicht. Wenn die geometrische Näherung angewandt wird, wird das zuvor geschilderte Kalibrationsverfahren wie folgt modifiziert:

Die mit den korrekten Abbildungsgleichungen berechneten Pixelkoordinaten der Fixationspunkte werden an kalib übergeben, das nun die Kalibration unter Annahme der Näherung durchführt. Das heißt, die für jeden Parametersatz berechneten erwarteten Pixelkoordinaten werden berechnet, als ob die Pupille in einer zur Linsenebene parallelen Ebene bliebe, und auf Basis dieser Annahme werden die Abstände und die Standardabweichung bestimmt. Die Modifikation der Formeln kann im Modul abstand gesehen werden und besteht im Einsetzen des genäherten Rauge für das korrekte zkopf.

Nachdem nun kalib die Kalibrationsparameter bestimmt hat, wird nun in test_mess ein 40x40 großes Raster mit einem Grad Punktabstand erzeugt. Dieses Raster wird mit den vorgegebenen Kalibrationsparametern auf die Kameraebene abgebildet. Das hierdurch erhaltene Pixelraster wird nun dem Modul messe zusammen mit den aus der Kalibration erhaltenen Parametern übergeben. messe berechnet nun aus den Pixelwerten und den Parametern wieder die Winkelwerte. Von diesen von messe berechneten Winkeln wird nun das ursprüngliche Winkelraster abgezogen. Die sich ergebende Differenz, die den durch die Näherung erzeugten Fehler bezeichnet, gibt test_mess zurück an messtest, wo er über die Zahl der Durchläufe gemittelt wird.

Im Modul messe gibt es zusätzlich noch die Möglichkeit, die exakten Gleichungen für die optische Abbildung auch bei der Messung zu berücksichtigen. Dazu wird zunächst aus den Pixelkoordinaten über ein numerisches Verfahren die Koordinate zkopf des Pupillenmittelpunktes berechnet, und dann mit dieser Koordinate die exakte geometrische Rücktransformation durchgeführt.


next up previous contents
Next: 6.2 Belichtungssimulation Up: 6. Algorithmen Previous: 6. Algorithmen
root
1999-04-24