(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、本発明の一実施の形態例(以下、「本例」と称する)について、添付図面を参照して説明する。
【0013】
[1.歩行者認識装置の構成]
図1は、本例の歩行者認識装置の構成を示す機能ブロック図である。本例の歩行者認識装置は、例えばコンピュータ装置に歩行者認識処理を実行するプログラムを実装することで構成される。
【0014】
図1に示す歩行者認識装置は、中央制御ユニット(以下、「CPU」と称する)11、プログラムメモリ12、外部入出力インタフェース13、脚候補抽出部14、脚候補中心座標分類部15、脚候補状態判定部16、歩行者抽出部17、歩行者中心算出部18、及び歩行者特徴量算出部19を備える。
また、歩行者認識装置は、それぞれの処理部で得たデータを記憶するメモリとして、脚候補中心メモリ21、脚候補クラスメモリ22、歩行者クラスメモリ23、歩行者中心メモリ24、及び歩行者特徴量メモリ25を備える。
【0015】
また、歩行者認識装置は、測定部31と2次元領域センサ32を備える。測定部31は、歩行者認識を行う上で必要な測定データ(測距データ)を取得する。すなわち、測定部31には、2次元領域センサ32から測距データが供給され、測定部31は、この測距データに基づいて測定処理を行う。なお、測距データは、2次元領域センサ32から周囲の物体までの距離を示すデータである。本例の場合には、2次元領域センサ32として、2Dレーザレンジファインダ(laser range finder:2D−LRF)が使用される。2次元領域センサ32は、地面から約20cmの高さの物体までの距離を検出する。測定部31で得られた測距データは、2次元距離データメモリ33に記憶される。ここでは、2次元距離データメモリ33には、2次元領域センサ32からの距離Lと、2次元領域センサ32から見た方位角θが記憶される。
【0016】
CPU11は、プログラムメモリ12に記憶されたプログラムを実行することで、歩行者認識装置による歩行者認識処理動作を実行する。プログラムメモリ12は、ROMとRAMで構成される。
外部入出力インタフェース13は、歩行者認識装置で得られた歩行者認識結果を外部に出力する。また、外部入出力インタフェース13は、外部から歩行者認識装置の動作モードなどを設定するデータを受信する。
【0017】
脚候補抽出部14は、測定部31で取得される測距データに基づいて、人間の脚候補を抽出する脚候補抽出処理を行う。また、脚候補抽出部14は、測距データでは見えていない、いわゆる隠れ脚候補を補間する脚候補補間部としての機能も持つ。脚候補抽出部14で抽出される脚候補の中心座標は、脚候補中心メモリ21に記憶される。そして、脚候補抽出部14で得られた脚候補のデータ(中心座標のデータ)は、脚候補中心座標分類部15に供給される。
【0018】
脚候補中心座標分類部15は、脚候補の中心座標の変化に基づいて、脚候補をクラスタリングする脚候補中心座標分類処理を行う。脚候補中心座標分類部15で得られたクラスタリング結果は、脚候補クラスメモリ22に記憶される。脚候補中心座標分類部15で得られた脚候補のクラスタリング結果は、脚候補状態判定部16に供給される。
【0019】
脚候補状態判定部16は、脚候補中心座標分類部15のクラスタリング結果から、脚候補を立脚期と遊脚期に分ける脚候補状態判定処理を行う。立脚期と遊脚期については後述する。脚候補状態判定部16で分類された立脚と遊脚のそれぞれを示す番号(クラス番号)は、歩行者クラスメモリ23に記憶される。脚候補状態判定部16で得られた脚候補の立脚期と遊脚期のデータは、歩行者抽出部17に供給される。
歩行者抽出部17は、脚候補の立脚期と遊脚期のデータに基づいて、立脚期と、その立脚期に続いた遊脚期で構成される立脚・遊脚ペアを生成する歩行者抽出処理を行う。
【0020】
歩行者中心算出部18は、立脚・遊脚ペアと、その立脚・遊脚ペアの近傍の立脚とを使って、歩行者中心座標を求める歩行者中心算出処理を行う。すなわち、歩行者中心算出部18は、脚候補中心座標分類部15が分類する上で必要な歩行者中心の算出処理を、脚候補の座標から行う。歩行者中心算出部18で算出された歩行者中心は、歩行者中心メモリ24に記憶される。
歩行者特徴量算出部19は、歩行者中心算出部18で算出された歩行者中心に基づいて、歩行者特徴量を算出する。ここで算出する歩行者特徴量は、例えばタグ番号、歩容、移動方向、移動速度、一時停止状態、停止時間、滞留時間などのデータである。歩行者特徴量算出部19で算出された歩行者特徴量は、歩行者特徴量メモリ25に記憶される。
【0021】
[2.歩行者の歩行状態の説明]
図2は、歩行者の左右の脚の立脚期と遊脚期を示す図である。
立脚期は、それぞれの脚が地面と接触した状態を示す。この立脚期では、地面に脚が静止している。遊脚期は、それぞれの脚が地面から離れた状態を示す。この遊脚期では、脚の位置が地面上を移動する。
図2に示すように、左脚の立脚期と遊脚期の期間と、右脚の立脚期と遊脚期の期間とが交互にずれている。ここで、左右の脚の片方が立脚期で一方は遊脚期となる区間は、歩行動作に特有のものであり、歩行1サイクルの約80%を占める。すなわち、
図2に示すように右遊脚期が約40%であり、
図2には示さないが左遊脚期についても同様に約40%であり、合計すると歩行1サイクルの約80%を占める。
【0022】
ここで、立脚期と遊脚期における足首周りの動きに注目すると、立脚期はほとんど移動せず、遊脚期は歩幅分大きく移動することから、足首周りの動きから脚の状態を判別することができる。
そして、同一人物の2つの脚の内の片脚が立脚で一方が遊脚となる場合に、それを同一人物の歩行動作であると推定して、これを判定することができれば、各脚の重心位置から両脚間の中心(重心)位置を推定することができる。その結果、歩行の中心(重心)の軌跡を得ることができる。
【0023】
図3は、左右の脚の立脚位置(実線で示す位置)及び遊脚位置(破線で示す位置)を示す。
図3では、検出した立脚位置及び遊脚位置の中心をプロットした位置を白丸で示し、そのプロットした位置を接続した中心軌跡m1を示す。この中心軌跡m1が、歩行者の歩行軌跡になる。本例の歩行者認識装置では、このような歩行者の歩行軌跡を検出して、歩行者を認識するものである。
左右の脚は、2次元領域センサ32の検出信号から検出される。本例の場合、2次元領域センサ32は、地面から約20cmの高さの面で、物体を検出して、歩行者の足首を検出する。
【0024】
ところで、
図3に示すように歩行重心の予測を行う上で、脚の中心(重心)位置を正確に推定することは重要である。しかしながら、実際には、2次元領域センサ32から常に左右の脚が見えているとは限らず、2次元領域センサ32の検出データで見えていない脚(以下、これを「隠れ脚」と称する)に対しては、測定点を十分に得ることができない。隠れ脚の形状を予測することで隠れ脚の中心を予測することは不可能ではないが、正確な隠れ脚の中心予測を行うのは難しい。そこで本例の場合には、隠れ脚の中心座標を推定することなく、2次元領域センサ32の検出信号で見えている脚の中心座標のみを参照して、歩行者中心抽出を行っている。
【0025】
例えば2次元領域センサ32から遠ざかる歩行者の場合、遊脚となった左脚は、右立脚の横を通過して、右立脚よりも前の位置で再び立脚となるが、右立脚の横を通過した後は、2次元領域センサ32との位置関係から隠れ脚となる場合が多く、中心座標の検出が安定しない。そこで、本例の場合には、左脚が右立脚近傍へ到達した時点で脚候補軌跡の追従を打ち切り、脚候補中心検出の正確性を確保する。
また、2次元領域センサ32から遠ざかる歩行者の場合、あるタイミングで2次元領域センサ32が左立脚を検出したとき、そのタイミングから後の検出は、左立脚→左遊脚→右立脚となる可能性が高い。
そこで、立脚と遊脚のペアが検出された時点で、そのペアで示される中心座標を保持し、その後、さらに次の立脚と遊脚のペア(左右が逆)が検出されたときに、これらの中心座標を保持し、歩行軌跡を検出する処理を行う。
【0026】
これらの本例の歩行者認識装置が行う歩行者認識処理の詳細を、以下、順に説明する。なお、以下の説明で中心位置や中心軌跡などの「中心」と述べた場合には、距離の二等分などで中心となる位置を求める場合の他に、全体のバランスなどを考慮して重心を求める場合も含まれる。また、「中心」を求めると述べた場合には、「重心」を求める処理も含むと考えてよい。
【0027】
[3.歩行者認識処理の詳細]
図4は、本例の歩行者認識装置が行う歩行者認識処理全体の流れを示すフローチャートである。歩行者認識処理は、歩行者認識装置のCPU11の制御下で実行される。
まず、測定部31が2次元領域センサ(2D−LRF)32から距離データを取得する(ステップS11)。そして、脚候補抽出部14が、距離データから脚候補となる物体を抽出し(ステップS12)、脚候補の座標位置(重心座標位置又は中心座標位置)を算出して保持する(ステップS13)。
【0028】
その後、CPU11は、予め決められた指定実行頻度に該当するか否かを判断する(ステップS14)。ここで、指定実行頻度に該当しない場合には(ステップS14のNO)、ステップS11での測定部31の距離データ取得処理に戻る。そして、ステップS14で指定実行頻度に該当する場合(ステップS14のYES)、脚候補抽出部14が抽出した脚候補から脚候補状態判定部16が立脚の脚候補を抽出し、ここで抽出された脚候補が脚候補クラスメモリ22に保持される(ステップS15)。
【0029】
その後、CPU11は、脚候補クラスメモリ22に保持された立脚が存在するか否かを判断し(ステップS16)、保持された立脚が存在する場合(ステップS16のYES)、脚候補抽出部14は、既検出済みの立脚に対応する遊脚を抽出する。そして、歩行者抽出部17は、脚候補抽出部14で抽出された立脚と遊脚に基づいて、立脚と遊脚とのペアの生成処理を行う(ステップS17)。なお、ステップS16で保持された立脚が存在しない場合(ステップS16のNO)には、ステップS11での測定部31の距離データ取得処理に戻る。
【0030】
そして、CPU11は、立脚と遊脚とのペアに対応する立脚が存在するか否かを判断し(ステップS18)、対応する立脚が存在する場合(ステップS18のYES)、歩行者中心算出部18は、立脚と遊脚との間の中心座標を算出し、中心座標を歩行者中心メモリ24に保存する(ステップS19)。また、ステップS18で対応する立脚が存在しない場合(ステップS18のNO)には、ステップS11での測定部31の距離データ取得処理に戻る。
【0031】
そして、ステップS19で中心座標を計算して保存した後、CPU11は、各メモリに保存された不要な立脚及び立脚・遊脚ペアのデータを削除する(ステップS20)。その後、CPU11は、歩行者認識動作を終了するか否かを判断し(ステップS21)、終了しない場合(ステップS21のNO)、ステップS11での測定部31の距離データ取得処理に戻る。また、ステップS21で歩行者認識動作を終了する場合(ステップS21のYES)、
図4のフローチャートの処理を終了する。
【0032】
次に、
図4のフローチャートのステップS12で行われる脚候補抽出処理について説明する。
本例の場合、ステップS12の脚候補抽出処理では、2次元領域センサ32の検出データに基づいて、地面から20cmの高さに存在する脚の形状を取得している。地面から20cmの高さに存在する脚の形状を取得することは、おおよそ人間の足首周りの形状を取得することになる。したがって、脚候補抽出部14で行われる脚候補抽出処理では、2次元領域センサ32の検出データに基づいて、一定の幅より小さい物体を脚候補として抽出し、その中心座標を取得するようにしている。
【0033】
図5は、脚候補抽出部14で行われる脚候補の抽出処理の詳細の一例を示すフローチャートである。
まず、脚候補抽出部14は、1フレーム分の測距データ配列の各要素に対して、次の(1)式を適用することにより、配列中の各要素の前後差分を計算し配列diffとして格納する(ステップS21)。ここで、iは配列の要素番号を表す。なお、ここでは2次元領域センサ32から得られる測距配列の要素数が1081であり、要素番号iは0から1080までの値になる。
diff[i]=測距データ配列[i+1]−測距データ配列[i]・・・・(1)
但し、i=0,1,2,…,1080
【0034】
その後、脚候補抽出部14は、前後差分diff[1080]のうち、| diff[i] |>EDGE_TH (i=0,1,...1080)を満たすものを差分エッジとして抽出し、diff_edge[x]配列に格納する(ステップS22)。ここでは、物体の端点で測距データの値は大きく変化することを利用して、前後差分配列diffの各要素のうち、絶対値が一定値以上(EDGE_THという変数で定義)となる場所の要素番号を、差分エッジとして取得する処理を行う。
【0035】
次に、脚候補抽出部14は、ループ処理に移る。すなわち、最初にループ変数jに0を代入し(ステップS23)、diff_edge[j]及びdiff_edge[j+1]の値を取得する(ステップS24)。
その後、脚候補抽出部14は、条件式diff[a]>0かつdiff[b]<0となる条件を満たすか否かを判断して、正負の差分エッジに挟まれた部分を抽出する(ステップS25)。
ステップS25の条件を満たすとき(正負の差分エッジに挟まれた部分であるとき:ステップS25のYES)、脚候補抽出部14は、端点間の距離が、予め決められた脚のサイズより決まる閾値TH_FOOTより小さいか否かを判断する(ステップS26)。
ここで、閾値TH_FOOTより小さいと判断したとき(ステップS26のYES)、脚候補抽出部14は、脚候補の中心を算出して、その算出した中心を記憶させる(ステップS27)。
【0036】
ステップS27の処理を行った後と、ステップS25で条件を満たさない場合(ステップS25のNO)及びステップS26で条件を満たさない場合(ステップS26のNO)には、脚候補抽出部14は、ループ変数を1つ増加させ(ステップS28)、次のループに備える。
その後、脚候補抽出部14は、[j==x−1]の終了条件を満たすか否か判断し(ステップS29)、この終了条件を満たす場合(ステップS29のYES)に処理を終了する。また、ステップS29で終了条件を満たさない場合(ステップS29のNO)に、脚候補抽出部14は、ステップS23のループ処理の最初に戻る。
【0037】
次に、
図5のフローチャートに示す脚候補抽出処理を、
図6〜
図18を参照して説明する。
図6は、2次元領域センサ(2D−LRF)32の検出データから、脚候補を検出する例を示す。
図6の例では、2次元領域センサ32から離れた箇所に壁が存在し、その壁の手前に脚と物体(脚よりも大きな物体)が配置された状態を示す。
図6に示す黒丸は2次元領域センサ32の検出データで得られる測距点を示す。
図6の例では、20個の測距点を示す。この場合、上述した(1)式のiが0〜19になる。
【0038】
図7は、
図6の例の20個の測距点(i=0,1,2,・・・,19)の距離データの例を示す。
図7の下側に示すデータ列の上段は、測距点iの要素番号を示し、下段は距離値を示す。ここでは、物体に対応した要素番号i=2〜8で、距離2が検出され、脚に対応した要素番号i=13〜15でも、距離2が検出される。また、物体や脚が存在しない箇所では、壁までの距離に相当する距離4が検出される。
図8は、
図7とは要素番号の配列を逆(左から右)にしたものである。
【0039】
この
図8に示すデータ列に、上述した(1)式を適用することで(但しi=0〜19)、
図9の差分を示す配列diff[19]が得られる。
ここで、ステップS22では、前後差分diff[19]のうち、| diff[i] |>EDGE_TH (i=0,1,...19)を満たすものを差分エッジとして抽出し、diff_edge[x]配列に格納する。
図9の例の場合、条件を満たす要素は、要素番号1,8,12,15の4つであるため、
図10に示すdiff_edge[4]配列が得られる。
【0040】
次に、
図5のフローチャートのステップS23からステップS29までのループ処理について説明する。
ステップS23でループ変数jに0を代入し、ステップS24でdiff_edge[j]及びdiff_edge[j+1]の値を取得する処理を、
図10のdiff_edge[4]配列に対して適用する。これにより、脚候補抽出部14は、1回目のループでdiff_edge[0]→”1”とdiff_edge[1]→”8”を取得し、ステップS25のdiff[a]、diff[b]における変数a、bに代入する。
【0041】
このdiff_edge配列は、測距データ配列の前後差分であるdiff配列の変化の大きい部分を抽出したものである。したがって、ステップS25でdiff[a],diff[b]を参照すると、測距データ中の差分エッジを得ることができる。また、a=1、b=8とすればdiff[1]=-2、diff[8]=2を得る。続いて、ステップS25の条件式(diff[a]>0かつdiff[b]<0)を適用することで、正負の差分エッジに挟まれた部分を抽出する。
【0042】
ここでは、2次元領域センサ32から見て遮蔽するものがない物体(脚)の場合には、その物体の左端と右端から正と負の差分エッジがそれぞれ検出されるのに対し、例えば
図11に示すように、一部が遮蔽される物体(隠れ脚)では、両端ともに負の差分エッジが検出される。
すなわち、
図11の例は、左脚100Lと、それより2次元領域センサ32から見て遠い位置の右脚100Rがある例である。この例の場合、2次元領域センサ32から見て2つの脚100L,100Rの一部が重なっている場合には、左脚100Lの右端の検出データと右脚100Rの左端の検出データとの間に、負の差分エッジが発生する。
したがって、ステップS25の条件式(diff[a]>0かつdiff[b]<0)を満たす物体のみを抽出すれば、負の差分エッジが発生する状況が排除され、隠れ脚は抽出されなくなる。
脚候補抽出部14は、このようにして抽出された脚候補のそれぞれの中心(重心)座標を求め、その中心座標を順に保持する。
【0043】
なお、脚候補抽出部14は、隠れ脚を補間で算出する脚候補補間部としての処理も行う。すなわち、抽出された脚候補の内で、次に説明する遊脚として検出された脚候補がある程度離れて検出された場合には、脚候補抽出部14は、その遊脚の候補位置を補間して、遊脚の補間位置を求める処理を行う。
【0044】
次に、脚候補状態判定部16が、脚候補から立脚を抽出して保持する処理について説明する。
立脚を検出する保持処理では、脚候補の検出処理で一定フレームをスタックして得られた脚候補の中心に対して、クラスタリングアルゴリズム(例えばDBSCAN:Density-Based Spatial Clustering)を適用して、密度ベースクラスタリングを行う。そして、脚候補の中心が集まっている箇所を立脚クラスタとして抽出する。すなわち、立脚期には、該当する脚はある程度の期間ほぼ静止しており、その静止状態から立脚期を判別する。
【0045】
図12は、脚候補をクラスタリングして、立脚候補を抽出する例を示す。この
図12は、脚候補の中心座標の変化を示す。すなわち、白丸が立脚としてクラスタリングした脚候補を示し、黒丸が立脚でない(つまり遊脚)としてクラスタリングした脚候補を示している。
【0046】
図12に示すように、立脚が検出された場合には、立脚クラスタに固有の識別記号(ID)を割り当て、立脚クラスタの中心座標と向き(進行方向)を取得し、これを保持する。また、次に行われる立脚・遊脚ペアの生成の精度を向上させるため、立脚クラスタを構成する点群のうち、時系列的に最も新しいものを、立脚座標として扱う。そして、クラスタリングアルゴリズムでクラスが割り振られなかった脚候補の中心座標は、遊脚の中心座標として扱い、その遊脚の中心座標を保持する。
【0047】
次に、歩行者抽出部17が、立脚・遊脚ペアを生成する処理について説明する。
立脚・遊脚ペアを生成する処理では、脚候補状態判定部16での判定によって保持されている立脚情報をもとに、それぞれの立脚から伸びる遊脚を検出し、立脚と遊脚を結びつける処理を行う。一つの脚が立脚から遊脚に遷移する場合、脚中心座標には連続性があるので、立脚クラスタの終点座標の近傍にある足候補座標を遊脚の始点として結びつけていく。
【0048】
具体的には、
図13に示すように、立脚クラスタの方向ベクトルと立脚中心から遊脚候補へのベクトルがなす角度θ(
図13(B))を計算し、その角度θが閾値以内で、かつ立脚終点座標からのユークリッド距離が最小となる脚候補を、
図13(A)に示すように遊脚の始点として結合する。その後は、最近傍点を結合していき、立脚と遊脚のペアである立脚・遊脚ペアを作成し、一定フレーム間保持する。なお、この立脚・遊脚ペアが生成された時点で、立脚を管理する配列から、該当する立脚クラスを削除する。
【0049】
図14は、2次元領域センサ32の検出データ(座標データ)から立脚・遊脚ペアを生成した具体例を示す。この例では、歩行者の進行方向の左右に壁があり、その壁の間の通路を、2次元領域センサ32から離れる歩行者を検出したものである。
図14において、大きな丸は立脚期の座標を示し、小さな丸は遊脚期の座標を示す。
図14は、立脚とそれに続いた遊脚が立脚・遊脚ペアとして生成されることを示している。
【0050】
次に、歩行者中心算出部18が行う歩行者中心座標の算出処理について説明する。
左右の脚の内の一方の脚の遊脚・立脚ペアが生成された後、もう一方の脚の立脚(対応立脚)が検出されれば、歩行者中心算出部18は、立脚・遊脚ペアの全座標と対応立脚の中点を求め、歩行者中心を算出することができる。具体的には、立脚・遊脚ペアの終点の近傍に別の立脚クラスが生成された場合、歩行者中心算出部18は、これら立脚・遊脚ペアと立脚を同一歩行者のものであると確定して、左右脚の中点座標を計算し、これを歩行者中心とする。なお、この歩行者重心計算が行われた時点で、立脚・遊脚ペア管理配列から、計算に用いたクラスを削除する。
【0051】
図15(A)〜(E)は、歩行者が2次元領域センサ(LRF)32から遠ざかる方向に歩行する様子を時系列で表したものである。
図15において、「L」は左脚の位置を示し、「R」は右脚の位置を示す。以下、
図15(A),(B),(C),・・・と時間が進むごとに、左脚と右脚の位置が2次元領域センサ32から遠ざかっている。
【0052】
この
図15の状態を2次元領域センサ32で検出したとき、
図16に示すように、2つの脚の内で、2次元領域センサ32からより離れている脚が、隠れ脚になって、検出されない可能性が高い。
具体的には、
図15(A)の脚位置を検出した
図16(A)の検出データでは、左脚「L」が隠れ脚となる。また、
図15(B)の脚位置を検出した
図16(B)の検出データでは、右脚「R」が隠れ脚となる。以下、一方の脚が隠れ脚となった状態が
図16(A)〜(E)に示すように継続していく。
【0053】
ここで、本例においては、立脚・遊脚ペアを使って歩行者中心算出部18が歩行者中心座標検出処理を行うことで、隠れ脚を使うことなく、正確な歩行者の中心座標の検出処理を行うことができる。
図17(A)〜(E)は、
図15(A)〜(E)の歩行状態で、この歩行者の中心座標を検出する状態を示す。この
図17に従って検出処理状態を説明すると、まず
図17(A)に示すように、右足を立脚として検出(「立」として示す位置)し、立脚管理配列に保持する処理が行われる。
【0054】
その後、
図17(B)に示すように、検出した右足立脚の近傍に存在する右足遊脚を結合して、立脚・遊脚ペアを生成させる。このとき、遊脚座標の結合個数が一定数を超えれば、遊脚・立脚ペアが完成したものとみなし、立脚・遊脚ペア管理配列に保持する。
さらに、
図17(C)に示すように、右足立脚・遊脚ペアに対応する左足立脚を検出する。この右足立脚・遊脚ペアに対応する左足立脚は、右足立脚・遊脚ペアの近傍に存在する立脚の候補から検出される。
【0055】
右足立脚・遊脚ペアに対応する左足立脚が検出されると、
図17(C)に示すように、右足立脚・遊脚ペアを構成する各脚の位置と、左足立脚とを結ぶラインの中点に、歩行者中心を設定し、歩行者中心座標の列を得る。この歩行者中心座標は、歩行者管理配列によって、歩行者ID毎に管理される。この歩行者中心の計算が完了した時点で、脚候補状態判定部16で判定された右足立脚・遊脚ペアのデータは不要となり、立脚管理配列及び立脚・遊脚ペア管理配列から当該クラスを削除する。
このようにして、
図17(D)に示すように、歩行者中心座標の列が得られる。
そして、
図17(E)に示すように、次の立脚・遊脚ペアと、その立脚・遊脚ペアの近傍の立脚との間で、歩行者中心座標を検出する処理が行われる。
【0056】
図18は、実際に歩行者中心の変化を示す歩行経路の検出例を示す。この
図18に示す例は、
図14に示す例と同様に、2次元領域センサ32から離れる方向に移動する歩行者を補足したものである。
図18は、歩行者の移動軌跡αが、立脚や遊脚の検出座標に基づいて検出された状態を示している。なお、
図18に示す検出座標列w1,w2は、歩行者が歩くときの両側の壁を示している。
【0057】
このように歩行者中心座標を時系列で示すことで、歩行者の歩行経路を取得することができる。また、歩行者認識装置の歩行者特徴量算出部19は、歩行者中心座標の変化に基づいて、該当する歩行者の歩容、移動方向、移動速度、一時停止状態、停止時間、滞留時間などを算出することができる。歩行者中心算出部18で算出された中心座標で示される歩行経路や、歩行者特徴量算出部19で算出された特徴量は、例えばCPU11の制御で外部入出力インタフェース13から外部に出力して表示することができる。
また、本例の歩行者認識装置が、自律移動型ロボットに搭載されている場合には、自律移動型ロボットが移動経路を算出する場合に、周囲の歩行者の歩行経路を避けた移動ルートを算出することができる。これにより、自律移動型ロボットは、歩行者の邪魔にならない移動経路で自律移動することができる。
特に本例の場合には、測距データに基づいて一人一人の歩行者を確実に補足して歩行者中心座標の変化を検出できるため、歩行者認識装置の周囲に多数の歩行者が存在する環境でも、その多数の歩行者を同時に補足することが容易にできるようになる。
【0058】
なお、上述した実施の形態例では、
図1に示す歩行者認識装置として構成した例を示したが、
図4や
図5のフローチャートに示す歩行者認識処理を実行するプログラムをコンピュータ装置に実装して、コンピュータ装置が歩行者認識処理を行うようにしてもよい。
また、上述した実施の形態例では、測距データを取得するセンサとして、2Dレーザレンジファインダよりなる2次元領域センサを使用したが、その他の測距データが得られる測距センサを使用してもよい。