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 nekoliko industrija prelazi na modeliranje masivnih 3D virtuelnih svetova, potreba za alatima za kreiranje sadržaja koji mogu da skaliraju u pogledu količine, kvaliteta i raznolikosti 3D sadržaja postaje očigledna. U našem radu, cilj nam je da obučimo performantne 3D generativne modele koji sintetizuju teksturirane mreže koje mogu direktno da se konzumiraju od strane 3D rendering motora, čime su odmah upotrebljive u nizvodnim aplikacijama. Prethodni radovi na 3D generativnom modeliranju ili im nedostaju geometrijski detalji, ograničeni su topologijom 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 netrivialnom. U ovom radu, predstavljamo GET3D, enerativni model koji direktno generiše ksplicitne eksturisane mreže sa složenom topologijom, bogatim geometrijskim detaljima i visokom vernosti tekstura. Povezujemo nedavne uspehe u diferencijalnom modeliranju površina, diferencijalnom renderovanju, kao i 2D generativnim adverdijalnim mrežama da bismo obučili naš model iz kolekcija 2D slika. GET3D je u stanju 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 Raznoliki, visokokvalitetni 3D sadržaj postaje sve važniji za nekoliko industrija, uključujući igre, robotiku, arhitekturu i društvene platforme. Međutim, manuelno kreiranje 3D imovine je veoma dugotrajno i zahteva specifično tehničko znanje kao i veštine modeliranja umetnosti. Jedan od glavnih izazova je dakle skaliranje – dok 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 sa gomilom likova koji svi izgledaju drugačije i dalje zahteva značajno vreme umetnika. 4 3 Da bi se olakšao proces kreiranja sadržaja i učinio ga dostupnim za različite (početnike) korisnike, generativne 3D mreže koje mogu da proizvode visokokvalitetne i raznovrsne 3D imovine su nedavno postale aktivna oblast istraživanja [ , , , , , , , , , , ]. Međutim, da bi bili praktično korisni za trenutne realne primene, 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 teksturirana 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 budemo u stanju da koristimo 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 se fokusirao na podskupove gore navedenih zahteva, ali nijedna metoda do danas ne ispunjava sve od njih (Tabela ). Na primer, metode koje generišu 3D oblake tačaka [ , 68, 75] obično ne proizvode teksture i moraju se konvertovati u mrežu u post-procesiranju. 1 5 Metode koje generišu voksele često imaju nedostatak geometrijskih detalja 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 izbacuju teksturisane 3D mreže [ , ] obično zahtevaju unapred definisane predloške oblika i ne mogu da generišu oblike sa složenom topologijom i promenljivim rodom. 66 20 27 40 43 14 54 53 Nedavno, brzi napredak u neuralnom renderovanju zapremine [ ] i 2D generativnim adverdijalnim mrežama (GANs) [ , , , , ] je doveo do porasta 3D-svestane sinteze slika [ , , , , , ]. Međutim, ovaj pravac rada ima za cilj sintezu multi-prikaznih doslednih slika korišćenjem neuralnog renderovanja u procesu sinteze i ne garantuje da se mogu generisati smisleni 3D oblici. Iako se mreža potencijalno može dobiti iz osnovne neuralne reprezentacije polja korišćenjem algoritma marširajućih kocki [ ], ekstrakcija odgovarajuće teksture je netrivialan poduhvat. 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, predstavljamo GET3D, enerativni model za 3D oblike koji direktno izbacuje ksplicitne eksturisane mreže sa visokim geometrijskim detaljima i detaljima teksture, i proizvoljnom topologijom mreže. U srcu našeg pristupa je generativni proces koji koristi diferencijalnu metodu ekstrakcije površine [ ] i diferencijalnu tehniku renderovanja [ , ]. Prvo nam omogućava da direktno optimizujemo i izbacujemo teksturisane 3D mreže sa proizvoljnom topologijom, dok nam drugo omogućava da obučimo naš model pomoću 2D slika, čime koristimo moćne i zrele diskriminatore razvijene za 2D sintezu slika. Pošto naš model direktno generiše mreže i koristi visoko efikasan (diferencijalan) grafički renderer, lako možemo da skaliramo naš model za obuku sa rezolucijom slike do 1024 × 1024, što nam omogućava da naučimo visokokvalitetne geometrijske detalje i detalje teksture. G E T 3D eksplicitne 60 47 37 Demonstriramo najsavremenije performanse za neuslovno generisanje 3D oblika u više kategorija sa složenom geometrijom iz ShapeNet [ ], Turbosquid [ ] i Renderpeople [ ], kao što su stolice, motocikli, automobili, ljudski likovi i zgrade, postižući značajna poboljšanja u odnosu na prethodne metode. Sa eksplicitnom mrežom kao izlaznom reprezentacijom, GET3D je takođe veoma fleksibilan i lako se može prilagoditi drugim zadacima, uključujući: učenje generisanja dekomponovanog materijala i svetlosnih efekata zavisnih od pogleda korišćenjem naprednog diferencijalnog renderovanja [ ], bez supervizije, generisanje 3D oblika vođeno tekstom korišćenjem CLIP [ ] embeddinga. 9 4 2 (a) 12 (b) 56 2 Srodni radovi Pregledamo nedavna unapređenja u 3D generativnim modelima za geometiju i izgled, kao i 3D-svestanu 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 otisak memorije i računarska složenost 3D konvolucija ometaju proces generisanja pri visokim rezolucijama. 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 moraju biti post-procesirane da 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 Teksturizovane 3D mreže, sličnije našem radu, Textured3DGAN [ , ] i DIBR [ ] generišu, ali formulišu generisanje kao deformaciju predloška 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 da generišu mreže sa proizvoljnom topologijom, ali ne sintetišu teksture. 54 53 11 48 41 Inspirisani uspehom neuralnog renderovanja zapremine [ ] i implicitnih reprezentacija [ , ], nedavni radovi su počeli da se bave problemom 3D-svestane sinteze slika [ , , , , , , , , , ]. Međutim, neuralne mreže za renderovanje zapremine su tipično spore za upit, što dovodi do dugog vremena obuke [ , ], i generišu slike ograničene rezolucije. GIRAFFE [ ] i StyleNerf [ ] poboljšavaju efikasnost obuke i renderovanja tako što vrše neuralno renderovanje na nižoj rezoluciji, a zatim povećavaju rezultate sa 2D CNN-om. Međutim, dobitak u performansama dolazi po cenu smanjene multi-prikazne konzistentnosti. Korišćenjem dvostrukog diskriminatora, EG3D [ ] može delimično da ublaži ovaj problem. Ipak, ekstrakcija teksturirane površine iz metoda zasnovanih na neuralnom renderovanju je netrivialan poduhvat. Nasuprot tome, GET3D direktno izbacuje teksturisane 3D mreže koje se mogu lako koristiti u standardnim grafičkim motorima. 3D-svestana 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 okvir za sintetizovanje teksturiranih 3D oblika. Naš proces generisanja je podeljen u dva dela: grana geometrije, koja diferencijalno izbacuje mrežu površine proizvoljne topologije, i grana teksture koja proizvodi teksturno polje koje se može upitati na tačkama površine radi dobijanja boja. Potonje se može proširiti na druga svojstva površine kao što su, na primer, materijali (Sec. ). Tokom obuke, koristi se efikasan diferencijalni rasterizer za renderovanje rezultujuće teksturisane mreže u 2D slike visoke rezolucije. Ceo proces je diferencijalan, omogućavajući adverdijalnu obuku iz slika (sa maskama koje ukazuju na objekat od interesa) propagiranjem gradijenata od 2D diskriminatora do obe generatorne grane. Naš model je ilustrovan na slici . U nastavku, prvo predstavljamo naš 3D generator u Sec , pre nego što pređemo na diferencijalno renderovanje i funkcije gubitka u Sec . 4.3.1 2 3.1 3.2 3.1 Generativni model 3D teksturiranih 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 geometija može imati različite teksture, i ista tekstura se može primeniti na različite geometrije, uzorkujemo dva slučajna ulazna vektora 1 ∈ R512 i 2 ∈ R512. Sledimo StyleGAN [ , , ], a zatim koristimo nelinearne mapirajuće mreže geo i tex da mapiramo 1 i 2 u međurezultate latentnih vektora 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za proizvodnju koji kontrolišu generisanje 3D oblika i teksture, odnosno. Formalno predstavljamo generator za geometiju u Sec. i generator teksture 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 Generator geometrije Dizajniramo naš generator geometrije da uključi DMTet [ ], nedavno predloženu diferencijalnu reprezentaciju površine. DMTet predstavlja geometiju kao polje sa predznakom udaljenosti (SDF) definisano na deformabilnoj tetraedralnoj mreži [ , ], iz koje se površina može diferencijalno povratiti putem marširajućih tetraedara [ ]. Deformacija mreže pomeranjem njenih vrhova rezultira boljim korišćenjem 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 ceo 3D prostor u kojem se objekat nalazi, gde su vrhovi u tetraedralnoj mreži . Svaki tetraedar ∈ je definisan korišćenjem četiri vrha { }, sa ∈ {1*, . . . , K*}, gde je ukupan broj tetraedara, i ∈ ∈ R3. Pored svojih 3D koordinata, svaki vrh sadrži SDF vrednost ∈ R i deformaciju ∆ ∈ R3 vrha od njegove početne kanoničke koordinate. Ova reprezentacija omogućava povratak eksplicitne mreže kroz diferencijalni marširajući tetraedar [ ], gde se SDF vrednosti u neprekidnom prostoru izračunavaju bari-centričnom interpolacijom njihove vrednosti 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 Mapiramo 1 ∈ R512 na SDF vrednosti i deformacije na svakom vrhu kroz niz konvolucionih 3D slojeva i potpuno povezanih slojeva. Konkretno, prvo koristimo 3D konvolucione slojeve da generišemo zapreminu funkcija uslovljenu sa 1. Zatim upitujemo funkciju na svakom vrhu ∈ koristeći trilinearnu interpolaciju i prosleđujemo je MLPs-u koji izbacuje SDF vrednost i deformaciju ∆ . U slučajevima kada je potrebno modeliranje pri visokoj rezoluciji (npr. motocikl sa tankim strukturama na točkovima), dalje koristimo podelu zapremine prema [ ]. Arhitektura mreže w v i w v i VT si v i 60 Nakon dobijanja i ∆ za sve vrhove, koristimo diferencijalni algoritam marširajućih tetraedara da izvučemo eksplicitnu mrežu. Marširajući tetraedari određuju topologiju površine unutar svakog tetraedra na osnovu znakova . Konkretno, ivica mreže se izvlači kada sign( ) /= sign( ), gde označavaju indekse vrhova na ivici tetraedra, a vrhovi te ivice su određeni linearnom interpolacijom kao mi,j = v 0 i sj−v 0 j si sj−si . Napominjemo da se gornja jednačina izračunava samo kada je si 6= sj , dakle je diferencijabilna, i gradijent iz mi,j može biti back-propagiran u SDF vrednosti si i deformacije ∆vi . Sa ovom reprezentacijom, oblici sa proizvoljnom topologijom se lako mogu generisati predviđanjem različitih znakova si . Diferencijalna 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, modeliramo teksturno polje funkcijom koja mapira 3D lokaciju površinske tačke ∈ R3, uslovljenu sa 2, na RGB boju ∈ R3 na toj lokaciji. Pošto teksturno polje zavisi od geometrije, dodatno uslovljavamo ovu mapu sa latentnim kodom geometrije 1, tako da = ( *,* 1 ⊕ 2), gde ⊕ označava konkatenaciju. ft p w c w c ft p w w Naše teksturno polje reprezentujemo pomoću tri-ravanskog prikaza, koji je efikasan i izražajan u rekonstrukciji 3D objekata [ ] i generisanju 3D-svestanih slika [ ] . Konkretno, sledimo [ , ] i koristimo konvolucionu neuralnu mrežu sa uslovima za mapiranje latentnog koda 1 ⊕ 2 na tri ortogonalne ravnine 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 Dato matrice funkcija, vektor funkcija f t ∈ R 32 za površinsku tačku p se povlači kao f t = P e ρ(πe(p)), gde πe(p) predstavlja projekciju tačke p na ravan funkcija e i ρ(·) označava bilinearnu interpolaciju funkcija. Dodatni potpuno povezani sloj se zatim koristi za mapiranje agregiranog vektora funkcija f t na RGB boju c. Napominjemo da, za razliku od drugih radova na 3D-svestanoj sintezi slika koji takođe koriste reprezentaciju neuralnog polja, mi samo treba da uzorkujemo teksturno polje na lokacijama površinskih tačaka (za razliku od gustih uzoraka duž zraka). Ovo znatno smanjuje računarsku složenost za renderovanje slika visoke rezolucije i garantuje generisanje multi-prikazno doslednih slika po konstrukciji. 3.2 Diferencijalno renderovanje i obuka Da bismo nadgledali naš model tokom obuke, crpimo inspiraciju iz Nvdiffrec [ ] koji vrši multi-prikaznu rekonstrukciju 3D objekata koristeći diferencijalni renderer. Konkretno, renderujemo izvučenu 3D mrežu i teksturno polje u 2D slike koristeći diferencijalni renderer [ ], i nadgledamo našu mrežu sa 2D diskriminatorom, koji pokušava da razlikuje sliku od stvarne slike objekta ili slike renderovane od generisanog objekta. 47 37 Pretpostavljamo da je distribucija kamere 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 diferencijalni rasterizer Nvdiffrast [ ] za renderovanje 3D mreže u 2D siluetu, kao i sliku gde svaki piksel sadrži koordinate odgovarajuće 3D Diferencijalno renderovanje c 37 tačke na površini mreže. Ove koordinate se dalje koriste za upitivanje teksturnog polja radi dobijanja RGB vrednosti. Pošto radimo direktno na izvučenoj mreži, možemo renderovati slike visoke rezolucije sa visokom efikasnošću, omogućavajući našem modelu da se obučava sa rezolucijom slike do 1024×1024. Treniramo naš model koristeći adverdijalni cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti ne-saturirajući GAN cilj sa R1 regularizacijom [ ]. Empirijski smo otkrili da korišćenje 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, gde može biti ili RGB slika ili silueta. Adverdijalni 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 stvarnih slika, označava renderovanje, a je hiperparametar. Pošto je diferencijabilan, gradijenti se mogu back-propagirati od 2D slika do naših 3D generatora. g u g u u px R λ R Da bismo uklonili interne plutajuće ivice koje nisu vidljive ni u jednom od pogleda, dalje regularizujemo generator geometrije gubitkom unakrsne entropije definisanim između SDF vrednosti susednih vrhova [ ]: Regularizacija 47 gde je gubitak binarne unakrsne entropije i označava sigmoidnu funkciju. Suma u jednačini je definisana nad skupom jedinstvenih ivica S u tetraedralnoj mreži, za koje je sign( ) /= sign( ). H σ 2 e si sj Ukupna funkcija gubitka se tada definiše kao: gde je hiperparametar koji kontroliše nivo regularizacije. µ