2017-04-18 13 views
0

OpenCvのORBアルゴリズムの出力«KeyPoint»でどのように機能がランク付けされているのか分かりません。OpenCVのORBアルゴリズムから最も優れた機能をランク付け

私がいくつかのサンプルでテストして知っているのは、フレーム上の位置ではなく、アルゴリズムが各キーポイントに割り当てたスコアではないと思います。

私の目標は、キーポイントをスコアでランク付けすることです。最悪の機能に対する優れた機能。 ORBアルゴリズムのコードソースを変更しなければ、何か不足しているのですか?あなたの助けのための

おかげで、

シリル

答えて

0

OpenCVのソースには、キーポイントは、画像ピラミッドレベルによってクラスタ化されていることを示しているコメントとコードがあります。参照:OpenCV Orb code on github。画像のピラミッドレベルごとに、OpenCVのFastFeatureDetectorを使用してキーポイントが選択されます.FastFeatureDetectorは、行ごとにスキャンし、コーナースコアを計算します。その結果、画像のピラミッドを使用する場合、出力キーポイントは、画像の場所もキーポイントのスコアもソートされませんでした。おそらくPythonのlibで画像のピラミッドレベルの数を設定できないようですね。しかし、C++ APIはそうです(http://docs.opencv.org/trunk/db/d95/classcv_1_1ORB.html参照)。

いずれにしても、Pythonで入力引数を使用して保持するキーポイントの数を設定できる必要があります。そのため、ランキングに気にする必要はありません。私が知ることから、スコアポイントを減らすためにキーポイントのランク付けをしたいだけかもしれません。これはすでにAPIで行うことができます。参照してください:http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_orb/py_orb.html#orb-in-opencv

+0

あなたのメッセージとピラミッドレベルに関する洞察に感謝します! 私は実際にそれらのランク付けをしようとするか、少なくとも3つの強固/強固な機能を選択したいと考えています。実際、アフィン変換を1つのフレームから、最初のフレームで見つけることができる最高の頂点のもう1つのフレームに変換したいと考えています。すべての入力は非常に貴重です!ありがとう! –

+0

通常、あるフレームから次のフレームへのアフィン(または他の)変換を取得する場合は、それぞれのフィーチャ検出ステージで計算されたハリスコーナースコアに基づいてではなく、フレーム間の一致スコアに基づいてフィーチャのランク付けを行いますフレーム。言い換えれば、私はあなたが考えられるキーポイントの束を計算し、それぞれのキーポイントの記述子を計算して、その記述子にマッチさせることをお勧めします。参照:http://docs.opencv.org/2.4/doc/tutorials/features2d/feature_homography/feature_homography.html – chloelle

+0

はい、そうです!それは実際に私が今しようとしていることです!フィーチャマッチングの良い練習についてのあなたの洞察をお寄せいただきありがとうございます! –

関連する問題