HORAMA

Ghosting bei Gaussian Splatting mit 360°-Kameras: Ursachen und Lösung

Ein Kellerregal mit Wäschewagen nah vor der Kamera, als Gaussian Splat aus einer 360°-Aufnahme

Ghosting nennt man doppelte Kanten, Schlieren und halbdurchsichtige Geisterbilder in einem 3D-Modell. Bei Aufnahmen mit einer 360°-Kamera entsteht es vor allem an der Naht zwischen den zwei Linsen, also an der Stelle, an der die Kamera die Bilder ihrer beiden Linsen zu einem Rundum-Bild zusammensetzt. Die beiden Linsen sitzen einige Zentimeter auseinander, das zusammengesetzte Panorama tut aber so, als säßen sie an einem einzigen Punkt. Nahe Gegenstände erscheinen deshalb zweimal.

Die Lösung ist, nicht mit dem fertigen Panorama zu rechnen, sondern mit den Rohbildern beider Linsen, also den zwei kreisrunden Einzelbildern vor dem Zusammensetzen. Dazu kommt, jede Linse einzeln zu kalibrieren, also genau zu bestimmen, wie sie das Bild verzerrt, und beim Berechnen der Kamerapositionen beide Linsen mit ihrem eigenen Standort zu berücksichtigen. Das betrifft nur 360°-Kameras mit zwei Linsen. Bei einem Handy oder einer normalen Kamera gibt es keine Naht. In einem Testscan sank der Fehler am Bildrand dadurch von 6,4 auf 1,3 Pixel.

Was Ghosting ist

Gaussian Splatting berechnet ein 3D-Modell, indem es versucht, jedes Foto der Aufnahme möglichst genau nachzubilden (wie das funktioniert, erklärt Gaussian Splatting erklärt). Das klappt nur, wenn alle Fotos zueinander passen. Zeigt ein Bild eine Tischkante ein paar Pixel weiter links als ein anderes Bild, kann das Modell nicht beide gleichzeitig erfüllen. Es setzt dann an beiden Stellen halbdurchsichtige Farbflecken, und die Kante erscheint doppelt oder verschwommen.

Im fertigen Rundgang sieht man Ghosting typischerweise als doppelte oder weiche Kanten an Türrahmen, Regalen und Stuhlbeinen, als Schlieren, die beim Gehen mitwandern, und als schwebende Flecken in der Luft. Am stärksten betroffen sind Gegenstände, die bei der Aufnahme nah an der Kamera waren. Gerade die sieht man im Rundgang aber oft aus der Nähe. Ghosting ist nur eine von mehreren Ursachen für unscharfe Modelle, die anderen sammelt Unscharfe Gaussian Splats: Ursachen.

Ursache 1: Die Naht zwischen den beiden Linsen

Eine 360°-Kamera hat zwei Fischaugenlinsen, also extreme Weitwinkellinsen mit einem kreisrunden Bild, die in entgegengesetzte Richtungen schauen. Jede sieht etwas mehr als eine halbe Kugel. Die Kamera setzt die Bilder beider Linsen zu einem einzigen Rundum-Panorama zusammen, und dafür nimmt sie an, dass beide Bilder von demselben Punkt aus aufgenommen wurden.

In Wirklichkeit sitzen die optischen Zentren der beiden Linsen aber hintereinander, mit einigen Zentimetern Abstand. Das optische Zentrum ist der Punkt in einer Linse, von dem aus sie die Welt sieht, vergleichbar mit der Pupille eines Auges. Bei der Kamera, die wir verwenden, haben wir diesen Abstand nachgemessen: Er beträgt 32,2 Millimeter.

Panorama mit einer Mitte zweimal im Bild Linse 1 Linse 2 ≈ 3 cm Zwei Linsen, zwei Zentren eine scharfe Kante Linse 1 Linse 2 32,2 mm, gemessen
Von oben gesehen, nicht maßstäblich. Rechnet das Panorama mit einer gemeinsamen Mitte, trägt es die Richtung, in der jede Linse den Gegenstand sieht, vom falschen Punkt aus ab, und der Gegenstand landet zweimal im Bild. Wird jede Linse mit ihrem eigenen Zentrum gerechnet, treffen sich die Strahlen dort, wo der Gegenstand wirklich steht.

Bei weit entfernten Wänden spielen drei Zentimeter keine Rolle, weil beide Linsen sie aus fast derselben Richtung sehen. Bei einer Tischkante einen halben Meter neben der Kamera ist das anders: Hier sehen die beiden Linsen die Kante aus spürbar verschiedenen Richtungen. Kein Panorama kann diese Naht für alle Entfernungen gleichzeitig richtig zusammensetzen. Für nahe Gegenstände passt sie deshalb nie ganz.

Ursache 2: Die Verzerrung der Linse

Fischaugenlinsen sehen einen sehr großen Bereich, bei der Insta360 X6 rund 95 Grad zu jeder Seite der Linsenachse, der gedachten Linie, entlang der die Linse geradeaus schaut, also etwas mehr als eine halbe Kugel. Dafür verzerren sie das Bild stark, und am Rand am meisten. Um aus einem Bildpunkt die Richtung zu berechnen, aus der das Licht kam, muss die Software diese Verzerrung genau kennen. Sonst rechnet sie jeden Punkt in eine leicht falsche Richtung um. Der Fehler wächst zum Bildrand hin, also genau dort, wo auch die Naht liegt.

Dazu kommt eine Grenze der üblichen Werkzeuge. COLMAP, das am weitesten verbreitete Programm zur Berechnung von Kamerapositionen, kann Fischaugenbilder nur bis 90 Grad zur Linsenachse verarbeiten. Der äußerste Ring jeder Linse fällt damit aus der Berechnung heraus.

Ursache 3: Ein Zentrum für zwei Linsen

Auch die Kamerapositionen selbst können Ghosting verursachen. Viele Verfahren behandeln eine 360°-Kamera so, als hätte sie nur ein Zentrum in der Mitte zwischen den Linsen. Weil jede Linse ihre Bilder aber von einem etwas anderen Punkt aus aufnimmt, ist jede berechnete Position ein Kompromiss zwischen beiden. In unserem Testscan streuten die Positionen dadurch um etwa 8 Millimeter. Bei Gegenständen, die nah an der Kamera stehen, reicht das schon für doppelte Kanten, selbst wenn die Linsen perfekt vermessen sind.

Wie man Ghosting bei 360°-Aufnahmen behebt

  1. Mit den Rohbildern rechnen statt mit dem Panorama. Die Kamera speichert die Bilder beider Linsen auch einzeln. Rechnet man mit diesen Rohbildern, gibt es keine Naht, die falsch zusammengesetzt sein könnte. Das Training muss dafür allerdings mit dem Fischaugenmodell umgehen können, also mit einer Beschreibung, wie eine Fischaugenlinse das Bild verzerrt. Nicht jedes Programm kann das. Welche Kameras sich überhaupt eignen, vergleicht Kamera für Gaussian Splatting.
  2. Jede Linse einzeln kalibrieren. Kalibrieren heißt, genau zu bestimmen, wie die Linse abbildet. Dazu gehören die Brennweite, die angibt, wie stark die Linse vergrößert, die Bildmitte, also der Punkt im Bild, auf den die Linse genau geradeaus schaut, und vier Werte für die Verzerrung. Diese Werte lassen sich aus der Aufnahme selbst bestimmen, für jede Linse getrennt, ohne besondere Testtafel. Das lohnt sich, denn die beiden Linsen sind nicht identisch: In unserem Fall unterschied sich die Brennweite um 0,5 Prozent und die Bildmitte um rund 5 Pixel. Außerdem stehen die beiden Linsenachsen nicht genau gegenüber, sondern im Winkel von 179,78 Grad.
  3. Auch den Bildrand nutzen. Weil COLMAP am Rand aufhört, verwenden wir ein eigenes Ausgleichsverfahren, eine sogenannte Bündelausgleichung. Sie verschiebt Kamerapositionen und Linsenwerte gemeinsam in vielen kleinen Schritten, bis alle Bildpunkte so gut wie möglich zueinander passen. Unser Verfahren nutzt dabei Bildpunkte bis in den äußersten Ring und vergleicht dafür im Bereich der Naht die beiden Linsen direkt miteinander.
  4. Die Positionen mit zwei Zentren nachrechnen. Statt eines gemeinsamen Zentrums bekommt jede Linse ihr eigenes, gemessenes Zentrum, und alle Kamerapositionen werden damit neu berechnet.
  5. Erst prüfen, dann trainieren. Die Vermessung wird an Aufnahmen getestet, die für die Berechnung nicht verwendet wurden. Erst wenn der Fehler dort klein genug ist, beginnt das Training.

Die Ergebnisse in Zahlen

Die folgenden Werte stammen aus einem Testscan im Oktober 2026 und wurden an 54 Aufnahmezeitpunkten gemessen, die für die Berechnung bewusst zurückgehalten wurden. Angegeben ist der sogenannte Reprojektionsfehler. Er beschreibt, wie weit ein berechneter Punkt im Bild von der Stelle entfernt liegt, an der er tatsächlich zu sehen ist. Die Tabelle zeigt jeweils den Median, also den Wert in der Mitte, wenn man alle Messungen der Größe nach ordnet. Ein Pixel entspricht bei diesen Linsen etwa 0,06 Grad, kleinere Werte sind also besser.

Bildbereichvorher (Median)nachher (Median)
Bildmitte, bis 60° zur Linsenachse1,8 px1,4 px
Bildrand, 85 bis 90°6,4 px1,3 px
Äußerster Ring, über 90°18,5 px1,5 px
Gegenstände näher als 0,6 m3,4 px1,5 px

Besonders deutlich ist der Unterschied bei den ungünstigsten Fällen: Bei den schlechtesten zehn Prozent der nahen Gegenstände sank der Fehler von 21,7 auf 5,2 Pixel. Die gleichbleibende Abweichung an der Naht, also der Winkel, um den die beiden Bildhälften dort im Mittel gegeneinander verschoben waren, ging von 2,53 auf 0,08 Grad zurück.

Im Rundgang bedeutet das: Kanten an Möbeln, Türrahmen und Regalen, die nah am Laufweg stehen, bleiben einfach und scharf. Und der Rand jeder Linse wird nutzbar, statt Schlieren zu erzeugen.

Häufige Fragen

Was ist Ghosting bei Gaussian Splatting?

Doppelte Kanten, Schlieren und halbdurchsichtige Geisterbilder in einem Splat-Modell. Sie entstehen, wenn die Aufnahmen nicht genau zueinander passen und das Modell dieselbe Kante deshalb an zwei Stellen nachbildet.

Warum zeigen 360°-Aufnahmen besonders oft doppelte Kanten?

Weil die beiden Linsen einer 360°-Kamera einige Zentimeter auseinander sitzen, das zusammengesetzte Panorama aber so tut, als lägen sie an einem Punkt. Bei nahen Gegenständen passt die Naht dadurch nie ganz, und der Gegenstand erscheint zweimal.

Reicht das Kalibrierprofil des Kameraherstellers nicht aus?

Für Panoramafotos ja. Das Kalibrierprofil ist ein Satz Linsenwerte, den der Hersteller für alle Kameras eines Modells mitliefert. Für Gaussian Splatting zählt aber jedes Pixel bis an den Bildrand, und jede einzelne Kamera weicht etwas vom Profil ab. Bei unserer Kamera unterschieden sich die beiden Linsen messbar voneinander. Eine gemeinsame Einstellung für beide wäre falsch gewesen.

Muss jede Kamera neu kalibriert werden?

Die gemessenen Werte gelten für eine Kamera, solange an ihr nichts verändert wird. Es ist trotzdem sinnvoll, sie bei jeder Aufnahme an zurückgehaltenen Bildern zu prüfen. Fällt die Prüfung schlecht aus, wird neu vermessen, bevor gerechnet wird.

Jann Allenberger ist Gründer von Horama in Heddesheim. Er erstellt mit Gaussian Splatting begehbare 3D-Rundgänge für Makler in der Metropolregion Rhein-Neckar.

Weiterlesen