(57)【要約】【課題】人を撮像しながら実時間での人体姿勢推定処理を効率的に行うことを図る。【解決手段】ビデオフレームに写っている人のポーズを推定し、推定したポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示パネル上に表示する表示データを出力するポーズ追跡部１４と、感知データに基づいてユーザがどのような所定の操作を行ったのかを判断する操作判断部１１と、ポーズ修正開始の操作に応じて初期ポーズをビデオフレームの人物画像に重ね合わせて表示パネル上に表示する表示データを出力する初期ポーズ提示部１２と、ポーズ修正操作に応じて初期ポーズを修正するポーズ修正部１３と、を備え、ポーズ追跡部１４は、該修正結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対してポーズを推定する。【選択図】図１
2012098812.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮像してビデオデータを出力する撮像部と、
表示パネル上に表示データを表示すると共に、ユーザの操作を感知して感知データを出力するデバイス群と、
前記ビデオデータを記憶する記憶部と、
前記記憶部内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力するポーズ追跡部と、
前記感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断する操作判断部と、
ポーズ修正開始の操作に応じて、初期ポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力する初期ポーズ提示部と、
ポーズ修正操作に応じて、前記初期ポーズを修正するポーズ修正部と、を備え、
前記ポーズ追跡部は、前記ポーズ修正部が修正した結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定する、
ことを特徴とする人体姿勢推定装置。
【請求項２】
前記初期ポーズ提示部は、ポーズ修正開始の操作が行われた時刻から所定時間（Ｔｍｉｎ）だけ前のビデオフレームに対して前記ポーズ追跡部が推定した結果のポーズを、第１の初期ポーズとすることを特徴とする請求項１に記載の人体姿勢推定装置。
【請求項３】
前記初期ポーズ提示部は、前記第１の初期ポーズと、前記第１の初期ポーズのビデオフレームよりも所定時間だけ前のビデオフレームに対して前記ポーズ追跡部が推定した結果のポーズである第２の初期ポーズと、前記第１の初期ポーズのビデオフレームよりも所定時間（但し、Ｔｍｉｎ未満）だけ後のビデオフレームに対して前記ポーズ追跡部が推定した結果のポーズである第３の初期ポーズと、を前記表示パネル上に表示させて、ポーズを修正するときの初期ポーズを該表示した初期ポーズの中からユーザに選択させる、
ことを特徴とする請求項２に記載の人体姿勢推定装置。
【請求項４】
ポーズを全体的に修正する操作としてトランスレーションとローテーションとスケーリングとが定義され、
ポーズを部分的に修正する操作として末端関節の移動と中間関節の移動とが定義されている、
ことを特徴とする請求項１から３のいずれか１項に記載の人体姿勢推定装置。
【請求項５】
前記ポーズ修正部は、前記末端関節の移動の操作または前記中間関節の移動の操作が行われると、前記感知データが示す操作量を初期ポーズのビデオフレームの時刻における三次元空間上にインバースキネマティクス法を用いて逆マッピングして、ビデオフレームの画像上でジョイントを移動させる移動量を計算する、
ことを特徴とする請求項１から４のいずれか１項に記載の人体姿勢推定装置。
【請求項６】
前記ポーズ追跡部は、前記ポーズ修正部が修正した結果のポーズに基づいて推定した結果のポーズをビデオフレームの人物画像に重ね合わせて表示させる際に、キーフレームのみを再生する、又は、早送りで再生する、
ことを特徴とする請求項１から５のいずれか１項に記載の人体姿勢推定装置。
【請求項７】
前記デバイス群は、表示パネル上に表示データを表示すると共に、表示パネルへの１箇所又は同時に２箇所のタッチを感知して感知データを出力するマルチタッチパネルである、
ことを特徴とする請求項１から６のいずれか１項に記載の人体姿勢推定装置。
【請求項８】
撮像部が被写体を撮像してビデオデータを出力するステップと、
記憶部が前記ビデオデータを記憶するステップと、
ポーズ追跡部が、前記記憶部内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示パネル上に表示する表示データを出力するステップと、
操作判断部が、デバイス群がユーザの操作を感知して出力した感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断するステップと、
初期ポーズ提示部が、ポーズ修正開始の操作に応じて、初期ポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力するステップと、
ポーズ修正部が、ポーズ修正操作に応じて、前記初期ポーズを修正するステップと、
前記ポーズ追跡部が、前記ポーズ修正部が修正した結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定するステップと、
を含むことを特徴とする人体姿勢推定方法。
【請求項９】
コンピュータに、
撮像部が被写体を撮像したビデオデータを記憶する記憶部内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示パネル上に表示する表示データを出力するステップと、
デバイス群がユーザの操作を感知して出力した感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断するステップと、
ポーズ修正開始の操作に応じて、初期ポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力するステップと、
ポーズ修正操作に応じて、前記初期ポーズを修正するステップと、
前記初期ポーズを修正した結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定するステップと、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、単眼カメラで撮像したビデオから人体の三次元（３Ｄ）姿勢（ポーズ）を自動推定する方法が提案されている。さらに、ハードウェア性能の向上によって実時間での人体姿勢推定処理が可能になってきている。但し、実際には人体姿勢の推定誤りが発生するので、人手でその誤りを正すことが必要となる。非特許文献１には、データベースからポーズの潜在空間モデルを学習し、静止画像にポーズを手動で合わせる技術が開示されている。特許文献１には、マルチタッチパネルに対するタッチ操作に対して、アプリケーションに関するタッチイベントを定める技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２１１７０４号公報
【非特許文献】
【０００４】
【非特許文献１】Wei X, Chai J ,“Intuitive Interactive Human Character Posing with Millions of Example Poses”, IEEE Computer Graphics and Applications, 2010
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上述した非特許文献１に記載される従来技術では、人を撮像しながら実時間での人体姿勢推定処理を効率的に行うことが難しい。そこで、特許文献１に記載される技術を実時間での人体姿勢推定処理に応用して、ユーザが人体姿勢推定誤りを正すことができるようにすることが好ましい。
【０００６】
本発明は、このような事情を考慮してなされたもので、人を撮像しながら実時間での人体姿勢推定処理を効率的に行うことができる人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係る人体姿勢推定装置は、被写体を撮像してビデオデータを出力する撮像部と、表示パネル上に表示データを表示すると共に、ユーザの操作を感知して感知データを出力するデバイス群と、前記ビデオデータを記憶する記憶部と、前記記憶部内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力するポーズ追跡部と、前記感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断する操作判断部と、ポーズ修正開始の操作に応じて、初期ポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力する初期ポーズ提示部と、ポーズ修正操作に応じて、前記初期ポーズを修正するポーズ修正部と、を備え、前記ポーズ追跡部は、前記ポーズ修正部が修正した結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定する、ことを特徴とする。
【０００８】
本発明に係る人体姿勢推定装置において、前記初期ポーズ提示部は、ポーズ修正開始の操作が行われた時刻から所定時間（Ｔｍｉｎ）だけ前のビデオフレームに対して前記ポーズ追跡部が推定した結果のポーズを、第１の初期ポーズとすることを特徴とする。
【０００９】
本発明に係る人体姿勢推定装置において、前記初期ポーズ提示部は、前記第１の初期ポーズと、前記第１の初期ポーズのビデオフレームよりも所定時間だけ前のビデオフレームに対して前記ポーズ追跡部が推定した結果のポーズである第２の初期ポーズと、前記第１の初期ポーズのビデオフレームよりも所定時間（但し、Ｔｍｉｎ未満）だけ後のビデオフレームに対して前記ポーズ追跡部が推定した結果のポーズである第３の初期ポーズと、を前記表示パネル上に表示させて、ポーズを修正するときの初期ポーズを該表示した初期ポーズの中からユーザに選択させる、ことを特徴とする。
【００１０】
本発明に係る人体姿勢推定装置においては、ポーズを全体的に修正する操作としてトランスレーションとローテーションとスケーリングとが定義され、ポーズを部分的に修正する操作として末端関節の移動と中間関節の移動とが定義されている、ことを特徴とする。
【００１１】
本発明に係る人体姿勢推定装置において、前記ポーズ修正部は、前記末端関節の移動の操作または前記中間関節の移動の操作が行われると、前記感知データが示す操作量を初期ポーズのビデオフレームの時刻における三次元空間上にインバースキネマティクス法を用いて逆マッピングして、ビデオフレームの画像上でジョイントを移動させる移動量を計算する、ことを特徴とする。
【００１２】
本発明に係る人体姿勢推定装置において、前記ポーズ追跡部は、前記ポーズ修正部が修正した結果のポーズに基づいて推定した結果のポーズをビデオフレームの人物画像に重ね合わせて表示させる際に、キーフレームのみを再生する、又は、早送りで再生する、ことを特徴とする。
【００１３】
本発明に係る人体姿勢推定装置において、前記デバイス群は、表示パネル上に表示データを表示すると共に、表示パネルへの１箇所又は同時に２箇所のタッチを感知して感知データを出力するマルチタッチパネルである、ことを特徴とする。
【００１４】
本発明に係る人体姿勢推定方法は、撮像部が被写体を撮像してビデオデータを出力するステップと、記憶部が前記ビデオデータを記憶するステップと、ポーズ追跡部が、前記記憶部内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示パネル上に表示する表示データを出力するステップと、操作判断部が、デバイス群がユーザの操作を感知して出力した感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断するステップと、初期ポーズ提示部が、ポーズ修正開始の操作に応じて、初期ポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力するステップと、ポーズ修正部が、ポーズ修正操作に応じて、前記初期ポーズを修正するステップと、前記ポーズ追跡部が、前記ポーズ修正部が修正した結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定するステップと、を含むことを特徴とする。
【００１５】
本発明に係るコンピュータプログラムは、コンピュータに、撮像部が被写体を撮像したビデオデータを記憶する記憶部内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定し、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示パネル上に表示する表示データを出力するステップと、デバイス群がユーザの操作を感知して出力した感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断するステップと、ポーズ修正開始の操作に応じて、初期ポーズをビデオフレームの人物画像に重ね合わせて前記表示パネル上に表示する表示データを出力するステップと、ポーズ修正操作に応じて、前記初期ポーズを修正するステップと、前記初期ポーズを修正した結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定するステップと、を実行させるためのコンピュータプログラム。
これにより、前述の人体姿勢推定装置がコンピュータを利用して実現できるようになる。
【発明の効果】
【００１６】
本発明によれば、実時間での人体姿勢推定処理を効率的に行うことができるという効果が得られる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係る人体姿勢推定装置１の構成を示すブロック図である。
【図２】人体スケルトン型動きデータの定義例の概略図である。
【図３】本発明の一実施形態に係る人体姿勢推定処理のフローチャートである。
【図４】本発明の一実施形態に係る初期ポーズ表示画面１０００の構成例である。
【図５】本発明の一実施形態に係るポーズ修正操作判断処理のフローチャートである。
【図６】本発明の一実施形態に係る末端関節移動処理を説明するための概念図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照し、本発明の実施形態について説明する。
図１は、本発明の一実施形態に係る人体姿勢推定装置１の構成を示すブロック図である。図１において、人体姿勢推定装置１は、処理部２と撮像部３とマルチタッチパネル４と記憶部５を備える。処理部２は、操作判断部１１と初期ポーズ提示部１２とポーズ修正部１３とポーズ追跡部１４を備える。
【００１９】
撮像部３は、被写体を撮像してビデオデータを出力する。撮像部３から出力されたビデオデータは、記憶部５に格納される。マルチタッチパネル４は、表示パネル上に表示データを表示すると共に、表示パネルへのタッチを感知して感知データを出力する。マルチタッチパネル４は、表示パネルへの１箇所のタッチを感知することができると共に、表示パネルへの同時に複数のタッチを感知することができる。表示データは、処理部２からマルチタッチパネル４へ入力される。感知データは、マルチタッチパネル４から処理部２へ入力される。記憶部５は、ビデオデータ等、各種データを記憶する。処理部２は、記憶部５内のデータを用いて人体姿勢推定処理を行う。
【００２０】
操作判断部１１は、マルチタッチパネル４から入力された感知データに基づいて、ユーザがどのような所定の操作を行ったのかを判断する。初期ポーズ提示部１２は、ポーズを修正するときの初期ポーズをユーザに提示する処理を行う。又、初期ポーズ提示部１２は、初期ポーズを決定する処理を行う。
【００２１】
ポーズ修正部１３は、初期ポーズを用いてポーズを修正する処理を行う。ポーズ追跡部１４は、記憶部５内のビデオデータを用いて、ビデオに写っている人のポーズを推定して追跡する処理を行う。
【００２２】
図２は、人体スケルトン型動きデータの定義例の概略図である。本実施形態では、人体姿勢（ポーズ）の動きを表現するデータとして、人体スケルトン型動きデータを用いる。人体スケルトン型動きデータは、人の骨格を基に、骨及び骨の連結点（ジョイント）を用い、一ジョイントを根（ルート）とし、ルートからジョイント経由で順次連結される骨の構造を木（ツリー）構造として定義される。図２には、人体スケルトン型動きデータの定義の一部分のみを示している。図２において、ジョイント１００は腰の部分であり、ルートとして定義される。ジョイント１０１は左腕の肘の部分、ジョイント１０２は左腕の手首の部分、ジョイント１０３は右腕の肘の部分、ジョイント１０４は右腕の手首の部分、ジョイント１０５は左足の膝の部分、ジョイント１０６は左足の足首の部分、ジョイント１０７は右足の膝の部分、ジョイント１０８は右足の足首の部分、ジョイント１０９は鎖骨の部分、ジョイント１１０、１１１は肩の部分、ジョイント１１２は首の部分、ジョイント１１３、１１４は股関節の部分、である。
【００２３】
スケルトン型動きデータは、スケルトン型対象物の各ジョイントの動きを記録したデータであり、スケルトン型対象物としては人体や動物、ロボットなどが適用可能である。スケルトン型動きデータとしては、各ジョイントの位置情報や角度情報、速度情報、加速度情報などが利用可能である。ここでは、人体スケルトン型動きデータとして、人体スケルトンの角度情報と加速度情報を例に挙げて説明する。
【００２４】
人体スケルトン型角度情報データは、人の一連の動きを複数の姿勢（ポーズ）の連続により表すものであり、人の基本ポーズ（neutral pose）を表す基本ポーズデータと、実際の人の動きの中の各ポーズを表すポーズ毎のフレームデータとを有する。基本ポーズデータは、基本ポーズのときのルートの位置及び各ジョイントの位置、並びに各骨の長さなどの情報を有する。基本ポーズデータにより基本ポーズが特定される。フレームデータは、基本ポーズからの移動量をジョイント毎に表す。ここでは、移動量として角度情報を利用する。各フレームデータにより、基本ポーズに対して各移動量が加味された各ポーズが特定される。これにより、各フレームデータによって特定される各ポーズの連続により、人の一連の動きが特定される。なお、人体スケルトン型角度情報データは、人の動きをカメラ撮影した映像からモーションキャプチャ処理によって作成したり、或いは、キーフレームアニメーションの手作業によって作成したりすることができる。
【００２５】
人体スケルトン型加速度情報データは、人の各ジョイントの加速度をポーズ毎のフレームデータと複数のポーズの連続により表すものである。なお、人体スケルトン型加速度情報データは、加速度計で記録したり、映像や動きデータから算出したりすることができる。
【００２６】
以下、図３を参照して、図１に示す人体姿勢推定装置１の動作を説明する。図３は、本実施形態に係る人体姿勢推定処理のフローチャートである。
【００２７】
（ステップＳ１）
ポーズ追跡部１４は、記憶部５内のビデオデータを用いて、ビデオフレームに写っている人のポーズを推定し、推定したビデオフレームのポーズに基づいて該ビデオフレームよりも後のビデオフレームのポーズを推定する。これにより、ポーズ追跡部１４は、時間の流れに沿って、ビデオフレームに写っている人のポーズを追跡してゆく。
【００２８】
（ステップＳ２）
ポーズ追跡部１４は、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示する表示データを、マルチタッチパネル４へ出力する。これにより、マルチタッチパネル４の表示パネル上には、推定結果のポーズがビデオフレームの人物画像に重ね合わせられて表示される。又、ポーズ追跡部１４は、推定結果のポーズを、推定したビデオフレームに対応付けて記憶部５に格納する。又、ポーズ追跡部１４は、推定結果のポーズに対応付けて、当該推定結果のポーズに対応する「projection matrix」を記憶部５に格納する。「projection matrix」は、ポーズ推定処理の過程で得られたデータである。「projection matrix」によって、推定結果のポーズをビデオフレームの画像にマッピングすることができる。
【００２９】
（ステップＳ３）
操作判断部１１は、マルチタッチパネル４から入力された感知データに基づいて、ユーザがポーズ修正開始の操作を行ったか否かを判断する。
【００３０】
例えば、マルチタッチパネル４の表示パネル上にポーズ修正開始を示す表示部を設けておき、ユーザが当該表示部をタッチしたことを示す感知データがマルチタッチパネル４から入力された時に、操作判断部１１は、ユーザがポーズ修正開始の操作を行ったと判断する。一方、マルチタッチパネル４の表示パネル上に推定結果のポーズを表示してから所定期間経過しても、ユーザが当該表示部をタッチしたことを示す感知データがマルチタッチパネル４から入力されなかった時に、操作判断部１１は、ユーザがポーズ修正開始の操作を行わなかったと判断する。
【００３１】
ステップＳ３の判断の結果、ポーズ修正開始の操作が行われたと判断した場合にはステップＳ４に進み、ポーズ修正開始の操作が行われなかったと判断した場合にはステップＳ１に戻る。
【００３２】
（ステップＳ４）
初期ポーズ提示部１２は、初期ポーズをビデオフレームの人物画像に重ね合わせて表示する表示データを、マルチタッチパネル４へ出力する。これにより、マルチタッチパネル４の表示パネル上には、初期ポーズがビデオフレームの人物画像に重ね合わせられて表示される。
【００３３】
図４は、本実施形態に係る初期ポーズ表示画面１０００の構成例である。本実施形態では、複数の初期ポーズを表示し、表示された複数の初期ポーズの中から使用する初期ポーズをユーザが選択できるようにする。図４において、初期ポーズ表示画面１０００は、第１の初期ポーズ２１０（デフォルトの初期ポーズとする）を表示する画面１１００と、第２の初期ポーズ２２０を表示する画面１２００と、第３の初期ポーズ２３０を表示する画面１３００と、第４の初期ポーズ２４０を表示する画面１４００と、から構成される。
【００３４】
デフォルトの第１の初期ポーズ２１０を表示する画面１１００は、他の初期ポーズ２２０，２３０，２４０を表示する各画面１２００，１３００，１４００よりも、画面サイズを大きくしている。又、デフォルトの第１の初期ポーズ２１０を表示する画面１１００は、他の初期ポーズ２２０，２３０，２４０を表示する各画面１２００，１３００，１４００よりも、初期ポーズ表示画面１０００内の中心に近く配置している。
【００３５】
各画面１１００，１２００，１３００，１４００において、各初期ポーズ２１０，２２０，２３０，２４０は、ビデオフレームの人物画像２００に重ね合わせられて表示される。
【００３６】
人物画像２００は、ポーズ修正開始の操作が行われた時刻のビデオフレームの画像である。デフォルトの第１の初期ポーズ２１０は、ポーズ修正開始の操作が行われた時刻から所定時間Ｔｍｉｎだけ前のビデオフレームに対してポーズ追跡部１４が推定した結果のポーズである。第２の初期ポーズ２２０は、デフォルトの第１の初期ポーズ２１０のビデオフレームよりも所定時間Ｔｉｎｔだけ前のビデオフレームに対してポーズ追跡部１４が推定した結果のポーズである。第３の初期ポーズ２３０は、デフォルトの第１の初期ポーズ２１０のビデオフレームよりも所定時間（Ｔｉｎｔの２倍の時間）だけ前のビデオフレームに対してポーズ追跡部１４が推定した結果のポーズである。第４の初期ポーズ２４０は、デフォルトの第１の初期ポーズ２１０のビデオフレームよりも所定時間Ｔｉｎｔだけ後のビデオフレームに対してポーズ追跡部１４が推定した結果のポーズである。但し、所定時間Ｔｉｎｔは、所定時間Ｔｍｉｎ未満である。
【００３７】
図３に説明を戻す。
（ステップＳ５）
初期ポーズ提示部１２は、ポーズを修正するときの初期ポーズを決定する。このとき、上記図４に示すようにユーザに対して提示した複数の初期ポーズ２１０，２２０，２３０，２４０の中からユーザが一つの初期ポーズを選択した場合には、選択された初期ポーズに決定する。ユーザは選択したい初期ポーズの表示画面をタッチすることによって、初期ポーズ選択操作を行う。一方、マルチタッチパネル４の表示パネル上に複数の初期ポーズ２１０，２２０，２３０，２４０を表示してから所定期間経過しても、初期ポーズ選択操作が行われなかった時には、デフォルトの初期ポーズ２１０に決定する。
【００３８】
初期ポーズ提示部１２は、決定した初期ポーズを表示する画面のみをマルチタッチパネル４の表示パネル上に表示させる。このマルチタッチパネル４の表示パネル上には、決定された初期ポーズがビデオフレームの人物画像２００に重ね合わせられて表示される。
【００３９】
（ステップＳ６）
ポーズ修正部１３は、ステップＳ５で決定された初期ポーズを用いたポーズ修正処理を開始する。ポーズ修正部１３は、ポーズ修正処理の開始により、初期ポーズに対応する「projection matrix」を記憶部５から取得する。
【００４０】
（ステップＳ７）
操作判断部１１は、マルチタッチパネル４から入力された感知データに基づいて、ユーザが行ったポーズ修正操作を判断する。
【００４１】
（ステップＳ８）
ポーズ修正部１３は、操作判断部１１が判断した結果のポーズ修正操作に応じて、初期ポーズを修正する。ポーズ修正部１３は、初期ポーズを修正した結果のポーズをビデオフレームの人物画像２００に重ね合わせて表示する表示データを、マルチタッチパネル４へ出力する。これにより、マルチタッチパネル４の表示パネル上には、初期ポーズを修正した結果のポーズがビデオフレームの人物画像２００に重ね合わせられて表示される。
【００４２】
（ステップＳ９）
操作判断部１１は、マルチタッチパネル４から入力された感知データに基づいて、ユーザがポーズ修正終了の操作を行ったか否かを判断する。
【００４３】
例えば、マルチタッチパネル４の表示パネル上にポーズ修正終了を示す表示部を設けておき、ユーザが当該表示部をタッチしたことを示す感知データがマルチタッチパネル４から入力された時に、操作判断部１１は、ユーザがポーズ修正終了の操作を行ったと判断する。一方、マルチタッチパネル４の表示パネル上に初期ポーズを修正した結果のポーズを表示してから所定期間経過しても、ユーザが当該表示部をタッチしたことを示す感知データがマルチタッチパネル４から入力されなかった時に、操作判断部１１は、ユーザがポーズ修正終了の操作を行わなかったと判断する。
【００４４】
ステップＳ９の判断の結果、ポーズ修正終了の操作が行われたと判断した場合にはステップＳ１０に進み、ポーズ修正終了の操作が行われなかったと判断した場合にはステップＳ７に戻る。
【００４５】
（ステップＳ１０）
処理部２は、人体姿勢推定処理の終了を判断する。この結果、人体姿勢推定処理の終了であると判断した場合には図３の処理を終了し、人体姿勢推定処理の終了ではないと判断した場合にはステップＳ１に戻る。
【００４６】
人体姿勢推定処理を継続する場合（ステップＳ１０、ＮＯ）、ポーズ追跡部１４は、修正結果のポーズに基づいて、ポーズ修正開始の操作が行われた時刻以降のビデオフレームに対して、ポーズを推定する。ポーズ修正開始の操作が行われた時刻以降のビデオフレームは、記憶部５に格納されている。このとき、ポーズ追跡部１４は、推定結果のポーズをビデオフレームの人物画像に重ね合わせて表示させる際に、キーフレームのみを再生（フレームを間引いて再生）したり、又は、早送りで再生したりしてもよい。これにより、人を撮像しながら人体姿勢推定処理を実時間処理しているときに、ポーズ修正による時間的なずれ（遅れ）を取り戻して、リアルタイムで推定結果をユーザに提示することができるようになる。
【００４７】
次に、本実施形態に係るポーズ修正操作判断処理（図３のステップＳ７）を説明する。
【００４８】
本実施形態では、大きく分けて３種類のポーズ修正操作（操作１，２，３を定義する。
［操作１：ポーズの全体修正］
操作１は、ポーズを全体的に修正する操作である。操作１として、具体的に３つの操作「トランスレーション（translation）」，「ローテーション（rotation）」，「スケーリング（scaling）」を定義する。
［操作２：ポーズの部分修正］
操作１は、ポーズを部分的に修正する操作である。操作２として、具体的に２つの操作「末端関節の移動」，「中間関節の移動」を定義する。
［操作３］
操作３として、具体的に２つの操作「アンドウ（undo）」，「ノーオペレーション（no operation）」を定義する。
【００４９】
以下、図５を参照して本実施形態に係るポーズ修正操作判断処理を説明する。図５は、本実施形態に係るポーズ修正操作判断処理のフローチャートである。
（ステップＳ１０１）
操作判断部１１は、感知データが同時に２箇所のタッチを示しているか否かを判断する。この結果、感知データが同時に２箇所のタッチを示していると判断した場合にはステップＳ１０２へ進み、感知データが同時に２箇所のタッチを示していないと判断した場合にはステップＳ１０３へ進む。
【００５０】
（ステップＳ１０２）
操作判断部１１は、操作１に属する「スケーリング（scaling）」の操作が行われたと判断する。
【００５１】
（ステップＳ１０３）
操作判断部１１は、感知データがダブルクリックを示しているか否かを判断する。この結果、感知データがダブルクリックを示していると判断した場合にはステップＳ１０４へ進み、感知データがダブルクリックを示していないと判断した場合にはステップＳ１０５へ進む。
【００５２】
（ステップＳ１０４）
操作判断部１１は、操作３に属する「アンドウ（undo）」の操作が行われたと判断する。
【００５３】
（ステップＳ１０５）
操作判断部１１は、感知データが１箇所のタッチを示しているか否かを判断する。この結果、感知データが１箇所のタッチを示していると判断した場合にはステップＳ１０６へ進み、感知データが１箇所のタッチを示していないと判断した場合にはステップＳ１０９へ進む。
【００５４】
（ステップＳ１０６）
操作判断部１１は、感知データがドラッグを示しているか否かを判断する。この結果、感知データがドラッグを示していると判断した場合にはステップＳ１０７へ進み、感知データがドラッグを示していないと判断した場合にはステップＳ１０８へ進む。
【００５５】
（ステップＳ１０７）
操作判断部１１は、操作２に属する「末端関節の移動」の操作が行われたと判断する。
【００５６】
（ステップＳ１０８）
操作判断部１１は、操作３に属する「ノーオペレーション（no operation）」の操作が行われたと判断する。
【００５７】
（ステップＳ１０９）
操作判断部１１は、感知データがドラッグを示しているか否かを判断する。この結果、感知データがドラッグを示していると判断した場合にはステップＳ１１０へ進み、感知データがドラッグを示していないと判断した場合にはステップＳ１０８へ進む。
【００５８】
（ステップＳ１１０）
操作判断部１１は、感知データが示しているドラッグ位置を判断する。この結果、ドラッグ位置が初期ポーズのルートに近いと判断した場合にはステップＳ１１１へ進み、ドラッグ位置が初期ポーズのルートに近くないと判断した場合にはステップＳ１１４へ進む。
【００５９】
（ステップＳ１１１）
操作判断部１１は、感知データが示しているドラッグ移動が直線上の移動であるか否かを判断する。この結果、ドラッグ移動が直線上の移動であると判断した場合にはステップＳ１１２へ進み、ドラッグ移動が直線上の移動ではないと判断した場合にはステップＳ１１３へ進む。
【００６０】
（ステップＳ１１２）
操作判断部１１は、操作１に属する「トランスレーション（translation）」の操作が行われたと判断する。
【００６１】
（ステップＳ１１３）
操作判断部１１は、操作１に属する「ローテーション（rotation）」の操作が行われたと判断する。
【００６２】
（ステップＳ１１４）
操作判断部１１は、操作２に属する「中間関節の移動」の操作が行われたと判断する。
【００６３】
次に、本実施形態に係るポーズ修正処理（図３のステップＳ８）を説明する。以下、各ポーズ修正操作に対応するポーズ修正処理を順次説明する。
【００６４】
［操作１：トランスレーション（translation）］
ポーズ修正部１３は、マルチタッチパネル４の感知データが示すドラッグ移動量を用いて、初期ポーズに対するトランスレーション（translation）処理を行う。具体的には、ドラッグ移動量に対応する移動量だけ、初期ポーズをビデオフレームの画像上で移動させる。このとき、ドラッグ移動量を初期ポーズのビデオフレームの時刻における３Ｄ空間上に逆マッピングして、ビデオフレームの画像上で初期ポーズを移動させる移動量を計算する。
【００６５】
［操作１：ローテーション（rotation）］
ポーズ修正部１３は、マルチタッチパネル４の感知データが示すドラッグ移動量およびドラッグ軌跡を用いて、初期ポーズに対するローテーション（rotation）処理を行う。具体的には、ドラッグ移動量に対応する回転量だけ、ドラッグ軌跡に対応する回転方向へ、初期ポーズをビデオフレームの画像上で回転させる。このとき、ドラッグ移動量およびドラッグ軌跡を初期ポーズのビデオフレームの時刻における３Ｄ空間上に逆マッピングして、ビデオフレームの画像上で初期ポーズを回転させる回転量および回転方向を計算する。
【００６６】
［操作１：スケーリング（scaling）］
ポーズ修正部１３は、マルチタッチパネル４の感知データが示す同時にタッチされた２箇所の移動量を用いて、初期ポーズに対するスケーリング（scaling）処理を行う。具体的には、同時にタッチされた２箇所の移動量に対応する移動量だけ、初期ポーズをビデオフレームの画像上で拡大又は縮小させる。このとき、同時にタッチされた２箇所の移動量を初期ポーズのビデオフレームの時刻における３Ｄ空間上に逆マッピングして、ビデオフレームの画像上で初期ポーズを撮像部３の撮像方向と直交する方向で拡大又は縮小させる量を計算する。
【００６７】
［操作２：末端関節の移動］
ポーズ修正部１３は、マルチタッチパネル４の感知データが示すタッチ位置およびドラッグ移動量を用いて、初期ポーズに対する末端関節移動処理を行う。具体的には、初期ポーズ中のジョイント（骨の連結点）のうちタッチ位置に対応するジョイントを固定関節に設定する。次いで、固定関節のジョイントを固定して、ドラッグ移動量に対応する移動量だけ、初期ポーズ中の末端のジョイント（末端関節のジョイント）をビデオフレームの画像上で移動させる。このとき、ドラッグ移動量を初期ポーズのビデオフレームの時刻における３Ｄ空間上にインバースキネマティクス（逆運動学：ＩＫ（inverse kinematics））法を用いて逆マッピングして、ビデオフレームの画像上でジョイントを移動させる移動量を計算する。又、固定関節以外のジョイントは関節の角度（ジョイントで連結される骨と骨の角度）を維持する。
【００６８】
図６は、本実施形態に係る末端関節移動処理を説明するための概念図である。図６において、ｓは初期ポーズ中の固定関節のジョイントである。ｔｇは初期ポーズ中の移動させる関節のジョイントである。ｅは初期ポーズ中のジョイントｓとジョイントｔｇの間にあるジョイントである。ジョイントｓとジョイントｅ間の骨の長さはＬ１である。ジョイントｔｇとジョイントｅ間の骨の長さはＬ２である。
【００６９】
本実施形態では、インバースキネマティクス法を用いて、マルチタッチパネル４の表示パネル上での２次元のドラッグ移動量から、３次元の初期ポーズにおける移動量を計算する。この移動量計算処理では、インバースキネマティクス法を用いて、時間的な関連性と周期性、最小エナジー、関節角度範囲の制限下で３D空間の変化量を推定し、推定結果の変化量から、ビデオフレームの画像上でジョイントを移動させる移動量を計算する。
【００７０】
図６に示されるように、ジョイントｅが動くことができる軌跡３００を計算する。軌跡３００は、中心ｃおよび半径Ｒから描かれる楕円形状となる。ジョイントｓは静止しているので、ジョイントｅの関節の角度を固定すると、ジョイントｓからの骨の長さＬ１とジョイントｔｇからの骨の長さＬ２とによって、ジョイントｔｇの移動先の位置に応じたジョイントｅの軌跡３００が決まる。ジョイントｔｇの移動先の位置は、２次元のドラッグ移動量から３次元の移動量を計算して決定する。そして、ジョイントｅの軌跡３００の中でジョイントｅの元の位置（図６中、ｅ’で示す）から最短距離の位置（図６中、ｅで示す）を、ジョイントｅの移動先の位置に決める。
【００７１】
［操作２：中間関節の移動］
ポーズ修正部１３は、マルチタッチパネル４の感知データが示すドラッグ位置およびドラッグ移動量を用いて、初期ポーズに対する中間関節移動処理を行う。具体的には、初期ポーズ中のジョイント（骨の連結点）のうちドラッグ位置に対応するジョイントを移動させる関節（移動関節）に設定する。又、移動関節のジョイントと骨で接続されるジョイントのうちルートに近い方のジョイントを親関節に設定する。次いで、親関節のジョイントを固定して、ドラッグ移動量に対応する移動量だけ、移動関節のジョイントをビデオフレームの画像上で移動させる。このとき、ドラッグ移動量を初期ポーズのビデオフレームの時刻における３Ｄ空間上にインバースキネマティクス法を用いて逆マッピングして、ビデオフレームの画像上でジョイントを移動させる移動量を計算する。又、親関節以外のジョイントは関節の角度を維持する。
【００７２】
［操作３：アンドウ（undo）］
ポーズ修正部１３は、本アンドウ（undo）操作の直前のポーズ修正操作を行う前のポーズに戻す。このため、修正後のポーズは、少なくとも次のポーズ修正操作が行われるまでは記憶部５に保持しておく。なお、本アンドウ（undo）操作に該当する直前のポーズ修正操作が無い場合には、特に処理を行わない。
【００７３】
［操作３：ノーオペレーション（no operation）］
ポーズ修正部１３は、特に処理を行わない。
【００７４】
上述した実施形態によれば、人を撮像しながら実時間で人体姿勢推定処理を行っているときに、ユーザは、マルチタッチパネル４の表示パネル上で、タッチ操作によって素早く人体姿勢推定誤りを正すことができる。これにより、人を撮像しながら実時間での人体姿勢推定処理を効率的に行うことができるという効果が得られる。
【００７５】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、人体姿勢推定装置１は、カメラ付の携帯電話機など、カメラ付の携帯端末に適用することができる。
【００７６】
また、上述の実施形態では、表示パネル上に表示データを表示すると共に、ユーザの操作を感知して感知データを出力するデバイス群の一例として、マルチタッチパネルを利用したが、これに限定されない。例えば、表示パネル（表示手段）とタッチパネル（操作手段）とが別個の装置であってもよい。又は、操作手段として、マウス等のポインティングデバイスやキーボードを利用するようにしてもよい。この場合には、ポインティングデバイスやキーボードに対応した専用の操作を定義する。
【００７７】
また、図３に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、人体姿勢推定処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disk）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００７８】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００７９】
１…人体姿勢推定装置、２…処理部、３…撮像部、４…マルチタッチパネル、５…記憶部、１１…操作判断部、１２…初期ポーズ提示部、１３…ポーズ修正部、１４…ポーズ追跡部
【図１】
2012098812.tif 000003
【図２】
2012098812.tif 000004
【図３】
2012098812.tif 000005
【図４】
2012098812.tif 000006
【図５】
2012098812.tif 000007
【図６】
2012098812.tif 000008