Autors: Jun Gao, NVIDIA, Universitat de Toronto, Institut Vectorial (jung@nvidia.com) Tianchang Shen, NVIDIA, Universitat de Toronto, Institut Vectorial (frshen@nvidia.com) Zian Wang, NVIDIA, Universitat de Toronto, Institut Vectorial (zianw@nvidia.com) Wenzheng Chen, NVIDIA, Universitat de Toronto, Institut Vectorial (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, Universitat de Toronto, Institut Vectorial (sfidler@nvidia.com) Resum A mesura que diverses indústries avancen cap al modelatge de mons virtuals 3D massius, la necessitat d'eines de creació de contingut que puguin escalar en termes de quantitat, qualitat i diversitat de contingut 3D es fa evident. En el nostre treball, pretenem entrenar models generatius 3D de gran rendiment que sintetitzen malles texturitzades que poden ser consumides directament pels motors de renderització 3D, sent així immediatament utilitzables en aplicacions posteriors. Els treballs previs sobre modelatge generatiu 3D o bé manquen de detalls geomètrics, estan limitats en la topologia de malla que poden produir, normalment no admeten textures, o utilitzen renderitzadors neuronals en el procés de síntesi, cosa que fa que el seu ús en programari 3D comú sigui no trivial. En aquest treball, presentem GET3D, un model eneratiu que genera directament malles xplícites exturitzades amb topologia complexa, detalls geomètrics rics i textures d'alta fidelitat. Estem connectant l'èxit recent en el modelatge de superfícies diferenciables, la renderització diferenciable així com les xarxes adversàries generatives 2D (GANs) per entrenar el nostre model a partir de col·leccions d'imatges 2D. GET3D és capaç de generar malles texturitzades 3D d'alta qualitat, que van des de cotxes, cadires, animals, motos i personatges humans fins a edificis, aconseguint millores significatives respecte als mètodes anteriors. La nostra pàgina del projecte: G E T 3D https://nv-tlabs.github.io/GET3D 1 Introducció El contingut 3D divers i d'alta qualitat és cada cop més important per a diverses indústries, incloent-hi els videojocs, la robòtica, l'arquitectura i les plataformes socials. No obstant això, la creació manual d'actius 3D requereix molt de temps i coneixements tècnics específics, així com habilitats de modelatge artístic. Un dels principals reptes és, doncs, l'escala: mentre que es poden trobar models 3D en mercats 3D com Turbosquid [ ] o Sketchfab [ ], crear molts models 3D per, per exemple, poblar un joc o una pel·lícula amb una multitud de personatges que semblen diferents encara requereix una quantitat significativa de temps d'artista. 4 3 Per facilitar el procés de creació de contingut i fer-lo accessible a una varietat d'usuaris (novells), les xarxes 3D generatives capaces de produir actius 3D d'alta qualitat i diversitat s'han convertit recentment en un àrea activa de recerca [ , , , , , , , , , , ]. No obstant això, per ser pràcticament útils per a les aplicacions del món real actuals, els models generatius 3D haurien de complir idealment els següents requisits: Haurien de tenir la capacitat de generar formes amb geometria detallada i topologia arbitrària, L'output hauria de ser una malla texturitzada, que és una representació primària utilitzada pels paquets de programari gràfic estàndard com Blender [ ] i Maya [ ], i Hauríem de poder aprofitar les imatges 2D per a la supervisió, ja que són més disponibles que les formes 3D explícites. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) El treball anterior sobre modelatge generatiu 3D s'ha centrat en subconjunts dels requisits anteriors, però cap mètode fins ara els compleix tots (Taula ). Per exemple, els mètodes que generen núvols de punts 3D [ , 68, 75] normalment no produeixen textures i han de ser convertits a una malla en el postprocessament. 1 5 Els mètodes que generen voxels sovint manquen de detalls geomètrics i no produeixen textures [ , , , ]. Els models generatius basats en camps neuronals [ , ] se centren en l'extracció de geometria però ignoren la textura. La majoria d'aquests també requereixen supervisió 3D explícita. Finalment, els mètodes que generen directament malles 3D texturitzades [ , ] normalment requereixen plantilles de formes predefinides i no poden generar formes amb topologia complexa i gènere variable. 66 20 27 40 43 14 54 53 Recentment, el ràpid progrés en la renderització de volum neuronal [ ] i les xarxes adversàries generatives 2D (GANs) [ , , , , ] ha portat a l'auge de la síntesi d'imatges 3D conscients [ , , , , , ]. No obstant això, aquesta línia de treball pretén sintetitzar imatges consistents en múltiples vistes utilitzant renderització neuronal en el procés de síntesi i no garanteix que es puguin generar formes 3D significatives. Tot i que una malla es pot obtenir potencialment de la representació de camp neuronal subjacent utilitzant l'algoritme de cub marcatge [ ], extreure la textura corresponent no és trivial. 45 34 35 33 29 52 7 57 8 49 51 25 39 En aquest treball, presentem un enfocament nou que pretén abordar tots els requisits d'un model generatiu 3D pràcticament útil. Específicament, proposem GET3D, un model eneratiu per a formes 3D que genera directament malles xplícites exturitzades amb alta qualitat geomètrica i de textura, i topologia de malla arbitrària. En el cor del nostre enfocament hi ha un procés generatiu que utilitza un mètode de extracció de superfícies diferenciable [ ] i una tècnica de renderització diferenciable [ , ]. El primer ens permet optimitzar i generar directament malles 3D texturitzades amb topologia arbitrària, mentre que el segon ens permet entrenar el nostre model amb imatges 2D, aprofitant així discriminadors potents i madurs desenvolupats per a la síntesi d'imatges 2D. Atès que el nostre model genera directament malles i utilitza un renderitzador gràfic (diferenciable) altament eficient, podem escalar el nostre model fàcilment per entrenar amb resolucions d'imatge tan altes com 1024 × 1024, cosa que ens permet aprendre detalls geomètrics i de textura d'alta qualitat. G E T 3D explícites 60 47 37 Demostrem un rendiment d'avantguarda en la generació incondicional de formes 3D en múltiples categories amb geometria complexa de ShapeNet [ ], Turbosquid [ ] i Renderpeople [ ], com ara cadires, motos, cotxes, personatges humans i edificis. Amb la malla explícita com a representació de sortida, GET3D també és molt flexible i es pot adaptar fàcilment a altres tasques, incloent-hi: aprendre a generar efectes de materials descompostos i il·luminació depenent de la vista utilitzant renderització diferenciable avançada [ ], sense supervisió, generació de formes 3D guiada per text utilitzant embeddings de CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Treballs Relacionats Revisem els avenços recents en models generatius 3D per a geometria i aparença, així com la síntesi d'imatges generatives conscients de 3D. En els últims anys, els models generatius 2D han aconseguit una qualitat fotorealista en la síntesi d'imatges d'alta resolució [ , , , , , , ]. Aquest progrés també ha inspirat la recerca en la generació de contingut 3D. Els primers enfocaments pretenien estendre directament els generadors CNN 2D a graelles de voxels 3D [ , , , , ], però l'alt requisit de memòria i la complexitat computacional de les convolucions 3D dificulten el procés de generació a alta resolució. Com a alternativa, altres treballs han explorat representacions de núvols de punts [ , , , ], implícites [ , ], o octrees [ ]. No obstant això, aquests treballs se centren principalment en la generació de geometria i ignoren l'aparença. Les seves representacions de sortida també necessiten ser postprocessades per fer-les compatibles amb els motors gràfics estàndard. Models Generatius 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Més semblants al nostre treball, Textured3DGAN [ , ] i DIBR [ ] generen malles 3D texturitzades, però formulen la generació com una deformació d'una malla plantilla, cosa que els impedeix generar topologia complexa o formes amb gènere variable, cosa que el nostre mètode pot fer. PolyGen [ ] i SurfGen [ ] poden produir malles amb topologia arbitrària, però no sintetitzen textures. 54 53 11 48 41 Inspirat per l'èxit de la renderització de volum neuronal [ ] i les representacions implícites [ , ], treballs recents han començat a abordar el problema de la síntesi d'imatges conscients de 3D [ , , , , , , , , , ]. No obstant això, les xarxes de renderització de volum neuronal són típicament lentes de consultar, cosa que condueix a llargs temps d'entrenament [ , ], i generen imatges de resolució limitada. GIRAFFE [ ] i StyleNerf [ ] milloren l'eficiència d'entrenament i renderització realitzant renderització neuronal a una resolució inferior i després ampliant els resultats amb un CNN 2D. No obstant això, el guany de rendiment es produeix a costa d'una reducció de la consistència multi-vista. Utilitzant un discriminador dual, EG3D [ ] pot mitigar parcialment aquest problema. No obstant això, extreure una superfície texturitzada de mètodes basats en renderització neuronal és una tasca no trivial. En contrast, GET3D genera directament malles 3D texturitzades que es poden utilitzar fàcilment en motors gràfics estàndard. Síntesi d'Imatges Generatives Conscients de 3D 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Mètode Ara presentem el nostre framework GET3D per a la síntesi de formes 3D texturitzades. El nostre procés de generació es divideix en dues parts: una branca de geometria, que genera de manera diferencial una malla de superfície de topologia arbitrària, i una branca de textura que produeix un camp de textura que es pot consultar als punts de la superfície per produir colors. Aquesta última es pot estendre a altres propietats superficials com, per exemple, materials (Secció ). Durant l'entrenament, s'utilitza un rasteritzador diferenciable eficient per renderitzar la malla texturitzada resultant en imatges 2D d'alta resolució. Tot el procés és diferencial, cosa que permet l'entrenament adversarial a partir d'imatges (amb màscares que indiquen un objecte d'interès) propagant els gradients del discriminador 2D a ambdues branques del generador. El nostre model s'il·lustra a la Fig. . A continuació, introduïm primer el nostre generador 3D a la Secció , abans de passar a la renderització diferenciable i les funcions de pèrdua a la Secció . 4.3.1 2 3.1 3.2 3.1 Generador de Malles 3D Texturitzades Pretenem aprendre un generador 3D = ( ) per mapejar una mostra d'una distribució Gaussiana M, E G z ∈ N (0*,* ) a una malla amb textura . z I M E Atès que la mateixa geometria pot tenir textures diferents, i la mateixa textura es pot aplicar a geometries diferents, mostrem dues entrades aleatòries 1 ∈ R512 i 2 ∈ R512. Seguint StyleGAN [ , , ], utilitzem xarxes de mapeig no lineals geo i tex per mapejar 1 i 2 a vectors latents intermedis 1 = geo( 1) i 2 = tex( 2) que s'utilitzen posteriorment per produir *estils* que controlen la generació de formes 3D i textura, respectivament. Introduïm formalment el generador de geometria a la Secció i el generador de textura a la Secció . z z 34 35 33 f f z z w f z w f z 3.1.1 3.1.2 3.1.1 Generador de Geometria Dissenyem el nostre generador de geometria per incorporar DMTet [ ], una representació de superfície diferencial proposada recentment. DMTet representa la geometria com un camp de distància signada (SDF) definit en una graella tetraèdrica deformable [ , ], a partir de la qual la superfície es pot recuperar diferencialment a través de tetraedres marcadors [ ]. Deformar la graella movent els seus vèrtexs resulta en una millor utilització de la seva resolució. Adoptant DMTet per a l'extracció de superfícies, podem produir malles explícites amb topologia i gènere arbitraris. A continuació, proporcionem un breu resum de DMTet i remetem el lector al document original per a més detalls. 60 22 24 17 Sigui ( ) la representació de tot l'espai 3D on es troba l'objecte, on són els vèrtexs de la graella tetraèdrica . Cada tetraedre ∈ es defineix utilitzant quatre vèrtexs { }, amb ∈ {1*, . . . , K*}, on és el nombre total de tetraedres, i ∈ ∈ R3. A més de les seves coordenades 3D, cada vèrtex conté el valor SDF ∈ R i la deformació ∆ ∈ R3 del vèrtex des de la seva coordenada canònica inicial. Aquesta representació permet recuperar la malla explícita a través de l'algoritme de tetraedres marcadors diferencial [ ], on els valors SDF en espai continu s'obtenen per interpolació baricèntrica del seu valor sobre els vèrtexs deformats ′ = + ∆ . 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 Mapegem 1 ∈ R512 a valors SDF i deformacions a cada vèrtex a través d'una sèrie de capes convolucionals 3D condicionals i totalment connectades. Específicament, primer utilitzem capes convolucionals 3D per generar un volum de característiques condicionat a 1. Després consultem la característica a cada vèrtex ∈ utilitzant interpolació trilinear i la introduïm en MLPs que generen el valor SDF i la deformació ∆ . En casos on es requereix modelatge a alta resolució (per exemple, motos amb estructures fines a les rodes), utilitzem subdivision del volum seguint [ ]. Arquitectura de la Xarxa w v i w v i VT si v i 60 Després d'obtenir i ∆ per a tots els vèrtexs, utilitzem l'algoritme diferencial de tetraedres marcadors per extreure la malla explícita. Els tetraedres marcadors determinen la topologia de la superfície dins de cada tetraedre basant-se en els signes de . En particular, s'extreu una cara de la malla quan sign( ) /= sign( ), on denota els índexs dels vèrtexs de la vora del tetraedre, i els vèrtexs d'aquesta cara es determinen per una interpolació lineal com mi,j = v 0 i sj−v 0 j si sj−si . Tingueu en compte que l'equació anterior només s'avalua quan si 6= sj , per tant és diferencial, i el gradient de mi,j es pot retropropagar als valors SDF si i deformacions ∆vi . Amb aquesta representació, les formes amb topologia arbitrària es poden generar fàcilment predint signes diferents de si. Extracció de Malla Diferencial si v i si si sj i, j m i,j 3.1.2 Generador de Textura Generar directament un mapa de textura consistent amb la malla de sortida no és trivial, ja que la forma generada pot tenir un gènere i topologia arbitràries. Per tant, parametritzem la textura com un camp de textura [ ]. 50 Específicament, modellem el camp de textura amb una funció que mapeja la ubicació 3D d'un punt de superfície ∈ R3, condicionada al codi latent 2, al color RGB ∈ R3 en aquesta ubicació. Atès que el camp de textura depèn de la geometria, també condicionem aquest mapeig al codi latent de geometria 1, de manera que = ( *,* 1 ⊕ 2), on ⊕ denota la concatenació. ft p w c w c ft p w w Representem el nostre camp de textura amb una representació de tri-pla, que és eficient i expressiva per reconstruir objectes 3D [ ] i generar imatges conscients de 3D [ ]. Específicament, seguint [ , ] utilitzem una xarxa neuronal convolucional 2D condicional per mapejar el codi latent 1 ⊕ 2 a tres plans de característiques ortogonals alineats amb els eixos de mida × × ( × 3), on = 256 denota la resolució espacial i = 32 el nombre de canals. Arquitectura de la Xarxa 55 8 8 35 w w N N C N C Donats els plans de característiques, el vector de característiques f t ∈ R 32 d'un punt de superfície p es pot recuperar com f t = P e ρ(πe(p)), on πe(p) és la projecció del punt p al pla de característiques e i ρ(·) denota la interpolació bilinear de les característiques. Després s'utilitza una capa totalment connectada addicional per mapejar el vector de característiques agregades f t al color RGB c. Tingueu en compte que, a diferència d'altres treballs sobre síntesi d'imatges conscients de 3D que també utilitzen una representació de camp neuronal, només necessitem consultar el camp de textura a les ubicacions dels punts de superfície (en contrast amb mostres denses al llarg d'un raig). Això redueix considerablement la complexitat computacional per renderitzar imatges d'alta resolució i garanteix la generació d'imatges consistents en múltiples vistes per construcció. 3.2 Renderització Diferencial i Entrenament Per supervisar el nostre model durant l'entrenament, ens inspirem en Nvdiffrec [ ] que realitza la reconstrucció d'objectes 3D en múltiples vistes utilitzant un renderitzador diferencial. Específicament, renderitzem la malla 3D extreta i el camp de textura en imatges 2D utilitzant un renderitzador diferencial [ ], i supervisem la nostra xarxa amb un discriminador 2D, que intenta distingir la imatge d'un objecte real o renderitzada a partir de l'objecte generat. 47 37 Suposem que la distribució de càmeres C que es va utilitzar per adquirir les imatges del conjunt de dades és coneguda. Per renderitzar les formes generades, seleccionem aleatòriament una càmera de C, i utilitzem un rasteritzador diferencial altament optimitzat Nvdiffrast [ ] per renderitzar la malla 3D en una silueta 2D, així com una imatge on cada píxel conté les coordenades del punt 3D corresponent a la malla. Aquestes coordenades s'utilitzen posteriorment per consultar el camp de textura i obtenir els valors RGB. Atès que operem directament sobre la malla extreta, podem renderitzar imatges d'alta resolució amb alta eficiència, cosa que permet entrenar el nostre model amb resolucions d'imatge tan altes com 1024×1024. Renderització Diferencial c 37 Entrenem el nostre model utilitzant un objectiu adversarial. Adoptem l'arquitectura del discriminador de StyleGAN [ ], i utilitzem el mateix objectiu GAN no saturant amb regularització R1 [ ]. Empíricament trobem que utilitzar dos discriminadors separats, un per a imatges RGB i un altre per a siluetes, produeix millors resultats que un sol discriminador que opera sobre ambdues. Sigui el discriminador, on pot ser una imatge RGB o una silueta. L'objectiu adversarial es defineix aleshores com segueix: Discriminador i Objectiu 34 42 Dx x on ( ) es defineix com ( ) = − log(1 +exp(− )), és la distribució d'imatges reals, denota la renderització, i és un hiperparàmetre. Atès que és diferencial, els gradients es poden retropropagar des d'imatges 2D als nostres generadors 3D. g u g u u px R λ R Per eliminar cares flotants internes que no són visibles en cap de les vistes, regularitzem addicionalment el generador de geometria amb una pèrdua d'entropia creuada definida entre els valors SDF dels vèrtexs veïns [ ]: Regularització 47 on denota la pèrdua d'entropia creuada binària i denota la funció sigmoide. La suma a l'Eq. es defineix sobre el conjunt d'arestes úniques S de la graella tetraèdrica, per a les quals sign( ) /= sign( ). H σ 2 e si sj La funció de pèrdua general es defineix aleshores com: on és un hiperparàmetre que controla el nivell de regularització. µ