移動体に取り付けられる端末装置と、前記端末装置からデータを取得するサーバ装置と、を含む移動経路推定システムであって、前記端末装置は、角速度センサと、加速度センサと、を有し、前記サーバ装置は、プロセッサと、前記プロセッサに接続される記憶装置と、を有し、前記記憶装置は、前記角速度センサによって計測された角速度データ及び前記加速度センサによって計測された加速度データを保持し、前記プロセッサは、前記角速度データを平滑化し、前記加速度データに基づいて、平滑化された前記角速度データを慣性座標系における角速度データに変換し、所定の長さの時間帯における前記慣性座標系におけるYaw軸周りの角速度のばらつきの大きさが所定の閾値以下であり、かつ、前記時間帯における前記Yaw軸周りの角速度の大きさが所定の閾値以下である場合、前記Yaw軸周りの角速度の大きさを前記Yaw軸周りの角速度のオフセット値と推定し、前記Yaw軸周りの角速度から推定された前記オフセット値を減算することによって前記Yaw軸周りの角速度を補正し、補正された前記角速度及び前記加速度データに基づいて、前記移動体の水平方向の移動経路を推定し、推定された前記移動経路を示す情報を前記記憶装置に保持することを特徴とする移動経路推定システム。前記移動体は歩行者であり、前記プロセッサは、人間の歩行に特有の周波数成分を除去することによって、前記角速度データを平滑化することを特徴とする請求項1に記載の移動経路推定システム。前記プロセッサは、カットオフ周波数が1.6ヘルツ以下の低域通過フィルタによって、前記角速度データから人間の歩行に特有の周波数成分を除去することを特徴とする請求項2に記載の移動経路推定システム。前記プロセッサは、前記Yaw軸周りの角速度のばらつきの大きさが所定の閾値を超えると判定されたか、又は、前記Yaw軸周りの角速度の大きさが所定の閾値を超えると判定された第1時間帯における前記Yaw軸周りの角速度のオフセット値を、前記第1時間帯に隣接し、かつ、前記第1時間帯より早い第2時間帯における前記推定されたオフセット値、及び、前記第1時間帯に隣接し、かつ、前記第1時間帯より遅い第3時間帯における前記推定されたオフセット値、の少なくとも一方に基づいて推定することを特徴とする請求項1に記載の移動経路推定システム。前記プロセッサは、前記第2時間帯における前記推定されたオフセット値から、前記第3時間帯における前記推定されたオフセット値までの範囲のいずれかの値となるように、前記第1時間帯における前記Yaw軸周りの角速度のオフセット値を推定することを特徴とする請求項4に記載の移動経路推定システム。前記プロセッサは、前記加速度データに基づいて、前記第2時間帯及び前記第3時間帯のそれぞれにおいて、前記移動体が移動していたか否かを判定し、前記第2時間帯及び前記第3時間帯のいずれか一方において前記移動体が静止しており、もう一方において前記移動体が移動していたと判定された場合、前記第1時間帯のうち、その中心より前記移動体が移動していた時間帯に近い時刻から前記移動体が静止していた時間帯までの範囲におけるオフセット値が、前記移動体が移動していた時間帯における前記推定されたオフセット値より、前記移動体が静止していた時間帯における前記推定されたオフセット値に近くなるように、前記第1時間帯における前記Yaw軸周りの角速度のオフセット値を推定することを特徴とする請求項4に記載の移動経路推定システム。前記記憶装置は、前記移動体の複数の種類のそれぞれに特有の周波数成分を除去するためのフィルタのパラメータを保持し、前記プロセッサは、前記端末装置が取り付けられた移動体の種類に対応するパラメータが適用されたフィルタを用いて、前記角速度データを平滑化することを特徴とする請求項1に記載の移動経路推定システム。プロセッサと、前記プロセッサに接続される記憶装置と、を有する移動経路推定装置であって、前記記憶装置は、移動体に取り付けられた角速度センサによって計測された角速度データ及び前記移動体に取り付けられた加速度センサによって計測された加速度データを保持し、前記プロセッサは、前記角速度データを平滑化し、前記加速度データに基づいて、平滑化された前記角速度データを慣性座標系における角速度データに変換し、所定の長さの時間帯における前記慣性座標系におけるYaw軸周りの角速度のばらつきの大きさが所定の閾値以下であり、かつ、前記時間帯における前記Yaw軸周りの角速度の大きさが所定の閾値以下である場合、前記Yaw軸周りの角速度の大きさを前記Yaw軸周りの角速度のオフセット値と推定し、前記Yaw軸周りの角速度から推定された前記オフセット値を減算することによって前記Yaw軸周りの角速度を補正し、補正された前記角速度及び前記加速度データに基づいて、前記移動体の水平方向の移動経路を推定し、推定された前記移動経路を示す情報を前記記憶装置に保持することを特徴とする移動経路推定装置。前記移動体は歩行者であり、前記プロセッサは、人間の歩行に特有の周波数成分を除去することによって、前記角速度データを平滑化することを特徴とする請求項8に記載の移動経路推定装置。前記プロセッサは、前記Yaw軸周りの角速度のばらつきの大きさが所定の閾値を超えると判定されたか、又は、前記Yaw軸周りの角速度の大きさが所定の閾値を超えると判定された第1時間帯における前記Yaw軸周りの角速度のオフセット値を、前記第1時間帯に隣接し、かつ、前記第1時間帯より早い第2時間帯における前記推定されたオフセット値、及び、前記第1時間帯に隣接し、かつ、前記第1時間帯より遅い第3時間帯における前記推定されたオフセット値、の少なくとも一方に基づいて推定することを特徴とする請求項8に記載の移動経路推定装置。前記プロセッサは、前記加速度データに基づいて、前記第2時間帯及び前記第3時間帯のそれぞれにおいて、前記移動体が移動していたか否かを判定し、前記第2時間帯及び前記第3時間帯のいずれか一方において前記移動体が静止しており、もう一方において前記移動体が移動していたと判定された場合、前記第1時間帯のうち、その中心より前記移動体が移動していた時間帯に近い時刻から前記移動体が静止していた時間帯までの範囲におけるオフセット値が、前記移動体が移動していた時間帯における前記推定されたオフセット値より、前記移動体が静止していた時間帯における前記推定されたオフセット値に近くなるように、前記第1時間帯における前記Yaw軸周りの角速度のオフセット値を推定することを特徴とする請求項10に記載の移動経路推定装置。プロセッサと、前記プロセッサに接続される記憶装置と、を有する移動経路推定装置によって実行される移動経路推定方法であって、前記記憶装置は、移動体に取り付けられた角速度センサによって計測された角速度データ及び前記移動体に取り付けられた加速度センサによって計測された加速度データを保持し、前記移動経路推定方法は、前記角速度データを平滑化する第1手順と、前記加速度データに基づいて、平滑化された前記角速度データを慣性座標系における角速度データに変換する第2手順と、所定の長さの時間帯における前記慣性座標系におけるYaw軸周りの角速度のばらつきの大きさが所定の閾値以下であり、かつ、前記時間帯における前記Yaw軸周りの角速度の大きさが所定の閾値以下である場合、前記Yaw軸周りの角速度の大きさを前記Yaw軸周りの角速度のオフセット値と推定する第3手順と、前記Yaw軸周りの角速度から推定された前記オフセット値を減算することによって前記Yaw軸周りの角速度を補正する第4手順と、補正された前記角速度及び前記加速度データに基づいて、前記移動体の水平方向の移動経路を推定し、推定された前記移動経路を示す情報を前記記憶装置に保持する第5手順と、を含むことを特徴とする移動経路推定方法。前記移動体は歩行者であり、前記第1手順は、人間の歩行に特有の周波数成分を除去することによって、前記角速度データを平滑化する手順を含むことを特徴とする請求項12に記載の移動経路推定方法。前記第3手順は、前記Yaw軸周りの角速度のばらつきの大きさが所定の閾値を超えると判定されたか、又は、前記Yaw軸周りの角速度の大きさが所定の閾値を超えると判定された第1時間帯における前記Yaw軸周りの角速度のオフセット値を、前記第1時間帯に隣接し、かつ、前記第1時間帯より早い第2時間帯における前記推定されたオフセット値、及び、前記第1時間帯に隣接し、かつ、前記第1時間帯より遅い第3時間帯における前記推定されたオフセット値、の少なくとも一方に基づいて推定する手順を含むことを特徴とする請求項12に記載の移動経路推定方法。前記第3手順は、前記加速度データに基づいて、前記第2時間帯及び前記第3時間帯のそれぞれにおいて、前記移動体が移動していたか否かを判定し、前記第2時間帯及び前記第3時間帯のいずれか一方において前記移動体が静止しており、もう一方において前記移動体が移動していたと判定された場合、前記第1時間帯のうち、その中心より前記移動体が移動していた時間帯に近い時刻から前記移動体が静止していた時間帯までの範囲におけるオフセット値が、前記移動体が移動していた時間帯における前記推定されたオフセット値より、前記移動体が静止していた時間帯における前記推定されたオフセット値に近くなるように、前記第1時間帯における前記Yaw軸周りの角速度のオフセット値を推定する手順を含むことを特徴とする請求項14に記載の移動経路推定方法。歩行経路推定のために歩行者にジャイロセンサを装着した場合、歩行者が回転する動作をしていないときにジャイロセンサから出力された値がオフセットであると推定することができる。歩行者が回転する動作をしていない状態には、歩行者が静止している状態のほか、歩行者が直進歩行している状態も含まれる。しかし、直進歩行中は、歩行によって大きく振動する角速度が出力されるため、その値からオフセットを推定することはできなかった。本発明は上記の問題点に鑑みてなされたものであり、歩行者に装着されたジャイロセンサの出力からオフセットを推定し、これを補正することによって、ジャイロセンサを用いた歩行経路推定の精度を改善することを目的とする。本発明は、移動体に取り付けられる端末装置と、前記端末装置からデータを取得するサーバ装置と、を含む移動経路推定システムであって、前記端末装置は、角速度センサと、加速度センサと、を有し、前記サーバ装置は、プロセッサと、前記プロセッサに接続される記憶装置と、を有し、前記記憶装置は、前記角速度センサによって計測された角速度データ及び前記加速度センサによって計測された加速度データを保持し、前記プロセッサは、前記角速度データを平滑化し、前記加速度データに基づいて、平滑化された前記角速度データを慣性座標系における角速度データに変換し、所定の長さの時間帯における前記慣性座標系におけるYaw軸周りの角速度のばらつきの大きさが所定の閾値以下であり、かつ、前記時間帯における前記Yaw軸周りの角速度の大きさが所定の閾値以下である場合、前記Yaw軸周りの角速度の大きさを前記Yaw軸周りの角速度のオフセット値と推定し、前記Yaw軸周りの角速度から推定された前記オフセット値を減算することによって前記Yaw軸周りの角速度を補正し、補正された前記角速度及び前記加速度データに基づいて、前記移動体の水平方向の移動経路を推定し、推定された前記移動経路を示す情報を前記記憶装置に保持することを特徴とする。本発明の一実施形態によれば、ジャイロセンサを用いて精度のよい歩行経路推定を実現することができる。以下、図面を用いて本発明の実施の形態を説明する。図1は、本発明の実施形態の歩行経路推定システムの構成を示すブロック図である。図2は、本発明の実施形態の歩行経路推定システムを構成する各部のハードウェア構成を示すブロック図である。本実施形態の歩行経路推定システムは、端末装置101、サーバ装置103及びそれらを接続するネットワーク102からなる。端末装置101は、歩行者が携帯する端末であり、例えば、CPUCentralProcessingUnit206、並びに、それに接続されたジャイロセンサ201、加速度センサ202、方位センサ203、温度センサ204、GPS205、メモリ207、記憶媒体208、通信部209及び入出力部210を備える。ジャイロセンサ201は、端末装置101の角速度を計測する。具体的には、ジャイロセンサ201は、端末装置101の向きを基準とするX軸、Y軸、Z軸それぞれの軸まわりの角速度を計測する。加速度センサ202は、端末装置101の加速度を計測する。具体的には、加速度センサ202は、端末装置101の向きを基準とするX軸、Y軸、Z軸それぞれの軸方向の加速度を計測する。方位センサ203は、地磁気を検出し、それに基づいて絶対方位を計測する。温度センサ204は、端末装置101の内部又は周囲の温度を計測する。ジャイロセンサ201のオフセット量の温度依存性が明らかである場合には、温度センサ204によって計測された温度を用いて、ジャイロセンサ201が計測した角速度を補正してもよい。GPS205は、GPS衛星からの信号を受信し、それに基づいて端末装置101の絶対位置を計測する。例えば、端末装置101は、GPS205及び方位センサ203を使用できる環境ではそれらを使用し、それらを使用できない環境例えば屋内ではジャイロセンサ201及び加速度センサ202を使用して、歩行経路推定のために必要なデータを収集してもよい。後述するように、本発明はジャイロセンサ201及び加速度センサ202を使用した歩行経路推定に関する。このため、本実施形態の端末装置101は、ジャイロセンサ201及び加速度センサ202を備える必要があるが、方位センサ203、温度センサ204及びGPS205は必ずしも備えなくてよい。CPU206は、メモリ207に格納されたプログラムに従って、端末装置101を制御する。メモリ207は、例えば半導体メモリであり、CPU206によって実行されるプログラム、CPU206によって参照されるデータ、及び、CPU206が実行する処理の結果として取得されたデータ等を格納する。記憶媒体208に格納されたプログラム及びデータの少なくとも一部が、必要に応じてメモリ207にコピーされてもよいし、取得されたデータが必要に応じてメモリ207から記憶媒体208にコピーされてもよい。記憶媒体208は、例えばフラッシュメモリのような不揮発性の記憶媒体である。通信部209は、ネットワーク102に接続され、サーバ装置103と通信するインターフェースである。入出力部210は、端末装置101を装着した歩行者からの入力を受ける入力装置、及び、その歩行者に情報を出力する出力装置を含む。例えば、入出力部210は、入力装置としてキーボード、ボタン又はポインティングデバイス等を備え、出力装置として画像表示装置等を備えてもよいし、それらと同等の機能を有するいわゆるタッチパネル等を備えてもよい。例えば、歩行者がこれから歩行経路推定を行おうとする対象領域例えば特定の建物に入るときに、データ取得の開始の指示を入出力部210に入力し、その対象領域から出るときに、データ取得の終了の指示を入出力部210に入力してもよい。CPU206は、データ取得の開始を指示されてから、終了を指示されるまでの間、ジャイロセンサ201及び加速度センサ202を制御して、例えば定期的に角速度及び加速度を計測し、その結果をメモリ207に格納する。その間に歩行者が対象領域内を歩き回ると、その歩行に起因する角速度及び加速度が計測され、記録される。サーバ装置103は、CPU212、並びに、それに接続された通信部211、メモリ213、記憶媒体214及び入出力部215を備える計算機である。CPU212は、メモリ213に格納されたプログラムに従って、例えば後述する歩行経路推定処理を実行する。メモリ213は、例えば半導体メモリであり、CPU212によって実行されるプログラム、CPU212によって参照されるデータ、及び、CPU212が実行する処理の結果として取得されたデータ等を格納する。記憶媒体214に格納されたプログラム及びデータの少なくとも一部が、必要に応じてメモリ213にコピーされてもよいし、取得されたデータが必要に応じてメモリ213から記憶媒体214にコピーされてもよい。記憶媒体214は、例えばハードディスク又はフラッシュメモリのような不揮発性の記憶媒体である。通信部211は、ネットワーク102に接続され、端末装置101と通信するインターフェースである。入出力部215は、サーバ装置103のユーザからの入力を受ける入力装置、及び、ユーザに情報を出力する出力装置を含む。例えば、入出力部215は、入力装置としてキーボード、ボタン又はポインティングデバイス等を備え、出力装置として画像表示装置等を備えてもよいし、それらと同等の機能を有するいわゆるタッチパネル等を備えてもよい。ネットワーク102は、それを介して端末装置101からサーバ装置103にデータを伝送できるものである限り、どのようなものであってもよい。例えば、ネットワーク102は、LANであってもよいし、広域ネットワークであってもよいし、それらの組み合わせであってもよい。あるいは、ネットワーク102がUSBUniversalSerialBusのようなデータ伝送路であってもよいなお、図1及び図2には、歩行経路推定システムの典型的な例として、端末装置101及びサーバ装置103がネットワーク102を介してデータを通信する構成を示したが、ネットワークを介したデータ通信の代わりに、記憶媒体を用いてデータをやり取りすることもできる。例えば、ジャイロセンサ201等によって計測されたデータを、端末装置101に接続されたメモリカードのような架け替え可能な記憶媒体に書き込み、その記憶媒体をサーバ装置103の設置場所まで運搬してサーバ装置103に接続し、書き込まれたデータを記憶媒体214又はメモリ213にコピーしてもよい。あるいは、サーバ装置103の代わりに、端末装置101自身が後述する歩行経路推定を行ってもよい。その場合、ネットワーク102及びサーバ装置103は不要である。図3は、本発明の実施形態のサーバ装置103が実行する歩行経路推定処理を示すフローチャートである。既に説明したように、端末装置101は、ジャイロセンサ201及び加速度センサ202によって計測された角速度データ及び加速度データをメモリ207又は記憶媒体208に格納し、それをネットワーク102を介してサーバ装置103に送信する。例えば、複数のフロアを有する建物全体が歩行経路推定の対象領域である場合、端末装置101を装着した歩行者がその建物に入り、各フロアを順次歩き回る。その間に取得された角速度データ及び加速度データが記憶媒体208等に格納される。歩行者が全フロアを歩き回った後、端末装置101は、記憶媒体208等に格納されたデータをサーバ装置103に送信する。サーバ装置103は、端末装置101から受信した角速度データ及び加速度データを記憶媒体214等に格納して、図3に示す歩行経路推定処理を実行する。最初に、サーバ装置103は、角速度データを参照して、ジャイロセンサ201のオフセット補正を行うステップ301。この処理の詳細については、図4等を参照して後述する。次に、サーバ装置103は、加速度データに基づいて水平方向の移動量を推定するステップ302。この推定は、従来から知られている方法によって行うことができる。例えば、サーバ装置103は、三次元の加速度データから水平方向成分すなわち鉛直方向に直行する成分を抽出し、それを積分することによって水平方向の移動量を推定してもよいし、加速度データに基づいて歩行者が歩行しているか否かを判定し、歩行している場合には、歩数に推定される歩幅を乗じることによって移動量を推定してもよい。なお、上記のように、複数のフロアを含む建物全体における加速度データ等が取得された場合には、サーバ装置103は、そのデータをフロアごとに分割し、フロアごとに水平方向の移動量を推定する。歩行者がフロア間を移動したことは、例えば階段を昇降したときに特有の加速度データのパターン、又は、エレベータを利用したときに特有の加速度データのパターンに基づいて判断できる。あるいは、歩行者が階段等を利用してフロア間を移動するときに、フロアの区切りを端末装置101に手動で入力してもよい。次に、サーバ装置103は、ステップ301において補正された角速度データ及びステップ302において推定された移動量に基づいて、歩行者の移動軌跡を生成しステップ303、さらに、生成された移動軌跡を補正するステップ304。これらの処理の詳細については後述する図12及び図13参照。生成され、補正された移動軌跡を示すデータは、メモリ213又は記憶媒体214に格納され、さらに、例えば移動軌跡を示す画面が入出力部215によって表示されてもよい。以上で歩行経路推定処理が終了する。図4は、本発明の実施形態のサーバ装置103が実行するジャイロセンサ201のオフセット補正処理を示すフローチャートである。この処理は、図3に示す歩行経路推定処理のステップ301において実行される。最初に、サーバ装置103は、角速度データを平滑化するステップ401。ジャイロセンサ201によって計測された角速度データは、歩行に起因する振動の成分を含んでいるため、サーバ装置103は、例えば歩行に特有の周波数成分をフィルタによって取り除くことによって角速度の値を平滑化する。この処理の詳細については後述する図6~図8参照。次に、サーバ装置103は、端末装置101の傾斜角を算出しステップ402、その傾斜角に基づいて、角速度の値を慣性座標系における値に変換するステップ403。ジャイロセンサ201は、互いに直行する3軸X軸、Y軸及びZ軸それぞれの周りの角速度を計測する。しかし、一般には端末装置101が傾斜した状態で歩行者に取り付けられることが多く、その場合、端末装置101の3軸は、慣性座標系の3軸、すなわち歩行者の前後方向の軸Roll軸、歩行者の左右方向の軸Pitch軸及び歩行者の上下方向の軸Yaw軸と一致しない。歩行者の水平方向の移動軌跡を生成するためには、Yaw軸周りの角速度すなわち、歩行者の角速度のうち、水平面内の回転の成分を特定する必要がある。このため、サーバ装置103は、加速度センサ202によって計測された加速度データを利用して、ジャイロセンサ201によって計測された角速度の値を、慣性座標系における角速度の値すなわちRoll軸周りの角速度の値、Pitch軸周りの角速度の値、及びYaw軸周りの角速度の値に変換する。この変換の詳細については後述する図9参照。次に、サーバ装置103は、変換されたYaw軸周りの角速度の値から、ジャイロセンサ201のオフセット量を推定するステップ404。この処理の詳細については後述する図5等参照。次に、サーバ装置103は、推定されたオフセットをYaw軸周りの角速度の値から除去するステップ405。以上でジャイロセンサ201のオフセット補正処理が終了する。図5は、本発明の実施形態のサーバ装置103が実行するジャイロセンサ201のオフセット量の推定処理を示すフローチャートである。この処理は、図4に示すオフセット補正処理のステップ404において実行される。最初に、サーバ装置103は、あるフレームについて、ステップ502~504のループ処理を実行するステップ501。ここでフレームとは、角速度の分散を計算するときに適用する時間軸上の枠である。例えばフレームの幅が2秒間と設定された場合、ジャイロセンサ201によって計測され、慣性座標系に変換されたある2秒間の角速度の分散値が計算される。フレームの幅は任意に設定することができる。ただし、ジャイロセンサ201は、所定のタイミングで例えば所定の間隔で角速度を計測し、サーバ装置103は、それぞれの時刻において計測された角速度のサンプル値の集合を角速度データとして端末装置101から取得する。このため、1フレームの幅は、ある程度信頼できる分散値及び平均値を計算できる程度の数のサンプル値が含まれるように設定することが望ましい。サーバ装置103は、フレームごとに、そのフレームに含まれる角速度のデータがオフセット量の推定に使用できるか否かを判定しステップ502、503、使用できる場合にはそのデータに基づいてオフセット量を推定するステップ504。ジャイロセンサ201のオフセット量とは、回転していないジャイロセンサ201から出力されるゼロ以外の角速度の値であるので、ジャイロセンサ201が回転していないすなわちジャイロセンサ201を含む端末装置101を装着した歩行者が回転していないときに出力される角速度の値がオフセット量であると推定することができる。したがって、ジャイロセンサ201のオフセット量を、ジャイロセンサ201の出力のみに基づいて推定するためには、そのジャイロセンサ201の出力が歩行者の回転運動に起因するものであるか否かを推定する必要がある。ステップ502及び503は、ジャイロセンサ201の出力が歩行者の回転運動に起因するものであるか否かを推定するために実行される。この推定は、次のような考え方に基づく。まず、人間が自然な動作を行っている限り、体を回転させるときの角速度はある程度のばらつきを持つと考えられる。すなわち、人間が一定の角速度をもって回転するような動作をすることは不自然であり、歩行者が体を回転させている期間の角速度は一定ではなく、その期間内に大きく変化すると考えられる。これに対して、ジャイロセンサ201のオフセット量は、温度等に依存して変化し得るが、その変化は歩行者の体の回転に起因する角速度の変化と比較すると極めてゆるやかであると考えられる。さらに、人間が自然な動作を行っている限り、体を回転させるときの角速度はある程度の大きさを持つと考えられる。すなわち、人間が極めてゆっくり回転するような動作をすることは不自然であると考えられる。これに対して、一般に流通しているジャイロセンサ201のオフセット量は極めて小さい。このため、フレーム内の角速度のばらつき例えば分散値がある閾値より大きいか、又は、フレーム内の角速度の大きさ例えば平均値がある閾値より大きい場合には、そのとき出力された角速度は歩行者の回転運動に起因するものであると推定でき、フレーム内の角速度のばらつきがある閾値以下であり、かつ、フレーム内の角速度の大きさがある閾値以下である場合には、そのとき出力された角速度がジャイロセンサ201のオフセットに起因するものであるすなわち当該フレーム内の角速度の大きさがオフセット量に相当すると推定できる。ここで、フレーム内の角速度の大きさとは、フレーム内の角速度のサンプル値を代表する値であり、フレーム内の角速度のサンプル値のいずれか例えば、オフセット量の推定処理の対象のサンプル値、フレーム内の最大のサンプル値、又は最小のサンプル値等であってもよいし、フレーム内の角速度のサンプル値の算術平均値、中央値又は最頻値のような統計値であってもよい。以下の説明では、これらの一例として、フレーム内の角速度のサンプル値の算術平均値を使用するステップ503等参照。歩行者が回転運動を行っていない状態として、歩行者が静止しているすなわち歩行しておらず、方向転換等の動作も行っていない状態が考えられる。一般に、歩行者が静止しているときのジャイロセンサ201の出力は、オフセット量の推定に使用することができる。これに対して、歩行者が方向転換等の動作を行っているか、又は、曲線上を歩行しているときのジャイロセンサ201の出力は、歩行者の回転運動に起因する角速度を含むため、オフセット量の推定に使用することができない。一方、直進歩行をしている歩行者は、巨視的には回転運動を行っていないが、微視的には歩行の振動に起因する回転運動を行っている。すなわち、その場合のジャイロセンサ201の出力は、歩行に起因する振動の成分を含むため、ばらつきが大きい。しかし、その成分を取り除くことができれば、直進歩行中のジャイロセンサ201の出力をオフセット量の推定に使用することができると考えられる。本実施形態では、角速度データから歩行に起因する振動の成分を除去する処理すなわち図4のステップ401における平滑化が行われるため、直進歩行中の歩行に起因するジャイロセンサ201の出力のばらつきも十分に小さくなる。このため、本実施形態によれば、直進歩行中のジャイロセンサ201の出力をオフセット量の推定に使用することが可能になる。以下、ステップ502以降の処理を具体的に説明する。まず、サーバ装置103は、一つのフレームに含まれるYaw軸周りの角速度のサンプル値の分散を計算し、その値が所定の閾値以下であるか否かを判定するステップ502。計算された分散値が所定の閾値以下であれば、サーバ装置103は、当該フレームに含まれるYaw軸周りの角速度のサンプル値の平均を計算し、その値が所定の閾値以下であるか否かを判定するステップ503。ステップ503において平均値が所定の閾値以下であると判定された場合、サーバ装置103はその平均値を当該フレームの時間帯におけるオフセット量として推定するステップ504。その後、サーバ装置103は、次のフレームについてステップ502~504を実行する。なお、ステップ502において分散値が所定の閾値を超えると判定されたか、又は、ステップ503において平均値が所定の閾値を超えると判定された場合、サーバ装置103は、ステップ504を実行することなく、次のフレームについてのステップ502~504の処理を開始する。サーバ装置103は、全てのフレームについてステップ502~504の実行が終了すると、次に、Yaw軸周りの角速度のサンプル値ごとに、ステップ506及び507のループ処理を実行するステップ505。まず、サーバ装置103は、一つのサンプル値について、そのサンプル値を含むフレームの時間帯におけるオフセット量が推定されているか否かを判定するステップ506。オフセット量が推定されていない、すなわち、当該サンプル値を含むフレームについて、ステップ502又は503のいずれかでNoと判定されたためにステップ504が実行されていない場合、サーバ装置103は、推定されたオフセット量のうち、当該サンプル値の取得時刻に最も近い時刻のものを、当該サンプル値の取得時刻におけるオフセット量として推定するステップ507。オフセット量は温度等に依存し、時間の経過と共に変動し得るが、短時間で大きく変動する可能性は低いと考えられる。このため、ステップ502~504のループにおいてオフセット量を推定できなかったサンプル値については、そのサンプル値の取得時刻に最も近い時刻における推定されたオフセット量を、そのサンプル値の取得時刻におけるオフセット量として推定する。その後、サーバ装置103は、次のサンプル値についてステップ506及び507を実行する。ステップ506において、そのサンプル値を含むフレームの時間帯におけるオフセット量が推定されていると判定された場合、ステップ507を実行する必要がないため、サーバ装置103は、そのサンプル値についてステップ507を実行せずに、次のサンプル値についてのステップ506及び507の処理を開始する。なお、ステップ507におけるオフセット量の推定方法には、上記のもののほか、種々の変形例があり得る。変形例については、図14及び図15を参照して後述する。図5に示したオフセット量の推定は、サンプル値ごとに行われてもよいし、フレームごとに行われてもよい。まず、オフセット量の推定がサンプル値ごとに行われる場合について説明する。ここでは例として、フレームの時間幅を、オフセット量の推定対象であるYaw軸角速度のサンプル値の取得時刻の1秒前から1秒後までの2秒間と仮定する。この場合、サーバ装置103は、当該対象サンプル値の前後の2秒間のサンプル値の分散値及び平均値を計算しステップ502、503、それらが所定の条件を満たす場合には、計算された平均値が当該対象サンプル値に含まれているオフセット量であると推定するステップ504。次に、サーバ装置103は、当該対象サンプル値の次に取得されたサンプル値について、上記と同様の処理を実行する。次に、オフセット量の推定がフレームごとに行われる場合について説明する。ここでは例としてフレームの時間幅を2秒間と仮定する。この場合、サーバ装置103は、オフセット量の推定対象であるフレームに相当する2秒間のサンプル値の分散値及び平均値を計算しステップ502、503、それらが所定の条件を満たす場合には、計算された平均値が当該対象フレーム内の全サンプル値に含まれているオフセット量であると推定するステップ504。次に、サーバ装置103は、当該対象フレームの次の2秒間のフレームについて、上記と同様の処理を実行する。サンプル値ごとに推定されたオフセット量の精度は、フレームごとに推定されたものより高いことが期待できるが、フレームごとに推定することによって計算量を大幅に削減することができる。以下、図3~図5に示した処理の詳細を説明する。図6は、本発明の実施形態のジャイロセンサ201によって計測された、平滑化される前の角速度の説明図である。具体的には、図6には、端末装置101のYaw軸周りの角速度の計測結果を例示する。これは、図4のステップ401における平滑化が行われる前の角速度の値の例である。既に説明したように、端末装置101のYaw軸言い換えると、例えば端末装置101のZ軸は、慣性座標系のYaw軸すなわち歩行者の上下方向とは必ずしも一致しない。同様に、端末装置101のPitch軸周りの角速度、Roll軸周りの角速度も計測されるが、それらについては図示を省略する。図6のグラフの横軸は角速度が計測された時刻、縦軸は計測された角速度degree/secondである。図6に示す角速度が大きく振動しているのは、歩行者の歩行に起因する振動の成分が含まれるためである。図7は、本発明の実施形態のジャイロセンサ201によって計測され、平滑化された角速度の説明図である。具体的には、図7には、図6に示した角速度のデータを図4のステップ401において平滑化した結果を例示する。この平滑化は、歩行に特有の周波数成分をフィルタによって取り除くことによって行われる。フィルタの種類は、歩行に特有の周波数成分を取り除くことができるものであれば、低域通過フィルタLPF又は帯域通過フィルタBPFなど、どのようなものであってもよく、それを実現するためのフィルタの構造も、FIRFiniteImpulseResponseフィルタ又はFFTFastFourierTransformを使用したフィルタなど、どのようなものであってもよい。ステップ401を実行することによって角速度のデータから歩行に起因する成分が取り除かれ、それ以外の成分が残る。図8は、本発明の実施形態において計測された角速度データに含まれる歩行に特有の周波数成分の説明図である。具体的には、図8は、歩行者の歩調すなわち1秒間当たりの歩数を実測した結果の例を示す。歩行者の年代は、青年、中年及び高年に分類され、それぞれの年代の男性及び女性についての実測結果が示されている。この結果によれば、歩調は年齢が高くなるほど遅くすなわち値が小さくなり、男性の歩調が女性の歩調より遅い傾向が見られるが、全体の分布は概ね1.6~2.4歩/秒の範囲に収まり、その中心は概ね2.0歩/秒であることがわかる。このことは、カットオフ周波数が1.6Hz以下のLPFを用いることで、角速度データに含まれる、歩行に特有の周波数成分をほぼ取り除くことができることを意味する。本実施形態では、図4のステップ401において、カットオフ周波数が1.6Hz以下のLPFが用いられる。例えば、メモリ213又は記憶媒体214が、カットオフ周波数が1.6Hz以下のいずれかの値例えば1.3HzとなるLPFを実現するためのパラメータを保持し、CPU212がそのパラメータを用いて適切な演算を行うことによってLPFを実現してもよい。LPFを実現するための具体的な演算方法としては、従来から知られたものを使用することができる。なお、本実施形態は、例として、端末装置101が歩行者に取り付けられた場合の歩行経路推定を示している。しかし、本発明は、歩行者以外の移動体に端末装置101が取り付けられた場合にも適用することができる。歩行者以外の移動体とは、例えば、人間の移動を補助する装置例えば自転車、自動車又は車椅子等又はその装置を使用して移動する人間であってもよいし、人間以外のロボット又は動物等であってもよい。その場合、それぞれの移動体が移動するときに特有の周波数成分を取り除くためのフィルタのパラメータをメモリ213又は記憶媒体214が保持し、CPU212がそのパラメータを用いて当該周波数成分を取り除く演算を行ってもよい。さらに、メモリ213又は記憶媒体214が複数の移動体のそれぞれに適合するパラメータを保持し、CPU212は、端末装置101が取り付けられた移動体の種類に適合するパラメータを選択して使用してもよい。あるいは、メモリ213又は記憶媒体214が歩行者の年齢及び性別に応じた複数のパラメータ図8参照を保持し、CPU212は、端末装置101が取り付けられた人物の属性に適合するパラメータを選択して使用してもよい。図9は、本発明の実施形態において計測された角速度データを慣性座標系におけるデータに変換する処理の説明図である。実線で示す座標系901は、慣性座標系である。すなわち、座標系901におけるX軸は歩行者の左右方向の座標軸すなわちPitch軸、Y軸は歩行者の前後方向の座標軸すなわちRoll軸、Z軸は歩行者の上下方向の座標軸言い換えると鉛直線方向の座標軸、すなわちYaw軸である。一方、点線で示す座標系902は、端末装置101の座標軸である。座標系902のX’軸、Y’軸及びZ’軸は、それぞれ、座標系901におけるX軸、Y軸及びZ軸と一致しない。サーバ装置103は、図4のステップ402において、式1及び2を用いて端末装置101の傾斜角θp及びθrを計算する。式1及び2のax、ay及びazは、それぞれ、重力加速度のX’軸方向成分、Y’軸方向成分及びZ’軸方向成分である。θp及びθrは、端末装置101の慣性座標系に対する傾斜角、具体的には、端末装置101のX軸周りの角度及びY軸周りの角度である。次に、サーバ装置103は、図4のステップ403において、式3~5を用いてθy’、θp’及びθr’を計算する。式3~5のωx、ωy及びωzは、それぞれ、端末装置101の座標系902におけるX’軸周りの角速度、Y’軸周りの角速度及びZ’軸周りの角速度であり、これらはステップ401において平滑化された角速度データである。θy’、θp’及びθr’は、それぞれ、端末装置101の慣性座標系におけるZ軸Yaw軸周りの角速度、X軸Pitch軸周りの角速度及びY軸Roll軸周りの角速度である。このように、式3~5を用いて慣性座標系における各軸周りの角速度を計算することができるが、本発明では歩行者の水平方向の移動軌跡を推定するため、慣性座標系におけるYaw軸周りの角速度のみが用いられる。図10は、本発明の実施形態の端末装置101の慣性座標系における角速度の説明図である。具体的には、図10に示すグラフの横軸は時刻であり、縦軸はYaw軸周りの角速度である。図10には、図7に示したYaw軸角速度を含む、平滑化後の角速度から式1~5を用いて算出された慣性座標系における角速度のうち、Yaw軸周りの角速度を示す。図10に表示された時間帯1101については後述する図11参照。図11は、本発明の実施形態の端末装置101のYaw軸周りの角速度のばらつきの説明図である。具体的には、図11に示すグラフの横軸は時刻であり、縦軸は角速度のサンプル値の分散値の逆数である。図11には、図10に示したYaw軸周りの角速度のサンプル値のフレームごとの分散値の逆数を示す。この値は、図5のステップ502において参照される。図11に示す値が大きいほど、フレームに含まれる角速度のサンプル値の分散値が小さいすなわちばらつきが少ないことを意味する。図11の例では、閾値200が設定され、分散値の逆数がその閾値を超える時間帯1101が特定される。この場合、時間帯1101における角速度のサンプル値の平均値、すなわち、図10に示す時間帯1101におけるサンプル値の平均値が、ステップ503において所定の閾値と比較される。図10の例では、時間帯1101におけるサンプル値の平均値は、非常に小さいが、ゼロではない。この平均値が所定の閾値以下であると判定された場合、この平均値がオフセット量であると推定される図5のステップ504。その後、サーバ装置103は、推定されたオフセットの値を、慣性座標系における角速度の値図10から減算することによって、オフセットの除去すなわち補正を行う図4のステップ405。なお、図11の例では、時間帯1101以外のほとんどの時間帯において、角速度のサンプル値の分散値の逆数が所定の閾値を超えないすなわち分散値が所定の閾値以下であると判定されたため、オフセット量が推定されていない。このように、図5のステップ502又はステップ503のいずれかの条件が満たされなかったためにオフセット量が推定できなかった時間帯がある場合、サーバ装置103は、その時間帯におけるオフセット量を、ステップ502及び503の条件がいずれも満たされた時間帯において推定されたオフセット量に基づいて推定することができる図5のステップ507。この推定は、図14等を参照して後述するように、種々の方法によって行うことができる。なお、図12及び図13では、説明を簡単にするために、時間帯1101において推定されたオフセット量が全時間帯のオフセット量として扱われる。図12は、本発明の実施形態のサーバ装置103によって推定される相対方位角の説明図である。具体的には、図12に示すグラフの横軸は時刻であり、縦軸は相対方位角を示す。図12には、図10に示す角速度を、オフセット補正をすることなく積分することによって得られた相対方位角1201、及び、オフセット補正がされた角速度を積分することによって得られた相対方位角1202を示す。通常、オフセットの値は非常に小さいが、その値が積分されることによって、時刻が遅くなるほど、補正の有無に起因する相対方位角の差は大きくなる。図13は、本発明の実施形態のサーバ装置103によって推定される歩行経路の説明図である。サーバ装置103は、図12に示す相対方位角と、加速度データから推定された水平方向の移動量と、に基づいて歩行者の移動軌跡歩行経路を推定する図3のステップ303。ただし、図12において得られるのは相対方位角であり、絶対方位が不明であるため、サーバ装置103は、例えば歩行経路推定の対象である建物のレイアウト情報を用いてマップマッチングを行うことによって、絶対方位を推定してもよいステップ304。その場合、サーバ装置103の記憶媒体214等はレイアウト情報を保持する必要がある。マップマッチングは従来から知られた方法によって実行できるため、その詳細な説明は省略する。あるいは、端末装置101が方位センサ203を備え、それによって信頼できる絶対方位の情報が得られた場合には、それを利用してもよい。図13には、フロア1305の始点1301から終点1302に至る、推定された歩行経路1303及び1304を示す。歩行経路1304は、オフセットが補正されていない相対方位角1201に基づいて推定されたもの、歩行経路1303は、オフセットが補正された相対方位角1202に基づいて推定されたものである。前者がフロア1305の形状から大きく外れているのに対して、後者はフロア1305の形状にほぼ合致しており、実際の歩行経路に近いものであると考えられる。このように、オフセットを補正することによって、実際の歩行経路により近い経路を推定することができる。歩行者が静止していない限りオフセット量を推定できないのであれば、図13に示すような経路を歩行した場合に、始点1301、終点1302又はその間のいずれかの地点で歩行者が静止しない限り、オフセット量を推定できない。しかし、本発明によれば、始点1301から終点1302に至るまでの間に歩行者が静止していた時間帯が存在しなくても、直進歩行中の角速度データからオフセット量を推定することができる。図14は、本発明の実施形態のサーバ装置103によって実行される、既に推定されたオフセット量に基づくオフセット量の推定の第1の説明図である。図14の例では、時刻t1までの時間帯1401と、時刻t2以降の時間帯1403において、図5のステップ502及び503の条件がいずれも満たされたため、ステップ504においてオフセット量図14のグラフ中に実線で示す値が推定されている。一方、時刻t1からt2までの時間帯1402では、図5のステップ502又は503のいずれかの条件が満たされなかったため、オフセット量が推定されていない。この場合、時間帯1402における角速度のサンプル値について、図5のステップ506において、オフセット量が推定されていないと判定され、ステップ507が実行される。ステップ507において、サーバ装置103は、オフセット量が推定されていない時間帯1402の前後に隣接する時刻における推定されたオフセット量図14の例では、時刻t1及びt2のそれぞれにおけるオフセット量ω1及びω2の少なくとも一方に基づいて、時間帯1402におけるオフセット量を推定する。例えば、サーバ装置103は、時間帯1402内のある時刻が時刻t2よりt1に近い場合は、その時刻におけるオフセット量を時刻t1におけるオフセット量ω1と同じであると推定し、ある時刻が時刻t1よりt2に近い場合は、その時刻におけるオフセット量を時刻t2におけるオフセット量ω2と同じであると推定してもよい。このようにして推定されたオフセット量1404を図14に例示する。あるいは、サーバ装置103は、時間帯1402内の全時刻におけるオフセット量を、オフセット量ω1及びω2の平均値ω3であると推定してもよい。このようにして推定されたオフセット量1405を図14に例示する。あるいは、サーバ装置103は、時刻t1におけるオフセット量ω1と、時刻t2におけるオフセット量ω2との間を直線で補間することによって、時間帯1402内のオフセット量を推定してもよい。これは、時間帯1402内の時刻と、時刻t1及びt2それぞれとの近さを重みとして用い、ω1及びω2を加重平均したことに相当する。このようにして推定されたオフセット量1406を図14に例示する。いずれの場合も、時間帯1402におけるオフセット量は、ω1からω2までの範囲のいずれかの値となる。図15は、本発明の実施形態のサーバ装置103によって実行される、既に推定されたオフセット量に基づくオフセット量の推定の第2の説明図である。既に説明したように、本実施形態では、ジャイロセンサ201によって計測され、慣性座標系における値に変換された角速度から、人間の歩行に起因する周波数成分が除去される。このため、歩行者が静止しているすなわち歩行していないときに計測された角速度だけでなく、歩行者が直進歩行をしているときに計測された角速度もオフセット量の推定に利用できる。しかし、歩行者が静止しているときに、極めてゆっくりと回転する動作をすることはほとんど考えられないのに対して、歩行をしているときには、その経路がほとんど直線であるが実際には極めてゆっくりと回転する動作をする可能性もある。すなわち、歩行者が直進歩行をしているときに計測された角速度より、静止しているときに計測された角速度のほうが、オフセット量を推定する根拠としての信頼性が高いと言える。このため、サーバ装置103は、それぞれの時間帯において歩行者が歩行していたか否かを判定し、歩行していない時間帯に計測された角速度の重みがより重くなるように、図5のステップ507における推定を行ってもよい。歩行者が歩行していたか否かは、計測された加速度データに基づいて、従来から知られた方法によって判定することができる。図15には、時間帯1401において歩行者が歩行していたと判定され、時間帯1403において歩行者が静止していたと判定された場合の例を示す。例えば、サーバ装置103は、時間帯1402内の全時刻におけるオフセット量を、時間帯1402に隣接する時間帯1401及び1403のうち、歩行者が静止していたと判定された時間帯1403の、時間帯1402に隣接する時刻t2における角速度ω2と同じであると推定してもよい。このようにして推定されたオフセット量1501を図15に例示する。あるいは、サーバ装置103は、図14のオフセット量1406と同様の加重平均を行う際に、歩行者が静止していた時間帯1403における角速度ω2に関する重みを、歩行者が歩行していた時間帯1401における角速度ω1に関する重みより重くなるように設定してもよい。このようにして推定されたオフセット量1502を図15に例示する。いずれの場合も、時間帯1402におけるオフセット量は、ω1からω2までの範囲のいずれかの値となるが、時刻t1とt2の中間点である時刻t3より時刻t1に近い時刻t4から時刻t2までの時間帯のオフセット量が、ω1よりω2に近くなるように推定される。図15に示すオフセット量1502の例では、時刻t4におけるオフセット量ω4が、ω1とω2の中間の値すなわち平均値であり、時刻t4から時刻t2までの時間帯のオフセット量は、ω4からω2までの範囲のいずれかの値となる。このように、歩行者が静止していると判定された時間帯において推定されたオフセット量の重みが、歩行者が歩行していると判定された時間帯において推定されたオフセット量の重みより重くなるように、それらの時間帯にはさまれた時間帯のオフセット量を推定することによって、より信頼性の高いオフセット量の推定値を得ることができる。以上の説明は、屋内の歩行者の歩行経路推定を例としていたが、本発明は、歩行者以外の移動体の移動経路推定にも適用することができ、さらに、屋外の移動経路推定にも適用することができる。以上の本発明の実施形態によれば、ジャイロセンサ201によって計測された角速度データから歩行に起因する振動の成分を取り除くことによって、歩行者が静止しているときだけでなく、直進歩行しているときの角速度データからもジャイロセンサ201のオフセット量を推定することができる。これによって、より精度の高い歩行経路推定を実現することが可能になる。さらに、ある時刻に計測された角速度データのオフセット量をその時刻を含む時間帯の角速度データに基づいて推定できなかった場合、その時刻の前後の時刻の角速度データに基づいて推定されたオフセット量を用いて、その時刻のオフセット量を推定することもできる。このときに、歩行者が歩行していたか否かに基づく重み付けを行うことによって推定の精度を向上させることもできる。