(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
屋内では、Wi−FiまたはBLEなどを用いた測位技術が提案されているものの、屋外と比較して、高精度な測位技術が確立されていない。
【0006】
また、Wi−FiアクセスポイントまたはBLE発信機から発信される電波は、端末の機種などにより受信精度が異なるため、十分な測位精度が得られない場合がある。
【0007】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、屋内において、端末の位置を高い精度で推定することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、第1の本発明は、屋内の端末の位置を測定する測位装置であって、前記端末の端末情報と、前記端末が測定した電波強度および音波強度の少なくとも1つを含むセンサ情報と、前記端末の位置情報とを、前記端末から受信する受信手段と、前記センサ情報および前記位置情報を教師データとして、前記端末情報毎に学習モデルを生成するモデル生成手段と、を備え、前記受信手段は、前記端末の端末情報と、前記センサ情報とを含む測位要求を受信し、前記端末情報に対応する学習モデルを選択し、選択した学習モデルに前記センサ情報を入力し、前記端末の位置を推定する位置推定手段を、さらに備え
、前記モデル生成手段は、位置推定時において、前記位置推定手段が推定した位置情報に対する正解の位置情報を取得し、前記正解の位置情報と前記測位要求の前記センサ情報とを教師データとして前記選択した学習モデルに入力し、前記学習モデルを更新する。
【0011】
上記測位装置において、前記モデル生成手段は、測位精度が所定の閾値以下の位置については、前記教師データを追加して前記学習モデルを更新する。
【0012】
第2の本発明は、コンピュータが行う、屋内の端末の位置を測定する測位方法であって、前記端末の端末情報と、前記端末が測定した電波強度および音波強度の少なくとも1つを含むセンサ情報と、前記端末の位置情報とを、前記端末から受信する受信ステップと、前記センサ情報および前記位置情報を教師データとして、前記端末情報毎に学習モデルを生成するモデル生成ステップと
、前記端末の端末情報と、前記センサ情報とを含む測位要求を受信し、前記端末情報に対応する学習モデルを選択し、選択した学習モデルに前記センサ情報を入力し、前記端末の位置を推定する位置推定ステップ
と、前記位置推定ステップで推定した位置情報に対する正解の位置情報を、位置推定時において取得し、前記正解の位置情報と前記測位要求の前記センサ情報とを教師データとして前記選択した学習モデルに入力し、前記学習モデルを更新するモデル更新ステップと、を行う。
【0013】
第3の本発明は、コンピュータが実行する、屋内の端末の位置を測定する測位プログラムであって、前記コンピュータを、前記端末の端末情報と、前記端末が測定した電波強度および音波強度の少なくとも1つを含むセンサ情報と、前記端末の位置情報とを、前記端末から受信する受信手段、および、前記センサ情報および前記位置情報を教師データとして、前記端末情報毎に学習モデルを生成するモデル生成手段、として機能させ、前記受信手段は、前記端末の端末情報と、前記センサ情報とを含む測位要求を受信し、前記端末情報に対応する学習モデルを選択し、選択した学習モデルに前記センサ情報を入力し、前記端末の位置を推定する位置推定手段、としてさらに機能させ
、前記モデル生成手段は、位置推定時において、前記位置推定手段が推定した位置情報に対する正解の位置情報を取得し、前記正解の位置情報と前記測位要求の前記センサ情報とを教師データとして前記選択した学習モデルに入力し、前記学習モデルを更新する。
【0014】
第4の本発明は、端末と、前記端末の屋内の位置を測定する測位装置と有する測位システムであって、前記端末は、前記端末の端末情報を収集する端末情報収集手段と、屋内に配置された各発信機から送信される電波の電波強度および音波強度の少なくとも1つを含むセンサ情報を測定し、収集するセンサ情報収集手段と、前記端末の位置情報を収集する位置情報収集手段と、前記端末情報と、前記センサ情報と、前記位置情報とを、前記測位装置に送信する送信手段と、を備え、前記測位装置は、前記端末情報と、前記センサ情報と、前記位置情報とを、前記端末から受信する受信手段と、前記センサ情報および前記位置情報を教師データとして、前記端末情報毎に学習モデルを生成するモデル生成手段と、を備え、前記受信手段は、前記端末の端末情報と、前記センサ情報とを含む測位要求を受信し、前記端末情報に対応する学習モデルを選択し、選択した学習モデルに前記センサ情報を入力し、前記端末の位置を推定する位置推定手段を、さらに備え
、前記モデル生成手段は、位置推定時において、前記位置推定手段が推定した位置情報に対する正解の位置情報を取得し、前記正解の位置情報と前記測位要求の前記センサ情報とを教師データとして前記選択した学習モデルに入力し、前記学習モデルを更新する。
【0015】
上記測位装置において、前記位置推定手段は、前記端末情報に対応する学習モデルが存在しない場合、前記端末情報に最も類似する端末情報の学習モデルを選択する。
【発明の効果】
【0016】
本発明によれば、屋内において、端末の位置を高い精度で推定することができる。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について説明する。
【0019】
<第1の実施形態>
図1は、第1の実施形態における屋内位置測位システムの構成を示す機能ブロック図である。屋内位置測位システムは、測位サーバ1(測位装置)と、測位クライアント2(端末)とを備える。
【0020】
測位サーバ1は、屋内において、測位クライアント2が測定した電波強度または音波強度などのセンサ情報を受信し、機械学習によりセンサ情報と屋内における位置との関係を学習して学習モデルを生成する。また、測位サーバ1は、生成した学習モデルを用いて、測位クライアント2から受信したセンサ情報を入力として、当該測位クライアント2の位置を推定する。
【0021】
測位クライアント2は、屋内に設置された各種の発信機31−33から発信される各電波または各音波を受信し、当該電波または音波の発信元の発信機31−33のID(識別情報)と、電波強度または音波強度とをセンサ情報として収集し、測位サーバ1に送信する。
【0022】
図1に示す測位クライアント2は、センサ情報収集部21と、学習用位置情報収集部22と、端末情報収集部23とを備える。なお、測位クライアント2には、例えば、スマートフォンなどの携帯端末を用いることができる。
【0023】
センサ情報収集部21は、Wi−Fiの電波、BLEの電波、音波などを受信し、当該電波または音波の送信元を示すIDと、電波強度または音波強度とを、センサ情報として測定し、収集する。
【0024】
なお、BLEの電波は、複数のBLE発信機31からそれぞれ発信されるビーコン信号であり、Wi−Fiの電波は、複数のWi−Fi発信機32(例えば、Wi−Fiアクセスポイント)からそれぞれ発信されるビーコン信号である。音波は、複数の音波発信機33からそれぞれ発信される、人には聞こえない音波(超音波)である。
【0025】
学習用位置情報収集部22は、測位クライアント2の屋内における現在位置(正解の位置)を、学習用位置情報として収集・取得する。なお、学習用位置情報は、例えば、測位クライアント2を使用するユーザが入力することなどが考えられる。
【0026】
端末情報収集部23は、測位クライアント2の端末情報(機種情報)を収集・取得する。端末情報は、測位クライアント2のOS種別、OSバージョン、機種名、ベンダなどである。なお、端末情報は、測位クライアント2の図示しない記憶部にあらかじめ記憶されているものとする。
【0027】
送信部24は、学習モデル生成時(学習時)においては、センサ情報収集部21が収集したセンサ情報と、学習用位置情報収集部22が収集した学習用位置情報と、端末情報収集部23が収集した端末情報とを、測位サーバ1に送信する。また、送信部24は、学習モデル利用時(測位要求時)には、センサ情報収集部21が収集したセンサ情報と、端末情報収集部23が収集した端末情報とを含む測位要求を、測位サーバ1に送信する。
【0028】
受信部25は、測位要求に対して、測位サーバ1が推定した当該測位クライアント2の位置情報を受信する。
【0029】
図1に示す測位サーバ1は、受信部11と、モデル生成部12と、モデルDB13と、位置推定部14と、送信部15とを備える。
【0030】
受信部11は、学習モデル生成時においては、センサ情報と、学習用位置情報と、端末情報とを、測位クライアント2から受信する。また、受信部11は、モデル利用時(位置推定時)には、センサ情報と、端末情報とを含む測位要求を、測位クライアント2から受信する。
【0031】
センサ情報は、測位クライアント2が測定し、収集したWi−Fi、BLEなどの電波および/または音波の送信元を示すIDと、電波強度または音波強度である。学習用位置情報は、測位クライアント2の現在位置である。端末情報は、測位クライアント2のOS種別、OSバージョン、機種名、ベンダなどである。
【0032】
モデル生成部12は、測位クライアント2から受信した情報に基づいて、測位クライアント2の位置を推定するための学習モデルを生成・更新する。すなわち、モデル生成部12は、センサ情報および学習位置情報を教師データとして、端末情報毎に学習モデルを生成する。学習モデルは、あるセンサ情報が入力された場合に、推定される測位クライアント2の位置を出力するモデル(関数)であり、本実施形態では、測位クライアント2の端末情報毎に生成される。
【0033】
学習モデルを生成する機械学習の例としては、例えば、非特許文献1に記載の「Non−Negative Multiple Matrix Factorization(NMMF)」を用いた多次元機械学習技術、「Self−Organizing Incremental Neural Network(SOINN)」、「Deep
Neural Networks(DNN)」などを用いることができる。
【0034】
本実施形態では、屋内の各地点で測位クライアント2が測定した各電波の電波強度および/または各音波の音波強度をそれぞれ組み合わせて、多次元に解析し学習モデルを生成する。
【0035】
例えば、センサ情報には、以下に示すように、各電波または各音波について、発信機のIDと、電波強度または音波強度とがペアで設定されている。
「(BLE発信機A:電波強度a)、(BLE発信機B:電波強度b)、(BLE発信機C:電波強度c)、(Wi−Fi発信機A:電波強度d)、(Wi−Fi発信機B:電波強度e)、(Wi−Fi発信機C:電波強度f)、(音波発信機A:電波強度g)」
なお、センサ情報は、電波強度および音波強度の少なくとも1つを含むものであり、電波強度のみでもよく、あるいは、音波強度のみでもよい。
【0036】
モデルDB13には、モデル生成部12が生成した学習モデルが、端末情報毎に格納される。
【0037】
位置推定部14は、モデルDB13に格納された、測位クライアント2から受信した端末情報に対応する学習モデルを用いて、測位クライアント2から受信したセンサ情報を入力として、測位クライアント2の位置を推定する。すなわち、位置推定部14は、端末情報に対応する学習モデルをモデルDB13から選択し、選択した学習モデルにセンサ情報を入力し、当該学習モデルの出力を前記端末の位置として推定する。
【0038】
なお、受信した端末情報に対応する学習モデルがモデルDB13に存在しない場合、当該端末情報に類似する端末情報(例えば、OSや機種が同じ端末情報)の学習モデルを用いて位置を推定する。
【0039】
送信部15は、位置推定部14が推定した測位クライアント2の位置を、測位クライアント2に送信する。
【0040】
上記説明した測位サーバ1および測位クライアント2は、例えば、CPUと、メモリと、ハードディスク等の外部記憶装置などを備えた汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、測位サーバ1および測位クライアント2の各機能は、測位サーバ1用のプログラムの場合は測位サーバ1のCPUが、そして、測位クライアント2用のプログラムの場合は測位クライアント2のCPUが、それぞれ実行することにより実現される。
【0041】
また、測位サーバ1用のプログラムおよび測位クライアント2用のプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD−ROMなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【0042】
次に、本実施形態の処理について説明する。
【0043】
図2は、測位サーバ1が学習モデルを生成・更新する処理の流れを示すフローチャートである。
【0044】
測位サーバ1の受信部11は、測位クライアント2から、センサ情報、学習用位置情報および端末情報を受信する(ステップS11)。
【0045】
モデル生成部12は、受信した端末情報に対応する学習モデル(測位クライアント2に対応する学習モデル)がモデルDB13に存在するか否かを判別する(ステップS12)。
【0046】
受信した端末情報に対応する学習モデルが存在する場合(ステップS12:YES)、モデル生成部12は、当該学習モデルを選択する(ステップS13)。
【0047】
受信した端末情報に対応する学習モデルが存在しない場合(ステップS12:NO)、モデル生成部12は、当該端末情報に対応する初期学習モデルを生成する(ステップS14)。ここでは、モデル生成部12は、モデルDB13に存在する学習モデルのうち、受信した端末情報と最も類似する端末情報の学習モデルを流用して、初期学習モデルとする。例えば、機種およびOSが同じで、OSバージョンが最も近い端末情報の学習モデルを、最も類似する端末情報の学習モデルとして流用することが考えられる。
【0048】
モデル生成部12は、測位クライアント2から受信したセンサ情報および学習用位置情報を教師データとして、ステップS13またはS14で選択・生成した学習モデルに入力し、センサ情報を入力とした場合に、学習用位置情報が出力される(正解となる)ように学習モデルを生成・更新する(ステップS15)。
【0049】
図3は、測位サーバ1が測位クライアント2の位置を推定する処理の流れを示すフローチャートである。
【0050】
測位サーバ1の受信部11は、測位クライアント2から、センサ情報および端末情報を含む測位要求を受信する(ステップS21)。
【0051】
位置推定部14は、受信した端末情報に対応する学習モデルがモデルDB13に存在するか否かを判別する(ステップS22)。
【0052】
受信した端末情報に対応する学習モデルが存在する場合(ステップS22:YES)、位置推定部14は、当該学習モデルを選択する(ステップS23)。
【0053】
受信した端末情報に対応する学習モデルが存在しない場合(ステップS22:NO)、位置推定部14は、汎用の学習モデルを選択する(ステップS24)。ここでは、位置推定部14は、モデルDB13に存在する学習モデルのうち、受信した端末情報と最も類似する端末情報の学習モデルを、汎用学習モデルとして選択することとしてもよい。
【0054】
位置推定部14は、ステップS23またはS24で選択した学習モデルに、測位クライアント2から受信したセンサ情報を入力して、測位クライアント2の位置を推定する(ステップS25)。
【0055】
送信部15は、位置推定部14が推定した位置の位置情報を測位クライアント2に送信する(ステップS26)。
【0056】
<第2の実施形態>
第2の実施形態は、CGM(Consumer Generated Media)的に学習モデルの教師データを収集するものである。
【0057】
前述の第1の実施形態では、学習モデル生成時においてのみ学習用位置情報を収集し、学習モデルを生成・更新することとした。これに対し、本実施形態では、学習モデル利用時(位置推定時)においても、測位クライアント2のユーザが入力した正解の位置情報を収集し、学習モデルを更新する。
【0058】
本実施形態の構成については、第1の実施形態(
図1)と同様であるため、ここでは説明を省略する。
【0059】
図4は、本実施形態における、測位サーバ1が測位クライアント2の位置を推定する処理の流れを示すフローチャートである。
【0060】
図4に示すステップS31〜S35は、
図3に示す処理のステップS21〜S25と同じであるため、ここでは、説明を省略する。
【0061】
ステップS36で、送信部15は、位置推定部14が推定した位置の位置情報を測位クライアント2に送信する。本実施形態では、送信部15は、推定した位置情報とともに、測位対象の屋内を示す画像データを測位クライアント2に送信する。測位クライアント2は、送信された画像データを表示する。
【0062】
図5(a)は、測位クライアント2のディスプレイに表示される画像データの一例である。図示する画像データには、測位サーバ1が推定した推定位置「×」が、設定されている。なお、画像データは、位置推定部14が生成するものとする。
【0063】
測位クライアント2のユーザは、画像データの推定位置「×」が、自ら認識する正解位置と異なる場合、
図5(b)に示すように、自分が認識する正解位置「○」を画像データ上で入力し、図示しない学習ボタンをクリックする。測位クライアント2の学習用位置情報収集部22は、ユーザが入力した正解位置の位置情報を、送信部24を介して、測位サーバ1に送信する。
【0064】
測位サーバ1のモデル生成部12は、受信部11を介して、推定した位置情報に対する正解位置の位置情報を受信する(ステップS37)。
【0065】
モデル生成部12は、受信した正解位置の位置情報と、S31で受信した測位要求のセンサ情報とを教師データとして、ステップS33またはS34で選択または生成した学習モデルに入力し、当該学習モデルを更新する(ステップS38)。すなわち、モデル生成部12は、センサ情報を入力とした場合に、正解位置の位置情報が出力されるように学習モデルを更新する。
【0066】
このように、本実施形態では、測位要求を行ったユーザが自ら認識する正解位置の情報を収集し、教師データとして学習モデルを更新することで、学習モデルを精緻化することができる。
【0067】
<第3の実施形態>
第3の実施形態は、測位精度が悪い地点に対して、追加学習を行う実施形態である。
【0068】
図6に示すように、屋内には、壁、机、観葉植物などの物体が配置されており、測位環境は一律ではない。そのため、多数の教師データを要する地点(測位精度が悪い地点)と、少数の教師データでも十分な地点(測位精度が良い地点)とが存在する。図示する例では、各学習地点の中で、壁などの物体の近傍の地点が、測位精度が悪い地点として示されている。
【0069】
本実施形態では、精度が悪い地点については、さらに教師データを収集し、学習モデルに入力して追加学習させて、当該地点における学習モデルの精度を向上させる。
【0070】
本実施形態の構成については、第1の実施形態(
図1)と同様であるため、ここでは説明を省略する。
【0071】
本実施形態では、学習モデルの生成後、各地点において、推定した位置の精度を算出する。例えば、
図6に示す、各学習地点×において、測位サーバ1は、学習モデルを用いて推定した位置と、測位クライアント2が実際にいる位置(学習地点×)との差に基づいて精度を算出し、精度が閾値以下の場合、追加学習を行うものとする。
【0072】
図7は、本実施形態における測位サーバ1が、各学習地点×において、追加学習を行うか否かの判定処理の流れを示すフローチャートである。
【0073】
図7に示すステップS41〜S45は、
図3に示す処理のステップS21〜S25と同じであるため、ここでは、説明を省略する。
【0074】
ステップS46で、位置推定部14は、推定した位置と、測位クライアント2が実際にいる学習地点との差(誤差)を算出し、当該差を用いて精度を算出する。なお、差が小さいほど精度は高くなり、差が大きいほど精度は低くなるように算出する。
【0075】
そして、位置推定部14は、算出した精度が所定の閾値以下か否かを判別し(ステップS47)、閾値以下の地点については、追加学習を行う(ステップS48)。
【0076】
すなわち、所定の閾値以下の地点については、当該地点において、
図2に示すモデル作成処理を所定回数、繰り返し行うことで、モデル生成部12は、追加の教師データを学習モデルに入力し、学習モデルを更新する。
【0077】
図8(a)は、測位精度が良い地点Pにおける、教師データのセンサ情報を多次元のグラフにマッピングしたものである。
図8(a)では、教師データが少なくても、クラスタが比較的明確であり、これにより、学習モデルの測位精度が高いことを示している。
【0078】
一方、
図8(b)は、測位精度が悪い地点Qにおいて、追加学習後の教師データのセンサ情報を多次元のグラフにマッピングしたものである。
図8(b)では、追加学習により教師データの数が増えることで、クラスタの境界が明確になり、学習モデルの測位精度が向上する。
【0079】
なお、
図8に示す「○」は、あるクラスタ(図示する例では、BLE−A,BLE−B, Wi−Fi−α)における教師データであって、「×」は、他のクラスタにおける教師データを示すものである。クラスタは、少なくとも1つの所定のIDの発信機から送信される電波および/または音波の組み合わせ毎に、生成される。
【0080】
以上説明した第1から第3の実施形態では、測位サーバ1は、測位クライアント2の端末情報と、測位クライアント2が測定した電波強度および音波強度の少なくとも1つを含むセンサ情報と、測位クライアント2の位置情報とを、測位クライアント2から受信し、センサ情報および位置情報を教師データとして、端末情報毎に学習モデルを生成する。本実施形態では、測位クライアント2のOS種別や機種など、測位に影響を与える端末情報毎に、学習モデルを生成するため、屋内であっても、より精度の高い測位を行うことができる。
【0081】
また、第2の実施形態では、学習モデルの利用時(位置推定時)においても、測位要求を行ったユーザが入力した正解の位置情報を収集し、学習モデルを更新する。これにより、学習モデルの利用時においても、学習モデルを更新し、より精緻化することができる。
【0082】
また、第3の実施形態では、測位精度が悪い地点については、教師データを追加して、追加学習を行い、学習モデルを更新する。これにより、もともと測位精度が悪い地点であっても、測位精度を向上させることができる。
【0083】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。