"複数の関節を有する多関節物体の姿勢を3次元空間における前記関節の位置で示す3次元動作データを出力する3次元動作データ取得部と、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記3次元動作データで示される関節を該仮想視点に2次元投影した2次元動作データを生成する仮想視点投影部と、前記3次元動作データと前記2次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習部と、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力部と、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出部と、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定3次元動作データと、前記3次元動作データ取得部が出力した3次元動作データのうち前記推定3次元動作データとの差から前記多関節物体の動きベクトルを生成する第1の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第2の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第3の処理とを、前記画像データごとに繰り返す3次元姿勢推定部と、を具備することを特徴とする3次元姿勢推定装置。複数の関節を有する多関節物体の姿勢を3次元空間における前記関節の位置で示す3次元動作データを出力する3次元動作データ取得ステップと、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記3次元動作データで示される関節を該仮想視点に2次元投影した2次元動作データを生成する仮想視点投影ステップと、前記3次元動作データと前記2次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定3次元動作データと、前記3次元動作データ取得ステップにおいて出力した3次元動作データのうち前記推定3次元動作データとの差から前記多関節物体の動きベクトルを生成する第1の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第2の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第3の処理とを、前記画像データごとに繰り返す3次元姿勢推定ステップと、を有することを特徴とする3次元姿勢推定方法。複数の関節を有する多関節物体の姿勢を3次元空間における前記関節の位置で示す3次元動作データを出力する3次元動作データ取得ステップと、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記3次元動作データで示される関節を該仮想視点に2次元投影した2次元動作データを生成する仮想視点投影ステップと、前記3次元動作データと前記2次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定3次元動作データと、前記3次元動作データ取得ステップにおいて出力した3次元動作データのうち前記推定3次元動作データとの差から前記多関節物体の動きベクトルを生成する第1の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第2の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第3の処理とを、前記画像データごとに繰り返す3次元姿勢推定ステップと、をコンピュータに実行させるためのプログラム。しかしながら、上記の手法では、2次元画像面カメラ投影面に対する人物の動きの方向が既知であるという前提条件が必要である。すなわち、カメラの位置が既知であり、カメラと人物との相対的な位置関係が既知であることが必要である。そのため、カメラの位置が未知である場合、人物の姿勢を推定することができないという問題があった。本発明は、上記問題を解決すべくなされたもので、その目的は、カメラの位置が未知である場合においても、2次元画像から人物の姿勢を推定できる3次元姿勢推定装置、3次元姿勢推定方法、及びプログラムを提供することにある。上記問題を解決するために、本発明は、複数の関節を有する多関節物体の姿勢を3次元空間における前記関節の位置で示す3次元動作データを出力する3次元動作データ取得部と、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記3次元動作データで示される関節を該仮想視点に2次元投影した2次元動作データを生成する仮想視点投影部と、前記3次元動作データと前記2次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習部と、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力部と、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出部と、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定3次元動作データと、前記3次元動作データ取得部が出力した3次元動作データのうち前記推定3次元動作データとの差から前記多関節物体の動きベクトルを生成する第1の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第2の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第3の処理とを、前記画像データごとに繰り返す3次元姿勢推定部と、を具備することを特徴とする3次元姿勢推定装置である。また、本発明は、複数の関節を有する多関節物体の姿勢を3次元空間における前記関節の位置で示す3次元動作データを出力する3次元動作データ取得ステップと、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記3次元動作データで示される関節を該仮想視点に2次元投影した2次元動作データを生成する仮想視点投影ステップと、前記3次元動作データと前記2次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定3次元動作データと、前記3次元動作データ取得ステップにおいて出力した3次元動作データのうち前記推定3次元動作データとの差から前記多関節物体の動きベクトルを生成する第1の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第2の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第3の処理とを、前記画像データごとに繰り返す3次元姿勢推定ステップと、を有することを特徴とする3次元姿勢推定方法である。また、本発明は、複数の関節を有する多関節物体の姿勢を3次元空間における前記関節の位置で示す3次元動作データを出力する3次元動作データ取得ステップと、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記3次元動作データで示される関節を該仮想視点に2次元投影した2次元動作データを生成する仮想視点投影ステップと、前記3次元動作データと前記2次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定3次元動作データと、前記3次元動作データ取得ステップにおいて出力した3次元動作データのうち前記推定3次元動作データとの差から前記多関節物体の動きベクトルを生成する第1の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第2の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第3の処理とを、前記画像データごとに繰り返す3次元姿勢推定ステップと、をコンピュータに実行させるためのプログラムである。この発明によれば、推定した3次元動作データと、動作モデルを生成した際に用いた3次元動作データとの差から動きベクトルを生成し、動きベクトルに基づいて視点球上から複数の視点候補を選択し、選択した視点候補ごとに、動作モデルを事前知識として画像データから得られる特徴量データから姿勢及び視点を推定する。これにより、姿勢を推定する対象の多関節物体と画像データを撮像した視点との位置関係の変化、すなわち、多関節物体を基準としたときの視点の変化を、多関節物体の姿勢の推定とともに算出することができる。以下、図面を参照して、本発明に係る実施形態における3次元姿勢推定装置、3次元姿勢推定方法、及びプログラムを説明する。図1は、本実施形態における3次元姿勢推定装置100の構成を示す概略ブロック図である。同図に示すように、3次元姿勢推定装置100は、学習部110と、動作情報記憶部120と、姿勢推定部130と、推定姿勢情報記憶部140とを具備している。学習部110は、3次元動作データ取得部111と、仮想視点投影部112と、動作モデル学習部113とを備えている。姿勢推定部130は、画像生成部131と、特徴量算出部132と、3次元姿勢推定部133とを備えている。3次元動作データ取得部111は、人や物などの多関節物体以下、人物という。の3次元動作データを取得し、取得した3次元動作データを動作情報記憶部120に記憶させるとともに、取得した3次元動作データを仮想視点投影部112に出力する。3次元動作データ取得部111は、例えば、市販のモーションキャプチャシステムや、多視点カメラで構成することができる。3次元動作データは、人物の各関節の3次元回転角や、関節間の接続を階層構造として示す階層構造情報を有している。仮想視点投影部112は、3次元動作データ取得部111において取得された3次元動作データが示す人物の動作を、仮想視点Viに2次元投影した2次元動作データを生成する。仮想視点投影部112は、予め定められた複数の仮想視点Viごとに、2次元動作データを生成する。また、仮想視点投影部112は、生成した2次元動作データを、当該2次元動作データを生成する際に用いた3次元動作データに対応付けて動作情報記憶部120に記憶させる。図2は、本実施形態における仮想視点の概略を示す図である。同図に示すように、仮想視点は、人体の腰の関節を示す位置を中心とする視点球を設定し、設定した視点球上の予め定められた位置に設定される。このとき、腰の関節を示す位置を原点x,y,z=0,0,0とする3次元座標系が定められる。また、各関節を関節番号kで識別するとき、仮想視点Viにおける関節番号kの位置は、yk,zkで示される。関節数がK個の場合、仮想視点Viの2次元動作データをY2Diとすれば、Y2Diは2×Kの行列として示すことができる。図1に戻って、3次元姿勢推定装置100の構成の説明を続ける。動作モデル学習部113は、3次元動作データ取得部111が取得した3次元動作データと、仮想視点投影部112が生成した2次元動作データとに基づいて、動作モデルを生成する。動作モデルは、例えば、2次元動作データY2Diを次元圧縮し、低次元特徴X2Diで表現したもの等を利用することができる。この場合、動作モデル学習部113は、低次元特徴X2Diに基づく空間と、3次元動作データに基づく空間とを対応付ける学習モデル写像関数を生成する。画像生成部131は、姿勢の推定対象となる人物を撮像した画像データを生成し、生成した画像データを時系列順に特徴量算出部132に出力する。画像生成部131は、例えば、1台あるは複数台のカメラを用いて構成することができる。なお、画像生成部131を備えることに替えて、外部から入力された画像データを特徴量算出部132に出力するようにしてもよい。特徴量算出部132は、画像生成部131から入力された画像データから、画像データ上における各関節の位置を検出し、検出した関節の位置を特徴量データとして算出する。特徴量算出部132が各関節の位置を検出する際に、関節位置の初期位置は、公知の画像認識等の技術を用いて検出するようにしてもよいし、ユーザが画像データ上における各関節の位置を入力するようにしてもよい。また、各関節の位置の追跡は、公知の2次元追跡手法を用いるようにしてもよい。3次元姿勢推定部133は、特徴量算出部132が出力する特徴量データと、動作情報記憶部120に記憶されている動作モデルとをフィッティングすることにより、3次元の姿勢を推定し、推定した姿勢を示す姿勢情報を推定姿勢情報記憶部140に記憶させる。推定姿勢情報記憶部140は、3次元姿勢推定部133が推定した姿勢情報を記憶する。推定姿勢情報記憶部140に記憶されている姿勢情報を用いることで、仮想的な空間に、リアルタイムに人物の動作を反映させることや、人体の動作解析等に利用することができる。以下、学習部110と、姿勢推定部130とにおいて行われる処理について説明する。学習部110では、仮想視点Viごとの動作モデルを構築する。仮想視点投影部112における仮想視点Viそれぞれの2次元動作データは、例えば、図2に示すような、人体の腰の位置ルートを基準とし、予め定められた半径を有する視点球を考えることで生成できる。具体的には、視点球の表面を一定の間隔でサンプリングし、サンプリングした各点に仮想的なカメラを置き、各時刻における人体の各関節の位置を2次元投影する。i番目のサンプリング点を仮想視点Viとし、動作モデル学習部113が動作モデルを生成する。図3は、本実施形態における学習部110の学習処理を示すフローチャートである。学習部110において、3次元動作データ取得部111は、3次元動作データを取得しステップS301、人体の腰の位置を基準とした各関節の3次元相対座標値を算出するステップS302。3次元相対座標の算出は、各関節の回転角と関節間の階層構造の情報に基づいて算出することができる。例えば、腰の3次元座標をx,y,z=0,0,0とし、関節番号kの3次元座標をxk,yk,zkで表す。仮想視点投影部112は、学習する仮想視点Viを選択するステップS303。このとき、仮想視点投影部112は、選択した仮想視点Viの位置を、図2に示すように人体のルート腰を中心とした仰角φと、方位角θとを用いて表す。仮想視点投影部112は、3次元動作データ取得部111が算出した3次元相対座標値を仮想視点Viに投影したときの2次元座標値を算出する。例えば、図2における仮想視点Viでは、仮想視点V1のときと比較して人体をz軸まわりに-θ回転させた後に、y軸まわりに-φ回転することと同義である。回転を行う方法として、例えば、同次ベクトルを用いる方法がある。関節番号kの3次元相対座標xk,yk,zkを同次座標形式では次式1のように表す。式1で表される座標Pを、z軸まわりに-θ回転させた後に、y軸まわりに-φ回転させた座標P ́を算出するには、回転行列Rθ、Rφを用いて、次式2で示す演算を行う。ここで、回転行列Rθは次式3で示され、回転行列Rφは次式4で示される。式2を用いて算出した座標値P ́からy成分とz成分とを取り出し、仮想視点Viにおける関節番号kの2次元座標yik,zikとする。関節数がKであれば、仮想視点Viにおける各関節の2次元座標値は、2×Kの行列で表される。動作モデル学習部113は、仮想視点Viに対応する動作モデルを学習するステップS305。動作モデルの学習の方法は、一例として、非特許文献2に記載されているように、高次元データを次元圧縮する手法により、ステップS304において算出した2次元動作データを低次元化し、低次元特徴X2Diを仮想視点Viの動作モデルとして用いる。動作モデル学習部113は、動作モデルを動作情報記憶部120に記憶させる。動作モデル学習部113は、処理フレーム数iが学習視点数Iより少ないか否かを判定しステップS306、処理フレーム数iが学習視点数Iより少ない場合ステップS306:Yes、処理をステップS303に戻しステップS303~ステップS306の処理を繰り返し行い、処理フレーム数iが学習視点数Iより少なくない場合ステップS306:No、処理を終了する。なお、学習視点数Iは、予め定められた値である。続いて、姿勢推定部130における処理について説明する。姿勢推定部130では、視点を状態とする姿勢推定を行う。すべての視点に関する階層的な動作モデルを全探索することでも姿勢の推定は可能であるが、学習時の仮想視点の粒度を細かくするほど探索範囲探索対象が膨大となってしまう。そこで、姿勢推定部130では、推定する状態に視点を加えて状態推定を行う。本実施形態では、状態の推定は、一般的なMAPMaximumAPosteriori;事後確率最大化推定や、パーティクルフィルタ等を用いて行う。ここで、視点を推定するとは、図2に示すθ、φを決定することである。さらに、時刻nの視点候補をθn=θn-1dθn,φn=φn-1dφnを平均とした正規分布に基づきサンプリングすることで、視点の探索範囲を絞り込むことができる。図4は、本実施形態における動きベクトルの定義を示す図である。同図には、人物の並進と、人物の回転とに対する動きベクトルの定義が示されている。人物が並進した場合、時刻n-1における視点から人物へのベクトルと、時刻nにおける視点から人物へのベクトルとのなす角dθtnにより人物の動きを表す。また、人物が回転した場合、人物が回転した角dθrnにより人物の動きを表す。視点変化dθn、dφnは、例えば、図4に示すように学習データである3次元動作データの動きベクトルモーションキャプチャデータのルートの並進と回転との変化量に基づいて定義する。これは、前の時刻のルートに対する並進と回転とは、動作の特徴を保持するとの考えに基づいている。より具体的には、前の時刻の推定全身3次元動作データと最も近い学習動作データの並進tn-1と回転rn-1とからそれぞれ視点の変化量dθtn、dθrnを算出する。全体としての視点変化は、dθn=dθtn-dθrnで定義する。φに関しても同様に算出する。図5は、本実施形態における姿勢推定部130の姿勢推定処理を示すフローチャートである。姿勢推定部130において、3次元姿勢推定部133は、画像生成部131が出力する画像データに関して、初期視点θ0、φ0を大まかに設定するステップS401。ここで、視点は、学習した際の視点の位置を表す定義に従い、表される。例えば、図2に示したように、人体のルート腰の位置を中心とした仰角と方位角とを用いて、視点の位置を表す。なお、初期視点θ0、φ0は、ユーザによって外部より入力された値を用いてもよいし、視点球状の予め定められた視点から選択するようにしてもよい。3次元姿勢推定部133は、動作情報記憶部120に記憶されている動作モデルであって学習部110により仮想視点Viごとに学習された動作モデルと、特徴量算出部132が算出した特徴量データとを比較することにより、初期姿勢を推定するステップS402。特徴量データは、例えば、一般的な2次元トラッキング手法により、各関節の位置座標及びその変化を時々刻々求めたものを用いる。3次元姿勢推定部133は、初期姿勢を示す情報を推定情報として推定姿勢情報記憶部140に記憶させる。3次元姿勢推定部133は、推定姿勢情報記憶部140に記憶されている推定情報と、動作情報記憶部120に記憶されている学習データとから、図4に示したような方法で動きベクトルを算出するステップS403。動きベクトルは、推定された3次元動作データYと最も近い学習3次元動作データYとから、移動量と回転量とを求めることで算出する。ここで、推定された3次元動作データYの初期値は、ステップS402において推定された初期姿勢に対応し動作モデルから得られる3次元動作データであり、ステップS405の処理が行われた後には、推定された姿勢に対応し動作モデルから得られる3次元動作データである。また、学習3次元動作データYは、動作情報記憶部120に記憶されている3次元動作データであって、動作モデルを生成した際に用いられた3次元動作データである。また、推定された3次元動作データYと最も近い学習3次元動作データYとは、例えば、3次元動作データが有している各関節の3次元回転角の差分の総和が最小の3次元動作データである。3次元姿勢推定部133は、ステップS403において算出した動きベクトルから、時刻nにおける視点候補をθn=θn-1dθn、φn=φn-1dφnを平均とした正規分布に基づきサンプリングするステップS404。例えば、視点のサンプリング数Nviewを100とすれば、視点候補は100個生成され、その平均値は、θn=θn-1dθn、φn=φn-1dφnとなる。3次元姿勢推定部133は、動作情報記憶部120に記憶されている2次元学習も出るであって学習部110によって仮想視点Viごとに学習された動作モデルと、特徴量算出部132が算出した特徴量データとを比較することにより、姿勢を推定するステップS405。3次元姿勢推定部133が行う姿勢推定は、例えば、時系列順に連続する画像データである2次元映像における人物動作の関節位置を、観測して得られた特徴量I1:n≡I1,...,Inとして、下記のような手法で実現できる。姿勢推定は、学習した動作モデルを事前知識として、観測から状態Φn=[yn,xn,Sn]を推定することにより行う。ここは、状態Φnは、ynとxnとSnとの組合せで表される。ynは2次元動作データであり、xnはynに対応する低次元特徴であり、Snは2次元写像に影響するスケールパラメータであり、例えば、実際の人物のサイズと画像データにおける当該人物のサイズとの比などである。状態推定は、次式5における事後確率を最大化する状態を求めることと等しく、MAP推定や、パーティクルフィルタ等のサンプリング手法によって実現される。すなわち、事後確率を最大化する状態を求め、当該状態に対応する仮想視点Viの動作モデルが2次元映像から観測される人物の姿勢となる。ここで、式5における右辺の第1項は尤度観測モデルを表し、第2項は予測分布状態遷移モデルを表している。ここでは、パーティクルフィルタを用いて式5を解く。状態Φnを推定する問題を事後確率の期待値を求める問題とする。このとき、期待値は次式6で表される。観測モデルと状態遷移モデルとをランダムサンプリングによりモンテカルロ近似し、期待値を次式7のサンプルの重みつき平均として表す。このとき、状態遷移モデルΦinは次式8で表され、観測モデルωinは次式9で表される。状態遷移モデル状態サンプルΦin=[xin,yin,Sin]を学習した動作モデルに従い生成する。このとき、3次元姿勢推定部133は、ステップS404において算出した視点候補Viごとに、その視点の動作モデルに従い状態サンプルを生成する。状態遷移モデルは、動作モデルの学習手法に従い定義される。例えば、非特許文献3の手法により学習された動作モデルであれば、未知の潜在変数xnと、部分動作データynはそれぞれ次式10、11で与えられる。このとき、μXxとμYyとは次式12、13で表される。ここで、kXx、kYxはi番目の要素にkXx,xi、kYx,xiをもつベクトルである。観測モデル尤度は次式14で規定する。ここで、^Ijnは、公知の2次元トラッキング手法を用いて、観測映像から検出されたj番目の関節の位置であり、yjnは状態Φnにおける2次元観測された関節のうちj番目の関節を示す。3次元姿勢推定部133は、視点候補ごとに、上記の状態遷移モデルと観測モデルとを用いて式6から期待値を算出する。視点候補ごと期待値を求め、期待値が最大となる状態に基づいて、人物の姿勢を推定する。換言すると、3次元姿勢推定部133は、視点候補ごとに、当該視点候補に対応する状態Φnに含まれる姿勢のうち、最も確からしい期待値が最大の状態Φnに含まれる姿勢を選択する。3次元姿勢推定部133は、推定した人物の姿勢を示す情報を推定情報として推定姿勢情報記憶部140に記憶させる。3次元姿勢推定部133は、処理フレーム数nが画像生成部131から出力されたフレーム数Nより少ないか否かを判定しステップS406、処理フレーム数nがNより少ない場合ステップS406:Yes、処理をステップS403に戻して、ステップS403~ステップS406を繰り返し行い、処理フレーム数nがNより少なくない場合ステップS406:No、処理を終了する。上述の処理により、姿勢推定部130は、画像生成部131から出力される時系列順に連続する画像データフレームごとに、式7で表される期待値が最大となる状態Φnを選択する。姿勢推定部130は、フレームごとに選択した状態Φnに対応するカメラの視点及び人物の姿勢を推定姿勢情報記憶部140に記憶させる。このとき、姿勢推定部130は、カメラの視点及び人物の姿勢を対応付けて時系列順に記憶させる。上述のように、人物の姿勢の推定において、人物とカメラとの位置関係、すなわちカメラの位置に対する人物の動きの方向が未知である場合においても、人物の姿勢と、カメラの位置視点との推定を行うことができる。このとき、人物の姿勢と視点との組合せを状態として扱い、MAP推定や、パーティクルフィルタ等を用いて状態の推定を行うことにより、計算コストを削減して、2次元映像から人物の姿勢推定を行うことができる。また、視点候補を動きベクトルに基づいて絞り込むことにより、計算コストを削減することができる。このように、3次元姿勢推定装置100を用いることにより、カメラのキャリブレーションをせず、かつ、人物の動きの方向に関する制限を設けることなく、姿勢推定を行うことができる。なお、上述の実施形態において、3次元姿勢推定装置100は、人体の姿勢を推定する場合について説明したが、これに限ることなく、複数の関節を有する物体や、動物等の姿勢を推定するようにしてもよい。なお、本発明における3次元姿勢推定装置100の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより学習部110と姿勢推定部130とが行う物体の姿勢及び視点の推定を行ってもよい。なお、ここでいうコンピュータシステムとは、OSや周辺機器等のハードウェアを含むものとする。また、コンピュータシステムは、ホームページ提供環境あるいは表示環境を備えたWWWシステムも含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリRAMのように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する伝送媒体は、インターネット等のネットワーク通信網や電話回線等の通信回線通信線のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル差分プログラムであっても良い。"