(57)【要約】【課題】歩行者の動きを検出するジャイロセンサを適切に補正する技術を提供する。【解決手段】ユーザによって携帯される携帯端末装置１に、角速度を測定して角速度情報１４０を取得するジャイロセンサ１４と、加速度を測定して加速度情報１５０を取得する加速度センサ１５と、周囲の被写体を撮像して画像情報１６０を取得するカメラ１６と、当該画像情報１６０に基づいて被写体の動きベクトルを算出するベクトル演算部１０１と、角速度情報１４０と加速度情報１５０とに応じて、ユーザの歩行動作による進行方向とカメラ１６の撮像方向との相対関係を判定する相関判定部１０２と、算出された被写体の動きベクトルと相関判定情報１１２とに応じて、ユーザが直進状態か否かを判定する直進歩行判定部１０３と、ユーザが直進状態であると判定されたことに応じて、ジャイロセンサ１４により取得される角速度情報１４０を補正する補正部１０４とを設ける。【選択図】図３
2014196941.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって携帯される携帯端末装置であって、
前記携帯端末装置の移動における角速度を測定して角速度情報を取得するジャイロセンサと、
前記携帯端末装置の移動における加速度を測定して加速度情報を取得する加速度センサと、
前記携帯端末装置が移動している期間における周囲の被写体を撮像して画像情報を取得するカメラと、
前記画像情報に基づいて前記被写体の動きベクトルを算出するベクトル演算手段と、
前記ジャイロセンサにより取得された角速度情報と前記加速度センサにより取得された加速度情報とに応じて、前記ユーザの歩行動作による進行方向と前記カメラの撮像方向との相対関係を判定する相関判定手段と、
前記ベクトル演算手段により算出された前記被写体の動きベクトルと前記相関判定手段により判定された前記相関関係とに応じて、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、
前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段と、
を備える携帯端末装置。
【請求項２】
請求項１に記載の携帯端末装置であって、
前記ベクトル演算手段は、前記画像情報をそれぞれが第１のサイズとなる複数のブロックに分割し、前記複数のブロックのそれぞれを前記第１のサイズよりも小さい第２のサイズとなる複数のサブブロックに分割し、前記複数のサブブロックごとにエッジ量を検出して、前記複数のブロックのそれぞれにおいてエッジ量が最大となるサブブロックを各ブロックの代表サブブロックとして決定し、決定した前記代表サブブロックの動きベクトルを算出することにより、前記被写体の動きベクトルを算出する携帯端末装置。
【請求項３】
請求項２に記載の携帯端末装置であって、
前記ベクトル演算手段は、前記代表サブブロックの動きベクトルを、前記ユーザの歩行周期単位に平均することにより、前記被写体の動きベクトルを求める携帯端末装置。
【請求項４】
請求項２に記載の携帯端末装置であって、
前記ベクトル演算手段は、前記ユーザの歩行周期に同期した演算タイミングで、前記代表サブブロックの動きベクトルを算出する携帯端末装置。
【請求項５】
請求項４に記載の携帯端末装置であって、
前記演算タイミングは、前記カメラの速度が最小のときとなるように決定される携帯端末装置。
【請求項６】
請求項４に記載の携帯端末装置であって、
前記演算タイミングは、前記ユーザの両足が着地しているときとなるように決定される携帯端末装置。
【請求項７】
請求項２に記載の携帯端末装置であって、
前記カメラは、前記ユーザの歩行周期に同期した撮像タイミングで、前記携帯端末装置が移動している期間における周囲の被写体を撮像する携帯端末装置。
【請求項８】
請求項７に記載の携帯端末装置であって、
前記撮像タイミングは、前記カメラの速度が最小のときとなるように決定される携帯端末装置。
【請求項９】
請求項７に記載の携帯端末装置であって、
前記撮像タイミングは、前記ユーザの両足が着地しているときとなるように決定される携帯端末装置。
【請求項１０】
請求項３ないし９のいずれかに記載の携帯端末装置であって、
前記歩行周期は、前記ユーザの歩行動作において、前記ユーザが左右の足をそれぞれ１歩ずつ進める時間に応じて決定されている携帯端末装置。
【請求項１１】
請求項１ないし１０のいずれかに記載の携帯端末装置であって、
前記相関関係には、前記ユーザの歩行動作による進行方向に対して前記カメラの撮像方向が正対する関係が含まれる携帯端末装置。
【請求項１２】
請求項１１に記載の携帯端末装置であって、
前記ユーザの歩行動作による進行方向に対して前記カメラの撮像方向が正対している場合において、前記直進歩行判定手段は、前記ベクトル演算手段により求められた前記被写体の動きベクトルが、画像情報において放射状となっている場合に、前記ユーザの歩行動作が直進状態であると判定する携帯端末装置。
【請求項１３】
ユーザによって携帯される携帯端末装置であって、
前記携帯端末装置の移動における角速度を測定して角速度情報を取得するジャイロセンサと、
前記携帯端末装置の移動における加速度を測定して加速度情報を取得する加速度センサと、
前記ジャイロセンサにより取得された角速度情報および前記加速度センサにより取得された加速度情報を、予め与えられる歩行動作におけるパターンと比較することにより、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、
前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段と、
を備える携帯端末装置。
【請求項１４】
請求項１３に記載の携帯端末装置であって、
前記直進歩行判定手段は、前記ユーザの歩行動作における歩行周期に応じて、前記パターンとの比較を行う携帯端末装置。
【請求項１５】
請求項１４に記載の携帯端末装置であって、
前記歩行周期は、前記ユーザの歩行動作において、前記ユーザが左右の足をそれぞれ１歩ずつ進める時間に応じて決定されている携帯端末装置。
【請求項１６】
ユーザによって携帯されるコンピュータによる読み取り可能なプログラムであって、前記プログラムの前記コンピュータによる実行は、
前記コンピュータの移動における角速度を測定して角速度情報を取得するジャイロセンサと、
前記コンピュータの移動における加速度を測定して加速度情報を取得する加速度センサと、
前記コンピュータが移動している期間における周囲の被写体を撮像して画像情報を取得するカメラと、
前記画像情報に基づいて前記被写体の動きベクトルを算出するベクトル演算手段と、
前記ジャイロセンサにより取得された角速度情報と前記加速度センサにより取得された加速度情報とに応じて、前記ユーザの歩行動作による進行方向と前記カメラの撮像方向との相対関係を判定する相関判定手段と、
前記ベクトル演算手段により算出された前記被写体の動きベクトルと前記相関判定手段により判定された前記相関関係とに応じて、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、
前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段と、
を備えるコンピュータとして機能させるプログラム。
【請求項１７】
ユーザによって携帯されるコンピュータによる読み取り可能なプログラムであって、前記プログラムの前記コンピュータによる実行は、
前記コンピュータの移動における角速度を測定して角速度情報を取得するジャイロセンサと、
前記コンピュータの移動における加速度を測定して加速度情報を取得する加速度センサと、
前記ジャイロセンサにより取得された角速度情報および前記加速度センサにより取得された加速度情報を、予め与えられる歩行動作におけるパターンと比較することにより、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、
前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段と、
を備えるコンピュータとして機能させるプログラム。
【請求項１８】
携帯端末装置の移動における角速度をジャイロセンサにより測定して角速度情報を取得する工程と、
前記携帯端末装置の移動における加速度を加速度センサにより測定して加速度情報を取得する工程と、
前記携帯端末装置が移動している期間における周囲の被写体をカメラにより撮像して画像情報を取得する工程と、
前記カメラにより取得された前記画像情報に基づいて前記被写体の動きベクトルを算出する工程と、
前記ジャイロセンサにより取得された角速度情報と前記加速度センサにより取得された加速度情報とに応じて、前記ユーザの歩行動作による進行方向と前記カメラの撮像方向との相対関係を判定する工程と、
算出された前記被写体の動きベクトルと前記相関関係とに応じて、前記ユーザが歩行動作における直進状態か否かを判定する工程と、
前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する工程と、
を有する補正方法。
【請求項１９】
携帯端末装置を所持したユーザの既知の歩行動作におけるパターンの特徴点を学習させる工程と、
携帯端末装置の移動における角速度をジャイロセンサにより測定して角速度情報を取得する工程と、
前記携帯端末装置の移動における加速度を加速度センサにより測定して加速度情報を取得する工程と、
前記ジャイロセンサにより取得された角速度情報および前記加速度センサにより取得された加速度情報を、前記パターンの特徴点と比較することにより、前記ユーザが歩行動作における直進状態か否かを判定する工程と、
前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する工程と、
を有する補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、観測対象物（特に歩行者）の運動に関する情報を測定するセンサを補正（較正）する技術に関する。
【背景技術】
【０００２】
従来より、歩行者を目的地に誘導するためのアプリケーションが提案されている。そして、歩行者を正確に目的地に誘導するためには、歩行者の位置をリアルタイムで高精度に把握することが必要となる。歩行者の位置を測定する測位技術としては、歩行者が携帯する端末により衛星からの電波を受信するＧＰＳ（Global Positioning System）技術が一般的である。しかし、駅ビルや地下街といった屋内においては、端末が衛星からの電波を受信できないため、ＧＰＳによる測位は採用できない。このため、屋内における歩行者の誘導を実現する技術として、加速度センサや角速度センサ、あるいは磁気センサ等の自蔵センサを用いた相対的な測位技術が提案されている。自蔵センサによる相対的な測位は、例えば、歩行者の運動を自蔵センサにより検出し、進行方向と進行速度を推定し歩行者の移動ベクトルを算出することにより、実現される。
【０００３】
しかし、自蔵センサ（特に、ジャイロセンサ（角速度センサ））は、バイアスノイズが温度等の外乱により常に変化するため、定期的にキャリブレーションする必要がある。このような技術が、例えば、特許文献１ないし４に記載されている。特許文献１には、歩行者の動きから、当該歩行者が静止している状態を判定し、当該歩行者が静止している期間にジャイロバイアスの補正を行う技術が記載されている。また、特許文献２には、歩行者の進行方向を地図から推定して、ジャイロセンサの補正を行う技術が記載されている。また、特許文献３には、車両の進行方向をジャイロセンサから算出して、進行方向の変化量が閾値以下の場合に、当該車両の進行方向が直線であるとみなして、当該ジャイロセンサの補正を行う技術が記載されている。さらに、特許文献４には、車両から観測される白線や道路標識を基準として車両の位置を推定する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】再公表２０１０−００１９６８号公報
【特許文献２】特許第５０５９９３３号公報
【特許文献３】特開平０７−３２４９４１号公報
【特許文献４】特許第４８９７５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１に記載されている技術では、歩行者が静止している期間が補正に不十分だった場合や、静止状態の検出に失敗したときには、誤った値で測位を始めることになるという問題があった。
【０００６】
また、歩行者は常に地図上の道や車線に沿って歩行するわけではなく、人を避けたり、道を横断したりといった状況がむしろ普通に発生する。したがって、特許文献２および特許文献４に記載されている技術では、地図上の進行方向が必ずしも実際の歩行者の進行方向ではないために、誤った補正がされるという問題があった。
【０００７】
また、歩行者の運動は、進行方向に対して常に正対しておらず、足や腕の動きに応じて比較的大きく変動する。さらに、歩行者の歩行動作における進行方向は、回転や振動、振り子運動、上下運動などの局所的で複雑な動きが合成されて、いわば巨視的に形成されている。したがって、特許文献３に記載されている技術では、巨視的に形成される歩行者の進行方向に関して、その変化量を適切に評価するための閾値を、局所的な動きを検出するジャイロセンサに適した値として決定することが難しいという問題があった。
【０００８】
そもそも、特許文献３および特許文献４は、動きに関して局所的に見ても巨視的に見てもあまり差のない車両のような物体に適用される技術であって、これらの技術をそのまま歩行者に適用するのは困難である。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、歩行者の動きを検出するジャイロセンサを適切に補正する技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、請求項１の発明は、ユーザによって携帯される携帯端末装置であって、前記携帯端末装置の移動における角速度を測定して角速度情報を取得するジャイロセンサと、前記携帯端末装置の移動における加速度を測定して加速度情報を取得する加速度センサと、前記携帯端末装置が移動している期間における周囲の被写体を撮像して画像情報を取得するカメラと、前記画像情報に基づいて前記被写体の動きベクトルを算出するベクトル演算手段と、前記ジャイロセンサにより取得された角速度情報と前記加速度センサにより取得された加速度情報とに応じて、前記ユーザの歩行動作による進行方向と前記カメラの撮像方向との相対関係を判定する相関判定手段と、前記ベクトル演算手段により算出された前記被写体の動きベクトルと前記相関判定手段により判定された前記相関関係とに応じて、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段とを備える。
【００１１】
また、請求項２の発明は、請求項１の発明に係る携帯端末装置であって、前記ベクトル演算手段は、前記画像情報をそれぞれが第１のサイズとなる複数のブロックに分割し、前記複数のブロックのそれぞれを前記第１のサイズよりも小さい第２のサイズとなる複数のサブブロックに分割し、前記複数のサブブロックごとにエッジ量を検出して、前記複数のブロックのそれぞれにおいてエッジ量が最大となるサブブロックを各ブロックの代表サブブロックとして決定し、決定した前記代表サブブロックの動きベクトルを算出することにより、前記被写体の動きベクトルを算出する。
【００１２】
また、請求項３の発明は、請求項２の発明に係る携帯端末装置であって、前記ベクトル演算手段は、前記代表サブブロックの動きベクトルを、前記ユーザの歩行周期単位に平均することにより、前記被写体の動きベクトルを求める。
【００１３】
また、請求項４の発明は、請求項２の発明に係る携帯端末装置であって、前記ベクトル演算手段は、前記ユーザの歩行周期に同期した演算タイミングで、前記代表サブブロックの動きベクトルを算出する。
【００１４】
また、請求項５の発明は、請求項４の発明に係る携帯端末装置であって、前記演算タイミングは、前記カメラの速度が最小のときとなるように決定される。
【００１５】
また、請求項６の発明は、請求項４の発明に係る携帯端末装置であって、前記演算タイミングは、前記ユーザの両足が着地しているときとなるように決定される。
【００１６】
また、請求項７の発明は、請求項２の発明に係る携帯端末装置であって、前記カメラは、前記ユーザの歩行周期に同期した撮像タイミングで、前記携帯端末装置が移動している期間における周囲の被写体を撮像する。
【００１７】
また、請求項８の発明は、請求項７の発明に係る携帯端末装置であって、前記撮像タイミングは、前記カメラの速度が最小のときとなるように決定される。
【００１８】
また、請求項９の発明は、請求項７の発明に係る携帯端末装置であって、前記撮像タイミングは、前記ユーザの両足が着地しているときとなるように決定される。
【００１９】
また、請求項１０の発明は、請求項３ないし９のいずれかの発明に係る携帯端末装置であって、前記歩行周期は、前記ユーザの歩行動作において、前記ユーザが左右の足をそれぞれ１歩ずつ進める時間に応じて決定されている。
【００２０】
また、請求項１１の発明は、請求項１ないし１０のいずれかの発明に係る携帯端末装置であって、前記相関関係には、前記ユーザの歩行動作による進行方向に対して前記カメラの撮像方向が正対する関係が含まれる。
【００２１】
また、請求項１２の発明は、請求項１１の発明に係る携帯端末装置であって、前記ユーザの歩行動作による進行方向に対して前記カメラの撮像方向が正対している場合において、前記直進歩行判定手段は、前記ベクトル演算手段により求められた前記被写体の動きベクトルが、画像情報において放射状となっている場合に、前記ユーザの歩行動作が直進状態であると判定する。
【００２２】
また、請求項１３の発明は、ユーザによって携帯される携帯端末装置であって、前記携帯端末装置の移動における角速度を測定して角速度情報を取得するジャイロセンサと、前記携帯端末装置の移動における加速度を測定して加速度情報を取得する加速度センサと、前記ジャイロセンサにより取得された角速度情報および前記加速度センサにより取得された加速度情報を、予め与えられる歩行動作におけるパターンと比較することにより、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段とを備える。
【００２３】
また、請求項１４の発明は、請求項１３の発明に係る携帯端末装置であって、前記直進歩行判定手段は、前記ユーザの歩行動作における歩行周期に応じて、前記パターンとの比較を行う。
【００２４】
また、請求項１５の発明は、請求項１３の発明に係る携帯端末装置であって、前記歩行周期は、前記ユーザの歩行動作において、前記ユーザが左右の足をそれぞれ１歩ずつ進める時間に応じて決定されている。
【００２５】
また、請求項１６の発明は、ユーザによって携帯されるコンピュータによる読み取り可能なプログラムであって、前記プログラムの前記コンピュータによる実行は、前記コンピュータの移動における角速度を測定して角速度情報を取得するジャイロセンサと、前記コンピュータの移動における加速度を測定して加速度情報を取得する加速度センサと、前記コンピュータが移動している期間における周囲の被写体を撮像して画像情報を取得するカメラと、前記画像情報に基づいて前記被写体の動きベクトルを算出するベクトル演算手段と、前記ジャイロセンサにより取得された角速度情報と前記加速度センサにより取得された加速度情報とに応じて、前記ユーザの歩行動作による進行方向と前記カメラの撮像方向との相対関係を判定する相関判定手段と、前記ベクトル演算手段により算出された前記被写体の動きベクトルと前記相関判定手段により判定された前記相関関係とに応じて、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段とを備えるコンピュータとして機能させる。
【００２６】
また、請求項１７の発明は、ユーザによって携帯されるコンピュータによる読み取り可能なプログラムであって、前記プログラムの前記コンピュータによる実行は、前記コンピュータの移動における角速度を測定して角速度情報を取得するジャイロセンサと、前記コンピュータの移動における加速度を測定して加速度情報を取得する加速度センサと、前記ジャイロセンサにより取得された角速度情報および前記加速度センサにより取得された加速度情報を、予め与えられる歩行動作におけるパターンと比較することにより、前記ユーザが歩行動作における直進状態か否かを判定する直進歩行判定手段と、前記直進歩行判定手段により前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する補正手段とを備えるコンピュータとして機能させる。
【００２７】
また、請求項１８の発明は、補正方法であって、携帯端末装置の移動における角速度をジャイロセンサにより測定して角速度情報を取得する工程と、前記携帯端末装置の移動における加速度を加速度センサにより測定して加速度情報を取得する工程と、前記携帯端末装置が移動している期間における周囲の被写体をカメラにより撮像して画像情報を取得する工程と、前記カメラにより取得された前記画像情報に基づいて前記被写体の動きベクトルを算出する工程と、前記ジャイロセンサにより取得された角速度情報と前記加速度センサにより取得された加速度情報とに応じて、前記ユーザの歩行動作による進行方向と前記カメラの撮像方向との相対関係を判定する工程と、算出された前記被写体の動きベクトルと前記相関関係とに応じて、前記ユーザが歩行動作における直進状態か否かを判定する工程と、前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する工程とを有する。
【００２８】
また、請求項１９の発明は、補正方法であって、携帯端末装置を所持したユーザの既知の歩行動作におけるパターンの特徴点を学習させる工程と、携帯端末装置の移動における角速度をジャイロセンサにより測定して角速度情報を取得する工程と、前記携帯端末装置の移動における加速度を加速度センサにより測定して加速度情報を取得する工程と、前記ジャイロセンサにより取得された角速度情報および前記加速度センサにより取得された加速度情報を、前記パターンの特徴点と比較することにより、前記ユーザが歩行動作における直進状態か否かを判定する工程と、前記ユーザが歩行状態における直進状態であると判定されたことに応じて、前記ジャイロセンサにより取得される角速度情報を補正する工程とを有する。
【発明の効果】
【００２９】
請求項１ないし１２、請求項１６および請求項１８に記載の発明は、画像情報に基づいて被写体の動きベクトルを算出し、ジャイロセンサにより取得された角速度情報と加速度センサにより取得された加速度情報とに応じて、ユーザの歩行動作による進行方向とカメラの撮像方向との相対関係を判定し、算出された被写体の動きベクトルと当該相関関係とに応じて、ユーザが歩行動作における直進状態か否かを判定することにより、ユーザが歩行動作における直進状態であるか否かを精度よく判定することができる。
【００３０】
また、請求項１３ないし１５、請求項１７および請求項１９に記載の発明は、ジャイロセンサにより取得された角速度情報および加速度センサにより取得された加速度情報を、予め与えられる歩行動作におけるパターンと比較することにより、ユーザが歩行動作における直進状態か否かを判定することにより、ユーザが歩行動作における直進状態であるか否かを精度よく判定することができるとともに、カメラを設ける必要がない。
【図面の簡単な説明】
【００３１】
【図１】第１の実施の形態における携帯端末装置を示す図である。
【図２】第１の実施の形態における携帯端末装置のブロック図である。
【図３】第１の実施の形態における携帯端末装置が備える機能ブロックをデータの流れとともに示す図である。
【図４】第１の実施の形態におけるジャイロセンサに対する補正処理を示す流れ図である。
【図５】第１の実施の形態における代表サブブロック決定処理を示す流れ図である。
【図６】第１の実施の形態における代表サブブロック決定処理を示す流れ図である。
【図７】ベクトル演算部による画像情報の分割の様子を示す図である。
【図８】図７に示すブロックをベクトル演算部が分割する様子を示す図である。
【図９】第１の実施の形態における直進歩行検出処理を示す流れ図である。
【図１０】ジャイロセンサ、加速度センサおよびカメラの座標系を示す図である。
【図１１】ユーザの歩行動作における座標系を示す図である。
【図１２】人の歩行動作における加速度αｖ，αｗおよび角速度ωｖとを例示する図である。
【図１３】第２の実施の形態における携帯端末装置が備える機能ブロックをデータの流れとともに示す図である。
【図１４】第２の実施の形態における携帯端末装置により実行される補正処理を示す流れ図である。
【図１５】第２の実施の形態における直進歩行検出処理を示す流れ図である。
【図１６】第３の実施の形態における携帯端末装置が備える機能ブロックをデータの流れとともに示す図である。
【図１７】第３の実施の形態における携帯端末装置によって実行される補正処理を示す流れ図である。
【図１８】第４の実施の形態における携帯端末装置のブロック図である。
【図１９】第４の実施の形態における携帯端末装置が備える機能ブロックをデータの流れとともに示す図である。
【図２０】第４の実施の形態における携帯端末装置によって実行される補正処理を示す流れ図である。
【発明を実施するための形態】
【００３２】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。ただし、以下の説明において特に断らない限り、方向や向きに関する記述は、当該説明の便宜上、図面に対応するものであり、例えば実施品、製品または権利範囲等を限定するものではない。
【００３３】
＜１．  第１の実施の形態＞
図１は、第１の実施の形態における携帯端末装置１を示す図である。携帯端末装置１は、操作部１２および表示部１３を備えており、ユーザによって携帯される装置として構成されている。
【００３４】
以下の説明において、歩行者であるユーザの歩行動作は、当該ユーザが歩いているのか、走っているのかを区別しないものとする。また、歩行動作における「１歩」とは、人が片足を上げ始めてから、その足を前に出し、その足が地面に着き、次の足を上げ始めるまでの動作とする。また、「１複歩」とは、左右１歩ずつの動作を含む動作とする。さらに、「１複歩時間」とは、１複歩にかかる時間とする。
【００３５】
操作部１２は、携帯端末装置１に対してユーザが指示を与えるために操作されるハードウェアである。操作部１２としては、例えば、各種ボタン類やキー、回転セレクタ、タッチパネルなどが該当する。
【００３６】
表示部１３は、ユーザに対して各種情報を表示することにより、情報を提供する機能を有するハードウェアである。表示部１３としては、例えば、ランプやＬＥＤ、液晶パネル、液晶ディスプレイ、有機ＥＬディスプレイなどが該当する。
【００３７】
図２は、第１の実施の形態における携帯端末装置１のブロック図である。携帯端末装置１は、ＣＰＵ１０、記憶装置１１、ジャイロセンサ１４、加速度センサ１５およびカメラ１６を備えている。
【００３８】
ＣＰＵ１０は、記憶装置１１に格納されているプログラム１１０を読み取りつつ実行し、各種データの演算や制御信号の生成等を行う。これにより、ＣＰＵ１０は、携帯端末装置１が備える各構成を制御するとともに、各種データを演算し作成する機能を有している。すなわち、携帯端末装置１は、一般的なコンピュータとして構成されている。
【００３９】
記憶装置１１は、携帯端末装置１において各種データを記憶する機能を提供する。言い換えれば、記憶装置１１が携帯端末装置１において電子的に固定された情報を保存する。特に、本実施の形態における記憶装置１１は、プログラム１１０を記憶するために使用される。
【００４０】
記憶装置１１としては、ＣＰＵ１０の一時的なワーキングエリアとして使用されるＲＡＭやバッファ、読み取り専用のＲＯＭ、不揮発性のメモリ（例えばＮＡＮＤメモリなど）、比較的大容量のデータを記憶するハードディスク、専用の読み取り装置に装着された可搬性の記憶媒体（ＰＣカード、ＳＤカード、ＵＳＢメモリなど）等が該当する。図２においては、あたかも記憶装置１１が１つの構造物であるかのように図示している。しかし、通常、記憶装置１１は、上記例示した各種装置（あるいは媒体）のうち、必要に応じて採用される複数種類の装置から構成されるものである。すなわち、本実施の形態において、記憶装置１１は、データを記憶する機能を有する装置群の総称である。
【００４１】
また、現実のＣＰＵ１０は高速にアクセス可能なＲＡＭを内部に備えた電子回路である。しかし、このようなＣＰＵ１０が備える記憶装置も、説明の都合上、記憶装置１１に含めて説明する。すなわち、本実施の形態においては、一時的にＣＰＵ１０自体が記憶するデータも、記憶装置１１が記憶するとして説明する。
【００４２】
ジャイロセンサ１４は、携帯端末装置１の移動における角速度を測定して角速度情報１４０（図３参照）を取得する。以下の説明では、ジャイロセンサ１４が角速度情報１４０を取得する周期（サンプリング周期）を、「Ｔｓ」と称する。
【００４３】
加速度センサ１５は、携帯端末装置１の移動における加速度を測定して加速度情報１５０（図３参照）を取得する。
【００４４】
詳細は図示しないが、カメラ１６は、レンズやミラーなどの光学素子と、ＣＣＤなどの光電変換素子とを備えており、一般的なデジタルカメラとして構成されている。カメラ１６は、少なくとも携帯端末装置１が移動している期間における周囲の被写体を撮像して画像情報１６０（図３参照）を取得する。
【００４５】
カメラ１６は、ＣＰＵ１０からの制御信号に応じて、所定の撮像タイミングで撮像するように構成されている。第１の実施の形態におけるカメラ１６は、撮像周期「Ｔｃ」で撮像を行い、新たな画像情報１６０を取得するものとする。
【００４６】
図３は、第１の実施の形態における携帯端末装置１が備える機能ブロックをデータの流れとともに示す図である。図に示す歩行周期演算部１００、ベクトル演算部１０１、相関判定部１０２、直進歩行判定部１０３および補正部１０４は、ＣＰＵ１０がプログラム１１０に従って動作することにより実現される機能ブロックである。
【００４７】
歩行周期演算部１００は、角速度情報１４０および加速度情報１５０を参照して、ユーザ（歩行者）の歩行動作における歩行周期を決定する。歩行周期演算部１００は、決定した歩行周期をベクトル演算部１０１および補正部１０４に伝達する。また、詳細は後述するが、歩行周期演算部１００は、ユーザの進行方向を相関判定部１０２に伝達する機能も有している。
【００４８】
ベクトル演算部１０１は、画像情報１６０に基づいて、画像情報１６０における被写体の動きベクトルを算出し、動きベクトル情報１１１を作成する機能を有している。ベクトル演算部１０１が動きベクトルを演算する間隔を、以下、演算間隔「Ｔｖ」と称する。動きベクトルは、演算間隔をおいて撮像された２枚の静止画像（画像情報１６０）を比較して演算される。したがって、演算間隔は、撮像間隔の整数倍となり、Ｔｖ＝ｎ×Ｔｃ（ｎは自然数。）である。
【００４９】
なお、ここにいう「画像情報１６０における被写体の動きベクトル」とは、厳密に言えば、ユーザの動作に従って携帯端末装置１が動くことによって生じる見かけ上の被写体の動きによる動きベクトルと、被写体自体の動きによって生じる動きベクトルとの合成である。しかし、以下の説明では、被写体は静止しているものとして扱い、被写体自体の動きによって生じる動きベクトルは無視するものとする。また、本実施の形態におけるベクトル演算部１０１は、歩行周期演算部１００から伝達された歩行周期を、動きベクトル情報１１１に含めるものとする。
【００５０】
相関判定部１０２は、ジャイロセンサ１４により取得された角速度情報１４０と、加速度センサ１５により取得された加速度情報１５０とに応じて、ユーザの歩行動作による進行方向とカメラ１６の撮像方向との相対関係を判定する。ただし、詳細は後述するが、本実施の形態における相関判定部１０２は、角速度情報１４０と加速度情報１５０とに基づいて歩行周期演算部１００が歩行周期を演算する過程において求まる進行方向を利用する。
【００５１】
相関判定部１０２による判定結果は、相関判定情報１１２として記憶される。
【００５２】
直進歩行判定部１０３は、ベクトル演算部１０１により算出された動きベクトル情報１１１と相関判定部１０２により判定された相関関係（相関判定情報１１２）とに応じて、ユーザが歩行動作における直進状態か否かを判定する。
【００５３】
補正部１０４は、直進歩行判定部１０３によりユーザが歩行状態における直進状態であると判定されたことに応じて、ジャイロセンサ１４のバイアス値（ｂｖ）を補正する機能を有している。また、すでに取得されている角速度情報１４０を過去に遡って補正する機能も有している。
【００５４】
以上が、第１の実施の形態における携帯端末装置１の構成および機能の説明である。次に、携帯端末装置１において、ジャイロセンサ１４による測定値である角速度情報１４０を補正する補正方法について説明する。
【００５５】
図４は、第１の実施の形態におけるジャイロセンサ１４に対する補正処理を示す流れ図である。
【００５６】
なお、携帯端末装置１では、図４に示す処理と並行して、あるいは、一部の処理を共有して、他の処理が行われていてもよい。他の処理とは、例えば、ユーザの位置を特定する測位処理や測位処理の結果を用いた行き先案内処理、経路記録処理などである。
【００５７】
また、図４に示す処理が開始されるまでに、携帯端末装置１では、所定の初期設定が実行されているものとする。初期設定には、ジャイロセンサ１４および加速度センサ１５による測定タイミングを計測するための測定タイマにＴｓをセットして起動する処理と、カメラ１６による撮像タイミングを計測するための撮像タイマにＴｃをセットして起動する処理とが含まれるが、演算タイマは起動されない。動きベクトルを演算する処理は、少なくとも１枚の画像情報１６０が取得され、後述する代表サブブロックが決定されてからでなければ実行できないからである。
【００５８】
また、初期設定には、ジャイロセンサ１４のバイアス値（ｂｖ）の初期値を設定する処理と、携帯端末装置１の姿勢（処理開始時の姿勢）を決定する処理とが含まれる。携帯端末装置１の初期姿勢を決定する手法としては、ユーザが携帯端末装置１の操作部１２を操作して姿勢を入力する方法や、図示しない磁気センサの出力により姿勢を決定する方法などが想定される。
【００５９】
初期設定が終了すると、携帯端末装置１は、測定タイマと、撮像タイマと、演算タイマとを監視する状態となる（ステップＳ１，Ｓ５，Ｓ１１）。この状態を、以下の説明では、「監視状態」と称する。ただし、監視状態において、携帯端末装置１は、ステップＳ１，Ｓ５，Ｓ１１以外の他の処理を実行していてもよい。
【００６０】
監視状態において、測定タイマが０となり、測定タイミングが到来すると、ＣＰＵ１０は、ステップＳ１においてＹｅｓと判定し、測定タイマをＴｓにリセットしつつ（ステップＳ２）、ジャイロセンサ１４および加速度センサ１５の値をそれぞれ読み出す。これによって、携帯端末装置１の動きに関する角速度および加速度の測定が実行される（ステップＳ３）。
【００６１】
なお、ステップＳ３において読み出されるジャイロセンサ１４の値は、未だバイアス値ｂｖの補正（後述）がされていなければ、バイアス値ｂｖの初期値に基づいて取得される。一方で、バイアス値ｂｖの補正がされた後は、補正後のバイアス値ｂｖの値により補正された値として取得される。
【００６２】
次に、ＣＰＵ１０は、読み出したジャイロセンサ１４の値および加速度センサ１５の値とに基づいて、角速度情報１４０および加速度情報１５０を作成し、記憶装置１１に記録する（ステップＳ４）。なお、本実施の形態では、角速度情報１４０および加速度情報１５０は、過去の記録に上書きされるのではなく、履歴として取得順に記録されていくものとする。
【００６３】
このように、携帯端末装置１は、測定タイマの値が０となるごとに、ステップＳ１においてＹｅｓと判定し、ステップＳ２ないしＳ４の処理を実行する。したがって、携帯端末装置１では、測定周期Ｔｓごとに角速度および加速度が測定される。なお、ステップＳ４を実行すると、携帯端末装置１は、再度、監視状態に戻る。
【００６４】
監視状態において、撮像タイマが０となり、撮像タイミングが到来すると、ＣＰＵ１０は、ステップＳ５においてＹｅｓと判定し、撮像タイマをＴｃにリセットしつつ（ステップＳ６）、周囲の被写体を撮像するようにカメラ１６を制御する。これにより、カメラ１６が撮像を行い（ステップＳ７）、画像情報１６０が作成され、記憶装置１１に記録される。なお、ステップＳ７の処理においては、画像情報１６０の削除または上書きはされないものとする。すなわち、画像情報１６０は撮像順に記録されていくものとする。
【００６５】
撮像が実行され、新たな画像情報１６０が記録されると、ＣＰＵ１０は、演算タイミングを計測するための演算タイマが起動されているか否かを判定する（ステップＳ８）。演算タイマが起動されていない場合は、ＣＰＵ１０は演算タイマにＴｖをセットして起動し（ステップＳ９）、代表サブブロック決定処理を実行する（ステップＳ１０）。一方、すでに演算タイマが起動されている場合は、ステップＳ９，Ｓ１０をスキップして、監視状態に戻る。
【００６６】
図５および図６は、第１の実施の形態における代表サブブロック決定処理を示す流れ図である。
【００６７】
代表サブブロック決定処理が開始されると、まず、ベクトル演算部１０１は、最新の画像情報１６０を取得して、複数のブロックに分割する（ステップＳ２１）。
【００６８】
図７は、ベクトル演算部１０１による画像情報１６０の分割の様子を示す図である。図７では、両側に商品陳列用の棚が配置された通路をユーザが進んでいるときに撮像される周囲の被写体（画像情報１６０）を例に示している。
【００６９】
ステップＳ２１において、ベクトル演算部１０１は、画像情報１６０をそれぞれが第１のサイズとなる複数のブロックに分割する。各ブロックは、画像情報１６０の部分画像に相当する。図７に示す例では、画像情報１６０は、ブロック１６１，１６２，１６３，１６４の４つのブロックに分割されている。
【００７０】
次に、ベクトル演算部１０１は、ブロックカウンタｉの値を「１」にリセットする（ステップＳ２２）。ブロックカウンタｉとは、処理中のブロックを識別するためのカウンタである。図７に示すように、本実施の形態におけるベクトル演算部１０１は、画像情報１６０を４つのブロックに分割するので、ブロックカウンタｉの値は、「１」ないし「４」の整数である。
【００７１】
次に、ベクトル演算部１０１は、ブロックカウンタｉに示されるｉ番目のブロックを、さらにサブブロックに分割する（ステップＳ２３）。
【００７２】
図８は、図７に示すブロック１６１をベクトル演算部１０１が分割する様子を示す図である。なお、図８では、図７に示すブロック１６１を拡大して図示している。
【００７３】
ステップＳ２３において、ベクトル演算部１０１は、ｉ番目のブロックを第１のサイズよりも小さい第２のサイズとなる複数のサブブロックに分割する。各サブブロックは、画像情報１６０の部分画像に相当する。図８に示す例では、ブロック１６１は５４個のサブブロックに分割されている。
【００７４】
ステップＳ２３を実行すると、ベクトル演算部１０１は、最大エッジ量の値を「０」にリセットするとともに、サブブロックカウンタｊの値を「１」にリセットする（ステップＳ２４）。最大エッジ量とは、処理中のブロックに含まれるサブブロックの最大エッジ量を一時的に格納しておく変数である。また、サブブロックカウンタｊとは、処理中のサブブロックを識別するためのカウンタである。図８に示すように、ベクトル演算部１０１は、１個のブロックを５４個のサブブロックに分割するので、サブブロックカウンタｊの値は、「１」ないし「５４」の整数である。
【００７５】
次に、ベクトル演算部１０１は、ステップＳ２３において分割した複数のサブブロックのうち、サブブロックカウンタｊに示されるｊ番目のサブブロックのエッジ量を演算し（ステップＳ３１）、求めたｊ番目のサブブロックのエッジ量が最大エッジ量より大きいか否かを判定する（ステップＳ３２）。
【００７６】
ステップＳ３２においてＹｅｓの場合、ベクトル演算部１０１は、ｊ番目のエッジ量の値を新たに最大エッジ量とし（ステップＳ３３）、ｉ番目のブロックにおける代表サブブロックを識別するための識別子ＳＢｉに、「ｊ」をセットする（ステップＳ３４）。すなわち、１番目からｊ−１番目までのサブブロックのエッジ量よりも、ｊ番目のサブブロックのエッジ量の方が大きい場合には、ｊ番目のサブブロックのエッジ量が最大エッジ量として格納され、識別子ＳＢｉに「ｊ」が格納される。
【００７７】
一方、ステップＳ３２においてＮｏの場合、ベクトル演算部１０１は、ｊ番目のサブブロックを代表サブブロックに決定することはないので、ステップＳ３３，Ｓ３４の処理をスキップする。
【００７８】
次に、ベクトル演算部１０１は、ｉ番目のブロックについて全てのサブブロックに関するエッジ量の演算と評価が終了したか否かを判定する（ステップＳ３５）。本実施の形態において、ｉ番目のブロックにおけるサブブロックの数は５４個であるから、例えば、ステップＳ３５においてｊ≧５４か否かを判定すればよい。
【００７９】
ステップＳ３５においてＮｏの場合（未だ全てのサブブロックについて終了していない場合）、ベクトル演算部１０１は、ｊの値をインクリメントし（ステップＳ３６）、ステップＳ３１からの処理を繰り返す。すなわち、ｉ番目のブロックの次のサブブロックについての処理を継続する。
【００８０】
一方、ステップＳ３５においてＹｅｓの場合（全てのサブブロックについて終了している場合）、ベクトル演算部１０１は、最大エッジ量の値を「０」にリセットし（ステップＳ３７）、ｉ番目のブロックについての処理を終了する。すなわち、ｉ番目のブロックの代表サブブロックを識別子ＳＢｉによって示されるサブブロックに決定する。
【００８１】
次に、ベクトル演算部１０１は、全てのブロックについて代表サブブロックの決定が終了したか否かを判定する（ステップＳ３８）。本実施の形態において、ブロックの数は４個であるから、例えば、ステップＳ３８においてｉ≧４か否かを判定すればよい。
【００８２】
ステップＳ３８においてＮｏの場合（未だ全てのブロックについて終了していない場合）、ベクトル演算部１０１は、ｉの値をインクリメントし（ステップＳ３９）、ステップＳ２３からの処理を繰り返す。すなわち、次のブロックについての処理を継続する。
【００８３】
ステップＳ３８においてＹｅｓの場合（全てのブロックについて終了している場合）、ベクトル演算部１０１は、代表サブブロック決定処理を終了し、図４の処理に戻る。
【００８４】
このようにして、ベクトル演算部１０１は、複数のサブブロックごとにエッジ量を検出して、複数のブロックのそれぞれにおいてエッジ量が最大となるサブブロックを各ブロックの代表サブブロックとして決定する。図８に示す例では、陳列棚の角部が含まれるサブブロック１６１ａがブロック１６１の中の代表サブブロックとして決定されている。なお、図８には図示していないが、ブロック１６２，１６３，１６４の中からも、エッジ量が最大のサブブロックが、それぞれ代表サブブロックとして決定される。
【００８５】
携帯端末装置１は、代表サブブロックの動きベクトルに基づいて、携帯端末装置１の動きを検出しようとするものである。そして、動きベクトルを算出するには、画像におけるエッジ量が多い部分（サブブロック）を抽出して算出することが好ましい。
【００８６】
第１の実施の形態におけるベクトル演算部１０１は、先述のように、各ブロックにおける代表サブブロックを、当該ブロック内においてエッジ量が最大となるサブブロックに決定する。したがって、動きベクトルを精度よく算出することができる。
【００８７】
一方で、算出された動きベクトルによって携帯端末装置１の動き（ユーザの動き）を推定するためには、算出される動きベクトルの画像情報１６０における位置が分散している方が好ましい。すなわち、代表サブブロックが画像情報１６０内の様々な位置から選択されていることが好ましい。
【００８８】
第１の実施の形態におけるベクトル演算部１０１は、先述のように、画像情報１６０における１枚の静止画像を、一旦、４つのブロックに分割し、各ブロックの中からそれぞれ代表サブブロックを決定することにより、動きベクトルの算出対象となるサブブロックが、画像情報１６０内において局在することを抑制することができる。したがって、後述する処理において、ユーザの進行方向が直進状態か否かを正確に判定することができる。
【００８９】
図４に戻って、監視状態において、演算タイマが０となり、演算タイミングが到来すると、ＣＰＵ１０は、ステップＳ１１においてＹｅｓと判定し、演算タイマをＴｖにリセットしつつ（ステップＳ１２）、直進歩行検出処理を実行する（ステップＳ１３）。
【００９０】
図９は、第１の実施の形態における直進歩行検出処理を示す流れ図である。
【００９１】
直進歩行検出処理が開始されると、直進歩行判定部１０３は、ユーザの歩行動作が直進歩行か否かを示す直進フラグをＯＦＦにリセットする（ステップＳ４１）。
【００９２】
次に、ベクトル演算部１０１が、最新の画像情報１６０における各代表サブブロックの位置を特定して、代表サブブロックを決定してから（代表サブブロックを決定した画像情報１６０が撮像されてから）当該最新の画像情報１６０が撮像されるまでの期間のそれぞれの代表サブブロックの動きベクトルを求める（ステップＳ４２）。
【００９３】
なお、代表サブブロックを決定してから最新の画像情報１６０が撮像されるまでの期間は、演算タイマで管理されており、演算周期Ｔｖである。すなわち、ステップＳ４２では、Ｔｖの間の動きベクトルが算出される。ただし、演算周期Ｔｖに対して、撮像周期Ｔｃが離散的であると見なせる場合、当該期間は、ｎ×Ｔｃ（ただしｎ×Ｔｃ≦Ｔｖ＜（ｎ＋１）×Ｔｃ）である。
【００９４】
次に、歩行周期演算部１００が、ユーザの歩行動作における歩行周期を求める。
【００９５】
図１０は、ジャイロセンサ１４、加速度センサ１５およびカメラ１６の座標系を示す図である。携帯端末装置１において、ジャイロセンサ１４、加速度センサ１５およびカメラ１６はいずれも固定されている。したがって、携帯端末装置１の姿勢が変化したとしても、ジャイロセンサ１４、加速度センサ１５およびカメラ１６の相対的な位置関係は変化しない。
【００９６】
図１０に示すように、第１の実施の形態における携帯端末装置１において、カメラ１６の撮像方向をＸ軸とする。３軸の加速度センサ１５の軸のうちの１つをＸ軸に一致させるように加速度センサ１５を配置するとともに、他の２軸をそれぞれＹ軸とＺ軸とする。これにより、加速度センサ１５の出力は、Ｘ軸方向の加速度αｘと、Ｙ軸方向の加速度αｙと、Ｚ軸方向の加速度αｚとなる。
【００９７】
次に、３軸回りの角速度を測定するジャイロセンサ１４の３軸をそれぞれ、Ｘ軸、Ｙ軸、Ｚ軸に一致させるようにジャイロセンサ１４を配置する。これにより、ジャイロセンサ１４の出力は、Ｘ軸回りの角速度ωｘと、Ｙ軸回りの角速度ωｙと、Ｚ軸回りの角速度ωｚとなる。
【００９８】
なお、このように配置することができなくても、ジャイロセンサ１４、加速度センサ１５およびカメラ１６の相対的な位置関係（既知）は変化しないので、ジャイロセンサ１４および加速度センサ１５の出力値を既知の位置関係に基づいてＸ軸、Ｙ軸およびＺ軸のそれぞれに対応した値に変換することができる。
【００９９】
図１１は、ユーザの歩行動作における座標系を示す図である。図１１に示すように、重力と逆向き方向をＶ軸、ユーザの進行方向をＷ軸とする。ここで、ユーザの進行方向は水平面内に定義し、Ｖ軸とＷ軸とは互いに垂直であるものとする。さらに、Ｗ軸およびＶ軸と垂直となる軸をＳ軸とする。
【０１００】
まず、歩行周期演算部１００は、従来のカルマンフィルタを用いて加速度情報１５０に基づいて重力方向ベクトルを推定する。このようにして推定された重力方向ベクトルの逆向き方向として、Ｖ軸が決定される。
【０１０１】
Ｖ軸が決まると、歩行周期演算部１００は、Ｖ軸にＺ軸を合わせるように回転させ、このときの回転角θ１を取得する。次に、Ｖ軸にＺ軸を合わせた状態（Ｚ軸をθ１だけ回転させた状態）で、当該Ｚ軸回りに３６０°回転させつつ、αｙおよびαｚを演算する。一般に、人の歩行動作においては、Ｗ軸方向（進行方向）の加速度が大きく、Ｓ軸方向（進行方向に対する左右方向）の加速度が小さいという特性がある。したがって、当該Ｚ軸を３６０°回転させた中で、αｚが最大でαｙが最小となる回転角θ２を決定し、このときのＸ軸およびＹ軸をそれぞれＷ軸およびＳ軸と決定する。
【０１０２】
このようにして求めた回転角θ１，θ２を用いることにより、歩行周期演算部１００は、ＸＹＺ座標系の出力値を、ＷＳＶ座標系に変換することができる。すなわち、加速度αｘ，αｙ，αｚから、Ｗ軸方向の加速度αｗ、Ｓ軸方向の加速度αｓおよびＶ軸方向の加速度αｖを求めることができる。同様に、角速度ωｘ，ωｙ，ωｚから、Ｗ軸回りの角速度ωｗ、Ｓ軸回りの角速度ωｓおよびＶ軸回りの角速度ωｖを求めることができる。
【０１０３】
図１２は、人の歩行動作における加速度αｖ，αｗおよび角速度ωｖとを例示する図である。
【０１０４】
図１２から明らかなように、加速度αｖ，αｗは１歩周期であるが、角速度ωｖは１複歩周期である。したがって、歩行動作の周期としては、１複歩周期を採用することが適切といえる。
【０１０５】
また、角速度ωｖは比較的複雑に変化するため、歩行周期を決定するためには、加速度αｖまたは加速度αｗを用いた方がよいこともわかる。例えば、加速度αｗが極小値をとってから、さらに極小値を２回とるまでの期間が１複歩時間であり、歩行周期である。
【０１０６】
このように、ステップＳ４３において、歩行周期演算部１００は、角速度情報１４０および加速度情報１５０に基づいて、歩行周期を決定する。なお、極小値の検出は、例えば、ゼロ交差法を採用することができる。
【０１０７】
歩行周期が求まると、歩行周期演算部１００は、求めた歩行周期をベクトル演算部１０１に伝達する。そして、ベクトル演算部１０１が、ステップＳ４２で求めた動きベクトルを、歩行周期単位に平均をとり（ステップＳ４４）、被写体の動きベクトルとする。このようにして、ベクトル演算部１０１が、被写体の動きベクトルを求めることにより、進行方向への動き以外の動きによる影響を抑制することができる。
【０１０８】
次に、相関判定部１０２がユーザの進行方向を求める（ステップＳ４５）。本実施の形態において、進行方向は、ステップＳ４３が実行された時点で、歩行周期演算部１００によりＷ軸方向として決定されている。したがって、本実施の形態における相関判定部１０２は、ステップＳ４５において、改めて角速度情報１４０および加速度情報１５０から進行方向を求めることはせず、歩行周期演算部１００から伝達されたＷ軸方向を用いる。
【０１０９】
ステップＳ４５が実行されると、相関判定部１０２は、Ｘ軸（カメラ１６の向き）とＷ軸（進行方向）との関係から、カメラ１６が進行方向に対して正対しているか否かを判定し（ステップＳ４６）、判定結果を相関判定情報１１２として記憶装置１１に格納する。相関判定情報１１２は、直進歩行判定部１０３によって参照される。
【０１１０】
ステップＳ４６においてＹｅｓと判定された場合、直進歩行判定部１０３は、ステップＳ４４においてベクトル演算部１０１によって求められた被写体の動きベクトルが、画像情報１６０の中央付近から放射状になっているか否かを判定する（ステップＳ４７）。そして、放射状になっている場合（ステップＳ４７においてＹｅｓ。）、ユーザの歩行動作が直進状態であると判定し、直進フラグをＯＮにセット（ステップＳ４９）してから直進歩行検出処理を終了する。放射状になっていない場合（ステップＳ４７においてＮｏ。）、ユーザの歩行動作は直進状態でないと判定し、直進フラグをＯＦＦのまま維持して直進歩行検出処理を終了する。
【０１１１】
一方、ステップＳ４６においてＮｏと判定された場合、直進歩行判定部１０３は、ステップＳ４４においてベクトル演算部１０１によって求められた被写体の動きベクトルが、進行方向と逆向きになっており、かつ、歩行動作に変化がない期間において大きさがほぼ一定であるか否かを判定する（ステップＳ４８）。そして、ステップＳ４８においてＹｅｓの場合、ユーザの歩行動作が直進状態であると判定し、直進フラグをＯＮにセット（ステップＳ４９）してから直進歩行検出処理を終了する。ステップＳ４８においてＮｏの場合、ユーザの歩行動作は直進状態でないと判定し、直進フラグをＯＦＦのまま維持して直進歩行検出処理を終了する。
【０１１２】
これにより、直進歩行検出処理が終了するときには、ユーザの歩行動作が直進状態であるか否かが検出されて、直進フラグの状態として格納される。
【０１１３】
図４に戻って、直進歩行検出処理が終了すると、直進歩行判定部１０３は、直進フラグの状態を補正部１０４に伝達する。そして、これにより補正部１０４が、ユーザの歩行状態が直進状態か否かを判定する（ステップＳ１４）。
【０１１４】
直進状態の場合（ステップＳ１４においてＹｅｓ。）、補正部１０４は、ジャイロセンサ１４のバイアス値を補正する（ステップＳ１５）。
【０１１５】
ステップＳ１５において、補正部１０４がジャイロセンサ１４のバイアス値を補正する原理を説明する。なお、歩行者であるユーザを測位する場合において、ユーザのＷ軸回りおよびＳ軸回りの角速度ωｗ，ωｓを考慮する必要性は乏しい。したがって、ここでは、Ｖ軸回りの角速度ωｖ（進行方向に影響する。）を補正する例について説明する。
【０１１６】
図１２に示したように、進行方向を決定する基となる角速度ωｖは、１複歩周期である。したがって、補正部１０４は、まず、１複歩あたりの進行方向の変化量（ΔＷ）を求める。ΔＷは、１複歩時間（すなわち歩行周期）のωｖの積分値として、ΔＷ＝Σ（ωｖ−ｂｖ）で求めることができる。
【０１１７】
次に、補正部１０４は、測定周期Ｔｓあたりのωｖの平均値ωｖ（ａｖｅ）を、ωｖ（ａｖｅ）＝ΔＷ／（歩行周期／Ｔｓ）により求める。そして、さらに、ｂｖ＋ωｖ（ａｖｅ）を新たなバイアス値ｂｖとしてバイアス値ｂｖを更新し補正する。
【０１１８】
このようにして、ユーザの歩行動作が直進状態であった場合には（ステップＳ１４においてＹｅｓ。）、ステップＳ１５が実行されて、ジャイロセンサ１４のバイアス値ｂｖが補正部１０４により補正される。したがって、以後、ジャイロセンサ１４から出力される角速度情報１４０が補正される。
【０１１９】
なお、測位処理や経路記録処理を実行するために進行方向を記録している場合には、直進歩行判定部１０３によってユーザの歩行動作が直進状態であると判定されている間は、角速度情報１４０や加速度情報１５０を参照せずに、進行方向の変化量を「０」として記録することが好ましい。
【０１２０】
一方、ステップＳ１４においてＮｏの場合（ユーザの歩行動作が直進状態でない場合）、補正部１０４は、ステップＳ１５をスキップし、ジャイロセンサ１４のバイアス値ｂｖの補正は行わない。したがって、測位処理や経路記録処理を実行するために進行方向を記録している場合には、角速度情報１４０や加速度情報１５０に基づいて進行方向を記録することになる。ただし、ステップＳ１５と同様の演算により、ΔＷを求め、これを加算することにより進行方向を演算してもよい。
【０１２１】
ステップＳ１４においてＮｏと判定されるか、あるいは、ステップＳ１５が実行されると、ベクトル演算部１０１は、新たな代表サブブロックを決定するために、代表サブブロック決定処理を実行する（ステップＳ１６）。なお、ステップＳ１６における代表サブブロック決定処理は、ステップＳ１０と同様に実行可能であるため、説明は省略する。
【０１２２】
ステップＳ１６を実行すると、携帯端末装置１は、再び、監視状態に戻る。
【０１２３】
以上のように、第１の実施の形態における携帯端末装置１は、携帯端末装置１の移動における角速度を測定して角速度情報１４０を取得するジャイロセンサ１４と、携帯端末装置１の移動における加速度を測定して加速度情報１５０を取得する加速度センサ１５と、携帯端末装置１が移動している期間における周囲の被写体を撮像して画像情報１６０を取得するカメラ１６と、画像情報１６０に基づいて被写体の動きベクトル情報１１１を算出するベクトル演算部１０１と、ジャイロセンサ１４により取得された角速度情報１４０と加速度センサ１５により取得された加速度情報１５０とに応じて、ユーザの歩行動作による進行方向とカメラの撮像方向との相対関係を判定する相関判定部１０２と、ベクトル演算部１０１により算出された被写体の動きベクトル情報１１１と相関判定部１０２により判定された相関関係とに応じて、ユーザが歩行動作における直進状態か否かを判定する直進歩行判定部１０３と、直進歩行判定部１０３によりユーザが歩行状態における直進状態であると判定されたことに応じて、ジャイロセンサ１４により取得される角速度情報１４０を補正する補正部１０４とを備える。これにより、ユーザが歩行動作における直進状態であるか否かを精度よく判定することができる。したがって、ジャイロセンサ１４の補正を精度よく実現することができる。
【０１２４】
また、ベクトル演算部１０１は、画像情報１６０をそれぞれが第１のサイズとなる複数のブロックに分割し、複数のブロックのそれぞれを第１のサイズよりも小さい第２のサイズとなる複数のサブブロックに分割し、複数のサブブロックごとにエッジ量を検出して、複数のブロックのそれぞれにおいてエッジ量が最大となるサブブロックを各ブロックの代表サブブロックとして決定し、決定した代表サブブロックの動きベクトルを算出することにより、被写体の動きベクトル情報１１１を算出する。これにより、動きベクトル情報１１１の算出対象となるサブブロックが、画像情報内において局在することを抑制することができる。したがって、歩行者の進行方向が直進状態か否かを正確に判定できる。
【０１２５】
また、ベクトル演算部１０１は、代表サブブロックの動きベクトルを、ユーザの歩行周期単位に平均することによって被写体の動きベクトル情報１１１を求める。したがって、進行方向への動き以外の動きによる影響を抑制できる。
【０１２６】
また、ユーザの歩行動作において、当該ユーザが左右の足をそれぞれ１歩ずつ進める時間（１複歩時間）に応じて歩行周期が決定されていることにより、Ｖ軸回りの角速度ωｖの周期単位で処理することができ、精度が向上する。
【０１２７】
相関判定部１０２によって判定する相関関係には、ユーザの歩行動作による進行方向に対してカメラ１６の撮像方向が正対する関係が含まれることにより、直進状態を容易に判定できる。
【０１２８】
ユーザの歩行動作による進行方向に対してカメラ１６の撮像方向が正対している場合において、直進歩行判定部１０３は、ベクトル演算部１０１により求められた被写体の動きベクトルが、画像情報１６０において放射状となっている場合に、当該ユーザの歩行動作が直進状態であると判定する。これにより、効率よく、直進状態を判定することができる。
【０１２９】
なお、各ブロックについて代表サブブロックを決定したときに、画像情報１６０の部分画像である各代表サブブロックのみを記録し、当該画像情報１６０を削除するか、あるいは、新たな画像情報１６０が取得されたときに上書きしてもよい。これにより、記憶しておくべき情報の容量を抑制することができる。
【０１３０】
また、画像情報１６０において周辺部に位置するサブブロックが代表サブブロックに決定されると、当該代表サブブロックに相当する被写体がユーザの動きによって撮像範囲から外れてしまうことも考えられる。その場合は、動きベクトルを求めることができなくなるおそれがある。したがって、代表サブブロックを決定する場合には、画像情報１６０における周辺部に位置するサブブロックを候補から除外してもよい。あるいは、さらに、予測されるユーザの動き（方向や速度）に応じてどの位置のサブブロックを候補から除外するかを決定してもよい。
【０１３１】
＜２．  第２の実施の形態＞
第１の実施の形態における携帯端末装置１では、代表サブブロックの動きベクトルを、歩行周期で平均することにより、進行方向の動き以外の動きによる影響を抑制すると説明した。しかし、進行方向の動き以外の動きによる影響を抑制する手法はこれに限定されるものではない。
【０１３２】
図１３は、第２の実施の形態における携帯端末装置１ａが備える機能ブロックをデータの流れとともに示す図である。なお、第２の実施の形態における携帯端末装置１ａにおいて、第１の実施の形態における携帯端末装置１と同様の構成については同符号を付し、適宜説明を省略する。
【０１３３】
図１３に示すように、携帯端末装置１ａは、歩行周期演算部１００の代わりに歩行周期演算部１００ａを備えている点と、ベクトル演算部１０１の代わりにベクトル演算部１０１ａを備えている点とが、携帯端末装置１と異なっている。
【０１３４】
歩行周期演算部１００ａは、歩行周期の代わりに、演算タイミングを演算してベクトル演算部１０１ａに伝達する。
【０１３５】
ベクトル演算部１０１ａは、代表サブブロックの動きベクトルを、歩行周期に平均するのではなく、そのまま被写体の動きベクトルとして動きベクトル情報１１１を作成する。また、ベクトル演算部１０１ａによる演算タイミングは、演算タイマによって決定されるのではなく、歩行周期演算部１００から通知される。
【０１３６】
図１４は、第２の実施の形態における携帯端末装置１ａにより実行される補正処理を示す流れ図である。
【０１３７】
第２の実施の形態における携帯端末装置１ａは、第１の実施の形態における携帯端末装置１と同様の初期設定が実行された後、監視状態となる。また、監視状態において、携帯端末装置１ａは、測定タイミングの到来と、撮像タイミングの到来と、演算タイミングの到来とを監視している（ステップＳ５１，Ｓ５５，Ｓ６０）。
【０１３８】
監視状態において、初期設定において起動された測定タイマＴｓが０となると、携帯端末装置１ａは、ステップＳ５１においてＹｅｓと判定し、ステップＳ５２ないしＳ５４の処理を実行する。なお、ステップＳ５２ないしＳ５４の処理は、第１の実施の形態におけるステップＳ２ないしＳ４の処理と同様であるため、説明は省略する。
【０１３９】
監視状態において、初期状態において起動された撮像タイマＴｃが０となると、携帯端末装置１ａは、ステップＳ５５においてＹｅｓと判定し、ステップＳ５６，Ｓ５７の処理を実行する。なお、ステップＳ５６，Ｓ５７の処理は、第１の実施の形態におけるステップＳ６，Ｓ７の処理と同様であるため、説明は省略する。
【０１４０】
ステップＳ５７が実行されると、ベクトル演算部１０１ａは、すでに代表サブブロックが決定されているか否かを判定する（ステップＳ５８）。そして、未だ代表サブブロックが決定されていない場合には、代表サブブロック決定処理（ステップＳ５９）を実行してから監視状態に戻る。一方、すでに代表サブブロックが決定されている場合には、ステップＳ５９をスキップして、監視状態に戻る。なお、ステップＳ５９における代表サブブロック決定処理は、第１の実施の形態におけるステップＳ１０の処理と同様であるため、説明は省略する。
【０１４１】
なお、携帯端末装置１ａでは、演算タイマＴｖに相当する構成は設けられておらず、演算タイマＴｖを起動させる処理（ステップＳ９に相当する処理）が実行されることはない。
【０１４２】
監視状態において、演算タイミングが到来すると、ＣＰＵ１０は、ステップＳ６０においてＹｅｓと判定する。第１の実施の形態では、演算タイミングが到来したか否かは、演算タイマの値を参照して判定されていた。しかし、第２の実施の形態では、演算タイマは設けられていないので、演算タイマの値によってステップＳ６０の判定を実行することはできない。
【０１４３】
これまでに説明したように、歩行動作においては、歩行周期ごとに同じ歩行状態が繰り返される。したがって、同じ状態のときに撮像された画像情報１６０を比較すれば、進行方向の動き以外の動きを効率的にキャンセルすることができる。すなわち、歩行周期ごとに演算タイミングが到来するように、演算タイミングを歩行周期に同期させれば、進行方向の動き以外の動きによる影響を抑制することができる。
【０１４４】
また、画像情報１６０にエッジ量検出処理を行って動きベクトルを演算する場合には、当該画像情報１６０における手ブレが少ない方が好ましい。手ブレは、主にカメラ１６が動くことによって生じ、カメラ１６の動く速度が速いほど手ブレが大きくなる。したがって、携帯端末装置１ａは、カメラ１６の速度が最小のときに演算タイミングが到来したと判定するように構成する。これにより、カメラ１６によって撮像される画像情報１６０において、最も手ブレが少ない状態の画像情報１６０によって動きベクトルを演算することができ、精度が向上する。なお、カメラ１６の速度が最小となるタイミングは、加速度αｗ，αｓ，αｖに基づいて、決定することができる。
【０１４５】
以上のことから、ベクトル演算部１０１ａは、歩行周期ごとに到来する、カメラ１６の速度が最小となるタイミングで演算タイミングが到来したと判定し、ステップＳ６０においてＹｅｓと判定する。このようなタイミングは、歩行周期演算部１００ａによって検出されベクトル演算部１０１ａに伝達される。
【０１４６】
第２の実施の形態における歩行周期演算部１００ａは、ステップＳ６０において、第１の実施の形態におけるステップＳ４３（図９）と同様にして、歩行周期を求めることができる。また、ステップＳ６０において歩行周期を求める過程で、加速度αｗ，αｓ，αｖが求まるので、これに基づいてカメラ１６の速度が最小となるタイミングも決定することができ、これをベクトル演算部１０１ａに伝達する。このようにして、第２の実施の形態における携帯端末装置１ａでは、演算タイミングの到来が検出される。
【０１４７】
ステップＳ６０においてＹｅｓと判定すると、携帯端末装置１ａは、直進歩行検出処理を実行する（ステップＳ６１）。
【０１４８】
図１５は、第２の実施の形態における直進歩行検出処理を示す流れ図である。
【０１４９】
直進歩行検出処理が開始されると、直進歩行判定部１０３は、直進フラグをＯＦＦとする（ステップＳ７１）。次に、ベクトル演算部１０１ａが、代表サブブロックの動きベクトルを求め、動きベクトル情報１１１を作成し、記憶装置１１に格納する（ステップＳ７２）。
【０１５０】
すなわち、第２の実施の形態では、すでにステップＳ６０の段階で歩行周期を求める処理が実行されているので、第１の実施の形態におけるステップＳ４３に相当する処理は、第２の実施の形態では実行されない。
【０１５１】
また、歩行周期に同期して代表サブブロックの動きベクトルが演算されているため、進行方向の動き以外の動きによる影響はすでにキャンセルされている。したがって、代表サブブロックの動きベクトルを歩行周期で平均する必要はなく、第１の実施の形態おけるステップＳ４４に相当する処理は、第２の実施の形態では実行されず、ステップＳ７２において求められた代表サブブロックの動きベクトルがそのまま被写体の動きベクトルとして動きベクトル情報１１１に格納される。
【０１５２】
ステップＳ７２が実行されると、携帯端末装置１ａは、ステップＳ７３を実行する。なお、ステップＳ７３ないしＳ７７の処理は、第１の実施の形態におけるステップＳ４５ないしＳ４９の処理と同様のため、説明は省略する。
【０１５３】
ステップＳ６１の直進歩行検出処理を終了すると、携帯端末装置１ａは、ステップＳ６２を実行する。なお、ステップＳ６２が実行されてからの処理は、第１の実施の形態におけるステップＳ１４が実行されてからの処理と同様であるため、説明は省略する。
【０１５４】
以上のように、第２の実施の形態における携帯端末装置１ａでは、ベクトル演算部１０１ａが、ユーザの歩行周期に同期した演算タイミングで、代表サブブロックの動きベクトルを算出する。したがって、歩行周期単位に平均しなくても、進行方向への動き以外の動きによる影響を除去できる。
【０１５５】
また、演算タイミングが、カメラ１６の速度が最小のときとなるように決定される。したがって、進行方向への動き以外の動きによる影響を抑制することができるとともに、画像情報のブレも抑制することができる。
【０１５６】
なお、演算タイミングは、ユーザの両足が着地しているときとなるように決定されてもよい。この場合は、ユーザの体が最も安定している瞬間の動きベクトルを求めることができるため、やはり進行方向への動き以外の動きによる影響を抑制することができる。ユーザの両足が着地しているタイミングは、角速度ωｗ，ωｓ，ωｖ、および、加速度αｗ，αｓ，αｖに基づいて歩行周期演算部１００ａにより検出することができる。
【０１５７】
また、演算タイミングを歩行周期に同期させる手法としては、歩行周期演算部１００ａによって演算された歩行周期を、第１の実施の形態における演算タイマと同様の構成にセットし、当該演算タイマが０となるタイミングの到来をステップＳ６０において監視することでも実現することができる。
【０１５８】
また、第２の実施の形態では、歩行周期に同期してベクトル演算が実行されるため、ベクトル演算の演算周期が比較的長くなる。これにより、代表サブブロックに含まれる被写体の画像内における移動量が大きくなり、代表サブブロックの探索エリアが広がる懸念がある。しかしながら、携帯端末装置１では、角速度ωｗ，ωｓ，ωｖ、および、加速度αｗ，αｓ，αｖに基づいて代表サブブロックの画像内における移動量を推定することができるため、このような問題を抑制することができる。これは以下に説明する第３の実施の形態においても同様である。
【０１５９】
＜３．  第３の実施の形態＞
進行方向の動き以外の動きによる影響を抑制する手法は、第１の実施の形態および第２の実施の形態に示される手法に限定されるものではない。
【０１６０】
図１６は、第３の実施の形態における携帯端末装置１ｂが備える機能ブロックをデータの流れとともに示す図である。なお、第３の実施の形態における携帯端末装置１ｂにおいて、第１の実施の形態における携帯端末装置１と同様の構成については同符号を付し、適宜説明を省略する。
【０１６１】
図１６に示すように、携帯端末装置１ｂは、カメラ１６の代わりにカメラ１６ｂを備えている点と、歩行周期演算部１００の代わりに歩行周期演算部１００ｂを備えている点と、ベクトル演算部１０１の代わりにベクトル演算部１０１ｂを備えている点とが、携帯端末装置１と異なっている。
【０１６２】
カメラ１６ｂは、歩行周期演算部１００ｂから通知される撮像タイミングに従って撮像を行い、画像情報１６０を取得する。
【０１６３】
歩行周期演算部１００ｂは、角速度情報１４０および加速度情報１５０に基づいて歩行周期を演算するとともに、歩行周期に同期したタイミングで撮像タイミングを決定し、カメラ１６ｂに伝達する。その一方で、歩行周期演算部１００ｂは、ベクトル演算部１０１ｂに対しては、歩行周期を伝達することはない。
【０１６４】
ベクトル演算部１０１ｂは、演算タイマにより演算タイミングを決定するのではなく、新たな画像情報１６０が取得されたタイミングを演算タイミングとして、動きベクトルの演算を実行する。
【０１６５】
図１７は、第３の実施の形態における携帯端末装置１ｂによって実行される補正処理を示す流れ図である。
【０１６６】
第３の実施の形態における携帯端末装置１ｂにおいても、第１の実施の形態における携帯端末装置１と同様の初期設定が実行された後に監視状態となる。しかし、携帯端末装置１ｂにおいては、撮像タイマは設けられていないため、当該初期設定には撮像タイマを起動する処理は含まれない。また、監視状態において、携帯端末装置１ｂは、測定タイミングの到来と、撮像タイミングの到来とを監視している（ステップＳ８１，Ｓ８５）。
【０１６７】
監視状態において、初期設定において起動された測定タイマＴｓが０となると、携帯端末装置１ｂは、ステップＳ８１においてＹｅｓと判定し、ステップＳ８２ないしＳ８４の処理を実行する。なお、ステップＳ８２ないしＳ８４の処理は、第１の実施の形態におけるステップＳ２ないしＳ４の処理と同様であるため、説明は省略する。
【０１６８】
監視状態において、撮像タイミングになると、携帯端末装置１ｂは、ステップＳ８５においてＹｅｓと判定する。第１の実施の形態では、撮像タイミングが到来したか否かは、撮像タイマの値を参照して判定されていた。しかし、第３の実施の形態では、撮像タイマは設けられていないので、撮像タイマの値によってステップＳ８５の判定を実行することはできない。
【０１６９】
第２の実施の形態においても説明したように、歩行動作においては、歩行周期ごとに同じ歩行状態が繰り返される。したがって、同じ状態のときに撮像された画像情報１６０を比較すれば、進行方向の動き以外の動きを効率的にキャンセルすることができる。すなわち、歩行周期ごとに撮像タイミングが到来するように、撮像タイミングを歩行周期に同期させれば、同じ状態のときに撮像された画像情報１６０のみを得ることができ、進行方向の動き以外の動きによる影響を抑制することができる。
【０１７０】
また、画像情報１６０にエッジ量検出処理を行って動きベクトルを演算する場合には、当該画像情報１６０における手ブレが少ない方が好ましいことも第２の実施の形態で説明したとおりである。したがって、携帯端末装置１ｂは、カメラ１６の速度が最小のときに撮像タイミングが到来したと判定するように構成する。これにより、第２の実施の形態と同様に、カメラ１６によって撮像される画像情報１６０において、最も手ブレが少ない状態の画像情報１６０によって動きベクトルを演算することができ、精度が向上する。
【０１７１】
すなわち、携帯端末装置１ａは、演算タイミングを調整することによって、最適なタイミングの画像情報１６０を用いて動きベクトルを演算するように構成されていたが、携帯端末装置１ｂは、最適なタイミングの画像情報１６０のみを撮像するように構成されている。これによって、カメラ１６による撮像回数を大幅に減らすことが可能となり、処理負荷が軽減されるとともに、消費電力も抑制される。
【０１７２】
以上のことから、携帯端末装置１ｂは、歩行周期ごとに到来する、カメラ１６の速度が最小となるタイミングで撮像タイミングが到来したと判定し、ステップＳ８５においてＹｅｓと判定する。このようなタイミングは、歩行周期演算部１００ｂによって第２の実施の形態における歩行周期演算部１００ａと同様の手法により検出され、カメラ１６ｂに伝達される。
【０１７３】
ステップＳ８５においてＹｅｓと判定されると、カメラ１６ｂは撮像を行い、新たな画像情報１６０が記憶装置１１に格納される（ステップＳ８６）。
【０１７４】
新たな画像情報１６０が格納されると、ベクトル演算部１０１ｂは、代表サブブロックがすでに決定済みか否かを判定し（ステップＳ８７）、未だ代表サブブロックが決定されていない場合（ステップＳ８７においてＮｏ。）、代表サブブロック決定処理（ステップＳ９１）を実行して監視状態に戻る。なお、ステップＳ９１における代表サブブロック決定処理は、第１の実施の形態におけるステップＳ１０の処理と同様であるため、説明は省略する。
【０１７５】
一方、すでに代表サブブロックが決定されている場合（ステップＳ８７においてＹｅｓ。）、ＣＰＵ１０は、直進歩行検出処理を実行する（ステップＳ８８）。なお、ステップＳ８８における直進歩行検出処理は、第２の実施の形態における直進歩行検出処理（図１５）と同様であるため、説明は省略する。
【０１７６】
ステップＳ８８の直進歩行検出処理を終了すると、携帯端末装置１ｂは、ステップＳ８９を実行する。なお、ステップＳ８９が実行されてからの処理は、第１の実施の形態におけるステップＳ１４が実行されてからの処理と同様であるため、説明は省略する。
【０１７７】
以上のように、第３の実施の形態における携帯端末装置１ｂは、カメラ１６ｂが、ユーザの歩行周期に同期した撮像タイミングで、携帯端末装置１ｂが移動している期間における周囲の被写体を撮像する。これにより、歩行動作における一定の姿勢のときに撮像されることになる（撮像時の姿勢のバラツキを抑制できる）ため、進行方向への動き以外の動きベクトルの影響を除去することができる。また、間欠的に撮像することにより、カメラ１６ｂによる消費電力を抑制することができる。
【０１７８】
また、撮像タイミングが、カメラ１６ｂの速度が最小のときとなるように決定される。したがって、進行方向への動き以外の動きによる影響を抑制することができるとともに、画像情報のブレも抑制することができる。
【０１７９】
なお、撮像タイミングは、ユーザの両足が着地しているときとなるように決定されてもよい。この場合は、ユーザの体が最も安定している瞬間の動きベクトルを求めることができるため、やはり進行方向への動き以外の動きによる影響を抑制することができる。ユーザの両足が着地しているタイミングは、角速度ωｗ，ωｓ，ωｖ、および、加速度αｗ，αｓ，αｖに基づいて歩行周期演算部１００ｂにより検出することができる。
【０１８０】
また、撮像タイミングを歩行周期に同期させる手法としては、歩行周期演算部１００ｂによって演算された歩行周期を、第１の実施の形態における撮像タイマと同様の構成にセットし、当該撮像タイマが０となるタイミングの到来をステップＳ８５において監視することでも実現することができる。
【０１８１】
なお、カメラ１６ｂは歩行周期に同期したタイミングが到来する前後一定時間の間において撮像を行い、その間に取得された画像情報１６０のうち、実際に、カメラ１６ｂの速度が最小のときに撮像された画像情報１６０を用いて動きベクトルを演算するように構成してもよい。人の歩行動作は一定の歩行周期となるわけではなく、多少のバラツキが生じる。したがって、予測した歩行周期において、実際には、同じ状態になっていない場合があり、予測した歩行周期によって撮像した画像情報１６０だけでは、状態がずれている場合がある。しかし、上記のように構成することにより、実際に、同じ状態になっていたか否かを判定しつつ、同じ状態になっていたときの画像情報１６０を用いて動きベクトルを演算できるので、精度が向上する。
【０１８２】
＜４．  第４の実施の形態＞
上記第１ないし第３の実施の形態では、カメラ１６，１６ｂによって撮像される画像情報１６０を解析することにより、ユーザの歩行状態における直進状態を判定する例について説明した。しかし、ユーザの歩行状態における直進状態を判定する手法は、これに限定されるものではない。
【０１８３】
図１８は、第４の実施の形態における携帯端末装置１ｃのブロック図である。なお、第４の実施の形態における携帯端末装置１ｃにおいて、第１の実施の形態における携帯端末装置１と同様の構成については同符号を付し、適宜説明を省略する。図３と図１８とを比較すれば明らかなように、携帯端末装置１ｃは、カメラ１６を備えていない点が携帯端末装置１と異なっている。
【０１８４】
図１９は、第４の実施の形態における携帯端末装置１ｃが備える機能ブロックをデータの流れとともに示す図である。
【０１８５】
携帯端末装置１ｃは、直進歩行判定部１０３ｃおよび補正部１０４とを備えている。直進歩行判定部１０３ｃおよび補正部１０４は、ＣＰＵ１０がプログラム１１０に従って動作することにより実現される機能ブロックである。
【０１８６】
直進歩行判定部１０３ｃは、ジャイロセンサ１４により取得された角速度情報１４０および加速度センサ１５により取得された加速度情報１５０を、予め与えられる歩行動作におけるパターンと比較することにより、ユーザが歩行動作における直進状態か否かを判定する。
【０１８７】
直進歩行判定部１０３ｃは、第１の実施の形態における歩行周期演算部１００と同様に、角速度情報１４０および加速度情報１５０を、ユーザの歩行動作を示す座標系（Ｗ軸、Ｓ軸およびＶ軸）に変換して、角速度ωｗ，ωｓ，ωｖ、および、加速度αｗ，αｓ，αｖを求める機能を有している。また、これらの値に応じて、歩行周期を演算する機能も有している。
【０１８８】
ここで、加速度αｗ，αｖ、および、角速度ωｓは、歩行運動における前進動作が反映される。また、角速度ωｗ，ωｖ、および、加速度αｓは、歩行運動における旋回動作が反映される。また、すでに図１２に示したように、加速度αｗ，αｖは１歩単位の周期をもつものの、角速度ωｖは１複歩単位の周期をもっている。
【０１８９】
したがって、予め歩行状態が既知の、歩行動作におけるパターンについて１複歩単位で特徴点を抽出し、機械学習器（例えば、サポートベクターマシンやニューラルネット）に入力して学習させることによって、直進歩行判定部１０３ｃの機能を実現することができる。すなわち、第４の実施の形態においても、歩行周期は１複歩周期となる。
【０１９０】
なお、学習させる歩行状態のパターンは、直進、右旋回、左旋回などが想定される。また、学習させる歩行状態のパターンには、保持状態の違いによるパターンも想定される。例えば、携帯端末装置１ｃを、手に持っている状態（手振り状態）、表示部１３を閲覧している状態、ポケット等に入れている状態、通話している状態などが想定される。
【０１９１】
図２０は、第４の実施の形態における携帯端末装置１ｃによって実行される補正処理を示す流れ図である。
【０１９２】
なお、図２０に示す処理が開始されるまでに、携帯端末装置１ｃでは、携帯端末装置１ｃを所持したユーザの既知の歩行動作におけるパターンの特徴点を学習させる工程と、所定の初期設定とがすでに実行されているものとする。初期設定には、ジャイロセンサ１４および加速度センサ１５による測定タイミングを計測するための測定タイマにＴｓをセットして起動する処理と、ジャイロセンサ１４のバイアス値（ｂｖ）の初期値を設定する処理と、携帯端末装置１の姿勢（処理開始時の姿勢）を決定する処理とが含まれる。携帯端末装置１の初期姿勢を決定する手法としては、ユーザが携帯端末装置１ｃの操作部１２を操作して姿勢を入力する方法や、図示しない磁気センサの出力により姿勢を決定する方法などが想定される。
【０１９３】
初期設定が終了すると、携帯端末装置１ｃは、測定タイマと、１複歩時間が経過したか否かとを監視する状態となる（ステップＳ１０１，Ｓ１０５）。この状態を、以下の説明では、「監視状態」と称する。ただし、監視状態において、携帯端末装置１は、ステップＳ１０１，Ｓ１０５以外の他の処理を実行していてもよい。
【０１９４】
監視状態において、測定タイマが０となり、測定タイミングが到来すると、ＣＰＵ１０は、ステップＳ１０１においてＹｅｓと判定し、測定タイマをＴｓにリセットしつつ（ステップＳ１０２）、ジャイロセンサ１４および加速度センサ１５の値をそれぞれ読み出す。これによって、携帯端末装置１ｃの動きに関する角速度および加速度の測定が実行される（ステップＳ１０３）。
【０１９５】
なお、ステップＳ１０３において読み出されるジャイロセンサ１４の値は、未だバイアス値ｂｖの補正（後述）がされていなければ、バイアス値ｂｖの初期値に基づいて取得される。一方で、バイアス値ｂｖの補正がされた後は、補正後のバイアス値ｂｖの値により補正された値として取得される。すなわち、補正部１０４は、ジャイロセンサ１４のバイアス値ｂｖを補正することにより、角速度情報１４０を補正する。
【０１９６】
次に、ＣＰＵ１０は、読み出したジャイロセンサ１４の値および加速度センサ１５の値とに基づいて、角速度情報１４０および加速度情報１５０を作成し、記憶装置１１に記録する（ステップＳ１０４）。なお、本実施の形態では、角速度情報１４０および加速度情報１５０は、過去の記録に上書きされるのではなく、履歴として取得順に記録されていくものとする。
【０１９７】
このように、携帯端末装置１ｃは、測定タイマの値が０となるごとに、ステップＳ１０１においてＹｅｓと判定し、ステップＳ１０２ないしＳ１０４の処理を実行する。したがって、携帯端末装置１ｃでは、測定周期Ｔｓごとに角速度および加速度が測定される。なお、ステップＳ１０４を実行すると、携帯端末装置１ｃは、再度、監視状態に戻る。
【０１９８】
監視状態において、１複歩時間が経過している場合（ステップＳ１０５においてＹｅｓ。）、直進歩行判定部１０３ｃは、ユーザの歩行状態が直進状態か否かを判定する（ステップＳ１０６）。第４の実施の形態において、ステップＳ１０５における判定は、１複歩時間が経過するたびにＹｅｓとなる。したがって、携帯端末装置１ｃ（直進歩行判定部１０３ｃ）は、歩行周期ごとに、その間に測定された角速度情報１４０および加速度情報１５０に基づいてパターン認識処理を行い、その間のユーザの歩行状態が直進状態であったか否かを判定する。
【０１９９】
ユーザの歩行状態が直進状態の場合（ステップＳ１０６においてＹｅｓ。）、補正部１０４は、ジャイロセンサ１４のバイアス値を補正する（ステップＳ１０７）。ステップＳ１０７において、補正部１０４がジャイロセンサ１４のバイアス値を補正する原理は、第１の実施の形態におけるステップＳ１５と同様であるため、説明を省略する。
【０２００】
なお、携帯端末装置１ｃにおいても、測位処理や経路記録処理を実行するために進行方向を記録している場合には、直進歩行判定部１０３ｃによってユーザの歩行動作が直進状態であると判定されている間は、角速度情報１４０や加速度情報１５０を参照せずに、進行方向の変化量を「０」として記録することが好ましい。
【０２０１】
一方、ステップＳ１０６においてＮｏの場合（ユーザの歩行動作が直進状態でない場合）、補正部１０４は、ステップＳ１０７をスキップし、監視状態に戻る。したがって、この場合、補正部１０４は、ジャイロセンサ１４のバイアス値ｂｖの補正は行わない。したがって、測位処理や経路記録処理を実行するために進行方向を記録している場合には、角速度情報１４０や加速度情報１５０に基づいて進行方向を記録することになる。ただし、ステップＳ１５と同様の演算により、ΔＷを求め、これを加算することにより進行方向を演算してもよい。
【０２０２】
以上のように、第４の実施の形態における携帯端末装置１ｃは、携帯端末装置１ｃの移動における角速度を測定して角速度情報１４０を取得するジャイロセンサ１４と、携帯端末装置１ｃの移動における加速度を測定して加速度情報１５０を取得する加速度センサ１５と、ジャイロセンサ１４により取得された角速度情報１４０および加速度センサ１５により取得された加速度情報１５０を、予め与えられる歩行動作におけるパターンと比較することにより、ユーザが歩行動作における直進状態か否かを判定する直進歩行判定部１０３ｃと、直進歩行判定部１０３ｃによりユーザが歩行状態における直進状態であると判定されたことに応じて、ジャイロセンサ１４により取得される角速度情報１４０を補正する補正部１０４とを備える。これにより、ユーザが歩行動作における直進状態であるか否かを精度よく判定することができる。
【０２０３】
また、直進歩行判定部１０３ｃは、ユーザの歩行動作における歩行周期に応じて、パターンとの比較を行う。すなわち、連続的な動作として構成されている歩行動作を、歩行周期に区切って注目することによって効率的に特徴点を抽出することができるとともに、比較的短時間の動作によってパターン認識を実現することができる。したがって、比較的長い時間の連続した動作である歩行動作に対して、パターン認識を導入することが可能であるとともに、直進状態を検出する精度が向上する。また、第１ないし第３の実施の形態のように、カメラ１６，１６ｂを設ける必要がない。
【０２０４】
また、歩行周期は、ユーザの歩行動作において、ユーザが左右の足をそれぞれ１歩ずつ進める時間（１複歩時間）に応じて決定されている。これにより、角速度ωｖの周期と一致させることができるので、１歩時間周期を歩行周期とする場合に比べて精度が向上する。
【０２０５】
＜５．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【０２０６】
例えば、上記実施の形態に示した各工程は、あくまでも例示であって、上記に示した順序や内容に限定されるものではない。すなわち、同様の効果が得られるならば、適宜、順序や内容が変更されてもよい。
【０２０７】
また、上記実施の形態に示した機能ブロック（例えば、歩行周期演算部１００やベクトル演算部１０１など）は、ＣＰＵ１０がプログラム１１０に従って動作することにより、ソフトウェア的に実現されると説明した。しかし、これらの機能ブロックの一部または全部を専用の論理回路で構成し、ハードウェア的に実現してもよい。
【０２０８】
また、上記実施の形態では、磁気センサを用いていなかったが、相対的な測位を実現するための自蔵センサとして、磁気センサを設けてもよい。
【符号の説明】
【０２０９】
１，１ａ，１ｂ，１ｃ  携帯端末装置
１０  ＣＰＵ
１００，１００ａ，１００ｂ  歩行周期演算部
１０１，１０１ａ，１０１ｂ  ベクトル演算部
１０２  相関判定部
１０３，１０３ｃ  直進歩行判定部
１０４  補正部
１１  記憶装置
１１０  プログラム
１１１  動きベクトル情報
１１２  相関判定情報
１２  操作部
１３  表示部
１４  ジャイロセンサ
１４０  角速度情報
１５  加速度センサ
１５０  加速度情報
１６，１６ｂ  カメラ
１６０  画像情報
１６１，１６２，１６３，１６４  ブロック
１６１ａ  サブブロック
【図１】
2014196941.tif 000003
【図２】
2014196941.tif 000004
【図３】
2014196941.tif 000005
【図４】
2014196941.tif 000006
【図５】
2014196941.tif 000007
【図６】
2014196941.tif 000008
【図７】
2014196941.tif 000009
【図８】
2014196941.tif 000010
【図９】
2014196941.tif 000011
【図１０】
2014196941.tif 000012
【図１１】
2014196941.tif 000013
【図１２】
2014196941.tif 000014
【図１３】
2014196941.tif 000015
【図１４】
2014196941.tif 000016
【図１５】
2014196941.tif 000017
【図１６】
2014196941.tif 000018
【図１７】
2014196941.tif 000019
【図１８】
2014196941.tif 000020
【図１９】
2014196941.tif 000021
【図２０】
2014196941.tif 000022