hyperreel - HyperReelのコードリリース:レイコンディショニングサンプリングによる高忠実度6-DoFビデオ

(Code release for HyperReel: High-Fidelity 6-DoF Video with Ray-Conditioned Sampling)

Created at: 2022-12-17 07:11:56
Language: Python
License: MIT

ハイパーリール

ウェブサイトの||ビデオ

パイプライン

HyperReelのコードは、MITライセンスの下でライセンスされている次のプロジェクトから引き出されているため、MITライセンスの下で入手できます:nerf_plTensoRF、およびtorch-ngp。これらすべてのプロジェクトのライセンスは、フォルダにあります。

licenses/

目次



取り付け

必要なすべてのPython依存関係をインストールするには、次のコマンドを実行します

conda env create -f environment.yml

HyperReelコードベースは、NVIDIA 3090 RTX GPU、CUDAバージョン11.8、および128GBのRAMを搭載したUbuntu 20.04を実行しているマシンでテストしたことに注意してください。

動的データセット

デフォルトでは、次のことを前提としています。

  1. すべてのデータセットはフォルダーにあります (引数で指定)
    ~/data
    experiment.params.data_dir
  2. 引数で指定された個々のデータセットのサブディレクトリを使用します(例:およびを参照)。
    experiment.dataset.data_subdir
    conf/experiment/params/local.yaml
    conf/experiment/dataset/technicolor.yaml

テクニカラー

テクニカラーデータセットにアクセスするには、マルチビューライトフィールドビデオのデータセットとパイプラインの作成者に連絡してください。次のシーケンスを使用します。

  • 誕生日(フレーム150-200)
  • ファビアン(フレーム50-100)
  • 画家(フレーム100-150)
  • シアター(フレーム50-100)
  • 電車(フレーム150-200)

グーグルイマーシブ

リリースページからGoogleイマーシブシーケンスをダウンロードします。例として、炎のシーケンスをダウンロードするには、次のコマンドを実行します。

wget https://storage.googleapis.com/deepview_video_raw_data/02_Flames.zip

ニューラル3Dビデオ

ニューラル3Dビデオシーケンスをリリースページからダウンロードします。例として、フレイムステーキシーケンスをダウンロードするには、次のコマンドを実行します。

wget https://github.com/facebookresearch/Neural_3D_Video/releases/download/v1.0/flame_steak.zip

静的データセット

ドネフ

DoNeRF データセットはここにあります。

ティッカー

LLFF データセットはここにあります。

ぴかぴか

Shiny データセットはここにあります。

スペース

スペースデータセットはここにあります。

スタンフォード

スタンフォード大学のデータセットはここにあります。

動的シーンでのコードの実行

デフォルトでは...

  1. チェックポイントはフォルダに書き込まれます(引数で指定)
    ~/checkpoints
    experiment.params.ckpt_dir
  2. ログはフォルダに書き込まれます(引数で指定)。
    ~/logs
    experiment.params.log_dir

ダイナミック シーンのすべてのトレーニング データをメモリに読み込むには、数分かかる場合があることに注意してください。

テクニカラー

テクニカラーデータセットのシーンの50フレームサブセットでHyperReelをトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_technicolor.sh <gpu_to_use> <scene> <start_frame>

デフォルトでは、上記のコマンドは中央のカメラを保持します。使用可能なすべてのカメラを使用してモデルをトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_technicolor_no_holdout.sh <gpu_to_use> <scene> <start_frame>

これにより、実験のログ フォルダーに検証画像と (スパイラル) 検証ビデオも自動的に作成されます。トレーニング済みのモデルから、次の方法でビデオ シーケンスをレンダリングすることもできます。

bash scripts/render_one_technicolor.sh <gpu_to_use> <scene> <start_frame>

グーグルイマーシブ

Google イマーシブ データセットのシーンの 50 フレームのサブセットで HyperReel をトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_immersive.sh <gpu_to_use> <scene> <start_frame>

デフォルトでは、上記のコマンドは中央のカメラを保持します。使用可能なすべてのカメラを使用してモデルをトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_immersive_no_holdout.sh <gpu_to_use> <scene> <start_frame>

ニューラル3D

ニューラル 3D ビデオ データセットのシーンの 50 フレーム サブセットで HyperReel をトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_n3d.sh <gpu_to_use> <scene> <start_frame>

デフォルトでは、上記のコマンドは中央のカメラを保持します。使用可能なすべてのカメラを使用してモデルをトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_n3d_no_holdout.sh <gpu_to_use> <scene> <start_frame>

静的シーンでのコードの実行

ドネフ

DoNeRF データセットのシーンでハイパーリールをトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_donerf_sphere.sh <gpu_to_use> <scene>

ティッカー

LLFF データセットのシーンで HyperReel をトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_llff.sh <gpu_to_use> <scene>

ぴかぴか

シャイニーデータセットのCDおよびLabシーケンスでHyperReelをトレーニングするには、次のコマンドを実行します。

bash scripts/run_one_shiny_dense.sh <gpu_to_use> <scene>

カスタムパラメータを使用したコードの実行

モデルをトレーニングするための一般的な構文は次のとおりです。

python main.py experiment/dataset=<dataset_config> \
    experiment/training=<training_config> \
    experiment/model=<model_config> \
    experiment.dataset.collection=<scene_name> \
    +experiment/regularizers/tensorf=tv_4000

どこ

  1. <dataset_config>
    にあるデータセット構成ファイルを指定します。
    conf/experiment/dataset
  2. <training_config>
    にあるトレーニング構成ファイルを指定します。
    conf/experiment/training
  3. <model_config>
    specifies the model config file, located in
    conf/experiment/model
  4. <scene_name>
    specifies the scene name within the dataset

正則化子の構文

この線は、ボリュームテンソル成分に全変動とL1正則化を追加し、構成は にあります。

+experiment/regularizers/tensorf=tv_4000
conf/experiment/regularizers/tensorf/tv_4000

リアルタイムビューア

HyperReel モデルをトレーニングしたら、スクリプトを使用してリアルタイムビューアを起動できます。

scripts/demo_*

たとえば、テクニカラー データセットのシーンでリアルタイム ビューアーを実行するには、次のコマンドを実行します。

bash scripts/demo_technicolor.sh <gpu_to_use> <scene> <start_frame>

静的シーンの場合は、開始フレーム引数を省略できます。例えば:

bash scripts/demo_shiny_dense.sh <gpu_to_use> <scene>

3090 RTX GPU を搭載したワークステーションで実行されているデモの例をいくつか示します。

https://user-images.githubusercontent.com/2993881/208320757-439928a1-4d35-4625-afe7-56e7c1eaa57c.mov

https://user-images.githubusercontent.com/2993881/208320798-445fec87-54f1-4335-b345-804a7b2183fe.mov

引用

@article{attal2023hyperreel,
  title   = {{HyperReel}: {H}igh-Fidelity {6-DoF} Video with Ray-Conditioned Sampling},
  author  = {Attal, Benjamin and Huang, Jia-Bin and Richardt, Christian and Zollhoefer, Michael and Kopf, Johannes and O'Toole, Matthew and Kim, Changil},
  journal = {arXiv preprint arXiv:2301.02238},
  year    = {2023}
}