nerfstudioで試す3D再構築技術

AIツール

nerfstudioは、NeRF (Neural Radiance Fields) の作成、トレーニング、テストを簡単に行うためのツールで、NeRFを基にした複数の手法が組み込まれており、それらを利用して効率的に3D再構築を行うことができます。

実行環境

今回はWindowsにインストールしましたが、可能であればLinuxへのインストールをお勧めします。

OSWindows11 24H2
nerfstuidov1.1.5
グラフィックボードNVIDIA GeForce RTX 3060 12GB

ソフトウェア要件

インストール前に必要なソフトがあります。

CUDA Toolkit 11.8

NVIDIAのGPUを活用した高速計算を行うための開発ツールです。

Git

Gitは分散型バージョン管理システムで、GitHubのリポジトリ管理に使用されます。

Miniconda

condaを使用して、仮想環境を作成します。

Microsoft C++ Build Tools

Visual Studioを使用せずにMSVC (Microsoft Visual C++) のツールをインストールできるインストーラーです。これにより、C++アプリケーションのビルドに必要なツールをインストールできます。

C++によるデスクトップ開発にチェックを入れ、右側のインストール詳細からMSVC v142にチェックを入れてインストールしてください。(MSVC v143ではビルドに失敗しました)

Rust

オープンソースのプログラミング言語の一つです。インストールにはC++のビルドツールが必要なので、先にMicrosoft C++ Build Toolsをインストールしておいてください。

そのままEnterキーを押して、標準インストールを行ってください。

インストール

Anaconda Prompt (miniconda3)を開きます。

MSVC (Microsoft Visual C++) の環境設定

"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.29

仮想環境を作成

conda create -n nerfstudio python=3.8

仮想環境をアクティブ化

conda activate nerfstudio

Pytorchインストール (v2.1.2 CUDA 11.8)

pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118

ninjaインストール

pip install ninja

tiny-cuda-nnインストール

pip install git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

nerfstudioインストール

pip install nerfstudio

トレーニング

トレーニング手法には、推奨されているNerfactoを使用します。詳細については、ドキュメントをご確認ください。

まずはサンプルが用意されていますので、試してみてください。

フォルダ作成

md Nerfstudio

ディレクトリ移動

cd Nerfstudio

サンプルのダウンロード

ns-download-data nerfstudio --capture-name=poster

nerfactoでトレーニング(モデル選択)

ns-train nerfacto --data data\nerfstudio\poster
モデル説明VRAM速度
nerfactoデフォルトモデル~6GB高速
nerfacto-bigより大きく、高品質~12GB遅い
nerfacto-hugeさらに大きく、さらに高品質~24GB最も遅い
depth-nerfacto深度に基づくモデル~6GB高速

http://localhost:7007/にアクセスすると、ウェブビューアが読み込まれます。

30,000ステップでトレーニングが終了し、outputsフォルダにファイルが保存されています。

レンダリング

ビューアの起動(config.ymlのパス)

ns-viewer --load-config outputs\poster\nerfacto\config.yml

http://localhost:7007/にアクセスし、Renderタブを開いてください。

キーフレームを追加してカメラパスの設定が完了したら、「Generate Command」をクリックしてください。

Render Commandが表示されるのでコピーします。ビューアを終了し、コマンドを実行するとビデオが生成されます。

レンダリング結果

カスタムデータの使用

自分で撮影したデータを使用する場合は、Nerfstudioフォーマットに変換する必要があります。今回は、簡単でおすすめのRealityCaputureを使用する方法を紹介します。詳しくは、ドキュメントをご確認ください。

画像をアラインメントします。画像を読み込み、ALIGNMENTタブのAlign Imagesを実行します。

カメラのアラインメントをCSVファイルとしてエクスポートします。ExportRegistrationをクリックし、Internal/External camera parametersを選択して保存してください。

データをNerfstudioフォーマットに変換(画像フォルダ、csvファイル、保存フォルダ名)

ns-process-data realitycapture --data Tree_photos --csv tree.csv --output-dir tree-date

トレーニング(保存フォルダ)

ns-train nerfacto --data tree-date
タイトルとURLをコピーしました