Auteurs : Jun Gao, NVIDIA, Université de Toronto, Institut Vectoriel (jung@nvidia.com) Tianchang Shen, NVIDIA, Université de Toronto, Institut Vectoriel (frshen@nvidia.com) Zian Wang, NVIDIA, Université de Toronto, Institut Vectoriel (zianw@nvidia.com) Wenzheng Chen, NVIDIA, Université de Toronto, Institut Vectoriel (wenzchen@nvidia.com) Kangxue Yin, NVIDIA (kangxuey@nvidia.com) Daiqing Li, NVIDIA (daiqingl@nvidia.com) Or Litany, NVIDIA (olitany@nvidia.com) Zan Gojcic, NVIDIA (zgojcic@nvidia.com) Sanja Fidler, NVIDIA, Université de Toronto, Institut Vectoriel (sfidler@nvidia.com) Résumé Alors que plusieurs industries évoluent vers la modélisation de mondes virtuels 3D massifs, le besoin d'outils de création de contenu capables d'évoluer en termes de quantité, de qualité et de diversité de contenu 3D devient évident. Dans notre travail, nous visons à entraîner des modèles génératifs 3D performants qui synthétisent des maillages texturés pouvant être directement consommés par des moteurs de rendu 3D, donc immédiatement utilisables dans des applications en aval. Les travaux antérieurs sur la modélisation générative 3D manquent soit de détails géométriques, sont limités dans la topologie de maillage qu'ils peuvent produire, ne prennent généralement pas en charge les textures, ou utilisent des rendus neuronaux dans le processus de synthèse, ce qui rend leur utilisation dans les logiciels 3D courants non triviale. Dans ce travail, nous introduisons GET3D, un modèle énératif qui génère directement des maillages xplicites exturés en avec une topologie complexe, des détails géométriques riches et des textures haute fidélité. Nous nous appuyons sur les succès récents de la modélisation de surface différentiable, du rendu différentiable ainsi que des réseaux antagonistes génératifs 2D pour entraîner notre modèle à partir de collections d'images 2D. GET3D est capable de générer des maillages texturés 3D de haute qualité, allant des voitures, chaises, animaux, motos et personnages humains aux bâtiments, obtenant des améliorations significatives par rapport aux méthodes précédentes. Notre page projet : G E T 3D https://nv-tlabs.github.io/GET3D 1 Introduction Le contenu 3D diversifié et de haute qualité devient de plus en plus important pour plusieurs industries, notamment le jeu, la robotique, l'architecture et les plateformes sociales. Cependant, la création manuelle d'actifs 3D prend beaucoup de temps et nécessite des connaissances techniques spécifiques ainsi que des compétences en modélisation artistique. L'un des principaux défis est donc l'échelle - alors qu'on peut trouver des modèles 3D sur des places de marché 3D telles que Turbosquid [ ] ou Sketchfab [ ], la création de nombreux modèles 3D pour, disons, peupler un jeu ou un film avec une foule de personnages qui ont tous un aspect différent prend encore beaucoup de temps aux artistes. 4 3 Pour faciliter le processus de création de contenu et le rendre accessible à une variété d'utilisateurs (novices), les réseaux 3D génératifs capables de produire des actifs 3D de haute qualité et diversifiés sont récemment devenus un domaine de recherche actif [ , , , , , , , , , , ]. Cependant, pour être pratiquement utiles pour les applications actuelles du monde réel, les modèles génératifs 3D devraient idéalement remplir les exigences suivantes : Ils devraient avoir la capacité de générer des formes avec une géométrie détaillée et une topologie arbitraire, La sortie devrait être un maillage texturé, qui est une représentation primaire utilisée par les progiciels graphiques standard tels que Blender [ ] et Maya [ ], et Nous devrions pouvoir exploiter les images 2D pour la supervision, car elles sont plus largement disponibles que les formes 3D explicites. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Les travaux antérieurs sur la modélisation générative 3D se sont concentrés sur des sous-ensembles des exigences ci-dessus, mais aucune méthode à ce jour ne les remplit toutes (Tab. ). Par exemple, les méthodes qui génèrent des nuages de points 3D [ , 68, 75] ne produisent généralement pas de textures et doivent être converties en maillage après traitement. 1 5 Les méthodes générant des voxels manquent souvent de détails géométriques et ne produisent pas de texture [ , , , ]. Les modèles génératifs basés sur des champs neuronaux [ , ] se concentrent sur l'extraction de la géométrie mais négligent la texture. La plupart d'entre eux nécessitent également une supervision 3D explicite. Enfin, les méthodes qui produisent directement des maillages 3D texturés [ , ] nécessitent généralement des modèles de formes prédéfinis et ne peuvent pas générer de formes avec une topologie complexe et un genre variable. 66 20 27 40 43 14 54 53 Récemment, les progrès rapides du rendu volumétrique neuronal [ ] et des réseaux antagonistes génératifs 2D (GAN) [ , , , , ] ont conduit à l'essor de la synthèse d'images 3D-aware [ , , , , , ]. Cependant, cette lignée de travaux vise à synthétiser des images cohérentes sur plusieurs vues en utilisant le rendu neuronal dans le processus de synthèse et ne garantit pas que des formes 3D significatives puissent être générées. Bien qu'un maillage puisse potentiellement être obtenu à partir de la représentation sous-jacente du champ neuronal en utilisant l'algorithme des cubes de marche [ ], l'extraction de la texture correspondante n'est pas triviale. 45 34 35 33 29 52 7 57 8 49 51 25 39 Dans ce travail, nous introduisons une nouvelle approche qui vise à répondre à toutes les exigences d'un modèle génératif 3D pratiquement utile. Plus précisément, nous proposons GET3D, un modèle énératif pour les formes 3D qui produit directement des maillages xplicites exturés en avec une géométrie et une texture détaillées et une topologie de maillage arbitraire. Au cœur de notre approche se trouve un processus génératif qui utilise une méthode de extraction de surface différentiable [ ] et une technique de rendu différentiable [ , ]. La première nous permet d'optimiser et de produire directement des maillages 3D texturés avec une topologie arbitraire, tandis que la seconde nous permet d'entraîner notre modèle avec des images 2D, exploitant ainsi des discriminateurs puissants et matures développés pour la synthèse d'images 2D. Étant donné que notre modèle génère directement des maillages et utilise un moteur de rendu graphique (différentiable) hautement efficace, nous pouvons facilement adapter notre modèle pour l'entraîner avec des images G E T 3D explicite 60 47 37 d'une résolution allant jusqu'à 1024 × 1024, ce qui nous permet d'apprendre des détails géométriques et texturés de haute qualité. Nous démontrons des performances de pointe pour la génération inconditionnelle de formes 3D sur plusieurs catégories avec une géométrie complexe de ShapeNet [ ], Turbosquid [ ] et Renderpeople [ ], telles que des chaises, des motos, des voitures, des personnages humains et des bâtiments. Avec le maillage explicite comme représentation de sortie, GET3D est également très flexible et peut être facilement adapté à d'autres tâches, notamment : apprendre à générer des effets de matériaux décomposés et d'éclairage dépendants de la vue à l'aide d'un rendu différentiable avancé [ ], sans supervision, génération de formes 3D guidée par texte à l'aide de l'embedding CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Travaux connexes Nous passons en revue les avancées récentes dans les modèles génératifs 3D pour la géométrie et l'apparence, ainsi que la synthèse d'images génératives 3D-aware. Ces dernières années, les modèles génératifs 2D ont atteint une qualité photoréaliste dans la synthèse d'images haute résolution [ , , , , , , ]. Ces progrès ont également inspiré la recherche dans la génération de contenu 3D. Les premières approches visaient à étendre directement les générateurs CNN 2D à des grilles de voxels 3D [ , , , , ], mais l'empreinte mémoire élevée et la complexité computationnelle des convolutions 3D entravent le processus de génération à haute résolution. Alternativement, d'autres travaux ont exploré des représentations en nuage de points [ , , , ], implicites [ , ], ou en octree [ ]. Cependant, ces travaux se concentrent principalement sur la génération de géométrie et négligent l'apparence. Leurs représentations de sortie doivent également être post-traitées pour les rendre compatibles avec les moteurs graphiques standard. Modèles Génératifs 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Plus similaires à notre travail, Textured3DGAN [ , ] et DIBR [ ] génèrent des maillages 3D texturés, mais ils formulent la génération comme une déformation d'un maillage modèle, ce qui les empêche de générer une topologie complexe ou des formes avec un genre variable, ce que notre méthode peut faire. PolyGen [ ] et SurfGen [ ] peuvent produire des maillages avec une topologie arbitraire, mais ne synthétisent pas de textures. 54 53 11 48 41 Inspiré par le succès du rendu volumétrique neuronal [ ] et des représentations implicites [ , ], les travaux récents ont commencé à aborder le problème de la synthèse d'images 3D-aware [ , , , , , , , , , ]. Cependant, les réseaux de rendu volumétrique neuronal sont généralement lents à interroger, entraînant de longs temps d'entraînement [ , ], et génèrent des images de résolution limitée. GIRAFFE [ ] et StyleNerf [ ] améliorent l'efficacité de l'entraînement et du rendu en effectuant le rendu neuronal à une résolution plus basse, puis en rééchantillonnant les résultats avec un CNN 2D. Cependant, le gain de performance se fait au prix d'une cohérence multi-vue réduite. En utilisant un discriminateur double, EG3D [ ] peut partiellement atténuer ce problème. Néanmoins, extraire une surface texturée des méthodes basées sur le rendu neuronal est une entreprise non triviale. En revanche, GET3D produit directement des maillages 3D texturés qui peuvent être facilement utilisés dans les moteurs graphiques standard. Synthèse d'Images Génératives 3D-Aware 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Méthode Nous présentons maintenant notre framework GET3D pour la synthèse de formes 3D texturées. Notre processus de génération est divisé en deux parties : une branche géométrie, qui produit de manière différentiable un maillage de surface de topologie arbitraire, et une branche texture qui produit un champ de texture qui peut être interrogé aux points de surface pour produire des couleurs. Cette dernière peut être étendue à d'autres propriétés de surface telles que, par exemple, les matériaux (Sec. ). Pendant l'entraînement, un rasteriseur différentiable efficace est utilisé pour rendre le maillage texturé résultant en images 2D haute résolution. L'ensemble du processus est différentiable, permettant un entraînement contradictoire à partir d'images (avec des masques indiquant un objet d'intérêt) en propageant les gradients du discriminateur 2D aux deux branches génératrices. Notre modèle est illustré dans la Fig. . Dans ce qui suit, nous introduisons d'abord notre générateur 3D dans la Sec , avant de passer au rendu différentiable et aux fonctions de perte dans la Sec . 4.3.1 2 3.1 3.2 3.1 Générateur de Maillages 3D Texturés Nous visons à apprendre un générateur 3D = ( ) pour mapper un échantillon d'une distribution gaussienne M, E G z ∈ N (0*,* ) à un maillage avec texture . z I M E Comme la même géométrie peut avoir des textures différentes, et la même texture peut être appliquée à différentes géométries, nous échantillonnons deux vecteurs d'entrée aléatoires 1 ∈ R512 et 2 ∈ R512. Suite à StyleGAN [ , , ], nous utilisons ensuite des réseaux de mapping non linéaires geo et tex pour mapper 1 et 2 à des vecteurs latents intermédiaires 1 = geo( 1) et 2 = tex( 2) qui sont ensuite utilisés pour produire des qui contrôlent la génération de formes 3D et de texture, respectivement. Nous présentons formellement le générateur de géométrie dans la Sec. et le générateur de texture dans la Sec. . z z 34 35 33 f f z z w f z w f z styles 3.1.1 3.1.2 3.1.1 Générateur de Géométrie Nous concevons notre générateur de géométrie pour intégrer DMTet [ ], une représentation de surface différentiable proposée récemment. DMTet représente la géométrie comme un champ de distance signé (SDF) défini sur une grille tétraédrique déformable [ , ], à partir de laquelle la surface peut être récupérée de manière différentiable par des tétraèdres marchants [ ]. La déformation de la grille en déplaçant ses sommets permet une meilleure utilisation de sa résolution. En adoptant DMTet pour l'extraction de surface, nous pouvons produire des maillages explicites avec une topologie et un genre arbitraires. Nous fournissons ensuite un bref résumé de DMTet et renvoyons le lecteur à l'article original pour plus de détails. 60 22 24 17 Soit ( ) l'espace 3D complet dans lequel se trouve l'objet, où sont les sommets de la grille tétraédrique . Chaque tétraèdre ∈ est défini à l'aide de quatre sommets { }, avec ∈ {1*, . . . , K*}, où est le nombre total de tétraèdres, et ∈ ∈ R3. En plus de ses coordonnées 3D , chaque sommet contient la valeur SDF ∈ R et la déformation ∆ ∈ R3 du sommet par rapport à sa coordonnée canonique initiale. Cette représentation permet de récupérer le maillage explicite par l'algorithme différentiable des tétraèdres marchants [ ], où les valeurs SDF dans l'espace continu sont calculées par une interpolation barycentrique de leur valeur sur les sommets déformés ′ = + ∆ . VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik i v i si v i 60 si v v i v i Nous mappons 1 ∈ R512 aux valeurs SDF et aux déformations de chaque sommet via une série de couches convolutionnelles 3D conditionnelles et de couches entièrement connectées. Spécifiquement, nous utilisons d'abord des couches convolutionnelles 3D pour générer un volume de caractéristiques conditionné sur 1. Nous interrogeons ensuite la caractéristique à chaque sommet ∈ en utilisant une interpolation trilineaire et la fournissons à des MLPs qui produisent la valeur SDF et la déformation ∆ . Dans les cas où une modélisation à haute résolution est requise (par exemple, une moto avec des structures fines dans les roues), nous utilisons en outre la subdivision de volume suivant [ ]. Architecture du Réseau w v i w v i VT si v i 60 Après avoir obtenu et ∆ pour tous les sommets, nous utilisons l'algorithme différentiable des tétraèdres marchants pour extraire le maillage explicite. Les tétraèdres marchants déterminent la topologie de surface à l'intérieur de chaque tétraèdre en fonction des signes de . En particulier, une face de maillage est extraite lorsque sign( ) /= sign( ), où désignent les indices des sommets dans le bord du tétraèdre, et les sommets de cette face sont déterminés par une interpolation linéaire comme mi,j = v 0 i sj−v 0 j si sj−si . Notez que l'équation ci-dessus n'est évaluée que lorsque si 6= sj , elle est donc différentiable, et le gradient de mi,j peut être rétro-propagé dans les valeurs SDF si et les déformations ∆vi . Avec cette représentation, des formes de topologie arbitraire peuvent être facilement générées en prédisant différents signes de si . Extraction de Maillage Différentiable si v i si si sj i, j m i,j 3.1.2 Générateur de Texture Générer directement une carte de texture cohérente avec le maillage de sortie n'est pas trivial, car la forme générée peut avoir un genre et une topologie arbitraires. Nous paramétrons donc la texture comme un champ de texture [ ]. 50 Spécifiquement, nous modélisons le champ de texture avec une fonction qui mappe la position 3D d'un point de surface ∈ R3, conditionnée sur 2, à la couleur RVB ∈ R3 à cet endroit. Comme le champ de texture dépend de la géométrie, nous conditionnons en plus ce mapping sur le code latent de géométrie 1, de sorte que = ( *,* 1 ⊕ 2), où ⊕ dénote la concaténation. ft p w c w c ft p w w Nous représentons notre champ de texture à l'aide d'une représentation tri-plan, qui est efficace et expressive pour reconstruire des objets 3D [ ] et générer des images 3D-aware [ ]. Spécifiquement, nous suivons [ , ] et utilisons un réseau neuronal convolutif 2D conditionnel pour mapper le code latent 1 ⊕ 2 à trois plans de caractéristiques orthogonaux alignés sur les axes de taille × × ( × 3), où = 256 représente la résolution spatiale et = 32 le nombre de canaux. Architecture du Réseau 55 8 8 35 w w N N C N C Étant donné les plans de caractéristiques, le vecteur de caractéristiques f t ∈ R 32 d'un point de surface p peut être récupéré comme f t = P e ρ(πe(p)), où πe(p) est la projection du point p sur le plan de caractéristiques e et ρ(·) désigne l'interpolation bilinéaire des caractéristiques. Une couche entièrement connectée supplémentaire est ensuite utilisée pour mapper le vecteur de caractéristiques agrégé f t à la couleur RVB c. Notez que, contrairement à d'autres travaux sur la synthèse d'images 3D-aware qui utilisent également une représentation de champ neuronal, nous n'avons besoin d'échantillonner le champ de texture qu'aux emplacements des points de surface (par opposition aux échantillons denses le long d'un rayon). Cela réduit considérablement la complexité computationnelle pour le rendu d'images haute résolution et garantit la génération d'images cohérentes sur plusieurs vues par construction. 3.2 Rendu Différentiable et Entraînement Afin de superviser notre modèle pendant l'entraînement, nous nous inspirons de Nvdiffrec [ ] qui effectue la reconstruction d'objets 3D multi-vues en utilisant un rendu différentiable. Spécifiquement, nous rendons le maillage 3D extrait et le champ de texture en images 2D à l'aide d'un rendu différentiable [ ], et nous supervisons notre réseau avec un discriminateur 2D, qui tente de distinguer l'image d'un objet réel de celle rendue à partir de l'objet généré. 47 37 Nous supposons que la distribution de caméras C utilisée pour acquérir les images dans le jeu de données est connue. Pour rendre les formes générées, nous échantillonnons aléatoirement une caméra de C, et utilisons un rasteriseur différentiable hautement optimisé Nvdiffrast [ ] pour rendre le maillage 3D en une silhouette 2D ainsi qu'une image où chaque pixel contient les coordonnées du point 3D correspondant sur la surface du maillage. Ces coordonnées sont ensuite utilisées pour interroger le champ de texture afin d'obtenir les valeurs RVB. Comme nous opérons directement sur le maillage extrait, nous pouvons rendre des images haute résolution avec une grande efficacité, permettant à notre modèle d'être entraîné avec une résolution d'image allant jusqu'à 1024×1024. Rendu Différentiable c 37 Nous entraînons notre modèle en utilisant un objectif contradictoire. Nous adoptons l'architecture du discriminateur de StyleGAN [ ], et utilisons le même objectif GAN non saturant avec régularisation R1 [ ]. Nous constatons empiriquement que l'utilisation de deux discriminateurs distincts, un pour les images RVB et un autre pour les silhouettes, donne de meilleurs résultats qu'un seul discriminateur opérant sur les deux. Soit le discriminateur, où peut être une image RVB ou une silhouette. L'objectif contradictoire est alors défini comme suit : Discriminateur & Objectif 34 42 Dx x où ( ) est défini comme ( ) = − log(1 +exp(− )), est la distribution des images réelles, désigne le rendu, et est un hyperparamètre. Comme est différentiable, les gradients peuvent être rétro-propagés des images 2D à nos générateurs 3D. g u g u u px R λ R Pour supprimer les faces internes flottantes qui ne sont visibles dans aucune des vues, nous régularisons davantage le générateur de géométrie avec une perte d'entropie croisée définie entre les valeurs SDF des sommets voisins [ ] : Régularisation 47 où désigne la perte d'entropie croisée binaire et désigne la fonction sigmoïde. La somme dans l'Eq. est définie sur l'ensemble des arêtes uniques S de la grille tétraédrique, pour lesquelles sign( ) /= sign( ). H σ 2 e si sj La fonction de perte globale est alors définie comme : où est un hyperparamètre qui contrôle le niveau de régularisation. µ 4 Expériences Nous menons des expériences approfondies pour évaluer notre modèle. Nous comparons d'abord la qualité des maillages texturés 3D générés par GET3D aux méthodes existantes en utilisant les ensembles de données ShapeNet [ ] et Turbosquid [ ]. Ensuite, nous effectuons une ablation de nos choix de conception dans la Sec. . Enfin, nous démontrons la flexibilité de GET3D en l'adaptant à des applications en aval dans la Sec. . Des résultats expérimentaux supplémentaires et des détails d'implémentation sont fournis en Annexe. 9 4 4.2 4.3 4.1 Expériences sur des Jeux de Données Synthétiques Pour l'évaluation sur ShapeNet [ ], nous utilisons trois catégories avec une géométrie complexe – , et , qui contiennent respectivement 7497, 6778 et 337 formes. Nous divisons aléatoirement chaque catégorie en ensembles d'entraînement (70%), de validation (10 %) et de test (20 Jeux de Données 9 Voiture Chaise Moto