Explora Gaussian Splatting para la reconstrucción fotorrealista de escenas 3D. Descubre cómo permite el renderizado en tiempo real y se integra con Ultralytics para la visión.
El splatting gaussiano es una técnica moderna de rasterización utilizada en gráficos por ordenador y visión artificial para reconstruir escenas 3D fotorrealistas a partir de un conjunto de imágenes 2D. A diferencia del modelado 3D tradicional, que se basa en mallas poligonales, o los recientes avances en IA como Neural Radiance Fields (NeRF), que utilizan redes neuronales para aproximar una escena, el Gaussian Splatting representa una escena como una colección de millones de distribuciones gaussianas 3D (elipsoides). Este método permite el renderizado en tiempo real a altas velocidades de fotogramas (a menudo superiores a 100 FPS) mientras se mantiene una fidelidad visual excepcional, resolviendo así uno de los principales cuellos de botella en el rendimiento que se encontraban en los métodos de síntesis de vistas anteriores .
La idea central gira en torno a representar el espacio 3D de forma explícita en lugar de implícita. En un flujo de trabajo típico, el proceso comienza con una nube de puntos dispersos generada a partir de un conjunto de fotos utilizando una técnica llamada Estructura a partir del movimiento (SfM). Cada punto de esta nube se inicializa entonces como una gaussiana 3D.
Durante el proceso de entrenamiento, el sistema optimiza varios parámetros para cada gaussiana:
El término «splatting» se refiere al proceso derasterización en el que estas gaussianas 3D se proyectan —o «splatten»— sobre el plano de la cámara 2D para formar una imagen. Esta proyección es totalmente diferenciable, lo que significa que se pueden utilizar algoritmos estándar de descenso de gradiente para minimizar la diferencia entre la imagen renderizada y la foto original de referencia.
Aunque ambas técnicas tienen como objetivo generar vistas novedosas de una escena, difieren fundamentalmente en su arquitectura y rendimiento. NeRF (Neural Radiance Fields) codifica una escena dentro de los pesos de una red neuronal. Renderizar un NeRF requiere consultar esta red millones de veces por cada fotograma (ray marching), lo cual es computacionalmente costoso y lento.
Por el contrario, Gaussian Splatting utiliza una representación explícita (la lista de gaussianas). Esto le permite utilizar una rasterización eficiente basada en mosaicos, similar a la forma en que los videojuegos renderizan los gráficos. En consecuencia, Gaussian Splatting es significativamente más rápido de entrenar y renderizar que los NeRF, lo que lo hace más viable para aplicaciones de consumo y inferencia en tiempo real.
La velocidad y la calidad de Gaussian Splatting han abierto nuevas puertas en diversas industrias:
Para que el splatting gaussiano funcione de manera eficaz, las imágenes de entrenamiento suelen tener que ser estáticas. Los objetos en movimiento (como peatones o coches) en las fotos originales pueden provocar artefactos denominados «flotadores». Las canalizaciones avanzadas utilizan la segmentación de instancias para enmascarar automáticamente estos elementos dinámicos antes de entrenar el modelo de splat.
Ultralytics permite a los equipos gestionar conjuntos de datos y entrenar modelos que pueden ayudar en esta fase de preprocesamiento. A continuación se muestra cómo se podría utilizar un modelo de segmentación para crear máscaras para un conjunto de datos destinado a la reconstrucción 3D:
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image from the scan dataset
# Class 0 is 'person' in COCO - we mask them out to keep the scene static
results = model.predict("scan_frame_001.jpg", classes=[0])
# Save the generated mask to exclude the person from the 3D reconstruction
for result in results:
result.save_masks("scan_frame_001_mask.png")
El splatting gaussiano representa un cambio en la visión por ordenador hacia métodos híbridos que combinan la capacidad de aprendizaje del aprendizaje profundo con la eficiencia de los gráficos por ordenador clásicos. Esta técnica está evolucionando rápidamente, y los investigadores están explorando formas de comprimir el tamaño de los archivos (que pueden ser grandes) e integrarla con la IA generativa para crear activos 3D a partir de indicaciones de texto. A medida que los aceleradores de hardware como las GPU continúan mejorando, es probable que el Gaussian Splatting se convierta en el estándar para capturar y renderizar el mundo real en formato digital.