Shaderprogrammierung für Entzerrung in Echtzeit – Teil 2

Im Teil 1 dieser Reihe führte ich in die grundlegenden Werkzeuge für unsere Aufgabenstellung ein und zeigte das nun entstehende Anwendungsprogramm.

Dieser Teil führt in die zugrundeliegende Physik und Numerik ein.

Optik ist Teil der Physik und damit der Naturwissenschaften. Diese leben von Modellbildung. Vorgänge der Natur werden in Modellen mithilfe der Mathematik beschrieben. Ein Modell ist dann gut, wenn seine Vorhersagen mit tatsächlichen Beobachtungen übereinstimmen.

Modelle leben immer von gewissen Abstraktionen. Diese reduzieren die Komplexität der Modelle, erleichtern die Berechnungen, können die numerische Robustheit steigern und nötige Messwerte reduzieren, schränken aber dafür ihren Anwendungsrahmen ein.

In unserem Fall liegt der Fokus auf dem Einsatz der Shader. Für die Entzerrung nutzen wir zugunsten der Anschaulichkeit einfache Modelle. Zur Modellierung der Lichtstrahlen wird als Basisansatz die Zentralprojektion gewählt, welche sich am Modell einer Lochkamera besonders anschaulich illustrieren lässt.

Vereinfacht dargestelltes Prinzip einer Lochkamera

Bei einer Lochkamera kann man vereinfacht (Zerstreuungskreise ignorierend) Lichtstrahlen zur Abbildung eines Objektes nach dem Strahlensatz berechnen:

Gg=Bb\frac{G}{g}=\frac{B}{b}

Noch einfacher ist dies ersichtlich, wenn der Projektionsraum vor die Lochblende transformiert wird:

Projektionsraum vor die Lochblende transformiert

Bei der Abbildung, sprich Erstellung einer Fotoaufnahme, geht jedoch die Tiefeninformation verloren, gg ist unbekannt. Letztendlich stellen viele photogrammetrische Verfahren Methoden dar, die Tiefeninformation indirekt zu bestimmen, beispielsweise durch mehrere Aufnahmen von unterschiedlichen Standorten (die Lichtstrahlen eines Objektpunktes werden sozusagen verschnitten) oder zusätzliche Kenntnisse der Geometrie des erfassten Objektes.

In unserem Fall ist diese Zusatzinformation, alle Objektpunkte werden in einer Ebene liegend angenommen. Durch diese Annahme können mathematisch sehr viele Variablen, deren Werte bestimmt werden müssten, eliminiert werden. Der Grund liegt in der Natur der Projektion einer Ebene auf eine andere Ebene, die Fassadenebene auf die Bildebene.

Ebenenprojektion, zur besseren Verständlichkeit nur mit Linien illustriert

Bei einer solchen Aufnahme bleiben Geraden des Originals auch im Abbild Geraden. Man spricht von Geradentreu. Solange die Objektebene nicht durch das Projektionszentrum verläuft (und wir den tatsächlich abgebildeten Ausschnitt betrachten), entspricht jedem Punkt des Originals eindeutig ein Punkt des Abbildes und umgekehrt. Man spricht von bijektiver Abbildung.

Die Winkel zwischen Kanten bleiben identisch, egal wie weit die abgebildete Ebene auf der optischen Achse vor der Kamera liegt, wenn die Form des Originals linear zur Entfernung skaliert. Wichtig ist hier die genaue Unterscheidung: liegen die Ebenen nicht parallel, so verändern sich bei der Projektion die Winkel zwischen den Kanten im Original und seiner Abbildung. Die Winkel im Abbild und damit die Winkeländerung Original / Abbild bleiben aber unter den genannten Bedingungen identisch. Analog bleiben auch die Längenverhältnisse zwischen den Kantenlängen im Abbild unabhängig von der Entfernung der Objektebene.

Diese Punkte sind wesentlich für die mathematische Umkehrung der Abbildung, die sogenannte Rückprojektion. Verschiebt man bei der Rückprojektion die Objektebene entlang der optischen Achse (die Orientierung / der Normalenvektor bleibt unberührt!), verändert sich die rekonstruierte Figur lediglich um einen einheitlichen Skalierungsfaktor. Ihre Winkel und Längenverhältnisse bleiben unverändert.

Um einen Denkfehler zu vermeiden: dies gilt nicht bei unterschiedlichen Aufnahmen. Hier geht es um die mathematische Modellierung der Aufnahme und ihrer Umkehrung, also der exakt gleichen optischen Abbildung. Bei mehreren realen Aufnahmen ist selbst bei identischem Kamerastandort die exakt gleiche optische Abbildung nicht ohne Weiteres garantiert; bereits eine veränderte Fokussierung kann die innere Abbildungsgeometrie verändern.

Wegen der eben beschriebenen Gesetzmäßigkeiten kann auf die Kenntnis der Entfernungen der abgebildeten Punkte in unserem Fall verzichtet werden. Denn die Form des rekonstruierten Originals bleibt wie beschrieben immer identisch, nur seine Skalierung ändert sich. Mehr noch, da sich nur die Skalierung ändert, reicht die Kenntnis des Abstandes von zwei Punkten im Original, um den Skalierungsfaktor und damit die Rekonstruktion insgesamt maßlich korrekt zu bestimmen.

Wichtig: Hier könnte sich die Frage stellen, wie sich allein mit diesen Kenntnissen das Original wiederherstellen lässt. Und diese Fragestellung trifft den Kern: Wir rekonstruieren das Original gar nicht. Wir stellen lediglich die geometrischen Abhängigkeiten von Punkten des Originals in der Ebene wieder her. Es wird eben nicht geklärt, wie diese Ebene im globalen Koordinatensystem steht, wo sich die Punkte des Originals im dreidimensionalen Raum befinden, wie die Kamera dazu ausgerichtet ist etc. Genau das ist die Eliminierung vieler unbekannter Variablen, von der am Anfang gesprochen wurde.

Das Werkzeug zur mathematischen Modellierung dieser Projektion ist die Homographie (bzw. Homografie). Vereinfacht ausgedrückt wird die Abbildung einer zweidimensionalen Ebene auf eine andere zweidimensionale Ebene in homogenen Koordinaten durch eine 3×3-Matrix beschrieben – analog dem Ansatz bei 3D mit 4×4-Matrizen, die man auch aus Computergrafik und Robotik kennt.

Einer unserer großen Modellfehler ist aber die Abstraktion zur Lochkamera. Wir haben es mit Aufnahmen mit einem Linsensystem zu tun. Daher müssen wir den Modellfehler wieder reduzieren, zumindest bei den gröbsten Abweichungen. Und das sind bei einem Linsensystem die Verzeichnungen.

Hierzu kombinieren wir das Modell der Lochkamera mit dem Brown-Conrady-Modell. Letzteres dient der Verzeichnungskorrektur.

Verzeichnung, Quelle https://commons.wikimedia.org/wiki/File:Lens_distorsion.svg

Unter Verzeichnung wird eine ganze Gruppe von Abbildungsfehlern verstanden, welche Optiken prinzipbedingt mit sich bringen. Durch die reale Arbeitsweise von Linsensystemen weicht die Abbildung vom idealisierten Modell der Zentralprojektion ab. In unserem Genauigkeitsbereich ist dabei der üblich stärkste Abbildungsfehler relevant, die radialsymmetrische Verzeichnung. Geraden werden dabei nicht mehr auf Geraden abgebildet.

Die radialsymmetrische Verzeichnung lässt sich relativ einfach mathematisch beschreiben. Die Entfernung eines Bildpunktes vom Verzeichnungszentrum wird anhand eines Polynoms korrigiert.

Wer sich die dahinterliegende Physik durchdenkt, findet schnell einen Widerspruch: gerade das vereinfachte Modell der Lochkamera geht davon aus, dass alle betrachteten Lichtstrahlen durch ein gemeinsames Projektionszentrum verlaufen, das beim Modell der Lochkamera durch ein unendlich kleines Loch repräsentiert wird. Beim Linsensystem wird der Lichtstrahl aber mehrfach, zum ersten Mal bereits am ersten Medienübergang an der ersten Linsenoberfläche gebrochen. Die Praxis zeigt jedoch, dass dieses Modell als Basis erstaunlich weit trägt. Erst bei sehr hohen Genauigkeitsanforderungen oder besonderen Optiken, etwa Fischaugenobjektiven, stößt diese Abstraktion an ihre Grenzen.

Dieser Modellfehler wird bei uns daher bewusst in Kauf genommen. Bereits die Abstraktion der Objektpunkte auf eine Ebene bei der Häuserfassade bringt Ungenauigkeiten ins System, gegen welche die erste Abstraktion der Zentralprojektion kein Gewicht hat.

Da aber der Einfluss der Verzeichnung in der Genauigkeit eben nicht mehr einfach ignorierbar bleibt, wird dieser mit dem Brown-Conrady-Modell stark reduziert, obwohl die Modellabstraktion beibehalten wird. Wir abstrahieren sogar noch weiter. Das Linsensystem projiziert das Abbild auf einen Bildsensor. Auch dessen reale Lage kann von der idealisierten Geometrie abweichen: Der Sensor kann geringfügig gegenüber der idealen Bildebene verkippt sein, der Hauptpunkt muss nicht exakt im geometrischen Bildmittelpunkt liegen, und auch das Verzeichnungszentrum muss nicht exakt mit ihm zusammenfallen. All diese Effekte abstrahieren wir in unserer Genauigkeitsklasse weg.

Naturwissenschaften fragen nicht nach Wahrheit, sondern versuchen Modell und Beobachtung eng beieinander zu halten.

Im nächsten Teil gehen wir zur mathematischen Modellierung unseres optischen Modells über.