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