4D Gaussian Splatting
4D-Gaussian-Splatting rekonstruiert bewegte Szenen aus Videos als Gauss-Verteilungen, die sich im Laufe der Zeit verändern. So lässt sich jeder Blickwinkel zu jedem Zeitpunkt in Echtzeit darstellen.
4D Gaussian Splatting (4DGS) rekonstruiert eine bewegte Szene aus Videos, sodass sie jederzeit in Echtzeit aus neuen Blickwinkeln gerendert werden kann. Die Methode erweitert 3D Gaussian Splatting, bei dem eine statische Szene durch Millionen weicher 3D-Ellipsoide dargestellt wird, die auf den Bildschirm projiziert und dort überblendet werden. Dazu können sich die Gaussians im Lauf der Zeit bewegen, drehen, ihre Form ändern sowie erscheinen oder verschwinden. Zwei Arbeiten vom Oktober 2023 führten den Begriff mit unterschiedlichen Ansätzen ein. 4D Gaussian Splatting für Echtzeit-Rendering dynamischer Szenen von Guanjun Wu und Kollegen an der Huazhong University of Science and Technology und Huawei (CVPR 2024) verformt eine Gruppe von 3D-Gaussians mithilfe eines erlernten Deformationsfelds. Echtzeit-Darstellung und -Rendering fotorealistischer dynamischer Szenen mit 4D Gaussian Splatting von Zeyu Yang und Kollegen an der Fudan-Universität (ICLR 2024) verwendet native 4D-Gaussians, die über Raum und Zeit definiert sind. Beide Verfahren dienen der dynamischen Synthese neuer Ansichten, auch als Video mit freier Blickpunktwahl bezeichnet.
So funktioniert 4D Gaussian Splatting#
Am besten eignen sich synchronisierte Videos von Kameras rund um die Szene, etwa der Datensatz Neural 3D Video, auch Plenoptic Video genannt. Er enthält 10-sekündige Aufnahmen mit 30 FPS von 18 bis 21 Kameras; die Kamerapositionen werden mithilfe von Structure from Motion ermittelt. Eine einzelne bewegte Kamera funktioniert ebenfalls, doch dadurch lassen sich Tiefe und Bewegung schwerer voneinander trennen. Das Training folgt dem 3D-Verfahren: Die Szene wird zu einem Zeitpunkt aus einer Trainingskamera gerendert, das Bild mit dem echten Videobild verglichen und jeder Parameter per Gradientenabstieg durch den differenzierbaren Renderer aktualisiert. Die beiden Ansätze unterscheiden sich darin, wie sie die Gaussians für einen bestimmten Zeitpunkt erzeugen:
- Deformationsfeld: Wu et al. behalten eine kanonische Gruppe von 3D-Gaussians bei. Für jeden Zeitpunkt liefert ein kompaktes Gitter erlernter räumlicher und zeitlicher Merkmale, das wie bei HexPlane in Ebenen zerlegt ist, Merkmale für jeden Gaussian. Ein leichtgewichtiges MLP sagt voraus, wie weit er sich bewegt, dreht und streckt. Das Verfahren rendert auf einer RTX 3090 GPU mit 800×800 Auflösung 82 FPS.
- Native 4D-Gaussians: Yang et al. weisen jedem Grundelement einen 4D-Mittelwert und eine Kovarianz über x, y, z und die Zeit zu; die 4D-Rotation wird aus zwei Quaternionen gebildet. Die Farbe ändert sich je nach Blickrichtung und Zeit mithilfe 4D-spherindrischer Harmonischer, bei denen sphärische Harmonische mit einer Fourier-Reihe über die Zeit multipliziert werden. Auf dem Neural 3D Video-Benchmark berichtet die Arbeit 114 FPS gegenüber 36 FPS beim Deformationsfeldverfahren.
Einen nativen 4D-Gaussian zum Zeitpunkt t zu schneiden, entspricht einer Gaußschen Konditionierung: Wird t festgelegt, bleibt ein 3D-Gaussian mit verschobenem Mittelpunkt und verringerter Kovarianz übrig; die 1D-Marginalverteilung des Gaussians über die Zeit skaliert seine Opazität. Gaussians mit vernachlässigbarem zeitlichem Gewicht zum Zeitpunkt t werden vor der Rasterisierung übersprungen. Dieser PyTorch-Code schneidet einen 4D-Gaussian zu drei Zeitpunkten:
import torch
torch.manual_seed(0)
# One 4D Gaussian over (x, y, z, t): a mean and a covariance that couples position with time
mean = torch.tensor([0.0, 0.0, 0.0, 0.5])
factor = torch.randn(4, 4) * 0.3
cov = factor @ factor.T + 0.01 * torch.eye(4)
# Slicing at time t conditions the 4D Gaussian on t, leaving a 3D Gaussian to rasterize
for t in (0.1, 0.5, 0.9):
center = mean[:3] + cov[:3, 3] / cov[3, 3] * (t - mean[3])
cov_3d = cov[:3, :3] - torch.outer(cov[:3, 3], cov[3, :3]) / cov[3, 3]
# The temporal marginal fades the Gaussian in and out around its mean time
opacity_scale = torch.exp(-0.5 * (t - mean[3]) ** 2 / cov[3, 3])
print(f"t={t}: center {center.numpy().round(2)}, opacity x{opacity_scale:.2f}, volume {cov_3d.det().sqrt():.4f}")Ausgegeben werden ein Mittelpunkt von [0.23 -0.15 0.16] bei t=0.1, [0. 0. 0.] bei t=0.5 und [-0.23 0.15 -0.16] bei t=0.9. Dabei steigt der Opazitätsfaktor von 0,74 auf 1,00 und sinkt wieder auf 0,74, während das Volumen bei 0,1030 bleibt. Da die bedingte Kovarianz nicht von t abhängt, wird jeder 4D-Gaussian zu einem 3D-Gaussian fester Form, der sich entlang einer geraden Linie bewegt und ein- und ausblendet. Komplexe Bewegungen entstehen aus vielen kurzlebigen Gaussians.
Bewegte Objekte verursachen den Großteil des Rekonstruktionsfehlers. Deshalb trennen viele Verarbeitungsketten statische Hintergründe von dynamischen Vordergrundelementen; manche weisen jedem bewegten Objekt eine eigene Gruppe von Gaussians zu. Instanzsegmentierungsmodelle von Ultralytics YOLO26 erzeugen im Trackingmodus für jede Person und jedes Fahrzeug in jedem Bild eine Maske, die unter einer über das gesamte Video hinweg beständigen ID kennzeichnet, welche Pixel zu welchem bewegten Objekt gehören.
4D Gaussian Splatting und verwandte Verfahren#
- 3D Gaussian Splatting pro Einzelbild: Werden alle Bilder einzeln rekonstruiert, wird für jedes Bild eine vollständige Szene gespeichert, und die Darstellung flackert zwischen den Bildern. 4DGS verwendet dieselben Gaussians über die Zeit hinweg. Dadurch wird ein statischer Hintergrund nur einmal gespeichert und Bewegtes bleibt zeitlich konsistent.
- Dynamische NeRFs: D-NeRF, HexPlane und andere dynamische neuronale Strahlungsfelder bilden ebenfalls eine kanonische Szene auf jeden Zeitpunkt ab. Sie werten jedoch entlang jedes Kamerastrahls an vielen Punkten ein neuronales Feld aus, wodurch das Rendering deutlich langsamer ist als die Rasterisierung von Gaussians. Der Deformationsfeldansatz von 4DGS folgt derselben Idee aus kanonischer Szene und Verformung, verwendet dafür aber rasterisierte Gaussians.
- Dynamische 3D-Gaussians: Jonathon Luiten und Kollegen halten Farbe, Opazität und Größe jedes Gaussians konstant und verändern nur seine Position und Drehung, wobei lokale Starrheitsbedingungen gelten. Eine dichte Punktverfolgung mit sechs Freiheitsgraden für jedes Szenenelement ergibt sich direkt aus der Rekonstruktion.
- Videogenerierung: Generative Videomodelle erfinden auf Grundlage einer Eingabeaufforderung neue Aufnahmen. 4DGS rekonstruiert ein von Kameras aufgezeichnetes Ereignis und rendert es aus neuen Blickwinkeln und zu anderen Zeitpunkten erneut.
Anwendungen in der Praxis#
- Volumetrisches Video für VR und AR: Mit Kamerasystemen aufgezeichnete Auftritte, Sportereignisse und Interviews werden zu frei betrachtbaren Clips, um die sich Zuschauer in einem Headset oder Browser bewegen können.
- Telepräsenz und Avatare: Aufnahmen von Menschen mit mehreren Kameras erzeugen animierte, fotorealistische 3D-Darstellungen für die Fernkommunikation und digitale Doppelgänger.
- Fahrsimulation: Teams für autonome Fahrzeuge rekonstruieren aufgezeichnete Fahrten mit fließendem Verkehr und rendern sie aus versetzten Kamerapositionen erneut, um Wahrnehmungssysteme zu testen. Street Gaussians stellt jedes verfolgte Fahrzeug als eigene Gruppe von Gaussians dar, die sich anhand optimierter verfolgter Positionen bewegt. Das Training dauert etwa eine halbe Stunde; Straßenszenen werden bei 1066×1600 Auflösung mit 135 FPS gerendert.










