HORAMA

Gaussian Splatting selbst machen: alle Schritte vom Video zum fertigen Modell

Ein Kellerraum mit Regalen und Weinregal als Gaussian Splat, aufgenommen mit einer 360°-Kamera

Wer selbst einen Gaussian Splat erstellen will, braucht vier Dinge: eine Kamera, eine Software für die Kamerapositionen, eine Software für das Training mit einer passenden Grafikkarte und einen Editor zum Aufräumen. Dazwischen liegen neun Schritte, von der Aufnahme bis zur Veröffentlichung.

Sieben dieser Schritte sind bei jeder Kamera gleich. Zwei kommen nur bei 360°-Kameras dazu: das Kalibrieren der beiden Linsen und das Ausblenden der Person, die die Kamera trägt. Ein Schritt wird oft unterschätzt, obwohl er bei jeder Kamera nötig ist: das Aufräumen des fertigen Modells, auf Englisch Cleanup.

Die Schritte im Überblick

SchrittWann nötigTypische Software
1. AufnehmenimmerKamera, Smartphone
2. Einzelbilder gewinnenimmerVideoprogramm, FFmpeg, Kamera-App
3. Farben angleichenbei flachem Farbprofil (Log)Farbkorrektur, z. B. DaVinci Resolve
4. Kamerapositionen berechnenimmerCOLMAP, GLOMAP
5. Linsen kalibrierenals eigener Schritt nur bei 360°-KamerasKalibrier-Werkzeuge, eigene Skripte
6. Person ausblendennur bei 360°-KamerasBilderkennung für Masken
7. TrainingimmerLichtFeld Studio, gsplat, Postshot
8. Aufräumen (Cleanup)immerSuperSplat, Filter-Skripte
9. Ausrichten, komprimieren, veröffentlichenimmerSuperSplat, splat-transform, ein Viewer

Wer diese Kette nicht selbst bauen möchte, kann für kleine Szenen auch eine Handy-App wie Polycam oder Scaniverse nutzen. Sie erledigen alle Schritte automatisch, auf dem Gerät oder in der Cloud. Für eine ganze Wohnung stoßen sie aber schnell an Grenzen, weil man weder die Aufnahme noch das Aufräumen genau steuern kann.

1. Aufnehmen

Das Modell kann nur zeigen, was in den Bildern zu sehen war, und es wird nur so scharf, wie die Bilder zueinander passen. Deshalb entscheidet die Aufnahme mehr als jeder spätere Schritt. Die wichtigsten Regeln gelten für jede Kamera:

  • Jede Stelle aus vielen Richtungen. Langsam gehen und auf mehreren Höhen filmen, zum Beispiel über Kopf, auf Brusthöhe und knapp über dem Boden.
  • Scharfe Einzelbilder. Die Verschlusszeit, also die Zeit, in der der Sensor für ein Bild belichtet wird, muss kurz sein, etwa 1/250 Sekunde. Sonst verwischt jedes Bild beim Gehen.
  • Feste Einstellungen. Belichtung und Weißabgleich dürfen sich während der Aufnahme nicht ändern. Sonst hat dieselbe Wand in jedem Bild eine andere Helligkeit oder Farbe, und das Modell wird fleckig.
  • Nichts bewegt sich. Keine Personen, keine Haustiere, keine Türen, die zwischendurch auf- und zugehen.

Welche Kamera sich wofür eignet und wie man sie einstellt, steht in Welche Kamera für Gaussian Splatting?.

2. Einzelbilder gewinnen

Die Programme für Gaussian Splatting arbeiten nicht mit einem Video, sondern mit einzelnen Fotos. Aus einem Video zieht man deshalb Einzelbilder heraus, zum Beispiel zwei pro Sekunde mit dem freien Programm FFmpeg. Mehr Bilder bringen wenig, wenn die Kamera zwischen zwei Bildern kaum weitergekommen ist, sie verlängern nur die Rechenzeit. Verwackelte oder verwischte Bilder sortiert man vorher aus.

Viele 360°-Kameras können statt eines Videos auch direkt Einzelbilder in festen Abständen speichern, zum Beispiel alle halbe Sekunde. Das nennen die Hersteller Zeitraffer oder Intervallaufnahme. Wichtig ist dabei, die sogenannten Rohbilder zu verwenden: die zwei kreisrunden Bilder, die jede der beiden Linsen für sich aufnimmt, und nicht das Rundum-Panorama, das die Kamera daraus zusammensetzt. Warum das einen großen Unterschied macht, erklärt Ghosting bei 360°-Aufnahmen.

3. Farben angleichen

Dieser Schritt ist nur nötig, wenn mit einem flachen Farbprofil aufgenommen wurde, einem sogenannten Log-Profil. Viele 360°-Kameras und Actioncams bieten es an, die normale Kamera-App eines Handys meist nicht. Ein Log-Profil hält helle Fenster und dunkle Ecken gleichzeitig fest, die Bilder sehen dafür blass aus. Mit einer Farbtabelle des Herstellers, einer sogenannten LUT, und einer Farbkorrektur werden daraus natürliche Farben.

Entscheidend ist, dass alle Bilder genau gleich behandelt werden. Wer jedes Bild einzeln korrigiert oder eine automatische Korrektur verwendet, erzeugt Farbsprünge zwischen den Bildern, die das Training später als Widerspruch liest.

4. Kamerapositionen berechnen

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, meist mit dem freien Programm COLMAP oder dem schnelleren GLOMAP aus demselben Umfeld. Die Software sucht in den Bildern markante Punkte, etwa Ecken und Muster, findet dieselben Punkte in anderen Bildern wieder und rechnet daraus zurück, wo die Kamera jeweils gewesen sein muss. Nebenbei entsteht eine grobe Punktwolke: einige zehntausend Punkte im Raum, die die Form der Wohnung grob nachzeichnen und mit denen das Training startet.

Zwei Werte zeigen, ob dieser Schritt gelungen ist:

  • Wie viele Bilder eine Position bekommen haben. Fehlen viele, hat die Software einen Teil der Aufnahme nicht einordnen können, oft an Türen oder in Räumen mit wenig Struktur. Diese Bereiche fehlen später im Modell oder liegen schief.
  • Der Reprojektionsfehler. Er gibt an, wie viele Pixel ein berechneter Punkt im Mittel neben der Stelle landet, an der er im Foto wirklich zu sehen ist. Werte um 1 Pixel sind gut. Liegt er deutlich darüber, wird das Modell unscharf.

COLMAP zeigt beide Werte nach der Berechnung an, zum Beispiel mit dem Befehl model_analyzer.

5. Linsen kalibrieren (nur bei 360°-Kameras als eigener Schritt)

Kalibrieren heißt hier: genau bestimmen, wie eine Linse das Bild verzerrt. Jede Linse bildet gerade Linien ein wenig krumm ab, Weitwinkel- und Fischaugenlinsen besonders stark und am Bildrand am meisten. Nur wenn die Software diese Verzerrung kennt, kann sie jeden Bildpunkt in die richtige Richtung zurückrechnen.

Bei einem Handy oder einer normalen Kamera ist dafür kein eigener Schritt nötig. COLMAP bestimmt die Verzerrung bei der Berechnung der Kamerapositionen gleich mit, und das reicht in der Regel aus.

Bei einer 360°-Kamera ist es anders. Sie hat zwei Fischaugenlinsen, die Rücken an Rücken sitzen und einige Zentimeter voneinander entfernt sind. Jede Linse verzerrt etwas anders, und die üblichen Programme können den äußeren Rand eines Fischaugenbildes nicht verarbeiten. Deshalb bestimmt man für jede Linse einzeln die Brennweite, die genaue Bildmitte und die Verzerrung und misst außerdem den Abstand zwischen den beiden Linsen. Fehlt dieser Schritt, erscheinen Kanten nahe der Kamera doppelt. Wie das genau funktioniert, steht in Ghosting bei 360°-Aufnahmen.

6. Person ausblenden (nur bei 360°-Kameras)

Eine 360°-Kamera nimmt in alle Richtungen auf, also auch die Person, die sie trägt. Bei einem Handy oder einer normalen Kamera steht man hinter der Kamera und ist nicht im Bild. Dort entfällt dieser Schritt.

Bei einer 360°-Kamera bekommt jedes Bild eine Maske. Eine Maske ist eine Markierung, die festlegt, welche Bildteile das Training nicht verwenden soll. Eine Bilderkennung findet die Person automatisch in jedem Bild, die Markierung wird etwas vergrößert, damit auch Haare und Kleidungsränder erfasst sind, und der Stab, an dem die Kamera hängt, bekommt einen festen Bereich. Was trotzdem durchrutscht, etwa ein Schatten oder ein Stück Ärmel, bleibt als Rest im Modell und wird im Schritt Aufräumen entfernt.

7. Training

Beim Training lernt der Computer das eigentliche Modell. Er setzt Millionen kleiner, weicher Farbflecken in den Raum, die Splats, und verändert ihre Position, Form, Farbe und Deckkraft so lange, bis das Modell jedes Foto möglichst genau nachbildet. Wie das im Einzelnen abläuft, steht in Was ist Gaussian Splatting?.

Für das Training gibt es freie Programme wie LichtFeld Studio und gsplat sowie kostenpflichtige wie Postshot. Fast alle setzen eine Grafikkarte von Nvidia voraus. Für eine ganze Wohnung sollte sie viel Grafikspeicher haben, 24 Gigabyte sind ein guter Richtwert. Der Grafikspeicher ist der Arbeitsspeicher der Grafikkarte, und er begrenzt, wie viele Bilder und Splats gleichzeitig verarbeitet werden können. Wer keine solche Karte hat, mietet sie stundenweise bei Anbietern wie vast.ai oder Runpod. Das Training einer Wohnung dauert dort einige Stunden.

Nach dem Training lohnt sich ein Blick auf die Zahl der Splats. Eine Wohnung braucht mehrere Millionen davon. Bleibt das Modell deutlich kleiner, hat das Training nicht genug Details gelernt, meist weil die Kamerapositionen nicht genau genug waren. Die Ursachen sammelt Unscharfe Gaussian Splats: Ursachen.

8. Aufräumen (Cleanup)

Ein frisch trainiertes Modell ist nie sauber. Das Training legt überall dort Splats an, wo sie irgendein Foto ein wenig besser erklären, auch an Stellen, an denen in Wirklichkeit nichts ist. Diese Fehlstellen muss man nach dem Training entfernen. Dieser Schritt heißt Aufräumen oder Cleanup, und er ist bei jeder Kamera nötig.

Ein Kellerraum als Gaussian Splat von außen, umgeben von verschwommenen Flecken und Schlieren
Ein Testscan unseres Kellers, von außen gesehen. Um den Raum herum liegen Schleier und Flecken, die das Training außerhalb der Wände angelegt hat. Genau solche Reste entfernt das Aufräumen.

Typische Fehlstellen sind:

  • Floater. So nennt man Splats, die frei in der Luft schweben, oft als kleine dunkle Flecken oder als Rauch. Man sieht sie vor allem, wenn man sich bewegt, weil sie nicht zu einer Oberfläche gehören.
  • Riesen-Splats. Einzelne Splats, die über ganze Räume reichen und als zarter Schleier vor allem liegen.
  • Reste außerhalb des Raums. Was durch Fenster zu sehen war oder was das Training hinter Wände gelegt hat. Von innen fällt es kaum auf, in einer Ansicht von oben oder von außen dagegen sofort.
  • Spiegelungen. Ein Spiegel oder eine Glastür wird als zweiter Raum hinter der Wand nachgebaut.
  • Reste der Person bei 360°-Kameras, etwa ein Schatten oder ein Stück Kleidung entlang des Laufwegs.
Blick durch einen grauen Schleier auf ein Kellerregal in einem Gaussian Splat
Derselbe Keller von innen. Vor dem Regal hängt ein Schleier aus großen, verschwommenen Splats, die zu keiner echten Oberfläche gehören.

Aufgeräumt wird in zwei Durchgängen:

  1. Automatisch. Filter entfernen Splats nach einfachen Regeln: Splats, die fast durchsichtig sind, Splats, die viel größer sind als alles um sie herum, Splats, in deren Umgebung fast nichts anderes liegt, und Splats unter dem Boden oder über der Decke. Bei Horama läuft das als eigener Schritt direkt nach dem Training, mit festen Grenzwerten für Größe, Dichte und Abstand zu Boden und Decke.
  2. Von Hand. Was die Filter übrig lassen, entfernt man in einem Editor. Ein verbreiteter, kostenloser Editor ist SuperSplat, der im Browser läuft. Man wählt die störenden Splats mit einem Pinsel, einer Kugel oder einem Kasten aus und löscht sie. Bei Spiegeln löscht man den nachgebauten Raum hinter der Wand.

Dabei kann man auch zu viel löschen. Dünne Dinge wie Stuhlbeine, Pflanzen, Kabel oder Glas bestehen ebenfalls aus kleinen, teils durchsichtigen Splats und sehen für einen Filter ähnlich aus wie Floater. Deshalb prüft man nach jedem Durchgang dieselben Ansichten wie vorher und behält immer eine Kopie des ungeputzten Modells.

9. Ausrichten, komprimieren, veröffentlichen

Nach dem Aufräumen steht das Modell oft schief im Raum und hat keinen echten Maßstab, denn Structure from Motion kennt keine Meter. Man dreht es deshalb so, dass der Boden waagerecht liegt, und bringt es über eine bekannte Länge auf echte Maße, zum Beispiel über die Raumhöhe oder eine Türhöhe. Erst dann stimmen Augenhöhe und Gehgeschwindigkeit im Rundgang.

Die Rohdatei eines Modells ist mehrere hundert Megabyte groß. Für den Browser wird sie komprimiert, etwa in die Formate SOG oder SPZ, und für große Szenen in mehrere Detailstufen aufgeteilt. Eine Detailstufe ist eine gröbere Fassung desselben Modells für Bereiche, die weit weg sind. Angezeigt wird das Ergebnis in einem Viewer, einem kleinen Programm, das in der Website läuft. Wie man einen Rundgang so baut, dass er auch auf dem Handy flüssig läuft, steht in Gaussian Splatting im Browser.

Häufige Fragen

Kann man Gaussian Splatting kostenlos selbst machen?

Die Programme dafür sind größtenteils kostenlos: COLMAP für die Kamerapositionen, LichtFeld Studio oder gsplat für das Training und SuperSplat zum Aufräumen. Kosten entstehen für die Kamera und für die Rechenzeit. Wer keine passende Nvidia-Grafikkarte hat, mietet eine stundenweise, je nach Karte für einige zehn Cent bis wenige Euro pro Stunde.

Muss man die Kamera für Gaussian Splatting kalibrieren?

Bei einem Handy oder einer normalen Kamera nicht als eigenen Schritt, das erledigt die Software für die Kamerapositionen nebenbei. Bei einer 360°-Kamera mit zwei Fischaugenlinsen lohnt sich eine eigene Kalibrierung jeder Linse, sonst erscheinen nahe Kanten doppelt.

Was ist ein Floater bei Gaussian Splatting?

Ein Splat, der frei in der Luft schwebt und zu keiner echten Oberfläche gehört. Floater entstehen, wenn das Training Widersprüche zwischen den Bildern mit zusätzlichen Splats erklärt. Man entfernt sie nach dem Training mit Filtern und von Hand in einem Editor wie SuperSplat.

Womit räumt man einen Gaussian Splat auf?

Zuerst mit automatischen Filtern, die sehr durchsichtige, sehr große oder einsam liegende Splats entfernen. Den Rest erledigt man von Hand in einem Editor wie SuperSplat, in dem man Splats mit Pinsel, Kugel oder Kasten auswählt und löscht.

Wie lange dauert es, einen Gaussian Splat selbst zu erstellen?

Für ein einzelnes Zimmer mit dem Handy reichen wenige Stunden, wenn man die Programme schon eingerichtet hat. Bei einer ganzen Wohnung mit einer 360°-Kamera kommen Kalibrierung, Masken und mehrere Stunden Training dazu, und das Aufräumen dauert oft länger als erwartet.

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