<第1の実施の形態>
本発明の実施の形態における物体検出装置1は、図1に示すように、画像取得部2、信号処理部3、記憶部4及び出力部5を含んで構成される。物体検出装置1は、所定の監視空間を撮像した監視画像を取得し、画像内に撮像された人や物等の検出対象物を検出する。画像取得部2、信号処理部3、記憶部4及び出力部5は互いに情報伝達可能に接続される。
なお、本実施の形態では、画像内に写った人を検出対象物とする例について説明する。ただし、これに限定されるものではなく、流通化に置かれる商品等の物品、通行する車等を検出する場合等にも適用することができる。
画像取得部2は、CCD素子やC−MOS素子等の撮像素子、光学系部品、アナログ/デジタル変換器等を含んで構成される所謂監視カメラを含む。また、画像取得部2は、インターネットのネットワークを介して画像を取得するものであってもよい。画像取得部2は、撮像した画像を信号処理部3へ送信する。画像を取得する間隔は一定の時間間隔でなくてもよい。
画像は、例えば、幅320ピクセル、高さ240ピクセル、各ピクセルがR(赤)、G(緑)、B(青)をそれぞれ256階調で表現したカラー画像である。
信号処理部3は、CPU、DSP、MCU、IC等の演算回路を含んで構成される。信号処理部3は、画像取得部2、記憶部4及び出力部5と情報伝達可能に接続される。信号処理部3は、検出窓領域選択手段30、検出窓制御手段32、固定識別器34、学習識別器36、識別器更新手段37、判定手段38等の各手段での処理を記述したプログラムを記憶部4から読み出して実行することによりコンピュータを各手段として機能させる。
信号処理部3は、図2に示すように、画像取得部2より入力画像200から検出対象物を検出する。説明の都合上、画像200の左上を原点X=0,Y=0とし、横方向にX軸、縦方向にY軸とし、X軸は右方向、Y軸は下方向に正に増加するものとする。入力画像200には、領域203,204の位置に検出対象物(人)が写っており、矩形201,202は検出窓領域を示している。
物体検出装置1は、検出窓領域を少しずつずらしながら走査し、検出窓領域に人が写っている否かを判定する。矢印は、検出窓領域をずらす際の左上の座標を示すものであり、検出窓領域は画像200全体を漏れなく探索するように走査する。領域203,204にある矩形は、検出処理の結果、人であると判定された検出窓領域(人候補領域)を示す。人が写っている画像領域付近では、人であると判定される検出窓領域が複数出てくる場合があるが、検出窓領域をまとめる処理を行うことで最終的な検出窓領域(図2中の太線:人領域)を得る。ただし、検出窓領域は、基準となる背景と入力画像とを差分処理し、差分後の画像をラベリングした後の各ラベルを検出窓領域としてもよいし、画像全体を検出窓領域としてもよい。また、領域205にある矩形は、検出対象物である人に似た洋服が掛ったハンガーが写された領域を示している。
検出窓領域選択手段30は、検出窓領域の幅と高さを決定する。画像内に様々な大きさで写る人に対応するため検出窓領域の幅と高さを変更しながら、検出窓領域を走査して画像内に人が写っているか否かを判定する。なお、検出窓領域の幅と高さは、検出対象物の画像上での大きさを考慮して、予め記憶部4に1又は複数を記憶している。ただし、予め幅と高さを記憶していなくとも、所定の規則に従って決定してもよい。
検出窓制御手段32は、検出窓領域をずらす間隔(走査間隔)を決定し、決定した走査間隔に基づいて検出窓領域をずらす。
固定識別器34は、検出窓領域内の画像がどれだけ人に似ているか、類似度を計算する。固定識別器34は、多数の「人」の画像データ、「人以外」の画像データを用いて予め学習させる。
類似度は、図3に示す処理手順で計算される。図1に記載している固定識別器34、学習識別器36、識別器更新手段37の具体例を図3ではカスケード型識別器320、学習識別器330及び識別器更新手段332としてそれぞれ示す。
まず、入力画像から切り出された検出窓領域内の画像がカスケード型識別器320に入力される。カスケード型識別器320は、強識別器321,322,323のような複数の強識別器が直列に並んだ識別器である(ここではN個の強識別器が直列に並んでいる例を示す)。個々の強識別器は、ヒストグラム・オブ・オリエンティッド・グラディエント(HOG:Histograms of Oriented Gradients)特徴(Navneet Dalal and Bill Triggs, Histograms of Oriented Gradients for Human Detection, In Proceedings of IEEE Conference Computer Vision and Pattern Recognition 2005)を用いてアダブースト(AdaBoost)で予め学習させる。すなわち、検出対象物である人の様々な画像と人が写っていない画像を大量に用意し、各画像に対して検出対象物の画像であるか否か正解付けを行っておき、これらのデータを用いて両者が識別できるようにアダブーストで学習させる。類似度を計算するときは、各強識別器は、入力された画像からHOG特徴を計算し、アダブーストで選択された特徴量より類似度を計算する。
強識別器321〜323はあらかじめ計算する順序が決まっており、最初に計算する強識別器321が1、次に計算する強識別器322が2・・・Nのように各強識別器には計算する順番と同じ番号を割り当てる。
各強識別器321〜323は、検出窓領域として切り出された画像を入力とし、類似度を計算する。最先の強識別器321以外の強識別器322,323等は、前段で計算された類似度が閾値より大きい場合のみ(図中Tの矢印)、類似度を計算する。閾値以下の場合(図中Fの矢印)、識別器更新手段332にて学習識別器330の更新を行う。閾値は、例えば0に設定し、0より大きければ人に似ており、0以下であれば人に似ていないと判定する。以下、類似度を算出した強識別器の番号を判定段数という。
学習識別器330は、カスケード型識別器320の各強識別器の類似度を入力として、人か否かを判定する。
学習識別器330は、カスケード型識別器320で最後の強識別器323において人と判定(図中Tの矢印)した場合のみ判定を行う。カスケード型識別器320で「人」の可能性が高いときのみ、すなわち最終段の強識別器323で求めた類似度が閾値より大きい場合(図中Tの矢印)に学習識別器330にて判定を行う。学習識別器330は、カスケード型識別器320において判定段数までの強識別器で得られた類似度Sn(nは1〜M:Mは判定段数(1≦M≦N))を入力とする。カスケード型識別器320の各強識別器で求めた類似度を並べてベクトル表現したものを類似度ベクトルS=(1番目の強識別器の類似度,2番目の強識別器の類似度,・・・,M番目の強識別器の類似度)=(S1,S2,・・・,SM)とする。
類似度ベクトルSが得られたときの「人」である確率P(人|S)、類似度Sが得られたときの「人以外」である確率P(人以外|S)を計算し、P(人|S)>P(人以外|S)なら「人」と判定し、そうでなければ「人以外」と判定する。
P(人|S)とP(人以外|S)の計算はベイズの定理より数式(1),(2)で求めることができる。
ここで、P(S|人)は、「人」の場合の類似度Sが得られる確率(尤度)、P(S|人以外)は「人以外」の場合の類似度Sが得られる確率(尤度)である。P(人)は「人」がどのくらいの確率で検出窓領域に含まれるかを表した事前確率、同様にP(人以外)は検出窓領域に「人以外」がどのくらいの確率で含まれているかを表した事前確率である。事前に検出窓領域に「人」、「人以外」が含まれる確率はわからないため、事前確率P(人)=P(人以外)=0.5と仮定する。P(人以外|S)=1−P(人|S)という関係があるので、P(人|S)を求めれば、P(人以外|S)は容易に求められる。以下では、P(人|S)を学習識別器330での類似度という。
各強識別器の類似度を要素とした確率変数ベクトルsを用意すると、「人」の類似度ベクトルsの分布P(s|人)と「人以外」の類似度ベクトルsの分布P(s|人以外)が求まればP(人|s)を計算できる。類似度ベクトルsは多次元データだが、各強識別器の類似度snは独立であると仮定すると、P(s|人)及びP(s|人以外)は数式(3),(4)で求められる。
ここで、P(sm|人)はm番目の強識別器の「人」の類似度の分布であり、P(sm|人以外)はm番目の強識別器の「人以外」の類似度の分布である。
本実施の形態では、全ビン(区切り)の類似度の分布の和が1になるようなヒストグラムで表現する。それぞれのヒストグラムは、記憶部4の類似度ヒストグラム42に格納される。ただし、類似度の分布はヒストグラムに限らず、正規分布や混合正規分布などで表現してもよい。
「人」の類似度ヒストグラム42は、予め用意した「人」を含む画像である学習用データを用いて各強識別器の類似度の分布を求めることによって構成する。本実施の形態では、「人」の類似度ヒストグラム42については逐次学習を行わないが更新してもよい。「人以外」の類似度ヒストグラム42は、監視カメラを設置した時の最初の数フレームの画像には人が含まれていないと仮定し、そのとき得られる各強識別器の類似度の分布を求めることによって構成する。その後、カスケード型識別器320又は学習識別器330において検出窓領域が「人以外」と判定されたときにカスケード型識別器320で求められた類似度を用いて「人以外」の類似度ヒストグラム42を逐次更新する。
カスケード型識別器320の強識別器の数がN=2の場合における類似度ヒストグラム42の例を図4に示す。類似度ヒストグラム401は、1番目の強識別器の類似度s1における「人」の類似度の分布402:P(s1|人)と「人以外」の類似度の分布403:P(s1|人以外)からなる。類似度ヒストグラム411は、2番目の強識別器の類似度s2における「人」の類似度の分布412:P(s2|人)と「人以外」の類似度の分布413:P(s2|人以外)からなる。4つの類似度ヒストグラム402,403,412,413は、全ビンの類似度の分布の合計が1になるようにそれぞれ正規化されている。
カスケード型識別器320のみで判定する場合、各強識別器で求められた類似度が予め定められた閾値(例えば、0に設定)より大きいと「人」と判定されるが、学習識別器330では得られた各強識別器の類似度と、過去の類似度ヒストグラム42から確率を計算し、適応的に判定できる。
例として、「人」、「人以外」の類似度の分布が図4に示す類似度ヒストグラム401,411で表される場合、1段目の強識別器の類似度がS1=1.0、2段目の強識別器の類似度がS2=1.0であったときについて説明する。1段目及び2段目の強識別器における閾値が0である場合、1段目及び2段目の強識別器のいずれにおいても類似度が閾値を超えているのでカスケード型識別器320では「人」と判定される。一方、学習識別器330では、類似度ベクトルS=(1.0,1.0)が得られたときの「人」である確率:P(人|S=(1.0,1.0))=P(S1=1.0|人)×P(S2=1.0|人)×P(人)/Aと、「人以外」である確率:P(人以外|S=(1.0,1.0))=1−P(人|S=(1.0,1.0))を算出する。ただし、A=P(S|人)×P(人)+P(S|人以外)×P(人以外)である。図4に示すヒストグラム401,411に基づくとP(人|S=(1.0,1.0))<P(人以外|S=(1.0,1.0))となるので、学習識別器330では「人以外」と判定される。
物体検出装置の設置環境の特性にあわせた類似度ヒストグラムを構築できれば、カスケード型識別器320からの類似度の算出結果に基づいて学習識別器330においてより確度の高い判定を行うことができる。
学習識別器330で判定後、学習識別器330を識別器更新手段332により更新する。また、類似度管理手段334において類似度及び検出窓領域の大きさ(幅及び高さ)と中心座標を関連付けて判定情報履歴40として記憶部4に記憶させる。
識別器更新手段332は、学習識別器330の類似度ヒストグラムを更新する。本実施の形態では、各強識別器で求められた類似度が閾値以下(図3中Fの矢印)の場合に識別器更新手段332にて学習識別器330の更新を行う。また、カスケード型識別器320にて、強識別器で求められた類似度が閾値を超えていても(図3中Tの矢印)、学習識別器330にて「人以外」と判定(図3中Fの矢印)された場合にも、識別器更新手段332にて学習識別器330の更新を行う。すなわち、「人以外」の類似度ヒストグラム42のみを更新の対象とし、「人」の類似度ヒストグラム42は更新しない。
識別器更新手段332は、一時刻前までに得られた類似度ヒストグラム42を現時刻に得られたデータで更新する。識別器更新手段332による更新処理には、例えば図5に示すように、αブレンディングが用いられる。図5は、学習識別器330のn番目の「人以外」の類似度ヒストグラム42を更新する処理を示しており、前時刻までの更新前の類似度ヒストグラム501及び現時刻で得られたデータによる更新された類似度ヒストグラム502を表している。
検出窓領域に人の画像が含まれているか否かを判定した際、カスケード型識別器320では「人」と判定され学習識別器330では「人以外」と判定されたとする。このときのn番目の強識別器の類似度が0.8のときのn番目の強識別器に対応する類似度ヒストグラム501の更新方法を示す。まず、更新前の類似度ヒストグラム501の各ビンを(1.0−α)倍する。その後、現時刻に得られた類似度0.8に相当するビンにα分の重みを足す(図中、ビン503の斜線部分)。αは予め定められたパラメータである。αが大きいと過去の情報の影響がより早く小さくなり、αが小さいと過去の情報の影響をより長く受けるものとなる。初めて更新を行う際、すなわち類似度ヒストグラム501が空の状態の場合、得られたデータが該当するビンの値を1とする。ただし、このようにすると最初に得られたデータの影響が大きいため、更新回数が少ないうちはαを比較的大きな値に設定し、更新回数が多くなるにつれてだんだん小さな値に設定するなどしてもよい。
ここで、図1に戻って、判定手段38は、判定情報履歴40として記憶されている検出窓領域の大きさ(幅、高さ)と中心座標、学習識別器330の類似度を用いて、最終的に画像内のどこに人が写っているかを決定する。判定情報履歴40に含まれるデータの中で、学習識別器330の類似度が閾値(例えば、0.8に設定)以上の検出窓領域を人候補領域として抽出する。人候補領域がない場合は入力画像中に人領域はないということで終了する。
人候補領域があった場合、検出窓領域の大きさと中心座標を用いて、一定以上(例えば、検出窓領域の面積の半分以上)の領域が重なっている人候補領域を纏める。纏めた人候補領域の中で学習識別器330の類似度が一番高い検出窓領域を人領域として選択する。纏めた領域毎に選択された検出窓領域を人領域とし、出力部5に選択された検出窓領域の情報を出力する。
記憶部4は、ROMやRAM等のメモリ装置で構成される。記憶部4は、信号処理部3からアクセス可能に接続される。記憶部4は、各種プログラム、各種データを記憶することができ、信号処理部3からの要求に応じてこれらの情報を読み書きする。記憶部4は、類似度管理手段334として機能し、判定情報履歴40として検出窓領域の大きさ(幅、高さ)と中心座標及び学習識別器330の類似度の3つの情報を関連付けて記憶する。また、カスケード型識別器320に含まれる強識別器毎に、各強識別器の番号に対応付けて「人」と「人以外」の類似度ヒストグラム42を記憶する。かかる類似度ヒストグラム42が辞書データに相当し、「人」の類似度ヒストグラムが検出対象物が存在する画像により学習された第1の辞書データ、「人以外」の類似度ヒストグラムが検出対象物が存在しない画像により学習された第2の辞書データにそれぞれ相当する。
出力部5は、報知音を出力する音響出力手段や入力画像を表示する表示手段を含んで構成することができる。判定手段38で人領域が検出された場合、スピーカー、ブザー等の音響出力手段で警報を鳴らしたり、ディスプレイ等の外部表示装置に入力画像を表示したりする。また、出力部5は、コンピュータをネットワークや電話回線に接続するためのインターフェースを含んでもよい。この場合、出力部5は、電話回線やインターネット等の情報伝達手段を介して、センタ装置(図示しない)に入力画像や人領域の情報を送出する。なお、センタ装置は、画像内の検出対象物を監視するセンタ等に設置されるホストコンピュータである。
以下、物体検出装置1における処理について、図1の機能ブロック図並びに図6のフローチャートを参照しつつ説明する。
ステップS10では、画像取得部2において画像を取得し、信号処理部3に画像が送信される。画像の取得タイミングは決まった時間間隔とする。
ステップS20では、検出窓領域の大きさ(幅と高さ)を決定する。検出窓領域の大きさを予め設定した複数の大きさに順次変更しつつ、各大きさの検出窓領域で画像全体を走査する。また、本実施の形態では検出窓領域は矩形としたので大きさとして幅と高さのみを決定すればよいが、検出窓領域は任意の形状であってよく、その場合には形状と大きさを決定する。この処理は検出窓領域選択手段30にて行われる。
ステップS30からステップS50の処理は、ステップS20で設定した検出窓領域の大きさで画像全体を走査し終わるまで繰り返す。
ステップS30では、検出窓領域の位置を決定する。この処理は検出窓制御手段32で行う。この処理は、図7に示すフローチャートに沿って行われる。なお、検出窓領域の左上の座標を開始点と呼び、決定すべき検出窓領域の開始点を(SX,SY)、前回の検出窓領域の開始点を(BX,BY)とする。
ステップS301では、検出窓領域の大きさが変更されたか否かの判定を行う。検出窓領域の大きさが変更された直後の場合は、ステップS305において検出窓領域の開始点(SX,SY)を(0,0)に設定してステップS40に移行する。検出窓領域の大きさ変更後、初めての処理でない場合にはステップS302へ移行する。
ステップS302では、前回の検出窓領域の開始点(BX,BY)を読み出す。ステップS303では、ステップS302で読み出した前回の検出窓領域の開始点(BX,BY)から画像の右端まで走査したか否かを判定する。前記の検出窓領域で画像の右端まで走査が終了した場合、すなわち検出窓領域の右端BX+W(但し、Wは検出窓領域の幅)が画像の右端に一致した場合にはステップS306において検出窓領域の開始点を(SX,SY)=(0,BY+q)と設定し、ステップS40へ移行する。ただし、qは予め定めた定数とする。例えば、入力画像が幅320ピクセル、高さ240ピクセルの場合にはq=4ピクセルに設定する。右端まで走査していない場合にはステップS304に移行する。
ステップS304では、X方向に検出窓領域をpピクセルずらし、Y方向にはずらさないように検出窓領域の開始点を(SX,SY)を決定する。すなわち、検出窓領域の開始点(SX,SY)=(BX+p,BY)とする。ただし、pは予め定めた定数とする。例えば、入力画像が幅320ピクセル、高さ240ピクセルの場合にはp=4ピクセルに設定する。その後、ステップS40に移行する。
ステップS40では、ステップS30にて設定された検出窓領域内の画像がどれだけ人に似ているかを示す類似度を求める。これは、図3に示したカスケード型識別器320及び学習識別器330の識別処理である。識別処理について図8のフローチャートを用いて説明する。
ステップS401では、現在の検出窓領域からHOG特徴量を計算する。ただし、この処理はステップS10とステップS20との間で、入力画像の各ピクセルのエッジの強度と角度を計算し、エッジの角度毎のインテグラル画像を作成しておくことでより高速に計算することが可能になる。
ステップS402では、すべての強識別器を調査し終わったか否かの判定を行う。すべての強識別器で調査し終わった場合はステップS406に移行し、終わっていない場合にはステップS403に移行し、次の強識別器での調査を行う。ステップS403では、検出窓領域内の画像が人に似ているか否かを判定するための類似度を計算する。
ステップS404では、ステップS403において計算した類似度を判定した強識別器の番号と共に一時的な記憶領域に記憶する。これはステップS407における学習識別器330での類似度計算やステップS50の更新処理にて用いられる。
ステップS405では、ステップS403において計算した類似度が予め設定した閾値より大きいか否かを判定する。閾値より大きい場合にはステップS402に移行し、閾値以下の場合には、後述する学習識別器330の類似度をステップS501の閾値以下の値として記憶させ、ステップS50に移行する。
ステップS406からS408が学習識別器330の処理である。ステップS406では、カスケード型識別器320の判定段数までの強識別器の類似度ヒストグラム42の中で、更新回数が基準値以上である「人以外」の類似度ヒストグラム42を抽出する。これは、更新回数が少ない類似度ヒストグラム42を使用すると、学習識別器330で算出される類似度の信頼性が低くなるためである。そこで、基準値以上更新されている類似度ヒストグラム42と、それに対応するステップS404で記憶された強識別器の類似度を用いて学習識別器330での類似度を算出する。
ステップS407では、学習識別器330にて類似度を計算する。類似度の計算は数式(1)のP(人|S)を用いる。ステップS408では、ステップS407で算出された類似度を検出窓領域の大きさ(幅と高さ)と中心座標とに関連付けて判定情報履歴40として記憶部4に記憶し、ステップS50へ移行する。
ステップS50では、類似度ヒストグラムの更新処理を行う。これは識別器更新手段37にてなされる。更新処理は、図9のフローチャートに沿って行われる。本実施の形態では、「人以外」の類似度ヒストグラム42を更新し、「人」の類似度ヒストグラム42は更新しない。
ステップS501では、ステップS407にて学習識別器330で算出された類似度が閾値より大きい場合は「人」である可能性が高いので類似度ヒストグラム42の更新処理は行わず、ステップS60へ移行する。
ステップS502では、カスケード型識別器320に含まれる各強識別器に対応する「人以外」の類似度ヒストグラム42を図8のステップS404にて記憶した類似度にて更新する。従って、今回の判定に使用した強識別器に対応する「人以外」の類似度ヒストグラム42のみが更新される。更新方法は、識別器更新手段332の説明の通りである。更新処理後、ステップS60へ移行する。
ステップS60では、すべての大きさの検出窓領域について検出処理が終了したか否かを判定する。すべての大きさの検出窓領域について調査が終わった場合はステップS70に処理を移行させ、そうでない場合はステップS20に処理を戻す。
ステップS70では、ステップS50で求めた判定情報履歴40に記憶されている各検出窓領域の大きさ(幅と高さ)と中心座標及び学習識別器330の類似度から最終的に人が写っている位置を決定する。この処理は判定手段38でなされる。判定処理は、図10のフローチャートに沿って行われる。
ステップS701〜S702の処理はステップS50で求めた判定情報履歴40として記憶されているすべての検出窓領域について行う。ステップS701では、学習識別器330で求められた学習識別器330の類似度が閾値より大きいか否かを判定し、条件を満たす場合にはステップS702に移行し、そうでない場合には次の検出窓領域について判定を行う。ステップS702では、ステップS701で条件を満たした検出窓領域を人候補領域に追加する。
判定情報履歴40に記憶された情報に対してステップS701〜S702を繰り返すことで求められた人候補領域は、図2に示すように、人が写っている領域の近くに領域203,204のように複数抽出される場合がある。ステップS703〜S705では、複数の人候補領域から人領域を最終的に選択する。
ステップS703では、人候補領域として抽出された検出窓領域の大きさと中心座標を用いて、一定以上(例えば、検出窓領域の面積の半分以上)の領域が重なっている人候補領域をグループとして纏める。ステップS704では、ステップS703で作成されたグループ毎に人候補領域の中で学習識別器330の類似度が一番高い検出窓領域を人領域として選択する。ステップS705では、ステップS704で選択された検出窓領域を人領域とし、ステップS80に移行する。
ステップS80では、ステップS70において判定された人領域を基に、人領域が1つでもあれば、判定された人領域の検知窓情報を画像と共に異常信号として出力する。この処理は出力部5にてなされる。
[初期設定時の処理]
監視カメラ設置時の初期設定の処理について以下に説明する。初期設定時には、監視カメラの撮像領域内に人がいないという仮定のもと、各強識別器に対応する「人以外」の類似度ヒストグラム42の登録を行う。初期設定処理は、監視カメラを設置してから予め定めた枚数の画像を処理して終了するものとする。
初期設定処理は、図6の検知処理時のフローチャートにおけるステップS70及びS80を除き、ステップS40及びS50を若干変更した処理となる。また、ステップS40及びS50の処理は相違点のみを説明する。
ステップS40では、図8においてステップS401からS405までの処理を行い、ステップS402ですべての強識別器で調査し終わっていた場合(ステップS402のYES)はステップS406〜S408の処理を行わず、ステップS50へ移行する。すなわち、ステップS406〜S408の処理を初期設定処理では省略している点が相違している。
ステップS50では、初期設定処理では人は監視空間にいないという仮定なので、ステップS501の判定処理を行わない。ステップS502では、ステップS40で得られた判定段数までの強識別器の類似度を用いて、対応する強識別器の「人以外」の類似度ヒストグラム42を更新し、その後、ステップS60へ移行する。
また、画像を取得する毎に「人以外」の類似度ヒストグラム42を逐次更新せず、所定の枚数の画像に対するカスケード型識別器320で算出された類似度を記憶しておき、一括して類似度ヒストグラム42を作成するものとしてもよい。
<第2の実施の形態>
第2の実施の形態における物体検出装置は固定識別器と学習識別器との判定を並列に行い、それぞれの判定結果を統合する。第2の実施の形態では、第1の実施の形態における固定識別器34、学習識別器36、識別器更新手段37及び判定手段38での処理が異なるのでこれらについて説明する。また、記憶部4において、第1の実施の形態では、類似度ヒストグラム42を記憶しているが、第2の実施の形態では学習識別器用特徴量分布42として説明する。
固定識別器34は、検出窓領域内の画像がどれだけ人に似ているかを示す類似度を求める。これは第1の実施の形態と同じ処理である。図1に記載している固定識別器34、学習識別器36及び識別器更新手段37の具体例を図11ではカスケード型識別器620、学習識別器632及び識別器更新手段636としてそれぞれ示す。
図11のカスケード型識別器620は、複数の強識別器621〜623から構成され、検出窓領域として切り出された画像を入力とし、類似度を計算する。最先の強識別器621以外の強識別器622,623等は、前段で計算された類似度が閾値より大きい場合のみ(図中Tの矢印)、類似度を計算する。閾値は、例えば0に設定し、強識別器621〜623で求めた類似度が0より大きければ人に似ており、0以下であれば人に似ていないと判定する。そして、最終段の強識別器323において求めた類似度が閾値より大きい場合(図中Tの矢印)、又は、各強識別器で求めた類似度が閾値以下の場合(図中Fの矢印)に、判定情報履歴手段630にカスケード型識別器620の判定段数と類似度を出力する。判定情報履歴手段630は、出力された判定段数及び類似度を検出窓領域の大きさ及び中心座標に関連付けて判定情報履歴40して記憶部4に記憶させる。
学習識別器632は、第1の実施の形態と異なり、画像を受けて人か否かを判定する。学習識別器632は、入力される検出窓領域の画像からエッジに関する特徴量を抽出する。まず、検出窓領域の画像からエッジ画像を作成する。エッジ画像は、予め監視画像全体について求めておいてもよい。例えば、図12に示すように、検出窓領域を横2分割、縦4分割の計8つの矩形領域に分割し、各領域についてエッジの方向に関するヒストグラムを作成する。例えば、エッジの方向を9方向に設定し、各領域におけるエッジの方向毎にエッジの強度で重み付けしたヒストグラム702を作成する。なお、互いに180度反転しているエッジは同一方向とみなすので、ヒストグラム702が採り得る方向は0度〜180度となり、9方向に割り当てると20度刻みとなる。
このように、各領域においてヒストグラム702を作成する。ヒストグラム702のビンは9方向×8領域で72次元のベクトルを構成する。最後に72次元ベクトルのノルムが1になるように正規化する。このように作成したベクトルを検出窓領域の特徴量Xとして用いる。
学習識別器632は、特徴量Xに基づいて検出窓領域が「人」を含むか、「人以外」であるかを判定する。得られた特徴量Xから人か否かを判定するには、特徴量Xが得られたときの「人」である確率P(人|X)、特徴量Xが得られたときの「人以外」である確率P(人以外|X)を計算し、P(人|X)>P(人以外|X)なら「人」と判定し、そうでなければ「人以外」と判定する。
P(人|X)とP(人以外|X)の計算はベイズの定理より数式(5),(6)で求めることができる。
ここで、P(X|人)は、「人」の場合の特徴量Xが得られる確率(尤度)、P(X|人以外)は「人以外」の場合の特徴量Xが得られる確率(尤度)である。P(人)は「人」がどのくらいの確率で検出窓領域に含まれるかを表した事前確率、同様にP(人以外)は検出窓領域に「人以外」がどのくらいの確率で含まれるかを表した事前確率である。事前に検出窓領域に「人」が含まれる確率はわからないため、事前確率P(人)=P(人以外)=0.5と仮定する。P(人以外|X)=1−P(人|X)という関係があるので、P(人|X)を求めれば、P(人以外|X)は容易に求められる。以下では、P(人|X)を学習識別器632での類似度という。
本実施の形態では、P(X|人)とP(X|人以外)の分布を混合正規分布で表現する。「人」の特徴量分布P(X|人)は、予め用意された「人」の学習データから特徴量を計算し、混合正規分布のパラメータをEM(Expectation−Maximization)アルゴリズム(A.P. Dempster, N.M.Laird, and D.B. Rubin. "Maximum likelihood from incomplete data via the EM algorithm", Journal of the Royal Statistical Society, Series B, 39(1),1-38,1977)を用いて作成する。「人以外」の特徴量分布P(X|人以外)は、監視カメラの設置時に「人」がいないという仮定のもと撮像した複数の画像から特徴量を算出し、EMアルゴリズムによって混合正規分布のパラメータを求める。
図11の学習識別器632で類似度を求めた後、学習類似度管理手段634にて検出窓領域の大きさ(幅、高さ)と中心座標及び学習識別器632で求められた類似度を関連付けて判定情報履歴40として記憶部4に記憶させる。
次に、カスケード型識別器620の類似度と判定段数及び学習識別器632の類似度の結果から識別器更新手段636にて学習識別器632の更新を行う。本実施の形態では、識別器更新手段636は、カスケード型識別器620の判定段数と類似度及び学習識別器632の類似度に基づいて「人以外」である可能性が高いときのみ、「人以外」の特徴量分布P(X|人以外)を更新する。ただし、「人」の可能性が高いときのみ、「人」の特徴量分布P(X|人)を更新してもよい。
「人以外」の特徴量分布P(X|人以外)は混合正規分布でモデル化されており、「人以外」と判定されたデータが1つ得られる度に特徴量分布P(X|人以外)を逐次型EMアルゴリズム(Radford Neal, R.M. and G.E. Hinton(1998) "A new view of the EM algorithm that justifies incremental, sparse and other variants", Learning in Graphical Models, pp.355-368. Kluwer Academic Publishers)を用いてEステップ、Mステップを1度実行し、更新を行う。
判定手段38は、判定情報履歴40として記憶されている検出窓領域の大きさ(幅、高さ)と中心座標、カスケード型識別器620の判定段数と類似度及び学習識別器632の類似度を用いて、最終的に画像内のどこに人が写っているかを決定する。
判定情報履歴40に含まれるデータの中で、カスケード型識別器620の判定段数が最終段であり、類似度が閾値(例えば、0に設定)より大きく、学習識別器632の類似度が閾値(例えば、0.8に設定)以上の総ての条件を満たす検出窓領域を人候補領域として抽出する。人候補領域がない場合は入力画像中に人領域はないということで終了する。
人候補領域があった場合、検出窓領域の大きさと中心座標を用いて、一定以上(例えば、検出窓領域の面積の半分以上)の領域が重なっている人候補領域を纏める。纏めた人候補領域の中でカスケード型識別器620の類似度が一番高い検出窓領域を人領域として選択する。纏めた領域毎に選択された検出窓領域を人領域とし、出力部5に選択された検出窓領域の情報を出力する。なお、人領域としての選択は、カスケード型識別器620の類似度を用いることなく、学習識別器632の類似度を用いてもよい。
記憶部4は、ROMやRAM等のメモリ装置で構成される。記憶部4は、信号処理部3からアクセス可能に接続される。記憶部4は、各種プログラム、各種データを記憶することができ、信号処理部3からの要求に応じてこれらの情報を読み書きする。記憶部4は、学習類似度管理手段634として機能し、判定情報履歴40及び学習識別器用特徴量分布42を記憶する。判定情報履歴40は、検出窓領域の大きさ(幅、高さ)と中心座標、カスケード型識別器620の判定段数と類似度、及び学習識別器632の類似度の情報を関連付けて記憶したものである。学習識別器用特徴量分布42は、人の特徴量分布P(X|人)と人以外の特徴量分布P(X|人以外)である。具体的には、「人」と「人以外」の混合正規分布に関するパラメータ、すなわち各正規分布の混合比、平均値、共分散行列が記憶されている。かかる学習識別器用特徴量分布42が辞書データに相当し、人の特徴量分布P(X|人)が検出対象物が存在する画像により学習された第1の辞書データ、人以外の特徴量分布P(X|人以外)が検出対象物が存在しない画像により学習された第2の辞書データにそれぞれ相当する。
以下、本実施の形態における処理について説明する。本実施の形態における処理は、図6のフローチャートに示す処理とほぼ同じであるので、相違するステップS40,S50,S70のみについて説明する。
ステップS40にて、ステップS30で設定された検出窓領域内の画像がどれだけ人に似ているかを示す類似度を求める。これは、図11に示したカスケード型識別器620及び学習識別器632における処理であり、図13のフローチャートを用いて説明する。ステップS451からS455がカスケード型識別器620における処理であり、ステップS456からS458が学習識別器632における処理である。
ステップS451では、現在の検出窓領域からHOG特徴量を抽出する。ただし、この処理はステップS10とステップS20との間で、入力画像の各ピクセルのエッジの強度と角度を計算し、エッジの角度毎のインテグラル画像を作成しておくことでより高速に計算することが可能になる。
ステップS452では、すべての強識別器を調査し終わったか否かの判定を行う。すべての強識別器で調査し終わった場合はステップS455に移行し、終わっていない場合にはステップS453に移行し、次の強識別器での調査を行う。ステップS453では、検出窓領域内の画像が人に似ているか否かを判定するための類似度を計算する。
ステップS454では、ステップS453において計算した類似度が予め設定した閾値(例えば、0に設定)より大きいか否かを判定する。閾値より大きい場合にはステップS452に移行し、閾値以下の場合にはステップS455に移行する。
ステップS455では、ステップS453において最後に計算した類似度及びその判定段数を検出窓領域の大きさ(幅、高さ)と中心座標に関連付けて判定情報履歴40として記憶部4に記憶する。ここで、最後に計算された類似度が固定識別器の類似度となる。また、ステップS458では、学習識別器632の類似度も共に記憶される。
ステップS456では、学習識別器632で用いられる特徴量Xを求める。これは上記で説明した通りである。ステップS457では、ステップS456で求めた特徴量Xに基づいて学習識別器632の類似度を算出する。類似度P(人|X)は数式(5)により求めることができる。ステップS458では、ステップS457で算出された学習識別器632の類似度をステップS455で記憶した固定識別器の類似度に関連付けて判定情報履歴40として記憶部4に記憶する。その後、処理をステップS50に移行する。
ステップS50では、学習識別器用特徴量分布の更新を行う。これは識別器更新手段636にて行われる。更新処理は、図14に示すフローチャートに沿って行われる。本実施の形態では、「人以外」の特徴量分布を更新し、「人」の特徴量分布は更新しない。
ステップS551では、「人以外」であるか否かの判定を行う。「人以外」とは、カスケード型識別器620の判定段数が閾値T1(1≦T1≦N)以下であり、カスケード型識別器620の類似度が閾値T2より小さく、学習識別器632の類似度が閾値T3より小さいという条件を総て満たす場合、すなわち確実に「人以外」である場合を示す。「人以外」と判定された場合のみ学習識別器用特徴量分布42を更新する。条件を満たす場合にはステップS552に移行し、そうでない場合にはステップS60に移行する。
ステップS552では、「人以外」の特徴量分布42を更新する。現時刻の検出窓領域から得られた特徴量Xを用いて「人以外」の混合正規分布P(X|人以外)を逐次型EMアルゴリズムを用いて更新する。その後、ステップS60へ移行する。
ステップS70では、ステップS50で求められた判定情報履歴40に基づいて最終的に人が写っている領域を決定する。この処理は判定手段38にて行われる。ステップS70での処理は、図10に示したフローチャートに沿った第1の実施の形態における処理とステップS701の条件のみが異なる。ステップS701では、カスケード型識別器620の判定段数が最終段であり、カスケード型識別器620の類似度が閾値より大きく、学習識別器632の類似度が閾値より大きい条件を総て満たすときのみステップS702において人候補領域とする。
[初期設定時の処理]
本実施の形態における監視カメラ設置時の初期設定の処理について以下に説明する。初期設定時には、監視カメラの撮像領域内に人がいないという仮定のもと、「人以外」の学習識別器用特徴量分布42:P(X|人以外)を作成する。「人」の学習識別器用特徴量分布P(X|人)は予め収集した学習データから混合正規分布の各正規分布の混合比、平均、共分散行列を求めて作成する。
初期設定処理は、監視カメラを設置してから予め定めた枚数の画像から特徴量Xを求めて、それらの特徴量Xから「人以外」の学習識別器用特徴量分布P(X|人以外)を作成して終了するものとする。
初期設定処理は、図15のフローチャートに沿って行われる。ステップS101からS103は、ステップS10からS30と同じである。ステップS104は、学習識別器用特徴量Xを作成し、記憶部4の一時記憶用領域に記憶する。ステップS105は、ステップS60と同じである。
ステップS106では、所定の枚数の画像を処理したか否かの判定を行い、所定の枚数の画像を処理した場合はステップS107へ移行し、そうでない場合にはステップS102へ戻る。
ステップS107では、ステップS104において蓄積した特徴量Xを「人以外」の特徴量分布42:P(X|人以外)を推定するために用いる。特徴量分布P(X|人以外)は、予め定めた数の正規分布の和からなる混合正規分布で表されるものとし、各正規分布の混合比、平均、共分散行列をEMアルゴリズムによって求める。
また、上記実施の形態では、物体検出装置1の各部の機能を1つのコンピュータで実現する態様を説明したがこれに限定されるものではない。物体検出装置1の各部の機能は一般的なコンピュータをプログラムにより制御することによって実現できるものであり、これらの装置の各機能を適宜組み合わせて1つのコンピュータで処理させてもよいし、各機能をネットワーク等で接続された複数のコンピュータで分散処理させてもよい。