(57)【要約】【課題】単純な演算処理により、情報処理装置を携帯するユーザの動作状態を判定する。【解決手段】情報処理装置を、３次元空間の加速度を検出する加速度センサと、加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、重力成分ベクトルの信号に時間遅延を付与する時間遅延部と、ローパスフィルタにより抽出された重力成分ベクトルの信号と時間遅延部により時間遅延を付与された重力成分ベクトルの信号との内積値を算出する内積値算出部と、所定の動作における内積値の時間変化を示すテンプレートをあらかじめ記憶するテンプレート記憶部と、テンプレートを用いて、所定時間にわたって内積値算出部により算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、所定の動作が発生したか否かを判定する動作判定部とを備える構成とする。【選択図】図１
2015081834.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間の加速度を検出する加速度センサと、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、
前記重力成分ベクトルの信号に時間遅延を付与する時間遅延部と、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記時間遅延部により時間遅延を付与された重力成分ベクトルの信号との内積値を算出する内積値算出部と、
所定の動作における前記内積値の時間変化を示すテンプレートをあらかじめ記憶するテンプレート記憶部と、
前記テンプレートを用いて、所定時間にわたって前記内積値算出部により算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、前記所定の動作が発生したか否かを判定する動作判定部と、
を備える情報処理装置。
【請求項２】
前記動作判定部は、前記テンプレートマッチングにおいて、前記所定時間にわたって前記内積値算出部により算出された内積値と前記テンプレートが示す内積値との差分を積算した値を一致度として算出し、前記算出した一致度が所定の閾値未満であれば前記所定の動作が発生したと判定し、前記算出した一致度が所定の閾値以上であれば前記所定の動作が発生していないと判定する、請求項１に記載の情報処理装置。
【請求項３】
前記動作判定部は、前記内積値算出部により算出された内積値を所定の時間間隔で時系列に記憶し、前記内積値算出部により算出された内積値を新たに記憶したときに、前記新たに記憶した内積値を含む内積値の時間変化に対して前記一致度を算出する、請求項２に記載の情報処理装置。
【請求項４】
３次元空間の加速度を検出するステップと、
前記加速度から重力成分ベクトルの信号を抽出するステップと、
前記重力成分ベクトルの信号に時間遅延を付与するステップと、
前記抽出された重力成分ベクトルの信号と前記時間遅延を付与された重力成分ベクトルの信号との内積値を算出するステップと、
所定の動作における前記内積値の時間変化を示すテンプレートを用いて、所定時間にわたって前記算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、前記所定の動作が発生したか否かを判定するステップと、
を有する情報処理方法。
【請求項５】
３次元空間の加速度を検出するステップと、
前記加速度から重力成分ベクトルの信号を抽出するステップと、
前記重力成分ベクトルの信号に時間遅延を付与するステップと、
前記抽出された重力成分ベクトルの信号と前記時間遅延を付与された重力成分ベクトルの信号との内積値を算出するステップと、
所定の動作における前記内積値の時間変化を示すテンプレートを用いて、所定時間にわたって前記算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、前記所定の動作が発生したか否かを判定するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件開示の発明は、加速度センサのセンサ出力に対する情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年普及している携帯電話端末等の情報処理装置には、その高機能化に伴い、さまざまなセンサが搭載されている。例えば、加速度センサを有する装置は、センサの出力値に基づいて、装置の現在の状態を判定する。
【０００３】
特許文献１〜３では、加速度センサの出力値を利用して、情報処理装置を携帯するユーザの歩行状態を判定する方法等が提案されている。これらの文献では、加速度センサの出力値を用いて情報処理装置の上下方向（鉛直方向もしくは重力方向）の加速度情報を算出したり、２つの時系列データを比較して類似度を評価したりする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２５７３９５号公報
【特許文献２】特開２０１２−６３２０８号公報
【特許文献３】特開２０１２−２４７９９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、情報処理装置を携帯するユーザの動作状態を判定するには、上下方向の加速度の大きさに加えて、左右方向の加速度の大きさや前後方向の加速度の大きさも検出されることが望ましい。
【０００６】
ところで、携帯電話端末等の情報処理装置には、ユーザの操作を処理したり通信を実行したりするためのメインマイコンと、加速度センサ等からの出力情報を処理するサブマイコンを備えるものがある。メインマイコンは、装置全体の制御の他、例えばゲームやブラウザ等のユーザが実行するアプリケーションも動作させるため高性能である。一般に、マイコンの性能と消費電力は比例関係にあると考えてよい。そして、情報処理装置において駆動時間（電池の持続時間）は重要な要素の１つである。情報処理装置における消費電力を抑えれば、情報処理装置の駆動時間を長くすることができる。そこで、メインマイコンはできるだけ休止状態にされる。そのため、通常は、メインマイコンで加速度センサの出力を長時間モニタリングしない構成が採用される。
【０００７】
そこで、情報処理装置のサブマイコンが使用される。一般に、サブマイコンの消費電力はメインマイコンの１／２００〜１／１０００程度である。すなわち、サブマイコンは長時間動作状態としても、電力浪費の観点からは支障がない。ただし、サブマイコンの性能は非力であり、整数の四則演算とメモリ操作といった単純な処理であれば実行できる。サブマイコンを用いてユーザの行動評価を行うためには、上記のような単純な演算に基づいて処理を行う。
【０００８】
例えば、加速度センサの座標系で出力された値を、上下左右前後のいわゆるグローバル座標系における値に変換する場合、回転行列を利用した演算を行うことでそのような変換を行うことができる。このような変換は座標変換と呼ばれ、通常は三角関数を用いて行う。しかし、上述のように、整数の四則演算とメモリ操作程度の処理が可能なサブマイコン
では、処理負荷の高い三角関数の演算等を行うことはできない。
【０００９】
本件開示の技術は、上記に鑑みてなされたものであり、その目的とするところは、単純な演算処理により、情報処理装置を携帯するユーザの動作状態を判定することである。
【課題を解決するための手段】
【００１０】
本件開示の情報処理装置は、１つの側面では、３次元空間の加速度を検出する加速度センサと、加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、重力成分ベクトルの信号に時間遅延を付与する時間遅延部と、ローパスフィルタにより抽出された重力成分ベクトルの信号と時間遅延部により時間遅延を付与された重力成分ベクトルの信号との内積値を算出する内積値算出部と、所定の動作における内積値の時間変化を示すテンプレートをあらかじめ記憶するテンプレート記憶部と、テンプレートを用いて、所定時間にわたって内積値算出部により算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、所定の動作が発生したか否かを判定する動作判定部とを備える。
【発明の効果】
【００１１】
本件開示の技術によれば、単純な演算処理により、情報処理装置を携帯するユーザの動作状態を判定することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、一実施形態における携帯電話端末のハードウェア構成を示す概略構成図である。
【図２】図２は、一実施形態における携帯電話端末の機能部を示す機能構成図である。
【図３】図３は、一実施形態におけるサブマイコンの概略構成図である。
【図４Ａ】図４Ａは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図４Ｂ】図４Ｂは、一実施形態における加速度センサのセンサ出力のベクトルを示す図である。
【図５Ａ】図５Ａは、一実施形態におけるユーザの歩行状態を示す模式図である。
【図５Ｂ】図５Ｂは、一実施形態におけるユーザの歩行状態を示す模式図である。
【図６Ａ】図６Ａは、一実施形態におけるローパスフィルタの動作を示すシーケンス線図である。
【図６Ｂ】図６Ｂは、一実施形態におけるローパスフィルタにおいて実行される処理のフローチャートの一部を示す図である。
【図７Ａ】図７Ａは、一実施形態における遅延回路の動作を示すシーケンス線図である。
【図７Ｂ】図７Ｂは、一実施形態における遅延回路において実行される処理のフローチャートの一部を示す図である。
【図８】図８は、一実施形態における相関演算処理部の動作を示すシーケンス線図である。
【図９】図９は、一実施形態における相関演算処理部のバッファの構成を示す模式図である。
【図１０】図１０は、一実施形態における動作判定用のテンプレートの構成例を示す表である。
【図１１】図１１は、一実施形態における相関演算処理部において実行される処理のフローチャートの一部を示す図である。
【図１２】図１２は、一実施形態における相関演算処理部において実行される処理を説明するグラフである。
【図１３】図１３は、一実施形態における相関演算処理部において実行される処理のフローチャートの一部を示す図である。
【発明を実施するための形態】
【００１３】
以下、一実施形態における携帯電話端末及びその制御方法について、図面を参照しながら説明する。
【００１４】
図１に示すように、本実施形態における携帯電話端末１０は、アンテナ１０１、ＲＦ（Radio Frequency）部１０２、メインマイコン１０３、サブマイコン１０４、ボタン１０
５、ディスプレイ１０６、タッチパネル１０７、ＲＯＭ（Read Only Memory）１０８、ＲＡＭ（Random-Access Memory）１０９、加速度センサ１１０を備える。なお、携帯電話端末１０が、情報処理装置の一例に相当する。ただし、本実施形態に開示された技術は、携帯電話端末１０に限定されず、情報処理装置一般に適用できる。本実施形態において、携帯電話端末１０はユーザが携帯している。
【００１５】
携帯電話端末１０は、アンテナ１０１を経由して基地局等の外部の無線送受信装置（図示せず）と無線通信を行う。ＲＦ部１０２は、外部の無線送受信装置との送受信において、送信時にベースバンド信号を周波数帯（ＲＦ帯）に変調し、受信時にこれらの周波数帯の信号をベースバンド信号に復調する。
【００１６】
メインマイコン１０３は、ＲＯＭ１０８に記憶された制御プログラム１０８ａを実行して、携帯電話端末１０が有する各種機能を実現する。サブマイコン１０４は、サブマイコン１０４に組み込まれている加速度センサ出力処理プログラム１０４ａを実行して、加速度センサ１１０のセンサ出力を演算処理し、携帯電話端末１０のユーザの座標系、すなわちグローバル座標系の加速度に変換する。さらに、サブマイコン１０４は、動作状態判定プログラム１０４ｂを実行して、携帯電話端末１０のユーザの動作状態の判定結果を生成する。なお、本実施形態における種々の演算処理を１以上のサブマイコンを用いて実行する構成としてもよい。また、加速度センサ出力処理プログラム１０４ａ及び動作状態判定プログラム１０４ｂを１つのプログラムとして構成してもよい。
【００１７】
ボタン１０５は、ユーザが携帯電話端末１０の操作に使用するハードウェアキーである。ディスプレイ１０６は、携帯電話端末１０において実行される各種処理の結果等の種々の情報を表示する。また、ディスプレイ１０６は、メインマイコン１０３やサブマイコン１０４により実行される種々の処理の処理結果や処理状態、コンテンツ等を表示する。タッチパネル１０７は、ユーザのタッチ操作等を受け付ける。タッチパネル１０７はディスプレイ１０６と重なるように配置されている。ユーザは、タッチパネル１０７を指等でタッチ操作等することで、ディスプレイ１０６に表示されたアイコン等の表示項目の選択等を行う。
【００１８】
ＲＯＭ１０８は、携帯電話端末１０において実行される各種プログラムや後述する動作判定用のテンプレートのデータを格納する。ＲＯＭ１０８が、テンプレート記憶部の一例である。ＲＡＭ１０９は、メインマイコン１０３やサブマイコン１０４が種々の処理を実行する際に一時的な記憶領域として使用される。すなわち、ＲＡＭ１０９はワークエリアとして用いられ、各種プログラムや端末番号等の携帯電話端末の固有情報が格納される。また、ＲＡＭ１０９には、ユーザが入力した設定やプログラムの情報、ディスプレイ１０６等を介してユーザに提供されるデータ等が格納される。
【００１９】
メインマイコン１０３は、高速演算処理を実行することができるが、消費電力が大きい。したがって、長時間動作状態に保つことは好ましくないため、メインマイコン１０３の動作時間には一定の制限が課せられ、一時的に休止状態に移行される。ところで、ユーザ
の動作状態を判定する場合、ユーザの動作データを長時間にわたって取得し、取得した動作データに基づいて動作状態を判定する。
【００２０】
そこで、本実施形態では、サブマイコン１０４は、少なくともユーザの動作が発生している間は動作状態に保たれ、加速度センサ１１０のセンサ出力を受け取り、センサ出力を演算処理してグローバル座標系の加速度データを生成する。サブマイコン１０４は、四則演算等の単純な演算処理やＲＯＭ１０８やＲＡＭ１０９等のメモリへのアクセス処理等の処理負荷が低い処理を実行する。しかし、サブマイコン１０４は、消費電力が小さいので、長時間にわたり、加速度センサ出力処理プログラム１０４ａや動作状態判定プログラム１０４ｂを実行することができる。
【００２１】
したがって、メインマイコン１０３が動作状態となることは抑制され、サブマイコン１０４がユーザの動作状態の判定結果に基づいて、ユーザにわかりやすい値にセンサ出力を変換したり統計情報を作成したりして、生成した情報をディスプレイ１０６に表示する。なお、生成した情報は、アンテナ１０１を介して外部に送信してもよい。
【００２２】
本実施形態では、携帯電話端末１０のＲＯＭ１０８に記憶されているアプリケーション等が、サブマイコン１０４によって実行される。このようなアプリケーション等の実行により、図２に示すように、携帯電話端末１０のサブマイコン１０４は、時間遅延部２０１、内積値算出部２０２、動作判定部２０３として機能する。ただし、時間遅延部２０１、内積値算出部２０２、動作判定部２０３のいずれか１つ以上が、ハードウェア回路であってもよい。
【００２３】
次に、本実施形態において、携帯電話端末１０のサブマイコン１０４において実行される、ユーザが行った所定の動作を検知するための構成、アルゴリズム及び処理について説明する。図３に、本実施形態における、サブマイコン１０４の構成の一部とサブマイコン１０４が実行するアルゴリズムの概略を示す。図３に示すように、サブマイコン１０４は、ローパスフィルタ（ＬＰＦ）１０４ｃ、遅延回路１０４ｄ、内積演算処理部１０４ｅ、相関演算処理部１０４ｆを有する。なお、遅延回路１０４ｄが時間遅延部の一例である。また、内積演算処理部１０４ｅが、内積値算出部の一例である。さらに、相関演算処理部１０４ｆが、動作判定部の一例である。
【００２４】
本実施形態では、加速度センサ１１０のセンサ出力Ａに対してＬＰＦ１０４ｃを通すことで重力方向ベクトルＧが検出される。一方、ＬＰＦ１０４ｃは遅延回路１０４ｄに接続されている。遅延回路１０４ｄは、入力される信号を所定時間後に出力するので、遅延回路１０４ｄから過去の重力方向ベクトルＧ’が出力される。そして、内積演算処理部１０４ｅは、ＬＰＦ１０４ｃにより検出された重力方向ベクトルＧと遅延回路１０４ｄから出力された重力方向ベクトルＧ’との内積を演算する。内積演算処理部１０４ｅの演算により得られた内積値ｐは、相関演算処理部１０４ｆに送られる。相関演算処理部１０４ｆは、ＲＯＭ１０８に格納されたテンプレートを用いて、内積演算処理部１０４ｅから出力された内積値ｐに対する相関演算を行ってユーザの動作判定を行う。
【００２５】
ここで、加速度センサ１１０のセンサ出力Ａを、携帯電話端末１０を携帯するユーザの座標系、すなわちいわゆるグローバル座標系における加速度に変換する処理について、本実施形態の利点を説明する。
【００２６】
図４Ａ及び図４Ｂは、携帯電話端末を携帯するユーザの姿勢が不明な場合に、加速度センサのセンサ出力から、ユーザの座標系における上下方向（鉛直方向）の加速度情報を取り出す方法の一例を示す図である。ここでは、ユーザが歩行中である場合を想定している。図４Ａに示すように、互いに直交するＸ軸、Ｙ軸、Ｚ軸が携帯電話端末のローカル座標
系を構成する。図４Ａにおいて、加速度センサのセンサ出力ＡはＡ＝（ｘ，ｙ，ｚ）Ｔで与えられる。なお、Ｔは転置行列を意味する。そして、図４Ａに示すように、加速度センサのセンサ出力Ａは、ユーザの歩行に伴う振動Ｓと重力加速度Ｇの合成と考えることができる。
【００２７】
ここで、人間の歩行について概説する。図５Ａ及び図５Ｂは、人間の歩行における体幹と両足の動きを模式的に表す図である。図５Ａは、人間の歩行を真上（鉛直上方）から見た図であり、図５Ｂは、人間の歩行を真横（水平方向）から見た図である。体幹２０は、人間の股関節から頭部までの部分に対応し、脚２０Ｌ、２０Ｒはそれぞれ左脚と右脚に対応する。図５Ａ及び図５Ｂに示すように、人間は、歩行中、左右の脚２０Ｌ、２０Ｒが交互に地面に着き、体幹２０は上下、左右、前後の各方向にそれぞれ揺れる。また、図５Ａ及び図５Ｂに示すように、体幹２０の上下動の周期は、左右の脚２０Ｌ、２０Ｒの一方が地面から離れて再び着き、さらに他方が地面から離れて再び着くまでの期間と一致する。一方、体幹２０の左右の揺れについては、左脚２０Ｌが地面に着いている間は人間の左方向に揺れ、右脚２０Ｒが地面に着いている間は人間の右方向に揺れる。したがって、人間の歩行時における体幹２０の左右の揺れの周期は、上下動の周期の２倍の周期、すなわち１／２の周波数である。
【００２８】
また、人間は、歩行中、左脚２０Ｌまたは右脚２０Ｒを地面に着地させる瞬間が最も下方向の加速度が大きくなる。そして、左脚２０Ｌまたは右脚２０Ｒの着地後、体幹２０を上昇させる時に上方向の加速度が発生し、体幹２０が到達する最上点で当該上方向の加速度が最小になり、以後は代わりに下方向の加速度が発生する。また、左右方向の加速度については、左脚２０Ｌを着地させると左方向の加速度が発生し、右脚２０Ｒを着地させると右方向の加速度が発生する。
【００２９】
図４Ａ及び図４Ｂに戻ると、図５Ａ及び図５Ｂを用いて説明したように、ユーザの歩行に伴う振動Ｓは、所定の周期の繰り返し運動であると言える。したがって、加速度センサのセンサ出力Ａを、適切なカットオフ周波数のＬＰＦやハイパスフィルタ（ＨＰＦ）に通すと、センサ出力Ａを振動Ｓの振動成分ベクトルと重力加速度Ｇの重力成分ベクトルとに分離することができる。歩行に伴う上下方向の加速度は、振動Ｓの振動成分ベクトルにおける重力加速度Ｇの重力成分ベクトルと平行なベクトルＶで表せる。ベクトルＶの大きさをｖとし、振動Ｓの振動成分ベクトルと重力加速度Ｇの重力成分ベクトルのなす角をθとすると、ｖは以下の式で与えられる。
v = |S| cosθ ・・・（１）
【００３０】
ここで振動Ｓと重力加速度Ｇの内積について考える。内積は、ベクトルのｘ、ｙ、ｚ成分同士を乗算した後に、乗算した各成分の和を求めることで得られる。なお、振動Ｓの振動成分ベクトルと重力加速度Ｇの重力成分ベクトルの内積は、定義より以下の式で与えられる。
S + G = |S| |G| cosθ ・・・（２）
【００３１】
式（２）を式（１）に当てはめると、以下の式（３）が得られる。
v = S ・ G / |G| ・・・（３）
【００３２】
ここで重力加速度Ｇの大きさ｜Ｇ｜は、地球上ではほぼ一定である。すなわち、加速度センサのセンサ出力Ａに対して、ＬＰＦとＨＰＦを通し、各フィルタの出力の内積を取ることでユーザの歩行運動に伴う上方向の加速度に比例した数値と下方向の加速度に比例した数値とを得ることができる。なお、上記では、ユーザが歩行中であることを想定して説明した。しかし、ユーザが歩行以外の動作を行う場合も、上記のアルゴリズムを踏まえて、加速度センサのセンサ出力Ａに対して、ＬＰＦとＨＰＦを通すことで、振動成分ベクト
ルと重力成分ベクトルがそれぞれ得られる。
【００３３】
ところで、上記の方法では、加速度センサのセンサ出力をＨＰＦに通すことで、振動Ｓの振動成分ベクトルを算出する。ところが、人間の動作には、例えばお辞儀をしたり体を横にしたりするなど、体幹の回転運動が伴う動作が含まれる。このような動作においては、体幹の運動とともに加速度センサから見た重力方向の向きも大きく変化する。また、仮に、このような動作が発生した際に端末の位置が体幹の回転運動の回転中心にあると、端末の位置は回転中心から変化しないため、加速度センサでは回転運動に伴う振動成分を検出できない。
【００３４】
一方、このような動作に伴う回転運動を検出するために、端末に角速度センサを設け、角速度センサの出力を適当な座標変換を用いて、グローバル座標系における回転情報を取得する構成が考えられる。しかし、角速度センサは、コリオリ力を検出するために、内部で微細な動きを発生させているため、一般に加速度センサよりも大きな電力を必要とする。したがって、端末の消費電力の観点から言えば、ユーザの運動の解析に角速度センサを採用することは好ましくない。そこで、本実施形態では、以下に説明する構成を用いて、加速度センサのセンサ出力からユーザの各種動作を判定するために必要な回転運動の量を抽出する。これにより、本実施形態では、三角関数等の複雑な演算を用いず、四則演算を用いた単純な演算を行うことでユーザの動作判定を行うことができるため、演算に伴う消費電力を抑えることができる。
【００３５】
図６Ａ及び図６Ｂに、本実施形態におけるＬＰＦ１０４ｃの構成例及びＬＰＦ１０４ｃにおいて実行される処理を示す。図６Ａに示すように、ＬＰＦ１０４ｃでは、加速度センサ１１０のセンサ出力の値Ｘが、ｎ個のバッファＢＦ０〜ＢＦｎ−１に、加速度センサ１１０のサンプリングクロックに同期したクロックＣＬＫに同期して記憶される。なお、クロックＣＬＫが、本実施形態における動作判定処理の実行タイミングを定める所定の時間間隔の一例である。そして、加算器１０４ｇと入力値を１／ｎ倍する除算器１０４ｈとを用いた平均化処理により、連続するｎ個のセンサ値Ｘの平均値が算出される。すなわち、ＬＰＦ１０４ｃは、ｎ個のセンサ出力の値Ｘの平均を求める平均化処理を実行することにより実現できる。したがって、サブマイコン１０４は、加速度センサ出力処理プログラム１０４ａを実行する際に、センサ出力の値Ｘを逐一バッファに記憶し、直前のｎ個のセンサ出力の値を加算してｎで除算することで、ＬＰＦ１０４ｃの演算処理を行う。
【００３６】
図６Ｂに示すように、ＬＰＦ１０４ｃでは、値Ｘが入力された場合、当該入力が初回であるときに、Ｓ１０１〜Ｓ１０７を経て、各バッファが保持する値をＸとし、その合計値が算出されて、合計値を１／ｎ倍する処理が実行される。図中、Ｓ１０１〜Ｓ１１３において、「ｉｎｄｅｘ」は、各バッファに設定されたインデックスを示す。また、「ｂｕｆ［ｉｎｄｅｘ］」は、「ｉｎｄｅｘ」の値が示すインデックスを有するバッファが保持する入力値を示す。図中、その他の記号は、いわゆるＣ言語の規則に従う。なお、以下の他のフローチャートの説明でも同様である。値Ｘの入力が初回でない場合は、Ｓ１０８〜Ｓ１１３がクロック単位で繰り返し実行されることで、当該入力以降に順次入力される値を用いた平均化処理が実行される。除算器１０４ｈの出力は、遅延回路１０４ｄに送られる。
【００３７】
次に、図７Ａ及び図７Ｂに、本実施形態における遅延回路１０４ｄの構成例及び遅延回路１０４ｄにおいて実行される処理を示す。図７Ａに示すように、遅延回路１０４ｄはｍ個のバッファＢＦ０〜ＢＦｍ−１を有する。バッファの数は、遅延回路１０４ｄによる重力方向ベクトルＧの遅延時間に応じて適宜決定される。図７Ａに示すように、本実施形態では、ｍ個のバッファが連結されている。
【００３８】
図７Ｂに示すように、遅延回路１０４ｄでは、値Ｘが入力された場合、当該入力が初回であるときに、Ｓ２０１〜Ｓ２０６により各バッファが保持する値を０とする初期化が行われる。値Ｘの入力が初回でない場合は、クロックＣＬＫ単位でＳ２０７〜Ｓ２１１が繰り返し実行されることで、入力値Ｘは、インデックス０を有するバッファＢＦ０から、後段のバッファＢＦ１〜ＢＦｍ−１に順次渡されていく。また、インデックスＭ−１を有するバッファＢＦｍ−１から出力された値は、内積演算処理部１０４ｅに送られる。本実施形態では、バッファＢＦｍ−１から出力される値が過去の重力方向ベクトルＧ’である。
【００３９】
図３に示すように、内積演算処理部１０４ｅには、ＬＰＦ１０４ｃから出力される重力方向ベクトルＧと遅延回路１０４ｄから出力される過去の重力方向ベクトルＧ’が入力される。内積演算処理部１０４ｅは、以下の式（４）によりベクトルＧとベクトルＧ’の内積値ｐを求める。
p = G ・ G’ = |G| |G’| cosθ ・・・（４）
ここで、ベクトルＧとベクトルＧ’とのなす角をθとする。内積演算処理部１０４ｅから出力される内積値ｐは、相関演算処理部１０４ｆに送られる。
【００４０】
ところで、一例として人間の歩行時について、いわゆるピッチ軸、ロール軸、ヨー軸を設定して考えると、股関節はピッチ方向には大きく回転し、ロール方向の回転は、ピッチ方向の回転に比べて小さい。すなわち、加速度センサ１１０のセンサ出力からユーザの歩行を含む種々の動作状態を判定するにあたって、ピッチ軸まわりの回転を計算することができなくても、水平面に平行な軸周りの回転が計算できれば、この回転をほぼピッチ軸周りの回転とみなすことができる。
【００４１】
そして、ベクトルＧとベクトルＧ’も重力ベクトルであるため、その大きさはほぼ重力加速度である。これよりＧとＧ’の内積は、これら２つのベクトルのなす角の余弦を定数（重力加速度の二乗）倍したものであると考えてよい。さらに、余弦は０°から１８０°に至るまでは単調減少を示す。すなわち、逆関数を用いて式（４）を角度θの式に変換しなくても、以下に示すように、余弦の値自体を動作判定処理に用いることができる。したがって、本実施形態では、角速度センサを用いて三角関数等の演算を行うことなく、ユーザの動作判定を行うことができる。
【００４２】
図８に、本実施形態における相関演算処理部１０４ｆの構成の一部を示す。図８に示すように相関演算処理部１０４ｆは、複数のテンプレートデータ格納部１０４ｉ、１０４ｊ、１０４ｋを有する。テンプレートデータ格納部１０４ｉ、１０４ｊ、１０４ｋには、後述する動作判定用のテンプレートの値欄に格納された値が入力される。テンプレートデータ格納部１０４ｉ、１０４ｊ、１０４ｋに格納された値は、それぞれ異なる減算器１０４ｌ、１０４ｍ、１０４ｎに入力される。なお、図８にはテンプレートデータ格納部と減算器をそれぞれ３つ示すが、テンプレートデータ格納部と減算器の数は、後述する動作判定用のテンプレートのインデックス数に合わせて適宜変更することができる。
【００４３】
相関演算処理部１０４ｆは、ｋ個のバッファＢＦ０〜ＢＦｋ−１を有する。内積演算処理部１０４ｅから出力される内積値ｐ（図中「入力Ｘ」）は、バッファＢＦ０に格納され、次の内積値が相関演算処理部１０４ｆに入力されると、バッファＢＦ０に格納されている値は、後段のバッファＢＦ１に渡される。このように、内積値が相関演算処理部１０４ｆに入力される度に、各バッファに格納されている値は後段のバッファに順次渡される。なお、バッファＢＦｋ−１に格納された値は、次にバッファＢＦｋ−１に入力される値で更新される。
【００４４】
図９及び図１０を参照しながら、本実施形態における相関演算処理部１０４ｆの動作判定処理の例について説明する。図９に、相関演算処理部１０４ｆのバッファＢＦ０〜ＢＦ
ｋ−１に格納された内積値ｐの例を示す。内積演算処理部１０４ｅから出力される内積値ｐは、小さいインデックスの値を有するバッファから順次格納されていく。図９の場合、内積演算処理部１０４ｅから内積値ｐが順番に３、２、５、５と出力され、相関演算処理部１０４ｆにおいてインデックスがｉｎｄｅｘ０であるバッファから順次格納されている。なお、インデックスがｉｎｄｅｘＫ−１であるバッファに内積値ｐが格納された場合、次に相関演算処理部１０４ｆに入力される内積値ｐは、インデックスがｉｎｄｅｘ０であるバッファに戻って格納される。
【００４５】
図１０に、動作判定用のテンプレートのデータ構造例を示す。図１０において、「サンプリング用インデックス」及び「時間（ｔ）」の各値は、後述するように、バッファから値を取得する減算器を指定するために用いられる。また、「値（ｄ）」は、テンプレートデータ格納部に格納される値である。「サンプリング用インデックス」、「時間（ｔ）」、「値（ｄ）」の各値は組み合わせて使用される。すなわち、「サンプリング用インデックス」及び「時間（ｔ）」により指定された減算器に対して、「値（ｄ）」の値が入力される。具体例は、後述のフローチャートを説明する際に示す。
【００４６】
図１１は、本実施形態における相関演算処理部１０４ｆにおいて実行される動作判定処理のフローチャートを示す。相関演算処理部１０４ｆでは、値Ｘが入力された場合、当該入力が初回であるときに、Ｓ３０１〜Ｓ３０６により各バッファが保持する値を０とする初期化が行われる。値Ｘの入力が初回でない場合は、クロックＣＬＫ単位でＳ３０７〜Ｓ３１６が繰り返し実行されることで、動作判定用のテンプレートとの一致度が算出される。
【００４７】
ここで、動作判定用のテンプレートとの一致度とは、過去の所定の時間範囲において相関演算処理部１０４ｆに入力された内積値ｐの変化と動作判定用のテンプレートが示す値の変化との一致の度合い示す指標である。ここで、過去の所定の時間範囲は、使用する動作判定用のテンプレートにおいて値が変化する時間範囲によって決まる。
【００４８】
Ｓ３０７では、現在指定されているインデックスに対応するバッファに値Ｘが格納される。ここで、現在指定されているインデックスとは、値Ｘの入力が初回である場合、すなわちいずれのバッファにも値が格納されていない場合、Ｓ３０１〜Ｓ３０６によって各バッファの値が初期化されて「ｉｎｄｅｘ＝０」の処理が実行されるため、ｉｎｄｅｘ０である。また、値Ｘの入力が初回でない場合、すなわち既にバッファに値が格納されている場合、現在指定されているインデックスとは、Ｓ３１４によってインクリメントされたインデックスである。次いで、処理はＳ３０８に進む。
【００４９】
Ｓ３０８及びＳ３０９では、一致度ＣＯＲの値と変数ｊの値がそれぞれ０とされる。ここで、変数ｊは、図１０のサンプリング用インデックスの値である。次いで、処理はＳ３１０に進む。Ｓ３１０〜Ｓ３１３では、動作判定用のテンプレートのサンプリング用インデックスの値によって定まる時間に入力されたバッファの値と、動作判定用のテンプレートの値との絶対値の差分を順次算出する。まず、Ｓ３１１では、現在のｉｎｄｅｘの値により特定されるバッファを起点として、サンプリング用インデックスの値と組になっている時間（ｔ）だけ遡った時間に入力されたバッファの位置（ｉ）が決まる。Ｓ３１１に示す式によりｉの値が算出されたら、処理はＳ３１２に進む。Ｓ３１２では、動作判定用のテンプレートにおいてサンプリング用インデックスの値と組になっている値（ｄ）と、Ｓ３１１によって決まる位置のバッファが有する値との差分を一致度ＣＯＲとして積算する。
【００５０】
本実施形態では、図１０に示すように、動作判定用のテンプレートは、０〜Ｍ−１のＭ個のサンプリング用インデックスを有する。したがって、Ｓ３１０〜Ｓ３１３の処理がＭ
回繰り返された後、処理はＳ３１４に進む。Ｓ３１４〜Ｓ３１６では、相関演算処理部１０４ｆに入力された内積値ｐが右端のバッファ（インデックスはＫ−１。図９参照）に格納された場合、次に入力される内積値ｐが、左端のバッファ（インデックスは０。図９参照）に格納されるようにｉｎｄｅｘの値を変更する。
【００５１】
一例として、図９及び図１０に示す場合において、インデックスがｉｎｄｅｘ４であるバッファに格納された値「５」が最新の内積ｐの入力値であるとする。この場合、Ｓ３１０〜Ｓ３１３の処理により、最初に、動作判定用のテンプレートにおけるサンプリング用インデックスの値と時間（ｔ）と値（ｄ）の組「０、０、０」を用いて一致度が算出される。時間（ｔ）の値は「０」であるため、Ｓ３１１により決まるバッファは、インデックスがｉｎｄｅｘ４のバッファである。さらに、値（ｄ）の値は０であるため、Ｓ３１２により算出される一致度ＣＯＲはＣＯＲ＝｜０−０｜＝０である。
【００５２】
次にＳ３１３、Ｓ３１０を経て、ｊが１だけインクリメントされて再度Ｓ３１１、Ｓ３１２が実行される場合、サンプリング用インデックスの値と時間（ｔ）と値（ｄ）の組「１、３、１０」を用いて一致度が算出される。時間（ｔ）の値は「３」Ｓ３１１により決まるバッファは、インデックスがｉｎｄｅｘ１のバッファである。さらに、値（ｄ）の値は「１０」であるため、Ｓ３１２により算出される一致度ＣＯＲは、前回算出されたＣＯＲは上記の通り０であるから、ＣＯＲ＝０＋｜５−１０｜＝５である。このように、サンプリング用インデックスの値と時間（ｔ）と値（ｄ）の各組の値を用いて、一致度ＣＯＲが積算される。このように、一致度ＣＯＲが小さくなるほど、加速度センサ１１０のセンサ出力から算出される内積値の時間変化が、動作判定用のテンプレートが示す内積値の時間変化に近づく。
【００５３】
図１２は、本実施形態における上記の一致度を算出する処理を模式的に示す図である。図１２に示すように、判定対象の動作について所定の時間範囲における内積値の変化が曲線Ｃで与えられるとする。そして、曲線Ｃにおいて、時間軸上のＫ個のサンプリング位置を定める。サンプリング位置に対して現在の時間から近い順にサンプリング用インデックスの値を０から順次割り当てる。また、各サンプリング位置における現在の時間との時間差を「時間（ｔ）」とし、曲線Ｃの取る内積値を「値（ｄ）」とする。これら、サンプリング用インデックスの値と「時間（ｔ）」の値と「値（ｄ）」の値の組をまとめることで動作判定用のテンプレートが作成される。そして、上記のフローチャートの処理を実行することで、現在から過去に遡って、動作判定用のテンプレートの示す内積値と実際に相関演算処理部１０４ｆに入力される値との差分を算出することで、これらの値の相関関係を示す一致度ＣＯＲが算出される。
【００５４】
図１３に、本実施形態において、相関演算処理部１０４ｆにより実行される動作判定処理のフローチャートを示す。本フローチャートは、図１１に示すフローチャートによりＳ３１５又はＳ３１６を経て一致度ＣＯＲの積算が完了する度に開始される。図１３に示すように、Ｓ４０１では、図１１に示すフローチャートにより積算された一致度ＣＯＲの値が所定の閾値Ｔｈ以下であるか否かが判定される。本実施形態で使用される動作判定用のテンプレートは、一例として携帯電話端末１０を携帯するユーザが腰を屈めたか否かを判定するためのテンプレートである。したがって、一致度ＣＯＲの値が所定の閾値Ｔｈ以下である場合（Ｓ４０１：Ｙ）、ユーザは腰を屈めたと判定される。また、一致度ＣＯＲの値が所定の閾値Ｔｈを超える場合（Ｓ４０１：Ｎ）、ユーザは腰を屈める動作を行っていないと判定される。
【００５５】
図１３に示すフローチャートによる判定処理の結果は、携帯電話端末１０のＲＡＭ１０９に記憶したり、ディスプレイ１０６に表示したり、ＲＦ部１０２及びアンテナ１０１により外部の装置に送信したりすることができる。
【００５６】
以上が本実施形態に関する説明であるが、上記の情報処理装置の構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記では、ユーザが腰を屈めたか否かを判定する１つのテンプレートを動作判定用のテンプレートとして使用しているが、テンプレートの数や種類はこれに限定されるものではない。例えば、ユーザの性別や体格等により腰を屈める動作には個体差がある。すなわち、腰を屈めたか否かを判定する複数のテンプレートをＲＯＭ１０８等に記憶しておき、テンプレートごとに上記の処理を繰り返すことで、複数パターンの腰の屈め方を判定可能な構成とすることができる。さらに、腰を屈めたか否かを判定するテンプレートだけでなく、座ったり、お辞儀をしたり、ジャンプしたり等、さまざまな動作を判定するテンプレートを動作別にＲＯＭ１０８等に記憶することもできる。これにより、携帯電話端末１０を携帯するユーザのさまざまな動作を判定可能な構成とすることができる。
【００５７】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記情報処理装置の設定を行うための管理ツール、ＯＳその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。ここで、設定とは、例えばボタン機能の割付等を意味する。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、携帯電話端末等である。
【００５８】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ等がある。
【００５９】
以上の実施形態に関し、さらに以下の付記を開示する。
【００６０】
（付記１）
３次元空間の加速度を検出する加速度センサと、
前記加速度センサのセンサ出力から重力成分ベクトルの信号を抽出するローパスフィルタと、
前記重力成分ベクトルの信号に時間遅延を付与する時間遅延部と、
前記ローパスフィルタにより抽出された重力成分ベクトルの信号と前記時間遅延部により時間遅延を付与された重力成分ベクトルの信号との内積値を算出する内積値算出部と、
所定の動作における前記内積値の時間変化を示すテンプレートをあらかじめ記憶するテンプレート記憶部と、
前記テンプレートを用いて、所定時間にわたって前記内積値算出部により算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、前記所定の動作が発生したか否かを判定する動作判定部と、
を備える情報処理装置。
【００６１】
（付記２）
前記動作判定部は、前記テンプレートマッチングにおいて、前記所定時間にわたって前記内積値算出部により算出された内積値と前記テンプレートが示す内積値との差分を積算した値を一致度として算出し、前記算出した一致度が所定の閾値未満であれば前記所定の
動作が発生したと判定し、前記算出した一致度が所定の閾値以上であれば前記所定の動作が発生していないと判定する、付記１に記載の情報処理装置。
【００６２】
（付記３）
前記動作判定部は、前記内積値算出部により算出された内積値を所定の時間間隔で時系列に記憶し、前記内積値算出部により算出された内積値を新たに記憶したときに、前記新たに記憶した内積値を含む内積値の時間変化に対して前記一致度を算出する、付記２に記載の情報処理装置。
【００６３】
（付記４）
３次元空間の加速度を検出するステップと、
前記加速度から重力成分ベクトルの信号を抽出するステップと、
前記重力成分ベクトルの信号に時間遅延を付与するステップと、
前記抽出された重力成分ベクトルの信号と前記時間遅延を付与された重力成分ベクトルの信号との内積値を算出するステップと、
所定の動作における前記内積値の時間変化を示すテンプレートを用いて、所定時間にわたって前記算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、前記所定の動作が発生したか否かを判定するステップと、
を有する情報処理方法。
【００６４】
（付記５）
前記所定の動作が発生したか否かを判定するステップは、前記テンプレートマッチングにおいて、前記所定時間にわたって前記算出された内積値と前記テンプレートが示す内積値との差分を積算した値を一致度として算出し、前記算出した一致度が所定の閾値未満であれば前記所定の動作が発生したと判定し、前記算出した一致度が所定の閾値以上であれば前記所定の動作が発生していないと判定する、付記４に記載の情報処理方法。
【００６５】
（付記６）
前記所定の動作が発生したか否かを判定するステップは、前記算出された内積値を所定の時間間隔で時系列に記憶し、前記算出された内積値を新たに記憶したときに、前記新たに記憶した内積値を含む内積値の時間変化に対して前記一致度を算出する、付記５に記載の情報処理装置。
【００６６】
（付記７）
３次元空間の加速度を検出するステップと、
前記加速度から重力成分ベクトルの信号を抽出するステップと、
前記重力成分ベクトルの信号に時間遅延を付与するステップと、
前記抽出された重力成分ベクトルの信号と前記時間遅延を付与された重力成分ベクトルの信号との内積値を算出するステップと、
所定の動作における前記内積値の時間変化を示すテンプレートを用いて、所定時間にわたって前記算出された内積値の時間変化に対してテンプレートマッチングを行うことにより、前記所定の動作が発生したか否かを判定するステップと、
をコンピュータに実行させるためのプログラム。
【００６７】
（付記８）
前記所定の動作が発生したか否かを判定するステップは、前記テンプレートマッチングにおいて、前記所定時間にわたって前記算出された内積値と前記テンプレートが示す内積値との差分を積算した値を一致度として算出し、前記算出した一致度が所定の閾値未満であれば前記所定の動作が発生したと判定し、前記算出した一致度が所定の閾値以上であれば前記所定の動作が発生していないと判定する、付記７に記載のプログラム。
【００６８】
（付記９）
前記所定の動作が発生したか否かを判定するステップは、前記算出された内積値を所定の時間間隔で時系列に記憶し、前記算出された内積値を新たに記憶したときに、前記新たに記憶した内積値を含む内積値の時間変化に対して前記一致度を算出する、付記８に記載のプログラム。
【符号の説明】
【００６９】
１０４    サブマイコン
１０４ａ    加速度センサ出力処理プログラム
１０４ｂ    動作状態判定プログラム
１０４ｃ    ＬＰＦ
１０４ｄ    遅延回路
１０４ｅ    内積演算処理部
１０４ｆ    相関演算処理部
１０４ｇ、１０４ｏ    加算器
１０４ｈ    除算器
１０４ｉ〜１０４ｋ    テンプレートデータ格納部
１０４ｌ〜１０４ｎ    減算器
１０８    ＲＯＭ
１０９    ＲＡＭ
１１０    加速度センサ
２０１    時間遅延部
２０２    内積値算出部
２０３    動作判定部
【図１】
2015081834.tif 000003
【図２】
2015081834.tif 000004
【図３】
2015081834.tif 000005
【図４Ａ】
2015081834.tif 000006
【図４Ｂ】
2015081834.tif 000007
【図５Ａ】
2015081834.tif 000008
【図５Ｂ】
2015081834.tif 000009
【図６Ａ】
2015081834.tif 000010
【図６Ｂ】
2015081834.tif 000011
【図７Ａ】
2015081834.tif 000012
【図７Ｂ】
2015081834.tif 000013
【図８】
2015081834.tif 000014
【図９】
2015081834.tif 000015
【図１０】
2015081834.tif 000016
【図１１】
2015081834.tif 000017
【図１２】
2015081834.tif 000018
【図１３】
2015081834.tif 000019