(57)【要約】【課題】検出対象の物体の検出ミスを防止する。【解決手段】輝度勾配算出部３が、画像データ中の画素における輝度の変化率を示す輝度勾配を算出し、ヒストグラム算出部４が、所定の大きさの画像領域ごとに区切られた画像データの画像領域に対して、輝度勾配の所定の角度範囲ごとをデータ区間とするヒストグラムを算出し、シフト部５が、ヒストグラムのデータ区間をシフトさせてヒストグラムを変更し、類似度算出部６が、シフト部５でデータ区間がシフトされた画像領域のヒストグラムと、ヒストグラム算出部４で算出された他の画像領域のヒストグラムとの間の類似度を算出し、物体検出部８が、類似度を特徴量に用いて、画像データから検出対象の物体を検出する。【選択図】図１
2012098983.tif 000002
【特許請求の範囲】
【請求項１】
画像データ中の画素における輝度の変化率を示す輝度勾配を算出する輝度勾配算出部と、
所定の大きさの画像領域ごとに区切られた前記画像データの前記画像領域に対して、前記輝度勾配の所定の角度範囲ごとをデータ区間とするヒストグラムを算出するヒストグラム算出部と、
前記ヒストグラムの前記データ区間をシフトさせて前記ヒストグラムを変更するシフト部と、
前記シフト部で前記データ区間がシフトされた前記画像領域の前記ヒストグラムと、前記ヒストグラム算出部で算出された他の前記画像領域の前記ヒストグラムとの間の類似度を算出する類似度算出部と、
前記類似度を特徴量に用いて、前記画像データから検出対象の物体を検出する物体検出部と、
を有することを特徴とする物体検出装置。
【請求項２】
前記類似度は、前記データ区間がシフトされた前記画像領域の前記ヒストグラムと、他の前記画像領域の前記ヒストグラムとの重なりの度合いであることを特徴とする請求項１に記載の物体検出装置。
【請求項３】
前記類似度算出部は、前記重なりの度合いを、前記データ区間がシフトされた前記画像領域の前記ヒストグラムと、他の前記画像領域の前記ヒストグラムのうち、各前記データ区間で大きい方の値の総和で正規化することを特徴とする請求項２に記載の物体検出装置。
【請求項４】
画像データ中の画素における輝度の変化率を示す輝度勾配を算出し、
所定の大きさの画像領域ごとに区切られた前記画像データの前記画像領域に対して、前記輝度勾配の所定の角度範囲ごとをデータ区間とするヒストグラムを算出し、
前記ヒストグラムの前記データ区間をシフトさせて前記ヒストグラムを変更し、
前記データ区間がシフトされた前記画像領域の前記ヒストグラムと、他の前記画像領域の前記ヒストグラムとの間の類似度を算出し、
前記類似度を特徴量に用いて、前記画像データから検出対象の物体を検出することを特徴とする物体検出方法。
【請求項５】
コンピュータに、
画像データ中の画素における輝度の変化率を示す輝度勾配を算出し、
所定の大きさの画像領域ごとに区切られた前記画像データの前記画像領域に対して、前記輝度勾配の所定の角度範囲ごとをデータ区間とするヒストグラムを算出し、
前記ヒストグラムの前記データ区間をシフトさせて前記ヒストグラムを変更し、
前記データ区間がシフトされた前記画像領域の前記ヒストグラムと、他の前記画像領域の前記ヒストグラムとの間の類似度を算出し、
前記類似度を特徴量に用いて、前記画像データから検出対象の物体を検出する処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体検出装置、物体検出方法及びプログラムに関する。
【背景技術】
【０００２】
カメラなどで撮影した画像から自動的に物体を検出する技術は、自動車や人の監視システムなど、多岐にわたって利用されている。
画像を所定の大きさの画像領域（以下セルと呼ぶ）ごとに格子状に区切り、セル内の各画素の輝度勾配角度をデータ区間とする輝度勾配方向ヒストグラム（ＨＯＧ：Histograms of Oriented Gradients）を特徴量に用いて、物体の検出を行う技術が知られている。
【０００３】
また、複数のＨＯＧ特徴を組み合わせて物体検出を行うＪｏｉｎｔ  ＨＯＧと呼ばれる手法や、異なる角度を持つ画素のペアの各セルにおける出現数を特徴量として物体検出を行うＣｏＨＯＧ（Co-occurrence HOG）と呼ばれる手法が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−０４４４３８号公報
【特許文献２】特開２０１０−０５５１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、光沢変化などの影響で輝度勾配ヒストグラム分布が変わると、検出対象の物体と他の部分とを判別する特徴量が変化し、物体を正しく検出できない場合がある、という問題があった。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、画像データ中の画素における輝度の変化率を示す輝度勾配を算出する輝度勾配算出部と、所定の大きさの画像領域ごとに区切られた前記画像データの前記画像領域に対して、前記輝度勾配の所定の角度範囲ごとをデータ区間とするヒストグラムを算出するヒストグラム算出部と、前記ヒストグラムの前記データ区間をシフトさせて前記ヒストグラムを変更するシフト部と、前記シフト部で前記データ区間がシフトされた前記画像領域の前記ヒストグラムと、前記ヒストグラム算出部で算出された他の前記画像領域の前記ヒストグラムとの間の類似度を算出する類似度算出部と、前記類似度を特徴量に用いて、前記画像データから検出対象の物体を検出する物体検出部と、を有する物体検出装置が提供される。
【発明の効果】
【０００７】
開示の物体検出装置、物体検出方法及びプログラムによれば、物体の検出ミスを低減できる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施の形態の物体検出装置の一例を示す図である。
【図２】画像データ中の、ある２つのセルの一例を示す図である。
【図３】輝度勾配のヒストグラムの一例を示す図である。
【図４】ヒストグラムのシフトの一例を示す図である。
【図５】２つのセルのヒストグラムの重なりの度合いの一例を示す図である。
【図６】物体検出処理の一例の流れを示すフローチャートである。
【図７】第２の実施の形態の物体検出装置の一例を示す図である。
【図８】検出窓領域の走査例を示す図である。
【図９】ある画像データ中の画素座標の一例を示す図である。
【図１０】ある画像データにおけるセル内外の輝度値の一例を示す図である。
【図１１】セルの輝度勾配の角度の一例を示す図である。
【図１２】セルの輝度勾配の大きさの一例を示す図である。
【図１３】ヒストグラムの一例を示す図である。
【図１４】学習処理の一例の流れを示すフローチャートである。
【図１５】セルの設定例を示す図である。
【図１６】重み値の更新と弱識別器の選択処理の一例を示すフローチャートである。
【図１７】クラス分類パラメータの格納例を示す図である。
【図１８】物体の有無を判別する処理の一例を示すフローチャートである。
【図１９】本実施の形態に用いるコンピュータのハードウェアの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の物体検出装置の一例を示す図である。
【００１０】
物体検出装置１は、画像取得部２、輝度勾配算出部３、ヒストグラム算出部４、シフト部５、類似度算出部６、記憶部７、物体検出部８を有している。
画像取得部２は、物体検出装置１の外部から画像データを取得する。例えば、画像データは、カメラやビデオなどの撮像装置、ＤＶＤ（Digital Versatile Disc）などの記録媒体、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）などから入力される。
【００１１】
輝度勾配算出部３は、画像データ中の画素における輝度の変化率を示す輝度勾配を算出する。輝度勾配は、例えば、輝度の勾配方向（勾配角度）と勾配の大きさで表される。
ヒストグラム算出部４は、所定の大きさのセルごとに格子状に区切られた画像データのセルにおいて、輝度勾配の所定の角度範囲ごとをデータ区間とし、画素数あるいは勾配の大きさの積算を度数とするヒストグラムを算出する。勾配方向の向きを無視する場合、勾配角度は、０度から１８０度の範囲となる。
【００１２】
図２は、画像データ中の、ある２つのセルの一例を示す図である。
また、図３は、輝度勾配のヒストグラムの一例を示す図である。
図２では例として、車両の画像データ１０が示されている。画像データ１０中の領域１１におけるセル１１−１，１１−２（例えば、５×５画素）において、算出される輝度勾配のヒストグラムの例が図３に示されている。
【００１３】
図３（Ａ）はセル１１−１におけるヒストグラム、図３（Ｂ）はセル１１−２におけるヒストグラムの一例を示している。横軸は勾配角度（度）、縦軸は度数を示している。
各ヒストグラムは、２０度のデータ区間ごとの度数で示されている。例えば、セル１１−１では、８０度〜１００度における度数が最大である。つまり、垂直方向の輝度の変化が大きいということであるので、セル１１−１には水平方向のエッジが最も多く含まれていることが分かる。また、セル１１−２では、１６０度〜１８０度における度数が最大であることから、セル１１−２には垂直方向のエッジが最も多く含まれていることが分かる。
【００１４】
なお、データ区間は、２０度ごとに限定されるわけではなく、１０度ごとなどと細かくしてもよいし、逆に広くとってもよい。データ区間は、計算時間などとの関係で適宜設定される。
【００１５】
シフト部５は、ヒストグラム算出部４で算出されたヒストグラムのデータ区間を所定回数シフトして、ヒストグラムを変更する。
図４は、ヒストグラムのシフトの一例を示す図である。
【００１６】
図４には、図３に示したセル１１−２のヒストグラムが４回シフトされた例が示されている。すなわち、勾配角度が０度〜２０度のデータ区間が、１６０〜１８０度のデータ区間の右隣にシフトされ、さらに２０度〜４０度のデータ区間、４０度〜６０度のデータ区間、６０度〜８０度のデータ区間が続いてシフトされている。
【００１７】
類似度算出部６は、データ区間がシフトされたセルのヒストグラムと、ヒストグラム算出部４で算出された他のセルのヒストグラムとの間の類似度を算出する。類似度算出部６は、例えば、２つのヒストグラムの重なりの度合い（以下重なり率という）を類似度として算出する。また、類似度算出部６は、２つのヒストグラムの度数の差分を類似度として用いてもよい。
【００１８】
図５は、２つのセルのヒストグラムの重なりの度合いの一例を示す図である。横軸がデータ区間を示し、縦軸が度数を示している。
各データ区間において、左側のバーが図３（Ａ）に示したセル１１−１のヒストグラムの一例を示し、右側のバーが図４に示したデータ区間を４回シフトしたセル１１−２のヒストグラムの一例を示している。
【００１９】
ヒストグラムの重なり率は、同一データ区間における２つのセルの度数から、値の小さい方（図５の白抜きのバーの方）を選択し、全てのデータ区間についての和を計算することで求められる。
【００２０】
記憶部７は、類似度算出部６で算出された類似度を特徴量として学習が行われた結果によって得られる分類パラメータを格納する。分類パラメータは、類似度算出部６で求められた類似度（特徴量）から、画像データに、検出対象の物体があると見なすか否かを判定するために用いられる。学習に関する処理については後述する。
【００２１】
物体検出部８は、類似度算出部６で算出された類似度を特徴量に用いて、記憶部７に格納された分類パラメータを参照して、画像データから検出対象の物体を検出する。物体検出処理の詳細は後述する。
【００２２】
以下、物体検出装置１による物体検出処理の流れをまとめる。
図６は、物体検出処理の一例の流れを示すフローチャートである。
ステップＳ１：画像取得部２が、物体検出装置１の外部から画像データを取得する。
【００２３】
ステップＳ２：輝度勾配算出部３が、画像データ中の画素における輝度の変化率を示す輝度勾配を算出する。
ステップＳ３：ヒストグラム算出部４が、所定の大きさのセルごとに区切られた画像データの、ある着目しているセルにおいて、輝度勾配の角度をデータ区間とし、画素数あるいは勾配の大きさの積算を度数とするヒストグラムを算出する。
【００２４】
ステップＳ４：シフト部５が、ヒストグラム算出部４で算出されたヒストグラムのデータ区間を所定回数シフトして、ヒストグラムを変更する。
ステップＳ５：類似度算出部６が、シフト部５でデータ区間がシフトされたセルのヒストグラムと、ヒストグラム算出部４で算出された他のセルのヒストグラムとの間の類似度を算出する。
【００２５】
ステップＳ６：類似度算出部６で算出された類似度を特徴量に用いて、記憶部７に格納された分類パラメータを参照して、画像データから検出対象の物体を検出する。
以上のように、物体検出装置１では、画像データ中のあるセルにおける輝度勾配のヒストグラムと、他のセルにおけるデータ区間をシフトしたヒストグラムとの類似度を特徴量として画像中の物体検出を行う。そのため、光沢変化などの影響で輝度勾配ヒストグラム分布が変わっても、検出対象の物体と他の部分とを判別する特徴量が変化しにくくなる。これにより、物体の検出ミスを低減することができる。
【００２６】
また、あるセルにおける輝度勾配のヒストグラムと、他のセルにおけるデータ区間をシフトしたヒストグラムとの類似度を算出して特徴量に用いるため、エッジの連結状態や離れたエッジ間の関連性を特徴量として表現でき、これらを考慮した物体検出が可能になる。
【００２７】
（第２の実施の形態）
図７は、第２の実施の形態の物体検出装置の一例を示す図である。
物体検出装置５０は、画像取得部５１、検出窓走査部５２、輝度勾配算出部５３、ヒストグラム算出部５４、シフト部５５、類似度算出部５６、学習部５７、記憶部５８、物体検出部５９を有している。
【００２８】
以下、各部を詳細に説明する。
（画像取得部５１）
画像取得部５１は、例えば、物体検出装置５０の外部の入力デバイスから画像データを取得する。入力デバイスはカメラ以外でもよく、ビデオ、ＤＶＤなどの記録媒体、ＨＤＤ上に格納されている動画ファイルから切り出した画像を、画像取得部５１が取得するようにしてもよい。
【００２９】
画像データは、例えば、横６４０画素×縦４８０画素の矩形で与えられ、１つの画素は、明るさの階調値（輝度）で与えられる。例えば、後述の図９に示す例のように、整数ｉ，ｊ で示される座標（ｉ，ｊ）の画素の輝度（Ｉ）の階調値は、８ｂｉｔのディジタル値などで与えられる。
【００３０】
（検出窓走査部５２）
検出窓走査部５２は、物体の検出処理を実施する際、入力された未知の画像データ（例えば、画像サイズ＝６４０×４８０画素）内に、検出窓領域（後述する学習処理時の訓練画像と同一の画像サイズ）を設定する。そして、検出窓走査部５２は、処理時間を考慮して、検出窓領域を適当な画素数刻みで走査する。
【００３１】
図８は、検出窓領域の走査例を示す図である。
画像データ６０に対して、検出窓領域６１を設定した例が示されている。検出窓走査部５２は、検出窓領域６１を未知の画像データ上で、例えば、図８の矢印方向に、適当な画素数刻みで移動させる。検出窓走査部５２は、対象物体が検出されない領域（例えば、図８の領域６２）が予め分っている場合には、検出窓領域６１の走査対象から除外することによって処理時間を短縮可能である。
【００３２】
（輝度勾配算出部５３）
輝度勾配算出部５３は、画像データ中の画像における輝度の変化率である輝度勾配を算出する。輝度勾配の算出法として様々な方法が適用可能であるが、ここでは、最も単純な以下の方法を用いるとする。
【００３３】
図９は、ある画像データ中の画素座標の一例を示す図である。画像データ７０における、ある領域の画素座標が整数ｉ，ｊにて示されている。
図９中の座標（ｉ，ｊ）の画素７１における輝度の勾配角度θ（ｉ，ｊ）は、画素７１の上下左右の画素７２，７３，７４，７５の輝度Ｉ（ｉ，ｊ＋１），Ｉ（ｉ−１，ｊ），Ｉ（ｉ，ｊ−１），Ｉ（ｉ＋１，ｊ）を用いて次式で表される。
【００３４】
【数１】
2012098983.tif 000003
【００３５】
また、座標（ｉ，ｊ）における輝度勾配の大きさη（ｉ，ｊ）は、次式で表される。
【００３６】
【数２】
2012098983.tif 000004
【００３７】
図１０は、ある画像データにおけるセル内外の輝度値の一例を示す図である。図１０では、横５画素、縦５画素のセル８０が示されている。
このようなセル８０において、輝度の勾配角度は、上記の式（１）により、以下に示すような値となる。
【００３８】
図１１は、セルの輝度勾配の角度の一例を示す図である。図１１中の数値は各画素位置における輝度の勾配角度（単位は度）を示している。
また、セル８０の各画素位置における輝度勾配の大きさは、上記の式（２）により、以下に示すような値となる。
【００３９】
図１２は、セルの輝度勾配の大きさの一例を示す図である。図１２中の数値は各画素位置における輝度勾配の大きさを示している。
（ヒストグラム算出部５４）
ヒストグラム算出部５４は、所定の大きさのセルごとに区切られた画像データの、ある着目しているセルにおいて、輝度の勾配角度をデータ区間とし、画素数あるいは勾配の大きさの積算を度数とするヒストグラムを算出する。勾配方向の向きを無視する場合、輝度の勾配角度は、０度から１８０度の範囲となる。データ区間数をＮＤとすると、１つの区間の角度の範囲は、１８０／ＮＤ度となる。
【００４０】
ヒストグラム算出部５４は、各区間に該当する勾配角度について、例えば、図３に示したように、対応する勾配の大きさを度数とするヒストグラムを算出する。
図１１、図１２に示したようなセル８０の輝度の勾配角度及び大きさからは以下のようなヒストグラムが算出される。
【００４１】
図１３は、ヒストグラムの一例を示す図である。横軸は勾配角度（度）、縦軸は度数を示している。
図１３に示されるヒストグラムは、２０度のデータ区間ごとの度数で示されている。このヒストグラムの例では、勾配角度が０〜２０度のデータ区間における度数が最大であることから、セル８０には垂直方向のエッジが最も多く含まれていることが分かる。
【００４２】
（シフト部５５）
シフト部５５は、ヒストグラム算出部５４が算出したヒストグラムのデータ区間を所定回数シフトして、ヒストグラムを変更する。ヒストグラムのデータ区間数をＮＤとすると、シフト回数ＮＳは、０≦ＮＳ＜ＮＤ、を満たす整数値で与えられる。
【００４３】
例えば、前述のように、図３（Ｂ）に示したヒストグラムを４回シフトすると、図４の下図に示すようなヒストグラムが得られる。
（類似度算出部５６）
類似度算出部５６は、シフト部５５でデータ区間がシフトされたセルのヒストグラムと、ヒストグラム算出部５４で算出された他のセルのヒストグラムとの間の類似度を算出する。ここでは、以下に示すヒストグラムの重なり率を類似度として算出する。
【００４４】
ヒストグラムの重なり率Ｓは、次式で表される。
【００４５】
【数３】
2012098983.tif 000005
【００４６】
ここで、Ｈiはｉ番目のセルのヒストグラム、ｈk(i)はｉ番目のセルのヒストグラムのｋ番目のデータ区間の度数、Ｈjはｊ番目のセルのヒストグラム、ｈk(j)はｊ番目のヒストグラムのｋ番目のデータ区間の度数、ＮＤはデータ区間の総数を示している。
【００４７】
（学習部５７）
学習部５７は、ヒストグラムの重なり率を特徴量として、正例画像（検出対象の物体がある画像）と負例画像（検出対象の物体がない画像）とを判別するためのクラス分類パラメータを算出する。クラス分類学習法として、Ｒｅａｌ  Ａｄａｂｏｏｓｔ、サポートベクターマシン、決定木などの学習方法が適用可能である。
【００４８】
（記憶部５８）
記憶部５８は、学習部５７で算出されたクラス分類パラメータを格納する。記憶部５８に格納されたクラス分類パラメータは、物体検出部５９での物体検出時に参照される。
【００４９】
（物体検出部５９）
物体検出部５９は、類似度算出部５６で算出された類似度を特徴量に用いて、記憶部５８に格納されたクラス分類パラメータを参照して、画像データから検出対象の物体を検出する。
【００５０】
以下、物体検出装置５０の動作を説明する。まず、学習時の処理を説明する。
（学習処理）
なお、以下では、学習部５７が、クラス分類学習法として、Ｒｅａｌ  Ａｄａｂｏｏｓｔを用いて学習を行う場合を例にして説明を行う。
【００５１】
図１４は、学習処理の一例の流れを示すフローチャートである。
学習部５７がクラス分類パラメータを算出するために、画像取得部５１には、訓練画像データとして、正例及び負例の画像データが、例えば、それぞれ数百枚から数千枚入力される。正例の画像データは、検出対象の物体のみが写っている領域を切り出した画像データである。負例の画像データは、検出対象の物体が写っていない画像領域を切り出した画像データであり、正例の画像データと同じ画像サイズを持つ。
【００５２】
例えば、画像取得部５１は、まず、訓練画像データの番号ｍを初期化（ｍ＝１）し（ステップＳ１０）、ｍ番目の訓練画像データを取得する（ステップＳ１１）。
そして、ヒストグラム算出部５４は、訓練画像データをセル単位に分割し、輝度勾配算出部５３により算出される輝度勾配をもとに、全セルについて、輝度勾配のヒストグラムを算出する（ステップＳ１２）。
【００５３】
図１５は、セルの設定例を示す図である。
例えば、訓練画像データ９０の画像サイズを横４５画素、縦４５画素とし、セルのサイズを５×５画素とすると、セルの総数は８１個となる。
【００５４】
ヒストグラム算出部５４は、例えば、訓練画像データ９０の左上のセルを先頭として、各セルにセル番号ｎｃｅｌｌを割り振る。セル番号は、０≦ｎｃｅｌｌ＜Ｎｃｅｌｌの関係を満たす。ここで、Ｎｃｅｌｌは、セルの総数を示し、図１５の例の場合、Ｎｃｅｌｌ＝８１である。
【００５５】
類似度算出部５６は、これらのセルの中から２つのセルを選択して、ヒストグラムの類似度の算出を行うことになる。なお、２つのセルが同じセルである場合も許容するものとする。例えば、８１個のセルから２つを選択する組み合わせの数（重複組み合わせ数）は、８１Ｈ２＝３３２１個である。
【００５６】
以下では、類似度算出部５６が選択する２つのセルを第１のセル、第２のセルと呼ぶ。また、第１のセルのセル番号をｎｃｅｌｌ１、第２のセルのセル番号をｎｃｅｌｌ２とする。
【００５７】
類似度算出部５６は、第１のセルのセル番号ｎｃｅｌｌ１と、特徴量ベクトルの要素番号ｋを初期化する（ステップＳ１３）。ここでは、類似度算出部５６は、ｎｃｅｌｌ１＝０、ｋ＝０とする。
【００５８】
また、類似度算出部５６は、第２のセルのセル番号ｎｃｅｌｌ２を初期化する（ステップＳ１４）。具体的には、類似度算出部５６は、ｎｃｅｌｌ２＝ｎｃｅｌｌ１とする。すなわち、初期状態では、ｎｃｅｌｌ１＝ｎｃｅｌｌ２＝０のセルが、第１のセル及び第２のセルとして選択される。
【００５９】
続いてシフト部５５は、シフト回数ＮＳをＮＳ＝０と初期化し（ステップＳ１５）、第２のセルのヒストグラムのデータ区間をＮＳ回シフトする（ステップＳ１６）。
その後、類似度算出部５６は、式（３）より、第１のセルのヒストグラムと、ＮＳ回シフトした第２のセルのヒストグラムの重なり率Ｓ（Ｈncell1，Ｈncell2）を算出して、これを特徴量ベクトルｖm（ｋ）とする（ステップＳ１７）。なお、Ｈncell1は、第１のセルのヒストグラム、Ｈncell2はＮＳ回シフトした第２のセルのヒストグラムを示している。
【００６０】
その後、シフト部５５は、シフト回数ＮＳをＮＳ＝ＮＳ＋１と更新する（ステップＳ１８）。そして、シフト部５５は、シフト回数ＮＳがヒストグラムのデータ区間数ＮＤに達したか否かを判定する（ステップＳ１９）。ＮＳ＜ＮＤである場合には、ステップＳ１６からの処理が繰り返され、ＮＳ＝ＮＤとなった場合には、ステップＳ２０の処理が行われる。
【００６１】
例えば、図３や図１３で示したようなヒストグラムの場合、データ区間数ＮＤは９である。この場合、シフト部５５は、第２のセルに対して、９個のヒストグラムを生成することになる。
【００６２】
シフト回数ＮＳがデータ区間数ＮＤに達した場合、類似度算出部５６は、ｎｃｅｌｌ２＝ｎｃｅｌｌ２＋１として、第２のセルを更新する（ステップＳ２０）。そして、類似度算出部５６は、ｎｃｅｌｌ２が、セルの総数Ｎｃｅｌｌに達したか否かを判定する（ステップＳ２１）。ｎｃｅｌｌ２＜Ｎｃｅｌｌである場合には、ステップＳ１５からの処理が繰り返され、ｎｃｅｌｌ２＝Ｎｃｅｌｌとなった場合には、ステップＳ２２の処理が行われる。
【００６３】
第２のセルのセル番号ｎｃｅｌｌ２がセルの総数Ｎｃｅｌｌに達した場合、類似度算出部５６は、ｎｃｅｌｌ１＝ｎｃｅｌｌ１＋１として、第１のセルを更新する（ステップＳ２２）。そして、類似度算出部５６は、ｎｃｅｌｌ１が、セルの総数Ｎｃｅｌｌに達したか否かを判定する（ステップＳ２３）。ｎｃｅｌｌ１＜Ｎｃｅｌｌである場合には、ステップＳ１４からの処理が繰り返され、ｎｃｅｌｌ１＝Ｎｃｅｌｌとなった場合には、ステップＳ２４の処理が行われる。
【００６４】
図１５に示した例の場合、ｎｃｅｌｌ１＝Ｎｃｅｌｌ（＝８１）となった時点での特徴量ベクトルの次元数Ｄｉｍは、ヒストグラムのデータ区間数ＮＤを９とした場合、３３２１（第１のセルと第２のセルの重複組み合わせ数）×９＝２９８８９となる。すなわち、訓練画像データの枚数１枚当たり、次元数２９８８９の特徴量ベクトルが算出される。
【００６５】
次に、画像取得部５１は、訓練画像データの番号ｍをｍ＋１に更新する（ステップＳ２４）。そして、画像取得部５１は、訓練画像データの番号ｍが訓練画像データの総数Ｍ以下であるか否かを判定する（ステップＳ２５）。ｍ≦Ｍである場合には、ステップＳ１１からの処理が繰り返される。訓練画像データの番号ｍが訓練画像データの総数Ｍを超えた場合、ステップＳ２６の処理が行われる。
【００６６】
ステップＳ２５までの処理で算出された特徴量ベクトルは、学習部５７に送られ、以下の処理が行われる。
学習部５７は、特徴量ベクトルｖm（ｋ）の要素番号ｋ（１≦ｋ≦Ｄｉｍ）を固定し、訓練画像データの番号ｍを変えたときの特徴量ベクトルｖm（ｋ）の最大値ＶMAX（ｋ）を算出する（ステップＳ２６）。
【００６７】
最大値ＶMAX（ｋ）は、ＶMAX（ｋ）＝ＭＡＸ（ｖ1（ｋ），ｖ2（ｋ），…，ｖM（ｋ））で求められる。この式で、ＭＡＸ（）は、最大値を出力する関数である。
次に学習部５７は、最大値ＶMAX（ｋ）を用いて、特徴量ベクトルを正規化し、正規化特徴量ベクトルを求める（ステップＳ２７）。
【００６８】
正規化特徴量ベクトルは、［ｖm（１）／ｖMAX（１）…ｖm（ｋ）／ｖMAX（ｋ）…ｖm（Ｄｉｍ）／ｖMAX（Ｄｉｍ）］と表される。
その後、学習部５７は、ヒストグラムのデータ区間数Ｐを用いて、正規化特徴量ベクトルを量子化して学習サンプルｘmを得る（ステップＳ２８）。
【００６９】
学習サンプルｘmは、以下の式で表される。
【００７０】
【数４】
2012098983.tif 000006
【００７１】
ここで、ＩＮＴ（）は、小数点以下を切り捨てて、整数のみを出力する関数を示す。
式（４）により、ｘm（ｋ）＝ｊ、０≦ｊ＜Ｐのように量子化が行われる。
さらに、学習部５７は、番号ｍの訓練画像データが正例の場合には、ｙm＝＋１、負例の場合には、ｙm＝−１とするラベルｙmを決定する。そして、学習部５７は、学習サンプルｘmと、ラベルｙmを組み合わせて学習用のデータセット｛（ｘ1，ｙ1）…（ｘM，ｙM）｝を生成する（ステップＳ２９）。
【００７２】
その後、学習部５７は、各訓練画像データの重み値の更新と、正例と負例の分離性能が高い弱識別器の選択処理を行う（ステップＳ３０）。
図１６は、重み値の更新と弱識別器の選択処理の一例を示すフローチャートである。
【００７３】
ｔ番目の学習で訓練画像データに対して適用される重み値をＤt（ｍ）、１＜ｍ≦Ｍとする。なお、重み値Ｄt（ｍ）は、以下の関係を満たす。
【００７４】
【数５】
2012098983.tif 000007
【００７５】
まず、学習部５７は、訓練画像データの重み値Ｄ1（ｍ）を、訓練画像データの総数Ｍを用いて、Ｄ1（ｍ）＝１／Ｍのように初期化する（ステップＳ３１）。なお、学習部５７は、訓練画像データの番号ｍ、特徴量ベクトルの要素番号（以下弱識別器番号という場合もある）ｋ、学習番号ｔについても、ｍ＝０、ｋ＝０、ｔ＝０と初期化する。
【００７６】
その後、学習部５７は、学習サンプルｘm（ｋ）を、図１４のステップＳ２８の処理で求められた整数ｊに置換し（ステップＳ３２）、要素数Ｐ個（ヒストグラムのデータ区間数）の１次元配列Ｗ±［ｊ］に重み値Ｄt（ｍ）を加算する（ステップＳ３３）。学習部５７は、訓練画像データが正例（ｙm＝＋１）の場合、Ｗ+［ｊ］＝Ｗ+［ｊ］＋Ｄt（ｍ）を計算し、負例（ｙm＝−１）の場合、Ｗ-［ｊ］＝Ｗ-［ｊ］＋Ｄt（ｍ）を計算する。
【００７７】
次に、学習部５７は、訓練画像データの番号ｍをｍ＝ｍ＋１と更新した後（ステップＳ３４）、訓練画像データの番号ｍが、訓練画像データの総数Ｍより大きいか否かを判定する（ステップＳ３５）。ｍ＞Ｍである場合には、ステップＳ３６の処理が行われ、ｍ≦Ｍの場合には、ステップＳ３２からの処理が繰り返される。
【００７８】
ｍ＞Ｍの場合、学習部５７は、以下の式で、弱識別器を選択するための指標Ｚを算出する（ステップＳ３６）。
【００７９】
【数６】
2012098983.tif 000008
【００８０】
学習部５７は、弱識別器番号ｋをｋ＝ｋ＋１と更新し、訓練画像データの番号ｍをｍ＝０とした後（ステップＳ３７）、全ての弱識別器を調査したか否かを判定するために、ｋ＞Ｄｉｍであるか否かを判定する（ステップＳ３８）。ｋ＞Ｄｉｍである場合には、ステップＳ３９の処理が行われ、ｋ≦Ｄｉｍの場合には、ステップＳ３２からの処理が繰り返される。
【００８１】
ｋ＞Ｄｉｍの場合、学習部５７は、最も小さな指標Ｚを与える弱識別器を選択し、そのときの弱識別器番号ｋ(t)及び、１次元配列Ｗ+(t)［ｊ］，Ｗ-(t)［ｊ］を、学習番号ｔのクラス分類パラメータとして、記憶部５８に保存する（ステップＳ３９）。
【００８２】
その後、学習部５７は、次の学習で用いる訓練画像データ用に、重み値を次式で更新する（ステップＳ４０）。
【００８３】
【数７】
2012098983.tif 000009
【００８４】
ここで、ｈt（ｘ）は学習番号ｔでの弱識別器の出力を示し、以下の式で表される。
【００８５】
【数８】
2012098983.tif 000010
【００８６】
ここで、ε＝１０-7である。
学習部５７は、その後、学習番号ｔをｔ＝ｔ＋１と更新し、訓練画像データの番号ｍをｍ＝０、特徴量ベクトルの要素番号ｋをｋ＝０とした後（ステップＳ４１）、学習回数が所定の回数（Ｔ回）に達したか否かを判定する（ステップＳ４２）。ｔ＜Ｔであれば、ステップＳ３２からの処理が繰り返され、ｔ≧Ｔであれば、学習部５７は、学習処理を終了する。
【００８７】
以上のような学習処理によって、記憶部５８には、例えば、以下のようにクラス分類パラメータが格納される。
図１７は、クラス分類パラメータの格納例を示す図である。
【００８８】
ここでは、学習番号ｔが０〜Ｔ−１までのクラス分類パラメータとして、弱識別器番号と、それぞれＰ個の要素数を持つ、正例の１次元配列と負例の１次元配列が格納されている例が示されている。
【００８９】
物体検出部５９は、図１７に示されているようなクラス分類パラメータを用いて、物体検出を行う。
以下、物体検出処理の詳細を説明する。
【００９０】
（物体検出処理）
物体検出処理を実施する際、検出窓走査部５２は、画像取得部５１から入力された未知画像データ（例えば、画像サイズ＝６４０×４８０画素）に、図８に示したような検出窓領域６１を設定する。検出窓領域６１は、例えば、訓練画像データと同一の画像サイズであり、上述の学習処理時の例では４５×４５画素である。
【００９１】
その後、検出窓領域６１内の画像データが、学習時と同様の処理により、輝度勾配算出部５３、ヒストグラム算出部５４、シフト部５５、類似度算出部５６で処理されて、特徴量ベクトルが算出される。
【００９２】
物体検出部５９は、検出窓走査部５２での走査回数がｍ回目のとき、類似度算出部５６で算出された特徴量ベクトルから、学習部５７で行われた前述のステップＳ２６〜Ｓ２８と同様の処理を行い、量子化された特徴量ベクトルｘm（ｋ）を算出する。
【００９３】
その後、物体検出部５９は、以下に示すような処理を行う。
図１８は、物体の有無を判別する処理の一例を示すフローチャートである。
まず、物体検出部５９は、学習番号ｔをｔ＝０、強識別器出力ＨをＨ＝０と初期化する（ステップＳ５０）。また、物体検出部５９は、記憶部５８から、学習番号ｔに対応する弱識別器番号ｋ(t)を読み出す（ステップＳ５１）。その後、物体検出部５９は、量子化された特徴量ベクトルｘm（ｋ(t)）を、整数ｊに置換する（ステップＳ５２）。
【００９４】
さらに、物体検出部５９は、記憶部５８から、正例、負例の１次元配列Ｗ+(t)［ｊ］，Ｗ-(t)［ｊ］を読み出す（ステップＳ５３）。その後、物体検出部５９は、式（８）を用いて、弱識別器の出力ｈtを計算する（ステップＳ５４）。そして、物体検出部５９は、Ｈ＝Ｈ＋ｈtの計算を行うことで、強識別器に弱識別器の出力を加算する（ステップＳ５５）。
【００９５】
その後、物体検出部５９は、学習番号ｔをｔ＝ｔ＋１と更新し（ステップＳ５６）、学習番号ｔが学習回数Ｔに達したか否かの判定を行う（ステップＳ５７）。ｔ≧Ｔであれば、ステップＳ５８の判定処理が行われ、ｔ＜Ｔの場合には、ステップＳ５１からの処理が繰り返される。
【００９６】
ｔ≧Ｔの場合、物体検出部５９は、強識別器出力Ｈが所定の閾値Ｈｔｈ以上であるか否かを判定する（ステップＳ５８）。Ｈ≧Ｈｔｈであれば、物体検出部５９は、検出窓領域６１内に対象の物体がある、という検出結果を出力し（ステップＳ５９）、Ｈ＜Ｈｔｈであれば、物体検出部５９は、対象の物体はない、という検出結果を出力する（ステップＳ６０）。
【００９７】
以上のような物体検出処理では、画像データ中のあるセルにおける輝度勾配のヒストグラムと、他のセルにおけるデータ区間をシフトしたヒストグラムとの類似度を特徴量として画像中の物体検出を行う。そのため、光沢変化などの影響で輝度勾配ヒストグラム分布が変わっても、検出対象の物体と他の部分とを判別する特徴量が変化しにくくなる。これにより、物体の検出ミスを低減することができる。
【００９８】
また、検出窓内の、あるセルにおける輝度勾配のヒストグラムと、他のセルにおけるデータ区間をシフトしたヒストグラムとの類似度を算出して特徴量に用いるため、エッジの連結状態や離れたエッジ間の関連性を特徴量として表現でき、これらを考慮した物体検出が可能になる。
【００９９】
なお、上記の説明では、類似度算出部５６は、ヒストグラムの重なり率を、式（３）を用いて求めたが、次式により求めるようにしてもよい。
【０１００】
【数９】
2012098983.tif 000011
【０１０１】
ここで、Ｈiはｉ番目のセルのヒストグラム、ｈk(i)はｉ番目のセルのヒストグラムのｋ番目のデータ区間の度数、Ｈjはｊ番目のセルのヒストグラム、ｈk(j)はｊ番目のヒストグラムのｋ番目のデータ区間の度数、ＮＤはデータ区間の総数を示している。また、σは、以下の式で表される。
【０１０２】
【数１０】
2012098983.tif 000012
【０１０３】
ｍａｘ（）は、括弧内の値の最大のものを出力する関数である。
式（９）のように、ヒストグラムの重なり率を、σを用いて正規化することで、重なり率は０〜１に正規化される。これにより、学習部５７にて前述したステップＳ２６，Ｓ２７で行われるような特徴量ベクトルの正規化処理が不要となり、計算量を削減することができる。
【０１０４】
ところで、上記のような物体検出装置１，５０は、画像処理ボードなどであってもよいし、以下のようなコンピュータであってもよい。
図１９は、本実施の形態に用いるコンピュータのハードウェアの一例を示す図である。コンピュータ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【０１０５】
ＲＡＭ１０２は、コンピュータ１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に用いる各種データが格納される。
【０１０６】
バス１０８に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、及び通信インタフェース１０７がある。
【０１０７】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ１０３は、コンピュータ１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【０１０８】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【０１０９】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【０１１０】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１０６ａに記録されたデータの読み取りを行う。光ディスク１０６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１０６ａには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【０１１１】
通信インタフェース１０７は、ネットワーク１０７ａに接続されている。通信インタフェース１０７は、ネットワーク１０７ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【０１１２】
以上のようなハードウェアによって、本実施の形態の処理機能を実現することができる。
上記のように、本実施の形態の処理機能は、コンピュータによって実現することができる。その場合、物体検出装置１，５０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１５】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１１６】
以上、実施の形態に基づき、本発明の物体検出装置、物体検出方法及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【０１１７】
１  物体検出装置
２  画像取得部
３  輝度勾配算出部
４  ヒストグラム算出部
５  シフト部
６  類似度算出部
７  記憶部
８  物体検出部
【図１】
2012098983.tif 000013
【図２】
2012098983.tif 000014
【図３】
2012098983.tif 000015
【図４】
2012098983.tif 000016
【図５】
2012098983.tif 000017
【図６】
2012098983.tif 000018
【図７】
2012098983.tif 000019
【図８】
2012098983.tif 000020
【図９】
2012098983.tif 000021
【図１０】
2012098983.tif 000022
【図１１】
2012098983.tif 000023
【図１２】
2012098983.tif 000024
【図１３】
2012098983.tif 000025
【図１４】
2012098983.tif 000026
【図１５】
2012098983.tif 000027
【図１６】
2012098983.tif 000028
【図１７】
2012098983.tif 000029
【図１８】
2012098983.tif 000030
【図１９】
2012098983.tif 000031