OpenCVには、KNNやBruteForceなどの多くのマッチャーが組み込まれています。私は、2つの機能の間の "コスト"を計算し、自分自身をマッチングさせることができる何らかの関数がどこかに存在するかどうかを知りたいと思います。基本的には、私は2つのcv :: Keypointオブジェクトを持っており、それぞれに128のベクトルがあります。理想的には、それらを取り込んで単一のスコア出力を提供する機能があれば、あるいはおそらく他の発見的方法があれば可能でしょう。OpenCV SURF:2つの機能間のコスト関数ですか?
答えて
SIFTおよびSURF記述子は両方ともヒストグラムです。ヒストグラム距離メトリックのいずれかを使用して、記述子の各ペア間の類似度/相違度スコアを調べることができます。
ユークリッド距離とヘリンガー距離は、この目的のために最も有名な手段です。しかし、距離尺度を使用する場合は、その関数にメトリック機能があることを確認する必要があります。メトリック機能に精通していない場合は、Wikipediaがそれを非常にうまく説明しました:Metric Definition。
OpenCVは、Bhattacharyya distanceを含む最も一般的なメトリック関数のいくつかを実装しています。
さて、私は比較のためにどのようなスケールですか?私がL2 Normを使うと、どんな距離になっていますか?どのようにその良い/最小限を知っていますか? – raaj
ほとんどの場合、ポイントを受け入れるか拒否するためにRANSACを使用します。 (1)3つのマッチ(3つのペア)を取る、(2)それらの間の変換を見つける、(3)TマトリックスでOKであるマッチの数を最大公差で数える、4 )(3)の結果に関して、より良いTがなくなるまでそれを繰り返す。 => Tはあなたが望むものです! – Hossein
RANSACのない単純な例:http://docs.opencv.org/2.4/doc/tutorials/features2d/feature_homography/feature_homography.html – Hossein
- 1. Emgucv + SURF機能
- 2. OpenCVのSURFスニペットをFolowingディスクリプタ
- 3. SURFのディスクリプタ評価opencv
- 4. SURF機能で関心ポイントを保存する方法は?
- 5. OpenCVの3国間のフィルタ機能エラー
- 6. SURFを使用したopencv 3.1.0のエラー
- 7. OpenCV SURFとニューラルネットワークの組み合わせ
- 8. OpenCVのオープンソース代替SIFTとSURF
- 9. PythonでOpenCVで終了関数が機能しない
- 10. OpenCVライブラリのFindContours関数はどのように機能しますか?
- 11. Railsの2つのモデルで機能する関数を作成する
- 12. Googleマップの機能とそのコスト
- 13. 2秒間のスロットル機能
- 14. 2つのクラス間で機能を共有する
- 15. TensorFlowコスト関数のソート
- 16. 複数の要素で機能する1つの関数
- 17. eclipseは2つの関数の間の可能なコードパスを見つける
- 18. 複数の独立したラベルのコストとアクティベーション機能
- 19. つのポストで2つのミドルウェア機能
- 20. Neo4j:経路内の2つの連続関係に依存するコスト関数を持つ最短経路
- 21. JavaScript - getElementsByClassNameは1つの関数では機能しますが、他の関数では機能しません
- 22. タイプの1つのコンストラクタでしか機能しない関数
- 23. OpenCV AndroidまたはJavaでのSURFアルゴリズムパラメータの設定
- 24. 同じモジュールから2つの関数をインポートすると、2つの関数のインポートがどのように機能しますか?
- 25. 機能の2つのアドレス
- 26. jQuery - お互いに機能する2つの関数を取得する
- 27. Java関数は1つのテキストファイルでのみ機能します
- 28. jquery:2つのクリック機能
- 29. 2つのawsラムダ関数間で変数を共有
- 30. 関数間のsetTimeoutsが機能しないのはなぜですか?
SURFの場合、KNNとBruteFoceの両方が距離関数としてユークリッド距離(L2距離)を使用します。 – cxyzs7