Tekijät: 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) Tiivistelmä Koska useat teollisuudenalat siirtyvät massiivisten 3D-virtuaalimaailmojen mallintamiseen, tarve sisältöluontityökaluille, jotka voivat skaalautua 3D-sisällön määrän, laadun ja monimuotoisuuden suhteen, tulee ilmeiseksi. Työssämme pyrimme kouluttamaan suorituskykyisiä 3D-generatiivisia malleja, jotka syntetisoivat teksturoituja verkkoja, joita 3D-renderöintimoottorit voivat käyttää suoraan, ja siten välittömästi käyttökelpoisia jatkossovelluksissa. Aikaisemmat 3D-generatiivisen mallinnuksen työt joko puuttuvat geometrisista yksityiskohdista, ovat rajoittuneita tuottamaansa verkkotopologiaan, eivät yleensä tue tekstuureja tai käyttävät synteesiprosessissa neuroverkkoja, mikä tekee niiden käytöstä yleisissä 3D-ohjelmistoissa ei-triviaalia. Tässä työssä esittelemme GET3D:n, eneratiivisen mallin, joka suoraan luo splisiittisiä eksturoituja -verkkoja monimutkaisella topologialla, rikkailla geometrisilla yksityiskohdilla ja korkealaatuisilla tekstuureilla. Yhdistämme viimeisimmät onnistumiset erottuvassa pintojen mallinnuksessa, erottuvassa renderöinnissä sekä 2D-generatiivisissa kilpailevissa verkoissa (GAN) kouluttaaksemme malliamme 2D-kuvakokoelmista. GET3D pystyy luomaan korkealaatuisia 3D-teksturoituja verkkoja, jotka vaihtelevat autoista, tuoleista, eläimistä, moottoripyöristä ja ihmishahmoista rakennuksiin, saavuttaen merkittäviä parannuksia verrattuna aikaisempiin menetelmiin. Projektisivumme: G E T 3D https://nv-tlabs.github.io/GET3D 1 Johdanto Monimuotoinen, korkealaatuinen 3D-sisältö on tulossa yhä tärkeämmäksi useilla teollisuudenaloilla, mukaan lukien pelit, robotiikka, arkkitehtuuri ja sosiaaliset alustat. 3D-omaisuuden manuaalinen luominen on kuitenkin erittäin aikaa vievää ja vaatii erityisiä teknisiä tietoja sekä taiteellisia mallinnustaitoja. Yksi suurimmista haasteista on siten skaala – vaikka 3D-malleja löytyy 3D-markkinapaikoilta, kuten Turbosquid [ ] tai Sketchfab [ ], monien 3D-mallien luominen esimerkiksi pelin tai elokuvan täyttämiseksi eri näköisillä hahmoporukoilla vie silti merkittävästi taiteilijan aikaa. 4 3 Sisällönluontiprosessin helpottamiseksi ja sen tekemiseksi saavutettavaksi erilaisille (aloitteleville) käyttäjille, korkealaatuisia ja monimuotoisia 3D-omaisuuksia tuottavat generatiiviset 3D-verkot ovat viime aikoina tulleet aktiiviseksi tutkimusalueeksi [ , , , , , , , , , , ]. Jotta 3D-generatiiviset mallit olisivat käytännössä hyödyllisiä nykyisissä reaaliaikaisissa sovelluksissa, niiden tulisi ihanteellisesti täyttää seuraavat vaatimukset: Niiden tulisi kyetä luomaan muotoja yksityiskohtaisella geometrillä ja mielivaltaisella topologialla, Tulosteen tulisi olla teksturoitu verkko, joka on ensisijainen esitysmuoto, jota standardit grafiikkaohjelmistopaketit, kuten Blender [ ] ja Maya [ ], käyttävät, ja Meidän tulisi voida hyödyntää 2D-kuvia valvontana, koska ne ovat helpommin saatavilla kuin eksplisiittiset 3D-muodot. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Aikaisempi työ 3D-generatiivisen mallinnuksen alalla on keskittynyt yllä olevien vaatimusten osajoukkoihin, mutta mikään menetelmä ei tähän mennessä täytä kaikkia niitä (Taulukko ). Esimerkiksi menetelmät, jotka luovat 3D-pistepilviä [ , 68, 75], eivät yleensä tuota tekstuureja ja ne on muunnettava verkoksi jälkikäsittelyssä. 1 5 Vokseleita luovat menetelmät usein puuttuvat geometrisista yksityiskohdista eivätkä tuota tekstuuria [ , , , ]. Neurokenttiin perustuvat generatiiviset mallit [ , ] keskittyvät geometrian poimimiseen, mutta jättävät ulkonäön huomiotta. Useimmat näistä vaativat myös eksplisiittistä 3D-valvontaa. Lopuksi menetelmät, jotka tuottavat suoraan teksturoituja 3D-verkkoja [ , ], vaativat yleensä ennalta määritettyjä muotimalleja eivätkä pysty luomaan monimutkaista topologiaa tai vaihtelevan sukupuolen muotoja. 66 20 27 40 43 14 54 53 Viimeaikainen nopea edistys neurovolyymien renderöinnissä [ ] ja 2D-generatiivisissa kilpailevissa verkoissa (GAN) [ , , , , ] on johtanut 3D-tietoisen kuvasynteesin nousuun [ , , , , , ]. Tämä työ pyrkii kuitenkin syntetisoimaan useanäkymäisesti yhtenäisiä kuvia neurorenderöinnin avulla synteesiprosessissa, eikä takaa, että mielekkäitä 3D-muotoja voidaan luoda. Vaikka verkko voidaan mahdollisesti saada alla olevasta neurokentän esityksestä käyttämällä marsikuvioalgoritmia [ ], vastaavan tekstuurin poimiminen on ei-triviaali tehtävä. 45 34 35 33 29 52 7 57 8 49 51 25 39 Tässä työssä esittelemme uuden lähestymistavan, joka pyrkii vastaamaan kaikkiin käytännössä hyödyllisen 3D-generatiivisen mallin vaatimuksiin. Erityisesti ehdotamme GET3D:tä, eneratiivista mallia 3D-muodoille, joka tuottaa suoraan splisiittisiä eksturoituja -verkkoja korkealla geometrisella ja tekstuurin yksityiskohdalla sekä mielivaltaisella verkkotopologialla. Lähestymistapamme ytimessä on generatiivinen prosessi, joka hyödyntää erottuvaa *eksplisiittistä* pintojen poimintamenetelmää [ ] ja erottuvaa renderöintitekniikkaa [ , ]. Ensimmäinen mahdollistaa teksturoitujen 3D-verkkojen suoran optimoinnin ja tulostamisen mielivaltaisella topologialla, kun taas jälkimmäinen sallii mallimme kouluttamisen 2D-kuvilla, hyödyntäen siten tehokkaita ja kypsiä 2D-kuvasynteesiin kehitettyjä diskriminaattoreita. Koska mallimme luo suoraan verkkoja ja käyttää tehokasta (erottuvaa) grafiikkarenderöijää, voimme helposti skaalata malliamme kouluttaaksemme sen kuvilla G E T 3D 60 47 37 jopa 1024 × 1024 resoluutioon, mikä mahdollistaa korkealaatuisten geometristen ja tekstuurin yksityiskohtien oppimisen. Demonstroimme huippuluokan suorituskykyä ehdottomassa 3D-muotojen luomisessa useissa monimutkaisen geometrian luokissa ShapeNet [ ], Turbosquid [ ] ja Renderpeople [ ] -aineistoista, kuten tuolit, moottoripyörät, autot, ihmishahmot ja rakennukset. Ekplisiittisenä verkkoesityksenä tulosteen ollessa GET3D on myös erittäin joustava ja se voidaan helposti mukauttaa muihin tehtäviin, mukaan lukien: Materiaalien ja näkymästä riippuvien valaistusefektien hajautettuun luomiseen edistyneen erottuvan renderöinnin avulla [ ], ilman valvontaa, Tekstiohjattu 3D-muotojen luominen CLIP [ ] upotuksen avulla. 9 4 2 (a) 12 (b) 56 2 Liittyvät työt Tarkastelemme viimeaikaisia edistysaskelia 3D-generatiivisissa malleissa geometrian ja ulkonäön osalta sekä 3D-tietoisessa generatiivisessa kuvasynteesissä. Viime vuosina 2D-generatiiviset mallit ovat saavuttaneet fotorealistisen laadun korkearesoluutioisessa kuvasynteesissä [ , , , , , , ]. Tämä edistysaskel on inspiroinut myös 3D-sisällön luomisen tutkimusta. Varhaiset lähestymistavat pyrkivät laajentamaan 2D CNN -generaattoreita suoraan 3D-vokseliruudukkoihin [ , , , , ], mutta 3D-konvoluutioiden korkea muistijalanjälki ja laskennallinen monimutkaisuus haittaavat korkean resoluution luontiprosessia. Vaihtoehtoisesti muut työt ovat tutkineet pistepilvi [ , , , ], implisiittisiä [ , ] tai oktaalipuita [ ] esitysmuotoina. Nämä työt keskittyvät kuitenkin pääasiassa geometrian luomiseen ja jättävät ulkonäön huomiotta. Niiden tuloste-esitysmuodot on myös jälkikäsiteltävä, jotta ne olisivat yhteensopivia standardien graafisten moottoreiden kanssa. 3D-generatiiviset mallit 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Lähempänä työtämme, Textured3DGAN [ , ] ja DIBR [ ] luovat teksturoituja 3D-verkkoja, mutta ne muotoilevat luontiprosessin malliverkon deformaationa, mikä estää niitä luomasta monimutkaista topologiaa tai eri sukupuolten muotoja, joita menetelmämme pystyy tekemään. PolyGen [ ] ja SurfGen [ ] pystyvät luomaan mielivaltaisen topologian verkkoja, mutta eivät syntetisoimaan tekstuureja. 54 53 11 48 41 Neurovolyymien renderöinnin [ ] ja implisiittisten esitysmuotojen [ , ] onnistumisten inspiroimana viimeaikainen työ alkoi käsitellä 3D-tietoisen kuvasynteesin ongelmaa [ , , , , , , , , , ]. Neurovolyymien renderöintiverkot ovat kuitenkin tyypillisesti hitaita kyselyihin, mikä johtaa pitkiin koulutusaikoihin [ , ], ja luovat rajallisen resoluution kuvia. GIRAFFE [ ] ja StyleNerf [ ] parantavat koulutus- ja renderöintitehokkuutta suorittamalla neurorenderöintiä alemmalla resoluutiolla ja sitten skaalaamalla tuloksia ylöspäin 2D CNN:llä. Suorituskyvyn paraneminen tapahtuu kuitenkin moninäkymäisen yhtenäisyyden heikkenemisen kustannuksella. Kaksinkertaista diskriminaattoria käyttämällä EG3D [ ] voi osittain lieventää tätä ongelmaa. Silti teksturoitujen pintojen poimiminen neurorenderöintiin perustuvista menetelmistä on ei-triviaali tehtävä. Sitä vastoin GET3D tuottaa suoraan teksturoituja 3D-verkkoja, joita voidaan helposti käyttää standardigraafisissa moottoreissa. 3D-tietoinen generatiivinen kuvasynteesi 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Menetelmä Esittelemme nyt GET3D-kehyksemme teksturoitujen 3D-muotojen syntetisointiin. Luontiprosessimme on jaettu kahteen osaan: geometriaosio, joka erottuvasti tuottaa mielivaltaisen topologian verkkomallin, ja tekstuuriosio, joka luo tekstuurikentän, jota voidaan kysellä pintapisteissä värien tuottamiseksi. Jälkimmäistä voidaan laajentaa muihin pintausominaisuuksiin, kuten esimerkiksi materiaaleihin (kohta 4.3.1). Koulutuksen aikana tehokasta erottuvaa rasterointia käytetään luodun teksturoitujen verkkomallin renderöimiseksi 2D-korkearesoluutioisiksi kuviksi. Koko prosessi on erottuva, mikä mahdollistaa kilpailevan koulutuksen kuvista (objektin kiinnostavuutta osoittavilla naamioilla) levittämällä gradientteja 2D-diskriminaattorilta molempiin generaattorin osioihin. Mallimme on havainnollistettu kuvassa . Seuraavassa esittelemme ensin 3D-generaattorimme kohdassa 3.1, ennen kuin siirrymme erottuvaan renderöintiin ja häviöfunktioihin kohdassa 3.2. 2 3.1 3D-teksturoitujen verkkojen generatiivinen malli Pyrimme oppimaan 3D-generaattorin = ( ) kartoittamaan Gaussin jakaumasta otetun otoksen M, E G z ∈ N (0*,* ) verkkoon ja tekstuuriiin . z I M E Koska sama geometria voi olla eri tekstuureilla ja samaa tekstuuria voidaan soveltaa eri geometrioihin, otamme kaksi satunnaista syöttövektoria 1 ∈ R512 ja 2 ∈ R512. TyyliinGAN [ , , ] mukaan käytämme sitten epälineaarisia kartoitusverkkoja geo ja tex kartoittamaan 1 ja 2 väliaikaisiin piilovektoreihin 1 = geo( 1) ja 2 = tex( 2), joita käytetään edelleen tuottamaan *tyylejä*, jotka ohjaavat 3D-muotojen ja tekstuurin luomista. Esittelemme muodollisesti geometria-generaattorin kohdassa 3.1.1 ja tekstuurigeneraattorin kohdassa 3.1.2. z z 34 35 33 f f z z w f z w f z 3.1.1 Geometrigeneraattori Suunnittelemme geometria-generaattorimme sisältämään DMTet [ ], hiljattain ehdotetun erottuvan pintojen esitysmuodon. DMTet esittää geometriaa merkkiin perustuvana etäisyyskenttänä (SDF), joka on määritelty muokkautuvalla tetraedrisella verkolla [ , ], josta pinta voidaan erottuvasti palauttaa marssivien tetraedrien avulla [ ]. Verkon muokkaaminen siirtämällä sen solmuja parantaa sen resoluution käyttöä. Ottamalla käyttöön DMTet-menetelmän pintojen poimintaan voimme tuottaa eksplisiittisiä verkkoja mielivaltaisella topologialla ja sukupuolella. Seuraavassa esitämme lyhyen yhteenvedon DMTetistä ja ohjaamme lukijaa alkuperäiseen paperiin lisätietoja varten. 60 22 24 17 Olkoot ( ) koko 3D-avaruus, jossa objekti sijaitsee, missä ovat tetraedriverkon solmut. Jokainen tetraedri ∈ määritellään neljällä solmulla { }, missä ∈ {1*, . . . , K*}, missä on tetraedrien kokonaismäärä ja ∈ ∈ R3. Sen 3D-koordinaattien lisäksi jokainen solmu sisältää SDF-arvon ∈ R ja solmun deformaation ∆ ∈ R3 sen alkuperäisestä kanonisesta koordinaatista. Tämä esitysmuoto mahdollistaa eksplisiittisen verkon palauttamisen erottuvan marssivien tetraedrien [ ] avulla, jossa SDF-arvot jatkuvassa avaruudessa lasketaan barysentrisellä interpolaatiolla niiden arvosta muokatuissa solmuissa ′ = + ∆ . VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik i v i si v i v i 60 si v v i v i Kartoitamme 1 ∈ R512 SDF-arvoihin ja deformaatioihin jokaisessa solmussa sarjan ehdollisten 3D-konvoluutio- ja täysin yhdistettyjen kerrosten kautta. Erityisesti käytämme ensin 3D-konvoluutio-kerroksia piirustusvolyymin luomiseksi, joka on ehdollistettu 1:llä. Sitten kysymme piirrosta kussakin solmussa ∈ käyttämällä trilineaarista interpolaatiota ja syötämme sen MLP-verkkoon, joka tuottaa SDF-arvon ja deformaation ∆ . Tapauksissa, joissa vaaditaan korkean resoluution mallinnusta (esim. moottoripyörä ohuilla rakenteilla pyörissä), käytämme lisäksi volyymin alijakoa [ ] mukaisesti. Verkkoarkkitehtuuri w v i w v i VT si v i 60 Saatuaan ja ∆ kaikille solmuille käytämme erottuvaa marssivien tetraedrien algoritmia eksplisiittisen verkon poimimiseksi. Marssivat tetraedrit määrittävät pinnan topologian kussakin tetraedrissä perustuen :n merkkeihin. Erityisesti verkon pinta poimitaan, kun sign( ) /= sign( ), missä osoittavat solmujen indeksit tetraedrin reunalla, ja kyseisen pinnan solmut määritetään lineaarisella interpolaatiolla as mi,j = v 0 i sj−v 0 j si sj−si . Huomaa, että yllä oleva yhtälö arvioidaan vain, kun si 6= sj , joten se on erottuva, ja gradientti mi,j:stä voidaan takaisinpropagoida SDF-arvoihin si ja deformaatioihin ∆vi . Tällä esitysmuodolla voidaan helposti luoda muotoja mielivaltaisella topologialla ennustamalla erilaisia -merkkejä. Erottuva verkon poiminta si v i si si sj i, j m i,j si 3.1.2 Tekstuurigeneraattori Tekstuurikartan luominen suoraan, joka on yhtenäinen luodun verkon kanssa, ei ole triviaalia, koska luodulla muodolla voi olla mielivaltainen sukupuoli ja topologia. Siksi parametrisoimme tekstuurin tekstuurikentäksi [ ]. 50 Erityisesti mallinnamme tekstuurikentän funktiolla , joka kartoittaa pintapisteen ∈ R3 sijainnin, ehdollistettuna 2:lla, RGB-väriin ∈ R3 kyseisessä sijainnissa. Koska tekstuurikenttä riippuu geometriasta, ehdollistamme tämän kartoituksen lisäksi geometriapiilovektorilla 1, siten että = ( *,* 1 ⊕ 2), missä ⊕ tarkoittaa ketjuttamista. ft p w c w c ft p w w Esitämme tekstuurikenttämme tri-tasojen esityksen avulla, joka on tehokas ja ilmeikäs 3D-objektien rekonstruoinnissa [ ] ja 3D-tietoisten kuvien luomisessa [ ]. Erityisesti noudatamme [ , ] ja käytämme ehdollista 2D-konvoluutioneuroverkkoa kartoittaaksemme piilokoodin 1 ⊕ 2 kolmeen akselisuuntaiseen ortogonaaliseen piirrostasoon, joiden koko on × × ( × 3), missä = 256 tarkoittaa tilaresoluutiota ja = 32 kanavien määrää. Verkkoarkkitehtuuri 55 8 8 35 w w N N C N C Piirrostasojen perusteella piirrosvektori f t ∈ R 32 pintapisteestä p saadaan as f t = P e ρ(πe(p)), missä πe(p) on pisteen p projektio piirrostasolle e ja ρ(·) tarkoittaa piirrosten bilineaarista interpolaatiota. Lisätty täysin yhdistetty kerros kartoittaa yhdistetyn piirrosvektorin f t RGB-väriksi c. Huomaa, että toisin kuin muissa 3D-tietoisissa kuvasynteesitöissä, jotka käyttävät myös neurokentän esitysmuotoa, meidän tarvitsee vain ottaa näytteitä tekstuurikentästä pintapisteiden sijainneista (tiheiden näytteiden sijaan säteen suunnassa). Tämä vähentää merkittävästi laskennallista monimutkaisuutta korkearesoluutioisten kuvien renderöinnissä ja takaa moninäkymäisesti yhtenäisten kuvien luomisen rakenteeltaan. 3.2 Erottuva renderöinti ja koulutus Jotta malliamme voidaan valvoa koulutuksen aikana, saamme inspiraatiota Nvdiffrec [ ] -menetelmästä, joka suorittaa moninäkymäisen 3D-objektien rekonstruoinnin käyttämällä erottuvaa renderöijää. Erityisesti renderöimme poimitun 3D-verkon ja tekstuurikentän 2D-kuviksi käyttämällä erottuvaa renderöijää [ ] ja valvomme verkkoamme 2D-diskriminaattorilla, joka yrittää erottaa kuvan todellisesta objektista tai luodusta objektista renderöidyn. 47 37 Oletamme, että käytetty kamerajakauma C kuvien hankkimiseksi aineistosta tunnetaan. Luodut muodot renderöimiseksi satunnaisesti otetaan kamera C:stä ja käytetään erittäin optimoitua erottuvaa rasterointia Nvdiffrast [ ] 3D-verkon renderöimiseksi 2D-siluetiksi sekä kuvaksi, jossa jokainen pikseli sisältää vastaavan 3D-pisteen koordinaatit verkkomallissa. Erottuva renderöinti c 37 Näitä koordinaatteja käytetään edelleen tekstuurikentän kyselyyn RGB-arvojen saamiseksi. Koska toimimme suoraan poimitun verkon kanssa, voimme renderöidä korkearesoluutioisia kuvia tehokkaasti, mikä mahdollistaa mallimme kouluttamisen jopa 1024 × 1024 kuvaresoluutioon. Koulutamme malliamme kilpailevalla tavoitteella. Käytämme StyleGAN [ ] diskriminaattoriarkkitehtuuria ja käytämme samaa ei-saturating GAN -tavoitetta R1-regularisoinnilla [ ]. Havaitsemme empiirisesti, että kahden erillisen diskriminaattorin, yhden RGB-kuville ja toisen silueteille, käyttäminen tuottaa parempia tuloksia kuin yhden molempia käsittelevän diskriminaattorin käyttö. Olkoon diskriminaattori, miss Diskriminaattori & Tavoite 34 42 Dx