"リファレンス映像を表示し、このリファレンス映像に映る人体の動きにしたがって動く人物の動きをとらえてユーザモーションデータを生成するモーションデータ取得部と、前記モーションデータ取得部が生成した前記ユーザモーションデータをモデル化するモデル学習部と、前記モデル学習部がモデル化した学習モデルに基づいて、前記リファレンス映像から人体姿勢を推定するモーション推定部と、を備えることを特徴とする人体姿勢推定装置。前記モデル学習部は、前記ユーザモーションデータから、動きのリズムを表して動きの突然的な変化が生じているフレームであるビートフレームを取得する動き解析部と、前記ユーザモーションデータを複数のセグメントに分割するモーション分割部と、前記モーション分割部が分割した前記複数のセグメントそれぞれについて、前記ユーザモーションデータが属する姿勢空間とより低次元の潜在的な姿勢空間である潜在空間のマッピングと前記潜在空間の動力学関数を有するモデルとを学習し、それぞれ学習したモデル同士で遷移可能な潜在空間の座標を推定するモデル構築部と、をさらに備え、前記モーション推定部は、前記動き解析部が取得した前記ビートフレームと前記モデル構築部が推定した潜在空間のモデルとに基づいて、前記リファレンス映像から人体姿勢を推定することを特徴とする請求項1記載の人体姿勢推定装置。前記モーション分割部は、前記ユーザモーションデータから取り込んだモーションクリップのフレームに対応する潜在空間の座標を用いて復元モーションデータを生成し、前記モーションクリップと前記復元モーションデータとの距離である復元誤差を計算し、この復元誤差が所定の閾値を超える場合に、前記モーションクリップを分割することを特徴とする請求項2記載の人体姿勢推定装置。前記モデル構築部は、前記ユーザモーションデータを分割した複数のセグメントそれぞれについて、各潜在空間でGPDMGaussianProcessDynamicalModelsを学習し、それぞれ学習したGPDM同士で遷移可能な潜在空間の座標として、前記動き解析部が取得した前記ビートフレームに対応する潜在空間の座標を用いることを特徴とする請求項2または3記載の人体姿勢推定装置。前記モーション推定部は、前記リファレンス映像の姿勢空間における対象のフレームデータと前記遷移可能な潜在空間の座標に基づく潜在空間からのサンプルとの距離に基づいて尤度を計算する尤度計算部と、前記尤度計算部が計算した前記尤度に基づいて潜在空間におけるサンプルを置換するリサンプリング部と、前記リサンプリング部が置換した前記サンプルと前記動き解析部が取得した前記ビートフレームとの距離を計算し、この計算した距離に応じて潜在空間を遷移させる潜在空間遷移尤度算出部と、前記遷移させた潜在空間の動力学関数において、次フレームの潜在空間の座標を予測し、姿勢空間にマッピングする予測部と、を備えることを特徴とする請求項2から4までのうちいずれか一項記載の人体姿勢推定装置。前記尤度計算部は、サンプルごとに前記計算した尤度の有効性を判定し、有効と判定した場合に尤度を正規化することを特徴とする請求項5記載の人体姿勢推定装置。前記潜在空間遷移尤度算出部は、姿勢空間における対象のフレームデータからGPDMGaussianProcessDynamicalModelsにおけるビートフレームまでの距離を計算し、この距離が所定の閾値より小さい場合に前記ビートフレームが所在する潜在空間に遷移させ、前記距離に応じてサンプル数を再分配してサンプルを生成することを特徴とする請求項5または6記載の人体姿勢推定装置。リファレンス映像を表示し、このリファレンス映像に映る人体の動きにしたがって動く人物の動きをとらえてユーザモーションデータを生成するモーションデータ取得ステップと、前記モーションデータ取得ステップにおいて生成した前記ユーザモーションデータをモデル化するモデル学習ステップと、前記モデル学習部がモデル化した学習モデルに基づいて、前記リファレンス映像から人体姿勢を推定するモーション推定ステップと、を有することを特徴とする人体姿勢推定方法。コンピュータに、リファレンス映像を表示させ、このリファレンス映像に映る人体の動きにしたがって動く人物の動きをとらえてユーザモーションデータを生成するモーションデータ取得ステップと、前記モーションデータ取得ステップにおいて生成した前記ユーザモーションデータをモデル化するモデル学習ステップと、前記モデル学習部がモデル化した学習モデルに基づいて、前記リファレンス映像から人体姿勢を推定するモーション推定ステップと、を実行させるためのコンピュータプログラム。しかしながら、人体の姿勢を表す情報の次元数は非常に高く例えば、数十次元、非特許文献2に開示されたパーティクルフィルタによる人体姿勢の推定技術では、パーティクルの追跡精度を高くできない。また、映像に映っている人物の動きに似た動きの学習データがなければ、非特許文献4に開示されたGPDMモデルでのパーティクルの追跡を行うことができない。本発明は、上記事情に鑑みてなされたものであり、手本となる人体の動きを映したリファレンス映像からその人体姿勢を高精度に推定する、人体姿勢推定装置、人体姿勢推定方法、およびコンピュータプログラムを提供することを目的とする。[1]上記の課題を解決するため、本発明の一態様である人体姿勢推定装置は、リファレンス映像を表示し、このリファレンス映像に映る人体の動きにしたがって動く人物の動きをとらえてユーザモーションデータを生成するモーションデータ取得部と、前記モーションデータ取得部が生成した前記ユーザモーションデータをモデル化するモデル学習部と、前記モデル学習部がモデル化した学習モデルに基づいて、前記リファレンス映像から人体姿勢を推定するモーション推定部と、を備えることを特徴とする。[2]上記[1]記載の人体姿勢推定装置において、前記モデル学習部は、前記ユーザモーションデータから、動きのリズムを表して動きの突然的な変化が生じているフレームであるビートフレームを取得する動き解析部と、前記ユーザモーションデータを複数のセグメントに分割するモーション分割部と、前記モーション分割部が分割した前記複数のセグメントそれぞれについて、前記ユーザモーションデータが属する姿勢空間とより低次元の潜在的な姿勢空間である潜在空間のマッピングと前記潜在空間の動力学関数を有するモデルとを学習し、それぞれ学習したモデル同士で遷移可能な潜在空間の座標を推定するモデル構築部と、をさらに備え、前記モーション推定部は、前記動き解析部が取得した前記ビートフレームと前記モデル構築部が推定した潜在空間のモデルとに基づいて、前記リファレンス映像から人体姿勢を推定することを特徴とする。[3]上記[2]記載の人体姿勢推定装置において、前記モーション分割部は、前記ユーザモーションデータから取り込んだモーションクリップのフレームに対応する潜在空間の座標を用いて復元モーションデータを生成し、前記モーションクリップと前記復元モーションデータとの距離である復元誤差を計算し、この復元誤差が所定の閾値を超える場合に、前記モーションクリップを分割することを特徴とする。[4]上記[2]または[3]記載の人体姿勢推定装置において、前記モデル構築部は、前記ユーザモーションデータを分割した複数のセグメントそれぞれについて、各潜在空間でGPDMGaussianProcessDynamicalModelsを学習し、それぞれ学習したGPDM同士で遷移可能な潜在空間の座標として、前記動き解析部が取得した前記ビートフレームに対応する潜在空間の座標を用いることを特徴とする。[5]上記[2]から[4]までのうちいずれか一項記載の人体姿勢推定装置において、前記モーション推定部は、前記リファレンス映像の姿勢空間における対象のフレームデータと前記遷移可能な潜在空間の座標に基づく潜在空間からのサンプルとの距離に基づいて尤度を計算する尤度計算部と、前記尤度計算部が計算した前記尤度に基づいて潜在空間におけるサンプルを置換するリサンプリング部と、前記リサンプリング部が置換した前記サンプルと前記動き解析部が取得した前記ビートフレームとの距離を計算し、この計算した距離に応じて潜在空間を遷移させる潜在空間遷移尤度算出部と、前記遷移させた潜在空間の動力学関数において、次フレームの潜在空間の座標を予測し、姿勢空間にマッピングする予測部と、を備えることを特徴とする。[6]上記[5]記載の人体姿勢推定装置において、前記尤度計算部は、サンプルごとに前記計算した尤度の有効性を判定し、有効と判定した場合に尤度を正規化することを特徴とする。[7]上記[5]または[6]記載の人体姿勢推定装置において、前記潜在空間遷移尤度算出部は、姿勢空間における対象のフレームデータからGPDMGaussianProcessDynamicalModelsにおけるビートフレームまでの距離を計算し、この距離が所定の閾値より小さい場合に前記ビートフレームが所在する潜在空間に遷移させ、前記距離に応じてサンプル数を再分配してサンプルを生成することを特徴とする。[8]上記の課題を解決するため、本発明の一態様である人体姿勢推定方法は、リファレンス映像を表示し、このリファレンス映像に映る人体の動きにしたがって動く人物の動きをとらえてユーザモーションデータを生成するモーションデータ取得ステップと、前記モーションデータ取得ステップにおいて生成した前記ユーザモーションデータをモデル化するモデル学習ステップと、前記モデル学習部がモデル化した学習モデルに基づいて、前記リファレンス映像から人体姿勢を推定するモーション推定ステップと、を有することを特徴とする。[9]上記の課題を解決するため、本発明の一態様であるコンピュータプログラムは、コンピュータに、リファレンス映像を表示させ、このリファレンス映像に映る人体の動きにしたがって動く人物の動きをとらえてユーザモーションデータを生成するモーションデータ取得ステップと、前記モーションデータ取得ステップにおいて生成した前記ユーザモーションデータをモデル化するモデル学習ステップと、前記モデル学習部がモデル化した学習モデルに基づいて、前記リファレンス映像から人体姿勢を推定するモーション推定ステップと、を実行させる。本発明によれば、手本となる人体の動きを映したリファレンス映像からその人体姿勢を高精度に推定することができる。以下、本発明を実施するための形態について、図面を参照して詳細に説明する。本発明の一実施形態である人体姿勢推定装置は、手本となる人体の動きを映したリファレンス映像のデータであるリファレンスビデオデータを再生して表示し、この表示されたリファレンス映像における人体の動きを真似たユーザの動きに基づいてユーザモーションデータを取得する。リファレンスビデオデータは二次元ビデオデータである。そして、この人体姿勢推定装置は、その取得したユーザモーションデータをモデル化した学習モデルに基づいて、リファレンス映像から人体姿勢を高精度に推定するものである。本実施形態において、リファレンス映像に表される人体の動きは、ユーザが真似る手本となる動きである。すなわち、例えば、ユーザが動きを真似たいダンサーのダンスシーンを撮影したビデオクリップをリファレンス映像として用いることができる。つまり、オリンピックや舞踊芸術等の様々な記録映像をリファレンス映像として用いることができる。まず、モーションデータについて説明する。本実施形態において、モーションデータは、人体スケルトン型動きデータ以下、単に動きデータと呼ぶこともある。で表現される。図1は、人体スケルトン型動きデータの定義例の概略図である。この人体スケルトン型動きデータは、人体の骨格をもとに、骨および骨の連結点ジョイントを用い、特定の一つのジョイントを根ルートとし、ルートからジョイント経由で順次連結される骨の構造を木ツリー構造として定義したものである。同図は、人体スケルトン型動きデータの定義の一部分を示している。同図において、ジョイント500は人体の腰部分であり、ルートとして定義されている。ジョイント501は左腕の肘部分、ジョイント502は左腕の手首部分、ジョイント503は右腕の肘部分、ジョイント504は右腕の手首部分、ジョイント505は左足の膝部分、ジョイント506は左足の足首部分、ジョイント507は右足の膝部分、ジョイント508は右足の足首部分、ジョイント509は鎖骨部分、ジョイント510は左肩部分、ジョイント511は右肩部分、ジョイント512は首部分、ジョイント513は左股関節部分、ジョイント514は右股関節部分である。つまり、スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用できる。スケルトン型動きデータとしては、各ジョイントの位置情報、角度情報、速度情報、加速度情報などが利用できる。次に、角度情報データと加速度情報データとを例として、人体スケルトン型動きデータについて説明する。角度情報データは、人体の一連の動きを複数の姿勢ポーズによって表すものであり、人体の基本ポーズNeutralPoseを表す基本ポーズデータと、実際の人体の動きにおける各ポーズを表すフレームデータとを有する。基本ポーズデータは、基本ポーズにおけるルートの位置および各ジョイントの位置、ならびに各骨の長さなどの情報を有する。フレームデータは、基本ポーズからの移動量をジョイントごとに表す。例えば、移動量は角度情報として表される。各フレームデータにより、基本ポーズに対して移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人体の一連の動きが特定される。角度情報データは、人体の動きを撮影した映像をモーションキャプチャ処理することによって取得したり、キーフレームアニメーションの手作業にしたがって取得したりする。加速度情報データは、人体の各ジョイントの加速度を、ポーズごとのフレームデータと複数のポーズとによって表すものである。加速度情報データは、加速度計で取得したり、映像の動きに基づいて算出したりする。本実施形態において、ユーザモーションデータは、人体姿勢推定装置が表示するリファレンス映像における人体の動きを真似たユーザの動きから得られるものである。次に、本実施形態における人体姿勢推定装置について説明する。図2は、本実施形態における人体姿勢推定装置の機能構成を表す概略のブロック図である。同図に示すように、人体姿勢推定装置1は、モーションデータ取得部30と、モデル学習部10と、モーション推定部20とを備える。モーションデータ取得部30は、ユーザが所望するリファレンスビデオデータを再生して表示することによってリファレンス映像をユーザに提示し、そのリファレンス映像における人体の動きを手本として真似たユーザの動きをモーションキャプチャしてユーザモーションデータを取得する。モーションデータ取得部30は、その機能構成として、映像記憶部310と、映像再生部320と、映像表示部330と、モーションキャプチャ部340とを備える。映像記憶部310は、リファレンスビデオデータを記憶する。映像再生部320は、ユーザによる図示しない操作部の操作によって指定した所望のリファレンスビデオデータを映像記憶部310から読み込み、その読み込んだリファレンスビデオデータを再生する。映像表示部330は、映像再生部320が再生するリファレンス映像を表示する。モーションキャプチャ部340は、映像表示部330に表示されるリファレンス映像における人体の動きを真似たユーザの動きをとらえてユーザモーションデータを生成する。モデル学習部10は、モーションデータ取得部30のモーションキャプチャ部340が生成したユーザモーションデータを取り込む。そして、モデル学習部10は、その取り込んだユーザモーションデータを動きの複雑さに応じて複数のセグメントに分割し、セグメントごとに、ユーザモーションデータが属するポーズ空間と、より低次元の潜在空間のマッピングと、当該潜在空間の動力学関数を有するモデルとを学習し、モデル同士のグラフ構造を生成する。潜在空間のモデルは、例えば、参考文献1AGlobalGeometricFrameworkforNonlinearDimensionalityReductionJoshuaBTenenbaumVindeSilvaandJohnCLangfordScienceVOL290ISSUE550022December200023192323に記載されたISOMAP、参考文献2NonlinearDimensionalityReductionbyLocallyLinearEmbeddingSamTRoweisandLawrenceKSaulScienceVOL290ISSUE550022December200023232326に記載されたLLELocallyLinearEmbedding、参考文献3NDLawrenceGaussianprocesslatentvariablemodelsforvisualisationofhighdimensionaldataProcNIPS162004に記載されたGPLVMGaussianProcessLatentVariableModel等を適用することができる。本実施形態では、非特許文献3に記載されたGPDMGaussianProcessDynamicalModels;ガウス過程動的モデルを例とする。この例によれば、潜在空間でGPDMを学習してGPDMグラフデータを生成する。GPDMは、潜在空間において正規過程GaussianProcessを動的システムに応用した動力学モデルと、潜在空間からポーズ空間姿勢空間への変換マッピングとを含む潜在変数モデルである。なお、GPDMの学習とは、対象となる潜在空間をGPDMによってモデル化することである。一潜在空間についてのGPDMの学習については、非特許文献3に詳述されている。モデル学習部10は、その機能構成として、動き解析部110と、モデル構築部120と、GPDMグラフ生成部130とを備える。動き解析部110は、ユーザモーションデータからビートフレームを抽出し、その抽出したビートフレームの時刻を示すビート時刻データを取得する。ビートフレームは、ユーザモーションデータにおいて、動きのリズムを表して動きの突然的な変化が生じているフレームである。モデル構築部120は、ユーザモーションデータを動きの複雑さに応じて複数のセグメントに分割する。そして、モデル構築部120は、セグメントごとに潜在空間でGPDMを学習し、その学習したGPDM同士で遷移可能な潜在空間の座標を推定する。そして、モデル構築部120は、セグメントの分割情報と、各分割セグメントに対するGPDMデータ遷移可能な潜在空間の座標の推定結果とを出力する。GPDMグラフ生成部130は、動き解析部110から供給されるビート時刻データと、モデル構築部120から供給される、セグメントの分割情報および各分割セグメントに対するGPDMデータとを取り込み、ビート時刻データをキーとして、セグメントの分割情報と各分割セグメントに対するGPDMデータとを対応付けたGPDMグラフデータを生成する。モーション推定部20は、モデル学習部10のGPDMグラフ生成部130から供給されるGPDMグラフデータと、モーションデータ取得部30の映像記憶部310から読み出すリファレンスビデオデータとを取り込んで、リファレンスビデオデータの映像における人体姿勢をフレームごとに追跡する。そして、モーション推定部20は、その追跡結果として、各フレームの人体姿勢を表す人体姿勢推定データを出力する。本実施形態においては、モーション推定部20は、パーティクルフィルタにより追跡を行う。パーティクルフィルタは、検出と追跡とを同時に行う逐次追跡アルゴリズムである。すなわち、パーティクルフィルタは、現在の状態から起こり得る次の状態を多数のパーティクル粒子に見立て、全てのパーティクルの尤度に基づく重み付き平均を次の状態として予測しながら追跡を行うアルゴリズムである。次に、モデル学習部10の動き解析部110の詳細について説明する。図3は、動き解析部110の機能構成を示すブロック図である。同図に示すように、動き解析部110は、物理量変換部111と、データ分割部112と、短時間主成分分析部113と、主成分座標連結部114と、ビート推定部115と、後処理部116とを備える。物理量変換部111は、取り込んだユーザモーションデータを対象にして、各ジョイントのルートに対する位置を算出する。具体的には、物理量変換部111は、ユーザモーションデータにおいて、時刻tにおけるジョイント相対位置を算出する。ジョイント相対位置は、ユーザモーションデータを関節位置空間に変換したときの位置であり、ルートに対するジョイントの相対的な位置である。以下、物理量変換部111が実行するジョイント相対位置の計算方法について説明する。まず、物理量変換部111は、ユーザモーションデータの基本ポーズデータとフレームデータとを用いてジョイント位置を算出する。基本ポーズデータは、基本ポーズであるときのルートの位置、各ジョイントの位置、各骨の長さ等、基本ポーズを特定する情報を有する。フレームデータは、ジョイントごとに、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻tにおけるk番目のジョイントの位置x,y,z座標であるpktは、下記の式1および式2によって計算される。なお、時刻tはフレームデータの時刻である。ここでは、時刻tとしてフレームインデックスを使用し、t=0,1,2,,T-1である。Tは、動きデータに含まれるフレーム数である。ただし、0番目i=0のジョイントはルートである。Raxisi-1,itは、i番目のジョイントとその親ジョイントi-1番目のジョイント間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。Ritは、i番目のジョイントのローカル座標系におけるi番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。Titは、i番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、i番目のジョイントとその親ジョイント間の骨の長さを表す。次に、物理量変換部111は、時刻tにおける、ルートに対するk番目のジョイントの相対位置ジョイント相対位置p’ktを下記の式3により計算する。ただし、proottは時刻tにおけるルート0番目のジョイントの位置p0tである。これにより、時刻tのフレームxtは、xt={p’1t,p’2t,,p’Kt}と表される。ただし、Kは、ルートを除くジョイント数である。データ分割部112は、ジョイント相対位置データを特定時間区間、例えば一定時間の区間に分割する。データ分割部112は、各ジョイントのジョイント相対位置データp’ktに対して、それぞれデータ分割処理を行う。図4は、データ分割部112によるデータ分割処理を説明するための概念図である。データ分割部112によるデータ分割処理では、ジョイント相対位置データを一定時間一定数のフレーム分に対応の区間に分割する。分割区間の長さは、適宜設定可能である。分割区間の長さは、例えば90フレーム分の長さである。短時間主成分分析部113は、データ分割部112によって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻tのフレームxtを用いて、一区間のデータXを、X={xt1,xt2,,xtN}と表す。ただし、Nは区間長区間内に含まれるフレームの個数である。Xは、M行N列の行列であるただし、M=3×K。主成分分析処理では、短時間主成分分析部113は、Xに対して主成分分析処理を行い、Xを主成分空間へ変換する。主成分分析処理については、例えば、httpenwikipediaorgwikiPrincipalcomponentsanalysisSoftware2Fsourcecodeにオープンソースが開示されている。ここで、短時間主成分分析部113が実行する主成分分析処理について説明する。まず、短時間主成分分析部113は、下記の式4により、Xから平均値を除いたN行M列の行列Dを算出する。次に、短時間主成分分析部113は、下記の式5により、N行M列の行列Dに対して特異値分解SingularValueDecomposition処理を実行する。特異値分解処理については、例えば、httpwwwgnuorgsoftwaregslにオープンソースが開示されている。ただし、Uは、N行N列のユニタリ行列である。Σは、N行M列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Vは、M行M列のユニタリ行列であり、主成分に対する係数PrincipalComponentである。次に、短時間主成分分析部113は、下記の式6により、N行M列の行列Dを主成分空間へ変換する。M行N列の行列Yは、主成分空間の座標を表す。短時間主成分分析部113は、区間ごとに、主成分空間の座標を表す行列主成分座標行列Yと、主成分に対する係数の行列主成分係数行列Vとを、メモリに保存する。なお、元空間の座標を表す行列Xと主成分座標行列Yは、式6および下記の式7によって相互に変換することができる。また、上位のr個の主成分によって、下記の式8により変換することができる。ただし、Vrは、主成分係数行列V内の上位のr個の行から成るM行r列の行列である。Yrは、主成分座標行列Y内の上位のr個の列から成るr行N列の行列である。X~は、復元されたM行N列の行列である。なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したM’行N列の行列X’に対して、式4から式6式までによって主成分分析処理を行う。主成分座標連結部114は、各区間の主成分の座標を時系列に沿って連結する。主成分座標連結部114が実行する主成分座標連結処理では、連続する2つの区間の境界部分において主成分の座標が滑らかに連結されるように、主成分の座標を調整する。図5は、主成分座標連結部114による主成分座標連結処理を説明するための概念図である。本実施形態では、主成分座標連結部114は、時系列にしたがって、先頭の区間から順番に主成分座標連結処理を行う。同図では、ある区間前区間までの主成分座標連結処理が終了している。そして、主成分座標連結部114は、その前区間に対して、次の区間当区間を連結するための主成分座標連結処理を実行する。この主成分座標連結処理では、主成分座標連結部114は、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択ステップによって選択された当区間の主成分座標元座標に対して、符号反転または座標シフトを行う。ここで、主成分座標連結部114が実行する主成分座標連結処理について説明する。主成分座標連結ステップS11:主成分座標連結部114は、当区間の主成分の座標第1主成分の元座標Y1に対し、当区間の主成分係数行列Vから、第1主成分に対する係数V1を取得する。さらに、主成分座標連結部114は、メモリに保存されている前区間の主成分係数行列Vから、第1主成分に対する係数V1preを取得する。主成分座標連結ステップS12:主成分座標連結部114は、当区間に係る第1主成分に対する係数V1と前区間に係る第1主成分に対する係数V1preとの関係に基づいて、当区間に係る第1主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、下記の式9により行う。式9による判定の結果、符号反転する場合には、主成分座標連結部114は、当区間の第1主成分の元座標Y1に対して符号反転を行うと共に、当区間の主成分係数行列Vに対しても符号反転を行う。一方、9式による判定の結果、符号反転しない場合には、主成分座標連結部114は、当区間の第1主成分の元座標Y1および当区間の主成分係数行列Vともに、そのままの値を主成分座標連結ステップS12の処理結果とする。ただし、Y1は、当区間で選択された主成分の座標第1主成分の元座標である。Vは、当区間の主成分係数行列である。V1は、当区間に係る第1主成分に対する係数である。V1preは、前区間に係る第1主成分に対する係数である。V1Vkpreは、V1とV1preの内積である。Y1’は、当区間で選択された主成分の座標第1主成分の元座標Y1に対する主成分座標連結ステップS12の処理結果である。V’は、当区間の主成分係数行列Vに対する主成分座標連結ステップS12の処理結果である。主成分座標連結ステップS13:主成分座標連結部114は、主成分座標連結ステップS12の処理結果の主成分座標Y1’に対して座標シフトを行う。具体的には、主成分座標連結部114は、下記の式10により座標シフトを行う。この場合、主成分座標連結部114は、前区間の主成分座標行列Yから、前区間の第tNフレームにおける第1主成分の座標Y1pretNを取得する。ただし、Y1’t1は、ステップS12の処理結果の主成分座標Y1’のうち、第t1フレームの座標である。Y1t2は、式10の最初の計算式の計算結果の座標Y1のうち、第t2フレームの座標である。式10の最初の計算式の計算結果の座標Y1に対し、主成分座標連結部114は、第t1フレームの座標Y1t1をY1optt1に置き換える。この置き換え後の座標Y1が、座標シフト結果の座標である。主成分座標連結ステップS14:主成分座標連結部114は、当区間において、主成分座標連結ステップS12の処理結果の座標Y1’に対して、主成分座標連結ステップS13の処理結果の座標Y1optt1を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。主成分座標連結部114は、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標yt,t=0,1,2,,T-1が求まる。ただし、Tは、動きデータに含まれるフレームの個数である。ビート推定部115は、主成分座標連結部114によって算出された連結後の全区間の主成分座標ytから、極値bjを算出する。この算出結果の極値bjがビートに対応する。ビートの集合Bは、下記の式11で表される。ただし、Jは、ビートの個数である。なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。例えば、ビート推定部115は、主成分座標連結部114によって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値bjをビートに対応するものとして算出することができる。また、ビート推定部115は、主成分座標連結部114によって、連結後の隣区間の主成分係数から算出した内積式9によるものの自己相関値を算出し、該自己相関値の極値bjをビートに対応するものとして算出することができる。後処理部116は、ビート推定部115によって算出されたビート集合Bから、ビート時刻を検出する。ここで、後処理部116が実行するビート時刻検出処理について説明する。まず、後処理部116は、ビート集合B内の各極値間を、下記の式12により正弦曲線Sinusoidで近似する。ただし、sj-1tは、j-1番目の極値bj-1からj番目の極値bjまでの区間の正弦近似値である。tはフレームに対応する時刻であり、t=0,1,2,,T-1である。Tは、動きデータに含まれるフレームの個数である。図6は、式12による正弦近似処理の概念図である。同図において、1番目の極値b1から2番目の極値b2までの区間a1j=2の場合の区間は、s1tで近似される。同様に、2番目の極値b2から3番目の極値b3までの区間a2j=3の場合の区間はs2tで近似され、3番目の極値b3から4番目の極値b4までの区間a3j=4の場合の区間はs3tで近似され、4番目の極値b4から5番目の極値b5までの区間a4j=5の場合の区間はs4tで近似される。次に、後処理部116は、正弦近似値sj-1t,j=2,3,,Jに対してフーリエ変換処理を実行する。このフーリエ変換処理には、所定のFFTFastFourierTransformポイント数Lのハン窓を用いたFFT演算器を使用する。そして、後処理部116は、そのフーリエ変換の結果に基づいて、フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数最大成分周波数fmaxを検出する。そして、ビート間隔TBをTB=Fs/fmaxの計算式により算出する。ただし、Fsは、1秒当たりのフレーム数である。次に、後処理部116は、正弦近似値sj-1t,j=2,3,,Jと、下記の式13で定義される基準値s’tとの間の最大相関初期位相を、下記の式14により算出する。次に、後処理部116は、下記の式15により、ビート時刻ebjの集合EBを算出する。ただし、EJは、ビート時刻ebjの個数である。以上が、本実施形態における動き解析部110によるビート時刻検出処理の説明である。本実施形態によれば、動きデータを入力し、短時間の区間ごとに主成分分析処理を行い、第1主成分の座標を算出し、各区間の座標を適切に連結し、ビートを抽出することができる。短時間主成分分析によれば、動きの最も大きい変化を表現できるため、動きの種類を問わず、多様な動きに対応し、より高い精度でビートを抽出することができる。次に、モデル構築部120が実行するGPDMの学習処理について説明する。図7は、GPDMの学習処理を説明するための概念図である。GPDMは、低次元である潜在空間X=[x1,x2,,xN]Tを、高次元であるポーズ空間Y=[y1,y2,,yN]Tに変換することができる。また、GPDMは、潜在空間X内で時間的に遷移することができる。なお、同図は、N=4の場合を模式的に示したものであり、パラメータであるαオーババー、βオーババー、およびWの記載が省略されている。xiは、ポーズ空間Yにおけるフレームyiに対応する潜在空間Xで学習した座標である。ここでは、xiは、潜在空間Xにおけるi番目のフレームである。yiは、ポーズ空間Yにおけるi番目のフレームである。αオーババーは、潜在空間Xにおいて、座標xiから座標xi1を予測する際に用いられる予測用のパラメータである。また、βオーババーおよびWは、潜在空間Xの座標xiからポーズ空間Yのフレームyiにマッピングする際に用いられるパラメータである。モデル構築部120は、ユーザモーションデータを取り込むと、これらのパラメータを学習する。潜在空間Xで一つの座標xt-1を入力すると、次の時刻の座標xtが下記の式16によって推定結果として算出される。ただし、Nはフレーム総数であり、μxxは平均値であり、σ2xxは分散であり、Iは単位行列である。また、潜在空間Xの座標xに対応するポーズ空間Yのフレームyは、下記の式17によって算出される。モデル構築部120は、前述したとおり、ユーザモーションデータを動きの複雑さに応じて複数のセグメントに分割し、セグメントごとに潜在空間でGPDMを学習し、その学習したGPDM同士で遷移可能な潜在空間の座標を推定する。モデル構築部120の詳細な処理については後述する。次に、モーション推定部20の詳細について説明する。図8は、モーション推定部20の機能構成を示すブロック図である。同図に示すように、モーション推定部20は、サンプル生成部201と、尤度計算部202と、リサンプリング部203と、潜在空間遷移尤度計算部204と、予測部205とを備える。サンプル生成部201は、ポーズ空間における対象のフレームデータと、ユーザモーションデータの各フレームデータとの距離をそれぞれ計算し、その計算した距離が全体の平均距離以下であって且つ極小値である、ユーザモーションデータのフレームデータをシードフレームとして抽出する。そして、サンプル生成部201は、下記の式18により距離に基づくサンプル数を計算する。ただし、diは第i番目のシードフレームにおける距離である。qiは距離が小さいほど大きくなる関数である。piはqiを正規化した尤度である。niは、第i番目のシードフレームのサンプル数である。また、Nは、サンプル総数である。サンプル生成部201は、第i番目のシードフレームに対応する潜在空間の座標を、GPDMグラフデータから抽出する。そして、サンプル生成部201は、その抽出した座標を中心に、ni個のサンプルを例えば乱数を用いて無作為に生成する。その生成範囲は、例えば、GPDMグラフデータにおけるσ2xx×k,0<k<1である。そして、サンプル生成部201は、これら生成したサンプルをポーズ空間に対応させて得られる座標を、最終サンプルとして生成する。なお、人体姿勢推定装置1が処理するポーズ空間における最初のフレームデータについては、サンプル生成部201は、例えば以下の方法のいずれかによってリファレンスビデオデータからポーズデータを取得する。1画像からポーズを検出する専用センサによってポーズを検出し、そのポーズのポーズデータを取得する。2ユーザによる手作業によってリファレンス映像から所望のポーズを選び、そのポーズのポーズデータを取得する。3あらかじめ、既知ポーズの被写体を撮影してリファレンスビデオデータを作成しておき、そのリファレンスビデオデータから既知ポーズに対応するポーズデータを取得する。4公知のポーズ推定技術を用いて、他の画像からポーズデータを取得する。尤度計算部202は、ポーズ空間における対象のフレームデータと各サンプルとを比較して尤度を計算する。具体的には、尤度計算部202は、対象のフレームデータにサンプルを投影して枠を生成する。この枠は、例えば、15個の体のジョイントを含んだ運動学的なツリー構造を有している。そして、尤度計算部202は、その枠とフレームデータにおける画像のエッジとを比較して、枠と画像のエッジとの尤度を下記の式19の尤度関数によって計算する。また、尤度計算部202は、その枠と画像のシルエットとを比較して、枠と画像のシルエットとの尤度を下記の式20の尤度関数によって計算する。なお、これら画像のエッジおよびシルエットを用いた尤度の計算については、非特許文献2に詳細が説明されている。次に、尤度計算部202は、全サンプルの尤度を正規化する。まず、尤度計算部202は、画像のエッジおよびシルエットの有効性を判定する。具体的には、尤度計算部202は、サンプルごとに各尤度と閾値とを比較し、画像のエッジを用いて計算した尤度と画像のシルエットを用いて計算した尤度との両方ともが閾値を超える場合に有効であると判定し、閾値以下である場合に有効でない、すなわち無効であると判定する。尤度計算部202は、有効であると判定した場合は、下記の式21により、画像のエッジを用いて計算した尤度と、画像のシルエットを用いて計算した尤度とのサンプルごとの平均値を求めて正規化値とする。一方、尤度計算部202は、無効であると判定した場合には、対応する尤度を使用せず、各尤度を1/NNはサンプル総数とする。リサンプリング部203は、尤度計算部202が計算した尤度に基づいて重みを計算する。例えば、リサンプリング部203は、尤度が大きいほど重みを大きくする。そして、リサンプリング部203は、重みに基づいて潜在空間におけるサンプルを置換する。具体的には、リサンプリング部203は、現在のサンプルの集合から重みに比例した確率で所定数のパーティクルを生成し、これらのパーティクルの集合で、現在のパーティクルの集合を置き換える。ここまでのモーション推定部20の処理によって、ポーズ空間における当該対象のフレームデータの処理が完了する。そして、次に、潜在空間遷移尤度計算部204が次フレームに移るための処理を実行する。潜在空間遷移尤度計算部204は、ポーズ空間における当該対象のフレームデータからGPDMグラフデータにおけるビートフレームまでの距離を計算する。この距離は、例えば遷移尤度である。そして、潜在空間遷移尤度計算部204は、その距離が予め決定された閾値より小さい場合に、そのビートフレームが所在する潜在空間に遷移させる。そして、潜在空間遷移尤度計算部204は、その距離に応じてサンプル数を再分配する。ここで、潜在空間遷移尤度計算部204は、遷移させるサンプル数を前記の式18により計算する。また、潜在空間遷移尤度計算部204は、そのサンプル数分のサンプルを、遷移した潜在空間の座標を中心にして生成する。予測部205は、遷移させた潜在空間において、GPDMグラフデータを用いて前記の式16を計算することにより、次フレームのサンプルを予測する。そして、予測部205は、予測したサンプルを、前記の式17を計算することによってポーズ空間に対応させて得られる座標を、最終サンプルとして生成する。次に、モデル学習部10のモデル構築部120の動作について説明する。図9は、モデル構築部120の処理手順を示すフローチャートである。まず、ステップS1において、モデル構築部120は、ユーザモーションデータからモーションデータの部分データであるモーションクリップを取り込めるか否かを判定する。具体的には、例えば、モデル構築部120は、ユーザモーションデータに少なくとも3つのビートフレームが含まれるか否かを調べる。そして、モデル構築部120は、ユーザモーションデータに少なくとも3つのビートフレームが含まれている場合は、ユーザモーションデータからモーションクリップを取り込めると判定し、ユーザモーションデータに2つ以下のビートフレームしか含まれていない場合は、ユーザモーションデータからモーションクリップを取り込めないと判定する。そして、モデル構築部120は、ユーザモーションデータからモーションクリップを取り込めると判定した場合は、ステップS2の処理に移り、ユーザモーションデータからモーションクリップを取り込めないと判定した場合は、本フローチャートの処理を終了する。ステップS2において、モデル構築部120は、ユーザモーションデータからモーションクリップを取り込む。次に、ステップS3において、モデル構築部120は、モーションクリップを1セグメントとしてGPDMを学習する。そして、モデル構築部120は、学習したGPDMを用い、ユーザモーションデータの第1フレームに対応する潜在空間の座標を用いて、ユーザモーションデータytrainingt1:Nと同じ長さである復元モーションデータyrect1:Nを生成する。次に、ステップS4において、モデル構築部120は、ユーザモーションデータytrainingt1:Nと復元モーションデータyrect1:Nとの対応フレームの距離復元誤差を下記の式22により計算する。次に、ステップS5において、モデル構築部120は、セグメントを分割するか否かを判定する。具体的には、図10に示すように復元誤差errortがあらかじめ設けられた閾値を超えるとき、モデル構築部120は、下記の式23による時点を分割点sとして決定する。ただし、lエルは、セグメントの開始点から復元誤差errortが閾値を超えるときまでの時間である。また、tはビートフレーム間隔の平均時間である。つまり、2t分の時間は、少なくとも1個のビートフレームが含まれると推定される時間である。すなわち、式23によれば、モデル構築部120は、セグメントの開始点から復元誤差が閾値を超えるまでの時間lエルがビートフレーム間隔の平均時間の2倍の時間2tよりも長い場合は、時間lエルの時点を分割点sとする。また、モデル構築部120は、時間lエルが時間2t以下である場合は、時間2tの時点を分割点sとする。分割する場合S5:YESはステップS6の処理に移り、分割しない場合S5:NOはステップS8の処理に移る。ステップS6において、モデル構築部120は、ステップS5の処理において決定した分割点sでセグメントを2つに分割する。次に、ステップS7において、モデル構築部120は、ステップS6の処理で分割したセグメントの分割点よりも前の部分について、ステップS3の処理と同様にしてGPDMを学習し、ステップS1の処理に戻る。ステップS5の処理においてモデル構築部120がセグメントを分割しないと判定するとS5:NO、ステップS8において、モデル構築部120は、ユーザモーションデータから、例えば次のビートフレームが含まれるまでのモーションクリップを取り込む。そして、ステップS3の処理に戻る。以上説明したとおり、本発明の一実施形態における人体姿勢推定装置1は、リファレンス映像のデータであるリファレンスビデオデータを再生して表示し、この表示されたリファレンス映像における人体の動きを真似たユーザの動きに基づいてユーザモーションデータを取得する。そして、人体姿勢推定装置1は、取得したユーザモーションデータを動きの複雑さに応じて複数のセグメントに分割し、セグメントごとに潜在空間でGPDMグラフデータを生成する。そして、人体姿勢推定装置1は、GPDMグラフデータに基づいて、リファレンスビデオデータのリファレンス映像における人体姿勢をフレームごとに追跡して人体姿勢推定データを生成し出力する。これにより、本実施形態における人体姿勢推定装置1は、手本となる人体の動きを映したリファレンス映像のデータとして、二次元ビデオデータであるリファレンスビデオデータを用いるため、過去に映像化された故人の動きや、映像化された架空の人物の動きを適用することができる。また、本実施形態における人体姿勢推定装置1は、次元数の低い潜在空間でのパーティクルフィルタを適用することにより、パーティクルの追跡を高く保つことができる。さらに、本実施形態における人体姿勢推定装置1は、ユーザモーションデータを動きの複雑さに応じて複数のセグメントに分割しセグメントごとにGPDM学習を行うことにより、複雑な動きが含まれる人体の姿勢推定を高精度に行うことができる。したがって、本実施形態における人体姿勢推定装置1によれば、ユーザ自身のユーザモーションデータをモデル化した学習モデルに基づいて、リファレンス映像から人体姿勢を高精度に推定することができる。なお、上述した実施形態である人体姿勢推定装置の一部の機能をコンピュータで実現するようにしてもよい。この場合、その制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいうコンピュータシステムとは、OSOperatingSystemや周辺装置のハードウェアを含むものである。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、光ディスク、メモリカード等の可搬型記録媒体、コンピュータシステムに内蔵される磁気ハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバ装置やクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持するものを含んでもよい。また上記のプログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせにより実現するものであってもよい。以上、本発明の実施の形態について図面を参照して詳述したが、具体的な構成はその実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計等も含まれる。"