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 sa viaceré priemyselné odvetvia posúvajú smerom k modelovaniu rozsiahlych 3D virtuálnych svetov, rastie potreba nástrojov na tvorbu obsahu, ktoré dokážu škálovať z hľadiska množstva, kvality a rozmanitosti 3D obsahu. 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 rendrovacích enginoch, a teda okamžite použiteľné v následných 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é dokážu produkovať, zvyčajne nepodporujú textúry, alebo využívajú neurónové rendrovacie systémy v procese syntézy, čo ich použitie v bežnom 3D softvéri 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 diferenciálnom modelovaní povrchov, diferenciálnom rendrovaní, ako aj v 2D generatívnych adverzárnych sieťach (GAN) na trénovanie nášho modelu z kolekcií 2D obrázkov. GET3D dokáže generovať vysoko kvalitné 3D textúrované siete, od áut, 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 viaceré odvetvia vrátane hier, robotiky, architektúry a sociálnych platforiem. Manuálna tvorba 3D aktív je však veľmi č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 – hoci 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 rôznorodo vyzerajúcich postáv si stále vyžaduje značné množstvo času umelca. 4 3 Na uľahčenie procesu tvorby obsahu a sprístupnenie ho širokej škále (začiatočníkov) sa 3D generatívne siete, ktoré dokážu produkovať vysoko kvalitné a rozmanité 3D aktíva, stali v poslednej dobe aktívnou oblasťou výskumu [ , , , , , , , , , , ]. Aby však boli 3D generatívne modely prakticky využiteľ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ýstupom by mala byť textúrovaná sieť, čo je primárna reprezentácia používaná štandardnými grafickými softvérovými balíkmi ako Blender [ ] a Maya [ ], a Mali by sme byť schopní využiť 2D obrázky na supervíziu, keďže sú širšie dostupné 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 podskupiny vyššie uvedených požiadaviek, ale žiadna metóda doteraz nesplnila všetky (Tab. ). Napríklad metódy, ktoré generujú 3D oblak bodov [ , 68, 75], zvyčajne neprodukujú textúry a musia byť v post-processing dome konvertované na sieť. 1 5 Metódy generujúce voxely často postrádajú geometrické detaily a neprodukujú 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 nemôžu generovať tvary so zložitou topológiou a premenlivým rodom. 66 20 27 40 43 14 54 53 Nedávno, rýchly pokrok v neurónovom objemovom renderovaní [ ] a v 2D generatívnych adverzárnych sieťach (GAN) [ , , , , ] viedol k vzostupu 3D-aware syntézy obrázkov [ , , , , , ]. Avšak, táto línia práce sa zameriava na syntézu multi-view konzistentných obrázkov pomocou neurónového renderovania v procese syntézy a nezaručuje, že môžu byť generované zmysluplné 3D tvary. Hoci sieť môže byť potenciálne získaná z podkladovej reprezentácie neurónového poľa pomocou algoritmu marching cubes [ ], extrakcia zodpovedajúcej textúry je neľahká úloha. 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 produkuje xplicitné extúrované siete s vysokými geometrickými a textúrovými detailmi a ľubovoľnou topológiou sietí. Srdcom nášho prístupu je generatívny proces, ktorý využíva diferenciálnu metódu extrakcie povrchu [ ] a techniku diferenciálneho renderovania [ , ]. Prvá nám umožňuje priamo optimalizovať a produkovať 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ý rendrovací systém, môžeme náš model ľahko škálovať na trénovanie s rozlíšením obrázkov až do 1024 × 1024, čo nám umožňuje naučiť sa vysoko kvalitné geometrické a textúrové detaily. G E T 3D explicitného 60 47 37 Demonštrujeme špičkový výkon v nekondicionálnej generácii 3D tvarov na viacerých kategóriách so zložitou geometriou zo ShapeNet [ ], Turbosquid [ ] a Renderpeople [ ], ako sú autá, stoličky, motocykle, ľudské postavy a budovy. S explicitnou sieťou ako výstupnou reprezentáciou je GET3D tiež veľmi flexibilný a dá sa ľahko prispôsobiť iným úlohám, vrátane: učenie generovať dekomponované materiálové a pohľadovo závislé svetelné efekty pomocou pokročilého diferenciálneho renderovania [ ] bez supervízie, syntéza 3D tvarov riadená textom pomocou CLIP [ ] embeddingu. 9 4 2 (a) 12 (b) 56 2 Súvisiace práce Prehľadávame nedávne pokroky v 3D generatívnych modeloch pre geometriu a vzhľad, ako aj v 3D-aware generatívnej syntéze obrázkov. V posledných rokoch dosiahli 2D generatívne modely fotorealistickú kvalitu vo vysoko rozlíšenej syntéze obrázkov [ , , , , , , ]. Tento pokrok inšpiroval aj výskum v generovaní 3D obsahu. Skoršie prístupy sa snažili priamo rozšíriť 2D CNN generátory na 3D voxelové mriežky [ , , , , ], ale vysoká náročnosť na pamäť a výpočtová zložitosť 3D konvolúcií bránili procesu generovania vo vysokom rozlíšení. Ako alternatívu, iné práce preskúmali oblaky bodov [ , , , ], implicitné [ , ], alebo oktree [ ] reprezentácie. Tieto práce sa však zameriavajú hlavne na generovanie geometrie a zanedbávajú vzhľad. Ich výstupné reprezentácie tiež vyžadujú post-processing, 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 Textured3DGAN [ , ] a DIBR [ ], ktoré sú podobnejšie našej práci, 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 obrázkov [ , , , , , , , , , ]. Avšak, neurónové objemové rendrovacie siete sú typicky pomalé pri dopytovaní, čo vedie k dlhým časom trénovania [ , ], a generujú obrázky s obmedzeným rozlíšením. GIRAFFE [ ] a StyleNerf [ ] zlepšujú efektivitu trénovania a renderovania tým, že vykonávajú neurónové renderovanie v nižšom rozlíšení a následne výsledky zväčšujú pomocou 2D CNN. Zisk výkonu však prichádza za cenu zníženej multi-view konzistencie. Použitím duálneho diskriminátora dokáže EG3D [ ] čiastočne zmierniť tento problém. Napriek tomu je extrakcia textúrovaného povrchu z metód založených na neurónovom renderovaní neľahkou úlohou. Naopak, GET3D priamo produkuje textúrované 3D siete, ktoré môžu byť ľahko použité v štandardných grafických enginoch. 3D-aware generatívna syntéza obrázkov 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metóda Teraz predstavujeme náš GET3D framework na syntézu textúrovaných 3D tvarov. Náš generatívny proces je rozdelený do dvoch častí: geometrická vetva, ktorá diferenciálne produkuje sieť povrchu ľubovoľnej topológie, a textúrová vetva, ktorá produkuje textúrové pole, ktoré môže byť dotazované na bodoch povrchu na produkciu farieb. Druhá menovaná môže byť rozšírená na iné vlastnosti povrchu, ako sú napríklad materiály (Sek. ). Počas trénovania 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 adverzárne trénovanie 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 ilustrovaný 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í Cieľom je naučiť 3D generátor = ( ), 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. V súlade so StyleGAN [ , , ], používame nelineárne mapovacie siete geo a tex na mapovanie 1 a 2 na stredné latentné vektory 1 = geo( 1) a 2 = tex( 2), ktoré sa ďalej používajú na produkciu *štýlov*, ktoré kontrolujú generovanie 3D tvarov a textúry, resp. Formálne uvádzame generátor pre geometriu v sekcii 3.1.1 a generátor textúry v sekcii 3.1.2. z z 34 35 33 f f z z w f z w f z 3.1.1 Generátor geometrie Navrhujeme náš generátor geometrie tak, aby začleňoval DMTet [ ], nedávno navrhovanú diferenciálnu reprezentáciu povrchu. DMTet reprezentuje geometriu ako signové políčko vzdialeností (SDF) definované na deformovateľnej tetrahedrickej mriežke [ , ], z ktorej povrch môže byť diferenciálne získaný 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. V ďalšom texte 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 tetrahedrickej mriežke . Každý tetraéder ∈ je definovaný pomocou štyroch vrcholov { }, s ∈ {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 vrchola od jeho počiatočnej kanonickej súradnice. Táto reprezentácia umožňuje získať explicitnú sieť pomocou diferenciálneho algoritmu marching tetrahedra [ ], kde hodnoty SDF v spojitom priestore sú vypočítané 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 získame funkciu v každom vrchole ∈ a napájame ju do MLP, ktoré produkujú hodnotu SDF a deformáciu ∆ . V prípadoch, keď je potrebné modelovanie vo vysokom rozlíšení (napr. motocykel s tenkými štruktúrami na kolesách), ďalej používame objemové delenie 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 marching tetrahedra na extrakciu explicitnej siete. Algoritmus marching tetrahedra určuje topológiu povrchu v každom tetraédri na základe znamienok . Konkrétne, tvár siete sa extrahuje, keď sign( ) /= sign( ), kde označujú indexy vrcholov na hrane tetraédra, a vrcholy tejto tváre 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ý vzorec je vyhodnotený iba vtedy, keď si 6= sj , takže je diferenciálny a gradient z mi,j môže byť spätnou propagáciou zapracovaný do hodnôt SDF si a deformácií ∆vi . S touto reprezentáciou môžu byť tvary s ľubovoľnou topológiou ľahko generované predpovedaním rôznych znamienok si . Diferenciálna extrakcia sietí si v i si si sj i, j m i,j 3.1.2 Generátor textúry Priame generovanie mapy textúry 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 Špecificky, 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 ⊕ označuje konkatenáciu. ft p w c w c ft p w w Textúrové pole reprezentujeme pomocou tri-planárnej 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 os-rovnobežné ortogonálne funkčné roviny s rozlíšením × × ( × 3), kde = 256 označuje 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 funkcie f t ∈ R 32 povrchového bodu p sa 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í. Dodatočná plne prepojená vrstva sa potom použije na mapovanie agregovaného vektora funkcie f t na RGB farbu c. Upozorňujeme, že na rozdiel od iných prác na 3D-aware syntézu obrázkov, ktoré tiež používajú reprezentáciu neurónového poľa, potrebujeme vzorkovať textúrové pole iba na polohách bodov povrchu (na rozdiel od hustých vzoriek pozdĺž lúča). Toto 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štrukčne. 3.2 Diferenciálne renderovanie a trénovanie Na supervíziu nášho modelu počas trénovania čerpáme inšpiráciu z Nvdiffrec [ ], ktorý vykonáva multi-view 3D rekonštrukciu objektov pomocou diferenciálneho rendrovacieho systému. Konkrétne, extrahovanú 3D sieť a textúrové pole rendrujeme do 2D obrázkov pomocou diferenciálneho rendrovacieho systému [ ] a supervízujeme našu sieť pomocou 2D diskriminátora, ktorý sa snaží rozlíšiť obrázok od skutočného objektu alebo obrázok vygenerovaný objektom. 47 37 Predpokladáme, že distribúcia kamier C, ktorá sa použila 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 obrázkov až do 1024×1024. Diferenciálne renderovanie c 37 Trénujeme náš model pomocou adverzárneho cieľa. Prijímame architektúru diskriminátora zo StyleGAN [ ] a používame rovnaký ne-saturovaný 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, prináša lepšie výsledky ako jeden diskriminátor operujúci na oboch. Nech označuje diskriminátor, kde môže byť buď RGB obrázok alebo silueta. Adverzárny cieľ je potom definovaný 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 môžu byť spätnou propagáciou 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 generátor geometrie pomocou straty krížovej entropie definovanej medzi hodnotami SDF susedných vrcholov [ ]: Regularizácia 47 kde označuje binárnu stratu krížovej entropie a označuje sigmoídnu funkciu. Súčet v rovnici je definovaný nad množinou jedinečných hrán S v tetrahedrickej mriežke, pre ktoré platí sign( ) /= sign( ). H σ 2 e si sj