Autors: 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) Abstract Kuten 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 suoraan kuluttaa ja jotka ovat siten välittömästi käyttökelpoisia jatkossovelluksissa. Aiemmissa 3D-generatiivisen mallinnuksen töissä joko puuttuu geometrisia yksityiskohtia, ne rajoittuvat tuotettavan verkon topologiaan, eivät tyypillisesti 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, joilla on monimutkainen topologia, rikkaat geometriset yksityiskohdat ja korkealaatuiset tekstuurit. Yhdistämme viimeaikaisen menestyksen differentioituvassa pintamallinnuksessa, differentioituvassa 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 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 useille teollisuudenaloille, mukaan lukien peliteollisuus, robotiikka, arkkitehtuuri ja sosiaaliset alustat. 3D-omaisuuden manuaalinen luominen on kuitenkin 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, esimerkiksi pelin tai elokuvan täyttämiseksi erilaisilta näyttävällä hahmoporukalla, vie edelleen merkittävästi taiteilijan aikaa. 4 3 Sisällöntuotantoprosessin helpottamiseksi ja sen saattamiseksi useiden (aloittelevien) käyttäjien ulottuville, korkealaatuisia ja monimuotoisia 3D-omaisuuksia tuottavat generatiiviset 3D-verkot ovat viime aikoina nousseet aktiiviseksi tutkimusalueeksi [ , , , , , , , , , , ]. Jotta 3D-generatiiviset mallit olisivat käytännöllisesti hyödyllisiä nykyisissä todellisen maailman sovelluksissa, niiden tulisi ihanteellisesti täyttää seuraavat vaatimukset: Niillä tulisi olla kyky luoda muotoja, joilla on yksityiskohtainen geometria ja mielivaltainen topologia, Tuloksen tulisi olla teksturoitu verkko, joka on ensisijainen esitysmuoto, jota tavalliset grafiikkaohjelmistopaketit, kuten Blender [ ] ja Maya [ ], käyttävät, ja Meidän tulisi pystyä hyödyntämään 2D-kuvia ohjauksena, koska niitä on laajalti saatavilla enemmän kuin eksplisiittisiä 3D-muotoja. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Aiempi työ 3D-generatiivisessa mallinnuksessa on keskittynyt yllä olevien vaatimusten osajoukkoihin, mutta mikään menetelmä ei tähän mennessä täytä niitä kaikkia (Taulukko ). Esimerkiksi menetelmät, jotka luovat 3D-pistepilviä [ , 68, 75], eivät tyypillisesti tuota tekstuureja ja ne on muunnettava verkoksi jälkikäsittelyssä. 1 5 Vokselia luovat menetelmät usein puuttuvat geometriset yksityiskohdat eivätkä tuota tekstuureja [ , , , ]. Neurokenttiin perustuvat generatiiviset mallit [ , ] keskittyvät geometrian uuttamiseen, mutta jättävät tekstuurin huomiotta. Useimmat niistä vaativat myös eksplisiittistä 3D-ohjausta. Lopuksi menetelmät, jotka suoraan tuottavat teksturoituja 3D-verkkoja [ , ], vaativat tyypillisesti ennalta määritettyjä muotopohjia eivätkä pysty luomaan monimutkaista topologiaa tai muuttuvaa sukua olevia muotoja. 66 20 27 40 43 14 54 53 Viimeaikainen nopea kehitys neurotilavuusrenderöinnissä [ ] ja 2D-generatiivisissa kilpailevissa verkoissa (GAN) [ , , , , ] on johtanut 3D-tietoisen kuvasynteesin [ , , , , , ] nousuun. Tämä työ kuitenkin pyrkii syntetisoimaan moninäkymiä yhtenäisiä kuvia käyttämällä neurorenderöintiä synteesiprosessissa, eikä takaa, että mielekkäitä 3D-muotoja voidaan luoda. Vaikka verkko voitaisiin mahdollisesti saada alla olevasta neurokenttäesityksestä käyttämällä marssivaa kuutioalgoritmia [ ], vastaavan tekstuurin uuttaminen 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öllisesti hyödyllisen 3D-generatiivisen mallin vaatimukset. Erityisesti esittelemme GET3D:n, 3D-muotojen eneratiivisen mallin, joka tuottaa suoraan ksplisiittisiä eksturoituja -verkkoja, joilla on korkea geometrinen ja tekstuuriyksityiskohta sekä mielivaltainen verkon topologia. Lähestymistapamme ytimessä on generointiprosessi, joka hyödyntää differentioituvaa *eksplisiittistä* pintauuttomenetelmää [ ] ja differentioituvaa renderöintitekniikkaa [ , ]. Ensin mainittu mahdollistaa teksturoitujen 3D-verkkojen suoran optimoinnin ja tuottamisen mielivaltaisella topologialla, kun taas jälkimmäinen mahdollistaa mallimme kouluttamisen 2D-kuvilla, hyödyntäen siten tehokkaita ja kypsiä 2D-kuvasynteesiin kehitettyjä diskriminaattoreita. Koska mallimme luo suoraan verkkoja ja käyttää tehokasta (differentioituvaa) grafiikkarenderöijää, voimme helposti skaalata mallimme koulutusta korkearesoluutioisella kuvalla, jopa 1024 × 1024, mikä mahdollistaa korkealaatuisten geometristen ja tekstuuriyksityiskohtien oppimisen. G E T 3D 60 47 37 Demonstroimme huippuluokan suorituskykyä ehdottomaan 3D-muotosynteesiin useissa ShapeNetin [ ], Turbosquidin [ ] ja Renderpeople [ ] monimutkaisen geometrian kategorioissa, kuten autot, tuolit, moottoripyörät, ihmishahmot ja rakennukset. GET3D on myös erittäin joustava, koska se tuottaa eksplisiittisiä verkkoja, ja sitä voidaan helposti soveltaa muihin tehtäviin, mukaan lukien: materiaalien ja katselukulmasta riippuvien valaistusefektien luomisen oppiminen edistyneellä differentioituvalla renderöinnillä [ ], ilman ohjausta, tekstiohjattu 3D-muotosynteesi käyttämällä CLIP [ ] upotusta. 9 4 2 (a) 12 (b) 56 2 Liittyvä Työ Tarkastelemme viimeaikaisia edistysaskeleita 3D-generatiivisissa malleissa geometrialle ja ulkonäölle sekä 3D-tietoisessa generatiivisessa kuvasynteesissä. Viime vuosina 2D-generatiiviset mallit ovat saavuttaneet fotorealistisen laadun korkean resoluution kuvasynteesissä [ , , , , , , ]. Tämä edistys on myös inspiroinut tutkimusta 3D-sisällön luomisessa. Varhaiset lähestymistavat pyrkivät laajentamaan 2D CNN -generaattoreita suoraan 3D-vokseliruudukoille [ , , , , ], mutta 3D-konvoluutioiden suuri muistijalanjälki ja laskennallinen monimutkaisuus haittaavat korkean resoluution generointiprosessia. Vaihtoehtoisesti muut työt ovat tutkineet pistepilvi-[ , , , ], implisiittisiä [ , ] tai oktaalipuita [ ] esitysmuotoja. Nämä työt kuitenkin keskittyvät pääasiassa geometrian luomiseen ja jättävät ulkonäön huomiotta. Niiden tulosesitysmuodot vaativat myös jälkikäsittelyä, jotta ne olisivat yhteensopivia tavallisten 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öhömme samankaltaisemmat Textured3DGAN [ , ] ja DIBR [ ] luovat teksturoituja 3D-verkkoja, mutta ne muotoilevat luonnin pohjana olevan verkon muokkaamisena, mikä estää niitä luomasta monimutkaista topologiaa tai muuttuvaa sukua olevia muotoja, joita meidän menetelmämme pystyy tekemään. PolyGen [ ] ja SurfGen [ ] pystyvät tuottamaan mielivaltaisen topologian verkkoja, mutta eivät synteesiä tekstuureja. 54 53 11 48 41 Neurotilavuusrenderöinnin [ ] ja implisiittisten esitysmuotojen [ , ] menestyksen inspiroimana viimeaikainen työ on alkanut käsitellä 3D-tietoisen kuvasynteesin [ , , , , , , , , , ] ongelmaa. Neurotilavuusrenderö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öintiä matalammalla resoluutiolla ja sitten skaalaamalla tuloksia 2D CNN:llä. Suorituskyvyn parannus tulee kuitenkin moninäkymäyhtenäisyyden heikkenemisen kustannuksella. Kaksinkertaisen diskriminaattorin avulla EG3D [ ] voi osittain lieventää tätä ongelmaa. Siitä huolimatta teksturoitujen pintojen uuttaminen neurorenderöintiin perustuvista menetelmistä on ei-triviaalia. Sen sijaan GET3D tuottaa suoraan teksturoituja 3D-verkkoja, joita voidaan helposti käyttää tavallisissa grafiikkamoottoreissa. 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 synteesille. Generointiprosessimme on jaettu kahteen osaan: geometriaosa, joka differentioituvasti tuottaa mielivaltaisen topologian verkkoverkon, ja teksturiosa, joka tuottaa tekstuurikentän, jota voidaan kysellä pintapisteissä värien tuottamiseksi. Jälkimmäinen voidaan laajentaa muihin pintausominaisuuksiin, kuten esimerkiksi materiaaleihin (Kohta ). Koulutuksen aikana tehokasta differentioituvaa rasterointia käytetään tuottamaan renderöity teksturoitu verkko 2D-korkearesoluutioisiksi kuviksi. Koko prosessi on differentioituva, mikä mahdollistaa kilpailevan koulutuksen kuvista (naamarit, jotka osoittavat kiinnostavan objektin) välittämällä gradientit 2D-diskriminaattorista molempiin generaattoriosiin. Mallimme on kuvattu kuvassa . Seuraavaksi esittelemme ensin 3D-generaattorimme kohdassa , ennen kuin jatkamme differentioituvalla renderöinnillä ja häviöfunktioilla kohdassa . 4.3.1 2 3.1 3.2 3.1 3D-teksturoitujen verkkojen generatiivinen malli Pyrimme oppimaan 3D-generaattorin = ( ), joka kuvaa Gaussin jakaumasta otetun otoksen M, E G z ∈ N (0*,* ) verkkoon , jolla on tekstuuri . z I M E Koska samalla geometrialla voi olla erilaisia tekstuureja, ja samaa tekstuuria voidaan soveltaa eri geometrioihin, otamme kaksi satunnaista syöttövektoria 1 ∈ R512 ja 2 ∈ R512. Tyyliin GAN [ , , ] perustuen käytämme sitten epälineaarisia kartoitusverkkoja geo ja tex kartoittamaan 1 ja 2 väliaikaisiin piilovetoreihin 1 = geo( 1) ja 2 = tex( 2), joita käytetään edelleen tuottamaan *tyylejä*, jotka ohjaavat 3D-muotojen ja tekstuurien luomista. Esittelemme muodollisesti geometrian generaattorin kohdassa ja tekstuurigeneraattorin kohdassa . z z 34 35 33 f f z z w f z w f z 3.1.1 3.1.2 3.1.1 Geometria-generaattori Suunnittelemme geometria-generaattorimme ottamaan käyttöön DMTet [ ], äskettäin esitetyn differentioituvan pintaesitysmuodon. DMTet esittää geometriaa merkittynä etäisyyskenttänä (SDF), joka on määritelty muokattavalla tetraedriverkolla [ , ], josta pinta voidaan differentioituvasti palauttaa marssivien tetraedrien avulla [ ]. Verkon muokkaaminen sen solmupisteitä siirtämällä parantaa sen resoluution käyttöä. Ottamalla DMTetin pintauuttamiseen käyttöön voimme tuottaa eksplisiittisiä verkkoja mielivaltaisella topologialla ja sukukunnalla. Seuraavaksi annamme lyhyen yhteenvedon DMTetistä ja viittaamme lukijan alkuperäiseen artikkeliin lisätietojen saamiseksi. 60 22 24 17 Olkoon ( ) täysi 3D-avaruus, jossa objekti sijaitsee, missä ovat solmupisteet tetraedriverkossa . Jokainen tetraedri ∈ määritellään neljällä solmupisteellä { }, missä ∈ {1*, . . . , K*}, missä on tetraedrien kokonaismäärä ja ∈ ∈ R3. Sen lisäksi, että jokainen solmupiste sisältää 3D-koordinaattinsa, se sisältää SDF-arvon ∈ R ja solmupisteen muodon ∆ ∈ R3 sen alkuperäisestä kanonisesta koordinaatista. Tämä esitysmuoto mahdollistaa eksplisiittisen verkon palauttamisen differentioituvien marssivien tetraedrien avulla [ ], missä jatkuvan tilan SDF-arvot lasketaan barysentrisellä interpoloinnilla sen arvosta muokatuissa solmupisteissä ′ = + ∆ . 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 Kuvaamme 1 ∈ R512:n SDF-arvoiksi ja muunnoksiksi kussakin solmupisteessä useiden ehdollisten 3D-konvoluutio- ja täysin kytkettyjen kerrosten avulla. Erityisesti käytämme ensin 3D-konvoluutiokerroksia luodaksemme piilokoodiin 1 ehdollistetun piilovuon. Kysymme sitten piilon kustakin solmupisteestä ∈ käyttämällä trilineaarista interpolointia ja syötämme sen MLPeihin, jotka tuottavat SDF-arvon ja muunnoksen ∆ . Tapauksissa, joissa tarvitaan korkean resoluution mallinnusta (esim. moottoripyörä ohuilla rakenteilla renkaissa), käytämme edelleen tilavuuden alijakoa [ ] mukaisesti. Verkkoarkkitehtuuri w v i w v i VT si v i 60 Kun ja ∆ on saatu kaikille solmupisteille, käytämme differentioituvaa marssivien tetraedrien algoritmia eksplisiittisen verkon uuttamiseksi. Marssivat tetraedrit määrittävät pinnan topologian jokaisen tetraedrin sisällä perustuen :n merkkeihin. Erityisesti verkon pinta uutetaan, kun sign( ) /= sign( ), missä tarkoittaa solmupisteiden indeksejä tetraedrin reunalla, ja kyseisen pinnan solmupisteet määräytyvät 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 differentioituva ja gradientti mi,j:stä voidaan takaisinpropagoida SDF-arvoihin si ja muunnoksiin ∆vi . Tällä esitysmuodolla voidaan helposti luoda muotoja mielivaltaisella topologialla ennustamalla erilaisia -merkkejä. Differentioituva verkon uuttaminen si v i si si sj i, j m i,j si 3.1.2 Tekstuuri-generaattori Tekstuurikartan luominen, joka on johdonmukainen tuotetun verkon kanssa, ei ole triviaalia, koska luotu muoto voi olla mielivaltaista sukua ja topologiaa. Siksi parametrisimme tekstuurin tekstuurikenttänä [ ]. 50 Erityisesti mallinnamme tekstuurikentän funktiolla , joka kuvaa pintapisteen 3D-sijainnin ∈ R3, ehdollistettuna 2:lle, RGB-väriin ∈ R3 kyseisessä sijainnissa. Koska tekstuurikenttä riippuu geometriasta, ehdollistamme tämän kuvauksen lisäksi geometria-piilokoodiin 1, siten että = ( *,* 1 ⊕ 2), missä ⊕ tarkoittaa yhdistämistä. ft p w c w c ft p w w Esitämme tekstuurikenttämme tri-plane-esityksen avulla, joka on tehokas ja ilmaisuvoimainen 3D-objektien rekonstruoinnissa [ ] ja 3D-tietoisten kuvien luomisessa [ ]. Erityisesti noudatamme [ , ] ja käytämme ehdollista 2D-konvoluutioverkkoa kartoittamaan piilokoodi 1 ⊕ 2 kolmeen akselisuuntaiseen ortogonaaliseen piilotasoon, joiden koko on × × ( × 3), missä = 256 on spatiaalinen resoluutio ja = 32 kanavien määrä. Verkkoarkkitehtuuri 55 8 8 35 w w N N C N C Ottaen huomioon piilotasot, pintapisteen piilovektori f t ∈ R 32 saadaan interpolaationa πe(p)) avulla, missä πe(p) on pisteen projektio piilotasolle e ja ρ(·) tarkoittaa piilojen bilineaarista interpolaatiota. Lisätty täysin kytketty kerros yhdistää aggregoidun piilovektorin f t RGB-väriin c. Huomaa, että toisin kuin muissa 3D-tietoisen kuvasynteesin töissä, jotka käyttävät myös neurokenttäesitystä, meidän tarvitsee vain ottaa näytteitä tekstuurikentästä pintapisteiden sijainneista (tiheiden otosten sijaan säteen varrella). Tämä vähentää merkittävästi laskennallista monimutkaisuutta korkearesoluutioisten kuvien renderöinnissä ja takaa moninäkymäisten kuvien luomisen rakenteeltaan. p p 3.2 Differentioituva renderöinti ja koulutus Jotta mallimme voisi saada ohjausta koulutuksen aikana, saamme inspiraatiota Nvdiffrecistä [ ], joka suorittaa moninäkymäisen 3D-objektin rekonstruktion käyttämällä differentioituvaa renderöijää. Erityisesti renderöimme uutetun 3D-verkon ja tekstuurikentän 2D-kuviksi käyttämällä differentioituvaa renderöijää [ ], ja ohjaamme verkkoamme 2D-diskriminaattorilla, joka yrittää erottaa kuvan todellisesta objektista tai generoidusta objektista renderöidyn kuvan. 47 37 Oletamme, että kamerajakauma C, jota käytettiin datasetin kuvien hankintaan, tunnetaan. Luodun muotojen renderöimiseksi otamme satunnaisesti kameran jakaumasta C ja käytämme erittäin optimoitua differentioituvaa rasterointia Nvdiffrast [ ] renderöimään 3D-verkon 2D-siluetiksi sekä kuvan, jossa jokainen pikseli sisältää vastaavan 3D-pisteen koordinaatit verkon pinnalla. Näitä koordinaatteja käytetään edelleen tekstuurikentän kyselyyn RGB-arvojen saamiseksi. Koska toimimme suoraan uutetun verkon kanssa, voimme renderöidä korkearesoluutioisia kuvia tehokkaasti, mikä mahdollistaa mallimme kouluttamisen korkeintaan 1024×1024 resoluutioisilla kuvilla. Differentioituva renderöinti c 37 Koulutamme malliamme kilpailevalla tavoitteella. Käytämme StyleGANin [ ] diskriminaattoriarkkitehtuuria ja käytämme samaa ei-saturatiivista GAN-tavoitetta R1-regularisoinnilla [ ]. Havaitsimme empiirisesti, että kahden erillisen diskriminaattorin, yhden RGB-ku Diskriminaattori & Tavoite 34 42