Autori: Jun Gao, NVIDIA, University of Toronto, Vector Institute (jung@nvidia.com) Tianchang Shen, NVIDIA, University of Toronto, Vector Institute (frshen@nvidia.com) Zian Wang, NVIDIA, University of Toronto, Vector Institute (zianw@nvidia.com) Wenzheng Chen, NVIDIA, University of Toronto, Vector Institute (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, University of Toronto, Vector Institute (sfidler@nvidia.com) Abstract Pe măsură ce mai multe industrii se îndreaptă spre modelarea lumilor virtuale 3D masive, devine evidentă nevoia de instrumente de creare de conținut care să poată scala în ceea ce privește cantitatea, calitatea și diversitatea conținutului 3D. În munca noastră, ne propunem să antrenăm modele generative 3D performante care sintetizează mesh-uri texturate ce pot fi consumate direct de motoarele de randare 3D, fiind astfel imediat utilizabile în aplicații ulterioare. Lucrările anterioare despre modelarea generativă 3D fie au lipsă de detalii geometrice, fie sunt limitate în topologia mesh-ului pe care o pot produce, de obicei nu suportă texturi sau utilizează randatoare neuronale în procesul de sinteză, ceea ce face utilizarea lor în software-ul 3D comun non-trivială. În această lucrare, introducem GET3D, un model enerativ care creează direct mesh-uri xplicite exturate cu topologie complexă, detalii geometrice bogate și texturi de înaltă fidelitate. Combinăm succesul recent în modelarea suprafețelor diferențiabile, randarea diferențiabilă, precum și rețelele Generative Adversariale 2D pentru a antrena modelul nostru pe colecții de imagini 2D. GET3D este capabil să genereze mesh-uri 3D texturate de înaltă calitate, variind de la mașini, scaune, animale, motociclete și personaje umane, până la clădiri, obținând îmbunătățiri semnificative față de metodele anterioare. Pagina proiectului nostru: G E T 3D https://nv-tlabs.github.io/GET3D 1 Introducere Conținutul 3D divers și de înaltă calitate devine din ce în ce mai important pentru diverse industrii, inclusiv jocuri, robotică, arhitectură și platforme sociale. Cu toate acestea, crearea manuală a activelor 3D consumă mult timp și necesită cunoștințe tehnice specifice, precum și abilități de modelare artistică. Una dintre principalele provocări este, așadar, scara – în timp ce se pot găsi modele 3D pe piețe 3D precum Turbosquid [ ] sau Sketchfab [ ], crearea multor modele 3D pentru a popula, să spunem, un joc sau un film cu o mulțime de personaje care arată toate diferit, necesită în continuare un timp considerabil din partea artiștilor. 4 3 Pentru a facilita procesul de creare de conținut și a-l face accesibil unei varietăți de utilizatori (novici), rețelele 3D generative care pot produce active 3D de înaltă calitate și diverse au devenit recent un domeniu activ de cercetare [ , , , , , , , , , , ]. Cu toate acestea, pentru a fi practic utile pentru aplicațiile din lumea reală actuală, modelele generative 3D ar trebui, în mod ideal, să îndeplinească următoarele cerințe: Ar trebui să aibă capacitatea de a genera forme cu geometrie detaliată și topologie arbitrară, Rezultatul ar trebui să fie un mesh texturat, care este o reprezentare primară utilizată de pachete software standard de grafică, cum ar fi Blender [ ] și Maya [ ], și Ar trebui să putem folosi imagini 2D pentru supervizare, deoarece acestea sunt mai disponibile decât formele 3D explicite. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Lucrările anterioare despre modelarea generativă 3D s-au concentrat pe subseturi ale cerințelor de mai sus, dar nicio metodă până în prezent nu le îndeplinește pe toate (Tabelul ). De exemplu, metodele care generează nori de puncte 3D [ , 68, 75] de obicei nu produc texturi și trebuie convertite într-un mesh în post-procesare. 1 5 Metodele care generează voxeli adesea lipsesc detalii geometrice și nu produc textură [ , , , ]. Modelele generative bazate pe câmpuri neuronale [ , ] se concentrează pe extragerea geometriei, dar ignoră textura. Majoritatea acestora necesită, de asemenea, supervizare 3D explicită. În final, metodele care produc direct mesh-uri 3D texturate [ , ] necesită de obicei șabloane de formă predefinite și nu pot genera forme cu topologie complexă și gen variabil. 66 20 27 40 43 14 54 53 Recent, progresul rapid în randarea volumelor neuronale [ ] și rețelele Generative Adversariale 2D (GANs) [ , , , , ] a dus la apariția sintezei de imagini 3D-aware [ , , , , , ]. Cu toate acestea, această linie de muncă urmărește sintetizarea imaginilor consistente multi-vedere utilizând randarea neuronală în procesul de sinteză și nu garantează că pot fi generate forme 3D semnificative. Deși un mesh poate fi obținut potențial din reprezentarea câmpului neuronal subiacent folosind algoritmul marching cubes [ ], extragerea texturii corespondente este o sarcină non-trivială. 45 34 35 33 29 52 7 57 8 49 51 25 39 În această lucrare, introducem o abordare nouă care își propune să abordeze toate cerințele unui model generativ 3D practic util. Specific, propunem GET3D, un model enerativ pentru forme 3D care produce direct mesh-uri xplicite exturate cu detalii geometrice și de textură înalte și topologie de mesh arbitrară. În inima abordării noastre se află un proces generativ care utilizează o metodă diferențiabilă de extragere a suprafeței [ ] și o tehnică de randare diferențiabilă [ , ]. Prima ne permite să optimizăm și să producem direct mesh-uri 3D texturate cu topologie arbitrară, în timp ce a doua ne permite să antrenăm modelul nostru cu imagini 2D, valorificând astfel discriminatori puternici și maturi dezvoltați pentru sinteza imaginilor 2D. Deoarece modelul nostru generează direct mesh-uri și utilizează un randator grafic (diferențiabil) foarte eficient, putem scala modelul nostru pentru a antrena cu rezoluții de imagine de până la 1024 × 1024, permițându-ne să învățăm detalii geometrice și de textură de înaltă calitate. G E T 3D explicite 60 47 37 Demonstrăm performanțe de ultimă generație pentru generarea necondiționată de forme 3D pe multiple categorii cu geometrie complexă din ShapeNet [ ], Turbosquid [ ] și Renderpeople [ ], cum ar fi scaune, motociclete, mașini, personaje umane și clădiri. Cu mesh-ul explicit ca reprezentare de ieșire, GET3D este, de asemenea, foarte flexibil și poate fi adaptat cu ușurință la alte sarcini, inclusiv: învățarea generării de materiale descompuse și efecte de iluminare dependente de vedere folosind randare diferențiabilă avansată [ ], fără supervizare, generarea de forme 3D ghidată de text folosind embedding CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Lucrări conexe Revizuim progresele recente în modelele generative 3D pentru geometrie și aspect, precum și sinteza generativă de imagini 3D-aware. În ultimii ani, modelele generative 2D au atins o calitate fotorealistică în sinteza imaginilor de înaltă rezoluție [ , , , , , , ]. Acest progres a inspirat, de asemenea, cercetarea în generarea de conținut 3D. Abordările timpurii au avut ca scop extinderea directă a generatoarelor CNN 2D la grile de voxeli 3D [ , , , , ], dar amprenta mare de memorie și complexitatea computațională a convoluțiilor 3D împiedică procesul de generare la rezoluție înaltă. Ca alternativă, alte lucrări au explorat reprezentări de nori de puncte [ , , , ], implicite [ , ] sau octree [ ]. Cu toate acestea, aceste lucrări se concentrează în principal pe generarea geometriei și ignoră aspectul. Reprezentările lor de ieșire necesită, de asemenea, post-procesare pentru a le face compatibile cu motoarele grafice standard. Modele Generative 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Mai asemănător lucrării noastre, Textured3DGAN [ , ] și DIBR [ ] generează mesh-uri 3D texturate, dar formulează generarea ca o deformare a unui mesh șablon, ceea ce le împiedică să genereze topologie complexă sau forme cu gen variabil, ceea ce metoda noastră poate face. PolyGen [ ] și SurfGen [ ] pot produce mesh-uri cu topologie arbitrară, dar nu sintetizează texturi. 54 53 11 48 41 Inspirați de succesul randării volumelor neuronale [ ] și a reprezentărilor implicite [ , ], lucrările recente au început să abordeze problema sintezei generative de imagini 3D-aware [ , , , , , , , , , ]. Cu toate acestea, rețelele de randare volumetrică neuronală sunt de obicei lente la interogare, ducând la timpi de antrenament lungi [ , ] și generează imagini de rezoluție limitată. GIRAFFE [ ] și StyleNerf [ ] îmbunătățesc eficiența antrenamentului și a randării prin efectuarea randării neuronale la o rezoluție mai mică și apoi prin redimensionarea rezultatelor cu un CNN 2D. Cu toate acestea, câștigul de performanță vine cu prețul unei consistențe multi-vedere reduse. Utilizând un discriminator dual, EG3D [ ] poate atenua parțial această problemă. Cu toate acestea, extragerea unei suprafețe texturate din metodele bazate pe randare neuronală este o sarcină non-trivială. În contrast, GET3D produce direct mesh-uri 3D texturate care pot fi utilizate imediat în motoarele grafice standard. Sinteza Generativă de Imagini 3D-Aware 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metodă Prezentăm acum cadrul nostru GET3D pentru sinteza formelor 3D texturate. Procesul nostru de generare este împărțit în două părți: o ramură geometrică, care produce diferențiabil un mesh de suprafață cu topologie arbitrară, și o ramură de textură care produce un câmp de textură ce poate fi interogat la punctele de suprafață pentru a produce culori. Ultima poate fi extinsă la alte proprietăți ale suprafeței, cum ar fi, de exemplu, materialele (Sec. ). În timpul antrenamentului, un rasterizator diferențiabil eficient este utilizat pentru a randa mesh-ul extras în imagini 2D de înaltă rezoluție. Întregul proces este diferențiabil, permițând antrenamentul adversarial din imagini (cu măști indicând un obiect de interes) prin propagarea gradienților de la discriminatorul 2D la ambele ramuri ale generatorului. Modelul nostru este ilustrat în Fig. . În cele ce urmează, introducem mai întâi generatorul nostru 3D în Sec , înainte de a trece la randarea diferențiabilă și funcțiile de pierdere în Sec . 4.3.1 2 3.1 3.2 3.1 Generator de Mesh-uri 3D Texturate Ne propunem să învățăm un generator 3D = ( ) pentru a mapa o mostră dintr-o distribuție Gaussiană M, E G z ∈ N (0*,* ) la un mesh cu textură . z I M E Deoarece aceeași geometrie poate avea texturi diferite și aceeași textură poate fi aplicată diferitelor geometrii, eșantionăm doi vectori de intrare aleatori 1 ∈ R512 și 2 ∈ R512. Urmând StyleGAN [ , , ], folosim apoi rețele de mapare non-liniare geo și tex pentru a mapa 1 și 2 la vectori latenți intermediari 1 = geo( 1) și 2 = tex( 2) care sunt ulterior utilizați pentru a produce care controlează generarea formelor 3D și, respectiv, a texturii. Introducem formal generatorul pentru geometrie în Sec. și generatorul de textură în Sec. . z z 34 35 33 f f z z w f z w f z stiluri 3.1.1 3.1.2 3.1.1 Generator de Geometrie Proiectăm generatorul nostru de geometrie pentru a încorpora DMTet [ ], o reprezentare diferențiabilă a suprafeței propusă recent. DMTet reprezintă geometria ca un câmp de distanță cu semn (SDF) definit pe o grilă tetraedrică deformabilă [ , ], din care suprafața poate fi recuperată diferențiabil prin marching tetrahedra [ ]. Deformarea grilei prin mutarea vârfurilor sale permite o utilizare mai bună a rezoluției sale. Adoptând DMTet pentru extragerea suprafeței, putem produce mesh-uri explicite cu topologie și gen arbitrar. În continuare, oferim un rezumat scurt al DMTet și trimitem cititorul la lucrarea originală pentru detalii suplimentare. 60 22 24 17 Fie ( ) spațiul 3D complet în care se află obiectul, unde sunt vârfurile din grila tetraedrică . Fiecare tetrahedron ∈ este definit folosind patru vârfuri { }, cu ∈ {1*, . . . , K*}, unde este numărul total de tetraedre, iar ∈ ∈ R3. Pe lângă coordonatele sale 3D , fiecare vârf conține valoarea SDF ∈ R și deformarea ∆ ∈ R3 a vârfului față de coordonata sa canonică inițială. Această reprezentare permite recuperarea mesh-ului explicit prin marching tetrahedra diferențiabil [ ], unde valorile SDF în spațiul continuu sunt calculate printr-o interpolare baricentrică a valorii lor pe vârfurile deformate ′ = + ∆ . 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 Mapăm 1 ∈ R512 la valori SDF și deformări la fiecare vârf printr-o serie de straturi convoluționale 3D condiționate și straturi complet conectate. Specific, folosim mai întâi straturi convoluționale 3D pentru a genera un volum de caracteristici condiționat de 1. Apoi interogăm caracteristica la fiecare vârf ∈ folosind interpolare trilineară și o introducem în MLP-uri care produc valoarea SDF și deformarea ∆ . În cazurile în care este necesară modelarea la rezoluție înaltă (de ex., motocicletă cu structuri subțiri în roți), folosim în plus subdiviziunea volumului conform [ ]. Arhitectura Rețelei w v i w v i VT si v i 60 După obținerea și ∆ pentru toate vârfurile, utilizăm algoritmul diferențiabil marching tetrahedra pentru a extrage mesh-ul explicit. Marching tetrahedra determină topologia suprafeței în fiecare tetrahedron pe baza semnelor lui . În particular, o față de mesh este extrasă când sign( ) /= sign( ), unde indică indicii vârfurilor pe muchia tetrahedronului, iar vârfurile ale acelei fețe sunt determinate printr-o interpolare liniară ca mi,j = v 0 i sj−v 0 j si sj−si . Rețineți că ecuația de mai sus este evaluată doar când si 6= sj, fiind astfel diferențiabilă, iar gradientul de la mi,j poate fi retropropagat în valorile SDF si și deformările ∆vi. Cu această reprezentare, formele cu topologie arbitrară pot fi generate cu ușurință prin predicția unor semne diferite pentru si. Extragere Diferențiabilă a Mesh-ului si v i si si sj i, j m i,j 3.1.2 Generator de Textură Generarea directă a unei hărți de textură consistente cu mesh-ul de ieșire nu este trivială, deoarece forma generată poate avea un gen și o topologie arbitrară. Prin urmare, parametrizăm textura ca un câmp de textură [ ]. 50 Specific, modelăm câmpul de textură cu o funcție care mapează locația 3D a unui punct de suprafață ∈ R3, condiționat de 2, la culoarea RGB ∈ R3 la acea locație. Deoarece câmpul de textură depinde de geometrie, condiționăm suplimentar această mapare de codul latent de geometrie 1, astfel încât = ( *,* 1 ⊕ 2), unde ⊕ denotă concatenarea. ft p w c w c ft p w w Reprezentăm câmpul nostru de textură folosind o reprezentare tri-plan, care este eficientă și expresivă în reconstruirea obiectelor 3D [ ] și generarea de imagini 3D-aware [ ]. Specific, urmăm [ , ] și folosim o rețea neuronală convoluțională 2D condiționată pentru a mapa codul latent 1 ⊕ 2 la trei planuri de caracteristici ortogonale aliniate pe axe de dimensiune × × ( × 3), unde = 256 reprezintă rezoluția spațială și = 32 numărul de canale. Arhitectura Rețelei 55 8 8 35 w w N N C N C Date fiind planurile de caracteristici, vectorul de caracteristici f t ∈ R 32 al unui punct de suprafață p poate fi recuperat ca f t = P e ρ(πe(p)), unde πe(p) este proiecția punctului p pe planul de caracteristici e și ρ(·) denotă interpolarea bilineară a caracteristicilor. Un strat suplimentar complet conectat este apoi utilizat pentru a mapa vectorul agregat de caracteristici f t la culoarea RGB c. Rețineți că, spre deosebire de alte lucrări privind sinteza imaginilor 3D-aware care folosesc, de asemenea, o reprezentare de câmp neuronal, noi trebuie doar să eșantionăm câmpul de textură la locațiile punctelor de suprafață (spre deosebire de eșantioane dense de-a lungul unei raze). Acest lucru reduce considerabil complexitatea computațională pentru randarea imaginilor de înaltă rezoluție și garantează generarea de imagini consistente multi-vedere prin construcție. 3.2 Randare Diferențiabilă și Antrenament Pentru a superviza modelul nostru în timpul antrenamentului, ne inspirăm din Nvdiffrec [ ] care efectuează reconstrucția obiectelor 3D multi-vedere utilizând un randator diferențiabil. Specific, randăm mesh-ul 3D extras și câmpul de textură în imagini 2D folosind un randator diferențiabil [ ] și supervizăm rețeaua noastră cu un discriminator 2D, care încearcă să distingă imaginea de un obiect real sau randată de obiectul generat. 47 37 Presupunem că distribuția camerei C utilizată pentru achiziționarea imaginilor din setul de date este cunoscută. Pentru a randa formele generate, eșantionăm aleatoriu o cameră din C și utilizăm un rasterizator diferențiabil Nvdiffrast [ ] optimizat la nivel înalt pentru a randa mesh-ul 3D într-o siluetă 2D, precum și o imagine în care fiecare pixel conține coordonatele punctului 3D corespunzător de pe suprafața mesh-ului. Aceste coordonate sunt apoi utilizate pentru a interoga câmpul de textură pentru a obține valorile RGB. Deoarece operăm direct pe mesh-ul extras, putem randa imagini de înaltă rezoluție cu eficiență ridicată, permițând modelului nostru să fie antrenat cu rezoluții de imagine de până la 1024×1024. Randare Diferențiabilă c 37 Antrenăm modelul nostru folosind un obiectiv adversarial. Adoptăm arhitectura discriminatorului din StyleGAN [ ] și folosim același obiectiv GAN non-saturant cu regularizare R1 [ ]. Am constatat empiric că utilizarea a doi discriminatori separați, unul pentru imagini RGB și altul pentru siluete, oferă rezultate mai bune decât un singur discriminator care operează pe ambele. Fie discriminatorul, unde poate fi o imagine RGB sau o siluetă. Obiectivul adversarial va fi definit apoi ca: Discriminator & Obiectiv 34 42 Dx x unde ( ) este definită ca ( ) = − log(1 +exp(− )), este distribuția imaginilor reale, denotă randarea, iar este un hiperparametru. Deoarece este diferențiabil, gradienții pot fi retropropagați de la imaginile 2D la generatoarele noastre 3D. g u g u u px R λ R Pentru a elimina fețele interne plutitoare care nu sunt vizibile în nicio vedere, regularizăm suplimentar generatorul de geometrie cu o pierdere de entropie încrucișată definită între valorile SDF ale vârfurilor vecine [ ]: Regularizare 47 unde denotă pierderea de entropie încrucișată binară, iar denotă funcția sigmoid. Suma din ecuația este definită pe mulțimea de muchii unice S din grila tetraedrică, pentru care sign( ) /= sign( ). H σ 2 e si sj Funcția de pierdere generală este apoi definită ca: unde este un hiperparametru care controlează nivelul de regularizare. µ