環境
ubuntu 14.04 64bit
OpenCV 3.1.0 + Contrib 3.1.0
で動作を確認
概要
SfMは、複数の画像から3次元情報を取得するためのモジュールであり、3.1.0から正式にサポートされるようになった。
モジュールの説明
ビルド方法
公式のドキュメントが準備されているが、その方法だけでは不足する場合がある。
事前準備
OpenCV3.1.0 + Contrib 3.1.0をビルドする前に以下のパッケージをインストールする。
sudo apt-get install libeigen3-dev libgflags-dev libgoogle-glog-dev libatlas-base-dev libsuitesparse-dev libvtk5-dev
その後以下のようにCeresのソースをビルドする
git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver
mkdir build && cd build
cmake ..
make -j4
make test
sudo make install
makeテストの結果
66/67 Test #66: visibility_based_preconditioner_test ........ Passed 0.00 sec
Start 67: system_test
67/67 Test #67: system_test ................................. Passed 0.01 sec
100% tests passed, 0 tests failed out of 67
これでビルドの準備ができた。 OpenCV 3.1.0 + Contrib 3.1.0 のビルドは略
カメラ軌跡推定のsampleプログラムの実行
チュートリアルはここ
サンプルのコンパイル
サンプルファイルは以下を使用
opencv_contrib-3.1.0/modules/sfm/samplesのtrajectory_reconstruccion.cpp
g++ -o trajectory_reconstruccion trajectory_reconstruccion.cpp `pkg-config --libs opencv` -I/usr/local/include -I/usr/include/eigen3 -DCERES_FOUND=1
サンプルの実行
terminlで以下を実行
./trajectory_reconstruccion desktop_tracks.txt 1914 640 360
というメッセージが表示され冒頭の画像が表示される
感想
Viz画面上でマウスのドラッグで視点を変更することができるが、思うような構図にできない