```html Autori: Jun Gao, NVIDIA, Sveučilište u Torontu, Vector Institute (jung@nvidia.com) Tianchang Shen, NVIDIA, Sveučilište u Torontu, Vector Institute (frshen@nvidia.com) Zian Wang, NVIDIA, Sveučilište u Torontu, Vector Institute (zianw@nvidia.com) Wenzheng Chen, NVIDIA, Sveučilište u Torontu, 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, Sveučilište u Torontu, Vector Institute (sfidler@nvidia.com) Sažetak Kako se sve više industrija okreće modeliranju masivnih 3D virtualnih svjetova, postaje očita potreba za alatima za stvaranje sadržaja koji mogu skalirati u pogledu količine, kvalitete i raznolikosti 3D sadržaja. U našem radu nastojimo trenirati performantne 3D generativne modele koji sintetiziraju teksturirane mreže koje se mogu izravno koristiti u 3D renderirnim motorima, te su stoga 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 neuralne renderere u procesu sinteze, što ih čini netrivijalnim za korištenje u uobičajenim 3D softverima. U ovom radu predstavljamo GET3D, enerativni model koji izravno generira ksplicitne eksturirane mreže sa složenom topologijom, bogatim geometrijskim detaljima i visokokvalitetnim teksturama. Povezujemo nedavne uspjehe u diferencijabilnom modeliranju površina, diferencijabilnom renderiranju, kao i 2D generativnim suparničkim mrežama (GAN) kako bismo trenirali naš model iz kolekcija 2D slika. GET3D je sposoban generirati visokokvalitetne 3D teksturirane mreže, u rasponu od automobila, stolaca, ž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 brojne industrije, uključujući igre, robotiku, arhitekturu i društvene platforme. Međutim, ručno stvaranje 3D sredstava je vrlo dugotrajno i zahtijeva specifično tehničko znanje, kao i vještine umjetničkog modeliranja. Jedan od glavnih izazova je stoga skaliranje – iako se 3D modeli mogu pronaći na 3D tržnicama poput Turbosquid [ ] ili Sketchfab [ ], stvaranje mnogo 3D modela za, recimo, popunjavanje igre ili filma mnoštvom likova koji se svi razlikuju još uvijek zahtijeva značajno vrijeme umjetnika. 4 3 Kako bismo olakšali proces stvaranja sadržaja i učinili ga dostupnim raznim (početničkim) korisnicima, 3D generativne 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 ispunjavati sljedeće zahtjeve: Trebali bi imati kapacitet generirati oblike s detaljnom geometrijom i proizvoljnom topologijom, Izlaz bi trebala biti teksturirana mreža, što je primarna reprezentacija koju koriste standardni grafički softverski paketi poput Blendera [ ] i Maye [ ], 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 točaka [ , 68, 75] obično ne proizvode teksture i moraju se naknadno pretvoriti u mrežu u post-procesiranju. 1 5 Metode koje generiraju voksele često nemaju geometrijske detalje i ne proizvode teksturu [ , , , ]. Generativni modeli temeljeni na neuralnim poljima [ , ] fokusiraju se na ekstrakciju geometrije, ali zanemaruju teksturu. Većina njih također zahtijeva eksplicitni 3D nadzor. Konačno, metode koje izravno proizvode teksturirane 3D mreže [ , ] obično zahtijevaju unaprijed definirane 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 renderiranju volumena [ ] i 2D generativnim suparničkim mrežama (GAN) [ , , , , ] doveo je do porasta 3D-svjesne sinteze slika [ , , , , , ]. Međutim, ovaj niz radova ima za cilj sintetizirati slike konzistentne s više pogleda koristeći neuralno renderiranje u procesu sinteze i ne jamči da se mogu generirati značajni 3D oblici. Iako se mreža potencijalno može dobiti iz temeljnog neuralnog polja koristeći algoritam marchećeg kuba [ ], 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 riješiti sve zahtjeve praktično korisnog 3D generativnog modela. Konkretno, predlažemo GET3D, enerativni model za 3D oblike koji izravno proizvodi ksplicitne eksturirane mreže s visokim geometrijskim i teksturnim detaljima te proizvoljnom topologijom mreže. U srcu našeg pristupa je generativni proces koji koristi diferencijabilnu metodu ekstrakcije eksplicitne površine [ ] i diferencijabilnu tehniku renderiranja [ , ]. Prva nam omogućuje izravno optimiziranje i izdavanje teksturiranih 3D mreža proizvoljne topologije, dok nam druga omogućuje treniranje našeg modela s 2D slikama, čime se koriste snažni i zreli diskriminatori razvijeni za sintezu 2D slika. Budući da naš model izravno generira mreže i koristi visoko učinkovit (diferencijabilni) grafički renderer, možemo lako skalirati naš model za trening sa slikama G E T 3D 60 47 37 rezolucije do 1024 × 1024, što nam omogućuje učenje visokokvalitetnih geometrijskih i teksturnih detalja. Demonstriramo vrhunske performanse za bezuvjetno generiranje 3D oblika u više kategorija sa složenom geometrijom iz ShapeNeta [ ], TurboSquida [ ] i Renderpeople [ ], kao što su stolice, motocikli, automobili, ljudski likovi i zgrade. S 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 dekomponiranog materijala i osvjetljenja ovisnog o pogledu pomoću naprednog diferencijabilnog renderiranja [ ], bez nadzora, generiranje 3D oblika vođeno tekstom pomoću CLIP [ ] ugrađivanja. 9 4 2 (a) 12 (b) 56 2 Srodni radovi Pregledavamo nedavne napretke u 3D generativnim modelima za geometriju i izgled, kao i 3D-svjesnu generativnu sintezu slika. Posljednjih godina, 2D generativni modeli postigli su fotorealističnu kvalitetu u sintezi slika visoke rezolucije [ , , , , , , ]. Ovaj napredak također je potaknuo istraživanja u generiranju 3D sadržaja. Rani pristupi imali su za cilj izravno proširiti 2D CNN generatore na 3D vokselne mreže [ , , , , ], ali veliki otisak memorije i računalna složenost 3D konvolucija otežavaju proces generiranja pri visokoj rezoluciji. Kao alternativa, drugi radovi istraživali su oblake točaka [ , , , ], implicitne [ , ], ili oktree [ ] reprezentacije. Međutim, ovi radovi se uglavnom fokusiraju na generiranje geometrije i zanemaruju izgled. Njihove izlazne reprezentacije također treba naknadno obraditi 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 Teksturirane3DGAN [ , ] 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 s promjenjivim rodom, što naša metoda može učiniti. PolyGen [ ] i SurfGen [ ] mogu proizvesti mreže s proizvoljnom topologijom, ali ne sintetiziraju teksture. 54 53 11 48 41 Inspirirani uspjehom neuralnog renderiranja volumena [ ] i implicitnih reprezentacija [ , ], nedavni radovi počeli su rješavati problem 3D-svjesne sinteze slika [ , , , , , , , , , ]. Međutim, neuralne mreže za renderiranje volumena obično su spore za upit, što dovodi do dugog vremena treninga [ , ] i generiraju slike ograničene rezolucije. GIRAFFE [ ] i StyleNerf [ ] poboljšavaju učinkovitost treninga i renderiranja izvodeći neuralno renderiranje pri nižoj rezoluciji, a zatim povećavajući rezultate pomoću 2D CNN-a. Međutim, povećanje performansi dolazi po cijeni 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 temeljenih na neuralnom renderiranju je netrivijalan zadatak. Nasuprot tome, GET3D izravno proizvodi 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 okvir za sintezu 3D teksturiranih oblika. Naš proces generiranja podijeljen je u dva dijela: grana geometrije, koja diferencijabilno proizvodi mrežnu površinu proizvoljne topologije, i grana teksture koja proizvodi teksturni polje koje se može upitati na točkama površine kako bi se proizvele boje. Potonje se može proširiti na druga svojstva površine, kao što su, na primjer, materijali (Sec. ). Tijekom treninga, koristi se učinkovit diferencijabilni rasterizator za renderiranje izvučene teksturirane mreže u 2D slike visoke rezolucije. Cijeli proces je diferencijabilan, omogućujući suparničko treniranje iz slika (s maskama koje označavaju objekt interesa) propagiranjem gradijenata iz 2D diskriminatora u obje generativne grane. Naš model je ilustriran na slici . U nastavku prvo predstavljamo naš 3D generator u odjeljku , prije nego što prijeđemo na diferencijabilno renderiranje i funkcije gubitka u odjeljku . 4.3.1 2 3.1 3.2 3.1 Generativni model 3D teksturiranih mreža Želimo naučiti 3D generator = ( ) koji mapira uzorak iz Gaussove distribucije M, E G z ∈ N (0*,* ) u mrežu s 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 [ , , ], koristimo nelinearne mapirajuće mreže geo i tex kako bismo mapirali 1 i 2 u među-latentne vektore 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za proizvodnju koji kontroliraju generiranje 3D oblika i teksture, odnosno. Formalno predstavljamo generator geometrije u odjeljku , a generator teksture u odjeljku . 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 Dizajnirali smo naš generator geometrije kako bismo uključili DMTet [ ], nedavno predloženu diferencijabilnu reprezentaciju površine. DMTet predstavlja geometriju kao polje predznaka udaljenosti (SDF) definirano na deformabilnoj tetraedarskoj mreži [ , ], iz koje se površina može diferencijabilno povratiti putem marchećih tetraedra [ ]. Deformacija mreže pomicanjem njenih vrhova rezultira boljim korištenjem njene rezolucije. Usvajanjem DMTet-a za ekstrakciju površine, možemo proizvesti eksplicitne mreže proizvoljne topologije i roda. U nastavku dajemo kratak sažetak DMTet-a i upućujemo čitatelja na originalni rad za daljnje detalje. 60 22 24 17 Neka ( ) označava puni 3D prostor u kojem se objekt nalazi, gdje su vrhovi u tetraedarskoj mreži . Svaki tetraedar ∈ definiran je pomoću četiri vrha { }, gdje je ∈ {1*, . . . , K*}, gdje je ukupan broj tetraedara, a ∈ ∈ R3. Osim svojih 3D koordinata, svaki vrh sadrži vrijednost SDF-a ∈ R i deformaciju ∆ ∈ R3 vrha od njegove početne kanonske koordinate. Ova reprezentacija omogućuje povratak eksplicitne mreže putem diferencijabilnog marchećih tetraedara [ ], gdje se SDF vrijednosti u kontinuiranom prostoru izračunavaju barskim interpolacijom njihovih vrijednosti na deformiranim 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 putem niza uvjetovanih 3D konvolucijskih i potpuno povezanih slojeva. Konkretno, prvo koristimo 3D konvolucijske slojeve za generiranje volumena značajki uvjetovanog 1. Zatim upitujemo značajku na svakom vrhu ∈ pomoću trilinearne interpolacije i unosimo je u MLP-ove koji proizvode SDF vrijednost i deformaciju ∆ . U slučajevima kada je potrebno modeliranje pri visokoj rezoluciji (npr. motocikl s tankim strukturama na kotačima), dodatno koristimo podjelu volumena prema [ ]. Arhitektura Mreže w v i w v i VT si v i 60 Nakon dobivanja i ∆ za sve vrhove, koristimo diferencijabilni algoritam marchećih tetraedara za ekstrakciju eksplicitne mreže. Marcheći tetraedri određuju topologiju površine unutar svakog tetraedra na temelju predznaka . Konkretno, rub mreže se ekstrahira kada sign( ) /= sign( ), gdje označavaju indekse vrhova na rubu tetraedra, a vrhovi tog ruba određuju se linearnom interpolacijom kao mi,j = v 0 i sj−v 0 j si sj−si . Napominjemo da se gornja jednadžba evaluira samo kada si 6= sj , stoga je diferencijabilna, a gradijent iz mi,j može se povratno propagirati u SDF vrijednosti si i deformacije ∆vi . S ovom reprezentacijom, oblici proizvoljne topologije mogu se lako generirati predviđanjem različitih predznaka si . Diferencijabilna Ekstrakcija Mreže si v i si si sj i, j m i,j 3.1.2 Generator teksture Izravno generiranje teksturne mape konzistentne s izlaznom mrežom nije trivijalno, jer generirani oblik može imati proizvoljan rod i topologiju. Stoga parametriziramo teksturu kao teksturno polje [ ]. 50 Konkretno, modeliramo teksturno polje funkcijom koja mapira 3D lokaciju točke površine ∈ R3, uvjetovanu 2, na RGB boju ∈ R3 na toj lokaciji. Budući da teksturno polje ovisi o geometriji, dodatno uvjetujemo ovo mapiranje s kodom latentne geometrije 1, tako da = ( *,* 1 ⊕ 2), gdje ⊕ označava spajanje. ft p w c w c ft p w w Naše teksturno polje predstavljamo pomoću tri-planerne reprezentacije, koja je učinkovita i izražajna u rekonstrukciji 3D objekata [ ] i generiranju 3D-svjesnih slika [ ]. Konkretno, slijedimo [ , ] i koristimo uvjetnu 2D konvolucijsku neuralnu mrežu za mapiranje latentnog koda 1 ⊕ 2 na tri ortogonalne planske značajke poravnate s osima 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 Dano planske značajke, vektorska značajka f t ∈ R 32 točke površine p može se dobiti kao f t = P e ρ(πe(p)), gdje πe(p) je projekcija točke p na plansku značajku e i ρ(·) označava bilinearnu interpolaciju značajki. Dodatni potpuno povezani sloj se zatim koristi za mapiranje agregirane vektorske značajke f t na RGB boju c. Napominjemo da, za razliku od drugih radova na 3D-svjesnoj sintezi slika [8, 25, 7, 57] koji također koriste reprezentaciju neuralnog polja, mi trebamo samo uzorkovati teksturno polje na lokacijama točaka površine (za razliku od gustih uzoraka duž zrake). Ovo uvelike smanjuje računalnu složenost za renderiranje slika visoke rezolucije i jamči generiranje slika konzistentnih s više pogleda po konstrukciji. 3.2 Diferencijabilno Renderiranje i Trening Kako bismo nadzirali naš model tijekom treninga, crpimo inspiraciju iz Nvdiffrec [ ] koji izvodi 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 [ ], te nadziremo našu mrežu pomoću 2D diskriminatora, koji pokušava razlikovati sliku od stvarne ili renderirane iz generiranog objekta. 47 37 Pretpostavljamo da je distribucija kamere C koja je korištena za stjecanje slika u skupu podataka poznata. Da bismo renderirali generirane oblike, nasumično uzorkujemo kameru iz C, i koristimo visoko optimiziran diferencijabilni rasterizator Nvdiffrast [ ] za renderiranje 3D mreže u 2D siluetu, kao i sliku gdje svaki piksel sadrži koordinate odgovarajuće 3D Diferencijabilno Renderiranje c 37 točke na površini mreže. Te koordinate se dalje koriste za upitivanje teksturnog polja kako bi se dobile RGB vrijednosti. Budući da radimo izravno na ekstrahiranoj mreži, možemo renderirati slike visoke rezolucije s visokom učinkovitošću, omogućujući našem modelu treniranje s rezolucijom slike do 1024×1024. Treniramo naš model koristeći suparnički cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti GAN cilj bez zasićenja s R1 regularizacijom [ ]. Empirijski smo utvrdili da korištenje dva odvojena diskriminatora, jedan za RGB slike i drugi za siluete, daje bolje rezultate nego jedan diskriminator koji radi na obje. 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 ( ) definirano kao ( ) = − log(1 +exp(− )), je distribucija stvarnih slika, označava renderiranje, a je hiperparametar. Budući da je diferencijabilan, gradijenti se mogu povratno propagirati iz 2D slika u naše 3D generatore. g u g u u px R λ R Kako bismo uklonili unutarnje plutajuće rubove koji nisu vidljivi ni u jednom od pogleda, dodatno regulariziramo generator geometrije gubitkom unakrsne entropije definiranim između SDF vrijednosti susjednih vrhova [ ]: Regularizacija 47 gdje je gubitak binarne unakrsne entropije, a označava sigmoidnu funkciju. Suma u jednadžbi definirana je nad skupom jedinstvenih rubova S u tetraedarskoj mreži, za koje vrijedi sign( ) /= sign( ). H σ 2 e si sj Ukupna funkcija gubitka tada je definirana kao: gdje je hiperparametar koji kontrolira razinu regularizacije. µ