説明

情報処理装置および情報処理方法

【課題】首を振るジェスチャを精度よく検出する。
【解決手段】撮像装置12が取得したユーザの姿を含む動画像のデータを、情報処理装置14の画像取得部20が取得する。追跡処理部26は、パーティクルフィルタによる視覚追跡を動画像に対し行い、ユーザの頭部輪郭を推定する。ジェスチャ検出部28は、頭部輪郭の内部領域における顔の領域を特定し、顔の向きを表すパラメータを取得して履歴化する。顔の向きの時間変化が所定の基準を満たしたとき、ジェスチャがなされたと判定する。出力データ生成部30は、ジェスチャの検出結果に応じた出力データを生成する。出力制御部32は生成された出力データを、例えば表示装置16に表示するよう制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理技術に関し、特にユーザの入力に応じた処理を行うためのユーザインターフェースを含む情報処理装置およびそこで実行される情報処理方法に関する。
【背景技術】
【0002】
近年、ゲーム装置や電化製品などを含む電子機器や情報処理装置は、その機能が著しく高度化している。それに伴い、ユーザインターフェースによってユーザが行うことのできる入力体系は複雑化している。そのような複雑な入力体系にあっても容易な入力が可能となるように、ユーザインターフェースには様々な工夫がなされてきた。例えば、コントローラにおけるボタンの割り付けを工夫したり、タッチパネルを利用したりするほか、ユーザを撮像する装置をインターフェースとして取得した画像を解析することにより、ユーザの顔の向きの変化に応じた処理を行う技術も提案されている(例えば特許文献1参照)。
【0003】
このように撮像装置をユーザインターフェースとする場合、一般的には顔検出技術を利用してユーザの顔の状態などを検出することができる。例えばあらかじめ準備した基準画像と検出した顔領域の画像とをマッチングしたり特徴点を抽出したりすることにより顔の部位を検出し、その時間変化を取得する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−112360号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
情報処理技術の進歩によって、電子機器や情報処理装置を利用する環境、ユーザ、処理内容なども多様化し、それらの要因に応じて、望まれるユーザインターフェースも異なってくる。したがってそのようなニーズに合致させて、ユーザインターフェースの態様もさらに多様化させる必要がある。特に、多くのボタンなどによって複雑な入力を行わずともより自然な動きで入力が可能なユーザインターフェースが望まれている。
【0006】
本発明はこのような課題に鑑みてなされたものであり、その目的は、人の頭部のジェスチャによって正確な入力が可能なユーザインターフェースを含む情報処理技術を提供することにある。
【課題を解決するための手段】
【0007】
本発明のある態様は情報理装置に関する。この情報処理装置は、対象物の動きを動画像として撮像する撮像装置と、撮像装置が撮像した動画像に含まれる各画像フレームにおける対象物の輪郭の候補曲線を、前の時刻の画像フレームにおいて推定した対象物の輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおける対象物の輪郭を推定する追跡処理部と、追跡処理部が推定した対象物の輪郭の内部領域について画像解析を行うことにより対象物の向きまたは対象物の位置を表すパラメータを取得し、パラメータによって推定される対象物の向きまたは対象物の位置の時間変化を、あらかじめジェスチャごとに設定した基準と照合することにより、当該ジェスチャがなされたか否かを判定するジェスチャ検出部と、ジェスチャ検出部がジェスチャがなされたと判定したとき、当該ジェスチャに対応した処理を行い出力データを生成する出力データ生成部と、を備えることを特徴とする。
【0008】
本発明の別の態様は情報処理方法に関する。この情報処理方法は、対象物の動きを動画像として撮像するステップと、撮像した動画像に含まれる各画像フレームにおける対象物の輪郭の候補曲線を、前の時刻の画像フレームにおいて推定した対象物の輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおける対象物の輪郭を推定するステップと、推定した対象物の輪郭の内部領域について画像解析を行うことにより対象物の向きまたは対象物の位置を表すパラメータを取得するステップと、パラメータによって推定される対象物の向きまたは対象物の位置の時間変化を、あらかじめジェスチャごとに設定した基準と照合することにより、当該ジェスチャがなされたか否かを判定するステップと、ジェスチャがなされたと判定されたとき、当該ジェスチャに対応した処理を行い出力データを生成するステップと、を含むことを特徴とする。
【0009】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0010】
本発明によれば、人の頭部のジェスチャを利用して多様な処理を精度よく行うことができる。
【図面の簡単な説明】
【0011】
【図1】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図2】人間が頭部を用いたジェスチャをする際に頭部が回転する方向を説明するための図である。
【図3】人物を追跡対象とした場合の視覚追跡手法を説明するための図である。
【図4】パーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。
【図5】本実施の形態における情報処理装置の構成を詳細に示す図である。
【図6】本実施の形態における追跡処理部の構成を詳細に示す図である。
【図7】本実施の形態におけるジェスチャ検出部の構成を詳細に示す図である。
【図8】本実施の形態において履歴記憶部に記憶される顔向き角度の時間変化の例を示す図である。
【図9】本実施の形態の報処理装置の処理手順を示すフローチャートである。
【図10】図9のフローチャートで処理対象としたゲームにおいて表示装置に表示する画像の例を示す図である。
【発明を実施するための形態】
【0012】
図1は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システム10は、ユーザ18を撮像する撮像装置12、ユーザのジェスチャを検出しそれに応じた情報処理を行う情報処理装置14、情報処理装置が処理した結果得られた画像データを出力する表示装置16を含む。
【0013】
情報処理装置14と、撮像装置12あるいは表示装置16との接続は、有線、無線を問わず、また種々のネットワークを介していてもよい。あるいは撮像装置12、情報処理装置14、表示装置16のうちいずれか2つ、または全てが組み合わされて一体的に装備されていてもよい。また、撮像装置12は必ずしも表示装置16の上に搭載されていなくてもよい。以後の説明では、撮像装置12は表示装置16に対峙したユーザ18を正面から撮像することを前提とするが、撮像する方向が異なっていても、簡単な座標変換により同様の処理を行うことができる。またユーザ18は情報処理装置14で処理される内容によって複数でもよい。
【0014】
撮像装置12はユーザ18を含む画像のデータを、所定のフレームレートで取得する。取得された動画像データは情報処理装置14に入力される。情報処理装置14は、撮像装置12から取得した動画像データからユーザ18の顔の向きあるいは頭部の向きの時間変化を取得する。本実施の形態では、ユーザ18の顔の向きの時間変化を取得することにより頭部のジェスチャを検出し、その結果を様々な処理に利用する。ここで、頭部のジェスチャを精度よく検出するために、頭部輪郭の視覚追跡を行う。具体的な手法は後に詳述する。また、ジェスチャを検出したあと、それを利用して情報処理装置14が実行する処理は様々考えられ、その内容は限定されない。また本実施の形態では頭部に着目して首を振るジェスチャを検出する態様を主に述べるが、頭部に限らず手のひら、足などの体の部位または体全体を用いたジェスチャや、ユーザに持たせた物の動きによるジェスチャなどでも同様に検出できる。
【0015】
図2は人間が頭部を用いたジェスチャをする際に頭部が回転する方向を説明するための図である。ユーザ18が首を横に振った場合、それはYaw軸方向の回転と考えることができる。同様にうなずいた場合はPitch軸方向の回転、首をかしげた時はRoll軸の回転と考えることができる。本実施の形態では、これらの回転軸のうち少なくとも1つの軸に対する回転を、各画像フレームの時刻に対する顔の向きを取得することにより検出する。そして、例えばPitch軸方向の回転角の変化をうなずき(肯定)、Yaw軸方向の回転角の変化を首を横に振る(否定)、Roll軸方向の回転角の変化を首をかしげる(わからない)という意志を表現するジェスチャと捉えると、そのような意志を反映させることのできるゲームや情報処理を行うことができる。
【0016】
また、単にそれらの3種類の変化を最大3種類の選択肢からの選択入力に利用することもできる。この場合、あらかじめ首を振る向きと処理とを対応づけておくことにより、情報処理装置14は、マウス、トラッキングボール、アナログスティックなど一般的な入力装置に代えて顔の向きの変化を利用でき、さらに幅広い分野の情報処理を行うことができる。以後の説明では、一般的に用いるジェスチャの他、このように情報処理ごとに定めた対応づけによって行う首振りも広義の「ジェスチャ」とする。情報処理装置14が実行する処理の例は後に述べる。表示装置16は、情報処理装置14がユーザ18のジェスチャを検出した結果を反映させて生成した画像データを取得し、画像として出力する。
【0017】
次に情報処理装置14が行う、ユーザ18の顔の向きの時間変化の検出原理を説明する。本実施の形態では、顔の向きの時間変化を精度よく検出するため、まず頭部輪郭の動きを追跡する。具体的には、パーティクルフィルタを用いた視覚追跡処理を、撮像装置12が撮像したユーザ18を含む画像に対して実行する。頭部輪郭の視覚追跡は、動画像の各画像フレームの頭部輪郭を時間発展的に推定していく技術である。また、顔の向きが変化しても画像フレーム間でその頭部輪郭が大幅に変化することは考えにくい。結果として、顔の向きが時間変化してもジェスチャ検出精度への影響が少ない。
【0018】
本実施の形態では上述のとおり、「顔の向きの時間変化」という時間幅を有する行為を入力として利用する。顔領域の画像処理として一般的に用いられる顔検出技術は、基本的に静止画に対する処理であり、それを時間変化の検出に利用するということは、結局、複数の静止画についての検出結果をつなげていくことに他ならない。顔検出の処理自体は、処理の効率化という観点以外に、基本的には前の画像フレームとの関連性を考慮しないため、複数の人が画像に含まれていたり人が移動したりといった状況の変化が考えられるような有限の時間で発生した事象を検出するときは誤差を含みやすい。本実施の形態によれば、頭部輪郭の追跡処理自体が時間発展的であるため、前の画像フレームとの関連性から個々人の動きを精度よく捉えることができる。
【0019】
図3は人物を追跡対象とした場合の視覚追跡手法を説明するための図である。人物画像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】
ここで(shift,shift)は(x,y)方向への並進量、(extend,extend)は倍率、θは回転角である。そして形状空間ベクトルxをテンプレートQtに作用させるための作用行列Wを用いると、変形後の曲線、すなわち候補曲線Qは以下のように記述できる。
【0027】
【数2】

【0028】
式2を用いれば、形状空間ベクトルxを構成する6つのパラメータを適宜変化させることにより、テンプレートを並進、伸縮、回転させることができ、組み合わせによって候補曲線Qを種々変化させることができる。
【0029】
そして、制御点、およびノットの間隔といったテンプレートQtのパラメータや、形状空間ベクトルxを構成する6つのパラメータを変化させることによって表現される複数の候補曲線について、各ノットの近傍にある人物152のエッジを探索する。その後、エッジとの距離などから各候補曲線の尤度を求めることにより、形状空間ベクトルxを構成する6つのパラメータで定義される6次元空間における確率密度分布を推定する。
【0030】
図4はパーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。同図では理解を簡単にするために、形状空間ベクトル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】
このようにして得られた各時刻の形状空間ベクトルが定めるΩ形の頭部輪郭の内部領域は、およそ顔領域および髪の毛の領域で構成される。そこで当該頭部輪郭の顔領域の変化を取得することにより、顔の向きの変化を検出する。例えば、テクスチャマッチングにより頭部領域のうち顔領域を各画像フレームで特定し、その面積の変化と変化の方向を取得する。なお顔領域の特定は、テクスチャ以外に、色、エッジ、周波数分布など画像が有する特徴のいずれを利用してもよい。この場合、面積が振動していれば顔の向きが振動している、ひいてはユーザ18が首を振っていると判定する。領域が縦方向に伸縮していればPitch角、横方向に伸縮していればYaw角の変化である。
【0039】
これらの変化を統合すれば、「肯定」、「否定」のジェスチャを検出できる。またRoll角の変化は、上述の視覚追跡処理における形状空間ベクトルのうち、回転角θの変化で特定でき、これにより首をかしげる「疑問」のジェスチャを検出できる。このように、本実施の形態では頭部のジェスチャを精度よく検出することができるため、それを利用した様々なアプリケーションと組み合わせることができる。
【0040】
図5は情報処理装置14の構成を詳細に示している。情報処理装置14は、撮像装置12から入力される入力画像データを取得する画像取得部20、上述の視覚追跡処理を実行する追跡処理部26、追跡の結果得られた頭部輪郭の内部領域の画像データからジェスチャを検出するジェスチャ検出部28、検出したジェスチャを利用したゲームなどのアプリケーションを実行し画像データなどの出力データを生成する出力データ生成部30、および、生成された出力データの表示装置16などへの出力を制御する出力制御部32を含む。
【0041】
図5および以後の図6、7において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU、メモリ、その他のLSIで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0042】
画像取得部20は、有線、無線を問わず撮像装置12からユーザの画像をリアルタイムで取得する。追跡処理部26は、上述の視覚追跡の手法によりユーザの頭部輪郭を追跡する。ジェスチャ検出部28は、追跡処理部26の追跡の結果得られる各画像フレームの時刻における頭部輪郭のデータに基づき、上述のようにジェスチャを検出する。なお上述の説明では、各時刻の頭部領域における顔領域をテクスチャマッチングにより特定し、顔領域の面積の時間変化とその変化の方向を用いて、Pitch軸方向、Yaw軸方向の向きの時間変化を取得するとした。一方、テクスチャマッチング以外の手法を用いることもできる。
【0043】
例えば、頭部領域について顔検出処理を施してもよい。この場合、頭部輪郭の内部に顔が検出されたら、各部位の相対位置、あるいは特定の部位の位置などの検出結果を各時刻について記録することにより、Pitch角、Yaw角の時間変化を取得してもよい。あるいは、コンピュータビジョンの分野で一般的に用いられるオプティカルフローやLucas−Kanadeアルゴリズム(klt)の技術を用いて、頭部輪郭の内部領域の移動方向と移動量を大域的に解析してもよい。
【0044】
または、各時刻の頭部輪郭の内部領域と、直前の画像フレームなど時間的に前の画像フレームにおける頭部輪郭の内部領域とをマッチングし、内部領域中の注目箇所の移動量や面積の変化量とその方向から頭部領域の向きの変化を取得してもよい。このようなマッチングやオプティカルフローなどの画像解析では、頭部そのものの回転を検出することができるため、ユーザの背後に近い位置から撮影した場合など顔領域が少ない場合でもジェスチャの検出が可能である。いずれの場合であっても、顔の向き、あるいは頭部の向きを表すパラメータを各画像フレームで取得してその時間変化を記録し、あらかじめジェスチャごとに設定した所定の基準を満たした場合に、ジェスチャが行われたと判定する。
【0045】
出力データ生成部30は、ジェスチャ検出部28がジェスチャが行われたと判定した場合に、その結果に対応する処理を行い、画像データなどの出力データを生成する。上述のように本実施の形態は様々なアプリケーションへの応用が可能であるため、出力データ生成部30は、画像データを生成するばかりでなく各アプリケーションに応じた処理を行ってよい。例えば、ジェスチャ検出部28が検出するジェスチャと、それに応じた処理とをあらかじめ対応づけておき、出力データ生成部30は当該ジェスチャに対応する処理を行うようにしてもよい。
【0046】
図6は追跡処理部26の構成を詳細に示している。追跡処理部26は、入力画像データからエッジ画像などを生成する画像処理部40、パーティクルの生成および消滅によってパラメータ空間におけるサンプリングを行うサンプリング部42、各パーティクルが規定する候補曲線の尤度を観測する観測部46、観測の結果を統合し、形状空間ベクトルを推定する結果取得部50、Ω形のテンプレートを規定するパラメータを記憶するパラメータ記憶部48を含む。
【0047】
画像処理部40は、入力画像データの画像フレームごとにエッジ抽出処理を施し、エッジ画像を生成する。ここではキャニーエッジフィルタや、ソーベルフィルタなど一般的なエッジ抽出アルゴリズムを用いることができる。また画像処理部40は、背景差分を利用した前景抽出器(図示せず)を実装していてもよく、エッジ抽出処理の前処理として入力画像から追跡対象を含む前景を抽出することにより、追跡対象のエッジを効率的に抽出するようにしてもよい。
【0048】
サンプリング部42は、一つ前の時刻t−1における画像フレームに対して推定された、形状空間ベクトルxの空間での確率密度分布に基づきパーティクルの生成および消滅の処理を行う。そして全パーティクルに対し所定の運動モデルを適用して、パーティクルを当該空間上で遷移させる。
【0049】
観測部46は、サンプリング部42が生成・消滅、遷移させた各パーティクルが定める候補曲線の尤度を観測する。尤度は上述のように、画像処理部40が生成したエッジ画像上で、各候補曲線の近傍にあるエッジを探索し、当該エッジまでの距離を候補曲線ごとに見積もることによって決定する。候補曲線は上述のように、パラメータ記憶部48から読み出したΩ形のテンプレートに対し、各パーティクルを規定するパラメータを作用させることによって得られる。
【0050】
結果取得部50は、観測部46が観測した尤度に基づき式3で示すような確率密度分布を形状空間ベクトルxの空間において算出し、それにより各パラメータを重み付け平均する。また次の時刻t+1における追跡処理に使用するため、サンプリング部42にそのデータを返す。
【0051】
追跡対象が複数存在する場合、結果取得部50はさらに、それぞれに用意したテンプレートを用いて、追跡対象ごとに追跡を行う。また複数の追跡対象が重なるような場合を追跡結果によって検出し、後ろに隠れる追跡対象については所定のタイミングで追跡処理対象からはずすなどの措置を講じる。これにより追跡対象が別の追跡対象の背後に回ったことによって観測尤度が一時的に低下しても、不適当な追跡結果を出力するのを避けることができる。
【0052】
図7はジェスチャ検出部28の構成を詳細に示している。ジェスチャ検出部28は、視覚追跡の結果推定された各時刻の頭部輪郭の曲線を取得する追跡結果取得部52、頭部輪郭の内部領域の画像を解析することにより顔の向きを表す所定のパラメータを算出する顔領域解析部54、当該パラメータを蓄積し履歴として記憶する履歴記憶部56、当該パラメータの時間変化に対しジェスチャがなされたと判定する基準を記憶する判定基準記憶部58、当該パラメータの時間変化を判定基準に照らしジェスチャがなされたか否かを判定するジェスチャ判定部60を含む。
【0053】
以後、「顔の向きを表すパラメータ」は単に各軸についての「顔向き角度」と呼ぶ。例えば頭部輪郭の内部領域に顔検出処理を施す場合、顔あるいは所定の部位のPitch軸、Yaw軸の角度は一般的な手法により取得することができる。またRoll軸の角度は上述のとおり、形状空間ベクトルのパラメータのうち回転を表すパラメータθを用いることができる。一方、上述のように顔検出の手法を用いずとも、テクスチャマッチングによって得られる顔の面積などによっても顔の向きを類推することができる。このように、顔の向きを特定するための手法に応じて「顔向き角度」は適宜別のパラメータに置き換えることができる。
【0054】
追跡結果取得部52は、追跡処理部26が各画像フレームに対し推定した頭部輪郭を表す曲線のデータを取得する。これは上述のように、各パーティクルを規定する形状空間ベクトルのパラメータを確率密度分布で重み付け平均して得られた結果である。顔領域解析部54は、頭部輪郭の内部領域に対しテクスチャマッチング、顔検出処理などあらかじめ定めた処理を適用し、各画像フレームにおける顔向き角度を取得する。取得した結果は回転軸ごとに履歴記憶部56に順に蓄積していく。
【0055】
ジェスチャ判定部60は、顔領域解析部54が顔向き角度について解析する都度、それまで履歴記憶部56に記憶された顔向き角度の履歴と新たな解析結果とから、その時点までの顔向き角度の時間変化と、判定基準記憶部58に設定した判定基準とを照合し、ジェスチャがなされたか否かを判定する。判定結果は出力データ生成部30に通知する。
【0056】
図8は、履歴記憶部56に記憶される、ある回転軸の顔向き角度の時間変化の例を示している。同図は横軸を時間軸、縦軸を顔向き角度とし、ジェスチャのないニュートラルポジションでの顔向き角度を角度「0」としている。なお顔向き角度を求める手法に応じて、ニュートラルポジション時の顔向き角度のパラメータをあらかじめ取得しておく。
【0057】
ニュートラルポジションからの顔向き角度は、各画像フレームにおける顔向き角度を顔検出やマッチングなどを用いて直接求めてもよいし、前の画像フレームからのテクスチャの移動を検出することにより相対的な角度変化を求めるようにしてもよい。このとき、さらにニュートラルポジション時の顔領域の画像と比較することによってニュートラルポジションからの角度を取得することにより相対的な角度変化を補正するようにしてもよい。
【0058】
また顔向き角度は各回転軸に対して同様の履歴を取得しておく。判定基準記憶部58には、ジェスチャと判定するための判定基準を、同図のような顔向き角度の変化に対しあらかじめ設定して格納しておく。例えば、顔向き角度の振幅に対してしきい値を設定し、さらに振動の継続時間に対してしきい値を設定する。図8の例では、前者を「±θ1」、後者を「T」として表している。この場合、しきい値「±θ1」を超える振幅を有する角度の振動が時間「T」以上観測されたら、ジェスチャがなされたと判定する。
【0059】
なお回転軸とジェスチャとの対応関係を判定基準記憶部58に格納しておいてもよい。例えば、Pitch軸の振動であれば「肯定」、Yaw軸の振動であれば「否定」と対応づける。角度の振動は高速フーリエ変換(FFT:Fast Fourier Transform)などを用いて周波数解析を行うことにより検出することができる。あるいは、ピークの出現回数にさらにしきい値を設け、所定時間「T」内にしきい値「±θ1」を超えるピークが、所定回数出現したらジェスチャがなされたと判定してもよい。図8の例では、始めの段階では小さな動きが見られるものの、その振幅はしきい値「±θ1」には至っていない。このような動きは、ユーザが意志をもって行ったジェスチャではないと判断する。
【0060】
一方後半には、しきい値「±θ1」を超える4つのピーク「A」、「B」、「C」、「D」が、継続時間のしきい値Tの間、継続して観測できる。このとき、最初のピーク「A」からしきい値Tを経過した時点でジェスチャがなされたと判定する。この例では角度の振動を観測しているため、例えば「肯定」を示すうなずきと「否定」を示す首を横に振るジェスチャを検出することができる。一方、判定基準は後に出力データ生成部30が行う処理によって様々に設定してよい。例えば、一回だけうなずく、首をかしげるなど、いずれかの回転軸に対し一回だけ大きく角度が変化し戻る動作を検出する場合は、角度のしきい値のみを設定すればよい。
【0061】
図8の例は、ニュートラルポジションにおける顔向き角度を「0」としたときの顔向き角度の時間変化を示しているが、上述のように、厳密に角度の絶対値を取得しなくてもよい。例えば、前の時刻の画像フレームからの変化量から単位時間当たりの変化量とその方向、すなわち速度ベクトルが概ね取得できれば、その時間変化から向きや位置の振動が検出できる。ここで取得する「変化量」は、角度の変化量以外に、前の画像フレームとのマッチングによって得られた注目箇所の移動量、面積の変化などでもよい。このように「速度ベクトルの時間変化」に基づきジェスチャを検出する場合は、例えば速度のピークに対ししきい値を設け、判定基準としてもよい。
【0062】
次にこれまで述べた構成によって実現できる動作を説明する。図9は情報処理装置14の処理手順を示すフローチャートである。ここではユーザのPitch軸(縦方向)およびYaw軸(横方向)の首振りを、それぞれ「YES」(肯定)、「NO」(否定)のジェスチャとして検出し、それをゲームに利用する場合を例に説明する。
【0063】
まずユーザが当該ゲームのソフトウェアを起動させると、撮像装置12が当該ユーザの撮像を開始するとともに表示装置16に初期画面を表示する(S8)。一方、追跡処理部26は撮像装置12が撮像した画像を逐次読み込んで頭部輪郭の視覚追跡を開始する(S10)。ジェスチャ検出部28の追跡結果取得部52は、追跡の結果として、現在時刻tにおける画像フレームの頭部輪郭の曲線データを取得する(S12)。次にジェスチャ検出部28の顔領域解析部54は、得られた頭部輪郭の内部領域に対し顔領域特定、顔向き角度の取得を試みる(S14)。何らかの原因で顔領域が特定できなかったり顔向き角度が得られない場合は(S14のN)、次の時刻t+1の画像フレームの頭部輪郭を取得する(S15、S12)。
【0064】
顔領域が特定でき、顔向き角度も得られた場合は(S14のY)、当該顔向き角度のデータを履歴記憶部56に格納する(S16)。この際、画像フレームのIDあるいは時刻tと対応させて、各回転軸に対する角度を格納する。次にジェスチャ検出部28のジェスチャ判定部60は、判定基準記憶部58に設定された判定基準に照らし、まずYaw軸で判定基準を満たしたか否かを判定する(S18)。基準を満たした場合は(S18のY)、ユーザが「NO」のジェスチャをしたと判定する(S20)。
【0065】
Yaw軸で基準を満たしていなければ(S18のN)、次にPitch軸で判定基準を満たしたか否かを判定する(S22)。基準を満たした場合(S22のY)、ユーザが「YES」のジェスチャをしたと判定する(S24)。一般的に、人が首を振るジェスチャは、縦方向の動きより横方向の動きの方が明確に行われることがわかっている。そのため、Yaw軸の振動を先に判定してS18のYの分岐を早く確定させることにより、Pitch軸の判定による計算負荷を軽減させることができる。ただし本実施の形態はこれに限らず、例えば2つの回転軸に対する判定を並列に行ってもよい。
【0066】
いずれの回転軸でも判定基準を満たさない場合は(S18のN、S22のN)、次の時刻t+1の画像フレームの頭部輪郭を取得し(S15、S12)、同様の処理を繰り返す(S14〜S24)。なお複数の人間が撮像対象となっている場合は、それぞれの頭部輪郭についてS14〜S24の処理を繰り返す。いずれかのジェスチャがなされたと判定されたら(S20またはS24)、出力データ生成部30は当該ジェスチャに対応する処理を行い、その結果生成された画像データは、出力制御部32の制御のもと表示装置16に表示される(S26)。
【0067】
なお図9のフローチャートは、ユーザのジェスチャ検出に主眼を置いているため、その他の処理は省略しているが、ジェスチャがなくても画像内のオブジェクトが動くなど、S26で表示する最新画像には動きがあってもよい。ゲーム自体が終了したりユーザが終了指示を出したり、といったことにより処理を終了する必要がなければ(S28のN)、次の画像フレームの時刻t+1を現在時刻tとして(S30)、S12からS26までの処理を繰り返す。処理終了の必要が生じたら(S28のY)、そこで処理を終了する。
【0068】
図9のフローチャートにおいてS18およびS22のジェスチャ判定の処理は、上述のように、継続時間のしきい値Tだけ顔向き角度の振動が継続した時点でジェスチャがなされたと判定する。このとき実際には、しきい値Tまで待たずとも、振動が開始した後、その継続時間とともに当該振動がジェスチャである確率が増えていく。この性質を利用して、しきい値Tより前の所定のタイミング、例えばしきい値Tの70%の時間経過後などで、「NO」または「YES」のジェスチャがなされそうであることを先読みしてもよい。そしてこの段階で、ジェスチャがなされたと最終的に判定された後にすべき処理、例えば更新する画像データの生成などの処理の一部を投機的に行っておいてもよい。
【0069】
この場合、しきい値Tまで振動が継続すれば、投機的に行っていた処理の結果を利用してその後の処理を開始し、しきい値T経過前に振動がなくなれば投機的な処理の結果は破棄する。このようにすることで、ジェスチャに対するその後の処理や出力の応答性が向上する。
【0070】
次に本実施の形態で実現できるアプリケーションの例を説明する。図10は図9のフローチャートで処理対象としたゲームにおいて、表示装置16に表示する画像の例を示している。このゲームは、複数の参加者が表示装置16に表示された質問に「YES」か「NO」で答えるものである。答えが「YES」であれば首を縦に数回振り、「NO」であれば首を横に数回振るようにルールづけをしておく。ゲーム中、表示装置16にはゲーム画面70を表示する。
【0071】
ゲーム画面70は、テレビのクイズ番組を模した構成を有し、参加者の人数分の回答者席74が表示される。そして撮像装置12が撮影した参加者を含む画像のうち、視覚追跡の結果得られた各参加者の頭部領域の部分を切り取り、各回答者席74の上に参加者の顔画像76a、76b、76cとして表示する。そして質問領域72に表示した質問を見た参加者が、上述のルールに基づき、首の振り具合によって回答する。ジェスチャ検出部28は各参加者が「YES」のジェスチャをしたか「NO」のジェスチャをしたかを判定し、出力データ生成部30に通知する。
【0072】
視覚追跡とジェスチャ検出は実際には撮像装置12が撮像した画像上で処理が行われているため、頭部領域の画像とジェスチャの内容とは対応がとれている。したがって出力データ生成部30は、ジェスチャの内容である「YES」または「NO」の文字列を、各参加者の回答として回答者席74に表示することができる。さらに各回答に対して正解か不正解かを表す表示を行ってもよいし、回答者席の背後に得点を表示するなどしてもよい。このような画面を表示することで、ユーザは、あたかも自分がクイズ番組の回答者になったような感覚でゲームを楽しむことができる。回答は頭部のジェスチャによって行うため、参加者一人一人にコントローラを用意する必要がなく、多人数の参加が可能である。
【0073】
このように、首を振るジェスチャの本来の意味を利用することで、ユーザにとってより自然な動きで装置への入力が可能となるため、特にゲームなどをリラックスした状態で楽しむことができる。クイズ以外でも、表示装置16に表示された仮想世界における自分を表すアバターに意思表示をさせて他のユーザとコミュニケーションをとるなど、様々なゲームに応用することができる。
【0074】
また、少なくとも2方向の首振りを検出することができるため、一方をマウスの左クリック、他方を右クリックに置き換えることにより、マウスの代替物とすることができる。この場合も直感的な動作で入力が可能であるうえ、マウスを使用するためのスペースが必要なくなるため、省スペースで様々な情報処理を行うことができる。
【0075】
以上述べた本実施の形態によれば、ユーザの頭部領域を視覚追跡技術により時間発展的に追跡し、当該頭部領域のうち顔領域の向きを監視することによりジェスチャがなされたか否かを判定する。これにより、人の動作という時間に対する連続的な変化を、前の画像フレームとの関連性を踏まえつつ追うことができる。結果として、正面を向いていない顔では検出精度を維持しづらい顔検出処理を適用しても、顔の検出に失敗することなく顔向き角度を取得することができ、ジェスチャ検出を高精度に行うことができる。また、顔検出を用いずに、テクスチャマッチングなど顔の向きを表すパラメータを取得できる処理を適用することにより、容易にジェスチャ検出を行える。また画像の明るさや撮像する人数などに応じて顔の向きを特定する手法を適宜選択することができる。
【0076】
マッチングで頭部輪郭の内部領域を大域的に捉える場合は、頭部領域の面積変化などにより、顔の向きに関わらず撮像装置に対する頭部の角度変化のみを捉えることもできる。これを利用すれば、撮像装置に対して横向きのユーザが首をかしげたジェスチャをうなずきと認識させるなど検出のバリエーションが増え、アプリケーションに望まれる態様を容易に実現することができる。
【0077】
また、前の画像との関連性を考慮して頭部領域を特定したうえでジェスチャ検出を行うため、ユーザが移動したり屈んだりして頭部領域が大きくずれても、当該変化は頭部輪郭の追跡処理において吸収されるため、顔向き角度の取得を継続して行うことができる。またそのようなジェスチャ以外の動きが顔向き角度の値に大きく影響してしまうことがない。ユーザが手を顔にあてたりマスクをしていたりしても、頭部輪郭に大きな変化はないため、追跡処理、ひいてはジェスチャの検出処理は大きな影響を受けることなくジェスチャ検出の精度維持が可能である。
【0078】
さらに複数の人を同時に撮影しても、頭部輪郭はそれぞれの人に対して連続して追跡できるため、人とジェスチャとの対応づけが自然に行われる。また人が動いて接近したり交錯しても、追跡した各頭部輪郭に対してジェスチャ検出を行うため、ジェスチャの途中で別人の顔と混同し、ジェスチャを誤検出してしまうといったことが起こりにくい。結果として、複数の人が参加できるゲームなどへの適用が容易であり、様々なアプリケーションへの発展が可能である。
【0079】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0080】
例えば本実施の形態では、顔向き角度の時間変化に基づきジェスチャを検出する例について説明したが、顔の位置の時間変化に基づいても同様の処理でジェスチャを検出することができる。この場合、視覚追跡によって得られた頭部輪郭を規定する形状空間ベクトルの並進量のパラメータや、頭部輪郭の内部領域に対する顔検出などの画像解析によって、撮像装置に対する縦横の平面における顔の位置を特定することができる。さらに頭部輪郭を規定する形状空間ベクトルの倍率パラメータや顔領域の大きさなどから撮像装置に対する奥行き方向の位置を特定することができる。
【0081】
そして顔の位置の時間変化に対しジェスチャを検出する基準を設定することにより、各ジェスチャを検出する。例えば顔を引いて撮像装置から離れた場合は驚きのジェスチャ、身を乗り出して顔が画像装置に近づいた場合は興味があるというジェスチャなどと対応させることができる。さらに視覚追跡で頭部輪郭を表すΩ形の形状そのものに着目すれば、首をすくめる、伸ばすといったジェスチャも検出できる。またこのような位置の変化を上述のマウスの機能のうちポインティングに利用すれば、左右のクリックとポインティングを顔の動きで全て実現することができる。
【0082】
また本実施の形態では、頭部領域を視覚追跡により特定したあと、顔の向きの時間変化を特定して首を振るジェスチャを検出したが、顔の向きに限らず、目や口の状態変化を取得してもよい。この場合、視覚追跡により得られた頭部輪郭の内部領域に対し、顔検出処理を行って対象部位の状態、例えばまぶたや口の開き具合を取得する。そしてその時間変化を履歴化することにより、まばたきや発話を検出する。この場合も、本実施の形態と同様、頭部領域、ひいては顔領域の時間変化を忠実に追ったうえで部位の状態を特定するため、高い精度での検出が可能である。
【符号の説明】
【0083】
10 情報処理システム、 12 撮像装置、 14 情報処理装置、 16 表示装置、 20 画像取得部、 26 追跡処理部、 28 ジェスチャ検出部、 30 出力データ生成部、 32 出力制御部、 40 画像処理部、 42 サンプリング部、 46 観測部、 50 結果取得部、 52 追跡結果取得部、 54 顔領域解析部、 56 履歴記憶部、 58 判定基準記憶部、 60 ジェスチャ判定部。

【特許請求の範囲】
【請求項1】
対象物の動きを動画像として撮像する撮像装置と、
前記撮像装置が撮像した動画像に含まれる各画像フレームにおける対象物の輪郭の候補曲線を、前の時刻の画像フレームにおいて推定した対象物の輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおける対象物の輪郭を推定する追跡処理部と、
前記追跡処理部が推定した対象物の輪郭の内部領域について画像解析を行うことにより対象物の向きまたは対象物の位置を表すパラメータを取得し、前記パラメータによって推定される対象物の向きまたは対象物の位置の時間変化を、あらかじめジェスチャごとに設定した基準と照合することにより、当該ジェスチャがなされたか否かを判定するジェスチャ検出部と、
前記ジェスチャ検出部がジェスチャがなされたと判定したとき、当該ジェスチャに対応した処理を行い出力データを生成する出力データ生成部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記ジェスチャ検出部は前記対象物の向きの時間変化として、3方向の回転軸に対する対象物の向きの角度変化をそれぞれ推定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記ジェスチャ検出部は、各画像フレームにおいて推定された対象物の輪郭の内部領域の画像と、それより前の画像フレームにおいて推定された対象物の内部領域の画像とをマッチングすることにより、対象物の向きまたは位置の変化を取得することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記追跡処理部はユーザの頭部の輪郭を推定し、
前記ジェスチャ検出部は、前記頭部の輪郭の内部領域にテクスチャマッチングを施すことにより顔領域を特定し、当該顔領域の面積の変化および変化する方向に基づき、頭部の向きの時間変化を推定することを特徴とする請求項1または2に記載の情報処理装置。
【請求項5】
前記追跡処理部はユーザの頭部の輪郭を推定し、
前記ジェスチャ検出部は、推定される頭部の向きの時間変化において、頭部の向きの角度の縦方向の振動が、所定のしきい値を超える振幅で所定時間分、継続したとき、頷くジェスチャがなされたと判定することを特徴とする請求項2に記載の情報処理装置。
【請求項6】
前記追跡処理部はユーザの頭部の輪郭を推定し、
前記ジェスチャ検出部は、推定される頭部の向きの時間変化において、頭部の向きの角度の横方向の振動が、所定のしきい値を超える振幅で所定時間分、継続したとき、首を横に振るジェスチャがなされたと判定することを特徴とする請求項2に記載の情報処理装置。
【請求項7】
前記撮像装置は複数のユーザの動きを撮像し、
前記追跡処理部は各画像フレームにおける頭部輪郭をユーザごとに推定し、
前記ジェスチャ検出部は推定された各頭部輪郭に対しジェスチャがなされたか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項8】
前記出力データ生成部は、複数のユーザに対し前記追跡処理部が推定した頭部輪郭の内部領域の画像と、各頭部輪郭に対しジェスチャがなされたか否かを判定した結果に応じた画像とを、ユーザごとに対応させて表示した画像のデータを生成することを特徴とする請求項7に記載の情報処理装置。
【請求項9】
対象物の動きを動画像として撮像するステップと、
撮像した動画像に含まれる各画像フレームにおける対象物の輪郭の候補曲線を、前の時刻の画像フレームにおいて推定した対象物の輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおける対象物の輪郭を推定するステップと、
推定した対象物の輪郭の内部領域について画像解析を行うことにより対象物の向きまたは対象物の位置を表すパラメータを取得するステップと、
前記パラメータによって推定される対象物の向きまたは対象物の位置の時間変化を、あらかじめジェスチャごとに設定した基準と照合することにより、当該ジェスチャがなされたか否かを判定するステップと、
ジェスチャがなされたと判定されたとき、当該ジェスチャに対応した処理を行い出力データを生成するステップと、
を含むことを特徴とする情報処理方法。
【請求項10】
対象物の動きを動画像として撮像する機能と、
撮像した動画像に含まれる各画像フレームにおける対象物の輪郭の候補曲線を、前の時刻の画像フレームにおいて推定した対象物の輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおける対象物の輪郭を推定する機能と、
推定した対象物の輪郭の内部領域について画像解析を行うことにより対象物の向きまたは対象物の位置を表すパラメータを取得する機能と、
前記パラメータによって推定される対象物の向きまたは対象物の位置の時間変化を、あらかじめジェスチャごとに設定した基準と照合することにより、当該ジェスチャがなされたか否かを判定する機能と、
ジェスチャがなされたと判定されたとき、当該ジェスチャに対応した処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【請求項11】
対象物の動きを動画像として撮像する機能と、
撮像した動画像に含まれる各画像フレームにおける対象物の輪郭の候補曲線を、前の時刻の画像フレームにおいて推定した対象物の輪郭に基づいて定め、各候補曲線の尤度を観測することにより、各画像フレームにおける対象物の輪郭を推定する機能と、
推定した対象物の輪郭の内部領域について画像解析を行うことにより対象物の向きまたは対象物の位置を表すパラメータを取得する機能と、
前記パラメータによって推定される対象物の向きまたは対象物の位置の時間変化を、あらかじめジェスチャごとに設定した基準と照合することにより、当該ジェスチャがなされたか否かを判定する機能と、
ジェスチャがなされたと判定されたとき、当該ジェスチャに対応した処理を行い出力データを生成する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記録した、コンピュータにて読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−191826(P2010−191826A)
【公開日】平成22年9月2日(2010.9.2)
【国際特許分類】
【出願番号】特願2009−37206(P2009−37206)
【出願日】平成21年2月19日(2009.2.19)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)