(57)【要約】【課題】  ジェスチャ認識において、操作物体の動きに応じたジェスチャ座標系を決定する。【解決手段】  撮像部201は、ジェスチャ入力領域を撮影した画像を取得する。操作物体検出部202は、画像からジェスチャを行う物体を検出する。交点位置検出部203は、ジェスチャ入力領域に対する物体の位置を判定するための判定領域に検出された物体が交わる交点位置を画像から検出する。基点位置算出部204は、交点位置に基づき物体が行うジェスチャの基点位置を算出する。操作対象位置決定部205は、ジェスチャによる操作対象の位置を、操作対象位置として決定する。座標系決定部206は、基点位置と操作対象位置に基づき、画像の座標系と異なるジェスチャ座標系を決定する。【選択図】  図2
2014238727.tif 000002
【特許請求の範囲】
【請求項１】
ジェスチャ入力のためのジェスチャ認識を行う情報処理装置であって、
ジェスチャ入力領域を撮影した画像を取得する取得手段と、
前記画像からジェスチャを行う物体を検出する第一の検出手段と、
前記ジェスチャ入力領域に対する物体の位置を判定するための判定領域に前記検出された物体が交わる交点位置を前記画像から検出する第二の検出手段と、
前記交点位置に基づき前記物体が行うジェスチャの基点位置を算出する算出手段と、
前記ジェスチャによる操作対象の位置を、操作対象位置として決定する第一の決定手段と、
前記基点位置と前記操作対象位置に基づき、前記画像の座標系と異なるジェスチャ座標系を決定する第二の決定手段とを有する情報処理装置。
【請求項２】
さらに、前記物体が行うジェスチャの特徴量を抽出する抽出手段と、
前記特徴量を前記ジェスチャ座標系の特徴量に座標変換する変換手段と、
前記ジェスチャ座標系の特徴量に基づきジェスチャモデルを学習する学習手段とを有する請求項1に記載された情報処理装置。
【請求項３】
前記抽出手段は、前記物体の先端部の位置を前記特徴量として抽出する請求項2に記載された情報処理装置。
【請求項４】
さらに、前記ジェスチャモデルと前記ジェスチャ座標系の特徴量に基づきジェスチャ認識を行う認識手段を有する請求項2または請求項3に記載された情報処理装置。
【請求項５】
前記算出手段は、前記基点位置として、前記物体がジェスチャを実行中に前記第一の検出手段が検出した交点位置の平均的な位置を算出する請求項1から請求項4の何れか一項に記載された情報処理装置。
【請求項６】
前記第一の決定手段は、前記ジェスチャ入力領域の中心付近を前記操作対象位置に決定する請求項1から請求項5の何れか一項に記載された情報処理装置。
【請求項７】
前記第一の決定手段は、前記画像から前記操作対象位置を検出する請求項1から請求項5の何れか一項に記載された情報処理装置。
【請求項８】
前記第一の決定手段は、前記ジェスチャを実行中の前記物体の平均的な位置を算出する算出部と、
前記平均的な位置と前記基点位置を結ぶ直線に基づき、前記ジェスチャ入力領域に配置された複数の対象から前記操作対象を判定する判定部とを有し、
前記判定した操作対象の位置を前記操作対象位置に決定する請求項1から請求項5の何れか一項に記載された情報処理装置。
【請求項９】
前記第一の決定手段は、前記画像から前記操作対象として複数の候補を設定する設定部と、
前記認識手段の認識結果に基づき前記複数の候補から操作対象を選択し、前記選択した操作対象の位置を前記操作対象位置に決定する決定部とを有し、
前記第二の決定手段は前記複数の候補の位置と前記基点位置に基づき複数のジェスチャ座標系を決定し、前記変換手段は前記特徴量を前記複数のジェスチャ座標系それぞれの特徴量に変換し、前記認識手段は前記複数のジェスチャ座標系それぞれに変換された特徴量に基づき前記ジェスチャ認識を行った結果を前記決定部に供給する請求項4に記載された情報処理装置。
【請求項１０】
前記第二の決定手段は、前記基点位置を前記ジェスチャ座標系の原点とする請求項1から請求項9の何れか一項に記載された情報処理装置。
【請求項１１】
前記第二の決定手段は、前記基点位置から前記操作対象位置に向かうベクトルを前記ジェスチャ座標系の一軸とする請求項1から請求項10の何れか一項に記載された情報処理装置。
【請求項１２】
前記判定領域は、前記ジェスチャ入力領域の境界である請求項1から請求項11の何れか一項に記載された情報処理装置。
【請求項１３】
さらに、前記ジェスチャ入力領域を撮影する撮像手段を有する請求項1から請求項11の何れか一項に記載された情報処理装置。
【請求項１４】
前記判定領域は、前記撮像手段の撮影範囲の境界である請求項13に記載された情報処理装置。
【請求項１５】
ジェスチャ入力のためのジェスチャ認識を行う情報処理装置の情報処理方法であって、
取得手段が、ジェスチャ入力領域を撮影した画像を取得し、
第一の検出手段が、前記画像からジェスチャを行う物体を検出し、
第二の検出手段が、前記ジェスチャ入力領域に対する物体の位置を判定するための判定領域に前記検出された物体が交わる交点位置を前記画像から検出し、
算出手段が、前記交点位置に基づき前記物体が行うジェスチャの基点位置を算出し、
第一の決定手段が、前記ジェスチャによる操作対象の位置を、操作対象位置として決定し、
第二の決定手段が、前記基点位置と前記操作対象位置に基づき、前記画像の座標系と異なるジェスチャ座標系を決定する情報処理方法。
【請求項１６】
コンピュータを請求項1から請求項14の何れか一項に記載された情報処理装置の各手段として機能させるためのプログラム。
【請求項１７】
請求項16に記載されたプログラムが格納されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジェスチャ認識を行う情報処理に関する。
【背景技術】
【０００２】
ジェスチャによる入力が可能なユーザインタフェイス(UI)が多方面で利用され、ジェスチャ入力UIの一つとしてテーブルトップインタフェイスが知られている。テーブルトップインタフェイスにおいては、ジェスチャ入力が、テーブルの例えば四辺のどの辺側から、辺に対してどのような角度で行われたか（以下、ユーザの位置や向き）に応じて、表示内容やジェスチャ入力に対する挙動を切り替える必要がある。
【０００３】
とくに、ジェスチャを認識する際、ユーザの位置や向きによって検出される特徴量が大きく異なり、ユーザの位置や向きごとにジェスチャをクラス分けした認識が必要になる。しかし、クラス分けした認識はクラスごとのジェスチャ学習データを伴い、必要なデータの総数が増大する。また、ユーザの位置や向きをクラス分けする基準を適切に定義することは困難である。このような理由から、ジェスチャ入力ごとに、検出した特徴量をユーザの位置や向きに応じた座標系に動的に変換することが望まれる。
【０００４】
特許文献1が開示する技術は、画像の投影面に向かってユーザの手が挿入された方向（挿入方向）を投影面の撮影画像から検出し、挿入方向に応じて、UIの表示位置または向きを決定する。この技術によれば、ユーザの位置や向きに応じたUIの表示座標系を動的に決定して、検出した特徴量をユーザの位置や向きに依存しない座標系に変換することができる。つまり、ユーザの位置や向きに依存しない特徴量の抽出と、それを利用したジェスチャの認識が可能になる。
【０００５】
しかし、投影面に手を入れたり、投影面から手を抜いたりする直線的なジェスチャだけではなく、投影面において腕などジェスチャに用いる物体（操作物体）を振るようなジェスチャも考えられる。このようなジェスチャを考慮すると、挿入方向によって座標系を決定する特許文献1の技術では、ユーザの位置や向きに応じた座標系を決定することができない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2009-064109号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、ジェスチャ認識において、操作物体の動きに応じたジェスチャ座標系を決定することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる情報処理は、ジェスチャ入力のためのジェスチャ認識を行う際に、ジェスチャ入力領域を撮影した画像を取得し、前記画像からジェスチャを行う物体を検出し、前記ジェスチャ入力領域に対する物体の位置を判定するための判定領域に前記検出された物体が交わる交点位置を前記画像から検出し、前記交点位置に基づき前記物体が行うジェスチャの基点位置を算出し、前記ジェスチャによる操作対象の位置を、操作対象位置として決定し、前記基点位置と前記操作対象位置に基づき、前記画像の座標系と異なるジェスチャ座標系を決定する。
【発明の効果】
【００１０】
本発明によれば、操作物体の動きに応じたジェスチャ座標系を決定することができ、ユーザの位置や向きに依存しないジェスチャ認識が可能になる。
【図面の簡単な説明】
【００１１】
【図１】実施例の情報処理装置の構成例を示すブロック図。
【図２】実施例1の情報処理装置の機能構成例を示すブロック図。
【図３】実施例の情報処理装置の概観例を示す図。
【図４】実施例1のジェスチャ認識処理を説明するフローチャート。
【図５】実施例1のジェスチャ認識処理を説明するフローチャート。
【図６】カメラからテーブル上の空間を撮影した画像を示す図。
【図７】操作対象位置の別の決定方法を説明する図。
【図８】実施例2の情報処理装置の機能構成例を示すブロック図。
【図９】実施例2のジェスチャ認識処理を説明するフローチャート。
【図１０】実施例2のジェスチャ認識処理を説明するフローチャート。
【図１１】ジェスチャ座標系の決定処理を説明する図。
【図１２】変形例の情報処理装置の機能構成例を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、本発明にかかる実施例の情報処理を図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲を、それら構成に限定する趣旨のものではない。
【００１３】
以下では、ジェスチャ入力用のUIのジェスチャ入力領域（以下、単に入力領域）においてユーザが実行するジェスチャを認識する情報処理（以下、ジェスチャ認識処理）を説明する。なお、ジェスチャに用いる物体（以下、操作物体）として、ユーザの腕を例に説明するが、その他の部位（指や足など）、あるいは、ユーザが把持する物体（例えば棒）なども操作物体に利用可能である。
【００１４】
また、ジェスチャの認識に利用する特徴量（以下、ジェスチャ特徴量）として、指先の座標を例に説明するが、指先の座標に限らず、掌や腕の重心座標および座標変化量などをジェスチャ特徴量に用いることも可能である。また、入力領域として、映像表示機能を備えたテーブル上の空間を例に説明するが、テーブル上の空間に限らず、カメラが撮影可能な範囲の全体またはその一部を入力領域に定めることも可能である。
【実施例１】
【００１５】
［装置の構成］
図1のブロック図により実施例の情報処理装置の構成例を示す。
【００１６】
中央処理ユニット(CPU)101は、RAM103をワークメモリとして、ROM102や記憶装置104に格納されたOSやプログラムを実行し、システムバス106に接続された各構成を制御して、各種処理の演算や論理判断などを行う。CPU101が実行する処理には、実施例のジェスチャ認識処理が含まれる。
【００１７】
記憶装置104は、ハードディスクドライブや外部記憶装置などであり、実施例のジェスチャ認識処理にかかるプログラムや各種データを記憶する。カメラ105は、CPU101の制御に従い、ジェスチャ入力UIの入力領域を含む空間（以下、単に入力領域）と入力領域内の操作物体の撮影し、撮影した画像をシテムバス106に出力する。
【００１８】
入力部107は、ユーザ指示を入力するためのボタン、キーボード、タッチパネルなどの入力デバイスである。なお、記憶装置104は例えばSATAなどのインタフェイスを介して、カメラ105や入力部107は例えばUSBなどのシリアルバスを介して、それぞれシステムバス106に接続されるが、それらの詳細は省略する。
【００１９】
［機能構成］
図2のブロック図により実施例1の情報処理装置の機能構成例を示す。なお、図2に示す機能構成はCPU101がプログラムを実行し、カメラ105などを制御することにより実現される。
【００２０】
撮像部201は、入力領域と入力領域内の操作物体を撮影する。操作物体検出部202は、撮像部201によって撮影された画像から操作物体を検出する。なお、実施例においては、操作物体としてユーザの腕が検出される。
【００２１】
交点位置検出部203は、操作物体検出部202により検出された操作物体と、後述する判定領域の交点位置を検出する。基点位置算出部204は、交点位置検出部203が検出した交点位置に基づき、ジェスチャの基点位置を算出する。基点位置は、後述するように、ジェスチャの座標系（以下、ジェスチャ座標系）を決定する要素の一つである。
【００２２】
操作対象位置決定部205は、ジェスチャによる操作対象の位置（以下、操作対象位置）を決定する。なお、撮像部201が撮影した画像から操作対象を検出したり、操作物体検出部202が検出した操作物体の情報を利用して操作対象位置を検出してもよいが、実施例1では、それら情報を利用せずに操作対象位置を決定する。
【００２３】
座標系決定部206は、基点位置算出部204が算出した基点位置と、操作対象位置決定部205が決定した操作対象位置に基づき、ジェスチャ座標系を決定する。特徴量抽出部207は、交点位置に基づき、操作物体検出部202が検出した操作物体からジェスチャ特徴量を抽出する。座標変換部208は、特徴量抽出部207が抽出したジェスチャ特徴量を、座標系決定部206が決定したジェスチャ座標系に変換する。
【００２４】
学習部209は、座標変換部208が出力するジェスチャ座標系の特徴量に基づき、ジェスチャモデル210を学習する。ジェスチャモデル210は記憶装置104に保持される。なお、学習部209は、ジェスチャモデル210の学習時のみに機能し、ジェスチャ認識時には機能しない。
【００２５】
ジェスチャ認識部211は、座標変換部208が出力するジェスチャ座標系の特徴量とジェスチャモデル210に基づき、ユーザのジェスチャを認識する。なお、ジェスチャ認識部211は、ジェスチャ認識時のみに機能し、ジェスチャモデル210の学習時には機能しない。
【００２６】
［装置の概観］
図3により実施例の情報処理装置の概観例を示す。テーブル301は、映像表示機能を備え、操作対象の画像（または映像）302がテーブル301に表示される。テーブル301の上部にはカメラ105が設置され、カメラ105によって俯瞰撮影された画像に基づき、テーブル301の上部の空間（入力領域）で実行されたユーザのジェスチャが認識される。
【００２７】
［ジェスチャ認識処理］
図4、図5のフローチャートにより実施例1のジェスチャ認識処理を説明する。情報処理装置は、入力部107を介して入力されるユーザ指示に従い、カメラ105に撮影を開始させ、ジェスチャ認識処理を開始する。
【００２８】
ジェスチャ認識処理が開始されると、操作対象位置決定部205は、例えば、入力領域の中心付近の座標を操作対象位置として決定する(S401)。ユーザは入力領域であるテーブル301の中心を向いてジェスチャを行う可能性が高いと想定され、実施例では、テーブル301の中心座標を操作対象位置とする。なお、実施例において、撮像部201によって撮影された画像中の二次元情報に基づきジェスチャを認識する。従って、実施例における座標は、撮影された画像中の二次元座標を指す。
【００２９】
次に、操作物体検出部202は、入力領域を撮影した画像を撮像部201から取得し(S402)、取得した画像から操作物体を検出する(S403)。例えば、画像中の肌色領域を腕として検出することができるが、撮影環境やセンサの種類に応じて検出方法を選択することが望ましい。例えば、背景が既知であり、操作物体のみが画像に映る場合は、背景差分による検出が可能である。また、プロジェクタなどによる投影映像が操作物体に重畳し、色に基づく検出が困難になる場合は、赤外光の反射強度に基づく検出を行うことにより、操作物体の検出が可能になる。
【００３０】
次に、操作物体検出部202は、入力領域内に操作物体があるか否かを判定する(S404)。例えば、ステップS403で検出した肌色領域の大きさに基づき、入力領域内の腕の有無を判定する。また、肌色領域の形状や動きに対するパターン認識に基づき、入力領域内の腕の有無をより高精度に判定することも可能である。入力領域内に、操作物体があると判定された場合、処理はステップS405に進み、操作物体がないと判定された場合、処理はステップS407に進む。
【００３１】
入力領域内に操作物体があると判定された場合、交点位置検出部203は、画像における操作物体と判定領域の交点位置を検出し、検出した交点位置をRAM103などに割り当てられた保持部に保持する(S405)。ステップS405の検出においては、例えば、画像中のテーブル301の辺に当る領域を判定領域とし、腕と判定領域が重畳した領域の重心座標が交点位置として検出される。なお、判定領域は、テーブル301の辺（入力領域の境界）に限らず、任意に定めることができる。例えば、カメラ105が撮影可能な領域（撮影範囲）の境界を判定領域とすれば、撮影範囲外のあらゆる位置から撮影可能な領域に操作物体が挿入される場合に対応することができる。また、操作物体が挿入される位置が想定される場合は、当該位置周辺の領域を判定領域として、不要な交点検出処理を削減することができる。このように、判定領域は、入力領域に対する操作物体の位置を判定し、特定するための領域である。
【００３２】
次に、特徴量抽出部207は、操作物体からジェスチャ特徴量を抽出し、ジェスチャ特徴量を保持部に保持する(S406)。ステップS406の抽出においては、例えば、交点位置から最も遠い操作物体の先端部の座標が特徴量として抽出される。例えば、操作物体が腕の場合、その先端部は、通常、指先と考えられるから特徴量として検出される座標を「指先位置」と呼ぶ。また、指先位置のみではなく、腕領域の重心座標や、それらの単位時間当りの移動量をジェスチャ特徴量として抽出してジェスチャ認識処理に利用することも可能である。
【００３３】
一方、ステップS404で操作物体がないと判定した場合、操作物体検出部202は、入力領域にあった操作物体が入力領域から退いたかを判定する(S407)。例えば、前回のステップS405の判定において入力領域に操作物体があると判定した場合は入力領域から操作物体が退いたと判定する。入力領域から操作物体が退いたと判定された場合、処理はステップS408に進み、入力領域から操作物体が退いたとは判定されなかった場合、処理はステップS413に進む。
【００３４】
操作物体が入力領域から退いたと判定された場合、基点位置算出部204は、入力領域に操作物体が挿入されて退くまでを一つのジェスチャと見做して、その間の操作物体と判定領域の交点位置の平均的な位置を基点位置として算出する(S408)。ステップS408の算出には、保持部に保持された交点位置が用いられる。なお、平均的な位置とは座標の平均値である。また、操作物体の移動速度の変遷に基づく状態遷移などからジェスチャの開始と終了のタイミングを検出可能な場合、ジェスチャの開始から終了までの交点位置の平均的な位置を基点位置としてもよい。
【００３５】
次に、座標系決定部206は、基点位置をジェスチャ座標系の原点とし(S409)、原点と操作対象位置（テーブル301の中心）を通る直線に基づき、ジェスチャ座標系を決定する(S410)。実施例では、原点（基点）から操作対象位置へ向かうベクトルをV軸、V軸を時計回りに90度回転した軸をU軸とするジェスチャ座標系を決定する。
【００３６】
次に、座標変換部208は、後述の変換式に基づき、ジェスチャ特徴量の座標系をジェスチャ座標系に変換する(S411)。ステップS411の変換には、保持部に保持されたジェスチャ特徴量が用いられる。そして、学習時か、認識時かが判定され(S412)、学習時は学習部209により学習処理が行われ(S413)、認識時はジェスチャ認識部211によりジェスチャ認識が行われる(S414)。実施例では、ジェスチャモデルとして、特徴量の出力分布を有する状態と状態間の遷移確率からなる確率モデルであるHMM (Hidden Markov Model)を用いる。
【００３７】
学習部209は、ジェスチャ座標系の特徴量に基づき、ジェスチャモデル210を学習する(S413)。実施例では、ジェスチャモデルとしてHMMを学習し、EMアルゴリズムなどの学習アルゴリズムによってパラメータを計算する。なお、ステップS413の学習処理は学習時にのみ実施される。なお、学習時か、認識時かは、ジェスチャ認識処理が開始時点でユーザに指定される。
【００３８】
また、ジェスチャ認識部211は、ジェスチャ座標系の特徴量とジェスチャモデル210とのマッチングに基づきジェスチャを認識する(S414)。実施例では、特徴量とジェスチャモデルのマッチングを行い、尤度が最大のモデルが表すジェスチャを認識結果として出力する。また、マッチング時の最尤経路探索にはビタビアルゴリズムを用いる。なお、ステップS414の認識処理はジェスチャ認識時にのみ実施される。
【００３９】
ステップS406、S413またはS414の処理が終了するか、ステップS407で操作物体が入力領域から退いたタイミングではないと判定された場合、操作物体検出部202は、撮像部201からの画像入力が終了したか否かを判定する(S415)。画像入力が終了した場合はジェスチャ認識処理を終了し、画像入力が継続している場合は処理をステップS402に戻し、新たに取得した画像に対するジェスチャ認識処理を行う。
【００４０】
［座標変換］
ジェスチャ特徴量の座標をジェスチャ座標系に変換する処理を説明する。図6によりカメラ105からテーブル301上の空間を撮影した画像を示す。
【００４１】
ユーザ501は、テーブル301上の空間の入力領域503において、腕502を動かすことでジェスチャを実行する。なお、図5(a)は入力領域503に腕が挿入された状態を、図5(b)(c)は入力領域503における腕の動作を、図5(d)は入力領域503から腕が退く様子をそれぞれ表す。
【００４２】
●操作対象位置の決定から指先位置の検出
まず、画像において定義される基本座標系504において、テーブル301の中心位置が操作対象位置505として決定される。式(1)は操作対象位置Targetを示す。
Target = (xT, yT)oT            …(1)
ここで、式末尾の「o」は基本座標系504の座標を示す、
式末尾の「T」は転置行列を示す。
【００４３】
次に、腕領域が検出され、座標(x, y)oTが腕領域に含まれるか否かに応じて、式(2)によりArm(x, y)oの値が決定される。
if ((x, y)oT ∈ 腕領域)
Arm(x, y)o =‘1’；
else
Arm(x, y)o =‘0’；        …(2)
【００４４】
次に、座標(x, y)oTが判定領域506に含まれるか否かに応じて、式(3)によりBorder(x, y)ooの値が決定される。なお、判定領域506は既知とする。
if ((x, y)oT ∈ 判定領域)
Border(x, y)o =‘1’；
else
Border(x, y)o =‘0’；      …(3)
【００４５】
次に、式(4)により、判定領域506上の腕領域の重心点の平均的な位置を交点位置507として計算する。
Cross = (xC, yC)oT
= ΣAB=1(x, y)oT/ΣAB      …(4)
ここで、Crossは交点位置、
AB = Arm(x, y)o×Border(x, y)o。
【００４６】
さらに、式(5)により、交点位置507から最も遠い腕領域の座標が指先位置508として検出される。
Hand = (xH, yH)oT
= argSmax(‖Cross - (x, y)oT‖2｜Arm(x, y)o=1)  …(5)
ここで、Handは指先位置、
S=(x, y)oT。
【００４７】
以上の処理が、入力領域に腕が検出された各画像に対して行われる。
【００４８】
●基点位置の算出から指先位置の変換
次に、入力領域から腕が退いたことが検出されると、各画像から計算された交点位置Crossに基づき、式(6)により交点位置Crossの平均的な位置が基点位置509として算出される。
Base = (xB, yB)oT
= ΣNinNoutCross/(Nout - Nin)    …(6)
ここで、Baseは基点位置、
Ninは入力領域に腕が挿入された画像の番号（フレーム番号）、
Noutは入力領域から腕が退いたと判定された画像の前画像の番号。
【００４９】
ここで、ジェスチャ座標系510の原点を基点位置509に定める。式(7)はジェスチャ座標系の原点Originを示す。
Orign = (0, 0)gT
= Base = (xB, yB)oT            …(7)
ここで、式末尾の「g」はジェスチャ座標系を示す。
【００５０】
次に、原点Originから操作対象位置Targetへ向うベクトルBTをジェスチャ座標系のV軸とする。式(8)はV軸の単位ベクトルを示す。
↑V = ↑BT/‖↑BT‖2                …(8)
ここで、↑はベクトルを表す、
‖↑X‖2はベクトルXの長さを表す。
【００５１】
さらに、ベクトルVを時計回りに90度回転したベクトルをU軸の単位ベクトルとする。式(9)はU軸の単位ベクトルを示す。
┌    ┐
│0 -1│
↑U =│    │↑V                      …(9)
│1  0│
└    ┘
【００５２】
以上でジェスチャ座標系が決定する。そして、式(5)により計算される各画像の指先位置Handを式(10)によりジェスチャ座標系の指先位置Hand'に変換する。
Hand' = (uH, vH)gT                    …(10)
ここで、uH = {(xH-xB)(yT-yB)-(yH-yB)(xT-xB)}/√{(xT-xB)2+(yT-yB)2}、
vH = {(xH-xB)(xT-xB)+(yH-yB)(yT-tB)}/√{(xT-xB)2+(yT-yB)2}。
【００５３】
このように、ジェスチャ特徴量を、操作物体の動きに基づく座標系に変換することで、ユーザの位置や向きに依存しないジェスチャ認識処理が可能になる。
【００５４】
［変形例］
上記では、操作対象位置決定部205は、入力領域の中心付近を操作対象位置に決定する例を説明した。しかし、テーブル301上に載置された物体、または、表示された画像の位置に基づき、操作対象位置を決定することも可能である。
【００５５】
図7により操作対象位置の別の決定方法を説明する。図7(a)は、テーブル301上の物体（または画像）601の重心位置602を操作対象位置に決定してもよい。ジェスチャによる操作対象の画像がテーブル301上に表示されている場合、ユーザは、当該画像にほぼ正対してジェスチャを行うと想定され、ジェスチャ座標系のより高精度な決定が期待される。
【００５６】
また、ジェスチャ開始時、終了時または実行中の指先位置に基づき、操作対象位置を決定することも可能である。例えば、図7(b)に示すように、ジェスチャ実行中の指先位置の平均的な位置603を操作対象位置に決定してもよい。こうすれば、入力領域の明示的な指定がなく、操作対象位置を一意に定めることができない場合も、ジェスチャ実行中の指先位置からジェスチャ座標系を定めることができる。
【００５７】
また、上記では、カメラ105が撮影した画像の二次元情報に基づきジェスチャ座標系の定義し、ジェスチャ認識を行う例を示したが、ステレオカメラなどの距離センサを用いた三次元情報に基づきジェスチャ認識を行うことも可能である。
【００５８】
また、上記では、映像表示機能を備えたテーブル301を利用するテーブルトップインタフェイスの一例を説明した。これに限らず、本発明は、プロジェクタとスクリーンを備えるシステムやMR (Mixed Reality)システムなど、ジェスチャ認識機能を搭載する様々なシステムに適用することができる。
【実施例２】
【００５９】
以下、本発明にかかる実施例2の情報処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００６０】
図8のブロック図により実施例2の情報処理装置の機能構成例を示す。なお、図8に示す機能構成はCPU101がプログラムを実行し、カメラ105などを制御することにより実現される。
【００６１】
図8に示す実施例2の機能構成において、操作対象位置決定部205の構成が実施例1と異なる。操作対象位置決定部205は、推定部701、判定部702、決定部703を有する。
【００６２】
推定部701は、ジェスチャを実行中の操作物体の平均的な位置を、操作対象の凡の位置（操作対象位置）と推定する。判定部702は、推定された操作対象位置に基づき、テーブル301上に載置された複数の物体または表示された複数の画像から、ジェスチャによる操作対象を判定する。決定部703は、判定された操作対象の位置に基づき操作対象位置を決定する。
【００６３】
図9、図10のフローチャートにより実施例2のジェスチャ認識処理を説明する。情報処理装置は、入力部107を介して入力されるユーザ指示に従い、カメラ105に撮影を開始させ、ジェスチャ認識処理を開始する。
【００６４】
なお、図9、図10において、ステップS402からS415の処理は、実施例1の処理と同様であり、詳細説明を省略する。
【００６５】
実施例1においては、ジェスチャ認識処理の開始後、入力領域の中心座標を操作対象位置に決定(S401)したが、実施例2においては、操作対象位置の決定を行わずに、入力領域の画像の取得(S402)と操作物体の検出(S403)を行う。
【００６６】
ステップS404の判定により、入力領域内に操作物体があると判定された場合は交点位置の検出(S405)とジェスチャ特徴量の抽出(S406)を行った後、推定部701が操作物体の重心位置を検出する(S801)。例えば、ステップS403において検出された肌色領域の重心位置を操作物体（腕）の重心位置とする。なお、推定部701の検出対象は、重心位置に限らず、指先位置や視線位置など、ジェスチャに関連する位置でもよい。その後、処理はステップS415に進む。
【００６７】
ステップS404とS407の判定により、操作物体が入力領域から退いたと判定された場合は基点位置の算出(S408)を行った後、推定部701が操作物体の重心位置の平均的な位置を操作対象の凡の位置として推定する(S802)。つまり、推定部701は、入力領域に操作物体が挿入されてから退くまでを一つのジェスチャとして見做し、その間の操作物体の重心位置の平均的な位置を操作対象の凡の位置（以下、推定位置）として算出する。なお、操作物体の移動速度の変遷に基づく状態遷移などからジェスチャの開始と終了のタイミングを検出可能な場合、ジェスチャの開始から終了までの重心位置の平均的な位置を操作対象の凡の位置としてもよい。
【００６８】
次に、判定部702は、算出された基点位置と推定位置を通る直線Lを求め(S803)、テーブル301に載置された複数の物体または表示された複数の画像からジェスチャによる操作対象を判定する(S804)。例えば、直線Lからの距離が最短の対象Gを操作対象と判定する。そして、決定部703は、操作対象（対象G）の重心位置を操作対象位置に決定する(S805)。その後、処理はステップS409に進む。
【００６９】
図11によりジェスチャ座標系の決定処理を説明する。図11はカメラ105からテーブル301上の空間を撮影した画像を示す。図11(a)に示すように、テーブル301上に複数の画像901が表示されているものとする。
【００７０】
図9(b)に示すように、ジェスチャ実行中のユーザの腕領域が検出され、その重心位置902が検出される。次に、入力領域から腕が退くと、腕領域の重心位置の平均的な位置903が計算され、実施例1と同様に、基点位置904が算出される。そして、重心位置の平均的な位置903と基点位置904を通る直線905（直線L）が計算される。直線905は、ジェスチャによる操作対象の方向を略表していると期待される。
【００７１】
次に、図9(c)に示すように、テーブル301上に表示された複数の画像901のうち、その重心位置906と直線Lの間の距離907が最短を示す画像Gを判定する。直線Lからの離間距離に基づき操作対象を判定することにより、操作対象位置がより正確に決定されることが期待される。そして、図9(d)に示すように、基点位置904を原点とし、基点位置904から対象Gの重心位置908へ向うベクトルを一軸とするジェスチャ座標系909を決定する。
【００７２】
このように、入力領域に複数の対象が配置（つまり、複数の物体が載置または複数の画像が表示）されている場合も、ジェスチャによる操作対象を推定し、ジェスチャ特徴量を、操作物体の動きと操作対象位置に基づく座標系に変換することができきる。従って、ユーザの位置や向きに依存しないジェスチャ認識処理が可能になる。
【００７３】
［変形例］
実施例2では、操作対象を特定し、操作対象に基づくジェスチャ座標系を決定し、ジェスチャ特徴量（指先位置）をジェスチャ座標系へ座標変換し、座標変換後の特徴量に基づきジェスチャ認識処理を行う例を説明した。逆に、ジェスチャ認識結果に基づき操作対象を特定することも可能である。
【００７４】
図12のブロック図により変形例の情報処理装置の機能構成例を示す。なお、図2に示す実施例1の機能構成と異なるのは、候補設定部711と決定部712を有する操作対象位置決定部205の構成である。
【００７５】
候補設定部711は、撮影画像からテーブル301上に載置された複数の物体または表示された複数の画像の重心位置を検出し、重心位置に基づき操作対象の候補を複数設定する。
【００７６】
座標系決定部206は、操作対象の各候補と基点位置に基づき複数のジェスチャ座標系を決定する。座標変換部208は、ジェスチャ特徴量を各ジェスチャ座標系に座標変換する。ジェスチャ認識部211は、各ジェスチャ座標系に変換された特徴量に基づきジェスチャを認識する。つまり、座標変換後の特徴量とジェスチャモデル210のマッチングを行い、尤度が最大のモデルが表すジェスチャを認識結果とする。
【００７７】
適切なジェスチャ座標系に座標変換された特徴量は、ジェスチャモデルとの適合度が高くなると期待される。決定部712は、ジェスチャ認識部211から供給される認識結果に基づき、尤度が最大のモデルに対応する特徴量の座標変換に利用されたジェスチャ座標系を判定し、当該ジェスチャ座標系の決定に使用された操作対象の候補を操作対象として選択する。そして、選択した操作対象の重心位置を操作対象位置と決定する。
【００７８】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステムあるいは装置のコンピュータ（又はCPUやMPU等）がプログラムを読み出して実行する処理である。
【図１】
2014238727.tif 000003
【図２】
2014238727.tif 000004
【図３】
2014238727.tif 000005
【図４】
2014238727.tif 000006
【図５】
2014238727.tif 000007
【図６】
2014238727.tif 000008
【図７】
2014238727.tif 000009
【図８】
2014238727.tif 000010
【図９】
2014238727.tif 000011
【図１０】
2014238727.tif 000012
【図１１】
2014238727.tif 000013
【図１２】
2014238727.tif 000014