説明

画像処理装置及びプログラム

【課題】少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの領域について積算値を求めることができるようにする。
【解決手段】小領域毎に、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出して、小領域毎に各画素の積算強度値を表わす第1積算値データを生成する。小領域の各々の原点に相当する座標の積算強度値を算出して、小領域の各々の原点に相当する座標の積算強度値を集めた第2積算値データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及びプログラムに係り、特に、処理対象画像が処理対象物を撮像した画像であるか否かを識別するか、又は処理対象物を表わす領域を検出する画像処理装置及びプログラムに関する。
【背景技術】
【0002】
従来より、指定された領域のエッジ方向ヒストグラムを生成するために、輝度画像から一旦エッジ方向画像を生成し、エッジ方向ごとの度数を計数する方法が知られている。このように生成したエッジ方向ヒストグラムには、エッジ強度が反映されていないため、強度の弱いエッジも強いエッジと同様に扱われ、ヒストグラム自体がノイズの多いものとなる、という欠点がある。
【0003】
そこで、エッジ強度に対するしきい値を設定し、そのしきい値以下のエッジについてはヒストグラムに反映させないという方法が知られている。また、別の方法として、エッジの度数を計数する代わりに、エッジ方向毎のエッジ強度を積算して、エッジ強度が反映されたエッジ方向ヒストグラムを得る方法が知られている。
【0004】
なお、輝度画像からエッジ強度画像とエッジ方向画像を得るには、ソーベルフィルタなどを用いればよい。
【0005】
実際にヒストグラムを作成するには、対象領域の全ての画素についてエッジ方向を調べなければならず、対象領域をずらしながらオーバーラップして何度も異なる領域のヒストグラムを作成する。このような場合に、インテグラルヒストグラムという中間処理結果を作成し、インテグラルヒストグラムから、指定された領域のヒストグラムを作成する方法が知られている。
【0006】
インテグラルヒストグラムは、ヒストグラムの方向ごとにプレーンをもち、各プレーンは入力画像と同様に2次元座標を持ち、座標(x,y)には、原点と座標(x,y)を対角とする矩形領域のエッジ強度の積算値(または度数の積算値)が記録されている。
【0007】
このインテグラルヒストグラムが与えられているとすると、(x1,y1)−(x2,y2)を対角とする領域のヒストグラムは、各プレーンの4点(x1,y1),(x1,y2),(x2,y1),(x2,y2)のデータから作成することができる。あらかじめ入力画像が与えられた時点でインテグラルヒストグラムを作成しておけば、任意の矩形領域のヒストグラムを、比較的少ない計算量で作成することが可能となる。
【0008】
また、入力画像の任意領域の輝度積算値を求めるためのインテグラルイメージに関する発明が知られている(特許文献1)。入力画像を複数の小領域に分割してインテグラルイメージを作成しておき、輝度積算値を求める領域の原点をインテグラルイメージの原点に一致させた場合には、計算量を削減できるというものである。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−102792号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、従来技術におけるインテグラルヒストグラムは、データ量が多く、メモリ容量の大きなシステムを必要とする、という問題があった。
【0011】
また、上記の特許文献1に記載の技術では、インテグラルイメージの原点と、輝度積算値を求める領域の原点を一致させ、または、辺を一致させなければならないため、任意の場所であって任意の大きさの領域について輝度積算値やヒストグラムを求める場合には、対応することができない、という問題がある。
【0012】
本発明は、上記の問題点を解決するためになされたもので、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの領域について積算値を求めることができる画像処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記の目的を達成するために第1の発明に係る画像処理装置は、処理対象の画像を分割した小領域毎に、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出して、小領域毎に各画素の前記積算値を表わす第1積算値データを生成する第1算出手段と、前記処理対象の画像における、前記小領域の各々の原点に対応する座標の前記積算値を算出して、前記小領域の各々の原点に対応する座標の前記積算値を表わす第2積算値データを生成する第2算出手段とを含んで構成されている。
【0014】
第2の発明に係るプログラムは、コンピュータを、処理対象の画像を分割した小領域毎に、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出して、小領域毎に各画素の前記積算値を表わす第1積算値データを生成する第1算出手段、及び前記処理対象の画像における、前記小領域の各々の原点に対応する座標の前記積算値を算出して、前記小領域の各々の原点に対応する座標の前記積算値を表わす第2積算値データを生成する第2算出手段として機能させるためのプログラムである。
【0015】
第1の発明及び第2の発明によれば、第1算出手段によって、処理対象の画像を分割した小領域毎に、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出して、小領域毎に各画素の積算値を表わす第1積算値データを生成する。そして、第2算出手段によって、処理対象の画像における、小領域の各々の原点に対応する座標の積算値を算出して、小領域の各々の原点に対応する座標の積算値を表わす第2積算値データを生成する。
【0016】
このように、小領域毎に各画素の積算値を表わす第1積算値データと、小領域の各々の原点に対応する座標の積算値を表わす第2積算値データとを生成することにより、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの領域について積算値を求めることができる。
【0017】
第3の発明に係る画像処理装置は、処理対象の画像から、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出し、前記算出された各画素の積算値の下位nビットを表わす第1積算値データ、及び前記算出された各画素の積算値であって、かつ、全画素より少ない画素数となるように定められた各画素の積算値の、前記下位nビットの上位ビットを含む上位mビットを表わす第2積算値データを生成する算出手段を含んで構成されている。
【0018】
第4の発明に係るプログラムは、コンピュータを、処理対象の画像から、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出し、前記算出された各画素の積算値の下位nビットを表わす第1積算値データ、及び前記算出された各画素の積算値であって、かつ、全画素より少ない画素数となるように定められた各画素の積算値の、前記下位nビットの上位ビットを含む上位mビットを表わす第2積算値データを生成する算出手段として機能させるためのプログラムである。
【0019】
第3の発明及び第4の発明によれば、算出手段によって、処理対象の画像から、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出し、算出された各画素の積算値の下位nビットを表わす第1積算値データ、及び算出された各画素の積算値であって、かつ、全画素より少ない画素数となるように定められた各画素の積算値の、下位nビットの上位ビットを含む上位mビットを表わす第2積算値データを生成する。
【0020】
このように、各画素の積算値の下位nビットを表わす第1積算値データ、及び少ない画素数の各画素の積算値の上位mビットを表わす第2積算値データを生成することにより、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの領域について積算値を求めることができる。
【0021】
上記第1の発明において、処理対象の画像を、複数の勾配方向毎に、各画素の勾配強度を表わした勾配値画像とし、第1算出手段は、複数の勾配方向毎に、第1積算値データを生成し、第2算出手段は、複数の勾配方向毎に、第2積算値データを生成するようにすることができる。
【0022】
上記第3の発明において、処理対象の画像を、複数の勾配方向毎に、各画素の勾配強度を表わした勾配値画像とし、算出手段は、複数の勾配方向毎に、第1積算値データ及び第2積算値データを生成するようにすることができる。
【0023】
上記の画像処理装置は、第1積算値データ及び第2積算値データに基づいて、処理対象の画像が処理対象物を表わす画像であるか否かを識別するか、又は処理対象の画像から処理対象物を表わす領域を検出する画像処理手段を更に含むようにすることができる。また、上記の画像処理手段は、第1積算値データ及び第2積算値データに基づいて、処理対象の画像に設定した探索範囲に対して、探索範囲の積算値を算出し、探索範囲の積算値に基づいて、処理対象の画像が処理対象物を表わす画像であるか否かを識別するか、又は処理対象の画像から処理対象物を表わす領域を検出するようにすることができる。このように、少ない計算量で、任意の探索範囲の積算値を算出して、処理対象物を表わす画像であるか否かを識別し、または処理対象物を表わす領域を検出することができる。
【0024】
上記の複数の勾配方向毎に第1積算値データ及び第2積算値データを生成する発明に係る画像処理装置は、第1積算値データ及び第2積算値データに基づいて、処理対象の画像に設定した探索範囲に対して、複数の勾配方向毎に探索範囲の積算値を算出し、探索範囲における、勾配方向の各々に対して積算値を要素とする勾配ヒストグラムを算出し、勾配ヒストグラムに基づいて、処理対象の画像が処理対象物を表わす画像であるか否かを識別するか、又は処理対象の画像から処理対象物を表わす領域を検出する画像処理手段を更に含むようにすることができる。このように、少ない計算量で、任意の探索範囲の勾配ヒストグラムを算出して、処理対象物を表わす画像であるか否かを識別し、または処理対象物を表わす領域を検出することができる。
【発明の効果】
【0025】
以上説明したように、本発明の画像処理装置及びプログラムによれば、小領域毎に各画素の積算値を表わす第1積算値データと、小領域の各々の原点に対応する座標の積算値を表わす第2積算値データとを生成することにより、又は各画素の積算値の下位nビットを表わす第1積算値データ、及び少ない画素数の各画素の積算値の上位mビットを表わす第2積算値データを生成することにより、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの領域について積算値を求めることができる、という効果が得られる。
【図面の簡単な説明】
【0026】
【図1】本発明の第1の実施の形態に係る対象物識別装置の構成を示す概略図である。
【図2】各画素について勾配強度及び勾配方向を算出した様子を示すイメージ図である。
【図3】撮像画像を示すイメージ図である。
【図4】各エッジ方向のインテグラルヒストグラムの構成を示すイメージ図である。
【図5】第1階層データの各画素の積算強度値の算出方法を説明するための図である。
【図6】第2階層データの各画素の積算強度値の算出方法を説明するための図である。
【図7】本発明の第1の実施の形態に係る対象物識別装置の識別部の構成を示す図である。
【図8】(A)撮像画像を示すイメージ図、(B)探索範囲を示すイメージ図、及び(C)各探索範囲の勾配ヒストグラムを示すイメージ図である。
【図9】本発明の第1の実施の形態に係る対象物識別装置のコンピュータにおける識別処理ルーチンの内容を示すフローチャートである。
【図10】本発明の第2の実施の形態に係る対象物識別装置の構成を示す概略図である。
【図11】第1階層データの各画素の積算強度値の算出方法を説明するための図である。
【図12】第2階層データの各画素の積算強度値の算出方法を説明するための図である。
【図13】本発明の第2の実施の形態に係る対象物識別装置のコンピュータにおける識別処理ルーチンの内容を示すフローチャートである。
【図14】本発明の第3の実施の形態に係る対象物識別装置の識別部の構成を示す図である。
【発明を実施するための形態】
【0027】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、撮像画像が、識別対象物としての歩行者を撮像した画像であるか否かを識別する対象物識別装置に本発明を適用した場合を例に説明する。
【0028】
図1に示すように、第1の実施の形態に係る対象物識別装置10は、車両(図示省略)に取り付けられ、かつ、車両の前方を撮像して画像を生成する撮像装置12と、撮像装置12から得られる撮像画像が歩行者を撮像した画像であるか否かを識別するコンピュータ14と、コンピュータ14の識別結果を表示する表示装置16とを備えている。
【0029】
撮像装置12は、車両の前方を撮像し、画像の画像信号を生成する撮像部(図示省略)と、撮像部で生成された画像信号をA/D変換するA/D変換部(図示省略)と、A/D変換された画像信号を一時的に格納するための画像メモリ(図示省略)とを備えている。
【0030】
コンピュータ14は、CPUと、RAMと、後述する識別処理ルーチンを実行するためのプログラムを記憶したROMとを備え、機能的には次に示すように構成されている。コンピュータ14は、撮像装置12から撮像された画像を取得し、各勾配方向について各画素の勾配強度を表わす勾配値画像を生成する画像取得部20と、画像取得部20により生成した勾配値画像の各々を、複数の小領域に分割する領域分割部22と、各勾配方向について、各小領域の積算値画像を表わす第1階層データを算出する第1階層算出部24と、各勾配方向について、各小領域の原点に相当する画素の積算値を表わす第2階層データを算出する第2階層算出部26と、歩行者を撮像した学習画像に基づいて予め生成された学習モデルとしてのSVM(サポートベクターマシン)モデルを記憶した学習モデル記憶部28と、算出された第1階層データ及び第2階層データと、学習モデルとに基づいて、SVM識別器により、識別対象画像が歩行者を撮像した画像であるか否かを識別する識別部30とを備えている。
【0031】
画像取得部20は、撮像された画像を取得し、取得した画像について、図2に示すように、各画素の勾配強度及び勾配方向を算出する。
【0032】
勾配強度mは、上記(1)式に従って算出される。
【0033】
【数1】

【0034】
ただし、m(x,y)は画像座標(x,y)での勾配強度を表わし、I(x,y)は、画像座標(x,y)の輝度値を表わす。
【0035】
ここで、勾配強度は、上記(1)式に示すように、画像の各画素を注目画素としたときの注目画素の周辺に存在する周辺画素の輝度差に基づいて求められ、注目画素及び周辺画素を含む所定領域内の輝度の変化度合いを示している。
【0036】
勾配方向θは、以下の(2)式に従って算出される。
【0037】
【数2】

【0038】
ただし、θ(x,y)は、画素座標(x,y)での勾配の方向を表わす。
【0039】
また、勾配方向を、0〜180度或いは0〜360度の範囲をN度ずつに分割し、例えば、0〜360度の範囲で45度ずつに分割して、勾配方向として、8方向の何れかを求める。
【0040】
また、画像取得部20は、算出された各画素の勾配強度及び勾配方向に基づいて、8方向の各勾配方向について、各画素の勾配強度を表わす勾配値画像を生成する。
【0041】
領域分割部22は、画像取得部20により生成した各勾配方向の勾配値画像を、複数の小領域に均等に分割する。例えば、図3に示すような640画素×480行の勾配値画像を、16×16画素の小領域に分割する。以下、640画素×480行の勾配値画像を用いた場合を例に説明する。
【0042】
次に、本実施の形態におけるインテグラルヒストグラムを算出する原理について説明する。
【0043】
まず、勾配ヒストグラムは、360度を8分割した45度ずつの8方向のヒストグラムとする。したがって、インテグラルヒストグラムは、図4に示すように、8プレーンで構成される。第1プレーンは、エッジ方向が0〜45度の範囲に入っているエッジについてその強度を積算した値が記録されている。第2プレーンは45〜90度を受け持ち、以下同様に第8プレーンまである。
【0044】
各プレーンは下位である第1階層データと、上位である第2階層データに分けられ、それぞれ積算強度値を記録している。
【0045】
第1階層データは、積算強度値を必要な上限の解像度(ここでは勾配値画像と同じ640×480とする)で記録するが、1画面分をひとつの積算値画像とするのではなく、16画素×16行の小領域をひとつの積算値画像とし、この小領域が1画面に40×30=1200個存在する。それぞれの積算強度値は、同一小領域内でのみ意味を持つことになる。
【0046】
すなわち、図5に示すように、小領域の左上カドの画素を原点とし、対応する勾配方向の勾配値画像に基づいて、小領域の各画素(x、y)の積算強度値ii(x,y)を、以下の(3)式に従って算出する。
【0047】
【数3】

【0048】
ただし、(x、y)は、当該小領域の原点の座標である。また、エッジ強度(x、y)は、勾配値画像の画素(x、y)の画素値である。
【0049】

また、図6に示すように、第2階層データは、第1階層の各小領域の関係を記録しており、小領域の数と同じ40×30の解像度となる。すなわち、第2階層データが記録している積算強度値は、対応する第1階層データの各小領域の原点(左上の座標)の画面内における積算強度値である。
【0050】
対応する第1階層データの小領域の原点(x、y)における積算強度値は、以下の(4)式に従って算出される。
【0051】
【数4】

【0052】
本実施の形態では、第1階層算出部24によって、各勾配方向の勾配値画像に基づいて、小領域毎に、各画素(x、y)の積算強度値を算出し、各勾配方向について、小領域毎の積算値画像を表わす第1階層データを生成する。
【0053】
また、第2階層算出部24によって、各勾配方向の勾配値画像に基づいて、各小領域の原点に相当する画素(x、y)における積算強度値を算出し、各勾配方向について、小領域の原点に相当する画素における積算強度値を集めた第2階層データを生成する。
【0054】
図7に示すように、識別部30は、撮像された画像上に探索範囲を設定する探索範囲設定部40と、探索範囲について、各勾配方向のヒストグラム(以下、勾配ヒストグラムと称する。)を算出する勾配ヒストグラム算出部42と、算出された勾配ヒストグラムと、学習モデル記憶部28に記憶された学習モデルとに基づいて、従来既知のSVM識別器を用いて、探索範囲の画像が歩行者を撮像した画像であるか否かを識別する判定部44とを備えている。探索範囲設定部40、勾配ヒストグラム算出部42、及び判定部44の各処理は、探索範囲をずらしながら、繰り返し行われる。
【0055】
探索範囲設定部40は、撮像された画像上に、矩形領域の探索範囲をずらしながら、かつ、大きさを変えながら繰り返し設定する。
【0056】
勾配ヒストグラム算出部42は、設定された探索範囲における、勾配方向の各々に対して積算強度値を要素とする勾配ヒストグラムを、以下のように算出する。なお、4つの座標(x1,y1)、座標(x2,y1)、座標(x1,y2)、座標(x2,y2)に位置する画素(x1<x2、y1<y2)を四隅(角)とする探索範囲について算出する場合を例に説明する。また、撮像された画像の座標と、第1階層データ及び第2階層データの座標とが一致しているものとする。
【0057】
まず、各勾配方向について、第1階層データ及び第2階層データに基づいて、4つの座標の各々の積算強度値を算出する。例えば、特定の勾配方向に対しては、座標(x1,y1)について、特定の勾配方向の第1階層データにおける座標(x1、y1)の積算強度値(座標(x1、y1)が属する小領域の積算値画像における座標(x1、y1)の積算強度値)と、特定の勾配方向の第2階層データが表わす座標(x1、y1)が属する小領域の原点に相当する画素の積算強度値とを加算して、特定の勾配方向に対する座標(x1,y1)の積算強度値とする。
【0058】
そして、特定の勾配方向について算出された4つの座標の各々の積算強度値に基づいて、以下の(5)式に従って、特定の勾配方向についての、探索範囲の積算強度値Dを算出する。
D=ii(x2,y2)+ii(x1,y1)
−ii(x2,y1)−ii(x1,y2) ・・・(5)
【0059】
上記(5)式に従って、8方向の勾配方向の各々について、探索範囲の積算強度値が算出される。そして、8方向の勾配方向の探索範囲の積算強度値に基づいて、探索範囲について、各勾配方向の積算強度値を表わす勾配ヒスグラムを算出する。
【0060】
勾配ヒストグラム算出部42は、図8(B)に示すように、複数の探索範囲の各々に対して、繰り返し、勾配ヒストグラムを算出することにより、図8(C)に示すような勾配ヒストグラムが各々算出される。
【0061】
判定部44は、学習モデル記憶部28に記憶された学習モデルと、勾配ヒストグラム算出部42により算出された勾配ヒストグラムとに基づいて、従来既知のSVM識別器を用いて、探索範囲の画像が歩行者を撮像した画像であるか否かを識別し、識別結果を、表示装置16に表示させる。
【0062】
学習モデル記憶部28では、以下のような学習処理によって予め求められた学習モデルを記憶している。
【0063】
まず、歩行者を撮像した複数の歩行者領域の画像と、歩行者以外を撮像した複数の非歩行者領域の画像とを予め用意し、複数の歩行者領域の画像と複数の非歩行者領域の画像との各々について、上述したように勾配ヒストグラムを算出する。
【0064】
そして、各画像について求められた勾配ヒストグラムを訓練データとし、各画像が歩行者領域及び非歩行者領域の何れであるかに応じて付与される教師ラベルを用いて、学習処理を行い、SVMモデルを学習モデルとして求め、学習モデル記憶部28に記憶する。
【0065】
次に、本実施の形態に係る対象物識別装置10の作用について説明する。まず、歩行者を撮像することにより得られた複数の歩行者領域の画像と、歩行者以外を撮像することにより得られた非歩行者領域の画像とに基づいて、学習処理を行い、得られたSVMモデルを、学習モデル記憶部28に記憶する。
【0066】
そして、対象物識別装置10を搭載した車両の走行中に、撮像装置12によって車両の前方の所定領域が撮像されると、コンピュータ14において、図9に示す識別処理ルーチンが実行される。
【0067】
まず、ステップ100において、撮像装置12から撮像画像を取得し、撮像画像から、各勾配方向の勾配値画像を生成する。そして、ステップ102において、上記ステップ100で生成した各勾配方向の勾配値画像を、均等に複数の小領域に分割する。そして、ステップ104において、各勾配方向の第1階層データを算出し、ステップ106において、各勾配方向の第2階層データを算出する。
【0068】
次のステップ108では、上記ステップ100で取得した撮像画像上に、探索範囲を設定し、ステップ110において、上記ステップ108で設定された探索範囲について、上記ステップ104、106で算出された各勾配方向の第1階層データ及び第2階層データに基づいて、勾配ヒストグラムを算出する。
【0069】
そして、ステップ112において、上記ステップ110で算出された勾配ヒストグラムに基づいて、予め求められた学習モデル及びSVM識別器を用いて、上記ステップ100で取得した撮像画像における探索範囲の画像が、歩行者を表わす歩行者画像であるか否かを識別する。
【0070】
次のステップ114では、全ての探索範囲について、上記ステップ108〜ステップ112の処理を実行したか否かを判定し、全ての探索範囲について実行していない場合には、上記ステップ108へ戻り、探索範囲の位置をずらし、又は大きさを変更して、探索範囲を設定する。一方、上記ステップ114において、全ての探索範囲について上記ステップ108〜ステップ112の処理を実行したと判定された場合には、ステップ116において、上記ステップ112における識別結果を表示装置16に表示して、識別処理ルーチンを終了する。
【0071】
次に、本実施の形態にように、インテグラルヒスグラムを、第1階層データ及び第2階層データで構成した場合に必要となるメモリ容量について説明する。なお、640画素×480行の画像を、16×16画素の小領域に分割した場合を例に説明する。
【0072】
まず、第1階層データの積算強度値の最大値は、256画素のエッジ強度の積算値であるので、各画素のエッジ強度が8ビットで表現できるとすると、16ビットで表現できることになる。この16ビット(2バイト)の積算強度値が全部で640×480個あるため、第1階層データは614400バイトという大きさのデータになる。
【0073】
同様に、第2階層データの積算強度値の最大値は、全部で640×480画素の勾配強度の積算値であるため、27ビット必要となる。通常の処理系では、32ビットのデータとして扱うことになる。第2階層データの方は、ひとつの積算強度値に32ビット(4バイト)必要であるが、その個数は全部で1200個であることから、第2階層データは、4800バイトという大きさのデータになる。
【0074】
本実施の形態では、第1階層データと第2階層データを合わせて、619200バイトのデータとなり、従来技術のインテグラルヒストグラムで必要とされる1228800バイトに比べて、約1/2にデータ量を削減できる効果がある。なお、本実施の形態では、8プレーン分の第1階層データ及び第2階層データを用いるため、前記の8倍のデータ量となるが、従来技術のインテグラルヒストグラムでも8プレーン分必要となるため、同様に8倍のデータ量となる。
【0075】
以上説明したように、第1の実施の形態に係る対象物識別装置によれば、各勾配方向について、小領域毎に各画素の積算強度値を表わす第1積算値データと、小領域の各々の原点に対応する座標の積算強度値を集めた第2積算値データとを生成することにより、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの探索範囲について勾配ヒストグラムを算出して、処理対象物を表わす画像であるか否かを識別することができる。
【0076】
また、インテグラルヒストグラムを階層構造にすることにより、階層を分けずにインテグラルヒストグラムを生成する従来技術に比較して、積算値画像に必要なメモリ容量を削減でき、装置の小型化、低コスト化が可能となる。
【0077】
また、積算値画像を2階層に分け、第1階層データを小領域毎の積算値画像とすることで、積算値を小さく抑えることができ、その結果、積算値のビット長を短くできる。また、第2階層データが必要になるが、第2階層データは解像度の粗い積算値画像で良いので、必要なメモリ容量を小さくすることができる。全体では、第1階層データのビット長を短くできる分のメモリ削減効果が大きい。
【0078】
次に、第2の実施の形態について説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【0079】

第2の実施の形態では、インテグラルヒストグラムの第1階層データ及び第2階層データの算出方法が、第1の実施の形態と異なっている。
【0080】
図10に示すように、第2の実施の形態に係る対象物識別装置210のコンピュータ214は、画像取得部20と、各勾配方向について、各画素における下位のnビットの積算強度値を表わす第1階層データ、及び粗い密度の各画素における上位のmビットの積算強度値からなる第2階層データを算出する階層データ算出部224と、学習モデル記憶部28と、識別部30とを備えている。
【0081】
次に、本実施の形態におけるインテグラルヒストグラムを算出する原理について説明する。
【0082】
勾配値画像に対して、画像の原点を基準として、各画素(x、y)の積算強度値を、以下の(6)式に従って算出される。
【0083】
【数5】

【0084】
上記(6)式に従って算出された積算強度値が、例えば、27ビットで表わされるとすると(エッジ強度を8ビットと仮定し、画素数を640×480画素と仮定したため、積算強度値を27ビットと仮定した。)、図11に示すように、各画素について算出された積算強度値の例えば下位16ビット(ビット15〜ビット0)を、第1階層データの当該画素の値として記録し、図12に示すように、全画素より粗い密度となるように(例えば、16×8画素毎に)決定された各画素について算出された積算強度値の例えば上位12ビット(ビット26〜ビット15)を、第2階層データの当該画素の値として記録する。このように、第1階層データが表わす下位16ビットの上位ビットであるビット15は、第2階層データが表わす上位12ビットにも含まれる。なお、第1階層データの値を16ビットとしたのは、エッジ強度を8ビットと仮定し、16×8画素を積算すると最大で15ビットの値となるからである。また、第1階層データで、1ビット多い16ビットを保持するのは、強度積算値が15ビットで表現できる範囲を超えたことを判定できるようにするためである。
【0085】
本実施の形態では、階層データ算出部224によって、各勾配方向の勾配値画像に基づいて、各勾配方向について、各画素(x、y)における積算強度値を算出し、各勾配方向について、各画素の下位nビットの積算強度値を表わす第1階層データを生成すると共に、粗い密度で決定された各画素における上位mビットの積算強度値を集めた第2階層データを生成する。
【0086】
勾配ヒストグラム算出部42は、設定された探索範囲の勾配ヒストグラムを、以下のように算出する。なお、4つの座標(x1,y1)、座標(x2,y1)、座標(x1,y2)、座標(x2,y2)に位置する画素(x1<x2、y1<y2)を四隅(角)とする探索範囲について算出する場合を例に説明する。また、撮像された画像の座標と、第1階層データ及び第2階層データの座標とが一致しているものとする。
【0087】
まず、各勾配方向について、第1階層データ及び第2階層データに基づいて、4つの座標の各々の積算強度値を算出する。例えば、特定の勾配方向に対しては、座標(x1,y1)について、特定の勾配方向の第2階層データが表わす、座標(x1、y1)の例えば左上側にある直近の画素の上位12ビットの積算強度値の下位に15ビットのゼロを付加して、27ビットの値とした上で、特定の勾配方向の第1階層データが表わす、座標(x1、y1)の下位16ビットの積算強度値を加算して、特定の勾配方向に対する座標(x1,y1)の積算強度値を算出する。
【0088】
そして、特定の勾配方向について算出された4つの座標の各々の積算強度値に基づいて、上記(5)式に従って、特定の勾配方向についての、探索範囲の積算強度値を算出する。8方向の勾配方向の各々について、探索範囲の積算強度値を算出し、8方向の勾配方向の探索範囲の積算強度値に基づいて、各勾配方向の積算強度値を表わす勾配ヒスグラムを算出する。
【0089】
次に、第2の実施の形態に係る識別処理ルーチンについて、図13を用いて説明する。なお、第1の実施の形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【0090】
まず、ステップ100において、撮像装置12から撮像画像を取得し、撮像画像から、各勾配方向の勾配値画像を生成する。そして、ステップ250において、各勾配方向について、上記ステップ100で生成した勾配値画像から、各画素の積算強度値を算出しながら、第1階層データの値及び第2階層データの値を算出して、各勾配方向の第1階層データ及び第2階層データを生成する。
【0091】
次のステップ108では、上記ステップ100で取得した撮像画像上に、探索範囲を設定し、ステップ252において、上記ステップ108で設定された探索範囲について、上記ステップ250で算出された各勾配方向の第1階層データ及び第2階層データに基づいて、勾配ヒストグラムを算出する。
【0092】
そして、ステップ112において、上記ステップ252で算出された勾配ヒストグラムに基づいて、上記ステップ100で取得した撮像画像における探索範囲の画像が、歩行者を表わす歩行者画像であるか否かを識別する。次のステップ114では、全ての探索範囲について、上記ステップ108、252、112の処理を実行したか否かを判定し、全ての探索範囲について上記の処理を実行したと判定された場合には、ステップ116において、上記ステップ112における識別結果を表示装置16に表示して、識別処理ルーチンを終了する。
【0093】
以上説明したように、第2の実施の形態に係る対象物識別装置によれば、各勾配方向について、各画素の積算強度値の下位nビットを表わす第1積算値データ、及び密度を粗くした各画素の積算強度値の上位mビットを表わす第2積算値データを生成することにより、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの探索範囲について、勾配ヒストグラムを算出して、処理対象物を表わす画像であるか否かを識別することができる。
【0094】
なお、上記の実施の形態では、第1階層データが表わす下位ビットと、第2階層データが表わす上位ビットが、1ビットだけオーバーラップしている場合を例に説明したが、これに限定されるものではなく、2ビット以上がオーバーラップしてもよい。
【0095】
次に、第3の実施の形態について説明する。なお、第1の実施の形態と同様となる部分については、同一符号を付して説明を省略する。
【0096】
第3の実施の形態では、探索範囲の輝度積算値を算出して、識別処理を行っている点が、第1の実施の形態と異なっている。
【0097】
第3の実施の形態に係る対象物識別装置のコンピュータ14では、画像取得部20によって、撮像装置12から撮像された画像を取得する。領域分割部22は、画像取得部20により取得した撮像画像を、複数の小領域に分割する。
【0098】
第1階層算出部24は、撮像画像に基づいて、小領域毎に、上記(3)式と同様の式に従って、各画素(x、y)の輝度積算値を算出し、小領域毎の積算値画像を表わす第1階層データを生成する。
【0099】
また、第2階層算出部24は、撮像画像に基づいて、上記(4)式と同様の式に従って、各小領域の原点に相当する画素(x、y)における輝度積算値を算出し、小領域の原点に相当する画素における輝度積算値を集めた第2階層データを生成する。
【0100】
図14に示すように、識別部30は、探索範囲設定部40と、探索範囲について、輝度積算値を算出する積算値算出部342と、算出された輝度積算値と、学習モデル記憶部28に記憶された学習モデルとに基づいて、探索範囲の画像が歩行者を撮像した画像であるか否かを識別する判定部344とを備えている。探索範囲設定部40、積算値算出部342、及び判定部344の各処理は、探索範囲をずらしながら、繰り返し行われる。
【0101】
積算値算出部342は、設定された探索範囲の輝度積算値を、以下のように算出する。なお、4つの座標(x1,y1)、座標(x2,y1)、座標(x1,y2)、座標(x2,y2)に位置する画素(x1<x2、y1<y2)を四隅(角)とする探索範囲について算出する場合を例に説明する。
【0102】
まず、第1階層データ及び第2階層データに基づいて、4つの座標の各々の輝度積算値を算出する。例えば、座標(x1,y1)について、第1階層データにおける座標(x1、y1)の輝度積算値(座標(x1、y1)が属する小領域の積算値画像における座標(x1、y1)の輝度積算値)と、第2階層データが表わす、座標(x1、y1)が属する小領域の原点に相当する画素の輝度積算値とを加算して、座標(x1,y1)の輝度積算値を算出する。
【0103】
そして、算出された4つの座標の各々の輝度積算値に基づいて、上記(5)式に従って、探索範囲の輝度積算値を算出する。
【0104】
積算値算出部342は、複数の探索範囲の各々に対して、繰り返し、輝度積算値を算出する。
【0105】
判定部344は、学習モデル記憶部28に記憶された学習モデルと、積算値算出部342により算出された輝度積算値とに基づいて、従来既知のSVM識別器を用いて、探索範囲の画像が歩行者を撮像した画像であるか否かを識別し、識別結果を、表示装置16に表示させる。
【0106】
第3の実施の形態に係る識別処理ルーチンでは、撮像装置12から撮像画像を取得し、取得した撮像画像を、均等に複数の小領域に分割する。そして、第1階層データを生成し、第2階層データを生成する。
【0107】
次に、取得した撮像画像上に、探索範囲を設定し、設定された探索範囲について、第1階層データ及び第2階層データに基づいて、輝度積算値を算出する。
【0108】
そして、算出された輝度積算値に基づいて、予め求められた学習モデル及びSVM識別器を用いて、上記で取得した撮像画像における探索範囲の画像が、歩行者を表わす歩行者画像であるか否かを識別する。全ての探索範囲について、上記の識別処理を実行するまで繰り返し、識別結果を表示装置16に表示して、識別処理ルーチンを終了する。
【0109】
このように、小領域毎に各画素の輝度積算値を表わす第1積算値データと、小領域の各々の原点に対応する座標の輝度積算値を集めた第2積算値データとを算出することにより、少ないメモリ容量及び計算量で、任意の場所であって任意の大きさの探索範囲について輝度積算値を算出して、処理対象物を表わす画像であるか否かを識別することができる。
【0110】
また、インテグラルイメージを階層構造にすることにより、データ量を削減したインテグラルイメージを提供することができる。
【0111】
なお、上記の実施の形態で説明したインテグラルイメージの算出方法を、上記第2の実施の形態で説明した第1階層データ及び第2階層データの算出方法に適用してもよい。
【0112】
また、上記の第1の実施の形態〜第3の実施の形態では、SVM識別器を用いて、画像の識別処理を行う場合を例に説明したが、これに限定されるものではなく、従来既知の他の識別手法(例えば、最近傍識別、線形判別など)を用いて、画像の識別処理を行うようにしてもよい。
【0113】
また、撮像画像が、識別対象物としての歩行者を撮像した画像であるか否かを識別する対象物識別装置に、本発明を適用した場合を例に説明したが、これに限定されるものではなく、撮像画像から、検出対象物としての歩行者を表わす領域を検出する対象物検出装置に、本発明を適用してもよい。例えば、撮像画像から得られる探索範囲の勾配ヒストグラムと、歩行者を表わす領域について予め求められた勾配ヒストグラムとを比較することにより、撮像画像から、歩行者を表わす領域を検出するようにしてもよい。
【0114】
また、撮像装置から撮像画像を取得し、識別対象の画像とした場合を例に説明したが、これに限定されるものではなく、ハードディスク装置から画像データを読み込み、読み込んだ画像データを、識別対象の画像としてもよい。
【0115】
また、識別対象物が人物である場合を例に説明したが、これに限定されるものではなく、人物以外の物体を識別対象物としてもよい。
【0116】
なお、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムをCD‐ROM等の記憶媒体に格納して提供することも可能である。
【符号の説明】
【0117】
10、210 対象物識別装置
12 撮像装置
14、214 コンピュータ
16 表示装置
20 画像取得部
22 領域分割部
24 第1階層算出部
26 第2階層算出部
30 識別部
40 探索範囲設定部
42 勾配ヒストグラム算出部
44、344 判定部
224 階層データ算出部
342 積算値算出部

【特許請求の範囲】
【請求項1】
処理対象の画像を分割した小領域毎に、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出して、小領域毎に各画素の前記積算値を表わす第1積算値データを生成する第1算出手段と、
前記処理対象の画像における、前記小領域の各々の原点に対応する座標の前記積算値を算出して、前記小領域の各々の原点に対応する座標の前記積算値を表わす第2積算値データを生成する第2算出手段と、
を含む画像処理装置。
【請求項2】
処理対象の画像から、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出し、前記算出された各画素の積算値の下位nビットを表わす第1積算値データ、及び前記算出された各画素の積算値であって、かつ、全画素より少ない画素数となるように定められた各画素の積算値の、前記下位nビットの上位ビットを含む上位mビットを表わす第2積算値データを生成する算出手段
を含む画像処理装置。
【請求項3】
前記処理対象の画像を、複数の勾配方向毎に、各画素の勾配強度を表わした勾配値画像とし、
前記第1算出手段は、前記複数の勾配方向毎に、前記第1積算値データを生成し、
前記第2算出手段は、前記複数の勾配方向毎に、前記第2積算値データを生成する請求項1記載の画像処理装置。
【請求項4】
前記処理対象の画像を、複数の勾配方向毎に、各画素の勾配強度を表わした勾配値画像とし、
前記算出手段は、前記複数の勾配方向毎に、前記第1積算値データ及び前記第2積算値データを生成する請求項2記載の画像処理装置。
【請求項5】
前記第1積算値データ及び前記第2積算値データに基づいて、前記処理対象の画像が処理対象物を表わす画像であるか否かを識別するか、又は前記処理対象の画像から前記処理対象物を表わす領域を検出する画像処理手段を更に含む請求項1〜請求項4の何れか1項記載の画像処理装置。
【請求項6】
前記画像処理手段は、前記第1積算値データ及び前記第2積算値データに基づいて、前記処理対象の画像に設定した探索範囲に対して、前記探索範囲の積算値を算出し、前記探索範囲の積算値に基づいて、前記処理対象の画像が処理対象物を表わす画像であるか否かを識別するか、又は前記処理対象の画像から前記処理対象物を表わす領域を検出する請求項5記載の画像処理装置。
【請求項7】
前記第1積算値データ及び前記第2積算値データに基づいて、前記処理対象の画像に設定した探索範囲に対して、前記複数の勾配方向毎に前記探索範囲の積算値を算出し、前記探索範囲における、前記勾配方向の各々に対して前記積算値を要素とする勾配ヒストグラムを算出し、前記勾配ヒストグラムに基づいて、前記処理対象の画像が処理対象物を表わす画像であるか否かを識別するか、又は前記処理対象の画像から前記処理対象物を表わす領域を検出する画像処理手段を更に含む請求項3又は4記載の画像処理装置。
【請求項8】
コンピュータを、
処理対象の画像を分割した小領域毎に、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出して、小領域毎に各画素の前記積算値を表わす第1積算値データを生成する第1算出手段、及び
前記処理対象の画像における、前記小領域の各々の原点に対応する座標の前記積算値を算出して、前記小領域の各々の原点に対応する座標の前記積算値を表わす第2積算値データを生成する第2算出手段
として機能させるためのプログラム。
【請求項9】
コンピュータを、
処理対象の画像から、予め定められた原点と座標(x、y)を対角とする矩形領域内の画素値の総和を、座標(x、y)における積算値として、各画素について算出し、前記算出された各画素の積算値の下位nビットを表わす第1積算値データ、及び前記算出された各画素の積算値であって、かつ、全画素より少ない画素数となるように定められた各画素の積算値の、前記下位nビットの上位ビットを含む上位mビットを表わす第2積算値データを生成する算出手段
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2011−203853(P2011−203853A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−68690(P2010−68690)
【出願日】平成22年3月24日(2010.3.24)
【出願人】(000003609)株式会社豊田中央研究所 (4,200)
【Fターム(参考)】