「instantNeRFで遊ぶ Advent Calendar 2022」の2日目です。
業務外の個人的な検討活動です。
snapshotを使うと、学習途中の結果を保存して再開することができます。
githubはrun.pyで使う方法を説明していました。
https://github.com/NVlabs/instant-ngp#frequently-asked-questions-faq
snapshotはtestbed.exeでも使うことができます。
snapshotについて
メニューウィンドウの下の方にあるsnapshotの中にボタンがあります。
Saveを押すと、その時点の学習内容を保存します。ここではbase.msgpackに保存されます。
snapshotに保存した時点から学習を再開する
testbedをいったん終了し、起動するときにオプションを追加します。
するとGUIのウィンドウが開いた時点で学習が進んだ状態で表示されます。
そこから学習が再開されます。
(ngp) build\testbed.exe --scene ..\..\instant-ngp\data\220823 --snapshot ..\..\instant-ngp\data\220823\base.msgpack
snapshotだけ使う 学習再開しない場合
ところで本来であればNeRFが空間再生するためにはネットワークだけがあればよくて、画像ファイルは要らないはずです。
試しにmodeをnerfに指定し、snapshotを指定することで再現空間を見ることができました。
(ngp) build\testbed.exe --mode nerf --snapshot ..\..\instant-ngp\data\220823\base.msgpack
この場合は学習を再開することはできませんので、trainingはグレーアウトしています。
transform.json中でn_extra_learnable_dimsを指定しているときはエラーが起きましたので、何か条件がありそうです。
snapshotファイルだけで再生空間を見てもらえるようになるのは使い勝手がよさそうです。