Apakah seorang seniman VFX, peneliti atau seorang amatir grafis, BlernerRerf adalah cara termudah dan tercepat untuk membuat nerf sintetis dan kumpulan data Gaussian Splatting di dalam Blender. Dapatkan render dan parameter kamera dengan satu klik, sambil memiliki kontrol pengguna penuh atas adegan 3D dan kamera!
Apakah Anda siap untuk nerf? Mulailah dengan satu klik di Blender dengan memeriksa tutorial ini!
Neural Radiance Fields (NERF) bertujuan untuk mewakili adegan 3D sebagai objek volumetrik yang bergantung pada tampilan hanya dari gambar 2D, di samping informasi kamera masing -masing. Adegan 3D direkayasa terbalik dari gambar pelatihan dengan bantuan jaringan saraf sederhana.
Gaussian Splatting adalah metode tindak lanjut untuk membuat bidang pancaran dengan cara berbasis titik. Representasi ini sangat dioptimalkan untuk rendering GPU dan memanfaatkan lebih banyak teknik grafis tradisional untuk mencapai frame rate tinggi.
Saya merekomendasikan menonton video YouTube ini oleh Corridor Crew untuk penyelidikan yang mendebarkan pada beberapa kasus penggunaan dan aplikasi potensial NERF di masa depan.
Rendering adalah perhitungan yang mahal. Adegan fotorealistik dapat memakan waktu detik hingga berjam -jam untuk merender tergantung pada kompleksitas adegan, perangkat keras, dan sumber daya perangkat lunak yang tersedia.
NERFS dan Gaussian percikan dapat mempercepat proses ini, tetapi memerlukan informasi kamera yang biasanya diekstraksi melalui kode rumit. Plugin ini memungkinkan siapa saja untuk mendapatkan render dan kamera dengan satu klik dalam blender.
Meskipun versi rilis Blerernerf tersedia untuk diunduh, mereka terutama dimaksudkan untuk melacak perubahan kode utama dan untuk tujuan kutipan. Saya sarankan mengunduh repositori saat ini secara langsung, karena perubahan kecil atau perbaikan bug mungkin tidak disertakan dalam rilis segera.
Blernernerf terdiri dari 3 metode yang dibahas dalam sub-bagian di bawah ini. Setiap metode mampu membuat data pelatihan dan menguji data untuk NERF dalam bentuk gambar pelatihan dan file transforms_train.json masing -masing transforms_test.json dengan informasi kamera yang sesuai. Data diarsipkan menjadi satu file zip yang berisi folder pelatihan dan pengujian. Data pelatihan kemudian dapat digunakan oleh model NERF untuk mempelajari representasi adegan 3D. Setelah dilatih, model dapat dievaluasi (atau diuji) pada data pengujian (hanya informasi kamera) untuk mendapatkan render baru.
Subset of Frames (SOF) membuat setiap N frame dari animasi kamera, dan menggunakan subset frame yang diberikan sebagai data pelatihan NERF. Data pengujian terdaftar mencakup semua frame dari animasi kamera yang sama, termasuk bingkai pelatihan. Saat dilatih, model NERF dapat membuat animasi kamera lengkap dan akibatnya cocok untuk menginterpolasi atau membuat animasi besar adegan statis.
Latih dan uji kamera (TTC) mendaftarkan pelatihan dan pengujian data dari dua kamera yang ditentukan pengguna yang terpisah. Model NERF kemudian dapat dilengkapi dengan data yang diekstraksi dari kamera pelatihan, dan dievaluasi pada data pengujian.
Kamera pada sphere (cos) membuat bingkai pelatihan dengan mencicipi tampilan kamera acak secara seragam diarahkan di tengah dari bola yang dikendalikan pengguna. Data pengujian diekstraksi dari kamera yang dipilih.
Panel Add-On Properties tersedia di bawah 3D View > N panel > BlenderNeRF ( panel N dapat diakses di bawah viewport 3D saat menekan N ). Semua 3 metode ( SOF , TTC dan COS ) berbagi tab umum yang disebut BlenderNeRF shared UI dengan properti yang dapat dikontrol yang terdaftar di bawah ini.
Train (diaktifkan secara default): Apakah akan mendaftarkan data pelatihan (rendering + informasi kamera)Test (diaktifkan secara default): Apakah akan mendaftarkan data pengujian (hanya informasi kamera)AABB (secara default diatur ke 4 ): Parameter skala AABB seperti yang dijelaskan dalam NGP instan (detail lebih lanjut di bawah)Render Frames (diaktifkan secara default): apakah akan membuat bingkaiSave Log File (dinonaktifkan secara default): Apakah akan menyimpan file log yang berisi informasi reproduktifitas pada Blendernerf RunFile Format ( NGP Secara Default): Apakah akan mengekspor file kamera dalam konvensi format file NGP atau DEFAUT NERF instanGaussian Points (dinonaktifkan secara default): apakah akan mengekspor points3d.ply file untuk Gaussian SplattingGaussian Test Camera Poses ( Dummy Secara Default): Apakah akan mengekspor file kamera uji dummy atau set lengkap pose kamera uji (hanya dengan Gaussian Points )Save Path (kosong secara default): Path ke direktori output di mana dataset akan dibuat Jika properti Gaussian Points aktif, BlernerRerf akan membuat points3d.ply tambahan3d.ply file dari semua jerat yang terlihat (pada waktu render) di mana setiap simpul akan digunakan sebagai titik inisialisasi. Warna Vertex akan disimpan jika tersedia, dan diatur ke Black sebaliknya.
Gaussian Splatting Repository secara asli mendukung kumpulan data NERF , tetapi membutuhkan data kereta dan uji. Opsi Dummy untuk properti Gaussian Test Camera Poses membuat file pose kamera uji kosong, jika diperlukan gambar uji. Opsi Full mengekspor yang ditimbulkan oleh kamera uji default, tetapi akan membutuhkan secara terpisah membuat folder test yang berisi semua render tes.
AABB dibatasi untuk menjadi kekuatan integer 2, ini menentukan panjang sisi volume kotak pembatas di mana NERF akan melacak sinar. Properti ini diperkenalkan dengan NERF versi NVIDIA NGP .
Properti File Format dapat berupa NGP atau NERF . Konvensi Format File NGP sama dengan yang NERF , dengan beberapa parameter tambahan yang dapat diakses oleh NGP instan.
Perhatikan bahwa setiap metode memiliki properti Name khasnya (secara default diatur ke dataset ) yang sesuai dengan nama dataset dan membuat nama file zip untuk metode masing -masing. Harap dicatat bahwa karakter yang tidak didukung, seperti spasi, # atau / , akan secara otomatis diganti dengan garis bawah.
Di bawah ini dijelaskan properti khusus untuk setiap metode (properti Name ditinggalkan, karena sudah dibahas di atas).
Frame Step (secara default diatur ke 3 ): n (sebagaimana didefinisikan dalam bagian pengaturan) = frekuensi di mana frame pelatihan terdaftarCamera (selalu atur ke kamera aktif): Kamera yang digunakan untuk mendaftarkan pelatihan dan pengujian dataPLAY SOF : Mainkan subset operator metode frames untuk mengekspor data nerfFrames (secara default diatur ke 100 ): Jumlah frame pelatihan yang digunakan dari kamera pelatihanTrain Cam (kosong secara default): Kamera yang digunakan untuk mendaftarkan data pelatihanTest Cam (kosong secara default): Kamera yang digunakan untuk mendaftarkan data pengujianPLAY TTC : Mainkan Operator Metode Kereta dan Kamera Uji untuk Mengekspor Data NERF Jumlah Frames bingkai pelatihan akan ditangkap menggunakan objek Train Cam , mulai dari bingkai start adegan.
Camera (selalu atur ke kamera aktif): Kamera yang digunakan untuk mendaftarkan data pengujianLocation (secara default diatur ke 0 m vektor): Posisi tengah bola pelatihan dari mana tampilan kamera disampelRotation (secara default diatur ke vektor 0 ° ): Rotasi bola pelatihan dari mana tampilan kamera disampelScale (secara default diatur ke 1 vektor): skala vektor bola pelatihan dalam sumbu xyzRadius (secara default diatur ke 4 m ): Radius Scalar dari Sphere PelatihanLens (secara default diatur ke 50 mm ): Panjang fokus kamera pelatihanSeed (secara default diatur ke 0 ): Seed untuk menginisialisasi prosedur sampling tampilan kamera acakFrames (secara default diatur ke 100 ): Jumlah frame pelatihan sampel dan diberikan dari bidang pelatihanSphere (dinonaktifkan secara default): apakah akan menunjukkan bola pelatihan dari mana pandangan acak akan disampelCamera (dinonaktifkan secara default): Apakah akan menampilkan kamera yang digunakan untuk mendaftarkan data pelatihanUpper Views (dinonaktifkan secara default): Apakah akan sampel tampilan hanya dari belahan pelatihan atas (varian rotasi)Outwards (dinonaktifkan secara default): apakah akan mengarahkan kamera ke luar dari bola pelatihanPLAY COS : Putar Kamera di Sphere Metode Operator untuk mengekspor data NERF Perhatikan bahwa mengaktifkan properti Sphere dan Camera menciptakan objek kosong BlenderNeRF Sphere dan objek kamera BlenderNeRF Camera masing -masing. Harap jangan membuat objek apa pun dengan nama-nama ini secara manual, karena ini mungkin merusak fungsi tambahan.
Jumlah Frames bingkai pelatihan akan ditangkap menggunakan objek BlenderNeRF Camera , mulai dari bingkai start adegan. Akhirnya, perlu diingat bahwa kamera pelatihan terkunci di tempat dan tidak dapat dipindahkan secara manual.
NVIDIA memberikan beberapa tips bermanfaat tentang cara melatih model NERF menggunakan NGP instan. Jangan ragu untuk mengunjungi repositori mereka untuk bantuan lebih lanjut. Di bawah ini adalah beberapa tips cepat untuk nerfing optimal yang diperoleh dari pengalaman pribadi.
AABB sekencang mungkin untuk skala adegan, nilai yang lebih tinggi akan memperlambat pelatihanAABB sambil menjaganya tetap menjadi kekuatan 2Vertical yang sesuai terkadang mengarah ke volume NERF yang terdistorsi, hindari jika memungkinkan Jika Anda memiliki akses ke GPU NVIDIA, Anda mungkin ingin menginstal NGP instan pada perangkat Anda sendiri untuk pengalaman pengguna yang optimal, dengan mengikuti instruksi yang disediakan di repositori mereka. Jika tidak, Anda dapat menjalankan NERF di Colab Notebook di Google GPU secara gratis dengan akun Google.
Buka Colab Notebook ini (juga dapat diunduh di sini) dan ikuti instruksi.
Add-on ini sedang dikembangkan sebagai proyek sampingan yang menyenangkan selama beberapa bulan dan versi Blender, terutama pada macOS. Jika Anda menghadapi masalah apa pun dengan fungsi plugin, jangan ragu untuk membuka masalah GitHub dengan deskripsi yang jelas tentang masalah tersebut, versi Blendernerf yang telah dialami dengan masalah, dan informasi lebih lanjut jika relevan.
Sementara ekstensi ini dimaksudkan untuk pembuatan dataset sintetis, alat yang ada untuk mengimpor data pelacakan gerak dari kamera dunia nyata tersedia. Salah satu contohnya adalah Tracky oleh Shopify , aplikasi iOS open source dan data pelacakan gerak perekaman blender yang berdekatan dari sesi Arkit di iPhone. Namun perlu diingat bahwa melacak data dapat dikenakan drift dan ketidakakuratan, yang mungkin mempengaruhi kualitas rekonstruksi NERF yang dihasilkan.
Jika Anda menemukan repositori ini berguna dalam penelitian Anda, silakan pertimbangkan mengutip BlernerF menggunakan tombol GitHub khusus di atas. Jika Anda menggunakan ekstensi ini untuk proyek artistik Anda, jangan ragu untuk membagikan beberapa pekerjaan Anda menggunakan tagar #blendernerf di media sosial! :)