(57)【要約】【課題】歩行者の動作が微少であっても、誤検出することなく正確な移動方向を算出すること。【解決手段】移動方向算出装置１１０は、歩行者１００の前後、左右、上下の各方向の加速度を検出する加速度センサ１２０の検出値を利用して歩行者が歩行中か否か、歩行中であれば、前後左右のいずれの方向に移動しているかを算出することができる。さらに、加速度センサの検出値を利用して歩行者の移動形態も特定するため、歩行者の移動状況を高精度に特定することができる。【選択図】図１
2010281579.tif 000002
【特許請求の範囲】
【請求項１】
歩行者の前後方向となる第一の方向と、左右方向となる第二の方向と、上下方向となる第三の方向との加速度を検出する加速度センサの検出値を取得する取得手段と、
前記取得手段によって取得された３方向の加速度を用いて、各方向間の加速度の相関を算出する算出手段と、
前記取得手段によって取得された前記第三の方向の加速度の波形の振幅に応じて任意の周期ごとに前記歩行者が移動中か否かを判断する判断手段と、
前記判断手段によって、前記歩行者が移動中であると判断された場合、前記算出手段によって算出された前記第一の方向と前記第三の方向との相関の前記任意の周期における最大値と、前記第二の方向と前記第三の方向との相関の前記任意の周期における最大値との比較結果に応じて、前記歩行者の移動方向を判別する移動方向判別手段と、
前記移動方向判別手段による判別結果を出力する出力手段と、
を備えることを特徴とする移動方向算出装置。
【請求項２】
前記判断手段は、
前記第三の方向の加速度波形の振幅の形状にかかわらず、前記算出手段によって算出された前記第一の方向と前記第三の方向との相関の最大値もしくは前記第二の方向と前記第三の方向との相関の最大値がしきい値に満たない場合に、前記歩行者が移動中ではないと判断することを特徴とする請求項１に記載の移動方向算出装置。
【請求項３】
前記移動方向判別手段は、
前記任意の周期における前記第一の方向と前記第三の方向との相関の最大値と、前記第二の方向と前記第三の方向との相関の最大値を比較して、該第一の方向と該第三の方向との相関の最大値が大きかった場合には前記歩行者は前後方向に移動していると判別し、該第二の方向と該第三の方向との相関の最大値が大きかった場合には前記歩行者は左右方向に移動していると判別することを特徴とする請求項１または２に記載の移動方向算出装置。
【請求項４】
前記移動方向判別手段は、
前記歩行者が前後方向に移動していると判別された場合、さらに、前記第一の方向と前記第三の方向との相関の最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、前記歩行者が前方向と後方向のいずれに移動しているかを判別することを特徴とする請求項１〜３のいずれか一つに記載の移動方向算出装置。
【請求項５】
前記移動方向判別手段は、
前記歩行者が左右方向に移動していると判別された場合、さらに、前記第二の方向と前記第三の方向との相関の最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、前記歩行者が右方向と左方向とのいずれに移動しているかを判別することを特徴とする請求項１〜３のいずれか一つに記載の移動方向算出装置。
【請求項６】
前記移動方向判別手段によって、前記歩行者が前後方向に移動していると判別された場合に、前記第一の方向と前記第三の方向との相関の最大値と、当該最大値の実部と虚部とから算出される位相差の値とに応じて、歩行、走行および忍足のいずれで移動したかを判別し、前記歩行者が左右方向に移動していると判別された場合に、前記第二の方向と前記第三の方向との相関の最大値と、当該最大値の実部と虚部とから算出される位相差の値とに応じて、歩行、走行および忍足のいずれで移動したかを判別する移動形態判別手段を備え、
前記出力手段は、前記移動形態判別手段による判別結果を出力することを特徴とする請求項１〜５のいずれか一つに記載の移動方向算出装置。
【請求項７】
前記歩行者の移動方向ならびに移動形態ごとに移動時間に応じた移動距離を表す近似式を用意し、前記任意の周期ごとに前記移動方向判別手段と前記移動形態判別手段によって判別された移動方向ならびに移動形態に対応した近似式を選択して前記歩行者の移動距離を算出する移動距離算出手段を備え、
前記出力手段は、前記移動距離算出手段による算出結果を出力することを特徴とする請求項６に記載の移動方向算出装置。
【請求項８】
コンピュータを、
歩行者の前後方向となる第一の方向と、左右方向となる第二の方向と、上下方向となる第三の方向との３軸方向の加速度を検出する加速度センサの検出値を取得する取得手段、
前記取得手段によって取得された３方向の加速度を用いて、各方向間の加速度の相関を算出する算出手段、
前記取得手段によって取得された前記第三の方向の加速度の波形の振幅に応じて任意の周期ごとに前記歩行者が移動中か否かを判断する判断手段、
前記判断手段によって、前記歩行者が移動中であると判断された場合、前記算出手段によって算出された前記第一の方向と前記第三の方向との相関の前記任意の周期における最大値と、前記第二の方向と前記第三の方向との相関の前記任意の周期における最大値との比較結果に応じて、前記歩行者の移動方向を判別する移動方向判別手段、
前記移動方向判別手段による判別結果を出力する出力手段、
として機能させることを特徴とする移動方向算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、歩行者に装着して、当該歩行者が移動した際の移動方向を算出する移動方向算出装置および移動方向算出プログラムに関する。
【背景技術】
【０００２】
従来より、歩行者の前後、左右、上下の３軸方向の移動に伴う加速度を検出する加速度センサを利用して歩行者の移動方向や移動方位を算出する機器が提供されている。具体的には、加速度センサを歩行者に装着させた後、一歩ごとに歩行者の体の上下運動に伴う加速度の振幅と位相差を算出する。そして、歩行・走行の別と、移動方向ごとにケース分けした歩行強度から移動距離を算出する技術が開示されている（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３２５７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、歩行者の歩き方によっては正しい移動方向や移動方位を算出できないことがあった。たとえば、歩行者が微少な動作で移動した場合、加速度センサによって検出される加速度の変化が非常に小さくなるため、歩行状態の検出、移動距離ならびに検出した移動方向や移動方位の誤差が大きくなってしまう。さらに、移動距離を求めるには、移動方向ごとに移動距離を算出する近似式を設定している。したがって、各方向を検出する際の誤差が、結果として算出された移動距離の大きなズレを招いてしまうという問題があった。
【０００５】
本開示技術は、上述した従来技術による問題点を解消するため、歩行者の動作が微少であっても、誤検出することなく正確な移動方向を算出する移動方向算出装置および移動方向算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、本開示技術は、歩行者の前後方向となる第一の方向と、左右方向となる第二の方向と、上下方向となる第三の方向との加速度を検出する加速度センサの検出値を取得する処理と、取得された３方向の加速度を用いて、各方向間の加速度の相関を算出する処理と、取得された前記第三の方向の加速度の波形の振幅に応じて任意の周期ごとに前記歩行者が移動中か否かを判断する処理と、前記歩行者が移動中であると判断された場合、算出された前記第一の方向と前記第三の方向との相関の前記任意の周期における最大値と、前記第二の方向と前記第三の方向との相関の前記任意の周期における最大値との比較結果に応じて、前記歩行者の移動方向を判別する処理と、判別結果を出力する処理とを、備えることを要件とする。
【発明の効果】
【０００７】
本移動方向算出装置および移動方向算出プログラムによれば、歩行者の動作が微少であっても、誤検出することなく正確な移動方向を算出することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態にかかる移動方向算出処理の一実施例を示す説明図である。
【図２】移動方向算出装置のハードウェア構成を示すブロック図である。
【図３】移動方向算出装置の機能的構成を示すブロック図である。
【図４】センサ部３１０からのデータ取得手順を示すフローチャートである。
【図５】センサ部３１０によって取得した検出値の蓄積例を示すデータテーブルである。
【図６】移動方向算出処理の手順を示すフローチャートである。
【図７】動作状態率ｋの算出手順を示すフローチャートである。
【図８】Ｚ軸方向の加速度の波形を用いた動作状態率の算出例を示す説明図である。
【図９】歩行状態の検出例を示す波形図である。
【図１０】ＸＺクロススペクトルとＹＺクロススペクトルとの最大値を用いた前後方向判別例を示す波形図である。
【図１１】ＸＺクロススペクトルとＹＺクロススペクトルとの最大値を用いた左右方向判別例を示す波形図である。
【図１２】移動形態の判定条件例を示すデータテーブルである。
【図１３】前進時の位相差例を示す波形図である。
【図１４】後進時の位相差例を示す波形図である。
【図１５】右歩行時の位相差例を示す波形図である。
【図１６】左歩行時の位相差例を示す波形図である。
【図１７】移動距離係数の設定例を示すデータテーブルである。
【図１８】移動距離近似式の設定例を示すグラフである。
【図１９】算出結果の出力例を示すデータテーブルである。
【図２０】センタへの情報提供例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、本開示技術かかる移動方向算出装置および移動方向算出プログラムの好適な実施の形態を詳細に説明する。本実施の形態では、歩行者の前後、左右、上下の各方向の加速度を検出する加速度センサの検出値を利用する。そして、歩行者が歩行中か否か、歩行中であれば、前後左右のいずれの方向に移動しているかを算出することができる。さらに、加速度センサの検出値を利用して歩行者の移動形態も特定するため、歩行者の移動状況を高精度に特定することができる。
【００１０】
（移動方向算出処理の実施例）
図１は、本実施の形態にかかる移動方向算出処理の一実施例を示す説明図である。図１のように、本実施の形態では、歩行者１００に移動方向算出装置１１０を装着させる。移動方向算出装置１１０は、歩行者１００の前後方向となる第一の方向（Ｘ軸）と、左右方向となる第二の方向（Ｙ軸）と、上下方向となる第三の方向（Ｚ軸）との３軸方向の加速度を検出する加速度センサ１２０を有する。
【００１１】
なお、加速度センサ１１０を歩行者１００に装着する際には、第一の方向の加速度を検出するセンサが歩行者１００の正面方向となり、第二の方向の加速度を検出するセンサが歩行者１００の前後方向に対して垂直に交わる方向となり、第三の方向の加速度を検出するセンサが歩行者１００の垂直方向となるように留意する。
【００１２】
また、移動方向算出処理を実現するための機能部として、取得部１１１と、算出部１１２と、判断部１１３と、判別部１１４と、移動距離算出部１１５と、出力部１１６とを有する。なお、以下の説明では、便宜上、加速度センサ１２０によって検出された上述の第一の方向をＸ軸方向、第二の方向をＹ軸方向、第三の方向をＺ軸方向として説明する。
【００１３】
取得部１１１は、上述したような３軸方向の加速度を検出する加速度センサ１２０から検出値を取得する機能を有する。なお、図１では、加速度センサ１２０は移動方向算出装置１１０内部に搭載された構成であるが、既存の加速度センサを利用する場合などは、加速度センサ１２０と移動方向算出装置１１０とが独立して提供されることもある。加速度センサ１２０と移動方向算出装置１１０とが独立した場合、取得部１１１は、独立した加速度センサ１２０と有線無線を問わず接続されており、検出値を取得する機能を有している。
【００１４】
算出部１１２は、取得部１１１によって取得された３軸方向の加速度を用いて、各方向どうしの加速度の相関性を表すクロススペクトルを算出する機能を有する。具体的には、算出部１１２では、Ｚ軸方向の加速度とＸ軸方向の加速度との相関性を表すＸＺクロススペクトルと、Ｚ軸方向の加速度とＹ軸方向の加速度との相関性を表すＹＺクロススペクトルとをそれぞれ算出する。
【００１５】
ＸＺクロススペクトルは、歩行者１００の前後移動と上下移動とが連動しているかを表し、連動性が高ければＸＺクロススペクトルの値も大きくなる。同様に、ＹＺクロススペクトルは、歩行者１００の左右移動と上下移動とが連動しているかを表す。本実施の形態では、これらクロススペクトルの値を利用して歩行者１００がどのような歩行をしているかを判別する。
【００１６】
判断部１１３は、取得部１１１によって取得されたＺ軸方向の加速度の波形の振幅に応じて任意の周期ごとに歩行者１００が歩行中か否かを判断する機能を有する。任意の周期とは、移動方向算出装置１１０によって移動方向算出処理をおこなう時間間隔である。判断部１１３では、期間間隔の単位ごとに取得部１１１によって検出値を取得して歩行中か否かの判断をおこなう。また、以下に説明する判別処理や移動距離算出処理も任意の周期を基準に実行される。なお、以下では、任意の周期を単位周期として説明する。
【００１７】
そこで、単位周期としては、少なくとも歩行者１００が一歩以上歩行する際の動作によって生じる加速度を検出できるように、時間間隔を設定することが望ましい。したがって、通常は、一般的に人間が一歩歩行する際に要する時間間隔を単位周期に設定する。その後、歩行者１００の歩行の癖に応じて時間間隔を変更してもよい。
【００１８】
つぎに、判断部１１３による歩行中か否かの判断処理について詳しく説明する。判断部１１３では、人間が二足歩行をする際に、体が上下方向に揺れるという特徴を利用して歩行中か否かを判断する。判断部１１３では、具体的には、Ｚ軸方向の加速度の連続値によって表された波形の振幅が上限（正負それぞれの上限値）より大きければ歩行者１００は歩行中（走行も含む）と判断する。一方、判断部１１３では、波形の振幅が下限に満たない場合には歩行者１００は停止中であると判断する。
【００１９】
なお、判断部１１３は、上述した単位周期ごとに歩行中か否かを判断するような構成であってもよい。上述のような場合、単位周期において、歩行者１００が、歩行中と判断された時間の割合（動作状態率）を求めてもよい。したがって、歩行中か否かの判断結果も、単位周期ごとに出力される。
【００２０】
また、判断部１１３は、上述したようなＺ軸方向の加速度の波形を利用した判断処理の他に、算出部１１２によって算出されたＸＺクロススペクトルとＹＺクロススペクトルとを利用して、歩行者１００が歩行中か否かを判断することもできる。クロススペクトルを利用する場合、判断部１１３は、上述の単位周期の間に算出部１１２によって算出されたＸＺクロススペクトルの最大値もしくはＹＺクロススペクトルの最大値がしきい値に以上か否かに応じて、歩行中か否かの判断をおこなう。
【００２１】
すなわち、判断部１１３は、ＸＺとＹＺのいずれかのクロススペクトルがしきい値以上であれば、歩行者１００は歩行中であると判断し、しきい値に満たなければ、停止中であると判断する。なお、歩行中か否かの判断基準となるしきい値は、過去の検出結果から歩行状態に算出されるクロススペクトルの値に応じて設定する。設定の際には、あらかじめ歩行者１００の歩行時の検出値によって算出されたクロススペクトルの値からしきい値を利用すれば、より、誤検出のない高精度な判断処理が可能となる。
【００２２】
以上説明したように、判断部１１３では、２種類の判断基準によって歩行者１００が歩行中か否かを判断することができる。本実施の形態の場合、判断部１１３は、２種類の判断基準のうち、いずれか一方のみを利用して歩行中か否かを判断してもよい。また、２種類の判断基準を利用する場合、双方とも歩行中と判断された場合にのみ、最終的に、歩行者１００が歩行中であると判断する処理が好ましい。２重の判断基準を設けることによって、判断部１１３では、歩行者１００が停止中に発生する体の揺れを歩行中のサインとして誤検出するような事態を防ぐことができる。
【００２３】
判別部１１４は、算出部１１２によって算出されたクロススペクトルの値を利用して歩行者１００の移動に関する判別処理をおこなう機能を有する。歩行者１００の移動に関する情報とは、具体的には、移動方向（前後左右）と移動形態（歩行、走行、忍足）である。したがって、判別部１１４によって、移動方向を判別する場合と、移動形態を判別する場合のそれぞれの処理について、順を追って説明する。なお、いずれの判別処理も、判断部１１３により歩行者１００が移動中であると判断された場合にのみ処理が開始される。すなわち、歩行状態を判別処理開始のトリガとすることによって、停止中に判別部１１４による判別処理を停止させることができる。
【００２４】
まず、判別部１１４による歩行者１００の移動方向の判別について説明する。判別部１１４は、算出部１１２によって算出されたＸＺクロススペクトルとＹＺクロススペクトルについて、それぞれ単位周期における最大値を比較する。そして、判別部１１４は、比較結果を参照し、ＸＺクロススペクトルが大きければ前後移動、ＹＺクロススペクトルが大きければ左右移動と判別する。
【００２５】
判別部１１４は、上述の処理によって前後移動か左右移動かが判別されると、さらに、前後のいずれ、もしくは、左右のいずれに移動しているかを判別する処理に移行する。判別部１１４は、歩行者１００が前後方向に移動していると判別した場合、さらに、ＸＺクロススペクトルの最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、前方向と後方向のいずれに移動しているかを判別する。
【００２６】
同様に、判別部１１４は、歩行者１００が左右方向に移動していると判別した場合、さらに、ＹＺクロススペクトルの最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かを判断する。判断結果に応じて判別部１１４は、歩行者１００が右方向と左方向とのいずれに移動しているかを判別する。なお、位相差の範囲は、過去の検出結果から適宜設定すればよい。
【００２７】
ＸＺクロススペクトルの最大値の実部と虚部との位相差の値は、前方向に移動している場合と後方向に移動している場合とでは、明確に区別された値が算出される。たとえば、前方向の移動中には位相差が−９０度〜９０度の間となり、後方向の移動中には位相差が９０度〜−９０度の間になるといった特徴が発生する。位相差の分布の特徴はＹＺクロススペクトルにおける左右の移動に関しても発生する。したがって、判別部１１４には、歩行者１００の各方向への移動に応じて発生する位相差の範囲が設定されている。
【００２８】
つぎに、判別部１１４による移動形態の判別について説明する。判別部１１４は、上述した移動方向の判別結果と、対応するクロススペクトルの最大値とに基づいて、歩行者１００が歩行か走行か忍足かのいずれの形態であるかを判別する。具体的には、まず、判別部１１４によって、判別された歩行者１００の移動方向を参照する。そして、歩行者１００が前後方向に移動していると判別されている場合、判別部１１４は、同一の単位周期におけるＸＺクロススペクトルの最大値と、当該最大値の実部と虚部とから算出される位相差の値を特定する。
【００２９】
同様に、歩行者１００が左右方向に移動していると判別された場合、判別部１１４は、同一の単位周期におけるＹＺクロススペクトルの最大値と、当該最大値の実部と虚部とから算出される位相差の値とを特定する。判別部１１４には、あらかじめ、ＸＺクロススペクトル（もしくはＹＺクロススペクトル）の最大値と、最大値の実部と虚部とから算出される位相差の値とに応じた移動形態の場合分け情報が用意されている。したがって、判別部１１４は、特定された値によって場合分けをおこない、歩行者１００の移動形態を判別する。
【００３０】
移動距離算出部１１５は、判別部１１４による判別結果を利用して歩行者１００の移動距離を算出する機能を有する。具体的には、判別部１１４によって判別された移動方向と、移動形態とに基づいて、あらかじめ用意した移動距離を求める近似式を選択する。移動距離算出部１１５では、選択された近似式を利用して、単位周期ごとに歩行者１００の移動距離を算出することができる。なお、近似式に単位周期内の歩行時間の割合（後述する動作状態率ｋ）をかけることによって、停止中の時間が移動距離の算出に含まれないように設定することができる。
【００３１】
出力部１１６は、移動方向算出装置１１０による移動方向算出処理によって特定された情報を出力する機能を有する。具体的には、判別部１１４による判別結果や、移動距離算出部１１５による算出結果が出力される。なお、出力部１１６による情報の出力先は任意に設定することができる。たとえば、移動方向算出装置１１０自体に表示部を取り付けて歩行者１００に出力情報を表示してもよいし、通信Ｉ／Ｆ（インターフェース）を介して他の装置に送信して他者に出力情報を表示してもよい。
【００３２】
以上説明したように、本実施の形態にかかる移動方向算出処理では、加速度センサ１２０によって検出された歩行者１００の前後左右上下の加速度の値を利用して、歩行者１００の動作を詳細に特定することができる。特に、歩行者１００の上下方向の加速度（Ｚ軸方向の加速度）を利用して、歩行者１００が歩行中か停止中かの判断をおこなうため、歩行時間を詳細に特定できる。すなわち、歩行者１００が、どの方向へどのような移動形態でどれだけの時間歩行したかを特定できるため、誤差の少ない高精度な移動距離を算出することができる。
【００３３】
また、本実施の形態の判断部１１３では、歩行者１００の上下方向の加速度の波形や、上下方向の移動と前後方向への移動（もしくは左右方向への移動）との相関性の大きさに応じて歩行中か否かを判断している。これらの値は、加速度センサ１２０によって検出された値の大小にかかわらず出力される。したがって、従来の課題であった、歩行者１００自身の動作が微少な歩行であっても、正確に歩行中か否かの判断を下すことができる。
【００３４】
また、本実施の形態の判別部１１４では、判断部１１３による歩行中との判断結果が判別処理のトリガとなるため、停止中であるにもかかわらず算出部１１２によって算出されたクロススペクトルを利用して判別結果（誤った判別結果）を出力してしまうような事態を防ぐことができる。また、判別部１１４は、算出部１１２によって、算出されたクロススペクトル（ＸＺクロススペクトル、ＹＺクロススペクトル）から求められる情報のみを用いて、歩行者１００の移動方向と移動形態をそれぞれ判別することができる。なお、本実施の形態にて述べる移動方向とは、前進、後進、左右移動といった歩行者１００の体の向きに対して移動する方向を表す。
【００３５】
また、本実施の形態の移動距離算出部１１５では、判別部１１４による歩行者１００の移動方向と移動形態との判別結果ごとに、判断部１１３による歩行判断によって求められた歩行時間分移動した場合の移動距離が算出される。したがって、移動方向や移動形態が変わった場合には、あらたな判別結果に応じた移動距離が算出される。したがって、従来技術のように小さな誤検出の累積によって移動距離の算出結果が大きくずれてしまうような事態を防ぎ、高精度に移動距離を算出することができる。
【００３６】
以下に、上述したような本実施の形態にかかる移動方向算出処理を実現するための具体的な構成例や処理手順について順番に説明する。
【００３７】
（移動方向算出装置のハードウェア構成）
図２は、移動方向算出装置のハードウェア構成を示すブロック図である。図１に表したように、移動方向算出装置１１０は、歩行者１００が携帯可能な小型装置である。また、移動方向算出装置１１０は、たとえば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）やＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの既存の端末に以下に説明するハードウェア構成を追加したものでもよいし、専用の筐体からなる装置であってもよい。
【００３８】
移動方向算出装置１１０の内部は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０４と、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）２０５と、メモリドライブ２０６と、リムーバブルメモリ２０７と、ディスプレイ２０８と、入力Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、各種センサ２１０と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２１１と、を備えている。また、各構成部はバス２２０によってそれぞれ接続されている。
【００３９】
ここで、ＣＰＵ２０１は、移動方向算出装置１１０の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００４０】
メモリドライブ２０６は、ＣＰＵ２０１の制御にしたがってリムーバブルメモリ２０７に対するデータのリード／ライトを制御する。リムーバブルメモリ２０７は、メモリドライブ２０６の制御で書き込まれたデータを記憶したり、リムーバブルメモリ２０７に記憶されたデータをＣＰＵ２０１の制御に応じてメモリドライブ２０６に読み取らせたりする。
【００４１】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４２】
入力Ｉ／Ｆ２０９は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、入力Ｉ／Ｆ２０９の構成例としては、たとえば、タッチパネル式の入力パッドやテンキーや、マウス、トラックボールやジョイスティックなどのポインティングデバイスなどが挙げられる。
【００４３】
各種センサ２１０は、移動方向を算出するための情報を測定するための異なる機能を持った複数種類のセンサから構成されている。具体的には、図１に示したような３軸方向の加速度を検出する加速度センサ１２０と、磁気センサと、ジャイロセンサとが搭載されている。加速度センサ１２０は、図１によって説明したように歩行者１００の歩行間隔や、移動方向を特定するために利用され、その他の磁気センサおよびジャイロセンサは、歩行者１００の移動する方位を特定するために利用される。したがって、移動方向算出装置１１０に要求される仕様に応じて磁気センサとジャイロセンサとのいずれかの一方のみを搭載してもよい。
【００４４】
なお、磁気センサは、エレベータの昇降や自動車の通過などに伴う磁気変動の影響を受けて誤検出を起こすことがある（高精度の磁気センサであるほど影響が大きい）。したがって、上述のような影響を受けやすい環境下での使用が想定される移動方向算出装置１００の場合は、磁気センサとジャイロセンサとの双方を搭載し、磁気センサの検出誤差をジャイロセンサの検出値によって補正するような設定が望ましい。
【００４５】
ネットワークＩ／Ｆ２１１は、有線無線を問わずに通信回路２１２を通じてインターネットなどのネットワーク２３０に接続する。さらに、ネットワークＩ／Ｆ２１１は、接続したネットワーク２３０を介して移動方向算出装置１１０を他の装置（外部装置）に接続することができる。したがって、ネットワークＩ／Ｆ２１１は、ネットワーク２３０と移動方向算出装置１１０とのインターフェースを司り、外部装置からのデータの入出力を制御する。なお、ネットワークＩ／Ｆ２１１には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００４６】
（移動方向算出装置の機能的構成）
図３は、移動方向算出装置の機能的構成を示すブロック図である。図３のように、移動方向算出装置１１０は、センサ部３１０と、演算処理部３２０と、記憶部３３０と、表示部３４０と、通信部３５０とから構成されている。
【００４７】
センサ部３１０は、加速度センサ３１１（加速度センサ１２０の搭載例）と、磁気センサ３１２と、ジャイロセンサ３１３の３種類のセンサを備えている。センサ部３１０では、これら各センサから歩行者１００の移動に伴う動作内容を単位周期ごとに連続して検出する。また、センサ部３１０は、たとえば、図２にて説明した各種センサ２１０によって実現される。
【００４８】
なお、加速度センサ３１１は歩行者１００の移動状態、移動方位ならびに移動形態を特定するために利用され、磁気センサ３１２とジャイロセンサ３１３は、いずれも歩行者１００の移動方位を特定するために利用される。したがって、磁気センサ３１２とジャイロセンサ３１３とのいずれかに大きな誤差が生じることのない利用環境であれば、加速度センサ３１１以外は、いずれか一方のみを搭載するような構成であってもよい。
【００４９】
演算処理部３２０は、センサ部３１０から取得した検出値を用いて歩行者１００の移動方向を算出する機能部である。したがって、検出値を利用したクロススペクトルの算出や、算出値の比較処理などがおこなわれる。たとえば、図１にて説明した、算出部１１２、判断部１１３、判別部１１４、移動距離算出部１１５の処理は演算処理部３２０によっておこなわれる。なお、演算処理部３２０は、たとえば、図２にて説明したＣＰＵ２０１、ＲＯＭ２０２およびＲＡＭ２０３によって実現される。
【００５０】
記憶部３３０は、ＣＰＵ２０１の制御に応じて所定の情報を記憶する機能部である。記憶部３３０に記憶される情報としては、演算処理部３２０による処理結果（たとえば、算出されたクロススペクトル値、移動方向や移動形態の判別結果、移動距離の算出結果など）に加えて、演算処理部３２０による演算処理に利用される演算アルゴリズム３３１や、移動距離を算出する近似式に利用する移動距離係数３３２がある。なお、記憶部３３０は、たとえば、図２にて説明したＨＤＤ２０４、ＨＤ２０５、メモリドライブ２０６およびリムーバブルメモリ２０７によって実現される。
【００５１】
表示部３４０および通信部３５０は、演算処理部３２０によって算出された歩行者１００の移動に関する情報の出力手段として機能する。表示部３４０では、液晶ディスプレイなどの表示デバイスによって歩行者１００自身に移動に関する情報を報知することができる。また、通信部３５０は、演算処理部３２０によって算出された歩行者１００の移動に関する情報を他の装置や特定の情報を収集するセンタに送信することができる。すなわち、通信部３５０を介して、他者に対して歩行者１００の移動に関する情報を報知することができる。
【００５２】
また、通信部３５０は、外部から送信された情報を受信することできる。したがって、記憶部３３０に記憶されている演算アルゴリズム３３１や移動距離計数３３２を必要に応じて外部から取得するような設定でもよい。なお、表示部３４０は、たとえば、図２のディスプレイ２０８によって実現され、通信部３５０は、たとえば、図２のネットワークＩ／Ｆ２１１によって実現される。
【００５３】
（データ取得手順）
図４は、センサ部３１０からのデータ取得手順を示すフローチャートである。移動方向算出装置１１０によって移動方向を算出するには、センサ部３１０の各センサから検出されたデータを演算処理部３２０によって定期的に取得する必要がある。したがって、演算処理部３２０におけるデータ取得手順について、図４のフローチャートを用いて説明する。以下に説明する手順の処理をおこなうことにより、センサ部３１０は、移動方向算出装置１１０の電源ＯＮ／ＯＦＦに対応して自動的にデータを取得することができる。
【００５４】
図４のフローチャートにおいて、移動方向算出装置１１０は、まず、装置の電源がＯＮになったか否かを判断する（ステップＳ４０１）。ここで、移動方向算出装置１１０は、電源がＯＮになるまで待ち（ステップＳ４０１：Ｎｏのループ）、電源がＯＮになったと判断されると（ステップＳ４０１：Ｙｅｓ）、センサ部３１０内の各センサの検出処理が開始される。
【００５５】
ステップＳ４０１のトリガによってセンサ部３１０の検出処理が開始されると、演算処理部３２０は、加速度センサ３１１から検出値を取得し（ステップＳ４０２）、磁気センサ３１２から検出値を取得し（ステップＳ４０３）、ジャイロセンサ３１３から検出値を取得する（ステップＳ４０４）。図４のフローチャートでは、ステップＳ４０２、Ｓ４０３、Ｓ４０４の各処理は直列処理として表されているが、実際には各センサからは同時に検出値が取得されるため並列して実行される。
【００５６】
図５は、センサ部３１０によって取得した検出値の蓄積例を示すデータテーブルを示す説明図である。センサ部３１０の各センサによって取得された検出値は、データテーブル５００のように、軸方向（Ｘ軸、Ｙ軸、Ｚ軸）ごとにそれぞれ蓄積される。移動方向算出装置１１０では、ステップＳ４０２〜Ｓ４０４による検出値の取得、蓄積が開始されると、継続判断のために、処理開始後には電源がＯＦＦされたか否かの判断がおこなわれる（ステップＳ４０５）。
【００５７】
したがって、ステップＳ４０５によって電源のＯＦＦが検出されるまで（ステップＳ４０５：Ｎｏのループ）、ステップＳ４０２〜Ｓ４０４の処理を繰り返す。そして、電源のＯＦＦが検出されると（ステップＳ４０５：Ｙｅｓ）、センサ部３１０からの検出値の取得、蓄積処理が終了する。
【００５８】
（移動方向算出処理手順）
図６は、移動方向算出装置１１０による移動方向算出処理の手順を示すフローチャートである。移動方向算出装置１１０では、図４のフローチャートにて説明したように、電源ＯＮをトリガにして、自動的に各センサ（加速度センサ３１１、磁気センサ３１２、ジャイロセンサ３１３）による検出値が取得される。移動方向算出装置１１０の演算処理部３２０では、取得された検出値を用いて以下に説明する算出処理を実行することによって、歩行者１００の歩行内容を特定することができる。
【００５９】
図６のフローチャートのように、移動方向算出装置１１０では、まず、各センサの検出値を単位周期ごとに取得、蓄積する（ステップＳ６０１）。ステップＳ６０１の処理は、図４のフローチャートにて説明したデータ取得手順に相当する。なお、単位周期とは、少なくとも一歩の歩行が含まれているような時間間隔が設定される。したがって、初期値としてはたとえば２秒を単位周期として検出値を取得、蓄積する。
【００６０】
ステップＳ６０１の処理によって検出値が取得、蓄積されると、つぎに、演算処理部３２０によって、各軸方向の加速度から周波数成分を算出する（ステップＳ６０２）。ステップＳ６０２において、周波数成分を算出するには、検出された加速度に対して、たとえば、ＦＦＴ（Ｆｉｎｉｔｅ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）などによって変換処理を施せばよい。具体例を挙げると、下記の（１）〜（３）式のように、Ｘ，Ｙ，Ｚ軸方向の加速度は、フーリエ変換を施して虚数単位ｊを用いて表すことができる。
【００６１】
【数１】
2010281579.tif 000003
【００６２】
その後、演算処理部３２０は、ステップＳ６０２によって算出された周波数成分を利用して各軸どうしの相関性を表すクロススペクトルを算出する。まず、Ｘ軸方向の周波数成分とＺ軸方向の周波数成分とを用いてＸＺクロススペクトルを算出する（ステップＳ６０３）。
【００６３】
具体的には、上記（１），（３）式によって求められた周波数成分を利用する場合、Ｘ軸方向の加速度とＺ軸方向の加速度との相関性を表すＸＺクロススペクトル＝ＳXZ（ｋΔｆ）は、下記（４）式のようになる。また、ＳXZ（ｋΔｆ）の複素共役関数Ｆ*X（ｋΔｆ）は、下記（５）式のようになる。したがって、ＸＺクロススペクトルの実部ＳXZR（ｋΔｆ）は、下記（６）式、虚部ＳXZJ（ｋΔｆ）は、下記（７）式のようになる。
【００６４】
【数２】
2010281579.tif 000004
【００６５】
同様に、演算処理部３２０は、Ｙ軸方向の周波数成分とＺ軸方向の周波数成分とを用いてＹＺクロススペクトルを算出する（ステップＳ６０５）。上記（２），（３）式によって求められた周波数成分を利用する場合、Ｙ軸方向の加速度とＺ軸方向の加速度との相関性を表すＹＺクロススペクトル＝ＳYZ（ｋΔｆ）は、下記（８）式のようになる。また、ＳYZ（ｋΔｆ）の複素共役関数Ｆ*Y（ｋΔｆ）は、下記（９）式のようになる。したがって、ＹＺクロススペクトルの実部ＳYZR（ｋΔｆ）は、下記（１０）式、虚部ＳYZJ（ｋΔｆ）は、下記（１１）式のようになる。
【００６６】
【数３】
2010281579.tif 000005
【００６７】
そして、ステップＳ６０３およびＳ６０５によってクロススペクトルが算出されると、つぎに、移動方向と移動形態の判別処理に利用する情報として、各クロススペクトルの最大値における周波数、振幅を算出する。まず、ＸＺクロススペクトルの最大値ＸＺｍａｘにおける周波数、振幅を算出する（ステップＳ６０４）。最大値ＸＺｍａｘとは、ＸＺクロススペクトル＝ＳXZ（ｋΔｆ）が最大の時の振幅ＡXZである。したがって、下記（１２）式によって、ＸＺクロススペクトル＝ＳXZ（ｋΔｆ）が最大の時の振幅ＡXZを求めればよい。
【００６８】
【数４】
2010281579.tif 000006
【００６９】
同様に、ＹＺクロススペクトルの最大値ＹＺｍａｘにおける周波数、振幅を算出する（ステップＳ６０６）。最大値ＹＺｍａｘとは、ＹＺクロススペクトル＝ＳYZ（ｋΔｆ）が最大の時の振幅ＡYZである。したがって、下記（１３）式によって、ＹＺクロススペクトル＝ＳYZ（ｋΔｆ）が最大の時の振幅ＡYZを求めればよい。
【００７０】
【数５】
2010281579.tif 000007
【００７１】
ステップＳ６０３〜Ｓ６０６によってクロススペクトルに関する値が算出されると、つぎに、動作状態率ｋと移動方位の算出処理に移行する（ステップＳ６０７）。動作状態率ｋとは、単位周期における動作状態の割合を表す値であり、歩行者１００が歩行中か否かの判断に利用される。ここで、ステップＳ６０７における動作状態率ｋと移動方位の算出について詳しく説明する。なお、本実施の形態にて述べる移動方位とは、北向き、東向きといった歩行者１００の体が向いている絶対的な方位を表す。
【００７２】
図７は、動作状態率ｋの算出手順を示すフローチャートである。また、図８は、Ｚ軸方向の加速度の波形を用いた動作状態率の算出例を示す説明図である。演算処理部３２０では、移動方向算出処理と平行して、図７および図８に示す手順によって、加速センサ３１１から取得されたＺ軸方向の加速度の検出値を利用して、歩行者１００の動作状態率ｋを算出する。演算処理部３２０では、動作状態率ｋを算出することによって、単位時間の間、歩行者１００が歩行中（走行や忍足を含む）と判断される時間の割合を詳細に特定することができる。
【００７３】
図７のフローチャートのように、演算処理部３２０では、まず、Ｚ軸方向の加速度を表す波形８０１（図８参照）の中から正負のいずれかの上限を超える値を検出する（ステップＳ７０１）。演算処理部３２０では、図８の波形図８００に例示したように、あらかじめ設定した正負の上限（プラス／マイナス）を超える波形を歩行状態に生じる波形、正負の下限（プラス／マイナス）以内に収まる波形を停止状態に生じる波形として、それぞれの波形の割合から歩行者１００の動作状態率ｋを算出する。
【００７４】
そして、ステップＳ７０１によって検出された値を検索点１に設定する（ステップＳ７０２）。さらに、検索点１以前に正負いずれかの下限に満たない値があるか否かを判断する（ステップＳ７０３）。すなわち、ステップＳ７０３では、検索点１以前の波形が歩行状態を表すのか停止状態を表すのかを判断する。
【００７５】
ステップＳ７０３において、検索点１以前に正負のいずれかの下限に満たない値が存在すると判断された場合（ステップＳ７０３：Ｙｅｓ）、検索点１以前は停止状態を表す波形であると判断する。したがって、検索点１以前の正負のいずれかの下限と交差する時刻を歩行開始点に特定する（ステップＳ７０４）。たとえば図８の波形８０１の場合、検索点１の以前は停止状態を表す波形であるため、ｔ１が歩行開始点として特定される。
【００７６】
一方、ステップＳ７０３において、検索点１以前に正負のいずれかの下限に満たない値が存在しないと判断された場合（ステップＳ７０３：Ｎｏ）、検索点１以前も歩行状態を表す波形と判断される。したがって、加速度の蓄積開始時刻を歩行開始点に特定する（ステップＳ７０５）。蓄積開始時刻とは、波形図８００によって表された波形の先頭（左端）部分を指す。
【００７７】
歩行開始点が特定されると、つぎに、蓄積終了時刻以前の波形８０１の中から正負のいずれかの上限を超える値を検出する（ステップＳ７０６）。蓄積終了時刻とは、波形図８００によって表された波形の末尾（右端）部分を指す。すなわち、ステップＳ７０６では、蓄積終了時刻以前に、歩行状態から停止状態への切り替え（もしくは停止状態から歩行状態への切り替え）が発生しているか否かを判断する。
【００７８】
そして、ステップＳ７０６によって検出された値を検索点２に設定する（ステップＳ７０７）。さらに、検索点２以降に正負いずれかの下限に満たない値があるか否かを判断する（ステップＳ７０８）。すなわち、ステップＳ７０８では、検索点２以降の波形が歩行状態を表すのか停止状態を表すのかを判断する。
【００７９】
ステップＳ７０８において、検索点２以降に正負のいずれかの下限に満たない値が存在すると判断された場合（ステップＳ７０８：Ｙｅｓ）、検索点２以降は停止状態を表す波形であると判断する。したがって、検索点２以降の正負のいずれかの下限と交差する時刻を歩行終了点に特定する（ステップＳ７０９）。たとえば図８の波形８０１の場合、検索点２以降は停止状態を表す波形であるため、ｔ２が歩行終了点として特定される。
【００８０】
一方、ステップＳ７０８において、検索点２以降に正負のいずれかの下限に満たない値が存在しないと判断された場合（ステップＳ７０８：Ｎｏ）、検索点２以降も歩行状態を表す波形と判断される。したがって、加速度の蓄積終了時刻を歩行終了点に特定する（ステップＳ７１０）。なお、実際には、蓄積終了時刻以降も歩行状態が継続している可能性はあるが、波形８０１によって表された単位周期における歩行状態はひとまず終了したものとして扱われる。
【００８１】
つぎに、ステップＳ７１０までの処理によって特定された歩行開始点と歩行終了点とを利用して、動作状態率を算出する（ステップＳ７１１）。まず特定された歩行開始点と歩行終了点に対応する時刻を求め、それぞれ、歩行開始時刻、歩行終了時刻とする。つぎに、歩行開始時刻と歩行終了時刻との差分を求めることによって、歩行状態として検出されたのべ時間を特定する。そして、加速度の蓄積時間（単位周期）内の、歩行状態ののべ時間の割合を動作状態率として出力する。すなわち、ステップＳ７１１の算出処理は、「動作状態率＝（歩行終了時刻−歩行開始時刻）／蓄積時間」によって求められる。
【００８２】
さらに、演算処理部３２０では、ステップＳ７１１までの処理によって特定された歩行状態と停止状態との時間の割合を利用して移動方位を算出する（ステップＳ７１２）。具体的には、波形図８００のように歩行状態と特定された時刻に磁気センサ３１２、ジャイロセンサ３１３によって特定された方位の平均を求め、いずれか一方の方位、もしくは両センサ出力を融合した方位を歩行者１００の移動方位とする。
【００８３】
図６のフローチャートに戻り、つぎに、ステップＳ６０７によって算出された動作状態率ｋが０か否かを判断する（ステップＳ６０８）。動作状態率ｋが０とは、すなわち、単位周期の間、停止状態が継続していることを意味する。したがって、動作状態率ｋが０であると判断された場合（ステップＳ６０８：Ｙｅｓ）、演算処理部３２０は、歩行者１００が停止状態という判断結果（ステップＳ６２３）と、移動距離＝０という算出結果（ステップＳ６２４）とを出力して、一連の処理を終了する。
【００８４】
ステップＳ６０８において、動作状態率ｋが０以外の場合（ステップＳ６０８：Ｎｏ）、単位周期において、歩行状態が発生したことを意味する。したがって、つぎに、ステップＳ６０４，Ｓ６０６によって算出したＸＺクロススペクトルもしくはＹＺクロススペクトルの最大値ＸＺｍａｘ，ＹＺｍａｘのいずれかがしきい値以上か否かを判断する（ステップＳ６０９）。
【００８５】
ここで、図９は、歩行状態の検出例を示す波形図である。図９では、一例として、歩行者１００が前後方向に歩行した場合に検出されたＸＺクロススペクトルの最大値の変化を表している。図９のように、通常、歩行者１００が歩行中と停止中とでは、検出値から求められるクロススペクトルの最大値のレベルが大きく異なる。当然のことながら、左右方向に歩行している場合には、ＹＺクロススペクトルの最大値が歩行中か否かによって、図９のような変化を示す。
【００８６】
したがって、演算処理部３２０では、あらかじめ、算出されたクロススペクトルの最大値のレベル差の境をしきい値として設定しておく。そして、歩行者１００が歩行中か否かを判断する際に、クロススペクトルの最大値がしきい値以上となるか否かの判断ステップを追加する。これにより、停止中に歩行者１００が体を揺らした場合に、誤って歩行状態であると検出されるような事態を排除することができる。
【００８７】
上述したように、ＸＺクロススペクトルであれば前後動作と上下動作との相関性、ＹＺクロススペクトルであれば左右動作と上下動作との相関性を表している。すなわち、実際にいずれかの方向に踏み出さなければ、しきい値以上のクロススペクトルは求まらない。
【００８８】
したがって、図６のステップＳ６０９では、最大値ＸＺｍａｘ，ＹＺｍａｘのいずれかがしきい値に満たない場合（ステップＳ６０９：Ｎｏ）、演算処理部３２０は、歩行者１００が停止状態という判断結果（ステップＳ６２３）と、移動距離＝０という算出結果（ステップＳ６２４）とを出力して、一連の移動方向算出処理を終了する。
【００８９】
一方、ステップＳ６０９において、最大値ＸＺｍａｘ，ＹＺｍａｘのいずれかがしきい値以上であると判断された場合には（ステップＳ６０９：Ｙｅｓ）、歩行者１００が移動中であるとする。そして、続いて、歩行者１００の歩行内容に関する判別処理に移行する。まず、歩行者１００が前後方向、左右方向のいずれの方向に移動しているかを判別するため、ＸＺｍａｘがＹＺｍａｘよりも大きいか否かを判断する（ステップＳ６１０）。
【００９０】
図１０は、ＸＺクロススペクトルとＹＺクロススペクトルとの最大値を用いた前後方向判別例を示す波形図である。図１０では、前後方向に移動している歩行者１００から求めたＸＺクロススペクトルとＹＺクロススペクトルとの最大値の変化の一例を表している。
【００９１】
図１１は、ＸＺクロススペクトルとＹＺクロススペクトルとの最大値を用いた左右方向判別例を示す波形図である。図１１では、左右方向に移動している歩行者１００から求めたＸＺクロススペクトルとＹＺクロススペクトルとの最大値の変化の一例を表している。
【００９２】
図１０および図１１から明らかなように、演算処理部３２０では、歩行者１００が実際に移動している方向に関連したクロススペクトルの最大値がより大きくなる。したがって、ステップＳ６１０において、ＸＺｍａｘがＹＺｍａｘよりも大きいと判断された場合（ステップＳ６１０：Ｙｅｓ）、歩行者１００は前後方向に移動しているものとして、以降の判別処理をおこなう。
【００９３】
同様に、ステップＳ６１０において、ＸＺｍａｘがＹＺｍａｘよりも小さいと判断された場合（ステップＳ６１０：Ｎｏ）、歩行者１００は左右方向に移動しているものとして、以降の判別処理をおこなう。なお、ＸＺｍａｘとＹＺｍａｘとが等しい場合には、搭載されている加速度センサ３１１の検出感度に応じて前後方向か左右方向かの判断を下すように設定しておく。
【００９４】
つぎに、移動形態の判別処理について説明する。ステップＳ６１０において、ＸＺｍａｘがＹＺｍａｘよりも大きいと判断され（ステップＳ６１０：Ｙｅｓ）、歩行者１００は前後方向に移動しているものとして判別処理を進めている場合、つぎに、ＸＺｍａｘと、ＸＺｍａｘが検出された際の周波数ＸＺｍａｘｆとを用いて、移動形態を判別する（ステップＳ６１１）。
【００９５】
図１２は、移動形態の判定条件例を示すデータテーブルを示す説明図である。ステップＳ６１１では、あらかじめ移動形態の判定条件が設定されたデータテーブル１２１０を参照して、ＸＺｍａｘと周波数ＸＺｍａｘｆとの値に応じて歩行者１００の移動形態を判別し、判別結果を出力する。
【００９６】
図６のフローチャートに戻り、演算処理部３２０では、さらに、詳細な移動方向を判別するため、ＸＺｍａｘの時の実部と虚部との位相差ＸＺｐｈａを算出する（ステップＳ６１２）。位相差ＸＺｐｈａを算出するには、下記（１４）式を用いてＸＺクロススペクトル＝ＳXZ（ｋΔｆ）が最大となる時の位相差ΘXZを求めればよい。
【００９７】
【数６】
2010281579.tif 000008
【００９８】
つぎに、ステップＳ６１２の算出結果に応じて、歩行者１００が前後のいずれに移動しているかを判別する。歩行者１００が前後のいずれに移動しているかを判別するには、あらかじめ歩行者１００が前方向に移動した場合、後方向に移動した場合にそれぞれ求めたＸＺｍａｘの時の実部と虚部との位相差ＸＺｐｈａを利用する。
【００９９】
図１３は、前進時の位相差例を示す波形図であり、図１４は、後進時の位相差例を示す波形図である。図１３のように、歩行者１００が前進時には、位相差ＸＺｐｈａの値は、９０度〜−９０度の範囲に収まる傾向にある。同様に、歩行者１００が後進時には、１８０度〜９０度もしくは、−９０度から−１８０度の範囲に分散する傾向にある。
【０１００】
したがって、図６のステップＳ６１３において、演算処理部３２０では、図１３および図１４のような位相差ＸＺｐｈａの分布の特徴を生かし、ステップＳ６１２によって算出された位相差ＸＺｐｈａが９０度〜−９０度の範囲に収まるか否かを判断する（ステップＳ６１３）。
【０１０１】
ステップＳ６１３によって位相差ＸＺｐｈａが９０度〜−９０度の範囲に収まると判断された場合（ステップＳ６１３：Ｙｅｓ）、歩行者１００の移動方向の判別結果として「前進」を出力する（ステップＳ６１４）。一方、位相差ＸＺｐｈａが９０度〜−９０度の範囲に収まらないと判断された場合（ステップＳ６１３：Ｎｏ）、歩行者１００の移動方向の判別結果として「後進」を出力する（ステップＳ６１５）。
【０１０２】
同様に、ステップＳ６１０において、ＸＺｍａｘがＹＺｍａｘよりも小さいと判断され（ステップＳ６１０：Ｎｏ）、歩行者１００は左右方向に移動しているものとして判別処理を進めている場合、つぎに、ＹＺｍａｘと、ＹＺｍａｘが検出された際の周波数ＹＺｍａｘｆとを用いて、移動形態を判別する（ステップＳ６１６）。ステップＳ６１６でもステップＳ６１１同様に、あらかじめ移動形態の判定条件が設定されたデータテーブル１２２０（図１２参照）を参照して、ＹＺｍａｘと周波数ＹＺｍａｘｆとの値に応じて歩行者１００の移動形態を判別し、判別結果を出力する。
【０１０３】
その後、演算処理部３２０では、さらに、詳細な移動方向を判別するため、ＹＺｍａｘの時の実部と虚部との位相差ＹＺｐｈａを算出する（ステップＳ６１７）。位相差ＹＺｐｈａを算出するには、下記（１５）式を用いてＹＺクロススペクトル＝ＳYZ（ｋΔｆ）が最大となる時の位相差ΘYZを求めればよい。
【０１０４】
【数７】
2010281579.tif 000009
【０１０５】
つぎに、ステップＳ６１７の算出結果に応じて、歩行者１００が左右のいずれに移動しているかを判断する。歩行者１００が左右のいずれに移動しているかを判別するには、あらかじめ歩行者１００が右方向に移動した場合、左方向に移動した場合にそれぞれ求めたＹＺｍａｘの時の実部と虚部との位相差ＹＺｐｈａを利用する。
【０１０６】
図１５は、右歩行時の位相差例を示す波形図であり、図１６は、左歩行時の位相差例を示す波形図である。図１５のように、歩行者１００が右歩行時には、位相差ＹＺｐｈａの値は、９０度〜−９０度の範囲に収まる傾向にある。同様に、歩行者１００が左歩行時には、１８０度〜９０度もしくは、−９０度から−１８０度の範囲に分散する傾向にある。
【０１０７】
したがって、図６のステップＳ６１８において、演算処理部３２０では、図１５および図１６のような位相差ＹＺｐｈａの分布の特徴と生かし、ステップＳ６１７によって算出された位相差ＹＺｐｈａが９０度〜−９０度の範囲に収まるか否かを判断する（ステップＳ６１８）。
【０１０８】
ステップＳ６１８によって位相差ＹＺｐｈａが９０度〜−９０度の範囲に収まると判断された場合（ステップＳ６１８：Ｙｅｓ）、歩行者１００の移動方向の判別結果として「右移動」を出力する（ステップＳ６１９）。一方、位相差ＹＺｐｈａが９０度〜−９０度の範囲に収まらないと判断された場合（ステップＳ６１８：Ｎｏ）、歩行者１００の移動方向の判別結果として「左移動」を出力する（ステップＳ６２０）。
【０１０９】
以上の処理によって、歩行者１００の移動方向ならびに移動形態が判別されると、演算処理部３２０は、つぎに、移動方位の算出処理に移行する（ステップＳ６２１）。ここで述べる移動方位とは、移動した東西南北といった方位を表す。
【０１１０】
演算処理部３２０では、移動方位を算出するために、ステップＳ６０７において算出した体の向きに対する移動方位と移動方向を利用する。移動方位は体の向きに対する移動方位と移動方向を加算することで算出することができる。北を０度とした角度で、北方向に前進した場合の移動方位は、０度（体の向きが北方位）＋０度（前進）で０度（北方位への移動）となり、また、東方向に右移動した場合の移動方位は、９０度（体の向きが東方位）＋９０度（右移動）で１８０度（南方位への移動）となる。
【０１１１】
以上の処理によって、歩行者１００の移動方位ならびに移動形態が判別されると、演算処理部３２０は、つぎに、移動距離の算出処理に移行する（ステップＳ６２２）。演算処理部３２０では、移動距離を算出するために、移動方向と移動形態ごとに用意した近似式Ｌを利用する。近似式はＬ＝（クロススペクトルの最大値／動作状態率ｋ×移動距離係数ａ＋移動距離係数ｂ）×動作状態率ｋと一般化することができる。したがって、歩行者１００が前進中と判別された場合には、下記（１６）式によって表される。
【０１１２】
【数８】
2010281579.tif 000010
【０１１３】
また、移動距離係数ａ，ｂは、あらかじめ用意された係数群から適宜選択される。移動方向算出装置１１０には、図３にて説明したように、記憶部３３０内に移動距離係数３３２を記憶した領域が用意されている。移動距離係数３３２は、演算処理部３２０から即座に読み出しが可能な形式な情報として記憶されている。具体的には、たとえば、下記の図１７のように、データテーブルの形式で記憶されている。
【０１１４】
図１７は、移動距離係数の設定例を示すデータテーブルを示す説明図である。データテーブル１７００のように設定された係数群の中から歩行者１００の移動方向ならびに移動形態に応じた係数を選択して近似式Ｌに代入すればよい。たとえば、歩行者１００が忍足で左移動している場合、近似式Ｌ＝（ＹＺｍａｘ／ｋ×係数Ｏ＋係数Ｐ）×ｋを利用して移動距離を算出する。
【０１１５】
なお、データテーブル１７００に例示した係数群は、あらかじめ歩行者１００の移動方向と移動形態に応じて検出したクロススペクトルの最大値と歩幅の測定結果から求めることができる。
【０１１６】
図１８は、移動距離近似式の設定例を示すグラフである。図１８のように、前進時の測定結果としてプロット「×」が与えられている場合、これらのプロット「×」に近似する線形を求める。そして、図１８のグラフ内の線形を表す一次式の移動距離係数ａ，ｂをデータテーブル１７００に設定すればよい。
【０１１７】
以上説明したように、図６のステップＳ６２２において、演算処理部３２０は、単位周期ごとに最適な近似式を設定して移動距離を算出することにより、一連の移動方向算出処理を終了する。
【０１１８】
図１９は、算出結果の出力例を示すデータテーブルを示す説明図である。移動方向算出装置１１０は、図６のフローチャートに示した一連の処理を実行することによって各種算出結果が出力される。具体的には、データテーブル１９００のように、単位周期ごとの移動方向、移動形態、移動距離（相対移動距離）および移動方位がそれぞれ対応付けられて出力される。
【０１１９】
なお、移動方向算出装置１１０によって算出された各情報は、データテーブル１９００の形式で表示部３４０に表示させることによって歩行者１００自身に報知することができる。さらに、移動方向算出装置１１０は、データテーブル１９００の各情報を、通信部３５０を介して、外部のセンタに送信することもできる。
【０１２０】
図２０は、センタへの情報提供例を示す説明図である。通信部３５０を介してデータテーブル１９００の各情報を受信したセンタでは、表示部３４０（センタに接続されたディスプレイなど）によって歩行者１００の移動内容を視覚的に分かり易いルート図２０００として提供することもできる。
【０１２１】
このように、移動方向算出装置１１０を歩行者１００に装着させることによって、移動方向算出装置１１０の管理者は、逐次、歩行者１００の歩行内容を特定することができるため、様々な用途に適用させることができる。たとえば、災害時や各種訓練時など特殊な空間においても、移動方向算出装置１１０を対象者に装着させることによって、各人の移動状況を正確に把握することができる。
【０１２２】
また、歩行者１００自身の視界が悪い場合には、センタによって作成されたルート図２０００を移動方向算出装置１１０へ提供することによって、歩行者１００自身の位置把握や、ルート確保を支援することができる。
【０１２３】
以上説明したように、本実施の形態にかかる移動方向算出装置１１０（または移動方向算出装置１１０を実現する移動方向算出プログラム）によれば、Ｚ軸方向の波形の振幅から歩行者１００が移動中か否かを判断する。歩行者１００が移動中であると判断された場合、歩行者１００の前後動作と上下動作との相関性を表すＸＺクロススペクトルと、歩行者１００の左右動作と上下動作との相関性を表すＹＺクロススペクトルをそれぞれ算出して、これらの算出値を比較する。そして、最も相関性が高い値に基づいて、歩行者１００が前後左右のいずれの方向に移動しているかを特定することができる。したがって、移動方向算出装置１１０では、歩行者の動作が微少であっても、誤検出することなく正確な移動方向を算出することができる。
【０１２４】
また、Ｚ軸方向の加速度の波形の振幅が所定値以上となる時間と、所定値未満となる時間とを求める。そして、波形の振幅が所定値以上となる時間の割合から移動状態率ｋを算出する。したがって、移動方向算出装置１１０は、Ｚ軸方向の波形の振幅から、単位周期において、歩行者１００が移動中となる時間を詳細に把握することができる。
【０１２５】
また、移動方向算出装置１１０では、ＸＺクロススペクトルもしくはＹＺクロススペクトルの最大値がしきい値に満たない場合に、動作状態率ｋにかかわらず歩行者１００が移動中ではないと判断する。したがって、移動方向算出装置１１０は、移動方向への移動と上下動作との連動性が高くならなければ動作状態率ｋの値にかかわらず、停止中と判断するため、誤検出を防ぐことができる。
【０１２６】
また、ＸＺクロススペクトルの最大値とＸＺクロススペクトルの最大値との比較結果を利用して歩行者１００が前後方向に移動しているか、左右方向に移動しているかを判別する。したがって、移動方向算出装置１１０は、容易な比較処理のみで、歩行者１００の移動方向を大別することができる。
【０１２７】
また、クロススペクトルの最大値の比較によって歩行者１００が前後方向に移動していると判別された場合、さらに、ＸＺクロススペクトルの最大値を利用して、前後のいずれかに移動しているかを判別する、具体的には、ＸＺクロススペクトルの最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、歩行者１００が前方向と後方向のいずれに移動しているかを判別する。したがって、加速度センサ３１１からの検出値から、歩行者１００の移動方向を詳細に特定することができる。
【０１２８】
また、クロススペクトルの最大値の比較によって歩行者１００が左右方向に移動していると判別された場合、さらに、ＹＺクロススペクトルの最大値を利用して、左右のいずれかに移動しているかを判別する、具体的には、ＹＺクロススペクトルの最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、歩行者１００が右方向と左方向のいずれに移動しているかを判別する。したがって、移動方向算出装置１１０は、加速度センサ３１１からの検出値から、歩行者１００の移動方向を詳細に特定することができる。
【０１２９】
また、移動方向の判別結果と、クロススペクトルの最大値とを利用して、さらに、歩行者１００の移動形態を判別することができる。具体的には、歩行者が前後方向に移動していると判別された場合には、ＸＺクロススペクトルの最大値と、当該最大値の実部と虚部とから算出される位相差の値とに応じて、歩行、走行および忍足のいずれで移動したかを判別することができる。
【０１３０】
一方、歩行者が左右方向に移動していると判別された場合には、ＹＺクロススペクトルの最大値と、当該最大値の実部と虚部とから算出される位相差の値とに応じて、歩行、走行および忍足のいずれで移動したかを判別する。したがって、移動方向算出装置１１０は、センサ部３１０からあらたな検出値を取得することもなく、すでに算出したクロススペクトルに関する値と、移動方向の判別結果とによって、歩行者１００の移動形態を特定することができる。
【０１３１】
また、歩行者１００の移動方向、移動形態から近似式を選択して、単位周期ごとの移動距離を算出する。近似式の係数は、移動方向、移動形態ごとに適した値を設定する。したがって、移動方向算出装置１１０は、歩行者１００の移動方向や移動形態によって生じる移動距離の誤差を防ぎ、正確な移動距離を算出することができる。
【０１３２】
また、特定された移動方向や移動形態ならびに移動距離を外部の機器へ送信することができる。したがって、移動方向算出装置１１０は、歩行者１００の移動内容を移動方向算出装置１１０から離れた他者に把握させることもできる。
【０１３３】
なお、本実施の形態で説明した移動方向算出処理は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本移動方向算出プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本移動方向算出プログラムは、インターネットなどのネットワークを介して配布してもよい。
【０１３４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３５】
（付記１）歩行者の前後方向となる第一の方向と、左右方向となる第二の方向と、上下方向となる第三の方向との加速度を検出する加速度センサの検出値を取得する取得手段と、
前記取得手段によって取得された３方向の加速度を用いて、各方向間の加速度の相関を算出する算出手段と、
前記取得手段によって取得された前記第三の方向の加速度の波形の振幅に応じて任意の周期ごとに前記歩行者が移動中か否かを判断する判断手段と、
前記判断手段によって、前記歩行者が移動中であると判断された場合、前記算出手段によって算出された前記第一の方向と前記第三の方向との相関の前記任意の周期における最大値と、前記第二の方向と前記第三の方向との相関の前記任意の周期における最大値との比較結果に応じて、前記歩行者の移動方向を判別する移動方向判別手段と、
前記移動方向判別手段による判別結果を出力する出力手段と、
を備えることを特徴とする移動方向算出装置。
【０１３６】
（付記２）前記判断手段は、
前記第三の方向の加速度波形の振幅の形状にかかわらず、前記算出手段によって算出された前記第一の方向と前記第三の方向との相関の最大値もしくは前記第二の方向と前記第三の方向との相関の最大値がしきい値に満たない場合に、前記歩行者が移動中ではないと判断することを特徴とする付記１に記載の移動方向算出装置。
【０１３７】
（付記３）前記判断手段は、
前記加速度の波形の振幅が所定値以上となる時間と、前記所定値未満となる時間とを求め、前記任意の周期において、前記振幅が所定値以上となる時間の割合に応じて、前記歩行者が移動中か否かを判断する付記１または２に記載の移動方向算出装置。
【０１３８】
（付記４）前記移動方向判別手段は、
前記任意の周期における前記第一の方向と前記第三の方向との相関の最大値と、前記第二の方向と前記第三の方向との相関の最大値を比較して、該第一の方向と該第三の方向との相関の最大値が大きかった場合には前記歩行者は前後方向に移動していると判別し、該第二の方向と該第三の方向との相関の最大値が大きかった場合には前記歩行者は左右方向に移動していると判別することを特徴とする付記１〜３のいずれか一つに記載の移動方向算出装置。
【０１３９】
（付記５）前記移動方向判別手段は、
前記歩行者が前後方向に移動していると判別された場合、さらに、前記第一の方向と前記第三の方向との相関の最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、前記歩行者が前方向と後方向のいずれに移動しているかを判別することを特徴とする付記１〜４のいずれか一つに記載の移動方向算出装置。
【０１４０】
（付記６）前記移動方向判別手段は、
前記歩行者が左右方向に移動していると判別された場合、さらに、前記第二の方向と前記第三の方向との相関の最大値の実部と虚部とから算出される位相差が所定の範囲に収まるか否かに応じて、前記歩行者が右方向と左方向とのいずれに移動しているかを判別することを特徴とする付記１〜４のいずれか一つに記載の移動方向算出装置。
【０１４１】
（付記７）前記移動方向判別手段によって、前記歩行者が前後方向に移動していると判別された場合に、前記第一の方向と前記第三の方向との相関の最大値と、当該最大値の実部と虚部とから算出される位相差の値とに応じて、歩行、走行および忍足のいずれで移動したかを判別し、前記歩行者が左右方向に移動していると判別された場合に、前記第二の方向と前記第三の方向との相関の最大値と、当該最大値の実部と虚部とから算出される位相差の値とに応じて、歩行、走行および忍足のいずれで移動したかを判別する移動形態判別手段を備え、
前記出力手段は、前記移動形態判別手段による判別結果を出力することを特徴とする付記１〜６のいずれか一つに記載の移動方向算出装置。
【０１４２】
（付記８）前記歩行者の移動方向ならびに移動形態ごとに移動時間に応じた移動距離を表す近似式を用意し、前記任意の周期ごとに前記移動方向判別手段と前記移動形態判別手段によって判別された移動方向ならびに移動形態に対応した近似式を選択して前記歩行者の移動距離を算出する移動距離算出手段を備え、
前記出力手段は、前記移動距離算出手段による算出結果を出力することを特徴とする付記７に記載の移動方向算出装置。
【０１４３】
（付記９）前記歩行者が装着した磁気センサまたはジャイロセンサの検出値と前記移動方向判別手段による判別結果とを用いて前記歩行者の移動方位を算出する移動方位算出手段を備えることを特徴とする付記１〜８のいずれか一つに記載の移動方向算出装置。
【０１４４】
（付記１０）前記出力手段によって出力された情報を外部の機器へ送信する送信手段を備えることを特徴とする付記１〜９のいずれか一つに記載の移動方向算出装置。
【０１４５】
（付記１１）コンピュータを、
歩行者の前後方向となる第一の方向と、左右方向となる第二の方向と、上下方向となる第三の方向との３軸方向の加速度を検出する加速度センサの検出値を取得する取得手段、
前記取得手段によって取得された３方向の加速度を用いて、各方向間の加速度の相関を算出する算出手段、
前記取得手段によって取得された前記第三の方向の加速度の波形の振幅に応じて任意の周期ごとに前記歩行者が移動中か否かを判断する判断手段、
前記判断手段によって、前記歩行者が移動中であると判断された場合、前記算出手段によって算出された前記第一の方向と前記第三の方向との相関の前記任意の周期における最大値と、前記第二の方向と前記第三の方向との相関の前記任意の周期における最大値との比較結果に応じて、前記歩行者の移動方向を判別する移動方向判別手段、
前記移動方向判別手段による判別結果を出力する出力手段、
として機能させることを特徴とする移動方向算出プログラム。
【符号の説明】
【０１４６】
１００  歩行者
１１０  移動方向算出装置
１１１  取得部
１１２  算出部
１１３  判断部
１１４  判別部
１１５  移動距離算出部
１１６  出力部
３１０  センサ部
３１１  加速度センサ
３１２  磁気センサ
３１３  ジャイロセンサ
３２０  演算処理部
３３０  記憶部
３３１  演算アルゴリズム
３３２  移動距離係数
３４０  表示部
３５０  通信部
【図１】
2010281579.tif 000011
【図２】
2010281579.tif 000012
【図３】
2010281579.tif 000013
【図４】
2010281579.tif 000014
【図５】
2010281579.tif 000015
【図６】
2010281579.tif 000016
【図７】
2010281579.tif 000017
【図８】
2010281579.tif 000018
【図９】
2010281579.tif 000019
【図１０】
2010281579.tif 000020
【図１１】
2010281579.tif 000021
【図１２】
2010281579.tif 000022
【図１３】
2010281579.tif 000023
【図１４】
2010281579.tif 000024
【図１５】
2010281579.tif 000025
【図１６】
2010281579.tif 000026
【図１７】
2010281579.tif 000027
【図１８】
2010281579.tif 000028
【図１９】
2010281579.tif 000029
【図２０】
2010281579.tif 000030