```html Szerzők: 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) Összefoglalás Mivel számos iparág a hatalmas 3D virtuális világok modellezése felé halad, nyilvánvalóvá válik az olyan tartalomalkotó eszközök iránti igény, amelyek képesek skálázódni a 3D tartalom mennyisége, minősége és sokfélesége szempontjából. Munkánkban olyan performáns 3D generatív modellek képzésére törekszünk, amelyek textúrázott hálókat szintetizálnak, amelyeket a 3D renderelő motorok közvetlenül fogyaszthatnak, így azonnal használhatók a downstream alkalmazásokban. A 3D generatív modellezésre irányuló korábbi munkák vagy hiányoznak a geometriai részletekből, vagy korlátozottak az általuk előállítható háló topológiájában, általában nem támogatják a textúrákat, vagy neurális renderelőket használnak a szintézis folyamatában, ami megnehezíti a használatukat a közös 3D szoftverekben. Ebben a munkában bemutatjuk a GET3D-t, egy eneratív xplicit extured hálókat generáló modellt, amely komplex topológiával, gazdag geometriai részletekkel és nagy felbontású textúrákkal rendelkezik. A differenciálható felületi modellezés, a differenciálható renderelés, valamint a 2D Generatív Adversarial Hálózatok (GAN-ok) terén elért legújabb sikereket felhasználva modellezhetjük a tanítást 2D képgyűjteményekből. A GET3D képes kiváló minőségű, textúrázott 3D hálókat generálni, az autók, székek, állatok, motorok és emberi karakterek, egészen az épületekig, jelentős javulást elérve a korábbi módszerekhez képest. Projektoldalunk: G E T 3D https://nv-tlabs.github.io/GET3D 1 Bevezetés A sokféle, kiváló minőségű 3D tartalom egyre fontosabbá válik számos iparág számára, beleértve a játékokat, a robotikát, az építészetet és a közösségi platformokat. Azonban a 3D eszközök kézi létrehozása nagyon időigényes, és speciális technikai ismereteket, valamint művészi modellezési készségeket igényel. Az egyik fő kihívás tehát a skála – míg 3D modellek találhatók 3D piactereken, mint például a Turbosquid [ ] vagy a Sketchfab [ ], sok 3D modell létrehozása, mondjuk, egy játék vagy egy film feltöltéséhez sok különböző megjelenésű karakterrel, még mindig jelentős művészi időt vesz igénybe. 4 3 A tartalomalkotási folyamat megkönnyítése és a felhasználók széles köre (beleértve a kezdőket) számára elérhetővé tétele érdekében a kiváló minőségű és sokféle 3D eszközt előállítani képes generatív 3D hálózatok nemrégiben az istražódás aktív területévé váltak [ , , , , , , , , , , ]. Azonban a jelenlegi valós alkalmazásokhoz gyakorlatilag hasznos 3D generatív modelleknek ideálisan meg kell felelniük a következő követelményeknek: Képeseknek kell lenniük részletes geometriával és tetszőleges topológiával rendelkező alakzatok generálására, A kimenetnek textúrázott hálónak kell lennie, amely a szabványos grafikus szoftvercsomagok, mint például a Blender [ ] és a Maya [ ] által használt elsődleges reprezentáció, és Képesnek kell lennünk 2D képek használatára a felügyelethez, mivel azok szélesebb körben elérhetők, mint a explicitt 3D alakzatok. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) A 3D generatív modellezéssel foglalkozó korábbi munkák a fenti követelmények részhalmazaira összpontosítottak, de eddig egyetlen módszer sem felel meg mindegyiknek (1. táblázat [ ]). Például azok a módszerek, amelyek 3D pontfelhőket generálnak [ , 68, 75], általában nem generálnak textúrákat, és utófeldolgozás során át kell alakítani őket hálóvá. 1 5 A vokselgeneráló módszerek gyakran hiányoznak a geometriai részletekből, és nem generálnak textúrát [ , , , ]. A neurális mezőkön alapuló generatív modellek [ , ] a geometriai kinyerésre összpontosítanak, de figyelmen kívül hagyják a textúrát. Ezek többsége explicitt 3D felügyeletet is igényel. Végül, azok a módszerek, amelyek közvetlenül textúrázott 3D hálókat adnak ki [ , ], általában előre meghatározott alakzatsablonokat igényelnek, és nem képesek komplex topológiájú vagy változó genusú alakzatokat generálni. 66 20 27 40 43 14 54 53 A közelmúltban a neurális térfogat renderelés [ ] és a 2D Generative Adversarial Hálózatok (GAN-ok) [ , , , , ] terén elért gyors fejlődés vezetett a 3D-tudatos képalkotás [ , , , , , ] térnyeréséhez. Azonban ez a munkavonal többnézetű konzisztens képek szintetizálására törekszik a szintézis folyamatában használt neurális renderelés révén, és nem garantálja, hogy értelmes 3D alakzatok generálhatók. Bár egy háló potenciálisan kinyerhető a mögöttes neurális mező reprezentációból a mars algoritmus [ ] segítségével, a megfelelő textúra kinyerése nem triviális feladat. 45 34 35 33 29 52 7 57 8 49 51 25 39 Ebben a munkában egy újszerű megközelítést mutatunk be, amely egy gyakorlatilag használható 3D generatív modell minden követelményének kielégítésére irányul. Pontosabban, bevezetjük a GET3D-t, egy eneratív modellt 3D alakzatokhoz, amely közvetlenül xplicit extured hálókat ad ki nagy geometriai és textúra részletességgel, valamint tetszőleges háló topológiával. Megközelítésünk középpontjában egy generatív folyamat áll, amely egy differenciálható *explicitt* felületkivonási módszert [ ] és egy differenciálható renderelési technikát [ , ] használ. Előbbi lehetővé teszi számunkra, hogy közvetlenül optimalizáljunk és textúrázott 3D hálókat adjunk ki tetszőleges topológiával, míg utóbbi lehetővé teszi számunkra, hogy 2D képekkel tanítsunk, így kihasználva a 2D képalkotás számára kifejlesztett erőteljes és érett diszkriminátorokat. Mivel a modellünk közvetlenül generál hálókat és egy rendkívül hatékony (differenciálható) grafikus renderelőt használ, könnyen fel tudjuk skálázni a modellt, hogy akár 1024 × 1024 felbontású képekkel is taníthassunk, lehetővé téve a kiváló minőségű geometriai és textúra részletek elsajátítását. G E T 3D 60 47 37 Állami szintű teljesítményt demonstrálunk feltétlen 3D alakzatgenerálásban több kategóriában, komplex geometriával a ShapeNet [ ], Turbosquid [ ] és Renderpeople [ ] adataiból, mint például autók, székek, motorok, emberi karakterek és épületek. Az explicit háló kimeneti reprezentációval a GET3D rendkívül rugalmas, és könnyen adaptálható más feladatokhoz, beleértve: a dekomponált anyagok és nézetfüggő világítási effektusok generálásának tanulását fejlett differenciálható rendereléssel [ ], felügyelet nélkül, szöveges vezérelt 3D alakzatgenerálás CLIP [ ] embedding segítségével. 9 4 2 (a) 12 (b) 56 2 Kapcsolódó Munka Áttekintjük a legújabb eredményeket a 3D generatív modellek terén a geometria és a megjelenés, valamint a 3D-tudatos generatív képalkotás terén. Az elmúlt években a 2D generatív modellek fotorealisztikus minőséget értek el nagy felbontású képek szintézisében [ , , , , , , ]. Ez a fejlődés inspirálta a 3D tartalomgenerálással kapcsolatos istražódásokat is. A korai megközelítések a 2D CNN generátorokat közvetlenül 3D vokselrácsokra [ , , , , ] terjesztették ki, de a 3D konvolúciók magas memóriaköltsége és számítási komplexitása akadályozta a generálási folyamatot nagy felbontásban. Alternatívaként más munkák pontfelhő [ , , , ], implicit [ , ], vagy oktree [ ] reprezentációkat vizsgáltak. Ezek a munkák azonban főként a geometria generálására összpontosítanak, és figyelmen kívül hagyják a megjelenést. Kimeneti reprezentációikat utófeldolgozni is kell, hogy kompatibilisek legyenek a szabványos grafikus motorokkal. 3D Generatív Modellek 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Munkánkhoz közelebb állva, a Textured3DGAN [ , ] és a DIBR [ ] textúrázott 3D hálókat generálnak, de a generálást sablonháló deformációjaként fogalmazzák meg, ami megakadályozza őket komplex topológiájú vagy változó genusú alakzatok generálásában, amit a mi módszerünk meg tud csinálni. A PolyGen [ ] és a SurfGen [ ] képesek tetszőleges topológiájú hálókat előállítani, de nem szintetizálnak textúrákat. 54 53 11 48 41 A neurális térfogat renderelés [ ] és az implicit reprezentációk [ , ] sikerei által inspirálva a közelmúltbeli munkák elkezdték a 3D-tudatos képalkotás [ , , , , , , , , , ] problémájának kezelését. Azonban a neurális térfogat renderelő hálózatok általában lassan lekérdezhetők, ami hosszú tanítási időt [ , ] eredményez, és korlátozott felbontású képeket generál. A GIRAFFE [ ] és a StyleNerf [ ] javítják a tanítási és renderelési hatékonyságot azáltal, hogy alacsonyabb felbontásban végeznek neurális renderelést, majd a 2D CNN-ekkel felskálázzák az eredményeket. A teljesítménybeli nyereség azonban csökkentett többnézetű konzisztencia árán jön létre. Az EG3D [ ] kettős diszkriminátor használatával részben enyhítheti ezt a problémát. Mindazonáltal a textúrázott felület kinyerése a neurális renderelésen alapuló módszerekből nem triviális feladat. Ezzel szemben a GET3D közvetlenül ad ki textúrázott 3D hálókat, amelyeket készen lehet használni a szabványos grafikus motorokban. 3D-tudatos generatív képalkotás 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Módszer Most bemutatjuk a GET3D keretrendszerünket textúrázott 3D alakzatok szintézisére. Generálási folyamatunk két részből áll: egy geometriai ág, amely differenciálhatóan ad ki egy tetszőleges topológiájú felületi hálót, és egy textúra ág, amely egy textúra mezőt állít elő, amely lekérdezhető a felületi pontoknál a színek előállításához. Ez utóbbi kiterjeszthető más felületi tulajdonságokra is, mint például az anyagok (4.3.1. szakasz [ ]). A tanítás során egy hatékony differenciálható raszterizáló használatos a létrejött textúrázott háló 2D nagy felbontású képekké rendereléséhez. Az egész folyamat differenciálható, lehetővé téve az adverzariális tanítást képekből (maszkokkal, amelyek jelzik az érdeklődésre számot tartó objektumot) a 2D diszkriminátorból származó gradiensek mindkét generátor ágba történő propagálásával. A modellünk a 2. ábrán látható [ ]. A továbbiakban először bemutatjuk a 3D generátort a 3.1. szakaszban [ ], mielőtt a differenciálható renderelésre és a veszteségfüggvényekre térnénk át a 3.2. szakaszban [ ]. 4.3.1 2 3.1 3.2 3.1 3D textúrázott hálók generatív modellje Egy 3D generátort szeretnénk megtanítani = ( ), hogy egy Gauss-eloszlásból vett mintát M, E G z ∈ N (0*,* ) egy hálóvá és textúrává alakítson. z I M E Mivel ugyanaz a geometria eltérő textúrákkal rendelkezhet, és ugyanaz a textúra különböző geometriákhoz alkalmazható, két véletlenszerű bemeneti vektort mintázunk 1 ∈ R512 és 2 ∈ R512. A StyleGAN [ , , ] nyomán nemlineáris leképző hálózatokat geo és tex használunk, hogy 1 és 2 átvigyük köztes latens vektorokká 1 = geo( 1) és 2 = tex( 2), amelyeket tovább használunk a 3D alakzatok és a textúra generálását vezérlő *stílusok* előállításához. A geometria generátorát a 3.1.1. szakaszban [ ], a textúra generátorát pedig a 3.1.2. szakaszban [ ] vezetjük be. 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 generátor A geometria generátorunkat úgy tervezzük, hogy magában foglalja a DMTet [ ] -t, egy nemrégiben javasolt differenciálható felületi reprezentációt. A DMTet a geometriát egy eltolható tetraéderes rácson [ , ] definiált előjeles távolságmezőként (SDF) reprezentálja, amelyből a felület differenciálhatóan rekonstruálható a tetraéderek marsírozásával [ ]. A rács eltolása a csúcsok mozgatásával jobb felbontáskihasználást eredményez. A DMTet használatával a felület kinyeréséhez explicit, tetszőleges topológiájú és genusú hálókat tudunk előállítani. A továbbiakban röviden összefoglaljuk a DMTet-et, és további részletekért az eredeti cikkre hivatkozunk. 60 22 24 17 Legyen ( ) a teljes 3D tér, ahol az objektum található, ahol a tetraéderes rács csúcsai. Minden ∈ tetraéder négy csúcs { } segítségével van definiálva, ahol ∈ {1*, . . . , K*}, a tetraéderek teljes száma, és ∈ ∈ R3. A 3D koordinátái mellett minden csúcs tartalmazza az SDF értéket ∈ R és az -edik csúcs eltolódását ∆ ∈ R3 az eredeti kanonikus koordinátájától. Ez a reprezentáció lehetővé teszi az explicit háló differenciálható tetraéderes marsírozással [ ] történő rekonstrukcióját, ahol a folytonos térben lévő SDF értékeket a csúcsok eltolódásából ( ′ = + ∆ ) származó interpolált értékekkel számítják ki. VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik v i si i v i 60 v v i v i si Az 1 ∈ R512 vektort az SDF értékekre és az egyes csúcsok eltolódásaira képezzük le egy sor feltételes 3D konvolúciós és teljes kapcsolatú rétegen keresztül. Pontosabban, először 3D konvolúciós rétegeket használunk egy jellemző térfogat előállításához, amelyet az 1 kondicionál. Ezután a jellemzőt lekérdezzük az egyes ∈ csúcsoknál trilineáris interpoláció segítségével, és ezeket MLPre-ekbe tápláljuk, amelyek előállítják az SDF értéket és a ∆ eltolódást. Magas felbontású modellezési esetekben (pl. vékony szerkezetekkel rendelkező motorkerékpárok kerekei) a [ ] módszerét követve térfogat felosztást is használunk. Hálózati Architektúra w v i w v i VT si v i 60 Az összes csúcs és ∆ értékének megszerzése után a differenciálható mars templomok algoritmusát használjuk az explicit háló kinyerésére. A mars templomok algoritmus a tetrahedronon belüli felület topológiáját az jelek alapján határozza meg. Pontosabban, egy háló lapot akkor nyerünk ki, ha sign( ) /= sign( ), ahol a tetrahedron élének csúcsindexei, és a lap csúcsait lineáris interpolációval határozzuk meg: mi,j = v 0 i sj−v 0 j si sj−si . Vegyük figyelembe, hogy a fenti egyenletet csak akkor értékeljük ki, ha si 6= sj , így differenciálható, és a gradiensek mi,j-ből az SDF értékekre si és az eltolódásokra ∆vi visszapropagálhatók. Ezzel a reprezentációval tetszőleges topológiájú alakzatok könnyen generálhatók az jelek eltérő előrejelzésével. Differenciálható Háló Extrakció si v i si si sj i, j m i,j si 3.1.2 Textúra generátor A kimenő hálóval konzisztens textúratérkép közvetlen generálása nem triviális, mivel a generált alakzat tetszőleges genusú és topológiájú lehet. Ezért a textúrát egy textúra mezőként [ ] paraméterezzük. 50 Pontosabban, a textúra mezőt egy függvénnyel modellezzük, amely egy felületi pont ∈ R3 3D helyét képezi le, az 2 kondicionálása mellett, az adott helyen lévő RGB színre ∈ R3. Mivel a textúra mező függ a geometriától, további kondicionáljuk ezt a leképezést a 1 geometriai latens kóddal, oly módon, hogy = ( *,* 1 ⊕ 2), ahol ⊕ a konkatenációt jelöli. ft p w c w c ft p w w A textúra mezőt egy tri-plane reprezentációval jelenítjük meg, amely hatékony és kifejező a 3D objektumok rekonstrukciójában [ ] és a 3D-tudatos képek generálásában [ ]. Pontosabban, a [ , ] nyomán egy feltételes 2D konvolúciós neurális hálózatot használunk a 1 ⊕ 2 latens kód három tengely-igazítású ortogonális jellemző síkra való leképezéséhez, amelyek mérete × × ( × 3), ahol = 256 jelöli a térbeli felbontást, és = 32 a csatornák számát. Hálózati Architektúra 55 8 8 35 w w N N C N C A jellemző síkokból a felületi pont jellemzővektora ∈ R 32-ként nyerhető le: = P e ρ(πe(p)), ahol πe(p) a pont vetítése a jellemző síkra, és ρ(·) a jellemzők bilineáris interpolációját jelöli. Ezután egy további teljes kapcsolatú réteget használunk az aggregált jellemzővektor RGB színre c való leképezéséhez. Vegyük figyelembe, hogy ellentétben a 3D-tudatos képalkotással foglalkozó más munkákkal [8, 25, 7, 57], amelyek neurális mező reprezentációt is használnak, mi csak a felületi pontok helyein (sugár mentén sűrű mintavételezés helyett) mintázzuk a textúra mezőt. Ez nagymértékben csökkenti a nagy felbontású képek renderelésének számítási komplexitását, és konstrukció révén garantálja a többnézetű konzisztens képek generálását. p ft ft p e ft 3.2 Differenciálható renderelés és tanítás A modellünk tanítás közbeni felügyeletéhez az Nvdiffrec [ ] inspirálja, amely differenciálható renderelő segítségével végez többnézetű 3D objektum rekonstrukciót. Pontosabban, az extrahált 3D hálót és a textúra mezőt 2D képekké rendereljük egy differenciálható renderelő [ ] segítségével, és a hálózatunkat egy 2D diszkriminátorral felügyeljük, amely megpróbálja megkülönböztetni a képet egy valós objektumtól vagy a generált objektumból rendereltől. 47 37 Feltételezzük, hogy az adatkészletben szereplő képek beszerzéséhez használt kameraeloszlás C ismert. A generált alakzatok rendereléséhez véletlenszerűen mintázunk egy c kamerát C-ből, és egy rendkívül optimalizált Nvdiffrast [ ] differenciálható raszterizálót használunk a 3D háló rendereléséhez egy 2D sziluetté, valamint egy olyan képé, ahol minden pixel a megfelelő 3D pont koordinátáit tartalmazza a háló felületén. Ezeket a koordinátákat tovább használjuk a textúra mező lekérdezéséhez az RGB értékek beszerzéséhez. Mivel közvetlenül az extrahált hálón dolgozunk, nagy hatékonysággal tudunk nagy felbontású képeket renderelni, lehetővé téve modellünk tanítását akár 1024 × 1024 képfelbontással. Differenciálható Renderelés 37 A modellt adverzariális célfüggvénnyel tanítjuk. A StyleGAN [ ] diszkriminátor architektúráját alkalmazzuk, és ugyanazt a nem-szaturáló GAN célfüggvényt használjuk R1 regularizálással [ ]. Empirikus úton megállapítottuk, hogy két különálló diszkriminátor használata, az egyik az RGB képeknek, a másik pedig a sziluetteknek, jobb eredményeket hoz, mint egyetlen diszkriminátor, Diszkriminátor és Célfüggvény 34 42