Autori: Jun Gao, NVIDIA, University of Toronto, Vector Institute (jung@nvidia.com) Tianchang Shen, NVIDIA, University of Toronto, Vector Institute (frshen@nvidia.com) Zian Wang, NVIDIA, University of Toronto, Vector Institute (zianw@nvidia.com) Wenzheng Chen, NVIDIA, University of Toronto, 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, University of Toronto, Vector Institute (sfidler@nvidia.com) Abstrakt Keďže viaceré priemyselné odvetvia smerujú k modelovaniu masívnych 3D virtuálnych svetov, potreba nástrojov na tvorbu obsahu, ktoré sa dokážu škálovať z hľadiska množstva, kvality a rozmanitosti 3D obsahu, sa stáva evidentnou. V našej práci sa zameriavame na trénovanie výkonných 3D generatívnych modelov, ktoré syntetizujú textúrované siete, pripravené na priame použitie v 3D renderovacích enginoch, a tým okamžite použiteľné v nadväzujúcich aplikáciách. Predchádzajúce práce na 3D generatívnom modelovaní buď postrádajú geometrické detaily, sú obmedzené v topológii sietí, ktorú môžu produkovať, zvyčajne nepodporujú textúry, alebo používajú neurálne renderovače v procese syntézy, čo ich použitie v bežných 3D softvéroch komplikuje. V tejto práci predstavujeme GET3D, eneratívny model, ktorý priamo generuje xplicitné extúrované siete so zložitou topológiou, bohatými geometrickými detailmi a vysoko vernými textúrami. Prepojujeme nedávne úspechy v oblasti diferenciálneho modelovania povrchov, diferenciálneho renderovania a 2D generatívnych adversariálnych sietí na trénovanie nášho modelu z kolekcií 2D obrázkov. GET3D dokáže generovať vysoko kvalitné 3D textúrované siete, od automobilov, stoličiek, zvierat, motocyklov a ľudských postáv až po budovy, čím dosahuje významné zlepšenia oproti predchádzajúcim metódam. Naša projektová stránka: G E T 3D https://nv-tlabs.github.io/GET3D 1 Úvod Rozmanitý, vysoko kvalitný 3D obsah sa stáva čoraz dôležitejším pre niekoľko odvetví, vrátane hier, robotiky, architektúry a sociálnych platforiem. Manuálna tvorba 3D aktív je však časovo náročná a vyžaduje si špecifické technické znalosti, ako aj zručnosti v modelovaní. Jednou z hlavných výziev je teda škálovanie – zatiaľ čo 3D modely možno nájsť na 3D trhoviskách ako Turbosquid [ ] alebo Sketchfab [ ], vytvorenie mnohých 3D modelov na naplnenie napríklad hry alebo filmu davom postáv, ktoré všetky vyzerajú odlišne, si stále vyžaduje značné množstvo času umelcov. 4 3 Na uľahčenie procesu tvorby obsahu a jeho sprístupnenie širokej škále (nováčikov) používateľov sa 3D generatívne siete, ktoré dokážu produkovať vysoko kvalitné a rozmanité 3D aktíva, stali nedávno aktívnou oblasťou výskumu [ , , , , , , , , , , ]. Aby však boli 3D generatívne modely prakticky užitočné pre súčasné reálne aplikácie, mali by ideálne spĺňať nasledujúce požiadavky: Mali by mať kapacitu generovať tvary s detailnou geometriou a ľubovoľnou topológiou, Výstup by mal byť textúrovaná sieť, ktorá je primárnou reprezentáciou používanou štandardnými balíkmi grafického softvéru ako Blender [ ] a Maya [ ], a Mali by sme byť schopní využiť 2D obrázky na supervíziu, keďže sú dostupnejšie ako explicitné 3D tvary. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Predchádzajúce práce na 3D generatívnom modelovaní sa zamerali na podmnožiny vyššie uvedených požiadaviek, ale žiadna metóda doteraz nesplnila všetky (Tab. ). Napríklad metódy, ktoré generujú 3D oblaky bodov [ , 68, 75], zvyčajne negenerujú textúry a musia byť po spracovaní konvertované na sieť. 1 5 Metódy generujúce voxely často postrádajú geometrické detaily a negenerujú textúru [ , , , ]. Generatívne modely založené na neurónových poliach [ , ] sa zameriavajú na extrakciu geometrie, ale zanedbávajú textúru. Väčšina z nich tiež vyžaduje explicitnú 3D supervíziu. Nakoniec, metódy, ktoré priamo produkujú textúrované 3D siete [ , ], zvyčajne vyžadujú preddefinované šablóny tvarov a nedokážu generovať tvary so zložitou topológiou a variabilným rodom. 66 20 27 40 43 14 54 53 Nedávny rýchly pokrok v neurónovom objemovom renderovaní [ ] a 2D generatívnych adversariálnych sieťach (GAN) [ , , , , ] viedol k vzostupu 3D-aware syntézy obrazu [ , , , , , ]. Táto línia prác sa však zameriava na syntézu multi-view konzistentných obrázkov pomocou neurónového renderovania v procese syntézy a nezaručuje, že možno generovať zmysluplné 3D tvary. Hoci sieť môže byť potenciálne získaná z podkladovej reprezentácie neurónového poľa pomocou algoritmu marching cube [ ], extrakcia zodpovedajúcej textúry je netriviálna. 45 34 35 33 29 52 7 57 8 49 51 25 39 V tejto práci predstavujeme nový prístup, ktorý sa snaží riešiť všetky požiadavky prakticky užitočného 3D generatívneho modelu. Konkrétne navrhujeme GET3D, eneratívny model pre 3D tvary, ktorý priamo generuje xplicitné extúrované siete s vysokými geometrickými a textúrovými detailmi a ľubovoľnou topológiou siete. Jadrom nášho prístupu je generatívny proces, ktorý využíva diferenciálnu metódu extrakcie povrchov [ ] a techniku diferenciálneho renderovania [ , ]. Prvá nám umožňuje priamo optimalizovať a generovať textúrované 3D siete s ľubovoľnou topológiou, zatiaľ čo druhá nám umožňuje trénovať náš model pomocou 2D obrázkov, čím využívame silné a vyspelé diskriminátory vyvinuté pre syntézu 2D obrázkov. Keďže náš model priamo generuje siete a používa vysoko efektívny (diferenciálny) grafický renderovač, môžeme náš model ľahko škálovať na trénovanie s obrazovou G E T 3D explicitných 60 47 37 rozlíšením až do 1024 × 1024, čo nám umožňuje naučiť sa vysoko kvalitné geometrické a textúrové detaily. Demonštrujeme najmodernejší výkon pre bezpodmienečné generovanie 3D tvarov v niekoľkých kategóriách so zložitou geometriou zo ShapeNet [ ], Turbosquid [ ] a Renderpeople [ ], ako sú stoličky, motocykle, autá, ľudské postavy a budovy. S explicitnou reprezentáciou výstupu ako siete je GET3D tiež veľmi flexibilný a dá sa ľahko prispôsobiť na iné úlohy, vrátane: učenie sa generovať dekomponovaný materiál a svetelné efekty závislé od pohľadu pomocou pokročilého diferenciálneho renderovania [ ], bez supervízie, generovanie 3D tvarov riadené textom pomocou CLIP [ ] embeddingu. 9 4 2 (a) 12 (b) 56 2 Súvisiace práce Prehliadame nedávne pokroky v 3D generatívnych modeloch pre geometriu a vzhľad, ako aj v 3D-aware generatívnej syntéze obrazu. V posledných rokoch dosiahli 2D generatívne modely fotorealistickú kvalitu vo vysoko rozlíšenej syntéze obrazu [ , , , , , , ]. Tento pokrok inšpiroval aj výskum v oblasti generovania 3D obsahu. Prvé prístupy sa snažili priamo rozšíriť 2D CNN generátory na 3D voxelové mriežky [ , , , , ], ale vysoká pamäťová náročnosť a výpočtová zložitosť 3D konvolúcií bránia procesu generovania pri vysokom rozlíšení. Ako alternatívu preskúmali iné práce reprezentácie pomocou oblakov bodov [ , , , ], implicitné [ , ] alebo oktree [ ]. Tieto práce sa však zameriavajú hlavne na generovanie geometrie a zanedbávajú vzhľad. Ich výstupné reprezentácie tiež vyžadujú dodatočné spracovanie, aby boli kompatibilné so štandardnými grafickými enginmi. 3D generatívne modely 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Podobnejšie našej práci, Textured3DGAN [ , ] a DIBR [ ] generujú textúrované 3D siete, ale formulujú generovanie ako deformáciu šablóny siete, čo im bráni generovať zložitú topológiu alebo tvary s meniacim sa rodom, čo naša metóda dokáže. PolyGen [ ] a SurfGen [ ] dokážu produkovať siete s ľubovoľnou topológiou, ale negenerujú textúry. 54 53 11 48 41 Inšpirovaní úspechom neurónového objemového renderovania [ ] a implicitných reprezentácií [ , ], nedávne práce začali riešiť problém 3D-aware syntézy obrazu [ , , , , , , , , , ]. Avšak neurónové objemové renderovacie siete sú zvyčajne pomalé pri dopytovaní, čo vedie k dlhým časom tréningu [ , ] a generuje obrázky s obmedzeným rozlíšením. GIRAFFE [ ] a StyleNerf [ ] zlepšujú efektivitu tréningu a renderovania tým, že vykonávajú neurónové renderovanie pri nižšom rozlíšení a potom výsledky zväčšujú pomocou 2D CNN. Zisk výkonu však prichádza na úkor zníženej multi-view konzistencie. Použitím duálneho diskriminátora môže EG3D [ ] tento problém čiastočne zmierniť. Extrakcia textúrovaného povrchu z metód založených na neurónovom renderovaní je však netriviálna úloha. Naopak, GET3D priamo generuje textúrované 3D siete, ktoré možno ľahko použiť v štandardných grafických enginoch. 3D-aware generatívna syntéza obrazu 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metóda Teraz predstavujeme náš rámec GET3D na syntézu textúrovaných 3D tvarov. Náš proces generovania je rozdelený do dvoch častí: geometrická vetva, ktorá diferenciálne generuje sieť povrchu ľubovoľnej topológie, a textúrová vetva, ktorá vytvára textúrové pole, ktoré možno dopytovať na bodoch povrchu na generovanie farieb. Druhá menovaná môže byť rozšírená na iné povrchové vlastnosti, ako sú napríklad materiály (sekcia ). Počas tréningu sa používa efektívny diferenciálny rasterizátor na renderovanie výslednej textúrovanej siete do 2D obrázkov s vysokým rozlíšením. Celý proces je diferenciálny, čo umožňuje adversariálny tréning z obrázkov (s maskami indikujúcimi objekt záujmu) propagáciou gradientov z 2D diskriminátora do oboch generatívnych vetiev. Náš model je znázornený na obr. . V nasledujúcom texte najprv predstavíme náš 3D generátor v sekcii , predtým ako prejdeme k diferenciálnemu renderovaniu a stratovým funkciám v sekcii . 4.3.1 2 3.1 3.2 3.1 Generatívny model 3D textúrovaných sietí Cielime na naučenie 3D generátora = ( ), ktorý mapuje vzorku z Gaussovho rozdelenia M, E G z ∈ N (0*,* ) na sieť s textúrou . z I M E Keďže rovnaká geometria môže mať rôzne textúry a rovnaká textúra môže byť aplikovaná na rôzne geometrie, vzorkujeme dva náhodné vstupové vektory 1 ∈ R512 a 2 ∈ R512. Podľa StyleGAN [ , , ], potom používame nelineárne mapovacie siete geo a tex na mapovanie 1 a 2 na medzipolohové latentné vektory 1 = geo( 1) a 2 = tex( 2), ktoré sa ďalej používajú na generovanie , ktoré kontrolujú generovanie 3D tvarov a textúry, resp. Formálne predstavujeme generátor pre geometriu v sekcii a generátor textúry v sekcii . z z 34 35 33 f f z z w f z w f z štýlov 3.1.1 3.1.2 3.1.1 Geometrický generátor Navrhujeme náš geometrický generátor tak, aby zahŕňal DMTet [ ], nedávno navrhnutú diferenciálnu reprezentáciu povrchu. DMTet reprezentuje geometriu ako pole podpísaných vzdialeností (SDF) definované na deformovateľnej tetraedrickej mriežke [ , ], z ktorej možno diferenciálne získať povrch pomocou pochodujúcich tetraédrov [ ]. Deformovanie mriežky pohybom jej vrcholov vedie k lepšiemu využitiu jej rozlíšenia. Prijatím DMTet na extrakciu povrchu môžeme produkovať explicitné siete s ľubovoľnou topológiou a rodom. Ďalej poskytujeme stručné zhrnutie DMTet a odkazujeme čitateľa na pôvodný článok pre ďalšie podrobnosti. 60 22 24 17 Nech ( ) označuje plný 3D priestor, v ktorom sa objekt nachádza, kde sú vrcholy v tetraedrickej mriežke . Každý tetraéder ∈ je definovaný pomocou štyroch vrcholov { }, kde ∈ {1*, . . . , K*}, kde je celkový počet tetraédrov, a ∈ ∈ R3. Okrem svojich 3D súradníc obsahuje každý vrchol hodnotu SDF ∈ R a deformáciu ∆ ∈ R3 vrcholu od jeho počiatočnej kanonickej súradnice. Táto reprezentácia umožňuje získať explicitnú sieť pomocou diferenciálnych pochodujúcich tetraédrov [ ], kde sa hodnoty SDF v spojitom priestore počítajú barycentrickou interpoláciou ich hodnoty na deformovaných vrcholoch ′ = + ∆ . 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 Mapujeme 1 ∈ R512 na hodnoty SDF a deformácie pri každom vrchole prostredníctvom série podmienených 3D konvolučných a plne prepojených vrstiev. Konkrétne, najprv použijeme 3D konvolučné vrstvy na generovanie objemu funkcií podmieneného 1. Potom pomocou trilineárnej interpolácie dopytujeme funkciu pri každom vrchole ∈ a napájame ju do MLP, ktoré generuje hodnotu SDF a deformáciu ∆ . V prípadoch, keď je potrebné modelovanie pri vysokom rozlíšení (napr. motocykel s tenkými konštrukciami na kolesách), ďalej používame delenie objemu podľa [ ]. Architektúra siete w v i w v i VT si v i 60 Po získaní a ∆ pre všetky vrcholy použijeme diferenciálny algoritmus pochodujúcich tetraédrov na extrakciu explicitnej siete. Pochodujúce tetraédry určujú topológiu povrchu v každom tetraédri na základe znamienok . Konkrétne, plocha siete sa extrahuje, keď sign( ) /= sign( ), kde označujú indexy vrcholov na hrane tetraédra, a vrcholy tejto plochy sú určené lineárnou interpoláciou ako mi,j = v 0 i sj−v 0 j si sj−si . Upozorňujeme, že vyššie uvedená rovnica sa vyhodnocuje iba vtedy, keď si 6= sj , takže je diferenciálna a gradient z mi,j sa môže spätnou propagáciou preniesť do hodnôt SDF si a deformácií ∆vi . S touto reprezentáciou môžu byť tvary s ľubovoľnou topológiou ľahko generované predikciou rôznych znamienok si . Diferenciálna extrakcia siete si v i si si sj i, j m i,j 3.1.2 Generátor textúry Priame generovanie textúrovej mapy konzistentnej s výstupnou sieťou nie je triviálne, pretože generovaný tvar môže mať ľubovoľný rod a topológiu. Preto parametrizujeme textúru ako textúrové pole [ ]. 50 Konkrétne, textúrové pole modelujeme funkciou , ktorá mapuje 3D polohu povrchového bodu ∈ R3, podmienenú 2, na RGB farbu ∈ R3 v tejto polohe. Keďže textúrové pole závisí od geometrie, dodatočne podmieňujeme toto mapovanie latentným kódom geometrie 1, takže = ( *,* 1 ⊕ 2), kde ⊕ značí konkatenáciu. ft p w c w c ft p w w Textúrové pole reprezentujeme pomocou tri-plane reprezentácie, ktorá je efektívna a expresívna pri rekonštrukcii 3D objektov [ ] a generovaní 3D-aware obrázkov [ ]. Konkrétne, podľa [ , ] používame podmienenú 2D konvolučnú neurónovú sieť na mapovanie latentného kódu 1 ⊕ 2 na tri osiovo zarovnané ortogonálne funkčné roviny s veľkosťou × × ( × 3), kde = 256 značí priestorové rozlíšenie a = 32 počet kanálov. Architektúra siete 55 8 8 35 w w N N C N C Dané funkčné roviny, vektor funkcií f t ∈ R 32 povrchového bodu p možno získať ako f t = P e ρ(πe(p)), kde πe(p) je projekcia bodu p na funkčnú rovinu e a ρ(·) označuje bilineárnu interpoláciu funkcií. Ďalšia plne prepojená vrstva sa potom používa na mapovanie agregovaného vektora funkcií f t na RGB farbu c. Upozorňujeme, že na rozdiel od iných prác na 3D-aware syntézu obrazu, ktoré tiež používajú reprezentáciu neurónového poľa, potrebujeme iba vzorkovať textúrové pole na polohách povrchových bodov (na rozdiel od hustých vzoriek pozdĺž lúča). To výrazne znižuje výpočtovú zložitosť pre renderovanie obrázkov s vysokým rozlíšením a zaručuje generovanie multi-view konzistentných obrázkov konštrukciou. 3.2 Diferenciálne renderovanie a tréning Aby sme náš model počas tréningu nadzerali, inšpirujeme sa Nvdiffrec [ ], ktorý vykonáva multi-view 3D rekonštrukciu objektov pomocou diferenciálneho renderovača. Konkrétne, renderujeme extrahovanú 3D sieť a textúrové pole do 2D obrázkov pomocou diferenciálneho renderovača [ ] a nadzeráme našu sieť pomocou 2D diskriminátora, ktorý sa snaží rozlíšiť obrázok od reálneho objektu alebo renderovaný z generovaného objektu. 47 37 Predpokladáme, že distribúcia kamier C, ktorá bola použitá na získanie obrázkov v datasete, je známa. Na renderovanie generovaných tvarov náhodne vzorkujeme kameru z C a používame vysoko optimalizovaný diferenciálny rasterizátor Nvdiffrast [ ] na renderovanie 3D siete do 2D siluety, ako aj do obrázka, kde každý pixel obsahuje súradnice zodpovedajúceho 3D bodu na povrchu siete. Tieto súradnice sa ďalej používajú na dopytovanie textúrového poľa na získanie RGB hodnôt. Keďže pracujeme priamo na extrahovanej sieti, môžeme renderovať obrázky s vysokým rozlíšením s vysokou efektivitou, čo umožňuje trénovanie nášho modelu s rozlíšením obrazu až do 1024×1024. Diferenciálne renderovanie c 37 Trénujeme náš model pomocou adversariálneho cieľa. Prijímame architektúru diskriminátora zo StyleGAN [ ] a používame rovnaký nenasýtený GAN cieľ s R1 regularizáciou [ ]. Empiricky sme zistili, že použitie dvoch samostatných diskriminátorov, jedného pre RGB obrázky a druhého pre siluety, vedie k lepším výsledkom ako jeden diskriminátor operujúci na oboch. Nech označuje diskriminátor, kde môže byť buď RGB obrázok alebo silueta. Adversariálny cieľ sa potom definuje nasledovne: Diskriminátor & Cieľ 34 42 Dx x kde ( ) je definované ako ( ) = − log(1 +exp(− )), je distribúcia reálnych obrázkov, označuje renderovanie a je hyperparameter. Keďže je diferenciálne, gradienty sa môžu spätnou propagáciou preniesť z 2D obrázkov do našich 3D generátorov. g u g u u px R λ R Na odstránenie vnútorných plávajúcich plôch, ktoré nie sú viditeľné v žiadnom z pohľadov, ďalej regularizujeme geometrický generátor pomocou cross-entropy straty definovanej medzi hodnotami SDF susedných vrcholov [ ]: Regularizácia 47 kde označuje binárnu cross-entropy stratu a označuje sigmoídnu funkciu. Súčet v rovnici je definovaný nad množinou unikátnych hrán S v tetraedrickej mriežke, pre ktoré platí sign( ) /= sign( ). H σ 2 e si sj