< 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) Sažetak Kako se nekoliko industrija kreće ka modeliranju masivnih 3D virtuelnih svjetova, potreba za alatima za kreiranje sadržaja koji mogu skalirati u smislu količine, kvaliteta i raznolikosti 3D sadržaja postaje očigledna. U našem radu, cilj nam je trenirati performantne 3D generativne modele koji sintetiziraju teksturirane mreže koje mogu direktno konzumirati 3D renderinški motori, čime su odmah upotrebljive u nizvodnim aplikacijama. Prethodni radovi na 3D generativnom modeliranju ili im nedostaju geometrijski detalji, ograničeni su na topologiju mreže koju mogu proizvesti, obično ne podržavaju teksture, ili koriste neuronske renderere u procesu sinteze, što njihovu upotrebu u uobičajenom 3D softveru čini netrivialnom. U ovom radu, predstavljamo GET3D, enerativni model koji direktno generira ksplicitne eksturirane mreže sa složenom topologijom, bogatim geometrijskim detaljima i teksturama visoke vjernosti. Premošćujemo nedavna dostignuća u diferencijabilnom modeliranju površina, diferencijabilnom renderiranju, kao i 2D generativnim suparničkim mrežama (GANs) za treniranje našeg modela iz kolekcija 2D slika. GET3D je sposoban generirati visokokvalitetne 3D teksturirane 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 Raznoliki, visokokvalitetni 3D sadržaj postaje sve važniji za nekoliko industrija, uključujući igranje igara, robotiku, arhitekturu i društvene platforme. Međutim, ručno kreiranje 3D sredstava je vrlo dugotrajno i zahtijeva specifično tehničko znanje, kao i vještine modeliranja umjetnika. Jedan od glavnih izazova je dakle skala – dok se 3D modeli mogu pronaći na 3D tržištima kao što su Turbosquid [ ] ili Sketchfab [ ], kreiranje mnogo 3D modela za, recimo, popunjavanje igre ili filma sa mnoštvom likova koji svi izgledaju drugačije i dalje zahtijeva značajnu količinu vremena umjetnika. 4 3 Kako bi se olakšao proces kreiranja sadržaja i učinio ga dostupnim raznolikim (početničkim) korisnicima, generativne 3D mreže koje mogu proizvesti visokokvalitetna i raznolika 3D sredstva nedavno su postale aktivno područje istraživanja [ , , , , , , , , , , ]. Međutim, da bi bili praktično korisni za trenutne aplikacije u stvarnom svijetu, 3D generativni modeli bi idealno trebali ispunjavati sljedeće zahtjeve: Trebali bi imati kapacitet generiranja oblika sa detaljnom geometrijom i proizvoljnom topologijom, Izlaz bi trebala biti teksturirana mreža, što je primarna reprezentacija koja se koristi standardnim softverskim paketima za grafiku kao što su Blender [ ] i Maya [ ], i Trebali bismo moći koristiti 2D slike za nadzor, 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 radovi na 3D generativnom modeliranju fokusirali su se na podskupove gore navedenih zahtjeva, ali nijedna metoda do danas ne ispunjava sve njih (Tab. ). Na primjer, metode koje generiraju 3D oblake tačaka [ , 68, 75] obično ne proizvode teksture i moraju se pretvoriti u mrežu u post-procesiranju. 1 5 Metode koje generiraju voksele često nemaju geometrijske detalje i ne proizvode teksturu [ , , , ]. Generativni modeli zasnovani na neuronskim poljima [ , ] fokusiraju se na ekstrakciju geometrije, ali zanemaruju teksturu. Većina njih također zahtijeva eksplicitni 3D nadzor. Konačno, metode koje direktno izbacuju teksturirane 3D mreže [ , ] obično zahtijevaju unaprijed definisane predloške oblika i ne mogu generirati oblike sa složenom topologijom i varijabilnim rodom. 66 20 27 40 43 14 54 53 Nedavno, brzi napredak u neuronskom renderiranju volumena [ ] i 2D generativnim suparničkim mrežama (GANs) [ , , , , ] doveo je do porasta 3D-svjesne sinteze slika [ , , , , , ]. Međutim, ovaj niz radova ima za cilj sintetiziranje slika konzistentnih sa više pogleda koristeći neuronsko renderiranje u procesu sinteze i ne garantuje da se mogu generirati smisleni 3D oblici. Iako se mreža potencijalno može dobiti iz osnovne neuronske representations polja pomoću algoritma marširajućih kocki [ ], ekstrakcija odgovarajuće teksture je netrivialan zadatak. 45 34 35 33 29 52 7 57 8 49 51 25 39 U ovom radu, predstavljamo novi pristup koji ima za cilj rješavanje svih zahtjeva praktično korisnog 3D generativnog modela. Konkretno, predlažemo GET3D, enerativni model za 3D oblike koji direktno izbacuje ksplicitne eksturirane 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 eksplicitne površine [ ] i tehniku diferencijabilnog renderiranja [ , ]. Prvi nam omogućava da direktno optimiziramo i izbacimo teksturirane 3D mreže sa proizvoljnom topologijom, dok nam drugi omogućava da treniramo naš model sa 2D slikama, čime iskorištavamo snažne i zrele diskriminatore razvijene za sintezu 2D slika. Budući da naš model direktno generira mreže i koristi visoko efikasni (diferencijabilni) grafički renderer, možemo lako skalirati naš model za treniranje sa rezolucijom slike do 1024 × 1024, što nam omogućava da naučimo visokokvalitetne geometrijske i teksturne detalje. G E T 3D 60 47 37 Demonstriramo performanse najsavremenijeg nivoa za neuvjetovano generiranje 3D oblika u više kategorija sa složenom geometrijom iz ShapeNet [ ], Turbosquid [ ] i Renderpeople [ ], kao što su automobili, stolice, životinje, motocikli i ljudski likovi, do zgrada, postižući značajna poboljšanja u odnosu na prethodne metode. Sa eksplicitnom mrežom kao izlaznom reprezentacijom, GET3D je također vrlo fleksibilan i lako se može prilagoditi drugim zadacima, uključujući: učenje generiranja dekomponovanog materijala i svjetlosnih efekata zavisnih od pogleda koristeći napredno diferencijabilno renderiranje [ ], bez nadzora, generiranje 3D oblika vođeno tekstom koristeći CLIP [ ] embedding. 9 4 2 (a) 12 (b) 56 2 Povezani radovi Pregledavamo nedavna dostignuća u 3D generativnim modelima za geometiju i izgled, kao i 3D-svjesnu generativnu sintezu slika. Posljednjih godina, 2D generativni modeli su postigli fotorealni kvalitet u sintezi slika visoke rezolucije [ , , , , , , ]. Ovaj napredak je također inspirisao istraživanja u generiranju 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 generiranja pri visokoj rezoluciji. Kao alternativa, drugi radovi su istraživali reprezentacije oblaka tačaka [ , , , ], implicitne [ , ], ili oktree [ ]. Međutim, ovi radovi se uglavnom fokusiraju na generiranje geometrije i zanemaruju izgled. Njihove izlazne reprezentacije također treba post-procesirati kako bi postale kompatibilne sa standardnim grafičkim motorima. 3D Generativni Modeli 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Teksturirane3DMreže [ , ] i DIBR [ ] generiraju teksturirane 3D mreže, ali formuliraju generiranje kao deformaciju predloška mreže, što ih sprječava u generiranju složene topologije ili oblika sa varijabilnim rodom, što naša metoda može učiniti. PolyGen [ ] i SurfGen [ ] mogu proizvesti mreže sa proizvoljnom topologijom, ali ne sintetiziraju teksture. 54 53 11 48 41 Inspirirani uspjehom neuronskog renderiranja volumena [ ] i implicitnih reprezentacija [ , ], nedavni radovi počeli su rješavati problem 3D-svjesne sinteze slika [ , , , , , , , , , ]. Međutim, neuronske mreže za renderiranje volumena su obično spore za upit, što dovodi do dugih vremena treniranja [ , ] i generiraju slike ograničene rezolucije. GIRAFFE [ ] i StyleNerf [ ] poboljšavaju efikasnost treniranja i renderiranja izvodeći neuronsko renderiranje pri nižoj rezoluciji, a zatim povećavajući rezultate pomoću 2D CNN-a. Međutim, dobitak u performansama dolazi po cijenu smanjene konzistentnosti više pogleda. Korištenjem dvostrukog diskriminatora, EG3D [ ] može djelomično ublažiti ovaj problem. Ipak, ekstrakcija teksturirane površine iz metoda zasnovanih na neuronskom renderiranju je netrivijalan zadatak. Nasuprot tome, GET3D direktno izbacuje teksturirane 3D mreže koje se mogu lako koristiti u standardnim grafičkim motorima. 3D-svjesna Generativna Sinteza Slika 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metoda Sada predstavljamo naš GET3D framework za sintezu teksturiranih 3D oblika. Naš proces generiranja je podijeljen u dva dijela: geometrijska grana, koja diferencijabilno izbacuje površinsku mrežu proizvoljne topologije, i teksturna grana koja proizvodi teksturni polje koje se može upitivati na tačkama površine radi dobivanja boja. Potonje se može proširiti na druga svojstva površine kao što su, na primjer, materijali (Sec. ). Tokom treniranja, koristi se efikasan diferencijabilni rasterizator za renderiranje rezultirajuće teksturirane mreže u 2D slike visoke rezolucije. Cijeli proces je diferencijabilan, omogućavajući suparničko treniranje iz slika (sa maskama koje ukazuju na objekat od interesa) propagiranjem gradijenata iz 2D diskriminatora na obje generatorne grane. Naš model je ilustrovan na slici . U nastavku, prvo predstavljamo naš 3D generator u Sec , prije nego što pređemo na diferencijabilno renderiranje i funkcije gubitka u Sec . 4.3.1 2 3.1 3.2 3.1 Generativni Model 3D Teksturiranih Mreža Cilj nam je naučiti 3D generator = ( ) koji preslikava uzorak iz Gaussove distribucije M, E G z ∈ N (0*,* ) u mrežu sa teksturom . z I M E Budući da ista geometrija može imati različite teksture, a ista tekstura se može primijeniti na različite geometrije, uzorkujemo dva slučajna ulazna vektora 1 ∈ R512 i 2 ∈ R512. Slijedeći StyleGAN [ , , ], zatim koristimo nelinearne mapirajuće mreže geo i tex da preslikamo 1 i 2 u međupotencijalne vektore 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za proizvodnju koji kontroliraju generiranje 3D oblika i teksture, redom. Formalno predstavljamo generator geometrije u Sec. , a teksturni generator u Sec. . 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 Geometrijski Generator Dizajnirali smo naš geometrijski generator da uključi DMTet [ ], nedavno predloženu diferencijabilnu representations površine. DMTet predstavlja geometrije kao polje predznaka udaljenosti (SDF) definisano na deformabilnoj tetraedarskoj mreži [ , ], iz koje se površina može diferencijabilno oporaviti putem marširajućih tetraedara [ ]. Deformisanje mreže pomicanjem njenih vrhova rezultira boljim korištenjem njene rezolucije. Usvajanjem DMTet-a za ekstrakciju površine, možemo proizvesti eksplicitne mreže sa proizvoljnom topologijom i rodom. Zatim pružamo kratak sažetak DMTet-a i upućujemo čitaoca na originalni rad za više detalja. 60 22 24 17 Neka ( ) označava puni 3D prostor u kojem se objekat nalazi, gdje predstavljaju vrhove u tetraedarskoj mreži . Svaki tetraedar ∈ je definisan pomoću četiri vrha { }, sa ∈ {1*, . . . , K*}, gdje je ukupan broj tetraedara, i ∈ ∈ R3. Pored svojih 3D koordinata, svaki vrh sadrži SDF vrijednost ∈ R i deformaciju ∆ ∈ R3 vrha od njegove početne kanoničke koordinate. Ova reprezentacija omogućava oporavak eksplicitne mreže putem diferencijirajućeg marširanja tetraedara [ ], gdje se SDF vrijednosti u kontinuiranom prostoru računaju baričnim interpolacijom njihove vrijednosti na deformisanim vrhovima ′ = + ∆ . 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 Preslikavamo 1 ∈ R512 na SDF vrijednosti i deformacije na svakom vrhu kroz niz kondicioniranih 3D konvolucionih i potpuno povezanih slojeva. Konkretno, prvo koristimo 3D konvolucione slojeve za generiranje volumena značajki kondicioniranog na 1. Zatim upitujemo značajke na svakom vrhu ∈ koristeći trilinearnu interpolaciju i unosimo ih u MLP-ove koji izbacuju SDF vrijednost i deformaciju ∆ . U slučajevima kada je potrebno modeliranje pri visokoj rezoluciji (npr. motocikl sa tankim strukturama na točkovima), dodatno koristimo podjelu volumena prema [ ]. Arhitektura Mreže w v i w v i VT si v i 60 Nakon dobijanja i ∆ za sve vrhove, koristimo diferencijabilni algoritam marširajućih tetraedara za ekstrakciju eksplicitne mreže. Marširanje tetraedara određuje topologiju površine unutar svakog tetraedra na osnovu predznaka . Konkretno, površina mreže se ekstrahira kada sign( ) /= sign( ), gdje označavaju indekse vrhova u ivici tetraedra, a vrhovi te površine su određeni linearnom interpolacijom kao mi,j = v 0 i sj−v 0 j si sj−si . Napominjemo da se gornja jednačina evaluira samo kada si 6= sj , čime je diferencijabilna, a gradijent iz mi,j se može propagirati unazad u SDF vrijednosti si i deformacije ∆vi . Sa ovom reprezentacijom, oblici sa proizvoljnom topologijom se lako generiraju predviđanjem različitih predznaka si . Diferencijabilna Ekstrakcija Mreže si v i si si sj i, j m i,j 3.1.2 Teksturni Generator Direktno generiranje teksturne mape konzistentne sa izlaznom mrežom nije trivijalno, jer generisani oblik može imati proizvoljan rod i topologiju. Stoga parametriziramo teksturu kao teksturno polje [ ]. 50 Konkretno, modeliramo teksturno polje funkcijom koja preslikava 3D lokaciju površinske tačke ∈ R3, kondicioniranu na 2, u RGB boju ∈ R3 na toj lokaciji. Budući da teksturno polje zavisi od geometrije, dodatno kondicioniramo ovo preslikavanje na potencijalni kod geometrije 1, tako da = ( *,* 1 ⊕ 2), gdje ⊕ označava konkatenaciju. ft p w c w c ft p w w Predstavljamo naše teksturno polje pomoću tri-ravne reprezentacije, koja je efikasna i izražajna u rekonstrukciji 3D objekata [ ] i generiranju 3D-svjesnih slika [ ]. Konkretno, slijedimo [ , ] i koristimo kondicioniranu 2D konvolucionu neuronsku mrežu za preslikavanje potencijalnog koda 1 ⊕ 2 na tri ortogonalne ravnine značajki poravnate sa osama rezolucije N × N × (C × 3), gdje N = 256 označava prostornu rezoluciju i C = 32 broj kanala. Arhitektura Mreže 55 8 8 35 w w Dato polje značajki, vektor značajki f t ∈ R 32 tačke površine p se dobija kao f t = P e ρ(πe(p)), gdje πe(p) predstavlja projekciju tačke p na polje značajki e i ρ(·) označava bilinearnu interpolaciju značajki. Dodatni potpuno povezan sloj se zatim koristi za preslikavanje agregiranog vektora značajki f t u RGB boju c. Napominjemo da, za razliku od drugih radova na 3D-svjesnoj sintezi slika koji također koriste representations neuronskog polja, mi samo trebamo uzorkovati teksturno polje na lokacijama površinskih tačaka (za razliku od gustih uzoraka duž zrake). Ovo uveliko smanjuje računsku složenost za renderiranje slika visoke rezolucije i garantuje generiranje slika konzistentnih sa više pogleda po konstrukciji. 3.2 Diferencijabilno Renderiranje i Treniranje Kako bismo nadzirali naš model tokom treniranja, crpimo inspiraciju iz Nvdiffrec [ ] koji vrši rekonstrukciju 3D objekata u više pogleda koristeći diferencijabilni renderer. Konkretno, renderiramo ekstrahiranu 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 razlikovati sliku od stvarne ili renderirane od generirane slike. 47 37 Pretpostavljamo da je distribucija kamera C koja je korištena za stjecanje slika u skupu podataka poznata. Za renderiranje generiranih oblika, nasumično uzorkujemo kameru iz C, i koristimo visoko optimizirani diferencijabilni rasterizator Nvdiffrast [ ] za renderiranje 3D mreže u 2D siluetu, kao i sliku gdje svaki piksel sadrži koordinate odgovarajuće 3D tačke na površini mreže. Ove koordinate se dalje koriste za upit teksturnog polja radi dobivanja RGB vrijednosti. Budući da operiramo direktno na ekstrahiranoj mreži, možemo renderirati slike visoke rezolucije sa visokom efikasnošću, omogućavajući našem modelu da se trenira sa rezolucijom slike do 1024×1024. Diferencijabilno Renderiranje c 37 Treniramo naš model koristeći suparnički cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti nesaturirajući GAN cilj sa R1 regularizacijom [ ]. Empirijski smo utvrdili da korištenje dva odvojena diskriminatora, jednog za RGB slike i drugog za siluete, daje bolje rezultate nego jedan diskriminator koji radi na oba. Neka označava diskriminator, gdje može biti RGB slika ili silueta. Tada se suparnički cilj definira kako slijedi: Diskriminator & Cilj 34 42 Dx x gdje je ( ) definisano kao ( ) = − log(1 +exp(− )), je distribucija stvarnih slika, označava renderiranje, i je hiperparametar. Budući da 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 interne plutajuće površine koje nisu vidljive ni u jednom od pogleda, dodatno regulariziramo geometrijski generator gubitkom unakrsne entropije definisanim između SDF vrijednosti susjednih vrhova [ ]: Regularizacija 47 gdje 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 Ukupna funkcija gubitka se tada definira kao: gdje je hiperparametar koji kontrolira nivo regularizacije. µ