(57)【要約】【課題】姿勢探索の精度向上を図ること。【解決手段】情報処理装置１は、実姿勢情報取得部５２と、ボーン長取得部５１と、データベース生成部５３と、を備える。実姿勢情報取得部５２は、ユーザの実際の姿勢情報を取得する。ボーン長取得部５１は、ユーザの骨の長さを示すボーン長を取得する。データベース生成部５３は、実姿勢情報取得部５２により取得された姿勢情報と、ボーン長取得部５１により取得されたボーン長とに基づいて、ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、ユーザの姿勢情報を出力するための姿勢データベース７１を生成する。【選択図】図３
2014180519.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの実際の姿勢情報を取得する実姿勢情報取得手段と、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得手段と、
前記実姿勢情報取得手段により取得された前記姿勢情報と、前記ボーン長取得手段により取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
基準姿勢を取る前記ユーザに取り付けられた前記加速度センサから出力された加速度と、理想的な加速度とに基づいて、前記加速度センサの出力値を変換するための変換関数を生成する変換関数生成手段、
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ユーザに取り付けられた前記加速度センサから出力された加速度を、前記変換関数生成手段により生成された前記変換関数を用いて補正する加速度補正手段と、
前記加速度補正手段により補正された前記加速度をクエリとして、前記データベース生成手段により生成された前記データベースを参照することで、前記ユーザの姿勢情報を取得する姿勢情報取得手段と、
を更に備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記加速度補正手段は、前記変換関数を用いて補正された前記加速度に対して、フィルタ処理を施すことで更に補正する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ボーン長取得手段は、前記ユーザについての、人種、性別、身長、年齢、体重のうち少なくとも１以上の組合せの情報を入手し、当該情報を用いる所定の演算を実行することで、前記ボーン長を取得する
ことを特徴とする請求項１乃至４のうちの何れか１項に記載の情報処理装置。
【請求項６】
情報処理装置が実行する情報処理方法であって、
ユーザの実際の姿勢情報を取得する実姿勢情報取得ステップと、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得ステップと、
前記実姿勢情報取得ステップにおいて取得された前記姿勢情報と、前記ボーン長取得ステップにおいて取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成ステップと、
を含むことを特徴とする情報処理方法。
【請求項７】
コンピュータを、
ユーザの実際の姿勢情報を取得する実姿勢情報取得手段、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得手段、
前記実姿勢情報取得手段により取得された前記姿勢情報と、前記ボーン長取得手段により取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、現実の人物の動作を取得するモーションキャプチャの技術が盛んに実用化されている。モーションキャプチャとは、コンピュータグラフィックス（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ：以下「ＣＧ」と呼ぶ）を用いた映像作成分野においては、人物の動きを撮影して取得した三次元的な情報をデジタルデータに変換して、コンピュータに様々な動作を与えたり、ユーザの動作の解析を行う技術をいう。
【０００３】
例えば、モーションキャプチャを行うために人物の身体に加速度センサ等の慣性センサを複数固定し、これら複数の慣性センサから得られた加速度データをクエリとしてデータベースを参照する技術が知られている（例えば、特許文献１参照）。これらデータベースには、所定の人物、例えばユーザについてのデータとして、その身体動作に対するデータや、その身体動作に対する加速度データが格納されている。従って、当該データベースに対しユーザの加速度データがクエリとして入力された場合、入力された加速度データに対応した姿勢動作（身体動作）がデータベースから参照される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４６７９６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１を含め従来のデータベースの加速度データは体の大きさに依存するため、ユーザの姿勢探索が行われた場合、その精度が必ずしも高いものではなく、その精度向上が望まれていた。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、姿勢探索の精度向上を図ることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一態様の情報処理装置は、
ユーザの実際の姿勢情報を取得する実姿勢情報取得手段と、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得手段と、
前記実姿勢情報取得手段により取得された前記姿勢情報と、前記ボーン長取得手段により取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成手段と、
を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、姿勢探索の精度向上を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る情報処理装置のハードウェアの構成を示すブロック図である。
【図２】５つのセンサが貼着された、モーションキャプチの対象となるユーザの外観の概略を示す図である。
【図３】図１の情報処理装置の機能的構成のうち、データベース生成処理、変換関数生成処理及び姿勢推定処理を実行するための機能的構成を示す機能ブロック図である。
【図４】図３の機能的構成を有する情報処理装置が実行する、データベース生成処理の流れを説明するフローチャートである。
【図５】図３の機能的構成を有する情報処理装置が実行する、変換関数生成処理の流れを説明するフローチャートである。
【図６】図３の機能的構成を有する情報処理装置が実行する、姿勢推定処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を用いて説明する。
【００１１】
図１は、本発明の実施形態に係る情報処理装置のハードウェアの構成を示すブロック図である。
情報処理装置１は、例えばサーバとして構成され、ユーザの動作を取得するモーションキャプチャの技術に使用される。
【００１２】
情報処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、バス１４と、入出力インターフェース１５と、センサ部１６と、入力部１７と、出力部１８と、記憶部１９と、通信部２０と、ドライブ２１と、を備えている。
【００１３】
ＣＰＵ１１は、ＲＯＭ１２に記録されているプログラム、又は、記憶部１９からＲＡＭ１３にロードされたプログラムに従って各種の処理を実行する。
【００１４】
ＲＡＭ１３には、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００１５】
ＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インターフェース１５も接続されている。入出力インターフェース１５には、センサ部１６、入力部１７、出力部１８、記憶部１９、通信部２０及びドライブ２１が接続されている。
【００１６】
センサ部１６は、ユーザの身体の動きを所定の物理量で計測する複数のセンサから構成される。
本実施形態において、センサ部１６は、複数の３軸加速度センサにより構成される。
３軸加速度センサは、ピエゾ抵抗型もしくは静電容量型の検出機構により３軸加速度成分を検出して、その検出結果を表す３軸成分毎の加速度データを出力する。これらの３軸加速度センサは、モーションキャプチャの対象物であるユーザに対し予め決められた向きで複数個取り付けられる。
【００１７】
ここで、図２を参照して、モーションキャプチャの対象となるユーザに貼着された３軸加速度センサについて説明する。なお、以下、特に断りのない限り、センサとは、３軸加速度センサを意味するものとする。
図２は、５つのセンサが貼着された、モーションキャプチの対象となるユーザの外観の概略を示す図である。
図２の例では、センサ部１６（図１）を構成する５つのセンサ１６−１乃至１６−５が、ユーザ１００の身体の各部に貼着されている。
具体的には、図２（１）に示すように、センサ１６−１はユーザ１００の左手の先端に、センサ１６−２はユーザ１００の右手の先端に、センサ１６−３はユーザ１００の左足の先端に、センサ１６−４はユーザ１００の右足の先端に、センサ１６−５はユーザ１００の体幹に、それぞれ貼着されている。
図２（１）に示すように、モーションキャプチャの開始時には、ユーザ１００は、図２（１）の手前側の面（以下、この面を「正面」と呼ぶ）を向いている。
モーションキャプチャの開始後に、例えば図２（２）に示すように、ユーザ１００の左手（正面から見た場合右側の手）に貼着されたセンサ１６−２が正面に向かって下方に僅かに移動すると、情報処理装置１は、ユーザ１００の動作として左手が下方に移動したことを検出する。
同様に、モーションキャプチャの開始後に、例えば図２（３）に示すように、ユーザ１００の左手に貼着されたセンサ１６−１及び右手（正面から見た場合左側の手）に貼着されたセンサ部１６−２が下方に僅かに移動すると、情報処理装置１は、ユーザ１００の動作として左手及び右手が下方に移動したことを検出する。更に、例えば図２（３）に示すように、ユーザ１００の左足（正面に向かって右側の足）に貼着されたセンサ部１６−３が上方に僅かに移動すると、情報処理装置１は、ユーザ１００の動作として左足が上方に移動したことを検出する。
【００１８】
図１に戻り、入力部１７は、各種釦等で構成され、ユーザの指示操作に応じて各種情報を入力する。
出力部１８は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
【００１９】
記憶部１９は、ハードディスク或いはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種画像のデータの他、アプリケーションプログラム等の各種プログラム等を記憶する。
通信部２０は、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信を制御する。
【００２０】
ドライブ２１には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア３１が適宜装着される。ドライブ２１によってリムーバブルメディア３１から読み出されたプログラムは、必要に応じて記憶部１９にインストールされる。また、リムーバブルメディア３１は、記憶部１９に記憶されている画像のデータ等の各種データも、記憶部１９と同様に記憶することができる。
【００２１】
図３は、このような情報処理装置１の機能的構成のうち、データベース生成処理、変換関数生成処理及び姿勢推定処理を実行するための機能的構成を示す機能ブロック図である。
データベース生成処理とは、モーションキャプチャの前処理の１つであって、複数の姿勢情報と共にボーン長を取得し、これらを用いて姿勢データベースを生成するまでの一連の処理をいう。ボーン長とは、人物の骨格を構成する骨の長さであり、モーションキャプチャの対象となる人物を構成する各々の関節の間の長さを示している。ボーン長は、個々人の固有差があるため、モーションキャプチャの対象となる人物毎に習得される。
変換関数生成処理とは、モーションキャプチャの前処理の１つであって、センサ部１６から出力される加速度には誤差が含まれているため、当該誤差が除去された加速度を出力する変換関数φを生成して記憶するまでの一連の処理をいう。
姿勢推定処理とは、モーションキャプチャの対象となるユーザの身体の各部に貼着されたセンサ（図２の例では、センサ１６−１乃至１６−５）から出力された加速度を取得し、取得した加速度を変換関数φで補正（変換）し、補正後の加速度をクエリとして姿勢データベースを参照することでユーザの姿勢情報を取得して、当該姿勢情報に基づいてユーザの現在の姿勢を推定するまでの一連の処理をいう。
【００２２】
ＣＰＵ１１においては、データベース生成処理、変換関数生成処理又は姿勢推定処理の実行が制御される場合、前処理部４１と、実動作部４２と、が機能する。
前処理部４１においては、主としてデータベース生成処理又は変換関数生成処理の実行が制御される場合、ボーン長取得部５１と、実姿勢情報取得部５２と、データベース生成部５３と、変換関数生成部５４と、が機能する。
実動作部４２においては、主として姿勢推定処理の実行が制御される場合、加速度取得部６１と、加速度補正部６２と、姿勢情報取得部６３と、姿勢推定部６４と、が機能する。
また、記憶部１９の一領域には、姿勢データベース７１が記憶されており、また、記憶部１９の別の一領域には変換関数記憶部７２が設けられている。
【００２３】
ボーン長取得部５１は、前処理のデータベース生成処理の実行に際し、姿勢推定処理におけるモーションキャプチャの対象となるユーザのボーン長Ｂｌｅｎｇｔｈ＾を取得する。
ボーン長取得部５１により取得されるボーン長Ｂｌｅｎｇｔｈ＾は、本実施形態ではユーザの入力部１７に対する操作に基づく入力情報が採用されているが、特にこれに限定されない。例えばボーン長取得部５１は、ユーザに関する各種情報を取得し、具体的には例えば、人種、性別、身長、年齢、体重等をうち少なくとも１以上の組合せの情報を取得し、取得した情報に基づいて所定の演算をすることで、ボーン長Ｂｌｅｎｇｔｈ＾を取得してもよい。
【００２４】
実姿勢情報取得部５２は、前処理のデータベース生成処理の実行に際し、ユーザのあらゆる実際の動作の姿勢情報を時系列順にインデックスｔ（時刻ｔ）を付しつつ取得する。
姿勢情報とは、その名の如く、モーションキャプチャの対象となる人物（ここではユーザ）の瞬時の姿勢を示す情報であれば足りるが、本実施形態では、インデックスとしての時刻ｔにおけるユーザの各々の関節角度θｔ＾が採用されている。関節角度θ＾とは、人物の各関節を中心として拡開する２つの骨間の角度である。なお、以下、関節角度θを、「姿勢θ」とも適宜呼ぶ。
【００２５】
データベース生成部５３は、実姿勢情報取得部５２により取得された一連の時系列の姿勢θ（ｉｎｄｅｘ）＾と、ボーン長取得部５１により取得されたボーン長Ｂｌｅｎｇｔｈ＾とに基づいて、モーションキャプチャの対象となる人物（ここではユーザ）についての姿勢データベース７１を生成する。
【００２６】
具体的には例えば、姿勢データベースの生成にあたり、次の式（１）と式（２）が用いられる。
Ｂｐｏｓｉｔｉｏｎ＾＝Ｆｕｎｃｔｉｏｎ（θ＾，Ｂｌｅｎｇｔｈ＾）  ・・・式（１）
Ｂａｃｃ＾＝（ｄ／ｄｔ）（ｄ／ｄｔ）Ｂｐｏｓｉｔｉｏｎ＾＋（−Ｇ）  ・・・式（２）
式（１）において、関節位置Ｂｐｏｓｉｔｉｏｎ＾は、あらゆる関節の位置をベクトルで標記した値である。関節の位置Ｂｐｏｓｉｔｉｏｎ＾は、姿勢θ＾と、ボーン長（関節間の長さ）Ｂｌｅｎｇｔｈ＾を引数とする関数Ｆｕｎｃｔｉｏｎの出力として算出される。ボーン長Ｂｌｅｎｇｔｈ＾は、ベクトルで表記した値である。
式（２）において、Ｂａｃｃ＾は、各々の関節の加速度をベクトルで標記した値であり、式（１）に従って算出された関節位置Ｂｐｏｓｉｔｉｏｎ＾に対して２階の時間微分が施された後、重力の影響として重力加速度Ｇが加算されることによって算出される。重力加速度Ｇは、主として重力方向（垂直方向）のみに影響を与える因子である。
【００２７】
データベース生成部５３は、姿勢推定処理におけるモーションキャプチャの対象となるユーザの基本情報として、ボーン長取得部５１により取得されたボーン長Ｂｌｅｎｇｔｈ＾と、実姿勢情報取得部５２により取得された一連の時系列の姿勢θ（ｉｎｄｅｘ）＾とを式（１）に代入して演算することで、一連の時系列の姿勢θ（ｉｎｄｅｘ）にそれぞれ対応した一連の関節位置Ｂｐｏｓｉｔｉｏｎ＾を得る。そして、データベース生成部５３は、この一連の関節位置Ｂｐｏｓｉｔｉｏｎ＾を式（２）に代入して演算することで、一連の時系列の姿勢θ（ｉｎｄｅｘ）にそれぞれ対応した一連の加速度Ｂａｃｃ（ｉｎｄｅｘ）＾を得る。
即ち、ボーン長Ｂｌｅｎｇｔｈ＾と、一連の時系列の関節角度θ（ｉｎｄｅｘ）＾とがユーザの基本情報として入力されて、式（１）及び式（２）の演算が行われることによって、一連の時系列の姿勢θ（ｉｎｄｅｘ）＾にそれぞれ対応した一連の加速度Ｂａｃｃ（ｉｎｄｅｘ）＾が生成される。
【００２８】
そして、データベース生成部５３は、これら一連の加速度Ｂａｃｃ（ｉｎｄｅｘ）＾に対して（近似）ｋ最近傍探索ができるよう、データを構造化する。
即ち、データベース生成部５３は、センサ部１６から出力された加速度（より正確には、本実施形態では後述の変換関数により変換後の加速度）をクエリとして入力した場合、一連の加速度Ｂａｃｃ（ｉｎｄｅｘ）＾に対して（近似）ｋ最近傍探索を行い、クエリ近傍の加速度情報Ｂａｃｃ（ｉｎｄｅｘ）＾と、それに対応する姿勢θ＾（ｉｎｄｅｘ）を出力することが可能なデータベースを、姿勢データベース７１として生成して記憶部１９に記憶させる。
【００２９】
以上、前処理の１つとしてデータベース生成処理が実行される場合に機能する、ボーン長取得部５１、実姿勢情報取得部５２、及びデータベース生成部５３について説明した。
次に、前処理の別の１つとして変換関数生成処理が実行される場合に機能する、変換関数生成部５４について説明する。
【００３０】
変換関数生成部５４は、センサ部１６から出力された加速度Ｇを、理想的な加速度Ｇ’に変換（補正）するための変換関数φ（Ｇ）を生成する。
【００３１】
以下、変換関数φの生成手法の一例について説明する。
姿勢推定処理におけるモーションキャプチャの対象となるユーザは、当該姿勢推定処理が実行される前の任意のタイミングで、基準姿勢で静止状態となる。
ここで、基準姿勢とは、ユーザの手足に貼着されたセンサ（図２の例ではセンサ１６−１乃至１６−５）の軸が重力軸に対して平行となるような姿勢をいう。例えば、ユーザが、手足のボーンの軸が重力方向と平行となるような姿勢を継続して取っている状態が、基準姿勢での静止状態に該当する。
基準姿勢で静止状態のユーザの手足にはセンサ（図２の例ではセンサ１６−１乃至１６−５）が貼着されており、この状態でセンサから出力されるベクトル値が、加速度Ｇである。
また、姿勢データベース７１で用いられている骨格のデータが、基準姿勢で静止しているときの仮想的に手足に取り付けられたセンサから出力されるベクトル値が、理想的な加速度Ｇ’であるものとする。
変換関数生成部５４は、次式（３）が成立するような変換関数φ（）を求める。本実施形態では、この変換関数φ（）として四元数が用いられている。
Ｇ’＝φ（Ｇ）・・・式（３）
後述の姿勢推定処理の実行時に、この変換関数φ（）が用いられると、センサからの実際の出力データが、姿勢データベース７１により近い値に変換されるので、精度良い姿勢の推定が可能になる。
【００３２】
更に以下、変換関数φの生成手法の具体例について説明する。
ここで、図２に示すように、センサのＹ軸は鉛直方向と略平行になり、Ｘ軸及びＺ軸は水平方向にそれぞれ略平行となるように設定されているものとする。この時、理想的には、センサの重力方向（鉛直方向）に平行なＹ軸の出力のみが「１Ｇ」となり、Ｘ軸及びＹ軸の出力が「０」となるような状態である。
即ち、理想的な加速度Ｇ’＝（ｘ，ｙ，ｚ）＝（０，１Ｇ，０）となる。しかしながら、実際にはセンサがユーザの骨に対して傾いて設定されているため、理想的な加速度Ｇ’＝（Δｘ，ｙ，Δｚ）となる。
変換関数生成部５４は、Ｇ’＝φ（Ｇ）が成立するような変換関数φ（）を求める。本実施形態では、この変換関数φ（）として四元数が用いられている。この四元数は、回転軸Ｒ＝（−Δｘ，０，Δｚ）、回転角θ＝ａｔａｎ（√（Δｘ２＋Δｚ２）／ｙ）というａｎｇｌｅ  ａｘｉｓ表現で表される。
変換関数生成部５５は、このようにして生成した変換関数φ（）を変換関数記憶部７２に記憶させる。
【００３３】
以上、前処理の際に機能する前処理部４１、具体的には、ボーン長取得部５１、実姿勢情報取得部５２、及びデータベース生成部５３、並びに変換関数生成部５４について説明した。
次に、モーションキャプチャが行われる姿勢推定処理の際に機能する実動作部４２、具体的には、加速度取得部６１、加速度補正部６２、姿勢情報取得部６３、及び姿勢推定部６４について説明する。
【００３４】
加速度取得部６１は、モーションキャプチャの対象となるユーザに取り付けられたセンサ（図２の例ではセンサ１６−１乃至１６−５）から出力された加速度Ａを取得する。
【００３５】
加速度補正部６２は、変換関数記憶部７２に記憶されている変換関数φを用いて、加速度取得部６１により取得された加速度Ａを補正する。
具体的には、加速度補正部６２は、加速度取得部６１により取得された加速度Ａを入力パラメータとして、変換関数記憶部７２に記憶されている変換関数φに代入して演算することにより、変換後（補正後）の加速度Ａ’＝φ（Ａ）を取得する。
更に、加速度補正部６２は、変換後の加速度Ａ’に対してフィルタ処理を施すことで、ノイズが除去された変換後の加速度Ａ’’＝Ｆｉｌｔｅｒ（Ａ’）を取得する。ここで、Ｆｉｌｔｅｒ（  ）とは、ローパスフィルタを示している。
【００３６】
姿勢情報取得部６３は、加速度補正部６２により取得された、変換後の加速度Ａ’’をクエリとして、姿勢データベース７１を参照する。
即ち、姿勢情報取得部６３は、姿勢データベース７１に基づいて、変換後の加速度Ａ’’に対するｋ最近傍探索を実施して、姿勢データベース７１内の加速度データＡｔの最近傍に対応する姿勢θ１〜θｋを取得する。
【００３７】
姿勢推定部６４は、姿勢情報取得部６３により取得された姿勢θ１〜θｋに基づいて、ユーザの現在の姿勢や行動認識を推定する。
【００３８】
次に、図４を参照して、このような図３の機能的構成の情報処理装置１が実行する、データベース生成処理について説明する。
図４は、図３の機能的構成を有する情報処理装置１が実行する、データベース生成処理の流れを説明するフローチャートである。
【００３９】
データベース生成処理は、モーションキャプチャ（姿勢推定処理）が実行される前の任意のタイミングで、開始され、次のような一連の処理が実行される。
【００４０】
ステップＳ１１において、ボーン長取得部５１は、ユーザのボーン長Ｂｌｅｎｇｔｈ＾を取得する。
【００４１】
ステップＳ１２において、実姿勢情報取得部５２は、ユーザの一連の時系列の姿勢θ＾を取得する。
【００４２】
ステップＳ１３において、データベース生成部５３は、ユーザのボーン長Ｂｌｅｎｇｔｈ＾と連の時系列の姿勢θ＾とを上述の式（１）に代入して演算することで、一連の時系列の姿勢θ（ｉｎｄｅｘ）にそれぞれ対応した一連の関節位置Ｂｐｏｓｉｔｉｏｎ＾を算出する。
【００４３】
ステップＳ１４において、データベース生成部５３は、一連の関節位置Ｂｐｏｓｉｔｉｏｎ＾を上述の式（２）に代入して演算することで、一連の時系列の姿勢θ（ｉｎｄｅｘ）にそれぞれ対応した一連の加速度Ｂａｃｃ（ｉｎｄｅｘ）＾を算出する。
【００４４】
ステップＳ１５において、データベース生成部５３は、一連の加速度Ｂａｃｃ（ｉｎｄｅｘ）＾を用いて、姿勢データベース７１を生成する。
姿勢データベース７１が記憶部１９に格納されると、データベース生成処理は終了となる。
【００４５】
次に、図５を参照して、このような図３の機能的構成の情報処理装置１が実行する、変換関数生成処理について説明する。
図５は、図３の機能的構成を有する情報処理装置１が実行する、変換関数生成処理の流れを説明するフローチャートである。
【００４６】
変換関数生成処理は、モーションキャプチャ（姿勢推定処理）が実行される前の任意のタイミングで開始され、次のような一連の処理が実行される。
【００４７】
ステップＳ３１において、変換関数生成部５４は、ユーザの基準姿勢における加速度Ｇ、即ちセンサから出力される加速度Ｇを取得する。
【００４８】
ステップＳ３２において、変換関数生成部５４は、ス加速度Ｇに基づいて、理想的な基準姿勢におけるＧ’＝φ（Ｇ）が成立する、変換関数φ（）を生成する。
変換関数（）が記憶部１９に格納されると、変換関数生成処理は終了となる。
【００４９】
次に、図６を参照して、このような図３の機能的構成の情報処理装置１が実行する、姿勢推定処理について説明する。
図６は、図３の機能的構成を有する情報処理装置１が実行する、姿勢推定処理の流れを説明するフローチャートである。
【００５０】
姿勢推定処理は、モーションキャプチャの対象となるユーザの身体の各部にセンサ（図２の例では、センサ１６−１乃至１６−５）が貼着された状態で、入力部１７に対する所定の操作がなされたことを契機として開始され、次のような一連の処理が実行される。
【００５１】
ステップＳ５１において、加速度取得部６１は、ユーザに取り付けられたセンサから加速度Ａを取得する。
【００５２】
ステップＳ５２において、加速度補正部６２は、ステップＳ３１の処理で取得された加速度データＡを変換関数φ（）に代入して演算することで、変換後の加速度Ａ’＝φ（Ａ）を取得する。
【００５３】
ステップＳ５３において、加速度補正部６２は、ステップＳ５２の処理で取得された変換後の加速度Ａ’に対してフィルタ処理を施すことで、ノイズが除去された変換後の加速度Ａ’’＝Ｆｉｌｔｅｒ（Ａ’）を取得する。
【００５４】
ステップＳ５４において、姿勢情報取得部６３は、ステップＳ５３の処理で取得された加速度Ａ’’をクエリとして、姿勢データベース７１を参照する。
【００５５】
ステップＳ５５において、姿勢情報取得部６３は、姿勢データベース７１に基づいて、変換後の加速度Ａ’’に対するｋ最近傍探索を実施して姿勢、データベース７１内の加速度Ａｔの最近傍に対応する姿勢θ１〜θｋを取得する。
【００５６】
ステップＳ５６において、姿勢推定部６４は、ステップＳ５５の処理で取得された姿勢θ１〜θｋに基づいて現在の姿勢を推定する。この処理が終了すると、姿勢推定処理は終了となる。
【００５７】
以上説明したように、本実施形態の情報処理装置１は、実姿勢情報取得部５２と、ボーン長取得部５１と、データベース生成部５３と、を備える。
実姿勢情報取得部５２は、ユーザの実際の姿勢情報を取得する。
ボーン長取得部５１は、ユーザのボーン長を取得する。
データベース生成部５３は、実姿勢情報取得部５２により取得された姿勢情報と、ボーン長取得部５１により取得されたボーン長の情報とに基づいて、姿勢データベース７１を生成する。
このようにして、姿勢データベース７１の生成にあたり、ユーザのボーン長が入力されるので、当該姿勢データベース７１内の加速度のデータが、ユーザに適合したものとなる。その結果、個々人の個体差がある骨格の違いに関わらず、姿勢データベース７１に基づいて現実の姿勢に類似した姿勢が精度良く推定され、ひいては、姿勢探索の精度向上を図ることができる。
より具体的には、骨格の大きさは、個々人の個体差があるため、骨格を構成する骨の長さ、即ちボーン長は、人それぞれ異なる。
この点、身体姿勢の情報が含まれているデータベース内の加速度のデータは、ユーザの身体の大きさに依存する。従来のデータベースでは、ユーザのボーン長と、加速度データを生成するために基準とされたデータベース内のボーン長とが異なる場合が多く、このような場合には、類似した姿勢動作を得ることが困難になり、姿勢探索の精度が低くなる。
これに対して、本実施形態の情報処理装置１においては、ユーザのボーン長が考慮されて姿勢データベース７１が生成されるので、ユーザのボーン長と、姿勢データベース７１内のボーン長とが摺りあわされ、その結果、姿勢探索の精度向上を図ることができる。
【００５８】
また、本実施形態の情報処理装置１は、変換関数生成部５４を更に備える。
変換関数生成部５４は、基準姿勢を取るユーザに取り付けられたセンサから出力された加速度と、理想的な加速度とに基づいて、当該センサの出力値を変換するための変換関数φ（）を生成することができる。
ここで、ユーザへのセンサの取り付け向きによっては加速度のデータの波形が変化することとなる。このため、従来のデータベースについては、その内部に仮想的に取り付けられているセンサの姿勢と、現実にユーザに取り付けられているセンサの取り付け姿勢との間に差異がある場合が多く、このような場合、従来のデータベース内の加速度と、センサから出力された現実の加速度との間に誤差が生ずることになる。その結果、従来のデータベースに基づいて現実の姿勢に類似した精度の高い姿勢動作を得にくくなり、姿勢探索の精度が低くなる。
この対策としては、予め決められた向きにセンサを正確に取り付けることが挙げられる。しかしながら、センサの向きを正確に取り付けることは実際上困難である。また、人体骨格モデルのボーンは直線として扱われているが、実際の人体は丸みを帯びており、ボーンに沿って多数のセンサを固定するのは現実上困難である。従って、この対策を取ることは現実的でない。
これに対して、本実施形態の情報処理装置１においては、基準姿勢を取るユーザに取り付けられたセンサから出力された加速度と、理想的な加速度とに基づいて、当該センサの出力値を変換するための変換関数φ（）を用いることができる。これにより、加速度センサのユーザへの取り付けに伴い生じる誤差を減少させることができる。換言すると、姿勢データベース７１内の加速度と、センサから出力された現実の加速度との摺り合わせが行われ、ユーザへのセンサの取り付け向きによらず、姿勢探索の精度向上を図ることができる。
【００５９】
また、本実施形態の情報処理装置１は、加速度補正部６２と、姿勢情報取得部６３と、を更に備える。
加速度補正部６２は、ユーザに取り付けられたセンサから出力された加速度を、変換関数φ（）を用いて補正する。
姿勢情報取得部６３は、補正された加速度をクエリとして、姿勢データベース７１を参照することで、ユーザの姿勢情報を取得する。
これにより、精度向上が図られた姿勢探索の実現が容易に可能になる。
【００６０】
また、本実施形態の情報処理装置１の前記加速度補正手段は、前記変換関数を用いて補正された前記加速度に対して、フィルタ処理を施すことで更に補正する。
即ち、センサから現実に出力される加速度のデータにはノイズが含まれており、従来においては、データベース内の加速度のデータの波形とは異なる場合が多く、姿勢探索の精度が悪化していた。
これに対して、本実施形態では、フィルタ処理が施されることでノイズが除去されるので、ノイズ除去後の補正された加速度は、データベース内の加速度の波形に近づくことになるため、姿勢探索の精度向上を図ることができる。
【００６１】
また、本実施形態の情報処理装置１のボーン長取得部５１は、ユーザについての、人種、性別、身長、年齢、体重のうち少なくとも１以上の組合せの情報を入手し、当該情報を用いる所定の演算を実行することで、ボーン長を取得する。
これにより、人種、性別、身長、年齢、体重のうち少なくとも１以上の組合せにとって適切なボーン長が取得されて、姿勢データベース７１が生成される。従って、人種、性別、身長、年齢、体重のうち少なくとも１以上の組合せに該当する人物がモーションキャプチャの対象となった場合、姿勢データベース７１に基づいて現実の姿勢に類似した姿勢が精度良く推定される。即ち、姿勢探索の精度向上を図ることができる。
【００６２】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００６３】
上述の実施形態では、センサ１６−１はユーザ１００の左手の先端に、センサ１６−２はユーザ１００の右手の先端に、センサ１６−３はユーザ１００の左足の先端に、センサ１６−４はユーザ１００の右足の先端に、センサ１６−５はユーザ１００の体幹に、それぞれ貼着されているが、これに限られるものではない。即ち、センサの個数及び貼着場所は、特に限定されない。
【００６４】
また、上述の実施形態では、モーションキャプチャを例にして説明しているが、その他に移動する対象物の追跡といった用途に使用することもできる。
【００６５】
また、上述の実施形態では、本発明が適用される情報処理装置１は、パーソナルコンピュータを例として説明したが、特にこれに限定されない。
例えば、本発明は、情報処理機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、ノート型のパーソナルコンピュータ、デジタルカメラ、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、スマートフォン、ポータブルゲーム機等に適用可能である。
【００６６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図３の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が情報処理装置１に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図３の例に限定されない。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【００６７】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【００６８】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図１のリムーバブルメディア３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア３１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図１のＲＯＭ１２や、図１の記憶部１９に含まれるハードディスク等で構成される。
【００６９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【００７０】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、更に、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００７１】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
ユーザの実際の姿勢情報を取得する実姿勢情報取得手段と、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得手段と、
前記実姿勢情報取得手段により取得された前記姿勢情報と、前記ボーン長取得手段により取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成手段と、
を備えることを特徴とする情報処理装置。
［付記２］
基準姿勢を取る前記ユーザに取り付けられた前記加速度センサから出力された加速度と、理想的な加速度とに基づいて、前記加速度センサの出力値を変換するための変換関数を生成する変換関数生成手段、
を更に備えることを特徴とする付記１に記載の情報処理装置。
［付記３］
前記ユーザに取り付けられた前記加速度センサから出力された加速度を、前記変換関数生成手段により生成された前記変換関数を用いて補正する加速度補正手段と、
前記加速度補正手段により補正された前記加速度をクエリとして、前記データベース生成手段により生成された前記データベースを参照することで、前記ユーザの姿勢情報を取得する姿勢情報取得手段と、
を更に備えることを特徴とする付記２に記載の情報処理装置。
［付記４］
前記加速度補正手段は、前記変換関数を用いて補正された前記加速度に対して、フィルタ処理を施すことで更に補正する、
ことを特徴とする付記３に記載の情報処理装置。
［付記５］
前記ボーン長取得手段は、前記ユーザについての、人種、性別、身長、年齢、体重のうち少なくとも１以上の組合せの情報を入手し、当該情報を用いる所定の演算を実行することで、前記ボーン長を取得する
ことを特徴とする付記１乃至４のうちの何れか１つに記載の情報処理装置。
［付記６］
情報処理装置が実行する情報処理方法であって、
ユーザの実際の姿勢情報を取得する実姿勢情報取得ステップと、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得ステップと、
前記実姿勢情報取得ステップにおいて取得された前記姿勢情報と、前記ボーン長取得ステップにおいて取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成ステップと、  を含むことを特徴とする情報処理方法。
［付記７］
コンピュータを、
ユーザの実際の姿勢情報を取得する実姿勢情報取得手段、
前記ユーザの骨の長さを示すボーン長を取得するボーン長取得手段、
前記実姿勢情報取得手段により取得された前記姿勢情報と、前記ボーン長取得手段により取得された前記ボーン長とに基づいて、前記ユーザに取り付けられた加速度センサから出力された加速度をクエリとして、前記ユーザの姿勢情報を出力するためのデータベースを生成するデータベース生成手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【００７２】
１・・・情報処理装置、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・バス、１５・・・入出力インターフェース、１６・・・センサ部、１７・・・入力部、１８・・・出力部、１９・・・記憶部、２０・・・通信部、２１・・・ドライブ、３１・・・リムーバブルメディア、４１・・・前処理部、４２・・・実動作部、５１・・・ボーン長取得部、５２・・・実姿勢情報取得部、５３・・・データベース生成部、５４・・・変換関数生成部、６１・・・加速度取得部、６２・・・加速度補正部、６３・・・姿勢情報取得部、６４・・・姿勢推定部、７１・・・姿勢データベース、７２・・・変換関数記憶部
【図１】
2014180519.tif 000003
【図２】
2014180519.tif 000004
【図３】
2014180519.tif 000005
【図４】
2014180519.tif 000006
【図５】
2014180519.tif 000007
【図６】
2014180519.tif 000008