MRが楽しい

MRやVRについて学習したことを書き残す

OpenMVSをWindows環境で試す その1(密な点群の再構築)

以前、 SfM(Structure for Motion) の技術を試すため、OpenMVG を利用してみました。
bluebirdofoz.hatenablog.com

今回は SfM で求めたカメラの姿勢、点群の情報を使って更に密な点群情報を求める Multi-View Stereo という技術を試します。
実は VisualSFM の方でも CMVS-PMVS を利用して実施していました。
bluebirdofoz.hatenablog.com

今回は以下の記事を参考に OpenMVS というライブラリを用いて実施してみます。
Multi-View Stereoによる3次元復元ライブラリ『OpenMVS』

OpenMVS の公式ページは以下です。
OpenMVS by cdcseacave

公式ページから「ViewOnGitHub」にアクセスしてソースコードを取得できます。
f:id:bluebirdofoz:20171210041604j:plain

最も OpenMVS は Windows 用にビルドしたバイナリが別途公開されています。
github.com
今回は OpenMVS の利用が目的なので、ソースコードからのビルドは実施せず、こちらを使います。

下記記事の最後からの続きになります。
bluebirdofoz.hatenablog.com

以下のコマンドを実行し、3Dファイルが出力された状態であることを確認します。

D:\OpenMVG\ProjectTest\build64\Windows-AMD64-\Debug\openMVG_main_IncrementalSfM.exe -i D:\OpenMVG\ProjectTest\SfmTest\matches\sfm_data.json -m D:\OpenMVG\ProjectTest\SfmTest\matches\ -o D:\OpenMVG\ProjectTest\SfmTest\outReconstruction\

f:id:bluebirdofoz:20171210041636j:plain

sfm_data.bin ファイルに対して以下のコマンドを実行し、scene.mvs ファイルへ変換します。

D:\OpenMVG\ProjectTest\build64\Windows-AMD64-\Debug\openMVG_main_openMVG2openMVS.exe -i D:\OpenMVG\ProjectTest\SfmTest\outReconstruction_changeTest\sfm_data.bin -d D:\OpenMVG\ProjectTest\SfmTest\outReconstruction_changeTest\ -o D:\OpenMVG\ProjectTest\SfmTest\outReconstruction_changeTest\scene.mvs

f:id:bluebirdofoz:20171210041702j:plain
コマンドの実行が完了すると、参照した画像ファイルと共に scene.mvs ファイルが出力されています。
f:id:bluebirdofoz:20171210041710j:plain

この scene.mvs ファイルを元に密な点群データを作成します。
OpenMVS バイナリの DensifyPointCloud.exe を利用します。下記のようなコマンドを実行します。

D:\OpenMVS\build64\DensifyPointCloud.exe D:\OpenMVS\ProjectTest\DensifyPointCloudTest\scene.mvs

f:id:bluebirdofoz:20171210041717j:plain
コマンドの実行が完了すると、scene_danse.ply という3Dファイルが出力されます。
f:id:bluebirdofoz:20171210041725j:plain

MeshLab で読み込むと……。
f:id:bluebirdofoz:20171210041733j:plain
成功です。密な点群データが出力されました。