25

BFMatcherFlannBasedMatcheropenCVの一致の精度または品質の違いは何ですか?FlannBasedMatcher大規模なデータベースに適用すると高速になる可能性があることはわかっていますが、2つのマッチャーは、実行時間に関係なく、最後に同じ一致を見つけるのでしょうか。

4

2 に答える 2

31

BFMatcherは、すべての可能性を試します(これは、「ブルートフォース」の意味であり、したがって、最適な一致を見つけます。

「おおよその最近傍のための高速ライブラリ」を意味するFLANNは、はるかに高速ですが、おおよその最近傍を見つけます。それは良い一致を見つけるでしょうが、必ずしも可能な限り最良のものであるとは限りません。精度(つまり、マッチングの「品質」)を向上させるためにFLANNのパラメーターを試すことができますが、アルゴリズムの速度が低下します。

言い換えると、FLANNはBFMatcherよりもはるかに高速ですが、近似の最近傍のみを検出します。これは適切に一致しますが、必ずしも最良であるとは限りません。FLANNの速度や精度を上げるために、FLANNのパラメーターを試してみることができます。

于 2013-04-22T06:55:07.160 に答える
13

上記の答えに追加するために、FLANNはおおよその隣人を検索するために使用される効率的なデータ構造(KD-Tree)を構築しますが、cv :: BFMatcherは徹底的な検索を行い、最良の隣人を見つけることが保証されます。FLANNの真のメリットは、大規模なデータセットで見られます。私の経験では、記述子の数が1Kを超える という正当な利点があります。

于 2015-06-02T17:31:51.830 に答える