【文献】
小川 純平 Jumpei OGAWA,キャリブレーション歩行を用いた屋内測位技術に関する検討 A Study on Indoor Positioning System Using Walking Data for Calibration,電子情報通信学会技術研究報告 Vol.116 No.216 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2016年 9月 7日,第116巻
(58)【調査した分野】(Int.Cl.,DB名)
人物の3軸の加速度ベクトルデータの時系列データである加速度データ及び3軸の角速度ベクトルデータの時系列データである角速度データを加速度センサ及び角速度センサから取得する取得部と、
前記取得部によって取得された前記加速度データ及び前記角速度データに基づいて、前記加速度センサ及び前記角速度センサの姿勢を推定する姿勢推定部と、
前記姿勢推定部によって推定された前記加速度センサ及び前記角速度センサの姿勢に基づいて、前記加速度データ及び前記角速度データの座標変換を行う座標変換部と、
前記座標変換部によって座標変換された後の前記角速度データから移動方向の時系列データを算出する角度算出部と、
前記座標変換部によって座標変換された後の前記加速度データ及び前記角速度データに対してある一定の周波数成分の値を通過させるフィルタ処理を行うフィルタ処理部と、
前記フィルタ処理部によってフィルタ処理が施された前記加速度データから合成ベクトルの大きさが三角関数の1周期の形状となる範囲を前記人物が行う動作を表す単位動作区間として検出し、検出した前記単位動作区間内の加速度データ及び角速度データを前記単位動作区間毎の推定用時系列データとして抽出する単位動作抽出部と、
前記単位動作抽出部によって抽出された前記推定用時系列データと、予め保持している前記人物の各動作のテンプレートパターンとを比較し、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する動作推定部と、
前記推定用時系列データと、前記動作推定部が推定した推定結果とに基づいて、移動方向を推定する方向推定部と、
前記推定用時系列データと、前記動作推定部が推定した推定結果とに基づいて、前記人物の移動距離を推定する距離推定部と、
を備える推定装置。
前記方向推定部は、対象とする一歩及びその一歩前の平均角速度を算出し、前記平均角速度に一歩の時間を乗じた角度を移動方向とする、請求項1から3のいずれか一項に記載の推定装置。
前記方向推定部は、対象とする一歩において、前記角速度データから得られる合成ベクトルのノルムが最小値となる時刻と、最大値となる時刻を内分する時刻に該当する角度を移動方向と推定する、請求項1から3のいずれか一項に記載の推定装置。
人物の3軸の加速度ベクトルデータの時系列データである加速度データ及び3軸の角速度ベクトルデータの時系列データである角速度データを加速度センサ及び角速度センサから取得する取得ステップと、
前記取得ステップにおいて取得された前記加速度データ及び前記角速度データに基づいて、前記加速度センサ及び前記角速度センサの姿勢を推定する姿勢推定ステップと、
前記姿勢推定ステップにおいて推定された前記加速度センサ及び前記角速度センサの姿勢に基づいて、前記加速度データ及び前記角速度データの座標変換を行う座標変換ステップと、
前記座標変換ステップにおいて座標変換された後の前記角速度データから移動方向の時系列データを算出する角度算出ステップと、
前記座標変換ステップにおいて座標変換された後の前記加速度データ及び前記角速度データに対してある一定の周波数成分の値を通過させるフィルタ処理を行うフィルタ処理ステップと、
前記フィルタ処理ステップにおいてフィルタ処理が施された前記加速度データから合成ベクトルの大きさが三角関数の1周期の形状となる範囲を前記人物が行う動作を表す単位動作区間として検出し、検出した前記単位動作区間内の加速度データ及び角速度データを前記単位動作区間毎の推定用時系列データとして抽出する単位動作抽出ステップと、
前記単位動作抽出ステップにおいて抽出された前記推定用時系列データと、予め保持している前記人物の各動作のテンプレートパターンとを比較し、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する動作推定ステップと、
前記推定用時系列データと、前記動作推定ステップにおいて推定した推定結果とに基づいて、移動方向を推定する方向推定ステップと、
前記推定用時系列データと、前記動作推定ステップにおいて推定した推定結果とに基づいて、前記人物の移動距離を推定する距離推定ステップと、
を有する推定方法。
人物の3軸の加速度ベクトルデータの時系列データである加速度データ及び3軸の角速度ベクトルデータの時系列データである角速度データを加速度センサ及び角速度センサから取得する取得ステップと、
前記取得ステップにおいて取得された前記加速度データ及び前記角速度データに基づいて、前記加速度センサ及び前記角速度センサの姿勢を推定する姿勢推定ステップと、
前記姿勢推定ステップにおいて推定された前記加速度センサ及び前記角速度センサの姿勢に基づいて、前記加速度データ及び前記角速度データの座標変換を行う座標変換ステップと、
前記座標変換ステップにおいて座標変換された後の前記角速度データから移動方向の時系列データを算出する角度算出ステップと、
前記座標変換ステップにおいて座標変換された後の前記加速度データ及び前記角速度データに対してある一定の周波数成分の値を通過させるフィルタ処理を行うフィルタ処理ステップと、
前記フィルタ処理ステップにおいてフィルタ処理が施された前記加速度データから合成ベクトルの大きさが三角関数の1周期の形状となる範囲を前記人物が行う動作を表す単位動作区間として検出し、検出した前記単位動作区間内の加速度データ及び角速度データを前記単位動作区間毎の推定用時系列データとして抽出する単位動作抽出ステップと、
前記単位動作抽出ステップにおいて抽出された前記推定用時系列データと、予め保持している前記人物の各動作のテンプレートパターンとを比較し、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する動作推定ステップと、
前記推定用時系列データと、前記動作推定ステップにおいて推定した推定結果とに基づいて、移動方向を推定する方向推定ステップと、
前記推定用時系列データと、前記動作推定ステップにおいて推定した推定結果とに基づいて、前記人物の移動距離を推定する距離推定ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明を実施するための形態】
【0007】
以下、実施形態の推定装置、推定方法及びコンピュータプログラムを、図面を参照して説明する。
実施形態における推定装置は、人物に備え付けられるセンサ又は人物が所持する端末に備えられるセンサから時系列のデータを取得し、取得したデータに基づいて人物の歩行に関する情報を推定する。ここで、センサは、例えば、加速度センサ及び角速度センサである。また、人物の歩行に関する情報とは、動作、移動方向(進行方向ともいう)及び移動距離などである。以下の説明では、人物の歩行に関する情報として、動作、移動方向及び移動距離を例に説明する。以下、具体的な構成について複数の実施形態(第1の実施形態〜第3の実施形態)を例に説明する。
【0008】
(第1の実施形態)
図1は、第1の実施形態における推定装置100の機能構成を表す概略ブロック図である。推定装置100は、バスで接続されたCPU(Central Processing Unit)やメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行によって、推定装置100は、取得部10、姿勢推定部20、座標変換部30、角度算出部40、フィルタ処理部50、単位動作抽出部60、推定部70を備える装置として機能する。なお、推定装置100の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。また、推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、推定プログラムは、電気通信回線を介して送受信されてもよい。
【0009】
取得部10は、加速度センサ及び角速度センサから時系列データとして、3軸の加速度ベクトルの時系列データ(以下、「加速度データ」という。)及び3軸の角速度ベクトルの時系列データ(以下、「角速度データ」という。)を取得する。この際、取得部10は、加速度データ及び角速度データを、タイムスタンプ付のデータとして取得する。
姿勢推定部20は、取得部10によって取得された加速度データ及び角速度データに基づいて、各データを取得したセンサの姿勢を推定する。
座標変換部30は、姿勢推定部20によって推定されたセンサの姿勢に基づいて、加速度データ及び角速度データの座標変換を行う。
【0010】
角度算出部40は、座標変換後の角速度データから移動方向の時系列データを算出する。
フィルタ処理部50は、座標変換後の加速度データ及び角速度データに対してフィルタ処理を行う。
単位動作抽出部60は、フィルタ処理が施された加速度データ及び角速度データと、角度算出部40によって算出された移動方向の時系列データとに基づいて、時系列データから単位動作区間毎にデータを抽出する。ここで、単位動作とは、例えば人物が行う動作を構成する最小単位の動作を表す。人物が行う動作としては、例えば三歩歩き、二回ジャンプ、二回しゃがむ等が挙げられる。人物が行う動作が三歩歩きである場合には、各一歩が単位動作である。また、人物が行う動作が二回ジャンプである場合には、各ジャンプを構成している動作それぞれが単位動作である。ジャンプを構成している動作としては、例えば、踏ん張る動作と、飛ぶ動作とがある。すなわち、二回ジャンプには、4つの単位動作(例えば、踏ん張る動作と、飛ぶ動作とが2回ずつ行われるため)が含まれる。また、人物が行う動作が二回しゃがむである場合には、単位動作としてしゃがむ動作と、立つ動作とがある。すなわち、二回しゃがむには、4つの単位動作(例えば、しゃがむ動作と、立つ動作とが2回ずつ行われるため)が含まれる。単位動作区間とは、単位動作の時間区間である。例えば、上記例の場合(人物が行う動作が三歩歩きである場合)には、単位動作区間は一歩の時間区間である。
【0011】
推定部70は、単位動作抽出部60によって抽出された単位動作区間毎のデータに基づいて、人物の歩行に関する情報(動作、移動方向及び移動距離)を推定する。推定部70は、動作推定部71、方向推定部72及び距離推定部73を備える。動作推定部71は、単位動作抽出部60によって抽出された単位動作区間毎のデータと、環境情報とに基づいて、その単位動作区間毎のデータにおける動作を推定する。環境情報は、センサがある周囲の環境に関する情報であり、例えば地磁気、気圧、気温、湿度、照度、音量、臭度、酸素濃度等の気体濃度及びビーコン等の無線電波状況である。方向推定部72は、単位動作抽出部60によって抽出された単位動作区間毎のデータに基づいて、そのデータにおける移動方向を推定する。例えば、方向推定部72は、前歩き、後ろ歩きの際に、センサ前正面を基準としてどの方向に移動しているかを表す移動方向を推定する。距離推定部73は、単位動作抽出部60によって抽出された単位動作区間毎のデータと、動作推定部71から出力された動作推定結果と、ユーザパラメータと、キャリブレーションデータとに基づいて、そのデータにおける移動距離を推定する。ユーザパラメータは、身長、性別、年齢などの人物の情報を表す。キャリブレーションデータは、オフセット、モデルパラメータなどである。
【0012】
図2は、動作推定部71の構成を表す概略ブロック図である。
図2に示すように、動作推定部71は、動作DB711、歩行外動作パターンマッチング部712、歩行方向データパターンマッチング部713及び動作判定部714を備える。
動作DB711は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。動作DB711は、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する際に利用されるテンプレートパターンを記憶する。本実施形態においてセンサの向きを変化させない移動動作とは、前歩き、後歩き、カニ歩き(左右)等の人物の歩行による体の回転を伴わない動作である。本実施形態において移動を伴わない動作とは、しゃがむ、垂直ジャンプ、足踏み、体の回転、屈伸、背伸び、腕ふり及び挙手等の人物が位置している場所で行われる動作である。
【0013】
歩行外動作パターンマッチング部712は、単位動作抽出部60によって抽出された単位動作区間毎のデータと、動作DB711に記憶されているテンプレートパターンとに基づいて移動を伴わない動作のマッチングを行う。
歩行方向データパターンマッチング部713は、単位動作抽出部60によって抽出された単位動作区間毎のデータと、動作DB711に記憶されているテンプレートパターンとに基づいてセンサの向きを変化させない移動動作のマッチングを行う。
動作判定部714は、歩行外動作パターンマッチング部712及び歩行方向データパターンマッチング部713のマッチング結果に基づいて動作を判定する。動作判定部714は、動作の判定結果を動作の推定結果として出力する。
【0014】
図3は、距離推定部73の構成を表す概略ブロック図である。
図3に示すように、距離推定部73は、変換部731、歩幅モデルDB732及び歩幅算出部733を備える。
変換部731は、単位動作抽出部60によって抽出された単位動作区間毎のデータを、周波数領域の情報に変換する。
歩幅モデルDB732は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。歩幅モデルDB732は、歩幅モデルを記憶する。
歩幅算出部733は、変換部731によって変換された周波数領域の情報と、歩幅モデルDB732に記憶されている歩幅モデルと、ユーザパラメータと、キャリブレーションデータとに基づいて歩幅を推定する。歩幅算出部733が推定する歩幅は一歩の移動距離である。
【0015】
図4は、第1の実施形態における推定装置100の処理の流れを示すフローチャートである。取得部10は、加速度センサ及び角速度センサから時系列データとして、加速度データ及び角速度データを取得する(ステップS101)。取得部10は、取得した加速度データ及び角速度データを姿勢推定部20及び座標変換部30に出力する。姿勢推定部20は、取得部10から出力された加速度データ及び角速度データを入力とする。姿勢推定部20は、入力された加速度データ及び角速度データに基づいて、加速度データ及び角速度データの取得元のセンサの姿勢角を推定する(ステップS102)。センサの姿勢角の推定には、例えば参考文献1に記載されている姿勢角推定装置を用いてもよいし、一般的によく知られている姿勢推定方法を使用してもよい。(参考文献1:特開2004−264028号公報)ここで、姿勢角とは、グローバル座標系におけるセンサ座標系の姿勢を一意に決定するものである。
図5は、センサ座標軸を示す図である。
図5に示すように、センサ座標軸として、鉛直方向、進行方向及び横方向の3軸が用いられる。姿勢推定部20は、姿勢角の推定結果を座標変換部30に出力する。
【0016】
座標変換部30は、取得部10から出力された加速度データ及び角速度データと、座標変換部30から出力された推定結果とを入力とする。座標変換部30は、入力された姿勢角の推定結果から、加速度データ及び角速度データの座標を変換(センサ座標からグローバル座標に変換)する(ステップS103)。具体的には、座標変換部30は、回転行列や四元数などによって、二つの座標系間の変換を行う。
図6は、センサ座標軸からのグローバル座標変換の概要を示す図である。座標変換には、クォータニオンを用いた姿勢演算アルゴリズム等の一般的によく知られている手法が用いられてもよいし、その他の手法が用いられてもよい。座標変換部30は、座標変換後の角速度データを角度算出部40に出力する。また、座標変換部30は、座標変換後の加速度データ及び角速度データをフィルタ処理部50に出力する。
【0017】
角度算出部40は、座標変換部30から出力された座標変換後の角速度データを入力とする。角度算出部40は、入力された座標変換後の角速度データを積分し、進行方向軸、鉛直方向軸及び横方向軸について角度を算出する(ステップS104)。鉛直方向軸の角度はユーザが水平面においてどの方向に移動しているかを示し、進行方向軸の角度はユーザの横方向の揺れを示し、横方向軸の角度はユーザの前後の揺れを示している。
【0018】
フィルタ処理部50は、座標変換部30から出力された座標変換後の加速度データ及び角速度データを入力とする。フィルタ処理部50は、入力された座標変換後の加速度データ及び角速度データのそれぞれのデータに対して、ある一定の周波数成分の値を通過させるフィルタ処理を行う(ステップS105)。例えば、フィルタ処理部50は、加速度データに対して歩行動作の一般的な周波数(例えば、2Hz)を通過させるローパスフィルタを適用する。これは歩行動作において、着地時に衣服が振動し、センサの測定値に振動成分が重畳することがある。これにより、一歩区間の検出に誤差が生じ、これが歩幅の誤差となり移動距離の推定誤差が大きくなってしまう場合がある。そこで、フィルタ処理部50は、このような問題を低減させるためにローパスフィルタを適用する。ここで、ローパスフィルタの一例を
図7に示す。また、例えば、フィルタ処理部50は、角速度データに対してドリフトの影響を低減するため、ハイパスフィルタを適用する。フィルタ処理部50は、フィルタ処理後の加速度データ及び角速度データを単位動作抽出部60に出力する。
【0019】
単位動作抽出部60は、角度算出部40から出力された角度データと、フィルタ処理部50から出力されたフィルタ処理後の加速度データ及び角速度データとを入力とする。単位動作抽出部60は、入力された加速度データから合成ベクトルのノルムを算出する(ステップS106)。合成ベクトルのノルムとしては合成ベクトルの大きさを使用してよい。単位動作抽出部60は、算出した合成ベクトルのノルムに基づいて単位動作区間が検出できたか否かを判定する(ステップS107)。単位動作は、
図8に示すような典型的な1歩の動作と等価であるそのため、単位動作抽出部60は、合成ベクトルの大きさが三角関数の1周期の形状となる部分を単位動作区間として検出する。この際、加速度データに対してローパスフィルタを適用していないと、
図9に示すように合成ベクトルにも振動等の高周波成分が重畳されてしまい、単位動作区間が正しく検出できなくなる。
【0020】
単位動作区間が検出できなかった場合(ステップS107−NO)、推定装置100はステップS101以降の処理を繰り返し実行する。
一方、単位動作区間が検出できた場合(ステップS107−YES)、単位動作抽出部60は単位動作区間毎に、単位動作区間内の加速度データと、角速度データと、角度データとを推定用時系列データとして抽出する(ステップS108)。単位動作抽出部60は、抽出した推定用時系列データを動作推定部71、方向推定部72及び距離推定部73に出力する。
【0021】
動作推定部71は、環境情報と、単位動作抽出部60から出力された推定用時系列データとを入力とする。動作推定部71は入力された推定用時系列データから、単位動作区間における動作を推定する(ステップS109)。具体的には、動作推定部71は、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する。
【0022】
動作推定部71は、センサの向きを変化させない移動動作を推定する際、
図10に示すテンプレートパターンと比較して、テンプレートに近い動作を結果とする。
図10は、前歩きと後ろ歩きのテンプレートパターンを示す図である。
図10において、横軸は時間を表し、縦軸は振幅を表す。
図10には、2つのテンプレートパターン81及び82が示されている。
図10に示すテンプレートパターンのうち、テンプレートパターン81は前歩きのテンプレートパターンを表し、テンプレートパターン82は後ろ歩きのテンプレートパターンを表す。動作推定部71は、このようなテンプレートパターンを動作DB711に予め保持している。ここで、動作推定部71の具体的な処理について説明する。
【0023】
例えば、進行方向の加速度が
図11の左側に示す波形であった場合、
図10の前歩きのテンプレートと形状が似ているため、動作推定部71は前歩きと推定する。一方、進行方向の加速度が
図11の右側に示す波形であった場合、
図10の後ろ歩きのテンプレートと形状が似ているため、動作推定部71は後ろ歩きと推定する。動作推定部71は、同様に、横方向の加速度においても右方向、左方向のテンプレートと比較して、似ている方向を推定結果とする。この際、動作推定部71は、似ているかどうかを加速度波形とテンプレート波形のユークリッド距離を用いて判定してもよいし、DTW(Dynamic Time Warping)距離を用いて判定してもよいし、その他の手法を用いてもよい。そして、動作推定部71は、距離が最も近いテンプレートを最も似ているものとすればよい。この距離を用いて類似度を評価する場合、それぞれの波形の振幅を規格化して評価してもよい。例えば、すべての波形の振幅が−1〜1となるように、振幅の大きさを規格化すればよい。
【0024】
図12は、一連の歩行動作において1歩1歩について前歩きテンプレートと後ろ歩きテンプレートとのDTW距離を算出した結果を示す図である。この結果から、加速度波形と前歩きテンプレートとのDTW距離が、加速度波形と後ろ歩きテンプレートとのDTW距離と比べて小さいため、動作推定部71は動作として前歩きと推定する。このように、動作推定部71は、保有しているテンプレートと最も特徴(波形)が似ている動作を採用すればよい。なお、動作推定部71は、テンプレートとの距離が全て閾値よりも大きい場合には、移動していないと推定することができる。
図13に、移動を伴わない動作における合成ノルムの波形パターンの一例を示す。
図13に示すように、移動を伴わない動作であっても、単位動作波形の組み合わせで構成されていることが分かる。したがって、動作推定部71は、単位動作毎にパターンマッチングにより状態遷移させながら推定することにより、移動を伴わない動作であっても動作を推定することができる。また、動作が一つに決まらない場合には動作不明として分類してもよい。また、動作が不明の場合には、環境情報を活用して、移動しているか、移動していないかを推定することも可能である。その後、動作推定部71は、動作の推定結果を方向推定部72及び外部の装置に出力する。
【0025】
方向推定部72は、単位動作抽出部60から出力された推定用時系列データと、動作推定部71から出力された動作推定結果とを入力とする。方向推定部72は、入力された推定用時系列データと、動作推定結果とに基づいて移動方向を推定する(ステップS110)。具体的には、方向推定部72は、
図14に示すように、前歩き、後ろ歩き時における1歩において、どの程度回転するかを推定する。
図14のθ=0の場合は常にまっすぐな直線運動をしていると推定することができる。人間は腰を捻りながら歩行するため、
図14に示すようにセンサの向きは三角関数の波形のようになる。この際、センサの向きは2歩で1周期となるような変化をするのが通常である。したがって、まず方向推定部72は、2歩間のセンサ向きの平均角速度を算出する。次に、方向推定部72は、算出結果に1歩分の時間を乗じる。これにより1歩間の回転量を推定することができ、これが進行方向となる。
【0026】
また、2歩分平均角速度を算出するには、時間遅延やバッファが必要となる。そのため、
図15に示すように、1歩間のデータだけでも同様に進行方向を推定することができる。また、方向推定部72は、
図16に示すように、対象とする1歩において角度データの中から、合成ノルムが最小値となる時刻と、最大値となる時刻とを内分する時刻(
図16において点Pで示される時刻)に該当する角度を移動方向と推定してもよい。ここで、内分する時刻は、例えば、最小値となる時刻と、最大値となる時刻とを1:3に内分する時刻である。この内分する時刻は、人物が足を上げてから着地するまでの動作に関する時刻である。通常、歩行時に足をあげたまま静止などの行動はせず、足を上げてから着地するまでは一定のリズムで実行するために比較的ロバストな方法であると考えられる。その後、方向推定部72は、方向の推定結果を外部の装置に出力する。
【0027】
距離推定部73は、単位動作抽出部60から出力された推定用時系列データと、動作推定部71から出力された動作推定結果と、ユーザパラメータと、キャリブレーションデータとを入力とする。変換部731は、入力された推定用時系列データにおける加速度データを周波数領域のデータに変換することによってパワースペクトルを算出する。変換部731は、算出したパワースペクトルを歩幅算出部733に出力する。歩幅算出部733は、変換部731から出力されたパワースペクトルと、外部装置から入力されたユーザパラメータと、歩幅モデルDB732より読み出した歩幅モデルパラメータとに基づいて歩幅を算出する。歩幅算出部733は、算出した歩幅を移動距離の推定結果とする(ステップS111)。一般的な歩幅を推定するモデルは、以下の式1に示すweinbergモデルである。
【0029】
weinbergモデルは、鉛直方向の加速度の最大値と最小値の差分を利用し、パラメータKを個人毎にキャリブレーションする必要がある。なお、本手法では、ユーザパラメータをモデルの入力にするため、個人毎にキャリブレーションする必要はない。また、本手法では、加速度をパワースペクトルに変換して使用するため、ノイズの影響を受けにくくなることが期待できる。歩幅モデルに使用するパワースペクトルの係数は、歩行の周波数2Hzに最も近い周波数のパワースペクトルを使用してもよいし、10Hz以下の周波数のパワースペクトルをしてもよい。本手法で用いる歩幅モデルを
図17に示す。
図17に示すように、本手法で用いる歩幅モデルには、パワースペクトル係数を用いている。この際、
図18に示すように、さまざまな変数選択法を使用して、変数を選択し、汎化性能の向上を狙ってもよい。
【0030】
また、事前の歩幅モデルを使用して推定した歩幅結果と実測値が異なる場合には、その差分をオフセットとして入力し、以降の推定結果にはオフセットを加味した値を推定結果として出力してもよい。また、新しい歩幅モデルのパラメータを入力して、歩幅モデルを更新してもよい。その後、距離推定部73は、移動距離の推定結果を外部の装置に出力する。なお、動作推定部71、方向推定部72、距離推定部73では、出力値をN歩毎に出力したり、M秒(Mは実数)毎に出力したり、さまざまな出力タイミングを取ることができる。また、距離推定部73は、移動距離を出力するだけでなく、初期点の座標を入力しておくことにより絶対座標値を出力してもよい。
【0031】
以上のように構成された推定装置100によれば、歩行方向、歩行状態及び歩幅の推定精度を向上させることが可能になる。具体的には、推定装置100は、取得した加速度データ及び角速度データに基づいて、単位動作区間を検出し、検出した単位動作区間内の加速度データ、角速度データ及び角度データから単位動作中の動作を推定する。推定装置100は、動作を推定する際に、保持している移動動作のテンプレートと、加速度データとを比較することによって移動動作を推定する。また、推定装置100は、2歩間のセンサ向きの平均角速度に基づいて進行方向を推定する。また、推定装置100は、時系列データにおける加速度データを周波数領域のデータに変換することによってパワースペクトルを算出し、算出したパワースペクトルと、歩幅モデルパラメータとに基づいて歩幅を算出する。そのため、歩行に関する情報の推定精度を向上させることが可能になる。
また、推定装置100は、測位に関わる演算量を削減し、振動等のノイズに対してロバスト性が向上し、移動方向や移動距離の推定精度が向上させることができる。
【0032】
角度算出部40は、積分する以外にも、角速度データの単純な総和を角度としてもよいし、ドリフトなどの誤差要因を排除するために、ある一定の周波数成分を持つ角速度データのみで積分して角度を算出してもよい。
【0033】
(第2の実施形態)
図19は、第2の実施形態における推定装置100aの機能構成を表す概略ブロック図である。推定装置100aは、バスで接続されたCPUやメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行によって、推定装置100aは、取得部10、姿勢推定部20、座標変換部30、フィルタ処理部50、単位動作抽出部60、推定部70aを備える装置として機能する。なお、推定装置100aの各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。また、推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、推定プログラムは、電気通信回線を介して送受信されてもよい。
【0034】
推定装置100aは、単位動作抽出部60及び推定部70に代えて単位動作抽出部60a及び推定部70aを備える点、角度算出部40を備えない点で推定装置100と構成が異なる。推定装置100aは、他の構成については推定装置100と同様である。そのため、推定装置100a全体の説明は省略し、単位動作抽出部60a及び推定部70aについて説明する。
【0035】
単位動作抽出部60aは、フィルタ処理が施された加速度データ及び角速度データと、角度算出部40によって算出された移動方向の時系列データとに基づいて、時系列データから単位動作毎にデータを抽出する。
推定部70aは、単位動作抽出部60aによって抽出された単位動作区間毎のデータに基づいて、人物の動作、移動方向及び移動距離を推定する。推定部70aは、深層学習部74、学習結果記憶部75、フォーマット変換部76及び深層学習推定部77を備える。
【0036】
深層学習部74は、単位動作区間中の角速度データ及び加速度データと、正しい動作と、移動方向と、移動距離とを学習用データとして外部から入力し、入力した学習用データに基づいて、深層学習推定部77で使用するパラメータを学習する。深層学習部74は、外部から学習開始信号が入力された際に学習を行う。学習開始信号とは、深層学習部74による学習を実行させるための信号である。学習開始信号及び学習用データは、外部の入力装置を用いて入力されてもよい。入力装置は、例えば、キーボード、マウス等である。
学習結果記憶部75は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。学習結果記憶部75は、深層学習部74が学習したパラメータを記憶する。
【0037】
フォーマット変換部76は、単位動作抽出部60によって抽出された時系列データと、外部から入力される環境情報とを固定長フォーマットのデータに変換する。
深層学習推定部77は、角速度データと加速度データとの周波数領域の情報及び外部から入力されるユーザパラメータと、学習結果記憶部75に記憶されているパラメータとに基づいて単位動作区間における人物の歩行に関する情報を推定する。
【0038】
図20は、第2の実施形態における推定装置100aの処理の流れを示すフローチャートである。
図20において
図4と同様の処理については、
図4と同様の符号を付して説明を省略する。ステップS107の処理において、単位動作区間が検出できた場合(ステップS107−YES)、単位動作抽出部60aは単位動作区間毎に、単位動作区間内の加速度データと、角速度データと、角度データと、環境情報とを推定用時系列データとして抽出する(ステップS201)。単位動作抽出部60aは、抽出した推定用時系列データをフォーマット変換部76に出力する。
【0039】
フォーマット変換部76は、単位動作抽出部60aから出力された推定用時系列データを入力とする。フォーマット変換部76は、入力された推定用時系列データから周波数情報を算出する(ステップS201)。具体的には、フォーマット変換部76は、深層学習には入力データを固定長にする必要があるため一歩毎に時系列の長さが異なるために、推定用時系列データにおける加速度データ、角速度データ及び環境データを内挿、外挿等の手法により単位動作間のデータ長をある一定の固定長フォーマットに変換する。ここでは、その一例として、フォーマット変換部76は、各時系列データのそれぞれのパワースペクトルと、FFT係数とを算出し、固定数のパワースペクトルと、FFT係数とを固定長フォーマットデータとして深層学習推定部77に出力する(ステップS202)。
【0040】
深層学習推定部77は、学習結果記憶部75に記憶されているパラメータと、フォーマット変換部76から出力された固定長フォーマットデータとを入力とする。深層学習推定部77は、入力された固定長フォーマットデータに含まれるパワースペクトルのうち、歩行の周波数を含むパワースペクトルを使用し、固定長のパワースペクトルデータとして、深層学習モデル(多層ニューラルネットワーク)に入力し、動作、移動方向、移動距離を推定する。深層学習モデルには、全結合型の多層ニューラルネットワークだけでなく、畳み込み層、およびプーリングを用いた多層ニューラルネットワークを用いてもよい。ここで、畳み込み層の数を、一歩動作(フェーズ例:反動をつける、足を上げる、足を下ろす、着地)のフェーズ数から決定したり、プーリング層のフィルタサイズを歩行周波数成分付近のパワースペクトルの幅を基に決定したりしてもよい。なお、深層学習モデルのフィルタ係数等のパラメータは事前に学習しておく必要がある。このために、外部から入力する、単位動作期間中のデータを周波数領域に変換したパワースペクトルと、これに対応した正解動作、移動方向、移動距離とをセットにした学習用データを入力し、深層学習部74において深層学習モデルの学習を行い、この結果を深層学習推定部77に保存しておく。
図21に畳み込みを利用した深層学習の一例を示す。
【0041】
以上のように構成された推定装置100aによれば、深層学習を適用することにより、大規模な歩行データによる学習が可能となる。その際、事前に学習しておく歩幅モデルの自動化による省力化を実現でき、個人差や日変動などに対するロバスト性を大幅に向上させることができる。
【0042】
(第3の実施形態)
図22は、第3の実施形態における推定装置100bの機能構成を表す概略ブロック図である。推定装置100bは、バスで接続されたCPUやメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行によって、推定装置100bは、取得部10、姿勢推定部20、座標変換部30、フィルタ処理部50、推定部70bを備える装置として機能する。なお、推定装置100bの各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。また、推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、推定プログラムは、電気通信回線を介して送受信されてもよい。
【0043】
推定装置100bは、推定部70に代えて推定部70bを備える点、角度算出部40及び単位動作抽出部60を備えない点で推定装置100と構成が異なる。推定装置100bは、他の構成については推定装置100と同様である。そのため、推定装置100b全体の説明は省略し、推定部70bについて説明する。
【0044】
推定部70bは、フィルタ処理部50によってフィルタ処理が施された加速度データ及び角速度データに基づいて、人物の歩行に関する情報を推定する。推定部70bは、深層学習部74b、学習結果記憶部75、深層学習推定部77b及び単位データ抽出部78を備える。
深層学習部74bは、一定時間中の角速度データ及び加速度データと、正しい動作、移動方向、移動距離とを学習用データとして外部から入力し、入力した学習用データに基づいて、深層学習推定部77bで使用するパラメータを学習する。深層学習部74bは、外部から学習開始信号が入力された際に学習を行う。
【0045】
学習結果記憶部75は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。学習結果記憶部75は、深層学習部74bが学習したパラメータを記憶する。
単位データ抽出部78は、フィルタ処理部50から出力されたフィルタ処理後の加速度データ及び角速度データと、環境情報とに基づいて、ある一定の時間で時系列データを抽出する。
深層学習推定部77bは、ある一定時間中の角速度データ及び加速度データと、外部から入力するユーザパラメータと、学習結果記憶部75に記憶されているパラメータとに基づいて、この時間における動作、移動方向、移動距離を推定する。
【0046】
図23は、第3の実施形態における推定装置100bの処理の流れを示すフローチャートである。
図23において
図4と同様の処理については、
図4と同様の符号を付して説明を省略する。ステップS105の処理がなされると、単位データ抽出部78はフィルタ処理部50から出力されたフィルタ処理後の加速度データ及び角速度データを取得する。単位データ抽出部78は、N秒分の加速度データ及び角速度データを蓄積したか否か判定する(ステップS301)。この判定は、推定用時系列データとして深層学習推定部77bに入力するためである。N秒分のデータを蓄積していない場合(ステップS301−NO)、推定装置100bはステップS101以降の処理を繰り返し実行する。
【0047】
一方、N秒分の加速度データ及び角速度データを蓄積している場合(ステップS301−YES)、単位データ抽出部78は蓄積しているN秒分の加速度データ及び角速度データを推定用時系列データとして深層学習推定部77bに出力する。深層学習推定部77bは、学習結果記憶部75に記憶されているパラメータと、単位データ抽出部78から出力された推定用時系列データとを入力とする。深層学習推定部77bは、入力された推定用時系列データと、パラメータと、深層学習モデルを使用して、動作、移動方向及び移動距離を推定する(ステップS302)。本実施形態では、記憶層を有する深層学習(リカレント型多層ニューラルネットワーク)を使用する。このモデルは、記憶層を有するため、時系列データを入力することが可能である。
図24に記憶層の一例を示す。記憶層を有する場合でも、畳込み型の深層学習を適用することが可能なので併用することができる。
【0048】
以上のように構成された推定装置100bによれば、記憶機能を持つ深層学習を適用することにより、第1の実施形態及び第2の実施形態のように単位動作の切り出しが不要となり、測位アルゴリズムをすべて深層学習内で実施することができ、学習データ規模に応じて推定精度を大幅に向上させることが可能になる。
【0049】
以上説明した少なくともひとつの実施形態によれば、人物の角速度データ及び加速度データの時系列データから得られる人物が行う動作を表す単位動作区間毎のデータを抽出する単位動作抽出部60と、単位動作抽出部60によって抽出された単位動作区間毎のデータに基づいて、そのデータにおける人物の歩行に関する情報を推定する推定部70を持つことにより、歩行に関する情報の推定精度を向上させることができる。
【0050】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。