Autorë: 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) Abstrakt Meqë disa industri po lëvizin drejt modelimit të botëve masive virtuale 3D, nevoja për mjete krijimi të përmbajtjes që mund të shkallëzohen për sa i përket sasisë, cilësisë dhe diversitetit të përmbajtjes 3D po bëhet e dukshme. Në punën tonë, ne synojmë të trajnojmë modele gjeneruese 3D performante që sintetizojnë rrjeta të teksturuara që mund të konsumohen drejtpërdrejt nga motorët e renderimit 3D, duke qenë kështu të përdorshme menjëherë në aplikacionet poshtë-rrjedhës. Punimet paraprake mbi modelimin gjenerues 3D ose mungojnë detajet gjeometrike, ose janë të kufizuara në topologjinë e rrjetit që mund të prodhojnë, zakonisht nuk mbështesin teksturat, ose përdorin renderues nervorë në procesin e sintezës, gjë që e bën përdorimin e tyre në softuerë të zakonshëm 3D jo të thjeshtë. Në këtë punë, ne prezantojmë GET3D, një model jenerues që drejtpërdrejt gjeneron rrjeta kspresive eksturuara me topologji komplekse, detaje gjeometrike të pasura dhe tekstura me besnikëri të lartë. Ne lidhim suksesin e fundit në modelimin e sipërfaqeve diferencues, renderimin diferencues, si dhe Rrjetet 2D kundërshtare gjeneruese (GAN) për të trajnuar modelin tonë nga koleksionet e imazheve 2D. GET3D është në gjendje të gjenerojë rrjeta me teksturë 3D me cilësi të lartë, duke filluar nga makina, karrige, kafshë, motoçikleta dhe karaktere njerëzore deri te ndërtesat, duke arritur përmirësime të konsiderueshme mbi metodat e mëparshme. Faqja e projektit tonë: G E T 3D https://nv-tlabs.github.io/GET3D 1 Hyrje Përmbajtja 3D e larmishme dhe me cilësi të lartë po bëhet gjithnjë e më e rëndësishme për disa industri, duke përfshirë lojërat, robotikën, arkitekturën dhe platformat sociale. Megjithatë, krijimi manual i aseteve 3D është shumë kohë-kërkues dhe kërkon njohuri teknike specifike si dhe aftësi modelimi artistik. Një nga sfidat kryesore është pra shkalla – ndërsa mund të gjeni modele 3D në tregjet 3D si Turbosquid [ ] ose Sketchfab [ ], krijimi i shumë modeleve 3D për të, të themi, populluar një lojë ose një film me një turmë personazhesh që të gjithë duken ndryshe, ende kërkon një sasi të konsiderueshme kohe nga artisti. 4 3 Për të lehtësuar procesin e krijimit të përmbajtjes dhe për ta bërë atë të aksesueshme për një shumëllojshmëri përdoruesish (novicë), rrjetet gjeneruese 3D që mund të prodhojnë asete 3D me cilësi të lartë dhe të larmishme janë bërë kohët e fundit një fushë aktive kërkimore [ , , , , , , , , , , ]. Megjithatë, për të qenë praktikisht të dobishme për aplikacionet aktuale të botës reale, modelet gjeneruese 3D duhet idealisht të plotësojnë kërkesat e mëposhtme: Ato duhet të kenë aftësinë për të gjeneruar forma me detaje gjeometrike dhe topologji arbitrare, Rezultati duhet të jetë një rrjetë e teksturuar, e cila është një përfaqësim primar i përdorur nga paketimet standarde të softuerit grafik si Blender [ ] dhe Maya [ ], dhe Ne duhet të jemi në gjendje të përdorim imazhe 2D për mbikëqyrje, pasi ato janë më gjerësisht të disponueshme sesa format 3D të qarta. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Puna paraprake mbi modelimin gjenerues 3D është fokusuar në nëngrupe të kërkesave të mësipërme, por asnjë metodë deri më sot nuk i plotëson të gjitha ato (Tabela ). Për shembull, metodat që gjenerojnë pika 3D [ , 68, 75] zakonisht nuk prodhojnë tekstura dhe duhet të konvertohen në rrjetë pas përpunimit. 1 5 Metodat që gjenerojnë voksels shpesh mungojnë detajet gjeometrike dhe nuk prodhojnë teksturë [ , , , ]. Modelet gjeneruese të bazuara në fusha nervore [ , ] fokusohen në nxjerrjen e gjeometrisë, por injorojnë teksturën. Shumica e këtyre gjithashtu kërkojnë mbikëqyrje të qartë 3D. Së fundi, metodat që prodhojnë drejtpërdrejt rrjeta 3D të teksturuara [ , ] zakonisht kërkojnë template të formave të paracaktuara dhe nuk mund të gjenerojnë forma me topologji komplekse dhe gjenerim të ndryshueshëm. 66 20 27 40 43 14 54 53 Kohët e fundit, progresi i shpejtë në renderimin vëllimor nervor [ ] dhe Rrjetet 2D kundërshtare gjeneruese (GAN) [ , , , , ] ka çuar në rritjen e sintezës së imazheve 3D-të ndërgjegjshme [ , , , , , ]. Megjithatë, kjo linjë pune synon të sintetizojë imazhe konsistente nga këndvështrime të shumta duke përdorur renderim nervor në procesin e sintezës dhe nuk garanton se mund të gjenerohen forma 3D kuptimplota. Ndërsa një rrjetë mund të merret potencialisht nga përfaqësimi nervor i fushës nën-shtresë duke përdorur algoritmin e kubitjes së marshimit [ ], nxjerrja e teksturës përkatëse nuk është e thjeshtë. 45 34 35 33 29 52 7 57 8 49 51 25 39 Në këtë punë, ne prezantojmë një qasje të re që synon të trajtojë të gjitha kërkesat e një modeli gjenerues 3D praktikisht të dobishëm. Në veçanti, ne propozojmë GET3D, një model jenerues për forma 3D që prodhon drejtpërdrejt rrjeta kspresive eksturuara me detaje të larta gjeometrike dhe teksture dhe topologji arbitrare rrjete. Në zemër të qasjes sonë është një proces gjenerues që përdor një metodë diferencues të nxjerrjes së sipërfaqes te [ ] dhe një teknikë renderimi diferencues [ , ]. E para na lejon të optimizojmë dhe prodhojmë drejtpërdrejt rrjeta 3D të teksturuara me topologji arbitrare, ndërsa e dyta na lejon të trajnojmë modelin tonë me imazhe 2D, duke shfrytëzuar kështu diskriminatorë të fuqishëm dhe të pjekur të zhvilluar për sintezën e imazheve 2D. Meqenëse modeli ynë gjeneron drejtpërdrejt rrjeta dhe përdor një renderues grafik (diferencues) efikas, ne mund ta zgjerojmë lehtësisht modelin tonë për të trajnuar me rezolucion imazhi deri në 1024 × 1024, duke na lejuar të mësojmë detaje gjeometrike dhe teksture me cilësi të lartë. G E T 3D eksplici 60 47 37 Ne demonstrojmë performancë të nivelit të lartë për gjenerimin e formave 3D pa kushte në kategori të shumta me gjeometri komplekse nga ShapeNet [ ], Turbosquid [ ] dhe Renderpeople [ ], siç janë karriget, motoçikletat, makinat, personazhet njerëzore dhe ndërtesat. Me rrjetën e qartë si përfaqësim rezultati, GET3D është gjithashtu shumë fleksibël dhe mund të përshtatet lehtësisht në detyra të tjera, duke përfshirë: mësimin për të gjeneruar materiale të dekompozuara dhe efekte ndriçimi të varura nga këndvështrimi duke përdorur renderim diferencues të avancuar [ ], pa mbikëqyrje, gjenerimi 3D i formave i udhëhequr nga teksti duke përdorur embedding CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Punë të Lidhur Ne rishikojmë përparimet e fundit në modelet gjeneruese 3D për gjeometri dhe pamje, si dhe sintezën e imazheve gjeneruese 3D-të ndërgjegjshme. Në vitet e fundit, modelet gjeneruese 2D kanë arritur cilësi fotorealiste në sintezën e imazheve me rezolucion të lartë [ , , , , , , ]. Ky progres ka frymëzuar gjithashtu kërkimet në gjenerimin e përmbajtjes 3D. Qasjet e hershme synuan të zgjerojnë drejtpërdrejt gjeneratorët CNN 2D në rrjeta voksels 3D [ , , , , ], por gjendja e lartë e kujtesës dhe kompleksiteti llogaritës i konvolucioneve 3D pengojnë procesin e gjenerimit në rezolucion të lartë. Si alternativë, punime të tjera kanë eksploruar përfaqësime pikash [ , , , ], impliciite [ , ], ose oktaedri [ ]. Megjithatë, këto punime fokusohen kryesisht në gjenerimin e gjeometrisë dhe injorojnë pamjen. Përfaqësimet e tyre të rezultateve gjithashtu duhet të përpunohen pas për të bërë ato të pajtueshme me motorët standardë grafikë. Modele Gjeneruese 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Më të ngjashme me punën tonë, Textured3DGAN [ , ] dhe DIBR [ ] gjenerojnë rrjeta 3D të teksturuara, por ato formulojnë gjenerimin si një deformim të një rrjete template, gjë që i pengon ato të gjenerojnë topologji komplekse ose forma me gjenerim të ndryshueshëm, gjë që metoda jonë mund ta bëjë. PolyGen [ ] dhe SurfGen [ ] mund të prodhojnë rrjeta me topologji arbitrare, por nuk sintetizojnë tekstura. 54 53 11 48 41 E frymëzuar nga suksesi i renderimit vëllimor nervor [ ] dhe përfaqësimeve impliciite [ , ], puna e fundit ka filluar të trajtojë problemin e sintezës së imazheve 3D-të ndërgjegjshme [ , , , , , , , , , ]. Megjithatë, rrjetet e renderimit vëllimor nervor janë zakonisht të ngadalta për t'u pyetur, duke çuar në kohë të gjata trajnimi [ , ], dhe gjenerojnë imazhe me rezolucion të kufizuar. GIRAFFE [ ] dhe StyleNerf [ ] përmirësojnë efikasitetin e trajnimit dhe renderimit duke kryer renderim nervor në një rezolucion më të ulët dhe më pas duke zmadhuar rezultatet me një CNN 2D. Megjithatë, fitimi i performancës vjen me koston e një konsistence të reduktuar nga këndvështrime të shumta. Duke përdorur një diskriminator dual, EG3D [ ] mund të zbusë pjesërisht këtë problem. Prapëseprapë, nxjerrja e një sipërfaqeje të teksturuar nga metodat që bazohen në renderim nervor është një përpjekje jo e thjeshtë. Në kontrast, GET3D prodhon drejtpërdrejt rrjeta 3D të teksturuara që mund të përdoren lehtësisht në motorët standardë grafikë. Sinteza e Imazheve Gjeneruese 3D-të Ndërgjegjshme 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Metodë Tani paraqesim kornizën tonë GET3D për sintezën e formave 3D të teksturuara. Procesi ynë i gjenerimit është ndarë në dy pjesë: një degë gjeometrie, e cila prodhon në mënyrë diferencuese një rrjetë sipërfaqësore me topologji arbitrare, dhe një degë teksture që prodhon një fushë teksture e cila mund të pyetet në pikat e sipërfaqes për të prodhuar ngjyra. Kjo e fundit mund të zgjerohet për veti të tjera të sipërfaqes si për shembull materialet (Seksioni ). Gjatë trajnimit, përdoret një rasterizues efikas diferencues për të renderuar rrjetën e teksturuar të nxjerrë në imazhe 2D me rezolucion të lartë. I gjithë procesi është diferencues, duke lejuar trajnimin kundërshtar nga imazhet (me maska që tregojnë një objekt interesi) duke përhapur gradientët nga diskriminatori 2D në të dy degët gjeneruese. Modeli ynë është ilustruar në Fig. . Në vijim, ne së pari prezantojmë gjeneratorin tonë 3D në Seksionin , para se të vazhdojmë me renderimin diferencues dhe funksionet e humbjes në Seksionin . 4.3.1 2 3.1 3.2 3.1 Model Gjenerues i Rrjetave 3D të Teksturuara Synojmë të mësojmë një gjenerator 3D = ( ) për të mapeuar një mostër nga një shpërndarje Gaussiane M, E G z ∈ N (0*,* ) në një rrjetë me teksturë . z I M E Meqenëse e njëjta gjeometri mund të ketë tekstura të ndryshme, dhe e njëjta teksturë mund të aplikohet në gjeometri të ndryshme, ne marrim dy vektorë hyrës rastësorë 1 ∈ R512 dhe 2 ∈ R512. Duke ndjekur StyleGAN [ , , ], ne më pas përdorim rrjetat e mapping jo-linearë geo dhe tex për të mapuar 1 dhe 2 në vektori latentë ndërmjetës 1 = geo( 1) dhe 2 = tex( 2) të cilët më vonë përdoren për të prodhuar që kontrollojnë gjenerimin e formave 3D dhe teksturës, përkatësisht. Ne prezantojmë formalisht gjeneratorin për gjeometrinë në Seksionin dhe gjeneratorin e teksturës në Seksionin . z z 34 35 33 f f z z w f z w f z stilet 3.1.1 3.1.2 3.1.1 Gjenerator Gjeometrie Ne dizajnojmë gjeneratorin tonë të gjeometrisë për të përfshirë DMTet [ ], një përfaqësim sipërfaqësor diferencues i propozuar së fundmi. DMTet përfaqëson gjeometrinë si një fushë sinjali distance (SDF) të përcaktuar në një rrjetë tetraedrike deformuese [ , ], nga e cila sipërfaqja mund të rikuperohet diferencuesisht përmes kubitjes së marshimit [ ]. Deformimi i rrjetës duke lëvizur kulmet e saj rezulton në një përdorim më të mirë të rezolucionit të saj. Duke adoptuar DMTet për nxjerrjen e sipërfaqes, ne mund të prodhojmë rrjeta të qarta me topologji dhe gjenerim arbitrar. Ne më pas ofrojmë një përmbledhje të shkurtër të DMTet dhe i referojmë lexuesit në punimin origjinal për më shumë detaje. 60 22 24 17 Le të ( ) të përshkruajë të gjithë hapësirën 3D ku ndodhet objekti, ku janë kulmet në rrjetën tetraedrike . Çdo tetraedër ∈ definohet duke përdorur katër kulme { }, me ∈ {1*, . . . , K*}, ku është numri total i tetraedrave, dhe ∈ ∈ R3. Përveç koordinatave të saj 3D, çdo kulm përmban vlerën SDF ∈ R dhe deformimin ∆ ∈ R3 të kulmit nga koordinata e saj kanonike fillestare. Ky përfaqësim lejon rikuperimin e rrjetës së qartë përmes kubitjes diferencuese të marshimit [ ], ku vlerat SDF në hapësirë të vazhdueshme llogariten nga një interpolim baricentric i vlerës së tyre në kulmet e deformuara ′ = + ∆ . 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 Ne mapojmë 1 ∈ R512 në vlerat SDF dhe deformimet në çdo kulm përmes një serie shtresash konvolucionale 3D të kushtëzuara dhe plotësisht të lidhura. Në veçanti, ne së pari përdorim shtresa konvolucionale 3D për të gjeneruar një vëllim karakteristik të kushtëzuar nga 1. Ne më pas pyesim karakteristikën në çdo kulm ∈ duke përdorur interpolim trilinear dhe e ushqejmë atë në MLP që prodhon vlerën SDF dhe deformimin ∆ . Në rastet ku kërkohet modelimi në rezolucion të lartë (p.sh., motoçikleta me struktura të holla në rrota), ne përdorim më tej ndarjen vëllimore pas [ ]. Arkitektura e Rrjetit w v i w v i VT si v i 60 Pasi të kemi marrë dhe ∆ për të gjitha kulmet, ne përdorim algoritmin diferencues të kubitjes së marshimit për të nxjerrë rrjetën e qartë. Kubitja e marshimit përcakton topologjinë e sipërfaqes brenda çdo tetraedri bazuar në shenjat e . Në veçanti, një faqe rrjete nxirret kur sign( ) /= sign( ), ku tregojnë indeksat e kulmeve në brinjën e tetraedrit, dhe kulmet të asaj faqeje përcaktohen nga një interpolim linear si mi,j = v 0 i sj−v 0 j si sj−si . Vini re se ekuacioni i mësipërm vlerësohet vetëm kur si 6= sj , prandaj është diferencues, dhe gradentët nga mi,j mund të shtrihen mbrapa në vlerat SDF si dhe deformimet ∆vi . Me këtë përfaqësim, format me topologji arbitrare mund të gjenerohen lehtësisht duke parashikuar shenja të ndryshme të si . Nxjerrja Diferencuese e Rrjetës si v i si si sj i, j m i,j 3.1.2 Gjenerator Teksture Gjenerimi i drejtpërdrejtë i një harte teksture të qëndrueshme me rrjetën e rezultateve nuk është i thjeshtë, pasi forma e gjeneruar mund të ketë një gjenerim dhe topologji arbitrare. Prandaj ne parametrizojmë teksturën si një fushë teksture [ ]. 50 Në veçanti, ne modelojmë fushën teksture me një funksion që mapon vendndodhjen 3D të një pike sipërfaqeje ∈ R3, e kushtëzuar nga 2, në ngjyrën RGB ∈ R3 në atë vendndodhje. Meqenëse fusha teksture varet nga gjeometria, ne gjithashtu kushtëzojmë këtë mapping me kodin latent gjeometrik 1, në mënyrë që = ( *,* 1 ⊕ 2), ku ⊕ përfaqëson bashkimin. ft p w c w c ft p w w Ne përfaqësojmë fushën tonë teksture duke përdorur një përfaqësim tri-plane, i cili është efikas dhe shprehës në rindërtimin e objekteve 3D [ ] dhe gjenerimin e imazheve 3D-të ndërgjegjshme [ ]. Në veçanti, ne ndjekim [ , ] dhe përdorim një rrjetë konvolucionale 2D të kushtëzuar për të mapuar kodin latent 1 ⊕ 2 në tre plane karakteristike ortogonale të rregulluara sipas boshtit me madhësi × × ( × 3), ku = 256 tregon rezolucionin hapësinor dhe = 32 numrin e kanaleve. Arkitektura e Rrjetit 55 8 8 35 w w N N C N C Duke marrë parasysh planet karakteristike, vektori karakteristik f t ∈ R 32 i një pike sipërfaqeje p mund të rikuperohet si f t = P e ρ(πe(p)), ku πe(p) është projeksioni i pikës p në planin karakteristik e dhe ρ(·) tregon interpolimin bilinear të karakteristikave. Një shtresë e mëtejshme e lidhur plotësisht përdoret më pas për të mapuar vektori karakteristik i mbledhur f t në ngjyrën RGB c. Vini re se, ndryshe nga punimet e tjera mbi sintezën e imazheve 3D-të ndërgjegjshme që përdorin gjithashtu një përfaqësim fushe nervore, ne duhet vetëm të marrim mostra nga fusha teksture në vendndodhjet e pikave të sipërfaqes (në kundërshtim me mostrat e dendura përgjatë një rrezeje). Kjo zvogëlon në masë të madhe kompleksitetin llogaritës për renderimin e imazheve me rezolucion të lartë dhe garanton gjenerimin e imazheve konsistente nga kë