(57)【要約】      （修正有）【課題】姿勢推定の汎用性を向上させる方法を提供すること。【解決手段】姿勢推定装置１００は、センサ１〜Ｓのセンサ値から第１の角度を算出し、背骨において互いに接続する骨同士を滑らかに接続させるモデルと、背骨に含まれる骨の可動範囲とにしたがって第２の角度を算出する。さらに、姿勢推定装置１００は、第１の角度及び第２の角度を合成することによって第３の角度を算出する。【選択図】図１
2015195913.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
加速度センサのセンサ値から第１の角度を算出し、
背骨において互いに接続する骨同士を滑らかに接続させるモデルと、背骨に含まれる骨の可動範囲とにしたがって第２の角度を算出し、
前記第１の角度及び前記第２の角度を合成することによって第３の角度を算出する
処理を実行することを特徴とする姿勢推定方法。
【請求項２】
前記モデルは、前記背骨に含まれる任意の２つの骨の相対角度、相対角速度もしくは角速度のうち少なくともいずれか１つによって規定されることを特徴とする請求項１に記載の姿勢推定方法。
【請求項３】
前記第３の角度を算出する処理は、
前記第１の角度及び前記第２の角度を合成する重み係数を、前記第１及び前記第２の角度差の絶対値に基づいて決定することを特徴とする請求項１または２に記載の姿勢推定方法。
【請求項４】
前記コンピュータが、
前記第１の角度が所定の姿勢に該当する場合に、当該第１の角度を用いて前記可動範囲を更新することを特徴とする請求項１、２または３に記載の姿勢推定方法。
【請求項５】
前記コンピュータが、
前記センサ値が特定の動作パターンに該当する場合に、当該特定の動作パターンに対応する可動範囲を設定する処理をさらに実行することを特徴とする請求項１〜４のいずれか１つに記載の姿勢推定方法。
【請求項６】
前記コンピュータが、
前記第３の角度を用いて、前記背骨の形状を可視化する処理をさらに実行することを特徴とする請求項１〜５のいずれか１つに記載の姿勢推定方法。
【請求項７】
前記コンピュータが、
前記第３の角度を用いて、腰椎もしくは背骨の特定箇所に加わる負荷に関する指標を算出する処理をさらに実行することを特徴とする請求項１〜５のいずれか１つに記載の姿勢推定方法。
【請求項８】
コンピュータに、
加速度センサのセンサ値から第１の角度を算出し、
背骨において互いに接続する骨同士を滑らかに接続させるモデルと、背骨に含まれる骨の可動範囲とにしたがって第２の角度を算出し、
前記第１の角度及び前記第２の角度を合成することによって第３の角度を算出する
処理を実行させることを特徴とする姿勢推定プログラム。
【請求項９】
加速度センサのセンサ値から第１の角度を算出する第１算出部と、
背骨において互いに接続する骨同士を滑らかに接続させるモデルと、背骨に含まれる骨の可動範囲とにしたがって第２の角度を算出する第２算出部と、
前記第１の角度及び前記第２の角度を合成することによって第３の角度を算出する第３算出部と
を有することを特徴とする姿勢推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、姿勢推定方法、姿勢推定プログラム及び姿勢推定装置に関する。
【背景技術】
【０００２】
人体の姿勢の一例として、背中表面の形状（以下、背骨形状）を計測する試みがなされている。かかる背骨形状の計測には、一例として、モーションキャプチャが用いられる場合がある。例えば、光学式のモーションキャプチャの場合、人体に取り付けられたマーカを複数のカメラで撮影し、各カメラによって撮像される画像の視差を利用して測定されたマーカの位置が記録される。これらのマーカが背骨に沿って取り付けられる場合、各マーカの位置が背骨形状として得られる。
【０００３】
また、複数の加速度センサを用いて、背骨形状を可視化する提案もなされている。この場合、背骨に沿って取り付けられた３軸の加速度センサの各々の出力から各センサの重力加速度に対する傾きを算出することによって背骨形状を計測することを目指す。かかる加速度センサの出力には、センサの傾斜によって発生する重力加速度の成分の他にも、センサの加減速によって発生する運動加速度の成分が含まれる。運動成分を除去するために、ハードウェア的には角速度センサを用いた方法、ソフトウェア的にはローパスフィルタを通し高周波数を除去するやカルマンフィルタを用いる方法が報告されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０５８１６号公報
【特許文献２】特開２００２−１６３６４６号公報
【特許文献３】特開２０１０−２６３９３０号公報
【特許文献４】特開２０１２−９８２５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の技術には、次に説明するように、汎用性に欠ける一面がある。
【０００６】
例えば、上記の光学式のモーションキャプチャシステムを用いる場合、複数のカメラがマーカを撮像範囲に収める状況でしか背骨形状を計測できないので、その適用範囲がカメラの撮像範囲に限定されるという制約がある。このため、光学式のモーションキャプチャシステムを用いて、日常的に姿勢をモニタリングするのは困難であり、その汎用性に限界がある。
【０００７】
また、加速度センサを用いる場合、走行中等の激しい運動が行われている動的な状況下で背骨形状を計測することができない。かかる動的な状況下にある場合、高周波成分を除去するだけでは、運動加速度の成分と重力加速度の成分とを分離することができず、背骨の構造上あり得ない（想定できない）曲線が背骨形状として出力されるケースもある。このように、加速度センサを用いる場合にも、動的状況下で計測が困難であるという制約があるので、その汎用性に限界がある。角速度センサを用いる場合は、消費電力が大きくなり連続稼働時間が加速度センサのみを用いた場合よりも少なくなってしまう。カルマンフィルタを適用する場合、forward  mapping  functionが必要であるが、日常生活のあらゆる動きから得るのは極めて困難である。更に、莫大な処理時間を要する。
【０００８】
１つの側面では、本発明は、姿勢推定の汎用性を向上させることができる姿勢推定方法、姿勢推定プログラム及び姿勢推定装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様の姿勢推定方法は、コンピュータが、加速度センサの値から第１の角度を算出し、背骨において互いに接続する骨同士を滑らかに接続させるモデルと、背骨に含まれる骨の可動範囲とにしたがって第２の角度を算出し、前記第１の角度及び前記第２の角度を合成することによって第３の角度を算出する処理を実行する。
【発明の効果】
【００１０】
姿勢推定の汎用性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る姿勢推定装置の機能的構成を示すブロック図である。
【図２】図２は、センサの取付例を示す図である。
【図３】図３は、矢状面及び前額面の一例を示す図である。
【図４】図４は、曲線可視化の一例を示す図である。
【図５】図５は、負荷データの一例を示す図である。
【図６】図６は、実施例１に係るパラメータ登録処理の手順を示すフローチャートである。
【図７】図７は、実施例１に係る姿勢推定処理の手順を示すフローチャートである。
【図８】図８は、実施例１に係る負荷算出処理の手順を示すフローチャートである。
【図９】図９は、前屈中の背骨形状の推定結果の一例を示す図である。
【図１０】図１０は、歩行周期の背骨形状の一例を示す図である。
【図１１】図１１は、背骨形状の数値化の一例を示す図である。
【図１２】図１２は、実施例１及び実施例２に係る姿勢推定プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る姿勢推定方法、姿勢推定プログラム及び姿勢推定装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［姿勢推定装置の構成］
まず、本実施例に係る姿勢推定装置の機能的構成について説明する。図１は、実施例１に係る姿勢推定装置の機能的構成を示すブロック図である。図１に示す姿勢推定装置１００は、人体の姿勢を推定するものであり、一例として、人体の背中に取り付けられた複数のセンサ１〜Ｓを用いて、人体の背中表面の形状、すなわち背骨形状を推定する姿勢推定処理を実行する。
【００１４】
かかる姿勢推定装置１００は、一態様として、上記の姿勢推定処理がパッケージソフトウェア、オンラインソフトウェアあるいはアプリケーションプログラムとして実現される姿勢推定プログラムを所望のコンピュータにインストールさせることによって実装できる。
【００１５】
ここで、上記の姿勢推定プログラムは、プロセッサ及びメモリを搭載するコンピュータであれば任意の装置にインストールできるが、一例として、スマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末にインストールさせることができる。この他、上記の姿勢推定プログラムは、移動体通信端末のみならず、タブレット端末やスレート端末を含む携帯端末装置全般にインストールさせることができる。このように、上記の姿勢推定プログラムが携帯端末装置にインストールされる場合には、携帯端末装置を姿勢推定装置１００として機能させることができる。なお、上記の姿勢推定プログラムは、携帯端末装置に限定されず、デスクトップ型及びノート型のパーソナルコンピュータなどの情報処理装置全般にインストールさせることもできる。
【００１６】
図１に示すように、姿勢推定装置１００は、取得部１１０と、第１算出部１２０と、パラメータ記憶部１３０と、パラメータ登録部１４０と、パラメータ設定部１５０と、第２算出部１６０と、第３算出部１７０と、形状可視化部１８０と、負荷算出部１９０とを有する。
【００１７】
かかる姿勢推定装置１００は、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。例えば、姿勢推定装置１００が据置き端末として実装される場合には、キーボードやマウスなどの入力デバイスをさらに有することとしてもよい。また、姿勢推定装置１００が移動体通信端末として実装される場合には、アンテナ、移動体通信網に接続する無線通信部、ＧＰＳ（Global  Positioning  System）受信機などの機能部をさらに有していてもかまわない。
【００１８】
取得部１１０は、複数のセンサ１〜Ｓによって出力されたセンサ値を取得する処理部である。
【００１９】
一実施形態として、取得部１１０は、複数の３軸加速度センサ１〜ＳからＸ軸、Ｙ軸、Ｚ軸の各成分のセンサ値を取得する。ここで、３軸加速度センサ１〜Ｓが３軸の加速度を計測するサンプリング周期には任意の周期を採用することができ、また、３軸加速度センサ１〜Ｓから取得部１１０へ３軸の加速度の時系列データがアップロードされる周期にも任意の周期を採用することができる。
【００２０】
図２は、センサの取付例を示す図である。図２には、矢状面から視た場合のセンサの取付例が示されている。図２の例では、人体の背中に１０個の３軸加速度センサ１〜１０が装着される場合が例示されているが、実施形態はこれに限定されず、背中に取り付けられるセンサの数は１つであっても１０個以外の複数の数であってもかまわない。また、図２には、背骨上にセンサ１〜１０を取り付ける模式図が図示されているが、実際には背中の表面にセンサ１〜１０が取り付けられる。
【００２１】
図２に示すように、背骨、いわゆる脊柱には、頸椎（cervical）、胸椎（thoracic）や腰椎（lumbar）などを始め、仙骨や尾骨が含まれる。このうち、頸椎は、一般に、第１頸椎Ｃ１から第７頸椎Ｃ７までの７つの骨を含んで構成される。また、胸椎は、第１胸椎Ｔｈ１から第１２胸椎Ｔｈ１２までの１２個の骨を含んで構成される。また、腰椎は、第１腰椎Ｌ１から第５腰椎Ｌ５までの５つの骨を含んで構成される。
【００２２】
図２に示す例では、センサ１が頸椎、例えばＣ７に取り付けられる。また、センサ２〜７の６つが胸椎、例えばＴｈ２、Ｔｈ４、Ｔｈ６、Ｔｈ８、Ｔｈ１０及びＴｈ１２に取り付けられる。さらに、センサ８〜１０の３つが腰椎、例えばＬ２、Ｌ４及びＬ５に取り付けられる。以下では、ｊ番目に装着されたセンサから時刻ｔに取得されたセンサ値のことを「ｑｊ（ｔ）」と記載する場合がある。かかるｑｊ（ｔ）には、Ｘ、Ｙ、Ｚ軸の各成分の加速度の値が含まれる。この場合、時刻ｔに各センサ１〜Ｓから取得されるセンサ値Ｑ（ｔ）は、｛ｑ１（ｔ），・・・，ｑＳ（ｔ）｝と表すことができる。
【００２３】
第１算出部１２０は、取得部１１０によって取得される各センサ１〜Ｓのセンサ値から重力加速度に対する傾斜角を算出する処理部である。
【００２４】
一実施形態として、第１算出部１２０は、取得部１１０によって各センサ１〜Ｓのセンサ値が取得される度に、矢状面上の傾斜角ａ１と、前額面上の傾斜角ａ２とをセンサごとに算出する。図３は、矢状面及び前額面の一例を示す図である。図３に示すように、前額面とは、人体を腹側と背側、すなわち前側と後側に分割する平面を指す。一方、矢状面とは、人体を左右に分ける面を指す。これら前額面及び矢状面は、互いに直交する。つまり、矢状面状の傾斜角ａ１を求めることは、前屈または後屈の度合いを求めることとなる一方で、前額面上の傾斜角ａ２を求めることは、左右の側屈の度合いを求めることとなる。このうち、矢状面上の傾斜角ａ１は、下記の式（１）によって計算することができる。これによって、センサ１〜Ｓごとの矢状面状の傾斜角ａ１，ｊ（ｔ）が得られる。また、前額面上の傾斜角ａ２は、下記の式（２）によって計算することができる。これによって、センサ１〜Ｓごとの前額面状の傾斜角ａ２，ｊ（ｔ）が得られる。下記の式（１）及び式（２）における「ｘ」は、Ｘ軸方向の加速度を指し、「ｙ」は、Ｙ軸方向の加速度を指し、また、「ｚ」は、Ｚ軸方向の加速度を指す。なお、下記の式（１）及び式（２）によって単位が[rad]である矢状面上の傾斜角ａ１及び前額面上の傾斜角ａ２が算出される。
【００２５】
【数１】
2015195913.tif 000003
【数２】
2015195913.tif 000004
【００２６】
このようにセンサごとに傾斜角ａ１，ｊ（ｔ）及び傾斜角ａ２，ｊ（ｔ）が求められた後、第１算出部１２０は、各センサ１〜Ｓの取り付け時の回転を補正することができる。すなわち、センサ１〜Ｓは、前額面上で背骨の正中に沿ってまっすぐに取り付けることができるとは限らず、正中よりも左右に回転して取り付けられる場合もある。かかる取り付け時に左右に回転して取り付けられた分をオフセットとして補正することもできる。具体的には、上記の式（２）に示すように、前額面上の傾斜角ａ２は、Ｙ−Ｚ平面上の成分と、Ｘ成分との比を用いて計算される。ここで、基準姿勢、例えば直立姿勢における傾斜角を（ａ０１，ａ０２）、任意の姿勢における傾斜角を（ａ１，ａ２）とし、下記の式（３）で任意の姿勢における傾斜角を再定義する。下記の式（３）では、センサ平面と前額面が平行であると仮定している。かかる仮定によって、Ｘ軸は、前額面の法線方向成分と一致するので、矢状面上の傾斜角（ａ１）には任意の姿勢における傾斜角ａ１がそのまま採用される。
【００２７】
（ａ１，ａ２）:=（ａ１，ａ２−ａ０２）・・・（３）
【００２８】
上記の補正によって、補正後の各センサ１〜Ｓの傾斜角Ａ（ｔ）が矢状面及び前額面ごとに得られる。すなわち、Ａ（ｔ）は、下記の式（４）に示すように、各センサ１〜Ｓの矢状面上の傾斜角ａ１，１（ｔ）〜ａ１，Ｓ（ｔ）と、各センサ１〜Ｓの前額面上の傾斜角ａ２，１（ｔ）〜ａ２，Ｓ（ｔ）とが含まれる。
【００２９】
【数３】
2015195913.tif 000005
【００３０】
ここで、センサ１〜Ｓが背骨に含まれる各骨に対応して装着されていない場合、言い換えればセンサ数Ｓ＞背骨の数Ｍである場合、第１算出部１２０は、下記の式（５）に示すように、行列における行の要素数を背骨の数Ｍに合わせる。例えば、第１算出部１２０は、センサとセンサの間に存在する骨の要素における傾斜角を線形補間によって算出し、行の要素数をセンサの数Ｓから背骨の数Ｍに補間する。以下では、センサ１〜Ｓによって測定された加速度から求められた背骨の各骨１〜Ｍの傾斜角のことを「測定角度」と記載する場合がある。
【００３１】
【数４】
2015195913.tif 000006
【００３２】
以降の機能部では、矢状面と前額面の各々に対し、個別に処理が実行されるが、矢状面と前額面の間で実行される処理内容は同一であるので、以下では、代表して、矢状面における処理に絞って説明を行うこととする。
【００３３】
パラメータ記憶部１３０は、姿勢推定に用いる各種のパラメータを記憶する記憶部である。
【００３４】
例えば、パラメータ記憶部１３０は、後述の第２算出部１６０によるモデル角度の計算に用いられる背骨形状の拘束条件の一例として、各骨の可動範囲Σ１を記憶する。ここで言う「モデル角度」とは、上記の測定角度と同様に各骨の角度を指すが、測定角度がセンサ１〜Ｓのセンサ値から算出されるものであるのに対し、モデル角度は、パラメータ設定部１５０が設定する初期値の下、背骨において互いに隣接する骨同士を滑らかに接続させるモデルにしたがって計算される各骨の角度を指す。上記の「各骨の可動範囲Σ１」は、前屈時及び後屈時の骨の角度によって定めることができるが、前屈時または後屈時のいずれかの一方の骨の角度を採取し、一方の骨の角度から他方の骨の角度を推定することによって定義することもできる。かかる「各骨の可動範囲Σ１」は、（σ１，１，・・・，σ１，Ｍ）と表すことができる。
【００３５】
また、パラメータ記憶部１３０は、第２算出部１５０によるモデル角度の計算で用いる初期値の一例として、直立姿勢における各骨の角度Θ１を記憶する。かかる「直立時の角度Θ１」は、直立姿勢時に測定されたセンサ１〜ＳのＸ、Ｙ、Ｚ軸の各成分の加速度から各骨１〜Ｍの角度を求めることができる。かかる直立時の角度Θ１は、（θ１，１，・・・，θ１，Ｍ）と表すことができる。
【００３６】
さらに、パラメータ記憶部１３０は、背骨形状の可視化に用いるパラメータの一例として、骨間の距離Ｌを記憶する。かかる「骨間の距離Ｌ」には、背中の湾曲がない姿勢、例えば伏臥位で骨ごとに測定された距離を採用できる。かかる「骨間の距離Ｌ」は、（Ｌ１，・・・，ＬＭ）と表すことができる。
【００３７】
パラメータ登録部１４０は、上記のパラメータ記憶部１３０にパラメータを登録する処理部である。ここで、上記の各骨の可動範囲Σ１、直立時の角度Θ１及び骨間の距離Ｌは、予め計測しておくこともできるし、人体がセンサ１〜Ｓを装着している場合に上記の直立、前屈、後屈や伏臥位などの姿勢が推定された時点のセンサ値から算出することもできる。
【００３８】
一実施形態として、パラメータ登録部１４０は、センサ１〜Ｓからセンサ値Ｑ（ｔ）が取得されると、上記の第１算出部１２０と同様に、上記の式（１）及び式（２）にしたがって矢状面上の傾斜角ａ１と、前額面上の傾斜角ａ２とをセンサごとに算出する。そして、パラメータ登録部１４０は、上記の式（３）にしたがって各センサ１〜Ｓの取り付け時の回転を補正する。その上で、パラメータ登録部１４０は、各センサ間に存在する骨の要素における傾斜角を線形補間によって算出し、行の要素数をセンサの数Ｓから背骨の数Ｍに補間する。その後、パラメータ登録部１４０は、このようにして得た測定角度Ａ（ｔ）を図示しない内部メモリに保存する。続いて、パラメータ登録部１４０は、直立、前屈、後屈や伏臥位などの姿勢ごとに当該姿勢で算出され得る各骨１〜Ｍの傾斜角が対応付けられた対応表と、内部メモリに記憶された測定角度Ａ（ｔ）とを比較する。このとき、パラメータ登録部１４０は、測定角度Ａ（ｔ）が上記の対応表にある姿勢の測定角度から所定の範囲内である場合、パラメータ記憶部１３０に記憶されたパラメータのうち当該姿勢に対応するパラメータを測定角度Ａ（ｔ）に上書きして更新する。このような処理によって、日常生活でユーザが上記の姿勢をとった特定の瞬間の測定角度を切り取ってパラメータとして登録することができる。
【００３９】
パラメータ設定部１５０は、モデル角度や推定角度の計算に用いるパラメータを設定する処理部である。ここで言う「推定角度」は、上記の測定角度および上記のモデル角度を合成することによって推定される骨の角度を指す。これらモデル角度及び推定角度は、詳細は後述するが、各骨１〜Ｍのモデル角度及び推定角度が反復演算される。このため、その反復回数を「ｋ」として以下の説明を行う。
【００４０】
一実施形態として、パラメータ設定部１５０は、後述の第２算出部１５０がモデル角度の計算に用いる拘束条件を設定する。具体的には、パラメータ設定部１５０は、センサ１〜Ｓから取得されたセンサ値Ｑ（ｔ）が特定の動作パターンに該当するか否かを判定する。かかる動作パターンの一例としては、走行やリハビリなどの動作と当該動作に対応するセンサ値とが定義されたデータを採用できる。そして、パラメータ設定部１５０は、センサ値Ｑ（ｔ）が走行やリハビリなどの動作に該当しない場合、パラメータ記憶部１３０に記憶された各骨の可動範囲Σ１を拘束条件として設定する。一方、パラメータ設定部１５０は、センサ値Ｑ（ｔ）が走行やリハビリなどの動作に該当する場合、当該動作に対応する可動範囲を設定する。例えば、パラメータ設定部１５０は、走行時は停止時よりも背骨の可動範囲が狭くなると推定できるので、パラメータ記憶部１３０に記憶された可動範囲Σ１に１未満の係数、例えば１／２を乗算することによって走行時に対応する可動範囲を設定する。また、パラメータ設定部１５０は、リハビリ時は他の状態よりも可動範囲が広くなると推定できるので、パラメータ記憶部１３０に記憶された可動範囲Σ１に１以上の係数、例えば１．２を乗算することによってリハビリ時に対応する可動範囲を設定する。以下では、パラメータ設定部１５０によって拘束条件として設定された可動範囲のことを「可動範囲Σ２」と記載する場合がある。この可動範囲Σ２は、（σ２，１，・・・，σ２，Ｍ）と表される。
【００４１】
他の実施形態として、パラメータ設定部１５０は、上記のモデル角度、さらには、後述の第３算出部１７０が測定角度及びモデル角度を合成する場合に用いる重み係数の計算に用いるパラメータの初期値として、骨の角度の初期値を設定する。例えば、パラメータ設定部１５０は、短時間でかつ正確に各骨の角度を推定できるように、初期値に１時刻前の骨の角度を使用させる。これは、骨の角度変化は滑らかであり、角速度はそれほど大きくないとすると、時刻（ｔ）の推定角度Φ２（ｔ）は時刻（ｔ−１）の推定角度Φ２（ｔ−１）に近い値と期待できるからである。このことから、パラメータ設定部１５０は、時刻（ｔ）が最初の１時刻目よりも後である場合、すなわち時刻ｔ＞１である場合、１時刻前の推定角度Φ２（ｔ−１）を角度の初期値Φ２（ｔ）（０）として設定する。一方、姿勢推定装置１００を起動してから最初の１時刻目である場合、すなわち時刻ｔ＝１である場合には、１時刻前に推定角度が推定されてない。この場合、パラメータ設定部１５０は、パラメータ記憶部１３０に記憶された直立時の角度Θ１を角度の初期値Φ２（ｔ）（０）として設定する。また、パラメータ設定部１５０は、反復演算の実行時、すなわち反復回数ｋが１回以上である場合には、反復回数ｋがインクリメントされる度に、反復回数１回前に推定された推定角度Φ２（ｔ）（Ｋ−１）を角度の初期値Φ２（ｔ）（０）の代わりにΦ２（ｔ）（Ｋ）として設定する。
【００４２】
第２算出部１６０は、パラメータ設定部１５０が設定する初期値の下、背骨において互いに隣接する骨同士を滑らかに接続させるモデルと、パラメータ設定部１５０によって設定された可動範囲とにしたがってモデル角度を算出する処理部である。
【００４３】
一実施形態として、第２算出部１６０は、上記のモデルが実現された下記の式（６）を用いて、モデル角度Φ１，ｎ（ｔ）（ｋ）を背骨の骨ごとに算出する。すなわち、背骨の構造上、背骨に含まれる骨の各々が可動できる範囲は制限される。このため、下記の式（６）では、隣接する骨との相対角度を用いることによって背骨の構造上有り得ない（想定できない）角度を修正できるようにモデルを構築した。下記の式（６）における「Δθ１，ｎ」は、「θ１，ｎ−θ１，ｎ−１」であることとする。なお、ここでは、一例として、隣接する骨との相対角度をモデルに採用する場合を例示したが、実施形態はこれに限定されない。例えば、相対角度の代わりに相対角速度または角速度を採用することもできるし、相対角度、相対角速度及び角速度を全て採用することもできる。
【００４４】
【数５】
2015195913.tif 000007
【００４５】
第３算出部１７０は、第１算出部１２０によって算出される測定角度と、第２算出部１６０によって算出されるモデル角度とを合成することによって推定角度を算出する処理部である。
【００４６】
一実施形態として、第３算出部１７０は、測定角度Ａ（ｔ）及びモデル角度Φ１，ｎ（ｔ）（ｋ）の重みを決定する係数、すなわち下記の式（７）における重み係数ηｎ（ｋ）を骨１〜Ｍごとに求める。このとき、第３算出部１７０は、第１算出部１２０によって算出された測定角度Ａ（ｔ）と、パラメータ設定部１５０によって設定された可動範囲Σ２とを用いて、上記の重み係数ηｎ（ｋ）を決定する。このとき、第３算出部１７０は、反復演算が実行される度に、反復回数１回前に推定された各骨の相対角度と、パラメータ設定部１５０によって設定された可動範囲Σ２とを用いて、上記の重み係数ηｎ（ｋ）を計算し直す。例えば、第３算出部１７０は、下記の式（８）を満たすか否かによって重み係数ηｎ（ｋ）を決定する。例えば、第３算出部１７０は、下記の式（８）を満たす場合には、重み係数ηｎ（ｋ）に「１」を設定する一方で、下記の式（８）を満たさない場合には、重み係数ηｎ（ｋ）に「０」を設定する。なお、ここでは、重み係数に「１」または「０」を設定することによって測定角度またはモデル角度のいずれか一方を採用する場合を例示したが、必ずしも重み係数は「１」または「０」のいずれか一方を択一的に選択せずともよい。人間の骨の可動範囲は、日々の変化によって異なることから、可動範囲の境目はあやふやである。このため、上記の重みηをステップ関数、すなわち「１」か「０」で決定するのではなく、ガウス関数などを用いて重み係数を決定してもよい。また、可動範囲Σ２からの乖離度が大きいほど小さい値を重みηに設定することもできる。
【００４７】
【数６】
2015195913.tif 000008
−σ２，ｎ≦ａ１，ｎ（ｔ）（ｋ）−Φ２，ｎ−１（ｔ）（ｋ）≦σ２，ｎ・・・（８）
【００４８】
かかる重み係数ηｎ（ｋ）の決定後、第３算出部１７０は、下記の式（９）の関数Ｌを最小にする推定角度φ２，ｎ（ｔ）（ｋ）を骨１〜Ｍごとに求める。かかる式（９）では、上記の式（７）における「Ｐ」の対数をとって符号を反転させることによって「Ｐ」を最大にする問題を「Ｌ」を最小にする問題に置換している。これは、一例として、最急降下法という反復解法を用いて、下記の式（９）における「Ｌ」を最小にするΦ２，ｎ（ｔ）（ｋ）を求めることができる。なお、下記の式（９）における「λ」は、任意の定数である。ここでは「λn」に同じ定数値を設定したが、各計測角度の信頼度に応じてλnの値を決定しても良い。すなわち、第３算出部１７０は、下記の式（１０）で算出される更新量（δＬ／δφ２，ｎ（ｔ）（ｋ））を下記の式（１１）に代入することによってφ２，ｎ（ｔ）（ｋ）を更新する。かかる式（１１）における「β」も任意の定数である。このようなφ２，ｎ（ｔ）（ｋ）の更新を骨の数ｎをインクリメントしながら全ての骨１〜Ｍごとに繰り返し実行することによって、Φ２（ｔ）（ｋ）（＝φ２，１（ｔ）（ｋ），・・・，φ２，Ｍ（ｔ）（ｋ））が得られる。その後、第３算出部１７０は、下記の式（１０）で算出される更新量（δＬ／δφ２，ｎ（ｔ）（ｋ））が反復回数１回前に計算された更新量（δＬ／δφ２，ｎ（ｔ）（ｋ−１））よりも大きくなるか、あるいは更新量（δＬ／δφ２，ｎ（ｔ）（ｋ））が所定の閾値、例えば１．０−１０よりも小さくなるまで、φ２，ｎ（ｔ）（ｋ）の更新を繰り返し実行する。なお、ここでは、更新量の多寡を更新の終了条件に用いる場合を例示したが、一定の回数、例えば１０００回にわたって更新を繰り返し実行することとしてもかまわない。
【００４９】
【数７】
2015195913.tif 000009
【数８】
2015195913.tif 000010
【数９】
2015195913.tif 000011
【００５０】
このように推定角度Φ２（ｔ）（ｋ）の更新を反復する場合には、第３算出部１７０は、反復回数ｋをインクリメントする。これに伴って、パラメータ設定部１５０は、上記の角度の初期値の代わりに、反復回数１回前のΦ２（ｔ）（ｋ−１）をモデル角度や重み係数の計算に用いる値Φ２（ｔ）（ｋ）として設定する。
【００５１】
なお、上記の式（７）では、Φ１は形の滑らかさを考慮しているが、下記の式（１２）に示すように、３項目（Φ３）に隣接しない任意の骨の関係を考慮する項を追加し、４項目（Φ４）に時間的な滑らかさを考慮する項を追加することによってより正確な角度を推定することもできる。
【００５２】
Ｐ＝η１φ１＋η２φ２＋η３φ３＋η４φ４・・・（１２）
【００５３】
形状可視化部１８０は、第３算出部１７０によって算出された推定角度を用いて、背骨形状を可視化する処理部である。
【００５４】
一実施形態として、形状可視化部１８０は、第３算出部１７０によって算出された推定角度Φ２（ｔ）と、パラメータ記憶部１３０に記憶された骨間の距離Ｌとを用いて、各骨の座標を算出し、各骨の座標を折れ線や曲線などによって接続する。これによって、背骨の高次曲線を近似して可視化することができる。
【００５５】
図４は、曲線可視化の一例を示す図である。図４に示す縦軸及び横軸の単位は、[cm]である。図４には、センサ１〜Ｓを装着するユーザが走行している場合の背骨形状を表す６つのグラフが図示されている。図４に示された６つのグラフのうち、左側の３つのグラフには、センサ１〜Ｓのセンサ値から求められた傾斜角α１〜αＳと各センサ間の距離ｄ１〜ｄＳとを用いて各センサの座標がプロットされた上で各センサの座標が曲線で接続されて図示されている。一方、右側の３つのグラフには、骨１〜Ｍの推定角度φ１〜φＭと骨間の距離Ｌ１〜ＬＭとを用いて各骨１〜Ｍの座標がプロットされた上で各骨１〜Ｍの座標が曲線で接続されて図示されている。また、図４の例では、左右に並ぶグラフは、互いに同一の時刻のものであり、上段の２つのグラフ、中段の２つのグラフ、下段の２つのグラフの順に時刻が経過していることとする。
【００５６】
図４に示すように、上段の左右のグラフには、いずれも正常な背骨形状、すなわちＳ字型の背骨が示されているものの、そこから時間が経過した中段の左右のグラフでは、右側のグラフには正常な背骨形状が示されている一方で、左側のグラフには、背骨の構造上有り得ない（想定できない）形状が出力されている。同様に、さらに時間が経過した下段の左右のグラフにおいても、右側のグラフには正常な背骨形状が示されている一方で、左側のグラフには、背骨の構造上有り得ない（想定できない）形状が出力されている。これらのことから、センサ１〜Ｓのセンサ値から求めた重力加速度に対する傾斜角をそのまま用いた場合、走行中等の激しい運動が行われている動的な状況下で背骨形状を推定することができないことがわかる。一方、上記の第３算出部１７０で求めた推定角度を用いた場合には、走行中等の激しい運動が行われている動的な状況下であっても背骨形状を推定できていることがわかる。
【００５７】
負荷算出部１９０は、第３算出部１７０によって算出された推定角度を用いて、腰椎もしくは背骨の特定箇所に加わる負荷に関する指標を算出する処理部である。
【００５８】
一実施形態として、負荷算出部１９０は、所定の期間、例えば５時刻前までの期間にわたる推定角度Φ２（ｔ−５）〜Φ２（ｔ）の分散値が所定の閾値以上であるか否かを判定する。このとき、分散値が閾値未満である場合には、動的な状況下ではない、すなわち静的な状況下であると判断される。一方、分散値が閾値以上である場合には、動的な状況下であると判断される。
【００５９】
静的な状況下である場合、負荷算出部１９０は、第３算出部１７０によって算出された骨１〜Ｍの推定角度のうち第１腰椎Ｌ１〜第５腰椎Ｌ５に対応する各骨の推定角度から腰椎の角度を求める。そして、負荷算出部１９０は、腰椎の角度と負荷との対応関係が規定された負荷データから先に求めた腰椎の角度に対応する負荷を検索した上で所定の出力先へ出力する。かかる負荷データには、各姿勢の腰椎の角度ごとに直立時を基準とする椎間板内圧の変化が規定されたデータを採用できる。図５は、負荷データの一例を示す図である。図５には、静的な姿勢の変化によって椎間板内圧が変化する様が示されている。さらに、図５には、体重７０ｋｇの実験参加者を対象とし、直立時を「１」とする椎間板内圧の変化が示されており、塗りつぶし有りのグラフが「Wilkeら」の研究結果を指し、塗りつぶし無しのグラフが「Nachemson」の研究結果を指す。図５に示す「Wilkeら」の研究結果を負荷データとして用いる場合、腰椎の角度が直立時に対応する場合には負荷「１」が出力される一方で、腰椎の角度が仰臥位に対応する場合には負荷「０．２」が出力され、腰椎の角度が横臥位に対応する場合には負荷「０．２５」が出力され、腰椎の角度が２０°の前屈に対応する場合には負荷「２．２５」が出力される。また、図５に示す「Nachemson」の研究結果を負荷データとして用いる場合、腰椎の角度が直立時に対応する場合には負荷「１」が出力される一方で、腰椎の角度が仰臥位に対応する場合には負荷「０．２５」が出力され、腰椎の角度が横臥位に対応する場合には負荷「０．８」が出力され、腰椎の角度が２０°の前屈に対応する場合には負荷「１．５」が出力される。
【００６０】
動的な状況下である場合、負荷算出部１９０は、骨１〜Ｍごとに測定角度Ａ（ｔ）及び推定角度Φ２（ｔ）の差を算出する。その上で、負荷算出部１９０は、測定角度Ａ（ｔ）及び推定角度Φ２（ｔ）の差が所定の閾値以上である箇所を所定の出力先に出力する。すなわち、特定箇所において、大きな加速度が非常に短い時間に検知された場合、その箇所に衝撃が加わったということが分かる。この時、その箇所への負荷が大きいと推定することができる。このように、背骨の構造を考慮して修正した角度と、修正前の角度との差を比較することで、どの箇所に負荷がかかっているかを推定することができる。
【００６１】
これら情報には、姿勢推定装置１００が有する図示しない表示部を始め、任意の出力先へ出力することができる。例えば、背骨形状から各種の診断を実行する診断プログラムが姿勢推定装置１００にインストールされている場合には、診断プログラムを出力先とすることができる。また、診断プログラムをＷｅｂサービスとして提供するサーバ装置などを出力先とすることもできる。さらに、姿勢推定装置１００を利用する利用者の関係者、例えば介護士や医者などの医療関係者が使用する端末装置を出力先とすることもできる。これによって、院外、例えば在宅や在席のモニタリングサービスも可能になる。なお、診断プログラムの診断結果も、姿勢推定装置１００の表示部を始め、関係者の端末装置に表示させることができるのも言うまでもない。
【００６２】
なお、図１に示した各機能部は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などに姿勢推定プログラムを実行させることによって実現できる。また、上記の各機能部は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。上記の機能部には、取得部１１０、第１算出部１２０、パラメータ登録部１４０、パラメータ設定部１５０、第２算出部１６０、第３算出部１７０、形状可視化部１８０及び負荷算出部１９０などが含まれる。
【００６３】
また、上記のパラメータ記憶部１３０や内部メモリには、一例として、半導体メモリ素子を採用できる。例えば、半導体メモリ素子の一例としては、ＶＲＡＭ（Video  Random  Access  Memory）、ＤＲＡＭ（Dynamic  Random  Access  Memory）やＳＲＡＭ（Static  Random  Access  Memory）やフラッシュメモリ（flash  memory）などが挙げられる。また、半導体メモリ素子等のメモリ装置の代わりに、ハードディスク、光ディスクなどの補助記憶装置を代用することとしてもよい。
【００６４】
［処理の流れ］
続いて、本実施例に係る姿勢推定装置の処理の流れについて説明する。なお、ここでは、姿勢推定装置１００によって実行される（１）パラメータ登録処理を説明した後に、（２）姿勢推定処理を説明し、その後、（３）負荷算出処理について説明することとする。
【００６５】
（１）パラメータ登録処理
図６は、実施例１に係るパラメータ登録処理の手順を示すフローチャートである。このパラメータ登録処理は、姿勢推定処理を実行する前段階に予め実行することもできるし、姿勢推定処理と並行に実行することもできる。なお、パラメータ登録処理は、センサ１〜Ｓからセンサ値が取得される限り、繰り返し実行することができる。
【００６６】
図６に示すように、センサ１〜Ｓからセンサ値Ｑ（ｔ）が取得されると（ステップＳ１０１）、パラメータ登録部１４０は、上記の式（１）及び式（２）にしたがって矢状面上の傾斜角ａ１と、前額面上の傾斜角ａ２とをセンサごとに算出する（ステップＳ１０２）。そして、パラメータ登録部１４０は、上記の式（３）にしたがって各センサ１〜Ｓの取り付け時の回転を補正する（ステップＳ１０３）。
【００６７】
ここで、センサ数Ｓ＜背骨の数Ｍである場合（ステップＳ１０４Ｙｅｓ）、パラメータ登録部１４０は、各センサ間に存在する骨の要素における傾斜角を線形補間することによって背１〜Ｍの測定角度Ａ（ｔ）を算出する（ステップＳ１０５）。なお、センサ数Ｓ＝背骨の数Ｍである場合には（ステップＳ１０４Ｎｏ）、各センサ１〜Ｓの傾斜角をそのまま骨１〜Ｍの測定角度とし、上記のステップＳ１０６の処理へ移行する。
【００６８】
その後、パラメータ登録部１４０は、直立、前屈、後屈や伏臥位などの姿勢ごとに当該姿勢で算出され得る各骨１〜Ｍの傾斜角が対応付けられた対応表と、ステップＳ１０５で算出された測定角度Ａ（ｔ）とを比較する（ステップＳ１０６）。
【００６９】
このとき、測定角度Ａ（ｔ）が上記の対応表にある姿勢の傾斜角から所定の範囲内である場合（ステップＳ１０７Ｙｅｓ）、パラメータ登録部１４０は、パラメータ記憶部１３０に記憶されたパラメータのうち当該姿勢に対応するパラメータを測定角度Ａ（ｔ）に上書きして更新し（ステップＳ１０８）、処理を終了する。
【００７０】
（２）姿勢推定処理
図７は、実施例１に係る姿勢推定処理の手順を示すフローチャートである。この姿勢推定処理は、センサ１〜Ｓからセンサ値が取得され続ける限り、繰り返し実行することができる。
【００７１】
図７に示すように、センサ１〜Ｓからセンサ値Ｑ（ｔ）が取得されると（ステップＳ３０１）、第１算出部１２０は、上記の式（１）及び式（２）にしたがって矢状面上の傾斜角ａ１と、前額面上の傾斜角ａ２とをセンサごとに算出する（ステップＳ３０２）。そして、第１算出部１２０は、上記の式（３）にしたがって各センサ１〜Ｓの取り付け時の回転を補正する（ステップＳ３０３）。
【００７２】
ここで、センサ数Ｓ＜背骨の数Ｍである場合（ステップＳ３０４Ｙｅｓ）、第１算出部１２０は、各センサ間に存在する骨の要素における傾斜角を線形補間することによって背１〜Ｍの測定角度Ａ（ｔ）を算出する（ステップＳ３０５）。なお、センサ数Ｓ＝背骨の数Ｍである場合には（ステップＳ３０４Ｎｏ）、各センサ１〜Ｓの傾斜角をそのまま骨１〜Ｍの測定角度とし、上記のステップＳ３０６の処理へ移行する。
【００７３】
そして、パラメータ設定部１５０は、モデル角度の計算に用いる拘束条件として可動範囲を設定したり、重み係数の計算に用いる骨の角度の初期値を設定したりする（ステップＳ３０６）。続いて、パラメータ設定部１５０は、骨の数をカウントするカウンタｎ及び反復回数をカウントするカウンタｋの値を初期値、例えばゼロに設定する（ステップＳ３０７）。その後、パラメータ設定部１５０は、骨の数のカウンタｎを１つインクリメントする（ステップＳ３０８）。
【００７４】
続いて、第２算出部１６０は、ステップＳ３０６で設定された初期値もしくは反復時に設定された反復回数１回前の推定角度の下、背骨において互いに隣接する骨同士を滑らかに接続させるモデルと、ステップＳ３０６で設定された可動範囲とにしたがってモデル角度を算出する（ステップＳ３０９）。
【００７５】
そして、第３算出部１７０は、ステップＳ３０５で算出された測定角度Ａ（ｔ）と、ステップＳ３０６で設定された可動範囲Σ２とを用いて、重み係数ηｎ（ｋ）を決定する（ステップＳ３１０）。
【００７６】
その後、第３算出部１７０は、ステップＳ３０５で算出された測定角度と、ステップＳ３０９で算出されたモデル角度とを合成することによって推定角度を算出する（ステップＳ３１１）。
【００７７】
このとき、骨の数のカウンタｎの値が骨の数Ｍよりも小さい場合（ステップＳ３１２Ｙｅｓ）には、上記のステップＳ３０８の処理に戻り、次の骨に対し、上記のステップＳ３０９〜ステップＳ３１１の処理を実行する。
【００７８】
一方、骨の数のカウンタｎの値が骨の数Ｍと等しい場合（ステップＳ３１２Ｎｏ）には、第３算出部１７０は、下記の式（１０）で算出される更新量が所定の終了条件を満たすか否かを判定する（ステップＳ３１３）。例えば、第３算出部１７０は、更新量が反復回数１回前に計算された更新量よりも大きくなるか、あるいは更新量が所定の閾値、例えば１．０−１０よりも小さいかのいずれかに該当するかを判定する。
【００７９】
そして、更新量が所定の終了条件を満たさない場合（ステップＳ３１３Ｎｏ）には、第３算出部１７０は、反復回数のカウンタｋを１つインクリメントし（ステップＳ３１４）、パラメータ設定部３１５は、反復回数１回前の推定角度を初期値の代わりに設定するとともに、骨の数のカウンタｎに初期値を設定し（ステップＳ３１５）、上記のステップＳ３０８の処理に戻る。
【００８０】
一方、更新量が所定の終了条件を満たす場合（ステップＳ３１３Ｙｅｓ）には、形状可視化部１８０は、ステップＳ３１１で算出された推定角度Φ２（ｔ）と、パラメータ記憶部１３０に記憶された骨間の距離Ｌとを用いて、各骨の座標を算出し、各骨の座標を折れ線や曲線などによって接続する（ステップＳ３１６）。これによって、背骨の高次曲線を近似して可視化する。その後、負荷算出部１９０は、ステップＳ３１１で算出された推定角度を用いて、腰椎もしくは背骨の特定箇所に加わる負荷に関する指標を算出する負荷算出処理を実行する（ステップＳ３１７）。
【００８１】
そして、時刻ｔが１つインクリメントされた後（ステップＳ３１８）、ステップＳ３０１の処理に戻り、その後、姿勢推定装置１００は、上記のステップＳ３０１〜ステップＳ３１７までの処理を繰り返し実行する。
【００８２】
（３）負荷算出処理
図８は、実施例１に係る負荷算出処理の手順を示すフローチャートである。この負荷算出処理は、図７に示したステップＳ３１７に対応する処理であり、ステップＳ３１３Ｙｅｓの後であれば任意のタイミングに処理を起動できる。
【００８３】
図８に示すように、負荷算出部１９０は、所定の期間、例えば５時刻前までの期間にわたる推定角度Φ２（ｔ−５）〜Φ２（ｔ）の分散値が所定の閾値以上であるか否かを判定する（ステップＳ５０１）。
【００８４】
このとき、分散値が閾値未満である場合（ステップＳ５０１Ｎｏ）には、動的な状況下ではない、すなわち静的な状況下であると判断される。この場合、負荷算出部１９０は、第３算出部１７０によって算出された骨１〜Ｍの推定角度のうち第１腰椎Ｌ１〜第５腰椎Ｌ５に対応する各骨の推定角度から腰椎の角度を求める（ステップＳ５０２）。
【００８５】
そして、負荷算出部１９０は、腰椎の角度と負荷との対応関係が規定された負荷データから先に求めた腰椎の角度に対応する負荷を検索した上で所定の出力先へ出力し（ステップＳ５０３及びステップＳ５０４）、処理を終了する。
【００８６】
一方、分散値が閾値以上である場合（ステップＳ５０１Ｙｅｓ）には、動的な状況下であると判断される。この場合、負荷算出部１９０は、骨１〜Ｍごとに測定角度Ａ（ｔ）及び推定角度Φ２（ｔ）の差を算出する（ステップＳ５０５）。その上で、負荷算出部１９０は、測定角度Ａ（ｔ）及び推定角度Φ２（ｔ）の差が所定の閾値以上である箇所を所定の出力先に出力し（ステップＳ５０６）、処理を終了する。
【００８７】
［実施例１の効果］
上述してきたように、本実施例に係る姿勢推定装置１００は、加速度センサのセンサ値から算出される姿勢成分と、背骨の構造と運動学的特徴から算出される姿勢成分とを合成することによって背骨形状を算出する。このため、上記の光学式のモーションキャプチャシステムのように、適用場面が特定の場面に制限されない。また、動的状況下でも、背骨の構造上あり得ない（想定できない）曲線が背骨形状として出力されるケースを抑制できる。したがって、本実施例に係る姿勢推定装置１００によれば、姿勢推定の汎用性を向上させることができる。
【実施例２】
【００８８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００８９】
［適用範囲］
上記の実施例１では、センサの数Ｓ＜骨の数Ｍの場合、各センサの傾斜角を線形補間することによって各骨の測定角度を算出する場合を例示したが、必ずしも各骨ごとに推定角度を算出せずともよく、各センサの傾斜角を測定角度とし、センサごとに推定角度を算出することとしてもよい。
【００９０】
［歩行観察］
図９は、前屈中の背骨形状の推定結果の一例を示す図である。図１０は、歩行周期の背骨形状の一例を示す図である。姿勢推定装置１０は、図９及び図１０に示す背骨形状の歩行観察を行うことによって歩行時における過度な前傾などを報知できる。例えば、図１０に示す歩行周期で推定される背骨形状と、図９に示した前屈中の背骨形状との類似度が所定値以上である場合には、前傾姿勢で歩行が行われており、背骨に過度な負荷がかかっているおそれが高い。この場合、姿勢推定装置１０は、その旨を報知することができる。
【００９１】
［背骨形状の数値化］
例えば、姿勢推定装置１０は、背骨形状の可視化、負荷の計算などと同様に、背骨形状を数値化することも出来る。具体的には、姿勢推定装置１０は、時刻ｔにおける全推定角度を足し合わることで、背骨形状を数値化することが出来る。図１１は、背骨形状の数値化の一例を示す図である。図１１に示すグラフの縦軸は、推定角度の合計値を指し、図１１に示すグラフの横軸は、時間を指す。図１１に示すように、Ｃ字カーブの際は、全推定角度を足し合わせると値が大きくなり、Ｓ字カーブは相殺されて０に近づく。尚、グラフ下に載せた３つの曲線は、各３状態（Ｃ字、過渡状態、Ｓ字）の代表的な曲線である。例えば、姿勢推定装置１０は、Ｃ字の屈曲度、過渡状態の滑らかさ、Ｓ字の湾曲度を理想の値と比較することで、理想的な荷物の持ち上げなどを指導することが出来る。
【００９２】
［他の実装例］
上記の実施例１では、姿勢推定装置１００が上記の姿勢推定処理をスタンドアローンで実行する場合を例示したが、クライアントサーバシステムとして実装することもできる。例えば、姿勢推定装置１００は、姿勢推定サービスを提供するＷｅｂサーバとして実装することとしてもよいし、アウトソーシングによって姿勢推定サービスを提供するクラウドとして実装することとしてもかまわない。このように、姿勢推定装置１００がサーバ装置として動作する場合には、スマートフォンや携帯電話機等の携帯端末装置やパーソナルコンピュータ等の情報処理装置をクライアント端末として収容することができる。これらクライアント端末からネットワークを介してセンサ１〜Ｓのセンサ値が取得された場合に上記のパラメータ登録処理、姿勢推定処理や負荷算出処理などの各処理を実行し、姿勢の推定結果や推定結果を用いて診断がなされた診断結果をクライアント端末へ応答することによって姿勢推定サービスを提供することもできる。
【００９３】
［姿勢推定プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１２を用いて、上記の実施例と同様の機能を有する姿勢推定プログラムを実行するコンピュータの一例について説明する。
【００９４】
図１２は、実施例１及び実施例２に係る姿勢推定プログラムを実行するコンピュータの一例について説明するための図である。図１２に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００９５】
ＨＤＤ１７０には、図１２に示すように、上記の実施例１で示した取得部１１０、第１算出部１２０、パラメータ登録部１４０、パラメータ設定部１５０、第２算出部１６０、第３算出部１７０、形状可視化部１８０及び負荷算出部１９０と同様の機能を発揮する姿勢推定プログラム１７０ａが予め記憶される。この姿勢推定プログラム１７０ａについては、図１に示した各々の取得部１１０、第１算出部１２０、パラメータ登録部１４０、パラメータ設定部１５０、第２算出部１６０、第３算出部１７０、形状可視化部１８０及び負荷算出部１９０の各構成要素と同様、適宜統合又は分離しても良い。すなわち、ＨＤＤ１７０に格納される各データは、常に全てのデータがＨＤＤ１７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ１７０に格納されれば良い。
【００９６】
そして、ＣＰＵ１５０が、姿勢推定プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、図１２に示すように、姿勢推定プログラム１７０ａは、姿勢推定プロセス１８０ａとして機能する。この姿勢推定プロセス１８０ａは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、姿勢推定プロセス１８０ａは、図１に示した取得部１１０、第１算出部１２０、パラメータ登録部１４０、パラメータ設定部１５０、第２算出部１６０、第３算出部１７０、形状可視化部１８０及び負荷算出部１９０にて実行される処理、例えば図６〜図８に示す処理を含む。また、ＣＰＵ１５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【００９７】
なお、上記の姿勢推定プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【００９８】
１，２，・・・，Ｓ    センサ
１００    姿勢推定装置
１１０    取得部
１２０    第１算出部
１３０    パラメータ記憶部
１４０    パラメータ登録部
１５０    パラメータ設定部
１６０    第２算出部
１７０    第３算出部
１８０    形状可視化部
１９０    負荷算出部
【図１】
2015195913.tif 000012
【図２】
2015195913.tif 000013
【図３】
2015195913.tif 000014
【図４】
2015195913.tif 000015
【図５】
2015195913.tif 000016
【図６】
2015195913.tif 000017
【図７】
2015195913.tif 000018
【図８】
2015195913.tif 000019
【図９】
2015195913.tif 000020
【図１０】
2015195913.tif 000021
【図１１】
2015195913.tif 000022
【図１２】
2015195913.tif 000023