3D Gaussian splatting : de la création de scènes 3D en temps réel qui va vous laisser pantois |
10 Mai 2024 à 16h03 • 45737 vues
•3D Gaussian splatting : de la création de scènes 3D en temps réel qui va vous laisser pantois |
10 Mai 2024 à 16h03 • 45737 vues
•Une équipe de chercheurs issus de l’Inria (Institut national de recherche en sciences et technologies du numérique), de l’Université Côte d'Azur et de la TU Wien (Université technique de Vienne) ont présenté, en amont du SIGGRAPH 2024 qui se déroulera fin juillet, un papier intitulé « A Hierarchical 3D Gaussian Representation for Real-Time Rendering of Very Large Datasets ». Comme le titre l’explicite, la publication porte sur une technique de rendu en temps réel, appelée 3D Gaussian splatting ; elle est censée offrir des visuels d’excellente qualité tout en garantissant un bon niveau de performances.
Difficile de traduire le Gaussian splatting en français ; cela donnerait quelque chose comme éclaboussures gaussiennes, ce qui ne rend pas la chose plus intelligible. Pour la faire simple et courte, c’est une nouvelle technique de NVS (Novel View Synthesis – la synthèse de vues) très prometteuse. En effet, elle doit permette de rendre en temps réel des scènes photoréalistes à partir d'un petit nombre d'images ; ce, en 1080p à plus de 100 images par seconde, avec un coup de machine learning. Vous l’imaginez, dans de nombreux domaines – cinéma, architecture, jeux vidéo, imagerie médicale, etc – créer des environnements 3D à partir de simples vues 2D est une perspective alléchante.
De manière générale, le NVS consiste à recréer des scènes complètes en temps réel à partir d’échantillons d’images : par exemple recréer virtuellement la pièce dans laquelle vous vous trouvez en se basant sur quelques clichés.
Naturellement, à mesure que la quantité d’éléments à générer augmente, le processus se complexifie. Pour les cas qui intéressent l’équipe de chercheurs susmentionnée, nous parlons de « scènes à grande échelle, avec des dizaines de milliers d'images d'entrée sur une distance de plusieurs kilomètres au niveau du sol ». Grâce aux progrès de l'apprentissage automatique, la NVS s’est toutefois nettement perfectionnée ces dernières années.
Comme l’expliquent les auteurs, historiquement, la méthode traditionnelle de rendu est ce qu’ils qualifient de « Image-Based and Mesh-based reconstructions ». Concrètement, c’est un procédé qui mêle des techniques de SfM (Structure from Motion) et de MVS (Multi-View Stereo). Ils pointent toutefois deux limites : sa capacité, limitée à une pièce où à quelques bâtiments en raison de la puissance de calcul nécessaire, et un mauvais rendu de certains objets tels que la végétation et les matériaux orthotropes.
Prosaïquement, c’est de la photogrammétrie qui consiste à estimer les positions de la caméra dans l'espace et à trouver des points communs dans les images pour créer un maillage. Le modèle obtenu peut être texturé, ce qui permet des visualisations photoréalistes. L’avantage de cette méthode de vision par ordinateur largement utilisée jusqu'ici, est sa grande précision. Comme mentionné par les auteurs, cette technique nécessite toutefois une grande quantité d'images haute résolution et requiert de nombreux calculs ; cela limite sa capacité à traiter de larges environnements.
En 2019, les NeRFs (Neural Radiance Fields ou « champs de radiance neuronaux ») ont révolutionné le domaine. Le Mip-NeRF 360 de Google a introduit des outils d’apprentissage automatique pour représenter une scène. NVIDIA avait emboîté le pas de Google avec Instant NGP.
Tandis que les scènes 3D sont généralement des grilles de voxels ou des maillages de polygones, les champs neuronaux représentent l’ensemble des coordonnées spatiales et temporelles d’une scène et utilise l'IA pour se rapprocher du comportement de la lumière dans le monde réel. La puissance de déduction de ces réseaux n'est plus à démontrer. Néanmoins, comme toujours, l'entraînement prend du temps (plusieurs dizaines d’heures pour une scène).
Un algorithme de champ neuronal typique © Xie et al
En avril 2022, NVIDIA présentait Instant NeRF à travers la séquence ci-dessous. Comme l'explicite le nom de la technologie, elle promet un rendu rapide sur les cartes de l’entreprise grâce aux optimisations de la bibliothèque Tiny CUDA Neural Networks. Concrètement, l’entreprise mise sur technique développée pour l’occasion appelée codage de grille de hachage multi-résolution. NVIDIA revendique une accélération pouvant atteindre un facteur 1000 par rapport aux solutions concurrentes, arguant que la scène 3D ci-dessous est restituée en quelques dizaines de millisecondes.
Factuellement, la société écrivait qu'un NeRF remplit essentiellement les blancs, en entraînant un petit réseau neuronal à reconstruire la scène en prédisant la couleur de la lumière rayonnant dans n'importe quelle direction, à partir de n'importe quel point de l'espace tridimensionnel. Cette approche permet de contourner les occlusions - lorsque des objets vus sur certaines images sont bloqués par des obstacles tels que des piliers sur d'autres images.
David Luebke, vice-président de la recherche graphique chez NVIDIA, résumait : « Si les représentations 3D traditionnelles comme les maillages polygonaux s'apparentent à des images vectorielles, les NeRF sont comme des images bitmap : elles capturent de manière dense la façon dont la lumière rayonne à partir d'un objet ou à l'intérieur d'une scène. En ce sens, Instant NeRF pourrait être aussi important pour la 3D que les appareils photo numériques et la compression JPEG l'ont été pour la photographie 2D, augmentant considérablement la vitesse, la facilité et la portée de la capture et du partage 3D ».
Enfin, en 2023, plusieurs chercheurs (Georgios Kopanas, Bernhard Kerbl et George Drettakis de l’équipe de recherche GraphDeco, en collaboration avec Thomas Leimkühler du Max Planck Institut) ont présenté à la SIGGRAPH 2023 le 3D Gaussian splatting. Ils prétendent que leur méthode permet d’égaler en 30 minutes la qualité de rendu de celle de Google et en 7 minutes celle de NVIDIA. Ce, avec une excellente qualité d’image et avec un rendu au-delà de 100 images par seconde.
Le 3D Gaussian splatting et les NeRF partagent certains points communs, à commencer par les champs de radiance. En outre, ils sont adaptés à des environnements vastes, pour lesquels photographier exhaustivement depuis différents points de vue serait un travail titanesque. Il y a toutefois quelques différences.
Par exemple, le NeRF utilise des réseaux neuronaux pour stocker les fichiers sous forme de poids neuronaux qui définissent un champ de radiance à l'aide de voxels, de hachages, de grilles ou de points. Le splatting gaussien stocke les fichiers sous la forme d'une collection de points gaussiens. Pour le formuler autrement, le 3D Gaussian Splatting représente une scène 3D comme des millions de particules, des gaussiennes 3D. En outre, le NeRF utilise le traçage de rayons pour générer des images. Le splatting gaussien a recours à de la « rastérisation gaussienne » qui tient compte de quatre paramètres : la position, la covariance, la couleur et la transparence.
Dans une publication datée du 8 décembre 2023 et mise à jour en janvier 2024 sur le site de l’Inria, Georgios Kopanas explique qu’il y a trois éléments clés pour atteindre une qualité visuelle satisfaisante à une fréquence d’images élevée tout en garantissant un temps d'apprentissage compétitif :
« Tout d'abord, à partir de points épars produits lors de la calibration de la caméra, nous représentons la scène avec des gaussiennes 3D qui préservent les propriétés souhaitables des champs de radiance volumétrique continue pour l'optimisation de la scène tout en évitant les calculs inutiles dans l'espace vide. Ensuite, nous effectuons une optimisation et un contrôle de la densité entrelacés des gaussiennes 3D, notamment en optimisant la covariance anisotrope (avec un côté très fin quand l’autre est très petit) afin d'obtenir une représentation précise de la scène. Troisième étape, nous développons un algorithme de rendu rapide tenant compte de la visibilité qui prend en charge l'anisotropie et qui accélère l'apprentissage et permet un rendu en temps réel. La qualité visuelle de notre méthode est égale à l'état de l'art et permet le rendu en temps réel sur plusieurs jeux de données habituellement utilisés par des méthodes concurrentes ».
Son comparse George Drettakis, responsable de l'équipe GraphDeco, ajoute : « Techniquement parlant, notre méthode n’est pas du machine learning (apprentissage machine) stricto sensu mais la méthode se base sur des techniques de machine learning pour s’entraîner et améliorer la qualité du rendu. »
En pratique, un papier publié sur TechTarget par George Lawton rapporte que le temps d'apprentissage du 3D Gaussian splatting est environ 50 fois plus rapide que celui des NeRF pour une qualité égale ou supérieure ; que le 3D Gaussian splatting peut rendre plus de 135 FPS, contre 0,1 FPS pour les NeRF de la plus haute qualité et 8 FPS pour les NeRF de moindre qualité mais plus rapides. L’article de l’Inria n’avance pas de tels écarts, mais expose une vitesse d'affichage limitée à 15 images par seconde pour InstantNGP de NVIDIA. Le papier souligne aussi que « pour des scènes complètes et non limitées (plutôt que des objets isolés) et un rendu en 1080p, aucune méthode actuelle ne peut atteindre des taux d'affichage en temps réel » digne du 3D Gaussian splatting. Dans la séquence ci-dessus, c'est une RTX 3090 qui gère le rendu en temps réel du 3DGS.
Nous en avons fini avec la théorie ; place à la pratique. Les auteurs de la publication ont élaboré un nouveau modèle hiérarchisé. Plutôt que de traiter un ensemble de données comme une « entité monolithique, », il adopte une approche qualifiée de « diviser pour mieux régner ». Elle aboutit après entraînement à une hiérarchie « arborescente » structurée avec un système de LOD (Level-of-detail) qui relève trois défis simultanément : la génération d'une structure LOD avec plusieurs niveaux de détail, une politique pour sélectionner le niveau approprié pour une vue donnée, et la capacité de passer de l'un à l'autre sans causer d'artefacts perturbateurs. Dans les faits, cette solution permet de limiter le nombre de gaussiennes rendues à chaque image, ce qui réduit les besoins en ressources.
Les auteurs montrent les résultats pour des scènes capturées avec des dizaines de milliers d'images. Elles couvrent des trajectoires allant jusqu'à plusieurs kilomètres qui peuvent durer jusqu'à une heure. Voici le détail pour les différentes séquences, suivi d'une image montrant le dispositif de caméras utilisé.
Quant au rendu final, le voici :
La documentation précise que l'optimisation primaire, l'optimisation d'un seul bloc et l'optimisation de la hiérarchie prennent chacune une heure sur un GPU NVIDIA V100 (32 Go), avec des pics d'utilisation de la mémoire de 2 à 5 Go, 8 à 10 Go et 11 à 16 Go, respectivement. Après l'optimisation par morceau et la consolidation, la taille des fichiers pour les scènes hiérarchiques est de 6, 17, 27 et 88 Go, soit environ 68 % de plus que les fichiers 3DGS non hiérarchiques.
En matière de performances, la publication fournit les valeurs ci-dessous pour différentes méthodes. Si le terme de FPS (Frame per Second) se passe d’explications, les autres sont sans doute plus obscurs. PSNR (Peak Signal to Noise Ratio) mesure la la qualité de reconstruction de l'image compressée par rapport à l'image originale (plus la valeur est élevée, mieux c’est) ; LPIPS (Learned Perceptual Image Patch Similarity) et SSIM (Structural Similarity Index Measure) quantifient la similarité entre deux images données.
Voici également quelques comparaisons visuelles avec d’autres méthodes :
Les auteurs de la publication sont Bernhard Kerbl, Andreas Meuleman, Georgios Kopanas, Michael Wimmer, Alexandre Lanvin et George Drettakis. Le premier a publié quelques messages sur le réseau social X. Vous pouvez également consulter le document complet à cette adresse.
Happy to announce the results of our latest research, which takes 3D Gaussian Splatting to the next level: "A Hierarchical 3D Gaussian Representation for Real-Time Rendering of Very Large Datasets," which has been accepted at #SIGGRAPH2024!???? Find it here: https://t.co/ZjspxIXPXo pic.twitter.com/QNJ9kRY80B
— Bernhard Kerbl (@Snosixtytwo) May 1, 2024