主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

局所特徴の検出と抽出

局所近傍のコンパクトなベクトル表現である局所特徴とその記述子は,多くのコンピュータービジョンアルゴリズムの基本ブロックとなります。用途としては,イメージのレジストレーション,オブジェクトの検出と分類,追跡,動き推定などがあります。これらのアルゴリズムは,局所特徴を使用することで,スケールの変化や回転,オクルージョンなどをより適切に処理できます。计算机视觉工具箱™ では、コーナー特徴検出法として FAST、Harris、ORB および Shi & Tomasi 法が、またブロブ特徴の検出法としては SURF、KAZE および MSER 法が用意されています。ツールボックスには SURF、KAZE、FREAK、BRISK、ORB、HOG の各記述子が含まれています。これらの検出器や記述子はアプリケーションのニーズに応じて組み合わせることができます。

局所特徴とは

点,局所特徴とはエッジ,小さいイメージパッチなど,イメージ内に見られるパターンや際立つ構造のことを指します。これらは通常,テクスチャ,色,強度などが周辺と異なる。ここでは特徴が実際に表している対象物ではなく,周りとは異なるという点が重要です。局所特徴の例としては,ブロブ,コ,ナ,エッジピクセルなどが挙げられます。

例1コナ検出の例
I = imread(“circuit.tif”);角= detectFASTFeatures(I,“MinContrast”, 0.1);J = insertMarker(I,角,“圆”);imshow (J)

局所特徴の利点と用途

局所特徴を利用して,オクルージョンや表示条件の変化,煩雑さなどに関係なく,イメージの対応関係を見つけることができます。また,局所特徴のプロパティは。袋装视觉文字を用いたメジの分類を参照してください。

局所特徴の基本的な用途には次の2があります。

  • 検出や分類のために,をコンパクトに表現する。

優れた局所特徴とは

勾配に基づく強度変化のアプロ,チに依存する検出器は,優れた局所特徴を検出します。たとえばエッジ,ブロブ,領域などの特徴です。優れた局所特徴には以下のプロパティがあります。

  • 検出が繰り返し可能である:
    同じシーンのイメージが2つ与えられた場合,検出器により検出される両方のイメージの特徴の大半が同じになります。これらの特徴は表示条件やノ@ @ズ状況の変化に対してロバストです。

  • 特殊性がある:
    特徴の中心周辺の近傍には特徴間の比較を可能にする程度の差異があります。

  • 位置付け可能である:
    特徴に一意の位置を割り当てることが可能です。この位置は表示条件の変化による影響を受けません。

特徴検出と特徴抽出

"特徴検出"。特徴検出で見かった関心点はその後の処理に使用できます。これらの点が必ずしもテ,ブルの角などの物理構造に対応するとは限りません。特徴検出で重要なのは,回転やスケールの変化が生じてもその特徴を検出できるような,局所的な不変性を保つ特徴を見つけることです。

"特徴抽出"では記述子が計算されます。これは通常,検出された特徴の周りの領域に対して行われます。記述子は、画像処理に基づいて局所的なピクセル近傍をコンパクトなベクトル表現に変換します。この新しい表現により、スケールや方向が変化した場合でも近傍間の比較を行えるようになります。SIFT や SURF などの記述子は、局所勾配の計算に依存します。BRISK や ORB、FREAK などのバイナリ記述子は、局所的な強度差のペアに依存し、これらは 2 値ベクトルに符号化されます。

特徴検出器と記述子の選択

アプリケ,ションの条件とデ,タの特性を考慮したうえで,最適な特徴検出器と記述子を選択します。以下にある最初の表は,選択の際の一般的な基準を示しています。その後の2つの表は,计算机视觉工具箱で使用できる検出器と記述子の詳細を示しています。

検出器と記述子の選択のための考慮事項

基準 推奨

@ @ @ @ @ @ @ @ @ @ @ @ @ @

デ,タに適した検出器を使用します。たとえば,イメージにバクテリア細胞のイメージが含まれる場合,コーナー検出器ではなくブロブ検出器を使用してください。。

特徴を使用するコンテキスト:

  • キポントのマッチング

  • 分類

猪,冲浪,および风記述子は分類タスクに適しています。これに対して,ORBや轻快,狂などのバイナリ記述子は,通常,イメージ間の点の対応を見つけるために使われ,レジストレーションなどに使用されます。

@ @ @ @ @ @ @ @ @ @ @ @ @ @

デ,タに含まれる歪みに対処できる検出器と記述子を選択します。たとえば,スケールの変化が生じない場合には,スケールの処理を行わないコーナー検出器の使用を検討してください。スケルや回転などの大きな歪みがデータに含まれる場合、SURF、ORB や KAZE 特徴量検出器および記述子を使用します。SURF 法および KAZE 法では、計算量が多くなります。

パフォ,マンス要件:

  • リアルタ▪▪ムパフォ▪▪マンスが必要

  • 精度と処理速度

一般に,バ@ # @ナリ記述子は勾配ベ,スの記述子と比べて処理は高速ですが,正確度の面で劣ります。精度を高めるには,同時に複数の検出器と記述子を使用してください。

特徴のタ@ @プに基づく検出関数の選択

検出器 特徴のタ@ @プ 関数 スケ,ルに非依存
[1] コナ detectFASTFeatures なし
最小固有値アルゴリズム[4] コナ detectMinEigenFeatures なし
コ,ナ,検出器[3] コナ detectHarrisFeatures なし
冲浪[11] ブロブ detectSURFFeatures あり
KAZE[12] ブロブ detectKAZEFeatures あり
轻快的[6] コナ detectBRISKFeatures あり
女士[8] 強度が一様な領域 detectMSERFeatures あり
ORB[13] コナ detectORBFeatures なし

メモ

検出関数は特徴に関する情報を含むオブジェクトを返します。関数extractHOGFeaturesおよび関数extractFeaturesは,これらのオブジェクトを使用して記述子を作成します。

記述子メソッドの選択

記述子 バereplicationナリ 関数とメソッド 不変要素 一般的な使用例
スケル 回転 点の対応関係の判定 分類
なし extractHOGFeatures,……) なし なし なし あり
枸杞多糖 なし extractLBPFeatures,……) なし あり なし あり
冲浪 なし extractFeatures”,方法','冲浪”) あり あり あり あり
KAZE なし extractFeatures”,方法','KAZE”) あり あり あり あり
あり extractFeatures”,方法','”) あり あり あり なし
轻快的 あり extractFeatures”,方法','轻快的”) あり あり あり なし
ORB あり extractFeatures”,方法','ORB”) なし あり あり なし
  • ブロック

  • キポントの周りのシンプルなピクセル近傍

なし extractFeatures”,方法','”) なし なし あり あり

メモ

  • 関数extractFeaturesでは,さまざまな抽出メソッドからアプリケ,ションのニ,ズに最も適したものを選択できます。関数extractFeatures“方法”入力を指定しない場合,関数は入力点のクラスのタ。

  • バesc escナリ記述子は短時間で処理されますが,位置付けの正確度が低下します。したがって,分類タスクには適していません。関数extractFeaturesbinaryFeaturesオブジェクトを返します。このオブジェクトによって,関数matchFeaturesで使用されるハミング距離ベ,スのマッチングメトリクスが有効になります。

局所特徴の使用

2 .。この例では,2のけます。ここでは局所特徴を使用して,明確に位置決めされたアンカ,ポ,ントを検出します。

2 .

最初のメジが元のメジです。

原文= imread(“cameraman.tif”);图;imshow(原始);

2番目のメジは,元のメジを回転させてスケルを変更したものです。

量表= 1.3;J = imresize(original,scale);Theta = 31;扭曲= imrotate(J, θ);图imshow(扭曲)

元のメジと歪んだメジの間でマッチする特徴を検出

歪んだ。

ptsorigoriginal =检测特征(原始);ptsdistortion = detectsurfeatuatures(扭曲的);

特徴を抽出して2のメジ間で検出されたブロブを比較

検出手順では,両方の▪▪メ▪ジに概ねマッチするブロブ構造がいく▪▪か見▪▪かりました。検出されたブロブ特徴を比較します。このプロセスは,ロ,カルパッチの記述子を判定する特徴抽出によって可能になります。

[featuresOriginal, validPtsOriginal] =...extractFeatures(原,ptsOriginal);[featuresDistorted, validPtsDistorted] =...extractFeatures(扭曲,ptsDistorted);

記述子の抽出ですべての初期点が使用されるとは限りません。メ,ジの境界に近すぎる点は棄却される場合があります。したがって,特徴記述子に加えて有効な点も返されます。

記述子の計算に使用されるパッチサesc escズは,特徴抽出の処理中に決定されます。パッチサ▪▪ズは特徴検出時のスケ▪▪ルに対応します。パッチサ▪▪▪ズに関係なく,2▪▪の特徴ベクトルfeaturesOriginalおよびfeaturesDistortedは,その長さが等しくなるように計算されます。記述子によって、検出された特徴のサイズや回転に関係なく、これらの特徴を比較できるようになります。

マッチ候補を検索

関数matchFeaturesに記述子を入力して特徴間のマッチ候補を取得します。マッチ候補とは,結果に無効なマッチも含まれる可能性があることを示唆しています。2つのパッチがマッチする場合,類似した特徴を示す場合もありますが,正しいマッチでない可能性もあります。テーブルの角が椅子の角のように見えることもありますが,この2つの特徴は明らかにマッチではありません。

indexPairs = matchFeatures(featuresOriginal, featuresdistortion);

両方の▪▪メ▪▪ジから点の位置を求める

返されたindexPairsの各行には,イメージ間における特徴のマッチ候補のインデックスが2つ含まれています。これらの@ @ンデックスを使って両方の@ @メ@ @ジから実際の点位置を集めます。

matchedOriginal = validptsorigoriginal (indexPairs(:,1));matcheddistortion = validptsdistortion (indexPairs(:,2));

マッチ候補を表示

图showMatchedFeatures(original, distortion,matchedOriginal, matcheddistortion)候选匹配点(包括异常值)

特徴の位置を解析

十分な数の有効なマッチが得られた場合,誤ったマッチを削除します。このシナリオではransacアルゴリズムの使用が効果的です。関数estimateGeometricTransform2Dは,RANSACアルゴリズムのバリエーションであるM-estimator样品一致(MSAC)を実装します。MSACは,幾何学的変換を見つけてインライア(正しいマッチ)を外れ値(誤ったマッチ)から分離します。

[tform, inlierIdx] = estimateGeometricTransform2D(...matchedDistorted matchedOriginal,“相似”);inlierIdx = matcheddistortion (inlierIdx,:);inlierOriginal = matchedOriginal(inlierIdx,:);

マッチする点を表示

图showMatchedFeatures(original, distortion,inlierOriginal, inlierdistortion)匹配点(仅限内线))传说(“ptsOriginal”“ptsDistorted”

計算された幾何学的変換を確認

計算された幾何学的変換を歪んだ▪▪メ▪▪ジに適用します。

outputView = imref2d(size(original));恢复= imwarp(扭曲的,tform,“OutputView”, outputView);

復元後のメジと元のメジを表示します。

图imshowpair(原始的,恢复,“蒙太奇”

複数の特徴を用いたメジのレジストレション

この例では,“局所特徴の使用”の例の結果を基に説明を進めます。複数の検出器と記述子のペアを使用すると,得られた結果を組み合わせて補強することが可能です。複数のペアは1つの特徴検出器では十分な数の正しいマッチ(インライア)が得られない場合にも役立ちます。

元の▪▪メ▪▪ジを読み込みます。

原文= imread(“cameraman.tif”);图;imshow(原始);文本(大小(原始的,2),大小(原始的,1)+ 15,...图片由麻省理工学院提供...“字形大小”7“HorizontalAlignment”“对”);

元のメジのスケルを変更して回転させ,歪んだメジを作成します。

量表= 1.3;J = imresize(original, scale);Theta = 31;扭曲= imrotate(J, θ);图imshow(扭曲)

両方の▪▪メ▪▪ジで特徴を検出します。まず轻快検出器を使用してから,冲浪検出器を使用します。

ptsOriginalBRISK = detectBRISKFeatures(原始的,“MinContrast”, 0.01);ptsdistortion brisk = detectBRISKFeatures(扭曲的,“MinContrast”, 0.01);ptsOriginalSURF =检测表面特征(原始);ptsdistortion surf = detectsurffatures(扭曲的);

元のメジと歪んだメジから記述子を抽出します。轻快的の特徴には、既定で FREAK 記述子が使用されます。

[featuresOriginalFREAK, validPtsOriginalBRISK] =...extractFeatures(原,ptsOriginalBRISK);[featuresDistortedFREAK, validPtsDistortedBRISK] =...extractFeatures(扭曲,ptsDistortedBRISK);[featuresOriginalSURF, validPtsOriginalSURF] =...extractFeatures(原,ptsOriginalSURF);[featuresDistortedSURF, validPtsDistortedSURF] =...extractFeatures(扭曲,ptsDistortedSURF);

最初に狂記述子をマッチさせ,次に冲浪記述子をマッチさせて,マッチ候補を判定します。できる限り多くの特徴マッチを取得するには,まず検出器と記述子のしきい値を既定値よりも低くしてマッチングを開始します。機能する設定が見つかったら,しきい値を徐々に大きくして特徴の抽出とマッチングに必要な計算負荷を減らします。

indexPairsBRISK = matchFeatures(featresoriginalfreak,...featuresDistortedFREAK,“MatchThreshold”现年40岁的“MaxRatio”, 0.8);indexPairsSURF = matchFeatures(featuresOriginalSURF, featuresdistortion tedsurf);

轻快および冲浪のマッチする点の候補を取得します。

matchedOriginalBRISK = validPtsOriginalBRISK(indexPairsBRISK(:,1));matcheddistortion brisk = validptsdistortion brisk (indexPairsBRISK(:,2));matchedOriginalSURF = validPtsOriginalSURF(indexPairsSURF(:,1));matcheddistortion surf = validptsdistortion surf (indexPairsSURF(:,2));

轻快の推定マッチを可視化します。

图showMatchedFeatures (matchedOriginalBRISK原始的,扭曲的,...matchedDistortedBRISK)标题(“使用BRISK和FREAK的假定匹配”)传说(“ptsOriginalBRISK”“ptsDistortedBRISK”

轻快および冲浪のマッチ候補の局所特徴を組み合わせます。位置プロパティを使用して,轻快と冲浪の特徴からの点の位置を組み合わせます。

matchedOriginalXY =...[matchedOriginalSURF.Location;matchedOriginalBRISK.Location];matchedDistortedXY =...[matchedDistortedSURF.Location;matchedDistortedBRISK.Location];

轻快と冲浪の特徴のaaplンラaaplア点と幾何学的変換を判定します。

[tformTotal, inlierIdx] =...estimateGeometricTransform2D (matchedDistortedXY...matchedOriginalXY,“相似”);inlier扭曲的xy = matched扭曲的xy (inlierIdx,:);inlierOriginalXY = matchedOriginalXY(inlierIdx,:);

結果を表示します。この結果には1の特徴検出器を使用した例よりも多くのマッチが含まれています。

图showMatchedFeatures(original, distortion,inlierOriginalXY, inlierdistortion tedxy)使用SURF和BRISK匹配点(仅限内线))传说(“ptsOriginal”“ptsDistorted”

元のメジと復元されたメジを比較します。

outputView = imref2d(size(original));恢复= imwarp(扭曲的,tformTotal,“OutputView”, outputView);图;imshowpair(原始恢复,“蒙太奇”

参照

[1]罗斯滕,E.和T.德拉蒙德。“用于高速角落检测的机器学习。第九届欧洲计算机视觉会议。Vol. 1, 2006, pp. 430-443。

[2]米科拉奇克,K.和C.施密德。局部描述符的性能评估。模式分析与机器智能汇刊。第27卷,2005年第10期,第1615-1630页。

[3]哈里斯,C.和M. J.斯蒂芬斯。“一种组合角和边缘检测器。”第四届阿尔维视觉会议论文集。1988年8月,第147-152页。

[4] Shi, J.和C.托马西。“值得追踪的优秀功能。”IEEE计算机视觉与模式识别会议论文集。1994年6月,第593-600页。

[5] Tuytelaars, T.和K. Mikolajczyk。局部不变特征检测器:一个调查。计算机图形与视觉基础与趋势“,”第3卷,第3期,2007,第177-280页。

[6]洛滕艾格,S., M. Chli, R. Siegwart。“BRISK:二进制鲁棒不变可扩展关键点。”IEEE国际会议论文集。ICCV, 2011年。

[7]尼斯特,D.和H.斯特温尼乌斯。线性时间最大稳定极值区域第十届欧洲计算机视觉会议。马赛,法国:2008年,第5303号,第183-196页。

[8]马塔斯,J., O. Chum, M. Urba和T. Pajdla。“从最稳定的极值区域获得强大的宽基线立体声。”机械工程学报,2002,pp. 384-396。

[9] Obdrzalek D., S. Basovnik, L. Mach, A. Mikulik。使用最大稳定颜色区域检测场景元素计算机与信息科学通讯“,”La Ferte-Bernard,法国:2009,卷82 CCIS(2010 12 01),第107-115页。

[10]米科拉奇克,K., T.图特拉尔斯,C.施密德,A.齐瑟曼,T.卡迪尔,L.凡古尔。仿射区域探测器的比较。国际计算机视觉杂志。第65卷第1-2期,2005年11月,第43-72页。

[11]贝,H., A. Ess, T. Tuytelaars和L. Van Gool。“SURF:加速健壮的功能。”计算机视觉与图像理解(CVIU)。Vol. 110 No. 3, 2008, pp. 346-359。

[12]阿尔坎塔里拉,p.f., A.巴托利和A. j .戴维森。“KAZE特性”,ECCV 2012,第VI部分,LNCS 7577页214,2012

[13] Rublee, E. V. Rabaud, K. Konolige和G. Bradski。“ORB: SIFT或SURF的有效替代方案。”2011年计算机视觉国际会议论文集,2564-2571。2011年,西班牙巴塞罗那。

関連するトピック