(57)【要約】【課題】  本発明は、物体とタッチ対象面の近接状態に基づいて入力を認識するシステムにおける、複数の入力位置を使って入力される操作の操作性を向上させることを目的とする。【解決手段】  本発明は上記課題を解決するため、所定の操作面上の空間に入力される入力位置について前記所定の操作面からの距離に相当する情報を取得する三次元情報取得部２１０と、取得される前記情報に基づいて、前記所定の操作面からの距離が第１閾値を下回る１つの入力位置を用いて入力される第１操作と、前記所定の操作面に対する距離が前記第１閾値を下回る複数の入力位置を用いて入力される第２操作を認識する認識部２１３と、認識された操作への応答するための出力を制御する表示制御部１２５を備え、前記認識部２１３は、前記所定の操作面からの距離が、前記第１閾値より大きい第２閾値を下回る入力位置の数が複数で、かつ、前記所定の操作面からの距離が前記第１閾値を下回る入力位置が１つの間、前記第１操作に応答しない。【選択図】  図２
2017228216.tif 000002
【特許請求の範囲】
【請求項１】
所定の操作面上の空間に入力される入力位置について前記所定の操作面からの距離に相当する情報を取得する取得手段と、
前記取得手段に取得される情報に基づいて、前記所定の操作面からの距離が第１閾値を下回る１つの入力位置を用いて入力される第１操作と、前記所定の操作面に対する距離が前記第１閾値を下回る複数の入力位置を用いて入力される第２操作を認識する認識手段と、
前記認識手段に認識された操作への応答するための出力を制御する出力制御手段を備え、
前記出力制御手段は、前記所定の操作面からの距離が、前記第１閾値より大きい第２閾値を下回る入力位置の数が複数で、かつ、前記所定の操作面からの距離が前記第１閾値を下回る入力位置が１つの間、前記第１操作に応答しないことを特徴とする情報処理装置。
【請求項２】
前記認識手段は、前記所定の操作面からの距離が、前記第２閾値を下回る入力位置の数が複数ではなく、かつ、前記所定の操作面からの距離が前記第１閾値を下回る入力位置が１つの場合、前記第１操作を認識し、前記出力制御手段は認識された前記第１操作に応答するための出力を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定の操作面からの距離が、前記第１閾値より大きい第２閾値を下回る複数の入力位置を、前記第２操作を入力するために有効な入力位置として特定する特定手段を更に備え、
前記認識手段は、前記特定手段によって前記第２操作を入力するために有効な入力位置として特定された全ての入力位置の前記操作面からの距離が前記第１閾値を下回ったことに基づいて前記第２操作を認識し、前記出力制御手段は認識された前記第１操作に応答するための出力を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記所定の操作面からの距離が、前記第１閾値より大きい第２閾値を下回る複数の入力位置のうち、該複数の入力位置の間の距離が基準よりも小さい入力位置を、前記第２操作を入力するために有効な入力位置として特定する特定手段を更に備え、
前記認識手段は、前記特定手段によって前記第２操作を入力するために有効な入力位置として特定された全ての入力位置の前記操作面からの距離が前記第１閾値を下回ったことに基づいて前記第２操作を認識し、前記出力制御手段は認識された前記第２操作に応答するための出力を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
前記認識手段は、前記入力位置の前記所定の操作面からの距離が少なくとも前記第１閾値を下回ったことを、前記入力位置を用いたタッチ入力として認識し、前記第１操作は所定のシングルタッチ操作であって、前記第２操作は所定のマルチタッチ操作であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記認識手段は、前記入力位置の前記所定の操作面からの距離が前記第１閾値より大きい第３閾値を上回った状態に基づいて前記入力位置を用いたタッチ入力が解除されたと認識することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記特定手段は、前記特定手段によって前記第２操作を入力するために有効な入力位置として特定された複数の入力位置のうち、少なくとも１つの入力位置の前記所定の操作面からの距離が第４閾値を上回った場合、前記第２操作を入力するために有効な入力位置として特定された全ての入力位置の前記特定を解除する請求項３又は４に記載の情報処理装置。
【請求項８】
前記所定の操作面上の、前記特定手段によって前記第２操作を入力するために有効な入力位置として特定された複数の入力位置に相当する部分に、前記特定手段による特定の結果を表すための制御を行う表示制御手段を更に備えることを特徴とする請求項３又は４に記載の情報処理装置。
【請求項９】
前記取得手段は、前記所定の操作面を上方から見下ろすように設置された距離画像センサが撮像する距離画像から、所定の操作体のうち端部の三次元の位置情報を取得することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記取得手段は、前記所定の操作面に設置された近接センサから、前記近接センサで検出可能な範囲に存在する操作体の前記操作面に平行な二次元の位置情報と、前記操作面からの距離に相当する情報を取得することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１１】
前記所定の操作体は人の手であり、前記入力位置は前記人の手のうち指先に相当する位置であることを特徴とする請求項９又は１０に記載の情報処理装置。
【請求項１２】
取得手段により、所定の操作面上の空間に入力される入力位置について前記所定の操作面からの距離に相当する情報を取得する取得工程と、
認識手段により、取得される前記情報に基づいて、前記所定の操作面からの距離が第１閾値を下回る１つの入力位置を用いて入力される第１操作と、前記所定の操作面に対する距離が前記第１閾値を下回る複数の入力位置を用いて入力される第２操作を認識する認識工程とを有し、
前記認識工程では、前記所定の操作面からの距離が、前記第１閾値より大きい第２閾値を下回る入力位置の数が複数で、かつ、前記所定の操作面からの距離が前記第１閾値を下回る入力位置が１つの場合、前記第１操作の認識は行わないことを特徴とする情報処理装置の制御方法。
【請求項１３】
コンピュータに読み込ませ実行させることによって、前記コンピュータを、請求項１に記載の情報処理装置として動作させるプログラム。
【請求項１４】
請求項１３に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１５】
所定の操作面上に接触することで入力される入力位置について前記所定の操作面にかかる圧力の大きさに相当する情報を取得する取得手段と、
前記取得手段に取得される情報を用いて、前記所定の操作面にかかる圧力の大きさが第１閾値を上回る１つの入力位置によって入力される第１操作と、前記所定の操作面に対する距離が前記第１閾値を上回る複数の入力位置によって入力される第２操作を認識する認識手段と、
前記認識手段に認識された操作への応答するための出力を制御する出力制御手段を備え、
前記認識手段は、前記所定の操作面からの距離が、前記第１閾値より小さい第２閾値を下回る入力位置の数が複数で、かつ、前記所定の操作面からの距離が前記第１閾値を上回る入力位置が１つの間、前記第１操作に応答しないことを特徴とする情報処理装置。
【請求項１６】
取得手段により、所定の操作面上に接触することで入力される入力位置について前記所定の操作面にかかる圧力の大きさに相当する情報を取得する取得工程と、
認識手段により、取得される前記情報を用いて、前記所定の操作面にかかる圧力の大きさが第１閾値を上回る１つの入力位置によって入力される第１操作と、前記所定の操作面に対する距離が前記第１閾値を上回る複数の入力位置によって入力される第２操作を認識する認識工程と、
前記認識工程で認識された操作への応答するための出力を制御する出力制御工程を有し、
前記出力制御工程では、前記所定の操作面からの距離が、前記第１閾値より小さい第２閾値を下回る入力位置の数が複数で、かつ、前記所定の操作面からの距離が前記第１閾値を上回る入力位置が１つの場合、前記第１操作に応答しないことを特徴とする情報処理装置の制御方法。
【請求項１７】
コンピュータに読み込ませ実行させることによって、前記コンピュータを、請求項１５に記載の情報処理装置として動作させるプログラム。
【請求項１８】
請求項１７に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連動する複数の位置によって入力される操作を認識する技術に関する。
【背景技術】
【０００２】
タッチ操作を認識するシステムでは、操作面上の複数の複数の位置を指先やペン先等の物体によってタッチして連動させることで所定の指示を入力するマルチタッチ操作が広く利用されている。ユーザがマルチタッチ操作を意図した状況であっても、複数の物体が時間的な誤差なく同時に操作面にタッチできるという理想的な状況は稀である。現実のマルチタッチの入力では、複数の物体がそれぞれ操作面をタッチするタイミングには多少の時間差が生じる。
【０００３】
そこで特許文献１では、２つのタッチ位置間の距離又はタッチ開始時間の差分が条件を満たすほど小さい場合に、２つのタッチ位置の入力が、２つの操作入力を意図するものではなく、１のマルチタッチ操作の入力を意図したものであると判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２５６２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
任意のテーブル面や壁面に画像やＵＩ（ユーザインタフェース）を映して操作面とし、その画像やＵＩに指やペン等で接触して操作するシステムでは、各種カメラやセンサを用い、指先やペン先等の操作面への近接状態を検出する方式が使用される。例えば、近接状態として手やペン等の所定の物体の先端と操作面との間の距離を取得し、その距離が所定値より小さい状態をタッチ入力と認識することがある。物体の先端と操作面との間の距離が所定値より小さい状態をタッチ入力とみなすシステムでは、実質的には、物体が操作面に接触するより前であって、物体が空中に存在する間にタッチ入力が認識される。そのため、たとえユーザが各物体を操作面に物理的に接触させるタイミングを揃えたとしても、物体が空中にあった間の位置にずれがあれば、タッチ入力が検出されるタイミングに差が生じる可能性もある。また、このようなシステムでは、センサの精度や各物体の位置関係に影響され、物体の先端と操作面との間の距離計測の結果に誤差が生じ得る。そのため、物体によって、先端と操作面との間の距離が所定値より小さくなったと検出されるタイミングに差が生じる可能性もある。このように生じた時間差の結果として、２つの物体の片方だけがタッチ入力中であると認識される時間が長くなり、その間にシングルタッチ操作が認識されてしまう場合がある。
【０００６】
特許文献１では、物体と操作面の近接状態が所定条件を満たすことをタッチ入力として検出する場合に、１のマルチタッチ操作の入力を意図した複数の入力位置を特定することまで十分考慮されてはいなかった。
【０００７】
本発明は、上記を鑑みてなされたものであり、物体とタッチ対象面の近接状態に基づいて入力を認識するシステムにおける、複数の入力位置を使って入力される操作の操作性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するために、本発明における情報処理装置は、所定の操作面上の空間に入力される入力位置について前記所定の操作面からの距離に相当する情報を取得する取得手段と、前記取得手段に取得される情報に基づいて、前記所定の操作面からの距離が第１閾値を下回る１つの入力位置を用いて入力される第１操作と、前記所定の操作面に対する距離が前記第１閾値を下回る複数の入力位置を用いて入力される第２操作を認識する認識手段と、前記認識手段に認識された操作への応答するための出力を制御する出力制御手段を備え、前記出力制御手段は、前記所定の操作面からの距離が、前記第１閾値より大きい第２閾値を下回る入力位置の数が複数で、かつ、前記所定の操作面からの距離が前記第１閾値を下回る入力位置が１つの間、前記第１操作に応答しないことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、物体とタッチ対象面の近接状態に基づいて入力を認識するシステムにおける、複数の入力位置を使って入力される操作の操作性が向上する。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置１００を利用するテーブルトップインタフェースシステムの一例を表す図
【図２】情報処理装置１００のハードウェア構成、及び機能構成の一例を表す図
【図３】情報処理装置１００が実行するメイン処理の流れの一例を示すフローチャート
【図４】マルチタッチ操作に有効な入力位置を特定する処理の流れの一例を示すフローチャート
【図５】入力位置のタッチ状態を判定する処理の流れの一例を示すフローチャート
【図６】入力位置によるタッチ操作を認識する処理の流れの一例を示すフローチャート
【図７】ユーザの手の状態の具体例とそれに対応する入力位置と各種閾値の例を表す図
【図８】ユーザの手の状態の具体例とそれに対応する入力位置と各種閾値の例を表す図
【図９】情報処理装置１００が実行するメイン処理の流れの一例を示すフローチャート
【図１０】情報処理装置１００が実行するメイン処理の流れの一例を示すフローチャート
【図１１】変形例において設定される２つの閾値を概念的に表す図
【発明を実施するための形態】
【００１１】
以下、本発明に係る実施形態を、図面を参照して詳細に説明する。なお、実施形態に記載する構成は例示であり、本発明の範囲は必ずしもそれらの具体的な構成に限定されるとは限らない。
【００１２】
＜第１の実施形態＞
まず、第１の実施形態として、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムに対し、ユーザが行うタッチ操作を認識する処理の例を説明する。特に、１つの入力位置によって入力されるシングルタッチ操作と、複数の入力位置によって入力されるマルチタッチ操作の両方を認識可能であることが前提となる。
【００１３】
図１（ａ）は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。操作面１０１は、テーブルトップインタフェースのテーブル部分であり、ユーザは、操作面１０１をタッチすることでタッチ操作を入力することが可能である。ただし、本実施形態では、操作面１０１にタッチセンサは搭載されない。そのため、情報処理装置１００は、操作面１０１とユーザが操作する指やペンなどの操作体が実際に接触したかではなく、接触したとみなせる程度に近接した状態をタッチ入力中の状態（以下、タッチ状態）検出することで、タッチ操作の認識を可能とする。
【００１４】
本実施形態では、操作面１０１の上方に、操作面を見下ろすようにして距離画像センサ１０２が設置される。距離画像とは、各画素の値に、当該距離画像を撮像する撮像手段の基準位置（例えばレンズ中心など）から、当該画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ１０２が撮像する距離画像の画素値には、距離画像センサ１０２から、操作面１０１あるいはその上方に存在する物体表面までの距離が反映される。撮像された距離画像は、情報処理装置１００に距離画像として入力される。情報処理装置１００は、距離画像を解析することでユーザの手１０６の三次元位置を取得し、入力される操作を認識する。従ってユーザは、操作面上の空間（操作面１０１と距離画像センサ１０２の間の空間）のうち、距離画像センサ１０２によって撮像可能な範囲において、手などの所定の物体を動かすことにより空間ジェスチャ操作を入力することが可能である。本実施形態では、赤外光の反射パターン（または反射時間）によって距離情報を取得する方式のセンサを利用する。ただし、例えばステレオカメラシステムや、赤外光発光素子と赤外受光素子を設置することで距離画像を得ることも可能である。また、操作面１０１を含む空間において、操作体の高さ方向を含む三次元の位置情報が得られる手段であれば、距離画像を撮像する形態に限らず、例えば静電センサや感圧センサや温度センサにより三次元の位置情報を得る方法でも、本実施形態を実施可能である。
【００１５】
また本実施形態では、可視光カメラ１０３が上方から操作面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３を制御して、操作面１０１に載置された物体を撮像してその読み取り画像を得る書画カメラとして機能することができる。従って情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、操作面１０１上の空間に存在する物体を検出し、さらに識別する。物体には、例えば、ユーザの手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図１（ａ）に例示するシステムの場合は、距離画像センサ１０２と可視光カメラ１０３の画角には、テーブル周囲に存在するユーザの頭部は含まれない。そのため得られた距離画像では、画像端部がユーザの腕（肩から先の部分）の何処か一部と交差する。
【００１６】
プロジェクタ１０４は、操作面１０１の上面に画像の投影を行う。本システムでは、ユーザは投影された画像に含まれるアイテム１０５に対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、手１０６の検出および操作の認識には、距離画像センサ１０２で取得した距離画像を用いる。距離画像を用いることで、プロジェクタ１０４の投影光の影響でユーザの手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置は、プロジェクタ１０４に替えて、操作面１０１を液晶ディスプレイとするなどで構成することもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いても、投影光の影響は受けずに手の検出が可能である。
【００１７】
なお、操作面１０１を上方から見た画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はない。例えば、上方に設置されたミラーからの反射光を撮像するように距離画像センサ１０２及び可視光カメラ１０３を構成しても構わない。プロジェクタ１０４も同様に、図１（ａ）の例では、斜め上方から見下ろすように操作面１０１上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面１０１に反射させてもよい。操作面１０１が鉛直方向に沿って設置されたような場合も同様である。
【００１８】
本実施形態では、操作面１０１上の三次元空間に、図１に示すｘ、ｙ、ｚ軸を定義し、位置情報を扱う。図１（ａ）の例では、点１０７を座標軸の原点とする。ここでは一例として、テーブルの上面に平行な二次元がｘｙ平面、テーブル上面に直交し上方に伸びる方向（法線方向）をｚ軸の正方向としている。本実施形態では、ｚ軸方向は、世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面１０１とするシステムや、操作面が凹凸を有する場合や、公知のＡＲ（拡張現実）システムを利用して生成された仮想面である場合にも適用可能である。
【００１９】
図１（ｂ）は、距離画像センサ１０２によって撮像される距離画像とシステムの関係を表す図である。本実施形態において、距離画像センサ１０２は、画角に含む所定の空間の三次元の位置情報が反映された距離画像を取得する機能を持つ。本実施形態では、距離画像センサ１０２は、距離画像センサ１０２から操作面１０１方向に赤外光を照射し、被写体の表面で反射された反射光を、センサの受光素子で受光する。
【００２０】
本実施形態で利用する距離画像は、受光された反射光の位相遅れを計測することで、画素毎に反射するまでにかかった時間に対応する被写体表面までの距離を、画素値に反映させたものである。本実施形態では、距離画像センサ１０２は操作面１０１を見下ろすように距離画像を撮像するため、距離画像の画素値が表す距離情報は、距離画像センサ１０２から操作面１０１を見下ろす方向の奥行き方向の距離である。言い換えれば、距離画像の各画素値は、操作面１０１からの距離方向の位置情報（ｚ座標）を得るための情報を含む。ただし、本実施形態では、距離画像センサ１０２は、ｚ軸に対して斜めに角度をもつように設置されている。従って、本実施形態では距離画像の画素値をそのままｚ座標として利用するのではなく、後述するようにセンサや設置環境に応じたパラメータを使った座標変換を施す。そして、後述するように距離画像内に定義された位置情報のｕｖｄ座標を、世界座標のｘｙｚ座標に変換して利用する。本実施形態では、操作面は地面に平行なテーブル面を想定しているので、入力位置のｚ座標が表す操作面１０１からの距離は、操作面１０１からの高さを表す距離値に相当する。従って、ｚ座標のことを高さと表現する場合がある。
【００２１】
図１（ｂ）において、距離画像１０８は、距離画像センサ１０２によって撮像される距離画像の内容の一例を表す。ただし、図１（ｂ）では画素値に反映された距離情報は省略し、被写体のエッジのみを明示する。操作面１０１及び原点１０７は図１（ａ）に対応している。画像端１１１は、距離画像センサ１０２の画角に相当する。
【００２２】
距離画像には、図１（ｂ）に示すようにｕ軸及びｖ軸による二次元座標系が設定される。なお図１（ｂ）の例では、距離画像の解像度は６４０［ｄｏｔ］×４８０［ｄｏｔ］とする。入力位置１１０の距離画像内の位置座標が（ｕ，ｖ）であり、距離画像センサ１０２から入力位置までの距離に相当する画素値がｄであるとする。本実施形態では、このように距離画像内で定義される位置情報に対して、距離画像センサ１０２のレンズ特性および操作面１０１との相対位置関係等に基づく座標変換を施す。これにより、各画素の座標をテーブルに定義された実世界上の座標系にマッピングし、入力位置１１０について、実空間の三次元位置（ｘ，ｙ，ｚ）を取得することができる。座標変換に利用する変換行列は、距離画像センサ１０２が設置された時に、予め調整作業を行い取得する。なお、三次元座標の算出に用いる距離ｄは、単一の画素値だけでなく、手領域内で入力位置１１０の近傍の数ピクセル分の画素を対象に、ノイズ除去処理や平均化処理を実施した上で特定してもよい。
【００２３】
斜線で示す領域１０９は、距離画像１０８に写っているユーザの手１０６の像である（以下では単に手領域１０９という）。本実施形態では、ｚ座標に閾値処理を行うことで、テーブル表面である操作面１０１より高い位置に存在する被写体が写る領域を、手領域として検出する。本実施形態では、検出される手のそれぞれに対して１箇所の入力位置を検出する。入力位置とは、ユーザが手指を使って指し示していると推定される位置であり、三次元座標で表される。本実施形態では、前提として、ユーザがタッチ操作のために点を指定する場合には、１本だけ指を伸ばした「指さしポーズ」を取ることが規定される。１本指を延ばすポーズが、多くの人にとっては１点を指し示すのに自然な体勢だからである。従って、入力位置としては、手領域１０９のうち端部だと推定される位置を特定する。指差しポーズであれば、端部は指先に当たる。具体的には、距離画像から、手領域１０９を検出し、手領域１０９のうち画像端１１１から最も遠い位置に存在する画素を示す座標を、指先にあたる１点とみなす。図１（ｂ）に示される手領域１０９の場合、画像端１１１から最も遠い点が入力位置１１０として特定される。なお、入力位置の特定方法はこれに限らず、例えば、手領域から手の五指を検出して、所定の指の端部を特定してもよい。
【００２４】
また本実施形態では、フレームレートに従い繰り返し撮像される距離画像の各フレームで、手領域１０９が画像端１１１と交差する部分の中央を、手の侵入位置として定義する。図１（ｂ）の手領域１０９の場合、侵入位置１１２が特定される。侵入位置１１２もまた、距離画像内に定義された位置情報を変換することで、実空間内での三次元位置情報として取得される。本実施形態では、距離画像から複数の手領域が検出された場合、そのそれぞれについて、入力位置及び侵入位置が特定される。そして、複数の手領域のそれぞれについてタッチ操作を認識する。
【００２５】
以下、本明細書ではユーザがタッチ操作の入力に用いる操作体及びその端部の一例として、ユーザの手１０６及びその指が利用される場合を説明する。ただし、本実施形態では操作体として、手指だけでなくスタイラスやロボットアームなどの器具を利用する場合にも適用可能である。なお操作体の端部とは、タッチ操作のために入力位置を指し示すのに用いられる部位を示すが、操作体の一部に属し、タッチ操作の入力が可能な部位であれば、突起形状の端部に限定せずともよい。
【００２６】
本実施形態では、距離画像センサ１０２によって撮像される距離画像を使って操作体と操作面１０１の間の距離を取得し、その距離が第１閾値より小さい場合に、その操作体が操作面１０１にタッチしたと認識する。さらに、操作体が操作面１０１にタッチしたと認識するための距離の閾値とは別に、第２閾値を設ける。そして、複数の操作体が検出される場合は、第１閾値による判定の前に第２閾値による閾値判定を行うことで、複数の操作体が連動して１のマルチタッチ操作を入力するのに用いられるかを判定した上で、各操作体によりタッチ入力がなされたかを判定する。図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行う。さらにシステムバス２０４に接続された各構成を制御する。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。
【００２７】
距離画像センサ１０２は、ＣＰＵ２００の制御に従い、アイテムが表示されるテーブルとアイテムを操作するユーザの手を含む、操作面１０１上の空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい反射時間方式（Ｔｉｍｅ−ｏｆ−Ｆｌｉｇｈｔ方式）を基に説明するが、用途に応じて視差方式や赤外パターン方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる画像アイテムを投影表示する。
【００２８】
なお上述したシステムでは、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。なお、距離画像センサ１０２は、静電センサや感圧センサや温度センサ等でもよく、入力位置の三次元の位置情報や入力位置の接触圧力や接触面積等の接触情報を取得する。
【００２９】
図２（ｂ）は、情報処理装置１００のソフトウェアの構成を示すブロック図の一例である。これらの各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現されている。そして、各処理の実行結果をＲＡＭ２０２に保持する。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００３０】
三次元情報取得部２１０は、距離画像センサ１０２によって撮像された距離画像をフレームレートに従う一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお三次元情報取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」として説明する。
【００３１】
操作体取得部２１１は、三次元情報取得部２１０によって取得された距離画像の各画素について、閾値判定やノイズ低減処理を施し、距離画像中の手領域（腕を含む）を検出する。手領域とは、入力された距離画像のうち、ユーザが操作体として利用する手が被写体として写る画素群である。そして、検出した手領域にＩＤを付与し、ＲＡＭ２０２に保持する。ＩＤを付与する際、異なる距離画像のフレームで検出された手領域が、同一の手領域とみなされた場合には、同じＩＤを付与する。同一の手領域とみなされる条件とは、時間的に近い距離画像のフレームで検出され、かつ手領域の侵入位置１１２の距離が近いことである。一方、同一の手領域とみなされない場合には、手領域が検出された順番に数字を付与する（ＩＤ＝１、２、・・・）。
【００３２】
入力位置取得部２１２は、操作体取得部２１１によって検出された手領域の輪郭情報に基づき、手領域の端部に当たる１点を入力位置として検出する。本実施形態では図１（ａ）（ｂ）に示したように、手領域の輪郭のうち、画像端１１１から最も遠くに存在する画素を示す座標を、入力位置として検出する。そして、検出された入力位置の距離画像における位置情報を、世界座標のｘｙｚ座標に変換し、手領域と同じＩＤを付与して、ＲＡＭ２０２に保持する。なお、静電センサや感圧センサ等により、操作面１０１に近接する指先位置の三次元の位置情報（座標値）や接触情報（接触圧力や接触面積等）を取得し、入力位置情報としてＲＡＭ２０２に保持する方法を採用しもよい。
【００３３】
特定部２１３は、入力位置取得部２１２により検出された入力位置で、所定の条件を満たす入力位置を、マルチタッチ操作に有効な入力位置を特定する。本実施形態では、入力位置取得部２１２により検出された複数の入力位置のうち、操作面１０１からの距離が、所定の第２閾値小さい入力位置が複数存在する場合に、それらの中からマルチタッチ操作の入力として有効な入力位置を特定する。ここで用いられる第２閾値は、入力位置がタッチ状態にあることを判定するために用いられる第１閾値（タッチ閾値と呼ばれることもある）よりも大きい距離が設定される。このように２段階の閾値判定により、本実施形態では、各タッチ位置がタッチ状態にあるか否かを判定するより前に、その入力位置がマルチタッチ操作に用いられる可能性があるか否かを判定した結果を得ることを可能とする。例えば２つの入力位置のうちの片方だけがタッチ状態に遷移した状態にあっても、それらがマルチタッチ操作に用いられる可能性が高い場合は、タッチ状態に遷移した入力位置に基づくシングルタッチ操作の認識を抑制する。そして、他方の入力位置がタッチ状態に遷移するのを待機し、マルチタッチ状態に遷移したことに応じてマルチタッチ操作を認識することが可能となる。
【００３４】
本実施形態では、操特定部２１３は、操作面１０１からの距離が第２閾値よりも小さい複数の入力位置が、予め定義した条件を満たす場合に、それらをマルチタッチ操作の入力として有効な入力位置として特定する。そして、特定された入力位置をＩＤと関連付けて、特定結果をペアリング情報としてＲＡＭ２０２に保持する。以降、このマルチタッチ操作に有効な複数の入力位置を特定する処理を、複数の入力位置を“ペアリングする”と記載する。
【００３５】
認識部２１４は、入力されるタッチ操作を認識する。まず、入力位置の三次元座標に基づいて、各入力位置の操作面１０１に対する近接状態が、タッチ入力中とみなされる状態かを判定し、判定結果をＲＡＭ２０２に保持する。本実施形態では、入力位置と操作面１０１の間の距離（高さに相当するｚ座標）が所定の閾値より小さい場合は、タッチ入力中とみなされる状態（以下、タッチ状態）だと判定する。そして、タッチ状態にある間の入力位置により指示された操作面１０１上の位置（入力位置のｘｙ座標に相当）を追跡することで、タッチ、リリース、ムーブ、フリック、ピンチ、ローテート等のタッチイベントを生成する。そして、生成したタッチイベントを表示制御部２１５に通知する。
【００３６】
表示制御部２１５は、認識部２１４により通知されるユーザ操作に応じて実行される各処理の結果（タッチイベント等）を反映した描画データを生成し、プロジェクタ１０４に出力することで、操作面１０１に表示する内容を制御する。ユーザ操作とは、入力位置や入力位置の動き等によって定義され、情報処理装置１００に対して所定の指示を入力することができるものである。また、表示制御部２１５は、入力位置がペアリングされた結果を描画データに反映することで、ユーザにペアリング結果を通知する。例えば、ペアリングされた入力位置に同じ色を投影したり、同じ形状（円や多角形等）や記号を投影したり、数字や文字の表示等で視覚的に通知する。なお、ペアリング結果の通知は視覚に限定せず、音声や触角等による通知でもよい。例えば、ペアリング完了時に通知音を鳴らしたり、入力位置を振動させたりしてもよい。
【００３７】
図３は、本実施形態における情報処理装置のメイン処理の流れを表すフローチャートである。本実施形態では、情報処理装置１００の電源がＯＮになると、まず、図３のステップＳ３０１において、表示制御部２１５が、記憶装置２０３から取得したデータに基づいてＵＩ部品を配置した画面を生成し、プロジェクタ１０４へ出力する。そして、プロジェクタ１０４が操作面１０１に画面を投影する。
【００３８】
次に、ステップＳ３０２において、三次元情報取得部２１０が、距離画像センサ１０２から距離画像を取得する。なお、距離画像センサ１０２は、情報処理装置の電源がＯＮになっている間、操作面１０１の操作領域の距離画像を、所定の時間間隔（フレームレート）で撮像し、取得された距離画像を情報処理装置に入力する。従って、本処理は距離画像のフレームレートに伴って繰り返される。
【００３９】
ステップＳ３０３において、操作体取得部２１１がユーザの手領域（腕を含む）を検出する。手領域が検出された場合（ステップＳ３０３でＹＥＳ）は、ステップＳ３０４に進む。一方、手領域が検出されなかった場合（ステップＳ３０３でＮＯ）は、ステップＳ３０２に処理が戻り、手領域が検出されるまでステップＳ３０２とＳ３０３の処理を繰り返す。
【００４０】
ステップＳ３０４において、操作体取得部２１１が、ステップＳ３０３で検出した手領域にＩＤを付与し、ＲＡＭ２０２に保持する。例えばＩＤは、検出した順番に数字を付与する（１、２、・・・）。ステップＳ３０５において、入力位置取得部２１２が、ステップＳ３０３で検出された手領域の入力位置を検出し、検出した入力位置に手領域と同じＩＤを付与して、ＲＡＭ２０２に保持する。ステップＳ３０６において、特定部２１３が、ステップＳ３０５で検出された入力位置で、マルチタッチ操作に有効な入力位置を特定する。ステップＳ３０６の処理の内容は、図４のフローチャートを参照して後述する。ステップＳ３０７において、認識部２１４が、ステップＳ３０５で検出された入力位置のタッチ状態の判定処理を実行する。ステップＳ３０７の処理の内容は、図５のフローチャートを参照して後述する。
【００４１】
ステップＳ３０８において、認識部２１４が、ステップＳ３０６とステップＳ３０７の処理結果に基づいて、ステップＳ３０５で検出された入力位置による操作を認識する。ステップＳ３０８の処理の内容は、図６のフローチャートを参照して後述する。ステップＳ３０９において、表示制御部２１５が、ステップＳ３０８で認識された操作に応じて、プロジェクタ１０４によって投影されている画面中のオブジェクト（画像、データ、ＵＩ等）の表示を更新する。ステップＳ３１０において、情報処理装置の電源がＯＦＦにされたか否かを判定する。電源がＯＦＦされた場合（ステップＳ３０６でＹＥＳ）は、情報処理装置１００は全ての処理を終了する。一方、電源がＯＦＦにされていない場合（ステップＳ３０６でＮＯ）は、ステップＳ３０２の処理へ戻る。
【００４２】
図４は、本実施形態のステップＳ３０４において実行される入力位置の特定処理の流れの一例を表すフローチャートである。まず、ステップＳ４０１において、検出されている入力位置の中から１つ処理対象とする入力位置を選択する。ステップＳ４０２において、特定部２１３が、処理対象の入力位置が既にペアリングされているか否か、を判定する。入力位置が既にペアリングされている場合（ステップＳ４０２でＹＥＳ）は、ステップＳ４０３へ進む。入力位置がペアリングされていない場合（ステップＳ４０２でＮＯ）は、ステップＳ４０６へ進む。
【００４３】
次にステップＳ４０３では、特定部２１３が、入力位置の高さが第３閾値以上か否かを判定する。第３閾値とは、ペアリングを解除するか否かを判定する為に用いられる、操作面からの距離の基準を表す閾値である。第３閾値の大きさは、ペアリングされている複数の入力位置のいずれかの高さが第３閾値以上の状態に遷移した場合、操作体が操作面１０１から十分離れたため、このあとマルチタッチ操作が継続される可能性は低いとみなすことができる程度に設定する。処理対象となっている入力位置の高さが、第３閾値以上の場合（ステップＳ４０３でＹＥＳ）は、ステップＳ４０４へ進む。入力位置の高さが第３閾値より小さい場合（ステップＳ４０３でＮＯ）は、ステップＳ４０５へ進む。ステップＳ４０４では、特定部２１３が、入力位置のペアリングを解除し、それを表す情報をＲＡＭ２０２に保持する。
【００４４】
ステップＳ４０５では、特定部２１３が、ステップＳ３０５で検出された全ての入力位置で、ペアリングの判定が完了したか否かを判定する。全ての入力位置でペアリングの判定が完了している場合（ステップＳ４０５でＹＥＳ）は、図４の処理を終了し、ステップＳ３０７へ進む。全ての入力位置でペアリングの判定が完了していない場合（ステップＳ４０５でＮＯ）は、ステップＳ４０１へ戻り、処理を繰り返す。
【００４５】
ステップＳ４０２でＮＯと判定された場合、ステップＳ４０６では、特定部２１３が、処理対象となっている入力位置の高さが第２閾値以下か否かを判定する。第２閾値とは、操作面からの距離の基準を表す閾値である。その大きさは、高さが第２閾値以下の入力位置が複数存在する状態が、複数の操作体が操作面１０１に十分近づき、このあと連動してマルチタッチ操作を入力する可能性があるとみなすことができる程度に設定する。入力位置の高さが第２閾値以下の場合（ステップＳ４０６でＹＥＳ）は、ステップＳ４０７へ進む。入力位置の高さが第２閾値より大きい場合（ステップＳ４０６でＮＯ）は、ステップＳ４０５へ進む。本実施形態では、第３閾値は、距離の検出誤差等を考慮し、ペアリングされた入力位置が操作面１０１から十分離れた位置に遷移したことを確実に検出するため、第２閾値より大きい値とする。ただし、第２閾値と第３閾値は同一の値であってもよい。
【００４６】
ステップＳ４０７では、特定部２１３が、高さが第２閾値以下である入力位置が、２つ存在するか否かを判定する。より具体的には、ＲＡＭ２０２に保持された情報の中で、ステップＳ３０５で検出された複数の入力位置のうち、処理対象になっていない入力位置のｚ座標を参照し、高さが第２閾値以下であるものがもう１つ相殺するかを判定する。高さが第２閾値以下である入力位置が２つ存在する場合（ステップＳ４０７でＹＥＳ）は、ステップＳ４０８へ進む。高さが第２閾値以下である入力位置が２つ存在しない場合（ステップＳ４０７でＮＯ）は、ステップＳ４０５へ進む。ステップＳ４０８では、特定部２１３が、検出されている複数の入力位置のうち、高さが第２閾値以下の２つの入力位置の間の距離が、基準となる距離より小さいかを判定する。ここでの基準となる距離とは、２つの入力位置がマルチタッチ操作のために連動する間に動き得る範囲の基準となる距離であり、ｘｙ平面内で定義される。基準となる距離の大きさは、情報処理装置１００が認識することができるマルチタッチ操作の種類に応じて適切な距離が選ばれればよい。例えば、情報処理装置１００が認識することができるマルチタッチ操作に、２つの入力位置の間をある程度広い状態から狭めるように動かす縮小操作が含まれているとする。この場合、少なくとも、縮小操作を認識するために必要な程度に、２つの入力位置が離れている状態も、ステップＳ４０８で判定する基準となる距離に関する条件を満たしている必要がある。２つの入力位置の間の距離が基準となる距離より小さい場合（ステップＳ４０８でＹＥＳ）は、ステップＳ４０９へ進む。２つの入力位置の間の距離が基準となる距離より小さくない場合（ステップＳ４０８でＮＯ）は、ステップＳ４０５へ進む。ただし、操作環境によってはステップＳ４０８の処理は省略されてもよい。例えば、操作面１０１が１人の操作者が所定のマルチタッチ操作を行うのに最低限必要な程度に小さい場合、上述したステップＳ４０８の判定結果は自明となるため省略可能である。また例えば同時に操作を行う操作者が１人に限定される場合、高さが第２閾値以下である入力位置が複数存在する時点で、マルチタッチ操作が行われる確実性が高いので、ステップＳ４０８の処理を省略してもよい。ステップＳ４０９では、特定部２１３が、ステップＳ４０８で、距離に関する条件を満たしたと判定された２つの入力位置をペアリングして、ペアリング情報をＲＡＭ２０２に保持する。
【００４７】
図５は、本実施形態のステップＳ３０７で実行される、入力位置のタッチ状態の判定処理の流れを表すフローチャートである。まず、ステップＳ５０１において、検出されている入力位置の中から１つ処理対象とする入力位置を選択する。ステップＳ５０２において、認識部２１４が、処理対象の入力位置が既にタッチ状態になっているか否かを判定する。入力位置が既にタッチ状態になっている場合（ステップＳ５０２でＹＥＳ）は、ステップＳ５０３へ進む。入力位置がタッチ状態となっていない場合（ステップＳ５０２でＮＯ）は、Ｓ５０６へ進む。次にステップＳ５０３では、認識部２１４が、入力位置の高さが第４閾値以上か否かを判定する。第４閾値は、操作体が操作面１０１から十分離れたことに応じてタッチ状態が解除されたと判定するための入力位置の高さの閾値であり、リリース閾値と呼ばれることもある。入力位置の高さが第４閾値以上の場合（ステップＳ５０３でＹＥＳ）は、ステップＳ５０４へ進む。入力位置の高さが第４閾値より小さい場合（ステップＳ５０３でＮＯ）は、Ｓ５０５へ進む。ステップＳ５０４では、認識部２１４が、入力位置のタッチ状態を解除し、入力位置が非タッチ状態であることをＲＡＭ２０２に保持し、ステップＳ５０５へ進む。
【００４８】
ステップＳ５０５では、認識部２１４が、ステップＳ３０５で検出された全ての入力位置で、タッチ状態の判定が完了したか否かを判定する。全ての入力位置でタッチ状態の判定が完了している場合（ステップＳ５０５でＹＥＳ）は、図５の処理を終了し、ステップＳ３０８へ進む。全ての入力位置でタッチ状態の判定が完了していない場合（ステップＳ５０５でＮＯ）は、図５の処理の開始に戻り、ステップＳ５０１へ進む。
【００４９】
一方、ステップＳ５０６では、認識部２１４が、処理対象となっている入力位置の、操作面からの距離（高さに相当する）が第１閾値以下か否かを判定する。第１閾値は、操作体が操作面１０１に十分近づいたことを検出して、タッチ入力がなされたと判定するための距離の閾値である。操作面からの距離が第１閾値以下の場合（ステップＳ５０６でＹＥＳ）は、ステップＳ５０７へ進む。操作面からの距離が第１閾値より大きい場合（ステップＳ５０６でＮＯ）は、ステップＳ５０５へ進む。ステップＳ５０７では、認識部２１４が、入力位置をタッチ状態とし、入力位置がタッチ状態であることをＲＡＭ２０２に保持し、ステップＳ５０５へ進む。なお、本実施形態では、操作体が操作面１０１から十分離れるまで、誤ってタッチ状態の解除が行われないように、第１閾値より第４閾値が大きいとする。ただし、これらの距離は一致してもよい。
【００５０】
図６は、本実施形態のステップＳ３０８で実行される入力位置のタッチ操作の認識処理の流れを表すフローチャートである。まず、ステップＳ６０１において、検出されている入力位置の中から１つ処理対象とする入力位置を選択する。ステップＳ６０２において、認識部２１４が、処理対象の入力位置のタッチ状態の判定結果を参照する。入力位置がタッチ状態の場合（ステップＳ６０２でＹＥＳ）は、ステップＳ６０３へ進む。入力位置がタッチ状態でない場合（ステップＳ６０２でＮＯ）は、ステップＳ６０６へ進む。
【００５１】
次にステップＳ６０３では、認識部２１４が、処理対象の入力位置のペアリング状態の判定結果を参照する。入力位置がペアリング状態の場合（ステップＳ６０３でＹＥＳ）は、ステップＳ６０４へ進む。入力位置がペアリング状態でない場合（ステップＳ６０３でＮＯ）は、Ｓ６０７へ進む。ステップＳ６０４では、認識部２１４が、処理対象の入力位置とペアリングされている、もう一方の入力位置のタッチ状態の判定結果を参照する。ペアリングされているもう一方の入力位置がタッチ状態の場合（ステップＳ６０４でＹＥＳ）は、ステップＳ６０５へ進む。ペアリングされているもう一方の入力位置がタッチ状態でない場合（ステップＳ６０４でＮＯ）は、ステップＳ６０６へ進む。
【００５２】
ステップＳ６０５では、認識部２１４が、入力位置によるマルチタッチ操作を認識する。そして、認識結果を表す情報（タッチイベント等）を表示制御部２１５に通知し、Ｓ６０６へ進む。ステップＳ６０６では、認識部２１４が、ステップＳ３０５で検出された全ての入力位置で、タッチ操作の認識が完了したか否かを判定する。このとき、ステップＳ６０４でペアリング相手として読み出され、ステップＳ６０６のマルチタッチ操作認識に利用された入力位置は、タッチ操作認識済みの入力位置として扱われる。全ての入力位置でタッチ操作の認識が完了している場合（ステップＳ６０６でＹＥＳ）は、図６の処理を終了し、ステップＳ３０９へ進む。全ての入力位置でタッチ操作の認識が完了していない場合（ステップＳ６０６でＮＯ）は、ステップＳ６０１へ進む。一方、ステップＳ６０３でＮＯとなった場合は、ステップＳ６０７に進む。ステップＳ６０７では、認識部２１４が、入力位置によるシングルタッチ操作を認識する。そして、認識結果を表す情報（タッチイベント等）を表示制御部２１５に通知し、ステップＳ６０６へ進む。
【００５３】
以上説明したように、本実施形態では、ステップＳ６０４で、処理対象の入力位置がタッチ状態にあっても、その入力位置にペアリングされている入力位置がタッチ状態でない場合、タッチ状態にある入力位置に基づくシングルタッチ操作認識を行わない。よって、マルチタッチ操作が行われる前後に、ユーザが意図しないシングルタッチイベントが発声してしまう動作を低減できる。なお、図４〜図６のフローチャートでは、ペアリングする入力位置の数が２つに設定された場合の条件を説明したが、本実施形態は２つに限定せず３つ以上の入力位置を連動させるマルチタッチ操作を認識する場合にも適用できる。Ｎ個（Ｎ：３以上の整数）の入力位置を用いるマルチタッチ操作が入力される場合、ステップＳ４０７では、操作面からの距離が第２閾値以下の入力位置がＮ個であるかを判定する。またステップＳ４０８では、例えば、Ｎ個の入力位置から定まる重心位置と各入力位置の距離が基準となる距離より小さいかを判定すればよい。このとき基準となる距離は、想定される操作者の人数などによって定められれば良い。また、図６のフローチャートでは、ペアリングされている全ての入力位置がタッチ状態に至るまで、１〜「Ｎ−１」個の入力位置による操作は認識せずに待機する。
【００５４】
次に、図７と図８を参照して、ユーザの手の状態の具体例に対応付けて、本実施形態の情報処理装置１００による動作を説明する。図７（ａ）〜（ｅ）は、ユーザが操作面１０１の上空に手７００及び手７０１を差し伸べてから、指先を操作面１０１に接触（もしくは近接）させてマルチタッチ操作（２つの手での操作）を入力する様子を段階的に表す。ただし、入力位置の動きを解り易く示すため、図７（ｂ）〜（ｅ）では手７００及び手７０１の図示を省略する。予め第１閾値７０３と第２閾値７０２が設定されている。それぞれ操作面を基準とした高さ（操作面からの距離）で設定されている。一例として、第１閾値７０３＝１０ｍｍ、第２閾値７０２＝２０ｍｍとする。各段階の特徴的な処理と、上述したフローチャート各ステップの対応関係を、ステップの番号を括弧書きすることで示す。
【００５５】
まず、ユーザの指が操作面１０１から離れた位置にある状態を、図７（ａ）を用いて説明する。図７（ａ）は、時刻ｔ１の操作面１０１上の空間を側面から見た図である。距離画像センサ１０２から取得された時刻ｔ１の距離画像から、操作している手７００と操作している手７０１の２つの手領域が検出される（ステップＳ３０３）。検出された手領域に、手領域を識別するための手ＩＤを付与する。具体的には、手７００の手領域にＩＤ＝１を付与し、手７０１の手領域にＩＤ＝２を付与する（ステップＳ３０４）。検出された手領域から入力位置を検出する。具体的には、操作している手７００の手領域の入力位置としてＰ１が検出され、操作している手７０１の手領域の入力位置としてＰ２が検出される。入力位置Ｐ１にＩＤ＝１を、入力位置Ｐ２にＩＤ＝２を付与する。そして、入力位置Ｐ１とＰ２の距離画像における位置情報のｕｖｄ座標を、世界座標のｘｙｚ座標に変換する（ステップＳ３０５）。具体的には、入力位置Ｐ１の座標を（ｕ１，ｖ１，ｄ１）から（ｘ１，ｙ１，ｚ１）に変換し、入力位置Ｐ２の座標を（ｕ２，ｖ２，ｄ２）から（ｘ２，ｙ２，ｚ２）に変換する（ステップＳ３０５）。
【００５６】
次にマルチタッチ操作に有効な入力位置を特定し、互いをペアリングする処理（ステップＳ３０６）に進む。まず入力位置Ｐ１を処理対象とする（ステップＳ４０１）。入力位置Ｐ１がペアリングされておらず（ステップＳ４０２でＮＯ）、入力位置Ｐ１の高さｚ１が第２閾値７０２より大きい（ステップＳ４０６でＮＯ）。今回取得した距離画像で検出された全ての入力位置で、ペアリング判定が完了していないので（ステップＳ４０５でＮＯ）、次に未処理である入力位置Ｐ２を処理対象とする（ステップＳ４０１）。入力位置Ｐ２はペアリングされておらず（ステップＳ４０２でＮＯ）、入力位置Ｐ２の高さｚ２が第２閾値７０２より大きい（ステップＳ４０６でＮＯ）。今回取得した距離画像で検出された全ての入力位置で、ペアリング判定が完了している（ステップＳ４０５でＹＥＳ）、ペアリング判定処理を終了する。
【００５７】
こうして、入力位置のタッチ状態を判定する処理（ステップＳ３０７）に進む。ただし、図７（ａ）の状態では、操作している手７００と操作している手７０１は、いずれも操作面１０１よりも十分高い位置で維持されており、入力位置Ｐ１とＰ２はタッチ状態ではない。従って、タッチ操作の認識も行われない（ステップＳ３０８）ため、詳細な説明は省略する。
【００５８】
次に、操作している手７００の指示位置Ｐ３の高さｚ３が、第２閾値７０２以下の状態を、図７（ｂ）を用いて説明する。図７（ｂ）は時刻ｔ２の操作面１０１上の空間を側面から見た図である。距離画像センサ１０２から、時刻ｔ２の距離画像が取得され（ステップＳ３０２）、取得した距離画像から、操作している手７００と操作している手７０１の２つの手領域が検出される（ステップＳ３０３）。操作している手７００の手領域にＩＤ＝１を付与し、操作している手７０１の手領域にＩＤ＝２を付与する（ステップＳ３０４）。操作している手７００の手領域の入力位置としてＰ３が検出され、操作している手７０１の手領域の入力位置としてＰ４が検出される。そして、入力位置Ｐ３の座標を（ｕ３，ｖ３，ｄ３）から（ｘ３，ｙ３，ｚ３）に変換し、入力位置Ｐ４の座標を（ｕ４，ｖ４，ｄ４）から（ｘ４，ｙ４，ｚ４）に変換する（ステップＳ３０５）。
【００５９】
特定処理（ステップＳ３０６）において、まず入力位置Ｐ３を処理対象とする（ステップＳ４０１）。入力位置Ｐ３はペアリングされておらず（ステップＳ４０２でＮＯ）、入力位置Ｐ３の高さｚ３が第２閾値７０２以下で（ステップＳ４０６でＹＥＳ）、高さが第２閾値７０２以下の入力位置が複数存在しない（ステップＳ４０７でＮＯ）。全ての入力位置で、ペアリング判定が完了していないので（ステップＳ４０５でＮＯ）、未処理である入力位置Ｐ４を処理対象として選択する（ステップＳ４０１）。入力位置Ｐ４はペアリングされておらず（ステップＳ４０２でＮＯ）、入力位置Ｐ４の高さｚ４が第２閾値７０２より大きい（ステップＳ４０６でＮＯ）。今回取得した距離画像で検出された全ての入力位置で、ペアリング判定が完了したので（ステップＳ４０５でＹＥＳ）、ペアリング判定処理を終了する。そして、入力位置のタッチ状態の判定処理（ステップＳ３０７）に進む。図７（ｂ）でも操作している手７００と操作している手７０１は、いずれも操作面１０１よりも十分高い位置で維持されており、入力位置Ｐ１とＰ２はタッチ状態ではない。従って、タッチ操作の認識も行われない（ステップＳ３０８）ため、詳細な説明は省略する。
【００６０】
次に、操作している手７００の指示位置Ｐ５の高さｚ５と操作している手７０１の指示位置Ｐ６の高さｚ６が、第２閾値７０２以下の状態を、図７（ｃ）を用いて説明する。図７（ｃ）は時刻ｔ３の操作面１０１上の空間を側面から見た図である。距離画像センサ１０２から、時刻ｔ３の距離画像が取得され（ステップＳ３０２）、取得した距離画像から、操作している手７００と操作している手７０１の２つの手領域が検出される（ステップＳ３０３）。操作している手７００の手領域にＩＤ＝１を付与し、操作している手７０１の手領域にＩＤ＝２を付与する（ステップＳ３０４）。操作している手７００の手領域の入力位置としてＰ５が検出され、操作している手７０１の手領域の入力位置としてＰ６が検出される。そして、入力位置Ｐ５の座標を（ｕ５，ｖ５，ｄ５）から（ｘ５，ｙ５，ｚ５）に変換し、入力位置Ｐ６の座標を（ｕ６，ｖ６，ｄ６）から（ｘ６，ｙ６，ｚ６）に変換する（ステップＳ３０５）。
【００６１】
特定処理（ステップＳ３０６）では、まず入力位置Ｐ６を処理対象とする（ステップＳ４０１）。入力位置Ｐ６はペアリングされておらず（ステップＳ４０２でＮＯ）、入力位置Ｐ５の高さｚ５が第２閾値７０２以下で（ステップＳ４０６でＹＥＳ）ある。図７（ｃ）では、高さが第２閾値７０２以下の入力位置が２つ存在する（ステップＳ４０７でＹＥＳ）。ここで、入力位置Ｐ５とＰ６の間隔が、基準となる距離よりも小さいとする（ステップＳ４０８でＹＥＳ）。入力位置Ｐ５とＰ６はペアリングされ、入力位置Ｐ５のＩＤ１と入力位置のＰ６のＩＤ２をペアリング情報として関連付けて、保持する（ステップＳ４０９）。今回取得した距離画像で検出された全ての入力位置で、ペアリング判定が完了していないので（ステップＳ４０４でＮＯ）、未処理である操作位置Ｐ６を処理対象とする（ステップＳ４０１）。操作位置Ｐ６は操作位置Ｐ５と既にペアリングされており（ステップＳ４０２でＹＥＳ）、操作位置Ｐ６の高さｚ６が第３閾値８０２より小さい（ステップＳ４０３でＮＯ）。今回取得した距離画像で検出された全ての操作位置で、ペアリング判定が完了している（ステップＳ４０５でＹＥＳ）、ペアリング判定処理を終了する。
【００６２】
入力位置のタッチ状態を判定は（ステップＳ３０７）、図７（ａ）（ｂ）と同様に入力位置Ｐ５とＰ６共にタッチ状態ではない。よって、図７（ｃ）の状態では、操作している手７００と操作している手７０１は、操作面１０１よりも十分高い位置で維持されており、入力位置Ｐ５とＰ６はタッチ状態ではないため、タッチ操作も認識されない。
次に、操作している手７００の指示位置Ｐ７の高さｚ７が、第１閾値７０３以下の状態を、図７（ｄ）を用いて説明する。図７（ｄ）は時刻ｔ４の操作面１０１上の空間を側面から見た図である。距離画像センサ１０２から、時刻ｔ４の距離画像が取得され（ステップＳ３０２）、取得した距離画像から、操作している手７００と操作している手７０１の２つの手領域が検出される（ステップＳ３０３）。操作している手７００の手領域にＩＤ＝１を付与し、操作している手７０１の手領域にＩＤ＝２を付与する（ステップＳ３０４）。操作している手７００の手領域の入力位置としてＰ７が検出され、操作している手７０１の手領域の入力位置としてＰ８が検出される。そして、入力位置Ｐ７の座標を（ｕ７，ｖ７，ｄ７）から（ｘ７，ｙ７，ｚ７）に変換し、入力位置Ｐ８の座標を（ｕ８，ｖ８，ｄ８）から（ｘ８，ｙ８，ｚ８）に変換する（ステップＳ３０５）。
【００６３】
特定処理（ステップＳ３０６）では、まず入力位置Ｐ７を処理対象とする（ステップＳ４０１）。入力位置Ｐ７はペアリング済みであり（ステップＳ４０２でＹＥＳ）、入力位置Ｐ７の高さｚ７がペアリング解消閾値８０２より小さい（ステップＳ４０３でＮＯ）。また、今回取得した距離画像で検出された全ての入力位置で、ペアリング判定が完了していないので（ステップＳ４０５でＮＯ）、次に未処理である入力位置Ｐ８が処理対象となる（ステップＳ４０１）。入力位置Ｐ８は既にペアリング済みであり（ステップＳ４０２でＹＥＳ）、入力位置Ｐ８の高さｚ８がペアリング解消閾値８０２より小さい（ステップＳ４０３でＮＯ）。今回取得した距離画像で検出された全ての入力位置で、ペアリング判定が完了している（ステップＳ４０５でＹＥＳ）。従って、ペアリング情報は維持されたまま、ペアリング判定処理を終了する。
【００６４】
入力位置のタッチ状態を判定する処理（ステップＳ３０７）でも、まず入力位置Ｐ７を処理対象とする（ステップＳ５０１）。入力位置Ｐ７はここまでタッチ状態と判定されてはいない（ステップＳ５０２でＮＯ）。ただし、時刻ｔ４において入力位置Ｐ７の高さｚ７が第１閾値７０３以下であり（ステップＳ５０６でＹＥＳ）、入力位置Ｐ７をタッチ状態としＲＡＭ２０２に保持する。全ての入力位置で、タッチ状態判定が完了していないので（ステップＳ５０５でＮＯ）、未処理である入力位置Ｐ８を処理対象とする（ステップＳ５０１）。入力位置Ｐ８はここまでタッチ状態ではなく（ステップＳ５０２でＮＯ）、時刻ｔ４においても入力位置Ｐ８の高さｚ８が第１閾値７０３より大きい（ステップＳ５０６でＮＯ）。今回取得した距離画像で検出された全ての入力位置で、タッチ状態判定が完了しているので（ステップＳ５０５でＹＥＳ）、タッチ状態判定処理を終了する。
【００６５】
次に、入力位置Ｐ７とＰ８によるタッチ操作を認識する処理（ステップＳ３０８）において、入力位置Ｐ７を処理対象とする（ステップＳ６０１）。入力位置Ｐ７はタッチ状態であり（ステップＳ６０２でＹＥＳ）、入力位置Ｐ７はペアリング済みであり（ステップＳ６０３でＹＥＳ）、入力位置Ｐ７のペアリング相手である入力位置Ｐ８はタッチ状態ではない（ステップＳ６０４でＮＯ）。全ての入力位置で、タッチ操作認識が完了していないので（ステップＳ６０６でＮＯ）、次に未処理である入力位置Ｐ８が処理対象となる（ステップＳ６０１）。入力位置Ｐ８はタッチ状態ではなく（ステップＳ６０２でＮＯ）、全ての入力位置で、タッチ操作認識処理が完了したので（ステップＳ６０６でＹＥＳ）、タッチ操作認識処理を終了する。このように、図７（ｄ）の状態では、操作している手７００の入力位置Ｐ７はタッチ状態であるが、入力位置Ｐ８とペアリングされており、マルチタッチ操作が入力される可能性が高いとみなされるため、シングルタッチ操作の認識は実行されない。タッチ操作は認識されないので、投影内容は変更されない（ステップＳ３０９）。
【００６６】
次に、操作している手７００の指示位置Ｐ９と操作している手７０１の指示位置Ｐ１０がペアリングされ、共にタッチ状態である状態を、図７（ｅ）を用いて説明する。図７（ｅ）は時刻ｔ５の操作面１０１上の空間を側面から見た図である。距離画像センサ１０２から、時刻ｔ５の距離画像が取得され（ステップＳ３０２）、取得した距離画像から、操作している手７００と操作している手７０１の２つの手領域が検出される（ステップＳ３０３）。操作している手７００の手領域にＩＤ＝１を付与し、操作している手７０１の手領域にＩＤ＝２を付与する（ステップＳ３０４）。操作している手７００の手領域の入力位置としてＰ９が検出され、操作している手７０１の手領域の入力位置としてＰ１０が検出される。入力位置Ｐ７の座標（ｘ７，ｙ７，ｚ７）と、入力位置Ｐ８の座標（ｘ８，ｙ８，ｚ８）が取得される（ステップＳ３０５）。この時点で入力位置Ｐ９と入力位置Ｐ１０がペアリングされており、また、それぞれタッチ状態であるため、ステップＳ３０６及びステップＳ３０７の詳細説明は省略する。
【００６７】
入力位置Ｐ９とＰ１０によるタッチ操作を認識する処理（ステップＳ３０８）では、まず入力位置Ｐ９が処理対象となる（ステップＳ６０１）。入力位置Ｐ９はタッチ状態にあり（ステップＳ６０２でＹＥＳ）、入力位置Ｐ１０とペアリング済みであるので（ステップＳ６０３でＹＥＳ）、入力位置Ｐ１０もタッチ状態にある（ステップＳ６０４でＹＥＳ）。よって、入力位置Ｐ９とＰ１０はマルチタッチ操作として認識される（ステップＳ６０５）。例えば、２点間の距離の変化に基づく表示画像の拡大・縮小、あるいは２点の相対的な回転に基づく表示画像の回転操作などとして認識される。入力位置Ｐ９とＰ１０のマルチタッチ操作の認識結果により、表示が更新される（ステップＳ３０９）。
【００６８】
以上、図７を用いて説明したように、本実施形態では、第１閾値より高い位置に第２閾値を設けることで、入力位置がタッチ状態に遷移する前に、他の入力位置とのペアリングの要否の判定を行う。このため、マルチタッチ操作が意図されている可能性が高い状況で、ユーザが意図しないシングルタッチイベントが発生することを低減できる。
【００６９】
次に、図８（ａ）〜（ｄ）はユーザが指先を操作面１０１に接触（もしくは近接）させてマルチタッチ操作（２つの手での操作）を入力している状態から、マルチタッチ操作している指先を操作面１０１から離す様子を段階的に表す。ただし、入力位置の動きを解り易く示すため、図８（ｂ）〜（ｄ）では手８００及び手８０１の図示を省略する。予め第３閾値８０２と第４閾値８０３が設定されている。それぞれ操作面を基準とした高さで設定されている。一例として、第３閾値８０２＝２５ｍｍ、第４閾値＝１５ｍｍとする。各段階の特徴的な処理と、上述したフローチャート各ステップの対応関係を、ステップの番号を括弧書きすることで示す。
【００７０】
まず、図８（ａ）の状態は、操作面１０１に近接する、ユーザの操作している手８００の指先（入力位置Ｐ１１）と、操作している手８０１の指先（入力位置Ｐ１２）により、マルチタッチ操作が行われている。図８（ａ）は時刻ｔ６の操作面１０１上の空間を側面から見た図である。まず、距離画像センサ１０２から、時刻ｔ６の距離画像が取得され（ステップＳ３０２）、取得した距離画像から、操作している手８００と操作している手８０１の２つの手領域が検出される（ステップＳ３０３）。操作している手８００の手領域にＩＤ＝３を付与し、操作している手８０１の手領域にＩＤ＝４を付与する（ステップＳ３０４）。操作している手８００の手領域の入力位置Ｐ１１と、操作している手８０１の手領域の入力位置Ｐ１２が検出される。検出された入力位置に手領域と同じＩＤが付与され、Ｐ１１はＩＤ＝３、Ｐ１２はＩＤ＝４となる。入力位置Ｐ１１の座標（ｘ１１，ｙ１１，ｚ１１）と、入力位置Ｐ１２の座標（ｘ１２，ｙ１２，ｚ１２）が取得される（ステップＳ３０５）。
【００７１】
そして入力位置Ｐ１１と入力位置Ｐ１２がペアリングされて、ペアリング情報として入力位置ＩＤの３と４が関連付けて保持される（ステップＳ３０６）。入力位置Ｐ１１と入力位置Ｐ１２はタッチ状態であり（ステップＳ３０７）、マルチタッチ操作として認識され（ステップＳ３０８）、マルチタッチ操作の認識結果により、表示が更新される（ステップＳ３０９）。
【００７２】
次に、図８（ｂ）の状態は、ユーザの操作している手８００の指先（入力位置Ｐ１３）がタッチ状態であり、操作している手８０１の指先（入力位置Ｐ１４）がタッチ状態ではなくなった状態である。図８（ｂ）は時刻ｔ７の操作面１０１上の空間を側面から見た図である。ず、距離画像センサ１０２から、時刻ｔ７の距離画像が取得される（ステップＳ３０２）。図８（ａ）と同様に、取得した距離画像から手領域が検出され、検出された手領域から入力位置を取得される。操作している手８００の入力位置はＰ１３（ｘ１３，ｙ１３，ｚ１３）となり、操作している手８０１の入力位置はＰ１４（ｘ１４，ｙ１４，ｚ１４）となる。入力位置はいずれも第３閾値８０２より低い位置にあるので、ペアリング状態は維持される（ステップＳ３０６）。
【００７３】
タッチ状態判定処理（ステップＳ３０７）では、入力位置Ｐ１４の高さｚ１４が第４閾値８０３以上のため（ステップＳ５０３でＹＥＳ）、入力位置Ｐ１４のタッチ状態が解除される（ステップＳ５０４）。入力位置Ｐ１３は、ペアリング相手の入力位置Ｐ１４がタッチ状態でないため（ステップＳ６０４でＮＯ）、マルチタッチ操作ともシングルタッチ操作とも認識されず（ステップＳ３０８）、表示が更新されない（ステップＳ３０９）。このように、本実施形態では、ペアリング状態が維持されている限り、１つの入力位置がタッチ状態であってもシングルタッチ操作が認識されることはない。
【００７４】
次に、図８（ｃ）の状態は、ユーザの操作している手８００の指先（入力位置Ｐ１５）と、操作している手８０１の指先（入力位置Ｐ１６）が共にタッチ状態ではなくなった状態である。図８（ｃ）は時刻ｔ８の操作面１０１上の空間を側面から見た図である。距離画像センサ１０２から、時刻ｔ８の距離画像が取得される（ステップＳ３０２）。図８（ａ）と同様に、取得した距離画像から手領域が検出され、検出された手領域から入力位置を取得される。操作している手８００の入力位置はＰ１５（ｘ１５，ｙ１５，ｚ１５）となり、操作している手８０１の入力位置はＰ１６（ｘ１６，ｙ１６，ｚ１６）となる。入力位置Ｐ１５の高さｚ１５と入力位置Ｐ１６の高さｚ１６は、共に第３閾値８０２より小さいため（ステップＳ４０３でＮＯ）、ペアリング状態は継続される。入力位置Ｐ１５の高さｚ１５が第４閾値８０３以上のため（ステップＳ５０３でＹＥＳ）、入力位置Ｐ１５のタッチ状態は解除される（ステップＳ５０４）。
【００７５】
次に、図８（ｄ）の状態は、ユーザの操作している手８００の指先（入力位置Ｐ１７）と、操作している手８０１の指先（入力位置Ｐ１８）のペアリングが解除された状態である。図８（ｄ）は時刻ｔ９の操作面１０１上の空間を側面から見た図である。まず、距離画像センサ１０２から、時刻ｔ９の距離画像が取得される（ステップＳ３０２）。図８（ａ）と同様に、取得した距離画像から手領域が検出され、検出された手領域から入力位置を取得される。操作している手８００の入力位置はＰ１７（ｘ１７，ｙ１７，ｚ１７）となり、操作している手８０１の入力位置はＰ１８（ｘ１８，ｙ１８，ｚ１８）となる。特定処理（ステップＳ３０６）において、入力位置Ｐ１８の高さｚ１８が第３閾値８０２以上のため（ステップＳ４０３でＹＥＳ）、入力位置Ｐ１７と入力位置Ｐ１８のペアリングが解除される（ステップＳ４０４）。
【００７６】
以上、図８を用いて説明したように、本実施形態では、第４閾値より高い位置に第３閾値を設けることで、入力位置がタッチ操作の有効領域から出た後もペアリング継続の判定が行える。よって、シングルタッチ操作とマルチタッチ操作を両方認識可能な環境で、マルチタッチ操作後にユーザが意図しないシングルタッチイベントが発生することを低減できる。
【００７７】
＜変形例１＞
図６のフローチャートで示した通り、第１の実施形態のタッチ操作の認識処理では、処理対象の入力位置がタッチ状態であり、かつ、ペアリングされている場合、ペアリングされた他の入力位置もタッチ状態にあるか否かを判定した（ステップＳ６０４）。変形例１では、第１の実施形態の一連の処理のうちステップＳ６０４の処理を省略する。すなわち、２つの入力位置がペアリング状態にあるならば、片方がタッチ状態になった時点で（ステップＳ６０３ｄｅＹＥＳ）、マルチタッチ操作の認識を開始する（ステップＳ６０５）。２つの入力位置がペアリング状態にある場合、その後マルチタッチ操作が行われる可能性が高いため、程なく他方の入力位置のｚ座標がタッチ状態と判定される範囲に到達することが推定される。そこで変形例１は、他方の入力位置のｚ座標がタッチ状態と判定されるのを待たずに、２つの入力位置のｘｙ座標の動きに基づいてマルチタッチ操作の認識を開始する。変形例１では、ユーザが意図していないシングルタッチイベントが発生を抑制しつつ、ユーザにとってマルチタッチ操作に対する応答の感度が向上する効果を得られる。
【００７８】
ここで、図７（ｄ）と図８（ｂ）を用いて、第１の実施形態と、その変形例１との処理の違いを説明する。図７（ｄ）は、操作している手７００の指先（入力位置Ｐ７）と操作している手７０１の指先（入力位置Ｐ８）がペアリングされており、入力位置Ｐ７だけがタッチ状態にある時刻ｔ４の状態である。上述した通り、第１の実施形態では、図７（ｄ）の状態は、入力位置Ｐ７とＰ８はペアリングされており（ステップＳ３０６）、入力位置Ｐ７だけがタッチ状態である（ステップＳ６０４でＮＯ）ため、マルチタッチ操作は認識されない。それに対し、変形例１の場合、入力位置Ｐ７はタッチ状態であり（ステップＳ６０２でＹＥＳ）、ペアリング済みであることに応じ（ステップＳ６０３でＹＥＳ）、ステップＳ６０５でマルチタッチ操作が認識される。
【００７９】
一方、図８（ｂ）の状態は、ユーザの操作している手８００の指先（入力位置Ｐ１３）がタッチ状態であり、操作している手８０１の指先（入力位置Ｐ１４）がタッチ状態ではなくなった時刻ｔ７の状態である。入力位置Ｐ１３とＰ１４はペアリング済みである。上述した通り、第１の実施形態では、入力位置Ｐ１４がタッチ状態ではなくなったため（ステップＳ６０４でＮＯ）、マルチタッチ操作及びシングルタッチ操作のいずれも認識されない。それに対し、変形例１では、入力位置Ｐ１３が依然としてタッチ状態にあり（ステップＳ６０２でＹＥＳ）、入力位置Ｐ１４とペアリングされていることに応じ（ステップＳ６０３でＹＥＳ）、ステップＳ６０５のマルチタッチ操作の認識が実行される。
【００８０】
第２閾値７０２と第１閾値７０３は、異なる値ではあるが、図８の例では２０ｍｍと１０ｍｍであるように、有る程度近い値が設定される。従って、２つの入力位置が第２閾値７０２を下回り、かつ、片方は第１閾値７０３を下回った場合、他方の入力位置も第１閾値７０３に極近い位置に存在することが推定可能である。変形例１では、このような状況では、２つの入力位置が両方マルチタッチ操作に用いられる可能性が高いとみなし、その時点（そのフレーム）からマルチタッチ操作の認識を開始する。そのためユーザにとってはマルチタッチ操作開始時の応答が早くなる、多少指が操作面１０１から浮いてもマルチタッチ操作の継続が可能となるなど、認識感度が高くなったように感じられる場合がある。第１の実施形態と、その変形例１は、応答の速さを求めるか否かといったユーザの操作性の好みに応じて特定されてもよい。
【００８１】
＜変形例２＞
第１の実施形態では、距離画像からユーザの指先の三次元位置を取得し、操作面と指先の間の距離が所定値を下回ったことをタッチによる入力とみなすシステムを前提とした。それに対し、変形例２では、距離画像センサではなく、操作面に、物体の接触と近接を区別して検出可能な近接センサを設置することで入力位置を検出するシステムへの適用例を説明する。
【００８２】
図９は、変形例２における情報処理装置のメイン処理の流れを表すフローチャートである。図３との違いは、ステップＳ３０２〜ステップＳ３０５の距離画像に対する処理の代わりに、ステップＳ９０１が実行されることである。なお、他のステップで実行される処理は第１の実施形態と同じため、説明を省略する。
【００８３】
ステップＳ９０１では、近接センサにより入力位置を検出する。入力位置が検出された場合（ステップＳ９０１でＹＥＳ）入力位置の位置情報を保持し、ステップＳ３０６へ進む。取得される入力位置の位置情報は（ｘ，ｙ）座標と高さ情報とする。高さ情報は、操作面に接触している状態と、接触していないが近接している状態の２つの状態とする。例えば近接センサが静電容量方式のセンサである場合、厳密には指先の高さを検出しているわけではない。例えば、入力位置で生じる静電容量の変化の大きさに閾値を設け、閾値以上の変化がある場合には操作体が接触している、閾値より小さい変化は操作体が接触するに至っていないが近接しているとみなすことで、接触と近接を区別する。例えば、操作面に接触している状態を“１”とし、操作面に近接している状態を“０”とする２値を高さに相当する情報として保持する。高さに相当する情報は、多値や数値で保持してもよい。ただし、第１実施形態と同様、高さ情報は操作面からの距離に相当する情報であればよく、鉛直方向に限定される訳ではない。例えば、操作面として任意の壁面が設定される場合、操作面からの距離は水平方向の座標軸での座標値に相当する場合もある。
【００８４】
図１１（ａ）は、変形例２第１閾値で扱われる３つの閾値を概念的に表す図である。上記のように静電容量方式で近接検知を行うセンサでは、操作体によって近接が検知できる高さが異なっている場合もある。ただし図１１（ａ）では、変形例２の概念を視覚的に示すため、便宜的に一定の距離の閾値１１００より操作面に近い範囲が、近接センサが操作体の位置を検出可能な範囲であるとする。また、操作体が操作面に物理的に接触した、つまり操作体と操作面の間の距離を閾値１１０１とする。閾値１１００は、第１の実施形態における第２閾値に対応する役割をもつものであり、閾値１１０１は、第１の実施形態における第１閾値に対応する役割をもつものである。第２閾値第１閾値
図１１（ａ）のように設定することで、変形例２では、近接している状態にある入力位置が複数検出されている時点でペアリングを行い、ペアリングされた入力位置のうちいずれか１つだけがタッチ状態に移行した時点では、シングルタッチ操作を行わない。そして、全ての入力位置がタッチ状態に移行したことに応じてマルチタッチ操作の認識を行う。このように、第１の実施形態は、距離画像センサを利用するテーブルトップインタフェースだけでなく、近接センサを利用するシステムにも適用可能である。近接センサを使用することで、装置の設置条件や使用条件等により、装置のコストダウンや入力位置の位置検出精度の向上が可能になる場合がある。
【００８５】
＜変形例３＞
変形例３では、上述した距離画像センサや近接センサではなく、操作面に、物体による押圧を検出可能な感圧センサを設置することで入力位置を検出するシステムへの適用例を示す。ここでは１つの入力位置に圧力がかけられた状態で入力される操作と、複数の入力位置に圧力がかけられた状態で入力される操作を区別して認識可能であることが前提となる。
【００８６】
図１０は、本変形例における情報処理装置のメイン処理の流れを表すフローチャートである。図３との違いは、ステップＳ３０２〜ステップＳ３０５の距離画像に対する処理の代わりに、ステップＳ９０１が実行されることである。なお、他のステップで実行される処理は第１の実施形態と同じため、説明を省略する。
【００８７】
ステップＳ１００１では、感圧センサにより操作面上の入力位置を検出する。入力位置が検出された場合（ステップＳ１００１でＹＥＳ）入力位置の位置情報を保持し、ステップＳ３０６へ進む。入力位置の位置情報は、（ｘ，ｙ）座標と接触圧力情報とする。接触圧力情報は、操作面に接触している状態と、操作面に接触し、更に押しこんでいる（基準を超える押圧力を加えている）状態の２つの状態とする。例えば、操作面に接触している状態を“０”とし、操作面に近接し押しこんでいる状態を“１”とする２値で保持する。なお、接触圧力情報に関しては、多値や数値で保持してもよい。
【００８８】
図１１（ｂ）は、変形例３で利用される２つの閾値第１閾値第２閾値を概念的に表す図である。上記のように感圧センサでは、操作体によって入力位置に加えられた圧力を検出するものであり、操作面が押しこまれた距離を検出するものではない。ただし図１１（ｂ）では、変形例３の概念を視覚的に示すため、便宜的に操作面に圧力が加えられることで概念的に操作面が押しこまれる距離に閾値を設ける。ここでは操作体が操作面に物理的に接触した段階を表す距離０を第２閾値１１０２とし、さらに基準以上の押圧力が加えられたときに押し込まれる距離を第１閾値１１０３として設定する。閾値１１０２は、第１の実施形態における第２閾値に対応する役割をもつものであり、閾値１１０３は、第１の実施形態における第１閾値に対応する役割をもつものである。ただし、変形例３の場合、閾値１１０２から閾値１１０３に至るまでの間でも、タッチ入力は認識されている。押し込まれる距離が第１閾値１１０３以上となるのは、入力位置で加えられた押圧力が基準となる圧力以上となるときである。なお、ユーザの操作感を考慮し、閾値１１０２第２閾値は操作面近傍の範囲で、閾値１１０３第１閾値は入力位置の接触圧力が検出できる範囲で、それぞれ調整されることが好ましい。ただし、閾値の調整において、閾値１１０３第１閾値は閾値１１００第２閾値よりも大きな接触圧力に対応する値が設定される。このように、第１の実施形態は、距離画像センサを利用するテーブルトップインタフェースだけでなく、感圧センサを利用するシステムにも適用可能である。特に、感圧センサで各入力位置における操作面に対する押圧力の大きさを検出し、１つの入力位置でのみ基準を超える押圧力が検出される場合と複数の入力位置で基準を超える押圧力が検出される場合とで、認識する操作を異ならせる場合に効果的である。変形例３によれば、複数の入力位置に押圧力を加えるタイミングがずれ、一時的に一部の入力位置でしか基準を超える押圧力が検出されない場合でも、ユーザに意図に沿わない操作を誤って認識してしまう問題を低減できる。
【００８９】
なお、上述した第１実施形態およびその変形例の説明の中で、閾値を用いる判定処理において「以上」又は「以下」という表現を用いたが、判定対象の距離が各閾値と一致する場合をいずれの判定結果に含めるかは、閾値の大きさとともに適宜設定されればよい。例えば、ステップＳ５０６でタッチ状態を判定する第１閾値の処理については、操作面から入力位置までの距離が少なくとも第１閾値を下回る態をタッチ状態と認識すればよい。ステップＳ４０６での第２閾値の場合も同様である。また例えば、ステップＳ５０３でタッチ状態の解除を判定する第４閾値の処理については、操作面から入力位置までの距離が少なくとも第４閾値を上回ることをタッチ状態の解除と認識すればよい。ステップＳ４０３での第３閾値の場合も同様である。
【００９０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９１】
２１０  三次元情報取得部
２１１  操作体取得部
２１２  入力位置取得部
２１３  特定部
２１４  認識部
２１５  表示制御部
【図１】
2017228216.tif 000003
【図２】
2017228216.tif 000004
【図３】
2017228216.tif 000005
【図４】
2017228216.tif 000006
【図５】
2017228216.tif 000007
【図６】
2017228216.tif 000008
【図７】
2017228216.tif 000009
【図８】
2017228216.tif 000010
【図９】
2017228216.tif 000011
【図１０】
2017228216.tif 000012
【図１１】
2017228216.tif 000013