(57)【特許請求の範囲】
【請求項１】
撮像手段によって撮影された画像を記憶する記憶手段と、
前記記憶手段によって記憶された画像に所定の画像処理領域を定め、その画像処理領域において、各画素位置ごとに、その画素位置までの各画素の画素データを積算したインテグラルイメージデータを作成し、前記記憶手段とは異なるインテグラルイメージデータ保存手段に保存するインテグラルイメージデータ作成手段と、
前記インテグラルイメージデータ保存手段に保存された前記画像処理領域のインテグラルイメージデータを用いて、前記画像処理領域において、任意の領域の画素データの積算値を算出して画像識別処理を実行する画像識別処理手段と、を備えた画像処理装置において、
前記インテグラルイメージデータ作成手段は、前記画像処理領域を所定画素単位で走査方向に移動させつつ、繰り返しインテグラルイメージデータを作成することにより、前記画像処理領域を前記画像上において走査させるものであり、
前記画像処理領域を所定画素移動させるときに、少なくとも画像処理領域に含まれることになる前記画像の画素列について、各画素列ごとに、画素位置に応じた画素データの和を算出して、保存しておくバッファ手段を備え、
前記インテグラルイメージデータ作成手段は、前記画像処理領域を前記走査方向に所定画素移動させる際、前記インテグラルイメージデータ保存手段に保存されている各画素位置のインテグラルイメージデータを、所定画素分の移動に対応する値に更新して前記インテグラルイメージデータ保存手段に保存するとともに、少なくとも前記バッファ手段に保存された画素データの和を用いて、新たに前記画像処理領域に含まれることになる画素列の各画素位置におけるインテグラルイメージデータを算出して、前記インテグラルイメージデータ保存手段に保存することを特徴とする画像処理装置。
【請求項２】
前記バッファ手段は、前記画像の一端側から前記画像処理領域の走査を開始する際、その走査方向における前記画像の終端までの画素列について、算出した画素データの和を保存可能な保存領域を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記インテグラルイメージデータ作成手段は、前記画像処理領域が前記走査方向における前記画像の終端まで達すると、前記走査方向と直交する方向に所定画素数だけ前記画像処理領域をずらして、前記画像の一端側からの前記画像処理領域の走査を繰り返すものであり、
前記バッファ手段は、前記インテグラルイメージデータの作成に用いられた画素列の画素データの和を、前記走査方向と直交する方向に所定画素分だけずらすことに応じた値に更新して前記バッファ手段に保存するとともに、新たに前記画素列に含まれることになる画素の画素データを前記記憶手段から読み出して、画素データの和を算出し、前記バッファ手段に保存することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記インテグラルイメージ作成手段は、前記画像処理領域を前記走査方向に所定画素移動させるとき、前記画像処理領域から外れる画素列における対応する画素位置のインテグラルイメージデータ分だけを減じつつ、前記インテグラルイメージデータ保存手段に保存されている各画素位置のインテグラルイメージデータを、当該インテグラルイメージデータ保存手段において所定画素だけ移動させるとともに、前記画像処理領域に含まれることになる画素位置のインテグラルイメージデータを、前記インテグラルイメージデータ保存手段に既に保存されている、走査方向に隣接する画素位置のインテグラルイメージデータと、前記バッファ手段に保存された画素データの和とに基づいて算出し、前記インテグラルイメージデータ保存手段に保存することを特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
前記バッファ手段に画素データの和が保存される各画素列に含まれる画素数は、前記画像処理領域の画素列に含まれる画素数よりも１つだけ少なくなっており、
前記インテグラルイメージ作成手段は、対応する画素データの和が前記バッファに保存されていない、前記画像処理領域の端部画素位置のインテグラルイメージデータを、前記画像処理領域内で前記走査方向に隣接する画素位置のインテグラルイメージデータ、画素列方向に隣接する画素位置の画素データの和、及び前記記憶手段から読み出した前記端部画素位置の画素データに基づいて作成することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記インテグラルイメージデータ作成手段は、前記画像処理領域として、矩形状の画像処理領域を前記画像において定めるものであり、その矩形状の画像処理領域の縦横を座標軸として、その座標軸に沿って画素データを積算する第１のインテグラルイメージデータを作成して第１のインテグラルイメージデータ保存手段に保存するとともに、前記矩形状の画像処理領域の縦横に対してそれぞれ所定角度傾いた２本の傾斜線を座標軸として、その軸に沿って画素データを積算する第２のインテグラルイメージデータを作成して第２のインテグラルイメージデータ保存手段に保存するものであり、
前記インテグラルイメージデータ作成手段は、前記第１及び第２のインテグラルイメージデータを作成する際に、前記バッファ手段に保存された、各画素列ごとの、画素位置に応じた画素データの和を共通して用いることを特徴とする請求項１乃至５のいずれかに記載の画像処理装置。
【請求項７】
前記画像処理領域の各画素列の終端側の画素位置ごとに、その画素位置までの画素データの二乗値の総和を算出し、二乗和データ保存手段に保存する二乗和データ作成手段と、
前記画像処理領域を所定画素移動させるときに、少なくとも画像処理領域に含まれることになる前記画像の画素列について、画素列の終端側の画素位置における、対応する画素列に含まれる各画素データの二乗値の和を算出して、保存しておく二乗和バッファ手段と、を備え、
前記二乗和データ作成手段は、前記画像処理領域を前記走査方向に所定画素移動させる際、前記二乗和データ保存手段に保存されている各画素列の終端側の各画素位置での二乗値の総和を、所定画素分の移動に対応する値に更新して前記二乗和データ保存手段に保存するとともに、二乗和バッファ手段に保存された二乗値の和を用いて、新たに前記画像処理領域に含まれることになる画素列の終端側の画素位置における二乗値の総和を算出して、前記二乗和データ保存手段に保存することを特徴とする請求項１乃至請求項６のいずれかに記載の画像処理装置。
【請求項８】
前記二乗和バッファ手段は、前記画像の一端側から前記画像処理領域の走査を開始する際、その走査方向における前記画像の終端までの画素列について、算出した画素データの二乗値の和を保存可能な保存領域を有することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記インテグラルイメージデータ作成手段は、前記画像処理領域が前記走査方向における前記画像の終端まで達すると、前記走査方向と直交する方向に所定画素数だけ前記画像処理領域をずらして、前記画像の一端側からの前記画像処理領域の走査を繰り返すものであり、
前記二乗和バッファ手段は、前記二乗値の総和の算出に用いられた、画素列の終端側の画素位置における各画素データの二乗値の和を、前記走査方向と直交する方向に所定画素分だけずらした後の値に更新して保存することを特徴とする請求項８に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インテグラルイメージデータを用いて、画像の識別を行う画像処理装置に関するものである。
【背景技術】
【０００２】
インテグラルイメージデータを用いた従来の画像処理装置においては、予め画像全体を対象として、画像を構成する個々の画素の画素データを積算することによりインテグラルイメージデータを生成し、記憶媒体に保存しておく。そして、画像の所定の読み出し領域に対応するインテグラルイメージデータを記憶媒体から読み出して、インテグラルイメージデータを用いて読み出し領域の画素データの総和を算出する。この算出結果を、参照データと比較することにより、画像の識別を行う。
【０００３】
このような従来の画像処理装置では、画像全体を対象としてインテグラルイメージデータを生成しているので、インテグラルイメージデータのサイズ（ビット数）が大きくなってしまう。その結果、インテグラルイメージデータを保存する記憶媒体も大容量のものが必要になったり、インテグラルイメージデータの読み出しに時間がかかったりするという問題があった。
【０００４】
そこで、特許文献１では、このような問題を解決できる画像識別装置が提案されている。この特許文献１の画像識別装置では、それぞれ画素データを有する複数の画素からなる画像を複数の積算領域に分割し、当該複数の積算領域毎にいずれかの角に位置する画素を起点とするインテグラルイメージデータを生成して、メモリに記憶しておく。そして、画像の一部又は全部が読み出し領域として指定されたとき、インテグラルイメージデータのうち、読み出し領域の総和の算出に用いられるものをメモリから読み出し、読み出されたインテグラルイメージデータに基づき、読み出し領域の画素データの総和を算出する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１０２７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１の装置では、複数の積算領域に分割してはいるが、画像全体を対象として予めインテグラルイメージデータを生成しているので、インテグラルイメージデータのサイズの低減には限界がある。さらに、インテグラルイメージデータは予め生成され、メモリに記憶されるので、インテグラルイメージデータを保存するメモリ容量の削減や、読み出し時間の低減も十分なものとはいえない。
【０００７】
ここで、インテグラルイメージデータのサイズを大幅に削減するには、１枚の画像において、その画像の大きさよりも小さい、画像の識別処理を行う画像処理領域を定め、その画像処理領域だけを対象としてインテグラルイメージデータを生成することが考えられる。この場合、画像処理領域を、画像において少しずつ移動させることにより、画像処理領域が画像全体をカバーすることができるようになる。
【０００８】
しかしながら、画像処理領域を移動させるごとに、各画像処理領域に含まれる画素の画素データを一から積算してインテグラルイメージデータを生成しようとすると、その生成のための計算に時間がかかるという問題が生じる。
【０００９】
本発明は、上述した点に鑑みてなされたものであり、画像処理領域だけを対象としてインテグラルイメージデータを生成しつつ、その画像処理領域の移動時におけるインテグラルイメージデータの生成時間を短縮することが可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために請求項１に係る発明は、
撮像手段によって撮影された画像を記憶する記憶手段と、
記憶手段によって記憶された画像に所定の画像処理領域を定め、その画像処理領域において、各画素位置ごとに、その画素位置までの各画素の画素データを積算したインテグラルイメージデータを作成し、記憶手段とは異なるインテグラルイメージデータ保存手段に保存するインテグラルイメージデータ作成手段と、
インテグラルイメージデータ保存手段に保存された画像処理領域のインテグラルイメージデータを用いて、画像処理領域において、任意の領域の画素データの積算値を算出して画像識別処理を実行する画像識別処理手段と、を備えた画像処理装置において、
インテグラルイメージデータ作成手段は、画像処理領域を所定画素単位で走査方向に移動させつつ、繰り返しインテグラルイメージデータを作成することにより、画像処理領域を画像上において走査させるものであり、
画像処理領域を所定画素移動させるときに、少なくとも画像処理領域に含まれることになる画像の画素列について、各画素列ごとに、画素位置に応じた画素データの和を算出して、保存しておくバッファ手段を備え、
インテグラルイメージデータ作成手段は、画像処理領域を走査方向に所定画素移動させる際、インテグラルイメージデータ保存手段に保存されている各画素位置のインテグラルイメージデータを、所定画素分の移動に対応する値に更新してインテグラルイメージデータ保存手段に保存するとともに、少なくともバッファ手段に保存された画素データの和を用いて、新たに画像処理領域に含まれることになる画素列の各画素位置におけるインテグラルイメージデータを算出して、インテグラルイメージデータ保存手段に保存することを特徴とする。
【００１１】
このように請求項１に係る画像処理装置では、画像処理領域を走査方向に所定画素移動させる際に、新たな画像処理領域におけるインテグラルイメージデータを、個々の画素の画素データを用いて一から作成するのではなく、既に作成済みのインテグラルイメージデータ、及びバッファ手段に保存された、各画素列ごとの画素位置に応じた画素データの和を利用する。具体的には、画像処理領域を走査方向に所定画素移動させる際、インテグラルイメージデータ保存手段に保存されている各画素位置のインテグラルイメージデータを、所定画素分の移動に対応する値に更新して、その更新後のインテグラルイメージデータを保存するとともに、バッファ手段に保存されている画素データの和を用いて、新たに画像処理領域に含まれることになる画素列の各画素位置におけるインテグラルイメージデータを算出して、インテグラルイメージデータ保存手段に保存する。従って、画像処理領域をインテグラルイメージデータの算出対象とし、その画像処理領域を移動させる際にも、短時間で、移動後の画像処理領域についてのインテグラルイメージデータを作成することができる。
【００１２】
請求項２に記載したように、バッファ手段は、画像の一端側から画像処理領域の走査を開始する際、その走査方向における画像の終端までの画素列について、算出した画素データの和を保存可能な保存領域を有するものであることが好ましい。このように、バッファ手段が、予め走査方向における画像の終端までの画素列について、算出した画素データの和を保存できていれば、インテグラルイメージデータを算出しながら、画像処理領域の画像終端までの移動を円滑に行うことができる。
【００１３】
請求項３に記載したように、インテグラルイメージデータ作成手段は、画像処理領域が走査方向における画像の終端まで達すると、走査方向と直交する方向に所定画素数だけ画像処理領域をずらして、画像の一端側からの画像処理領域の走査を繰り返すものであり、
バッファ手段は、インテグラルイメージデータの作成に用いられた画素列の画素データの和を、走査方向と直交する方向に所定画素分だけずらすことに応じた値に更新して前記バッファ手段に保存するとともに、新たに前記画素列に含まれることになる画素の画素データを前記記憶手段から読み出して、画素データの和を算出し、前記バッファ手段に保存することが好ましい。
【００１４】
このようにすれば、画像処理領域を走査方向と直交する方向にずらして、改めて画像処理領域の走査を開始する場合に備えた画素データの和を、簡単な演算処理にて算出して、バッファ手段に保存しておくことができる。
【００１５】
請求項４に記載したように、インテグラルイメージ作成手段は、画像処理領域を走査方向に所定画素移動させるとき、画像処理領域から外れる画素列における対応する画素位置のインテグラルイメージデータ分だけを減じつつ、インテグラルイメージデータ保存手段に保存されている各画素位置のインテグラルイメージデータを、当該インテグラルイメージデータ保存手段において所定画素だけ移動させるとともに、画像処理領域に含まれることになる画素位置のインテグラルイメージデータを、インテグラルイメージデータ保存手段に既に保存されている、走査方向に隣接する画素位置のインテグラルイメージデータと、バッファ手段に保存された画素データの和とに基づいて算出し、インテグラルイメージデータ保存手段に保存するようにしても良い。
【００１６】
すなわち、画像処理領域を走査方向に所定画素移動させると、走査方向の進行側とは逆側の所定画素分の領域が、画像処理領域から外れ、走査方向の進行側において、所定画素分の領域が新たに画像処理領域に含まれることになる。この際、画像処理領域の走査方向の進行側とは逆側の角部を起点とする座標系を定めてインテグラルイメージデータを生成した場合、画像処理領域から外れる領域のインテグラルイメージデータ分だけ減じることにより、画像処理領域に残る各画素位置のインテグラルイメージデータを更新することができる。さらに、新たに画像処理領域に含まれる領域のインテグラルイメージデータは、バッファ手段に保存されている画素データの和と、画像処理領域に残る画素の中で、最も走査方向の進行側寄りの画素の位置に応じたインテグラルイメージデータとを加算することにより、生成することができる。
【００１７】
請求項５に記載したように、バッファ手段に画素データの和が保存される各画素列に含まれる画素数は、画像処理領域の画素列に含まれる画素数よりも１つだけ少なくなっており、
インテグラルイメージ作成手段は、対応する画素データの和がバッファに保存されていない、画像処理領域の端部画素位置のインテグラルイメージデータを、画像処理領域内で走査方向に隣接する画素位置のインテグラルイメージデータ、画素列方向で隣接する画素位置の画素データの和、及び記憶手段から読み出した端部画素位置の画素データに基づいて作成しても良い。
【００１８】
このようにすると、バッファ手段において保存する画素データの和の数を少なくすることができるので、バッファ手段の容量を減少させることができる。なお、端部画素位置に関して、画像処理領域の移動ごとにインテグラルイメージデータを算出しても、その算出のための演算負荷や時間は極僅かなものにすぎない。
【００１９】
請求項６に記載したように、インテグラルイメージデータ作成手段は、画像処理領域として、矩形状の画像処理領域を画像において定めるものであり、その矩形状の画像処理領域の縦横を座標軸として、その座標軸に沿って画素データを積算する第１のインテグラルイメージデータを作成して第１のインテグラルイメージデータ保存手段に保存するとともに、矩形状の画像処理領域の縦横に対してそれぞれ所定角度傾いた２本の傾斜線を座標軸として、その軸に沿って画素データを積算する第２のインテグラルイメージデータを作成して第２のインテグラルイメージデータ保存手段に保存するものであり、
インテグラルイメージデータ作成手段は、第１及び第２のインテグラルイメージデータを作成する際に、バッファ手段に保存された、各画素列ごとの、画素位置に応じた画素データの和を共通して用いることが好ましい。
【００２０】
インテグラルイメージデータを用いて画像の識別を行う場合、例えば、画像処理領域において、水平方向及び垂直方向に沿った矩形状の読み取り領域を定めつつ、さらに、水平方向及び垂直方向に対して４５度傾いた矩形状の読み取り領域を定め、それぞれの読み取り領域の画素データの総和から、画像の識別を行うことがある。上述したように、インテグラルイメージデータ作成手段が、第１及び第２のインテグラルイメージデータを作成して、第１及び第２のインテグラルイメージデータ保存手段に保存することにより、傾斜角度の異なる読み取り領域の画素データの総和を簡単に求めることができるようになる。そして、第１及び第２のインテグラルイメージデータを作成する際に、バッファ手段に保存された画素データの和を共通して用いることにより、バッファ手段を個別に設けなくても済むので、構成を簡素化することができる。
【００２１】
請求項７に記載したように、画像処理領域の各画素列の終端側の画素位置ごとに、その画素位置までの画素データの二乗値の総和を算出し、二乗和データ保存手段に保存する二乗和データ作成手段と、
画像処理領域を所定画素移動させるときに、少なくとも画像処理領域に含まれることになる画像の画素列について、画素列の終端側の画素位置における、対応する画素列に含まれる各画素データの二乗値の和を算出して、保存しておく二乗和バッファ手段と、を備え、
二乗和データ作成手段は、画像処理領域を走査方向に所定画素移動させる際、二乗和データ保存手段に保存されている各画素列の終端側の各画素位置での二乗値の総和を、所定画素分の移動に対応する値に更新して二乗和データ保存手段に保存するとともに、バッファ手段に保存された二乗値の和を用いて、新たに画像処理領域に含まれることになる画素列の終端側の画素位置における二乗値の総和を算出して、二乗和データ保存手段に保存することが好ましい。
【００２２】
このようにすれば、画像処理領域を所定画素移動させるとき、画像処理領域に含まれる各画素の画素データの二乗値の総和も、二乗値バッファ手段に保存された二乗値の和を用いて簡単に算出することができるようになる。なお、この画素データの二乗値の総和は、画像処理領域に含まれる各画素データの分布を正規化するために利用される。
【００２３】
請求項８に記載したように、二乗和バッファ手段は、画像の一端側から画像処理領域の走査を開始する際、その走査方向における画像の終端までの画素列について、算出した画素データの二乗値の和を保存可能な保存領域を有することが好ましい。このように、二乗値バッファ手段が、予め走査方向における画像の終端までの画素列について、画素データの二乗値の和を保存できていれば、二乗和データを算出しながら、画像処理領域の画像終端までの移動を円滑に行うことができる。
【００２４】
請求項９に記載したように、インテグラルイメージデータ作成手段は、画像処理領域が走査方向における画像の終端まで達すると、走査方向と直交する方向に所定画素数だけ画像処理領域をずらして、画像の一端側からの画像処理領域の走査を繰り返すものであり、
二乗和バッファ手段は、二乗値の総和の算出に用いられた、画素列の終端側の画素位置における各画素データの二乗値の和を、走査方向と直交する方向に所定画素分だけずらした後の値に更新して保存しておくことが好ましい。
【００２５】
このようにすれば、画像処理領域を走査方向と直交する方向にずらして、改めて画像処理領域の走査を開始する場合に備えた画素データの二乗値の和を、簡単な演算処理にて算出して、二乗和バッファ手段に保存しておくことができる。
【図面の簡単な説明】
【００２６】
【図１】実施形態における画像処理装置の全体構成を示す構成図である。
【図２】画像処理領域について説明するための説明図である。
【図３】画像処理領域の移動時に、第１のバッファ３０１を用いて、第１のインテグラルイメージデータを作成する方法を説明するための説明図である。
【図４】画像処理領域の移動時に、第２のインテグラルイメージデータを作成する方法を説明するための第１の説明図である。
【図５】画像処理領域の移動時に、第２のインテグラルイメージデータを作成する方法を説明するための第２の説明図である。
【図６】画像処理領域の移動時に、第２のインテグラルイメージデータを作成する方法を説明するための第３の説明図である。
【図７】画像処理領域の移動時に、第２のインテグラルイメージデータを作成する方法を説明するための第４の説明図である。
【図８】画像処理領域の移動時に、第２のバッファ５０１を用いて、第３のインテグラルイメージデータを作成する方法を説明するための説明図である。
【図９】（ａ）〜（ｎ）は、画像処理領域において、画素データの積算値を算出するべき領域として定められる、各種の読み出し領域を例示した図である。
【図１０】インテグラルイメージデータＩ１〜Ｉ４を用いて、読み出し領域Ｊの画素データの総和Ｉｊを求める方法を説明するための説明図である。
【図１１】識別器１１０の内部構成を示す構成図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態による画像処理装置について、図面を参照しつつ説明する。図１は、本実施形態における画像処理装置の全体構成を示す構成図である。なお、本実施形態による画像処理装置は、例えば車両に搭載され、周囲の車両や歩行者などを識別するために使用することができるものである。ただし、本画像処理装置の用途は、車載用に限られず、その他の画像認識にも広く適用可能である。
【００２８】
図１において、撮像部１０１は、主に車両前方を撮像するＣＣＤカメラからなる。このＣＣＤカメラ１０１は、車両のフロントガラスの内側やドアミラー近傍に設置される。ＣＣＤカメラ１０１によって撮影された画像は、画像処理ＥＣＵ１００に入力される。
【００２９】
画像処理ＥＣＵ１００は、ＣＣＤカメラ１０１によって撮影された画像を処理し、その画像に、車両や歩行者などを示す特徴的なパターンが含まれているか否かにより、車両や歩行者などを識別するものである。
【００３０】
画像処理ＥＣＵ１００は、画像入力部１０２を介して、ＣＣＤカメラ１０１による撮影画像の画像データを取り込む。取り込まれた画像データは、メモリコントローラ１０６を介して、外部記憶媒体１０７に格納される。
【００３１】
外部記憶媒体１０７に格納された画像データは、前処理部１０８によって呼び出され、当該前処理部１０８において、識別のために必要な前処理（フィルタリング処理、スケーリング処理など）が施された後、再度、外部記憶媒体１０７に格納される。
【００３２】
ここで、本実施形態の説明において、画像及び画像データは実質的に同じ意味で用いられており、格子状に配列された複数の画素の画素データの集合を指している。また、画素データとは、画像がモノクロの場合には輝度に応じた画素値に相当し、画像がカラーの場合には、ＲＧＢのそれぞれについての色素値に相当する。さらに、本実施形態では、ＣＣＤカメラ１０１によって撮影される画像は、画素の配列により、全体として格子状の形状を有する。
【００３３】
ＣＰＵ１０４は、上述した各構成要素による動作を制御するものである。また、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１０５は、外部記憶媒体１０７に格納された画像データの読み出し等において、ＣＰＵ１０４を介することなく、メモリコントローラ１０６へ指示を与える。これにより、画像データの読み出し等における、ＣＰＵ１０４の負荷を低減することができる。
【００３４】
前処理部１０８によって前処理された画像データは、ＤＭＡＣ１０５の指示により外部記憶媒体１０７から読み出され、画像の識別のために、インテグラルイメージデータ生成部１０９に与えられる。このとき、インテグラルイメージデータ生成部１０９には、画像全体の画像データが一度に与えられるのではなく、その画像全体の大きさよりも小さい、予め定められた領域（画像処理領域）の画像データと、その画像処理領域が、画像上において走査される走査方向における画像２０１の他端（終端）までの画像データとが与えられる。
【００３５】
図２に画像処理領域２０２の一例を示す。画像処理領域２０２は、図２に示すように、画像２０１の全体の大きさよりも小さい矩形状の領域として設定される。さらに、この画像処理領域２０２は、図２に示すように、画像２０１の一端（始端）側から他端（終端）側へと向かって、画像２０１上を走査するように移動される。画像処理領域２０２が画像の終端まで達すると、走査方向と直交する方向に所定画素数だけ画像処理領域２０２をずらして、画像２０１の一端側から、再び画像処理領域２０２の走査が繰り返される。
【００３６】
インテグラルイメージデータ生成部１０９は、与えられた画像処理領域２０２の画像データ、すなわち、画像処理領域２０２に含まれる全画素の画素データに基づいて、３種類のインテグラルイメージデータを生成して、それぞれメモリに記憶する。
【００３７】
このように、本実施形態においては、インテグラルイメージデータ生成部１０９が、１枚の画像２０１全体のインテグラルイメージデータを作成するのではなく、１枚の画像２０１の大きさよりも小さい画像処理領域２０２に含まれる画素の画素データを対象としてインテグラルイメージデータを作成する。従って、インテグラルイメージデータのサイズを大幅に削減することが可能となり、インテグラルイメージデータを記憶するメモリの容量も削減することが可能になる。さらに、生成したインテグラルイメージデータを外部記憶媒体１０７に記憶させておく必要が無いので、外部記憶媒体１０７との通信が不要となり、内部バス１０３等における通信を圧迫することも防ぐことができる。
【００３８】
以下に、インテグラルイメージデータ生成部１０９が生成する３種類のインテグラルイメージデータについて説明する。
【００３９】
まず、第１のインテグラルイメージデータとして、インテグラルイメージデータ生成部１０９は、画像処理領域２０２の縦軸及び横軸を座標軸として、その座標軸に沿って画素データを積算したインテグラルイメージデータを作成する。この第１のインテグラルイメージデータは、第１のメモリにより、該当する画素位置に対応させて記憶される。なお、当然のことながら、インテグラルイメージデータ生成部１０９は、第１のインテグラルイメージデータを作成するための第１演算器を備えている。
【００４０】
図３は、インテグラルイメージデータ生成部１０９の第１のメモリ３００を概念的に示すものである。図３に示す例では、画像処理領域２０２の横軸がｘ軸、縦軸がｙ軸となっており、画像処理領域２０２の走査方向の進行側とは逆側の上側角部を起点とするｘｙ座標系においてインテグラルイメージデータが生成され、第１のメモリ３００に記憶されている。例えば、図３において、Ｉ（ｘ、ｙ）は、０〜ｘ座標及び０〜ｙ座標の範囲に含まれる全画素の画素データを積算したインテグラルイメージデータである。
【００４１】
また、インテグラルイメージデータ生成部１０９は、第２のインテグラルイメージデータとして、画像処理領域２０２の縦軸及び横軸に対してそれぞれ所定角度傾いた２本の傾斜軸を設定し、この２本の傾斜軸を座標軸として、その座標軸に沿って画素データを積算して第２のインテグラルイメージデータを作成する。この第２のインテグラルイメージデータは、第２のメモリにより、該当する画素位置に対応させて記憶される。インテグラルイメージデータ生成部１０９は、第２のインテグラルイメージデータを作成するための第２の演算器を備えている。ただし、第２の演算器は、上述した第１の演算器と兼用されても良い。
【００４２】
図４〜図７は、インテグラルイメージデータ生成部１０９の第２のメモリ４００を概念的に示すものである。例えば、図４において、座標軸として、画像処理領域２０２の２本の対角線（ｘ+ｙ=ｎ、ｘ−ｙ＝１）を用いている。この2本の対角線は、画像処理領域２０２の縦軸及び横軸に対してそれぞれ所定角度（約４５度）傾いている。ただし、座標（０，０）は、第１のメモリ３００と同様に、画像処理領域２０２の走査方向の進行側とは逆側の上側角部に定められている。この場合、図４において、例えばＩ（ｘ，ｙ）は、網掛けを施した領域に含まれる全画素の画素データを積算したインテグラルイメージデータとなる。
【００４３】
さらに、インテグラルイメージデータ生成部１０９は、第３のインテグラルイメージデータとして、画像処理領域２０２の縦軸及び横軸を座標軸として、その座標軸に沿って画素データの二乗値を総計したインテグラルイメージデータ（すなわち二乗和データ）を作成する。この第３のインテグラルイメージデータは、第３のメモリに記憶される。インテグラルイメージデータ生成部１０９は、第３のインテグラルイメージデータを作成するための第３の演算器を備えている。
【００４４】
図８は、インテグラルイメージデータ生成部１０９の第３のメモリ５００を概念的に示すものである。第３のインテグラルイメージデータに関しては、画像処理領域２０２全体の各画素データの二乗値の総計がわかれば良いので、第３のメモリ５００は、画像処理領域２０２に含まれる各画素列の最下段の画素位置における第３のインテグラルイメージデータだけを記憶する。
【００４５】
インテグラルイメージデータ生成部１０９が、第１〜第３のインテグラルイメージデータを生成する理由について説明する。
【００４６】
インテグラルイメージデータを用いて画像の識別を行う場合、画像処理領域２０２において、縦軸及び横軸に沿った矩形状の読み取り領域を定めることに加え、さらに、横軸及び縦軸に対して所定角度（例えば４５度）傾いた矩形状の読み取り領域を定め、それぞれの読み取り領域の画素データの総和に基づいて、画像の識別を行うことがある。上述したように、インテグラルイメージデータ生成部１０９が、第１及び第２のインテグラルイメージデータを作成して、第１及び第２のメモリ３００，４００にそれぞれ記憶しておくことにより、後述する識別器１１０において、傾斜角度の異なる読み取り領域の画素データの総和を簡単に求めることができるようになる。
【００４７】
また、画像処理領域２０２に含まれる全画素の画素データの二乗値の総計を求めて記憶しておくことにより、識別器１１０において、画像処理領域２０２の輝度等の補正を行うことができる。例えば、モノクロ画像において、画像処理領域２０２の全体が明る過ぎる場合には全画素データの二乗値の総計が大きくなり、逆に全体が暗過ぎる場合には二乗値の総計が小さくなる。二乗値の総計に応じて、画素データを補正することにより、画像処理領域２０２に含まれる各画素データの分布を正規化することができる。
【００４８】
ただし、上述したように、画像２０１の全体の大きさよりも小さい画像処理領域２０２を定め、その画像処理領域単位で識別処理を行う場合、画像２０１全体に対して識別処理を実行するには、図２に示すように、画像処理領域２０２が画像２０１全体をカバーするように、画像処理領域２０２を画像２０１において少しずつ移動させることが必要となる。この場合、画像処理領域２０２を移動させるごとに、各画像処理領域２０２に含まれる画素の画素データを一から積算して第１〜第３のインテグラルイメージデータを生成しようとすると、その生成のための処理に非常に時間がかかるという問題が生じる。
【００４９】
そのため、本実施形態では、画像処理領域２０２を移動させたときに、上述したインテグラルイメージの作成を高速に行うことを目的として、インテグラルイメージデータ生成部１０９にバッファを設けている。以下、インテグラルイメージデータ生成部１０９のバッファについて説明する。
【００５０】
インテグラルイメージデータ生成部１０９は、第１のバッファを有し、この第１のバッファには、画像処理領域２０２の走査方向に並んだ画像データに関して、走査方向と直交する画素列ごとに算出された、各画素列に含まれる画素の画素データの和が保存される。
【００５１】
図３には、第１のバッファ３０１が概念的に示されている。図３では、１画素列分のバッファ３０１しか示されていないが、実際には、走査方向における画像２０１の終端までの各画素列について、それぞれ画素データの和を保存する第１のバッファ３０１が設けられている。このように、第１のバッファ３０１が、予め走査方向における画像２０１の終端までの画素列について、画素データの和を保存できていると、インテグラルイメージデータを算出しながら、画像処理領域２０２の画像２０１終端までの移動を円滑に行うことができる。また、画像処理領域２０２が画像２０１の終端まで達して、画像処理領域２０２を走査方向と直交する方向に所定画素分だけ移動させて、再び画像処理領域２０２の走査が開始されることに備えて、第１のバッファの値を更新しておくことができる。
【００５２】
図３に示す例において、Ｂ（ｙ）は、画素列における０〜ｙまでの範囲に含まれる画素の画素データの和を示している。このように、第１のバッファ３０１には、各画素の位置に応じた画素データの和Ｂ（ｙ）が保存される。
【００５３】
この第１のバッファ３０１に保存された各画素列ごとの画素データの和は、画像処理領域２０２の移動時に第１及び第２のインテグラルイメージデータを作成する際、共通して用いられる。これにより、第１のバッファ３０１を個別に設けなくても済むので、構成を簡素化することができる。なお、画像処理領域２０２を走査方向に移動させるときの、第1及び第２のインテグラルイメージデータの作成方法は、後に詳細に説明する。
【００５４】
また、インテグラルイメージデータ生成部１０９は、第２のバッファを有し、この第２のバッファには、画像処理領域２０２の走査方向に並んだ画像データに関して、走査方向と直交する画素列ごとに算出された、各画素列に含まれる画素の画素データの二乗値の和が保存される。
【００５５】
図８には、第２のバッファ５０１が概念的に示されている。図８では、１画素列分しか示されていないが、第２のバッファ５０１は、走査方向における画像２０１の終端までの各画素列について、それぞれ画素データの二乗値の和を保存する容量を有している。なお、第２のバッファ５０１は、第１のバッファ３０１と異なり、画素列の各画素位置における画素データの二乗和は保存せず、画素列の下段の１行分についての二乗値の和だけを保存している。この第２のバッファ５０１を用いた、第３のインテグラルイメージデータの作成方法も、後に詳細に説明する。
【００５６】
識別器１１０は、インテグラルイメージデータ生成部１０９によって生成された画像処理領域２０２に対するインテグラルイメージデータを取り込んで、車両や歩行者などの識別対象が含まれているか否かを判別する識別演算を実行するものである。具体的には、識別器１１０においては、画像処理領域２０２において設定すべき読み出し領域として、図９（ａ）〜（ｎ）に示されるような多数の領域が予め定められている。個々の読み出し領域は、画像処理領域２０２において、特定の位置において適用されたり、画像処理領域２０２内で移動され、繰り返し使用されたりする。
【００５７】
そして、画像処理領域２０２における読み出し領域に含まれる画素の画素データの総和を、インテグラルイメージデータを用いて算出する。例えば、図１０において、Ｊが読み出し領域に相当する場合、読み出し領域Ｊの四隅のインテグラルイメージデータＩ１〜Ｉ４を用いて、以下のような簡単な数式を計算することにより、読み取り領域Ｊの画素データの総和Ｉｊを求めることができる。
【００５８】
（数１）
Ｉｊ＝Ｉ４−Ｉ２−Ｉ３＋Ｉ１
一方、識別器１１０は、識別すべき対象（車両や歩行者など）に特徴的なパターンに応じた画素データの総和（参照データ）を予め記憶している。そして、上述した読み出し領域における画素データの総和と記憶している画素データの総和とを対比して、特徴的なパターンがあるか否かを判定する。そして、画像全体に渡る複数の画像処理領域での、個々の読み出し領域に関する判定結果を総合的に勘案して、画像に、識別すべき対象が含まれているか否かを判断する。
【００５９】
なお、識別器１１０における識別処理は、インテグラルイメージデータ生成部１０９におけるインテグラルイメージデータ生成処理に比較して時間がかかる。そのため、図１１に示すように、識別器１１０は、識別処理を行う演算器を複数備えている。
【００６０】
その識別器１１０の判断結果は、画像出力部１１３を介して、表示部（モニタ）１１４に出力される。例えば、表示部１１４には、ＣＣＤカメラ１０１によって撮影された画像とともに、注意喚起を促すメッセージが表示されたり、撮影画像において、識別対象を強調した表示が行われたりする。
【００６１】
また、例えば、判断結果から、自車両に対して他車両や歩行者などが接近しているとみなされる場合には、通信Ｉ／Ｆ１１１を介して他の車載ＥＣＵに制御信号を出力し、車両の走行速度を低下させたり、あるいは車両を停止させたりといった制御を実行する。
【００６２】
次に、画像処理領域２０２を走査方向に移動させるときの、各インテグラルイメージデータの作成方法について説明する。
【００６３】
まず、画像処理領域２０２の移動時に、第１のバッファ３０１を用いて、第１のインテグラルイメージデータを作成する方法について、図３を参照しつつ説明する。
【００６４】
画像処理領域２０２を走査方向に１画素分だけ移動させる場合、走査方向の進行側とは逆側の１画素分の領域が画像処理領域２０２から外れ、走査方向の進行側において、１画素分の領域が新たに画像処理領域２０２に含まれることになる。従って、画像処理領域２０２の横軸及び縦軸をｘ軸及びｙ軸とするｘｙ座標系に沿って、各画素の画素データを積算した第１のインテグラルイメージデータに関しては、画像処理領域２０２から外れる１画素分の画素列における同じ行の第１のインテグラルイメージデータを減じることにより、画像処理領域２０２に残る各画素位置の第１のインテグラルイメージデータを更新することができる。この更新された第１のインテグラルイメージデータは、第１のメモリ３００において、走査方向とは反対方向に１画素分だけずれた位置に記憶される。
【００６５】
例えば、図３において、第１のインテグラルイメージデータＩ（ｘ，ｙ）は、画像処理領域２０２から外れる画素列における同じ行の第１のインテグラルイメージデータＩ（０、ｙ）を減じた後、（ｘ−１，ｙ）の座標位置に記憶される。このような第１のインテグラルイメージデータの更新処理が、第１のメモリ３００に記憶されている全ての第１のインテグラルイメージデータに関して行われる。
【００６６】
ただし、この更新処理のみでは、新たに画像処理領域に含まれることになる１画素分の画素列（第１のメモリ３００における、走査方向の進行側端部の画素列）の第１のインテグラルイメージデータが欠損することになる。そのため、新たに画像処理領域に含まれる１画素分の画素列の第１のインテグラルイメージデータを、第１のバッファ３０１に保存された画素データの和を用いて作成し、第１のメモリ３００に記憶する。具体的には、第１のバッファ３０１に保存されている各画素データの和と、画像処理領域２０２に残る画素の中で、最も走査方向の進行側寄りの各行の画素位置の第１のインテグラルイメージデータ、すなわち、ｘ座標がｍ−１の各行の第１のインテグラルイメージデータとを加算することにより、第１のメモリ３００の、走査方向進行側端部の画素列の第１のインテグラルイメージデータを作成することができる。
【００６７】
なお、本実施形態では、第１のバッファ３０１において、画素データの和が保存される各画素列の画素数は、画像処理領域２０２の画素列の画素数よりも１つだけ少なくなっている。このため、インテグラルイメージデータ生成部１０９は、対応する画素データの和が第１のバッファ３０１に保存されていない、画像処理領域２０２の角部画素位置の第１のインテグラルイメージデータＩ（ｎ、ｍ）を、画像処理領域２０２内で走査方向に隣接する画素位置の第１のインテグラルイメージデータＩ（ｍ−１，ｎ）、第１のバッファ３０１において画素列方向で隣接する画素位置の画素データの和Ｂ（ｎ−１）、及び外部記憶媒体１０７から読み出した角部画素位置の画素データ３０２を加算することにより作成し、第１のメモリ３００に記憶する。
【００６８】
このようにすると、第１のバッファ３０１において保存する画素データの和の数を少なくすることができるので、第１のバッファ３０１の容量を削減することができる。また、画像処理領域２０２の角部画素位置に関して、画像処理領域２０２の移動ごとに第１のインテグラルイメージデータＩ（ｎ，ｍ）を算出しても、その算出のための演算負荷や時間は極僅かなものにすぎない。
【００６９】
ただし、第１のバッファ３０１において、画像処理領域２０２の画素列の画素数と同数の画素数分だけ画素データの和を保存するようにしても良い。
【００７０】
また、画像処理領域２０２を、一回の移動で複数画素分、走査方向に移動させる場合には、上述した処理を、複数画素分だけ繰り返せば良い。
【００７１】
次に、画像処理領域２０２の移動時に、第１のバッファ３０１を用いて、第２のインテグラルイメージデータを作成する方法について、図４〜図７を参照しつつ説明する。
【００７２】
第２のインテグラルイメージデータの作成においては、画像処理領域２０２を、２本の対角線（ｘ+ｙ=ｎ、ｘ−ｙ＝１）によって４つの領域Ａ〜Ｄに区分けし、その各領域ごとに異なる更新処理を行う必要がある。
【００７３】
まず、第１の領域Ａに属する画素位置の第２のインテグラルイメージデータについては、図４に示すように、画像処理領域２０２が走査方向に１画素分移動することに伴い、第２のインテグラルイメージデータを作成する際に積算対象となっていた画素領域の内、１画素列分が、画像処理領域２０２から外れることになる。
【００７４】
例えば、図４において、第２のインテグラルイメージデータＩ（ｘ、ｙ）は、網掛けした領域に含まれる画素の画素データを積算することにより作成されている。このため、第２のインテグラルイメージデータＩ（ｘ，ｙ）に関しては、画像処理領域２０２から外れる画素列における、座標軸ｘ−ｙ＝１の方向に沿った位置にある第２のインテグラルイメージデータＩ（０、ｙ―ｘ）を減じた後、（ｘ−１，ｙ）の座標位置に記憶される。このような第２のインテグラルイメージデータの更新処理が、領域Ａに含まれる全ての画素位置の第２のインテグラルイメージデータに関して行われる。
【００７５】
次に、第２の領域Ｂに属する画素位置の第２のインテグラルイメージデータに関しては、図５に示すように、画像処理領域２０２が走査方向に１画素分移動しても、第２のインテグラルイメージを作成するための積算対象となっている画素領域が、そのまま並行移動するだけである。例えば、図５において、第２のインテグラルイメージデータＩ（ｘ、ｙ）を作成する際の積算対象領域が、網掛け領域として示されているが、画像処理領域２０２が１画素分移動しても、網掛け領域の形状は変化しない。このため、第２の領域Ｂに属する画素位置の第２のインテグラルイメージデータは、単に、１画素分だけ走査方向とは逆方向にずれた画素位置に移動させるだけで、第２のインテグラルイメージデータの更新を行うことができる。
【００７６】
第３の領域Ｃに属する画素位置の第２のインテグラルイメージデータに関しては、図６に示すように、画像処理領域２０２が走査方向に１画素分移動することに伴い、その走査方向進行側の１画素列分が、第２のインテグラルイメージデータを作成する際の積算対象領域に含まれることになる。
【００７７】
例えば、図６において、第２のインテグラルイメージデータＩ（ｘ、ｙ）は、網掛けした領域に含まれる画素の画素データを積算することにより作成されている。このため、第３の領域Ｃに属する画素位置の第２のインテグラルイメージデータＩ（ｘ，ｙ）に関しては、画像処理領域２０２に新たに含まれる画素列における、座標軸ｘ＋ｙ＝ｎの方向に沿った位置にある画素データの和Ｂ（ｍ＋１、ｙ−（ｍ−ｘ＋１）を加算した上で、（ｘ−１，ｙ）の座標位置に記憶する。なお、画素データの和は、上述した第１のバッファ３０１に保存されているものを利用することができる。このような第２のインテグラルイメージデータの更新処理が、領域Ｃに含まれる全ての画素位置の第２のインテグラルイメージデータに関して行われる。
【００７８】
最後に、第４の領域Ｄに属する画素位置の第２のインテグラルイメージデータに関しては、図７に示すように、画像処理領域２０２が走査方向に１画素分移動することに伴い、第２のインテグラルイメージデータを作成する際に積算対象となっていた画素領域の内、１画素列分が、画像処理領域２０２から外れることになる。さらに、走査方向進行側の１画素列分が、第２のインテグラルイメージデータを作成する際の積算対象領域に含まれることになる。
【００７９】
例えば、図７において、第４の領域Ｄに属する画素位置の第２のインテグラルイメージデータＩ（ｘ、ｙ）は、網掛けした領域に含まれる画素の画素データを積算することにより作成されている。従って、第２のインテグラルイメージデータＩ（ｘ，ｙ）に関しては、まず、画像処理領域２０２から外れる画素列における、座標軸ｘ−ｙ＝１の方向に沿った位置にある第２のインテグラルイメージデータＩ（０、ｙ―ｘ）を減じる処理を行う。さらに、画像処理領域２０２に新たに含まれる画素列における、座標軸ｘ＋ｙ＝ｎの方向に沿った位置にある画素データの和Ｂ（ｍ＋１、ｙ−（ｍ−ｘ＋１）を加算する処理を行う。このような減算処理及び加算処理の後に、第２のインテグラルイメージデータＩ（ｘ，ｙ）は、第２のメモリ４００において、（ｘ−１，ｙ）の座標位置に記憶される。このような第２のインテグラルイメージデータの更新処理が、領域Ｄに含まれる全ての画素位置の第２のインテグラルイメージデータに関して行われる。
【００８０】
なお、上述した第１のインテグラルイメージデータの場合と同様に、画像処理領域２０２を、一回の移動で複数画素分、走査方向に移動させる場合には、上述した処理を、複数画素分だけ繰り返せば良い。
【００８１】
また、画像処理領域２０２が一画素分だけ移動したときに、上述した第１及び第２のインテグラルイメージデータの更新処理が完了すると、続いて、第１のバッファ３０１に保存されている画素データの和の更新処理が行われる。この第１のバッファ３０１の更新処理は、画像処理領域２０２が、走査方向と直交する方向に所定画素分だけずらされて、画像２０１の一端側から、再び画像処理領域２０２の走査が繰り返されることに備えるために実施される。
【００８２】
具体的には、第１のバッファ３０１において、最上位の画素データの和（この場合は、画素データそのものとなる）Ｂ（０）を、各画素データの和から減じた上で、各々の画素データの和の保存位置を、一画素分だけ上方に移動させる。第１のバッファ３０１の最下段の画素データの和Ｂ（ｎ−１）に関しては、その１画素分上段の画素データの和Ｂ（ｎ−２）と、外部記憶媒体１０７から読み出した画素データ３０２とを加算することにより算出して、第１のバッファ３０１に記憶する。
【００８３】
なお、画像処理領域２０２の走査方向と直交する方向への移動が複数画素分に及ぶ場合には、上述した処理を、その複数画素分だけ繰り返せば良い。
【００８４】
次に、画像処理領域２０２の移動時に、第２のバッファ５０１を用いて、第３のインテグラルイメージデータを作成する方法について、図８を参照しつつ説明する。
【００８５】
第３のインテグラルイメージデータは、画像処理領域２０２の横軸及び縦軸をｘ軸及びｙ軸とするｘｙ座標系に沿って、各画素の画素データの二乗値を積算した、二乗値の総和として算出されるものである。従って、画像処理領域２０２を走査方向に１画素分だけ移動させる場合、第３のメモリ５００に記憶されている第３のインテグラルイメージデータに関しては、画像処理領域２０２から外れる１画素分の画素列の二乗値の和を減じることにより更新することができる。この更新された第３のインテグラルイメージデータは、第３のメモリ５００において、走査方向とは反対方向に１画素分だけずれた位置に記憶される。
【００８６】
例えば、図８において、第３のインテグラルイメージデータG（ｍ，n）は、画像処理領域２０２から外れる画素列の画素データの二乗値の和である第３のインテグラルイメージデータG（０、ｎ）を減じた後、（ｍ−１，ｎ）の座標位置に記憶される。このような第３のインテグラルイメージデータの更新処理が、第３のメモリ５００に記憶されている全ての第３のインテグラルイメージデータに関して行われる。
【００８７】
ただし、この更新処理のみでは、第３のメモリ５００において、新たに画像処理領域２０２に含まれる１画素分の画素列（第１のメモリ３００における、走査方向の進行側端部の画素列）の二乗値の和を含む第３のインテグラルイメージデータが欠損することになる。そのため、新たに画像処理領域に含まれる１画素分の画素列の二乗値の和を含む第３のインテグラルイメージデータを以下の数式２に従って算出し、第３のメモリ５００における、（ｍ、ｎ）の座標位置に記憶する。
【００８８】
（数２）
Ｇ（ｍ，ｎ）＝Ｇ（ｍ−１、ｎ）＋Ｂ’（ｎ−１）＋[３０２]２
なお、Ｂ’（ｎ−１）は、第２のバッファ５０１に保存された、画像処理領域２０２に新たに含まれる画素数ｎ−１の画素列の各画素データの二乗値の和を表している。また、[３０２]は、新たに画像処理領域２０２に含まれることになる、外部記憶媒体１０７から読み出した角部画素位置の画素データを表している。
【００８９】
このような簡単な演算処理を行うことにより、画像処理領域２０２を移動させた後の、画像処理領域２０２に含まれる画素の画素データの二乗値の総和を得ることができる。
【００９０】
そして、画像処理領域２０２が一画素分だけ移動したときに、上述した第３のインテグラルイメージデータの更新処理が完了すると、続いて、第２のバッファ５０１に保存されている画素データの二乗値の和の更新処理が行われる。この第２のバッファ５０１の更新処理は、画像処理領域２０２が、走査方向と直交する方向に所定画素分だけずらされて、画像２０１の一端側から、再び画像処理領域２０２の走査が繰り返されることに備えるために実施される。
【００９１】
具体的には、第３のバッファ５０１に保存されている、画素列の各画素データの二乗値の和から、第１のバッファ３０１の最上位の画素データの和Ｂ（０）の二乗値を減じるとともに、外部記憶媒体１０７から読み出した画素データ３０２の二乗値を加算して、画素データの二乗値の和の更新値を算出し、第３のバッファ５０１に保存する。
【００９２】
なお、画像処理領域２０２の走査方向と直交する方向への移動が複数画素分に及ぶ場合には、上述した処理を、その複数画素分だけ繰り返せば良い。
【００９３】
以上、説明したように、本実施形態の画像処理装置によれば、画像処理領域２０２を走査方向に所定画素移動させる際に、新たな画像処理領域２０２における第１〜第３のインテグラルイメージデータを、個々の画素の画素データを用いて一から作成するのではなく、既に作成済みの第１〜第３のインテグラルイメージデータ、第１のバッファ３０１に保存された、各画素列ごとの画素位置に応じた画素データの和、及び第２のバッファ５０１に保存された各画素列ごとの各画素データの二乗和を利用する。従って、画像処理領域２０２を第１〜第３のインテグラルイメージデータの算出対象とし、その画像処理領域２０２を移動させる際にも、短時間で、移動後の画像処理領域２０２についての第１〜第３インテグラルイメージデータを作成することができる。
【００９４】
なお、上述した実施形態は、本発明を実施する上で好ましいものではあるが、本発明は、上述した実施形態になんら制限されるものではなく、本発明の主旨を逸脱しない範囲において種々変形して実施することができる。
【００９５】
例えば、上述した実施形態では、第１〜第３のインテグラルイメージデータを作成する上で、画像処理領域２０２の走査方向の進行側とは逆側の角部を原点位置としていた。しかしながら、画像処理領域２０２のその他の角部を原点位置としても良い。例えば、画像処理領域２０２の走査方向の進行側の上側角部を原点位置とした場合には、第１のインテグラルイメージデータは、第１のバッファ３０１に保存された画素データの和を、そのまま、画像処理領域２０２の走査方向側の端部画素列のインテグラルイメージデータとして記憶させつつ、第１のメモリ３００に保存済みの各インテグラルイメージデータに対しては、第１のバッファ３０１に保存された画素データの和を加えて、記憶位置を１画素分ずらすことにより更新することができる。
【００９６】
また、上述した実施形態では、第１〜第３のインテグラルイメージデータを作成する例について説明したが、第３のインテグラルイメージデータの作成は任意である。また、第１のインテグラルイメージデータと第２のインテグラルイメージデータのいずれかのみを作成するようにしても良い。
【符号の説明】
【００９７】
１００…画像処理ＥＣＵ
１０１…撮像部（ＣＣＤカメラ）
１０７…外部記憶媒体
１０９…インテグラルイメージデータ生成部
１１０…識別器
１１４…表示部(モニタ)
【図１】
0005370294.tif 000002
【図２】
0005370294.tif 000003
【図３】
0005370294.tif 000004
【図４】
0005370294.tif 000005
【図５】
0005370294.tif 000006
【図６】
0005370294.tif 000007
【図７】
0005370294.tif 000008
【図８】
0005370294.tif 000009
【図９】
0005370294.tif 000010
【図１０】
0005370294.tif 000011
【図１１】
0005370294.tif 000012