私はmatlabでSIFTアルゴリズムを使用して、テンプレート画像と一連の画像との類似性を判断しています。最終的には、スコアに基づいて一連の画像間の最適な一致を判断する必要があります。スコアが高いと言うのは本当ですか画像の一致が良いですか?完全一致の場合はスコアがゼロになることは承知していますが、画像が似ている場合はどうなりますか?
2 に答える
この問題は、見た目よりも少し複雑です。アイデアを得るには、l1 または l2 の距離だけに基づいて、テンプレートとターゲット イメージの間で SIFT 記述子を一致させてみて、結果を表示します。そのため、l1 または l2 の距離が最小のときに、各テンプレート ポイントをターゲット ポイントに一致させます。メトリックに関しては、これ以上のことはできません。ただし、視覚的には、これが悪い結果をもたらすことがわかります。
これにより、人々はさまざまなマッチング戦略を思いつきました。ほとんどのプログラムで展開されているデフォルトの方法は、l2 距離を使用して一致させることですが、2 番目に最適な一致が大幅に (60% など) 悪い場合にのみ 2 点間の一致を受け入れるようになっています。これは非常にうまく機能しますが、この戦略では、いくつかの点が決して一致しません。「スコア」として、テンプレートと画像の間で一致またはペアリングに成功したポイントの割合を実験することから始めることができます。
ほとんどの人が上に展開する戦略は、一致するテンプレートと画像ポイントの間に のような関係x= Ax'
が保持されるべきであることを確認することです。つまり、画像がテンプレートの回転されたコピーである場合、A
一致する SIFT ポイントx'
との間に回転行列が見つかることが期待されますx
。このような関係に設定された一致点の大規模なコレクションをプールするために一般的に使用される方法は、RANSAC です。このコンセンサス変形に従わないすべてのポイントはA
、外れ値としてセットから削除できます。
このアプローチの優れたデモは、Peter Kovesi のサイト にあります。
スコアとは、一致した記述子のペア間の類似度の測定値(ユークリッド距離など)を意味すると思います。私の仮定が正しければ、すべての一致 (SSD など) のスコアを統計的に平均すると、2 つの画像の類似度が得られるはずです。つまり、平均スコアが小さいほど類似性が高く、ゼロは完全一致を意味します。この類似性メトリックを改善するために、一致した記述子のセットの外れ値を削除できる RANSAC を見ることができます。
EDIT : もちろん、マッチ スコアの平均化は、マッチした記述子のパーセンテージが十分に高い場合にのみ意味があります (Maurits が示唆するように)。したがって、マッチ数のカウントと距離の平均化を組み合わせることは、妥当なアプローチかもしれません。