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) Absztrakt Mivel számos iparág törekszik hatalmas 3D-s virtuális világok modellezésére, egyre nyilvánvalóbbá válik az olyan tartalomelőállító eszközök iránti igény, amelyek képesek skálázódni a 3D-s tartalom mennyisége, minősége és sokfélesége tekintetében. Munkánkban célunk olyan performáns 3D generatív modellek képzése, amelyek textúrázott hálókat szintetizálnak, amelyeket közvetlenül 3D renderelő motorok fogyaszthatnak, így azonnal használhatóvá válnak a lefelé irányuló alkalmazásokban. A 3D generatív modellezéssel foglalkozó korábbi munkák vagy hiányoznak a geometriai részletekből, vagy korlátozottak az általuk előállított 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 használatukat a szokásos 3D szoftverekben. Ebben a munkában bemutatjuk a GET3D-t, egy eneratív modellt, amely közvetlenül xplicit 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 adverszárius hálózatok (GAN-ok) terén elért sikereket felhasználva képzünk ki modellezőinket 2D képek gyűjteményeiből. A GET3D képes kiváló minőségű 3D texturált 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 érve el a korábbi módszerekhez képest. Projektoldalunk: G E T 3D https://nv-tlabs.github.io/GET3D 1 Bevezetés A változatos, kiváló minőségű 3D tartalom egyre fontosabbá válik számos 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 skálázás – bár találhatunk 3D modelleket olyan 3D piactereken, mint 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ő kinézetű karakterrel, továbbra is jelentős időt igényel a művészek részéről. 4 3 Annak érdekében, hogy megkönnyítsük a tartalomlétrehozási folyamatot, és hozzáférhetővé tegyük azt a legkülönfélébb (kezdő) felhasználók számára, a generatív 3D hálózatok, amelyek képesek kiváló minőségű és változatos 3D eszközöket előállítani, nemrégiben aktív kutatási területté váltak [ , , , , , , , , , , ]. Ahhoz azonban, hogy gyakorlatilag hasznosak legyenek a jelenlegi valós alkalmazásokban, az ideális 3D generatív modelleknek a következő követelményeket kell teljesíteniük: képeseknek kell lenniük részletes geometriával és tetszőleges topológiával rendelkező alakzatok generálására, a kimenetnek texturált hálónak kell lennie, amely az olyan szabványos grafikus szoftvercsomagok által használt elsődleges reprezentáció, mint a Blender [ ] és a Maya [ ], és képesnek kell lennünk 2D képek felhasználására felügyeletként, mivel ezek szélesebb körben elérhetők, mint a konkrét 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 munka a fenti követelmények egy részére összpontosított, de eddig egyetlen módszer sem teljesíti az összeset (1. táblázat). Például a 3D pontfelhőket [ , 68, 75] generáló módszerek általában nem produkálnak textúrákat, és utófeldolgozás során hálóvá kell őket konvertálni. 5 A voxelokat generáló módszerek gyakran hiányoznak a geometriai részletekből, és nem produkálnak textúrát [ , , , ]. A neurális mezőkön [ , ] alapuló generatív modellek a geometriát tárják fel, 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, a közvetlenül texturált 3D hálókat [ , ] előállító módszerek általában előre meghatározott alakzat sablonokat 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 generatív adverszárius hálózatok (GAN-ok) [ , , , , ] terén elért gyors előrelépések a 3D-tudatos képszintézis [ , , , , , ] térnyeréséhez vezettek. Azonban ez a munkavonal többnézetű konzisztens képek szintézisé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 léptetési kocka algoritmussal [ ], a hozzá tartozó 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, amely egy gyakorlatilag használható 3D generatív modell összes követelményét igyekszik kielégíteni. Pontosabban, bemutatjuk a GET3D-t, egy eneratív modellt 3D alakzatokhoz, amely közvetlenül xplicit exturált hálókat állít elő, 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 differenciálható felületkinyerési módszert [ ] és 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 modellünk 2D képekkel való képzését, így kihasználva az erős és érett, 2D képszintézisre kifejlesztett diszkriminátorokat. Mivel 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 modellünket a 1024 × 1024 felbontású képekkel való képzésre, ami lehetővé teszi a kiváló minőségű geometriai és textúra részletek elsajátítását. G E T 3D explicit 60 47 37 Állapot-of-the-art teljesítményt demonstrálunk feltételes 3D alakzatgenerálásban több kategóriában, komplex geometriával a ShapeNet [ ], Turbosquid [ ] és Renderpeople [ ] adatkészletekből, mint például autók, székek, motorkerékpárok, emberi karakterek és épületek. A texturált hálókat kimeneti reprezentációként használva a GET3D rendkívül rugalmas, és könnyen adaptálható más feladatokhoz is, beleértve: az anyagok és nézetfüggő világítási effektek lebontott generálásának megtanulása fejlett differenciálható renderelés [ ] használatával, felügyelet nélkül, szöveggenerált 3D alakzatgenerálás CLIP [ ] beágyazás használatával. 9 4 2 (a) 12 (b) 56 2 Kapcsolódó munka Áttekintjük a legújabb fejlesztéseket a 3D generatív modellekben a geometria és a megjelenés terén, valamint a 3D-tudatos generatív képszintézisben. Az elmúlt években a 2D generatív modellek fotorealisztikus minőséget értek el nagy felbontású képszintézisben [ , , , , , , ]. Ez az előrelépés ösztönözte a 3D tartalomgenerálással kapcsolatos kutatásokat is. Korai megközelítések a 2D CNN generátorok 3D voxelrácsokba [ , , , , ] való kiterjesztésére irányultak, de a 3D konvolúciók magas memóriahasználata és számítási komplexitása akadályozza a nagy felbontású generálási folyamatot. Alternatívaként más munkák pontfelhő [ , , , ], implicit [ , ] vagy oktree [ ] reprezentációkat vizsgáltak. Ezek a munkák azonban főleg a geometria generálására összpontosítanak, és figyelmen kívül hagyják a megjelenést. A kimeneti reprezentációikat utólagosan kompatibilissé kell tenni 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 álló, a Textured3DGAN [ , ] és a DIBR [ ] texturált 3D hálókat generál, de a generálást egy 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 is tud. A PolyGen [ ] és a SurfGen [ ] képes tetszőleges topológiájú hálókat előállítani, de nem szintetizál textúrákat. 54 53 11 48 41 A neurális térfogat renderelés [ ] és az implicit reprezentációk [ , ] sikere által inspirálva, a közelmúltban megkezdődött a 3D-tudatos képszintézis problémájának [ , , , , , , , , , ] kezelése. Azonban a neurális térfogat renderelő hálózatok általában lassan kérdezhetők le, ami hosszú képzési időket eredményez [ , ], és korlátozott felbontású képeket generál. A GIRAFFE [ ] és a StyleNerf [ ] javítja a képzési és renderelési hatékonyságot a neurális renderelés alacsonyabb felbontású végrehajtásával, majd az eredmények 2D CNN-nel történő felskálázásával. A teljesítménybeli nyereség azonban csökkentett többnézetű konzisztencia árán érhető el. A kettős diszkriminátor használatával az EG3D [ ] részben enyhítheti ezt a problémát. Mindazonáltal a texturált felület kinyerése a neurális renderelésen alapuló módszerekből nem triviális feladat. Ezzel szemben a GET3D közvetlenül texturált 3D hálókat állít elő, amelyek azonnal felhaszná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 texturált 3D alakzatok szintetizálásához. Generálási folyamatunk két részből áll: egy geometriai ág, amely differenciálhatóan kimenetezi a tetszőleges topológiájú felületi hálót, és egy textúra ág, amely előállít egy textúra mezőt, amely lekérdezhető a felületi pontokon a színek előállításához. Ez utóbbi kiterjeszthető más felületi tulajdonságokra is, mint például anyagokra (4.3.1. szakasz). Képzés közben egy hatékony differenciálható raszterizáló kerül felhasználásra a kinyert texturált háló 2D nagy felbontású képekké rendereléséhez. A teljes folyamat differenciálható, lehetővé téve az adverszárius képzést 2D képekből (maszkokkal, amelyek egy érdekes objektumot jeleznek) a 2D diszkriminátorból származó gradiensek mindkét generátor ágba való propagálásával. A modellünket a 4. ábra illusztrálja. A következőkben először bemutatjuk a 3D generátort a 3.1. szakaszban, mielőtt áttérnénk a differenciálható renderelésre és a veszteségfüggvényekre a 3.2. szakaszban. 3.1 3D texturált hálók generatív modellje Célunk egy = ( ) 3D generátor elsajátítása, amely egy Gauß-eloszlásból vett mintát M, E G z ∈ N (0*,* ) egy hálóra és egy 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életlen bemeneti vektort mintázunk meg: 1 ∈ R512 és 2 ∈ R512. A StyleGAN [ , , ] nyomán nemlineáris leképző hálózatokat geo és tex használunk a 1 és 2 közötti átmeneti latens vektorokba 1 = geo( 1) és 2 = tex( 2) való leképezéséhez, amelyeket tovább használunk a 3D alakzatok és a textúra generálását vezérlő előállításához. Formálisan a geometria generátorát a 3.1.1. szakaszban, a textúra generátorát pedig a 3.1.2. szakaszban mutatjuk be. z z 34 35 33 f f z z w f z w f z stílusok 3.1.1 Geometria Generátor A geometria generátorunkat úgy terveztük, hogy magában foglalja a DMTet [ ] -et, egy nemrégiben javasolt differenciálható felületi reprezentációt. A DMTet a geometriát egy eltolható tetraéderes rácsra [ , ] definiált előjeles távolságmezőként (SDF) reprezentálja, amelyből a felület differenciálhatóan nyerhető ki a tetraéderek léptetésével [ ]. A rács deformálása a csúcsainak mozgatásával jobb felbontáshasználatot eredményez. A DMTet felületkinyeréshez való használatával explicit hálókat állíthatunk elő tetszőleges topológiával és genus-szal. A következőkben röviden összefoglaljuk a DMTet-et, és további részletekért a továbbiakban az eredeti tanulmányra hivatkozunk. 60 22 24 17 Jelöljük ( ) a teljes 3D teret, 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*}, ahol a tetraéderek teljes száma, és ∈ ∈ R3. A 3D koordinátái mellett minden csúcs tartalmazza az ∈ R SDF értéket és a csúcs ∈ R3 deformációját ∆ a kezdeti kanonikus koordinátájától. Ez a reprezentáció lehetővé teszi az explicit háló kinyerését differenciálható léptető tetraéderek [ ] segítségével, ahol a folytonos térben lévő SDF értékek a torzított csúcsok ′ = + ∆ barycentrikus interpolációjával számítódnak 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 v i v i 60 v v i v i Az 1 ∈ R512 vektort SDF értékekké és deformációkká képezzük le minden csúcsra egy sor feltételes 3D konvolúciós és teljesen kapcsolt rétegen keresztül. Pontosabban, először 3D konvolúciós rétegeket használunk egy 1 által feltételezett funkciótér előállítására. Ezután a funkciót minden ∈ csúcson lekérdezzük trilineáris interpolációval, és azokat MLP-kbe tápláljuk, amelyek előállítják az SDF értéket és a ∆ deformációt. Olyan esetekben, ahol nagy felbontású modellezés szükséges (pl. vékony szerkezetekkel rendelkező motorkerékpárok), továbbá térfogat-felosztást alkalmazunk a nyomán. Hálózat architektúra w v i w v i VT si v i Miután az és ∆ értékeket minden csúcsra megszereztük, a differenciálható léptető tetraéderek algoritmusát használjuk az explicit háló kinyerésére. A léptető tetraéderek a tetraéderen belüli felület topológiáját határozzák meg az előjelei alapján. Pontosabban, egy háló lap akkor kerül kinyerésre, ha sign( ) /= sign( ), ahol a tetraéder éleinek csúcsainak indexeit jelölik, és az adott lap csúcsait lineáris interpoláció határozza meg, mint mi,j = v 0 i sj−v 0 j si sj−si . Megjegyzendő, hogy a fenti egyenletet csak akkor értékeljük ki, ha si 6= sj , így differenciálható, és a gradient mi,j -ből visszavezethető az si és ∆vi SDF értékekre. Ezzel a reprezentációval tetszőleges topológiájú alakzatok könnyen generálhatók az si eltérő előjeleinek előrejelzésével. Differenciálható háló kivonás si v i si si sj i, j m i,j 3.1.2 Textúra Generátor A textúra közvetlen előállítása, amely konzisztens a kimeneti hálóval, nem triviális, mivel a generált alakzatnak tetszőleges genus-szal és topológiával rendelkezhet. Ezért a textúrát egy textúra mezőként [ ] paraméterezzük. 50 Pontosabban, a textúra mezőt egy funkcióval modellezzük, amely a felületi pont ∈ R3 3D helyét, az 2 által feltételezve, az RGB szín ∈ R3-ra képezi le azon a helyen. Mivel a textúra mező függ a geometriától, további feltételként megadjuk ezt a megfeleltetést a geometria latens kódjával 1, oly módon, hogy = ( *,* 1 ⊕ 2), ahol ⊕ a konkatenációt jelenti. ft p w c w c ft p w w A textúra mezőt egy tri-plane reprezentációval modellezzük, amely hatékony és kifejező a 3D objektumok rekonstrukciójában [ ] és 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 3 tengely-analóg ortogonális funkció síkra való leképezéséhez, amelyek mérete × × ( × 3), ahol = 256 jelenti a térbeli felbontást, és = 32 a csatornák számát. Hálózat architektúra 55 8 w w N N C N C A funkció síkokból a felületi pont p ∈ R3 funkcióvektora f t ∈ R 32 a következőképpen nyerhető ki: f t = P e ρ(πe(p)), ahol πe(p) a p pont vetítése az e funkció síkra, és ρ(·) a funkciók bilineáris interpolációját jelenti. Egy további teljesen kapcsolt réteg ezután arra szolgál, hogy az aggregált funkcióvektort f t az RGB szín c-re képezze le. Megjegyzendő, hogy a 3D-tudatos képszintézissel [ , , , ] foglalkozó más munkákkal ellentétben, amelyek neurális mező reprezentációt is használnak, nekünk csak a textúra mezőt kell lekérdeznünk a felületi pontok helyein (sugár mentén sűrű mintavételezéssel szemben). Ez nagymértékben csökkenti a nagy felbontású képek renderelésének számítási komplexitását, és konstrukció szerint garantálja a többnézetű konzisztens képek generálását. 8 25 7 57 3.2 Differenciálható renderelés és képzés Annak érdekében, hogy képzés közben felügyeljük a modellünket, inspirációt merítünk az Nvdiffrec [ ] -ből, amely differenciálható renderelőt használ többnézetű 3D objektumrekonstrukcióhoz. Pontosabban, a kinyert 3D hálót és a textúra mezőt 2D képekké rendereljük egy differenciálható renderelővel [ ], és a hálózatot 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 objektumtól rendereltől. 47 37 Feltételezzük, hogy az adatkészletben található képek megszerzéséhez használt kameraeloszlás C ismert. A generált alakzatok rendereléséhez véletlenszerűen mintázunk egy kamerát a C-ből, és egy rendkívül optimalizált, differenciálható raszterizálót, az Nvdiffrast [ ] -ot használjuk a 3D háló 2D sziluetté és egy olyan képpé rendereléséhez, ahol minden képpont a háló felületén lévő megfelelő 3D pont koordinátáit tartalmazza. Differenciálható renderelés c 37 Ezeket a koordinátákat tovább használjuk a textúra mező lekérdezésére az RGB értékek beszerzéséhez. Mivel közvetlenül a kinyert hálón dolgozunk, rendkívül hatékonyan tudunk nagy felbontású képeket renderelni, lehetővé téve modellünk képzését akár 1024×1024 felbontású képekkel. Adverszárius célfüggvényt használva képezzük a modellünket. A StyleGAN [ ] diszkriminátor architektúráját alkalmazzuk, és ugyanazt a nem-szaturáló GAN célfüggvényt használjuk R1 regularizációval [ ]. Empirikus tapasztalataink szerint két külön diszkriminátor, egy az RGB képekhez és egy a sziluettekhez, jobb eredményeket ad, mint egyetlen, mindkettőn működő diszkriminátor. Jelöljük -szel Diszkriminátor és célfüggvény 34 42 Dx