Blog-Eintrag

SLANTed stitchen mit PTGUI 11

Voll sphärische Panoramen mit hoher Auflösung lassen sich kaum einfacher anfertigen als mit dem PT4Pano SLANT Nodalpunktadapter und einem Fullframe Fisheye. Aus diesem Grund basieren gut ein Drittel aller Panoramasysteme, die wir aktuell ausliefern, auf dem SLANT. Trotzdem, das Stitchen der slanted Aufnahmenserien ist nicht ganz trivial und läuft auch nur mit PTGUI ohne manuelle Eingriffe richtig.
Die SLANT-Technik habe ich in früheren Beiträgen bereits beschrieben, z.B. hier.
Das aktuell wohl beste Aufnahme-Setup für hoch auflösende Panoramen mit dem SLANT ist eine Sony A7r3 mit dem 12mm Samyang Fisheye - oder vielleicht doch die Fuji GFX ?

Wir empfehlen den SLANT-Nutzern explizit, mit PTGUI 11 zu stitchen. Bereits mit PTGUI 10 war das Alignment der schräg stehenden Quellbilder generell problemlos, doch die Fisheye-Modellierung in PTGUI 10 war - wie in anderen Stitching-Programmen auch - noch nicht optimal. Deren unzureichende Modellierung der realen Fisheye-Projektion wirkt sich insbesondere am Bildkreisrand aus. Und dieser wird bei voll sphärischen Panoramen, die in single-row-Technik aufgenommen wurden, auch genutzt. Mit PTGUI 11 werden jetzt alle Fisheyes perfekt modelliert, was pixelgenaue Passungen auch im Polargebiet gewährleistet. Allerdings bitten uns gelegentlich SLANT-Kunden um Hilfe, wenn PTGUI 11 Probleme beim Alignment macht. Und da ohnehin ein Workflow-Update für PTGUI 11 aussteht, bietet es sich an, dass ich diese Themen jetzt in einem Beitrag zusammenzufasse. So kann ich bei künftigen Anfragen einfach darauf verweisen.

Das Aufnahme-Setup mit dem SLANT ist denkbar einfach. Ein rastender Rotator oder der David Panoramakopf eingestellt auf Rastung 8 unter dem SLANT ist dringend empfohlen. Die Nivellierung der Rotationsachse vor der Aufnahmeserie erfolgt mit Hilfe der integrierten Libelle hinreichend genau. Und wenn das Display der Kamera am SLANT mit dessen hinterer Kante fluchtet, ist die optische Achse der Kamera waagerecht ausgerichtet (was übrigens gar nicht notwendig ist. Eine leicht nach oben schielende optische Achse ist am SLANT oft sinnvoller. Mehr dazu unten). Mehr gibt es am SLANT Panoramasystem nicht einzustellen.

Mit einem Fullframe Fisheye braucht man für die volle Sphäre 8 Aufnahmen in einer Ebene. Aber was heißt das, „volle Sphäre“ ?
Wenn man den ganzen Raum um sich herum aufnimmt, ist das so, als stünde man im Mittelpunkt einer Glaskugel und malte mit ausgestrecktem Arm von innen auf die Kugeloberfläche, was man durch sie hindurch sieht. Das und nichts anderes ist ein voll sphärisches Panorama. Harald Woeste hat das in seinem Buch „Panoramafotografie: Theorie und Praxis“ sehr schön beschrieben. Will man so ein Panorama mit einem single row Panoramasystem aufnehmen, benötigt man eine Kamera, die 180° vertikalen Bildwinkel erfasst. Das leistet grundsätzlich ein Fisheye. Je nach Bildkreisdurchmesser unterscheidet man zwischen zirkularen, Portrait- oder Fullframe Fisheyes.
Mehr dazu hier

Im Folgenden beschreibe ich die Panorama-Generierung anhand von 8 Aufnahmen im Münchner Rathaus. Die JPGs sind unbearbeitet direkt aus der Kamera, aufgenommen mit einer Nikon D800 und dem f2,8/12mm Samyang Fullframe Fisheye am SLANT Panorama-Setup. Normalerweise entwickle ich die RAWs in Lightroom und lade diese als 8bit oder 16bit TIF in PTGUI, so wie ich das hier bereits beschrieben habe. Die JPGs verwende ich hier nur, weil ich diese auch zum Download bereitstelle und RAW-Dateien oder TIFFs dafür einfach zu groß wären. Sie können so alles nachvollziehen, auch ohne dass Sie einen SLANT besitzen.

Auswahl des Objektivs aus der DatenbankSofern PTGUI in den EXIF-Daten Kamera- und Objektivbezeichnung findet, werden die erforderlichen Daten automatisch aus der Kamera- und Objektivdatenbank in PTGUI 11 geladen. Ansonsten kann man Kameradaten und Objektiv auch mit einem Mausklick aus der Datenbank von PTGUI 11 auswählen. Danach ein Klick auf „Align images“ (PTGUI 11 spricht inzwischen auch deutsch, aber ich verwende seit 15 Jahren PTGUI mit der englischen Oberfläche und bleibe dabei) - und die Quellbilder werden richtig  gewölbt (mehr dazu unten) und ausgerichtet. Das Panorama wird dann auch gleich im Panorama-Editor in der equirectangularen Projektion angezeigt.
OptimizerDanach starte ich gleich den Optimizer, am besten, mit Häkchen in den Checkerboxen für „Link roll“ und „Link pitch“.  Wenn allerdings bei der Aufnahme die Mittelsäule des Stativs weit ausgezogen war, und/oder das Stativ auf einem weichen Untergrund stand, kurz gesagt: immer wenn die Stabilität der Kamerapositionierung nicht wirklich gewährleistet war, dann sollten beim 2. Optimizer-Lauf Pitch und Roll nicht mehr gelinkt sein.
Exposure/HDR Tab: DevignettierungNach der Optimierung gehe ich auf den Tab „Exposure / HDR“ um die Vignettierung zu kompensieren indem ich auf „Optimize now!“ klicke.

"Mogel-HDR"Sehr schön gelöst ist jetzt die rechts ausklappbare Seitenleiste im Panorama-Editor von PTGUI 11. Aktiviert man das „Tone mapping“ obwohl man gar keine Belichtungsreihe geladen hat, wartet PTGUI 11 mit einem sehr gelungenen „Mogel-HDR“ auf. Das geht tatsächlich auch mit den 8bit JPGs, aber natürlich mit 16bit Quellbildern weitaus besser.

Create PanoramaUnter dem Tab „Create Panorama“ finden sich die Einstellmöglichkeiten für den Blender und die Ausgabeformate wie bei den früheren PTGUI Versionen.
Mit einem Klick auf „100%“ und „Create Panorama“ wird das Panorama auf die native Größe gerendert. Diese beträgt bei dem Aufnahme-Setup ca. 16k Pixel/360°. Natürlich kann man das Panorama aus PTGUI heraus auf beliebige andere Größen rendern, z.B. auf Standardgrößen, die man sich definiert.

Soweit zu den wesentlichen Schritten, mit denen sich das voll sphärische Panorama in equirectangularer Projektion ganz einfach mit wenigen Mausklicks generieren lässt. 
Doch schauen wir uns noch einige Details genauer an.

Nadirstern in der EquiZunächst fällt der schwarze Rand unten in der equirectangularen Projektion auf. Das ist der Nadir, der Südpol des Kugelpanoramas. Der ist in dieser Projektion auf die gesamte Panoramabreite gedehnt.
Um diesen Bildbereich besser zu verstehen, ändern wir die Projektion auf eine Würfelprojektion und schauen auf die südliche Würfelfläche. Auch das geht jetzt in PTGUI ganz einfach: Mit einem Klick auf das kleine Dreieck neben dem Kugelsymbol in der Titelleiste des Panorama-Editors erscheint ein Menü mit einer Liste von Projektionen und darin ganz unten der Menüpunkt „Cube face“. Klick - und schon haben wir die Würfelprojektion im Editor-Fenster. Aber noch schaut man horizontal und nicht nach unten. Rechts in der ausgeklappten Seitenleiste gebe ich die Parameter für eine numerische Transformation ein: -90° Pitch und Apply und schon schaut man im Würfel-Panorama senkrecht nach unten. Auch hier hilft wieder die Vorstellung, dass man sich im Mittelpunkt des Panoramas befindet, jetzt halt nicht mehr im Mittelpunkt der Kugel sondern eines Würfels, auf dessen Flächen alles projiziert ist.

Nadir in der WürfelprojektionMan sieht in der Bildmitte einen schwarzen, 8-strahligen Stern, der die Basis des Panoramasystems überdeckt und die gespreizten Stativbeine. Dieser Nadirstern bedeutet, dass das Panorama im Süden nicht ganz geschlossen ist. Das kommt daher, daß der diagonale Bildwinkel der Kamera eben nicht ganz 180° beträgt, sondern nur ca. 176. Die Sensordiagonale ist etwas kleiner als der 180° Bildkreisdurchmesser des 12mm Samy. In der Praxis ist so ein Nadirstern kein Manko so lange er nicht zu groß geraten ist.
winziger Polarstern im ZenitSchauen wir uns dann den Zenit an indem wir erneut eine numerische Transformation machen und 180° für den Pitch eingeben. Der Blick, der bisher um -90° nach unten ging, wird dann um 180° nach oben gerichtet zur nördlichen Würfelfläche. Auch hier sehen wir einen sehr kleinen Stern, einen winzigen Polarstern im Zenit. Das Panorama ist auch im Zenit nicht vollständig geschlossen. Da fehlen ein paar Pixel, ein paar Zehntel Grad.
Bei der Aufnahme war die Kamera bereits leicht nach oben schielend montiert, aber das war nicht weit genug.
Spalte_PitchGehen wir zurück auf die equirectangulare Projektion: Mausklick auf das kleine Dreieck neben der Kugeldarstellung zeigt den Menüpunkt „Spherical: 360x180° Equirectangular“, und dann sicherheitshalber noch ein Klick auf das Icon zur Nivellierung in der Menüleiste des Editors. Dann gehen wir zurück auf die linke Tab-Leiste im Hauptfenster und wählen den Tab „Image Parameters“ aus.
In der Spalte „Pitch“ steht, um wieviel Grad die Kamera bei der Aufnahme nach oben geschielt hat: 1,59 Grad. Ein halbes Grad mehr wäre besser gewesen, dann wäre das Pano im Zenit sicher zu und der Nadirstern wäre einen Tick größer, was nicht stört weil da sowieso das Stativ steht.
Spalte_RollIn der nächsten Spalte stehen die Werte für den Roll: 33,9°. Das ist der Winkel, um den die Kamera am SLANT schräg steht.
Sollte es einmal vorkommen, dass PTGUI mangels geeigneter Kontrollpunkte die Quellbilder nicht automatisch ausrichten kann, dann kann man an genau dieser Stelle nachhelfen. 
Mit einem Klick auf den Spaltenkopf „Roll“ wird die gesamte Spalte blau unterlegt. Klickt man danach auf den oberen Wert und trägt dort 34 ein, wird dieser Wert 34 für alle Bilder übernommen. Genauso lässst sich in der Spalte Pitch alles auf null setzen. Wenn man dann das Alignment startet, lässt sich jede slanted Aufnahmeserie problemlos ausrichten.
Das ist manchmal bei PTGUI 11 notwendig, dann wenn der Kontrollpunktgenerator zu wenige Kontrollpunkte findet.

À propos Kontrollpunkte. Mit der Default-Einstellung in PTGUI sucht das Programm nur sehr wenige Kontrollpunkte. Ich habe die Einstellung unter „Preferences“ „Control Point Generator“ auf satte 200 pro Bildpaar limitiert. Entsprechend viele Kontrollpunkte findet der Generator mit dieser Einstellung.
Kontrollpunkte & redundanter BildbereichBetrachten wir uns die Lage dieser Kontrollpunkte unter dem Tab „Control Points“ in der linken Seitenleiste des Hauptfensters näher. Das Bild #4 z.B. bildet Kontrollpunktpaare mit den angrenzenden Bildern #3 und #5, aber auch noch mit den Bildern #2 und #6. Das liegt daran, daß im äquatorialen Bereich des Panoramas der Bildüberlapp sehr groß ist, über 200%. Zur Veranschaulichung habe ich den großen Bereich redundanter Bildinformation rot maskiert. Tatsächlich wird nur ein sehr schmaler, diagonaler Bereich jedes Quellbilds verwendet, um das gesamte Panorama darzustellen. Das sind 8, nennen wir es mal Schwarten, die am Äquator 45° breit sind und zum Pol hin spitz zulaufen. Ungefähr die gleiche Bildfläche wird zusätzlich gebraucht, um im redundanten Überlappbereich Kontrollpunkte zu setzen, der Rest ist redundant, aber trotzdem wertvoll, um die Parameter der Fisheye-Projektion in PTGUI 11 möglichst genau zu bestimmen.
Betrachten wir uns so eine "Schwarte" noch genauer.

45° breite SchwarteMan kann eine Grapefruit schälen, indem man 8 gleichgroße Schalensegmente schneidet, sozusagen entlang der Längenmeridiane der Frucht. Jedes dieser gewölbten Segmente (Kugelzweiecke, ja, die gibt's tatsächlich !) repräsentiert den Teil, der von jedem Quellbild zum Bildaufbau herangezogen wird. Das gestitchte Panorama wird in der equirectangularen Projektion mit 360°x180° auf einer ebenen Fläche im Format 2:1 dargestellt.
Wie kann man die 8 dreidimensional gewölbten Segmente der Grapefruit-Schale plan und flächendeckend auf eine ebene Fläche bringen ?   Richtig. Das geht nicht. 

diese Schwarte in der equirectangularen ProjektionWären aber die Segmente aus Gummi, könnte man sie beliebig dehnen. Am Äquator würden sich die Segmente ungedehnt berühren, die Spitzen aber, also der Nord- und Südpol müsste auf die gesamte Breite der rechteckigen Fläche gedehnt werden. Genau das macht die equirectangulare Projektion: Sie dehnt jedes Segment so weit, bis sich die Segmente entlang des Längengrades berühren. Das eine Pixel, das den Nordpol repräsentiert, ist auf jedem Kugelzweieck präsent. Es wird auf die gesamte Bildbreite gedehnt. Am Südpol geschieht das genauso. Deshalb erscheint der Nadirstern und auch der winzige Polarstern im Zenit in der equirectangularen Projektion als schwarzer Streifen über die gesamte Breite des Panoramas. Aber nur so lässt sich das Kugelpanorama plan und flächendeckend auf einem Monitor darstellen.
In dieser Darstellung ist dann jedes der 8 (gewölbten) Kugelzweiecke zu einem ebenen Rechteck mit 45° Breite und 180° Höhe gedehnt. Man nennt die equirectangulare Projektion daher auch Kugelabwicklung
In den beiden letzten Bildern hier habe ich das modellmäßig dargestellt.
Mehr zu Projektionen lesen Sie hier.

Tatsächlich ist dieses modellmäßige Verständnis nicht notwendig, um mit dem SLANT aufgenommene Panoramen fehlerfrei stitchen zu können. Das geht mit PTGUI 11 in der Regel auf Mausklick. 

 

Hier können Sie die im Beispiel-Workflow verwendete slanted Aufnahmenserie (JPGs direkt aus der Kamera) herunterladen und damit den Workflow selbst nachvollziehen. 

AnhangGröße
Image icon Bild #113.59 MB
Image icon Bild #213.1 MB
Image icon Bild #313.27 MB
Image icon Bild #413.93 MB
Image icon Bild #514.46 MB
Image icon Bild #614.96 MB
Image icon Bild #714.64 MB
Image icon Bild #814.69 MB

Kommentare

Hallo Herr Hopf,

Tiefe Einblicke in den Workflow von PTGUI 11 - ein Genuß - das Warten hat sich gelohnt.
Frage: Hat PTGUI 11 auch das "Samy f2,8/8mm Version II" in der Datenbank hinterlegt ?

LG aus dem Zillertal !
Alfred

... na klar !
Und wenn dem nicht so wäre: Es ist ganz einfach, PTGUI 11 den Fisheye-Faktor für ein neues Fisheye berechnen zu lassen. Man braucht nur einen Satz von richtig aufgenommenen Quellbildern mit reichlich Überlapp und vielen Kontrollpunkten. Im Optimizer setzt man dann das Häkchen beim Fisheye-Faktor und lässt die Optimierung laufen. Den so ermittelten F-Faktor und die Verzeichnungsparameter kann man dann selbst in der Objektivdatenbank abspeichern. 

 

Neuen Kommentar schreiben