zju3dv/ENeRF

SIGGRAPH Asia 2022: Code for "Efficient Neural Radiance Fields for Interactive Free-viewpoint Video"

ENeRF – インタラクティブな自由視点動画向け効率的なニューラルレンジアンスフィールド

何であるか

  • 効率的なニューラルレンジアンスフィールド(ENeRF)の研究用実装。NeRFベースのビュー合成を高速化し、インタラクティブ(約20–50 FPS)な自由視点動画の実現を可能にする手法。
  • 静的シーン(DTU、NeRF合成/LLFF)と動的ヒューマンキャプチャ(ZJU-MoCap)の両方を対象とし、著者らが公開した屋外データセットも対応。

主な機能

  • DTUマルチビューデータセット上で汎用的なENeRFモデルの学習。
  • 特定シーン(例:DTUスキャン、ZJU-MoCapシーケンス、ENeRF-Outdoor「actor1」データ)に対するファインチューニング。
  • 標準的な評価指標(PSNR、SSIM、LPIPS、深度誤差)による評価とリアルタイムレンダリング速度の報告。
  • ヒューマンキャプチャのインタラクティブレンダリング用のオプションGUI。

インストール(READMEより)

  1. conda環境の作成
    conda create -n enerf python=3.8
    conda activate enerf
    
  2. PyTorch 1.9.0(CUDA 11.1)および関連パッケージのインストール:
    pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 \
        -f https://download.pytorch.org/whl/torch_stable.html
    
  3. 残りのPython依存関係のインストール
    pip install -r requirements.txt
    
  4. ワークスペースディレクトリの設定(データセット、チェックポイント、結果が保存される場所):
    export workspace=$PATH_TO_YOUR_WORKSPACE
    

データセットと事前学習モデル

  • DTU(事前処理済みマルチビューデータ) – ベースラインモデルとファインチューニングに必須。
  • NeRF合成およびLLFF – 標準的なNeRFベンチマークでの評価に使用。
  • ZJU-MoCap – インタラクティブGUIに使用されるヒューマンキャプチャデータ。
  • ENeRF-Outdoor – 著者らが公開した新しい屋外データセット。
  • 事前学習済みDTUモデル$workspace/trained_model/enerf/dtu_pretrain/latest.pth にダウンロード・配置可能。

一般的なワークフロー

  1. 学習(DTU上で汎用モデル):
    python train_net.py --cfg_file configs/enerf/dtu_pretrain.yaml
    
    torch.distributed を用いたマルチGPU学習をサポート。
  2. ファインチューニング(特定スキャン、例:DTUスキャン114):
    cd $workspace/trained_model/enerf
    mkdir dtu_ft_scan114
    cp dtu_pretrain/138.pth dtu_ft_scan114
    cd $codespace   # ENeRFコードが含まれるディレクトリ
    python train_net.py --cfg_file configs/enerf/dtu/scan114.yaml
    
    READMEによると、i9-12900K + RTX 3090で3kイテレーションは約11分、11kイテレーションは約40分。
  3. 評価 – 例:DTUで:
    python run.py --type evaluate \
        --cfg_file configs/enerf/dtu_pretrain.yaml \
        enerf.cas_config.render_if False,True \
        enerf.cas_config.volume_planes 48,8 \
        enerf.eval_depth True
    
    サンプル出力:PSNR ≈ 27.6、SSIM ≈ 0.957、LPIPS ≈ 0.089、512×640解像度で約21.8 FPS。
  4. インタラクティブレンダリング(ヒューマンキャプチャ):
    python gui_human.py --cfg_file configs/enerf/interactive/zjumocap.yaml
    
    マウス/キーボード操作はREADMEに記載。

READMEからのパフォーマンスハイライト

  • DTU評価:27.6 dB PSNR、0.957 SSIM、0.089 LPIPS、21.8 FPS。
  • ZJU-MoCap:31.48 dB PSNR、0.971 SSIM、0.042 LPIPS、49.2 FPS。
  • 高性能デスクトップ(i9-12900K + RTX 3090)でリアルタイムレンダリングを実現。

引用 研究で本コードを使用する場合、SIGGRAPH Asia 2022論文を引用してください:

@inproceedings{lin2022enerf,
  title={Efficient Neural Radiance Fields for Interactive Free-viewpoint Video},
  author={Lin, Haotong and Peng, Sida and Xu, Zhen and Yan, Yunzhi and Shuai, Qing and Bao, Hujun and Zhou, Xiaowei},
  booktitle={SIGGRAPH Asia Conference Proceedings},
  year={2022}
}

結論:ENeRFは、学習、ファインチューニング、評価、インタラクティブレンダリングを含む、自由視点動画用途に適した高速推論を重視した完全なオープンソース実装です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト