Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Gaussian Splatting

El splatting gaussiano reconstruye escenas 3D fotorrealistas a partir de fotografías como millones de gaussianas 3D que se renderizan en tiempo real. Incluye el entrenamiento, NeRF y la captura.

El splatting gaussiano, también llamado splatting gaussiano 3D (3DGS), es una técnica para reconstruir una escena 3D fotorrealista a partir de fotos normales y generar nuevas vistas en tiempo real. Representa la escena mediante millones de gaussianas 3D, elipsoides difusos que tienen una posición, una forma, una opacidad y un color que depende del punto de vista; crea una imagen proyectándolos («splatting») sobre la pantalla y mezclándolos. Presentado en SIGGRAPH 2023 en Splatting gaussiano 3D para la representación de campos de radiancia en tiempo real, igualó la calidad de imagen de los mejores campos de radiancia neuronal (NeRF) y, al mismo tiempo, generó 30 fotogramas por segundo o más a 1080p, algo que ningún método anterior había logrado en escenas grandes y sin límites. Es un método de síntesis de nuevas vistas y reconstrucción 3D.

Cómo funciona Gaussian Splatting#

Cada gaussiana almacena 59 números que se pueden aprender: una posición 3D, una escala 3D y un cuaternión de rotación de 4 números que, en conjunto, definen su covarianza (forma y orientación), una opacidad y 48 coeficientes de armónicos esféricos, 16 por canal de color, que permiten que el color cambie según la dirección de visión para capturar reflejos y brillos. El entrenamiento parte de la nube de puntos dispersa que genera la estructura a partir del movimiento (SfM) mientras se calibran las cámaras, y coloca una gaussiana en cada punto. En cada iteración, se genera una vista de entrenamiento, se compara con la foto real mediante una combinación ponderada de pérdidas L1 y D-SSIM y se actualiza cada gaussiana mediante descenso de gradiente a través del renderizador diferenciable. Cada 100 iteraciones, el control adaptativo de densidad clona las gaussianas pequeñas en las zonas insuficientemente reconstruidas, divide las gaussianas grandes que abarcan demasiado detalle y elimina las casi transparentes; así, cada escena del artículo crece hasta alcanzar entre 1 y 5 millones de gaussianas.

Para dibujar un fotograma, el renderizador proyecta cada gaussiana 3D como una elipse 2D sobre el plano de imagen, divide la pantalla en teselas de 16×16 píxeles, ordena por profundidad las gaussianas que se superponen a cada tesela mediante una GPU de ordenación radix y las mezcla con alfa, de delante hacia atrás, en cada píxel. Como la escena es una lista explícita de primitivas, el renderizado funciona como el rasterizador de un motor de videojuegos y no evalúa una red neuronal por píxel.

Splatting gaussiano frente a NeRF y mallas#

Un NeRF almacena una escena de forma implícita en los pesos de una red neuronal y la renderiza consultando esa red en numerosos puntos a lo largo de cada rayo de cámara. El splatting gaussiano almacena la escena de forma explícita, así que el renderizado se reduce a ordenar y mezclar. Con el mismo hardware del artículo original, Mip-NeRF360 necesitó de media 48 horas de entrenamiento y unos 10 segundos por fotograma renderizado; los splats gaussianos completamente entrenados igualaron o superaron ligeramente su calidad tras 35-45 minutos de entrenamiento y se renderizaron en tiempo real. La representación explícita requiere memoria: con 59 números por gaussiana, una escena con 3 millones de gaussianas contiene unos 700 MB de valores de coma flotante de 32 bits, y el uso máximo de memoria de la GPU durante el entrenamiento de escenas grandes podía superar los 20 GB en la implementación original. Los splats tampoco tienen una superficie definida, por lo que las aplicaciones que necesitan geometría de colisión o ediciones al estilo CAD siguen convirtiéndolos en mallas mediante métodos posteriores; las escenas en movimiento requieren extensiones como el splatting gaussiano 4D.

Captura de datos para el splatting gaussiano#

Una captura es un conjunto de fotos o fotogramas de vídeo superpuestos tomados mientras se recorre una escena estática. Cualquier elemento que se mueva durante la captura, como un transeúnte o un coche, aparece en algunos fotogramas y no en otros, y el proceso de optimización intenta explicarlo mediante artefactos semitransparentes conocidos como flotantes. Por eso, los flujos de entrenamiento aceptan máscaras que excluyen los objetos en movimiento; el formato de datos de Nerfstudio utiliza máscaras en blanco y negro en las que el negro marca los píxeles que se deben ignorar. Los modelos de segmentación de instancias de YOLO26 generan estas máscaras automáticamente al segmentar a todas las personas de cada fotograma.

import cv2
from ultralytics import YOLO

# Carga un modelo de segmentación de instancias YOLO26
model = YOLO("yolo26n-seg.pt")

# Segmenta solo a las personas (clase 0 de COCO), una fuente habitual de flotantes en una captura
results = model("https://ultralytics.com/images/bus.jpg", classes=[0], retina_masks=True)
result = results[0]

# El blanco marca la escena estática que se debe utilizar para el entrenamiento; el negro marca a las personas que se deben ignorar
people = result.masks.data.sum(dim=0) > 0
keep_mask = (~people).cpu().numpy().astype("uint8") * 255
cv2.imwrite("bus_mask.png", keep_mask)

El bus_mask.png guardado tiene la resolución completa de la foto porque retina_masks=True devuelve máscaras con el tamaño original de la imagen, y todas las personas del fotograma aparecen en negro.

Aplicaciones#

  • Inmobiliaria y visitas virtuales: Una captura de una casa, un museo o un sitio patrimonial hecha con un teléfono o un dron se convierte en una escena que los visitantes pueden explorar libremente desde un navegador o unas gafas de RV, con los reflejos en suelos y ventanas preservados.
  • Efectos visuales y producción virtual: Los equipos de cine y videojuegos capturan ubicaciones reales como splats y los utilizan como fondos fotorrealistas y referencias para los decorados.
  • Gemelos digitales y cartografía: Las plataformas geoespaciales transmiten grandes reconstrucciones de ciudades, obras y redes de infraestructura mediante splats, junto con mosaicos 3D tradicionales.
  • Simulación de conducción y robótica: Las reconstrucciones de trayectos reales permiten a los equipos de vehículos autónomos volver a renderizar escenas grabadas desde nuevas posiciones de cámara para probar modelos de percepción.

Las bibliotecas de código abierto, como gsplat, ofrecen rasterizadores CUDA para entrenar splats, y Khronos Group ha ratificado KHR_gaussian_splatting, una extensión de glTF 2.0 para almacenar splats gaussianos, desarrollada con aportaciones de Cesium, Esri, Niantic Spatial, NVIDIA, Huawei y Autodesk.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático