LoginSignup
1
1

More than 1 year has passed since last update.

「instantNeRFで遊ぶ Advent Calendar 2022」の17日目です。

今日はinstantNeRFのGUI画面に再生されるモデルの姿勢をあらかじめ調整する方法を検討します。

業務外の個人的な検討活動です。

警告
環境や入力内容によっては現在使用できている状況が壊れることがあります。
あなたの責任と判断で試してください。私は責任を取りません。

テストデータ

sketchfabのNefertiti statueを使用させていただきました。ありがとうございます。

colmap2nerf.py

colmap2nerf.pyの中身を確認しました。
COLMAPのimages.txtのカメラの位置と向きのデータがNeRF用に変更されていました。
17-13.png

281行目で合計した上向きの数字を使い、300行付近でカメラの向きを変える処理をしていましたのでkeep_upというparserを作ってその処理を飛ばすようにしました。
17-14.png

Blender 画像を作成

彫像がZ方向に立ち上がった姿勢にしたいのでカメラの配置を変えて画像を生成しなおしました。
17-1.png

RealityCapture モデルの姿勢を調整

Blenderで使ったカメラの配置に合わせてALIGNMENT / Align Imagesにおいて各画像の1Ds / Prior pose Absolute poseを修正し、モデルの姿勢を変更します。
17-2.png

COLMAP model_aligner

カメラの数が少なく分かりやすく配置したのでカメラは位置データを手入力で修正しました。
17-3.png

予め実行して生成してたモデルデータをCOLMAP model_alignerで修正します。12/5の方法を使いました。
17-4.png

testbed.exe

修正されたモデルデータをCOLMAPでtextデータに変更し、colmap2nerf.pyで生成したtransform.jsonを使いinstantNeRFを実行しました。
12日目に説明した2番目の方法です。

(ngp) D:\git\instant-ngp>python scripts/colmap2nerf.py --aabb_scale 4 --images data/2212142b --out 2212142b.json --keep_up

画面に表示された彫像は前後と上下が反転していました。
17-8.png

座標系の考察

それぞれのツールの座標系を検討しました。使用したツールは図の左から並べました。カメラのアイコンは向きを[0, 0, 0]にした状態です。
221215a.png

instantNeRFの画面の座標の向きを基準に回転させたのが下の図です。この状態だとモデルは逆さで後ろ向きになるようです。
221215b.png

RealityCapture モデルの姿勢を再調整

instantNeRFの画面の座標でカメラに正対するようモデル(頭がZ-、顔がY+の方向)とカメラを配置しなおしました。
17-15.png

testbed.exe 再調整後

起動時点のモデルの姿勢が画面に正対しました。
17-12.png

まとめ

colmap2nerf.pyにup変更させない機能を追加しました。
instantNeRFの座標を考慮しRealityCaptureでモデルとカメラの向きを調整し、カメラの座標をCOLMAPへ入力することでinstantNeRFで再生するモデルの初期姿勢を変更しました。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1