(58)【調査した分野】(Int.Cl.,DB名)
前記特定部は、算出された電波強度の推定値と、前記電波強度の実測値との差を前記基地局ごとに算出し、算出された電波強度の差に応じて、前記基地局ごとに前記端末装置が前記各フロアに存在する確率を算出し、算出された前記基地局ごとの前記存在する確率に基づいて、前記端末装置が存在するフロアを特定する
ことを特徴とする請求項1に記載の位置特定サーバ。
前記特定部は、算出された電波強度の推定値と、前記電波強度の実測値との差を前記基地局ごとに算出し、算出された電波強度の差に応じて、前記各フロアにおける前記電波強度の差が算出された前記基地局ごとの確率の平均値を、前記端末装置が前記各フロアに存在する確率として算出し、算出された前記存在する確率に基づいて、前記端末装置が存在するフロアを特定する
ことを特徴とする請求項1に記載の位置特定サーバ。
前記特定部は、算出された電波強度の推定値と、前記電波強度の実測値との差を前記基地局ごとに算出し、算出された電波強度の差に応じて、前記各フロアにおける前記電波強度の差が算出された前記基地局ごとの確率の和を、前記各フロアのうち前記電波強度の差が算出された前記基地局が最も多いフロアの前記基地局の数で割った値を、前記端末装置が前記各フロアに存在する確率として算出し、算出された前記存在する確率に基づいて、前記端末装置が存在するフロアを特定する
ことを特徴とする請求項1に記載の位置特定サーバ。
前記記憶部は、さらに、予め1のフロアで受信したフロア固有基地局と、当該フロア、および、前記フロア固有基地局ごとの最大電波強度とを対応付けたフロア固有基地局情報を記憶し、
さらに、
受信した前記フロア固有基地局の最大電波強度が、前記記憶部に記憶された対応する前記フロア固有基地局の最大電波強度を超える場合には、当該フロア固有基地局の属するフロアを特定する候補から除外し、受信した前記フロア固有基地局の数が最も多いフロアを、前記端末装置が存在するフロアと判定する判定部を有し、
前記特定部は、前記判定部で前記端末装置が存在するフロアを特定できない場合に、前記端末装置が存在するフロアを特定する
ことを特徴とする請求項1〜4のいずれか1項に記載の位置特定サーバ。
【発明を実施するための形態】
【0009】
以下に、本願に係る位置特定サーバ、位置特定方法および位置特定プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る位置特定サーバ、位置特定方法および位置特定プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
〔1.位置特定処理の概要〕
まず、
図1を用いて、実施形態に係る位置特定処理の一例について説明する。
図1は、実施形態に係る位置特定処理の一例を示す説明図である。
図1の例では、端末装置10は、基地局15A〜15Cの電波を受信し、基地局15A〜15Cの固有IDであるBSSID(Basic Service Set Identifier)と電波強度(受信強度(RSSI:Received Signal Strength Indicator)ともいう)とを、位置特定サーバ100に送信する。位置特定サーバ100では、受信したBSSIDと電波強度とに基づいて、位置特定処理が行われる。なお、基地局15A〜15Cを区別しない場合は、基地局15と表現する。
【0011】
まず、端末装置10は、建物5の内部で基地局15A〜15Cの電波を受信する。端末装置10は、受信した電波から基地局15A〜15CのBSSIDを検出し、BSSIDごとに受信した電波の電波強度の実測値を取得する。端末装置10は、BSSIDと電波強度の実測値とを対応付けて、ネットワークNを介して位置特定サーバ100に送信する(
図1中、矢印で示すステップS1)。
【0012】
位置特定サーバ100は、受信したBSSIDおよび電波強度の実測値と、GMM記憶部123に記憶されたGMM(Gaussian Mixture Model)に基づいて、端末装置10の位置を建物5のフロア(階)ごとに推定する(ステップS2)。ここで、GMMとは、各フロアにおける基地局の電波強度を複数のガウス分布関数の重ね合わせで表現したものである。例えば、フロアF3に対しては、基地局15AのGMM123A、基地局15BのGMM123B、および、基地局15CのGMM123CがGMM記憶部123に記憶されている。また、例えば、フロアF2に対しては、基地局15AのGMM124A、基地局15BのGMM124B、および、基地局15CのGMM124CがGMM記憶部123に記憶されている。
【0013】
位置特定サーバ100は、例えば、フロアF3とフロアF2とについて、端末装置10の位置を推定するとする。位置特定サーバ100は、フロアF3における端末装置10の位置を、電波強度の実測値と、GMM123A、GMM123B、および、GMM123Cとに基づいて、パーティクルフィルタを用いて総合評価を行って、端末装置10の位置を推定する。パーティクルフィルタは、時系列フィルタリング手法の一つであり、多数の次状態をパーティクルに見立て、全パーティクルの尤度に基づいて重みつき平均を次状態として予測しながら追跡する。
【0014】
位置特定サーバ100は、パーティクルフィルタによって、フロアF3における端末装置10の位置を推定する。位置特定サーバ100は、端末装置10の推定位置21における基地局15A〜15Cの電波強度の推定値を算出する。基地局15Aの電波強度の推定値は、GMM123Aから推定値21Aと算出できる。同様に、基地局15Bの電波強度の推定値は、GMM123Bから推定値21Bと算出でき、基地局15Cの電波強度の推定値は、GMM123Cから推定値21Cと算出できる。
【0015】
位置特定サーバ100は、基地局15A〜15Cの算出された電波強度の推定値21A〜21Cと、基地局15A〜15Cの電波強度の実測値とに基づいて、端末装置10がフロアF3に存在する確率を算出する。端末装置10がフロアF3に存在する確率は、例えば、電波強度の推定値と実測値との差に応じて算出できる。位置特定サーバ100は、フロアF2等の他のフロアについても同様に、端末装置10がフロアF2等の各フロアに存在する確率を算出する。ここで、例えば、端末装置10が各フロアに存在する確率は、フロアF3が50%、フロアF2が10%であったとする。
【0016】
位置特定サーバ100は、各フロアにおける端末装置10が存在する確率を比較して、最も確率の高いフロア、つまりフロアF3に端末装置10が存在すると特定する。すなわち、位置特定サーバ100は、端末装置10の推定位置21およびフロアF3を特定する。
【0017】
位置特定サーバ100は、特定した端末装置10の推定位置およびフロアを、位置情報として端末装置10に対して送信する(ステップS3)。端末装置10は、位置情報を受信すると、例えば、画面上に表示された建物5の地図上に表示することで、端末装置10のユーザに対して、現在いるフロアと位置を知らせる。
【0018】
このように、実施形態に係る位置特定処理において、位置特定サーバ100は、各基地局15A〜15Cの電波強度の実測値とGMMとに基づいて、端末装置10の位置を建物5のフロアごとに推定する。位置特定サーバ100は、フロアごとの端末装置10の位置を推定すると、受信位置での電波強度の実測値と、GMMから算出した電波強度の推定値とを比較することで、当該フロアに端末装置10が存在する確率を算出し、端末装置10が存在するフロアを特定する。このため、端末装置10のユーザに対して、現在いるフロアと位置を知らせることができる。以下、このような位置特定処理を行う端末装置10、基地局15、および、位置特定サーバ100について詳細に説明する。
【0019】
〔2.位置特定システム〕
次に、
図2を用いて、実施形態に係る位置特定システム1について説明する。
図2は、実施形態に係る位置特定システムの構成例を示す図である。
図2に示すように、位置特定システム1には、端末装置10と、基地局15と、位置特定サーバ100とが含まれる。端末装置10と位置特定サーバ100は、基地局15とネットワークNを介して、有線または無線により通信可能に接続される。なお、図示はしないが、端末装置10と位置特定サーバ100は、基地局15とは独立した別個の基地局(例えば、携帯電話のアンテナ基地局)を介してネットワークNを経て接続されてもよい。また、
図2では、位置特定システム1に、1台の端末装置10が含まれ、3台の基地局15が含まれる例を示したが、位置特定システム1には、さらに多くの端末装置10および基地局15が含まれてもよい。
【0020】
〔3.端末装置の構成〕
続いて、端末装置10の構成について説明する。端末装置10は、ユーザによって利用される情報処理装置であり、例えば、携帯電話機(例えば、スマートフォン)やPDA(Personal Digital Assistant)等に該当する。
図2に示すように、端末装置10は、通信部11と、制御部12と、表示部13とを有する。
【0021】
(通信部11について)
通信部11は、基地局15に接続され、ネットワークNを介して、位置特定サーバ100との間で情報の送受信を行う。かかる通信部11は、基地局15との接続を無線により行う。通信部11は、無線として無線LAN等を用いることができる。通信部11は、受信可能な基地局15の電波についてBSSIDを検出し、BSSIDごとに受信した電波の電波強度の実測値を取得する。
【0022】
(制御部12について)
制御部12は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部12は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0023】
かかる制御部12は、通信部11が取得した基地局15のBSSIDと電波強度の実測値とを対応付けて、通信部11およびネットワークNを介して、位置特定サーバ100に送信する。また、制御部12は、位置特定サーバ100から受信した位置情報を、例えば、地図上にマッピングして表示部13に表示する。なお、制御部12は、端末装置10全体を制御し、各種情報処理を行う。
【0024】
(表示部13について)
表示部13は、各種情報を表示するための表示デバイスである。例えば、表示部13は、液晶ディスプレイ等によって実現される。また、図示しない入力部としてタッチパネルが採用されている場合には、表示部13およびその入力部は一体化される。
【0025】
〔4.基地局の構成〕
続いて、基地局15の構成について説明する。基地局15は、例えば、無線LANの無線基地局であり、端末装置10と無線で接続し、ネットワークNを介して位置特定サーバ100と接続する。基地局15は、例えば、IEEE802.11a/b/g/n等の規格に基づいたものである。
【0026】
〔5.位置特定サーバの構成〕
次に、位置特定サーバ100の構成について説明する。位置特定サーバ100は、端末装置10から受信したBSSIDおよび電波強度と、後述するGMM記憶部123に記憶されたGMMに基づいて、端末装置10の位置をフロアごとに推定するサーバ装置である。
図2に示すように、位置特定サーバ100は、通信部110と、記憶部120と、制御部130とを有する。なお、位置特定サーバ100は、位置特定サーバ100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(液晶ディスプレイ等)を有してもよい。
【0027】
(通信部110について)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。かかる通信部110は、ネットワークNおよび基地局15を介して、端末装置10との間で情報の送受信を行う。
【0028】
(記憶部120について)
記憶部120は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。かかる記憶部120は、基地局記憶部121と、フロア記憶部122と、GMM記憶部123とを有する。また、記憶部120は、制御部130で実行されるOS(Operating System)や各種プログラム、各種データを記憶する。
【0029】
(基地局記憶部121について)
基地局記憶部121は、端末装置10が受信した基地局15のBSSID等を格納する。
図3は、実施形態に係る基地局記憶部の一例を示す図である。
図3に示すように、基地局記憶部121は、「BSSID」、「代表緯度」、「代表経度」、「MaxRSSI」、「GMMFlag」、「受信可能フロアID」といった項目を有する。
【0030】
「BSSID」は、受信した基地局15の電波から検出したBSSIDであり、基地局15を識別する。「代表緯度」および「代表経度」は、GMMパラメータを導出するために、事前に複数地点で電波強度の測定を行なうが(詳細は後述)最も電波強度が強かった位置の緯度および経度を示す。「MaxRSSI」は、前記代表緯度、代表経度での該当BSSIDの電波強度の実測値のうち最大のものを示す。
図3の一行目の例では、例えば、電波強度として−75.0dBmが計測されたことを示す。「GMMFlag」は、位置推定に用いるGMMパラメータを既に導出済であるか否かを示す。例えば、「1」は導出済を示し、「0」は未導出を示す。「受信可能フロアID」は、当該BSSIDを有する基地局15の電波を受信可能なフロアのフロアIDを示す。
【0031】
(フロア記憶部122について)
フロア記憶部122は、測位を行う建物内のフロアの情報等を格納する。
図4は、実施形態に係るフロア記憶部の一例を示す図である。
図4に示すように、フロア記憶部122は、「フロアID」、「フロア図面のファイル名」、「フロア図面の幅」、「フロア図面の高さ」、「フロアの緯度経度」、「階数」といった項目を有する。
【0032】
「フロアID」は、フロアを識別する。フロアIDは、例えば、複数の建物に対応できるように、固有のIDを振ってもよい。「フロア図面のファイル名」は、フロア図面のファイルを示す。フロア図面は、例えば、柱、壁等が記入されたものである。「フロア図面の幅」および「フロア図面の高さ」は、例えば、フロア図面の横方向および縦方向のピクセル数である。「フロアの緯度経度」は、当該フロアのエリアを確定するためのものであり、例えば、フロアの左上、左下および右上の緯度経度を示す。「階数」は、フロアが建物内の何階であるかを示す。なお、これらの情報により、フロア図面のピクセル座標と緯度経度との相互変換が可能になる。
【0033】
(GMM記憶部123について)
GMM記憶部123は、各フロアのBSSIDおよび対応するGMM等を格納する。
図5は、実施形態に係るGMM記憶部の一例を示す図である。
図5に示すように、GMM記憶部123は、「フロアID」、「BSSIDの数」、「BSSID」、「K」、「π」、「μ
x」、「μ
y」、「Σ
11」、「Σ
12」、「Σ
22」といった項目を有する。
【0034】
「フロアID」は、フロアを識別する。「BSSIDの数」は、そのフロアで受信できる基地局15の数、つまりBSSIDの数を示す。「BSSID」は、基地局15を識別する。「K」は、GMMパラメータであり、正規分布の混合数を示す。「π」は、GMMパラメータであり、各正規分布の重みを表す混合係数を示す。なお、全混合係数πの和は1となる。「μ
x」および「μ
y」は、GMMパラメータであり、正規分布のx方向およびy方向の平均を示す。「Σ
11」、「Σ
12」および「Σ
22」は、GMMパラメータであり、正規分布の分散共分散行列を示す。ここで、GMMパラメータを算出するGMMについて、式(1)に示す。なお、式(1)は、規格化も考慮した正規分布の重ねあわせで表現したもので、GMMパラメータはこの式を元に導出する。また、式(2)は電波強度RSSIとGMMとの変換式を示し、係数α、βは最小2乗法により算出することができる(図示せず)。
【0036】
2次元のGMMの形状は、個々の正規分布の平均μ、分散共分散行列Σ、混合係数πにより決定する。位置特定サーバ100では、GMMを用いてフロアの電波強度の分布を表している。
【0037】
ここで、GMMの算出について説明する。なお、GMMの算出については、論文「A Wireless LAN Location Estimation Method Based on Gaussian Mixture Model」(SUSUMU FUJITA,KATSUHIKO KAJI and NOBUO KAWAGUCHI;情報処理学会論文誌 Vol.52 No.3 1069-1081(Mar. 2011))による。
【0038】
まず、位置特定サーバ100の管理者は、端末装置10または他の測定装置を用いて、あるフロアにおける基地局15の電波強度を測定する。電波強度の測定点は、例えば、数m間隔等で設定する。管理者は、各測定点において複数回の測定を行い、その平均をその測定点の電波強度とする。管理者は、多数の測定点の電波強度のデータから、2次元点分布へ変換を行う。2次元点分布への変換は、測定点ごとに領域を分割し、各領域に電波強度に応じた数の点を撒くことで点の分布へと変換する。なお、領域の分割には、ボロノイ分割を用いることができる。
【0039】
続いて、点の分布を、EMアルゴリズムを用いてGMMに変換する。EMアルゴリズムは、EステップとMステップとの2つの更新手続きがあり、対数尤度関数を計算して収束基準を満たすまで、EステップとMステップとを繰り返す。このようにして算出したGMMの一例を
図6に示す。
図6は、実施形態に係るGMMの一例を示す説明図である。GMMは、ガウス関数(釣鐘型関数)の組み合わせであり、山脈状のいわゆるヒートマップで表すことができる。
図6では、ヒートマップの等高線、つまり、電波強度が同じ値または所定範囲内である部分を同一のハッチングとして表している。
【0040】
(制御部130について)
図2の説明に戻って、制御部130は、例えば、CPUやMPU等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASICやFPGA等の集積回路により実現される。
【0041】
かかる制御部130は、
図2に示すように、判定部131と、推定部132と、算出部133と、特定部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、
図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【0042】
(判定部131について)
判定部131は、端末装置10からBSSIDおよび電波強度の実測値を受信すると、フロアIDごとに、つまり建物のフロアごとに、固有のBSSIDの数をカウントする。すなわち、判定部131は、基地局記憶部121を参照して、受信したBSSIDのうち、あるフロアでのみ受信可能である基地局15のBSSIDの数を抽出する。判定部131は、固有のBSSIDがない場合には、基地局記憶部121を参照して、受信可能なフロアを可能性のあるフロアとして抽出し、抽出したフロアのフロアIDおよび電波強度の実測値を推定部132に出力する。
【0043】
判定部131は、固有のBSSIDがある場合には、固有のBSSIDの数が最大のフロアを決定する。判定部131は、固有のBSSIDの数が最大のフロアが1つの場合には、決定したフロアを端末装置10が存在するフロアと特定する。判定部131は、固有のBSSIDの数が最大のフロアが複数の場合には、固有のBSSIDの中で電波強度の実測値が最大のBSSIDが属するフロアを、端末装置10が存在するフロアと特定する。
【0044】
判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出する。判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できた場合には、抽出したBSSIDを推定部132に出力する。判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できなかった場合には、例えば、所定の閾値を10dBm下げて、再度BSSIDを抽出する。判定部131は、下げた閾値より大きいBSSIDを抽出できた場合には、抽出したBSSIDを推定部132に出力する。判定部131は、下げた閾値より大きいBSSIDを抽出できなかった場合には、例えば、所定の閾値を再度10dBm下げて、再々度BSSIDを抽出する。判定部131は、2回下げた閾値より大きいBSSIDを抽出できた場合には、抽出したBSSID、特定したフロアのフロアIDおよび電波強度の実測値を推定部132に出力する。判定部131は、2回下げた閾値より大きいBSSIDを抽出できなかった場合には、エラー処理を行う。また、判定部131は、電波強度の実測値を算出部133に出力する。
【0045】
(推定部132について)
推定部132は、判定部131から可能性のあるフロアまたは特定したフロアのフロアID、BSSID、および、電波強度の実測値が入力される。推定部132は、可能性のあるフロアのフロアIDが入力された場合は、例えば、フロアIDの若い順に1つのフロアIDを選択する。推定部132は、入力されたフロアIDのフロアについて、電波強度の実測値が閾値より大きいBSSIDが抽出済であるか否かを判定する。推定部132は、電波強度の実測値が閾値より大きいBSSIDが抽出済でない場合、つまり、可能性のあるフロアのフロアIDが入力された場合、電波強度の実測値が所定の閾値より大きいBSSIDを抽出する。推定部132は、電波強度の実測値が閾値より大きいBSSIDが抽出済である場合、および、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できた場合には、GMM記憶部123から当該フロアにおける抽出したBSSIDのGMMパラメータを読み込んで、パーティクルフィルタに設定する。
【0046】
推定部132は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できなかった場合、または、パーティクルフィルタにGMMパラメータが設定できなかった場合には、例えば、所定の閾値を10dBm下げて、再度BSSIDを抽出する。推定部132は、判定部131と同様に2回閾値を下げてBSSIDが抽出できるか試す。なお、推定部132は、2回閾値を下げてBSSIDが抽出できない場合は、エラー処理を行う。推定部132は、パーティクルフィルタにGMMパラメータが設定できた場合には、パーティクルフィルタで端末装置10の位置を推定する。推定部132は、判定部131から可能性のあるフロアのフロアIDが入力された場合は、推定した端末装置10の位置、および、推定に用いたフロアIDを算出部133に出力する。また、推定部132は、判定部131から特定したフロアのフロアIDが入力された場合は、推定した端末装置10の位置、特定したフロアのフロアID、および、フロア記憶部122から読み出した特定したフロアの図面等の情報を、位置情報として通信部110を介して端末装置10に送信する。
【0047】
ここで、パーティクルフィルタによる位置の推定について説明する。
図7は、実施形態に係る位置推定処理のパーティクルの初期配置の一例を示す説明図である。
図7の例では、フロアF2にパーティクル26が均等に配置されている。各パーティクル26は、基地局15のGMMにおける存在確率に応じて移動する。つまり、各パーティクル26は、存在確率に応じて重み付けを行い、ランダムウォークを加えてリサンプリングを行う。各パーティクル26の重みは、他のパーティクル26が次に移動する場所の確率として扱うと、重みの大きなパーティクル26の周囲に他のパーティクル26の多くが再配置される。
図8は、実施形態に係る位置推定処理のパーティクルの再配置後の一例を示す説明図である。
図8の例では、例えば、重みの大きなパーティクル26の周囲に、他のパーティクル26が集合した状態を示す。すなわち、端末装置10の推定位置27は、重みの大きなパーティクル26付近であると推定できる。
【0048】
(算出部133について)
算出部133は、推定部132から推定した端末装置10の位置およびフロアIDが入力される。また、算出部133は、判定部131から電波強度の実測値が入力される。算出部133は、フロアIDに基づき基地局記憶部121を参照し、フロアIDが示すフロアで受信可能なBSSID(基地局15)を抽出する。算出部133は、抽出したBSSIDのGMMをGMM記憶部123から読み込んで、端末装置10の推定位置におけるBSSIDの電波強度を算出し、電波強度の推定値とする。
【0049】
ここで、端末装置10の推定位置におけるBSSIDの電波強度の推定値の算出について説明する。
図9は、実施形態に係る推定値算出処理の一例を示す説明図である。例えば、端末装置10の推定位置を推定位置21、フロアIDをF3とし、フロアF3で受信可能な基地局15が基地局15A〜15Cであり、基地局15A〜15Cに対応するGMMが、GMM123A〜123Cであったとする。このとき、算出部133は、推定位置21におけるGMM123Aから、電波強度の推定値21Aを算出する。同様に、算出部133は、推定位置21におけるGMM123Bから、電波強度の推定値21Bを算出し、推定位置21におけるGMM123Cから、電波強度の推定値21Cを算出する。
【0050】
算出部133は、受信した電波強度の実測値と、推定位置21におけるBSSIDごとの電波強度の推定値とから正規分布に基づいて、端末装置10が当該フロアに存在する確率を算出する。端末装置10が当該フロアに存在する確率は、例えば、電波強度の推定値と実測値との差に応じて算出できる。ここで、
図9の例で説明すると、電波強度の実測値は、実測値20A〜20Cであったとする。このとき、実測値20A〜20Cは、GMM上では、
図9の水平面に示すように円環状の部分に対応すると仮定する。ここで、電波強度の推定値21A〜21Cと、電波強度の実測値20A〜20Cとは、重なる部分が存在する。つまり、電波強度の推定値21A〜21Cと電波強度の実測値20A〜20Cとの差は、ほとんどないといえる。ここで、確率は、BSSIDごとに式(3)に示す1次元の正規分布で表現でき、端末装置10が当該フロアに存在する確率は、例えば、BSSIDが3つ抽出できたフロアAの場合、式(4)に示すように、BSSIDの確率の平均値とすることができる。また、例えば、BSSIDが2つ抽出できたフロアBの場合、同様に、式(5)に示すように、BSSIDの確率の平均値とすることができる。
【0052】
ここで、
図10に他の例としてフロアF2を示す。
図10は、実施形態に係る推定値算出処理の一例を示す説明図である。
図10の例では、端末装置10の推定位置が推定位置25であり、電波強度の実測値は△印で示し、実測値24A〜24Cであったとする。また、基地局15A〜15Cに対応するGMMが、GMM124A〜124Cであったとする。このとき、実測値24Aは、GMM124A上に相当する値がないため、
図10の水平面に示すように、最も値が近い、つまり、GMM124Aの山の頂点の値となる。また、実測値24Bに対応する位置は、GMM上では、
図10の水平面に示すように円環状となる。さらに、実測値24Cは、GMM124C上の相当する値が丁度山の頂点となっているとする。
【0053】
算出部133は、推定位置25におけるGMM124Aから、電波強度の推定値25Aを算出する。同様に、算出部133は、推定位置25におけるGMM124Bから、電波強度の推定値25Bを算出し、推定位置25におけるGMM124Cから、電波強度の推定値25Cを算出する。ところが、推定位置25では、GMM124Cは電波強度が測定限界以下であるため、算出部133は、例えば、−120dBmを推定値25Cとする。
【0054】
ここで、
図10の例で、電波強度の推定値25A〜25Cと電波強度の実測値24A〜24Cとの差をみると、推定値25Aと実測値24Aとでは、実測値24Aの方が大きい。また、推定値25Bと実測値24Bとでは、近い値であるが実測値24Bの方が大きい。また、推定値25Cと実測値24Cとでは、実測値24Cの方が大きい。すなわち、電波強度の推定値25A〜25Cと電波強度の実測値24A〜24Cから、式(3)〜(5)を用いて、端末装置10が当該フロアに存在する確率を求めると、
図9の例と比較して低くなる。
【0055】
算出部133は、可能性のあるフロアのフロアIDの全てについて、端末装置10の位置を推定したか否かを判定する。算出部133は、可能性のあるフロアが残っていれば、次のフロアIDについて位置推定処理および算出処理を行うように、推定部132に指示する。算出部133は、可能性のあるフロア全てについて端末装置10の位置を推定した場合には、各フロアのフロアIDと、算出した各フロアにおける端末装置10の推定位置および存在する確率とを対応付けて、特定部134に出力する。
【0056】
(特定部134について)
特定部134は、算出部133から各フロアにおける端末装置10の推定位置および存在する確率が入力されると、各フロアにおける端末装置10の存在する確率を比較する。特定部134は、比較したフロアのうち端末装置10の存在する確率が最も高いフロアを、端末装置10が存在するフロアであると特定する。特定部134は、推定した端末装置10の位置、特定したフロアのフロアID、および、フロア記憶部122から読み出した特定したフロアの図面等の情報を、位置情報として通信部110を介して端末装置10に送信する。
【0057】
〔6.位置特定処理〕
次に、実施形態に係る位置特定システム1による位置特定処理について説明する。
図11は、実施形態に係る位置特定サーバによる位置特定処理を示すフローチャートである。
【0058】
まず、端末装置10は、建物5の内部で基地局15A〜15Cの電波を受信する。端末装置10は、受信した電波から基地局15A〜15CのBSSIDを検出し、BSSIDごとに受信した電波の電波強度の実測値を取得する。端末装置10は、BSSIDと電波強度の実測値を対応付けて、ネットワークNを介して位置特定サーバ100に送信する。
【0059】
位置特定サーバ100の判定部131は、端末装置10からBSSIDと電波強度の実測値を受信する(ステップS11)。判定部131は、基地局記憶部121を参照して、受信したBSSIDのうち、あるフロアでのみ受信可能である基地局15のBSSID(固有のBSSID)の数を抽出してカウントする(ステップS12)。判定部131は、固有のBSSIDがあるか否かを判定する(ステップS13)。判定部131は、固有のBSSIDがない場合には(ステップS13:否定)、受信したBSSIDについて、基地局記憶部121を参照して、受信可能なフロアを可能性のあるフロアとして抽出し、抽出したフロアのフロアIDおよび電波強度の実測値を推定部132に出力する(ステップS16)。判定部131は、固有のBSSIDがある場合には(ステップS13:肯定)、判定処理を実行する(ステップS14)。
【0060】
ここで、
図12を用いて判定処理を説明する。
図12は、実施形態に係る位置特定サーバによる判定処理を示すフローチャートである。判定部131は、固有のBSSIDの数が最大のフロアを決定する(ステップS141)。判定部131は、固有のBSSIDの数が最大のフロアが1つであるか否かを判定する(ステップS142)。判定部131は、固有のBSSIDの数が最大のフロアが1つの場合には(ステップS142:肯定)、決定したフロアを端末装置10が存在するフロアと特定する(ステップS143)。判定部131は、固有のBSSIDの数が最大のフロアが2つ以上の場合には(ステップS142:否定)、固有のBSSIDの中で電波強度の実測値が最大のBSSIDが属するフロアを、端末装置10が存在するフロアと特定する(ステップS144)。
【0061】
判定部131は、電波強度が閾値より大きいBSSIDの抽出をトライする回数nの初期値を1に設定する(ステップS145)。判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出する。判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できたか否かを判定する(ステップS146)。判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できた場合には(ステップS146:肯定)、抽出したBSSIDを推定部132に出力して、位置推定処理を実行する(ステップS151)。
【0062】
判定部131は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できなかった場合には(ステップS146:否定)、回数nが2より大きいか否かを判定する(ステップS147)。判定部131は、回数nが2以下である場合は(ステップS147:否定)、所定の閾値を10dBm下げ(ステップS148)、回数nに1を足して(ステップS149)、ステップS146に戻り再度BSSIDを抽出する。判定部131は、回数nが2より大きい場合は(ステップS147:肯定)、エラー処理を実行して処理を終了する(ステップS150)。
【0063】
判定部131は、ステップS146〜S149の処理を繰り返し、所定の閾値を2回下げてBSSIDの抽出を試みる。このとき、判定部131は、下げた閾値より大きいBSSIDを抽出できた場合には(ステップS146:肯定)、抽出したBSSIDを推定部132に出力して、位置推定処理を実行する(ステップS151)。
【0064】
ここで、
図13を用いて、位置推定処理を説明する。
図13は、実施形態に係る位置特定サーバによる位置推定処理を示すフローチャートである。推定部132は、判定部131から可能性のあるフロアのフロアIDが入力された場合、つまり、電波強度の実測値が閾値より大きいBSSIDを抽出していない場合には、判定処理と同様の処理を実行する。このため、推定部132は、電波強度が閾値より大きいBSSIDの抽出をトライする回数nの初期値を1に設定する(ステップS1511)。推定部132は、可能性のあるフロアのフロアIDが入力された場合は、例えば、フロアIDの若い順に1つのフロアIDを選択する。推定部132は、特定されたフロアのフロアIDが入力された場合は、当該フロアIDを選択する。推定部132は、選択されたフロアIDのフロアについて、電波強度の実測値が閾値より大きいBSSIDが抽出済であるか否かを判定する(ステップS1512)。
【0065】
推定部132は、電波強度の実測値が閾値より大きいBSSIDが抽出済でない場合には(ステップS1512:否定)、電波強度の実測値が所定の閾値より大きいBSSIDを抽出する。推定部132は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できたか否かを判定する(ステップS1513)。推定部132は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できた場合には(ステップS1513:肯定)、GMM記憶部123から当該フロアにおける抽出したBSSIDのGMMパラメータを読み込んで、パーティクルフィルタに設定する(ステップS1518)。
【0066】
推定部132は、電波強度の実測値が所定の閾値より大きいBSSIDを抽出できなかった場合には(ステップS1513:否定)、回数nが2より大きいか否かを判定する(ステップS1514)。推定部132は、回数nが2以下である場合は(ステップS1514:否定)、所定の閾値を10dBm下げ(ステップS1515)、回数nに1を足して(ステップS1516)、ステップS1512およびステップS1513に戻り、再度BSSIDを抽出する。推定部132は、回数nが2より大きい場合は(ステップS1514:肯定)、エラー処理を実行して処理を終了する(ステップS1517)。
【0067】
推定部132は、電波強度の実測値が閾値より大きいBSSIDを抽出していない場合には、ステップS1512〜ステップS1516の処理を繰り返し、所定の閾値を2回下げてBSSIDの抽出を試みる。このとき、推定部132は、下げた閾値より大きいBSSIDを抽出できた場合には(ステップS1512:肯定)、GMM記憶部123から当該フロアにおける抽出したBSSIDのGMMパラメータを読み込んで、パーティクルフィルタに設定する(ステップS1518)。
【0068】
推定部132は、パーティクルフィルタにGMMパラメータが設定できたか否かを判定する(ステップS1519)。推定部132は、パーティクルフィルタにGMMパラメータが設定できた場合には(ステップS1519:肯定)、パーティクルフィルタで端末装置10の位置を推定する(ステップS1520)。推定部132は、パーティクルフィルタにGMMパラメータが設定できない場合には(ステップS1519:否定)、ステップS1514へ進み、再度、BSSIDを抽出する閾値を下げて、電波強度の実測値が閾値より大きいBSSIDの抽出を試みる。
【0069】
推定部132は、パーティクルフィルタで端末装置10の位置を推定できたか否かを判定する(ステップS1521)。推定部132は、パーティクルフィルタで端末装置10の位置を推定できた場合には(ステップS1521:肯定)、位置推定処理を終了して元の処理に戻る。推定部132は、パーティクルフィルタで端末装置10の位置を推定できなかった場合には(ステップS1521:否定)、エラー処理を実行して処理を終了する(ステップS1517)。
【0070】
図12のステップS151の処理終了後、
図11の説明に戻って、推定部132は、推定した端末装置10の位置、特定したフロアのフロアID、および、フロア記憶部122から読み出した特定したフロアの図面等の情報を、位置情報として通信部110を介して端末装置10に送信する(ステップS15)。端末装置10の制御部12は、位置特定サーバ100から受信した位置情報を、例えば、地図上にマッピングして表示部13に表示する。
【0071】
続いて、ステップS13で固有のBSSIDがない場合に、ステップS16で受信可能なフロアのフロアIDおよび電波強度の実測値を推定部132に出力した後について説明する。推定部132は、可能性のあるフロアのフロアIDが入力された場合は、例えば、フロアIDの若い順に1つのフロアIDを選択する。推定部132は、選択されたフロアIDのフロアについて、位置推定処理を実行する(ステップS17)。なお、ステップS17の位置推定処理は、ステップS151の位置推定処理と同様であるので、その説明を省略する。
【0072】
推定部132は、可能性のあるフロアのフロアIDのうちの1つについて、位置推定処理が終了すると、推定した端末装置10の位置、および、推定に用いたフロアIDを算出部133に出力する。
【0073】
算出部133は、推定部132から推定した端末装置10の位置およびフロアIDが入力されると、算出処理を実行する(ステップS18)。ここで、
図14を用いて、算出処理を説明する。
図14は、実施形態に係る位置特定サーバによる算出処理を示すフローチャートである。
【0074】
算出部133は、フロアIDに基づき基地局記憶部121を参照し、フロアIDが示すフロアで受信可能なBSSID(基地局15)を抽出する(ステップS181)。算出部133は、抽出したBSSIDのGMMをGMM記憶部123から読み込んで(ステップS182)、端末装置10の推定位置におけるBSSIDの電波強度を算出し、電波強度の推定値とする(ステップS183)。
【0075】
算出部133は、判定部131から入力された電波強度の実測値と、端末装置10の推定位置におけるBSSIDごとの電波強度の推定値とから正規分布に基づいて、端末装置10が当該フロアに存在する確率を算出する(ステップS184)。
【0076】
図11の説明に戻って、算出部133は、可能性のあるフロアのフロアIDの全てについて、端末装置10の位置を推定したか否かを判定する(ステップS19)。算出部133は、可能性のあるフロアのフロアIDの全てについて、端末装置10の位置を推定していない場合には(ステップS19:否定)、ステップS17に戻り、次のフロアIDについて、ステップS17およびステップS18の処理を実行する。算出部133は、可能性のあるフロアのフロアIDの全てについて端末装置10の位置を推定した場合には(ステップS19:肯定)、各フロアのフロアIDと、算出した各フロアにおける端末装置10の推定位置および存在する確率とを対応付けて、特定部134に出力する。
【0077】
特定部134は、算出部133から各フロアにおける端末装置10の推定位置および存在する確率が入力されると、各フロアにおける端末装置10の存在する確率を比較する。特定部134は、比較したフロアのうち端末装置10の存在する確率が最も高いフロアを、端末装置10が存在するフロアであると特定する(ステップS20)。特定部134は、推定した端末装置10の位置、特定したフロアのフロアID、および、フロア記憶部122から読み出した特定したフロアの図面等の情報を、位置情報として通信部110を介して端末装置10に送信する(ステップS15)。端末装置10の制御部12は、位置特定サーバ100から受信した位置情報を、例えば、地図上にマッピングして表示部13に表示する。
【0078】
〔7.効果〕
このように、位置特定サーバ100は、各フロアにおける、端末装置が受信可能な基地局に対応する、電波強度を表すGMMを記憶部に記憶し、端末装置10が基地局15から受信した電波の電波強度の実測値を受信し、受信した電波強度の実測値とGMMとに基づいて、端末装置10の位置をフロアごとに推定する。また、位置特定サーバ100は、各フロアにおける、端末装置10の推定された位置での電波強度の推定値を、基地局15ごとに対応するGMMに基づいて算出し、算出された電波強度の推定値と、計測された電波強度の実測値とに基づいて、端末装置が存在するフロアを特定する。これにより、位置特定サーバ100は、小規模なデータベースで精度よくフロアを特定することができる。
【0079】
また、位置特定サーバ100は、算出された電波強度の推定値と、計測された電波強度の実測値との差を基地局15ごとに算出し、算出された電波強度の差に応じて、基地局15ごとに端末装置10が各フロアに存在する確率を算出し、算出された基地局15ごとの存在する確率に基づいて、端末装置10が存在するフロアを特定する。これにより、位置特定サーバ100は、端末装置10が各フロアに存在する確率に基づいて、精度よくフロアを特定することができる。
【0080】
また、位置特定サーバ100は、算出された電波強度の推定値と、計測された電波強度の実測値との差を基地局15ごとに算出し、算出された電波強度の差に応じて、各フロアにおける電波強度の差が算出された基地局15ごとの確率の平均値を、端末装置10が各フロアに存在する確率として算出し、算出された存在する確率に基づいて、端末装置10が存在するフロアを特定する。これにより、位置特定サーバ100は、基地局15ごとの端末装置10が各フロアに存在する確率の平均値を、端末装置10が各フロアに存在する確率とすることができ、精度よくフロアを特定することができる。
【0081】
また、位置特定サーバ100は、さらに、予め1のフロアで受信したフロア固有基地局(BSSID)と当該フロアとを対応付けたフロア固有基地局情報を記憶部に記憶し、さらに、判定部131は、受信したフロア固有基地局の数が最も多いフロアを、端末装置10が存在するフロアと判定する。また、位置特定サーバ100は、判定部131で端末装置10が存在するフロアを特定できない場合に、端末装置10が存在するフロアを特定する。これにより、位置特定サーバ100は、フロア固有基地局がある場合に、さらに軽い処理で精度よくフロアを特定することができる。
【0082】
また、位置特定サーバ100は、さらに、予め1のフロアで受信したフロア固有基地局(BSSID)と当該フロアとを対応付けたフロア固有基地局情報を記憶部に記憶し、さらに、判定部131は、受信したフロア固有基地局の数が最も多いフロアが複数存在する場合には、受信したフロア固有基地局の電波強度が最大のフロア固有基地局の属するフロアを、端末装置10が存在するフロアと判定する。また、位置特定サーバ100は、判定部131で端末装置10が存在するフロアを特定できない場合に、端末装置10が存在するフロアを特定する。これにより、位置特定サーバ100は、フロア固有基地局が複数ある場合であっても、軽い処理で精度よくフロアを特定することができる。
【0083】
〔8.その他〕
以上、本願の実施形態を図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0084】
また、上記実施形態では、算出部133で端末装置10が各フロアに存在する確率として、基地局15ごとの確率の平均値を用いたが、これに限定されない。算出部133は、例えば、基地局15ごとの確率の平均値の代わりに、基地局15ごとの確率の和を、各フロアのうち電波強度の差が算出された基地局15が最も多いフロアの基地局の数で割った値を、端末装置10が各フロアに存在する確率とすることができる。すなわち、位置特定サーバ100は、算出された電波強度の推定値と、計測された電波強度の実測値との差を基地局15ごとに算出し、算出された電波強度の差に応じて、各フロアにおける電波強度の差が算出された基地局15ごとの確率の和を、各フロアのうち電波強度の差が算出された基地局15が最も多いフロアの基地局15の数で割った値を、端末装置10が各フロアに存在する確率として算出し、算出された存在する確率に基づいて、端末装置10が存在するフロアを特定する。これにより、位置特定サーバ100は、電波強度の差が算出された基地局15が最も多いフロアに重みを付けて、精度よくフロアを特定することができる。
【0085】
また、上記実施形態では、判定部131で固有のBSSIDの中で、電波強度の実測値が最大のBSSIDが属するフロアを、端末装置10が存在するフロアと特定したが、これに限定されない。判定部131は、例えば、受信したフロア固有のBSSID(基地局15)の最大電波強度が、基地局記憶部121に記憶された対応するフロア固有のBSSIDの最大電波強度を超える場合には、当該フロア固有のBSSIDの属するフロアを特定する候補から除外することができる。すなわち、位置特定サーバ100は、記憶部に、さらに、予め1のフロアで受信したフロア固有基地局と、当該フロア、および、フロア固有基地局ごとの最大電波強度とを対応付けたフロア固有基地局情報を記憶し、さらに、判定部131は、受信したフロア固有基地局の最大電波強度が、記憶部に記憶された対応するフロア固有基地局の最大電波強度を超える場合には、当該フロア固有基地局の属するフロアを特定する候補から除外し、受信したフロア固有基地局の数が最も多いフロアを、端末装置10が存在するフロアと判定する。また、位置特定サーバ100は、判定部131で端末装置10が存在するフロアを特定できない場合に、端末装置10が存在するフロアを特定する。これにより、位置特定サーバ100は、事前に測定した電波強度を上回る基地局15が属するフロアを対象外とすることができ、軽い処理で精度よくフロアを特定することができる。
【0086】
また、上記実施形態では、電波強度の推定値と実測値とに基づいて、端末装置10が存在するフロアを特定したが、これに限定されない。例えば、端末装置10で測定した電波強度の実測値Rと、各フロアiでの最大電波強度Rimaxに基づいてフロアを特定するようにすることもできる。まず、位置特定システム1の管理者が、事前に各フロアiの測定点jごとに差dji=Rj−Rimaxを算出する。管理者は、差djiに基づいて、パラメータx1=差djiの最大値、パラメータx2=差djiが正となる個数(つまり、他のフロアであることを示す)、パラメータx3=差djiの平均、パラメータx4=差djiが正のものの平均を算出する。また、管理者は、各フロアiで測定されたBSSIDの個数、つまり、基地局15の数を取得する。次に、式(6)を用いて、多変量解析の判断分析により、係数k1〜k5を特定する。ここで、式(6)は、正しい場合には1となり、間違いの場合には0となる。次に、端末装置10が実際に測位する場合には、端末装置10で測定した電波強度の実測値を実測値Rとすると、位置特定サーバ100は、差di=R−Rimaxを算出してパラメータx1〜x5を算出し、式(6)が最大となるフロアを、端末装置10が存在するフロアとして特定できる。これにより、位置特定サーバ100は、各フロアの最大電波強度に基づいて、端末装置10が存在するフロアを特定できる。
【0087】
f(xi)=k1・x1+k2・x2+k3・x3+k4・x4+k5・x5 …(6)
【0088】
また、上述した位置特定サーバ100は、複数のサーバコンピュータで実現してもよいし、単一のサーバコンピュータで実現してもよい。また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティングなどで呼び出して実現するなど、構成は柔軟に変更できる。
【0089】
なお、上記実施形態における位置特定サーバ100は、例えば
図15に示すような構成のコンピュータ200によって実現される。
図15は、位置特定サーバの機能を実現するコンピュータの一例を示すハードウエア構成図である。コンピュータ200は、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、HDD(Hard Disk Drive)204、通信インターフェイス(I/F)205、入出力インターフェイス(I/F)206、およびメディアインターフェイス(I/F)207を備える。
【0090】
CPU201は、ROM203またはHDD204に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM203は、コンピュータ200の起動時にCPU201によって実行されるブートプログラムや、コンピュータ200のハードウエアに依存するプログラム等を格納する。
【0091】
HDD204は、CPU201によって実行されるプログラムおよび当該プログラムによって使用されるデータ等を格納する。通信インターフェイス205は、通信回線209を介して他の機器からデータを受信してCPU201へ送り、CPU201が生成したデータを、通信回線209を介して他の機器へ送信する。
【0092】
CPU201は、入出力インターフェイス206を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU201は、入出力インターフェイス206を介して、入力装置からデータを取得する。また、CPU201は、生成したデータを、入出力インターフェイス206を介して出力装置へ出力する。
【0093】
メディアインターフェイス207は、記録媒体208に格納されたプログラムまたはデータを読み取り、RAM202を介してCPU201に提供する。CPU201は、当該プログラムを、メディアインターフェイス207を介して記録媒体208からRAM202上にロードし、ロードしたプログラムを実行する。記録媒体208は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0094】
コンピュータ200が実施形態における位置特定サーバ100として機能する場合、コンピュータ200のCPU201は、RAM202上にロードされたプログラムを実行することにより、判定部131、推定部132、算出部133、および特定部134の各機能を実現する。また、HDD204には、基地局記憶部121、フロア記憶部122、GMM記憶部123内のデータが格納される。
【0095】
コンピュータ200のCPU201は、これらのプログラムを、記録媒体208から読み取って実行するが、他の例として、他の装置から、通信回線209を介してこれらのプログラムを取得してもよい。