(57)【特許請求の範囲】
【請求項１】
教師ビデオデータを利用する人体姿勢推定装置において、
前記教師ビデオデータから、動きのリズムを表すフレームであるビートフレームを取得する動き解析部と、
前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、
前記キーフレーム及び前記ビートフレームを表示する表示部と、
前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、
前記操作部による指定のキーフレームとビートフレームとを対応付ける動き対応部と、
前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、
を備えたことを特徴とする人体姿勢推定装置。
【請求項２】
教師ビデオデータから取得された、動きのリズムを表すフレームであるビートフレームを格納するビートフレーム記憶部と、
前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、
前記キーフレーム及び前記ビートフレームを表示する表示部と、
前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、
前記操作部による指定に基づいてキーフレームとビートフレームとを対応付ける動き対応部と、
前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、
を備えたことを特徴とする人体姿勢推定装置。
【請求項３】
前記動き対応部は、前記教師ビデオデータに含まれる前記指定のビートフレームの前後のフレームの中から、前記指定のキーフレームに最も類似するフレームを探索し、探索結果のフレームを前記指定のキーフレームに対応付ける、
ことを特徴とする請求項１又は２に記載の人体姿勢推定装置。
【請求項４】
前記操作部は、前記探索結果のフレーム内の人体姿勢をユーザが微調整する手段を有する、
ことを特徴とする請求項３に記載の人体姿勢推定装置。
【請求項５】
前記動き追跡部は、前記指定のキーフレームから次のキーフレームまでの動きを、パーティクルフィルタを用いた方法で追跡するときに、前記指定のキーフレームに対応付けられたビートフレーム内の人体姿勢を初期姿勢とする、
ことを特徴とする請求項１から４のいずれか１項に記載の人体姿勢推定装置。
【請求項６】
前記動き追跡部は、前記ユーザビデオデータ中の推定対象フレームにおける推定結果の人体姿勢に類似する人体姿勢を有するフレームを前記教師ビデオデータから探索し、探索結果のフレームの次のフレーム内の人体姿勢を該推定対象フレームの次の推定対象フレームの初期姿勢とする、
ことを特徴とする請求項１から５のいずれか１項に記載の人体姿勢推定装置。
【請求項７】
前記映像解析部は、
前記ユーザビデオデータを特定色空間および特定解像度に変換する手段と、
前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、
特定主成分座標に基づいて、極値を取る動きのキーフレームを判定する手段と、
を有することを特徴とする請求項１又は２に記載の人体姿勢推定装置。
【請求項８】
前記動き解析部は、
前記教師ビデオデータを関節位置空間に変換する手段と、
前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、
特定主成分座標に基づいて、極値を取る動きのビートフレームを判定する手段と、
を有することを特徴とする請求項１に記載の人体姿勢推定装置。
【請求項９】
入力装置と表示装置と演算処理装置とを備える人体姿勢推定装置を制御する方法であって、
教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、
前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、
前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、
前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、
を含むことを特徴とする人体姿勢推定方法。
【請求項１０】
前記教師ビデオデータからビートフレームを取得するステップをさらに含むことを特徴とする請求項９に記載の人体姿勢推定方法。
【請求項１１】
コンピュータに、
教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、
前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、
前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、
前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、
を実行させるためのコンピュータプログラム。
【請求項１２】
コンピュータに、
前記教師ビデオデータからビートフレームを取得するステップをさらに実行させるための請求項１１に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、人体の姿勢を推定する技術としては、大きく分けて、弁別的アプローチと生成的アプローチとが知られている。弁別的アプローチでは、画像測定から姿勢を推論するために外観に基づいた連想モデルを知ることによって、姿勢を推定する。生成的アプローチでは、画像観察を最良に説明する姿勢を見出すことによって、姿勢を推定する。
【０００３】
特許文献１では、ビデオカメラで撮影されたユーザの画像から、背景差分によってシルエットを抽出する。また、３次元人体モデルと多数の姿勢サンプルから生成した、様々な姿勢のシルエットで構成される姿勢辞書を準備しておく。この姿勢辞書内の多数のシルエットの中で、画像から抽出されたユーザのシルエットにもっとも近いものを、シルエット間の類似度（距離）に基づいて探索する。この探索は、様々な姿勢、画像内の様々な位置、大きさに対して行う。姿勢辞書内のシルエットは、人体の全関節の角度を要素とする姿勢ベクトルと関連付けられており、探索されたシルエットからユーザの姿勢を得ることができる。
【０００４】
特許文献２では、複数の画像用の観察ベクトルデータおよび対応する姿勢ベクトルデータを含む訓練データを取得する。観察ベクトルデータは観察空間の画像を表し、姿勢ベクトルデータは姿勢空間の同一の画像を表す。そして、訓練データに基づいて、観察空間から潜在空間へのマッピングのパラメータと、潜在空間から姿勢空間へのマッピングのパラメータと、潜在空間のパラメータと、を含むモデルを計算する。潜在空間は観察空間よりも低い次元を有し、潜在空間は姿勢空間よりも低い次元を有する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１１２２１１号公報
【特許文献２】特開２００９−１４６４０５号公報
【非特許文献】
【０００６】
【非特許文献１】ローレンス（Ｌａｗｒｅｎｃｅ）、「高次元データの視覚化用のガウス過程潜在変数モデル（Ｇａｕｓｓｉａｎ  Ｐｒｏｃｅｓｓ  Ｌａｔｅｎｔ  Ｖａｒｉａｂｌｅ  Ｍｏｄｅｌｓ  ｆｏｒ  Ｖｉｓｕａｌｉｓａｔｉｏｎ  ｏｆ  Ｈｉｇｈ  Ｄｉｍｅｎｓｉｏｎａｌ  Ｄａｔａ）」、神経情報処理システムに関する会議（Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｎｅｕｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｙｓｔｅｍｓ）、ＮＩＰＳ２００４
【非特許文献２】ローレンス（Ｌａｗｒｅｎｃｅ）他、「バック制約によるＧＰＬＶＭにおける局所距離保存（Ｌｏｃａｌ  Ｄｉｓｔａｎｃｅ  Ｐｒｅｓｅｒｖａｔｉｏｎ  ｉｎ  ｔｈｅ  ＧＰＬＶＭ  ｔｈｒｏｕｇｈ  Ｂａｃｋ  Ｃｏｎｓｔｒａｉｎｔｓ）」、ＩＣＭＬ２００６
【非特許文献３】ワング（Ｗａｎｇ）他、「ガウス過程力学モデル（Ｇａｕｓｓｉａｎ  Ｐｒｏｃｅｓｓ  Ｄｙｎａｍｉｃａｌ  Ｍｏｄｅｌｓ）」、ＮＩＰＳ２００５
【非特許文献４】ドイチャー（Ｄｅｕｔｓｃｈｅｒ）他、「アニールされた粒子フィルタリングによる関節のある身体のモーションキャプチャ（Ａｒｔｉｃｕｌａｔｅｄ  ｂｏｄｙ  ｍｏｔｉｏｎ  ｃａｐｔｕｒｅ  ｂｙ  ａｎｎｅａｌｅｄ  ｐａｒｔｉｃｌｅ  ｆｉｌｔｅｒｉｎｇ）」、ＣＶＰＲ２０００
【非特許文献５】インターネット＜ＵＲＬ：http://en.wikipedia.org/wiki/Principal_components_analysis#Software.2Fsource_code＞、平成２２年７月２０日検索
【非特許文献６】インターネット＜ＵＲＬ：http://www.gnu.org/software/gsl/＞、平成２２年７月２０日検索
【非特許文献７】M. Turk and A. Pentland, "Face recognition using eigenfaces", Proc. IEEE Conference on Computer Vision and Pattern Recognition, pp. 586‐591,1991.
【非特許文献８】HumanEva, "Synchronized Video and Motion Capture Dataset and Baseline Algorithm for Evaluation of Articulated Human Motion, L. Sigal", A. Balan and M. J. Black, International Journal of Computer Vision (IJCV), Special Issue on Evaluation of Articulated Human Motion and Pose Estimation, 2010.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上述した特許文献１の従来技術では、事前に準備した姿勢辞書中にある動きに推定可能範囲が限定される。このため、姿勢辞書の容量を拡大すると、計算量が増え、推定に要する時間が長くなる。特許文献２の従来技術では、ロバスト性（robust）および性能面で不十分である。
【０００８】
本発明は、このような事情を考慮してなされたもので、教師ビデオを利用することによって、教師ビデオの動きをまねたユーザの動きを撮影したユーザビデオからユーザの人体姿勢を精度よく推定することができる人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明に係る人体姿勢推定装置は、教師ビデオデータを利用する人体姿勢推定装置において、前記教師ビデオデータから、動きのリズムを表すフレームであるビートフレームを取得する動き解析部と、前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、前記キーフレーム及び前記ビートフレームを表示する表示部と、前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、前記操作部による指定のキーフレームとビートフレームとを対応付ける動き対応部と、前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、を備えたことを特徴とする。
【００１０】
本発明に係る人体姿勢推定装置は、教師ビデオデータから取得された、動きのリズムを表すフレームであるビートフレームを格納するビートフレーム記憶部と、前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、前記キーフレーム及び前記ビートフレームを表示する表示部と、前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、前記操作部による指定に基づいてキーフレームとビートフレームとを対応付ける動き対応部と、前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、を備えたことを特徴とする。
【００１１】
本発明に係る人体姿勢推定装置において、前記動き対応部は、前記教師ビデオデータに含まれる前記指定のビートフレームの前後のフレームの中から、前記指定のキーフレームに最も類似するフレームを探索し、探索結果のフレームを前記指定のキーフレームに対応付けることを特徴とする。
【００１２】
本発明に係る人体姿勢推定装置において、前記操作部は、前記探索結果のフレーム内の人体姿勢をユーザが微調整する手段を有することを特徴とする。
【００１３】
本発明に係る人体姿勢推定装置において、前記動き追跡部は、前記指定のキーフレームから次のキーフレームまでの動きを、パーティクルフィルタを用いた方法で追跡するときに、前記指定のキーフレームに対応付けられたビートフレーム内の人体姿勢を初期姿勢とすることを特徴とする。
【００１４】
本発明に係る人体姿勢推定装置において、前記動き追跡部は、前記ユーザビデオデータ中の推定対象フレームにおける推定結果の人体姿勢に類似する人体姿勢を有するフレームを前記教師ビデオデータから探索し、探索結果のフレームの次のフレーム内の人体姿勢を該推定対象フレームの次の推定対象フレームの初期姿勢とすることを特徴とする。
【００１５】
本発明に係る人体姿勢推定装置において、前記映像解析部は、前記ユーザビデオデータを特定色空間および特定解像度に変換する手段と、前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、特定主成分座標に基づいて、極値を取る動きのキーフレームを判定する手段と、を有することを特徴とする。
【００１６】
本発明に係る人体姿勢推定装置において、前記動き解析部は、前記教師ビデオデータを関節位置空間に変換する手段と、前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、特定主成分座標に基づいて、極値を取る動きのビートフレームを判定する手段と、を有することを特徴とする。
【００１７】
本発明に係る人体姿勢推定方法は、入力装置と表示装置と演算処理装置とを備える人体姿勢推定装置を制御する方法であって、教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、を含むことを特徴とする。
【００１８】
本発明に係る人体姿勢推定方法においては、前記教師ビデオデータからビートフレームを取得するステップをさらに含むことを特徴とする。
【００１９】
本発明に係るコンピュータプログラムは、コンピュータに、教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、を実行させるためのコンピュータプログラムであることを特徴とする。
【００２０】
本発明に係るコンピュータプログラムにおいては、コンピュータに、前記教師ビデオデータからビートフレームを取得するステップをさらに実行させるためのコンピュータプログラムであることを特徴とする。
これにより、前述の人体姿勢推定装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００２１】
本発明によれば、教師ビデオを利用することによって、教師ビデオの動きをまねたユーザの動きを撮影したユーザビデオからユーザの人体姿勢を精度よく推定することができるという効果が得られる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係る概念図である。
【図２】同実施形態に係る人体姿勢推定装置１の構成図である。
【図３】人体スケルトン型動きデータの定義例の概略図である。
【図４】図１に示す動き解析部２の構成図である。
【図５】本発明の一実施形態に係るデータ分割処理の概念図である。
【図６】本発明の一実施形態に係る主成分座標連結処理を説明するための概念図である。
【図７】本発明の一実施形態に係る正弦近似処理の概念図である。
【図８】図１に示す映像解析部４の処理の手順を示すフローチャートである。
【図９】本発明の一実施形態に係る解像度変換処理の概念図である。
【図１０】図１に示す動き対応部６の処理の手順を示すフローチャートである。
【図１１】本発明の他の実施形態に係る人体姿勢推定装置１の構成図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の一実施形態に係る概念図である。図１を参照して、本実施形態に係る概念を説明する。まず、動きの手本をコンピューターグラフィックス（ＣＧ）により映像化したＣＧ教師ビデオをモニタ上に再生し、再生された動きをユーザがまねたユーザの動きをビデオ撮影する。そして、ＣＧ教師ビデオにおける人体姿勢に基づいて、ユーザビデオにおける人体姿勢を推定する。
【００２４】
図２は、本実施形態に係る人体姿勢推定装置１の構成図である。図１において、人体姿勢推定装置１は、動き解析部２と映像解析部４と動き対応部６と動き追跡部８と表示部１０と操作部１２とを有する。表示部１０と操作部１２とは、それぞれ独立した表示装置と入力装置とから構成してもよく、或いは、タッチパネルのように表示装置と入力装置とが一体化した構成としてもよい。
【００２５】
人体姿勢推定装置１には、ＣＧ教師ビデオデータとユーザビデオデータとが入力される。人体姿勢推定装置１は、ＣＧ教師ビデオデータの映像における人体姿勢に基づいて、ユーザビデオデータの映像における人体姿勢を推定する。人体姿勢推定装置１は、推定した人体姿勢の動きデータ（人体姿勢推定データ）を出力する。
【００２６】
図３は、人体スケルトン型動きデータの定義例の概略図である。本実施形態では、人体姿勢の動きを表現するデータとして、人体スケルトン型動きデータを用いる。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図３には、人体スケルトン型動きデータの定義の一部分のみを示している。図３において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、である。
【００２７】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【００２８】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢（ポーズ）の連続により表すものであり、人の基本ポーズ（neutral pose）を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
【００２９】
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【００３０】
以下、人体スケルトン型動きデータのことを単に動きデータと称する。また、本実施形態では、ＣＧ教師ビデオデータは動きデータを用いて作成されている。
【００３１】
図４は、図１に示す動き解析部２の構成図である。図４において、動き解析部２は、物理量変換部２０、データ分割部２２、短時間主成分分析部２４、主成分座標連結部２６、ビート推定部２８及び後処理部３０を有する。動き解析部２には、ＣＧ教師ビデオデータが入力される。動き解析部２は、ＣＧ教師ビデオデータから、動きのリズムを表すフレーム（以下、説明の便宜上、ビートフレームと称する）を取得する。ビートフレームは、ＣＧ教師ビデオデータにおける、ある時刻の動きデータ（人体スケルトン型動きデータ）である。動き解析部２は、ビートフレームを特定する時刻（ビート時刻）を出力する。以下、図４を参照して、動き解析部２を詳細に説明する。
【００３２】
［物理量変換部］
物理量変換部２０は、ＣＧ教師ビデオデータ（動きデータ）を対象にして、各ジョイントがルートに対してどのくらいの位置で動いているのかを算出する。具体的には、物理量変換部２０は、入力されたＣＧ教師ビデオデータにおいて、時刻ｔにおけるジョイント相対位置を算出する。ジョイント相対位置は、ルートに対するジョイントの相対的な位置である。以下、物理量変換部２０が行うジョイント相対位置の計算方法を示す。
【００３３】
まず、ＣＧ教師ビデオデータの基本ポーズデータとフレームデータとを用いてジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻ｔにおけるｋ番目のジョイントの位置（ｘ，ｙ，ｚ座標）であるｐｋ（ｔ）は、（１）式および（２）式により計算される。なお、時刻ｔはフレームデータの時刻である。ここでは、時刻ｔとしてフレームインデックスを使用し、「ｔ＝０，１，２・・・Ｔ−１」の値を取ることとする。Ｔは、動きデータに含まれるフレームの個数である。
【００３４】
【数１】
0005604225.tif 000002
【００３５】
【数２】
0005604225.tif 000003
【００３６】
但し、０番目（ｉ＝０）のジョイントはルートである。Ｒａｘｉｓｉ−１，ｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント（「ｉ−１」番目のジョイント）間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ｒｉ（ｔ）は、ｉ番目のジョイントのローカル座標系におけるｉ番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Ｔｉ（ｔ）は、ｉ番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、ｉ番目のジョイントとその親ジョイント間の骨の長さを表す。
【００３７】
次いで、時刻ｔにおける、ルートに対するｋ番目のジョイントの相対位置（ジョイント相対位置）p’ｋ（ｔ）を（３）式により計算する。
【００３８】
【数３】
0005604225.tif 000004
【００３９】
但し、pｒｏｏｔ（ｔ）は時刻ｔにおけるルート（０番目のジョイント）の位置（p０（ｔ））である。
【００４０】
これにより、時刻ｔのフレーム「ｘ（ｔ）」は、「ｘ（ｔ）＝｛ｐ’１（ｔ），ｐ’２（ｔ），・・・，ｐ’Ｋ（ｔ）｝」と表される。但し、Ｋは、ルートを除いたジョイントの個数である。
【００４１】
なお、具体的なジョイントの例として、以下に示す２５個（Ｋ＝２５）のジョイントが挙げられる。1lhip, 2lfemur, 3ltibia, 4lfoot, 6rhip, 7rfemur, 8rtibia, 9rfoot, 11lowerback, 12upperback, 13thorax, 14lowerneck, 15upperneck, 17lclavicle, 18lhumerus, 19lradius, 20lwrist, 21lhand, 22lfingers, 24rclavicle, 25rhumerus, 26rradius, 27rwrist, 28rhand, 29rfingers.
【００４２】
［データ分割部］
データ分割部２２は、ジョイント相対位置データを、一定時間の区間に分割する。  データ分割部２２は、各ジョイントのジョイント相対位置データ「ｐ’ｋ（ｔ）」に対して、それぞれデータ分割処理を行う。図５にデータ分割処理の概念を示す。データ分割処理では、ジョイント相対位置データを一定時間（一定数のフレーム分に対応）の区間に分割する。分割区間の長さは、適宜、設定可能である。分割区間の長さは、例えば、９０フレーム分の長さである。
【００４３】
［短時間主成分分析部］
短時間主成分分析部２４は、データ分割部２２によって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻ｔのフレーム「ｘ（ｔ）」を用いて、一区間のデータ「Ｘ」を「Ｘ＝｛ｘ（ｔ１），ｘ（ｔ２），・・・，ｘ（ｔＮ）｝と表す。但し、Ｎは区間長（区間内に含まれるフレームの個数）である。Ｘは、Ｍ行Ｎ列の行列である（但し、Ｍ＝３×Ｋ）。
【００４４】
主成分分析処理では、Ｘに対して主成分分析処理を行い、Ｘを主成分空間へ変換する。主成分分析処理については、例えば非特許文献５を利用することができる。
【００４５】
ここで、短時間主成分分析部２４が行う主成分分析処理を説明する。
まず、（４）式により、Ｘから平均値を除いたＮ行Ｍ列の行列Ｄを算出する。
【００４６】
【数４】
0005604225.tif 000005
【００４７】
次いで、（５）式により、Ｎ行Ｍ列の行列Ｄに対して特異値分解（Singular Value Decomposition）を行う。特異値分解処理については、例えば非特許文献６を利用することができる。
【００４８】
【数５】
0005604225.tif 000006
【００４９】
但し、Ｕは、Ｎ行Ｎ列のユニタリ行列である。Σは、Ｎ行Ｍ列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Ｖは、Ｍ行Ｍ列のユニタリ行列であり、主成分に対する係数（principal component）である。
【００５０】
次いで、（６）式により、Ｎ行Ｍ列の行列Ｄを主成分空間へ変換する。Ｍ行Ｎ列の行列Ｙは、主成分空間の座標を表す。
【００５１】
【数６】
0005604225.tif 000007
【００５２】
短時間主成分分析部２４は、区間毎に、主成分空間の座標を表す行列（主成分座標行列）Ｙと、主成分に対する係数の行列（主成分係数行列）Ｖをメモリに保存する。
【００５３】
なお、元空間の座標を表す行列Ｘと主成分座標行列Ｙは、（６）式と（７）式により相互に変換することができる。
【００５４】
【数７】
0005604225.tif 000008
【００５５】
また、上位のｒ個の主成分によって、（８）式により変換することができる。
【００５６】
【数８】
0005604225.tif 000009
【００５７】
但し、Ｖｒは、主成分係数行列Ｖ内の上位のｒ個の行から成るＭ行ｒ列の行列である。Ｙｒは、主成分座標行列Ｙ内の上位のｒ個の列から成るｒ行Ｎ列の行列である。Ｘ〜は、復元されたＭ行Ｎ列の行列である。
【００５８】
なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したＭ’行Ｎ列の行列Ｘ’に対して、（４）式、（５）式及び（６）式により主成分分析処理を行う。
【００５９】
［主成分座標連結部］
主成分座標連結部２６は、各区間の主成分の座標を、時系列に沿って連結する。この主成分座標連結部２６が行う主成分座標連結処理では、連続する２つの区間の境界部分において、主成分の座標が滑らかに連結されるように、主成分の座標を調整する。
【００６０】
図６に、本実施形態に係る主成分座標連結処理を説明するための概念図を示す。本実施形態では、時系列に従って、先頭の区間から順番に主成分座標連結処理を行ってゆく。図６において、ある区間（前区間）までの主成分座標連結処理が終了している。そして、その前区間に対して、次の区間（当区間）を連結するための主成分座標連結処理を行う。この主成分座標連結処理では、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように、当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択ステップによって選択された当区間の主成分座標（元座標）に対し、符号反転又は座標シフトを行う。
【００６１】
ここで、主成分座標連結部２６が行う主成分座標連結処理を説明する。
【００６２】
主成分座標連結ステップＳ１１：当区間の主成分の座標（第１主成分の元座標）Ｙ１に対し、当区間の主成分係数行列Ｖから、第１主成分に対する係数Ｖ１を取得する。さらに、メモリに保存されている前区間の主成分係数行列Ｖから、第１主成分に対する係数Ｖ１ｐｒｅを取得する。
【００６３】
主成分座標連結ステップＳ１２：当区間に係る第１主成分に対する係数Ｖ１と前区間に係る第１主成分に対する係数Ｖ１ｐｒｅとの関係に基づいて、当区間に係る第１主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、（９）式により行う。（９）式による判定の結果、符号反転する場合には、当区間の第１主成分の元座標Ｙ１に対して符号反転を行うと共に、当区間の主成分係数行列Ｖに対しても符号反転を行う。一方、（９）式による判定の結果、符号反転しない場合には、当区間の第１主成分の元座標Ｙ１及び当区間の主成分係数行列Ｖともに、そのままの値を主成分座標連結ステップＳ１２の処理結果とする。
【００６４】
【数９】
0005604225.tif 000010
【００６５】
但し、Ｙ１は、当区間で選択された主成分の座標（第１主成分の元座標）である。Ｖは、当区間の主成分係数行列である。Ｖ１は、当区間に係る第１主成分に対する係数である。Ｖ１ｐｒｅは、前区間に係る第１主成分に対する係数である。（Ｖ１・Ｖｋｐｒｅ）は、Ｖ１とＶ１ｐｒｅの内積である。Ｙ１’は、当区間で選択された主成分の座標（第１主成分の元座標）Ｙ１に対する主成分座標連結ステップＳ１２の処理結果である。Ｖ’は、当区間の主成分係数行列Ｖに対する主成分座標連結ステップＳ１２の処理結果である。
【００６６】
主成分座標連結ステップＳ１３：主成分座標連結ステップＳ１２の処理結果の主成分座標Ｙ１’に対し、座標シフトを行う。具体的には、（１０）式により座標シフトを行う。この場合、前区間の主成分座標行列Ｙから、前区間の第ｔＮフレームにおける第１主成分の座標Ｙ１ｐｒｅ（ｔＮ）を取得する。
【００６７】
【数１０】
0005604225.tif 000011
【００６８】
但し、Ｙ１’（ｔ１）は、ステップＳ１２の処理結果の主成分座標Ｙ１’のうち、第ｔ１フレームの座標である。Ｙ１”（ｔ２）は、（１０）式の最初の計算式の計算結果の座標Ｙ１”のうち、第ｔ２フレームの座標である。
（１０）式の最初の計算式の計算結果の座標Ｙ１”に対し、第ｔ１フレームの座標Ｙ１”（ｔ１）をＹ１ｏｐｔ（ｔ１）に置き換える。この置き換え後の座標Ｙ１”が、座標シフト結果の座標である。
【００６９】
主成分座標連結ステップＳ１４：当区間において、主成分座標連結ステップＳ１２の処理結果の座標Ｙ１’に対して、主成分座標連結ステップＳ１３の処理結果の座標Ｙ１ｏｐｔ（ｔ１）を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。
【００７０】
主成分座標連結部２６は、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標「ｙ（ｔ）、ｔ＝０，１，２，・・・，Ｔ−１」が求まる。但し、Ｔは、動きデータに含まれるフレームの個数である。
【００７１】
［ビート推定部］
ビート推定部２８は、主成分座標連結部２６によって算出された連結後の全区間の主成分座標ｙ（ｔ）から、極値ｂ（ｊ）を算出する。この算出結果の極値ｂ（ｊ）がビートに対応する。ビートの集合Ｂは、（１１）式で表される。
【００７２】
【数１１】
0005604225.tif 000012
【００７３】
但し、Ｊは、ビートの個数である。
【００７４】
なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。例えば、ビート推定部２８は、主成分座標連結部２６によって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値ｂ（ｊ）をビートに対応するものとして算出することができる。また、ビート推定部２８は、主成分座標連結部２６によって、連結後の隣区間の主成分係数から算出した内積（（９）式によるもの）の自己相関値を算出し、該自己相関値の極値ｂ（ｊ）をビートに対応するものとして算出することができる。
【００７５】
［後処理部］
後処理部３０は、ビート推定部２８によって算出されたビート集合Ｂから、ビート時刻を検出する。
【００７６】
ここで、後処理部３０が行うビート時刻検出処理を説明する。
まず、ビート集合Ｂ内の各極値間を、（１２）式により正弦曲線（sinusoid）で近似する。
【００７７】
【数１２】
0005604225.tif 000013
【００７８】
但し、ｓｊ−１（ｔ）は、（ｊ−１）番目の極値ｂ（ｊ−１）からｊ番目の極値ｂ（ｊ）までの区間の正弦近似値である。ｔはフレームに対応する時刻であり、「ｔ＝０，１，２，・・・，Ｔ−１」である。Ｔは、動きデータに含まれるフレームの個数である。
【００７９】
図７に、（１２）式による正弦近似処理の概念図を示す。図７において、１番目の極値ｂ（１）から２番目の極値ｂ（２）までの区間ａ１（ｊ＝２の場合の区間）は、ｓ１（ｔ）で近似される。同様に、２番目の極値ｂ（２）から３番目の極値ｂ（３）までの区間ａ２（ｊ＝３の場合の区間）はｓ２（ｔ）で近似され、３番目の極値ｂ（３）から４番目の極値ｂ（４）までの区間ａ３（ｊ＝４の場合の区間）はｓ３（ｔ）で近似され、４番目の極値ｂ（４）から５番目の極値ｂ（５）までの区間ａ４（ｊ＝５の場合の区間）はｓ４（ｔ）で近似される。
【００８０】
次いで、正弦近似値「ｓｊ−１（ｔ）、ｊ＝２，３，・・・，Ｊ」に対してフーリエ変換を行う。そのフーリエ変換処理には、所定のＦＦＴポイント数Ｌのハン窓を用いたＦＦＴ（Fast Fourier Transform）演算器を使用する。そして、そのフーリエ変換の結果に基づいて、該フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数（最大成分周波数）ｆｍａｘを検出する。そして、ビート間隔ＴＢを「ＴＢ＝Ｆｓ÷ｆｍａｘ」なる計算式により算出する。但し、Ｆｓは、１秒当たりのフレーム数である。
【００８１】
次いで、正弦近似値「ｓｊ−１（ｔ）、ｊ＝２，３，・・・，Ｊ」と、（１３）式で定義される基準値「ｓ’（ｔ）」との間の最大相関初期位相を（１４）式により算出する。
【００８２】
【数１３】
0005604225.tif 000014
【００８３】
【数１４】
0005604225.tif 000015
【００８４】
次いで、（１５）式により、ビート時刻ｅｂ（ｊ）の集合ＥＢを算出する。但し、ＥＪは、ビート時刻ｅｂ（ｊ）の個数である。
【００８５】
【数１５】
0005604225.tif 000016
【００８６】
以上が本実施形態の動き解析部２によるビート時刻検出処理の説明である。本実施形態によれば、動きデータを入力し、短時間の区間毎に主成分分析処理を行い、第１主成分の座標を算出し、各区間の座標を適切に連結し、ビートを抽出することができる。短時間主成分分析によれば、動きの最も大きい変化を表現できるため、動きの種類を問わず、多様な動きに対応し、より高い精度でビート抽出することが可能となる。
【００８７】
次に、図８を参照して、図１に示す映像解析部４を説明する。図８は、図１に示す映像解析部４の処理の手順を示すフローチャートである。映像解析部４は、ユーザビデオデータから、動きのリズムを表すフレーム（以下、説明の便宜上、キーフレームと称する）を取得する。キーフレームは、ユーザビデオデータにおける、ある時刻の画像である。映像解析部４は、キーフレームを特定する時刻（キーフレーム時刻）を出力する。以下、図８を参照して、映像解析部４を詳細に説明する。
【００８８】
ステップＳ２１：ユーザの動きをビデオ撮影したユーザビデオデータを入力する。このビデオ撮影では、ユーザはＣＧ教師ビデオの動きをまねて動いている。
【００８９】
ステップＳ２２：ユーザビデオデータの各フレームをGray画像に変換する。このGray画像変換処理では、（１６）式により、入力されたＲＧＢイメージを輝度はそのままにして色調と彩度を削除し、グレースケールに変換する。
【数１６】
0005604225.tif 000017
【００９０】
ステップＳ２３：ユーザビデオデータの各フレームを特定解像度（Ｍ画素×Ｎ画素）に変換する。この解像度変換処理では、入力画像の解像度を双三次補間により特定の解像度（入力画像よりも低い解像度）に変換する。図９に解像度変換処理の概念を示す。図９において、入力画像Ｚの解像度はＸ画素×Ｙ画素であり、出力画像ＺＩの解像度はＸＩ画素×ＹＩ画素である。出力画像ＺＩはＸＩ行ＹＩ列の行列となる。
【００９１】
ステップＳ２３：出力画像ＺＩをＭ×Ｎ次元ベクトルに変換する。一枚の画像ＺＩを、（１７）式により、行の順番で一つのベクトルｖに変換する。
【数１７】
0005604225.tif 000018
【００９２】
ステップＳ２３までの処理によって、ユーザビデオデータはベクトル時系列「Ｖ（ｔ）＝｛ｖ（ｋ，ｔ）｝に変換される。
【００９３】
ステップＳ２５：ベクトル時系列「Ｖ（ｔ）＝｛ｖ（ｋ，ｔ）｝に対して、短時間の区間に分割し、短時間の区間毎に主成分分析を処理し、第１主成分の座標を算出し、各区間の座標を適切に連結し、キーフレームを抽出する。この処理は、動き解析部２のデータ分割部２２から後処理部３０までの処理と同様である。但し、本ベクトル時系列「Ｖ（ｔ）＝｛ｖ（ｋ，ｔ）｝は次元数が大きいので、共分散行列から、固有ベクトルと固有値を計算する。共分散行列から固有ベクトルと固有値を計算する方法は、例えば非特許文献７を利用することができる。
【００９４】
次に、図１０を参照して、図１に示す動き対応部６を説明する。図１０は、図１に示す動き対応部６の処理の手順を示すフローチャートである。
【００９５】
ステップＳ３１：動き対応部６は、ユーザビデオデータが有するフレームの中から各キーフレーム時刻に対応するキーフレームを表示部１０の表示画面上に表示させる。キーフレーム時刻は映像解析部４から入力される。
【００９６】
ステップＳ３２：ユーザは、操作部１２を操作して、表示画面上に表示されたキーフレームの中から任意のキーフレームを指定する。操作部１２は、指定されたキーフレームを動き対応部６に通知する。
【００９７】
ステップＳ３３：動き対応部６は、ＣＧ教師ビデオデータが有するフレームの中から各ビート時刻に対応するビートフレームを表示部１０の表示画面上に表示させる。ビート時刻は動き解析部２から入力される。
【００９８】
ステップＳ３４：ユーザは、操作部１２を操作して、表示画面上に表示されたビートフレームの中から、ステップＳ３２で指定したキーフレームに対応するビートフレームを指定する。操作部１２は、指定されたビートフレームを動き対応部６に通知する。
【００９９】
ステップＳ３５：動き対応部６は、ＣＧ教師ビデオデータが有するフレームの中から、操作部による指定のビートフレームの前後の所定範囲のフレームを対象にして、操作部による指定のキーフレームに最も類似するフレームを探索する。
【０１００】
ステップＳ３６：動き対応部６は、ステップＳ３５の探索結果のフレームを表示部１０の表示画面上に表示させる。ユーザは、操作部１２を操作して、表示画面上に表示されたフレーム内のポーズに対し、ステップＳ３２で指定したキーフレーム内のポーズに合わせる微調整を行う。操作部１２は、その微調整結果を動き対応部６に通知する。動き対応部６は、その微調整結果のフレームを、ステップＳ３２で指定されたキーフレームに対応するビートフレームに決定する。
【０１０１】
次に、図２に示される動き追跡部８について説明する。
動き追跡部８は、動き対応部６により対応付けられたキーフレームとビートフレームとに基づいて、ユーザビデオデータの映像における人体姿勢（ポーズ）をフレームごとに追跡する。動き追跡部８は、その追跡結果として、各フレームの人体姿勢を表す動きデータを出力する。この人体姿勢追跡処理では、ユーザビデオデータ中の追跡開始のキーフレームから次のキーフレームまでを追跡するときに、追跡開始のキーフレームに対応付けられたビートフレーム内のポーズを初期ポーズとする。
【０１０２】
次に、図２に示される動き追跡部８について説明する。
動き追跡部８は、動き対応部６により対応付けられたキーフレームとビートフレームとに基づいて、ユーザビデオデータの映像における人体姿勢（ポーズ）を追跡する。この人体姿勢追跡処理では、ユーザビデオデータ中の追跡開始のキーフレームから次のキーフレームまでを追跡するときに、追跡開始のキーフレームに対応付けられたビートフレーム内のポーズを初期ポーズとする。
【０１０３】
人体姿勢追跡処理としては、粒子フィルタ（パーティクルフィルタ）を用いて人体姿勢を追跡する方法（例えば非特許文献８参照）を利用することができる。粒子フィルタの仮定はMarkov性を持つシステムであることである。システムモデルは（１８）式で、観測モデルは（１９）式で、それぞれ表される。
【数１８】
0005604225.tif 000019
【０１０４】
【数１９】
0005604225.tif 000020
【０１０５】
但し、ｘｔは時刻ｔのフレームに対するポーズである。ｙｔは時刻ｔのフレームの画像である。
【０１０６】
よって、当フレームまでの事後尤度は、（２０）式となり、粒子フィルタにより計算することができる。
【数２０】
0005604225.tif 000021
【０１０７】
動き追跡部８は、計算結果のポーズから成る動きデータ（人体姿勢推定データ）を出力する。
【０１０８】
なお、動き追跡部８は、ユーザビデオデータ中の推定対象フレームにおける推定結果のポーズに類似するポーズを有するフレームをＣＧ教師ビデオデータから探索し、探索結果のフレームの次のフレーム内のポーズを該推定対象フレームの次の推定対象フレームの初期ポーズとする。
【０１０９】
上述した実施形態によれば、教師ビデオ内のＣＧアニメーションと、該ＣＧアニメーションの動きをまねたユーザの動きを撮影したユーザビデオとから、動きリズムを表すフレーム（ビートフレーム、キーフレーム）をそれぞれ検出して抽出する。そして、該両フレーム（ビートフレーム、キーフレーム）を対応付けするためのＧＵＩ操作部を備え、ユーザによって該対応付けが行われることにより、人体姿勢を追跡し推定する処理を精度よく行うことができる。
【０１１０】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した図２に示す人体姿勢推定装置１では動き解析部２を備えたが、事前にＣＧ教師ビデオデータから取得されたビートフレームを格納するビートフレーム記憶部を人体姿勢推定装置１に備えるようにしてもよい。図１１にビートフレーム記憶部５０を備えた人体姿勢推定装置１の構成図を示す。この場合、動き解析部は不要である。
【０１１１】
また、図２又は図１１に示す人体姿勢推定装置１が行う各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、人体姿勢推定処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１１２】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【０１１３】
１…人体姿勢推定装置、２…動き解析部、４…映像解析部、６…動き対応部、８…動き追跡部、１０…表示部、１２…操作部、２０…物理量変換部、２２…データ分割部、２４…短時間主成分分析部、２６…主成分座標連結部、２８…ビート推定部、３０…後処理部、５０…ビートフレーム記憶部
【図１】
0005604225.tif 000022
【図２】
0005604225.tif 000023
【図３】
0005604225.tif 000024
【図４】
0005604225.tif 000025
【図５】
0005604225.tif 000026
【図６】
0005604225.tif 000027
【図７】
0005604225.tif 000028
【図８】
0005604225.tif 000029
【図９】
0005604225.tif 000030
【図１０】
0005604225.tif 000031
【図１１】
0005604225.tif 000032