以下、本発明の実施形態について図面を参照して詳細に説明する。
(1.システム構成)
まず、本発明に係る目標物検出システムの構成について説明する。図1は本発明に係る目標物検出システムの構成図である。図1において、10は探索対象画像記憶部、20はテンプレート準備部、30はテンプレート記憶部、40は目標物探索部、50は探索結果記憶部、60は探索領域設定部である。
探索対象画像記憶部10は、探索対象となる画像である探索対象画像、および目標物のサンプルを記憶したサンプル画像を記憶したものである。探索対象画像上に探索対象とする目標物が多数存在していれば、その内の1つをサンプルとして用いることも可能である。この場合、探索対象画像はサンプル画像としての役割も果たすことになる。また、本実施形態では、人工衛星により撮影された画像である衛星画像を探索対象画像として記憶している。テンプレート準備部20は、サンプル画像に対して対話的に設定を行い、テンプレート画像を準備するものであり、テンプレート作成手段21、判定基準値設定手段22、テンプレート更新手段23を有している。テンプレート記憶部30は、テンプレート準備部20により準備されたテンプレート画像を記憶するものである。目標物探索部40は、探索対象画像中の所定の領域とテンプレート画像を比較することにより、目標物を探索するものであり、角度非依存類似性判断手段41、角度依存類似性判断手段42、探索結果出力手段43、検出目標物消去手段44、第2のテンプレート更新手段45を有している。探索結果記憶部50は、目標物探索部40により探索された結果を記憶するものである。探索領域設定部60は、所定サイズの画素ブロックに適用する画素評価ルールを用いて、探索対象画像中において実際に探索を行う範囲である探索対象領域を設定するものであり、画素判定基準値設定手段61、探索領域設定手段62を有している。図1に示した目標物検出システムは、現実には汎用のコンピュータに専用のプログラムを組み込むことにより実現される。また、各記憶部は、コンピュータに内蔵または接続されたハードディスク等の記憶装置で実現される。
(2.探索対象領域の設定)
次に、図1に示した目標物検出システムの処理動作について説明する。目標物検出システムにおいては、探索領域設定手段62が、探索対象画像記憶部10から探索対象画像を読み込み、この探索対象画像上において、目標物が検出される可能性が高い領域を探索対象領域として設定する。本システムでは、後述するように、テンプレート画像上の画素ブロックと探索対象画像上の画素ブロックを比較することにより、目標物の検出を行うが、この比較処理にかかる演算負荷が高いため、全体としての処理効率を上げるためには、探索対象画像上において実際に探索を行う範囲をできるだけ小さくすることが望ましい。そこで、本システムでは、実際の探索処理に入る前に、目標物が検出される可能性が高い領域を探索対象領域として設定する処理を行う。
探索対象領域の設定は、探索対象画像上の各画素を、探索対象領域とするか、探索非対称領域とするかを決定することにより行うが、本発明では、所定サイズの画素ブロックに適用する画素評価ルールを用いる。画素ブロックの形状、サイズとしては、適宜定めることが可能であるが、M×M画素の正方形状が望ましい。図2(a)は、本実施形態における画素評価ルールが適用される画素ブロックを示す図である。図2(a)に示すように、本実施形態では、探索対象画像から4×4個(M=4)の正方形状の画素ブロックを抽出し、抽出した画素ブロックに対して画素評価ルールを適用する。画素評価ルールは、抽出した画素ブロックのうち、中央2×2画素の画素値(Vi1〜Vi4)、周辺の12画素の画素値(VO1〜VO12)を用いて評価し、探索対象とするか否かを定めるルールである。具体的には、まず、以下の〔数式1〕により、7つの画素評価値、具体的には、周辺最小値Vomin、周辺最大値Vomax、中央最小値Vimin、中央最大値Vimax、周辺平均値Voave、中央平均値Viave、周辺標準偏差Vdirを求める。
〔数式1〕
Vomin=MIN[Vok]
Vomax=MAX[Vok]
Vimin=MIN[Vik]
Vimax=MAX[Vik]
Voave=(Σk=1,12Vok)/12
Viave=(Σk=1,4Vik)/4
Vdir={Σk=1,12(Voave−Vok)2/12}1/2
さらに、画素判定基準値である7つの閾値Saoi、Sdoi、Simin、Simax、Somin、Somax、Sdirを用いて、以下の〔数式2〕に従って判断を行う。
〔数式2〕
1)中央周辺の平均レベル差|Voave−Viave|>Saoi
2)中央周辺のコントラスト
Vomax−Vimin>Vimax−Vominの場合、Vomax−Vimin>Sdoi
Vomax−Vimin<Vimax−Vominの場合、Vimax−Vomin>Sdoi
3)周辺平均レベルSomin<Voave<Somax
4)中央平均レベル
Voave>Viaveの場合、Viave<Simin
Voave<Viaveの場合、Viave>Simax
5)周辺標準偏差Vdir>Sdir
上記〔数式2〕における5つの条件は、金属材質を撮影した場合の物体の特徴をとらえたものである。すなわち、金属材質を撮影した場合、1)中央と周辺の平均レベルの差が所定以上になり、2)周辺の最大値と中央の最小値の差、または中央の最大値と周辺の最小値の差が所定以上になり、3)周辺の平均レベルが所定の範囲に収まり、4)中央平均レベルについては、周辺平均レベルより小さい場合に所定値以下となり、周辺平均レベルより大きい場合に所定値以上となる。中央平均レベルについては、周辺平均レベルとの大小関係により、用いる閾値が異なる。5)周辺標準偏差は所定以上となる。金属材質の場合、これらの条件を全て満たすと考えられる。
上記7つの画素判定基準値には、具体的な目標物の内容に応じて適宜設定される。中央平均レベルの場合、周辺平均レベルとの大小関係により、用いる閾値が異なるため、実際には、同時に利用される閾値は6つとなる。上記〔数式1〕に示した数式、上記画素判定基準値、上記〔数式2〕に示した条件が画素評価ルールとなるが、本システムでは、画素判定基準値は最初は設定されていない。そのため、本システムでは、最初に7つの画素判定基準値Saoi、Sdoi、Simin、Simax、Somin、Somax、Sdirの設定を行うことになる。具体的には、目標物のサンプル画像を利用して、そのサンプルが目標物として検出されるような値を設定する。サンプル画像としては、目標物のサンプルだけを切り出したものを利用しても良いし、目標物が写っている探索対象画像を利用しても良い。本実施形態では、探索対象画像をサンプル画像として利用する場合を例にとって説明する。
まず、システムを起動させると、画素判定基準値設定手段61は、サンプル画像としての探索対象画像を画面に表示させ、目標物のサンプルの指定を促す。図3(a)は、目標物が写っている探索対象画像の一例を示す図である。図3(a)の例では、中央暗部タイプと中央明部タイプが1つずつ写っている。金属材質の場合、中央と周辺の画素値が異なるところが特徴となっている。この場合において、中央が周辺より暗いものを中央暗部タイプと呼び、中央が周辺より明るいものを中央明部タイプと呼ぶことにする。例えば、黒い自動車は中央暗部タイプとなり、白い自動車は中央明部タイプとなる。
画面には、正方形状のカーソルが表示され、利用者がマウス等を用いて画面上を移動させることが可能となっている。画面上では、中央暗部タイプ、中央明部タイプそれぞれにカーソルが重ねられているが、実際には、カーソルは1つだけ表示される。カーソルのサイズは、画素評価ルールに対応したM×M画素分となっている。利用者がカーソルを中央暗部タイプまたは中央明部タイプに移動させ、確定指示を行うと、画素判定基準値設定手段61は、確定した位置に対応するM×M画素の画素ブロックを抽出する。そして、抽出した画素ブロック中の画素に対して、以下の〔数式3〕に従った処理を実行して、画素判定基準値Saoi、Sdoi、Simin、Simax、Somin、Somax、Sdirを設定する。
〔数式3〕
Saoi=MIN(|Voave−Viave|)・0.9
Vomax−Vimin>Vimax−Vominの場合、S1=MIN(Vomax−Vimin)
Vomax−Vimin<Vimax−Vominの場合、S2=MIN(Vimax−Vomin)
Saoi=MIN(S1、S2)・0.9
Voave>Viaveの場合、Simin=MAX(Viave)・1.1
Voave<Viaveの場合、Simax=MIN(Viave)・0.9
Somin=MIN(Voave)・0.9
Somax=MAX(Voave)・1.1
Sdir=MIN(Vdir)・0.9
サンプル画像上においては、複数のサンプルを指定することが可能である。上記〔数式3〕においては、複数箇所選択された場合に、各画素ブロックで算出された値の最小値、最大値をそれぞれMIN、MAXとしている。したがって、1箇所しか指定されていない場合には、指定された画素ブロックの値だけが利用される。上記〔数式3〕に従って画素判定基準値を設定した場合、中央平均レベルVoaveと周辺平均レベルViaveの大小関係により、Simin、Simaxは、どちらか一方しか設定されないため、同時に6つの画素判定基準値が設定されることになる。上記〔数式3〕では、いずれの画素判定基準値を算出する際においても、所定の演算を行った後、0.9または1.1を乗ずる演算を行っている。これは、指定されたサンプルと同様の目標物を漏れなく検出するため、抽出条件をやや緩めにするために行われるものである。したがって、乗じる係数を変化させることにより、抽出基準を厳しくしたり緩めたりすることが可能となる。この係数は、上記〔数式3〕に示すように、“0.9”、“1.1”とすることが望ましいが、状況に応じて変更することが可能である。
サンプル画像上においては、同時に複数のサンプルを指定することも可能である。同時に複数のサンプルが指定された場合には、指定されたサンプルと同様の目標物が全て検出されるようにするため、7つの画素判定基準値のそれぞれについて、一番緩やかな条件となるような値を設定する。
本システムでは、上記のようにして画素判定基準値を設定した場合に、探索対象領域が的確に設定されるかどうかをサンプル画像上でシミュレーションすることができる。具体的な処理としては、後述する探索領域設定手段62による処理をサンプル画像に対して行い、探索対象領域と探索非対象領域を色分けして区分表示する。利用者は、これを見て画素判定基準値が正しく設定されたかどうかを確認することができる。例えば、サンプル画像上における目標物が探索対象領域に入っていない場合、利用者は、その目標物を新たに指定する。すると、画素判定基準値設定手段61が、指定された箇所に対して、上記〔数式3〕に従った処理を実行して7つの画素判定基準値を求めた後、既に設定されている7つの画素判定基準値と比較して、基準が緩い方の画素判定基準値を正式な画素判定基準値として採用する。これにより、新たな画素判定基準値を用いることにより、既に指定されていた目標物に加え、新たに指定された目標物も探索対象に含めることが可能となる。
逆に、シミュレーションを行った結果、探索対象としたくない部分が探索対象領域として設定されてしまった場合、本システムでは、その部分を除外するように、画素判定基準値を補正することができる。具体的には、図3(b)に示すように、目標物が全く存在しないような箇所が探索対象領域として設定されてしまっていることを発見した場合、利用者は、その部分を探索非対象とする箇所として設定する。図3(a)にも示したような中央暗部タイプ、中央明部タイプのように探索対象に含める部分と、探索非対象に含める部分の設定切り替えのためのユーザーインターフェースは、種々の形式のものを採用することができる。
利用者が、探索非対象とする箇所を指定すると、画素判定基準値設定手段61は、指定された箇所から画素ブロックを抽出し、抽出した画素ブロックの画素に対して、以下の〔数式4〕に従った処理を実行し、既に設定されている7つの画素判定基準値との差分Daoi、Ddoi、Dimin、Dimax、Domin、Domax、Ddirを算出する。
〔数式4〕
Daoi=MIN(|Voave−Viave|)−Saoi
Vomax−Vimin>Vimax−Vominの場合、D1=MAX(Vomax−Vimin)
Vomax−Vimin<Vimax−Vominの場合、D2=MAX(Vimax−Vomin)
Daoi=MIN(D1、D2)−Saoi
Voave>Viaveの場合、Dimin=MIN(Viave)
Voave<Viaveの場合、Dimax=MAX(Viave)
Domin=MIN(Voave)−Somin
Domax=Somax−MIN(Voave)
Ddir=MAX(Vdir)−Sdir
サンプル画像上においては、複数の探索非対象箇所を指定することが可能である。上記〔数式4〕においては、複数箇所指定された場合に、各画素ブロックで算出された値の最小値、最大値をそれぞれMIN、MAXとしている。したがって、探索非対象箇所が1箇所しか指定されていない場合には、指定された画素ブロックの値だけが利用される。上記〔数式4〕に従って差分を算出した場合、中央平均レベルVoaveと周辺平均レベルViaveの大小関係により、Dimin、Dimaxは、どちらか一方しか算出されないため、同時に6つの差分が算出されることになる。差分が算出されたら、画素判定基準値設定手段61は、7つの差分の中で最小となるものを選択し、以下の〔数式5〕に従った処理を実行し、対応するものを画素判定基準値として設定する。
〔数式5〕
Daoiが最小のとき、Saoi´=MAX(|Voave−Viave|)・1.1
Ddoiが最小のとき、Sdoi´=MAX(D1、D2)・1.1
Diminが最小のとき、Simin´=MIN(Viave)・0.9
Dimaxが最小のとき、Simax´=MAX(Viave)・1.1
Dominが最小のとき、Somin´=MAX(Voave)・1.1
Domaxが最小のとき、Somax´=MIN(Vomax)・0.9
Ddirが最小のとき、Sdir´=MAX(Vdir)・1.1
上記〔数式5〕においては、探索非対象として指定された箇所全てにおける画素ブロックで算出された画素評価値等の最小値、最大値をそれぞれMIN、MAXとしている。以上の結果、画素判定基準値として、Saoi、Sdoi、Simin、Simax、Somin、Somax、Sdirのうち6つ(実際は5つ)と、Saoi´、Sdoi´、Simin´、Simax´、Somin´、Somax´、Sdir´のうち1つの計7つ(実際は6つ)が設定されることになる。
探索領域設定手段62は、上記のような画素評価ルールが設定された状態で、探索領域の設定を行う。具体的には、探索対象画像の原点である(0,0)の画素を代表画素とする4×4の画素ブロックを抽出する。画素(0,0)が代表画素である場合、図2(b)に示したような(0,0)〜(3,3)までの16画素が抽出される。そして、探索領域設定手段62は、図2(a)の画素配置に従って上記画素評価ルールを適用する。すなわち、画素(0,0)の画素値をVO1、…画素(0,0)の画素値をVO12、として16画素全てを用いて、上記〔数式1〕に従った処理を実行し、上記〔数式2〕の条件を判定処理して、上記〔数式2〕の条件を全て満たす場合に、代表画素(0,0)を探索対象として設定する。上記〔数式2〕の条件を1つでも満たさなかった場合は、代表画素(0,0)を探索非対象として設定する。
画素(0,0)についての設定を終えたら、次に、探索領域設定手段62は、図2(c)に示すような画素(1,0)を代表画素とする4×4の画素ブロックに対して上記画素評価ルールを適用し、画素(1,0)を探索対象か探索非対象のいずれかに設定する。同様にして、探索領域設定手段62は、探索対象画像の全ての画素について、探索対象か探索非対象のいずれかに設定する処理を行う。このような処理を行うと、最後の3列と3行に属する画素については、代表画素として処理が行われないが、画像全体から見るとほんの一部であり、また、探索領域設定処理は、後の探索処理の負荷を軽減するために行うものであるため、あまり問題にはならない。
探索領域として設定された画素には、それを示す情報が記録されることになる。探索対象画像の各画素が探索領域であるか否かの具体的な記録手法については、様々なものがあるが、本実施形態では、1画素の値を表現する8ビット中の1ビットを用いる。したがって、探索領域設定手段62は、1画素256階調で表現された元の探索対象画像を読み込み、各画素の0〜255の値を0〜127の値に変換し、2〜8ビット目までに格納する。そして、探索領域設定手段62は、1ビット目には、階調とは関係なく、探索対象領域であるか探索非対象領域であるかを示す値を設定する。したがって、本実施形態では、探索領域の設定と同時に、探索対象画像が256階調から128階調に変換されることになる。
探索対象画像上の全画素を代表画素として、探索対象か探索非対象かの設定が終わったら、次に、探索領域設定手段62は、探索対象を画素ブロック単位で拡張する処理を行う。具体的には、探索対象とされた代表画素について、その代表画素に対応する画素ブロック内に含まれる4×4画素全てを探索対象に設定する。例えば、図4(a)に示すような、濃い網掛けが施された3つの画素が探索対象である場合、図4(b)に示すような、薄い網掛けが施された画素が全て探索対象として設定される。
本実施形態では、画素ブロック内の画素値に基づいて上記〔数式2〕の条件を判断した結果、全てを満たした場合に、図4(a)に示したように、一旦代表画素のみを探索対象として設定する。そして、図4(b)に示したように、代表画素が探索対象として設定された画素ブロック内の全画素を探索対象として拡大する。このように一旦代表画素だけを探索対象に設定することにより、探索対象領域と探索非対象領域の境界が滑らかになる。本発明では、代表画素を設けず、上記〔数式2〕の条件を全て満たした場合に、その画素ブロック内の全画素をまとめて探索対象とするような形態とすることも可能である。しかし、その場合は、探索対象領域と探索非対象領域の境界がギザギザになってしまう場合がある。
探索対象領域が設定されたら、探索領域設定部60は、探索対象領域と探索非対象領域を色分け等により区分し、探索対象画像に重ねて画像表示装置に出力する。これにより、利用者は、探索対象画像における探索対象領域を一目で把握することが可能になる。このとき、探索対象画像の内容、目標物の特徴等によっては、絞込み範囲が狭い範囲で特定でき、そのまま探索結果として用いることも可能となる。したがって、ここまでの処理だけでも目標物検索システムとして利用することができる。
(3.テンプレート画像の準備)
次に、テンプレート画像の準備について説明する。まず、探索対象画像記憶部10には、人工衛星により撮影された衛星画像が探索対象画像として記憶され、さらに上述のように、探索対象領域と探索非対象領域が設定される。本実施形態では、衛星画像として、Adobe社TIFF規格準拠のGeo−TIFF形式であり、画像データに地理情報(緯度経度情報など)が付加されたものを採用する。衛星画像には、輸送機関(航空機、船舶、自動車、電車など)、建築物、交通路(道路、線路など)などの目標物になり得るものが写っている。
この状態で、テンプレート準備部20は探索対象画像記憶部10に記憶された探索対象画像をソース画像の形式からワーク画像の形式に変換する。これは、探索の効率を上げるために行われるものである。具体的には、公知のヒストグラム平坦化技術を用いてワーク画像の形式に変換する。本実施形態では、ワーク画像をRXY形式(縦横の画素数と各画素のビット数という最小限のヘッダ情報と画素配列だけで構成されるTIFF形式等に比べ極めてシンプルな画像ファイル形式で、RAW形式とも呼ばれる)で作成する。テンプレート準備部20は、この探索対象画像をサンプル画像として用いる。
続いて、テンプレート準備部20は、ワーク画像形式に変換したサンプル画像としての探索対象画像を画面に表示し、テンプレート画像作成のための画像領域の指定を利用者に促す。これに対して、利用者は、画面に表示された探索対象画像において、多角形形状(本実施形態では4頂点で構成される自由な四角形形状)の画像領域の輪郭を指定する。これは、マウス操作により、四角形形状の4つの頂点を指定することにより行われる。例えば、自動車を目的物とする場合、利用者は、衛星画像に写っている自動車を見つけ、その自動車を含む有効画像領域を指定することになる。具体的にはテンプレート作成手段21が、画面上に初期状態として正方形形状の四角形を表示し、利用者はいずれかの頂点を画面上で選択し、前記頂点を所望の位置までドラッギングさせることにより頂点を指示し、4つの頂点に対して順次同様な操作を行なう。
テンプレート作成手段21が、画面上に発生させる四角形は二重の四角形であり、外側四角形を構成する各辺と内側四角形を構成する各辺の幅は所定の値に設定されている。したがって、利用者が、外側四角形か内側四角形のいずれかの頂点をドラッギングにより移動させると、テンプレート作成手段21は、それに応じて他方の四角形の頂点も両四角形の各片の距離を保つように移動させる。指定が行われると、テンプレート作成手段21は、図5(a)に示されるように、外側四角形の外側に外側四角形を360度回転させても、はみ出さないように外接する正方形形状(図5(a)の外側正方形形状)を同時に生成する。従って、初期状態では画面上に3重の正方形が表示されており、利用者が内側の2重正方形形状を所望の四角形に変形させると、それに連動して最外側正方形形状が正方形を維持しながら変化する。更に、利用者の負担を軽減するため、利用者が内側の四角形形状を変形させると、テンプレート作成手段21は、それに連動して外側の四角形形状を、内側の四角形形状を所定の幅だけ外側にオフセットさせた形状に自動的に定義するようにしている。即ち、利用者は内側の四角形形状のみを主に定義すればよく、外側の四角形形状については自動設定される形状に対して補正を施す程度で良い。
利用者が、表示された探索対象画像内において、所定の四角形形状の指定を完了すると、テンプレート作成手段21は、探索対象画像内から指定された四角形形状の外側に定義された正方形形状に基づいてトリミングする。さらに、テンプレート作成手段21は、テンプレート画像内で利用者が指定した外側四角形形状の外側部分である外側マスク領域(マスク階調値0)と、外側四角形形状と内側四角形形状の間である内側マスク領域(マスク階調値1)および有効画像領域(マスク階調値2)にそれぞれマスク値を設定する。この際、内側マスク領域および有効画像領域の画素階調値に対しては、変更を行わず、外側マスク領域の画素階調値は一律0に変更する。この結果、正方形サイズのテンプレート画像が得られ、その内部は、有効画像領域、内側マスク領域、外側マスク領域で構成される。具体的には、図5(b)に示されるように、有効画像領域にはマスク値“2”、内側マスク領域にはマスク値“1”、外側マスク領域にはマスク値“0”が設定される。また、有効画像領域および内側マスク領域には画素値“0”〜“127”が設定されるが、外側マスク領域には画素値は設定されない(全ての画素値が“0”にクリアされる)。有効画像領域および内側マスク領域の画素値が“0”〜“127”に設定されるのは、探索対象領域設定後の探索対象画像の階調に合わせたためである。
さらに、テンプレート準備部20は、多角形形状およびその内部だけを所定の角度で回転させたパターンもテンプレート記憶部30に登録する。本実施形態では、角度を45度単位で回転させ、8つの異なる傾き角度に従ったテンプレート画像を作成する。角度が異なる8つのテンプレート画像を図6に示す。このとき、外側の正方形形状は利用者が指定した多角形を360度回転させても、はみ出さないように定義しているため、前記8種類の角度の多角形は同一サイズのテンプレート画像で表現することができる。本実施形態では、角度を異ならせたパターンは同一のテンプレート画像として同一のテンプレートIDで登録する。したがって、図6に示したテンプレート画像は、全て同一のテンプレートIDを持ち、各パターンは、その角度で特定する。本実施形態では、テンプレートIDを8個登録可能となっている。この場合、8個のテンプレート画像について、それぞれ8つの角度で登録されるので、全部で64パターンが登録されることになる。
本実施形態では、テンプレート画像と探索対象画像とのマッチング処理を行う際、テンプレート画像の各角度パターンに依存しない処理と、各角度パターンに依存する処理を行う。このうち、各角度パターンに依存しない処理は、全角度パターンに共通の有効画像領域である共通有効画像領域に対して実行する。共通有効画像領域は、例えば、図7(a)に示すような角度パターンのテンプレート画像の場合、図7(b)に示すような全ての角度パターンにおける内側四角形に囲まれた領域となる。すなわち、共通有効画像領域は、図7(c)に示したような領域となる。実際には、テンプレート作成手段21が各角度パターンにおける有効画像領域に属する画素(マスク値が“2”である画素)を認識し、全ての角度パターンで有効画像領域に属する画素にマスク値“3”を付与することにより、共通有効画像領域を設定する。
テンプレート画像が登録されたら、テンプレート準備部20は、探索対象画像上の適合とすべき対象物を指定するように促す。利用者が、適合とすべき対象物を指定すると、指定された位置付近の画素値を利用して、判定基準値の算出およびテンプレート画像の更新を行う。この判定基準値の算出およびテンプレート画像の更新について図8のフローチャートを用いて説明する。
まず、利用者は、画面に表示された探索対象画像の内容を見て、探索対象に含めたいと考える対象物を見つけ、その対象物上の点を指定する(S101)。図9(a)は、対象物を指定する際の探索対象画像の様子を示す図である。探索対象画像中で、利用者が探索対象に含めたい対象物上の点を指定すると、図9(a)に示すように、テンプレート画像の正方形形状の外枠および二重の多角形形状が表示される。例えば、衛星画像の中から自動車を検出したい場合、衛星画像中の1つの自動車の上の点を指定する。
続いて、テンプレート準備部20は、指定された位置を基点にしてテンプレート画像とのマッチング処理を行う(S102)。この処理を行う理由は、図9(a)のように、利用者が画面上で指定した点は視覚的な判断によるもので曖昧性に富むため、この点を基にそのまま判定基準値を算出すると、不適切な探索が行なわれる可能性が高いためである。そこで、本処理では利用者が指示した点を最適な位置に補正するものである。具体的には、図9(b)に示すように、指定された探索対象画像上の基点(Xc、Yc)とテンプレート画像の中心位置を合わせ、そこからテンプレート画像をx方向,y方向に1画素単位で、設定された範囲内において移動させながら、マッチング処理を行う。このマッチング処理の詳細については後述する。同一位置において、角度を変えた8通りのテンプレート画像に対してマッチング処理を行い、最も類似度の高い角度のテンプレート画像を選出するとともにその探索対象画像の画素位置を最適位置として特定する。
次に、判定基準値設定手段22が、探索対象画像上の対象物が適合判定されるように判定基準値の設定を行う(S103)。判定基準値の設定が終わったら、テンプレート更新手段23が、最適位置における探索対象画像の画素ブロックとテンプレート画像を合成し、その合成画像でテンプレート画像を更新する(S104)。
次に、上記S102におけるマッチング処理の詳細について、図10のフローチャートを用いて説明する。図10に示したS201〜S206の処理のうち、S201、S202はテンプレート画像内の多角形の角度に依存しない処理であり、S203〜S206はテンプレート画像内の多角形の角度に依存する処理である。角度に依存しないS201、S202の処理は、1つのテンプレート画像について1回だけ、共通有効画像領域に対して実行されるが、角度に依存するS203〜S206の処理は、各角度のパターンの有効画像領域に対して実行されるため、1つのテンプレート画像について8回実行されることになる。マッチング処理を行う際は、まず、類似性評価値となる各変数の初期化を行う。具体的には、角度に依存しない輝度ヒストグラム(階調ヒストグラム)の差分の最小値、角度に依存しない輝度分散(階調分散)の差分の最小値、角度に依存する輝度ヒストグラムの差分の最小値、角度に依存する輝度分散の差分の最小値、グレー階調画素差分の最小値、正規化相関係数の最大値の6つの変数(類似性評価値)を初期化する。本実施形態では、これら6つの変数は全て0〜1000の値をとり、正規化相関係数については、初期値を最小値0とし、他の5つの変数については、初期値を最大値1000とする。
各変数の初期化が終わったら、角度に依存しない輝度ヒストグラムの照合を行う(S201)。具体的には、まず、テンプレート画像のサイズをS×Sとし、テンプレート画像の画素(x,y) (0≦x≦S-1, 0≦y≦S-1)における階調値をVt(x,y)(0〜127)、マスク値をMt(x,y) (0,1,2,3)、探索対象画像の位置(Xc+dx,Yc+dy) を起点とする領域内のテンプレート位置(x,y)に対応する画像階調値をV(x+Xc+dx,y+Yc+dy)(1〜127)とする。S×S 画素の範囲内で、Mt(x,y)=3となる画素(x,y)において、V(x,y)/8の値に基づく探索対象画像の16階調の輝度ヒストグラムH(v) (0≦v≦15)、およびVt(x,y)/8の値に基づくテンプレート画像の16階調の輝度ヒストグラムHt(v) (0≦v≦15)を算出する。さらに、以下の〔数式6〕に従った処理を実行して輝度ヒストグラム差分、すなわち輝度ヒストグラム同士のユークリッド距離を算出する。
〔数式6〕
(輝度ヒストグラム差分)=1000・Σ v=0,15|H(v)−Ht(v)|/ Σ v=0,15(H(v)+Ht(v))
続いて、輝度分散の照合を行う(S202)。具体的には、S201と同様、テンプレート画像のサイズをS×Sとし、S×S 画素の範囲内で、Mt(x,y)=3となるC個の画素(x,y)を用いて、探索対象画像の平均階調値Vaとテンプレート画像の平均階調値Vatを以下の〔数式7〕に従った処理を実行して算出する。
〔数式7〕
Va= Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) =3 V(x+Xc+dx,y+Yc+dy)/ C
Vat= Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) =3 Vt(x,y)/ C
C= Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) =3 1
そして、S×S 画素の範囲内で、Mt(x,y)=3となる画素(x,y)を用いて、探索対象画像の輝度分散値Dとテンプレート画像の輝度分散値Dtを以下の〔数式8〕に従った処理を実行して算出する。
〔数式8〕
D= Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) =3 |V(x+Xc+dx,y+Yc+dy) −Va|/C
Dt= Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) =3 | Vt(x,y) −Vat|/C
そして、S×S 画素の範囲内で、Mt(x,y)=3となる画素(x,y)を用いて、周知の計算式である以下の〔数式9〕に従った処理を実行して輝度分散差分を算出する。
〔数式9〕
(輝度分散差分)=1000・|D−Dt|/(D+Dt)
上述のようにS201、S202は、角度に依存しない処理である。したがって、各テンプレート画像について1回だけ行えばよい。共通有効画像領域に対するS201、S202の処理は、いずれの角度パターンの画素値を用いても良いが、本実施形態では、代表して0度のパターンの画素値を用いている。ここからのS203〜S206は、角度に依存する処理であるため、同一IDをもつテンプレート画像についても、角度別に処理を行う。S203〜S206の処理において、各角度パターンのテンプレート画像上で処理対象となるのは、有効画像領域と内側マスク領域の画素である。
次に、角度に依存する輝度ヒストグラムの照合を行う(S203)。具体的には、S×S 画素の範囲内で、Mt(x,y) >0となる画素(x,y)において、V(x,y)/8の値に基づく探索対象画像の16階調の輝度ヒストグラムH(v) (0≦v≦15)、およびVt(x,y)/8の値に基づくテンプレート画像の16階調の輝度ヒストグラムHt(v) (0≦v≦15)を算出する。さらに、上記〔数式6〕に従った処理を実行して輝度ヒストグラム差分、すなわち輝度ヒストグラム同士のユークリッド距離を算出する。
次に、角度に依存する輝度分散の照合を行う(S204)。具体的には、S×S 画素の範囲内で、Mt(x,y) >0となるC個の画素(x,y)を用いて、探索対象画像の平均階調値Vaとテンプレート画像の平均階調値Vatを上記〔数式7〕に従った処理を実行して算出する。そして、S×S 画素の範囲内で、Mt(x,y) >0となる画素(x,y)を用いて、上記〔数式9〕に従った処理を実行して輝度分散差分を算出する。
次に、グレー階調画素差分の算出を行う(S205)。具体的には、上記と同様に、テンプレート画像のサイズをS×Sとし、テンプレート画像の画素(x,y) (0≦x≦S-1, 0≦y≦S-1)における階調値をVt(x,y) (0〜127)、マスク値をMt(x,y)(0,1,2,3)、探索対象画像の位置(Xc+dx,Yc+dy) を起点とする領域内のテンプレート位置(x,y)に対応する画像階調値をV(x+Xc+dx,y+Yc+dy) (0〜127)とする。ここで、シャドウ側をハイライト側に上げ、中間調部をシャドウ側に落とすような以下の階調変換を施す。Vt(x,y)≧64のとき、Vt'(x,y)=Vt(x,y)-64、 Vt(x,y)<64のとき、Vt'(x,y)=63-Vt(x,y) 。V(x,y) ≧64のとき、V'(x,y)=V(x,y)-64、 V(x,y)<64のとき、V'(x,y)=63-V(x,y)。 さらに、S×S 画素の範囲内で、Mt(x,y) >0となるC個の画素(x,y)を用いて、以下の〔数式10〕に従った処理を実行して探索対象画像とテンプレート画像の画素差分であるグレー階調画素差分を算出する。
〔数式10〕
(グレー階調画素差分)= 1000・Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y)≠0 |V'(x+Xc+dx,y+Yc+dy)−Vt'(x,y)| / ( V'(x+Xc+dx,y+Yc+dy)+Vt'(x,y) )
次に、正規化相関係数の算出を行う(S206)。具体的には、上記と同様に、テンプレート画像のサイズをS×Sとし、テンプレート画像の画素(x,y) (0≦x≦S-1, 0≦y≦S-1)における階調値をVt(x,y)(0〜127)、マスク値をMt(x,y)(0,1,2,3)、探索対象画像の位置(Xc+dx,Yc+dy) を起点とする領域内のテンプレート位置(x,y)に対応する画像階調値をV(x+Xc+dx,y+Yc+dy) (1〜127)とする。S×S画素の範囲内で、Mt(x,y) >0となるC個の画素(x,y)を用いて、探索対象画像の平均階調値Vaとテンプレート画像の平均階調値Vatを上記〔数式7〕(ただし、Mt(x,y) >0)に従った処理を実行して算出する。
そして、S×S 画素の範囲内で、Mt(x,y) >0となる画素(x,y)を用いて、周知の計算式である以下の〔数式11〕に従った処理を実行して正規化相関係数を算出する。ただし、正規化相関係数が負値(負の相関)となる場合は0(相関無し)として扱う。
〔数式11〕
(正規化相関係数)= 1000・Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) ≠0 (V(x+Xc+dx,y+Yc+dy)−Va)・(Vt(x,y)−Vat) / [Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) ≠0 (V(x+Xc+dx,y+Yc+dy)−Va)2・ Σ y=0,S-1 Σ x=0,S-1 | Mt(x,y) ≠0 (Vt(x,y)−Vat)2]1/2
続いて、各変数の更新を行う(S207)。具体的には、S201において算出した輝度ヒストグラム差分が、現在設定されている輝度ヒストグラム差分の最小値より小さく、かつS206において算出した正規化相関係数が現在設定されている正規化相関係数の最大値より大きい場合、角度に依存しない輝度ヒストグラムの差分の最小値、角度に依存しない輝度差分の最小値、角度に依存する輝度ヒストグラムの差分の最小値、角度に依存する輝度差分の最小値、グレー階調画素差分の最小値、正規化相関係数の最大値の6つの変数(類似性評価値)を今回算出した値に置き換える。そして、位置、テンプレートID、角度の値を、このときの位置、テンプレートID、角度の値で更新する。
各変数の更新が終わったら、1つのテンプレート画像について、全ての角度のパターンの処理が終わったかどうかを判断する(S208)。全ての角度のパターンについて処理が終わっていない場合は、S203に戻って、角度に依存する輝度ヒストグラムの差分、角度に依存する輝度差分、グレー階調画素差分、正規化相関係数の算出を行う。全ての角度のパターンについて処理が終わった場合は、S209に進む。したがって、本実施形態では、1つのテンプレート画像につき、8通りの角度について、S203〜S207の処理が繰り返される。
1つのテンプレート画像の全角度について処理が終わったら、全てのテンプレート画像について処理が終わったかどうかを判断する(S209)。全てのテンプレート画像について処理が終わっていない場合は、S201〜S208の処理を繰り返す。全てのテンプレート画像について処理が終わった場合は、S210に進む。したがって、本実施形態では、1つの画素位置につき、8個のテンプレート画像について、S201〜S208の処理が繰り返される。
全てのテンプレート画像について処理が終わったら、全ての画素位置について処理が終わったかどうかを判断する(S210)。全ての画素位置とは、指定された基点(Xc、Yc)からx軸、y軸方向にそれぞれ所定画素の範囲に含まれる画素の位置を意味する。所定画素の範囲としては、テンプレート画像のx軸、y軸方向のそれぞれ5%程度が設定されている。例えば、テンプレート画像が100×100画素である場合、5×5の計25画素の位置について、図9に示した処理が繰り返される。全ての画素位置について処理が終わっていない場合は、S201〜S209の処理を繰り返す。全ての画素位置について処理が終わった場合は、各変数を出力して、マッチング処理を終了する。各変数は、各テンプレート画像単位で出力される。
次に、S103の判定基準値の設定の詳細について説明する。判定基準値は、判定基準値設定手段22により、マッチング処理において出力された各変数に所定の値を乗じることにより設定される。本実施形態では、正規化相関係数については、出力された正規化相関係数の最大値に0.9を乗じた値を判定基準値とし、他の5つの変数については、出力された値に1.1を乗じた値を判定基準値としている。具体的には、以下の〔数式12〕に従った処理を実行して算出する。
〔数式12〕
(角度非依存の輝度ヒストグラム差分の判定基準値)=(角度非依存の輝度ヒストグラム差分の最小値)×1.1
(角度非依存の輝度分散差分の判定基準値)=(角度非依存の輝度分散差分の最小値)×1.1
(角度依存の輝度ヒストグラム差分の判定基準値)=(角度依存の輝度ヒストグラム差分の最小値)×1.1
(角度依存の輝度分散差分の判定基準値)=(角度依存の輝度分散差分の最小値)×1.1
(グレー階調画素差分の判定基準値)=(グレー階調画素差分の最小値)×1.1
(正規化相関係数の判定基準値)=(正規化相関係数の最大値)×0.9
続いて、S104のテンプレートの更新の詳細について説明する。S104では、テンプレート更新手段23が、各テンプレート画像を更新する。具体的には、各テンプレート画像の最適位置における探索対象画像上の画素ブロックを用いて、各テンプレート画像の各角度の画像を更新する。まず、各テンプレート画像のうち、最適角度のものと探索対象画像上の画素ブロックの合成を行う。テンプレート画像において外側マスク領域は合成を行わないので、テンプレート画像中の内側マスク領域および有効画像領域内部についてのみ合成を行う。
合成の具体的な手法としては、内側マスク領域および有効画像領域内部の各画素単位で整数の擬似乱数を順次発生させ、所定の数が出たら、探索対象画像上の画素ブロックの対応する画素の値に置き換える。例えば、奇数が出たら、探索対象画像上の画素ブロックの対応する画素に置き換えるように設定しておけば、約半分の確率で内側マスク領域および有効画像領域内部の画素が探索対象画像の画素に置き換えられる。図11は、探索対象画像とテンプレート画像の合成によりテンプレート画像を更新する例を示す図である。図11の例では、説明の便宜のため、画像サイズを5×5画素に簡略化している。図11(b)はテンプレート画像であり、Tは外側多角形内部(有効画像領域および内側マスク領域)の画素を示し、空白は外側マスク領域の画素を示している。図11(a)はテンプレート画像に対して最適位置と判断された探索対象画像上の画素ブロックであり、Wは探索対象画像上の画素を示している。この2つの画像に上述のような合成処理を施した結果、図11(c)に示すように、テンプレート画像の内側マスク領域および有効画像領域の画素Tのうち約半数が探索対象画像の画素Wに置き換えられた合成画像が得られる。この合成画像が、更新されたテンプレート画像として登録される。なお、乱数の発生方式は処理を行う度に異なる系列になるように、シーズを毎回変更する。
最適角度のパターンについて、更新処理が終わったら、他の角度のパターンについても更新を行う。他の角度のパターンについては、最適角度との角度の差を求め、その角度だけ探索対象画像上の画素ブロックを回転し、有効画像領域内部の各画素単位を回転した探索対象画像上の画素ブロックの対応する画素に置き換える。このようにして、全ての角度についてテンプレート画像が更新される。あらかじめ用意した全てのテンプレート画像に対して同様の処理を行うことにより、全てのテンプレート画像を更新する。図12はテンプレート画像の更新の様子を示す図である。図12に示すように、探索対象画像上における最適位置の画素ブロックを用いて、全ての角度の画像を更新する。
(4.探索処理)
以上のようにして、テンプレート画像の準備が完了したら、準備されたテンプレート画像を用いて、目標物探索部40が目標物の探索を行う。この目標物の探索処理について図13のフローチャートを用いて説明する。利用者が目標物探索処理を指示すると、目標物探索部40の角度非依存類似性判断手段41、角度依存類似性判断手段42が連携して、順次マッチング処理を行う(S301)。具体的には、探索対象画像中の始点画素位置から順次パターンマッチング処理を実行し、類似判定する位置を見つける。
図14は、順次マッチング処理の概略を示す図である。順次マッチング処理は、最初に、探索対象画像中の始点画素位置(0,0)を起点として(S−1,S−1)までのS×S個の正方形状の画素ブロックと、テンプレート画像との比較を行い、(1,0)を起点とする正方形領域、(2,0)を起点とする正方形領域…というように、X方向スキャン範囲に1画素づつ移動させて比較を行っていき、x軸方向について終了したら、Y方向スキャン範囲に1画素分移動し、(0,1)を起点とする正方形領域、(1,1)を起点とする正方形領域…というように順次探索対象画像全体についてテンプレート画像との比較を行っていく。
各画素位置におけるマッチング処理は、同一IDのテンプレート画像の全8個の角度パターンのうちいずれか1つの角度パターンとのマッチングを行う角度非依存テンプレートマッチングと、同一IDのテンプレート画像のうちの全8個の角度パターンとのマッチングを行う角度依存テンプレートマッチングとに分けて行われる。角度非依存テンプレートマッチングで不適合と判断された場合は、角度依存テンプレートマッチングを行うことなく、次の画素位置に移動する。
画素位置を特定した場合の順次マッチング処理の詳細を図15のフローチャートに示す。まず、S102のマッチング処理と同様、類似性評価値となる各変数の初期化を行う。具体的には、角度に依存しない輝度ヒストグラムの差分の最小値、角度に依存しない輝度差分の最小値、角度に依存する輝度ヒストグラムの差分の最小値、角度に依存する輝度差分の最小値、グレー階調画素差分の最小値、正規化相関係数の最大値の6つの変数(類似性評価値)を初期化する。探索処理で用いる6つの類似性評価値も全て0〜1000の値をとり、正規化相関係数については、初期値を最小値0とし、他の5つの変数については、初期値を最大値1000とする。
類似性評価値の初期化が行われたら、まず、その画素位置における探索対象領域の確認を行う(S400)。最初の画素位置は(0,0)であるので、ここから(S−1、S−1)の範囲におけるS×S個の各画素について、探索対象領域として設定されているかどうかを確認する。本実施形態では、各画素の1ビット目の値により探索領域を設定しているため、この値を確認することにより、探索領域であるか非探索領域であるかを判断する。(0,0)を起点とするS×S画素の過半数が探索非対象領域である場合には(1ビット目が0である画素の個数>S×S/2)、次の画素位置(1,0)に移動し(不適合終了)、S400の探索対象領域の確認を行う。このS400における処理により、探索非対象領域に対しては、S401以降の処理を行わないことになり、全体としての探索処理の効率化が図られる。
S400において、1画素でも探索対象領域として設定された画素が存在する場合は、輝度ヒストグラムの照合を行う(S401)。具体的には、上記S201と同様に、〔数式6〕に従った処理を実行して輝度ヒストグラム差分を算出する。そして、この輝度ヒストグラム差分と、S103で設定した判定基準値の比較を行い、判定基準値より大きい場合は、不適合となる。判定基準値と等しい場合は、どちらになるように設定しておいても良いが、本実施形態では、不適合と判断するよう設定している。これは、他の類似性評価値についても同様である。なお、不適合とは、類似性がないことを意味する。不適合となった場合は、現在利用しているテンプレート画像では適合しないと判断し、全てのテンプレート画像との処理を終えたかどうかを判断する(S411)。全てのテンプレート画像との処理が終了していない場合は、別のテンプレート画像に変更して(S412)、S400に戻る。
S401において、輝度ヒストグラム差分が判定基準値より小さい場合は、輝度分散の照合を行う(S402)。具体的には、上記S202と同様に、〔数式9〕に従った処理を実行して輝度分散差分を算出する。そして、この輝度分散差分と、S103で設定した判定基準値の比較を行い、判定基準値以上の場合は、不適合となる。不適合となった場合の処理は、S401で不適合となった場合と同様である。S401、S402の処理は、上記S201、S202の処理と同様、共通有効画像領域に対して行われる。S401、S402の処理は、角度に依存しない処理であるため、それぞれテンプレート画像と照合して1回でも不適合であれば、別のテンプレート画像との処理に移行することになる。
S402において、輝度分散差分が判定基準値より小さい場合は、角度に依存する輝度ヒストグラムの照合を行う(S403)。具体的には、上記S401と同様に、〔数式6〕に従った処理を実行して輝度ヒストグラム差分を算出する。ただし、S401、S402の処理とは異なり、同一のテンプレート画像について全ての角度に対して処理を行う。角度に依存する輝度ヒストグラムは、最小のものに更新され、そのときの角度が記録される。そして、全ての角度に対して輝度ヒストグラム差分の算出が終わったら(S404)、最小となった輝度ヒストグラム差分と、S103で設定した判定基準値の比較を行い、輝度ヒストグラム差分が判定基準値以上の場合は、不適合となる。不適合となった場合の処理は、S401で不適合となった場合と同様である。
角度に依存する輝度ヒストグラムで適合となった場合は、角度に依存する輝度分散の照合を行う(S405)。具体的には、上記S402と同様に、〔数式9〕に従った処理を実行して輝度分散差分を算出する。ただし、S401、S402の処理とは異なり、同一のテンプレート画像について全ての角度に対して処理を行う。角度に依存する輝度分散差分は、最小のものに更新され、そのときの角度が記録される。そして、全ての角度に対して輝度分散差分の算出が終わったら(S406)、最小となった輝度分散差分と、S103で設定した判定基準値の比較を行い、輝度分散差分が判定基準値以上の場合は、不適合となる。不適合となった場合の処理は、S401で不適合となった場合と同様である。
角度に依存する輝度ヒストグラムで適合となった場合は、グレー階調画素差分の算出を行う(S407)。具体的には、上記S205と同様に、〔数式10〕に従った処理を実行してグレー階調画素差分を算出する。グレー階調画素差分の算出処理においても、同一のテンプレート画像について全ての角度に対して処理を行う。グレー階調画素差分は、最小のものに更新され、そのときの角度が記録される。そして、全ての角度に対してグレー階調画素差分の算出が終わったら(S408)、最小となったグレー階調画素差分と、S103で設定した判定基準値の比較を行い、グレー階調画素差分が判定基準値以上の場合は、不適合となる。不適合となった場合の処理は、S401で不適合となった場合と同様である。
グレー階調画素差分で適合となった場合は、正規化相関係数の算出を行う(S409)。具体的には、上記S206と同様に、〔数式7〕〔数式11〕に従った処理を実行して正規化相関係数を算出する。正規化相関係数の算出処理においても、同一のテンプレート画像について全ての角度に対して処理を行う。正規化相関係数は、最大のものに更新され、そのときの角度が記録される。そして、全ての角度に対して正規化相関係数の算出が終わったら(S410)、最大となった正規化相関係数と、S103で設定した判定基準値の比較を行い、正規化相関係数が判定基準値より大きい場合は適合となり、正規化相関係数が判定基準値以下の場合は不適合となる。
全テンプレート画像について処理が終わったら(S411)、全項目すなわち6つの類似性評価値全てが適合であるテンプレートがあるかどうかを判断する(S413)。全項目が適合であるテンプレートがある場合は、グレー階調画素差分が最小の場合と、正規化相関係数が最大の場合のテンプレートIDと、その角度が一致するかどうかを判断する(S414)。すなわち、S407およびS408におけるグレー階調画素差分の算出処理において最小値を与えるテンプレートおよび角度と、S409およびS410における正規化相関係数の算出処理において最大値を与えるテンプレートおよび角度とが各々一致し、前記一致するテンプレートがS401、S402、S403、S405、S407およびS409において全て適合すると判断された場合は、適合終了となり、各変数、すなわちテンプレートID、画素位置(Xc、Yc)、角度、6つの類似性評価値を出力する。いずれかにおいて、不適合となる場合は、不適合終了となり、次の画素位置に対して、順次マッチング処理を行う。
図15に示した順次マッチング処理においては、探索領域設定手段62により、S400の探索対象領域の確認、角度非依存類似性判断手段41により、S401の角度に依存しない輝度ヒストグラムの照合、S402の角度に依存しない輝度分散の照合、角度依存類似性判断手段42により、S403の角度に依存する輝度ヒストグラムの照合、S405の角度に依存する輝度分散の照合、S407のグレー階調画素差分の算出、S409の正規化相関係数の算出の計7つの適合性判定処理が行われるが、これらの適合性判定処理は、処理負荷が小さいものから順に行われるように設定されている。すなわち、本実施形態では、S400の探索対象領域の確認が最も処理負荷が小さく、続いて角度に依存しない輝度ヒストグラムの照合が処理負荷が2番目に小さく、正規化相関係数の算出が最も処理負荷が大きい。これは、1つの処理で不適合と判定された場合に、全体として非類似と判断するという条件とすると、処理負荷が小さいものから先に行った方が効率が良いからである。特に、S400の探索対象領域の確認はテンプレートと照合を行う必要がなく、順次マッチング処理の対象となる領域内で探索領域設定手段62により設定された画素をカウントするだけでよいため、これ以降の順次マッチング処理のいずれよりも処理負荷が小さくなり、探索領域設定手段62により設定される画素の割合は一般に10%以下であるため、90%強の領域においてこれ以降の順次マッチング処理を実行せずに不適合と判断できる。続いて順次マッチング処理の中で、角度に依存する輝度ヒストグラムの照合、角度に依存する輝度分散の照合、グレー階調画素差分の算出、正規化相関係数の算出については、各角度について実行するため、1つの角度についてのみ実行する角度に依存しない輝度ヒストグラムの照合、角度に依存しない輝度分散の照合に比べて処理負荷は格段に大きくなる。また、角度に依存する処理の中でも、輝度ヒストグラム、輝度分散のように画像全体で1つの値を算出し、照合する処理は、グレー階調画素差分、正規化相関係数のように、画素単位で照合する処理に比べて処理負荷が小さいため、先に行うようにし、全体としての処理負荷を軽減している。
S301の順次マッチング処理が適合終了となったら、次に、目標物探索部40は、局所マッチング処理を行う(S302)。S301の順次マッチング処理は、探索対象画像全体における目標物の大まかな位置を探索するのに対し、S302の局所マッチング処理は、目標物の詳細な位置を探索する。具体的には、順次マッチング処理で最適と判断された位置(Xc、Yc)を起点に、画素スキャン進行方向(右方向、下方向)に所定の微小幅(ΔX、ΔY)だけ動かしながらテンプレートマッチングを実行し、6つの類似性評価値を最小値、最大値に更新し、そのときのテンプレートID、画素位置(Xm、Ym)、角度Amを出力する。マッチング処理の詳細は、図15に示した順次マッチング処理とは異なり図8のS102のマッチング処理、具体的には図10に示される処理と同じである。順次マッチング処理はある位置(Xc,Yc)で適合するか否かだけを判定すれば良かったが、局所マッチング処理は適合判定される微小範囲内で、更に最良の条件で適合する位置を探索する必要があるためである。
局所マッチング処理が終了したら、目標物探索部40の探索結果出力手段43が、探索結果の出力を行う(S303)。具体的には、テンプレートID、位置(Xm、Ym)、角度Am、および6つの類似性評価値をリスト出力する。
続いて、検出目標物消去手段44が、検出領域の消去を行う(S304)。具体的には、探索対象画像において、最適位置におけるテンプレート画像の図5で示した有効画像領域内部(内側多角形内部)に相当する部分を消去する。すなわち、有効画像領域内部に位置する探索対象画像上の画素の値を全て0(探索対象を示す1ビット目は変更せず、2〜8ビット目のビット値を全て0)にセットする。図16は、探索対象画像上における探索の結果の最適位置と、消去された領域を示す図である。探索の結果、探索対象画像上の目標物に対して、図16(a)に示すような位置がテンプレート画像の内側多角形と外側多角形の最適位置となった場合、図16(b)に示すように、探索対象画像上における有効画像領域(内側多角形内部)に相当する部分が消去される。図16(b)においては、外側多角形を点線で示しているが、仮に外側多角形の内部、すなわち有効画像領域内部に加えて内側マスク領域を消去すると、隣接する目標物の一部を消去してしまうことになり、隣接する目標物の検出が困難となる。このように、テンプレート画像の内側多角形内部に対応する領域を消去した場合でも、本探索処理終了後に探索位置を探索対象画像上でグラフィカルに表示する要求に応えるため、目標物探索部40は、消去前のオリジナルの探索対象画像をバックアップ保存する。
S301〜S304の処理は、探索対象領域上の全画素に対して行われる。その際、S304において、有効画像領域の内部に対応する領域が消去されるため、その付近の画素に対して順次マッチング処理を行っても類似判定されることはなく、1つの目標物を重複して見つけてしまうことを防ぐことができる。一方、角度依存テンプレートマッチングで利用される内側マスク領域に対応する探索対象画像上の領域は消去されないため、隣接する目標物を消去するのを防ぐことができる。
S303において出力された結果は、上述のように、探索結果出力手段43により探索結果として出力される。具体的には、検出された目的物の位置・方角をリスト出力する。この場合、位置については、画素位置を衛星画像が保有する緯度経度の情報に変換して出力する。また、探索画像上に検出した目的物の位置をグラフィカルに示すことも可能である。この場合、探索された箇所が全て消去されているため、バックアップ保存されたオリジナルの探索対象画像を再ロードする必要がある。その上に、指定の位置に内側多角形形状の輪郭線を指定の角度で回転させてオーバーレイ表示させ、検出された目的物の位置・方角を明示するようにする。S304の検出領域消去処理を行っても、重複する結果が存在する場合には、人手により1つを残して他は削除するような操作が行なわれる。
探索結果出力手段43は、リスト出力以外の形態で探索結果を出力することも可能である。本実施形態では、リスト出力を行うとともに、目標物の検出位置に対応した内側四角形形状を画像上に配置する出力も行う。図17は、探索結果出力手段43が出力した探索済み画面の一例を示す図である。長方形状の多数の枠は、テンプレート画像の内側四角形形状に対応し、目標物が検出された箇所を示すものである。また、濃い網掛けは、探索対象領域を示しており、その他は、探索非対象領域を示している。図17から明らかなように、長方形状の枠は、探索対象領域にだけ存在している。これは、探索非対象領域においては、探索を行わないためである。なお、実際には、探索結果出力手段43は、カラー出力を行うため、探索対象領域を赤で出力し、長方形の枠を緑で出力する処理を行う。
上記実施形態では、探索時には、テンプレート画像については、その内容が更新されることなく利用される場合について説明したが、探索時においても、探索準備段階と同様、テンプレート画像の更新を行うようにしても良い。この場合、S302の局所マッチング処理の後、第2のテンプレート更新手段45が、S104と同様の処理を実行する。具体的には、S302で決定された画素位置(Xm、Ym)の画素ブロックを用いて、S302で決定されたテンプレートIDで特定されるテンプレート画像の各角度の画像を更新する。ここでも、S104と同様、まず、各テンプレート画像のうち、S302で決定された最適角度のものと探索対象画像上の画素ブロックの合成を行う。テンプレート画像においてマスク領域は合成を行わないので、テンプレート画像中の有効画像領域と内側マスク領域についてのみ合成を行う。
合成の具体的な手法としては、図11を用いて説明したように、S104と同様、外側多角形形状内部の各画素単位で整数の擬似乱数を順次発生させ、所定の数が出たら、探索対象画像上の画素ブロックの対応する画素の値に置き換える。最適角度のパターンについて更新処理が終わったら、第2のテンプレート更新手段45が、他の角度のパターンについても更新を行うのもS104と同様である。なお、本実施形態では、第2のテンプレート更新手段45は、目標物探索部40の一部として機能するが、その具体的な機能は、テンプレート準備部20内のテンプレート更新手段23と同一であり、実際にはソフトウェアモジュールとして提供される。そのため、角度非依存類似性判断手段41、角度依存類似性判断手段42による処理の後、目標物探索部40からの指示により、テンプレート更新手段23がテンプレート画像の更新処理を実行するようにしても良い。この場合は、テンプレート更新手段23が第2のテンプレート更新手段として機能することになる。