Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

3D Gaussian Splatting

  • Também chamado: 3DGS, Gaussian Splatting, Gaussian splats, Gaussian radiance field
  • Categoria: Sensing › 3D maps & reconstruction
  • Tags: scene-representation, 3d-reconstruction, rendering, slam, computer-vision, simulation

Uma representação de cena que modela um ambiente 3D como um grande conjunto de manchas gaussianas coloridas e semitransparentes, que podem ser otimizadas a partir de fotos e renderizadas de forma fotorrealista em tempo real.

Definição

3D Gaussian Splatting (3DGS) é um método para reconstruir e renderizar cenas 3D, apresentado por Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler e George Drettakis no SIGGRAPH 2023. Uma cena é representada como um conjunto de gaussianas 3D, cada uma com uma posição, uma covariância que define seu tamanho e orientação, uma opacidade e uma cor dependente do ponto de vista armazenada como coeficientes de harmônicos esféricos. Para renderizar uma imagem, as gaussianas são projetadas no plano da imagem, ordenadas por profundidade e combinadas da frente para trás, um processo chamado splatting.

A representação é aprendida a partir de fotografias com poses de câmera conhecidas, normalmente obtidas com software de structure from motion como o COLMAP, que também fornece uma nuvem de pontos esparsa para inicializar as gaussianas. Como o rasterizador é diferenciável, os parâmetros de cada gaussiana podem ser otimizados por descida de gradiente para reduzir a diferença entre as imagens renderizadas e as reais. Durante o treinamento, gaussianas são adicionadas em regiões pouco reconstruídas, divididas onde são grandes demais e removidas quando ficam quase transparentes.

Em comparação com os campos de radiância neurais (NeRFs), que armazenam uma cena em uma rede neural consultada ao longo dos raios da câmera, o Gaussian splatting é uma representação explícita renderizada com rasterização rápida por blocos em vez de ray marching. Isso permite renderização em tempo real em alta resolução e treinamento mais rápido, ao custo de maior uso de memória, já que uma cena pode conter um número muito grande de gaussianas. Como as gaussianas são explícitas, elas podem ser movidas, editadas, associadas a objetos ou excluídas, o que é mais difícil com uma rede implícita.

A robótica usa o 3DGS de várias formas. Como representação de mapa, ele dá suporte a sistemas de SLAM denso que rastreiam a câmera e constroem um mapa fotorrealista ao mesmo tempo. Como recurso de simulação, uma cena real reconstruída pode ser combinada com um simulador físico para que políticas visuais sejam treinadas ou testadas com imagens realistas do ambiente real de implantação. As limitações incluem superfícies reflexivas ou transparentes, uma geometria menos precisa do que a aparência renderizada sugere e a necessidade de uma boa cobertura da cena pela câmera.

Por que importa

O 3DGS tornou a reconstrução fotorrealista de lugares reais rápida o bastante para ser renderizada em tempo real, o que permite que robôs construam mapas realistas e que equipes transformem o escaneamento de uma sala real em dados visuais de treinamento. Ele se tornou uma ponte amplamente usada entre ambientes reais e simulação para o aprendizado de robôs baseado em visão.

Principais aplicações

  • Simulação fotorrealista — renderizar vistas de câmera realistas para treinar e testar políticas visuais
  • SLAM denso — construir mapas fotorrealistas enquanto se rastreia a pose da câmera
  • Gêmeos digitais — reconstruir espaços de trabalho, fábricas ou casas reais para planejamento e inspeção
  • Navegação de drones — fornecer ambientes visuais realistas para voo baseado em visão
  • Edição de cenas — inserir, mover ou remover objetos para criar cenas de treinamento variadas

Na prática

Uma equipe normalmente grava um vídeo ou um conjunto de fotos do espaço de trabalho do robô, estima as poses de câmera com o COLMAP ou uma ferramenta semelhante e treina um modelo de Gaussian splatting com uma implementação de código aberto, como o código dos autores originais ou o splatfacto do Nerfstudio. A cena treinada pode ser renderizada de qualquer ponto de vista, então a equipe posiciona câmeras virtuais que correspondem às câmeras embarcadas do robô para gerar imagens de treinamento, ou alinha o splat com a geometria de colisão de um simulador físico para que um robô simulado veja vistas realistas enquanto se move. Para mapeamento, as equipes usam sistemas de SLAM com Gaussian splatting com uma câmera RGB-D ou monocular e validam a geometria com sensores de profundidade, porque imagens renderizadas podem parecer corretas enquanto a forma subjacente é imprecisa.

Equívocos comuns

  • Gaussian splatting é uma rede neural — é um conjunto explícito de primitivas otimizadas; nenhuma rede neural é necessária para renderizá-lo
  • Uma renderização fotorrealista significa geometria precisa — a aparência pode estar correta enquanto a profundidade e as superfícies são imprecisas, então a geometria precisa de validação separada
  • O 3DGS substitui a simulação física — ele cuida da aparência e da renderização; contato e dinâmica ainda exigem um motor de física e geometria de colisão
  • Funciona com qualquer conjunto de fotos — precisa de boa cobertura de pontos de vista e de poses de câmera precisas, e tem dificuldade com conteúdo reflexivo, transparente ou em movimento

Quem deve saber

  • Engenheiros de percepção que constroem mapas e representações de cena
  • Pesquisadores de aprendizado de robôs que treinam políticas baseadas em visão
  • Engenheiros de simulação que criam ambientes realistas
  • Desenvolvedores de navegação de drones

Tecnologias relacionadas

  • Campos de radiância neurais (Neural Radiance Fields, NeRF)
  • Structure from Motion (COLMAP)
  • SLAM
  • Renderização diferenciável (Differentiable Rendering)
  • Nuvem de pontos (Point Cloud)
  • Nerfstudio

Termos relacionados

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

Projetos 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

Wikipédia

  • Dispersão gaussiana

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.