クイックスタート
もっと詳しく知る
サポートされている機能
nerfstudio をプラグアンドプレイするのと同じくらい簡単です。
Nerfstudio は、NeRF の作成、トレーニング、テストのエンドツーエンドのプロセスを簡素化できるシンプルな API を提供します。このライブラリは、各コンポーネントをモジュール化することで、より解釈しやすい NeRF の実装をサポートします。より多くのモジュール型 NeRF を使用することで、テクノロジーを探索する際に、よりユーザー フレンドリーなエクスペリエンスを実現したいと考えています。
これは、ユーザーがお互いの貢献をより簡単に構築できるコミュニティを構築することを目的とした、貢献者に優しいリポジトリです。 Nerfstudio は当初、2022 年 10 月にバークレー AI リサーチ (BAIR) の KAIR ラボのバークレーの学生によって研究プロジェクトの一環としてオープンソース プロジェクトとして立ち上げられました (論文)。現在、バークレーの学生とコミュニティの貢献者によって開発されています。
私たちは、(初心者の場合) NeRF の基本を理解し、(ベテランの場合) NeRF に関するすべての最新情報を把握できるようにするための学習リソースを提供することに尽力しています。私たちは研究者として、この次世代テクノロジーに乗り込むことがいかに難しいかを知っています。そのため、私たちはチュートリアルやドキュメントなどを提供するためにここにいます。
機能に関するリクエストがありますか?まったく新しい NeRF モデルを追加したいですか?新しいデータセットをお持ちですか?寄付を歓迎します!ご質問がございましたら、Discord 経由で nerfstudio チームにお気軽にお問い合わせください。
フィードバックがありますか?あなたが誰なのか、Nerfstudio に興味がある理由、またはフィードバックを提供したい場合は、Nerfstudio フィードバック フォームにご記入ください。
nerfstudio を使用してビルドを高速化できることを願っています。一緒に学びますか? NeRF コミュニティに貢献してください。
この作品のスポンサーには、Luma AI と BAIR コモンズが含まれます。
クイックスタートは、クラシックな Blender Lego シーンでトレーニングされたデフォルトのバニラ NeRF を使い始めるのに役立ちます。より複雑な変更 (独自のデータでの実行/新しい NeRF グラフのセットアップなど) については、リファレンスを参照してください。
CUDA がインストールされた NVIDIA ビデオ カードがシステムにインストールされている必要があります。このライブラリは CUDA のバージョン 11.8 でテストされています。 CUDA のインストールの詳細については、こちらをご覧ください。
Nerfstudio にはpython >= 3.8
が必要です。依存関係を管理するには conda を使用することをお勧めします。続行する前に必ず Conda をインストールしてください。
conda create --name nerfstudio -y python=3.8 conda は nerfstudio をアクティブ化します pip install --upgrade pip
CUDA (このリポジトリは CUDA 11.7 および CUDA 11.8 でテストされています) および tiny-cuda-nn を使用して PyTorch をインストールします。 tiny-cuda-nn
をビルドするにはcuda-toolkit
が必要です。
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 install Ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
詳細については、インストールに関するドキュメントの「依存関係」を参照してください。
簡単なオプション:
pip インストール nerfstudio
または、最新かつ最高のものが必要な場合:
git clone https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio pip install --upgrade pip setuptools pip install -e 。
または、すべてのインストール手順をスキップして、nerfstudio の使用を直接開始したい場合は、docker イメージを使用します。
「インストール - Docker イメージの使用」を参照してください。
以下では、現実世界のシーンに推奨されるモデルであるnerfactoモデルをトレーニングします。
# いくつかのテスト データをダウンロードします:ns-download-data nerfstudio --capture-name=poster# モデルを訓練するns-train nerfacto --data data/nerfstudio/poster
すべてがうまくいけば、次のようにトレーニングの進行状況が表示されるはずです。
ターミナルの最後にあるリンクに移動すると、Web ビューアがロードされます。リモート マシンで実行している場合は、WebSocket ポート (デフォルトは 7007) をポート転送する必要があります。
を実行することで、事前トレーニングされたモデルをロードできます。
ns-train nerfacto --data data/nerfstudio/poster --load-dir {outputs/.../nerfstudio_models}
事前トレーニングされたモデルのチェックポイントを指定すると、次のコマンドを実行してビューアを起動できます。
ns-viewer --load-config {outputs/.../config.yml}
NeRF モデルを作成したら、ビデオをレンダリングしたり、点群をエクスポートしたりできます。
まず、カメラがたどるパスを作成する必要があります。これは、「レンダリング」タブのビューアで実行できます。ビデオを開始したい場所に 3D ビューを向けて、「カメラを追加」を押します。これにより、最初のカメラのキーフレームが設定されます。新しい視点に進み、さらにカメラを追加してカメラ パスを作成します。カメラ パスをさらに調整するための他のパラメータも提供しています。満足したら、「RENDER」を押すと、ビデオのレンダリングに必要なコマンドを含むモーダルが表示されます。トレーニング ジョブを強制終了し (または、大量の計算能力がある場合は新しいターミナルを作成し)、コマンドを実行してビデオを生成します。
他のビデオ エクスポート オプションも利用できます。詳細については、次のコマンドを実行してください。
ns-render --ヘルプ
NeRF モデルは点群を生成するように設計されていませんが、それでも可能です。 3D ビューアの [エクスポート] タブに移動し、[点群] を選択します。トリミング オプションが選択されている場合、黄色の四角形内のすべてが点群にエクスポートされます。必要に応じて設定を変更し、コマンド ラインのパネルの下部にあるコマンドを実行します。
あるいは、ビューアを使用せずに CLI を使用することもできます。エクスポート オプションについては、次のコマンドを実行して確認してください。
ns-export pointcloud --help
既存のデータセットを使用するのは素晴らしいことですが、おそらく独自のデータを使用したいと思うでしょう。独自のデータを活用するためのさまざまな方法をサポートします。 nerfstudio で使用する前に、カメラの位置と方向を決定し、 ns-process-data
使用して形式に変換する必要があります。これには外部ツールを使用します。手順と情報はドキュメントに記載されています。
データ | キャプチャデバイス | 要件 | ns-process-data 速度 |
---|---|---|---|
画像 | どれでも | コルマップ | |
ビデオ | どれでも | コルマップ | |
360度データ | どれでも | コルマップ | |
ポリカム | LiDAR を備えた IOS | ポリカムアプリ | |
レコード3D | LiDAR を備えた IOS | Record3D アプリ | |
メタシェイプ | どれでも | メタシェイプ | |
ODM | どれでも | ODM | |
アリア | アリアのメガネ | プロジェクトアリア | |
カスタム | どれでも | カメラのポーズ |
nerfacto 以外のモデルも提供しています。たとえば、オリジナルの nerf モデルをトレーニングしたい場合は、次のコマンドを使用します。
ns-train vanilla-nerf --data DATA_PATH
含まれるモデルの完全なリストを表示するには、 ns-train --help
を実行します。
各モデルには変更できるパラメータが多数含まれていますが、ここでは書ききれないほどです。構成オプションの完全なリストを表示するには、 --help
コマンドを使用します。
ns-train nerfacto --help
私たちは、ビューアテンソルボード、重みとバイアス、Comet を使用して、トレーニングの進行状況を追跡する 4 つの異なる方法をサポートしています。 --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
トレーニング コマンドに追加することで、使用するビジュアライザーを指定できます。ビューアを wandb または tensorboard と同時に使用すると、評価ステップ中に途切れの問題が発生する可能性があります。ビューアは高速なメソッド (つまり、nerfacto、instant-ngp) に対してのみ機能します。NeRF のような低速なメソッドの場合は、他のロガーを使用してください。
nerfstudio の基本を始めるのはこれで終わりです。
独自のパイプラインの作成、ビューアを使用した開発、ベンチマークの実行などの方法について詳しく知りたい場合は、以下のクイックリンクを確認するか、ドキュメントに直接アクセスしてください。
セクション | 説明 |
---|---|
ドキュメント | 完全な API ドキュメントとチュートリアル |
ビューア | Web ビューアのホームページ |
教育的 | |
モデルの説明 | nerfstudioがサポートする全モデルの説明と構成部品の説明。 |
コンポーネントの説明 | さまざまなモデルで注目すべき/よく使用されるモジュールを説明するインタラクティブなノートブック。 |
チュートリアル | |
はじめる | インストールからコントリビュートまで、nerfstudio を使い始める方法についてのより詳細なガイド。 |
ビューアの使用 | ビューアの操作方法に関する簡単なデモ ビデオ。 |
Record3D の使用 | COLMAP を使用せずに nerfstudio を実行する方法のデモ ビデオ。 |
開発者向け | |
パイプラインの作成 | 新しいモジュールを使用または実装することで、新しいニューラル レンダリング パイプラインを簡単に構築する方法を学びます。 |
データセットの作成 | 新しいデータセットをお持ちですか? nerfstudio で実行する方法を学びましょう。 |
貢献する | 今すぐ貢献を始める方法を説明します。 |
不和 | コミュニティに参加してさらに話し合いましょう。ぜひご連絡ください。 |
ツイッター | Twitter @nerfstudioteam をフォローして、クールな最新情報やお知らせをチェックしてください |
フィードバックフォーム | フィードバックをお待ちしております。これは、皆さんが Nerfstudio を何に使用しているのかを知るチャンスです。 |
NeRF を使い始めるのを容易にするために、次のサポート構造を提供します。
現在サポートされていない機能をお探しの場合は、Discord の Nerfstudio チームにお気軽にお問い合わせください。
Web ベースのビジュアライザを使用すると、次のことが可能になります。
トレーニングをリアルタイムで視覚化 + シーンと対話
カスタムのカメラ軌跡を使用してシーンを作成してレンダリングする
さまざまな出力タイプを表示する
さらに!
複数のロギング インターフェイス (Tensorboard、Wandb)、コード プロファイリング、およびその他の組み込みデバッグ ツールのサポート
Blender データセットの使いやすいベンチマーク スクリプト
携帯電話上のビデオから完全な 3D レンダリングへの完全なパイプライン サポート (Colmap、Polycam、または Record3D を使用)。
使いやすい設定システム
開発者:ブレント・イー
NeRF レンダリングを高速化するためのライブラリ
開発者: ルイロン・リー
arXiv でフレームワークの論文を見つけることができます。
このライブラリを使用する場合、またはドキュメントが研究に役立つと思われる場合は、次の引用を検討してください。
@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} }