LoginSignup
2
1

More than 1 year has passed since last update.

RealityCaptureのregistrationデータを流用する検討

Last updated at Posted at 2022-12-11

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

今週はtransform.jsonの内容をRealityCaptureのデータから作る方法を検討していきます。

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

通常の手順でcolmap2nerf.pyを使ってカメラパラメータを求めtestbed.exeを実行したところ、ケーキの形がひしゃげて再生されました。
おそらくCOLMAPが導いたカメラの位置や向きの誤差が大きかったのかもしれません。
12-1.png

同じ画像ファイルを使いRealityCaptureで再構成した結果では正しく再現されました。
個人的に使い慣れたRealityCaptureのカメラパラメータを流用しinstantNeRFの再生品質を上げることを検討します。

12-2.png

colmap2nerf.py

instantNeRFはcolmap2nerf.pyというスクリプトを使い、COLMAPが解析したモデルデータ; cameras.txtとimages.txtをtransform.jsonというデータファイルに変換します。colmap2nerf.pyにrun_colmapをつけるとCOLMAPが実行されます。
COLMAPのモデルデータはcolmap_textフォルダにテキスト形式で保存されます。cameras.txtが内部パラメータ、images.txtは外部パラメータに相当します。

colmap2nerf.pyにrun_colmapをつけない場合、colmap_textフォルダに置いてあるモデルデータを使用することになります。

12-3.png

そのモデルデータをRealityCaptureからexportしたデータと挿げ替えることが目的です。

transform.json

transform.jsonは画像のファイル名とカメラパラメータ、instantNeRFの表示領域のパラメータを記録しています。
12-4.png

transform.jsonはこのあとカメラごとの外部パラメータが続きます。

カメラの内部パラメータはcameras.txtをほとんどそのまま写されています。
一方、カメラの外部パラメータはimages.txtを形式の変更と座標変換が行われています。例えばカメラの向きの形式はimages.txtがクォータニオン、transform.jsonが回転行列です。

方針

カメラ情報の解析結果をRealityCaptureで代用する内容の案はこちらです。

  • カメラの位置
  • カメラの外部パラメータは全部(位置と向き)
  • カメラの内部パラメータと外部パラメータは全部

12-5.png

課題

下記の内容を理解する必要がありそうです。

  1. COLMAPのモデルデータ
  2. RealityCaptureのRegistrationデータ
  3. colmap2nerf.pyの座標変換

各項目の内容が大きいことや情報の検索性を高めるため、日にちを分けて検討していこうと思います。

2
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
2
1