本発明の実施の形態について図面を参照しながら説明する。
(実施形態例1)
図1は実施形態例1に係る画像処理装置の概略図である。
本実施形態例の画像処理装置は、投票座標情報算出手段1と、投票座標情報蓄積手段2と、テンプレート加工手段3と、画像ぼかし手段4と、テンプレート蓄積手段5と、入力画像加工手段6と、加工画像蓄積手段7と、探索制御手段8と、被照合パタン生成手段9と、パタン間照合手段10と、スコア投票手段11と、スコア記録手段12と、ピーク探索手段13とを備えている。
これらの各処理手段の詳細な動作について説明する。
ここで、この動作の説明は、テンプレートを加工するモードと、加工されたテンプレートを用いて画像を探索するモードとの2つに分けられる。尚、この助作の説明では、テンプレートとして図41に示したものを想定し、探索対象画像(入力画像)として図42に示したものを想定している。
(i)テンプレートを加工するモードの動作例
テンプレートを加工するモードにおいては、テンプレート加工手段3が主に動作する。先ず、テンプレート加工手段3は、テンプレートからの複数の局所的な領域を選ぶ。(各々の領域をブロックと呼ぶ)。これらのブロックは、テンプレートからいくつ選んでもよく、大きさも任意に設定してよく、互いに部分的に重複してもよい。
図2に、テンプレートから選んだブロックの一例を図示する。
この例では、図41に示したテンプレート(以下、これをテンプレート0と呼ぶ)を4つに等分割して4個のブロックを作っている。
説明の便宜上、テンプレートのサイズは4L×4Lで表す。したがって、各ブロックのサイズは2L×2Lである。この例ではテンプレートの形状は正方形だが、この形状は任意の形状(長方形、円、楕円など)でもよい。
次に、テンプレート加工手段3は、画像ぼかし手段4にテンプレート0を渡す。これを受けて、画像ぼかし手段4は、複数のぼかし度合いでテンプレート0をぼかしてテンプレート加工手段3に返す。
具体的なぼかし方法としては、例えば2次元マトリクスを畳み込むことによる平滑化フィルタを用いる方法があり、その平滑化フィルタの例としては、画像解析ハンドブック(高木、下田監修、1991年、東京大学出版社)の539頁に記載された局所平均フィルタや局所加重平均フィルタがある。
これらのマトリクスのサイズを変えたり、局所加重フィルタの場合には、中心からの距離よる重みの変化の度合いを変えることでぼかしの度合いを変えられる。
すなわち、これらのマトリクスを大きくしたり、局所加重平均フィルタの場合には、中心からの距離による重みの減少の度合いを小さくすることで、ぼかしの度合いを大きくできる。
図3(a)〜(e)に、ぼかしの度合いを5段階に変えたぼかし画像の例を示す。
テンプレート加工手段3は、その後で、図2に示す各ブロックを1個ずつ取り出し、以下の処理を行う。
すなわち、ブロック1を例とすると、先ず、ブロックの領域を中心からの距離によって図3の(f)のように分ける。そして、各領域について、中心からの距離が大きいほどぼかしの度合いの大きいぼかし画像の対応する画素値をコピーしてくることにより、図3(g)に示すように、中心からの距離が大きい程ぼかしの度合いの大きいぼかし画像を作成する。これをテンプレート1とする。
同様の方法で、ブロック2〜4についても加工し、図4に示すようなテンプレート2〜4を作成する。
次に、テンプレートの特徴として方向別のヒストグラム特徴を用いる場合には、テンプレート1〜4を数画素のブロックに分割し、図5(a)〜(d)に示すような分割したブロック内でのエッジの方向別濃淡ヒストグラムを作成する。これをテンプレート5〜8という。テンプレート5〜8は、それぞれのテンプレートに対して、量子化された方向の数だけ作成される。
そして、テンプレート加工手段3は、これらのテンプレート1〜4または5〜8をテンプレート蓄積手段5に送り、保存する。以後の処理について、方向別のヒストグラム特徴を使用する場合、テンプレート1〜4の代わりにテンプレート5〜8を使用する。
次に、テンプレート加工手段3は、テンプレート0の基準位置とテンプレート1〜4の基準位置とを投票座標算出手段1に送る。
ここでは、一例として、図6に示すように、テンプレート0の基準位置(基準点)はその中心点、テンプレート1〜4の基準位置(基準点)は各々の中心点とする。
投票座標情報算出手段1は、テンプレート加工手段3からテンプレート0〜4の基準点の位置を受け取ると、先ずテンプレート1について、それが探索対象画像の任意の位置に置かれた際に、テンプレート1の基準点からのテンプレート0の基準点に相当する点の相対的な位置が、想定された座標変換で表現される領域の変形によってどの座標に存在する可能性があるのかを算出する。
本実施形態例では、変形の例を、拡大・縮小と回転とを組み合わせた座標変換で表されると想定する。
探索対象画像中の該当領域に変形がまったく生じなかったときには、その該当領域はテンプレート0と完全に重なるはずであり、そのときのテンプレート0の基準点を原点とした座標系では、その該当領域においてテンプレート1の基準点に該当する点の位置は(−L,L)であるが、変形が生じた場合、変換後を(x’、y’)で表すと、(x’、y’)は、下記(1)及び(2)式で表される。
x’=−aLcosγ−aLsinγ …(1)
y’=−aLsinγ+aLcosγ …(2)
ここで、aは拡大・縮小率、γは回転角度である。
一方、テンプレート0の基準点は座標系の原点なので、変形が生じなくても生じても、(0,0)である。ここで、(x’、y’)を原点としたときのテンプレート0の基準点の位置を、(Δx、Δy)で表すと、下記(3)及び(4)式で表せる。
Δx=−x’=aLcosγ+aLsinγ …(3)
Δy=−y’=aLsinγ+aLcosγ …(4)
すなわち、(3)式と(4)式とで表される(Δx、Δy)が、パラメータ値a、γによる変形が生じたときに、テンプレート1の基準点に該当する点を原点としたときのテンプレート0の基準点の位置であり、探索対象画像中の任意の位置にテンプレート1をずらして置いた際に、そのときのパタンとしてのテンプレート1と探索対象画像におけるその位置の領域との画像としての一致度合いを記録すべきテンプレートの位置である。
(Δx、Δy)は、想定されるパラメータ値の範囲内で、aとγを小幅で変化させて複数個算出する。
これについて図を参照しながら説明すると、m≦a≦n(0≦m≦1,1≦n)とし、−β≦γ≦αと想定した場合、aとγをこの範囲内で変化きせたときに、ブロック1の基準点を原点としたテンプレート0の位置(Δx、Δy)の軌跡は、図7の斜線の部分で表されることになる。
投票座標情報算出手段1は、この計算を予め行ってテーブルを作成し、投票座標情報蓄積手段2に蓄積しておく。
このテーブルの一例を図示すべく、これまでの記号で示してきた値の数値例として、L=50(画素)、β=α=20(度)、m=0.7、n=1.3を用いる。また、aとγを変化させる値として、aは(0.7,0.8,0.9,1.0,1.1,1.2,1.3)、γは(−20度,−10度,0度,10度,20度)を用いる。
図8に、これらの数値を用いて、(3)式と(4)式とにより算出した値を記録したテーブルを図示する。
同様の考え方で、テンプレート2についてテーブルを作成した結果を図9に、また、テンプレート3についてテーブルを作成した結果を図10に、テンプレート4についてテーブルを作成した結果を図11に図示する。
投票座標情報算出手段1は、これらのテーブル(以下、投票座標位置テーブルと称することがある)を作成すると、それらを投票座標情報蓄積手段2に蓄積することになる。
(ii)画像を探索するモードの動作例
この動作の説明では、テンプレートとして図41に示すものを想定し、探索対象画像として図42に示すものを想定している。また、4L=200(画素)を想定している。図42に示した探索対象画像では、図41に示すテンプレート1を1.2倍に拡大するとともに、−20度(すなわち右方向に20度)回転させた画像を、中心位置が(X=3000画素,Y=1000画素)の領域に置いたことを想定している。
したがって、図41に示すテンプレート(テンプレート0)を1.2倍に拡大するとともに、−20度回転させて、その基準位置をこの中心位置(X=3000画素、Y=1000画素)に重ねたときに、パタン間の一致の度合いがピークを持つはずである。
ここで、テンプレート1については、基準点のX座標が2964画素((1)式のx’にX=3000画素を加えた価)、Y座標が1077画素((2)式のy’にY=1000画素を加えた値)となる領域に重ねられたときに、一致の度合いがピークとなるはずであり、同様にテンプレート2については、基準点のX座標が3077画素、Y座標が1036画素となる領域に重ねられたときに、一致の度合いがピークとなるはずである。そして、テンプレート3とテンプレート4とについても、図12に示した位置に重ねたときに、一致の度合いがピークとなるはずである。
画像を探索するモードでは、先ず、画像ぼかし手段4を用いて、探索対象画像に対して、ぼかしの度合いの異なる複数のぼかし画像を作成する。
このぼかし画像については、上述の「テンプレートを加工するモード」で説明した方法と同じ方法を用いて作成する。図13(a)〜(e)に、その作成結果を図示する。
次に、処理は探索制御手段8に移る。
探索制御手段8では、先ず、テンプレート蓄積手段5からテンプレート1の画像(図3の(g))を取り出す。そして、探索制御手段8は、この取り出したテンプレート1の画像をぼかした探索対象画像の各位置にずらしながら、各位置での一致の度合いを算出し、その結果をスコア投票手段11に送り、これを受けて、スコア投票手段11は、それをスコア記録手段12に記録する。
ここで、探索制御手段8がテンプレート1の画像を探索対象画像の一つの位置にずらしておいたときにおける一致の度合いの算出手順について、図13を用いて説明する。
一例として、図13の(f)で説明するように、テンプレート1の基準点の位置がもっとも一致する座標である(2964画素、1077画素)になるように置かれたときの動作について説明する。
この場合、探索制御手段8は、先ず、テンプレート1の基準点の座標(2964画素、1077画素)と、テンプレート1のサイズ(この説明では100画素×100画素)と、入力画像加工手段6で加工された図13の(a)〜(e)に示すぼかしの度合いの異なる複数のぼかし画像(原画は探索対象画像)とを被照合パタン生成手段9に送る。
ここで、入力画像加工手段6は、画像ぼかし手段4を用いて、探索対象画像をぼかしの度合いの異なる複数のぼかし画像に変換し、加工画像蓄積手段7は、そのぼかし画像を保存することになる。
これを受けて、被照合パタン生成手段9は、上述の「テンプレートを加工するモード」で説明した方法と同じ方法を用いて、テンプレート1と同じ大きさで、その中心からの距離が大きい程ぼかしの度合いの大きいぼかし画像を作成して、探索制御手段8に返す(処理結果の画像例を図13の(h)に示す)。
そして、探索制御手段8は、このぼかし画像の処理結果をパタン間照合手段10に送る。
これを受けて、パタン間照合手段10は、渡された画像をテンプレート1の画像と照合してパタン間の一致の度合いを算出し、その結果を探索制御手段8に返す。
パタン間の一致の度合いとしては、例えば、従来の技術の説明で述べた正規化相関を用いることができる、ここでは、例えば「0.8」が算出されたとする。
続いて、探索制御手段8は、スコア投票手段11に対して、パタン間照合手段10から返された値(以下スコアと呼ぶ。ここでは上述の「0.8」)と、テンプレート1の識別コードと、テンプレート1の基準点の座標(この場合は(2964画素、1077画素))とを送る。テンプレート1〜4の識別コードとしては、ここでは、一例として各々「1」〜「4」を用いることとすると、この場合には「1」が送られることになる。次に、処理はスコア投票手段11に移る。
その説明の前に、スコア記録手段12の構成例を図示する。この図は探索を行う前の初期状態である。
図14に示されているように、スコア記録手段12は、探索対象画像の各位置座標の各座標こついて、その座標にスコアを記録するための配列(以下、スコア記録テーブルと称する)を有しており、このスコア記録テーブルには、変形のパラメータ値の網羅的な組み合わせが事前に登録されており、さらに各組み合わせに対応するスコアの欄には初期状態では初期値(図14の例では0)が記入されている。
次に、スコア投票手段11の動作について説明する。
スコア投票手段11は、探索制御手段8から送られてきたテンプレート1の識別コード「1」を識別し、該当するテンプレート1の投票座標位置テーブル(図8に示すもの)を投票座標情報蓄積手段2から取り出す。
そして、その投票座標位置テーブルの各行に記録されたΔxとΔyの数値に、探索制御手段8から送られてきたテンプレート1の基準点の座標(この場合は(2964画素、1077画素))をそれぞれ加算することで、その行における投票先のX座標と投票先のY座標を出力する(図15(a))。
ここで、図15(a)では、テンプレート1の投票座標位置テーブルの持つ「回転角度=−20度、拡大率=1.2」という行について、投票先X座標と投票先Y座標を算出した例を示しているが、このような処理を投票座標位置テーブルの各行について行うことになる。
次に、スコア投票手段11は、投票座標位置テーブルの各行について、その行の投票先X座標と投票先Y座標に該当するスコア記録テーブルの持つ、その行の回転角度と拡大率に該当する個所のスコアの欄に、探索制御手段8から送られてきたスコア(この場合は0.8)を加算する(図15(b))。
ここで、図15(b)では、「回転角度=−20度、拡大率=1.2」の行に対応付けられる「投票先X座標=3000画素、投票先Y座標=1000画素」を持つスコア記録テーブルの持つ該当欄(「回転角度=−20度、拡大率=1.2」の欄)に、スコア0.8を加算した例を示しているが、このような処理を投票座標位置テーブルの各行について行うことになる。
以上について説明したテンプレート1を探索対象画像の1つの位置に置いた際の処理(テンプレート1とのパタン間照合処理とその結果のスコア記録テーブルヘの加算処理)については、探索対象画像の全ての位置について行われることになる。
探索制御手段8とスコア投票手段11は、上記の処理をテンプレート1について完了した後で、同様の処理を残りのテンプレート2〜4についても行う。
図16は、テンプレート2が図12に示したように、その基準位置が最も一致する座標である(3077画素、1036画素)になるように置かれたときの動作におけるスコア投票手段11の動作例を説明する図である。
「投票先X座像=3000画素、投票先Y座標=1000画素」に対しては、ここでもスコアの投票が行われる。これは、テンプレート3とテンプレート4でも同様の結果となる。
すなわち、テンプレート0については、大きさと傾きが探索対象画像中の該当領域とは大きくずれているにもかかわらず、テンプレート1〜テンプレート4に分割して照合する本発明の仕組みにより、テンプレート0の基準点(3000画素、1000画素)には、大きなスコアが蓄積することとなる。
最後に、ピーク探索手段13の処理に移る。
図17に、ピーク探索手段13の処理の説明図を図示する。
この図に示すように、ピーク探索手段13は、スコア記録手段12における各スコア記録テーブル(図17(a))から、スコアの最大値を取得して、そのスコアの値をスコアマップ(図17(b))にプロットし、またそのときの変形パラメータ値をパラメータ値マップ(図17(c))にプロットする。
そして、ピーク探索手段13は、スコアマップからピーク探索の手法(例えば、規定の閾値以上を持つスコアを抽出して、隣接するものが同一のグループに属するような形でグルーピングを行い、各グルーブの中で最大のスコアを持つものを特定することでピーク個所を探し出すといった手法)により、ピーク個所(複数のこともある)を探し出して、その位置の座標とスコア値とを出力し、さらに、パラメータ値マップの該当する座標からパラメータ値を取得して、これも出力する。
図18及び図19に、以上に説明した画像探索モードの処理フローを図示する。
すなわち、本発明の画像処理装置は、画像探索モードに入ると、この処理フローに示すように、先ず、ステップ1で、テンプレートの識別番号となる変数iに初期値1をセットする。この実施形態例ではi=1〜4の値をとりうることになる。
続いて、ステップ2で、変数iの値が4よりも大きくなったのか否かを判定して、大きくなっていないことを判断するときには、ステップ3に進んで、テンプレート蓄積手段5からテンプレートiの画像を取り出し、続くステップ4で、投票座標情報蓄積手段2からテンプレートiの投票座標位置テーブル(図8から図11に示すもの)を取り出す。
以下に説明するように、X方向とY方向とに1画素ずつずらしながらテンプレートiについて全位置を処理していないことを判断するときは、ステップ7に進んで、未処理位置の中からテンプレートiの処理位置(テンプレートiの基準点の位置)を1つ選択する。例えば、X方向とY方向とに1画素ずつずらしながら選択する。
続いて、ステップ8で、探索対象画像から、その選択した処理位置におけるテンプレートiの照合対象となるぼかし画像を作成し(前もって複数段階でぼかしておいた探索対象画像を合成することで作成する)、続くステップ9で、テンプレートiとその作成したぼかし画像との間の一致度を算出する。
その一致度の算出に合わせて、投票座標位置テーブルの各行について以下に説明する処理を行うことになるので、続いて、ステップ10で、投票座標位置テーブルの全行について処理を終了したのか否かを判断して、投票座標位置テーブルの全行について処理を終了したことを判断するときには、探索対象画像の次の処理位置における一致度を算出すべく、ステップ5に戻る。
一方、ステップ10で投票座標位置テーブルの全行について処理を終了していないことを判断するときには、ステップ11に進んで、テンプレートiの投票座標位置テーブル(ステップ4で取り出したもの)の中から、未処理の行を1つ選択する。例えば、投票座標位置テーブル(図8から図11に示すもの)の上から順番に行(エントリー域)を1つずつ選択していく場合には、前回処理した行の下の行を選択するのである。
続いて、ステップ12で、その選択した行に設定されているΔx/Δyと処理位置とを加算することで、投票先X座標/投票先Y座標を算出する。続いて、ステップ13で、その算出した投票先X座標/投票先Y座標の指すスコア記録テーブルを選択し、その選択したスコア記録テーブルの持つエントリーの内、選択した行に設定されている回転角度/拡大率の指すエントリー(スコアを記録している)に、算出した一致度(スコア)を加算してから、次の投票先座標位置テーブルの行に対しての処理を行うべく、ステップ10に戻る。
このようにして、ステップ2〜ステップ14の処理を繰り返していくときに、ステップ2で、変数iの値が4よりも大きくなったことを判断するとき、すなわち、全てのテンプレートについて処理を終了したことを判断するときには、ステップ14に進んで、スコア記録テーブルの中に含まれる規定の閾値以上の値を持つスコアを抽出する。
続いて、ステップ15で、その抽出したスコアを、隣接するものが同じグループに属する形でグルーピングし、続くステップ16で、同一のグループの中で最大値を示すスコアを探索結果として選択する。
続いて、ステップ17で、スコア記録手段12(スコア記録テーブル)を参照することで、探索結果のスコアの指す位置座標/回転角度/拡大率を取得する。続いて、ステップ18で、その取得した回転角度/拡大率に従ってテンプレート0を変形して、その取得した位置座標の指す探索対象画像との間の一致度を算出する。
続いて、ステップ19で、ステップ16で選択した探索結果のスコアと、ステップ17で取得した位置座標/回転角度/拡大率と、ステップ18で算出した一致度とを出力して、処理を終了する。
このようにして、本実施形態例の画像処理装置は、テンプレート0を分割することで、例えば4個のテンプレート1〜4を作成して、それらのテンプレート1〜4と探索対象画像との間の整合度合いを算出し、その算出結果を、予め想定した複数の座標変換パラメータにより変形を受けていると仮定した場合のテンプレート0の位置座標に累積加算していくことで、テンプレートを色々と変形させて整合度合いを算出する処理と等価な処理を実行して、その加算結果に基づいて、探索対象画像の中からテンプレート0との整合度合いの高い領域を探索するように処理するのである。
以上に説明した本実施形態例において、テンプレート1〜4について、中心からの距離が大きくなる程ぼかしの度合いが大きくなるぼかし画像で構成するとともに、テンプレート1〜4との照合対象となる探索対象画像についても、その中心に重なる位置からの距離が大きくなる程ぼかしの度合いが大きくなるぼかし画像で構成するようにしたが、どちらか一方のみをぼかし画像で構成するようにしてもよいし、ぼかしの方法についても、距離に関係なく単一のぼかし度合いを示すぼかし画像で構成するようにしてもよい。
(実施形態例2)
図20は、実施形態例2に係る画像処理装置の概略図である。
本実施形態例の画像処理装置は、投票座標情報算出手段1aと、投票座標情報蓄積手段2aと、テンプレート加工手段3aと、画像ぼかし手段4aと、テンプレート蓄積手段5aと、入力画像加工手段6aと、加工画像蓄積手段7aと、探索制御手段8aと、被照合パタン生成手段9aと、パタン間照合手段10aと、スコア投票手段11aと、スコア記録手段12aと、ピーク探索手段13aと、照合結果蓄積手段14aとを備えている。
投票座標情報算出手段1aは、投票座標位置テーブルを作成する処理をおこなうものであり、実施形態例1では前記(3)式及び(4)式に従って図8から図11に示した投票座標位置テーブルを作成することになる。
後述することから分かるように、本実施形態例に従う場合には、テンプレート0の基準点(図6に示す位置)の位置を基準にして、テンプレート1〜4の基準点(図6に示す位置)の位置を特定するように処理することから、投票座標情報算出手段1aは、前記(1)式及び(2)式に従って投票座標位置テーブルを算出する。
これから、投票座標情報蓄積手段2aには、図8から図11に示したテーブルデータの符号を反転した図21に示すような投票座標位置テーブルが蓄積されることになる。
テンプレート加工手段3aは、実施形態例1の画像ぼかし手段4と同様の処理を実行する画像ぼかし手段4aを使い、実施形態例1のテンプレート加工手段3と同様の処理を実行することで、図3及び図4に示したテンプレート1〜4を作成する。
これから、テンプレート蓄積手段5aには、図3及び図4に示したテンプレート1〜4が保存されることになる。
入力画像加工手段6a、加工画像蓄積手段7a、被照合パタン生成手段9a及びパタン間照合手段10aは、それぞれ実施形態例1の入力画像加工手段6、加工画像蓄積手段7、被照合パタン生成手段9及びパタン間照合手段10と同様の処理を実行することになるが、実施形態例2に従う場合には、パタン間の一致度合い(スコア)については、その都度、スコア投票手段11aに送られるのではなくて、探索制御手段8aを介して照合結果蓄積手段14aに蓄積されることになる。
図22に照合結果蓄積手段14aに蓄積されるスコアのデータ構造を図示する。この図に示すように、照合結果蓄積手段14aは、テンプレート1〜4のそれぞれについて、各テンプレート1〜4の基準点が置かれた探索対象画像の位置に対応付けて、その位置におけるぼかされた探索対象画像との間の一致度合い(スコア)を蓄積する。
スコア記録手段12aは、図23に示すように、テンプレート0の基準点が置かれた探索対象画像の位置に対応付けて、その位置におけるテンプレート1〜4の持つスコアの総和の最大値と、その最大スコア総和値を実現する変形パラメータ(拡大・縮小率a、回転角度γ)とを管理するスコア記録テーブルで構成される。
スコア投票手段11aは、スコア記録手段12aへのデータ登録を実行するものであって、テンプレート0の基準点を探索対象画像の各位置に配置し、投票座標位置テーブル(図21に示すもの)を参照することで、それぞれの配置位置で変形パラメータを変化させたときのテンプレート1〜4の基準点の位置を求め、その位置をキーにして照合結果蓄積手段14a(図22に示すもの)を参照することで、テンプレート1〜4のスコアを得て、その総和値を算出する。
そして、スコア投票手段11aは、このようにして図24に示すような形でスコア総和値を算出すると、スコア記録テーブルに記録される最大スコア総和値と比較して、それよりも大きなスコア総和値が算出される場合には、それに応じてスコア記録テーブルに記録されるデータを更新していくことで、スコア記録手段12aへのデータ登録を実行する。
すなわち、スコア投票手段11aは、図25に示す処理を実行することで、スコア記録手段12a(スコア記録テーブル)へのデータ登録を実行する。
このようにして、本実施形態例に従う場合には、スコア記録手段12aを構成するスコア記録テーブルには、図23に示すように、テンプレート0の基準点が置かれた探索対象画像の位置に対応付けて、その位置におけるテンプレート1〜4のスコアの総和の最大値と、その最大スコア総和値を実現する変形パラメータとが記録されることになる。
したがって、ピーク探索手段13aは、スコア記録テーブルを参照することで、直ちに、図17に示したようなスコアマップおよびパラメータ値マップヘのプロットを実行できるようになる。
これから、ピーク探索手段13aは、実施形態例1のピーク探索手段13と同様に、スコアマップからピーク探索の手法(例えば、規定の閾値以上を持つ最大スコア総和値を抽出して、隣接するものが同一のグループに属するような形でグルーピングを行い、各グループの中で最大値を示す最大スコア総和値を持つものを特定することでピーク個所を探し出すといった手法)により、ピークの個所(複数のこともある)を探し出して、その位置の座標と最大スコア総和値とを出力し、さらに、パラメータ値マップの該当する座標から変形パラメータ値を取得して、これも出力する。
実施形態例1に従う場合には、テンプレート1〜4を独立の形で動かしてスコアを加算していくことから、探索対象画像に含まれるテンプレート画像部分が複雑に変形していてもそれを検出できるようになるものの、図14に示すように、探索対象画像の位置ごとに用意する大きなメモリ容量のスコア記録テーブルを用いなければならない。
これに対して、実施形態例2に従う場合には、以上の説明から分かるように、テンプレート1〜4を、テンプレート0を基準として、一体的な形で動かしてスコアの総和値を求めて、それをテンプレート0の位置を投票先として投票することから、図23に示すような小さなメモリ容量のスコア記録テーブルを用意すれば足りることになる。
次に、図26から図28に示す処理フローに従って、本実施形態に従う場合に本発明の画像処理装置が実行する画像探索モードの処理について説明する。
本実施形態の画像処理装置は、画像探索モードに入ると、この処理フローに示すように、先ず、ステップ20で、テンプレートの識別番号となる変数iに初期値1をセットする。この実施形態例ではi=1〜4の値をとりうることになる。
続いて、ステップ21で、変数iの値が4よりも大きくなったのか否かを判断して、大きくなっていないことを判断するときには、ステップ22に進んで、テンプレート蓄積手段5aからテンプレートiの画像を取り出す。
以下に説明するように、X方向とY方向とに1画素ずつずらしながらテンプレートiを探索対象画像に置いて所定の処理を実行していくことになるが、続いて、ステップ23で、その位置について以下に説明する処理を終了したのか否かを判断して、全位置について処理を終了したことを判断するときには、ステップ24に進んで、次のテンプレートiを処理すべく変数iの値を1つインクリメントしてから、ステップ21に戻る。
一方、ステップ23で、テンプレートiについて全位置を処理していないことを判断するときには、ステップ25に進んで、探索対象画像の未処理位置の中からテンプレートiの基準点を置く処理位置を1つ選択(X方向とY方向とに1画素ずつずらしながら選択)する。
続いて、ステップ26で、探索対象画像から、その選択した処理位置におけるテンプレートiの照合対象となるぼかし画像を作成する(前もって複数段階でぼかしておいた探索対象画像を合成することで作成する)。
続いて、ステップ27で、テンプレートiとその作成したぼかし画像との間の一致度を算出して照合結果蓄積手段14aに登録してから、探索対象画像の次の位置における一致度を算出すべく、ステップ23に戻る。
このようにして、ステップ22〜ステップ27の処理を繰り返していくことにより、図22に示すようなデータ構造をもつ照合結果蓄積手段14aへのデータ登録を完了することで、ステップ21で、変数iの値が4よりも大きくなったことを判断すると、ステップ28に進んで、探索対象画像の全位置について処理を終了したか否かを判断する。
すなわち、以下に説明するように、X方向とY方向とに1画素ずつずらしながらテンプレート0(分割元のテンプレート)を探索対象画像に置いて所定の処理を実行していくことになるので、その全処理を終了したのか否かを判断するのである。
このステップ28の判断処理により、探索対象画像の全位置について処理を終了していないことを判断するときには、ステップ29に進んで、探索対象が未処理位置の中からテンプレート0の基準点を置く処理位置を1つ選択(X方向とY方向とに1画素ずつずらしながら選択)する。
続いて、ステップ30で、投票座標位置テーブルの中から、未処理の行を1つ選択することで、未処理の変形パラメータを1つ選択する。例えば、投票座標位置テーブル(図21に示すもの)の上から順番に行(4つのテーブルに共通となる行)を1つずつ選択していく場合には、前回処理した行の下の行を選択することで、未処理の変形パラメータを1つ選択するのである。
続いて、ステップ31で、その選択した行に登録されているΔx/Δyと処理位置とを加算することで、探索対象画像上におけるテンプレート1〜4の基準点の位置を特定して、その特定した位置をキーにして照合結果蓄積手段14aを参照することで、照合結果蓄積手段14aに登録されているテンプレート1〜4と探索対象画像との間の一致度(スコア)を得て、それらの総和を算出する。
続いて、ステップ32で、その算出した総和値が、スコア記録テーブル(図23に示すもの)に記録されている選択した探索対象画像の処理位置の指す最大スコア総和値よりも大きいのか否かを判断して、大きいことを判断するときには、ステップ33に進んで、その算出した総和値とそれを実現する変形パラメータとに従って、スコア記録テーブルに記録されているデータを更新(未登録の場合には新規登録となる)する。
一方、ステップ32で、算出した総和値が、スコア記録テーブルに記録されている選択した探索対象画像の処理位置の指す最大スコア総和値よりも小さいことを判断するときには、このステップ33の処理を省略する。
続いて、ステップ34で、投票座標位置テーブルの全行について処理を終了したか否かを判断して、全行について処理を終了していないことを判断するときは、次の行に対しての処理を行うべく、ステップ30に戻り、一方、全行について処理を終了したことを判断するときには、次の探索対象画像の処理位置に対しての処理を行うべく、ステップ28に戻る。
このようにして、ステップ29からステップ34の処理を繰り返していくことにより、図25に示したような形でスコア記録テーブルヘのデータ登録を行い、そのデータ登録を完了することで、ステップ28で、探索対象画像の全位置について処理を終了したことを判断すると、ステップ35に進んで、スコア記録テーブルの中に含まれる規定の閾値以上の値を持つ最大スコア総和値を抽出する。
続いて、ステップ36で、その抽出した最大スコア総和値を、隣接するものが同じグルーブに属する形でグルーピングし、続くステップ37で、同一グループの中で最大値を示す最大スコア総和値を探索結果として選択する。
続いて、ステップ38でスコア記録テーブル(スコア記録手段12a)を参照することで、探索結果のスコア総和値の指す位置座標/変形パラメータを取得する。続いて、ステップ39で、その取得した変形パラメータに従ってテンプレート0を変形して、その取得した位置座標の指す探索対象画像との間の一致度を算出する。
続いて、ステップ40で、ステップ37で選択した探索対象画像のスコアを総和値と、ステップ38で取得した位置座標/変形パラメータと、ステップ39で算出した一致度とを出力して、処理を終了する。
図29に、図26〜図28の処理フローの概要を示すとともに、図30に、実施形態例1の実行する図18及び図19の処理フローの概要を示す。
図30に示されたように、実施形態例1に従う場合には、テンプレート1〜4を独立の形で動かしてスコアを加算していくことから、探索対象画像に含まれるテンプレート画像部分が複雑に変形していてもそれを探索できるようになるものの、図14に示すように、探索対象画像の位置毎に用意する大きなメモリ容量のスコア記録テーブルを用いなければならない。
これに対して、実施形態例2に従う場合には、図29に示したように、テンプレート1〜4を、テンプレート0を基準として、一体的な形で動かしてスコアの総和値を求めて、それをテンプレート0の位置を投票先として投票することから、図23に示すような、小さなメモリ容量のスコア記録テーブルを用意すれば足りることになる。
ここで、図20に示す実施形態例2では、照合結果蓄積手段14aを用意する構成を採ったが、この照合結果蓄積手段14aを用意せずに、その都度、テンプレート1〜4と探索対象画像との間の一致度を算出して、その総和を得るようにしてもよい。
この構成を用いると、照合結果蓄積手段14aを省略することが可能になるので、さらにメモリエリアを節約できるようになる。
以上に説明した実施形態例2において、テンプレート1〜4について、中心からの距離が大きくなる程ぼかしの度合いが大きくなるぼかし画像で構成するとともに、テンプレート1〜4との照合対象となる探索対象画像についても、実施形態例1の被照合パタン生成手段9と同様の処理を実行する被照合パタン生成手段9aの処理に従って、その中心に重なる位置からの距離が大きくなる程ぼかしの度合いが大きくなるぼかし画像で構成するようにしたが、どちらか一方のみをぼかした画像で構成するようにしてもよいし、ぼかしの方法についても、距離に関係なく単一のぼかし度合いを示すぼかし画像で構成するようにしてもよい。
(実施形態例3)
図31は、実施形態例3に係る画像処理装置の概略構成図である。
本実施形態例の画像処理装置は、投票座標情報算出手段1bと、投票座標情報蓄積手段2bと、テンプレート加工手段3bと、画像ぼかし手段4bと、テンプレート蓄積手段5bと、入力画像加工手段6bと、加工画像蓄積手段7bと、探索制御手段8bと、被照合パタン生成手段9bと、パタン間照合手段10bと、スコア投票手段11bと、スコア記録手段12bと、ピーク探索手段13bと、照合結果蓄積手段14bとを備えている。
実施形態例1及び2では、テンプレート0を分割することで例えは図3及び図4に示すようなテンプレート1〜4を生成して、それを使って、探索対象画像に含まれるテンプレート画像部分を探索するという構成を採るのに対して、本実施形態例では、図32に示すように、テンプレート0に含まれる複数の基準点(テンプレート0の基準点を除く)に応じてテンプレート0の画像をぼかすことで例えば4個のテンプレート9〜12を生成して、それを使って、探索対象画像に含まれるテンプレート画像部分を探索するという構成を採る。
このようなテンプレート9〜12を生成するために、テンプレート加工手段3bは、テンプレート0が与えられると、複数の基準点を選択する。次に、画像ぼかし手段4bにテンプレート0を渡し、これを受けて、画像ぼかし手段4bは、複数のぼかしの度合いでテンプレート0をぼかしてテンプレート加工手段3bに返す。
具体的なぼかし方法としては、例えば2次元マトリクスを畳み込むことにより平滑化フィルタを用いる方法があり、その平滑化フィルタの例としては、画像解析ハンドブック(高木、下田監修、1991年、東京大学出版社)の第539頁に記述された局所平均フィルタや局所加重平均フィルタがある。
これらのマトリクスのサイズを変えたり、局所加重平均フィルタの場合には、中心からの距離による重みの変化の度合いを変えることで、ぼかしの度合いを変えられる。すなわち、これらのマトリクスを大きくしたり、局所加重平均フィルタの場合には、中心からの距離が大きい程ぼかしの度合いの大きいぼかし画像を生成する。
このようにして、テンプレート加工手段3bは、テンプレート0に含まれる複数の基準点に応じてテンプレート0の画像をぼかすことで、図32に示すようなテンプレート9〜12を生成するのである。
これから、テンプレート蓄積手段5bには、図32に示すようなテンプレート9〜12が保存されることになる。
投票座標情報算出手段1bは、投票座標位置テーブルを作成する処理を行うものであり、実施形態例1では前記(3)式及び(4)式に従って図8〜図11に示した投票座標位置テーブルを作成するのに対して、前記(1)式及び(2)式に従って投票座標位置テーブルを作成することになる。
後述することから分かるように、実施形態例3に従う場合には、テンプレート0の基準点の位置を基準にして、テンプレート9〜12の基準点の位置を特定するように処理することから、投票座標情報算出手段1bは、前記(1)式及び(2)式に従って投票座標位置テーブルを算出するのである。
これから、投票座標情報蓄積手段2bには、図8〜図11に示したテーブルデータの符号を反転した図33に示すような投票座標位置テーブルが蓄積されることになる。
入力画像加工手段6b、加工画像蓄積手段7b、被照合パタン生成手段9b、パタン間照合手段10bは、それぞれ、実施形態例1の入力画像加工手段6の処理を実行することになるが、本実施形態例に従う場合には、パタン間照合手段10bにより算出されるテンプレート9〜12と探索対象画像とのパタン間の一致度合い(スコア)については、その都度スコア投票手段11bに送られるのではなくて、探索制御手段8bを介して照合結果蓄積手段14bに蓄積されることになる。
図34に、照合結果蓄積手段14bに蓄積されるスコアのデータ構造を図示する。図示されるように、照合結果蓄積手段14bは、テンプレート9〜12のそれぞれについて、各テンプレート5〜8の基準点(図32に示す位置)が置かれた探索対象画像の位置に対応付けて、その位置におけるぼかされた探索対象画像との間の一致度合い(スコア)を蓄積する。
スコア記録手段12bは、図35に示すように、テンプレート0の基準点(図32に示す位置)が置かれた探索対象画像の位置に対応付けて、その位置におけるテンプレート9〜12の持つスコアの総和の最大値と、その最大スコア総和値を実現する変形パラメータ(拡大・縮小率a、回転角度γ)とを管理するスコア記録テーブルで構成される。
スコア投票手段11bは、スコア記録手段12bへのデータ登録を実行するものであって、テンプレート0の基準点を探索対象画像の各位置に配置し、投票座標位置テーブル(図33に示すもの)を参照することで、それぞれの配置位置で変形パラメータを変化させたときにおけるテンプレート9〜12の基準点の位置を求め、その位置をキーにして照合結果蓄積手段14b(図34に示すもの)を参照することで、テンプレート9〜12のスコアを得て、その総和値を算出する。
そして、スコア投票手段11bは、このようにして図36に示すような形でスコア総和値を算出すると、スコア記録テーブルに記録される最大スコア総和値と比較して、それよりも大きなスコア総和値が算出される場合には、それに応じてスコア記録テーブルに記録されるデータを更新していくことで、スコア記録手段12bへのデータ登録を実行する。
すなわち、スコア投票手段11bは、図37に示す処理を実行することで、スコア記録手段12b(スコア記録テーブル)へのデータ登録を実行するのである。
このようにして、本実施形態例に従う場合には、スコア記録手段12bを構成するスコア記録テーブルには、図35に示すように、テンプレート0の基準点が置かれた探索対象画像の位置に対応付けて、その位置におけるテンプレート9〜12のスコアの総和の最大値と、その最大スコア総和値を実現する変形パラメータとが記録されることになる。
したがって、ピーク探索手段13bは、スコア記録テーブルを参照することで、直ちに、図17に示したようなスコアマップおよびパラメータ値のマップヘのプロットを実行できるようになる。
これから、ピーク探索手段13bは、実施形態例1のピーク探索手段13と同様に、スコアマップからピーク探索の手法(例えば、規定の閾値以上を持つ最大スコア総和値を抽出して、隣接するものが同一のグループに属するような形でグルーピングを行い、各グループの中で最大値を示す最大スコア総和値を持つものを特定することでピーク個所を探し出すといった手法)によりピークの個所(複数のこともある)を探し出して、その位置の座標と最大スコア総和値とを出力し、さらに、パラメータ値マップの該当する座標から変形パラメータ個を取得して、これも出力する。
実施形態例1に従う場合には、テンプレート1〜4を独立の形で動かしてスコアを加算していくことから、探索対象画像に含まれるテンプレート画像部分が複雑に変形していてもそれを検出できるようになるものの、図14に示すように、探索対象画像の位置毎に用意する大きなメモリ容量のスコア記録テーブルを用いなければならない。
これに対して、本実施形態例に従う場合には、以上の説明から分かるように、テンプレート9〜12をテンプレート0を基準として一体的な形で動かしてスコアの総和値を求めて、それをテンプレート0の位置を投票先として投票することから、図35に示すような小さなメモリ容量のスコア記録テーブルを用意すれば足りることになる。
しかも、実施形態例2に従う場合には、テンプレート0を分割する形態で生成するテンプレート1〜4を用いることから、テンプレート0の一部の画像情報が取り除かれた形での探索処理になるのに対して、本実施形態例に従う場合には、テンプレート0の一部の画像情報をぼかす形態で生成するテンプレート9〜12を用いることから、そのような画像情報の取り除きがなくなることで高精度の探索処理を実現できるようになる。
次に、図38〜図40に示す処理フローに従って、本実施形態例に従う場合に本発明の画像情報処理装置が実行する画像探索モードの処理について説明する。
ここで、この処理フローでは、照合結果蓄積手段14bを用意せず、その都度、テンプレート9〜12と探索対象画像との間の一致度を算出してその総和を得るようにしている。
本実施形態例の画像処理装置は、画像探索モードに入ると、この処理フローに示すように、先ず、ステップ50で、探索対象画像の全位置について処理が終了したのか否かを判断する。
すなわち、以下に説明するように、X方向とY方向とに1画素ずつずらしながらテンプレート0(テンプレート9〜12の生成元のテンプレート)を探索対象画像に置いて所定の処理を実行していくことになるので、その全処理を終了したのか否かを判断するのである。
このステップ50の判断処理により、探索対象画像の全位置について処理を終了していないことを判断するときには、ステップ51に進んで、探索対象画像の未処理位置の中からテンプレート0の基準点を置く処理位置を1つ選択(X方向とY方向とに1画素ずつずらしながら逮択)する。
続いて、ステップ52で、投票座標位置テーブルの中から、未処理の行を1つ選択することで、未処理の変形パラメータを1つ選択する。例えば、投票座標位置テーブル(図33に示すもの)の上から順番に行(4つのテーブルに共通となる行)を1つずつ選択していく場合には、前回処理した行の下の行を選択することで、未処理の変形パラメータを1つ選択するのである。
続いて、ステップ53で、テンプレートの識別番号となる変数iに初期値9をセットする。この実施形態例ではi=9〜12の値をとりうることになる。
続いて、ステップ54で、変数iの値が12よりも大きくなったのか否かを判断して、大きくなっていないことを判断するときには、ステップ55に進んで、テンプレート蓄積手段5bからテンプレートiの画像を取り出す。
続いて、ステップ56で、ステップ52で選択した行に登録されているテンプレートiの指すΔx/Δyと、ステップ51で選択した処理位置とを加算することで、探索対象画像上におけるテンプレートiの基準点の位置を特定する。
続いて、ステップ57で、探索対象画像から、その選択した処理位置におけるテンプレートiの照合対象となるぼかし画像を作成し(前もって複数段階でぼかしておいた探索対象画像を実施形態例1で説明したように基準点を中心にして合成することで作成する)、続くステップ58で、テンプレートiとその作成したぼかし画像との間の一致度を算出する。
続いて、ステップ59で、次のテンプレートiを処理すべく変数iの値を1つインクリメントしてから、ステップ54に戻る。
このようにして、ステップ55〜ステップ59の処理を繰り返していくことで、ステップ54で、選択したテンプレート0の処理位置(基準点の位置)において、選択した行に登録されている変形パラメータにより特定されるテンプレート9〜12の基準点の位置での一致度の算出完了を判断すると、ステップ60に進んで、算出した一致度(テンプレート9〜12と探索対象画像との一致度)の総和を算出する。
続いて、ステップ61で、その算出した総和値が、スコア記録テーブル(図35に示すもの)に記録されている選択した探索対象画像の処理位置の指す最大スコアよりも大きいのか否かを判断して、大きいことを判断するときには、ステップ62に進んで、その算出した総和値とそれを実現する変形パラメータとに従って、スコア記録テーブルに記録されているデータを更新(未登録の場合には新規登録となる)する。
一方、ステップ61で、算出した総和値が、スコア記録テーブルに記録されている選択した探索対象画像の処理位置の指す最大スコア総和値よりも小さいことを判断するときには、このステップ62の処理を省略する。
続いて、ステップ63で、投票座標位置テーブルの全行について処理を終了したか否かを判断して、全行について処理を終了していないことを判断するときには、次の行に対して処理を行うべく、ステップ52に戻り、一方、全行について処理を終了したことを判断するときには、次の探索対象画像の処理位置に対しての処理を行うべく、ステップ50に戻る。
このようにして、ステップ50〜ステップ63の処理を繰り返していくことにより、図37に示したような形でスコア記録テーブルヘのデータ登録を行い、そのデータ登録を完了することで、ステップ50で、探索対象画像の全位置について処理を終了したことを判断すると、ステップ64に進んで、スコア記録テーブルの中に含まれる規定の閾値以上の値を持つ最大スコア総和値を抽出する。
続いて、ステップ65で、その抽出した最大スコアの総和値を、隣接するものが同じグループに属する形でグルーピングし、続くステップ66で、同一グループの中で最大値を示す最大スコア総和値を探索結果として選択する。
続いて、ステップ67で、スコア記録テーブル(スコア記録手段12b)を参照することで、探索結果のスコア総和値の指す位置座標/変形パラメータを取得する。続いて、ステップ68で、その取得した変形パラメータに従ってテンプレート0を変形して、その取得した位置座標の指す探索対象画像との間の一致点を算出する。
続いて、ステップ69で、ステップ66で選択した探索結果のスコア総和値と、ステップ67で取得した位置座標/変形パラメータと、ステップ68で算出した一致度とを出力して、処理を終了する。
このようにして、本実施形態例に従う場合にも、実施形態例2の処理の概要を示した図29と同様に、テンプレート0を基準としてテンプレート9〜12を一体的な形で動かしてスコアの総和値を求めて、それをテンプレート0の位置を投票先として投票することから、図35に示すような小さなメモリ容量のスコア記録テーブルを用意すれば足りることになる。
しかも、本実施形態例に従う場合には、テンプレート0の一部をぼかしたテンプレート5〜8を使ってスコアの総和値を求めて、それをテンプレート0の位置を投票先として投票することから、テンプレート0を分割することで構成されるテンプレート1〜4を用いる場合に比べて、テンプレート0の画像情報を残しつつ投票を行うことになるので、実施形態例2に従う場合に比べて高精度の探索処理を実現できるようになる。
ここで、図38〜図39の処理フローでは、照合結果蓄積手段14bを用意せずに、その都度、テンプレート9〜12と探索対象画像との間の一致度を算出してその総和を得るようにしたが、前もってテンプレート9〜12と探索対象画像との間の一致度を算出して照合結果蓄積手段14bに登録しておくという方法を用いるようにしてもよい。
この構成を用いる場合には、実施形態例2で説明した図26〜図28の処理フローと同様の処理を実行することになる。
この照合結果蓄積手段14bを用意するという構成を用いると、テンプレート9〜12と探索対象画像との間の一致度を重複して算出することがなくなり、計算時間を短縮できるようになる。
すなわち、テンプレート0の処理位置を選択したときに、その都度、テンプレート9〜12と探索対象画像との間の一致度を算出するようにすると、別の処理位置を選択したときに、前に計算したことのある一致度を再び算出することが起こるが、照合結果蓄積手段14bを用いると、そのような重複する算出処理を行わずに済ませることができるようになることで、計算時間を短縮できるようになるのである。
以上に説明した実施形態例3において、テンプレート9〜12について、基準点からの距離が大きくなる程ぼかしの度合いが大きくなるぼかし画像で構成するとともに、テンプレート9〜12との照合対象となる探索対象画像についても、実施形態例1の被照合パタン生成手段9と同様の処理を実行する被照合パタン生成手段9bの処理に従って、その基準点に重なる位置からの距離が大きくなる程ぼかしの度合いが大きくなるぼかし画像で構成するようにしたが、どちらか一方のみをぼかし画像で構成するようにしてもよいし、ぼかしの方法についても、距離に関係なく単一のぼかし度合いを示すぼかし画像で構成するようにしてもよい。
以上の実施形態例に従って本発明の画像処理方法を説明したが、本発明はこれに限定されるものではない、例えば、実施形態例に示した数値はあくまでも説明の便宜上に過ぎないものであって、本発明はこれに限定されるものではない。
また、実施形態例で述べた画像処理方法は、図1〜図43で示した処理工程をコンピュータのプログラムで構成し、このプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能を実現するためのプログラム、あるいは、コンピュータにその処理の工程の実行させるためのプログラムを、そのコンピュータが読み取りできる記録媒体、例えば、フレキシブルディスクや、MO、ROM、メモリカード、CD、DVD、リムーバルディスク等に記録して、保存したり、配布したりすることが可能である。また、このプログラムをインターネットや電子メールなど、ネットワークを介して提供することも可能である。
そして、これら記録媒体からコンピュータに前記のプログラムをインストールすることにより、あるいはネットワークからダウンロードしてコンピュータに前記のプログラムをインストールすることにより、本発明を実施することが可能となる。但し、コンピュータへのインストールはコンピュータ単位であり、装置やシステムが複数あることなどでインストールの対象となるコンピュータが複数ある場合には、当該プログラムは必要な処理部分毎にインストールされることは当然である。この場合、当該プログラムはコンピュータ対応に記録媒体に記録するか、またはネットワークを介してダウンロードしてもよい。