HyperReelのコードは、MITライセンスの下でライセンスされている次のプロジェクトから引き出されているため、MITライセンスの下で入手できます:nerf_pl、TensoRF、およびtorch-ngp。これらすべてのプロジェクトのライセンスは、フォルダにあります。
licenses/
必要なすべてのPython依存関係をインストールするには、次のコマンドを実行します
conda env create -f environment.yml
HyperReelコードベースは、NVIDIA 3090 RTX GPU、CUDAバージョン11.8、および128GBのRAMを搭載したUbuntu 20.04を実行しているマシンでテストしたことに注意してください。
デフォルトでは、次のことを前提としています。
~/data
experiment.params.data_dir
experiment.dataset.data_subdir
conf/experiment/params/local.yaml
conf/experiment/dataset/technicolor.yaml
テクニカラーデータセットにアクセスするには、マルチビューライトフィールドビデオのデータセットとパイプラインの作成者に連絡してください。次のシーケンスを使用します。
リリースページからGoogleイマーシブシーケンスをダウンロードします。例として、炎のシーケンスをダウンロードするには、次のコマンドを実行します。
wget https://storage.googleapis.com/deepview_video_raw_data/02_Flames.zip
ニューラル3Dビデオシーケンスをリリースページからダウンロードします。例として、フレイムステーキシーケンスをダウンロードするには、次のコマンドを実行します。
wget https://github.com/facebookresearch/Neural_3D_Video/releases/download/v1.0/flame_steak.zip
DoNeRF データセットはここにあります。
LLFF データセットはここにあります。
Shiny データセットはここにあります。
スペースデータセットはここにあります。
スタンフォード大学のデータセットはここにあります。
デフォルトでは...
~/checkpoints
experiment.params.ckpt_dir
~/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 ビデオ データセットのシーンの 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
どこ
<dataset_config>にあるデータセット構成ファイルを指定します。
conf/experiment/dataset
<training_config>にあるトレーニング構成ファイルを指定します。
conf/experiment/training
<model_config>specifies the model config file, located in
conf/experiment/model
<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} }