web-dev-qa-db-ja.com

特徴検出と記述子抽出の違い

OpenCV 2.3のFeatureDetectionとDescriptorExtractionの違いを知っている人はいますか? DescriptorMatcherを使用したマッチングには後者が必要であることを理解しています。その場合、FeatureDetectionは何に使用されますか?

ありがとうございました。

43
Chris A

特徴検出

  • コンピュータービジョンと画像処理において、特徴検出の概念は、画像情報の抽象化を計算し、その点に特定のタイプの画像特徴があるかどうかにかかわらず、すべての画像点でローカルな決定を行うことを目的とする方法を指します。結果として得られる特徴は、多くの場合、孤立点、連続曲線、または連結領域の形の画像ドメインのサブセットになります。

    特徴検出=画像内のいくつかの興味深いポイント(特徴)を見つける方法(例:角を見つける、テンプレートを見つけるなど...)

特徴抽出

  • パターン認識および画像処理では、特徴抽出は次元削減の特別な形式です。アルゴリズムへの入力データが大きすぎて処理できないため、冗長であることが有名な場合(多くのデータ、ただし情報量は少ない)、入力データは特徴の縮小表現セット(特徴ベクトルとも呼ばれます)に変換されます。入力データをフィーチャセットに変換することをフィーチャ抽出と呼びます。抽出された特徴が慎重に選択された場合、フルサイズの入力ではなくこの縮小表現を使用して目的のタスクを実行するために、特徴セットが入力データから関連情報を抽出することが期待されます。

    特徴抽出=画像内の他の興味深い点(特徴)と比較するために見つけた興味深い点をどのように表現するか。 (例、このポイントのローカルエリアの強度?ポイントの周りのエリアのローカル方向?など)

実用例:ハリスコーナーメソッドでコーナーを見つけることができますが、任意の方法(ヒストグラム、HOG、8番目の隣接のローカル方向)で記述することができます

ここでいくつかの詳細情報を見ることができます Wikipediaリンク

ジュリアン(ウィキペディアで支援:p)

93
jmartel

Feature DetectionFeature descriptor extractionは両方ともFeature based image registrationの一部です。特徴ベースの画像登録プロセス全体のコンテキストでそれらを見て、彼らの仕事が何であるかを理解することだけが理にかなっています。

機能ベースの登録アルゴリズム

PCL documentation からの次の図は、そのような登録パイプラインを示しています。

PCL pairwise registration

  1. データ収集:入力画像と参照画像がアルゴリズムに入力されます。画像は、わずかに異なる視点から同じシーンを表示する必要があります。

  2. キーポイント推定(特徴検出):キーポイント( interest point )は、ポイントクラウド内のポイントです。次の特性があります。

    1. 明確で、できれば数学的に根拠のある定義があり、
    2. 画像空間で明確に定義された位置を持ち、
    3. 関心点周辺のローカル画像構造は、ローカル情報コンテンツの点で豊富です。
      OpenCVには、次のようなFeature detectionのいくつかの実装が付属しています。

    画像内のこのような顕著な点は、それらの合計が画像を特徴づけ、画像の異なる部分を識別可能にするのに役立つため、非常に便利です。

  3. 機能記述子(記述子抽出):キーポイントを検出した後、それらすべての記述子を計算します。 「ローカル記述子は、ポイントのローカル近傍のコンパクトな表現です。完全なオブジェクトまたはポイントクラウドを記述するグローバル記述子とは対照的に、ローカル記述子は、ポイント周辺のローカル近傍でのみ形状と外観に似ようとするため、それを表すのに非常に適していますマッチングの面で。」 (Dirk Holz et al。)OpenCVオプション

  4. コレスポンデンス推定(ディスクリプタマッチャー):次のタスクは、両方の画像で見つかったキーポイント間の対応を見つけることです。したがって、抽出された特徴は、効率的に検索できます( kd-tree など)。通常、すべてのローカルフィーチャディスクリプタを検索し、それぞれを他の画像の対応する対応するものと一致させるだけで十分です。ただし、1つのクラウドが他のクラウドよりも多くのデータを保持できるため、同様のシーンの2つの画像が必ずしも同じ数の特徴記述子を持っているわけではないため、個別の通信拒否プロセスを実行する必要があります。 OpenCVオプション

  5. コレスポンデンス拒否:コレスポンデンス拒否を実行する最も一般的なアプローチの1つは、 [〜#〜] ransac [〜#〜 ] (ランダムサンプルコンセンサス)。

  6. 変換推定:2つの画像間のロバストな対応が計算された後、Absolute Orientation Algorithmを使用して、入力画像に適用される変換行列が計算されます参照画像と一致します。これを行うには多くの異なるアルゴリズムのアプローチがあり、一般的なアプローチは次のとおりです。 特異値分解 (SVD)。

22
Kevin Katzke