😀

初心者による初心者のためのInstant NGP(NeRF) 備忘録

2022/10/22に公開

NeRFやってみた

しがない備忘録です。こちらを参考にした中で困ったことや、そもそもわからんところをコメント入れている感じです。
https://lilea.net/lab/how-to-setup-instant-ngp/

注意書き

こちらのサイトは二窓で見ていただくとありがたいかもです!

そしてここは本文引用です(Ctrl+Fとかで該当部分を出して照会しながらみてくれるとありがたい)

CMake 編

CMakeを入れる。
最新版ではなく3.22.3を入れる (最新版はビルドに失敗するようなので注意)

こちらのURLでは3.22.3は出なかったので、直接ググったところこのgit hubのURLで出ましたので。
ここのcmake-3.22.3-windows-x86_64.msiをダウンロードです。
https://github.com/Kitware/CMake/releases/tag/v3.22.3

ユーザー環境変数に追加する。
変数:CMAKE_CUDA_COMPILER
値:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc.exe

これがまた難しい。path通すらしいんすけど、まぁおそらくCUDAのバージョンが違うので、
「v11.6」→「v11.8」へ変更しましょう(2022年10月19日現在)

Python 編

これは簡単

OptiX 編

ダウンロードは参考の通り(既にダウンロードされてる説あるのでアプデだけで良い説)

インストールしたらシステム環境変数に追加する。
変数:OptiX_INSTALL_DIR
値:C:\ProgramData\NVIDIA Corporation\OptiX SDK 7.4.0

これ「システム環境変数」って言ってさっきの場所ではないんです(ややこしや)
「システム環境変数の編集」と検索すると出てくんですけど間違えておくともっとややこしいので。
いちおうサイトですhttps://nj-clucker.com/edit-system-environment-variables/

で、あれっすね。もうお分かりっすね。
バージョンです。
「SDK7.4.0」→「SDK7.5.0」へ変更です(2022年10月19日現在)

コンパイル 編(重要)

instant-ngp-Windowsをビルド

コンパイルってなんぞやという方もここは頑張りましょう。

instant-ngp-Windowsを ここ からzipダウンロードorクローンする。
※追記:zipダウンロードの場合そのままでは必要なデータが不足していたりとエラーになりがちなのでクローンの方が良さそう

クローンしたリポジトリのルートディレクトリへ移動する。
例:cd E:\Git\lileaLab\NeRF\instant-ngp-Windows
cmake . -B buildを実行。

ここしなくていいです!!!
このあたりの流れが私、ぜんぜんうまくいかなかったのでひとまずは、コマンドプロンプトを開いて、
git clone --recursive https://github.com/nvlabs/instant-ngp(ここでクローン)
cd instant-ngp
cmake . -B build
cmake --build build --config RelWithDebInfo -j
で実行するといったん行けました!!!

きつね

cmake --build build --config RelWithDebInfo -j 16を実行。

その後にですね
C:\Users\sakiyama\instant-ngp-Windows\instant-ngp\build\testbed.exe --scene data/nerf/fox

を実行してビルドテストを行ってみましょうね。
ディレクトリは変えてね('ω')

きつねさんがでてくれば、ひと段落(した)

COLMAPを準備

システム環境変数のPathにCOLMAPのディレクトリを追加する。
例:E:\Git\lileaLab\NeRF\instant-ngp-Windows\COLMAP

これはディレクトリよく間違えるので注意して。

Pythonで仮想環境を構築

pyexr がインストールされなかった場合は「OpenEXR‑1.3.2‑cp39‑cp39‑win_amd64.whl」をダウンロードしてくる。

これは、instant-ngpのディレクトリに保存した。

生成編

ここまでくれば、指示に従ってコンパイラに書いていけば大丈夫な気がする。
わりかし前半のややこしいところでつまづいている説が高い。
それこそこの辺りは淡々と
python scripts/colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 16 --images data/toy_truck

pip install numpy

pip install opencv-python

python scripts/colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 16 --images data/toy_truck
で順々に実行していく。これは流れるように。
(このあたりで前半のミスが顕在化してくるんだろうぁ、、)

ルートにjsonファイルが生成される。

ここ、ずぅおおおーーーってなってテンション上がります。

いよいよ実行するが、その前にjsonファイルとディレクトリの構成を以下のように整理する。

これがけっこうめんどくさいので注意
toy_truckフォルダの中に、dataで、その中にもう一回toy_truckフォルダを作るという。。。

C:\Users\sakiyama\instant-ngp-Windows\instant-ngp\build\testbed.exe --scene data/toy_truck
をコンパイラに入力してみましょう!!

歓喜。。

未解決点

なんか、上記写真のようにぼやっとなる(きれいにjsonが作成されていないのか、、)。
ほかの処理ならきれいにできているので謎です
踏んだ方いたらご解決法をおしえいただきたい。。

(ご教授いただいたaster氏に感謝)
#やってみた

Discussion