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 ogromnih 3D virtuelnih svjetova, potreba za alatima za kreiranje sadržaja koji 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 konzumirati 3D renderujući motori, čime su odmah upotrebljivi u nizvodnim 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čajenom 3D softveru čini ne-trivijalnom. U ovom radu, predstavljamo GET3D, enerativni model koji direktno generiše ksplicitne eksturirane mreže sa složenom topologijom, bogatim geometrijskim detaljima i teksturama visoke vjernosti. Povezujemo nedavne uspjehe u diferencijabilnom modeliranju površina, diferencijabilnom renderovanju, kao i 2D generativnim adverzarijalnim mrežama (GANs) kako bismo trenirali naš model iz kolekcija 2D slika. GET3D je u stanju 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 Raznolik, visokokvalitetan 3D sadržaj postaje sve važniji za nekoliko industrija, uključujući igre, robotiku, arhitekturu i društvene platforme. Međutim, ručno kreiranje 3D sredstava je veoma dugotrajno i zahtijeva specifično tehničko znanje, kao i vještine modeliranja. Jedan od glavnih izazova je, dakle, skala – iako se 3D modeli mogu pronaći na 3D tržištima kao što su Turbosquid [ ] ili Sketchfab [ ], kreiranje mnogih 3D modela za, recimo, popunjavanje igre ili filma gomilom 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 raznim (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 primjene u stvarnom svijetu, 3D generativni modeli bi idealno trebali ispuniti sljedeće zahtjeve: Trebali bi imati kapacitet generiranja oblika s detaljnom geometrijom i proizvoljnom topologijom, Izlaz bi trebala biti teksturirana mreža, što je primarna reprezentacija koju koriste standardni paketi grafičkog softvera kao što su Blender [ ] i Maya [ ], i Trebali bismo biti u mogućnosti 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 (Tabela ). Na primjer, metode koje generiraju 3D oblake tačaka [ , 68, 75] obično ne proizvode teksture i moraju se post-procesirati pretvaranjem u mrežu. 1 5 Metode koje generiraju 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đer zahtijeva eksplicitni 3D nadzor. Konačno, metode koje direktno izlaze 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 neuralnom renderovanju volumena [ ] i 2D generativnim adverzarijalnim mrežama (GANs) [ , , , , ] doveo je do porasta 3D-svjesne sinteze slika [ , , , , , ]. Međutim, ova linija 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 neuralne reprezentacije polja koristeći algoritam marširajućih kocki [ ], ekstrakcija odgovarajuće teksture je ne-trivijalan 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 izlazi 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 *eksplicitne* ekstrakcije površine [ ] i tehniku diferencijabilnog renderovanja [ , ]. Prvo nam omogućava da direktno optimizujemo i izlazimo teksturirane 3D mreže sa proizvoljnom topologijom, dok nam drugo omogućava da treniramo naš model sa 2D slikama, čime koristimo snažne i zrele diskriminatore razvijene za 2D sintezu slika. Budući da naš model direktno generiše mreže i koristi visoko efikasan (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 najsavremenije tehnologije za bezuslovno 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 materijala i efekata osvjetljenja zavisnih od pogleda koristeći napredno diferencijabilno renderovanje [ ], bez nadzora, generisanje 3D oblika vođeno tekstom koristeći CLIP [ ] embedding. 9 4 2 (a) 12 (b) 56 2 Srodni radovi Pregledamo nedavne napretke u 3D generativnim modelima za geometriju i izgled, kao i 3D-svjesnu generativnu sintezu slika. Posljednjih 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 pri 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 kako bi bile 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 Teksturirane 3D mreže koje su sličnije našem radu, kao što su Textured3DGAN [ , ] i DIBR [ ], generišu teksturirane 3D mreže, 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 učiniti. PolyGen [ ] i SurfGen [ ] mogu proizvesti mreže sa proizvoljnom topologijom, ali ne sintetizuju teksture. 54 53 11 48 41 Inspirisani uspjehom neuralnog renderovanja volumena [ ] i implicitnih reprezentacija [ , ], nedavni radovi su počeli da rješavaju problem 3D-svjesne sinteze slika [ , , , , , , , , , ]. Međutim, neuralne mreže za renderovanje volumena su tipič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 izvode neuralno renderovanje pri nižoj rezoluciji, a zatim skaliraju 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 neuralnom renderovanju je ne-trivijalan poduhvat. Nasuprot tome, GET3D direktno izlazi teksturirane 3D mreže koje se mogu odmah 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 generisanja je podijeljen u dva dijela: geometrijska grana, koja diferencijabilno izlazi mrežu površine proizvoljne topologije, i teksturna grana 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 primjer, materijali (Sec. ). Tokom treniranja, koristi se efikasan diferencijabilni rasterizator za renderovanje rezultirajuće teksturirane mreže u 2D slike visoke rezolucije. Cijeli proces je diferencijabilan, omogućavajući adverzarijalno treniranje iz slika (sa maskama koje označavaju objekt od interesa) propagiranjem gradijenata iz 2D diskriminatora u obje generativne grane. Naš model je ilustrovan na slici . U nastavku, prvo predstavljamo naš 3D generator u Sec , prije nego što pređemo na diferencijabilno 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 naučiti 3D generator = ( ) da preslika uzorak iz Gaussove raspodjele 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 nasumična ulazna vektora 1 ∈ R512 i 2 ∈ R512. Slijedeći StyleGAN [ , , ], zatim koristimo nelinearne mapirajuće mreže geo i tex da mapiramo 1 i 2 u međuprostorene vektore 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za proizvodnju *stilova* koji kontrolišu generisanje 3D oblika i teksture, respektivno. 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 3.1.1 3.1.2 3.1.1 Geometrijski Generator Dizajniramo naš geometrijski generator da uključi DMTet [ ], nedavno predloženu diferencijabilnu reprezentaciju površine. DMTet predstavlja geometriju kao polje znaka 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 iskorištavanjem njene rezolucije. Usvajanjem DMTet-a za ekstrakciju površine, možemo proizvesti eksplicitne mreže sa proizvoljnom topologijom i rodom. Sledeće pružamo kratak sažetak DMTet-a i upućujemo čitaoca na originalni članak za dalje detalje. 60 22 24 17 Neka ( ) predstavlja puni 3D prostor u kojem se objekt nalazi, gdje su vrhovi 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 diferencirajućeg marširanja tetraedara [ ], gdje se SDF vrijednosti u kontinuiranom prostoru izračunavaju barskom interpolacijom njihovih 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 Mapiramo 1 ∈ R512 na SDF vrijednosti i deformacije na svakom vrhu kroz niz uslovnih 3D konvolucionih i potpuno povezanih slojeva. Konkretno, prvo koristimo 3D konvolucione slojeve za generisanje volumena značajki uslovljenog sa 1. Zatim upitujemo značajke na svakom vrhu ∈ koristeći trilinearnu interpolaciju i prosleđujemo ih MLPs-ovima koji izlaze 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širanja tetraedara za ekstrakciju eksplicitne mreže. Marširanje tetraedara određuje topologiju površine unutar svakog tetraedra na osnovu znakova . Konkretno, lice mreže se izdvaja kada sign( ) /= sign( ), gdje označavaju indekse vrhova na ivici tetraedra, a vrhovi tog lica se određuju linearnom interpolacijom kao mi,j = v 0 i sj−v 0 j si sj−si . Napominjemo da se gornja jednačina evaluira samo kada je si 6= sj , stoga je diferencijabilna, i gradijent iz mi,j se može vratno propagirati u SDF vrijednosti 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 Teksturni Generator 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 tačke površine ∈ R3, uslovljenu sa 2, na RGB boju ∈ R3 na toj lokaciji. Budući da teksturno polje zavisi od geometrije, dodatno uslovljavamo ovo mapiranje sa latentnim kodom geometrije 1, tako da = ( *,* 1 ⊕ 2), gdje ⊕ označava konkatenciju. ft p w c w c ft p w w Reprezentujemo naše teksturno polje pomoću tri-ravanske reprezentacije, koja je efikasna i izražajna u rekonstrukciji 3D objekata [ ] i generisanju 3D-svjesnih slika [ ]. Konkretno, slijedimo [ , ] i koristimo uslovnu 2D konvolucionu neuralnu mrežu za mapiranje latentnog koda 1 ⊕ 2 na tri ortogonalne ravni značajki poravnate po 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 ravni značajki, vektora značajki f t ∈ R 32 tačke površine p se može oporaviti kao f t = P e ρ(πe(p)), gdje πe(p) je projekcija tačke p na ravan značajki e i ρ(·) označava bilinearnu interpolaciju značajki. Dodatni potpuno povezani sloj se zatim koristi za mapiranje agregiranog vektora značajki f t na RGB boju c. Napominjemo da, za razliku od drugih radova na 3D-svjesnoj sintezi slika koji također koriste reprezentaciju neuralnog polja, mi samo trebamo uzorkovati teksturno polje na lokacijama tačaka površine (za razliku od gustih uzoraka duž zrake). 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 Kako bismo nadzirali naš model tokom treniranja, crpimo inspiraciju iz Nvdiffrec [ ] koji izvodi rekonstrukciju 3D objekata iz više pogleda koristeći diferencijabilni renderer. Konkretno, renderiramo 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 stvarne ili renderovane slike generisane iz objekta. 47 37 Pretpostavljamo da je distribucija kamere C koja je korištena za sticanje slika u skupu podataka poznata. Za renderovanje generisanih oblika, nasumično uzorkujemo kameru iz C, i koristimo visoko optimizovan diferencijabilni rasterizator Nvdiffrast [ ] za renderovanje 3D mreže u 2D siluetu, kao i sliku gdje svaki piksel sadrži koordinate odgovarajuće 3D Diferencijabilno Renderovanje c 37 tačke na površini mreže. Ove koordinate se dalje koriste za upit teksturnog polja radi dobijanja RGB vrijednosti. Budući da 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. Treniramo naš model koristeći adverzarijalni cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti nesažimajuć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. Adverzarijalni cilj se tada definira na sljedeći način: Diskriminator & Cilj 34 42 Dx x gdje je ( ) definisano kao ( ) = − log(1 +exp(− )), je raspodjela stvarnih slika, označava renderovanje, a je hiperparametar. Budući da je diferencijabilan, gradijenti se mogu vratno propagirati iz 2D slika u naše 3D generatore. g u g u u px R λ R Da bismo uklonili unutrašnje plutajuće strane koje nisu vidljive ni u jednom pogledu, dodatno regularizujemo geometrijski generator gubitkom unakrsne entropije definisanim između SDF vrijednosti susjednih vrhova [ ]: Regularizacija 47 gdje je binarni gubitak unakrsne entropije i označava sigmoidnu funkciju. Suma u Eq. definisana je nad skupom jedinstvenih ivica S u tetraedarskoj mreži, za koju sign( ) /= sign( ). H σ 2 e si sj Ukupna funkcija gubitka se tada definira kao: gdje je hiperparametar koji kontroliše nivo regularizacije. µ