以下、本発明に係るスポット画像検出方法及びスポット画像検出プログラムの実施の形態を図面を参照して詳細に説明する。
図1は、本発明に係るスポット画像検出装置の一つの実施形態の概略ブロック図である。符号1は、上記装置の一つの実施の形態の全体を指す。本装置1は、例えばパソコン又はワークステーションにより実現される処理装置10と、メインメモリとして使用されるRAM(ランダムアクセスメモリ)(図示せず)及び磁気ディスク記憶装置のような補助記憶装置(図示せず)とを含む記憶装置20と、入出力装置30とを備えている。入出力装置30は、キーボード及びマウス等のポインティングデバイスを含む入力装置31、CRTディスプレイ装置等の表示装置32又はプリンタ33などの出力装置を備えている。入力装置31はパラメータの入力やコマンドの起動などに使われる。表示装置32又はプリンタ33は、複数の検出対象物を撮像して得られる撮像画像あるいは本装置1により生成されるスポット画像マーカ付き画像等の画像あるいは本装置1により生成されるデータの表示又は印刷に使われる。記憶装置20内にデータが記憶されるときに、当該データが図示しないRAMと図示しない補助記憶装置のいずれに記憶されるかは、あらかじめ当該データ毎に決められている。処理装置10には、複数の検出対象物を含む領域を撮像して得られた撮像画像からそれぞれの検出対象物を検出するためのスポット画像検出プログラム40が組み込まれている。
本発明に係るスポット画像検出方法及びスポット画像検出プログラムの実施の形態を更に説明する前に、本実施の態様で実行する処理の原理を説明する。以下では、極大点画素を検出する場合を説明するが、極小値画素を検出する場合も同様である。また、撮像画像は、地表を人工衛星又は航空機から撮影して得られる地理画像であり、検出対象物は道路を走行するか道路上に停止している自動車であるとする。
図2は、本発明によるスポット画像の検出時に指定される探索条件データを説明するための図である。同図(a)は、一つの自動車に対する概略的な平面図である。図において、S1は、自動車の車輛の占有範囲を示し、図では車輛占有範囲S1は矩形であると仮定している。点C1は、当該車輛占有範囲S1の中心を示す。S2は、当該自動車に設けられた屋根の存在範囲を示す。屋根存在範囲S2は、撮像されたときに他の部分より濃度が異なる特定部分の例であり、スポット画像は、この屋根存在範囲において濃度が大きくなる。同図(a)の例では、屋根存在範囲S2は自動車のほぼ全体に広がって設けられている。しかし、図では、分かりやすさのために、屋根存在範囲S2は、自動車の車輛占有範囲S1より小さく記載してある。同図(a)の例では屋根存在範囲S2の中心C2は、車輛占有範囲S1の中心C1と一致すると仮定する。
本発明では、検出対象物に対するスポット画像を検出するときに、スポット画像が占有し得る最大占有範囲を指定する。同図(a)の自動車に対しては、スポット画像の最大占有範囲R1として、車輛占有範囲S1と同じか少し大きくなるようにスポット画像の最大占有範囲R1を指定する。同図(a)の例では、最大占有範囲R1は、車輛占有範囲S1と同じく矩形とし、その中心も車輛占有範囲S1の中心C1と一致するとする。最大占有範囲R1の縦横の辺は、それぞれ車輛占有範囲S1の縦横の辺より例えば10〜20%大きく設定すればよい。更に、本発明では、検出対象物に対するスポット画像の中央部分が最小限占有すべき中央最小占有範囲R2も指定する。スポット画像のうち濃度が大きな部分の存在範囲は、屋根存在範囲S2の中央部分であり、屋根存在範囲S2より小さい。したがって、同図(a)の例では、中央最小占有範囲R2として、屋根存在範囲S2より少し狭い領域を指定する。中央最小占有範囲R2の縦横の辺の長さは、それぞれ屋根存在範囲S2の縦横の辺の長さより、例えば10〜20%小さく設定すればよい。
同図(a)の場合には、最大占有範囲R1の中心C1は、中央最小占有範囲R2の中心C2からずれていない。しかし、本実施の形態では、これらの中心がずれていてもよい。最大占有範囲R1の中心C1が中央最小占有範囲R2の中心C2からずれているときには、最大占有範囲R1は、中央最小占有範囲R2の中心C2から見たときに見える範囲として指定される。例えば、それらの中心の間のずれ量と、最大占有範囲R1の中心C1から見たときの最大占有範囲R1の4つの頂点の座標が指定される。あるいは、中央最小占有範囲R2の中心C2から見たときの最大占有範囲R1の4つの頂点の座標が指定されてもよい。
本発明では、最大占有範囲R1内の周辺部の画素と、検出対象物に対するスポット画像の中心の画素の濃度との差に関して許容最小濃度差T1が指定される。すなわち、スポット画像の周辺部の画素は、スポット画像の中心に対して十分濃度が変化していることが要求される。更に、本発明では、中央最小占有範囲R2内の画素と、検出対象物に対するスポット画像の中心の画素の濃度との差に関して許容最大濃度差T2が指定される。すなわち、スポット画像の中央最小占有範囲R2内の画素の濃度は、スポット画像の中心の画素の濃度に対してあまり変化していないことが要求される。許容最小濃度差T1と許容最大濃度差T2は、検出する自動車の車輛の占有範囲、屋根部分の存在範囲によらないで、あらかじめ定めた値を使用してもよい
図2(b)は、以上で説明した探索条件データを示す図である。探索条件データ25は、図に示すようにスポット画像の最大占有範囲データ251、スポット画像の中央最小占有範囲データ252、許容最小濃度差(T1)253、許容最大濃度差(T2)254とを含んでいる。なお、スポット画像の最大占有範囲データ251は、既に説明したように、中央最小占有範囲R2の中心C2からみたときの最大占有範囲R1を指定するデータである。中央最小占有範囲データ252も、その中心C2からみたときの中央最小占有範囲を指定するデータであり、例えば、その範囲の4つの頂点の座標を含んでいる。
図2(c)は、スポット画像の濃度分布の例と上に説明した探索条件データとの関係を示す図である。同図において、曲線f(p)はスポット画像の中心を通る直線、具体的には図2(a)の水平方向の直線上での濃度分布を模式的に示す例であり、ここでは、極大点pが、スポット画像の中心であると仮定する。スポット画像の最大占有範囲R1、中央最小占有範囲R2が、図に示すように、極大点pを中心に含んでいる。極大領域Pは、後に説明するように、本発明にしたがって、極大点pの周りに位置する極大点pに対して単調減少関係を有する単調変化画素群からなる。図の例では、画素Aが極大点pの極大領域P内の左側の周辺部の最小濃度の画素、画素Bが極大点pの極大領域P内の右側の周辺部の最小濃度の画素であるとする。図では、極大領域Pの周辺部の画素のうち画素Bが濃度最大の画素であるとする。画素A、極大点p、画素Bを含むスポット画像が検出対象物の画素であるためには、極大点pの濃度f(p) とスポット画像の最大占有範囲R1内の周辺部の最大濃度(今の仮定では画素Bの濃度)との濃度差が許容最小濃度差(T1)以上であるという条件が満たされる必要がある。更に、中央最小占有範囲R2内の全画素が極大領域P内に位置し、かつ、極大点pの濃度と中央最小占有範囲R2内の画素との濃度差がいずれの画素についても、許容最小濃度差(T2)以下であるという条件が満たされる必要がある。
図2(d)は、屋根存在範囲S2と中央最小占有範囲R2の他の例を示す図である。同図(a)と異なり、屋根存在範囲S2は、車輛占有範囲S1の左側に偏って存在している。このような屋根存在範囲S2は、運転席の部分を覆うように屋根が設けられ、残りの部分には屋根なしの荷台が設けられているトラックの場合に存在する。車輛占有範囲S1の中心C1と屋根存在範囲S2の中心C2とは図に示すように位置がずれている。このような自動車を撮影した画像では、この自動車に対するスポット画像は、屋根存在範囲S2の中心C2に中心を有することになる。この自動車の場合には、最大占有範囲R1の中心C1は、中央最小占有範囲R2の中心C2と比べて、図に示すようにずれていることになる。本発明は、このように屋根存在範囲が車輛占有範囲のごく一部である自動車を検出対象物とする場合にも適用可能である。このような自動車を検出対象物とするには、スポット画像の最大占有範囲には、同図(a)の場合と同じく車輛占有範囲S1より少し大きな最大占有範囲R1を指定し、スポット画像の中央最小占有範囲には、屋根存在範囲S2より少し小さな中央最小占有範囲R2を指定すればよい。以下では、図2(a)の自動車の場合について本発明の一つの実施の形態での処理を説明するが、同図(d)の自動車の場合についても以下の処理を適用できる。
本実施の形態で使用する極大領域は、例えば以下の方法により検出できる。撮像画像中から極大点画素pを検出し、検出された極大点画素pに対する極大領域M(p)は、以下のようにして帰納的に求めることができる。M0(p)を極大点画素pからなる第0次極大領域とする。極大点画素pの第0次極大領域M0(p)から始めて、第n次極大領域Mn(p)に対して第(n+1)次増分領域Bn+1(p)だけの領域成長を繰り返して決定し、第(n+1)次極大領域Mn+1(p)を次式1により求める。
Mn+1(p) = Mn(p) ∪ Bn+1(p) (1)
ここで、第(n+1)次増分領域Bn+1(p)は、画素qが第n次極大領域Mn(p)に隣接するという条件と画素qの濃度が第n次極大領域Mn(p)の当該画素qが隣接する少なくとも一つの画素の濃度より大きくない(単調減少関係にある)という条件を満たす画素qが含まれる領域である。第(m+1)次増分領域Bm+1(p)が空集合である最小のmについて次式2が成立する。
M(p) = Mm(p) (2)
したがって、第(m+1)増分領域Bm+1(p)が最初に空集合となったときに、それまでに得られた第m次極大領域Mm(p)が極大領域M(p)となる。
以上の繰り返し処理を詳しく説明すると、極大点画素pのみからなる第0次極大領域M0(p)に対して第1次増分領域B1(p)を求める。すなわち、画素qが画素pに隣接するという条件と画素qの濃度が画素pの濃度より大きくない(単調減少関係)という条件を満たす画素qを全て含む第1次増分領域B1(p)を求める。この段階では極大点画素pから第1次増分領域B1(p)の任意の画素qに至る経路上の画素は、これら二つの画素p、qのみであり、これらの画素間では濃度が単調減少するという条件が成立している。更に、式1により、元の画素pと新たに求めた第1次増分領域B1(p)との論理和により第1次極大領域M1(p)を決定する。
その後第2次増分領域B2(p)を求める。すなわち、画素qが第1次極大領域M1(p)のいずれかの画素に隣接するという条件と、画素qの濃度が、第1次極大領域M1(p)の、画素qに隣接する少なくとも一つの画素の濃度より大きくない(単調減少関係)という条件を満たす全ての画素qの領域を第2次増分領域B2(p)として決定する。更に式1により、第1次極大領域M1(p)と新たに求めた第2次増分領域B2(p)との論理和により第2次極大領域M2(p)を決定する。この段階では極大点画素pから第2次増分領域B2(p)の任意の画素qに至る経路上の画素は、画素pと、増分第1次増分領域B1(p)内のいずれかの第1の画素と、その第1の画素に隣接する第2次増分領域B2(p)内の第2の画素とであり、画素pからこれらの第1の画素、第2の画素間で濃度が単調減少するという条件が成立している。
以下、同様に、以上の処理を繰り返すことにより、極大領域Mn(p)(n=1、2、…)を求めることができる。そして、いずれかの整数mに対して、第(m+1)次増分領域Bm+1(p)に属する画素が最初に検出できなくなると、処理を打ちきり、式2にしたがって、そのときまでに求めた第m次極大領域Mm(p)を極大領域M(p)として使用すればよいことになる。
なお、上記極大領域M(p)の大きさを、画素pを中心に含む最大占有範囲内の画素のみから検出するには、例えば、いずれかの増分領域(第(n+1)次増分領域Bn+1(p))の決定を、画素pを中心に含む上記最大占有範囲内にある全画素を順次選択して実行し、次の増分領域を決定するときにも同じ範囲内の全画素を順次選択するように、同じ範囲内の全画素を順次選択することを繰り返せばよい。このように増分領域を順次求めて極大領域M(p)を求めると、極大領域M(p)に属する任意の画素qは、画素pから画素qに至る経路として、経路上の画素の濃度が単調減少する経路が存在するという条件が満たされることになる。このことは証明することができる。このようにして単調変化画素群が検出され、その結果として極大点と単調変化画素群を含む極大領域が検出される。
こうして極大領域M(p)を求めた後、検出対象物に対して指定された、スポット画像の中央領域を表す中央最小占有範囲に関する第1の条件、検出された極値点画素の濃度と当該中央最小占有範囲内の前記複数の画素の濃度との濃度差に関する第2の条件、検出された極値点画素の濃度と、前記検出された単調変化画素群のうちの周辺部に位置する複数の画素の濃度との濃度差に関する第3の条件のいずれもが満たされるときに、検出された極値領域を検出対象物に対するスポット画像として判定することになる。
以下、本発明に係るスポット画像検出方法及びスポット画像検出プログラムの実施の形態の詳細を更に説明する。
図1に戻り、スポット画像検出プログラム40は、記憶装置20に記憶され処理装置10により実行されるが、図では分かりやすさのために、スポット画像検出プログラム40とそれを構成する複数のモジュールを処理装置10を示すブロックの内部に記載している。スポット画像検出プログラム40は、初期値設定部100と、極値点画素探索部200と、極値領域成長部300と、極値領域判定部400と、スポット画像関連データ生成部500というモジュールを含む。更に、スポット画像検出プログラム40には、極値点画素の探索成否判定ステップ250と極値領域合否判定ステップ450とが含まれている。極値点画素の探索成否判定ステップ250は極値点画素探索部200の実行後に実行され、極値点画素探索部200において極値点画素の探索が成功したか否かを判定する。極値領域合否判定ステップ450は極値領域判定部400の実行後に実行され、検出された極値領域に対する極値領域判定部400での判定結果が合格か否かを判定する。
上記複数のモジュール100、200、300、400、500はこれらの順に順次実行される。スポット画像関連データ生成部500の実行後に処理は初期値設定部100に移り、この処理以降の処理が繰り返される。ただし、極値領域成長部300は、極値点画素の探索成否判定ステップ250で極値点画素の探索が成功したと判定されたときに実行され、スポット画像関連データ生成部500は、検出された極値領域が合格であると極値領域合否判定ステップ450で判定されたときに実行される。極値領域合否判定ステップ450で検出された極値領域が不合格であると判定されたときには、処理は初期値設定部100に移動する。極値点画素の探索成否判定ステップ250で極値点画素の探索が不成功と判定されたときは、スポット画像検出プログラム40の処理は終了する。
処理装置10は、スポット画像検出プログラム40内の初期値設定部100、極値点画素探索部200、極値領域成長部300、極値領域判定部400、スポット画像関連データ生成部500が実行されたときに、それぞれ初期値を設定する機能ブロック、極値点画素を探索する機能ブロック、探索された極値点を起点にして極値領域を成長させる機能ブロック、領域成長により得られた極値領域が検出対象物のスポット画像に属する極値領域であるか否かを判定する機能ブロック、その極値領域が当該検出対象物を表すスポット画像に属すると判定されたときに、そのスポット画像に関連するスポット画像関連データを生成する機能ブロックという複数の機能ブロックとして動作する。したがって、処理装置10と、記憶装置20と、入出力装置30と、スポット画像検出プログラム40のこれらのモジュールにより、それぞれのモジュールに対応する複数の機能ブロックが実現されることになる。したがって、処理装置10と、記憶装置20と、入出力装置30と、スポット画像検出プログラム40は、本発明に係るスポット画像検出装置の一つの実施の形態を実現することになる。
スポット画像検出プログラム40は、本発明に係るスポット画像検出プログラムの一つの実施の形態を実現するものであり、図示しない記録媒体に記録されてあるいは図示しないネットワークを介して記憶装置20に記憶され、処理装置10で実行される。スポット画像検出プログラム40は、図示しない記録媒体に記録されて又は図示しないネットワークを介して販売可能である。処理装置10がスポット画像検出プログラム40を実行して撮像画像から対象物を検出する手順は本発明に係るスポット画像検出方法の一つの実施の形態を実現する。
記憶装置20には、撮像画像データ21がスポット画像検出プログラム40の実行前にあらかじめ記憶される。撮像画像データ21は、検出対象物を含む領域を撮像して得られた画像を表すデータである。領域属性データ22は、後に説明する最大占有範囲内の画素のそれぞれが撮像画像データ21中から検出された極値点画素を含む極値領域に属するか否かに関連する領域属性値を保持するデータであり、スポット画像検出プログラム40の実行開始時に初期値に設定され、スポット画像検出プログラム40に実行途中に更新される。
極値領域データ23とスポット画像マーカ付き画像データ24は、スポット画像検出プログラム40の実行の結果生成されるデータである。極値領域データ23は、スポット画像検出プログラム40で検出され、検出対象物を表すスポット画像に含まれると判定された複数の極値領域のそれぞれに関するデータを含む。スポット画像マーカ付き画像データ24は、撮像画像データ21内のそれらの検出された極値領域が含まれるスポット画像に、検出対象物のスポット画像であることを示す所定のスポット画像マーカを重畳させた画像を表すデータである。探索条件データ25は、図2(b)にその内容例を既に示したデータである。探索条件データ25は、スポット画像検出プログラム40の実行前に、検索対象物を特定するために利用者が指定するデータである。この探索条件データ25に含まれる複数のデータは、まとまって一つのデータとして記憶装置20に記憶されていてもよいが、利用者により検索前に指定されてスポット画像検出プログラム40内に組み込まれていてもよい。なお、探索条件データ25に含まれる最大占有範囲R1に関するデータ及び中央最小占有範囲R2に関するデータを利用者が指定する代わりに、それぞれのデータを決定する元となる車両占有範囲S1、屋根存在範囲S2のデータを指定し、スポット画像検出プログラム40により、最大占有範囲R1に関するデータ及び中央最小占有範囲R2に関するデータを、車両占有範囲S1、屋根存在範囲S2の値に一定比率を掛けるかそれらの値を一定比率で割るなどの方法を用いて決定するようにしてもよい。この場合も、本発明に関する限り、最大占有範囲R1及び中央最小占有範囲R2を利用者が指定したと見なす。また、以下では、画像データが生成される処理又は記憶装置20に記憶される処理に言及するときに、簡単化のために単に画像が生成される又は画像が記憶装置20に記憶されるということがある。
図3(a)は、撮像画像データ21を模式的に示す図である。撮像画像データ21は、図に示すように、この撮像画像は矩形(正方形又は長方形)であり、撮像画像の左上隅に原点Oが定められ、図の垂直下方向及び水平右方向にx軸、y軸が定められているものとする。撮像画像データ21は、白黒濃淡画像を表す画像データであると仮定する。更に撮像画像データ21は、自動車が存在する領域では濃度が高くなる(白くなる)画像を表すと仮定する。
図において、符号210は、地上の一つの道路を模式的に示す。220は、道路210上を走行している複数の自動車の一つを表すスポット画像を模式的に示す。同図(b)は、人工衛星から地上を実際に撮影して得られた実際の地理画像の例を示す。313×145画素の大きさで、濃度は0から255の値である。この種の地理画像の解像度は一般には低く、例えば50〜60cm程度であり、図に示すように、自動車は非常に小さい白い島状のスポット画像で表され、自動車の外形も鮮明ではない。自動車を表すスポット画像を構成する画素の数は、例えば3×6画素から6×20画素となる。
なお、自動車のように矩形の検出対象物に対するスポット画像の検出に本発明を適用する場合、適用前に自動車の方向を揃えておくと、都合が良い。例えば、道路の方向を図3に示したように、撮像画像の水平方向にしておくとする。このためには、撮像画像からエッジを抽出し、エッジの方向についてヒストグラムを生成し、ヒストグラムのピークから道路の方向を決め、それが水平方向になるように撮像画像を回転させる方法が有効である。この方法を実施するための具体的な処理は、例えば、以下の文献参照。T. Zhao and R. Nevatia,"Car Detection in Low Resolution Aerial Image," [online]、[平成16年9月1日検索]、インターネット<URL:http://iris.usc.edu/~taozhao/papers/ICCV01/ICCV01_ZhaoNevatia_CarDetection.pdf>参照。以下では、撮像画像は既に回転させられていて、道路の方向、したがって、自動車の方向は水平を向いているとする。
図4は、撮像画像データ21に対応する領域属性データ22を模式的に示す。本実施の形態では、領域属性データ22は、撮像画像データ21の全画素に対応して、領域属性値を保持するフィールドを有する。領域属性データ22は、撮像画像データ21の各画素に対応した当該画素の領域属性を含むので、領域属性データ22も、撮像画像データ21と同じく、領域属性の値を画像値とする画像を表す画像データであると考えることができるので、図4に示すように、領域属性データ22を矩形の領域を有する画像データであると考え、撮像画像データ21と同じく、図の左上隅に原点0が定められ、図の垂直下方向及び水平右方向にx軸、y軸が定められているものとする。後に説明するように、領域属性データ22に含まれる各画素に対する領域属性値は、当該画素が極値領域に属さないことを示す値(例えば「0」)、当該画素が極値領域に属する候補であることを示す値(例えば「0.5」)、当該画素が極値領域に属することを示す値(例えば「1)のいずれかを有する。
なお、領域属性データ22は、本実施の形態のように撮像画像データ21の全画素に対する領域属性値を保持するフィールドを有する場合でも、実際には撮像画像データ21内のいずれかの道路領域210(図3(a))に属する複数の画素のそれぞれに対する領域属性値を保持するフィールドを有すればよいが、ここでは、撮像画像データ21内のいずれの画素が道路領域に属するかは、撮像画像21が表す地域により異なるので、領域属性データ22は、撮像画像データ21の全画素のそれぞれに対応して領域属性値を保持するフィールドを有するとする。
図1に戻り、スポット画像検出プログラム40が実行されると、まず初期値設定部100が実行される。初期値設定部100は、撮像画像データ21の全画素のそれぞれに対する領域属性データ22(図4)の領域属性を初期値に設定する。ここでは、初期値は、対応する画素が極値領域に属さないことを示す値「0」である。
スポット画像検出プログラム40は、初期値設定部100の実行後に、極値点画素探索部200を実行する。図5は、極値点画素探索部200の処理の一例の概略フローチャートである。極値点画素探索部200は、撮像画像21の画素を一定の順に順次選択し、選択された画素が、濃度が極値である画素(極値点画素と呼ぶ)であるかを判定する。極値点画素は、撮像画像21内の検出対象物を表すスポット画像に属する可能性がある画素として検出される。今の仮定のように、背景より白い(濃度が大きい)自動車のスポット画像を検出するときには、極値点画素として、濃度が極大値である極大点画素が検出される。逆に、背景より黒い(濃度が小さい)自動車のスポット画像を検出する場合には、極値点画素として、濃度が極小値である極小点画素が検出される。極値点画素、例えば極大点画素は、その画素を取り囲む8近傍画素の濃度の値に比べて当該極大点画素の濃度が極大点であるということである。このため、ある画素が極値点画素か否かを判別するには、当該注目画素の濃度とその画素の8近傍画素の濃度とが比較される。
具体的には、極値点画素探索部200は、以下のようにして実行される。まず、撮像画像21からの画素の選択が終了したか否かを判定する(ステップS201)。画素の選択が終了していないときには、次に処理すべき画素を選択する(ステップS202)。スポット画像検出プログラム40は、検索対象物である自動車を表すスポット画像の検出のためには、撮像画像21の全画素を処理する必要はなく、撮像画像21中の道路が存在する道路領域に属する複数の画素のみを処理すればよい。したがって、ステップS202では、道路領域に属する複数の画素を一定の順序で順次選択すればよく、道路領域に属さない画素は選択しないようにすればよい。撮像画像21中の道路領域に属する複数の画素を選択するには、記憶装置20にあらかじめ記憶された図示しない、道路領域を示すデータに基づいて行うことができる。
より具体的には、極値点画素探索部200では、極値点画素の探索を行うために、ステップS202で選択した画素の濃度と、その画素の隣接画素の濃度とを比較して、選択画素が極値点画素であるか否かをステップS203で判断する。ここで、選択画素の隣接画素とは、選択画素を取り囲む8個の隣接画素(8近傍画素)である。したがって、選択画素が極値点画素か否かを判断するには、その画素の周囲の画素の濃度も必要であるので、極値点画素探索部200では、道路領域の周辺の1画素の幅の領域を除いた内部領域に属する画素について、極値点画素であるか否かを判定する。したがって、ステップS202では、撮像画像21内の道路領域の1画素分内側の領域の全画素を一定の順序で順次選択すればよい。選択の順序は、例えばx座標順、y座標順でよい。すなわち、同じy座標の複数の画素はx座標の昇順に選択し、異なるy座標の複数の画素はy座標の昇順に選択すればよい。
以下、ステップS202で選択された画素を画素pと呼ぶことにする。画素pの選択後に、当該選択画素pが極値点画素か否かが判断される(ステップS203)。今の例では、極値点画素とは極大点画素のことである。ここで選択画素pが濃度が極大点である極大点画素であるのは、選択画素pの濃度が、その画素を取り囲む8近傍画素の濃度の値のいずれよりも小さくないときであるとする。この定義では選択画素pの濃度がその8近傍画素の濃度のいずれかと同じ濃度を有していて、8近傍画素内の他の画素のいずれの濃度も選択画素pの濃度と同じかそれより小さければ、選択画素pの濃度は極大値であると見なす。極端には、選択画素pの濃度と8近傍画素の濃度が全て同じときでも、極大点画素を探索しているときには、選択画素pは極大点画素と見なされる。しかし、選択画素pの濃度が8近傍画素の濃度のいずれか一つより低い濃度であるときには、選択画素pの濃度は極大値ではない。なお、選択画素pの濃度と、その選択画素pの8近傍画素より遠方の画素の濃度とは比較しない。
ステップS203で選択画素pが極値点画素(極大点画素)ではないと判断された場合には、処理はステップS201に戻り、画素の選択が終了しているかが判断される。すなわち、極値点画素か否かの判断がされていない画素が道路領域の1画素分内側の領域にあるか否かが判断される。未選択の画素がまだある場合には、ステップS202でその新たな画素が選択され、その新たな選択画素pがステップS203により極値点画素であるかが判断される。このような、画素の選択の終了判断ステップS201と、画素選択ステップS202と極値点画素判別ステップS203とが極値点画素が検出されるまで繰り返される。
以上の繰り返しの結果、いずれかの選択画素pが極値点画素であると判定されたときには、当該画素pに関する、領域属性データ22内の領域属性値を、極値領域に所属することを表す属性値「1」に変更する(ステップS204)。極値点画素が選択されたときには、極値点画素探索部200は、処理を終了し、戻り値を「成功」としてスポット画像検出プログラム40のメインルーチンに戻る。
図1に戻り、スポット画像検出プログラム40では、極値点画素探索部200の実行後に、極値点画素の探索成否判定ステップ250により、極値点画素探索部200での極値点画素の探索が成功したか否かを極値点画素探索部200からの戻り値により判定する。今仮定しているように、極値点画素探索部200からの戻り値が「成功」である場合、極値領域成長部300が実行される。極値領域成長部300は、検出された極値点を出発点として、当該極値点を含む極値領域を検出する。ここで、極値領域は、当該極値点画素(今の例では極大点画素)と、その画素に対して単調変化関係にある周辺の一つ又は複数の画素からなる領域である。ここで極値点画素に対して単調変化関係にある画素とは、今仮定のように、当該極値点画素が極大点画素の場合には単調減少関係を指し、当該極値点画素が極小点画素の場合には単調増大関係を指す。
極値点画素に対して単調変化関係にある周辺の画素とは、当該極値点画素から濃度が単調変化している画素を経由して当該周辺の画素までに至る経路があるということである。極値点画素が極大点画素であるときには、その極大点画素に対して単調減少関係にある周辺の画素とは、当該極大点画素から濃度が単調減少している画素を経由して当該周辺の画素に至る経路があるということである。ここで、単調減少とは、小さくなっているか等しいことである。同様に、極値点画素が極小点画素であるときには、その極小点画素に対して単調増大関係にある周辺の画素とは、当該極小点画素から濃度が単調増大している画素を経由して当該周辺の画素までに至る経路があるということである。ここで、単調増大とは、大きくなっているか等しいことである。
ここで、極大点画素に対して上記経路があるということは、例えば、極大点画素(第1の画素)、それに隣接する第2の画素、当該第2の画素に隣接する第3の画素がある場合、第2の画素の濃度は、極大点画素の定義から当該極大点画素の濃度以下であり、第2の画素の濃度は必然的に極大点画素の濃度より単調減少の関係にある。第2の画素の濃度が、極大点画素の濃度と同じ場合でも、第2の画素の濃度は極大点画素の濃度に対して単調減少の関係にあると見なすことには変わりはない。更に、第3の画素の濃度が、上記第2の画素の濃度以下であるときには、第3の画素の濃度は、第2の画素の濃度に対して単調減少の関係にある。第3の画素の濃度が、上記第2の画素の濃度と同じであるときにも、第3の画素の濃度は、第2の画素の濃度に対して単調減少の関係にあると見なすことには変わりはない。結局、極大点画素から第2の画素を経由して第3の画素に至る経路上の画素の濃度は、極大点画素の濃度、第2の画素の濃度、第3の画素の濃度の順に変化するが、これらの3つの画素の濃度は単調減少していることになる。
あるいは第2、第3の画素の両方に隣接する第4の画素があり、当該第4の画素の濃度が第2の画素の濃度以下であり、当該第3の画素の濃度が当該第4の画素の濃度以下であれば、第3の画素の濃度は、第4の画素の濃度に対して単調減少の関係にあり、第4の画素の濃度は、第2の画素の濃度に対して単調減少の関係にある。結局、極大点画素から第2、第4の画素を経由して第3の画素に至る経路上では、画素の濃度は、極大点画素の濃度、第2の画素の濃度、第4の画素の濃度、第3の画素の濃度の順に変化し、これらの4つの画素の濃度は単調減少していることになる。
図6は、極値領域成長部300の処理の一例の概略フローチャートである。極値領域成長部300は、検出された極値点画素(今の仮定では極大点画素)に対して単調変化関係(今の例では単調減少関係)にある画素群を、探索条件データ25(図2(b))にて指定された最大占有範囲内の画素から検出する。以下に述べるように、極値領域成長部300は、検出された極値点画素に対して単調変化関係にある画素を上記最大占有範囲内で順次検出していくので、その処理を領域成長と呼び、処理部300を領域成長部と呼んでおり、上記最大占有範囲を領域成長範囲と呼ぶことがある。
本実施の形態では、図2(a)に例示したように、スポット画像の最大占有範囲R1として車輛占有範囲S1より少し大きな矩形の領域を想定している。この例では、最大占有範囲R1の中心は屋根存在範囲S2の中心と一致しているので、両者の中心の位置ずれはない。したがって、領域成長を行う最大占有範囲R1は、検出された極値点画素pをその中心に含む矩形の領域である。ここで、検出対象物の自動車に対して指定された最大占有範囲R1は、原点に中心があり、幅と高さがそれぞれ2Si+1、2Sj+1である矩形領域と仮定する。この場合、最大占有範囲R1は、検出された極値点画素pをその中心に含み、幅と高さがそれぞれ2Si+1、2Sj+1の矩形領域となる。
図7(a)は、本実施の形態で使用する上記最大占有範囲を例示する図である。符号26は、図2(a)に例示した検出された極値点画素の座標がp(x,y)であるときの最大占有範囲R1の例を示す。最大占有範囲26の頂点の画素Q、R、S、Tの座標はそれぞれ(x−Si,y−Sj)、(x+Si,y−Sj)、(x+Si,y+Sj)、(x−Si,y+Sj)であり、最大占有範囲26のサイズは、(2Si+1)×(2Sj+1)である。
図7(b)は、同図(a)内の最大占有範囲26内の画素と極値点画素p(x,y)のx座標、y座標からの座標変化量i、jとの関係を示す図である。この図においては、各四角内に示すqm(m=1から8、21から36又は41から50)は説明のために使用する画素の番号である。以下の説明では、図7(a)の代わりに図7(b)を主に使用する。図7(c)は、最大占有範囲26内の画素の濃度の例を示す図である。ここに示す濃度値は説明のための数値であって、実際の画像の濃度を表すものではない。
図6に戻り、極値領域成長部300は、まず、ステップS301で、領域成長成功フラグflagを初期値NOに設定する。この値NOは領域成長不成功を表す。つぎに極値領域用隣接画素探索部350を実行する。極値領域用隣接画素探索部350は、極値領域成長部300により起動される毎に、検出された極値点画素pに隣接する未処理の画素又は当該極値点画素pに隣接し極値領域内に存在すると判定された画素が既に検出されているときには、当該極値領域内にあると判定された当該画素に隣接し当該最大占有範囲内にある未処理の画素を検出する。
本実施の形態では、極値領域用隣接画素探索部350は、最初に起動されたときには、図7(b)の左上隅の画素q41から始めて、最大占有範囲26内の画素を左から右へ、上から下へ順次探索する。つまり、探索する画素の座標を(x+i,y+j)とすると、j=−Sjの状態で、iを−Siから+Siまで変化させ、その後jを1だけ増加し、iを同じ範囲で変化させる。以下同様にjがSjを越えるまで繰り返す。
図8は、極値領域用隣接画素探索部350の処理の一例の概略フローチャートである。具体的には、極値領域用隣接画素探索部350は、起動されると、ステップS351において、領域成長成功フラグflagの値がYESか否かを判断する。極値領域用隣接画素探索部350が極値領域成長部300により最初に起動されたときには、図6のステップS301により領域成長成功フラグflagの値がNOに設定されている。この場合には領域成長成功フラグflagの値がYESでないので、ステップS352において、探索画素を初期設定する。本実施の形態では、図7(b)に示した最大占有範囲26の左上隅の画素q41を探索画素の初期値に設定する。つぎにステップS353において、その探索画素の領域属性値を領域属性データ22から読み出し、その領域属性値が「0」であるか否かを判別する。
図9は、最大占有範囲26内の画素に対する領域属性データ22の変化例を示す図である。図では、領域属性データ22の座標として、対応する画素の座標(x,y)に代えて、図7(b)と同じく、極値点画素p(x,y)のx座標、y座標からの座標変化量(i,j)を示している。同図(a)は、初期値設定部100(図1)により撮像画像21の全ての画素に対する領域属性データ22の初期値として、極値領域非所属を示す値「0」が設定された状態を示す。同図(b)は、極値点画素探索部200により極値点画素pが検出されたときにステップS204(図5)により、当該極値点画素pに対して領域属性値として、極値領域所属を示す値「1」が設定された状態を示す図である。極値点画素pの領域が式1にいう第0次極大領域M0(p)である。
今仮定のように極値領域用隣接画素探索部350が、最初に起動され、画素q41(図7(b))が探索画素であるときには、その画素の領域属性は「0」である。図8に戻り、探索画素の領域属性が「0」であるとステップS353で判定されたときには、ステップS354において、当該探索画素に隣接する(すなわち8近傍画素のいずれかである)領域属性値「1」の画素があるか否かを判別する。今仮定のように極値領域用隣接画素探索部350が最初に起動されたときには、領域属性値が「1」の画素は、検出された極値点画素pのみである。したがって、探索画素q41は、極値点画素pに隣接する画素でないので、ステップS354では隣接する領域属性値「1」の画素はないと判定される。
この場合、ステップS355において、次の画素、すなわち右隣の画素q21を探索画素とする。その後ステップS356において、新たな探索画素q21のy座標の増加分jが限界値Sjを越えたか否かが判定されるが、越えていない場合には、ステップS353以降の処理が繰り返される。その結果、図7(b)の場合には、画素q1が探索画素になったときに、初めて画素pが隣接する領域属性値が「1」の画素となる。したがって、ステップS353、S354のいずれにおいても判定はYesとなる。その場合には、極値領域用隣接画素探索部350は、隣接画素の探索に成功し、ステップS357において、戻り値を「成功」として極値領域成長部300に戻る。
図6に戻り、極値領域成長部300では、ステップS302において、隣接画素の探索が成功したか否かが判断され、今の場合のように成功の場合、ステップS303において、探索が成功した画素に隣接する(すなわち8近傍画素であり)、領域属性値「1」の全ての画素(極値領域所属画素)rの濃度を求める。今の仮定では、画素q1が探索成功画素である場合、ステップS303で検出される隣接する極値領域所属画素は極値点画素pのみである。ステップS304において、求めた全ての極値領域所属画素rの濃度の中に、探索画素q1の濃度以上の画素が少なくとも一つあるという条件を満たすか否かを判定する。この条件が満たされる場合、探索成功画素q1は、それが隣接する極値領域所属画素に対して単調減少関係にあることになる。
上に述べたように、今の仮定では画素q1に隣接する極値領域所属画素は極値点画素pのみであり、極値点画素pの定義から見て、その濃度は、画素q1の濃度より低くない。したがって、ステップS304では画素q1は単調変化関係を満たすと判断される。探索画素が単調変化関係を満たすとき、ステップS305において、その画素の領域属性値を極値領域所属候補を表す値「0.5」に変更する。更にステップS306において、領域成長成功フラグflagをYESに設定し、処理は極値領域用隣接画素探索部350に戻る。
図8を参照すると、極値領域用隣接画素探索部350は、今の仮定の場合には、ステップS351において、領域成長成功フラグflagがYESであると判定される。この場合には、処理はステップS355に移り、直前の探索画素(今の仮定では図7(b)のq1)の次の画素q2を探索画素とする。その後ステップS356では、新たな探索画素q2のy座標と極値点画素pのy座標との差は距離の限界値Sjより大きくないと判断され、探索画素q2に関してステップS353以降の処理が実行される。探索画素q2も、極値領域非所属で、極値点画素pに隣接する画素であるので、極値領域用隣接画素探索部350は隣接画素の探索に成功して、極値領域成長部300に戻る。
極値領域成長部300(図6)は、この画素q2に対しても先に画素q1に対する処理と同じように処理S303以降の処理を実行する。この画素q2に対する隣接領域所属画素は極値点画素pのみであり、画素q2は画素pに対して単調変化関係にあることは画素q1と同じである。したがって、画素q1の場合と同じく、ステップS305において、探索された隣接画素q2の領域属性値が「0.5」に変更され、ステップS306において、それまで領域成長成功フラグflagが再度YESに設定される。なお、領域成長成功フラグflagは、仮定では既にYESになっているので、ステップS306の2回目以降の実行を省略してもよいことは言うまでもない。
極値領域成長部300は、その後再度極値領域用隣接画素探索部350を実行する。350では、図7(b)の画素q3からq8の各々を同様にして探索画素とする。極値領域成長部300は、それらの画素q3からq8の各々に対して、ステップS303以降の処理を同様に実行する。ステップS304ではこれらの画素は、画素q1について述べたのと同じ理由によりそれぞれ単調変化関係にある画素であると判断されるので、その画素の領域属性は、画素q1、q2と同じく「0.5」に変更される。図9(c)は、この段階での最大占有範囲26内の画素に対する領域属性データの例を示す。こうして、極大点画素pに隣接し単調減少関係にある画素q1からq8が検出されたことになる。これらの画素q1からq8が占める領域は、式1で説明した第1次増分領域B1(p)である。
図6に戻り、以上のようにして画素q8が処理された後は、処理は再度極値領域用隣接画素探索部350に戻る。極値領域用隣接画素探索部350では、図8において、ステップS355以降を繰り返すが、今の場合、図7(b)から分かるように、ステップS354において、検出された極値点画素pに隣接する他の画素はもはや存在しないと判断される。したがって、ステップS355で他の画素が順次探索画素として判断され、最終的に探索範囲外の画素(図7(a)の画素(x−Si,y+Sj+1))が探索画素に設定されたときに、ステップS356において探索画素のy座標の増加分jが距離の限界値Sjより大きくなったと判断されるので、隣接画素の探索が不成功となり、極値領域用隣接画素探索部350は戻り値を「不成功」として極値領域成長部300に戻る。
図8に戻り、極値領域成長部300では、ステップS302において隣接画素の探索不成功と判断したときには、ステップS307において、領域成長成功フラグflagがYESか否かを判定し、今の仮定の場合のように、そうである場合には、ステップS308において、領域属性値「0.5」の画素、今の例では画素q1からq8の全部の領域属性値を極値領域所属を表す値「1」に変更する。図9(d)は、この段階での最大占有範囲26内の画素に対する領域属性値の例を示す。こうして、この段階では、極大点画素pとそれに隣接し単調減少関係にある画素q1からq8とを含む領域が極値領域(今の例では極大領域)として検出されたことになる。これらの画素p、q1からq8が占める領域は、式1で説明した第1次極大領域M1(p)である。
図6に戻り、極値領域成長部300は、その後、処理をステップS301以降から繰り返す。すなわち、ステップS301では領域成長成功フラグflagを再度NOに変更して、極値領域用隣接画素探索部350を起動する。図9を参照するに、極値領域用隣接画素探索部350は、極値領域成長部300から呼び出されたとき、ステップS351において領域成長成功フラグflagの値がNOであると判定すると、既に説明したのと同じように、最大占有範囲26内の全画素に対して隣接画素を探索する。ただし、今の場合には、図9(d)に示すように、最大占有範囲26内の画素に対する領域属性データは、極値点画素pとそれを取り巻く8個の画素q1からq8に対して値「1」となっている。その結果、領域属性値が「1」であるこれらの8個の画素に隣接する画素について隣接画素の探索が成功する。すなわち、図7(b)の例では、画素q21からq36までの画素のそれぞれについて隣接画素の探索が成功する。
図6に戻り、極値領域成長部300は各探索画素に対してステップS303以降の処理を、画素q2からq8の各々について隣接画素の探索が成功したときと同様に実行する。ただし、図9(d)に示したように、画素q21からq36の各々が探索画素であるとき、それに隣接する画素は、極値点画素pではなく、画素q2からq8までの画素のうちの一つ又は二つ又は三つである点で、画素q2からq8の場合と異なる。したがって、ステップS303とS304による、探索画素が単調変化関係にあるか否かの判定結果は、画素q21からq36のそれぞれにより異なる。例えば、画素q21が隣接画素となった場合には、画素q1のみが、その画素に隣接し領域属性値が「1」である画素となる。図7(c)の例では、画素q1、q21の濃度はともに1であるので、画素q21は画素q1に対して単調減少関係にあることが分かり、ステップS304の判定結果はYESとなり、ステップS305において、画素q21に対する領域属性値は、極値領域所属候補を示す値「0.5」に設定される。その後、ステップS306で領域成長成功フラグflagがYESに設定され、処理は極値領域用隣接画素探索部350に戻り、極値領域用隣接画素探索部350が実行される。
図8を参照するに、極値領域用隣接画素探索部350は、領域成長成功フラグflagがYESに設定されているので、最後に処理された画素q21の後続の画素q22に対して実行される。画素q22の後続の画素も同様に処理される。ただし、極値領域用隣接画素探索部350により隣接画素として探索された画素について、極値領域成長部300中のステップS304での判定の結果、単調減少関係を満たさないと判断された場合、その画素に対応する領域属性データは何も変更されないで、処理は再度極値領域用隣接画素探索部350に移る。例えば、画素q25が極値領域用隣接画素探索部350により探索画素とされた場合、極値領域成長部300では、この画素q25に隣接する極値領域所属画素は、画素q3のみであり、図7(c)の例では、画素q25の濃度は画素q3の濃度より高いので、画素q25は単調減少関係にないと判断される。したがって、画素q25に対応する領域属性値は「0」のままである。なお、画素q25のように最大占有範囲26の境界に位置する画素については、当該画素が単調減少あるいは単調増大しているかに関して濃度を比較する他の隣接する画素には、最大占有範囲26内の画素(上の例ではq3のみ)のみが使用される。
一方、図7(c)の濃度の例では、画素q25以外の画素は全て単調減少関係にある。したがって。画素q21からq36の各々が隣接画素として探索され、当該画素に対してステップS304からS306が実行された後では、画素q21からq36に対する領域属性値は、画素q25の領域属性値以外が「0.5」に変更される。図9(e)は、この段階での領域属性データを示す。すなわち、画素q21からq24とq26からq36に対する領域属性値が「0.5」に変更されている。これらの画素が占める領域は、式1で説明した第2次増分領域B2(p)である。
極値領域成長部300では画素q36に対してステップS305、S306を実行した後は、極値領域用隣接画素探索部350が再度実行される。図8を参照するに、極値領域用隣接画素探索部350では、画素q36を処理した後では、画素q36より後方には領域属性値が「1」である画素に隣接する画素は最大占有範囲26内にはないので、ステップS356で探索画素のy座標の増加分jが距離の限界値Sjより大きいと判断されるようになり、極値領域用隣接画素探索部350は、隣接画素の探索が不成功となり、戻り値を「不成功」として極値領域成長部300に戻る。この状態では領域成長成功フラグflagはYESであるので、既に述べたようにステップS308で画素q21からq24、q26からq38に対する領域属性値「0.5」が値「1」に変更される。図9(f)は、この段階での領域属性データ22の値を示す。最大占有範囲26内では画素q25以外の画素に対して領域属性値が1となっている。これらの属性値「1」の画素が占める領域は、式1でいう第2次極大領域M2(p)の例である。
その後、極値領域成長部300では、ステップS301で領域成長成功フラグflagがNOに設定されて再度極値領域用隣接画素探索部350が実行される。画素q21に関する上記処理と同じく、画素q41、q42、q43、q44、q45、q46、q47、q48、q49、q50のそれぞれについても領域属性が「1」である隣接画素の探索が成功し、かつ、これらの画素は、その画素に隣接する画素に対して単調減少しているので、それぞれの画素に対する領域属性値は、ステップS305により「0.5」に変更され、領域成長成功フラグflagはYESとされる。図9(g)は、この段階での領域属性データ22の値を示す。これらの画素が占める領域は式1で説明した第3次増分領域B3(p)である。
以上の画素の処理の後に、再度極値領域用隣接画素探索部350が実行されるが、隣接画素の探索は不成功となり、戻り値を「不成功」として処理は極値領域成長部300に戻る。この状態では領域成長成功フラグflagはYESであるので、既に述べたようにステップS308で、画素q41からq50に対する領域属性値「0.5」が値「1」に変更される。図9(h)は、この段階での領域属性データ22の値を示す。最大占有範囲26内では画素q25以外の画素に対して領域属性値が1となっている。これらの属性値「1」の画素が占める領域は、式1でいう第3次極大領域M3(p)の例である。
その後、再度極値領域用隣接画素探索部350が実行されるが、最大占有範囲26内の全ての画素に対する処理が終了しているので、ステップS356(図8)では探索画素のy座標の増分が限界値Sjを越えたと判断し、ステップS358において、戻り値を「不成功」として極値領域成長部300に戻る。このことは、式1でいう、第4次増分領域B4(p)は空領域となったことを意味する。したがって、式2に示されたように、図9(f)で示す値「1」の画素の領域(M3(p))が、最終的な極大領域M(p)となることを意味する。極値領域成長部300では、隣接画素の探索が不成功であるとステップS302で判断され、ステップS307で領域成長成功フラグflagがYESでないと判断すると、領域成長は終了であるとして、スポット画像検出プログラム40に戻る。こうして、検出された極値点画素pに対する極値領域成長部300の処理が終了する。
図10(a)は、撮像画像データ21の他の例を模式的に示す図である。同図(b)は、その撮像画像に対する領域属性データの例を示す図である。これらの図を用いて、極値領域成長部300での領域成長処理の実行の様子を更に具体的に説明する。同図(a)では、中央にある極大値「5」の極大点画素(2重丸で数値を囲った画素)に対する最大占有範囲26内の画素を示し、同図(b)では最大占有範囲26内の画素に対する属性値を示している。
同図(a)の撮像画像において、画素値「5」の画素が複数並んでいる。以下では、画素をそれの座標(i,j)で指定することにする。極大点画素は画素(0,0)であり、極値点画素探索部200のステップS203(図5)によりこの画素が極大点画素であると判定され、その画素の領域属性値は、図9(b)と同じく、極値点画素探索部200のステップS204(図5)により値「1」に設定されているとする。この画素に対して極値領域成長部300(図6)を実行すると、最大占有範囲26内の領域属性値が「0」である画素が左上隅の画素(-2,-3)から順次選択され、領域属性値が「1」である画素(この段階では画素(0,0)のみ)に隣接し、かつ、濃度が単調減少関係にあるかが判断され、その結果、この画素(0,0)の周辺の8画素のそれぞれが、極大点画素(0,0)について単調変化関係にあると判定され、それぞれの画素の領域属性は、図9(c)と同じく、極値領域所属候補を表す領域属性値「0.5」に変更されて、その後、図9(d)と同じく領域属性値「0.5」が値「1」に変更される。この段階では画素(0,1)にある値「5」の画素に対する領域属性値も「1」となる。
その後、再度、極値領域成長部300の処理が繰り返されると、最大占有範囲26内の領域属性値が「0」である画素が左上隅の画素(-2,-3)から順次選択され、領域属性値が「1」である画素(この段階では極大点画素(0,0)とその周囲の8画素)に隣接し、かつ、単調減少関係にあるかが判断される。今の段階では、上記8画素の周りの16画素の各々について、上記判断がなされ、その結果、画素(-2,-2)から(-2,2)、(-1,-2)、(-1,2)、(0,-2)、(0,2)、(1,-2)、(1,2)、(2,-2)が極値領域所属候補と判断され、その領域属性値が「0.5」に変更される。例えば、濃度値が5である画素(0,2),(1,2)は、いずれも領域属性値が「1」である画素(0,1)に隣接し、かつ、濃度が、その画素の濃度に対して単調減少関係にあると判断される。画素(0,2),(1,2)の濃度値は画素(1,2)の濃度値「5」と同じであるからである。
一方、四角で囲まれた値5の4つの画素のうちの一番左側の画素(2,-1)は、隣接する領域属性値が「1」である画素に対して単調減少関係にないと判断される。その右側の二つの画素(2,0)、(2,1)も同様である。画素(2,2)も、単調減少関係にあるとは判断されない。この画素の濃度は、領域属性値が「1」である内側の隣接する画素のいずれ画素の濃度よりも大きいからである。注意すべきは、この画素(2,2)は、それより一つ上の画素(1,2)に隣接し、濃度はその濃度と等しいが、この時点では画素(1,2)の領域属性値は「0.5」であり、画素(2,2)と隣接していても、極値領域成長部300では、画素(2,2)との濃度を比較する対象にはされない。このように、画素(1,2)が、極値領域所属候補であり、その領域属性値が「0.5」にされていても、画素(2,2)が極値領域に属するか否かを判断するときには、その画素の濃度との単純減少関係の有無は判断されない。
このように、極値領域成長部300による極大点画素の周辺の画素が極値領域に属するか否かを判断するときには、領域属性値が「0.5」である隣接している画素との濃度の単調変化関係の有無を判断しないのは、判断しないことにより、領域属性値が「0.5」である画素に隣接しているが、極大点pからの経路として経路上の画素の濃度が単調変化関係にある経路が存在しない画素を誤って極値領域内の画素とすることを確実に防ぐことができるからである。したがって、本実施の形態では、領域属性値が「1」である画素(例えば画素(0,1))に隣接し、その画素に対して濃度が単調変化関係にある画素(例えば(1,2)が検出された場合、検出された画素(1,2)の領域属性値を一時的に「0.5」とし、領域成長成功として(ステップS306(図6))、極値領域用隣接画素探索部350の処理を繰り返し、極値領域用の隣接画素の探索が終了した時点で、領域属性値が「0.5」である画素(1,2)等の画素の領域属性値を「1」に変更して(ステップS308(図6))、その後再度極値領域成長部300の処理を繰り返すようにしている。
今の例では、この段階では、四角で囲まれた値5の4つの画素(2,-1)から(2,2)と画素(-2,-3)〜(2,-3)及び(-2,3)〜(2,3)の領域属性値が「0」であり、他の全ての画素に対する領域属性値は「1」となっている。この状態では、極値領域成長部300の処理が繰り返されると、画素(-2,-3)〜(2,-3)及び(-2,3)〜(2,3)の領域属性値が「0.5」に変更され、上記4つの画素のうち、一番右側の画素(2,2)は、それより直ぐ上の、領域属性値が「1」とされた画素(1,2)に隣接し、かつ、これらの二つの画素の濃度はともに5と等しいので、画素(2,2)の濃度は画素(1,2)の濃度に対して単調減少関係にあると判断され、極値領域用画素として検出され、画素(2,2)の領域属性値は、極値領域所属候補を示す値「0.5」にされる。他の3つの画素(2,-1)、(2,0)、(2,1)の領域属性値は「0」のままである。その後、極値領域成長部300の処理が繰り返され、領域属性値が「0.5」である(-2,-3)〜(2,-3)及び(-2,3)〜(2,3)及び画素(2,2)の領域属性値が「1」とされる。
その後極値領域成長部300の処理が繰り返され、今度は画素(2,1)が、領域属性値が「1」とされた画素(2,2)に隣接し、濃度が単調減少関係にあると判断され、画素(2,1)の領域属性値は「0.5」にされる。他の2つの画素(2,-1)、(2,0)の領域属性値は「0」のままである。その後、極値領域成長部300では領域属性値が「0.5」である画素(2,1)の領域属性値が「1」とされる。その後、極値領域成長部300の処理が繰り返され、その結果、今度は画素(2,0)が、領域属性値が「1」とされた画素(2,1)に隣接し、濃度が単調減少関係にあると判断され、画素(2,0)の領域属性値は「0.5」にされる。他の画素(2,-1)の領域属性値は「0」のままである。
その後、極値領域成長部300の処理が繰り返され、領域属性値が「0.5」である画素(2,0)の領域属性値が「1」とされ、極値領域成長部300の処理が繰り返される。その後、同様にして画素(2,-1)の領域属性値が「1」とされ、その後、極値領域成長部300の処理が終了する。この結果、図10(a)に示す撮像画像に対しては、領域属性は同図(b)に示すように、最大占有範囲26内の全ての画素に対して「1」になる。以上の処理から分かるように、極値領域成長部300の処理が繰り返される毎に、極値領域成長部300では、最大占有範囲26内の初期値画素から再度画素の探索を最大占有範囲26全体の中の領域属性値「0」の画素に対して繰り返している。このように画素の探索を最大占有範囲26全体の中の領域属性値「0」の画素に対して繰り返し実行することにより、特殊な位置にある画素の領域属性値が「1」になった後でも、その画素に隣接する領域属性値「0」の画素が探索対象とされなくなることを防止することができる。
以上のようにして、極値領域成長部300の処理が終了すると、処理は、スポット画像検出プログラム40のメインルーチンに戻る。図1を参照すると、スポット画像検出プログラム40では、極値領域判定部400が実行される。図11は、極値領域判定部400の処理の一例の概略フローチャートである。ここでは、検出された極値領域が、検出対象物である自動車を表すスポット画像に含まれる領域であるか否かが判定される。まず、
ステップS401で、指定された中央最小占有範囲R2の全ての画素が、検出された極値領域に含まれているか否かが判定される。この判定により、指定された中央最小占有範囲R2のいずれかの画素が検出された極値領域に含まれていないと判断された場合には、検出された極値領域は、検出対象物に対するスポット画像を表すものでないと判断して、ステップS407において、戻り値を「不合格」としてスポット画像検出プログラム40のメインルーチンに戻る。ステップS401での判定により、指定された中央最小占有範囲R2の全ての画素が、検出された極値領域に含まれていると判定された場合には、ステップS402において、検出された極値領域が極大領域である場合には、その極大領域内の周辺部の画素の濃度の最大値Mを求めればよい。ここで、極大領域内の周辺部の画素とは、極大領域内の画素のうち極大領域でない画素に隣接する画素である。言い換えれば、極大領域内の画素のうち最外周に位置する画素である。図7(c)の濃度分布の場合、極値領域は、図9(h)に示されるように、最大占有範囲26内の画素のうち画素(-2,2)以外の画素からなる。したがって、極大領域内の周辺部の画素のうちの濃度の最大値Mは画素(-2,-1)、(-1,1)及び(-1,2)の濃度「2」である。
ステップS403で、極値点画素pの濃度と検出された濃度最大値Mとの差の絶対値が探索条件データ25で指定された許容最小濃度差T1以上であるか否かを判定する。ステップS403での判定の結果がYESであるときには、ステップS404において、極大領域の中央最小占有範囲R2内の濃度の最小値mが検出される。つぎにステップS405において、極大点画素の濃度とこの最小値mとの差が探索条件データ25で指定された許容最大濃度差T2以下であるか否かが判定される。なお、極値領域が極小領域であるときには、極小領域の中央最小占有範囲R2内の濃度の最大値と、検出された極小点の濃度との差が許容最大濃度差T2以下であるか否かを判定すればよい。ステップS405での判定の結果がYESであるときには、検出された極値領域が、検出対象物を表すスポット画像を表す領域であると判断され、ステップS406において、極値領域判定部400は、戻り値を「合格」としてスポット画像検出プログラム40のメインルーチンに戻る。
ステップS403又はS405のいずれかの判定の結果がNOであるときには、検出された極値領域は、検出対象物を表すスポット画像を表す領域でないと判定され、ステップS407において、極値領域判定部400は、戻り値を「不合格」としてスポット画像検出プログラム40のメインルーチンに戻る。
図1に戻り、スポット画像検出プログラム40では、極値領域判定部400の実行後、そこからの戻り値に基づいて、極値領域合否判定ステップ450で、検出された極値領域が検出対象物用のスポット画像を表す極値領域として合格したか否かが判定される。合格の場合には、スポット画像関連データ生成部500が実行される。スポット画像関連データ生成部500では、合格と判断された極値領域に関して、スポット画像関連データを生成して記憶装置20に記憶する。スポット画像関連データ生成部500により生成されるスポット画像関連データは、極値領域データ23とスポット画像マーカ付き画像データ24を含む。
図12(a)は、極値領域データ23の例を示す図である。後に説明するように合格と判定された極値領域に対して、極値領域の識別情報が決定され、当該極値領域が表すスポット画像の存在領域として、検出された極値領域のうちで、領域属性データが「1」である全ての画素を囲む最小の矩形領域ABCDをスポット画像存在領域矩形として決定し、極値領域データ23には決定された極値領域識別情報231と、極値点画素pの座標(x,y)(232)と矩形ABCDの頂点A、B、C、Dの座標(x,y)(233)とが記憶される。
同図(b)は、スポット画像マーカ付き画像データ24を模式的に示す図である。図7(c)の場合に対して得られる領域属性データの例は、図9(f)に示したように図7(b)に示す画素q25以外の画素に対して値「1」を有し、画素q25に対して値「0」を有するが、スポット画像存在領域矩形ABCDは、符号242で示されるように、画素q25も含むように決定される。マーカ図形243は、合格した極値領域が検出対象物を表すスポット画像を表す領域であることを示すために、撮像画像21のコピー画像上の合格した極値領域241の外周に追加して描画される図形である。図12(b)の例では、上記極値領域241を包含する上記スポット画像存在領域矩形ABCD(242)を示す1画素幅の白い帯状の図形243が、マーカ図形として使用されている。
図12(c)は、図3(b)の撮像画像21から検出されたスポット画像に対するスポット画像マーカ付き画像データ24の例を示す。白い楕円で囲まれたスポット画像が検出されたスポット画像を示し、図では4台の大型車輌のスポット画像が検出されたことが分かる。この検出結果は、最大占有範囲R1を25×17画素、中央最小占有範囲R2を13×3画素と指定したときの検出結果である。また、許容最小濃度差T1は130であり、許容最大濃度差T2は90である。この探索では、最大占有範囲R1と中央最小占有範囲R2との間には差がかなりある。その結果、特定の車輛占有範囲と屋根占有範囲を有する自動車を検出するというよりも、最大占有範囲が25×17画素より小さく、屋根の中央最小占有範囲が13×3画素より大きいという条件を満たす複数種類の自動車が検出対象物として検出されている。
図13は、スポット画像関連データ生成部500の処理の一例の概略フローチャートである。まず、既に説明したように、合格した極値領域を包含するスポット画像存在領域矩形ABCDが、ステップS501で決定される。本実施の形態では、同じ車輌に対して異なる位置に極大領域が検出される場合が起こり得る。そのような重複した極値領域が検出された場合には本実施の形態ではその一方を無効にするようになっている。このため、ステップS502で、新たに決定された矩形と、既に検出された他の極値領域のデータが極値領域データ23に記憶されているときには、当該他の極値領域に対して既に決定された矩形とが重複するか否かが判定される。なお、本実施の形態では、合格と判断された極値領域の重複を判定するに当たり、合格と判断された極値領域を包含する最小の矩形が重複するか否かを判断するので、極値領域の重複を正確に判断するより簡単である。もちろん、このよいうに極値領域包含矩形の重複を判断しないで、極値領域の重複を直接判断するようにしてもよいことはいうまでもない。以下では、極値領域包含矩形が重複する場合も、単に極値領域の重複と呼ぶことがある。
矩形の重複が検出されなかった場合、ステップS503で、合格と判定された極値領域に対して識別情報が決定され、図12(a)に示した極値領域データ23のフィールド231に記憶され、ステップS504で、検出された極値点画素pのx、y座標がその極値領域データ23のフィールド232に記憶される。ステップS505では、新規に決定された矩形の頂点A、B、C、Dのx、y座標をその極値領域データ23のフィールド233に記憶される。ステップS506で、検出された極値領域用のマーカ図形の位置と大きさを決定し、スポット画像マーカ付き画像データ24上に重畳して描画する。このようにスポット画像関連データ生成部500を、検出され合格と判定された複数の極値領域のそれぞれに対して実行することにより、図12(c)に例示したようなスポット画像マーカ付き画像データ24が生成される。
しかし、ステップS502での判定の結果、新たに検出された合格した極値領域が既に登録された他の極値領域に重畳すると判定された場合は、ステップS507で、重複する二つの矩形のうち、スポット画像を表す領域としてより望ましいほうの矩形をあらかじめ定めた基準で選択する。例えば、二つの重複する極値領域のうちの極大点の濃度が異なるときには、濃度の高い方を含む矩形を選ぶことができる。あるいは、二つの極値領域のうちそれぞれに含まれる画素数が多い方を含む矩形を選ぶことができる。あるいは、極大点画素の濃度と極値領域内の周辺部の画素の濃度の最大値との差が大きい方を選ぶこともできる。更には、以上にいくつかの選択基準を組み合わせて、極値領域包含矩形が重複する二つの極値領域を選択する基準を決めてもよい。例えば、二つの極値領域の極大点の濃度が異なるときには、濃度の高い方の極値領域を含む矩形を選び、極大点の濃度が同じときには、内部に含まれる画素数が多い極値領域を含む矩形を選んでもよい。
先に生成された他の矩形が選択されたか否かがステップS508で判定され、判定結果がNoであるときには、ステップS509で、スポット画像マーカ付き画像24から、当該他の極値領域に付されたマーカ図形を構成する画素の値を元の撮像画像21内の対応する画素の値に書き戻す。こうして、他の極値領域に付されたマーカ図形が削除される。ステップS510で、極値領域データ23から当該他の極値領域に関連するデータを削除する。
これらの処理により、先に検出された当該他の極値領域は、無効にされ、検出されなかったものと見なされることになる。その後、処理はステップS503に移り、既に説明したように、新規に決定された矩形に関連する極値領域に関してステップS503からS506を実行して、スポット画像検出プログラム40のメインルーチンに戻る。
ステップS507で他の極値領域が選択され、その結果、ステップS508での判定結果がYesとなったときには、処理はスポット画像検出プログラム40のメインルーチンに戻る。これにより、今回検出された合格した極値領域は検出されなかったものと見なされることになる。こうして、スポット画像関連データ生成部500の処理が終了する。図1に戻るに、スポット画像検出プログラム40では、処理は初期値設定部100に移る。初期値設定部100は、2度目以降に繰り返されるときには、最初に実行されたときと異なり、撮像画像データ21内の極値領域成長部300により処理された、極値点画素を中心とする最大占有範囲内の全画素に対する、領域属性データ22内の領域属性値のみを初期値0にする。既に説明したように、極値領域成長部300が先に実行されたときに、最大占有範囲内の全画素に対する領域属性値が変更されている可能性があるからである。その後、極値点画素探索部200により新たな極値画素の探索を続ける。新たな極値画素が見つかると、既に説明したように、極値領域判定部400以降の処理が実行される。以上のような処理を繰り返した結果、探索成否判定ステップ250で、新たな極値画素が検出されなかったと判定されたときには、スポット画像検出プログラム40は処理を終える。以上のようにして、図12(c)に例示したように、検出対象物を表す複数のスポット画像にマーカ図形が付加されたスポット画像マーカ付き画像データ24が生成される。
以上から明らかなように、本実施の形態では、自動車のような検出対象物のスポット画像に含まれると考えられる、極大点画素を含む極値領域を簡単に検出することができ、しかも、検出対象物として検出したい自動車の車輛占有面積を反映したスポット画像の最大占有範囲と、当該自動車の屋根存在範囲を反映した、スポット像の中央最小占有範囲とを指定して、当該検出対象物に相当する自動車を検出することが可能になる。
なお、本発明は以降の実施の形態に限定されるものではないことは言うまでもない。例えば、以上の実施の形態では、領域属性データ22として、撮像画像データの全画素に対応して領域属性値を保持するフィールドを有する例を示したが、最大占有範囲に属する複数の画素のそれぞれに対して領域属性値を保持するフィールドを有するものでもよい。この場合、領域属性データ22は、全ての極値点画素の最大占有範囲に対して共通に使用される。したがって、そのような態様の領域属性データをのほうがデータ量が少なくて済む。なお、背景より黒い濃度の自動車も検出するためには、以上で説明した極大領域を検出するのと同様に、極小領域を検出すればよい。また、撮像画像がカラー画像の場合には、カラー画像から生成される明度データを濃度データとして使用すればよい。
P…極大領域、p…極大点、f(p) …濃度分布、R1…スポット画像の最大占有範囲、R2…スポット画像の中央最小占有範囲、S1…自動車の車両占有範囲、S2…自動車の屋根存在範囲、C1…自動車の車両占有範囲の中心、C2…自動車の屋根存在範囲の中心、T1…許容最小濃度差、T2…許容最大濃度差、241…極値領域、242…スポット画像存在領域矩形、243…スポット画像マーカ図形。