```html 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) Rezumat Pe măsură ce mai multe industrii se îndreaptă către 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 care pot fi consumate direct de motoarele de redare 3D, fiind astfel imediat utilizabile în aplicații ulterioare. Lucrările anterioare privind modelarea generativă 3D fie nu au detalii geometrice, fie sunt limitate în topologia mesh-ului pe care o pot produce, fie, de obicei, nu suportă texturi, fie utilizează randări 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 generează direct mesh-uri xplicite exturate cu topologie complexă, detalii geometrice bogate și texturi de înaltă fidelitate. Facem legătura între succesele recente în modelarea suprafețelor diferențiabile, randarea diferențiabilă, precum și rețelele GAN (Generative Adversarial Networks) 2D pentru a antrena modelul nostru din colecții de imagini 2D. GET3D este capabil să genereze mesh-uri texturate 3D de înaltă calitate, de la mașini, scaune, animale, motociclete și personaje umane, până la clădiri, realizâ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ă de active 3D necesită mult timp și 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ă zicem, popularea unui joc sau a unui film cu o mulțime de personaje care arată diferit, necesită în continuare un timp semnificativ 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 generative 3D 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 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 standard de software grafic precum Blender [ ] și Maya [ ], și Ar trebui să putem folosi imagini 2D pentru supraveghere, 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 privind 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 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, supraveghere 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 (Generative Adversarial Networks) [ , , , , ] a dus la apariția sintezei de imagini 3D-conștiente [ , , , , , ]. Cu toate acestea, această linie de cercetare vizează sinteza de imagini multi-vedere consistente folosind randarea neuronală în procesul de sinteză și nu garantează că se pot genera 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 sarcină non-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 util practic. În mod specific, propunem GET3D, un model enerativ pentru forme 3D care produce direct mesh-uri xplicite exturate cu detalii geometrice și texturale înalte și topologie arbitrară a mesh-ului. Î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 de imagini 2D. Deoarece modelul nostru generează direct mesh-uri și utilizează un randament grafic diferențiabil și 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 texturale 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 [ ], precum scaune, motociclete, mașini, personaje umane și clădiri. Cu reprezentarea de ieșire sub formă de mesh explicit, 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 vizualizare folosind randare diferențiabilă avansată [ ], fără supraveghere, generarea de forme 3D ghidată de text folosind embedding-ul 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 de imagini generative 3D-conștiente. În ultimii ani, modelele generative 2D au atins calități fotorealiste în sinteza de imagini de înaltă rezoluție [ , , , , , , ]. Acest progres a inspirat și cercetarea în generarea de conținut 3D. Abordările timpurii au vizat extinderea directă a generatorilor 2D CNN 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 sub formă 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 similar 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 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 volumetrice neuronale [ ] și al reprezentărilor implicite [ , ], lucrările recente au început să abordeze problema sintezei de imagini 3D-conștiente [ , , , , , , , , , ]. 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 de Imagini Generative 3D-Conștiente 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metodă Acum prezentăm cadrul 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 ale suprafeței, cum ar fi, de exemplu, materialele (Secțiunea ). În timpul antrenamentului, se utilizează un rasterizator diferențiabil eficient pentru a reda mesh-ul texturat 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 Figura . În cele ce urmează, introducem mai întâi generatorul nostru 3D în Secțiunea , înainte de a trece la randarea diferențiabilă și funcțiile de pierdere în Secțiunea . 4.3.1 2 3.1 3.2 3.1 Generatorul de Mesh-uri 3D Texturate Ne propunem să antrenă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, extragem două vectori de intrare aleatori 1 ∈ R512 și 2 ∈ R512. Urmând StyleGAN [ , , ], utilizăm 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țiunea și generatorul de textură în Secțiunea . 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 Generatorul de Geometrie Proiectăm generatorul nostru de geometrie pentru a încorpora DMTet [ ], o reprezentare recent propusă a suprafeței diferențiabile. 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 metoda marching tetrahedra [ ]. Deformarea grilei prin deplasarea vertexurilor sale duce la 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. Oferim în continuare 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 vertexurile din grila tetraedrică . Fiecare tetraedru ∈ este definit folosind patru vertexuri { }, cu ∈ {1*, . . . , K*}, unde este numărul total de tetraedri, și ∈ ∈ R3. Pe lângă coordonatele sale 3D , fiecare vertex conține valoarea SDF ∈ R și deformarea ∆ ∈ R3 a vertexului față de coordonata sa canonică inițială. Această reprezentare permite recuperarea mesh-ului explicit prin algoritmul marching tetrahedra diferențiabil [ ], unde valorile SDF în spațiu continuu sunt calculate printr-o interpolare baricentrică a valorii lor pe vertexurile 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 vertex 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 vertex ∈ 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), utilizăm în plus subdivizarea volumului conform [ ]. Arhitectura Rețelei w v i w v i VT si v i 60 După obținerea și ∆ pentru toate vertexurile, utilizăm algoritmul marching tetrahedra diferențiabil pentru a extrage mesh-ul explicit. Marching tetrahedra determină topologia suprafeței în fiecare tetraedru pe baza semnelor lui . În mod specific, o față de mesh este extrasă atunci când sign( ) /= sign( ), unde denotă indicii vertexurilor pe muchia tetraedrului, iar vertexurile 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 propagat înapoi î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 ale lui si. Extragerea Diferențiabilă a Mesh-ului si v i si si sj i, j m i,j 3.1.2 Generatorul 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 Î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 de codul latent al geometriei 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-conștiente [ ]. Î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 axă 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 Având în vedere 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. Un strat complet conectat suplimentar 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 de imagini 3D-conștiente [8, 25, 7, 57] 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 unui rază). Acest lucru reduce semnificativ complexitatea computațională pentru randarea imaginilor de înaltă rezoluție și garantează generarea de imagini multi-vedere consistente prin construcție. 3.2 Randare Diferențiabilă și Antrenament Pentru a supraveghea modelul nostru în timpul antrenamentului, ne inspirăm din Nvdiffrec [ ] care efectuează reconstrucția obiectelor 3D multi-vedere utilizând un randament diferențiabil. În mod specific, redăm mesh-ul extras și câmpul de textură în imagini 2D folosind un randament diferențiabil [ ] și supraveghem rețeaua noastră cu un discriminator 2D, care încearcă să distingă imaginea de un obiect real sau redată de obiectul generat. 47 37 Presupunem că distribuția camerei C utilizată pentru achiziționarea imaginilor din setul de date este cunoscută. Pentru a reda formele generate, eșantionăm aleatoriu o cameră din C și utilizăm un rasterizator diferențiabil foarte optimizat Nvdiffrast [ ] pentru a reda 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 utilizate în continuare pentru a interoga câmpul de textură pentru a obține valorile RGB. Deoarece operăm direct pe mesh-ul extras, putem reda imagini de înaltă rezoluție cu eficiență ridicată, permițând antrenarea modelului nostru 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 celălalt 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 după cum urmează: 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 propagați de la imaginile 2D la generatorii noștri 3D. g u g u u px R λ R Pentru a elimina fețele interne plutitoare care nu sunt vizibile în niciuna dintre vederi, regularizăm în continuare generatorul de geometrie cu o pierdere de entropie încrucișată definită între valorile SDF ale vertexurilor vecine [ ]: Regularizare 47 unde denotă pierderea de entropie încrucișată binară, iar denotă funcția sigmoidă. Suma din Eq. este definită pe mulțimea muchiilor 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. µ