(57)【要約】      （修正有）【課題】マスキングを含む、重み付き相関を高速にかつ精度良く計算する。【解決手段】FFTを用いて高速に演算する。テンプレート登録画像(テンプレート表示部１０２に表示)と、テンプレート側の重み(テンプレート側重み表示部１０３に表示)を持って、参照画像(参照画像表示部１０４に表示)と重み付きマッチングを行い、所定の閾値よりマッチングの評価値が高い位置（検知位置１０９の枠で表示）を検知する。重み付き相関はFFTを用いた高速な方法で行う。その他、参照画像側にも重みを付けることができ、FFTを用いた高速な方法で演算できる。【選択図】図１
2012069084.tif 000002
【特許請求の範囲】
【請求項１】
テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、前記テンプレート画像からテンプレート及びテンプレート側重みを作成し、
前記評価値計算手段は、前記テンプレートと、前記テンプレート側重みと、前記参照画像とを入力として、前記参照画像の点（x,y）の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x,y） ＝ （ Sit（x,y）・sw - Si（x,y）・st ） / （ sq_Sii（x,y）・sq_stt ）
Sit（x,y） ＝ F-1xy［ F［I］・F*［W・T］ ］
sw ＝ A［W］
Si（x,y） ＝ F-1xy［ F［I］・F*［W］ ］
st ＝ A［W・T］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・sw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［I・I］・F*［W］ ］
sq_stt ＝ sqrt（ stt・sw（x,y） - st（x,y）・st（x,y） ）
stt ＝ A［W・T・T］
により求めて評価値とし、
前記判定手段は、前記評価値が所定の閾値以上であれば、前記点（x,y）において前記参照画像と前記テンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置。
【請求項２】
テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、前記テンプレート画像からテンプレートを作成し、
前記参照画像処理手段は前記参照画像を処理して参照画像側重みを作成し、
前記評価値計算手段は、前記テンプレートと、前記参照画像側重みとを入力として、前記参照画像の点（x,y）の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、バタフライ演算してできた画像の点（x,y）の値を取る演算をBxy［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x,y） ＝ （ Sit（x,y）・Su（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［T］ ］
Su（x,y） ＝ Bxy［U］
Si（x,y） ＝ Bxy［U・I］
St（x,y） ＝ F-1xy［ F［U］・F*［T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Su（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ Bxy［ U・I・I ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Su（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［T・T］ ］
により求めて評価値とし、
前記判定手段は、前記評価値が所定の閾値以上であれば、前記点（x,y）において前記参照画像と前記テンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置。
【請求項３】
テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、前記テンプレート画像からテンプレート及びテンプレート側重みを作成し、
前記参照画像処理手段は前記参照画像を処理して参照画像側重みを作成し、
前記評価値計算手段は、前記テンプレートと、前記テンプレート側重みと、参照画像とを入力として、前記参照画像の点（x,y）の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x,y） ＝ （ Sit（x,y）・Suw（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［W・T］ ］
Suw（x,y） ＝ F-1xy［ F［U］・F*［W］ ］
Si（x,y） ＝ F-1xy［ F［U・I］・F*［W］ ］
St（x,y） ＝ F-1xy［ F［U］・F*［W・T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Suw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［U・I・I］・F*［W］ ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Suw（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［W・T・T］ ］
により求めて評価値とし、
前記判定手段は、前記評価値が所定の閾値以上であれば、前記点（x,y）において前記参照画像と前記にテンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置。
【請求項４】
テンプレート画像と、参照画像とのマッチングを行い、前記マッチングの評価値が所定の値より高い位置を検知し、その前記検知した位置に対応する該参照画像側の重みを０にする重み変更手段をさらに備え、
前記検知した位置がなくなるまで該マッチング処理と該重み変更処理を繰り返し行うことを特徴とする、請求項２または３に記載のテンプレートマッチング実行装置。
【請求項５】
テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するプログラムであって、
コンピュータに、
前記テンプレート作成手段が、前記テンプレート画像からテンプレート及びテンプレート側重みを作成するステップと、
前記評価値計算手段が、前記テンプレートと、前記テンプレート側重みと、前記参照画像とを入力として、前記参照画像の点（x,y）の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x,y）を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x,y） ＝ （ Sit（x,y）・sw - Si（x,y）・st ） / （ sq_Sii（x,y）・sq_stt ）
Sit（x,y） ＝ F-1xy［ F［I］・F*［W・T］ ］
sw ＝ A［W］
Si（x,y） ＝ F-1xy［ F［I］・F*［W］ ］
st ＝ A［W・T］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・sw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［I・I］・F*［W］ ］
sq_stt ＝ sqrt（ stt・sw（x,y） - st（x,y）・st（x,y） ）
stt ＝ A［W・T・T］
により求めて評価値とするステップと、
前記判定手段が、前記評価値が所定の閾値以上であれば、前記点（x,y）において前記参照画像と前記テンプレートが同じ形態を有すると判定する処理を行うステップと、
を実行させることを特徴とするプログラム。
【請求項６】
テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するプログラムであって、
コンピュータに、
前記テンプレート作成手段が、前記テンプレート画像からテンプレートを作成するステップと、
前記参照画像処理手段が、前記参照画像を処理して参照画像側重みを作成するステップと、
前記評価値計算手段が、前記テンプレートと、前記参照画像側重みとを入力として、前記参照画像の点（x,y）の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x,y）を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、バタフライ演算してできた画像の点（x,y）の値を取る演算をBxy［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x,y） ＝ （ Sit（x,y）・Su（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［T］ ］
Su（x,y） ＝ Bxy［U］
Si（x,y） ＝ Bxy［U・I］
St（x,y） ＝ F-1xy［ F［U］・F*［T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Su（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ Bxy［ U・I・I ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Su（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［T・T］ ］
により求めて評価値とするステップと、
前記判定手段が、前記評価値が所定の閾値以上であれば、前記点（x,y）において前記参照画像と前記テンプレートが同じ形態を有すると判定する処理を行うステップと、
を実行させることを特徴とするプログラム。
【請求項７】
テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のプログラムであって、
コンピュータに、
前記テンプレート作成手段が、前記テンプレート画像からテンプレート及びテンプレート側重みを作成するステップと、
前記参照画像処理手段が、指定された参照画像を処理して参照画像側重みを作成するステップと、
前記評価値計算手段が、前記テンプレートと、前記テンプレート側重みと、参照画像とを入力として、前記参照画像の点（x,y）の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x,y） ＝ （ Sit（x,y）・Suw（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［W・T］ ］
Suw（x,y） ＝ F-1xy［ F［U］・F*［W］ ］
Si（x,y） ＝ F-1xy［ F［U・I］・F*［W］ ］
St（x,y） ＝ F-1xy［ F［U］・F*［W・T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Suw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［U・I・I］・F*［W］ ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Suw（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［W・T・T］ ］
により求めて評価値とするステップと、
前記判定手段が、前記評価値が所定の閾値以上であれば、前記点（x,y）において前記参照画像と前記テンプレートが同じ形態を有すると判定する処理を行うステップと、
を実行させることを特徴とするプログラム。
【請求項８】
テンプレート画像と、参照画像とのマッチングを行い、前記マッチングの評価値が所定の値より高い位置を検知し、その前記検知した位置に対応する該参照画像側の重みを０にする重み変更手段をさらに備え、
コンピュータに、前記検知した位置がなくなるまで該マッチング処理と該重み変更処理を繰り返し行わせることを特徴とする、請求項６または７に記載のプログラム。
【請求項９】
テンプレート作成手段と評価値計算手段と判定手段と参照画像側の重み変更手段を備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像を所定の回転ステップごとに回転させて複数のテンプレート、テンプレート側の重み、および前記参照画像から形態を抽出するための抽出画像を作成し、
前記評価値計算手段は、前記複数のテンプレートの各々について、前記参照画像中の各点に、当該テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、
前記参照画像側の重みが設定されていない場合、または、前記参照画像側の重みが全て同じ値の場合は、
Jw（x,y） ＝ （ Sit（x,y）・sw - Si（x,y）・st ） / （ sq_Sii（x,y）・sq_stt ）
Sit（x,y） ＝ F-1xy［ F［I］・F*［W・T］ ］
sw ＝ A［W］
Si（x,y） ＝ F-1xy［ F［I］・F*［W］ ］
st ＝ A［W・T］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・sw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［I・I］・F*［W］ ］
sq_stt ＝ sqrt（ stt・sw（x,y） - st（x,y）・st（x,y） ）
stt ＝ A［W・T・T］
により、
前記参照画像側の重みが全て同じ値ではない場合は、
Jw（x,y） ＝ （ Sit（x,y）・Suw（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［W・T］ ］
Suw（x,y） ＝ F-1xy［ F［U］・F*［W］ ］
Si（x,y） ＝ F-1xy［ F［U・I］・F*［W］ ］
St（x,y） ＝ F-1xy［ F［U］・F*［W・T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Suw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［U・I・I］・F*［W］ ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Suw（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［W・T・T］ ］
により、
求めて当該テンプレートについての評価値とし、
前記判定手段は、前記参照画像中の各点について、前記複数のテンプレートの各々について求めた評価値のうち最大値を画素値とした最大評価値画像と、前記各点における最大値を与えた回転角度を当該点に記した最大評価値角度画像を作成し、
前記判定手段は、さらに、
前記最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記参照画像側の重み変更手段で参照画像側の重みを変更し、前記最大値を有する位置の所定の周辺位置の評価値を、前記所定の閾値より小さい値に変更して新たな最大評価値画像を作成する作成ステップを含み、
前記新たな最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記新たな最大評価値画像中で評価値の最大値が前記所定の閾値より小さくなるまで、前記作成ステップを繰り返す
ことを特徴とするテンプレートマッチング実行装置。
【請求項１０】
テンプレート作成手段と評価値計算手段と判定手段と参照画像側の重み変更手段を備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像を所定の回転ステップごとに回転させて複数のテンプレート、および前記参照画像から形態を抽出するための抽出画像を作成し、
前記評価値計算手段は、前記複数のテンプレートの各々について、前記参照画像中の各点に、当該テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、
前記参照画像側の重みが設定されていない場合、または、前記参照画像側の重みが全て同じ値の場合は、
Tm、Tnをテンプレートサイズとし、Cxy［I’・I’］は、ランニングサム法により求めるI’・I’画像の左上（x,y）の点から始まるテンプレートサイズ分の総和として、
Jｗ（x,y） ＝ Fxy［ F［I’］・F［T’］ ］ 
/ （ sqrt（Cxy［I’・I’］）・sqrt（ΣiΣj T’・T’）
I’（x,y） ＝ I（x,y） - （ΣiΣj I（x＋i,y＋j） ） / （Tm*Tn）
T’（i,j） ＝ T（i,j） - （ΣiΣj T（i,j） ） / （Tm*Tn）
Cxy［I’・I’］ ＝ s（x＋Tm-１,y＋Tn-１） ＋ s（x-１,y-１）
- s（x＋Tm-１,y-１） - s（x-１, y＋Tn-１）
により、
前記参照画像側の重みが全て同じ値ではない場合は、
Jw（x,y） ＝ （ Sit（x,y）・Su（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［T］ ］
Su（x,y） ＝ Bxy［U］
Si（x,y） ＝ Bxy［U・I］
St（x,y） ＝ F-1xy［ F［U］・F*［T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Su（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ Bxy［ U・I・I ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Su（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［T・T］ ］
により、
求めて当該テンプレートについての評価値とし、
前記判定手段は、前記参照画像中の各点について、前記複数のテンプレートの各々について求めた評価値のうち最大値を画素値とした最大評価値画像と、前記各点における最大値を与えた回転角度を当該点に記した最大評価値角度画像を作成し、
前記判定手段は、さらに、
前記最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記参照画像側の重み変更手段で参照画像側の重みを変更し、前記最大値を有する位置の所定の周辺位置の評価値を、前記所定の閾値より小さい値に変更して新たな最大評価値画像を作成する作成ステップを含み、
前記新たな最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記新たな最大評価値画像中で評価値の最大値が前記所定の閾値より小さくなるまで、前記作成ステップを繰り返す
ことを特徴とするテンプレートマッチング実行装置。
【請求項１１】
前記参照画像側の重み変更手段は、前記評価値の最大値を有する位置を左上として、前記最大値を与えた前記回転角度の抽出画像を前記参照画像に重ねて、重なった位置の双方の重みの値を乗じた値を新たな参照画像側の重みとすることを特徴とする請求項９または１０に記載のテンプレートマッチング実行装置。
【請求項１２】
テンプレート作成手段と比較評価手段と判定手段と参照画像側の重み変更手段を備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像からテンプレートを作成し、
前記評価値計算手段は、
参照画像側に重みが付与されている場合は、上記テンプレートと参照画像との重み付きの一致度の評価値を計算し、
参照画像側に重みが付与されていない場合は、上記テンプレートと参照画像との重みなしの一致度の評価値を計算し、
前記判定手段は、前記評価値から前記所定の閾値よりも高い値を持つ場所に検知を所望する形態があると判定し、
前記参照画像側の重み変更手段は、前記判定手段で検知した場所の参照画像側の重みを変更する
ことを特徴とするテンプレートマッチング実行装置。
【請求項１３】
請求項１または３において、上記テンプレート元画像に周期的な形態がある場合、前記周期の方向と１周期の距離を検知して、前記テンプレート元画像を前記周期の方向と１周期の距離分移動した画像と前記テンプレート元画像との差を基に、上記テンプレート側の重みを作成する
ことを特徴とするテンプレートマッチング実行装置。
【請求項１４】
請求項１または３において、上記テンプレート元画像の大域的なエッジを検出し、前記大域的なエッジを参照して、上記テンプレート側の重みを作成する
ことを特徴とするテンプレートマッチング実行装置。
【請求項１５】
テンプレート作成手段と評価値計算手段と参照画像処理手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像からテンプレートを作成し、
前記評価値計算手段は、前記テンプレートと、前記テンプレート側重みと、参照画像とを入力として、前記参照画像の点（x,y）の位置に前記テンプレートの左端を重ねた場合の両者の評価値J（x,y）を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、バタフライ演算してできた画像の点（x,y）の値を取る演算をBxy［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、
前記テンプレート作成手段によりテンプレート側の重みが設定されておらず（全て同じ値に設定した場合も含む）、前記参照画像処理手段により参照画像側の重みが設定されていない（全て同じ値に設定した場合も含む）場合は、
Tm、Tnをテンプレートサイズとし、Cxy［I’・I’］は、ランニングサム法により求めるI’・I’画像の左上（x,y）の点から始まるテンプレートサイズ分の総和として、
Jｗ（x,y） ＝ Fxy［ F［I’］・F［T’］ ］ 
/ （ sqrt（Cxy［I’・I’］）・sqrt（ΣiΣj T’・T’）
I’（x,y） ＝ I（x,y） - （ΣiΣj I（x＋i,y＋j） ） / （Tm*Tn）
T’（i,j） ＝ T（i,j） - （ΣiΣj T（i,j） ） / （Tm*Tn）
Cxy［I’・I’］ ＝ s（x＋Tm-１,y＋Tn-１） ＋ s（x-１,y-１）
- s（x＋Tm-１,y-１） - s（x-１, y＋Tn-１）
により、
前記テンプレート作成手段によりテンプレート側の重みが設定されており（全て同じ値に設定した場合は含まない）、前記参照画像処理手段により参照画像側の重みが設定されていない（全て同じ値に設定した場合も含む）場合は、
Jw（x,y） ＝ （ Sit（x,y）・sw - Si（x,y）・st ） / （ sq_Sii（x,y）・sq_stt ）
Sit（x,y） ＝ F-1xy［ F［I］・F*［W・T］ ］
sw ＝ A［W］
Si（x,y） ＝ F-1xy［ F［I］・F*［W］ ］
st ＝ A［W・T］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・sw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［I・I］・F*［W］ ］
sq_stt ＝ sqrt（ stt・sw（x,y） - st（x,y）・st（x,y） ）
stt ＝ A［W・T・T］
により、
前記テンプレート作成手段によりテンプレート側の重みが設定されておらず（全て同じ値に設定した場合も含む）、前記参照画像処理手段により参照画像側の重みが設定されている（全て同じ値に設定した場合も含まない）場合は、
Jw（x,y） ＝ （ Sit（x,y）・Su（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［T］ ］
Su（x,y） ＝ Bxy［U］
Si（x,y） ＝ Bxy［U・I］
St（x,y） ＝ F-1xy［ F［U］・F*［T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Su（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ Bxy［ U・I・I ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Su（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［T・T］ ］
により、
前記テンプレート作成手段によりテンプレート側の重みの設定がされており（全て同じ値に設定した場合も含まない）、前記参照画像処理手段により参照画像側の重みが設定されている（全て同じ値に設定した場合も含まない）場合は、
Jw（x,y） ＝ （ Sit（x,y）・Suw（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［W・T］ ］
Suw（x,y） ＝ F-1xy［ F［U］・F*［W］ ］
Si（x,y） ＝ F-1xy［ F［U・I］・F*［W］ ］
St（x,y） ＝ F-1xy［ F［U］・F*［W・T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Suw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［U・I・I］・F*［W］ ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Suw（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［W・T・T］ ］
により、
計算し、
前記判定手段は、前記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、
テンプレートマッチング実行装置。
【請求項１６】
テンプレート作成手段と評価値計算手段と判定手段と参照画像側の重み変更手段を備えた、プログラムであって、
コンピュータに、
前記テンプレート作成手段が、指定されたテンプレート元画像を所定の回転ステップごとに回転させて複数のテンプレート、テンプレート側の重み、および前記参照画像から形態を抽出するための抽出画像を作成するステップと、
前記評価値計算手段が、前記複数のテンプレートの各々について、前記参照画像中の各点に、当該テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、
前記参照画像側の重みが設定されていない場合、または、前記参照画像側の重みが全て同じ値の場合は、
Jw（x,y） ＝ （ Sit（x,y）・sw - Si（x,y）・st ） / （ sq_Sii（x,y）・sq_stt ）
Sit（x,y） ＝ F-1xy［ F［I］・F*［W・T］ ］
sw ＝ A［W］
Si（x,y） ＝ F-1xy［ F［I］・F*［W］ ］
st ＝ A［W・T］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・sw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［I・I］・F*［W］ ］
sq_stt ＝ sqrt（ stt・sw（x,y） - st（x,y）・st（x,y） ）
stt ＝ A［W・T・T］
により、
前記参照画像側の重みが全て同じ値ではない場合は、
Jw（x,y） ＝ （ Sit（x,y）・Suw（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［W・T］ ］
Suw（x,y） ＝ F-1xy［ F［U］・F*［W］ ］
Si（x,y） ＝ F-1xy［ F［U・I］・F*［W］ ］
St（x,y） ＝ F-1xy［ F［U］・F*［W・T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Suw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［U・I・I］・F*［W］ ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Suw（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［W・T・T］ ］
により、
求めて当該テンプレートについての評価値とするステップと、
前記判定手段が、前記参照画像中の各点について、前記複数のテンプレートの各々について求めた評価値のうち最大値を画素値とした最大評価値画像と、前記各点における最大値を与えた回転角度を当該点に記した最大評価値角度画像を作成するステップと、
前記判定手段が、さらに、
前記最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記参照画像側の重み変更手段で参照画像側の重みを変更し、前記最大値を有する位置の所定の周辺位置の評価値を、前記所定の閾値より小さい値に変更して新たな最大評価値画像を作成するステップと、
前記新たな最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記新たな最大評価値画像中で評価値の最大値が前記所定の閾値より小さくなるまで、前記作成ステップを繰り返すステップと
を実行させることを特徴とするプログラム。
【請求項１７】
テンプレート作成手段と評価値計算手段と判定手段と参照画像側の重み変更手段を備えた、プログラムであって、
コンピュータに、
前記テンプレート作成手段が、指定されたテンプレート元画像を所定の回転ステップごとに回転させて複数のテンプレート、および前記参照画像から形態を抽出するための抽出画像を作成するステップと、
前記評価値計算手段が、前記複数のテンプレートの各々について、前記参照画像中の各点に、当該テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x,y）を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、
前記参照画像側の重みが設定されていない場合、または、前記参照画像側の重みが全て同じ値の場合は、
Tm、Tnをテンプレートサイズとし、Cxy［I’・I’］は、ランニングサム法により求めるI’・I’画像の左上（x,y）の点から始まるテンプレートサイズ分の総和として、
Jｗ（x,y） ＝ Fxy［ F［I’］・F［T’］ ］ 
/ （ sqrt（Cxy［I’・I’］）・sqrt（ΣiΣj T’・T’）
I’（x,y） ＝ I（x,y） - （ΣiΣj I（x＋i,y＋j） ） / （Tm*Tn）
T’（i,j） ＝ T（i,j） - （ΣiΣj T（i,j） ） / （Tm*Tn）
Cxy［I’・I’］ ＝ s（x＋Tm-１,y＋Tn-１） ＋ s（x-１,y-１）
- s（x＋Tm-１,y-１） - s（x-１, y＋Tn-１）
により、
前記参照画像側の重みが全て同じ値ではない場合は、
Jw（x,y） ＝ （ Sit（x,y）・Su（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［T］ ］
Su（x,y） ＝ Bxy［U］
Si（x,y） ＝ Bxy［U・I］
St（x,y） ＝ F-1xy［ F［U］・F*［T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Su（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ Bxy［ U・I・I ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Su（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［T・T］ ］
により、
求めて当該テンプレートについての評価値とするステップと、
前記判定手段が、前記参照画像中の各点について、前記複数のテンプレートの各々について求めた評価値のうち最大値を画素値とした最大評価値画像と、前記各点における最大値を与えた回転角度を当該点に記した最大評価値角度画像を作成するステップと、
前記判定手段が、さらに、
前記最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記参照画像側の重み変更手段で参照画像側の重みを変更し、前記最大値を有する位置の所定の周辺位置の評価値を、前記所定の閾値より小さい値に変更して新たな最大評価値画像を作成する作成ステップと、
前記新たな最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記新たな最大評価値画像中で評価値の最大値が前記所定の閾値より小さくなるまで、前記作成ステップを繰り返すステップと
を実行させることを特徴とするプログラム。
【請求項１８】
前記参照画像側の重み変更手段は、前記評価値の最大値を有する位置を左上として、前記最大値を与えた前記回転角度の抽出画像を前記参照画像に重ねて、重なった位置の双方の重みの値を乗じた値を新たな参照画像側の重みとすることを特徴とする請求項１６または１７に記載のプログラム。
【請求項１９】
テンプレート作成手段と比較評価手段と判定手段と参照画像側の重み変更手段を備えた、プログラムであって、
コンピュータに、
前記テンプレート作成手段が、指定されたテンプレート元画像からテンプレートを作成するステップと、
前記評価値計算手段が、
参照画像側に重みが付与されている場合は、上記テンプレートと参照画像との重み付きの一致度の評価値を計算するステップと、
参照画像側に重みが付与されていない場合は、上記テンプレートと参照画像との重みなしの一致度の評価値を計算するステップと、
前記判定手段が、前記評価値から前記所定の閾値よりも高い値を持つ場所に検知を所望する形態があると判定するステップと、
前記参照画像側の重み変更手段が、前記判定手段で検知した場所の参照画像側の重みを変更するステップと
を実行させることを特徴とするプログラム。
【請求項２０】
請求項５または７において、上記テンプレート元画像に周期的な形態がある場合、前記周期の方向と１周期の距離を検知して、前記テンプレート元画像を前記周期の方向と１周期の距離分移動した画像と前記テンプレート元画像との差を基に、上記テンプレート側の重みを作成する
ことを特徴とするプログラム。
【請求項２１】
請求項５または７において、上記テンプレート元画像の大域的なエッジを検出し、前記大域的なエッジを参照して、上記テンプレート側の重みを作成する
ことを特徴とするプログラム。
【請求項２２】
テンプレート作成手段と評価値計算手段と参照画像処理手段と判定手段とを備えた、プログラムであって、
コンピュータに、
前記テンプレート作成手段が、指定されたテンプレート元画像からテンプレートを作成するステップと、
前記評価値計算手段が、前記テンプレートと、前記テンプレート側重みと、参照画像とを入力として、前記参照画像の点（x,y）の位置に前記テンプレートの左端を重ねた場合の両者の評価値J（x,y）を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第１の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、
辺の長さが前記第１の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、
前記第１の画像をＩとし、前記第２の画像をＴとし、、前記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、バタフライ演算してできた画像の点（x,y）の値を取る演算をBxy［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x,y）の値を取ることをF-1xyとして、
前記テンプレート作成手段によりテンプレート側の重みが設定されておらず（全て同じ値に設定した場合も含む）、前記参照画像処理手段により参照画像側の重みが設定されていない（全て同じ値に設定した場合も含む）場合は、
Tm、Tnをテンプレートサイズとし、Cxy［I’・I’］は、ランニングサム法により求めるI’・I’画像の左上（x,y）の点から始まるテンプレートサイズ分の総和として、
Jｗ（x,y） ＝ Fxy［ F［I’］・F［T’］ ］ 
/ （ sqrt（Cxy［I’・I’］）・sqrt（ΣiΣj T’・T’）
I’（x,y） ＝ I（x,y） - （ΣiΣj I（x＋i,y＋j） ） / （Tm*Tn）
T’（i,j） ＝ T（i,j） - （ΣiΣj T（i,j） ） / （Tm*Tn）
Cxy［I’・I’］ ＝ s（x＋Tm-１,y＋Tn-１） ＋ s（x-１,y-１）
- s（x＋Tm-１,y-１） - s（x-１, y＋Tn-１）
により、
前記テンプレート作成手段によりテンプレート側の重みが設定されており（全て同じ値に設定した場合は含まない）、前記参照画像処理手段により参照画像側の重みが設定されていない（全て同じ値に設定した場合も含む）場合は、
Jw（x,y） ＝ （ Sit（x,y）・sw - Si（x,y）・st ） / （ sq_Sii（x,y）・sq_stt ）
Sit（x,y） ＝ F-1xy［ F［I］・F*［W・T］ ］
sw ＝ A［W］
Si（x,y） ＝ F-1xy［ F［I］・F*［W］ ］
st ＝ A［W・T］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・sw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［I・I］・F*［W］ ］
sq_stt ＝ sqrt（ stt・sw（x,y） - st（x,y）・st（x,y） ）
stt ＝ A［W・T・T］
により、
前記テンプレート作成手段によりテンプレート側の重みが設定されておらず（全て同じ値に設定した場合も含む）、前記参照画像処理手段により参照画像側の重みが設定されている（全て同じ値に設定した場合も含まない）場合は、
Jw（x,y） ＝ （ Sit（x,y）・Su（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［T］ ］
Su（x,y） ＝ Bxy［U］
Si（x,y） ＝ Bxy［U・I］
St（x,y） ＝ F-1xy［ F［U］・F*［T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Su（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ Bxy［ U・I・I ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Su（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［T・T］ ］
により、
前記テンプレート作成手段によりテンプレート側の重みの設定がされており（全て同じ値に設定した場合も含まない）、前記参照画像処理手段により参照画像側の重みが設定されている（全て同じ値に設定した場合も含まない）場合は、
Jw（x,y） ＝ （ Sit（x,y）・Suw（x,y） - Si（x,y）・St（I,j） ）
/ （ sq_Sii（x,y）・sq_Stt（x,y） ）
Sit（x,y） ＝ F-1xy［ F［U・I］・F*［W・T］ ］
Suw（x,y） ＝ F-1xy［ F［U］・F*［W］ ］
Si（x,y） ＝ F-1xy［ F［U・I］・F*［W］ ］
St（x,y） ＝ F-1xy［ F［U］・F*［W・T］ ］
sq_Sii（x,y） ＝ sqrt（ Sii（x,y）・Suw（x,y） - Si（x,y）・Si（x,y） ）
Sii（x,y） ＝ F-1xy［ F［U・I・I］・F*［W］ ］
sq_Stt（x,y） ＝ sqrt（ Stt（x,y）・Suw（x,y） - St（x,y）・St（x,y） ）
Stt（x,y） ＝ F-1xy［ F［U］・F*［W・T・T］ ］
により、
計算するステップと、
前記判定手段が、前記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テンプレートマッチング技術に関し、特に、テンプレート画像の形態に比べ、参照画像の形態が変形している場合に有効なテンプレートマッチング技術に関する。
【背景技術】
【０００２】
従来より、対象物が予め撮影された画像などからテンプレート画像を作成し、参照画像（入力画像）とテンプレート画像とのマッチング評価値を求め、テンプレート登録した対象物の画像が参照画像（入力画像）に含まれるか否か、含まれる場合はその位置を検知する、テンプレートマッチングと呼ばれる技術が知られている。
【０００３】
例えば、下記の非特許文献１の５章３節、８４ページから８６ページまでには、テンプレートマッチングの基本的な方法が記されている。この文献の図５．６では、少女の顔画像を原画とし、左目部分をテンプレートとして切り出し、原画像を濃度変換して作成した画像を入力画像として、テンプレートとの相関演算を入力画像の各部分に施した結果が例示されている。この例では、相関係数の閾値を０．９９とした場合に検出されたマッチング位置は、テンプレートとして切り出した左目部分のみであるが、相関係数の閾値を０．８とした場合は、左目だけでなく、右目付近にもマッチングする候補位置がいくつか検出されている。
【０００４】
また、下記の非特許文献２の１７６ページでは、テンプレートと参照画像（原画像）の該当部分の図形を一致させることが困難であるため、ある程度位置がずれていても（変形していても）対応できるようにすることを目的として、テンプレートの図形（モデル図形）の線幅と参照画像（原画像）の線幅を共にある程度太くする処理、または参照画像（原画像）の図形周辺の画素濃度を徐々に変化させてぼかす処理が行われている。
【０００５】
また、下記の特許文献１には、露光装置を対象としたテンプレートマッチングを用いた位置検出方法が記載されている。この方法では、テンプレート画像の中で誤差の多く発生する部分があらかじめ分かっている場合に、該当部位にマスキングを施し、撮影画像（入力画像）の対応する領域にも同様なマスキングを施して、マスキングを施していない領域のみ所定の評価式に基づく演算を行って評価することにより、誤差の大きい部位を排除した評価を行い、位置検出精度を向上させている。
【０００６】
また、下記の非特許文献３には、テンプレートマッチングの評価値を正規化相関とする場合に、ＦＦＴ（高速フーリエ変換）と移動加算（running sum）を用いて高速に正規化相関の演算を計算する方法が記載されている。ただし、この方法は、上記マスキング処理を施す場合には適用できない高速演算方法である。
【０００７】
また、下記の特許文献２には、周期的なパターンを持った撮影画像の場合に、１周期ずれた画像との差画像をテンプレートに加え、誤認する確率の低いテンプレートマッチングを行うことができるようにした技術が記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−１８１０５３号公報
【特許文献２】特開２００８−２３４４５５号公報
【非特許文献】
【０００９】
【非特許文献１】著者：酒井幸市、書名：Visual C#.NET & Visual Basic.NETによるデジタル画像処理の基礎と応用-基本概念から顔画像認識まで、発行所：CQ出版社、発行年：２００３年９月１日初版発行
【非特許文献２】著者：酒井幸市、書名：画像処理とパターン認識入門  基礎からVC#/VC++.NETによるプロジェクト作成まで、発行所：森北出版株式会社、発行年：２００６年１２月２０日第１版第１刷発行
【非特許文献３】J.P.Lewis， ”Fast Template Matching”， Vision Interface ９５， pp.１２０-１２３， １９９５.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来、テンプレート画像の形態に比べ、参照画像の形態が変形している場合には、上記非特許文献１はもとより、上記非特許文献２記載の画像処理（テンプレート画像、および参照画像を太くしたり、ぼかしたりする処理）を行っても、処理後の画像で両者の形態が合わない部分の寄与で評価値が低くなり、対象物の検出精度が劣るという問題があった。
【００１１】
この問題を解決するため、上記特許文献１のように、あらかじめ形態が合わず誤差の原因となる部位が分かっている場合にその部位をマスキングして評価を行う技術がある。しかし、その技術を適用した場合には、評価値に正規化相関を用いると計算時間がかかるという新たな問題が生じる。なぜならば、上記非特許文献３の手法はマスキングがない場合の高速計算方法であって、マスキングがある場合の高速計算方法ではなく、この方法を適用できないからである。
【００１２】
上記に鑑み、マスキングがある場合に参照画像中の対象物を高速にかつ精度良く検出する技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、上記テンプレート画像からテンプレート及びテンプレート側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、上記参照画像とを入力として、上記参照画像の点（x，y）の位置に上記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw（x，y）を、辺の長さが素数のべき乗になるように上記参照画像の辺を零詰めした第１の画像を作成するステップと、辺の長さが上記第１の画像の辺の長さと一致するように上記テンプレート元画像の辺を零詰めした第２の画像を作成するステップと、辺の長さが上記第１の画像の辺の長さと一致するように上記テンプレート側重みの辺を零詰めした第３の画像を作成するステップと、上記第１の画像をＩとし、、上記第２の画像をＴとし、、上記第３の画像をＷとし、高速フーリエ変換をF［］とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF＊ ［］とし、高速逆フーリエ変換をF-1［］とし、画像の各成分値を全て加算した値を出す演算をA［］とし、平方根を取る演算をsqrt（）とし、高速逆フーリエ変換してできた画像の点（x，y）の値を取ることをF-1xyとして、以下の計算式を計算するステップと、
Jw（x，y） = （ Sit（x，y）・sw - Si（x，y）・st ） / （ sq_Sii（x，y）・sq_stt ）
Sit（x，y） = F-1xy［ F［I］・F＊［W・T］ ］
sw = A［W］
Si（x，y） = F-1xy［ F［I］・F＊［W］ ］
st = A［W・T］
sq_Sii（x，y） = sqrt（ Sii（x，y）・sw（x，y） - Si（x，y）・Si（x，y） ）
Sii（x，y） = F-1xy［ F［I・I］・F＊［W］ ］
sq_stt = sqrt（ stt・sw（x，y） - st（x，y）・st（x，y） ）
stt = A［W・T・T］
により求めて評価値とし、
上記判定手段は、上記評価値が所定の閾値以上であれば、上記点（x，y）において上記参照画像と上記テンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置を提供する。
【発明の効果】
【００１４】
本発明によれば、マスキングを含む、重みを付けた正規化相関を高速にかつ精度良く計算することができる。
【図面の簡単な説明】
【００１５】
【図１】実施例１〜３における操作ボタンおよび画像提示画面のマッチング後の表示例を含む図である。
【図２】実施例１〜４における構成を示す図である。
【図３】実施例１〜４における計算装置２０４の構成、および計算装置２０４によって実現される機能構成を示す図である。
【図４】従来技術における全体の手順を示すフロー図である。
【図５】実施例１における全体の手順を示すフロー図である。
【図６】実施例２における全体の手順を示すフロー図である。
【図７】実施例３における全体の手順を示すフロー図である。
【図８】実施例４における全体の手順を示すフロー図である。
【図９】実施例１におけるテンプレート作成画面を示す図である。
【図１０】実施例１における参照画像の処理画面を示す図である。
【図１１】実施例４における参照画像例を示す図である。
【図１２】実施例４における途中経過を示すイメージ図である。
【図１３】実施例５における各画像例を示す図である。
【図１４】実施例５における回転登録画像例を示す図である。
【図１５】実施例６における周期的なパターンを持つテンプレート元画像例を示す図である。
【図１６】実施例６における、テンプレート側の重み作成処理の途中経過例を示す図である。
【図１７】実施例７における、テンプレート側の重み作成処理の途中経過例を示す図である。
【図１８】実施例７における、テンプレート側の重み作成処理の最終経過例を示す図である。
【発明を実施するための形態】
【００１６】
（１）  実施例１
実施例１は、テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、  上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成し、  上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点（x，y）の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x，y）を、本明細書記載の数１〜数９までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
【００１７】
また、テンプレート作成手段と評価値計算手段と判定手段とを備えた、プログラムであって、コンピュータに、上記テンプレート作成手段が、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成するステップと、上記評価値計算手段が、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点（x，y）の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x，y）を本明細書記載の数１〜数９までの計算手段により求めて評価値とするステップと、上記判定手段が、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、を実行させることを特徴とするプログラムに関する。
【００１８】
（１−１）構成
本発明の実施例１に関わる全体の構成を図２に示す。以下、全体の構成を説明する。
【００１９】
対象物２０１は、デジタルカメラ２０２で撮影され、撮影画像の電子データは、情報伝達手段２０３によって、計算装置２０４に取り込まれる。計算装置２０４には、同様の撮影および情報伝達により、複数の画像が取り込まれる。計算装置２０４は、これらの画像を入力とし、ユーザーが入力装置２０５を介して操作を行うことにより、本発明に基づくテンプレートマッチング処理を行い、結果を表示装置２０６に提示する。
【００２０】
計算装置２０４は、市販のパソコンや、ネットワークに接続されたサーバーなどの、計算機能を有する装置である。デジタルカメラ２０２としては、市販のデジタルカメラを用いることができる。撮影画像をパソコンに取り込むための情報伝達手段２０３としては、デジタルカメラ２０２に市販のデジタルカメラを用いる場合は、そのデジタルカメラのメーカーが提供する情報伝達手段を用いることができる。
【００２１】
計算機２０４に撮影画像を取り込む手段としては、デジタルカメラ２０２以外にも、ビデオ、スキャナ、その他各種画像撮影装置を用いることができる。
【００２２】
入力装置２０５としては、本実施例では市販のキーボードやマウスなどを用いる。計算装置２０４として市販のノート型パソコンを用いる場合には、本体にキーボード、マウスの代替手段としてのタッチパネルといった入力装置が具備されているので、それらを入力装置２０５として用いることができる。
【００２３】
本発明は、計算機２０４が実施する計算処理手段、およびそれを実現するプログラムに特徴がある。
【００２４】
図３（Ａ）は、計算装置２０４のハードウエア構成を表すブロック図である。図２（Ａ）に示すように、計算装置２０４は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、ユーザーインターフェース、通信インターフェース、ＣＤやＳＤ−ＲＡＭなどの、記憶媒体の情報を読み取るための各種媒体情報読取装置を備えている。計算装置２０４には、各機器の動作を制御し、プログラムを実行するためのＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）がインストールされている。本発明の装置を作成するには、ＧＵＩ（Ｇｒａｐｈｉｃ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）  を作成するビルダーソフトを用いて、本工程を計算機２０４が実行するための変数や手続きを高級言語で記述したプログラムを作成し、コンパイルして実行形式のプログラムを作成する。計算装置２０４に実行形式のプログラムをインストールして計算機２０４に実行させれば、ＯＳが各機器を制御し、本発明が実行される装置となる。以上により、計算装置２０４において、本発明のテンプレートマッチング処理方法における各工程を実装したプログラムを実行することにより、本発明のテンプレートマッチング実行装置を実現することができる。
【００２５】
図３（Ｂ）に示すように、計算装置２０４によって実現される本発明のテンプレートマッチング実行装置は、機能的には、ユーザーが画面を見ながら操作をすることが可能なＧＵＩ手段３０１と、撮影画像などから所望の部分を切り出し、所望の処理を行ってテンプレートを作成するテンプレート作成手段３０２と、参照画像に所望の処理を行う参照画像処理手段３０３と、テンプレートマッチングして評価値を計算する評価値計算手段３０４と、所望の一致部位が参照画像にあったか否かを評価値から判断する一致判断手段３０５を備えている。
【００２６】
これらの各手段は、ＣＰＵが計算装置２０４のＲＡＭやＲＯＭ、ＨＤＤ、外部の記憶媒体等に記憶されるプログラムを実行することにより実現される。
（１−２）本装置の動作およびユーザー操作の概要
図５は、本発明の実施例１のテンプレートマッチング実行装置が行うテンプレートマッチング処理の手順を示したフロー図である。図１、図９、図１０は、この処理手順を実現する各工程を実装したプログラムを計算装置２０４が実行した結果を表示装置２０６が表示画面１０１に表示する例である。ユーザーは、これらの画面に表示される内容を見て、ＧＵＩによる対話的な操作を行うことができる。即ち、ユーザーは、表示装置２０６の表示画面１０１を見て入力装置２０５を操作することにより、図５で示された各手順を計算装置２０４に行わせ、結果を表示装置２０６に表示させ、更に、ユーザーは、その表示内容を見て押すボタンを決め、次の操作を行うことができる。
【００２７】
このように、本発明は、ユーザーが画面を見ながら対話的に操作して重み付きテンプレートマッチングを実行することができる装置を提供する。
（１−３）処理手順概要
本発明のプログラムを起動すると、表示装置２０６は、初期画面を表示する。初期画面は、図１において、テンプレート表示部１０２、テンプレート側重み表示部１０３、参照画像表示部１０４に、何も画像が表示されていない状態である。
【００２８】
本発明は、ユーザーが画面を見て対話的に操作して重み付きテンプレートマッチングを実行する装置に関するものであるため、以下、図１、図９、図１０の表示例と、図５のフロー図を元に計算装置２０４が実行する処理手順の概要を説明する。
【００２９】
ステップ４０１：  テンプレートボタン１０５（図１）をユーザーが押すと、計算装置２０４は、以下のステップ４０１の前半部分の機能を行うプログラムを実行し、テンプレート作成画面が表示される。図９がその表示例であるが、最初の段階では、テンプレート元画像表示部９０２、切り出し画像表示部９０３、テンプレート表示部９０４、テンプレート側の重み表示部９０５には何も表示されていない。
【００３０】
ユーザーが画像入力ボタン９０６を押すと、計算装置２０４は、以下のステップ４０１の後半部分の機能を行うプログラムを実行し、計算装置２０４に取り込まれている画像からユーザーが画像を選択してテンプレート元画像が入力される。入力されたテンプレート元画像は、テンプレート元画像表示部９０２に表示される。
【００３１】
ステップ５０２：  テンプレート元画像表示部９０２に表示された画像部分の領域をユーザーがドラッグアンドドロップして指定すると、計算装置２０４は、以下のステップ５０２の最初の機能を行うプログラムを実行し、画像切り出し部９１２が表示され、その部分の画像を切り出した画像が、切り出し画像表示部９０３に表示される。ユーザーがパラメータ入力部９０９にパラメータ数値を記入し、作成ボタン９０８を押すと、計算装置２０４は以下のステップ５０２の一部の機能を行うプログラムを実行し、切り出し画像を処理してテンプレートとテンプレート側の重みが作成され、それぞれ、テンプレート表示部９０４、テンプレート側重み表示部９０５に表示される。この具体的な処理は後の（１−４）項で述べる。
【００３２】
また、ユーザーが保存ボタン９１０を押すと、計算装置２０４は以下のステップ５０２の一部の機能を行うプログラムを実行し、テンプレート作成時に利用した元画像のファイル格納アドレスや、画像切り出し部９１２の座標情報やパラメータ入力部９０９に入力したパラメータ情報は、テンプレート作成情報ファイルとして保存される。ユーザーがテンプレート入力ボタンを押すと、計算装置２０４は以下のステップ５０２の一部の機能を行うプログラムを実行する。計算装置２０４が保存している所望のテンプレート作成情報ファイルをユーザーが選択すると、計算装置２０４は、そのテンプレート作成情報ファイルを呼び出し、その情報に基づいて、元画像を入力し、当該元画像と切り出し位置情報を用いて切り出し画像を再生成し、パラメータ情報を参照することによりユーザーが作成ボタン９０８を押した時と同じ処理を再現してテンプレートやテンプレート側重みを作成し、それらをそれぞれの表示部に表示する。
【００３３】
ユーザーが戻りボタン９１１を押すと、計算装置２０４は以下のステップ５０２の一部の機能を行うプログラムを実行し、図９のテンプレート作成画面から図１の初期画面に戻り、以上の操作で作成したテンプレートがテンプレート表示部１０２に表示され、テンプレート側重み表示部１０３にテンプレート側重みが表示される。
【００３４】
ステップ４０３：  ユーザーが画像ボタン１０６を押すと、計算装置２０４は以下のステップ４０３の前半の機能を行うプログラムを実行し、参照画像処理画面が表示される。図１０がその表示例である。最初の段階では、画像表示部１００２には何も表示されない。ユーザーが画像入力ボタン１００３を押すと、計算装置２０４は以下のステップ４０３の後半の機能を行うプログラムを実行し、計算装置２０４に取り込まれている画像をユーザーが選択して未処理の参照画像が入力される。入力された未処理の参照画像は、画像表示部１００２に表示される。
【００３５】
ステップ５０４：  ユーザーがパラメータ入力部１００５にパラメータ数値を記入し、処理ボタン１００４を押すと、計算装置２０４は以下のステップ５０４の最初の機能を行うプログラムを実行し、参照画像の処理画像が作成され、参照画像表示部１０４に表示される。この具体的な処理は、後の（１−５）項で述べる。
【００３６】
ユーザーが表示切替ボタン１００６を押すと、計算装置２０４は以下のステップ５０４の一部の機能を行うプログラムを実行し、未処理の参照画像の表示と、処理後の参照画像の表示が切り替わり、処理による変化を見ることができる。ユーザーがパラメータ入力部１００５の数値を変えて処理ボタン１００４を押すと、計算装置２０４は以下のステップ５０４の一部の機能を行うプログラムを実行し、パラメータの異なる処理画像が作成され、ユーザーの好みの処理画像を作成することができる。
【００３７】
ユーザーが戻りボタン１００７を押すと、計算装置２０４は以下のステップ５０４の最後の機能を行うプログラムを実行し、参照画像処理画面から図１の初期画面に戻り、ステップ５０４のこれまでの機能で作成した処理後の参照画像が参照画像表示部１０４に表示される。
【００３８】
ステップ５０５：  図１の画面でユーザーがマッチングボタン１０７を押すと、計算装置２０４はマッチング処理を行う。マッチング処理では、以上のステップ５０２で作成したテンプレートとテンプレート側重み、および上記ステップ５０４で作成した処理後の参照画像を入力として、後に述べる（１−６）項で記す方法により、重み付き正規化相関の計算を行う。この方法には、通常の重み付き正規化相関処理を行う方法より高速に演算できる利点がある。これについては、後の（１−６）項で述べる。
【００３９】
ステップ４０６：  本ステップは、ステップ５０５で重み付き相関処理が行われ、テンプレートが各々の位置にある時の重み付き相関値が全て求まった後に行われる。ここでは、計算装置２０４は、以下のステップ４０６の機能を行うプログラムを実行し、最も重み付き相関値の高い所が探され、その時のテンプレート位置を検知位置１０９として表示する。検知位置１０９での重み付き相関値が所定値以上であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にあったと判定され、検知位置１０９の枠表示を所定の色、例えば赤色で枠表示される。また、重み付き相関値が所定値未満であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にないと判定され、検知位置１０９の枠表示を所定の色、例えば緑色で枠表示される。
【００４０】
ユーザーは、枠の色で表示された判定結果を見て、その判定結果が誤っているとユーザーが感じた場合、そのユーザは、テンプレートボタン１０５や画像ボタン１０６を押し、テンプレートや処理後の参照画像を作成し直しても良い。
【００４１】
ステップ４０７：  ユーザーが終了ボタン１０８を押すと、計算装置２０４は、以下のステップ４０７の機能を行うプログラムを実行し、テンプレートマッチング処理が終了する。検知位置１０９などのマッチング情報の活用、検査等の所望の処理があれば、これ等の機能を実現する後段の処理プログラムにここで求まったマッチング情報を渡し、計算装置２０４は、後段の処理プログラムを実行し、所望の処理が行われる。
（１−４）テンプレート、およびテンプレート側の重み作成処理
上記ステップ５０２に記載のテンプレート、およびテンプレート側の重みを作成する処理について、具体的に説明する。
【００４２】
最初に、切り出し画像のエッジを取る。エッジを取る処理は、着目画素の周囲で距離aにある画素の平均値と着目画素の値の差の絶対値をとることで行う。更に、エッジを太くする処理を行う。エッジを太くする処理はMax３処理をb回行う。Max３処理とは、着目する画素の上下左右斜めの最近傍８画素と自身の点を含めた９画素の中にある画素値の中で最も大きな値を選択し、その値を着目する点の新しい画素値とする処理である。更に値c以上の画素の近傍d画素にあり、値がcより低い画素の値を０として得られた画像をテンプレートとする。また、この処理で値を０とした位置に対応するテンプレート側重みを０とし、他の位置に対応するテンプレート側重みを１とする。
【００４３】
以上のパラメータa〜dは、パラメータ入力部９０９に対応する入力部においてユーザーが入力または指定することができる。
【００４４】
以上の処理により、入力したパラメータに応じてテンプレートとテンプレート側重みが作られる。
（１−５）参照画像の処理画像の作成処理
上記ステップ５０４に記載の参照画像の処理について具体的に説明する。
【００４５】
最初に、エッジを取り、Max３処理を指定された回数分行う。エッジを取る時やMax３処理の回数を指定する時は、パラメータ入力部１００５の所定の場所に入力したパラメータ値を参照する。
【００４６】
以上の処理で、入力したパラメータに応じて、参照画像を処理した画像が作られる。
【００４７】
なお、テンプレート側のエッジ周辺には重み０の無評価域があるので、参照画像を処理する際のMax３処理の回数は、テンプレートを作成する際のMax３処理の回数よりも、大きくすることができる。
（１−６）重み付き相関処理について（通常の式と本発明の式との比較）
本発明の実施例１では、以下の数１〜９に基づく方法で計算する。
（数１）  Jw（x，y） = （ Sit（x，y）・sw - Si（x，y）・st ）
/ （ sq_Sii（x，y）・sq_stt ）
ただし、Jw（x，y）は、参照画像（処理をした参照画像）の点（x，y）の位置にテンプレートの左端を重ねた場合の、両者の重みW付き正規化相関値である。その他の各項は、以下の数２〜９で求められる値である。数１の分母が０に近い所定の範囲内にある場合は、Jw（x，y）の値を、所定の値、例えば０とする。
（数２）  Sit（x，y） = F-1xy［ F［I］・F＊［W・T］ ］
ただし、F［］は高速フーリエ変換であり、F＊ ［］は画像を高速フーリエ変換した後に、各成分の複素共役を取った画像を作る画像変換であり、F-1［］は高速逆フーリエ変換であり、F-1xyは、高速逆フーリエ変換してできた画像の点（x，y）の値を取ることを意味し、Iは参照画像（処理をした参照画像）で辺の長さが素数pのべき乗となるように０詰めした画像（素数pとしては、２が選ばれることが最も多い）であり、Tはテンプレートを０詰めしてIと同じ画像サイズとしたものであり、Wはテンプレート側の重みでテンプレートと同様に０詰めしてIと同じ縦横のサイズにしたものである。なお、画像間の演算記号・は、画像間の積演算を表し、両画像の対応する成分値同士の掛け算を新たに生成される画像の成分値とする演算を意味する。
（数３）  sw = A［W］
ただし、A［］は、画像の各成分値を全て加算した値を出す演算である。
（数４）  Si（x，y） = F-1xy［ F［I］・F＊［W］ ］
（数５）  st = A［W・T］
（数６）  sq_Sii（x，y） = sqrt（ Sii（x，y）・sw（x，y） - Si（x，y）・Si（x，y） ）
ただし、sqrt（）は、平方根を取ることを意味し、Sii（x，y）は数７により求められる。
（数７）  Sii（x，y） = F-1xy［ F［I・I］・F＊［W］ ］
（数８）  sq_stt = sqrt（ stt・sw（x，y） - st（x，y）・st（x，y） ）
ただし、Sttは数９により求められる。
（数９）  stt = A［W・T・T］
これは、以下で述べるように、通常の重み付き正規化相関の式より一般に高速に計算できる。
【００４８】
通常のテンプレート側に重みの付いた重み付き正規化相関の式は、以下の数２８〜３３で表される。
（数２８）  
Jw（x，y） = C（x，y） / （D（x，y）・ E）
（数２９）  
C（x，y） = ΣiΣj （（I（i+x，j+y）-Hi（x，y））・（T（i，j）-Ht）・W（i，j））
（数３０）  
D（x，y） = sqrt（ ΣiΣj （ （I（i+x，j+y）-Hi（x，y））
・（I（i+x，j+y）-Hi（x，y））・W（i，j）） ）
（数３１）  
E = sqrt（ ΣiΣj （ （T（i，j）-Ht）・（T（i，j）-Ht）・W（i，j）） ）
（数３２）  
Hi（x，y） = （ ΣiΣj I（i+x，j+y）・W（i，j） ）/ （ΣiΣj W（i，j） ）
（数３３）  
Ht = （ ΣiΣj T（i，j）・W（i，j） ）/ （ΣiΣj W（i，j） ）
ただし、I（i+x，j+y）は参照画像（処理をした参照画像）の点（i+x，j+y）の値であり、T（i，j）はテンプレートの点（i，j）での値であり、W（i，j）はテンプレート側の重みであり、Jw（x，y）は、参照画像（処理をした参照画像）の点（x，y）の位置にテンプレートの左端を重ねた場合の両者の重みW付き正規化相関値である。
【００４９】
ΣiΣjは、iとjについて総和を取ることを意味し、総和を取る領域は、テンプレートの全体領域である。
【００５０】
以上の数２８〜３３で表される通常の重み付き正規化相関の式に基づいて、Jw（x，y）を計算する工程を実装したプログラムを作ると、点（x，y）のJwの値を計算するのに、テンプレートサイズ分の領域、即ち、Tm＊Tnのオーダーの計算が必要である。ただし、Tmは、テンプレートの横サイズ、Tnはテンプレートの縦サイズである。点（x，y）は、参照画像（処理した参照画像）Iのサイズ分あるので、全ての正規化相関値を計算するのに、Im＊In＊Tm＊Tnのオーダーの演算が必要である。ここで、Imは参照画像（処理した参照画像）の横サイズ、Inは、参照画像（処理した参照画像）の縦サイズである。
【００５１】
一方、本実施例１で採用する数１〜９で表される式に基づいて、Jw（x，y）を計算する工程を規定したプログラムを作ると、フーリエ変換F［］の積和演算数が（log（IM）＋log（IN））＊IM＊IN、バタフライ演算B［］の演算数がおよそIM＊INのオーダーである。この時、F［］、B［］は全てのx，yの領域を計算する演算なので、全ての正規化相関値を計算するのに、（log（IM）+log（IN））＊IM＊INのオーダーの演算量で済むことになる。ここで、IMは、参照画像（処理をした参照画像）を辺の長さが素数pのべき乗となるように０詰めした画像の横サイズ、INはその縦サイズである。また、logの底はｐである。
【００５２】
以上より、テンプレートサイズ（Tm＊Tn）が大きくなるに従い、本実施例１で採用する上記数１〜９の重み付き正規化相関では、演算時間が短縮される効果が大きくなる。
【００５３】
例えは、Im=In=５１２の時、IM=IN=５１２で、log（IM）=log（IN）=９なので、本発明による演算量は、９＊９＊Im＊Inのオーダーになり、上記数２８〜３２に基づく工程ででは、Tm＊Tn＊Im＊Inのオーダーとなる。従って、Tm=Tn=１２８の場合、約１００倍近く、本実施例１の方が演算量が少なく、高速になるという効果がある。
（１−７）従来の重みなし正規化相関の場合との比較
従来の重みなし正規化相関を用いたテンプレートマッチングの場合のフロー図を図４に示す。本発明の実施例１と比べ、違いがある部分は、テンプレート作成処理４０２の具体的な処理と、参照画像の処理４０４の具体的な処理、およびマッチング処理４０５の具体的な処理が異なるだけで、他は同じである。以下、実施例１と異なる部分のみ、図中の番号をステップ番号として記載する。
【００５４】
ステップ４０２： テンプレート側の重みはない。作成ボタン９０８が押されると、切り出し画像を処理してテンプレートが作成される。テンプレートを作成する処理が異なるのみで、他は実施例１と同じである。
【００５５】
テンプレートを作成する処理は、テンプレートをぼかす処理とMax３処理で太くする処理である。ぼかす処理は、着目点を含む周囲の画素値の平均値を新たな着目点の画素値とすることで行われる。これにより、テンプレート画像は、平均化されてぼけた画像になる。Max3処理は、着目点を含む周辺９画素の中から最も画素値が高いものを新たな着目点の画素値とする処理である。これによりテンプレートの中に輝度の高い線があれば、線が太くなる。
【００５６】
ステップ４０４：未処理の参照画像にぼかす処理とMax３処理で太くする処理を行い、処理した参照画像を作る。
【００５７】
ステップ４０５：  マッチング処理への入力は、ステップ４０２のテンプレートとステップ４０４の処理後の参照画像である。若干の近似となるが、正規化相関は、上記非特許文献３に記載された計算方法に基づき、以下の数３４〜３７により計算する。
（数３４）  J’（x，y） = Fxy［ F［I’］・F［Ｔ’］ ］ 
/ （ sqrt（Cxy［Ｉ’・Ｉ’］）・sqrt（ΣiΣj Ｔ’・Ｔ’）
（数３５）  I’（x，y） = I（x，y） - （ΣiΣj I（x+i，y+j） ） / （Tm＊Tn）
（数３６）  Ｔ’（i，j） = T（i，j） - （ΣiΣj T（i，j） ） / （Tm＊Tn）
ただし、Tm、Tnは、テンプレートサイズである。J’（x，y）は若干の近似を含む正規化相関値である。
【００５８】
また、Cxy［Ｉ’・Ｉ’］は、ランニングサム法により求めるＩ’・Ｉ’画像の左上（x，y）の点から始まるテンプレートサイズ分の総和である。即ち、左上（０，０）の点から右下（a，b）までのI・I画像の総和をs（a，b）とすると、以下の数３７となる。
（数３７）  Cxy［Ｉ’・Ｉ’］ = s（x+Tm-１，y+Tn-１） + s（x-１，y-１）
- s（x+Tm-１，y-１） - s（x-１， y+Tn-１）
以上の数３７のランニングサム法による演算Cxy［Ｉ’・Ｉ’］は、バタフライ法に基づく演算Ｂｘｙ［Ｉ’・Ｉ’］に置き換えることができる。ランニングサム法は、広い意味でバタフライ法と同じ原理に基づく高速計算方法であり、ここでは、広い意味でバタフライ演算の中に含める演算方法であるとする。
【００５９】
従来は、上記数３４〜３７迄の計算方法に基づく工程を実装したプログラムを実行していたが、本発明の数１〜数９のような、重み付きの正規化相関を高速に計算する方法は知られていなかった。本発明の一つの特徴は、このような重み付き正規化相関を高速に演算する手段を持つ装置を提供することにある。
（１−８）マスキングについて
以上の重みW（i，j）は、各点に任意の実数値を入れて重み付けすることが可能である。ここで、テンプレート側にマスク形状を０と１で表現した値の入ったマスク画像M（i，j）を作成し、マスク画像を重みとする場合、即ち、W（i，j）=M（i，j）とすると、上記は、マスク付の正規化相関を示すことになり、これを評価値とするマッチングは、マスク付マッチングとなる。
（１−９）その他１
テンプレート（T）の重み（W）付平均をＴ’とする。即ち以下の数３８となる。
（数３８）  Ｔ’（i，j） = T（i，j） - （ΣiΣj T（i，j） ） / （Tm＊Tn）
以上の数３８のＴ’を用い、上記数１〜数９は、項を整理し、以下の数３９〜数４５となる。
（数３９）  Jw（x，y） = （ Sit’（x，y）・sw ） / （ sq_Sii（x，y）・sq_stt ）
（数４０）  Sit’（x，y） = F-1xy［ F［I］・F＊［W・Ｔ’］ ］
（数４１）  sw = A［W］
（数４２）  Si（x，y） = F-1xy［ F［I］・F＊［W］ ］
（数４３）  sq_Sii（x，y） = sqrt（ Sii（x，y）・sw（x，y） - Si（x，y）・Si（x，y） ）
（数４４）  Sii（x，y） = F-1xy［ F［I・I］・F＊［W］ ］
（数４５）  sq_stt = sqrt（ A［W・Ｔ’・Ｔ’］ ）
以上の数３８〜４５は、数１〜数９を数３８の置き換えを行って変形したもので、結果として、数３９〜４５で表される式に基づいて、Jw（x，y）を計算する工程を実装したプログラムを作っても、演算時間のかかる部分である数４０、数４２、数４４は、数２、数４、数７と同じ演算工程となっており、その他の演算量は少ないので、数３９〜数４５は、数１〜数９と演算時間はあまり変わらず、特に利点が生じる変形とはなっていない。ここでは、演算時間の利点が少ない変形であるので、数３９〜数４５は、数１〜数９の範囲に含まれると考える。
【００６０】
次に、参照画像（I）から以下の数４６の置き換えを行った画像（I’）を作る。
（数４６）  I’（x，y） = I（x，y） - （ΣiΣj I（x+i，y+j） ） / （Tm＊Tn）
以上の数４６のI’（x，y）を用いると、数３９〜４５で重み付きの正規化相関（Jw（x，y））を求める式は、以下の数４７〜近似した正規化相関（J’w（x，y））を求める式に対応する。
（数４７）  J’w（x，y） = （ Si’t’（x，y）・sw ） / （ sq_Sii（x，y）・sq_stt ）
（数４８）  Si’t’（x，y） = F-1xy［ F［I’］・F＊［W・Ｔ’］ ］
（数４９）  sw = A［W］
（数５１）  sq_Sii（x，y） = sqrt（Si’i’（x，y））
（数５２）  Si’i’（x，y） = F-1xy［ F［Ｉ’・Ｉ’］・F＊［W］ ］
（数５３）  sq_stt = sqrt（ A［W・Ｔ’・Ｔ’］ ）
以上の数４６〜５３は、数１〜数９を数４６の置き換えで近似したもので、結果として、数４７〜５３で表される式に基づいて、J’w（x，y）を計算する工程を実装したプログラムを作ると、演算時間のかかる部分は、数４８と数５２の２ケ所となり、数３９〜数４５の演算時間のかかる部分の数４０、数４２、数４４の３ケ所より少なくなり、演算時間が少なくなる効果がある。しかしながら、近似というデメリットも多少あり、上記（１−６）で記載したような、重み付き相関演算の時間がオーダーが変わるほどの利点を持った演算工程の変化とは言い難い。また、数４６の計算も含めると、演算時間の利点はなくなる。ここでは、数４６から数５３の変形も、数１〜数９と同様のものと見なす。
【００６１】
以上より、本実施例１では、数１〜数９の式を採用したが、数３８〜数４５、数４６〜数５３までの変形式も、数１〜数９の式と実質同等であると考えられる。
【００６２】
なお、実施例１では、（１−６）で記したように、数１〜数９の採用により、通常の数２８〜数３３に比し、（１−６）で記したように、高速に重み付の正規化相関を計算できるという利点がある。
（１−１０）  その他２
上記判定処理４０６では、重み付き相関値のうち最も値が大きいものが所定の値以上であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にあったと判定し、所定の値未満であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にないと判定したが、この場合は、参照画像に一つ被写体と同じ形態を持つ部位があるか、または、全くないかという事が分かっている場合である。
【００６３】
その他にも、参照画像にテンプレートにした被写体と同じ形態を持つ部位が複数ある可能性がある場合には、重み付き相関値の値が所定の値よりも大きい位置を全て、テンプレートにした被写体と同じ形態を持つ部位と判定する処理にすることもできる。また、重み付き相関値の値が所定の値よりも大きい位置でも、隣り合う位置は、位置が少しだけずれただけで、同一のものと判断することもでき、このような重複を避けるため、重み付き相関値の値が最も高い位置を探し、その値が所定の値よりも大きければ、その位置にあると判断し、その位置から所定の位置だけ離れた位置は同一のものがズレて検知されるものとして評価値を所定の値より下げ、次に重み付き相関値の値が高い位置を探して、その値が所定の値よりも大きければ、その位置にもあると判断し、同様にその位置から所定の位置だけ離れた位置の重み付き相関値を所定の値より下げ、更にその次に重み付相関位置の高い位置を探して所定の値より大きければ、同様の処理を続け、検知した重み付き相関値が所定の値より低くなるまで行い、このようにして、複数の位置を検知することもできる。
【００６４】
その他、参照画像に必ず被写体と同じ形態を持つ位置が１つだけあることを仮定する場合には、重み付き相関値の値が最も大きい位置をテンプレートにした被写体と同じ形態を持つ参照画像の位置と判定するようにすることもできる。
【００６５】
以上のように、判定処理４０９には対象とする画像や状況によって各種あり、各々、それぞれに合った、所定の判定基準で、評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理となっている。
【００６６】
また、以上では、テンプレートが撮影画像の一部から作られ、テンプレートには被写体の形状があるとしてきたが、テンプレートとして、図形描画ソフトで作成した人工的な形状画像や、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）で作成したデザイン画像から選択した部位をテンプレートとすることもできる。この場合、テンプレートに登録した人工作成画像と似た形状の画像の部位を参照画像から探すことになる。これも、広い意味で、評価値を参照して参照画像にテンプレートと一致した位置があるか判定することに当たる。
【００６７】
以上により、マスキングを含む、重みを付けた正規化相関を高速に計算する方法が提供される。
（２）実施例２
特許文献１では、参照画像に写っている対象物が複数あり、対象物同士が重なるために一部が見えない部位を含む対象物がある場合に、その複数の対象物を精度良く検知することは困難である。
【００６８】
実施例２は、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレートを作成し、上記参照画像処理手段は指定された参照画像を処理して参照画像側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記参照画像側重みとを入力として、上記参照画像の点（x，y）の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x，y）を本明細書記載の数１０〜数１８までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
【００６９】
また、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、プログラムであって、コンピュータに、上記テンプレート作成手段が、指定されたテンプレート元画像からテンプレートを作成するステップと、上記参照画像処理手段が、指定された参照画像を処理して参照画像側重みを作成するステップと、上記評価値計算手段が、上記テンプレートと、上記参照画像側重みとを入力として、上記参照画像の点（x，y）の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x，y）を本明細書記載の数１０〜数１８までの計算手段により求めて評価値とするステップと、上記判定手段が、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、を実行させることを特徴とするプログラムに関する。
（２−１）実施例１との差異の説明
実施例２の構成は実施例１と全く同じである。異なる部分は、計算装置２０４の行う処理が、実施例２は、図６の手順に基づき、実施例１は、図５の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
【００７０】
本発明の実施例２は、本発明の実施例１におけるステップ５０２がステップ４０２に変わり、ステップ５０４がステップ６０４に変わり、ステップ５０５がステップ６０５に変わったこととなった以外は、実施例１と同じである。
【００７１】
ステップ４０２の説明は上記（１−７）で行ったので、ステップ６０４とステップ６０５の処理についてのみ説明する。
（２−２）ステップ６０４
上記（１−３）で説明した機能の他、ユーザーは、処理ボタン１００４を押すと、計算装置２０４は、以下のステップ６０４の一部の機能を行うプログラムを実行し、パラメータ入力部１００５の所定の位置に入力したパラメータ値を参照することにより、画像側の重み画像Uが作成される。ユーザーが表示切替ボタン１００６を押すと、計算装置２０４は、以下のステップ６０４の一部の機能を行うプログラムを実行し、処理前の参照画像、処理後の参照画像、重み画像がそれぞれ順番に表示される。重み画像の次は処理前の参照画像が表示される。
【００７２】
計算装置２０４は、重み画像Uに対しては、参照画像の中で誤差の大きい部分を検知する処理を行う。例えば、角部において誤差が大きいならば角部を検知する処理を行い、所定の形態の近傍で誤差が大きいならばその所定の形態を検知する処理を行ってその近傍の重みWUの値を０とする。
【００７３】
計算装置２０４は、所定の形態を検知する処理において、所定の形態をテンプレートとして、上記実施例１に記載のテンプレートマッチングを行うことで所定の形態を検知することができる。
【００７４】
なお、重要な部分の形態の重みを大きくしたい場合は、その重要な部分の形態を検知し、その部分の重みを他の部分より大きくすることもできる。
（２−３）ステップ６０５
ステップ６０５がステップ５０５と異なる箇所は、参照画像側の重み付き相関の式を参照して、参照画像の重み付き相関を求めることにある。即ち、実施例１では、上記記載した数１〜数９を用いたが、実施例２では、以下の数１０〜数１８を用いる。
（数１０）  Ju（x，y） = （ Sit（x，y）・Su（x，y） - Si（x，y）・St（I，j） ）
/ （ sq_Sii（x，y）・sq_Stt（x，y） ）
ただし、Ju（x，y）は、参照画像（処理をした参照画像）Iの点（x，y）の位置にテンプレートTの左端を重ねた場合の、両者の重みU付き正規化相関値である。その他の各項は、以下の数１１〜１８で求められる値である。数１０の分母が０に近い所定の範囲内にある場合は、Ju（x，y）の値を、所定の値、例えば０とする。
（数１１）  Sit（x，y） = F-1xy［ F［U・I］・F＊［T］ ］
ただし、Uは参照側の重みでIと同じ縦横のサイズを持ち、Iの０詰めした部位に相当するUの値も０である。
（数１２）  Su（x，y） = Bxy［U］
ただし、B［］は、テンプレートサイズを加算長とするバタフライ演算で、Bxy［］は、バタフライ演算してできた画像の点（x，y）の値を取ることを意味する。
（数１３）  Si（x，y） = Bxy［U・I］
（数１４）  St（x，y） = F-1xy［ F［U］・F＊［T］ ］
（数１５）  sq_Sii（x，y） = sqrt（ Sii（x，y）・Su（x，y） - Si（x，y）・Si（x，y） ）
ただし、Sii（x，y）は数１６により求められる。
（数１６）  Sii（x，y） = Bxy［ U・I・I ］
（数１７）  sq_Stt（x，y） = sqrt（ Stt（x，y）・Su（x，y） - St（x，y）・St（x，y） ）
ただし、Stt（x，y）は数９により求められる。
（数１８）  Stt（x，y） = F-1xy［ F［U］・F＊［T・T］ ］
なお、上記（１−８）で説明したように、数１０〜数１８の式を数３８、数４６に基づいて変形または近似した式も、演算時間のオーダーが変わらないため、ここでは数１０〜数１８と同様とみなす。
（２−４）実施例２による効果
実施例２では、参照画像側に重みUを付けることができ、画像の形態に応じ、あらかじめ誤差が大きくなりそうな部分の重みを０にして評価したり、逆に、画像上の重要な部分の形態の重みを大きくして評価することができるという利点がある。
【００７５】
このように、対象物が重なって写っている場合でも、複数の対象物を精度良く検知する方法を提供し、実施例１の方法と共に高速に実行できるようにすることができる。
（３）実施例３
実施例３は、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成し、上記参照画像処理手段は指定された参照画像を処理して参照画像側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点（x，y）の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x，y）を本明細書記載の数１９〜数２７までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
【００７６】
また、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、プログラムであって、コンピュータに、上記テンプレート作成手段が、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成するステップと、上記参照画像処理手段が、指定された参照画像を処理して参照画像側重みを作成するステップと、上記評価値計算手段が、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点（x，y）の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw（x，y）を本明細書記載の数１９〜数２７までの計算手段により求めて評価値とするステップと、上記判定手段が、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、を実行させることを特徴とするプログラムに関する。
（３−１）実施例１との差異の説明
実施例３の構成は実施例１と全く同じである。異なる部分は、計算装置２０４の行う処理が、実施例３は、図７の手順に基づき、実施例１は、図５の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
【００７７】
本発明の実施例３は、本発明の実施例１におけるステップ５０４がステップ７０４に変わり、ステップ５０５がステップ７０５に変わったこと以外は、実施例１と同じである。
【００７８】
以下、ステップ７０４とステップ７０５の処理についてのみ説明する。
（３−２）ステップ７０４
上記（１−３）で説明した機能の他、ユーザーが処理ボタン１００４を押すと、計算装置２０４は、以下のステップ７０４の一部の機能を行うプログラムを実行し、パラメータ入力部１００５の所定の位置に入力したパラメータ値を参照することにより、重み画像Uも作成される。ユーザーが表示切替ボタン１００６を押すと、計算装置２０４は、以下のステップ７０４の一部の機能を行うプログラムを実行し、処理前の参照画像、処理後の参照画像、重み画像がそれぞれ順番に表示される。重み画像の次は処理前の参照画像が表示される。
【００７９】
計算装置２０４は、重み画像に対しては、参照画像の中で誤差の大きい部分を検知する処理を行う。例えば、角部において誤差が大きいならば、角部を検知する処理を行い、所定の形態の近傍で誤差が大きいならばその所定の形態を検知する処理を行ってその近傍の重みW２の値を０とする。
【００８０】
計算装置２０４は、所定の形態を検知する処理において、所定の形態をテンプレートとして、上記実施例１に記載のテンプレートマッチングを行うことで所定の形態を検知することができる。
【００８１】
なお、重要な部分の形態の重みを大きくしたい場合は、その重要な部分の形態を検知し、その部分の重みを他の部分より大きくすることもできる。
【００８２】
実施例２のステップ６０４の処理と異なる箇所は、実施例２ではテンプレート側に重みがなく、一方で実施例３ではテンプレート側にも重みがあるので、テンプレートの形態部のエッジ周辺を重み０にする場合に、実施例３のステップ７０４で参照画像のエッジを鋭くする処理やエッジ強調をする処理などを追加できる点である。しかし、実施例３においてこの実施例２との差異を必ずしも設ける必要はない。
（３−３）ステップ７０５
ステップ７０５がステップ５０５と異なる箇所は、参照画像側の重み付き相関の式を参照して、参照画像の重み付き相関を求めることにある。即ち、実施例１では、上記実施例１で記載した数１〜数９を用いたが、実施例３では、以下の数１９〜数２７を用いる。
（数１９）  Juw（x，y） = （ Sit（x，y）・Suw（x，y） - Si（x，y）・St（I，j） ）
/ （ sq_Sii（x，y）・sq_Stt（x，y） ）
ただし、Juw（x，y）は、参照画像（処理をした参照画像）Iの点（x，y）の位置にテンプレートTの左端を重ねた場合の、両者の重みUとW付き正規化相関値である。その他の各項は、以下の数２０〜２７で求められる値である。数１９の分母が０に近い所定の範囲内にある場合は、Juw（x，y）の値を、所定の値、例えば０とする。
（数２０）  Sit（x，y） = F-1xy［ F［U・I］・F＊［W・T］ ］
ただし、Uは参照側の重みでIと同じ縦横のサイズを持ち、Iの０詰めした部位に相当するUの値も０にしたもの、Wはテンプレート側の重みでテンプレートと同様に０詰めしてIと同じ画像サイズにしたものである。
（数２１）  Suw（x，y） = F-1xy［ F［U］・F＊［W］ ］
（数２２）  Si（x，y） = F-1xy［ F［U・I］・F＊［W］ ］
（数２３）  St（x，y） = F-1xy［ F［U］・F＊［W・T］ ］
（数２４）  sq_Sii（x，y） = sqrt（ Sii（x，y）・Suw（x，y） - Si（x，y）・Si（x，y） ）
ただし、Sii（x，y）は数２５により求められる。
（数２５）  Sii（x，y） = F-1xy［ F［U・I・I］・F＊［W］ ］
（数２６）  sq_Stt（x，y） = sqrt（ Stt（x，y）・Suw（x，y） - St（x，y）・St（x，y） ）
ただし、Stt（x，y）は数２７により求められる。
（数２７）  Stt（x，y） = F-1xy［ F［U］・F＊［W・T・T］ ］
なお、上記（１−８）で説明したように、数１９〜数２７の式を数３８、数４６に基づいて変形または近似した式も、演算時間のオーダーが変わらないため、ここでは数１９〜数２７と同様とみなす。
（３−４）実施例３による効果
実施例３では、テンプレート側と参照画像側の双方に重みを付けることができ、テンプレートに登録した形態と参照画像の形態が少し変形している場合に、テンプレートのエッジ周辺を重み０とすることにより、形態の変化もある程度許容し、しかも、あらかじめ誤差が大きくなりそうな部分の重みを０にして評価したり、逆に、重要な部分の形態の重みを大きくして評価することができるいう利点がある。
（２）  実施例４
（４−１）実施例３との差異の説明
実施例４の構成は実施例３と全く同じである。異なる部分は、計算装置２０４の行う処理が、実施例４は、図８の手順に基づき、実施例３は、図７の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
【００８３】
本発明の実施例４では、本発明の実施例３を基礎として、ステップ５０２の代わりにステップ８０２を用い、ステップ４０６の代わりにステップ８０６を用いる。以下、本実施例４に固有の処理であるステップ８０２とステップ８０６についてのみ説明する。
（４−２）ステップ８０２
ステップ８０２では、ステップ５０２の処理と同様にユーザーがそれぞれのボタンを押すことにより、計算装置２０４は、対応したプログラムを実行し、テンプレートが登録され、テンプレート側の重みｗが作成される。更に、計算装置２０４は、以下のステップ８０２の一部の機能を行うプログラムを実行し、パラメータ入力部９０９の所定の部分に入力した数値を元にテンプレートの形態部分が抽出される。抽出された形態は、画像切り出し部９１２の枠内に表示される。抽出の仕方には、所定の閾値以上の部分を抽出すること、エッジ検出して閾値以上のエッジに囲まれた領域を抽出すること、その他一般の抽出処理を用いることが含まれる。このようにして、テンプレートに登録した形態部分を抽出した、抽出画像を生成することができる。
（４−３）ステップ８０６
ステップ８０６：  本ステップは、ステップ７０５でテンプレート側と参照画像側の双方に重みを付けた相関処理が行われ、テンプレートが各々の位置にある時の重み付き相関値が全て求まった後に行われる。計算装置２０４は、以下のステップ８０６の機能を行うプログラムを実行し、或る位置で重み付き相関値が所定の値よりも大きい場合は、テンプレートに登録した形態がその位置に存在するものとみなして、ステップ８０２で作成した抽出画像の領域分だけ、その位置の参照画像側の重みUの値を０とする。重み付き相関値が所定の値より大きな部分の全てについて、上記のステップ８０２で作成した抽出画像の領域分だけ、その位置の参照画像側の重みUの値を０にする処理を行い、ステップ７０５に戻る。
【００８４】
重み付き相関値が所定の値より大きい場所がない場合は、所定の形態がないとみなしてステップ４０７に進む。
（４−４）画像例
以上の処理について、参照画像の例（図１１）、参照画像側の重みUが追加された様子を示したイメージ図（図１２）を用いて図、その概要を説明する。
【００８５】
最初に、図１１で示すように、重なった図形がある参照画像１１００があるとする。上の図形１１０１と下の図形１１０２は同じ図形であり、テンプレート登録画像１１０３はこれらの図形と同じ形状である。この例の抽出画像の領域１１０４は、この図形を包む少し大きめの部分である。以上は、ステップ４０１、８０２、４０３，７０４の処理で準備される。このとき、ステップ７０５を初めて行った最初のマッチング処理で、評価値が作られ、ステップ８０６で上の図形１１０１が検知される。そして、検知された位置の抽出画像の領域１２０１分だけ、検知された位置に対応する参照画像側の重みUの値が０になる。再度ステップ７０５の処理を行い、再度マッチングすると、評価値が計算され、ステップ８０６で、下の図形１１０２が検知される。
【００８６】
以上のように、重なった図形も、順次検知することができる。
（４−５）実施例４による効果
本実施例４によると、テンプレートに登録した形態が参照画像内に重なって複数存在する場合でも、最初のマッチングで上側の形態を認識し、次いでその部分の参照画像側の重みUの値を０にして無評価とし、次のマッチングで下側の形態を認識し、次いでその部分の重みを０にして無評価とする処理を、認識される形態がなくなるまで続けることによって、互いに重なり合う形態を全て認識することができる。
【００８７】
実施例３では、一度しかマッチングしなかったため、重なり合う形態の上の部分しか認識できなかった。実施例４では、このように、マッチングして検知して部位の参照側の重みUの値を０にして、再度マッチングすることにより、重なった下の部分の形態も認識することができるようになる。
（４−６）その他１
本実施例４の処理では、形態のエッジ部をテンプレートとして登録し、エッジ近傍の重みを０にしたテンプレート側の重みを作り、形態のエッジ部で囲われた領域とその所定の周辺を形態の抽出画像領域とすることができる。その場合、参照画像に対してもエッジを取得する処理をして、最初の参照画像側の重みがなく全て１の状態でテンプレート側と参照画像側の重み付きマッチングを行い、所定の閾値より高い重み付き相関値を持つ位置を検知し、その位置に対応した形態の抽出画像の領域分だけ、参照画像側の重みを０にする。次いで再度テンプレート側と参照画像側の重み付きマッチングを行い、所定の閾値より高い重み付き相関値を持つ位置を検知し、更に、その位置に対応した形態の抽出画像の領域分だけ、参照画像側の重みを０にする。以上の処理を所定の閾値より高い重み付き相関値を持つ位置がなくなるまで続ける。これにより、検知すべき形態部のエッジが多少変形していても、当該形態を正しく検知できるという利点がある処理となる。
（４−７）その他２
本発明第４の実施例では、テンプレート側にも重みを付けた例を記載したが、
テンプレート側の重みを付けず、参照側の重みのみ付け、マッチングする毎に、
上記のように、所定の閾値より高い重み付き相関値を持つ位置の参照側の重みを
変更して再度マッチングして行くことができる。
【００８８】
また、所定の閾値より高い重み付き相関値を持つ位置だけでなく、所定の
距離を定め、その周辺位置の参照側の重みも０に変更しても構わない。
【００８９】
その他、隣り合う位置が、所定の閾値より高い重み付き相関値を持つ場合、重み付き相関値が高い方が正解位置にあり、低い方がズレた位置にあると見なすこともできる。例えば、重み付き相関値が最も高い位置を探し、その値が所定の値より高い場合は、その位置とその位置から所定の距離離れた位置の評価値を所定の値より低く変更し、次に評価値の高い位置を探し、その値が所定の閾値より高い場合は、更に、その位置とその位置から所定の距離離れた位置の評価値を所定の値より低く変更し、順次、評価値が所定の閾値より低くなるまで、これを繰り返して、位置検知することができる。更に、このようにして検知した各位置とそれらの位置から所定の距離離れた位置の参照側の重みを０にすることもできる。
（５）実施例５
（５−１）実施例４との相違点
実施例５の構成は実施例４と同じである。手順全体を示すフロー図も実施例４と同じ図８となる。実施例４と異なる部分は、図８のステップ８０２と、ステップ７０５、ステップ８０６で行う処理の中身である。本発明の実施例５では、図１３の参照画像１３００に示すように、検知したい対象物は、同一の対象物が複数、回転して重なったものであることを前提とする。
（５−２）実施例５のステップ８０２での処理
テンプレート元画像は、検知したい対象物が１つ映った画像で、その画像から、対象物を含む部分画像を指定してテンプレート０°画像１３０１とテンプレート側の０°重み１３０２、抽出画像の０°画像１３０３を作る。
【００９０】
ここでは、テンプレート０°画像１３０１は、テンプレート画像のエッジを検知した２値画像とする。エッジの検知の仕方は各種あり、例えば、原画像から７＊７画素の平均画像を引き、所定の閾値より高い値を持った領域を１とし、それ以外を０とすることでもエッジ検知ができる。図１３のテンプレート０°画像１３０１に図示した例では、画像枠から内部の白い部分が０の値を持ち、黒い部分が１の値を持つ２値の画像である。
【００９１】
テンプレート側の０°重み１３０２も２値画像である。テンプレート０°画像１３０１の１の値を持つ部分の位置に当たる部分の重みを１とし、その周囲の所定画素、例えば５画素迄を重み０の無評価域とし、更にその外側の背景部を重み１として作成する。図１３のテンプレート側の０°重み１３０２に図示した例では、図の黒い部分が重み１、白い部分が重み０である。
【００９２】
抽出画像の０°画像１３０３も２値画像である。テンプレート０°画像１３０１の１の値を持つ部分の位置に当たる部分と、その周囲の所定画素、例えば５画素迄を０とし、更に、その内部も０の値とし、その他を１とする。図１３の抽出画像の０°画像１３０３に図示した例では、図の黒い部分が１、白い部分が０である。これは、検知したい対象物を所定の幅を持って含んだ領域が０となり、その他の領域が１となっていることを示す。
【００９３】
以上のテンプレート０°画像１３０１とテンプレート側の０°重み１３０２、抽出画像の０°画像１３０３を参照して、更に、形態部を回転させた画像を複数作成する。回転は、等ステップ毎に１周する前まで行う。例えば、１０°ステップで３５０°迄回転したものをそれぞれ作成する。図１４に、回転してできた各画像の一部を例示する。１０°回転したものは、テンプレート１０°回転画像１４１１とテンプレート側の１０°回転重み１４１２、抽出画像の１０°回転画像１４１３であり、２０°回転したものは、テンプレート２０°回転画像１４２１とテンプレート側の２０°回転重み１４２２、抽出画像の２０°回転画像１４２３である。このように、３０°、４０°、………、３５０°と、全てのステップについて、それぞれの画像を作成する。なお、形態部を回転させても画像の外側に形態が出ないように、テンプレート０°画像１３０１とテンプレート側の０°重み１３０２、抽出画像の０°画像１３０３の画像サイズは大きく取っておく必要がある。
（５−３）実施例５でのステップ７０５の処理
テンプレート０°画像１３０１とテンプレート側の０°重み、参照画像側の重み、参照画像１３００を用い、数１９〜２７に基づいた重み付きマッチングを行い、０°角度の時の評価値画像を得る。評価値画像とは、画像上の各点の位置に、テンプレート画像の左隅の点が乗った時に参照画像の対応領域との間でマッチングをした結果の評価値、例えば正規化相関値を画像として表現したものである。その他、テンプレート１０°回転画像１４１１とテンプレート側の１０°重み１４１２、参照画像側の重み、参照画像１３００を用いて、同様のマッチングを行うことにより１０°回転の評価値画像を得たり、テンプレート２０°回転画像１４２１とテンプレート側の２０°重み１４２２、参照画像側の重み、参照画像１３００を用いて同様のマッチングを行うことにより２０°回転の評価画像を得るなど、全ての回転角度のテンプレート画像とテンプレート側の重み、参照画像側の重みを用いて、同様のマッチングを行うことにより全ての回転角度の評価値画像を作成する。
（５−４）実施例５でのステップ８０６の処理
全ての回転角度の評価値画像を基に、各点の最大評価値を含む最大評価値画像と、その最大評価値に対応する角度を記した最大評価値角度画像を作成する。最大評価値画像の中から最大評価値が最も大きい点を探し、その点の値が所定の閾値以上であれば、検知したい対象物がその点の位置にあると判定する。正確には、その点の位置の最大評価値角度画像から回転角度を求め、その点の位置を左上として、その回転角度のテンプレート画像の形態と重なる位置に、検知したい対象物があると判定する。検知したい対象物があると判定したら、その点の位置の対象画像側の重みを変更する。参照画像側の重みの変更は、検知した位置を左上に、検知した回転角度の抽出画像を参照画像側の重みに重ね、重なった位置の双方の値を掛けた値を新たな参照画像側の重みにすることもできる。この処理で、抽出画像において、検知したい対象物を含む所定の幅の領域の重みが０となり、他の領域の重みは１となるので、結果としてできた参照画像側の重みのうち、検知した対象物を含む所定の幅に対応する重みが０に変更されたことになる。
【００９４】
以上の処理により検知したい対象物があると判定した場合は、検知した位置を含む所定の周辺位置にある最大評価値画像の値を、先の検知の判断に用いた所定の閾値より小さい値、例えば−１に変更する。そして、更に、変更を受けた最大評価値画像の中で最大評価値が最も高い点を探し、その値が所定の閾値以上であれば、対象物がその点の位置にあると判断し、同様に、参照画像側の重みと最大評価値画像の値を変更する。更に、変更を受けた最大評価値の中で最も高い値が所定の閾値より低くなるまで、以上の操作を繰り返す。
【００９５】
このようにして、検知した位置を記録し、後でその位置を参照できるようにする。新たに検知した位置が追加されなくなるまで、このステップを繰り返す。すなわち、最大評価値画像を作成した最初の段階で、その最大評価値画像に含まれる最大評価値の最大値が閾値より低い場合は、もはや検知すべき位置がなくなったものとして、検知処理は終了し、ステップ４０７に進む。
（５−５）参照画像側の重みの初期値について
参照画像側の重みは、最初にステップ７０４で、全ての値を１に設定しても良いし、あらかじめ評価したくない位置を見つけて、その場所の重み値を０にするなど、参照画像の個性に応じて最初の重み値を定めることができる。最初にマッチング処理７０５を行うとき、参照画像側の重みが全ての点で同じである場合は、数１９〜２７の式に基づいてマッチング処理を行う必要はなく、参照画像側の重みがない場合の数１〜数９までの式に基づいてマッチングによる評価値を出すことがでる。
（５−６）参照画像側の重みの総量が少ない場合の不安定性の回避について
参照画像側の重みをテンプレートサイズ分だけ切り出した部分画像で、参照画像側の重みの総量が小さい場合は、評価する部分が少なく、結果が不安定であることを意味する。この不安定性を回避するため、ステップ７０５では、マッチングして評価値を出した後に、参照画像側の重みをテンプレートサイズ分切り出したときの重みの総量が所定の値より小さい場合は、その評価値を、検知の際に用いる閾値より低い値、例えば−１に変更し、その位置で検知されないようにする。
（５−７）回転角度のステップについて
ステップ８０２で作成する回転角度のステップは、検知したい形態を回転させた画像と回転前のテンプレート画像について、回転させる前のテンプレート側の重みを付けた重み付き相関を取り、その値が所定の値より低くなる最大の回転角度に設定することができる。また、回転対称となる角度がなければ、設定したステップで、３６０°以上とならない角度まで回転させた画像を各々作成する必要があるが、回転対称の角度がある場合は、その回転対称の角度を超えない角度まで、回転させた画像を各々作成する。例えば、１８０°対称の画像であれば、設定したステップ幅で、１８０°の手前までそれぞれ回転した画像を作成するだけで済む。
（５−８）その他
以上では、複数用意したテンプレートと参照画像を原画サイズのまま重み付きマッチングをして来た。この他に、一旦、画像サイズを小さくし、ステップ幅も間引いて大まかにテンプレートマッチングをして、粗く回転角度（候補角度）を検知し、その後、候補角度の周辺の角度で正確に回転角度を求める方法もある。正確に回転角度を求める具体的な方法として、例えば、元の大きなサイズで候補角度から間引いた角度までの周辺位置を含めた小領域の正規化相関を求め、その中で評価値の最も高い位置と回転角度を求めるようにすることもできる。
（５−９）その他２
以上では、テンプレート側の重みのある場合を想定したが、テンプレート側の重みを設定しない場合（重みが１の場合を含める）もある。この時、参照画像側の重みがある場合は、数１０〜１８までの式に基づいたマッチングを行い、参照画像側の重みがない場合（重みが１の場合も含める）は、数３４〜３７までの式に基づいたマッチングを行うことができる。このように、テンプレート側の重みと参照画像の重みの設定の仕方によって、以下のように、マッチングの計算式を変えて計算することができる。
・テンプレート側の重みの設定がなく（全て同じ値に設定した場合も含む）、参照画像側の重みの設定がない（全て同じ値に設定した場合も含む）場合は、数３４〜３７までを用いてマッチングを行う。
・テンプレート側の重みの設定があり（全て同じ値に設定した場合は含まない）、参照画像側の重みの設定がない（全て同じ値に設定した場合も含む）場合は、数１〜９までを用いてマッチングを行う。
・テンプレート側の重みの設定がなく（全て同じ値に設定した場合も含む）、参照画像側の重みの設定がある（全て同じ値に設定した場合も含まない）場合は、数１０〜１８までを用いてマッチングを行う。
・テンプレート側の重みの設定があり（全て同じ値に設定した場合も含まない）、参照画像側の重みの設定がある（全て同じ値に設定した場合も含まない）場合は、数１９〜２７までを用いてマッチングを行う。
【００９６】
なお、参照画像側の重みの設定がない場合は、参照画像側の重みを変更する際は、全て同じ値に設定していたもの、例えば全て１の値であったものとして、重みを変更する。
（５−１０）その他３
以上では、同一物が重なった場合を想定した。同一物だけでなく、複数の形態を持つ物体が重なった場合も、それらの形態ごとにテンプレートを用意して、上記の角度毎のテンプレートの代わりに、形態の異なる複数のテンプレートがあるとして、上記と同様の処理を行って、一致する形態と同じ形態を持つ物体を検知することができる。
【００９７】
また、複数の形態を持つ物体が回転を伴う場合は、同様に、複数の形態の０°のテンプレートをそれぞれ用意するだけでなく、上記と同様に、それぞれの形態毎に所定の回転角度ごとに形態を回転させたテンプレートを用意し、形態と回転角度の異なるテンプレート全てについて、上記と同様に複数のテンプレートがあるとして、上記と同様に複数の形態の回転まで含めて検知することができる。
【００９８】
なお、形態が異なる場合は、判定時の所定の閾値も、形態毎に変更することが好ましい。
（５−１１）その他４
以上では、テンプレートと参照画像のマッチング処理は、重み付きの正規化相関を評価値計算手段として用いていたが、重み付き正規化相関だけではなく、重み付きの正規化相関の式の分子の項（重み付きの差の２乗和）など、他の評価指標を用いることができる。その他、マッチング処理の評価値計算手段として一般化ハフ変換など、特徴点を検知して比較評価計算に用いる方法や、輪郭をモデル化して一致しているか比較評価計算をする方法を用いた場合でも、同様のことができる。すなわち、最初に、マッチングにより重なった形態の上の形態を検知し、検知した形態部分の参照画像側の重みを０にして（検知した形態部分の参照画像側の場所をマスクして）、再度、重み付き（マスク付き）の検知をして、重なった下にある形態を順次検知して行くことができる。
（６）実施例６
実施例６では、周期的なパターンを持った撮影画像の場合に、そのパターンを誤認する確率が低くなるように、テンプレート側の重みを作る方法を提供する。
（６−１）構成、手順概要
実施例６では、図１５のようなテンプレート元画像で、周期的な形態を持つ場合を想定する。このような形態では、テンプレート元画像の端の画素の画素値と当該端の画素の隣にあるテンプレート元画像以外の画素の画素値とが大きく異なり、テンプレート元画像内の画素の画素値とその画素から１周期ずれた場所にあるテンプレート元画像内の画素の画素値の差は比較的小さい。そこで、テンプレート元画像の端の画素について、１周期ずれた場所との評価値の差が大きくなるように、その重みを大きくする。
【００９９】
実施例６では、以上のように、テンプレート側の重みの付け方が周期的な形態に対応したものになるだけで、その他は、実施例１や実施例３と同じである。従って、構成や手順の概要は実施例１や実施例３と同じであり、以後記載するように、テンプレート側の重みの付け方のみが周期的な形態に特化されている。
（６−２）テンプレート側の重みの作り方の概要
図１５の周期的なテンプレート元画像１５００から、周期的な形態の角の特徴ある部分を選択して周期的な形態のテンプレート画像１５０１を作成する。テンプレート画像は、テンプレート元画像からエッジ抽出を行い、指定場所のエッジ抽出画像を抜き出したものとすることもできる。
【０１００】
テンプレート側の重みは、周期的なテンプレート元画像１５００から周期を持つ方向と１周期分の長さを検知し、１周期ずれたものとの差を取って作成する。図１５の場合、周期を持つ方向は左右と上下の２方向あり、１周期ずれたものも、それぞれ反対方向もあるので、全部で４つの１周期ずれたものと比較を行って重みを作成する。図１６にその様子を図示する。
【０１０１】
テンプレート画像１５０１に対し、形態が１周期右にずれた画像１６１１、形態が１周期左にずれた画像１６１２、形態が１周期下にずれた画像１６２１、形態が１周期上にずれた画像１６２２を取り、それぞれ、テンプレート画像と差を取って、差画像１６１３、１６１４、１６２３、１６２４を作る。更にこれらの差画像のうち２つの差画像を重ねた画像１６１５、１６２５を作り、得られた画像１６１５、１６２５を更に合成して合成画像１６０２を作る。合成画像１６０２の作成においては、単に２つを重ねた画像１６１５と１６２５を加算しても良い。
【０１０２】
合成画像１６０２の各画素の値の絶対値を取り、それが所定の大きさを超える時にその位置の重みをＡとし、それ以外を１としてテンプレート側の重みを作成する。Ａの値は、１よりも大きく、例えば２、３のような所定の値に設定しても良いし、重みを付与した結果を見て適当に調整してもよい。
【０１０３】
また、合成画像１６０２中の各画素値の絶対値を取った画像について、膨張処理や平滑化処理をしてから、上と同様に、画素値が所定の大きさを超える場合にその位置の重みをＡとし、それ以外を１としてテンプレート側の重みを作成することもできる。なお、膨張処理は、所定の近傍の画素内で最も大きな値を持つ値をその画素の新たな画素値とする処理で、平滑化処理は、所定の近傍画素内での平均値やそれに類する値を新たな画素値とする処理である。
（６−３）周期の見つけ方（その１）
テンプレート元画像から、周期的な方向と１周期の長さを求める方法は各種ある。一例を以下に記す。
【０１０４】
周期的なテンプレート元画像１５００をフーリエ変換すると、フーリエ変換画像にピークが現れる。フーリエ変換の０周波数（以後原点と呼ぶ）は除き、フーリエ変換値の最も大きな点を求める。原点からから求めた点までの方向と９０°異なる方向が、周期的な方向に相当し、原点から求めた点までの距離が１周期の長さに相当する。例えば、その点が、原点から見て（ａ，ｂ）の点であれば、周期は（ｂ，−ａ）の方向で１周期の長さは√（ａ＊ａ＋ｂ＊ｂ）である。以上で求めた方向を除き、次にフーリエ変換値の大きな点が、別の周期的な方向と周期の長さを与える。すなわち、その点が原点から見て（ｃ，ｄ）の点であれば、（ｄ，−ｃ）の方向で、１周期の長さは√（ｃ＊ｃ＋ｄ＊ｄ）となる。
（６−４）周期の見つけ方（その２）
テンプレート元画像から、周期的な方向と１周期の長さを求める別の方法は、テンプレート元画像とテンプレート画像の正規化相関のテンプレートマッチングを利用する方法である。この場合、テンプレート元画像を参照画像としてテンプレートマッチングを行う。得られた正規化相関値の最も高い場所は、テンプレートを取った場所で、その位置を（ｅ，ｆ）とする。その位置から所定の長さの範囲にある点は除き、２番目に大きな値を持つ点の位置を（ｇ，ｈ）とすると、周期的な方向は、（ｇ−ｅ，ｈ−ｆ）で、１周期の長さは、√（（ｇ−ｅ）＊（ｇ−ｅ）＋（ｈ−ｆ）＊（ｈ−ｆ））である。（ｅ，ｆ）から（ｇ，ｈ）を望む方向に線を引き、反対側も線を伸ばし、その線から所定の幅と所定の角度離れた点を除き、次に大きな値を持つ点の位置を（ｉ，ｊ）とする。別の周期的な方向は、（ｉ−ｅ，ｊ−ｆ）で、１周期の長さは、√（（ｉ−ｅ）＊（ｉ−ｅ）＋（ｊ−ｆ）＊（ｊ−ｆ））となる。
【０１０５】
このように、周期的なパターンを持った撮影画像の場合に、そのパターンを誤認する確率が低くなるように、テンプレート側の重みを作る方法を提供することができる。
（７）実施例７
（７−１）構成、手順概要
実施例７では、実施例６と同様に、図１５のような周期的な形態を持つテンプレート元画像を想定する。手順の概要は、テンプレート側に重みを付ける具体的な方法が異なる以外は実施例６と同じである。
（７−２）テンプレート側の重みの設定方法
実施例６では、周期的なテンプレート元画像１５００の周期的な方向と１周期の距離を検知してテンプレート側の重みを作成していたが、実施例７では、周期や１周期の距離を具体的に求めず、大まかに周期的な形態の端の部分を検知してその位置のテンプレート側の重みを重くすることを行う。
【０１０６】
初めに、テンプレート元画像１５００の膨張処理を行って、周期的な構造物が見えない程度に膨らませる。膨張処理は、着目点の所望の近傍にある画素の画素値の最大値をその着目点の新たな画素値に変更する処理である。実際にどの範囲程度の近傍画素に対してこの処理を行うかについては、結果を見て決めることができる。一度に見る近傍画素を増やす代わりに、例えば、３＊３の近傍画素の中で最大値を持つ値を中心画素の値とする処理を複数回行い、回数の制御を行うことにより膨張距離の制御を行うことができる。図１７に膨張処理を適度に行った後の画像１７００を例示する。
【０１０７】
次に、膨張処理を適度に行った後の画像１７００と、膨張処理を適度に行った画像１７００を適度な距離で平滑化した画像との差を取り、所望の値より大きな部分を１、それよりも小さな部分を０にした大域的なエッジ画像１８００（図１８）を作成する。上記適度な距離は、エッジから幅が±１周期分程度ある大域的なエッジが取れる距離で、例えば、先の膨張処理を行った際の膨張距離の片側幅程度に設定することができる。
【０１０８】
以上の処理で、大域的なエッジ画像１８００を作成したら、大域的なエッジ画像からテンプレート選択位置の画像１８０１を抜き出し、この画像の画素値が１の時、対応する位置のテンプレート側の重みをＡとし、この画像の画素値が０の時、対応する位置のテンプレート側の重みを１にすることができる。重みＡは、実施例６と同様に、所定の値にすることや、結果を見て適時変更することなどもできる。
（７−３）その他
以上の例では、大域的なエッジをテンプレート元画像１５００から作成し、テンプレート側の重みを作成したが、この他にも、テンプレート側の重みは変えずに、参照画像側の重みを変えるようにすることができる。例えば、参照画像を適当な膨張距離を持って膨張させ、適当な平滑化距離を持って平滑化した画像を当該膨張させた参照画像から差し引いて得られた差画像の所定の閾値よりも大きな値を持つ参照画像内の位置の重みをＡ、その他の重みを１にすることができる。
【０１０９】
この場合、テンプレート側の重みがない場合（全て同じ値の場合を含む）は、数１０〜１８までの式に基づいたマッチングを行い、テンプレート側の重みがある場合は、数１９〜２７までの式に基づいたマッチングを行う。このように、テンプレート側の重み、参照画像側の重みの有無を見て、重みのない場合（全て同じ値の場合を含む）は、その重みがない時のマッチングの式でマッチングを行うことができる。
（７−４）その他２
以上の例では、テンプレート元画像が周期的な形態を持つ場合を想定したが、周期的な形態でなくても、適当な幅を持って大域的なエッジを検出し、大域的なエッジの部分の重みを重くしたテンプレート側の重みを作成することができる。この場合は、似た形態があった場合、違いが少し強調された評価値を持つことが期待される。
【０１１０】
また、テンプレートがエッジと背景を分けた２値画像の場合、以上の大域的なエッジの部分の重みを重くしたテンプレート側の重みについて、エッジの所定の周辺位置にある重みを０に変更した無評価部位付きの大域的なテンプレート側の重みを作成することもできる。
【符号の説明】
【０１１１】
１０１…表示画面、１０２…テンプレート表示部、１０３…テンプレート側重み表示部、１０４…参照画像表示部、１０５…テンプレートボタン、１０６…画像ボタン、１０７…マッチングボタン、１０８…終了ボタン、１０９…検知位置、２０１…対象物、２０２…デジタルカメラ、２０３…情報伝達手段、２０４…計算装置、２０５…入力装置、２０６…表示装置、３０１…ＧＵＩ手段、３０２…作成手段、３０３…参照画像処理手段、３０４…評価値計算手段、３０５…一致判断手段、４０１…テンプレート元画像の入力、４０２…テンプレート作成処理、４０３…参照画像の入力、４０４…参照画像の処理、４０５…マッチング処理、４０６…判定処理、４０７…マッチング情報を活用した所望の処理、５０２…テンプレートおよび重みの作成処理、５０４…参照画像の処理（１）、５０５…マッチング処理（１）、６０４…参照画像の処理および重み作成処理（０）、６０５…マッチング処理（２）、７０４…参照画像の処理および重み作成（１）、７０５…マッチング処理（３）８０２…テンプレート・重み・形態抽出処理、８０６…判定処理および再マッチングするか判定する処理、９０２…テンプレート元画像表示部、９０３…切り出し画像表示部、９０４…テンプレート表示部、９０５…テンプレート側の重み表示部、９０６…画像入力ボタン、９０７…テンプレート入力、９０８…作成ボタン、９０９…パラメータ入力部、９１０…保存ボタン、９１１…戻りボタン、１００２…画像表示部、１００３…画像入力ボタン、１００４…処理ボタン、１００５…パラメータ入力部、１００６…表示切替ボタン、１００７…戻りボタン、１１００…重なった図形がある参照画像、１１０１…上の図形、１１０２…下の図形、１１０３…テンプレート登録画像例、１１０４…抽出画像の領域例、１２０１…検知された位置の抽出画像の領域、１３００…重なった図形のある参照画像、１３０１…テンプレート０°画像、１３０２…テンプレート側の０°重み、１３０３…抽出画像の０°画像、１４１１…テンプレート１０°回転画像、１４１２…テンプレート側の１０°回転重み、１４１３…抽出画像の１０°回転画像、１４２１…テンプレート２０°回転画像、１４２２…テンプレート側の２０°回転重み、１４２３…抽出画像の２０°回転画像、１５００…周期的なテンプレート元画像、１５０１…周期的な形態のテンプレート画像、１６０２…合成画像、１６１１…形態が１周期右にずれた画像、１６１２…形態が１周期左にずれた画像、１６１３…差画像、１６１４…差画像、１６１５…差画像２つを重ねた画像、１６２１…形態が１周期下にずれた画像、１６２２…形態が１周期上にずれた画像、１６２３…差画像、１６２４…差画像、１６２５…差画像２つを重ねた画像、１７００…膨張処理を適度に行った後の画像、１８００…大域的なエッジ画像、１８０１…大域的なエッジ画像の中のテンプレート選択位置の画像
【図１】
2012069084.tif 000003
【図２】
2012069084.tif 000004
【図３】
2012069084.tif 000005
【図４】
2012069084.tif 000006
【図５】
2012069084.tif 000007
【図６】
2012069084.tif 000008
【図７】
2012069084.tif 000009
【図８】
2012069084.tif 000010
【図９】
2012069084.tif 000011
【図１０】
2012069084.tif 000012
【図１１】
2012069084.tif 000013
【図１２】
2012069084.tif 000014
【図１３】
2012069084.tif 000015
【図１４】
2012069084.tif 000016
【図１５】
2012069084.tif 000017
【図１６】
2012069084.tif 000018
【図１７】
2012069084.tif 000019
【図１８】
2012069084.tif 000020