ラベル 3D Reconstruction の投稿を表示しています。 すべての投稿を表示
ラベル 3D Reconstruction の投稿を表示しています。 すべての投稿を表示

2016年10月7日金曜日

Ceres Solver のインストール (Windows8, Visual Studio 2013)

GoogleのCeresは非線形最適化(Non-linear Least square)として広く使われており、昨今、Visionの世界でBundle Adjustmentによく使われています。最近研究している、パスの最適化にも使えるかなってことで導入してみました。Ubuntuだともっと楽なのでしょうが、家と研究室の環境の問題から、Windowsで挑戦。
インストレーションの基本は下。
http://ceres-solver.org/building.html#windows

1. Eigen のインストール。
他のページを参照

2.Google glogのインストール
2-1. ダウンロード
以下のサイトから、glog-0.3.3.tar.gzをダウンロード。
https://code.google.com/archive/p/google-glog/downloads
アンド解凍。

2-1. コンパイル
- google-glog.slnでVisual studioを立ち上げる。
- Congifuration Manager でActive solution Platform をx64に変更する。
 <New...>押してType or select the new platformをx64に変える。
 また、今後のためにReleaseいしておく。
- [Build]->[Batch Build] ですべて選んでコンパイル
- しかし、エラーが。minがないとか言われる。そのため、そのエラーをクリックしたlogging.ccを立ち上げる。
インクルードならどこでもよいが、私の場合、64行目に
#include <algorithm>
を追加する。
無事エラーがなければ、コンパイル成功

3.gflagのインストール
3-1. ダウンロード
昔のバージョンが見つからないため、下記の場所から最新版をダウンロード(執筆時点2.1.2)
https://github.com/gflags/gflags

3-2. Cmake
slnがなくなっているのでcmakeでプロジェクトを作成。但し、ビルド用のフォルダの名前がbuildにすると、元からあるファイルとかぶりフォルダが作れない。そのため、もとからあるBUILDの名前を変えるか消す。

3-3. コンパイル
エラーがなければ。無事成功

4.ceres
4-1. ダウンロード
http://ceres-solver.org/
からlatest stable release をダウンロード。執筆時点1.11.0.

4-2. プロジェクトの作成
フォルダ作成ceres-bin
cmake起動
Advancedにチェックを入れるとすべてのオプションが出る。
EIGEN_INCUDE_DIR (自分のパス)/eigen-3.2.4
GLOG_INCUDE_DIR (自分のパス)/glog-0.3.3\src\windows
GLOG_LIBRARY_DIR (自分のパス)/glog-0.3.3\Release\libglog.lib
Installation GuideにはGFLAGSに関してもパスを入れなければならないとありましたが、何故か私は必要ありませんでした。
GFLAGS_INCLUDE_DIR
GFLAGS_LIBRARY_DIR

Configure & Generate

4-3. コンパイル
ceres-binの中のCeres.slnでVisual Studioを起動
[BUILD]->[BATCH BUILD]
でALL_BUILDとINSTALLのところにチェックを付けて、ビルド開始。

参考:
http://buaiso.blogspot.com/2013/12/ceres-solver-on-windows.html
http://www.rm.is.ritsumei.ac.jp/~mori/Shohei_Mori_Site/articles/installation/CeresSolver/CeresSolver.html
glogエラー解決
http://stackoverflow.com/questions/19439670/min-max-not-a-member-of-std-errors-when-building-opencv-2-4-6-on-windows-8

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
とでれば成功

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