(57)【要約】      （修正有）【課題】場所検知システムの運用者への負荷の増大、或いは、位置推定精度の低下を招くことなく場所モデルを更新可能とする場所モデル更新装置を提供する。【解決手段】端末装置からアップロードされたデータに基づいて場所モデルを更新する場所モデル更新装置であって、端末装置のある場所での各基地局からのデータの受信信号強度を示すヒストグラムを基に端末の位置を特定するための場所モデルを更新可能とする。【選択図】図９
2015068695.tif 000002
【特許請求の範囲】
【請求項１】
端末装置からアップロードされたデータに基づいて場所モデルを更新する場所モデル更新装置であって、
前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算部と、
各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成部と、
各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知部と、
各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算部と、
最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新部
を備えたことを特徴とする場所モデル更新装置。
【請求項２】
前記ヒストグラムは、前記端末装置のある場所での各基地局からのデータの観測欠損頻度及び観測頻度と、各基地局からのデータの観測頻度と各基地局からの信号受信強度を示すことを特徴とする、請求項１記載の場所モデル更新装置。
【請求項３】
前記ヒストグラム作成部は、一定値以上の数の最新チェックインデータのアップロードされると、初期ヒストグラムが前記記憶部に格納されているか否かを判定し、前記初期ヒストグラムが格納されていないと前記初期ヒストグラムを作成することを特徴とする、請求項１または２記載の場所モデル更新装置。
【請求項４】
前記場所検知部は、前記検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致すると、チェックインデータの正解数をカウントし、
前記第２の計算部は、前記最新ヒストグラムと前記前回ヒストグラムへの重みを、前記前回ヒストグラムを更新時に求めたチェックインデータの正解数及び前記場所検知部がカウントした正解数に基づいて、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均を計算し、
前記ヒストグラム更新部は、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均に基づいて前記前回ヒストグラムを更新し、前記今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新することを特徴とする、請求項１乃至３のいずれか１項記載の場所モデル更新装置。
【請求項５】
複数の基地局と通信可能な端末装置の位置を推定する位置推定方法であって、
前記端末装置が
前記端末装置内に格納された場所モデルに基づいて前記位置を推定し、
サーバからダウンロードされたデータに基づいて前記場所モデルを更新し、
前記サーバが
前記端末装置からアップロードされたデータに基づいて前記サーバ内の記憶部に格納された場所モデルを更新する場所モデル更新処理を行い、
前記場所モデル更新処理は、
前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、前記記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算手順と、
各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成手順と、
各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知手順と、
各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算手順と、
最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新手順
を含むことを特徴とする位置推定方法。
【請求項６】
端末装置からアップロードされたデータに基づいて場所モデルを更新する場所モデル更新処理をコンピュータに実行させるプログラムであって、
前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算手順と、
各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成手順と、
各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知手順と、
各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算手順と、
最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新手順
を前記コンピュータに実行させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、場所モデル更新装置、位置推定方法及びプログラムに関する。
【背景技術】
【０００２】
携帯端末が複数の基地局と無線で交信して、各基地局からの距離に応じて携帯端末における電波の受信信号強度が減衰することを利用して、携帯端末のある場所を推定する位置推定技術が提案されている。基地局は、例えばWiFi（Wireless Fidelity, 登録商標）を用いるアクセスポイント（AP: Access Point）である。
【０００３】
このような位置推定技術では、携帯端末が、事前に各場所で受信した基地局の識別子（ID: Identifier）と受信信号強度（RSSI: Received Signal Strength Indicator）を収集する。各場所で受信した複数の基地局のIDとRSSIの数値から、各場所について一意に求まるRSSI特徴ベクトルを作成して、場所毎に場所モデルを作成する。場所モデルとは、どの場所でどの基地局から、電波をどの程度の信号強度で受信するかを示すデータベースである。場所を推定する時には、携帯端末が基地局から受信した電波のRSSIを場所モデルと照合して、携帯端末のある場所と推定する。場所モデルは、一般的にはK近傍法（k-NN: k-Nearest Neighbor algorithm）、確率分布に基づく確率法、及びノンパラメトリック法及びパターンマッチング法などの方法で作成できる。
【０００４】
位置推定精度を向上するためには、多くの学習サンプルから学習して場所モデルを作成することが望ましい。しかし、多くの学習サンプルを採集するためには、場所検知システムの運用者が全ての対象場所に移動してRSSIサンプルを収集しなければならず、場所数が多くなると、RSSIサンプルを収集する手間、即ち、RSSIサンプルを収集する運用者への負荷が増大する。そこで、運用者への負荷を軽減するために、運用者が比較的少ない場所数から収集したRSSIサンプルに基づいて初期場所モデルを作成しておき、初期場所モデルを例えば定期的に更新することが考えられる。
【０００５】
しかし、上記の考えられる方法では、初期場所モデルは比較的少ない場所数から収集したRSSIサンプルに基づいて作成されているため、初期場所モデルに基づいて位置推定精度を向上することは難しい。また、初期場所モデルの更新に用いられるサンプルの信頼性を確保するためには、運用者が対象場所に移動してRSSIサンプルを収集しなければならず、場所数が多くなると、場所モデルの作成時の場合と同様に、RSSIサンプルを収集する運用者への負荷が大きくなる。さらに、運用者以外が収集したRSSIサンプルを初期場所モデルの更新に用いる場合、RSSIサンプルの信頼性は未知であるため、初期場所モデルが誤ったデータに基づいて更新されてしまう可能性がある。初期場所モデルを誤ったデータに基づいて更新してしまうと、位置推定精度が低下してしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−５８９２８号公報
【特許文献２】特開２００９−２７２７４２号公報
【特許文献３】特開２００９−５５１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、場所検知システムの運用者への負荷の増大、或いは、位置推定精度の低下を招くことなく場所モデルを更新することは難しい。
【０００８】
そこで、本発明は、場所検知システムの運用者への負荷の増大、或いは、位置推定精度の低下を招くことなく場所モデルを更新可能な場所モデル更新装置、位置推定方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一観点によれば、端末装置からアップロードされたデータに基づいて場所モデルを更新する場所モデル更新装置であって、前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算部と、各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成部と、各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知部と、各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算部と、最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新部を備えた場所モデル更新装置が提供される。
【発明の効果】
【００１０】
開示の場所モデル更新装置、位置推定方法及びプログラムによれば、場所検知システムの運用者への負荷の増大、或いは、位置推定精度の低下を招くことなく場所モデルを更新することができる。
【図面の簡単な説明】
【００１１】
【図１】一実施例における携帯端末の一例の構成を示すブロック図である。
【図２】複数のAPと携帯端末が存在し得る場所の関係の一例を説明する図である。
【図３】携帯端末の位置推定処理の一例を説明するフローチャートである。
【図４】全領域内AP情報リストのデータ構造の一例を示す図である。
【図５】場所モデルのデータ構造の一例を示す図である。
【図６】一実施例における位置推定システムの動作の一例を説明する図である。
【図７】位置推定システムのソフトウェア構成の一例を示す図である。
【図８】場所モデルの一例を説明する図である。
【図９】一実施例における場所モデル更新装置の一例を示すブロック図である。
【図１０】場所モデル更新装置の処理の一例を説明するフローチャートである。
【図１１】１回目のヒストグラム更新の例を説明する図である。
【図１２】最新ヒストグラムの一例を示す図である。
【図１３】正規化後の最新ヒストグラムの一例を示す図である。
【図１４】各チェックインデータに対する場所検知結果の一例を示す図である。
【図１５】AP1のヒストグラムの更新を説明する図である。
【図１６】AP2のヒストグラムの更新を説明する図である。
【図１７】１回目のヒストグラム更新後の結果を説明する図である。
【図１８】２回目のヒストグラムの更新の例を説明する図である。
【図１９】各チェックインデータに対する場所検知結果の一例を示す図である。
【図２０】AP1のヒストグラムの更新を説明する図である。
【図２１】AP2のヒストグラムの更新を説明する図である。
【図２２】２回目のヒストグラム更新後の結果を説明する図である。
【発明を実施するための形態】
【００１２】
開示の場所モデル更新装置、位置推定方法及びプログラムでは、端末装置からアップロードされたデータに基づいて場所モデルを更新する。前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、格納された前回ヒストグラムに基づいて、端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする。また、各最新チェックインデータについて計算されたヒストグラムへの投票数に基づき、最新ヒストグラムを生成し、各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と各最新チェックインデータに含まれるユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する。各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算し、最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして格納することで場所モデルを更新する。
【００１３】
以下に、開示の場所モデル更新装置、位置推定方法及びプログラムの各実施例を図面と共に説明する。
【実施例】
【００１４】
図１は、一実施例における携帯端末の一例の構成を示すブロック図である。図１に示す携帯端末１は、通信機能を備えた端末装置の一例であり、例えばスマートホンなどの携帯電話などであっても良い。携帯端末１は、ＣＰＵ（Central Processing Unit）１１、記憶部１２、入力部１３、表示部１４、及び通信部１５がバス１６で接続された構成を有するが、バス１６による接続に限定されるものではない。
【００１５】
ＣＰＵ１１は、コンピュータまたはプロセッサの一例である。ＣＰＵ１１は、携帯端末１全体の制御を司り、プログラムを実行することで後述する位置推定処理などを実行する。記憶部１２は、ＣＰＵ１１が実行するプログラム、ＣＰＵ１１が実行する演算の中間結果、ＣＰＵ１１が実行するプログラム及び演算で用いるデータなどを格納する。記憶部１２は、コンピュータ読み取り可能な記憶媒体で形成可能である。コンピュータ読み取り可能な記憶媒体は、半導体記憶装置であっても良い。また、コンピュータ読み取り可能な記憶媒体が磁気記録媒体、光記録媒体、光磁気記録媒体などの場合、記憶部１２はロードされた記録媒体に対して情報の読み書きを行うリーダ・ライタで形成可能である。
【００１６】
入力部１３は、キーボードなどで形成可能であり、例えば携帯端末１にコマンド、データなどを入力する際に操作される。表示部１４は、例えばＬＣＤ（Liquid Crystal Display）により形成可能であり、ガイダンス、メッセージなどを表示する。入力部１３及び表示部１４は、一体的に設けられていても良く、例えばタッチパネルなどで形成されていても良い。通信部１５は、外部装置（図示せず）と無線で通信可能な無線通信機能を備え、受信機、送信機、アンテナなどを含む周知の構成を有する。この例では、通信部１５は例えばWiFiを用いるアクセスポイント（AP: Access Point）と通信可能である。APは、基地局の一例である。
【００１７】
図２は、複数のAPと、携帯端末が存在し得る場所の関係の一例を説明する図である。図２に示す例では、複数のAP1〜AP5が場所名L1, L2の場所をカバーしており、ユーザが保持する携帯端末１は場所名L1の場所内に存在する。携帯端末１の受信信号強度（RSSI）は、AP1からがRSSI-1、AP2からがRSSI-2、AP3からがRSSI-3、AP4からがRSSI-4、及びAP5からがRSSI-5である。
【００１８】
図３は、携帯端末の位置推定処理の一例を説明するフローチャートである。図３に示す位置推定処理は、ＣＰＵ１１により実行可能である。図３において、ステップＳ１では、ＣＰＵ１１が通信部１５を介して各APからのWiFiデータ（以下、「WiFiスキャンデータ」とも言う）をスキャンして、各APのマックアドレス（MAC address: Media Access Control address）とRSSIを取得して、RSSI特徴ベクトルを作成すると共に、記憶部１２に格納された全域内AP情報リスト１００を参照して、全域内AP情報リスト１００に無い未学習のAPを除外する。
【００１９】
図４は、全領域内AP情報リストのデータ構造の一例を示す図である。図４に示す全域内AP情報リスト１００には、各APに便宜上割り当てられたAP番号１，２，...に対し、各APのMACアドレスM1, M2, ...及びAPのカバー場所リストが格納されている。APのカバー場所リストには、場所名L1, L2, L3, ...などが格納されている。
【００２０】
全域内AP情報リスト１００は、例えば以下に説明するように、WiFiスキャンデータから取得した情報に基づいて作成することができる。最初は、空の全域内AP情報リスト１００を用意する。その後、全域内AP情報リスト１００を検索して、WiFiスキャンデータのソースであるチェックインAPが新しければ、チェックインAPのMACアドレスを全域内AP情報リスト１００に追加する。同時に、このチェックインAPのカバー場所リストにチェックインした場所名を追加する。チェックインAPが全域内AP情報リスト１００の中に既に格納されている場合、このチェックインAPのカバー場所リストを検索して、チェックイン場所名が新しければ、チェックイン場所名をカバー場所リストに追加する。
【００２１】
ステップＳ２では、ＣＰＵ１１が図４の全域内AP情報リスト１００を参照して、検索したAPの全てのカバー場所を候補場所として、候補場所リストを作成し、記憶部１２に格納する。ステップＳ２では、例えば以下の処理を各APiに対して実行する。先ず、全域内AP情報リスト１００を参照してAPiのカバー場所リストを抽出する。次に、APiのカバー場所リストの全てのメンバ（即ち、場所）を候補場所リストへの追加する処理を行い、メンバ（即ち、場所）が候補場所リストへの追加済みであればこの処理はスキップする。次に、全APiに対する処理が完了したか否かを判定し、判定結果がＮＯであるとAPiのカバー場所リストを抽出する処理へ戻り、判定結果がＹＥＳであると処理は図３のステップＳ３へ進む。
【００２２】
図３において、ステップＳ３では、ＣＰＵ１１が候補場所リストの各メンバ（即ち、各場所）に対して、WiFiスキャンデータのソースであるAPの第１段階観測確率を計算する。図５は、場所モデルのデータ構造の一例を示す図である。図５に示す場所モデル２００には、場所番号、場所名、場所内で使用する第２段階観測確率の閾値、及び観測可能なAPリストが格納されている。観測可能なAPリストには、MACアドレスに対し、欠損確率、観測確率、APが観測された場合のRSSIの強度レベル別観測確率などが格納されている。図５は、例えばAPが観測された場合のRSSIの強度レベル数が４であり、観測可能なAPのリストの長さが例えば３の場合を示す。場所モデル２００は、例えば記憶部１２に格納される。なお、観測可能なAPリストは、場所モデル２００の確率情報部分を含むため、図３では「場所モデル（確率情報）」として示されている。一方、観測可能なAPリスト以外の部分は、場所モデル２００の各場所で使用する第２段階観測確率の閾値情報部分を含むため、図３では「場所モデル（閾値情報）」として示されている。
【００２３】
ステップＳ３では、ＣＰＵ１１が例えば以下の処理を各候補場所に対して、各APiに対して実行する。先ず、図５に示す場所モデル２００の候補場所の観測可能なAPリストを検索し、APiがこの観測可能なAPリストにあれば、事前に学習した観測確率を取得する。一方、APiがこの観測可能なAPリストの中に無ければ、事前に設定した例えば比較的小さな定数をAPiの観測確率とする。次に、APiの観測確率を記憶部１２に格納された観測確率の積に累積し、全APiに対する処理が完了したか否かを判定し、判定結果がＮＯであると処理は各APiに対する処理へ戻り、判定結果がＹＥＳであると図５に示す場所モデル２００の候補場所の観測可能なAPリストを抽出する。
【００２４】
次に、各観測可能なAPに対して以下の処理を実行する。先ず、WiFiスキャンデータ（AP1(MAC, RSSI), ...）を検索して、観測可能なAPが欠損であるか否かを判定し、観測可能なAPのMACアドレスがWiFiスキャンデータの中に無いと、欠損ではないと判定して欠損の判定を繰り返す。一方、欠損であると判定されると、欠損である観測可能なAPの欠損確率を場所モデル２００から抽出し、欠損確率を記憶部１２に格納された欠損確率の積に累積する。観測可能な全APに対する処理が完了すると、記憶部１２に格納された観測確率の積と欠損確率の積の値の積を計算する。計算した値の積は、候補場所の第１段階観測確率として、候補場所とペアリングして記憶部１２に格納する。全候補場所に対する処理が完了すると、処理は図３のステップＳ４へ進む。
【００２５】
図３において、ステップＳ４では、ＣＰＵ１１が第１段階観測確率の下位の候補場所を切り捨て、候補場所を絞り込む。ステップＳ５では、ＣＰＵ１１が絞り込んだ候補場所に対して、RSSI特徴ベクトルに基づき第２段階観測確率を計算する。第２段階観測確率計算処理は、ステップＳ３で計算した第１段階観測確率によってステップＳ４において絞り込んだ候補場所リストを対象とする。
【００２６】
ステップＳ５では、ＣＰＵ１１が例えば以下の処理を各候補場所に対して、各APiに対して実行する。先ず、場所モデル２００を参照して、APiのMACアドレスが候補場所の観測可能なAPリストにあれば、APiのRSSIから強度レベルを計算して、APi が観測された場合のRSSIの強度レベル別観測確率を場所モデル２００から取得する。一方、APiのMACアドレスが候補場所の観測可能なAPリストに無ければ、事前に設定した例えば比較的小さな固定値をAPiが観測された場合のRSSIの強度レベル別観測確率とする。次に、APiが観測された場合のRSSIの強度レベル別観測確率を、記憶部１２に格納された強度レベル別観測確率の積へ積算し、全APiに対する処理が完了したか否かを判定し、判定結果がＮＯであると処理は各APiに対する処理へ戻り、判定結果がＹＥＳであるとステップＳ３で計算した欠損確率の積を、強度レベル別観測確率の積と積算し、記憶部１２に格納する。次に、計算した積を第２段階観測確率と定義して、候補場所とペアリングして記憶部１２に格納する。全候補場所に対する処理が終了すると、処理は図３のステップＳ６へ進む。
【００２７】
図３において、ステップＳ６では、ＣＰＵ１１が第２段階観測確率が最大である候補場所を抽出（または、選択）する。ステップＳ７では、ＣＰＵ１１が図５に示す場所モデル２００を参照して、第２段階観測確率が最大である候補場所の閾値を用いて、第２段階観測確率が閾値未満であれば携帯端末１が最終候補場所におらず携帯端末１の場所は不明であり、第２段階観測確率が閾値以上であれば携帯端末１が最終候補場所にあると判定する。ステップＳ８では、ＣＰＵ１１が携帯端末１のある場所、または、携帯端末１の場所がわからないという判定結果を出力し、位置推定処理は終了する。ステップＳ８で出力される判定結果は、例えば携帯端末１の位置を利用したサービスを提供するアプリケーションなどへ出力しても良い。
【００２８】
ＣＰＵ１１は、位置推定方法の手順であるステップＳ１〜Ｓ５の処理を実行することで、複数の基地局からの受信信号に基づき推定した携帯端末の候補位置を、ある基地局からの受信信号のデータ欠損に基づき絞り込む絞り込み手段として機能しても良い。また、ＣＰＵ１１は、位置推定方法の手順であるステップＳ６，Ｓ７の処理を実行することで、絞り込んだ候補位置の中から受信信号強度の観測確率に基づき携帯端末の位置を推定する推定手段として機能しても良い。
【００２９】
次に、一実施例における位置推定システムの一例を、図６と共に説明する。図６は、一実施例における位置推定システムの動作の一例を説明する図である。図６に示す位置推定システム２０は、携帯端末１と、携帯端末１と無線通信を行えるサーバ２１を有する。サーバ２１は、携帯端末１からチェックインしたデータ（以下、「チェックインデータ」とも言う）を用いて、場所モデル２００を学習（以下、「更新」と言う）する機能を有する。携帯端末１が、サーバ２１からダウロードした場所モデル２００に基づいて、新たに観測したRSSI特徴ベクトルに基づいて位置推定処理を行う。なお、サーバ２１は、プロセッサ及び記憶部を備えた周知の構成を有し、例えば図１に示す携帯端末１と同様のハードウェア構成を有しても良いため、サーバ２１のハードウェア構成の図示及び説明は省略する。この例では、サーバ２１は、場所データ更新装置の一例として機能する。
【００３０】
図６において、ステップＳＴ１では、携帯端末１のプロセッサ（例えば、ＣＰＵ１１）がWiFiスキャンデータから各APのMACアドレスとRSSIを取得してをチェックインデータを取得する。ステップＳＴ２では、携帯端末１のプロセッサがチェックインデータをサーバ２１へ送信する。
【００３１】
ステップＳＴ２１では、サーバ２１のプロセッサ（図１のＣＰＵ１１に相当）が携帯端末１からのチェックインデータを受信してサーバ２１の記憶部内のチェックインデータファイル３００に保存する。チェックインデータをチェックインデータファイル３００に保存してから一定期間が経過すると、ステップＳＴ２２では、サーバ２１のプロセッサがチェックインデータファイル３００をサーバ２１の記憶部（図１の記憶部１２に相当）から読み込み、場所モデル２００の更新処理を実行する。
【００３２】
場所モデル２００の更新処理には、場所モデル２００の確率情報部分の更新、場所モデル２００の閾値情報部分の更新などを含んでも良い。確率情報部分の更新では、チェックインデータを用いて場所モデル２００の確率情報部分である場所モデル（確率情報）を更新する。その後、第２段階観測確率の計算において、場所モデル（確率情報）に基づいて、チェックインデータに対して、場所推定の第２段階の処理を行う。場所推定の第２段階の処理で得られた第２段階観測確率とチェックイン場所の場所名は、第２段階観測確率の閾値、即ち、各チェックイン場所における閾値の計算に用いられ、場所モデル２００の閾値情報部分である場所モデル（閾値情報）を更新する。このように、場所モデルの確率情報部分と閾値情報部分が更新された後、場所モデル２００の更新が完了する。
【００３３】
ステップＳＴ２３では、サーバ２１のプロセッサが更新された場所モデル２００のファイル（以下、「場所モデルファイル」とも言う）２００Ａを生成し、サーバ２１の記憶部に格納する。ステップＳＴ２４では、サーバ２１のプロセッサが場所モデルファイル２００Ａを読み込み携帯端末１へ送信する。
【００３４】
ステップＳＴ３では、携帯端末１のプロセッサがサーバ２１からの場所モデルファイル２００Ａを受信して携帯端末１の記憶部１２に格納する。つまり、携帯端末１は、サーバ２１側で新しい場所モデルファイル２００Ａが生成される度に、場所モデルファイル２００Ａを記憶部１２に格納して場所モデルを更新する。ステップＳＴ４では、携帯端末１のプロセッサが記憶部１２から場所モデルファイル２００Ａを読み込み、場所モデル２００を用いて、チェックインデータRSSI特徴ベクトルに基づいて位置推定処理を行い、携帯端末１の場所の判定結果を出力する。
【００３５】
図７は、位置推定システムのソフトウェア構成の一例を示す図である。図７において、携帯端末１は、制御アプリケーション（以下、単に「アプリ」と言う）３１、HTML5+Javascript（登録商標）アプリ３２、アプリ実行環境３３、部品プラグイン３４、部品マネージャ３５、場所検知機能の一例である場所検知部品３６、学習ファイル３７−１を含むファイルシステム３７、及びWiFiマネージャ３８を有する。場所検知部品３６は、WiFiスキャンアプリ４１、WiFiデータ収集場所名登録アプリ４２、JNI（Java Native Interface）４３、メモリデータベース（ＤＢ: Data-Base）４３−１を含む場所判定ライブラリ４４、及び学習ファイル取得クライアント４５を有する。部品マネージャ３５からは、例えば測位開始、測位停止、データ収集アプリ実行などの指示が発行されて場所検知部品３６に入力される。また、場所検知部品３６からは、例えば場所変化イベントが発行されて部品マネージャ３５に入力される。
【００３６】
一方、サーバ２１は、例えばTomcat（登録商標）などのサーブレットエンジン５１、ファイルシステム５２、及びメモリＤＢ５３−１を含む場所学習アプリ５３を有する。サーブレットエンジン（Servlet Engine）５１はWiFiデータ収集サーバアプリ６１を有する。このWiFiデータ収集サーバアプリ６１は、WiFi情報保存サーブレット６２、データ取得サーブレット６３、及び学習ファイル取得サーブレット６４を含む。ファイルシステム５２は、WiFi情報７１、場所リスト７２、及び学習ファイル７３を含む。
【００３７】
この例では、携帯端末１を保持しているユーザの場所への入退イベントに応答して携帯端末１のアプリケーションを制御する。携帯端末１の場所検知部品３６は、ユーザの場所への入退イベントを検出して、部品マネージャ３５及び部品プラグイン３４を介してアプリ実行環境３３に通知する。アプリ実行環境３３は、ユーザがチェックインした場所のみで使用するアプリをサーバ２１から携帯端末１にプッシュ（PUSH）してもらったり、ユーザがチェックアウトした際に、アプリを削除したりする機能を有する。
【００３８】
場所モデル作成に必要なWiFiサンプルデータの収集は、以下のように行える。場所検知部品３６は、ユーザの場所への入退を検出するために場所モデルが必要である。場所モデルは、その場所で観測されるWiFiのMACアドレスとそのRSSIを含むWiFi情報に基づいて作成される。この例では、場所モデルを作成するためのWiFiサンプルデータの収集をできるだけ簡単にするため、先ず、場所検知システムの運用者が検知の必要な全ての場所でWiFiサンプルデータを事前に収集し、初期場所モデルを作成する。その後、初期場所モデルを各ユーザの携帯端末１にロードして運用を開始する。
【００３９】
ユーザがある場所に入ると場所検知部品３６がどの場所に入ったかを判定し、アプリに対して入イベントを発行する。具体的には、WiFiマネージャ３８の管理下のWiFiスキャンアプリ４１がその場所で観測されるWiFiのMACアドレスとそのRSSIを含むWiFi情報を取得してRSSI特徴ベクトルを作成すると共に、JNI４３を介して場所判定ライブラリ４４のメモリＤＢ４４−１に格納された全域内AP情報リストを参照することで、現在の場所を推定する。JNI４３は、Javaで書かれたプログラムと例えばC++言語で書かれた実際のＣＰＵ１１上で動作するコードとを連携するインタフェースを形成する。全域内AP情報リストは、ファイルシステム３７の学習ファイル３７−１に含まれる場所モデルから場所判定ライブラリ４４のメモリＤＢ４４−１に読み込み可能である。
【００４０】
アプリ実行環境３３は、入イベントに応じてアプリを制御する。例えば誤った場所を判定した場合、ユーザはWiFiデータ収集場所登録アプリ４２を立ち上げて正しい場所を登録する。WiFiデータ収集場所登録アプリ４２は例えば候補場所を表示部１４に表示してユーザに入力部１３から候補場所の選択または新規入力を促す。候補場所の選択または新規入力があると、WiFiスキャンアプリ４１のスキャンにより取得された場所のWiFi情報がサーバ２１に無線でアップロードされる。ここで、サーバ２１にアップロードした場所名に紐付けられたWiFiのMACアドレスとRSSIのペアのデータを「チェックインデータ」と呼ぶ。WiFiデータ収集場所登録アプリ４２は、サーバ２１から場所リストを取得できる。また、学習ファイル取得クライアント４５は、サーバ２１から学習ファイルを取得できる。
【００４１】
図７のシステムが多くのユーザに使われると、毎日多くのチェックインデータが１以上の携帯端末１からサーバ２１にアップロードされる。サーバ２１では、WiFiデータ収集サーバアプリ６１のWiFi情報保存サーブレット６２がWiFi情報をファイルシステム５２にWiFi情報７１として保存する。WiFi情報７１は、場所学習アプリ５３によりメモリＤＢ５３−１に読み込み可能である。また、WiFiデータ収集サーバアプリ６１のデータ取得サーブレット６３が、WiFi情報保存サーブレット６２により更新可能であるファイルシステム５２の場所リスト７２を取得する。場所学習アプリ５３は、メモリＤＢ５３−１に蓄積されたチェックインデータを学習サンプルとして、登録された全ての場所について夫々の場所モデルを定期的に更新してメモリＤＢ５３−１に格納する。場所学習アプリ５３のメモリＤＢ５３−１に格納された場所モデルから生成された学習ファイルは、ファイルシステム５２に学習ファイル７３として格納される。この学習ファイル７３は、WiFiデータ収集サーバアプリ６１の学習ファイル取得サーブレット６４により読み込み可能である。
【００４２】
サーバ２１における学習段階では、携帯端末１が各場所で集めたチェックインデータから、各APのRSSIの観測頻度、及びそのAPが欠損する頻度をカウントする。カウント完了後、カウントされた頻度をその場所でのチェックインデータ数で除算して正規化し、その場所におけるRSSIの観測確率、及びAPの観測欠損確率として場所モデルに保存する。場所検知の段階では、観測されたWiFi情報と場所モデルに基づき、確率的手法を用いて登録された全ての場所候補について尤もらしさを計算する。このように計算した尤もらしさを「場所尤度（または、場所の尤度）」と定義し、場所尤度が最大で、且つ、ある閾値以上のものをユーザが今いる「場所」として判定する。このように、場所モデルは、各場所での各APの観測及び欠損確率分布、及び各場所での各APのRSSIレベルの観測確率分布を含む、確率分布情報を保持している。
【００４３】
図８は場所モデルの一例を説明する図であり、AP観測及び欠損確率、及びRSSIレベル別観測確率を示す。図８のＨＴＧ１中、（ａ）は場所名L1の場所で収集した２２個の学習サンプル（チェックインデータ）の内、AP1の観測を欠損したサンプルが５個、観測したサンプルが１７個ある例を示す欠損及び観測ヒストグラムである。この場合、場所名L1の場所におけるAP1の欠損確率は5/22=0.227、観測確率は17/22=0.773である。さらに、ＨＴＧ１中、（ｂ）に示すRSSIヒストグラムのように、AP1を観測した１７個サンプルの内、RSSIレベル０からレベル３のサンプル数が夫々４個、６個、５個及び２個である。従って、場所名L1の場所でAP1が観測された場合、RSSIレベル０からレベル３の観測確率が夫々、4/17=0.235、6/17=0.353、5/17=0.294、2/17=0.118である。同様に、ＨＴＧ１中、（ｃ）に示す欠損及び観測ヒストグラムのように、場所名L1の場所におけるAP2の欠損確率は2/22=0.091、観測確率は20/22=0.909である。また、ＨＴＧ１中、（ｄ）に示すRSSIヒストグラムのように、場所名L1の場所でAP2が観測された場合、RSSIレベル１からレベル５の観測確率は夫々、2/20=0.100、5/20=0.250、2/20=0.100、8/20=0.400、3/20=0.150である。
【００４４】
図８のＨＴＧ２中、（ａ）は場所名L2の場所で収集した２０個の学習サンプル（チェックインデータ）の内、AP1の観測を欠損したサンプルが２個、観測したサンプルが１８個ある例を示す。この場合、場所名L1の場所におけるAP1の欠損確率は2/20=0.100、観測確率は18/20=0.900である。さらに、ＨＴＧ２中、（ｂ）に示すように、AP1を観測した１８個サンプルの内、RSSIレベル１からレベル５のサンプル数が夫々１個、２個、３個、５個及び７個である。同様に、ＨＴＧ２中、（ｃ）に示すように、場所名L2の場所におけるAP2の欠損確率は5/20=0.250、観測確率は15/20=0.750である。また、ＨＴＧ２中、（ｄ）に示すように、場所名L2の場所でAP2が観測された場合、RSSIレベル０からレベル５の観測確率は夫々、4/15=0.267、2/15=0.133、3/15=0.200、3/15=0.200、2/15=0.133、1/15=0.067である。
【００４５】
図８のＨＴＧ１，ＨＴＧ１'において、（ａ），（ｃ）の縦軸はデータの観測欠損頻度及び観測頻度、横軸はAP1, AP2の観測欠損状態または観測状態を示し（ｂ），（ｄ）の縦軸は観測頻度、横軸はAPI. AP2のRSSIレベルを示す。
【００４６】
候補場所の尤度は、（観測RSSIレベルの確率）×（欠損APの確率）から計算できる。例えばAP1をスキャンしたRSSIがレベル１の場合、場所名L1の場所の尤度は（AP1のRSSIレベルが１である確率（6/17））×（AP2の欠損確率（2/22））＝0.032となる。また、例えばAP1をスキャンしたRSSIレベルが１であり、且つ、AP2をスキャンしたRSSIレベルが４の場合、場所名L1の場所の尤度は（AP1のRSSIが１である確率（6/17））×（AP2のRSSIが４である確率（8/20））＝0.141となる。
【００４７】
位置推定精度を向上するためには、場所モデルは、多くの学習サンプルから学習することが望ましい。しかし、多くの学習サンプルを採集するためには、場所検知システムの運用者が全ての対象場所に移動してRSSIサンプルを収集しなければならず、場所数が多くなると、RSSIサンプルを収集する運用者への負荷が大きくなる。そこで、運用者が一定の場所数から収集したRSSIサンプルに基づいて初期場所モデルを作成しておき、場所モデルの更新時または場所検知の運用中に、携帯端末からのサンプルに基づいて初期場所モデルを更新することで、位置推定精度の向上を図ることが考えられる。しかし、上記の考えられる方法では、初期場所モデルの更新に用いられる、携帯端末からのサンプルは、携帯端末のユーザの入力に基づくものであるため、サンプルの信頼性は未知である。例えば、ユーザが誤った場所名などのデータを携帯端末に入力してしまうと、初期場所モデルが誤ったデータに基づいて更新されてしまう。また、場所モデルを誤ったデータに基づいて更新してしまうと、位置推定精度が低下してしまう。
【００４８】
そこで、一実施例では、誤ったチェックインデータの影響を少なくして、最新チェックインデータのみで、これまでに学習した場所モデルを自動的に更新する。具体的に、先ず最新チェックインデータを用いてヒストグラム生成処理で最新ヒストグラムを生成する。次に、ヒストグラム更新処理で、最新ヒストグラムと前回ヒストグラムを重み付きで結合して、今回ヒストグラムを生成する。今回ヒストグラムは、次回のヒストグラム更新時に前回ヒストグラムとなる。以下に説明するように、ヒストグラム更新処理では、誤ったチェックインデータの影響を２段階で軽減する。
【００４９】
図９は、一実施例における場所モデル更新装置の一例を示すブロック図である。図９に示す場所モデル更新装置８０は、確からしさ計算部８１、最新ヒストグラム作成部８２、場所検知部８３、更新重み計算部８４、及びヒストグラム更新部８５を有する。確からしさ計算部８１及び最新ヒストグラム作成部８２は、後述する第１段階の処理を実行し、場所検知部８３、更新重み計算部８４、及びヒストグラム更新部８５は、後述する第２段階の処理を実行する。なお、場所モデル更新装置８０の機能は、例えばサーバ２１のプロセッサにより実行可能であり、例えば図６のステップＳＴ２２，ＳＴ２３の処理に相当する処理を実行する。
【００５０】
第１段階では、以下のように最新ヒストグラムを生成する。確からしさ計算部８１は、各最新チェックインデータについて、サーバ２１の記憶部に格納された前回ヒストグラムに基づいて、ユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさをヒストグラムへの投票数とする。また、最新ヒストグラム作成部８２は、各最新チェックインデータについて計算された確からしさ、即ち、ヒストグラムへの投票数に基づき、最新ヒストグラムを生成する。ここで、最新チェックインデータとは、前回のヒストグラム更新から今回のヒストグラム更新の間に、サーバ２１にアップロードされたチェックインデータを言う。
【００５１】
【数１】
2015068695.tif 000003
【００５２】
【数２】
2015068695.tif 000004
【００５３】
【数３】
2015068695.tif 000005
【００５４】
第２段階では、以下のようにヒストグラムを更新する。場所検知部８３は、各最新チェックインデータに含まれるRSSIデータに基づき、前回のヒストグラムを用いて場所検知を行い、検知した場所名と各最新チェックインデータに含まれるユーザが付けた場所名が一致するか否かに応じて、チェックインデータが正しいか否かを判断する。更新重み計算部８４は、各最新チェックインデータ中、正しいチェックインデータの割合を求め、この今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの重みと前回ヒストグラムへの重みとして計算する。ヒストグラム更新部８５は、例えば最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとしてサーバ２１の記憶部に格納することで、サーバ２１の記憶部に格納された場所モデルを更新する。
【００５５】
【数４】
2015068695.tif 000006
【００５６】
【数５】
2015068695.tif 000007
【００５７】
【数６】
2015068695.tif 000008
【００５８】
図１０は、図９に示す場所モデル更新装置８０の処理の一例を説明するフローチャートである。この例では、図１０の処理が例えばサーバ２１のプロセッサがサーバ２１の記憶に格納されたプログラムを実行することにより実行される。図１０において、ステップＳ１１〜Ｓ１７の処理は上記第１段階の処理に相当し、ステップＳ１８〜Ｓ２６の処理は上記第２段階の処理に相当する。
【００５９】
図１０において、ステップＳ１１では、プロセッサが新しいチェックインデータの数が十分であるか否かを判定し、判定結果がＹＥＳになると処理はステップＳ１２へ進む。つまり、サーバ２１側にアップロードした新しいチェックインデータの数は一定値より大きいかをチェックし、一定数以下であれば一定数になるまで待つ。ステップＳ１２では、プロセッサが初期ヒストグラムがサーバ２１の記憶部に格納されているか否かを判定し、判定結果がＮＯであると処理はステップＳ１３へ進む。ステップＳ１３では、プロセッサが上記の如き手順で初期ヒストグラムを作成する。
【００６０】
一方、ステップＳ１２の判定結果がＹＥＳであると、ステップＳ１４では、プロセッサがサーバ２１の記憶部に格納された最新ヒストグラムをクリアして最新ヒストグラムを格納する領域を用意し、ステップＳ１５では、プロセッサがチェックインデータを１つ抽出する。ステップＳ１６では、プロセッサが前回のヒストグラム（１回目の更新の場合、初期ヒストグラム）を用いて、抽出したチェックインデータに含まれるRSSIデータが、確かにチェックインデータに含まれる場所名の場所でアップロードされたものである確からしさを計算し、ステップＳ１７では、プロセッサが計算されたチェックインデータの確からしさを当該チェックインデータの投票数として最新ヒストグラムへ投票する。ステップＳ１８では、プロセッサが未投票チェックインデータがあるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ１５へ戻る。
【００６１】
ステップＳ１８の判定結果がＮＯであると、ステップＳ１９では、プロセッサがチェックインデータを１つ抽出する。ステップＳ２０では、プロセッサがチェックインデータに含まれるRSSIデータに基づき、これまでのヒストグラムを用いて場所検知を行う。ステップＳ２１では、プロセッサが場所の検知結果がチェックインデータに付けた場所名と一致するか否かを判定し、判定結果がＹＥＳであると処理はステップＳ２２へ進み、判定結果がＮＯであると処理はステップＳ２３へ進む。ステップＳ２２では、プロセッサがチェックインデータの正解数（または、正解割合）をカウントするカウンタを１だけインクリメントし、処理はステップＳ２３へ進む。
【００６２】
ステップＳ２３では、プロセッサが場所が未検知であるチェックインデータがあるか否かを判定し、判定結果がＹＥＳであると処理はステップＳ１９へ戻る。ステップＳ２３の判定結果がＮＯであると、ステップＳ２４では、プロセッサが新旧ヒストグラム、即ち、最新ヒストグラムと前回ヒストグラムへの重みを、前回ヒストグラムを更新時に求めたチェックインデータの正解数（または、正解割合）及びステップＳ２２でカウントした正解数（または、正解割合）に基づいて、新旧ヒストグラムへの重みを計算する。ステップＳ２５では、プロセッサが新旧ヒストグラムの重み付き平均、即ち、最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均を計算し、ステップＳ２６ではプロセッサが新旧ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとしてサーバ２１の記憶部に格納することで、場所モデルを更新し、処理は終了する。
【００６３】
このように、本実施例では、前回ヒストグラムに基づいて、各チェックインデータの確からしさを求め、その確からしさに応じて、各チェックインデータの持つ投票数を決定し、各チェックインデータが投票することによって、最新ヒストグラムを作成する。また、前回ヒストグラムを用いた場所検知の結果に基づいて、各最新チェックインデータ中、正しいチェックインデータの割合を求め、この割合と前回の割合を、夫々に最新ヒストグラムと前回ヒストグラムへの重みとして、ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新する。
【００６４】
誤ったチェックインデータは、投票数が少ないため、最新ヒストグラム作成への影響を軽減できる。また、前回ヒストグラムと最新ヒストグラムへの重みが、正しいチェックインデータの割合に基づいて計算されるため、正しいチェックインデータの割合の多い方が重視され、誤ったチェックインデータの影響を軽減できる。さらに、上記の如く作成されるヒストグラムは、例えば日常生活の中、屋内の家具の移動などで生じたRSSIレベルの緩やかな変化に追従することができる。
【００６５】
次に、場所モデル更新装置８０が実行する処理の具体例について図１１以降と共に説明する。
【００６６】
図１１は、１回目のヒストグラム更新の例を説明する図である。図１１は、初回ヒストグラムが既に作成されており、初回ヒストグラム作成後の１回目のヒストグラム更新までの間に３つのチェックインデータがある場合の、１回目のヒストグラム更新の例を示す。１回のヒストグラムの更新が行われる更新時間は、例えば２４時間である。図１１中、図８と同一部分には同一符号を付し、その説明は省略する。
【００６７】
図１１において、初回ヒストグラム作成時には、管理者による初期チェックインデータに基づいて、ＨＴＧ１で示す場所名L1の場所での初期ヒストグラムが既に作成されているので、ユーザによるチェックインデータに基づいて１回目ヒストグラム更新が行われる。この例では、３つのユーザチェックインデータＣ１〜Ｃ３がサーバ２１にアップロードされる。各ユーザチェックインデータＣ１〜Ｃ３は、RSSIデータと、ユーザが付けた場所名を含む。図１１に示す例では、例えばチェックインデータＣ１のRSSIデータは、AP1のRSSIであるRSSI(AP1)がレベル３であり、AP2のRSSIが欠損である。また、チェックインデータＣ２のRSSIデータは、AP1が欠損であり、AP2のRSSIであるRSSI(AP2)がレベル２である。チェックインデータＣ３のRSSIデータは、RSSI(AP1)がレベル０であり、RSSI(AP2)がレベル４である。この例では、各チェックインデータＣ１〜Ｃ３のユーザが付けた場所名はL1である。
【００６８】
第１段階においてチェックインデータの確からしさを計算する場合、過去（この例では初回）のヒストグラムを参照して、チェックインデータ中の欠損したAPの確率と観測したAPのRSSIの確率を掛け合わせた積から確からしさを求める。この結果、チェックインデータＣ１のRSSIデータは、RSSI(AP1)=レベル３、AP2=欠損であり、ユーザが付けた場所名=L1であるため、確からしさ=RSSI(AP1)の確率(0.12)×AP2欠損確率(0.09)=0.011である。同様に、チェックインデータＣ２のRSSIデータは、AP1=欠損、RSSI(AP2)=レベル２であり、ユーザが付けた場所名=L1であるため、確からしさ=0.057である。さらに、チェックインデータＣ３のRSSIデータはRSSI(AP1)=レベル０、RSSI(AP2)=レベル４であり、ユーザが付けた場所名=L1であるため、確からしさ=0.096である。
【００６９】
第１段階において最新ヒストグラムを生成する場合、各チェックインデータの確からしさを、各チェックインデータの持つ投票数とする。つまり、確からしさの大きいチェックインデータは、投票数を多く持つ。ここで、投票数は0〜1.0の間の数値である。そして、各チェックインデータが最新ヒストグラムへ投票すると、観測したAP1, AP2からのRSSIレベルのビンへ票数を足し合わせる。これにより、場所名L1の場所における最新ヒストグラムは、図１２に示すようになる。
【００７０】
図１２は、チェックインデータＣ１のRSSIデータがRSSI(AP1)=レベル３、AP2=欠損であり、確からしさ（投票数）=0.011であり、チェックインデータＣ２のRSSIデータがAP1=欠損、RSSI(AP2)=レベル２であり、確からしさ（投票数）=0.057であり、チェックインデータＣ３のRSSIデータがRSSI(AP1)=レベル０、RSSI(AP2)=レベル４であり、確からしさ（投票数）=0.096である場合の場所名L1の場所における最新ヒストグラムの一例を示す図である。図１２中、（ａ）はAP1の欠損及び観測ヒストグラム、（ｂ）はAP1のRSSIヒストグラム、（ｃ）はAP2の欠損及び観測ヒストグラム、（ｄ）はAP2のRSSIヒストグラムを示す。図１２において、チェックインデータＣ１の投票数は右下がりのハッチングで、チェックインデータＣ２の投票数は左下がりのハッチングで、チェックインデータＣ３の投票数は縦縞のハッチングで示す。
【００７１】
第１段階において最新ヒストグラムを正規化する場合、例えば欠損及び観測ヒストグラムにおいて欠損と観測のビンの和が1.0になるように正規化すると共に、RSSIヒストグラムにおいて全てのレベル（この例ではレベル０〜５）のビンの和が1.0になるように正規化する。これにより、正規化後の場所名L1の場所における最新ヒストグラムは、図１３に示すようになる。図１３は、場所名L1の場所における正規化後の最新ヒストグラムの一例を示す図である。図１３中、（ａ）はAP1の欠損及び観測ヒストグラム、（ｂ）はAP1のRSSIヒストグラム、（ｃ）はAP2の欠損及び観測ヒストグラム、（ｄ）はAP2のRSSIヒストグラムを示す。
【００７２】
第２段階においてヒストグラムを更新する場合、前回ヒストグラムと最新ヒストグラムの重み付き平均の計算で使用する重みを求める。上記の如く、チェックインデータは、RSSIデータと、ユーザが付けた場所名を含む。また、場所検知機能により、場所名L1, L2, L3, ...の各場所の前回ヒストグラムに基づいて、RSSIデータから場所検知を行う。場所検知機能により検知した場所の場所名とユーザが付けた場所名が一致する場合、誤りのないチェックインデータとしてカウントし、誤りのないチェックインデータの数の割合（即ち、正しいチェックインデータの割合）を計算する。今回の正しいチェックインデータの割合は、誤りのないチェックインデータの総数をチェックインデータの総数で除算することで求められる。
【００７３】
前回ヒストグラムと最新ヒストグラムの重み付きで平均する時に、正しいチェックインデータの割合の多い方の影響を強くする。これにより、最新ヒストグラムと前回ヒストグラムを重み付きで結合して今回ヒストグラムを生成する際には、以下の式から今回ヒストグラムを生成することができる。
【００７４】
（今回ヒストグラム）＝｛（前回の正しいチェックインデータの割合）×（前回ヒストグラム）＋（今回の正しいチェックインデータの割合）×（最新ヒストグラム）｝／｛（前回の正しいチェックインデータの割合）＋（今回の正しいチェックインデータの割合）｝
第２段階において、ヒストグラム更新の重み計算は、図１４に示す如き各チェックインデータに対する場所検知結果に基づき、正しいチェックインデータの割合を計算することで計算できる。図１４は、各チェックインデータＣ１〜Ｃ３に対する場所検知結果の一例を示す図である。図１４において、「場所L1」は場所名L1の場所を意味し、「場所L2」は場所名L2の場所を意味する。また、正しいチェックインデータは○印で示し、正しくないチェックインデータは×印で示す。この例では、今回の正しいチェックインデータの割合は、誤りのないチェックインデータの総数をチェックインデータの総数で除算することで、2/3=0.67である。ヒストグラム更新の重みは、初回ヒストグラムを作成するのに用いた初期チェックインデータが全て正しいと仮定して、前回ヒストグラムへの重みを1.0に設定し、最新ヒストグラムへの重みは2/3=0.67に設定する。
【００７５】
従って、第２段階において、場所名L1の場所におけるAP1のヒストグラムは図１５に示すように更新され、場所名L1の場所におけるAP2のヒストグラムは図１６に示すように更新される。
【００７６】
図１５は、AP1のヒストグラムの更新を説明する図である。図１５中、図８と同一部分には同一符号を付し、その説明は省略する。図１５に示す例では、前回ヒストグラムへの重みは1.0であり、最新ヒストグラムへの重みは0.67であるため、（0.23×1.0+0.35×0.67)/(1.0+0.67)=0.28から、AP1の今回ヒストグラムにおいて、欠損及び観測ヒストグラム及びRSSIヒストグラムは夫々（ａ），（ｂ）に示すように更新される。
【００７７】
図１６は、AP2のヒストグラムの更新を説明する図である。図１６中、図８と同一部分には同一符号を付し、その説明は省略する。図１６に示す例では、前回ヒストグラムへの重みは1.0であり、最新ヒストグラムへの重みは0.67であるため、（0.09×1.0+0.07×0.67)/(1.0+0.67)=0.08から、AP2の今回ヒストグラムにおいて、欠損及び観測ヒストグラム及びRSSIヒストグラムは夫々（ａ），（ｂ）に示すように更新される。
【００７８】
従って、図１１に示す１回目のヒストグラムの更新後、図１７に示すように、場所名L1におけるヒストグラムＨＴＧ１'は図１５及び図１６の右側に示す如きヒストグラムとなる。図１７は、１回目のヒストグラム更新後の結果を説明する図である。図１７中、図１１と同一部分には同一符号を付し、その説明は省略する。
【００７９】
図１８は、２回目のヒストグラム更新の例を説明する図である。図１８は、１回目ヒストグラム更新後、２回目のヒストグラム更新までの間に６つのチェックインデータがある場合の、２回目のヒストグラム更新の例を示す。図１８中、図８及び図１１と同一部分には同一符号を付し、その説明は省略する。
【００８０】
図１８において、２回目ヒストグラム更新時には、ユーザチェックインデータに基づいて、ＨＴＧ１'で示す場所名L1の場所での１回目ヒストグラムが既に更新されているので、ユーザによるチェックインデータに基づいて２回目ヒストグラム更新が行われる。この例では、６つのユーザチェックインデータＣ４〜Ｃ９がサーバ２１にアップロードされる。各ユーザチェックインデータＣ４〜Ｃ９は、RSSIデータと、ユーザが付けた場所名を含む。図１８に示す例では、例えばチェックインデータＣ４のRSSIデータは、AP1のRSSIであるRSSI(AP1)がレベル１であり、AP2のRSSIであるRSSI(AP2)が欠損である。チェックインデータＣ５のRSSIデータは、AP1のRSSIであるRSSI(AP1)がレベル０であり、AP2のRSSIであるRSSI(AP2)がレベル１である。チェックインデータＣ６のRSSIデータは、AP1のRSSIであるRSSI(AP1)がレベル１であり、AP2のRSSIであるRSSI(AP2)がレベル５である。チェックインデータＣ７のRSSIデータは、AP1のRSSIであるRSSI(AP1)がレベル０であり、AP2のRSSIであるRSSI(AP2)がレベル２である。チェックインデータＣ８のRSSIデータは、AP1のRSSIであるRSSI(AP1)が欠損であり、AP2のRSSIであるRSSI(AP2)がレベル１である。チェックインデータＣ９のRSSIデータは、AP1のRSSIであるRSSI(AP1)が欠損であり、RSSI(AP2)がレベル３である。この例では、各チェックインデータＣ４〜Ｃ９のユーザが付けた場所名はL1である。
【００８１】
第１段階におけるチェックインデータの確からしさの計算、最新ヒストグラムの生成、及び最新ヒストグラムを正規化は、上記の１回目のヒストグラム更新時と同様に行うことができるので、その図示と説明は省略する。また、第２段階におけるヒストグラムを更新及びヒストグラム更新の重み計算も、上記の１回目のヒストグラム更新時と同様に行うことができる。
【００８２】
第２段階において、ヒストグラム更新の重み計算は、図１９に示す如き各チェックインデータに対する場所検知結果に基づき、正しいチェックインデータの割合を計算することで計算できる。図１９は、各チェックインデータＣ４〜Ｃ９に対する場所検知結果の一例を示す図である。前回ヒストグラムへの重みは2/3=0.67に設定し、最新ヒストグラムへの重みは5/6=0.83に設定する。
【００８３】
第２段階において、場所名L1の場所におけるAP1のヒストグラムは図２０に示すように更新され、場所名L1の場所におけるAP2のヒストグラムは図２１に示すように更新される。
【００８４】
図２０は、AP1のヒストグラムの更新を説明する図である。図２０中、図１５と同一部分には同一符号を付し、その説明は省略する。図２０に示す例では、前回ヒストグラムへの重みは0.67であり、最新ヒストグラムへの重みは0.83であるため、（0.28×0.67+0.33×0.83)/(0.67+0.83)=0.31から、AP1の今回ヒストグラムにおいて、欠損及び観測ヒストグラム及びRSSIヒストグラムは夫々（ａ），（ｂ）に示すように更新される。
【００８５】
図２１は、AP2のヒストグラムの更新を説明する図である。図２１中、図１５と同一部分には同一符号を付し、その説明は省略する。図２１に示す例では、前回ヒストグラムへの重みは0.67であり、最新ヒストグラムへの重みは0.83であるため、（0.08×0.67+0.07×0.83)/(0.67+0.83)=0.07から、AP2の今回ヒストグラムにおいて、欠損及び観測ヒストグラム及びRSSIヒストグラムは夫々（ａ），（ｂ）に示すように更新される。
【００８６】
従って、図１８に示す２回目のヒストグラムの更新後、図２２に示すように、場所名L1におけるヒストグラムＨＴＧ１"は図２０及び図２１の右側に示す如きヒストグラムとなる。図２２は、２回目のヒストグラム更新後の結果を説明する図である。図２２中、図１７と同一部分には同一符号を付し、その説明は省略する。
【００８７】
３回目以降のヒストグラムの更新は、上記２回目のヒストグラム更新と同様に行える。このようにして、サーバ２１にアップロードされたユーザチェックインデータに基づいて、場所モデルをサーバ２１において更新することができる。
【００８８】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
端末装置からアップロードされたデータに基づいて場所モデルを更新する場所モデル更新装置であって、
前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算部と、
各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成部と、
各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知部と、
各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算部と、
最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新部
を備えたことを特徴とする場所モデル更新装置。
（付記２）
前記ヒストグラムは、前記端末装置のある場所での各基地局からのデータの観測欠損頻度及び観測頻度と、各基地局からのデータの観測頻度と各基地局からの信号受信強度を示すことを特徴とする、付記１記載の場所モデル更新装置。
（付記３）
前記ヒストグラム作成部は、一定値以上の数の最新チェックインデータのアップロードされると、初期ヒストグラムが前記記憶部に格納されているか否かを判定し、前記初期ヒストグラムが格納されていないと前記初期ヒストグラムを作成することを特徴とする、付記１または２記載の場所モデル更新装置。
（付記４）
前記場所検知部は、前記検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致すると、チェックインデータの正解数をカウントし、
前記第２の計算部は、前記最新ヒストグラムと前記前回ヒストグラムへの重みを、前記前回ヒストグラムを更新時に求めたチェックインデータの正解数及び前記場所検知部がカウントした正解数に基づいて、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均を計算し、
前記ヒストグラム更新部は、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均に基づいて前記前回ヒストグラムを更新し、前記今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新することを特徴とする、付記１乃至３のいずれか１項記載の場所モデル更新装置。
（付記５）
複数の基地局と通信可能な端末装置の位置を推定する位置推定方法であって、
前記端末装置が
前記端末装置内に格納された場所モデルに基づいて前記位置を推定し、
サーバからダウンロードされたデータに基づいて前記場所モデルを更新し、
前記サーバが
前記端末装置からアップロードされたデータに基づいて前記サーバ内の記憶部に格納された場所モデルを更新する場所モデル更新処理を行い、
前記場所モデル更新処理は、
前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、前記記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算手順と、
各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成手順と、
各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知手順と、
各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算手順と、
最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新手順
を含むことを特徴とする位置推定方法。
（付記６）
前記ヒストグラムは、前記端末装置のある場所での各基地局からのデータの観測欠損頻度及び観測頻度と、各基地局からのデータの観測頻度と各基地局からの信号受信強度を示すことを特徴とする、付記５記載の位置推定方法。
（付記７）
前記ヒストグラム作成手順は、一定値以上の数の最新チェックインデータのアップロードされると、初期ヒストグラムが前記記憶部に格納されているか否かを判定し、前記初期ヒストグラムが格納されていないと前記初期ヒストグラムを作成することを特徴とする、付記５または６記載の位置推定方法。
（付記８）
前記場所検知手順は、前記検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致すると、チェックインデータの正解数をカウントし、
前記第２の計算手順は、前記最新ヒストグラムと前記前回ヒストグラムへの重みを、前記前回ヒストグラムを更新時に求めたチェックインデータの正解数及び前記場所検知部がカウントした正解数に基づいて、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均を計算し、
前記ヒストグラム更新手順は、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均に基づいて前記前回ヒストグラムを更新し、前記今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新することを特徴とする、付記５乃至７のいずれか１項記載の位置推定方法。
（付記９）
端末装置からアップロードされたデータに基づいて場所モデルを更新する場所モデル更新処理をコンピュータに実行させるプログラムであって、
前回のヒストグラム更新から今回のヒストグラム更新の間にアップロードされた各最新チェックインデータについて、記憶部に格納された前回ヒストグラムに基づいて、前記端末装置のユーザが付けた場所名の場所で観測されるデータとしての確からしさを計算し、計算された確からしさを前記端末装置のある場所での各基地局からのデータの受信状態を示すヒストグラムへの投票数とする第１の計算手順と、
各最新チェックインデータについて計算された前記ヒストグラムへの投票数に基づき、最新ヒストグラムを生成するヒストグラム作成手順と、
各最新チェックインデータに含まれる受信信号強度に基づいて前回のヒストグラムを用いて場所検知を行い、検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致するか否かに応じてチェックインデータが正しいか否かを判断する場所検知手順と、
各最新チェックインデータ中、正しいチェックインデータの割合を求め、今回求めた正しいチェックインデータの割合と前回求めた正しいチェックインデータの割合を、夫々最新ヒストグラムへの更新重みと前回ヒストグラムへの更新重みとして計算する第２の計算手順と、
最新ヒストグラムの重み付き平均と前回ヒストグラムの重み付き平均に基づいて前回ヒストグラムを更新し、今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新するヒストグラム更新手順
を前記コンピュータに実行させることを特徴とする、プログラム。
（付記１０）
前記ヒストグラムは、前記端末装置のある場所での各基地局からのデータの観測欠損頻度及び観測頻度と、各基地局からのデータの観測頻度と各基地局からの信号受信強度を示すことを特徴とする、付記９記載のプログラム。
（付記１１）
前記ヒストグラム作成手順は、一定値以上の数の最新チェックインデータのアップロードされると、初期ヒストグラムが前記記憶部に格納されているか否かを判定し、前記初期ヒストグラムが格納されていないと前記初期ヒストグラムを作成することを特徴とする、付記９または１０記載のプログラム。
（付記１２）
前記場所検知手順は、前記検知した場所名と前記各最新チェックインデータに含まれる前記ユーザが付けた場所名が一致すると、チェックインデータの正解数をカウントし、
前記第２の計算手順は、前記最新ヒストグラムと前記前回ヒストグラムへの重みを、前記前回ヒストグラムを更新時に求めたチェックインデータの正解数及び前記場所検知部がカウントした正解数に基づいて、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均を計算し、
前記ヒストグラム更新手順は、前記最新ヒストグラムの重み付き平均と前記前回ヒストグラムの重み付き平均に基づいて前記前回ヒストグラムを更新し、前記今回ヒストグラムとして前記記憶部に格納することで前記場所モデルを更新することを特徴とする、付記９乃至１１のいずれか１項記載のプログラム。
【００８９】
以上、開示の場所モデル更新装置、位置推定方法及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
【符号の説明】
【００９０】
１      携帯端末
１１      ＣＰＵ
１２      記憶部
１３      入力部
１４      表示部
１５      通信部
２１      サーバ
５１      サーブレットエンジン
５２      ファイルシステム
５３      場所学習アプリ
８０      場所モデル更新装置
８１      確からしさ計算部
８２      最新ヒストグラム作成部
８３      場所検知部
８４      更新重み計算部
８５      ヒストグラム更新部
【図１】
2015068695.tif 000009
【図２】
2015068695.tif 000010
【図３】
2015068695.tif 000011
【図４】
2015068695.tif 000012
【図５】
2015068695.tif 000013
【図６】
2015068695.tif 000014
【図７】
2015068695.tif 000015
【図８】
2015068695.tif 000016
【図９】
2015068695.tif 000017
【図１０】
2015068695.tif 000018
【図１１】
2015068695.tif 000019
【図１２】
2015068695.tif 000020
【図１３】
2015068695.tif 000021
【図１４】
2015068695.tif 000022
【図１５】
2015068695.tif 000023
【図１６】
2015068695.tif 000024
【図１７】
2015068695.tif 000025
【図１８】
2015068695.tif 000026
【図１９】
2015068695.tif 000027
【図２０】
2015068695.tif 000028
【図２１】
2015068695.tif 000029
【図２２】
2015068695.tif 000030