Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

3D Gaussian Splatting

  • También llamado: 3DGS, Gaussian Splatting, Gaussian splats, Gaussian radiance field
  • Categoría: Sensing › 3D maps & reconstruction
  • Etiquetas: scene-representation, 3d-reconstruction, rendering, slam, computer-vision, simulation

Una representación de escenas que modela un entorno 3D como un gran conjunto de manchas gaussianas coloreadas y semitransparentes, que pueden optimizarse a partir de fotos y renderizarse de forma fotorrealista en tiempo real.

Definición

3D Gaussian Splatting (3DGS) es un método para reconstruir y renderizar escenas 3D, presentado por Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler y George Drettakis en SIGGRAPH 2023. Una escena se representa como un conjunto de gaussianas 3D, cada una con una posición, una covarianza que fija su tamaño y orientación, una opacidad y un color dependiente del punto de vista almacenado como coeficientes de armónicos esféricos. Para renderizar una imagen, las gaussianas se proyectan sobre el plano de la imagen, se ordenan por profundidad y se mezclan de delante hacia atrás, un proceso llamado splatting.

La representación se aprende a partir de fotografías con poses de cámara conocidas, que normalmente se obtienen con software de structure from motion como COLMAP, que además proporciona una nube de puntos dispersa para inicializar las gaussianas. Como el rasterizador es diferenciable, los parámetros de cada gaussiana pueden optimizarse por descenso de gradiente para reducir la diferencia entre las imágenes renderizadas y las reales. Durante el entrenamiento se añaden gaussianas en las regiones poco reconstruidas, se dividen las que son demasiado grandes y se eliminan las que se vuelven casi transparentes.

Frente a los campos de radiancia neuronales (NeRF), que almacenan una escena en una red neuronal consultada a lo largo de los rayos de la cámara, el Gaussian splatting es una representación explícita que se renderiza con una rasterización rápida por teselas en lugar de ray marching. Esto permite renderizar en tiempo real a alta resolución y entrenar más rápido, a costa de un mayor uso de memoria, ya que una escena puede contener un número muy grande de gaussianas. Como las gaussianas son explícitas, pueden moverse, editarse, asociarse a objetos o eliminarse, algo más difícil con una red implícita.

La robótica usa 3DGS de varias maneras. Como representación de mapas, sirve de base a sistemas de SLAM denso que siguen la cámara y construyen a la vez un mapa fotorrealista. Como recurso de simulación, una escena real reconstruida puede combinarse con un simulador físico para que las políticas visuales se entrenen o se prueben con imágenes realistas del entorno real de despliegue. Entre sus limitaciones están las superficies reflectantes o transparentes, una geometría menos precisa de lo que sugiere la apariencia renderizada y la necesidad de una buena cobertura de la escena con la cámara.

Por qué importa

3DGS hizo que la reconstrucción fotorrealista de lugares reales fuera lo bastante rápida para renderizarse en tiempo real, lo que permite a los robots construir mapas realistas y a los equipos convertir el escaneo de una habitación real en datos visuales de entrenamiento. Se ha convertido en un puente muy utilizado entre los entornos reales y la simulación para el aprendizaje de robots basado en visión.

Aplicaciones clave

  • Simulación fotorrealista — renderizar vistas de cámara realistas para entrenar y probar políticas visuales
  • SLAM denso — construir mapas fotorrealistas mientras se sigue la pose de la cámara
  • Gemelos digitales — reconstruir espacios de trabajo, fábricas u hogares reales para planificación e inspección
  • Navegación de drones — proporcionar entornos visuales realistas para el vuelo basado en visión
  • Edición de escenas — insertar, mover o quitar objetos para crear escenas de entrenamiento variadas

En la práctica

Un equipo suele grabar un vídeo o un conjunto de fotos del espacio de trabajo del robot, estimar las poses de cámara con COLMAP o una herramienta similar y entrenar un modelo de Gaussian splatting con una implementación de código abierto, como el código de los autores originales o splatfacto de Nerfstudio. La escena entrenada puede renderizarse desde cualquier punto de vista, así que colocan cámaras virtuales que coinciden con las cámaras a bordo del robot para generar imágenes de entrenamiento, o alinean el splat con la geometría de colisión de un simulador físico para que un robot simulado vea vistas realistas mientras se mueve. Para el mapeo, los equipos usan sistemas de SLAM con Gaussian splatting con una cámara RGB-D o monocular, y validan la geometría con sensores de profundidad, porque las imágenes renderizadas pueden parecer correctas aunque la forma subyacente sea inexacta.

Ideas erróneas comunes

  • El Gaussian splatting es una red neuronal — es un conjunto explícito de primitivas optimizadas; no hace falta ninguna red neuronal para renderizarlo
  • Un render fotorrealista implica una geometría precisa — la apariencia puede ser correcta mientras la profundidad y las superficies son imprecisas, por lo que la geometría necesita una validación aparte
  • 3DGS sustituye a la simulación física — se ocupa de la apariencia y el renderizado; el contacto y la dinámica siguen necesitando un motor de física y geometría de colisión
  • Funciona con cualquier conjunto de fotos — necesita una buena cobertura de puntos de vista y poses de cámara precisas, y tiene dificultades con contenido reflectante, transparente o en movimiento

Quién debería saberlo

  • Ingenieros de percepción que construyen mapas y representaciones de escenas
  • Investigadores en aprendizaje de robots que entrenan políticas basadas en visión
  • Ingenieros de simulación que crean entornos realistas
  • Desarrolladores de navegación de drones

Tecnologías relacionadas

  • Campos de radiancia neuronales (Neural Radiance Fields, NeRF)
  • Structure from Motion (COLMAP)
  • SLAM
  • Renderizado diferenciable (Differentiable Rendering)
  • Nube de puntos (Point Cloud)
  • Nerfstudio

Términos relacionados

  • Neural Radiance Field
  • Point Cloud
  • SLAM
  • Depth Camera

Proyectos relacionados

  • GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics

Vídeos

  • 3D Gaussian Splatting - Why Graphics Will Never Be The Same: IndividualKex
  • 3D Gaussian Splatting! - Computerphile: Computerphile

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.