Ad image

Créer du contenu 3D avec le 3D gaussian splatting

Service Com'
Lu il y a 22 minutes


Les mondes 3D virtuels sont connus de tous, surtout via les jeux vidéo et les effets spéciaux dans les films. Avec l’architecture et la conception de produits, ces domaines ont été à l’origine de la synthèse d’images par ordinateur. Depuis les années 1970, de nombreux chercheurs ont développé des -algorithmes pour la création de contenus et l’affichage en trois dimensions. Aujourd’hui, la 3D est très répandue. Elle est utilisée dans le commerce en ligne, l’immobilier, pour la simulation (usines, conduite autonome…), la formation (en réalité virtuelle et augmentée) et même pour des expériences ludiques, également en réalité virtuelle.


George Drettakis  Par George Drettakis, directeur de recherche au centre Inria d’Université Côte d’Azur

Dans le cas des jeux vidéo, le contenu 3D correspond souvent à quelque chose qui n’existe pas. Mais pour beaucoup d’autres applications, par exemple un projet d’aménagement urbain ou le décor virtuel d’un lieu réel pour un film, il doit reproduire l’existant. Jusqu’à récemment, le seul moyen de créer ce type de scène 3D passait par le travail fastidieux et complexe d’infographistes, suivi d’un lourd calcul pour « rendre » l’image finale. Les méthodes de vision par ordinateur offrent une alternative qui permet de créer la 3D à partir de photos. Il s’agit souvent des maillages qui représentent la forme ou la géométrie d’une scène. En revanche, la qualité visuelle du contenu créé par ces approches n’est souvent pas suffisante. L’équipe projet GraphDeco de l’Inria a développé une méthode, appelée 3D gaussian splatting, qui simplifie ce processus et permet de créer rapidement une réplique d’une scène réelle. Cette méthode offre la capacité d’afficher en temps réel la réplique de la scène avec une qualité visuelle élevée. Depuis sa publication, en 2023, la méthode a été adoptée très largement, à la fois par la recherche et par l’industrie, permettant la création et l’affichage 3D de haute qualité pour nombreuses applications comme le commerce en ligne, la réalité virtuelle et les décors virtuels.


Ce qu’il faut retenir


Construire une représentation 3D d’une scène à partir d’un ensemble de photos 2D évite le lourd et complexe travail de création de contenu 3D traditionnellement réalisé par un infographiste. Plusieurs méthodes ont été développées par les chercheurs en vision par ordinateur, comme le rendu à base d’images et les champs de radiance neuronaux. Une nouvelle approche, développée en France et baptisée 3D gaussian splatting, a révolutionné le domaine en permettant de produire une qualité visuelle élevée avec un temps de calcul réduit.

1. Création de contenu 3D « à la main »

Traditionnellement, le contenu 3D est créé par des infographistes, qui utilisent un processus fastidieux. Les logiciels de création de contenu 3D comme Autodesk Maya, 3DS Max ou encore le logiciel libre Blender ont des interfaces graphiques très complexes, nécessitant un temps d’apprentissage très long pour pouvoir créer le moindre objet 3D. L’infographiste doit d’abord dessiner la géométrie (c’est-à-dire les formes) de la scène. Cette géométrie est généralement représentée par un maillage de triangles, qui sont bien adaptés aux systèmes d’affichage et notamment aux cartes graphiques. Il faut ensuite définir l’apparence de chaque objet. Par exemple, pour une table, l’infographiste va choisir un modèle de matériau qui correspond au bois et l’associer avec le maillage de la table. Ensuite, il faut placer une caméra dans la scène et définir des lumières. Une fois tous ces éléments en place, un algorithme de simulation d’éclairage tourne afin de calculer la propagation de la lumière et de donner ce que l’on appelle un rendu réaliste. Le calcul de l’éclairage est en général effectué par un algorithme de lancers de chemins lumineux de chaque pixel de l’image, en rebondissant sur les surfaces jusqu’à atteindre les lumières. Ce calcul peut être très coûteux si l’on souhaite un niveau de réalisme élevé.

Une autre solution consiste à utiliser les cartes graphiques avec des algorithmes dits de « rastérisation » pour calculer l’éclairage de manière rapide. Mais le niveau de réalisme n’est pas du tout le même qu’avec le lancer de chemins lumineux. Il est insuffisant pour des applications comme les effets spéciaux du cinéma et le commerce en ligne, où l’on cherche à faire croire que l’image présentée est réelle.

Pour éviter le processus long et compliqué de la création de géométrie et de matériaux, une autre option est d’obtenir directement le contenu 3D à partir de photos et de vidéos. Le but est de prendre plusieurs photos d’une scène (200 photos pour une grande pièce, par exemple) et ensuite de réaliser une représentation qui permet de naviguer en 3D, évitant à la fois le coût de la création du contenu et celui du calcul de l’éclairage.

2. Photogrammétrie et rendu à base d’images

Les chercheurs en vision par ordinateur et images de synthèse se penchent sur le problème de la reconstruction 3D à partir de photos depuis plusieurs décennies (fig. 1). Le premier problème à résoudre est l’estimation de la position et de l’orientation (« la pose ») de l’appareil photo utilisé pour réaliser chaque prise de vue. La solution à ce problème, appelé « calibration de caméras », réside dans les correspondances entre des images différentes : il faut identifier le même point 3D dans chaque image. Une fois les correspondances trouvées, on peut, grâce à plusieurs algorithmes d’optimisation, trianguler et estimer la position 3D de points de la scène. Avec un certain nombre de correspondances, on peut estimer le placement de la caméra. Au départ, l’identification des correspondances était manuelle, avec un utilisateur qui devait cliquer sur le même point dans les différentes images.

Image d'illustration de l'articleD.R.
CT 1078 CT 1078

À la fin des années 1990, des chercheurs ont utilisé ces approches pour construire des modèles 3D simples à partir d’images, par exemple avec des formes simples comme des polygones. L’approche manuelle a ses limites, ne passant pas à l’échelle, et c’est à la fin des années 2000 que les chercheurs en vision par ordinateur ont automatisé à la fois l’estimation du placement des caméras et la création des modèles 3D. Pendant ce calcul, on trouve plusieurs « points de calibration » qui correspondent à la géométrie de la scène. Parmi les principales avancées qui ont permis cette automatisation, on peut citer les travaux sur la matrice fondamentale, mise au point en France par Olivier Faugeras, expert en modélisation de la perception visuelle à l’Inria, qui peut être calculée à partir de sept correspondances entre deux images.

Ensuite les chercheurs ont développé d’autres algorithmes appelés « stéréo multivue » qui permettent la constitution de maillages, en ajoutant beaucoup plus de points 3D et en les reliant pour former des triangles. On peut ensuite créer des textures à partir des photos, que l’on applique par la suite sur les maillages 3D. Cependant, ces maillages sont imprécis : de nombreux détails ne sont pas reconstruits par manque de géométrie, alors qu’à d’autres endroits il y a trop de géométrie (par exemple, au lieu de reconstruire chaque feuille d’un arbre, un maillage englobe l’arbre en entier, avec des polygones superflus entre ce qui devrait être les feuilles).

Pour corriger ces problèmes d’imprécision et permettre la navigation dans la scène 3D avec une haute qualité visuelle, les chercheurs en vision, mais aussi en images de synthèse, ont conçu une approche appelée « rendu à base d’images » (fig. 2). L’idée est d’utiliser comme « support » la géométrie approximative composée grâce aux méthodes décrites précédemment pour projeter les pixels des photos d’entrée vers un nouveau point de vue, puis de « mélanger » ces pixels afin de générer l’image de la scène à partir du nouveau point de vue, permettant ainsi la navigation libre. Ce processus permet de récupérer des détails manquants dans les maillages texturés, mais étant donné que la géométrie est inexacte, ces projections secondaires le sont aussi, ce qui engendre des erreurs et des artefacts visuels. Plusieurs algorithmes ont été développés pour améliorer la qualité visuelle, en proposant des « mélanges intelligents » qui, par exemple, préservent la forme des objets par analyse du contenu de l’image. Ces algorithmes utilisaient parfois des techniques d’optimisation « classique », mais étaient limités par rapport aux approches dans le contexte de l’apprentissage profond (deep learning).

Image d'illustration de l'articleD.R.
CT 1078 2 CT 1078 2

3. Rendu neuronal

Vers 2019, les réseaux de neurones avaient déjà démontré leur capacité à générer des images de très haute qualité, grâce notamment au fait qu’ils peuvent encoder l’information visuelle d’une manière très efficace. Cette capacité d’encodage et de génération d’images a poussé la recherche à développer une nouvelle façon de créer des images depuis de nouveaux points de vue pour une scène où plusieurs sont disponibles. Au cœur de cette démarche figurent les algorithmes d’optimisation utilisés pour entraîner ces réseaux de neurones, en particulier celui de la descente du gradient stochastique (DGS). Par rapport aux algorithmes traditionnels pour l’optimisation, cette méthode permet d’optimiser un très grand nombre de variables d’une manière très efficace et est adaptée aux processeurs hautement parallèles des cartes graphiques.

Au lieu d’utiliser la géométrie approximative obtenue par la vision par ordinateur comme le fait le rendu à base d’images, l’idée est d’entraîner un réseau de neurones à générer des nouvelles images. La méthode, appelée « champs de radiance neuronaux » (neural radiance fields, ou NeRF), a révolutionné la « synthèse de nouvelles vues » et a complètement remplacé le rendu à base d’images (fig. 2). Le réseau de neurones prend en entrée une position 3D (x, y, z) et une direction de vue (typiquement représentée par des angles thêta et phi) et, en sortie, donne une « densité » optique et une couleur à ce point. Par conséquent, au lieu d’utiliser des maillages, le réseau de neurones représente la scène comme un volume, qui est très dense là où il y a de la matière. Pour créer une image, on lance des rayons à travers le volume et on accumule la densité et la couleur. Au fur et à mesure de l’optimisation, le volume s’approche du contenu de la scène. La qualité visuelle obtenue est extraordinaire.

La réussite des NeRF tient au fait qu’en remplaçant les maillages par un volume, le processus d’optimisation (dit aussi « entraînement ») du réseau de neurones est plus facile, car le volume est continu, ce qui facilite l’utilisation de la descente du gradient stochastique – algorithme clé pour tout l’apprentissage profond. Les maillages sont au contraire composés d’arêtes vives, ce qui entraîne des discontinuités qui empêchent l’optimisation de converger. Reste un problème : le coût de calcul pour le lancer de rayons et l’évaluation du réseau de neurones est prohibitif. Pour la méthode d’origine, il faut des dizaines d’heures sur une carte graphique pour l’entraînement sur une seule scène et la vitesse d’affichage des nouvelles vues est d’une ou deux images par seconde, alors que la navigation fluide en 3D (par exemple en jeux vidéo ou pour l’affichage 3D en ligne) nécessite 120 images par seconde.

Le NeRF a bénéficié d’énormément d’améliorations. Des méthodes ont été mises au point pour accélérer l’optimisation du réseau de neurones et le rendu, mais elles n’offrent qu’une qualité visuelle limitée. Récemment, des technologies permettant un rendu rapide sont apparues, mais elles exigent un entraînement du réseau de neurones – et donc du temps pour créer la scène 3D – très long (plusieurs heures de calcul sur des cartes -graphiques puissantes).

4. 3D gaussian splatting

En 2023, l’équipe projet GraphDeco a conçu une technologie ne recourant pas aux réseaux de neurones grâce à une nouvelle approche. Ce développement est le fruit de vingt ans de recherches, effectuées dans le domaine des images de synthèse, et notamment le rendu à base d’images. Ce résultat a été rendu possible grâce au financement de l’Union européenne, en particulier de la prestigieuse bourse ERC Advanced Grant. Au lieu de représenter la scène par un réseau de neurones, l’équipe a choisi d’utiliser des ellipsoïdes en 3D (fig. 3), dont la taille et l’orientation sont définies par les paramètres d’une fonction gaussienne, d’où le nom de la méthode, 3D gaussian splatting. Ces primitives sont dotées d’une propriété qui est optimisée, l’« opacité », permettant de mélanger des couleurs de plusieurs primitives pour générer la couleur finale de chaque pixel.

Image d'illustration de l'articleD.R.
CT 1078 3 CT 1078 3

Cette représentation présente plusieurs avantages. D’abord, les ellipsoïdes ont une forme anisotrope : pendant l’optimisation, les sphères (qui sont des ellipsoïdes isotropes) créées à l’origine aux positions des points de calibration vont changer de forme pour s’adapter au contenu de la scène 3D. Pour des objets fins, comme les branches d’un arbre ou des cheveux, les ellipsoïdes peuvent devenir fines et allongées d’une manière lisse. L’optimisation arrive rapidement à créer des formes qui reproduisent l’apparence de la scène. Pour un pixel, le rendu se fait en parcourant les ellipsoïdes qui se projettent sur ce pixel dans l’ordre de la distance de chaque point de la caméra. Les couleurs de chaque primitive ainsi visitée sont mélangées, avec un poids déterminé par la fonction gaussienne et l’opacité cumulée. Cet algorithme est équivalent à celui de NeRF, préservant ainsi les bonnes propriétés pour l’optimisation.

Ensuite, l’affichage de ces primitives ellipsoïdales est très rapide, ce qui permet d’avoir un rendu beaucoup plus rapide qu’avec le lancer de rayons nécessaire à la méthode des NeRF. Les chercheurs de l’Inria ont exploité des années d’expérience en images de synthèse temps réel et se servent des techniques de rastérisation, parfaitement adaptées aux cartes graphiques. Chaque carte graphique a des milliers de processeurs ou « cœurs » : pour exploiter le parallélisme d’une manière efficace, il faut découper le travail d’une façon adaptée. Concrètement, l’équipe projet GraphDeco utilise un pavage de l’écran, de sorte que les cœurs travaillent d’une manière efficace. Un autre élément important est que la carte graphique peut trier des millions de points en quelques millisecondes. Même si une solution exacte devrait plutôt trier les primitives à chaque pixel, cette approximation est extrêmement efficace et s’avère suffisante pour obtenir une bonne qualité visuelle.

La « densification » du nuage de points est le dernier élément important pour la qualité visuelle produite par l’algorithme. Comme mentionné ci-dessus, le processus commence par la création des sphères aux points de calibration. Ces points ne sont pas en nombre suffisant et il est nécessaire d’en ajouter. Pour ce faire, l’algorithme regarde les gradients des positions des primitives pendant l’optimisation, et quand ils ont une valeur au-dessus d’un seuil, de nouvelles gaussiennes sont ajoutées.

5. Impact du 3D gaussian splatting

L’algorithme 3D gaussian splatting a révolutionné la synthèse de nouvelles vues. Les algorithmes concurrents avaient une bonne qualité visuelle, mais étaient trop lents (comme ceux développés notamment par Google). Ou ils étaient plus rapides, mais n’arrivaient pas à atteindre un bon niveau de qualité visuelle à cause des approximations utilisées pour accélérer le calcul (comme l’algorithme de Nvidia). La méthode parvient à obtenir la même qualité visuelle que l’état de l’art avec un temps de calcul bien moindre (quarante minutes au lieu de quarante-huit heures, pour celle de Google). Elle produit la même qualité visuelle avec le même temps de calcul que celui de Nvidia (sept minutes), pour lequel la qualité est plafonnée. En outre, la méthode de l’Inria permet un affichage à 130 images par seconde, au lieu de 15 images par seconde pour la méthode la plus rapide, en 2023. C’est grâce à cette combinaison de performances à la fois en termes de vitesse et de qualité que le 3D gaussian splatting a été adopté très rapidement.

Le code source a été publié sous licence mixte, gratuite pour la recherche et l’expérimentation, y compris pour les sociétés, mais payante pour tout usage commercial. La distribution en open source a eu un effet accélérateur pour l’adoption de la méthode. Sur le plan scientifique, l’article de recherche sur le 3D gaussian splatting, cité plus de 4 700 fois en deux ans, a permis la naissance d’une multitude de méthodes construites en s’appuyant sur cette technologie.

Du côté du secteur privé, plusieurs sociétés proposent des services de reconstruction 3D à partir de photos en utilisant le 3D gaussian splatting, notamment pour le commerce en ligne. Des sociétés de réalité virtuelle, notamment de grands acteurs, l’utilisent pour permettre aux utilisateurs de se déplacer dans les jumeaux numériques ultra-réalistes d’espaces réels. Un usage particulièrement intéressant concerne les modèles d’intelligence artificielle générative qui créent des modèles 3D. Pour un grand nombre de ces solutions, le « moteur » de la génération de contenu 3D est le 3D gaussian splatting.

6. Conclusion

Cet article présente l’évolution des différentes solutions pour la création du contenu 3D, d’abord par des méthodes conventionnelles qui impliquent une grande quantité de travail manuel, et ensuite par des approches qui se sont appuyées sur les algorithmes de vision par ordinateur avec notamment le rendu à base d’images. Les solutions de champs de radiance neuronaux (NeRF) sont venues après. Ces approches ont permis de créer des scènes 3D à partir de photos, évitant le processus long et coûteux de création de contenu 3D traditionnel, mais soit elles nécessitaient trop de temps de calcul, soit elles n’atteignaient pas une qualité visuelle suffisante. L’algorithme de 3D gaussian splatting, lui, permet la création et l’affichage des scènes 3D capturées avec un temps de calcul raisonnables et une qualité visuelle suffisante pour plusieurs applications commerciales. La multitude de méthodes qui se sont construites sur cet algorithme permet des temps de création encore plus rapide et, avec l’IA générative 3D, promet une nouvelle révolution dans la création de contenu 3D.



Source link

Share This Article
Laisser un commentaire