```html < Autori: Jun Gao, NVIDIA, Univerzitet u Torontu, Institut Vector (jung@nvidia.com) Tianchang Shen, NVIDIA, Univerzitet u Torontu, Institut Vector (frshen@nvidia.com) Zian Wang, NVIDIA, Univerzitet u Torontu, Institut Vector (zianw@nvidia.com) Wenzheng Chen, NVIDIA, Univerzitet u Torontu, Institut Vector (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, Univerzitet u Torontu, Institut Vector (sfidler@nvidia.com) Apstrakt Kako nekoliko industrija prelazi na modeliranje masivnih 3D virtuelnih svetova, potreba za alatima za kreiranje sadržaja koji se mogu skalirati u pogledu količine, kvaliteta i raznolikosti 3D sadržaja postaje očigledna. U našem radu, cilj nam je da treniramo performantne 3D generativne modele koji sintetizuju teksturirane mreže koje mogu direktno da koriste 3D rendererski engini, čime su odmah upotrebljivi u daljim aplikacijama. Prethodni radovi na 3D generativnom modeliranju ili im nedostaju geometrijski detalji, ograničeni su u topologiji mreže koju mogu proizvesti, obično ne podržavaju teksture, ili koriste neuralne renderere u procesu sinteze, što njihovu upotrebu uobičajenim 3D softverima čini netrivijalnom. U ovom radu, predstavljamo GET3D, enerativni model koji direktno generiše ksplicitne eksturisane mreže sa složenom topologijom, bogatim geometrijskim detaljima i teksturama visoke vernosti. Povezujemo nedavne uspehe u diferencijabilnom modeliranju površina, diferencijabilnom renderovanju, kao i 2D Generativnim Adversarijalnim Mrežama (GANs) kako bismo trenirali naš model na kolekcijama 2D slika. GET3D je sposoban da generiše visokokvalitetne 3D teksturisane mreže, u rasponu od automobila, stolica, životinja, motocikala i ljudskih likova do zgrada, postižući značajna poboljšanja u odnosu na prethodne metode. Naša projektna stranica: G E T 3D https://nv-tlabs.github.io/GET3D 1 Uvod Raznolik, visokokvalitetan 3D sadržaj postaje sve važniji za nekoliko industrija, uključujući gejming, robotiku, arhitekturu i društvene platforme. Međutim, ručno kreiranje 3D sredstava je veoma dugotrajno i zahteva specifično tehničko znanje, kao i veštine modeliranja. Jedan od glavnih izazova je, dakle, skala – iako se 3D modeli mogu naći na 3D tržištima kao što su Turbosquid [ ] ili Sketchfab [ ], kreiranje mnogo 3D modela za, recimo, popunjavanje igre ili filma gomilom likova koji svi izgledaju drugačije, i dalje zahteva značajnu količinu vremena umetnika. 4 3 Radi olakšavanja procesa kreiranja sadržaja i učinjenja ga dostupnim raznim (početnicima) korisnicima, generativne 3D mreže koje mogu da proizvedu visokokvalitetna i raznolika 3D sredstva nedavno su postale aktivna oblast istraživanja [ , , , , , , , , , , ]. Međutim, da bi bili praktično korisni za trenutne realne aplikacije, 3D generativni modeli bi idealno trebalo da ispunjavaju sledeće zahteve: Trebalo bi da imaju kapacitet da generišu oblike sa detaljnom geometrijom i proizvoljnom topologijom, Izlaz bi trebalo da bude teksturisana mreža, što je primarna reprezentacija koja se koristi u standardnim grafičkim softverskim paketima kao što su Blender [ ] i Maya [ ], i Trebalo bi da možemo da iskoristimo 2D slike za superviziju, jer su one šire dostupne od eksplicitnih 3D oblika. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Prethodni rad na 3D generativnom modeliranju fokusirao se na podskupove gorenavedenih zahteva, ali nijedna metoda do danas nije ispunila sve njih (Tabela ). Na primer, metode koje generišu 3D oblake tačaka [ , 68, 75] obično ne proizvode teksture i moraju biti konvertovane u mrežu u post-procesu. 1 5 Metode koje generišu voksele često nemaju geometrijske detalje i ne proizvode teksturu [ , , , ]. Generativni modeli zasnovani na neuralnim poljima [ , ] fokusiraju se na ekstrakciju geometrije, ali zanemaruju teksturu. Većina njih takođe zahteva eksplicitnu 3D superviziju. Konačno, metode koje direktno izlazuju teksturisane 3D mreže [ , ] obično zahtevaju unapred definisane šablone oblika i ne mogu generisati oblike sa složenom topologijom i promenljivim rodom. 66 20 27 40 43 14 54 53 Nedavno, brz napredak u neuralnom renderovanju volumena [ ] i 2D Generativnim Adversarijalnim Mrežama (GANs) [ , , , , ] doveo je do porasta 3D-svestne sinteze slika [ , , , , , ]. Međutim, ovaj pravac rada ima za cilj sintezu slika konzistentnih sa više pogleda koristeći neuralno renderovanje u procesu sinteze i ne garantuje da se mogu generisati smisleni 3D oblici. Iako se mreža potencijalno može dobiti iz osnovne reprezentacije neuralnog polja korišćenjem algoritma za pomeranje kocki [ ], ekstrakcija odgovarajuće teksture je netrivijalna. 45 34 35 33 29 52 7 57 8 49 51 25 39 U ovom radu, predstavljamo nov pristup koji ima za cilj da reši sve zahteve praktično korisnog 3D generativnog modela. Konkretno, predlažemo GET3D, enerativni model za 3D oblike koji direktno izlazuje ksplicitne eksturisane mreže sa visokim geometrijskim i teksturnim detaljima i proizvoljnom topologijom mreže. U srcu našeg pristupa je generativni proces koji koristi diferencijabilnu metodu ekstrakcije površine [ ] i diferencijabilnu tehniku renderovanja [ , ]. Prvo nam omogućava da direktno optimizujemo i izlazujemo teksturisane 3D mreže sa proizvoljnom topologijom, dok nam drugo omogućava da treniramo naš model sa 2D slikama, čime iskoristimo moćne i zrele diskriminatore razvijene za sintezu 2D slika. Pošto naš model direktno generiše mreže i koristi visoko efikasni (diferencijabilni) grafički renderer, možemo lako da skaliramo naš model da trenira sa rezolucijom slike do 1024 × 1024, što nam omogućava da naučimo visokokvalitetne geometrijske i teksturne detalje. G E T 3D eksplicitnu 60 47 37 Demonstriramo najsavremenije performanse za neuslovno generisanje 3D oblika na više kategorija sa složenom geometrijom iz ShapeNet [ ], Turbosquid [ ] i Renderpeople [ ], kao što su stolice, motocikli, automobili, ljudski likovi i zgrade. Sa eksplicitnom mrežom kao izlaznom reprezentacijom, GET3D je takođe veoma fleksibilan i može se lako prilagoditi drugim zadacima, uključujući: učenje generisanja dekomponovanih efekata materijala i osvetljenja zavisnih od pogleda koristeći napredno diferencijabilno renderovanje [ ], bez supervizije, generisanje 3D oblika vođeno tekstom koristeći CLIP [ ] embedding. 9 4 2 (a) 12 (b) 56 2 Povezani radovi Pregledamo nedavne napretke u 3D generativnim modelima za geometrije i izgled, kao i 3D-svesnu generativnu sintezu slika. Poslednjih godina, 2D generativni modeli su postigli fotorealističan kvalitet u sintezi slika visoke rezolucije [ , , , , , , ]. Ovaj napredak je takođe inspirisao istraživanja u generisanju 3D sadržaja. Rani pristupi su imali za cilj direktno proširenje 2D CNN generatora na 3D vokselne mreže [ , , , , ], ali veliki memorijski otisak i računarska složenost 3D konvolucija ometaju proces generisanja u visokoj rezoluciji. Kao alternativa, drugi radovi su istraživali oblake tačaka [ , , , ], implicitne [ , ], ili oktree [ ] reprezentacije. Međutim, ovi radovi se uglavnom fokusiraju na generisanje geometrije i zanemaruju izgled. Njihove izlazne reprezentacije takođe treba post-procesirati da bi postale kompatibilne sa standardnim grafičkim enginima. 3D Generativni modeli 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Više slični našem radu, Textured3DGAN [ , ] i DIBR [ ] generišu teksturisane 3D mreže, ali formulišu generisanje kao deformaciju šablona mreže, što ih sprečava da generišu složenu topologiju ili oblike sa promenljivim rodom, što naša metoda može. PolyGen [ ] i SurfGen [ ] mogu proizvesti mreže sa proizvoljnom topologijom, ali ne sintetizuju teksture. 54 53 11 48 41 Inspirisani uspehom neuralnog renderovanja volumena [ ] i implicitnih reprezentacija [ , ], nedavni radovi su počeli da rešavaju problem 3D-svesne sinteze slika [ , , , , , , , , , ]. Međutim, neuralne mreže za renderovanje volumena su obično spore za upit, što dovodi do dugog vremena treniranja [ , ], i generišu slike ograničene rezolucije. GIRAFFE [ ] i StyleNerf [ ] poboljšavaju efikasnost treniranja i renderovanja tako što vrše neuralno renderovanje u nižoj rezoluciji, a zatim povećavaju rezultate sa 2D CNN-om. Međutim, dobitak u performansama dolazi po cenu smanjene konzistentnosti sa više pogleda. Korišćenjem dvostrukog diskriminatora, EG3D [ ] može delimično ublažiti ovaj problem. Ipak, ekstrakcija teksturisane površine iz metoda zasnovanih na neuralnom renderovanju je netrivijalan poduhvat. Nasuprot tome, GET3D direktno izlazuje teksturisane 3D mreže koje se lako mogu koristiti u standardnim grafičkim enginima. 3D-Svesna Generativna Sinteza Slika 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metodologija Sada predstavljamo naš GET3D framework za sintezu 3D oblika. Naš proces generisanja je podeljen u dva dela: grana geometrije, koja diferencijabilno izlazuje mrezu površine proizvoljne topologije, i grana teksture koja proizvodi teksturno polje koje se može upitati na tačkama površine za dobijanje boja. Potonje se može proširiti na druga svojstva površine kao što su, na primer, materijali (Sec. ). Tokom treniranja, koristi se efikasan diferencijabilni rasterizer za renderovanje rezultirajuće teksturisane mreže u 2D slike visoke rezolucije. Ceo proces je diferencijabilan, što omogućava adversarijalno treniranje na slikama (sa maskama koje ukazuju na objekat od interesa) propagacijom gradijenata iz 2D diskriminatora u obe generativne grane. Naš model je ilustrovan na slici . U nastavku, prvo predstavljamo naš 3D generator u odeljku , pre nego što pređemo na diferencijabilno renderovanje i funkcije gubitka u odeljku . 4.3.1 2 3.1 3.2 3.1 Generativni model 3D teksturisanih mreža Cilj nam je da naučimo 3D generator = ( ) da mapira uzorak iz Gausove distribucije M, E G z ∈ N (0*,* ) u mrežu sa teksturom . z I M E Pošto ista geometrija može imati različite teksture, a ista tekstura se može primeniti na različite geometrije, uzorkujemo dva slučajna ulazna vektora 1 ∈ R512 i 2 ∈ R512. Sledi StyleGAN [ , , ], koristimo nelinearne mapirajuće mreže geo i tex da mapiramo 1 i 2 u intermedijerne latentne vektore 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za proizvodnju koji kontrolišu generisanje 3D oblika i teksture, respektivno. Formalno predstavljamo generator geometrije u odeljku , a generator teksture u odeljku . z z 34 35 33 f f z z w f z w f z stilova 3.1.1 3.1.2 3.1.1 Generator geometrije Dizajniramo naš generator geometrije da uključi DMTet [ ], nedavno predloženu diferencijabilnu reprezentaciju površine. DMTet predstavlja geometriju kao polje označenih rastojanja (SDF) definisano na deformabilnoj tetraedarskoj mreži [ , ], iz koje se površina može diferencijabilno oporaviti kroz pomeranje tetraedara [ ]. Deformisanje mreže pomeranjem njenih temena rezultira boljim korišćenjem njene rezolucije. Usvajanjem DMTet-a za ekstrakciju površine, možemo proizvesti eksplicitne mreže sa proizvoljnom topologijom i rodom. Sledeće nudimo kratak sažetak DMTet-a i upućujemo čitaoca na originalni članak za više detalja. 60 22 24 17 Neka ( ) označavaju pun 3D prostor u kojem se objekat nalazi, gde su temena u tetraedarskoj mreži . Svaki tetraedar ∈ je definisan pomoću četiri temena { }, sa ∈ {1*, . . . , K*}, gde je ukupan broj tetraedara, i ∈ ∈ R3. Pored svojih 3D koordinata, svako teme sadrži SDF vrednost ∈ R i deformaciju ∆ ∈ R3 temena od njegovog početnog kanonskog koordinata. Ova reprezentacija omogućava oporavak eksplicitne mreže kroz diferencijabilno pomeranje tetraedara [ ], gde se SDF vrednosti u kontinuiranom prostoru izračunavaju baričentričnom interpolacijom njihovih vrednosti na deformisanim temenima ′ = + ∆ . 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 Mapiramo 1 ∈ R512 na SDF vrednosti i deformacije na svakom temenu kroz niz konvolucionih i potpuno povezanih slojeva 3D. Konkretno, prvo koristimo 3D konvolucione slojeve za generisanje volumena funkcija uslovljenog na 1. Zatim upitujemo funkcije na svakom temenu ∈ koristeći trilinearnu interpolaciju i hranimo ih u MLPs koji izlazuju SDF vrednost i deformaciju ∆ . U slučajevima gde je potrebno modelovanje u visokoj rezoluciji (npr. motocikl sa tankim strukturama na točkovima), dodatno koristimo podelu volumena prema [ ]. Arhitektura mreže w v i w v i VT si v i 60 Nakon dobijanja i ∆ za sva temena, koristimo diferencijabilni algoritam pomeranja tetraedara za ekstrakciju eksplicitne mreže. Pomeranje tetraedara određuje topologiju površine unutar svakog tetraedra na osnovu znakova . Konkretno, lice mreže se izdvaja kada sign( ) /= sign( ), gde označavaju indekse temena na ivici tetraedra, a temena tog lica su određena linearnom interpolacijom kao mi,j = v 0 i sj−v 0 j si sj−si . Napominjemo da se gornja jednačina procenjuje samo kada si 6= sj , stoga je diferencijabilna, a gradijent iz mi,j može biti vraćen nazad u SDF vrednosti si i deformacije ∆vi . Sa ovom reprezentacijom, oblici sa proizvoljnom topologijom se lako mogu generisati predviđanjem različitih znakova si . Diferencijabilna ekstrakcija mreže si v i si si sj i, j m i,j 3.1.2 Generator teksture Direktno generisanje mape teksture konzistentne sa izlaznom mrežom nije trivijalno, jer generisani oblik može imati proizvoljan rod i topologiju. Stoga parametrizujemo teksturu kao teksturno polje [ ]. 50 Konkretno, modelujemo teksturno polje funkcijom koja mapira 3D lokaciju tačke površine ∈ R3, uslovljenu sa 2, na RGB boju ∈ R3 na toj lokaciji. Pošto teksturno polje zavisi od geometrije, dodatno uslovljavamo ovu mapu na geometrijski latentni kod 1, tako da = ( *,* 1 ⊕ 2), gde ⊕ označava konkatenaciju. ft p w c w c ft p w w Predstavljamo naše teksturno polje korišćenjem tri-ravni reprezentacije, koja je efikasna i izražajna u rekonstrukciji 3D objekata [ ] i generisanju 3D-svesnih slika [ ]. Konkretno, pratimo [ , ] i koristimo konvolucionu neuralnu mrežu uslovljenu na 2D da mapiramo latentni kod 1 ⊕ 2 na tri ortogonalne ravni funkcija poravnate po osama veličine × × ( × 3), gde = 256 označava prostornu rezoluciju i = 32 broj kanala. Arhitektura mreže 55 8 8 35 w w N N C N C Dati ravni funkcija, vektora funkcija f t ∈ R 32 tačke površine p se može dobiti kao f t = P e ρ(πe(p)), gde πe(p) je projekcija tačke p na ravan funkcija e i ρ(·) označava bilinearnu interpolaciju funkcija. Dodatni potpuno povezan sloj se zatim koristi za mapiranje agregiranog vektora funkcija f t na RGB boju c. Napominjemo da, za razliku od drugih radova na 3D-svesnoj sintezi slika [8, 25, 7, 57] koji takođe koriste reprezentaciju neuralnog polja, mi samo treba da upitujemo teksturno polje na lokacijama tačaka površine (nasuprot gustim upitima duž zraka). Ovo značajno smanjuje računsku složenost za renderovanje slika visoke rezolucije i garantuje generisanje slika konzistentnih sa više pogleda po konstrukciji. 3.2 Diferencijabilno renderovanje i treniranje Da bismo nadzirali naš model tokom treniranja, crpimo inspiraciju iz Nvdiffrec [ ] koji vrši rekonstrukciju 3D objekta u više pogleda koristeći diferencijabilni renderer. Konkretno, renderujemo izdvojenu 3D mrežu i teksturno polje u 2D slike koristeći diferencijabilni renderer [ ], i nadziremo našu mrežu sa 2D diskriminatorom, koji pokušava da razlikuje sliku od realnog objekta ili renderovanu od generisanog objekta. 47 37 Pretpostavljamo da je distribucija kamera C koja je korišćena za sticanje slika u skupu podataka poznata. Da bismo renderovali generisane oblike, nasumično uzorkujemo kameru iz C, i koristimo visoko optimizovan diferencijabilni rasterizer Nvdiffrast [ ] za renderovanje 3D mreže u 2D siluetu, kao i slike gde svaki piksel sadrži koordinate odgovarajuće 3D tačke na površini mreže. Ove koordinate se dalje koriste za upit teksturnog polja da bi se dobile RGB vrednosti. Pošto radimo direktno na izdvojenoj mreži, možemo renderovati slike visoke rezolucije sa visokom efikasnošću, omogućavajući našem modelu da se trenira sa rezolucijom slike do 1024×1024. Diferencijabilno Renderovanje c 37 Treniramo naš model koristeći adversarijalni cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti nesaturirajući GAN cilj sa R1 regularizacijom [ ]. Empirijski smo utvrdili da korišćenje dva odvojena diskriminatora, jedan za RGB slike i drugi za siluete, daje bolje rezultate nego jedan diskriminator koji radi na oba. Neka označava diskriminator, gde može biti ili RGB slika ili silueta. Adversarijalni cilj se tada definiše na sledeći način: Diskriminator & Cilj 34 42 Dx x gde je ( ) definisano kao ( ) = − log(1 +exp(− )), je distribucija realnih slika, označava renderovanje, i je hiperparametar. Pošto je diferencijabilan, gradijenti se mogu propagirati unazad od 2D slika do naših 3D generatora. g u g u u px R λ R Da bismo uklonili unutrašnje plutajuće lica koja nisu vidljiva ni u jednom od pogleda, dodatno regularizujemo generator geometrije gubitkom unakrsne entropije definisanim između SDF vrednosti susednih temena [ ]: Regularizacija 47 gde je gubitak binarne unakrsne entropije i označava sigmoidnu funkciju. Suma u Eq. je definisana nad skupom jedinstvenih ivica S u tetraedarskoj mreži, za koje sign( ) /= sign( ). H σ 2 e si sj Ukupan gubitak se tada definiše kao: gde je hiperparametar koji kontroliše nivo regularizacije. µ