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 több iparág is törekszik hatalmas 3D virtuális világok modellezésére, egyre nyilvánvalóbbá válik az igény olyan tartalomalkotó eszközökre, amelyek képesek skálázódni a 3D tartalom mennyisége, minősége és sokfélesége tekintetében. Munkánkban olyan teljesítményorientált 3D generatív modellek képzését célozzuk meg, amelyek textúrázott hálókat szintetizálnak, amelyeket közvetlenül fel lehet használni a 3D renderelő motorokban, így azonnal használhatóak a downstream alkalmazásokban. A korábbi 3D generatív modellezéssel foglalkozó munkák vagy hiányolnak a geometriai részleteket, vagy korlátozottak az általuk előállítható háló topológiá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 azok használatát a szokásos 3D szoftverekben. Ebben a munkában bemutatjuk a GET3D-t, egy eneratív modellt, amely közvetlenül explicit exturált hálókat generál komplex topológiával, gazdag geometriai részletekkel és nagy hűségű textúrákkal. A differenciálható felületmodellezés, a differenciálható renderelés, valamint a 2D generatív adversariális hálózatok (GAN) terén elért sikereket felhasználva képzünk modellünk 2D képművészeti gyűjteményekből. A GET3D képes kiváló minőségű 3D textúrázott hálókat generálni, az autók, székek, állatok, motorkerékpárok é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 több iparág számára, beleértve a játékipart, a robotikát, az építészetet és a közösségi platformokat. Azonban a 3D-s eszközök manuális 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 méret – miközben 3D modelleket találhatunk 3D piactereken, mint például a Turbosquid [ ] vagy a Sketchfab [ ], sok 3D modell létrehozása, mondjuk, hogy egy játékot vagy egy filmet kitöltsünk egy olyan karaktercsoporttal, amely mindegyik másnak néz ki, továbbra is jelentős művészi időt igényel. 4 3 A tartalomalkotási folyamat megkönnyítése és hozzáférhetővé tétele a különböző (újonc) felhasználók számára, a generatív 3D hálózatok, amelyek képesek kiváló minőségű és sokféle 3D eszközt előállítani, nemrégiben az istražování aktív területévé váltak [ , , , , , , , , , , ]. Azonban a jelenlegi valós alkalmazások számára gyakorlatilag hasznos 3D generatív modelleknek ideálisan a következő követelményeknek kell megfelelniük: képesnek 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 az olyan szabványos grafikai szoftvercsomagok elsődleges reprezentációja, mint a Blender [ ] és a Maya [ ], és 2D képeket kell tudnunk felügyeletként használni, mivel ezek szélesebb körben elérhetők, mint a explicit 3D alakzatok. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) A korábbi 3D generatív modellezési munka a fenti követelmények részhalmazaira összpontosított, de eddig egy módszer sem teljesíti az összeset (1. táblázat). Például azok a módszerek, amelyek 3D pontfelhőket generálnak [ , 68, 75] általában nem állítanak elő textúrákat, és utófeldolgozás során hálóvá kell őket alakítani. 5 A vokselgeneráló módszerek gyakran hiányolnak a geometriai részleteket, és nem állítanak elő 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 explicit 3D felügyeletet is igényel. Végül, azok a módszerek, amelyek közvetlenül textúrázott 3D hálókat állítanak elő [ , ], általában előre definiált alakzatsablonokat igényelnek, és nem képesek komplex topológiájú vagy változó nemű alakzatokat generálni. 66 20 27 40 43 14 54 53 Nemrégiben a neurális térfogatrenderelés [ ] és a 2D generatív adversariális hálózatok (GAN) [ , , , , ] terén elért gyors fejlődés 3D-tudatos képszintézis [ , , , , , ] megjelenéséhez vezetett. Azonban ez a munkavonal multi-view koherens képek szintetizálását célozza meg neurális renderelés használatával a szintézis folyamatában, és nem garantálja, hogy értelmes 3D alakzatok generálhatók. Bár egy hálózat potenciálisan kinyerhető a mögöttes neurális mező reprezentációból a mars téglalap 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 új megközelítést mutatunk be, amelynek célja egy gyakorlatilag hasznos 3D generatív modell összes követelményének kielégítése. Konkrétan bemutatjuk a GET3D-t, egy eneratív modellt 3D alakzatokhoz, amely közvetlenül explicit exturált hálókat állít elő, magas geometriai és textúra részletességgel, valamint tetszőleges hálózati topológiával. Megközelítésünk középpontjában egy generatív folyamat áll, amely egy differenciálható felületkivonási módszert [ ] és egy differenciálható renderelési technikát [ , ] használ. Az előbbi lehetővé teszi számunkra, hogy közvetlenül optimalizáljunk és texturált 3D hálókat állítsunk elő tetszőleges topológiával, míg az utóbbi lehetővé teszi számunkra, hogy 2D képekkel képezzük modellünket, így kihasználva az erős és érett, 2D képszintézisre kifejlesztett diszkriminátorokat. Mivel modellünk közvetlenül hálókat generál és egy rendkívül hatékony (differenciálható) grafikus renderelőt használ, könnyen skálázhatjuk modellünket, hogy akár 1024 × 1024 felbontású képekkel is tudjunk képezni, lehetővé téve a kiváló minőségű geometriai és textúra részletek tanulását. G E T 3D explicit 60 47 37 Állapot-a-művészet előadást mutatunk be az inkonnex 3D alakzatszintézisben több kategóriában, komplex geometriával a ShapeNet [ ], Turbosquid [ ] és Renderpeople [ ] adatkészletekből, mint például székek, motorkerékpárok, autók, emberi karakterek és épületek. Az explicit háló kimeneti reprezentációjával a GET3D nagyon rugalmas, és könnyen adaptálható más feladatokhoz, beleértve: az anyagok és nézetfüggő fényeffektusok dekomponált generálásának tanulása fejlett differenciálható renderelés [ ] segítségével, felügyelet nélkül, szövegvezérelt 3D alakzatszintézis CLIP [ ] embedding használatával. 9 4 2 (a) 12 (b) 56 2 Kapcsolódó Munka Áttekintjük a 3D generatív modellek legújabb fejlesztéseit a geometriában és a megjelenésben, valamint a 3D-tudatos generatív képszintézist. Az elmúlt években a 2D generatív modellek fotorealisztikus minőséget értek el nagy felbontású képszintézisben [ , , , , , , ]. Ez a fejlődés a 3D tartalomgenerálási kutatásokat is inspirálta. A korai megközelítések a 2D CNN generátorok 3D voksgridekre való közvetlen kiterjesztését célozták [ , , , , ], de a 3D konvolúciók magas memóriafoglaltsága és számítási komplexitása akadályozza a magas felbontású generálási folyamatot. Alternatívaként más munkák vizsgáltak pontfelhő [ , , , ], implicit [ , ] vagy oktree [ ] reprezentációkat. Azonban ezek a munkák főként a geometriai generálásra összpontosítanak, és figyelmen kívül hagyják a megjelenést. Kimenti reprezentációikat utófeldolgozásra is szükség van ahhoz, hogy kompatibilisek legyenek a szabványos grafikai motorokkal. 3D generatív modellek 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 A mi munkánkhoz közelebb állnak a Texturált3DGAN [ , ] és a DIBR [ ] modellek, amelyek textúrázott 3D hálókat generálnak, de a generálást egy sablonháló deformációjaként fogalmazzák meg, ami megakadályozza őket abban, hogy komplex topológiájú vagy változó nemű alakzatokat generáljanak, amit a mi módszerünk képes megtenni. A PolyGen [ ] és a SurfGen [ ] képes 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érfogatrenderelés [ ] és az implicit reprezentációk [ , ] sikere által inspirálva, a legújabb munkák elkezdték a 3D-tudatos képszintézis problémáját [ , , , , , , , , , ] megközelíteni. Azonban a neurális térfogatrenderelő hálózatok általában lassan lekérdezhetők, ami hosszú képzési időhöz vezet [ , ], és korlátozott felbontású képeket generálnak. A GIRAFFE [ ] és a StyleNerf [ ] javítja a képzési és renderelési hatékonyságot azáltal, hogy alacsonyabb felbontásban végez neurális renderelést, majd a 2D CNN-vel felskálázza az eredményeket. A teljesítménybeli nyereség azonban csökkentett multi-view koherencia árán érkezik. A kettős diszkriminátor használatával az EG3D [ ] 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 textúrázott 3D hálókat állít elő, amelyek azonnal használhatók a szabványos grafikus motorokban. 3D-tudatos generatív képszintézis 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 3D alakzatok szintézisére. Generálási folyamatunk két részből áll: egy geometriai ág, amely differenciálható módon állít elő 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ő, amelyet a felületi pontokon lekérdezve színeket állíthatunk elő. Ez utóbbi kiterjeszthető más felületi tulajdonságokra is, mint például anyagok (4.3.1. szakasz). Képzés közben egy hatékony differenciálható raszterizert használunk a kapott textúrázott háló 2D nagy felbontású képekké renderelésére. A teljes folyamat differenciálható, lehetővé téve az adversariális képzést képekből (maszkokkal, amelyek egy érdeklődő objektumot jelölnek) a 2D diszkriminátor gradiensei mindkét generátor ágba történő propagálásával. Modellünk a 4. ábrán látható. A következőkben először bemutatjuk a 3D generátorunkat a 3.1. szakaszban, majd áttérünk a differenciálható renderelésre és a veszteségfüggvényekre a 3.2. szakaszban. 3.1 3D textúrázott hálók generatív modellje Célunk egy = ( ) 3D generátor megtanulása, amely egy Gauss-eloszlásból vett mintát M, E G z ∈ N (0*,* ) egy hálóra és textúrára képez le. z I M E Mivel ugyanaz a geometria különböző textúrákkal rendelkezhet, és ugyanaz a textúra különböző geometriákhoz alkalmazható, két véletlenszerű bemeneti vektort 1 ∈ R512 és 2 ∈ R512 mintázunk. A StyleGAN [ , , ] követésével nemlineáris leképező hálózatokat geo és tex használunk a 1 és 2 vektorok 1 = geo( 1) és 2 = tex( 2) köztes latens vektorokká való leképezéséhez, amelyeket továbbiakban stílusok előállítására használunk, amelyek a 3D alakzatok és a textúra generálását vezérlik. A geometriai generátort a 3.1.1. szakaszban, a textúragenerátort pedig a 3.1.2. szakaszban mutatjuk be formálisan. z z 34 35 33 f f z z w f z w f z 3.1.1 Geometriai Generátor Geometriai generátorunkat úgy terveztük, hogy magában foglalja a DMTet [ ] modellt, egy nemrégiben javasolt differenciálható felületreprezentá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ó módon nyerhető ki a mars téglalapokon [ ] keresztül. A rács eltolása a csúcspontok mozgatásával jobb felbontáshasználatot tesz lehetővé. A DMTet használatával a felület kinyeréséhez explicit hálókat állíthatunk elő tetszőleges topológiával és neműséggel. A következőkben 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úcspontjai. Minden ∈ tetraéder négy csúcsponttal { } van definiálva, ahol ∈ {1*, . . . , K*}, ahol a tetraéderek teljes száma, és ∈ ∈ R3. A 3D koordinátái mellett minden csúcspont tartalmazza az ∈ R SDF értéket és a csúcspont ∈ R3 eltolódását ∆ az eredeti kanonikus koordinátájától. Ez a reprezentáció lehetővé teszi az explicit háló kinyerését differenciálható mars téglalapokon [ ] keresztül, ahol a folytonos térben lévő SDF értékeket a értékeik barycentrikus interpolációjával számítják ki az eltolt csúcspontokon ′ = + ∆ . 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 v i 60 si v v i v i Az 1 ∈ R512 vektort SDF értékekké és eltolódásokká képezzük minden csúcspontban egy sor feltételes 3D konvolúciós és teljesen csatlakoztatott rétegen keresztül. Konkrétan először 3D konvolúciós rétegeket használunk egy 1 által feltételezett jellemző kötet létrehozására. Ezután a jellemzőt lekérdezzük minden ∈ csúcspontban trilineáris interpolációval, és átadjuk MLPs-nek, amelyek az SDF értéket és a ∆ eltolódást adják ki. Magas felbontású modellezés esetén (pl. motorkerékpárok vékony elemei a kerekeken) a [ ] szerinti térfogatos felosztást is használjuk. Hálózat Architektúra w v i w v i VT si v i 60 Az és ∆ értékek megszerzése után minden csúcspontra, a differenciálható mars téglalap algoritmust használjuk az explicit háló kinyerésére. A mars téglalapok minden tetraéderen belüli felületi topológiát az előjelei alapján határozzák meg. Konkrétan, egy háló él akkor kerül kinyerésre, ha sign( ) /= sign( ), ahol a tetraéder élének csúcspontjainak indexei, és az él csúcspontjai lineáris interpolációval vannak meghatározva, mint mi,j = v 0 i sj−v 0 j si sj−si . Vegye figyelembe, hogy a fenti egyenlet csak akkor kerül kiértékelésre, ha si 6= sj , így differenciálható, és az gradiense visszaterjedhet az SDF értékekbe és a ∆vi eltolódásokba. Ezzel a reprezentációval az azonos topológiájú alakzatok könnyen generálhatók az eltérő előjeleinek predikciójával. Differenciálható háló kinyerése si v i si si sj i, j m i,j m i,j si 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 neműséggel és topológiával rendelkezhet. Ezért a textúrát egy textúramezőként [ ] paraméterezzük. 50 Konkrétan a textúramezőt egy függvénnyel modellezzük, amely egy ∈ R3 felületi pont 3D helyét, a 2 által feltételezve, az RGB színre ∈ R3 az adott helyen leképezi. Mivel a textúramező a geometriától függ, ezen leképezést a geometria latens kódjával 1 is feltételezzük, így = ( *,* 1 ⊕ 2), ahol ⊕ a konkatenációt jelenti. ft p w c w c ft p w w A textúramezőt egy tri-plane reprezentációval modellezzük, amely hatékony és kifejező a 3D objektumok rekonstrukciójában [ ] és a 3D-tudatos képek generálásában [ ]. Konkrétan a [ , ] követésével 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íkjává való leképezéséhez, amelyek mérete × × ( × 3), ahol = 256 a térbeli felbontást, és = 32 a csatornák számát jelöli. Hálózat Architektúra 55 8 8 35 w w N N C N C A jellemző síkok megadása mellett, egy felületi pont jellemző vektora f t ∈ R 32 a következőképpen nyerhető ki: f t = P e ρ(πe(p)), ahol πe(p) a p pont projekciója az e jellemző síkra, és ρ(·) a jellemzők bilineáris interpolációját jelenti. Ezenkívül egy teljesen csatlakoztatott réteg kerül használatra az aggregált f t jellemző vektor RGB színre c való leképezéséhez. Vegye figyelembe, hogy ellentétben a 3D-tudatos képszintézissel foglalkozó más munkákkal, amelyek neurális mező reprezentációt is használnak, mi csak a textúra mezőt kell mintáznunk a felületi pontok helyein (sűrű minták sugár mentén történő mintázásával szemben). Ez jelentősen 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 multi-view koherens képek generálását. p 3.2 Differenciálható Renderelés és Képzés Annak érdekében, hogy modellünket a képzés során felügyeljük, a Nvdiffrec [ ] inspirációjára támaszkodunk, amely multi-view 3D objektum rekonstrukciót végez egy differenciálható renderelő segítségével. Konkrétan a kinyert 3D hálót és a textúra mezőt 2D képekké rendereljük egy differenciálható renderelő [ ] segítségével, és felügyeljük hálózatunkat egy 2D diszkriminátorral, amely megpróbálja megkülönböztetni a képet egy valós objektumról vagy a generált objektumról renderelt képtől. 47 37 Feltételezzük, hogy az adathalmazban lévő képek megszerzéséhez használt kamera elosztás C ismert. A generált alakzatok rendereléséhez véletlenszerűen mintázunk egy kamerát a C elosztásból, és egy rendkívül optimalizált differenciálható raszterizert Nvdiffrast [ ] használunk a 3D háló 2D sziluetté, valamint egy olyan képbe renderelésére, ahol minden képpont a megfelelő 3D pont koordinátáit tartalmazza a hálón. Ezeket a koordinátákat továbbiakban a textúra mező lekérdezésére használjuk az RGB értékek megszerzéséhez. Mivel közvetlenül a kinyert hálón dolgozunk, nagy felbontású képeket tudunk hatékonyan renderelni, lehetővé téve modellünk képzését akár 1024×1024 felbontású képekkel. Differenciálható Renderelés c 37 Modellünket adversariális célfüggvénnyel képezzük. A StyleGAN [ ] diszkriminátor architektúráját alkalmazzuk, és ugyanazt a nem-szaturálódó GAN célfüggvényt használjuk R1 regularizálással [ ]. Empirikus úton azt tapasztaltuk, hogy két különálló diszkriminátor használata, egy az RGB képekhez és egy a sziluettekhez, jobb eredményeket ad, mint egyetlen diszkriminátor, amely mindkettőn dolgozik. Jelöljük -et a diszkriminátorral, ahol lehet RGB kép vagy sziluett. Az adversariális célfüggvényt ezután a Diszkriminátor & Célfüggvény 34 42 Dx x