私はSURFについて勉強したばかりで、その実装に行きますが、それでも記述子を使用する理由がわかりませんでした。
キーポイントとその目的を理解していますが、キーポイントを抽出するとき、なぜ記述子を使用する必要があるのでしょうか?認識における彼らの重要性と役割は何ですか?
私はSURFについて勉強したばかりで、その実装に行きますが、それでも記述子を使用する理由がわかりませんでした。
キーポイントとその目的を理解していますが、キーポイントを抽出するとき、なぜ記述子を使用する必要があるのでしょうか?認識における彼らの重要性と役割は何ですか?
回答:
理解しておくべき重要なことの1つは、キーポイントを抽出した後、画像内の位置と、場合によってはカバレッジエリア(通常は円または楕円で近似)に関する情報のみを取得することです。キーポイントの位置に関する情報は役立つ場合がありますが、キーポイント自体についてはあまり言及していません。
キーポイントの抽出に使用されるアルゴリズム(SIFT、Harris corners、MSER)に応じて、抽出されたキーポイントのいくつかの一般的な特性はわかります(たとえば、それらはブロブ、エッジ、顕著なコーナーを中心にしています)。または同様の1つのキーポイントが他のキーポイントです。
位置とキーポイント領域だけでは役に立たない2つの簡単な例を次に示します。
画像A(白い背景のクマの)と別の画像Bがある場合、Aの正確なコピーですが、数ピクセル変換されます:抽出されたキーポイントは同じです(そのクマの同じ部分)。これらの2つの画像は、同一または類似として認識される必要があります。
しかし、私たちが持っている唯一の情報がそれらの位置であり、それが翻訳のために変化した場合、画像を比較することはできません。
画像A(今度はアヒルの画像)と別の画像Bがあり、2倍のサイズを除いてAとまったく同じアヒルがある場合:抽出されたキーポイントは同じです(アヒルの同じ部分)。これらも同じ(類似の)画像です。
ただし、すべてのサイズ(領域)は異なります。画像Bのすべてのキーポイントは、画像Aのキーポイントの2倍のサイズになります。
それで、ここに記述子があります:それらはキーポイントを比較する方法です。それらは、キーポイントに関するいくつかの特性を(一定の長さの)ベクトル形式で要約しています。たとえば、最も顕著な方向の方向の強度である可能性があります。キーポイントが参照する画像の領域に数値の説明を割り当てています。
記述子の重要な点は次のとおりです。
キーポイントの位置に依存しない
同じキーポイントが異なる位置で抽出された場合(たとえば、翻訳のため)、記述子は同じでなければなりません。
画像変換に対して堅牢でなければなりません
いくつかの例は、コントラストの変化(例:晴れた曇りの日の同じ場所の画像)および遠近法の変化(中央右および中央左からの建物の画像、それでも同じ建物として認識したい)です。 。
もちろん、すべての変換に対して完全に堅牢な記述子はありません(強力な場合、たとえば視点の大きな変化など、単一の記述子に対しても完全に堅牢ではありません)。
さまざまな記述子は、さまざまな変換に対して堅牢になるように設計されており、計算にかかる速度に反することがあります。
彼らはあるべき規模の独立しました
記述子は考慮に入れる必要があります。1つのキーポイントの「顕著な」部分が10pxの垂直線(半径8pxの円形領域内)であり、別の主要な部分が5pxの垂直線(半径4pxの円形領域内)である場合-これらのキーポイントには、同様の記述子を割り当てる必要があります。
これで、すべてのkeypoinstの記述子を計算したので、それらのキーポイントを比較する方法があります。画像マッチングの簡単な例(画像が同じオブジェクトのものであり、シーンの同じ部分を表す異なる画像の部分を特定したい場合、または2つの画像間の遠近法の変化を特定したい場合) 、1つの画像のすべてのキーポイント記述子を他の画像のすべてのキーポイント記述子と比較します。記述子がある数字のベクトルは、ユークリッド距離のような単純なようなもので、それらを比較することができます。もちろん、類似性の尺度として使用できるより複雑な距離がいくつかあります。しかし、最終的には、あなたは言うでしょう記述子間の距離が最も短いキーポイントは一致します。たとえば、異なる画像内の同じ「場所」または「オブジェクトの部分」。
以下のために、より複雑なキーポイント/ディスクリプタの使用、あなたが見てとるべきこの質問では特に「低レベルのローカルアプローチ」 - 私の答えでと「バッグ・オブ・言葉」アプローチ@Maurits答えを。また、それらの回答で提供されるリンクは役に立ちます。
アイデアを理解するための理想的な記述子を考えてみましょう。理想的な記述子は、ピクセル空間から他の空間への関数であり、同じオブジェクトの結果は同じですが、異なるオブジェクトの結果は異なります。
たとえば、同じオブジェクトで露出レベルが異なる2つの画像を撮影した場合、画像の乗算バージョンが得られます。ピクセルを取得し、平均および標準偏差レベルで正規化する記述子は、これらの2つのオブジェクトが同じであると言って、同じ結果になります。正しいマッチングが可能になるため、それは良いことです
したがって、同じオブジェクトに正しく一致するには、記述子が必要です。