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 Ahogy számos iparág a hatalmas 3D virtuális világok modellezése felé halad, egyre nyilvánvalóbbá válik a tartalomkészítő eszközök iránti igény, amelyek skálázhatók a 3D tartalom mennyisége, minősége és sokfélesége tekintetében. Munkánkban olyan performáns 3D generatív modellek képzését célozzuk meg, 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 kapcsolatos korábbi munkák vagy hiányoznak a geometriai részletek, vagy korlátozottak az általuk előállítható hálózati 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 a használatukat a gyakori 3D szoftverekben. Ebben a munkában bemutatjuk a GET3D-t, egy eneratív modellt, amely közvetlenül xplicit extúrázott hálókat generál komplex topológiával, gazdag geometriai részletekkel és nagy felbontású textúrákkal. A differenciálható felület modellezés, a differenciálható renderelés, valamint a 2D generatív adverszárius hálózatok (GAN-ok) terén elért sikereinket felhasználva képzünk ki modelt 2D képgyűjteményekből. A GET3D kiváló minőségű 3D textúrázott hálókat képes generálni, az autótól, széktől, állattól, motortól és emberi karakterektől kezdve 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ékot, a robotikát, az építészetet és a közösségi platformokat. Azonban a 3D eszközök manuális létrehozása nagyon időigényes, és specifikus technikai tudást, 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, egy játék vagy film feltöltéséhez különböző megjelenésű karakterek tömegével, még mindig jelentős művészi időt vesz igénybe. 4 3 A tartalomkészítési folyamat megkönnyítése és a különféle (kezdő) felhasználók számára hozzáférhetővé tétele érdekében a kiváló minőségű és sokféle 3D eszközt előállító generatív 3D hálózatok nemrégiben az aktív kutatási területté váltak [ , , , , , , , , , , ]. Azonban a jelenlegi valós alkalmazásokhoz gyakorlatilag hasznos 3D generatív modelleknek ideálisan a következő követelményeknek kell megfelelniük: Képesek legyenek részletes geometriával és tetszőleges topológiával rendelkező alakzatok generálására, A kimenet textúrázott háló legyen, amely az olyan standard grafikai szoftvercsomagok, mint a Blender [ ] és a Maya [ ] által használt elsődleges reprezentáció, valamint Használhassuk a 2D képeket felügyeletre, mivel azok 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 3D generatív modellezéssel kapcsolatos korábbi munka a fenti követelmények részhalmazaira összpontosított, de eddig egyetlen módszer sem teljesíti mindet (1. táblázat). Például a 3D pontfelhőket [ , 68, 75] generáló módszerek általában nem állítanak elő textúrákat, és utólagos feldolgozás során hálóvá kell őket alakítani. 5 A vokseleket generáló módszerek gyakran hiányoznak a geometriai részletek, és nem állítanak elő textúrát [ , , , ]. A neurális mezőkön [ , ] alapuló generatív modellek a geometria kinyerésére összpontosítanak, de figyelmen kívül hagyják a textúrát. Ezek közül a legtöbb explicit 3D felügyeletet is igényel. Végül, a közvetlenül textúrázott 3D hálókat [ , ] előállító módszerek általában előre meghatározott alakzat sablonokat igényelnek, és nem tudnak komplex topológiájú vagy változó genusú alakzatokat generálni. 66 20 27 40 43 14 54 53 Nemrégiben a neurális térfogat renderelés [ ] és a 2D generatív adverszárius hálózatok (GAN-ok) [ , , , , ] terén elért gyors fejlődés vezetett a 3D-tudatos képszintézis [ , , , , , ] fellendüléséhez. Azonban ez a munkavonal többnézetű konzisztens képek szintézisét célozza 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 marslakó kocka algoritmussal [ ], 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 hasznos 3D generatív modell minden követelményét megcélozza. Konkrétan bemutatjuk a GET3D-t, egy eneratív modellt 3D alakzatokhoz, amely közvetlenül xplicit extúrázott 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 differenciálható felület kinyeré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 állítsunk elő tetszőleges topológiával, míg utóbbi lehetővé teszi a modellünk 2D képekkel történő 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 hálókat generál, és rendkívül hatékony (differenciálható) grafikus renderelőt használ, könnyen skálázhatjuk modellünket, hogy akár 1024x1024 felbontású képekkel is tréningezhessük, ami lehetővé teszi a kiváló minőségű geometriai és textúra részletek megtanulását. G E T 3D explicit 60 47 37 Állapotát a művészetnek megfelelő teljesítményt mutatunk be több kategóriában komplex geometriával a ShapeNet [ ], Turbosquid [ ] és Renderpeople [ ] adatkészletekről, mint például székek, motorkerékpárok, autók, emberi karakterek és épületek. Az explicit háló kimeneti reprezentációjaként a GET3D rendkívül rugalmas, és könnyen adaptálható más feladatokhoz is, beleértve: az anyag- és nézetfüggő világítási hatások lebontott generálásának megtanulása fejlett differenciálható rendereléssel [ ], felügyelet nélkül, szövegalapú 3D alakzatgenerálás CLIP [ ] embedding használatával. 9 4 2 (a) 12 (b) 56 2 Kapcsolódó munka Áttekintjük a geometriai és megjelenítési 3D generatív modellek, valamint a 3D-tudatos generatív képszintézis legújabb eredményeit. 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 ösztönzött a 3D tartalomgenerálás kutatását is. Korai megközelítések a 2D CNN generátorokat közvetlenül 3D vokszelrácsokra [ , , , , ] terjesztették ki, de a 3D konvolúciók magas memóriaterhelése és számítási komplexitása akadályozza a generálási folyamatot nagy felbontásban. Alternatívaként más munkák pontfelhő [ , , , ], implicit [ , ], vagy oktree [ ] reprezentációkat vizsgáltak. Azonban ezek a munkák 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 is utólagos feldolgozásra van szükség, hogy kompatibilisek legyenek a standard 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 A mi munkánkhoz közelebb állva, a Textured3DGAN [ , ] és a DIBR [ ] textúrázott 3D hálókat generálnak, de a generálást sablon háló deformációjaként fogalmazzák meg, ami megakadályozza őket abban, hogy komplex topológiájú vagy változó genusú alakzatokat generáljanak, amit a mi módszerünk meg tud tenni. 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 [ , ] sikere által inspirálva a közelmúltban elkezdődött a 3D-tudatos képszintézis [ , , , , , , , , , ] problémájának megoldása. Azonban a neurális térfogat renderelő hálózatok általában lassúak lekérdezés szempontjából, ami hosszú tréningidőkhöz [ , ] vezet, és korlátozott felbontású képeket generálnak. A GIRAFFE [ ] és a StyleNerf [ ] javítják a tréning és a renderelési hatékonyságot azáltal, hogy neurális renderelést végeznek alacsonyabb felbontásban, majd 2D CNN-ekkel felskálázzák az eredményeket. A teljesítményjavulás azonban csökkentett többnézetű konzisztencia árán történik. Egy kettős diszkriminátor használatával az EG3D [ ] részben enyhítheti ezt a problémát. Mindazonáltal a neurális renderelésen alapuló módszerekből textúrázott felület kinyerése nem triviális feladat. Ezzel szemben a GET3D közvetlenül textúrázott 3D hálókat állít elő, amelyek könnyen használhatók a standard 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 textúrázott 3D alakzatok szintetizálásához. Generálási folyamatunk két részből áll: egy geometriai ág, amely differenciálható módon állít elő tetszőleges topológiájú hálót, és egy textúra ág, amely egy textúra mezőt állít elő, amely a felület pontjain lekérdezhető színek előállításához. Ez utóbbi kiterjeszthető más felületi tulajdonságokra is, például anyagokra (4.3.1. szakasz). Tréning 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. Az egész folyamat differenciálható, ami lehetővé teszi az adverszárius tréninget képekből (maszkokkal, amelyek egy érdekes objektumot jelölnek) a diszkriminátorból származó gradiensnek mindkét generátor ágba történő átvitelét. Modellünket a 2. ábra illusztrálja. A következőkben először mutatjuk be a 3D generátorunkat a 3.1. szakaszban, mielőtt áttérnénk a differenciálható renderelésre és a veszteségfunkciókra a 3.2. szakaszban. 3.1 3D textúrázott hálók generatív modellje Egy 3D generátort = ( ) célunk egy Gauss eloszlású mintából M, E G z ∈ N (0*,* ) egy hálóra textúrával . z I M E Mivel ugyanaz a geometria eltérő textúrákat tartalmazhat, és ugyanaz a textúra eltérő geometriákra alkalmazható, két véletlen 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 1 és 2 leképzésére intermediális latens vektorokká 1 = geo( 1) és 2 = tex( 2), amelyek tovább használhatók a 3D alakzatok és a textúra generálását szabályozó 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 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 integrálja a DMTet [ ] rendszert, egy nemrégiben javasolt differenciálható felületi reprezentációt. A DMTet a geometriát egy deformálható 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 marslakó tetraéderek [ ] segítségével. A rács deformálása a csúcsok mozgatásával jobb felbontás kihasználást eredményez. A DMTet elfogadásával a felület kinyeréséhez, explicit hálókat tudunk előállítani tetszőleges topológiával és genusszal. Ezután röviden összefoglaljuk a DMTetet, és a további részletekért az eredeti cikkre hivatkozunk. 60 22 24 17 Legyen ( ) a teljes 3D teret, ahol az objektum található, ahol a tetraéderes rács csúcsai. Minden ∈ tetraéder négy csúcsból { } van definiálva, ahol ∈ {1*, . . . , K*}, ahol a tetraéderek teljes száma, és ∈ ∈ R3. A 3D koordinátáin kívül minden csúcs tartalmazza az ∈ R SDF értéket és a csúcs + ∆ kanonikus koordinátájától való ∆ ∈ R3 deformációt. Ez a reprezentáció lehetővé teszi az explicit háló kinyerését differenciálható marslakó tetraéderek [ ] segítségével, ahol a folytonos térben az SDF értékek a deformált csúcsok ′ = + ∆ bázis interpolációjával kerülnek kiszámításra. 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 v i 60 v v i v i Az 1 ∈ R512-t SDF értékekre és deformációkra képezzük minden csúcsban sorozatos 3D konvolúciós és teljes kapcsolatú rétegeken keresztül. Konkrétan, először 3D konvolúciós rétegeket használunk egy funkciókötet generálására, amelyet az 1 feltételez. Ezután a funkciót minden ∈ csúcsban lekérdezzük trilineáris interpolációval, és átadjuk MLPs-eknek, amelyek előállítják az SDF értéket és a ∆ deformációt. Nagy felbontású modellezés esetén (pl. vékony szerkezetekkel rendelkező motorkerékpárok) további térfogat felosztást használunk a [ ] szerint. Hálózati architektúra w v i w v i VT si v i 60 Az és ∆ összes csúcsra történő megszerzése után a differenciálható marslakó tetraéderek algoritmusát használjuk az explicit háló kinyeréséhez. A marslakó tetraéderek a felület topológiáját határozzák meg minden tetraéderen belül az előjelei alapján. Konkrétan, egy háló lap akkor kerül kinyerésre, ha sign( ) /= sign( ), ahol a tetraéder élének csúcsainak indexeit jelöli, és a lap csúcsai lineáris interpolációval kerülnek meghatározásra, mint mi,j = v 0 i sj−v 0 j si sj−si . Vegye figyelembe, hogy a fenti egyenletet csak akkor értékeljük ki, ha si 6= sj, így differenciálható, és az ebből származó gradiens mi,j visszapropagálható az si SDF értékekbe és a ∆vi deformációkba. Ezzel a reprezentációval a tetszőleges topológiájú alakzatok könnyen generálhatók az si eltérő előjeleinek predikciójával. Differenciálható háló kinyerés si v i si si sj i, j m i,j 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 alakzatnak tetszőleges genusa és topológiája lehet. Ezért a textúrát egy textúra mezőként [ ] parametrizáljuk. 50 Konkrétan a textúra mezőt egy függvénnyel modellezzük, amely egy felületi pont ∈ R3 3D helyét, a 2 feltételezéssel, a lokális ∈ R3 RGB színre képezi le. Mivel a textúra mező függ a geometriától, ezt a leképzést a 1 geometriai latens kódra is feltételezzük, úgyhogy = ( *,* 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 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 [ , ] 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 funkció síkra való képezésére, amelyek mérete × × ( × 3), ahol = 256 a térbeli felbontást, és = 32 a csatornák számát jelöli. Hálózati architektúra 55 8 8 35 w w N N C N C A funkció síkokból a felületi pont funkcióvektora ∈ R 32 lekérdezhető mint = P e ρ(πe(p)), ahol πe(p) a pont vetülete a funkció síkra, és ρ(·) a funkciók bilineáris interpolációját jelöli. Egy további teljes kapcsolatú réteg pedig az aggregált funkcióvektort az RGB szín -re képezi le. Vegye figyelembe, hogy a 3D-tudatos képszintézis más munkáival ellentétben, amelyek szintén neurális mező reprezentációt használnak, csak a felületi pontok helyein kell mintáznunk a textúra mezőt (sugár mentén történő sűrű mintavétellel szemben). Ez nagymértékben csökkenti a nagy felbontású képek renderelésének számítási komplexitását, és garantálja a többnézetű konzisztens képek generálását konstrukció szerint. p f t f t p e f t c 3.2 Differenciálható renderelés és tréning Annak érdekében, hogy felügyeljük a modellünket a tréning során, a Nvdiffrec [ ] ihlette, amely differenciálható renderelőt használó többnézetű 3D objektum rekonstrukciót végez. 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 a hálózatunkat egy 2D diszkriminátorral felügyeljük, amely megpróbálja megkülönböztetni a képet egy valódi objektumtól vagy a generált objektumból renderelt képtő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ó raszterizert Nvdiffrast [ ] használunk a 3D háló 2D sziluetté és egy olyan képé renderelésére, ahol minden pixel a megfelelő 3D pont koordinátáit tartalmazza Differenciálható renderelés c 37 a háló felületén. Ezeket a koordinátákat tovább használjuk a textúra mező lekérdezésére az RGB értékek megszerzéséhez. Mivel közvetlenül a kinyert hálóval dolgozunk, nagy felbontású képeket renderelhetünk nagy hatékonysággal, lehetővé téve modellünk tréningezését akár 1024x1024 felbontású képekkel. Modellünket adverszárius célfüggvénnyel tréningezzük. A StyleGAN [ ] diszkriminátor architektúráját fogadjuk el, és ugyanazt a nem-telítő 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, mindkettőn működő diszkriminátor. Legyen a diszkriminátor, ahol lehet RGB kép vagy sziluett. Az adverszárius célfüggvényt ekkor a következőképpen definiáljuk: Diszkriminátor és célfüggvény 34 42 Dx x ahol ( ) g u