Blog-Eintrag

Fisheye-Modellierung mit PTGUI 11

In früheren Beiträgen hatte ich schon mehrfach Fisheye-Objektive beschrieben und die unterschiedlichen Fisheye-Projektionen erwähnt. Das Wissen um diese Zusammenhänge ist nicht notwendig, um gute Fotos und schöne Panoramen zu machen. Aber es hilft dann weiter, wenn sich Bilderserien, die mit einem Fisheye aufgenommen wurden, nicht perfekt stitchen lassen.
Dazu folgendes Fall-Beispiel: Unser Kunde Klaus G. fotografiert häufig Panoramen in Kirchenräumen vom MonoPod Hochstativ mit einer 5DMk3 und dem Canon f4/8-15mm Fisheye-Zoom am KISS Nodalpunktadapter. Der MonoPod ist dabei auf ein Dreibein-Stativ montiert. Zwischen Dreibein und MonoPod befindet sich ein rastender Rotator. Dieses Setup steht gelegentlich zwischen den Kirchenbänken. Dann kommt es vor, dass die Kirchenbänke im Nadir trotz PTGUI 10.0.17 nicht sauber stitchen. Klaus G. vermutet daher, dass der MonoPod entweder nicht exakt senkrecht steht und fragt an, ob eine weitere Libelle hilfreich wäre.

Grundsätzlich könnte man den MonoPod mit einer (im Pano sichtbaren) Abspannung versehen und ihn so stabilisieren. Doch gibt es eine ganze Reihe weiterer Einflüsse, die ganz wesentlich zur Stitchingqualität im Nadir beitragen:

  1. Die Position der Eintrittspupille ("Nodalpunkt") des Fisheye-Zooms ist nicht eindeutig definiert. Sie verändert sich
    • mit der Brennweite
    • mit der Fokuseinstellung
    • mit dem Winkel des einfallenden Lichstrahls  (mehr dazu hier

  2. Die Auswirkungen eines Nodalpunkt-Offsets variieren 
    • mit dem Aufnahmeabstand
    • mit dem Bildüberlapp ("Rastung")

  3. Die unterschiedlichen Stitching-Programme unterscheiden sich in der Modellierung der Fisheye-Abbildung - und generieren insbesondere am Bildkreisrand Projektionsfehler, die als Stitchingfehler sichtbar werden.

Wie sind nun diese Einflüsse zu werten ?

Zu 1.: Die Brennweiten-Variation des NPP beträgt beim Canon 0815 Fisheye-Zoom +/- 1,5mm. Die 10mm-Einstellung ist am Objektiv reproduzierbar einstellbar.
Nodalpunktgang Canon 0815Die Fokusvariation des NPP ist bei den Fisheyes sehr gering und in der Praxis vernachlässigbar.
Fisheye-typisch variiert der "richtige" Nodalpunktabstand bei der Linse um ca. 10mm (!) zwischen senkrechtem und streifendem Lichteinfall.
Wir haben bei der Konfiguration des KISS Panoramasystems den Nodalpunktabstand für 10mm Brennweite, ca. 1 Meter Aufnahmeabstand und Lichtstrahlen, die unter 45° einfallen eingestellt.  Das ist bei Fisheyes immer ein Kompromiss. 

Zu 2.: Der Aufnahmeabstand bei der beschriebenen Aufnahmesituation beträgt im Nadir ca. 3m und Klaus D. macht 4 Aufnahmen bei 10mm Brennweite im Hochformat. Die Bilder haben daher fast 50% Bildüberlapp. 
Generell beträgt bei 25% Bildüberlapp der zulässige Nodalpunkt-Offset 1,5mm pro Meter Abstand zum Nahpunkt (mehr dazu hier). Der dann auftretende Stitchingfehler beträgt dann 0,1% der Kantenlänge des Sensors, also ca. 4 Pixel. Das ist im äquatorialen Bereich unkritisch. Aber im Nadir fallen die Lichtstrahlen streifend, also nahezu senkrecht zur optischen Achse ein. Und da beträgt der Nodalpunktoffset fast 10mm - bei einem Aufnahmeabstand von 3m. Da treten sichtbare Stitchingfehler auf.

Zu 3.: Bisher modellieren Stitching-Programme die Fisheye-Objektive standardmäßig mit der äquidistanten Projektion und berücksichtigen die abweichenden Projektionen indem die Verzeichnungssparameter (also a, b und c und f in PTGUI) entsprechend variiert werden. Im Klartext heißt das: Der Optimizer legt eine physikalisch falsche Abbildungsgleichung zugrunde und verbiegt das dafür berechnete Bild mit entsprechend großen Verzeichnungsparametern soweit, bis die Kontrollpunkt-Offsets minimal werden. Der so in der Projektion entstehende Fehler ist im mittleren Bereich des Bildkreises vernachlässigbar, aber am Bildkreisrand u.U. sehr groß. Der Bildkreisrand aber bildet Zenit und Nadir im einzeiligen Panorama.

Also: Die Stitchingfehler, die Klaus G. im Nadir beobachtet, können vom Schwanken des Stativs herrühren, aber auch von der physikalischen Eigenschaft der Fisheye-Abbildung (NPP-Gang) als auch von einer unzureichenden Modellierung der Fisheye-Projektion.

Interessant sind in diesem Zusammenhang zwei Neuerungen in der Panorama-Szene:

  1. das neue "0815-Nikkor" f3,5-4,5/8-15mm E ED Fisheye-Zoom
  2. die neueste Version der Stitching-Software PTGUI  (derzeit PTGUI 11 beta3)

Test der ProjektionDas 0815-Nikkor weist eine (zumindest vom Typ her) flächentreue Projektion auf. Mit etwas Erfahrung  erkennt man deren typische Randkompression bereits an jeder Aufnahme. Besonders deutlich wird das, wenn man eine Kreisfläche unter verschiedenen Winkeln zur optischen Achse fotografiert. 
Mit der Anordnung im Bild hier will ich das verdeutlichen.

typische Rand-Kompression der flächentreuen ProjektionWährend bei einer äquidistanten Projektion (f3,5/8mm Sigma !) der Kreis unabhängig von der Lage im Bildfeld kreisrund abgebildet wird, generiert die flächentreue Projektion mit zunehmendem Winkel zur optischen Achse radial gestauchte Ellipsen. Bildelemente werden also zum Bildkreisrand hin ca. 10% komprimiert. Gleichzeitig werden sie tangential gedehnt. Bei der flächentreuen Projektion bleibt dann die Fläche unabhängig von der Lage im Bildfeld gleich groß. 

Wie am 0815-Nikkor die Position der Eintrittspupille mit der Brennweite und dem Winkel zur optischen Achse variiert, sehen Sie in dieser Darstellung. Im Brennweitenbereich 8...12mm variiert der Nodalpunkt nur um +/-0,6mm mit der Brennweite. Darüber (14...15mm) reagiert die Eintrittspupille aber recht empfindlich beim Anfassen des Zoomrings. Der winkelabhängige Nodalpunktgang ist ähnlich wie beim Canon-Pendant stark ausgeprägt. Auch mit dem 0815-Nikkor müssen am Bildkreisrand Stitchingfehler auftreten, wenn der Nodalpunktabstand genau passend für die Bildmitte eingestellt wurde. In diesem Fall stitcht also alles perfekt am Äquator des sphärischen Panoramas, während Zenit und Nadir "jenseits des Polarkreises" durch den NPP-Gang bedingte Fehler aufweisen können.

Anmerkung: Bei den Fisheyes mit stereografischer Projektion (z.B. 12mm Samyang) ist diese Winkelabhängigkeit wesentlich geringer ausgeprägt. Genau deshalb sind diese Objektive für Panoramafotografie so beliebt.

11mm-MarkierungDas 0815-Nikkor weist am Zoomring bei ca.11mm eine Markierung auf. Nikon gibt an, dass bei dieser Brennweiteneinstellung das Objektiv am DX/APS-C-Format gerade 180° diagonalen Bildwinkel abbildet. Tatsächlich ist an dieser Markierung das Objektiv für Panoramafotografie besonders "gutmütig". Der gesamte Nodalpunktgang ist dann minimal bei einem satten 190° Bildkreisdurchmesser von 33,5mm. Ich empfehle daher, das  0815-Nikkor mit einer Vollformat-DSLR am KISS grundsätzlich bei dieser Einstellung zu verwenden.

PTGUI 11
Neben einer komplett überarbeiteten Oberfläche und schönen neuen Features bietet PTGUI 11 jetzt endlich die lange erwartete Möglichkeit, die Fisheye-Projektionen physikalisch richtig zu modellieren. (Hugin kann das bereits seit Jahren - ist aber extrem langsam und sehr "gewöhnungsbedürftig"). PTGUI 11 enthält dazu eine Datenbank mit den verifizierten Projektionsparametern gängiger Fisheyes. Daneben bietet der Optimizer die Möglichkeit, den "Fisheye-Faktor" eines nicht gelisteten Fisheyes zu fitten und danach zur Wiederverwendung abzuspeichern. Etwas irritierend ist zunächst die Definition des Fisheye-Faktors k. Aber der Betrag dieses k-Werts ist nichts anderes als der Kehrwert des k-Koeffizienten in den üblichen Formeln der Fisheye-Projektion.
Ich gehe davon aus, PTGUI 11 approximiert die Winkelfunktionen (Sinus in der flächentreuen Projektion, Tangens in der stereografischen Projektion) durch die ersten beide Terme einer Taylor-Reihe. So spielt das Vorzeichen von k keine Rolle und kann daher als Indikator für die Wahl der Projektion verwendet werden (k<0 für Sinus, k>0 für Tangens).  Für k=0 liefert die Taylor-Reihe die äquidistante Projektion (aber eben nur bei dieser Definition von k als Kehrwert). Diese Modellierung ist tatsächlich genial, genial einfach. 

PTGUI 11: Fisheye-FaktorIch habe mit 360°-Bildserien des 0815-Nikkors (11mm-Einstellung) mit dem Optimizer aus PTGUI 11B3 gespielt. Der Optimizer liefert bei fest vorgegebenen Fisheye-Faktor einen stabilen Satz von Verzeichnungsparametern.
Lässt man dagegen den Fisheye-Faktor variabel (Häkchen im Optimizer gesetzt), reagiert die Optimierung sehr empfindlich, z.B. auf die Variation des Überlapps oder die Lage und Verteilung der Kontrollpunkte.
Das ist aus der Winkelabhängigkeit der Nodalpunktposition des Fisheyes erklärbar. 
Physikalisch "richtig" ist dann das Ergebnis nicht unbedingt. Denn letztlich wird an den Verzeichnungskoeffizienten so lange variiert, bis die Kontrollpunktfehler minimal sind. Aber Hauptsache, die Stitchingqualität ist perfekt.
PTGUI 11 stellt also im Endeffekt einen zusätzlichen Fitparameter zur Verfügung.
Und davon gibt es im Optimizer einige:  a, b, c, d, e, f, g, t  -  und nun auch noch k.
Wer dort eingreift, sollte schon ungefähr wissen, was er tut  -  oder doch besser die Datenbank nutzen.

Fast hätte ich es vergessen: Was kann man also dem Kunden Klaus G. raten ?
Das 0815-Canon verhält sich sehr ähnlich wie das 0815-Nikkor. Den größten Beitrag zu Stitchingfehlern liefert vermutlich die Winkelabhängigkeit der Nodalpunktposition, den zweitgrößten die unzureichende Modellierung der Fisheye-Projektion in PTGUI 10.

Deshalb würde ich wie folgt vorgehen:

  • Zusätzliche Kontrollpunkte in den kritischen Bildbereich generieren
  • PTGUI 11 zum Stitchen verwenden und damit
  • die flächentreue Fisheye-Projektion besser modellieren

Einfacher und kostengünstiger wäre es, eine Fisheye-Festbrennweite mit stereografischer Projektion anstatt eines Fisheye-Zooms zu verwenden. 

Kommentare

Alles klar beschrieben

Sie haben es mal wieder auf den Punkt gebracht.
Man kann sich das Leben unnötig erschweren, wenn man sich von den Herstellern verleiten lässt scheinbar "universell" einsetzbare Fisheye-Zooms zu kaufen. Da wird von den Ingenieuren alles konstruiert, was technisch machbar erscheint und irgendwer kauft es sich dann um genau DAS festzustellen, was ihr Kunde erlebt.
Dabei lässt sich die Anwendung von Fisheyes für die Praxis ja klar und einfach definieren:
Sphärische Panoramen !
Punkt.

Neuen Kommentar schreiben