以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。図1に示す情報処理装置1は、測定値取得部2、パラメータ算出部3、分類処理部4および記憶装置5を有する。測定値取得部2、パラメータ算出部3、分類処理部4の処理は、例えば、情報処理装置1が備えるプロセッサが所定のプログラムを実行することにより実現される。記憶装置5は、例えば、HDD(Hard Disk Drive)などの不揮発性記憶装置によって実現される。なお、記憶装置5は、情報処理装置1の外部に設けられていてもよい。
測定値取得部2は、複数方向に対する人体(被験者11)の傾きを測定した測定値を取得する。取得される測定値は、被験者11に装着されたセンサ12から出力される測定値に基づくものである。
ここで、測定値取得部2が取得する測定値とは、センサ12から出力される測定値そのものであってもよいし、あるいは、センサ12から出力される測定値を基に計算によって得られたものであってもよい。例えば、センサ12が3軸加速度センサである場合、測定値取得部2は、センサ12から出力された加速度の測定値を基に、複数方向に対する被験者11の傾きを示す測定値を計算によって求める。
なお、センサ12は、例えば、被験者11の背中に装着される。
パラメータ算出部3は、分類処理部4での姿勢の分類処理で使用されるパラメータ21を算出して、記憶装置5に格納する。分類処理部4は、記憶装置5に格納されたパラメータ21を使用して、被験者11の姿勢の分類処理を行う。ここで、パラメータ算出部3は、分類処理部4での姿勢の分類処理より前の「学習工程」で動作する。
学習工程では、測定値取得部2は、人体の姿勢を複数種類に分類した姿勢種類ごとに、複数方向に対する人体の傾きを測定した第1の測定値31を複数個取得する。すなわち、第1の測定値31は、姿勢種類ごとに複数個取得される。
姿勢種類とは、姿勢の状態を分類するものであり、例えば、背中が直立している、背中が前傾している、背中が後傾している、といった状態別に分類することができる。また、学習工程では、ある姿勢種類に対応する第1の測定値31を取得する場合に、被験者11にその姿勢種類に該当するような姿勢をとらせ、その状態でセンサ12による測定が行われる。
パラメータ算出部3は、測定値取得部2により取得された第1の測定値31を基に、パラメータ21を算出する。具体的には、パラメータ算出部3は、ある姿勢種類に対応する複数個の第1の測定値31を基に、測定値の確率モデル22を生成するためのパラメータ21を算出する。確率モデル22は、例えば、多次元正規分布に従う測定値の確率モデルである。このような算出処理が姿勢種類ごとに実行されることで、それぞれ個別の姿勢種類に対応する複数のパラメータ21が算出されて、記憶装置5に格納される。
学習工程が終了した後、姿勢分類のための工程が行われる。姿勢分類のための工程では、被験者11が任意の姿勢をとった状態で、センサ12による測定があらためて行われ、測定値取得部2は、複数方向に対する被験者11の傾きを測定した第2の測定値32を取得する。このとき、第2の測定値32が複数個取得されてもよい。
分類処理部4は、取得された第2の測定値32と、記憶装置5に格納されたパラメータ21を基にそれぞれ生成される姿勢種類ごとの確率モデル22とに基づいて、測定対象の被験者11の姿勢を、複数の姿勢種類のいずれかに分類する。すなわち、分類処理部4は、ある姿勢種類に対応するパラメータ21を基に、その姿勢種類に対応する確率モデル22を生成する。このようにして、姿勢種類ごとに確率モデル22が生成される。そして、分類処理部は、姿勢種類ごとに生成された確率モデル22と、第2の測定値32とに基づいて、測定対象の被験者11の姿勢を、複数の姿勢種類のいずれかに分類する。
確率モデル22は、例えば、第2の測定値32が、対応する姿勢種類に分類される確率を計算するための計算式として表される。この場合、分類処理部4は、姿勢種類ごとに確率の計算を行い、算出された確率が最も高い姿勢分類に、被験者11の姿勢を分類する。
以上の情報処理装置1によれば、姿勢種類ごとに、複数方向に対する被験者11の傾きを測定した複数個の第1の測定値31に基づいて、測定値の確率モデル22を生成するためのパラメータ21が、姿勢種類ごとに算出される。そして、第2の測定値32が取得されると、第2の測定値32と、算出されたパラメータ21を基にそれぞれ生成される確率モデル22とに基づいて、被験者11の姿勢がいずれかの姿勢種類に分類される。これにより、人体の姿勢を高精度に分類できるようになる。
なお、以上の第1の実施の形態では、学習工程と、その後の姿勢分類のための工程とで、被験者11が同一とされたが、各工程の被験者が別人であってもよい。また、例えば、学習工程において姿勢種類ごとに取得される複数個の第1の測定値31は、複数の被験者から得られたものであってもよい。
〔第2の実施の形態〕
図2は、第2の実施の形態に係る姿勢計測システムの構成例を示す図である。姿勢計測システム100は、センサデバイス110、端末装置120および姿勢分類装置200を含む。端末装置120と姿勢分類装置200とは、ネットワーク130を介して接続されている。
センサデバイス110は、人体に取り付けられて使用される、いわゆる“ウェアラブルセンサ”である。具体的には、センサデバイス110は、人体の背中に取り付けられる。また、センサデバイス110は、重力方向を基準とした3軸方向の加速度を検出する3軸加速度センサを備える。なお、3軸方向がどのように規定されるかについては後述する。
端末装置120は、例えばユーザによる操作に応じて、センサデバイス110に加速度の測定を実行させる。端末装置120は、センサデバイス110から出力された測定値を、ネットワーク130を通じて姿勢分類装置200に送信する。
姿勢分類装置200は、端末装置120から送信された、センサデバイス110による測定値を基に、測定対象の人体の姿勢を推定する。具体的には、姿勢分類装置200は、センサデバイス110による測定値を基に、測定対象の人体の姿勢をあらかじめ決められた複数の姿勢分類項目のうちの1つに分類する。また、姿勢分類装置200は、姿勢の分類処理時に使用される制御パラメータを算出する処理も実行可能である。
図3は、第2の実施の形態に係る姿勢分類装置のハードウェア構成例を示す図である。姿勢分類装置200は、例えば、図3のようなコンピュータとして実現される。
姿勢分類装置200は、プロセッサ201によって装置全体が制御されている。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ201は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ201には、バス208を介して、RAM(Random Access Memory)202と複数の周辺機器が接続されている。
RAM202は、姿勢分類装置200の主記憶装置として使用される。RAM202には、プロセッサ201に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、プロセッサ201による処理に必要な各種データが格納される。
バス208に接続されている周辺機器としては、HDD203、グラフィック処理装置204、入力インタフェース205、読み取り装置206および通信インタフェース207がある。
HDD203は、姿勢分類装置200の補助記憶装置として使用される。HDD203には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置204には、表示装置204aが接続されている。グラフィック処理装置204は、プロセッサ201からの命令に従って、画像を表示装置204aの画面に表示させる。表示装置としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース205には、入力装置205aが接続されている。入力インタフェース205は、入力装置205aから出力される信号をプロセッサ201に送信する。入力装置205aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置206には、可搬型記録媒体206aが脱着される。読み取り装置206は、可搬型記録媒体206aに記録されたデータを読み取ってプロセッサ201に送信する。可搬型記録媒体206aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース207は、ネットワーク130を介して、端末装置120などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、姿勢分類装置200の処理機能を実現することができる。
なお、端末装置120についても、図3と同様のハードウェア構成を有するコンピュータとして実現可能である。また、端末装置120は、例えば、ノート型パーソナルコンピュータ、タブレット型情報端末などの可搬型の情報処理装置であってもよい。この場合、センサデバイス110の機能が端末装置120に組み込まれていてもよい。
図4は、センサデバイスによる測定値について示す図である。
図4の右側に示すように、センサデバイス110は、被験者140の背中に装着される。そして、センサデバイス110は、被験者140の上半身の姿勢を推定するための測定値を出力する。後述するように、姿勢分類装置200は、センサデバイス110による測定値を基に、被験者140の背中の傾きおよび湾曲状態を分類する。なお、被験者140の背中の傾きおよび湾曲状態を分類可能であれば、センサデバイス110の搭載位置は背中に限らず、例えば、肩や首であってもよい。
図4の左側に示すように、センサデバイス110は、x方向、y方向、z方向のそれぞれに対する加速度を測定する。x方向、y方向、z方向は、重力gの方向に対する相対的な方向として検知される。
x方向は、被験者140の背中に対して前後方向に直交する方向を示し、y方向は、被験者140の背中に対して左右方向に直交する方向を示す。本実施の形態では、図4に示すように、x方向については被験者140の後側方向を正の方向とし、y方向については被験者140の右側方向を正の方向とする。
z方向は、被験者140の背中に沿った方向を示す。本実施の形態では、被験者140の上半身が起きている状態で測定を行うものとするので、z方向は、地面に対して鉛直またはそれに近い方向となる。また、本実施の形態では、図4に示すように、z方向については上方向を正の方向とする。
図5は、姿勢の分類項目の例を示す図である。姿勢分類装置200は、被験者の姿勢が図5に示す13種類の分類項目のどれに属するかを判定するものとする。また、これらの分類項目は、5種類の大分類と3種類の小分類とに分けられる。
大分類は、被験者の背中の傾きを分類するものであり、「直立」、「前傾」、「後傾」、「右傾」および「左傾」の5種類に分類される。「直立」は、被験者の背中が直立状態であり、前後方向にも左右方向にも傾いていないことを示す。「前傾」は、被験者の背中が前側に傾いていることを示す。「後傾」は、被験者の背中が後側に傾いていることを示す。「右傾」は、被験者の背中が右側に傾いていることを示す。「左傾」は、被験者の背中が左側に傾いていることを示す。
小分類は、被験者の背中の湾曲状態を分類するものであり、「真っ直ぐ」、「反り」および「猫背」の3種類に分類される。「真っ直ぐ」は、被験者の背中が直線状であり、湾曲していないことを示す。「反り」は、被験者の背中が凹むように(すなわち、背骨の後側が凹むように)湾曲していることを示す。「猫背」は、被験者の背中が突出するように(すなわち、背骨の後側が突出するように)湾曲していることを示す。
全体の分類項目としては、「直立」、「前傾」および「後傾」のそれぞれについては、さらに「真っ直ぐ」、「反り」および「猫背」の3種類に分類される。また、「右傾」および「左傾」のそれぞれについては、さらに「真っ直ぐ」と「猫背」の2種類にのみ分類されるものとする。これにより、被験者の姿勢は合計13種類の分類項目に分類される。
図6は、姿勢分類装置が備える機能の例を示すブロック図である。
姿勢分類装置200は、データ取得部211、特徴量算出部212、姿勢パラメータ算出部213、姿勢パラメータ記憶部214、姿勢分類処理部215および正解率算出部216を有する。データ取得部211、特徴量算出部212、姿勢パラメータ算出部213、姿勢分類処理部215および正解率算出部216の各処理は、例えば、姿勢分類装置200が備えるプロセッサ201が所定のプログラムを実行することで実現される。また、姿勢パラメータ記憶部214は、例えば、姿勢分類装置200が備えるHDD203の記憶領域として実現される。
データ取得部211は、センサデバイス110による測定値を端末装置120から取得する。取得される測定値は、x方向、y方向、z方向のそれぞれについての加速度である。
特徴量算出部212は、取得された測定値に基づいて、姿勢に関する特徴量を算出する。特徴量としては、背中の左右方向および前後方向のそれぞれの傾斜角度を示す「姿勢角度」が算出される。
姿勢パラメータ算出部213は、算出された特徴量に基づいて、姿勢の分類処理で使用される「姿勢パラメータ」を算出して、姿勢パラメータ記憶部214に格納する。姿勢パラメータとしては、姿勢角度に基づく平均ベクトルおよび共分散行列が算出される。また、姿勢パラメータは、前述した13種類の分類項目のそれぞれについて算出される。
姿勢分類処理部215は、姿勢パラメータ記憶部214に格納された姿勢パラメータを参照して、特徴量算出部212によって算出された特徴量に基づき、被験者の姿勢が上記の分類項目のどれに分類されるかを判定する。具体的には、姿勢分類処理部215は、算出された特徴量と、13種類の分類項目のそれぞれに対応する姿勢パラメータとの演算を行うことで、被験者の姿勢がそれぞれの分類項目に属する確率を求める。そして、姿勢分類処理部215は、求められた確率が最も高い分類項目を、被験者の姿勢を示す分類項目として出力する。
なお、姿勢パラメータ算出部213は、実際に被験者の姿勢を分類する処理より前に実行される、姿勢パラメータ算出のための前処理でのみ使用される。一方、姿勢分類処理部215は、実際に被験者の姿勢を分類する際に使用される。従って、姿勢パラメータ算出部213が特徴量算出部212から取得する特徴量と、姿勢分類処理部215が特徴量算出部212から取得する特徴量は、それぞれ異なるタイミングで測定された測定値に基づくものである。
正解率算出部216は、姿勢分類処理部215による分類結果の正解率を算出する。なお、正解率算出部216は、姿勢分類処理の精度を検証するために設けられた処理機能である。従って、例えば、姿勢分類装置200が製品として出荷される際には、その姿勢分類装置200には正解率算出部216が含まれていなくてもよい。
図7は、姿勢分類装置による処理全体の手順の例を示すフローチャートである。姿勢分類装置200による処理は、「学習処理」と「本処理」とに大別される。本処理とは、姿勢パラメータに基づいて、実際に被験者の姿勢を分類する処理である。一方、学習処理は、本処理に先立って、本処理で使用される姿勢パラメータを算出するために実行される処理である。前述のように、姿勢パラメータは、13種類の分類項目のそれぞれについて算出される。
学習処理は、次のような手順で実行される。なお、以下の説明において、“j”は1以上の整数であり、分類項目の数を示す。本実施の形態では例として、j=13である。
[ステップS11]被験者に、ある1つの分類項目に属するような姿勢をとらせ、その状態でセンサデバイス110による測定が行われる。また、このような測定がN回行われる(ただし、Nは1以上の整数)。
なお、N回の測定のそれぞれは、基本的に、すべて同一の被験者に対して行われるものとする。ただし、N回の測定におけるそれぞれの測定が、2人以上の被験者を用いて行われてもよい。
データ取得部211は、センサデバイス110によるN回分の測定結果を取得する。特徴量算出部212は、取得された測定結果を基に、特徴量、すなわち、背中の左右方向および前後方向のそれぞれの傾斜角度を示す姿勢角度を算出する。
[ステップS12]姿勢パラメータ算出部213は、算出された特徴量に基づいて、1つの姿勢分類項目に対応する姿勢パラメータを算出し、姿勢パラメータ記憶部214に格納する。前述のように、姿勢パラメータには、姿勢角度に基づく平均ベクトルおよび共分散行列が含まれる。
[ステップS13]j種類の姿勢分類項目のすべてについてステップS11,S12の処理が実行されたかが判定される。処理済みでない姿勢分類項目がある場合には、ステップS11に戻り、処理済みでない別の姿勢分類項目についてステップS11,S12の処理が実行される。一方、すべての姿勢分類項目について処理済みである場合には、学習処理が終了される。
以上の処理により、j(=13)種類の分類項目ごとに姿勢パラメータが算出され、算出された姿勢パラメータが姿勢パラメータ記憶部214に格納される。
次に、本処理は、次のような手順が実行される。
[ステップS21]被験者に装着されたセンサデバイス110から、測定結果が出力される。なお、基本的に、本処理の際の被験者は、学習処理における被験者と同じであるものとするが、学習処理での被験者と本処理での被験者とを別人とすることもできる。
データ取得部211は、センサデバイス110によるN回分の測定結果を取得する。特徴量算出部212は、取得された測定結果を基に、特徴量、すなわち、背中の左右方向および前後方向のそれぞれの傾斜角度を示す姿勢角度を算出する。
[ステップS22]姿勢分類処理部215は、姿勢パラメータ記憶部214に格納された姿勢パラメータを参照して、特徴量算出部212によって算出された特徴量に基づき、被験者の姿勢がj種類の分類項目のどれに分類されるかを判定する。
次に、図7の処理の詳細について説明する。
まず、図8は、学習処理における特徴量算出の処理手順の例を示すフローチャートである。この図8の処理は、図7のステップS11の処理に対応する。
[ステップS101]被験者に、ある1つの分類項目に属するような姿勢をとらせ、その状態でセンサデバイス110による測定が行われる。ここでは例として、被験者に、ある1つの分類項目に属するような姿勢でt秒間(ただし、t>0)静止させる。そして、t秒の静止期間において1秒間隔でセンサデバイス110に測定を実行させ、t個の測定結果を出力させる。tは、例えば“15”(すなわち、静止期間は15秒)である。
測定結果は、次の式(1−1)〜(1−3)のように表される。式(1−1)〜(1−3)において、XjN,YjN,ZjNは、それぞれj番目の分類項目に対応するN回目のx方向、y方向、z方向の測定値を示す。
XjN={XjN(1),XjN(2),・・・,XjN(t)} ・・・(1−1)
YjN={YjN(1),YjN(2),・・・,YjN(t)} ・・・(1−2)
ZjN={ZjN(1),ZjN(2),・・・,ZjN(t)} ・・・(1−3)
データ取得部211は、端末装置120を介して、上記の測定値XjN,YjN,ZjNを取得する。
[ステップS102]特徴量算出部212は、t秒の測定期間における測定値XjN,YjN,ZjNの平均値を算出する。測定値XjN,YjN,ZjNのそれぞれの平均値Ave(XjN),Ave(YjN),Ave(ZjN)は、次の式(2−1)〜(2−3)に従って算出される。
[ステップS103]特徴量算出部212は、平均値Ave(XjN),Ave(YjN),Ave(ZjN)を基に、背中の左右方向および前後方向のそれぞれの傾斜角度を算出する。ここで算出される傾斜角度は、重力の方向を基準とした角度として表される。左右方向の傾斜角度φjN1,前後方向の傾斜角度φjN2は、それぞれ次の式(3−1),(3−2)に従って算出される。
[ステップS104]特徴量算出部212は、ステップS103で算出した傾斜角度φjN1,φjN2を補正することで、姿勢角度を算出する。この補正は、センサデバイス110が被験者に傾いた状態で装着されたことによる誤差を低減するためのものである。ここでは、センサデバイス110のy方向が傾いた場合、すなわち、被験者の後側から見たときにセンサデバイス110が左右方向に傾いた状態で装着された場合を想定して、左右方向の傾斜角度φjN1を補正する。
基準姿勢(すなわち、理想的な状態でセンサデバイス110が装着された場合)でセンサデバイス110の左右方向の傾斜角度をφjN01と表すと、左右方向、前後方向の各姿勢角度θjN1,θjN2は、次の式(4)に従って算出される。
(θjN1,θjN2)=(φjN1−φjN01,φjN2) ・・・(4)
[ステップS105]測定回数、すなわちステップS101〜S104の実行回数が、N回に達したかが判定される。測定回数がN回未満の場合には、ステップS101に戻って測定が継続される。測定回数がN回に達した場合には、図7のステップS12の処理に進む。以上のステップS101〜S105の処理により、1つの分類項目に対応する姿勢角度θjN1,θjN2が算出される。
次に、図9は、姿勢パラメータ算出の処理手順の例を示すフローチャートである。この図9の処理は、図7のステップS12の処理に対応する。なお、以下の説明では、姿勢角度(θjN1,θjN2)を、(θj1(N),θj2(N))と表すものとする。
[ステップS111]姿勢パラメータ算出部213は、姿勢角度を基に、平均ベクトルを算出する。
ここで、j番目の分類項目について算出された姿勢角度Θjは、次の式(5)のように表される。また、N回の測定における左右方向、前後方向の姿勢角度の平均値Ave(θj1),Ave(θj2)は、それぞれ式(6−1),(6−2)によって表される。なお、添字Tは転置行列を示す。
そして、j番目の分類項目に対応する平均ベクトルAve(Θj)は、次の式(7)に従って算出される。
Ave(Θj)=(Ave(θj1),Ave(θj2))T ・・・(7)
[ステップS112]姿勢パラメータ算出部213は、姿勢角度および平均ベクトルに基づき、共分散行列を算出する。ここで、Bj=Θj−Ave(Θj)とすると、j番目の分類項目に対応する共分散行列Ajは、次の式(8)に従って算出される。
Aj=BjBj T ・・・(8)
なお、平均ベクトルAve(Θj)は2次元のベクトルであり、共分散行列Ajは2行2列の行列である。以上の処理により、j番目の分類項目に対応する姿勢パラメータが算出される。姿勢パラメータ算出部213は、算出した姿勢パラメータ、すなわち平均ベクトルAve(Θj)および共分散行列Ajを、姿勢パラメータ記憶部214に格納する。
次に、図10は、本処理における特徴量算出の処理手順の例を示すフローチャートである。この図10の処理は、図7のステップS21の処理に対応する。
図10に示すステップS201,S202,S203,S204の処理手順は、それぞれ図8のステップS101,S102,S103,S104と同じである。すなわち、本処理における特徴量の算出処理は、図8の処理を、測定回数N=1としてセンサデバイス110によるt秒間の測定処理を1回だけ実行するように変形したものである。ただし、本処理の被験者は、学習処理の被験者とは異なる。なお、本処理における特徴量の算出処理でも、t秒間の測定処理を複数実行するようにしてもよい。
データ取得部211および特徴量算出部212による図10の処理により、左右方向、前後方向の各姿勢角度θjN1,θjN2が算出される。以下、本処理において算出された姿勢角度θjN1,θjN2を、それぞれθ1,θ2として説明する。
図11は、姿勢分類の処理手順の例を示すフローチャートである。この図11の処理は、図7のステップS22の処理に対応する。
[ステップS211]姿勢分類処理部215は、j種類の分類項目の中から1つを選択し、選択した分類項目に対応する姿勢パラメータ(平均ベクトルおよび共分散行列)を、姿勢パラメータ記憶部214から取得する。以下、取得されたj番目の分類項目に対応する平均ベクトルおよび共分散行列を、それぞれAve(Θj),Ajとする。
[ステップS212]姿勢分類処理部215は、姿勢パラメータ記憶部214から取得した平均ベクトルAve(Θj)および共分散行列Ajと、特徴量算出部212によって算出された姿勢角度θ=(θ1,θ2)とに基づいて、次の式(9)に従って確率Pj(θ)を算出する。
なお、式(9)において、dは次元の数を示す。このdは、姿勢角度θのパラメータ数に一致し、本実施の形態ではd=2である。
上記の式(9)は、被験者の姿勢を示す姿勢角度θが、ステップS211で選択された分類項目に属する確率を示す。
[ステップS213]姿勢分類処理部215は、j種類の分類項目のすべてをステップS211で選択したかを判定する。未選択の分類項目がある場合には、ステップS211の処理が実行される。この場合、未選択の分類項目についてステップS211,S212の処理が実行される。すなわち、ステップS211,S212が繰り返されることで、被験者の姿勢を示す姿勢角度θが、n種類の分類項目にそれぞれ属する確率が計算される。一方、すべての分類項目が選択済みである場合には、ステップS214の処理が実行される。
[ステップS214]姿勢分類処理部215は、算出されたn個の確率のうち、最も高い値を持つ確率に対応する分類項目を、被験者の姿勢が属する分類項目と判定して出力する。
ここで、図12は、姿勢分類のための計算について説明するための図である。図12のグラフは、2つの変数、すなわち、左右方向の姿勢角度(θjN1に対応)および前後方向の姿勢角度(θjN2に対応)による2次元正規分布を平面上に示したものである。
また、図12中の楕円領域301,302,303は、それぞれ異なる分類項目#1,#2,#3にそれぞれ対応する。楕円領域301は、分類項目#1に属する姿勢とされた被験者から得られる2つの変数が、ある一定の割合で含まれるような領域である。楕円領域302も同様に、分類項目#2に属する姿勢とされた被験者から得られる2つの変数が、ある一定の割合で含まれるような領域である。楕円領域303も同様に、分類項目#3に属する姿勢とされた被験者から得られる2つの変数が、ある一定の割合で含まれるような領域である。このような楕円領域301〜303は、確率楕円体、ある割合の信頼楕円または確率偏差楕円などと呼ばれる。
また、図12中の点311,312は、それぞれ本処理にて任意の姿勢の被験者から得られた2つの変数をグラフ上にプロットした位置を示す。ここで、前述した式(9)は、多次元正規分布(本実施の形態では2次元正規分布)の確率密度関数を示す。この式(9)は、本処理にて任意の姿勢の被験者から得られた2つの変数を図12のグラフ上にプロットした点と、楕円領域301〜303の各中心点との距離を計算することと等価である。そして、姿勢分類処理部215は、グラフ上にプロットされた点と中心点との距離が最も近い楕円領域を判別し、判別した楕円領域に対応する分類項目を、被験者の姿勢が属するものと判定する。
例えば、点311は、楕円領域301〜303の各中心点のうち、楕円領域301の中心点に最も近い。このため、点311が得られた被験者の姿勢は、分類項目#1に属すると判定される。また、点312は、楕円領域301〜303の各中心点のうち、楕円領域302の中心点に最も近い。このため、点312が得られた被験者の姿勢は、分類項目#2に属すると判定される。
図13は、測定により得られた変数と、矩形の判定領域との比較によって姿勢分類を行う場合の参考図である。以下、この図13に示す姿勢分類の方法と、図12に示した姿勢分類の方法とを対比する。
図13のグラフは、2つの変数を軸とした平面上に、2つの変数それぞれの上限および下限の閾値を示す矩形領域321〜323が設定したものである。矩形領域321,322,323は、それぞれ分類項目#1,#2,#3に属することを判定するための領域である。
また、図13中の点331,332は、それぞれ本処理にて任意の姿勢の被験者から得られた2つの変数をグラフ上にプロットした位置を示す。この図13の方法では、それぞれの点がどの矩形領域に含まれるかによって、それぞれの点が得られた被験者の姿勢が分類される。しかしながら、図13の例では、点331は矩形領域321〜323のいずれにも含まれておらず、また、点332も矩形領域321〜323のいずれにも含まれていない。この場合、点331,332がそれぞれ得られた被験者の姿勢が、どの分類項目に属するかを判定できない。
これに対して、図12に示した方法によれば、グラフ上にプロットされた点と中心点との距離が最も近い楕円領域が判別され、判別された楕円領域に対応する分類項目が、被験者の姿勢が属するものと判定される。これにより、プロットされた点が得られた被験者の姿勢がどの分類項目に属するかを、確実に判定することができる。また、分類項目を多くした場合でも、被験者の姿勢がどの分類項目に属するかを判定することができる。
次に、正解率算出部216を用いた姿勢の分類精度の検証について示す。本願の発明者らは、10−fold交差検定を用いた次のような方法で、姿勢の分類精度を検証した。
まず、被験者にある1つの分類項目に属するような姿勢をとらせ、その状態でセンサデバイス110によるt(=15)秒間の測定を行う。このようにして得られた測定値を基に、特徴量、すなわち姿勢角度を得る。また、このような測定を10回行って、それぞれ姿勢角度を得る。すなわち、1つの分類項目について10個の姿勢角度が得られる。さらに、各分類項目について上記の処理を繰り返し、分類項目ごとに10個の姿勢角度を得る。
次に、すべての分類項目についての姿勢角度を1つずつ含むデータ群を10組作成して、姿勢角度を分類する。そして、10組のデータ群のうち、9組のデータ群を用いて学習処理を行って、各分類項目についての姿勢パラメータを算出し、残りの1組のデータ群に含まれる姿勢角度を用いて本処理、すなわちどの分類項目に属するかの判定を行う。この場合、N=9として学習処理が行われ、残りのデータ群に含まれる10個の姿勢角度のそれぞれについて、どの分類項目に属するかが判定される。
さらに、このような学習処理および本処理を、本処理に用いるデータ群を変更しながら繰り返す。これにより、合計100回の姿勢分類の判定が行われる。正解率算出部216は、姿勢分類の判定結果が得られるごとに、その判定結果が正しいかを判定して、正解率を算出する。
ただし、以下に示す正解率の算出例では、「直立−真っ直ぐ」の分類項目についてのみ、10回ではなく60回の測定を行った。そして、各データ群には、「直立−真っ直ぐ」の分類項目に対応する姿勢角度が6個ずつ含まれるようにした。
さらに、次の図14に示すようにセンサデバイス110の装着位置を変えながら処理を行った。図14は、センサデバイスの装着位置を示す図である。
図14に示すように、発明者らは、センサデバイス110を、被験者140の背中に沿って上下方向に3箇所ずれた位置に装着して、姿勢分類の検証を行った。以下、各位置に装着されたセンサデバイス110は、上側から順に“センサ#1”、“センサ#2”、“センサ#3”と表記する。センサ#1は、被験者140の肩甲骨付近に装着したものとする。センサ#2は、被験者140の背中の中心付近に装着したものとする。センサ#3は、被験者140が身につけている腰のベルトの下付近に装着したものとする。
図15は、センサデバイスの位置に応じた正解率の算出例を示すグラフである。センサ#1を用いた場合の正解率は約0.73、センサ#2を用いた場合の正解率は約0.65、センサ#3を用いた場合の正解率は0.89となり、センサデバイス110の装着位置がどの位置の場合でも60%以上の正解率が得られた。特に、センサ#3を用いた場合には80%以上という高い正解率が得られた。なお、分類項目ごとの正解率については後述する。
〔第3の実施の形態〕
ところで、上記の第2の実施の形態では、図15に示したように、センサデバイス110の装着位置によって正解率にバラツキが見られる。これに対して、それぞれ別の位置に装着した複数のセンサデバイス110からの測定値を用いて学習処理および本処理を行うことで、姿勢分類の精度を高めることができると考えられる。
そこで、以下の第3の実施の形態では、第2の実施の形態の姿勢分類装置200を、複数のセンサデバイス110の測定値を基に処理を行うように変形する。さらに、第3の実施の形態では、姿勢分類精度のさらなる向上効果を得るために、複数のセンサデバイス110の測定値を用いて算出された姿勢パラメータを補正する手段についても開示する。
なお、以下の第3の実施の形態についての説明では、第2の実施の形態と同じ処理が行われる構成要素や処理ステップには同じ符号を付して示し、それらの説明を省略する。
図16は、第3の実施の形態に係る姿勢計測システムの構成例を示す図である。図16に示す姿勢計測システム100aは、複数のセンサデバイス110と、端末装置120aと、姿勢分類装置200aとを含む。端末装置120aと姿勢分類装置200aとは、ネットワーク130を介して接続されている。
端末装置120aは、複数のセンサデバイス110と接続し、それぞれのセンサデバイス110からの計測値を姿勢分類装置200aに送信する点で、図2に示した端末装置120とは異なる。なお、図16の例では、端末装置120aに対して2つのセンサデバイス110が接続されているが、3つ以上のセンサデバイス110が接続されていてもよい。
複数のセンサデバイス110は、同じ被験者に装着される。また、複数のセンサデバイス110は、被験者の背中あるいはその周辺において、上下方向、すなわち背骨に沿った方向に対してそれぞれ異なる位置に装着されることが望ましい。例えば、2つのセンサデバイス110が使用される場合、これらのセンサデバイス110は、図14に示したセンサ#1とセンサ#2、センサ#1とセンサ#3、センサ#2とセンサ#3のいずれかの組み合わせに対応するようにしてもよい。
なお、複数のセンサデバイス110の各機能は、例えば、端末装置120aに組み込まれていてもよい。
姿勢分類装置200aは、複数のセンサデバイス110のそれぞれから受信した測定値を用いて、姿勢パラメータの算出、および姿勢の分類処理を行う。
図17は、第3の実施の形態に係る姿勢分類装置が備える機能の構成例を示すブロック図である。図17に示す姿勢分類装置200aは、データ取得部211a、特徴量算出部212a、姿勢パラメータ算出部213a、姿勢パラメータ記憶部214a、姿勢分類処理部215a、正解率算出部216、拘束条件算出部221および姿勢パラメータ補正部222を有する。なお、姿勢分類装置200aのハードウェア構成は、図3に示した姿勢分類装置200と同様の構成とすることができる。
データ取得部211a、特徴量算出部212a、姿勢パラメータ算出部213a、姿勢分類処理部215a、正解率算出部216、拘束条件算出部221および姿勢パラメータ補正部222の各処理は、例えば、姿勢分類装置200aが備えるプロセッサ201が所定のプログラムを実行することで実現される。また、姿勢パラメータ記憶部214aは、例えば、姿勢分類装置200aが備えるHDD203の記憶領域として実現される。
データ取得部211a、特徴量算出部212a、姿勢パラメータ算出部213aおよび姿勢分類処理部215aの基本的な処理は、それぞれ図6に示したデータ取得部211、特徴量算出部212、姿勢パラメータ算出部213および姿勢分類処理部215と同様である。以下、これらの処理機能について、図6における対応する処理機能とは異なる点についてのみ説明する。
データ取得部211aは、2つのセンサデバイス110のそれぞれから、x方向、y方向、z方向のそれぞれについての加速度の測定値を取得する点で、データ取得部211とは異なる。
特徴量算出部212aは、2つのセンサデバイス110のそれぞれから取得した測定値を用いて、センサデバイス110ごとに姿勢角度を算出する点で、特徴量算出部212とは異なる。
姿勢パラメータ算出部213aは、センサデバイス110ごとに算出された姿勢角度を基に1組の平均ベクトルおよび共分散行列を算出する点で、姿勢パラメータ算出部213とは異なる。また、姿勢パラメータ算出部213aは、拘束条件算出部221によって、姿勢分類に対する寄与が小さいパラメータがあると判定された場合には、寄与が小さいパラメータ、すなわち、左右方向または前後方向のいずれかの姿勢角度を除外して、姿勢パラメータの算出を行う。
姿勢分類処理部215aは、センサデバイス110の個数をnとしたとき、姿勢分類の計算式における次元dが2nとなる点で、姿勢分類処理部215とは異なる。また、拘束条件算出部221の処理結果によっては、次元dが2nより小さくなる場合もある。
拘束条件算出部221および姿勢パラメータ補正部222は、2つのセンサデバイス110の測定値を基に算出される姿勢パラメータを最適化するために付加された処理機能である。
拘束条件算出部221は、人体の背骨の動きに関する拘束条件を考慮して、姿勢分類処理に対する寄与が小さいパラメータを判別する。判別の方法としては、次の2種類の方法がある。
拘束条件算出部221は、第1の判別方法として、特徴量算出部212aによって算出された特徴量に基づいて、姿勢分類処理に対する寄与が小さい背中の傾斜の方向を判別する。この場合、姿勢パラメータ算出部213aは、判別された方向に対応する特徴量、すなわち姿勢角度を使用せずに、姿勢パラメータの算出を行う。
また、拘束条件算出部221は、第2の判別方法として、姿勢パラメータ算出部213aによって算出された姿勢パラメータに基づいて、姿勢分類処理に対する寄与が小さいパラメータを判別する。この場合、拘束条件算出部221は、姿勢パラメータ算出部213aによって算出された姿勢パラメータを、姿勢分類処理に対する寄与が小さいパラメータが除外されるように変換して、姿勢パラメータ補正部222に渡す。
姿勢パラメータ補正部222は、拘束条件算出部221によって上記の第2の判別方法による判別が行われた場合に、拘束条件算出部221によって変換されたパラメータを用いて、姿勢パラメータを再計算する。姿勢パラメータ補正部222は、再計算された姿勢パラメータを姿勢パラメータ記憶部214aに格納する。
以下、姿勢分類装置200aの処理を、処理例1〜4の4パターンの処理例として説明する。
<処理例1>
処理例1は、第2の実施の形態の姿勢分類装置200の処理を、複数のセンサデバイス110の測定値を用いて行うように変形したものである。この処理例1では、拘束条件算出部221および姿勢パラメータ補正部222は使用されない。
処理例1での基本的な処理の流れは、図7と同様であり、学習処理と本処理とを含む。まず、学習処理における特徴量の算出処理(図7のステップS11および図8に対応)は、次のように変形される。
データ取得部211aは、複数のセンサデバイス110による測定値を、端末装置120を通じて取得する。センサデバイス110の数をnとすると、データ取得部211aは、前述の式(1−1)〜(1−3)で表される測定値XjN,YjN,ZjNを、n組取得する。この処理は、図8のステップS101に対応する。特徴量算出部212aは、図8のステップS102〜S104と同様の手順で、取得されたn組の測定値のそれぞれを基に、n組の姿勢角度θjN1,θjN2を算出する。
さらに、以上のようなn組の姿勢角度θjN1,θjN2の算出処理がN回行われる。これにより、1つの分類項目に対応する特徴量として、N回分の姿勢角度θjN1,θjN2を含むデータ群がn群算出される。
次に、姿勢パラメータの算出処理(図7のステップS12および図9に対応)は、次のように変形される。
姿勢パラメータ算出部213aは、センサデバイス110ごとに算出された姿勢角度を基に、1組の平均ベクトルおよび共分散行列を算出する。この処理は、図9のステップS111に対応する。
ここで、n組目の姿勢角度、すなわち、n番目のセンサデバイス110の測定値を基に算出された姿勢角度をθj1_n(N),θj2_n(N)とすると、j番目の分類項目について算出された姿勢角度Θjは、下記の式(5’)のように表される。また、n番目のセンサデバイス110を用いたN回の測定における左右方向、前後方向の姿勢角度の平均値Ave(θj1_n),Ave(θj2_n)は、それぞれ下記の式(6’−1),(6’−2)によって表される。そして、すべてのセンサデバイス110の測定値を加味した左右方向、前後方向の姿勢角度の平均値Ave(θj1),Ave(θj2)は、それぞれ下記の式(6’−3),(6’−4)によって表される。
従って、j番目の分類項目に対応する平均ベクトルAve(Θj)は、前述した式(7)に、式(6’−3),(6’−4)で表される姿勢角度の平均値Ave(θj1),Ave(θj2)を代入することによって算出される。
また、共分散行列Ajは、式(5’)によって算出された姿勢角度Θjと、この姿勢角度Θjを用いて上記手順で算出された平均ベクトルAve(Θj)とを、前述の式(8)に代入することによって算出される。この処理は、図9のステップS112に対応する。
なお、第2の実施の形態では、平均ベクトルAve(Θj)は2次元のベクトルであり、共分散行列Ajは2行2列の行列であった。これに対して、第3の実施の形態の処理例1では、平均ベクトルAve(Θj)は2n次元のベクトルとなり、共分散行列Ajは2n行2n列の行列となる。
以上のように図7のステップS11,S12を変形した処理が、j種類の分類項目のそれぞれについて実行される。
次に、本処理における特徴量の算出処理(図7のステップS21および図10に対応)は、次のように変形される。
データ取得部211は、複数のセンサデバイス110による測定値を、端末装置120を通じて取得する。すなわち、データ取得部211は、前述の式(1−1)〜(1−3)で表される測定値XjN,YjN,ZjNを、n組取得する。この処理は、図10のステップS201に対応する。特徴量算出部212aは、図10のステップS202〜S204と同様の手順で、取得されたn組の測定値のそれぞれを基に、n組の姿勢角度θjN1,θjN2を算出する。
次に、姿勢分類処理(図7のステップS22および図11に対応)は、次のように変形される。
姿勢分類処理部215aによる姿勢分類処理は、姿勢分類処理部215による図11の処理のうち、ステップS212の処理が次のように変形されたものと等価である。前述のように、特徴量算出部212aは、n組の姿勢角度θjN1,θjN2を算出する。ここで、n番目のセンサデバイス110の測定値を基に算出された姿勢角度θjN1,θjN2をそれぞれθ1_n,θ2_nとすると、算出された姿勢角度θは、次の式(10)のように表される。
姿勢分類処理部215aは、式(10)で表される姿勢角度θを前述の式(9)に代入することによって、確率Pj(θ)を算出する。なお、式(9)における次元dは、2nとなる。
姿勢分類処理部215aは、以上のような確率Pj(θ)の演算を、n種類の分類項目のそれぞれについて実行する。そして、姿勢分類処理部215aは、算出されたn個の確率のうち、最も高い値を持つ確率に対応する分類項目を、被験者の姿勢が属する分類項目と判定して出力する。
ここで、図18は、処理例1での正解率の算出例を示すグラフである。この図18では、例として、n=2として処理を行った場合に、正解率算出部216によって算出された正解率の例を示す。また、図18には、2つのセンサデバイス110の搭載位置の組み合わせとして、図14に示すセンサ#1とセンサ#2、センサ#1とセンサ#3、センサ#2とセンサ#3のそれぞれの組み合わせで処理を行った場合の正解率を示している。さらに、図18では、参考のために、センサ#1,#2,#3をそれぞれ単独で用いて第2の実施の形態の姿勢分類装置200によって処理された場合の正解率(図15に示した正解率)も示している。
図18に示すように、複数のセンサデバイス110を組み合わせて処理を行うと、センサデバイス110を単独で用いて処理を行った場合より、姿勢分類の精度が低下する場合があることが判明した。このことの原因について、発明者らは次のように推察した。
物理的な観点からすると、装着するセンサデバイス110が例えば2個の場合、姿勢を表現する姿勢パラメータの次元は“4”となる。その一方、人体の背骨を構成している骨の動きには、何らかの拘束条件がある。このため、姿勢の分類に寄与する姿勢パラメータの次元は、“4”より少ない場合があり得る。この場合、姿勢の分類に寄与しない次元のパラメータを含めて分類処理を行うと、分類精度が悪化することが考えられる。
また、数値計算的な観点からすると、共分散行列の固有値の中に、最大固有値と比較して極端に小さい固有値が存在することによって、逆行列を用いた算出精度が劣化したことも考えられる。このような精度の劣化も、骨の動きの拘束条件に起因する可能性がある。
以下に示す処理例2,3は、このような原因の推察に基づき、姿勢分類で使用される姿勢パラメータが最適化されるように上記の処理例1を変形したものである。
<処理例2>
図19は、背中を前後方向に傾けた場合の姿勢の例を示す図である。図19の左側は、被験者140が背中を前方向に傾けた場合の姿勢の例を示し、図19の右側は、被験者140が背中を後ろ方向に傾けた場合の姿勢の例を示す。
この図19の例のように、被験者140が背中を前後方向に傾ける動作を行う際に、背中は左右方向にはほとんど傾かない可能性がある。この場合、被験者140が背中を前方向に傾けたときと、後ろ方向に傾けたときと、その中間のときとで、左右方向の傾斜角度を示すパラメータの値はほとんど変化しない。このため、例えば、前述の分類項目のうち、「直立」、「前傾」、「後傾」のように、背中の前後方向の傾きが異なる姿勢を分類するために、左右方向の傾斜角度を示すパラメータが寄与する可能性は低い。
このように、姿勢パラメータの中に、姿勢の分類のために寄与しない方向に関するパラメータが含まれていると、そのパラメータが姿勢の分類処理に悪影響を与える可能性がある。そこで、処理例2では、拘束条件算出部221が、姿勢パラメータが示す傾斜角度の方向(すなわち、左右方向または前後方向)のうち、姿勢の分類処理に寄与しない方向の有無を判定する。そして、姿勢の分類処理に寄与しない方向がある場合には、その方向に関するパラメータを捨てて、姿勢の分類処理に使用しないようにする。
図20は、処理例2における姿勢パラメータ算出の処理手順の例を示すフローチャートである。処理例2では、姿勢パラメータの算出処理(図7のステップS12および図9に対応)は、次のように変形される。
[ステップS151]拘束条件算出部221は、特徴量算出部212aによって算出された姿勢角度を基に、姿勢の分類処理に寄与しない方向に対応するパラメータがあるかを判定する。
具体的には、拘束条件算出部221は、同じ方向への傾斜角度を示す姿勢角度の合計を算出する。この計算では、各センサデバイス110からの測定値に基づく、同じ方向に対応する姿勢角度が合計される。n番目のセンサデバイス110によるN回の測定値を基に算出された姿勢角度をθj1_n(N),θj2_n(N)とすると、左右方向に対する姿勢角度の合計値Γj1_n、前後方向に対する姿勢角度の合計値Γj2_nは、それぞれ次の式(11−1),(11−2)で表される。
拘束条件算出部221は、同じセンサデバイス110の測定値に基づく、異なる方向の姿勢角度の合計値の比を計算する。ここで、一方の方向についての合計値が相対的に極端に小さい場合には、その方向に対する背中の傾きの変化が少ない、すなわち、その方向に対する背中の動きが制限されているという拘束条件があることを示す。このため、拘束条件算出部221は、一方の方向についての合計値が相対的に極端に小さい場合に、その方向についてのパラメータが姿勢の分類処理に寄与しないと判定する。
具体的には、拘束条件算出部221は、対応するセンサデバイス110ごとに、比率(Γj1_n/Γj2_n)および比率(Γj2_n/Γj1_n)を算出する。すべてのセンサデバイス110について、比率(Γj1_n/Γj2_n)が所定の閾値以下である場合、拘束条件算出部221は、左右方向に対応する姿勢角度が姿勢の分類処理に寄与しないと判定する。また、すべてのセンサデバイス110について、比率(Γj2_n/Γj1_n)が上記と同じ閾値以下である場合、拘束条件算出部221は、前後方向に対応する姿勢角度が姿勢の分類処理に寄与しないと判定する。なお、閾値は、0以上1未満の範囲で任意に設定可能であり、例えば“0.01”といった値が設定される。
なお、判定条件は、次のように変形されてもよい。拘束条件算出部221は、例えば、ある方向に対応する姿勢角度を基に算出された比率のうち、所定数以上のセンサデバイス110に対応する比率が閾値以下である場合に、その方向に対応する姿勢角度が姿勢の分類処理に寄与しないと判定してもよい。また、他の方法として、拘束条件算出部221は、ある方向についての式(11−1)および式(11−2)に基づく姿勢角度の合計値をすべてのセンサデバイス110についてさらに合計し、算出された合計値同士の比率を閾値を比較することで判定を行ってもよい。
以上の処理により、姿勢の分類処理に寄与しない方向に対応するパラメータがあると判定された場合、ステップS152の処理が実行される。一方、姿勢の分類処理に寄与しない方向に対応するパラメータがないと判定された場合には、ステップS111aの処理が実行される。なお、後者の場合に実行されるステップS111a,S112aの処理は、前述の処理例1での姿勢パラメータの算出処理と同様の処理である。
[ステップS111a]拘束条件算出部221は、ステップS151で姿勢分類に寄与しない方向に対応するパラメータがないと判定した場合、特徴量算出部212aによって算出されたすべての姿勢角度θj1_n(N),θj2_n(N)を姿勢パラメータ算出部213aに渡す。姿勢パラメータ算出部213aは、これらの姿勢角度θj1_n(N),θj2_n(N)を基に、次のような手順で1組の平均ベクトルを算出する。
j番目の分類項目について算出された姿勢角度Θjは、前述の式(5’)のように表される。また、n番目のセンサデバイス110を用いたN回の測定における左右方向、前後方向の姿勢角度の平均値Ave(θj1_n),Ave(θj2_n)は、それぞれ前述の式(6’−1),(6’−2)によって表される。そして、すべてのセンサデバイス110の測定値を加味した左右方向、前後方向の姿勢角度の平均値Ave(θj1),Ave(θj2)は、それぞれ前述の式(6’−3),(6’−4)によって表される。従って、j番目の分類項目に対応する平均ベクトルAve(Θj)は、前述の式(7)に、式(6’−3),(6’−4)で表される姿勢角度の平均値Ave(θj1),Ave(θj2)を代入することによって算出される。
[ステップS112a]姿勢パラメータ算出部213aは、姿勢角度θj1_n(N),θj2_n(N)を基に、1つの共分散行列Ajを算出する。共分散行列Ajは、ステップS111aで式(5’)によって算出された姿勢角度Θjと、この姿勢角度Θjを用いてステップS111aで算出された平均ベクトルAve(Θj)とを、前述の式(8)に代入することによって算出される。
[ステップS152]拘束条件算出部221aは、ステップS152において姿勢の分類処理に寄与しないと判定された方向についてのパラメータを破棄する。
具体的には、左右方向に対応する姿勢角度θj1_n(N)が姿勢の分類処理に寄与しないと判定された場合、拘束条件算出部221aは、左右方向に対応するすべての姿勢角度θj1_n(N)を破棄して、前後方向に対応する姿勢角度θj2_n(N)だけを姿勢パラメータ算出部213aに渡す。また、前後方向に対応する姿勢角度θj2_n(N)が姿勢の分類処理に寄与しないと判定された場合、拘束条件算出部221aは、前後方向に対応するすべての姿勢角度θj2_n(N)を破棄して、左右方向に対応する姿勢角度θj1_n(N)だけを姿勢パラメータ算出部213aに渡す。
[ステップS111b]姿勢パラメータ算出部213aは、拘束条件算出部221から引き渡された姿勢角度のみを用いて、1組の平均ベクトルを算出する。
j番目の分類項目について算出された姿勢角度Θjは、前述の式(5’)において、ステップS152で破棄された姿勢角度を含まない行列として表される。ステップS111aで算出される姿勢角度Θjは、2n行2n列の行列となるのに対し、ステップS111bで算出される姿勢角度Θjは、n行n列の行列となる。
ステップS151で左右方向に対応する姿勢角度θj1_n(N)が姿勢の分類処理に寄与しないと判定された場合、姿勢パラメータ算出部213aは、式(6’−2)および式(6’−4)に従って、前後方向に対応する平均値Ave(θj2)を算出する。そして、姿勢パラメータ算出部213aは、前後方向に対応する平均値Ave(θj2)だけを前述の式(7)に代入することで、平均ベクトルAve(Θj)を算出する。
一方、ステップS151で前後方向に対応する姿勢角度θj2_n(N)が姿勢の分類処理に寄与しないと判定された場合、姿勢パラメータ算出部213aは、式(6’−1)および式(6’−3)に従って、左右方向に対応する平均値Ave(θj1)を算出する。そして、姿勢パラメータ算出部213aは、左右方向に対応する平均値Ave(θj1)だけを前述の式(7)に代入することで、平均ベクトルAve(Θj)を算出する。
ステップS111aで算出される平均ベクトルAve(Θj)は、2n次元のベクトルとなるのに対し、ステップS111bで算出される平均ベクトルAve(Θj)は、n次元のベクトルとなる。
[ステップS112b]姿勢パラメータ算出部213aは、拘束条件算出部221から引き渡された姿勢角度のみを用いて、1組の共分散行列Ajを算出する。共分散行列Ajは、ステップS111bで式(5’)によって算出された姿勢角度Θjと、この姿勢角度Θjを用いてステップS111bで算出された平均ベクトルAve(Θj)とを、前述の式(8)に代入することによって算出される。ステップS112aで算出される共分散行列Ajは、2n行2n列の行列となるのに対し、ステップS112bで算出される共分散行列Ajは、n行n列の行列となる。
以上の手順で、1つの分類項目に対応する平均ベクトルAve(Θj)および共分散行列Ajが算出され、それらが姿勢パラメータ記憶部214aに格納される。
次に、処理例2における本処理は、処理例1と同様に実行される。すなわち、特徴量算出部212aは、n組の姿勢角度θjN1,θjN2を算出して、姿勢分類処理部215aに出力する。姿勢分類処理部215aは、前述の式(10)で表される姿勢角度θを前述の式(9)に代入することによって、確率Pj(θ)を算出する。
ある分類項目に対応する平均ベクトルAve(Θj)および共分散行列Ajが図20のステップS111a,S112aの処理により算出されていた場合、被験者の姿勢がその分類項目に属するかの判定処理は、処理例1と同様の計算により行われる。この場合、式(9)における次元dは2nとなる。
一方、ある分類項目に対応する平均ベクトルAve(Θj)および共分散行列Ajが図20のステップS111b,S112bの処理により算出されていた場合、被験者の姿勢がその分類項目に属するかの判定処理は、特徴量算出部212aから入力された姿勢角度のうち、一方の方向についての姿勢角度だけを用いて行われる。この場合、式(9)における次元dはnとなる。
図21は、処理例2での正解率の算出例を示すグラフである。この図21では、例として、n=2として処理を行った場合に、正解率算出部216によって算出された正解率の例を示す。また、図21には、2つのセンサデバイス110の搭載位置の組み合わせとして、図14に示すセンサ#1とセンサ#2、センサ#1とセンサ#3、センサ#2とセンサ#3のそれぞれの組み合わせで処理を行った場合の正解率を示している。さらに、図21では、参考のために、センサ#1,#2,#3をそれぞれ単独で用いて第2の実施の形態の姿勢分類装置200によって処理された場合の正解率(図15に示した正解率)も示している。
図21に示すように、処理例2によれば、特に、センサ#1とセンサ#2とを組み合わせた場合と、センサ#2とセンサ#3とを組み合わせた場合に、対応するセンサデバイス110を単独で用いた場合より高い正解率が得られた。また、図18に示した処理例1との比較では、どのセンサデバイス110の組み合わせでも処理例1より高い正解率が得られた。
<処理例3>
図22は、背中が斜めに傾いた場合の姿勢の例を示す図である。
上記の処理例2では、背中が前後方向または左右方向に傾いたときに、その傾き方向と直交する方向に対する背中の位置変動がごく小さくなるケースを想定した。しかし、実際にはこのようなケースは少ない。
例えば、被験者が背中を前後方向に傾けようとした場合でも、実際には背中が前後方向以外の他の方向にも傾いてしまう場合が多い。図22はこのようなケースの例を示しており、例えば、図22の左側に示すように、被験者140の背中が右斜め前方向に傾く場合や、図22の右側に示すように、被験者140の背中が左斜め前に傾く場合もある。また、同様に、被験者が背中を左右方向に傾けようとした場合でも、実際には背中が左右方向以外の他の方向にも傾いてしまう場合が多い。
このように、背中が前後方向または左右方向に真っ直ぐに傾いていない状況でも、前後方向または左右方向以外の方向の中に、骨の動きの拘束条件に起因する、変動量の少ない方向が存在する可能性はある。このような変動量の少ない方向に対する背中の傾きを示すパラメータは、姿勢の分類処理に寄与しないパラメータと考えられる。このため、このような方向に対する傾きを示すパラメータを、姿勢パラメータから除外することで、姿勢の分類精度を高められると考えられる。しかしながら、このような方向は被験者によっても異なり、処理例1で想定したケースのように一意に決めることは難しい。
以下で説明する処理例3では、拘束条件算出部221が、姿勢の分類処理に寄与しないパラメータを計算により推定し、姿勢パラメータ補正部222が、その推定結果に基づいて、姿勢パラメータ算出部213aにより算出された姿勢パラメータを補正する。具体的には、拘束条件算出部221は、姿勢パラメータ算出部213aによって算出された共分散行列を、固有値および固有ベクトルに分解し、姿勢の分類処理に寄与しないと推定される方向に対応する固有値および固有ベクトルを判別する。姿勢パラメータ補正部222は、共分散行列の固有値および固有ベクトルのうち、判別された固有値および固有ベクトルを除いた残りの固有値および固有ベクトルを用いて、共分散行列を算出し直す。
ここで、例として、被験者が「前傾−真っ直ぐ」の分類項目に該当する姿勢をとった場合の姿勢角度の分布例を図23および図24に示して、姿勢角度の分布と固有値との関係について説明する。
図23は、姿勢の変化が前後方向に限定される場合の姿勢角度の分布例を示す図である。また、図24は、姿勢が斜め方向にも変化する場合の姿勢角度の分布例を示す図である。
図23に示す楕円領域351は、被験者の姿勢の変化がほぼ前後方向に限定される場合に、姿勢角度がある一定の割合で分布する領域のイメージを示す。この場合、楕円領域351に属する姿勢角度を基に算出された共分散行列の固有値のうち、最大の固有値に対する固有ベクトルの方向D1は、前後方向、すなわち図23の左右方向となる。一方、このケースでは、背中の左右方向に対する変動量がごく小さいことから、上記の共分散行列の固有値のうち、極端に小さい固有値に対する固有ベクトルの方向D2は、左右方向、すなわち図23の上下方向となる。
これに対して、図24に示す楕円領域352は、被験者の姿勢が前後方向だけでなく、斜め方向にも変動する場合に、姿勢角度がある一定の割合で分布する領域のイメージを示す。この場合、楕円領域352に属する姿勢角度を基に算出された共分散行列の固有値のうち、最大の固有値に対する固有ベクトルの方向D3は、前後方向、すなわち図24の左右方向とはならない可能性が高い。そして、この共分散行列の固有値のうち、極端に小さい固有値に対する固有ベクトルの方向D4も、図23の例のように左右方向、すなわち図24の上下方向とはならない可能性が高い。
処理例3では、拘束条件算出部221は、共分散行列の固有値の累積寄与率を計算することで、共分散行列の固有値から、姿勢の分類処理に寄与しない、極端に小さい固有値を排除する。
図25は、処理例3における姿勢パラメータ算出の処理手順の例を示すフローチャートである。処理例3では、姿勢パラメータの算出処理(図7のステップS12および図9に対応)は、次のように変形される。
[ステップS111a]姿勢パラメータ算出部213aには、特徴量算出部212aによって算出されたすべての姿勢角度θj1_n(N),θj2_n(N)が入力される。姿勢パラメータ算出部213aは、図20のステップS111aと同様の手順(処理例1と同様の手順)で、j番目の分類項目に対応する平均ベクトルAve(Θj)を算出する。算出される平均ベクトルAve(Θj)は、2n次元のベクトルとなる。
[ステップS112a]姿勢パラメータ算出部213aは、図20のステップS112aと同様の手順(処理例1と同様の手順)で、j番目の分類項目に対応する1つの共分散行列Ajを算出する。算出される共分散行列Ajは、2n行2n列の行列となる。
[ステップS161]拘束条件算出部221は、算出された共分散行列Ajに対する固有値分解を行い、固有値Λjと、この固有値Λjに対する固有ベクトルQjとを算出する。
ここで、n番目の分類項目に対応する共分散行列Ajは、Aj=QjΛjQj Tと表すことができる。また、固有値ΛjをΛj=diag(λ1,・・・,λd)と表し、固有ベクトルQjをQj=(q1,・・・,qd)と表す。ただし、λ1,・・・,λdは降順とする。
[ステップS162]拘束条件算出部221は、変数bを“1”とする。
[ステップS163]拘束条件算出部221は、次の式(13)に従って累積寄与率ξ(b)を算出する。
[ステップS164]拘束条件算出部221は、算出された累積寄与率ξ(b)が、閾値ξc以上であるかを判定する。閾値ξcは、経験的に決定される値であり、0<ξc<1の条件を満たす範囲でできるだけ大きな値(例えば、0.999)とされることが望ましい。
累積寄与率ξ(b)が閾値ξc未満である場合には、ステップS165の処理が実行される。累積寄与率ξ(b)が閾値ξc以上である場合には、ステップS166の処理が実行される。
[ステップS165]拘束条件算出部221は、変数bを“1”だけインクリメントする。その後、インクリメントされた変数bを用いてステップS163の計算が再度行われる。
[ステップS166]ステップS164で累積寄与率ξ(b)が閾値ξc以上であると判定されたときの変数bを、b_cとする。拘束条件算出部221は、共分散行列の再計算に用いる固有値および固有ベクトルを、それぞれ次の式(14),(15)のように決定する。
Λ’j=(λ1,・・・,λb_c) ・・・(14)
Q’j=(q1,・・・,qb_c) ・・・(15)
姿勢パラメータ補正部222は、式(14),(15)に基づき、共分散行列A’jを次の式(8’)に従って再計算する。
A’j=Q’jΛ’jQ’j T ・・・(8’)
姿勢パラメータ補正部222は、n番目の分類項目に対応する姿勢パラメータとして、ステップS111aで算出された平均ベクトルAve(Θj)と、ステップS166で再計算された共分散行列A’jとを、姿勢パラメータ記憶部214aに格納する。
次に、処理例2における本処理は、処理例1と同様に実行される。すなわち、特徴量算出部212aは、n組の姿勢角度θjN1,θjN2を算出して、姿勢分類処理部215aに出力する。姿勢分類処理部215aは、姿勢パラメータ記憶部214aに格納された姿勢パラメータを参照しながら、前述の式(10)で表される姿勢角度θを前述の式(9)に代入することによって、確率Pj(θ)を算出する。そして、姿勢分類処理部215aは、算出されたn個の確率のうち、最も高い値を持つ確率に対応する分類項目を、被験者の姿勢が属する分類項目と判定して出力する。
式(9)の次元dは、最大で2nとなる。ただし、図25の処理において、共分散行列Ajの固有値λ1,・・・,λdのうち、ステップS166の計算で使用されなかった固有値の個数分だけ(すなわち、2n−b_cだけ)次元dは少なくなる。
ここで、上記のステップS162〜S164の処理では、累積寄与率ξ(b)が閾値ξcを超えないような変数bの最小値(=b_c)が算出される。そして、式(14)により、固有値(λ1,・・・,λd)のうち、先頭からb_c番目までの固有値が抽出され、それ以外の固有値、すなわち、姿勢の分類処理に寄与しない、極端に小さい固有値が、ステップS166での共分散行列の計算の対象から除外される。
換言すると、姿勢の分類処理に使用されるパラメータの1つである、共分散行列Ajの固有値および固有ベクトルの中から、骨の動きの拘束条件に起因する、背中の傾き方がごく小さい方向に対応する固有値および固有ベクトルが判別される。そして、判別された固有値および固有ベクトルを除外したパラメータを用いて、共分散行列が再計算される。
これにより、背中の傾き方が小さい方向が予測できない場合でも、姿勢の分類精度を向上させることができる。
図26は、処理例3での正解率の算出例を示すグラフである。この図26では、例として、n=2として処理を行った場合に、正解率算出部216によって算出された正解率の例を示す。また、図26には、2つのセンサデバイス110の搭載位置の組み合わせとして、図14に示すセンサ#1とセンサ#2、センサ#1とセンサ#3、センサ#2とセンサ#3のそれぞれの組み合わせで処理を行った場合の正解率を示している。さらに、図26では、参考のために、センサ#1,#2,#3をそれぞれ単独で用いて第2の実施の形態の姿勢分類装置200によって処理された場合の正解率(図15に示した正解率)も示している。
図26に示すように、処理例3によれば、どのセンサデバイス110の組み合わせでも、対応するセンサデバイス110を単独で用いた場合より高い正解率が得られた。また、図18に示した処理例1、および、図21に示した処理例2と比較した場合でも、どのセンサデバイス110の組み合わせでも高い正解率が得られた。
図27は、分類項目ごとの正解率の算出例を示すグラフである。図27に示す正解率一覧表400では、第2の実施の形態、および、第3の実施の形態のうちの処理例1、処理例2、処理例3のそれぞれについて、分類項目ごとに算出された正解率を示している。なお、分類項目を、図5に示した識別番号によって表している。また、平均値の項目に示した数値は、図15、図18、図21および図26のグラフに示したものである。
図27に示すように、第2の実施の形態の処理によれば、特にセンサ#1を用いた場合に、13種類すべての分類項目についてある程度、分類処理に成功している。また、処理例1,2,3の順に、全体として13種類の分類項目の分類精度が向上することがわかる。特に、処理例2のセンサ#1,#2の組み合わせ、処理例2のセンサ#2,#3の組み合わせ、および処理例3のすべてのセンサデバイス110の組み合わせで、13種類すべての分類項目について60%以上の正解率が得られた。さらに、処理例3のセンサ#1,#3の組み合わせと、処理例3のセンサ#2,#3の組み合わせは、13種類すべての分類項目について80%以上の正解率が得られた。このように、上記各実施の形態によれば、背中の前後方向や左右方向の傾きだけでなく、背中の湾曲状態に応じた姿勢の分類も行うことが可能になる。
<処理例4>
処理例4は、処理例2の処理と処理例3との処理を組み合わせたものである。
図28は、処理例4における姿勢パラメータ算出の処理手順の例を示すフローチャートである。処理例4では、姿勢パラメータの算出処理(図7のステップS12および図9に対応)は、次のように変形される。なお、図28では、図20および図25と同じ処理が行われる処理ステップには同じ符号を付して示し、その説明を省略する。
まず、拘束条件算出部221は、処理例2の場合と同様に、特徴量算出部212aによって算出された姿勢角度を基に、姿勢の分類処理に寄与しない方向に対応するパラメータがあるかを判定する(ステップS151)。姿勢の分類処理に寄与しない方向に対応するパラメータがある場合、その方向に対応するパラメータ(姿勢角度)が破棄され、姿勢パラメータ算出部213aは、残りの方向に対応するパラメータ(姿勢角度)のみを用いて平均ベクトルおよび共分散行列を算出する(ステップS152,S111b,S111b)。
一方、ステップS151で姿勢の分類処理に寄与しない方向のパラメータがあると判定されなかった場合には、処理例3と同様の処理が実行される。すなわち、姿勢パラメータ算出部213aによって処理例1と同様の手順で平均ベクトルおよび共分散行列が算出される(ステップS111a,S112a)。拘束条件算出部221は、共分散行列の固有値の中から、累積寄与率の計算に基づいて、姿勢の分類処理に寄与しない固有値を除外する。そして、姿勢パラメータ補正部222は、除外された固有値以外の残りの固有値と、これらの固有値に対する固有ベクトルとを用いて、共分散行列を再計算する(ステップS161〜S166)。
〔第4の実施の形態〕
上記の第2の実施の形態および第3の実施の形態では、センサデバイス110によって測定された測定値が、端末装置120,120aを介して姿勢分類装置200,200aへ送信され、姿勢分類装置200,200aにおいて姿勢パラメータの算出や姿勢分類処理が行われる構成とした。これに対して、第4の実施の形態では、端末装置において、姿勢パラメータの算出や姿勢分類処理が行われる構成とする。
図29は、第4の実施の形態に係る端末装置の構成例を示すブロック図である。図29に示す端末装置120bには、複数のセンサデバイス110が接続されている。また、端末装置120bは、図17に示した姿勢分類装置200aと同様の処理機能を有する。ただし、データ取得部211aは、センサデバイス110によって測定された測定値を、センサデバイス110から直接取得する。
なお、図29では、第3の実施の形態における姿勢分類装置200aの処理機能を端末装置120bに設けたが、第2の実施の形態における姿勢分類装置200の処理機能を端末装置120bに設けてもよい。
また、上記の第2〜第4の実施の形態では、学習処理と本処理とを1つの装置で行う構成としたが、これらの処理はそれぞれ別の装置で行われてもよい。この場合、学習処理が行われた装置で算出された姿勢パラメータが、可搬型の記録媒体あるいはネットワークなどを介して、本処理が行われる装置に入力される。
また、上記の各実施の形態に示した装置(情報処理装置1、姿勢分類装置200,200b、端末装置120,120a,120b)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。