SURF は SIFT と同様に特許を取得しています。ORB と BRIEF は特許を取得していませんが、その機能はスケール不変ではないため、複雑なシナリオでの有用性が大幅に制限されます。
スケール不変の特徴を SURF と同じくらい速く抽出でき、SURF や SIFT ほど厳密に特許を取得していない特徴抽出器はありますか?
SURF は SIFT と同様に特許を取得しています。ORB と BRIEF は特許を取得していませんが、その機能はスケール不変ではないため、複雑なシナリオでの有用性が大幅に制限されます。
スケール不変の特徴を SURF と同じくらい速く抽出でき、SURF や SIFT ほど厳密に特許を取得していない特徴抽出器はありますか?
すでに BRISK を選択していますが、FREAKが興味深いと感じるかもしれません。著者は、BRISK や ORB よりも優れた結果が得られると主張しています。また、ORBはスケール不変ですが、その領域にいくつかの問題があることも付け加えておきます。だから私はまだ誰かがそれを試してみることをお勧めします.
FREAK ソース コードは OpenCV と互換性があり(それらをマージするのがどれほど簡単かはわかりません)、著者はそれを OpenCV プロジェクトに提出する作業を行っています。
編集:
FREAK は、opencv 機能検出器/記述子の一部になりました。
ここでは、いくつかの機能検出器/抽出器の違いと、FREAK やその他の一般的なものを含む一連のベンチマークについて詳しく読むことができます。
FREAK は、最速のスケールおよび回転不変記述子抽出器であると想定されています。これはオープン ソースであり、OpenCV で実装されているため、簡単に使用できます。BruteForceMatcher のように、ハミング距離を使用するバイナリ マッチャーが必要です。
ここでは、SIFT 記述子で簡単に置き換えることができる、使用方法の例を示します。
Briskを使用することになりました。これは、SURF に匹敵するパフォーマンスを備えた機能検出器ですが、BSD ライセンスの下にあります。さらに、OpenCV FeatureDetector フレームワークに簡単にプラグインできる非常に優れたオープン ソース C++ 実装があるため、コードで SURF ではなく Brisk を使用することを選択する 2 行のようなものです。
方向付けられた勾配のマルチスケール ヒストグラムを試すことができます。完全にスケール不変ではありませんが、データが合理的なスケール制限のセットで制約されている場合 (実際には多くの場合)、これはおそらくうまくいく可能性があります。
意図したアプリケーションが何であるかに完全に依存する別のアプローチは、ポーズレットを活用することです。これは、向きのあるグラデーションのプレーンなヒストグラムや外観モデルのような非スケール不変記述子の上に構築されている場合でも同様です。トレーニング データの注釈に、すべて異なるスケールで検出するためのさまざまなアイテムの例が含まれている場合、トレーニングのために Poselets で使用される Procrustes スタイルの距離は、多くのスケール不変性を処理する必要があります。ただし、主要なアプリケーションがパーツのローカライズされた検出ではない場合、これは満足のいくものではないかもしれません。
余談ですが、SIFT と SURF がこのように特許を取得できたのはかなり残念なことだと思います。
FREAK は OpenCV 2.4.2 に含まれるようになりました。簡単に使用できます :-)