画像処理・実習 第十四回:パターン認識 東海大学 情報理工学部 情報メディア学科 濱本和彦 今回の内容 5. パターン認識 5.1 マッチングの原理 5.2 テンプレートマッチング 実習 相互相関とテンプレートマッチング 一般的なマッチングの尺度 フーリエ変換を 思い出してみよう b s F ( x)G( x)dx a ある座標における関数値の積の総和=関数の内積 それぞれの関数の大きさで正規化すると次のようなります。 R b a b a 2 F ( x)G( x)dx F ( x)dx b a G 2 ( x)dx 一般的なマッチングの尺度 R b a b a 2 F ( x)G( x)dx F ( x)dx b G a 2 これは-1~+1の値をもち, cosΘで表現されます。 cos ( x)dx 相互相関係数 Θは関数間の角度。 二つの関数をベクトル 表現した時のベクトル が作る角度になます。 ディジタルデータの相互相関係数 二つのデジタルデータ → ベクトルデータとして考える f1 , f 2 g1, g2 f g 相互相関係数は,ベクトルの内積を用いて次のように表現する。 f , g f g cos であるから, f,g R cos f g f1 g1 f 2 g 2 f1 f 2 2 2 g1 g 2 2 2 ディジタルデータの相互相関係数 一般にN次元ベクトルの場合には次のように表される。 N 1 f R cos k 0 N 1 fk 2 k 0 k gk N 1 gk 2 k 0 実際の場合は平均値を引く必要があるため次のようになる。 f N 1 R cos k 0 f N 1 k 0 k f g k g f 2 k N 1 2 g g k k 0 実習:演習5.2 image_processing14.cとimgpattern.hを 利用します。 imgpattern.hのvoid Ensyu5_2(void)を完 成させなさい。 相関の結果が演習5.1の通りになることを 確認しなさい。 画像の相互相関関数 データが二次元の画像(N×N)の場合も,同様な処理で 相互相関係数が求まります。 f [k ][l ] f t[k ][l ] t N 1 N 1 R l 0 k 0 f [k ][l ] f t[k ][l ] t N 1 N 1 l 0 k 0 2 N 1 N 1 l 0 k 0 2 実習:画像の相互相関係数 void Cross_correlation(void)を完成させなさい。 この関数の実行時は,Input_image()や Output_image()は必要ありません。関数内で2 つの画像をオープンします。 lena.raw同士,lena.rawとlenan20.raw(雑音が ある場合),lena.rawとlenai.raw(白黒反転)の組 合せで相互相関係数を求め,考察しなさい。 実習:画像の相互相関係数 -1.0 1.0 0.835 相互相関でこんなことができます。 簡単な人物認証 濱本研メンバーDB こういう人がやってきました A 0.434 B 0.548 C 0.652 相互相関係数を求めます。 Eさんと判断されました。 D 0.512 E 0.746 F 0.564 研究室への入室が許可されます。 相互相関でこんなことができます。 簡単な人物認証 濱本研メンバーDB こういう人がやってきました A 0.321 B 0.619 C 0.836 相互相関係数を求めます。 Cさんと判断されました。 D 0.650 E 0.698 F 0.537 研究室への入室が許可されます。 相互相関でこんなことができます。 簡単な人物認証 濱本研メンバーDB こういう人がやってきました A 0.186 B -0.089 C -0.046 相互相関係数を求めます。 どのデータとも相関が高くありません。 D -0.190 E -0.134 F -0.080 研究室への入室が許可されません。 テンプレートマッチング 入力画像の中から,テンプレート(標準パターン) に一致する位置を検出します。 パターン位置の検出 動いた物体の追跡 方法 画像にテンプレートを重ね相互相関係数を計算します。 テンプレートの位置をずらして再度相互相関係数を計 算します。 これを繰り返して,相互相関係数が最大になる位置を 探します。 テンプレートマッチング テンプレートを移動しな がら,相互相関を計算 相互相関が最大になっ た位置が,テンプレートの パターンと同じ図形となる 位置である。 テンプレートマッチング テンプレートサイズをm×nとし,画像上の位置(i, j)における 相互相関係数は次の式で求められます。これは,式5.16に 平均値処理と正規化を加えたものです。相互相関関数と呼 ばれます。 l 0 k 0 n 1 m 1 R[i ][ j ] m n f i k j l 2 2 m n f i k j l f 2 2 l 0 k 0 n 1 m 1 2 f t[k ][l ] t n 1 m 1 2 t [ k ][ l ] t l 0 k 0 ・テンプレートの中心が(i, j)と一致するようにしています。 ・平均値は,m×n領域内での平均値です。 ・式5.16では正確な処理を行うことは出来ません(何故?) 実習:テンプレートマッチング void Template_matching(void)を実行し,テンプレート マッチングの処理を確認しましょう。 テンプレートのサイズは,幅40,高さ48です。 テンプレート画像は,この関数内で入力処理を行います。 対象画像の入力は,Input_image()で行ってください。 相互相関が最大になった位置とその時の相関値を出力 します。 相関係数がどのように分布しているかを画像として出力 します。これを相互相関関数と呼びます。 入力画像:characters3.raw テンプレート:characters3a.raw 実習:テンプレートマッチング =‘A’の文字はこの 最大値: x=50, y=69, R=1.00 位置にある! 実習:テンプレートマッチング void Template_matching2(void)は,式 5.16によるものです。正しい結果が得られ ないことを確認してください。 それは一体何故でしょうか? こういうことができます は,どこにいるでしょう? 最大値: x=179, y=25 課題 教科書p.76の式5.17によりテンプレート マッチングを行うプログラムを完成させ, characters3.rawとcharacters3a.rawを用 いた実行結果を示してください。 提出期限は8/1,23:59とします。 i-collaboから提出してください。 期末テスト範囲 第四章 2値化画像p39-p52(境界線追跡まで) 第五章 パターン認識 5.1, 5.2のみ 第七章 画像の直交変換 7.1, 7.2, 7.3 内容: 中間と同じく,プログラムを書く問題はない。 教科書の類似問題 5割 教科書を理解していれば解ける問題 3割 処理結果の予測,処理の選択など きちんと理解している必要がある問題 2割 穴埋めと演習問題より(数値を変更する場合アリ) 応用問題。説明を求める問題など。 試験8割,レポート2割 レポートは,3つ提出の場合上位2点を採点対象とする。
© Copyright 2024 ExpyDoc