2015年8月9日日曜日

cvsba を Visual Studio 2013 で動かしてみる。

Bundle Adjustmentは、複数の画像の特徴点から特徴点の三次元位置とカメラの位置等を最適化する手法です。実際のところ、これを実現する手法はいくつかありますが、Bundle Adjustmentは最も精度が高いものです。しかしながら、もっとも計算メモリと計算量が必要です(これを減らす手法が様々提案されていますが割愛)。

これを実装するのは結構面倒だと思い、有名なのでいろいろライブラリがあるだろうと探してみると。Wikipediaが一番整理されてた。Bundle adjustment

いろいろあるけど、ロバストで様々なコミュニティで使われているsbaを使うこととした。で、とあるところにopencvのwapperとしてcvsbaがあり、インターフェースが楽と書いてあったので、cvsbaを動かしてみる。

1.ダウンロード
公式ページに行き、以下の二つのファイルをダウンロード
cvsba-1.0.0.tgz
cvsba_simple_test.tgz

2.CLapackのコンパイル
cvsbaにはCLapackが必要なので、ダウンロードしコンパイルしておく。詳細は、別のページを参照してください。

3.コンパイル
・cvsba-1.0.0のcvsba以下をプロジェクトの中に組み込む。具体的には、フォルダを作ってAdd Exist fileですべてのファイルを読み込むだけ。
・Properties でCLapackのインクルードのフォルダを追加
・Properties でCLapackのLinkerにライブラリのフォルダを追加
・Properties でCLapackのLinkerのAdditional Dependencyに以下のファイルを追加
libf2c.lib
blas.lib
lapack.lib
・cvsba_sample_testをコンパイルする。

4.実行
Initial error=40111.6, Final error=2.14049e-005
とでれば成功

詳細はこれから見ていき、応用してくとする。

0 件のコメント:

コメントを投稿