説明

人物検出装置、人物検出方法及び人物検出プログラム

【課題】カメラで撮像した撮像画像において、オフィス内等の雑多な環境下においても、撮像画像から人物を検出することを可能にした人物検出装置を提供する。
【解決手段】人物検出装置1は、撮像画像から移動体の領域である対象領域と、当該移動体までの距離である対象距離とを検出する移動体検出手段10と、対象領域において、移動体を人物と仮定したときの、対象距離に対応した頭部領域を設定する頭部領域設定手段20と、人物の頭部領域に対応する所定サイズのサンプル画像を記憶するサンプル画像記憶手段40と、撮像画像内の頭部領域を所定サイズに変換してサンプル画像と比較することで、移動体が人物であるか否かを判定する人物判定手段30と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラによって撮像された画像から、人物を検出する人物検出装置、人物検出方法及び人物検出プログラムに関する。
【背景技術】
【0002】
従来、CCD等のカメラによって撮像された画像から、その画像上に存在する人物を検出する手法としては、逐次入力される画像(フレーム画像)毎に差分をとることで背景を除去した差分画像を生成し、前景となる移動体の領域を人物の領域として検出する、いわゆる背景差分法が知られている(特許文献1等参照)。
例えば、特許文献1で開示されている技術(以下、従来技術という)では、前景となる領域が人物以外の領域となることを考慮し、その領域の縦横比、面積比等の物理的な特徴量と、予め保持している人物の物理的な特徴量とを比較することで、領域が人物を示す領域であるか否かの判定を行っている。さらに、この従来技術では、エッジパターンによるパターン認識によっても人物の判定を行っている。
【0003】
そして、この従来技術では、前景の領域を、物理的特徴量により人物と判定した場合と、パターン認識により人物と判定した場合とで異なる追跡回数を設けて、その回数分だけ、追跡した領域が人物と判定された場合にのみ、最終的にその領域が人物を示す領域であると判定する。このように、従来技術では、物理的特徴量による判定と、パターン認識による判定とを並列して行うことで、画像中の移動体に対する人物検出の精度を高めている。
また、一般的な背景差分法においては、カメラ自体が動く場合、逐次入力されるフレーム画像毎に、背景の位置合わせを行ったのちに差分をとることで、移動体(人物)の検出を行っている。
【特許文献1】特開2005−128815号公報(段落0037〜0048、図1及び図2)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、前記した従来技術において、物理的特徴量により人物を検出する手法は、領域の縦横比、面積比等を特徴量として用いているため、人物の全身が画像内に撮像されていることが、人物検出のための前提となる。このため、従来技術では、例えば、机等によって人物の一部が隠れるオフィス内等の雑多な環境下において、人物を検出することができないという問題がある。
【0005】
また、従来技術において、パターン認識により人物を検出する手法は、予め保持しているパターンと、画像中の移動体のパターンとがほぼ同じ大きさとなることが、人物検出のための前提となる。このため、前記した雑多な環境下において、人物がカメラから離れ過ぎている、あるいは、近づき過ぎているといった通常起こり得る状況で、画像内の人物の領域が、所定パターンに対して小さい場合、あるいは、大きい場合に、人物を検出することができないという問題がある。
【0006】
また、一般的な背景差分法では、カメラから所定時間間隔でフレーム画像が入力される場合、少ないフレーム画像で確実に移動体を検出するため、背景の位置合わせが正しく行われない場合であっても、差分計算を行い、移動体を検出するため、実際は静止している物体であっても、誤って移動体(人物)として検出してしまうという問題がある。
【0007】
本発明は、以上のような問題点に鑑みてなされたものであり、オフィス内等の雑多な環境下においても、撮像画像から人物を検出することを可能とし、さらに、静止物体を人物として誤検出することを防止することが可能な人物検出装置、人物検出方法及び人物検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、前記目的を達成するために創案されたものであり、まず、請求項1に記載の人物検出装置は、複数のカメラで移動体を撮像した複数の撮像画像から、当該撮像画像内に含まれる人物を検出する人物検出装置であって、前記複数の撮像画像の視差と時系列に入力される撮像画像の差分とに基づいて、前記撮像画像内における前記移動体の領域である対象領域と、当該移動体までの距離である対象距離とを移動体情報として検出する移動体検出手段と、この移動体検出手段で検出された対象領域において、前記移動体を人物と仮定したときの予め定めた大きさの頭部領域を、前記対象距離に対応した大きさで設定する頭部領域設定手段と、人物の前記頭部領域に対応する所定サイズのサンプル画像を記憶するサンプル画像記憶手段と、前記頭部領域設定手段で設定された撮像画像内の頭部領域を前記所定サイズに変換して前記サンプル画像と比較することで、前記移動体が人物であるか否かを判定する人物判定手段と、を備える構成とした。
【0009】
かかる構成によれば、人物検出装置は、移動体検出手段によって、複数の撮像画像の視差から移動体までの距離を算出し、時系列に入力される撮像画像の差分から移動体の動きを検出する。これによって、人物検出装置は、撮像画像内における移動体の領域(対象領域)と、移動体までの距離(対象距離)とを検出することができる。
そして、人物検出装置は、頭部領域設定手段によって、移動体を人物と仮定した頭部領域を設定する。このとき、対象距離が分かっていることから、頭部領域の大きさを対象距離に応じた大きさに設定することができる。
【0010】
そして、人物検出装置は、人物判定手段によって、撮像画像内の頭部領域を、サンプル画像記憶手段に記憶されているサンプル画像と同じ大きさに変換してサンプル画像と比較することで、移動体が人物であるか否かを判定する。このように、基準となる大きさを所定サイズとして決めておくことで、対象距離が異なることで大きさが異なる頭部領域を、一定の基準で比較することができる。
【0011】
また、請求項2に記載の人物判定装置は、請求項1に記載の人物検出装置において、前記サンプル画像は前記頭部領域の形状を示す画像であって、前記人物判定手段が、前記頭部領域設定手段で設定された頭部領域に対応するエッジ画像である頭部エッジ画像を生成する頭部エッジ画像生成手段と、この頭部エッジ画像生成手段で生成された頭部エッジ画像を、前記所定サイズの正規化画像に変換するサイズ正規化手段と、このサイズ正規化手段で変換された正規化画像内の隙間を補完した補完画像を生成する補完手段と、前記補完画像と前記サンプル画像との類似度に基づいて、前記移動体を人物と判定する類似度判定手段と、を備える構成とした。
【0012】
かかる構成によれば、人物検出装置は、頭部エッジ画像生成手段によって、頭部領域に対応するエッジ画像を生成し、サイズ正規化手段によって、所定サイズの正規化画像に変換する。また、人物検出装置は、補完手段によって、正規化画像内の隙間を補完した補完画像をする。これによって、人物検出装置は、補完画像とサンプル画像とを、頭部領域の形状として比較することができる。
そして、人物検出装置は、類似度判定手段によって、補完画像とサンプル画像との類似度を算出することで、移動体が人物であるか否かを判定する。
【0013】
さらに、請求項3に記載の人物検出装置は、請求項2に記載の人物検出装置において、前記サンプル画像の予め定めた基準となる位置に、前記補完画像の基準となる位置を合わせる画像シフト手段を備える構成とした。
【0014】
かかる構成によれば、人物検出装置は、画像シフト手段によって、サンプル画像の基準位置に補完画像の基準位置を合わせるように、補完画像を上下左右にシフトさせる。この基準位置は、例えば、画像の重心位置である。あるいは、上下に画像をシフトさせる場合は、基準位置は頭部の上端位置でもよい。
【0015】
また、請求項4に記載の人物検出装置は、請求項2又は請求項3に記載の人物検出装置において、前記補完手段が、前記頭部エッジ画像生成手段で生成された頭部エッジ画像の領域について、拡大及び縮小処理をそれぞれ複数回行うことで、当該頭部エッジ画像内の隙間を補完することを特徴とする。
【0016】
かかる構成によれば、人物検出装置は、補完手段において、頭部エッジ画像の領域を複数回拡大することで、頭部領域内の隙間(ギャップ)を埋める。なお、この拡大によって、頭部領域は、実際の頭部領域よりも大きくなっているため、拡大と同じ回数だけ縮小を行う。なお、拡大された頭部領域は隙間が充填された状態となっているため、縮小を行っても内部に隙間が発生することがない。これによって、補完手段は、元の頭部領域の大きさで、隙間のない画像を生成することができる。
【0017】
さらに、請求項5に記載の人物検出装置は、請求項1乃至請求項4のいずれか一項に記載の人物検出装置において、前記サンプル画像記憶手段が、人物の向きが異なる複数のサンプル画像を記憶していることを特徴とする。
【0018】
かかる構成によれば、人物検出装置は、サンプル画像記憶手段に、人物の向きが異なる複数のサンプル画像を記憶しておくことで、移動体として検出された人物の向きが、例えば、正面を向いていたり、右側を向いていたり等、異なる向きであっても、判定手段において人物の判定が可能になる。
【0019】
また、請求項6に記載の人物検出装置は、請求項1乃至請求項5のいずれか一項に記載の人物検出装置において、前記移動体検出手段が、前記対象距離が所定範囲内である場合に、前記移動体情報を出力することを特徴とする。
【0020】
かかる構成において、人物検出装置は、移動体検出手段において、移動体までの距離を対象距離として検出することができるため、その距離が所定範囲内である場合にのみ移動体情報を出力する。この所定範囲は、人物検出装置が精度よく人物を検出可能な範囲とし、予め測定した検出結果に基づいて設定されるものである。
【0021】
さらに、請求項7に記載の人物検出方法は、複数のカメラで移動体を撮像した複数の撮像画像から、当該撮像画像内に含まれる人物を検出する人物検出方法であって、前記複数の撮像画像の視差と時系列に入力される撮像画像の差分とに基づいて、前記撮像画像内における前記移動体の領域である対象領域と、当該移動体までの距離である対象距離とを、移動体検出手段により移動体情報として検出するステップと、前記対象領域において、前記移動体を人物と仮定したときの予め定めた大きさの頭部領域を、頭部領域設定手段により前記対象距離に対応した大きさで設定するステップと、前記頭部領域に対応するエッジ画像である頭部エッジ画像を、頭部エッジ画像生成手段により生成するステップと、前記頭部エッジ画像を、サイズ正規化手段により所定サイズの正規化画像に変換するステップと、前記正規化画像内の隙間を補完した補完画像を、補完手段により生成するステップと、前記補完画像と、予めサンプル画像記憶手段にサンプル画像として記憶してある前記所定サイズの頭部領域の画像との類似度を、類似度算出手段により算出するステップと、前記類似度に基づいて、判定手段により前記移動体を人物と判定するステップと、を含んでいることを特徴とする。
【0022】
また、請求項8に記載の人物検出プログラムは、複数のカメラで移動体を撮像した複数の撮像画像から、当該撮像画像内に含まれる人物を検出するために、コンピュータを、前記複数の撮像画像の視差と時系列に入力される撮像画像の差分とに基づいて、前記撮像画像内における前記移動体の領域である対象領域と、当該移動体までの距離である対象距離とを移動体情報として検出する移動体検出手段、この移動体検出手段で検出された対象領域において、前記移動体を人物と仮定したときの予め定めた大きさの頭部領域を、前記対象距離に対応した大きさで設定する頭部領域設定手段、この頭部領域設定手段で設定された頭部領域に対応するエッジ画像である頭部エッジ画像を生成する頭部エッジ画像生成手段、この頭部エッジ画像生成手段で生成された頭部エッジ画像を、所定サイズの正規化画像に変換するサイズ正規化手段、このサイズ正規化手段で変換された正規化画像内の隙間を補完した補完画像を生成する補完手段、この補完手段で生成された補完画像と、予めサンプル画像記憶手段にサンプル画像として記憶してある前記所定サイズの頭部領域の画像との類似度を算出する類似度算出手段、この類似度算出手段で算出された類似度に基づいて、前記移動体を人物と判定する判定手段、として機能させることを特徴とする。
【発明の効果】
【0023】
本発明によれば、頭部領域によって移動体が人物であるか否かを判定するため、オフィス内等の雑多な環境下においても、撮像画像から人物を検出することができる。また、本発明によれば、フレーム画像間の背景の位置合わせが正しく行われずに、誤って静止物体を移動体であると認識した場合であっても、それが人物であるか否かを判定することができるため、精度よく人物を検出することができる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施の形態について図面を参照して説明する。
[人物検出装置の構成]
図1は、本発明に係る人物検出装置の全体構成を示したブロック図である。図1に示すように人物検出装置1は、複数のカメラ2で撮像された撮像画像から、人物を検出するものである。ここでは、人物検出装置1は、移動体検出手段10と、頭部領域設定手段20と、人物判定手段30と、サンプル画像記憶手段40とを備えている。
【0025】
移動体検出手段10は、複数のカメラ2で撮像された撮像画像から、動きのある移動体を検出するものである。ここでは、移動体検出手段10は、撮像画像から移動体の領域を輪郭(対象領域)として抽出するとともに、移動体までの距離に対応する画素からなる対象距離画像(対象距離)を生成し、その輪郭及び対象距離画像を、移動体情報として頭部領域設定手段20に出力する。
【0026】
頭部領域設定手段20は、移動体検出手段10で検出された移動体の輪郭(対象領域)及び対象距離画像(対象距離)に基づいて、移動体を人物と仮定したときの予め定めた大きさの頭部領域を、対象距離に対応した大きさで設定するものである。ここでは、頭部領域設定手段20は、輪郭の上部(例えば、最上端)の画素位置を基準とした予め定めた範囲内において、対象距離画像の画素分布に基づいて、移動体を人物と仮定したときの頭部領域を設定する。この頭部領域設定手段20で設定された頭部領域は、人物判定手段30に出力される。
【0027】
人物判定手段30は、頭部領域設定手段20で設定された頭部領域に基づいて、移動体が人物であるか否かを判定するものである。ここでは、人物判定手段30は、頭部領域の画像と、予めサンプル画像記憶手段40に記憶されているサンプル画像とを比較することで、移動体が人物であるか否かを判定する。なお、このとき、人物判定手段30は、対象距離に基づいて、頭部領域の画像とサンプル画像との大きさを合わせることで、比較を可能としている。
【0028】
サンプル画像記憶手段40は、人物の頭部領域の形状を示す画像を予めサンプル画像として記憶しておくものであって、ハードディスク等の一般的な記憶手段である。このサンプル画像記憶手段40には、予め所定サイズ(例えば、32×32画素)の大きさのサンプル画像を、複数のパターン記憶しておく。ここで、複数のパターンとは、例えば、図10に示すような、人物が、正面を向いているとき、左を向いているとき、あるいは、右を向いているとき等の画像パターンである。また、ここでは、サンプル画像として、人物の領域と背景の領域とをエッジによって区分した2値化画像を用いることとする。
【0029】
このように、人物検出装置1は、距離に対応付けた人物の頭部領域に着目して移動体が人物であるか否かを判定するため、人物の遠近によらず、また、机等によって人物の一部が隠れるオフィス内等の雑多な環境下においても、人物を検出することができる。
以下、移動体検出手段10、頭部領域設定手段20及び人物判定手段30の構成について詳細に説明する。
【0030】
<移動体検出手段10>
まず、図2を参照して、移動体検出手段10の構成について説明する。図2は、本発明に係る人物検出装置に含まれる移動体検出手段の構成を示したブロック図である。図2に示すように、移動体検出手段10は、2台のカメラ2で撮像された撮像画像から、動きを伴う物体(移動体)を検出することとする。なお、2台のカメラ2は、左右に距離Bだけ離れて配置されており、それぞれを右カメラ2a及び左カメラ2bとする。ここでは、移動体検出手段10は、距離情報生成手段11と、動き情報生成手段12と、エッジ画像生成手段13と、対象距離設定手段14と、対象距離画像生成手段15と、対象領域設定手段16と、輪郭抽出手段17とを備えている。
【0031】
距離情報生成手段11は、同時刻に右カメラ2aと左カメラ2bとで撮影された2枚の撮像画像の視差を、カメラ2(より正確には、カメラ2の焦点位置)から撮像対象までの距離情報として埋め込み、距離画像として生成するものである。なお、この距離情報生成手段11は、例えば100ms間隔に1フレームの割合で撮像画像を入力する。
この距離情報生成手段11では、右カメラ2aを基準カメラとして、この基準カメラ(右カメラ2a)で撮像された基準撮像画像と、左カメラ2bで撮像された同時刻撮像画像とで、特定の大きさのブロック(例えば8×3画素)でブロックマッチングを行うことで、基準撮像画像からの視差を計測する。そして、その視差の大きさ(視差量)を基準撮像画像の各画素に対応付けた距離画像を生成する。
なお、視差をZとしたとき、この視差Zに対応するカメラ2から物体までの距離L(図示せず)は、カメラ2の焦点距離をf(図示せず)、右カメラ2aと左カメラ2bとの距離をBとすると、(1)式で求めることができる。
【0032】
L=B×f/Z …(1)
【0033】
動き情報生成手段12は、基準カメラ(右カメラ2a)で時系列に撮像された2枚の撮像画像の差分に基づいて、撮像画像内の移動体の動きを動き情報として埋め込んだ、差分画像を生成するものである。
この動き情報生成手段12では、右カメラ2aを基準カメラとして、この基準カメラ(右カメラ2a)で撮像された時刻の異なる2枚の撮像画像の差分をとる。例えば、100ms間隔で撮像画像を入力したときに、その入力時刻からΔt(例えば33ms)分遅れた撮像画像を入力し、その2枚の撮像画像の差分をとることとする。
そして、差のあった画素には動きのあった画素として画素値“1”を与え、差のなかった画素には動きのなかった画素として画素値“0”を与えた差分画像を生成する。なお、動き情報生成手段12では、さらに差分画像に対して、メディアンフィルタ等のフィルタリング処理を行うことで、ノイズを除去しておく。
【0034】
なお、カメラ2がロボットや自動車に搭載されたカメラ等、移動するカメラであって、撮像画像内の背景が変化する場合は、カメラ2から撮像画像毎のパン、チルト等のカメラ移動量を入力し、例えば、時刻t+Δtの撮像画像をそのカメラ移動量分補正することで背景の位置合わせを行い、時刻t及び時刻t+Δtにおいて、動きのあった画素のみを検出する。
【0035】
エッジ画像生成手段13は、カメラ2(2a)から撮像画像(基準撮像画像)を入力し、その撮像画像からエッジを抽出したエッジ画像を生成するものである。このエッジ画像生成手段13では、カメラ2(2a)から入力された撮像画像の明るさ(輝度:濃淡情報)に基づいて、その明るさが大きく変化する部分をエッジとして検出し、そのエッジのみからなるエッジ画像を生成する。例えば、ある画素の近傍領域の画素に対して重み係数を持つオペレータ(係数行例:Sobelオペレータ、Kirschオペレータ等)を画素毎に乗算することで、エッジの検出を行う。
【0036】
ここで、図11を参照(適宜図2参照)して、距離情報生成手段11で生成される距離画像、動き情報生成手段12で生成される差分画像、及び、エッジ画像生成手段13で生成されるエッジ画像について説明する。図11は、時系列に入力される撮像画像に基づいて、各画像が生成される状態を示したものである。
【0037】
図11に示すように、距離画像Dは、同時刻の右カメラの撮像画像(右カメラ画像)と左カメラの撮像画像(左カメラ画像)との視差を画素値で表現することで生成される。この視差は、その値が大きいほど人物の位置がカメラ2に近いことを表し、値が小さいほど人物の位置がカメラ2から遠いことを表している。また、エッジ画像EDは、右カメラ画像から生成された画像で、検出されたエッジのみからなる画像である。さらに、差分画像DIは、Δt分だけ入力された時刻が異なる2枚の右カメラ画像(例えば、時刻tと時刻t+Δtの右カメラ画像)の差分をとり、差のあった画素を画素値“1”、差のなかった画素を画素値“0”として表現することで生成される。この差のあった画素が、実際に人物が動いた領域を表している。
【0038】
ここで、図12を参照して、距離画像D及び差分画像DIの内容について、さらに詳細に説明を行う。図12(a)は、距離画像Dの画像内容と、その画素値(距離画像画素値DB)の一例を示したものである。図12(b)は、差分画像DIの画像内容と、その画素値(差分画像画素値DIB)の一例を示したものである。ここでは、カメラ2から約1m、2m及び3m離れた位置に人物が存在しているものとする。
【0039】
距離画像Dは、図12(a)に示すように、同時刻の右カメラ画像と左カメラ画像との視差を画素値で表現したものであって、例えば、距離画像画素値DBに示したように、距離画像Dの画素位置(0,0)は視差が0であり、カメラ2からの距離が無限大(∞)であることを意味している。また、距離画像Dの画素位置(30,50)は視差が20であり、カメラ2からの距離が視差20に対応する距離、例えば2.2mであることを意味している。このように、距離画像Dは、視差を画素値として表現するため、例えば、カメラ2に近いほど明るく、遠いほど暗い画像となる。
【0040】
差分画像DIは、図12(b)に示すように、時系列に入力される右カメラ画像の差の有無を表現したものであって、例えば、差分画像画素値DIBに示したように、差分画像DIの画素位置(0,0)は“0”「停止」で、動きがなかったことを意味している。また、差分画像DIの画素位置(30,50)は“1”「動き」で、動きがあったことを意味している。
図2に戻って、人物検出装置1の構成について説明を続ける。
【0041】
対象距離設定手段14は、距離情報生成手段11で生成された距離画像と、動き情報生成手段12で生成された差分画像とに基づいて、最も動き量の多い移動体を特定し、対象となる移動体が存在する対象距離を設定するものである。この対象距離は、対象距離画像生成手段15に出力される。
【0042】
この対象距離設定手段14では、距離画像で表された視差(距離)毎に、その視差に対応する画素と同じ位置にある差分画像の画素値を累計し(動きがある画素は画素値が“1”であるので、視差毎に画素数を累計することになる)、その累計が最も多くなる視差(以下、「最多視差」という。)に、最も動き量の多い移動体が存在していると判定する。例えば、1.0〜1.1mの視差(距離)では、画素値の累計が110、1.1〜1.2mの視差(距離)では、画素値の累計が92、というように視差毎に累計を出し、この累計が最大の視差(距離)を最多視差とする。
【0043】
また、ここでは、最多視差に対応する対象距離±α分の奥行きを、最も動き量の多い移動体が存在する距離の範囲とする。このαの値は、対象距離を基準とした奥行き方向の範囲を示すものである。ここでは、αの値を、距離情報生成手段11から時系列に入力される距離画像の差分、例えば、時刻t−1で生成された距離画像と、時刻tで生成された距離画像との差分とする。なお、このαの値は、人物を検出することを仮定して、数十cmと固定した値を用いてもよい。
【0044】
この対象距離設定手段14では、距離情報生成手段11で生成された距離画像と、動き情報生成手段12で生成された差分画像とを、図示していないメモリ等の記憶手段に記憶することとする。
【0045】
対象距離画像生成手段15は、距離情報生成手段11で生成された視差量を埋め込んだ距離画像に基づいて、対象距離設定手段14で設定された対象距離に対応する画素をエッジ画像生成手段13で生成されたエッジ画像から抽出した対象距離画像を生成するものである。
例えば、最多視差におけるカメラ2から移動体までの距離Lを前記(1)式で算出したとすると、その視差の範囲Zrは前記(1)式を変形することで、以下に示す(2)式を得る。ただし、カメラ2の焦点距離をf、右カメラ2aと左カメラ2bとの距離をB、対象物体の奥行き方向の範囲をαとする。
【0046】
B×f/(L+α)<Zr<B×f/(L−α) …(2)
【0047】
この対象距離画像生成手段15では、前記(2)式の範囲の視差に対応する画素をエッジ画像から抽出した対象距離画像を生成する。
なお、この対象距離画像の生成は、基準カメラ(右カメラ2a)で撮像された撮像画像(原画像)又は距離情報生成手段11で生成された距離画像から、対象距離(視差の範囲)に対応する画素位置のみの画素を抽出することとしてもよい。
【0048】
ここで、図13を参照(適宜図2参照)して、対象距離設定手段14及び対象距離画像生成手段15で、検出対象となる移動体が存在する距離に対応する画像(対象距離画像)を生成する手順について説明する。図13(a)は、距離画像D及び差分画像DI(図12)に基づいて、視差(距離)と動きのある画素を累計した動き量(画素数)との関係を示したグラフである。図13(b)は、エッジ画像ED(図11)から対象距離の画像のみを抽出した対象距離画像TDを示している。
【0049】
図13(a)に示すように、距離画像D(図12)の視差(距離)と動き量(画素数)との関係をグラフ化すると、視差(距離)が1m、2.2m、3mの位置で動き量がピークとなる。そこで、対象距離設定手段14は、動き量が最大となる視差(2.2m)に移動体が存在するものとし、その視差(2.2m)の前後(±α)の奥行き範囲に移動体が存在すると判定する。このαは、距離情報生成手段11から時系列に入力される距離画像の差分である。なお、このαの値は、移動体を人物と仮定して、カメラ2から2.2±αm(α=0.5m)の範囲に人物が存在すると判定することとしてもよい。
【0050】
また、対象距離画像生成手段15は、図13(b)に示すように、エッジ画像生成手段13で生成されたエッジ画像から、距離情報生成手段11で生成された距離画像に基づいて、対象となる画素位置を判定して、対象距離±αmに存在する画素を抽出した対象距離画像TDを生成する。これによって、カメラ2から1m、3m離れた位置に存在している人物の画像を削除し、2.2±αm離れた位置に存在している人物のみをエッジ画像として抽出した対象距離画像TDを生成することができる。
図2に戻って、人物検出装置1の構成について説明を続ける。
【0051】
対象領域設定手段16は、対象距離画像生成手段15で生成された対象距離画像(対象距離に対応したエッジ画像)の垂直方向の画素数を累計し、その垂直方向の画素数の累計が最も多くなる位置を移動体の中心の水平位置であると特定して、その移動体を含んだ領域(対象領域)を設定するものである。ここでは、対象領域設定手段16は、ヒストグラム生成手段16aと、水平範囲設定手段16bと、垂直範囲設定手段16cとを備えている。
【0052】
ヒストグラム生成手段16aは、対象距離画像の垂直方向の画素数を計測し、累計するものである。ここでは、ヒストグラム生成手段16aは、計測した垂直方向の画素数を累計することで、ヒストグラムを生成することとする。このようにヒストグラムを生成することで、ヒストグラムが最大となる位置に移動体の中心の水平位置が存在すると判定することが可能になる。なお、ヒストグラム生成手段16aは、ヒストグラムに対して平滑化処理を行うこととする。
【0053】
水平範囲設定手段16bは、ヒストグラム生成手段16aで生成されたヒストグラムに基づいて、1つの移動体を含み、その移動体の輪郭を抽出するための対象となる領域(対象領域)の水平方向の範囲を設定するものである。ここでは、水平範囲設定手段16bは、ヒストグラム生成手段16aで生成された(平滑化された)ヒストグラムで、画素数が最大となる水平位置から所定範囲を移動体の水平方向の範囲として設定する。
【0054】
ここで、図14及び図15を参照(適宜図2参照)して、対象領域設定手段16が、対象距離画像TDにおいて、1つ(1人)の移動体の領域(対象領域)における水平方向の範囲を設定する手順について説明する。図14は、対象距離画像における水平方向の座標毎に垂直方向へ画素数を計測した累計をヒストグラムで表した図である。なお、この図14では、ヒストグラムHIを対象距離画像TDに重畳させているが、これは、説明の都合上重畳させているだけである。図15は、ヒストグラムの平滑化処理の例を示す図であり、(a)が平滑化前、(b)が平滑化後のヒストグラムを示す。
【0055】
まず、ヒストグラム生成手段16aは、図14に示すように、水平方向の座標毎に垂直方向へ画素数を計測し累計することで、対象距離画像TDに含まれる移動体が存在する領域において、水平方向の座標毎に画素数が累計されたヒストグラムHIを生成する。なお、図14のヒストグラムHIでは、局所的にピークP1が現れているものとする。
【0056】
そして、ヒストグラム生成手段16aは、図15に示すように、ヒストグラムHIに対して平滑化処理を行う。
具体的には、SをヒストグラムHIにおける注目している座標xの画素数、S′を平滑化後のヒストグラムHI′の座標xの画素数、xを正の定数として、以下の(3)式により平滑化を行う。
【0057】
【数1】

【0058】
ここで、f(n)はnの関数であるが、定数としてもよい。そして、以下の(4)式のように、f(n)=|x−n|とすれば、座標xから距離(座標)が近い座標nの画素数Sほど重く扱うことになるので、元のヒストグラムHIの特徴を残したまま平滑化後のヒストグラムHI′を生成することができる。
【0059】
【数2】

【0060】
この処理により、図15(a)に示すようなヒストグラムHIは、図15(b)に示すような、平滑化されたヒストグラムHI′とすることができる。このとき、ヒストグラムHIにおいて、局所的に現れていたピークP1は、ピークP1′のように低くなる。
また、前記した(3)式又は(4)式による平滑化処理において、以下の(5)式を条件とするのが望ましい。
【0061】
【数3】

【0062】
この(5)式の条件によれば、注目している座標xの右側(xが大きい側)又は左側(xが小さい側)のヒストグラムHIの画素数Sがすべて“0”の場合に、平滑化後の画素数Sx′を“0”にするので、ヒストグラムHIの左右端の裾が広がらないようにすることができる。例えば、図15(b)の破線のようにはヒストグラムHIの裾が広がらず、実線のようになる。
これにより、隣り合う人物のヒストグラムHIが、平滑化の処理によりつながってしまうことを防ぐことができる。
【0063】
そして、水平範囲設定手段16bは、ヒストグラム生成手段16aで生成されたヒストグラムに基づいて、1つの移動体を含んだ水平方向の範囲を設定する。
具体的には、図15(b)で説明した平滑化後のヒストグラムHI′において、最も画素数S′が大きい座標x(例えば、図15(b)におけるx)を、1つの移動体の中心位置とし、その左右両側の一定範囲(例えば、図15(b)におけるβ)を対象領域の水平方向の範囲として設定する。このβは、人物が手を挙げた場合も含まれるように、人物の幅に相当する画素数か、それよりやや広め(例えば、0.2m程度に相当する画素数分広め)とすることができる。さらに、この範囲内で、ヒストグラムが最小となる水平位置(座標x)を検出する。この最小となる水平位置を、一人の人物の左右端とする。
【0064】
また、移動体を抽出する水平方向の範囲を設定する場合、移動体の移動方向を考慮することが望ましい。例えば、水平範囲設定手段16bは、時刻t−2の対象距離画像から生成したヒストグラムによって求められた移動体の中心位置と、時刻t−1の対象距離画像から生成したヒストグラムによって求められた移動体の中心位置とに基づいて、移動体の移動ベクトルを求め、その移動ベクトルとカメラ2の視線方向とのなす角度が45°未満の場合は、例えば、中心の位置±(0.5〜0.6)mを、人物を検出するための水平範囲とする。また、移動ベクトルとカメラ2の視線方向とのなす角度が45°以上の場合は、例えば、中心位置±(0.2〜0.3)mを、人物を検出するための水平範囲とする。これは、角度が45°以上の場合は、人物がカメラ2の前を横切っていると考えられるからである。
【0065】
また、対象領域の水平方向の範囲は、例えば、図示していないが、カメラ2の水平画角をθ、カメラ2から対象とする移動体までの距離をL、対象距離画像の横方向の解像度をXとすると、対象領域の幅の半分(移動体の中心からの距離)を0.5(m)としたときの、対象距離画像上での水平画素数αを、以下の(6)式で求めることで、水平方向の範囲を設定してもよい。
【0066】
α=(X/θ)tan−1(0.5/L) …(6)
図2に戻って、人物検出装置1の構成について説明を続ける。
【0067】
垂直範囲設定手段16cは、移動体の輪郭を抽出するための対象となる領域(対象領域)の垂直方向の範囲を設定するものである。ここでは、垂直範囲設定手段16cは、特定の長さ(例えば2m)を対象領域の垂直方向の範囲とする。
【0068】
ここで、図16を参照(適宜図2参照)して、対象領域設定手段16(垂直範囲設定手段16c)が、対象距離画像において、1つ(1人)の移動体の領域(対象領域)における垂直方向の範囲を設定する手順について説明する。図16は、移動体が対象距離画像上のどの高さに位置するかを算出する手順を説明するための説明図である。この図16では、カメラ2が移動ロボット(図示せず)に組み込まれ、移動体Mと同じ床からある高さ(カメラ高)Hに位置しているときに、移動体Mが対象距離画像(a′、b′)上のどの高さに位置するかを示している。なお、図16(a)は、カメラ2のチルト角が0(°)の場合、図16(b)はカメラ2のチルト角がθ(≠0)の場合におけるカメラ2と移動体Mとの対応関係を示している。
まず、図16(a)を参照して、チルト角が0(°)の場合において、移動体Mが対象距離画像(a′)上で垂直方向のどの位置に存在するかを特定する方法について説明する。
【0069】
ここで、カメラ2の垂直画角をθ、カメラ2から移動体Mまでの距離をL、対象距離画像(a′)の垂直方向の解像度をY、カメラ2の床からの高さ(カメラ高)をH、移動体Mの床からの仮想の高さを2(m)とする。このとき、カメラ2の光軸と、カメラ2から移動体Mの仮想の上端(床から2m)までを結んだ直線との角度θは、以下の(7)式で表すことができる。
【0070】
θ=tan−1((2−H)/L) …(7)
【0071】
これにより、移動体Mの対象距離画像(a′)上での上端yは、以下の(8)式で求めることができる。
【0072】
=Y/2−θY/θ
=Y/2−(Y/θ)tan−1((2−H)/L) …(8)
【0073】
また、カメラ2の光軸と、カメラ2から移動体Mの下端(床)までを結んだ直線との角度θは、以下の(9)式で表すことができる。
【0074】
θ=tan−1(H/L) …(9)
【0075】
これにより、移動体Mの対象距離画像(a′)上での下端yは、以下の(10)式で求めることができる。
【0076】
=Y/2+θY/θ
=Y/2+(Y/θ)tan−1(H/L) …(10)
【0077】
次に、図16(b)を参照して、チルト角がθ(≠0)の場合において、移動体Mが対象距離画像(b′)上で垂直方向のどの位置に存在するかを特定する方法について説明する。
【0078】
ここで、カメラ2の垂直画角をθ、チルト角をθ、移動体Mまでの距離をL、対象距離画像の垂直方向の解像度をY、カメラ2の床からの高さ(カメラ高)をH、移動体Mの床からの仮想の高さを2(m)とする。このとき、カメラ2の光軸とカメラ2から移動体Mの仮想の上端(床から2m)までを結んだ直線との角度θと、チルト角θとの差分角度(θ−θ)は、以下の(11)式で表すことができる。
【0079】
θ−θ=tan−1((2−H)/L) …(11)
【0080】
これにより、移動体Mの対象距離画像(b′)上での上端yは、以下の(12)式で求めることができる。
【0081】
=Y/2−θY/θ−(θ−θ)Y/θ
=Y/2−θY/θ−(Y/θ)tan−1((2−H)/L) …(12)
【0082】
また、カメラ2の光軸とカメラ2から移動体Mの下端(床)までを結んだ直線との角度θと、チルト角θとの加算角度(θ+θ)は、以下の(13)式で表すことができる。
【0083】
θ+θ=tan−1(H/L) …(13)
【0084】
これにより、移動体Mの対象距離画像(b′)上での下端yは、以下の(14)式で求めることができる。
【0085】
=Y/2−θY/θ+(θ+θ)Y/θ
=Y/2−θY/θ+(Y/θ)tan−1(H/L) …(14)
【0086】
このように求めた対象距離画像(a′又はb′)の上端y及び下端yによって、対象領域の垂直方向の範囲が設定される。
なお、移動ロボット(図示せず)が階段等を昇降し、移動体Mと同一の床に存在しない場合は、移動ロボット本体のエンコーダ等によって昇降量を検出し、その昇降量を移動体Mの床からの高さに対して加算又は減算することで、移動体Mの対象距離画像(a′又はb′)における垂直方向の位置を特定することができる。あるいは、移動ロボットに地図情報を保持しておき、移動体Mの方向及び距離で特定される床の高さを、その地図情報から取得することとしてもよい。
図2に戻って、人物検出装置1の構成について説明を続ける。
【0087】
輪郭抽出手段17は、対象距離画像生成手段15で生成された対象距離画像において、対象領域設定手段16で設定した移動体の領域(対象領域)内で、既知の輪郭抽出技術を用いて移動体の輪郭の抽出を行うものである。
【0088】
ここで、既知の輪郭抽出としては、例えば、「SNAKES」と呼ばれる動的輪郭モデルを用いることができる。ここで、「SNAKES」とは、閉曲線を予め定義したエネルギーを最小化するように収縮変形させることにより、物体の輪郭を抽出する手法である。ここでは、移動体の領域(対象領域)内で、エネルギーを算出するための初期値を設定できるため、輪郭抽出のための計算量を軽減させることができる。
この輪郭抽出手段17は、抽出した輪郭(輪郭情報)を、頭部領域設定手段20(図1参照)に出力する。これによって、例えば、図17に示したように、対象距離画像TDの中で移動体が1つ(1人)に限定された対象領域T内で輪郭Oを抽出することができ、移動体の概略の位置を特定することができる。
【0089】
<頭部領域設定手段20>
次に、図3を参照して、頭部領域設定手段20の構成について説明する。図3は、本発明に係る人物検出装置に含まれる頭部領域設定手段の構成を示したブロック図である。図3に示すように、頭部領域設定手段20は、移動体検出手段10(図1参照)で検出された移動体の輪郭及び対象距離画像に基づいて、移動体を人物と仮定したときの頭部領域を設定する。ここでは、頭部領域設定手段20は、頭部探索領域設定手段21と、ヒストグラム生成手段22と、垂直範囲設定手段23と、水平範囲設定手段24とを備えている。
【0090】
頭部探索領域設定手段21は、輪郭の上部の画素位置を基準として、予め定めた範囲の領域を人物の頭部を探索するための領域(頭部探索領域)として設定するものである。
この頭部探索領域設定手段21は、例えば、図18に示すように、対象距離画像TDにおいて、輪郭Oにおける重心Gの座標を(x,y)とし、重心GのX座標における最上端の輪郭OのY座標をyとしたとき、頭部探索領域HSの垂直方向の範囲として、下限をy又はyから所定距離(例えば、0.2m)下方とし、上限を特定の大きさ(例えば2m)に対応する位置に設定する。なお、この上限には、図16で説明した対象距離画像(a′又はb′)上での上端yの位置を用いることができる。
【0091】
なお、頭部探索領域の下限は、輪郭の精度によって異なる。例えば、人物の頭部まで忠実に輪郭を抽出することができる場合であれば、重心GのX座標における最上端の輪郭OのY座標から、所定距離(例えば、0.2m)下方とし、人物の頭部を輪郭として抽出できない場合は、重心GのX座標における最上端の輪郭OのY座標を下限とする。なお、輪郭の精度が不安定な場合は、最上端の輪郭OのY座標から、所定距離下方を下限とするのが望ましい。
また、頭部探索領域HSの水平方向の範囲は、重心GのY座標を中心に、例えば、左右±0.2(m)の範囲に設定する。
この頭部探索領域設定手段21で設定された頭部探索領域HSは、ヒストグラム生成手段22に出力される。
【0092】
ヒストグラム生成手段22は、対象距離画像において、頭部探索領域設定手段21で設定された頭部探索領域の範囲内で、垂直方向の座標毎に、水平方向の画素数を計測し、累計するものである。ここでは、ヒストグラム生成手段22は、計測した水平方向の画素数を累計することで、ヒストグラムを生成することとする。このヒストグラムにおいて、画素数が累計されている垂直方向の座標には、人物が存在するとみなすことができる。
【0093】
なお、ヒストグラム生成手段22は、図2で説明したヒストグラム生成手段16aと同様、生成したヒストグラムを平滑化することが望ましい。
具体的には、Sをヒストグラムにおける注目している座標yの画素数、S′を平滑化後のヒストグラムの座標yの画素数、yを正の定数として、以下の(15)式により平滑化を行う。なお、f(n)はnの関数であるが、定数としてもよい。
【0094】
【数4】

【0095】
垂直範囲設定手段23は、ヒストグラム生成手段22で生成されたヒストグラム(水平方向の画素数)に基づいて、頭部領域の垂直方向の範囲を設定するものである。ここでは、垂直範囲設定手段23は、水平方向の画素数が予め定めた閾値よりも多い垂直方向の座標において、最上点の座標を基準として、その基準より特定の長さ(例えば、0.1m)分だけ上の座標を頭部領域の上端とし、その上端から、特定の長さ(例えば、0.5m)分だけ下の座標を頭部領域の下端とする。
【0096】
水平範囲設定手段24は、頭部領域の水平方向の範囲を設定するものである。ここでは、水平範囲設定手段24は、輪郭Oにおける重心GのX座標(図18参照)を中心として、特定の長さ(例えば0.5m)を頭部領域の水平方向の範囲とする。
【0097】
ここで、図19を参照(適宜図3参照)して、頭部探索領域を用いて頭部領域を設定する手順について説明する。図19は、頭部探索領域において頭部領域を設定する手順を説明するための説明図である。
まず、ヒストグラム生成手段22は、図19(a)に示すように、頭部探索領域HSにおいて、水平方向の画素数を計測し累計したヒストグラムHIHSを生成する。そして、垂直範囲設定手段23は、画素数が累計されている垂直方向の座標で、最上点の座標を頭部の上端とする。なお、ここでは、ノイズ等を考慮し、予め定めた閾値以上となる画素数が累計されている垂直方向の座標の最上点Toを、頭部の上端とする。
そして、垂直範囲設定手段23は、図19(b)に示すように、最上点Toより特定の長さ(例えば、0.1m)分だけ上の座標を頭部領域HDの上端とし、その上端から0.5mだけ下の座標を頭部領域HDの下端とする。
さらに、水平範囲設定手段24は、輪郭の重心のX座標を中心に、0.5mの範囲を頭部領域HDの水平方向の範囲とする。
このように設定された頭部領域HD(頭部領域の位置情報)は、人物判定手段30(図1参照)に出力される。
【0098】
<人物判定手段30>
次に、図4を参照して、人物判定手段30の構成について説明する。図4は、本発明に係る人物検出装置に含まれる人物判定手段の構成を示したブロック図である。図4に示すように、人物判定手段30は、カメラ2(図1参照)で撮像された撮像画像において、頭部領域設定手段20で設定された頭部領域が人物の頭部の領域であるか否かを判定するものである。ここでは、人物判定手段30は、頭部エッジ画像生成手段31と、サイズ正規化手段32と、補完手段33と、画像シフト手段34と、類似度判定手段35とを備えている。
【0099】
頭部エッジ画像生成手段31は、頭部領域設定手段20で設定された頭部領域に対応するエッジ画像(頭部エッジ画像)を生成するものである。ここでは、頭部エッジ画像生成手段31は、カメラ2(図1参照)で撮像された撮像画像において、頭部領域設定手段20で設定された頭部領域について、Sobelオペレータ等を用いてエッジを抽出し、予め定めた閾値により2値化することで、頭部エッジ画像を生成する。例えば、エッジとなる画素の値を画素値“1”、それ以外を画素値“0”とする。
なお、エッジ画像生成手段13(図2参照)において、撮像画像全体のエッジ画像が生成されているため、頭部エッジ画像生成手段31は、このエッジ画像から頭部領域を切り出し、2値化することで、頭部エッジ画像を生成することとしてもよい。
【0100】
サイズ正規化手段32は、頭部エッジ画像生成手段31で生成された頭部エッジ画像を所定サイズに変換することで正規化画像を生成するものである。ここで、所定サイズとは、サンプル画像記憶手段40に記憶されているサンプル画像と同じ大きさである。
【0101】
補完手段33は、サイズ正規化手段32で生成された正規化画像において、画像内の隙間(ギャップ)を補完するものである。この補完手段33は、正規化画像の画素領域について、拡大及び縮小処理をそれぞれ複数回行うことで、画像内の隙間を補完した補完画像を生成する。
例えば、画素値“1”の画素領域を拡大させるには、拡大元の画像における処理対象位置の画素の画素値が“1”又はその処理対象位置の画素に近接した8画素(8近傍)〔あるいは4画素(4近傍)〕の画素の画素値が“1”である場合に、拡大先の画像における処理対象位置の画素の画素値を“1”とする。ここで、正規化画像が拡大元の画像となって、順次画素領域が拡大された画像が生成される。
また、画素値“1”の画素領域を縮小させるには、縮小元の画像における処理対象位置の画素の画素値が“0”又はその処理対象位置の画素に近接した8画素(8近傍)〔あるいは4画素(4近傍)〕の画素の画素値が“0”である場合に、縮小先の画像における処理対象位置の画素の画素値を“0”とする。ここで、拡大処理によって拡大された画像が縮小元の画像となって、順次画素領域が縮小されることで補完画像が生成される。
【0102】
ここで、図20を参照(適宜図4参照)して、補完手段33が、正規化画像において、ギャップを補完する処理について具体的に説明する。図20は、正規化画像に対して拡大及び縮小処理を複数回行ったときの各段階における画像の内容を示す図である。なお、図20では、補完手段33が、正規化画像に対して拡大処理と縮小処理とをそれぞれ3回行っている例を示している。なお、ここでは、エッジとなる画素の値を画素値“1(白)”、それ以外を画素値“0(黒)”とする。
【0103】
図20の(a)は、サイズ正規化手段32で生成された正規化画像の元画像を示している。ここで、補完手段33は、3回拡大処理を行うことで、画像(a)から順に、画像(b)、画像(c)、画像(d)を生成する。このように、画像(a)から順に画素値“1(白)”の領域が拡大され、画像(d)においては、画素値“1(白)”の領域が統合されることになる。なお、この段階では、画素値“1(白)”の領域は、拡大された分、画像(a)で示されている頭部領域に比べて大きくなっている。
【0104】
そこで、補完手段33は、拡大処理を行った回数分(ここでは3回)の縮小処理を行うことで、画像(a)で示されている頭部領域と同等の大きさとなる画像を生成する。すなわち、補完手段33は、3回縮小処理を行うことで、画像(d)から順に、画像(e)、画像(f)、画像(g)を生成する。このように、画像(d)から順に画素値“1(白)”の領域が縮小され、画像(g)においては、画素値“1(白)”の領域が、画像(a)の頭部領域と同程度の大きさとなる。
これによって、補完手段33は、正規化画像において、頭部領域の内部を同一画素値で充填した画像を生成することができる。
【0105】
なお、ここでは、拡大及び縮小の回数を3回として説明したが、この回数は特に限定したものではない。また、特に拡大及び縮小の回数を特定せずに、画素値“0(黒)”の孤立点がなくなるまで拡大処理を行い、その回数分だけ縮小処理を行うこととしてもよい。
図4に戻って、人物判定手段30の構成について説明を続ける。
【0106】
画像シフト手段34は、補完手段33でギャップが補完された補完画像の頭部の位置を、サンプル画像記憶手段40に記憶されているサンプル画像の頭部の位置に合わせた画像を生成するものである。ここでは、画像シフト手段34は、上下シフト手段34aと、左右シフト手段34bとを備えている。
【0107】
上下シフト手段34aは、補完画像を上下にシフトさせることで、補完画像の頭部の上下位置を、サンプル画像の頭部に合わせるものである。具体的には、補完画像の重心位置の上下位置を、サンプル画像の重心位置の上下位置に合わせるように、補完画像をシフトさせる。
左右シフト手段34bは、補完画像を左右にシフトさせることで、補完画像の頭部の左右位置を、サンプル画像の頭部に合わせるものである。具体的には、補完画像の重心位置の左右位置を、サンプル画像の重心位置の左右位置に合わせるように、補完画像をシフトさせる。
このように、画像シフト手段34において、補完画像を上下左右にシフトさせることで、補完画像内の頭部の位置を、サンプル画像内の頭部の位置に合わせることができ、後記する類似度判定手段35における類似度の精度を高めることができる。
【0108】
類似度判定手段35は、補完画像とサンプル画像との類似度に基づいて、撮像された移動体が人物であるか否かを判定するものである。ここでは、類似度判定手段35は、類似度算出手段35aと、判定手段35bとを備えている。
【0109】
類似度算出手段35aは、補完画像とサンプル画像との各画像間の類似の度合いを示す類似度を算出するものである。ここでは、類似度算出手段35aは、画像シフト手段34で頭部位置がシフトされた補完画像と、サンプル画像記憶手段40に記憶されている複数のサンプル画像とから、以下の(16)式により、各画像間の類似の度合いを示す類似度Rを算出する。
【0110】
R=1−d/S …(16)
【0111】
ここで、dはSAD(Sum of Absolute Difference:差分絶対値和)、Sはサンプル画像のサイズである。この(16)式に示すように、類似度算出手段35aは、サンプル画像のSADの値を単位画素に換算して類似度を算出している。また、類似度Rは“0”以上“1”以下の値となり、類似度“1”が最も類似していることを示している。これによって、例えば、サンプル画像の大きさを変更する場合であっても、後記する判定手段35bにおける類似度の閾値を変更する必要がない。
なお、前記(16)式におけるd(SAD:差分絶対値和)は、以下の(17)式により算出されるものである。
【0112】
【数5】

【0113】
ここで、I(i,j)は補完画像の画素値、T(i,j)はサンプル画像の画素値である。このように算出された類似度Rは、判定手段35bに出力される。
なお、ここでは、類似度算出手段35aは、類似度を前記(16)式によって算出したが、この類似度算出の手法はこれに限定されるものではない。例えば、(16)式のd(SAD:差分絶対値和)の代わりに、SSD(Sum of the Squared Differences:差分2乗和)を用いることとしてもよい。
【0114】
判定手段35bは、類似度に基づいて、頭部領域として設定された領域が、実際に人物の頭部領域であるか否かを判定するものである。この判定手段35bは、類似度算出手段35aで算出された類似度Rが予め定めた閾値よりも大きい場合に、当該領域が人物の頭部領域であると判定し、人物を検出した旨の情報(人物検出情報)を出力する。なお、この情報には、人物の位置(例えば、頭部領域、あるいはその重心位置、距離等)を含むこととしてもよい。
また、判定手段35bは、複数の撮像画像において、予め定めたフレーム数分の類似度の平均値により人物の判定を行うこととしてもよい。これによって、一時的にノイズ等によって、人物と判定できなかった場合でも、継続して人物を検出することができる。
【0115】
このように人物検出装置1を構成することで、カメラ2が撮像した撮像画像から、頭部領域を設定し、その領域内に撮像されている頭部が人物のものであるか否かを判定することが可能になり、精度よく人物を検出することができる。また、この頭部領域は、距離に応じた大きさとなっているため、人物検出装置1は、頭部領域の画像をサンプル画像大に正規化することで、どの距離に存在する人物であっても、検出対象とすることができる。
【0116】
ここで、図21を参照(適宜図4参照)して、人物検出装置1における人物の検出結果について説明する。図21は、撮像画像に人物が存在しているときの検出結果を説明するための図である。ここでは、4つの検出結果を示し、(a)は撮像画像に人物が映っている原画像、(b)は頭部エッジ画像生成手段31によって生成された頭部エッジ画像をサイズ正規化手段32によって正規化した正規化画像、(c)は正規化画像を補完手段33によって補完(ギャップ埋め)した補完画像をそれぞれ示している。
【0117】
(b)に示すように、頭部領域が所定サイズ(ここでは32×32画素)に正規化された後に、隙間(ギャップ)が補完されるため、(c)の補完画像は、図19に示したサンプル画像との比較が可能になる。
ここでは、(d)に補完画像とサンプル画像との類似度を示し、(e)に人物までの距離を示している。このように、人物検出装置1は、任意の距離において、人物を検出することができる。
【0118】
なお、図21において、距離(e)が3.5mを超過した状態で類似度が低下(0.85以下)している。そこで、例えば、判定手段35bにおける人物判定のための閾値を、0.85とすることで、精度よく人物を検出することができる。
【0119】
また、人物の検出精度を高めるため、移動体を検出する際の距離を所定の範囲に定めてもよい。例えば、移動体の検出範囲を3.5m以内とする。この場合、図2に示した移動体検出手段10の対象距離設定手段14において、移動体が存在する対象距離が検出範囲を超過した距離であれば、その対象距離を対象距離画像生成手段15に出力しないことで、実現することができる。
以上、一実施の形態として人物検出装置1の構成について説明したが、人物検出装置1は、一般的なコンピュータを前記した各手段として機能させる人物検出プログラムによって、動作させることができる。
【0120】
また、ここでは、人物検出装置1の距離情報生成手段11が、2台のカメラ2で撮像した撮像画像に基づいて距離画像を生成したが、3台以上のカメラを用いて距離画像を生成することとしてもよい。例えば、3行3列に配置した9台のカメラで、中央に配置したカメラを基準カメラとして、他のカメラとの視差に基づいて距離画像を生成することで、移動体までの距離をより正確に測定することもできる。
【0121】
[人物検出装置の動作]
次に、図5を参照(適宜図1参照)して、人物検出装置1の動作について説明する。図5は、本発明に係る人物検出装置の全体動作を示すフローチャートである。
まず、人物検出装置1は、移動体検出手段10によって、複数のカメラ2で撮像された撮像画像から、動きのある移動体を検出する(ステップS10;移動体検出ステップ)。なお、このステップS10では、撮像画像から移動体の輪郭を抽出するとともに、移動体が存在する距離に対応する画素からなる対象距離画像を生成する。
【0122】
そして、人物検出装置1は、頭部領域設定手段20によって、ステップS10で抽出された移動体を人物とみなしたときの頭部領域を設定する(ステップS20;頭部領域設定ステップ)。なお、このステップS20では、輪郭の上部の画素位置を基準とした予め定めた範囲内において、対象距離画像の画素分布に基づいて、移動体を人物と仮定したときの頭部領域を設定する。
【0123】
そして、人物検出装置1は、人物判定手段30によって、ステップS20で設定された頭部領域において、当該頭部領域内に撮像されている頭部が人物の頭部であるか否かを判定することで、人物を検出する(ステップS30;人物判定ステップ)。
以下、ステップS10の移動体(輪郭)検出処理、ステップS20の頭部領域設定処理、及び、ステップS30の人物判定処理の動作について詳細に説明する。
【0124】
<移動体(輪郭)検出処理>
最初に、図6及び図7を参照(適宜図2参照)して、図5のステップS10で説明した移動体(輪郭)検出処理の動作について説明する。図6及び図7は、移動体検出手段における移動体(輪郭)検出処理の動作を示すフローチャートである。
【0125】
(撮像画像入力ステップ)
まず、移動体検出手段10は、2台のカメラ2から時系列に撮像画像を同期させて入力する(ステップS101)。ここでは、ある時刻tに右カメラ2a(基準カメラ)と左カメラ2bとから入力された撮像画像と、次の時刻t+Δtに右カメラ2a(基準カメラ)と左カメラ2bとから入力された撮像画像とに基づいて、移動体を抽出する。なお、以下のステップで用いられている距離画像Dt−1及びDt−2、対象距離画像TDt−2及びTDt−1は、時刻t−2及び時刻t−1の段階で生成されたものである。
【0126】
(距離画像(距離情報)生成ステップ)
そして、移動体検出手段10は、距離情報生成手段11によって、時刻tに右カメラ2a(基準カメラ)と左カメラ2bとから入力された2枚の撮像画像から、移動体を含んだ撮像対象までの視差(距離)を埋め込んだ距離画像Dを生成する(ステップS102)。
【0127】
(差分画像(動き情報)生成ステップ)
さらに、移動体検出手段10は、動き情報生成手段12によって、右カメラ2a(基準カメラ)で時刻tと時刻t+Δtに撮像された2枚の撮像画像(基準撮像画像)の差分をとり、差のあった画素を画素値“1”、差のなかった画素を画素値“0”とした差分画像DIを生成する(ステップS103)。
【0128】
(エッジ画像生成ステップ)
また、移動体検出手段10は、エッジ画像生成手段13によって、右カメラ2a(基準カメラ)で時刻tに撮像された撮像画像(基準撮像画像)からエッジ画像EDを生成する(ステップS104)。
【0129】
(対象距離設定ステップ)
そして、移動体検出手段10は、対象距離設定手段14によって、ステップS102及びステップS103で生成した距離画像D及び差分画像DI(時刻tと時刻t+Δtの差分画像)から、距離画像Dで表された視差(距離)毎に、動きのあった画素数を累計し、その累計が最大となる距離を、距離画像Dにおける検出対象となる移動体の対象距離dとして設定する(ステップS105)。
【0130】
(対象距離画像生成ステップ)
そして、移動体検出手段10は、対象距離画像生成手段15によって、ステップS104で生成したエッジ画像EDから、対象距離d±αの画素を抽出した対象距離画像TDを生成する(ステップS106)。
このステップS106によって、人物検出装置1は、時刻tにおける距離画像Dにおいて、移動体が存在する奥行き方向の範囲を設定することができる。
【0131】
(対象領域設定ステップ)
そして、移動体検出手段10は、対象領域設定手段16のヒストグラム生成手段16aによって、ステップS106で生成した対象距離画像TDの垂直方向(縦方向)の画素数を計測し、ヒストグラム化する(ステップS107)。なお、このステップS107においては、ヒストグラムを平滑化することが望ましい。
【0132】
そして、移動体検出手段10は、対象領域設定手段16の水平範囲設定手段16bによって、時刻tの対象距離画像TDにおいて、ヒストグラムが最大となる位置x(図15参照)を中心に、所定左右領域を対象領域の水平範囲として設定する(ステップS108)。ここでは、人物を検出することとして、時刻t−2の対象距離画像TDt−2と、時刻t−1の対象距離画像TDt−1とでヒストグラムが最大となる位置を結んだ移動ベクトルを設定し、移動ベクトルとカメラ2の視線方向とのなす角度が45°未満の場合は、中心の位置x±(0.5〜0.6)mを、人物を検出するための水平範囲とする。また、移動ベクトルとカメラ2の視線方向とのなす角度が45°以上の場合は、中心の位置x±(0.2〜0.3)mを、人物を検出するための水平範囲とする。
【0133】
さらに、移動体検出手段10は、対象領域設定手段16の垂直範囲設定手段16cによって、カメラ2から入力されるチルト角、床(設置面)からの高さ等のカメラパラメータに基づいて、対象距離画像TDで対象領域の垂直(上下)方向の範囲を設定する(ステップS109)。
【0134】
例えば、カメラ2のチルト角、床からの高さに基づいて、対象距離画像における画像中の床の位置(対象領域の下端)を求める。そして、カメラ2の画角と移動体までの距離とに基づいて、床から2mまでの範囲を画素数に換算することにより、対象領域の対象距離画像における床からの画素数を求める。これによって、対象距離画像における対象領域の上端を求めることができる。なお、この2mは、一例であって、他の長さ(高さ)であっても構わない。
【0135】
(輪郭抽出ステップ)
また、移動体検出手段10は、輪郭抽出手段17によって、ステップS106で生成した対象距離画像TDにおいて、ステップS108及びステップS109で設定した対象領域内で輪郭の抽出を行う(ステップS110)。例えば、対象領域内で動的輪郭モデル(SNAKES)を適用することによって輪郭の抽出を行う。
以上の動作によって、カメラ2から入力された撮像画像から、移動体を検出することができる。
【0136】
<頭部領域設定処理>
次に、図8を参照(適宜図3参照)して、図5のステップS20で説明した頭部領域設定処理の動作について説明する。図8は、頭部領域設定手段における頭部領域設定処理の動作を示すフローチャートである。
【0137】
(頭部探索領域設定ステップ)
まず、頭部領域設定手段20は、頭部探索領域設定手段21によって、輪郭の上部(上端)の画素位置を基準として、予め定めた範囲の領域を人物の頭部を探索するための領域(頭部探索領域)として設定する(ステップS201)。ここでは、頭部探索領域設定手段21は、輪郭の重心のX座標をx、その座標xにおける輪郭の最上端のY座標をyとした位置(x,y)を基準として、頭部探索領域の垂直方向の範囲を設定する。例えば、頭部探索領域の下限を、yから所定距離(例えば、0.2m)下方とし、上限は、特定の大きさ(例えば2m)に対応する位置に設定する。
【0138】
(頭部垂直範囲設定ステップ)
そして、頭部領域設定手段20は、ヒストグラム生成手段22によって、対象距離画像において、頭部探索領域設定手段21で設定された頭部探索領域の範囲内で、垂直方向の座標毎に、水平方向の画素数を計測し、ヒストグラム化する(ステップS202)。なお、このステップS202においては、ヒストグラムを平滑化することが望ましい。
そして、頭部領域設定手段20は、垂直範囲設定手段23によって、ステップS202で生成されたヒストグラムにおいて、水平方向の画素数が予め定めた閾値よりも多い垂直方向の座標において、最上点の座標を基準として、頭部領域の垂直範囲を設定する(ステップS203)。例えば、垂直範囲設定手段23は、最上点の座標を基準として、その基準より特定の長さ(例えば、0.1m)分だけ上の座標を頭部領域の上端とし、その上端から、特定の長さ(例えば、0.5m)分だけ下の座標を頭部領域の下端とする。
【0139】
(頭部水平範囲設定ステップ)
さらに、頭部領域設定手段20は、水平範囲設定手段24によって、輪郭における重心のX座標を中心として、所定の左右範囲を頭部領域の水平範囲とする。具体的には、重心のX座標を中心として、特定の長さ(例えば0.5m)を頭部領域の水平範囲として設定する(ステップS204)。
以上の動作によって、カメラ2(図1)から入力された撮像画像のどこに人物の頭部領域が存在するかが特定されることになる。
【0140】
<人物判定処理>
次に、図9を参照(適宜図4参照)して、図5のステップS30で説明した人物判定処理の動作について説明する。図9は、人物判定手段における人物判定処理の動作を示すフローチャートである。
【0141】
(頭部エッジ画像生成ステップ)
まず、人物判定手段30は、頭部エッジ画像生成手段31によって、撮像画像の頭部領域について、Sobelオペレータ等を用いてエッジを抽出し、予め定めた閾値により2値化することで、頭部エッジ画像を生成する(ステップS301)。なお、この頭部エッジ画像生成手段31は、ステップS104(図6参照)で生成されたエッジ画像から、頭部領域を切り出し、2値化することで、頭部エッジ画像を生成することとしてもよい。
【0142】
(サイズ正規化ステップ)
そして、人物判定手段30は、サイズ正規化手段32によって、頭部エッジ画像を所定サイズに変換することで正規化画像を生成する(ステップS302)。これによって、任意の距離に対応して生成された頭部領域の画像(頭部エッジ画像)が、所定サイズに正規化されることになる。
【0143】
(補完ステップ)
そして、人物判定手段30は、補完手段33によって、頭部エッジ画像の画素について、拡大及び縮小処理をそれぞれ複数回行うことで、画像内の隙間(ギャップ)を補完した補完画像を生成する(ステップS303)。
【0144】
(画像シフトステップ)
その後、人物判定手段30は、画像シフト手段34の上下シフト手段34aによって、補完画像の重心位置の上下位置を、サンプル画像の重心位置の上下位置に合わせるように、補完画像をシフトさせる(ステップS304)。これによって、補完画像の頭部の上下位置が、サンプル画像の頭部の上下位置にほぼ合致することになる。
さらに、人物判定手段30は、画像シフト手段34の左右シフト手段34bによって、補完画像の重心位置の左右位置を、サンプル画像の重心位置の左右位置に合わせるように、補完画像をシフトさせる(ステップS305)。これによって、補完画像の頭部の左右位置が、サンプル画像の頭部の左右位置にほぼ合致することになる。
このステップS304とステップS305を実行することで、補完画像の頭部位置が、サンプル画像の頭部位置にほぼ合致することになる。なお、このステップS304とステップS305は、その順序を変えて実行しても構わない。
【0145】
(類似度算出ステップ)
そして、人物判定手段30は、類似度判定手段35の類似度算出手段35aによって、補完画像とサンプル画像との各画像間の類似度を算出する(ステップS306)。
【0146】
(判定ステップ)
そして、人物判定手段30は、類似度判定手段35の判定手段35bによって、ステップS306で算出された類似度と予め定めた閾値とを比較し、類似度が予め定めた閾値よりも大きい場合に、当該領域が人物の頭部領域であると判定する(ステップS307)。
【0147】
以上の各ステップによって、本実施の形態の人物検出装置1は、カメラから入力された撮像画像から、人物を検出することができる。なお、ここでは、ある時刻tにおいて人物を検出したが、時々刻々と入力される撮像画像に基づいて、前記ステップ(ステップS10〜ステップS30)を動作させることで、例えば、人物検出装置1を備えた移動ロボット等が、人物を検出し続けることができる。
【図面の簡単な説明】
【0148】
【図1】本発明に係る人物検出装置の全体構成を示したブロック図である。
【図2】本発明に係る人物検出装置に含まれる移動体検出手段の構成を示したブロック図である。
【図3】本発明に係る人物検出装置に含まれる頭部領域設定手段の構成を示したブロック図である。
【図4】本発明に係る人物検出装置に含まれる人物判定手段の構成を示したブロック図である。
【図5】本発明に係る人物検出装置の全体動作を示すフローチャートである。
【図6】移動体検出手段における移動体(輪郭)検出処理の動作を示すフローチャート(1/2)である。
【図7】移動体検出手段における移動体(輪郭)検出処理の動作を示すフローチャート(2/2)である。
【図8】頭部領域設定手段における頭部領域設定処理の動作を示すフローチャートである。
【図9】人物判定手段における人物判定処理の動作を示すフローチャートである。
【図10】サンプル画像記憶手段に記憶しているサンプル画像の一例を示す図である。
【図11】距離画像、エッジ画像及び差分画像の内容の一例を示す図である。
【図12】距離画像及び差分画像の内容の一例を示す図である。
【図13】視差(距離)毎の動き量(画素値)に基づいて、対象距離画像を生成するための手順を説明するための説明図である。
【図14】対象距離画像における水平方向の座標毎に垂直方向へ画素数を計測した累計をヒストグラムで表した図である。
【図15】ヒストグラムの平滑化処理の例を示す図であり、(a)が平滑化前、(b)が平滑化後のヒストグラムを示す。
【図16】移動体が対象距離画像上のどの高さに位置するかを算出する手順を説明するための説明図である。
【図17】対象距離画像の対象領域で輪郭を抽出した例を示す図である。
【図18】対象距離画像に頭部探索領域を設定する例を示す図である。
【図19】頭部探索領域において頭部領域を設定する手順を説明するための説明図である。
【図20】正規化画像に対して拡大及び縮小処理を複数回行ったときの各段階における画像の内容を示す図である。
【図21】撮像画像に人物が存在しているときの検出結果を説明するための図である。
【符号の説明】
【0149】
1 人物検出装置
2 カメラ
10 移動体検出手段
11 距離情報生成手段
12 動き情報生成手段
13 エッジ画像生成手段
14 対象距離設定手段
15 対象距離画像生成手段
16 対象領域設定手段
17 輪郭抽出手段
20 頭部領域設定手段
30 人物判定手段
31 頭部エッジ画像生成手段
32 サイズ正規化手段
33 補完手段
34 画像シフト手段
35 類似度判定手段
40 サンプル画像記憶手段

【特許請求の範囲】
【請求項1】
複数のカメラで移動体を撮像した複数の撮像画像から、当該撮像画像内に含まれる人物を検出する人物検出装置であって、
前記複数の撮像画像の視差と時系列に入力される撮像画像の差分とに基づいて、前記撮像画像内における前記移動体の領域である対象領域と、当該移動体までの距離である対象距離とを移動体情報として検出する移動体検出手段と、
この移動体検出手段で検出された対象領域において、前記移動体を人物と仮定したときの予め定めた大きさの頭部領域を、前記対象距離に対応した大きさで設定する頭部領域設定手段と、
人物の前記頭部領域に対応する所定サイズのサンプル画像を記憶するサンプル画像記憶手段と、
前記頭部領域設定手段で設定された撮像画像内の頭部領域を前記所定サイズに変換して前記サンプル画像と比較することで、前記移動体が人物であるか否かを判定する人物判定手段と、
を備えていることを特徴とする人物検出装置。
【請求項2】
前記サンプル画像は前記頭部領域の形状を示す画像であって、
前記人物判定手段は、
前記頭部領域設定手段で設定された頭部領域に対応するエッジ画像である頭部エッジ画像を生成する頭部エッジ画像生成手段と、
この頭部エッジ画像生成手段で生成された頭部エッジ画像を、前記所定サイズの正規化画像に変換するサイズ正規化手段と、
このサイズ正規化手段で変換された正規化画像内の隙間を補完した補完画像を生成する補完手段と、
前記補完画像と前記サンプル画像との類似度に基づいて、前記移動体を人物と判定する類似度判定手段と、
を備えていることを特徴とする請求項1に記載の人物検出装置。
【請求項3】
前記サンプル画像の予め定めた基準となる位置に、前記補完画像の基準となる位置を合わせる画像シフト手段を備えていることを特徴とする請求項2に記載の人物検出装置。
【請求項4】
前記補完手段は、前記頭部エッジ画像生成手段で生成された頭部エッジ画像の領域について、拡大及び縮小処理をそれぞれ複数回行うことで、当該頭部エッジ画像内の隙間を補完することを特徴とする請求項2又は請求項3に記載の人物検出装置。
【請求項5】
前記サンプル画像記憶手段は、人物の向きが異なる複数のサンプル画像を記憶していることを特徴とする請求項1乃至請求項4のいずれか一項に記載の人物検出装置。
【請求項6】
前記移動体検出手段は、前記対象距離が所定範囲内である場合に、前記移動体情報を出力することを特徴とする請求項1乃至請求項5のいずれか一項に記載の人物検出装置。
【請求項7】
複数のカメラで移動体を撮像した複数の撮像画像から、当該撮像画像内に含まれる人物を検出する人物検出方法であって、
前記複数の撮像画像の視差と時系列に入力される撮像画像の差分とに基づいて、前記撮像画像内における前記移動体の領域である対象領域と、当該移動体までの距離である対象距離とを、移動体検出手段により移動体情報として検出するステップと、
前記対象領域において、前記移動体を人物と仮定したときの予め定めた大きさの頭部領域を、頭部領域設定手段により前記対象距離に対応した大きさで設定するステップと、
前記頭部領域に対応するエッジ画像である頭部エッジ画像を、頭部エッジ画像生成手段により生成するステップと、
前記頭部エッジ画像を、サイズ正規化手段により所定サイズの正規化画像に変換するステップと、
前記正規化画像内の隙間を補完した補完画像を、補完手段により生成するステップと、
前記補完画像と、予めサンプル画像記憶手段にサンプル画像として記憶してある前記所定サイズの頭部領域の画像との類似度を、類似度算出手段により算出するステップと、
前記類似度に基づいて、判定手段により前記移動体を人物と判定するステップと、
を含んでいることを特徴とする人物検出方法。
【請求項8】
複数のカメラで移動体を撮像した複数の撮像画像から、当該撮像画像内に含まれる人物を検出するために、コンピュータを、
前記複数の撮像画像の視差と時系列に入力される撮像画像の差分とに基づいて、前記撮像画像内における前記移動体の領域である対象領域と、当該移動体までの距離である対象距離とを移動体情報として検出する移動体検出手段、
この移動体検出手段で検出された対象領域において、前記移動体を人物と仮定したときの予め定めた大きさの頭部領域を、前記対象距離に対応した大きさで設定する頭部領域設定手段、
この頭部領域設定手段で設定された頭部領域に対応するエッジ画像である頭部エッジ画像を生成する頭部エッジ画像生成手段、
この頭部エッジ画像生成手段で生成された頭部エッジ画像を、所定サイズの正規化画像に変換するサイズ正規化手段、
このサイズ正規化手段で変換された正規化画像内の隙間を補完した補完画像を生成する補完手段、
この補完手段で生成された補完画像と、予めサンプル画像記憶手段にサンプル画像として記憶してある前記所定サイズの頭部領域の画像との類似度を算出する類似度算出手段、
この類似度算出手段で算出された類似度に基づいて、前記移動体を人物と判定する判定手段、
として機能させることを特徴とする人物検出プログラム。

【図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

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2007−156939(P2007−156939A)
【公開日】平成19年6月21日(2007.6.21)
【国際特許分類】
【出願番号】特願2005−352890(P2005−352890)
【出願日】平成17年12月7日(2005.12.7)
【出願人】(000005326)本田技研工業株式会社 (23,863)
【Fターム(参考)】