(57)【特許請求の範囲】
【請求項１】
複数の関節を有する多関節物体の姿勢を３次元空間における前記関節の位置で示す３次元動作データを出力する３次元動作データ取得部と、
前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記３次元動作データで示される関節を該仮想視点に２次元投影した２次元動作データを生成する仮想視点投影部と、
前記３次元動作データと前記２次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習部と、
姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力部と、
前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出部と、
前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定３次元動作データと、前記３次元動作データ取得部が出力した３次元動作データのうち前記推定３次元動作データとの差から前記多関節物体の動きベクトルを生成する第１の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第２の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第３の処理とを、前記画像データごとに繰り返す３次元姿勢推定部と、
を具備することを特徴とする３次元姿勢推定装置。
【請求項２】
複数の関節を有する多関節物体の姿勢を３次元空間における前記関節の位置で示す３次元動作データを出力する３次元動作データ取得ステップと、
前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記３次元動作データで示される関節を該仮想視点に２次元投影した２次元動作データを生成する仮想視点投影ステップと、
前記３次元動作データと前記２次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、
姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、
前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、
前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定３次元動作データと、前記３次元動作データ取得ステップにおいて出力した３次元動作データのうち前記推定３次元動作データとの差から前記多関節物体の動きベクトルを生成する第１の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第２の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第３の処理とを、前記画像データごとに繰り返す３次元姿勢推定ステップと、
を有することを特徴とする３次元姿勢推定方法。
【請求項３】
複数の関節を有する多関節物体の姿勢を３次元空間における前記関節の位置で示す３次元動作データを出力する３次元動作データ取得ステップと、
前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記３次元動作データで示される関節を該仮想視点に２次元投影した２次元動作データを生成する仮想視点投影ステップと、
前記３次元動作データと前記２次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、
姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、
前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、
前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定３次元動作データと、前記３次元動作データ取得ステップにおいて出力した３次元動作データのうち前記推定３次元動作データとの差から前記多関節物体の動きベクトルを生成する第１の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第２の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第３の処理とを、前記画像データごとに繰り返す３次元姿勢推定ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラで撮影された画像データから対象の３次元的な姿勢又は動作を推定する３次元姿勢推定装置、３次元姿勢推定方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、モーションキャプチャシステムや距離画像を用いずに、画像データから人や物の姿勢推定・運動解析を行う研究が広く行われている（例えば、非特許文献１参照）。これらの研究は、映像監視やヒューマンインタラクション、ロボットの運動制御、ＣＧアニメーションへの動作あてはめ、医療分野等、幅広い分野への応用が期待されている。
【０００３】
しかし、画像データに基づいて、３次元的な仮想空間における人物の姿勢を推定する場合、任意の時間における人物の関節の３次元回転角を推定することが困難である。特に、単眼カメラを用いて撮影された画像データから、人物の３次元の姿勢を推定する場合、画像データにおいては人物が２次元で表現されているため、３次元で表現するための情報の欠如している。そのため、姿勢の多義性に対応できないことや、手足や障害物による遮蔽に対応できないことなどが問題となる。
【０００４】
これらの問題に対処するため、姿勢を推定する際に、人物の動きに関する事前知識を用いる手法が注目されている。この事前知識とは、２次元の画像データに基づき、３次元で表現するために欠如している情報を補充するための情報である。具体的には、光学モーションキャプチャシステムにより計測された高精度な３Ｄ動作データから低次元特徴を取り出し動作モデルを構築し、この動作モデルを事前知識として用いることが行われている。
事前知識として、人物の動作を３次元の情報として記述する際、一般的に、モデルの汎用性を高めるために、空間中に基準点を置くいわゆる世界座標系ではなく、人物の一部分、例えば腰の位置（ルート）を基準とした相対的な変化量が動作データとして用いられている。
【０００５】
実際の映像では、対象とする人物の動作により、人物に設定している基準点と、カメラとの相対位置は常に変動する。このため、実映像を観測データとして人物の姿勢に対する３次元動作推定を行う際には、この相対位置関係（視点）の変動を考慮する必要がある。
そこで、非特許文献２に記載された３次元姿勢推定方法では、視点を考慮するために、動作モデルとして、３次元動作データのみを用いて学習し、推定の際に投影２Ｄ面を線形予測式により規定する手法が用いられている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】島田伸敬、有田大作、玉木徹、「関節物体のモデルフィッティング」、情報処理学会研究報告、CＶｉM Vol.154. page.375-392. 2006.
【非特許文献２】R. Urtasun, D. J. Fleet, and P. Fua."3d people tracking with gaussian process dynamical models." CVPR, 2006.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の手法では、２次元画像面（カメラ投影面）に対する人物の動きの方向が既知であるという前提条件が必要である。すなわち、カメラの位置が既知であり、カメラと人物との相対的な位置関係が既知であることが必要である。そのため、カメラの位置が未知である場合、人物の姿勢を推定することができないという問題があった。
【０００８】
本発明は、上記問題を解決すべくなされたもので、その目的は、カメラの位置が未知である場合においても、２次元画像から人物の姿勢を推定できる３次元姿勢推定装置、３次元姿勢推定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記問題を解決するために、本発明は、複数の関節を有する多関節物体の姿勢を３次元空間における前記関節の位置で示す３次元動作データを出力する３次元動作データ取得部と、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記３次元動作データで示される関節を該仮想視点に２次元投影した２次元動作データを生成する仮想視点投影部と、前記３次元動作データと前記２次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習部と、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力部と、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出部と、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定３次元動作データと、前記３次元動作データ取得部が出力した３次元動作データのうち前記推定３次元動作データとの差から前記多関節物体の動きベクトルを生成する第１の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第２の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第３の処理とを、前記画像データごとに繰り返す３次元姿勢推定部と、を具備することを特徴とする３次元姿勢推定装置である。
【００１０】
また、本発明は、複数の関節を有する多関節物体の姿勢を３次元空間における前記関節の位置で示す３次元動作データを出力する３次元動作データ取得ステップと、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記３次元動作データで示される関節を該仮想視点に２次元投影した２次元動作データを生成する仮想視点投影ステップと、前記３次元動作データと前記２次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定３次元動作データと、前記３次元動作データ取得ステップにおいて出力した３次元動作データのうち前記推定３次元動作データとの差から前記多関節物体の動きベクトルを生成する第１の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第２の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第３の処理とを、前記画像データごとに繰り返す３次元姿勢推定ステップと、を有することを特徴とする３次元姿勢推定方法である。
【００１１】
また、本発明は、複数の関節を有する多関節物体の姿勢を３次元空間における前記関節の位置で示す３次元動作データを出力する３次元動作データ取得ステップと、前記多関節物体が有する関節のうち予め定められた関節を中心とし所定の半径の視点球の表面上に所定の間隔で設けられる仮想視点ごとに、前記３次元動作データで示される関節を該仮想視点に２次元投影した２次元動作データを生成する仮想視点投影ステップと、前記３次元動作データと前記２次元動作データとの対応関係を示す動作モデルを生成する動作モデル学習ステップと、姿勢を推定する対象の多関節物体を撮像した画像データを順次出力する画像出力ステップと、前記画像データにおける前記多関節物体が有する関節の位置及びその変化を示す特徴量データを算出する特徴量算出ステップと、前記特徴量データと前記動作モデルとに基づいて前記多関節物体の初期の姿勢を推定し、推定した姿勢を示す推定３次元動作データと、前記３次元動作データ取得ステップにおいて出力した３次元動作データのうち前記推定３次元動作データとの差から前記多関節物体の動きベクトルを生成する第１の処理と、前記生成した動きベクトルに基づいて複数の視点候補を前記視点球上から選択する第２の処理と、前記選択した複数の視点候補ごとに前記動作モデルを事前知識として前記多関節物体の姿勢を推定し、推定した姿勢のうち最も確からしい姿勢を、前記多関節物体の新たな姿勢として選択する第３の処理とを、前記画像データごとに繰り返す３次元姿勢推定ステップと、をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１２】
この発明によれば、推定した３次元動作データと、動作モデルを生成した際に用いた３次元動作データとの差から動きベクトルを生成し、動きベクトルに基づいて視点球上から複数の視点候補を選択し、選択した視点候補ごとに、動作モデルを事前知識として画像データから得られる特徴量データから姿勢及び視点を推定する。これにより、姿勢を推定する対象の多関節物体と画像データを撮像した視点との位置関係の変化、すなわち、多関節物体を基準としたときの視点の変化を、多関節物体の姿勢の推定とともに算出することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態における３次元姿勢推定装置１００の構成を示す概略ブロック図である。
【図２】同実施形態における仮想視点の概略を示す図である。
【図３】同実施形態における動作モデル学習部１１０の学習処理を示すフローチャートである。
【図４】同実施形態における動きベクトルの定義を示す図である。
【図５】同実施形態における姿勢推定部１３０の姿勢推定処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明に係る実施形態における３次元姿勢推定装置、３次元姿勢推定方法、及びプログラムを説明する。
【００１５】
図１は、本実施形態における３次元姿勢推定装置１００の構成を示す概略ブロック図である。同図に示すように、３次元姿勢推定装置１００は、学習部１１０と、動作情報記憶部１２０と、姿勢推定部１３０と、推定姿勢情報記憶部１４０とを具備している。
学習部１１０は、３次元動作データ取得部１１１と、仮想視点投影部１１２と、動作モデル学習部１１３とを備えている。姿勢推定部１３０は、画像生成部１３１と、特徴量算出部１３２と、３次元姿勢推定部１３３とを備えている。
【００１６】
３次元動作データ取得部１１１は、人や物などの多関節物体（以下、人物という。）の３次元動作データを取得し、取得した３次元動作データを動作情報記憶部１２０に記憶させるとともに、取得した３次元動作データを仮想視点投影部１１２に出力する。３次元動作データ取得部１１１は、例えば、市販のモーションキャプチャシステムや、多視点カメラで構成することができる。３次元動作データは、人物の各関節の３次元回転角や、関節間の接続を階層構造として示す階層構造情報を有している。
仮想視点投影部１１２は、３次元動作データ取得部１１１において取得された３次元動作データが示す人物の動作を、仮想視点Ｖｉに２次元投影した２次元動作データを生成する。仮想視点投影部１１２は、予め定められた複数の仮想視点Ｖｉごとに、２次元動作データを生成する。また、仮想視点投影部１１２は、生成した２次元動作データを、当該２次元動作データを生成する際に用いた３次元動作データに対応付けて動作情報記憶部１２０に記憶させる。
【００１７】
図２は、本実施形態における仮想視点の概略を示す図である。同図に示すように、仮想視点は、人体の腰の関節を示す位置を中心とする視点球を設定し、設定した視点球上の予め定められた位置に設定される。このとき、腰の関節を示す位置を原点（ｘ，ｙ，ｚ）＝（０，０，０）とする３次元座標系が定められる。また、各関節を関節番号ｋで識別するとき、仮想視点Ｖｉにおける関節番号ｋの位置は、（ｙｋ，ｚｋ）で示される。関節数がＫ個の場合、仮想視点Ｖｉの２次元動作データをＹ２Ｄｉとすれば、Ｙ２Ｄｉは２×Ｋの行列として示すことができる。
【００１８】
図１に戻って、３次元姿勢推定装置１００の構成の説明を続ける。
動作モデル学習部１１３は、３次元動作データ取得部１１１が取得した３次元動作データと、仮想視点投影部１１２が生成した２次元動作データとに基づいて、動作モデルを生成する。動作モデルは、例えば、２次元動作データＹ２Ｄｉを次元圧縮し、低次元特徴Ｘ２Ｄｉで表現したもの等を利用することができる。この場合、動作モデル学習部１１３は、低次元特徴Ｘ２Ｄｉに基づく空間と、３次元動作データに基づく空間とを対応付ける学習モデル（写像関数）を生成する。
【００１９】
画像生成部１３１は、姿勢の推定対象となる人物を撮像した画像データを生成し、生成した画像データを時系列順に特徴量算出部１３２に出力する。画像生成部１３１は、例えば、１台あるは複数台のカメラを用いて構成することができる。なお、画像生成部１３１を備えることに替えて、外部から入力された画像データを特徴量算出部１３２に出力するようにしてもよい。
特徴量算出部１３２は、画像生成部１３１から入力された画像データから、画像データ上における各関節の位置を検出し、検出した関節の位置を特徴量データとして算出する。特徴量算出部１３２が各関節の位置を検出する際に、関節位置の初期位置は、公知の画像認識等の技術を用いて検出するようにしてもよいし、ユーザが画像データ上における各関節の位置を入力するようにしてもよい。また、各関節の位置の追跡は、公知の２次元追跡手法を用いるようにしてもよい。
【００２０】
３次元姿勢推定部１３３は、特徴量算出部１３２が出力する特徴量データと、動作情報記憶部１２０に記憶されている動作モデルとをフィッティングすることにより、３次元の姿勢を推定し、推定した姿勢を示す姿勢情報を推定姿勢情報記憶部１４０に記憶させる。
推定姿勢情報記憶部１４０は、３次元姿勢推定部１３３が推定した姿勢情報を記憶する。推定姿勢情報記憶部１４０に記憶されている姿勢情報を用いることで、仮想的な空間に、リアルタイムに人物の動作を反映させることや、人体の動作解析等に利用することができる。
【００２１】
以下、学習部１１０と、姿勢推定部１３０とにおいて行われる処理について説明する。
学習部１１０では、仮想視点Ｖｉごとの動作モデルを構築する。仮想視点投影部１１２における仮想視点Ｖｉそれぞれの２次元動作データは、例えば、図２に示すような、人体の腰の位置（ルート）を基準とし、予め定められた半径を有する視点球を考えることで生成できる。具体的には、視点球の表面を一定の間隔でサンプリングし、サンプリングした各点に仮想的なカメラを置き、各時刻における人体の各関節の位置を２次元投影する。ｉ番目のサンプリング点を仮想視点Ｖｉとし、動作モデル学習部１１３が動作モデルを生成する。
【００２２】
図３は、本実施形態における学習部１１０の学習処理を示すフローチャートである。
学習部１１０において、３次元動作データ取得部１１１は、３次元動作データを取得し（ステップＳ３０１）、人体の腰の位置を基準とした各関節の３次元相対座標値を算出する（ステップＳ３０２）。３次元相対座標の算出は、各関節の回転角と関節間の階層構造の情報に基づいて算出することができる。例えば、腰の３次元座標を（ｘ，ｙ，ｚ）＝（０，０，０）とし、関節番号ｋの３次元座標を（ｘｋ，ｙｋ，ｚｋ）で表す。
【００２３】
仮想視点投影部１１２は、学習する仮想視点Ｖｉを選択する（ステップＳ３０３）。このとき、仮想視点投影部１１２は、選択した仮想視点Ｖｉの位置を、図２に示すように人体のルート（腰）を中心とした仰角φと、方位角θとを用いて表す。
仮想視点投影部１１２は、３次元動作データ取得部１１１が算出した３次元相対座標値を仮想視点Ｖｉに投影したときの２次元座標値を算出する。例えば、図２における仮想視点Ｖｉでは、仮想視点Ｖ１のときと比較して人体をｚ軸まわりに−θ回転させた後に、ｙ軸まわりに−φ回転することと同義である。回転を行う方法として、例えば、同次ベクトルを用いる方法がある。関節番号ｋの３次元相対座標（ｘｋ，ｙｋ，ｚｋ）を同次座標形式では次式（１）のように表す。
【００２４】
【数１】
0005555207.tif 000002
【００２５】
式（１）で表される座標Ｐを、ｚ軸まわりに−θ回転させた後に、ｙ軸まわりに−φ回転させた座標Ｐ´を算出するには、回転行列Ｒθ、Ｒφを用いて、次式（２）で示す演算を行う。
【００２６】
【数２】
0005555207.tif 000003
【００２７】
ここで、回転行列Ｒθは次式（３）で示され、回転行列Ｒφは次式（４）で示される。
【００２８】
【数３】
0005555207.tif 000004
【００２９】
【数４】
0005555207.tif 000005
【００３０】
式（２）を用いて算出した座標値Ｐ´からｙ成分とｚ成分とを取り出し、仮想視点Ｖｉにおける関節番号ｋの２次元座標（ｙｉｋ，ｚｉｋ）とする。関節数がＫであれば、仮想視点Ｖｉにおける各関節の２次元座標値は、２×Ｋの行列で表される。
【００３１】
動作モデル学習部１１３は、仮想視点Ｖｉに対応する動作モデルを学習する（ステップＳ３０５）。動作モデルの学習の方法は、一例として、非特許文献２に記載されているように、高次元データを次元圧縮する手法により、ステップＳ３０４において算出した２次元動作データを低次元化し、低次元特徴Ｘ２Ｄｉを仮想視点Ｖｉの動作モデルとして用いる。動作モデル学習部１１３は、動作モデルを動作情報記憶部１２０に記憶させる。
【００３２】
動作モデル学習部１１３は、処理フレーム数ｉが学習視点数Ｉより少ないか否かを判定し（ステップＳ３０６）、処理フレーム数ｉが学習視点数Ｉより少ない場合（ステップＳ３０６：Ｙｅｓ）、処理をステップＳ３０３に戻しステップＳ３０３〜ステップＳ３０６の処理を繰り返し行い、処理フレーム数ｉが学習視点数Ｉより少なくない場合（ステップＳ３０６：Ｎｏ）、処理を終了する。なお、学習視点数Ｉは、予め定められた値である。
【００３３】
続いて、姿勢推定部１３０における処理について説明する。姿勢推定部１３０では、視点を状態とする姿勢推定を行う。
すべての視点に関する階層的な動作モデルを全探索することでも姿勢の推定は可能であるが、学習時の仮想視点の粒度を細かくするほど探索範囲（探索対象）が膨大となってしまう。そこで、姿勢推定部１３０では、推定する状態に視点を加えて状態推定を行う。本実施形態では、状態の推定は、一般的なＭＡＰ（Maximum A Posteriori；事後確率最大化）推定や、パーティクルフィルタ等を用いて行う。ここで、視点を推定するとは、図２に示すθ、φを決定することである。
さらに、時刻ｎの視点候補をθ（ｎ）＝θ（ｎ−１）＋ｄθ（ｎ），φ（ｎ）＝φ（ｎ−１）＋ｄφ（ｎ）を平均とした正規分布に基づきサンプリングすることで、視点の探索範囲を絞り込むことができる。
【００３４】
図４は、本実施形態における動きベクトルの定義を示す図である。同図には、人物の並進と、人物の回転とに対する動きベクトルの定義が示されている。人物が並進した場合、時刻（ｎ−１）における視点から人物へのベクトルと、時刻ｎにおける視点から人物へのベクトルとのなす角ｄθｔ（ｎ）により人物の動きを表す。また、人物が回転した場合、人物が回転した角ｄθｒ（ｎ）により人物の動きを表す。
視点変化ｄθ（ｎ）、ｄφ（ｎ）は、例えば、図４に示すように学習データである３次元動作データの動きベクトル（モーションキャプチャデータのルートの並進と回転との変化量）に基づいて定義する。これは、前の時刻のルートに対する並進と回転とは、動作の特徴を保持するとの考えに基づいている。
【００３５】
より具体的には、前の時刻の推定全身３次元動作データと最も近い学習動作データの並進ｔ（ｎ−１）と回転ｒ（ｎ−１）とからそれぞれ視点の変化量ｄθｔ（ｎ）、ｄθｒ（ｎ）を算出する。全体としての視点変化は、ｄθ（ｎ）＝ｄθｔ（ｎ）−ｄθｒ（ｎ）で定義する。φに関しても同様に算出する。
【００３６】
図５は、本実施形態における姿勢推定部１３０の姿勢推定処理を示すフローチャートである。
姿勢推定部１３０において、３次元姿勢推定部１３３は、画像生成部１３１が出力する画像データに関して、初期視点θ０、φ０を大まかに設定する（ステップＳ４０１）。ここで、視点は、学習した際の視点の位置を表す定義に従い、表される。例えば、図２に示したように、人体のルート（腰）の位置を中心とした仰角と方位角とを用いて、視点の位置を表す。なお、初期視点θ０、φ０は、ユーザによって外部より入力された値を用いてもよいし、視点球状の予め定められた視点から選択するようにしてもよい。
【００３７】
３次元姿勢推定部１３３は、動作情報記憶部１２０に記憶されている動作モデルであって学習部１１０により仮想視点Ｖｉごとに学習された動作モデルと、特徴量算出部１３２が算出した特徴量データとを比較することにより、初期姿勢を推定する（ステップＳ４０２）。特徴量データは、例えば、一般的な２次元トラッキング手法により、各関節の位置座標及びその変化を時々刻々求めたものを用いる。３次元姿勢推定部１３３は、初期姿勢を示す情報を推定情報として推定姿勢情報記憶部１４０に記憶させる。
【００３８】
３次元姿勢推定部１３３は、推定姿勢情報記憶部１４０に記憶されている推定情報と、動作情報記憶部１２０に記憶されている学習データとから、図４に示したような方法で動きベクトルを算出する（ステップＳ４０３）。動きベクトルは、推定された３次元動作データＹ＊と最も近い学習３次元動作データＹとから、移動量と回転量とを求めることで算出する。
ここで、推定された３次元動作データＹ＊の初期値は、ステップＳ４０２において推定された初期姿勢に対応し動作モデルから得られる３次元動作データであり、ステップＳ４０５の処理が行われた後には、推定された姿勢に対応し動作モデルから得られる３次元動作データである。また、学習３次元動作データＹは、動作情報記憶部１２０に記憶されている３次元動作データであって、動作モデルを生成した際に用いられた３次元動作データである。また、推定された３次元動作データＹ＊と最も近い学習３次元動作データＹとは、例えば、３次元動作データが有している各関節の３次元回転角の差分の総和が最小の３次元動作データである。
【００３９】
３次元姿勢推定部１３３は、ステップＳ４０３において算出した動きベクトルから、時刻ｎにおける視点候補をθ（ｎ）＝θ（ｎ−１）＋ｄθ（ｎ）、φ（ｎ）＝φ（ｎ−１）＋ｄφ（ｎ）を平均とした正規分布に基づきサンプリングする（ステップＳ４０４）。例えば、視点のサンプリング数Ｎviewを１００とすれば、視点候補は１００個生成され、その平均値は、θ（ｎ）＝θ（ｎ−１）＋ｄθ（ｎ）、φ（ｎ）＝φ（ｎ−１）＋ｄφ（ｎ）となる。
【００４０】
３次元姿勢推定部１３３は、動作情報記憶部１２０に記憶されている２次元学習も出るであって学習部１１０によって仮想視点Ｖｉごとに学習された動作モデルと、特徴量算出部１３２が算出した特徴量データとを比較することにより、姿勢を推定する（ステップＳ４０５）。
３次元姿勢推定部１３３が行う姿勢推定は、例えば、時系列順に連続する画像データである２次元映像における人物動作の関節位置を、観測して得られた特徴量Ｉ（１：ｎ）≡（Ｉ（１），…，Ｉ（ｎ））として、下記のような手法で実現できる。姿勢推定は、学習した動作モデルを事前知識として、観測から状態Φ（ｎ）＝［ｙ（ｎ），ｘ（ｎ），Ｓ（ｎ）］を推定することにより行う。ここは、状態Φ（ｎ）は、ｙ（ｎ）とｘ（ｎ）とＳ（ｎ）との組合せで表される。ｙ（ｎ）は２次元動作データであり、ｘ（ｎ）はｙ（ｎ）に対応する低次元特徴であり、Ｓ（ｎ）は２次元写像に影響するスケールパラメータであり、例えば、実際の人物のサイズと画像データにおける当該人物のサイズとの比などである。
【００４１】
状態推定は、次式（５）における事後確率を最大化する状態を求めることと等しく、ＭＡＰ推定や、パーティクルフィルタ等のサンプリング手法によって実現される。
すなわち、事後確率を最大化する状態を求め、当該状態に対応する仮想視点Ｖｉの動作モデルが２次元映像から観測される人物の姿勢となる。
【００４２】
【数５】
0005555207.tif 000006
【００４３】
ここで、式（５）における右辺の第１項は尤度（観測モデル）を表し、第２項は予測分布（状態遷移モデル）を表している。ここでは、パーティクルフィルタを用いて式（５）を解く。状態Φ（ｎ）を推定する問題を事後確率の期待値を求める問題とする。このとき、期待値は次式（６）で表される。
【００４４】
【数６】
0005555207.tif 000007
【００４５】
観測モデルと状態遷移モデルとをランダムサンプリングによりモンテカルロ近似し、期待値を次式（７）のサンプルの重みつき平均として表す。
【００４６】
【数７】
0005555207.tif 000008
【００４７】
このとき、状態遷移モデルΦ（ｉ）（ｎ）は次式（８）で表され、観測モデルω（ｉ）（ｎ）は次式（９）で表される。
【００４８】
【数８】
0005555207.tif 000009
【００４９】
【数９】
0005555207.tif 000010
【００５０】
（状態遷移モデル）
状態サンプルΦ（ｉ）（ｎ）＝［ｘ（ｉ）（ｎ），ｙ（ｉ）（ｎ），Ｓ（ｉ）（ｎ）］を学習した動作モデルに従い生成する。このとき、３次元姿勢推定部１３３は、ステップＳ４０４において算出した視点候補Ｖｉごとに、その視点の動作モデルに従い状態サンプルを生成する。状態遷移モデルは、動作モデルの学習手法に従い定義される。例えば、非特許文献３の手法により学習された動作モデルであれば、未知の潜在変数ｘ（ｎ）と、部分動作データｙ（ｎ）はそれぞれ次式（１０）、（１１）で与えられる。
【００５１】
【数１０】
0005555207.tif 000011
【００５２】
【数１１】
0005555207.tif 000012
【００５３】
このとき、μＸ（ｘ＊）とμＹ（ｙ＊）とは次式（１２）、（１３）で表される。
【００５４】
【数１２】
0005555207.tif 000013
【００５５】
【数１３】
0005555207.tif 000014
【００５６】
ここで、ｋＸ（ｘ＊）、ｋＹ（ｘ＊）はｉ番目の要素にｋＸ（ｘ＊，ｘｉ）、ｋＹ（ｘ＊，ｘｉ）をもつベクトルである。
【００５７】
（観測モデル）
尤度は次式（１４）で規定する。
【００５８】
【数１４】
0005555207.tif 000015
【００５９】
ここで、＾Ｉｊ（ｎ）は、公知の２次元トラッキング手法を用いて、観測映像から検出されたｊ番目の関節の位置であり、ｙｊ（ｎ）は状態Φ（ｎ）における２次元観測された関節のうちｊ番目の関節を示す。３次元姿勢推定部１３３は、視点候補ごとに、上記の状態遷移モデルと観測モデルとを用いて式（６）から期待値を算出する。視点候補ごと期待値を求め、期待値が最大となる状態に基づいて、人物の姿勢を推定する。換言すると、３次元姿勢推定部１３３は、視点候補ごとに、当該視点候補に対応する状態Φ（ｎ）に含まれる姿勢のうち、最も確からしい（期待値が最大の状態Φ（ｎ）に含まれる）姿勢を選択する。３次元姿勢推定部１３３は、推定した人物の姿勢を示す情報を推定情報として推定姿勢情報記憶部１４０に記憶させる。
【００６０】
３次元姿勢推定部１３３は、処理フレーム数ｎが画像生成部１３１から出力されたフレーム数Ｎより少ないか否かを判定し（ステップＳ４０６）、処理フレーム数ｎがＮより少ない場合（ステップＳ４０６：Ｙｅｓ）、処理をステップＳ４０３に戻して、ステップＳ４０３〜ステップＳ４０６を繰り返し行い、処理フレーム数ｎがＮより少なくない場合（ステップＳ４０６：Ｎｏ）、処理を終了する。
【００６１】
上述の処理により、姿勢推定部１３０は、画像生成部１３１から出力される時系列順に連続する画像データ（フレーム）ごとに、式（７）で表される期待値が最大となる状態Φ（ｎ）を選択する。姿勢推定部１３０は、フレームごとに選択した状態Φ（ｎ）に対応するカメラの視点及び人物の姿勢を推定姿勢情報記憶部１４０に記憶させる。このとき、姿勢推定部１３０は、カメラの視点及び人物の姿勢を対応付けて時系列順に記憶させる。
【００６２】
上述のように、人物の姿勢の推定において、人物とカメラとの位置関係、すなわちカメラの位置に対する人物の動きの方向が未知である場合においても、人物の姿勢と、カメラの位置（視点）との推定を行うことができる。このとき、人物の姿勢と視点との組合せを状態として扱い、ＭＡＰ推定や、パーティクルフィルタ等を用いて状態の推定を行うことにより、計算コストを削減して、２次元映像から人物の姿勢推定を行うことができる。また、視点候補を動きベクトルに基づいて絞り込むことにより、計算コストを削減することができる。
このように、３次元姿勢推定装置１００を用いることにより、カメラのキャリブレーションをせず、かつ、人物の動きの方向に関する制限を設けることなく、姿勢推定を行うことができる。
【００６３】
なお、上述の実施形態において、３次元姿勢推定装置１００は、人体の姿勢を推定する場合について説明したが、これに限ることなく、複数の関節を有する物体や、動物等の姿勢を推定するようにしてもよい。
【００６４】
なお、本発明における３次元姿勢推定装置１００の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより学習部１１０と姿勢推定部１３０とが行う物体の姿勢及び視点の推定を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境（あるいは表示環境）を備えたＷＷＷシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００６５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００６６】
１００…３次元姿勢推定装置
１１０…学習部
１１１…３次元動作データ取得部
１１２…仮想視点投影部
１１３…動作モデル学習部
１２０…動作情報記憶部
１３０…姿勢推定部
１３１…画像生成部
１３２…特徴量算出部
１３３…３次元姿勢推定部
１４０…推定姿勢情報記憶部
【図１】
0005555207.tif 000016
【図２】
0005555207.tif 000017
【図３】
0005555207.tif 000018
【図４】
0005555207.tif 000019
【図５】
0005555207.tif 000020