Artículos · arXiv 2308.04079
3D Gaussian Splatting for Real-Time Radiance Field Rendering
Resumen en tres líneas
- 🎯 Los métodos de radiance field (como los NeRFs) producen una alta calidad visual pero sufren de un lento ray-marching volumétrico y largos tiempos de optimización, mientras que los métodos rápidos basados en cuadrículas comprometen la calidad o la velocidad de renderizado.
- 🔧 Representa escenas explícitamente con gaussianas anisotrópicas 3D inicializadas a partir de puntos dispersos de SfM, las optimiza con control de densidad adaptativo (clonación y división) y las renderiza mediante un rasterizador por teselas diferenciable en GPU y consciente de la visibilidad.
- 📈 Logra una calidad visual en el estado del arte a la par de Mip-NeRF360 con velocidades de renderizado en tiempo real superiores a 130–160 FPS a resolución 1080p y tiempos de entrenamiento inferiores a una hora.
Resumen
Los métodos de Radiance Field han revolucionado recientemente la síntesis de nuevas vistas de escenas capturadas con múltiples fotos o videos. Sin embargo, lograr una alta calidad visual todavía requiere redes neuronales que resultan costosas de entrenar y renderizar, mientras que los métodos más rápidos recientes sacrifican inevitablemente calidad por velocidad. Para escenas no acotadas y completas (en lugar de objetos aislados) y renderizado a resolución 1080p, ningún método actual puede alcanzar tasas de visualización en tiempo real. Presentamos tres elementos clave que nos permiten lograr una calidad visual en el estado del arte mientras mantenemos tiempos de entrenamiento competitivos y, lo más importante, permitimos la síntesis de nuevas vistas en tiempo real (>= 30 fps) de alta calidad a resolución 1080p. En primer lugar, partiendo de puntos dispersos producidos durante la calibración de la cámara, representamos la escena con gaussianas 3D que preservan las propiedades deseables de los campos de radiancia volumétricos continuos para la optimización de la escena, evitando al mismo tiempo el cómputo innecesario en el espacio vacío; en segundo lugar, realizamos una optimización y control de densidad intercalados de las gaussianas 3D, optimizando notablemente la covarianza anisotrópica para lograr una representación precisa de la escena; en tercer lugar, desarrollamos un algoritmo de renderizado rápido y consciente de la visibilidad que admite splatting anisotrópico, el cual acelera el entrenamiento y permite el renderizado en tiempo real. Demostramos calidad visual en el estado del arte y renderizado en tiempo real en varios conjuntos de datos reconocidos.
Resumen original (inglés)
Radiance Field methods have recently revolutionized novel-view synthesis of scenes captured with multiple photos or videos. However, achieving high visual quality still requires neural networks that are costly to train and render, while recent faster methods inevitably trade off speed for quality. For unbounded and complete scenes (rather than isolated objects) and 1080p resolution rendering, no current method can achieve real-time display rates. We introduce three key elements that allow us to achieve state-of-the-art visual quality while maintaining competitive training times and importantly allow high-quality real-time (>= 30 fps) novel-view synthesis at 1080p resolution. First, starting from sparse points produced during camera calibration, we represent the scene with 3D Gaussians that preserve desirable properties of continuous volumetric radiance fields for scene optimization while avoiding unnecessary computation in empty space; Second, we perform interleaved optimization/density control of the 3D Gaussians, notably optimizing anisotropic covariance to achieve an accurate representation of the scene; Third, we develop a fast visibility-aware rendering algorithm that supports anisotropic splatting and both accelerates training and allows realtime rendering. We demonstrate state-of-the-art visual quality and real-time rendering on several established datasets.
Guía de lectura
Problema y motivación
Los campos de radiancia neurales (NeRFs) han transformado la síntesis de nuevas vistas al optimizar representaciones de escenas implícitas continuas mediante perceptrones multicapa (MLPs). Sin embargo, el renderizado de estos campos continuos depende del ray-marching volumétrico estocástico, que requiere evaluar decenas o cientos de muestras por rayo. Esto genera pesadas cargas computacionales, tiempos de entrenamiento prolongados (p. ej., hasta 48 horas para Mip-NeRF360) y velocidades de inferencia muy lentas (segundos por fotograma), lo que impide la navegación en tiempo real a resoluciones altas como 1080p.
Aunque variantes más rápidas de radiance field (como Plenoxels e InstantNGP) se basan en cuadrículas de vóxeles o tablas hash para acelerar el entrenamiento, a menudo sacrifican la fidelidad visual y tienen dificultades con el espacio vacío o los detalles de alta frecuencia. Por el contrario, los enfoques basados en puntos ofrecen una geometría explícita adaptada a la GPU, pero la rasterización tradicional de puntos requiere una geometría densa obtenida por Multi-View Stereo (MVS) para evitar huecos, o depende de un posprocesamiento con CNN que introduce parpadeo temporal.
Este artículo propone una representación de escenas explícita y no estructurada mediante 3D Gaussians combinada con un rasterizador rápido basado en teselas, logrando la fidelidad de renderizado de los radiance fields implícitos de primer nivel junto con tasas de fotogramas en tiempo real y tiempos de optimización competitivos.
Ideas clave
- Representación no estructurada con 3D Gaussians: En lugar de redes de coordenadas continuas o cuadrículas densas, el radiance field se parametriza mediante gaussianas 3D discretas con matrices de covarianza anisotrópicas completas, inicializadas a partir de nubes de puntos dispersas de Structure-from-Motion (SfM) sin requerir normales ni MVS denso.
- Parametrización mediante escala y rotación: Para garantizar que la matriz de covarianza se mantenga semidefinida positiva durante el descenso de gradiente, se desacopla en un vector de escala 3D y un cuaternión unitario.
- Control adaptativo de densidad: La optimización gestiona dinámicamente la densidad de la escena rastreando los gradientes de posición en el espacio de la vista: clonando las gaussianas sub-reconstruidas y dividiendo las sobre-reconstruidas, al tiempo que poda los splats transparentes o excesivamente grandes.
- Rasterización basada en teselas y consciente de la visibilidad: Un rasterizador personalizado en GPU organiza los píxeles de la pantalla en teselas de , ordena los splats por profundidad en cada fotograma mediante un Radix sort rápido y realiza una mezcla alfa de las proyecciones anisotrópicas de adelante hacia atrás sin limitar el número de splats que reciben actualizaciones de gradiente.
Método
1. Representación de la escena mediante 3D Gaussians
Una gaussiana 3D centrada en la media se define por su matriz de covarianza en el espacio del mundo:
Para garantizar que permanezca semidefinida positiva durante la optimización, se factoriza en una matriz de rotación y una matriz de escala : Aquí, se almacena como un vector 3D evaluado con una activación exponencial, y se parametriza mediante un cuaternión unitario normalizado .
Para el renderizado, las gaussianas 3D se proyectan a coordenadas de imagen 2D siguiendo el marco de EWA splatting. Dada una transformación de vista y el jacobiano de la aproximación afín de la transformación proyectiva, la matriz de covarianza 2D en el espacio de la pantalla es: La tercera fila y columna se descartan, produciendo una matriz de covarianza de para el splatting planar.
2. Renderizado y formación de imágenes
Cada gaussiana tiene una opacidad (restringida a mediante una activación sigmoide) y coeficientes de armónicos esféricos (SH) que describen el color dependiente de la vista . La mezcla de gaussianas superpuestas y ordenadas en un píxel sigue la formulación volumétrica estándar: donde se determina evaluando la gaussiana 2D proyectada multiplicada por la opacidad por punto aprendida.
3. Optimización y control adaptativo
La función de pérdida combina una pérdida con una pérdida D-SSIM (con ):
El control adaptativo de densidad se ejecuta cada 100 iteraciones en las gaussianas cuyo gradiente posicional promedio en el espacio de vista supera :
- Clonar (Sub-reconstrucción): Para gaussianas pequeñas, se crea un duplicado y se desplaza a lo largo de la dirección del gradiente posicional.
- Dividir (Sobre-reconstrucción): Para gaussianas grandes, la primitiva se reemplaza por dos gaussianas más pequeñas cuyas escalas se reducen por un factor de , muestreando sus posiciones iniciales a partir de la gaussiana madre.
- Podado: Se podan las gaussianas donde o aquellas excesivamente grandes en el espacio del mundo o de la vista. Cada iteraciones, las opacidades se restablecen cerca de cero para filtrar artefactos flotantes.
4. Rasterizador diferenciable rápido basado en teselas
- La pantalla se divide en teselas de píxeles.
- Las gaussianas que superan el frustum culling con un intervalo de confianza del 99% reciben claves de 64 bits que codifican el identificador de tesela y la profundidad en el espacio de vista.
- Un único Radix sort en GPU ordena todas las instancias en todo el fotograma.
- Los bloques de hilos acumulan color por tesela de adelante hacia atrás hasta que alcanza la saturación (deteniéndose antes de superar ).
- El paso hacia atrás recorre las teselas de atrás hacia adelante, recuperando las opacidades intermedias al dividir la opacidad final acumulada por el de cada primitiva, evitando costosos búferes dinámicos de memoria por píxel.
Resultados
- Dataset Mip-NeRF360: Tras 30K iteraciones (tiempo de entrenamiento promedio de 41m 33s), 3D Gaussian Splatting logra un promedio de SSIM de 0.815, PSNR de 27.21 dB y LPIPS de 0.214, igualando o superando a Mip-NeRF360 (SSIM 0.792, PSNR 27.69 dB, LPIPS 0.237, 48 horas de entrenamiento), mientras renderiza a 134 FPS en comparación con los 0.06 FPS de Mip-NeRF360.
- Configuración rápida (7K iteraciones): Ofrece un SSIM de 0.770 y un PSNR de 25.60 dB en solo 6m 25s a 160 FPS, superando a InstantNGP-Base (SSIM 0.671, 11.7 FPS) y Plenoxels (SSIM 0.626, 6.79 FPS) en tiempos de entrenamiento comparables.
- Tanks&Temples y Deep Blending: En Tanks&Temples, 30K iteraciones alcanzan un SSIM de 0.841 y un PSNR de 23.14 dB a 154 FPS. En Deep Blending, logra un SSIM de 0.903 y un PSNR de 29.41 dB a 137 FPS.
- Synthetic Blender: Obtiene un PSNR promedio de 33.32 dB a partir de una inicialización completamente aleatoria de 100K puntos, renderizando a 180–300 FPS.
Limitaciones y preguntas abiertas
- Vistas no observadas y valores atípicos: Una cobertura dispersa o vistas alejadas de las trayectorias de entrenamiento pueden producir artefactos visibles, como gaussianas alargadas o manchadas.
- Artefactos de popping: El cambio repentino en el orden de profundidad o un culling estricto en la banda de protección pueden introducir popping durante la navegación, lo que resalta la necesidad de un mejor antialiasing.
- Consumo de memoria: Aunque es compacta en comparación con las nubes de puntos densas clásicas, la representación explícita requiere cientos de megabytes (p. ej., 400–750 MB para escenas con 1–5 millones de gaussianas), y el entrenamiento en prototipos sin optimizar puede elevar el uso de memoria de la GPU por encima de los 20 GB.
- Falta de regularización: El marco no incluye regularizadores explícitos de suavidad geométrica o densidad, lo que da pie a la aparición de flotadores de fondo en regiones poco restringidas por los rayos de la cámara.
Términos clave
- 3D Gaussians
- Primitivas 3D diferenciables y no estructuradas fundamentales, definidas por una posición media, matriz de covarianza anisotrópica, opacidad y coeficientes de armónicos esféricos para la apariencia.
- Anisotropic Covariance
- Dispersión 3D direccional parametrizada en vectores de escala y cuaterniones de rotación unitarios independientes, lo que permite que las gaussianas se deformen en elipsoides planos alineados con superficies físicas.
- Adaptive Density Control
- Estrategia de optimización intercalada que añade gaussianas clonando o dividiendo primitivas con gradientes posicionales grandes y poda las transparentes o sobredimensionadas.
- Tile-Based Rasterization
- Canal de renderizado acelerado por GPU que divide el viewport en celdas de píxeles para ordenar y mezclar splats gaussianos superpuestos de forma eficiente en paralelo.
- Alpha-Blending
- Acumulación de color y transmitancia de adelante hacia atrás que emula la integración volumétrica estándar de NeRF sobre los splats proyectados en 2D y ordenados.
- Radix Sort
- Algoritmo de ordenamiento en GPU utilizado para ordenar globalmente las gaussianas en paralelo basándose en claves de 64 bits que combinan el identificador de tesela y la profundidad en el espacio de vista.
- Spherical Harmonics (SH)
- Base de funciones direccionales basada en frecuencias utilizada para representar el color dependiente de la vista en cada primitiva gaussiana a lo largo de hasta 4 bandas.
Preguntas
¿Cómo se inicializan las 3D Gaussians antes de la optimización?
Se inicializan utilizando la nube de puntos dispersa generada como subproducto de la calibración de cámaras mediante Structure-from-Motion (SfM), con escalas isotrópicas iniciales derivadas de la distancia media a los tres puntos vecinos más cercanos. Para escenas sintéticas, también se puede utilizar una inicialización aleatoria uniforme.
¿Cuál es la diferencia entre clonar y dividir gaussianas?
Clonar copia una gaussiana pequeña y la desplaza a lo largo de su gradiente de posición para cubrir detalles geométricos faltantes (sub-reconstrucción), mientras que dividir fragmenta una gaussiana demasiado grande en dos gaussianas más pequeñas reducidas por un factor de 1.6 para capturar mejor los detalles de alta varianza (sobre-reconstrucción).
¿Por qué el rasterizador ordena por tesela en lugar de por píxel?
Ordenar por tesela utilizando un único Radix sort global en GPU sobre claves combinadas de tesela y profundidad evita la alta sobrecarga computacional de ordenar las primitivas por píxel, lo que permite tasas de fotogramas elevadas con una aproximación visual insignificante.
¿Cómo evita el paso hacia atrás almacenar largas listas de primitivas por píxel en la memoria global?
El rasterizador vuelve a recorrer las listas ordenadas existentes por tesela de atrás hacia adelante y reconstruye las opacidades intermedias dividiendo la opacidad final acumulada por el valor alfa de cada gaussiana, requiriendo únicamente una sobrecarga de memoria constante por píxel.
La explicación de esta página la escribió una IA a partir del artículo y puede contener errores. Consulte el artículo para los detalles.