情報処理装置および情報処理方法
【課題】体の動きを精度よくユーザインターフェースに利用する。
【解決手段】撮像装置12が取得したユーザの姿を含む動画像のデータを、情報処理装置14の画像取得部20が取得する。初期処理部22は、ユーザの移動量と最終的に出力する画像を規定するパラメータとの対応関係を決定し変換情報記憶部24に格納する。追跡処理部26は、パーティクルフィルタによる視覚追跡を動画像に対し行い、ユーザの頭部輪郭の倍率、並進量を推定する。入力値変換部28は、倍率、並進量を媒介として、ユーザの移動量を画像を規定するパラメータに変換する。出力データ生成部30は、当該パラメータに基づき画像を生成する。出力制御部32は生成された画像を表示装置16に表示するよう制御する。
【解決手段】撮像装置12が取得したユーザの姿を含む動画像のデータを、情報処理装置14の画像取得部20が取得する。初期処理部22は、ユーザの移動量と最終的に出力する画像を規定するパラメータとの対応関係を決定し変換情報記憶部24に格納する。追跡処理部26は、パーティクルフィルタによる視覚追跡を動画像に対し行い、ユーザの頭部輪郭の倍率、並進量を推定する。入力値変換部28は、倍率、並進量を媒介として、ユーザの移動量を画像を規定するパラメータに変換する。出力データ生成部30は、当該パラメータに基づき画像を生成する。出力制御部32は生成された画像を表示装置16に表示するよう制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理技術に関し、特にユーザの入力に応じた処理を行うためのユーザインターフェースを含む情報処理装置およびそこで実行される情報処理方法に関する。
【背景技術】
【0002】
近年、ゲーム装置や電化製品などを含む電子機器は、その機能が著しく高度化している。それに伴い、ユーザインターフェースによってユーザが行うことのできる入力体系は複雑化している。そのような複雑な入力体系にあっても容易な入力が可能となるように、ユーザインターフェースには様々な工夫がなされてきた。例えば、コントローラにおけるボタンの割り付けを工夫したり、タッチパネルを利用したりするほか、ユーザを撮像する装置をインターフェースとし、ユーザの顔の状態を検出することによって、様々なイベントを実行する技術も提案されている(例えば特許文献1参照)。
【0003】
このように撮像装置をユーザインターフェースとする場合、ユーザの顔の状態を検出するためには、一般的な顔検出技術を利用することができる。例えばあらかじめ準備した基準画像と検出した顔領域の画像とをマッチングしたり、顔領域の面積によって顔の向きや傾きを判断したりする。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−15942号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理技術の進歩によって、電子機器や情報処理装置を利用する環境、ユーザ、処理内容なども多様化し、それらの要因に応じて、望まれるユーザインターフェースも異なってくる。したがってそのようなニーズに合致させて、ユーザインターフェースの態様もさらに多様化させる必要がある。特に、多くのボタンなどによって複雑な入力を行わずともより自然な動きで入力が可能なユーザインターフェースが望まれている。
【0006】
本発明はこのような課題に鑑みてなされたものであり、その目的は、人の動作によって正確かつ多様な入力が可能なユーザインターフェースを含む情報処理技術を提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様は情報理装置に関する。この情報処理装置は、対象物の動きを動画像として撮像する撮像装置と、撮像装置に対する対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、対象物の輪郭線に基づき動画像より推定する入力値取得部と、入力値取得部が取得した三次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、を備えることを特徴とする。
【0008】
本発明の別の態様も情報処理装置に関する。この情報処理装置は、対象物の動きを動画像として撮像する撮像装置と、撮像装置に対する対象物の縦方向、横方向の二次元空間での基準位置からの動き量と、奥行き方向の基準位置からの距離とを前記動画像より推定する入力値取得部と、追跡処理部が取得した二次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、を備え、入力値取得部は、対象物の奥行き方向の基準位置からの距離に基づき、撮像装置による見かけ上の縦方向および横方向の動き量を補正することにより、実際の縦方向および横方向の動き量をそれぞれ推定することを特徴とする。
【0009】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、対象物の動きを動画像として撮像装置により撮像するステップと、撮像装置に対する対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、対象物の輪郭線に基づき動画像より推定するステップと、推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成するステップと、を含むことを特徴とする。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、様々な情報処理において、ユーザ自身の自然な動きを入力値として、多様な処理を精度よく行うことができる。
【図面の簡単な説明】
【0012】
【図1】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図2】人物を追跡対象とした場合の視覚追跡手法を説明するための図である。
【図3】パーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。
【図4】本実施の形態における情報処理装置の構成を詳細に示す図である。
【図5】本実施の形態における追跡処理部の構成を詳細に示す図である。
【図6】本実施の形態における入力値変換部の構成を詳細に示す図である。
【図7】本実施の形態における初期処理部が行うキャリブレーションにおいてユーザを撮像する際の頭部の位置を示す図である。
【図8】本実施の形態においてユーザの奥行き方向の移動と画像規定パラメータとの対応関係を模式的に示す図である。
【図9】本実施の形態において見かけ上の移動量を表す並進量の値を補正する原理を説明するための図である。
【図10】本実施の形態の報処理装置の処理手順を示すフローチャートである。
【図11】図10のフローチャートで処理対象としたゲームにおいて表示装置に表示する画像の、ユーザの位置に対する変化の例を示す図である。
【図12】図10のフローチャートで処理対象としたゲームにおいて表示装置に表示する画像の、ユーザの位置に対する変化の例を示す図である。
【発明を実施するための形態】
【0013】
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、ユーザ18を撮像する撮像装置12、ユーザの動作を検出しそれに応じた情報処理を行う情報処理装置14、情報処理装置が処理した結果得られた画像データを出力する表示装置16を含む。
【0014】
情報処理装置14と、撮像装置12あるいは表示装置16との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいは撮像装置12、情報処理装置14、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置12は必ずしも表示装置16の上に搭載されていなくてもよい。以後の説明では、撮像装置12は表示装置16に対峙したユーザ18を正面から撮像することを前提とするが、撮像する方向が異なっていても、簡単な座標変換により同様の処理を行うことができる。また、撮像装置12のレンズが向く方向を「奥行き方向」とし、レンズ面に水平な平面における「縦方向」および「横方向」を加えた3つの方向を、ユーザが移動する三次元空間の軸として表現する。
【0015】
撮像装置12はユーザ18を含む画像のデータを、所定のフレームレートで取得する。取得された動画像データは情報処理装置14に入力される。情報処理装置14は、撮像装置12から取得した動画像データからユーザの動作を検出する。本実施の形態では、ユーザが自分の動作によってできる入力の自由度を高くするため、撮像装置12に対する奥行き方向の移動の情報も取得する。具体的な手法な後に述べるが、奥行き方向の動きを検出することによって、単に奥行き方向分のパラメータ入力が可能になるばかりでなく、縦方向、横方向の動きを正確に検出することができる。結果として単に画像平面上の動きを検出することに比べ、格段に入力の自由度を向上させることができる。
【0016】
情報処理装置14は、奥行き方向の動きを含むユーザの動作を検出し、それに応じて処理を変化させる。ここで情報処理装置14が実行する、ユーザインターフェースに係る処理以外の処理の内容は限定されない。例えば、表示装置16に表示した画像をユーザ18の視野としたり、ユーザ18に対応するオブジェクトをアバターとして表示したりして、洞窟や街中など仮想空間を移動しながら様々なアクションを起こすゲームなどが考えられる。ロールプレイングゲームやシューティングゲーム、ボクシングゲーム、サッカーゲームなど、そのような状況を利用したゲームは様々考えられる。ゲーム以外にも、仮想空間内の仮想店舗で買い物をしたり、処理のメニューを表示したオブジェクトを選択したりすることもできる。
【0017】
これらの処理はいずれも、表示装置16によって表示される画像とユーザ18の動作を連動させる、という発想に基づいているが、本実施の形態はそれに限らず、ユーザの入力により動作するいかなるアプリケーションでもよい。すなわちユーザの動作と処理との対応づけをあらかじめ行っておけば、表示装置16に表示したテレビ番組やウェブサイトを動作によって切り替えるなどの利用も考えられる。または単にメニューを選択するのみで画像表示を伴わなくてもよい。いずれにしろユーザの動きという単純な変化を「入力値」としても、入力の自由度が高いうえ高精度に「入力値」を検出できるため、様々なアプリケーションと組み合わせが可能である。
【0018】
表示装置16は、情報処理装置14がユーザ18の動作を検出した結果を反映させて生成した画像データを取得し、画像として出力する。以後の説明では、ユーザの動作と表示装置16に表示する画像とを連動させるゲームを処理する態様に主眼を置くが、上述のとおり適用できるアプリケーションは多岐に渡る。
【0019】
次に、情報処理装置14が行う、ユーザ18の動作検出の原理を説明する。本実施の形態では、パーティクルフィルタを用いた視覚追跡処理を、撮像装置12が撮像したユーザ18を含む画像に対して実行する。図2は人物を追跡対象とした場合の視覚追跡手法を説明するための図である。人物画像150は撮像した動画像の画像ストリームを構成する画像フレームのひとつであり、追跡対象である人物152が写っている。当該人物152が、図1におけるユーザ18に対応する。
【0020】
この人物152の動きを追跡するために、人物152の頭部輪郭の形状を近似するΩ形の曲線154を既知の表現で記述する。一方、人物152を含む人物画像150にはエッジ抽出処理を施し、エッジ画像を取得しておく。そして曲線154を規定するパラメータを変化させることにより当該曲線154を並進、伸縮、回転させて、その近傍にあるエッジを探索することにより、人物152の頭部輪郭と最もマッチすると推定されるパラメータの値を特定する。以上の処理をフレームごとに繰り返すことにより人物152の追跡が進捗する。ここでエッジとは一般的には画像の濃度や色に急な変化を有する箇所のことである。
【0021】
規定するパラメータの値を様々にした曲線154と人物152の頭部輪郭とのマッチングを行うために、パーティクルフィルタによる確率分布予測技術を導入する。すなわち、ひとつ前のフレームにおけるパラメータ空間上の対象物の確率分布に応じて曲線154のサンプリング数を増減させ、追跡候補の絞り込みを行う。これにより存在確率の高い部分に対しては重点的に探索を行うことができ、精度のよいマッチングが効率的に行える。
【0022】
対象物の輪郭に着目した追跡に対するパーティクルフィルタの適用手法は、例えば非特許文献(ICondensation: Unifying low-level and high-level tracking in a stochastic framework, Michael Isard and Andrew Blake, Proc 5th European Conf. Computer Vision, 1998)に詳述されている。ここでは本実施の形態に係る点に着目して説明する。
【0023】
まずΩ形の曲線154を、Bスプライン曲線で記述する。Bスプライン曲線はn個の制御点(Q0,・・・,Qn)とn個のノット(s0,・・・,sn)とから定義される。そして基本となる曲線形状、この場合はΩ形の曲線となるように、それらのパラメータをあらかじめ設定しておく。このときの設定によって得られる曲線を以後、テンプレートQtと呼ぶ。なお、図2で示した人物画像150における人物152の追跡を行う場合は、テンプレートQtはΩ形であるが、その形状は追跡対象によって変化させる。すなわち追跡対象がボールであれば円形、手のひらであれば手の形状などとなる。
【0024】
次にテンプレートの状態を変化させるための変換パラメータとして、形状空間ベクトルxを準備する。形状空間ベクトルxは以下のような6つのパラメータで構成される。
【0025】
【数1】
【0026】
ここで(shiftx,shifty)は(x,y)方向への並進量、(extendx,extendy)は倍率、θは回転角である。そして形状空間ベクトルxをテンプレートQtに作用させるための作用行列Wを用いると、変形後の曲線、すなわち候補曲線Qは以下のように記述できる。
【0027】
【数2】
【0028】
式2を用いれば、形状空間ベクトルxを構成する6つのパラメータを適宜変化させることにより、テンプレートを並進、伸縮、回転させることができ、組み合わせによって候補曲線Qを種々変化させることができる。
【0029】
そして、制御点、およびノットの間隔といったテンプレートQtのパラメータや、形状空間ベクトルxを構成する6つのパラメータを変化させることによって表現される複数の候補曲線について、各ノットの近傍にある人物152のエッジを探索する。その後、エッジとの距離などから各候補曲線の尤度を求めることにより、形状空間ベクトルxを構成する6つのパラメータで定義される6次元空間における確率密度分布を推定する。
【0030】
図3はパーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。同図では理解を簡単にするために、形状空間ベクトルxを構成する6つのパラメータのうち、あるパラメータx1の変化を横軸に表しているが、実際には6次元空間において同様の処理が行われる。ここで確率密度分布を推定したい画像フレームが時刻tの画像フレームであるとする。
【0031】
まず、時刻tの画像フレームのひとつ前のフレームである時刻t−1の画像フレームにおいて推定された、パラメータx1軸上の確率密度分布を用いて(S110)、時刻tにおけるパーティクルを生成する(S112)。それまでにフィルタリングを行い、すでにパーティクルが存在する場合は、その分裂、および消滅を決定する。S110において表した確率密度分布は、パラメータ空間上の座標に対応して離散的に求められたものであり、円が大きいほど確率密度が高いことを表している。
【0032】
パーティクルはサンプリングするパラメータx1の値とサンプリング密度とを実体化したものであり、例えば時刻t−1において確率密度が高かったパラメータx1の領域は、パーティクル密度を高くすることで重点的にサンプリングを行い、確率密度の低かった範囲はパーティクルを少なくすることでサンプリングをあまり行わない。これにより、例えば人物152のエッジ近傍において候補曲線を多く発生させて、効率よくマッチングを行う。
【0033】
次に所定の運動モデルを用いて、パーティクルをパラメータ空間上で遷移させる(S114)。所定の運動モデルとは例えば、ガウシアン型運動モデル、自己回帰予測型運動モデルなどである。前者は、時刻tにおける確率密度は時刻t−1における各確率密度の周囲にガウス分布している、とするモデルである。後者は、サンプルデータから取得した2次以上の自己回帰予測モデルを仮定する手法で、例えば人物152がある速度で等速運動をしているといったことを過去のパラメータの変化から推定する。図2の例では、自己回帰予測型運動モデルによりパラメータx1の正方向への動きが推定され、各パーティクルをそのように遷移させている。
【0034】
次に、各パーティクルで決定される候補曲線の近傍にある人物152のエッジを、時刻tのエッジ画像を用いて探索することにより、各候補曲線の尤度を求め、時刻tにおける確率密度分布を推定する(S116)。前述のとおり、このときの確率密度分布はS116に示すように、真の確率密度分布400を離散的に表したものになる。以降、これを繰り返すことにより、各時刻における確率密度分布がパラメータ空間において表される。例えば確率密度分布が単峰性であった場合、すなわち追跡対象が唯一であった場合は、得られた確率密度を用いて各パラメータの値に対し重み付けした和を最終的なパラメータとすることにより、追跡対象の輪郭と推定される曲線が得られることになる。
【0035】
S116において推定される時刻tにおける確率密度分布p(xti)は以下のように計算される。
【0036】
【数3】
【0037】
ここでiはパーティクルに一意に与えられた番号、p(xti|xti, ut-1)は所定の運動モデル、p(yt|xti)は尤度である。式3で得られる確率密度分布は、形状空間ベクトルの各パラメータに対して得られる。したがって当該確率密度分布でパーティクルの加重平均を求めることにより、各時刻の形状空間ベクトルが推定できる。
【0038】
一方、図1に示した、ユーザの動作を撮像してそれを入力値とする態様を考える。撮像対象が撮像装置に近ければ当該対象は大きく写り、遠ければ小さく写る、といったように、撮像装置12とユーザ18との距離と、頭部輪郭の大きさとはおよそ比例関係にあることが実験的に判明しているため、本実施の形態ではその性質を利用する。すなわち、形状空間ベクトルのうち倍率を表す(extendx,extendy)に着目し、その変化がユーザの奥行き方向の移動量を反映しているとして、入力値に利用する。また、縦横方向の動きは形状空間ベクトルのうち並進量を表す(shiftx,shifty)によって検出する。
【0039】
単眼のカメラを撮像装置に用いてユーザの動きを検出する場合、撮影された画像はその面上の二次元の情報のみで構成されるため、ユーザの奥行き方向の動きを検出することは難しい。二次元情報から奥行きの情報を取得するために、顔検出技術によって検出した顔領域の面積の変化を用いることが考えられるが、顔の向きや髪の毛のかかり具合などによって奥行き方向の距離とは無関係に顔領域の面積が変化しやすく、十分な精度が得られない場合があり得る。
【0040】
また上記手法では、断続的に撮影した複数の静止画における顔領域の面積を比較することによって奥行き方向の移動を検出することになるが、撮影範囲に複数の人が存在したり、カメラの前を何かが横切ったりといった様々な環境の変化をも検出結果として取り込んでしまうことが考えられ、常に対象とする人の動作のみを検出することは困難である。
【0041】
本実施の形態では、ユーザの頭部輪郭を連続的に追跡する。一般的に頭部輪郭は、顔の向きや髪の毛が変化してもその大きさはほとんど変化しない。そのため頭部輪郭の大きさを媒介とすれば、そのようなユーザ自身の変化の影響をほとんど受けることなく奥行き方向の位置を把握することができる。またフレームごとなど連続的に追跡を行うため、撮影範囲に別の人や物が存在しても対象とするユーザの動きのみを正確に抽出し易く、そのような周囲の環境にも強い耐性を有する。さらに対象とする人ごとに追跡を行えるため、複数のユーザでゲームなどを行っても、対象を取り違えることなくユーザ個々の動作に応じた処理を行うことができる。
【0042】
図4は情報処理装置14の構成を詳細に示している。情報処理装置14は、撮像装置12から入力される入力画像データを取得する画像取得部20、ユーザの実際の動きと、連動させる画像の動きとの対応づけを行う初期処理部22、上述の視覚追跡処理を実行する追跡処理部26、追跡の結果得られた倍率や並進量のパラメータを画像の動きを規定するパラメータ(以後、「画像規定パラメータ」と呼ぶ)に変換する入力値変換部28、当該画像規定パラメータを用いて新たな画像データを生成する出力データ生成部30、および、生成された画像データの表示装置16への出力を制御する出力制御部32を含む。
【0043】
図4および以後の図5、6において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0044】
なお、出力データ生成部30は、ユーザの動きと連動する画像を表示するゲームであれば当該画像のデータを生成するが、上述のように本実施の形態は様々なアプリケーションへの応用が可能であるため、画像データを生成するばかりでなく各アプリケーションに応じた処理を行ってよい。したがって入力値変換部28は、追跡の結果得られたパラメータを、あらかじめ当該パラメータと対応づけたアプリケーションの機能IDなどに変換し、出力データ生成部30が当該機能IDに対応する機能を実現する処理を行うようにしてもよい。
【0045】
画像取得部20は、有線、無線を問わず撮像装置12からユーザの画像を取得する。初期処理部22は、ユーザが最大限動いたときの追跡処理によって得られる形状空間ベクトルのパラメータの振り幅と、画像規定パラメータの可変幅とを対応づけるためのキャリブレーションを行う。具体的には、最大限動いたときの位置にユーザを立たせるなどしてそれぞれの画像を撮影し、その際の形状空間ベクトルのパラメータを取得することによって各パラメータの振り幅を得る。倍率、並進量の各パラメータの最大値、最小値が、画像規定パラメータの可変範囲の最大値、最小値のいずれかと対応するように対応関係を決定する。最大値、最小値以外の対応関係の決定の仕方はゲームの内容などによって異なっていてよい。詳細は後に述べる。このようにして決定した、対応関係を表すデータは、変換情報記憶部24に格納する。
【0046】
追跡処理部26は、上述の視覚追跡の手法によりユーザの動きを追跡する。以後の説明ではユーザの頭部輪郭を追跡する例を説明するが、本実施の形態における追跡対象は頭部に限らない。ただし上述のような理由から、移動によって撮像装置12に対する角度が変化しても、撮像装置からの見かけ上の形状が変化しない、あるいは変化しにくい輪郭を有する物を追跡対象とすることが望ましい。例えば持ち手である棒の先に球体がついた物をユーザに持たせ、当該球体を追跡対象としても、頭部と同様の結果を得ることができる。
【0047】
入力値変換部28は、追跡処理部26の追跡の結果得られる各時刻における倍率および並進量の値に基づき、変換情報記憶部24が記憶する対応関係を表すデータを参照することにより、各時刻の画像規定パラメータを取得する。出力データ生成部30は、入力値変換部28が取得した画像規定パラメータに基づき、表示画像がユーザの動きによって変化するように新たな画像データを生成する。生成した画像は、出力制御部32の制御のもと、表示装置16に表示する。
【0048】
図5は追跡処理部26の構成を詳細に示している。追跡処理部26は、入力画像データからエッジ画像などを生成する画像処理部40、パーティクルの生成および消滅によってパラメータ空間におけるサンプリングを行うサンプリング部42、各パーティクルが規定する候補曲線の尤度を観測する観測部46、観測の結果を統合し、形状空間ベクトルを推定する結果取得部50、Ω形のテンプレートを規定するパラメータを記憶するパラメータ記憶部48を含む。なお、ユーザの体の位置や動作を検出する場合はテンプレートをΩ形とすることで頭部の輪郭を追跡すればよいが、テンプレートの形状はそれに限らない。例えばユーザの手のみを撮像してその位置や動作により処理を行う場合、テンプレートは手のひらの形とするなど、撮像対象によってテンプレート形状は異なってよい。
【0049】
画像処理部40は、入力画像データの画像フレームごとにエッジ抽出処理を施し、エッジ画像を生成する。ここではキャニーエッジフィルタや、ソーベルフィルタなど一般的なエッジ抽出アルゴリズムを用いることができる。また画像処理部40は、背景差分を利用した前景抽出器(図示せず)を実装していてもよく、エッジ抽出処理の前処理として入力画像から追跡対象を含む前景を抽出することにより、追跡対象のエッジを効率的に抽出するようにしてもよい。
【0050】
サンプリング部42は、一つ前の時刻t−1における画像フレームに対して推定された、形状空間ベクトルxの空間での確率密度分布に基づきパーティクルの生成および消滅の処理を行う。そして全パーティクルに対し所定の運動モデルを適用して、パーティクルを当該空間上で遷移させる。
【0051】
観測部46は、サンプリング部42が生成・消滅、遷移させた各パーティクルが定める候補曲線の尤度を観測する。尤度は上述のように、画像処理部40が生成したエッジ画像上で各候補曲線の近傍にあるエッジを探索し、当該エッジまでの距離を候補曲線ごとに見積もることによって決定する。候補曲線は上述のように、パラメータ記憶部48から読み出したΩ形のテンプレートに対し、各パーティクルを規定するパラメータを作用させることによって得られる。結果取得部50は、観測部46が観測した尤度に基づき式3で示すような確率密度分布を形状空間ベクトルxの空間において算出し、それにより各パラメータを重み付け平均する。また次の時刻t+1における追跡処理に使用するため、サンプリング部42にそのデータを返す。
【0052】
追跡対象が複数存在する場合、結果取得部50はさらに、それぞれに用意したテンプレートを用いて、追跡対象ごとに追跡を行う。また複数の追跡対象が重なるような場合を追跡結果によって検出し、後ろに隠れる追跡対象については所定のタイミングで追跡処理対象からはずすなどの措置を講じる。これにより追跡対象が別の追跡対象の背後に回ったことによって観測尤度が一時的に低下しても、不適当な追跡結果を出力するのを避けることができる。
【0053】
図6は入力値変換部28の構成を詳細に示している。入力値変換部28は、視覚追跡の結果得られた形状空間ベクトルのパラメータを取得する追跡結果取得部52、画像規定パラメータへの変換に際し正確を期するための補正を行う補正部54、形状空間ベクトルのパラメータを画像規定パラメータに変換する画像規定パラメータ取得部58を含む。追跡結果取得部52は、追跡処理部26が追跡結果として取得した、時刻tにおける形状空間ベクトルのパラメータのうち、倍率を表す(extendx,extendy)、並進量を表す(shiftx,shifty)の値を取得する。取得した値は履歴記憶部56に記憶させる。
【0054】
補正部54は、倍率および並進量のその時点までの時間変化を履歴記憶部56から取得し、当該データを用いてメディアンフィルタや最小自乗法などノイズ除去のフィルタリングを行うことにより、時刻tにおける倍率および並進量の値を補正する。具体的には、実際の動きとは考えにくい急峻な変化を示すデータを、それまでの時間変化から得られる基準により排除したり、追跡誤差を考慮して真の値を推定する。履歴データを参照して、極端なデータを排除したり真の値を推定する手法は、統計学で一般的に用いられる手法を利用できる。
【0055】
本実施の形態では、形状空間ベクトルを例えばフレーム単位で取得できるため、各パラメータの時間変化が詳細に得られる。それを補正に利用することにより、倍率や並進量といったパラメータ、ひいては画像規定パラメータの信頼性を向上させることができる。またユーザの動きを画像に反映させる態様においては、高周波数成分を除去することにより、なめらかな動きの画像を表示することができる。
【0056】
画像規定パラメータ取得部58は、補正された形状空間ベクトルのパラメータに基づき、変換情報記憶部24に格納された対応関係を表すデータを参照して、時刻tの画像規定パラメータを取得する。ここで、形状空間ベクトルのパラメータと画像規定パラメータとの対応づけについて説明する。図7は初期処理部22が対応関係を決定するために行うキャリブレーションにおいてユーザを撮像する際の頭部の位置を示している。
【0057】
図のX座標、Y座標、およびZ座標はそれぞれ、横方向、縦方向、奥行き方向を表す。キャリブレーションにおいてはまず、移動によって各種入力を行う際の基準となる位置にユーザを立たせる。以後、この位置を「基準位置」と呼ぶ。基準位置は、撮像装置12から1mなど、所定の距離を装置側で指定してよい。このときの撮像装置12からの距離は、後に述べる横方向、縦方向の動きの補正において使用するが、補正を行わない場合はユーザの好きな位置でもよい。この状態で撮像装置12がユーザ18を撮影し、追跡処理部26がその状態における倍率および並進量の値を取得する。
【0058】
ここで取得する値は前述のように、算出した確率密度分布でパーティクルを規定する各パラメータを重み付け平均した値である。初期処理であるため、ユーザが写っていると思われる領域をエッジ画像などから導出して、当該領域に等間隔にパーティクルを分散させて観測してもよい。または単にテンプレートとエッジ画像とのマッチングを行ってもよい。このときの頭部の位置を図7の座標では原点P_0としている。
【0059】
次に、例えば前後に1歩移動した位置に立たせ、そこでの倍率の値を取得する。このときの頭部の位置を図7の座標ではそれぞれPZ_min、PZ_maxとしている。さらに基準位置から左右に一歩移動した位置に立たせ、そこでの並進量の値を取得する。このときの頭部の位置を図7の座標ではそれぞれPX_min、PX_maxとしている。同様に基準位置において屈んだ状態と背伸びした状態にさせ、そのときの並進量の値を取得する。このときの頭部の位置を図7の座標ではそれぞれPY_min、PY_maxとしている。
【0060】
ここで「一歩」としているのはあくまで例であり、例えば洞窟探検のゲームなどにおいて、ユーザが基準位置から一歩前進した状態では洞窟の先へと進み続け、基準位置から一歩後退した状態では洞窟を後ずさりし続けるような視野画像を表示するゲームで用いることができる。したがってキャリブレーションの位置はゲームなど、アプリケーションにおける設定によって変化させてよい。例えば最大の移動量を三歩とし、基準位置からの距離に応じて表示する仮想空間における移動速度を連続的に変化させるようなアプリケーションでは、基準位置から前後左右に三歩移動させてキャリブレーションを行う。ただしユーザに立たせる位置は、撮像装置12の画角内とすることが望ましい。
【0061】
すなわち、ユーザの移動範囲の奥行き方向(Z軸)、横方向(X軸)の両端でそれぞれ、倍率、並進量の値を取得する。縦方向(Y軸)についても同様で、縦方向の頭部の移動範囲の最高位置、最低位置において並進量の値を取得すればよく、「背伸び」、「屈む」などの行為は例示である。この場合、背伸びして塀の向こうをのぞき込んだり、屈んで何かをよけたりといった仮想体験をさせるための画像を表示するのに用いることができるが、どのような範囲とするかはアプリケーションに応じて異なっていてよい。
【0062】
上述のキャリブレーションの手法は、まずユーザが自分の歩幅で移動したり所定の姿勢をとったりして、その際の倍率や並進量を取得する手順であった。これにより、顔の大きさ、歩幅の大小、背の高さなどが異なったユーザでも、表示する画像を同じ動作で反応させることが可能となる。一方、アプリケーションによっては、倍率や並進量の最大振れ幅を装置側で指定し、ユーザがそれに合わせて移動するような態様でもよい。この場合、キャリブレーション時に、ユーザを撮像した画像の鏡面画像をリアルタイムで表示装置16に表示するとともに、装置側で許容できる移動範囲のX軸、Y軸、Z軸の両端の計6点(PX_min,PX_max,PY_min,PY_max,PZ_min,PZ_max)におけるテンプレートの画像を重ねて表示する。
【0063】
そして、表示した6つのテンプレートの形状に頭部輪郭が合致するように動いてもらうことにより、移動できるおよその範囲をユーザに認識させる。この場合は、個人差や環境の変化があっても、倍率や並進量の最大振り幅はほぼ同じとなるため、画像規定パラメータとの対応づけを装置やアプリケーション側で固定とすることができる。
【0064】
図8はユーザの奥行き方向の移動と画像規定パラメータとの対応関係を模式的に示している。図の横軸は倍率を示しており、移動範囲における倍率の最小値を「extend_min」、最大値を「extend_max」とする。ここで上述のとおり実際には倍率はX座標、Y座標の2次元で表されるが、図8で示す倍率はそのどちらかあるいは平均値などを利用し、画像規定パラメータとの対応づけを行う。このとき、倍率が最小値「extend_min」であるということは、ユーザが撮像装置12に対し移動範囲内で最も遠い場所、すなわちPZ_maxの位置にいることを意味する。逆に、倍率が最大値「extend_max」であるということは、ユーザが撮像装置12に対し最も近い場所、すなわちPZ_minにいることを意味する。
【0065】
同図で横軸に並行して示すように、頭部輪郭の倍率と撮像装置までの距離とはおよそ線形の関係にあるため、倍率をそのまま奥行き方向の位置に置き換えることができ、Pz_min/Pz_max間がユーザの移動範囲となる。そしてユーザの移動範囲、ひいては倍率の変化の範囲を画像規定パラメータの可変範囲に変換する対応関係70を決定する。なおここでいう「移動範囲」とは、画像がユーザの動きと連動する範囲という意味でよく、実際にはユーザはPz_min/Pz_maxを超えて移動してもよい。
【0066】
同図に示すように、移動範囲における倍率が最小値「extend_min」のときに画像規定パラメータの最小値「Para_min」、倍率が最大値「extend_max」のときに画像規定パラメータの最大値「Para_max」となるように対応関係70の両端を決めた上で、倍率の値から画像規定パラメータの可変範囲内の値が導出できるように対応づけを行う。なお倍率の最小値「extend_min」、最大値「extend_max」を、画像規定パラメータの最大値「Para_max」、最小値「Para_min」のいずれと対応させるかはアプリケーションや画像規定パラメータによって異なってよい。
【0067】
またユーザが「移動範囲」の外部に移動した場合は、同図の例では、Pz_minより撮像装置に近ければ画像規定パラメータの最小値「Para_min」、Pz_maxより遠ければ、画像規定パラメータの最大値「Para_max」の値をそれぞれ維持するような設定としている。
【0068】
上述のように倍率の最小値「extend_min」および最大値「extend_max」はユーザの歩幅などに鑑みキャリブレーションによって取得してもよいし、あらかじめ定めておいて移動範囲をユーザ自身に認識させるようにしてもよい。前者の場合、初期処理部22は倍率の最小値「extend_min」および最大値「extend_max」を取得した後、対応関係70をあらかじめ定めた規則に則り決定する。後者の場合はアプリケーションプログラムなどにおいて対応関係70そのものを設定しておく。
【0069】
画像規定パラメータの可変範囲の両端を、倍率の変化の範囲の両端と合致させる以外、倍率と画像規定パラメータの対応関係の規則はアプリケーションやユーザの環境などに応じて変化させてよい。図8の例では、倍率と画像規定パラメータが線形に変化する例を示している。ただし同図の対応関係70では、基準位置P_0と対応する倍率「extend_0」を中心とする2aの範囲で、倍率が変化しても画像規定パラメータが変化しない領域72を設けている。これは、ユーザが基準位置から動いていなくても実際の微妙な頭部の動きや倍率の算出誤差などによって倍率が変化する可能性が考えられるためである。
【0070】
そのようなユーザが意図しない揺らぎによって画像規定パラメータ、ひいては表示画像が過剰な反応をしないように、領域72を不感帯として設けてもよい。また、対応関係70のうち、不感帯以外の部分は線形でなくてもよい。例えば二次、三次といった関数でもよいし、不連続に変化させてもよい。なお図8において不感帯を設けない場合は、対応関係70の点線で示した部分を含め、全ての移動範囲において画像を連動させることになる。
【0071】
例えば前述の、ユーザが一歩前進した位置に立つと、表示する仮想世界では前進し続けるような態様とする場合に、画像規定パラメータを「前進速度」とすると、倍率が「extend_min」より大きく「extend_0」以下では前進速度の値は0、倍率が「extend_min」では所定の前進速度、といった具合に不連続な関係になる。ユーザの位置によってメニューの項目を選択するなどの場合でも同様である。連続としても特徴的な位置でのみ数値の対応を設定しておき、その他の対応関係は図8のような座標上で補間することにより決定してもよい。
【0072】
また前述の例では、ユーザの動きに画像を連動させる「移動範囲」の両端における倍率と画像規定パラメータの可変範囲の両端とを対応づけたが、必ずしも両端同士を対応づけなくてもよい。すなわちキャリブレーション時に、所定の歩数分隔てた2点の位置にユーザを立たせて頭部輪郭の倍率を取得し、その歩数に応じた動きで画像が連動するように、取得した倍率と画像規定パラメータとを対応づければよい。このときの2点、PZ_a、PZ_bをPZ_min≦PZ_a<PZ_b≦PZ_maxとなるようにすると、図8における対応関係70が決定できる。
【0073】
さらにアプリケーションや表示する画像によっては、連動させる移動範囲、すなわちPZ_min、PZ_maxを定めなくてもよい。この場合も、上述のように2点の位置における倍率と画像規定パラメータとの対応を決定し、線形、あるいは所定の関数でつなぐことにより対応関係70を決定する。そしてユーザが撮像装置12に写っている範囲内であれば、奥行き方向の移動に応じて画像が適宜変化するようにしてもよい。
【0074】
図8の例はユーザの奥行き方向の位置の変化を倍率を介して画像規定パラメータに変換する際の対応関係を示した。ユーザの横方向、縦方向の動きについても、並進量と画像規定パラメータとの対応関係を同様に設定することによって、並進量を介して画像規定パラメータへの変換を行う。ただし、ユーザの縦方向、あるいは横方向の実際の動きと、撮像装置12からの見かけ上の移動量との関係は、撮像装置12からユーザまでの距離に依存する。本実施の形態では、奥行き方向の基準位置からの移動量が倍率によって判明するため、それを用いて、見かけ上の移動量を表す並進量の値を補正し、ユーザの実際の移動量を推定する。
【0075】
図9は見かけ上の移動量を表す並進量の値を補正する原理を説明するための図である。同図は横軸(X軸)が横方向、縦軸(Z軸)が奥行き方向を表す。撮像装置12はZ軸上に設置されている。X軸とZ軸の交点は基準位置P_0であり、撮像装置12から基準位置までの距離をZ_0とする。ユーザが基準位置P_0より撮像装置12に対し奥であるP_Zにいて横方向に移動した場合、基準位置P_0において同じだけ移動した場合と比較して、撮像装置12からの見かけ上の動きは小さくなる。ユーザが基準位置より撮像装置12に近ければその逆となる。縦方向も同様である。ユーザが奥行き方向のどの位置にいても、横方向、縦方向の動きから画像規定パラメータが同様に取得できるように、見かけ上の移動量、すなわち並進量の変化量を、奥行き方向の基準位置における移動量に換算する。
【0076】
図9のようにユーザが奥行き方向P_Zの位置で横方向にX2だけ移動した場合、換算後の移動量は並進量の変化量に
X2/X1=(Z_0+(P_ZーP_0))/Z_0
を積算した値となる。奥行き方向の基準位置からの距離(P_ZーP_0)は倍率から換算することができるため、結果として倍率をもって横方向、縦方向の移動量を補正することができる。そして補正後に図8で示したのと同様の対応関係を参照して、それらの移動に対応づけた画像規定パラメータの値を取得する。なおここで述べた補正の手法はあくまで例示であり、実際にはアプリケーションの内容などに応じて様々な補正手法を設定してよい。
【0077】
次にこれまで述べた構成によって実現できる動作を説明する。図10は情報処理装置14の処理手順を示すフローチャートである。ここでは、ユーザの仮想世界での視野を表示画像として表示する態様のゲームを例に説明する。このとき、ユーザが奥行き方向に移動すると視点が奥行き方向に移動し、縦横方向に移動するとそれと連動するように縦横方向に視点が移動するようにする。従って画像規定パラメータは視点座標などとなる。
【0078】
まずユーザが当該ゲームのソフトウェアを起動させると、初期処理部22はキャリブレーションの処理を行う(S12)。例えば、立ち位置についての指示を表示装置16に表示するなどしてユーザを所定の位置に立たせたり姿勢を取らせたりしたうえで、追跡処理に用いるテンプレートとマッチングさせるなどして倍率や並進量を取得する。そして上述のとおり、各方向の動きによる倍率、並進量の変化と、画像規定パラメータとの対応づけを行い、対応関係を表す式、あるいはテーブルを変換情報記憶部24に格納する。
【0079】
初期処理部22はさらに、ゲームの初期画像、すなわち仮想世界における最初の視野を表示装置16に表示する(S12)。次に追跡処理部26は、撮像装置12が撮像した画像を逐次読み込み、頭部輪郭の視覚追跡を開始する(S14)。入力値変換部28は追跡の結果として、現在時刻tにおける頭部輪郭の倍率および並進量を取得する(S16)。このとき、履歴記憶部56に同データを記憶させておく。そして上述のとおり、次の時刻のフレーム以後は、それまで記憶してきた履歴に応じて、得られた倍率および並進量を適宜補正する。
【0080】
入力値変換部28は、変換情報記憶部24に格納された対応関係のデータを参照し、基準位置に対応する倍率からの変化量が一定値以上であるか否かを判定する(S18)。ここで「一定値」とは図8の「a」のことであり、S18で倍率の変化が不感帯以上であるかを確認する。aの値はアプリケーションや装置などで適宜設定してよい。倍率の変化量が一定値以上であれば(S18のY)、画像規定パラメータのうち奥行き方向の視点を移動させる(S20)。移動量は変換情報記憶部24に格納された対応関係のデータから取得する。倍率の変化量が不感帯にある場合は(S18のN)、上述のとおり奥行き方向の視点を移動させない。
【0081】
同様に、基準位置に対応する並進量からの時刻tの変化量が一定値以上であれば(S22のY)、対応する方向に視点を移動させる(S24)。この際、上述のように、ユーザが基準位置から奥行き方向に移動している場合(S18のY)は、倍率を用いて並進量の補正を行ったうえで視点の移動量を決定する(図示せず)。並進量のいずれかの方向の変化量が不感帯にある場合は(S22のN)、当該方向の視点を移動させない。出力データ生成部30は移動後の視点からの画像データを生成し、出力制御部32は表示装置16に最新画像が表示されるように制御する(S26)。
【0082】
倍率や並進量が不感帯にある場合は画像の視点は変化しない。図10のフローチャートは、ユーザの移動による視点の移動処理のみを示しているため、その他の処理は省略しているが、視点が移動しなくても画像内のオブジェクトが動くなど、S26で表示する最新画像には動きがあってもよい。ゲーム自体が終了したりユーザが終了指示を出したり、といったことにより処理を終了する必要がなければ(S28のN)、次のフレームの時刻t+1を現在時刻tとして(S30)、S16からS26までの処理を繰り返す。処理終了の必要が生じたら(S28のY)、そこで処理を終了する。
【0083】
図11および図12は、図10のフローチャートで処理対象としたゲームにおいて表示装置16に表示する画像の、ユーザの位置に対する変化の例を示している。これらの図は、ユーザの代表的な位置とその位置で表示する画像の例を矢印で対応させて示している。画像はいくつかの立方体が浮かんで静止している状態を表している。図11のユーザの位置座表は縦横方向(X軸およびY軸)を示しており、原点を基準位置とする。ユーザが基準位置にいるとき(ユーザ18b)に表示する画像80に対し、ユーザが右に移動して背伸びをするなどして頭部輪郭が右上にあるとき(ユーザ18a)は、画像82のように立方体の景色を右上から見下ろすような画像を表示する。ユーザが左に移動して屈むなど頭部輪郭が左下にあるとき(ユーザ18c)は、画像84のように立方体の景色を左下から見上げるような画像を表示する。
【0084】
図12のユーザの位置座標は奥行き方向(Z軸)を示している。ユーザが基準位置にいるとき(ユーザ18e)に表示する画像86に対し、ユーザが撮像装置12に近づいたとき(ユーザ18d)は、画像88のように立方体の景色に近づくような画像を表示し、撮像装置12から遠のいたとき(ユーザ18f)は、画像90のように立方体の景色から遠ざかるような画像を表示する。なお、上述のように、基準位置以外にいるときは実際には、継続的に画像の視点を移動させるようにしてもよい。
【0085】
以上述べた本実施の形態によれば、撮像装置によってユーザの画像を取得し、奥行き方向を含むユーザの動きを検出して、それを入力情報として処理を行う。平面上の変化のみならず奥行き方向の変化をも捉えて利用することにより、入力値のバリエーションが増し、複雑な入力体系を有するアプリケーションにも対応させ易い。結果として、コントローラやキーボードなどの入力手段と比較し、入力できる項目数を保持しつつ、自分の体自体を利用したより直感的で容易な入力が可能となる。また体を利用するため、ゲーム性を発揮しやすく、ロールプレイング、シューティング、スポーツなど様々なカテゴリの仮想世界を形成するゲームにおいて、仮想世界をより自然に楽しむことができる。
【0086】
ユーザの動作検出は、頭部輪郭を追跡するによって求められた倍率および並進量を利用する。これらのパラメータは、フレームごとなどの微小時間ごとに取得できるため、ゲームなどのアプリケーション処理中にユーザの周囲の環境が変化しても、高い精度で一人のユーザの頭部を特定することができる。また頭部輪郭の形状は、顔の向きや髪の毛のかかり具合などにほとんど影響されないため、顔検出などと比較しても信頼性が高い。結果として、ユーザ自身や周囲の状況の変化に強いアプリケーション生成が可能となる。
【0087】
さらに、撮像装置に対して縦横方向の動きを、倍率によって補正する。これにより、奥行き方向のどの位置にいても、同じ縦横方向の移動では同じ画像の動きとなり、ユーザにとって違和感のない画像表現ができる。画像表現ばかりでなく、単にメニューから項目を選択するような場合であっても、撮像装置からの距離によってユーザが動きを変化させなければいけなかったり移動量検出の精度が落ちたりすることがないため、結果として多くのパラメータを体の動きのみで容易に入力することができる。
【0088】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0089】
例えば本実施の形態では、視覚追跡の結果得られた倍率の変化と奥行き方向の移動量との線形性を利用することにより、倍率を画像規定パラメータに変換したが、奥行き方向の移動量を推定するために倍率を用いなくてもよい。例えば、視覚追跡の結果推定できる、頭部輪郭の形状を利用してもよい。この場合、得られた頭部輪郭のΩ形の内部の画素数を数え、その数によって見かけ上の頭の大きさを表し、奥行き方向の移動量を推定する。
【0090】
このとき、取得される輪郭線は加重平均による推定値であるうえ限られた制御点で構成されるBスプライン曲線であるため、ユーザの頭の輪郭に完全に合致しないことが考えられる。そのため、一度加重平均によって取得した輪郭線を、再度エッジ画像とマッチングさせ、ユーザの頭部輪郭に輪郭線をフィッティングさせてから内部の画素数を数えてもよい。このようにすることで、精度よく奥行き方向の移動が検出できる。
【0091】
さらに、撮像装置の他に空間の熱分布を測定する温度センサを設け熱分布を取得したり、前景抽出器により背景差分を行ったりして、ユーザが存在する領域が他の手段で取得できるようにしてもよい。この場合、追跡結果として得られた輪郭線や上述のように実際の頭部輪郭とフィッティングさせた輪郭線と、別の手段で取得した頭部領域とを比較して、さらに輪郭線の補正を行うようにしてもよい。温度センサや前景抽出器による対象物の領域取得は既存の技術を適用できる。同様に、頭部輪郭の追跡とともに顔検出処理を行ってもよい。例えば推定した頭部輪郭の内部領域に対し顔検出を行うことにより輪郭線、あるいは倍率などのパラメータを補正する。いずれのこの場合も奥行き方向の移動を精度よく検出できる。
【0092】
また本実施の形態では、主に一人のユーザの動きを検出する態様について説明したが、ユーザは複数でもよい。また、奥行き方向の移動を伴わないゲームなどでも本発明を適用することにより精度のよい動き検出が可能となる。例えば、複数のユーザが同時にプレイするゲーム、例えばテニスのダブルス、協力しながらのロールプレイング、格闘、シューティングなどのゲームにおいて、ユーザの頭部の縦横方向の動きを、画像内の仮想のユーザであるアバターの動きに連動させる。この場合、ユーザごとに頭部輪郭の追跡を行い、それぞれに対して移動量を検出する。
【0093】
このとき、本実施の形態で説明したのと同様に、ユーザの奥行き方向の立ち位置によって実際の動きと見かけ上の移動量との関係が変化する。したがって、本実施の形態と同様、各ユーザの頭部の倍率を利用して見かけ上の移動量を補正していずれかのユーザの奥行き方向の立ち位置における移動に置き換える。これにより、複数のユーザの立ち位置が奥行き方向にばらけているような場合でも、同じ動作では同じ反応をする画像を生成することができ、自然なユーザインターフェースを実現できる。
【0094】
またユーザごとに、形状空間ベクトルのパラメータと画像規定パラメータとの対応関係を異ならせてもよい。例えばユーザの頭の大きさの違いによって余計な補正を行わないようにすることで、さらに動きの検出精度が向上する。ここで個々のユーザを認識するために、追跡によって得られる頭部領域に顔検出処理を施し、ユーザを特定したうえで対応関係を切り替えるようにしてもよい。
【符号の説明】
【0095】
10 情報処理システム、 12 撮像装置、 14 情報処理装置、 16 表示装置、 20 画像取得部、 22 初期処理部、 24 変換情報記憶部、 26 追跡処理部、 28 入力値変換部、 30 出力データ生成部、 32 出力制御部、 40 画像処理部、 42 サンプリング部、 46 観測部、 50 結果取得部、 52 追跡結果取得部、 54 補正部、 56 履歴記憶部。
【技術分野】
【0001】
本発明は情報処理技術に関し、特にユーザの入力に応じた処理を行うためのユーザインターフェースを含む情報処理装置およびそこで実行される情報処理方法に関する。
【背景技術】
【0002】
近年、ゲーム装置や電化製品などを含む電子機器は、その機能が著しく高度化している。それに伴い、ユーザインターフェースによってユーザが行うことのできる入力体系は複雑化している。そのような複雑な入力体系にあっても容易な入力が可能となるように、ユーザインターフェースには様々な工夫がなされてきた。例えば、コントローラにおけるボタンの割り付けを工夫したり、タッチパネルを利用したりするほか、ユーザを撮像する装置をインターフェースとし、ユーザの顔の状態を検出することによって、様々なイベントを実行する技術も提案されている(例えば特許文献1参照)。
【0003】
このように撮像装置をユーザインターフェースとする場合、ユーザの顔の状態を検出するためには、一般的な顔検出技術を利用することができる。例えばあらかじめ準備した基準画像と検出した顔領域の画像とをマッチングしたり、顔領域の面積によって顔の向きや傾きを判断したりする。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−15942号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理技術の進歩によって、電子機器や情報処理装置を利用する環境、ユーザ、処理内容なども多様化し、それらの要因に応じて、望まれるユーザインターフェースも異なってくる。したがってそのようなニーズに合致させて、ユーザインターフェースの態様もさらに多様化させる必要がある。特に、多くのボタンなどによって複雑な入力を行わずともより自然な動きで入力が可能なユーザインターフェースが望まれている。
【0006】
本発明はこのような課題に鑑みてなされたものであり、その目的は、人の動作によって正確かつ多様な入力が可能なユーザインターフェースを含む情報処理技術を提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様は情報理装置に関する。この情報処理装置は、対象物の動きを動画像として撮像する撮像装置と、撮像装置に対する対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、対象物の輪郭線に基づき動画像より推定する入力値取得部と、入力値取得部が取得した三次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、を備えることを特徴とする。
【0008】
本発明の別の態様も情報処理装置に関する。この情報処理装置は、対象物の動きを動画像として撮像する撮像装置と、撮像装置に対する対象物の縦方向、横方向の二次元空間での基準位置からの動き量と、奥行き方向の基準位置からの距離とを前記動画像より推定する入力値取得部と、追跡処理部が取得した二次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、を備え、入力値取得部は、対象物の奥行き方向の基準位置からの距離に基づき、撮像装置による見かけ上の縦方向および横方向の動き量を補正することにより、実際の縦方向および横方向の動き量をそれぞれ推定することを特徴とする。
【0009】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、対象物の動きを動画像として撮像装置により撮像するステップと、撮像装置に対する対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、対象物の輪郭線に基づき動画像より推定するステップと、推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成するステップと、を含むことを特徴とする。
【0010】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、様々な情報処理において、ユーザ自身の自然な動きを入力値として、多様な処理を精度よく行うことができる。
【図面の簡単な説明】
【0012】
【図1】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図2】人物を追跡対象とした場合の視覚追跡手法を説明するための図である。
【図3】パーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。
【図4】本実施の形態における情報処理装置の構成を詳細に示す図である。
【図5】本実施の形態における追跡処理部の構成を詳細に示す図である。
【図6】本実施の形態における入力値変換部の構成を詳細に示す図である。
【図7】本実施の形態における初期処理部が行うキャリブレーションにおいてユーザを撮像する際の頭部の位置を示す図である。
【図8】本実施の形態においてユーザの奥行き方向の移動と画像規定パラメータとの対応関係を模式的に示す図である。
【図9】本実施の形態において見かけ上の移動量を表す並進量の値を補正する原理を説明するための図である。
【図10】本実施の形態の報処理装置の処理手順を示すフローチャートである。
【図11】図10のフローチャートで処理対象としたゲームにおいて表示装置に表示する画像の、ユーザの位置に対する変化の例を示す図である。
【図12】図10のフローチャートで処理対象としたゲームにおいて表示装置に表示する画像の、ユーザの位置に対する変化の例を示す図である。
【発明を実施するための形態】
【0013】
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、ユーザ18を撮像する撮像装置12、ユーザの動作を検出しそれに応じた情報処理を行う情報処理装置14、情報処理装置が処理した結果得られた画像データを出力する表示装置16を含む。
【0014】
情報処理装置14と、撮像装置12あるいは表示装置16との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいは撮像装置12、情報処理装置14、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置12は必ずしも表示装置16の上に搭載されていなくてもよい。以後の説明では、撮像装置12は表示装置16に対峙したユーザ18を正面から撮像することを前提とするが、撮像する方向が異なっていても、簡単な座標変換により同様の処理を行うことができる。また、撮像装置12のレンズが向く方向を「奥行き方向」とし、レンズ面に水平な平面における「縦方向」および「横方向」を加えた3つの方向を、ユーザが移動する三次元空間の軸として表現する。
【0015】
撮像装置12はユーザ18を含む画像のデータを、所定のフレームレートで取得する。取得された動画像データは情報処理装置14に入力される。情報処理装置14は、撮像装置12から取得した動画像データからユーザの動作を検出する。本実施の形態では、ユーザが自分の動作によってできる入力の自由度を高くするため、撮像装置12に対する奥行き方向の移動の情報も取得する。具体的な手法な後に述べるが、奥行き方向の動きを検出することによって、単に奥行き方向分のパラメータ入力が可能になるばかりでなく、縦方向、横方向の動きを正確に検出することができる。結果として単に画像平面上の動きを検出することに比べ、格段に入力の自由度を向上させることができる。
【0016】
情報処理装置14は、奥行き方向の動きを含むユーザの動作を検出し、それに応じて処理を変化させる。ここで情報処理装置14が実行する、ユーザインターフェースに係る処理以外の処理の内容は限定されない。例えば、表示装置16に表示した画像をユーザ18の視野としたり、ユーザ18に対応するオブジェクトをアバターとして表示したりして、洞窟や街中など仮想空間を移動しながら様々なアクションを起こすゲームなどが考えられる。ロールプレイングゲームやシューティングゲーム、ボクシングゲーム、サッカーゲームなど、そのような状況を利用したゲームは様々考えられる。ゲーム以外にも、仮想空間内の仮想店舗で買い物をしたり、処理のメニューを表示したオブジェクトを選択したりすることもできる。
【0017】
これらの処理はいずれも、表示装置16によって表示される画像とユーザ18の動作を連動させる、という発想に基づいているが、本実施の形態はそれに限らず、ユーザの入力により動作するいかなるアプリケーションでもよい。すなわちユーザの動作と処理との対応づけをあらかじめ行っておけば、表示装置16に表示したテレビ番組やウェブサイトを動作によって切り替えるなどの利用も考えられる。または単にメニューを選択するのみで画像表示を伴わなくてもよい。いずれにしろユーザの動きという単純な変化を「入力値」としても、入力の自由度が高いうえ高精度に「入力値」を検出できるため、様々なアプリケーションと組み合わせが可能である。
【0018】
表示装置16は、情報処理装置14がユーザ18の動作を検出した結果を反映させて生成した画像データを取得し、画像として出力する。以後の説明では、ユーザの動作と表示装置16に表示する画像とを連動させるゲームを処理する態様に主眼を置くが、上述のとおり適用できるアプリケーションは多岐に渡る。
【0019】
次に、情報処理装置14が行う、ユーザ18の動作検出の原理を説明する。本実施の形態では、パーティクルフィルタを用いた視覚追跡処理を、撮像装置12が撮像したユーザ18を含む画像に対して実行する。図2は人物を追跡対象とした場合の視覚追跡手法を説明するための図である。人物画像150は撮像した動画像の画像ストリームを構成する画像フレームのひとつであり、追跡対象である人物152が写っている。当該人物152が、図1におけるユーザ18に対応する。
【0020】
この人物152の動きを追跡するために、人物152の頭部輪郭の形状を近似するΩ形の曲線154を既知の表現で記述する。一方、人物152を含む人物画像150にはエッジ抽出処理を施し、エッジ画像を取得しておく。そして曲線154を規定するパラメータを変化させることにより当該曲線154を並進、伸縮、回転させて、その近傍にあるエッジを探索することにより、人物152の頭部輪郭と最もマッチすると推定されるパラメータの値を特定する。以上の処理をフレームごとに繰り返すことにより人物152の追跡が進捗する。ここでエッジとは一般的には画像の濃度や色に急な変化を有する箇所のことである。
【0021】
規定するパラメータの値を様々にした曲線154と人物152の頭部輪郭とのマッチングを行うために、パーティクルフィルタによる確率分布予測技術を導入する。すなわち、ひとつ前のフレームにおけるパラメータ空間上の対象物の確率分布に応じて曲線154のサンプリング数を増減させ、追跡候補の絞り込みを行う。これにより存在確率の高い部分に対しては重点的に探索を行うことができ、精度のよいマッチングが効率的に行える。
【0022】
対象物の輪郭に着目した追跡に対するパーティクルフィルタの適用手法は、例えば非特許文献(ICondensation: Unifying low-level and high-level tracking in a stochastic framework, Michael Isard and Andrew Blake, Proc 5th European Conf. Computer Vision, 1998)に詳述されている。ここでは本実施の形態に係る点に着目して説明する。
【0023】
まずΩ形の曲線154を、Bスプライン曲線で記述する。Bスプライン曲線はn個の制御点(Q0,・・・,Qn)とn個のノット(s0,・・・,sn)とから定義される。そして基本となる曲線形状、この場合はΩ形の曲線となるように、それらのパラメータをあらかじめ設定しておく。このときの設定によって得られる曲線を以後、テンプレートQtと呼ぶ。なお、図2で示した人物画像150における人物152の追跡を行う場合は、テンプレートQtはΩ形であるが、その形状は追跡対象によって変化させる。すなわち追跡対象がボールであれば円形、手のひらであれば手の形状などとなる。
【0024】
次にテンプレートの状態を変化させるための変換パラメータとして、形状空間ベクトルxを準備する。形状空間ベクトルxは以下のような6つのパラメータで構成される。
【0025】
【数1】
【0026】
ここで(shiftx,shifty)は(x,y)方向への並進量、(extendx,extendy)は倍率、θは回転角である。そして形状空間ベクトルxをテンプレートQtに作用させるための作用行列Wを用いると、変形後の曲線、すなわち候補曲線Qは以下のように記述できる。
【0027】
【数2】
【0028】
式2を用いれば、形状空間ベクトルxを構成する6つのパラメータを適宜変化させることにより、テンプレートを並進、伸縮、回転させることができ、組み合わせによって候補曲線Qを種々変化させることができる。
【0029】
そして、制御点、およびノットの間隔といったテンプレートQtのパラメータや、形状空間ベクトルxを構成する6つのパラメータを変化させることによって表現される複数の候補曲線について、各ノットの近傍にある人物152のエッジを探索する。その後、エッジとの距離などから各候補曲線の尤度を求めることにより、形状空間ベクトルxを構成する6つのパラメータで定義される6次元空間における確率密度分布を推定する。
【0030】
図3はパーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。同図では理解を簡単にするために、形状空間ベクトルxを構成する6つのパラメータのうち、あるパラメータx1の変化を横軸に表しているが、実際には6次元空間において同様の処理が行われる。ここで確率密度分布を推定したい画像フレームが時刻tの画像フレームであるとする。
【0031】
まず、時刻tの画像フレームのひとつ前のフレームである時刻t−1の画像フレームにおいて推定された、パラメータx1軸上の確率密度分布を用いて(S110)、時刻tにおけるパーティクルを生成する(S112)。それまでにフィルタリングを行い、すでにパーティクルが存在する場合は、その分裂、および消滅を決定する。S110において表した確率密度分布は、パラメータ空間上の座標に対応して離散的に求められたものであり、円が大きいほど確率密度が高いことを表している。
【0032】
パーティクルはサンプリングするパラメータx1の値とサンプリング密度とを実体化したものであり、例えば時刻t−1において確率密度が高かったパラメータx1の領域は、パーティクル密度を高くすることで重点的にサンプリングを行い、確率密度の低かった範囲はパーティクルを少なくすることでサンプリングをあまり行わない。これにより、例えば人物152のエッジ近傍において候補曲線を多く発生させて、効率よくマッチングを行う。
【0033】
次に所定の運動モデルを用いて、パーティクルをパラメータ空間上で遷移させる(S114)。所定の運動モデルとは例えば、ガウシアン型運動モデル、自己回帰予測型運動モデルなどである。前者は、時刻tにおける確率密度は時刻t−1における各確率密度の周囲にガウス分布している、とするモデルである。後者は、サンプルデータから取得した2次以上の自己回帰予測モデルを仮定する手法で、例えば人物152がある速度で等速運動をしているといったことを過去のパラメータの変化から推定する。図2の例では、自己回帰予測型運動モデルによりパラメータx1の正方向への動きが推定され、各パーティクルをそのように遷移させている。
【0034】
次に、各パーティクルで決定される候補曲線の近傍にある人物152のエッジを、時刻tのエッジ画像を用いて探索することにより、各候補曲線の尤度を求め、時刻tにおける確率密度分布を推定する(S116)。前述のとおり、このときの確率密度分布はS116に示すように、真の確率密度分布400を離散的に表したものになる。以降、これを繰り返すことにより、各時刻における確率密度分布がパラメータ空間において表される。例えば確率密度分布が単峰性であった場合、すなわち追跡対象が唯一であった場合は、得られた確率密度を用いて各パラメータの値に対し重み付けした和を最終的なパラメータとすることにより、追跡対象の輪郭と推定される曲線が得られることになる。
【0035】
S116において推定される時刻tにおける確率密度分布p(xti)は以下のように計算される。
【0036】
【数3】
【0037】
ここでiはパーティクルに一意に与えられた番号、p(xti|xti, ut-1)は所定の運動モデル、p(yt|xti)は尤度である。式3で得られる確率密度分布は、形状空間ベクトルの各パラメータに対して得られる。したがって当該確率密度分布でパーティクルの加重平均を求めることにより、各時刻の形状空間ベクトルが推定できる。
【0038】
一方、図1に示した、ユーザの動作を撮像してそれを入力値とする態様を考える。撮像対象が撮像装置に近ければ当該対象は大きく写り、遠ければ小さく写る、といったように、撮像装置12とユーザ18との距離と、頭部輪郭の大きさとはおよそ比例関係にあることが実験的に判明しているため、本実施の形態ではその性質を利用する。すなわち、形状空間ベクトルのうち倍率を表す(extendx,extendy)に着目し、その変化がユーザの奥行き方向の移動量を反映しているとして、入力値に利用する。また、縦横方向の動きは形状空間ベクトルのうち並進量を表す(shiftx,shifty)によって検出する。
【0039】
単眼のカメラを撮像装置に用いてユーザの動きを検出する場合、撮影された画像はその面上の二次元の情報のみで構成されるため、ユーザの奥行き方向の動きを検出することは難しい。二次元情報から奥行きの情報を取得するために、顔検出技術によって検出した顔領域の面積の変化を用いることが考えられるが、顔の向きや髪の毛のかかり具合などによって奥行き方向の距離とは無関係に顔領域の面積が変化しやすく、十分な精度が得られない場合があり得る。
【0040】
また上記手法では、断続的に撮影した複数の静止画における顔領域の面積を比較することによって奥行き方向の移動を検出することになるが、撮影範囲に複数の人が存在したり、カメラの前を何かが横切ったりといった様々な環境の変化をも検出結果として取り込んでしまうことが考えられ、常に対象とする人の動作のみを検出することは困難である。
【0041】
本実施の形態では、ユーザの頭部輪郭を連続的に追跡する。一般的に頭部輪郭は、顔の向きや髪の毛が変化してもその大きさはほとんど変化しない。そのため頭部輪郭の大きさを媒介とすれば、そのようなユーザ自身の変化の影響をほとんど受けることなく奥行き方向の位置を把握することができる。またフレームごとなど連続的に追跡を行うため、撮影範囲に別の人や物が存在しても対象とするユーザの動きのみを正確に抽出し易く、そのような周囲の環境にも強い耐性を有する。さらに対象とする人ごとに追跡を行えるため、複数のユーザでゲームなどを行っても、対象を取り違えることなくユーザ個々の動作に応じた処理を行うことができる。
【0042】
図4は情報処理装置14の構成を詳細に示している。情報処理装置14は、撮像装置12から入力される入力画像データを取得する画像取得部20、ユーザの実際の動きと、連動させる画像の動きとの対応づけを行う初期処理部22、上述の視覚追跡処理を実行する追跡処理部26、追跡の結果得られた倍率や並進量のパラメータを画像の動きを規定するパラメータ(以後、「画像規定パラメータ」と呼ぶ)に変換する入力値変換部28、当該画像規定パラメータを用いて新たな画像データを生成する出力データ生成部30、および、生成された画像データの表示装置16への出力を制御する出力制御部32を含む。
【0043】
図4および以後の図5、6において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0044】
なお、出力データ生成部30は、ユーザの動きと連動する画像を表示するゲームであれば当該画像のデータを生成するが、上述のように本実施の形態は様々なアプリケーションへの応用が可能であるため、画像データを生成するばかりでなく各アプリケーションに応じた処理を行ってよい。したがって入力値変換部28は、追跡の結果得られたパラメータを、あらかじめ当該パラメータと対応づけたアプリケーションの機能IDなどに変換し、出力データ生成部30が当該機能IDに対応する機能を実現する処理を行うようにしてもよい。
【0045】
画像取得部20は、有線、無線を問わず撮像装置12からユーザの画像を取得する。初期処理部22は、ユーザが最大限動いたときの追跡処理によって得られる形状空間ベクトルのパラメータの振り幅と、画像規定パラメータの可変幅とを対応づけるためのキャリブレーションを行う。具体的には、最大限動いたときの位置にユーザを立たせるなどしてそれぞれの画像を撮影し、その際の形状空間ベクトルのパラメータを取得することによって各パラメータの振り幅を得る。倍率、並進量の各パラメータの最大値、最小値が、画像規定パラメータの可変範囲の最大値、最小値のいずれかと対応するように対応関係を決定する。最大値、最小値以外の対応関係の決定の仕方はゲームの内容などによって異なっていてよい。詳細は後に述べる。このようにして決定した、対応関係を表すデータは、変換情報記憶部24に格納する。
【0046】
追跡処理部26は、上述の視覚追跡の手法によりユーザの動きを追跡する。以後の説明ではユーザの頭部輪郭を追跡する例を説明するが、本実施の形態における追跡対象は頭部に限らない。ただし上述のような理由から、移動によって撮像装置12に対する角度が変化しても、撮像装置からの見かけ上の形状が変化しない、あるいは変化しにくい輪郭を有する物を追跡対象とすることが望ましい。例えば持ち手である棒の先に球体がついた物をユーザに持たせ、当該球体を追跡対象としても、頭部と同様の結果を得ることができる。
【0047】
入力値変換部28は、追跡処理部26の追跡の結果得られる各時刻における倍率および並進量の値に基づき、変換情報記憶部24が記憶する対応関係を表すデータを参照することにより、各時刻の画像規定パラメータを取得する。出力データ生成部30は、入力値変換部28が取得した画像規定パラメータに基づき、表示画像がユーザの動きによって変化するように新たな画像データを生成する。生成した画像は、出力制御部32の制御のもと、表示装置16に表示する。
【0048】
図5は追跡処理部26の構成を詳細に示している。追跡処理部26は、入力画像データからエッジ画像などを生成する画像処理部40、パーティクルの生成および消滅によってパラメータ空間におけるサンプリングを行うサンプリング部42、各パーティクルが規定する候補曲線の尤度を観測する観測部46、観測の結果を統合し、形状空間ベクトルを推定する結果取得部50、Ω形のテンプレートを規定するパラメータを記憶するパラメータ記憶部48を含む。なお、ユーザの体の位置や動作を検出する場合はテンプレートをΩ形とすることで頭部の輪郭を追跡すればよいが、テンプレートの形状はそれに限らない。例えばユーザの手のみを撮像してその位置や動作により処理を行う場合、テンプレートは手のひらの形とするなど、撮像対象によってテンプレート形状は異なってよい。
【0049】
画像処理部40は、入力画像データの画像フレームごとにエッジ抽出処理を施し、エッジ画像を生成する。ここではキャニーエッジフィルタや、ソーベルフィルタなど一般的なエッジ抽出アルゴリズムを用いることができる。また画像処理部40は、背景差分を利用した前景抽出器(図示せず)を実装していてもよく、エッジ抽出処理の前処理として入力画像から追跡対象を含む前景を抽出することにより、追跡対象のエッジを効率的に抽出するようにしてもよい。
【0050】
サンプリング部42は、一つ前の時刻t−1における画像フレームに対して推定された、形状空間ベクトルxの空間での確率密度分布に基づきパーティクルの生成および消滅の処理を行う。そして全パーティクルに対し所定の運動モデルを適用して、パーティクルを当該空間上で遷移させる。
【0051】
観測部46は、サンプリング部42が生成・消滅、遷移させた各パーティクルが定める候補曲線の尤度を観測する。尤度は上述のように、画像処理部40が生成したエッジ画像上で各候補曲線の近傍にあるエッジを探索し、当該エッジまでの距離を候補曲線ごとに見積もることによって決定する。候補曲線は上述のように、パラメータ記憶部48から読み出したΩ形のテンプレートに対し、各パーティクルを規定するパラメータを作用させることによって得られる。結果取得部50は、観測部46が観測した尤度に基づき式3で示すような確率密度分布を形状空間ベクトルxの空間において算出し、それにより各パラメータを重み付け平均する。また次の時刻t+1における追跡処理に使用するため、サンプリング部42にそのデータを返す。
【0052】
追跡対象が複数存在する場合、結果取得部50はさらに、それぞれに用意したテンプレートを用いて、追跡対象ごとに追跡を行う。また複数の追跡対象が重なるような場合を追跡結果によって検出し、後ろに隠れる追跡対象については所定のタイミングで追跡処理対象からはずすなどの措置を講じる。これにより追跡対象が別の追跡対象の背後に回ったことによって観測尤度が一時的に低下しても、不適当な追跡結果を出力するのを避けることができる。
【0053】
図6は入力値変換部28の構成を詳細に示している。入力値変換部28は、視覚追跡の結果得られた形状空間ベクトルのパラメータを取得する追跡結果取得部52、画像規定パラメータへの変換に際し正確を期するための補正を行う補正部54、形状空間ベクトルのパラメータを画像規定パラメータに変換する画像規定パラメータ取得部58を含む。追跡結果取得部52は、追跡処理部26が追跡結果として取得した、時刻tにおける形状空間ベクトルのパラメータのうち、倍率を表す(extendx,extendy)、並進量を表す(shiftx,shifty)の値を取得する。取得した値は履歴記憶部56に記憶させる。
【0054】
補正部54は、倍率および並進量のその時点までの時間変化を履歴記憶部56から取得し、当該データを用いてメディアンフィルタや最小自乗法などノイズ除去のフィルタリングを行うことにより、時刻tにおける倍率および並進量の値を補正する。具体的には、実際の動きとは考えにくい急峻な変化を示すデータを、それまでの時間変化から得られる基準により排除したり、追跡誤差を考慮して真の値を推定する。履歴データを参照して、極端なデータを排除したり真の値を推定する手法は、統計学で一般的に用いられる手法を利用できる。
【0055】
本実施の形態では、形状空間ベクトルを例えばフレーム単位で取得できるため、各パラメータの時間変化が詳細に得られる。それを補正に利用することにより、倍率や並進量といったパラメータ、ひいては画像規定パラメータの信頼性を向上させることができる。またユーザの動きを画像に反映させる態様においては、高周波数成分を除去することにより、なめらかな動きの画像を表示することができる。
【0056】
画像規定パラメータ取得部58は、補正された形状空間ベクトルのパラメータに基づき、変換情報記憶部24に格納された対応関係を表すデータを参照して、時刻tの画像規定パラメータを取得する。ここで、形状空間ベクトルのパラメータと画像規定パラメータとの対応づけについて説明する。図7は初期処理部22が対応関係を決定するために行うキャリブレーションにおいてユーザを撮像する際の頭部の位置を示している。
【0057】
図のX座標、Y座標、およびZ座標はそれぞれ、横方向、縦方向、奥行き方向を表す。キャリブレーションにおいてはまず、移動によって各種入力を行う際の基準となる位置にユーザを立たせる。以後、この位置を「基準位置」と呼ぶ。基準位置は、撮像装置12から1mなど、所定の距離を装置側で指定してよい。このときの撮像装置12からの距離は、後に述べる横方向、縦方向の動きの補正において使用するが、補正を行わない場合はユーザの好きな位置でもよい。この状態で撮像装置12がユーザ18を撮影し、追跡処理部26がその状態における倍率および並進量の値を取得する。
【0058】
ここで取得する値は前述のように、算出した確率密度分布でパーティクルを規定する各パラメータを重み付け平均した値である。初期処理であるため、ユーザが写っていると思われる領域をエッジ画像などから導出して、当該領域に等間隔にパーティクルを分散させて観測してもよい。または単にテンプレートとエッジ画像とのマッチングを行ってもよい。このときの頭部の位置を図7の座標では原点P_0としている。
【0059】
次に、例えば前後に1歩移動した位置に立たせ、そこでの倍率の値を取得する。このときの頭部の位置を図7の座標ではそれぞれPZ_min、PZ_maxとしている。さらに基準位置から左右に一歩移動した位置に立たせ、そこでの並進量の値を取得する。このときの頭部の位置を図7の座標ではそれぞれPX_min、PX_maxとしている。同様に基準位置において屈んだ状態と背伸びした状態にさせ、そのときの並進量の値を取得する。このときの頭部の位置を図7の座標ではそれぞれPY_min、PY_maxとしている。
【0060】
ここで「一歩」としているのはあくまで例であり、例えば洞窟探検のゲームなどにおいて、ユーザが基準位置から一歩前進した状態では洞窟の先へと進み続け、基準位置から一歩後退した状態では洞窟を後ずさりし続けるような視野画像を表示するゲームで用いることができる。したがってキャリブレーションの位置はゲームなど、アプリケーションにおける設定によって変化させてよい。例えば最大の移動量を三歩とし、基準位置からの距離に応じて表示する仮想空間における移動速度を連続的に変化させるようなアプリケーションでは、基準位置から前後左右に三歩移動させてキャリブレーションを行う。ただしユーザに立たせる位置は、撮像装置12の画角内とすることが望ましい。
【0061】
すなわち、ユーザの移動範囲の奥行き方向(Z軸)、横方向(X軸)の両端でそれぞれ、倍率、並進量の値を取得する。縦方向(Y軸)についても同様で、縦方向の頭部の移動範囲の最高位置、最低位置において並進量の値を取得すればよく、「背伸び」、「屈む」などの行為は例示である。この場合、背伸びして塀の向こうをのぞき込んだり、屈んで何かをよけたりといった仮想体験をさせるための画像を表示するのに用いることができるが、どのような範囲とするかはアプリケーションに応じて異なっていてよい。
【0062】
上述のキャリブレーションの手法は、まずユーザが自分の歩幅で移動したり所定の姿勢をとったりして、その際の倍率や並進量を取得する手順であった。これにより、顔の大きさ、歩幅の大小、背の高さなどが異なったユーザでも、表示する画像を同じ動作で反応させることが可能となる。一方、アプリケーションによっては、倍率や並進量の最大振れ幅を装置側で指定し、ユーザがそれに合わせて移動するような態様でもよい。この場合、キャリブレーション時に、ユーザを撮像した画像の鏡面画像をリアルタイムで表示装置16に表示するとともに、装置側で許容できる移動範囲のX軸、Y軸、Z軸の両端の計6点(PX_min,PX_max,PY_min,PY_max,PZ_min,PZ_max)におけるテンプレートの画像を重ねて表示する。
【0063】
そして、表示した6つのテンプレートの形状に頭部輪郭が合致するように動いてもらうことにより、移動できるおよその範囲をユーザに認識させる。この場合は、個人差や環境の変化があっても、倍率や並進量の最大振り幅はほぼ同じとなるため、画像規定パラメータとの対応づけを装置やアプリケーション側で固定とすることができる。
【0064】
図8はユーザの奥行き方向の移動と画像規定パラメータとの対応関係を模式的に示している。図の横軸は倍率を示しており、移動範囲における倍率の最小値を「extend_min」、最大値を「extend_max」とする。ここで上述のとおり実際には倍率はX座標、Y座標の2次元で表されるが、図8で示す倍率はそのどちらかあるいは平均値などを利用し、画像規定パラメータとの対応づけを行う。このとき、倍率が最小値「extend_min」であるということは、ユーザが撮像装置12に対し移動範囲内で最も遠い場所、すなわちPZ_maxの位置にいることを意味する。逆に、倍率が最大値「extend_max」であるということは、ユーザが撮像装置12に対し最も近い場所、すなわちPZ_minにいることを意味する。
【0065】
同図で横軸に並行して示すように、頭部輪郭の倍率と撮像装置までの距離とはおよそ線形の関係にあるため、倍率をそのまま奥行き方向の位置に置き換えることができ、Pz_min/Pz_max間がユーザの移動範囲となる。そしてユーザの移動範囲、ひいては倍率の変化の範囲を画像規定パラメータの可変範囲に変換する対応関係70を決定する。なおここでいう「移動範囲」とは、画像がユーザの動きと連動する範囲という意味でよく、実際にはユーザはPz_min/Pz_maxを超えて移動してもよい。
【0066】
同図に示すように、移動範囲における倍率が最小値「extend_min」のときに画像規定パラメータの最小値「Para_min」、倍率が最大値「extend_max」のときに画像規定パラメータの最大値「Para_max」となるように対応関係70の両端を決めた上で、倍率の値から画像規定パラメータの可変範囲内の値が導出できるように対応づけを行う。なお倍率の最小値「extend_min」、最大値「extend_max」を、画像規定パラメータの最大値「Para_max」、最小値「Para_min」のいずれと対応させるかはアプリケーションや画像規定パラメータによって異なってよい。
【0067】
またユーザが「移動範囲」の外部に移動した場合は、同図の例では、Pz_minより撮像装置に近ければ画像規定パラメータの最小値「Para_min」、Pz_maxより遠ければ、画像規定パラメータの最大値「Para_max」の値をそれぞれ維持するような設定としている。
【0068】
上述のように倍率の最小値「extend_min」および最大値「extend_max」はユーザの歩幅などに鑑みキャリブレーションによって取得してもよいし、あらかじめ定めておいて移動範囲をユーザ自身に認識させるようにしてもよい。前者の場合、初期処理部22は倍率の最小値「extend_min」および最大値「extend_max」を取得した後、対応関係70をあらかじめ定めた規則に則り決定する。後者の場合はアプリケーションプログラムなどにおいて対応関係70そのものを設定しておく。
【0069】
画像規定パラメータの可変範囲の両端を、倍率の変化の範囲の両端と合致させる以外、倍率と画像規定パラメータの対応関係の規則はアプリケーションやユーザの環境などに応じて変化させてよい。図8の例では、倍率と画像規定パラメータが線形に変化する例を示している。ただし同図の対応関係70では、基準位置P_0と対応する倍率「extend_0」を中心とする2aの範囲で、倍率が変化しても画像規定パラメータが変化しない領域72を設けている。これは、ユーザが基準位置から動いていなくても実際の微妙な頭部の動きや倍率の算出誤差などによって倍率が変化する可能性が考えられるためである。
【0070】
そのようなユーザが意図しない揺らぎによって画像規定パラメータ、ひいては表示画像が過剰な反応をしないように、領域72を不感帯として設けてもよい。また、対応関係70のうち、不感帯以外の部分は線形でなくてもよい。例えば二次、三次といった関数でもよいし、不連続に変化させてもよい。なお図8において不感帯を設けない場合は、対応関係70の点線で示した部分を含め、全ての移動範囲において画像を連動させることになる。
【0071】
例えば前述の、ユーザが一歩前進した位置に立つと、表示する仮想世界では前進し続けるような態様とする場合に、画像規定パラメータを「前進速度」とすると、倍率が「extend_min」より大きく「extend_0」以下では前進速度の値は0、倍率が「extend_min」では所定の前進速度、といった具合に不連続な関係になる。ユーザの位置によってメニューの項目を選択するなどの場合でも同様である。連続としても特徴的な位置でのみ数値の対応を設定しておき、その他の対応関係は図8のような座標上で補間することにより決定してもよい。
【0072】
また前述の例では、ユーザの動きに画像を連動させる「移動範囲」の両端における倍率と画像規定パラメータの可変範囲の両端とを対応づけたが、必ずしも両端同士を対応づけなくてもよい。すなわちキャリブレーション時に、所定の歩数分隔てた2点の位置にユーザを立たせて頭部輪郭の倍率を取得し、その歩数に応じた動きで画像が連動するように、取得した倍率と画像規定パラメータとを対応づければよい。このときの2点、PZ_a、PZ_bをPZ_min≦PZ_a<PZ_b≦PZ_maxとなるようにすると、図8における対応関係70が決定できる。
【0073】
さらにアプリケーションや表示する画像によっては、連動させる移動範囲、すなわちPZ_min、PZ_maxを定めなくてもよい。この場合も、上述のように2点の位置における倍率と画像規定パラメータとの対応を決定し、線形、あるいは所定の関数でつなぐことにより対応関係70を決定する。そしてユーザが撮像装置12に写っている範囲内であれば、奥行き方向の移動に応じて画像が適宜変化するようにしてもよい。
【0074】
図8の例はユーザの奥行き方向の位置の変化を倍率を介して画像規定パラメータに変換する際の対応関係を示した。ユーザの横方向、縦方向の動きについても、並進量と画像規定パラメータとの対応関係を同様に設定することによって、並進量を介して画像規定パラメータへの変換を行う。ただし、ユーザの縦方向、あるいは横方向の実際の動きと、撮像装置12からの見かけ上の移動量との関係は、撮像装置12からユーザまでの距離に依存する。本実施の形態では、奥行き方向の基準位置からの移動量が倍率によって判明するため、それを用いて、見かけ上の移動量を表す並進量の値を補正し、ユーザの実際の移動量を推定する。
【0075】
図9は見かけ上の移動量を表す並進量の値を補正する原理を説明するための図である。同図は横軸(X軸)が横方向、縦軸(Z軸)が奥行き方向を表す。撮像装置12はZ軸上に設置されている。X軸とZ軸の交点は基準位置P_0であり、撮像装置12から基準位置までの距離をZ_0とする。ユーザが基準位置P_0より撮像装置12に対し奥であるP_Zにいて横方向に移動した場合、基準位置P_0において同じだけ移動した場合と比較して、撮像装置12からの見かけ上の動きは小さくなる。ユーザが基準位置より撮像装置12に近ければその逆となる。縦方向も同様である。ユーザが奥行き方向のどの位置にいても、横方向、縦方向の動きから画像規定パラメータが同様に取得できるように、見かけ上の移動量、すなわち並進量の変化量を、奥行き方向の基準位置における移動量に換算する。
【0076】
図9のようにユーザが奥行き方向P_Zの位置で横方向にX2だけ移動した場合、換算後の移動量は並進量の変化量に
X2/X1=(Z_0+(P_ZーP_0))/Z_0
を積算した値となる。奥行き方向の基準位置からの距離(P_ZーP_0)は倍率から換算することができるため、結果として倍率をもって横方向、縦方向の移動量を補正することができる。そして補正後に図8で示したのと同様の対応関係を参照して、それらの移動に対応づけた画像規定パラメータの値を取得する。なおここで述べた補正の手法はあくまで例示であり、実際にはアプリケーションの内容などに応じて様々な補正手法を設定してよい。
【0077】
次にこれまで述べた構成によって実現できる動作を説明する。図10は情報処理装置14の処理手順を示すフローチャートである。ここでは、ユーザの仮想世界での視野を表示画像として表示する態様のゲームを例に説明する。このとき、ユーザが奥行き方向に移動すると視点が奥行き方向に移動し、縦横方向に移動するとそれと連動するように縦横方向に視点が移動するようにする。従って画像規定パラメータは視点座標などとなる。
【0078】
まずユーザが当該ゲームのソフトウェアを起動させると、初期処理部22はキャリブレーションの処理を行う(S12)。例えば、立ち位置についての指示を表示装置16に表示するなどしてユーザを所定の位置に立たせたり姿勢を取らせたりしたうえで、追跡処理に用いるテンプレートとマッチングさせるなどして倍率や並進量を取得する。そして上述のとおり、各方向の動きによる倍率、並進量の変化と、画像規定パラメータとの対応づけを行い、対応関係を表す式、あるいはテーブルを変換情報記憶部24に格納する。
【0079】
初期処理部22はさらに、ゲームの初期画像、すなわち仮想世界における最初の視野を表示装置16に表示する(S12)。次に追跡処理部26は、撮像装置12が撮像した画像を逐次読み込み、頭部輪郭の視覚追跡を開始する(S14)。入力値変換部28は追跡の結果として、現在時刻tにおける頭部輪郭の倍率および並進量を取得する(S16)。このとき、履歴記憶部56に同データを記憶させておく。そして上述のとおり、次の時刻のフレーム以後は、それまで記憶してきた履歴に応じて、得られた倍率および並進量を適宜補正する。
【0080】
入力値変換部28は、変換情報記憶部24に格納された対応関係のデータを参照し、基準位置に対応する倍率からの変化量が一定値以上であるか否かを判定する(S18)。ここで「一定値」とは図8の「a」のことであり、S18で倍率の変化が不感帯以上であるかを確認する。aの値はアプリケーションや装置などで適宜設定してよい。倍率の変化量が一定値以上であれば(S18のY)、画像規定パラメータのうち奥行き方向の視点を移動させる(S20)。移動量は変換情報記憶部24に格納された対応関係のデータから取得する。倍率の変化量が不感帯にある場合は(S18のN)、上述のとおり奥行き方向の視点を移動させない。
【0081】
同様に、基準位置に対応する並進量からの時刻tの変化量が一定値以上であれば(S22のY)、対応する方向に視点を移動させる(S24)。この際、上述のように、ユーザが基準位置から奥行き方向に移動している場合(S18のY)は、倍率を用いて並進量の補正を行ったうえで視点の移動量を決定する(図示せず)。並進量のいずれかの方向の変化量が不感帯にある場合は(S22のN)、当該方向の視点を移動させない。出力データ生成部30は移動後の視点からの画像データを生成し、出力制御部32は表示装置16に最新画像が表示されるように制御する(S26)。
【0082】
倍率や並進量が不感帯にある場合は画像の視点は変化しない。図10のフローチャートは、ユーザの移動による視点の移動処理のみを示しているため、その他の処理は省略しているが、視点が移動しなくても画像内のオブジェクトが動くなど、S26で表示する最新画像には動きがあってもよい。ゲーム自体が終了したりユーザが終了指示を出したり、といったことにより処理を終了する必要がなければ(S28のN)、次のフレームの時刻t+1を現在時刻tとして(S30)、S16からS26までの処理を繰り返す。処理終了の必要が生じたら(S28のY)、そこで処理を終了する。
【0083】
図11および図12は、図10のフローチャートで処理対象としたゲームにおいて表示装置16に表示する画像の、ユーザの位置に対する変化の例を示している。これらの図は、ユーザの代表的な位置とその位置で表示する画像の例を矢印で対応させて示している。画像はいくつかの立方体が浮かんで静止している状態を表している。図11のユーザの位置座表は縦横方向(X軸およびY軸)を示しており、原点を基準位置とする。ユーザが基準位置にいるとき(ユーザ18b)に表示する画像80に対し、ユーザが右に移動して背伸びをするなどして頭部輪郭が右上にあるとき(ユーザ18a)は、画像82のように立方体の景色を右上から見下ろすような画像を表示する。ユーザが左に移動して屈むなど頭部輪郭が左下にあるとき(ユーザ18c)は、画像84のように立方体の景色を左下から見上げるような画像を表示する。
【0084】
図12のユーザの位置座標は奥行き方向(Z軸)を示している。ユーザが基準位置にいるとき(ユーザ18e)に表示する画像86に対し、ユーザが撮像装置12に近づいたとき(ユーザ18d)は、画像88のように立方体の景色に近づくような画像を表示し、撮像装置12から遠のいたとき(ユーザ18f)は、画像90のように立方体の景色から遠ざかるような画像を表示する。なお、上述のように、基準位置以外にいるときは実際には、継続的に画像の視点を移動させるようにしてもよい。
【0085】
以上述べた本実施の形態によれば、撮像装置によってユーザの画像を取得し、奥行き方向を含むユーザの動きを検出して、それを入力情報として処理を行う。平面上の変化のみならず奥行き方向の変化をも捉えて利用することにより、入力値のバリエーションが増し、複雑な入力体系を有するアプリケーションにも対応させ易い。結果として、コントローラやキーボードなどの入力手段と比較し、入力できる項目数を保持しつつ、自分の体自体を利用したより直感的で容易な入力が可能となる。また体を利用するため、ゲーム性を発揮しやすく、ロールプレイング、シューティング、スポーツなど様々なカテゴリの仮想世界を形成するゲームにおいて、仮想世界をより自然に楽しむことができる。
【0086】
ユーザの動作検出は、頭部輪郭を追跡するによって求められた倍率および並進量を利用する。これらのパラメータは、フレームごとなどの微小時間ごとに取得できるため、ゲームなどのアプリケーション処理中にユーザの周囲の環境が変化しても、高い精度で一人のユーザの頭部を特定することができる。また頭部輪郭の形状は、顔の向きや髪の毛のかかり具合などにほとんど影響されないため、顔検出などと比較しても信頼性が高い。結果として、ユーザ自身や周囲の状況の変化に強いアプリケーション生成が可能となる。
【0087】
さらに、撮像装置に対して縦横方向の動きを、倍率によって補正する。これにより、奥行き方向のどの位置にいても、同じ縦横方向の移動では同じ画像の動きとなり、ユーザにとって違和感のない画像表現ができる。画像表現ばかりでなく、単にメニューから項目を選択するような場合であっても、撮像装置からの距離によってユーザが動きを変化させなければいけなかったり移動量検出の精度が落ちたりすることがないため、結果として多くのパラメータを体の動きのみで容易に入力することができる。
【0088】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0089】
例えば本実施の形態では、視覚追跡の結果得られた倍率の変化と奥行き方向の移動量との線形性を利用することにより、倍率を画像規定パラメータに変換したが、奥行き方向の移動量を推定するために倍率を用いなくてもよい。例えば、視覚追跡の結果推定できる、頭部輪郭の形状を利用してもよい。この場合、得られた頭部輪郭のΩ形の内部の画素数を数え、その数によって見かけ上の頭の大きさを表し、奥行き方向の移動量を推定する。
【0090】
このとき、取得される輪郭線は加重平均による推定値であるうえ限られた制御点で構成されるBスプライン曲線であるため、ユーザの頭の輪郭に完全に合致しないことが考えられる。そのため、一度加重平均によって取得した輪郭線を、再度エッジ画像とマッチングさせ、ユーザの頭部輪郭に輪郭線をフィッティングさせてから内部の画素数を数えてもよい。このようにすることで、精度よく奥行き方向の移動が検出できる。
【0091】
さらに、撮像装置の他に空間の熱分布を測定する温度センサを設け熱分布を取得したり、前景抽出器により背景差分を行ったりして、ユーザが存在する領域が他の手段で取得できるようにしてもよい。この場合、追跡結果として得られた輪郭線や上述のように実際の頭部輪郭とフィッティングさせた輪郭線と、別の手段で取得した頭部領域とを比較して、さらに輪郭線の補正を行うようにしてもよい。温度センサや前景抽出器による対象物の領域取得は既存の技術を適用できる。同様に、頭部輪郭の追跡とともに顔検出処理を行ってもよい。例えば推定した頭部輪郭の内部領域に対し顔検出を行うことにより輪郭線、あるいは倍率などのパラメータを補正する。いずれのこの場合も奥行き方向の移動を精度よく検出できる。
【0092】
また本実施の形態では、主に一人のユーザの動きを検出する態様について説明したが、ユーザは複数でもよい。また、奥行き方向の移動を伴わないゲームなどでも本発明を適用することにより精度のよい動き検出が可能となる。例えば、複数のユーザが同時にプレイするゲーム、例えばテニスのダブルス、協力しながらのロールプレイング、格闘、シューティングなどのゲームにおいて、ユーザの頭部の縦横方向の動きを、画像内の仮想のユーザであるアバターの動きに連動させる。この場合、ユーザごとに頭部輪郭の追跡を行い、それぞれに対して移動量を検出する。
【0093】
このとき、本実施の形態で説明したのと同様に、ユーザの奥行き方向の立ち位置によって実際の動きと見かけ上の移動量との関係が変化する。したがって、本実施の形態と同様、各ユーザの頭部の倍率を利用して見かけ上の移動量を補正していずれかのユーザの奥行き方向の立ち位置における移動に置き換える。これにより、複数のユーザの立ち位置が奥行き方向にばらけているような場合でも、同じ動作では同じ反応をする画像を生成することができ、自然なユーザインターフェースを実現できる。
【0094】
またユーザごとに、形状空間ベクトルのパラメータと画像規定パラメータとの対応関係を異ならせてもよい。例えばユーザの頭の大きさの違いによって余計な補正を行わないようにすることで、さらに動きの検出精度が向上する。ここで個々のユーザを認識するために、追跡によって得られる頭部領域に顔検出処理を施し、ユーザを特定したうえで対応関係を切り替えるようにしてもよい。
【符号の説明】
【0095】
10 情報処理システム、 12 撮像装置、 14 情報処理装置、 16 表示装置、 20 画像取得部、 22 初期処理部、 24 変換情報記憶部、 26 追跡処理部、 28 入力値変換部、 30 出力データ生成部、 32 出力制御部、 40 画像処理部、 42 サンプリング部、 46 観測部、 50 結果取得部、 52 追跡結果取得部、 54 補正部、 56 履歴記憶部。
【特許請求の範囲】
【請求項1】
対象物の動きを動画像として撮像する撮像装置と、
前記撮像装置に対する前記対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定する入力値取得部と、
前記入力値取得部が推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記入力値取得部は、
前記対象物の一般形状を曲線で表し、少なくとも当該曲線の倍率および並進量を変化させながら前記撮像装置が撮像した動画像を構成する画像フレームのエッジ画像とマッチングすることによって、当該画像フレームにおける前記対象物と最も合致する曲線を規定する倍率および並進量のデータを、画像フレームごとに取得する追跡処理部と、
前記追跡処理部が取得した前記並進量のデータを用いて縦方向および横方向の動き量を推定し、前記倍率のデータを用いて奥行き方向の動き量を推定する入力値変換部と、
を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記入力値取得部は、
前記対象物の一般形状を曲線で表し、少なくとも当該曲線の倍率および並進量を変化させながら前記撮像装置が撮像した動画像を構成する画像フレームのエッジ画像とマッチングすることによって、当該画像フレームにおける前記対象物と最も合致する曲線を、画像フレームごとに取得する追跡処理部と、
前記追跡処理部が取得した曲線で囲まれた領域の画素数を用いて奥行き方向の動き量を推定する入力値変換部と、
を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記追跡処理部は、前記対象物として人間の頭部の輪郭形状をΩ形の曲線で表し、
前記入力値変換部は、ユーザの頭部の三次元空間での動き量を推定することを特徴とする請求項2または3に記載の情報処理装置。
【請求項5】
前記出力データ生成部は、前記動き量に応じて一意に決定する変数を入力値として処理を行い、
前記出力データ生成部における処理に先立ち、各方向における前記対象物の動く範囲を対象物ごとに特定し、当該動く範囲と前記出力データ生成部の入力値との対応関係を決定する初期処理部をさらに備えることを特徴とする請求項1から3のいずれかに記載の情報処理装置。
【請求項6】
前記出力データ生成部は、あらかじめ設定された対応関係に基づき、前記動き量に応じて一意に決定する変数を入力値として処理を行い、
前記出力データ生成部における処理に先立ち、前記撮像装置が撮像するユーザの画像の鏡面画像を表示装置に表示したうえで、前記対応関係によって規定される、各方向における前記対象物の許容移動範囲の端点に対応する鏡面画像上の位置に、前記対象物の一般形状を表す曲線をさらに表示し、表示画像上で当該曲線と前記対象物の実際の輪郭線とが一致するように前記対象物を移動させることにより、前記対象物の許容移動範囲をユーザに認識させる初期処理部をさらに備えることを特徴とする請求項1から3のいずれかに記載の情報処理装置。
【請求項7】
前記入力値取得部は、前記対象物の奥行き方向の動き量に基づき、撮像装置による見かけ上の縦方向および横方向の動き量を補正することにより、実際の縦方向および横方向の動き量をそれぞれ推定することを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記出力データ生成部は、前記三次元空間での基準位置からの動き量が、あらかじめ設定されたしきい値を超えない場合、当該動き量の変化を実行する処理に反映させないことを特徴とする請求項1に記載の情報処理装置。
【請求項9】
前記入力値変換部は、各画像フレームにおいて取得された前記並進量のデータと前記倍率のデータに対し、その前までの画像フレームにおける各データの時間変化を用いてノイズ除去のフィルタリングを施し、補正することを特徴とする請求項2に記載の情報処理装置。
【請求項10】
前記出力データ生成部は、ユーザの仮想世界での視野を表現した画像のデータを生成し、ユーザの頭部の三次元空間での動き量に応じて、当該視野の視点を変化させ、
前記出力データ生成部が生成した画像を、ユーザが三次元空間を移動しながら確認できるように表示する表示装置をさらに備えることを特徴とする請求項4に記載の情報処理装置。
【請求項11】
前記出力データ生成部は、仮想世界でのユーザを表すオブジェクトを表現した画像のデータを生成し、ユーザの頭部の三次元空間での動き量に応じて、当該オブジェクトを動かし、
前記出力データ生成部が生成した画像を、ユーザが三次元空間を移動しながら確認できるように表示する表示装置をさらに備えることを特徴とする請求項4に記載の情報処理装置。
【請求項12】
対象物の動きを動画像として撮像する撮像装置と、
前記撮像装置に対する前記対象物の縦方向、横方向の二次元空間での基準位置からの動き量と、奥行き方向の基準位置からの距離とを前記動画像より推定する入力値取得部と、
前記入力値取得部が推定した二次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、
を備え、
前記入力値取得部は、前記対象物の奥行き方向の基準位置からの距離に基づき、撮像装置による見かけ上の縦方向および横方向の動き量を補正することにより、実際の縦方向および横方向の動き量をそれぞれ推定することを特徴とする情報処理装置。
【請求項13】
対象物の動きを動画像として撮像装置により撮像するステップと、
撮像装置に対する前記対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定するステップと、
推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成するステップと、
を含むことを特徴とする情報処理方法。
【請求項14】
前記出力データを生成するステップは、前記対象物の三次元空間での動き量に連動して変化する動画像のデータを生成し、
前記動画像を表示するステップをさらに含むことを特徴とする請求項12に記載の情報処理方法。
【請求項15】
対象物の動きを動画像として撮像装置により撮像する機能と、
撮像装置に対する前記対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定する機能と、
推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項16】
対象物の動きを動画像として撮像装置により撮像する機能と、
撮像装置に対する前対象物位の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定する機能と、
推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した、コンピュータにて読み取り可能な記録媒体。
【請求項1】
対象物の動きを動画像として撮像する撮像装置と、
前記撮像装置に対する前記対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定する入力値取得部と、
前記入力値取得部が推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記入力値取得部は、
前記対象物の一般形状を曲線で表し、少なくとも当該曲線の倍率および並進量を変化させながら前記撮像装置が撮像した動画像を構成する画像フレームのエッジ画像とマッチングすることによって、当該画像フレームにおける前記対象物と最も合致する曲線を規定する倍率および並進量のデータを、画像フレームごとに取得する追跡処理部と、
前記追跡処理部が取得した前記並進量のデータを用いて縦方向および横方向の動き量を推定し、前記倍率のデータを用いて奥行き方向の動き量を推定する入力値変換部と、
を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記入力値取得部は、
前記対象物の一般形状を曲線で表し、少なくとも当該曲線の倍率および並進量を変化させながら前記撮像装置が撮像した動画像を構成する画像フレームのエッジ画像とマッチングすることによって、当該画像フレームにおける前記対象物と最も合致する曲線を、画像フレームごとに取得する追跡処理部と、
前記追跡処理部が取得した曲線で囲まれた領域の画素数を用いて奥行き方向の動き量を推定する入力値変換部と、
を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記追跡処理部は、前記対象物として人間の頭部の輪郭形状をΩ形の曲線で表し、
前記入力値変換部は、ユーザの頭部の三次元空間での動き量を推定することを特徴とする請求項2または3に記載の情報処理装置。
【請求項5】
前記出力データ生成部は、前記動き量に応じて一意に決定する変数を入力値として処理を行い、
前記出力データ生成部における処理に先立ち、各方向における前記対象物の動く範囲を対象物ごとに特定し、当該動く範囲と前記出力データ生成部の入力値との対応関係を決定する初期処理部をさらに備えることを特徴とする請求項1から3のいずれかに記載の情報処理装置。
【請求項6】
前記出力データ生成部は、あらかじめ設定された対応関係に基づき、前記動き量に応じて一意に決定する変数を入力値として処理を行い、
前記出力データ生成部における処理に先立ち、前記撮像装置が撮像するユーザの画像の鏡面画像を表示装置に表示したうえで、前記対応関係によって規定される、各方向における前記対象物の許容移動範囲の端点に対応する鏡面画像上の位置に、前記対象物の一般形状を表す曲線をさらに表示し、表示画像上で当該曲線と前記対象物の実際の輪郭線とが一致するように前記対象物を移動させることにより、前記対象物の許容移動範囲をユーザに認識させる初期処理部をさらに備えることを特徴とする請求項1から3のいずれかに記載の情報処理装置。
【請求項7】
前記入力値取得部は、前記対象物の奥行き方向の動き量に基づき、撮像装置による見かけ上の縦方向および横方向の動き量を補正することにより、実際の縦方向および横方向の動き量をそれぞれ推定することを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記出力データ生成部は、前記三次元空間での基準位置からの動き量が、あらかじめ設定されたしきい値を超えない場合、当該動き量の変化を実行する処理に反映させないことを特徴とする請求項1に記載の情報処理装置。
【請求項9】
前記入力値変換部は、各画像フレームにおいて取得された前記並進量のデータと前記倍率のデータに対し、その前までの画像フレームにおける各データの時間変化を用いてノイズ除去のフィルタリングを施し、補正することを特徴とする請求項2に記載の情報処理装置。
【請求項10】
前記出力データ生成部は、ユーザの仮想世界での視野を表現した画像のデータを生成し、ユーザの頭部の三次元空間での動き量に応じて、当該視野の視点を変化させ、
前記出力データ生成部が生成した画像を、ユーザが三次元空間を移動しながら確認できるように表示する表示装置をさらに備えることを特徴とする請求項4に記載の情報処理装置。
【請求項11】
前記出力データ生成部は、仮想世界でのユーザを表すオブジェクトを表現した画像のデータを生成し、ユーザの頭部の三次元空間での動き量に応じて、当該オブジェクトを動かし、
前記出力データ生成部が生成した画像を、ユーザが三次元空間を移動しながら確認できるように表示する表示装置をさらに備えることを特徴とする請求項4に記載の情報処理装置。
【請求項12】
対象物の動きを動画像として撮像する撮像装置と、
前記撮像装置に対する前記対象物の縦方向、横方向の二次元空間での基準位置からの動き量と、奥行き方向の基準位置からの距離とを前記動画像より推定する入力値取得部と、
前記入力値取得部が推定した二次元空間での動き量に応じて異なる処理を行い出力データを生成する出力データ生成部と、
を備え、
前記入力値取得部は、前記対象物の奥行き方向の基準位置からの距離に基づき、撮像装置による見かけ上の縦方向および横方向の動き量を補正することにより、実際の縦方向および横方向の動き量をそれぞれ推定することを特徴とする情報処理装置。
【請求項13】
対象物の動きを動画像として撮像装置により撮像するステップと、
撮像装置に対する前記対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定するステップと、
推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成するステップと、
を含むことを特徴とする情報処理方法。
【請求項14】
前記出力データを生成するステップは、前記対象物の三次元空間での動き量に連動して変化する動画像のデータを生成し、
前記動画像を表示するステップをさらに含むことを特徴とする請求項12に記載の情報処理方法。
【請求項15】
対象物の動きを動画像として撮像装置により撮像する機能と、
撮像装置に対する前記対象物の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定する機能と、
推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項16】
対象物の動きを動画像として撮像装置により撮像する機能と、
撮像装置に対する前対象物位の縦方向、横方向、奥行き方向の三次元空間での基準位置からの動き量を、前記対象物の輪郭線に基づき前記動画像より推定する機能と、
推定した三次元空間での動き量に応じて異なる処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した、コンピュータにて読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−191827(P2010−191827A)
【公開日】平成22年9月2日(2010.9.2)
【国際特許分類】
【出願番号】特願2009−37214(P2009−37214)
【出願日】平成21年2月19日(2009.2.19)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
【公開日】平成22年9月2日(2010.9.2)
【国際特許分類】
【出願日】平成21年2月19日(2009.2.19)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】
[ Back to top ]