Mulai cepat
Pelajari lebih lanjut
Fitur yang Didukung
Sesederhana plug and play dengan nerfstudio!
Nerfstudio menyediakan API sederhana yang memungkinkan proses pembuatan, pelatihan, dan pengujian NeRF end-to-end yang disederhanakan. Pustaka mendukung implementasi NeRF yang lebih dapat ditafsirkan dengan memodulasi setiap komponen. Dengan NeRF yang lebih modular, kami berharap dapat menciptakan pengalaman yang lebih ramah pengguna dalam mengeksplorasi teknologi ini.
Ini adalah repo yang ramah kontributor dengan tujuan membangun komunitas di mana pengguna dapat lebih mudah membangun kontribusi satu sama lain. Nerfstudio awalnya diluncurkan sebagai proyek sumber terbuka oleh mahasiswa Berkeley di lab KAIR di Berkeley AI Research (BAIR) pada Oktober 2022 sebagai bagian dari proyek penelitian (makalah). Saat ini dikembangkan oleh mahasiswa Berkeley dan kontributor komunitas.
Kami berkomitmen untuk menyediakan sumber daya pembelajaran untuk membantu Anda memahami dasar-dasar (jika Anda baru memulai), dan tetap mendapatkan informasi terkini (jika Anda seorang veteran berpengalaman) segala hal tentang NeRF. Sebagai peneliti, kami tahu betapa sulitnya untuk memahami teknologi generasi berikutnya ini. Jadi kami di sini untuk membantu dengan tutorial, dokumentasi, dan banyak lagi!
Punya permintaan fitur? Ingin menambahkan model NeRF terbaru Anda? Punya kumpulan data baru? Kami menyambut kontribusi! Jangan ragu untuk menghubungi tim nerfstudio jika ada pertanyaan melalui Discord.
Punya masukan? Kami ingin Anda mengisi Formulir Umpan Balik Nerfstudio kami jika Anda ingin memberi tahu kami siapa Anda, mengapa Anda tertarik dengan Nerfstudio, atau memberikan umpan balik!
Kami berharap nerfstudio memungkinkan Anda membangun lebih cepat? belajar bersama? dan berkontribusi pada komunitas NeRF kami?.
Sponsor dari karya ini termasuk Luma AI dan BAIR commons.
Panduan mulai cepat ini akan membantu Anda memulai dengan NeRF vanilla default yang dilatih pada adegan Blender Lego klasik. Untuk perubahan yang lebih kompleks (misalnya, menjalankan dengan data Anda sendiri/menyiapkan grafik NeRF baru), silakan merujuk ke referensi kami.
Anda harus memiliki kartu video NVIDIA dengan CUDA yang terinstal di sistem. Perpustakaan ini telah diuji dengan CUDA versi 11.8. Anda dapat menemukan informasi lebih lanjut tentang menginstal CUDA di sini
Nerfstudio membutuhkan python >= 3.8
. Kami merekomendasikan penggunaan conda untuk mengelola dependensi. Pastikan untuk menginstal Conda sebelum melanjutkan.
conda buat --nama nerfstudio -y python=3.8 conda mengaktifkan nerfstudio instalasi pip --upgrade pip
Instal PyTorch dengan CUDA (repo ini telah diuji dengan CUDA 11.7 dan CUDA 11.8) dan tiny-cuda-nn. cuda-toolkit
diperlukan untuk membangun tiny-cuda-nn
.
Untuk CUDA 11.8:
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit pip instal ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
Lihat Dependensi dalam dokumentasi Instalasi untuk mengetahui lebih lanjut.
Pilihan mudah:
pip instal nerfstudio
ATAU jika Anda menginginkan yang terbaru dan terhebat:
git clone https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio instalasi pip --upgrade alat pengaturan pip instalasi pip -e .
ATAU jika Anda ingin melewati semua langkah instalasi dan langsung mulai menggunakan nerfstudio, gunakan image buruh pelabuhan:
Lihat Instalasi - Gunakan gambar buruh pelabuhan .
Berikut ini akan melatih model nerfacto , model yang kami rekomendasikan untuk adegan dunia nyata.
# Unduh beberapa data pengujian:ns-download-data nerfstudio --capture-name=poster# Latih modelns-train nerfacto --data data/nerfstudio/poster
Jika semuanya berfungsi, Anda akan melihat kemajuan pelatihan seperti berikut:
Menavigasi ke tautan di akhir terminal akan memuat penampil web. Jika Anda menjalankan mesin jarak jauh, Anda perlu meneruskan port websocket (defaultnya adalah 7007).
Dimungkinkan untuk memuat model yang telah dilatih sebelumnya dengan menjalankan
ns-train nerfacto --data data/nerfstudio/poster --load-dir {output/.../nerfstudio_models}
Dengan adanya pos pemeriksaan model yang telah dilatih sebelumnya, Anda dapat memulai penampil dengan menjalankan
ns-viewer --load-config {output/.../config.yml}
Setelah Anda memiliki model NeRF, Anda dapat merender video atau mengekspor point cloud.
Pertama kita harus membuat jalur untuk diikuti kamera. Hal ini dapat dilakukan di penampil di bawah tab "RENDER". Arahkan tampilan 3D Anda ke lokasi di mana Anda ingin video dimulai, lalu tekan "TAMBAHKAN KAMERA". Ini akan mengatur bingkai kunci kamera pertama. Lanjutkan ke sudut pandang baru dengan menambahkan kamera tambahan untuk membuat jalur kamera. Kami menyediakan parameter lain untuk lebih menyempurnakan jalur kamera Anda. Setelah puas, tekan "RENDER" yang akan menampilkan modal yang berisi perintah yang diperlukan untuk merender video. Hentikan tugas pelatihan (atau buat terminal baru jika Anda memiliki banyak komputasi) dan jalankan perintah untuk menghasilkan video.
Opsi ekspor video lainnya tersedia, pelajari lebih lanjut dengan menjalankan
ns-render --membantu
Meskipun model NeRF tidak dirancang untuk menghasilkan point cloud, hal ini masih memungkinkan. Navigasikan ke tab "EKSPOR" di penampil 3D dan pilih "POINT CLOUD". Jika opsi pangkas dipilih, semua yang ada di kotak kuning akan diekspor ke titik cloud. Ubah pengaturan sesuai keinginan lalu jalankan perintah di bagian bawah panel di baris perintah Anda.
Alternatifnya, Anda dapat menggunakan CLI tanpa penampil. Pelajari tentang opsi ekspor dengan menjalankan
ns-ekspor pointcloud --membantu
Menggunakan kumpulan data yang sudah ada memang bagus, tetapi kemungkinan besar Anda ingin menggunakan data Anda sendiri! Kami mendukung berbagai metode untuk menggunakan data Anda sendiri. Sebelum dapat digunakan di nerfstudio, lokasi dan orientasi kamera harus ditentukan lalu diubah ke dalam format kami menggunakan ns-process-data
. Kami mengandalkan alat eksternal untuk ini, instruksi dan informasi dapat ditemukan di dokumentasi.
Data | Perangkat Tangkap | Persyaratan | Kecepatan ns-process-data |
---|---|---|---|
Gambar | Setiap | KOLOMAP | |
Video | Setiap | KOLOMAP | |
360 Data | Setiap | KOLOMAP | |
Polikamera | iOS dengan LiDAR | Aplikasi Polikamera | |
Rekam3D | iOS dengan LiDAR | Aplikasi Rekam3D | |
Metabentuk | Setiap | Metabentuk | |
ODM | Setiap | ODM | |
Aria | Kacamata Aria | Proyek Aria | |
Kebiasaan | Setiap | Pose Kamera |
Kami menyediakan model lain selain nerfacto, misalnya jika Anda ingin melatih model nerf asli, gunakan perintah berikut
ns-latih vanilla-nerf --data DATA_PATH
Untuk daftar lengkap model yang disertakan, jalankan ns-train --help
.
Setiap model berisi banyak parameter yang dapat diubah, terlalu banyak untuk dicantumkan di sini. Gunakan perintah --help
untuk melihat daftar lengkap opsi konfigurasi.
ns-kereta nerfacto --membantu
Kami mendukung empat metode berbeda untuk melacak kemajuan pelatihan, menggunakan papan tensor penampil, Bobot dan Bias, dan Komet. Anda dapat menentukan visualisator mana yang akan digunakan dengan menambahkan --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
ke perintah pelatihan. Memanfaatkan penampil secara bersamaan bersama tongkat sihir atau papan tensor dapat menyebabkan masalah kegagapan selama langkah evaluasi. Penampil hanya berfungsi untuk metode yang cepat (mis. nerfacto, instant-ngp), untuk metode yang lebih lambat seperti NeRF, gunakan logger lainnya.
Itu saja untuk memulai dasar-dasar nerfstudio.
Jika Anda tertarik untuk mempelajari lebih lanjut tentang cara membuat saluran Anda sendiri, mengembangkan bersama pemirsa, menjalankan tolok ukur, dan banyak lagi, silakan lihat beberapa tautan cepat di bawah atau kunjungi dokumentasi kami secara langsung.
Bagian | Keterangan |
---|---|
Dokumentasi | Dokumentasi dan tutorial API lengkap |
Penonton | Halaman beranda untuk penampil web kami |
Pendidikan | |
Deskripsi Model | Deskripsi semua model yang didukung oleh nerfstudio dan penjelasan bagian-bagian komponennya. |
Deskripsi Komponen | Buku catatan interaktif yang menjelaskan modul penting/umum digunakan dalam berbagai model. |
Tutorial | |
Memulai | Panduan lebih mendalam tentang cara memulai nerfstudio mulai dari instalasi hingga berkontribusi. |
Menggunakan Penampil | Video demo singkat tentang cara menavigasi pemirsa. |
Menggunakan Rekam3D | Video demo cara menjalankan nerfstudio tanpa menggunakan COLMAP. |
Untuk Pengembang | |
Pembuatan saluran pipa | Pelajari cara mudah membuat pipeline rendering neural baru dengan menggunakan dan/atau mengimplementasikan modul baru. |
Membuat kumpulan data | Punya kumpulan data baru? Pelajari cara menjalankannya dengan nerfstudio. |
Berkontribusi | Panduan tentang bagaimana Anda dapat mulai berkontribusi sekarang. |
Perselisihan | Bergabunglah dengan komunitas kami untuk berdiskusi lebih lanjut. Kami ingin sekali mendengar pendapat Anda! |
Ikuti kami di Twitter @nerfstudioteam untuk melihat pembaruan dan pengumuman keren | |
Formulir Umpan Balik | Kami menyambut masukan apa pun! Ini adalah kesempatan kami untuk mempelajari tujuan Anda semua menggunakan Nerfstudio. |
Kami menyediakan struktur pendukung berikut untuk mempermudah memulai NeRF.
Jika Anda mencari fitur yang saat ini tidak didukung, jangan ragu untuk menghubungi Tim Nerfstudio di Discord!
Visualisator berbasis web yang memungkinkan Anda untuk:
Visualisasikan pelatihan secara real-time + berinteraksi dengan pemandangan
Buat dan render adegan dengan lintasan kamera khusus
Lihat jenis keluaran yang berbeda
Dan banyak lagi!
Dukungan untuk beberapa antarmuka logging (Tensorboard, Wandb), pembuatan profil kode, dan alat debugging bawaan lainnya
Skrip pembandingan yang mudah digunakan pada kumpulan data Blender
Dukungan pipeline penuh (dengan Colmap, Polycam, atau Record3D) untuk beralih dari video di ponsel Anda ke render 3D penuh.
Sistem konfigurasi yang mudah digunakan
Dikembangkan oleh Brent Yi
Perpustakaan untuk mempercepat rendering NeRF
Dikembangkan oleh Ruilong Li
Anda dapat menemukan tulisan makalah tentang kerangka kerja tersebut di arXiv.
Jika Anda menggunakan perpustakaan ini atau merasa dokumentasinya berguna untuk penelitian Anda, mohon pertimbangkan untuk mengutip:
@inproceedings{nerfstudio, title = {Nerfstudio: A Modular Framework for Neural Radiance Field Development}, author = { Tancik, Matthew and Weber, Ethan and Ng, Evonne and Li, Ruilong and Yi, Brent and Kerr, Justin and Wang, Terrance and Kristoffersen, Alexander and Austin, Jake and Salahi, Kamyar and Ahuja, Abhik and McAllister, David and Kanazawa, Angjoo }, year = 2023, booktitle = {ACM SIGGRAPH 2023 Conference Proceedings}, series = {SIGGRAPH '23} }