

SDFStudioは、素晴らしいNerfstudioプロジェクトの上に構築された、神経暗黙の表面再構成のための統一されたモジュラーフレームワークです。 Unisurf、VolSDF、およびNeusの3つの主要な暗黙的な表面再構成方法の統一された実装を提供します。 SDFStudioは、MLP、Tri-Plane、Multi-Resなどのさまざまなシーン表現もサポートしています。特徴グリッド、およびUnisurfのような表面誘導サンプリングや、NeuralReconwからのボクセル表面ガイドサンプリングなどの複数ポイントサンプリング戦略。さらに、単眼の手がかり(MonoSDF)、ジオメトリの正規化(Unisurf)、マルチビューの一貫性(Geo-Neus)の利用など、領域の最近の進歩を統合します。統一されたモジュール式実装のおかげで、SDFStudioは、ある方法から別の方法にアイデアを簡単に転送できるようにします。たとえば、Mono-NeusはMonosDFからNeusにアイデアを適用し、Geo-VolsdfはGeo-NeusからVolSDFまでのアイデアを適用します。
2023.06.16 : BakedSDFと数値的なグリデントとNeuralangeloの進歩的なトレーニングを組み合わせたbakedangelo追加します。
2023.06.16 :Neus-factoと数値グリデントとNeuralangeloの進歩的なトレーニングを組み合わせたNeus- neus-facto neus-facto-angeloを追加します。
2023.06.16 :NeuralAngeloをサポートします。
2023.03.12 :BakedSDFをサポートします。
2022.12.28 :神経RGB-D表面再建をサポートします。
CUDAはシステムにインストールする必要があります。このライブラリは、バージョン11.3でテストされています。 CUDAのインストールに関する詳細については、こちらをご覧ください。
sdfstudioにはpython >= 3.7が必要です。 Condaを使用して依存関係を管理することをお勧めします。先に進む前に、必ずコンドラをインストールしてください。
conda create --name sdfstudio -y python=3.8
conda activate sdfstudio
python -m pip install --upgrade pipPytorchをCuda(このレポはCuda 11.3でテストされています)と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-cli以下は、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 Trueすべてが機能する場合は、次のトレーニングの進捗状況を確認する必要があります。

端末の最後にリンクに移動すると、WebViewer(Nerfstudioが開発)をロードします。リモートマシンで実行している場合は、WebSocketポートをポートする必要があります(デフォルトは7007になります)。 RTX3090 GPUを使用すると、20kの反復には〜15分かかりますが、WebViewerで2Kイテレーション後に合理的な再構築結果を表示できます。

実行して事前に守られたモデルをロードすることも可能です
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 これは、トレーニングを自動的に再開します。トレーニングを再開したくない場合は、 --viewer.start-train Falseトレーニングコマンドに追加します。コマンドの順序が重要であることに注意してください。DataparserSubcommandは、モデルサブコマンドの後に来る必要があります。
訓練されたモデルを取得したら、メッシュをエクスポートしてメッシュをレンダリングできます。
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
すべてが適切に機能する場合は、次のビデオを取得します。
まず、カメラが従うパスを作成する必要があります。これは、[レンダリング]タブの下の視聴者で実行できます。 3Dビューをビデオを起動したい場所に向けて、「カメラの追加」を押します。これにより、最初のカメラキーフレームが設定されます。カメラパスを作成するために、カメラを追加する新しい視点に進みます。カメラのパスをさらに絞り込むために、他のパラメーターを提供します。満足したら、ビデオのレンダリングに必要なコマンドを含むモーダルを表示する「レンダリング」を押します。トレーニングジョブを殺します(または、コンピューティングがたくさんある場合は新しいターミナルを作成します)とビデオを生成するコマンド。
すべてのビデオエクスポートオプションを表示するには、実行されます。
ns-render --helpNeus-Facto以外の多くのモデルを提供します。ドキュメントを参照してください。たとえば、元のNeusモデルをトレーニングする場合は、次のコマンドを使用します。
ns-train neus --pipeline.model.sdf-field.inside-outside False sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65含まれるモデルの完全なリストの場合ns-train --help 。各方法の詳細な説明については、ドキュメントを参照してください。
各モデルには、変更できる多くのパラメーターが含まれており、ここにリストするには多すぎます。 --helpコマンドを使用して、構成オプションの完全なリストを表示します。
パラメーターの順序が重要です!たとえば、 --dataパラメーターの後に--machine.num-gpusを設定することはできません
ns-train neus-facto --help
Nerfstudioは、視聴者、テンソルボード、および重量とバイアスを使用して、トレーニングの進捗状況を追跡するための3つの異なる方法をサポートしています。これらの視覚化ツールは、SDFStudioでも使用できます。 Applinded --vis {viewer, tensorboard, wandb}をトレーニングコマンドに使用して、使用するVisualizerを指定できます。一度に使用できるのは1つだけであることに注意してください。さらに、視聴者は、 NeuS-facto-bigmlpのような遅いメソッドでは、他のロガーを使用して、速い方法(すなわち、 NeuS-factoとNeuS-acc )のみで機能します。
カスタムデータセットを使用する場合は、データセットとデータ形式のドキュメントを参照してください。

このライブラリを使用するか、調査に役立つドキュメントを見つけた場合は、引用してください。
@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 } ,
}