以下に、本願に係る推定装置、推定方法及び推定プログラムを実施するための形態(以下、「実施形態」と呼ぶ。)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る推定装置、推定方法及び推定プログラムが限定されるものではない。また、以下の各実施形態において同一の部位及び処理には同一の符号を付し、重複する説明は省略される。
また、以下の説明では、推定装置が実行する処理として、利用者が乗車した車両を目的地まで案内するカーナビゲーションの一例について説明するが、実施形態は、これに限定されるものではない。例えば、推定装置は、利用者が歩行している場合や列車等、車両以外の交通手段を利用している場合にも、以下に説明する処理を実行し、利用者を目的地まで案内する処理を実行してもよい。
〔1.移動状態の概要〕
まず、図1を用いて、推定装置の一例である端末装置10が判定する移動態様の概念について説明する。図1は、実施形態に係る端末装置が発揮する作用効果の一例を説明するための図である。例えば、端末装置10は、スマートフォン、タブレット端末やPDA(Personal Digital Assistant)等の移動端末、ノート型PC(Personal Computer)等の端末装置であり、移動通信網や無線LAN(Local Area Network)等のネットワークNを介して、任意のサーバと通信可能な端末装置である。
また、端末装置10は、利用者が乗車した車両C10を目的地まで案内するカーナビゲーションの機能を有する。例えば、端末装置10は、利用者から目的地の入力を受付けると、利用者を目的地まで誘導するための経路情報を、図示を省略したサーバ等から取得する。例えば、経路情報には、車両C10が利用可能な目的地までの経路、経路に含まれる高速道路の情報、経路上の渋滞情報、案内の目印となる施設、画面上に表示する地図の情報、案内時に出力する音声や地図等の画像等のデータが含まれる。
また、端末装置10は、GPS(Global Positioning System)等の衛星測位システムからの測位信号を用いて、端末装置10の位置(以下、「現在地」と記載する。)を所定の時間間隔で特定する測位機能を有する。そして、端末装置10は、経路情報に含まれる地図等の画像を液晶画面やエレクトロルミネッセンス、LED(Light Emitting Diode)画面等(以下、単に「画面」と記載する。)に表示すると共に、特定した現在地をその都度地図上に表示する。また、端末装置10は、特定した現在地に応じて、左折や右折、使用する車線の変更、目的地への到着予定時間等を表示、若しくは、端末装置10や車両C10のスピーカー等から音声により出力する。
ここで、衛星測位システムでは、複数の衛星から発信された信号を受信し、受信した信号を用いて、端末装置10の現在地を特定する。このため、端末装置10は、トンネルの中やビル群に挟まれた場所等、衛星から発信された信号を適切に受信できない場合には、現在地を特定することができない。また、端末装置10に案内を実現させるアプリケーション等は、車両C10から速度や移動方向等の情報を取得する機能を有していない。このため、加速度を測定する加速度センサを端末装置10に設置し、加速度センサが測定した加速度に基づいて、端末装置10の現在位置を推定する手法が考えられる。例えば、加速度センサが測定した加速度に基づいて、端末装置10の移動速度や移動方向等を推定する推定処理や、端末装置10が移動しているか停止しているかを判定する停止判定を行う手法が考えられる。
より具体的な例を説明する。例えば、端末装置10は、衛星から発信された信号を適切に受信できない場合には、車両C10がトンネル等に入ったと判定し、最後に特定した車速および移動方向でそのまま推定位置を進める。また、端末装置10は、測定した加速度に基づいて、車両C10が停止しているか否かを判定し、車両C10が停止していると判定した場合には、推定位置の移動を停止させる。一方、端末装置10は、車両C10が停止していないと判定した場合には、測定した加速度を用いて、移動体である車両C10の移動速度を推定し、推定した移動速度で移動しているものとして、案内を継続する。
〔1−1.速度推定技術の一例〕
ここで、車両C10の移動速度を推定する速度推定技術の一例について説明する。なお、ここで示す技術は、本発明の前段階となる技術の一例であるが、本来の従来技術に属するものではない。すなわち、ここで示す技術は、本出願人が開発、試験、研究等のために秘密裡に実施している技術であり、いわゆる公知、公用または文献公知など秘密を脱した技術ではない。
例えば、図1のステップS1の「端末座標系」に示すように、端末装置10は、画面の短尺方向をx軸とし、画面の長尺方向をy軸とし、画面に対して垂直な方向をz軸として、各xyz軸方向の加速度を測定する。例えば、端末装置10は、画面を正面とした際に、正面側を+z軸方向、背面側を−z軸方向とし、端末装置10の利用時において画面上側を+x軸方向、画面下側を−x軸方向、画面左側を+y軸方向、画面右側を−y軸方向とする端末座標系における加速度を測定する。
一方、図1のステップS1の「車両座標系」に示すように、利用者が使用する車両C10の移動方向や速度は、車両C10が進行する方向をZ軸とし、Z軸に対して垂直な平面上において、車両C10が進行する際に左折若しくは右折する方向をY軸方向とし、車両C10の上下方向をX軸方向とする車両座標系で表される。例えば、車両C10の移動方向や速度は、車両C10の上方向を+X軸方向、下方向(すなわち、地面側)を−X軸方向、左折する方向を+Y軸方向、右折する方向を−Y軸方向、車両C10の後ろ方向を+Z軸方向、前方向を−Z軸方向とする車両座標系で表される。
ここで、車両座標系と端末座標系とは、端末装置10の設置姿勢等に応じたずれを有することとなる。そこで、端末装置10は、例えば、端末座標系で測定した加速度を用いて、重力方向(図1に示すG)、すなわち、車両座標系の−X軸方向を推定し、車両C10が加減速する際や移動方向を変化させる際に生じた加速度の分散を用いて車両C10の移動方向を特定し、推定した基準方向と移動方向とに基づいて、端末座標系で測定した加速度を車両座標系に変換する回転行列を求める。そして、端末装置10は、回転行列を用いて、端末座標系の加速度を車両座標系の加速度に変換し、変換後の加速度を用いて、車両C10が停止しているか否かの停止判定や、車両C10の移動速度の推定を実行する。
例えば、端末装置10は、変換後の加速度の各軸方向における振幅、振動数、平均値、標準偏差、最大値、最小値等の情報を特徴量として収集する。また、端末装置10は、車両C10の速度が所定の閾値以上である際に取得された特徴量については、走行中の特徴量として蓄積し、車両C10の速度が所定の閾値以下である際に取得された特徴量については、停止中の特徴量として蓄積する。
そして、端末装置10は、蓄積した特徴量を用いて、車両C10が停止しているか否かを判定する停止判定モデル(例えばサポートベクトルマシン(SVM:Support Vector Machine)等による)を学習し、学習した停止判定モデルを用いて、トンネル等の衛星測位システムが使用できない場合に、車両C10が停止しているか否か判定する。そして、端末装置10は、車両C10が停止していないと判定した場合には、車両座標系で取得された加速度のうち、移動方向を含む面上の加速度の値の積分値に基づいて、車両C10の移動速度を推定する。
しかしながら、このような技術では、道路の傾斜や曲がり角等の要因により、車両座標系と端末座標系とを正確に揃えるのが困難であるため、測定された加速度から車両の移動速度を精度良く推定することが難しいという問題がある。
また、利用者は、サービスエリア等で端末装置10を所持して下車する場合がある。この結果、端末装置10の姿勢が変化した場合は、回転行列が変化するため、改めて進行方向を特定し、特定した進行方向と基準方向とに基づいて回転行列を求め直す必要がある。しかしながら、このような処理を実行した場合にも、進行方向が特定されるまでは、車両の停止判定や、車両の移動速度を推定することができない。また、道路が傾斜している場合や、曲がり角等で進行方向が変化した場合等には、端末座標系と車両座標系とにずれが生じうるため、判定結果や車両の移動速度に誤差が生じやすい。
なお、GPS信号の受信可能時(例えば、トンネル突入時)の速度で車両C10が定速走行しているものと仮定して、端末装置10が案内を継続することも考えられる。しかしながら、この場合、トンネル内で渋滞に遭遇した場合等、車両速度が大きく変化した場合に、推定速度が実際の速度からかけ離れ、案内が困難になってしまう場合がある。
〔2.実施形態に係る端末装置10が実行する処理について〕
そこで、端末装置10は、以下の処理を実行する。例えば、端末装置10は、車両C10等、端末装置10が設置された移動体における加速度を検出する。また、端末装置10は、加速度に基づいた特徴量を取得し、速度帯と特徴量とを紐付ける。このとき、端末装置10は、測位信号に基づく位置情報により判別される速度に基づき、特徴量に紐付ける速度帯を判別してもよい。そして、端末装置10は、特徴量の限界値に基づいて速度を推定する。例えば、端末装置10は、トンネル内等、測位信号に基づく位置情報が取得できないときには、特徴量の限界値(上限値或いは下限値)に基づいて所定の特徴量における速度を推定する。限界値は速度帯毎の値であってもよい。ここで、所定の特徴量は、例えば、測位信号に基づく位置情報が取得できないときに取得された加速度に基づき算出された特徴量である。
端末装置10は、推定した速度(「所定の特徴量における速度」)を、移動体或いは端末装置10の移動速度そのものとして使用してもよいし、別途推定する推定速度の速度リミッター(上限速度或いは制限速度)として使用してもよい。なお、別途推定する推定速度は、一定速度(例えば、トンネル突入時の速度)であってもよいし、SVM等による学習モデルを使用して加速度から推定した速度であってもよい。
以下、図を用いて、上述した処理を実現する端末装置10の機能構成及び作用効果の一例を説明する。
〔2−1.機能構成の一例〕
図2は、実施形態に係る端末装置が有する機能構成の一例を説明する図である。図2に示すように、端末装置10は、通信部11、記憶部12、複数の加速度センサ13a〜13c(以下、総称して「加速度センサ13」と記載する場合がある。)、アンテナ14、出力部15、制御部16を有する。通信部11は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部11は、ネットワークNと有線または無線で接続され、端末装置10と、端末装置10から目的地を受信すると、目的地までの経路を示す経路情報を配信する配信サーバとの間で情報の送受信を行う。
記憶部12は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部12には、案内を実行するために用いる各種データが格納される。例えば、記憶部12は、案内情報データベース12a、特徴量データベース12b、速度帯データベース12c、および限界値データベース12d、モデル12e等のデータを記憶する。
案内情報データベース12aは、端末装置10が案内を行う際に用いる各種のデータが登録される。例えば、案内情報データベース12aには、不図示のサーバ等から受信した目的地までの経路情報が格納される。また、案内情報データベース12aには、案内において出力される各種の画像や音声データ等が格納される。
特徴量データベース12bには、端末装置10が取得した特徴量が登録される。具体的には、特徴量データベース12bには、加速度センサ13で検出した加速度に基づき算出された特徴量と、その特徴量を収集した際における移動速度と、を紐付けたデータが登録される。
図3は、実施形態に係る特徴量データベース12bに登録される情報の一例を示す図である。図3に示すように、特徴量データベース12bには、「日時」、「速度」、「特徴量」といった項目を有する情報が登録される。「日時」は該当の特徴量を収集した際における日時であり、例えば、「2017/6/1/10:00:15」といった情報である。「速度」は該当の特徴量を収集した際における速度であり、例えば、「30km/h」といった情報である。「特徴量」は、加速度センサ13で検出した加速度に基づき算出される値であり、例えば、加速度の重力方向の成分の所定期間(例えば、1秒間)の平均である。図3の例であれば、「0.021」といったデータが特徴量となる。特徴量については後述する。特徴量データベース12bは、後述の限界値更新処理で使用される。
速度帯データベース12cには、速度帯毎の特徴量が格納される。速度帯データベース12cは、後述の限界値抽出処理で限界値算出のためのワークスペースとして使用される。速度帯データベース12cには、速度帯毎に、複数個の特徴量を格納するための領域が用意されている。
図4は、実施形態に係る速度帯データベース12cに登録される情報の一例を示す図である。図4に示すように、速度帯データベース12cには、「ID」、「速度帯」、「データ1」〜「データ10」といった項目を有する情報が登録される。「ID」は、各速度帯に付された識別番号である。「速度帯」は、特徴量が取得された際における端末装置10の移動速度が属する速度帯を示す情報である。図4の例の場合、「速度帯」の幅は、3〜8km、8〜13km/hといった5km/h幅となっている。なお、速度帯の幅は5km/hに限定されない。速度帯の幅は5km/hより大きくてもよいし小さくてもよい。速度帯は速度を含む概念である。つまり、速度帯の幅を小さくしたものが速度である。また、「データ1」〜「データ10」は、後述の限界値抽出処理で限界値算出のためのワークスペースである。1つのデータ領域に1つの特徴量が格納される。図4の例では、1つの速度帯で10個の特徴量が格納可能である。
限界値データベース12dには、速度帯毎の限界値が格納される。限界値は、端末装置10が取得する複数の特徴量のうち、各速度帯で出現する特徴量の上限又は下限の値である。限界値は、後述の限界値抽出処理で取得され、限界値データベース12dに登録される。
図5は、実施形態に係る限界値データベース12dに登録される情報の一例を示す図である。図5に示すように、限界値データベース12dには、「ID」、「速度帯」、「限界値」といった項目を有する情報が登録される。「ID」は、各速度帯に付された識別番号である。「速度帯」は、限界値の基となった特徴量が取得された際における端末装置10の移動速度が属する速度帯を示す情報である。「限界値」は、後述の限界値抽出処理で取得された限界値である。
モデル12eには、端末装置10が測位信号に基づく位置情報が取得できないときに、端末装置10が移動体或いは端末装置10の速度(上限速度)を算出するためのデータ(学習モデル)が格納される。例えば、モデル12eは、限界値と速度帯(速度を含む)とを関連付けたデータである。また、モデル12eは、加速度センサ13で取得された加速度或いは加速度に基づく特徴量が入力される入力層と、出力層と、入力層から出力層までのいずれかの層であって出力層以外の層に属する第1要素と、第1要素と第1要素の重みとに基づいて値が算出される第2要素と、を含み、入力層に入力された加速度或いは加速度に基づく特徴量に応じて、移動体或いは端末装置10の速度(上限速度)を出力層から出力するよう、端末装置10を機能させてもよい。このとき、第1要素は、加速度或いは加速度に基づく特徴量であり、第2要素は、移動体或いは端末装置10の速度(上限速度)である。重みは、例えば、限界値に基づくデータであってもよい。
ここで、モデル12eが「y=a1*x1+a2*x2+・・・+ai*xi」で示す回帰モデルで実現されるとする。この場合、モデル12eが含む第1要素は、x1やx2等といった入力データ(xi)に対応する。また、第1要素の重みは、xiに対応する係数aiに対応する。ここで、回帰モデルは、入力層と出力層とを有する単純パーセプトロンと見做すことができる。各モデルを単純パーセプトロンと見做した場合、第1要素は、入力層が有するいずれかのノードに対応し、第2要素は、出力層が有するノードと見做すことができる。
また、モデル12eがDNN(Deep Neural Network)等、1つまたは複数の中間層を有するニューラルネットワークで実現されるとする。この場合、モデル12eが含む第1要素は、入力層または中間層が有するいずれかのノードに対応する。また、第2要素は、第1要素と対応するノードから値が伝達されるノードである次段のノードに対応する。また、第1要素の重みは、第1要素と対応するノードから第2要素と対応するノードに伝達される値に対して考慮される重みである接続係数に対応する。
端末装置10は、上述した回帰モデルやニューラルネットワーク等、任意の構造を有するモデルを用いて、端末装置10の速度(上限速度)の算出を行う。具体的には、モデル12eは、加速度センサ13で取得された加速度或いは加速度に基づく特徴量が入力された場合に、移動体或いは端末装置10の速度(上限速度)を出力するように係数が設定される。端末装置10は、このようなモデル12eを用いて、移動体或いは端末装置10の速度(上限速度)を算出する。
なお、上記例では、モデル12eが加速度センサ13で取得された加速度或いは加速度に基づく特徴量が入力された場合に、移動体或いは端末装置10の速度(上限速度)を出力するモデル(以下、モデルXという。)である例を示した。しかし、実施形態に係るモデル12eは、モデルXにデータの入出力を繰り返すことで得られる結果に基づいて生成されるモデルであってもよい。例えば、モデル12eは、加速度センサ13で取得された加速度或いは加速度に基づく特徴量を入力とし、モデルXが出力する移動体或いは端末装置10の速度(上限速度)を出力とするよう学習されたモデル(以下、モデルYという。)であってもよい。または、モデル12eは、加速度センサ13で取得された加速度或いは加速度に基づく特徴量を入力とし、モデルYの出力値を出力とするよう学習されたモデルであってもよい。
また、端末装置10がGAN(Generative Adversarial Networks)を用いた推定処理を行う場合、モデル12eは、GANの一部を構成するモデルであってもよい。なお、モデル12eは、限界値データベース12dと同様の構造のデータであってもよい。
図2に戻り、説明を続ける。加速度センサ13は、所定の時間間隔で、端末装置10に係る加速度の大きさと方向とを測定する。例えば、加速度センサ13aは、端末座標系におけるx軸方向の加速度を測定する。加速度センサ13bは、端末座標系におけるy軸方向の加速度を測定する。加速度センサ13cは、端末座標系におけるz軸方向の加速度を測定する。すなわち、端末装置10は、各加速度センサ13a〜13cが測定した加速度を端末座標系の各軸方向の加速度とすることで、端末装置10に対する加速度の向きと大きさとを示すベクトルを取得することができる。
アンテナ14は、GPS等の衛星測位システムに用いられる測位信号を衛星から受信するためのアンテナである。また、出力部15は、案内を行う際に地図や現在地を表示するための画面や、音声を出力するためのスピーカーである。なお、加速度センサ13やアンテナ14は、所定のハードウェアにより実現される。
制御部16は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、端末装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部16は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。図2に示す例では、制御部16は、案内実行部17、音声出力部18、画像出力部19、移動状態推定部20(以下、総称して各処理部と記載する場合がある。)を有する。また、移動状態推定部20は、検出部21、設定部22、変換部23、取得部24、判別部25、推定部26を有する。
また、移動状態推定部20は、生成部27、予測部28を有する。生成部27は、モデル12eを生成し、生成したモデル12eを記憶部12に格納する。例えば、生成部27は、加速度或いは加速度に基づく特徴量と、その加速度取得時の移動体或いは端末装置10の速度とに基づいて速度帯と限界値とを関連付けたデータを生成する。なお、生成部27は、いかなる学習アルゴリズムを用いてモデル12eを生成してもよい。例えば、生成部27は、ニューラルネットワーク(neural network)、サポートベクターマシン(support vector machine)、クラスタリング、強化学習等の学習アルゴリズムを用いてモデル12eを生成する。一例として、生成部27がニューラルネットワークを用いてモデル12eを生成する場合、モデル12eは、一以上のニューロンを含む入力層と、一以上のニューロンを含む中間層と、一以上のニューロンを含む出力層とを有する。
予測部28は、測位信号に基づく位置情報が取得できないときの移動体或いは端末装置10の速度(上限速度)を予測する。例えば、予測部28は、モデル12eに従った情報処理により、加速度或いは加速度に基づく特徴量を入力層に入力する。そして、予測部28は、入力データを中間層と出力層に伝播させることで出力層から移動体或いは端末装置10の速度(上限速度)を出力させる。
なお、制御部16が有する各処理部(案内実行部17〜移動状態推定部20)は、以下に説明するような案内処理の機能・作用(例えば図1)を実現・実行するものであるが、これらは説明のために整理した機能単位であり、実際のハードウェア要素やソフトウェアモジュールとの一致は問わない。すなわち、以下の案内処理の機能・作用を実現・実行することができるのであれば、端末装置10は、任意の機能単位で案内処理を実現・実行して良い。
〔2−2.案内処理における作用効果の一例〕
以下、図6に示すフローチャートを用いて、各処理部(案内実行部17〜移動状態推定部20)が実行・実現する案内処理の内容について説明する。図6は、実施形態に係る端末装置が実行する案内処理の流れの一例を説明するフローチャートである。
まず、案内実行部17は、利用者から目的地が入力されたか否かを判定する(ステップS11)。そして、案内実行部17は、目的地が入力された場合は(ステップS11:Yes)、図示を省略した外部のサーバから経路情報を取得する(ステップS12)。ここで、案内実行部17は、GPSが使えるか否かを判定する(ステップS13)。
例えば、案内実行部17は、アンテナ14が衛星からの測位信号を受信できない場合や、測位信号を受信できた衛星の数が所定の閾値よりも少ない場合等には、GPSが使用できないと判定し(ステップS13:Yes)、移動状態推定部20により推定された車両の移動方向や速度から現在位置(位置情報)を取得する(ステップS14)。例えば、案内実行部17は、移動状態推定部20により推定された現在地を取得する。なお、移動状態推定部20が車両C10の現在地を推定する処理の具体的な内容については、後述する。
一方、案内実行部17は、GPSが使えると判定した場合は(ステップS13:No)、GPSを用いて現在地を特定する(ステップS105)。そして、案内実行部17は、音声出力部18や画像出力部19を制御し、GPSを用いた現在地若しくは推定した現在地を用いて、案内を出力する(ステップS15)。例えば、音声出力部18は、案内実行部17からの制御に従って、現在地や車両C10が進むべき方向等を示す音声を出力部15から出力する。また、画像出力部19は、案内実行部17からの制御に従って、現在地と周辺の地図とを重ねた画像や、車両C10が進むべき方向等を示す画像を出力部15から出力する。
続いて、案内実行部17は、現在地が目的地の周辺であるか否かを判定する(ステップS16)。そして、案内実行部17は、現在地が目的地の周辺であると判定した場合は(ステップS16:Yes)、音声出力部18や画像出力部19を制御して案内の終了を示す終了案内を出力し(ステップS15)、処理を終了する。一方、案内実行部17は、現在地が目的地の周辺ではないと判定した場合は(ステップS16:No)、ステップS13を実行する。なお、案内実行部17は、目的地が入力されていない場合は(ステップS11:No)、入力されるまで待機する。
〔2−3.限界値更新処理における作用効果の一例〕
次に、図7に示すフローチャートを用いて、検出部21、設定部22、変換部23、取得部24、および判別部25が実行・実現する限界値更新処理の内容について説明する。図7は、実施形態に係る端末装置が実行する限界値更新処理の流れの一例を説明するフローチャートである。なお、検出部21、設定部22、変換部23、取得部24、および判別部25は、図7に示す限界値更新処理を所定の期間(例えば、1秒)ごとに実行する。限界値更新処理は、例えば、測位信号に基づく位置情報が取得可能なときに実行される。図7に示す各処理は、例えば、図1のステップS1〜ステップS4に示す処理に対応する。
まず、検出部21は、加速度センサ13から加速度を取得する(ステップS21)。具体的には、加速度センサ13が所定の時間間隔で、端末座標系の(x、y、z)軸方向ごとに測定した加速度の大きさを取得する。また、検出部21は、所定の期間の間に加速度センサ13が測定した加速度の大きさの平均値を、端末座標系の各軸方向ごとに算出する(ステップS22)。例えば、検出部21は、加速度センサ13が20ミリ秒ごと(すなわち、1秒間に50回の割合)に検出した端末座標系の加速度を1秒分収集する。そして、検出部21は、収集した各加速度のx軸方向の値の平均値xm、y軸方向の値の平均値ym、z軸方向の値の平均値zm、をそれぞれ算出し、算出した各軸方向の平均値からなるベクトル(xm、ym、zm)を平均ベクトルGとする。検出部21は、平均ベクトルGの方向と重力方向を精度よく一致させるため、端末座標系の加速度を1秒より長い間(例えば、1秒〜1分間)収集してもよい。
なお、平均ベクトルGの方向は、車両が停止している場合や車両が等速度で移動している場合には、重力加速度の方向と略一致する。平均ベクトルGの方向と重力方向を精度よく一致させるため、検出部21は、車両が停止しているか否か、或いは、車両が等速移動しているか否かを測位信号等に基づき判別し、車両が停止しているとき、或いは、車両が等速移動しているときの各軸方向の平均値からなるベクトル(xm、ym、zm)を平均ベクトルGとしてもよい。なお、車両が停止しているか否か、或いは、車両が等速移動しているか否かは、学習モデルを使用しても判別可能である。例えば、端末装置10は、加速度に基づく特徴量及びGPS速度に基づいて、車両が停止しているか否かを判定する停止判定モデルや、車両が移動する速度帯を推定する速度推定モデルを学習する。そして、端末装置10は、停止判定モデルや速度推定モデルを用いて、車両が停止しているか否か、或いは、車両が等速移動しているか否かを判別する。
続いて設定部22は、検出部21によって算出された加速度に基づいて、基準方向を特定する。例えば、設定部22は、加速度の平均ベクトルから基準方向を特定する(ステップS23)。より具体的には、設定部22は、検出部21によって算出された加速度の平均値からなる平均ベクトルGの方向を、基準方向とする。そして、変換部23は、端末座標系の所定の軸方向を設定部22が設定した基準方向に一致させる回転行列を算出する(ステップS24)。そして、変換部23は、算出した回転行列を用いて、検出部21により端末座標系で取得された加速度の各成分を変換する(ステップS25)。すなわち、変換部23は、検出部21によって取得された加速度を、車両座標系ではなく、基準方向を基準とする座標系の加速度に変換する。
例えば、設定部22は、加速度の平均ベクトルGの方向を基準方向として設定する。そして、変換部23は、図1のステップS2に示すように、端末座標系の−x軸方向と平均ベクトルGの方向とが一致するような回転行列を算出する。上述したように、車両C10が停止している場合等では、平均ベクトルGの方向が重力加速度の方向と一致すると予測される。そこで、変換部23は、端末座標系の−x軸方向と平均ベクトルGの方向とを一致させることで、端末座標系の−x軸方向と車両座標系のX軸方向とを一致させる。
なお、変換部23は、SVMやGPS速度等を用いて、車両C10が停止しているか否かを判定し、車両C10が停止していると判定された際に加速度センサ13が取得した加速度の平均ベクトルGの方向を基準方向としてもよい。また、変換部23は、端末座標系の−x軸方向と平均ベクトルGの方向とが一致するような回転行列であれば、任意の回転行列を採用してよい。すなわち、変換部23は、y軸方向やz軸方向を任意の方向へと回転させる回転行列を採用してよい。
そして、変換部23は、算出した回転行列を用いて、端末座標系で測定された加速度を、加速度の平均値を基準とする座標系(以下、推定座標系と記載する。)へと変換する。なお、以下の説明では、推定座標系における平均ベクトルGの方向を−x軸方向とする。また、以下の説明では、推定座標系における−x軸方向を基準方向と記載する場合がある。
続いて、取得部24は、検出部21が取得した加速度に基づいて加速度ベクトルの大きさを算出する(ステップS26)。このとき、取得部24が算出する加速度ベクトルの大きさは、検出部21が取得した加速度の、平均ベクトルGの方向の成分(平均ベクトルGの方向の加速度ベクトル)の大きさと、平均ベクトルGの方向に対して垂直な方向の成分
(平均ベクトルGの方向に対して垂直な方向の加速度ベクトル)の大きさである。平均ベクトルGの方向は、推定座標系におけるx軸方向であり、平均ベクトルGの方向に対して垂直な方向は、平均ベクトルGの方向に対して垂直な面(以下、水平面と記載する。)に沿った方向である。取得部24は、所定の期間(例えば、1秒間)の間に加速度センサ13が測定した所定回数分(例えば、50回分)の加速度それぞれについて加速度ベクトルを算出してもよい。
そして、取得部24は、ステップS26で算出した加速度ベクトルの大きさに基づいて特徴量を算出する(ステップS27)。取得部24は、基準方向の加速度に基づく値を特徴量として算出してもよいし、基準方向に対して垂直な方向の加速度に基づく値を特徴量として算出してもよい。取得部24は、例えば、以下の通り特徴量を算出する。
まず、取得部24は、変換部23によって座標変換がなされた加速度の各軸成分のうち、平均ベクトルGの方向の加速度の大きさと、水平面上の加速度の大きさと、を求める。すなわち、取得部24は、図1のステップS3に示すように、推定座標系における基準方向の加速度の大きさ「a_ver」と、基準方向に垂直な方向の加速度の大きさ「a_hor」と、を求める。より具体的には、推定座標系における加速度の成分を「a_x、a_y、a_z」と記載すると、取得部24は、成分「a_x」に−1を乗じた値を「a_ver」として算出し、成分「a_y」の二乗と成分「a_z」の二乗との和の平方根の値を「a_hor」として算出する。
そして、取得部24は、算出した「a_hor」と「a_ver」それぞれについて、所定期間(例えば、1秒間)或いは所定回数(例えば、50回)の平均値、標準偏差、最大値および最小値を算出する。取得部24は、8つの値(a_horの平均値、標準偏差、最大値および最小値、a_verの平均値、標準偏差、最大値および最小値)の少なくとも1つを特徴量として取得する。なお、後述するように、特徴量としては、a_horの平均値、標準偏差および最大値、a_verの標準偏差、最大値および最小値の6つが望ましい。以下の説明では、一例として、取得部24は、a_horの平均値(以下、Average_horともいう。)を特徴量として取得するものとする。
続いて、取得部24は、ステップS27で算出した特徴量と速度とを紐付ける(ステップS28)。特徴量と紐付けされる速度は、測位信号により判別される位置情報に基づく速度であってもよい。例えば、特徴量と紐付けされる速度は、GPS速度であってもよい。取得部24は、特徴量と速度とを紐付けて特徴量データベース12bに登録する。特徴量と速度には、図5に示すように、特徴量を取得した日時の情報が紐付けられていてもよい。
続いて、判別部25は、限界値抽出処理を実行する(ステップS29)。限界値抽出処理は、速度帯毎に特徴量の限界値を抽出する処理である。判別部25は、速度帯と紐付けられた特徴量の情報に基づいて所定の速度帯(測定した速度帯)における限界値を判別する。
〔2−4.限界値について〕
限界値抽出処理の説明の前に限界値について説明する。図8は、基準方向に対して垂直な方向の加速度に基づく特徴量(Average_hor)をプロットした散布図である。より具体的には、図8は、基準方向に垂直な方向の加速度の大きさ「a_hor」の1秒間の平均値を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。また、図9は、図8に示す散布図の拡大図である。
図9を見ればわかるように、ラインL1より下には特徴量が略存在していない。図9に示す特徴量(Average_hor)の場合、ラインL1付近に特徴量の下限(下側の限界)が存在していることが分かる。特に、図9の例の場合、時速40km付近から線形性は崩れているものの、特徴量の下限は、少なくとも時速30kmを超えるあたりまでは線形性を示していることがわかる。つまり、特徴量の限界値(図9の例の場合、下限値)と速度には相関があることが分かる。この特徴を使用すれば、端末装置10は、少なくとも低速域(例えば、時速0km〜40kmの範囲)では、特徴量から速度を推定できる。
図10は、特徴量をプロットした散布図を複数の速度帯に分割した様子を示す図である。図10にプロットされている特徴量は、基準方向に対して垂直な方向の加速度に基づく特徴量(Average_hor)である。図10の例では、横軸を19個の速度帯に分割している。速度帯1つの幅は、5km/h幅である。1番目の速度帯は3km/h以上8km/h未満であり、2番目の速度帯は8km/h以上13km/h未満であり、3番目の速度帯は13km/h以上18km/h未満であり、4番目の速度帯は18km/h以上23km/h未満であり、5番目の速度帯は23km/h以上28km/h未満であり、6番目の速度帯は28km/h以上33km/h未満であり、7番目の速度帯は33以上38km/hであり、8番目の速度帯は38km/h以上43km/hである。最後の19番目の速度帯は93km/h以上98km/h未満である。
また、図11は、速度帯毎に限界値をプロットした様子を示す図である。P1は1番目の速度帯の下限値をプロットしたものであり、P2は2番目の速度帯の下限値をプロットしたものであり、P3は3番目の速度帯の下限値をプロットしたものであり、P4は4番目の速度帯の下限値をプロットしたものであり、P5は5番目の速度帯の下限値をプロットしたものであり、P6は6番目の速度帯の下限値をプロットしたものであり、P7は7番目の速度帯の下限値をプロットしたものであり、P8は8番目の速度帯の下限値をプロットしたものである。P19は19番目の速度帯の下限値をプロットしたものである。図11の例では、P1〜P19はそれぞれ各速度帯の中央にプロットされている。1〜19番目の速度帯はそれぞれ図10の1〜19番目の速度帯に対応している。
上述したように、特徴量の限界値と速度には相関がある。端末装置10は、GPS速度等の速度情報が取得可能な時に、図11に示すように、速度帯毎に特徴量の限界値を求めておく。つまり、端末装置10は、速度情報が取得可能なときに、速度と限界値との関係を予め求めておく。特徴量は、加速度から算出されるので、トンネルに突入した等の理由で速度情報が取得できなくなったとしても、取得可能である。事前に速度帯毎の限界値を求めておくことにより、端末装置10は、トンネル内等の速度情報が取得できないときも、特徴量を使って速度を推定可能である。
〔2−5.限界値抽出処理における作用効果の一例〕
そこで、判別部25は、速度帯毎に特徴量の限界値を抽出する限界値抽出処理を実行する。以下、図12に示すフローチャートを用いて、判別部25が実行・実現する限界値抽出処理の内容について説明する。図12は、実施形態に係る端末装置10が実行する限界値抽出処理の流れの一例を説明するフローチャートである。なお、以下の説明では、限界値は下限値であるものとして説明するが、限界値は上限値であってもよい。限界値を上限値とする場合、以下の説明の「下限値」は「上限値」と、「最小」は「最大」と、「小さな」は「大きな」と、「小さい」は「大きい」と、適宜読み替える。
まず、判別部25は、速度に紐付けられた特徴量を取得する(ステップS291)。例えば、判別部25は、特徴量データベース12bから速度に紐付けられた特徴量を取得してもよい。
そして、判別部25は、取得した特徴量を速度帯データベース12cに登録する。このとき、判別部25は、該当の速度帯に特徴量のデータを追加する(ステップS292)。例えば、特徴量データベース12bが図4に示す状態にあるとする。特徴量が0.021でありその特徴量に紐付けられた速度が30km/hであるとすれば、判別部25は、速度帯が28〜33km/hのID“6”のデータ10に“0.021”を追加する。特徴量が0.113でありその特徴量に紐付けられた速度が50km/hであるとすれば、判別部25は、速度帯が48〜53km/hのID“10”のデータ2に“0.113”を追加する。
そして、判別部25は、特徴量のデータを追加した速度帯のデータ領域に空き領域があるか否か判別する(ステップS293)。例えば、図4の例であれば、特徴量の格納領域はデータ1からデータ10までの10個あるので、10個全ての格納領域が特徴量のデータで埋まった場合は、判別部25はデータ領域に空き領域がないと判別し、10個の格納領域がデータで埋まっていない場合、判別部25はデータ領域に空き領域があると判別する。空き領域がある場合は(ステップS293:Yes)、判別部25は、限界値抽出処理を終了する。
空き領域がない場合は(ステップS293:No)、判別部25は、該当の速度帯のデータ領域に格納されている所定個数(図4の例の場合、10個)のデータに基づいて限界値を抽出する(ステップS294)。例えば、特徴量が基準方向に対して垂直な方向の加速度に基づく特徴量(Average_hor)なのであれば、判別部25は、所定個数の特徴量のうち最小のものを限界値(下限値)として取得してもよい。なお、判別部25は、異常値の影響を排除するため、最小値を限界値(下限値)とせず、所定個数の特徴量のうち2番目に小さな特徴量を限界値(下限値)としてもよい。このとき、判別部25は、所定個数の特徴量に紐付けられている速度の平均を算出した限界値の代表速度として取得してもよい。
そして、判別部25は、ステップS293で取得した限界値を新たな限界値として更新する(ステップS295)。例えば、判別部25は、ステップS294で取得した限界値を限界値データベース12dの該当の速度帯の箇所に登録する。限界値データベース12dに代表速度が格納可能なのであれば、代表速度も登録する。なお、すでに登録されている限界値がステップS294で新たに取得した限界値より小さい場合、判別部25は、限界値を更新せずに、限界値データベース12dに登録されているそのままとする。この場合、判別部25は、代表速度も更新せずにそのままとする。
そして、判別部25は、該当の速度帯について、所定個数のデータ領域を特徴量をリセットする(ステップS296)。例えば、図4の例で、のID“6”のデータ10に“0.021”を追加したのであれば、ID“6”の10個のデータ領域をすべてリセットする。これにより、該当の速度帯には新たに特徴量が格納可能になる。データ領域のリセットが完了したら、制御部16は、限界値抽出処理および限界値更新処理を終了する。
〔2−6.推定処理における作用効果の一例〕
次に、図13に示すフローチャートを用いて、推定部26が実行・実現する推定処理の内容について説明する。図13は、実施形態に係る端末装置10が実行する推定処理の流れの一例を説明するフローチャートである。推定処理は、例えば、測位信号に基づく位置情報が取得できないときに実行される。例えば、推定部26は、図6のステップS13にて、GPSが使えないと判定された場合に、図13に示す推定処理を実行する。図13に示す処理は、例えば、図1のステップS5に示す処理に対応する。
なお、端末装置10は、図13に示す推定処理とは別に移動体或いは端末装置10の移動速度を推定する速度推定処理を実行してよい。速度推定処理は、SVMによる学習モデル(例えば、上述の速度推定モデル)を使用した処理であってもよいし、単に、GPSが使用できなくなった位置の速度(例えば、トンネル突入時の速度)をそのまま推定速度とする処理であってもよい。この場合、図13に示す推定処理の結果は、速度推定処理が推定した速度(以下、推定速度という。)の制限リミッター(「上限速度」或いは「制限速度」ともいう。)として使用されてもよい。つまり、推定速度が図13に示す推定処理で推定された上限速度より大きい場合には、端末装置10は、推定速度を上限速度に置き換える。
以下、図13を参照しながら推定処理を説明する。以下の説明では、推定部26は、上限速度を推定するものとするが、推定部26が推定する速度は上限速度に限られない。推定部26が推定する速度は、移動体或いは端末装置10の移動速度であってもよい。この場合、以下の説明の「上限速度」は適宜「移動速度」に置き換える。
まず、推定部26は、加速度センサ13から加速度を取得する(ステップS31)。そして、推定部26は、所定の期間の間に加速度センサ13が測定した加速度の大きさの平均値を、端末座標系の軸方向ごとに算出する(ステップS32)。その後、推定部26は、ステップS31で取得した加速度に基づいて、基準方向を特定する。例えば、推定部26は、加速度の平均ベクトルから基準方向を特定する(ステップS33)。そして、推定部26は、端末座標系の所定の軸方向を基準方向に一致させる回転行列を算出する(ステップS34)。そして、推定部26は、算出した回転行列を用いて、端末座標系で取得された加速度の各成分を変換する(ステップS35)。その後、推定部26は、加速度ベクトルを算出する(ステップS36)。例えば、推定部26は、ステップS31で取得した加速度に基づいて加速度ベクトルの大きさを算出する。そして、推定部26は、ステップS36で算出した加速度ベクトルの大きさに基づいて特徴量を算出する(ステップS37)。ステップ31〜ステップ37の処理は限界値更新処理のステップS21〜ステップS27と同じである。
続いて、推定部26は、ステップS37で算出した特徴量と、限界値更新処理で取得した速度帯毎の限界値とに基づいて、速度を推定する(ステップS38)。例えば、推定部26は、速度帯毎の限界値の情報に基づき判別される速度であってステップS37で算出した特徴量の値を限界値とする速度を上限速度として推定する。上述したように、速度帯毎の限界値は図5に示す限界値データベース12dに格納されている。以下、図5を参照しながら、ステップS38の処理の一例を説明する。
まず、推定部26は、限界値が登録されている速度帯のうち最も大きなIDを変数id_Rに格納する。その後、推定部26は、限界値が登録されている速度帯のうち次に大きなIDを変数id_Lに格納する。id_Lが見つからない場合は、推定部26は、速度が推定できないとして推定処理を終了する。id_Lが見つかった場合、推定部26は、変数id_Rが示す速度帯の限界値と変数id_Lが示す速度帯の限界値とをグラフにプロットする。グラフは、例えば図11に示すような、縦軸を特徴量の大きさ、横軸を速度としたグラフである。限界値の横軸の位置は、限界値に紐付けられている速度帯の中央であってもよいし、限界値に紐付けられている代表速度の位置であってもよい。
そして、推定部26は、プロットした2つの点を線で結ぶ。図14は、グラフにプロットされた限界値が線で結ばれた様子を示す図である。より具体的には、図14は、図11に示したP1〜P19を線で結んだものである。推定部26は、プロットされた2つの点がなす線分と、ステップS37で取得した特徴量の値を縦軸の値とした横一直線のラインと、が交わるか否かを判別する。例えば、プロットされた2つの点が図14に示すP5とP4であり、ステップS37で取得した特徴量が0.03であるとする。図14の例の場合、P5とP4を結んだ線分と0.03を縦軸の値とした横一直線のラインL2とは交わっているので、推定部26は、2つの線は交わると判別する。2つの線が交わる場合、推定部26は、交点が示す速度(図14の例であればV1)を上限速度として推定し、推定処理を終了する。
2つの線が交わらない場合、推定部26は、変数id_Rに変数id_Lを代入する。そして、推定部26は、限界値が登録されている速度帯のうち、変数id_Rが示すIDの次に大きなIDを変数id_Lに格納する。そして、推定部26は、変数id_Rが示す速度帯の限界値と変数id_Lが示す速度帯の限界値とを再びグラフにプロットする。そして、推定部26は、プロットされた2つの点がなす線分とステップS37で取得した特徴量の値を縦軸の値とした横一直線のラインとが交わるか否か判別する。推定部26は、上述の処理を交点が見つかるまで上述の処理を繰り返す。交点が見つかった場合、推定部26は、交点が示す速度を上限速度として推定し、推定処理を終了する。交点が見つからない場合、推定部26は、速度が推定できないとして推定処理を終了する。
なお、ステップS37で算出した特徴量の値を限界値とする速度が複数存在する場合がある。図15は、図14とは別の例のグラフである。図15の例では、図14と同様に、グラフにプロットされた限界値が線で結ばれている。図15の例では、0.03を縦軸の値とした横一直線のラインL2と、限界値を結ぶ線分とが複数の点で交わっている。つまり、図15の例では、ステップS37で算出した特徴量の値が0.03であるとすると、0.03を限界値とする速度がV2、V3、V4、V5の4つ存在することになる。この場合、推定部26は、上限速度が速度リミッターとして機能することを考慮し、複数の速度の中で最も高い速度を上限速度として選択してもよい。図15の例であれば、推定部26は、V2、V3、V4、V5の4つの速度のうち、最も高いV5を上限速度として推定してもよい。なお、推定部26は、複数の速度のうち、最も低い速度を上限速度として推定してもよいし、複数の速度の中央値を上限速度としてもよい。また、推定部26は、複数の速度の平均値を上限速度としてもよい。
〔3.数式の一例〕
次に、数式を用いて、変換部23が端末座標系を推定座標系へと変換する回転行列を算出する処理の一例を説明する。なお、変換部23が実行する処理は、以下の数式が示す処理に限定されるものではない。例えば、変換部23は、一次変換を表現した数式を用いて、端末座標系から推定座標系への座標変換を行ってもよい。
例えば、端末座標系の各軸をxyz軸とし、推定座標系の各軸をXYZ軸とする。係る場合、推定座標系を端末座標系へと変換する処理は、以下の式(1)で表される。なお、式(1)では、x軸を中心とした回転角度をα、y軸を中心とした回転角度をβ、z軸を中心した回転角度をγとし、x軸を中心とした回転による座標変換を行う回転行列をRx(α)、y軸を中心とした回転による座標変換を行う回転行列をRy(β)、z軸を中心とした回転による座標変換を行う回転行列をRz(γ)とした。
また、回転行列Rx(α)、回転行列Ry(β)、および回転行列Rz(γ)(以下、総括して「各回転行列」と記載する場合がある。)は、以下の式(2)〜(4)で表すことができる。なお、推定座標系は、−x軸方向が平均ベクトルGの方向と一致すればよいため、αの値は、任意の値が設定可能となる。
ここで、平均ベクトルGの方向は、−X軸方向の加速度であるから、推定座標系では、以下の式(5)で表すことができる。
一方、端末座標系で検出された各軸方向の平均ベクトルGを(ax、ay、az)と記載する。このような場合、ax、ay、azは、式(5)で示す平均ベクトルGを各回転行列で変換した値となるので、以下の式(6)が成り立つ。
この結果、式(6)におけるz軸方向の値より、式(7)を得る。
また、平均ベクトルGの大きさを考慮すると、式(8)が成り立つため、式(6)におけるx軸およびy軸方向の値から、式(9)を得る。この結果、端末装置10は、式(7)および式(9)から、y軸回りの回転角βを特定することができる。
ここで、式(9)に示す値のうち、正の値を解として選択する。すると、式(6)におけるx軸およびy軸方向の値から、式(10)および式(11)を得る。この結果、端末装置10は、式(10)および式(11)からz軸まわりの回転角γを特定することができる。
一方、端末座標系を推定座標系へと変換する処理は、式(1)に示す座標変換の逆変換であるため、以下の式(12)で表される。
また、βとγの値は式(7)、(9)、(10)、(11)から算出できるので、端末座標系の加速度のサンプルax、ay、azのうちy軸およびz軸のみを回転させ、推定座標系へと変換すると、式(13)となる。すなわち、端末装置10は、回転行列Ry(β)、および回転行列Rz(γ)を用いて、端末座標系を推定座標系へと変換する。
〔4.変形例〕
上述した実施形態に係る端末装置10は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、上記の端末装置10の他の実施形態について説明する。
〔4−1.特徴量について〕
上述の実施形態では、基準方向に対して垂直な方向の加速度の大きさの所定期間或いは所定回数の平均値(Average_hor)を特徴量として取得した。しかしながら、特徴量は必ずしもAverage_horでなくてもよい。例えば、端末装置10は、基準方向に対して垂直な方向の加速度の大きさの所定期間或いは所定回数の標準偏差(以下、Stdev_horともいう。)を特徴量としてもよい。図16は、基準方向に対して垂直な方向の加速度に基づく特徴量(Stdev_hor)をプロットした散布図である。より具体的には、図16は、基準方向に垂直な方向の加速度の大きさ「a_hor」の1秒間の標準偏差を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図16を見ればわかるように、ある一定のラインより下には特徴量が略存在していない。すなわち、特徴量(Stdev_hor)も、Average_horと同様に、特徴量の限界値(下限値)が存在していることが分かる。特徴量をStdev_horとしても、端末装置10は、上述のAverage_horに基づく処理(限界値更新処理、限界値抽出処理、及び推定処理)と同様の手法で速度を推定可能である。
また、端末装置10は、基準方向に対して垂直な方向の加速度の大きさの所定期間或いは所定回数の最大値(以下、Max_horともいう。)を特徴量としてもよい。図17は、基準方向に対して垂直な方向の加速度に基づく特徴量(Max_hor)をプロットした散布図である。より具体的には、図17は、基準方向に垂直な方向の加速度の大きさ「a_hor」の1秒間の最大値を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図17を見ればわかるように、ある一定のラインより下には特徴量が略存在していない。すなわち、特徴量(Max_hor)も、Average_horと同様に、特徴量の限界値(下限値)が存在していることが分かる。特徴量をMax_horとしても、端末装置10は、上述のAverage_horに基づく処理(限界値更新処理、限界値抽出処理、及び推定処理)と同様の手法で速度を推定可能である。
また、端末装置10は、基準方向の加速度の大きさに基づく値を特徴量としてもよい。例えば、端末装置10は、基準方向の加速度の大きさの所定期間或いは所定回数の標準偏差(以下、Stdev_verともいう。)を特徴量として算出してもよい。図18は、基準方向の加速度に基づく特徴量(Stdev_ver)をプロットした散布図である。より具体的には、図18は、基準方向の加速度の大きさ「a_ver」の1秒間の標準偏差を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図18を見ればわかるように、ある一定のラインより下には特徴量が略存在していない。すなわち、特徴量(Stdev_ver)も、Average_horと同様に、特徴量の限界値(下限値)が存在していることが分かる。特徴量をStdev_verとしても、端末装置10は、上述のAverage_horに基づく処理(限界値更新処理、限界値抽出処理、及び推定処理)と同様の手法で速度を推定可能である。
また、端末装置10は、基準方向の加速度の大きさの所定期間或いは所定回数の最大値(以下、Max_verともいう。)を特徴量として算出してもよい。図19は、基準方向の加速度に基づく特徴量(Max_ver)をプロットした散布図である。より具体的には、図19は、基準方向の加速度の大きさ「a_ver」の1秒間の最大値を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図19を見ればわかるように、ある一定のラインより下には特徴量が略存在していない。すなわち、特徴量(Max_ver)も、Average_horと同様に、特徴量に限界値(下限値)が存在していることが分かる。特徴量をMax_verとしても、端末装置10は、上述のAverage_horに基づく処理(限界値更新処理、限界値抽出処理、及び推定処理)と同様の手法で速度を推定可能である。
また、端末装置10は、基準方向の加速度の大きさの所定期間或いは所定回数の最小値(以下、Min_verともいう。)を特徴量として算出してもよい。図20は、基準方向の加速度に基づく特徴量(Min_ver)をプロットした散布図である。より具体的には、図20は、基準方向の加速度の大きさ「a_ver」の1秒間の最小値を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図20を見ればわかるように、ある一定のラインより上には特徴量が略存在していない。特徴量(Min_ver)の場合、特徴量に限界値(上限値)が存在していることが分かる。特徴量をMin_verとしても、端末装置10は、上述のAverage_horに基づく処理(限界値更新処理、限界値抽出処理、及び推定処理)と同様の手法で速度を推定可能である。なお、特徴量をMin_verとする場合、限界値は下限値ではなく上限値となる。そのため、上述の処理の説明の「下限値」は「上限値」と、「最小」を「最大」と、「小さな」は「大きな」と、「小さい」は「大きい」と、適宜読み替える必要がある。
なお、比較のため、基準方向に対して垂直な方向の加速度の大きさの所定期間或いは所定回数の最小値(以下、Min_horともいう。)を特徴量とした例も示す。図21は、基準方向に対して垂直な方向の加速度に基づく特徴量(Min_hor)をプロットした散布図である。より具体的には、図21は、基準方向に垂直な方向の加速度の大きさ「a_hor」の1秒間の最小値を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図21の例の場合、特徴量にライン状の限界値は見て取れない。
なお、比較のため、基準方向の加速度の大きさの所定期間或いは所定回数の平均値(以下、Average_verともいう。)を特徴量とした例も示す。図22は、基準方向の加速度に基づく特徴量(Average_ver)をプロットした散布図である。より具体的には、図22は、基準方向の加速度の大きさ「a_ver」の1秒間の平均値を特徴量としてプロットした散布図である。1秒間の加速度の取得回数は50回程度である。横軸が速度であり、縦軸が特徴量の大きさである。図22の例の場合も、特徴量にライン状の限界値は見て取れない。
〔4−2.推定結果を使用する速度範囲について〕
上述の実施形態では、推定部26が推定する速度の範囲は限定がなかったが、推定部26が推定する速度の範囲は一部の範囲であってもよい。図9を参照して説明したように、特徴量(Average_hor)の限界値(下限地)は低速域(例えば、時速0km〜40kmの範囲)で線形性を示している。この特徴は、図16〜図20を見ればわかるように、他の特徴量(Stdev_hor、Max_hor、Stdev_ver、Max_ver、及びMin_ver)についても同様である。そこで、推定部26は、推定部26が推定する速度の範囲を所定の閾値速度以下に限定してもよい。
例えば、端末装置10が、図13に示す推定処理とは別に速度推定処理を実行したとする。推定部26は、推定処理で推定した上限速度が所定の閾値速度より低い場合は、速度推定処理で推定された推定速度を上限速度で制限し、上限速度が所定の閾値速度より高い場合は、推定速度を前記上限速度で制限しない。
上述の実施形態では、推定部26は、所定の特徴量の値を限界値とする速度が複数存在する場合には、複数の速度のうち、最も高い速度を前記所定の特徴量における速度として推定した。しかし、推定部26は、複数の速度のうち、所定の閾値速度より低い速度の中で最も高い速度を前記所定の特徴量における速度として推定してもよい。なお、推定部26は、所定の閾値速度より低い速度の中で最も低い速度を上限速度として推定してもよいし、所定の閾値速度より低い複数の速度の中央値を上限速度としてもよい。また、推定部26は、所定の閾値速度より低い複数の速度の平均値を上限速度としてもよい。
なお、所定の閾値速度は時速40km以下の速度から選択される速度であってもよい。より、精度の高い推定を可能とするため、所定の閾値速度は時速30km以下の速度から選択される速度であってもよい。勿論、所定の閾値速度は、時速20km以下の速度から選択される速度であってもよいし、時速10km以下の速度から選択される速度であってもよい。
〔4−3.処理間隔について〕
また、上述の実施形態では、端末装置10は、1秒間隔で、限界値更新処理や推定処理やを実行した。しかしながら、処理の実行間隔は、これに限定されるものではなく、任意のタイミングで限界値更新処理や推定処理を実行してもよい。
〔4−4.姿勢変化について〕
また、端末装置10は、端末装置10の姿勢を特定してもよい。例えば、一定期間内の加速度を平均した場合には、その平均ベクトルGの方向は、重力加速度の方向と一致する。そこで、端末装置10は、例えば、アプリケーションを起動してからそれまでに測定された全ての加速度の平均ベクトル方向と、直近1秒間の間に検出された加速度の平均ベクトルの方向とを比較し、角度で37度以上の開きがあった場合(すなわち、各平均ベクトルの間の角度のコサイン値が0.8より小さくなった場合)には、端末装置10の姿勢に変化があったと判定してもよい。
このような姿勢変化があったと判定した場合、端末装置10は、速度帯データベース12cや限界値データベース12dに登録されたデータや、モデル12eに登録されたデータを消去し、新たなデータの収集や限界値、モデルの学習を行ってもよい。この結果、端末装置10は、姿勢変化が生じた場合における推定精度の悪化を軽減することができる。
〔4−5.他の実施形態〕
なお、上記実施形態は例示に過ぎず、本発明は、以下に例示するものやそれ以外の他の実施態様も含むものである。例えば、本出願における機能構成、データ構造、フローチャートに示す処理の順序や内容などは例示に過ぎず、各要素の有無、その配置や処理実行などの順序、具体的内容などは適宜変更可能である。例えば、上述した案内処理や推定処理は、上記実施形態で例示したように端末装置10が実現する以外にも、スマートフォンのアプリなどが実現する端末における装置、方法やプログラムとして実現することもできる。
また、図示した装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
例えば、端末装置10を構成する各処理部(案内実行部17〜移動状態推定部20)を、さらにそれぞれ独立した装置で実現してもよい。また、移動状態推定部20を構成する各部(検出部21〜予測部28)をそれぞれ独立した装置で実現してもよい。同様に、外部のプラットフォーム等をAPI(アプリケーション・プログラム・インタフェース)やネットワークコンピューティング(いわゆるクラウドなど)で呼び出すことで、上記実施形態で示した各手段を実現するなど、本発明の構成は柔軟に変更できる。さらに、本発明に関する手段などの各要素は、コンピュータの演算制御部に限らず物理的な電子回路など他の情報処理機構で実現してもよい。
例えば、端末装置10は、端末装置10と通信可能な配信サーバとが協調して上述した案内処理を実行してもよい。例えば、配信サーバは、検出部21、設定部22、変換部23、取得部24、判別部25、生成部27を有し、端末装置10が検出した加速度から、特徴量を収集し、収集した特徴量を用いたモデルの学習を行い、学習したモデルを端末装置10へと配信してもよい。また、このような配信サーバは、学習データを収集した端末装置ごとに各モデルの学習を行ってもよく、学習データを収集した際に端末装置10が設置されていた車両の車種、タイヤの種別、路面や天気の状況などの状態ごとに、各モデルの学習を行ってもよい。このような学習を行った場合、配信サーバは、学習したモデルのうち、端末装置10が推定処理を実行する際の状況に応じたモデルを、端末装置10へと配信してもよい。
また、配信サーバは、検出部21、設定部22、変換部23、取得部24、推定部26を有し、端末装置10が検出した加速度の値に基づいて、推定した移動速度を端末装置10に配信し、利用者の案内を実行させてもよい。また、配信サーバは、端末装置10に代わって上述した推定処理を実行し、実行結果を端末装置10に送信することで、端末装置10に案内処理を実行させてもよい。
なお、配信サーバと協調して案内処理や推定処理を実行する端末装置が複数存在する場合、配信サーバは、端末装置ごとに異なるSVMを用いて、各端末装置が移動中であるか否かを判定してもよい。また、配信サーバは、各端末装置がGPSで取得した位置情報を収集し、収集した位置情報から各端末装置が移動中であるか否かを判定し、判定結果と、各端末装置から収集した加速度の値とを用いて、SVMの学習を実現してもよい。
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
上記してきた各実施形態は、処理内容を矛盾させない領域で適宜組み合わせることが可能である。
その他、本実施形態の端末装置10を制御する制御装置は、専用のコンピュータシステムによって実現してもよいし、通常のコンピュータシステムにより実現してもよい。例えば、上述の動作を実行するためのプログラムまたはデータ(例えば、モデル12e)を、光ディスク、半導体メモリ、磁気テープ、フレキシブルディスク等のコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムまたはデータをコンピュータにインストールし、上述の処理を実行することによって制御装置を構成してもよい。制御装置は、端末装置10の外部の装置(例えば、パーソナルコンピュータ)であってもよいし、内部の装置(例えば、制御部16)であってもよい。また、上記プログラムまたはデータをインターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、OS(Operating System)とアプリケーションソフトとの協働により実現してもよい。この場合には、OS以外の部分を媒体に格納して配布してもよいし、OS以外の部分をサーバ装置に格納しておき、コンピュータにダウンロード等できるようにしてもよい。
〔5.ハードウェア構成〕
実施形態及び変形例に係る端末装置10は、例えば図23に示すような構成のコンピュータ1000によっても実現可能である。図23は、端末装置10の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU(Central Processing Unit)1100、RAM1200、ROM1300、HDD(Hard Disk Drive)1400、通信インタフェース(I/F)1500、入出力インタフェース(I/F)1600、及びメディアインタフェース(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インタフェース1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インタフェース1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インタフェース1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インタフェース1600を介して出力装置へ出力する。
メディアインタフェース1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインタフェース1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る端末装置10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムまたはデータ(例えば、モデル12e)を実行することにより、制御部16の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムまたはデータ(例えば、モデル12e)を記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
〔6.効果〕
上述したように、端末装置10は、加速度を検出し、加速度に基づいた特徴量を取得する。そして、端末装置10は、特徴量の限界値に基づいて速度を推定する。限界値によって速度を推定しているので、GPS等による位置情報を取得できないときも、端末装置10は、精度の高い速度情報を取得できる。
また、端末装置10は、速度帯と紐付けられた特徴量の情報に基づいて測定した速度帯における限界値を判別する。そして、端末装置10は、速度帯毎の限界値の情報に基づいて、取得した特徴量における速度を推定する。例えば、端末装置10は、速度帯毎の限界値の情報に基づき判別される速度であって取得した特徴量の値を限界値とする速度を、取得した特徴量における速度として推定する。速度帯毎の限界値によって速度を推定しているので、GPS等による位置情報を取得できないときも、端末装置10は、精度の高い速度情報を取得できる。
また、端末装置10は、取得した特徴量の値を限界値とする速度が複数存在する場合には、複数の速度のうち最も高い速度を取得した特徴量における速度として推定する。また、端末装置10は、取得した特徴量の値を限界値とする速度が複数存在する場合には、複数の速度のうち、所定の閾値速度より低い速度の中で最も高い速度を取得した特徴量における速度として推定する。推定された速度を上限速度として使用する場合には、端末装置10は、より緩やかに推定速度を制限できる。
また、端末装置10は、取得した特徴量における速度を上限速度として推定する。このとき、端末装置10は、上限速度が所定の閾値速度より低い場合は、推定速度を上限速度で制限し、上限速度が所定の閾値速度より高い場合は、推定速度を上限速度で制限しなくてもよい。なお、所定の閾値速度は、時速20kmから時速40kmの範囲の速度であってもよい。端末装置10は、推定速度を上限速度で制限することにより、推定速度の精度を高めることができる。
また、端末装置10は、測位信号により判別される位置情報に基づく速度帯と特徴量とを紐付ける。そして、端末装置10は、測位信号に基づく位置情報が取得できないときに取得部24で取得された特徴量を取得した特徴量として速度を推定する。端末装置10は、測位信号による位置情報を取得できないときも、精度の高い速度情報を取得できる。
また、端末装置10は、加速度の基準方向を設定する。そして、端末装置10は、基準方向の加速度に基づく値、若しくは基準方向に対して垂直な方向の加速度に基づく値を特徴量として取得する。例えば、端末装置10は、基準方向に対して垂直な方向の加速度の大きさの所定期間或いは所定回数の平均値、標準偏差、及び最大値の少なくとも1つを特徴量として取得する。或いは、端末装置10は、基準方向の加速度の大きさの所定期間或いは所定回数の標準偏差、最大値、及び最小値の少なくとも1つを特徴量として取得する。これらの値を特徴量とした場合、限界値が判別しやすいので、端末装置10は、精度の高い速度推定ができる。
また、端末装置10は、検出部21により検出された加速度に基づいて基準方向を設定する。例えば、端末装置10は、検出部21により検出された加速度の平均ベクトルの方向を基準方向として設定する。基準方向を設定することにより、端末装置10は、移動体に対して姿勢変化が可能であっても、精度の高い速度推定ができる。
また、端末装置10は、基準方向に対して垂直な方向の加速度の大きさの所定期間或いは所定回数の平均値、標準偏差、若しくは最大値を特徴量として取得する。そして、端末装置10は、速度帯と紐付けられた特徴量に基づいて所定の速度帯における特徴量の下限値を判別する。そして、端末装置10は、速度帯毎の下限値の情報に基づき判別される速度であって取得した特徴量の値を下限値とする速度を、取得した特徴量における速度として推定する。これにより、端末装置10は、精度の高い速度推定ができる。
また、端末装置10は、基準方向の加速度の大きさの所定期間或いは所定回数の標準偏差、若しくは最大値を特徴量として取得する。そして、端末装置10は、速度帯と紐付けられた特徴量に基づいて所定の速度帯における特徴量の下限値を判別する。そして、端末装置10は、速度帯毎の下限値の情報に基づき判別される速度であって取得した特徴量の値を下限値とする速度を、取得した特徴量における速度として推定する。これにより、端末装置10は、精度の高い速度推定ができる。
また、端末装置10は、基準方向の加速度の大きさの所定期間或いは所定回数の最小値を特徴量として取得する。そして、端末装置10は、速度帯と紐付けられた特徴量に基づいて所定の速度帯における特徴量の上限値を判別する。そして、端末装置10は、速度帯毎の上限値の情報に基づき判別される速度であって取得した特徴量の値を上限値とする速度を、取得した特徴量における速度として推定する。これにより、端末装置10は、精度の高い速度推定ができる。
なお、基準方向は、重力方向、或いは、端末装置10により検出された加速度の平均ベクトルの方向であってもよい。これにより、端末装置10は、精度の高い速度推定ができる。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、移動状態推定部は、移動状態判定手段や移動状態判定回路に読み替えることができる。