HORAMA

Was ist Gaussian Splatting? So entsteht ein begehbarer 3D-Rundgang

Ein Kellerraum mit Regal, Waschmaschine und Körben als Gaussian Splat

Gaussian Splatting ist ein Verfahren, das aus vielen Fotos oder einem Video ein fotorealistisches 3D-Modell berechnet. Das Modell besteht aus Millionen kleiner, weicher, farbiger Flecken, die im Raum verteilt sind. Diese Flecken heißen Splats. Jeder hat eine Position, eine Form, eine Ausrichtung, eine Deckkraft und eine Farbe, die sich mit dem Blickwinkel ändert.

Zusammen ergeben die Splats aus jeder Richtung ein Bild, das wie ein Foto aussieht, und das schnell genug, um sich im Browser frei durch eine Wohnung zu bewegen. Wie gut das Ergebnis wird, entscheidet sich zu einem großen Teil vor und nach der eigentlichen Berechnung: bei der Aufnahme, beim Kalibrieren der Kamera, also dem genauen Bestimmen, wie ihre Linsen das Bild verzerren, und beim Aufräumen des fertigen Modells.

Was ein Splat ist

Die meisten 3D-Modelle, etwa in Computerspielen, bestehen aus vielen kleinen Dreiecken, auf die Fotos geklebt werden. Für glatte Flächen wie Wände und Tischplatten funktioniert das gut. Bei Pflanzen, Stoffen, Glas oder Licht, das durch ein Fenster fällt, sieht so ein Modell aber schnell künstlich aus.

Gaussian Splatting verzichtet auf Dreiecke. Stattdessen besteht die Szene aus Millionen weicher Farbflecken, die frei im Raum schweben. Jeder Fleck hat die Form eines Ellipsoids, also einer Kugel, die man in die Länge ziehen oder flach drücken kann, und sein Rand läuft weich aus. Mathematisch beschreibt man diese Form mit einer Gauß-Verteilung, daher kommt der Name.

Ein einzelner Splat speichert:

  • seine Position, also wo im Raum er sitzt,
  • seine Form und Ausrichtung, also ob er rund, flach oder lang gezogen ist und wie er im Raum liegt,
  • seine Deckkraft, also wie durchsichtig er ist,
  • seine Farbe je nach Blickrichtung. Dafür nutzt das Verfahren sogenannte Kugelflächenfunktionen. Sie sorgen dafür, dass etwa ein Glanzlicht auf dem Parkett mitwandert, wenn man sich bewegt.

Um ein Bild zu zeichnen, werden alle sichtbaren Splats auf den Bildschirm projiziert, nach ihrer Entfernung sortiert und von vorne nach hinten übereinandergelegt. Eine Grafikkarte schafft das viele Male pro Sekunde, deshalb wirkt die Bewegung flüssig.

Wie das Modell lernt

Gaussian Splatting wurde 2023 an der französischen Forschungseinrichtung Inria vorgestellt (Projektseite). Die Berechnung eines Modells nennt man Training, und sie läuft in einer Schleife ab:

  1. Am Anfang stehen eine grobe Punktwolke der Räume, also einige zehntausend Punkte, die die Form der Wohnung grob nachzeichnen, und das Wissen, wo die Kamera bei jedem Bild stand.
  2. Der Computer berechnet ein Bild aus genau der Position, an der eines der echten Fotos entstanden ist.
  3. Er vergleicht sein Bild mit dem Foto. Für jeden Splat, der zu dem Bild beiträgt, rechnet er aus, wie er verschoben, gedreht, gefärbt oder vergrößert werden müsste, damit der Unterschied kleiner wird, und ändert ihn ein kleines Stück in diese Richtung.
  4. Wo Details fehlen, teilt er Splats in kleinere auf oder legt neue an. Diesen Schritt nennt man Verdichtung. Splats, die fast unsichtbar geworden sind, werden gelöscht.

Diese Schleife läuft zehntausende Male, mit immer anderen Fotos, auf einer leistungsstarken Grafikkarte in einem Rechenzentrum. Am Ende stehen mehrere Millionen Splats, die jedes Foto möglichst genau nachbilden und die Lücken zwischen den Fotos glaubwürdig füllen.

Daraus folgt der wichtigste Grundsatz des ganzen Verfahrens: Das Modell kann nur so gut werden, wie die Bilder und Kamerapositionen zueinander passen. Zeigen zwei Aufnahmen dieselbe Kante an Stellen, die ein paar Pixel auseinanderliegen, kann das Modell nicht beide erfüllen. Es legt dann an beiden Stellen halbdurchsichtige Splats an. Im fertigen Rundgang sieht man das als doppelte Kanten, Schlieren oder schwebende Flecken, die man Floater nennt. Die häufigsten Ursachen dafür sammelt Unscharfe Gaussian Splats: Ursachen.

Die Schritte vom Video zum Rundgang

Die eigentliche Berechnung ist nur ein Teil der Arbeit. Bei Horama besteht der ganze Weg aus neun Schritten. Zwei davon, das Kalibrieren der Linsen und das Ausblenden der Person hinter der Kamera, sind nur nötig, weil wir mit einer 360°-Kamera arbeiten. Mit einem Handy oder einer normalen Kamera entfallen sie. Welche Schritte man bei einer eigenen Aufnahme braucht und mit welchen Programmen, steht in Gaussian Splatting selbst machen.

1. Aufnahme

Die Wohnung wird mit einer 360°-Kamera in 8K abgefilmt, in einem Durchgang und auf drei Höhen: einmal über Kopfhöhe, einmal auf Brusthöhe und einmal knapp über dem Boden. So sieht das Training jede Stelle aus vielen Richtungen. Aus der Aufnahme entstehen danach Einzelbilder, für jede der beiden Linsen getrennt, und mit diesen Einzelbildern rechnen alle weiteren Schritte. Belichtung, Weißabgleich und Verschlusszeit sind fest eingestellt, und die Verschlusszeit ist kurz, damit die Einzelbilder beim Gehen nicht verwischen. Spiegel werden vorher abgehängt, weil das Modell eine Spiegelung für einen echten Raum hält. Welche Kamera sich wofür eignet, steht in Welche Kamera für Gaussian Splatting?.

2. Farbe

Die Kamera nimmt in einem flachen Farbprofil auf, einem sogenannten Log-Profil. Es hält helle Fenster und dunkle Ecken gleichzeitig fest, sieht aber blass aus. Eine feste Farbtabelle des Herstellers, eine sogenannte LUT, und danach eine Farbkorrektur für das jeweilige Objekt machen daraus natürliche Farben. Nicht jede Kamera bietet ein Log-Profil. Ohne fällt dieser Schritt deutlich kleiner aus, die Farben müssen dann aber ebenfalls für alle Bilder gleich bleiben. Wichtig ist, dass diese Korrektur für alle Bilder genau gleich ist. Farbsprünge zwischen Bildern würde das Training sonst als Widerspruch lesen.

3. Kamerapositionen

Bevor das Modell lernen kann, muss der Computer für jedes Bild wissen, wo die Kamera stand und wohin sie zeigte. Das berechnet ein Verfahren namens Structure from Motion. Es sucht in den Bildern tausende markante Punkte, verfolgt sie über viele Bilder hinweg und rechnet daraus die Kamerapositionen und eine erste grobe Punktwolke zurück.

Bevor teure Rechenzeit startet, prüfen automatische Tests dieses Ergebnis. Mindestens 95 % der Bilder müssen eine Position haben, und der sogenannte Reprojektionsfehler muss im Mittel unter 1,5 Pixeln liegen. Er gibt an, wie weit ein berechneter Punkt neben der Stelle landet, an der er im Foto wirklich zu sehen ist. Außerdem wird die Lage im Raum mit dem Lagesensor der Kamera abgeglichen, der wie bei einem Handy die Schwerkraft misst. Fällt einer dieser Tests durch, wird nicht weitergerechnet.

4. Linsen kalibrieren (nur bei 360°-Kameras)

Kalibrieren heißt: genau bestimmen, wie eine Linse das Bild verzerrt. Jede Linse bildet gerade Linien etwas krumm ab, Fischaugenlinsen besonders stark. Bei einem Handy oder einer normalen Kamera bestimmt die Software das im vorigen Schritt nebenbei mit, ein eigener Schritt ist dort nicht nötig.

Eine 360°-Kamera hat dagegen zwei Fischaugenlinsen, die Rücken an Rücken sitzen. Jede verzerrt das Bild auf ihre eigene Art, und die beiden sitzen einige Zentimeter auseinander. Deshalb bestimmen wir für jede Linse einzeln die Verzerrung und messen den Abstand zwischen beiden, statt uns auf das Profil des Herstellers zu verlassen. Das ist der größte Hebel gegen doppelte Kanten. Ausführlich erklärt das Ghosting bei 360°-Aufnahmen.

5. Die Person hinter der Kamera ausblenden (nur bei 360°-Kameras)

Bei einer 360°-Kamera ist die Person, die sie trägt, in jedem Bild zu sehen. Mit einem Handy oder einer normalen Kamera steht man hinter der Kamera, dort entfällt dieser Schritt. Bei der 360°-Kamera wird die Person in zwei Schritten entfernt. Zuerst markiert eine Bilderkennung die Person in jedem Bild und vergrößert die Markierung etwas, damit auch Haare und Ränder erfasst sind. Dazu kommt ein fester Bereich um den Stab, an dem die Kamera getragen wird. Solche Markierungen heißen Masken, und markierte Stellen zählen beim Training nicht. Im zweiten Schritt wird der Laufweg ausgewertet: Wo die Person gegangen ist, kann kein Möbelstück stehen. Alles, was in diesem Bereich übrig geblieben ist, etwa Schatten oder Reste der Kleidung, wird gelöscht.

6. Training mit Prüfung

Dann läuft das eigentliche Training. Eine gängige Kennzahl für die Qualität heißt PSNR. Sie misst, wie stark sich das berechnete Bild im Durchschnitt aller Pixel vom Foto unterscheidet. Ein guter Wert ist aber kein Beweis für ein scharfes Bild, weil unscharfe Kanten in diesem Durchschnitt untergehen. Deshalb prüft ein automatischer Test zusätzlich, ob das Modell im Training deutlich gewachsen ist. Bleibt es klein oder verteilen sich Splats weit außerhalb der Wohnung, wird abgebrochen. Außerdem werden Ausschnitte des berechneten Bildes in voller Größe neben die Originalfotos gelegt und verglichen.

7. Aufräumen (Cleanup)

Ein frisch trainiertes Modell ist nie sauber, egal mit welcher Kamera aufgenommen wurde. Das Training legt überall Splats an, wo sie irgendein Foto etwas besser erklären, auch dort, wo in Wirklichkeit nichts ist. Typisch sind Floater, also Flecken, die frei in der Luft schweben, einzelne riesige Splats, die als zarter Schleier vor allem liegen, und Reste außerhalb der Wohnung, etwa hinter den Wänden oder vor den Fenstern. Bei einer 360°-Kamera kommen Reste der Person dazu, zum Beispiel ein Schatten entlang des Laufwegs.

Aufgeräumt wird in zwei Durchgängen. Zuerst entfernen automatische Filter Splats nach festen Regeln: sehr große Splats, Splats, in deren Umgebung fast nichts anderes liegt, und Splats unter dem Boden oder über der Decke. Danach wird das Modell von allen Seiten angesehen, und was übrig ist, wird von Hand in einem Editor ausgewählt und gelöscht. Wichtig ist, nicht zu viel zu löschen, denn dünne Dinge wie Stuhlbeine, Pflanzen oder Glas sehen für einen Filter ähnlich aus wie Floater. Ausführlich mit Bildern steht das in Gaussian Splatting selbst machen.

8. Ausrichten und begehbar machen

Das Modell wird nach der Schwerkraft ausgerichtet, also so gedreht, dass der Boden waagerecht liegt, und über eine bekannte Länge wie die Raumhöhe auf echte Maße gebracht. Erst dann stimmen Augenhöhe, Türen und Möbel. Aus dem Modell entsteht außerdem eine Karte der Hindernisse, eine Art unsichtbare Grundriss-Sperre. Sie sorgt dafür, dass man im Rundgang nicht durch Wände und Möbel gehen kann.

9. Komprimieren und ausliefern

Die Rohdatei eines solchen Modells ist mehrere hundert Megabyte groß. Damit sie im Browser und auf dem Handy läuft, wird sie komprimiert und in mehrere Detailstufen aufgeteilt. Der Browser lädt zuerst eine grobe Fassung und danach die Bereiche in voller Schärfe, die man gerade sieht. Wie das funktioniert, steht in Gaussian Splatting im Browser.

Was Gaussian Splatting nicht kann

  • Es zeigt nur, was aufgenommen wurde. Hinter einem Schrank, den keine Aufnahme gesehen hat, kann auch das Modell nichts Sinnvolles zeigen. Deshalb wird auf drei Höhen gefilmt.
  • Spiegel und große Glasflächen sind schwierig. Das Modell hält eine Spiegelung für einen echten Raum und baut sie hinter die Wand.
  • Es ersetzt kein Aufmaß. Die Größen im Modell stimmen gut genug, um sich zu bewegen und Räume einzuschätzen. Für exakte Maße, etwa für Planungen, ist ein Laserscanner oder ein Aufmaß vor Ort nötig.

Häufige Fragen

Was bedeutet Gaussian Splatting?

Ein Verfahren, das eine Szene aus Millionen kleiner, weicher Farbflecken zusammensetzt. Die Flecken heißen Splats, und ihre Form wird mathematisch mit einer Gauß-Verteilung beschrieben. Jeder hat eine Position, eine Form, eine Ausrichtung, eine Deckkraft und eine Farbe, die sich mit dem Blickwinkel ändert. Der Computer lernt diese Flecken aus Fotos oder einem Video und kann die Szene danach fotorealistisch aus jeder Richtung zeigen.

Ist Gaussian Splatting dasselbe wie NeRF?

Beide Verfahren lernen eine Szene aus Fotos. NeRF speichert die Szene in einem neuronalen Netz, das für jeden Bildpunkt aufwendig abgefragt werden muss. Gaussian Splatting speichert die Szene dagegen direkt als Splats, die sich sehr schnell zeichnen lassen. Deshalb läuft es in Echtzeit im Browser und auf dem Handy.

Welche Kamera braucht man für Gaussian Splatting?

Im Prinzip reicht jede Kamera, die genug scharfe Bilder aus genug Richtungen liefert und sich manuell einstellen lässt. Für ganze Wohnungen eignet sich eine 360°-Kamera besonders, weil sie in jedem Moment alle Richtungen erfasst. Mehr dazu steht in Welche Kamera für Gaussian Splatting?.

Welche Software braucht man für Gaussian Splatting?

Für die Kamerapositionen wird häufig COLMAP verwendet, ein freies Programm für Structure from Motion. Das Training übernehmen frei verfügbare Programme wie gsplat oder LichtFeld Studio, die eine Nvidia-Grafikkarte voraussetzen. Zum Ansehen gibt es Viewer, also kleine Programme, die das Modell in einer Website zeigen. Zum Aufräumen, also zum Auswählen und Löschen von Fehlstellen, gibt es Editoren wie SuperSplat, der kostenlos im Browser läuft. Wer keine eigene Grafikkarte hat, mietet sie stundenweise in einem Rechenzentrum.

Wie lange dauert die Berechnung?

Das Training selbst dauert einige Stunden auf einer gemieteten Grafikkarte. Zusammen mit Prüfung und Aufbereitung ist ein Rundgang bei Horama 7 Tage nach der Aufnahme fertig, als Express in 72 Stunden.

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