情報処理装置および情報処理方法
【課題】人間の複雑な動作を簡易な装備で正確に検出することは困難である。
【解決手段】動作検出部28の位置データ取得部52は、画像取得部20が取得した各時刻における画像フレーム内での、ユーザが保持する発光デバイス18の発光部6の像の位置データと、追跡処理部26による視覚追跡の結果推定された各時刻の頭部輪郭の曲線データを取得する。履歴記憶部56は、発光部6の像の位置データと頭部輪郭の曲線データを蓄積し履歴として記憶する。判定基準記憶部58は、発光部6の像と頭部輪郭の曲線との相対位置の時間変化から、所定の動作がなされたと判定する基準を記憶する。動作判定部54は、当該判定基準に照らし、実際のデータに基づき動作がなされたか否かを判定する。
【解決手段】動作検出部28の位置データ取得部52は、画像取得部20が取得した各時刻における画像フレーム内での、ユーザが保持する発光デバイス18の発光部6の像の位置データと、追跡処理部26による視覚追跡の結果推定された各時刻の頭部輪郭の曲線データを取得する。履歴記憶部56は、発光部6の像の位置データと頭部輪郭の曲線データを蓄積し履歴として記憶する。判定基準記憶部58は、発光部6の像と頭部輪郭の曲線との相対位置の時間変化から、所定の動作がなされたと判定する基準を記憶する。動作判定部54は、当該判定基準に照らし、実際のデータに基づき動作がなされたか否かを判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理技術に関し、特にユーザの入力に応じた処理を行うためのユーザインターフェースを含む情報処理装置およびそこで実行される情報処理方法に関する。
【背景技術】
【0002】
近年、ゲーム装置や電化製品などを含む電子機器や情報処理装置は、その機能が著しく高度化している。それに伴い、ユーザインターフェースによってユーザが行うことのできる入力体系は複雑化している。そのような複雑な入力体系にあっても容易な入力が可能となるように、ユーザインターフェースには様々な工夫がなされてきた。例えば、複数の指示入力ボタンを備えたコントローラやアナログスティックなどのほか、ユーザをリアルタイムに撮像してその動きを検出し、処理内容や表示画面に反映させる技術が提案されている。
【0003】
具体的には、ユーザの動きを検出するため、撮像画像をパターンマッチングする方法や、ユーザが保持するコントローラやユーザ自身に取り付けた発光体からの光の位置変化を取得する方法などが提案されている(例えば特許文献1、2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−216955号公報
【特許文献2】WO 2007/050885 A2公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のようにユーザの動きを入力情報として取得する技術においては、より自然な動きを精度よく、かつ高速に判別することが求められる。ところが複雑な動きにも対応できる装置を実現しようとすると、必要な装備が増えてユーザにかかる手間や製造コストが増大したり、計算コストが増大し満足する応答性能が得られないことがあり得る。
【0006】
本発明はこのような課題に鑑みてなされたものであり、その目的は、複雑な動きを容易に検出することのできるユーザインターフェースを含む情報処理技術を提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様は情報理装置に関する。この情報処理装置は、マーカーを装備したユーザの動きを動画像として撮像する撮像装置と、撮像装置が撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する追跡処理部と、各画像フレームにおける、マーカーの像と追跡処理部が推定したユーザの輪郭の相対位置を逐次記憶する履歴記憶部と、履歴記憶部が記憶した相対位置の時間変化を、あらかじめ動作ごとに設定した第一の基準と照合することにより、当該動作がなされたか否かを判定する動作判定部と、動作判定部が動作がなされたと判定したとき、当該動作に対応した処理を行い出力データを生成する出力データ生成部と、を備えることを特徴とする。
【0008】
ここで「マーカー」とは、あらかじめ決められた色、形状を有する物体であってそれを装備したユーザの体の部位の位置を表す物である。マーカーは単一であっても複数であってもよく、それを装備するための機構は限定されない。例えば棒の先にマーカーを備えた物をユーザが持つ場合、マーカーをユーザに貼付する場合、マーカーを貼付した衣類や装着物をユーザが身につける場合などのいずれでもよい。
【0009】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、マーカーを装備したユーザの動きを動画像として撮像するステップと、撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定するステップと、各画像フレームにおける、マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させるステップと、メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定するステップと、動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成するステップと、を含むことを特徴とする。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、人の動作を利用して多様な処理を精度よく行うことができる。
【図面の簡単な説明】
【0012】
【図1】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図2】発光デバイスの構成を示す図である。
【図3】人物を追跡対象とした場合の視覚追跡手法を説明するための図である。
【図4】パーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。
【図5】本実施の形態における情報処理装置の構成を詳細に示す図である。
【図6】本実施の形態における追跡処理部の構成を詳細に示す図である。
【図7】本実施の形態における動作検出部の構成を詳細に示す図である。
【図8】本実施の形態における情報処理の例を説明する概念図である。
【図9】図8に示したアプリケーションにおいて動作検出部と出力データ生成部が行う処理の例を説明する図である。
【図10】ユーザ自体の傾きが大きいときの動作の判定基準を説明するため図である。
【図11】本実施の形態における情報処理の別の例において表示する画像例を示す図である。
【図12】本実施の形態においてユーザの動作をマウスの代替手段とした場合の動作の割り当て例を説明する図である。
【図13】本実施の形態においてユーザの動作を反映して動くオブジェクトを表示するための情報処理装置の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0013】
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、発光デバイス18、発光デバイスを保持するユーザ1および当該発光デバイス18からの光を撮像する撮像装置12、ユーザの動作を検出しそれに応じた情報処理を行う情報処理装置14、情報処理装置が処理した結果得られた画像データを出力する表示装置16を含む。
【0014】
情報処理装置14と、撮像装置12あるいは表示装置16との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいは撮像装置12、情報処理装置14、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置12は必ずしも表示装置16の上に搭載されていなくてもよい。ユーザ1は情報処理装置14で処理される内容によって複数でもよく、発光デバイス18もまた複数でよい。
【0015】
撮像装置12は発光デバイス18、ユーザ1を含む画像のデータを、所定のフレームレートで取得する。取得した動画像データは情報処理装置14に入力される。情報処理装置14は、撮像装置12から取得した動画像データからユーザ1の頭部輪郭および発光デバイス18からの光の位置を取得し、その相対位置の時間変化によってユーザの動作を検出する。ユーザの頭部の動きを取得する際は、後に詳述する視覚追跡技術によって、ユーザの肩の稜線の位置も取得する。そして肩の稜線と、ユーザが手にした発光デバイス18からの光との位置関係により、ユーザの腕に係る多様な動作を判別する。表示装置16は、情報処理装置14がユーザ1の動作を検出した結果を反映させて生成した画像データを取得し、画像として出力する。
【0016】
なお動作を検出したあと、それを利用して情報処理装置14が実行する処理は様々考えられ、その内容は限定されない。また本実施の形態では頭部および手の動きに着目して、上半身の動きを検出する態様を述べるが、足などの下半身、または体全体を用いた動作などでも、発光デバイス18の装着位置や追跡処理に用いるテンプレート形状を変化させることにより同様に検出できる。また、あらかじめ定めた色や形状を有し、画像に写る他の物と区別して認識が可能なマーカーであれば、発光せずとも発光デバイス18に代えることができる。
【0017】
図2は発光デバイス18の構成を示している。発光デバイス18は、発光部6およびハンドル8を含む。発光部6は内部に発光ダイオードや電球など一般的な発光体を備えた、光透過性を有する樹脂などで形成される球体であり、発光している状態では、発光部6全体が光る。ハンドル8はユーザが手にする部分であり、図示はしないが、必要に応じてオン/オフボタンなどの入力ボタンを備えてもよい。また、情報処理装置14と有線、あるいは無線で情報を送受する通信手段を備えてもよい。この場合、例えば複数のユーザに対し異なる発光色を割り当てたり、処理の進捗によって発光色を変化させたりすることができる。
【0018】
さらにハンドル8の内部にジャイロセンサ(図示せず)を備え、ユーザの頭部輪郭および発光部6の位置に加え、ユーザの動作を検出する際の情報として利用してもよい。ジャイロセンサの他、加速度センサ、地磁気センサなどを備えてもよい。なお発光デバイス18は、ユーザが身につけて発光すれば、その形状は図2に示したものに限らない。また発光部6の発光に代わり赤外線などの不可視光線を利用してもよい。この場合、撮像装置12の他に不可視光線を検出する装置を設け、当該光線の位置座標を頭部輪郭の追跡を行う為の撮像画像内の座標系へ投影することによって、同様の動作検出を行うことができる。
【0019】
次に情報処理装置14が行う、ユーザ1の動作の検出処理について説明する。まず、肩の稜線を含む頭部輪郭の動きを取得するため、パーティクルフィルタを用いた視覚追跡処理を、撮像装置12が撮像したユーザ1を含む画像に対して実行する。頭部輪郭の視覚追跡は、動画像の各画像フレームの頭部輪郭を時間発展的に推定していく技術である。
【0020】
本実施の形態では上述のとおり、「人間の動作」という時間幅を有する行為を入力として利用する。撮像対象を認識する技術として一般的に用いられるパターンマッチングは基本的に静止画に対する処理であり、それを時間変化の検出に利用するということは、結局、複数の静止画についての検出結果をつなげていくことに他ならない。このとき、基本的には前の画像フレームとの関連性を考慮しないため、複数の人が画像に含まれていたり人が移動したりといった状況の変化が考えられるような有限の時間で発生した事象を検出するときは誤差を含みやすい。本実施の形態によれば、頭部輪郭の追跡処理自体が時間発展的であるため、前の画像フレームとの関連性から個々人の動きを精度よく捉えることができる。
【0021】
図3は人物を追跡対象とした場合の視覚追跡手法を説明するための図である。人物画像150は撮像装置12が撮像した動画像の画像ストリームを構成する画像フレームのひとつであり、追跡対象である人物152が写っている。当該人物152が、図1におけるユーザ1に対応する。
【0022】
この人物152の動きを追跡するために、人物152の頭部輪郭の形状を近似するΩ形の曲線154を既知の表現で記述する。一方、人物152を含む人物画像150にはエッジ抽出処理を施し、エッジ画像を取得しておく。そして曲線154を規定するパラメータを変化させることにより当該曲線154を並進、伸縮、回転させて、その近傍にあるエッジを探索することにより、人物152の頭部輪郭と最もマッチすると推定されるパラメータの値を特定する。以上の処理をフレームごとに繰り返すことにより人物152の追跡が進捗する。ここでエッジとは一般的には画像の濃度や色に急な変化を有する箇所のことである。
【0023】
規定するパラメータの値を様々にした曲線154と人物152の頭部輪郭とのマッチングを行うために、パーティクルフィルタによる確率分布予測技術を導入する。すなわち、ひとつ前のフレームにおけるパラメータ空間上の対象物の確率分布に応じて曲線154のサンプリング数を増減させ、追跡候補の絞り込みを行う。これにより存在確率の高い部分に対しては重点的に探索を行うことができ、精度のよいマッチングが効率的に行える。
【0024】
対象物の輪郭に着目した追跡に対するパーティクルフィルタの適用手法は、例えば非特許文献(ICondensation: Unifying low-level and high-level tracking in a stochastic framework, Michael Isard and Andrew Blake, Proc 5th European Conf. Computer Vision, 1998)に詳述されている。ここでは本実施の形態に係る点に着目して説明する。
【0025】
まずΩ形の曲線154を、Bスプライン曲線で記述する。Bスプライン曲線はn個の制御点(Q0,・・・,Qn)とn個のノット(s0,・・・,sn)とから定義される。そして基本となる曲線形状、この場合はΩ形の曲線となるように、それらのパラメータをあらかじめ設定しておく。このときの設定によって得られる曲線を以後、テンプレートQtと呼ぶ。なお、図3で示した人物画像150における人物152の追跡を行う場合は、テンプレートQtはΩ形であるが、その形状は追跡対象によって変化させる。すなわち追跡対象がボールであれば円形、手のひらであれば手の形状などとなる。
【0026】
次にテンプレートの状態を変化させるための変換パラメータとして、形状空間ベクトルxを準備する。形状空間ベクトルxは以下のような6つのパラメータで構成される。
【0027】
【数1】
【0028】
ここで(shiftx,shifty)は(x,y)方向への並進量、(extendx,extendy)は倍率、θは回転角である。そして形状空間ベクトルxをテンプレートQtに作用させるための作用行列Wを用いると、変形後の曲線、すなわち候補曲線Qは以下のように記述できる。
【0029】
【数2】
【0030】
式2を用いれば、形状空間ベクトルxを構成する6つのパラメータを適宜変化させることにより、テンプレートを並進、伸縮、回転させることができ、組み合わせによって候補曲線Qを種々変化させることができる。
【0031】
そして、制御点、およびノットの間隔といったテンプレートQtのパラメータや、形状空間ベクトルxを構成する6つのパラメータを変化させることによって表現される複数の候補曲線について、各ノットの近傍にある人物152のエッジを探索する。その後、エッジとの距離などから各候補曲線の尤度を求めることにより、形状空間ベクトルxを構成する6つのパラメータで定義される6次元空間における確率密度分布を推定する。
【0032】
図4はパーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。同図では理解を簡単にするために、形状空間ベクトルxを構成する6つのパラメータのうち、あるパラメータx1の変化を横軸に表しているが、実際には6次元空間において同様の処理が行われる。ここで確率密度分布を推定したい画像フレームが時刻tの画像フレームであるとする。
【0033】
まず、時刻tの画像フレームのひとつ前のフレームである時刻t−1の画像フレームにおいて推定された、パラメータx1軸上の確率密度分布を用いて(S10)、時刻tにおけるパーティクルを生成する(S12)。それまでにフィルタリングを行い、すでにパーティクルが存在する場合は、その分裂、および消滅を決定する。S10において表した確率密度分布は、パラメータ空間上の座標に対応して離散的に求められたものであり、円が大きいほど確率密度が高いことを表している。
【0034】
パーティクルはサンプリングするパラメータx1の値とサンプリング密度とを実体化したものであり、例えば時刻t−1において確率密度が高かったパラメータx1の領域は、パーティクル密度を高くすることで重点的にサンプリングを行い、確率密度の低かった範囲はパーティクルを少なくすることでサンプリングをあまり行わない。これにより、例えば人物152のエッジ近傍において候補曲線を多く発生させて、効率よくマッチングを行う。
【0035】
次に所定の運動モデルを用いて、パーティクルをパラメータ空間上で遷移させる(S14)。所定の運動モデルとは例えば、ガウシアン型運動モデル、自己回帰予測型運動モデルなどである。前者は、時刻tにおける確率密度は時刻t−1における各確率密度の周囲にガウス分布している、とするモデルである。後者は、サンプルデータから取得した2次以上の自己回帰予測モデルを仮定する手法で、例えば人物152がある速度で等速運動をしているといったことを過去のパラメータの変化から推定する。図4の例では、自己回帰予測型運動モデルによりパラメータx1の正方向への動きが推定され、各パーティクルをそのように遷移させている。
【0036】
次に、各パーティクルで決定される候補曲線の近傍にある人物152のエッジを、時刻tのエッジ画像を用いて探索することにより、各候補曲線の尤度を求め、時刻tにおける確率密度分布を推定する(S16)。前述のとおり、このときの確率密度分布はS16に示すように、真の確率密度分布400を離散的に表したものになる。以降、これを繰り返すことにより、各時刻における確率密度分布がパラメータ空間において表される。例えば確率密度分布が単峰性であった場合、すなわち追跡対象が唯一であった場合は、得られた確率密度を用いて各パラメータの値に対し重み付けした和を最終的なパラメータとすることにより、追跡対象の輪郭と推定される曲線が得られることになる。
【0037】
S16において推定される時刻tにおける確率密度分布p(xti)は以下のように計算される。
【0038】
【数3】
【0039】
ここでiはパーティクルに一意に与えられた番号、p(xti|xti, ut-1)は所定の運動モデル、p(yt|xti)は尤度である。式3で得られる確率密度分布は、形状空間ベクトルの各パラメータに対して得られる。したがって当該確率密度分布でパーティクルの加重平均を求めることにより、各時刻の形状空間ベクトルが推定できる。
【0040】
図5は情報処理装置14の構成を詳細に示している。情報処理装置14は、撮像装置12から入力される入力画像データを取得する画像取得部20、上述の視覚追跡処理を実行する追跡処理部26、追跡の結果得られた頭部輪郭と、入力画像に写る、発光デバイス18の発光部6の像との相対位置の時間変化からユーザの動作を検出する動作検出部28、検出した動作を利用したゲームなどのアプリケーションを実行し画像データなどの出力データを生成する出力データ生成部30、および生成された出力データの表示装置16などへの出力を制御する出力制御部32を含む。
【0041】
図5および以後の図6、7において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0042】
画像取得部20は、有線、無線を問わず撮像装置12からユーザを撮像した画像をリアルタイムで取得する。追跡処理部26は、上述の視覚追跡の手法によりユーザの頭部輪郭を追跡する。動作検出部28は、追跡処理部26の追跡の結果得られる各画像フレームの時刻における頭部輪郭の曲線データ、および発光部6の像の位置データに基づき、ユーザの動作を検出する。
【0043】
出力データ生成部30は、動作検出部28が所定の動作を検出した場合に、その結果に対応する処理を行い、画像データなどの出力データを生成する。上述のように本実施の形態は様々なアプリケーションへの応用が可能であるため、出力データ生成部30は、画像データを生成するばかりでなく各アプリケーションに応じた処理を行ってよい。例えば、動作検出部28が検出する動作と、それに応じた処理とをあらかじめ対応づけておき、出力データ生成部30は当該動作に対応する処理を行うようにしてもよい。
【0044】
図6は追跡処理部26の構成を詳細に示している。追跡処理部26は、入力画像データからエッジ画像などを生成する画像処理部40、パーティクルの生成および消滅によってパラメータ空間におけるサンプリングを行うサンプリング部42、各パーティクルが規定する候補曲線の尤度を観測する観測部46、観測の結果を統合し、形状空間ベクトルを推定する結果取得部50、Ω形のテンプレートを規定するパラメータを記憶するパラメータ記憶部48を含む。
【0045】
画像処理部40は、入力画像データの画像フレームごとにエッジ抽出処理を施し、エッジ画像を生成する。ここではキャニーエッジフィルタや、ソーベルフィルタなど一般的なエッジ抽出アルゴリズムを用いることができる。また画像処理部40は、背景差分を利用した前景抽出器(図示せず)を実装していてもよく、エッジ抽出処理の前処理として入力画像から追跡対象を含む前景を抽出することにより、追跡対象のエッジを効率的に抽出するようにしてもよい。
【0046】
サンプリング部42は、一つ前の時刻t−1における画像フレームに対して推定された、形状空間ベクトルxの空間での確率密度分布に基づきパーティクルの生成および消滅の処理を行う。そして全パーティクルに対し所定の運動モデルを適用して、パーティクルを当該空間上で遷移させる。
【0047】
観測部46は、サンプリング部42が生成・消滅、遷移させた各パーティクルが定める候補曲線の尤度を観測する。尤度は上述のように、画像処理部40が生成したエッジ画像上で、各候補曲線の近傍にあるエッジを探索し、当該エッジまでの距離を候補曲線ごとに見積もることによって決定する。候補曲線は上述のように、パラメータ記憶部48から読み出したΩ形のテンプレートに対し、各パーティクルを規定するパラメータを作用させることによって得られる。
【0048】
結果取得部50は、観測部46が観測した尤度に基づき式3で示すような確率密度分布を形状空間ベクトルxの空間において算出し、それにより各パラメータを重み付け平均する。また次の時刻t+1における追跡処理に使用するため、サンプリング部42にそのデータを返す。
【0049】
追跡対象が複数存在する場合、結果取得部50はさらに、それぞれに用意したテンプレートを用いて、追跡対象ごとに追跡を行う。また複数の追跡対象が重なるような場合を追跡結果によって検出し、後ろに隠れる追跡対象については所定のタイミングで追跡処理対象からはずすなどの措置を講じる。これにより追跡対象が別の追跡対象の背後に回ったことによって観測尤度が一時的に低下しても、不適当な追跡結果を出力するのを避けることができる。
【0050】
図7は動作検出部28の構成を詳細に示している。動作検出部28は、画像取得部20が取得した各時刻における画像フレーム内での、発光デバイス18の発光部6の像の位置データと、追跡処理部26による視覚追跡の結果推定された各時刻の頭部輪郭の曲線データを取得する位置データ取得部52、発光部6の像の位置データと頭部輪郭の曲線データを蓄積し履歴として記憶する履歴記憶部56、発光部6の像と頭部輪郭の曲線との相対位置の時間変化から、所定の動作がなされたと判定する基準を記憶する判定基準記憶部58、当該判定基準に照らし、実際のデータに基づき動作がなされたか否かを判定する動作判定部54を含む。
【0051】
位置データ取得部52は、画像取得部20から入力画像のフレームを取得し、発光デバイス18の発光部6の、画像フレーム内での位置座標を取得する。さらに、追跡処理部26が各画像フレームに対し推定した頭部輪郭を表す曲線のデータを取得する。頭部輪郭を表す曲線のデータは上述のように、各パーティクルを規定する形状空間ベクトルのパラメータを確率密度分布で重み付け平均して得られた結果である。それぞれ取得した結果は、画像フレーム空間内の同一の座標系で表現し、フレームごとに履歴記憶部56に順に蓄積していく。
【0052】
動作判定部54は、履歴記憶部56に記憶された、直近の所定期間における発光部6の像の位置と頭部輪郭の曲線のデータを読み出し、それらの相対位置の時間変化と、判定基準記憶部58に登録した判定基準とを照合し、登録された動作がなされたか否かを判定する。判定結果は出力データ生成部30に通知する。判定基準記憶部58に登録する動作および当該動作がなされたと判定する基準は、情報処理システム10がその後に行う処理内容によって異なってよい。このとき情報処理内容を規定するソフトウェアには、判定すべき動作と判定基準とを対応付けたテーブルを付加データとして含め、当該ソフトウェアが起動されたときに判定基準記憶部58に読み出すようにする。
【0053】
次に、発光部6の像および頭部輪郭の曲線の相対位置の変化から判別できる動作と、それを利用した情報処理の具体例を説明する。図8は上述の構成を有する情報処理システム10で実現できる情報処理の例を説明する概念図である。同図は情報処理として、表示装置16に表示した仮想世界において、ユーザ1の動きに対応して動く忍者のオブジェクト2が冒険したり敵と戦ったりするロールプレイングゲームを例示している。
【0054】
このようなアプリケーションの場合、ユーザ1の全体的な動きは、追跡処理部26によって、上述のとおり頭部輪郭を取得することにより検出できる。その結果を用いて、各画像フレームにおけるオブジェクト2の頭部位置を決定し、それに基づき必要な体の部位を描画していく。また、ユーザが撮像装置に近づいたり離れたりしたことを頭部輪郭の大きさにより判断して、オブジェクト2を仮想世界で前進させたり後退させたりすることもできる。さらに発光部6の像の平面上の座標に基づきオブジェクト2の手の座標、発光部6の像の大きさに基づきオブジェクト2の手の奥行き方向の位置も決定できる。なお図8の例では、オブジェクト2はユーザ1を撮像した入力画像の鏡面画像として描画している。
【0055】
図9は、図8に示したようなアプリケーションにおいて動作検出部28と出力データ生成部30が行う処理の例を説明する図である。図中、垂直下方向が時間軸であり、時系列順に時刻A、B、およびCにおいて撮像装置12が取得した入力画像100a、100b、100c、各入力画像から得られる、頭部輪郭の曲線70と発光部6の像72の位置データ102a、102b、102c、および、各時刻における動作検出結果などに基づき描画される表示画像104a、104b、104cを表している。
【0056】
なお時刻A、B、Cはユーザの動作のうち特徴的な瞬間であり、その間も所定のフレームレートで画像取得、追跡処理、動作判定、表示が逐次なされている。また、図8に示すように表示画像はユーザを撮像した画像フレームの鏡面画像でよいが、図9では理解を容易にするため変換前の画像を示している。
【0057】
まず時刻Aの入力画像100aにおいてユーザの像68は、入力画像100aに写る位置に発光デバイス18を持っている。この入力画像100aおよびそれ以前の画像フレームからの追跡処理の結果から、頭部輪郭の曲線70および発光部6の像72の位置データ102aを取得する。この位置データ102aに基づき、表示画像104aのオブジェクト2を描画する。具体的には、頭部輪郭の曲線70から頭部の位置、発光部6の像72の位置から手の位置を決定し、それに基づきオブジェクト2の全体像を描画する。
【0058】
ここで、オブジェクト2は図8に示すように忍者であり、武器として背中に刀74を装備しているとする。このような態様において本実施の形態では、頭部輪郭の曲線70と発光部6の像72の位置とを逐次追跡し、それらの相対位置に基づき、ユーザが刀を抜いた、振った、鞘に納めた、といった複雑な動作を判別する。時刻Aではそれまでの流れから、刀74は背中の鞘に納められており、オブジェクト2の手には何も握られていないように表示されている。
【0059】
ここでユーザが刀を抜く動作をしたとする。この場合、まず時刻Aから時刻Bまでの時間において、ユーザ、すなわちユーザの像68は、発光デバイス18を保持した手を矢印a0の方向に動かす。発光部6の位置は撮像装置12が取得するフレームレートでトレースされ、同期間において発光部6の像72の位置データは矢印a2のように変化する。それに基づき表示画像104aでは、オブジェクト2の手を矢印a4のように動かす。
【0060】
そして時刻Bで、入力画像100bに示すように、ユーザ、すなわちユーザの像68は発光部6が肩に隠れる程度の位置まで発光デバイス18を移動させる。すると同時刻での発光部6の像72の位置データは取得されず、位置データ102bに示すように頭部輪郭の曲線70のみが位置データとして記録される。しかしながら本実施の形態では、頭部輪郭の曲線70と発光部6の像72の相対位置の時間変化を、フレームレートのオーダーで逐次取得しているため、発光部6が肩の後ろに隠れている、すなわちユーザが発光デバイス18を持った手を背中に回した、という動作を検出できる。
【0061】
この動作の検出は、必ずしも発光部6が完全に隠れている状態でなされなくてもよいが、本実施の形態では上述のように相対位置の時間変化を取得しているため、完全に隠れていたとしても発光部6の検出エラーとなることが少ない。また、頭部輪郭の曲線70と発光部6の大きさの変化も取得しているため、ユーザの手が体の前面にあるか背面へ回りそうかも特定でき、検出精度が高い。このようにユーザが手を背中に回した、という動作を検出したら、表示画像104bに示すように、オブジェクト2の手が背後の刀74の柄を握ったように描画する。
【0062】
次に時刻Bから時刻Cまでの時間においてユーザは、発光デバイス18を保持した手を矢印b0の方向に動かし、発光部6が肩から出現すると、位置データにおいては頭部輪郭の肩の稜線から発光部6の像72が矢印b2の方向に移動するように出現する。このように肩の稜線から発光部6の像72が出現し、かつその直前の時刻Bにおいて刀の柄を握る動作をオブジェクト2にさせている場合は、表示画像において、オブジェクト2が握った刀を鞘から抜いたように描画する。
【0063】
その後は、時刻Cに示すように、ユーザすなわちユーザの像68が発光デバイス18を下ろすと(入力画像100c)、そのときの頭部輪郭の曲線70と発光部6の像72の位置データ102cが取得され(位置データ102c)、それに基づき表示画像104cが生成される(表示画像104c)。図に示すように、時刻Aと時刻Cの入力画像においてユーザのポーズは同様である。しかしながら時刻Cにおける表示画像104cではオブジェクト2が刀74を手にしていることになる。このように、入力された動画像を構成する2つの画像フレームでユーザが同じポーズをとっていても、動画像としての連続的な動きを監視していくことにより、ユーザの意図に合致した異なる表示を行うことができる。
【0064】
例えば時刻Cでは、表示画像104cにおけるオブジェクト2は刀74を手にしているため、以後のあるタイミングでユーザが時刻AからBと同様の動作をしても、今度は刀を鞘に納める動作であると判定できる。本実施の形態では、頭部輪郭という2次元形状と、発光部6の像という点形状との位置関係に着目する。したがって刀を鞘から抜く際、および納める際には、頭部輪郭の肩の稜線と発光部6の像との距離に応じて、刀の先がオブジェクト2の背後に隠れたように陰面消去処理を行うことができ、よりリアルな画像を表示することができる。また肩の稜線を把握しているため、発光部6の像が消えた場合に、図9の時刻Bのような動作がなされたのか、もう片方の手や別の人物などによって偶然隠れたのかを判別することもできる。
【0065】
図9では理解を容易にするため、ユーザの像68の頭部は大きく移動しないように表示したが、本実施の形態の上記手法は、頭部輪郭という、ユーザの顔の向き、体の向きに依存しない形状に基づいているため、ユーザがどのような体勢にあっても同様に処理を行うことができる。図8において説明したようなロールプレイングゲームや格闘技ゲームなどのアプリケーションでは、ユーザがあらゆる方向を向いたり動いたりすることを許容できることが望ましいため、本実施の形態の効果を顕著に発揮できる。これにより、より複雑かつリアルな仮想世界を表現することが可能になる。また横になって行うゲームなど、アプリケーションを多様化することができる。
【0066】
図9に示したユーザの体勢では、「発光部6の像72が肩の稜線を越える→発光部6の像72が肩の稜線に再度近づきつつ消える」、という位置データの時間変化の判定基準と、それまで刀を握っていたか否かの場合分けによって、ユーザが刀を抜く動作、鞘に納める動作を判定し、陰面消去など必要な処理を施しながら当該動作を表示画像へ反映させた。一方情報処理の内容によっては、ユーザが寝転ぶなど肩の稜線が著しく傾いた場合に別の基準を用意しておく。図10はユーザ自体の傾きが大きいときの動作の判定基準を説明するため図である。
【0067】
図10の入力画像100dにおいてユーザの像68は寝転んだ状態で発光デバイス18を動かしている。このような体勢においては、ユーザが発光デバイス18を上に上げることと、位置データ102dにおいて発光部6の像が頭部輪郭の肩の稜線を越えることとは必ずしも一致しない。そこで別の判断基準として水平線76を導入する。水平線76は、頭部輪郭の曲線70のうち上側の肩の端点を通る水平の線である。
【0068】
そして、発光部6の像72が水平線76を越えて上に移動した場合、ユーザが手を上げる動作、水平線76から下に下りた場合、ユーザが手を下げる動作として判別する。ユーザが寝転んだ、あるいはそれに準じる程度に傾いた、といった事象は、図中、破線78のに示す頭部輪郭の縦方向の、鉛直方向に対する傾きにしきい値を設けることにより判定する。この傾きは、頭部輪郭の曲線70を定義する形状空間ベクトルのうち、回転角を表すパラメータθに基づき求めることができる。そして傾きがしきい値を越えた時点で判断基準を切り替える。なお水平線76による判定基準は例示であり、動作の判定後になされる情報処理の内容などによって適宜設定してよい。
【0069】
次に発光部6の像および頭部輪郭の曲線の相対位置の変化による動作検出を利用した情報処理の別の例を説明する。この例では、発光デバイス18をそれぞれ持った二人のユーザを撮像対象とし、それぞれの動きを反映させた二人のオブジェクトを表示装置16に表示する。図11はこのようなアプリケーションにおいて表示する画像例を示している。表示画像110においてオブジェクト112a、112bは二人のユーザにそれぞれ対応し、コンピュータグラフィックスによって描画してもよいし、撮像したユーザをそのまま、あるいは鏡面画像に変換して表示してもよい。表示画像110ではさらに、各ユーザの頭および両肩に風船のオブジェクト116a、116bを、ユーザが発光デバイス18を保持する手にハンマーのオブジェクト114a、114bを描画する。
【0070】
このような構成とすることで、ユーザが表示装置16に表示された表示画像110を見ながら発光デバイス18を振ることにより、仮想世界における相手のオブジェクトにつけられた風船を自分が保持するハンマーで叩き割るゲームを実現できる。この場合も、発光デバイス18の発光部6の像と、それを保持するユーザの肩の稜線との相対位置の時間変化によって、ユーザがハンマーを振り上げる動作を検出する。上述したように、ユーザがいかなる体勢になっても、頭部輪郭の一部として肩の稜線を追跡できるため、それを基準に発光部6の動きを追うことにより、ユーザがハンマーを振り上げようとしたタイミングを検出することができる。
【0071】
また、このように検出したユーザの動作に加え、上記で触れたように発光デバイス18の内部にジャイロセンサーを内蔵し、発光デバイス18の角速度の測定結果も表示画像110に反映させるようにしてもよい。例えば、ハンマーを振り下ろそうとする動作を検出したら、発光デバイス18の角速度に応じてハンマーの取っ手を長くする。図11の例ではこのようにして、ハンマーを振り下ろそうとしているユーザ側のハンマーのオブジェクト114bの取っ手が、他方のユーザのハンマーのオブジェクト114aの取っ手より長くなっている。このようにすることで、取っ手の長さの変化も考慮したうえで、相手の風船を割る速さを競う、といったゲームを実現できる。
【0072】
また、ハンマーを振り上げたと判定するより前の時点、例えば発光部6の像が肩の稜線を下から上へ所定の速度で越えようとしている時点などを第2の基準として設けてもよい。この第2の基準を満たした場合、ユーザがこれからハンマーを振り上げようとしていると判断し、ハンマーを振り上げる画像の描画処理やジャイロセンサーによる測定開始など、その後に必要と予測される処理を投機的に行うようにしてもよい。このようにすることで、ユーザの動きに対する表示画像の応答性を高めることができる。
【0073】
図11のアプリケーションのように複数のユーザが撮像対象となっている場合、それぞれが保持する発光デバイス18の発光部6の像が、どちらのユーザのものかを判別する必要がある。本実施の形態では上述のとおり各ユーザの肩の稜線が取得できているため、当該稜線の傾きと、発光部の像の位置によって、発光部の像とユーザとの対応付けが可能である。すなわち、ユーザの像112bのように肩の稜線が上がっていれば、その延長線の近傍にある発光部の像は当該ユーザが保持する発光デバイス18の物である。
【0074】
あるいはゲーム開始時に、発光部6の像と頭部輪郭の曲線との対応付けを行うようにしてもよい。具体的には、各ユーザが肩や頭頂部に発光部6が接するように発光デバイス18を持ち、それを初期画像として頭部輪郭の追跡処理および発光部6の像の位置データを取得するようにすればよい。両者とも時間経過に対して逐次位置の変化が追跡されるため、初期画像において両者の対応関係を取得しておけば、いずれの時刻においても対応がとれていることになる。
【0075】
上記初期画像を取得する際には、発光部6の像の大きさと頭部輪郭から得られる頭部の大きさの相対的関係を取得してもよい。これを基準とし、ゲーム中に取得した両者の大きさの相対関係と比較することにより、発光デバイス18がユーザより後ろにあるか前にあるかを判断することができる。すなわち、相対的に発光部6の像が大きくなっていれば発光デバイス18はユーザの頭などより撮像装置12に近く、小さくなっていれば発光デバイス18はユーザの頭などより撮像装置12から離れている、と判定する。この結果を、これまで述べた発光部の像と頭部輪郭の曲線の相対位置の時間変化に加味することにより、さらに複雑な動作を判別したり、投機的処理を行ったりすることができる。
【0076】
図8、図11で示したアプリケーションはあくまで一例であり、頭部輪郭の曲線とユーザが保持する発光デバイスの発光部の像との相対位置の時間変化を利用した動作検出は、様々な情報処理に適用することができる。例えばユーザの動作をマウスの代替手段としてもよい。すなわち、撮像したユーザの動きを4つに類型化し、それぞれを一般的にマウスが備える4種類の機能に割り当てる。
【0077】
図12はこのような態様における動作の割り当て例を説明する図である。この例ではユーザの状態を、発光部6が肩の稜線より下にある(類型120a)、発光部6が肩の稜線より上にあり、頭部輪郭の外側にある(類型120b)、発光部6が肩の稜線より上にあり、頭部輪郭の前方にある(類型120c)、発光部6が肩の稜線より上にあり、頭部輪郭の後方にある(類型120d)、の4つの類型に分け、それぞれ、マウス122本体の移動、スクロール、右クリック、左クリックに割り当てる。
【0078】
類型120aの場合、発光部6と頭部輪郭との距離をマウスの移動速度に変換する。移動方向は発光部6と頭部輪郭の相対位置によって決定する。類型120bの場合も、発光部6と頭部輪郭との距離をスクロール速度に変換し、スクロール方向は発光部6と頭部輪郭の相対位置によって決定する。類型120dは、発光部6が頭の後ろに隠れて見えない状態であるが、発光部6の像の位置変化を取得しているため、頭の後ろに隠れたことを認識できる。そして発光部6が見えるか否かによって、類型120cと類型120dとを区別できる。
【0079】
ユーザは、例えば表示装置16の画面を見ながら必要に応じていずれかの類型の動作を行う。このとき、ユーザが意図をもって動作を行っているか否かを区別するため、発光デバイス18に設けたボタンを押した状態でいずれかの類型の動作を行った場合に、その後の処理を行うようにするなど、類型判断を開始するための規則をあらかじめ設定しておく。ボタンを押していない状態や、発光部6の発光開始などを類型判断の開始としてもよい。ユーザの動作がいずれの類型であるかを判定したら、上述の割り当てに従い当該動作をマウスの操作に変換する。その後は通常のマウス操作でなされるものと同様に、画面上の画像を変化させる。この態様においても、頭部輪郭という2次元形状と、発光部6の形状とを同時に取得し、その経時変化を取得することで、単純な動作でも容易にマウス操作に代えることができる。
【0080】
次に、これまで述べた構成によって実現できる情報処理装置14の動作について説明する。図13は、ユーザの動作を反映して動くオブジェクトを表示するための情報処理装置14の処理手順を示すフローチャートである。まずユーザが発光デバイス18を手に持ち、アプリケーションのソフトウェアを起動させると、撮像装置12が当該ユーザの撮像を開始するとともに表示装置16に初期画面を表示する(S108)。
【0081】
ソフトウェアの起動は、ユーザが発光デバイス18に設けた図示しない起動ボタンを押下することにより行うようにする。ソフトウェアの起動によって、情報処理装置14が発光デバイス18の発光部6を発光させるよう制御する。あるいは発光デバイス18に設けた図示しないオン/オフボタンによってユーザが発光開始操作を行うようにしてもよい。次に、必要に応じて、上述のように各ユーザの頭部輪郭と発光部の像との対応関係を取得するなどの初期処理を行う(S109)。
【0082】
一方、追跡処理部26は撮像装置12が撮像した入力画像を逐次読み込んで頭部輪郭の視覚追跡を開始する(S110)。動作検出部28の位置データ取得部52は、追跡の結果として、現在時刻tにおける画像フレームの頭部輪郭の曲線データを取得するとともに、画像取得部20が取得した入力画像フレームから、発光部6の像の位置データを取得する(S112、S114)。各データは時刻順に履歴記憶部56に格納する。動作判定部54は、現在時刻までの所定期間における、頭部輪郭の曲線と発光部の像の相対位置の時間変化を読み出し、判定基準記憶部58に登録済みの、動作の判定基準のいずれかに当てはまるか否かを判定する(S116)。
【0083】
上述のとおり、一つの動作を判定するために、相対位置の変遷に対して複数のタイミングで基準を設定する必要がある場合も多いため、動作判定部54は所定時間、相対位置の監視を継続し、全ての基準が満たされたときに、対応して登録された動作がなされたと判定する。登録された動作がなされたと判定されたら(S116のY)、当該動作に対応する画像を描画する(S118)。具体的には、表示画像内のオブジェクトに、判定された動作に対応する動きをさせたり、マウスの操作に変換して表示画像を変化させたりする。
【0084】
加えて、必要に応じて頭部輪郭の曲線や発光部6の動きに合わせてオブジェクトを動かすなどして最終的に得られる最新画像を表示する(S120)。登録された動作がなされていない場合も(S116のN)同様に、必要な動きを加えた最新画像を表示する(S120)。処理を終了する必要が生じない間は(S122のN)、次の画像フレームの時刻t+1についてS112からS120の処理を行うことを繰り返し、ユーザによる処理の停止指示や、ゲームの終了などによって処理を終了する(S122のY)。
【0085】
以上述べた本実施の形態によれば、ユーザの頭部領域を視覚追跡技術により時間発展的に追跡するとともに、ユーザが保持する発光デバイスの発光部の像の位置を逐次取得する。そして両者の相対位置の時間変化をあらかじめ定めた基準と照らすことにより、登録された動作がなされたことを判別する。ユーザがどのような体勢にあっても、またどのような方向を向いていても、頭部輪郭形状への影響は少ないため、ユーザの手が体に対してどのように動いているかを性格に認識することができる。撮像装置の位置が変化しても同様に処理が可能である。結果として、幅広い環境、複雑な動作にも対応することができ、ゲームをはじめ適用できるアプリケーションの幅が増えるとともに、よりリアルな仮想世界を表現することが可能となる。
【0086】
さらに、発光部の像がユーザの背後に隠れるなどしても、時間変化を取得しているため、どこに隠れているかを認識できる。そして肩のラインなどに基づき、表示画像に描画したオブジェクトに対し陰面消去などの処理を行ったり、隠れた状態をマウスの機能に割り当てたり、といった多様な処理に利用することができる。本実施の形態は、一般的な情報処理システムのほかは、発光デバイスおよび撮像装置を準備するのみで実現できるため、たくさんの発光体を体に貼り付けたりする必要がなく、ユーザに手間や煩わしさを感じさせることが少ない。また必要な装置が限られるため安価に実現できる。さらに顔検出やパターンマッチングなど、基本的には静止画像に対して行う処理によって動作検出を試みるより、正確かつ高速に動作判定を行える。
【0087】
また、動作がなされたと判定する前に、当該動作へ移行しそうであることを、相対位置の時間変化によって予測できるため、その後の処理を投機的に行っておけば、より応答性のよいアプリケーションが実現できる。
【0088】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0089】
例えば複数のユーザが並んだ状態を撮像し、挙手したユーザを検出して自動でズームアップする撮影装置が考えられる。このときユーザは発光デバイスを保持するのに代わり、発光体を手に貼り付けるなどしてもよい。この場合も、各ユーザの肩の稜線の水準へ発光体が下から近づき当該水準を越える時間変化がなされたとき、あるいは越えた状態が所定時間継続したときに、挙手がなされたと判定する。複数のユーザによる挙手がなされた場合でも、それぞれの挙手の判定タイミングによって、最も早く挙手したユーザを同定できる。
【符号の説明】
【0090】
6 発光部、 8 ハンドル、 10 情報処理システム、 12 撮像装置、 14 情報処理装置、 16 表示装置、 18 発光デバイス、 20 画像取得部、 26 追跡処理部、 28 動作検出部、 30 出力データ生成部、 32 出力制御部、 40 画像処理部、 42 サンプリング部、 46 観測部、 50 結果取得部、 52 位置データ取得部、 54 動作判定部、 56 履歴記憶部、 58 判定基準記憶部。
【技術分野】
【0001】
本発明は情報処理技術に関し、特にユーザの入力に応じた処理を行うためのユーザインターフェースを含む情報処理装置およびそこで実行される情報処理方法に関する。
【背景技術】
【0002】
近年、ゲーム装置や電化製品などを含む電子機器や情報処理装置は、その機能が著しく高度化している。それに伴い、ユーザインターフェースによってユーザが行うことのできる入力体系は複雑化している。そのような複雑な入力体系にあっても容易な入力が可能となるように、ユーザインターフェースには様々な工夫がなされてきた。例えば、複数の指示入力ボタンを備えたコントローラやアナログスティックなどのほか、ユーザをリアルタイムに撮像してその動きを検出し、処理内容や表示画面に反映させる技術が提案されている。
【0003】
具体的には、ユーザの動きを検出するため、撮像画像をパターンマッチングする方法や、ユーザが保持するコントローラやユーザ自身に取り付けた発光体からの光の位置変化を取得する方法などが提案されている(例えば特許文献1、2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−216955号公報
【特許文献2】WO 2007/050885 A2公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記のようにユーザの動きを入力情報として取得する技術においては、より自然な動きを精度よく、かつ高速に判別することが求められる。ところが複雑な動きにも対応できる装置を実現しようとすると、必要な装備が増えてユーザにかかる手間や製造コストが増大したり、計算コストが増大し満足する応答性能が得られないことがあり得る。
【0006】
本発明はこのような課題に鑑みてなされたものであり、その目的は、複雑な動きを容易に検出することのできるユーザインターフェースを含む情報処理技術を提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様は情報理装置に関する。この情報処理装置は、マーカーを装備したユーザの動きを動画像として撮像する撮像装置と、撮像装置が撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する追跡処理部と、各画像フレームにおける、マーカーの像と追跡処理部が推定したユーザの輪郭の相対位置を逐次記憶する履歴記憶部と、履歴記憶部が記憶した相対位置の時間変化を、あらかじめ動作ごとに設定した第一の基準と照合することにより、当該動作がなされたか否かを判定する動作判定部と、動作判定部が動作がなされたと判定したとき、当該動作に対応した処理を行い出力データを生成する出力データ生成部と、を備えることを特徴とする。
【0008】
ここで「マーカー」とは、あらかじめ決められた色、形状を有する物体であってそれを装備したユーザの体の部位の位置を表す物である。マーカーは単一であっても複数であってもよく、それを装備するための機構は限定されない。例えば棒の先にマーカーを備えた物をユーザが持つ場合、マーカーをユーザに貼付する場合、マーカーを貼付した衣類や装着物をユーザが身につける場合などのいずれでもよい。
【0009】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、マーカーを装備したユーザの動きを動画像として撮像するステップと、撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定するステップと、各画像フレームにおける、マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させるステップと、メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定するステップと、動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成するステップと、を含むことを特徴とする。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、人の動作を利用して多様な処理を精度よく行うことができる。
【図面の簡単な説明】
【0012】
【図1】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図2】発光デバイスの構成を示す図である。
【図3】人物を追跡対象とした場合の視覚追跡手法を説明するための図である。
【図4】パーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。
【図5】本実施の形態における情報処理装置の構成を詳細に示す図である。
【図6】本実施の形態における追跡処理部の構成を詳細に示す図である。
【図7】本実施の形態における動作検出部の構成を詳細に示す図である。
【図8】本実施の形態における情報処理の例を説明する概念図である。
【図9】図8に示したアプリケーションにおいて動作検出部と出力データ生成部が行う処理の例を説明する図である。
【図10】ユーザ自体の傾きが大きいときの動作の判定基準を説明するため図である。
【図11】本実施の形態における情報処理の別の例において表示する画像例を示す図である。
【図12】本実施の形態においてユーザの動作をマウスの代替手段とした場合の動作の割り当て例を説明する図である。
【図13】本実施の形態においてユーザの動作を反映して動くオブジェクトを表示するための情報処理装置の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0013】
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、発光デバイス18、発光デバイスを保持するユーザ1および当該発光デバイス18からの光を撮像する撮像装置12、ユーザの動作を検出しそれに応じた情報処理を行う情報処理装置14、情報処理装置が処理した結果得られた画像データを出力する表示装置16を含む。
【0014】
情報処理装置14と、撮像装置12あるいは表示装置16との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいは撮像装置12、情報処理装置14、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置12は必ずしも表示装置16の上に搭載されていなくてもよい。ユーザ1は情報処理装置14で処理される内容によって複数でもよく、発光デバイス18もまた複数でよい。
【0015】
撮像装置12は発光デバイス18、ユーザ1を含む画像のデータを、所定のフレームレートで取得する。取得した動画像データは情報処理装置14に入力される。情報処理装置14は、撮像装置12から取得した動画像データからユーザ1の頭部輪郭および発光デバイス18からの光の位置を取得し、その相対位置の時間変化によってユーザの動作を検出する。ユーザの頭部の動きを取得する際は、後に詳述する視覚追跡技術によって、ユーザの肩の稜線の位置も取得する。そして肩の稜線と、ユーザが手にした発光デバイス18からの光との位置関係により、ユーザの腕に係る多様な動作を判別する。表示装置16は、情報処理装置14がユーザ1の動作を検出した結果を反映させて生成した画像データを取得し、画像として出力する。
【0016】
なお動作を検出したあと、それを利用して情報処理装置14が実行する処理は様々考えられ、その内容は限定されない。また本実施の形態では頭部および手の動きに着目して、上半身の動きを検出する態様を述べるが、足などの下半身、または体全体を用いた動作などでも、発光デバイス18の装着位置や追跡処理に用いるテンプレート形状を変化させることにより同様に検出できる。また、あらかじめ定めた色や形状を有し、画像に写る他の物と区別して認識が可能なマーカーであれば、発光せずとも発光デバイス18に代えることができる。
【0017】
図2は発光デバイス18の構成を示している。発光デバイス18は、発光部6およびハンドル8を含む。発光部6は内部に発光ダイオードや電球など一般的な発光体を備えた、光透過性を有する樹脂などで形成される球体であり、発光している状態では、発光部6全体が光る。ハンドル8はユーザが手にする部分であり、図示はしないが、必要に応じてオン/オフボタンなどの入力ボタンを備えてもよい。また、情報処理装置14と有線、あるいは無線で情報を送受する通信手段を備えてもよい。この場合、例えば複数のユーザに対し異なる発光色を割り当てたり、処理の進捗によって発光色を変化させたりすることができる。
【0018】
さらにハンドル8の内部にジャイロセンサ(図示せず)を備え、ユーザの頭部輪郭および発光部6の位置に加え、ユーザの動作を検出する際の情報として利用してもよい。ジャイロセンサの他、加速度センサ、地磁気センサなどを備えてもよい。なお発光デバイス18は、ユーザが身につけて発光すれば、その形状は図2に示したものに限らない。また発光部6の発光に代わり赤外線などの不可視光線を利用してもよい。この場合、撮像装置12の他に不可視光線を検出する装置を設け、当該光線の位置座標を頭部輪郭の追跡を行う為の撮像画像内の座標系へ投影することによって、同様の動作検出を行うことができる。
【0019】
次に情報処理装置14が行う、ユーザ1の動作の検出処理について説明する。まず、肩の稜線を含む頭部輪郭の動きを取得するため、パーティクルフィルタを用いた視覚追跡処理を、撮像装置12が撮像したユーザ1を含む画像に対して実行する。頭部輪郭の視覚追跡は、動画像の各画像フレームの頭部輪郭を時間発展的に推定していく技術である。
【0020】
本実施の形態では上述のとおり、「人間の動作」という時間幅を有する行為を入力として利用する。撮像対象を認識する技術として一般的に用いられるパターンマッチングは基本的に静止画に対する処理であり、それを時間変化の検出に利用するということは、結局、複数の静止画についての検出結果をつなげていくことに他ならない。このとき、基本的には前の画像フレームとの関連性を考慮しないため、複数の人が画像に含まれていたり人が移動したりといった状況の変化が考えられるような有限の時間で発生した事象を検出するときは誤差を含みやすい。本実施の形態によれば、頭部輪郭の追跡処理自体が時間発展的であるため、前の画像フレームとの関連性から個々人の動きを精度よく捉えることができる。
【0021】
図3は人物を追跡対象とした場合の視覚追跡手法を説明するための図である。人物画像150は撮像装置12が撮像した動画像の画像ストリームを構成する画像フレームのひとつであり、追跡対象である人物152が写っている。当該人物152が、図1におけるユーザ1に対応する。
【0022】
この人物152の動きを追跡するために、人物152の頭部輪郭の形状を近似するΩ形の曲線154を既知の表現で記述する。一方、人物152を含む人物画像150にはエッジ抽出処理を施し、エッジ画像を取得しておく。そして曲線154を規定するパラメータを変化させることにより当該曲線154を並進、伸縮、回転させて、その近傍にあるエッジを探索することにより、人物152の頭部輪郭と最もマッチすると推定されるパラメータの値を特定する。以上の処理をフレームごとに繰り返すことにより人物152の追跡が進捗する。ここでエッジとは一般的には画像の濃度や色に急な変化を有する箇所のことである。
【0023】
規定するパラメータの値を様々にした曲線154と人物152の頭部輪郭とのマッチングを行うために、パーティクルフィルタによる確率分布予測技術を導入する。すなわち、ひとつ前のフレームにおけるパラメータ空間上の対象物の確率分布に応じて曲線154のサンプリング数を増減させ、追跡候補の絞り込みを行う。これにより存在確率の高い部分に対しては重点的に探索を行うことができ、精度のよいマッチングが効率的に行える。
【0024】
対象物の輪郭に着目した追跡に対するパーティクルフィルタの適用手法は、例えば非特許文献(ICondensation: Unifying low-level and high-level tracking in a stochastic framework, Michael Isard and Andrew Blake, Proc 5th European Conf. Computer Vision, 1998)に詳述されている。ここでは本実施の形態に係る点に着目して説明する。
【0025】
まずΩ形の曲線154を、Bスプライン曲線で記述する。Bスプライン曲線はn個の制御点(Q0,・・・,Qn)とn個のノット(s0,・・・,sn)とから定義される。そして基本となる曲線形状、この場合はΩ形の曲線となるように、それらのパラメータをあらかじめ設定しておく。このときの設定によって得られる曲線を以後、テンプレートQtと呼ぶ。なお、図3で示した人物画像150における人物152の追跡を行う場合は、テンプレートQtはΩ形であるが、その形状は追跡対象によって変化させる。すなわち追跡対象がボールであれば円形、手のひらであれば手の形状などとなる。
【0026】
次にテンプレートの状態を変化させるための変換パラメータとして、形状空間ベクトルxを準備する。形状空間ベクトルxは以下のような6つのパラメータで構成される。
【0027】
【数1】
【0028】
ここで(shiftx,shifty)は(x,y)方向への並進量、(extendx,extendy)は倍率、θは回転角である。そして形状空間ベクトルxをテンプレートQtに作用させるための作用行列Wを用いると、変形後の曲線、すなわち候補曲線Qは以下のように記述できる。
【0029】
【数2】
【0030】
式2を用いれば、形状空間ベクトルxを構成する6つのパラメータを適宜変化させることにより、テンプレートを並進、伸縮、回転させることができ、組み合わせによって候補曲線Qを種々変化させることができる。
【0031】
そして、制御点、およびノットの間隔といったテンプレートQtのパラメータや、形状空間ベクトルxを構成する6つのパラメータを変化させることによって表現される複数の候補曲線について、各ノットの近傍にある人物152のエッジを探索する。その後、エッジとの距離などから各候補曲線の尤度を求めることにより、形状空間ベクトルxを構成する6つのパラメータで定義される6次元空間における確率密度分布を推定する。
【0032】
図4はパーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。同図では理解を簡単にするために、形状空間ベクトルxを構成する6つのパラメータのうち、あるパラメータx1の変化を横軸に表しているが、実際には6次元空間において同様の処理が行われる。ここで確率密度分布を推定したい画像フレームが時刻tの画像フレームであるとする。
【0033】
まず、時刻tの画像フレームのひとつ前のフレームである時刻t−1の画像フレームにおいて推定された、パラメータx1軸上の確率密度分布を用いて(S10)、時刻tにおけるパーティクルを生成する(S12)。それまでにフィルタリングを行い、すでにパーティクルが存在する場合は、その分裂、および消滅を決定する。S10において表した確率密度分布は、パラメータ空間上の座標に対応して離散的に求められたものであり、円が大きいほど確率密度が高いことを表している。
【0034】
パーティクルはサンプリングするパラメータx1の値とサンプリング密度とを実体化したものであり、例えば時刻t−1において確率密度が高かったパラメータx1の領域は、パーティクル密度を高くすることで重点的にサンプリングを行い、確率密度の低かった範囲はパーティクルを少なくすることでサンプリングをあまり行わない。これにより、例えば人物152のエッジ近傍において候補曲線を多く発生させて、効率よくマッチングを行う。
【0035】
次に所定の運動モデルを用いて、パーティクルをパラメータ空間上で遷移させる(S14)。所定の運動モデルとは例えば、ガウシアン型運動モデル、自己回帰予測型運動モデルなどである。前者は、時刻tにおける確率密度は時刻t−1における各確率密度の周囲にガウス分布している、とするモデルである。後者は、サンプルデータから取得した2次以上の自己回帰予測モデルを仮定する手法で、例えば人物152がある速度で等速運動をしているといったことを過去のパラメータの変化から推定する。図4の例では、自己回帰予測型運動モデルによりパラメータx1の正方向への動きが推定され、各パーティクルをそのように遷移させている。
【0036】
次に、各パーティクルで決定される候補曲線の近傍にある人物152のエッジを、時刻tのエッジ画像を用いて探索することにより、各候補曲線の尤度を求め、時刻tにおける確率密度分布を推定する(S16)。前述のとおり、このときの確率密度分布はS16に示すように、真の確率密度分布400を離散的に表したものになる。以降、これを繰り返すことにより、各時刻における確率密度分布がパラメータ空間において表される。例えば確率密度分布が単峰性であった場合、すなわち追跡対象が唯一であった場合は、得られた確率密度を用いて各パラメータの値に対し重み付けした和を最終的なパラメータとすることにより、追跡対象の輪郭と推定される曲線が得られることになる。
【0037】
S16において推定される時刻tにおける確率密度分布p(xti)は以下のように計算される。
【0038】
【数3】
【0039】
ここでiはパーティクルに一意に与えられた番号、p(xti|xti, ut-1)は所定の運動モデル、p(yt|xti)は尤度である。式3で得られる確率密度分布は、形状空間ベクトルの各パラメータに対して得られる。したがって当該確率密度分布でパーティクルの加重平均を求めることにより、各時刻の形状空間ベクトルが推定できる。
【0040】
図5は情報処理装置14の構成を詳細に示している。情報処理装置14は、撮像装置12から入力される入力画像データを取得する画像取得部20、上述の視覚追跡処理を実行する追跡処理部26、追跡の結果得られた頭部輪郭と、入力画像に写る、発光デバイス18の発光部6の像との相対位置の時間変化からユーザの動作を検出する動作検出部28、検出した動作を利用したゲームなどのアプリケーションを実行し画像データなどの出力データを生成する出力データ生成部30、および生成された出力データの表示装置16などへの出力を制御する出力制御部32を含む。
【0041】
図5および以後の図6、7において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0042】
画像取得部20は、有線、無線を問わず撮像装置12からユーザを撮像した画像をリアルタイムで取得する。追跡処理部26は、上述の視覚追跡の手法によりユーザの頭部輪郭を追跡する。動作検出部28は、追跡処理部26の追跡の結果得られる各画像フレームの時刻における頭部輪郭の曲線データ、および発光部6の像の位置データに基づき、ユーザの動作を検出する。
【0043】
出力データ生成部30は、動作検出部28が所定の動作を検出した場合に、その結果に対応する処理を行い、画像データなどの出力データを生成する。上述のように本実施の形態は様々なアプリケーションへの応用が可能であるため、出力データ生成部30は、画像データを生成するばかりでなく各アプリケーションに応じた処理を行ってよい。例えば、動作検出部28が検出する動作と、それに応じた処理とをあらかじめ対応づけておき、出力データ生成部30は当該動作に対応する処理を行うようにしてもよい。
【0044】
図6は追跡処理部26の構成を詳細に示している。追跡処理部26は、入力画像データからエッジ画像などを生成する画像処理部40、パーティクルの生成および消滅によってパラメータ空間におけるサンプリングを行うサンプリング部42、各パーティクルが規定する候補曲線の尤度を観測する観測部46、観測の結果を統合し、形状空間ベクトルを推定する結果取得部50、Ω形のテンプレートを規定するパラメータを記憶するパラメータ記憶部48を含む。
【0045】
画像処理部40は、入力画像データの画像フレームごとにエッジ抽出処理を施し、エッジ画像を生成する。ここではキャニーエッジフィルタや、ソーベルフィルタなど一般的なエッジ抽出アルゴリズムを用いることができる。また画像処理部40は、背景差分を利用した前景抽出器(図示せず)を実装していてもよく、エッジ抽出処理の前処理として入力画像から追跡対象を含む前景を抽出することにより、追跡対象のエッジを効率的に抽出するようにしてもよい。
【0046】
サンプリング部42は、一つ前の時刻t−1における画像フレームに対して推定された、形状空間ベクトルxの空間での確率密度分布に基づきパーティクルの生成および消滅の処理を行う。そして全パーティクルに対し所定の運動モデルを適用して、パーティクルを当該空間上で遷移させる。
【0047】
観測部46は、サンプリング部42が生成・消滅、遷移させた各パーティクルが定める候補曲線の尤度を観測する。尤度は上述のように、画像処理部40が生成したエッジ画像上で、各候補曲線の近傍にあるエッジを探索し、当該エッジまでの距離を候補曲線ごとに見積もることによって決定する。候補曲線は上述のように、パラメータ記憶部48から読み出したΩ形のテンプレートに対し、各パーティクルを規定するパラメータを作用させることによって得られる。
【0048】
結果取得部50は、観測部46が観測した尤度に基づき式3で示すような確率密度分布を形状空間ベクトルxの空間において算出し、それにより各パラメータを重み付け平均する。また次の時刻t+1における追跡処理に使用するため、サンプリング部42にそのデータを返す。
【0049】
追跡対象が複数存在する場合、結果取得部50はさらに、それぞれに用意したテンプレートを用いて、追跡対象ごとに追跡を行う。また複数の追跡対象が重なるような場合を追跡結果によって検出し、後ろに隠れる追跡対象については所定のタイミングで追跡処理対象からはずすなどの措置を講じる。これにより追跡対象が別の追跡対象の背後に回ったことによって観測尤度が一時的に低下しても、不適当な追跡結果を出力するのを避けることができる。
【0050】
図7は動作検出部28の構成を詳細に示している。動作検出部28は、画像取得部20が取得した各時刻における画像フレーム内での、発光デバイス18の発光部6の像の位置データと、追跡処理部26による視覚追跡の結果推定された各時刻の頭部輪郭の曲線データを取得する位置データ取得部52、発光部6の像の位置データと頭部輪郭の曲線データを蓄積し履歴として記憶する履歴記憶部56、発光部6の像と頭部輪郭の曲線との相対位置の時間変化から、所定の動作がなされたと判定する基準を記憶する判定基準記憶部58、当該判定基準に照らし、実際のデータに基づき動作がなされたか否かを判定する動作判定部54を含む。
【0051】
位置データ取得部52は、画像取得部20から入力画像のフレームを取得し、発光デバイス18の発光部6の、画像フレーム内での位置座標を取得する。さらに、追跡処理部26が各画像フレームに対し推定した頭部輪郭を表す曲線のデータを取得する。頭部輪郭を表す曲線のデータは上述のように、各パーティクルを規定する形状空間ベクトルのパラメータを確率密度分布で重み付け平均して得られた結果である。それぞれ取得した結果は、画像フレーム空間内の同一の座標系で表現し、フレームごとに履歴記憶部56に順に蓄積していく。
【0052】
動作判定部54は、履歴記憶部56に記憶された、直近の所定期間における発光部6の像の位置と頭部輪郭の曲線のデータを読み出し、それらの相対位置の時間変化と、判定基準記憶部58に登録した判定基準とを照合し、登録された動作がなされたか否かを判定する。判定結果は出力データ生成部30に通知する。判定基準記憶部58に登録する動作および当該動作がなされたと判定する基準は、情報処理システム10がその後に行う処理内容によって異なってよい。このとき情報処理内容を規定するソフトウェアには、判定すべき動作と判定基準とを対応付けたテーブルを付加データとして含め、当該ソフトウェアが起動されたときに判定基準記憶部58に読み出すようにする。
【0053】
次に、発光部6の像および頭部輪郭の曲線の相対位置の変化から判別できる動作と、それを利用した情報処理の具体例を説明する。図8は上述の構成を有する情報処理システム10で実現できる情報処理の例を説明する概念図である。同図は情報処理として、表示装置16に表示した仮想世界において、ユーザ1の動きに対応して動く忍者のオブジェクト2が冒険したり敵と戦ったりするロールプレイングゲームを例示している。
【0054】
このようなアプリケーションの場合、ユーザ1の全体的な動きは、追跡処理部26によって、上述のとおり頭部輪郭を取得することにより検出できる。その結果を用いて、各画像フレームにおけるオブジェクト2の頭部位置を決定し、それに基づき必要な体の部位を描画していく。また、ユーザが撮像装置に近づいたり離れたりしたことを頭部輪郭の大きさにより判断して、オブジェクト2を仮想世界で前進させたり後退させたりすることもできる。さらに発光部6の像の平面上の座標に基づきオブジェクト2の手の座標、発光部6の像の大きさに基づきオブジェクト2の手の奥行き方向の位置も決定できる。なお図8の例では、オブジェクト2はユーザ1を撮像した入力画像の鏡面画像として描画している。
【0055】
図9は、図8に示したようなアプリケーションにおいて動作検出部28と出力データ生成部30が行う処理の例を説明する図である。図中、垂直下方向が時間軸であり、時系列順に時刻A、B、およびCにおいて撮像装置12が取得した入力画像100a、100b、100c、各入力画像から得られる、頭部輪郭の曲線70と発光部6の像72の位置データ102a、102b、102c、および、各時刻における動作検出結果などに基づき描画される表示画像104a、104b、104cを表している。
【0056】
なお時刻A、B、Cはユーザの動作のうち特徴的な瞬間であり、その間も所定のフレームレートで画像取得、追跡処理、動作判定、表示が逐次なされている。また、図8に示すように表示画像はユーザを撮像した画像フレームの鏡面画像でよいが、図9では理解を容易にするため変換前の画像を示している。
【0057】
まず時刻Aの入力画像100aにおいてユーザの像68は、入力画像100aに写る位置に発光デバイス18を持っている。この入力画像100aおよびそれ以前の画像フレームからの追跡処理の結果から、頭部輪郭の曲線70および発光部6の像72の位置データ102aを取得する。この位置データ102aに基づき、表示画像104aのオブジェクト2を描画する。具体的には、頭部輪郭の曲線70から頭部の位置、発光部6の像72の位置から手の位置を決定し、それに基づきオブジェクト2の全体像を描画する。
【0058】
ここで、オブジェクト2は図8に示すように忍者であり、武器として背中に刀74を装備しているとする。このような態様において本実施の形態では、頭部輪郭の曲線70と発光部6の像72の位置とを逐次追跡し、それらの相対位置に基づき、ユーザが刀を抜いた、振った、鞘に納めた、といった複雑な動作を判別する。時刻Aではそれまでの流れから、刀74は背中の鞘に納められており、オブジェクト2の手には何も握られていないように表示されている。
【0059】
ここでユーザが刀を抜く動作をしたとする。この場合、まず時刻Aから時刻Bまでの時間において、ユーザ、すなわちユーザの像68は、発光デバイス18を保持した手を矢印a0の方向に動かす。発光部6の位置は撮像装置12が取得するフレームレートでトレースされ、同期間において発光部6の像72の位置データは矢印a2のように変化する。それに基づき表示画像104aでは、オブジェクト2の手を矢印a4のように動かす。
【0060】
そして時刻Bで、入力画像100bに示すように、ユーザ、すなわちユーザの像68は発光部6が肩に隠れる程度の位置まで発光デバイス18を移動させる。すると同時刻での発光部6の像72の位置データは取得されず、位置データ102bに示すように頭部輪郭の曲線70のみが位置データとして記録される。しかしながら本実施の形態では、頭部輪郭の曲線70と発光部6の像72の相対位置の時間変化を、フレームレートのオーダーで逐次取得しているため、発光部6が肩の後ろに隠れている、すなわちユーザが発光デバイス18を持った手を背中に回した、という動作を検出できる。
【0061】
この動作の検出は、必ずしも発光部6が完全に隠れている状態でなされなくてもよいが、本実施の形態では上述のように相対位置の時間変化を取得しているため、完全に隠れていたとしても発光部6の検出エラーとなることが少ない。また、頭部輪郭の曲線70と発光部6の大きさの変化も取得しているため、ユーザの手が体の前面にあるか背面へ回りそうかも特定でき、検出精度が高い。このようにユーザが手を背中に回した、という動作を検出したら、表示画像104bに示すように、オブジェクト2の手が背後の刀74の柄を握ったように描画する。
【0062】
次に時刻Bから時刻Cまでの時間においてユーザは、発光デバイス18を保持した手を矢印b0の方向に動かし、発光部6が肩から出現すると、位置データにおいては頭部輪郭の肩の稜線から発光部6の像72が矢印b2の方向に移動するように出現する。このように肩の稜線から発光部6の像72が出現し、かつその直前の時刻Bにおいて刀の柄を握る動作をオブジェクト2にさせている場合は、表示画像において、オブジェクト2が握った刀を鞘から抜いたように描画する。
【0063】
その後は、時刻Cに示すように、ユーザすなわちユーザの像68が発光デバイス18を下ろすと(入力画像100c)、そのときの頭部輪郭の曲線70と発光部6の像72の位置データ102cが取得され(位置データ102c)、それに基づき表示画像104cが生成される(表示画像104c)。図に示すように、時刻Aと時刻Cの入力画像においてユーザのポーズは同様である。しかしながら時刻Cにおける表示画像104cではオブジェクト2が刀74を手にしていることになる。このように、入力された動画像を構成する2つの画像フレームでユーザが同じポーズをとっていても、動画像としての連続的な動きを監視していくことにより、ユーザの意図に合致した異なる表示を行うことができる。
【0064】
例えば時刻Cでは、表示画像104cにおけるオブジェクト2は刀74を手にしているため、以後のあるタイミングでユーザが時刻AからBと同様の動作をしても、今度は刀を鞘に納める動作であると判定できる。本実施の形態では、頭部輪郭という2次元形状と、発光部6の像という点形状との位置関係に着目する。したがって刀を鞘から抜く際、および納める際には、頭部輪郭の肩の稜線と発光部6の像との距離に応じて、刀の先がオブジェクト2の背後に隠れたように陰面消去処理を行うことができ、よりリアルな画像を表示することができる。また肩の稜線を把握しているため、発光部6の像が消えた場合に、図9の時刻Bのような動作がなされたのか、もう片方の手や別の人物などによって偶然隠れたのかを判別することもできる。
【0065】
図9では理解を容易にするため、ユーザの像68の頭部は大きく移動しないように表示したが、本実施の形態の上記手法は、頭部輪郭という、ユーザの顔の向き、体の向きに依存しない形状に基づいているため、ユーザがどのような体勢にあっても同様に処理を行うことができる。図8において説明したようなロールプレイングゲームや格闘技ゲームなどのアプリケーションでは、ユーザがあらゆる方向を向いたり動いたりすることを許容できることが望ましいため、本実施の形態の効果を顕著に発揮できる。これにより、より複雑かつリアルな仮想世界を表現することが可能になる。また横になって行うゲームなど、アプリケーションを多様化することができる。
【0066】
図9に示したユーザの体勢では、「発光部6の像72が肩の稜線を越える→発光部6の像72が肩の稜線に再度近づきつつ消える」、という位置データの時間変化の判定基準と、それまで刀を握っていたか否かの場合分けによって、ユーザが刀を抜く動作、鞘に納める動作を判定し、陰面消去など必要な処理を施しながら当該動作を表示画像へ反映させた。一方情報処理の内容によっては、ユーザが寝転ぶなど肩の稜線が著しく傾いた場合に別の基準を用意しておく。図10はユーザ自体の傾きが大きいときの動作の判定基準を説明するため図である。
【0067】
図10の入力画像100dにおいてユーザの像68は寝転んだ状態で発光デバイス18を動かしている。このような体勢においては、ユーザが発光デバイス18を上に上げることと、位置データ102dにおいて発光部6の像が頭部輪郭の肩の稜線を越えることとは必ずしも一致しない。そこで別の判断基準として水平線76を導入する。水平線76は、頭部輪郭の曲線70のうち上側の肩の端点を通る水平の線である。
【0068】
そして、発光部6の像72が水平線76を越えて上に移動した場合、ユーザが手を上げる動作、水平線76から下に下りた場合、ユーザが手を下げる動作として判別する。ユーザが寝転んだ、あるいはそれに準じる程度に傾いた、といった事象は、図中、破線78のに示す頭部輪郭の縦方向の、鉛直方向に対する傾きにしきい値を設けることにより判定する。この傾きは、頭部輪郭の曲線70を定義する形状空間ベクトルのうち、回転角を表すパラメータθに基づき求めることができる。そして傾きがしきい値を越えた時点で判断基準を切り替える。なお水平線76による判定基準は例示であり、動作の判定後になされる情報処理の内容などによって適宜設定してよい。
【0069】
次に発光部6の像および頭部輪郭の曲線の相対位置の変化による動作検出を利用した情報処理の別の例を説明する。この例では、発光デバイス18をそれぞれ持った二人のユーザを撮像対象とし、それぞれの動きを反映させた二人のオブジェクトを表示装置16に表示する。図11はこのようなアプリケーションにおいて表示する画像例を示している。表示画像110においてオブジェクト112a、112bは二人のユーザにそれぞれ対応し、コンピュータグラフィックスによって描画してもよいし、撮像したユーザをそのまま、あるいは鏡面画像に変換して表示してもよい。表示画像110ではさらに、各ユーザの頭および両肩に風船のオブジェクト116a、116bを、ユーザが発光デバイス18を保持する手にハンマーのオブジェクト114a、114bを描画する。
【0070】
このような構成とすることで、ユーザが表示装置16に表示された表示画像110を見ながら発光デバイス18を振ることにより、仮想世界における相手のオブジェクトにつけられた風船を自分が保持するハンマーで叩き割るゲームを実現できる。この場合も、発光デバイス18の発光部6の像と、それを保持するユーザの肩の稜線との相対位置の時間変化によって、ユーザがハンマーを振り上げる動作を検出する。上述したように、ユーザがいかなる体勢になっても、頭部輪郭の一部として肩の稜線を追跡できるため、それを基準に発光部6の動きを追うことにより、ユーザがハンマーを振り上げようとしたタイミングを検出することができる。
【0071】
また、このように検出したユーザの動作に加え、上記で触れたように発光デバイス18の内部にジャイロセンサーを内蔵し、発光デバイス18の角速度の測定結果も表示画像110に反映させるようにしてもよい。例えば、ハンマーを振り下ろそうとする動作を検出したら、発光デバイス18の角速度に応じてハンマーの取っ手を長くする。図11の例ではこのようにして、ハンマーを振り下ろそうとしているユーザ側のハンマーのオブジェクト114bの取っ手が、他方のユーザのハンマーのオブジェクト114aの取っ手より長くなっている。このようにすることで、取っ手の長さの変化も考慮したうえで、相手の風船を割る速さを競う、といったゲームを実現できる。
【0072】
また、ハンマーを振り上げたと判定するより前の時点、例えば発光部6の像が肩の稜線を下から上へ所定の速度で越えようとしている時点などを第2の基準として設けてもよい。この第2の基準を満たした場合、ユーザがこれからハンマーを振り上げようとしていると判断し、ハンマーを振り上げる画像の描画処理やジャイロセンサーによる測定開始など、その後に必要と予測される処理を投機的に行うようにしてもよい。このようにすることで、ユーザの動きに対する表示画像の応答性を高めることができる。
【0073】
図11のアプリケーションのように複数のユーザが撮像対象となっている場合、それぞれが保持する発光デバイス18の発光部6の像が、どちらのユーザのものかを判別する必要がある。本実施の形態では上述のとおり各ユーザの肩の稜線が取得できているため、当該稜線の傾きと、発光部の像の位置によって、発光部の像とユーザとの対応付けが可能である。すなわち、ユーザの像112bのように肩の稜線が上がっていれば、その延長線の近傍にある発光部の像は当該ユーザが保持する発光デバイス18の物である。
【0074】
あるいはゲーム開始時に、発光部6の像と頭部輪郭の曲線との対応付けを行うようにしてもよい。具体的には、各ユーザが肩や頭頂部に発光部6が接するように発光デバイス18を持ち、それを初期画像として頭部輪郭の追跡処理および発光部6の像の位置データを取得するようにすればよい。両者とも時間経過に対して逐次位置の変化が追跡されるため、初期画像において両者の対応関係を取得しておけば、いずれの時刻においても対応がとれていることになる。
【0075】
上記初期画像を取得する際には、発光部6の像の大きさと頭部輪郭から得られる頭部の大きさの相対的関係を取得してもよい。これを基準とし、ゲーム中に取得した両者の大きさの相対関係と比較することにより、発光デバイス18がユーザより後ろにあるか前にあるかを判断することができる。すなわち、相対的に発光部6の像が大きくなっていれば発光デバイス18はユーザの頭などより撮像装置12に近く、小さくなっていれば発光デバイス18はユーザの頭などより撮像装置12から離れている、と判定する。この結果を、これまで述べた発光部の像と頭部輪郭の曲線の相対位置の時間変化に加味することにより、さらに複雑な動作を判別したり、投機的処理を行ったりすることができる。
【0076】
図8、図11で示したアプリケーションはあくまで一例であり、頭部輪郭の曲線とユーザが保持する発光デバイスの発光部の像との相対位置の時間変化を利用した動作検出は、様々な情報処理に適用することができる。例えばユーザの動作をマウスの代替手段としてもよい。すなわち、撮像したユーザの動きを4つに類型化し、それぞれを一般的にマウスが備える4種類の機能に割り当てる。
【0077】
図12はこのような態様における動作の割り当て例を説明する図である。この例ではユーザの状態を、発光部6が肩の稜線より下にある(類型120a)、発光部6が肩の稜線より上にあり、頭部輪郭の外側にある(類型120b)、発光部6が肩の稜線より上にあり、頭部輪郭の前方にある(類型120c)、発光部6が肩の稜線より上にあり、頭部輪郭の後方にある(類型120d)、の4つの類型に分け、それぞれ、マウス122本体の移動、スクロール、右クリック、左クリックに割り当てる。
【0078】
類型120aの場合、発光部6と頭部輪郭との距離をマウスの移動速度に変換する。移動方向は発光部6と頭部輪郭の相対位置によって決定する。類型120bの場合も、発光部6と頭部輪郭との距離をスクロール速度に変換し、スクロール方向は発光部6と頭部輪郭の相対位置によって決定する。類型120dは、発光部6が頭の後ろに隠れて見えない状態であるが、発光部6の像の位置変化を取得しているため、頭の後ろに隠れたことを認識できる。そして発光部6が見えるか否かによって、類型120cと類型120dとを区別できる。
【0079】
ユーザは、例えば表示装置16の画面を見ながら必要に応じていずれかの類型の動作を行う。このとき、ユーザが意図をもって動作を行っているか否かを区別するため、発光デバイス18に設けたボタンを押した状態でいずれかの類型の動作を行った場合に、その後の処理を行うようにするなど、類型判断を開始するための規則をあらかじめ設定しておく。ボタンを押していない状態や、発光部6の発光開始などを類型判断の開始としてもよい。ユーザの動作がいずれの類型であるかを判定したら、上述の割り当てに従い当該動作をマウスの操作に変換する。その後は通常のマウス操作でなされるものと同様に、画面上の画像を変化させる。この態様においても、頭部輪郭という2次元形状と、発光部6の形状とを同時に取得し、その経時変化を取得することで、単純な動作でも容易にマウス操作に代えることができる。
【0080】
次に、これまで述べた構成によって実現できる情報処理装置14の動作について説明する。図13は、ユーザの動作を反映して動くオブジェクトを表示するための情報処理装置14の処理手順を示すフローチャートである。まずユーザが発光デバイス18を手に持ち、アプリケーションのソフトウェアを起動させると、撮像装置12が当該ユーザの撮像を開始するとともに表示装置16に初期画面を表示する(S108)。
【0081】
ソフトウェアの起動は、ユーザが発光デバイス18に設けた図示しない起動ボタンを押下することにより行うようにする。ソフトウェアの起動によって、情報処理装置14が発光デバイス18の発光部6を発光させるよう制御する。あるいは発光デバイス18に設けた図示しないオン/オフボタンによってユーザが発光開始操作を行うようにしてもよい。次に、必要に応じて、上述のように各ユーザの頭部輪郭と発光部の像との対応関係を取得するなどの初期処理を行う(S109)。
【0082】
一方、追跡処理部26は撮像装置12が撮像した入力画像を逐次読み込んで頭部輪郭の視覚追跡を開始する(S110)。動作検出部28の位置データ取得部52は、追跡の結果として、現在時刻tにおける画像フレームの頭部輪郭の曲線データを取得するとともに、画像取得部20が取得した入力画像フレームから、発光部6の像の位置データを取得する(S112、S114)。各データは時刻順に履歴記憶部56に格納する。動作判定部54は、現在時刻までの所定期間における、頭部輪郭の曲線と発光部の像の相対位置の時間変化を読み出し、判定基準記憶部58に登録済みの、動作の判定基準のいずれかに当てはまるか否かを判定する(S116)。
【0083】
上述のとおり、一つの動作を判定するために、相対位置の変遷に対して複数のタイミングで基準を設定する必要がある場合も多いため、動作判定部54は所定時間、相対位置の監視を継続し、全ての基準が満たされたときに、対応して登録された動作がなされたと判定する。登録された動作がなされたと判定されたら(S116のY)、当該動作に対応する画像を描画する(S118)。具体的には、表示画像内のオブジェクトに、判定された動作に対応する動きをさせたり、マウスの操作に変換して表示画像を変化させたりする。
【0084】
加えて、必要に応じて頭部輪郭の曲線や発光部6の動きに合わせてオブジェクトを動かすなどして最終的に得られる最新画像を表示する(S120)。登録された動作がなされていない場合も(S116のN)同様に、必要な動きを加えた最新画像を表示する(S120)。処理を終了する必要が生じない間は(S122のN)、次の画像フレームの時刻t+1についてS112からS120の処理を行うことを繰り返し、ユーザによる処理の停止指示や、ゲームの終了などによって処理を終了する(S122のY)。
【0085】
以上述べた本実施の形態によれば、ユーザの頭部領域を視覚追跡技術により時間発展的に追跡するとともに、ユーザが保持する発光デバイスの発光部の像の位置を逐次取得する。そして両者の相対位置の時間変化をあらかじめ定めた基準と照らすことにより、登録された動作がなされたことを判別する。ユーザがどのような体勢にあっても、またどのような方向を向いていても、頭部輪郭形状への影響は少ないため、ユーザの手が体に対してどのように動いているかを性格に認識することができる。撮像装置の位置が変化しても同様に処理が可能である。結果として、幅広い環境、複雑な動作にも対応することができ、ゲームをはじめ適用できるアプリケーションの幅が増えるとともに、よりリアルな仮想世界を表現することが可能となる。
【0086】
さらに、発光部の像がユーザの背後に隠れるなどしても、時間変化を取得しているため、どこに隠れているかを認識できる。そして肩のラインなどに基づき、表示画像に描画したオブジェクトに対し陰面消去などの処理を行ったり、隠れた状態をマウスの機能に割り当てたり、といった多様な処理に利用することができる。本実施の形態は、一般的な情報処理システムのほかは、発光デバイスおよび撮像装置を準備するのみで実現できるため、たくさんの発光体を体に貼り付けたりする必要がなく、ユーザに手間や煩わしさを感じさせることが少ない。また必要な装置が限られるため安価に実現できる。さらに顔検出やパターンマッチングなど、基本的には静止画像に対して行う処理によって動作検出を試みるより、正確かつ高速に動作判定を行える。
【0087】
また、動作がなされたと判定する前に、当該動作へ移行しそうであることを、相対位置の時間変化によって予測できるため、その後の処理を投機的に行っておけば、より応答性のよいアプリケーションが実現できる。
【0088】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0089】
例えば複数のユーザが並んだ状態を撮像し、挙手したユーザを検出して自動でズームアップする撮影装置が考えられる。このときユーザは発光デバイスを保持するのに代わり、発光体を手に貼り付けるなどしてもよい。この場合も、各ユーザの肩の稜線の水準へ発光体が下から近づき当該水準を越える時間変化がなされたとき、あるいは越えた状態が所定時間継続したときに、挙手がなされたと判定する。複数のユーザによる挙手がなされた場合でも、それぞれの挙手の判定タイミングによって、最も早く挙手したユーザを同定できる。
【符号の説明】
【0090】
6 発光部、 8 ハンドル、 10 情報処理システム、 12 撮像装置、 14 情報処理装置、 16 表示装置、 18 発光デバイス、 20 画像取得部、 26 追跡処理部、 28 動作検出部、 30 出力データ生成部、 32 出力制御部、 40 画像処理部、 42 サンプリング部、 46 観測部、 50 結果取得部、 52 位置データ取得部、 54 動作判定部、 56 履歴記憶部、 58 判定基準記憶部。
【特許請求の範囲】
【請求項1】
マーカーを装備したユーザの動きを動画像として撮像する撮像装置と、
前記撮像装置が撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する追跡処理部と、
各画像フレームにおける、前記マーカーの像と前記追跡処理部が推定したユーザの輪郭の相対位置を逐次記憶する履歴記憶部と、
前記履歴記憶部が記憶した相対位置の時間変化を、あらかじめ動作ごとに設定した第一の基準と照合することにより、当該動作がなされたか否かを判定する動作判定部と、
前記動作判定部が動作がなされたと判定したとき、当該動作に対応した処理を行い出力データを生成する出力データ生成部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記動作判定部は、前記マーカーがユーザの背面に隠れたことおよび隠れた位置を前記相対位置の時間変化より検出し、隠れた位置によっても、動作がなされたか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記追跡処理部は、ユーザの肩の稜線を含む頭部輪郭を推定し、
前記動作判定部は、ユーザが手に持つマーカーの像と前記肩の稜線との相対位置の時間変化を前記第一の基準と照合することにより、ユーザの腕に係る動作がなされたか否かを判定することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記動作判定部は、鉛直方向に対する前記頭部輪郭の縦方向の傾きが設定されたしきい値より大きくなったとき、前記ユーザの腕に係る動作がなされたか否かを判定するための前記第一の基準を、前記頭部輪郭のうち上側の肩の稜線の端点を通る水平線と前記マーカーの像との相対位置の時間変化に対して設定された別の基準に切り替えることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記出力データ生成部は、前記動作判定部が検出した動作によって、ユーザの動きを反映して動くオブジェクトを描画した表示画像を生成し、前記動作判定部が前記マーカーがユーザの背面に隠れたことおよび隠れた位置を前記相対位置の時間変化より検出したら、それに対応するように前記オブジェクトが手に持つ物の少なくとも一部が隠れるように陰面消去処理を行うことを特徴とする請求項2から4のいずれかに記載の情報処理装置。
【請求項6】
前記動作判定部は、前記相対位置の時間変化を、あらかじめ動作ごとに設定した第二の基準と照合することにより、当該動作がなされることを予測し、
前記出力データ生成部は、当該動作がなされたと判定される前に、当該動作に対応して行うべき処理を投機的に行うことを特徴とする請求項1から5のいずれかに記載の情報処理装置。
【請求項7】
前記撮像装置は、それぞれマーカーを手に持った複数のユーザの動きを撮像し、
前記動作判定部は、前記肩の稜線の傾きと前記マーカーの像の位置との関係から、前記マーカーの像と前記肩の稜線との対応関係を取得し、対応する前記マーカーの像と前記肩の稜線との相対位置の時間変化を前記基準とそれぞれ照合することにより、動作がなされたか否かをユーザごとに判定することを特徴とする請求項3または4に記載の情報処理装置。
【請求項8】
マーカーを装備したユーザの動きを動画像として撮像するステップと、
撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定するステップと、
各画像フレームにおける、前記マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させるステップと、
前記メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定するステップと、
前記動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成するステップと、
を含むことを特徴とする情報処理方法。
【請求項9】
マーカーを装備したユーザの動画像のデータを入力データとしてコンピュータに処理を実現させるコンピュータプログラムであって、
前記動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する機能と、
各画像フレームにおける、前記マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させる機能と、
前記メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定する機能と、
前記動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項10】
マーカーを装備したユーザの動画像のデータを入力データとしてコンピュータに処理を実現させるコンピュータプログラムを記録した記録媒体であって、
前記動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する機能と、
各画像フレームにおける、前記マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させる機能と、
前記メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定する機能と、
前記動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した、コンピュータにて読み取り可能な記録媒体。
【請求項1】
マーカーを装備したユーザの動きを動画像として撮像する撮像装置と、
前記撮像装置が撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する追跡処理部と、
各画像フレームにおける、前記マーカーの像と前記追跡処理部が推定したユーザの輪郭の相対位置を逐次記憶する履歴記憶部と、
前記履歴記憶部が記憶した相対位置の時間変化を、あらかじめ動作ごとに設定した第一の基準と照合することにより、当該動作がなされたか否かを判定する動作判定部と、
前記動作判定部が動作がなされたと判定したとき、当該動作に対応した処理を行い出力データを生成する出力データ生成部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記動作判定部は、前記マーカーがユーザの背面に隠れたことおよび隠れた位置を前記相対位置の時間変化より検出し、隠れた位置によっても、動作がなされたか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記追跡処理部は、ユーザの肩の稜線を含む頭部輪郭を推定し、
前記動作判定部は、ユーザが手に持つマーカーの像と前記肩の稜線との相対位置の時間変化を前記第一の基準と照合することにより、ユーザの腕に係る動作がなされたか否かを判定することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記動作判定部は、鉛直方向に対する前記頭部輪郭の縦方向の傾きが設定されたしきい値より大きくなったとき、前記ユーザの腕に係る動作がなされたか否かを判定するための前記第一の基準を、前記頭部輪郭のうち上側の肩の稜線の端点を通る水平線と前記マーカーの像との相対位置の時間変化に対して設定された別の基準に切り替えることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記出力データ生成部は、前記動作判定部が検出した動作によって、ユーザの動きを反映して動くオブジェクトを描画した表示画像を生成し、前記動作判定部が前記マーカーがユーザの背面に隠れたことおよび隠れた位置を前記相対位置の時間変化より検出したら、それに対応するように前記オブジェクトが手に持つ物の少なくとも一部が隠れるように陰面消去処理を行うことを特徴とする請求項2から4のいずれかに記載の情報処理装置。
【請求項6】
前記動作判定部は、前記相対位置の時間変化を、あらかじめ動作ごとに設定した第二の基準と照合することにより、当該動作がなされることを予測し、
前記出力データ生成部は、当該動作がなされたと判定される前に、当該動作に対応して行うべき処理を投機的に行うことを特徴とする請求項1から5のいずれかに記載の情報処理装置。
【請求項7】
前記撮像装置は、それぞれマーカーを手に持った複数のユーザの動きを撮像し、
前記動作判定部は、前記肩の稜線の傾きと前記マーカーの像の位置との関係から、前記マーカーの像と前記肩の稜線との対応関係を取得し、対応する前記マーカーの像と前記肩の稜線との相対位置の時間変化を前記基準とそれぞれ照合することにより、動作がなされたか否かをユーザごとに判定することを特徴とする請求項3または4に記載の情報処理装置。
【請求項8】
マーカーを装備したユーザの動きを動画像として撮像するステップと、
撮像した動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定するステップと、
各画像フレームにおける、前記マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させるステップと、
前記メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定するステップと、
前記動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成するステップと、
を含むことを特徴とする情報処理方法。
【請求項9】
マーカーを装備したユーザの動画像のデータを入力データとしてコンピュータに処理を実現させるコンピュータプログラムであって、
前記動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する機能と、
各画像フレームにおける、前記マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させる機能と、
前記メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定する機能と、
前記動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項10】
マーカーを装備したユーザの動画像のデータを入力データとしてコンピュータに処理を実現させるコンピュータプログラムを記録した記録媒体であって、
前記動画像に含まれる各画像フレームにおけるユーザの輪郭の候補曲線を、前の時刻の画像フレームにおいて推定したユーザの輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおけるユーザの輪郭を推定する機能と、
各画像フレームにおける、前記マーカーの像と推定したユーザの輪郭の相対位置を逐次メモリに記憶させる機能と、
前記メモリから読み出した相対位置の時間変化を、あらかじめ動作ごとに設定した基準と照合することにより、当該動作がなされたか否かを判定する機能と、
前記動作がなされたと判定されたとき、当該動作に対応した処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した、コンピュータにて読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−8601(P2011−8601A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−152567(P2009−152567)
【出願日】平成21年6月26日(2009.6.26)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成21年6月26日(2009.6.26)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
[ Back to top ]