以下、本発明を実施するための形態について、添付した図面の図1〜8を参照しながら詳細に説明する。
[空間認識装置の構成について]
図1に示すように、本実施の形態の空間認識装置1は、撮像部2、記憶部3、処理部4、出力部5を含んで構成される。
撮像部2は、所定の空間(監視空間)を高速撮像して所定周期で図2に示すような、特徴量分布の集まりである分布画像を生成し、処理部4に出力する。なお、図2におけるx方向(水平方向)およびy方向(垂直方向)の一つ一つの矩形部分が画素に対応している。
撮像部2は、図3に示す複数の光電変換部20(20−1,20−2,…,20−N)を備える。複数の光電変換部20−1,20−2,…,20−Nのそれぞれは計測部であり、それぞれ監視空間に存在する物体(所定対象)からの反射光を光電変換して、反射光の輝度に応じた輝度信号を出力する。
また、撮像部2は、図3に示す特徴量分布算出部21を備える。特徴量分布算出部21は、複数の光電変換部20−1,20−2,…,20−Nからの輝度信号を一定時間保持し、保持した所定時間幅の輝度信号から、1または複数の光電変換部を単位とする特徴量ごとの時間頻度を特徴量分布として算出する。
本例では、1または複数の光電変換部を単位とする特徴量分布を複数算出し、それらの集まりによる画像を分布画像としている。
記憶部3は、ROM(Read Only Memory)、RAM(Random Access Memory)等のメモリ装置で構成され、各種プログラムや各種データを記憶する。また、記憶部3は、処理部4と接続されて処理部4との間でこれらの情報を入出力する。
処理部4は、CPU(Central Processing Unit )、DSP(Digital Signal Processor)、MCU(Micro Control Unit)等の演算装置で構成される。
処理部4は、記憶部3と接続され、記憶部3からプログラムを読み出して実行することにより各種処理・制御手段として動作する。また、処理部4は、各種データを記憶部3に記憶させ、各種データの読み出しを行う。
さらに、処理部4は、撮像部2および出力部5とも接続され、撮像部2からの分布画像を処理して強度エッジ分布画像と動きエッジ分布画像を算出し、算出した強度エッジ分布画像と動きエッジ分布画像を合成した合成エッジ分布画像の各所に判定領域を設定し、合成エッジ分布画像における各判定領域の特徴量どうしの関係性を表す特性値を後述する式(9)の識別関数に入力して判定領域に対する尤度分布を算出し、算出した各判定領域の尤度分布を基に物体の存在有無を判定し、物体の存在有りと判定した場合にアラーム信号を出力部5に出力する。
出力部5は、処理部4と接続され、処理部4からのアラーム信号を外部出力する。具体的には、出力部5は、通信装置で構成され、所定のネットワークを介して遠隔の警備センターにアラーム信号を伝送する。
さらに、図3の機能ブロック図を参照しながら各部の構成について説明する。
複数の光電変換部20−1,20−2,…,20−Nは、それぞれが撮像素子、電子シャッター、増幅器、A/D変換器を含む。電子シャッター、増幅器、A/D変換器は2以上の光電変換部20により共有させてもよい。
撮像素子は、CCD(Charge Coupled Devices)またはC−MOS(Complementary Metal Oxide Semiconductor )などで構成され、監視空間の可視光線の強度を計測して、計測した強度を電圧値とする輝度信号を出力する。
例えば、光電変換部20のそれぞれは、1/500秒ごとに電子シャッターを作動させて、作動時の撮像素子の電圧を増幅器で増幅し、A/D変換器でサンプリングすることにより、1/500秒ごとに輝度値を0〜255の256階調に離散化したディジタルの輝度信号を出力する。
複数の撮像素子は、所定の撮像面上に配置されて面をなし、当該面に監視空間を投影する。例えば、撮像素子を平面の基板上に、基板のX方向に等間隔で640個、Y方向に等間隔で480個というように、アレー状に配置し、1/500秒ごとに640×480画素の濃淡画像を撮像する。
また、複数の撮像素子は、それぞれがR、G、Bの各帯域に適合したカラーフィルタを備えた3つの撮像素子を単位とする撮像素子の組を、平面の基板上に、X方向に等間隔で640組、Y方向に等間隔で480組というように、アレー状に配置し、640×480画素のカラー画像を撮像することもできる。
さらに、RGBの輝度信号をHSVなど他の表色系に変換して出力してもよい。
光電変換部20の撮像周期(計測周期)は、検出対象の動きに対して十分短ければよく、例えば人を検出対象とする場合は、1/100秒、または1/200秒などでもよい。
また、階調数、光電変換部20の個数も上記例に限らず、検出対象や空間の大きさに応じた設定とすることができる。
以上のように、複数の光電変換部20−1,20−2,…,20−Nは、所定の撮像面上に配置され、所定の空間を撮像してそれぞれが輝度信号を出力する。すなわち、複数の計測部は、所定の計測面上に配置され、所定の空間の物理量を計測してそれぞれが計測信号を出力する。
なお、本実施の形態では、撮像部2が特徴量分布算出部21を含んで機能し、処理部4が特性値分布生成部22、状態認識部24を含んで機能し、記憶部3が対象情報記憶部23を含んで機能する。
特徴量分布算出部21は、バッファ、演算回路を含む。
バッファは、例えばリングバッファで構成され、複数の光電変換部20−1,20−2,…,20−Nからの輝度信号を一定時間保持し、撮像周期ごとの輝度値を循環記憶する。本例では、予め定めた頻度算出時間幅以上のバッファを光電変換部20の数だけ備える。例えば、撮像周期が1/500秒、頻度算出時間幅が1/5秒間であれば、バッファ長が100のバッファを光電変換部20の数だけ用意する。
演算回路は、バッファに保持した頻度算出時間幅の輝度信号から特徴量ごとの時間頻度を頻度算出周期で算出して、分布画像を生成し、特性値分布生成部22に出力する。
例えば演算回路は、撮像部2の撮像面上に予め設定された複数の小領域のそれぞれにおいて特徴量の正規化ヒストグラムを算出する。
例えば、小領域を濃淡画像の画素、特徴量を上記濃淡画像の輝度値とすることができる。つまり、光電変換部20と小領域が1対1対応し、特徴量はスカラである。
また、例えば、小領域をカラー画像の画素、特徴量をR、G、Bの輝度値としてもよい。この場合、光電変換部20と小領域が3対1対応し、特徴量は3次元ベクトルである。また、例えば、小領域を濃淡画像またはカラー画像の画素、特徴量を動きベクトルとすることもできる。
さらに、小領域は、濃淡画像またはカラー画像における近傍の複数画素(2×2画素、3×3画素など)としてもよい。
頻度算出周期は、頻度算出時間幅1/5秒間に対して、1/5秒とすることができる。この場合、オーバーラップも間引きもないということになる。
なお、頻度算出周期を頻度算出時間幅よりも短く設定してオーバーラップを設けてもよいし、頻度算出周期を頻度算出時間幅よりも長く設定して間引きしてもよい。
特徴量分布算出部21は、強度分布算出部210、動き分布算出部211を備え、2種類の特徴量分布を算出する。
強度分布算出部210は、複数の小領域のそれぞれにおいて、頻度算出時間幅の輝度信号の強度ごとの時間頻度を求めて強度分布を生成し、特性値分布生成部22に出力する。
例えば、1/5秒ごとに、各画素について、バッファから最新1/5秒間の列を読み出し、輝度値ごとの時間頻度を求めて、強度分布を算出する。
ここで、図4(a)はある画素における輝度信号の時間と輝度値の関係の一例を示す。図4(a)に示すように、輝度値が0〜255の範囲で時間の経過とともに変化したものとする。頻度算出時間幅Tの輝度値の数が例えば100個である場合、各輝度値の度数を計数し、計数結果のそれぞれを100で除して時間頻度を算出すると、当該画素における輝度値と時間頻度は図4(b)に示す正規化ヒストグラムのような関係になる。
動き分布算出部211は、小領域間で頻度算出時間幅より短い小区間における輝度信号が類似する小区間どうしを結ぶ動きベクトルを求め、複数の小領域のそれぞれにおいて、動きベクトルごとの時間頻度を求めて動き分布を算出し、特性値分布生成部22に出力する。
例えば、小区間の時間幅を1/500秒として最新1/5秒間の輝度信号に100の小区間を設定し、動きベクトルの探索範囲を撮像面のx,y方向にそれぞれ±2、時間方向に1/500秒とする。
動きベクトル(x,y,t)の値域は(0±2,0±2,1)となる。この場合、各画素について探索範囲内で輝度値が最も類似する画素を探索し、当該画素を始端とし類似する画素を終端とする99個のベクトルを求める。
そして、各画素において、上記値域に含まれる動きベクトルごとに度数を計数し、各計数結果を動きベクトルの総数である99で除して動きベクトルの正規化ヒストグラムを動き分布として算出する。
図5はある画素における動き分布算出の様子を示している。図5において、TL は頻度算出時間幅である。また、TS は小区間の時間幅である。図5において、小区間[t,t+1]の動きベクトルは(1,−1,1)、小区間[t+1,t+2]の動きベクトルは(0,−1,1)、…、小区間[t+TL −1,t+TL ]の動きベクトルは(2,0,1)となっている。これらの動きベクトルごとの時間頻度P(v)が動き分布である。
以上のように、特徴量分布算出部21は、計測面上(撮像部2の撮像面上)に設定された複数の小領域のそれぞれにおいて、所定時間幅の計測信号(輝度信号)から特徴量ごとの時間頻度を算出して分布画像を生成する。
各分布画像においては、非揺らぎ成分である真の特徴量(真の信号強度、真の動きベクトル)の時間頻度が有意に高い値を示し、これと比較して、揺らぎ成分である偽の特徴量(偽の信号強度、偽の動きベクトル)の時間頻度は十分に低いものとなる。
例えば、突発的なノイズが発生し、その振幅が大きかったとしても、分布画像においてはそのノイズの信号強度やそのノイズから求めた動きベクトルといった偽の特徴量の時間頻度が十分に低いものとなり、真の特徴量と偽の特徴量を区別可能となる。
特性値分布生成部22は、複数の小領域の特徴量が集まって示す特性値を求め、当該特性値ごとの時間頻度を保持した特性値分布を生成し、状態認識部24に出力する。
具体的には、特性値分布生成部22は、特性値ごとに、複数の小領域における特徴量の組み合わせのうち当該特性値の算出に用いた特徴量の組み合わせごとの時間頻度の積を総和して、当該特性値の時間頻度を算出する。
例えば、特性値は複数の小領域における特徴量の勾配(エッジ)であり、特性値分布は当該複数の小領域における勾配ごとの時間頻度を表す勾配分布である。本例では、後述する判定領域における勾配分布が認識に用いられる。特性値分布生成部22は、判定領域よりも小さな領域であるブロックを単位として勾配分布を求めておき、適宜、複数のブロックの勾配分布を連結することによって判定領域の勾配分布を算出し、状態認識部24に出力する。
また本例では、後述する判定領域における信号強度の勾配分布(強度エッジ分布)と動きベクトルの勾配分布(動きエッジ分布)を合成した勾配分布(合成エッジ分布)が認識に用いられる。そのために特性値分布生成部22は、強度分布から強度エッジ分布を算出する強度エッジ分布算出部220、動きベクトル分布から動きエッジ分布を算出する動きエッジ分布算出部221および強度エッジ分布と動きエッジ分布を合成して合成エッジ分布を算出するエッジ分布合成部222を備える。
強度エッジ分布算出部220は、複数の小領域における信号強度の複数の組み合わせに対して勾配を求め、信号強度の勾配ごとの時間頻度を求めて強度エッジ分布を生成し、強度エッジ分布画像をエッジ分布合成部222に出力する。
例えば、強度エッジ分布算出部220は、HOGにならい、各画素における輝度値の勾配方向およびその時間頻度、各画素における輝度値の勾配強度およびその時間頻度を算出し、セル単位で各勾配方向における勾配強度ごとの時間頻度を算出し、それらをブロック単位で連結して各ブロックにおける強度エッジ分布を算出する。
この場合、まず、強度分布画像上に5×5画素のセルを複数設定し、各セルの画素(x,y)ごとに、撮像面のx方向に隣接する一方の画素(x+1,y)の輝度値jx+1 と他方の画素(x−1,y)の輝度値jx-1 の差の絶対値である輝度差ix ごとの時間頻度P(ix )を下記式(1)より算出し、y方向に隣接する一方の画素(x,y+1)の輝度値jy+1 と他方の画素(x,y−1)の輝度値jy-1 と差の絶対値である輝度差iy ごとの時間頻度P(iy )を下記式(2)より算出する。
次に、下記式(3),(4)により、各セルの画素(x,y)ごとに、x方向の輝度差の時間頻度P(ix )およびy方向の輝度差の時間頻度P(iy )から、輝度値の勾配強度mごとの時間頻度P(m)と輝度値の勾配方向rごとの時間頻度P(r)を算出する。
続いて、輝度値の勾配方向rを20度刻みの9方向に量子化するとともに(R=0,20,40,…,160)、輝度値の勾配強度mを9段階に量子化し(M=m0,m1,m2,…,m8)、各セルにおいて、輝度値の勾配方向Rと輝度値の勾配強度Mの組み合わせごとに輝度値の勾配方向Rの時間頻度P(R)と勾配強度Mの時間頻度P(M)の積を総和してP(R,M)を算出する。
続いて、セルごとに当該セルを中心とする3×3のセル(ブロック)のP(R,M)を連結し、連結された時間頻度の合計値が1となるよう正規化してブロック単位の強度エッジ分布とする。
強度エッジ分布においては、動きのない物体の輪郭や模様などによる真のエッジの時間頻度が有意に高く表れ、一方で、ノイズなどの揺らぎ成分による偽のエッジの時間頻度が低く表れる。
動きエッジ分布算出部221は、複数の小領域における動きベクトルの複数の組み合わせに対して勾配を求め、動きベクトルの勾配ごとの時間頻度を求めて動きエッジ分布を生成し、動きエッジ分布画像をエッジ分布合成部222に出力する。
例えば、動きエッジ分布算出部221は、HOGにならい、各画素における動きベクトルの勾配方向および動きベクトルの勾配強度の時間頻度を算出し、それらを複数の画素からなるブロック単位で統合して動きエッジ分布を生成する。
この場合、まず、動き分布画像上にセルを複数設定し、各セルの画素(x,y)ごとに、撮像面のx方向に隣接する一方の画素(x+1,y)の動きベクトルのx成分vx+1 と他方の画素(x−1,y)の動きベクトルのx成分vx-1 との差ux ごとの時間頻度P(ux )を下記式(5)から算出し、y方向に隣接する一方の画素(x,y+1)の動きベクトルのy成分vy+1 と他方の画素(x,y−1)の動きベクトルのy成分vy-1 との差uy ごとの時間頻度P(uy )を下記式(6)から算出する。なお、動き分布画像上に設定する各セルの位置および大きさは強度分布画像上に設定した各セルと同一である。
次に、下記式(7),(8)により、各セルの画素(x,y)ごとに、x方向の差ux の時間頻度P(ux )およびy方向の差uy の時間頻度P(uy )から、動きベクトルの勾配強度mごとの時間頻度P(m)と動きベクトルの勾配方向rごとの時間頻度P(r)を算出する。
続いて、動きベクトルの勾配方向rを20度刻みの9方向に量子化するとともに(R=0,20,40,…,160)、動きベクトルの勾配強度mを9段階に量子化し(M=m0,m1,m2,…,m8)、各セルにおいて、動きベクトルの勾配方向Rと動きベクトルの勾配強度Mの組み合わせごとに動きベクトルの勾配方向Rの時間頻度P(R)と勾配強度Mの時間頻度P(M)の積を総和してP(R,M)を算出する。
続いて、セルごとに当該セルを中心とする3×3セルのブロックのP(R,M)を連結し、連結された時間頻度の合計値が1となるよう正規化してブロック単位の動きエッジ分布を生成する。
動きエッジ分布においては、動いている物体の輪郭や模様など、あるいは静止している物体において動いている部位の輪郭や模様などによる真のエッジの時間頻度が有意に高く表れ、一方で、ノイズなどの揺らぎ成分による偽のエッジの時間頻度が低く表れる。
エッジ分布合成部222は、各小領域における強度の勾配ごとの時間頻度と、当該小領域における、動きベクトルの勾配ごとの時間頻度を合成して当該小領域における勾配ごとの時間頻度を算出することにより合成エッジ分布を生成し、状態認識部24に出力する。なお、本例においては、合成をブロック単位で行う。
ここで、強度エッジ分布算出部220が算出した強度エッジ分布と動きエッジ分布算出部221が算出した動きエッジ分布はいずれも勾配方向ごとの勾配強度の時間頻度であり、分布の表現が共通している。
このように合成前の分布同士の表現が共通している場合、対応する位置の分布のいずれか1つの分布を選択することによって合成し、或いは対応する位置の分布どうしを重み付け加算することによって合成できる。
例えば、本例では、各ブロックにおいて勾配方向Rごとに、強度エッジ分布における勾配強度Mの時間頻度分布と動きエッジ分布における勾配強度Mの時間頻度分布のうちノルムが高い方を選択することによって合成する。
P(R,M)における勾配方向Nについてのノルムは、勾配強度Mごとにその時間頻度P(R,M)との積を勾配強度Mについて総和したΣM・P(R,M)によって定義できる。この定義の場合、分布の右側(勾配強度Mが大きい側)に偏った分布ほど選択されやすくなるため、被写体の各所にて強度エッジと動きエッジのうちの強く鮮明な方のエッジが合成できる。
特性値分布生成部22は、隣接関係にある2×4ブロックの全組み合わせをそれぞれ判定領域として設定し、各判定領域を構成するブロックの合成エッジ分布を所定順序で連結した当該判定領域の合成エッジ分布を状態認識部24に出力する。
図6に、ある判定領域における合成エッジ分布のイメージを例示する。当該判定領域はブロック0〜7からなり、各ブロックはセル0〜8からなっている。各セルは5×5画素であるから、判定領域は30×60画素の集まりすなわち1800個の小領域の集まりである。また、勾配方向Rと勾配強度Mと時間頻度P(R,M)の3軸からなるグラフで示した情報が判定領域の合成エッジ分布である。
図6の合成エッジ分布においては、グラフの左から一列目にブロック0のセル0における0度方向・強度m0 である勾配の時間頻度P(0,m0 )、0度方向・強度m1 である勾配の時間頻度P(0,m1 )、…、0度方向・強度m8 である勾配の時間頻度P(0,m8 )が並び、二列目にブロック0のセル0における20度方向・強度m0 〜m8 の勾配それぞれの時間頻度P(20,m0 )〜P(20,m8 )が並び、…、九列目にブロック0のセル0における160度方向・強度m0 〜m8 の勾配それぞれの時間頻度P(160,m0 )〜P(160,m8 )が並んでいる。続く十列目から十八列目にブロック0のセル1における0〜160度方向・強度m0 〜m8 の勾配それぞれの時間頻度P(0,m0 )〜P(160,m8 )が並ぶ。以下同様にブロック0のセル2〜8における勾配の時間頻度、ブロック1のセル0〜8における勾配の時間頻度、…、ブロック7のセル0〜8における勾配の時間頻度が並んでいる。
合成エッジ分布に含まれる勾配(特性値)のひとつひとつは、各勾配方向から選んだ任意のひとつの勾配強度を全勾配方向について並べたベクトルで表される。また、当該勾配(特性値)の時間頻度は、各勾配方向から選んだ勾配強度の時間頻度の和である。
例えば図6のグラフにおいて斜線で示した成分を並べたベクトル{(0,m3 ),(20,m4 ),…,(160,m3 ),(0,m4 ),…,(160,m3 ),(0,m4 ),…,(160,m4 )}が判定領域におけるひとつの勾配である。そして、その勾配の時間頻度は、P(0,m3 )+P(20,m4 )+…+P(160,m3 )+P(0,m4 )+…+P(160,m3 )+P(0,m4 )+…+P(160,m4 )である。
ちなみに図6のグラフで示した合成エッジ分布は9の(9×8)乗通りの勾配とその時間頻度を保持していることになる。
特性値分布生成部22は、このような、複数の小領域(画素)の集まりである判定領域について、複数の小領域の特徴量(輝度値)が集まって示す特性値(勾配)ごとの時間頻度を保持した特性値分布(合成エッジ分布)を生成する。
このように合成した合成エッジ分布においては、物体が動いていてもいなくても、あるいは物体において動いている部位があっても無くても物体の全体について輪郭や模様などの非揺らぎ成分による真のエッジの時間頻度が有意に高く表れ、一方で、ノイズなどの揺らぎ成分による偽のエッジの時間頻度が低く表れる。
ここで、図7は合成のイメージの一例を示している。図7において、小区間[t,t+1]から小区間[t+TL −1,t+TL ]までの間において、人体が左腕のみを動かしているものとする。この場合、動きのない人体の輪郭による真のエッジの時間頻度が有意に高く表れた強度エッジ分布が強度エッジ分布算出部220にて算出される。また、動いている人体の左腕の輪郭による真のエッジの時間頻度が有意に高く表れた動きエッジ分布が動きエッジ分布算出部221にて算出される。そして、エッジ分布合成部222は、各ブロックにおいて勾配方向Rごとに強度エッジ分布の勾配強度Mの時間頻度分布および動きエッジ分布の勾配強度Mの時間頻度分布のそれぞれについてノルムを算出し、ノルムが高い方の時間頻度分布を選択して強度エッジ分布と動きエッジ分布とを合成すると、人体の全体についての輪郭による真のエッジの時間頻度が有意に高く表れ、ノイズなどの揺らぎ成分による偽のエッジの時間頻度が低く表れた合成エッジ分布画像を得る。
なお、特性値どうしで分布の表現が共通しない場合は、各特性値を表すベクトルを連結することにより合成できる。
例えば、一方の特性値がベクトル(a0,a1,…,aN)、他方の特性値がベクトル(b0,b1,…,bM)、であれば合成後の特性値はベクトル(a0,a1,…,aN,b0,b1,…,bM)となる。
このように合成した合成エッジ分布においても、非揺らぎ成分による真のエッジの時間頻度が揺らぎ成分による偽のエッジの時間頻度よりも有意に高い関係は維持される。よって、物体が動いていてもいなくても、あるいは物体において動いている部位があっても無くても物体の全体について輪郭や模様などの非揺らぎ成分による真のエッジの時間頻度が有意に高く表れ、一方で、ノイズなどの揺らぎ成分による偽のエッジの時間頻度が低く表れる。
対象情報記憶部23は、対象の認識に用いる識別関数のパラメータおよび当該パラメータの時間頻度を予め記憶している。
識別関数は、判定領域が所定対象の特徴を有する度合いである評価値を判定領域の特性値から導出する関数である。例えばサポートベクターマシン(SVM:Support Vector Machine)法を用いて対象を認識する場合、識別関数のパラメータは識別境界法線ベクトルaと識別境界バイアス項bの組であり、評価値は尤度である。aとbの組は複数通り記憶され、各aの値に対してその時間頻度P(a)が記憶され、各bの値に対してその時間頻度P(b)が記憶される。また尤度は値が大きいほど判定領域に人が写っている可能性が高いことを表す。なお所定対象は例えば人である。
識別関数のパラメータおよびその時間頻度は予めの学習により導出される。すなわち、多数の人のそれぞれを撮像して得た多数のポジティブ学習データ、およびそれぞれが人以外を撮像して得た多数のネガティブ学習データにSVM法を適用すると、ポジティブ学習データとネガティブ学習データを識別するのに適した識別境界法線ベクトルaと識別境界バイアス項bが導出される。各学習データの大きさは判定領域と同一の2×4ブロックである。各学習データは合成エッジ分布画像におけるひとつひとつの勾配である。各aの導出に用いた勾配の時間頻度を総和し、正規化することで当該aの時間頻度が算出でき、各bの導出に用いた勾配の時間頻度を総和し、正規化することで当該bの時間頻度が算出できる。
なお、SVM法に代えて、アダブースト(AdaBoost)法、他のブースティング(Boosting)法、3層以上の層を持つパーセプトロン法またはランダムフォレスト法等など他の機械学習法を利用することもできる。
または、機械学習法に代えて、パターンマッチングを利用することもできる。この場合、識別関数のパラメータはパターンであり、ポジティブ学習データのみから学習可能である。
状態認識部24は、特性値分布を用いて監視空間の状態を認識し、認識結果を出力部5に出力する。
本例において状態認識部24は監視空間における所定対象の有無を判定する。そのために、状態認識部24は、識別関数を用いて特性値分布から各特性値に対する評価値の時間頻度を算出して評価値分布を生成し、評価値分布を用いて監視空間における所定対象の有無を判定する。その際、状態認識部24は、識別関数から定まる値域内の複数の評価値のそれぞれに対して当該評価値が導出される特性値を特定し、少なくとも特定した特性値の時間頻度を評価値ごとに総和して評価値分布を生成する。
なお、SVM法における尤度のように評価値が連続値である場合、状態認識部24は評価値を量子化して評価値分布を生成する。例えば尤度の値域が[−1,1]である場合、この値域を1000分割し、評価値分布における尤度を−1.000,−0.999,−0.998,…,0.999,1.000などとする。
具体的には、状態認識部24は、まず、対象情報記憶部23から識別関数のパラメータを読み出し、当該パラメータを用いて識別関数を構築する。識別関数はパラメータの組の数だけ構築される。
次に状態認識部24は、各判定領域の勾配分布に含まれている複数通りの勾配のそれぞれを各識別関数に入力して、その出力として尤度を得、得た尤度を上述したように量子化する。
さらに状態認識部24は、各尤度の算出に用いられた識別関数のパラメータの時間頻度を対象情報記憶部23から読み出し、各尤度の算出に用いられた識別関数のパラメータの時間頻度と当該尤度の算出に用いられた判定領域の勾配の時間頻度の積を尤度ごとに総和して当該尤度の時間頻度を求める。求められた尤度ごとの時間頻度が評価値分布である。すなわち状態認識部24は、下記式(9)に従い、各尤度sの算出に用いられた識別境界法線ベクトルaの時間頻度P(a)および識別境界バイアス項bの時間頻度P(b)と、当該尤度sの算出に用いられた判定領域の勾配h(R,M)の時間頻度P(h(R,M))の積を総和して当該尤度sの時間頻度P(s)を算出する。
これにより、各判定領域について、尤度ごとの時間頻度、すなわち尤度分布が算出される。つまり、状態認識部24は、各評価値の算出に用いた特性値の時間頻度と識別関数用パラメータの時間頻度の積を総和して当該評価値の時間頻度を算出する。
なお、上式(9)は対象情報記憶部23が識別関数のパラメータとその時間頻度を記憶する場合の例である。対象情報記憶部23が識別関数のパラメータのみを記憶し、その時間頻度を記憶しない構成においては、式(9)の右辺は∫a∫b{P(h(R,M))}dadbとすることができる。つまり、状態認識部24は、少なくとも、各尤度(評価値)の算出に用いた勾配(特性値)の時間頻度を総和して当該尤度(評価値)の時間頻度を算出する。
続いて状態認識部24は、尤度分布の最頻値(すなわち最も時間頻度の高い尤度)を求め、予め定めた閾値を超える最頻値が算出された判定領域があれば監視空間に人が存在すると判定し、閾値を超える最頻値が算出された判定領域がひとつもなければ監視空間に人が存在しないと判定する。閾値は、例えば尤度の値域[−1,1]に対して、0とすることができる。
なお、最頻値の代わりに、尤度分布において予め定めた下限値以上の時間頻度を有する尤度を抽出してもよい。この場合、抽出した尤度の平均値、抽出した尤度をその時間頻度で重み付け加算した加重平均値、抽出した尤度の最大値、または抽出した尤度の最小値を予め定めた閾値と比較して対象の有無を判定することができる。
評価値分布においても、非揺らぎ成分による真の評価値の時間頻度が揺らぎ成分による偽の評価値の時間頻度よりも有意に高い関係は維持される。よって、評価値分布における最頻値や評価値分布において下限値以上の時間頻度を有する評価値を認識に用いることによって、揺らぎの影響を排除し、非揺らぎ成分による評価値に基づいた高精度な認識が可能となる。
次に、上記のように構成される空間認識装置1における撮像部2と処理部4の動作について図8のフローチャートを参照しながら説明する。
撮像部2の各光電変換部20(20−1,20−2,…,20−N)は定期的に電子シャッターが作動するたびに、撮像素子の電圧をA/D変換して輝度値をサンプリングし、サンプリングされた各輝度値を撮像部2の特徴量分布算出部21がバッファに書き込むことで輝度信号をバッファリングする(S1)。
特徴量分布算出部21は、バッファへの書き込み回数あるいはバッファにおける最新の書き込み位置などを基に頻度算出周期が到来したか否かを判定する(S2)。
例えば、撮像周期を1/500秒、頻度算出周期を1/5秒とすれば、100個の輝度値を書き込むたびに頻度算出周期が到来する。
頻度算出周期が到来していなければ(S2にてNO)、特徴量分布算出部21は処理をステップS1へ戻し、バッファリングを続ける。
他方、頻度算出周期が到来すると(S2にてYES)、特徴量分布算出部21は処理をステップS3へ進める。
特徴量分布算出部21は、強度分布算出部210として動作し、バッファから最新の書き込み位置を終端とする所定時間幅の輝度信号を小領域ごとに読み出し、小領域ごとに各輝度値の時間頻度を算出することによって強度分布を求め、強度分布画像を生成する(S3)。
例えば、撮像周期を1/500秒、時間幅を1/5秒間、輝度値を0〜255の整数、小領域を画素とすれば、画素ごとに、100個の輝度値から輝度値0,1,…,255の度数を計数して、計数結果のそれぞれを100で除した正規化ヒストグラムを強度分布として算出することによって強度分布画像を生成する。
次に、特徴量分布算出部21は、動き分布算出部211として動作し、バッファから最新の書き込み位置を終端とする上記時間幅の輝度信号を小領域ごとに読み出し、小領域ごとに各動きベクトルの時間頻度を算出することによって動き分布を求め、動き分布画像を生成する(S4)。
このとき動き分布算出部211は、上記時間幅の輝度信号を複数の小区間に分割し、また各小領域を中心とする所定の探索範囲を設定し、探索範囲内にて小区間単位で複数時刻の動きベクトルを求めて、動きベクトルの時間頻度を算出する。
例えば、撮像周期を1/500秒、時間幅を1/5秒間、小区間を時間幅1/500秒でオーバーラップなし、小領域を画素、探索範囲をx、y方向それぞれに±2とすれば、画素ごとに、小区間の99個の組み合わせから25通りの動きベクトル(−2,−2,1),(−1,−2,1),…,(2,2,1)の度数を計数して、計数結果のそれぞれを99で除した正規化ヒストグラムを動き分布として算出することによって動き分布画像を生成する。
撮像部2は、生成した強度分布画像および動き分布画像を処理部4に出力する。
ところで、図8のフローチャートでは撮像部2と処理部4の処理を一連の処理として表現しているが、分布画像を出力した撮像部2は処理部4によるステップS5〜S10の処理終了を待たずに、ステップS1へ処理を戻してもよい。また、ステップS3とS4の順序は逆でもよいし、並列処理してもよい。
続いて、処理部4の特性値分布生成部22は、強度エッジ分布算出部220として動作し、入力された強度分布画像から強度エッジ分布画像を生成する(S5)。
例えば、強度エッジ分布算出部220は、強度分布画像の画素ごとに式(1)、式(2)を適用して当該画素における輝度差ごとの時間頻度を算出し、各画素について輝度差ごとの時間頻度に式(3)、式(4)を適用して輝度の勾配強度ごとの時間頻度および輝度の勾配方向ごとの時間頻度を算出して、これらをブロック単位で輝度の勾配方向ごとの勾配強度の時間頻度として統合することにより強度エッジ分布画像を生成する。
続いて、特性値分布生成部22は、動きエッジ分布算出部221として動作し、入力された動き分布画像から動きエッジ分布画像を生成する(S6)。
例えば、動きエッジ分布算出部221は、動き分布画像の画素ごとに式(5),(6)を適用して当該画素における差ベクトルごとの時間頻度を算出し、各画素について差ベクトルごとの時間頻度に式(7)、式(8)を適用して動きベクトルの勾配強度ごとの時間頻度および動きベクトルの勾配方向ごとの時間頻度を算出して、これらをブロック単位で動きベクトルの勾配方向ごとの勾配強度の時間頻度として統合することにより動きエッジ分布画像を生成する。
なお、ステップS5とS6の順序は逆でもよいし、並列処理してもよい。
続いて、特性値分布生成部22は、エッジ分布合成部222として動作し、ステップS5にて生成した強度エッジ分布画像とステップS6にて生成した動きエッジ分布画像を合成して合成エッジ分布画像を生成する(S7)。
例えば、エッジ分布合成部222は、各ブロックにおいて勾配方向ごとに、輝度の勾配強度の時間頻度分布および動きベクトルの勾配強度の時間頻度分布のそれぞれについてノルムを算出し、ノルムが高い方の時間頻度分布を合成エッジ分布画像における当該ブロックの当該勾配方向における勾配強度の時間頻度分布として選択する。
このようにしてエッジ分布合成部222はブロック単位で特性値分布の合成を行った後、隣接関係にある2×4ブロックの全組み合わせで特性値分布を連結して、判定領域の特性値分布とする。例えば図6に示したような合成エッジ分布が2×4ブロックの組み合わせの数だけ生成される。
続いて、処理部4は、状態認識部24として動作し、監視空間における対象の有無を判定する(S8)。
まず、状態認識部24は、対象情報記憶部23から識別関数用のパラメータの各組を読み出し、各組のパラメータをセットした識別関数を構築する。
続いて、状態認識部24は、構築した各識別関数に各判定領域の特性値分布に含まれる各特性値を入力し、その出力として当該判定領域に対する評価値を算出する。例えば、識別境界法線ベクトルaと識別境界バイアス項bの組み合わせの数だけ構築された識別関数のそれぞれに、2×4ブロックの組み合わせの数だけ生成された特性値分布のそれぞれに含まれる各勾配を入力して尤度sが算出される。
続いて、状態認識部24は、評価値ごとに、当該評価値の算出に用いた特性値の時間頻度と当該評価値の識別パラメータの時間頻度の積を総和して当該評価値の時間頻度を算出することで評価値分布を生成する。例えば尤度sのそれぞれについて、当該尤度sの算出に用いた勾配h(R,M)の時間頻度P(h(R,M))と当該尤度sの算出に用いた識別境界法線ベクトルaの時間頻度P(a)と当該尤度sの算出に用いた識別境界バイアス項bの時間頻度P(b)に式(9)を適用して、当該尤度sの時間頻度P(s)を算出することで尤度分布を生成する。
続いて、状態認識部24は、各判定領域の尤度分布を基に対象の有無を判定する(S9)。
例えば、状態認識部24は、尤度分布の最頻値を閾値と比較し、閾値以上の最頻値が算出された判定領域があれば、その領域に人が存在しているとして(ステップS9にてYES)、出力部5に所定のアラーム信号を出力させる(S10)。
なお、アラーム信号には人が存在していると判定した判定領域の座標やその尤度分布を含ませてもよい。また、該当する判定領域が複数の場合は、それらの情報をまとめて一つのアラーム信号に含ませてもよい。
そして、出力部5は、状態認識部24からアラーム信号が入力されると、そのアラーム信号を警備センターへ送信する。
なお、閾値値以上の尤度分布が算出された判定領域がなかった場合は(S9にてNO)、ステップS10の処理はスキップされる。
以上の処理を終えると処理はステップS1へ戻され、撮像部2は次の分布画像の生成を行い、処理部4は撮像部2からの分布画像の入力を待つ。
[変形例]
上述した実施の形態では、人を検出対象とする例を示したが、検出対象は人に限らない。例えば、検出対象を車両または什器など、人以外の物体とすることもでき、人の顔または手など人の特定部位とすることもできる。或いは、検出対象を性別などの属性、人の顔の向きまた姿勢などの状態とすることもできる。
また、上述した実施の形態およびその変形例において、特性値分布生成部22は、強度エッジ分布と動きエッジ分布を合成したが、強度エッジ分布算出部220として算出した強度エッジ分布をそのまま状態認識部24に出力することもできる。部屋のレイアウトを検出する目的で什器を検出する場合など、検出対象が静止物体である場合は、高精度な上に動き分布の算出、動きエッジ分布の算出および合成の処理が不要な分だけ処理負荷を軽減できる。
また、特性値分布生成部22は、動きエッジ分布算出部221として算出した動きエッジ分布をそのまま状態認識部24に出力することもできる。走行中の車両を検出する場合など、検出対象が剛体の移動物体である場合は、高精度な上に強度分布の算出や合成の処理が不要な分だけ処理負荷を軽減できる。
また、上述した実施の形態およびその変形例において、特性値分布生成部22は、特性値としてHOGにならった勾配を算出したが、勾配は、HOG以外にも、ソーベルオペレータ、ロバーツオペレータ、キャニーフィルタ、ラプラシアンなど公知の種々のエッジオペレータにならって算出することができる。すなわち、これらのいずれかのエッジオペレータに従って求まる輝度勾配値ごとに当該輝度勾配値の元となった輝度値の時間頻度を積算して各輝度勾配値の時間頻度を算出する。同様にこれらのいずれかのエッジオペレータに従って求まる動きベクトルの勾配値ごとに当該動きベクトルの勾配値の元となった動きベクトルの時間頻度を積算して各動きベクトルの勾配値の時間頻度を算出する。
また、上述した実施の形態およびその変形例において、特性値分布生成部22は特徴量の勾配として勾配方向ごとの勾配強度を用いたが、勾配方向の成分にのみ着目して特徴量の勾配方向を特性値としてもよいし、勾配強度の成分にのみ着目して特徴量の勾配強度を特性値としてもよい。
なお、上述した実施の形態および各変形例では特性値を勾配とする例を示したが、特性値は勾配に限らない。ハールライク(Haar-Like )特徴にならって、任意の2つの小領域の輝度差を特性値とすることができる。または、セルフシミラリティ(Self-Similarity )にならって、画像内における各小領域の座標を1つ目の軸とし、注目する小領域の特徴量とその他の小領域の特徴量の間の尤度を2つ目の軸とするヒストグラムを特性値とすることができる。または、ラベリング処理の結果であるラベルを特性値とすることもできる。このラベルは、例えば、小領域間で動きベクトルどうしを比較して尤度が所定値以上の小領域どうしに同一のラベルを付与する処理により生成できる。或いは、このラベルは、例えば、小領域間で輝度値と動きベクトルを連結した特徴量どうしを比較して尤度が所定値以上の小領域どうしに同一のラベルを付与する処理により生成できる。または、セルやブロックごとの平均輝度値を特性値とすることもできる。
また、上述した実施の形態および各変形例において、特徴量分布算出部21は、処理部4内で実現してもよい。その場合、撮像部2は、撮像周期ごとの輝度値を並べた撮像画像を順次処理部4に出力する。処理部4は、特徴量分布算出部21として動作し、撮像画像を記憶部3にバッファリングして頻度算出周期ごとに特徴量分布を生成する。
また、上述した実施の形態および各変形例では、空間の状態として対象が存在している状態、対象が存在していない状態を認識したが、空間に変化がある状態、変化がない状態を認識することもできる。例えば空間認識部24は上述したラベルにおける最頻値の動きベクトルの大きさが所定値以上である場合に変化がある状態、所定値以上のラベルがない場合に変化のない状態と認識する。あるいは、前後する時間に生成した平均輝度値分布における最頻値の差が所定値以上の場合に変化があると認識し、所定値以上の差が算出されない場合に変化なしと認識する。
上述した実施の形態および各変形例では、計測部が監視空間の可視光線の強度に応じた振幅を有する輝度信号を出力する構成としているが、これに限定されるものではない。
例えば、計測部が監視空間の近赤外線の強度に応じた振幅を有する輝度信号を出力する構成、計測部が監視空間の赤外線の強度に応じた振幅を有する輝度信号を出力する構成、計測部が監視空間の紫外線の強度に応じた振幅を有する輝度信号を出力する構成、計測部が監視空間のX線の強度に応じた振幅を有する輝度信号を出力する構成、計測部としての距離センサが当該計測部から監視空間に存在する対象までの距離に応じた振幅を有する距離信号を出力する構成など、計測部が空間の所定物理量を計測して計測信号を出力する構成であってもよい。なお、上記距離センサは、例えば、レーザー光を投受光する方式、マイクロ波またはミリ波などの電磁波を送受信する方式、超音波を送受信する方式などが考えられる。
以上、本発明に係る空間認識装置の最良の形態について説明したが、この形態による記述及び図面により本発明が限定されることはない。すなわち、この形態に基づいて当業者等によりなされる他の形態、実施例及び運用技術などはすべて本発明の範疇に含まれることは勿論である。