説明

人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラム

【課題】教師ビデオを利用することによって、教師ビデオの動きをまねたユーザの動きを撮影したユーザビデオからユーザの人体姿勢を精度よく推定することを図る。
【解決手段】CG教師ビデオデータから動きのリズムを表すビートフレームを取得する動き解析部2と、CG教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すキーフレームを取得する映像解析部4と、キーフレーム及びビートフレームを表示する表示部10と、表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部12と、指定のキーフレームとビートフレームとを対応付ける動き対応部6と、対応付けられたキーフレームとビートフレームとに基づいてユーザビデオデータの映像における人体姿勢を追跡する動き追跡部8と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラムに関する。
【背景技術】
【0002】
従来、人体の姿勢を推定する技術としては、大きく分けて、弁別的アプローチと生成的アプローチとが知られている。弁別的アプローチでは、画像測定から姿勢を推論するために外観に基づいた連想モデルを知ることによって、姿勢を推定する。生成的アプローチでは、画像観察を最良に説明する姿勢を見出すことによって、姿勢を推定する。
【0003】
特許文献1では、ビデオカメラで撮影されたユーザの画像から、背景差分によってシルエットを抽出する。また、3次元人体モデルと多数の姿勢サンプルから生成した、様々な姿勢のシルエットで構成される姿勢辞書を準備しておく。この姿勢辞書内の多数のシルエットの中で、画像から抽出されたユーザのシルエットにもっとも近いものを、シルエット間の類似度(距離)に基づいて探索する。この探索は、様々な姿勢、画像内の様々な位置、大きさに対して行う。姿勢辞書内のシルエットは、人体の全関節の角度を要素とする姿勢ベクトルと関連付けられており、探索されたシルエットからユーザの姿勢を得ることができる。
【0004】
特許文献2では、複数の画像用の観察ベクトルデータおよび対応する姿勢ベクトルデータを含む訓練データを取得する。観察ベクトルデータは観察空間の画像を表し、姿勢ベクトルデータは姿勢空間の同一の画像を表す。そして、訓練データに基づいて、観察空間から潜在空間へのマッピングのパラメータと、潜在空間から姿勢空間へのマッピングのパラメータと、潜在空間のパラメータと、を含むモデルを計算する。潜在空間は観察空間よりも低い次元を有し、潜在空間は姿勢空間よりも低い次元を有する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−112211号公報
【特許文献2】特開2009−146405号公報
【非特許文献】
【0006】
【非特許文献1】ローレンス(Lawrence)、「高次元データの視覚化用のガウス過程潜在変数モデル(Gaussian Process Latent Variable Models for Visualisation of High Dimensional Data)」、神経情報処理システムに関する会議(Conference on Neural Information Processing Systems)、NIPS2004
【非特許文献2】ローレンス(Lawrence)他、「バック制約によるGPLVMにおける局所距離保存(Local Distance Preservation in the GPLVM through Back Constraints)」、ICML2006
【非特許文献3】ワング(Wang)他、「ガウス過程力学モデル(Gaussian Process Dynamical Models)」、NIPS2005
【非特許文献4】ドイチャー(Deutscher)他、「アニールされた粒子フィルタリングによる関節のある身体のモーションキャプチャ(Articulated body motion capture by annealed particle filtering)」、CVPR2000
【非特許文献5】インターネット<URL:http://en.wikipedia.org/wiki/Principal_components_analysis#Software.2Fsource_code>、平成22年7月20日検索
【非特許文献6】インターネット<URL:http://www.gnu.org/software/gsl/>、平成22年7月20日検索
【非特許文献7】M. Turk and A. Pentland, "Face recognition using eigenfaces", Proc. IEEE Conference on Computer Vision and Pattern Recognition, pp. 586‐591,1991.
【非特許文献8】HumanEva, "Synchronized Video and Motion Capture Dataset and Baseline Algorithm for Evaluation of Articulated Human Motion, L. Sigal", A. Balan and M. J. Black, International Journal of Computer Vision (IJCV), Special Issue on Evaluation of Articulated Human Motion and Pose Estimation, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、上述した特許文献1の従来技術では、事前に準備した姿勢辞書中にある動きに推定可能範囲が限定される。このため、姿勢辞書の容量を拡大すると、計算量が増え、推定に要する時間が長くなる。特許文献2の従来技術では、ロバスト性(robust)および性能面で不十分である。
【0008】
本発明は、このような事情を考慮してなされたもので、教師ビデオを利用することによって、教師ビデオの動きをまねたユーザの動きを撮影したユーザビデオからユーザの人体姿勢を精度よく推定することができる人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【0009】
上記の課題を解決するために、本発明に係る人体姿勢推定装置は、教師ビデオデータを利用する人体姿勢推定装置において、前記教師ビデオデータから、動きのリズムを表すフレームであるビートフレームを取得する動き解析部と、前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、前記キーフレーム及び前記ビートフレームを表示する表示部と、前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、前記操作部による指定のキーフレームとビートフレームとを対応付ける動き対応部と、前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、を備えたことを特徴とする。
【0010】
本発明に係る人体姿勢推定装置は、教師ビデオデータから取得された、動きのリズムを表すフレームであるビートフレームを格納するビートフレーム記憶部と、前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、前記キーフレーム及び前記ビートフレームを表示する表示部と、前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、前記操作部による指定に基づいてキーフレームとビートフレームとを対応付ける動き対応部と、前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、を備えたことを特徴とする。
【0011】
本発明に係る人体姿勢推定装置において、前記動き対応部は、前記教師ビデオデータに含まれる前記指定のビートフレームの前後のフレームの中から、前記指定のキーフレームに最も類似するフレームを探索し、探索結果のフレームを前記指定のキーフレームに対応付けることを特徴とする。
【0012】
本発明に係る人体姿勢推定装置において、前記操作部は、前記探索結果のフレーム内の人体姿勢をユーザが微調整する手段を有することを特徴とする。
【0013】
本発明に係る人体姿勢推定装置において、前記動き追跡部は、前記指定のキーフレームから次のキーフレームまでの動きを、パーティクルフィルタを用いた方法で追跡するときに、前記指定のキーフレームに対応付けられたビートフレーム内の人体姿勢を初期姿勢とすることを特徴とする。
【0014】
本発明に係る人体姿勢推定装置において、前記動き追跡部は、前記ユーザビデオデータ中の推定対象フレームにおける推定結果の人体姿勢に類似する人体姿勢を有するフレームを前記教師ビデオデータから探索し、探索結果のフレームの次のフレーム内の人体姿勢を該推定対象フレームの次の推定対象フレームの初期姿勢とすることを特徴とする。
【0015】
本発明に係る人体姿勢推定装置において、前記映像解析部は、前記ユーザビデオデータを特定色空間および特定解像度に変換する手段と、前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、特定主成分座標に基づいて、極値を取る動きのキーフレームを判定する手段と、を有することを特徴とする。
【0016】
本発明に係る人体姿勢推定装置において、前記動き解析部は、前記教師ビデオデータを関節位置空間に変換する手段と、前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、特定主成分座標に基づいて、極値を取る動きのビートフレームを判定する手段と、を有することを特徴とする。
【0017】
本発明に係る人体姿勢推定方法は、入力装置と表示装置と演算処理装置とを備える人体姿勢推定装置を制御する方法であって、教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、を含むことを特徴とする。
【0018】
本発明に係る人体姿勢推定方法においては、前記教師ビデオデータからビートフレームを取得するステップをさらに含むことを特徴とする。
【0019】
本発明に係るコンピュータプログラムは、コンピュータに、教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、を実行させるためのコンピュータプログラムであることを特徴とする。
【0020】
本発明に係るコンピュータプログラムにおいては、コンピュータに、前記教師ビデオデータからビートフレームを取得するステップをさらに実行させるためのコンピュータプログラムであることを特徴とする。
これにより、前述の人体姿勢推定装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【0021】
本発明によれば、教師ビデオを利用することによって、教師ビデオの動きをまねたユーザの動きを撮影したユーザビデオからユーザの人体姿勢を精度よく推定することができるという効果が得られる。
【図面の簡単な説明】
【0022】
【図1】本発明の一実施形態に係る概念図である。
【図2】同実施形態に係る人体姿勢推定装置1の構成図である。
【図3】人体スケルトン型動きデータの定義例の概略図である。
【図4】図1に示す動き解析部2の構成図である。
【図5】本発明の一実施形態に係るデータ分割処理の概念図である。
【図6】本発明の一実施形態に係る主成分座標連結処理を説明するための概念図である。
【図7】本発明の一実施形態に係る正弦近似処理の概念図である。
【図8】図1に示す映像解析部4の処理の手順を示すフローチャートである。
【図9】本発明の一実施形態に係る解像度変換処理の概念図である。
【図10】図1に示す動き対応部6の処理の手順を示すフローチャートである。
【図11】本発明の他の実施形態に係る人体姿勢推定装置1の構成図である。
【発明を実施するための形態】
【0023】
以下、図面を参照し、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る概念図である。図1を参照して、本実施形態に係る概念を説明する。まず、動きの手本をコンピューターグラフィックス(CG)により映像化したCG教師ビデオをモニタ上に再生し、再生された動きをユーザがまねたユーザの動きをビデオ撮影する。そして、CG教師ビデオにおける人体姿勢に基づいて、ユーザビデオにおける人体姿勢を推定する。
【0024】
図2は、本実施形態に係る人体姿勢推定装置1の構成図である。図1において、人体姿勢推定装置1は、動き解析部2と映像解析部4と動き対応部6と動き追跡部8と表示部10と操作部12とを有する。表示部10と操作部12とは、それぞれ独立した表示装置と入力装置とから構成してもよく、或いは、タッチパネルのように表示装置と入力装置とが一体化した構成としてもよい。
【0025】
人体姿勢推定装置1には、CG教師ビデオデータとユーザビデオデータとが入力される。人体姿勢推定装置1は、CG教師ビデオデータの映像における人体姿勢に基づいて、ユーザビデオデータの映像における人体姿勢を推定する。人体姿勢推定装置1は、推定した人体姿勢の動きデータ(人体姿勢推定データ)を出力する。
【0026】
図3は、人体スケルトン型動きデータの定義例の概略図である。本実施形態では、人体姿勢の動きを表現するデータとして、人体スケルトン型動きデータを用いる。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点(ジョイント)を用い、一ジョイントを根(ルート)とし、ルートからジョイント経由で順次連結される骨の構造を木(ツリー)構造として定義される。図3には、人体スケルトン型動きデータの定義の一部分のみを示している。図3において、ジョイント100は腰の部分であり、ルートとして定義される。ジョイント101は左腕の肘の部分、ジョイント102は左腕の手首の部分、ジョイント103は右腕の肘の部分、ジョイント104は右腕の手首の部分、ジョイント105は左足の膝の部分、ジョイント106は左足の足首の部分、ジョイント107は右足の膝の部分、ジョイント108は右足の足首の部分、である。
【0027】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【0028】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢(ポーズ)の連続により表すものであり、人の基本ポーズ(neutral pose)を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
【0029】
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【0030】
以下、人体スケルトン型動きデータのことを単に動きデータと称する。また、本実施形態では、CG教師ビデオデータは動きデータを用いて作成されている。
【0031】
図4は、図1に示す動き解析部2の構成図である。図4において、動き解析部2は、物理量変換部20、データ分割部22、短時間主成分分析部24、主成分座標連結部26、ビート推定部28及び後処理部30を有する。動き解析部2には、CG教師ビデオデータが入力される。動き解析部2は、CG教師ビデオデータから、動きのリズムを表すフレーム(以下、説明の便宜上、ビートフレームと称する)を取得する。ビートフレームは、CG教師ビデオデータにおける、ある時刻の動きデータ(人体スケルトン型動きデータ)である。動き解析部2は、ビートフレームを特定する時刻(ビート時刻)を出力する。以下、図4を参照して、動き解析部2を詳細に説明する。
【0032】
[物理量変換部]
物理量変換部20は、CG教師ビデオデータ(動きデータ)を対象にして、各ジョイントがルートに対してどのくらいの位置で動いているのかを算出する。具体的には、物理量変換部20は、入力されたCG教師ビデオデータにおいて、時刻tにおけるジョイント相対位置を算出する。ジョイント相対位置は、ルートに対するジョイントの相対的な位置である。以下、物理量変換部20が行うジョイント相対位置の計算方法を示す。
【0033】
まず、CG教師ビデオデータの基本ポーズデータとフレームデータとを用いてジョイント位置を算出する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなど、基本ポーズを特定する情報を有する。フレームデータは、ジョイント毎に、基本ポーズからの移動量の情報を有する。ここでは、移動量として角度情報を利用する。この場合、時刻tにおけるk番目のジョイントの位置(x,y,z座標)であるp(t)は、(1)式および(2)式により計算される。なお、時刻tはフレームデータの時刻である。ここでは、時刻tとしてフレームインデックスを使用し、「t=0,1,2・・・T−1」の値を取ることとする。Tは、動きデータに含まれるフレームの個数である。
【0034】
【数1】

【0035】
【数2】

【0036】
但し、0番目(i=0)のジョイントはルートである。Raxisi−1,i(t)は、i番目のジョイントとその親ジョイント(「i−1」番目のジョイント)間の座標回転マトリックスであり、基本ポーズデータに含まれる。各ジョイントにはローカル座標系が定義されており、座標回転マトリックスは親子関係にあるジョイント間のローカル座標系の対応関係を表す。R(t)は、i番目のジョイントのローカル座標系におけるi番目のジョイントの回転マトリックスであり、フレームデータに含まれる角度情報である。T(t)は、i番目のジョイントとその親ジョイント間の遷移マトリックスであり、基本ポーズデータに含まれる。遷移マトリックスは、i番目のジョイントとその親ジョイント間の骨の長さを表す。
【0037】
次いで、時刻tにおける、ルートに対するk番目のジョイントの相対位置(ジョイント相対位置)p’(t)を(3)式により計算する。
【0038】
【数3】

【0039】
但し、proot(t)は時刻tにおけるルート(0番目のジョイント)の位置(p(t))である。
【0040】
これにより、時刻tのフレーム「x(t)」は、「x(t)={p’(t),p’(t),・・・,p’(t)}」と表される。但し、Kは、ルートを除いたジョイントの個数である。
【0041】
なお、具体的なジョイントの例として、以下に示す25個(K=25)のジョイントが挙げられる。1lhip, 2lfemur, 3ltibia, 4lfoot, 6rhip, 7rfemur, 8rtibia, 9rfoot, 11lowerback, 12upperback, 13thorax, 14lowerneck, 15upperneck, 17lclavicle, 18lhumerus, 19lradius, 20lwrist, 21lhand, 22lfingers, 24rclavicle, 25rhumerus, 26rradius, 27rwrist, 28rhand, 29rfingers.
【0042】
[データ分割部]
データ分割部22は、ジョイント相対位置データを、一定時間の区間に分割する。 データ分割部22は、各ジョイントのジョイント相対位置データ「p’k(t)」に対して、それぞれデータ分割処理を行う。図5にデータ分割処理の概念を示す。データ分割処理では、ジョイント相対位置データを一定時間(一定数のフレーム分に対応)の区間に分割する。分割区間の長さは、適宜、設定可能である。分割区間の長さは、例えば、90フレーム分の長さである。
【0043】
[短時間主成分分析部]
短時間主成分分析部24は、データ分割部22によって分割されたジョイント相対位置データに対し、各区間で主成分分析処理を行う。ここで、時刻tのフレーム「x(t)」を用いて、一区間のデータ「X」を「X={x(t1),x(t2),・・・,x(tN)}と表す。但し、Nは区間長(区間内に含まれるフレームの個数)である。Xは、M行N列の行列である(但し、M=3×K)。
【0044】
主成分分析処理では、Xに対して主成分分析処理を行い、Xを主成分空間へ変換する。主成分分析処理については、例えば非特許文献5を利用することができる。
【0045】
ここで、短時間主成分分析部24が行う主成分分析処理を説明する。
まず、(4)式により、Xから平均値を除いたN行M列の行列Dを算出する。
【0046】
【数4】

【0047】
次いで、(5)式により、N行M列の行列Dに対して特異値分解(Singular Value Decomposition)を行う。特異値分解処理については、例えば非特許文献6を利用することができる。
【0048】
【数5】

【0049】
但し、Uは、N行N列のユニタリ行列である。Σは、N行M列の負でない対角要素を降順にもつ対角行列であり、主成分空間の座標の分散を表す。Vは、M行M列のユニタリ行列であり、主成分に対する係数(principal component)である。
【0050】
次いで、(6)式により、N行M列の行列Dを主成分空間へ変換する。M行N列の行列Yは、主成分空間の座標を表す。
【0051】
【数6】

【0052】
短時間主成分分析部24は、区間毎に、主成分空間の座標を表す行列(主成分座標行列)Yと、主成分に対する係数の行列(主成分係数行列)Vをメモリに保存する。
【0053】
なお、元空間の座標を表す行列Xと主成分座標行列Yは、(6)式と(7)式により相互に変換することができる。
【0054】
【数7】

【0055】
また、上位のr個の主成分によって、(8)式により変換することができる。
【0056】
【数8】

【0057】
但し、Vは、主成分係数行列V内の上位のr個の行から成るM行r列の行列である。Yは、主成分座標行列Y内の上位のr個の列から成るr行N列の行列である。Xは、復元されたM行N列の行列である。
【0058】
なお、元空間の一部の自由度だけを主成分分析処理することも可能である。例えば、足の動きだけでビートを表現することができる場合には、足に関するジョイント相対位置データのみから生成したM’行N列の行列X’に対して、(4)式、(5)式及び(6)式により主成分分析処理を行う。
【0059】
[主成分座標連結部]
主成分座標連結部26は、各区間の主成分の座標を、時系列に沿って連結する。この主成分座標連結部26が行う主成分座標連結処理では、連続する2つの区間の境界部分において、主成分の座標が滑らかに連結されるように、主成分の座標を調整する。
【0060】
図6に、本実施形態に係る主成分座標連結処理を説明するための概念図を示す。本実施形態では、時系列に従って、先頭の区間から順番に主成分座標連結処理を行ってゆく。図6において、ある区間(前区間)までの主成分座標連結処理が終了している。そして、その前区間に対して、次の区間(当区間)を連結するための主成分座標連結処理を行う。この主成分座標連結処理では、前区間の主成分座標に対し、当区間の主成分座標が滑らかに連結されるように、当区間の主成分座標を調整する。この主成分座標の調整処理では、主成分選択ステップによって選択された当区間の主成分座標(元座標)に対し、符号反転又は座標シフトを行う。
【0061】
ここで、主成分座標連結部26が行う主成分座標連結処理を説明する。
【0062】
主成分座標連結ステップS11:当区間の主成分の座標(第1主成分の元座標)Yに対し、当区間の主成分係数行列Vから、第1主成分に対する係数Vを取得する。さらに、メモリに保存されている前区間の主成分係数行列Vから、第1主成分に対する係数Vpreを取得する。
【0063】
主成分座標連結ステップS12:当区間に係る第1主成分に対する係数Vと前区間に係る第1主成分に対する係数Vpreとの関係に基づいて、当区間に係る第1主成分の元座標を符号反転するか否かを判定する。この符号反転の判定は、(9)式により行う。(9)式による判定の結果、符号反転する場合には、当区間の第1主成分の元座標Yに対して符号反転を行うと共に、当区間の主成分係数行列Vに対しても符号反転を行う。一方、(9)式による判定の結果、符号反転しない場合には、当区間の第1主成分の元座標Y及び当区間の主成分係数行列Vともに、そのままの値を主成分座標連結ステップS12の処理結果とする。
【0064】
【数9】

【0065】
但し、Yは、当区間で選択された主成分の座標(第1主成分の元座標)である。Vは、当区間の主成分係数行列である。Vは、当区間に係る第1主成分に対する係数である。Vpreは、前区間に係る第1主成分に対する係数である。(V・Vpre)は、VとVpreの内積である。Y’は、当区間で選択された主成分の座標(第1主成分の元座標)Yに対する主成分座標連結ステップS12の処理結果である。V’は、当区間の主成分係数行列Vに対する主成分座標連結ステップS12の処理結果である。
【0066】
主成分座標連結ステップS13:主成分座標連結ステップS12の処理結果の主成分座標Y’に対し、座標シフトを行う。具体的には、(10)式により座標シフトを行う。この場合、前区間の主成分座標行列Yから、前区間の第tNフレームにおける第1主成分の座標Ypre(tN)を取得する。
【0067】
【数10】

【0068】
但し、Y’(t1)は、ステップS12の処理結果の主成分座標Y’のうち、第t1フレームの座標である。Y”(t2)は、(10)式の最初の計算式の計算結果の座標Y”のうち、第t2フレームの座標である。
(10)式の最初の計算式の計算結果の座標Y”に対し、第t1フレームの座標Y”(t1)をYopt(t1)に置き換える。この置き換え後の座標Y”が、座標シフト結果の座標である。
【0069】
主成分座標連結ステップS14:当区間において、主成分座標連結ステップS12の処理結果の座標Y’に対して、主成分座標連結ステップS13の処理結果の座標Yopt(t1)を反映する。これにより、当区間の主成分座標は、前区間の主成分座標に対して滑らかに連結されるものとなる。
【0070】
主成分座標連結部26は、上記した主成分座標連結処理を最初の区間から最後の区間まで行う。これにより、連結後の全区間の主成分座標「y(t)、t=0,1,2,・・・,T−1」が求まる。但し、Tは、動きデータに含まれるフレームの個数である。
【0071】
[ビート推定部]
ビート推定部28は、主成分座標連結部26によって算出された連結後の全区間の主成分座標y(t)から、極値b(j)を算出する。この算出結果の極値b(j)がビートに対応する。ビートの集合Bは、(11)式で表される。
【0072】
【数11】

【0073】
但し、Jは、ビートの個数である。
【0074】
なお、ビートの集合の算出は、上記した方法以外の方法でも可能である。例えば、ビート推定部28は、主成分座標連結部26によって算出された連結後の全区間の主成分座標から自己相関値を算出し、該自己相関値の極値b(j)をビートに対応するものとして算出することができる。また、ビート推定部28は、主成分座標連結部26によって、連結後の隣区間の主成分係数から算出した内積((9)式によるもの)の自己相関値を算出し、該自己相関値の極値b(j)をビートに対応するものとして算出することができる。
【0075】
[後処理部]
後処理部30は、ビート推定部28によって算出されたビート集合Bから、ビート時刻を検出する。
【0076】
ここで、後処理部30が行うビート時刻検出処理を説明する。
まず、ビート集合B内の各極値間を、(12)式により正弦曲線(sinusoid)で近似する。
【0077】
【数12】

【0078】
但し、sj−1(t)は、(j−1)番目の極値b(j−1)からj番目の極値b(j)までの区間の正弦近似値である。tはフレームに対応する時刻であり、「t=0,1,2,・・・,T−1」である。Tは、動きデータに含まれるフレームの個数である。
【0079】
図7に、(12)式による正弦近似処理の概念図を示す。図7において、1番目の極値b(1)から2番目の極値b(2)までの区間a1(j=2の場合の区間)は、s(t)で近似される。同様に、2番目の極値b(2)から3番目の極値b(3)までの区間a2(j=3の場合の区間)はs(t)で近似され、3番目の極値b(3)から4番目の極値b(4)までの区間a3(j=4の場合の区間)はs(t)で近似され、4番目の極値b(4)から5番目の極値b(5)までの区間a4(j=5の場合の区間)はs(t)で近似される。
【0080】
次いで、正弦近似値「sj−1(t)、j=2,3,・・・,J」に対してフーリエ変換を行う。そのフーリエ変換処理には、所定のFFTポイント数Lのハン窓を用いたFFT(Fast Fourier Transform)演算器を使用する。そして、そのフーリエ変換の結果に基づいて、該フーリエ変換に係る周波数範囲のうちから最大の成分を有する周波数(最大成分周波数)fmaxを検出する。そして、ビート間隔TBを「TB=Fs÷fmax」なる計算式により算出する。但し、Fsは、1秒当たりのフレーム数である。
【0081】
次いで、正弦近似値「sj−1(t)、j=2,3,・・・,J」と、(13)式で定義される基準値「s’(t)」との間の最大相関初期位相を(14)式により算出する。
【0082】
【数13】

【0083】
【数14】

【0084】
次いで、(15)式により、ビート時刻eb(j)の集合EBを算出する。但し、EJは、ビート時刻eb(j)の個数である。
【0085】
【数15】

【0086】
以上が本実施形態の動き解析部2によるビート時刻検出処理の説明である。本実施形態によれば、動きデータを入力し、短時間の区間毎に主成分分析処理を行い、第1主成分の座標を算出し、各区間の座標を適切に連結し、ビートを抽出することができる。短時間主成分分析によれば、動きの最も大きい変化を表現できるため、動きの種類を問わず、多様な動きに対応し、より高い精度でビート抽出することが可能となる。
【0087】
次に、図8を参照して、図1に示す映像解析部4を説明する。図8は、図1に示す映像解析部4の処理の手順を示すフローチャートである。映像解析部4は、ユーザビデオデータから、動きのリズムを表すフレーム(以下、説明の便宜上、キーフレームと称する)を取得する。キーフレームは、ユーザビデオデータにおける、ある時刻の画像である。映像解析部4は、キーフレームを特定する時刻(キーフレーム時刻)を出力する。以下、図8を参照して、映像解析部4を詳細に説明する。
【0088】
ステップS21:ユーザの動きをビデオ撮影したユーザビデオデータを入力する。このビデオ撮影では、ユーザはCG教師ビデオの動きをまねて動いている。
【0089】
ステップS22:ユーザビデオデータの各フレームをGray画像に変換する。このGray画像変換処理では、(16)式により、入力されたRGBイメージを輝度はそのままにして色調と彩度を削除し、グレースケールに変換する。
【数16】

【0090】
ステップS23:ユーザビデオデータの各フレームを特定解像度(M画素×N画素)に変換する。この解像度変換処理では、入力画像の解像度を双三次補間により特定の解像度(入力画像よりも低い解像度)に変換する。図9に解像度変換処理の概念を示す。図9において、入力画像Zの解像度はX画素×Y画素であり、出力画像ZIの解像度はXI画素×YI画素である。出力画像ZIはXI行YI列の行列となる。
【0091】
ステップS23:出力画像ZIをM×N次元ベクトルに変換する。一枚の画像ZIを、(17)式により、行の順番で一つのベクトルvに変換する。
【数17】

【0092】
ステップS23までの処理によって、ユーザビデオデータはベクトル時系列「V(t)={v(k,t)}に変換される。
【0093】
ステップS25:ベクトル時系列「V(t)={v(k,t)}に対して、短時間の区間に分割し、短時間の区間毎に主成分分析を処理し、第1主成分の座標を算出し、各区間の座標を適切に連結し、キーフレームを抽出する。この処理は、動き解析部2のデータ分割部22から後処理部30までの処理と同様である。但し、本ベクトル時系列「V(t)={v(k,t)}は次元数が大きいので、共分散行列から、固有ベクトルと固有値を計算する。共分散行列から固有ベクトルと固有値を計算する方法は、例えば非特許文献7を利用することができる。
【0094】
次に、図10を参照して、図1に示す動き対応部6を説明する。図10は、図1に示す動き対応部6の処理の手順を示すフローチャートである。
【0095】
ステップS31:動き対応部6は、ユーザビデオデータが有するフレームの中から各キーフレーム時刻に対応するキーフレームを表示部10の表示画面上に表示させる。キーフレーム時刻は映像解析部4から入力される。
【0096】
ステップS32:ユーザは、操作部12を操作して、表示画面上に表示されたキーフレームの中から任意のキーフレームを指定する。操作部12は、指定されたキーフレームを動き対応部6に通知する。
【0097】
ステップS33:動き対応部6は、CG教師ビデオデータが有するフレームの中から各ビート時刻に対応するビートフレームを表示部10の表示画面上に表示させる。ビート時刻は動き解析部2から入力される。
【0098】
ステップS34:ユーザは、操作部12を操作して、表示画面上に表示されたビートフレームの中から、ステップS32で指定したキーフレームに対応するビートフレームを指定する。操作部12は、指定されたビートフレームを動き対応部6に通知する。
【0099】
ステップS35:動き対応部6は、CG教師ビデオデータが有するフレームの中から、操作部による指定のビートフレームの前後の所定範囲のフレームを対象にして、操作部による指定のキーフレームに最も類似するフレームを探索する。
【0100】
ステップS36:動き対応部6は、ステップS35の探索結果のフレームを表示部10の表示画面上に表示させる。ユーザは、操作部12を操作して、表示画面上に表示されたフレーム内のポーズに対し、ステップS32で指定したキーフレーム内のポーズに合わせる微調整を行う。操作部12は、その微調整結果を動き対応部6に通知する。動き対応部6は、その微調整結果のフレームを、ステップS32で指定されたキーフレームに対応するビートフレームに決定する。
【0101】
次に、図2に示される動き追跡部8について説明する。
動き追跡部8は、動き対応部6により対応付けられたキーフレームとビートフレームとに基づいて、ユーザビデオデータの映像における人体姿勢(ポーズ)をフレームごとに追跡する。動き追跡部8は、その追跡結果として、各フレームの人体姿勢を表す動きデータを出力する。この人体姿勢追跡処理では、ユーザビデオデータ中の追跡開始のキーフレームから次のキーフレームまでを追跡するときに、追跡開始のキーフレームに対応付けられたビートフレーム内のポーズを初期ポーズとする。
【0102】
次に、図2に示される動き追跡部8について説明する。
動き追跡部8は、動き対応部6により対応付けられたキーフレームとビートフレームとに基づいて、ユーザビデオデータの映像における人体姿勢(ポーズ)を追跡する。この人体姿勢追跡処理では、ユーザビデオデータ中の追跡開始のキーフレームから次のキーフレームまでを追跡するときに、追跡開始のキーフレームに対応付けられたビートフレーム内のポーズを初期ポーズとする。
【0103】
人体姿勢追跡処理としては、粒子フィルタ(パーティクルフィルタ)を用いて人体姿勢を追跡する方法(例えば非特許文献8参照)を利用することができる。粒子フィルタの仮定はMarkov性を持つシステムであることである。システムモデルは(18)式で、観測モデルは(19)式で、それぞれ表される。
【数18】

【0104】
【数19】

【0105】
但し、xは時刻tのフレームに対するポーズである。yは時刻tのフレームの画像である。
【0106】
よって、当フレームまでの事後尤度は、(20)式となり、粒子フィルタにより計算することができる。
【数20】

【0107】
動き追跡部8は、計算結果のポーズから成る動きデータ(人体姿勢推定データ)を出力する。
【0108】
なお、動き追跡部8は、ユーザビデオデータ中の推定対象フレームにおける推定結果のポーズに類似するポーズを有するフレームをCG教師ビデオデータから探索し、探索結果のフレームの次のフレーム内のポーズを該推定対象フレームの次の推定対象フレームの初期ポーズとする。
【0109】
上述した実施形態によれば、教師ビデオ内のCGアニメーションと、該CGアニメーションの動きをまねたユーザの動きを撮影したユーザビデオとから、動きリズムを表すフレーム(ビートフレーム、キーフレーム)をそれぞれ検出して抽出する。そして、該両フレーム(ビートフレーム、キーフレーム)を対応付けするためのGUI操作部を備え、ユーザによって該対応付けが行われることにより、人体姿勢を追跡し推定する処理を精度よく行うことができる。
【0110】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した図2に示す人体姿勢推定装置1では動き解析部2を備えたが、事前にCG教師ビデオデータから取得されたビートフレームを格納するビートフレーム記憶部を人体姿勢推定装置1に備えるようにしてもよい。図11にビートフレーム記憶部50を備えた人体姿勢推定装置1の構成図を示す。この場合、動き解析部は不要である。
【0111】
また、図2又は図11に示す人体姿勢推定装置1が行う各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、人体姿勢推定処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0112】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0113】
1…人体姿勢推定装置、2…動き解析部、4…映像解析部、6…動き対応部、8…動き追跡部、10…表示部、12…操作部、20…物理量変換部、22…データ分割部、24…短時間主成分分析部、26…主成分座標連結部、28…ビート推定部、30…後処理部、50…ビートフレーム記憶部

【特許請求の範囲】
【請求項1】
教師ビデオデータを利用する人体姿勢推定装置において、
前記教師ビデオデータから、動きのリズムを表すフレームであるビートフレームを取得する動き解析部と、
前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、
前記キーフレーム及び前記ビートフレームを表示する表示部と、
前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、
前記操作部による指定のキーフレームとビートフレームとを対応付ける動き対応部と、
前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、
を備えたことを特徴とする人体姿勢推定装置。
【請求項2】
教師ビデオデータから取得された、動きのリズムを表すフレームであるビートフレームを格納するビートフレーム記憶部と、
前記教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得する映像解析部と、
前記キーフレーム及び前記ビートフレームを表示する表示部と、
前記表示部に表示されたキーフレームと対応するビートフレームとをユーザが指定する操作部と、
前記操作部による指定に基づいてキーフレームとビートフレームとを対応付ける動き対応部と、
前記動き対応部により対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡する動き追跡部と、
を備えたことを特徴とする人体姿勢推定装置。
【請求項3】
前記動き対応部は、前記教師ビデオデータに含まれる前記指定のビートフレームの前後のフレームの中から、前記指定のキーフレームに最も類似するフレームを探索し、探索結果のフレームを前記指定のキーフレームに対応付ける、
ことを特徴とする請求項1又は2に記載の人体姿勢推定装置。
【請求項4】
前記操作部は、前記探索結果のフレーム内の人体姿勢をユーザが微調整する手段を有する、
ことを特徴とする請求項3に記載の人体姿勢推定装置。
【請求項5】
前記動き追跡部は、前記指定のキーフレームから次のキーフレームまでの動きを、パーティクルフィルタを用いた方法で追跡するときに、前記指定のキーフレームに対応付けられたビートフレーム内の人体姿勢を初期姿勢とする、
ことを特徴とする請求項1から4のいずれか1項に記載の人体姿勢推定装置。
【請求項6】
前記動き追跡部は、前記ユーザビデオデータ中の推定対象フレームにおける推定結果の人体姿勢に類似する人体姿勢を有するフレームを前記教師ビデオデータから探索し、探索結果のフレームの次のフレーム内の人体姿勢を該推定対象フレームの次の推定対象フレームの初期姿勢とする、
ことを特徴とする請求項1から5のいずれか1項に記載の人体姿勢推定装置。
【請求項7】
前記映像解析部は、
前記ユーザビデオデータを特定色空間および特定解像度に変換する手段と、
前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、
特定主成分座標に基づいて、極値を取る動きのキーフレームを判定する手段と、
を有することを特徴とする請求項1又は2に記載の人体姿勢推定装置。
【請求項8】
前記動き解析部は、
前記教師ビデオデータを関節位置空間に変換する手段と、
前記変換データを特定時間区間に分割し、分割データに対して主成分分析を行って主成分空間に変換する手段と、
特定主成分座標に基づいて、極値を取る動きのビートフレームを判定する手段と、
を有することを特徴とする請求項1に記載の人体姿勢推定装置。
【請求項9】
入力装置と表示装置と演算処理装置とを備える人体姿勢推定装置を制御する方法であって、
教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、
前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、
前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、
前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、
を含むことを特徴とする人体姿勢推定方法。
【請求項10】
前記教師ビデオデータからビートフレームを取得するステップをさらに含むことを特徴とする請求項9に記載の人体姿勢推定方法。
【請求項11】
コンピュータに、
教師ビデオデータの映像に含まれる動きをまねたユーザの動きを撮影したユーザビデオデータから、動きのリズムを表すフレームであるキーフレームを取得するステップと、
前記キーフレームと前記教師ビデオデータから取得された動きのリズムを表すフレームであるビートフレームとを表示画面に表示させるステップと、
前記表示されたキーフレームと対応するビートフレームとを指定する入力に基づいて、キーフレームとビートフレームとを対応付けるステップと、
前記対応付けられたキーフレームとビートフレームとに基づいて、前記ユーザビデオデータの映像における人体姿勢を追跡するステップと、
を実行させるためのコンピュータプログラム。
【請求項12】
コンピュータに、
前記教師ビデオデータからビートフレームを取得するステップをさらに実行させるための請求項11に記載のコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−48362(P2012−48362A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−188182(P2010−188182)
【出願日】平成22年8月25日(2010.8.25)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】