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 les moteurs de rendu 3D, et 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 des maillages qu'ils peuvent produire, ne prennent généralement pas en charge les textures, soit utilisent des moteurs de rendu 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 texturés xplicites avec une topologie complexe, des détails géométriques riches et des textures de 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, atteignant des améliorations significatives par rapport aux méthodes précédentes. Notre page de projet: G 3D E 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 les jeux, la robotique, l'architecture et les plateformes sociales. Cependant, la création manuelle d'actifs 3D est très longue 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 que l'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 des apparences différentes 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 génératifs 3D capables de produire des actifs 3D diversifiés et de haute qualité sont récemment devenus un domaine de recherche actif [ , , , , , , , , , , ]. Cependant, pour être pratiquement utiles pour les applications du monde réel actuelles, les modèles génératifs 3D devraient idéalement satisfaire aux exigences suivantes : Ils devraient avoir la capacité de générer des formes avec des détails géométriques 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 être en mesure de tirer parti des 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 dans un post-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 une génératrice variable. 66 20 27 40 43 14 54 53 Récemment, les progrès rapides du rendu volumique neuronal [ ] et des réseaux antagonistes génératifs 2D (GANs) [ , , , , ] ont conduit à l'essor de la synthèse d'images 3D-conscientes [ , , , , , ]. Cependant, cette ligne de travail vise à synthétiser des images cohérentes multi-vues à l'aide du 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 de champ neuronal sous-jacente à l'aide de l'algorithme des cubes de Marching [ ], 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 formes 3D qui génère directement des maillages texturés xplicites avec une haute qualité géométrique et textuelle, 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 d'extraction de surface différentiable [ ] et une technique de rendu différentiable [ , ]. La première nous permet d'optimiser et de générer 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 faire évoluer notre modèle pour l'entraîner avec des images G 3D E surface explicite 60 47 37 d'une résolution aussi élevée que 1024 × 1024, ce qui nous permet d'apprendre des détails géométriques et textuels 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 : l'apprentissage de la génération de matériaux décomposés et d'effets d'éclairage dépendants de la vue à l'aide d'un rendu différentiable avancé [ ], sans supervision, la génération de formes 3D guidée par le texte à l'aide de l'incorporation CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Travaux connexes Nous passons en revue les progrès récents des 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-conscientes. 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 aux grilles de voxels 3D [ , , , , ], mais l'empreinte mémoire élevée et la complexité calculatoire des convolutions 3D entravent le processus de génération à haute résolution. Alternativement, d'autres travaux ont exploré les représentations de nuages de points [ , , , ], implicites [ , ], ou octrees [ ]. 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 une génératrice 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és par le succès du rendu volumique neuronal [ ] et des représentations implicites [ , ], des travaux récents ont commencé à aborder le problème de la synthèse d'images 3D-conscientes [ , , , , , , , , , ]. Cependant, les réseaux de rendu volumique neuronal sont généralement lents à interroger, ce qui entraîne de longs temps d'entraînement [ , ] et génère 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 inférieure, puis en redimensionnant les résultats avec un CNN 2D. Cependant, le gain de performance se fait au détriment d'une cohérence multi-vues réduite. En utilisant un discriminateur double, EG3D [ ] peut partiellement atténuer ce problème. Néanmoins, l'extraction d'une surface texturée à partir de méthodes basées sur le rendu neuronal est une entreprise non triviale. En revanche, GET3D génère 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-conscientes 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étrique, qui génère différentiablement un maillage de surface de topologie arbitraire, et une branche textuelle qui produit un champ de texture pouvant ê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 antagoniste à 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 Figure . Dans ce qui suit, nous présentons 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 Modèle génératif 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 Puisque la même géométrie peut avoir des textures différentes, et que 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 mappage 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 textures, 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 différentiablement par des tétraèdres de Marching [ ]. 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 une génératrice 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 des tétraèdres de Marching différentiable [ ], 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 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 à travers une série de couches convolutives 3D conditionnelles et entièrement connectées. Plus précisément, nous utilisons d'abord des couches convolutives 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 transmettons à des MLPs qui génèrent 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 une subdivision volumique 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 des tétraèdres de Marching différentiable pour extraire le maillage explicite. Les tétraèdres de Marching déterminent la topologie de la 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 l'arête 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 avec une topologie arbitraire peuvent être facilement générées en prédisant des signes différents 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 une génératrice et une topologie arbitraires. Nous paramétrons donc la texture comme un champ de texture [ ]. 50 Plus précisément, nous modélisons le champ de texture avec une fonction qui mappe la localisation 3D d'un point de surface ∈ R3, conditionnée sur 2, à la couleur RVB ∈ R3 à cette localisation. Comme le champ de texture dépend de la géométrie, nous conditionnons en plus ce mappage sur le code latent de géométrie 1, de sorte que = ( *,* 1 ⊕ 2), où ⊕ désigne 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-plane, qui est efficace et expressive pour reconstruire des objets 3D [ ] et générer des images 3D-conscientes [ ]. Plus précisément, 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-conscientes qui utilisent également une représentation de champ neuronal, nous n'avons besoin d'échantillonner le champ de texture qu'aux localisations des points de surface (par opposition à des échantillons denses le long d'un rayon). Cela réduit considérablement la complexité calculatoire pour le rendu d'images haute résolution et garantit de générer des images cohérentes multi-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 une reconstruction d'objets 3D multi-vues en utilisant un moteur de rendu différentiable. Plus précisément, nous rendons le maillage 3D extrait et le champ de texture en images 2D à l'aide d'un moteur de rendu différentiable [ ], et nous supervisons notre réseau avec un discriminateur 2D, qui tente de distinguer l'image d'un objet réel ou rendue à partir de l'objet généré. 47 37 Nous supposons que la distribution de caméra 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 à l'aide d'un objectif antagoniste. 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, l'un pour les images RVB et l'autre pour les silhouettes, donne de meilleurs résultats qu'un seul discriminateur fonctionnant sur les deux. Soit le discriminateur, où peut être une image RVB ou une silhouette. L'objectif antagoniste 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 en outre 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ù représente la perte d'entropie croisée binaire et représente la fonction sigmoïde. La somme dans l'Éq. 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 3D texturés générés par GET3D aux méthodes existantes en utilisant les jeux de données ShapeNet [ ] et Turbosquid [ ]. Ensuite, nous faisons une analyse 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 dans l'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 Jeux de données 9 Voiture Chaise Moto