stMind

about Arsenal, Arsene Wenger, Tech, Computer vision and Machine learning

rubyでSIFTの対応点探索による画像のマッチング

solem's vision blog: Another Python Interface for SIFT

これと同じ事をrubyでやってみた。
SIFT特徴量の計算自体はvlfeatというライブラリを使っていて、特徴量に基づいて
対応する点を探索したり、画像上にプロットしたりをrubyからやっている。

f:id:satojkovic:20130112223722j:plain

左側の画像でキーポイントとして検出された約580点の中から、対応点を求めた時の距離が近い
キーポイント約60点を直線で結んでいる。箱の端にある点は対応点探索に失敗しているが、
箱の内部にあるキーポイントは回転やスケールが変化した右側の画像に正しく対応している感じ。
どのキーポイントが対応の信頼度が高いかはどうやって決めるのがいいのか?
SIFT作者のデモプログラムでは、対応点を求めるときに、最も近い点の距離が二番目に近い点の
距離の0.6倍より小さい場合ということで求めてるみたいだ。

コードは結構複雑になってしまた...
image matching using SIFT