投稿

8月, 2014の投稿を表示しています

カメラ位置・姿勢推定ライブラリOpenGV

2D-3Dの対応関係または複数画像間での2D-2Dの対応関係から、内部パラメータが既知のカメラの位置・姿勢を推定する様々なアルゴリズムが実装されている OpenGV というライブラリがある。 OpenGVには "A library for solving calibrated central and non-central geometric vision problems" とあるように、カメラの投影中心が一致していないマルチカメラシステムの位置・姿勢推定問題を解くためのアルゴリズムも実装されている。 Windows+Visual Studio 2012での利用方法 ライブラリの生成 OpenGVのサイトに インストール方法 が載っているので、これに従ってソースコードのダウンロード及びコンパイルを行うと良い。具体的には、まず、GitHubから ソースコード をダウンロードしてくる。次に、CMakeを使ってVisual Studio用のソリューションファイルを生成する。最後に、生成されたソリューションをビルドすると"opengv.lib"と"random_generators.lib"が生成される。 プロジェクトファイルの設定 追加のインクルードディレクトリに "/opengv/include" と "/opengv/third_party" を追加する。また、追加のライブラリディレクトリに "opengv.lib" へのパスを追加し、追加の依存ファイルとして"opengv.lib"を追加する。また、シミュレーションデータの生成などを行いたい場合は、追加のインクルードディレクトリに "/opengv/test" を追加し、追加の依存ファイルとして "random_generators.lib"を追加しておく。 各アルゴリズムには、三次元点の世界座標、画像上での観測座標、基準となるカメラ座標系から各カメラへの並進と回転(投影中心が一致している場合は並進は0ベクトルで回転行列は単位行列)を与えることでカメラ位置・姿勢を推定することができる。 ただし、画像上での観測