OpenMVG SfM - eiichiromomma/CVMLAB GitHub Wiki
OpenMVG)) SfM
(OpenMVGでSfM。内容的にはドキュメントをほぼなぞっただけ。
カメラ-センサ情報の確認
ソースの中にあるsensor_width_camera_database.txtに撮影に使うカメラがあれば直ぐ試せる。 但し実際に撮影した画像のExifを確認した方が良い。テストに使ったEX-H20Gは上記のファイルだとメーカー名やシリーズ名まで入っているが、画像にはEX-H20Gのみ埋め込まれていたので、そのように修正する。
SfM手順
- 画像リスト作成
- 特徴量抽出
- マッチング
- 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
研究室をフラフラ回りながら撮影した画像を基に作成した結果。