ハリスの角に配置された視覚的特徴のオクターブとサイズを推定する方法


9

私は現在、OpenCVによって提供されるいくつかの機能検出器のパフォーマンスを比較し、視覚的な機能マッチングの基礎として比較しています。

SIFT記述子を使用しています。MSER機能DoG (SIFT)機能を検出するときに、(不正な一致を拒否した後)満足できる一致を達成しました。

現在、私はGFTT(追跡のための優れた機能-Harrisコーナー)でコードをテストして比較を行っています。また、最終的なアプリケーションでは、一連のGFTT機能が視覚的機能追跡プロセスから利用できるようになるためです。

私が使用しcv::FeatureDetector::detect(...)ているのはstd::vector<cv::KeyPoint>検出された機能/キーポイント/関心領域で満たされたものです。構造にcv::KeyPointは、フィーチャの場所に関する基本情報、sizeおよびoctaveキーポイントが検出された情報が含まれています。

GFTTを使用した最初の結果は、さまざまなタイプの機能の典型的なパラメーターsizeoctaveパラメーターを比較するまではひどいものでした。

  • MSERサイズ10〜40px)を設定し、オクターブを0のままにします
  • DoG(SIFT)サイズオクターブの両方を設定しますサイズとオクターブの比率は20から40の間)
  • パラメータは常にGFTTですサイズ= 3オクターブ= 0

これは、GFTT機能の主な目的が照合ではなく追跡のみに使用されていたためだと思います。このような小さな特徴から抽出され記述子は、小さな1ピクセルのシフトを含む多くのものに対して差別的で不変ではなくなるため、これはマッチング結果の質の低さを説明しています。

私は手動で設定する場合sizeGFTTをする10から12まで、私が使用しているときに非常に似て良い結果、取得MSERのDoG(SIFT)を

私の質問は、「go-with-with-10-see-if-it-works」よりもsize(および/またはoctave)をどれだけ増やすかを判断するより良い方法はありますか?可能な場合は増加をハードコーディングせずにプログラムで決定したいのですが、新しい/ 増加 / 推定アルゴリズムの選択を裏付けるいくつかの確かな引数がある限り、ハードコーディングで問題ありません。sizesizesizesize


1
ヘイ@ペネロペ:この男は、すでにいくつかの良い仕事をし、このリンクをチェックアウトする[ computer-vision-talks.com/2011/08/...

@Sistuこんにちは、一般的な場合の記述子の非常に優れた一般的な比較のように見えますが、平面オブジェクトを使用していますが、特定の種類の画像に取り組んでいるため、独自のテストを行う必要があります。さらに、質問は「さまざまなタイプの記述子のパフォーマンスを比較する参照資料が必要です」よりもはるかに具体的でした。それはいいリンクですが、チェックしてみます。
ペネロペ2012年

回答:


4

正確な質問に対して実際に良い反応があるかどうかはわかりません。SIFTとSURFのスケールスペースは、コーナーのようなキーポイントの周りの「適切な」関連する近傍サイズを自動的に推定するために実際に開発されました(これは優れた機能です)追跡する)。

今、より肯定的な答えは:

  • キーポイントと適切な一致のデータベース(たとえば、正方形のキャリブレーションパターンを使用)を構築し、このデータベースで自動化されたパフォーマンス評価を作成して、正しいサイズを見つけます。このタスクは実際には自動化できます(ポイントマッチング評価に関するMikolajczykとSchmidの研究を参照してください)。

  • 良い機能を画像ピラミッドに埋め込んで、何らかのスケールを関連付けます。この手順とよく似た処理を行う、マルチスケールFASTおよびHarrisの関心点に関する参照を探すことができます。

最大ブロックサイズをヒューリスティックに見つけるには、ボックスブラー(blockSizeオペレーターの動作とほぼ同じ)を使用して画像の推定値を計算し、コーナーが消えるタイミングを確認します。ただし、ぼかしを増やすと、コーナーが実際の位置から離れることに注意してください。

あなたが本当に簡単で汚い修正を本当に探しているなら、5x5と11x11の間のサイズを試してください(ステレオブロックマッチングで使用される典型的なサイズ)。知的に満足する基準を探している場合は、ノイズレベルの下で2つの特徴点が適切に一致する可能性を最大化するようにしてください。


私はあなたが提案しているものより少し早くて汚い解決策を探していました。また、キーポイントを抽出して何かに一致させて初めて、一致が良い天気か悪い天気かを判断できます。それらを完全にランダムに一致させたとしても、いくつかの良い一致が得られます。そのため、最初の提案は役に立ちません。2番目の部分については、より迅速で汚い:完璧なパラメーターはないことはわかっていますが、前述したように、サイズを12に増やすと役立ちました。品質は、SIFTおよびMSERマッチングに匹敵しました。私はただ100を超える12または34を超える12を選ぶことについては何の議論もありません...
ペネロペ

0

検出器に最適なパラメーターを決定するのに役立つように、OpenCVにはその目的のためのAjusterAdapterがあります。私はそれを自分で使用したことはありませんが、プログラムでパラメーターを決定するためのおそらく標準的な方法です。また、キーポイントにはいくつかのプロパティがありますが、すべてがすべてのアルゴリズムに意味があるわけではないことに注意してください。Keypoint構造はさまざまなアルゴリズムに使用されるため、これらのフィールドはすべてありますが、使用されないこともあります。そのため、オクターブ= 0になります。IMO。


一部のタイプの機能は、ある目的に最適なタイプではない場合があることを知っていますが、最近の作品では、複数のタイプのv.features / interest領域を使用し、単一のタイプよりも組み合わせでより良い結果を得るアプローチを試みていますそれ自体にあります(興味があれば、作品へのリンクを追加できます)。また、私がしていることは少なくとも部分的な研究なので、さまざまなキーポイントタイプで得られた結果を試して評価することは、それらの結果の一部が最新のものほど良くない場合でも、私がやるべきことですアート。AdjusterAdapterを調査します。ありがとうございます。
ペネロペ

インターフェースが提供する機能を確認しました。検出器が検出する機能の数を増減することしかできません。また、検出された機能に問題はありません。マッチングでよりよく使用できるようにサイズを調整する方法が欲しい(サイズを10に増やすとそれが可能になるが、その選択について具体的な(十分な)議論はない)
penelope
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.