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. OpenCVのSURF機能間の距離の計算
- 2. Emgucv + SURF機能
- 3. SURFの拡張および直立フラグopencv C++関数
- 4. OpenCVのSURFスニペットをFolowingディスクリプタ
- 5. SURFのディスクリプタ評価opencv
- 6. SURF機能で関心ポイントを保存する方法は?
- 7. これら2つのコスト関数はオクターブで同等ですか?
- 8. OpenCVの3国間のフィルタ機能エラー
- 9. SURFを使用したopencv 3.1.0のエラー
- 10. OpenCVのオープンソース代替SIFTとSURF
- 11. OpenCV SURFとニューラルネットワークの組み合わせ
- 12. PythonでOpenCVで終了関数が機能しない
- 13. OpenCVライブラリのFindContours関数はどのように機能しますか?
- 14. Railsの2つのモデルで機能する関数を作成する
- 15. 1つの方法の2つの機能の間の遅延
- 16. Googleマップの機能とそのコスト
- 17. 2秒間のスロットル機能
- 18. 2つのクラス間で機能を共有する
- 19. 機能は、2つの変数
- 20. Tensorflowコスト関数のプレースホルダエラー
- 21. TensorFlowコスト関数のソート
- 22. 複数の要素で機能する1つの関数
- 23. つのポストで2つのミドルウェア機能
- 24. eclipseは2つの関数の間の可能なコードパスを見つける
- 25. 複数の独立したラベルのコストとアクティベーション機能
- 26. JavaScript - getElementsByClassNameは1つの関数では機能しますが、他の関数では機能しません
- 27. タイプの1つのコンストラクタでしか機能しない関数
- 28. Neo4j:経路内の2つの連続関係に依存するコスト関数を持つ最短経路
- 29. OpenCV AndroidまたはJavaでのSURFアルゴリズムパラメータの設定
- 30. Pythonの:OpenCVの:エラー:(-215)size.width> 0 && size.height> 0機能品種で::関数imshow
SURFの場合、KNNとBruteFoceの両方が距離関数としてユークリッド距離(L2距離)を使用します。 – cxyzs7