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

0 件のコメント:

コメントを投稿