(57)【要約】【課題】視点や撮影者の体格の違いによる動作の見え方の違いに対して頑健に、撮影者の骨格姿勢を推定することができる。【解決手段】カメラ位置姿勢推定部３０で、三次元画像データに基づいて、カメラ位置姿勢を推定し、関節位置検出部３２で、手腕の関節位置を推定する。骨格姿勢パラメータ推定部３４で、各時刻のカメラの位置姿勢パラメータと、各時刻の手腕関節位置と、骨格モデル記憶部２６に記憶されている骨格モデルと、各時刻の三次元画像データとに基づいて、各時刻の撮影者の骨格姿勢を表す骨格姿勢パラメータを推定する。【選択図】図１
2016162425.tif 000002
【特許請求の範囲】
【請求項１】
撮影者側からカメラにより撮影した各時刻の三次元画像データを受け付ける入力部と、
各時刻の前記三次元画像データに基づいて、各時刻の前記カメラの位置姿勢を推定するカメラ位置姿勢推定部と、
各時刻の前記三次元画像データに基づいて、各時刻の前記撮影者の予め定められた部位の関節位置を推定する関節位置検出部と、
前記カメラ位置姿勢推定部によって推定された各時刻の前記カメラの位置姿勢と、前記関節位置検出部によって推定された各時刻の前記部位の関節位置と、予め求められた、前記撮影者の複数の関節からなる骨格モデルと、各時刻の前記三次元画像データとに基づいて、各時刻の前記撮影者の骨格姿勢を表す骨格姿勢パラメータを推定する骨格姿勢パラメータ推定部と、を含み、
前記骨格姿勢パラメータ推定部は、一時刻前の複数の前記骨格姿勢パラメータの候補に基づいて、推定対象時刻の前記骨格姿勢パラメータの候補を複数生成し、
生成された複数の骨格姿勢パラメータの候補の各々について、前記カメラ位置姿勢推定部によって推定された前記推定対象時刻の前記カメラの位置姿勢と、前記骨格モデルとに基づいて、前記骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算し、
生成された複数の骨格姿勢パラメータの候補から、前記計算された尤度に応じて前記骨格姿勢パラメータの候補を抽出することにより、前記推定対象時刻の前記骨格姿勢パラメータを推定する骨格姿勢推定装置。
【請求項２】
前記骨格姿勢パラメータ推定部は、一時刻前の複数の前記骨格姿勢パラメータの候補に基づいて、予め定められた前記部位の関節位置の可動域に関する制約を満たす、推定対象時刻の前記骨格姿勢パラメータの候補を複数生成する請求項１に記載の骨格姿勢推定装置。
【請求項３】
前記骨格姿勢パラメータ推定部は、生成された複数の骨格姿勢パラメータの候補の各々について、前記骨格姿勢パラメータの候補と前記骨格モデルとに基づいて、前記部位の関節位置の三次元位置を計算し、前記計算された前記部位の関節位置の三次元位置から得られる二次元座標と、前記関節位置検出部によって推定された前記推定対象時刻の前記部位の関節位置の二次元座標との一致度を計算し、
前記計算された前記部位の関節位置の三次元位置から得られるデプス値と、前記計算された三次元位置から得られる二次元座標に対応する、前記三次元画像データのデプス値との一致度を計算し、前記計算された二次元座標の一致度及び前記デプス値の一致度に基づいて、前記骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算する請求項１又は２に記載の骨格姿勢推定装置。
【請求項４】
入力部が、撮影者側からカメラにより撮影した各時刻の三次元画像データを受け付けるステップと、
カメラ位置姿勢推定部が、各時刻の前記三次元画像データに基づいて、各時刻の前記カメラの位置姿勢を推定するステップと、
関節位置検出部が、各時刻の前記三次元画像データに基づいて、各時刻の前記撮影者の予め定められた部位の関節位置を推定するステップと、
骨格姿勢パラメータ推定部が、前記カメラ位置姿勢推定部によって推定された各時刻の前記カメラの位置姿勢と、前記関節位置検出部によって推定された各時刻の前記部位の関節位置と、予め求められた、前記撮影者の複数の関節からなる骨格モデルと、各時刻の前記三次元画像データとに基づいて、各時刻の前記撮影者の骨格姿勢を表す骨格姿勢パラメータを推定するステップと、を含み、
前記骨格姿勢パラメータ推定部が推定するステップは、一時刻前の複数の前記骨格姿勢パラメータの候補に基づいて、推定対象時刻の前記骨格姿勢パラメータの候補を複数生成し、
生成された複数の骨格姿勢パラメータの候補の各々について、前記カメラ位置姿勢推定部によって推定された前記推定対象時刻の前記カメラの位置姿勢と、前記骨格モデルとに基づいて、前記骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算し、
生成された複数の骨格姿勢パラメータの候補から、前記計算された尤度に応じて前記推定対象時刻の骨格姿勢パラメータの候補を抽出することにより、前記推定対象時刻の前記骨格姿勢パラメータを推定する骨格姿勢推定方法。
【請求項５】
コンピュータを、請求項１〜請求項３の何れか１項に記載の骨格姿勢推定装置を構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、骨格姿勢推定装置、方法、及びプログラムに係り、特に、カメラの撮影者の骨格姿勢を推定するための骨格姿勢推定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ヘッドマウントディスプレイによるカメラを用いて、生活行動支援や産業分野における現場作業支援を行うサービスが注目を集めている。現状これらのサービスの多くは、ユーザの指示をもとに必要な情報提示を行っており、適切な情報量やタイミングを制御しきれていない。もし、ユーザの状況や行動をデバイスが自動的に認識することができれば、必要な情報のみを必要なタイミングで提示できるようになるだけでなく、危険行動の防止といった無意識行動への支援も可能となる。これらのサービスを可能とする要素技術として、一人称映像からの行動認識技術は今後、益々求められると考えられる。
【０００３】
行動認識一般に必要な一要素として、その人自身がどのような動きをしているかという要素を挙げることができる。これに関しては、人の関節位置の時間変化の情報がコンパクトで十分な特徴であるという報告がなされており、また、得られる関節数が増えるほど、他の関節との位置関係により行動を認識しやすいことがわかっている。実際にコンピュータビジョン分野では、関節位置情報を含む特徴である骨格姿勢を推定することで行動認識を行う研究が多く報告されている。
【０００４】
第三者視点カメラからの映像から、被写体の骨格姿勢を推定する手法として、例えば非特許文献１のような研究成果が報告されている。
【０００５】
また、一人称映像から関節位置を推定する手法として、例えば非特許文献２のような研究成果が報告されている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】J. Shotton, A. Fitzgibbon, M. Cook, T. Sharp, M. Finocchio, R. Moore, A. Kipman, and A. Blake, "Real-Time Human Pose Recognition in Parts from a Single Depth Image", in CVPR, IEEE, 2011.
【非特許文献２】M.Moghimi1, P.Azagra, L.Montesano2, A. C. Murillo and S.Belongie, "Experiments on an RGB-DWearable Vision System for Egocentric Activity Recognition", in CVPRW, 2014.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、非特許文献１では、まず初期処理として、得られる三次元入力画像から全身の構造をとらえて被写体の体の部位検出を行い、それらの部位の位置情報を用いて、尤もらしい全身骨格姿勢を推定するという手法がとられている。そのため、全身が隠れずに写っている場合には姿勢推定が可能であるが、本発明で想定しているような、カメラが頭部に装着されており、動作者（撮影者）の体が部分的にしか見えないような状況では、同様の方法では骨格姿勢を推定することができない。
【０００８】
また、非特許文献２では、頭部に装着する三次元映像入力装置から得られた映像を用いて、手の関節位置を推定する手法をとっているが、映像中に見えていない関節は推定できない。手の関節一点のみでは他の関節との位置関係がわからず、人の動きを記述するためには不十分である。
【０００９】
本発明は、上記問題点を解決するために成されたものであり、撮影者の体の一部しか映り込んでいない映像からであっても、撮影者の骨格姿勢を精度よく推定することができる骨格姿勢推定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、第１の発明に係る骨格姿勢推定装置は、撮影者側からカメラにより撮影した各時刻の三次元画像データを受け付ける入力部と、各時刻の前記三次元画像データに基づいて、各時刻の前記カメラの位置姿勢を推定するカメラ位置姿勢推定部と、各時刻の前記三次元画像データに基づいて、各時刻の前記撮影者の予め定められた部位の関節位置を推定する関節位置検出部と、前記カメラ位置姿勢推定部によって推定された各時刻の前記カメラの位置姿勢と、前記関節位置検出部によって推定された各時刻の前記部位の関節位置と、予め求められた、前記撮影者の複数の関節からなる骨格モデルと、各時刻の前記三次元画像データとに基づいて、各時刻の前記撮影者の骨格姿勢を表す骨格姿勢パラメータを推定する骨格姿勢パラメータ推定部と、を含んで構成されており、前記骨格姿勢パラメータ推定部は、一時刻前の複数の前記骨格姿勢パラメータの候補に基づいて、推定対象時刻の前記骨格姿勢パラメータの候補を複数生成し、生成された複数の骨格姿勢パラメータの候補の各々について、前記カメラ位置姿勢推定部によって推定された前記推定対象時刻の前記カメラの位置姿勢と、前記骨格モデルとに基づいて、前記骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算し、生成された複数の骨格姿勢パラメータの候補から、前記計算された尤度に応じて前記骨格姿勢パラメータの候補を抽出することにより、前記推定対象時刻の前記骨格姿勢パラメータを推定することを特徴とする。
【００１１】
また、第１の発明に係る骨格姿勢推定装置において、前記骨格姿勢パラメータ推定部は、一時刻前の複数の前記骨格姿勢パラメータの候補に基づいて、予め定められた前記部位の関節位置の可動域に関する制約を満たす、推定対象時刻の前記骨格姿勢パラメータの候補を複数生成してもよい。
【００１２】
また、第１の発明に係る骨格姿勢推定装置において、前記骨格姿勢パラメータ推定部は、生成された複数の骨格姿勢パラメータの候補の各々について、前記骨格姿勢パラメータの候補と前記骨格モデルとに基づいて、前記部位の関節位置の三次元位置を計算し、前記計算された前記部位の関節位置の三次元位置から得られる二次元座標と、前記関節位置検出部によって推定された前記推定対象時刻の前記部位の関節位置の二次元座標との一致度を計算し、前記計算された前記部位の関節位置の三次元位置から得られるデプス値と、前記計算された三次元位置から得られる二次元座標に対応する、前記三次元画像データのデプス値との一致度を計算し、前記計算された二次元座標の一致度及び前記デプス値の一致度に基づいて、前記骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算するようにしてもよい。
【００１３】
第２の発明に係る骨格位置推定方法は、入力部が、撮影者側からカメラにより撮影した各時刻の三次元画像データを受け付けるステップと、カメラ位置姿勢推定部が、各時刻の前記三次元画像データに基づいて、各時刻の前記カメラの位置姿勢を推定するステップと、関節位置検出部が、各時刻の前記三次元画像データに基づいて、各時刻の前記撮影者の予め定められた部位の関節位置を推定するステップと、骨格姿勢パラメータ推定部が、前記カメラ位置姿勢推定部によって推定された各時刻の前記カメラの位置姿勢と、前記関節位置検出部によって推定された各時刻の前記部位の関節位置と、予め求められた、前記撮影者の複数の関節からなる骨格モデルと、各時刻の前記三次元画像データとに基づいて、各時刻の前記撮影者の骨格姿勢を表す骨格姿勢パラメータを推定するステップと、を含んで実行し、前記骨格姿勢パラメータ推定部が推定するステップは、一時刻前の複数の前記骨格姿勢パラメータの候補に基づいて、推定対象時刻の前記骨格姿勢パラメータの候補を複数生成し、生成された複数の骨格姿勢パラメータの候補の各々について、前記カメラ位置姿勢推定部によって推定された前記推定対象時刻の前記カメラの位置姿勢と、前記骨格モデルとに基づいて、前記骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算し、生成された複数の骨格姿勢パラメータの候補から、前記計算された尤度に応じて前記推定対象時刻の骨格姿勢パラメータの候補を抽出することにより、前記推定対象時刻の前記骨格姿勢パラメータを推定することを特徴とする。
【００１４】
第３の発明に係るプログラムは、コンピュータを、上記に記載の骨格姿勢推定装置を構成する各部として機能させるためのプログラムである
【発明の効果】
【００１５】
本発明の骨格姿勢推定装置、方法、及びプログラムによれば、各時刻のカメラの位置姿勢と、各時刻の関節位置と、撮影者の骨格モデルと、各時刻の三次元画像データとに基づいて、各時刻の撮影者の骨格姿勢を表す骨格姿勢パラメータを推定し、一時刻前の骨格姿勢パラメータに基づいて、推定対象時刻の骨格姿勢パラメータの候補を複数生成し、生成された複数の骨格姿勢パラメータの候補の各々について、推定対象時刻のカメラの位置姿勢と、骨格モデルとに基づいて、骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算し、計算された尤度に応じて推定対象時刻の骨格姿勢パラメータを抽出し、骨格姿勢パラメータを推定することにより、撮影者の体の一部しか映り込んでいない映像からであっても、撮影者の骨格姿勢を精度よく推定することができる、という効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】撮影者の骨格モデルの一例を示す概念図である。
【図２】本発明の実施の形態に係る骨格姿勢推定装置の構成を示すブロック図である。
【図３】本発明の実施の形態に係る骨格姿勢推定装置における骨格姿勢推定処理ルーチンを示すフローチャートである。
【図４】本発明の実施の形態に係る骨格姿勢推定装置における骨格姿勢パラメータ候補生成処理ルーチンを示すフローチャートである。
【図５】本発明の実施の形態に係る骨格姿勢推定装置における二次元座標計算処理ルーチンを示すフローチャートである。
【図６】本発明の実施の形態に係る骨格姿勢推定装置におけるデプス値計算処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１８】
＜本発明の実施の形態に係る概要＞
【００１９】
まず、本発明の実施の形態における概要を説明する。
【００２０】
本発明の実施の形態に係る骨格姿勢推定装置は、撮影者の一人称映像から骨格姿勢を推定する装置である。
【００２１】
本発明の実施の形態に係る骨格姿勢推定装置は、撮影者の体の一部分のみしか映っていない映像から、映像中に映らない関節位置も含めた骨格姿勢を推定する手段として、カメラが頭部に対し固定位置につけられていること、また固定位置につけられていることにより、カメラを撮像することにより得られる一人称の映像中の手腕関節位置が撮影者の体型によって強く制約を受けることを利用し、撮影者の骨格姿勢推定を行うことを特徴とする。具体的には、カメラ位置から固定された位置に頭部関節を持ち、関節の数及び関節間の長さを既知として与えた骨格モデルを導入することを特徴とする。
【００２２】
上記のような特徴を利用することにより、画像中の手腕関節位置をカメラ位置と体型の制約を保ちながら予測することができ、この予測した手腕関節位置と観測画像の比較することで、画像中に見えていない骨格姿勢を推定することが可能となる。
【００２３】
さらに、骨格姿勢の推定精度を高めるため以下二つの特徴を持つ。第１の特徴は、予測した骨格姿勢（骨格姿勢パラメータ）がどの程度撮影者が実際に取っている骨格姿勢と一致しているかを、手腕関節位置とカメラの位置姿勢からの距離を示すデプス値との二つの指標を用いて測ることである。これにより、手腕関節位置の検出誤差を抑制し、より精度よく推定が可能となる。第２の特徴は、骨格姿勢パラメータを関節の可動域の制約を用いることで制限し、パラメータ探索範囲を狭めることである。パラメータの探索範囲を狭めることで人体の取りうる姿勢のみを考慮し、効率的かつ精度よく推定することが可能となる。
【００２４】
以上の第１及び第２の特徴から、行動認識に必要な人の動作を記述するための骨格姿勢情報を、体の一部しか映らない一人称三次元映像から精度よく推定することが可能となる。
【００２５】
また、本発明の実施の形態で述べる骨格モデルは、関節の数、関節間の長さ、ｘ軸、ｙ軸、及びｚ軸の回転角度パラメータにより構成され、図１に示すような木構造により表現される。関節間の長さと各関節のｘ軸、ｙ軸、及びｚ軸の回転角度パラメータが決定し、決定された回転角度パラメータに対して非特許文献３に記載されている方法を適用することにより、関節の三次元位置が決定する。
【００２６】
[非特許文献３]：K.Erleben, J.Sporring, K.Henriksen and H.Dohlmann “Phisics-Based Animation” Cengage Learning, Chap3, 2005.
【００２７】
以下、各関節のｘ軸、ｙ軸、及びｚ軸の回転角度のパラメータと骨格モデルの三次元位置とを合わせたパラメータを骨格姿勢パラメータと呼ぶ。
【００２８】
＜本発明の実施の形態に係る骨格姿勢推定装置の構成＞
【００２９】
次に、本発明の実施の形態に係る骨格姿勢推定装置の構成について説明する。図２に示すように、本発明の実施の形態に係る骨格姿勢推定装置１００は、ＣＰＵと、ＲＡＭと、後述する骨格姿勢推定処理ルーチンを実行するためのプログラムや各種データを記憶したＲＯＭと、を含むコンピュータで構成することが出来る。この骨格姿勢推定装置１００は、機能的には図２に示すように入力部１０と、演算部２０と、出力部５０とを備えている。
【００３０】
入力部１０は、撮影者側からカメラにより撮影された各時刻の三次元画像データを受け付ける。例えば、ステレオカメラにより撮影された各時刻の三次元画像データを受け付ける。
【００３１】
演算部２０は、カメラ位置姿勢パラメータ記憶部２２と、関節位置記憶部２４と、骨格モデル記憶部２６と、カメラ位置姿勢推定部３０と、関節位置検出部３２と、骨格姿勢パラメータ推定部３４と、パラメータ分布記憶部４０とを含んで構成されている。
【００３２】
カメラ位置姿勢推定部３０は、入力部１０により受け付けた各時刻の三次元画像データに基づいて、例えば、非特許文献４のようなＩＣＰアルゴリズムを用いて、各時刻でのカメラ位置姿勢パラメータを推定し、カメラ位置姿勢パラメータ記憶部２２に記憶する。
【００３３】
[非特許文献４]：R.A. Newcombe, S.Izadi, O.Hilliges, D.Molyneux, D.Kim, A.J. Davison, P.Kohli, J.Shotton, S.Hodges and A. Fitxgibbon “Kinect Fusion: Real-time Dense Surface Mapping and Tracking”, Proc. IEEE Int. Symp. Mixed and Augmented Reality (ISMAR), 2011.
【００３４】
カメラ位置姿勢推定部３０では、初期時刻ｔ＝０の場合は、カメラ位置を原点とし、ｘ、ｙ、及びｚ軸についての回転角をそれぞれ０とする。以後のカメラの位置姿勢はｔ＝０のカメラ位置からの相対的な位置姿勢として推定される。これらのパラメータは、本実施形態では、上記の非特許文献４のようなＩＣＰアルゴリズムを用いて求める。
【００３５】
関節位置検出部３２は、入力部１０により受け付けた各時刻の三次元画像データに基づいて、例えば、非特許文献５に記載の検出器を用いて、各時刻での画像上の手腕関節位置を推定し、関節位置記憶部２４に記憶する。ただし、画像上の手腕関節位置が求まる方法であれば、非特許文献５に記載のもの以外のアルゴリズムを用いてもよい。
【００３６】
[非特許文献５]：A.Toshev and C.Szegedy. “Deeppose: Human pose estimation via deep neural networks”, in CVPR, 2013.
【００３７】
骨格モデル記憶部２６には、予め撮影者について関節の数、関節間の長さ、並びにｘ軸、ｙ軸、及びｚ軸の回転角度パラメータが求められた骨格モデルが記憶されている。
【００３８】
骨格姿勢パラメータ推定部３４は、パーティクル生成部１３２と、パーティクル尤度計算部１３４と、パラメータ分布更新部１３６とを含んで構成されている。
【００３９】
骨格姿勢パラメータ推定部３４は、以下に説明するように、パーティクル生成部１３２、パーティクル尤度計算部１３４、及びパラメータ分布更新部１３６の各部の処理によって、カメラ位置姿勢パラメータ記憶部２２に記憶されている各時刻のカメラの位置姿勢パラメータと、関節位置記憶部２４に記憶されている各時刻の手腕関節位置と、骨格モデル記憶部２６に記憶されている骨格モデルと、各時刻の三次元画像データとに基づいて、各時刻の撮影者の骨格姿勢を表す骨格姿勢パラメータを推定する。
【００４０】
また、骨格姿勢パラメータ推定部３４において、骨格姿勢パラメータは、
【００４１】
【数１】
2016162425.tif 000003
【００４２】
と表す。ここで、ｊは各関節のインデックスである。θｔｊは、ｘ軸、ｙ軸、及びｚ軸についての回転角度パラメータを表す。ただし、全関節の親となる頭部関節（ルート関節）のみ三次元座標位置とｘ軸、ｙ軸、及びｚ軸についての回転角度パラメータを持つものとする。なお、本実施形態では、頭部位置をルートとした木構造を用いたが、カメラ位置から相対位置が固定されている関節から、他の関節位置を計算する方法があれば、他の位置をルートにすることも可能である。
【００４３】
本実施形態では、骨格姿勢パラメータ推定部３４は、パーティクルフィルタを用いて骨格モデルへの当てはめを行う。ただし、パーティクルフィルタに限らず、他の時系列フィルタを用いることでも実装が可能である。パーティクルフィルタでは、一時刻前の骨格姿勢パラメータに基づいて、推定したい骨格姿勢パラメータの候補を複数生成し、骨格姿勢パラメータの分布を近似する。処理は大きく３つに分かれており、パーティクル生成部１３２が骨格姿勢パラメータの候補を生成して骨格姿勢パラメータの分布を予測する処理、パーティクル尤度計算部１３４が骨格姿勢パラメータの候補の尤度を計算する処理、及びパラメータ分布更新部１３６が尤度をもとにパラメータ分布を更新する処理である。
【００４４】
パーティクル生成部１３２は、以下に説明する第１の処理及び第２の処理を行う。パーティクル生成部１３２は、第１の処理として、初期骨格姿勢パラメータを設定する。第１の処理においては、まず、関節位置記憶部２４に記憶されている推定対象時刻ｔにおける手腕関節位置を用いて、撮影者が決められた初期ポーズをとっているかを判定する。ここでは、予め決められた初期ポーズをとっている場合の理想的な手腕関節位置と、関節位置記憶部２４に記憶されている手腕関節位置との距離が、予め定められた閾値以下の距離にある場合に、初期ポーズをとっているものと判定し、頭部位置以外の骨格姿勢パラメータについて、初期ポーズを表す初期骨格姿勢パラメータ
【００４５】
【数２】
2016162425.tif 000004
【００４６】
で置き換えて、パラメータ分布記憶部４０に記憶する。
【００４７】
次に、パーティクル生成部１３２は、第２の処理として、一時刻前の複数の骨格姿勢パラメータの候補、又は初期骨格姿勢パラメータに基づいて、手腕関節位置の可動域に関する制約を満たす、推定対象時刻ｔの骨格姿勢パラメータの候補を複数生成する。例えば、パラメータ分布記憶部４０に、一時刻前の時刻ｔ−１における複数の骨格姿勢パラメータの候補が記憶されている場合、時刻ｔ−１における複数の骨格姿勢パラメータの候補から、Ｎ個の骨格姿勢パラメータの候補を生成し、これを推定対象時刻ｔにおける骨格姿勢パラメータの分布とし、パラメータ分布記憶部４０に保存する。具体的には、各骨格姿勢パラメータの候補のｘ軸、ｙ軸、及びｚ軸の回転角度パラメータに対し、平均が０であり、分散σ２がとなる正規分布に従うシステムノイズを加えることにより、骨格姿勢パラメータの分布を予測する。このとき、骨格姿勢パラメータ
【００４８】
【数３】
2016162425.tif 000005
【００４９】
のうち、ｘ軸、ｙ軸、及びｚ軸についての回転角度パラメータに関しては、関節の可動域の制約を用いて制限する。
【００５０】
パーティクル尤度計算部１３４は、パーティクル生成部１３２によって生成されたＮ個の骨格姿勢パラメータの候補の各々について、当該骨格姿勢パラメータの候補と骨格モデル記憶部２６に記憶されている骨格モデルとに基づいて、手腕関節位置の三次元位置を計算し、計算された手腕関節位置の三次元位置から得られる二次元座標と、関節位置検出部３２によって推定された推定対象時刻ｔの手腕関節位置の二次元座標との一致度を計算する。そして、計算された手腕関節位置の三次元位置から得られるデプス値と、計算された三次元位置から得られる二次元座標に対応する、三次元画像データ中のデプス値との一致度を計算し、計算された二次元座標の一致度及びデプス値の一致度に基づいて、骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算する。
【００５１】
パラメータ分布更新部１３６は、生成されたＮ個の骨格姿勢パラメータの候補から、計算された尤度に応じて骨格姿勢パラメータの候補を抽出することにより、推定対象時刻ｔの骨格姿勢パラメータを推定する。
【００５２】
パラメータ分布更新部１３６は、具体的には、パーティクル尤度計算部１３４により計算された尤度に基づいて、骨格姿勢パラメータの分布を更新する。更新は、尤度に比例する割合でＮ個の骨格姿勢パラメータの候補を復元抽出し、パラメータ分布記憶部４０に保存する。そして、復元抽出されたＮ個の骨格姿勢パラメータの候補と、当該Ｎ個の骨格姿勢パラメータの候補の各々に対して計算された尤度との積和を計算することで期待値を計算し、これを推定対象時刻ｔにおける骨格姿勢パラメータの推定値とし、出力部５０により出力する。なお、期待値ではなく、最高値をとるなど別の方法で骨格姿勢パラメータを抽出することも可能である。
【００５３】
＜本発明の実施の形態に係る骨格姿勢推定装置の作用＞
【００５４】
次に、本発明の実施の形態に係る骨格姿勢推定装置１００の作用について説明する。入力部１０において各時刻の三次元画像データを受け付けると、骨格姿勢推定装置１００は、図３に示す骨格姿勢推定処理ルーチンを実行する。
【００５５】
まず、ステップＳ１００では、入力部１０において受け付けた各時刻ｔの三次元画像データＤt（ｔ＝１，２，３，・・・，Ｔ）を取得する。ここで、ｔはフレーム番号であり、時刻に対応している。
【００５６】
次に、ステップＳ１０２では、カメラ位置姿勢推定部３０により、ステップＳ１００で取得した三次元画像データＤｔに基づいて、各時刻ｔのカメラ位置姿勢パラメータを推定し、カメラ位置姿勢パラメータ記憶部２２に記憶する。
【００５７】
ステップＳ１０４では、カメラ位置姿勢推定部３０により、ステップＳ１００で取得した三次元画像データＤｔに基づいて、各時刻ｔの手腕関節位置を推定し、関節位置記憶部２４に記憶する。
【００５８】
ステップＳ１０６では、各時刻ｔについて、頭部（ルート）の骨格姿勢パラメータ（頭部位置）を、カメラ位置姿勢パラメータ記憶部２２に記憶されている当該時刻ｔにおけるカメラ位置姿勢パラメータに基づいて計算する。カメラの位置姿勢に対する相対的な頭部の位置姿勢は固定されているので、カメラの位置姿勢から頭部の位置姿勢を計算する補正パラメータをカメラ位置姿勢パラメータに掛けることで計算できる。ここで用いる補正パラメータは、回転と並進を表す行列であり、撮影者のカメラの装着位置から事前に計算されているものとする。
【００５９】
ステップＳ１０７において、推定対象時刻ｔを初期値である１に設定する。
【００６０】
ステップＳ１０８では、パラメータ分布記憶部４０に、一時刻前の時刻ｔ−１における骨格姿勢パラメータの分布が存在するかどうかを判定し、存在しない場合にはステップＳ１１０へ移行し、存在する場合にはステップＳ１１４へ移行する。
【００６１】
ステップＳ１１０では、関節位置記憶部２４に記憶されている、推定対象時刻ｔにおける手腕関節位置を用いて、撮影者が予め決められた初期ポーズをとっているかを判定する。ここでは、予め決められた初期ポーズの手腕関節位置と、関節位置記憶部２４から得られた推定対象時刻ｔの手腕関節位置が、ある閾値以下の距離にある場合に、初期ポーズをとっているものと判定する。初期ポーズをとっていれば、ステップＳ１１２へ移行し、初期ポーズをとっていなければステップＳ１２４へ移行する。
【００６２】
ステップＳ１１２では、頭部位置以外の骨格姿勢パラメータを、初期ポーズを表す初期骨格姿勢パラメータ
【００６３】
【数４】
2016162425.tif 000006
【００６４】
で置き換え、初期骨格姿勢パラメータ
【００６５】
【数５】
2016162425.tif 000007
【００６６】
から、システムノイズを加えることで、Ｎ個の骨格姿勢パラメータの候補を生成し、これを推定対象時刻ｔにおける骨格姿勢パラメータの分布として、パラメータ分布記憶部４０に記憶し、ステップＳ１２２へ移行する。
【００６７】
ステップＳ１１２は、図４に示す骨格姿勢パラメータ候補生成処理ルーチンにより実現される。
【００６８】
まず、ステップＳ２００において、初期骨格姿勢パラメータ
【００６９】
【数６】
2016162425.tif 000008
【００７０】
の、ルートとなる関節以外の関節ｊのｘ軸、ｙ軸、及びｚ軸の回転角度パラメータに対し、平均０、分散σ２の正規分布に従うシステムノイズを加えることで、ｎ個目骨格姿勢パラメータの候補についての、ｘ軸、ｙ軸、及びｚ軸についての回転角度パラメータθｔｊを生成する。
【００７１】
次に、ステップＳ２０２では、ステップＳ２００で生成した回転角度パラメータθｔｊが、関節ｊにおける可動域内に入るかどうか判定する。可動域は、手動で設定するほか、大量のモーションデータなどから可動域を推定する方法などによって決定する。入る場合にはステップＳ２０４へ移行し、入らない場合には、ステップＳ２００に戻ってθｔｊの生成を繰り返す。
【００７２】
ステップＳ２０４では、ステップＳ２０２で可動域に入ると判定された回転角度パラメータθｔｊを当該関節ｊにおける回転角度として採用する。
【００７３】
ステップＳ２０６では、すべての関節ｊに関してｎ個目の回転角度パラメータθｔｊの候補の生成が終了したかどうかを判定する。終わっていればステップＳ２１０へ移行し、終わっていない場合にはステップＳ２０８へ移行する。
【００７４】
ステップＳ２０８では、関節ｊを１だけインクリメントして更新し、ステップＳ２００へ戻って、次の関節ｊについてｎ個目の回転角度パラメータθｔｊの候補の生成を行う。
【００７５】
ステップＳ２１０では、Ｎ個の骨格姿勢パラメータの候補の生成が終了したかを判定し、生成が終了していなければステップＳ２１２へ移行し、生成が終了していれば骨格姿勢パラメータ候補生成処理ルーチンを終了する。
【００７６】
ステップＳ２１２では、ｎを１だけインクリメントして更新し、ステップＳ２００へ戻って、次の骨格姿勢パラメータの候補の生成を行う。
【００７７】
次に、上記図３のステップＳ１１４では、時刻ｔ−１のＮ個の骨格姿勢パラメータの候補から、推定対象時刻ｔにおけるＮ個の骨格姿勢パラメータの候補を生成し、これを推定対象時刻ｔにおける骨格姿勢パラメータの分布として、パラメータ分布記憶部４０に記憶する。
【００７８】
ステップＳ１１４は、具体的には、上記図４のステップＳ２００〜ステップＳ２１２と同様の手順を用いてＮ個の骨格姿勢パラメータの候補を生成すればよいが、ステップＳ２００において、初期骨格姿勢パラメータに対してではなく、時刻ｔ−１のｎ個目の骨格姿勢パラメータの候補に対してシステムノイズを加えてｎ個目の骨格姿勢パラメータの候補を生成する点が異なっている。
【００７９】
ステップＳ１１５では、ステップＳ１１２又はステップＳ１１４で生成されたＮ個の骨格姿勢パラメータの候補の各々について、二次元座標の一致度及びデプス値の一致度を計算する。
【００８０】
ステップＳ１１５は、図５に示す二次元座標計算処理ルーチン、及び図６に示すデプス値計算処理ルーチンにより実現される。
【００８１】
図５に示すように、ステップＳ３００では、ステップＳ１１４で生成されたＮ個の骨格姿勢パラメータの候補のうちｉ個目の骨格姿勢パラメータの候補と、骨格モデル記憶部２６に記憶されている撮影者の骨格モデルに基づいて、上記非特許文献３の方法を用いて、全関節の三次元位置を計算する。
【００８２】
ステップＳ３０２では、ステップＳ３００で計算された全関節の三次元位置のうち手腕の関節の三次元位置を、カメラ位置姿勢パラメータ記憶部２２に記憶されている推定対象時刻ｔのカメラ位置姿勢パラメータと、カメラの内部パラメータとを用いて、二次元画像上に投影し、二次元座標を求める。
【００８３】
ステップＳ３０４では、ステップＳ３０２で求めた二次元座標と、関節位置記憶部２４に記憶されている推定対象時刻ｔの手腕関節位置との間の二次元画像上のピクセル距離をｌとし、一致度ｐ（ｉ）を平均０、分散σ２の正規分布を用いて以下の（１）式の様に、二次元座標の一致度を計算する。
【００８４】
【数７】
2016162425.tif 000009
【００８５】
ステップＳ３０６では、Ｎ個の骨格姿勢パラメータの候補について二次元座標の一致度ｐ（ｉ）が計算されたか判定し、計算されていれば処理を終了し、計算されていない場合にはステップＳ３０８へ移行する。
【００８６】
ステップＳ３０８では、ｉを１だけインクリメントして更新し、ステップＳ３００に戻ってステップＳ３００〜ステップＳ３０６の処理を繰り返す。
【００８７】
次に、図６に示すように、ステップＳ４００では、上記ステップＳ３００と同様に、ステップＳ１１４で生成されたＮ個の骨格姿勢パラメータの候補のうちｉ個目の骨格姿勢パラメータの候補と、骨格モデル記憶部２６に記憶されている撮影者の骨格モデルに基づいて、上記非特許文献３の方法を用いて、全関節の三次元位置を計算する。
【００８８】
ステップＳ４０２では、カメラ位置姿勢パラメータ記憶部２２に記憶されている推定対象時刻ｔのカメラ位置姿勢パラメータを用いて、ステップＳ４００で計算された手腕関節の三次元位置をカメラ座標系に変換し、手腕関節位置のＺ座標をデプス値ｍとする。
【００８９】
ステップＳ４０４では、ステップＳ４００で得られた手腕関節の三次元位置を、カメラ位置姿勢パラメータ記憶部２２に記憶されている推定対象時刻ｔのカメラ位置姿勢パラメータと、カメラの内部パラメータとを用いて、二次元画像上に投影して二次元座標を求め、推定対象時刻ｔの三次元画像データから、その二次元座標に対する三次元画像データ中の深度値を取得することでデプス値ｍ’を得る。
【００９０】
ステップＳ４０６では、ｉ個目の骨格姿勢パラメータの候補について、ステップＳ４０２で得たデプス値ｍと、ステップＳ４０４で得たデプス値ｍ’とを用いて、デプス値に関する一致度ｑ（ｉ）を以下の（２）式のステップ関数で計算する。
【００９１】
【数８】
2016162425.tif 000010
【００９２】
ステップＳ４０８では、Ｎ個の骨格姿勢パラメータの候補についてデプス値の一致度ｑ（ｉ）が計算されたか判定し、計算されていれば処理を終了し、計算されていない場合にはステップＳ４１０へ移行する。
【００９３】
ステップＳ４１０では、ｉを１だけインクリメントして更新し、ステップＳ４００に戻ってステップＳ４００〜ステップＳ４０８の処理を繰り返す。
【００９４】
ステップＳ１１６では、Ｎ個の骨格姿勢パラメータの候補の各々について、以上の処理ルーチンにより得られた二次元座標の一致度ｐ（ｉ）、及び処理ルーチンにより得られたデプス値の一致度ｑ（ｉ）に基づいて、以下の（３）式の様に尤度π（ｉ）を計算する。
【００９５】
【数９】
2016162425.tif 000011
【００９６】
ステップＳ１１８では、ステップＳ１１６で計算された尤度に基づいて、推定対象時刻ｔのＮ個の骨格姿勢パラメータの候補を更新する。ここでは、尤度に比例する割合でＮ個復元抽出し、パラメータ分布記憶部４０に記憶する。
【００９７】
ステップＳ１２０では、上記ステップＳ１１８で得られたＮ個の骨格姿勢パラメータの候補と、上記ステップＳ１１６でＮ個の骨格姿勢パラメータの候補に対して計算された尤度との積和を計算することで期待値を計算し、これを推定対象時刻ｔにおける骨格姿勢パラメータの推定値として、出力部５０により出力する。
【００９８】
ステップＳ１２２では、全ての三次元画像データについて処理を終了したかを判定し、終了していれば骨格姿勢推定処理ルーチンを終了し、終了していなければステップＳ１２４へ移行する。
【００９９】
ステップＳ１２４では、推定対象時刻ｔを更新し、ステップＳ１０８に戻ってステップＳ１０８〜ステップＳ１２２の処理を繰り返す。
【０１００】
以上説明したように、本発明の実施の形態に係る骨格姿勢推定装置によれば、各時刻のカメラの位置姿勢と、各時刻の関節位置と、予め求められた撮影者の骨格モデルと、各時刻の三次元画像データとに基づいて、各時刻の撮影者の骨格姿勢を表す骨格姿勢パラメータを推定し、一時刻前の骨格姿勢パラメータに基づいて、推定対象時刻の骨格姿勢パラメータの候補を複数生成し、生成された複数の骨格姿勢パラメータの候補の各々について、推定対象時刻のカメラの位置姿勢と、骨格モデルとに基づいて、骨格姿勢パラメータの候補の尤もらしさを示す尤度を計算し、計算された尤度に応じて推定対象時刻の骨格姿勢パラメータを抽出し、骨格姿勢パラメータを推定することにより、撮影者の体の一部しか映り込んでいない映像からであっても、撮影者の骨格姿勢を精度よく推定することができる。
【０１０１】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１０２】
例えば、上述した実施の形態では、手腕関節位置を用いて、骨格姿勢パラメータの候補の尤度を計算する場合を例に説明したが、これに限定されるものではなく、カメラから撮影できる関節であり関節位置の推定可能であれば、どのような部位の関節位置を用いて、骨格姿勢パラメータの候補の尤度を計算してもよい。
【符号の説明】
【０１０３】
１０   入力部
２０   演算部
２２   カメラ位置姿勢パラメータ記憶部
２４   関節位置記憶部
２６   骨格モデル記憶部
３０   カメラ位置姿勢推定部
３２   関節位置検出部
３４   骨格姿勢パラメータ推定部
４０   パラメータ分布記憶部
５０   出力部
１００ 骨格姿勢推定装置
１３２ パーティクル生成部
１３４ パーティクル尤度計算部
１３６ パラメータ分布更新部
【図２】
2016162425.tif 000012
【図３】
2016162425.tif 000013
【図４】
2016162425.tif 000014
【図５】
2016162425.tif 000015
【図６】
2016162425.tif 000016
【図１】
2016162425.tif 000017