Main Content

Template Matching

イメージ内でのテンプレートの検出

  • ライブラリ:
  • Computer Vision Toolbox / Analysis & Enhancement

  • Template Matching block

説明

Template Matching ブロックは、入力イメージ内でテンプレートの最適一致を見つけます。ブロックは、関心領域またはイメージ全体でテンプレートをシフトして一致メトリクス値を計算し、最適一致の位置を計算します。

ブロック出力は、一致メトリクス値またはテンプレート最適一致の 1 ベースの (x,y) 座標を出力します。ブロックは、オプションで最適一致の位置を中心とする一致メトリクス値から成る N 行 N 列の行列を出力できます。

端子

入力

すべて展開する

テンプレートと共に使用する入力イメージ。ブロックは入力データをパディングしません。したがって、計算できるのは入力イメージとテンプレート間の一致メトリクスの値のみであり、テンプレートは入力イメージ全体に収まるように配置されます。テンプレートのこのようなすべての位置セットは、入力イメージの "有効な" 領域と呼ばれます。有効な領域のサイズは、入力イメージとテンプレート イメージ間のサイズの差分に 1 を加えた値です。

sizevalid=sizeinput – sizetemplate+1(1)

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

テンプレート。M 行 N 列の行列として指定します。

Template Matching ブロックは入力データをパディングしません。したがって、計算できるのは入力イメージとテンプレート間の一致メトリクスの値のみであり、テンプレートは入力イメージ全体に収まるように配置されます。テンプレートのこのようなすべての位置セットは、入力イメージの "有効な" 領域と呼ばれます。有効な領域のサイズは、入力イメージとテンプレート イメージ間のサイズの差分に 1 を加えた値です。

sizevalid=sizeinput – sizetemplate+1(2)

データ型: single | double | uint8 | Boolean | fixed point

(x,y,width,height) 形式の関心領域のベクトル。ここで、(x,y) は、領域の左上隅の 1 ベースの座標です。ブロックは、入力イメージの左上隅に対する最適一致位置のインデックスを出力します。

データ型: single | double | uint8 | Boolean | fixed point

出力

すべて展開する

一致メトリクス値の行列。一致メトリクスの行列は常に、シングルステップの網羅的なウィンドウの反復を実装します。したがって、ブロックは、ピクセルごとにメトリクス値を計算します。

依存関係

[出力] パラメーターを [メトリクス行列] に設定すると、ブロックは有効なイメージ サイズを出力します。

データ型: single | double | uint8 | Boolean | fixed point

1 ベースの (x,y) 座標にあるテンプレート最適一致。ROI 処理モードの場合、ブロックは ROI 周囲のイメージを ROI の部分領域の拡張として扱います。このため、ROI の実際の境界に対して真の最適一致位置が計算されます。ブロックは、イメージの左上隅に対する最適一致の座標を出力します。位置の 1 ベースの [x y] 座標は、テンプレートの中心に対応します。次の表は、ブロックが奇数と偶数のテンプレートの中心座標をどのように出力するかを示します。

テンプレート内のピクセル数が奇数の場合テンプレート内のピクセル数が偶数の場合

データ型: uint32

最適一致の近傍におけるメトリクス値。N 行 N 列の行列として返されます。マスクで指定される N は奇数でなければなりません。[最適一致の位置] を選択して最適一致の近傍におけるメトリクスの行列を返す場合、網羅的ループにより N 行 N 列の近傍に対するすべてのメトリクス値が計算されます。この出力は、サブピクセル精度のテンプレート マッチングを実行する場合に特に便利です。

データ型: single | double | uint8 | Boolean | fixed point

有効な近傍領域の追跡を有効にします。メトリクス値の近傍行列は ROI の内側で有効です。ブロックは、[NValid] の出力を次のように設定します。

  • 1 — 最適一致を含む近傍は、完全に関心領域の内側にあります。

  • 0 — 最適一致を含む近傍は、完全または部分的に関心領域の外側にあります。

依存関係

この端子は、[最適一致付近のメトリクス値からなる N 行 N 列の行列を出力] パラメーターを有効にすると表示されます。

データ型: Boolean

有効な関心領域の追跡を有効にします。ROI が有効なイメージの外部に部分的に適用される場合、ブロックは ROI と有効なイメージの共通部分のみを処理します。ブロックは、[ROIValid] の出力を次のように設定します。

  • 1 — ROI は、完全に入力イメージの有効部分の内側にあります。

  • 0 — ROI は、完全または部分的に入力イメージの有効部分の外側にあります。

依存関係

この端子は、[ROI が有効であるかどうかを示す出力フラグ] パラメーターを有効にすると表示されます。

データ型: Boolean

パラメーター

すべて展開する

[メイン] タブ

一致メトリクスを次のいずれかとして選択します。

  • 差の絶対値の和 (SAD)

  • 差の二乗和 (SSD)

  • 最大の差の絶対値 (MaxAD)

ブロックは、反復のステップごとに一致メトリクスを計算します。アプリケーションに最も適した一致メトリクスを選択します。ブロックは最適なメトリクス値の大域的な最適値を計算します。ROI (指定される場合) が交差する入力イメージの有効な部分領域を使用します。

出力のタイプを次のいずれかとして選択します。

  • 一致メトリクス — 一致メトリクス行列を出力します。このオプションは、[Metric] 出力端子をブロックに追加します。

  • 最適一致の位置 — 最適一致の位置の [x,y] 座標を出力します。このオプションは、[Loc] 出力端子をブロックに追加します。また、[探索方法][最適一致付近のメトリクス値からなる N 行 N 列の行列を出力][ROI の処理を有効にする] パラメーターも使用可能になります。

    [データ型] ペインの [出力] パラメーターは、[メイン] タブの [出力] パラメーターを [メトリクス行列] に設定した場合、またはこのパラメーターを [最適一致の位置] に設定し、さらに [最適一致付近のメトリクス値からなる N 行 N 列の行列を出力] パラメーターを有効にした場合に表示されます。

探索方法を [網羅] または [3 ステップ] として指定します。[網羅] 探索方法は、イメージのすべてのピクセル位置を検索するため、計算量が多くなります。ただし、この方法によって、より正確な結果が得られます。

[3 ステップ] は近傍アプローチを使用する探索方法で、すべてのピクセルの検索に比べて高速です。検索は、最大探索範囲の半分と等価または若干大きいステップ サイズから始めて、以下の手順に従います。

  1. ブロックは各ステップで 9 つの検索点を比較します。探索領域境界には、中央の点と 8 つの検索点があります。

  2. ブロックは、ステップごとにステップ サイズを 1 つずつデクリメントし、1 ピクセルのステップ サイズで検索を終了します。

  3. 新しいステップごとに、ブロックは検索の中心を前のステップから得られた最適な一致点に移動します。次の図で、番号 1 の青い円は、開始ステップ サイズ 3 による検索を表します。番号 2 の緑の円は、前の検索で見つかった最適一致に近いステップ サイズ 2 による次の検索を表します。最後に、番号 3 のオレンジ緑の円は、前回の最適一致を中心としたステップ サイズ 1 による最後の検索を表します。

依存関係

このパラメーターは、[出力] パラメーターを [最適一致の位置] に設定すると表示されます。

[NMetric] 端子と [NValid] 端子の追加を有効にします。

依存関係

このパラメーターは、[出力] パラメーターを [最適一致の位置] に設定すると表示されます。

出力行列のサイズ。この値は、最適一致位置のインデックスを中心とする N 行 N 列の出力行列のサイズを決定します。N は奇数でなければなりません。

依存関係

このパラメーターは、[最適一致付近のメトリクス値からなる N 行 N 列の行列を出力] パラメーターを有効にすると表示されます。

ROI の処理を有効にします。

依存関係

  • このパラメーターは、[出力] パラメーターを [最適一致の位置] に設定すると表示されます。

  • このパラメーターを有効にすると、ブロックは [ROI] 入力端子を追加し、[ROI が有効であるかどうかを示す出力フラグ] パラメーターが表示されます。

[ROIValid] 端子の追加を有効にします。

依存関係

このパラメーターは、[ROI の処理を有効にする] パラメーターを有効にすると表示されます。

[データ型] タブ

固定小数点ブロック パラメーターの詳細については、ブロックの固定小数点属性の指定を参照してください。

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

多次元信号

いいえ

可変サイズの信号

はい

アルゴリズム

すべて展開する

参照

[1] Koga T., et. Al. Motion-compensated interframe coding for video conferencing. In National Telecommunications Conference. Nov. 1981, G5.3.1–5, New Orleans, LA.

[2] Zakai M., “General distance criteria” IEEE Transaction on Information Theory, pp. 94–95, January 1964.

[3] Yu, J., J. Amores, N. Sebe, Q. Tian, "A New Study on Distance Metrics as Similarity Measurement" IEEE International Conference on Multimedia and Expo, 2006 .

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2009b で導入