JP2011220904A - 位置検出システム - Google Patents
位置検出システム Download PDFInfo
- Publication number
- JP2011220904A JP2011220904A JP2010091876A JP2010091876A JP2011220904A JP 2011220904 A JP2011220904 A JP 2011220904A JP 2010091876 A JP2010091876 A JP 2010091876A JP 2010091876 A JP2010091876 A JP 2010091876A JP 2011220904 A JP2011220904 A JP 2011220904A
- Authority
- JP
- Japan
- Prior art keywords
- entity
- human
- passing
- person
- history
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 77
- 230000009471 action Effects 0.000 claims abstract description 66
- 238000013500 data storage Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 14
- 230000007613 environmental effect Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 7
- 241000282414 Homo sapiens Species 0.000 description 150
- 238000000034 method Methods 0.000 description 78
- 230000008569 process Effects 0.000 description 68
- 101001081590 Homo sapiens DNA-binding protein inhibitor ID-1 Proteins 0.000 description 57
- 102000049143 human ID1 Human genes 0.000 description 57
- 230000006399 behavior Effects 0.000 description 35
- 241000282412 Homo Species 0.000 description 19
- 230000008859 change Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 13
- 230000008034 disappearance Effects 0.000 description 5
- 239000002245 particle Substances 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Optical Radar Systems And Details Thereof (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
【構成】位置検出システム100は、LRF12およびメモリ22を備え、検出領域(F)内に存在する人間をLRF12によってセンシングすることで位置を検出し、検出された位置データをメモリ22のバッファに蓄積する。また、人間Aおよび人間Bの位置履歴データに基づいて、すれ違い行動が行われていると判断された場合、すれ違いモデル毎にすれ違い軌跡CTと一致する確率Pが算出される。そして、プロセッサ20は、確率Pの値が最も大きいすれ違いモデルCMに従って人間Bの移動方向を決め、第1所定時間後の人間Bの移動距離を求めることで、人間Bの将来位置を算出する。
【効果】すれ違い行動が行われると、そのすれ違い行動と最も似ているすれ違いモデルを選択することで、人間の将来の位置を予測することができる。
【選択図】図1
【効果】すれ違い行動が行われると、そのすれ違い行動と最も似ているすれ違いモデルを選択することで、人間の将来の位置を予測することができる。
【選択図】図1
Description
この発明は、位置検出システムに関し、特にたとえば、人間の行動から将来の位置を予測する、位置検出システムに関する。
非特許文献1のシステムは、ショッピングモール内の人々の位置を複数のLRF(Laser Range Finder)によって検出し、人々の位置のデータを蓄積する。そして、このシステムは、蓄積した人々の位置に基づいて、人々の大局行動を推定したり、ショッピングモール内に存在するロボットの行動を決定したりできる。
Takayuki Kanda, Dylan F. Glas, Masahiro Shiomi, Hiroshi Ishiguro and Norihiro Hagita, "Who will be the customer? : A social robot that anticipates people's behavior from their trajectories" (Tenth International Conference on Ubiquitous Computing (UbiComp 2008), pp. 380 - 389, 2008)
Takayuki Kanda, Dylan F. Glas, Masahiro Shiomi, Hiroshi Ishiguro and Norihiro Hagita, "Who will be the customer? : A social robot that anticipates people's behavior from their trajectories" (Tenth International Conference on Ubiquitous Computing (UbiComp 2008), pp. 380 - 389, 2008)
近年、人々の位置のデータを蓄積することで、人の行動を推定したり、非特許文献1のように人々の大局行動を推定したりするシステムが開発されている。ところが、人々がすれ違う際の行動に注目して、人々の行動や、将来位置を予測するシステムは開発されていない。
それゆえに、この発明の主たる目的は、新規な、位置検出システムを提供することである。
この発明の他の目的は、すれ違い行動に基づいて将来の位置を予測することができる、位置検出システムを提供することである。
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
第1の発明は、空間内に存在する実体を環境センサによってセンシングすることで、空間内における各実体の位置を検出する、位置検出システムであって、検出された各実体の位置データを履歴として蓄積する位置データ蓄積手段、1の実体を含む所定領域内に他の実体が特定時間存在するような、1の実体と他の実体とのすれ違い行動が行われたかを、位置データ蓄積手段によって蓄積した1の実体および他の実体の位置データの履歴に基づいて判断する判断手段、および判断手段によってすれ違い行動が行われたと判断されたとき、1の実体および他の実体の位置データの履歴に基づいて、他の実体における第1所定時間後の位置を予測する第1予測手段をさらに備える、位置検出システムである。
第1の発明では、位置検出システム(100)は、空間内に存在する、人間などの実体をLRF(12)などの環境センサによってセンシングすることで、各実体の座標位置を検出する。位置データ蓄積手段(20,S5)は、たとえば360秒分の位置データの履歴をバッファに蓄積する。たとえば、第1の発明では、1の実体を中心とした所定半径(5m)で定義される所定領域(ホット領域HT)内で、他の実体が特定時間(3秒より長く、10秒より短い時間)存在している状態を、すれ違い行動と言う。そして、判断手段(20,S29,S31)は、1の実体と他の実体との間で、すれ違い行動が行われたかを、1の実体および他の実体の位置データの履歴に基づいて判断する。第1予測手段(20,S51)は、1の実体および他の実体の間ですれ違い行動が行われたとき、それらの実体の位置データの履歴に基づいて、他の実体における第1所定時間後の位置を予測する。
第1の発明によれば、すれ違い行動が行われると、そのすれ違い行動に基づいて、実体の将来の位置を予測することができる。
第2の発明は、入口と出口とを有する空間内に存在する実体を環境センサによってセンシングすることで、空間内における各実体の位置を検出する、位置検出システムであって、検出された各実体の位置データを履歴として蓄積する位置データ蓄積手段、各実体とそれらに関連して付与された識別情報を含むテーブルを記憶する記憶手段、出口を経由しないで空間内で第1実体が消滅したとき、第1実体の識別情報を記憶する第1識別情報記憶手段、入口を経由しないで空間内で第2実体が発生したとき、第2実体の識別情報を記憶する第2識別情報記憶手段、第1実体が消滅した第1時刻と第2実体が発生した第2時刻との時間差を第2所定時間として算出する時間算出手段、第3実体を含む所定領域内に第1実体が特定時間存在するような、第3実体と第1実体とのすれ違い行動が行われたとき、第1実体および第3実体の位置データの履歴に基づいて、第1実体における第2所定時間後の位置を予測する第2予測手段、および第2予測手段によって予測された第1実体の位置と、第2実体が発生した位置との距離が所定距離以下であるとき、テーブルにおいて第2実体の識別情報を第1実体の識別情報に置き換える置換手段をさらに備える、位置検出システムである。
第2の発明では、位置検出システム(100)は、入口と出口とを有する空間内に存在する各実体を環境センサ(12)によってセンシングすることで各実体の位置を検出し、検出された各実体の位置データは位置データ蓄積手段(20,S5)によってバッファに蓄積される。入口と出口とは、明確な位置が決まっておらず、空間と外との境界が出口であり、入り口でもある。各実体には、たとえばそれらを識別するための識別情報(人間ID)が付与される。また、記憶手段(22)はその識別情報を含むテーブルを記憶する。第1識別情報記憶手段(20,S109)は、空間と外との境界以外の空間内で第1実体が消滅したとき、第1実体の識別情報を記憶する。第2識別情報記憶手段(20,S121)は、空間と外との境界以外の空間内で第2実体が発生したとき、第2実体の識別情報を記憶する。たとえば、第1実体が消滅してから、3秒後に第2実体が発生していれば、時間算出手段(20,S139)は第2所定時間(途切時間)を3秒として算出する。たとえば、第2の発明でも、第3実体(人間Bまたは人間C)を中心とした所定半径で定義される所定領域内で、第1実体(人間A)が特定時間存在している状態を、すれ違い行動と言う。そして、第2予測手段(20,S143)は、このようなすれ違い行動が行われたとき、第1実体において、消滅してから第2所定時間後の位置を予測する。また、予測された第1実体の位置と第2実体の発生した位置との距離が所定距離(閾値Tb)以下であれば、第1実体と第2実体とが同一であると考えることができる。そのため、置換手段(20,S161)は、予測された第1実体の位置と第2実体の発生した位置との距離が所定距離以下であれば、識別情報が含まれるテーブルにおいて、第2実体の識別情報を第1実体の識別情報に置き換える。
第2の発明によれば、位置検出システムの内部エラーによって実体の位置の検出が一時的に中断しても、すれ違い行動に基づいて位置を予測することで、識別情報を補完することができる。
第3の発明は、第1の発明または第2の発明に従属し、位置検出システムは、すれ違い行動における他の実体の軌跡を表す、複数の軌跡モデルを記憶しており、第1予測手段または第2予測手段は、すれ違い行動を行う2つの実体の位置データの履歴に基づいて、複数のモデルの中から1つの軌跡モデルを選択する選択手段、および選択手段によって選択された1つの軌跡モデルに基づいて、実体の位置を算出する位置算出手段を含む。
第3の発明では、位置検出システムは、すれ違い行動が行われたときの実体の軌跡を表す、複数の軌跡モデル(すれ違いモデル)を記憶する。また、複数の軌跡モデルは、たとえば隠れマルコフモデル(以下、HMM(Hidden Markov Model)と言う。)の手法に基づいてモデル化されている。選択手段(20,S81)は、たとえば、すれ違い行動を行う2つの実体の位置データの履歴に基づいてすれ違い行動における軌跡を求め、その軌跡と各軌跡モデルとが一致する確率を算出することで、最も確率が高い軌跡モデルを選択する。位置算出手段(20,S87)は、選択された1つの軌跡モデルに基づいてすれ違い行動における移動の方向を決め、移動距離を求めることで、実体の将来の位置を算出する。
第3の発明によれば、HMMの手法などによってすれ違い行動の軌跡をモデル化することで、実体の将来の位置を予測することできる。
第4の発明は、空間内に存在する実体を環境センサ(12)によってセンシングすることで、空間内における各実体の位置を検出する、位置検出システム(100)のプロセッサ(20)を、検出された各実体の位置データを履歴として蓄積する位置データ蓄積手段(S5)、1の実体を含む所定領域内に他の実体が特定時間存在するような、1の実体と他の実体とのすれ違い行動が行われたかを、位置データ蓄積手段によって蓄積した1の実体および他の実体の位置データの履歴に基づいて判断する判断手段(S29,S31)、および判断手段によってすれ違い行動が行われたと判断されたとき、1の実体および他の実体の位置データの履歴に基づいて、他の実体における所定時間後の位置を予測する予測手段(S51)として機能させる、位置検出プログラムである。
第4の発明でも、第1の発明と同様に、すれ違い行動が行われると、そのすれ違い行動に基づいて、実体の将来の位置を予測することができる。
第5の発明は、空間内に存在する実体を環境センサ(12)によってセンシングすることで、空間内における各実体の位置を検出する、位置検出システム(100)の位置検出方法であって、検出された各実体の位置データを履歴として蓄積し(S5)、1の実体を含む所定領域内に他の実体が特定時間存在するような、1の実体と他の実体とのすれ違い行動が行われたかを、蓄積した1の実体および他の実体の位置データの履歴に基づいて判断し(S29,S31)、そしてすれ違い行動が行われたと判断されたとき、1の実体および他の実体の位置データの履歴に基づいて、他の実体における所定時間後の位置を予測する(S51)、位置検出方法である。
第5の発明でも、第1の発明と同様に、すれ違い行動が行われると、そのすれ違い行動に基づいて、実体の将来の位置を予測することができる。
この発明によれば、すれ違い行動が行われると、そのすれ違い行動に基づいて、実体の将来の位置を予測することができる。
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、位置検出システム100は、中央制御装置10およびLRF12(環境センサ)から構成されている。中央制御装置10は、LRF12a,12bを含む、複数のLRF12と接続される。また、LRF12a,12bは人間A,B,Cが行動できる場所(環境)に設置される。そして、中央制御装置10はLRF12a,12bを利用して、人間A,B,Cをセンシングすることで、複数の人間の位置を検出する。たとえば、人間が行動できる場所とは、会社のフロア、博物館、ショッピングモールまたはアトラクション会場などである。
なお、システムの管理者は、このような場所で、LRF12a,12bなどを容易に設置することができる。また、ここでは簡単のため人間を3人しか示していないが、中央制御装置10は1人以上の人間や、複数の自律移動型のロボット(以下、単に「ロボット」と言う。)などを同時に検出することができる。さらに、本実施例では、LRF12によってセンシングされる、人間およびロボットなどをまとめて実体と言うこともある。
図2は、中央制御装置10の電気的な構成を示すブロック図である。図2を参照して、中央制御装置10は、LRF12a−12fおよびプロセッサ20を含む。プロセッサ20は、RTC(Real Time Clock)20aを含んでおり、検出した位置データに対して、RTC20aから得られた時刻データを対応付けて、メモリ22のバッファに蓄積する。
プロセッサ20は、先述したLRF12aおよびLRF12bに加えて、LRF12c,LRF12d,LRF12eおよびLRF12fともそれぞれ接続される。さらに、プロセッサ20は、記憶手段であるメモリ22とも接続される。なお、プロセッサ20は、マイクロコンピュータ或いはCPUとも呼ばれることもある。
LRF12は、レーザーを照射し、物体(実体も含む)に反射して戻ってくるまでの時間から当該物体ための距離を計測するものである。たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば、0.5度)ずつスキャンする。ここで、LRF12としては、HOKUYO社製のレーザーレンジファインダ(型式 UTM-30LX)を用いることができる。このレーザーレンジファインダを用いた場合には、距離8mを±6cm程度の誤差で計測可能である。
メモリ22は、図示は省略をするが、HDD,SSD(Solid State Drive),ROMおよびRAMを含む。ROM,SSDおよびHDDには、中央制御装置10の動作を制御するための制御プログラムが予め記憶される。たとえば、人間の検出に必要なプログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。
次にLRF12について詳細に説明する。図3を参照して、LRF12の計測範囲は、半径R(R≒8m)の半円形状(扇形)で示される。つまり、LRF12は、その正面方向を中心とした場合に、左右90°の方向を所定の距離(R)以内で計測可能である。
また、使用しているレーザーは、日本工業規格 JIS C 6802「レーザー製品の安全基準」におけるクラス1レーザーであり、人の眼に対して影響を及ぼさない安全なレベルである。なお、LRF12のサンプリングレートを37Hzとした。これは、移動したり、停止したりする実体の位置を連続して検出するためである。
さらに、先述したように、LRF12は、様々な場所に配置される。具体的には、LRF12a−12fの各々は、計測領域が重なるように配置され、図示は省略するが、床面から約110cmの高さに固定される。この高さは、人間の胴体と腕(両腕)とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、遠隔操作装置14を設ける場所(地域ないし国)や人間の年齢ないし年代(たとえば、子供,大人)に応じて、LRF12を固定する高さを適宜変更するようにしてよい。なお、本実施例では、設定されるLRF12は6台としたが、2台以上であれば、任意の台数のLRF12を設置してもよい。
このような構成の中央制御装置10では、プロセッサ20がLRF12からの出力(距離データ)に基づいて、パーティクルフィルタを用いて、人間の現在位置の変化を推定する。たとえば、LRF12によってスキャンされると、人間が存在しない可視領域、人間が存在する陰領域および人間のエッジが検出される。また、実空間に対応する仮想空間に対してパーティクルを均等にばら撒き、LRF12毎に尤度を求める。さらに、LRF12毎の尤度を統合することで、各パーティクルが更新される。そして、更新された各パーティクルによって人間の現在位置の変化が推定される。なお、尤度は、可視領域では一定値とし、陰領域では一定値とエッジの尤度との和となる。
このようにして推定された現在位置の変化に基づいて、人間の位置を求め、その位置を示すデータ(位置データ)がバッファに蓄積される。また、本実施例では、バッファに蓄積された全ての位置データをまとめて「位置履歴データ」と言う。
なお、パーティクルフィルタを利用した人物追跡については、特開2008−6105号公報に詳細が開示されている。
図4は、LRF12a−12fが設置された或る環境の地図を示す図解図である。図4を参照して、地図が表す場所は或るショッピングモールである。LRF12a,12c,12dの3台は地図の上側の位置に対応して設置されており、LRF12b,12e,12fの3台は地図の下側の位置に対応して設定されている。そして、2台以上のLRF12の計測領域が重なる領域は、検出領域Fとして示され、図4では斜線の領域である。なお、検出領域Fにおける位置(座標)は、図4における左下を原点とする平面座標系で示される。
また、図4では、検出領域F(空間)内で検出された人間A,B,Cの移動軌跡Ma,Mb,Mcを示す。つまり、人間Aの位置データの履歴は移動軌跡Maで示され、人間Bの位置データの履歴は移動軌跡Mbで示され、人間Cの位置データの履歴は移動軌跡Mcで示される。なお、検出領域Fでは、明確に入口と出口とは決められていない。そのため、検出領域Fと外の領域との境界が入口であり、出口でもある。
図5は位置履歴データの構成を示す図解図である。図5を参照して、各位置データは、位置を検出した時刻(T)および検出領域Fの平面座標を示す数値(x,y)から構成される。そして、各位置履歴データは、人間毎に分けて蓄積される。たとえば、メモリ22のバッファには、人間Aの位置履歴データ、人間Bの位置履歴データおよび人間Cの位置履歴データが蓄積される。
なお、位置データは、一定時間(たとえば、360秒)が経つと古いデータから削除(上書き)される。つまり、位置履歴データがメモリ22の容量を圧迫することは無い。
図6はメモリ22に記憶されている、IDテーブルの構成を示す図解図である。図6を参照して、IDテーブルは、検出された人間に付与されるID(以下、人間IDと言う。)および検出領域Fの平面座標を示す数値(Ex,Ey)から構成される。また、平面座標の各数値は、各位置履歴データの最新の座標に、随時更新される。たとえば、IDテーブルにおいて人間IDが「00」の座標(Ex1,Ey1)は、位置履歴データにおける、人間A(人間ID:00)の最新の座標(x5,y5)に更新される。なお、上記の人間IDは「識別情報」と呼ばれることもある。
図7は、ホット領域HTにおける、人間Aおよび人間Bのすれ違いを示す図解図である。また、このホット領域HTとは、人間同士がすれ違う際に移動方向が変化する領域を意味し、半径5mの広さを持つ。図7を参照して、この図のホット領域HTは人間Aの位置を中心HOとして含む。また、すれ違い軌跡CTは人間Bと対応しており、左中央を始点として人間Aに対する人間Bの相対的な位置の変化を示す。このすれ違い軌跡CTは、図4における人間Aと人間Bとのすれ違い行動が行われている間に蓄積された、2人の位置履歴データに基づいて描画される。
そして、本実施例では、このホット領域HTにおいて、すれ違い軌跡CTを描画するための位置履歴データの量から「すれ違い時間(特定時間)」を求め、そのすれ違い時間に基づいて、すれ違い行動が行われたか否かを判断する。なお、本実施例では、ホット領域HTにおいて、すれ違い時間が3秒より長く、10秒未満であれば、すれ違い行動が行われたと判断する。
たとえば、人間Aと人間Bとが一緒に歩いている場合には、人間Aと人間Bとの位置関係が大きく変化することは無いため、すれ違い時間は長くなり、すれ違い行動が行われたと判断されない。また、人間Bが人間Aのホット領域HTに偶然入った場合には、すれ違い時間はかなり短くなり、すれ違い行動が行われたとは判断されない。
なお、人間Aだけが移動しており、人間Bが停止していても、人間Bの位置は変化するため、すれ違い軌跡CTは描画される。
図8は、人間Aと人間Bとのすれ違い行動が行われている間の距離および移動速度の変化を示すグラフである。図8を参照して、左縦軸は人間Aと人間Bとの距離(mm)を示し、右縦軸は人間Aおよび人間Bの移動速度(mm/s)を示し、横軸はすれ違い行動が行われている間の時間(秒:s)を示す。また、グラフ中の実線は人間Aと人間Bとの距離の変化を示し、点線は人間Aの移動速度の変化を示し、一点鎖線は人間Bの移動速度の変化を示す。そして、各線の変化に着目すると、人間Aと人間Bとがすれ違うときには、2人の距離は大きく変化するが、各人間の移動速度はほとんど変化しないことが分かる。つまり、すれ違い行動が行われている間は、人間Aおよび人間Bの移動速度はほとんど変化しないため、すれ違い行動における移動方向を特定することで、すれ違っている人間Bの将来位置を予測できることが分かる。
そこで、本実施例では、多数のすれ違い軌跡CTに基づいて、典型的なすれ違い軌跡を表す、すれ違いモデルを構築する。そして、すれ違い行動が行われていると判断されたときに、そのときのすれ違い軌跡CTに最も似ている(一致する)すれ違いモデルを選択することで、すれ違いにおける将来位置を予測する。
まず初めに、すれ違いモデルの構築について説明する。図9(A),(B)を参照して、すれ違いモデルを構築するためのすれ違い軌跡CTは、ホット領域HTにおいて、始点が緑色(図では薄い灰色)で示され、終点が赤色(図では濃い灰色)で示される。また、人間は様々な方向ですれ違うため、図9(A)では、ホット領域HTにおける各すれ違い軌跡CTの始点および終点は全方向(360度)に散らばる。そこで、各すれ違い軌跡CTの始点がホット領域HTの右中央となるように、各すれ違い軌跡CTを回転させる正規化を行う。
図9(B)を参照して、正規化された複数のすれ違い軌跡CTの始点は右中央に集中するが、終点は様々な方向に散らばっている。これにより、各すれ違い軌跡CTは、一定の角度毎に分類可能なことが分かる。
本実施例では、各すれ違い軌跡CTをk-means法によってクラスタリング(結合)することで、各すれ違い軌跡を分類する。k-means法によって各すれ違い軌跡CTをクラスタリングするためには、まず、すれ違い軌跡CT毎に、他のすれ違い軌跡CTとの距離TDを計測する必要がある。そのため、一方のすれ違い軌跡CTをt1、他方のすれ違い軌跡CTをt2、各すれ違い軌跡CTを構成する点をp、すれ違い軌跡CTの点pの数をn、点同士の距離をPDとしたとき、数1に従う式によって距離TDが算出される。なお、各すれ違い軌跡CTは500ms毎に分割されるため、500ms毎の点pで距離が算出される。そして、分割に基づく点の数nは、全すれ違い軌跡CTにおいて、同じになるように設定される。
また、k-means法における「k」は「72」とする。これは、ホット領域HTにおいて5度毎にグループを作成すると、72グループ(=360÷5)になるからである。そして、各グループにおける平均に最も近いすれ違い軌跡CTを、k-means法の初期重心とし、最終的な重心をグループ毎に算出する。
具体的には、各グループの重心である、平均軌跡ATと各すれ違い軌跡CTとの距離を数1に従う式に基づいて求め、算出された距離に基づいて1つのグループに含まれる歩行軌跡を分類する。このとき、或るグループに含まれるすれ違い軌跡CTが他のグループに分類された場合には、そのグループの新しい重心、つまり平均軌跡ATを算出する。そして、k-means法では、他のグループにすれ違い軌跡CTが分類されなくなるまで、新しい重心を算出し続ける。また、平均軌跡ATは数2に従う式で示される。
さらに、各グループに含まれるすれ違い軌跡CTの数をMとしたとき、グループ内のすれ違い軌跡CTを構成する点pにおける、平均の点Apiは、数3に従う式に基づいて算出される。なお、平均の点Apiは、各すれ違い軌跡CTにおける、500ms毎の点piが平均されたものである。
図10(A)−図10(D)は、或るグループにおける平均軌跡AT1−平均軌跡AT4を示す図解図である。図10(A)を参照して、軌跡グループG1をクラスタリングすることで、短い距離でホット領域HTの外に向かう平均軌跡AT1が算出される。また、図10(B)を参照して、軌跡グループG2をクラスタリングすることで、始点から右方向(図では上方向)に進む平均軌跡AT2が算出される。さらに、図10(C)を参照して、軌跡グループG3をクラスタリングすることで、始点から左方向(図では下方向)に進む平均軌跡AT3が算出される。そして、図10(D)を参照して、軌跡グループG4をクラスタリングすることで、始点から反対方向(図では左方向)に進む平均軌跡AT4が算出される。
このようにして、クラスタリングされた各平均軌跡ATは、「left to right」のHMMの手法に従い、すれ違いモデルとして構築(モデル化)される。また、構築されたすれ違いモデルのうち、モデルを構築するためのすれ違い軌跡CTの数が10個未満のモデルは、典型的なすれ違い軌跡を表しているとは言えないため、削除する。そして、削除されずに残ったすれ違いモデルに対応する、64個の典型的なすれ違いを図11に示す。
なお、HMMの手法に従ってモデル化することで、500ms毎の位置の変化を確率的に表現できるようになる。また、各すれ違いモデルには、それぞれを識別するための識別番号が割り振られる。
次に、すれ違いモデルを特定し、将来位置の予測について説明する。たとえば、人間Aと人間Bとがすれ違い行動を行ったと判断されると、ホット領域HTにけるすれ違い軌跡CTと各すれ違いモデルとが一致する確率Pが、数4に従う式で算出される。
数4において、関数Xは二変量正規分布関数を表し、数5に従う式で示される。また、初期状態確率πはHMMにおける初期状態の確率であり、すれ違い軌跡CTの点pが1番目(i=1)である場合に「1」となり、他の点では「0」となる。なお、上付き添え字「T」は、転置行列であることを示す数学記号であることに留意されたい。
さらに、数5における、行列μは数6に従う式で示され、分散共分散行列と呼ばれる正定値対称行列Σは数7に従う式で示される。そして、これらをまとめて、関数Ν(μ,Σ)として表すことができる。
なお、変数aおよび変数bはすれ違い軌跡CTおよびすれ違いモデルを示し、「σ」は下付き添え字(a,b)の標準偏差を示し、「σ2」は下付き添え字の分散を示す。また、本実施例では、「σab」を「0」する。さらに、確率Pは、HMMにおける「Forward-Backward」のアルゴリズムに従って算出される。
このようにして、各すれ違いモデルに対する確率Pが算出されると、確率Pの値が最も大きいすれ違いモデルが選択される。そして、選択されたすれ違いモデルを利用することで、人間の移動方向を特定できるため、第1所定時間(たとえば、4秒)後の将来位置を算出することができる。
図12を参照して、中心HOが人間Aに対応し、すれ違い軌跡CTに人間Bが対応し、現在位置NPが人間Bの現在の位置を示す。また、全てのすれ違い軌跡CTの平均移動速度をSa、検出領域F内に存在する全ての人間(人間A−人間C)の平均移動速度をShとしたとき、第1所定時間後の人間Bの移動距離は、数8の式に従って算出される。
そして、選択されたすれ違いモデルCMが示す移動方向および現在位置NPに対する移動距離に基づいて、将来位置FPを算出することができる。このように、本実施例では、HMMの手法によってすれ違いモデルを構築することで、人間の将来位置を予測できる。
なお、ホット領域HTの中心HOは、常に同じ人間を示すものではなく、人間Bおよび人間Cも中心HOとなりえる。たとえば、人間Aを中心HOとして人間Bの将来位置が予測できる場合には、人間Bを中心HOとして人間Aの将来位置を予測することも可能である。
また、将来位置を予測することで、人間IDを補完することができる。たとえば、図13(A)を参照して、中央制御装置10の内部エラーが原因で、時刻Tに人間ID「00」の人間Aの追跡が中断すると、人間Aの位置履歴データ上では、検出領域Fの内部で人間Aが検出領域Fの出口を経由せずに消滅したことになる。しかし、実際には人間Aが消滅することは無いため、たとえば3秒後には人間Aの追跡は再開される。つまり、人間Aが検出領域Fの入り口を経由せずに発生したことになる。
ところが、図13(B)に示すように、位置検出システム100は、人間Aを、検出領域F内で新たに出現(発生)した人間として判断し、人間Aに対して新しい人間ID「07」を付与してしまう。つまり、人間A(第2実体)には、別の人間IDが付与される。
そこで、人間IDが「00」の人間Aと、その人間Aが消滅する直前にすれ違い行動を行った人間B(第3実体)とのすれ違い行動に基づいて、人間Aの将来位置を予測することで人間Aの人間IDを補完する。
図13(C)を参照して、人間IDが「00」の人間A(第1実体)が消滅してから発生するまでの時間が3秒であるため、ここでは、人間Aが消滅した位置(消滅位置)から3秒後の位置を予測する。そして、図13(D)に示すように、予測された位置と、人間IDが「07」の人間A(第2実体)が発生した位置(発生位置)とが、所定距離(たとえば、1m)以内であれば、位置検出システム100は、人間Aの人間IDを「00」に上書きする。つまり、IDテーブルにおいて、人間IDが「07」と記録されている欄において、「07」が「00」に置き換えられる。
このように、位置検出システムの内部エラーによって実体の位置の検出が一時的に中断しても、すれ違い行動に基づいて位置を予測することで、人間IDを補完することができる。
なお、本実施例では、消滅する直前にすれ違った人間を人間Bとしたが、人間Cであってもよいし、図示しない他の人間であってもよい。
図14は、図2に示すメモリ22のメモリマップ300の一例を示す図解図である。図14に示すように、メモリ22はプログラム記憶領域302およびデータ記憶領域304を含む。プログラム記憶領域302には、中央制御装置10を動作させるためのプログラムとして、位置検出プログラム310、予測制御プログラム312、ID補完プログラム314およびすれ違い行動予測プログラム316などが記憶される。
位置検出プログラム310は、検出領域F内で検出された人間の位置データを、後述する位置履歴バッファ330に蓄積するためのプログラムである。予測制御プログラム312は、すれ違い行動を行った人間を判別するためのプログラムである。ID補完プログラム314は、検出領域F内で人間が消滅した時などに、人間IDを補完するためのプログラムである。すれ違い行動予測プログラム316は、予測制御プログラム312およびID補完プログラム314のサブルーチンであり、すれ違い行動に基づいて将来位置を予測するためのプログラムである。
なお、図示は省略するが、中央制御装置10を動作させるためのプログラムとしては、LRF12の電源や動作状態を制御するためのプログラムなどを含む。
また、データ記憶領域304には、位置履歴バッファ330、選択結果バッファ332、確率バッファ334、予測結果バッファ336およびIDバッファ338などが設けられる。また、データ記憶領域304には、すれ違いモデルデータ340、平均移動速度データ342およびIDテーブルデータ344が記憶される。
位置履歴バッファ330は、図5に示す位置履歴データが蓄積されるバッファである。選択結果バッファ332は、予測制御プログラム312が実行されているときに、将来位置が予測される人間の人間IDを記憶するバッファである。確率バッファ334は、数4に従う式によって算出された確率Pが、すれ違いモデル毎に記録されるバッファである。予測結果バッファ336は、すれ違い行動予測プログラム316によって予測された将来位置が記憶されるバッファである。IDバッファ338は、ID補完プログラム314が実行されたときに、たとえば人間Aとすれ違った人間の人間IDを記憶するためのバッファである。
すれ違いモデルデータ340は、複数のすれ違い軌跡CTから構築された、すれ違いモデルを含むデータである。平均移動速度データ342は、先述した平均移動速度Saを示すデータである。IDテーブルデータ344は、図6に示すIDテーブルのデータである。
なお、図示は省略するが、データ記憶領域304には、LRF12が出力する生データが記憶されるバッファや、将来位置を予測するために行う計算の結果が記憶されるバッファなどが設けられると共に、中央制御装置10の動作に必要な他のカウンタやフラグなども設けられる。
以下、中央制御装置10によって実行される本願発明のフロー図について説明する。プロセッサ20は、「Linux(登録商標)」または「Windows(登録商標)」などのOSの制御下で、図15に示す位置検出処理、図16および図17に示す予測制御処理、図18に示すすれ違い行動予測処理、図19、図20および図21に示すID補完処理などを含む複数のタスクを並列的に実行する。
図15は位置検出処理を示すフロー図である。たとえば、検出領域F内で人間が検出されると、位置検出処理が実行される。そして、プロセッサ20は、ステップS1では現在時刻を記録する。つまり、RTC20aから時刻データを取得する。続いて、ステップS3では、各人間の位置を検出する。つまり、検出領域F内に存在する、全ての人間の位置を検出する。
続いて、ステップS5では、検出された位置に現在時刻を対応付けてバッファに蓄積し、ステップS1に戻る。つまり、ステップS5では、ステップS1で取得された時刻データと検出された位置とを対応付けて、位置履歴バッファ330に蓄積する。また、位置データを記録する際には、検出した人間の人間IDに基づいて記録する。たとえば、人間Aの位置を検出した場合には、人間Aの人間IDに対応する位置履歴データに、新しく検出した位置データが蓄積される。また、ステップS5の処理を実行するプロセッサ20は、位置データ蓄積手段として機能する。
なお、検出領域F内で新しい人間が検出された際には、新たな人間IDが付与され、新しい位置履歴データが作成される。
図16は予測制御処理を示すフロー図である。たとえば、中央制御装置10の電源がオンにされると、プロセッサ20は、ステップS11で人間を検出しているか否かを判断する。つまり、位置履歴データに新しい位置データが追加されているか否かを判断する。ステップS11で“NO”であれば、つまり人間が検出されていなければ、予測制御処理を終了する。
また、ステップS11で“YES”であれば、つまり人間が検出されていれば、ステップS13で人間IDの最大値を変数Lに設定する。たとえば、検出領域F内に3人の人間が存在していれば、人間IDの最大値は2となるため、変数Lには「2」が設定される。続いて、ステップS15では、変数Ixを初期化する。この変数Ixは、人間IDを指定するための変数である。そのため、変数Ixが初期化されると「0」が設定される。なお、以下の説明では、人間IDが「Ix」の人間は「人間Ix」と記述する。たとえば、人間IDが「00」の人間は「人間0」と記述される。これは、図面でも同じである。
続いて、ステップS17では、変数Ixが「L+1」と一致するか否かを判断する。つまり、人間IDを示す変数Ixが人間IDの最大値よりも大きい値と一致するか否かを判断する。以下、ステップS17と同様の判断ステップについては、詳細な説明を省略する。
ステップS17で“NO”であれば、つまり変数Ixが人間IDの最大値よりも大きい値と一致しなければ、ステップS19で人間Ixの位置データをsn秒分取得する。たとえば、定数snが10であれば、現時刻から10秒前までの位置データを、人間Ixの位置履歴データから取得する。続いて、ステップS21では、変数Ixをインクリメントし、ステップS17に戻る。つまり、次の人間IDを指定するために、変数Ixはインクリメントされる。
ステップS17で“YES”であれば、つまり全員のsn秒分の位置データが取得できれば、ステップS23で変数Ixを初期化し、ステップS25で変数Iyを「Ix+1」に設定する。つまり、ステップS27以降の処理で、各人間IDを指定するために、変数Ixは再度「0」に設定される。また、変数Iyも、変数Ixと同様に、人間IDを指定するための変数である。そして、ステップS27以降の処理で、人間毎にすれ違い行動が行われたか否かを判断するために、変数Iyには変数Ixよりも1つ大きい値が設定される。
なお、変数Ixと同様、人間IDが「Iy」の人間は「人間Iy」と記述する。また、変数Ixが「0」であれば、変数Iyは「1(=0+1)」となる。
続いて、図17に示す、ステップS27では、変数Ixが「L+1」と一致するか否かを判断する。ステップS27で“YES”であれば、つまりステップS29−S43の処理によって各人間に対してすれ違い行動が行われたかを判断し終えていれば、ステップS45に進む。一方、ステップS27で“NO”であれば、つまり各人間に対してすれ違い行動が行われたかの判断が終了していなければ、ステップS29でsn秒間の人間Ixと人間Iyとの距離の変化を算出する。たとえば、人間0(人間A)および人間1(人間B)であれば、図8に示す距離の変化グラフのように、sn秒間の距離の変化を算出する。
続いて、ステップS31では、すれ違っているか否かを判断する。つまり、ステップS29で算出されたsn秒間の距離の変化に基づいて、すれ違い行動が行われているか否かを判断する。具体的には、算出されたsn秒間の距離の変化において、2人の距離が5m以下のまま、3秒より長く10秒未満継続しているか否かを判断する。ステップS31で“NO”であれば、つまりすれ違い行動が行われていなければ、ステップS37に進む。一方、ステップS31で“YES”であれば、つまりすれ違い行動が行われていれば、ステップS33に進む。なお、ステップS29,S31の処理を実行するプロセッサ20は判断手段として機能する。
ステップS33では、第1距離配列[Ix][Iy]に最短距離を記録する。たとえば、図8に示す距離の変化が算出されていれば、第1距離配列[0][1]には、谷の底の値である「900mm」が最短距離として記録される。続いて、ステップS35では時刻配列[Ix][Iy]にすれ違い時刻を記録する。つまり、ステップS35では、時刻配列[Ix][Iy]には、すれ違い行動を行う2人の距離が最も短くなった時、つまり最短距離における時刻が記録される。たとえば、時刻配列[0][1]には、人間Aと人間Bとの距離が「900mm」となったときの時刻が記録される。なお、予測制御処理が終了すると、第1距離配列および時刻配列は初期化される。
続いて、ステップS37では、変数Iyをインクリメントする。つまり、ホット領域HT内を移動する人間において、次の人間IDを指定するために、変数Iyがインクリメントされる。続いて、ステップS39では、変数Iyが「L+1」と一致するか否かを判断する。つまり、人間IDを示す変数Iyが人間IDの最大値よりも大きい値と一致するか否かを判断する。ステップS39で“NO”であれば、つまり人間Ixと他の人間とのすれ違い行動が全て判断されていなければ、ステップS29に戻る。一方、ステップS39で“YES”であれば、つまり人間Ixと他の人間とのすれ違い行動が全て判断されていれば、ステップS41に進む。
続いて、ステップS41で変数Ixをインクリメントし、ステップS43で変数Iyに「Ix+1」を設定して、ステップS27に戻る。つまり、ホット領域HTの中心HOとなる人間の人間IDを変更するために変数Ixがインクリメントされる。また、変数Iyは、ステップS25の処理と同様に、人間毎にすれ違い行動が行われたか否かを判断するために、変数Ixよりも1つ大きい値が設定される。たとえば、変数Ixが「1」に設定されていれば、変数Iyは「2」に設定される。
また、各人間に対してすれ違い行動が行われたかを判断し終えていれば、ステップS45で変数Ixを初期化する。つまり、ステップS47以降の処理で、各人間のすれ違い行動を予測するために、変数Ixは「0」に設定される。続いて、ステップS47では、人間Ixとの距離が最も短く、かつ閾値Ta以下の人間Iyを選択する。たとえば、変数Ixが「0」であれば、人間0(人間A)との距離が最も短い人間Iyを、第1距離配列[0][0]…第1距離配列[0][Iy]の中から選択する。また、選択された人間Iyの人間IDは選択結果バッファ332に記憶される。なお、閾値Taは、たとえば1000mm(=1m)である。
続いて、ステップS49では、ステップS47で、条件を満たす人間Iyを選択できたか否かを判断する。つまり、選択結果バッファ332に人間IDが記録されているか否かを判断する。ステップS49で“NO”であれば、つまりステップS47で条件を満たす人間Iyが選択されていなければ、ステップS55に進む。一方、ステップS49で“YES”であれば、つまりステップS47で条件を満たす人間Iyが選択されており、選択結果バッファ332に人間IDが記録されていれば、ステップS51ですれ違い行動予測処理を実行する。なお、このすれ違い行動予測処理については、図18に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。また、ステップS51の処理を実行するプロセッサ20は、第1予測手段として機能する。
続いて、ステップS53では、選択された人間Iyに対応する距離を閾値Taより大きい値に設定する。たとえば、変数Ixが「0」、変数Iyが「1」であれば、人間1に対応する距離を閾値Taより大きい値に設定する。具体的には、第1距離配列[0][1]に閾値Taより大きい値(たとえば、2000)が設定される。なお、本実施例では、変数Iyが「Ix+1」と設定されていることから、変数Lが2である場合、第1距離配列[1][1]および第1距離配列[2][1]が利用されることは無いが、それらの配列にも閾値Taより大きい値が設定される。
続いて、ステップS55では、変数Ixをインクリメントする。つまり、他の人間のすれ違い行動を予測するために、変数Ixがインクリメントされる。続いて、ステップS57では、変数Ixが「L+1」と一致するか否かを判断する。ステップS57で“NO”であれば、つまり全ての人間の将来位置を予測できるか判断していなければ、ステップS47に戻る。なお、ステップS47に戻る場合に、選択結果バッファ332は初期化される。一方、ステップS57で“YES”であれば、つまり全ての人間の将来位置を予測できるか判断し終えていれば、予測制御処理を終了する。
なお、予測制御処理の処理時間は、およそ33msであるため、33ms毎に繰り返し実行されてもよい。
図18には、すれ違い行動予測プログラム316の処理を示すフロー図が示される。たとえば、ステップS51の処理が実行されると、プロセッサ20は、変数hnを初期化する。この変数hnは各すれ違いモデルに割り振られた識別番号を指定するための変数である。そのため、ステップS51では、最初の1番目のすれ違いモデルを指定する値(たとえば、「1」)に設定される。なお、以下の説明では、識別番号が「hn」のすれ違いモデルに対応する確率は、「確率Phn」と記述する。これは、図面でも同じである。
続いて、ステップS73では、人間Ixと選択された人間Iyとのすれ違い軌跡CTおよびhn番目のすれ違いモデルに基づいて、確率Phnを算出する。たとえば、変数hnが「1」である場合に、1番目のすれ違いモデルと、図12に示す人間A(人間0)および人間B(人間1)の位置データに基づくすれ違い軌跡CTとが一致する確率Phnは、数4に示す式に従って算出される。なお、算出された確率Phnは、対応するすれ違いモデルの識別番号と対応付けられて、確率バッファ334に記憶される。
続いて、ステップS75では、変数hnをインクリメントする。つまり、次のすれ違いモデルと、人間Ixと選択された人間Iyとのすれ違い軌跡CTとの確率Phnを算出するために、変数hnはインクリメントされる。続いて、ステップS77では、変数hnが最大値を超えたか否かを判断する。たとえば、すれ違いモデルの総数は64個であるため、変数hnがその総数を超えたか否かを判断する。ステップS77で“NO”であれば、つまり全てのすれ違いモデルに対応する確率Phnが算出されていなければ、ステップS73に戻る。一方、ステップS77で“YES”であれば、つまり全てのすれ違いモデルに対応する確率Phnが算出されていれば、ステップS79に進む。なお、すれ違いモデルの総数は、適用される環境によって変化するため、他の実施例では総数が64個でなくてもよい。
続いて、ステップS79では、算出された確率Phnの中から最も大きい確率Phnを特定する。つまり、確率バッファ334に記憶されている、全ての確率Phnの中から、最も値が大きい確率Phnを特定する。続いて、ステップS81では、最も大きい確率Phnに対応するすれ違いモデルを選択する。たとえば、確率P30の値が最も大きければ、識別番号が30のすれ違いモデルが選択される。なお、ステップS81の処理を実行するプロセッサ20は選択手段として機能する。
続いて、ステップS83では、平均移動速度Saを読み出す。つまり、平均移動速度Saが、平均移動速度データ342に基づいて読み出される。続いて、各人間の平均移動速度Shを算出する。たとえば、検出領域F内に人間A,人間B,人間Cが存在していれば、それらの人間の平均移動速度Shが算出される。
続いて、ステップS87では、選択されたすれ違いモデル、平均移動速度Saおよび平均移動速度Shに基づいて、人間Iyの将来位置を算出する。そして、ステップS87の処理が終了すれば、すれ違い行動予測処理を終了して、予測制御処理に戻る。たとえば、ステップS87では、まず数8に示す式に従って、所定時間後の人間Iyの移動距離を算出する。さらに、ステップS87では、図12にあるように、選択されたすれ違いモデルCMに基づいて、第1所定時間(または第2所定時間)後の人間Iyの将来位置FPを算出する。そして、このようにして算出された人間Iyの将来位置は、予測結果バッファ336に記憶される。なお、ステップS87の処理を実行するプロセッサ20は位置算出手段として機能する。
図19にはID補完処理の一部を示すフロー図が示される。また、ID補完処理の説明では、図15−図18で既に説明したステップについては、詳細な説明を省略する。
たとえば、ID補完処理を実行する命令が発行されると、プロセッサ20はステップS101で停止命令か否かを判断する。たとえば、中央制御措置10に対してID補完処理を終了させる操作が行われたか否かを判断する。ステップS101で“YES”であれば、停止命令が発行されれば、ID補完処理は終了する。一方、ステップS101で“NO”であれば、つまり停止命令が発行されていなければ、ステップS103で人間IDの最大値を変数Lに設定する。続いて、ステップS105では、変数Ix、変数aを初期化する。つまり、ステップS105では、変数Ixは「0」に設定される。また、変数aは、後述する消滅配列H1の配列を指定するための変数であるため、同じく「0」が設定される。
続いて、ステップS107では、人間Ixが消滅したか否かを判断する。たとえば、ステップS107では、図13に示すように、人間Aが出口(検出領域Fと外の領域との境界)を経由せずに、検出領域F内で人間Ixが消滅したか否かを判断する。また、具体的には、境界の座標を事前に決めておき、各位置履歴データにおいて、最新の位置データが追跡されなくなり、かつ最後の位置データがその境界の座標を示していないか否かを判断する。ステップS107で“YES”であれば、つまり人間Ixが消滅していれば、ステップS109で変数Ixを消滅配列H1[a]に記憶する。つまり、検出領域F内で消滅した人間Ixの人間IDを消滅配列H1[a]に記憶する。たとえば、変数aが「1」であり、人間Aが検出領域F内で消滅していれば、消滅配列H1[1]には、人間ID「0」が記憶される。
なお、以下の説明では、消滅配列H1[a]に記憶された人間IDに対応する人間は「人間H1[a]」と記述する。たとえば、消滅配列H1[1]に記憶される人間IDが「0」であれば、「人間H1[1]」は人間IDが「0」の人間Aを示す。
続いて、ステップS111では、変数Ixおよび変数aをインクリメントする。つまり、次の人間IDを指定するために変数Ixがインクリメントされ、消滅配列H1における次の配列を指定するために変数aがインクリメントされる。
また、ステップS107で“NO”であれば、つまり人間Ixが消滅していなければ、ステップS113で変数Ixをインクリメントし、ステップS115に進む。ステップS115では、変数Ixが「L+1」と一致するか否かを判断し、“NO”であれば、ステップS107に戻る。一方、ステップS115で“YES”であれば、ステップS117に進む。
続いて、図20を参照して、ステップS117では変数Ixおよび変数bを初期化する。この変数bは、後述する発生配列H2の配列を指定するための変数であり、ステップS117では「0」が設定される。続いて、ステップS119では、人間Ixが発生したか否かを判断する。たとえば、図13に示すように、人間Aが入口(検出領域Fと外の領域との境界)を経由せずに、検出領域F内で人間Ixが発生したか否かを判断する。また、具体的には、各位置履歴データにおいて、最初の位置データが事前に決められた境界の座標と一致していないか否かを判断する。
ステップS119で“YES”であれば、つまり人間Ixが発生していれば、ステップS121で変数Ixを発生配列H2[b]に記憶する。つまり、ステップS121では、検出領域F内で発生した人間Ixの人間IDを発生配列H2[b]に記憶する。たとえば、変数bが0であり、変数Ixが「7」であれば、人間7の人間IDが発生配列H2[0]に記憶される。また、以下の説明では、発生配列H2[b]に記憶された人間IDと対応する人間は「人間H2[b]」と記述する。続いて、ステップS123では、変数Ixおよび変数bをインクリメントする。つまり、発生配列H2における次の配列を指定するために、変数bはインクリメントされる。
なお、ステップS109の処理を実行するプロセッサ20は、第1識別情報記憶手段として機能し、ステップS121の処理を実行するプロセッサ20は、第2識別情報記憶手段として機能する。
また、ステップS119で“NO”であれば、つまり人間Ixが発生していなければ、ステップS125で変数Ixをインクリメントして、ステップS127で変数Ixが「L+1」と一致するか否かを判断する。ステップS127で“NO”であればステップS119に戻り、“YES”であれば、ステップS129に進む。
続いて、ステップS129では、人間が消滅または発生した否かを判断する。つまり、変数aおよび変数bが初期化された値より大きいか否かを判断する。ステップS129で“NO”であれば、つまり検出領域F内で人間が発生または消滅していなければ、ID補完処理を終了する。一方、ステップS129で“YES”であれば、つまり検出領域F内で人間が発生または消滅していれば、ステップS131で変数jを初期化する。この変数jは、変数aと同様、消滅配列H1の配列を指定するための変数であり、「0」に設定される。
続いて、図21を参照して、ステップS133では、変数jが「a+1」と一致するか否かを判断する。つまり、変数jが、ステップS133の処理が実行される時点で、消滅した人間の総数を示す変数aよりも大きい値と一致するか否かを判断する。ステップS133で“YES”であれば、つまり変数jが消滅した人間の総数よりも大きければ、ステップS155に進む。一方、ステップS133で“NO”であれば、つまり変数jが消滅した人間の総数以下であれば、ステップS135で人間H1[j]とすれ違った人間の人間IDを記憶する。つまり、すれ違い行動を予測するために、消滅した人間H1[j]とすれ違った人間の人間IDを、IDバッファ338に記憶する。
続いて、ステップS137では変数kを初期化する。この変数kは変数bと同様、発生配列H2の配列を指定するための変数であり、「0」に設定される。続いて、ステップS139では、人間H1[j]が消滅してから人間H2[k]が発生するまでの途切れ時間を算出する。たとえば、図13(A),(B)を参照して、人間H1[j]および人間H2[k]が人間0および人間7である場合に、人間0の位置履歴データにおいて最後の位置データが記録された時刻と、人間7の位置履歴データにおいて最初の位置データが記録された時刻との時間差が途切時間(第2所定時間)として算出される。なお、ステップS139の処理を実行するプロセッサ20は、時間算出手段として機能する。
続いて、ステップS141では、途切時間がDn(たとえば、10秒)秒以内か否かを判断する。たとえば、人間0および人間7の途切時間が10秒以内であるか否かを判断する。ステップS141で“YES”であれば、つまり途切時間がDn秒以内であれば、ステップS143ですれ違い行動予測処理を実行する。このすれ違い行動予測処理については、すでに説明しているため詳細な説明は省略するが、ここでは、人間H1[j]が消滅してから、第2所定時間後の将来位置が予測される。なお、ステップS141の処理を実行するプロセッサ20は第2予測手段として機能する。
続いて、ステップS145では、第2距離配列[j][k]に人間H2[k]が発生した位置と人間H1[j]の将来位置との距離が記録される。たとえば、図13(C)を参照して、変数jが「0」であり、変数kが「1」であり、人間H1[0]が人間0であり、人間H2[1]が人間7であれば、人間0の将来位置と人間7との距離が第2距離配列[0][1]に記録される。
なお、ステップS141で“NO”であれば、つまり途切時間がDn秒より大きければ、ステップS147で第2距離配列[j][k]に、閾値Tb(たとえば、1000mm)より大きい値(たとえば、2000)を記録する。つまり、人間H1[j]が人間H2[k]と同一であることは無いため、人間H1[j]と人間H2[k]との距離を、この後の処理で利用する閾値Tbよりも大きい値として記録する。つまり、ステップS159以降の処理で誤って人間IDが上書きされないようにする。
続いて、ステップS149では、変数kをインクリメントする。つまり、発生配列H2における次の配列を指定するために変数kがインクリメントされる。続いて、ステップS151では、変数kが「b+1」と一致するか否かを判断する。つまり、変数kが、発生した人間の総数を示す変数bよりも大きい値と一致するか否かを判断する。ステップS151で“NO”であれば、つまり変数kが発生した人間の総数以下であれば、ステップS139に戻る。一方、ステップS151で“YES”であれば、つまり変数kが発生した人間の総数より大きい値と一致すれば、ステップS153で変数jをインクリメントし、ステップS133に戻る。つまり、ステップS153では、他の人間IDを指定するために、変数jはインクリメントされる。
また、消滅した全ての人間に対して、ステップS133−S153の処理が行われると、ステップS155で変数jを初期化する。つまり、ステップS157以降の処理で人間IDを上書きするために、再度変数jは初期化される。続いて、ステップS157では、人間H1[j]と最も距離が近い人間を選択する。つまり、ステップS157では、第2距離配列[j][0]…第2距離配列[j][b]の中から、最も小さい値が記録された第2距離配列を選択する。たとえば、変数jが「0」であれば、人間H1[0]は人間0を示す。そして、第2距離配列[0][0]…第2距離配列[0][b]のうち、第2距離配列[0][1]に最も小さい値が記録されていれば、人間H2[1](H2[1]=7:人間7)が選択される。そして、選択された人間7の人間IDは、選択結果バッファ332に記憶される。
続いて、ステップS159では、距離が閾値Tb以下であるか否かを判断する。たとえば、ステップS157で選択された人間7と人間0(人間H1[j=0])との距離が閾値Tb以下であるか否かを判断する。また、具体的には、上記の第2距離配列[0][1]の値が閾値Tb以下であるか否かを判断する。ステップS159で“NO”であれば、つまり距離が閾値Tbより大きければ、ステップS163に進む。一方、ステップS159で“YES”であれば、たとえば、人間7と人間0との距離が閾値Tb以下であれば、ステップS161で人間IDを上書きする。たとえば、図6に示すIDテーブルの人間IDの列において、「07」の欄が「01」に上書きされる。つまり、IDテーブルの人間IDの列において、「07」が「01」に置き換えられる。なお、ステップS161の処理を実行するプロセッサ20は、置換手段として機能する。
続いて、ステップS163では、変数jをインクリメントし、ステップS165で変数jが「a+1」と一致するか否かを判断する。また、ステップS165で“NO”であれば、ステップS157に戻り、“YES”であればID補完処理を終了する。つまり、消滅した他の人間についても、上述した処理を実行する。
なお、ID補完処理は、人間の消滅が検出されれば実行されてもよいし、システムの管理者によって任意のタイミングで実行されてもよいし、一定の時間(33ms)毎に実行されてもよい。
この実施例によれば、位置検出システム100は、LRF12およびメモリ22を備え、検出領域F内に存在する人間をLRF12によってセンシングすることで位置を検出し、検出された位置データをメモリ22のバッファに蓄積する。また、人間Aおよび人間Bの位置履歴データに基づいて、すれ違い行動が行われていると判断された場合、すれ違いモデル毎にすれ違い軌跡CTと一致する確率Pが算出される。そして、プロセッサ20は、確率Pの値が最も大きいすれ違いモデルCMに従って人間Bの移動方向を決め、第1所定時間後の人間Bの移動距離を求めることで、人間Bの将来位置を算出することができる。
このように、すれ違い行動が行われると、そのすれ違い行動と最も似ているすれ違いモデルを選択することで、人間の将来の位置を予測する。
なお、位置検出システム100は、人間A−人間Cなどに、検出領域F周辺の情報を提供する(リコメンドする)ロボットを含んでいてもよい。また、このロボットが含まれる場合に、ロボットと人間とのすれ違い行動において、人間の将来位置を予測することで、ロボットによるリコメンドの有無を決定したり、ロボットが人間に提供する情報を選択したりできるようにしてもよい。これにより、ロボットは周囲に存在する人間の行動に即座に対応できるようになり、さらに提供する情報の内容を的確に選択できるようになる。
たとえば、ロボットに対して前後方向または左右方向に有る物(店舗、施設およびイベント)を、ロボットの移動に合わせて教示すれば、ロボットは人間が進む方向に有る物の情報を、すれ違う人間に提供できるようになる。
この場合、ロボットに接近するすれ違い行動か、ロボットから離れるすれ違い行動かをさらに判断することで、提供する情報をさらに適確に判断できるようにしてもよい。また、人間がロボットの前で停止する事も考えられるため、すれ違い行動の定義(時間や距離)を変更することで、ロボットの前で停止した場合でも情報を提供できるようにしてもよい。
また、すれ違い行動が行われたか否かを判断する条件(2人の距離およびすれ違い時間)に、移動速度の分散を加えてもよい。たとえば、他の実施例では、2人の距離が3m以下のまま、1秒より長く5秒未満継続しており、移動速度の分散が1未満である場合に、すれ違い行動が行われたと判断されてもよい。
また、本実施例における予測制御処理では、ホット領域HTの中心に最も近い人間の将来位置を予測していたが、他の実施例では、最初にすれ違った人間、最後にすれ違った人間、移動速度が最も速い人間および移動速度が最も遅い人間の将来位置を予測してもよい。さらに、人間の体型や、年齢、性別なども識別できる場合には、それらの情報に基づいて将来位置を予測する人間を選択してもよい。
また、本実施例では、平均軌跡ATを算出するために、約一万個のすれ違い軌跡CTを利用したが、さらに多くのすれ違い軌跡CTを用いてもよい。
また、他の実施例では、すれ違いモデルを構築せずに、クラスタリングされた複数の平均軌跡ATを利用してすれ違い行動を予測してもよい。この場合、予測に利用する平均軌跡ATは、DPマッチング、RMS(Root Mean Square)または相関係数などの手法を利用して選択される。
また、他の実施例では、各人間の位置データは、床センサ、各人間が携帯する通信端末と基地局との近距離無線通信における電波強度、補正用GPS基地局とその基地局を利用するGPS端末などを利用して検出されてもよい。
また、本実施例の数値(所定距離、特定時間、第1所定時間、第2所定時間、定数sn、定数Dn、閾値Ta、閾値Tbなど)は、位置検出システム100が設置される環境に応じて、任意に変更(チューニング)されてもよい。
10 …中央制御装置
12a−12f …LRF
20 …プロセッサ
22 …メモリ
100 …位置検出システム
12a−12f …LRF
20 …プロセッサ
22 …メモリ
100 …位置検出システム
Claims (5)
- 空間内に存在する実体を環境センサによってセンシングすることで、前記空間内における各実体の位置を検出する、位置検出システムであって、
検出された前記各実体の位置データを履歴として蓄積する位置データ蓄積手段、
1の実体を含む所定領域内に他の実体が特定時間存在するような、前記1の実体と前記他の実体とのすれ違い行動が行われたかを、前記位置データ蓄積手段によって蓄積した前記1の実体および他の実体の位置データの履歴に基づいて判断する判断手段、および
前記判断手段によってすれ違い行動が行われたと判断されたとき、前記1の実体および他の実体の位置データの履歴に基づいて、前記他の実体における第1所定時間後の位置を予測する第1予測手段をさらに備える、位置検出システム。 - 入口と出口とを有する空間内に存在する実体を環境センサによってセンシングすることで、前記空間内における各実体の位置を検出する、位置検出システムであって、
検出された前記各実体の位置データを履歴として蓄積する位置データ蓄積手段、
各実体とそれらに関連して付与された識別情報を含むテーブルを記憶する記憶手段、
前記出口を経由しないで前記空間内で第1実体が消滅したとき、前記第1実体の識別情報を記憶する第1識別情報記憶手段、
前記入口を経由しないで前記空間内で第2実体が発生したとき、前記第2実体の識別情報を記憶する第2識別情報記憶手段、
前記第1実体が消滅した第1時刻と前記第2実体が発生した第2時刻との時間差を第2所定時間として算出する時間算出手段、
第3実体を含む所定領域内に第1実体が特定時間存在するような、前記第3実体と前記第1実体とのすれ違い行動が行われたとき、前記第1実体および第3実体の位置データの履歴に基づいて、前記第1実体における第2所定時間後の位置を予測する第2予測手段、および
前記第2予測手段によって予測された前記第1実体の位置と、前記第2実体が発生した位置との距離が所定距離以下であるとき、前記テーブルにおいて前記第2実体の識別情報を前記第1実体の識別情報に置き換える置換手段をさらに備える、位置検出システム。 - 前記位置予測システムは、すれ違い行動における前記他の実体の軌跡を表す、複数の軌跡モデルを記憶しており、
前記第1予測手段または第2予測手段は、すれ違い行動を行う2つの実体の位置データの履歴に基づいて、前記複数のモデルの中から1つの軌跡モデルを選択する選択手段、および前記選択手段によって選択された前記1つの軌跡モデルに基づいて、実体の位置を算出する位置算出手段を含む、請求項1または2記載の位置検出システム。 - 空間内に存在する実体を環境センサによってセンシングすることで、前記空間内における各実体の位置を検出する、位置検出システムのプロセッサを、
検出された前記各実体の位置データを履歴として蓄積する位置データ蓄積手段、
1の実体を含む所定領域内に他の実体が特定時間存在するような、前記1の実体と前記他の実体とのすれ違い行動が行われたかを、前記位置データ蓄積手段によって蓄積した前記1の実体および他の実体の位置データの履歴に基づいて判断する判断手段、および
前記判断手段によってすれ違い行動が行われたと判断されたとき、前記1の実体および他の実体の位置データの履歴に基づいて、前記他の実体における所定時間後の位置を予測する予測手段として機能させる、位置検出プログラム。 - 空間内に存在する実体を環境センサによってセンシングすることで、前記空間内における各実体の位置を検出する、位置検出システムの位置検出方法であって、
検出された前記各実体の位置データを履歴として蓄積し、
1の実体を含む所定領域内に他の実体が特定時間存在するような、前記1の実体と前記他の実体とのすれ違い行動が行われたかを、蓄積した前記1の実体および他の実体の位置データの履歴に基づいて判断し、そして
すれ違い行動が行われたと判断されたとき、前記1の実体および他の実体の位置データの履歴に基づいて、前記他の実体における所定時間後の位置を予測する、位置検出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010091876A JP2011220904A (ja) | 2010-04-13 | 2010-04-13 | 位置検出システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010091876A JP2011220904A (ja) | 2010-04-13 | 2010-04-13 | 位置検出システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011220904A true JP2011220904A (ja) | 2011-11-04 |
Family
ID=45038065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010091876A Pending JP2011220904A (ja) | 2010-04-13 | 2010-04-13 | 位置検出システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011220904A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015132980A (ja) * | 2014-01-14 | 2015-07-23 | 株式会社国際電気通信基礎技術研究所 | 移動体制御装置、移動体制御プログラムおよび移動体制御方法 |
JP2016009281A (ja) * | 2014-06-24 | 2016-01-18 | 株式会社日立製作所 | 人流分析システム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001076156A (ja) * | 1999-09-03 | 2001-03-23 | Mitsubishi Electric Corp | 画像監視装置 |
JP2004046647A (ja) * | 2002-07-12 | 2004-02-12 | Univ Waseda | 動画像データに基づく移動物体追跡方法及び装置 |
JP2005346617A (ja) * | 2004-06-07 | 2005-12-15 | East Japan Railway Co | 通行人行動解析システム |
JP2006031153A (ja) * | 2004-07-13 | 2006-02-02 | Matsushita Electric Ind Co Ltd | 人物計数装置及び人物計数方法 |
JP2009026321A (ja) * | 2008-08-25 | 2009-02-05 | Toyota Motor Corp | 干渉評価方法、装置、およびプログラム |
JP2010009847A (ja) * | 2008-06-25 | 2010-01-14 | Panasonic Electric Works Co Ltd | 自動点灯制御式照明システム |
JP2010055498A (ja) * | 2008-08-29 | 2010-03-11 | Hitachi Ltd | 自律移動ロボット装置及びかかる装置における飛び出し衝突回避方法 |
-
2010
- 2010-04-13 JP JP2010091876A patent/JP2011220904A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001076156A (ja) * | 1999-09-03 | 2001-03-23 | Mitsubishi Electric Corp | 画像監視装置 |
JP2004046647A (ja) * | 2002-07-12 | 2004-02-12 | Univ Waseda | 動画像データに基づく移動物体追跡方法及び装置 |
JP2005346617A (ja) * | 2004-06-07 | 2005-12-15 | East Japan Railway Co | 通行人行動解析システム |
JP2006031153A (ja) * | 2004-07-13 | 2006-02-02 | Matsushita Electric Ind Co Ltd | 人物計数装置及び人物計数方法 |
JP2010009847A (ja) * | 2008-06-25 | 2010-01-14 | Panasonic Electric Works Co Ltd | 自動点灯制御式照明システム |
JP2009026321A (ja) * | 2008-08-25 | 2009-02-05 | Toyota Motor Corp | 干渉評価方法、装置、およびプログラム |
JP2010055498A (ja) * | 2008-08-29 | 2010-03-11 | Hitachi Ltd | 自律移動ロボット装置及びかかる装置における飛び出し衝突回避方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015132980A (ja) * | 2014-01-14 | 2015-07-23 | 株式会社国際電気通信基礎技術研究所 | 移動体制御装置、移動体制御プログラムおよび移動体制御方法 |
JP2016009281A (ja) * | 2014-06-24 | 2016-01-18 | 株式会社日立製作所 | 人流分析システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708047B (zh) | 机器人定位评估方法、机器人及计算机存储介质 | |
CN111837083B (zh) | 信息处理装置、信息处理方法和存储介质 | |
US20180240327A1 (en) | Methods and systems for reducing false alarms in a robotic device by sensor fusion | |
JP4802112B2 (ja) | トラッキング方法及びトラッキング装置 | |
US20210370511A1 (en) | Cleaning robot and task performing method therefor | |
JP5641445B2 (ja) | 監視システム、監視方法、及び監視プログラム | |
US11860291B2 (en) | Determining a location of an electronic device | |
CN109753865B (zh) | 对象历史关联的系统和方法 | |
US20160286351A1 (en) | Indoor navigation anomaly detection | |
KR20170004556A (ko) | 실내 환경에서 이동 로봇의 리로케이션 방법 및 장치 | |
EP3513579A1 (en) | Venue detection | |
JP4875228B2 (ja) | 物体位置補正装置、物体位置補正方法、及び物体位置補正プログラム | |
EP3161419A1 (en) | Method for the localization of an individual | |
KR20220055167A (ko) | 자율주행 로봇, 자율주행 로봇의 충돌 회피 방법 및 월드 맵 관리 방법 | |
CN104913779B (zh) | 一种紧急撤离的导航方法和装置 | |
CN104951055B (zh) | 设置设备的操作模式的方法和装置、以及空调设备 | |
KR20170015454A (ko) | 의도된 타겟을 결정하기 위한 장치 및 방법 | |
JP2011220904A (ja) | 位置検出システム | |
KR101753349B1 (ko) | 사물인식 센서와 연동되는 스마트 디바이스의 물리좌표 연산을 활용한 사용자 위치 추정 방법 및 이를 이용한 시설물 내에서의 비상대피경로 안내 및 정보전달 시스템 | |
JP2016103245A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2012128700A (ja) | 関係推定装置、関係推定システム、関係推定プログラムおよび関係推定方法 | |
WO2013031092A1 (ja) | 動線検出性能シミュレーションシステム、方法およびプログラム | |
US20240177342A1 (en) | Information processing device, information processing method, and storage medium | |
JP7435356B2 (ja) | 航跡予測装置、航跡予測方法、及びプログラム | |
JP6842439B2 (ja) | 移動経路特定システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130401 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140128 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140527 |