(57)【特許請求の範囲】
【請求項１】
所定の物体を撮像した画像から、前記所定の物体の一部によって示される指示位置を検出する検出手段と、
前記検出手段によって検出された２つ以上の前記指示位置の位置関係の変化に基づいて、所定の操作を認識する第１の認識手段と、
前記画像から、前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴を抽出する抽出手段と、
前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作を認識する第２の認識手段と、
前記検出手段によって検出された前記指示位置の数が２点である場合、前記第１の認識手段及び前記第２の認識手段のうち前記第１の認識手段の認識結果を出力し、前記検出手段によって検出された前記指示位置の数が前記２点から１点に減少したことに応じて、前記第１の認識手段及び前記第２の認識手段のうち前記第２の認識手段の認識結果を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴とは、前記画像に写っている前記所定の物体の一部の大きさ、又は前記画像に写っている前記所定の物体の方向を表す特徴を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記出力手段は、所定の表示部に表示されている画像に対して、前記第１の認識手段あるいは前記第２の認識手段によって認識された前記所定の操作の操作量に応じた変化量を与える処理を行う
ことを特徴とする請求項１または２のいずれか１項に記載の情報処理装置。
【請求項４】
前記所定の操作とは、前記表示部によって表示されている画像に関する長さを変化させる指示、及び、前記表示部によって表示されている画像に関する方向を変化させる指示の少なくともいずれかを入力するための操作を含む
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記所定の操作とは、前記表示部によって表示されている画像を拡大あるいは縮小させる指示、及び、前記表示部によって表示されている画像を回転させる指示の少なくともいずれかを入力するためのマルチタッチ操作を含む
ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記第２の認識手段は、前記検出手段が検出する前記指示位置の数が１点に遷移したことに基づいて、前記遷移の前に前記第１の認識手段が認識していた操作と同じ操作を引き継いで認識する
ことを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記所定の操作は、前記表示部に表示されている画像の縮小を指示する操作を含み、前記第１の認識手段は、２点の前記指示位置の間の距離に応じて前記縮小を指示する操作を認識し、前記第２の認識手段は、前記第１の認識手段が前記縮小を指示する操作を認識している間に前記検出手段に検出される指示位置数が減った場合に、前記縮小を指示する操作を引き継いで認識する
ことを特徴とする請求項３乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記所定の物体を撮像した画像は、距離画像センサによって撮像された距離画像であって、
前記距離画像センサは、前記所定の物体と、前記所定の物体を用いたタッチ入力の対象となる操作面との間の距離に対応する軸に沿った距離情報が前記距離画像の画素値に反映されるように設置される
ことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記第１の認識手段は、前記距離画像から検出される前記指示位置と前記操作面の間の距離に応じて、前記所定の物体と前記操作面とのタッチ状態を認識し、前記第２の認識手段は、前記距離画像から検出される前記所定の物体の重心の位置と前記操作面との間の距離に応じて前記所定の物体と前記操作面とのタッチ状態を認識する
ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
更に、前記出力手段は、前記出力手段によって前記第２の認識手段による認識結果を出力されている間に、前記検出手段によって検出された指示位置の数が０点に遷移した場合、前記距離画像に基づいて推定される前記所定の物体と操作面との間の距離が所定の条件より小さいことに基づいて前記第２の認識手段による認識結果を出力することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
前記出力手段は、前記検出手段によって検出された指示位置の数が３点以上に遷移した場合、前記第２の認識手段の認識結果を出力する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項１２】
前記第１の認識手段は、前記検出手段によって検出された２点の前記指示位置の間の距離の変化に基づいて、所定の表示部に表示されている画像を拡大あるいは縮小させる指示を表す操作を認識し、
前記抽出手段は、前記所定の物体を撮像した画像のうち、前記所定の物体の像に対応する領域に基づいて、前記所定の物体の大きさに関する特徴を抽出し、
前記第２の認識手段は、前記抽出手段によって抽出される、前記所定の物体の大きさに対応する特徴の変化に基づいて、前記表示部に表示されている画像を拡大あるいは縮小させる指示を表す操作を認識する
ことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記第１の認識手段は、前記検出手段によって検出された２つ以上の前記指示位置の相対的な回転に基づいて、所定の表示部によって表示されている画像を回転させる指示を表す操作を認識し、
前記抽出手段は、前記所定の物体を撮像した画像のうち、前記所定の物体の像に対応する領域の形状に関する情報に基づいて、前記所定の物体の方向に関する特徴を抽出し、前記第２の認識手段は、前記抽出手段によって抽出される、前記所定の物体の方向に対応する特徴の変化に基づいて、前記表示部に表示されている画像を回転させる指示を表す操作を認識する
ことを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
更に、前記検出手段によって検出された前記指示位置の数の遷移に基づいて、前記第１の認識手段と前記第２の認識手段のいずれかを選択する選択手段を備え、
前記第１の認識手段及び前記第２の認識手段は、前記選択手段に選択されたことに応じて、前記所定の物体を用いて入力された操作の認識を実行することを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記所定の物体は、操作者の片手であって、
前記抽出手段は、前記操作者の片手を撮像した画像のうち前記片手が撮像された手領域の特徴を抽出し、
前記検出手段は、前記手領域のうち、１以上の指先の位置を検出することを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
検出手段により、所定の物体を撮像した画像から、前記所定の物体の一部によって示される指示位置を検出する検出工程と、
第１の認識手段により、前記検出工程において検出された２つ以上の前記指示位置の位置関係の変化に基づいて、所定の操作を認識する第１の認識工程と、
抽出手段により、前記画像から、前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴を抽出する抽出工程と、
第２の認識手段により、前記抽出工程において抽出された特徴の変化に基づいて、前記所定の操作を認識する第２の認識工程と、
出力手段により、前記検出工程において検出されている前記指示位置の数が２点である場合、前記第１の認識手段及び前記第２の認識手段のうち前記第１の認識手段の認識結果を出力し、前記検出工程において検出されている前記指示位置の数が前記２点から１点に減少したことに応じて、前記第１の認識手段及び前記第２の認識手段のうち前記第２の認識手段の認識結果を出力する出力工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項１７】
コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項１６に記載された情報処理装置の制御方法を実行させるプログラム。
【請求項１８】
請求項１７に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１９】
操作者の手を撮像した画像から、前記手のうち１以上の指先の位置を検出する検出手段と、
前記画像から、前記指先の位置とは異なる前記手の状態であって、前記手により所定の操作が入力される場合に変化を伴う状態を表す特徴を抽出する抽出手段と、
前記検出手段によって検出された前記指先の位置の数が２点である場合、検出された前記所定の数の指先の位置の位置関係の変化に基づいて、前記操作者によって入力される前記所定の操作を認識し、前記検出手段によって検出された前記指先の位置の数が２点から１点に減少した場合、前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作の認識を続ける認識手段
を備えることを特徴とする情報処理装置。
【請求項２０】
検出手段により、操作者の手を撮像した画像から、前記手のうち１以上の指先の位置を検出する検出工程と、
抽出手段により、前記画像から、前記指先の位置とは異なる前記手の状態であって、前記手により所定の操作が入力される場合に変化を伴う状態を表す特徴を抽出する抽出工程と、
認識手段により、前記検出工程において検出された前記指先の位置の数が２点である場合、検出された前記所定の数の指先の位置の位置関係の変化に基づいて、前記操作者によって入力される所定の操作を認識し、前記検出工程において検出された前記指先の位置の数が２点から１点に減少した場合、前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作の認識を続ける認識工程
を備えることを特徴とする情報処理装置の制御方法。
【請求項２１】
コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項２０に記載された情報処理装置の制御方法を実行させるプログラム。
【請求項２２】
請求項２１に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像された画像に基づいてユーザの操作を認識する技術に関する。
【背景技術】
【０００２】
近年では、ＡＲ（Augmented Reality）やＭＲ（Mixed Reality）といった環境において、物理的には存在しない操作面（仮想面）に対するタッチ操作が行われる場面がある。また、プロジェクションによってユーザインタフェース（以下、ＵＩ）を壁や机など任意の操作面に投影し、投影したＵＩに対してタッチ操作が行われる場面がある。このような場面においては、ステレオカメラや距離画像センサ等の画像取得手段を用い、操作面と、所定の操作体の一部（例えばユーザの指先）との間の距離に基づく判断により、両者が接触しているか否かを判断することが多い。具体的には、操作面と、ユーザの指先との間の距離に所定の閾値を設ける。
【０００３】
画像を用いた体の一部の動きに基づく操作の認識においては、画像取得手段と操作者の位置関係によっては、検出すべき操作者の体の一部が、画像取得手段の死角に入り、その動きを正しく認識できないことが問題となる。
【０００４】
上記の問題に対して、特許文献１が開示する技術は、操作者の手先の３次元モデルを用いてその位置と姿勢を連続的にトラッキングすることで、死角に入った場合でも手先位置を大まかに推定し、その動きに基づく空間ジェスチャ操作を継続して認識できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２０５９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のように、死角に隠れた部分の位置を推定することによれば、手等の大きな動きに基づく空間ジェスチャ操作の認識に必要な情報を補うことが可能となる。しかしながら、死角に隠れた指先が示す指示位置の座標を正確に推定し、指先が操作面にタッチしているか否かの判定を行うことは難しい。
【０００７】
表示された画像の拡縮や回転などを指示するために、２つの指示位置の動きを協調させるマルチタッチ操作においては、２点のうちの片方だけが死角に隠れることもある。マルチタッチ操作は、どちらか一方でも、指示位置の座標の取得・タッチ判定に失敗すると、操作内容を正しく認識するのが困難となる。
【０００８】
そこで本発明は、操作体の一部が画像取得手段の死角に隠れた影響で入力中の操作を構成する複数の指示位置の少なくとも１つの検出が困難となった場合でも、入力中の操作を継続して認識可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記の目的を達成する一手段として、所定の物体を撮像した画像から、前記所定の物体の一部によって示される指示位置を検出する検出手段と、前記検出手段によって検出された２つ以上の前記指示位置の位置関係の変化に基づいて、所定の操作を認識する第１の認識手段と、前記画像から、前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴を抽出する抽出手段と、前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作を認識する第２の認識手段と、前記検出手段によって検出された前記指示位置の数が２点である場合、前記第１の認識手段及び前記第２の認識手段のうち前記第１の認識手段の認識結果を出力し、前記検出手段によって検出された前記指示位置の数が前記２点から１点に減少したことに応じて、前記第１の認識手段及び前記第２の認識手段のうち前記第２の認識手段の認識結果を出力する出力手段と、を備える。
【発明の効果】
【００１０】
本発明によれば、所定の物体の一部が画像取得手段の死角に隠れた影響で入力中の操作を構成する複数の指示位置の少なくとも１つの検出が困難となった場合でも、入力中の操作を継続して認識可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態の情報処理装置を利用するシステムの外観の一例を表す図。
【図２】第１の実施形態の情報処理装置のハードウェア構成、及び機能構成の一例を表すブロック図。
【図３】マルチタッチ操作認識処理の流れの一例を表すフローチャート。
【図４】第１の認識処理の流れの一例を表すフローチャート。
【図５】拡縮操作中および回転操作中の手の様子を表す図。
【図６】第２の認識処理の流れの一例を表すフローチャート。
【図７】認識結果が不連続となる状態の一例を表す図。
【図８】第１の認識処理から第２の認識処理への切り替え時の補正処理の例を表す図。
【図９】第２の認識処理から第１の認識処理への切り替え時の補正処理の例を表す図。
【図１０】実施例２の情報処理装置を利用するシステムの外観と機能構成の一例を表す図。
【図１１】空間ジェスチャ操作中認識処理の流れの一例を表すフローチャート。
【図１２】空間ジェスチャ操作中の人体の様子を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施例の情報処理を、図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲をそれらの構成に限定する趣旨のものではない。
【００１３】
＜第１の実施形態＞
まず、第１の実施形態として、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムに対し、拡縮・回転を指示するために、操作者が片手２本指によって入力するマルチタッチ操作を認識する処理の例を説明する。
【００１４】
マルチタッチ操作とは、複数の独立したタッチ位置を同時に指示しながら、それらを予め定められた規則に従って動かすことによって、当該動きに対応付けられた指示コマンドを入力する操作方法である。一般的にスマートホンやタブレットＰＣなど、携帯型装置にマルチタッチ操作を入力する場合、操作者は、片手で装置を支持し、もう片方の手の複数の指をマルチタッチ操作に用いるのが自然である。従って操作者は、片手でのマルチタッチ操作に慣れており、携帯型装置のみならず他の機器を利用する場合でも、片手でマルチタッチ操作が入力可能であることが期待される。
【００１５】
携帯型装置では、表示画面に設けたタッチセンサから、タッチされた位置の座標情報を取得することが多い。この場合、マルチタッチに用いられる手が片手であることが特にタッチ検出の精度に影響することは少ない。それに対し、物体の一部とタッチ対象面との間の接触／非接触状態を、距離画像センサやステレオカメラなどによって取得した距離画像に基づいて判定するシステムの場合は、当該物体の一部がセンサやカメラの死角に入ると、正確な検出が困難となる。特に、片手によるマルチタッチ操作の場合は、操作中の指先が、手の甲部分に隠されることで、センサやカメラの死角に入り易いという問題がある。マルチタッチ操作に用いられている指先のうち１つでも死角に入ると、指とタッチ対処面の間の近接状態を正確に判定する困難性に加え、指先の追跡ができないため、既に継続されているマルチタッチ操作による指示を認識し続けることが難しくなる。操作者にとっては、継続して入力中のマルチタッチ操作の認識が中断されたり、指先を死角にならない位置に移動させて操作を繰り返したりするのは煩わしい。
【００１６】
そこで第１の実施形態では、操作者が１つの手を使ってマルチタッチ操作を入力している場合は、距離画像から検出されるタッチ位置の数に応じて、マルチタッチ操作による指示の内容を認識する方法を異ならせる。具体的には、２つのタッチ位置が検出されている間は、従来通り、２つのタッチ位置の動きを追跡することで、マルチタッチ操作の指示内容を認識する。それに対し、２つ検出されていたタッチ位置が１つに減少した場合は、マルチタッチ操作は継続中であるが、片方のタッチ位置を指示する指先が、死角に入った可能性が高いとみなす。そして、指先に示されるタッチ位置の動きではなく、距離画像から抽出される手領域の他の特徴に基づいて、マルチタッチ操作を認識する。なお、本実施形態は、複数の独立した位置を同時に指示することが可能であれば、ユーザがマルチタッチ操作の入力に用いる物体（操作体）として、手指だけでなくスタイラスやロボットアームなどの器具を利用する場合にも適用可能である。
【００１７】
［システムの外観］
図１は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。また、３次元空間内の位置情報を定義する座標軸も示す。操作面１０１は、テーブルトップインタフェースのテーブル部分であり、操作者は、操作面１０１をタッチすることでタッチ操作を入力することが可能である。本実施形態では、操作面１０１の上方に、操作面を見下ろすようにして距離画像センサ１０２が設置される。距離画像とは、各画素の値に、当該距離画像の撮像手段のレンズ中心などの基準位置から、当該画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ１０２が撮像する距離画像の画素値には、距離画像センサ１０２から、操作面１０１あるいはその上方に存在する物体表面までの距離が反映される。撮像された距離画像は、情報処理装置１００に入力画像として入力される。情報処理装置１００は、入力画像を解析することで操作者の手１０６の三次元位置を取得し、入力される操作を認識する。従って操作者は、操作面１０１と距離画像センサ１０２の間の空間のうち、距離画像センサ１０２によって撮像可能な範囲で手などの所定の物体を動かすことによって、空間ジェスチャ操作を入力することも可能である。本実施形態では、赤外光の反射パターン（または反射時間）によって距離情報を取得する方式のセンサを利用する。
【００１８】
また本実施形態では、可視光カメラ１０３もまた、上方から操作面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３を制御して、操作面１０１に載置された物体を撮像してその読み取り画像を得る書画カメラとして機能することができる。情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、操作面１０１上の空間に存在する物体を検出し、さらに識別する。物体には、例えば、操作者の手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図１に例示するシステムの場合は、距離画像センサ１０２と可視光カメラ１０３の画角には、テーブル周囲に存在する操作者の頭部は含まれない。従ってシステムは、ユーザの立ち位置を特定する場合、ユーザの顔や頭部を検出するのではなく、距離画像から抽出した手領域の方向や位置に基づく推定処理を必要とする。
【００１９】
プロジェクタ１０４は、操作面１０１の上面に画像の投影を行う。本システムでは、操作面１０１が表示面を兼ねており、操作者は、投影された画像に含まれるアイテム１０５に対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、手１０６の検出および操作の認識には、距離画像センサ１０２で取得した距離画像を用いる。距離画像を用いることで、プロジェクタ１０４の投影光の影響でユーザの手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置としては、プロジェクタ１０４に替えて、操作面１０１を液晶ディスプレイとするなどとすることもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いることでも、投影光の影響を受けずに手の検出が可能である。
【００２０】
なお、操作面１０１を上方からみた画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はなく、例えばミラーを用いて反射光を撮像するように構成しても構わない。プロジェクタ１０４も同様に、図１の例では、斜め上方から見下ろすように操作面１０１上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に反射させてもよい。
【００２１】
本実施形態では、操作面１０１上の三次元空間に図１に示すｘ、ｙ、ｚ軸を定義し、位置情報を扱う。ここでは一例として、テーブルの上面に平行な二次元がｘｙ平面、テーブル上面に直交し上方に伸びる方向をｚ軸の正方向としている。なお、本実施形態では、ｚ軸方向は、世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムにも適用可能である。
【００２２】
［装置の構成］
図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス２０４に接続された各構成を制御する。ＣＰＵ２００が実行する処理には、後述するマルチタッチ操作の認識処理が含まれる。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。距離画像センサ１０２は、ＣＰＵ２００の制御に従い、アイテムが表示されるテーブルとアイテムを操作する操作者の手を含む空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい赤外パターン投影方式を基に説明するが、用途に応じて視差方式や赤外光の反射時間を利用する方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる画像アイテムを投影表示する。
【００２３】
なお図１の利用例では、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。
【００２４】
図２（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現される。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２５】
画像取得部２１０は、距離画像センサ１０２によって撮像された距離画像を、入力画像として一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお画像取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」あるいは「入力画像を取得する」として説明する。
【００２６】
手領域抽出部２１１は、距離画像取得部２１０によって取得された入力画像の各画素について、閾値判定やノイズ低減処理を施し、距離画像中の手領域を抽出する。手領域とは、入力された距離画像のうち、操作体として操作者が利用する手が写っている領域である。検出部２１２は、手領域抽出部２１１によって抽出された手領域の輪郭情報に基づき、操作者の手の指先位置を検出し、指示位置として座標値を特定する。
【００２７】
特徴抽出部２１３は、入力画像のうち手領域抽出部２１１によって抽出された手領域の部分から、操作体である手の状態に関する特徴を抽出する。抽出する特徴は、情報処理装置１００が認識可能なマルチタッチ操作の種類に合わせて選択される。本実施形態では、手領域の大きさと方向に関する情報を抽出するが、このうちのいずれかだけを扱ってもよく、また、さらに他の特徴を抽出しても構わない。
【００２８】
判定部２１４は、検出部２１２が検出した指示位置の座標と、手領域抽出部２１１が抽出した手領域の画素値情報に基づいて、操作体によるタッチ入力の有無を判定する。具体的には、少なくとも１つの指示位置のｚ座標（操作面からの高さに相当する値）が、所定のタッチ閾値より小さい場合に、操作体がタッチ状態にあると判定する。タッチ状態とは、タッチ操作を入力中の状態である。ｚ座標が閾値より小さい指示位置が存在しない場合は、手領域内の画素値に基づいて、手の高さに相当する情報を取得し、閾値判定処理によって、手が操作面よりも十分高い位置にあるかを判定する。なお、手の高さと比較する閾値は、指示位置のｚ座標と比較するタッチ閾値とは異なる値であって、タッチ閾値よりも大きい。手の高さが、操作面よりも十分高い位置にある場合は、タッチ入力は行われてない非タッチ状態であると判定する。
【００２９】
選択部２１５は、検出部２１２が検出したうち、タッチ状態にある指示位置の数の遷移に応じたマルチタッチ操作を認識するための処理方法を選択する。本実施形態の場合は、指示位置が２点に遷移した場合は、当該指示位置の位置関係の変化に基づく従来のマルチタッチ操作の認識処理（以下、第１の認識処理）が選択される。一方、指示位置の数が２点から１点に遷移した場合、及び３点以上の指示位置が検出された場合は、特徴抽出部２１３が抽出した、手領域の少なくとも一部の特徴が示す手の状態の変化に基づくマルチタッチ操作の認識処理（以下、第２の認識処理）が選択される。
【００３０】
第１認識部２１６は、指示位置の検出状態が２点の指示位置が検出されている状態に遷移したことに応じ、選択部２１５により第１の認識処理が選択された場合に、第１の認識処理によって所定のマルチタッチ操作を認識する。第２認識部２１７は、検出されている指示位置が２点から１点に遷移したことに応じ、選択部２１５により第２の認識処理が選択された場合に、第２の認識処理によって所定のマルチタッチ操作を認識する。また、本実施形態では、３点以上の指示位置が検出された場合にも、選択部２１５は第２の認識処理を選択する。本実施形態で認識可能な所定のマルチタッチ操作には、テーブル１０１に表示された画像を拡大あるいは縮小させる指示のためのマルチタッチ操作（以下、拡縮操作）と、表示された画像を回転させる指示のためのマルチタッチ操作（以下、回転操作）を含む。拡縮操作は、本実施形態で認識可能な所定の操作は、画像アスペクト比を固定した拡大あるいは縮小に限らず、表示される画像に関する長さを変化させる指示全般を含む。また、回転操作には、回転の中心が固定された回転に限らず、表示される画像に関する方向を変化させる指示全般を含む。
【００３１】
表示制御部２１８は、ＲＯＭ２０１や記憶装置２０３に記憶された情報を用いて、本実施形態の表示部であるプロジェクタ１０４によって、テーブル１０１上に投影させる画像を生成する。例えば、第１認識部２１６または第２認識部２１７によるマルチタッチ操作の認識結果に基づいて、表示部に表示させている画像の少なくとも一部に対して、拡大／縮小、回転などの変形を施し、表示部に出力させる。出力された画像は、プロジェクタ１０４によって、操作面であるテーブル１０１上に投影表示される。投影される画像は、複数のアイテムを含み、アイテム毎に移動や拡大／縮小、回転が可能であってもよく、画像全体が移動や拡大／縮小、回転の対象であってもよい。
【００３２】
［マルチタッチ操作の認識処理］
図３のフローチャートに従って第１の実施形態のマルチタッチ操作の認識処理を説明する。図３のフローチャートの処理は、情報処理装置の各機能部を構成するＣＰＵ２００がＲＯＭ２０１に記録されたプログラムをＲＡＭ２０２に展開して実行することで実現される。また、この処理は、距離画像センサ１０２によって撮影された距離画像が情報処理装置１００に入力されたことに応じて起動される。
【００３３】
ステップＳ３０１では、画像取得部２１０が、距離画像センサ１０２から、画像が投影されるテーブルと操作者の手を含む空間を撮像した距離画像を取得する。取得される距離画像の各画素には、センサから被写体までの距離に対応する値が、画素値として保持される。よって、画素値に対して、距離画像センサ１０２のレンズ特性および操作面１０１との相対位置関係に基づく座標変換を施すことで、各画素の座標をテーブルに定義された実世界上の座標系にマッピングすることが可能である。
【００３４】
ステップＳ３０２では、手領域抽出部２１１が、距離画像の各画素を走査し、距離画像から操作者の手が写る手領域を抽出する。本実施形態においては、入力された操作者の手を含む距離画像と、予め取得した背景のみの距離画像（テーブルのみを撮像した距離画像）との差分を画素毎に求め、差分が閾値よりも大きくなる画素を手領域として抽出する。すなわち、テーブル上面からの高さが閾値以上高い画素が集合した領域を、テーブルより上に存在する手が写っている領域とみなして抽出する。この方式は背景差分法といわれる。さらに、抽出された領域に、膨張収縮処理を施し、距離画像センサの誤差に由来する微小なノイズを除去することで手領域を補正する。なお、環境によっては、センサからの距離が閾値よりも近い画素を手領域として抽出することも可能であり、この場合は背景画像として用いるためのテーブルのみを撮像した距離画像を予め取得することが不要となる。
【００３５】
ステップＳ３０３では、特徴抽出部２１３が、ステップＳ３０２において抽出された手領域から、手の特徴を取得する。本実施形態では、手の大きさと、手の傾き（ｘｙ平面内での方向）を取得する。ここで手の大きさは、拡縮操作を認識するための特徴として取得される。また、手の傾きは、回転操作を認識するための特徴として取得される。ステップＳ３０３で取得される手の特徴とそれを利用する操作の認識処理については後述する。
【００３６】
ステップＳ３０４では、検出部２１２が、ステップＳ３０２において抽出された手領域に基づいて、指先に相当する位置を探索し、指示位置として３次元座標を検出する。本実施形態では、まず手領域の輪郭点を抽出し、各輪郭点について、隣接する輪郭点が成すベクトル間の角度を算出する。そして、ベクトル間角度が閾値よりも小さくなる輪郭点を指先位置の候補点として抽出し、さらに複数の指先位置の候補点が密集する位置を指先として特定する。つまり、輪郭が比較的細まった突端部を表す部分の先端を指先位置として特定する。特定した指先位置、距離画像の画素値、実世界座標系への座標変換パラメータを基に、テーブルに定義された実世界座標系における指示位置の３次元座標を算出することが可能である。さらに、前フレームにおいて検出された指示位置と、最新の指示位置の距離関係に基づき、フレーム間で同一の指先同士を対応付ける。なお、指示位置の検出方法はこれに限らず、円形テンプレートマッチングや、手の構造に基づく制約を使って位置を絞り込む方法を利用することも可能である。本実施形態において、距離画像の画素値は、距離画像センサ１０２と物体との距離を表す。従って、指先の高さ（指示位置のｚ座標）は、距離画像の中で、検出された指先位置に対応する画素の画素値と、テーブルの高さ情報に基づき、テーブルから指先までの距離値を算出することで取得する。ただし、テーブルのみを撮像した背景画像と、入力された距離画像の指先位置に対応する画素値同士の差分を、指先の高さに対応する値として簡易に算出することも可能である。
【００３７】
ステップＳ３０５では、判定部２１４が、ステップＳ３０４において取得された指示位置の座標情報のうち、高さに対応する情報に基づいて、タッチ状態にある指示位置が存在するか否かを判定する。本実施形態では、タッチ閾値と、タッチ閾値よりも高い非タッチ閾値を設け、タッチ閾値よりも低い位置に存在する指示位置をタッチ状態にあると判定する。一旦タッチ状態と判定された指示位置は、非タッチ閾値よりも高い位置に移動した時点で、非タッチ状態と判定される。このように閾値をそれぞれ設けることにより、距離画像センサの検出誤差が原因となって、タッチ中であるはずの指が非タッチ状態であると判定されることで、操作が中断されるという影響を抑えることが可能となる。タッチ状態にある指示位置が存在すると判定した場合（ステップＳ３０５でＹｅｓ）、ステップＳ３０６に進む。タッチ状態にある指示位置が存在しないと判定した場合（ステップＳ３０５でＮｏ）、ステップＳ３１２に進む。
【００３８】
ステップＳ３０６では、選択部２１５が、タッチ状態にある指示位置の数を特定する。特定される数は、操作面をタッチすることによって指示されているタッチ位置の数に相当する。選択部２１５は、特定した数をＲＡＭ２０２に保持する。ステップＳ３０７では、選択部２１５は、特定されたタッチ状態にある指示位置の数が２か否かを判定する。２であると判定した場合（ステップＳ３０７でＹｅｓ）、処理はステップＳ３０８に進み、選択部２１５は、第１の認識処理を選択する。選択部２１５は、第１の認識処理が選択されていることを示す情報をＲＡＭ２０２に保持するとともに、第１認識部２１６に認識処理の実行を指示する信号を通知する。一方、タッチ状態にある指示位置の数が２ではないと判定した場合（ステップＳ３０７でＮｏ）、処理はステップＳ３０９に進む。
【００３９】
ステップＳ３０９では、選択部２１５が、特定されたタッチ状態にある指示位置の数が１か否かを判定する。タッチ状態にある指示位置の数が１であると判定した場合（ステップＳ３０９でＹｅｓ）、処理はステップＳ３１０に進む。一方、タッチ状態にある指示位置の数が１ではないと判定した場合（ステップＳ３０９でＮｏ）、処理はステップＳ３１１に進む。なお、ステップＳ３０９からステップＳ３１１に進む場合は、タッチ状態にある指示位置の数が３以上である場合に相当する。
【００４０】
ステップＳ３１０では、選択部２１５が、特定されたタッチ状態にある指示位置の数が２点以上から１点に遷移したか否かを判定する。選択部２１５は、ＲＡＭ２０２に保持されている指示位置の数の情報を参照して判定を行う。タッチ状態にある指示位置の数が２点以上から１点に遷移したと判定した場合（ステップＳ３１０でＹｅｓ）、処理はステップＳ３１１に進む。一方、タッチ状態にある指示位置の数が２点以上から１点に遷移したのではない、と判定した場合（ステップＳ３１０でＮｏ）、処理を修了する。タッチ状態にある指示位置の数が２点以上から１点に遷移したのではない場合とは、すなわち、０点から１点に遷移した場合である。本実施形態ではこの場合、操作者は、始めから１点の指示位置を使ったシングルタッチ操作を意図している可能性、あるいは、２点目の指示位置がタッチされる前段階の状態である可能性が高いとみなす。従って、マルチタッチ操作の認識処理である図３のフローチャートからは抜ける。ステップＳ３１１では、選択部２１５が、第２の認識処理を選択する。選択部２１５は、第２の認識処理が選択されていることを示す情報をＲＡＭ２０２に保持するとともに、第２認識部２１５に認識処理の実行を指示する信号を通知する。
【００４１】
一方、ステップＳ３０５において、タッチ状態にある指示位置（タッチ位置）が存在しなかった場合、ステップＳ３１２では、判定部２１４が、抽出された手領域に基づいて、手の高さを取得する。本実施形態では、手の高さとして、手領域の重心に当たる画素値に対応する高さ情報を求める。ただし、重心の画素値を採用する方法に限らず、例えば、手首より先の部分の画素値の平均を利用するなどしてもよい。ステップＳ３１３において、判定部２１４は、取得した手の高さが、所定の高さの閾値以上に大きいか否かを判定する。手の高さが所定の高さの閾値より小さいと判定された場合（ステップＳ３１３でＮｏ）、ステップＳ３１５に進む。そして、過去の処理で選択された状態にある認識処理が実行される。一方、手の高さが所定の高さの閾値以上に大きいと判定された場合（ステップＳ３１３でＹｅｓ）、ステップＳ３１４に進む。ステップＳ３１４において、選択部２１５は、認識処理の選択を解除する。本実施形態では、ＲＡＭ２０２に保持されている、選択状態にある認識処理を示す情報を参照し、対応する認識部に選択の解除を通知するとともに、当該情報を削除する。タッチ状態にある２点の指示位置の検出数に基づくジェスチャ認識の選択および解除処理の詳細は後述する。
【００４２】
そして、ステップＳ３１５では、選択された状態にある認識処理が実行される。ステップＳ３０８で第１の認識処理が選択された場合、ステップＳ３１５では、第１認識部２１６が、タッチ状態にある２点の指示位置の位置関係の変化に基づいて、所定のマルチタッチ操作を認識する。ステップＳ３１１で第２の認識処理が選択された場合、ステップＳ３１５では、第２認識部２１７が、特徴抽出部２１３によって抽出された特徴に基づく操作者の手の状態変化に基づいて、所定のマルチタッチ操作を認識する。それぞれの認識処理の詳細は後述する。ステップＳ３１６は、表示制御部２１８が、ステップＳ３１５における第１認識部２１６あるいは第２認識部２１７のいずれかの認識結果に基づいて、表示部であるプロジェクタ１０４に対する出力を制御する。例えば、拡縮操作が認識された場合には、ステップＳ３１５において出力される拡縮倍率に応じて表示されている画像を拡大あるいは縮小させる。また、回転操作が認識された場合には、ステップＳ３１５で出力される回転角度に応じて、表示されている画像を回転させる。
【００４３】
本実施形態では、以上説明したステップＳ３０１からＳ３１６のマルチタッチ操作の認識処理を、距離画像センサ１０２から距離画像が入力される毎に繰り返し行う。従って処理が繰り返される周期は、距離画像センサ１０２の撮像映像のフレームレートに一致する。
【００４４】
［第１の認識処理］
ここで、ステップＳ３０８において第１の認識処理が選択された場合に、ステップＳ３１５で実行される認識処理の詳細を説明する。第１の認識処理では、タッチ状態にある２つの指示位置の位置関係の変化に基づいて、マルチタッチ操作が認識される。本実施形態では、少なくとも２点の指示位置間の距離の変化に基づいて、表示されている画像を拡大あるいは縮小させる指示を入力するマルチタッチ操作を認識可能である。なお、２点の指示位置間の距離を広げることによって表示画像の拡大を指示するマルチタッチ操作はピンチアウト操作、２点の指示位置間の距離を狭めることによって表示画像の縮小を指示するマルチタッチ操作はピンチイン操作と呼ばれることがある。さらに本実施形態では、２点の指示位置の相対的な回転に基づいて表示されている画像を回転させる指示を入力するマルチタッチ操作を認識可能である。ただし、ここに挙げた操作は一例であり、これらに限られない。
【００４５】
図４のフローチャートを用いて、ステップＳ３１５において第１認識部２１６が実行するマルチタッチ操作の認識処理の流れを説明する。まず、ステップＳ４０１において、第１認識部２１６は、２つの指示位置間のユークリッド距離を取得する。ステップＳ４０２では、現在の処理フレームが、第１の認識処理を開始する最初のフレームであるかを判定し、最初のフレームであると判定された場合（ステップＳ４０２でＹｅｓ）、ステップＳ４０３に進む。最初のフレームではない場合（ステップＳ４０２でＮｏ）、ステップＳ４０４に進む。ステップＳ４０３では、ステップＳ４０１で現在のフレームから取得された２つの指示位置間の距離を表す情報を、基準距離の情報としてＲＡＭ２０２に保持する。
【００４６】
ステップＳ４０４では、基準距離としてＲＡＭ２０２に保持されている距離と、現在のフレームから取得される２つの指示位置間の距離の比率を、算出により取得する。ステップＳ４０５では、取得した比率と、前回の出力時に取得した比率と、の差分が所定の閾値以上かを判定する。差分が閾値以上大きいと判定される場合（ステップＳ４０５でＹｅｓ）、ステップＳ４０６に進む。ステップＳ４０６では、ステップＳ４０４で取得した比率を、マルチタッチ操作で指示された表示画像の拡縮倍率として、表示制御部２１８に出力する。差分が閾値より小さいと判定される場合（ステップＳ４０５でＮｏ）、ステップＳ４０６を省略してステップＳ４０７に進む。
【００４７】
ステップＳ４０７では、２つの指示位置を結ぶベクトルの方向として、ｘ軸周りの回転角度を取得する。ステップＳ４０８では、現在の処理フレームが、第１の認識処理を開始する最初のフレームであるかを判定し、最初のフレームであると判定された場合（ステップＳ４０８でＹｅｓ）、ステップＳ４０９に進む。最初のフレームではない場合（ステップＳ４０８でＮｏ）、ステップＳ４０９に進む。ステップＳ４０９では、ステップＳ４０７で現在のフレームから取得された回転角度を、基準方向の情報としてＲＡＭ２０２に保持する。
【００４８】
ステップＳ４１０では、基準方向としてＲＡＭ２０２に保持されているｘ軸周りの回転角度と、現在のフレームから取得された回転角度の角度差を、算出により取得する。ステップＳ４１１では、取得した角度差と、前回の出力時に取得した角度差との差分が、所定の閾値以上かを判定する。差分が閾値以上大きいと判定される場合（ステップＳ４１１でＹｅｓ）、ステップＳ４１２に進む。ステップＳ４１２では、ステップＳ４１０で取得した角度差を、マルチタッチ操作で指示された表示画像の回転角度として、表示制御部２１８に出力する。差分が閾値より小さいと判定される場合（ステップＳ４１１でＮｏ）、ステップＳ４１２を省略して図４のフローチャートの処理を終了する。
【００４９】
なお、基準距離および基準方向は、一旦設定された場合、第１の認識処理の選択状態が解除されるまで変更されない。本実施形態では、ステップＳ３１６の処理に基づいて選択が解除される際に、基準距離および基準方向の情報がＲＡＭ２０２から削除される。また、情報処理装置１００が拡縮操作を認識しない場合は、拡縮操作に対応するステップＳ４０１からステップＳ４０６の処理は省略可能である。同様に、情報処理装置１００が回転操作を認識しない場合は、拡縮操作に対応するステップＳ４０７からステップＳ４１２の処理は省略可能である。
【００５０】
［第２の認識処理］
次に、ステップＳ３１１において第２の認識処理が選択された場合に、ステップＳ３１５で実行される認識処理の詳細を説明する。第２の認識処理は、指示位置を２点検出できない場合の補完手段として、指示位置の検出可否に依存せずに、手領域から抽出することが可能な手の特徴が示す手の状態の変化に基づいて所定のマルチタッチ操作を認識する。第２の認識処理では、第１の認識処理で認識可能なピンチアウト操作、ピンチイン操作、回転操作による指示のそれぞれを第１の認識処理とは異なる方法で認識することが可能である。
【００５１】
本実施形態では、拡縮操作を認識するために、２つの指示位置間の距離の変化に代わる情報として、手領域から抽出した特徴が示す、手の見た目の大きさ（目で見て、手だと認識できる部分の大きさを指す。以下、単に「手の大きさ」という。）の変化を用いる。ここで、図５（ａ）の上段は、ピンチイン操作中の手１０６を、ｘｙ平面に平行に見た様子を表し、図５（ａ）の下段は、上段と同じタイミングでの距離画像中の手１０６の見た目の様子を表す。図５（ａ）より、ピンチイン操作により２点の指示位置の間の距離５０１が小さくなるのに応じて、距離画像中の手の見た目の大きさを表す円６０２の大きさが変化することが分かる。これは、指先がセンサの死角に入り、指示位置自体を検出できなくなった場合でも、別途継続して検出可能な変化である。そこで第２の認識処理は、距離画像中の手領域の大きさが大きくなれば拡大、小さくなれば縮小を示す拡縮操作として認識し、手領域の大きさの変化量に応じた拡縮率を出力する。ただし、２つの指示位置間の距離は略０に近づけることが可能であるのに対し、手の見た目の大きさは、こぶしの大きさ程度が下限となる。そのため、２つの指示位置間の距離変化に基づいて得られる縮小倍率と、手の見た目の大きさ変化に基づいて得られる縮小倍率が一致するとは限らない。
【００５２】
本実施形態では、特徴抽出部２１３が、ステップＳ３０３において、手領域のうち手首より先の部分の外接円を、手の形状を近似した図形として特定し、その直径を「手の大きさ」として算出する。手首より先のいわゆる「手」の部分は、ピンチイン操作／ピンチアウト操作のために指を動かしたときに、その見た目の大きさに変化が生じる部分である。手領域から「手」の部分を特定し、「腕」の部分の面積を除外して特徴を取得することで、ピンチイン操作／ピンチアウト操作に伴う手の大きさの変化をより敏感に検出することができる。ただし、抽出された手領域のうち、少なくとも「手」の部分を含む一部から特徴を抽出すれば、ピンチイン操作／ピンチアウト操作に伴う手の大きさの変化を検出することは可能であるため、「腕」を含む領域全体やその一部から特徴を抽出しても構わない。なお、外接円の大きさの他、距離画像センサ１０２の設置位置等に応じて、手領域の面積の大きさや、手の甲部分の中心から手領域の輪郭点までの最長距離を、「手の大きさ」として抽出してもよい。
【００５３】
さらに、第２の認識処理では、手の見た目の方向（以下、単に「手の方向」という）に基づいて回転操作を認識する。図５（ｂ）は、回転操作中の手の見た目の様子を示す。図５（ｂ）より、回転操作中の２つの指示位置を結ぶベクトル５０３の方向の変化に応じて、距離画像中の手の方向を表すベクトル５０４も変化することが分かる。これは、指先がセンサの死角に入った場合でも、別途継続して検出可能な特徴の変化である。そこで第２の認識処理は、距離画像中の手領域の方向の変化に応じて回転操作を認識し、その変化量に応じた回転角度を出力する。本実施形態では、特徴抽出部２１３がステップＳ３０３において、手領域の慣性主軸の方向を「手の方向」として算出する。なお、手の方向の算出処理においては、手領域の手から先の部分を特定し、操作者の腕に当たる画素を除外する処理を加えてから、慣性主軸の方向を求めても良い。手首から先に注目することで、指の動きに伴う変化をより敏感に検出することが可能となる。なお、「手の方向」の定義は、手領域の慣性主軸の方向に限らない。例えば、手領域の形状に基づいて領域内の２点を特定し、それらを結ぶベクトルの方向を手の方向としてもよい。
【００５４】
図６のフローチャートを用いて、ステップＳ３１５において第２の認識部２１７が行う第２の認識処理の流れを説明する。第２の認識処理では、まず、ステップＳ６０１において、第２の認識処理を開始する最初のフレームであるかを判定する。最初のフレームであれば（ステップＳ６０１でＹｅｓ）、ステップＳ６０２において、ステップＳ３０３で求めた「手の大きさ」の情報を、基準の大きさの情報としてＲＡＭ２０２に保持する。最初のフレームでなければ（ステップＳ６０１でＮｏ）、ステップＳ６０３において、基準大きさに対する現フレームの「手の大きさ」の比率を取得する。ステップＳ６０４において、取得した比率と、前回の出力時に取得した比率との差分が閾値以上であるかを判定する。差分が閾値以上であれば（ステップＳ６０４でＹｅｓ）、ステップＳ６０５において、ステップＳ６０３で取得した比率を、マルチタッチ操作で指示された表示画像の拡縮倍率として、表示制御部２１８に出力する。
【００５５】
ステップＳ６０６において、現フレームが第２の認識処理を開始する最初のフレームであるかを判定する。最初のフレームであれば（ステップＳ６０６でＹｅｓ）、ステップＳ６０７において、ステップＳ３０３で抽出した「手の方向」を示す情報と、基準方向の情報としてＲＡＭ２０２に保持する。最初のフレームでなければ（ステップＳ６０６でＮｏ）、ステップＳ６０８において、基準方向と、現フレームから取得された「手の方向」の角度差を取得する。そして、ステップＳ６０９において、取得した角度差と、前回の出力時に取得した角度差との差分が閾値以上かを判定する。差分が閾値以上であれば（ステップＳ６０９でＹｅｓ）、ステップＳ６１０において、ステップＳ６０８で取得した角度差を、マルチタッチ操作で指示された表示画像の回転角度として、表示制御部２１８に出力する。
【００５６】
なお、ステップＳ６０４およびＳ６０９の閾値判定を加えることで、微小な手領域の姿勢の変動による不要な拡縮・回転操作認識結果の出力を抑えることが可能になる。基準の大きさおよび基準方向は、一旦設定された場合、第２の認識処理の選択状態が解除されるまでは変更されない。本実施形態では、ステップＳ３１６の処理に基づいて選択が解除される際にＲＡＭ２０２から削除される。また、情報処理装置１００が拡縮操作を認識しない場合は、拡縮操作に対応するステップＳ６０１からステップＳ６０５の処理は省略可能である。同様に、情報処理装置１００が回転操作を認識しない場合は、回転操作に対応するステップＳ６０６からステップＳ６１０の処理は省略可能である。
【００５７】
［認識処理の選択と解除］
ここで、本実施形態において、タッチ状態にある指示位置の検出数に基づいて、マルチタッチ操作の認識処理を選択および解除する、ステップＳ３０５からステップＳ３１４の処理について作用と効果を説明する。
【００５８】
第１の認識処理は、タッチ状態にある複数の指示位置の座標に基づいて、タッチ操作を認識する処理方法である。タッチ操作に慣れた操作者にとっては、入力した位置座標の変化が拡縮倍率や回転角度に反映される第１の認識処理は、第２の認識処理に比べてより直感的な認識手法であると考えられる。そこで、本実施形態は、タッチ状態にある指示位置が２つ検出できる場合には、可能な限り第１の認識処理を実行する構成としている。そのために、検出された指示位置数が２点である場合、選択部２１５は、第１認識部２１６による第１認識処理を選択する（ステップＳ３０８）。
【００５９】
本実施形態では、第１の認識処理で２つの指示位置の位置関係の変化に基づくマルチタッチ操作を認識中に、タッチ位置の検出数が２点から１点に遷移した場合、選択部２１５は、第２の認識処理を選択して認識手段の切り替えを行う（ステップＳ３１１）。このような検出数の遷移は、マルチタッチ操作中の指先の片方が、距離画像センサ１０２の死角に入った場合などに生じる。ただし多くの場合、操作者自身は、操作方法を切り替えた意図はなく、途切れることなくタッチ入力を継続しているという認識でいる。切り替えられた第２の認識処理では、タッチ状態の指示位置が２点検出されているか否かに関わらず検出可能な手領域の特徴に基づいて、第１の認識処理で認識可能な所定のマルチタッチ操作と同じ操作を認識可能である。従って、タッチ状態の指示位置の検出数が２点から１点に遷移したタイミングで、第２の認識処理に切り替えることにより、認識中のマルチタッチ操作が操作者の意図に反して中断されてしまうことを防ぎ、認識結果を継続して出力することが可能となる。
【００６０】
本実施形態では、マルチタッチ操作認識中でない場合に指示位置検出数が１点に遷移した場合、すなわち指示位置検出数が０点から１点に遷移した場合には、操作者が１つの指先によるシングルタッチ操作を意図的に行った可能性が高いと予測される。よってこの場合は、いずれのジェスチャ認識処理方法も選択せず、マルチタッチ操作の認識を開始しない（ステップＳ３１０でＮｏ）。例えば、図３のフローチャートの後段において、あるいは並行してシングルタッチ操作の認識処理を実行した場合、検出されている１点の指示位置の動きをシングルタッチ操作として認識すべき入力か否かが判定される。
【００６１】
また、本実施形態では、タッチ状態にある指示位置の検出数が３点以上に遷移した場合にも、第２の認識処理によってマルチタッチ操作を認識する（ステップＳ３０９でＮｏ）。タッチ状態にある指示位置の検出数が３点以上の場合とは、例えば、手の指同士が近いため、マルチタッチに用いられていない指の指先も、タッチ閾値を越えて操作面１０１に近づいてしまう場合などである。このような場合に、第１の認識処理によってマルチタッチ操作を認識するためには、操作者の意図通りに入力に利用されている指示位置を選定する必要が生じる。本実施形態では、入力中のマルチタッチ操作を中断せずに認識し続けることを優先するため、第２の認識処理に処理方法を切り替え、マルチタッチ操作の認識を継続する。ただし当然ながら、タッチ状態にある３点以上の指示位置のうち、マルチタッチ操作に利用されている指示位置を選定する処理を加えた上で、第１の認識処理による認識を継続することも可能である。指示位置の選定は、例えば、直前に第１の認識処理で認識されていた２つの指示位置のそれぞれの直近の座標に最も近い２つの指示位置を選択する。また例えば、３以上の指示位置のうち検出され始めた時刻が古い方から２点の指示位置を選択するなど、システムの状況に適した方法が選択されればよい。
【００６２】
また本実施形態では、いずれかの認識処理によりマルチタッチ操作を認識中に、タッチ状態にある指示位置の検出数が０点になった場合、手の高さを取得し（ステップＳ３１２）、操作面から十分高い位置にあるかを判定する（ステップＳ３１３）。本実施形態は、手が操作面よりも十分高い位置にはない場合、指先が死角に隠れるなどして一次的に指示位置が１つも検出できていないが、タッチ入力は継続されている可能性がある。従って、既に選択されている認識処理の選択状態を維持し、可能であればマルチタッチ操作の認識を行う。第１の認識処理が選択されている場合、検出数が０の状態では具体的な操作認識は困難なので、新たな出力を行わずに次のフレームの画像の取得を待つ。手が操作面よりも十分高い位置に移動した場合（ステップＳ３１３でＹｅｓ）には、マルチタッチ操作が終了されたとみなし、認識処理の選択を解除する（ステップＳ３１４）。
【００６３】
以上により、本実施形態では、タッチ状態にある指示位置の検出に失敗した場合おいても、マルチタッチ操作の認識を継続できる。さらに、シングルタッチ操作と、マルチタッチ操作中に１点を見失った場合を区別するので、シングルタッチ操作とマルチタッチ操作の認識が両立可能である。
【００６４】
なお、上述した例では、ステップＳ３１２の手の高さを取得する処理について、手領域の重心の高さを取得する例を説明した。ただし、重心の高さに代わり、指の付け根周辺の高さを手の高さの基準として用いてもよい。タッチ操作は、ユーザが独自の姿勢で入力することが可能であるため、ユーザによっては、タッチ操作を終了するにあたり、手の高さは変えずに、指を操作面から浮かせるだけに留める場合がある。その様な場合い、手の重心の高さより、指の付け根周辺の高さの変動を検出することで、タッチ操作中か否かをより精度よく判断することができる。
【００６５】
［補正処理を加える変形例］
２つのマルチタッチ操作の認識処理方法を切り替える際には、認識結果の出力値が不連続になる可能性がある。そこで、本実施形態に適用可能な変形例として、切り替え時に出力値が不連続とならないように補正を加える処理を説明する。
【００６６】
（１）第１の認識処理から第２の認識処理への切り替え
マルチタッチ操作の一例として、拡縮操作の認識方法が、第１の認識処理から第２の認識処理に切り替わる際に発生する出力値（拡縮倍率）が不連続となる場合の例を図７（ａ）に示す。図７（ａ）は、時刻ｔ０からｔ５にかけて取得される２点間の距離、「手の大きさ」、前フレームで取得した情報との比率、結果として出力される拡縮倍率を、左から右に順に並べている。時刻ｔ０からｔ２までは第１の認識処理が実行され、時刻ｔ２からｔ３にかけて処理方法が切り替わり、ｔ３からｔ５の間は第２の認識処理が実行されている。図７（ａ）の例では、時刻ｔ２からｔ３にかけて処理方法が切り替わる際に、出力値が１２０％から１００％となり不連続が発生する。
【００６７】
・補正処理１
補正処理１では、図３のフローチャートのステップＳ３１５において、第１の認識処理による最新の出力値が出力される度に、その情報を最終出力値として保持する。そして、ステップＳ３１１で第２の認識処理が選択されると、続くステップＳ３１５では、第２の認識処理による結果の値を、最終出力値で補正した値を出力する。補正処理１を加えた場合の拡縮操作の認識結果の例を図８（ａ）に示す。図８（ａ）の例では、認識処理が切り替わる直前（時刻ｔ２）に第１の認識処理によって求められた比率１２０％を最終比率として保持し、切り替え以降の第２の認識処理においては、その比率に最終比率１２０％を乗じた上で出力する。これにより、時刻ｔ２からｔ３にかけて認識処理が切り替わる際にも、出力値が１２０％となり不連続とならない。なお、回転操作の場合は、第２の認識処理の出力値に最終出力値を加えた上で出力することにより不連続を抑制できる。
【００６８】
・補正処理２
補正処理２においても、第１の認識処理中に、最新の出力値を最終出力値として保持する。また、第１の認識処理中に、最新のフレームに基づくステップＳ３０３の処理で得られた手の状態に関する特徴（手特徴）の値を、最終手特徴として保持する。そして、ステップＳ３１１で第２の認識処理が選択されると、続くステップＳ３１５では、最新フレームから取得した手特徴を基準にするのではなく、前のフレームに基づく第１の認識処理によって保持された最終手特徴を基準として出力値を算出する。第２の認識処理への切り替え以降は、最終手特徴を基準として取得した出力値を、最終出力値で補正した値を出力する。
【００６９】
補正処理２を加えた場合の拡縮操作の認識結果の例を図８（ｂ）に示す。図８（ｂ）の例では、認識処理が切り替わる直前（時刻ｔ２）に第１の認識処理によって求められた比率１２０％を最終比率として保持する。さらに「手の大きさ」として抽出された値１６０ｍｍを、最終手特徴のうち最終の「手の大きさ」として保持する。切り替え以降の第２の認識処理においては、最終の「手の大きさ」である１６０ｍｍを基準大きさとして比率を算出し、さらにその比率に最終比率１２０％を乗じた上で出力する。これにより、時刻ｔ２からｔ３にかけて認識処理が切り替わる際に、出力値が１２０％から１２８％となり、連続的に拡大操作が認識可能となる。
【００７０】
（２）第２の認識処理から第１の認識処理への切り替え
マルチタッチ操作の一例として、拡縮操作の認識処理方法が、第２の認識処理から第１の認識処理に切り替わる際に発生する出力値（拡縮倍率）が不連続となる場合の例を図７（ｂ）に示す。図７（ｂ）の場合は、時刻ｔ０からｔ２までは第２の認識処理が実行され、時刻ｔ２からｔ３にかけて認識処理が切り替わり、ｔ３からｔ５の間は第１の認識処理が実行されている。図７（ｂ）の例では、時刻ｔ２からｔ３にかけて処理方法が切り替わる際に、出力値が１１４％から１００％となり不連続が発生する。
【００７１】
・補正処理３
補正処理３では、ステップＳ３０８で第１の認識処理が選択され、ステップＳ３１５の処理が開始されると、第１の認識処理を開始するフレームについて、第１の認識処理と平行して、第２認識部２１７による第２の認識処理を実行し、比率を算出する。そして、第１認識部２１６による第１認識処理に基づく比率との差分を算出し、これを補正値とする。それ以降の第１の認識処理では、第１の認識処理の結果得られた出力値に、補正値による補正を加えた値を出力する。補正処理３を加えた場合の拡縮操作の認識結果の例を図９に示す。図９の例では、認識処理が切り替わった直後（時刻ｔ３）の「手の大きさ」の１７０ｍｍと、基準大きさである１４０ｍｍにより比率１２１％を算出する。比率１２１％と。第１の認識処理によって取得される比率１００％との差分２１％を補正値とする。以降の第１の認識処理時には、基準距離６５ｍｍとの比率に補正値２１％を加えた値を出力する。これにより、時刻ｔ２からｔ３にかけて認識処理が切り替わる際に、出力値が１１４％から１２１％となり、出力値の連続的な変化を実現できる。なお、補正処理３において、補正値を乗算ではなく加算によって考慮するのは、手の外接円の直径と指先２点間の距離の変化量が比例関係にはなく、後者の方が変化の幅が大きいため、乗算を用いると出力値が過度に大きくなる可能性があるためである。
【００７２】
以上説明したように、第１の実施形態とその変形例によれば、操作者が片手の２本指によってマルチタッチ操作を入力する場合、片方の指先が画像取得手段の死角に隠れた影響で指示位置の検出が困難となった場合でも、入力中の操作を継続して認識可能となる。なお、上記実施形態では、情報処理装置が認識する所定の操作をマルチタッチ操作として説明したが、類似する手の動きを伴う操作が操作面に対して有る程度の距離がある状態で入力される場合にも本発明は適用可能である。
【００７３】
＜第２の実施形態＞
第２の実施形態では、壁面スクリーンに投影表示されたアイテムに対して、拡縮・回転を指示するために、操作者が両手によって入力する空間ジェスチャ操作を入力する処理の例を説明する。ここで空間ジェスチャ操作とは、操作体を操作面に接触あるいは近接させながら行うことが条件となるタッチ操作に対して、空中で操作体を移動させることによって入力される操作方法をいう。本実施形態では、特に、複数の独立した操作体を使って同時に複数個所を指示しながら、それらを予め定められた規則に従って動かすことによって、当該動きに対応付けられた指示コマンドを入力する空間ジェスチャ操作を認識対象とする。操作体としては、操作者の両方の手（手首から先の部分）が用いられるとし、特に全ての指を掌側に織り込んだ「こぶしを握るポーズ」をとった手を、操作入力中の操作体として追跡する。
【００７４】
第２の実施形態では、空間ジェスチャを入力中の操作者の両方の手先による指示位置が、画像取得手段の撮像範囲内で検出される場合には、当該２つの指示位置の動きに基づいて空間ジェスチャ操作を認識する（第１の認識処理）。一方、操作者の手先の両方の一方が死角に隠れるなどして指示位置が１つしか検出されない場合、指示位置が検出されるか否かに影響されずに取得可能な人体の特徴を利用して、上半身の状態の変化に基づいて空間ジェスチャ操作を認識する（第２の認識処理）。
【００７５】
なお、第２の実施形態において、操作者の手が「こぶしを握るポーズ」をとっている状態に限定して空間ジェスチャ操作を認識するのは、操作が開始されたタイミングと終了されたタイミングの特定を容易にするためである。この限定は、第１の実施形態において、操作者の指先と操作面との間の距離がタッチ閾値より小さい場合（タッチ状態）に限定してタッチ操作を認識したのと同等の処理である。
【００７６】
［システムの外観］
図１０（ａ）により、本実施形態に係るインタフェースシステムの外観の一例を示す。なお、第２実施形態にかかる情報処理装置１００のハードウェアの構成は、第１の実施形態に準じるものとし、詳細な説明を省略する。第２の実施形態のシステムでは、スクリーン１０００が投影面となるように設置されたプロジェクタ１０４によって、操作対象のアイテム１０５がスクリーン１０００に投影される。また、スクリーン１０００を背景とする空間を撮像可能なように、距離画像センサ１０２が設置される。当該空間には、スクリーン１０００、投影された操作対象アイテム１０５、操作者１００１が含まれる。なお、スクリーン１０００をアイテム１０５の表示機能を備えるディスプレイ一体型のスクリーンとした場合、プロジェクタ１０４の構成を省略することも可能である。
【００７７】
［装置の機能構成］
図１０（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、第１の実施形態に準じた各フローチャートに従った処理を実行することで実現される。ただし、代替としてハードウェアを用いることも可能である。
【００７８】
第１の実施形態において、第１の認識処理では指先で入力される指示位置を利用し、第２の認識処理では手領域の特徴を利用した操作認識を行った。それに対し、第２の実施形態では、第１の認識処理ではこぶしを握るポーズをとった手で入力される指示位置（外接円の中心など）を利用し、第２の認識処理では人体領域の特徴を利用した操作認識を行う。図１０（ｂ）のブロック図に示す各機能部も、上記のように処理対象として扱う情報が異なるが、機能としては図２（ｂ）で示した第１の実施形態に係る情報処理装置１００の機能部に対応する。従って、図１０（ｂ）において、第１の実施形態と同等の機能を有する機能部には同じ番号を付し、詳細な説明は省略する。
【００７９】
人体領域抽出部１０１０は、画像取得部２１０によって入力された距離画像の各画素について閾値判定やノイズ処理を行い、距離画像から、人体が写った領域（人体領域）を抽出する。従って特徴抽出部２１３は、人体領域抽出部１０１０によって抽出された人体領域の特徴を抽出する。詳細は後述する。第２の実施形態の検出部１０１１は、人体領域のうち、こぶしを握るポーズをとった手の部分を特定し、その外接円の中心を指示位置として座標値を特定する。本実施形態では、まず人体領域から各関節の位置を推定して骨格を抽出する。そして、抽出された骨格から手先（拳）に相当する位置を手先位置として検出する。各関節の位置推定は、Random Decision Forest（ＲＤＦ）によって各画素が人体のどのパーツに属するかを識別し、その識別結果をクラスタリングすることによって推定される。第１認識部２１６および第２認識部２１７は、第１の実施形態において、拡縮操作および回転操作に対応するマルチタッチ操作を認識したのと同様に、拡縮操作および回転操作に対応する空間ジェスチャ操作を認識する。ただし第２の実施形態では、拡縮操作および回転操作を入力する指示位置が、操作面に対してタッチ状態である必要はない。また、拡縮操作は、本実施形態で認識可能な所定の操作は、画像アスペクト比を固定した拡大あるいは縮小に限らず、表示される画像に関する長さを変化させる指示全般を含む。そして回転操作には、回転の中心が固定された回転に限らず、表示される画像に関する方向を変化させる指示全般を含む。
【００８０】
［空間ジェスチャ操作の認識処理］
図１１のフローチャートにより第２の実施形態における操作の認識処理を説明する。なお、図３のフローチャートと同一の番号を付したステップでは、第１の実施形態と同等の処理が実行されるため、説明を省略し、第１の実施形態との差異部分を中心に説明する。図１１のフローチャートの処理は、情報処理装置の各機能部を構成するＣＰＵ２００がＲＯＭ２０１に記録されたプログラムをＲＡＭ２０２に展開して実行することで実現される。また、この処理は、距離画像センサ１０２によって撮影された距離画像が情報処理装置１００に入力されたことに応じて起動される。
【００８１】
ステップＳ３０１では、画像取得部２１０が、距離画像センサ１０２から、壁面スクリーン１０００と操作者の少なくとも上半身部分とを含む空間を撮像した距離画像を取得する。ステップＳ１１０１では、距離画像の各画素を走査し、距離画像中の操作者の人体領域を抽出する。本実施形態においては、第１の実施形態と同様に背景差分法を用いる。
【００８２】
ステップＳ１１０２では、人体領域抽出部１０１０が、ステップＳ１１０１において抽出された人体領域の姿勢に基づき、人体領域の特徴を抽出する。本実施形態では、拡縮操作を認識するための特徴として人体の上半身の見た目の大きさを、回転操作を認識するための特徴として人体の上半身の方向を抽出する。ステップＳ１１０３では、検出部１０１１が、人体領域のうち手（手首より先）部分を検出する。
【００８３】
ステップＳ１１０４では、検出部１０１１が、ステップＳ１１０３において検出された手の中に、こぶしを握るポーズをとった手が存在するか否かを判定する。こぶしを握るポーズをとった手が存在する場合（ステップＳ１１０４でＹｅｓ）、ステップＳ１１０５に進む。ステップＳ１１０５では、判定部２１４によって、検出部１０１１が、こぶしを握るポーズをとった手による指示位置とその数を特定する。
【００８４】
判定部２１４によって、指示位置の数が判定され、選択部２１５によって認識処理方法が選択されるステップＳ３０７からステップＳ３１１の処理は、第１の実施形態に準じるため、説明を省略する。第２の実施形態では、ステップＳ３０８あるいはステップＳ３１１において認識処理方法が選択されたら、ステップＳ１１０６に進む。ステップＳ１１０６では、第１認識部２１６あるいは第２認識部２１７によって、選択された認識処理が実行される。第２認識部２１７によって実行される人体領域の特徴に基づく空間ジェスチャの認識については具体例を後述する。ステップＳ３１６の出力処理も、第１の実施形態に準じる。
【００８５】
一方で、ステップＳ１１０４において、こぶしを握るポーズをとった手が存在しないと判定された場合（ステップＳ１１０４でＮｏ）、処理はステップＳ１１０７に進む。ステップＳ１１０７では、判定部２１４が、抽出された人体領域に基づいて、人体と操作面（壁面スクリーン）との間の距離を取得する。本実施形態では、人体領域から推定された両肘とスクリーンとの平均距離を人体とスクリーンとの距離として求める。そして、ステップＳ１１０８において、判定部２１４は、人体とスクリーンとの距離について閾値判定を行い、距離が閾値以上であれば（ステップＳ１１０８でＹｅｓ）、ステップＳ３１４に進み、選択部２１５によって認識処理の選択が解除される。本実施形態では、ＲＡＭ２０２に保持されている、選択状態にある認識処理を示す情報を参照し、対応する認識部に選択の解除を通知するとともに、当該情報を削除する。人体とスクリーンとの距離が閾値未満であれば（ステップＳ１１０８でＮｏ）、処理はステップＳ１１０６に進む。本実施形態では、以上説明した空間ジェスチャ操作の認識処理が、距離画像センサ１０２から距離画像が入力される毎に繰り返し行われる。
【００８６】
［第２の認識処理］
ここで、第２の実施形態において、ステップＳ３１１で第２の認識処理が選択された場合に、ステップＳ１１０６で実行される認識処理の詳細を説明する。第２の認識処理は、指示位置を２点検出できない場合の補完手段として、指示位置の検出可否に依存せずに、人体領域から抽出することが可能な上半身の特徴が示す上半身の状態の変化に基づいて所定の空間ジェスチャ操作を認識する。第２の実施形態においても、第１の認識処理では認識可能なピンチアウト操作、ピンチイン操作、回転操作による指示のそれぞれが認識可能であり、第２の認識処理では、第１の認識処理とは異なる方法でそれらを認識することが可能である。
【００８７】
また、本実施形態では、人体領域から得られる上半身部分の見た目の方向（以下、「上半身の方向」）に基づいて、回転操作を認識する。ここで、回転操作中の距離画像中の人体の見た目の様子を１２（ｂ）に示す。回転操作中の２つの指示位置を結ぶベクトル１２１１の方向の変化に応じて、距離画像中の「上半身の方向」を表すベクトル５０４も変化することが分かる。これは、こぶしがセンサの死角に入り指示位置を検出できない場合にも、検出可能な特徴の変化である。そこで第２の認識処理では、距離画像から得られる「上半身の方向」の変化に応じて回転操作を認識し、その変化量に応じた回転角度を出力する。本実施形態では、人体領域抽出部１０１０がステップＳ１１０２において、人体領域の胸の位置１２１３を中心とした上半身部分の慣性主軸の方向を「上半身の方向」として算出する。ここでも手の検出と同様、各関節の位置推定による骨格抽出とＲＤＦによるパーツ識別に基づいて、胸の位置の推定を行う。なお、距離画像センサ１０２の設置位置等に応じて、人体の胸の位置からの最短距離が最長となる上半身部分の輪郭点と胸の中心位置とが成す角度を人体の方向として算出することも可能である。
【００８８】
また、本実施形態では、人体領域から得られる上半身部分の見た目の方向（以下、「上半身の方向」）に基づいて、回転操作を認識する。ここで、回転操作中の距離画像中の人体の見た目の様子を１２（ｂ）に示す。回転操作中の２つの指示位置を結ぶベクトル１２１１の方向の変化に応じて、距離画像中の「上半身の方向」を表すベクトル５０４も変化することが分かる。これは、こぶしがセンサの死角に入り指示位置を検出できない場合にも、検出可能な特徴の変化である。そこで第２の認識処理では、距離画像から得られる「上半身の方向」の変化に応じて回転操作を認識し、その変化量に応じた回転角度を出力する。本実施形態では、人体特徴抽出部１０１０がステップＳ１１０２において、人体領域の胸の位置１２１３を中心とした上半身部分の慣性主軸の方向を「上半身の方向」として算出する。ここでも手の検出と同様、各関節の位置推定による骨格抽出とＲＤＦによるパーツ識別に基づいて、胸の位置の推定を行う。なお、距離画像センサ１０２の設置位置等に応じて、人体の胸の位置からの最短距離が最長となる上半身部分の輪郭点と胸の中心位置とが成す角度を人体の方向として算出することも可能である。
【００８９】
以上説明したように、第２の実施形態によれば、操作者が両手によって空間ジェスチャ操作を入力する場合に、片手が画像取得手段の死角に隠れた影響で指示位置の検出が困難となった場合でも、入力中の操作を継続して認識可能となる。なお、第２の実施形態においても、第１の実施形態と同様、２つの認識処理の切り替え時に出力が不連続となることを防ぐための補正処理を加えることが可能である。
【００９０】
上述した第２の実施形態では、空間ジェスチャ操作の入力のための指示位置を、こぶしを握るポーズをとる手の位置と規定することで、操作の開始と終了のタイミングを特定した。しかしながら、第２の実施形態のような壁面スクリーンを利用したシステムにおいても、操作者の手あるいは指と壁面スクリーンとの間の距離が閾値より小さい場合に入力される、両手によるマルチタッチ操作を認識しても構わない。同様に、第１の実施形態においても、タッチ状態であること以外の条件で、操作が開始されたタイミングと終了されたタイミングを特定し、指による空間ジェスチャ操作を認識することも可能である。例えば、操作者の片手が特定のポーズをとったことを条件に、それ以降に検出される指示位置を操作入力として認識することも可能である。いずれのようなシステムにおいても、上述した実施形態を適用することにより、操作体の一部が画像取得手段の死角に隠れた影響で入力中の操作を構成する複数の指示位置の少なくとも１つの検出が困難となった場合でも、入力中の操作を継続して認識可能となる。
【００９１】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９２】
２１０  画像取得部
２１１  手領域抽出部
２１２  検出部
２１３  特徴抽出部
２１４  判定部
２１５  選択部
２１６  第１認識部
２１７  第２認識部
２１８  表示制御部
【図１】
0006618276.tif 000002
【図２】
0006618276.tif 000003
【図３】
0006618276.tif 000004
【図４】
0006618276.tif 000005
【図５】
0006618276.tif 000006
【図６】
0006618276.tif 000007
【図７】
0006618276.tif 000008
【図８】
0006618276.tif 000009
【図９】
0006618276.tif 000010
【図１０】
0006618276.tif 000011
【図１１】
0006618276.tif 000012
【図１２】
0006618276.tif 000013