

SDFStudio adalah kerangka kerja terpadu dan modular untuk rekonstruksi permukaan implisit saraf, dibangun di atas proyek Nerfstudio yang mengagumkan. Kami menyediakan implementasi terpadu dari tiga metode rekonstruksi permukaan implisit utama: UNISURF, VOLSDF, dan NEUS. SDFStudio juga mendukung berbagai representasi adegan, seperti MLP, Tri-Plane, dan Multi-Res. Fitur grid, dan beberapa strategi pengambilan sampel titik seperti pengambilan sampel yang dipandu permukaan seperti pada unisurf, dan pengambilan sampel berpemandu permukaan voxel dari neuralreconW. Lebih lanjut mengintegrasikan kemajuan terbaru di bidang ini seperti pemanfaatan isyarat monokular (MONOSDF), regularisasi geometri (UNISURF) dan konsistensi multi-view (GEO-NEUS). Berkat implementasi terpadu dan modular, SDFStudio memudahkan untuk mentransfer ide dari satu metode ke metode lainnya. Misalnya, mono-neus menerapkan ide dari monosdf ke neus, dan geo-volsdf menerapkan ide dari geo-neus ke volsdf.
2023.06.16 : Tambahkan bakedangelo yang menggabungkan BakedSDF dengan kisi -kisi numerik dan pelatihan progresif Neuralangelo .
2023.06.16 : Tambahkan neus-facto-angelo yang menggabungkan neus-facto dengan kisi-kisi numerik dan pelatihan progresif Neuralangelo .
2023.06.16 : Dukung Neuralangelo.
2023.03.12 : Dukungan Bakedsdf.
2022.12.28 : Mendukung rekonstruksi permukaan RGB-D saraf.
CUDA harus diinstal pada sistem. Perpustakaan ini telah diuji dengan versi 11.3. Anda dapat menemukan informasi lebih lanjut tentang menginstal CUDA di sini.
Sdfstudio membutuhkan python >= 3.7 . Kami merekomendasikan penggunaan Conda untuk mengelola dependensi. Pastikan untuk menginstal Conda sebelum melanjutkan.
conda create --name sdfstudio -y python=3.8
conda activate sdfstudio
python -m pip install --upgrade pipPasang Pytorch dengan CUDA (repo ini telah diuji dengan CUDA 11.3) dan Tiny-Cuda-NN
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install git+https://github.com/NVlabs/tiny-cuda-nn/ # subdirectory=bindings/torchgit clone https://github.com/autonomousvision/sdfstudio.git
cd sdfstudio
pip install --upgrade pip setuptools
pip install -e .
# install tab completion
ns-install-cliBerikut ini akan melatih model neus-facto ,
# Download some test data: you might need to install curl if your system don't have that
ns-download-data sdfstudio
# Train model on the dtu dataset scan65
ns-train neus-facto --pipeline.model.sdf-field.inside-outside False --vis viewer --experiment-name neus-facto-dtu65 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
# Or you could also train model on the Replica dataset room0 with monocular priors
ns-train neus-facto --pipeline.model.sdf-field.inside-outside True --pipeline.model.mono-depth-loss-mult 0.1 --pipeline.model.mono-normal-loss-mult 0.05 --vis viewer --experiment-name neus-facto-replica1 sdfstudio-data --data data/sdfstudio-demo-data/replica-room0 --include_mono_prior TrueJika semuanya berhasil, Anda harus melihat kemajuan pelatihan berikut:

Menavigasi ke tautan di akhir terminal akan memuat webviewer (dikembangkan oleh nerfstudio). Jika Anda berjalan di mesin jarak jauh, Anda harus port ke depan port WebSocket (default ke 7007). Dengan GPU RTX3090, dibutuhkan ~ 15 menit untuk iterasi 20K tetapi Anda sudah dapat melihat hasil rekonstruksi yang masuk akal setelah iterasi 2k di webviewer.

Juga dimungkinkan untuk memuat model pretrained dengan berjalan
ns-train neus-facto --trainer.load-dir {outputs/neus-facto-dtu65/neus-facto/XXX/sdfstudio_models} sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 Ini akan secara otomatis melanjutkan pelatihan. Jika Anda tidak ingin melanjutkan pelatihan, tambahkan --viewer.start-train False ke perintah pelatihan Anda. Perhatikan bahwa urutan perintah penting, sub -perintah dataparser perlu datang setelah subkomand model.
Setelah Anda memiliki model terlatih, Anda dapat mengekspor mesh dan membuat mesh.
ns-extract-mesh --load-config outputs/neus-facto-dtu65/neus-facto/XXX/config.yml --output-path meshes/neus-facto-dtu65.ply ns-render-mesh --meshfile meshes/neus-facto-dtu65.ply --traj interpolate --output-path renders/neus-facto-dtu65.mp4 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
Anda akan mendapatkan video berikut jika semuanya berfungsi dengan baik.
Pertama, kita harus membuat jalur untuk diikuti oleh kamera. Ini dapat dilakukan di penonton di bawah tab "Render". AREI Tampilan 3D Anda ke lokasi tempat Anda ingin video memulai, lalu tekan "Tambahkan Kamera". Ini akan mengatur bingkai kunci kamera pertama. Lanjutkan ke sudut pandang baru 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 membuat video. Bunuh pekerjaan pelatihan (atau buat terminal baru jika Anda memiliki banyak komputasi) dan perintah untuk menghasilkan video.
Untuk melihat semua opsi ekspor video, jalankan:
ns-render --helpKami menyediakan banyak model lain selain neus-facto, lihat dokumentasinya. Misalnya, jika Anda ingin melatih model Neus asli, gunakan perintah berikut:
ns-train neus --pipeline.model.sdf-field.inside-outside False sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 Untuk daftar lengkap model yang disertakan menjalankan ns-train --help . Silakan merujuk ke dokumentasi untuk penjelasan yang lebih rinci untuk setiap metode.
Setiap model berisi banyak parameter yang dapat diubah, terlalu banyak untuk dicantumkan di sini. Gunakan perintah --help untuk melihat daftar lengkap opsi konfigurasi.
Catatan, urutan parameter itu penting! Misalnya, Anda tidak dapat mengatur --machine.num-gpus setelah parameter --data
ns-train neus-facto --help
Nerfstudio mendukung tiga metode berbeda untuk melacak kemajuan pelatihan, menggunakan penampil, tenor, dan bobot dan bias. Alat visualisasi ini juga dapat digunakan di SDFStudio. Anda dapat menentukan visualisasi mana yang akan digunakan dengan menambahkan --vis {viewer, tensorboard, wandb} ke perintah pelatihan. Perhatikan bahwa hanya satu yang dapat digunakan sekaligus. Selain itu, pemirsa hanya berfungsi untuk metode yang cepat (mis. NeuS-facto dan NeuS-acc ), untuk metode yang lebih lambat seperti NeuS-facto-bigmlp , gunakan penebang lainnya.
Silakan merujuk ke Dataset dan Dokumentasi Format Data jika Anda ingin menggunakan set data khusus.

Jika Anda menggunakan perpustakaan ini atau menemukan dokumentasi yang berguna untuk penelitian Anda, harap pertimbangkan mengutip:
@misc { Yu2022SDFStudio ,
author = { Yu, Zehao and Chen, Anpei and Antic, Bozidar and Peng, Songyou and Bhattacharyya, Apratim
and Niemeyer, Michael and Tang, Siyu and Sattler, Torsten and Geiger, Andreas } ,
title = { SDFStudio: A Unified Framework for Surface Reconstruction } ,
year = { 2022 } ,
url = { https://github.com/autonomousvision/sdfstudio } ,
}