```html Autori: Jun Gao, NVIDIA, Sveučilište u Torontu, Institut Vector (jung@nvidia.com) Tianchang Shen, NVIDIA, Sveučilište u Torontu, Institut Vector (frshen@nvidia.com) Zian Wang, NVIDIA, Sveučilište u Torontu, Institut Vector (zianw@nvidia.com) Wenzheng Chen, NVIDIA, Sveučilište 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, Sveučilište u Torontu, Institut Vector (sfidler@nvidia.com) Sažetak Kako se nekoliko industrija kreće prema modeliranju masivnih 3D virtualnih svjetova, potreba za alatima za stvaranje sadržaja koji mogu skalirati u smislu količine, kvalitete i raznolikosti 3D sadržaja postaje očita. U našem radu, cilj nam je trenirati performativne 3D generativne modele koji sintetiziraju teksturirane mreže koje mogu izravno koristiti 3D renderirajuć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 u uobičajenom 3D softveru čini ne-trivijalnom. U ovom radu, predstavljamo GET3D, enerativni model koji izravno generira ksplicitne eksturirane mreže sa složenom topologijom, bogatim geometrijskim detaljima i teksturama visoke vjernosti. Povezujemo nedavne uspjehe u diferencijabilnom modeliranju površina, diferencijabilnom renderiranju kao i 2D Generativnim Adversarijalnim Mrežama (GANs) kako bismo trenirali naš model 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 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 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 dakle skala – dok se 3D modeli mogu pronaći na 3D tržnicama poput Turbosquid [ ] ili Sketchfab [ ], stvaranje mnogih 3D modela, recimo, za popunjavanje igre ili filma gomilom likova koji svi izgledaju drugačije, još uvijek oduzima značajnu količinu vremena umjetnika. 4 3 Kako bismo olakšali proces stvaranja sadržaja i učinili 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 ispunjavati sljedeće zahtjeve: Trebali bi imati kapacitet generiranja oblika s detaljnom geometrijom i proizvoljnom topologijom, Izlaz bi trebao biti teksturirana mreža, što je primarna reprezentacija koju koriste standardni softverski paketi za grafiku poput Blendera [ ] i Maye [ ], i Trebali bismo moći iskoristiti 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 sada nije ispunila sve njih (Tab. ). Na primjer, metode koje generiraju 3D oblake toč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 temeljeni na neuralnim poljima [ , ] fokusiraju se na izdvajanje geometrije, ali zanemaruju teksturu. Većina njih također zahtijeva eksplicitni 3D nadzor. Konačno, metode koje izravno generiraju teksturirane 3D mreže [ , ] obično zahtijevaju unaprijed definirane predloške oblika i ne mogu generirati oblike sa složenom topologijom i promjenjivim rodom. 66 20 27 40 43 14 54 53 Nedavno, brzi napredak u neuralnom renderiranju volumena [ ] i 2D Generativnim Adversarijalnim Mrežama (GANs) [ , , , , ] doveo je do porasta 3D-svjesne sinteze slika [ , , , , , ]. Međutim, ovaj smjer rada teži sintetiziranju slika dosljednih višestrukih pogleda korištenjem neuralnog renderiranja u procesu sinteze i ne jamči da se mogu generirati smisleni 3D oblici. Iako se mreža potencijalno može dobiti iz osnovne neuralne reprezentacije polja pomoću algoritma za izdvajanje kubičnih polja [ ], izdvajanje odgovarajuće teksture je ne-trivijalan zadatak. 45 34 35 33 29 52 7 57 8 49 51 25 39 U ovom radu, predstavljamo nov pristup koji teži zadovoljiti sve zahtjeve praktički korisnog 3D generativnog modela. Konkretno, predlažemo GET3D, enerativni model za 3D oblike koji izravno generira 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 *eksplicitnog* vađenja površine [ ] i diferencijabilnu tehniku renderiranja [ , ]. Prvo nam omogućuje izravno optimiziranje i generiranje teksturiranih 3D mreža proizvoljne topologije, dok nam drugo dopušta treniranje našeg modela s 2D slikama, čime iskorištavamo snažne i zrele diskriminatore razvijene za sintezu 2D slika. Budući da naš model izravno generira mreže i koristi vrlo učinkovit (diferencijabilni) grafički renderer, možemo lako skalirati naš model za treniranje 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 najsuvremenije performanse za uvjetno generiranje 3D oblika na više kategorija sa složenom geometrijom iz ShapeNeta [ ], Turbosquid [ ] i Renderpeople [ ], kao što su automobili, stolice, životinje, motocikli, 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 dekomponiranih materijala i osvjetljenja ovisnog o pogledu pomoću naprednog diferencijabilnog renderiranja [ ], bez nadzora, generiranje 3D oblika vođenog tekstom pomoću CLIP [ ] embeddinga. 9 4 2 (a) 12 (b) 56 2 Povezani radovi Pregledavamo nedavna napredovanja u 3D generativnim modelima za geometriju i izgled, kao i 3D-svjesnu generativnu sintezu slika. U posljednjih nekoliko godina, 2D generativni modeli postigli su fotorealističku kvalitetu u sintezi slika visoke rezolucije [ , , , , , , ]. Ovaj napredak je također inspirirao istraživanja u generiranju 3D sadržaja. Rani pristupi ciljali su izravno proširiti 2D CNN generatore na 3D vokselske mreže [ , , , , ], ali veliki memorijski otisak i računalna složenost 3D konvolucija ometaju proces generiranja pri visokoj rezoluciji. Kao alternativa, drugi radovi su istraživali reprezentacije oblaka točaka [ , , , ], implicitne [ , ], ili oktree [ ] reprezentacije. Međutim, ovi radovi se uglavnom fokusiraju na generiranje geometrije i zanemaruju izgled. Njihove izlazne reprezentacije također trebaju biti naknadno obrađene 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 Više slično našem radu, Textured3DGAN [ , ] 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 su tipično spore za upit, što dovodi do dugih vremena treniranja [ , ], i generiraju slike ograničene rezolucije. GIRAFFE [ ] i StyleNerf [ ] poboljšavaju učinkovitost treniranja i renderiranja izvodeći neuralno renderiranje pri nižoj rezoluciji, a zatim povećavajući rezultate pomoću 2D CNN-a. Međutim, dobitak u performansama dolazi po cijeni smanjene dosljednosti višestrukih pogleda. Korištenjem dvostrukog diskriminatora, EG3D [ ] može djelomično ublažiti ovaj problem. Ipak, izdvajanje teksturirane površine iz metoda temeljenih na neuralnom renderiranju je ne-trivijalan zadatak. Nasuprot tome, GET3D izravno generira 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 teksturiranih 3D oblika. Naš proces generiranja podijeljen je u dva dijela: grana geometrije, koja diferencijabilno generira mrežu površine proizvoljne topologije, i grana teksture koja proizvodi teksturno polje koje se može upitati na točkama površine za generiranje boja. Potonje se može proširiti na druga svojstva površine kao što su, na primjer, materijali (Sec. ). Tijekom treniranja, koristi se učinkovit diferencijabilni rasterizator za renderiranje rezultirajuće teksturirane mreže u 2D slike visoke rezolucije. Cijeli proces je diferencijabilan, omogućujući adversarijalno treniranje iz slika (s maskama koje ukazuju na objekt interesa) širenjem gradijenta iz 2D diskriminatora u obje generativne grane. Naš model je ilustriran na slici . U nastavku, prvo predstavljamo naš 3D generator u Sec , prije nego što nastavimo s diferencijabilnim renderiranjem i funkcijama 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 s teksturom . z I M E Budući da ista geometrija može imati različite teksture, a ista tekstura može biti primijenjena na različite geometrije, uzorkujemo dva ulazna vektora 1 ∈ R512 i 2 ∈ R512. Slijedeći StyleGAN [ , , ], zatim koristimo nelinearne mape funkcija geo i tex za mapiranje 1 i 2 u među-latentne vektore 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za generiranje *stilova* koji kontroliraju generiranje 3D oblika i teksture, odnosno. Formalno predstavljamo generator za geometriju u Sec. , a generator teksture 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 Generator geometrije Dizajnirali smo naš generator geometrije da uključi 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 oporaviti putem marširajućih tetraedara [ ]. Deformiranje mreže pomicanjem njenih vrhova rezultira boljim iskorištavanjem njezine rezolucije. Usvajanjem DMTet-a za ekstrakciju površine, možemo proizvesti eksplicitne mreže s proizvoljnom topologijom i rodom. Nadalje, pružamo kratki sažetak DMTet-a i upućujemo čitatelja na izvorni članak za više detalja. 60 22 24 17 Neka ( ) označavaju puni 3D prostor u kojem se objekt nalazi, gdje su vrhovi u tetraedarskoj mreži . Svaki tetraedar ∈ definiran je pomoću četiri vrha { }, s ∈ {1*, . . . , K*}, gdje je ukupan broj tetraedara, i ∈ ∈ R3. Osim svojih 3D koordinata, svaki vrh sadrži SDF vrijednost ∈ R i deformaciju ∆ ∈ R3 vrha od njegove početne kanoničke koordinate. Ova reprezentacija omogućuje oporavak eksplicitne mreže putem diferencijirajućih marširajućih tetraedara [ ], gdje se SDF vrijednosti u kontinuiranom prostoru izračunavaju barycentričnom 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 kroz niz kondicioniranih 3D konvolucijskih i potpuno povezanih slojeva. Konkretno, prvo koristimo 3D konvolucijske slojeve za generiranje volumen značajki uvjetovanih s 1. Zatim upitujemo značajke na svakom vrhu ∈ koristeći trilinearnu interpolaciju i unosimo ih u MLP-ove koji generiraju SDF vrijednost i deformaciju ∆ . U slučajevima kada je potrebno modeliranje pri visokoj rezoluciji (npr. motocikli 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 za marširanje tetraedara za ekstrakciju eksplicitne mreže. Marširanje tetraedara određuje topologiju površine unutar svakog tetraedra na temelju predznaka . Konkretno, rub mreže se izvlači kada sign( ) /= sign( ), gdje označavaju indekse vrhova na bridu tetraedra, a vrhovi tog ruba određeni su 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 propagirati natrag u SDF vrijednosti si i deformacije ∆vi . S ovom reprezentacijom, oblici proizvoljne topologije mogu se lako generirati predviđanjem različitih predznaka od si . Diferencijabilno vađenje mreže si v i si si sj i, j m i,j 3.1.2 Generator teksture Izravno generiranje teksturne karte dosljedne 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 preslikava 3D lokaciju točke površine ∈ R3, uvjetovano s 2, na RGB boju ∈ R3 na toj lokaciji. Budući da teksturno polje ovisi o geometriji, dodatno uvjetujemo ovo preslikavanje s latentnim kodom geometrije 1, tako da = ( *,* 1 ⊕ 2), gdje ⊕ označava konkatenciju. ft p w c w c ft p w w Naše teksturno polje predstavljamo pomoću tri-ravninske reprezentacije, koja je učinkovita i izražajna u rekonstrukciji 3D objekata [ ] i generiranju 3D-svjesnih slika [ ]. Konkretno, slijedimo [ , ] i koristimo uvjetovanu 2D konvolucijsku neuralnu mrežu za mapiranje latentnog koda 1 ⊕ 2 na tri osno-poravnate ortogonalne ravnine značajki veličine × × ( × 3), gdje = 256 označava prostornu rezoluciju i = 32 broj kanala. Arhitektura mreže 55 8 8 35 w w N N C N C Dano ravninskim značajkama, vektorski znak f t ∈ R 32 za točku površine p može se oporaviti kao f t = P e ρ(πe(p)), gdje πe(p) je projekcija točke p na ravninu značajki e, a ρ(·) označava bilinearnu interpolaciju značajki. Dodatni potpuno povezani sloj zatim se 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 [8, 25, 7, 57] koji također koriste neuralnu reprezentaciju polja, mi samo trebamo 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 dosljednih višestrukih pogleda konstrukcijom. 3.2 Diferencijabilno renderiranje i treniranje Kako bismo nadzirali naš model tijekom treniranja, crpimo inspiraciju iz Nvdiffrec [ ] koji izvodi višestruku 3D rekonstrukciju objekata 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 s 2D diskriminatorom, koji pokušava razlikovati sliku stvarnog objekta od renderirane slike generiranog objekta. 47 37 Pretpostavljamo da je distribucija kamere 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 Diferencijabilno renderiranje c 37 točke na površini mreže. Ove koordinate se dalje koriste za upit teksturnog polja za dobivanje RGB vrijednosti. Budući da operiramo izravno na izdvojenoj 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 adversarijalni cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti ne-saturirajući GAN cilj s 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 djeluje na oba. Neka označava diskriminator, gdje može biti ili RGB slika ili silueta. Adversarijalni cilj se tada 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 propagirati unatrag od 2D slika do naših 3D generatora. 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 binarna unakrsna entropija i označava sigmoidnu funkciju. Suma u Jedn. definirana je nad skupom jedinstvenih bridova 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. µ