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) Abstrakti Kun useat teollisuudenalat siirtyvät massiivisten 3D-virtuaalimaailmojen mallintamiseen, sisällöntuotantotyökalujen tarve, jotka skaalautuvat 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 suoraan kuluttaa, ja siten välittömästi käyttökelpoisia jatkosovelluksissa. Aiemmissa 3D-generatiivisen mallinnuksen töissä joko puuttuu geometrisia yksityiskohtia, ne rajoittuvat tuotettavaan verkkotopologiaan, eivät yleensä tue tekstuureja tai hyödyntä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 kspresiivisiä eksturoituja -verkkoja, joilla on monimutkainen topologia, rikkaat geometriset yksityiskohdat ja korkealaatuiset tekstuurit. Yhdistämme viimeaikaiset onnistumiset erottelevassa pintamallinnuksessa, erottelevassa renderöinnissä sekä 2D-generatiivisissa kilpailevissa verkoissa (GAN) kouluttaaksemme malliamme 2D-kuvakokoelmista. GET3D pystyy luomaan korkealaatuisia 3D-teksturoituja verkkoja, vaihdellen autoista, tuoleista, eläimistä, moottoripyöristä ja ihmishahmoista rakennuksiin, saavuttaen merkittäviä parannuksia aiempiin menetelmiin verrattuna. 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. Kuitenkin 3D-omaisuuserien manuaalinen luominen on erittäin aikaa vievää ja vaatii erityistä teknistä tietämystä sekä taiteellisia mallinnustaitoja. Yksi suurimmista haasteista on siis skaala – vaikka 3D-malleja löytyy 3D-markkinapaikoilta, kuten Turbosquid [ ] tai Sketchfab [ ], monien 3D-mallien luominen, sanotaan, pelin tai elokuvan populaamiseksi erinäköisillä hahmoilla, vie edelleen merkittävästi taiteilijan aikaa. 4 3 Sisällöntuotantoprosessin helpottamiseksi ja sen tekemiseksi saavutettavaksi erilaisille (aloitteleville) käyttäjille, 3D-generatiiviset verkot, jotka voivat tuottaa korkealaatuisia ja monimuotoisia 3D-omaisuuseriä, ovat viime aikoina tulleet aktiiviseksi tutkimusalueeksi [ , , , , , , , , , , ]. Jotta 3D-generatiiviset mallit olisivat käytännössä hyödyllisiä nykyisissä todellisissa sovelluksissa, niiden tulisi ihanteellisesti täyttää seuraavat vaatimukset: Niillä tulisi olla kapasiteetti luoda muotoja, joilla on yksityiskohtainen geometria ja mielivaltainen topologia, Tuloksen 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 valvontaan, 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) Aiemmat 3D-generatiivisen mallinnuksen työt ovat keskittyneet osajoukkoihin edellä mainituista vaatimuksista, mutta mikään menetelmä ei toistaiseksi täytä kaikkia niitä (Taulukko ). Esimerkiksi pistejoukkoja [ , 68, 75] luovat menetelmät eivät yleensä tuota tekstuureja ja ne on muunnettava verkoksi jälkikäsittelyssä. 1 5 Vokseleita luovat menetelmät usein puuttuvat geometrisia yksityiskohtia eivätkä tuota tekstuuria [ , , , ]. Neuroverkkokenttiin [ , ] perustuvat generatiiviset mallit keskittyvät geometrian poimimiseen, mutta jättävät huomiotta tekstuurin. Useimmat niistä vaativat myös eksplisiittistä 3D-valvontaa. Lopuksi menetelmät, jotka suoraan tuottavat teksturoituja 3D-verkkoja [ , ], vaativat yleensä ennalta määriteltyjä muotopohjia eivätkä pysty luomaan monimutkaista topologiaa tai muuttuvaa sukua olevia muotoja. 66 20 27 40 43 14 54 53 Viime aikoina neurovolyymirenderöinnin [ ] ja 2D-generatiivisten kilpailevien verkkojen (GAN) [ , , , , ] nopea edistys on johtanut 3D-tietoisten kuvien synteesin nousuun [ , , , , , ]. Tämä työ kuitenkin pyrkii syntetisoimaan moninäkymäisesti yhtenäisiä kuvia käyttämällä neurorenderöintiä synteesiprosessissa, eikä takaa, että merkityksellisiä 3D-muotoja voidaan luoda. Vaikka verkko voidaan mahdollisesti saada taustalla olevasta neurokenttäesityksestä käyttämällä martiointikuutioalgoritmia [ ], vastaavan tekstuurin poimiminen on ei-triviaalia. 45 34 35 33 29 52 7 57 8 49 51 25 39 Tässä työssä esittelemme uuden lähestymistavan, joka pyrkii täyttämään kaikki käytännössä hyödyllisen 3D-generatiivisen mallin vaatimukset. Erityisesti esittelemme GET3D:n, eneratiivisen mallin 3D-muodoille, joka tuottaa suoraan kspresiivisiä eksturoituja -verkkoja, joilla on korkea geometrinen ja tekstuurin yksityiskohta sekä mielivaltainen verkkotopologia. Lähestymistapamme ytimessä on generatiivinen prosessi, joka hyödyntää erottelevaa pinta-erotusmenetelmää [ ] ja erottelevaa renderöintitekniikkaa [ , ]. Ensimmäinen mahdollistaa teksturoitujen 3D-verkkojen suoran optimoinnin ja tuottamisen mielivaltaisella topologialla, kun taas jälkimmäinen sallii mallimme kouluttamisen 2D-kuvilla, hyödyntäen siten tehokkaita ja kypsiä 2D-kuvasynteesille kehitettyjä diskriminaattoreita. Koska mallimme luo suoraan verkkoja ja käyttää tehokasta (erottelevaa) grafiikkarenderöijää, voimme helposti skaalata malliamme kouluttaaksemme kuvia G E T 3D ekspresiivistä 60 47 37 jopa 1024 × 1024 resoluutioon, mikä mahdollistaa korkealaatuisten geometristen ja tekstuuriyksityiskohtien oppimisen. Osoitamme huippuluokan suorituskykyä ehdottomassa 3D-muotosynteesissä useissa monimutkaisen geometrian luokissa ShapeNetistä [ ], Turbosquidista [ ] ja Renderpeopleltä [ ], kuten tuolit, moottoripyörät, autot, ihmishahmot ja rakennukset. Ekspresiivisen verkkona esitysmuotonsa ansiosta GET3D on myös erittäin joustava ja voidaan helposti mukauttaa muihin tehtäviin, mukaan lukien: oppiminen hajotettujen materiaalien ja näkymäriippuvaisten valaistusefektien luomiseen edistyneen erottelevan renderöinnin [ ] avulla, ilman valvontaa, tekstiohjatun 3D-muotosynteesin käyttämällä CLIP [ ] upotusta. 9 4 2 (a) 12 (b) 56 2 Liittyvä Työ Tarkastelemme viimeaikaisia edistysaskelia 3D-generatiivisissa malleissa geometrialle ja ulkonäölle sekä 3D-tietoisten generatiivisten kuvien synteesissä. Viime vuosina 2D-generatiiviset mallit ovat saavuttaneet fotorealistisen laadun korkean resoluution kuvien synteesissä [ , , , , , , ]. Tämä edistys on inspiroinut myös 3D-sisällön luomisen tutkimusta. Varhaiset lähestymistavat pyrkivät suoraan laajentamaan 2D CNN -generaattoreita 3D-vokseliruudukoihin [ , , , , ], mutta 3D-konvoluutioiden korkea muistijalanjälki ja laskennallinen monimutkaisuus haittaavat korkean resoluution generointiprosessia. Vaihtoehtoisesti muut työt ovat tutkineet pistejoukko [ , , , ], implisiittisiä [ , ] tai oktaalirakenne-[ ] esitysmuotoja. Nämä työt keskittyvät kuitenkin pääasiassa geometrian luomiseen ja jättävät ulkonäön huomiotta. Niiden tulosesitysmuodot on myös käsiteltävä jälkikäteen, jotta ne olisivat yhteensopivia standardien grafiikkamoottoreiden kanssa. 3D-generatiiviset mallit 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Työmme kannalta samankaltaisempia ovat Textured3DGAN [ , ] ja DIBR [ ], jotka luovat teksturoituja 3D-verkkoja, mutta ne muotoilevat generoinnin malliverkon muodonmuutoksena, mikä estää niitä luomasta monimutkaista topologiaa tai erisuuruisia sukupuolet omaavia muotoja, mitä meidän menetelmämme pystyy tekemään. PolyGen [ ] ja SurfGen [ ] voivat luoda verkkoja mielivaltaisella topologialla, mutta eivät syntetisoikaan tekstuureja. 54 53 11 48 41 Neurovolyymirenderöinnin [ ] ja implisiittisten esitysmuotojen [ , ] menestyksen inspiroimana viimeaikainen työ on alkanut käsitellä 3D-tietoisten kuvien synteesiongelmaa [ , , , , , , , , , ]. Neurovolyymirenderöintiverkot ovat kuitenkin tyypillisesti hitaita kyselyyn, mikä johtaa pitkiin koulutusaikoihin [ , ] ja rajoitetun resoluution kuvien luomiseen. GIRAFFE [ ] ja StyleNerf [ ] parantavat koulutus- ja renderöintitehokkuutta suorittamalla neurorenderöinnin matalammalla resoluutiolla ja skaalaamalla sitten tulokset 2D CNN:llä. Suorituskyvyn kasvu tapahtuu kuitenkin pienemmän moninäkymäisen yhtenäisyyden kustannuksella. Kahden diskriminaattorin avulla EG3D [ ] voi osittain lieventää tätä ongelmaa. Silti teksturoituja pintoja on ei-triviaalia poimia menetelmistä, jotka perustuvat neurorenderöintiin. Sitä vastoin GET3D tuottaa suoraan teksturoituja 3D-verkkoja, joita voidaan helposti käyttää standardeissa grafiikkamoottoreissa. 3D-tietoinen generatiivisten kuvien synteesi 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 syntetisoimiseksi. Generointiprosessimme on jaettu kahteen osaan: geometriahaara, joka erottelevasti tuottaa pintaverkon mielivaltaisella topologialla, ja tekstuurahaara, joka luo tekstuurikentän, josta voidaan kysyä pinta-pisteistä värien saamiseksi. Jälkimmäinen voidaan laajentaa muihin pintaominaisuuksiin, kuten esimerkiksi materiaaleihin (kohta ). Koulutuksen aikana käytetään tehokasta erottelevaa rasterointia tuloksena olevan teksturoituval verkon renderöimiseksi 2D-korkearesoluutioisiksi kuviksi. Koko prosessi on erotteleva, mikä mahdollistaa kilpailevan koulutuksen kuvista (maskeilla, jotka osoittavat kiinnostavaa kohdetta) levittämällä gradientit 2D-diskriminaattorista molempiin generaattorihaaroihin. Mallimme on kuvattu kuviossa . Seuraavaksi esittelemme ensin 3D-generaattorimme kohdassa , ennen kuin jatkamme erottelevan renderöinnin ja häviöfunktioiden pariin kohdassa . 4.3.1 2 3.1 3.2 3.1 3D-teksturoitujen verkkojen generatiivinen malli Pyrimme oppimaan 3D-generaattorin = ( ), joka kuvaa satunnaisen otoksen Gaussin jakaumasta M, E G z ∈ N (0*,* ) verkoksi ja tekstuuriksi . z I M E Koska samalla geometrialta voi olla erilaisia tekstuureja ja samaa tekstuuria voidaan soveltaa eri geometrioihin, otamme satunnaisesti kaksi syötevektoria 1 ∈ R512 ja 2 ∈ R512. Tyylin mukaanGAN [ , , ], käytämme sitten epälineaarisia kartoitusverkkoja geo ja tex kuvataksemme 1 ja 2 välisiksi piileviksi vektoreiksi 1 = geo( 1) ja 2 = tex( 2), joita käytetään edelleen tuottamaan , jotka ohjaavat 3D-muotojen ja tekstuurien generointia. z z 34 35 33 f f z z w f z w f z tyylejä 3.1.1 Geometriageneraattori Suunnittelemme geometriageneraattorimme sisältämään DMTetin [ ], äskettäin ehdotetun erottelevan pintaesitysmuodon. DMTet esittää geometriaa etäisyyskenttänä (SDF), joka on määritelty muovautuvalla tetrahedraalisella ruudukolla [ , ], josta pinta voidaan erottelevasti palauttaa martiotetraedrien [ ] avulla. Ruudukon muokkaaminen siirtämällä sen kärkiä parantaa sen resoluution käyttöä. Hyväksymällä DMTet pintaerotukseen voimme tuottaa ekspresiivisiä verkkoja mielivaltaisella topologialla ja sukulaisuudella. Seuraavaksi esitämme lyhyen yhteenvedon DMTetistä ja ohjaamme lukijan alkuperäiseen artikkeliin lisätietoja varten. 60 22 24 17 Oletetaan, että ( ) kuvaa koko 3D-avaruuden, jossa kohde sijaitsee, missä ovat tetrahedraalisen ruudukon kärjet. Jokainen tetraedri ∈ määritellään neljällä kärjellä { }, missä ∈ {1*, . . . , K*}, K on tetraedrien kokonaismäärä, ja ∈ ∈ R3. Sen lisäksi, että 3D-koordinaatit, jokainen kärki sisältää SDF-arvon ∈ R ja muodonmuutoksen ∆ ∈ R3 kärjen alkuperäisestä kanonisesta koordinaatista. Tämä esitysmuoto mahdollistaa ekspresiivisen verkon palauttamisen erottelevan martiotetraedrien [ ] avulla, jossa jatkuvan avaruuden SDF-arvot lasketaan interpoloimalla niiden arvot muokatussa kärjessä ′ = + ∆ barysentrisesti. VT , T VT T Tk T v ak , v bk , v ck , v dk k v ik VT , v ik i v i si v i 60 si v v i v i Kuvaamme 1 ∈ R512:n SDF-arvoiksi ja muodonmuutoksiksi kussakin kärjessä useiden ehdollisten 3D-konvoluutio- ja täysin yhdistettyjen kerrosten avulla. Erityisesti käytämme ensin 3D-konvoluutioita luodaksemme piilevällä tilavuudella, joka on ehdollistettu 1:llä. Kysymme sitten piilevän jokaisesta kärjestä ∈ käyttämällä trillineaarista interpolaatiota ja syötämme sen MLP:ihin, jotka tuottavat SDF-arvon ja muodonmuutoksen ∆ . Tapauksissa, joissa vaaditaan korkean resoluution mallinnusta (esim. moottoripyörät ohuilla rungoilla), käytämme lisäksi tilavuuden alijakoa [ ] mukaisesti. Verkkoarkkitehtuuri w v i w v i VT si v i 60 Kun ja ∆ on saatu kaikille kärjille, käytämme erottelevaa martiotetraedrialgoritmia ekspresiivisen verkon poimimiseksi. Martiotetraedrit määrittävät verkon topologian kunkin tetraedrin sisällä perustuen merkkeihin. Erityisesti verkon pinta poimitaan, kun sign( ) /= sign( ), missä osoittavat kärkiindeksejä tetraedrin reunassa, ja verkon kärjet määritetään lineaarisella interpolaatiolla 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 erotteleva, ja gradientti mi,j:stä voidaan takaisin propagoida SDF-arvoihin si ja muodonmuutoksiin ∆vi . Tällä esitysmuodolla muodot, joilla on mielivaltainen topologia, voidaan helposti luoda ennustamalla erilaisia merkkejä. Erottelevat verkkon poiminta si v i si si sj i, j m i,j si 3.1.2 Tekstuurigeneraattori Tuloksena olevan verkon kanssa yhtenäisen tekstuurikartan suora luominen ei ole triviaalia, koska luotu muoto voi olla mielivaltaista sukua ja topologiaa. Siksi parametrisoimme tekstuurin tekstuurikenttänä [ ]. 50 Erityisesti mallinnamme tekstuurikenttää funktiolla , joka kuvaa pinta-pisteen 3D-sijainnin ∈ R3, ehdollistettuna 2:lla, RGB-väriksi ∈ R3 kyseisessä sijainnissa. Koska tekstuurikenttä riippuu geometriasta, ehdollistamme tämän kuvauksen lisäksi geometriapiilevällä koodilla 1, siten että = ( *,* 1 ⊕ 2), missä ⊕ tarkoittaa yhdistämistä. ft p w c w c ft p w w Esitämme tekstuurikenttämme tri-plaaniesityksen avulla, joka on tehokas ja ilmaisuvoimainen 3D-objektien rekonstruoinnissa [ ] ja 3D-tietoisten kuvien luomisessa [ ]. Erityisesti noudatamme [ , ] ja käytämme ehdollista 2D-konvoluutioneuroverkkoa muuttaaksemme piilevän koodin 1 ⊕ 2 kolmeksi akselisuuntaiseksi ortogonaaliseksi piileväksi tasoksi, joiden koko on × × ( × 3), missä = 256 edustaa spatiaalista resoluutiota ja = 32 kanavien määrää. Verkkoarkkitehtuuri 55 8 8 35 w w N N C N C Piilevistä tasoista, pinta-pisteen f t ∈ R 32 piilevä vektori voidaan palauttaa muodossa f t = P e ρ(πe(p)), missä πe(p) on pisteen p projektio piilevään tasoon e ja ρ(·) tarkoittaa piilevien bilineaarista interpolaatiota. Lisäkerrosta käytetään sitten kerätyn piilevän vektori f t RGB-väriksi c muuntamiseen. Huomaa, että toisin kuin muissa 3D-tietoisten kuvien synteesin töissä, jotka myös käyttävät neurokenttäesitystä, meidän tarvitsee vain näytteen ottaa tekstuurikentästä pinta-pisteiden sijainneissa (verrattuna tiheisiin näytteisiin säteen varrella). Tämä vähentää merkittävästi laskennallista monimutkaisuutta korkean resoluution kuvien renderöinnissä ja takaa moninäkymäisesti yhtenäisten kuvien luomisen rakenteeltaan. 3.2 Erotteleva renderöinti ja koulutus Jotta malliamme voitaisiin valvoa koulutuksen aikana, otamme inspiraatiota Nvdiffrec [ ] -menetelmästä, joka suorittaa moninäkymäisen 3D-objektin rekonstruktion käyttämällä erottelevaa renderöijää. Erityisesti renderöimme poimitun 3D-verkon ja tekstuurikentän 2D-kuviksi käyttämällä erottelevaa renderöijää [ ] ja valvomme verkkoamme 2D-diskriminaattorilla, joka yrittää erottaa kuvan todellisesta objektista tai generoidusta objektista renderöidyistä kuvista. 47 37 Oletamme, että kameran jakauma C, jota käytettiin tietokannan kuvien hankkimiseen, tunnetaan. Generoitujen muotojen renderöimiseksi otamme satunnaisesti kameran C:stä ja käytämme erittäin optimoitua erottelevaa rasterointia Nvdiffrast [ ] renderöimään 3D-verkon 2D-siluetiksi sekä kuvaksi, jossa jokainen pikseli sisältää vastaavan 3D-pisteen koordinaatit verkossa. Näitä koordinaatteja käytetään edelleen tekstuurikentän kysymiseen RGB-arvojen saamiseksi. Koska toimimme suoraan poimitun verkon kanssa, voimme renderöidä korkean resoluution kuvia tehokkaasti, mikä mahdollistaa mallimme kouluttamisen jopa 1024 × 1024 resoluutiolla. Erotteleva renderöinti c 37 Koulutamme malliamme kilpailevalla tavoitteella. Otamme käyttöön StyleGAN [ ] diskriminaattoriarkkitehtuurin ja käytämme samaa ei-saturanttia GAN-tavoitetta R1-regularisaatiolla [ ]. Olemme empiirisesti havainneet, että kahden erillisen diskriminaattorin, yhden RGB-kuville ja toisen silueteille, käyttäminen tuottaa parempia tuloksia kuin yhden diskriminaattorin, joka toimii molemmilla. Olkoon diskriminaattori, missä voi olla j Diskriminaattori & Tavoite 34 42 Dx x