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, nevoia de instrumente de creare de conținut care să poată scala în ceea ce privește cantitatea, calitatea și diversitatea conținutului 3D devine evidentă. În lucrarea noastră, ne propunem să antrenăm modele generative 3D performante care sintetizează mesh-uri texturate ce pot fi direct consumate de motoarele de randare 3D, fiind astfel imediat utilizabile în aplicații downstream. Lucrările anterioare despre modelarea generativă 3D fie nu au detalii geometrice, fie sunt limitate în topologia mesh-ului pe care o pot produce, de obicei nu suportă texturi sau utilizează randări neuronale în procesul de sinteză, ceea ce face utilizarea lor în software-ul 3D comun ne-trivială. În această lucrare, introducem GET3D, un model enerativ care generează direct mesh-uri xplicite exturate cu topologie complexă, detalii geometrice bogate și texturi de înaltă fidelitate. Conectăm succesele recente în modelarea suprafețelor diferențiabile, randarea diferențiabilă, precum și rețelele GAN 2D pentru a antrena modelul nostru din colecții de imagini 2D. GET3D este capabil să genereze mesh-uri texturate 3D de înaltă calitate, variind de la mașini, scaune, animale, motociclete și personaje umane 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 mai multe industrii, inclusiv jocuri, robotică, arhitectură și platforme sociale. Cu toate acestea, crearea manuală a activelor 3D este foarte consumatoare de 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, să spunem, popularea unui joc sau a unui film cu o mulțime de personaje care arată diferit, necesită încă o cantitate semnificativă de timp 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 utile practic în aplicațiile curente din lumea reală, 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ă, Ieșirea ar trebui să fie un mesh texturat, care este o reprezentare primară utilizată de pachetele software grafice standard, 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 submulțimi ale cerințelor de mai sus, dar nicio metodă de până acum 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 într-o post-procesare. 1 5 Metodele care generează voxeli adesea nu au detalii geometrice și nu produc texturi [ , , , ]. 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 forme 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 volumetrică neuronală [ ] și rețelele GAN 2D [ , , , , ] a dus la apariția sintezei de imagini 3D-aware [ , , , , , ]. Cu toate acestea, această linie de lucru vizează sinteza imaginilor consistente multi-vedere folosind 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 corespunzătoare este o întreprindere ne-trivială. 45 34 35 33 29 52 7 57 8 49 51 25 39 În această lucrare, introducem o abordare nouă care vizează abordarea tuturor cerințelor unui model generativ 3D practic util. În mod specific, propunem GET3D, un model enerativ pentru forme 3D care produce direct mesh-uri xplicite exturate cu înaltă detaliere geometrică și texturală și topologie arbitrară a mesh-ului. În inima abordării noastre se află un proces generativ care utilizează o metodă diferențiabilă de extragere explicită 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 folosește un randator grafic (diferențiabil) foarte eficient, putem scala modelul nostru pentru a antrena cu imagini G E T 3D 60 47 37 la rezoluții de până la 1024 × 1024, permițându-ne să învățăm detalii geometrice și texturale de înaltă calitate. Demonstrăm performanțe de ultimă generație pentru generarea necondiționată de forme 3D pe mai multe categorii cu geometrie complexă din ShapeNet [ ], Turbosquid [ ] și Renderpeople [ ], cum ar fi scaune, motociclete, mașini, personaje umane și clădiri. Cu reprezentarea explicită a mesh-ului ca 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 imaginilor generative 3D-aware. În ultimii ani, modelele generative 2D au atins calitate fotorealistă î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ătoare cu lucrarea noastră, Textured3DGAN [ , ] și DIBR [ ] generează mesh-uri 3D texturate, dar formulează generarea ca o deformare a unui mesh șablon, ceea ce le împiedică să genereze topologii complexe 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 volumetrice neuronale [ ] și al reprezentărilor implicite [ , ], lucrările recente au început să abordeze problema sintezei imaginilor 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 randării efectuând randarea neuronală la o rezoluție mai mică și apoi extinzând rezultatele cu un CNN 2D. Cu toate acestea, câștigul de performanță vine cu un preț de consistență multi-vedere redusă. 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 întreprindere ne-trivială. În contrast, GET3D produce direct mesh-uri 3D texturate care pot fi utilizate imediat în motoarele grafice standard. Sinteza Imaginilor Generative 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 framework-ul nostru GET3D pentru sinteza formelor 3D texturate. Procesul nostru de generare este împărțit în două părți: un ram de geometrie, care produce diferențiabil un mesh de suprafață cu topologie arbitrară, și un ram de textură care produce un câmp de textură care poate fi interogat la punctele de suprafață pentru a produce culori. Acesta din urmă poate fi extins la alte proprietăți de suprafață, cum ar fi, de exemplu, materialele (Sec. ). În timpul antrenamentului, un rasterizator diferențiabil eficient este utilizat pentru a randa mesh-ul texturat rezultat î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 gradientilor 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, iar aceeași textură poate fi aplicată diferitelor geometrii, noi eșantionăm doi vectori de intrare aleatori 1 ∈ R512 și 2 ∈ R512. Urmând StyleGAN [ , , ], folosim apoi rețele de mapare neliniare geo și tex pentru a mapa 1 și 2 la vectori latenți intermediari 1 = geo( 1) și 2 = tex( 2) care sunt utilizați ulterior pentru a produce ce controlează generarea formelor 3D și a texturii, respectiv. 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 a suprafeței diferențiabilă propusă recent. DMTet reprezintă geometria ca un câmp de distanță semnat (SDF) definit pe o grilă tetraedrică deformabilă [ , ], din care suprafața poate fi recuperată diferențiabil prin marching tetrahedra [ ]. Deformarea grilei prin mișcarea vârfurilor sale duce la o utilizare mai bună a rezoluției sale. Prin adoptarea DMTet pentru extragerea suprafeței, putem produce mesh-uri explicite cu topologie și gen arbitrare. Oferim în continuare un rezumat succint 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, și ∈ ∈ 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țiu 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 deformații la fiecare vârf printr-o serie de straturi convoluționale 3D condiționate și straturi complet conectate. În mod 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 la roți), folosim în plus subdiviziunea volumetrică conform [ ]. Arhitectura Rețelei w v i w v i VT si v i 60 După obținerea și ∆ pentru toate vârfurile, folosim algoritmul diferențiabil marching tetrahedra pentru a extrage mesh-ul explicit. Marching tetrahedra determină topologia suprafeței în cadrul fiecărui tetrahedron pe baza semnelor lui . În mod specific, o față de mesh este extrasă atunci când sign( ) /= sign( ), unde denotă 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 atunci când si 6= sj , deci este diferențiabilă, iar gradientul de la mi,j poate fi retro-propagată în valorile SDF si și deformațiile ∆vi . Cu această reprezentare, formele cu topologie arbitrară pot fi generate cu ușurință prin prezicerea unor semne diferite ale lui si. Extragere Mesh Diferențiabilă 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ă consistentă cu mesh-ul de ieșire nu este trivială, deoarece forma generată poate avea un gen și o topologie arbitrare. Prin urmare, parametrizăm textura ca un câmp de textură [ ]. 50 În mod 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 în acea locație. Deoarece câmpul de textură depinde de geometrie, condiționăm suplimentar această mapare pe 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 în generarea imaginilor 3D-aware [ ]. În mod specific, urmăm [ , ] și folosim o rețea neuronală convoluțională 2D condiționată pentru a mapa codul latent 1 ⊕ 2 la trei plane de caracteristici ortogonale aliniate pe axe de dimensiune × × ( × 3), unde = 256 denotă rezoluția spațială și = 32 numărul de canale. Arhitectura Rețelei 55 8 8 35 w w N N C N C Dată fiind planele 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 biliniară a caracteristicilor. O rețea complet conectată suplimentară este apoi utilizată pentru a mapa vectorul de caracteristici agregat f t la culoarea RGB c. Rețineți că, spre deosebire de alte lucrări despre sinteza imaginilor 3D-aware care folosesc, de asemenea, o reprezentare a câmpului 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 semnificativ complexitatea computațională pentru randarea imaginilor de înaltă rezoluție și garantează generarea imaginilor consistente multi-vedere prin construcție. 3.2 Randare Diferențiabilă și Antrenament Pentru a superviza modelul nostru în timpul antrenamentului, ne inspirăm de la Nvdiffrec [ ] care efectuează reconstrucția 3D multi-vedere a obiectelor utilizând un randator diferențiabil. În mod specific, randăm mesh-ul 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 pentru înaltă performanță 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 Randare Diferențiabilă c 37 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ția imaginii de până la 1024×1024. 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 [ ]. Constatăm empiric că utilizarea a doi discriminatori separați, unul pentru imaginile RGB și altul pentru siluete, produce rezultate mai bune decât un singur discriminator care operează pe ambele. Fie discriminatorul, unde poate fi fie o imagine RGB, fie o siluetă. Obiectivul adversarial va fi atunci definit ca: Discriminator și 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 retro-pătrați de la imaginile 2D la generatorii noștri 3D. g u g u u px R λ R Pentru a elimina fețele interne flotante 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ă și denotă funcția sigmoidă. Suma din Ec. este definită pe setul de muchii unice S din grila tetraedrică, pentru care sign( ) /= sign( ). H σ 2 e si sj Funcția de pierdere globală este apoi definită ca: unde este un hiperparametru care controlează nivelul de regularizare. µ