Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

3D Gaussian Splatting

  • Aussi appelé: 3DGS, Gaussian Splatting, Gaussian splats, Gaussian radiance field
  • Catégorie: Sensing › 3D maps & reconstruction
  • Mots-clés: scene-representation, 3d-reconstruction, rendering, slam, computer-vision, simulation

Une représentation de scène qui modélise un environnement 3D comme un grand ensemble de taches gaussiennes colorées et semi-transparentes, qui peuvent être optimisées à partir de photos et rendues de façon photoréaliste en temps réel.

Définition

3D Gaussian Splatting (3DGS) est une méthode de reconstruction et de rendu de scènes 3D, présentée par Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler et George Drettakis à SIGGRAPH 2023. Une scène y est représentée par un ensemble de gaussiennes 3D, chacune dotée d'une position, d'une covariance qui fixe sa taille et son orientation, d'une opacité et d'une couleur dépendant du point de vue, stockée sous forme de coefficients d'harmoniques sphériques. Pour rendre une image, les gaussiennes sont projetées sur le plan image, triées par profondeur et mélangées de l'avant vers l'arrière, un processus appelé splatting.

La représentation est apprise à partir de photographies dont les poses de caméra sont connues, généralement obtenues avec un logiciel de structure from motion tel que COLMAP, qui fournit aussi un nuage de points épars servant à initialiser les gaussiennes. Comme le rastériseur est différentiable, les paramètres de chaque gaussienne peuvent être optimisés par descente de gradient pour réduire l'écart entre images rendues et images réelles. Pendant l'entraînement, des gaussiennes sont ajoutées dans les régions insuffisamment reconstruites, divisées là où elles sont trop grandes et supprimées lorsqu'elles deviennent presque transparentes.

Par rapport aux champs de radiance neuronaux (NeRF), qui stockent une scène dans un réseau de neurones interrogé le long des rayons de la caméra, le Gaussian Splatting est une représentation explicite, rendue par une rastérisation rapide par tuiles plutôt que par ray marching. Cela permet un rendu en temps réel à haute résolution et un entraînement plus rapide, au prix d'une consommation mémoire plus élevée, car une scène peut contenir un très grand nombre de gaussiennes. Comme les gaussiennes sont explicites, elles peuvent être déplacées, modifiées, attachées à des objets ou supprimées, ce qui est plus difficile avec un réseau implicite.

La robotique utilise le 3DGS de plusieurs façons. Comme représentation cartographique, il permet des systèmes de SLAM dense qui suivent la caméra et construisent en même temps une carte photoréaliste. Comme ressource de simulation, une scène réelle reconstruite peut être associée à un simulateur physique afin que des politiques visuelles soient entraînées ou testées sur des images réalistes de l'environnement de déploiement réel. Ses limites incluent les surfaces réfléchissantes ou transparentes, une géométrie moins précise que ne le laisse penser l'apparence rendue, et la nécessité d'une bonne couverture de la scène par la caméra.

Pourquoi c'est important

Le 3DGS a rendu la reconstruction photoréaliste de lieux réels assez rapide pour être rendue en temps réel, ce qui permet aux robots de construire des cartes réalistes et aux équipes de transformer le scan d'une pièce réelle en données d'entraînement visuelles. Il est devenu un pont largement utilisé entre environnements réels et simulation pour l'apprentissage robotique fondé sur la vision.

Applications principales

  • Simulation photoréaliste — rendu de vues de caméra réalistes pour entraîner et tester des politiques visuelles
  • SLAM dense — construction de cartes photoréalistes tout en suivant la pose de la caméra
  • Jumeaux numériques — reconstruction d'espaces de travail, d'usines ou de logements réels pour la planification et l'inspection
  • Navigation de drones — fourniture d'environnements visuels réalistes pour le vol fondé sur la vision
  • Édition de scène — insertion, déplacement ou suppression d'objets pour créer des scènes d'entraînement variées

En pratique

Une équipe filme généralement une vidéo ou prend une série de photos de l'espace de travail du robot, estime les poses de caméra avec COLMAP ou un outil similaire, puis entraîne un modèle de Gaussian Splatting avec une implémentation open source, comme le code des auteurs originaux ou splatfacto de Nerfstudio. La scène entraînée peut être rendue depuis n'importe quel point de vue : l'équipe place donc des caméras virtuelles correspondant aux caméras embarquées du robot pour générer des images d'entraînement, ou aligne le splat sur la géométrie de collision d'un simulateur physique pour qu'un robot simulé voie des vues réalistes en se déplaçant. Pour la cartographie, les équipes utilisent des systèmes de SLAM par Gaussian Splatting avec une caméra RGB-D ou monoculaire, et valident la géométrie à l'aide de capteurs de profondeur, car les images rendues peuvent sembler correctes alors que la forme sous-jacente est inexacte.

Idées reçues

  • Le Gaussian Splatting est un réseau de neurones — c'est un ensemble explicite de primitives optimisées ; aucun réseau de neurones n'est nécessaire pour le rendu
  • Un rendu photoréaliste signifie une géométrie exacte — l'apparence peut être correcte alors que la profondeur et les surfaces sont imprécises, la géométrie doit donc être validée séparément
  • Le 3DGS remplace la simulation physique — il gère l'apparence et le rendu ; le contact et la dynamique exigent toujours un moteur physique et une géométrie de collision
  • Il fonctionne avec n'importe quel jeu de photos — il lui faut une bonne couverture des points de vue et des poses de caméra précises, et il peine avec les contenus réfléchissants, transparents ou en mouvement

Qui devrait le savoir

  • Ingénieurs en perception qui construisent des cartes et des représentations de scène
  • Chercheurs en apprentissage robotique qui entraînent des politiques fondées sur la vision
  • Ingénieurs en simulation qui créent des environnements réalistes
  • Développeurs de navigation de drones

Technologies associées

  • Champs de radiance neuronaux (Neural Radiance Fields, NeRF)
  • Structure from Motion (COLMAP)
  • SLAM
  • Rendu différentiable (Differentiable Rendering)
  • Nuage de points (Point Cloud)
  • Nerfstudio

Termes associés

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

Projets associés

  • 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

Vidéos

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

Wikipédia

  • Gaussian splatting

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.