4D Gaussian Splatting
El Gaussian splatting 4D reconstruye escenas en movimiento a partir de vídeos mediante gaussianas que cambian con el tiempo, y renderiza cualquier punto de vista en cualquier momento y en tiempo real.
El splatting gaussiano 4D (4DGS) reconstruye una escena en movimiento a partir de vídeo para poder renderizarla desde nuevos puntos de vista en cualquier momento y en tiempo real. Amplía el splatting gaussiano 3D, que representa una escena estática como millones de elipsoides 3D difusos que se proyectan y se mezclan en la pantalla, al permitir que esas gaussianas se muevan, roten, cambien de forma y aparezcan o desaparezcan con el tiempo. Dos artículos de octubre de 2023 introdujeron el nombre con diseños distintos. 4D Gaussian Splatting for Real-Time Dynamic Scene Rendering, de Guanjun Wu y sus colaboradores de la Universidad de Ciencia y Tecnología de Huazhong y Huawei (CVPR 2024), deforma un conjunto de gaussianas 3D mediante un campo de deformación aprendido. Real-time Photorealistic Dynamic Scene Representation and Rendering with 4D Gaussian Splatting, de Zeyu Yang y sus colaboradores de la Universidad de Fudan (ICLR 2024), usa gaussianas 4D nativas definidas en el espacio y el tiempo. Ambos son métodos de síntesis dinámica de nuevas vistas, a menudo denominada vídeo de punto de vista libre.
Cómo funciona la representación gaussiana por salpicadura 4D#
La mejor entrada es un conjunto de vídeos sincronizados de cámaras situadas alrededor de la escena, como el conjunto de datos Neural 3D Video, también llamado Plenoptic Video, con grabaciones de 10 segundos a 30 FPS de entre 18 y 21 cámaras, cuyas poses se recuperan mediante Structure from Motion. También funciona una sola cámara en movimiento, pero resulta más difícil separar la profundidad del movimiento. El entrenamiento sigue el método 3D: renderiza la escena en una marca de tiempo desde una cámara de entrenamiento, compara la imagen con el fotograma de vídeo real y actualiza todos los parámetros mediante descenso de gradiente a través del renderizador diferenciable. Los dos diseños difieren en cómo generan las gaussianas para una marca de tiempo determinada:
- Campo de deformación: Wu et al. mantienen un único conjunto canónico de gaussianas 3D. Para cada marca de tiempo, una cuadrícula compacta de características espaciales y temporales aprendidas, descompuesta en planos como en HexPlane, proporciona características para cada gaussiana, y un MLP ligero predice cuánto se desplaza, rota y estira. El método renderiza a 82 FPS con una GPU RTX 3090 a 800×800.
- Gaussianas 4D nativas: Yang et al. asignan a cada primitiva una media y una covarianza 4D sobre x, y, z y el tiempo, con una rotación 4D construida a partir de un par de cuaterniones. El color cambia según la dirección de visualización y el tiempo mediante armónicos esferíndricos 4D, que multiplican los armónicos esféricos por una serie de Fourier en el tiempo. En la prueba de referencia Neural 3D Video, el artículo informa de 114 FPS, frente a los 36 FPS del método de campo de deformación.
Cortar una gaussiana 4D nativa en el instante t equivale a condicionarla como una gaussiana: al fijar t queda una gaussiana 3D con un centro desplazado y una covarianza reducida, y la marginal 1D de la gaussiana en el tiempo escala su opacidad. Las gaussianas cuyo peso temporal sea insignificante en t se omiten antes de la rasterización. Este código de PyTorch corta una gaussiana 4D en tres marcas de tiempo:
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}")Imprime un centro de [0.23 -0.15 0.16] en t=0.1, [0. 0. 0.] en t=0.5 y [-0.23 0.15 -0.16] en t=0.9, con un factor de opacidad que sube de 0.74 a 1.00 y vuelve a 0.74 mientras el volumen permanece en 0.1030. La covarianza condicional no depende de t, así que cada gaussiana 4D se convierte en una gaussiana 3D de forma fija que se desliza en línea recta y aparece y desaparece gradualmente; el movimiento complejo surge de muchas gaussianas de corta duración.
Los objetos en movimiento concentran la mayor parte del error de reconstrucción, por lo que muchas canalizaciones separan el fondo estático de los elementos dinámicos en primer plano, y algunas asignan a cada objeto en movimiento su propio conjunto de gaussianas. Los modelos de segmentación de instancias Ultralytics YOLO26, ejecutados en modo de seguimiento, generan una máscara para cada persona y vehículo de cada fotograma con un ID que persiste durante todo el vídeo, lo que indica qué píxeles pertenecen a cada objeto en movimiento.
Splatting gaussiano 4D frente a métodos relacionados#
- Splatting gaussiano 3D por fotograma: reconstruir cada fotograma por separado almacena una escena completa por fotograma y genera parpadeos entre fotogramas. 4DGS comparte las gaussianas a lo largo del tiempo, por lo que el fondo estático se almacena una sola vez y las partes móviles mantienen la coherencia temporal.
- NeRF dinámicos: D-NeRF, HexPlane y otros campos de radiancia neuronales dinámicos también asignan una escena canónica a cada marca de tiempo, pero evalúan un campo neuronal en muchos puntos de cada rayo de cámara, por lo que renderizan mucho más despacio que la rasterización de gaussianas. El diseño 4DGS de campo de deformación sigue la misma idea de escena canónica más deformación, con gaussianas rasterizadas.
- Gaussianas 3D dinámicas: Jonathon Luiten y sus colaboradores mantienen fijos el color, la opacidad y el tamaño de cada gaussiana y solo permiten que cambien su posición y rotación, con restricciones de rigidez local. El seguimiento de puntos denso con 6 grados de libertad de cada elemento de la escena se obtiene directamente de la reconstrucción.
- Generación de vídeo: los modelos generativos de vídeo inventan nuevas secuencias a partir de una instrucción. 4DGS reconstruye un evento grabado por cámaras y lo vuelve a renderizar desde nuevos puntos de vista y momentos.
Aplicaciones en el mundo real#
- Vídeo volumétrico para VR y AR: las actuaciones, los momentos deportivos y las entrevistas grabados con conjuntos de cámaras se convierten en clips de punto de vista libre que los espectadores pueden rodear con un casco o un navegador.
- Telepresencia y avatares: las capturas multicámara de personas generan representaciones 3D animadas y fotorrealistas para la comunicación a distancia y los dobles digitales.
- Simulación de conducción: los equipos de vehículos autónomos reconstruyen trayectos grabados con tráfico en movimiento y los vuelven a renderizar desde cámaras desplazadas para probar sistemas de percepción. Street Gaussians modela cada vehículo seguido como su propio conjunto de gaussianas, que se mueve con poses optimizadas a partir del seguimiento, se entrena en aproximadamente media hora y renderiza escenas urbanas a 135 FPS con una resolución de 1066×1600.










