OpenMVG SfM - eiichiromomma/CVMLAB GitHub Wiki

(OpenMVG)) SfM

OpenMVGでSfM。内容的にはドキュメントをほぼなぞっただけ。

カメラ-センサ情報の確認

ソースの中にあるsensor_width_camera_database.txtに撮影に使うカメラがあれば直ぐ試せる。 但し実際に撮影した画像のExifを確認した方が良い。テストに使ったEX-H20Gは上記のファイルだとメーカー名やシリーズ名まで入っているが、画像にはEX-H20Gのみ埋め込まれていたので、そのように修正する。

SfM手順

  1. 画像リスト作成
  2. 特徴量抽出
  3. マッチング
  4. IncrementalSfMの実行

でとりあえずは作れる。

画像をimage4ディレクトリに、出力をout4に、中間ファイルをmatches4に入れた例。 openMVG_main_ComputeFeaturesのときに-nオプションでOpenMPのスレッド数を指定できる。 おまけに-p ULTRAを指定しているが、時間がかかるので注意。 openMVG_main_ComputeStructureFromKnownPoses以下はよりロバストなデータへの加工なのでここまででもそれなりのデータにはなる。

build/software/SfM/にあるスクリプトを使えば良いのだが、オプション等をいちいち加工するのも面倒なので、以下のコマンドで対応できる。

openMVG_main_SfMInit_ImageListing  -d sensor_width_camera_database.txt -i image4 -o matches4
openMVG_main_ComputeFeatures -i matches4/sfm_data.json  -o matches4 -n 8 -p ULTRA
openMVG_main_ComputeMatches  -i matches4/sfm_data.json  -o matches4
openMVG_main_IncrementalSfM -i matches4/sfm_data.json -m matches4 -o out4
openMVG_main_ComputeSfM_DataColor -i out4/sfm_data.bin -o out4/colorized.ply
openMVG_main_ComputeStructureFromKnownPoses  -i out4/sfm_data.bin -m matches4/ -f matches4/matches.f.bin -o out4/robust.bin
openMVG_main_ComputeSfM_DataColor -i out4/robust.bin -o out4/robust_colorized.ply

研究室をフラフラ回りながら撮影した画像を基に作成した結果。