# Projektionsmatrix (Computer Vision)

Nimmt eine Kamera ein Objekt auf, so bildet sich das Objekt auf dem Kamerabild ab. Diese Abbildung (auch Projektion genannt) wird mathematisch durch die so genannte Projektionsmatrix $\mathbf {P}$ beschrieben. Diese ist eine spezielle Matrix aus dem Bereich Computer Vision und beschreibt die perspektivische Abbildung eines dreidimensionalen Objektpunktes an die zweidimensionale Bildposition.

## Einleitung und Anwendung

Die Projektionsmatrix beschreibt die perspektivische Abbildung eines dreidimensionalen Objektpunktes $\mathbf {X} =[X\;Y\;Z\;W]$ an die Bildposition $\mathbf {x} =[x\;y\;w]$ durch eine Kamera. Dabei gilt folgender Zusammenhang zwischen Objekt- und Bildpunkt:
    ${\begin{bmatrix}x\\y\\w\end{bmatrix}}={\begin{bmatrix}p_{11}&p_{12}&p_{13}&p_{14}\\p_{21}&p_{22}&p_{23}&p_{24}\\p_{31}&p_{32}&p_{33}&p_{34}\end{bmatrix}}{\begin{bmatrix}X\\Y\\Z\\W\end{bmatrix}}\quad \cong \quad \mathbf {x} =\mathbf {PX}$
Die Abbildung des Objektpunktes auf die Bildebene wird hier mit den in der projektiven Geometrie benutzten homogenen Koordinaten beschrieben. Homogene Koordinaten sind gegenüber kartesischen oder affinen Koordinaten um eine Koordinate erweitert und nur bis auf einen Skalierungsfaktor eindeutig. Den zweidimensionalen kartesischen oder affinen Koordinaten $x,\,y$ entsprechen die homogenen Koordinaten $u,\,v,\,w=wx,\,wy,\,w$. Die homogenen Koordinaten $u,\,v,\,w$ und $u/w,\,v/w,\,1=x,\,y,\,1$ repräsentieren denselben Punkt. Entsprechendes gilt für den dreidimensionalen Raum. Die Projektionsmatrix führt somit eine Transformation der projektiven Räume $\mathbb {P} ^{3}$ in $\mathbb {P} ^{2}$ durch. Die Elemente der Projektionsmatrix hängen dabei von den Orientierungsparametern der Kamera ab. Diese sind im Einzelnen der innere Aufbau der Kamera („innere Orientierung“) und die Lage der Kamera im Raum sowie die Blickrichtung der Kamera („äußere Orientierung“).
Die innere Orientierung $\mathbf {K}$ der Kamera setzt sich aus folgenden Elementen zusammen:
* Der Kammerkonstante c als Abstand zwischen Bildebene und (bildseitigem) Projektionszentrum der Kamera.
* Der Anzahl der Bildpunkte pro Millimeter in Richtung der x-Achse ($k_{x}$) und y-Achse ($k_{y}$).
* Der Position des Bildhauptpunktes $h_{0}=(x_{0},y_{0})$ als der Durchstoßpunkt der optischen Achse durch die Bildebene und
* dem Scherungswinkel Θ zwischen den Bildachsen.
Zusammengefasst wird das in der Kalibrierungsmatrix $\mathbf {K}$:
    $\mathbf {K} ={\begin{bmatrix}ck_{x}&-ck_{x}\cot(\Theta )&x_{0}\\0&ck_{y}/\sin(\Theta )&y_{0}\\0&0&1\end{bmatrix}}$
Im Weiteren wird die Position einer Kamera bezüglich des Weltkoordinatensystems mit $\mathbf {C}$, die Aufnahmerichtung mit $\mathbf {R}$ bezeichnet. Letzteres ist eine 3×3-Rotationsmatrix. Für $\mathbf {P}$ ergibt sich damit:
    $\mathbf {P} =\mathbf {K} \cdot \mathbf {R} \cdot [\mathbf {I} \mid -\mathbf {C} ]$
($\mathbf {I}$ ist die 3×3-Einheitsmatrix). Da $[\mathbf {I} \mid -\mathbf {C} ]$ eine 3×4 große Matrix ist, ist $\mathbf {P}$ ebenfalls 3×4 groß. $\mathbf {P}$ ist somit eindeutig bestimmt.
Der Vorteil der Projektionsmatrix gegenüber anderen Darstellungsformen wie der Kollinearitätsgleichung ist ihre kompakte Darstellung in einer einzigen Matrix. Dadurch entfällt die explizite Angabe der einzelnen Orientierungsparameter. Auch etwaige Unklarheiten über die Reihenfolge der Transformationsschritte treten nicht auf. Sie wird überall angewendet, wo entsprechende Abbildungen durch eine Kamera durchgeführt werden. Dies ist zum Beispiel auf den Gebieten der Photogrammetrie bei der Bestimmung von 3D-Koordinaten und der Kalibrierung, Computer Vision und in der projektiven Geometrie der Fall. Meist wird von den aufgezeichneten Bildpunkten auf die Koordinaten der beobachteten Objektpunkte rückgerechnet.

## Geometrische Deutung der Projektionsmatrix

Die Elemente von $\mathbf {P}$ sind geometrisch deutbar. Die Zeilen $p^{i}$ der Matrix $\mathbf {P}$ sind 4-Vektoren und können als Ebenen im projektiven Raum $\mathbb {P} ^{3}$ angesehen werden. Diese 3 Ebenen schneiden sich im Projektionszentrum $\mathbf {C}$. Die Spalten $p_{i}$ sind 3-Vektoren. Die ersten drei Spalten $p_{1},p_{2},p_{3}$ sind die Abbildungen des Weltkoordinatensystems und entsprechen den Fluchtpunkten der X-, Y- beziehungsweise Z-Achse. Die letzte Spalte $p_{4}$ ist die Abbildung des Ursprungs des Weltkoordinatensystems.
Da die Projektionsmatrix auf Grund der homogenen Darstellung nur bis auf einen Skalierungsfaktor λ bekannt ist, sollte sie dafür normiert werden. Dazu ist der Betrag und das Vorzeichen des Normierungsfaktors zu bestimmen. Für den Betrag wird die erste 3×3-Teilmatrix $\mathbf {M}$ von $\mathbf {P} =[\mathbf {M} \mid \mathbf {t} ]$ betrachtet. Wenn $\mathbf {m} ^{3}$ die dritte Zeile von $\mathbf {M}$ ist, so muss die gesamte Projektionsmatrix durch die Norm dieses Vektors dividiert werden. Das korrekte Vorzeichen ergibt sich aus der Bedingung $\det(\mathbf {M} )>0$. Ist die Determinante kleiner 0, muss das Vorzeichen aller Komponenten von $\mathbf {P}$ invertiert werden.

## Zerlegung der Projektionsmatrix

Es ist möglich, aus $\mathbf {P}$ wiederum die einzelnen Orientierungsparameter der Kamera zu berechnen. Für das Projektionszentrum $\mathbf {C}$ gilt der Zusammenhang $\mathbf {PC} =0$. Diese Eigenschaft kann als lineares Gleichungssystem aufgefasst und mittels Singulärwertzerlegung gelöst werden. Dabei ist zu beachten, dass die Rechteckmatrix $\mathbf {P}$ um eine Zeile mit Nullen ergänzt werden muss.
Die Rotationsmatrix $\mathbf {R}$ und die Kalibrierungsmatrix $\mathbf {K}$ extrahiert eine QR-Zerlegung aus der ersten 3×3 Teilmatrix $\mathbf {M}$ von $\mathbf {P}$:
    $\mathbf {M} =\mathbf {KR} ={\begin{bmatrix}k_{11}&k_{21}&k_{31}\\0&k_{22}&k_{32}\\0&0&k_{33}\end{bmatrix}}{\begin{bmatrix}r_{11}&r_{21}&r_{31}\\r_{21}&r_{22}&r_{32}\\r_{31}&r_{23}&r_{33}\end{bmatrix}}$
$\mathbf {K}$ ist hier die Kalibrierungmatrix, $\mathbf {R}$ enthält die Elemente der Rotationsmatrix. Somit sind alle Parameter der inneren und äußeren Orientierung bestimmt.

## Berechnung der Projektionsmatrix aus Punktkorrespondenzen

Die Projektionsmatrix lässt sich – wie im Abschnitt Mathematische Darstellung gezeigt – direkt aus den Orientierungsparametern der Kamera berechnen. Da die Berechnung der Projektionsmatrix meist vor einer Bestimmung der Kameraparameter durchgeführt wird, tritt dieser Fall selten auf. Im Folgenden wird erläutert, wie $\mathbf {P}$ nur mit Hilfe von bekannten Objektpunkten und deren Abbildungen berechnet werden kann.
Sind eine Menge Punktkorrespondenzen $X_{i}\leftrightarrow x_{i}$ gegeben, lässt sich $\mathbf {P}$ aus diesen Punktepaaren berechnen. Ziel ist es, eine Matrix $\mathbf {P}$ zu bestimmen, so dass $\mathbf {x} _{i}=\mathbf {P} \mathbf {X} _{i}$. Dazu wird die Formel mittels des Kreuzproduktes nach $\mathbf {x} _{i}\times \mathbf {PX} _{i}=\mathbf {0}$ umgestellt. Wenn $\mathbf {x} _{i}=[x_{i}\quad y_{i}\quad w_{i}]$, ergibt sich nach Umstellung der Gleichung folgender Zusammenhang:
    ${\begin{bmatrix}\mathbf {0} ^{T}&-w_{i}\mathbf {X} _{i}&y_{i}\mathbf {X} _{i}\\w_{i}\mathbf {X} _{i}&\mathbf {0} ^{T}&-x_{i}\mathbf {X} _{i}\\-y_{i}\mathbf {X} _{i}&x_{i}\mathbf {X} _{i}&\mathbf {0} ^{T}\end{bmatrix}}{\begin{pmatrix}\mathbf {P} ^{1T}\\\mathbf {P} ^{2T}\\\mathbf {P} ^{3T}\end{pmatrix}}=\mathbf {0}$
mit $\mathbf {P} ^{i}$ der i-ten Zeile von $\mathbf {P}$.
Da diese drei Gleichungen linear abhängig sind, werden nur die beiden ersten benutzt. Eine Punktkorrespondenz liefert somit zwei Gleichungen. Von n Punktkorrespondenzen erhält man eine 2n×12 große Matrix $\mathbf {A}$. Die Projektionsmatrix berechnet sich aus $\mathbf {Ap} =0$, wobei $\mathbf {p}$ der Vektor mit den Elementen von $\mathbf {P}$ ist.

### Minimale Lösung

Da die Matrix $\mathbf {P}$ zwölf Elemente hat und vom Rang 11 ist, reichen elf Gleichungen zur Lösung des Gleichungssystems. Da jede Punktkorrespondenz zwei Gleichungen liefert, reichen fünf Punktkorrespondenzen und Kenntnis der x- oder y-Koordinate der sechsten Korrespondenz. $\mathbf {A}$ ist dann eine 11×12 große Matrix, deren rechter Nullraum die Lösung für $\mathbf {P}$ enthält.

### Überbestimmte Lösung

Da die Punktkorrespondenzen meist Fehler enthalten, existiert keine exakte Lösung für $\mathbf {Ap} =0$. Daher muss eine Lösung durch Minimierung eines algebraischen oder geometrischen Fehlermaßes bestimmt werden.

#### Algebraisches Fehlermaß

Im Falle eines algebraischen Fehlermaßes besteht der Ansatz darin, $||\mathbf {Ap} ||$ mit einer Nebenbeschränkung zu minimieren. Diese Nebenbeschränkungen können sein:
* $||\mathbf {p} ||=1$
* $||\mathbf {\dot {p}} ^{3}||=1$, wobei $||\mathbf {\dot {p}} ^{3}||$ die ersten drei Elemente der letzten Zeile von $\mathbf {P}$ enthält.
In beiden Fällen wird der Fehlervektor $||\mathbf {Ap} ||$ als algebraischer Fehler bezeichnet. Dieses Verfahren wurde von Ivan Sutherland 1963 im Rahmen seiner Dissertation zu Sketchpad vorgestellt.

#### Geometrisches Fehlermaß

Sind sehr genau vermessene Weltkoordinaten $\mathbf {X_{i}}$ wie bei der Benutzung eines ausgemessenen Passpunktfeldes vorhanden, kann der geometrische Fehler d im Bild definiert werden:
    $d=\sum _{i}d(\mathbf {x} _{i},{\hat {\mathbf {x} }}_{i})^{2}$
Dabei sind $\mathbf {x} _{i}$ die gemessenen Bildpunkte und ${\hat {\mathbf {x} }}_{i}$ der Punkt $\mathbf {PX} _{i}$. Wenn die Fehler normalverteilt sind, dann ist die Lösung
    $\min _{p}\sum _{i}d(\mathbf {x} _{i},{\hat {\mathbf {x} }}_{i})^{2}$
die Maximum-Likelihood-Schätzung von $\mathbf {P}$. Zur Lösung werden iterative Techniken wie der Levenberg-Marquardt-Algorithmus verwendet.

### Vorgehen in der Praxis

Voraussetzung für die Berechnung von $\mathbf {P}$ ist, dass mehr als sechs Punktkorrespondenzen vorhanden sind. Ziel ist es dann, die Maximum-Likelihood-Schätzung von $\mathbf {P}$ zu bestimmen. Da die Maximum-Likelihood-Methode gute Startwerte für die Minimierung benötigt, wird davor eine Lösung von $\mathbf {P}$ mittels des algebraischen Fehlermaßes bestimmt. Zusätzlich werden die Eingangsdaten normalisiert. Dabei werden alle Bildpunkte so verschoben, dass ihr Schwerpunkt im Ursprung des Koordinatensystems liegt. Danach werden sie so skaliert, dass der durchschnittliche Abstand zum Ursprung ${\sqrt {2}}$ beträgt. Die Objektpunkte werden auch in den Ursprung verschoben und so skaliert, dass der durchschnittliche Abstand zum Ursprung ${\sqrt {3}}$ ist. Diese Vorgehensweise führt zu numerisch stabileren Ergebnissen. Die jeweiligen Transformationen $\mathbf {T}$ der Bildpunkte und $\mathbf {U}$ der Objektpunkte müssen nach Berechnung von $\mathbf {P}$ rückgängig gemacht werden.

### Verzeichnungskorrektur

Bevor man mit der eigentlichen Bestimmung der Projektionsmatrix loslegen kann, muss man – entsprechend den Genauigkeitsanforderungen – vorhandene Verzeichnung im Bild vorher korrigieren. Die Verzeichnungsparameter müssen zuvor durch eine Kamerakalibrierung bestimmt worden sein. Damit kann dann eine geeignete Verzeichnungskorrektur durchgeführt werden. Das Bild kann danach als verzeichnungsfrei angesehen werden, d. h., die Bildpunkte stimmen mit den geraden Abbildungsstrahlen – entsprechend dem Lochkameramodell – überein.
Oft ist die Bestimmung der Projektionsmatrix selbst Teil einer Kamerakalibrierung. Dann ist eine mehrstufige Vorgehensweise notwendig. Dabei werden in einem ersten Schritt so viele Parameter wie möglich mittels linearer kleinste Quadrate Ausgleichung bestimmt. Anschließend findet eine iterative Optimierung statt unter Berücksichtigung aller Modellparameter inklusive notwendiger Verzeichnungsparameter.