(57)【要約】【課題】歩行に関する情報の推定精度を向上させることができる推定装置、推定方法及びコンピュータプログラムを提供することである。【解決手段】実施形態の推定装置は、単位動作抽出部と、推定部とを持つ。単位動作抽出部は、人物の角速度データ及び加速度データの時系列データから得られる前記人物が行う動作を表す単位動作区間毎のデータを抽出する。推定部は、前記単位動作抽出部によって抽出された前記単位動作区間毎のデータに基づいて、前記データにおける人物の歩行に関する情報を推定する。【選択図】図１
2018042672.tif 000002
【特許請求の範囲】
【請求項１】
人物の角速度データ及び加速度データの時系列データから得られる前記人物が行う動作を表す単位動作区間毎のデータを抽出する単位動作抽出部と、
前記単位動作抽出部によって抽出された前記単位動作区間毎のデータに基づいて、前記データにおける人物の歩行に関する情報を推定する推定部と、
を備える推定装置。
【請求項２】
前記単位動作抽出部は、前記加速度データから合成ベクトルの大きさを表すノルムを算出し、算出した前記ノルムを基に一定の単位で前記単位動作区間毎のデータを抽出する、請求項１に記載の推定装置。
【請求項３】
前記単位動作抽出部は、前記合成ベクトルの大きさが三角関数の１周期の形状となる範囲を単位動作区間として検出し、前記単位動作区間内の加速度データ及び角速度データを前記データとして抽出する、請求項２に記載の推定装置。
【請求項４】
前記推定部は、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する、請求項１から３のいずれか一項に記載の推定装置。
【請求項５】
前記推定部は、前記移動動作を推定する際、各動作のテンプレートパターンと前記加速度データの波形とを比較し、類似度が最も高いものを推定結果とする、請求項４に記載の推定装置。
【請求項６】
前記推定部は、全てのテンプレートパターンとの類似度が、ある一定値より小さい場合には移動していないと推定する、請求項５に記載の推定装置。
【請求項７】
前記推定部は、前歩き、後歩き時の移動方向を推定する、請求項１から６のいずれか一項に記載の推定装置。
【請求項８】
前記推定部は、対象とする一歩及びその一歩前の平均角速度を算出し、前記平均角速度に一歩の時間を乗じた角度を移動方向とする、請求項１から７のいずれか一項に記載の推定装置。
【請求項９】
前記推定部は、対象とする一歩において、合成ベクトルのノルムが最小値となる時刻と、最大値となる時刻を内分する時刻に該当する角度を移動方向と推定する、請求項１から７のいずれか一項に記載の推定装置。
【請求項１０】
前記推定部は、前記加速度データを周波数領域へ変換することによって算出したパワースペクトルと、ユーザ情報、及び歩幅モデルパラメータとに基づいて歩幅を算出し、算出した歩幅を移動距離の推定結果とする、請求項１から９のいずれか一項に記載の推定装置。
【請求項１１】
前記推定部は、前記単位動作区間毎のデータを、固定長フォーマットのデータに変換し、前記固定長フォーマットのデータと、深層学習により予め学習されたパラメータとに基づいて、前記データにおける人物の歩行に関する情報を推定する、請求項１に記載の推定装置。
【請求項１２】
前記推定部は、前記単位動作区間毎のデータに含まれる前記角速度データと前記加速度データのそれぞれに基づく周波数情報を算出し、前記周波数情報を固定長フォーマットデータとする、請求項１１に記載の推定装置。
【請求項１３】
人物の角速度データ及び加速度データの時系列データに対してフィルタ処理を行うフィルタ処理部と、
フィルタ処理が施された加速度データ及び角速度データに基づいて、ある一定の時間のデータを抽出する単位データ抽出部と、
一定時間中の角速度データと加速度データ及び正しい動作、移動方向、移動距離のいずれかを外部から入力し、推定に使用するパラメータを深層学習する深層学習部と、
抽出されたある一定の時間のデータと、前記深層学習部による深層学習の学習結果とに基づいて、前記ある一定の時間における人物の歩行に関する情報を推定する深層学習推定部と、
を備える推定装置。
【請求項１４】
人物の角速度データ及び加速度データの時系列データから得られる前記人物が行う動作を表す単位動作区間毎のデータを抽出する単位動作抽出ステップと、
前記単位動作抽出部によって抽出された前記単位動作区間毎のデータに基づいて、前記データにおける人物の歩行に関する情報を推定する推定ステップと、
を有する推定方法。
【請求項１５】
人物の角速度データ及び加速度データの時系列データから得られる前記人物が行う動作を表す単位動作区間毎のデータを抽出する単位動作抽出ステップと、
前記単位動作抽出部によって抽出された前記単位動作区間毎のデータに基づいて、前記データにおける人物の歩行に関する情報を推定する推定ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、推定装置、推定方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
現在、ＧＰＳ（Global Positioning System）を使用できない屋内にて歩行者を測位する方法として、歩行者が所持した端末のセンサ情報から位置推定を行う方法が存在する。しかしながら、民生用に用いられる端末は、ノイズやオフセット等の誤差及びゼロ速度更新を行うタイミングを検出できないため加速度と角速度の積算による測位は難しいという問題がある。そこで、歩行中のセンサ波形をパターン認識し、その歩行動作や歩数、歩幅を推定し、歩行者の測位を行う方法がある。しかしながら、この方法では、歩行方向や移動距離の推定の精度で問題がある。このように、従来の技術では、歩行方向、歩行状態及び歩幅などの歩行に関する情報を精度良く推定できない場合があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２６４０２８号公報
【特許文献２】特開２００５−１１４５３７号公報
【特許文献３】特開２０１２−１４５４５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、歩行に関する情報の推定精度を向上させることができる推定装置、推定方法及びコンピュータプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の推定装置は、単位動作抽出部と、推定部とを持つ。単位動作抽出部は、人物の角速度データ及び加速度データの時系列データから得られる前記人物が行う動作を表す単位動作区間毎のデータを抽出する。推定部は、前記単位動作抽出部によって抽出された前記単位動作区間毎のデータに基づいて、前記データにおける人物の歩行に関する情報を推定する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態における推定装置１００の機能構成を表す概略ブロック図。
【図２】動作推定部７１の構成を表す概略ブロック図。
【図３】距離推定部７３の構成を表す概略ブロック図。
【図４】第１の実施形態における推定装置１００の処理の流れを示すフローチャート。
【図５】センサ座標軸を示す図。
【図６】センサ座標軸からのグローバル座標変換の概要を示す図。
【図７】ローパスフィルタの一例を示す図。
【図８】典型的な一歩の波形の一例を示す図。
【図９】ローパスフィルタの適用効果を説明するための図。
【図１０】前歩きと後ろ歩きのテンプレートパターンを示す図。
【図１１】進行方向加速度の一例を示す図。
【図１２】一連の歩行動作において１歩１歩について前歩きテンプレートと後ろ歩きテンプレートとのＤＴＷ距離を算出した結果を示す図。
【図１３】移動を伴わない動作における合成ノルムの波形パターンの一例を示す図。
【図１４】歩行に伴うセンサ向きの変化を説明するための図。
【図１５】１歩間のデータに基づいて進行方向を推定する際の説明図。
【図１６】センサの向きから進行方向の推定を行う方法を説明するための図。
【図１７】歩幅モデルの一例を示す図。
【図１８】変数の自動選択の一例を示す図。
【図１９】第２の実施形態における推定装置１００ａの機能構成を表す概略ブロック図。
【図２０】第２の実施形態における推定装置１００ａの処理の流れを示すフローチャート。
【図２１】畳み込みを利用した深層学習の一例を示す図。
【図２２】第３の実施形態における推定装置１００ｂの機能構成を表す概略ブロック図。
【図２３】第３の実施形態における推定装置１００ｂの処理の流れを示すフローチャート。
【図２４】記憶層の一例を示す図。
【発明を実施するための形態】
【０００７】
以下、実施形態の推定装置、推定方法及びコンピュータプログラムを、図面を参照して説明する。
実施形態における推定装置は、人物に備え付けられるセンサ又は人物が所持する端末に備えられるセンサから時系列のデータを取得し、取得したデータに基づいて人物の歩行に関する情報を推定する。ここで、センサは、例えば、加速度センサ及び角速度センサである。また、人物の歩行に関する情報とは、動作、移動方向（進行方向ともいう）及び移動距離などである。以下の説明では、人物の歩行に関する情報として、動作、移動方向及び移動距離を例に説明する。以下、具体的な構成について複数の実施形態（第１の実施形態〜第３の実施形態）を例に説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態における推定装置１００の機能構成を表す概略ブロック図である。推定装置１００は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行によって、推定装置１００は、取得部１０、姿勢推定部２０、座標変換部３０、角度算出部４０、フィルタ処理部５０、単位動作抽出部６０、推定部７０を備える装置として機能する。なお、推定装置１００の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。また、推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ(Read Only Memory)、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、推定プログラムは、電気通信回線を介して送受信されてもよい。
【０００９】
取得部１０は、加速度センサ及び角速度センサから時系列データとして、３軸の加速度ベクトルの時系列データ（以下、「加速度データ」という。）及び３軸の角速度ベクトルの時系列データ（以下、「角速度データ」という。）を取得する。この際、取得部１０は、加速度データ及び角速度データを、タイムスタンプ付のデータとして取得する。
姿勢推定部２０は、取得部１０によって取得された加速度データ及び角速度データに基づいて、各データを取得したセンサの姿勢を推定する。
座標変換部３０は、姿勢推定部２０によって推定されたセンサの姿勢に基づいて、加速度データ及び角速度データの座標変換を行う。
【００１０】
角度算出部４０は、座標変換後の角速度データから移動方向の時系列データを算出する。
フィルタ処理部５０は、座標変換後の加速度データ及び角速度データに対してフィルタ処理を行う。
単位動作抽出部６０は、フィルタ処理が施された加速度データ及び角速度データと、角度算出部４０によって算出された移動方向の時系列データとに基づいて、時系列データから単位動作区間毎にデータを抽出する。ここで、単位動作とは、例えば人物が行う動作を構成する最小単位の動作を表す。人物が行う動作としては、例えば三歩歩き、二回ジャンプ、二回しゃがむ等が挙げられる。人物が行う動作が三歩歩きである場合には、各一歩が単位動作である。また、人物が行う動作が二回ジャンプである場合には、各ジャンプを構成している動作それぞれが単位動作である。ジャンプを構成している動作としては、例えば、踏ん張る動作と、飛ぶ動作とがある。すなわち、二回ジャンプには、４つの単位動作（例えば、踏ん張る動作と、飛ぶ動作とが２回ずつ行われるため）が含まれる。また、人物が行う動作が二回しゃがむである場合には、単位動作としてしゃがむ動作と、立つ動作とがある。すなわち、二回しゃがむには、４つの単位動作（例えば、しゃがむ動作と、立つ動作とが２回ずつ行われるため）が含まれる。単位動作区間とは、単位動作の時間区間である。例えば、上記例の場合（人物が行う動作が三歩歩きである場合）には、単位動作区間は一歩の時間区間である。
【００１１】
推定部７０は、単位動作抽出部６０によって抽出された単位動作区間毎のデータに基づいて、人物の歩行に関する情報（動作、移動方向及び移動距離）を推定する。推定部７０は、動作推定部７１、方向推定部７２及び距離推定部７３を備える。動作推定部７１は、単位動作抽出部６０によって抽出された単位動作区間毎のデータと、環境情報とに基づいて、その単位動作区間毎のデータにおける動作を推定する。環境情報は、センサがある周囲の環境に関する情報であり、例えば地磁気、気圧、気温、湿度、照度、音量、臭度、酸素濃度等の気体濃度及びビーコン等の無線電波状況である。方向推定部７２は、単位動作抽出部６０によって抽出された単位動作区間毎のデータに基づいて、そのデータにおける移動方向を推定する。例えば、方向推定部７２は、前歩き、後ろ歩きの際に、センサ前正面を基準としてどの方向に移動しているかを表す移動方向を推定する。距離推定部７３は、単位動作抽出部６０によって抽出された単位動作区間毎のデータと、動作推定部７１から出力された動作推定結果と、ユーザパラメータと、キャリブレーションデータとに基づいて、そのデータにおける移動距離を推定する。ユーザパラメータは、身長、性別、年齢などの人物の情報を表す。キャリブレーションデータは、オフセット、モデルパラメータなどである。
【００１２】
図２は、動作推定部７１の構成を表す概略ブロック図である。図２に示すように、動作推定部７１は、動作ＤＢ７１１、歩行外動作パターンマッチング部７１２、歩行方向データパターンマッチング部７１３及び動作判定部７１４を備える。
動作ＤＢ７１１は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。動作ＤＢ７１１は、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する際に利用されるテンプレートパターンを記憶する。本実施形態においてセンサの向きを変化させない移動動作とは、前歩き、後歩き、カニ歩き（左右）等の人物の歩行による体の回転を伴わない動作である。本実施形態において移動を伴わない動作とは、しゃがむ、垂直ジャンプ、足踏み、体の回転、屈伸、背伸び、腕ふり及び挙手等の人物が位置している場所で行われる動作である。
【００１３】
歩行外動作パターンマッチング部７１２は、単位動作抽出部６０によって抽出された単位動作区間毎のデータと、動作ＤＢ７１１に記憶されているテンプレートパターンとに基づいて移動を伴わない動作のマッチングを行う。
歩行方向データパターンマッチング部７１３は、単位動作抽出部６０によって抽出された単位動作区間毎のデータと、動作ＤＢ７１１に記憶されているテンプレートパターンとに基づいてセンサの向きを変化させない移動動作のマッチングを行う。
動作判定部７１４は、歩行外動作パターンマッチング部７１２及び歩行方向データパターンマッチング部７１３のマッチング結果に基づいて動作を判定する。動作判定部７１４は、動作の判定結果を動作の推定結果として出力する。
【００１４】
図３は、距離推定部７３の構成を表す概略ブロック図である。図３に示すように、距離推定部７３は、変換部７３１、歩幅モデルＤＢ７３２及び歩幅算出部７３３を備える。
変換部７３１は、単位動作抽出部６０によって抽出された単位動作区間毎のデータを、周波数領域の情報に変換する。
歩幅モデルＤＢ７３２は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。歩幅モデルＤＢ７３２は、歩幅モデルを記憶する。
歩幅算出部７３３は、変換部７３１によって変換された周波数領域の情報と、歩幅モデルＤＢ７３２に記憶されている歩幅モデルと、ユーザパラメータと、キャリブレーションデータとに基づいて歩幅を推定する。歩幅算出部７３３が推定する歩幅は一歩の移動距離である。
【００１５】
図４は、第１の実施形態における推定装置１００の処理の流れを示すフローチャートである。取得部１０は、加速度センサ及び角速度センサから時系列データとして、加速度データ及び角速度データを取得する（ステップＳ１０１）。取得部１０は、取得した加速度データ及び角速度データを姿勢推定部２０及び座標変換部３０に出力する。姿勢推定部２０は、取得部１０から出力された加速度データ及び角速度データを入力とする。姿勢推定部２０は、入力された加速度データ及び角速度データに基づいて、加速度データ及び角速度データの取得元のセンサの姿勢角を推定する（ステップＳ１０２）。センサの姿勢角の推定には、例えば参考文献１に記載されている姿勢角推定装置を用いてもよいし、一般的によく知られている姿勢推定方法を使用してもよい。（参考文献１：特開２００４−２６４０２８号公報）ここで、姿勢角とは、グローバル座標系におけるセンサ座標系の姿勢を一意に決定するものである。図５は、センサ座標軸を示す図である。図５に示すように、センサ座標軸として、鉛直方向、進行方向及び横方向の３軸が用いられる。姿勢推定部２０は、姿勢角の推定結果を座標変換部３０に出力する。
【００１６】
座標変換部３０は、取得部１０から出力された加速度データ及び角速度データと、座標変換部３０から出力された推定結果とを入力とする。座標変換部３０は、入力された姿勢角の推定結果から、加速度データ及び角速度データの座標を変換（センサ座標からグローバル座標に変換）する（ステップＳ１０３）。具体的には、座標変換部３０は、回転行列や四元数などによって、二つの座標系間の変換を行う。図６は、センサ座標軸からのグローバル座標変換の概要を示す図である。座標変換には、クォータニオンを用いた姿勢演算アルゴリズム等の一般的によく知られている手法が用いられてもよいし、その他の手法が用いられてもよい。座標変換部３０は、座標変換後の角速度データを角度算出部４０に出力する。また、座標変換部３０は、座標変換後の加速度データ及び角速度データをフィルタ処理部５０に出力する。
【００１７】
角度算出部４０は、座標変換部３０から出力された座標変換後の角速度データを入力とする。角度算出部４０は、入力された座標変換後の角速度データを積分し、進行方向軸、鉛直方向軸及び横方向軸について角度を算出する（ステップＳ１０４）。鉛直方向軸の角度はユーザが水平面においてどの方向に移動しているかを示し、進行方向軸の角度はユーザの横方向の揺れを示し、横方向軸の角度はユーザの前後の揺れを示している。
【００１８】
フィルタ処理部５０は、座標変換部３０から出力された座標変換後の加速度データ及び角速度データを入力とする。フィルタ処理部５０は、入力された座標変換後の加速度データ及び角速度データのそれぞれのデータに対して、ある一定の周波数成分の値を通過させるフィルタ処理を行う（ステップＳ１０５）。例えば、フィルタ処理部５０は、加速度データに対して歩行動作の一般的な周波数（例えば、２Ｈｚ）を通過させるローパスフィルタを適用する。これは歩行動作において、着地時に衣服が振動し、センサの測定値に振動成分が重畳することがある。これにより、一歩区間の検出に誤差が生じ、これが歩幅の誤差となり移動距離の推定誤差が大きくなってしまう場合がある。そこで、フィルタ処理部５０は、このような問題を低減させるためにローパスフィルタを適用する。ここで、ローパスフィルタの一例を図７に示す。また、例えば、フィルタ処理部５０は、角速度データに対してドリフトの影響を低減するため、ハイパスフィルタを適用する。フィルタ処理部５０は、フィルタ処理後の加速度データ及び角速度データを単位動作抽出部６０に出力する。
【００１９】
単位動作抽出部６０は、角度算出部４０から出力された角度データと、フィルタ処理部５０から出力されたフィルタ処理後の加速度データ及び角速度データとを入力とする。単位動作抽出部６０は、入力された加速度データから合成ベクトルのノルムを算出する（ステップＳ１０６）。合成ベクトルのノルムとしては合成ベクトルの大きさを使用してよい。単位動作抽出部６０は、算出した合成ベクトルのノルムに基づいて単位動作区間が検出できたか否かを判定する（ステップＳ１０７）。単位動作は、図８に示すような典型的な１歩の動作と等価であるそのため、単位動作抽出部６０は、合成ベクトルの大きさが三角関数の１周期の形状となる部分を単位動作区間として検出する。この際、加速度データに対してローパスフィルタを適用していないと、図９に示すように合成ベクトルにも振動等の高周波成分が重畳されてしまい、単位動作区間が正しく検出できなくなる。
【００２０】
単位動作区間が検出できなかった場合（ステップＳ１０７−ＮＯ）、推定装置１００はステップＳ１０１以降の処理を繰り返し実行する。
一方、単位動作区間が検出できた場合（ステップＳ１０７−ＹＥＳ）、単位動作抽出部６０は単位動作区間毎に、単位動作区間内の加速度データと、角速度データと、角度データとを推定用時系列データとして抽出する（ステップＳ１０８）。単位動作抽出部６０は、抽出した推定用時系列データを動作推定部７１、方向推定部７２及び距離推定部７３に出力する。
【００２１】
動作推定部７１は、環境情報と、単位動作抽出部６０から出力された推定用時系列データとを入力とする。動作推定部７１は入力された推定用時系列データから、単位動作区間における動作を推定する（ステップＳ１０９）。具体的には、動作推定部７１は、センサの向きを変化させない移動動作及び移動を伴わない動作を推定する。
【００２２】
動作推定部７１は、センサの向きを変化させない移動動作を推定する際、図１０に示すテンプレートパターンと比較して、テンプレートに近い動作を結果とする。図１０は、前歩きと後ろ歩きのテンプレートパターンを示す図である。図１０において、横軸は時間を表し、縦軸は振幅を表す。図１０には、２つのテンプレートパターン８１及び８２が示されている。図１０に示すテンプレートパターンのうち、テンプレートパターン８１は前歩きのテンプレートパターンを表し、テンプレートパターン８２は後ろ歩きのテンプレートパターンを表す。動作推定部７１は、このようなテンプレートパターンを動作ＤＢ７１１に予め保持している。ここで、動作推定部７１の具体的な処理について説明する。
【００２３】
例えば、進行方向の加速度が図１１の左側に示す波形であった場合、図１０の前歩きのテンプレートと形状が似ているため、動作推定部７１は前歩きと推定する。一方、進行方向の加速度が図１１の右側に示す波形であった場合、図１０の後ろ歩きのテンプレートと形状が似ているため、動作推定部７１は後ろ歩きと推定する。動作推定部７１は、同様に、横方向の加速度においても右方向、左方向のテンプレートと比較して、似ている方向を推定結果とする。この際、動作推定部７１は、似ているかどうかを加速度波形とテンプレート波形のユークリッド距離を用いて判定してもよいし、ＤＴＷ(Dynamic Time Warping)距離を用いて判定してもよいし、その他の手法を用いてもよい。そして、動作推定部７１は、距離が最も近いテンプレートを最も似ているものとすればよい。この距離を用いて類似度を評価する場合、それぞれの波形の振幅を規格化して評価してもよい。例えば、すべての波形の振幅が−１〜１となるように、振幅の大きさを規格化すればよい。
【００２４】
図１２は、一連の歩行動作において１歩１歩について前歩きテンプレートと後ろ歩きテンプレートとのＤＴＷ距離を算出した結果を示す図である。この結果から、加速度波形と前歩きテンプレートとのＤＴＷ距離が、加速度波形と後ろ歩きテンプレートとのＤＴＷ距離と比べて小さいため、動作推定部７１は動作として前歩きと推定する。このように、動作推定部７１は、保有しているテンプレートと最も特徴（波形）が似ている動作を採用すればよい。なお、動作推定部７１は、テンプレートとの距離が全て閾値よりも大きい場合には、移動していないと推定することができる。図１３に、移動を伴わない動作における合成ノルムの波形パターンの一例を示す。図１３に示すように、移動を伴わない動作であっても、単位動作波形の組み合わせで構成されていることが分かる。したがって、動作推定部７１は、単位動作毎にパターンマッチングにより状態遷移させながら推定することにより、移動を伴わない動作であっても動作を推定することができる。また、動作が一つに決まらない場合には動作不明として分類してもよい。また、動作が不明の場合には、環境情報を活用して、移動しているか、移動していないかを推定することも可能である。その後、動作推定部７１は、動作の推定結果を方向推定部７２及び外部の装置に出力する。
【００２５】
方向推定部７２は、単位動作抽出部６０から出力された推定用時系列データと、動作推定部７１から出力された動作推定結果とを入力とする。方向推定部７２は、入力された推定用時系列データと、動作推定結果とに基づいて移動方向を推定する（ステップＳ１１０）。具体的には、方向推定部７２は、図１４に示すように、前歩き、後ろ歩き時における１歩において、どの程度回転するかを推定する。図１４のθ＝０の場合は常にまっすぐな直線運動をしていると推定することができる。人間は腰を捻りながら歩行するため、図１４に示すようにセンサの向きは三角関数の波形のようになる。この際、センサの向きは２歩で１周期となるような変化をするのが通常である。したがって、まず方向推定部７２は、２歩間のセンサ向きの平均角速度を算出する。次に、方向推定部７２は、算出結果に１歩分の時間を乗じる。これにより１歩間の回転量を推定することができ、これが進行方向となる。
【００２６】
また、２歩分平均角速度を算出するには、時間遅延やバッファが必要となる。そのため、図１５に示すように、１歩間のデータだけでも同様に進行方向を推定することができる。また、方向推定部７２は、図１６に示すように、対象とする１歩において角度データの中から、合成ノルムが最小値となる時刻と、最大値となる時刻とを内分する時刻（図１６において点Ｐで示される時刻）に該当する角度を移動方向と推定してもよい。ここで、内分する時刻は、例えば、最小値となる時刻と、最大値となる時刻とを１：３に内分する時刻である。この内分する時刻は、人物が足を上げてから着地するまでの動作に関する時刻である。通常、歩行時に足をあげたまま静止などの行動はせず、足を上げてから着地するまでは一定のリズムで実行するために比較的ロバストな方法であると考えられる。その後、方向推定部７２は、方向の推定結果を外部の装置に出力する。
【００２７】
距離推定部７３は、単位動作抽出部６０から出力された推定用時系列データと、動作推定部７１から出力された動作推定結果と、ユーザパラメータと、キャリブレーションデータとを入力とする。変換部７３１は、入力された推定用時系列データにおける加速度データを周波数領域のデータに変換することによってパワースペクトルを算出する。変換部７３１は、算出したパワースペクトルを歩幅算出部７３３に出力する。歩幅算出部７３３は、変換部７３１から出力されたパワースペクトルと、外部装置から入力されたユーザパラメータと、歩幅モデルＤＢ７３２より読み出した歩幅モデルパラメータとに基づいて歩幅を算出する。歩幅算出部７３３は、算出した歩幅を移動距離の推定結果とする（ステップＳ１１１）。一般的な歩幅を推定するモデルは、以下の式１に示すｗｅｉｎｂｅｒｇモデルである。
【００２８】
【数１】
2018042672.tif 000003
【００２９】
ｗｅｉｎｂｅｒｇモデルは、鉛直方向の加速度の最大値と最小値の差分を利用し、パラメータＫを個人毎にキャリブレーションする必要がある。なお、本手法では、ユーザパラメータをモデルの入力にするため、個人毎にキャリブレーションする必要はない。また、本手法では、加速度をパワースペクトルに変換して使用するため、ノイズの影響を受けにくくなることが期待できる。歩幅モデルに使用するパワースペクトルの係数は、歩行の周波数２Ｈｚに最も近い周波数のパワースペクトルを使用してもよいし、１０Ｈｚ以下の周波数のパワースペクトルをしてもよい。本手法で用いる歩幅モデルを図１７に示す。図１７に示すように、本手法で用いる歩幅モデルには、パワースペクトル係数を用いている。この際、図１８に示すように、さまざまな変数選択法を使用して、変数を選択し、汎化性能の向上を狙ってもよい。
【００３０】
また、事前の歩幅モデルを使用して推定した歩幅結果と実測値が異なる場合には、その差分をオフセットとして入力し、以降の推定結果にはオフセットを加味した値を推定結果として出力してもよい。また、新しい歩幅モデルのパラメータを入力して、歩幅モデルを更新してもよい。その後、距離推定部７３は、移動距離の推定結果を外部の装置に出力する。なお、動作推定部７１、方向推定部７２、距離推定部７３では、出力値をＮ歩毎に出力したり、Ｍ秒（Ｍは実数）毎に出力したり、さまざまな出力タイミングを取ることができる。また、距離推定部７３は、移動距離を出力するだけでなく、初期点の座標を入力しておくことにより絶対座標値を出力してもよい。
【００３１】
以上のように構成された推定装置１００によれば、歩行方向、歩行状態及び歩幅の推定精度を向上させることが可能になる。具体的には、推定装置１００は、取得した加速度データ及び角速度データに基づいて、単位動作区間を検出し、検出した単位動作区間内の加速度データ、角速度データ及び角度データから単位動作中の動作を推定する。推定装置１００は、動作を推定する際に、保持している移動動作のテンプレートと、加速度データとを比較することによって移動動作を推定する。また、推定装置１００は、２歩間のセンサ向きの平均角速度に基づいて進行方向を推定する。また、推定装置１００は、時系列データにおける加速度データを周波数領域のデータに変換することによってパワースペクトルを算出し、算出したパワースペクトルと、歩幅モデルパラメータとに基づいて歩幅を算出する。そのため、歩行に関する情報の推定精度を向上させることが可能になる。
また、推定装置１００は、測位に関わる演算量を削減し、振動等のノイズに対してロバスト性が向上し、移動方向や移動距離の推定精度が向上させることができる。
【００３２】
角度算出部４０は、積分する以外にも、角速度データの単純な総和を角度としてもよいし、ドリフトなどの誤差要因を排除するために、ある一定の周波数成分を持つ角速度データのみで積分して角度を算出してもよい。
【００３３】
（第２の実施形態）
図１９は、第２の実施形態における推定装置１００ａの機能構成を表す概略ブロック図である。推定装置１００ａは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行によって、推定装置１００ａは、取得部１０、姿勢推定部２０、座標変換部３０、フィルタ処理部５０、単位動作抽出部６０、推定部７０ａを備える装置として機能する。なお、推定装置１００ａの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、推定プログラムは、電気通信回線を介して送受信されてもよい。
【００３４】
推定装置１００ａは、単位動作抽出部６０及び推定部７０に代えて単位動作抽出部６０ａ及び推定部７０ａを備える点、角度算出部４０を備えない点で推定装置１００と構成が異なる。推定装置１００ａは、他の構成については推定装置１００と同様である。そのため、推定装置１００ａ全体の説明は省略し、単位動作抽出部６０ａ及び推定部７０ａについて説明する。
【００３５】
単位動作抽出部６０ａは、フィルタ処理が施された加速度データ及び角速度データと、角度算出部４０によって算出された移動方向の時系列データとに基づいて、時系列データから単位動作毎にデータを抽出する。
推定部７０ａは、単位動作抽出部６０ａによって抽出された単位動作区間毎のデータに基づいて、人物の動作、移動方向及び移動距離を推定する。推定部７０ａは、深層学習部７４、学習結果記憶部７５、フォーマット変換部７６及び深層学習推定部７７を備える。
【００３６】
深層学習部７４は、単位動作区間中の角速度データ及び加速度データと、正しい動作と、移動方向と、移動距離とを学習用データとして外部から入力し、入力した学習用データに基づいて、深層学習推定部７７で使用するパラメータを学習する。深層学習部７４は、外部から学習開始信号が入力された際に学習を行う。学習開始信号とは、深層学習部７４による学習を実行させるための信号である。学習開始信号及び学習用データは、外部の入力装置を用いて入力されてもよい。入力装置は、例えば、キーボード、マウス等である。
学習結果記憶部７５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。学習結果記憶部７５は、深層学習部７４が学習したパラメータを記憶する。
【００３７】
フォーマット変換部７６は、単位動作抽出部６０によって抽出された時系列データと、外部から入力される環境情報とを固定長フォーマットのデータに変換する。
深層学習推定部７７は、角速度データと加速度データとの周波数領域の情報及び外部から入力されるユーザパラメータと、学習結果記憶部７５に記憶されているパラメータとに基づいて単位動作区間における人物の歩行に関する情報を推定する。
【００３８】
図２０は、第２の実施形態における推定装置１００ａの処理の流れを示すフローチャートである。図２０において図４と同様の処理については、図４と同様の符号を付して説明を省略する。ステップＳ１０７の処理において、単位動作区間が検出できた場合（ステップＳ１０７−ＹＥＳ）、単位動作抽出部６０ａは単位動作区間毎に、単位動作区間内の加速度データと、角速度データと、角度データと、環境情報とを推定用時系列データとして抽出する（ステップＳ２０１）。単位動作抽出部６０ａは、抽出した推定用時系列データをフォーマット変換部７６に出力する。
【００３９】
フォーマット変換部７６は、単位動作抽出部６０ａから出力された推定用時系列データを入力とする。フォーマット変換部７６は、入力された推定用時系列データから周波数情報を算出する（ステップＳ２０１）。具体的には、フォーマット変換部７６は、深層学習には入力データを固定長にする必要があるため一歩毎に時系列の長さが異なるために、推定用時系列データにおける加速度データ、角速度データ及び環境データを内挿、外挿等の手法により単位動作間のデータ長をある一定の固定長フォーマットに変換する。ここでは、その一例として、フォーマット変換部７６は、各時系列データのそれぞれのパワースペクトルと、ＦＦＴ係数とを算出し、固定数のパワースペクトルと、ＦＦＴ係数とを固定長フォーマットデータとして深層学習推定部７７に出力する（ステップＳ２０２）。
【００４０】
深層学習推定部７７は、学習結果記憶部７５に記憶されているパラメータと、フォーマット変換部７６から出力された固定長フォーマットデータとを入力とする。深層学習推定部７７は、入力された固定長フォーマットデータに含まれるパワースペクトルのうち、歩行の周波数を含むパワースペクトルを使用し、固定長のパワースペクトルデータとして、深層学習モデル（多層ニューラルネットワーク）に入力し、動作、移動方向、移動距離を推定する。深層学習モデルには、全結合型の多層ニューラルネットワークだけでなく、畳み込み層、およびプーリングを用いた多層ニューラルネットワークを用いてもよい。ここで、畳み込み層の数を、一歩動作（フェーズ例：反動をつける、足を上げる、足を下ろす、着地）のフェーズ数から決定したり、プーリング層のフィルタサイズを歩行周波数成分付近のパワースペクトルの幅を基に決定したりしてもよい。なお、深層学習モデルのフィルタ係数等のパラメータは事前に学習しておく必要がある。このために、外部から入力する、単位動作期間中のデータを周波数領域に変換したパワースペクトルと、これに対応した正解動作、移動方向、移動距離とをセットにした学習用データを入力し、深層学習部７４において深層学習モデルの学習を行い、この結果を深層学習推定部７７に保存しておく。図２１に畳み込みを利用した深層学習の一例を示す。
【００４１】
以上のように構成された推定装置１００ａによれば、深層学習を適用することにより、大規模な歩行データによる学習が可能となる。その際、事前に学習しておく歩幅モデルの自動化による省力化を実現でき、個人差や日変動などに対するロバスト性を大幅に向上させることができる。
【００４２】
（第３の実施形態）
図２２は、第３の実施形態における推定装置１００ｂの機能構成を表す概略ブロック図である。推定装置１００ｂは、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、推定プログラムを実行する。推定プログラムの実行によって、推定装置１００ｂは、取得部１０、姿勢推定部２０、座標変換部３０、フィルタ処理部５０、推定部７０ｂを備える装置として機能する。なお、推定装置１００ｂの各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、推定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、推定プログラムは、電気通信回線を介して送受信されてもよい。
【００４３】
推定装置１００ｂは、推定部７０に代えて推定部７０ｂを備える点、角度算出部４０及び単位動作抽出部６０を備えない点で推定装置１００と構成が異なる。推定装置１００ｂは、他の構成については推定装置１００と同様である。そのため、推定装置１００ｂ全体の説明は省略し、推定部７０ｂについて説明する。
【００４４】
推定部７０ｂは、フィルタ処理部５０によってフィルタ処理が施された加速度データ及び角速度データに基づいて、人物の歩行に関する情報を推定する。推定部７０ｂは、深層学習部７４ｂ、学習結果記憶部７５、深層学習推定部７７ｂ及び単位データ抽出部７８を備える。
深層学習部７４ｂは、一定時間中の角速度データ及び加速度データと、正しい動作、移動方向、移動距離とを学習用データとして外部から入力し、入力した学習用データに基づいて、深層学習推定部７７ｂで使用するパラメータを学習する。深層学習部７４ｂは、外部から学習開始信号が入力された際に学習を行う。
【００４５】
学習結果記憶部７５は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。学習結果記憶部７５は、深層学習部７４ｂが学習したパラメータを記憶する。
単位データ抽出部７８は、フィルタ処理部５０から出力されたフィルタ処理後の加速度データ及び角速度データと、環境情報とに基づいて、ある一定の時間で時系列データを抽出する。
深層学習推定部７７ｂは、ある一定時間中の角速度データ及び加速度データと、外部から入力するユーザパラメータと、学習結果記憶部７５に記憶されているパラメータとに基づいて、この時間における動作、移動方向、移動距離を推定する。
【００４６】
図２３は、第３の実施形態における推定装置１００ｂの処理の流れを示すフローチャートである。図２３において図４と同様の処理については、図４と同様の符号を付して説明を省略する。ステップＳ１０５の処理がなされると、単位データ抽出部７８はフィルタ処理部５０から出力されたフィルタ処理後の加速度データ及び角速度データを取得する。単位データ抽出部７８は、Ｎ秒分の加速度データ及び角速度データを蓄積したか否か判定する（ステップＳ３０１）。この判定は、推定用時系列データとして深層学習推定部７７ｂに入力するためである。Ｎ秒分のデータを蓄積していない場合（ステップＳ３０１−ＮＯ）、推定装置１００ｂはステップＳ１０１以降の処理を繰り返し実行する。
【００４７】
一方、Ｎ秒分の加速度データ及び角速度データを蓄積している場合（ステップＳ３０１−ＹＥＳ）、単位データ抽出部７８は蓄積しているＮ秒分の加速度データ及び角速度データを推定用時系列データとして深層学習推定部７７ｂに出力する。深層学習推定部７７ｂは、学習結果記憶部７５に記憶されているパラメータと、単位データ抽出部７８から出力された推定用時系列データとを入力とする。深層学習推定部７７ｂは、入力された推定用時系列データと、パラメータと、深層学習モデルを使用して、動作、移動方向及び移動距離を推定する（ステップＳ３０２）。本実施形態では、記憶層を有する深層学習（リカレント型多層ニューラルネットワーク）を使用する。このモデルは、記憶層を有するため、時系列データを入力することが可能である。図２４に記憶層の一例を示す。記憶層を有する場合でも、畳込み型の深層学習を適用することが可能なので併用することができる。
【００４８】
以上のように構成された推定装置１００ｂによれば、記憶機能を持つ深層学習を適用することにより、第１の実施形態及び第２の実施形態のように単位動作の切り出しが不要となり、測位アルゴリズムをすべて深層学習内で実施することができ、学習データ規模に応じて推定精度を大幅に向上させることが可能になる。
【００４９】
以上説明した少なくともひとつの実施形態によれば、人物の角速度データ及び加速度データの時系列データから得られる人物が行う動作を表す単位動作区間毎のデータを抽出する単位動作抽出部６０と、単位動作抽出部６０によって抽出された単位動作区間毎のデータに基づいて、そのデータにおける人物の歩行に関する情報を推定する推定部７０を持つことにより、歩行に関する情報の推定精度を向上させることができる。
【００５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００５１】
１０…取得部，２０…姿勢推定部，３０…座標変換部，４０…角度算出部，５０…フィルタ処理部，６０、６０ａ…単位動作抽出部，７０、７０ａ、７０ｂ…推定部，７１…動作推定部，７１１…動作ＤＢ，７１２…歩行外動作パターンマッチング部，７１３…歩行方向データパターンマッチング部，７１４…動作判定部，７２…方向推定部，７３…距離推定部，７４、７４ｂ…深層学習部，７５…学習結果記憶部，７６…フォーマット変換部，７７、７７ｂ…深層学習推定部，７８…単位データ抽出部，７３１…変換部，７３２…歩幅モデルＤＢ，７３３…歩幅算出部，７４…深層学習部，１００、１００ａ、１００ｂ…推定装置
【図１】
2018042672.tif 000004
【図２】
2018042672.tif 000005
【図３】
2018042672.tif 000006
【図４】
2018042672.tif 000007
【図５】
2018042672.tif 000008
【図６】
2018042672.tif 000009
【図７】
2018042672.tif 000010
【図８】
2018042672.tif 000011
【図９】
2018042672.tif 000012
【図１０】
2018042672.tif 000013
【図１１】
2018042672.tif 000014
【図１２】
2018042672.tif 000015
【図１３】
2018042672.tif 000016
【図１４】
2018042672.tif 000017
【図１５】
2018042672.tif 000018
【図１６】
2018042672.tif 000019
【図１７】
2018042672.tif 000020
【図１８】
2018042672.tif 000021
【図１９】
2018042672.tif 000022
【図２０】
2018042672.tif 000023
【図２１】
2018042672.tif 000024
【図２２】
2018042672.tif 000025
【図２３】
2018042672.tif 000026
【図２４】
2018042672.tif 000027