AKAZE(OpenCV)による特徴点マッチング

OpenCVのAKAZEによる特徴点マッチングをやってみた。 特徴点を抽出するアルゴリズムはSIFTやSURFなどあるけど、これらの比較は他のWebページで紹介されているのでその中でも速度的にもアルゴリズム的にも評判のいいAKAZEを試してみた。

作者のページは下記のところになる。

http://www.robesafe.com/personal/pablo.alcantarilla/kaze.html

特徴点をマッチングさせるために2枚の画像を準備した。 やりたことはステレオカメラで物体がどこに存在するか知りたいためのマッチングなので左右カメラを見立ててデジカメで写真を取得した。

見ればわかるのだが、画像は平行移動ではない、左右のカメラを意識しているので、写真立ての向きが若干違うように見える。

左カメラの画像

右カメラの画像

AKAZEの結果

AKAZEで特徴点マッチングさせると下図のようになる。

結果からすると、一致しない特徴点のマッチングもあるけど、ZYBOが特徴点マッチングの結果ラインで描き消されているのがわかるように、多くの特徴点マッチングはうまく行っている。

最終目標はステレオカメラで物体の距離を抽出することなので、これだとダメだなぁと気がついた。 特徴点マッチングだと写真の壁にあるような真っ直ぐな境界線が検出できない。 距離を算出するにはこの境界線なども抽出して、マッチングさせないと行けないのだが、これは別の方法で検出させなければいけないのね。

AKAZEの詳細な原理まで理解できていないんだけど、ソースコードを眺めてると、これなら直接RTLに落とせそうです。