```html 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, postaje očigledna potreba za alatima za kreiranje sadržaja koji se mogu skalirati u smislu količine, kvaliteta i raznolikosti 3D sadržaja. U našem radu, cilj nam je trenirati performantne 3D generativne modele koji sintetiziraju teksturirane mreže koje mogu direktno konzumirati 3D renderi, čime su odmah upotrebljive 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. 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 u stanju da generiše 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 igre, 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. Jedan od glavnih izazova je dakle skaliranje – dok 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 mnoštvom likova koji svi izgledaju drugačije, još uvijek zahtijeva značajnu količinu vremena umjetnika. 4 3 Kako bi se olakšao proces kreiranja sadržaja i učinio ga dostupnim za različite (početničke) korisnike, 3D generativne mreže koje mogu proizvoditi visokokvalitetna i raznolika 3D sredstva nedavno su postale aktivno istraživačko područje [ , , , , , , , , , , ]. 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 s detaljnom geometrijom i proizvoljnom topologijom, Izlaz bi trebao biti teksturirana mreža, što je primarni prikaz koji koriste standardni grafički paketi kao što su Blender [ ] i Maya [ ], i Trebali bismo moći iskoristiti 2D slike za nadzor, jer su one dostupnije 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 fokusirao se na podskupove gore navedenih zahtjeva, ali nijedna metoda do sada nije ispunila sve njih (Tab. ). Na primjer, 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đer zahtijeva eksplicitni 3D nadzor. Konačno, metode koje direktno izbacuju teksturirane 3D mreže [ , ] obično zahtijevaju unaprijed definirane predloške oblika i ne mogu generisati oblike sa složenom topologijom i varijabilnim rodom. 66 20 27 40 43 14 54 53 Nedavno je brzi napredak u neuralnom renderiranju volumena [ ] i 2D generativnim suparničkim mrežama (GANs) [ , , , , ] doveo do porasta 3D-svjesne sinteze slika [ , , , , , ]. Međutim, ovaj pravac rada ima za cilj sintezu slika sa više pogleda pomoću neuralnog renderiranja 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 pomoću algoritma za izdvajanje kubova [ ], ekstrakcija odgovarajuće teksture je ne-trivijalna. 45 34 35 33 29 52 7 57 8 49 51 25 39 U ovom radu predstavljamo novi 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 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 površine [ ] i diferencijabilnu tehniku renderiranja [ , ]. Prva nam omogućava da direktno optimizujemo i izbacimo teksturirane 3D mreže proizvoljne topologije, dok nam druga omogućava da treniramo naš model sa 2D slikama, čime koristimo snažne i zrele diskriminatore razvijene za sintezu 2D 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 eksplicitne 60 47 37 Demonstriramo najsavremenije performanse za nekondicionalno generisanje 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đe vrlo fleksibilan i lako se može prilagoditi drugim zadacima, uključujući: učenje generisanja dekomponovanog materijala i efekata osvjetljenja zavisnih od pogleda koristeći napredno diferencijabilno renderiranje [ ], bez nadzora, sinteza 3D oblika vođena tekstom pomoću CLIP [ ] ugrađivanja. 9 4 2 (a) 12 (b) 56 2 Srodni radovi Pregledavamo nedavna dostignuća 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đ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 visoki memorijski zahtjev i računarska složenost 3D konvolucija ometaju proces generiranja 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 generiranje geometrije i zanemaruju izgled. Njihove izlazne reprezentacije također treba post-procesirati kako bi postale kompatibilne sa standardnim grafičkim mašinama. 3D Generativni Modeli 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Teksturirani3DGAN [ , ] 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. PolyGen [ ] i SurfGen [ ] mogu da proizvode mreže sa proizvoljnom topologijom, ali ne sintetišu teksture. 54 53 11 48 41 Inspirisani uspjehom neuralnog renderiranja volumena [ ] i implicitnih reprezentacija [ , ], nedavni radovi su počeli rješavati problem 3D-svjesne sinteze slika [ , , , , , , , , , ]. Međutim, neuralne mreže za renderiranje volumena su obično spore za upit, što dovodi do dugih vremena treniranja [ , ], i generišu slike ograničene rezolucije. GIRAFFE [ ] i StyleNerf [ ] poboljšavaju efikasnost treniranja i renderiranja izvodeći neuralno renderiranje pri nižoj rezoluciji, a zatim povećavajući rezultate sa 2D CNN-om. Međutim, dobitak u performansama dolazi po cijenu smanjene dosljednosti više pogleda. Korištenjem dvostrukog diskriminatora, EG3D [ ] može djelimično ublažiti ovaj problem. Ipak, ekstrakcija teksturirane površine iz metoda zasnovanih na neuralnom renderiranju je ne-trivijalan poduhvat. Nasuprot tome, GET3D direktno izbacuje teksturirane 3D mreže koje se mogu lako koristiti u standardnim grafičkim mašinama. 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 generisanja je podijeljen u dva dijela: geometrijski ogranak, koji diferencijabilno izbacuje mrezu površine proizvoljne topologije, i teksturni ogranak koji proizvodi teksturno polje koje se može uputiti na tač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. ). Tokom treniranja, koristi se efikasan diferencijabilni rasterizer za renderovanje rezultujuće teksturirane mreže u 2D slike visoke rezolucije. Cijeli proces je diferencijabilan, omogućavajući suparničko treniranje iz slika (sa maskama koje označavaju objekat od interesa) propagacijom gradijenta iz 2D diskriminatora na oba generatora. 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 = ( ) da mapira uzorak iz Gausove distribucije M, E G z ∈ N (0*,* ) na 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 na intermedijarne latentne vektore 1 = geo( 1) i 2 = tex( 2) koji se dalje koriste za proizvodnju koji kontrolišu generisanje 3D oblika i teksture, respektivno. Formalno predstavljamo generator geometrije 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 Dizajnirali smo naš generator geometrije da uključi DMTet [ ], nedavno predloženu diferencijabilnu reprezentaciju površine. DMTet predstavlja geometriju kao polje sa predznakom udaljenosti (SDF) definisano na deformabilnoj tetraedarskoj mreži [ , ], iz koje se površina može diferencijabilno oporaviti kroz marting tetraedre [ ]. Deformisanje mreže pomicanjem njenih vrhova rezultira boljom upotrebom njene rezolucije. Usvajanjem DMTet-a za ekstrakciju površine, možemo proizvesti eksplicitne mreže sa proizvoljnom topologijom i rodom. Zatim dajemo 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 su vrhovi u tetraedarskoj mreži . Svaki tetraedar ∈ definisan je pomoću četiri vrha { }, sa ∈ {1*, . . . , K*}, gdje je ukupan broj tetraedara, a ∈ ∈ R3. Pored svojih 3D koordinata, svaki vrh sadrži vrijednost SDF-a ∈ R i deformaciju ∆ ∈ R3 vrha od njegove početne kanonske koordinate. Ova reprezentacija omogućava oporavak eksplicitne mreže kroz diferencijabilne marting tetraedre [ ], gdje se vrijednosti SDF-a u kontinuiranom prostoru računaju baričentričnom 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 kondicioniranih 3D konvolucionih i potpuno povezanih slojeva. Konkretno, prvo koristimo 3D konvolucione slojeve za generisanje volumena značajki uslovljenog sa 1. Zatim upućujemo značajke na svakom vrhu ∈ koristeći trilinearnu interpolaciju i unosimo ih u MLPs koji izbacuju SDF vrijednost i deformaciju ∆ . U slučajevima gdje 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 marting tetraedara za ekstrakciju eksplicitne mreže. Marting tetraedri određuju topologiju površine unutar svakog tetraedra na osnovu predznaka . Konkretno, lice mreže se izdvaja kada sign( ) /= sign( ), gdje označavaju indekse vrhova na ivici tetraedra, a vrhovi tog lica su određeni linearnom interpolacijom kao mi,j = v 0 i sj−v 0 j si sj−si . Napomenimo da se gornja jednačina evaluira samo kada si 6= sj , stoga je diferencijabilna, a gradijent iz mi,j može biti povratno propagiran u SDF vrijednosti si i deformacije ∆vi . Sa ovom reprezentacijom, oblici sa proizvoljnom topologijom se lako mogu generisati 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 Direktno generisanje mape teksture konzistentne sa izlaznom mrezom 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 konkatenaciju. ft p w c w c ft p w w Naše teksturno polje predstavljamo pomoću tri-ravninske 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 mapiranje latentnog koda 1 ⊕ 2 na tri ortogonalne ravni značajki poravnate sa osama rezolucije N × N × (C × 3), gdje N = 256 označava prostornu rezoluciju, a 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 može se oporaviti kao f t = P e ρ(πe(p)), gdje πe(p) predstavlja projekciju tačke p na ravan značajki e, a ρ(·) 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. Napomenimo da, za razliku od drugih radova na 3D-svjesnoj sintezi slika [8, 25, 7, 57] koji također koriste reprezentaciju neuralnog polja, mi moramo samo 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 multi-pogledno konzistentnih slika po konstrukciji. 3.2 Diferencijabilno renderiranje i treniranje Kako bismo nadzirali naš model tokom treniranja, crpimo inspiraciju iz Nvdiffrec [ ] koji izvodi rekonstrukciju 3D objekata sa više pogleda koristeći diferencijabilni renderer. Konkretno, renderujemo ekstrahovanu 3D mrežu i teksturno polje u 2D slike pomoću diferencijabilnog renderera [ ], i nadziremo našu mrežu sa 2D diskriminatorom, koji pokušava razlikovati sliku od stvarne ili renderovane iz generisanog objekta. 47 37 Pretpostavljamo da je raspodjela kamera 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 optimiziran diferencijabilni rasterizer Nvdiffrast [ ] za renderovanje 3D mreže u 2D siluetu, kao i sliku gdje svaka piksel sadrži koordinate odgovarajuće 3D Diferencijabilno Renderiranje c 37 tačke na površini mreže. Ove koordinate se dalje koriste za upućivanje na teksturno polje kako bi se dobile RGB vrijednosti. Budući da operiramo direktno na ekstrahovanoj 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 suparnički cilj. Usvajamo arhitekturu diskriminatora iz StyleGAN [ ], i koristimo isti ne-saturirajući GAN cilj sa R1 regularizacijom [ ]. Empirijski smo utvrdili da upotreba dva odvojena diskriminatora, jedan za RGB slike i drugi za siluete, daje bolje rezultate nego jedan diskriminator koji radi na oba. Neka označava diskriminator, gdje može biti RGB slika ili silueta. Suparnički cilj se tada definira na sljedeći način: Diskriminator & Cilj 34 42 Dx x gdje je ( ) definisano kao ( ) = − log(1 +exp(− )), je distribucija stvarnih slika, označava renderiranje, a je hiperparametar. Budući da je diferencijabilno, gradijenti se mogu povratno propagirati iz 2D slika na naše 3D generatore. g u g u u px R λ R Kako bismo uklonili interne plutajuće lice koje nisu vidljive ni u jednom od pogleda, dodatno regularizujemo generator geometrije gubitkom unakrsne entropije definisanim između SDF vrijednosti susjednih vrhova [ ]: Regularizacija 47 gdje označava gubitak binarne unakrsne entropije, a označava sigmoidnu funkciju. Suma u Eq. definisana je 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 kontroliše nivo regularizacije. µ