15 décembre 2023

3D Gaussian Splatting

Les méthodes de type Radiance Field ont récemment révolutionné la synthèse de vues de scènes capturées à partir de plusieurs photos ou vidéos. Cependant, obtenir une visualisation de haute qualité nécessite encore des réseaux neuronaux coûteux et lents à entraîner et à afficher.

C’est là qu’intervient le 3D Gaussian Splatting, une méthode qui promet d’effectuer le rendu d’une scène 3D en temps réel. Voici tous les détails !

Qu’est-ce que le 3D Gaussian Splatting ?

Le Gaussian Splatting est une technique de rendu née dans les années 90 dans le domaine scientifique. Son application récente à la visualisation de scènes en temps réel, présentée en août dernier au SIGGRAPH 2023, l’a toutefois remise au goût du jour.

Le Gaussian Splatting est une technique de rastérisation permettant la reconstruction 3D et le rendu en temps réel d’images prises depuis plusieurs points de vue.

L’espace 3D est défini comme un ensemble de gaussiennes, et les paramètres de chaque gaussienne sont calculés par apprentissage automatique. Cela consiste à :

  • Disposer de données décrivant la scène.
  • Dessiner ces données à l’écran.

C’est donc analogue à la rastérisation de triangles en infographie, utilisée pour dessiner de nombreux triangles à l’écran. Mais au lieu de triangles, on dessine des gaussiennes. Chacune est décrite par les paramètres suivants :

  • Position : son emplacement (XYZ)
  • Covariance : son étirement/échelle (matrice 3×3)
  • Couleur : RGB
  • Alpha : sa transparence (α)

En voici un exemple

*Triangle rastérisé – Gaussienne

Comment fonctionne le Gaussian Splatting ?

Le 3D Gaussian Splatting représente une scène 3D sous la forme de millions de particules (des gaussiennes), chaque gaussienne 3D possédant une position, une orientation et une échelle, ainsi qu’une opacité et une couleur.

Pour afficher ces particules, on les convertit dans l’espace 2D, puis on les organise pour un rendu efficace. Les étapes sont les suivantes :

  1. Structure from Motion : on commence par utiliser la méthode Structure from Motion (SfM) pour créer un nuage de points à partir d’images. Cela peut se faire avec COLMAP.
  2. Conversion en gaussiennes : chaque point est converti en gaussienne, ce qui rend la rastérisation possible. Toutefois, seules la position et la couleur peuvent être déduites des données SfM.
  3. Entraînement : pour qu’une représentation produise des résultats de haute qualité, elle doit être entraînée. On utilise pour cela la descente de gradient stochastique, comme pour un réseau neuronal.
    1. Rastériser les gaussiennes dans une image à l’aide de la rastérisation gaussienne différentiable.
    2. Calculer la perte en fonction de l’écart entre l’image rastérisée et l’image réelle de référence.
    3. Ajuster les paramètres des gaussiennes en fonction de la perte.
    4. Appliquer une densification automatique.
  4. Rastérisation gaussienne différentiable : ici, chaque gaussienne 2D doit être projetée depuis la perspective de la caméra, triée par profondeur, puis, pour chaque pixel, les gaussiennes doivent être parcourues d’avant en arrière et combinées.

Photogrammétrie ou NeRF

La photogrammétrie est une technique qui génère des polygones 3D à partir d’images prises depuis plusieurs points de vue. Très utile pour numériser des objets, elle ne peut cependant pas représenter des scènes sans contours, comme le ciel, ni les détails fins de scènes lointaines. De plus, dans certains cas, comme les reflets ou les éléments transparents, il n’est pas possible de générer des polygones 3D avec précision.

Pour pallier ces limites est apparu le NeRF ou Neural Radiance Field. Il s’agit également d’une méthode de rendu d’une scène 3D à partir d’images prises depuis différents points de vue, mais elle s’appuie sur l’IA pour restituer avec précision les scènes ouvertes et les surfaces réfléchissantes ou translucides. Son seul inconvénient : un matériel très puissant est nécessaire pour afficher une scène en temps réel.

Le 3D Gaussian Splatting est une autre approche du même problème, mais qui n’exige pas autant de puissance de calcul pour afficher une scène en temps réel. En effet, si l’entraînement des paramètres des gaussiennes nécessite de l’apprentissage automatique, le rendu ne requiert aucun traitement lourd et peut s’effectuer en temps réel.

Notre approche chez Plain Concepts

Chez Plain Concepts, nous travaillons à l’intégration de la technologie 3D Gaussian Splatting dans notre moteur 3D Evergine. Bien qu’il s’agisse d’une technologie récente qui progresse en permanence, nous estimons chez Plain Concepts qu’elle est prête à être utilisée dans des projets réels, et nous sommes convaincus que nous commencerons à la mettre en œuvre dans nos prochains projets.

 

 

L’avenir du graphisme

Il reste encore quelques inconnues autour du Gaussian Splatting, notamment la possibilité de les animer, d’éviter l’apparition de certains artefacts visuels ou de gérer les collisions en associant un modèle géométrique.

Mais comme nous l’avons dit, nous verrons probablement le 3D Gaussian Splatting pleinement mis en œuvre en environnement de production.

Par ailleurs, l’IA embarquée sera un facteur clé de la recherche dans l’espace 3D. Ce qui est sûr, c’est que cette nouvelle technique permettra de créer des scènes photoréalistes de haute qualité, avec une rastérisation rapide et en temps réel, et un entraînement relativement court.

Auteur
Elena Canorea
Rédactrice et spécialiste de contenu