```html Mualliflar: Jun Gao, NVIDIA, Toronto universiteti, Vektor instituti (jung@nvidia.com) Tianchang Shen, NVIDIA, Toronto universiteti, Vektor instituti (frshen@nvidia.com) Zian Wang, NVIDIA, Toronto universiteti, Vektor instituti (zianw@nvidia.com) Wenzheng Chen, NVIDIA, Toronto universiteti, Vektor instituti (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, Toronto universiteti, Vektor instituti (sfidler@nvidia.com) Abstrakt Bir qancha sanoat tarmoqlari ulkan 3D virtual dunyolarni modellashtirishga o'tayotganligi sababli, 3D kontentni yaratish vositalariga bo'lgan talab miqdori, sifati va xilma-xilligi bo'yicha kengayish zarurati aniq namoyon bo'lmoqda. Ishimizda biz 3D renderlash vositalari tomonidan to'g'ridan-to'g'ri iste'mol qilinadigan, shu bilan birga quyidagi ilovalarda foydalanishga tayyor bo'lgan teksturali meshlarni sintez qiluvchi yuqori unumdorlikka ega 3D generativ modellarini o'qitishni maqsad qilganmiz. 3D generativ modellashtirish bo'yicha avvalgi ishlar yoki geometrik detallarning etishmasligi, ular ishlab chiqarishi mumkin bo'lgan mesh topologiyasi bilan cheklanganligi, odatda teksturalarni qo'llab-quvvatlamasligi yoki sintez jarayonida neyron renderlovchilardan foydalanishi bilan ajralib turadi, bu esa ulardan umumiy 3D dasturiy ta'minotida foydalanishni murakkablashtiradi. Ushbu ishda biz murakkab topologiya, boy geometrik detallar va yuqori aniqlikdagi teksturalarga ega bo'lgan to'g'ridan-to'g'ri teksturali 3D meshlarni ishlab chiqaruvchi enerativ model bo'lgan GET3D ni taqdim etamiz. Biz differensial yuzani modellashtirish, differensial renderlash hamda 2D Generativ Qarshilik Tarmoqlari sohasidagi so'nggi yutuqlardan foydalanib, 2D tasvir to'plamlaridan modelimizni o'qitamiz. GET3D avtomobillar, stullar, hayvonlar, mototsikllar va inson obrazlaridan tortib binolargacha bo'lgan yuqori sifatli 3D teksturali meshlarni ishlab chiqarishga qodir va avvalgi usullarga nisbatan sezilarli yaxshilanishlarga erishdi. Loyihamiz sahifasi: G https://nv-tlabs.github.io/GET3D 1 Kirish Xilma-xil, yuqori sifatli 3D kontent o'yin, robototexnika, arxitektura va ijtimoiy platformalar kabi bir qancha sanoat tarmoqlari uchun tobora muhim ahamiyat kasb etmoqda. Biroq, 3D aktivlarini qo'lda yaratish juda ko'p vaqt talab qiladi va maxsus texnik bilim hamda badiiy modellashtirish ko'nikmalarini talab qiladi. Asosiy qiyinchiliklardan biri - bu miqyos. Turbosquid [ ] yoki Sketchfab [ ] kabi 3D bozorlarida 3D modellarini topsa bo'lsa-da, ko'p sonli 3D modellarini, masalan, o'yinni yoki filmni turli xil ko'rinishdagi qahramonlar bilan to'ldirish uchun yaratish san'atkorning katta vaqtini oladi. 4 3 Kontent yaratish jarayonini osonlashtirish va uni turli (yangi) foydalanuvchilar uchun qulay qilish maqsadida, yuqori sifatli va xilma-xil 3D aktivlarini ishlab chiqaradigan generativ 3D tarmoqlari yaqinda tadqiqotning faol sohasi sifatida paydo bo'ldi [ , , , , , , , , , , ]. Biroq, amaliy jihatdan foydali bo'lishi uchun, 3D generativ modellar quyidagi talablarni qondirishi kerak: ular detallangan geometriya va ixtiyoriy topologiyaga ega shakllarni ishlab chiqish imkoniyatiga ega bo'lishi kerak, Natijada Blender [ ] va Maya [ ] kabi standart grafik dasturiy ta'minot paketlari tomonidan ishlatiladigan asosiy taqdimot bo'lgan teksturali mesh bo'lishi kerak va Ko'proq keng tarqalgan bo'lgan 2D tasvirlardan ustunlikdan foydalana olishimiz kerak, chunki ular aniq 3D shakllariga qaraganda ko'proq mavjud. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) 3D generativ modellashtirish bo'yicha avvalgi ishlar yuqoridagi talablarning ba'zilariga qaratilgan, ammo hozirgacha hech bir usul ularning barchasini qondirmaydi (1-jadval). Misol uchun, 3D nuqtali bulutlarni [ , 68, 75] ishlab chiqaradigan usullar odatda teksturalarni ishlab chiqarmaydi va keyingi ishlov berishda meshga aylantirilishi kerak. 5 Voksel ishlab chiqaradigan usullar ko'pincha geometrik detallarning etishmasligi va tekstura ishlab chiqarmaslik holati kuzatiladi [ , , , ]. Neyron maydonlariga asoslangan generativ modellar [ , ] geometriyani chiqarishga qaratilgan, ammo teksturani e'tiborsiz qoldiradi. Ularning aksariyati aniq 3D nazoratini ham talab qiladi. Nihoyat, to'g'ridan-to'g'ri teksturali 3D meshlarni [ , ] ishlab chiqaradigan usullar odatda oldindan belgilangan shakl shablonlarini talab qiladi va murakkab topologiya yoki o'zgaruvchan genusli shakllarni ishlab chiqara olmaydi. 66 20 27 40 43 14 54 53 Yaqinda neyron hajm renderlash [ ] va 2D Generativ Qarshilik Tarmoqlari (GANs) [ , , , , ] sohasidagi tezkor taraqqiyot 3D-ga moyil tasvir sintezining [ , , , , , ] paydo bo'lishiga olib keldi. Biroq, bu ishlar neyron renderlashni sintez jarayonida ishlatib, ko'p ko'rinishli mos keluvchi tasvirlarni sintez qilishni maqsad qiladi va ma'noli 3D shakllar ishlab chiqarilishi kafolatlanmaydi. Neyron maydon taqdimotidan mart kubik algoritmi [ ] yordamida mesh olish mumkin bo'lsa-da, mos keladigan teksturani chiqarish murakkab masala. 45 34 35 33 29 52 7 57 8 49 51 25 39 Ushbu ishda biz amaliy jihatdan foydali 3D generativ modelning barcha talablarini qondirishga qaratilgan yangi yondashuvni taqdim etamiz. Xususan, biz GET3D ni taklif qilamiz, bu enerativ model bo'lib, u yuqori geometrik va tekstura detallari hamda ixtiyoriy mesh topologiyasiga ega bo'lgan to'g'ridan-to'g'ri Explicit extured meshlarni ishlab chiqaradi. Yondashuvimizning asosini differensial yuzani chiqarish usuli [ ] va differensial renderlash texnikasi [ , ] dan foydalanadigan generativ jarayon tashkil etadi. Birinchisi bizga ixtiyoriy topologiyaga ega bo'lgan to'g'ridan-to'g'ri optimallashtirish va teksturali 3D meshlarni ishlab chiqarish imkonini beradi, ikkinchisi esa 2D tasvirlar yordamida modelimizni o'qitishga imkon beradi, shu bilan 2D tasvir sintezi uchun ishlab chiqilgan kuchli va etuk diskriminatorlardan foydalanamiz. Modelimiz to'g'ridan-to'g'ri meshlarni ishlab chiqarganligi va yuqori samarali (differensial) grafik renderlovchidan foydalanganligi sababli, biz modelimizni yuqori aniqlikdagi 1024 × 1024 gacha bo'lgan tasvir bilan o'qitishga osongina kengayta olamiz, bu esa bizga yuqori sifatli geometrik va tekstura detallarini o'rganish imkonini beradi. G E T 3D explicit 60 47 37 Biz ShapeNet [ ], Turbosquid [ ] va Renderpeople [ ] dan avtomobillar, stullar, hayvonlar, mototsikllar va inson obrazlaridan tortib binolargacha bo'lgan murakkab geometriyaga ega ko'plab kategoriyalar bo'yicha holatsiz 3D shakl ishlab chiqarishda eng yaxshi natijalarga erishdik. GET3D, mesh natijasini chiqarish bilan, boshqa vazifalarga ham osongina moslashtirilishi mumkin, jumladan: differensial renderlashning ilg'or usullaridan foydalangan holda ajratilgan material va ko'rinishga bog'liq yoritish effektlarini ishlab chiqarishni o'rganish [ ], nazoratsiz, CLIP [ ] embeddingsidan foydalangan holda matn yo'nalishli 3D shakl ishlab chiqarish. 9 4 2 (a) 12 (b) 56 2 Tegishli ishlar Biz geometriya va ko'rinish uchun 3D generativ modellar, shuningdek, 3Dga moyil generativ tasvir sintezi sohasidagi so'nggi yutuqlarni ko'rib chiqamiz. So'nggi yillarda, 2D generativ modellar yuqori aniqlikdagi tasvir sintezida fotorealistik sifatga erishdilar [ , , , , , , ]. Bu taraqqiyot 3D kontentni yaratish bo'yicha tadqiqotlarni ham ilhomlantirdi. Dastlabki yondashuvlar 2D CNN generatorlarini 3D voksel setkalariga [ , , , , ] kengaytirishni maqsad qilgan, ammo 3D konvolyutsiyalarining yuqori xotira talabi va hisoblash murakkabligi yuqori aniqlikdagi ishlab chiqarish jarayonini sekinlashtiradi. Alternativ sifatida, boshqa ishlar nuqtali bulut [ , , , ], yashirin [ , ], yoki oktree [ ] taqdimotlarini o'rganishgan. Biroq, bu ishlar asosan geometriyani ishlab chiqarishga qaratilgan va ko'rinishni e'tiborsiz qoldiradi. Ularning natijalarini standart grafik vositalariga mos kelishi uchun keyingi ishlov berish kerak. 3D Generativ Modellar 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Bizning ishimizga o'xshash, Textured3DGAN [ , ] va DIBR [ ] teksturali 3D meshlarni ishlab chiqaradi, ammo ular generatsiyani standart meshni deformatsiya qilish sifatida shakllantiradilar, bu esa ularni murakkab topologiya yoki o'zgaruvchan genusli shakllarni ishlab chiqarishdan to'xtatadi, bizning usulimiz buni qila oladi. PolyGen [ ] va SurfGen [ ] ixtiyoriy topologiyali meshlarni ishlab chiqarishi mumkin, ammo ular teksturalarni sintez qilmaydi. 54 53 11 48 41 Neyron hajm renderlash [ ] va yashirin taqdimotlardagi [ , ] muvaffaqiyatdan ilhomlanib, so'nggi ishlar 3Dga moyil tasvir sintezi [ , , , , , , , , , ] muammosini hal qilishni boshladilar. Biroq, neyron hajm renderlash tarmoqlari odatda so'rov uchun sekin ishlaydi, bu uzoq o'qitish vaqtlariga [ , ] olib keladi va cheklangan aniqlikdagi tasvirlarni ishlab chiqaradi. GIRAFFE [ ] va StyleNerf [ ] neyron renderlashni past aniqlikda bajarib, keyin natijalarni 2D CNN bilan yuqoriga o'lchash orqali o'qitish va renderlash samaradorligini oshiradi. Biroq, bu samaradorlikning o'sishi ko'p ko'rinishli moslikning pasayishi hisobiga amalga oshiriladi. EG3D [ ] ikkita diskriminatordan foydalanib, bu muammoning bir qismini hal qilishi mumkin. Shunga qaramay, neyron renderlashga asoslangan usullardan teksturali yuzani chiqarish murakkab vazifadir. Bunga qarshi, GET3D to'g'ridan-to'g'ri standart grafik vositalarida ishlatilishi mumkin bo'lgan teksturali 3D meshlarni ishlab chiqaradi. 3D-ga Moyil Generativ Tasvir Sintezi 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Usul Endi biz teksturali 3D shakllarni sintez qilish uchun GET3D freymvorkini taqdim etamiz. Bizning generativ jarayonimiz ikki qismga bo'lingan: ixtiyoriy topologiyali yuz meshini differensial ravishda chiqaradigan geometriya shoxobchasi va yuz punktlarida ranglarni ishlab chiqarish uchun so'ralishi mumkin bo'lgan tekstura maydonini ishlab chiqaradigan tekstura shoxobchasi. Ikkinchisi boshqa yuz xususiyatlari, masalan, materiallar (4.3.1-bo'lim) uchun kengaytirilishi mumkin. O'qitish vaqtida yuqori aniqlikdagi 2D tasvirlarni renderlash uchun samarali differensial rasterizator ishlatiladi. Butun jarayon differensialdir, bu esa 2D diskriminatordan ikkala generator shoxobchasiga gradientlarni tarqatish orqali tasvirlardan (ob'ektning o'rnini ko'rsatuvchi maskalar bilan) qarshi o'qitishga imkon beradi. Modelimiz 2-rasmda ko'rsatilgan. Quyida, avval 3.1-bo'limda 3D generatorimizni, so'ngra 3.2-bo'limda differensial renderlash va yo'qotish funksiyalarini taqdim etamiz. 3.1 3D Teksturali Meshlarning Generativ Modeli Biz Gauss taqsimotidan olingan namuna ∈ N (0*,* ) ni teksturali mesh bilan = ( ) ga aylantiradigan 3D generatorini o'rganishni maqsad qilganmiz. z I M M, E G z Bir xil geometriya turli xil teksturalarga ega bo'lishi mumkin va bir xil tekstura turli geometriyaga tatbiq etilishi mumkinligi sababli, biz ikkita tasodifiy kirish vektorini 1 ∈ R512 va 2 ∈ R512 namunasini olamiz. StyleGAN [ , , ] ga amal qilib, biz keyin no'linli xaritalash tarmoqlarini geo va tex dan foydalanib, 1 va 2 ni oraliq latents vectors 1 = geo( 1) va 2 = tex( 2) ga aylantiramiz, ular keyin 3D shakllar va tekstura ishlab chiqarishni boshqaradigan ishlab chiqarish uchun ishlatiladi. Geometriya uchun generatorni 3.1.1-bo'limda, tekstura generatorini esa 3.1.2-bo'limda rasmiy ravishda ta'riflaymiz. z z 34 35 33 f f z z w f z w f z styles 3.1.1 Geometriya Generatori Biz geometriya generatorimizni yaqinda taklif qilingan differensial yuz taqdimoti bo'lgan DMTet [ ] ni o'z ichiga oladigan qilib loyihalashtirdik. DMTet geometriyani deformatsiyalanuvchi tetraedral setka [ , ] da aniqlangan imzo masofa maydoni (SDF) sifatida taqdim etadi, undan yuz differensial mart tetrahidralari [ ] orqali tiklanishi mumkin. Setkani uning uchlarini siljitish orqali deformatsiya qilish uning aniqligidan yaxshiroq foydalanishga olib keladi. Yuzni chiqarish uchun DMTetni qabul qilish orqali biz ixtiyoriy topologiya va genusga ega bo'lgan aniq meshlarni ishlab chiqaramiz. Keyin DMTetning qisqacha mazmunini taqdim etamiz va qo'shimcha ma'lumotlar uchun asl maqolaga murojaat qilamiz. 60 22 24 17 Let ( ) ni ob'ekt joylashgan to'liq 3D makonni belgilaylik, bu yerda tetraedral setka dagi uchlar, har bir tetraedr ∈ to'rtta uchdan { } bilan aniqlanadi, bu yerda ∈ {1*, . . . , K*}, bu yerda tetraedrlar soni, va ∈ ∈ R3. O'zining 3D koordinatalariga qo'shimcha ravishda, har bir uch da SDF qiymati ∈ R va uning dastlabki kanonik koordinatadan deformatsiyasi ∆ ∈ R3 mavjud. Bu taqdimot differensial mart tetrahidralari [ ] orqali aniq meshni tiklashga imkon beradi, bu yerda uzluksiz fazodagi SDF qiymatlari deformatsiyalangan uchlar ′ = + ∆ dagi ularning qiymati ning barysentrik interpolatsiyasi bilan hisoblanadi. 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 v v i v i si Biz 1 ∈ R512 ni har bir uch dagi SDF qiymatlari va deformatsiyalariga ketma-ket 3D konvolyutsion va to'liq ulangan qatlamlar orqali xaritalaymiz. Xususan, biz avval 1 dan tayyorlangan xususiyat hajmini ishlab chiqarish uchun 3D konvolyutsion qatlamlardan foydalanamiz. Keyin biz har bir uch ∈ ni trilinear interpolatsiya yordamida so'raymiz va uni SDF qiymati va deformatsiya ∆ ni ishlab chiqaradigan MLPlarga kiritamiz. Yuqori aniqlikdagi modellashtirish talab qilinadigan holatlarda (masalan, g'ildiraklardagi yupqa tuzilmalarga ega mototsikl), biz yanada hajm bo'linishidan [ ] ga amal qilib foydalanamiz. Tarmoq Arhitekturasi w v i w v i VT si v i 60 Barcha uchlar uchun va ∆ olingandan so'ng, biz aniq meshni chiqarish uchun differensial mart tetrahidralari algoritmidan foydalanamiz. Mart tetrahidralari har bir tetraedr ichidagi yuz topologiyasini ning belgilari asosida aniqlaydi. Xususan, mesh yuzi bo'lganda chiqariladi, bu yerda tetraedr qirrasidagi uchlar indekslarini bildiradi va shu yuzning uchlari chiziqli interpolatsiya sifatida mi,j = v 0 i sj−v 0 j si sj−si . Shuni ta'kidlash kerakki, yuqoridagi tenglama faqat si 6= sj bo'lganda baholanadi, shuning uchun u differensialdir va mi,j dan gradient si va ∆vi SDF qiymatlariga qayta tarqalishi mumkin. Bu taqdimot bilan, ixtiyoriy topologiyali shakllar si ning turli belgilarini bashorat qilish orqali osongina ishlab chiqarilishi mumkin. Differensial Mesh Chiqarish si v i si sign(si) /= sign(sj) i, j m i,j 3.1.2 Tekstura Generatori Chiqarilgan meshga mos keladigan tekstura xaritasini to'g'ridan-to'g'ri ishlab chiqarish murakkab emas, chunki ishlab chiqarilgan shakl ixtiyoriy genus va topologiyaga ega bo'lishi mumkin. Shuning uchun biz teksturani tekstura maydoni [ ] sifatida parametrlashtiramiz. 50 Xususan, biz tekstura maydonini 2 ga asoslanib, 3D joylashuvi ∈ R3 bo'lgan yuz nuqtasidan RGB rangi ∈ R3 ga olib boradigan funksiya bilan modellashtiramiz. Tekstura maydoni geometriyaga bog'liq bo'lganligi sababli, biz bu xaritalashni geometriya latens kodi 1 ga ham asoslaymiz, shunda = ( *,* 1 ⊕ 2) bo'ladi, bu yerda ⊕ birikmani bildiradi. w p c ft w c ft p w w Biz tekstura maydonimizni tri-plan taqdimotidan foydalangan holda taqdim etamiz, bu esa 3D ob'ektlarni [ ] qayta tiklash va 3Dga moyil tasvirlarni [ ] ishlab chiqarishda samarali va ifodali. Xususan, biz 1 ⊕ 2 ni × × ( × 3) o'lchamdagi uchta o'qqa parallel ortogonal xususiyat rejalariga xaritalash uchun konditsion 2D konvolyutsion neyron tarmog'idan foydalanamiz, bu yerda = 256 fazoviy aniqlikni va = 32 kanal sonini bildiradi. Tarmoq Arhitekturasi 55 8 w w N N C N C Xususiyat rejalaridan olingan holda, yuz nuqtasi p ning xususiyat vektori f t ∈ R 32 ni f t = P e ρ(πe(p)) sifatida tiklanishi mumkin, bu yerda πe(p) nuqta p ning xususiyat rejasiga e proyektsiyasi va ρ(·) xususiyatlarning bilinear interpolatsiyasi. Qo'shimcha to'liq ulangan qatlam keyin agregatlangan xususiyat vektori f t ni RGB rangiga c xaritalash uchun ishlatiladi. Shuni ta'kidlash kerakki, 3Dga moyil tasvir sintezi [8, 25, 7, 57] bo'yicha boshqa ishlardan farqli o'laroq, ular ham neyron maydon taqdimotidan foydalanadi, biz faqat tekstura maydonini yuz nuqtalarining joylarida (to'liq nur bo'ylab namunalar o'rniga) so'raymiz. Bu yuqori aniqlikdagi tasvirlarni renderlash uchun hisoblash murakkabligini sezilarli darajada kamaytiradi va qurilma bo'yicha ko'p ko'rinishli mos keluvchi tasvirlarni ishlab chiqarishni kafolatlaydi. 3.2 Differensial Renderlash va O'qitish O'qitish paytida modelimizni nazorat qilish uchun biz Nvdiffrec [ ] dan ilhomlanamiz, bu differensial renderlovchidan foydalangan holda ko'p ko'rinishli 3D ob'ektni qayta tiklashni amalga oshiradi. Xususan, biz chiqarilgan 3D meshni va tekstura maydonini differensial renderlovchi [ ] dan foydalanib 2D tasvirlarga renderlaymiz va modelimizni 2D diskriminator bilan nazorat qilamiz, bu esa tasvirni haqiqiy ob'ektdan yoki ishlab chiqarilgan ob'ektdan renderlanganligini ajratishga harakat qiladi. 47 37 Datasetdagi tasvirlarni olish uchun ishlatilgan kamera taqsimoti C ma'lum ekanligini faraz qilamiz. Ishlab chiqarilgan shakllarni renderlash uchun biz C dan kamerani tasodifiy tanlaymiz va differensial renderlovchi Nvdiffrast [ ] dan foydalanib, 3D meshni 2D siluetga, shuningdek, har bir pikselda mos keladigan 3D nuqtaning koordinatalarini o'z ichiga olgan tasvirga renderlaymiz. Differensial Renderlash 37 Mesh yuzasi. Ushbu koordinatalar keyin RGB qiymatlarni olish uchun tekstura maydonini so'rash uchun ishlatiladi. Chiqarilgan mesh bilan to'g'ridan-to'g'ri ish