JP2012069084A - 重み付きテンプレートマッチング実行装置およびプログラム - Google Patents
重み付きテンプレートマッチング実行装置およびプログラム Download PDFInfo
- Publication number
- JP2012069084A JP2012069084A JP2011039198A JP2011039198A JP2012069084A JP 2012069084 A JP2012069084 A JP 2012069084A JP 2011039198 A JP2011039198 A JP 2011039198A JP 2011039198 A JP2011039198 A JP 2011039198A JP 2012069084 A JP2012069084 A JP 2012069084A
- Authority
- JP
- Japan
- Prior art keywords
- image
- template
- reference image
- value
- evaluation value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
【課題】マスキングを含む、重み付き相関を高速にかつ精度良く計算する。
【解決手段】FFTを用いて高速に演算する。テンプレート登録画像(テンプレート表示部102に表示)と、テンプレート側の重み(テンプレート側重み表示部103に表示)を持って、参照画像(参照画像表示部104に表示)と重み付きマッチングを行い、所定の閾値よりマッチングの評価値が高い位置(検知位置109の枠で表示)を検知する。重み付き相関はFFTを用いた高速な方法で行う。その他、参照画像側にも重みを付けることができ、FFTを用いた高速な方法で演算できる。
【選択図】図1
【解決手段】FFTを用いて高速に演算する。テンプレート登録画像(テンプレート表示部102に表示)と、テンプレート側の重み(テンプレート側重み表示部103に表示)を持って、参照画像(参照画像表示部104に表示)と重み付きマッチングを行い、所定の閾値よりマッチングの評価値が高い位置(検知位置109の枠で表示)を検知する。重み付き相関はFFTを用いた高速な方法で行う。その他、参照画像側にも重みを付けることができ、FFTを用いた高速な方法で演算できる。
【選択図】図1
Description
本発明は、テンプレートマッチング技術に関し、特に、テンプレート画像の形態に比べ、参照画像の形態が変形している場合に有効なテンプレートマッチング技術に関する。
従来より、対象物が予め撮影された画像などからテンプレート画像を作成し、参照画像(入力画像)とテンプレート画像とのマッチング評価値を求め、テンプレート登録した対象物の画像が参照画像(入力画像)に含まれるか否か、含まれる場合はその位置を検知する、テンプレートマッチングと呼ばれる技術が知られている。
例えば、下記の非特許文献1の5章3節、84ページから86ページまでには、テンプレートマッチングの基本的な方法が記されている。この文献の図5.6では、少女の顔画像を原画とし、左目部分をテンプレートとして切り出し、原画像を濃度変換して作成した画像を入力画像として、テンプレートとの相関演算を入力画像の各部分に施した結果が例示されている。この例では、相関係数の閾値を0.99とした場合に検出されたマッチング位置は、テンプレートとして切り出した左目部分のみであるが、相関係数の閾値を0.8とした場合は、左目だけでなく、右目付近にもマッチングする候補位置がいくつか検出されている。
また、下記の非特許文献2の176ページでは、テンプレートと参照画像(原画像)の該当部分の図形を一致させることが困難であるため、ある程度位置がずれていても(変形していても)対応できるようにすることを目的として、テンプレートの図形(モデル図形)の線幅と参照画像(原画像)の線幅を共にある程度太くする処理、または参照画像(原画像)の図形周辺の画素濃度を徐々に変化させてぼかす処理が行われている。
また、下記の特許文献1には、露光装置を対象としたテンプレートマッチングを用いた位置検出方法が記載されている。この方法では、テンプレート画像の中で誤差の多く発生する部分があらかじめ分かっている場合に、該当部位にマスキングを施し、撮影画像(入力画像)の対応する領域にも同様なマスキングを施して、マスキングを施していない領域のみ所定の評価式に基づく演算を行って評価することにより、誤差の大きい部位を排除した評価を行い、位置検出精度を向上させている。
また、下記の非特許文献3には、テンプレートマッチングの評価値を正規化相関とする場合に、FFT(高速フーリエ変換)と移動加算(running sum)を用いて高速に正規化相関の演算を計算する方法が記載されている。ただし、この方法は、上記マスキング処理を施す場合には適用できない高速演算方法である。
また、下記の特許文献2には、周期的なパターンを持った撮影画像の場合に、1周期ずれた画像との差画像をテンプレートに加え、誤認する確率の低いテンプレートマッチングを行うことができるようにした技術が記載されている。
著者:酒井幸市、書名:Visual C#.NET & Visual Basic.NETによるデジタル画像処理の基礎と応用-基本概念から顔画像認識まで、発行所:CQ出版社、発行年:2003年9月1日初版発行
著者:酒井幸市、書名:画像処理とパターン認識入門 基礎からVC#/VC++.NETによるプロジェクト作成まで、発行所:森北出版株式会社、発行年:2006年12月20日第1版第1刷発行
J.P.Lewis, "Fast Template Matching", Vision Interface 95, pp.120-123, 1995.
従来、テンプレート画像の形態に比べ、参照画像の形態が変形している場合には、上記非特許文献1はもとより、上記非特許文献2記載の画像処理(テンプレート画像、および参照画像を太くしたり、ぼかしたりする処理)を行っても、処理後の画像で両者の形態が合わない部分の寄与で評価値が低くなり、対象物の検出精度が劣るという問題があった。
この問題を解決するため、上記特許文献1のように、あらかじめ形態が合わず誤差の原因となる部位が分かっている場合にその部位をマスキングして評価を行う技術がある。しかし、その技術を適用した場合には、評価値に正規化相関を用いると計算時間がかかるという新たな問題が生じる。なぜならば、上記非特許文献3の手法はマスキングがない場合の高速計算方法であって、マスキングがある場合の高速計算方法ではなく、この方法を適用できないからである。
上記に鑑み、マスキングがある場合に参照画像中の対象物を高速にかつ精度良く検出する技術を提供することを目的とする。
上記課題を解決するため、テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、上記テンプレート画像からテンプレート及びテンプレート側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、上記参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw(x,y)を、辺の長さが素数のべき乗になるように上記参照画像の辺を零詰めした第1の画像を作成するステップと、辺の長さが上記第1の画像の辺の長さと一致するように上記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、辺の長さが上記第1の画像の辺の長さと一致するように上記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、上記第1の画像をIとし、、上記第2の画像をTとし、、上記第3の画像をWとし、高速フーリエ変換を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)において上記参照画像と上記テンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置を提供する。
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)において上記参照画像と上記テンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置を提供する。
本発明によれば、マスキングを含む、重みを付けた正規化相関を高速にかつ精度良く計算することができる。
(1) 実施例1
実施例1は、テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、 上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成し、 上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を、本明細書記載の数1〜数9までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
実施例1は、テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、 上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成し、 上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を、本明細書記載の数1〜数9までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
また、テンプレート作成手段と評価値計算手段と判定手段とを備えた、プログラムであって、コンピュータに、上記テンプレート作成手段が、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成するステップと、上記評価値計算手段が、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を本明細書記載の数1〜数9までの計算手段により求めて評価値とするステップと、上記判定手段が、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、を実行させることを特徴とするプログラムに関する。
(1−1)構成
本発明の実施例1に関わる全体の構成を図2に示す。以下、全体の構成を説明する。
本発明の実施例1に関わる全体の構成を図2に示す。以下、全体の構成を説明する。
対象物201は、デジタルカメラ202で撮影され、撮影画像の電子データは、情報伝達手段203によって、計算装置204に取り込まれる。計算装置204には、同様の撮影および情報伝達により、複数の画像が取り込まれる。計算装置204は、これらの画像を入力とし、ユーザーが入力装置205を介して操作を行うことにより、本発明に基づくテンプレートマッチング処理を行い、結果を表示装置206に提示する。
計算装置204は、市販のパソコンや、ネットワークに接続されたサーバーなどの、計算機能を有する装置である。デジタルカメラ202としては、市販のデジタルカメラを用いることができる。撮影画像をパソコンに取り込むための情報伝達手段203としては、デジタルカメラ202に市販のデジタルカメラを用いる場合は、そのデジタルカメラのメーカーが提供する情報伝達手段を用いることができる。
計算機204に撮影画像を取り込む手段としては、デジタルカメラ202以外にも、ビデオ、スキャナ、その他各種画像撮影装置を用いることができる。
入力装置205としては、本実施例では市販のキーボードやマウスなどを用いる。計算装置204として市販のノート型パソコンを用いる場合には、本体にキーボード、マウスの代替手段としてのタッチパネルといった入力装置が具備されているので、それらを入力装置205として用いることができる。
本発明は、計算機204が実施する計算処理手段、およびそれを実現するプログラムに特徴がある。
図3(A)は、計算装置204のハードウエア構成を表すブロック図である。図2(A)に示すように、計算装置204は、CPU、ROM、RAM、HDD、ユーザーインターフェース、通信インターフェース、CDやSD−RAMなどの、記憶媒体の情報を読み取るための各種媒体情報読取装置を備えている。計算装置204には、各機器の動作を制御し、プログラムを実行するためのOS(Operation System)がインストールされている。本発明の装置を作成するには、GUI(Graphic User Interface) を作成するビルダーソフトを用いて、本工程を計算機204が実行するための変数や手続きを高級言語で記述したプログラムを作成し、コンパイルして実行形式のプログラムを作成する。計算装置204に実行形式のプログラムをインストールして計算機204に実行させれば、OSが各機器を制御し、本発明が実行される装置となる。以上により、計算装置204において、本発明のテンプレートマッチング処理方法における各工程を実装したプログラムを実行することにより、本発明のテンプレートマッチング実行装置を実現することができる。
図3(B)に示すように、計算装置204によって実現される本発明のテンプレートマッチング実行装置は、機能的には、ユーザーが画面を見ながら操作をすることが可能なGUI手段301と、撮影画像などから所望の部分を切り出し、所望の処理を行ってテンプレートを作成するテンプレート作成手段302と、参照画像に所望の処理を行う参照画像処理手段303と、テンプレートマッチングして評価値を計算する評価値計算手段304と、所望の一致部位が参照画像にあったか否かを評価値から判断する一致判断手段305を備えている。
これらの各手段は、CPUが計算装置204のRAMやROM、HDD、外部の記憶媒体等に記憶されるプログラムを実行することにより実現される。
(1−2)本装置の動作およびユーザー操作の概要
図5は、本発明の実施例1のテンプレートマッチング実行装置が行うテンプレートマッチング処理の手順を示したフロー図である。図1、図9、図10は、この処理手順を実現する各工程を実装したプログラムを計算装置204が実行した結果を表示装置206が表示画面101に表示する例である。ユーザーは、これらの画面に表示される内容を見て、GUIによる対話的な操作を行うことができる。即ち、ユーザーは、表示装置206の表示画面101を見て入力装置205を操作することにより、図5で示された各手順を計算装置204に行わせ、結果を表示装置206に表示させ、更に、ユーザーは、その表示内容を見て押すボタンを決め、次の操作を行うことができる。
(1−2)本装置の動作およびユーザー操作の概要
図5は、本発明の実施例1のテンプレートマッチング実行装置が行うテンプレートマッチング処理の手順を示したフロー図である。図1、図9、図10は、この処理手順を実現する各工程を実装したプログラムを計算装置204が実行した結果を表示装置206が表示画面101に表示する例である。ユーザーは、これらの画面に表示される内容を見て、GUIによる対話的な操作を行うことができる。即ち、ユーザーは、表示装置206の表示画面101を見て入力装置205を操作することにより、図5で示された各手順を計算装置204に行わせ、結果を表示装置206に表示させ、更に、ユーザーは、その表示内容を見て押すボタンを決め、次の操作を行うことができる。
このように、本発明は、ユーザーが画面を見ながら対話的に操作して重み付きテンプレートマッチングを実行することができる装置を提供する。
(1−3)処理手順概要
本発明のプログラムを起動すると、表示装置206は、初期画面を表示する。初期画面は、図1において、テンプレート表示部102、テンプレート側重み表示部103、参照画像表示部104に、何も画像が表示されていない状態である。
(1−3)処理手順概要
本発明のプログラムを起動すると、表示装置206は、初期画面を表示する。初期画面は、図1において、テンプレート表示部102、テンプレート側重み表示部103、参照画像表示部104に、何も画像が表示されていない状態である。
本発明は、ユーザーが画面を見て対話的に操作して重み付きテンプレートマッチングを実行する装置に関するものであるため、以下、図1、図9、図10の表示例と、図5のフロー図を元に計算装置204が実行する処理手順の概要を説明する。
ステップ401: テンプレートボタン105(図1)をユーザーが押すと、計算装置204は、以下のステップ401の前半部分の機能を行うプログラムを実行し、テンプレート作成画面が表示される。図9がその表示例であるが、最初の段階では、テンプレート元画像表示部902、切り出し画像表示部903、テンプレート表示部904、テンプレート側の重み表示部905には何も表示されていない。
ユーザーが画像入力ボタン906を押すと、計算装置204は、以下のステップ401の後半部分の機能を行うプログラムを実行し、計算装置204に取り込まれている画像からユーザーが画像を選択してテンプレート元画像が入力される。入力されたテンプレート元画像は、テンプレート元画像表示部902に表示される。
ステップ502: テンプレート元画像表示部902に表示された画像部分の領域をユーザーがドラッグアンドドロップして指定すると、計算装置204は、以下のステップ502の最初の機能を行うプログラムを実行し、画像切り出し部912が表示され、その部分の画像を切り出した画像が、切り出し画像表示部903に表示される。ユーザーがパラメータ入力部909にパラメータ数値を記入し、作成ボタン908を押すと、計算装置204は以下のステップ502の一部の機能を行うプログラムを実行し、切り出し画像を処理してテンプレートとテンプレート側の重みが作成され、それぞれ、テンプレート表示部904、テンプレート側重み表示部905に表示される。この具体的な処理は後の(1−4)項で述べる。
また、ユーザーが保存ボタン910を押すと、計算装置204は以下のステップ502の一部の機能を行うプログラムを実行し、テンプレート作成時に利用した元画像のファイル格納アドレスや、画像切り出し部912の座標情報やパラメータ入力部909に入力したパラメータ情報は、テンプレート作成情報ファイルとして保存される。ユーザーがテンプレート入力ボタンを押すと、計算装置204は以下のステップ502の一部の機能を行うプログラムを実行する。計算装置204が保存している所望のテンプレート作成情報ファイルをユーザーが選択すると、計算装置204は、そのテンプレート作成情報ファイルを呼び出し、その情報に基づいて、元画像を入力し、当該元画像と切り出し位置情報を用いて切り出し画像を再生成し、パラメータ情報を参照することによりユーザーが作成ボタン908を押した時と同じ処理を再現してテンプレートやテンプレート側重みを作成し、それらをそれぞれの表示部に表示する。
ユーザーが戻りボタン911を押すと、計算装置204は以下のステップ502の一部の機能を行うプログラムを実行し、図9のテンプレート作成画面から図1の初期画面に戻り、以上の操作で作成したテンプレートがテンプレート表示部102に表示され、テンプレート側重み表示部103にテンプレート側重みが表示される。
ステップ403: ユーザーが画像ボタン106を押すと、計算装置204は以下のステップ403の前半の機能を行うプログラムを実行し、参照画像処理画面が表示される。図10がその表示例である。最初の段階では、画像表示部1002には何も表示されない。ユーザーが画像入力ボタン1003を押すと、計算装置204は以下のステップ403の後半の機能を行うプログラムを実行し、計算装置204に取り込まれている画像をユーザーが選択して未処理の参照画像が入力される。入力された未処理の参照画像は、画像表示部1002に表示される。
ステップ504: ユーザーがパラメータ入力部1005にパラメータ数値を記入し、処理ボタン1004を押すと、計算装置204は以下のステップ504の最初の機能を行うプログラムを実行し、参照画像の処理画像が作成され、参照画像表示部104に表示される。この具体的な処理は、後の(1−5)項で述べる。
ユーザーが表示切替ボタン1006を押すと、計算装置204は以下のステップ504の一部の機能を行うプログラムを実行し、未処理の参照画像の表示と、処理後の参照画像の表示が切り替わり、処理による変化を見ることができる。ユーザーがパラメータ入力部1005の数値を変えて処理ボタン1004を押すと、計算装置204は以下のステップ504の一部の機能を行うプログラムを実行し、パラメータの異なる処理画像が作成され、ユーザーの好みの処理画像を作成することができる。
ユーザーが戻りボタン1007を押すと、計算装置204は以下のステップ504の最後の機能を行うプログラムを実行し、参照画像処理画面から図1の初期画面に戻り、ステップ504のこれまでの機能で作成した処理後の参照画像が参照画像表示部104に表示される。
ステップ505: 図1の画面でユーザーがマッチングボタン107を押すと、計算装置204はマッチング処理を行う。マッチング処理では、以上のステップ502で作成したテンプレートとテンプレート側重み、および上記ステップ504で作成した処理後の参照画像を入力として、後に述べる(1−6)項で記す方法により、重み付き正規化相関の計算を行う。この方法には、通常の重み付き正規化相関処理を行う方法より高速に演算できる利点がある。これについては、後の(1−6)項で述べる。
ステップ406: 本ステップは、ステップ505で重み付き相関処理が行われ、テンプレートが各々の位置にある時の重み付き相関値が全て求まった後に行われる。ここでは、計算装置204は、以下のステップ406の機能を行うプログラムを実行し、最も重み付き相関値の高い所が探され、その時のテンプレート位置を検知位置109として表示する。検知位置109での重み付き相関値が所定値以上であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にあったと判定され、検知位置109の枠表示を所定の色、例えば赤色で枠表示される。また、重み付き相関値が所定値未満であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にないと判定され、検知位置109の枠表示を所定の色、例えば緑色で枠表示される。
ユーザーは、枠の色で表示された判定結果を見て、その判定結果が誤っているとユーザーが感じた場合、そのユーザは、テンプレートボタン105や画像ボタン106を押し、テンプレートや処理後の参照画像を作成し直しても良い。
ステップ407: ユーザーが終了ボタン108を押すと、計算装置204は、以下のステップ407の機能を行うプログラムを実行し、テンプレートマッチング処理が終了する。検知位置109などのマッチング情報の活用、検査等の所望の処理があれば、これ等の機能を実現する後段の処理プログラムにここで求まったマッチング情報を渡し、計算装置204は、後段の処理プログラムを実行し、所望の処理が行われる。
(1−4)テンプレート、およびテンプレート側の重み作成処理
上記ステップ502に記載のテンプレート、およびテンプレート側の重みを作成する処理について、具体的に説明する。
(1−4)テンプレート、およびテンプレート側の重み作成処理
上記ステップ502に記載のテンプレート、およびテンプレート側の重みを作成する処理について、具体的に説明する。
最初に、切り出し画像のエッジを取る。エッジを取る処理は、着目画素の周囲で距離aにある画素の平均値と着目画素の値の差の絶対値をとることで行う。更に、エッジを太くする処理を行う。エッジを太くする処理はMax3処理をb回行う。Max3処理とは、着目する画素の上下左右斜めの最近傍8画素と自身の点を含めた9画素の中にある画素値の中で最も大きな値を選択し、その値を着目する点の新しい画素値とする処理である。更に値c以上の画素の近傍d画素にあり、値がcより低い画素の値を0として得られた画像をテンプレートとする。また、この処理で値を0とした位置に対応するテンプレート側重みを0とし、他の位置に対応するテンプレート側重みを1とする。
以上のパラメータa〜dは、パラメータ入力部909に対応する入力部においてユーザーが入力または指定することができる。
以上の処理により、入力したパラメータに応じてテンプレートとテンプレート側重みが作られる。
(1−5)参照画像の処理画像の作成処理
上記ステップ504に記載の参照画像の処理について具体的に説明する。
(1−5)参照画像の処理画像の作成処理
上記ステップ504に記載の参照画像の処理について具体的に説明する。
最初に、エッジを取り、Max3処理を指定された回数分行う。エッジを取る時やMax3処理の回数を指定する時は、パラメータ入力部1005の所定の場所に入力したパラメータ値を参照する。
以上の処理で、入力したパラメータに応じて、参照画像を処理した画像が作られる。
なお、テンプレート側のエッジ周辺には重み0の無評価域があるので、参照画像を処理する際のMax3処理の回数は、テンプレートを作成する際のMax3処理の回数よりも、大きくすることができる。
(1−6)重み付き相関処理について(通常の式と本発明の式との比較)
本発明の実施例1では、以下の数1〜9に基づく方法で計算する。
(数1) Jw(x,y) = ( Sit(x,y)・sw - Si(x,y)・st )
/ ( sq_Sii(x,y)・sq_stt )
ただし、Jw(x,y)は、参照画像(処理をした参照画像)の点(x,y)の位置にテンプレートの左端を重ねた場合の、両者の重みW付き正規化相関値である。その他の各項は、以下の数2〜9で求められる値である。数1の分母が0に近い所定の範囲内にある場合は、Jw(x,y)の値を、所定の値、例えば0とする。
(数2) Sit(x,y) = F-1xy[ F[I]・F*[W・T] ]
ただし、F[]は高速フーリエ変換であり、F* []は画像を高速フーリエ変換した後に、各成分の複素共役を取った画像を作る画像変換であり、F-1[]は高速逆フーリエ変換であり、F-1xyは、高速逆フーリエ変換してできた画像の点(x,y)の値を取ることを意味し、Iは参照画像(処理をした参照画像)で辺の長さが素数pのべき乗となるように0詰めした画像(素数pとしては、2が選ばれることが最も多い)であり、Tはテンプレートを0詰めしてIと同じ画像サイズとしたものであり、Wはテンプレート側の重みでテンプレートと同様に0詰めしてIと同じ縦横のサイズにしたものである。なお、画像間の演算記号・は、画像間の積演算を表し、両画像の対応する成分値同士の掛け算を新たに生成される画像の成分値とする演算を意味する。
(数3) sw = A[W]
ただし、A[]は、画像の各成分値を全て加算した値を出す演算である。
(数4) Si(x,y) = F-1xy[ F[I]・F*[W] ]
(数5) st = A[W・T]
(数6) sq_Sii(x,y) = sqrt( Sii(x,y)・sw(x,y) - Si(x,y)・Si(x,y) )
ただし、sqrt()は、平方根を取ることを意味し、Sii(x,y)は数7により求められる。
(数7) Sii(x,y) = F-1xy[ F[I・I]・F*[W] ]
(数8) sq_stt = sqrt( stt・sw(x,y) - st(x,y)・st(x,y) )
ただし、Sttは数9により求められる。
(数9) stt = A[W・T・T]
これは、以下で述べるように、通常の重み付き正規化相関の式より一般に高速に計算できる。
(1−6)重み付き相関処理について(通常の式と本発明の式との比較)
本発明の実施例1では、以下の数1〜9に基づく方法で計算する。
(数1) Jw(x,y) = ( Sit(x,y)・sw - Si(x,y)・st )
/ ( sq_Sii(x,y)・sq_stt )
ただし、Jw(x,y)は、参照画像(処理をした参照画像)の点(x,y)の位置にテンプレートの左端を重ねた場合の、両者の重みW付き正規化相関値である。その他の各項は、以下の数2〜9で求められる値である。数1の分母が0に近い所定の範囲内にある場合は、Jw(x,y)の値を、所定の値、例えば0とする。
(数2) Sit(x,y) = F-1xy[ F[I]・F*[W・T] ]
ただし、F[]は高速フーリエ変換であり、F* []は画像を高速フーリエ変換した後に、各成分の複素共役を取った画像を作る画像変換であり、F-1[]は高速逆フーリエ変換であり、F-1xyは、高速逆フーリエ変換してできた画像の点(x,y)の値を取ることを意味し、Iは参照画像(処理をした参照画像)で辺の長さが素数pのべき乗となるように0詰めした画像(素数pとしては、2が選ばれることが最も多い)であり、Tはテンプレートを0詰めしてIと同じ画像サイズとしたものであり、Wはテンプレート側の重みでテンプレートと同様に0詰めしてIと同じ縦横のサイズにしたものである。なお、画像間の演算記号・は、画像間の積演算を表し、両画像の対応する成分値同士の掛け算を新たに生成される画像の成分値とする演算を意味する。
(数3) sw = A[W]
ただし、A[]は、画像の各成分値を全て加算した値を出す演算である。
(数4) Si(x,y) = F-1xy[ F[I]・F*[W] ]
(数5) st = A[W・T]
(数6) sq_Sii(x,y) = sqrt( Sii(x,y)・sw(x,y) - Si(x,y)・Si(x,y) )
ただし、sqrt()は、平方根を取ることを意味し、Sii(x,y)は数7により求められる。
(数7) Sii(x,y) = F-1xy[ F[I・I]・F*[W] ]
(数8) sq_stt = sqrt( stt・sw(x,y) - st(x,y)・st(x,y) )
ただし、Sttは数9により求められる。
(数9) stt = A[W・T・T]
これは、以下で述べるように、通常の重み付き正規化相関の式より一般に高速に計算できる。
通常のテンプレート側に重みの付いた重み付き正規化相関の式は、以下の数28〜33で表される。
(数28)
Jw(x,y) = C(x,y) / (D(x,y)・ E)
(数29)
C(x,y) = ΣiΣj ((I(i+x,j+y)-Hi(x,y))・(T(i,j)-Ht)・W(i,j))
(数30)
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)) )
(数31)
E = sqrt( ΣiΣj ( (T(i,j)-Ht)・(T(i,j)-Ht)・W(i,j)) )
(数32)
Hi(x,y) = ( ΣiΣj I(i+x,j+y)・W(i,j) )/ (ΣiΣj W(i,j) )
(数33)
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付き正規化相関値である。
(数28)
Jw(x,y) = C(x,y) / (D(x,y)・ E)
(数29)
C(x,y) = ΣiΣj ((I(i+x,j+y)-Hi(x,y))・(T(i,j)-Ht)・W(i,j))
(数30)
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)) )
(数31)
E = sqrt( ΣiΣj ( (T(i,j)-Ht)・(T(i,j)-Ht)・W(i,j)) )
(数32)
Hi(x,y) = ( ΣiΣj I(i+x,j+y)・W(i,j) )/ (ΣiΣj W(i,j) )
(数33)
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について総和を取ることを意味し、総和を取る領域は、テンプレートの全体領域である。
以上の数28〜33で表される通常の重み付き正規化相関の式に基づいて、Jw(x,y)を計算する工程を実装したプログラムを作ると、点(x,y)のJwの値を計算するのに、テンプレートサイズ分の領域、即ち、Tm*Tnのオーダーの計算が必要である。ただし、Tmは、テンプレートの横サイズ、Tnはテンプレートの縦サイズである。点(x,y)は、参照画像(処理した参照画像)Iのサイズ分あるので、全ての正規化相関値を計算するのに、Im*In*Tm*Tnのオーダーの演算が必要である。ここで、Imは参照画像(処理した参照画像)の横サイズ、Inは、参照画像(処理した参照画像)の縦サイズである。
一方、本実施例1で採用する数1〜9で表される式に基づいて、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のべき乗となるように0詰めした画像の横サイズ、INはその縦サイズである。また、logの底はpである。
以上より、テンプレートサイズ(Tm*Tn)が大きくなるに従い、本実施例1で採用する上記数1〜9の重み付き正規化相関では、演算時間が短縮される効果が大きくなる。
例えは、Im=In=512の時、IM=IN=512で、log(IM)=log(IN)=9なので、本発明による演算量は、9*9*Im*Inのオーダーになり、上記数28〜32に基づく工程ででは、Tm*Tn*Im*Inのオーダーとなる。従って、Tm=Tn=128の場合、約100倍近く、本実施例1の方が演算量が少なく、高速になるという効果がある。
(1−7)従来の重みなし正規化相関の場合との比較
従来の重みなし正規化相関を用いたテンプレートマッチングの場合のフロー図を図4に示す。本発明の実施例1と比べ、違いがある部分は、テンプレート作成処理402の具体的な処理と、参照画像の処理404の具体的な処理、およびマッチング処理405の具体的な処理が異なるだけで、他は同じである。以下、実施例1と異なる部分のみ、図中の番号をステップ番号として記載する。
(1−7)従来の重みなし正規化相関の場合との比較
従来の重みなし正規化相関を用いたテンプレートマッチングの場合のフロー図を図4に示す。本発明の実施例1と比べ、違いがある部分は、テンプレート作成処理402の具体的な処理と、参照画像の処理404の具体的な処理、およびマッチング処理405の具体的な処理が異なるだけで、他は同じである。以下、実施例1と異なる部分のみ、図中の番号をステップ番号として記載する。
ステップ402: テンプレート側の重みはない。作成ボタン908が押されると、切り出し画像を処理してテンプレートが作成される。テンプレートを作成する処理が異なるのみで、他は実施例1と同じである。
テンプレートを作成する処理は、テンプレートをぼかす処理とMax3処理で太くする処理である。ぼかす処理は、着目点を含む周囲の画素値の平均値を新たな着目点の画素値とすることで行われる。これにより、テンプレート画像は、平均化されてぼけた画像になる。Max3処理は、着目点を含む周辺9画素の中から最も画素値が高いものを新たな着目点の画素値とする処理である。これによりテンプレートの中に輝度の高い線があれば、線が太くなる。
ステップ404:未処理の参照画像にぼかす処理とMax3処理で太くする処理を行い、処理した参照画像を作る。
ステップ405: マッチング処理への入力は、ステップ402のテンプレートとステップ404の処理後の参照画像である。若干の近似となるが、正規化相関は、上記非特許文献3に記載された計算方法に基づき、以下の数34〜37により計算する。
(数34) J’(x,y) = Fxy[ F[I’]・F[T’] ]
/ ( sqrt(Cxy[I’・I’])・sqrt(ΣiΣj T’・T’)
(数35) I’(x,y) = I(x,y) - (ΣiΣj I(x+i,y+j) ) / (Tm*Tn)
(数36) T’(i,j) = T(i,j) - (ΣiΣj T(i,j) ) / (Tm*Tn)
ただし、Tm、Tnは、テンプレートサイズである。J’(x,y)は若干の近似を含む正規化相関値である。
(数34) J’(x,y) = Fxy[ F[I’]・F[T’] ]
/ ( sqrt(Cxy[I’・I’])・sqrt(ΣiΣj T’・T’)
(数35) I’(x,y) = I(x,y) - (ΣiΣj I(x+i,y+j) ) / (Tm*Tn)
(数36) T’(i,j) = T(i,j) - (ΣiΣj T(i,j) ) / (Tm*Tn)
ただし、Tm、Tnは、テンプレートサイズである。J’(x,y)は若干の近似を含む正規化相関値である。
また、Cxy[I’・I’]は、ランニングサム法により求めるI’・I’画像の左上(x,y)の点から始まるテンプレートサイズ分の総和である。即ち、左上(0,0)の点から右下(a,b)までのI・I画像の総和をs(a,b)とすると、以下の数37となる。
(数37) Cxy[I’・I’] = s(x+Tm-1,y+Tn-1) + s(x-1,y-1)
- s(x+Tm-1,y-1) - s(x-1, y+Tn-1)
以上の数37のランニングサム法による演算Cxy[I’・I’]は、バタフライ法に基づく演算Bxy[I’・I’]に置き換えることができる。ランニングサム法は、広い意味でバタフライ法と同じ原理に基づく高速計算方法であり、ここでは、広い意味でバタフライ演算の中に含める演算方法であるとする。
(数37) Cxy[I’・I’] = s(x+Tm-1,y+Tn-1) + s(x-1,y-1)
- s(x+Tm-1,y-1) - s(x-1, y+Tn-1)
以上の数37のランニングサム法による演算Cxy[I’・I’]は、バタフライ法に基づく演算Bxy[I’・I’]に置き換えることができる。ランニングサム法は、広い意味でバタフライ法と同じ原理に基づく高速計算方法であり、ここでは、広い意味でバタフライ演算の中に含める演算方法であるとする。
従来は、上記数34〜37迄の計算方法に基づく工程を実装したプログラムを実行していたが、本発明の数1〜数9のような、重み付きの正規化相関を高速に計算する方法は知られていなかった。本発明の一つの特徴は、このような重み付き正規化相関を高速に演算する手段を持つ装置を提供することにある。
(1−8)マスキングについて
以上の重みW(i,j)は、各点に任意の実数値を入れて重み付けすることが可能である。ここで、テンプレート側にマスク形状を0と1で表現した値の入ったマスク画像M(i,j)を作成し、マスク画像を重みとする場合、即ち、W(i,j)=M(i,j)とすると、上記は、マスク付の正規化相関を示すことになり、これを評価値とするマッチングは、マスク付マッチングとなる。
(1−9)その他1
テンプレート(T)の重み(W)付平均をT’とする。即ち以下の数38となる。
(数38) T’(i,j) = T(i,j) - (ΣiΣj T(i,j) ) / (Tm*Tn)
以上の数38のT’を用い、上記数1〜数9は、項を整理し、以下の数39〜数45となる。
(数39) Jw(x,y) = ( Sit’(x,y)・sw ) / ( sq_Sii(x,y)・sq_stt )
(数40) Sit’(x,y) = F-1xy[ F[I]・F*[W・T’] ]
(数41) sw = A[W]
(数42) Si(x,y) = F-1xy[ F[I]・F*[W] ]
(数43) sq_Sii(x,y) = sqrt( Sii(x,y)・sw(x,y) - Si(x,y)・Si(x,y) )
(数44) Sii(x,y) = F-1xy[ F[I・I]・F*[W] ]
(数45) sq_stt = sqrt( A[W・T’・T’] )
以上の数38〜45は、数1〜数9を数38の置き換えを行って変形したもので、結果として、数39〜45で表される式に基づいて、Jw(x,y)を計算する工程を実装したプログラムを作っても、演算時間のかかる部分である数40、数42、数44は、数2、数4、数7と同じ演算工程となっており、その他の演算量は少ないので、数39〜数45は、数1〜数9と演算時間はあまり変わらず、特に利点が生じる変形とはなっていない。ここでは、演算時間の利点が少ない変形であるので、数39〜数45は、数1〜数9の範囲に含まれると考える。
(1−8)マスキングについて
以上の重みW(i,j)は、各点に任意の実数値を入れて重み付けすることが可能である。ここで、テンプレート側にマスク形状を0と1で表現した値の入ったマスク画像M(i,j)を作成し、マスク画像を重みとする場合、即ち、W(i,j)=M(i,j)とすると、上記は、マスク付の正規化相関を示すことになり、これを評価値とするマッチングは、マスク付マッチングとなる。
(1−9)その他1
テンプレート(T)の重み(W)付平均をT’とする。即ち以下の数38となる。
(数38) T’(i,j) = T(i,j) - (ΣiΣj T(i,j) ) / (Tm*Tn)
以上の数38のT’を用い、上記数1〜数9は、項を整理し、以下の数39〜数45となる。
(数39) Jw(x,y) = ( Sit’(x,y)・sw ) / ( sq_Sii(x,y)・sq_stt )
(数40) Sit’(x,y) = F-1xy[ F[I]・F*[W・T’] ]
(数41) sw = A[W]
(数42) Si(x,y) = F-1xy[ F[I]・F*[W] ]
(数43) sq_Sii(x,y) = sqrt( Sii(x,y)・sw(x,y) - Si(x,y)・Si(x,y) )
(数44) Sii(x,y) = F-1xy[ F[I・I]・F*[W] ]
(数45) sq_stt = sqrt( A[W・T’・T’] )
以上の数38〜45は、数1〜数9を数38の置き換えを行って変形したもので、結果として、数39〜45で表される式に基づいて、Jw(x,y)を計算する工程を実装したプログラムを作っても、演算時間のかかる部分である数40、数42、数44は、数2、数4、数7と同じ演算工程となっており、その他の演算量は少ないので、数39〜数45は、数1〜数9と演算時間はあまり変わらず、特に利点が生じる変形とはなっていない。ここでは、演算時間の利点が少ない変形であるので、数39〜数45は、数1〜数9の範囲に含まれると考える。
次に、参照画像(I)から以下の数46の置き換えを行った画像(I’)を作る。
(数46) I’(x,y) = I(x,y) - (ΣiΣj I(x+i,y+j) ) / (Tm*Tn)
以上の数46のI’(x,y)を用いると、数39〜45で重み付きの正規化相関(Jw(x,y))を求める式は、以下の数47〜近似した正規化相関(J’w(x,y))を求める式に対応する。
(数47) J’w(x,y) = ( Si’t’(x,y)・sw ) / ( sq_Sii(x,y)・sq_stt )
(数48) Si’t’(x,y) = F-1xy[ F[I’]・F*[W・T’] ]
(数49) sw = A[W]
(数51) sq_Sii(x,y) = sqrt(Si’i’(x,y))
(数52) Si’i’(x,y) = F-1xy[ F[I’・I’]・F*[W] ]
(数53) sq_stt = sqrt( A[W・T’・T’] )
以上の数46〜53は、数1〜数9を数46の置き換えで近似したもので、結果として、数47〜53で表される式に基づいて、J’w(x,y)を計算する工程を実装したプログラムを作ると、演算時間のかかる部分は、数48と数52の2ケ所となり、数39〜数45の演算時間のかかる部分の数40、数42、数44の3ケ所より少なくなり、演算時間が少なくなる効果がある。しかしながら、近似というデメリットも多少あり、上記(1−6)で記載したような、重み付き相関演算の時間がオーダーが変わるほどの利点を持った演算工程の変化とは言い難い。また、数46の計算も含めると、演算時間の利点はなくなる。ここでは、数46から数53の変形も、数1〜数9と同様のものと見なす。
(数46) I’(x,y) = I(x,y) - (ΣiΣj I(x+i,y+j) ) / (Tm*Tn)
以上の数46のI’(x,y)を用いると、数39〜45で重み付きの正規化相関(Jw(x,y))を求める式は、以下の数47〜近似した正規化相関(J’w(x,y))を求める式に対応する。
(数47) J’w(x,y) = ( Si’t’(x,y)・sw ) / ( sq_Sii(x,y)・sq_stt )
(数48) Si’t’(x,y) = F-1xy[ F[I’]・F*[W・T’] ]
(数49) sw = A[W]
(数51) sq_Sii(x,y) = sqrt(Si’i’(x,y))
(数52) Si’i’(x,y) = F-1xy[ F[I’・I’]・F*[W] ]
(数53) sq_stt = sqrt( A[W・T’・T’] )
以上の数46〜53は、数1〜数9を数46の置き換えで近似したもので、結果として、数47〜53で表される式に基づいて、J’w(x,y)を計算する工程を実装したプログラムを作ると、演算時間のかかる部分は、数48と数52の2ケ所となり、数39〜数45の演算時間のかかる部分の数40、数42、数44の3ケ所より少なくなり、演算時間が少なくなる効果がある。しかしながら、近似というデメリットも多少あり、上記(1−6)で記載したような、重み付き相関演算の時間がオーダーが変わるほどの利点を持った演算工程の変化とは言い難い。また、数46の計算も含めると、演算時間の利点はなくなる。ここでは、数46から数53の変形も、数1〜数9と同様のものと見なす。
以上より、本実施例1では、数1〜数9の式を採用したが、数38〜数45、数46〜数53までの変形式も、数1〜数9の式と実質同等であると考えられる。
なお、実施例1では、(1−6)で記したように、数1〜数9の採用により、通常の数28〜数33に比し、(1−6)で記したように、高速に重み付の正規化相関を計算できるという利点がある。
(1−10) その他2
上記判定処理406では、重み付き相関値のうち最も値が大きいものが所定の値以上であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にあったと判定し、所定の値未満であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にないと判定したが、この場合は、参照画像に一つ被写体と同じ形態を持つ部位があるか、または、全くないかという事が分かっている場合である。
(1−10) その他2
上記判定処理406では、重み付き相関値のうち最も値が大きいものが所定の値以上であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にあったと判定し、所定の値未満であれば、テンプレートにした被写体と同じ形態を持つ部位が参照画像にないと判定したが、この場合は、参照画像に一つ被写体と同じ形態を持つ部位があるか、または、全くないかという事が分かっている場合である。
その他にも、参照画像にテンプレートにした被写体と同じ形態を持つ部位が複数ある可能性がある場合には、重み付き相関値の値が所定の値よりも大きい位置を全て、テンプレートにした被写体と同じ形態を持つ部位と判定する処理にすることもできる。また、重み付き相関値の値が所定の値よりも大きい位置でも、隣り合う位置は、位置が少しだけずれただけで、同一のものと判断することもでき、このような重複を避けるため、重み付き相関値の値が最も高い位置を探し、その値が所定の値よりも大きければ、その位置にあると判断し、その位置から所定の位置だけ離れた位置は同一のものがズレて検知されるものとして評価値を所定の値より下げ、次に重み付き相関値の値が高い位置を探して、その値が所定の値よりも大きければ、その位置にもあると判断し、同様にその位置から所定の位置だけ離れた位置の重み付き相関値を所定の値より下げ、更にその次に重み付相関位置の高い位置を探して所定の値より大きければ、同様の処理を続け、検知した重み付き相関値が所定の値より低くなるまで行い、このようにして、複数の位置を検知することもできる。
その他、参照画像に必ず被写体と同じ形態を持つ位置が1つだけあることを仮定する場合には、重み付き相関値の値が最も大きい位置をテンプレートにした被写体と同じ形態を持つ参照画像の位置と判定するようにすることもできる。
以上のように、判定処理409には対象とする画像や状況によって各種あり、各々、それぞれに合った、所定の判定基準で、評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理となっている。
また、以上では、テンプレートが撮影画像の一部から作られ、テンプレートには被写体の形状があるとしてきたが、テンプレートとして、図形描画ソフトで作成した人工的な形状画像や、CAD(Computer Aided Design)で作成したデザイン画像から選択した部位をテンプレートとすることもできる。この場合、テンプレートに登録した人工作成画像と似た形状の画像の部位を参照画像から探すことになる。これも、広い意味で、評価値を参照して参照画像にテンプレートと一致した位置があるか判定することに当たる。
以上により、マスキングを含む、重みを付けた正規化相関を高速に計算する方法が提供される。
(2)実施例2
特許文献1では、参照画像に写っている対象物が複数あり、対象物同士が重なるために一部が見えない部位を含む対象物がある場合に、その複数の対象物を精度良く検知することは困難である。
(2)実施例2
特許文献1では、参照画像に写っている対象物が複数あり、対象物同士が重なるために一部が見えない部位を含む対象物がある場合に、その複数の対象物を精度良く検知することは困難である。
実施例2は、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレートを作成し、上記参照画像処理手段は指定された参照画像を処理して参照画像側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記参照画像側重みとを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を本明細書記載の数10〜数18までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
また、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、プログラムであって、コンピュータに、上記テンプレート作成手段が、指定されたテンプレート元画像からテンプレートを作成するステップと、上記参照画像処理手段が、指定された参照画像を処理して参照画像側重みを作成するステップと、上記評価値計算手段が、上記テンプレートと、上記参照画像側重みとを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を本明細書記載の数10〜数18までの計算手段により求めて評価値とするステップと、上記判定手段が、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、を実行させることを特徴とするプログラムに関する。
(2−1)実施例1との差異の説明
実施例2の構成は実施例1と全く同じである。異なる部分は、計算装置204の行う処理が、実施例2は、図6の手順に基づき、実施例1は、図5の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
(2−1)実施例1との差異の説明
実施例2の構成は実施例1と全く同じである。異なる部分は、計算装置204の行う処理が、実施例2は、図6の手順に基づき、実施例1は、図5の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
本発明の実施例2は、本発明の実施例1におけるステップ502がステップ402に変わり、ステップ504がステップ604に変わり、ステップ505がステップ605に変わったこととなった以外は、実施例1と同じである。
ステップ402の説明は上記(1−7)で行ったので、ステップ604とステップ605の処理についてのみ説明する。
(2−2)ステップ604
上記(1−3)で説明した機能の他、ユーザーは、処理ボタン1004を押すと、計算装置204は、以下のステップ604の一部の機能を行うプログラムを実行し、パラメータ入力部1005の所定の位置に入力したパラメータ値を参照することにより、画像側の重み画像Uが作成される。ユーザーが表示切替ボタン1006を押すと、計算装置204は、以下のステップ604の一部の機能を行うプログラムを実行し、処理前の参照画像、処理後の参照画像、重み画像がそれぞれ順番に表示される。重み画像の次は処理前の参照画像が表示される。
(2−2)ステップ604
上記(1−3)で説明した機能の他、ユーザーは、処理ボタン1004を押すと、計算装置204は、以下のステップ604の一部の機能を行うプログラムを実行し、パラメータ入力部1005の所定の位置に入力したパラメータ値を参照することにより、画像側の重み画像Uが作成される。ユーザーが表示切替ボタン1006を押すと、計算装置204は、以下のステップ604の一部の機能を行うプログラムを実行し、処理前の参照画像、処理後の参照画像、重み画像がそれぞれ順番に表示される。重み画像の次は処理前の参照画像が表示される。
計算装置204は、重み画像Uに対しては、参照画像の中で誤差の大きい部分を検知する処理を行う。例えば、角部において誤差が大きいならば角部を検知する処理を行い、所定の形態の近傍で誤差が大きいならばその所定の形態を検知する処理を行ってその近傍の重みWUの値を0とする。
計算装置204は、所定の形態を検知する処理において、所定の形態をテンプレートとして、上記実施例1に記載のテンプレートマッチングを行うことで所定の形態を検知することができる。
なお、重要な部分の形態の重みを大きくしたい場合は、その重要な部分の形態を検知し、その部分の重みを他の部分より大きくすることもできる。
(2−3)ステップ605
ステップ605がステップ505と異なる箇所は、参照画像側の重み付き相関の式を参照して、参照画像の重み付き相関を求めることにある。即ち、実施例1では、上記記載した数1〜数9を用いたが、実施例2では、以下の数10〜数18を用いる。
(数10) 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付き正規化相関値である。その他の各項は、以下の数11〜18で求められる値である。数10の分母が0に近い所定の範囲内にある場合は、Ju(x,y)の値を、所定の値、例えば0とする。
(数11) Sit(x,y) = F-1xy[ F[U・I]・F*[T] ]
ただし、Uは参照側の重みでIと同じ縦横のサイズを持ち、Iの0詰めした部位に相当するUの値も0である。
(数12) Su(x,y) = Bxy[U]
ただし、B[]は、テンプレートサイズを加算長とするバタフライ演算で、Bxy[]は、バタフライ演算してできた画像の点(x,y)の値を取ることを意味する。
(数13) Si(x,y) = Bxy[U・I]
(数14) St(x,y) = F-1xy[ F[U]・F*[T] ]
(数15) sq_Sii(x,y) = sqrt( Sii(x,y)・Su(x,y) - Si(x,y)・Si(x,y) )
ただし、Sii(x,y)は数16により求められる。
(数16) Sii(x,y) = Bxy[ U・I・I ]
(数17) sq_Stt(x,y) = sqrt( Stt(x,y)・Su(x,y) - St(x,y)・St(x,y) )
ただし、Stt(x,y)は数9により求められる。
(数18) Stt(x,y) = F-1xy[ F[U]・F*[T・T] ]
なお、上記(1−8)で説明したように、数10〜数18の式を数38、数46に基づいて変形または近似した式も、演算時間のオーダーが変わらないため、ここでは数10〜数18と同様とみなす。
(2−4)実施例2による効果
実施例2では、参照画像側に重みUを付けることができ、画像の形態に応じ、あらかじめ誤差が大きくなりそうな部分の重みを0にして評価したり、逆に、画像上の重要な部分の形態の重みを大きくして評価することができるという利点がある。
(2−3)ステップ605
ステップ605がステップ505と異なる箇所は、参照画像側の重み付き相関の式を参照して、参照画像の重み付き相関を求めることにある。即ち、実施例1では、上記記載した数1〜数9を用いたが、実施例2では、以下の数10〜数18を用いる。
(数10) 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付き正規化相関値である。その他の各項は、以下の数11〜18で求められる値である。数10の分母が0に近い所定の範囲内にある場合は、Ju(x,y)の値を、所定の値、例えば0とする。
(数11) Sit(x,y) = F-1xy[ F[U・I]・F*[T] ]
ただし、Uは参照側の重みでIと同じ縦横のサイズを持ち、Iの0詰めした部位に相当するUの値も0である。
(数12) Su(x,y) = Bxy[U]
ただし、B[]は、テンプレートサイズを加算長とするバタフライ演算で、Bxy[]は、バタフライ演算してできた画像の点(x,y)の値を取ることを意味する。
(数13) Si(x,y) = Bxy[U・I]
(数14) St(x,y) = F-1xy[ F[U]・F*[T] ]
(数15) sq_Sii(x,y) = sqrt( Sii(x,y)・Su(x,y) - Si(x,y)・Si(x,y) )
ただし、Sii(x,y)は数16により求められる。
(数16) Sii(x,y) = Bxy[ U・I・I ]
(数17) sq_Stt(x,y) = sqrt( Stt(x,y)・Su(x,y) - St(x,y)・St(x,y) )
ただし、Stt(x,y)は数9により求められる。
(数18) Stt(x,y) = F-1xy[ F[U]・F*[T・T] ]
なお、上記(1−8)で説明したように、数10〜数18の式を数38、数46に基づいて変形または近似した式も、演算時間のオーダーが変わらないため、ここでは数10〜数18と同様とみなす。
(2−4)実施例2による効果
実施例2では、参照画像側に重みUを付けることができ、画像の形態に応じ、あらかじめ誤差が大きくなりそうな部分の重みを0にして評価したり、逆に、画像上の重要な部分の形態の重みを大きくして評価することができるという利点がある。
このように、対象物が重なって写っている場合でも、複数の対象物を精度良く検知する方法を提供し、実施例1の方法と共に高速に実行できるようにすることができる。
(3)実施例3
実施例3は、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成し、上記参照画像処理手段は指定された参照画像を処理して参照画像側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を本明細書記載の数19〜数27までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
(3)実施例3
実施例3は、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、上記テンプレート作成手段は、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成し、上記参照画像処理手段は指定された参照画像を処理して参照画像側重みを作成し、上記評価値計算手段は、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を本明細書記載の数19〜数27までの計算手段により求めて評価値とし、上記判定手段は、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うことを特徴とする、テンプレートマッチング実行装置に関する。
また、テンプレート作成手段と参照画像処理手段と評価値計算手段と判定手段とを備えた、プログラムであって、コンピュータに、上記テンプレート作成手段が、指定されたテンプレート元画像からテンプレート及びテンプレート側重みを作成するステップと、上記参照画像処理手段が、指定された参照画像を処理して参照画像側重みを作成するステップと、上記評価値計算手段が、上記テンプレートと、上記テンプレート側重みと、参照画像とを入力として、上記参照画像の点(x,y)の位置に上記テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を本明細書記載の数19〜数27までの計算手段により求めて評価値とするステップと、上記判定手段が、上記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、を実行させることを特徴とするプログラムに関する。
(3−1)実施例1との差異の説明
実施例3の構成は実施例1と全く同じである。異なる部分は、計算装置204の行う処理が、実施例3は、図7の手順に基づき、実施例1は、図5の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
(3−1)実施例1との差異の説明
実施例3の構成は実施例1と全く同じである。異なる部分は、計算装置204の行う処理が、実施例3は、図7の手順に基づき、実施例1は、図5の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
本発明の実施例3は、本発明の実施例1におけるステップ504がステップ704に変わり、ステップ505がステップ705に変わったこと以外は、実施例1と同じである。
以下、ステップ704とステップ705の処理についてのみ説明する。
(3−2)ステップ704
上記(1−3)で説明した機能の他、ユーザーが処理ボタン1004を押すと、計算装置204は、以下のステップ704の一部の機能を行うプログラムを実行し、パラメータ入力部1005の所定の位置に入力したパラメータ値を参照することにより、重み画像Uも作成される。ユーザーが表示切替ボタン1006を押すと、計算装置204は、以下のステップ704の一部の機能を行うプログラムを実行し、処理前の参照画像、処理後の参照画像、重み画像がそれぞれ順番に表示される。重み画像の次は処理前の参照画像が表示される。
(3−2)ステップ704
上記(1−3)で説明した機能の他、ユーザーが処理ボタン1004を押すと、計算装置204は、以下のステップ704の一部の機能を行うプログラムを実行し、パラメータ入力部1005の所定の位置に入力したパラメータ値を参照することにより、重み画像Uも作成される。ユーザーが表示切替ボタン1006を押すと、計算装置204は、以下のステップ704の一部の機能を行うプログラムを実行し、処理前の参照画像、処理後の参照画像、重み画像がそれぞれ順番に表示される。重み画像の次は処理前の参照画像が表示される。
計算装置204は、重み画像に対しては、参照画像の中で誤差の大きい部分を検知する処理を行う。例えば、角部において誤差が大きいならば、角部を検知する処理を行い、所定の形態の近傍で誤差が大きいならばその所定の形態を検知する処理を行ってその近傍の重みW2の値を0とする。
計算装置204は、所定の形態を検知する処理において、所定の形態をテンプレートとして、上記実施例1に記載のテンプレートマッチングを行うことで所定の形態を検知することができる。
なお、重要な部分の形態の重みを大きくしたい場合は、その重要な部分の形態を検知し、その部分の重みを他の部分より大きくすることもできる。
実施例2のステップ604の処理と異なる箇所は、実施例2ではテンプレート側に重みがなく、一方で実施例3ではテンプレート側にも重みがあるので、テンプレートの形態部のエッジ周辺を重み0にする場合に、実施例3のステップ704で参照画像のエッジを鋭くする処理やエッジ強調をする処理などを追加できる点である。しかし、実施例3においてこの実施例2との差異を必ずしも設ける必要はない。
(3−3)ステップ705
ステップ705がステップ505と異なる箇所は、参照画像側の重み付き相関の式を参照して、参照画像の重み付き相関を求めることにある。即ち、実施例1では、上記実施例1で記載した数1〜数9を用いたが、実施例3では、以下の数19〜数27を用いる。
(数19) 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付き正規化相関値である。その他の各項は、以下の数20〜27で求められる値である。数19の分母が0に近い所定の範囲内にある場合は、Juw(x,y)の値を、所定の値、例えば0とする。
(数20) Sit(x,y) = F-1xy[ F[U・I]・F*[W・T] ]
ただし、Uは参照側の重みでIと同じ縦横のサイズを持ち、Iの0詰めした部位に相当するUの値も0にしたもの、Wはテンプレート側の重みでテンプレートと同様に0詰めしてIと同じ画像サイズにしたものである。
(数21) Suw(x,y) = F-1xy[ F[U]・F*[W] ]
(数22) Si(x,y) = F-1xy[ F[U・I]・F*[W] ]
(数23) St(x,y) = F-1xy[ F[U]・F*[W・T] ]
(数24) sq_Sii(x,y) = sqrt( Sii(x,y)・Suw(x,y) - Si(x,y)・Si(x,y) )
ただし、Sii(x,y)は数25により求められる。
(数25) Sii(x,y) = F-1xy[ F[U・I・I]・F*[W] ]
(数26) sq_Stt(x,y) = sqrt( Stt(x,y)・Suw(x,y) - St(x,y)・St(x,y) )
ただし、Stt(x,y)は数27により求められる。
(数27) Stt(x,y) = F-1xy[ F[U]・F*[W・T・T] ]
なお、上記(1−8)で説明したように、数19〜数27の式を数38、数46に基づいて変形または近似した式も、演算時間のオーダーが変わらないため、ここでは数19〜数27と同様とみなす。
(3−4)実施例3による効果
実施例3では、テンプレート側と参照画像側の双方に重みを付けることができ、テンプレートに登録した形態と参照画像の形態が少し変形している場合に、テンプレートのエッジ周辺を重み0とすることにより、形態の変化もある程度許容し、しかも、あらかじめ誤差が大きくなりそうな部分の重みを0にして評価したり、逆に、重要な部分の形態の重みを大きくして評価することができるいう利点がある。
(2) 実施例4
(4−1)実施例3との差異の説明
実施例4の構成は実施例3と全く同じである。異なる部分は、計算装置204の行う処理が、実施例4は、図8の手順に基づき、実施例3は、図7の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
(3−3)ステップ705
ステップ705がステップ505と異なる箇所は、参照画像側の重み付き相関の式を参照して、参照画像の重み付き相関を求めることにある。即ち、実施例1では、上記実施例1で記載した数1〜数9を用いたが、実施例3では、以下の数19〜数27を用いる。
(数19) 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付き正規化相関値である。その他の各項は、以下の数20〜27で求められる値である。数19の分母が0に近い所定の範囲内にある場合は、Juw(x,y)の値を、所定の値、例えば0とする。
(数20) Sit(x,y) = F-1xy[ F[U・I]・F*[W・T] ]
ただし、Uは参照側の重みでIと同じ縦横のサイズを持ち、Iの0詰めした部位に相当するUの値も0にしたもの、Wはテンプレート側の重みでテンプレートと同様に0詰めしてIと同じ画像サイズにしたものである。
(数21) Suw(x,y) = F-1xy[ F[U]・F*[W] ]
(数22) Si(x,y) = F-1xy[ F[U・I]・F*[W] ]
(数23) St(x,y) = F-1xy[ F[U]・F*[W・T] ]
(数24) sq_Sii(x,y) = sqrt( Sii(x,y)・Suw(x,y) - Si(x,y)・Si(x,y) )
ただし、Sii(x,y)は数25により求められる。
(数25) Sii(x,y) = F-1xy[ F[U・I・I]・F*[W] ]
(数26) sq_Stt(x,y) = sqrt( Stt(x,y)・Suw(x,y) - St(x,y)・St(x,y) )
ただし、Stt(x,y)は数27により求められる。
(数27) Stt(x,y) = F-1xy[ F[U]・F*[W・T・T] ]
なお、上記(1−8)で説明したように、数19〜数27の式を数38、数46に基づいて変形または近似した式も、演算時間のオーダーが変わらないため、ここでは数19〜数27と同様とみなす。
(3−4)実施例3による効果
実施例3では、テンプレート側と参照画像側の双方に重みを付けることができ、テンプレートに登録した形態と参照画像の形態が少し変形している場合に、テンプレートのエッジ周辺を重み0とすることにより、形態の変化もある程度許容し、しかも、あらかじめ誤差が大きくなりそうな部分の重みを0にして評価したり、逆に、重要な部分の形態の重みを大きくして評価することができるいう利点がある。
(2) 実施例4
(4−1)実施例3との差異の説明
実施例4の構成は実施例3と全く同じである。異なる部分は、計算装置204の行う処理が、実施例4は、図8の手順に基づき、実施例3は、図7の手順に基づくことにある。以下、図中の番号をステップ番号として説明する。
本発明の実施例4では、本発明の実施例3を基礎として、ステップ502の代わりにステップ802を用い、ステップ406の代わりにステップ806を用いる。以下、本実施例4に固有の処理であるステップ802とステップ806についてのみ説明する。
(4−2)ステップ802
ステップ802では、ステップ502の処理と同様にユーザーがそれぞれのボタンを押すことにより、計算装置204は、対応したプログラムを実行し、テンプレートが登録され、テンプレート側の重みwが作成される。更に、計算装置204は、以下のステップ802の一部の機能を行うプログラムを実行し、パラメータ入力部909の所定の部分に入力した数値を元にテンプレートの形態部分が抽出される。抽出された形態は、画像切り出し部912の枠内に表示される。抽出の仕方には、所定の閾値以上の部分を抽出すること、エッジ検出して閾値以上のエッジに囲まれた領域を抽出すること、その他一般の抽出処理を用いることが含まれる。このようにして、テンプレートに登録した形態部分を抽出した、抽出画像を生成することができる。
(4−3)ステップ806
ステップ806: 本ステップは、ステップ705でテンプレート側と参照画像側の双方に重みを付けた相関処理が行われ、テンプレートが各々の位置にある時の重み付き相関値が全て求まった後に行われる。計算装置204は、以下のステップ806の機能を行うプログラムを実行し、或る位置で重み付き相関値が所定の値よりも大きい場合は、テンプレートに登録した形態がその位置に存在するものとみなして、ステップ802で作成した抽出画像の領域分だけ、その位置の参照画像側の重みUの値を0とする。重み付き相関値が所定の値より大きな部分の全てについて、上記のステップ802で作成した抽出画像の領域分だけ、その位置の参照画像側の重みUの値を0にする処理を行い、ステップ705に戻る。
(4−2)ステップ802
ステップ802では、ステップ502の処理と同様にユーザーがそれぞれのボタンを押すことにより、計算装置204は、対応したプログラムを実行し、テンプレートが登録され、テンプレート側の重みwが作成される。更に、計算装置204は、以下のステップ802の一部の機能を行うプログラムを実行し、パラメータ入力部909の所定の部分に入力した数値を元にテンプレートの形態部分が抽出される。抽出された形態は、画像切り出し部912の枠内に表示される。抽出の仕方には、所定の閾値以上の部分を抽出すること、エッジ検出して閾値以上のエッジに囲まれた領域を抽出すること、その他一般の抽出処理を用いることが含まれる。このようにして、テンプレートに登録した形態部分を抽出した、抽出画像を生成することができる。
(4−3)ステップ806
ステップ806: 本ステップは、ステップ705でテンプレート側と参照画像側の双方に重みを付けた相関処理が行われ、テンプレートが各々の位置にある時の重み付き相関値が全て求まった後に行われる。計算装置204は、以下のステップ806の機能を行うプログラムを実行し、或る位置で重み付き相関値が所定の値よりも大きい場合は、テンプレートに登録した形態がその位置に存在するものとみなして、ステップ802で作成した抽出画像の領域分だけ、その位置の参照画像側の重みUの値を0とする。重み付き相関値が所定の値より大きな部分の全てについて、上記のステップ802で作成した抽出画像の領域分だけ、その位置の参照画像側の重みUの値を0にする処理を行い、ステップ705に戻る。
重み付き相関値が所定の値より大きい場所がない場合は、所定の形態がないとみなしてステップ407に進む。
(4−4)画像例
以上の処理について、参照画像の例(図11)、参照画像側の重みUが追加された様子を示したイメージ図(図12)を用いて図、その概要を説明する。
(4−4)画像例
以上の処理について、参照画像の例(図11)、参照画像側の重みUが追加された様子を示したイメージ図(図12)を用いて図、その概要を説明する。
最初に、図11で示すように、重なった図形がある参照画像1100があるとする。上の図形1101と下の図形1102は同じ図形であり、テンプレート登録画像1103はこれらの図形と同じ形状である。この例の抽出画像の領域1104は、この図形を包む少し大きめの部分である。以上は、ステップ401、802、403,704の処理で準備される。このとき、ステップ705を初めて行った最初のマッチング処理で、評価値が作られ、ステップ806で上の図形1101が検知される。そして、検知された位置の抽出画像の領域1201分だけ、検知された位置に対応する参照画像側の重みUの値が0になる。再度ステップ705の処理を行い、再度マッチングすると、評価値が計算され、ステップ806で、下の図形1102が検知される。
以上のように、重なった図形も、順次検知することができる。
(4−5)実施例4による効果
本実施例4によると、テンプレートに登録した形態が参照画像内に重なって複数存在する場合でも、最初のマッチングで上側の形態を認識し、次いでその部分の参照画像側の重みUの値を0にして無評価とし、次のマッチングで下側の形態を認識し、次いでその部分の重みを0にして無評価とする処理を、認識される形態がなくなるまで続けることによって、互いに重なり合う形態を全て認識することができる。
(4−5)実施例4による効果
本実施例4によると、テンプレートに登録した形態が参照画像内に重なって複数存在する場合でも、最初のマッチングで上側の形態を認識し、次いでその部分の参照画像側の重みUの値を0にして無評価とし、次のマッチングで下側の形態を認識し、次いでその部分の重みを0にして無評価とする処理を、認識される形態がなくなるまで続けることによって、互いに重なり合う形態を全て認識することができる。
実施例3では、一度しかマッチングしなかったため、重なり合う形態の上の部分しか認識できなかった。実施例4では、このように、マッチングして検知して部位の参照側の重みUの値を0にして、再度マッチングすることにより、重なった下の部分の形態も認識することができるようになる。
(4−6)その他1
本実施例4の処理では、形態のエッジ部をテンプレートとして登録し、エッジ近傍の重みを0にしたテンプレート側の重みを作り、形態のエッジ部で囲われた領域とその所定の周辺を形態の抽出画像領域とすることができる。その場合、参照画像に対してもエッジを取得する処理をして、最初の参照画像側の重みがなく全て1の状態でテンプレート側と参照画像側の重み付きマッチングを行い、所定の閾値より高い重み付き相関値を持つ位置を検知し、その位置に対応した形態の抽出画像の領域分だけ、参照画像側の重みを0にする。次いで再度テンプレート側と参照画像側の重み付きマッチングを行い、所定の閾値より高い重み付き相関値を持つ位置を検知し、更に、その位置に対応した形態の抽出画像の領域分だけ、参照画像側の重みを0にする。以上の処理を所定の閾値より高い重み付き相関値を持つ位置がなくなるまで続ける。これにより、検知すべき形態部のエッジが多少変形していても、当該形態を正しく検知できるという利点がある処理となる。
(4−7)その他2
本発明第4の実施例では、テンプレート側にも重みを付けた例を記載したが、
テンプレート側の重みを付けず、参照側の重みのみ付け、マッチングする毎に、
上記のように、所定の閾値より高い重み付き相関値を持つ位置の参照側の重みを
変更して再度マッチングして行くことができる。
(4−6)その他1
本実施例4の処理では、形態のエッジ部をテンプレートとして登録し、エッジ近傍の重みを0にしたテンプレート側の重みを作り、形態のエッジ部で囲われた領域とその所定の周辺を形態の抽出画像領域とすることができる。その場合、参照画像に対してもエッジを取得する処理をして、最初の参照画像側の重みがなく全て1の状態でテンプレート側と参照画像側の重み付きマッチングを行い、所定の閾値より高い重み付き相関値を持つ位置を検知し、その位置に対応した形態の抽出画像の領域分だけ、参照画像側の重みを0にする。次いで再度テンプレート側と参照画像側の重み付きマッチングを行い、所定の閾値より高い重み付き相関値を持つ位置を検知し、更に、その位置に対応した形態の抽出画像の領域分だけ、参照画像側の重みを0にする。以上の処理を所定の閾値より高い重み付き相関値を持つ位置がなくなるまで続ける。これにより、検知すべき形態部のエッジが多少変形していても、当該形態を正しく検知できるという利点がある処理となる。
(4−7)その他2
本発明第4の実施例では、テンプレート側にも重みを付けた例を記載したが、
テンプレート側の重みを付けず、参照側の重みのみ付け、マッチングする毎に、
上記のように、所定の閾値より高い重み付き相関値を持つ位置の参照側の重みを
変更して再度マッチングして行くことができる。
また、所定の閾値より高い重み付き相関値を持つ位置だけでなく、所定の
距離を定め、その周辺位置の参照側の重みも0に変更しても構わない。
距離を定め、その周辺位置の参照側の重みも0に変更しても構わない。
その他、隣り合う位置が、所定の閾値より高い重み付き相関値を持つ場合、重み付き相関値が高い方が正解位置にあり、低い方がズレた位置にあると見なすこともできる。例えば、重み付き相関値が最も高い位置を探し、その値が所定の値より高い場合は、その位置とその位置から所定の距離離れた位置の評価値を所定の値より低く変更し、次に評価値の高い位置を探し、その値が所定の閾値より高い場合は、更に、その位置とその位置から所定の距離離れた位置の評価値を所定の値より低く変更し、順次、評価値が所定の閾値より低くなるまで、これを繰り返して、位置検知することができる。更に、このようにして検知した各位置とそれらの位置から所定の距離離れた位置の参照側の重みを0にすることもできる。
(5)実施例5
(5−1)実施例4との相違点
実施例5の構成は実施例4と同じである。手順全体を示すフロー図も実施例4と同じ図8となる。実施例4と異なる部分は、図8のステップ802と、ステップ705、ステップ806で行う処理の中身である。本発明の実施例5では、図13の参照画像1300に示すように、検知したい対象物は、同一の対象物が複数、回転して重なったものであることを前提とする。
(5−2)実施例5のステップ802での処理
テンプレート元画像は、検知したい対象物が1つ映った画像で、その画像から、対象物を含む部分画像を指定してテンプレート0°画像1301とテンプレート側の0°重み1302、抽出画像の0°画像1303を作る。
(5)実施例5
(5−1)実施例4との相違点
実施例5の構成は実施例4と同じである。手順全体を示すフロー図も実施例4と同じ図8となる。実施例4と異なる部分は、図8のステップ802と、ステップ705、ステップ806で行う処理の中身である。本発明の実施例5では、図13の参照画像1300に示すように、検知したい対象物は、同一の対象物が複数、回転して重なったものであることを前提とする。
(5−2)実施例5のステップ802での処理
テンプレート元画像は、検知したい対象物が1つ映った画像で、その画像から、対象物を含む部分画像を指定してテンプレート0°画像1301とテンプレート側の0°重み1302、抽出画像の0°画像1303を作る。
ここでは、テンプレート0°画像1301は、テンプレート画像のエッジを検知した2値画像とする。エッジの検知の仕方は各種あり、例えば、原画像から7*7画素の平均画像を引き、所定の閾値より高い値を持った領域を1とし、それ以外を0とすることでもエッジ検知ができる。図13のテンプレート0°画像1301に図示した例では、画像枠から内部の白い部分が0の値を持ち、黒い部分が1の値を持つ2値の画像である。
テンプレート側の0°重み1302も2値画像である。テンプレート0°画像1301の1の値を持つ部分の位置に当たる部分の重みを1とし、その周囲の所定画素、例えば5画素迄を重み0の無評価域とし、更にその外側の背景部を重み1として作成する。図13のテンプレート側の0°重み1302に図示した例では、図の黒い部分が重み1、白い部分が重み0である。
抽出画像の0°画像1303も2値画像である。テンプレート0°画像1301の1の値を持つ部分の位置に当たる部分と、その周囲の所定画素、例えば5画素迄を0とし、更に、その内部も0の値とし、その他を1とする。図13の抽出画像の0°画像1303に図示した例では、図の黒い部分が1、白い部分が0である。これは、検知したい対象物を所定の幅を持って含んだ領域が0となり、その他の領域が1となっていることを示す。
以上のテンプレート0°画像1301とテンプレート側の0°重み1302、抽出画像の0°画像1303を参照して、更に、形態部を回転させた画像を複数作成する。回転は、等ステップ毎に1周する前まで行う。例えば、10°ステップで350°迄回転したものをそれぞれ作成する。図14に、回転してできた各画像の一部を例示する。10°回転したものは、テンプレート10°回転画像1411とテンプレート側の10°回転重み1412、抽出画像の10°回転画像1413であり、20°回転したものは、テンプレート20°回転画像1421とテンプレート側の20°回転重み1422、抽出画像の20°回転画像1423である。このように、30°、40°、………、350°と、全てのステップについて、それぞれの画像を作成する。なお、形態部を回転させても画像の外側に形態が出ないように、テンプレート0°画像1301とテンプレート側の0°重み1302、抽出画像の0°画像1303の画像サイズは大きく取っておく必要がある。
(5−3)実施例5でのステップ705の処理
テンプレート0°画像1301とテンプレート側の0°重み、参照画像側の重み、参照画像1300を用い、数19〜27に基づいた重み付きマッチングを行い、0°角度の時の評価値画像を得る。評価値画像とは、画像上の各点の位置に、テンプレート画像の左隅の点が乗った時に参照画像の対応領域との間でマッチングをした結果の評価値、例えば正規化相関値を画像として表現したものである。その他、テンプレート10°回転画像1411とテンプレート側の10°重み1412、参照画像側の重み、参照画像1300を用いて、同様のマッチングを行うことにより10°回転の評価値画像を得たり、テンプレート20°回転画像1421とテンプレート側の20°重み1422、参照画像側の重み、参照画像1300を用いて同様のマッチングを行うことにより20°回転の評価画像を得るなど、全ての回転角度のテンプレート画像とテンプレート側の重み、参照画像側の重みを用いて、同様のマッチングを行うことにより全ての回転角度の評価値画像を作成する。
(5−4)実施例5でのステップ806の処理
全ての回転角度の評価値画像を基に、各点の最大評価値を含む最大評価値画像と、その最大評価値に対応する角度を記した最大評価値角度画像を作成する。最大評価値画像の中から最大評価値が最も大きい点を探し、その点の値が所定の閾値以上であれば、検知したい対象物がその点の位置にあると判定する。正確には、その点の位置の最大評価値角度画像から回転角度を求め、その点の位置を左上として、その回転角度のテンプレート画像の形態と重なる位置に、検知したい対象物があると判定する。検知したい対象物があると判定したら、その点の位置の対象画像側の重みを変更する。参照画像側の重みの変更は、検知した位置を左上に、検知した回転角度の抽出画像を参照画像側の重みに重ね、重なった位置の双方の値を掛けた値を新たな参照画像側の重みにすることもできる。この処理で、抽出画像において、検知したい対象物を含む所定の幅の領域の重みが0となり、他の領域の重みは1となるので、結果としてできた参照画像側の重みのうち、検知した対象物を含む所定の幅に対応する重みが0に変更されたことになる。
(5−3)実施例5でのステップ705の処理
テンプレート0°画像1301とテンプレート側の0°重み、参照画像側の重み、参照画像1300を用い、数19〜27に基づいた重み付きマッチングを行い、0°角度の時の評価値画像を得る。評価値画像とは、画像上の各点の位置に、テンプレート画像の左隅の点が乗った時に参照画像の対応領域との間でマッチングをした結果の評価値、例えば正規化相関値を画像として表現したものである。その他、テンプレート10°回転画像1411とテンプレート側の10°重み1412、参照画像側の重み、参照画像1300を用いて、同様のマッチングを行うことにより10°回転の評価値画像を得たり、テンプレート20°回転画像1421とテンプレート側の20°重み1422、参照画像側の重み、参照画像1300を用いて同様のマッチングを行うことにより20°回転の評価画像を得るなど、全ての回転角度のテンプレート画像とテンプレート側の重み、参照画像側の重みを用いて、同様のマッチングを行うことにより全ての回転角度の評価値画像を作成する。
(5−4)実施例5でのステップ806の処理
全ての回転角度の評価値画像を基に、各点の最大評価値を含む最大評価値画像と、その最大評価値に対応する角度を記した最大評価値角度画像を作成する。最大評価値画像の中から最大評価値が最も大きい点を探し、その点の値が所定の閾値以上であれば、検知したい対象物がその点の位置にあると判定する。正確には、その点の位置の最大評価値角度画像から回転角度を求め、その点の位置を左上として、その回転角度のテンプレート画像の形態と重なる位置に、検知したい対象物があると判定する。検知したい対象物があると判定したら、その点の位置の対象画像側の重みを変更する。参照画像側の重みの変更は、検知した位置を左上に、検知した回転角度の抽出画像を参照画像側の重みに重ね、重なった位置の双方の値を掛けた値を新たな参照画像側の重みにすることもできる。この処理で、抽出画像において、検知したい対象物を含む所定の幅の領域の重みが0となり、他の領域の重みは1となるので、結果としてできた参照画像側の重みのうち、検知した対象物を含む所定の幅に対応する重みが0に変更されたことになる。
以上の処理により検知したい対象物があると判定した場合は、検知した位置を含む所定の周辺位置にある最大評価値画像の値を、先の検知の判断に用いた所定の閾値より小さい値、例えば−1に変更する。そして、更に、変更を受けた最大評価値画像の中で最大評価値が最も高い点を探し、その値が所定の閾値以上であれば、対象物がその点の位置にあると判断し、同様に、参照画像側の重みと最大評価値画像の値を変更する。更に、変更を受けた最大評価値の中で最も高い値が所定の閾値より低くなるまで、以上の操作を繰り返す。
このようにして、検知した位置を記録し、後でその位置を参照できるようにする。新たに検知した位置が追加されなくなるまで、このステップを繰り返す。すなわち、最大評価値画像を作成した最初の段階で、その最大評価値画像に含まれる最大評価値の最大値が閾値より低い場合は、もはや検知すべき位置がなくなったものとして、検知処理は終了し、ステップ407に進む。
(5−5)参照画像側の重みの初期値について
参照画像側の重みは、最初にステップ704で、全ての値を1に設定しても良いし、あらかじめ評価したくない位置を見つけて、その場所の重み値を0にするなど、参照画像の個性に応じて最初の重み値を定めることができる。最初にマッチング処理705を行うとき、参照画像側の重みが全ての点で同じである場合は、数19〜27の式に基づいてマッチング処理を行う必要はなく、参照画像側の重みがない場合の数1〜数9までの式に基づいてマッチングによる評価値を出すことがでる。
(5−6)参照画像側の重みの総量が少ない場合の不安定性の回避について
参照画像側の重みをテンプレートサイズ分だけ切り出した部分画像で、参照画像側の重みの総量が小さい場合は、評価する部分が少なく、結果が不安定であることを意味する。この不安定性を回避するため、ステップ705では、マッチングして評価値を出した後に、参照画像側の重みをテンプレートサイズ分切り出したときの重みの総量が所定の値より小さい場合は、その評価値を、検知の際に用いる閾値より低い値、例えば−1に変更し、その位置で検知されないようにする。
(5−7)回転角度のステップについて
ステップ802で作成する回転角度のステップは、検知したい形態を回転させた画像と回転前のテンプレート画像について、回転させる前のテンプレート側の重みを付けた重み付き相関を取り、その値が所定の値より低くなる最大の回転角度に設定することができる。また、回転対称となる角度がなければ、設定したステップで、360°以上とならない角度まで回転させた画像を各々作成する必要があるが、回転対称の角度がある場合は、その回転対称の角度を超えない角度まで、回転させた画像を各々作成する。例えば、180°対称の画像であれば、設定したステップ幅で、180°の手前までそれぞれ回転した画像を作成するだけで済む。
(5−8)その他
以上では、複数用意したテンプレートと参照画像を原画サイズのまま重み付きマッチングをして来た。この他に、一旦、画像サイズを小さくし、ステップ幅も間引いて大まかにテンプレートマッチングをして、粗く回転角度(候補角度)を検知し、その後、候補角度の周辺の角度で正確に回転角度を求める方法もある。正確に回転角度を求める具体的な方法として、例えば、元の大きなサイズで候補角度から間引いた角度までの周辺位置を含めた小領域の正規化相関を求め、その中で評価値の最も高い位置と回転角度を求めるようにすることもできる。
(5−9)その他2
以上では、テンプレート側の重みのある場合を想定したが、テンプレート側の重みを設定しない場合(重みが1の場合を含める)もある。この時、参照画像側の重みがある場合は、数10〜18までの式に基づいたマッチングを行い、参照画像側の重みがない場合(重みが1の場合も含める)は、数34〜37までの式に基づいたマッチングを行うことができる。このように、テンプレート側の重みと参照画像の重みの設定の仕方によって、以下のように、マッチングの計算式を変えて計算することができる。
・テンプレート側の重みの設定がなく(全て同じ値に設定した場合も含む)、参照画像側の重みの設定がない(全て同じ値に設定した場合も含む)場合は、数34〜37までを用いてマッチングを行う。
・テンプレート側の重みの設定があり(全て同じ値に設定した場合は含まない)、参照画像側の重みの設定がない(全て同じ値に設定した場合も含む)場合は、数1〜9までを用いてマッチングを行う。
・テンプレート側の重みの設定がなく(全て同じ値に設定した場合も含む)、参照画像側の重みの設定がある(全て同じ値に設定した場合も含まない)場合は、数10〜18までを用いてマッチングを行う。
・テンプレート側の重みの設定があり(全て同じ値に設定した場合も含まない)、参照画像側の重みの設定がある(全て同じ値に設定した場合も含まない)場合は、数19〜27までを用いてマッチングを行う。
(5−5)参照画像側の重みの初期値について
参照画像側の重みは、最初にステップ704で、全ての値を1に設定しても良いし、あらかじめ評価したくない位置を見つけて、その場所の重み値を0にするなど、参照画像の個性に応じて最初の重み値を定めることができる。最初にマッチング処理705を行うとき、参照画像側の重みが全ての点で同じである場合は、数19〜27の式に基づいてマッチング処理を行う必要はなく、参照画像側の重みがない場合の数1〜数9までの式に基づいてマッチングによる評価値を出すことがでる。
(5−6)参照画像側の重みの総量が少ない場合の不安定性の回避について
参照画像側の重みをテンプレートサイズ分だけ切り出した部分画像で、参照画像側の重みの総量が小さい場合は、評価する部分が少なく、結果が不安定であることを意味する。この不安定性を回避するため、ステップ705では、マッチングして評価値を出した後に、参照画像側の重みをテンプレートサイズ分切り出したときの重みの総量が所定の値より小さい場合は、その評価値を、検知の際に用いる閾値より低い値、例えば−1に変更し、その位置で検知されないようにする。
(5−7)回転角度のステップについて
ステップ802で作成する回転角度のステップは、検知したい形態を回転させた画像と回転前のテンプレート画像について、回転させる前のテンプレート側の重みを付けた重み付き相関を取り、その値が所定の値より低くなる最大の回転角度に設定することができる。また、回転対称となる角度がなければ、設定したステップで、360°以上とならない角度まで回転させた画像を各々作成する必要があるが、回転対称の角度がある場合は、その回転対称の角度を超えない角度まで、回転させた画像を各々作成する。例えば、180°対称の画像であれば、設定したステップ幅で、180°の手前までそれぞれ回転した画像を作成するだけで済む。
(5−8)その他
以上では、複数用意したテンプレートと参照画像を原画サイズのまま重み付きマッチングをして来た。この他に、一旦、画像サイズを小さくし、ステップ幅も間引いて大まかにテンプレートマッチングをして、粗く回転角度(候補角度)を検知し、その後、候補角度の周辺の角度で正確に回転角度を求める方法もある。正確に回転角度を求める具体的な方法として、例えば、元の大きなサイズで候補角度から間引いた角度までの周辺位置を含めた小領域の正規化相関を求め、その中で評価値の最も高い位置と回転角度を求めるようにすることもできる。
(5−9)その他2
以上では、テンプレート側の重みのある場合を想定したが、テンプレート側の重みを設定しない場合(重みが1の場合を含める)もある。この時、参照画像側の重みがある場合は、数10〜18までの式に基づいたマッチングを行い、参照画像側の重みがない場合(重みが1の場合も含める)は、数34〜37までの式に基づいたマッチングを行うことができる。このように、テンプレート側の重みと参照画像の重みの設定の仕方によって、以下のように、マッチングの計算式を変えて計算することができる。
・テンプレート側の重みの設定がなく(全て同じ値に設定した場合も含む)、参照画像側の重みの設定がない(全て同じ値に設定した場合も含む)場合は、数34〜37までを用いてマッチングを行う。
・テンプレート側の重みの設定があり(全て同じ値に設定した場合は含まない)、参照画像側の重みの設定がない(全て同じ値に設定した場合も含む)場合は、数1〜9までを用いてマッチングを行う。
・テンプレート側の重みの設定がなく(全て同じ値に設定した場合も含む)、参照画像側の重みの設定がある(全て同じ値に設定した場合も含まない)場合は、数10〜18までを用いてマッチングを行う。
・テンプレート側の重みの設定があり(全て同じ値に設定した場合も含まない)、参照画像側の重みの設定がある(全て同じ値に設定した場合も含まない)場合は、数19〜27までを用いてマッチングを行う。
なお、参照画像側の重みの設定がない場合は、参照画像側の重みを変更する際は、全て同じ値に設定していたもの、例えば全て1の値であったものとして、重みを変更する。
(5−10)その他3
以上では、同一物が重なった場合を想定した。同一物だけでなく、複数の形態を持つ物体が重なった場合も、それらの形態ごとにテンプレートを用意して、上記の角度毎のテンプレートの代わりに、形態の異なる複数のテンプレートがあるとして、上記と同様の処理を行って、一致する形態と同じ形態を持つ物体を検知することができる。
(5−10)その他3
以上では、同一物が重なった場合を想定した。同一物だけでなく、複数の形態を持つ物体が重なった場合も、それらの形態ごとにテンプレートを用意して、上記の角度毎のテンプレートの代わりに、形態の異なる複数のテンプレートがあるとして、上記と同様の処理を行って、一致する形態と同じ形態を持つ物体を検知することができる。
また、複数の形態を持つ物体が回転を伴う場合は、同様に、複数の形態の0°のテンプレートをそれぞれ用意するだけでなく、上記と同様に、それぞれの形態毎に所定の回転角度ごとに形態を回転させたテンプレートを用意し、形態と回転角度の異なるテンプレート全てについて、上記と同様に複数のテンプレートがあるとして、上記と同様に複数の形態の回転まで含めて検知することができる。
なお、形態が異なる場合は、判定時の所定の閾値も、形態毎に変更することが好ましい。
(5−11)その他4
以上では、テンプレートと参照画像のマッチング処理は、重み付きの正規化相関を評価値計算手段として用いていたが、重み付き正規化相関だけではなく、重み付きの正規化相関の式の分子の項(重み付きの差の2乗和)など、他の評価指標を用いることができる。その他、マッチング処理の評価値計算手段として一般化ハフ変換など、特徴点を検知して比較評価計算に用いる方法や、輪郭をモデル化して一致しているか比較評価計算をする方法を用いた場合でも、同様のことができる。すなわち、最初に、マッチングにより重なった形態の上の形態を検知し、検知した形態部分の参照画像側の重みを0にして(検知した形態部分の参照画像側の場所をマスクして)、再度、重み付き(マスク付き)の検知をして、重なった下にある形態を順次検知して行くことができる。
(6)実施例6
実施例6では、周期的なパターンを持った撮影画像の場合に、そのパターンを誤認する確率が低くなるように、テンプレート側の重みを作る方法を提供する。
(6−1)構成、手順概要
実施例6では、図15のようなテンプレート元画像で、周期的な形態を持つ場合を想定する。このような形態では、テンプレート元画像の端の画素の画素値と当該端の画素の隣にあるテンプレート元画像以外の画素の画素値とが大きく異なり、テンプレート元画像内の画素の画素値とその画素から1周期ずれた場所にあるテンプレート元画像内の画素の画素値の差は比較的小さい。そこで、テンプレート元画像の端の画素について、1周期ずれた場所との評価値の差が大きくなるように、その重みを大きくする。
(5−11)その他4
以上では、テンプレートと参照画像のマッチング処理は、重み付きの正規化相関を評価値計算手段として用いていたが、重み付き正規化相関だけではなく、重み付きの正規化相関の式の分子の項(重み付きの差の2乗和)など、他の評価指標を用いることができる。その他、マッチング処理の評価値計算手段として一般化ハフ変換など、特徴点を検知して比較評価計算に用いる方法や、輪郭をモデル化して一致しているか比較評価計算をする方法を用いた場合でも、同様のことができる。すなわち、最初に、マッチングにより重なった形態の上の形態を検知し、検知した形態部分の参照画像側の重みを0にして(検知した形態部分の参照画像側の場所をマスクして)、再度、重み付き(マスク付き)の検知をして、重なった下にある形態を順次検知して行くことができる。
(6)実施例6
実施例6では、周期的なパターンを持った撮影画像の場合に、そのパターンを誤認する確率が低くなるように、テンプレート側の重みを作る方法を提供する。
(6−1)構成、手順概要
実施例6では、図15のようなテンプレート元画像で、周期的な形態を持つ場合を想定する。このような形態では、テンプレート元画像の端の画素の画素値と当該端の画素の隣にあるテンプレート元画像以外の画素の画素値とが大きく異なり、テンプレート元画像内の画素の画素値とその画素から1周期ずれた場所にあるテンプレート元画像内の画素の画素値の差は比較的小さい。そこで、テンプレート元画像の端の画素について、1周期ずれた場所との評価値の差が大きくなるように、その重みを大きくする。
実施例6では、以上のように、テンプレート側の重みの付け方が周期的な形態に対応したものになるだけで、その他は、実施例1や実施例3と同じである。従って、構成や手順の概要は実施例1や実施例3と同じであり、以後記載するように、テンプレート側の重みの付け方のみが周期的な形態に特化されている。
(6−2)テンプレート側の重みの作り方の概要
図15の周期的なテンプレート元画像1500から、周期的な形態の角の特徴ある部分を選択して周期的な形態のテンプレート画像1501を作成する。テンプレート画像は、テンプレート元画像からエッジ抽出を行い、指定場所のエッジ抽出画像を抜き出したものとすることもできる。
(6−2)テンプレート側の重みの作り方の概要
図15の周期的なテンプレート元画像1500から、周期的な形態の角の特徴ある部分を選択して周期的な形態のテンプレート画像1501を作成する。テンプレート画像は、テンプレート元画像からエッジ抽出を行い、指定場所のエッジ抽出画像を抜き出したものとすることもできる。
テンプレート側の重みは、周期的なテンプレート元画像1500から周期を持つ方向と1周期分の長さを検知し、1周期ずれたものとの差を取って作成する。図15の場合、周期を持つ方向は左右と上下の2方向あり、1周期ずれたものも、それぞれ反対方向もあるので、全部で4つの1周期ずれたものと比較を行って重みを作成する。図16にその様子を図示する。
テンプレート画像1501に対し、形態が1周期右にずれた画像1611、形態が1周期左にずれた画像1612、形態が1周期下にずれた画像1621、形態が1周期上にずれた画像1622を取り、それぞれ、テンプレート画像と差を取って、差画像1613、1614、1623、1624を作る。更にこれらの差画像のうち2つの差画像を重ねた画像1615、1625を作り、得られた画像1615、1625を更に合成して合成画像1602を作る。合成画像1602の作成においては、単に2つを重ねた画像1615と1625を加算しても良い。
合成画像1602の各画素の値の絶対値を取り、それが所定の大きさを超える時にその位置の重みをAとし、それ以外を1としてテンプレート側の重みを作成する。Aの値は、1よりも大きく、例えば2、3のような所定の値に設定しても良いし、重みを付与した結果を見て適当に調整してもよい。
また、合成画像1602中の各画素値の絶対値を取った画像について、膨張処理や平滑化処理をしてから、上と同様に、画素値が所定の大きさを超える場合にその位置の重みをAとし、それ以外を1としてテンプレート側の重みを作成することもできる。なお、膨張処理は、所定の近傍の画素内で最も大きな値を持つ値をその画素の新たな画素値とする処理で、平滑化処理は、所定の近傍画素内での平均値やそれに類する値を新たな画素値とする処理である。
(6−3)周期の見つけ方(その1)
テンプレート元画像から、周期的な方向と1周期の長さを求める方法は各種ある。一例を以下に記す。
(6−3)周期の見つけ方(その1)
テンプレート元画像から、周期的な方向と1周期の長さを求める方法は各種ある。一例を以下に記す。
周期的なテンプレート元画像1500をフーリエ変換すると、フーリエ変換画像にピークが現れる。フーリエ変換の0周波数(以後原点と呼ぶ)は除き、フーリエ変換値の最も大きな点を求める。原点からから求めた点までの方向と90°異なる方向が、周期的な方向に相当し、原点から求めた点までの距離が1周期の長さに相当する。例えば、その点が、原点から見て(a,b)の点であれば、周期は(b,−a)の方向で1周期の長さは√(a*a+b*b)である。以上で求めた方向を除き、次にフーリエ変換値の大きな点が、別の周期的な方向と周期の長さを与える。すなわち、その点が原点から見て(c,d)の点であれば、(d,−c)の方向で、1周期の長さは√(c*c+d*d)となる。
(6−4)周期の見つけ方(その2)
テンプレート元画像から、周期的な方向と1周期の長さを求める別の方法は、テンプレート元画像とテンプレート画像の正規化相関のテンプレートマッチングを利用する方法である。この場合、テンプレート元画像を参照画像としてテンプレートマッチングを行う。得られた正規化相関値の最も高い場所は、テンプレートを取った場所で、その位置を(e,f)とする。その位置から所定の長さの範囲にある点は除き、2番目に大きな値を持つ点の位置を(g,h)とすると、周期的な方向は、(g−e,h−f)で、1周期の長さは、√((g−e)*(g−e)+(h−f)*(h−f))である。(e,f)から(g,h)を望む方向に線を引き、反対側も線を伸ばし、その線から所定の幅と所定の角度離れた点を除き、次に大きな値を持つ点の位置を(i,j)とする。別の周期的な方向は、(i−e,j−f)で、1周期の長さは、√((i−e)*(i−e)+(j−f)*(j−f))となる。
(6−4)周期の見つけ方(その2)
テンプレート元画像から、周期的な方向と1周期の長さを求める別の方法は、テンプレート元画像とテンプレート画像の正規化相関のテンプレートマッチングを利用する方法である。この場合、テンプレート元画像を参照画像としてテンプレートマッチングを行う。得られた正規化相関値の最も高い場所は、テンプレートを取った場所で、その位置を(e,f)とする。その位置から所定の長さの範囲にある点は除き、2番目に大きな値を持つ点の位置を(g,h)とすると、周期的な方向は、(g−e,h−f)で、1周期の長さは、√((g−e)*(g−e)+(h−f)*(h−f))である。(e,f)から(g,h)を望む方向に線を引き、反対側も線を伸ばし、その線から所定の幅と所定の角度離れた点を除き、次に大きな値を持つ点の位置を(i,j)とする。別の周期的な方向は、(i−e,j−f)で、1周期の長さは、√((i−e)*(i−e)+(j−f)*(j−f))となる。
このように、周期的なパターンを持った撮影画像の場合に、そのパターンを誤認する確率が低くなるように、テンプレート側の重みを作る方法を提供することができる。
(7)実施例7
(7−1)構成、手順概要
実施例7では、実施例6と同様に、図15のような周期的な形態を持つテンプレート元画像を想定する。手順の概要は、テンプレート側に重みを付ける具体的な方法が異なる以外は実施例6と同じである。
(7−2)テンプレート側の重みの設定方法
実施例6では、周期的なテンプレート元画像1500の周期的な方向と1周期の距離を検知してテンプレート側の重みを作成していたが、実施例7では、周期や1周期の距離を具体的に求めず、大まかに周期的な形態の端の部分を検知してその位置のテンプレート側の重みを重くすることを行う。
(7)実施例7
(7−1)構成、手順概要
実施例7では、実施例6と同様に、図15のような周期的な形態を持つテンプレート元画像を想定する。手順の概要は、テンプレート側に重みを付ける具体的な方法が異なる以外は実施例6と同じである。
(7−2)テンプレート側の重みの設定方法
実施例6では、周期的なテンプレート元画像1500の周期的な方向と1周期の距離を検知してテンプレート側の重みを作成していたが、実施例7では、周期や1周期の距離を具体的に求めず、大まかに周期的な形態の端の部分を検知してその位置のテンプレート側の重みを重くすることを行う。
初めに、テンプレート元画像1500の膨張処理を行って、周期的な構造物が見えない程度に膨らませる。膨張処理は、着目点の所望の近傍にある画素の画素値の最大値をその着目点の新たな画素値に変更する処理である。実際にどの範囲程度の近傍画素に対してこの処理を行うかについては、結果を見て決めることができる。一度に見る近傍画素を増やす代わりに、例えば、3*3の近傍画素の中で最大値を持つ値を中心画素の値とする処理を複数回行い、回数の制御を行うことにより膨張距離の制御を行うことができる。図17に膨張処理を適度に行った後の画像1700を例示する。
次に、膨張処理を適度に行った後の画像1700と、膨張処理を適度に行った画像1700を適度な距離で平滑化した画像との差を取り、所望の値より大きな部分を1、それよりも小さな部分を0にした大域的なエッジ画像1800(図18)を作成する。上記適度な距離は、エッジから幅が±1周期分程度ある大域的なエッジが取れる距離で、例えば、先の膨張処理を行った際の膨張距離の片側幅程度に設定することができる。
以上の処理で、大域的なエッジ画像1800を作成したら、大域的なエッジ画像からテンプレート選択位置の画像1801を抜き出し、この画像の画素値が1の時、対応する位置のテンプレート側の重みをAとし、この画像の画素値が0の時、対応する位置のテンプレート側の重みを1にすることができる。重みAは、実施例6と同様に、所定の値にすることや、結果を見て適時変更することなどもできる。
(7−3)その他
以上の例では、大域的なエッジをテンプレート元画像1500から作成し、テンプレート側の重みを作成したが、この他にも、テンプレート側の重みは変えずに、参照画像側の重みを変えるようにすることができる。例えば、参照画像を適当な膨張距離を持って膨張させ、適当な平滑化距離を持って平滑化した画像を当該膨張させた参照画像から差し引いて得られた差画像の所定の閾値よりも大きな値を持つ参照画像内の位置の重みをA、その他の重みを1にすることができる。
(7−3)その他
以上の例では、大域的なエッジをテンプレート元画像1500から作成し、テンプレート側の重みを作成したが、この他にも、テンプレート側の重みは変えずに、参照画像側の重みを変えるようにすることができる。例えば、参照画像を適当な膨張距離を持って膨張させ、適当な平滑化距離を持って平滑化した画像を当該膨張させた参照画像から差し引いて得られた差画像の所定の閾値よりも大きな値を持つ参照画像内の位置の重みをA、その他の重みを1にすることができる。
この場合、テンプレート側の重みがない場合(全て同じ値の場合を含む)は、数10〜18までの式に基づいたマッチングを行い、テンプレート側の重みがある場合は、数19〜27までの式に基づいたマッチングを行う。このように、テンプレート側の重み、参照画像側の重みの有無を見て、重みのない場合(全て同じ値の場合を含む)は、その重みがない時のマッチングの式でマッチングを行うことができる。
(7−4)その他2
以上の例では、テンプレート元画像が周期的な形態を持つ場合を想定したが、周期的な形態でなくても、適当な幅を持って大域的なエッジを検出し、大域的なエッジの部分の重みを重くしたテンプレート側の重みを作成することができる。この場合は、似た形態があった場合、違いが少し強調された評価値を持つことが期待される。
(7−4)その他2
以上の例では、テンプレート元画像が周期的な形態を持つ場合を想定したが、周期的な形態でなくても、適当な幅を持って大域的なエッジを検出し、大域的なエッジの部分の重みを重くしたテンプレート側の重みを作成することができる。この場合は、似た形態があった場合、違いが少し強調された評価値を持つことが期待される。
また、テンプレートがエッジと背景を分けた2値画像の場合、以上の大域的なエッジの部分の重みを重くしたテンプレート側の重みについて、エッジの所定の周辺位置にある重みを0に変更した無評価部位付きの大域的なテンプレート側の重みを作成することもできる。
101…表示画面、102…テンプレート表示部、103…テンプレート側重み表示部、104…参照画像表示部、105…テンプレートボタン、106…画像ボタン、107…マッチングボタン、108…終了ボタン、109…検知位置、201…対象物、202…デジタルカメラ、203…情報伝達手段、204…計算装置、205…入力装置、206…表示装置、301…GUI手段、302…作成手段、303…参照画像処理手段、304…評価値計算手段、305…一致判断手段、401…テンプレート元画像の入力、402…テンプレート作成処理、403…参照画像の入力、404…参照画像の処理、405…マッチング処理、406…判定処理、407…マッチング情報を活用した所望の処理、502…テンプレートおよび重みの作成処理、504…参照画像の処理(1)、505…マッチング処理(1)、604…参照画像の処理および重み作成処理(0)、605…マッチング処理(2)、704…参照画像の処理および重み作成(1)、705…マッチング処理(3)802…テンプレート・重み・形態抽出処理、806…判定処理および再マッチングするか判定する処理、902…テンプレート元画像表示部、903…切り出し画像表示部、904…テンプレート表示部、905…テンプレート側の重み表示部、906…画像入力ボタン、907…テンプレート入力、908…作成ボタン、909…パラメータ入力部、910…保存ボタン、911…戻りボタン、1002…画像表示部、1003…画像入力ボタン、1004…処理ボタン、1005…パラメータ入力部、1006…表示切替ボタン、1007…戻りボタン、1100…重なった図形がある参照画像、1101…上の図形、1102…下の図形、1103…テンプレート登録画像例、1104…抽出画像の領域例、1201…検知された位置の抽出画像の領域、1300…重なった図形のある参照画像、1301…テンプレート0°画像、1302…テンプレート側の0°重み、1303…抽出画像の0°画像、1411…テンプレート10°回転画像、1412…テンプレート側の10°回転重み、1413…抽出画像の10°回転画像、1421…テンプレート20°回転画像、1422…テンプレート側の20°回転重み、1423…抽出画像の20°回転画像、1500…周期的なテンプレート元画像、1501…周期的な形態のテンプレート画像、1602…合成画像、1611…形態が1周期右にずれた画像、1612…形態が1周期左にずれた画像、1613…差画像、1614…差画像、1615…差画像2つを重ねた画像、1621…形態が1周期下にずれた画像、1622…形態が1周期上にずれた画像、1623…差画像、1624…差画像、1625…差画像2つを重ねた画像、1700…膨張処理を適度に行った後の画像、1800…大域的なエッジ画像、1801…大域的なエッジ画像の中のテンプレート選択位置の画像
Claims (22)
- テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、前記テンプレート画像からテンプレート及びテンプレート側重みを作成し、
前記評価値計算手段は、前記テンプレートと、前記テンプレート側重みと、前記参照画像とを入力として、前記参照画像の点(x,y)の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw(x,y)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、前記第3の画像をWとし、高速フーリエ変換を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)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)において前記参照画像と前記にテンプレートが同じ形態を有すると判定する処理を行う、
ことを特徴とするテンプレートマッチング実行装置。 - テンプレート画像と、参照画像とのマッチングを行い、前記マッチングの評価値が所定の値より高い位置を検知し、その前記検知した位置に対応する該参照画像側の重みを0にする重み変更手段をさらに備え、
前記検知した位置がなくなるまで該マッチング処理と該重み変更処理を繰り返し行うことを特徴とする、請求項2または3に記載のテンプレートマッチング実行装置。 - テンプレート作成手段と評価値計算手段と判定手段とを備えた、テンプレート画像と参照画像のテンプレートマッチングを実行するプログラムであって、
コンピュータに、
前記テンプレート作成手段が、前記テンプレート画像からテンプレート及びテンプレート側重みを作成するステップと、
前記評価値計算手段が、前記テンプレートと、前記テンプレート側重みと、前記参照画像とを入力として、前記参照画像の点(x,y)の位置に前記テンプレートを重ねた場合の両者の重み付き正規化相関値Jw(x,y)を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)において前記参照画像と前記テンプレートが同じ形態を有すると判定する処理を行うステップと、
を実行させることを特徴とするプログラム。 - テンプレート画像と、参照画像とのマッチングを行い、前記マッチングの評価値が所定の値より高い位置を検知し、その前記検知した位置に対応する該参照画像側の重みを0にする重み変更手段をさらに備え、
コンピュータに、前記検知した位置がなくなるまで該マッチング処理と該重み変更処理を繰り返し行わせることを特徴とする、請求項6または7に記載のプログラム。 - テンプレート作成手段と評価値計算手段と判定手段と参照画像側の重み変更手段を備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像を所定の回転ステップごとに回転させて複数のテンプレート、テンプレート側の重み、および前記参照画像から形態を抽出するための抽出画像を作成し、
前記評価値計算手段は、前記複数のテンプレートの各々について、前記参照画像中の各点に、当該テンプレートの左端を重ねた場合の両者の重み付き正規化相関値Jw(x,y)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換をF[]とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* []とし、高速逆フーリエ変換をF-1[]とし、画像の各成分値を全て加算した値を出す演算をA[]とし、平方根を取る演算をsqrt()とし、高速逆フーリエ変換してできた画像の点(x,y)の値を取ることをF-1xyとして、
前記参照画像側の重みが設定されていない場合、または、前記参照画像側の重みが全て同じ値の場合は、
Tm、Tnをテンプレートサイズとし、Cxy[I’・I’]は、ランニングサム法により求めるI’・I’画像の左上(x,y)の点から始まるテンプレートサイズ分の総和として、
Jw(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-1,y+Tn-1) + s(x-1,y-1)
- s(x+Tm-1,y-1) - s(x-1, y+Tn-1)
により、
前記参照画像側の重みが全て同じ値ではない場合は、
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] ]
により、
求めて当該テンプレートについての評価値とし、
前記判定手段は、前記参照画像中の各点について、前記複数のテンプレートの各々について求めた評価値のうち最大値を画素値とした最大評価値画像と、前記各点における最大値を与えた回転角度を当該点に記した最大評価値角度画像を作成し、
前記判定手段は、さらに、
前記最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記参照画像側の重み変更手段で参照画像側の重みを変更し、前記最大値を有する位置の所定の周辺位置の評価値を、前記所定の閾値より小さい値に変更して新たな最大評価値画像を作成する作成ステップを含み、
前記新たな最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記新たな最大評価値画像中で評価値の最大値が前記所定の閾値より小さくなるまで、前記作成ステップを繰り返す
ことを特徴とするテンプレートマッチング実行装置。 - 前記参照画像側の重み変更手段は、前記評価値の最大値を有する位置を左上として、前記最大値を与えた前記回転角度の抽出画像を前記参照画像に重ねて、重なった位置の双方の重みの値を乗じた値を新たな参照画像側の重みとすることを特徴とする請求項9または10に記載のテンプレートマッチング実行装置。
- テンプレート作成手段と比較評価手段と判定手段と参照画像側の重み変更手段を備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像からテンプレートを作成し、
前記評価値計算手段は、
参照画像側に重みが付与されている場合は、上記テンプレートと参照画像との重み付きの一致度の評価値を計算し、
参照画像側に重みが付与されていない場合は、上記テンプレートと参照画像との重みなしの一致度の評価値を計算し、
前記判定手段は、前記評価値から前記所定の閾値よりも高い値を持つ場所に検知を所望する形態があると判定し、
前記参照画像側の重み変更手段は、前記判定手段で検知した場所の参照画像側の重みを変更する
ことを特徴とするテンプレートマッチング実行装置。 - 請求項1または3において、上記テンプレート元画像に周期的な形態がある場合、前記周期の方向と1周期の距離を検知して、前記テンプレート元画像を前記周期の方向と1周期の距離分移動した画像と前記テンプレート元画像との差を基に、上記テンプレート側の重みを作成する
ことを特徴とするテンプレートマッチング実行装置。 - 請求項1または3において、上記テンプレート元画像の大域的なエッジを検出し、前記大域的なエッジを参照して、上記テンプレート側の重みを作成する
ことを特徴とするテンプレートマッチング実行装置。 - テンプレート作成手段と評価値計算手段と参照画像処理手段と判定手段とを備えた、テンプレートマッチングを実行するテンプレートマッチング実行装置であって、
前記テンプレート作成手段は、指定されたテンプレート元画像からテンプレートを作成し、
前記評価値計算手段は、前記テンプレートと、前記テンプレート側重みと、参照画像とを入力として、前記参照画像の点(x,y)の位置に前記テンプレートの左端を重ねた場合の両者の評価値J(x,y)を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換をF[]とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* []とし、高速逆フーリエ変換をF-1[]とし、画像の各成分値を全て加算した値を出す演算をA[]とし、バタフライ演算してできた画像の点(x,y)の値を取る演算をBxy[]とし、平方根を取る演算をsqrt()とし、高速逆フーリエ変換してできた画像の点(x,y)の値を取ることをF-1xyとして、
前記テンプレート作成手段によりテンプレート側の重みが設定されておらず(全て同じ値に設定した場合も含む)、前記参照画像処理手段により参照画像側の重みが設定されていない(全て同じ値に設定した場合も含む)場合は、
Tm、Tnをテンプレートサイズとし、Cxy[I’・I’]は、ランニングサム法により求めるI’・I’画像の左上(x,y)の点から始まるテンプレートサイズ分の総和として、
Jw(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-1,y+Tn-1) + s(x-1,y-1)
- s(x+Tm-1,y-1) - s(x-1, y+Tn-1)
により、
前記テンプレート作成手段によりテンプレート側の重みが設定されており(全て同じ値に設定した場合は含まない)、前記参照画像処理手段により参照画像側の重みが設定されていない(全て同じ値に設定した場合も含む)場合は、
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)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換を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)を、
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換をF[]とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* []とし、高速逆フーリエ変換をF-1[]とし、画像の各成分値を全て加算した値を出す演算をA[]とし、平方根を取る演算をsqrt()とし、高速逆フーリエ変換してできた画像の点(x,y)の値を取ることをF-1xyとして、
前記参照画像側の重みが設定されていない場合、または、前記参照画像側の重みが全て同じ値の場合は、
Tm、Tnをテンプレートサイズとし、Cxy[I’・I’]は、ランニングサム法により求めるI’・I’画像の左上(x,y)の点から始まるテンプレートサイズ分の総和として、
Jw(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-1,y+Tn-1) + s(x-1,y-1)
- s(x+Tm-1,y-1) - s(x-1, y+Tn-1)
により、
前記参照画像側の重みが全て同じ値ではない場合は、
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] ]
により、
求めて当該テンプレートについての評価値とするステップと、
前記判定手段が、前記参照画像中の各点について、前記複数のテンプレートの各々について求めた評価値のうち最大値を画素値とした最大評価値画像と、前記各点における最大値を与えた回転角度を当該点に記した最大評価値角度画像を作成するステップと、
前記判定手段が、さらに、
前記最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記参照画像側の重み変更手段で参照画像側の重みを変更し、前記最大値を有する位置の所定の周辺位置の評価値を、前記所定の閾値より小さい値に変更して新たな最大評価値画像を作成する作成ステップと、
前記新たな最大評価値画像中の評価値の最大値が所定の閾値より大きい場合は、前記新たな最大評価値画像中で評価値の最大値が前記所定の閾値より小さくなるまで、前記作成ステップを繰り返すステップと
を実行させることを特徴とするプログラム。 - 前記参照画像側の重み変更手段は、前記評価値の最大値を有する位置を左上として、前記最大値を与えた前記回転角度の抽出画像を前記参照画像に重ねて、重なった位置の双方の重みの値を乗じた値を新たな参照画像側の重みとすることを特徴とする請求項16または17に記載のプログラム。
- テンプレート作成手段と比較評価手段と判定手段と参照画像側の重み変更手段を備えた、プログラムであって、
コンピュータに、
前記テンプレート作成手段が、指定されたテンプレート元画像からテンプレートを作成するステップと、
前記評価値計算手段が、
参照画像側に重みが付与されている場合は、上記テンプレートと参照画像との重み付きの一致度の評価値を計算するステップと、
参照画像側に重みが付与されていない場合は、上記テンプレートと参照画像との重みなしの一致度の評価値を計算するステップと、
前記判定手段が、前記評価値から前記所定の閾値よりも高い値を持つ場所に検知を所望する形態があると判定するステップと、
前記参照画像側の重み変更手段が、前記判定手段で検知した場所の参照画像側の重みを変更するステップと
を実行させることを特徴とするプログラム。 - 請求項5または7において、上記テンプレート元画像に周期的な形態がある場合、前記周期の方向と1周期の距離を検知して、前記テンプレート元画像を前記周期の方向と1周期の距離分移動した画像と前記テンプレート元画像との差を基に、上記テンプレート側の重みを作成する
ことを特徴とするプログラム。 - 請求項5または7において、上記テンプレート元画像の大域的なエッジを検出し、前記大域的なエッジを参照して、上記テンプレート側の重みを作成する
ことを特徴とするプログラム。 - テンプレート作成手段と評価値計算手段と参照画像処理手段と判定手段とを備えた、プログラムであって、
コンピュータに、
前記テンプレート作成手段が、指定されたテンプレート元画像からテンプレートを作成するステップと、
前記評価値計算手段が、前記テンプレートと、前記テンプレート側重みと、参照画像とを入力として、前記参照画像の点(x,y)の位置に前記テンプレートの左端を重ねた場合の両者の評価値J(x,y)を
辺の長さが素数のべき乗になるように前記参照画像の辺を零詰めした第1の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート元画像の辺を零詰めした第2の画像を作成するステップと、
辺の長さが前記第1の画像の辺の長さと一致するように前記テンプレート側重みの辺を零詰めした第3の画像を作成するステップと、
前記第1の画像をIとし、前記第2の画像をTとし、、前記第3の画像をWとし、高速フーリエ変換をF[]とし、画像を高速フーリエ変換した後に各成分の複素共役を取った画像を作る画像変換をF* []とし、高速逆フーリエ変換をF-1[]とし、画像の各成分値を全て加算した値を出す演算をA[]とし、バタフライ演算してできた画像の点(x,y)の値を取る演算をBxy[]とし、平方根を取る演算をsqrt()とし、高速逆フーリエ変換してできた画像の点(x,y)の値を取ることをF-1xyとして、
前記テンプレート作成手段によりテンプレート側の重みが設定されておらず(全て同じ値に設定した場合も含む)、前記参照画像処理手段により参照画像側の重みが設定されていない(全て同じ値に設定した場合も含む)場合は、
Tm、Tnをテンプレートサイズとし、Cxy[I’・I’]は、ランニングサム法により求めるI’・I’画像の左上(x,y)の点から始まるテンプレートサイズ分の総和として、
Jw(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-1,y+Tn-1) + s(x-1,y-1)
- s(x+Tm-1,y-1) - s(x-1, y+Tn-1)
により、
前記テンプレート作成手段によりテンプレート側の重みが設定されており(全て同じ値に設定した場合は含まない)、前記参照画像処理手段により参照画像側の重みが設定されていない(全て同じ値に設定した場合も含む)場合は、
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] ]
により、
計算するステップと、
前記判定手段が、前記評価値を参照して参照画像にテンプレートと一致した位置があるか判定する処理を行うステップと、
を実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011039198A JP2012069084A (ja) | 2010-08-27 | 2011-02-25 | 重み付きテンプレートマッチング実行装置およびプログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010190251 | 2010-08-27 | ||
JP2010190251 | 2010-08-27 | ||
JP2011039198A JP2012069084A (ja) | 2010-08-27 | 2011-02-25 | 重み付きテンプレートマッチング実行装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012069084A true JP2012069084A (ja) | 2012-04-05 |
Family
ID=46166232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011039198A Withdrawn JP2012069084A (ja) | 2010-08-27 | 2011-02-25 | 重み付きテンプレートマッチング実行装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012069084A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164641A (ja) * | 2013-02-27 | 2014-09-08 | Seiko Epson Corp | 画像処理装置、ロボット制御システム、ロボット、プログラム及び画像処理方法 |
WO2014199824A1 (ja) * | 2013-06-13 | 2014-12-18 | コニカミノルタ株式会社 | 画像処理方法、画像処理装置および画像処理プログラム |
JP2018041277A (ja) * | 2016-09-07 | 2018-03-15 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および対象物認識方法 |
WO2023026706A1 (ja) * | 2021-08-27 | 2023-03-02 | 京セラ株式会社 | 画像処理装置及び画像処理方法 |
-
2011
- 2011-02-25 JP JP2011039198A patent/JP2012069084A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014164641A (ja) * | 2013-02-27 | 2014-09-08 | Seiko Epson Corp | 画像処理装置、ロボット制御システム、ロボット、プログラム及び画像処理方法 |
WO2014199824A1 (ja) * | 2013-06-13 | 2014-12-18 | コニカミノルタ株式会社 | 画像処理方法、画像処理装置および画像処理プログラム |
JP2018041277A (ja) * | 2016-09-07 | 2018-03-15 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および対象物認識方法 |
WO2018047705A1 (ja) * | 2016-09-07 | 2018-03-15 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および対象物認識方法 |
US11048912B2 (en) | 2016-09-07 | 2021-06-29 | Sony Interactive Entertainment Inc. | Information processing apparatus and target object recognition method |
WO2023026706A1 (ja) * | 2021-08-27 | 2023-03-02 | 京セラ株式会社 | 画像処理装置及び画像処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Demir et al. | Patch-based image inpainting with generative adversarial networks | |
Xie et al. | Edge-guided single depth image super resolution | |
Liang et al. | Objective quality prediction of image retargeting algorithms | |
WO2020199478A1 (zh) | 图像生成模型训练方法、图像生成方法、装置、设备及存储介质 | |
JP6435740B2 (ja) | データ処理システム、データ処理方法およびデータ処理プログラム | |
CN112102303B (zh) | 基于单图像生成对抗网络的语义图像类比方法 | |
Zhang et al. | Deep detail enhancement for any garment | |
CN111626912A (zh) | 水印去除方法及装置 | |
JP2012069084A (ja) | 重み付きテンプレートマッチング実行装置およびプログラム | |
Zhong et al. | Deep attentional guided image filtering | |
Shi et al. | Cranial implant design through multiaxial slice inpainting using deep learning | |
Wang et al. | Perception-guided multi-channel visual feature fusion for image retargeting | |
JP5560925B2 (ja) | 3次元形状検索装置、3次元形状検索方法、及びプログラム | |
JP5401605B2 (ja) | テンプレートマッチング処理装置およびテンプレートマッチング処理プログラム | |
CN115222895B (zh) | 图像生成方法、装置、设备以及存储介质 | |
JP2020149174A (ja) | 画像処理装置、および画像処理方法、並びにプログラム | |
KR20190136493A (ko) | 이미지 분할 방법 및 장치 | |
CN114882585A (zh) | 基于双流网络的人体姿态估计方法 | |
Zhang et al. | Region-adaptive texture-aware image resizing | |
Meng et al. | Siamese CNN-based rank learning for quality assessment of inpainted images | |
Liu et al. | One-stage inpainting with bilateral attention and pyramid filling block | |
Gao et al. | A method for face image inpainting based on autoencoder and generative adversarial network | |
CN112613470A (zh) | 一种人脸静默活体检测方法、装置、终端及存储介质 | |
Kalantari et al. | Improving patch-based synthesis by learning patch masks | |
Li et al. | Video vectorization via bipartite diffusion curves propagation and optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120522 |
|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140513 |