```html Pengarang: 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) Abstrak Oleh kerana beberapa industri beralih ke arah pemodelan dunia maya 3D yang besar, keperluan untuk alat penciptaan kandungan yang boleh diskalakan dari segi kuantiti, kualiti, dan kepelbagaian kandungan 3D menjadi semakin ketara. Dalam kerja kami, kami bertujuan untuk melatih model penjana 3D yang berprestasi yang menghasilkan mesh bertekstur yang boleh terus digunakan oleh enjin pemaparan 3D, justeru boleh digunakan segera dalam aplikasi hiliran. Kerja-kerja terdahulu mengenai pemodelan penjana 3D sama ada kekurangan perincian geometri, terhad dalam topologi mesh yang boleh mereka hasilkan, lazimnya tidak menyokong tekstur, atau menggunakan penjana saraf dalam proses sintesis, yang menjadikan penggunaannya dalam perisian 3D biasa bukan remeh. Dalam kerja ini, kami memperkenalkan GET3D, model eneratif yang secara langsung menghasilkan mesh bertekstur ksplisit extured dengan topologi yang kompleks, perincian geometri yang kaya, dan tekstur berketepatan tinggi. Kami merapatkan kejayaan terbaru dalam pemodelan permukaan boleh dibezakan, pemaparan boleh dibezakan serta Rangkaian Adversarial Penjana 2D untuk melatih model kami daripada koleksi imej 2D. GET3D mampu menghasilkan mesh bertekstur 3D berkualiti tinggi, daripada kereta, kerusi, haiwan, motosikal dan watak manusia kepada bangunan, mencapai peningkatan ketara berbanding kaedah sebelumnya. Halaman projek kami: G E T 3D https://nv-tlabs.github.io/GET3D 1 Pengenalan Kandungan 3D yang pelbagai dan berkualiti tinggi semakin penting untuk beberapa industri, termasuk permainan, robotik, seni bina dan platform sosial. Walau bagaimanapun, penciptaan aset 3D secara manual sangat memakan masa dan memerlukan pengetahuan teknikal khusus serta kemahiran pemodelan seni. Salah satu cabaran utama ialah skala – walaupun seseorang boleh mencari model 3D di pasaran 3D seperti Turbosquid [ ] atau Sketchfab [ ], mencipta banyak model 3D untuk, katakan, mengisi permainan atau filem dengan sekumpulan watak yang semuanya kelihatan berbeza masih mengambil masa artis yang signifikan. 4 3 Untuk memudahkan proses penciptaan kandungan dan menjadikannya boleh diakses oleh pelbagai pengguna (novis), rangkaian penjana 3D yang boleh menghasilkan aset 3D berkualiti tinggi dan pelbagai baru-baru ini menjadi kawasan penyelidikan aktif [ , , , , , , , , , , ]. Walau bagaimanapun, agar berguna secara praktikal untuk aplikasi dunia sebenar semasa, model penjana 3D sepatutnya memenuhi keperluan berikut: Ia sepatutnya mempunyai kapasiti untuk menghasilkan bentuk dengan perincian geometri dan topologi sewenang-wenangnya, Outputnya sepatutnya menjadi mesh bertekstur, yang merupakan perwakilan utama yang digunakan oleh pakej perisian grafik standard seperti Blender [ ] dan Maya [ ], dan Kita sepatutnya dapat memanfaatkan imej 2D untuk penyeliaan, kerana ia lebih tersedia secara meluas daripada bentuk 3D eksplisit. 5 14 43 46 53 68 75 60 59 69 23 (a) (b) 15 1 (c) Kerja terdahulu mengenai pemodelan penjana 3D telah memberi tumpuan kepada subset keperluan di atas, tetapi tiada kaedah sehingga kini memenuhi kesemuanya (Jad. ). Contohnya, kaedah yang menghasilkan point cloud 3D [ , 68, 75] lazimnya tidak menghasilkan tekstur dan perlu ditukar kepada mesh dalam pemprosesan selepas itu. 1 5 Kaedah yang menghasilkan voxel selalunya kekurangan perincian geometri dan tidak menghasilkan tekstur [ , , , ]. Model penjana berdasarkan medan saraf [ , ] menumpukan pada mengekstrak geometri tetapi mengabaikan tekstur. Kebanyakan daripadanya juga memerlukan penyeliaan 3D eksplisit. Akhir sekali, kaedah yang secara langsung menghasilkan mesh 3D bertekstur [ , ] lazimnya memerlukan templat bentuk yang telah ditetapkan dan tidak dapat menghasilkan bentuk dengan topologi yang kompleks dan genus yang berubah-ubah. 66 20 27 40 43 14 54 53 Baru-baru ini, kemajuan pesat dalam rendering volum saraf [ ] dan Rangkaian Adversarial Penjana 2D (GAN) [ , , , , ] telah membawa kepada peningkatan sintesis imej sedar 3D [ , , , , , ]. Walau bagaimanapun, barisan kerja ini bertujuan untuk mensintesis imej yang konsisten pelbagai pandangan menggunakan rendering saraf dalam proses sintesis dan tidak menjamin bahawa bentuk 3D yang bermakna boleh dihasilkan. Walaupun mesh berpotensi diperoleh daripada perwakilan medan saraf yang mendasarinya menggunakan algoritma kiub undur [ ], mengekstrak tekstur yang sepadan bukanlah satu usaha yang remeh. 45 34 35 33 29 52 7 57 8 49 51 25 39 Dalam kerja ini, kami memperkenalkan pendekatan novel yang bertujuan untuk menangani semua keperluan model penjana 3D yang berguna secara praktikal. Khususnya, kami mencadangkan GET3D, model eneratif untuk bentuk 3D yang secara langsung menghasilkan mesh bertekstur ksplisit extured dengan perincian geometri dan tekstur yang tinggi serta topologi mesh sewenang-wenangnya. Di tengah-tengah pendekatan kami ialah proses penjanaan yang menggunakan kaedah pengekstrakan permukaan boleh dibezakan [ ] dan teknik rendering boleh dibezakan [ , ]. Yang pertama membolehkan kami mengoptimumkan dan menghasilkan secara langsung mesh 3D bertekstur dengan topologi sewenang-wenangnya, manakala yang kedua membolehkan kami melatih model kami dengan imej 2D, justeru memanfaatkan diskriminator yang berkuasa dan matang yang dibangunkan untuk sintesis imej 2D. Memandangkan model kami secara langsung menghasilkan mesh dan menggunakan penjana grafik (boleh dibezakan) yang sangat cekap, kami boleh meningkatkan skala model kami untuk melatih dengan imej G E T 3D eksplisit 60 47 37 resolusi setinggi 1024 × 1024, membolehkan kami mempelajari perincian geometri dan tekstur berkualiti tinggi. Kami menunjukkan prestasi canggih untuk penjanaan bentuk 3D tanpa syarat pada pelbagai kategori dengan geometri kompleks daripada ShapeNet [ ], Turbosquid [ ] dan Renderpeople [ ], seperti kerusi, motosikal, kereta, watak manusia, dan bangunan. Dengan mesh eksplisit sebagai perwakilan output, GET3D juga sangat fleksibel dan boleh diadaptasi dengan mudah kepada tugas lain, termasuk: pembelajaran untuk menjana kesan pencahayaan yang bergantung pada bahan yang terurai dan pandangan menggunakan rendering boleh dibezakan lanjutan [ ], tanpa penyeliaan, penjanaan bentuk 3D berpandukan teks menggunakan pengekodan CLIP [ ]. 9 4 2 (a) 12 (b) 56 2 Kerja Berkaitan Kami menyemak kemajuan terkini dalam model penjana 3D untuk geometri dan penampilan, serta sintesis imej penjana sedar 3D. Dalam beberapa tahun kebelakangan ini, model penjana 2D telah mencapai kualiti fotorealistik dalam sintesis imej beresolusi tinggi [ , , , , , , ]. Kemajuan ini juga telah memberi inspirasi kepada penyelidikan dalam penjanaan kandungan 3D. Pendekatan awal bertujuan untuk melanjutkan penjana CNN 2D secara langsung ke grid voxel 3D [ , , , , ], tetapi jejak memori yang tinggi dan kerumitan pengiraan konvolusi 3D menghalang proses penjanaan pada resolusi tinggi. Sebagai alternatif, kerja-kerja lain telah meneroka perwakilan point cloud [ , , , ], implisit [ , ], atau octree [ ]. Walau bagaimanapun, kerja-kerja ini terutamanya menumpukan pada penjanaan geometri dan mengabaikan penampilan. Perwakilan output mereka juga perlu diproses selepas itu agar serasi dengan enjin grafik standard. Model Penjana 3D 34 35 33 52 29 19 16 66 20 27 40 62 5 68 75 46 43 14 30 Lebih serupa dengan kerja kami, Textured3DGAN [ , ] dan DIBR [ ] menghasilkan mesh 3D bertekstur, tetapi mereka merumuskan penjanaan sebagai deformasi templat mesh, yang menghalang mereka daripada menghasilkan topologi kompleks atau bentuk dengan genus yang berubah-ubah, yang boleh dilakukan oleh kaedah kami. PolyGen [ ] dan SurfGen [ ] boleh menghasilkan mesh dengan topologi sewenang-wenangnya, tetapi tidak mensintesis tekstur. 54 53 11 48 41 Terinspirasi oleh kejayaan rendering volum saraf [ ] dan perwakilan implisit [ , ], kerja terbaru mula menangani masalah sintesis imej sedar 3D [ , , , , , , , , , ]. Walau bagaimanapun, rangkaian rendering volum saraf biasanya lambat untuk ditanya, yang membawa kepada masa latihan yang panjang [ , ], dan menghasilkan imej beresolusi terhad. GIRAFFE [ ] dan StyleNerf [ ] meningkatkan kecekapan latihan dan pemaparan dengan melakukan rendering saraf pada resolusi yang lebih rendah dan kemudian menaikkan resolusi hasilnya dengan CNN 2D. Walau bagaimanapun, peningkatan prestasi datang dengan kos konsistensi pelbagai pandangan yang dikurangkan. Dengan menggunakan diskriminator dwi, EG3D [ ] boleh mengurangkan masalah ini sebahagiannya. Namun demikian, mengekstrak permukaan bertekstur daripada kaedah yang berasaskan rendering saraf adalah satu usaha yang tidak remeh. Sebaliknya, GET3D secara langsung menghasilkan mesh 3D bertekstur yang boleh digunakan dengan mudah dalam enjin grafik standard. Sintesis Imej Penjana Sedar 3D 45 43 14 7 57 49 26 25 76 8 51 58 67 7 57 49 25 8 3 Kaedah Kami kini membentangkan rangka kerja GET3D kami untuk mensintesis bentuk 3D bertekstur. Proses penjanaan kami terbahagi kepada dua bahagian: cabang geometri, yang secara boleh dibezakan menghasilkan mesh permukaan topologi sewenang-wenangnya, dan cabang tekstur yang menghasilkan medan tekstur yang boleh ditanya pada titik permukaan untuk menghasilkan warna. Yang terakhir ini boleh diperluaskan kepada sifat permukaan lain seperti contohnya bahan (Bab ). Semasa latihan, penjana raster boleh dibezakan yang cekap digunakan untuk memaparkan mesh bertekstur yang terhasil ke dalam imej 2D beresolusi tinggi. Keseluruhan proses boleh dibezakan, membolehkan latihan adversarial daripada imej (dengan topeng yang menunjukkan objek yang diminati) dengan menyebarkan gradien daripada diskriminator 2D kepada kedua-dua cabang penjana. Model kami digambarkan dalam Rajah . Dalam bahagian berikut, kami pertama kali memperkenalkan penjana 3D kami dalam Bab , sebelum meneruskan kepada rendering boleh dibezakan dan fungsi kerugian dalam Bab . 4.3.1 2 3.1 3.2 3.1 Model Penjana Mesh 3D Bertekstur Kami bertujuan untuk mempelajari penjana 3D = ( ) untuk memetakan sampel daripada taburan Gaussian M, E G z ∈ N (0*,* ) kepada mesh dengan tekstur . z I M E Memandangkan geometri yang sama boleh mempunyai tekstur yang berbeza, dan tekstur yang sama boleh digunakan pada geometri yang berbeza, kami mengambil sampel dua vektor input rawak 1 ∈ R512 dan 2 ∈ R512. Mengikut StyleGAN [ , , ], kami kemudian menggunakan rangkaian pemetaan bukan linear geo dan tex untuk memetakan 1 dan 2 kepada vektor laten perantaraan 1 = geo( 1) dan 2 = tex( 2) yang seterusnya digunakan untuk menghasilkan yang mengawal penjanaan bentuk 3D dan tekstur, masing-masing. Kami secara rasmi memperkenalkan penjana untuk geometri dalam Bab dan penjana tekstur dalam Bab . z z 34 35 33 f f z z w f z w f z gaya 3.1.1 3.1.2 3.1.1 Penjana Geometri Kami mereka bentuk penjana geometri kami untuk menggabungkan DMTet [ ], perwakilan permukaan boleh dibezakan yang dicadangkan baru-baru ini. DMTet mewakili geometri sebagai medan jarak bertanda (SDF) yang ditakrifkan pada grid tetrahedron boleh ubah [ , ], dari mana permukaan boleh diperoleh semula secara boleh dibezakan melalui kiub undur [ ]. Mengubah bentuk grid dengan menggerakkan verteksnya menghasilkan penggunaan resolusinya yang lebih baik. Dengan menggunakan DMTet untuk pengekstrakan permukaan, kami boleh menghasilkan mesh eksplisit dengan topologi dan genus sewenang-wenangnya. Seterusnya kami memberikan ringkasan ringkas DMTet dan merujuk pembaca kepada kertas asal untuk butiran lanjut. 60 22 24 17 Biarkan ( ) mewakili keseluruhan ruang 3D tempat objek berada, di mana ialah verteks dalam grid tetrahedron . Setiap tetrahedron ∈ ditakrifkan menggunakan empat verteks { }, dengan ∈ {1*, . . . , K*}, di mana ialah jumlah tetrahedron, dan ∈ ∈ R3. Selain daripada koordinat 3D -nya, setiap verteks mengandungi nilai SDF ∈ R dan ubah bentuk ∆ ∈ R3 verteks daripada koordinat kanonik asalnya. Perwakilan ini membolehkan pemerolehan semula mesh eksplisit melalui kiub undur boleh dibezakan [ ], di mana nilai SDF dalam ruang berterusan dikira oleh interpolasi barycentric nilainya pada verteks yang diubah bentuk ′ = + ∆ . VT , T VT T Tk T v ak , v bk , v ck , v dk k K v ik VT , v ik i v i si v i 60 si v v i v i Kami memetakan 1 ∈ R512 kepada nilai SDF dan ubah bentuk pada setiap verteks melalui siri lapisan konvolusional 3D bersyarat dan lapisan bersambung sepenuhnya. Khususnya, kami mula-mula menggunakan lapisan konvolusional 3D untuk menjana isipadu ciri yang bersyarat pada 1. Kami kemudian menyoal ciri pada setiap verteks ∈ menggunakan interpolasi trilinear dan memasukkannya ke dalam MLP yang menghasilkan nilai SDF dan ubah bentuk ∆ . Sekiranya pemodelan pada resolusi tinggi diperlukan (contohnya motosikal dengan struktur nipis pada roda), kami seterusnya menggunakan pembahagian isipadu mengikut [ ]. Senibina Rangkaian w v i w v i VT si v i 60 Selepas memperoleh dan ∆ untuk semua verteks, kami menggunakan algoritma kiub undur boleh dibezakan untuk mengekstrak mesh eksplisit. Kiub undur menentukan topologi permukaan dalam setiap tetrahedron berdasarkan tanda . Khususnya, muka mesh diekstrak apabila sign( ) /= sign( ), di mana menunjukkan indeks verteks dalam tepi tetrahedron, dan verteks bagi muka itu ditentukan oleh interpolasi linear sebagai mi,j = v 0 i sj−v 0 j si sj−si . Ambil perhatian bahawa persamaan di atas hanya dinilai apabila si 6= sj , oleh itu ia boleh dibezakan, dan gradien daripada mi,j boleh disebarkan semula ke dalam nilai SDF si dan ubah bentuk ∆vi . Dengan perwakilan ini, bentuk dengan topologi sewenang-wenangnya boleh dihasilkan dengan mudah dengan meramalkan tanda si yang berbeza. Pengekstrakan Mesh Boleh Dibezakan si v i si si sj i, j m i,j 3.1.2 Penjana Tekstur Menghasilkan peta tekstur yang konsisten dengan mesh output secara langsung bukanlah satu usaha yang remeh, kerana bentuk yang dihasilkan boleh mempunyai genus dan topologi sewenang-wenangnya. Oleh itu, kami memparameterkan tekstur sebagai medan tekstur [ ]. 50 Secara khusus, kami memodelkan medan tekstur dengan fungsi yang memetakan lokasi 3D titik permukaan ∈ R3, bersyarat pada 2, kepada warna RGB ∈ R3 pada lokasi tersebut. Memandangkan medan tekstur bergantung pada geometri, kami seterusnya mensyaratkan pemetaan ini pada kod laten geometri 1, supaya = ( *,* 1 ⊕ 2), di mana ⊕ menandakan penyambungan. ft p w c w c ft p w w Kami mewakili medan tekstur kami menggunakan perwakilan tri-satah, yang cekap dan ekspresif dalam membina semula objek 3D [ ] dan menjana imej sedar 3D [ ] . Khususnya, kami mengikut [ , ] dan menggunakan rangkaian saraf konvolusional 2D bersyarat untuk memetakan kod laten 1 ⊕ 2 kepada tiga satah ciri ortogon selaras paksi bersaiz × × ( × 3), di mana = 256 menandakan resolusi spatial dan = 32 bilangan saluran. Senibina Rangkaian 55 8 8 35 w w N N C N C Diberikan satah ciri, vektor ciri f t ∈ R 32 bagi titik permukaan p boleh diperoleh semula sebagai f t = P e ρ(πe(p)), di mana πe(p) ialah unjuran titik p ke satah ciri e dan ρ(·) menandakan interpolasi bilinear ciri. Lapisan bersambung sepenuhnya tambahan kemudian digunakan untuk memetakan vektor ciri teragregat f t kepada warna RGB c. Ambil perhatian bahawa, berbeza daripada kerja lain mengenai sintesis imej sedar 3D [8, 25, 7, 57] yang juga menggunakan perwakilan medan saraf, kami hanya perlu mengambil sampel medan tekstur pada lokasi titik permukaan (berbanding sampel padat di sepanjang sinaran. Ini mengurangkan kerumitan pengiraan secara mendadak untuk memaparkan imej beresolusi tinggi dan menjamin penjanaan imej yang konsisten pelbagai pandangan mengikut pembinaan. 3.2 Rendering Boleh Dibezakan dan Latihan Untuk menyelia model kami semasa latihan, kami mendapat inspirasi daripada Nvdiffrec [ ] yang melakukan pembinaan semula objek 3D pelbagai pandangan dengan menggunakan penjana boleh dibezakan. Khususnya, kami memaparkan mesh 3D yang diekstrak dan medan tekstur ke dalam imej 2D menggunakan penjana boleh dibezakan [ ], dan menyelia rangkaian kami dengan diskriminator 2D, yang cuba membezakan imej daripada objek sebenar atau yang dipaparkan daripada objek yang dijana. 47 37 Kami menganggap bahawa taburan kamera C yang digunakan untuk memperoleh imej dalam set data diketahui. Untuk memaparkan bentuk yang dijana, kami mengambil sampel kamera rawak daripada C, dan menggunakan penjana raster boleh dibezakan yang dioptimumkan tinggi Nvdiffrast [ ] untuk memaparkan mesh 3D menjadi siluet 2D serta imej di mana setiap piksel mengandungi koordinat titik 3D yang sepadan Rendering Boleh Dibezakan c 37 pada permukaan mesh. Koordinat ini seterusnya digunakan untuk menyoal medan tekstur untuk mendapatkan nilai RGB. Memandangkan kami beroperasi secara langsung pada mesh yang diekstrak, kami boleh memaparkan imej beresolusi tinggi dengan kecekapan tinggi, membolehkan model kami dilatih dengan resolusi imej setinggi 1024×1024. Kami melatih model kami menggunakan objektif adversarial. Kami menggunakan senibina diskriminator daripada StyleGAN [ ], dan menggunakan objektif GAN bukan menjangkaukan yang sama dengan peneguhan R1 [ ]. Kami mendapati secara empirikal bahawa menggunakan dua diskriminator berasingan, satu untuk imej RGB dan satu lagi untuk siluet, menghasilkan hasil yang lebih baik daripada satu diskriminator yang beroperasi pada kedua-duanya. Biarkan mewakili diskriminator, di mana boleh sama ada imej RGB atau siluet. Objektif adversarial kemudiannya ditakrifkan seperti berikut: Diskriminator & Objektif 34 42 Dx x di mana ( ) ditakrifkan sebagai ( ) = − log(1 +exp(− )), ialah taburan imej sebenar, menandakan pemaparan, dan ialah hiperparameter. Memandangkan boleh dibezakan, gradien boleh disebarkan semula daripada imej 2D kepada penjana 3D kami. g u g u u px R λ R Untuk mengalih keluar muka dalaman terapung yang tidak kelihatan dalam mana-mana pandangan, kami seterusnya mengukuhkan penjana geometri dengan kerugian silang-entropi yang ditakrifkan antara nilai SDF verteks bersebelahan [ ]: Peneguhan 47 di mana menandakan kerugian silang-entropi perduaan dan menandakan fungsi sigmoid. Jumlah dalam Eq. ditakrifkan ke atas set tepi unik S dalam grid tetrahedron, di mana sign( ) /= sign( ). H σ 2 e si sj Fungsi kerugian keseluruhan kemudiannya ditakrifkan sebagai: di mana ialah hiperparameter yang mengawal tahap peneguhan. µ 4 Eksperimen Kami menjalankan eksperimen meluas untuk menilai model kami. Kami pertama kali membandingkan kualiti mesh 3D bertekstur yang dihasilkan oleh GET3D dengan kaedah sedia ada menggunakan set data ShapeNet [ ] dan Turbosquid [ ]. Seterusnya, kami menguji pilihan reka bentuk kami dalam Bab . Akhir sekali, kami menunjukkan fleksibiliti GET3D dengan mengadaptasikannya kepada aplikasi hiliran dalam Bab . Keputusan eksperimen tambahan dan butiran pelaksanaan disediakan dalam Lampiran. 9 4 4.2 4.3 4.1 Eksperimen pada Set Data Sintetik Untuk penilaian pada ShapeNet [ ], kami menggunakan tiga kategori dengan geometri kompleks – , , dan , yang mengandungi 7497, 6778, dan 337 bentuk, masing-masing. Kami secara rawak membahagikan setiap kategori kepada latihan (70%), pengesahan (10%), dan ujian (20%), dan seterusnya mengalih keluar daripada set ujian bentuk yang mempunyai duplikat dalam set latihan. Untuk memaparkan data latihan, kami mengambil sampel kedudukan kamera secara rawak daripada hemisfera atas setiap bentuk. Untuk kategori dan , kami menggunakan 24 pandangan rawak, manakala untuk kami menggunakan 100 pandangan kerana bilangan bentuk yang kurang. Memandangkan model dalam ShapeNet hanya mempunyai tekstur ringkas, kami juga menilai GET3D pada set data (442 bentuk) yang dikumpulkan daripada TurboSquid [ ], di mana tekstur lebih terperinci dan kami membahagikannya kepada latihan, pengesahan dan ujian seperti yang ditakrifkan di atas. Akhir sekali, untuk menunjukkan keserbagunaan GET3D, kami juga menyediakan keputusan kualitatif pada set data yang dikumpulkan daripada Turbosquid (563 bentuk), dan set data daripada Renderpeople [ ] (500 bentuk). Kami melatih model berasingan pada setiap kategori. Set Data 9 Kereta Kerusi Motosikal Kereta Kerusi Motosikal Haiwan 4 Rumah Badan Manusia 2