開示の人物検出装置、人物検出方法及びプログラムでは、重力方向と略垂直な平面で走査範囲を走査して基準位置から走査範囲内の対象物までの距離を測定してレンジデータを出力し、レンジデータを所定周期でサンプリングしたセグメントに基づいて脚の特徴を抽出する。人物は、抽出した特徴の運動特性及び幾何情報に基づいて検出する。脚の特徴を抽出する抽出部は、最短距離近傍法を用いて取得した2つのセグメントペアの移動特性に基づいて、各セグメントペアが静止している静止セグメントを分類する静止特徴強分類器と、各セグメントペアが移動している移動セグメントを分類する移動特徴強分類器を含み、分類されたセグメントの特徴に基づいて2つのセグメントペアから脚ペアを抽出する。
基準位置から対象物までの距離の測定には、例えばレーザレンジファインダ等を用い、カメラ等の撮像手段を用いないので、人物検出環境に大きく影響されることなく距離を測定できる。又、人物を検出するためのデータ処理量は、カメラで撮像した画像データを処理する場合と比較すると非常に少ない。又、人物の移動時及び静止時にかかわらず人物の脚の特徴を正確、且つ、比較的簡単に抽出可能となる。このため、抽出した脚の特徴に基づいて人物を正確、且つ、比較的簡単に検出可能となる。
(第1実施例)
先ず、本発明の第1実施例における人物検出装置について説明する。本実施例では、説明の便宜上、人物検出装置がサービスロボットに適用されているものとする。尚、以下の説明では、人物の「脚」とは、足首から脛(スネ)、膝(ヒザ)、腿(タイ)までを含む。尚、「腿」は、膝から上を指す上腿(ジョウタイ)と、膝から下を指す下腿(カタイ)を含む。
図1は、本実施例におけるサービスロボットの一例を示す側面図であり、図2は、走査装置又は走査手段として機能するレーザレンジファインダ(LRF:Laser Range Finder)の走査範囲を説明する図である。
図1に示すように、ユーザに各種サービスを提供するサービスロボット1は、例えば人型のロボット本体2と、ベース部3を有する。ロボット本体2は、ユーザに対する案内等のサービスをアーム等の動きで提供する可動部と、ユーザに対する案内等のサービスを音声で提供する音声出力部と、ユーザに対する案内等のサービスを表示で行う表示部等を含む。ベース部3は、LRF4を含む人物検出装置、サービスロボット1をXY平面と平行な平面(以下、説明の便宜上「移動面」と言う)上の任意の方向へ移動させる駆動部(図示せず)等を含む。LRF4は、人物の脚を検出して脚との距離を測定するので、移動面に対して人物の脚を検出するのに適した高さ位置のXY平面を走査する位置に設けられている。サービスロボット1は、商業施設、博物館、駅等の公共の空間で案内、搬送等のサービスを提供する際に、ユーザ(即ち、人物)とのインタラクション(Interaction)を効率的に行うために、リアルタイムで人物を検出するよう構成されている。尚、ロボット本体2自体の構成は、提供するサービスに応じて適切に周知の構成を採用可能であるため、その詳細な図示及び説明は省略する。又、ベース部3内の駆動部の構成や駆動方法等も、周知の構成及び駆動方法を採用可能であるため、その詳細な図示及び説明は省略する。
図2に示すように、LRF4は、測定の開始、走査時間(又は、走査周期)、測定の終了等の指示に応答して、重力方向と平行な垂直面以外の任意平面の一例であるXY平面で走査範囲9をレーザビームにより走査して基準位置から走査範囲9内の対象物までの距離を測定する。基準位置は、この例ではLRF4の位置である。走査範囲9は、LRF4が距離の測定が可能な基準位置を中心とした所定の半径、且つ、所定の角度範囲で決まる扇状の領域である。この例では、走査範囲9は二次元に限定されている。走査時間(又は、走査周期)は、レーザビームが走査範囲9の一端から他端までを走査するのに要する時間である。LRF4自体は周知であるため、その構成及び動作の説明は省略する。後述するように、人物検出装置は、LRF4が測定した距離に基づいて対象物のXY平面上の断面形状に相当するパターン(第1のパターン)を算出して人物検出に用いる。
図3は、人物検出装置の動作を説明するフローチャートである。図3において、ステップS1は、LRF4が測定したレンジデータDrを所定周期でサンプリングする。又、ステップS2は、サンプリングされたレンジデータDrにフィルタ処理を施すと共に、レンジデータDrからセグメント(Segment)を形成してセグメントからクラスタ(Cluster)を形成する。
図4は、レンジデータDrのクラスタ化を説明する図である。図4において、LRF4の走査範囲9で検出された対象物11〜13のレンジデータDrのうち、ステップS1において所定周期でサンプリングされたレンジデータDrを丸印で示す。又、各対象物11〜13の輪郭(又は、エッジ)は太線で示す。riはLRF4により測定されたi番目のレンジデータDriの基準位置からの距離、ri+1はLRF4により測定されたi+1番目のレンジデータDri+1の基準位置からの距離、rjはLRF4により測定されたj番目のレンジデータDrjの基準位置からの距離、rj+1はLRF4により測定されたj+1番目のレンジデータDrj+1の基準位置からの距離を示す。
サンプリングされたレンジデータDrには、ステップS2においてスパイク(Spike)や反射によるノイズを減少させたり、細かい変動を無視させるためのフィルタ処理が施される。フィルタ処理は、例えばバウンドフィルタ(Bound Filter)、メディアンフィルタ(Median Filter)等の周知のフィルタにより施すことができる。
フィルタ処理を施された連続する2つのサンプリング点におけるレンジデータDrは、ステップS2において例えば2点の基準位置からの距離の差が第1の閾値以下であり、且つ、2点のXY平面上の距離が第2の閾値以下であると、同じ対象物のエッジの1つのセグメントを形成するものとして抽出され、同じ対象物のセグメントから1つのクラスタが形成される。つまり、1つのクラスタは、1つの対象物のセグメントを形成するレンジデータDrの集合である。
尚、XY平面上における人物の脚の候補となる断面形状の半径、又は、半径の平均値、又は、半径の範囲は、予め経験値等から求めておくことができる。従って、例えば図4の例では、対象物13の断面形状の半径が例えば人物の脚の候補と判定できる所定範囲外の値、或いは、対となる脚の候補の断面形状が後述する所定の位置関係になければ、対象物13は人物の脚ではないと判定可能となる。尚、LRF4の検出特性上、レンジデータDrは対象物の輪郭の約半分に対してのみ検出されるが、輪郭の約半分に対するレンジデータDrのXY平面上の位置、隣接するレンジデータDrで形成されるセグメントのXY平面上の曲率、1つのクラスタを形成する全てのレンジデータDrが包含される仮想円の最小半径等から対象物の半径を推定することができる。一方、対象物11の断面形状の半径が人物の脚の候補と判定できる所定範囲内の値、且つ、対となる脚の候補の断面形状が後述する所定の位置関係にあれば、対象物11は人物の脚であると判定可能となる。
例えばレンジデータDriを含む対象物11とレンジデータDri+1を含む対象物13の場合、基準位置からの距離ri,ri+1の差が第1の閾値を超えており、対象物11と対象物13の断面形状が所定の位置関係を満たさないので、対象物11と対象物13は同じ人物の脚として検出されることはない。これに対し、レンジデータDriを含む対象物11とレンジデータDrj+1を含む対象物12の場合、基準位置からの距離ri,rj+1の差が第1の閾値以下であり、対象物11と対象物12の断面形状が所定の位置関係を満たすので、対象物11と対象物12は同じ人物の脚として検出される。
このようにして、ステップS2では、測定されたレンジデータDrから各クラスタを管理するクラスタリストを作成する。クラスタリストには、レンジデータDrの数(測定点の数)、クラスタの中心座標、クラスタの中心座標から基準位置までの距離、クラスタを形成する全てのレンジデータDrが包含される仮想円の最小半径、クラスタを形成するレンジデータDrが直線を形成しているか否かの情報等が含まれる。尚、レンジデータDrの数、クラスタの中心座標、クラスタの中心座標から基準位置までの距離、クラスタを形成する全てのレンジデータDrが包含される仮想円の最小半径、クラスタを形成するレンジデータDrが直線を形成しているか否かの情報等は、いずれも周知の方法で算出可能であるため、その説明は省略する。
図3の説明に戻るに、ステップS3は、ステップS2で形成されたクラスタリストに基づいてクラスタを選別して人物の脚の特徴を図5に示すパターン(第2のパターン)P1,P2,P3に基づいて抽出する。クラスタを選別して抽出される人物の脚の特徴とは、人物の脚に似ている特徴、或いは、人物の脚らしい(即ち、脚である可能性が高い)特徴である。図5は、基準位置に対する人物の両脚L1,L2のXY平面上のパターンP1,P2,P3を説明する図である。パターンP1はLRF4が検出する両脚L1,L2が基準位置に対して前後しているパターン、パターンP2は両脚L1,L2が基準位置に対して並んで離間している(即ち、両脚L1,L2間に間隙が検出される)パターン、パターンP3は両脚L1,L2が基準位置に対して並んで接続している(即ち、両脚L1,L2間に間隙が検出されない)パターンである。図5では、説明の便宜上、パターンP1〜P3の移動方向の一例が太い矢印で示されている。
ステップS4では、ステップS3で抽出した特徴に基づいて対象物が人物であるか否かを判断して人物を検出する。この例では、ステップS4は、ステップS3で抽出した特徴の運動特性及び幾何情報に基づいて人物を検出する。特徴の運動特性は脚の候補の移動情報等を含み、特徴の幾何情報は同一人物の2脚の候補の情報等を含む。ステップS4の処理の詳細については後述する。
図6は、人物検出装置の一例を示すブロック図である。図6において、人物検出装置11は、プログラムを実行するコンピュータを形成するCPU(Central Processing Unit)12、メモリ13、タイマ14、他の装置とのインタフェースを形成する通信部15、及びLRF4を有する。CPU12は、人物検出プログラムを実行することで上記ステップS1〜S4を含む人物検出処理の各手順を実行する。メモリ13は、人物検出プログラム、及び、レンジデータDr等の検出デーや上記クラスタリスト等の各種リストを含む各種データを格納する。タイマ14は、リアルタイムクロック(RTC:Real Time Clock)等で形成可能であり、レンジデータDrのサンプリング周期等の時間を管理する。タイマ14は、CPU12内に設けられていても良い。通信部15は、図1のサービスロボット1の場合であれば、ベース部3内の人物検出装置11から見た外部装置(図示せず)に人物検出処理の結果等を通知したり、外部装置から人物検出処理を要求するコマンド等をCPU12に入力したりする。この外部装置には、ロボット本体2内の可動部、音声出力部、表示部等が含まれる。
尚、コンピュータに人物検出処理の各手順を実行させる人物検出プログラムは、メモリ13を含む適切なコンピュータ読み取り可能な記憶媒体に格納されていれば良く、人物検出プログラムを格納する記憶媒体は特に限定されない。
CPU12は、測定の開始、走査時間(又は、走査周期)、測定の終了等の指示をLRF4に出力する。CPU12は、これらの指示に応答してLRF4が測定した距離に基づいて対象物のXY平面上の断面形状に相当する第1のパターンを算出する算出部又は算出手段として機能する。メモリ13は、人物の両脚に相当するXY平面上の断面形状の第2のパターンP1〜P3が予め複数登録されている記憶部又は記憶手段として機能する。CPU12は、第1及び第2のパターンを比較して、比較結果に基づいて対象物から人物の脚の特徴を抽出する抽出部又は抽出手段、及び、抽出した特徴に基づいて対象物が人物であるか否かを判断する判断部又は判断手段としても機能する。
図7は、図3に示すステップS3の処理をより詳細に説明するフローチャートである。図7において、ステップS11では、図3のステップS2で形成されたクラスタの中から未処理であるk番目のクラスタCkを取得する。kの初期値は例えば1である。ステップS12では、前処理を行いクラスタCkが脚である可能性があるか否か、即ち、クラスタCkが脚の候補であるか否かを判定する。この前処理では、例えばクラスタCkを形成する全てのレンジデータDrが包含される仮想円の最小半径RCkを求め、最小半径RCkが予め定義された最小値Rminより大きく、且つ、予め定義された最大値Rmaxの2倍より小さいという第1の条件、最小半径RCk内のレンジデータDrの数が4個より大きいという第2の条件、及びクラスタCkを形成するレンジデータDrが直線を形成しないという第3の条件の全てを満たしていると、クラスタCkが脚である可能性がありステップS12の判定結果がYESであると判断する。ステップS12の判定結果がNOであると、ステップS13では、kをk=k+1にインクリメントして処理をステップS12へ戻すことで、ステップS2で形成されたクラスタの中から次の未処理クラスタCk+1を取得する。
ステップS12の判定結果がYESであると、ステップS14では、kをk=k+1にインクリメントしてステップS2で形成されたクラスタの中から次の未処理クラスタCk+1を取得する。ステップS15では、2個のクラスタCk,Ck+1がパターンP1に相当するか否かを判定し、判定結果がYESであると処理はステップS16へ進み、判定結果がNOであると処理はステップS17へ進む。ステップS15の判定結果がYESの場合に実行されるステップS16では、2個のクラスタCk,Ck+1を両脚の候補リストに追加し、処理はステップS13へ進む。抽出された脚の特徴を表す両脚の候補リストには、クラスタCkの中心座標が脚L1の座標として登録され、クラスタCk+1の中心座標が脚L2の座標として登録される。ステップS17では、kをk=k+1にインクリメントしてステップS2で形成されたクラスタの中から次の未処理クラスタCk+2を取得する。
ステップS18では、2個のクラスタCk,Ck+2がパターンP2に相当するか否かを判定し、判定結果がYESであると処理はステップS16へ進み、判定結果がNOであると処理はステップS19へ進む。ステップS18の判定結果がYESの場合に実行されるステップS16では、2個のクラスタCk,Ck+2を両脚の候補リストに追加し、処理はステップS13へ進む。ステップS19では、2個のクラスタCk,Ck+2がパターンP3に相当するか否かを判定し、判定結果がYESであると処理はステップS20へ進み、判定結果がNOであると処理はステップS13へ進む。ステップS20では、2個のクラスタCk,Ck+2を単脚の候補リストに追加し、処理はステップS13へ進む。抽出された脚の特徴を表す単脚の候補リストには、例えばクラスタCkの中心座標とクラスタCk+2の中心座標の中間点が単脚(接続状態の脚L1,L2)の座標として登録される。
図8は、パターン照合を説明するフローチャートである。図8に示す処理は、図7のステップS15において2個のクラスタがパターンP1に相当するか否か、或いは、図7のステップS18において2個のクラスタがパターンP2に相当するか否かを判断する際に実行される。予め定義した閾値α、β、γ、Lrminの値を適切に設定することにより、パターンP1或いはパターンP2との照合が可能となる。説明の便宜上、以下の説明ではパターンP1との照合を行うものとする。
図8において、ステップS31では、2個のクラスタCk,Ck+1のクラスタリストを参照してこれらのクラスタリストに登録された情報を取得する。ステップS32では、クラスタCkを形成する全てのレンジデータDrが包含される仮想円RckとクラスタCk+1を形成する全てのレンジデータDrが包含される仮想円Rck+1の相似度Sr=Rck/Rck+1を算出する。ステップS33では、クラスタCkの中心座標から基準位置までの距離DkとクラスタCk+1の中心座標から基準位置までの距離Dk+1の相似度Sd=|Dk−Dk+1|を算出する。又、ステップS34では、クラスタCkの中心座標からクラスタCk+1の中心座標までの距離Dck,k+1を算出する。
ステップS35では、Sr<α、Sd<β、Dck,k+1<γ、Rck<Lrmin、Rck+1<Lrminの全ての条件を満足しているか否かを判定する。ここで、αは仮想円の相似度Srに対する閾値、βはクラスタ中心座標から基準位置までの距離の相似度Sdに対する閾値、γはクラスタの中心座標間の距離に対する閾値、Lrminは人体の脚とみなす最小半径を示す閾値である。ステップS35の判定結果がNOであると、ステップS36は照合失敗、即ち、クラスタCk,Ck+1がパターンP1に相当しないと判断し、図7のステップS15の判定結果はNOとなる。一方、ステップS35の判定結果がYESであると、ステップS37は照合成功、即ち、クラスタCk,Ck+1がパターンP1に相当すると判断し、図7のステップS15の判定結果はYESとなる。
パターンP2との照合を行う場合には、予め定義した閾値α、β、γ、Lrminの値をパターンP2との照合用の値に変更するだけで、ステップS31〜S37が上記パターンP1との照合の場合と同様に行われる。この場合、ステップS35の判定結果がNOであると、ステップS36は照合失敗、即ち、クラスタCk,Ck+2がパターンP2に相当しないと判断し、図7のステップS18の判定結果はNOとなる。一方、ステップS35の判定結果がYESであると、ステップS37は照合成功、即ち、クラスタCk,Ck+2がパターンP2に相当すると判断し、図7のステップS18の判定結果はYESとなる。
図7のステップS19において2個のクラスタがパターンP3に相当するか否かは、例えば2個のクラスタを形成する全てのレンジデータDrが包含される仮想円の最小半径が予め定義された最小値Rminより大きく、且つ、予め定義された最大値Rmaxより小さいか否かを判定することで判断可能である。この場合の仮想円は、2個のクラスタの中心座標の中間点を中心とするものであっても良い。
上記ステップS3で抽出した特徴は、人物の脚に似ている特徴、或いは、人物の脚らしい(即ち、脚である可能性が高い、脚の候補の)特徴である。従って、ステップS4では、抽出された脚の特徴を表す脚(両脚又は単脚)の候補リストから人物の脚を抽出する。ステップS4では更に、脚の候補リストから抽出した脚に基づいて人物の検出を行い、抽出した脚と検出結果となる人物との関連付けも行う。
例えば、人物の脚は、候補が脚と特定された時点(又は、初期状態)の候補の位置を示すXY座標InitPos、タイマ14で管理されており候補が脚と特定された時の時間(又は、時刻)を示すタイムスタンプInitTimestamp、脚と特定された候補の現在位置を示すXY座標CurrentPos、脚と特定された候補の予測位置を示すXY座標PredictPos、脚と特定された候補の現在速度を表すベクトルCurrentVel、脚と特定された候補を脚として持つ人物Human等の情報で定義する。
一方、脚と特定された候補に基づいて検出した人物は、唯一の人物を示す識別情報ID、人物の現在位置を示すXY座標CurrentPos、人物の予測位置を示すXY座標PredictPos、人物の現在速度を示すベクトルCurrentVel、人物の両脚を示すLeftLeg, RightLeg等の情報(即ち、要素)で定義する。
図9は、脚と人物との依存関係を説明する図である。図9において、実線は人物とこの人物を定義する情報の人物定義リストHuman、人物の左脚とこの人物の左脚を定義する情報の左脚定義リストLeftLeg、及び人物の右脚とこの人物の右脚を定義する右脚定義リストRightLegの関係を示す。又、破線は、人物定義リストHumanの情報、左脚定義リストLeftLegの情報、及び右脚定義リストRightLegの情報の依存関係を示す。
候補の脚への特定、脚と特定された候補とこの候補から検出された人物との関連付け、脚及び人物の状態更新等を含む処理は、上記の如き定義リストHuman, LeftLeg, RightLegに基づいて任意検出サイクルTiで実行される。このような処理に必要な情報には、直前の検出サイクル(以下、「前回検出サイクル」と言う)Ti-1の脚定義リストLegTi-1の情報、前回検出サイクルTi-1で検出された人物の人物定義リスト(前回検出サイクルTi-1の検出結果)HTi-1の情報、現在の検出サイクル(以下、「今回検出サイクル」と言う)Tiで抽出された候補が新たに脚と特定された脚定義リストLegTiの情報等が含まれる。
図10は、図3に示すステップS4の処理をより詳細に説明するフローチャートである。図10において、ステップS41では、今回検出サイクルTiで抽出された候補が新たに脚と特定された新脚定義リストNLegTiを全てメモリ13に登録する。又、ステップS41では、今回検出サイクルTiで抽出された候補が新たに脚と特定された新脚定義リストNLegTi中の脚の現在位置を示すXY座標CurrentPosと、前回検出サイクルTi-1の全ての脚定義リストLegTi-1中の脚の現在位置を示すXY座標CurrentPosとを周知の最短距離近傍法(Nearest Neighborhood Algorithm)を用いて照合する。具体的には、新脚定義リストNLegTi中の脚の現在位置を示すXY座標CurrentPosと、前回検出サイクルTi-1の全ての脚定義リストLegTi-1中の脚の現在位置を示すXY座標CurrentPosとの最短距離を算出し、最短距離が閾値以下であれば最短距離近傍法により照合が成功した(以下、「照合成功」と言う)と判断して処理はステップ42へ進む。一方、照合の結果最短距離が閾値以下である新脚定義リストNLegTi中の脚の現在位置を示すXY座標CurrentPosが検出されないと、照合が不成功である(以下、「照合不成功」と言う)と判断して新脚定義リストNLegTiは他の脚又は人物と関連付けができていない非関連脚定義リストLegFeatureTiとしてメモリ13に登録し、次の検出サイクル(以下、「次回検出サイクル」と言う)Ti+1で抽出された候補が新たに脚と特定された新脚定義リストNLegTi+1が作成されるまで待つ。ステップS41で用いられる閾値は、新脚定義リストNLegTiが両脚に関するものであれば例えば人物の最大半径(例えば、1m)に設定されて2脚と2脚の最短距離を算出し、新脚定義リストNLegTiが単脚に関するものであれば1脚と1脚の最短距離が算出される。2脚と2脚の最短距離とは、2脚の中心と2脚の中心との間の最短距離である。
図11は、人物定義リストHuman、脚定義リストLeg及び非関連脚定義リストLegFeatureの一例を説明する図である。この例では、脚定義リストLeg1, Leg2が人物定義リストHuman1と関連付けられており、...、脚定義リストLegN, LegN+1が人物定義リストHumanMがと関連付けられているが、非関連脚定義リストLegFeature1, LegFeature2は他の脚又は人物と関連付けられていない。尚、新脚定義リストNLegの構成は、脚定義リストLegと同じ構成で良い。
ステップS41において照合成功と判断されると、ステップS42では、今回検出サイクルTiの脚定義リストLegTi中の脚の現在位置を示すXY座標CurrentPosを新脚定義リストNLegTi中の対応するXY座標CurrentPosで更新すると共に、脚定義リストLegTi中の現在速度を表すベクトルCurrentVelを更新してメモリ13に登録する。現在速度を表すベクトルCurrentVelは、新脚定義リストNLegTi中の脚の現在位置を示すXY座標CurrentPosと前回脚定義リストLegTi-1中の脚の現在位置を示すXY座標CurrentPosの差分と、検出サイクルタイムDTから推定可能である。更に、ステップS42では、今回検出サイクルTiまでに検出できていない脚の候補を更に抽出するため、照合できた候補を新脚定義リストNLegTiから削除すると共に、一定時間内に照合できない新脚定義リストNLegTiの要素も削除することで、新脚定義リストNLegTiを更新する。
ステップS43では、他の脚又は人物と関連付けができていると判断され、且つ、更新した脚定義リストLegTiの要素を参照している人物定義リストHumanTiの要素を更新する。具体的には、人物定義リストHumanTiの対応するXY座標CurrentPosと現在速度を表すベクトルCurrentVelを更新してメモリ13に登録する。尚、例えば人物定義リストHumanTiの左脚要素LeftLeg又は右脚要素RightLegを無効(NULL)に更新することによって、この人物定義リストHumanTiが定義する人物に対して基準位置から見える脚の本数が変わる。
このように、ステップS42により今回検出サイクルTiの脚定義リストLegTiの要素(即ち、脚の状態)が更新され、ステップS43により今回検出サイクルTiの人物定義リストHumanTiの要素(即ち、人物の状態)が更新される。
ステップS44では、メモリ13に登録されている、前回検出サイクルTi-1の他の脚又は人物と関連付けができていない非関連脚定義リストLegFeatureTi-1中の脚の現在位置を示すXY座標CurrentPosがあれば、更新された今回検出サイクルTiの新脚定義リストNLegTi中の脚の現在位置を示すXY座標CurrentPosとの最短距離を算出する。又、ステップS44では、この最短距離が閾値以下であれば最短距離近傍法により照合が成功した(「照合成功」)と判断して、照合が成功した非関連脚定義リストLegFeatureTi-1中のXY座標CurrentPosを非関連脚定義リストLegFeatureTi-1から削除すると共に、新たに脚と特定された候補の現在位置として、即ち、検出サイクルTiの脚定義リストLegTiの要素としてメモリ13に登録することで脚定義リストLegTiを更新する。このように、ステップS44では、新脚定義リストNLegTiから、前回検出サイクルTi-1で検出されていない脚の候補を抽出する。つまり、上記ステップS41〜S43の処理が完了した時点で新脚定義リストNLegTiが要素が登録されていない空リスト以外の場合、前回検出サイクルTi-1で検出されていない脚の候補と新脚定義リストNLegTiの各要素との最短距離を計算し、最短距離近傍法で候補を照合する。最短距離が閾値以下であれば、今回検出サイクルTiの新脚定義リストNLegTiの要素で定義した位置を新位置とする新たな脚を作成し、脚定義リストLegTiに追加する。
ステップS44の処理が完了した時点で、前回検出サイクルTi-1の脚定義リストLegTi-1と新脚定義リストNLegTiの要素の情報に基づいて、今回検出サイクルTiの脚定義リストLegTiの作成が完了する。この状態では、今回検出サイクルTiの脚定義リストLegTiを用いて人物の状態を更新することができる。
ステップS45では、前回検出サイクルTi-1で検出されている人物の状態を更新する。つまり、上記如く更新した今回検出サイクルTiの脚定義リストLegTiと、この脚定義リストLegTiの要素を参照する人物定義リストHumanTiとの関連付けに基づいて、今回検出サイクルTiの人物の位置又は移動速度を以下のように更新する。先ず、人物の2脚を検出することができ、且つ、両脚の距離が人物の最大半径(例えば、1m)以下の場合、両脚の中心で人物の位置を更新する。又、更新前後の脚の位置の差分とサイクルタイムDTで脚の移動速度を計算する。人物の2脚を検出することができ、且つ、両脚の距離が人物の最大半径を超える場合、両脚が同時に静止或いは移動する場合にはこの人物を人物定義リストHumanTiから削除する。この場合、両脚の静止或いは移動は、脚の移動速度から判断することが可能である。更に、人物の単脚しか検出できない場合、人物の位置をこの単脚の位置で更新し、上記の場合と同様に脚の速度も更新する。人物の脚が全て検出されない場合、脚が一時的に遮蔽されている可能性があるため、新たな脚の候補の全てに対し、人物の現在位置と最短距離を持つ2脚を選択する。この選択された2脚と人物との最短距離が探索半径Rs以内(例えば、Rs=1.5×(人の最大半径))であれば、この2脚を使って人物の状態を更新し、上記の場合と同様に脚の移動速度も更新する。
尚、一定時間内(例えば、2検出サイクル)で人物定義リストHumanTi中の要素の更新がなければ、その人物定義リストHumanTiで表される人物は削除する。上記の如き処理が完了した時点で、前回検出サイクルTi-1で検出した人物の状態(位置、速度)、即ち、人今回検出サイクルTiの人物定義リストHumanTiの更新が全て完了する。
ステップS46では、新たな人物を検出する。つまり、脚定義リストLegTiで表される、人物定義リストHumanTiへの参照がなく、且つ、前回検出サイクルTi-1で検出した人物との関連付けができていない各脚に対し、脚定義リストLegTiで表される他の脚との距離を算出する。又、算出された最短距離が人物の最大半径以内である脚と関連付けができていない脚とで形成される脚ペアのうち、少なくとも一方の脚が静止していない脚ペアを新たな人物の2脚とみなして今回サイクルTiで新たに検出した人物の脚として人物定義リストHumanTiに追加する。これにより、新たな人物を検出することができ、処理はステップS41へ戻る。
尚、ステップS4において、ステップS3で抽出した人物の脚に似ている特徴(或いは、人物の脚らしい(即ち、脚である可能性が高い)特徴)に基づいて対象物が人物であるか否かを判断して人物を検出する方法は、図10の手順を用いる方法に限定されるものではなく、人物の脚に似ている特徴に基づいて対象物が人物であるか否かを判断する方法であれば特に限定されない。
(第2実施例)
ところで、検出対象となる人物の周辺に複数の物体等が存在する比較的混雑した空間において、静止或いは移動している人物を検出することは難しい。これは、このような空間では、人間の脚と似た多数の特徴が存在し、人のセグメントを正しく検知することが難しいことと、対象人物が移動する際には人のセグメントの幾何特徴が変動するため、静止時と移動時の脚の特徴が異なりシームレス(Seamless)に脚を抽出することが難しいこと等による。このような比較的混雑した空間では、人の脚を抽出できない場合や、人の脚でない物体を脚と誤検出する場合もある。
そこで、静止している人の脚と移動している人の脚を確実に抽出可能な第2実施例を、以下に説明する。図12は、本発明の第2実施例におけるサービスロボットの一例を示すブロック図である。図12中、図6と同一部分には同一符号を付し、その説明は省略する。
図12において、サービスロボット111は、駆動部117、通信及び制御部115、及びCPU112を有する。CPU112は、脚抽出部112A及び人検知部112Bを形成する。脚抽出部112Aは、図3のステップS3に相当する処理を実行して人物の脚の特徴、即ち、人物の脚に似ている特徴、或いは、人物の脚らしい(即ち、脚である可能性が高い)特徴を抽出する。人検知部112Bは、図3のステップS4に相当する処理を実行して、脚抽出部112Aで抽出した特徴に基づいて対象物が人物であるか否かを判断して人物を検出する。通信及び制御部115は、図6の通信部15の機能を備えると共に、駆動部117を制御する機能を有する。尚、駆動部117を制御する機能は、CPU112により実現しても良く、この場合、駆動部117はCPU112に接続すれば良い。
図13は、脚抽出処理の一例を説明するフローチャートである。図12に示すCPU112は、図13に示す脚抽出処理を実行することで脚抽出部112Aの機能を実現する。
図3に示すステップS2では、フィルタ処理を施された連続する2つのサンプリング点におけるレンジデータDrは、例えば2点の基準位置からの距離の差が第1の閾値以下であり、且つ、2点のXY平面上の距離が第2の閾値以下であると、同じ対象物のエッジの1つのセグメントを形成するものとして抽出され、同じ対象物のセグメントから1つのクラスタが形成される。図13に示すステップS51は、ステップS2の一部を形成する。
ステップS51では、LRF4が測定したレンジデータDrから脚の特徴を抽出するために、レンジデータDrのエッジを抽出するセグメンテーションを行う。具体的には、2つの相隣サンプリング点(又は、レンジ点)の値、即ち、レンジ点同士の距離が一定閾値を超えると、セグメント(レンジ点の集合)の1つのエッジとして処理する。2つのエッジで、1つのセグメントを抽出する。
ステップS52では、クラスタリストから任意の2つのセグメントペア(即ち、セグメントの対)を取得する。ステップS53では、最短距離近傍法(Nearest Neighborhood Algorithm、以下NN法と言う)を用いて取得した2つのセグメントペアの移動特性を判断する。NN法は距離空間における最も近い点を探す最適化問題の一種、或いは、その解法である。NN法自体は、例えば非特許文献1等から周知である。ステップS53では、人物検出環境の情報を使わずに、LRF4が測定したレンジデータDrのフレーム間のセグメントの関連付けに基づいて各セグメントの移動状態を判別するために、極座標の状態ベクタ(R,θ)にNN法を適用する。
図14は、NN法を適用した場合のセグメント状態定義を説明する図である。図14は、セグメントの移動状態を極座標で定義した場合を示し、各セグメントseg1,seg2の基準位置からの距離(レンジ)Rと角度θを状態とする。例えば、セグメントseg1の状態は、Xi(Rt,θt)で表される実線で示す状態からXi+1(Rt+1,θt+1)で表される破線で示す状態に変化する。LRF4の検出サイクル間の各セグメントの移動量dXは、距離Rと角度θの重みを調整するゲイン行列をWで表すと、例えば次式のように定義される。
尚、人間の脚では、最大速度や、短時間内の移動軌跡に物理制限条件があり、これらの物理制限条件をフィルタとして用いることができる。
ステップS54では、各セグメントペアが静止しているセグメント(以下、静止セグメントと言う)であるか否かを判定し、判定結果がYESであると処理はステップS55−1へ進み、移動するセグメント(以下、移動セグメントと言う)であり判定結果がNOであると処理はステップS55−2へ進む。ステップS55−1,S55−2は、ブースティング(Boosting)分類処理を行うブースティング分類ステップS55を形成する。ブースティングとは、教師の有る学習を実行するための機械学習メタアルゴリズムの一種である。ステップS55−1は静止特徴強分類器の機能を実現し、ステップS55−2は移動特徴(又は、運動特性)強分類器の機能を実現する。弱分類器は真の分類と若干の相関のある学習機(learner)であるのに対し、強分類器は真の分類と良く相関する学習機である。分類ステップS55は、例えば後述するアダブースト(Adaptive Boosting: AdaBoost)分類器の機能を実現するものであっても良い。AdaBoostは、前の分類器の間違いに応じて調整された次の分類器を作成する周知の機械学習アルゴリズムである。
尚、上記の如き分類器自体、或いは、データマイニング(Data Mining)自体は、例えば非特許文献2等から周知である。
ステップS56では、ステップS55−1又はステップS55−2で分類されたセグメントの特徴に基づいて、セグメントペアを両脚として抽出するか否かを判定し、判定結果がNOであると処理はステップS52へ戻る。一方、ステップS56の判定結果がYESであると、ステップS57では、抽出したセグメントペア、即ち、2つのセグメントを脚ペアとみなし、処理はステップS58へ進む。ステップS58では、未評価のセグメントペアが有るか否かを判定し、判定結果がYESであると処理はステップS52へ戻る。ステップS58の判定結果がNOであると、ステップS59では、LRF4の次の検出サイクルへ進み、処理はステップS51へ戻る。
このように、本実施例では、脚の特徴を抽出する際に、背景との差分又はフレーム間差分等を使用しないので、サービスロボット111の移動時に背景の更新又は管理を行う必要はなく、セグメントのサイズ変更によるフレーム差分の誤差も発生しない。又、セグメントの状態ベクタを用いて脚の特徴を抽出するため、全レンジデータの差分を求める場合と比べると計算量を大幅に削減可能となる。更に、脚の物理制限条件を適用した脚の抽出を行うことにより、脚である可能性が低いセグメントを分離することができ、後述するAdaBoost分類器の学習サンプルの作成及びオンライン(Online)分類を効率的に行うことができる。
又、分類ステップS55では、対象となるデータに対する既知の性質(移動、静止)を判別し、判別結果を利用してデータに対する選択操作を前処理として行う。更に、分類ステップS55の処理結果を利用して、静止セグメントの特徴及び移動セグメントの特徴を別々で学習させることで、特徴データの次元を低減して分類器の作成及び訓練データの少量化が可能となる。オンライン分類の場合、各分類器に必要となる特徴のみを計算すれば良いため、計算量が比較的少なくて済み、CPU112への負荷を小さく抑えることができる。
図15は、NN法を用いた静止セグメントペアの判定処理を説明するフローチャートである。図15において、ステップS61は図13に示すステップS52に相当し、ステップS62〜S69は図13に示すステップS53,S54に相当する。
ステップS61では、クラスタリストから任意の2つのセグメントペアを取得する。ステップS62では、NN法を用いて取得した2つのセグメントペアについて、現在のフレームと直前のフレームとの関連付けを行う。ステップS63では、セグメントペアの移動量dXを上記の式に基づいて取得する。
ステップS64では、セグメントペアが脚の物理制限条件を満たしているか否かを判定する。例えば、セグメントの速度V又は加速度Aが脚の物理制限条件を満たしていなければ、ステップS64の判定結果はNOとなり処理はステップS65へ進む。ステップS65では、該当するセグメントペアの処理が完了したと判断するので、図13においてステップS56の判定結果がNOである場合と同様の処理となる。
セグメントの速度V及び加速度Aの条件について見ると、人間の脚の最大速度及び加速度が物理制限条件により制限されることから、次のような関係が成立する。ここで、Vminはセグメントの最小速度、Vmaxはセグメントの最大速度、Amaxはセグメントの最大加速度を示す。
Vmin < V < Vmax
A < Amax
従って、セグメントの速度V及び加速度Aが上記の関係を満たしていなければ、脚の物理制限条件を満たしていないと判断できる。
尚、セグメントの直線移動及び速度方向変化の条件について見ると、通常、脚の短時間での速度方向の変化は少ないことから、次式で示すように、連続する2フレーム間の速度ベクタVjを位置情報Pjと時間の差分dtで計算することができる。
Vji+1 = (Pji+1−Pji)/dt
Vji+2 = (Pji+2−Pji+1)/dt
上記2つの速度ベクタVji+1,Vji+2の角度αjを以下に示す関係のように一定範囲βj内に限定することによって、セグメントが略直線移動したか、或いは、セグメントの移動方向(又は、進行方向)が変化したかを判断することができる。
|αj| < βj
図15は、セグメントの直線移動及び速度方向変化の条件を説明する図である。図15は、直線移動及び移動方向変化の判断の概要と、セグメントが直線移動して移動方向が変化しない例と移動方向が変化する例を示す。あるフレームFi+1におけるセグメントの位置が次のフレームFi+2では図15(a)に示す位置へ移動する際、太い実線で示す2βjの範囲内(即ち、速度ベクタの角度αjが一定範囲βj内)で移動すれば図15(b)に示すようにセグメントは略直線移動したと判断し、2βjの範囲を超えて移動すれば図15(c)に示すようにセグメントの速度方向が変化したと判断することができる。
従って、ステップS64では、セグメントの速度方向変化が脚では起こりえない短時間で起これば、脚の物理制限条件を満たしていないと判断することもできる。更に、ステップS64における脚の物理制限条件を満たしているか否かの判定は、上記セグメントの速度V、加速度A、及び速度方向変化の少なくとも1つのパラメータに基づいて行うようにしても良い。
一方、ステップS64の判定結果がYESであると、ステップS66では、セグメントペアが移動セグメントであるか否かを判定する。ステップS66では、例えばセグメントの移動量dXが一定閾値以上であるか否かを判定することで、セグメントペアが移動セグメントであるか否かを判定する。ステップS66の判定結果がYESであると、ステップS67ではセグメントが移動セグメントであると判断し、ステップS69では対応する移動特徴強分類器の処理(図13に示すステップS55−2の処理)を実行する。一方、ステップS66の判定結果がNOであると、ステップS68ではセグメントが静止セグメントであると判断し、ステップS69では対応する静止特徴強分類器の処理(図13に示すステップS55−1の処理)を実行する。
次に、図13に示すステップS56,S57における静止セグメントペアからの脚の抽出を説明する。人間の両脚は同じ幾何情報を持つと仮定すれば、2つのセグメント間の幾何特徴の相似度を評価して両脚を特定することができる。幾何特徴の相似度の判断には、セグメント間の幾何サイズ又は幅及び距離の相似度に基づいて有向バウンディングボックス(OBB:Oriented Bounding Box)を用いた判断を行っても、2つのセグメント間の幾何形状の相似度を評価して、2つのセグメント間の最大ハウスドルフ距離(Hausdorff Distance)を用いた判断を行うようにしても良い。最大ハウスドルフ距離は、ハウスドルフ空間(Hausdorff Space)において最大となるハウスドルフ距離である。
OBBは3つの要素、中心点の座標、各座標軸の傾きを表す方向ベクトル、OBBの各座標軸に沿った長さの半分を有し、3次元(又は、2次元)における任意の大きさと傾きを持った直方体(又は、長方形)を表現する。2次元又は3次元の点列を包囲するOBBの作成方法自体は、例えば非特許文献3、非特許文献4等から周知である。
図17は、OBBの作成及びパラメータの定義を説明する図である。図17(a)はセグメントのOBB(以下、セグメントOBBとも言う)とセグメント(レンジ点の集合)の関係を示し、図17(b)はOBBのパラメータを示す。図17中、黒い丸印はレンジ点を示す。
セグメント間の幾何サイズ又は幅及び距離の相似度は、例えば次のように評価することができる。先ず、周知のOBB作成方法よりセグメントOBBを作成し、以下の如きOBBのパラメータを抽出する。
・OBBの指向性θi
・OBBのX軸のサイズ(又は、長さ)DXi
・OBBのY軸のサイズ(又は、長さ)DYi
・OBBの中心から原点までの距離Ri
・OBBの中心座標O'
セグメントi,j間の幾何サイズ又は幅及び距離の相似度を評価するために、任意のセグメントペアに対して以下の両脚静止条件c1〜c4を満足するか否かを計算により求める。
両脚幅条件c1:
Wmin < DXi/DXj < Wmax, Wmin < DYi/DYj < Wmax
両脚距離条件c2:
Distance(O'i, O'j) < Dmax
OBBの中心から原点までの距離条件c3:
Rmin < Ri/Rj < Rmax
OBBの指向性条件c4:
| |θi| − |θj| | < θmax
上記両脚静止条件c1〜c4を満足する場合は、静止脚ペアを抽出することができる。又、上記両脚静止条件c1〜c4を弱分類器とし、後述するAdaBoost分類器による分類を行うこともできる。
セグメントi,j間の幾何形状の相似度の評価は、例えば上記の如く作成したOBBを利用し、最大ハウスドルフ距離でセグメントペアの幾何形状の相似度を評価し、相似度が閾値以上の場合は静止脚ペアを抽出するものであっても良い。最大ハウスドルフ距離を評価する場合、予めセグメントの位置と方位を調整しておく。
図18は、セグメントOBBの指向性及び原点位置の調整方法を説明する図である。図18(a)は、第1セグメントi及び第2セグメントjを示し、図18(b)は第1セグメントiのOBBiと第2セグメントjのOBBjを示す。又、図18(c)は、図18(b)のOBBi,OBBjに座標変換(即ち、回転及び移動)処理を施した結果を示す。図18中、梨地の丸印はレンジ点を示し、破線は脚の輪郭を示し、大きな黒丸印は重心(COG:Center Of Gravity)を示す。
OBBの作成で取得した原点座標及び角度θより、計測点Pの座標を
に従って図18(b)の状態から図18(c)に示す状態に座標変換する。座標変換によりセグメントi,jの指向性及び原点位置が統一された状態でハウスドルフ距離を計算することにより、セグメント間の相似度を評価することができる。
調整したOBBペアのハウスドルフ距離による形の相似度を評価することができる。図19は、ハウスドルフ距離の計算例を説明する図である。図19(a)はハウスドルフ距離による相似度の評価用データを示し、この例では評価用データは単純な2次元曲線である。一方、図19(b)は目標曲線とのハウスドルフ距離の変化を示し、この例では図19(a)に示す各曲線の形をベースにしたハウスドルフ距離の計算結果である。図19(a)中、太い実線で示す目標曲線との相似度が一番高い曲線を特定することで、調整したOBBペアのハウスドルフ距離による形の相似度を評価することができる。図19(a)中、縦軸はy軸を任意単位で示し、横軸はx軸を任意単位で示す。図19(b)中、縦軸は各曲線の目標の曲線とのハウスドルフ距離を示し、横軸は各曲線の識別番号を示す。この例では、図19(a)中、便宜上一番下の曲線から目標曲線を除いて順に識別番号1,2,...,10が付けられており、目標曲線との相似度は識別番号5の曲線が一番高い。
次に、図13に示すステップS56,S57における移動セグメントペアからの脚の抽出を説明する。移動セグメントペアが脚であることを特定するために、次のような両脚移動条件(又は、両脚運動条件)c5〜c8を設定する。
両脚相隣条件c5:
人間が両脚で移動するため、連続する3フレームにおけるセグメントペアの空間距離Dsが全て一定閾値Dmax以下、即ち、D<Dmaxである。
両脚移動方向条件c6:
連続する3フレームでは脚は同じ方向へ移動する可能性が高いことから、連続する3フレームにおけるセグメントペアの平均速度の角度差が一定閾値dθmax 以下である。
両脚速度差条件c7:
人間が両脚で移動するとき、片脚がサポート(Support)、片脚がスイング(Swing)するため、殆どの場合に両脚間に速度差があることから、LRF4の3検出サイクルでの平均速度の比率が一定閾値VR以上である。
両脚垂直距離条件c8:
人間が両脚で移動するとき、両脚の速度方向と垂直方向に沿った距離Dvが一定閾値Dvt以下である。
任意の連続する3フレームのセグメントペアに対し、両脚移動条件c5〜c8を満足する場合は、移動セグメントペアを抽出することができる。又、上記両脚移動条件c5〜c8を弱分類器とし、後述するAdaBoost分類器による分類を行うこともできる。
次に、AdaBoost分類器による脚の分類及び選別を説明する。AdaBoost分類器による脚の分類及び選別は、次のように行うことができる。
上記両脚静止条件c1〜c4及び両脚移動条件c5〜c8を予め用意したパラメータで判別することも可能であるが、各条件c1〜c8の重みを適切に決めることは難しい。そこで、AdaBoost分類器を利用し、上記条件c1〜c8を弱分類器とし、弱分類器を学習データで学習させることによって、強分類器を作成することもできる。
AdaBoost分類器は、低精度の分類器、即ち、弱分類器を組み合わせて、高精度の分類器、即ち、強分類器を作成する。図20は、AdaBoost分類器を用いた脚抽出処理の一例を説明するフローチャートである。図20中、図13と同一ステップには同一符号を付し、その説明は省略する。
図20において、ステップS153では、NN法を用いて取得した2つのセグメントペアの移動特性を上記条件c1〜c8を用いて判断し、処理はステップS54へ進む。ステップS54の判定結果がYESであると処理はステップS155−1へ進み、判定結果がNOであると処理はステップS155−2へ進む。ステップS155−1,S155−2は、AdaBoost分類処理を行うAdaBoost分類ステップS155を形成する。ステップS155−1は、両脚幅条件c1を学習する両脚幅分類器、両脚距離条件c2を学習する両脚距離分類器、OBBの中心から原点までの距離条件c3を学習するOBBの距離・指向性分類器、及びOBBの指向性条件c4を学習する幾何相似度分類器の機能を実現し、これらの分類器を学習させることで静止特徴強分類器の機能を実現する。一方、ステップS155−2は、両脚相隣条件c5を学習する両脚相隣分類器、両脚移動方向条件c6を学習する両脚移動方向分類器、両脚速度差条件c7を学習する両脚速度差分類器、及び両脚垂直距離条件c8を学習する両脚垂直距離分類器(又は、歩幅距離分類器)の機能を実現し、これらの分類器を学習させることで移動特徴強分類器の機能を実現する。
図21は、AdaBoost分類器の学習及びオンライン分類を説明する図である。図21は、n個の分類器500−1〜500−nが細い実線で示す学習用サンプルに基づいて細い破線で示すようにオフライン学習を行い、太い実線で示すオンライン入力に基づいて太い破線で示すようにオフライン学習した分類器500−1〜500nの重みを用いてオンライン分類を行い、分類結果として次式に従って出力H(x)が計算される例を示す。分類器500−1〜500nは弱分類器として機能し、弱分類器をオフライン学習させることでオンライン分類を行う際は強分類器として機能させる。次式中、ht(x)はオフライン学習用サンプルで示されるルール、αtはオンライン入力で示されるルールht(x)の信頼度(confidence)である。オンライン入力は、サービスロボット111の通信及び制御部115が外部の装置(図示せず)から受信する学習用データである。このように、オンライン入力を用いた分類(又は、識別)を、オンライン分類(又は、オンライン識別)と言う。
説明の便宜上、弱分類器の一例として、両脚静止条件c1〜c4のうち両脚幅条件c1を学習する両脚幅分類器を作成するものとする。この場合、静止しているセグメントペアのOBBi,OBBjの座標軸に沿った長さ(幅)を計算し、上記の両脚幅条件c1が成立の場合は例えば弱分類器の出力を「1」とし、成立しない場合は例えば弱分類器の出力を「0」とする。WminとWmaxは予め定義しておく閾値であるため、例えばWmin,WmaxをWmin=0.6,Wmax=1.4に設定しておくことができる。静止特徴強分類器と移動特徴強分類器を別々学習させ、セグメント(脚の特徴)のオンライン分類を行うことで、学習時間を短縮、或いは、分類の性能を向上することができる。
次に、人間の二足歩行を図22と共に説明する。図22は、人間の二足歩行の一例を示す図である。図22では、人間の右側と左側が区別し易いように、左手と左脚を黒塗りで示す。又、LRF4の床からの設置位置(即ち、高さ)Lsを破線で示す。人間の二足歩行を分析することで、図13に示すステップS54においてセグメントペアが静止セグメントであるか、或いは、移動セグメントであるかを判別するようにしても良い。
図22に示すように、人間の二足歩行は、両脚が床に付いているDS(Double Support)期間と片脚しか床に付いていない(SS)Single Support期間の繰り返しであることがわかる。二足歩行に特有なDS期間とSS期間の切り替えパターンを抽出することにより、人間の脚の移動状態を抽出することができる。具体的には、LRF4の床からの高さLsを例えば1cm〜2cmに設定することで、足首周辺を検出してDS期間及びSS期間の切り替えを観測することができる。LRF4の高さLsが高すぎるとSS期間の観測が難しくなるので、この例では高さLsはLRF4を配置可能な1cm〜2cmの範囲に設定されるが、SS期間を観測可能であれば高さLs(>0)は1cmより低くても良い。一定時間内(例えば、2秒)に検出される全セグメントを時刻を表すタイムスタンプ付でメモリ13に保存し、極座標上の角度をインデックス(Index)としてセグメントを関連付けることで、以下に説明する時間及び空間の特徴を計算することができる。
セグメントサイズの変化の有無は、例えば歩行中に脚(又は、靴)と床の角度に応じてセグメントサイズが変化することから検出可能である。又、SS→DS→SS、或いは、DS→SS→DSの切り替えパターンの有無に応じてセグメントペアを分類可能である。例えば、セグメントサイズに変化が無く、DS期間しか存在しない場合には、セグメントペアが静止セグメントであると分類可能である。一方、例えばセグメントサイズに変化が有るか、或いは、二足歩行パターンが観測された場合には、セグメントペアを移動セグメントであると分類可能である。このようにセグメントペアを静止セグメントと移動セグメントに分類してAdaBoost分類器に渡すことができる。
表1は、上記の如き二足歩行の判断に用いるセグメントに関するLRF4の2検出サイクル分のデータを示す。セグメントID(IDentifier)は、各セグメントを識別するための識別子である。
表1の如き時間列で管理されメモリ13に保存されたデータより、一定時間内(例えば、0.5秒)観測されているセグメントを軸脚とし、一定範囲(例えば、1m)内に存在する相隣セグメントの有無を判断することにより、DS期間にあるセグメントペアを静止セグメントとして抽出し、SS期間とDS期間の間で遷移するセグメントペアを移動セグメントとして抽出することができる。
従って、ステップS64における脚の物理制限条件を満たしているか否かの判定は、上記セグメントの速度V、加速度A、速度方向変化、及びSS期間とDS期間の間の遷移の少なくとも1つのパラメータに基づいて行うようにしても良い。
図23は、SS期間とDS期間の間の遷移に基づいてセグメントペアが静止セグメント、或いは、移動セグメントであるかを判断する処理を説明するフローチャートである。
図23において、ステップS71では、時刻Tiにおけるセグメントのリスト(以下、セグメントリストと言う)Siを作成し、NN法に基づいて極座標上の角度をインデックス(Index)としてセグメントを関連付けて新セグメントのセグメントIDを発行する。ステップS72では、時刻TiよりTm秒前のセグメントリストSi-mの履歴から位置変動が一定値Dv以下のセグメントIDリストStを抽出する。ステップS73では、セグメントIDリストStの各セグメントIDに対応するセグメント同士の距離Rcを計算する。ステップS74では、計算した距離Rc以下のセグメントペアをDS期間にある静止セグメントであると判断し、セグメントIDリストStから削除する。ステップS75では、セグメントIDリストStの各セグメントIDに対応するセグメントサイズに変化があるセグメントを軸足候補とし、現在時刻の全セグメントリストと距離Rcを計算する。ステップS76では、距離Rc以下のセグメントペアを移動セグメント(即ち、SS期間からDS期間に遷移している)であると判断し、セグメントリストSiおよびセグメントIDリストStから削除する。
このように、SS期間とDS期間の間の遷移に基づいてセグメントペアが静止セグメント、或いは、移動セグメントであるかを判断する処理は、SS期間の脚同士の遮蔽に影響されず、且つ、服の影響(即ち、依存関係)も少ない。又、一歩行サイクル(DS→SS→DS又はSS→DS→SS)を観測することで、歩幅及び速度を推定することができる。更に、非常に低速で移動して(歩いて)いる人、或いは、非常に高速で移動して(走って)いる人をフィルタして検出対象が除外することができる。
図23に示す処理でセグメントペアが静止セグメント、或いは、移動セグメントであるかを判断する場合、常に脚の連続移動速度を推定することができないため、AdaBoost分類器の移動特徴強分類器の作成方法を修正する必要である。図24は、DS期間とSS期間の切り替えパターンを識別するための条件を説明する図である。
図24では、説明の便宜上、最初のDS期間DS1から片脚がスイングしてSS期間SSを経て、次の期間DS2又はDxへ遷移するものとする。図24において、Dwは脚幅又は両脚間の距離(図24中、遊脚の着地位置と軸脚の横方向の距離)、Lwは歩幅(図24中、遊脚の着地位置と軸脚の縦方向の距離)を示す。SS期間SSから片脚がスイングして次にDS期間DS2へ遷移した場合は、次の歩幅条件c9、脚幅条件c10及び着地位置条件c11が満足されるので、移動セグメントペアが脚であることを特定することができる。
歩幅条件c9:
最初のDS期間DS1と、SS期間からの遷移先の期間とで歩幅Lwの相似度が一定値以上である。
脚幅条件c10:
最初のDS期間DS1と、SS期間からの遷移先の期間とで脚幅Dwの相似度が一定値以上である。
着地位置条件c11:
SS期間における遊脚が遷移先の期間で着地する際に、SS期間と軸脚に対して同じ位置関係(例えば、軸脚が左脚であれば着地する遊脚はその右側に位置する右脚である関係)にある。
一方、SS期間SSから片脚がスイングして次に期間Dxへ遷移した場合は、上記の歩幅条件c9、脚幅条件c10及び着地位置条件c11のうち、着地位置条件c11が満足されることはないので、移動セグメントペアが脚ではないことを特定することができる。これは、移動セグメントペアが脚の場合、例えば軸脚が左脚であれば着地する遊脚はその左側に位置することはないからである。
図25は、作成方法が修正されたAdaBoost分類器を用いた脚抽出処理の一例を説明するフローチャートである。図25中、図20と同一ステップには同一符号を付し、その説明は省略する。
図25において、ステップS253では、DS期間とSS期間の切り替えパターンを検出し、処理はステップS54へ進む。ステップS54の判定結果がYESであると処理はステップS155−1へ進み、判定結果がNOであると処理はステップS155−2Aへ進む。ステップS155−1,S155−2Aは、AdaBoost分類処理を行うAdaBoost分類ステップS155Aを形成する。ステップS155−2Aは、歩幅条件c9を学習する歩幅相似度分類器、脚幅条件c10を学習する脚幅相似度分類器、及び着地位置条件c11を学習する着地位置判別分類器の機能を実現し、これらの分類器を学習させることで移動特徴強分類器の機能を実現する。
このように、本実施例によれば、静止している脚を抽出するために、抽出対象の特徴、即ち、レンジデータのセグメントの特徴の幾何相似度に着目し、相似度条件に基づいた複数の静止特徴弱分類器を作成する。各静止特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各静止特徴弱分類器の重みを用いてセグメントを分類することで、学習した静止特徴弱分類器を静止特徴強分類器として機能させる。
又、移動している脚を抽出するために、例えば人間の二足走行の特性を分析し、抽出対象特徴、即ち、レンジデータのセグメントの特徴の移動情報に着目し、移動情報に基づいた複数の移動特徴弱分類器を作成する。各移動特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各移動特徴弱分類器の重みを用いてセグメントを分類することで、学習した移動特徴弱分類器を移動特徴強分類器として機能させる。
更に、上記の静止特徴強分類器と移動特徴強分類器の出力に基づいてセグメントの移動状態を判定することにより、同時に静止又は移動している脚ペアを判別することができる。セグメントの静止及び移動を判別する際には、背景との差分又はフレーム間差分等を使用することなく、計測フレーム間のセグメントの関連付けで各セグメントの移動状態を判別するので、例えば極座標の状態ベクタを利用したNN法での関連付けを行い、移動特性を取得することができる。又、LRFを足首周辺を検出可能な位置に配置し、二足歩行のDS期間とSS起案の切り替えパターンを着目し、各セグメントの移動状態を判別することもできる。
本実施例によれば、静止している人の脚と移動している人の脚を確実に抽出することができる。このため、検出対象となる人物の周辺に複数の物体等が存在する比較的混雑した空間においても、人のセグメントを正しく検知することができ、静止時と移動時の脚の特徴が異なってもシームレスに、且つ、安定に脚を抽出することができる。
(第3実施例)
上記第1実施例では、LRF4は、測定の開始、走査時間(又は、走査周期)、測定の終了等の指示に応答して、重力方向と平行な垂直面以外の任意平面の一例であるXY平面を走査するが、本発明の第3実施例においては、LRF4はXY平面に対して90°以外の任意の角度傾斜させた任意平面を走査する。
尚、上記第1実施例及び以下に説明する第3実施例において、重力方向と平行な垂直面以外の任意平面を走査するのは、直立している人物の脚は概ね重力方向と平行であるため重力方向と平行な垂直面を走査しても人物の脚を検出することは極めて難しいからである。
図26は、本発明の第3実施例におけるサービスロボット1のベース部3の一例を示す図である。図26中、図1と同一部分には同一符号を付し、その説明は省略する。図26に示す例では、LRF4はXY平面に対して角度θ傾斜させた任意走査面を走査する。この例では、LRF4の走査面はXY平面に対して下向きに傾斜しているが、上向きに傾斜していても良い。又、角度調整機構6により角度θを可変設定(又は、チルト)可能な構成としても良い。
任意平面で走査範囲を走査して基準位置から前記走査範囲内の対象物までの距離を測定可能な距離測定装置としてLRFを用いる場合、LRFは人物の脚を検出するのに適した高さ位置に設けられる。上記角度θが0≦θ<90°の場合、LRFの高さ位置は人物の膝から下腿にかけての部位を検出するのに適した高さ位置に設けられることが望ましく、上記角度θが0<θ<90°の場合、LRFの走査面はXY平面に対して下向きに傾斜していることが望ましい。LRFの高さ位置が人物の膝や下腿を検出するのに適した高さ位置に設けられることが望ましい理由は、LRFから見て同一人物の膝対や下腿対の方が上腿対と比較すると互いを遮蔽する確率が低いからである。
(第4実施例)
上記第1実施例では、LRF4はサービスロボット1に1個設けられているが、LRF4を複数設けても良い。本発明の第4実施例においては、LRF4はサービスロボット1に2個設けられる。
図27は、本発明の第4実施例におけるサービスロボット1のベース部3の一例を示す図である。図27中、図26と同一部分には同一符号を付し、その説明は省略する。図27に示す例では、LRF4がサービスロボット1に2個設けられている。2個のLRF4は、互いに平行な任意平面を走査しても、互いに交差する任意平面を走査しても良い。例えば、図27において上側のLRF4の走査角度を角度調整機構6により調整可能な構成とし、且つ、下側のLRF4は位置が固定されてXY平面を走査する構成としても良い。尚、LRF4が2個の場合、サービスロボット1の基準位置は、各々のLRF4の位置となる。
2個以上のLRFを用いてサービスロボットの基準位置から対象物までの距離を測定する場合、2個以上のLRFによる2以上の平面における測定結果のマッチングを行うことにより測定結果の精度を向上させることができる。例えば、1個のLRFでは遮蔽等により脚が測定しにくい場合であっても、2個以上のLRFの測定結果のマッチングを行うことで、1個のLRFの走査面では少なくとも一部が遮蔽されている脚であっても他のLRFの走査面における測定結果から脚である確率を、周知のマッチング手法により正確に演算することができる。
尚、2個以上のLRFを用いる場合、少なくとも1個のLRFはサービスロボットに設け、他のLRFは壁等に固定的に設けても良い。又、少なくとも1個のLRFを設けたサービスロボットを複数用いても良い。これらの場合、言うまでもなく、少なくとも1個のLRFが設けられた1台のサービスロボットは、壁や他のサービスロボットに設けられたLRFの測定結果を無線通信により図6に示す通信部15等を介して受信すれば、2以上の平面での測定結果のマッチングを行うことができる。これらの場合、複数のLRFで共通に用いるXY座標の原点は、壁等の固定点であっても、基準となる1台のサービスロボットの基準点であっても良い。
又、同じXY平面を走査する1個のLRFが設けられた2台以上のサービスロボットの測定結果のマッチングを行う場合であっても、2台以上のサービスロボットのLRFは対象物に対して異なる位置から走査しているので、同じXY平面上の異なる位置からの測定結果のマッチングを行うことで、測定結果の精度を向上させることができる。
更に、第4実施例を上記第2実施例に適用しても良い。この場合、2個のLRFは床と平行で互いに交差しない走査面、即ち、重力方向と略垂直な平面を走査すれば良いため、角度調整機構6は不要である。2個のLRFの床から高さは、例えば1cm〜2cmの範囲内に設定することで、検出対象となる人物の足首周辺を検出してDS期間及びSS期間の切り替えを観測するようにしても良い。
(変形例)
言うまでもなく、上記各実施例による人物検出結果を、カメラを用いる人物検出方法等の他の人物検出方法による人物検出結果と組み合わせて人物検出の精度を向上することが可能である。この場合、人物検出環境によらず人物検出の精度を向上できる。
上記各実施例では、サービスロボットの基準位置から対象物までの距離をLRFを用いて測定しているが、任意平面で二次元に限定された走査範囲を走査して基準位置から前記走査範囲内の対象物までの距離を測定可能な距離測定装置 (DME:Distance Measuring Equipment)であれば、距離を測定する走査装置又は走査手段はLRF以外の距離測定装置を用いるものであっても良い。
又、人物検出装置の適用はサービスロボットに限定されるものではなく、人物検出処理を要求するコマンドを人物検出装置に出力し、人物検出装置からの人物検出処理の結果の通知が入力される監視制御部(又は、コンピュータ)を備えた監視システム等へも適用可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
重力方向と略垂直な平面で走査範囲を走査して基準位置から前記走査範囲内の対象物までの距離を測定してレンジデータを出力する走査手段と、
前記レンジデータを所定周期でサンプリングしてセグメントを形成し、前記セグメントに基づいて脚の特徴を抽出する抽出手段と、
抽出した特徴の運動特性及び幾何情報に基づいて人物を検出する検出手段を備え、
前記抽出手段は、最短距離近傍法を用いて取得した2つのセグメントペアの移動特性に基づいて、各セグメントペアが静止している静止セグメントを分類する静止特徴強分類器と、各セグメントペアが移動している移動セグメントを分類する移動特徴強分類器を含み、分類されたセグメントの特徴に基づいて前記2つのセグメントペアから脚ペアを抽出する、人物検出装置。
(付記2)
前記抽出手段は、セグメントの特徴の幾何相似度条件に基づいて作成された複数の静止特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各静止特徴弱分類器の重みを用いてセグメントを分類することで学習した静止特徴弱分類器を前記静止特徴強分類器として機能させ、セグメントの特徴の移動情報に基づいて作成された複数の移動特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各移動特徴弱分類器の重みを用いてセグメントを分類することで学習した移動特徴弱分類器を移動特徴強分類器として機能させる、付記1記載の人物検出装置。
(付記3)
前記抽出手段は、前記2つのセグメントペアが脚の物理制限条件を満たしており、且つ、セグメントの移動状態を前記基準位置からの距離Rと角度θの極座標で表し、X
i(R
t,θ
t)で表される状態からX
i+1(R
t+1,θ
t+1)で表される状態に変化した場合に前記走査手段の検出サイクル間の各セグメントの移動量dXが距離Rと角度θの重みを調整するゲイン行列をWで表され
前記移動量dXが一定閾値未満であると前記2つのセグメントは静止セグメントであると判定し、一定閾値以上であると前記2つのセグメントは移動セグメントであると判定する、付記1又は2記載の人物検出装置。
(付記4)
前記抽出手段は、
セグメントiの有向バウンディングボックス(OBB:Oriented Bounding Box)のパラメータとして、OBBの指向性θi、OBBのX軸のサイズDXi、OBBのY軸のサイズDYi、OBBの中心から原点までの距離Ri、及びOBBの中心座標O'を抽出し、
セグメントペアi,jに対して以下の両脚静止条件c1〜c4を満足するか否かを計算により求め、
両脚幅条件c1:
Wmin < DXi/DXj < Wmax, Wmin < DYi/DYj < Wmax
両脚距離条件c2:
Distance(O'i, O'j) < Dmax
OBBの中心から原点までの距離条件c3:
Rmin < Ri/Rj < Rmax
OBBの指向性条件c4:
| |θi| − |θj| | < θmax
前記両脚静止条件c1〜c4を満足する場合は静止脚ペアを抽出する、付記1乃至3のいずれか1項記載の人物検出装置。
(付記5)
前記抽出手段は、
セグメントの有向バウンディングボックス(OBB:Oriented Bounding Box)の作成時に取得した原点座標及び角度θより、計測点Pの座標を
に従って座標変換し、セグメントの指向性及び原点位置が統一された状態でハウスドルフ距離を計算してセグメント間の相似度を評価し、相似度が閾値以上の場合は静止脚ペアを抽出する、付記1乃至3のいずれか1項記載の人物検出装置。
(付記6)
前記抽出手段は、任意の連続する3フレームのセグメントペアに対して以下の両脚移動条件c5〜c8を満足するか否かを計算により求め、
両脚相隣条件c5:
連続する3フレームにおけるセグメントペアの空間距離Dsが全て一定閾値Dmax以下
両脚移動方向条件c6:
連続する3フレームにおけるセグメントペアの平均速度の角度差が一定閾値dθmax 以下
両脚速度差条件c7:
前記走査手段の3検出サイクルでの平均速度の比率が一定閾値V
R以上
両脚垂直距離条件c8:
両脚の速度方向と垂直方向に沿った距離Dvが一定閾値D
vt以下
前記両脚移動条件c5〜c8を満足する場合は移動脚ペアを抽出する、付記4又は5記載の人物検出装置。
(付記7)
前記抽出手段は、両脚が床に付いているDS(Double Support)期間と片脚しか床に付いていない(SS)Single Support期間の切り替えパターンに基づいて脚の移動状態を抽出する、付記4又は5記載の人物検出装置。
(付記8)
前記判断手段は、抽出した前記特徴の運動特性及び幾何情報に基づいて人物を検出する、付記1乃至7のいずれか1項記載の人物検出装置。
(付記9)
前記走査手段は、レーザレンジファインダ(LRF)を有する、付記1乃至8のいずれか1項記載の人物検出装置。
(付記10)
付記1乃至9のいずれか1項記載の人物検出装置と、
人物検出処理を要求するコマンドを前記人物検出装置に出力し、前記人物検出装置からの人物検出処理の結果の通知が入力されるロボット本体を備えた、サービスロボット。
(付記11)
付記1乃至9のいずれか1項記載の人物検出装置と、
人物検出処理を要求するコマンドを前記人物検出装置に出力し、前記人物検出装置からの人物検出処理の結果の通知が入力される監視制御部を備えた、監視システム。
(付記12)
重力方向と略垂直な平面で走査範囲を走査部により走査して基準位置から前記走査範囲内の対象物までの距離を測定してレンジデータを出力する工程と、
前記レンジデータをプロセッサにより所定周期でサンプリングしてセグメントを形成し、前記セグメントに基づいて脚の特徴を前記プロセッサにより抽出する工程と、
抽出した特徴の運動特性及び幾何情報に基づいて前記プロセッサにより人物を検出する工程を含み、
前記抽出する工程は、最短距離近傍法を用いて取得した2つのセグメントペアの移動特性に基づいて、各セグメントペアが静止している静止セグメントを分類する静止特徴強分類器と、各セグメントペアが移動している移動セグメントを分類する移動特徴強分類器を含み、分類されたセグメントの特徴に基づいて前記2つのセグメントペアから脚ペアを抽出する、人物検出方法。
(付記13)
前記抽出する工程は、セグメントの特徴の幾何相似度条件に基づいて作成された複数の静止特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各静止特徴弱分類器の重みを用いてセグメントを分類することで学習した静止特徴弱分類器を前記静止特徴強分類器として機能させ、セグメントの特徴の移動情報に基づいて作成された複数の移動特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各移動特徴弱分類器の重みを用いてセグメントを分類することで学習した移動特徴弱分類器を移動特徴強分類器として機能させる、付記12記載の人物検出方法。
(付記14)
前記抽出する工程は、前記2つのセグメントペアが脚の物理制限条件を満たしており、且つ、セグメントの移動状態を前記基準位置からの距離Rと角度θの極座標で表し、X
i(R
t,θ
t)で表される状態からX
i+1(R
t+1,θ
t+1)で表される状態に変化した場合に前記走査部の検出サイクル間の各セグメントの移動量dXが距離Rと角度θの重みを調整するゲイン行列をWで表され
前記移動量dXが一定閾値未満であると前記2つのセグメントは静止セグメントであると判定し、一定閾値以上であると前記2つのセグメントは移動セグメントであると判定する、付記12又は13記載の人物検出方法。
(付記15)
前記抽出する工程は、両脚が床に付いているDS(Double Support)期間と片脚しか床に付いていない(SS)Single Support期間の切り替えパターンに基づいて脚の移動状態を抽出する、付記12乃至14のいずれか1項記載の人物検出方法。
(付記16)
コンピュータに、
走査部に指示を出力して重力方向と略垂直な平面で走査範囲を走査して基準位置から前記走査範囲内の対象物までの距離を測定してレンジデータを出力させる走査手順と、
前記レンジデータを所定周期でサンプリングしてセグメントを形成し、前記セグメントに基づいて脚の特徴を抽出させる抽出手順と、
抽出した特徴の運動特性及び幾何情報に基づいて人物を検出させる検出手順
を実行させるためのプログラムであって、
前記抽出手順は、最短距離近傍法を用いて取得した2つのセグメントペアの移動特性に基づいて、各セグメントペアが静止している静止セグメントを分類する静止特徴強分類器と、各セグメントペアが移動している移動セグメントを分類する移動特徴強分類器を含み、分類されたセグメントの特徴に基づいて前記2つのセグメントペアから脚ペアを抽出する、プログラム。
(付記17)
前記抽出手順は、セグメントの特徴の幾何相似度条件に基づいて作成された複数の静止特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各静止特徴弱分類器の重みを用いてセグメントを分類することで学習した静止特徴弱分類器を前記静止特徴強分類器として機能させ、セグメントの特徴の移動情報に基づいて作成された複数の移動特徴弱分類器を予め用意した学習サンプルで学習させ、学習した各移動特徴弱分類器の重みを用いてセグメントを分類することで学習した移動特徴弱分類器を移動特徴強分類器として機能させる、付記16記載のプログラム。
(付記18)
前記抽出手順は、前記2つのセグメントペアが脚の物理制限条件を満たしており、且つ、セグメントの移動状態を前記基準位置からの距離Rと角度θの極座標で表し、X
i(R
t,θ
t)で表される状態からX
i+1(R
t+1,θ
t+1)で表される状態に変化した場合に前記走査部の検出サイクル間の各セグメントの移動量dXが距離Rと角度θの重みを調整するゲイン行列をWで表され
前記移動量dXが一定閾値未満であると前記2つのセグメントは静止セグメントであると判定し、一定閾値以上であると前記2つのセグメントは移動セグメントであると判定する、付記16又は17記載のプログラム。
(付記19)
前記抽出手順は、
セグメントiの有向バウンディングボックス(OBB:Oriented Bounding Box)のパラメータとして、OBBの指向性θi、OBBのX軸のサイズDXi、OBBのY軸のサイズDYi、OBBの中心から原点までの距離Ri、及びOBBの中心座標O'を抽出し、
セグメントペアi,jに対して以下の両脚静止条件c1〜c4を満足するか否かを計算により求め、
両脚幅条件c1:
Wmin < DXi/DXj < Wmax, Wmin < DYi/DYj < Wmax
両脚距離条件c2:
Distance(O'i, O'j) < Dmax
OBBの中心から原点までの距離条件c3:
Rmin < Ri/Rj < Rmax
OBBの指向性条件c4:
| |θi| − |θj| | < θmax
前記両脚静止条件c1〜c4を満足する場合は静止脚ペアを抽出する、付記16乃至18のいずれか1項記載のプログラム。
(付記20)
前記抽出手順は、
セグメントの有向バウンディングボックス(OBB:Oriented Bounding Box)の作成時に取得した原点座標及び角度θより、計測点Pの座標を
に従って座標変換し、セグメントの指向性及び原点位置が統一された状態でハウスドルフ距離を計算してセグメント間の相似度を評価し、相似度が閾値以上の場合は静止脚ペアを抽出する、付記16乃至18のいずれか1項記載のプログラム。
(付記21)
前記抽出手順は、任意の連続する3フレームのセグメントペアに対して以下の両脚移動条件c5〜c8を満足するか否かを計算により求め、
両脚相隣条件c5:
連続する3フレームにおけるセグメントペアの空間距離Dsが全て一定閾値Dmax以下
両脚移動方向条件c6:
連続する3フレームにおけるセグメントペアの平均速度の角度差が一定閾値dθmax 以下
両脚速度差条件c7:
前記走査部の3検出サイクルでの平均速度の比率が一定閾値V
R以上
両脚垂直距離条件c8:
両脚の速度方向と垂直方向に沿った距離Dvが一定閾値D
vt以下
前記両脚移動条件c5〜c8を満足する場合は移動脚ペアを抽出する、付記19又は20記載のプログラム。
(付記22)
前記抽出手順は、両脚が床に付いているDS(Double Support)期間と片脚しか床に付いていない(SS)Single Support期間の切り替えパターンに基づいて脚の移動状態を抽出する、付記19又は20記載のプログラム。
(付記23)
付記16乃至22のいずれか1項記載のプログラムが格納された、コンピュータ読み取り可能な記憶媒体。
以上、開示の人物検出装置、人物検出方法及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。