3D Gaussian Splatting
Radiance Field-Methoden haben vor kurzem die Visualisierungssynthese von Szenen, die mit mehreren Fotos oder Videos aufgenommen wurden, revolutioniert. Um eine qualitativ hochwertige Visualisierung zu erreichen, sind jedoch immer noch neuronale Netze erforderlich, die teuer und langsam zu trainieren und zu rendern sind.
Hier kommt 3D Gaussian Splatting ins Spiel, eine Methode, die verspricht, eine 3D-Szene in Echtzeit zu rendern – hier sind alle Details!
Was ist 3D Gaussian Splatting?
Gaussian Splatting ist eine Rendering-Technik, die in den 90er Jahren im wissenschaftlichen Bereich entwickelt wurde, aber ihre jüngste Anwendung auf die Visualisierung von Szenen in Echtzeit, die letzten August auf der SIGGRAPH 2023 vorgestellt wurde, hat sie wieder in Mode gebracht.
Gaussian Splatting ist eine Rastertechnik für die Echtzeit-3D-Rekonstruktion und -Rendering von Bildern, die aus mehreren Blickwinkeln aufgenommen wurden.
Der 3D-Raum wird als eine Reihe von Gaußschen Kurven definiert, und die Parameter jeder Gaußschen Kurve werden durch maschinelles Lernen berechnet. Dies bedeutet:
- Haben Sie Daten, die die Szene beschreiben
- Geben Sie die Daten auf dem Bildschirm wieder.
Es ist also analog zur Dreiecksrasterung in der Computergrafik, mit der viele Dreiecke auf den Bildschirm gezeichnet werden. Allerdings werden keine Dreiecke gezeichnet, sondern Gauß’sche. Daher wird es durch die folgenden Parameter beschrieben:
- Position: wo sie sich befindet (XYZ)
- Kovarianz: wie sie gestreckt/skaliert ist (3×3 Matrix)
- Farbe: RGB
- Alpha: seine Transparenz (α)
Hier ist ein Beispiel:
Wie funktioniert 3D Gaussian Splatting?
3D Gaussian Splatting stellt eine 3D-Szene als Millionen von Partikeln (Gaussians) dar. Jeder 3D Gaussian hat eine Position/Ausrichtung/Skala sowie eine Deckkraft und eine Farbe.
Um diese Partikel zu rendern, werden sie in den 2D-Raum konvertiert und dann für ein effizientes Rendering organisiert. Die folgenden Schritte sind zu beachten:
- Struktur aus Bewegung: Wir beginnen mit der Methode „Struktur aus Bewegung (SfM)“, um eine Punktwolke aus einer Reihe von Bildern zu erstellen. Dies kann mit COLMAP geschehen.
- In Gauß umwandeln: Jeder Punkt wird in Gauß umgewandelt, was bereits eine Rasterung ermöglicht. Aus den SfM-Daten können jedoch nur Position und Farbe abgeleitet werden.
- Nach Gauß konvertieren: jeder Punkt wird nach Gauß konvertiert, wodurch bereits eine Rasterung möglich ist.
- Training: Damit eine Repräsentation qualitativ hochwertige Ergebnisse liefern kann, muss sie trainiert werden. Dazu wird der stochastische Gradientenabstieg, ähnlich wie bei einem neuronalen Netz, verwendet.
- Die Gaußschen Linien in einem Bild werden mit Hilfe der differenzierbaren Gaußschen Rasterung gerastert.
- Berechnen Sie den Verlust als eine Funktion der Differenz zwischen dem gerasterten Bild und dem realen Geländebild.
- Anpassung der Gauß-Parameter entsprechend dem Verlust.
- Automatische Verdichtung anwenden.
- Differenzierbare Gauß-Rasterung: Hier müssen Sie jeden 2D-Gauß aus der Kameraperspektive projizieren, sie nach Tiefe sortieren und für jedes Pixel jeden Gauß vorwärts und rückwärts wiederholen und kombinieren.
Photometrie vs. NERF
Die Fotometrie ist eine Technik zur Erzeugung von 3D-Polygonen aus Bildern mit mehreren Blickwinkeln. Obwohl sie für das Scannen von Objekten sehr nützlich ist, kann sie keine Szenen ohne Konturen, wie den Himmel, oder feine Details in weit entfernten Szenen darstellen. Außerdem ist es in einigen Fällen, wie z. B. bei Spiegelungen oder transparenten Elementen, nicht möglich, 3D-Polygone genau zu erzeugen.
Um diese Einschränkungen zu überwinden, wurde NeRF oder Neural Radiance Field entwickelt. Dabei handelt es sich ebenfalls um eine Methode zum Rendern einer 3D-Szene aus Bildern, die aus verschiedenen Blickwinkeln aufgenommen wurden, wobei jedoch KI eingesetzt wird, um offene Szenen und reflektierende oder lichtdurchlässige Oberflächen genau zu rendern. Der einzige Nachteil ist, dass sehr leistungsfähige Hardware erforderlich ist, um eine Szene in Echtzeit zu rendern.
3D Gaussian Splatting ist ein weiterer Ansatz zur Lösung desselben Problems, erfordert aber nicht so viel Rechenleistung, um eine Szene in Echtzeit zu rendern. Der Grund dafür ist, dass zwar maschinelles Lernen erforderlich ist, um die Gauß-Parameter zu trainieren, das Rendering jedoch keine umfangreiche Verarbeitung erfordert und in Echtzeit erfolgen kann.
Wie wir es bei Plain Concepts machen
Bei Plain Concepts arbeiten wir an der Integration der 3D Gaussian Splatting Technologie in unsere Evergine 3D Engine. Obwohl es sich um eine neue Technologie handelt, bei der wir ständig Fortschritte machen, glauben wir von Plain Concepts, dass sie bereit ist, in realen Projekten eingesetzt zu werden, und wir sind überzeugt, dass wir sie in unseren nächsten Projekten implementiert sehen werden.
Die Zukunft der Grafik
Es gibt noch einige Unbekannte im Zusammenhang mit Gaussian Splatting, insbesondere die Möglichkeit, sie zu animieren oder das Auftreten einiger visueller Artefakte zu vermeiden, oder die Verwaltung von Kollisionen, die im Moment durch ein zugehöriges geometrisches Modell gelöst werden.
Aber wie wir bereits erwähnt haben, ist es sehr wahrscheinlich, dass wir 3D Gaussian Splatting vollständig in einer Produktionsumgebung implementiert sehen werden.
Auch die eingebettete KI wird ein Schlüsselfaktor in der 3D-Raumforschung sein. Klar ist jedoch, dass diese neue Technik qualitativ hochwertige fotorealistische Szenen, eine schnelle Rasterung in Echtzeit und ein relativ schnelles Training ermöglichen wird.
Wenn Sie mehr über die neuesten Innovationstrends erfahren möchten, sollten Sie unseren Blog Innovation und Forschung nicht verpassen!