(57)【要約】【課題】  複数の受信機を配置したフィールド内において、発信機を持たせた移動体の位置を簡易に推定する。【解決手段】  複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定するために：予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表す特徴ベクトルの群を生成し；前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成し；前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする。【選択図】  図１
2006220487.tif 000002
【特許請求の範囲】
【請求項１】
複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定する位置推定装置であって：
予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表した特徴ベクトルの群を生成する特徴ベクトル生成部と；
前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成する代表特徴ベクトル生成部と；
前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする位置推定基準生成部と；
を備えた位置推定装置。
【請求項２】
前記位置推定基準生成部は、前記代表特徴ベクトルと、前記フィールド内の複数の場所に対して夫々設定された場所ベクトルとの類似度を算出し、この類似度に基づいて前記代表特徴ベクトルに対して前記フィールド内の場所をラベル付けすることを特徴とする請求項１に記載の位置推定装置。
【請求項３】
各前記受信機による前記発信機の検出状況を時系列に記録する記録部をさらに備えたことを特徴とする請求項１又は２に記載の位置推定装置。
【請求項４】
前記特徴ベクトルごとに、前記特徴ベクトルと、各前記代表特徴ベクトルとの類似度を算出し、この類似度に基づいて前記特徴ベクトルに対して前記フィールド内の場所をラベル付けする位置推定部をさらに備えたことを特徴とする請求項１乃至３のいずれかに記載の位置推定装置。
【請求項５】
前記フィールド内における各場所間を移動するために前記移動体が満たすべき条件を定めた移動制約条件に基づき、前記特徴ベクトルにラベル付けされた場所が正しいか否かを推定する推定位置判定部をさらに備えたことを特徴とする請求項４に記載の位置推定装置。
【請求項６】
前記移動制約条件は、前記移動体が前記フィールド内における各場所間を移動するために通過する場所数を含むことを特徴とする請求項５に記載の位置推定装置
【請求項７】
前記移動制約条件は、前記移動体が前記フィールド内における各場所間を移動するために必要な移動時間を含むことを特徴とする請求項５に記載の位置推定装置。
【請求項８】
前記移動制約条件は、前記移動体の属性によって制限される前記フィールド内における場所を含むことを特徴とする請求項５に記載の位置推定装置。
【請求項９】
前記推定位置判定部によって前記特徴ベクトルにラベル付けされた場所が正しくないと判定された場合は、前記移動制約条件を満たす代替案を生成する代替案生成部をさらに備えたことを特徴とする請求項５乃至８のいずれかに記載の位置推定装置。
【請求項１０】
前記代替案生成部は、前記移動制約条件を満たす代替案が複数存在する場合は、各前記代替案による場所がラベル付けされた代表特徴ベクトルを各々検出し、前記ラベル付けされた場所が正しくないと判定された特徴ベクトルと、検出された各前記代表特徴ベクトルとの類似度を算出し、前記類似度が最も高い代表特徴ベクトルにラベル付けされた場所を前記代替案として選択することを特徴とする請求項９に記載の位置推定装置。
【請求項１１】
前記代替案生成部は、前記推定位置判定部によって前記特徴ベクトルにラベル付けされた場所が正しくないと判定されるごとに、シーケンス長を１増加した代替案のシーケンスを生成し、
前記推定位置判定部は、前記移動制約条件と前記代替案のシーケンスとに基づいて前記特徴ベクトルにラベル付けされた場所の正否を判定し、前記特徴ベクトルにラベル付けされた場所を正しいと判定した場合は、前記代替案のシーケンスを受け入れることを特徴とする請求項９又は１０に記載の位置推定装置。
【請求項１２】
前記推定位置判定部によって正しいと判定された前記場所又は前記推定位置判定部によって受け入れられた前記代替案のシーケンスと、当該場所に対応する特徴ベクトル又は当該代替案のシーケンスに含まれる各前記代替案に対応する特徴ベクトルとから、前記移動体の前記フィールド内における行動履歴を生成する行動履歴生成部をさらに備えたことを特徴とする請求項１１に記載の位置推定装置。
【請求項１３】
複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定する位置推定方法であって：
予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表す特徴ベクトルの群を生成し；
前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成し；
前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする；
位置推定方法。
【請求項１４】
複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定する手段としてコンピュータを機能させる位置推定プログラムであって：
予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表した特徴ベクトルの群を生成する手段；
前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成する手段；
前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする手段；
として前記コンピュータを機能させる位置推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置推定装置、位置推定方法及び位置推定プログラムに関する。
【背景技術】
【０００２】
現在、移動体に持たせた微弱な電波を発信する発信機と、フィールド内に配置した受信機の位置とから屋内での移動体の位置や動線を得るシステムの開発が行われており、それらに関する技術が、例えば特許文献１などに提案されている。移動体位置検出システムでは、移動体に発信機を持たせ、移動体が訪れたことを知りたい場所を中心に、フィールド全域をカバーするように受信機を設置する。移動体が受信機の近傍(観測スポット)に訪れると、移動体が持つ発信機の電波を受信機が受信し、発信機の電波を受信した受信機の位置から移動体の位置を特定する。
【特許文献１】特願2002-378609号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
発信機を用いた移動体位置検出システムにおいて、特に狭いフィールドに多くの観測スポットを設置して移動体の移動軌跡を観測する際に、近接する受信機が同時に、移動体が持つ同一の発信機から発信されている電波を受信することがある。この時、発信機を持った移動体はどちらの観測スポットの中心の近傍にいたのか分からないという問題が生じる。
【０００４】
この問題は、各発信機からの電波を受信する受信機が必ず１つになるように、受信機のアンテナの感度や設置する観測スポットの位置を調整することにより回避することは可能だが、調整には大変手間がかかる。また、観測スポットの形状はフィールドの環境によって決定され自由に変形させることができないため、フィールド全域をカバーするには、観測スポットを小さくするとともに多量の受信機が必要になるといった問題がある。また、同一発信機からの電波を複数の受信機が受信した場合、電波を同時に受信した受信機の組み合わせに応じてユーザがどこの観測スポットに位置するかをひとつひとつ決定する方法が考えられるが、様々な組み合わせが多数存在した場合、そのすべての組み合わせに対して観測スポットを定義するのは困難である。また、発信機の発信電波は発信機に搭載された電池量や発信機の特性に応じて強弱があることや環境等の種々の要因によって、移動体が複数の発信機を所持する場合、受信機において、所持された発信機のすべてが検出されるとは限らない。そのような場合、移動体がどの観測スポットの中心の近傍にいたのかを判断することは難しい。
【０００５】
本発明は、上記問題点を解決するためになされたものであり、複数の受信機を配置したフィールド内において、発信機を持たせた移動体の位置を簡易に推定できる位置推定装置、位置推定方法及び位置推定プログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様に従った位置推定装置は、複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定する位置推定装置であって：予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表した特徴ベクトルの群を生成する特徴ベクトル生成部と；前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成する代表特徴ベクトル生成部と；前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする位置推定基準生成部と；を備える。
【０００７】
本発明の一態様に従った位置推定方法は、複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定する位置推定方法であって：予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表す特徴ベクトルの群を生成し；前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成し；前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする；ことを特徴とする。
【０００８】
本発明の一態様としての位置推定プログラムは、複数の受信機が配置されたフィールド内において発信機を持たせた移動体の位置を推定する手段としてコンピュータを機能させる位置推定プログラムであって：予め取得した各前記受信機による前記発信機の検出状況を時系列に記録した検出記録データから、単位時間における前記複数の受信機の各々による前記発信機の検出状況を表した特徴ベクトルの群を生成する手段；前記特徴ベクトルの群を所定のグループ化基準に基づいてグループ化し、各グループの各々に対して前記グループを代表する代表特徴ベクトルを生成する手段；前記代表特徴ベクトルごとに、前記フィールド内の場所をラベル付けする手段；として前記コンピュータを機能させる。
【発明の効果】
【０００９】
本発明により、複数の受信機を配置したフィールド内において、発信機を持たせた移動体の位置を簡易に推定できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面に基づいて説明する。
【００１１】
図１は、本発明の実施の形態としての位置推定装置の構成を概略的に示すブロック図である。
【００１２】
この位置推定装置は、受信機取得データ記憶部１、移動体所持発信機ID記憶部２、特徴ベクトル変換部３、位置推定基準生成条件設定部４、位置推定基準生成部５、位置推定基準記憶部６、位置推定部７、移動制約データ記憶部８、位置判定基準設定部９、推定位置判定部１０、代替案生成条件設定部１１、代替案生成部１２、および行動履歴記憶部１３を備える。これらの機能部の全部又は一部による機能は、通常のプログラミング技法を用いて生成したプログラムをコンピュータに実行させることによって実現しても良いし、ハードウェア的に実現してもよい。
【００１３】
受信機取得データ記憶部１は、受信機による発信機の電波観測状況を記録し、受信機取得データとして記憶する。
【００１４】
図２は、受信機取得データ記憶部の内容の一例を示す。
【００１５】
受信機取得データ記憶部１は、複数のイベントレコードで構成される。イベントは、今まで受信されていなかった発信機の電波を受信、すなわち観測スポット内になかった発信機が観測スポット内に移動した時と、今まで電波を受信していた発信機の電波を受信しなくなった、すなわち発信機が観測スポットの外へ移動した時に発生し、イベントレコードとして記録される。
【００１６】
イベントレコードは、電波の取得状況(今までに受信していなかった発信機を受信したのか、今まで受信していた発信機の電波を受信しなくなったのか等)を識別するための電波状況識別符号（AorL）、電波を発信している発信機を識別するための発信機ID（TAGID001、TAGID002、・・・）、電波を観測した受信機を識別するための受信機ID（L1、L2、L3、・・・）、イベントが発生した時刻を表すイベント発生時刻（Time1、Time2、Time3、Time4、・・・）で構成される。
【００１７】
上記イベントレコードは受信機取得データ記憶部１内に時系列に格納されている。例えば、受信機取得データの１行目は、発信機TAGID001が、時刻Time1に観測スポットL1に訪れたことを示す。また、4行目は、発信機TAGID001が、時刻Time4に観測スポットL1から立ち去ったことを示す。すなわち、１行目と４行目とにより、発信機TAGID001が時刻Time1から時刻Time4までの間観測スポットL1に滞在していたことが表される。
【００１８】
図１において、移動体所持発信機ID記憶部２には、移動体の持つ発信機の発信機IDが移動体ごとに単数又は複数記録されている。
【００１９】
図３は、移動体所持発信機ID記憶部２の内容の一例を示す。
【００２０】
移動体所持発信機ID記憶部２は、複数の移動体レコードで構成される。移動体レコードは、移動体IDと単数又は複数の発信機IDとで構成される。例えば、１行目は、移動体PID001が、TAG001、TAG002、TAG003の3つの発信機を所持していることを表す。なお、これらの内容に性別や仕事内容、年齢といったような移動体の属性情報やアンケート結果などを加えたものを移動体レコードとしても良い。
【００２１】
図１において、特徴ベクトル変換部３は、受信機取得データ記憶部１に時系列に格納されたイベントレコードと、移動体所持発信機ID記憶部２に格納された移動体レコードとに基づいて、移動体ごとに時系列に特徴ベクトルレコードを生成し、生成した特徴ベクトルレコードを位置推定基準生成部５と位置推定部７とに出力する。
【００２２】
図４は、特徴ベクトルレコードの内容を一例として示す図である。
【００２３】
特徴ベクトルレコードは、移動体を識別する移動体IDと、時刻と、受信機による発信機の電波の受信状況を表す特徴ベクトル(電波受信状況データ)とで構成される。
【００２４】
移動体IDと時刻の要素数は１、電波受信状況データの要素数はフィールド内に設置した受信機の総数である。
【００２５】
電波受信状況データの要素は、所定時間(単位時間)における、各受信機による、同一移動体の持つ発信機の検出数を格納する。１行目は、移動体PID001が時刻Time001（時刻Time001-基準時刻の間）に、受信機L1でTL1001個の発信機の電波が受信され、受信機L2でTL2001個の発信機からの電波が受信され、受信機L3でTL3001個の発信機からの電波が受信されたことを表す。（Time001-基準時刻）と（Time002-Time001）と（Time003-Time002）とは等しく、それぞれが単位時間に相当する。特徴ベクトルレコードは、移動体1体に対して(総観測時間／単位時間)個生成される。移動体が複数の発信機を所持する場合は、特徴ベクトルの電波受信状況データを正規化しても良い（例えば検出数を所持数で除算する）。
【００２６】
図１において、位置推定基準生成条件設定部４は、後述する位置基準レコードの生成に必要なパラメータ(基準生成パラメータ)を、例えばユーザ選択に基づき設定する。
【００２７】
ユーザが選択する基準生成パラメータとしては、ベクトル間の類似度を算出するための類似度パラメータ、発信機グループ（後述）の生成手法を示すためのパラメータ、発信機グループの生成に必要な条件を定めるためのパラメータなどがある。発信機グループの生成に必要な条件は、グループ生成手法に応じて異なり、ユーザが直接入力してもよい。
【００２８】
上記ベクトル間の類似度は、２つのベクトルがどれだけ類似しているかを表す指標である。類似度としては、例えば２つのベクトル間の距離がある。距離の算出方法の違いによって、ユークリッド距離、ユークリッド平方距離、標準化ユークリッド距離、ミンコフスキー距離、マハラノビス距離などがある。２つのベクトル間の距離が小さいほど、その２つのベクトルは類似度が高いと考える。
【００２９】
上記発信機グループの生成手法には、最短距離法、最小距離法、メジアン法、重心法、群平均法、K-means法、ニューラルネットワーク法、自己組織化マップ法などが考えられる。
【００３０】
図１において、位置推定基準生成部５は、特徴ベクトル変換部３によって生成された特徴ベクトルレコードと、位置推定基準生成条件設定部４によって設定された基準生成パラメータとに基づいて、移動体の位置を推定する基準となる位置基準レコードを生成し位置推定基準記憶部６に出力する。
【００３１】
位置推定基準生成部５は、特徴ベクトル変換部３によって生成されたすべての特徴ベクトルレコードに基づいて、特徴ベクトルレコードにおける電波受信状況データ（特徴ベクトル）が互いに類似するもの同士を集めた発信機グループを生成する。生成した各発信機グループについて、その発信機グループを代表するようなベクトル(代表特徴ベクトル)を計算する。代表特徴ベクトル（代表電波受信状況データ）の要素数はフィールド内に設置した受信機の総数である。この後、各代表特徴ベクトルに対し、フィールド内の特定の場所を表す場所IDを付することにより、位置基準レコードが生成される。
【００３２】
発信機グループを生成する詳しい手順、代表特徴ベクトルの計算方法、および場所IDの付け方の詳細については後述する。場所IDは、代表特徴ベクトルを見てユーザが判断して付けても良いし、ラベル付けする場所IDは受信機が置いてあった場所に限る必要はない。
【００３３】
図１において、位置推定基準記憶部６は、位置推定基準生成部５によって生成された位置基準レコードを記録し、位置推定部７および代替案生成部１２に位置基準レコードを出力する。
【００３４】
図５は、位置推定基準記憶部６の内容の一例を示す。
【００３５】
位置推定基準記憶部６は複数の位置基準レコードを格納し、各位置基準レコードは、上述したように、発信機グループの代表電波受信状況データ（代表特徴ベクトル）と場所IDとで構成される。例えば、位置基準レコードの１行目において、場所P1の発信機グループの代表特徴ベクトルは、TNC01L1、TNC01L2、TNC01L3、TNC01L4、・・・である。同一の場所IDに対して、複数の代表特徴ベクトルが存在しても良い。
【００３６】
図１において、位置推定部７は、特徴ベクトル変換部３によって生成された特徴ベクトルレコードと、位置推定基準生成条件設定部４によって設定された基準生成パラメータと、位置推定基準記憶部６に記録された位置基準レコードとに基づいて、移動体の位置を推定した移動体レコードを生成して推定位置判定部１０に出力する。
【００３７】
位置推定部７は、特徴ベクトルレコード内の電波受信状況データ（特徴ベクトル）と、すべての位置基準レコード内の代表電波受信状況データ（代表特徴ベクトル）との類似度を計算し、最も類似度の高い代表電波受信状況データを含む位置基準レコードの場所IDを、移動体の場所として推定する。位置推定部７は、推定した場所IDを特徴ベクトルレコードに付加して移動体レコードを生成する。以上のことをすべての特徴ベクトルレコードについて行う。
【００３８】
図６は、位置推定部７によって生成された移動体レコードの一例を示す。
【００３９】
移動体レコードは、レコード番号、移動体ID、場所ID、時刻および電波受信状況データで構成される。
【００４０】
移動体ID、時刻、電波受信状況データは、特徴ベクトルレコードにおける移動体ID、時刻および電波受信状況データ（特徴ベクトル）からそれぞれ得る。例えば、図６の１行目は、図４の１行目の特徴ベクトルレコードにおける電波受信状況データ（TNL1001，TNL2001，TNL3001，・・・）が、図５の１行目の位置基準レコードにおける代表電波受信状況データ(TNCI01L1，TNCI01L2，TNCI01L3，TNCI01L4，・・・)と最も類似度が高いと判定された結果、当該特徴ベクトルレコードに場所P1が付されたものである。つまり、移動体PID001は、時刻Time001（時刻Time001-基準時刻の間）に場所P1にいたと推定されている。
【００４１】
以上において、複数行に連続して同一場所IDまたは同一の電波受信状況データが続いて現れた場合、それらまとめて記録したものを移動体レコードとして用いても良い。その場合、移動体レコードは、レコード番号、移動体ID、場所ID、時刻、滞在時間（まとめたレコード数(行数)×単位時間）、及び電波受信状況データで構成される。同一の場所IDでまとめた場合、電波受信状況データは平均値または中間値を取る。
【００４２】
図７は、複数行に連続して同一の電波受信状況データ及び同一の場所IDが出現する例を示す。
【００４３】
図７において、連続して同一の電波受信状況データをもつレコードをまとめて１つのレコードとした例を図８に示す。例えば、図７におけるレコード番号001とレコード番号002の電波受信状況データは同一のため、これらのレコードがまとめられて、図８におけるレコード番号001のレコードとされている。このとき、図８におけるレコード番号001の滞在時間ST001は、図７におけるTime003（レコード番号003の時刻）とTime001（レコード番号001の時刻）との差である。つまり、図８におけるレコード番号001の移動体レコードは、移動体PID001が時刻Time001からST001の時間、場所P1にいたと推定されること、及びこの時の電波受信状況データは(1、0、0、0、0)であることを表している。
【００４４】
図７において、連続して同一場所IDをもつレコードをまとめて１つのレコードとした例を図９に示す。この例では、まとめられたレコードの電波受信状況データは、まとめられる前の各レコードにおける電波受信状況データの平均値である。例えば、図７におけるレコード番号001からレコード番号004の場所IDは同一のため、これらのレコードがまとめられて、図９におけるレコード番号001のレコードとされている。このとき、図９におけるレコード番号001の滞在時間ST‘001は、図７におけるTime005（レコード番号005の時刻）とTime001（レコード番号001の時刻）との差である。また、図９におけるレコード番号001の電波受信状況データは、図７におけるレコード番号001〜004の電波受信状況データの平均値(1、0.3、0、0、0)である。つまり、図９におけるレコード番号001の移動体レコードは、移動体PID001が時刻Time001からST’001の時間、場所P1にいたと推定されること、及びこの時の電波受信状況データは(1、0.3、0、0、0)であることを表している。
【００４５】
図１において、移動制約データ記憶部８は、移動体がフィールド内における移動の際に満たさなければならない条件（移動制約条件）を表した移動体制約テーブルを記憶している。
【００４６】
図１０は、移動制約データ記憶部８の内容（移動体制約テーブル）の一例を示す。
【００４７】
移動体制約テーブルは、例えば場所総数×場所総数の正方行列で表される。ある場所ID(行)とある場所ID(列)が交わる部分が、２場所間を移動する際に、満たさなければならない移動制約条件を表す。例えば、移動制約条件としては、２場所間を移動する際に通過しなければならない場所数の最小値が考えられる。
【００４８】
ここで、図１１のようなフィールドFに観測スポット(場所)P1〜P5が配置されている場合、移動体制約テーブルは、例えば図１２のように記述される。場所P1からP2へは他の場所を通過せずに移動可能なためこれらの交差部には０が格納される。場所P1から場所P3への移動は、必ず場所P2又はP4を通過する必要があるためこれらの交差部には１が格納される。
【００４９】
移動制約条件としては、２場所間に存在する最小場所数の他に、２場所間の移動に必要な移動時間を用いてもよい。この場合は、ある場所ID(行)とある場所ID(列)が交わる部分が、２場所間を移動するのにかかる最短移動時間を表す。
【００５０】
例えば、各場所間の最短移動時間が図１３に示すような場合、移動体制約テーブルは図１４のように記述される。場所P1から場所P2への移動は８秒間要するためこれらの交差部には「８」が格納される。
【００５１】
地理的な移動制約条件の他に移動体の職業や役割に応じて、移動体の訪問する観測スポットが制限されており、訪問可能な場所がフィールド内の一部である場合、その制限を2値(0：移動可、1：移動不可)で表現したものを移動制約として用いても良い。
【００５２】
移動制約データ記憶部８は、上記のように２場所間を移動する際に必ず通過しなければならない場所数といったような地理的制約、２場所間を移動する際にかかる最短移動時間といったような時間的制約のどちらか一方だけを移動体の移動制約条件として含んでもよいし、これらの両方を含んでもよい。また、場合によっては、移動体ごとに別々に移動制約条件を保持してもよい。
【００５３】
なお、図１１又は図１３の地理条件においては、２場所間の移動がすべて両方向での通行が可能であれば、移動体制約テーブルは対象行列になるため（図１２又は図１４参照）、移動体制約テーブルにおける右下三角部分は省略してもよい。
【００５４】
図１において、位置判定基準設定部９は、推定位置判定部１０が、位置推定部７から出力された移動体レコードに格納される場所IDが正しいか否かを判定するために必要な条件(推定位置判定パラメータ)を、例えばユーザ選択又はユーザ直接入力に基づき、設定する。
【００５５】
例えば、移動制約データ記憶部８に記憶された移動制約条件を満たす移動が何回行われたかによって場所IDが正しいか否かを判断する場合は、位置判定パラメータは、当該場所IDが正しいと判断されるために必要な移動回数となる。例えば第１の場所、第２の場所、第３の場所、・・・第ｎの場所と移動し、第ｎ−１までの場所は確定済みで、第ｎの場所について正しいか否かを判断する状況を考える。この場合、第ｎ−１から第ｎの場所への移動制約、第ｎ−２から第ｎの場所への移動制約、第ｎ−３から第ｎの場所への移動制約・・・が存在するが、これらの制約条件のうち１つ（例えば第ｎ−１から第ｎの場所への移動制約）でも満たせば良い場合は、上記移動回数を示す推定位置判定パラメータは「１」となる。
【００５６】
推定位置判定パラメータは、場所IDすべてに共通に設定しても良いし、場所IDごとに設定しても良い。また、移動体すべてに共通に設定しても良いし、移動体ごとに設定しても良い。
【００５７】
図１において、推定位置判定部１０は、位置推定部７によって生成された移動体の推定位置を示す移動体レコードと、移動制約データ記憶部８に記憶された移動体制約テーブルと、位置判定基準設定部９で設定された推定位置判定パラメータとに基づき、移動体レコードにおける場所IDが正しいか否かの判定を行う。
【００５８】
移動体レコードにおける場所IDが正しい場合は、移動体レコードから行動履歴レコード（図１５参照）を生成し、行動履歴記憶部１３へ出力する。一方、移動体レコードにおける場所IDが正しくない場合は、代替案生成部１２へ、移動体レコードを出力して、代替案生成部１２から代替案（場所ID）シーケンス（場所IDの１以上のシーケンスで最初、シーケンス長は１）を取得する。この状態で、次の移動体レコードを推定位置判定部１０に入力し、当該移動体レコードにおける場所IDが正しくない場合（上記代替案シーケンスが正しくないと判断される場合）は、代替案生成部１２から代替案シーケンス（シーケンス長２）を取得し、先に取得した代替案シーケンス（シーケンス長１）を更新する。この状態で、次の移動体レコードを推定位置判定部１０に入力し、当該移動体レコードにおける場所IDが正しいと判定されるまで（最新の代替案シーケンスが正しいと判定されるまで）、以上を繰り返す。推定位置判定部１０は、順次シーケンス長が増加する代替案シーケンスを取得する代わりに、シーケンス長１の代替案を逐次追加的に代替案生成部１２から取得してもよい。移動体レコードにおける場所IDが正しいと判定された場合（最新の代替案シーケンスが正しいと判定された場合）は、保持されている代替案シーケンスを受け入れ、これまで正しくないと判定された移動体レコードの数分（代替案シーケンスに含まれる代替案の数分）の行動履歴レコードを生成して、行動履歴記憶部１３へ出力する。推定位置判定部１０による判定手法の詳細については後述する。
【００５９】
図１において、代替案生成条件設定部１１は、代替案生成部１２が代替案を生成する際に必要な条件(代替案生成条件パラメータ)を、例えばユーザによる選択又はユーザによる直接入力に基づいて、設定する。
【００６０】
代替案生成条件パラメータとしては、例えば生成した（伸ばした）代替案を含む位置基準レコードの電波受信状況データと、対象としている移動体レコードの電波受信状況データとの類似度が満たさなければならない最小類似度などが考えられる。このように最小類似度を用いて代替案の枝きりを行うことで、生成される（伸ばされる）代替案の数が膨大になることを防ぐ。代替案の枝きりを行わずに、生成したすべての代替案を候補として扱っても良い。
【００６１】
図１において、代替案生成部１２は、位置推定基準生成条件設定部４によって設定された基準生成パラメータと、位置推定基準生成部６に記憶された位置基準レコードと、移動体制約データ記憶部８に記憶された移動体制約テーブルと、位置判定基準設定部９によって設定された推定位置判定パラメータと、推定位置判定部１０によって推定位置が正しくないと判断された移動体レコードと、代替案生成条件設定部１１によって設定された代替案生成条件パラメータとに基づき、移動体制約テーブルと推定位置判定パラメータと代替案生成条件パラメータとを満たす代替案シーケンスを単数又は複数生成し、その中の１つを位置判定部１０へ出力する。代替案生成部１２は、既に代替案シーケンスが生成されている場合は記録されている代替案のシーケンスを１つ伸ばし、その中の１つを位置判定部１０へ出力する。代替案生成部１２は、推定位置判定部１０において移動体レコードの場所IDが正しいと判定されるまで（代替案シーケンスが正しいと判定されるまで）、生成した全ての代替案シーケンスを保持し続ける。
【００６２】
代替案生成部１２は、生成した（伸ばした）代替案（場所ID）１つ１つについて、当該代替案に対応する位置基準レコードにおける電波受信状況データと、対象としている移動体レコードの電波受信状況データとの類似度を計算する。類似度の合計が最も高い代替案シーケンスを選び、推定位置判定部１０に出力する。推定位置判定部１０に入力される移動体レコードにおける場所IDが正しいと判定されるまでは（代替案シーケンスが正しいと判定されるまでは）、生成した全ての代替案シーケンスは保存される。代替案生成部１２に推定位置判定部１０から移動体レコードが１つ入力されるごとに、保存された代替案シーケンスは更新される（シーケンスが１つ伸ばされる）。推定位置判定部１０において移動体レコードにおける場所IDが正しいと判定された場合（代替案シーケンスが正しいと判定された場合）は、代替案生成部１２は、生成した全ての代替案シーケンスを消去する。
【００６３】
代替案生成条件設定部１１で設定された代替案生成条件パラメータ（例えば最小類似度）を満たす代替案（場所ID）が存在しない場合は、例えばメッセージを返し、プログラムを停止する。なお、上記方式では、代替案シーケンスとして選択されるのは、もっとも類似度の合計が高いもののみだが、推定位置判定部１０で、次の移動体レコードにおける場所IDが正しいと判定されなかった場合（代替案シーケンスが正しくなかった場合）は、２番目に類似度の合計が高い代替案シーケンスを次候補として抽出して推定位置判定部１０に出力し、推定位置判定部１０において上記次の移動体レコードにおける場所IDを判定してもよい。すなわち、代替案シーケンスの選択と、移動体レコードIDにおける場所IDの判定とを何度か繰り返し行っても良い。代替案シーケンスの生成については後にさらに詳細に説明する。
【００６４】
図１において、行動履歴記憶部１３は、移動体の移動履歴を行動履歴レコードとして記録する。
【００６５】
図１５は、行動履歴記憶部１３の内容を一例として示す図である。
【００６６】
行動履歴記憶部１３は、複数の行動履歴レコードを含む。各行動履歴レコードは、移動体ID、時刻および場所IDで構成される。例えば、１行目の行動履歴レコードは、移動体PID001がTime001の時（Time001−基準時刻の間）、場所P1にいることを表している。
【００６７】
以上のような位置推定装置において、まず、位置推定基準生成部５が行う処理の手順（Step501〜Step505）を以下に詳細に説明する。ここでは、ベクトル間の類似度の算出にはユークリッド距離を、発信機グループの分類手法についてはK-means法を用いる。K-means法では生成するグループ数ｋをユーザによってあらかじめ設定する。全特徴ベクトル数をｍとし、各特徴ベクトルの要素数は、フィールド内に設置された受信機の数ｎとする。
【００６８】
Step501:  各グループ(C1,C2,・・・Cx,・・・Cn)の代表ベクトルの初期値l1…lkを決定する。
初期値は、乱数を用いて自動的に決定してもよいし、あらかじめユーザによって設定しても良い。
l1=(l11,l12,…,l1n)，l2=(l21,l22,…,l2n)…，lk=(lk1,lk2,…,lkn)
ただし，（l1≠l2≠l3≠…≠lk）
lijグループiのj番目の要素
【００６９】
Step502:  全入力特徴ベクトル(p1,p2,・・・,px,・・・,pm)と各グループの代表ベクトルとの類似度を計算し、類似度の高いグループに分類をおこなう。
入力特徴ベクトルpx=(px1,px2,・・・,pxy,・・・,pxn)と各グループ代表ベクトル(l1,l2,・・・,li,・・・,lk)とのユークリッド距離(E1,E2,・・・,Ei,・・・,Ek)を以下の式を用いて計算する．
【数１】
2006220487.tif 000003
最もユークリッド距離が小さいグループCiにデータを分類する。
【数２】
2006220487.tif 000004
【００７０】
Step503:  各グループ内に分類された電波受信状況データの平均を以下の式で求め、その値を新たにグループの代表ベクトルとする。
【数３】
2006220487.tif 000005
【００７１】
Step504:  すべてのグループ(C1,C2,・・・Cx,・・・Cn)について以下の式が成り立つか判定する。
【数４】
2006220487.tif 000006
少なくともいずれかのグループについて上記式が成り立たない場合は、li=l'i  (l1,l2,・・・,li,・・・,lk)として、Step502へ戻り、Step502からStep504まで繰り返す。
【００７２】
Step505:  生成された各グループ(C1,C2,・・・Cx,・・・Cn)の代表ベクトル(l'1,l'2,・・・,l'i,・・・,l'k)を用いて各グループに場所のラベル付けを行う。より詳細には以下の通りである。入力特徴ベクトルpx=(px1,px2,・・・,pxy,・・・,pxn)の各要素はフィールドに配置された各受信機（L1,L2,・・・,Ly,・・・Ln）の発信機検出数を表している。
【００７３】
そこで、入力特徴ベクトルのうちL1に対応する要素に最大発信機数（対象とするユーザが保持する発信機数）rを含み、他の要素を0とした場所単位ベクトルe1=(r,0,・・・0,・・・0)を、受信機L1の中心近傍の場所P1を表すベクトルとする。
【００７４】
受信機（L1,L2,・・・,Ly,・・・Ln）の中心近傍の場所（例えば受信機間で検出範囲が重ならない程度の受信機の検出領域）（P1,P2,・・・,Py,・・・Pn）を示す場所ベクトル(e1,e2,・・・,ex,・・・en)と、Setp504で生成した代表ベクトル(l'1,l'2,・・・,l'i,・・・,l'k)との類似度を以下の式で求める。
【数５】
2006220487.tif 000007
【００７５】
ユークリッド距離Exが最も小さい（類似度が最も高い）場所単位ベクトルexに示される場所Pxを代表ベクトルに対してラベル付けする。
【数６】
2006220487.tif 000008
【００７６】
ここで、ユーザがあらかじめ設定した類似度に満たない代表ベクトルについては、自動的に受信機の設置場所以外の新しい観測スポットを生成して、新たな場所ラベルを付するようにしてもよい。また、各受信機近傍の場所としてラベル付けされる代表ベクトルの数(この数は、場所ごとに決めても良いし、一律に決めても良い)をユーザがあらかじめ設定し、その数を超える代表ベクトルは、新たな場所又は次に類似度が高い場所に自動的にラベル付けされるようにしてもよい。また、受信機の中心近傍の場所だけでなくすべての受信機の組み合わせを考慮した新たな場所単位ベクトル（例えば受信機間で検出領域が重なる領域についての場所単位ベクトル）を生成し、それとの類似度を計算するようにしてもよい。この他、自動的にラベル付けされた場所IDをユーザが訂正してもよい。
【００７７】
次に、推定位置判定部１０により行われる処理手順を、図１６を用いて説明する。
【００７８】
図１６は、推定位置判定部１０による処理手順を示したフローチャートである。
【００７９】
ここでは、移動制約データ記憶部８に記憶された移動制約条件を満たす移動回数が１回行われたら、対象とする移動体レコードにおける場所IDは正しいと判定する。また図６のようなレコード番号、移動体ID、場所ID、時刻および電波受信状況データで構成される移動体レコードを用い、単位時間を1(s)とする。推定位置判定は、移動体ごとに時系列にソートされた移動体レコードを逐次的に読み込むことで行う。レコード番号iは時系列に並んだ移動体レコードの順番とする。移動体観測開始時のレコード番号を１とする。
【００８０】
Step1001では、移動体観測開始時刻の移動体レコードを読み込む。読み込まれた移動体レコードが観測開始時の移動体レコードであるか、それ以外の移動体レコードであるかによって、その後の処理手順が異なる。そこで、Step1002において処理を２パターンに分岐させる。また本推定位置判定を終了するか否かの判定をStep1004において行う。
【００８１】
読み込んだ移動体レコードが観測開始時のものである場合は（Step1002のYES）、Step1003へ進む。読み込んだ移動体レコードが観測開始時以外のものであり（Step1002のNO）、かつ、レコード番号iが移動体レコードの総レコード数以下である場合(Step1004のYES)Step1005へ進む。レコード番号iが上記総レコード数より大きい場合(Step1004のNO)は、処理を終了する。
【００８２】
Step1003では、i＝1の時の移動体レコードの場所ID（Ｅi＝1）を Ｓi＝1 としてシーケンスＳに加える。Ｓは同一移動体の滞在した場所を時系列に保存するシーケンスであり、
Ｓ＝＜Ｓi＝1、Ｓi＝2、・・・Ｓi＝iｎ＞と表される（iｎ: 総レコード数）。iの値を１増分しStep1002へ戻る。
【００８３】
Step1005では、シーケンスＳに保存されている時間i−１における場所Ｓi-1と、レコード番号iにおける移動体レコードの場所Ｅiとが移動制約データ記憶部８に記憶された移動制約条件を満たしているかを判定する（上述したように本例では移動制約条件を満たす移動回数が１回行われればよい）。移動制約条件を満たしている場合は（Step1005のYES）、Step1006へ進み、満たしていない場合は（Step1005のNO）、Step1010へ進む。
【００８４】
Step1006では、代替案生成部１２に代替案シーケンスＡが存在するか否かを判定する。代替案シーケンスＡは、代替案生成部１２で生成された複数の代替案シーケンスから選択されたものであり、場所IDが時系列に保存されている。代替案シーケンスＡはＡ=＜Ａ１，Ａ２，・・・，Ａｋ＞と表す（ｋ:代替案のシーケンス長）。
【００８５】
代替案シーケンスＡが存在する場合は（Step1006のYES）、Step1009へ、存在しない場合は（Step1006のNO）、Step1007へ進む。
【００８６】
Step1007では、行動履歴記録部１３に移動体IDと時刻（移動体レコードのレコード番号i-1の時刻）と場所IDＳi−１とを行動履歴レコードとして記録する。図７又は図８に示す移動体レコードを対象とする場合は、これらに加えて、滞在時間（移動体レコードのレコード番号i-1に記録された滞在時間）を記録する。記録後、Step1008へ進む。
【００８７】
Step1008では、レコード番号iにおける移動体レコードの場所ID（Ｅi）を Ｓi としてシーケンスＳに加える。iの値を１増分しStep1002へ戻る。
【００８８】
Step1009では、代替案シーケンスＡに含まれるすべての場所IDを移動体IDと時刻と共に時系列になるように行動履歴レコードとして行動履歴記録部１３に記録する。記録後、Step1008へ進む。
【００８９】
Step1010では、代替案生成部１２においてシーケンス長ｋ（最初k=0とする）を１増分した代替案シーケンスを生成し、その中から候補となる代替案シーケンスＡを抽出する。抽出した代替案シーケンスＡを推定位置判定部１０に渡す。この後、Step1011へ進む。もし、Step1010において、代替案シーケンスＡを抽出できなかった場合は、処理を停止する。
【００９０】
Step1011では、代替案シーケンスＡに含まれるｋ番目の要素Ａｋ（代替案シーケンスの再後尾の要素）を Ｓi としてシーケンスＳに加える。シーケンスＳ内に、抽出した代替案シーケンスＡの要素と異なるものが存在する場合は（代替案シーケンスＡの再後尾以外の要素が前回の代替案シーケンスＡと異なる場合は）、代替案シーケンスＡに含まれる要素によって、シーケンスＳにおける当該要素を更新する。この後、iの値を１増分しStep1002へ戻る。
【００９１】
次に、代替案生成部１２により行われる処理手順を説明する。
【００９２】
まず、代替案生成部１２による処理手順を説明するに先立ち、代替案シーケンスについて簡単に説明しておく。
【００９３】
本実施の形態では、代替案シーケンスをツリー構造によって表現する。ツリー構造の一例を図１７に示す。ツリー構造とは、１つのノード(根ノード)から始まり、枝分かれを繰り返して階層が深くなるデータ構造のことである。枝分かれにより生成されたノードを子ノード、枝分かれする元になったノードを親ノードと呼ぶ。１つのノードが持つ事ができる親ノードは１つだけである。例えば、（T21, LT21）は（T11,LT11）の子ノードであり、（T11,LT11）は（T21,LT21）の親ノードである。各ノードには、場所ID（Tx：xは任意の整数）と類似度（LTy：yは任意の整数）とが格納されている。格納される類似度は、（親ノードに格納される類似度）＋（子ノードに含まれる場所IDをもつ位置基準レコードにおける電波受信状況データと、対象とする移動体レコードにおける電波受信状況データとの類似度）によって求める。
【００９４】
代替案シーケンスは、最下層の子ノードと、ルートを除く当該子ノードの上位ノードとに含まれる場所ＩＤを、階層の浅い順に並べたものである。例えば、（T11，T21）、(T11，T22)、（T12，T23）、（T13，T24）、（T13，T25）が図１７の代替案ツリーに含まれる代替案シーケンスである。代替案のシーケンス長ｋに対して生成される代替案ツリーはｋ＋１の深さをもち、代替案シーケンス数は深さｋ＋１のノード数となる。
【００９５】
以下、代替案生成部１２による処理手順をStep1201〜Step1206によって詳細に説明する。
【００９６】
Setp1201では、推定位置判定部１０によって正しいと判定された最も遅い時刻の場所Ｔ０（図１６のStep1007で最後に記録された場所ＩＤ）をツリー構造の親ノードとする。このときシーケンス長をｋ＝１とする（ｋ=0の状態でｋを１増分してk=１とする）。
【００９７】
Step1202では、移動制約データ記録部８に格納された移動体制約テーブルを用いて、場所Ｔ０に対して移動制約条件を満たす場所集合Ｔｋを抽出し、抽出した場所それぞれを上記親ノードの子ノードに格納する。
【００９８】
集合ＴｋはＴｋ＝(Ｔｋ１，Ｔｋ２，・・・，Ｔｋｎ)と表す(ｎ: Ｔ０に対して移動制約条件を満たす場所の総数)。
【００９９】
例えば、Ｔ０＝P1のとき、図１２の移動体制約テーブルにおいてP1から直接移動できる場所集合をＴ１とすると、Ｔ１＝(P1，P2，P4)となる。
【０１００】
Setp1203では、各子ノードに格納された場所に対応する位置基準レコードにおける電波受信状況データと、対象とする移動体レコードにおける電波受信状況データとの類似度を以下の式を用いて計算し、保存する。
【数７】
2006220487.tif 000009
Ｒ:移動体レコードの電波受信状況データ、mtki:場所集合Ｔｋの要素iに対応する位置基準レコードにおける電波受信状況データ、lk:Tkの親ノードに記録されている類似度（Ｔ０＝0とする）
【０１０１】
例えば、対象とする移動体レコードの電波受信状況データがP＝(0，0，0.8，0.7，0)である場合に、当該移動体レコードと、Ｔ１＝(P1，P2，P4)における各要素との類似度を計算すると以下のようになる。但し、位置推定基準記憶部６において、位置基準レコードとして、(P1，1，0，0，0，0)、(P2，0，1，0，0，0)、(P4，0，0，0，1，0)が記憶されているとする。
ｌp1p1＝0＋(1＋0＋0.64＋0.49＋0)＝2.13
ｌp1p2＝0＋(0＋1＋0.64＋0.49＋0)＝2.13
ｌp1p4＝0＋(0＋0＋0.64＋0.09＋0)＝0.73
【０１０２】
Step1204では、Step1203で計算した類似度を、シーケンス長ｋを用いて正規化する（例えば類似度をシーケンス長ｋで除算する）。代替案生成条件設定部１１で設定された最小類似度に満たない子ノードを消去する。また、子ノードの消去により、子ノードをもたない親ノードが発生する場合は当該親ノードも消去する。
【０１０３】
Step1205では、Step1203で計算した結果の中でもっとも高い類似度を有する子ノードにおける場所IDを含むシーケンスを、代替案シーケンスＡとして、推定位置判定部１０に出力する。例えば、上記の場合は、Ａ＝＜P4＞となる。
【０１０４】
Step1206では、推定位置判定部１０において代替案シーケンスＡが正しいと判定された場合（次の移動体レコードにおける場所IDが正しいと判定された場合）は、代替案ツリーを消去する。正しいと判定されなかった場合（図１６のStep1005のNO参照）は、ｋを１増分してStep1202へ戻る。
【０１０５】
以上に説明した本実施の形態において、位置推定基準生成部５によって生成される位置基準レコードは、受信機により受信機取得データを逐次取得しながら生成してもよいし、予め取得した受信機取得データ（サンプルデータ）を元に生成してもよい。前者の場合、ほぼリアルタイムに近い状態での位置推定が可能となる。
【０１０６】
また、推定位置判定部１０において、位置推定部７による推定結果が訂正された場合、任意の手法を用いて、訂正結果を位置推定基準データベースにフィードバックしてもよい。これにより、位置推定部７の精度を向上させることができる。
【０１０７】
また、予め設置した観測スポット数（受信機数）よりも多い数のグループを生成し、受信範囲が重なり合う部分を新たな観測スポットとすることで、少ない受信機で多くの観測スポットを生成できる。これにより、少ない受信機でフィールドをカバーできる。
【０１０８】
以上に説明した本実施の形態によれば、複数の受信機で発信機が受信された場合においても、地理制約及び時間制約の少なくとも一方を考慮した上で、最も妥当と思われる移動体の位置を、従来の技術よりも手間をかけずに、簡易に推定できる。
【図面の簡単な説明】
【０１０９】
【図１】本発明の実施の形態による位置推定装置の構成を示すブロック図である。
【図２】受信機による発信機の検出記録を示す例である。
【図３】各移動体が保持する発信機例を示す図である。
【図４】特徴ベクトルレコードの一例を示す図である。
【図５】位置基準レコードの一例を示す図である。
【図６】移動体レコードの一例を示す図である。
【図７】複数行に連続して同一の電波受信状況データ及び同一の場所IDが出現する例を示す図である。
【図８】図７において、連続して同一の電波受信状況データをもつレコードをまとめて１つのレコードとした例を示す図である。
【図９】図７において、連続して同一場所IDをもつレコードをまとめて１つのレコードとした例を示す図である。
【図１０】移動体制約テーブルの一例を示す図である。
【図１１】フィールドマップ例を示す図である。
【図１２】図１１のフィールドマップにおける地理制約を行列式で示した図である。
【図１３】フィールドマップ例を示す図である。
【図１４】図１３のフィールドマップにおける時間制約を行列式で示した図である。
【図１５】行動履歴レコードの一例を示す図である。
【図１６】推定位置判定部の処理手順を示すフローチャートである。
【図１７】代替案生成部で生成される代替案の一例を示す図である。
【符号の説明】
【０１１０】
１  受信機取得データ記憶部
２  移動体所持発信機ID記憶部
３  特徴ベクトル変換部
４  位置推定基準生成条件設定部
５  位置推定基準生成部
６  位置推定基準記憶部
７  位置推定部
８  移動制約データ記憶部
９  位置判定基準設定部
１０  推定位置判定部
１１  代替案生成条件設定部
１２  代替案生成部
１３  行動履歴記憶部
【図１】
2006220487.tif 000010
【図２】
2006220487.tif 000011
【図３】
2006220487.tif 000012
【図４】
2006220487.tif 000013
【図５】
2006220487.tif 000014
【図６】
2006220487.tif 000015
【図７】
2006220487.tif 000016
【図８】
2006220487.tif 000017
【図９】
2006220487.tif 000018
【図１０】
2006220487.tif 000019
【図１１】
2006220487.tif 000020
【図１２】
2006220487.tif 000021
【図１３】
2006220487.tif 000022
【図１４】
2006220487.tif 000023
【図１５】
2006220487.tif 000024
【図１６】
2006220487.tif 000025
【図１７】
2006220487.tif 000026