特徴点マッチングの結果を改善する方法
(1)や(2)でも書いてありますが、主に3つの手法があります。
- Ratio test
KNN(K-近傍法)を使って求めたマッチする特徴点のペアに対し、ペア1の点同士の距離とペア2の点同士の距離の比(ratio)を元に、適切な結果かどうかを判断する。(3)のように、Loweらは実験により、その比が0.7を超えるとよいマッチングであることを示した。つまり、
かどうかをテストするとよい。
(4)に記載のように、ratio testをするためには2個以上のペアが必要なので、Bruto-force法だろうがFLANNを使おうが、どこかのタイミングでKNNを使ってペアを求める必要があります。
- Cross check
画像Aと画像Bを相互に基準としてマッチングをそれぞれ取った時、同じ点がベストマッチかを調べる、という方法です。画像A中の特徴点を基準とした場合、その点は固定したまま、画像B中の各特徴点との距離を計算します。これでは、Aからみたら最適なペアですが、Bからしたら最適かは保証されません。そのため、同様にして画像Bの特徴点を基準にして最適なペアを求めることで、お互いにとって最適であるかを求める、という方法です。(5), (6)が視覚的にわかりやすい説明かなと思います。
- RANSAC model
画像Aと画像Bで合致する特徴点がある、ということは、両者の間になんらかの幾何学的な関係が存在することになります。つまりカメラが画像Aを撮影してから、なんらかの並進+回転があった後に画像Bが撮影された、と言えます。全く動いていない場合も含まれます。この幾何学的な関係を、RANSACを用いることで推定し、推定できた(収束した)ら正しいマッチングだとみなします(2), (7)
- その他
その他にも、単純に合致する特徴点通しの距離をみる、など、観測モデルを考慮した上でのフィルタリング方法はいくらでも考えられます。