(57)【要約】【課題】モバイルデバイスが位置する領域を決定する。【解決手段】ビルの内部の複数の異なるポイントで取得されるベースステーション信号の強度測定値を受信する。前記ベースステーション信号は前記ビルの内部の複数の無線送信のベースステーションから受信される。前記ビルは複数の領域に分割される。前記領域の各々の内部に前記異なるポイントの少なくとも１つがある。前記領域の各々のための領域分類子をトレーニングする。前記領域分類子の各々は、前記領域の各々の内部にテストポイントがある可能性の推定を算出するように構成される。前記算出は、ベースステーションから受信される信号のテストポイントで取得される信号の強度測定値間の差である入力を使用する。【選択図】図１
2014157151.tif 000002
【特許請求の範囲】
【請求項１】
１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される、ビルの内部のモバイルデバイスの位置を識別する方法であって、
前記プロセッサが、
前記ビルの内部の複数の異なるポイントで取得されるベースステーション信号の強度測定値を受信し、
前記ベースステーション信号は前記ビルの内部の複数の無線送信のベースステーションから受信され、
前記ビルは複数の領域に分割され、
前記領域の各々の内部に前記異なるポイントの少なくとも１つがあり、
前記領域の各々のための領域分類子をトレーニングし、
前記領域分類子の各々は、前記領域の各々の内部にテストポイントがある可能性の推定を算出するように構成され、
前記算出は、ベースステーションから受信される信号のテストポイントで取得される信号の強度測定値間の差である入力を使用する、
方法。
【請求項２】
前記領域分類子の１つもしくは複数は、Ｆ（Ｘ）＝Σｍｗｍｈｍ（Ｘ）によって可能性の推定を算出するように構成され、
ｍは前記ベースステーションのペアのセットの各々に亘り、
ｗｍの各々は非負実数であり、
Ｘはテスト信号の強度測定値のセットを示す変数であり、
ｈｍ（Ｘ）の各々は対応するベースステーションのペアからの信号強度の差が対応する閾値θｍより大きいか否かによって決定される１もしくは０である、
請求項１に記載の方法。
【請求項３】
前記トレーニングは、前記トレーニングのセットの誤差の総数を最小化するパラメータを繰り返し選択することを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記ベースステーションの少なくともサブセットから信号の強度測定値を受信し、
前記強度測定値は前記ビル内の未知ポイントでモバイルデバイスによって取得され、
受信した信号の強度測定値のペアを選択し、前記ペアの各々について、一方の信号の強度測定値から他方の信号の強度測定値を差し引き、テスト信号の強度差セットを生成し、
前記テスト信号の強度差セットに前記領域分類子の各々を適用することにより、前記領域の各々に前記モバイルデバイスがある可能性を推定し、
前記モバイルデバイスが他の領域のいずれかにあるよりも第１領域にある可能性が高いことを決定し、
前記モバイルデバイスの位置を識別するために探索しているユーザに当該決定を送信する、
請求項１〜３のいずれか１項に記載の方法。
【請求項５】
異なる領域のための２つ以上の領域分類子が同様の高い可能性を示す推定を生成した場合、未知ポイントにおける追加の信号の強度測定値を要求し、
前記未知ポイントで取得された前記追加の信号の強度測定値を受信し、
前記追加の信号の強度測定値を用いて、前記領域分類子に再度適用する、
請求項４に記載の方法。
【請求項６】
領域の各々は、ユニークな塊領域であり、塊領域の各々は、複数の領域を含み、
塊領域の各々についての塊分類子の各々をトレーニングし、
塊分類子の各々は、テストポイントが前記塊領域の内部にある可能性を示す推定を算出するように構成されており、
前記算出は、前記ベースステーションから受信された信号について、前記テストポイントで取得された信号の強度測定値の間の差である入力を使用する、
請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記ベースステーションの少なくともサブセットから信号の強度測定値を受信し、
前記強度測定値は前記ビル内の未知ポイントでモバイルデバイスによって取得され、
受信した信号の強度測定値のペアを選択し、前記ペアの各々について、一方の信号の強度測定値から他方の信号の強度測定値を差し引き、テスト信号の強度差セットを生成し、
前記テスト信号の強度差セットに前記塊分類子の各々を適用することにより、前記塊領域の各々に前記モバイルデバイスがある可能性を推定し、
前記モバイルデバイスが、他の塊領域のいずれかにあるよりも第１塊領域にある可能性がより高いことを確認し、
前記第１塊領域を含む前記領域に対応する前記領域分類子の各々を前記テスト信号の強度差セットに適用することにより、前記第１塊領域の前記領域の各々に前記モバイルデバイスがある可能性を推定し、
前記モバイルデバイスが前記第１塊領域の他の領域のいずれかにあるよりも第１領域にある可能性がより高いことを決定し、
当該決定を、前記モバイルデバイスの位置を識別するために探索しているユーザに送信する、
請求項６に記載の方法。
【請求項８】
モバイルデバイスが位置するビル内の領域を決定するシステムであって、
１つもしくは複数のプロセッサと、
メモリと、
前記メモリに記憶されている１つもしくは複数のプログラムと、
を備え、
前記１つもしくは複数のプログラムは、
前記ビル内の複数の異なるポイントで取得されたベースステーション信号の強度測定値を受信し、
前記ベースステーション信号は前記ビル内の複数の無線送信のベースステーションから受信され、
前記ビルは複数の領域に分割され、
前記異なるポイントの少なくとも１つのポイントが前記領域の各々にあり、
前記領域の各々について領域分類子の各々をトレーニングし、
前記領域分類子の各々は、前記領域の各々の中にテストポイントがある可能性を示す推定を算出するように構成されており、
前記算出は、前記ベースステーションから受信された信号について、前記テストポイントで取得された信号の強度測定値間の差である入力を使用する、
命令を含む、
システム。
【請求項９】
ビル内の複数の異なるポイントで取得されたベースステーション信号の強度測定値を受信し、
前記ベースステーション信号は、前記ビル内の複数の無線送信ベースステーションから受信され、
前記ビルは複数の領域に分割され、
前記異なるポイントの少なくとも１つが前記領域の各々にあり、
前記領域の各々の領域分類子の各々をトレーニングし、
前記領域分類子の各々は前記領域の各々の内部にテストポイントがある可能性の推定を算出するように構成されており、
前記算出は、前記ベースステーションから受信された信号について、前記テストポイントで取得された信号の強度測定値間の差である入力を使用する、
ことをコンピュータに実行させるためのプログラム。
【請求項１０】
１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される、ビル内でモバイルデバイスの位置を識別する方法であって、
前記プロセッサが、
前記ビル内の複数の異なるポイントで取得されるベースステーション信号の強度測定値を受信し、
前記ベースステーション信号は前記ビル内の複数の無線送信ベースステーションから受信され、
前記ビルは複数の領域に分割され、
前記異なるポイントの少なくとも１つが前記領域の各々にあり、
前記ベースステーション識別子の順序付けられたシーケンスを含む各々のポイントについて既知の信号強度ベクトルの各々を構築し、
前記既知の信号強度ベクトルの前記ベースステーション識別子はポイント毎に計測されるように、対応するベースステーションの前記信号の強度測定値によって順序付けられ、
前記ベースステーションの少なくともサブセットで信号の強度測定値を受信し、
前記強度測定値は前記ビル内の未知ポイントでモバイルデバイスによって取得され、
前記ベースステーション識別子の順序付けられたシーケンスを含むテスト信号強度ベクトルを構築し、
前記ベースステーション識別子は対応する信号の強度測定値によって順序付けられ、
前記未知の信号強度ベクトルの少なくともサブセットで前記テスト信号強度ベクトル間の編集距離を算出し、
信号強度ベクトルのペア間の編集距離は、
前記ペアの一方の信号強度ベクトルを他方の信号強度ベクトルに変換するために必要とされる最小操作の最小数を含み、
ｋ個の既知信号強度ベクトルを選択し、
ｋ個の既知信号強度ベクトルの、テスト信号強度ベクトルからの対応する信号距離は算出した編集距離で最小であり、
ｋは正の整数であり、
ｋ個の既知信号強度ベクトルに対応する領域に基づいて前記モバイルデバイスが位置する可能性を有する領域を決定し、
前記モバイルデバイスの位置を識別するために探索するユーザに当該判定を送信する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実装は、ＷｉＦｉ信号強度の組み合わせを用いた特定の部屋におけるモバイルデバイスの位置の判定に関する。
【背景技術】
【０００２】
コラボレーションの成功のために、効率的なコミュニケーションは不可欠である。アイディアを育てるため、効率的なやり取りを促す人対人の複雑な関係を改善するため、などのために、コミュニケーションは共通の地場をコラボレーター達に構築させる。現代的な作業場所において、コラボレーションの成功は、生産性、創造性及び作業者の全体的な満足感を改善することにつながる。効率的なコミュニケーションの重要な態様は、どこにコラボレーターが位置しているかについての情報を含む、進行中作業のグループアウェアネスを有することである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７，９３３，６１２号明細書
【非特許文献】
【０００４】
【非特許文献１】ピンリ、「ロバストLogitBoost及び適応ベースクラスLogitBoost（ＡＢＣ）」、２０１２年３月１５日
【発明の概要】
【発明が解決しようとする課題】
【０００５】
グループアウェアネスを育成することは、今日の現代的な作業場所において、さらに、困難なチャレンジとなってきている。作業者はフレキシブルなスケジュールを有することが可能であるし（例えば、平日の一般的な作業時間である９時〜６時以外の時間帯に働く、異なるタイムゾーンで働く、など）、遠隔地で働くことも可能である（例えば、分散された位置にある作業場所、クライアントのサイト、家庭、公共の場、など）。作業者が同じ建物の中にいる場合であっても、作業者は指定されている作業場所にいないかもしれない。したがって、コラボレーターのグループアウェアネスを判定することは困難であり、時間を必要とし、エラーを生じやすい。すなわち、上記問題を有さない、人の位置を判定するシステム及び方法を提供することが所望されている。
【課題を解決するための手段】
【０００６】
上記問題点に対処するために、実装のいくつかは、人の位置を決定するシステム、命令を含むコンピュータ可読記憶媒体、プログラム及び方法を提供する。これらの実装において、ビル内の部屋もしくは領域が識別され、部屋もしくは領域の各々について、検出されたＷｉＦｉ信号の信号強度を示す測定値が取得される。
【０００７】
実装のいくつかにおいて、ＷｉＦｉ信号強度は順序付けられ、領域もしくは部屋の各々について「指紋（固有の識別）」を形成する。その後、モバイルデバイスが未知の位置にある場合、モバイルデバイスはＷｉＦｉ信号の信号強度を測定することができ、同様に、信号強度によって信号を順序付ける。信号強度のテストシーケンスは、どの指紋がもっともよく適合するかを決定するために、既知の信号強度指紋と比較される。実装のいくつかは、最も適切な適合を決定するために、「編集距離」を使用する。「編集距離」は、テストシーケンスに既知の指紋を変換するために必要とされる最小操作の数である。
【０００８】
代替的に、実装のいくつかは、領域分類子をトレーニングするために、測定された信号強度を使用する。領域分類子の各々は、その入力が未知テストポイントにおける信号強度であり、出力が分類子に対応する領域もしくは部屋に未知テストポイントがある可能性の推定である関数である。未知テストポイントに分類子の各々を適用することにより、もっとも高い可能性を有する領域もしくは部屋が、テストポイントの位置として決定される。実装のいくつかにおいて、同様の可能性を有する領域もしくは部屋が２つ以上ある場合、モバイルデバイスによって新しいテストデータが収集されてもよく、この場合、最初に可能性を推定した際にもっとも高い可能性を争った分類子が新しいテストデータに適用され得る。
【０００９】
多くの領域もしくは部屋による実装のいくつかにおいて、分類子は分類の２つ以上のレベルを有する階層である。第１レベルは、モバイルデバイスが位置する一般的な領域（例えば、ビルの何階であるか、もしくは、フロアのどの四分の一区であるか）を決定するために「粗い」分類を適用する。分類子の第２レベルは、第１レベルによって識別される領域の内部にある部屋もしくは領域だけを含む。例えば、１００部屋を有するビルの大きなフロアにおいて、部屋は、北、南、東、西に分類され得る。第１レベルの分類子が西領域にモバイルデバイスがあることを決定すると、西領域の部屋分類子だけが第２レベルで適用される。実装のいくつかにおいて、３つ以上の分類子のレベルがある（例えば、レベル１はビルを識別し、レベル２は指定されたビル内のフロアを識別し、レベル３は識別されたフロア内の領域を識別し、第４レベルは実際の部屋を決定する。）。
【００１０】
実装のいくつかは、人が組織の他の１つもしくは複数の位置に加入すること、及び見ることを許容するクライアントアプリケーションを提供する。実装のいくつかにおいて、クライアントアプリケーションのユーザインターフェイスは、現在の位置を含む人の存在状態を示す、組織の人についてのタイルを表示する。人の各々のタイルの各々をクリックすることにより（もしくは、タイルの上でホバリングすることにより）、人の各々についてのその他の情報をクライアントアプリケーションに表示する。例えば、追加情報は、連絡情報、現在の存在状態、ユーザ供給状態メッセージなどを含むことができる。クライアントアプリケーションは、人の存在状態を監視するために、データフィードを許容することについて、人に同意させるためのユーザインターフェイスも含む。これにより、人は、収集するデータタイプを制御することができる。
【００１１】
実装のいくつかによれば、ビル内のモバイルデバイスの位置を識別する方法は、１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される。サーバは、ビルの複数の異なるポイントで取得されるベースステーション信号強度測定値を受信する。信号は、ビルの複数の無線伝送ベースステーションから受信される。ビルは、複数の領域に分割され、異なるポイントの少なくとも１つが領域の各々にある。方法は、領域の各々の領域分類子の各々をトレーニングすることを含む。領域分類子の各々は、領域の各々の内部にテストポイントがある可能性の推定を算出する。算出は、ベースステーションから受信した信号について、テストポイントで取得された信号強度測定値間の差である入力を使用する。
【００１２】
いくつかの代替的な実装によれば、ビルのモバイルデバイスの位置を識別する方法は、１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される。サーバは、ビルの複数の異なるポイントで取得されるベースステーション信号強度測定値を受信する。信号は、ビルの複数の無線伝送ベースステーションから受信される。ビルは複数の領域に分割され、異なるポイントの少なくとも１つが領域の各々にある。サーバは、ポイントの各々の既知信号強度ベクトルの各々を構築する。ベクトルはベースステーション識別子の順序付けられたシーケンスを含み、既知信号強度ベクトルの各々のベースステーション識別子は、ポイントの各々で測定されたように、対応するベースステーションの信号強度によって順序付けられる。その後、サーバは、ベースステーションの少なくともサブセットから信号強度測定値を受信する。測定値は、ビルの未知ポイントでモバイルデバイスによって取得される。サーバは、ベースステーション識別子の順序付けられたシーケンスを含むテスト信号強度ベクトルを構築する。ベースステーション識別子は、対応する信号強度によって順序付けられている。サーバは、次に、テスト信号強度ベクトルと、既知信号強度ベクトルのサブセットとの間の編集距離を算出する。信号強度ベクトルのペア間の編集距離は、ペアの一方の信号強度ベクトルをペアの他方の信号強度ベクトルに変換するために必要とされる最小操作の最小数である。実装のいくつかにおいて、最小操作は、単一のベースステーション識別子を挿入し、単一のベースステーション識別子を除去し、単一のベースステーション識別子を異なるベースステーション識別子と置換し、２つの隣接するベースステーション識別子を入れ替える。実装のいくつかにおいて、テスト信号強度ベクトルと既知信号強度ベクトルとの間の編集距離は、テスト信号強度ベクトル及び既知信号強度ベクトルの間のユークリッド距離に係数を乗じたものである。サーバは、次に、テスト信号強度ベクトルからの対応する編集距離は算出した編集距離が最小からｋ個までの既知信号強度ベクトルを選択する。ｋは正の整数である。実装のいくつかにおいて、ｋ＝１もしくはｋ＝５である。サーバは、ｋ個の既知信号強度ベクトルに対応する領域に基づいてモバイルデバイスが位置する可能性を有する領域を決定し、モバイルデバイスの位置を識別するために探索しているユーザに当該決定を送信する。
【００１３】
本発明の第１の態様は、１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される、ビルの内部のモバイルデバイスの位置を識別する方法であって、前記プロセッサが、前記ビルの内部の複数の異なるポイントで取得されるベースステーション信号の強度測定値を受信し、前記ベースステーション信号は前記ビルの内部の複数の無線送信のベースステーションから受信され、前記ビルは複数の領域に分割され、前記領域の各々の内部に前記異なるポイントの少なくとも１つがあり、前記領域の各々のための領域分類子をトレーニングし、前記領域分類子の各々は、前記領域の各々の内部にテストポイントがある可能性の推定を算出するように構成され、前記算出は、ベースステーションから受信される信号のテストポイントで取得される信号の強度測定値間の差である入力を使用する。
【００１４】
本発明の第２の態様は、第１の態様の方法であって、前記領域分類子の１つもしくは複数は、Ｆ（Ｘ）＝Σｍｗｍｈｍ（Ｘ）によって可能性の推定を算出するように構成され、
ｍは前記ベースステーションのペアのセットの各々に亘り、
ｗｍの各々は非負実数であり、
Ｘはテスト信号の強度測定値のセットを示す変数であり、
ｈｍ（Ｘ）の各々は対応するベースステーションのペアからの信号強度の差が対応する閾値θｍより大きいか否かによって決定される１もしくは０である。
【００１５】
本発明の第３の態様は、第１または第２の態様の方法であって、前記トレーニングは、前記トレーニングのセットの誤差の総数を最小化するパラメータを繰り返し選択することを含む。
【００１６】
本発明の第４の態様は、第１〜第３のいずれかの態様の方法であって、前記ベースステーションの少なくともサブセットから信号の強度測定値を受信し、前記強度測定値は前記ビル内の未知ポイントでモバイルデバイスによって取得され、受信した信号の強度測定値のペアを選択し、前記ペアの各々について、一方の信号の強度測定値から他方の信号の強度測定値を差し引き、テスト信号の強度差セットを生成し、前記テスト信号の強度差セットに前記領域分類子の各々を適用することにより、前記領域の各々に前記モバイルデバイスがある可能性を推定し、前記モバイルデバイスが他の領域のいずれかにあるよりも第１領域にある可能性が高いことを決定し、前記モバイルデバイスの位置を識別するために探索しているユーザに当該決定を送信する。
【００１７】
本発明の第５の態様は、第４の態様の方法であって、異なる領域のための２つ以上の領域分類子が同様の高い可能性を示す推定を生成した場合、未知ポイントにおける追加の信号の強度測定値を要求し、前記未知ポイントで取得された前記追加の信号の強度測定値を受信し、前記追加の信号の強度測定値を用いて、前記領域分類子に再度適用する。
【００１８】
本発明の第６の態様は、第１〜第５のいずれかの態様の方法であって、領域の各々は、ユニークな塊領域であり、塊領域の各々は、複数の領域を含み、塊領域の各々についての塊分類子の各々をトレーニングし、塊分類子の各々は、テストポイントが前記塊領域の内部にある可能性を示す推定を算出するように構成されており、前記算出は、前記ベースステーションから受信された信号について、前記テストポイントで取得された信号の強度測定値の間の差である入力を使用する。
【００１９】
本発明の第７の態様は、第６の態様の方法であって、前記ベースステーションの少なくともサブセットから信号の強度測定値を受信し、前記強度測定値は前記ビル内の未知ポイントでモバイルデバイスによって取得され、受信した信号の強度測定値のペアを選択し、前記ペアの各々について、一方の信号の強度測定値から他方の信号の強度測定値を差し引き、テスト信号の強度差セットを生成し、前記テスト信号の強度差セットに前記塊分類子の各々を適用することにより、前記塊領域の各々に前記モバイルデバイスがある可能性を推定し、前記モバイルデバイスが、他の塊領域のいずれかにあるよりも第１塊領域にある可能性がより高いことを確認し、前記第１塊領域を含む前記領域に対応する前記領域分類子の各々を前記テスト信号の強度差セットに適用することにより、前記第１塊領域の前記領域の各々に前記モバイルデバイスがある可能性を推定し、前記モバイルデバイスが前記第１塊領域の他の領域のいずれかにあるよりも第１領域にある可能性がより高いことを決定し、当該決定を、前記モバイルデバイスの位置を識別するために探索しているユーザに送信する。
【００２０】
本発明の第８の態様は、モバイルデバイスが位置するビル内の領域を決定するシステムであって、１つもしくは複数のプロセッサと、メモリと、前記メモリに記憶されている１つもしくは複数のプログラムと、を備え、前記１つもしくは複数のプログラムは、前記ビル内の複数の異なるポイントで取得されたベースステーション信号の強度測定値を受信し、前記ベースステーション信号は前記ビル内の複数の無線送信のベースステーションから受信され、前記ビルは複数の領域に分割され、前記異なるポイントの少なくとも１つのポイントが前記領域の各々にあり、前記領域の各々について領域分類子の各々をトレーニングし、前記領域分類子の各々は、前記領域の各々の中にテストポイントがある可能性を示す推定を算出するように構成されており、前記算出は、前記ベースステーションから受信された信号について、前記テストポイントで取得された信号の強度測定値間の差である入力を使用する、命令を含む。
【００２１】
本発明の第９の態様は、プログラムであって、ビル内の複数の異なるポイントで取得されたベースステーション信号の強度測定値を受信し、前記ベースステーション信号は、前記ビル内の複数の無線送信ベースステーションから受信され、前記ビルは複数の領域に分割され、前記異なるポイントの少なくとも１つが前記領域の各々にあり、前記領域の各々の領域分類子の各々をトレーニングし、前記領域分類子の各々は前記領域の各々の内部にテストポイントがある可能性の推定を算出するように構成されており、前記算出は、前記ベースステーションから受信された信号について、前記テストポイントで取得された信号の強度測定値間の差である入力を使用する、ことをコンピュータに実行させる。
【００２２】
本発明の第１０の態様は、１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される、ビル内でモバイルデバイスの位置を識別する方法であって、前記プロセッサが、前記ビル内の複数の異なるポイントで取得されるベースステーション信号の強度測定値を受信し、前記ベースステーション信号は前記ビル内の複数の無線送信ベースステーションから受信され、前記ビルは複数の領域に分割され、前記異なるポイントの少なくとも１つが前記領域の各々にあり、前記ベースステーション識別子の順序付けられたシーケンスを含む各々のポイントについて既知の信号強度ベクトルの各々を構築し、前記既知の信号強度ベクトルの前記ベースステーション識別子はポイント毎に計測されるように、対応するベースステーションの前記信号の強度測定値によって順序付けられ、前記ベースステーションの少なくともサブセットで信号の強度測定値を受信し、前記強度測定値は前記ビル内の未知ポイントでモバイルデバイスによって取得され、前記ベースステーション識別子の順序付けられたシーケンスを含むテスト信号強度ベクトルを構築し、前記ベースステーション識別子は対応する信号の強度測定値によって順序付けられ、前記未知の信号強度ベクトルの少なくともサブセットで前記テスト信号強度ベクトル間の編集距離を算出し、信号強度ベクトルのペア間の編集距離は、前記ペアの一方の信号強度ベクトルを他方の信号強度ベクトルに変換するために必要とされる最小操作の最小数を含み、ｋ個の既知信号強度ベクトルを選択し、ｋ個の既知信号強度ベクトルの、テスト信号強度ベクトルからの対応する信号距離は算出した編集距離で最小であり、ｋは正の整数であり、ｋ個の既知信号強度ベクトルに対応する領域に基づいて前記モバイルデバイスが位置する可能性を有する領域を決定し、前記モバイルデバイスの位置を識別するために探索するユーザに当該判定を送信する。
【発明の効果】
【００２３】
モバイルデバイスが位置する領域を決定することが可能である。
【図面の簡単な説明】
【００２４】
【図１】実装のいくつかによる２４個の部屋／領域及び８個のＷｉＦｉベースステーションを有するフロアプランを例示する。
【図２】実装のいくつかによるサーバ２００を例示するブロック図である。
【図３】実装のいくつかによるクライアントデバイス３００を例示するブロック図である。
【図４】開示の実装によって使用されるデータを格納する例示的なデータ構造を例示する。
【図５】（Ａ）は図４（Ｄ）の分類子テーブルのためのサンプルデータを例示し、（Ｂ）は実装のいくつかによる位置のいくつかでモバイルデバイスによって取得されるＷｉＦｉ信号強度のテスト測定値を例示する。
【図６】（Ａ）〜（Ｄ）は実装のいくつかによるＷｉＦｉ信号の既知シーケンスとＷｉＦｉ信号の順序付けられたシーケンスとを比較するプロセスを例示する。
【図７Ａ】実装のいくつかによるモバイルデバイスが位置する部屋もしくは領域を決定するためのフローチャートである。
【図７Ｂ】実装のいくつかによるモバイルデバイスが位置する部屋もしくは領域を決定するためのフローチャートである。
【図７Ｃ】実装のいくつかによるモバイルデバイスが位置する部屋もしくは領域を決定するためのフローチャートである。
【図８Ａ】実装のいくつかによるモバイルデバイスが位置する部屋もしくは領域を決定するための代替的なフローチャートである。
【図８Ｂ】実装のいくつかによるモバイルデバイスが位置する部屋もしくは領域を決定するための代替的なフローチャートである。
【発明を実施するための形態】
【００２５】
同様の参照符号は、全ての図面に亘って対応する要素を参照する。
【００２６】
図１は、実装のいくつかによる、オフィスビルのフロアプラン１００を例示する。この例示において、２４の部屋／領域１０２があり、１０２−０１〜１０２−２４のラベルが付されている。これらの部屋／領域１０２は、独立したオフィスであってもよいし、休憩室であってもよいし、会議室であってもよいし、エントランスホール領域１０２−１２であってもよい。図１は、８個の別個のＷｉＦｉベースステーション１０４も例示し、１０４−１〜１０４−８のラベルが付されている。ベースステーション１０４は同じ、もしくは異なるワイヤレスネットワークの部分であってよい。図４（Ａ）〜図４（Ｄ）、図５（Ａ）、図５（Ｂ）、図６（Ａ）〜図６（Ｃ）、図７Ａ〜図７Ｃ、図８Ａ、図８Ｂによって以下でより詳細に説明するように、フロアプラン１００の未知ポイントでベースステーションの信号強度を測定することにより、開示の実装は、どの部屋に未知ポイントが位置するかを高い信頼度で推定することができる。未知ポイントの座標を判定するために三点測量に依存する従来の技術とは異なり、開示の実装は、もっとも可能性の高い部屋を識別するために、領域／部屋に関する情報を使用する。
【００２７】
図２は、実装のいくつかによる、サーバ２００を例示するブロック図である。サーバ２００は、一般的に、１つもしくは複数の処理ユニット（ＣＰＵ）２０２、１つもしくは複数のネットワークもしくはその他の通信インターフェイス２０４、メモリ２１０、及び、これらの構成要素を相互に接続するための、１つもしくは複数の通信バス２０９を含む。通信バス２０９は、システム構成要素間の通信を相互に接続し、制御する回路（チップセットとも呼ぶ）を含んでいてもよい。サーバ２００は、ディスプレイデバイス２０６及び入力デバイス２０８（例えば、キーボード、マウス、タッチスクリーン、キーパッドなど）を含むユーザインターフェイス２０５を含むことができるが、含んでいなくてもよい。メモリ２１０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、もしくはその他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、１つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイス、もしくはその他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでいてもよい。メモリ２１０は、ＣＰＵ２０２から離れた位置にある、１つもしくは複数のストレージデバイスを含んでいてもよいが、含まなくてもよい。メモリ２１０もしくはメモリ２１０に含まれる代替的な不揮発性メモリデバイスは、コンピュータ可読記憶媒体を含む。実装のいくつかにおいて、メモリ２１０は以下のプログラム、モジュール、及びデータ構造、もしくはこれらのサブセットを記憶する。
●オペレーティングシステム２１２。オペレーティングシステム２１２は、様々な基本システムサービスを扱うため、及び、ハードウェア依存タスクを実行するためのプロシージャを含む。
●通信モジュール２１４。通信モジュール２１４は、１つもしくは複数の通信インターフェイス２０４（有線もしくは無線）及び、インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つもしくは複数の通信ネットワークを介して、その他のコンピュータに、サーバ２００を接続するために使用される。
●ユーザインターフェイスモジュール２１６（必須ではない）。ユーザインターフェイスモジュール２１６は、入力デバイス２０８を介してユーザからコマンドを受信し、ディスプレイデバイス２０６にユーザインターフェイスオブジェクトを生成する。
●データベースアクセスモジュール２１８。データベースアクセスモジュール２１８はサーバ２００においてデータベースとインターフェイスで接続する。
●データベース２２０。データベース２２０は、１つもしくは複数の領域テーブル２２２、１つもしくは複数のベースステーションテーブル２２４、１つもしくは複数のスキャンデータテーブル２２６及び１つもしくは複数の分類子テーブル２２８を含む。実装のいくつかにおいて、データベース２２０はリレーショナルデータベースである。
●位置検出モジュール２３０。位置検出モジュール２３０は、データベース２２０の基準線領域データを収集し、未知のポイントが位置する領域を識別するための式を構築し、ポイントが位置する可能性を有する領域を推定するために未知テストポイントに構築された式を適用する。実装のいくつかは、領域の各々のバイナリの分類子を利用する。分類子の各々は、未知ポイントが領域の各々にある尤度を示す。実装のいくつかは、ベースステーションの信号強度のシーケンスを利用し、ベースラインデータのシーケンスと未知の位置での新しいシーケンスとを比較する。これについては、図４（Ａ）〜図４（Ｄ）、図５（Ａ）、図５（Ｂ）、図６（Ａ）〜図６（Ｃ）、図７Ａ〜図７Ｃ、図８Ａ、図８Ｂによって、以下で詳細に説明する。クライアントデバイス３００の推定領域が判定されると、オフィス適用環境において、ユーザの存在情報を提供するために、情報は保存される。
【００２８】
上記識別された構成要素の各々は、上記メモリデバイスの１つもしくは複数に保存されていてもよく、上記機能を実行するための命令セットに対応する。命令セットは、１つもしくは複数のプロセッサ（例えば、ＣＰＵ２０２）によって実行されてもよい。上記識別されたモジュールもしくはプログラム（すなわち、命令セット）は別個のソフトウェアプログラム、プロシージャ、もしくはモジュールとして実装されなくてもよく、これらのモジュールの様々なサブセットは様々な実装で組み合わされてもよいし、再構成されてもよい。実装のいくつかにおいて、メモリ２１０は上記識別されたモジュール及びデータ構造のサブセットを保存していてもよい。さらに、メモリ２１０は、上記されていないその他のモジュール及びデータ構造を保存していてもよい。
【００２９】
図２は、「サーバ」２００を示しているが、図２は、ここに記載される実装の構造的な概略としてではなく、サーバセットにあってもよい様々な特徴の機能的な記載を意図している。実際には、当業者によって認識されるように、別個に示されているアイテムは組み合わされてもよく、アイテムのいくつかは分離されてもよい。例えば、図２に別個に示されるアイテムのいくつかは、単一のサーバに実装されてもよいし、単一のアイテムは１つもしくは複数のサーバによって実装されてもよい。サーバ２００を実装するために使用されているサーバの実際の数及びどのように機能がこれらの中で割り当てられるか、については、実装毎に異なり、ピーク使用時及び平均使用時にシステムが処理しなければならないデータトラフィック量に部分的に依存してもよい。
【００３０】
図３は実装のいくつかによる、クライアントデバイス３００を例示するブロック図である。クライアントデバイス３００は、通信ネットワークを介して、その他のコンピューティングデバイスに接続可能なデスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、もしくはその他のモバイルデバイスであってよい。クライアントデバイス３００は、一般的に、１つもしくは複数の処理ユニット（ＣＰＵ）３０２、１つもしくは複数のネットワークもしくはその他の通信インターフェイス３０４、メモリ３１０、及びこれらの構成要素を相互に接続するための１つもしくは複数の通信バス３０９を含む。通信バス３０９は、システム構成要素間を相互に接続し、システム構成要素間の通信を制御する回路（チップセットとも呼ぶ）を含んでいてもよい。クライアントデバイス３００は、ディスプレイデバイス３０６及び入力デバイス３０８（例えば、キーボード、マウス、タッチスクリーン、キーパッドなど）を含む、ユーザインターフェイス３０５を含んでいてもよい。メモリ３１０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、もしくはその他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、１つもしくは複数の磁気ディスクストレージデバイス、光ディスクストレージデバイス、フラッシュメモリデバイス、もしくはその他の不揮発性ソリッドステートストレージデバイスなどの不揮発性メモリを含んでいてもよい。メモリ３１０は、ＣＰＵ３０２から離れた位置にある、１つもしくは複数のストレージデバイスを含んでいてもよいが、含まなくてもよい。メモリ３１０もしくはメモリ３１０に含まれる代替的な不揮発性メモリデバイスは、コンピュータ可読記憶媒体を含む。実装のいくつかにおいて、メモリ３１０は以下のプログラム、モジュール、及びデータ構造、もしくはこれらのサブセットを記憶する。
●オペレーティングシステム３１２。オペレーティングシステム３１２は、様々な基本システムサービスを扱うため、及び、ハードウェア依存タスクを実行するためのプロシージャを含む。
●通信モジュール３１４。通信モジュール３１４は、１つもしくは複数の通信インターフェイス３０４（有線もしくは無線）及び、インターネット、その他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つもしくは複数の通信ネットワークを介して、その他のコンピュータシステムに、クライアントデバイス３００を接続するために使用される。
●ユーザインターフェイスモジュール３１６。ユーザインターフェイスモジュール３１６は、入力デバイス３０８を介してユーザからコマンドを受信し、ディスプレイデバイス３０６にユーザインターフェイスオブジェクトを生成する。
●ウェブブラウザ３１８。ウェブブラウザ３１８はリソース、ウェブページ、ウェブアプリケーションに、通信ネットワークを介して、ユーザをアクセスさせる。
●検出アプリケーション３２０。検出アプリケーション３２０は、クライアントデバイス３００で計測される、ベースステーションの信号強度を収集するために実行される。
【００３１】
実装のいくつかにおいて、クライアントデバイスはデータを収集し、サーバ２００にデータを送信するだけである。サーバ２００は、クライアントデバイスが検出される位置を推定するための算出を実行する。実装のいくつかにおいて、検出アプリケーション３２０は、クライアントデバイス３００の位置を推定し、サーバ２００に算出した位置を送信する。一般的に、クライアントデバイス３００の位置、すなわち、デバイスの所有者の位置を知ることを所望するのはその他のユーザであり、したがって、情報は、その他のユーザに情報を伝播するためにサーバ２００に送信されなければならない。クライアントデバイス３００が検出される可能性がある範囲を位置アプリケーション３２０が決定する実装において、様々な方法が適用される。実装のいくつかは、その他の既知の位置で順序付けられた信号強度のベクトルと、未知の位置での信号強度に基づいて、ＷｉＦｉベースステーションの順序付けられたリストと、を比較する。その他の実装において、クライアントデバイス３００は、サーバ２００から分類子式を受信し、未知の位置の信号強度のベクトルに式を適用する。どのコンピューティングデバイスがデバイス２００の位置を推定するかに関係なく、どの範囲識別方法が適用されるかに関係なく、サーバ２００は、デバイス３００が位置する範囲の推定を最終的に有し、その他のユーザが当該情報を見ることが可能であるように、そのデータベースを更新する。これは、図４（Ａ）〜図４（Ｄ）、図５（Ａ）、図５（Ｂ）、図６（Ａ）〜図６（Ｃ）、図７Ａ〜図７Ｃ、図８Ａ、図８Ｂによって、以下でより詳細に説明される。
【００３２】
上記識別された構成要素の各々は、上記メモリデバイスの１つもしくは複数に保存されてもよく、上記機能を実行するための命令セットに対応する。命令セットは１つもしくは複数のプロセッサ（例えば、ＣＰＵ３０２）によって実行されてもよい。上記識別されたモジュールもしくはプログラム（すなわち、命令セット）は別個のソフトウェアプログラム、プロシージャ、もしくはモジュールとして実装されなくてもよく、これらのモジュールの様々なサブセットは様々な実装で組み合わされてもよいし、再構成されてもよい。実装のいくつかにおいて、メモリ３１０は上記識別されたモジュール及びデータ構造のサブセットを保存していてもよい。さらに、メモリ３１０は、上記されていないその他のモジュール及びデータ構造を保存していてもよい。
【００３３】
図３はクライアントデバイス３００を示しているが、図３は、ここに記載される実装の構造的な概略としてではなく、クライアントデバイスにあってもよい様々な特徴の機能的な記載として、意図されている。実際には、当業者によって認識されるように、別個に示されているアイテムは組み合わされてもよく、アイテムのいくつかは分離されてもよい。
【００３４】
ここに記載されている方法の各々は、コンピュータ可読記憶媒体に記録されている命令によって支配されてもよいし、１つもしくは複数のサーバもしくはクライアントデバイスの１つもしくは複数のプロセッサによって実行される命令によって支配されてもよい。図２、図３、図７Ａ〜図７Ｃ、図８Ａ、図８Ｂに示されるオペレーションの各々は、コンピュータメモリもしくはコンピュータ可読記憶媒体に保存されている命令に対応してもよい。
【００３５】
図４（Ａ）〜４（Ｄ）は、本開示の実装によって使用されるデータを記憶するデータ構造もしくはテーブルを例示する。データ構造は、一般的に、サーバ２００に保存される。図４（Ａ）は、領域のユニークな識別子であるregion_id４０４を含む領域テーブル２２２を例示する。実装のいくつかにおいて、region_idは、プログラムによって内部でのみ使用されるが、その他の実装において、region_idはユーザが認識することが可能である。実装のいくつかにおいて、region_idは、新しい領域が入力されるときに、ユーザによって選択される。region_labelは領域の各々のためのユーザ定義記述である。例えば、region_labelの値は、「４１１号室」、もしくは、「会議室Ａ」であってよい。一般的に、region_labelは度々変更されるものでもないが、編集は可能である。
【００３６】
実装のいくつかにおいて、電話番号もしくは部屋の使用者など、領域のその他の情報が記憶される。
【００３７】
図４（Ｂ）は、ベースステーションについての情報を記憶するデータ構造２２４を例示する。一般的に、ベースステーションはワイヤレスルータもしくはワイヤレスアクセスポイントである。本開示の実装によって使用されるために、ベースステーションはクライアントデバイス３００によって検出され得るワイヤレス無線信号を送信しなければならない。複数の方法によって、ベースステーションを識別することができる。多くの実装において、ＭＡＣアドレス（メディアアクセスコントロールアドレス）４１６はベースステーションの各々をユニークに識別する。実装のいくつかにおいて、ベースステーションの各々は位置識別システムのベースステーションの各々をユニークに識別するユニークなstation_id４１４を割り当てられる。実装のいくつかは、ベースステーションに対応するワイヤレスネットワークのパブリックネームであるＳＳＩＤ(service set identifier)４１８も記憶する。ＭＡＣアドレス４１６及びstation_idはユニークであるが、ＳＳＩＤ４１８はユニークである必要はない。
【００３８】
実装のいくつかにおいて、ベースステーションの各々のデータはキャリア(carrier)４２０及び周波数４２２も含む。
【００３９】
開示の実装において、ベースステーション信号強度は、様々な既知の位置で計測され、スキャンデータテーブル２２６に保存される。引き続いて、当該データは、未知の位置での信号強度に基づいて、未知の位置を推定するために使用される。スキャンデータテーブル２２６は、領域の各々における少なくとも１つのスキャンポイントによる、ベースステーション信号強度の計測値を含む。一般的に、部屋もしくは領域の各々のいくつかのポイントがスキャンデータに含まれる。さらに、ベースステーション信号強度が時間に亘って変化し得るため、同一の領域における測定は、一般的に、所定の曜日の様々な時間に行われる。この例示的なスキャンデータテーブル２２８では、特定の時間における特定の位置からの信号の強度測定値の各々の別個のレコードがある。レコードの各々は、測定が行われたregion_id４０４もしくはその他の領域の識別子を含む。上記したように、領域内のポイントの「座標」ではなく、領域だけが追跡される。レコードの各々は、受信された信号を送信したベースステーションのstation_id４１４を含む。この例示的なスキャンデータ構造２２６に、測定が行われたときを示す日付／タイムスタンプ４４０も含まれている。詳細には、一般的に、同一のregion_id４０４及びstation_id４１４を有するいくつかのレコードがある。したがって、日付／タイムスタンプ４４０は測定の各々が行われたときを日付／タイムスタンプ４４０が示す。さらに、スキャンデータ構造２２６は、ベースステーションから受信される信号の信号強度４３８を含む。一般的に、信号強度はデシベルミリワット(dbm, dBm, dbmW)で特定される。
【００４０】
実装のいくつかは、領域の各々のために１つの分類子を有する、部屋／領域分類子を構築するためのスキャンデータを使用する。分類子は、その入力が、未知の位置で取得された信号強度のベクトルである関数である。分類子の出力は、未知の位置が、任意のその他の領域に対して対応する領域にある可能性を示す数値である。分類子は、段階的貪欲プロセス(greedy stagewise process)のスキャンデータを用いてトレーニングされる。繰り返しの各々の間、トレーニングセットの重み誤差を最小化するために、パラメータが選択される。すなわち、トレーニングフェーズの間、スキャンデータテーブル２２６のベクトルが入力として使用され、既知の位置のスキャンと比較される。実装のいくつかにおいて、分類子は以下の式で構築されている。
【数１】
2014157151.tif 000003
【００４１】
この式において、Ｘはベースステーション信号強度のベクトルであり、ｍは「特徴」であり、ｗｍは特徴に割り当てられている重みであり、ｈｍ（Ｘ）は比較関数である。実装のいくつかにおいて、特徴はベースステーションの順序付けられているペアであり、その値は、２つのベースステーションから受信される信号強度の間の差である。一般的に、「特徴」は２つ以上のベースステーション信号強度の任意の関数であってよく、その他の特徴の組み合わせであってもよい。実装の各々は、サポートされる特徴のタイプ（最大４つのベースステーション信号を有する最大２次の多項式）を特定し、サポートされる特徴に基づいてトレーニングを実行する。比較関数ｈｍ（Ｘ）は以下の通りである。
【数２】
2014157151.tif 000004
【００４２】
分類子によって、多くの特徴を使用することができる。２つのベースステーションの信号強度の差のみを特徴として使用する場合であっても、ｎ個のベースステーションはｎ（ｎ−１）／２個の特徴を生成する。一般的に、分類子は、その他の領域の全てから１つの領域をより明確に区別する、少数の特徴のみを使用する。
【００４３】
実装のいくつかは、分類子テーブル２２８の分類子関数の各々のパラメータを保存する。図４（Ｄ）の例示的なデータ構造には、分類子によって使用される特徴の各々のレコードがある。region_id４０４は分類子が適用される領域を識別する。係数４５６は特徴に割り当てられる重みｗｍである。この例示的なデータ構造において、特徴は、２つのベースステーションの間の信号強度の間の差に限定されている。したがって、この特徴において、station_id1  ４５８及びstation_id2  ４６０は特徴を形成する順序付けられたベースステーションのペアを識別する。閾値４６２は、特徴値と比較される値θｍである。図５（Ａ）及び図５（Ｂ）は分類子の使用を例示し、図４に例示されている例示的な構造を使用する分類子を使用する。さらに複雑な分類子をサポートする実装において、データ構造はその他のフィールドを有する。
【００４４】
図５（Ａ）は、図４（Ｄ）に示されている例示的な分類子テーブル２２８を用いた２つの分類子のためのデータを例示する。このテーブルにおいて、４つの特徴（ＡＤ、ＡＦ、ＡＧ、ＢＦ）が、region_id１２３を有する領域のための分類子を形成するために使用され、３つの特徴（ＡＣ、ＡＤ、ＢＤ）が、region_id２１７を有する領域の分類子を形成するために使用される。なお、特徴ＡＤはこれらの分類子の双方について使用される。region_id１２３を有する領域のためのレコード５０２〜５０８は、特徴、重み係数４５６、閾比較値４６２を識別する。同様に、レコード５１０〜５１４は、region_id２１７を有する領域の分類子のためのパラメータを提供する。
【００４５】
図５（Ｂ）は、ビル内のいくつかの未知ポイントにおけるベースステーション信号強度のサンプルを提供する。７つの既知のベースステーション（Ａ〜Ｇ）があるが、ベースステーションＧからの信号は検出されない（レコード５３８）。信号強度レコード５２６〜５３６はベースステーションＡ〜Ｆで受信される信号の強度を示す。信号強度の範囲は、−３４ｄｂｍ（最高計測信号強度）〜−９８ｄｂｍ（最低計測信号強度）である。
【００４６】
図５（Ａ）及び図５（Ｂ）の例示的なデータは、モバイルデバイスが位置する領域を識別するための分類子を用いるいくつかの態様を例示する。第１に、全てのベースステーション、もしくは、ベースステーションのペアが、分類子のいくつかによって利用されることを要求されるわけではない。例えば、ベースステーションＥは、ここ（図５（Ａ））では、分類子のいずれによっても使用されていない。特徴のサブセットのみを利用してもよい。第２に、同一の特徴（レコード５０２及び５１２のＡＤなど）が２つ以上の分類子によって使用されてもよい。第３に、位置のいくつかにおいて、ベースステーションは、検出不能であってもよい。例えば、未知の位置にあるベースステーションＧは、図５（Ｂ）においてデータ「未検出」によって特定されている。算出するために、未検出信号は強度０、デシベルミリワットスケールでは−∞とされる。
【００４７】
図５（Ａ）及び図５（Ｂ）のデータを用いて、region_id１２３を有する領域の分類子を算出すると、以下の通りとなる。
●（−３４）−（−５０）＝１６、２１より大きくないので、ｈＡＤ（Ｘ）＝０
●（−３４）−（−７２）＝３８、１５より大きいので、ｈＡＦ（Ｘ）＝１
●（−３４）−（−∞）＝∞、１７より大きいので、ｈＡＧ（Ｘ）＝１
●（−４２）−（−７２）＝３０、８より大きいので、ｈＢＦ（Ｘ）＝１
【００４８】
したがって、Ｆ１２３（Ｘ）＝（０．１５×０）＋（０．１２×１）＋（０．０８×１）＋（０．０３×１）＝０．２３
【００４９】
同様に、図５（Ａ）及び図５（Ｂ）のデータを用いて、region_id２１７を有する領域の分類子は以下のように算出される。
●（−３４）−（−６５）＝３１、２５より大きいので、ｈＡＣ（Ｘ）＝１
●（−３４）−（−５０）＝１６、１３より大きいので、ｈＡＤ（Ｘ）＝１
●（−４２）−（−５０）＝８、１１より大きくないので、ｈＢＤ（Ｘ）＝０
【００５０】
したがって、Ｆ２１７（Ｘ）＝（０．２２×１）＋（０．１３×１）＋（０．０９×０）＝０．３５
【００５１】
詳細には、ベクトルＸに対応する未知の位置は、region_id１２３（０．２３）に対応する領域よりregion_id２１７（０．３５）に対応する領域にある可能性が高い。
【００５２】
実装のいくつかは、いくつかの方法で領域分類子を拡張する。実装のいくつかにおいて、粗いレベル分類子から開始し、引き続くレベルの各々でより詳細な分類子を有する、領域分類子の階層的なレベルがある。階層的な体系において、限定された数の分類子だけがレベルの各々で評価されるべきである。より高いレベルの分類子は、概ねの可能性を既に除去しているからである。
【００５３】
実装のいくつかは、信号強度が測定される曜日の所定の時間に機能する。これらの実装において、分類子は様々な期間について構築され、適切な分類子が、テストデータが収集されるときに基づいて、テストデータに適用される。例えば、ベースラインスキャンデータは、午前７時〜午前９時、午前９時〜午前１１時３０分、午前１１時３０分〜午後１時３０分、午後１時３０分〜午後６時、午後６時〜午前７時の期間に分割されてもよい。領域の各々について、分類子は、これらの期間の各々についてトレーニングされる。次に、未知の位置が分類されるべき場合、適切な期間についての分類子が適用される。当業者であれば、ここに記述される基本的な方式にその他の拡張及び変更が容易に適用されることを理解する。
【００５４】
図６（Ａ）〜図６（Ｃ）は、モバイルデバイスが位置する領域もしくは部屋を決定するための代替的な処理を例示する。この代替的な処理において、ベースステーションの信号強度が、ベースラインスキャンデータ及び引き続いて未知の位置で収集されるデータについて、順序付けられる。図６（Ａ）において、部屋３１５の信号強度はＢＡＣＥＨＤＧに順序付けられており、部屋３３２の信号強度はＥＣＢＧＡに順序付けられている。未知のもしくはテストシーケンスの信号強度が収集されると、既知の信号強度シーケンスと比較され得る。２つのシーケンスの近さを測定するために、開示の実装は様々な「編集距離（類似性指標）」算出を使用する。すなわち、いくつの最小操作が１つのシーケンスから他のシーケンスを取得するために適用されなければならないか、である。テストシーケンスにもっとも近い既知のシーケンスが、モバイルデバイスが位置する領域のもっともよい推定として選択される。実装のいくつかにおいて、最小操作は、ストリングに単一の要素を挿入し、ストリングから単一の要素を削除し、隣接する要素の対を入れ替え、単一の要素を他の要素と置換する。その他の実装は、最小操作のより限定的なもしくはより拡張的な定義を有し、実装のいくつかは、シーケンスの任意の部分が最大１回変更されることを要求する。
【００５５】
図６（Ｂ）及び図６（Ｃ）は、部屋３１５及び３３２のストリングから未知の位置へのストリングまでの編集距離の算出を例示する。最小操作が挿入、削除、入れ替え、及び置換であると仮定すると、図６（Ｂ）の編集距離は４であり、図６（Ｃ）の編集距離は６である。したがって、未知の位置は、部屋３３２よりも部屋３１５にある可能性が高い。
【００５６】
図６（Ａ）〜図６（Ｃ）に例示されている技術は、いくつかの方法で拡張可能である。上記したように、スキャンデータ２２６は、一般的に、領域の各々の内部の複数のポイントを含む。図６（Ａ）〜図６（Ｃ）で上記したように、もっとも近い１つのポイントを検出するのではなく、実装のいくつかは、もっとも近いポイントから近い順にｋ個のポイントを検出する。ｋは正の整数である。実装のいくつかにおいて、例えば、ｋ＝５である。この例において、（編集距離に基づいて）もっとも近いポイントから近い順に５個のポイントが識別され、これらのポイントの最大数を含む領域が推定される領域となる。
【００５７】
実装のいくつかは、スキャンデータポイントのどれが未知テストポイントにもっとも近いかについて、より正確な推定を取得するために、編集距離とユークリッド距離とを組み合わせる。これは、図６（Ｄ）のレコード６５２〜６６６のデータに関して例示されている。実装のいくつかは、信号強度の間の差の絶対値の合計であるＬ１ノルムを使用し、その他の実装は、信号強度の差異の二乗の合計の平方根であるＬ２ノルムを使用する。テスト位置もしくはスキャンデータのいずれかで検出されない信号があると、実装はベースステーションを無視するか、もしくは、検出されない信号を示すために定数（例えば、−１２８ｄｂｍ）を使用する。検出されない信号は、計測時間にベースステーションがオフラインであることに起因するかもしれない。したがって、実装は、一般的に、失われた信号強度計測値を有する任意のベースステーションを単に除外する。図６（Ｄ）のデータについて、ベースステーションＤ、Ｆ、及びＨは、１つもしくは複数のポイントで検出されないので、ユークリッド距離から除外される。
【００５８】
Ｌ１ノルムをＣ（Ｘ，Ｙ）で表すと、テストポイントから部屋３１５及び３３２までのユークリッド距離は、
●Ｃ（テスト、部屋３１５）＝｜−５５−（−３４）｜＋｜−５０−（−４２）｜＋｜−６０−（−６５）｜＋｜−７０−（−７４）｜＋｜−８０−（−８９）｜＝２１＋８＋５＋４＋９＝４７
●Ｃ（テスト、部屋３３２）＝｜−５０−（−３４）｜＋｜−４４−（−４２）｜＋｜−３０−（−６５）｜＋｜−２０−（−７４）｜＋｜−４７−（−８９）｜＝１６＋２＋３５＋５４＋４２＝１４９
【００５９】
ユークリッド距離を使用する実装は、距離合計ｄ＝（編集距離）＋γ（ユークリッド距離）を使用する。ガンマは負ではない定数である。γ＝０．１０と設定すると、部屋３１５については、ｄ＝４＋０．１０×４７＝８．７であり、部屋３３２については、ｄ＝６＋０．１０×１４９＝２０．９である。この例において、編集距離（４及び６）は近い値であるが、ユークリッド距離を含めることによって、アルゴリズムは、部屋３１５が部屋３３２より可能性がかなり高いと結論付ける。その他のポイントにおいて、算出にユークリッド距離を含めることによって、どのポイントが最小の合計距離を有するかを切り替えることができる。
【００６０】
領域決定技術の重要な特性は、非常に大きなデータセットに、適切に拡張することである。ストリング編集距離及び信号強度のシーケンスを使用する場合、テストベクトルの各々は、テストベクトルの可能性を有する領域を識別するために、スキャンデータポイントの全てと比較されるべきである。したがって、この方法に要求される時間は、領域の数に比例する。さらに、適切なデータセットは領域毎に複数のデータポイントを有するので、データポイントの数が増加すると、パフォーマンスは明らかに低下する。一方、分類子はパフォーマンスにいくつかの明確なメリットを有する。まず、トレーニングフェーズは分類子の各々についてパラメータを算出するので、未知ポイントをテストするための分類子をシンプルに適用することが可能である。さらに、分類子は、一般的に、全てのベースステーションからのデータを見るのではなく、少数の特徴に基づいて算出を行うことが可能である。さらに、領域の数が増加すると、少数の分類子のみが実際に評価されるように、階層的な分類子処理が効率的に調整する。
【００６１】
図７Ａ〜図７Ｃ及び図８Ａ〜図８Ｂは、本発明のある実装によって、モバイルデバイスが位置する可能性を有する領域を決定するための位置検出モジュール２３０によって実行される方法７００及び８００を示すフローチャートである。方法７００及び８００は、一般的に、コンピュータ可読記憶媒体に記憶されている、及び、１つもしくは複数のサーバの１つもしくは複数のプロセッサによって実行される命令を用いて、サーバ２００で実行される。図７Ａ〜図７Ｃ及び図８Ａ〜図８Ｂに示されるオペレーションの各々は、コンピュータメモリもしくはコンピュータ可読記憶媒体に記憶されている命令に対応していてもよい。コンピュータ可読記憶媒体は、磁気ディスク記憶装置、もしくは、光ディスク記憶装置、フラッシュメモリなどのソリッドステート記憶装置、もしくは、その他の不揮発性メモリ装置を含むことができる。コンピュータ可読記憶媒体に記憶されているコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、もしくは１つもしくは複数のプロセッサによって解釈される、その他の命令フォーマットである。
【００６２】
図７Ａ〜図７Ｃは、モバイルデバイスが位置する可能性がもっとも高い領域を決定するために、分類子を利用する実装のいくつかを例示するフローチャートである。方法７００は、ビル内のモバイルデバイスの位置である可能性を有する位置を識別するために、１つもしくは複数のプロセッサ及びメモリを有するサーバで実行される（７０２）。上記したように、モバイルデバイスの所有者は、一般的に、モバイルデバイスを近くに保持するので、モバイルデバイスの位置を検出することは、デバイスの所有者を検出するための代用として作用する。特定のデバイスの位置を算出する前に、ベースラインデータが収集されなければならない。ベースラインデータは、ビル内の既知の位置で取得されるベースステーション信号強度測定値を含む。一般的に、複数の測定値は、領域もしくは部屋の各々の内部で、部屋内の異なる場所で、異なる時間に、取得される。実装のいくつかにおいて、同一の部屋もしくは領域の複数の測定値は平均値を形成するために組み合わされる。
【００６３】
サーバ２００は、ビル内の複数の区別可能なポイントで取得されたベースステーション信号強度測定値を受信する（７０４）。無線信号は、ビル内の複数の無線送信ベースステーションから受信される（７０６）。一般的に、無線信号はモバイルテストデバイスによって検出され、サーバに送信される。実装のいくつかにおいて、関連する無線信号は企業エンティティの制御下にある既知の固定のベースステーションに限定される。例えば、企業ＡＢＣが非常に大きなオフィスビルの５階及び６階を借りている場合、ベースステーションは、企業ＡＢＣによって稼動され、ビルの５階及び６階に物理的に位置する、ベースステーションに限定されてもよい。実装のいくつかにおいて、ベースステーションの選択は変更可能であり、単一の企業エンティティに属するベースステーションに固有に限定されるものではない。
【００６４】
ビル自体は、複数の異なる領域に分割される（７０８）。分割された領域は、一般的に、ビル内の部屋のレイアウトに対応する。部屋の各々は「領域」として特定される。領域は重複せず、ビル内のフロアスペースの全てをカバーする必要はない。例えば、廊下はいずれの領域の部分にも含まれていなくてもよい。壁は、領域を特定する唯一の方法ではない。いくつかのビルにおいて、小部屋に分割されている非常に大きいオープンスペースがある。これらの環境において、領域は有意な任意の方法で割り当てられ得る。さらに、大きいミーティングルームはより小さい領域に論理的にさらに分割され得る。このようにさらに分割することによって、これらのさらに分割された領域内のモバイルデバイス（すなわち、人）の位置検出が可能となる。領域間を区別するために、領域の各々に少なくとも１つのベースライン測定ポイントがあるべきである（７１０）。
【００６５】
ベースライン受信データを用いて、領域の分類子は領域の各々についてトレーニングされる（７１２）。分類子のトレーニングは、例えば、非特許文献１に例示されるように、当業者には一般的に知られている。領域分類子の各々は、テストポイントが対応する領域内にある可能性の推定を算出するように構成されている（７１４）。実装のいくつかにおいて、分類子の各々によって実行される算出は、テストポイントで取得される信号強度測定値間の差である入力を使用する（７１６）。これは、図５（Ａ）及び図５（Ｂ）に例示されている。測定値は、ベースステーションから受信される信号に関する（７１６）。
【００６６】
実装のいくつかにおいて、領域分類子は、特定の方法で可能性を算出する。例えば、実装のいくつかにおいて、領域分類子の１つもしくは複数は、F(X)=Σmwmhm(X)の算出式によって可能性の推定を算出するように構成されている。ｍは特徴セットの各々（例えば、ベースステーションペア）に亘る。Ｘはテスト信号測定値を示す変数である。ｈｍ（Ｘ）は、対応するベースステーションペアからの信号強度間の差が対応する閾値θｍより大きいか否かに依存して１もしくは０となる。
【００６７】
実装のいくつかにおいて、トレーニングは、トレーニングセットの誤差の総数を最小にするパラメータを繰り返し選択することを含む（７２０）。例えば、パラメータｗｍ及びθｍの値は、トレーニングセットのために最適な推定を生成するために繰り返し変更される。
【００６８】
分類子は、トレーニングされた後、デバイスが位置する領域を推定するために適用され得る。上記したように、ゴールはモバイルデバイスの座標を算出することではなく、モバイルデバイスが位置する領域を識別することである。サーバ２００は、ビル内の未知ポイントでモバイルデバイスによって計測値が取得されたベースステーションの少なくともサブセットからの信号強度測定値を受信する（７２２）。サーバは、受信した信号強度測定値のペアを選択し、ペアの各々について、その他の信号強度測定値から信号強度測定値の１つを差し引く（７２４）。選択されたペアの各々にこれを適用すると、テスト信号強度差のセットが生成される（７２４）。分類子の各々は、可能な組み合わせの総数のサブセットだけを利用する。したがって、信号強度の差は、一つもしくは複数の分類子によって実際に使用されるペアについてのみ算出される。例えば、２０個のベースステーションによれば、２０×１９の順序付けられたペアがあり、３８０個の可能な差異があり得る。実用上、分類子はこれらの３８０個の順序付けられたペアの内４０個もしくは５０個だけを使用してもよい。
【００６９】
サーバ２００は、信号強度の差のセットに領域分類子の各々を適用する（７２６）ことにより、モバイルデバイスが領域の各々にある可能性を推定する。いくつかの例において、サーバは、モバイルデバイスが、任意のその他の領域ではなく、第１領域にある可能性が高いことを決定し（７２８）、モバイルデバイスの位置を識別するために探索しているユーザに当該決定を送信する。いくつかの例において、概ね同じ可能性に対応する２つもしくは複数の分類子がある。実装のいくつかにおいて、サーバ２００は、異なる領域の２つもしくは複数の領域分類子が概ね同じ高い可能性を示す推定を生成した場合、未知ポイントにおけるその他の信号強度測定値を要求する（７３０）。これらの場合、モバイルデバイスは、その他の測定値を取得し、サーバ２００に送信する。サーバ２００は、未知ポイントで取得されたその他の信号強度測定値を受信し（７３２）、その他の信号強度測定値を用いて、領域分類子を再適用する（７３４）。実装のいくつかにおいて、一回目に高い可能性を生成した領域分類子だけが、二回目（もしくはその後）も算出される。
【００７０】
実装のいくつかは、大きなビルについて特に有用である、階層的な分類子をサポートする。階層的なアプローチでは、分類子の第１レベルは粗いフィルタとして適用される。例えば、ビルの８階〜１３階に、企業がオフィスを有していると仮定する。第１レベルにおいて、フロアの各々が１つの分類子である、６個の分類子があり得る。フロアが識別されると、分類子の第２レベルは適切なフロアの領域（もしくは部屋）を識別するために適用され得る。この処理は、単一のパスでフロアの全てについて分類子の全てを適用するよりも効率的である。ビルのフロアは、階層的な分類子構造を利用するための唯一の方法ではない。ビルの大きい単一のフロアは、北、南、東、西などに細かく分割され得る。ここで使用される塊領域は、２つもしくは複数の領域を組み合わせることにより形成される「スーパー」領域である。したがって、上記の例において、塊領域は、１つを越える領域を含むビルの１つのフロアもしくはビルの任意のその他の有意な部分であり得る。
【００７１】
実装のいくつかにおいて、領域の各々は、ユニークな塊領域の部分であり（７３６）、塊領域の各々は、複数の領域を含む。サーバは、塊領域の各々について塊分類子の各々をトレーニングする（７３８）。このトレーニングは、個別の領域のトレーニングと同様である。塊分類子の各々は、テストポイントが塊領域の内部にある可能性を有する推定を算出するために構成される（７４０）。実装のいくつかにおいて、塊分類子は、テストポイントで取得される信号強度測定値の間の差である入力を使用する（７４２）。領域分類子と同様に、塊分類子は、信号強度ペアの間の差よりも複雑な特徴を使用することができる。サーバ２００は、テスト信号強度差のセットに塊分類子の各々を適用する（７４４）ことにより、塊領域の各々にモバイルデバイスがある可能性を推定する。
【００７２】
サーバ２００は、モバイルデバイスが、その他の塊領域のいずれかではなく、第１塊領域にある可能性がより高いことを確認し（７４６）、第１塊領域を含む領域に対応する領域分類子だけを適用する（７４８）。これらの領域分類子がテスト信号差のセットに適用される（７４８）ことにより、第１塊領域の領域の各々にモバイルデバイスがある可能性を推定する。次に、サーバ２００は、モバイルデバイスが、第１塊領域の任意のその他の領域ではなく、第１領域にある可能性が高いことを判定し（７５０）、モバイルデバイスの位置を識別するために探索しているユーザに当該決定を送信する（７５２）。
【００７３】
２レベルの階層に関して塊領域について説明したが、同様の処理を３つもしくはより多くのレベルに適用することが可能である。最後のレベルにおいて、分類子は、モバイルデバイスが位置すると推定されている特定の領域を識別し、より早いレベルの全てにおいて、粗い分類子が、次のレベルで適用される分類子のセットを限定する。
【００７４】
図８Ａ〜図８Ｂは、モバイルデバイスが位置する可能性がもっとも高い領域を判定するために信号強度のシーケンスの間の編集距離を利用する実装のいくつかを例示するフローチャートである。ビル内でモバイルデバイスの位置の可能性を識別するために、１つもしくは複数のプロセッサ及びメモリを有するサーバで、方法８００は実行される（８０２）。特定のデバイスの位置を算出する前に、ベースラインデータが収集されるべきである。ベースラインデータは、ビル内の既知の位置で取得されるベースステーション信号強度測定値を含む。一般的に、複数の測定値は、領域もしくは部屋の各々の内部で、部屋内の異なる場所で、異なる時間に、取得される。実装のいくつかにおいて、同一の部屋もしくは領域の複数の測定値は平均値を算出するために組み合わされる。
【００７５】
サーバ２００は、ビル内の複数の異なるポイントで取得されたベースステーション信号強度測定値を受信する（８０４）。無線信号は、ビル内の複数の無線送信ベースステーションから受信される（８０６）。一般的に、無線信号はテストモバイルデバイスによって検出され、サーバに送信される。実装のいくつかにおいて、関連する無線信号は、企業エンティティの制御下にある既知の固定のベースステーションに限定される。ビルは複数の異なる領域に分割される（８０８）。分割された領域は、一般的に、ビル内の部屋のレイアウトに対応する。部屋の各々は「領域」として特定される。領域は重複せず、ビル内のフロアスペースの全てをカバーする必要はない。例えば、廊下はいずれの領域の部分にも含まれていなくてもよい。壁は、領域を特定する唯一の方法ではない。いくつかのビルにおいて、小部屋に分割されている非常に大きいオープンスペースがある。これらの環境において、領域は有意な任意の方法で割り当てられ得る。さらに、大きいミーティングルームはより小さい領域に論理的にさらに分割され得る。このようにさらに分割することによって、これらのさらに分割された領域内のモバイルデバイス（すなわち、人）の位置検出が可能となる。領域間を区別するために、領域の各々に少なくとも１つのベースライン測定ポイントがあるべきである（８１０）。
【００７６】
サーバ２００は、ポイントの各々について既知の信号強度ベクトルを構築する（８１２）。既知の信号強度ベクトルは、ベースステーション識別子の順序付けられているシーケンスである（８１２）。既知の信号強度ベクトルの各々の内部のベースステーション識別子は、ポイントの各々で測定された対応するベースステーションの信号強度によって順序付けられる（８１４）。
【００７７】
サーバは、次に、モバイルデバイスが位置する領域の可能性を識別するために既知の信号強度ベクトルを使用する。サーバは、ビル内の未知の位置でモバイルデバイスによって取得される（８１８）、ベースステーションの少なくともサブセットからの、信号強度を受信する（８１６）。サーバは、ベースステーション識別子の順序付けられているシーケンスを含むテスト信号強度ベクトルを構築する（８２０）。ベースステーション識別子は、未知の位置でモバイルデバイスによって計測される、対応する信号強度によって順序付けられている（８２２）。
【００７８】
サーバ２００は、次に、既知信号強度ベクトルのどれがテスト信号強度ベクトルにもっとも近いかを決定し、既知の信号強度ベクトルの各々に対応する既知の領域に基づいてモバイルデバイスが位置する領域を推定する。サーバ２００は、テスト信号強度ベクトル及び既知の信号強度ベクトルの少なくともサブセットの間の編集距離を算出する（８２４）。信号強度ベクトルペアの間の編集距離は、その他のペアの信号強度ベクトルにペアの信号強度ベクトルの１つを変形するために要求される最小操作の最小数である（８２６）。実装のいくつかにおいて、最小操作は、単一のベースステーション識別子を挿入し、単一のベースステーション識別子を除去し、単一のベースステーション識別子と異なるベースステーション識別子とを置換し、隣接する２つのベースステーション識別子を入れ替える（８２８）。これは、図６（Ａ）〜図６（Ｄ）を用いて、上記されている。実装のいくつかにおいて、どの既知の信号強度がもっとも近いかについてのより正確な推定を取得するために、編集距離はユークリッド距離（例えば、Ｌ１もしくはＬ２）と組み合わされる。これらの実装において、テスト信号ベクトル及び既知の信号強度ベクトルの間の編集距離は、テスト信号強度ベクトル及び既知の信号強度ベクトルの間のユークリッド距離を乗じた係数を含む（８３０）。
【００７９】
サーバ２００は、次に、テスト信号強度ベクトルから、算出された編集距離の中で編集距離が下位ｋ個の既知の信号強度ベクトルを選択する（８３２）。ｋは固定の正の整数である。実装のいくつかにおいて、ｋ＝１であり（８３４）、実装のいくつかにおいて、ｋ＝５である（８３６）。サーバ２００は、モバイルデバイスがｋ個の既知の信号強度ベクトルに対応する領域に基づいて、モバイルデバイスが位置する可能性を有する領域を決定する（８３８）。例えば、ｋ＝１である場合、既知の信号強度ベクトルにもっとも近い１つが位置する領域が可能性を有する領域として識別される。サーバは、次に、モバイルデバイスの位置を識別するために、探索しているユーザに当該決定を送信する（８４０）。
【００８０】
説明のために、上記では、特定の実装に関して記述した。しかしながら、上記の例示的な説明は、本発明を網羅すること、もしくは、開示の詳細な形態に本発明を限定することを意図していない。上記教示の観点から多くの変更が可能である。当業者であれば、本発明及び考えられる特定の利用に適するように様々な変更がされた様々な実装を最適に利用することが可能であるように、本発明の原理及び実用的な応用をもっとも適切に説明するために、実装を選択し、記述した。
【符号の説明】
【００８１】
１００  フロアプラン
１０２  部屋／領域
１０４  ＷｉＦｉベースステーション
２００  サーバ
２０２  ＣＰＵ
２０５  ユーザインターフェイス
２０４  通信インターフェイス
２１０  メモリ
【図２】
2014157151.tif 000005
【図３】
2014157151.tif 000006
【図４】
2014157151.tif 000007
【図５】
2014157151.tif 000008
【図６】
2014157151.tif 000009
【図７Ａ】
2014157151.tif 000010
【図７Ｂ】
2014157151.tif 000011
【図７Ｃ】
2014157151.tif 000012
【図８Ａ】
2014157151.tif 000013
【図８Ｂ】
2014157151.tif 000014
【図１】
2014157151.tif 000015