(57)【要約】【課題】ユーザのタップ操作を適正に認識し得る仕組みを提供する。【解決手段】操作面に表示された表示ボタン７０１に対する操作体の操作を認識する情報処理装置において、操作体の複数の操作位置Ｐ１〜Ｐ６に基づいて、操作体が操作面に対して高さ方向の第１の距離よりも近づいた後に第２の距離よりも遠ざかるタップ操作を判定し、タップ操作に係る複数の操作位置Ｐ１〜Ｐ６で定まる操作面における二次元の操作軌跡が表示ボタン７０１の領域内に含まれる場合に、表示ボタン７０１に対する操作体のタップ操作を認識する。【選択図】図７
2019016029.tif 000002
【特許請求の範囲】
【請求項１】
操作面に表示された表示オブジェクトに対する操作体の操作を認識する情報処理装置であって、
前記操作体の操作位置を取得する取得手段と、
前記取得手段で取得された複数の前記操作位置に基づいて、前記操作体が前記操作面に対して高さ方向の第１の距離よりも近づいた後に第２の距離よりも遠ざかる一連の操作を判定する判定手段と、
前記一連の操作に係る前記複数の操作位置で定まる前記操作面における二次元の操作軌跡が前記表示オブジェクトの領域内に含まれる場合に、前記表示オブジェクトに対する前記操作体の操作を認識する認識手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記認識手段は、前記操作軌跡のうちの少なくとも一部が前記表示オブジェクトの領域内に重畳した場合に、前記表示オブジェクトに対する前記操作体の操作を認識することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、最初に前記第１の距離よりも近づいた前記操作位置と、最初に前記第２の距離よりも遠ざかった前記操作位置との前記操作面における距離が、所定の閾値以下である場合に、前記一連の操作を判定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記判定手段は、最初に前記第１の距離よりも近づいた前記操作位置における時刻から、最初に前記第２の距離よりも遠ざかった前記操作位置における時刻までの時間が、所定の閾値以下である場合に、前記一連の操作を判定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記認識手段は、前記操作軌跡が複数の前記表示オブジェクトの領域内に重畳した場合には、前記操作軌跡の開始の前記操作位置に最も近い前記表示オブジェクトに対する前記操作体の操作を認識することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記認識手段は、前記判定手段において複数の前記一連の操作が判定された場合には、最初に判定された前記一連の操作に係る前記複数の操作位置で定まる前記操作面における前記操作軌跡を用いて、前記認識を行うことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記判定手段は、所定の条件を満たす複数の前記一連の操作を一体操作と更に判定し、
前記認識手段は、前記判定手段において前記一体操作として判定された前記複数の一連の操作について、前記認識を行うことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記所定の条件は、前記複数の一連の操作のうち、第１の一連の操作における終了の前記操作位置と、前記第１の一連の操作の後になされた第２の一連の操作における開始の前記操作位置との前記操作面における距離が、所定の閾値以下である条件を含むことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記所定の条件は、前記複数の一連の操作のうちの第１の一連の操作の後になされた第２の一連の操作における開始の前記操作位置と、前記第２の一連の操作における終了の前記操作位置との前記操作面における距離が、所定の閾値以下である条件を含むことを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記所定の条件は、前記複数の一連の操作のうち、第１の一連の操作における終了の前記操作位置における時刻から、前記第１の一連の操作の後になされた第２の一連の操作における開始の前記操作位置における時刻までの時間が、所定の閾値以下である条件を含むことを特徴とする請求項７に記載の情報処理装置。
【請求項１１】
前記所定の条件は、前記複数の一連の操作のうちの第１の一連の操作の後になされた第２の一連の操作における開始の前記操作位置における時刻から、前記第２の一連の操作における終了の前記操作位置における時刻までの時間が、所定の閾値以下である条件を含むことを特徴とする請求項７に記載の情報処理装置。
【請求項１２】
前記認識手段で前記操作体の操作を認識した前記表示オブジェクトの表示を、当該認識する前の表示状態から変更する制御を行う表示制御手段を更に有することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記判定手段で判定された前記一連の操作に係る前記操作軌跡を保持する保持手段を更に有し、
前記認識手段は、前記保持手段により保持された前記操作軌跡を用いて、前記認識を行うことを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
操作面に表示された表示オブジェクトに対する操作体の操作を認識する情報処理装置の制御方法であって、
前記操作体の操作位置を取得する取得ステップと、
前記取得ステップで取得された複数の前記操作位置に基づいて、前記操作体が前記操作面に対して高さ方向の第１の距離よりも近づいた後に第２の距離よりも遠ざかる一連の操作を判定する判定ステップと、
前記一連の操作に係る前記複数の操作位置で定まる前記操作面における二次元の操作軌跡が前記表示オブジェクトの領域内に含まれる場合に、前記表示オブジェクトに対する前記操作体の操作を認識する認識ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１５】
請求項１乃至１３のいずれか１項に記載の情報処理装置における各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作面に表示された表示オブジェクトに対する操作体の操作を認識する情報処理装置及びその制御方法、並びに、当該情報処理装置としてコンピュータを機能させるためのプログラムに関するものである。
【背景技術】
【０００２】
近年、各種のカメラやセンサを使って検出した人の手やペン等の操作体の動きや位置に応じて、ユーザインターフェース（ＵＩ）を操作するジェスチャー認識技術を用いた機器操作が広まりつつある。例えば、操作面であるテーブル面に画像やＵＩを映し、その画像やＵＩを手やペン等の操作体で触れて操作するテーブルトップインタフェースでは、タッチパネルを用いずに、指先やペン先等の操作体の端部がテーブルにタッチされた状態を検出する手法が使用され始めている。
【０００３】
特許文献１では、ユーザが指先を操作面に接触もしくは近接させ、その後に指先を操作面から遠ざける一連の動作であるタップ操作により、操作面に表示されているＵＩ画面を操作する技術が記載されている。この特許文献１の技術では、タップ操作において、指先の動きが静止したとみなされる位置（指先の動きが一番遅くなる位置）を、タップ操作の操作位置とする。そして、特許文献１では、タップ操作の操作位置を決める理由として、指先が操作面に最も近接する時に指先の動きが一番遅くなると想定している。即ち、特許文献１では、指先が最も操作面に近接する位置により、操作面に表示されているＵＩ画面を操作することができ、ユーザに快適な操作性を提供できることが想定されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−４３１５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、特許文献１では、操作体である手の指先が最も操作面に近接する位置に基づき、操作面に表示されているＵＩ画面を操作（タップ操作）することを想定したものであった。しかしながら、この特許文献１の技術では、操作体である手の指先と操作面との距離を測定する際に測定ノイズの影響を受けて、指先が最も操作面に近接する位置を精度良く測定できない場合があった。そして、この場合、ユーザのタップ操作を適正に認識することが困難となる問題が生じ得る。
【０００６】
本発明は、このような問題点に鑑みてなされたものであり、ユーザのタップ操作を適正に認識し得る仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、操作面に表示された表示オブジェクトに対する操作体の操作を認識する情報処理装置であって、前記操作体の操作位置を取得する取得手段と、前記取得手段で取得された複数の前記操作位置に基づいて、前記操作体が前記操作面に対して高さ方向の第１の距離よりも近づいた後に第２の距離よりも遠ざかる一連の操作を判定する判定手段と、前記一連の操作に係る前記複数の操作位置で定まる前記操作面における二次元の操作軌跡が前記表示オブジェクトの領域内に含まれる場合に、前記表示オブジェクトに対する前記操作体の操作を認識する認識手段と、を有する。
また、本発明は、上述した情報処理装置の制御方法、及び、上述した情報処理装置における各手段としてコンピュータを機能させるためのプログラムを含む。
【発明の効果】
【０００８】
本発明によれば、ユーザのタップ操作を適正に認識することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る情報処理装置を含むテーブルトップインタフェースシステムの概略構成と位置情報の定義の一例を示す図である。
【図２】本発明の実施形態に係る情報処理装置の内部構成の一例を示す図である。
【図３】本発明の実施形態に係る情報処理装置の制御方法における処理手順の一例を示すフローチャートである。
【図４】図３のステップＳ３０７における詳細な処理手順の一例を示すフローチャートである。
【図５】図３のステップＳ３０８における詳細な処理手順の一例を示すフローチャートである。
【図６】図３のステップＳ３０９における詳細な処理手順の一例を示すフローチャートである。
【図７】本発明の実施形態を示し、図１に示す操作面（ｘｙ平面）に投影されたＵＩ画面内の表示ボタン及び当該表示ボタンに対するタップ操作の一例を示す図である。
【図８】本発明の実施形態を示し、図１に示す操作面から上のｚ方向の空間における各操作位置の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、図面を参照しながら、本発明を実施するための形態（実施形態）について説明する。なお、以下に説明する実施形態は、本発明を実施するための１つの形態を例示したものであり、本発明はこの実施形態に限定されるものではない。
【００１１】
図１は、本発明の実施形態に係る情報処理装置１１０を含むテーブルトップインタフェースシステム１００の概略構成と位置情報の定義の一例を示す図である。
【００１２】
まず、図１（ａ）について説明する。
図１（ａ）は、テーブルトップインタフェースシステム１００の概略構成の一例を示す図である。テーブルトップインタフェースシステム１００は、図１（ａ）に示すように、情報処理装置１１０、距離画像センサ１２０、可視光カメラ１３０、プロジェクタ１４０、及び、操作面１５０を有して構成されている。
【００１３】
操作面１５０は、テーブルトップインタフェースシステム１００におけるテーブル面に相当する。ユーザは、手Ｈの指先で操作面１５０をタッチすることにより、タッチ操作を入力することが可能である。ただし、本実施形態においては、操作面１５０にタッチセンサは搭載されていない。そのため、情報処理装置１１０は、ユーザが操作する指やペン等の操作体が操作面１５０と実際に接触したかではなく、接触したと見なせる程度に近接した状態をタッチ操作入力中の状態（以下、「タッチ状態」と称する）として検出することにより、操作体による操作を認識するものとする。
【００１４】
図１（ａ）に示すテーブルトップインタフェースシステム１００では、操作面１５０の外周部の上方に、操作面１５０を斜め上方から見下ろすようにして距離画像センサ１２０が設置されている。ここで、距離画像とは、各画素の値に、当該距離画像を撮像する撮像手段の基準位置（例えばレンズ中心等）から、当該画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ１２０が撮像する距離画像の画素値には、距離画像センサ１２０から、操作面１５０或いはその上方に存在する物体表面までの距離が反映される。距離画像センサ１２０で撮像された距離画像は、情報処理装置１１０に距離画像として入力される。
【００１５】
なお、本実施形態では、距離画像センサ１２０として、赤外光の反射時間（または反射パターン）によって距離情報を取得する方式の距離画像センサを利用する。ただし、例えば、ステレオカメラシステムや、赤外光発光素子と赤外受光素子を設置することにより、距離画像を得る構成とすることも可能である。また、操作面１５０を含む空間において、操作体の高さ方向（ｚ方向）を含む三次元の位置情報が得られる手段であれば、距離画像を撮像する形態に限らず、例えば静電センサや感圧センサや温度センサにより三次元の位置情報を得る形態でも、本発明に適用可能である。なお、操作面１５０は、タッチパネルディスプレイにより構成されていてもよい。
【００１６】
情報処理装置１１０は、本実施形態においては、距離画像センサ１２０から取得した距離画像を解析することにより、ユーザの手Ｈや操作面１５０等の三次元位置を取得し、入力される操作を認識する処理を行う。したがって、ユーザは、操作面１５０上の空間（操作面１５０と距離画像センサ１２０との間の空間）のうち、距離画像センサ１２０によって撮像可能な範囲において、手Ｈ等の操作体を動かすことにより空間ジェスチャー操作を入力することが可能である。また、同様に、ユーザは、手Ｈ等の操作体と操作面１５０との近接状態に基づく操作入力も可能である。
【００１７】
また、図１（ａ）に示すテーブルトップインタフェースシステム１００では、操作面１５０を斜め上方から見下ろすようにして可視光カメラ１３０が設置されている。情報処理装置１１０は、可視光カメラ１３０を制御して、操作面１５０に載置された物体を撮像して、その読み取り画像を得る書画カメラとして機能することができる。したがって、情報処理装置１１０は、可視光カメラ１３０によって得られる可視光画像や、距離画像センサ１２０によって得られる距離画像に基づいて、操作面１５０上の空間に存在する物体を検出し、さらに識別を行う。ここで、検出される物体には、例えば、ユーザの手、紙媒体や本等のドキュメントや、その他の立体物を含む。ただし、図１（ａ）に示すテーブルトップインタフェースシステム１００の場合、距離画像センサ１２０と可視光カメラ１３０の画角には、テーブルの周囲に存在するユーザの頭部は含まれない。そのため、得られた距離画像では、その画像端部がユーザの腕（肩から先の部分）の何処かの一部と交差する。
【００１８】
また、図１（ａ）に示すテーブルトップインタフェースシステム１００では、操作面１５０を斜め上方からＵＩ画面１５２を投影するプロジェクタ１４０が設置されている。図１（ａ）に示すテーブルトップインタフェースシステム１００では、ユーザは、投影されたＵＩ画面１５２に含まれる表示オブジェクト（例えば表示ボタン）に対して、タッチや空間ジェスチャーによる操作入力を行う。
【００１９】
上述したように、本実施形態では、手Ｈの検出及び操作の認識には、距離画像センサ１２０で取得した距離画像を用いる。この距離画像を用いることで、プロジェクタ１４０の投影光の影響でユーザの手Ｈの色が変化しても影響を受け難いという利点がある。テーブルトップインタフェースシステム１００の表示装置としては、プロジェクタ１４０に替えて、操作面１５０を液晶ディスプレイとする等で構成することもできる。その場合、可視光カメラ１３０によって得られた可視光画像から肌色領域を検出する等して画像から人の手Ｈを検出する形態を用いても、投影光の影響は受けずに手Ｈの検出が可能である。
【００２０】
なお、操作面１５０を上方から見た画像が得られる構成であれば、必ずしも、距離画像センサ１２０及び可視光カメラ１３０自体が上方に設置されている必要はなく、例えば、ミラーを用いて反射光を撮像するように構成してもよい。また、プロジェクタ１４０も同様に、図１（ａ）に示す例では、操作面１５０の斜め上方から見下ろすように操作面１５０にＵＩ画面１５２を投影しているが、異なる方向に向けて投影された投影光を、ミラー等を利用して操作面１５０に反射させてＵＩ画面１５２を投影してもよい。また、操作面１５０が壁面やホワイトボードのような鉛直方向に沿った面に設置される場合も、同様である。
【００２１】
また、本実施形態では、操作面１５０上の三次元空間に、図１（ａ）に示すｘ軸、ｙ軸及びｚ軸の座標軸を定義し、原点１５１を基準とした位置情報を扱うものとする。具体的に、図１（ａ）に示す例では、操作面１５０に平行な二次元の面をｘｙ平面とし、操作面１５０に直交し上方に伸びる方向（法線方向）をｚ軸の正方向としている。この際、ｚ軸方向は、実世界座標系での高さ方向に相当する。しかしながら、本実施形態は、ホワイトボードや壁面等の水平ではない面を操作面１５０とするシステムや、操作面１５０が凹凸を有する場合や、ＭＲを利用して生成された仮想面である場合にも、適用可能である。
【００２２】
続いて、図１（ｂ）について説明する。
図１（ｂ）は、図１（ａ）に示す距離画像センサ１２０によって撮像される距離画像１６０の一例を示し、位置情報の定義を説明するための図である。
本実施形態における距離画像１６０は、受光された反射光の位相遅れを計測することにより、画素毎に、反射するまでにかかった時間に対応する被写体表面までの距離を画素値に反映させたものである。ただし、ここでは、画素値に反映された距離情報は省略し、被写体のエッジのみを明示する。
【００２３】
上述したように、距離画像センサ１２０は、操作面１５０を斜め上方から見下ろすように距離画像１６０を撮像するため、距離画像１６０の画素値が表す距離情報は、距離画像センサ１２０から操作面１５０を見下ろす方向の奥行き方向の距離である。言い換えれば、距離画像１６０の各画素値は、操作面１５０からの高さ方向の位置情報（ｚ座標）を得るための情報を含む。ただし、本実施形態では、距離画像センサ１２０は、ｚ軸に対して斜めに角度をもつように設置されている。したがって、本実施形態では、距離画像１６０の画素値をそのままｚ座標として利用するのではなく、後述するようにセンサや設置環境に応じたパラメータを使った座標変換を施す。
【００２４】
図１（ｂ）に示す距離画像１６０では、図１（ａ）に示す操作面１５０及び原点１５１に対応する箇所を示している。この距離画像１６０には、図１（ｂ）に示すように、ｕ軸及びｖ軸による二次元座標系が設定される。また、図１（ｂ）に示す距離画像１６０において、斜線で示す手領域１６１は、距離画像１６０に写っているユーザの手Ｈの像である。また、画像端１６３は、距離画像センサ１２０の画角に相当するものである。また、図１（ｂ）の例では、距離画像１６０の解像度は、６４０［ｄｏｔ］×４８０［ｄｏｔ］であるものとする。また、図１（ｂ）に示す距離画像１６０では、ユーザの手Ｈの指先である操作位置１６２の当該距離画像内の位置座標を（ｕ，ｖ）とし、距離画像センサ１２０から操作位置１６２までの距離に相当する画素値をｄとする。
【００２５】
本実施形態の情報処理装置１１０は、このように距離画像１６０内で定義される位置情報に対して、距離画像センサ１２０のレンズ特性及び操作面１５０との相対位置関係等に基づく座標変換を施す。これにより、各画素の座標をテーブルに定義された実世界上の座標系にマッピングし、操作位置１６２について実空間の三次元位置（ｘ，ｙ，ｚ）を取得することができる。この座標変換に利用する変換行列は、例えば、距離画像センサ１２０が設置された時に、予め調整作業を行って取得する。なお、三次元座標の算出に用いる操作位置１６２における距離ｄは、単一の画素値だけでなく、手領域１６１内で操作位置１６２の近傍の複数の画素を対象に、平均化処理を実施する。
【００２６】
また、本実施形態の情報処理装置１１０は、ｚ座標に閾値処理を行うことにより、テーブルの表面である操作面１５０よりも高い位置に存在する被写体が写る領域を手領域１６１として検出する。そして、本実施形態の情報処理装置１１０は、検出される手領域１６１のそれぞれに対して１箇所の操作位置１６２を検出する。また、本実施形態において、操作位置１６２とは、ユーザが指先を使って指し示していると推定される位置の座標である。本実施形態では、前提として、ユーザが操作入力のために点を指定する場合には、１本だけ手Ｈの指を伸ばした「指さしポーズ」をとることを規定している。これは、１本指を延ばすポーズが、多くの人にとっては１点を指し示すのに自然な体勢と考えられるからである。指差しポーズであれば手Ｈの端部が操作位置１６２に相当するため、本実施形態では、手領域１６１のうちの端部を操作位置１６２として特定する。具体的に、情報処理装置１１０は、距離画像１６０から手領域１６１を検出し、検出した手領域１６１のうちの画像端１６３から最も遠い位置に存在する画素を示す座標を、操作位置１６２に相当する１点として検出する。なお、操作位置１６２の特定方法は、これに限定されるものではなく、例えば、手領域１６１から手Ｈの五指を検出し、所定の指の端部を特定して操作位置１６２としてもよい。
【００２７】
また、本実施形態では、フレームレートに従って繰り返し撮像される距離画像１６０の各フレームにおいて、手領域１６１が画像端１６３と交差する部分の中央の位置を、手Ｈの侵入位置１６４として定義する。この侵入位置１６４も、他の位置と同様に、距離画像１６０内に定義された位置情報を変換することにより、実空間内での三次元位置情報として取得される。また、本実施形態の情報処理装置１１０は、距離画像１６０から複数の手領域１６１が検出された場合、それぞれの手領域１６１について、操作位置１６２及び侵入位置１６４を検出する。そして、本実施形態の情報処理装置１１０は、複数の手領域１６１のそれぞれについて操作入力を認識する。
【００２８】
以下、本明細書では、ユーザが操作入力に用いる操作体及びその端部の一例として、ユーザの手１０６及びその指先を適用した場合について説明する。ただし、本実施形態では、操作体として、手指だけではなく、例えばスタイラスやロボットアーム等の器具を利用する場合にも適用可能である。なお、操作体の端部とは、操作入力のために操作位置１６２を指し示すのに用いられる部位を示すが、操作体の一部に属し、操作入力が可能な部位であれば、突起形状の端部に限定されるものではない。
【００２９】
次に、情報処理装置１１０の内部構成について説明する。
図２は、本発明の実施形態に係る情報処理装置１１０の内部構成の一例を示す図である。図２において、図１に示す構成と同様の構成については同じ符号を付している。
【００３０】
まず、図２（ａ）について説明する。
図２（ａ）は、情報処理装置１１０の内部のハードウェア構成の一例を示す図である。情報処理装置１１０は、図２（ａ）に示すように、中央処理ユニットであるＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、記憶装置２１４、及び、システムバス２１５の各ハードウェア構成を有している。
【００３１】
ＣＰＵ２１１は、ＲＡＭ２１３をワークメモリとして、ＲＯＭ２１２や記憶装置２１４に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断等を行う。さらに、ＣＰＵ２１１は、システムバス２１５に接続された各構成を制御する。また、ＣＰＵ２１１は、各処理の実行結果をＲＡＭ２１３に保持する。
【００３２】
記憶装置２１４は、ハードディスクドライブや各種のインタフェースによって接続された外部記憶装置等であり、本実施形態の操作認識処理に係るプログラムや各種のデータを記憶する。
【００３３】
また、距離画像センサ１２０は、ＣＰＵ２１１の制御に従って、アイテム（表示オブジェクト）が表示されるテーブルとアイテムを操作するユーザの手Ｈを含む、操作面１５０上の空間の距離画像を撮像し、撮影した距離画像をシステムバス２１５に出力する。本実施形態では、距離画像の取得方法として、環境光や操作面１５０の表示の影響が小さい反射時間方式（Ｔｉｍｅ−ｏｆ−Ｆｌｉｇｈｔ方式）を基に説明を行うが、用途に応じて視差方式や赤外パターン方式等を利用することも可能である。また、プロジェクタ１４０は、ＣＰＵ２１１の制御に従って、操作面１５０に操作対象となるアイテム（表示オブジェクト）を投影表示する。なお、可視光カメラ１３０、距離画像センサ１２０、プロジェクタ１４０は、それぞれ、情報処理装置１１０に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１１０と協同してテーブルトップインタフェースシステム１００を構成する。ただし、これらのデバイスは、情報処理装置１１０に一体化されていても構わない。なお、距離画像センサ１２０は、静電センサや感圧センサや温度センサ等でもよく、操作位置１６２の三次元の位置情報や操作位置１６２の接触圧力や接触面積等の接触情報を取得する。
【００３４】
続いて、図２（ｂ）について説明する。
図２（ｂ）は、情報処理装置１１０の内部のソフトウェア構成（機能構成）の一例を示す図である。情報処理装置１１０は、図２（ｂ）に示すように、距離画像取得部２２１、操作位置取得部２２２、操作判定部２２３、操作軌跡保持部２２４、認識部２２５、及び、表示制御部２２６の各ソフトウェア構成（機能構成）を有している。この図２（ｂ）に示す各構成部２２１〜２２６は、図２（ａ）に示すＣＰＵ２１１が、例えばＲＯＭ２１２に格納されたプログラムをＲＡＭ２１３に展開し、当該プログラムを実行することにより実現される。なお、ＣＰＵ２１１がプログラムを実行することにより実現される図２（ｂ）に示す各構成部２２１〜２２６の代替としてハードウェアを構成する場合には、この図２（ｂ）に示す各構成部２２１〜２２６に対応させた演算部や回路を構成すればよい。
【００３５】
距離画像取得部２２１は、距離画像センサ１２０によって撮像された距離画像１６０をフレームレートに従った一定時間毎に距離画像センサ１２０から取得し、これを保持する。なお、距離画像取得部２２１が距離画像センサ１２０から取得する対象は、実際には、距離画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」として説明する。
【００３６】
操作位置取得部２２２は、距離画像取得部２２１によって取得された距離画像１６０の各画素について、距離情報に基づく閾値判定を施し、当該距離画像中の手領域（腕を含む）１６１を検出する。ここで、手領域１６１とは、入力された距離画像１６０のうち、ユーザが操作体として利用する手Ｈが被写体として写っている画素群である。そして、操作位置取得部２２２は、検出した手領域１６１に手ＩＤを付与し、これを保持する。ここで、操作位置取得部２２２は、異なる距離画像のフレームで検出された手領域が同一の手領域１６１とみなされた場合には、同じ手ＩＤを付与する。同一の手領域１６１とみなされる条件としては、時間的に近い距離画像のフレームで検出され、かつ手領域１６１の侵入位置１６４の距離が近いことである。一方、操作位置取得部２２２は、同一の手領域１６１とみなされない場合には、手領域１６１が検出された順番に異なる数字を昇順に付与する（手ＩＤ＝１，２，・・・）。さらに、操作位置取得部２２２は、検出された手領域１６１の輪郭情報に基づき、手領域１６１の端部に当たる１点を操作位置１６２として検出し取得する。本実施形態では、操作位置取得部２２２は、手領域１６１の輪郭のうち、画像端１６３から最も遠くに存在する画素を示す座標を、操作位置１６２として検出し取得する。この際、操作位置取得部２２２は、手領域１６１と画像端１６３とが交差する部分の中心を手領域の侵入位置１６４とし、この侵入位置１６４から最も遠くに存在する画素を示す座標を、操作位置１６２として検出し取得する。そして、操作位置取得部２２２は、検出した操作位置１６２の距離画像１６０における位置情報を、実世界におけるｘｙｚ座標に変換し、これに手領域１６１と同じ手ＩＤを付与して保持する。なお、本実施形態においては、静電センサや感圧センサ等により得られた、操作面１５０に近接する指先位置の三次元の位置情報（座標値）や接触情報（接触圧力や接触面積等）を、操作位置１６２の位置情報として取得し保持するようにしてもよい。
【００３７】
操作判定部２２３は、操作位置取得部２２２により取得された操作位置１６２の、操作面１５０に対する近接の度合い（高さ方向であるｚ方向の近接度合い）に応じて、操作位置１６２がタッチ状態であるか否かを判定し、その判定結果を保持する。例えば、操作位置１６２と操作面１５０との間の距離（高さに相当するｚ座標）が所定の閾値（第１の距離）よりも小さい場合には、タッチ入力中であるタッチ状態であると判定する。そして、操作判定部２２３は、タッチ状態の操作位置１６２により指示された操作面１５０の位置を追跡することにより、タッチ、リリース、ムーブ、フリック、ピンチ、ローテート等のタッチ操作を判定する。なお、操作位置１６２により指示された操作面１５０上の位置としては、操作位置１６２に基づく操作面１５０に平行な二次元の位置情報（ｘｙ座標）とする。
【００３８】
操作軌跡保持部２２４は、操作判定部２２３により判定された、タッチ状態の開始から終了までの操作位置１６２の位置情報やその取得時刻を、タッチ操作の操作軌跡として保持する。具体的に、本実施形態においては、操作軌跡保持部２２４は、タッチ操作の操作軌跡として、操作体である手Ｈの指先が操作面１５０に対して高さ方向の第１の距離よりも近づいた後に第２の距離よりも遠ざかる一連の操作であるタップ操作の操作軌跡を保持する。また、操作軌跡保持部２２４に保持されるタップ操作の操作軌跡は、タップ操作に係る複数の操作位置１６２で定まる操作面１５０における二次元の操作軌跡である。
【００３９】
認識部２２５は、操作軌跡保持部２２４で保持したタッチ操作の操作軌跡と、操作面１５０に投影されたＵＩ画面１５２内の表示ボタン等の表示オブジェクトとの位置関係に応じて、当該表示オブジェクトに対する操作体である手Ｈの指先の操作を認識する。具体的に、本実施形態においては、認識部２２５は、操作軌跡保持部２２４で保持したタップ操作の操作軌跡が操作面１５０に投影された表示ボタン等の表示オブジェクトの領域内に含まれる場合に、当該表示オブジェクトに対する操作体である手Ｈの指先の操作を認識する。
【００４０】
表示制御部２２６は、認識部２２５から通知されるタッチ操作の認識結果（タッチイベント等）を反映した描画データを生成し、これをプロジェクタ１４０に出力することにより、操作面１５０に表示するＵＩ画面１５２を表示制御する。この際、ユーザによるタッチ操作は、操作位置１６２や操作位置１６２の動き等によって定義され、情報処理装置１１０に対して何らかの指示を入力することができるものである。
【００４１】
図３は、本発明の実施形態に係る情報処理装置１１０の制御方法における処理手順の一例を示すフローチャートである。以下、フローチャートは、ＣＰＵ２１１が制御プログラムを実行することにより実現されるものとする。
【００４２】
情報処理装置１１０の電源がオンになると、まず、図３のステップＳ３０１において、表示制御部２２６は、例えば記憶装置２１４から取得したデータに基づいて、表示ボタン等の表示オブジェクトを含むＵＩ画面１５２を生成し、プロジェクタ１４０に出力する。プロジェクタ１４０は、表示制御部２２６の制御に基づいて、取得したＵＩ画面１５２を操作面１５０に投影する。
【００４３】
続いて、ステップＳ３０２において、距離画像取得部２２１は、距離画像センサ１２０から距離画像を取得する。なお、距離画像センサ１２０は、情報処理装置１１０の電源がオンになっている間、操作面１５０と距離画像センサ１２０との間の空間における距離画像１６０を所定の時間間隔で撮像する。
【００４４】
続いて、ステップＳ３０３において、操作位置取得部２２２は、ステップＳ３０２で取得された距離画像に対してユーザの手領域（腕を含む）１６１の検出処理を行い、手領域１６１が検出できたか否かを判断する。このステップＳ３０３において、操作位置取得部２２２が、手領域１６１を検出できなかったと判断した場合には（Ｓ３０３／Ｎｏ）、ステップＳ３０２に戻り、ステップＳ３０２以降の処理を再度行う。
【００４５】
一方、ステップＳ３０３において、操作位置取得部２２２が、手領域１６１を検出できたと判断した場合には（Ｓ３０３／Ｙｅｓ）、ステップＳ３０４に進む。
ステップＳ３０４に進むと、操作位置取得部２２２は、ステップＳ３０３で検出した手領域１６１に手ＩＤを付与し、これを保持する。ここで、例えば、異なる手領域１６１については、手ＩＤとして、検出した順番に異なる数字を昇順に付与する（手ＩＤ＝１，２，・・・）。
【００４６】
続いて、ステップＳ３０５において、操作位置取得部２２２は、ステップＳ３０３で検出した手領域１６１の距離画像における操作位置（指先位置）１６２を取得する。そして、操作位置取得部２２２は、ここで取得した操作位置１６２に、当該操作位置１６２を含む手領域１６１と同じ手ＩＤを付与して、これを保持する。さらに、操作位置取得部２２２は、操作位置１６２が取得された距離画像１６０が取得（または撮像）された時刻を、操作位置１６２が取得された時刻として保持する。
【００４７】
続いて、ステップＳ３０６において、操作位置取得部２２２は、ステップＳ３０５で取得した操作位置１６２の実世界座標における位置情報を、実世界における操作位置１６２として取得する。
【００４８】
続いて、ステップＳ３０７において、操作判定部２２３は、ステップＳ３０５で取得された操作位置１６２に基づきステップＳ３０６で取得された操作位置１６２に基づいて、タッチ状態の判定を行う。そして、操作軌跡保持部２２４は、タッチ操作の開始から終了までの、ステップＳ３０６で取得された操作位置１６２の位置情報やその取得時刻を、タッチ操作の操作軌跡として取得する。より具体的に、本実施形態においては、操作軌跡保持部２２４は、タッチ操作の操作軌跡として、操作体である手Ｈの指先が操作面１５０に対して第１の距離よりも近づいた後に第２の距離よりも遠ざかる一連の操作であるタップ操作の操作軌跡を保持する。このステップＳ３０７の詳細な処理手順については、図４を用いて後述する。
【００４９】
続いて、ステップＳ３０８において、操作判定部２２３は、ステップＳ３０５で取得された操作位置１６２に基づきステップＳ３０６で取得された操作位置１６２に基づいて、タッチ操作の判定を行う。このステップＳ３０８の詳細な処理手順については、図５を用いて後述する。
【００５０】
続いて、ステップＳ３０９において、認識部２２５は、ステップＳ３０８でのタッチ操作の判定結果に基づき、ステップＳ３０７で保持された操作軌跡と、ステップＳ３０１で投影されたＵＩ画面１５２内の表示オブジェクトである表示ボタンとの位置関係に応じて、表示ボタンの操作を判定する。このステップＳ３０９の詳細な処理手順については、図６を用いて後述する。
【００５１】
続いて、ステップＳ３１０において、表示制御部２２６は、ステップＳ３０９での表示ボタン操作の判定結果に応じて、現在表示されているＵＩ画面１５２の表示を更新する制御を行う。具体的に、表示制御部２２６は、ステップＳ３０９で表示ボタンが操作されたと判定（認識）した場合には、当該表示ボタンの表示を、当該認識する前の表示状態から変更する制御を行う。例えば、表示制御部２２６は、ステップＳ３０９で表示ボタンが操作されたと判定（認識）した場合には、当該表示ボタンの枠の線を太くし点滅するように表示を更新制御し得る（例えば、図７（ａ）の７０１，図７（ｂ）の７０２，図７（ｃ）の７０４）。なお、表示ボタンの表示の更新は、色や明るさを変えることや、表示を消す等であってもよい。
【００５２】
続いて、ステップＳ３１１において、情報処理装置１１０は、電源がオフにされたか否かを判断する。このステップＳ３１１において、情報処理装置１１０が、電源がオフにされていないと判断した場合には（Ｓ３１１／Ｎｏ）、ステップＳ３０２に戻り、ステップＳ３０２以降の処理を再度行う。
【００５３】
一方、ステップＳ３１１において、情報処理装置１１０が、電源がオフにされたと判断した場合には（Ｓ３１１／Ｙｅｓ）、図３に示すフローチャートの処理を終了する。
【００５４】
図４は、図３のステップＳ３０７における詳細な処理手順の一例を示すフローチャートである。
【００５５】
まず、図４のステップＳ４０１において、操作判定部２２３は、ステップＳ３０５で取得された操作位置１６２に基づきステップＳ３０６で取得された操作位置１６２が、第１の距離に相当するタッチ閾値（図８に示す８０１）以下であるか否かを判断する。
【００５６】
ステップＳ４０１において、操作判定部２２３が、操作位置１６２がタッチ閾値以下であると判断した場合には（Ｓ４０１／Ｙｅｓ）、ステップＳ４０２に進む。
ステップＳ４０２に進むと、操作判定部２２３は、１つ前の操作位置１６２がタッチ状態であるか否かを判断する。なお、ステップＳ４０１における判断対象の操作位置１６２が最初の操作位置１６２である場合には、ステップＳ４０２ではタッチ状態でない（即ち、リリース状態である）と判断される。
【００５７】
ステップＳ４０２において、操作判定部２２３が、１つ前の操作位置１６２がタッチ状態であると判断した場合には（Ｓ４０２／Ｙｅｓ）、ステップＳ４０３に進む。
ステップＳ４０３に進むと、操作判定部２２３（或いは操作軌跡保持部２２４）は、ステップＳ４０１における判断対象の操作位置１６２がタッチ状態であることを保持する。
【００５８】
続いて、ステップＳ４０４において、操作軌跡保持部２２４は、テップＳ４０１における判断対象の操作位置１６２に係る情報を、タッチ操作（より具体的には、タップ操作）の操作軌跡における操作位置に係る情報として継続して保持する。そして、このステップＳ４０４の処理が終了すると、図４に示すフローチャートの処理を終了し、図３のステップＳ３０８に進む。
【００５９】
また、ステップＳ４０２において、操作判定部２２３が、１つ前の操作位置１６２がタッチ状態でない（即ち、リリース状態である）と判断した場合には（Ｓ４０２／Ｎｏ）、ステップＳ４０５に進む。
ステップＳ４０５に進むと、操作判定部２２３（或いは操作軌跡保持部２２４）は、ステップＳ４０１における判断対象の操作位置１６２がタッチ状態であることを保持する。さらに、操作判定部２２３（或いは操作軌跡保持部２２４）は、ステップＳ４０１における判断対象の操作位置１６２が最初の操作位置１６２である場合には、１つ前の操作位置がリリース状態であることを保持する。これにより、処理がリリース状態からタッチ状態に切り替わる。
【００６０】
続いて、ステップＳ４０６において、操作軌跡保持部２２４は、ステップＳ４０１における判断対象の操作位置１６２に係る情報を、タッチ操作（より具体的には、タップ操作）の操作軌跡における開始の操作位置に係る情報として保持する。そして、このステップＳ４０６の処理が終了すると、図４に示すフローチャートの処理を終了し、図３のステップＳ３０８に進む。
【００６１】
また、ステップＳ４０１において、操作判定部２２３が、操作位置１６２がタッチ閾値以下でないと判断した場合には（Ｓ４０１／Ｎｏ）、ステップＳ４０７に進む。
ステップＳ４０７に進むと、操作判定部２２３は、１つ前の操作位置１６２がタッチ状態であるか否かを判断する。このステップＳ４０７において、操作判定部２２３が、１つ前の操作位置１６２がタッチ状態でない（即ち、リリース状態である）と判断した場合には（Ｓ４０７／Ｎｏ）、図４に示すフローチャートの処理を終了し、図３のステップＳ３０８に進む。
【００６２】
一方、ステップＳ４０７において、操作判定部２２３が、１つ前の操作位置１６２がタッチ状態であると判断した場合には（Ｓ４０７／Ｙｅｓ）、ステップＳ４０８に進む。
ステップＳ４０８に進むと、操作判定部２２３は、ステップＳ３０５で取得された操作位置１６２に基づきステップＳ３０６で取得された操作位置１６２が、第２の距離に相当するリリース閾値（図８に示す８０２）以上であるか否かを判断する。
【００６３】
ステップＳ４０８において、操作判定部２２３が、操作位置１６２がリリース閾値以上であると判断した場合には（Ｓ４０８／Ｙｅｓ）、ステップＳ４０９に進む。
ステップＳ４０９に進むと、操作判定部２２３（或いは操作軌跡保持部２２４）は、ステップＳ４０１における判断対象の操作位置１６２がリリース状態であることを保持する。これにより、処理がタッチ状態からリリース状態に切り替わる。
【００６４】
続いて、ステップＳ４１０において、操作軌跡保持部２２４は、テップＳ４０１における判断対象の操作位置１６２に係る情報を、タッチ操作（より具体的には、タップ操作）の操作軌跡における終了（最後）の操作位置に係る情報として保持する。その後、操作軌跡保持部２２４は、操作軌跡における操作位置に係る情報の保持を終了する。そして、このステップＳ４０６の処理が終了すると、図４に示すフローチャートの処理を終了し、図３のステップＳ３０８に進む。
【００６５】
ステップＳ４０８において、操作判定部２２３が、操作位置１６２がリリース閾値以上でないと判断した場合には（Ｓ４０８／Ｎｏ）、ステップＳ４１１に進む。
ステップＳ４１１に進むと、操作判定部２２３（或いは操作軌跡保持部２２４）は、ステップＳ４０１における判断対象の操作位置１６２がタッチ状態であることを保持する。
【００６６】
続いて、ステップＳ４１２において、操作軌跡保持部２２４は、テップＳ４０１における判断対象の操作位置１６２に係る情報を、タッチ操作（より具体的には、タップ操作）の操作軌跡における操作位置に係る情報として継続して保持する。そして、このステップＳ４１２の処理が終了すると、図４に示すフローチャートの処理を終了し、図３のステップＳ３０８に進む。
【００６７】
図５は、図３のステップＳ３０８における詳細な処理手順の一例を示すフローチャートである。
【００６８】
まず、図５のステップＳ５０１において、操作判定部２２３は、ステップＳ３０７で保持したタッチ状態を参照し、現在の操作位置１６２がタッチ状態で、かつ１つ前の操作位置１６２がリリース状態であるか否かを判断する。
【００６９】
ステップＳ５０１において、操作判定部２２３が、現在の操作位置１６２がタッチ状態で、かつ１つ前の操作位置１６２がリリース状態である場合には（Ｓ５０１／Ｙｅｓ）、ステップＳ５０２に進む。
ステップＳ５０２に進むと、操作判定部２２３は、認識部２２５に対してタッチイベントを通知する。そして、このステップＳ５０２の処理が終了すると、図５に示すフローチャートの処理を終了し、図３のステップＳ３０９に進む。
【００７０】
一方、ステップＳ５０１において、操作判定部２２３が、少なくとも現在の操作位置１６２がタッチ状態でないか或いは１つ前の操作位置１６２がリリース状態でない場合には（Ｓ５０１／Ｎｏ）、ステップＳ５０３に進む。
ステップＳ５０３に進むと、操作判定部２２３は、ステップＳ３０７で保持したタッチ状態を参照し、現在の操作位置１６２がリリース状態で、かつ１つ前の操作位置１６２がタッチ状態であるか否かを判断する。このステップＳ５０３において、操作判定部２２３が、少なくとも現在の操作位置１６２がリリース状態でないか或いは１つ前の操作位置１６２がタッチ状態でない場合には（Ｓ５０３／Ｎｏ）、図５に示すフローチャートの処理を終了し、図３のステップＳ３０９に進む。
【００７１】
一方、ステップＳ５０３において、現在の操作位置１６２がリリース状態で、かつ１つ前の操作位置１６２がタッチ状態である場合には、ステップＳ５０４に進む。
ステップＳ５０４に進むと、操作判定部２２３は、認識部２２５に対してリリースイベントを通知する。
【００７２】
続いて、ステップＳ５０５において、操作判定部２２３は、操作体である手Ｈの指先が操作面１５０に対して第１の距離に相当するタッチ閾値よりも近づいた後に、第２の距離に相当するリリース閾値よりも遠ざかる一連の操作であるタップ操作の判定を行う。なお、ここでは、タップ操作の判定基準として、操作体である手Ｈの指先の、操作面１５０に対する距離を判定基準とする例を示したが、本実施形態においてはこれに限定されるものではなく、更なる判定基準を設けるようにしてもよい。例えば、最初にタッチ閾値よりも近づいた操作位置１６２と、最初にリリース閾値よりも遠ざかった操作位置１６２との操作面１５０における距離が、所定の閾値以下である条件を上述したタップ操作の判定基準に含める態様も、本実施形態に適用可能である。また、最初にタッチ閾値よりも近づいた操作位置１６２における時刻から、最初にリリース閾値よりも遠ざかった操作位置１６２における時刻までの時間が、所定の閾値以下である条件を上述したタップ操作の判定基準に含める態様も、本実施形態に適用可能である。その後、操作判定部２２３は、認識部２２５に対して、当該タップ操作に係るタップイベントとタップ操作位置を通知する。このステップＳ５０５の処理が終了すると、図５に示すフローチャートの処理を終了し、図３のステップＳ３０９に進む。
【００７３】
図６は、図３のステップＳ３０９における詳細な処理手順の一例を示すフローチャートである。
【００７４】
まず、図６のステップＳ６０１において、認識部２２５は、ステップＳ３０８のタッチ操作の判定処理において、ステップＳ５０５のタップ操作の判定がなされたか否かを判断する。
【００７５】
ステップＳ６０１において、認識部２２５が、ステップＳ３０８のタッチ操作の判定処理においてタップ操作の判定がなされたと判断した場合には（Ｓ６０１／Ｙｅｓ）、ステップＳ６０２に進む。
ステップＳ６０２に進むと、認識部２２５は、タップ操作の操作軌跡と、ステップＳ３０１で投影されたＵＩ画面１５２内の表示ボタン領域とが重畳（タップ操作の操作軌跡が表示ボタン領域内に重畳）しているか否かを判断する。ここで、表示ボタン領域とは、表示ボタンと関連付けられている領域であり、本実施形態では、操作面１５０に投影されたＵＩ画面１５２に表示された表示ボタンの領域とする。なお、ここでの表示ボタン領域として、操作面１５０に投影されたＵＩ画面１５２に実際に表示された表示ボタンの領域よりも大きい領域または小さい領域を設定してもよい。
【００７６】
ステップＳ６０２において、認識部２２５が、タップ操作の操作軌跡と、ステップＳ３０１で投影されたＵＩ画面１５２内の表示ボタン領域とが重畳していると判断した場合には（Ｓ６０２／Ｙｅｓ）、ステップＳ６０３に進む。
ステップＳ６０３に進むと、認識部２２５は、ステップＳ６０２で重畳していると判断した表示ボタンの操作を認識（検出）する。
【００７７】
そして、ステップＳ６０３の処理が終了した場合、ステップＳ６０１において認識部２２５がタップ操作の判定がなされなかったと判断した場合（Ｓ６０１／Ｎｏ）、或いは、ステップＳ６０２において認識部２２５がタップ操作の操作軌跡と表示ボタン領域とが重畳していないと判断した場合には（Ｓ６０２／Ｎｏ）、図６に示すフローチャートの処理を終了し、図３のステップＳ３１０に進む。
【００７８】
次に、図７及び図８を参照して、ユーザの手Ｈの指先による操作入力がなされた場合の情報処理装置１１０の処理について説明する。
【００７９】
図７は、本発明の実施形態を示し、図１に示す操作面１５０（ｘｙ平面）に投影されたＵＩ画面１５２内の表示ボタン及び当該表示ボタンに対するタップ操作の一例を示す図である。具体的に、図７（ａ）は、表示ボタン及び当該表示ボタンに対するタップ操作の第１例を示す図である。また、図７（ｂ）は、表示ボタン及び当該表示ボタンに対するタップ操作の第２例を示す図である。また、図７（ｃ）は、表示ボタン及び当該表示ボタンに対するタップ操作の第３例を示す図である。
【００８０】
図８は、本発明の実施形態を示し、図１に示す操作面１５０から上のｚ方向の空間における各操作位置の一例を示す図である。具体的に、図８（ａ）は、距離画像センサ１２０により取得された距離画像１６０に基づき得られた各操作位置の一例を示す図である。また、図８（ｂ）は、ユーザが実際に指先を動かした操作軌跡を示す各操作位置の一例を示す図である。また、図８（ａ）に示す各操作位置Ｐ０〜Ｐ６は、それぞれ、図８（ｂ）に示す各操作位置Ｐ０〜Ｐ６に対応するものである。さらに、図８（ａ）及び図８（ｂ）に示す各操作位置Ｐ１〜Ｐ６は、それぞれ、図７（ａ）〜図７（ｃ）に示す各操作位置Ｐ１〜Ｐ６に対応するものである。また、図８（ａ）及び図８（ｂ）には、図４のステップＳ４０１の判断基準として用いるタッチ閾値８０１、図４のステップＳ４０８の判断基準として用いるリリース閾値８０２が示されている。
【００８１】
この図８に示す例では、図８（ｂ）に示すように実際にユーザの指先が操作面１５０に最も近接する位置は操作位置Ｐ３となるが、図８（ａ）に示すように距離画像センサ１２０の距離画像１６０から取得した場合には操作位置Ｐ４となっている。即ち、図８では、実際の指先位置と距離画像１６０から取得した指先位置とが異なる場合を示している。これは、距離画像センサ１２０で距離画像１６０を取得する際に、指先位置が操作面１５０に近接するときに、指先と操作面１５０の双方の距離測定ノイズが影響を及ぼし合い、距離測定ノイズが大きくなるためであると考えられる。したがって、例えば特許文献１で想定しているように、操作体であるユーザの手Ｈの指先が操作面１５０に最も近接する位置に基づきユーザの操作判定を行うと、ユーザの操作を正しく認識することが困難となる場合が生じ得る。これに対して、本発明の実施形態では、操作体であるユーザの手Ｈの指先における操作軌跡（図８に示す例では、操作位置Ｐ１〜Ｐ６）に基づきユーザの操作判定を行うため、ユーザの操作を適正に認識することが可能となる。
【００８２】
＜タップ操作の第１例＞
まず、図７（ａ）及び図８（ａ）を用いて、表示ボタン及び当該表示ボタンに対するタップ操作の第１例の場合における情報処理装置１１０の処理について説明する。
【００８３】
図７（ａ）には、操作面１５０（ｘｙ平面）に投影されたＵＩ画面１５２内の表示ボタンとして、表示ボタン７０１が示されている。この表示ボタン７０１の表示は、図３のステップＳ３０１において、表示制御部２２６によってなされる。
【００８４】
また、図７（ａ）において、操作位置Ｐ１〜Ｐ６は、図８（ａ）に示すように操作体である手Ｈの指先が操作面１５０に対して第１の距離であるタッチ閾値８０１よりも近づいた後に第２の距離であるリリース閾値８０２よりも遠ざかる一連の操作であるタップ操作の操作軌跡を示している。操作位置Ｐ１はタップ操作の開始における指先位置であり、操作位置Ｐ６はタップ操作の終了の指先位置である。なお、図７では、タップ操作の終了の指先位置に相当する操作位置を白丸で示している。図７（ａ）には、ユーザによるタップ操作として、操作位置Ｐ１から操作位置Ｐ６までの順番に操作がなされたことを時系列で示している。以下に、図７（ａ）に示す操作位置Ｐ１〜Ｐ６について説明する。
【００８５】
まず、タップ操作の開始の操作位置である、図７（ａ）に示す操作位置Ｐ１について説明する。
図３のステップＳ３０２において、距離画像取得部２２１は、距離画像センサ１２０から距離画像１６０を取得する。続いて、図３のステップＳ３０３において、操作位置取得部２２２は、距離画像１６０から手領域１６１を検出すると（Ｓ３０３／Ｙｅｓ）、ステップＳ３０４において、操作位置取得部２２２は、当該手領域１６１に手ＩＤとして１を付与する。続いて、図３のステップＳ３０５において、操作位置取得部２２２は、当該距離画像１６０における操作位置１６２として操作位置Ｐ１を取得し、当該操作位置Ｐ１とともに当該操作位置Ｐ１が取得された時刻ｔ１を保持する。続いて、図３のステップＳ３０６において、操作位置取得部２２２は、実世界における操作位置Ｐ１における位置情報（ｘ１，ｙ１，ｚ１）を取得する。
【００８６】
次いで、図３のステップＳ３０７において、操作判定部２２３は、操作位置Ｐ１のタッチ状態の判定及び操作軌跡の保持を行う。具体的に、図３のステップＳ３０７における詳細な処理手順を示す図４では、まず、ステップＳ４０１において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ１がタッチ閾値８０１以下であると判断（Ｓ４０１／Ｙｅｓ）する。続いて、図４のステップＳ４０２において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ１よりも１つ前の操作位置Ｐ０がタッチ状態でないと判断（Ｓ４０２／Ｎｏ）する。続いて、図４のステップＳ４０５において、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ１がタッチ状態であることを保持する。さらに、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ１よりも１つ前の操作位置Ｐ０がリリース状態であることを保持する。続いて、図４のステップＳ４０６において、操作軌跡保持部２２４は、操作位置Ｐ１に係る情報（ｘ１，ｙ１，ｚ１、ｔ１）を、タップ操作の操作軌跡における開始（最初）の操作位置に係る情報として保持する。
【００８７】
次いで、図３のステップＳ３０８において、操作判定部２２３は、操作位置Ｐ１に基づいて、タッチ操作の判定を行う。具体的に、図３のステップＳ３０８における詳細な処理手順を示す図５では、まず、ステップＳ５０１において、操作判定部２２３は、現在の操作位置Ｐ１がタッチ状態で、かつ１つ前の操作位置Ｐ０がリリース状態であると判断（Ｓ５０１／Ｙｅｓ）する。続いて、図５のステップＳ５０２において、操作判定部２２３は、認識部２２５に対してタッチイベントを通知する。
【００８８】
次いで、図３のステップＳ３０９において、認識部２２５は、表示ボタン操作の判定を行う。具体的に、図３のステップＳ３０９における詳細な処理手順を示す図６では、ステップＳ６０１において、認識部２２５は、操作位置Ｐ１の処理でタップ操作の判定（Ｓ５０５）がなされていないと判断（Ｓ６０１／Ｎｏ）する。次いで、図３のステップＳ３１０において、表示制御部２２６は、ステップＳ３０９で表示ボタン操作の認識がされていないため、現在表示されているＵＩ画面１５２の表示の更新は行わない。続いて、図３のステップＳ３１１において、情報処理装置１１０は、電源がオフでないと判断（Ｓ３１１／Ｎｏ）し、その後、図３のステップＳ３０２に戻る。
【００８９】
次に、図７（ａ）に示す操作位置Ｐ２について説明する。
操作位置Ｐ２の処理について、図３のステップＳ３０２からステップＳ３０４までの処理は、上述した操作位置Ｐ１の処理と同様であるため、その説明は省略する。続いて、図３のステップＳ３０５において、操作位置取得部２２２は、距離画像１６０における操作位置１６２として操作位置Ｐ２を取得し、当該操作位置Ｐ２とともに当該操作位置Ｐ２が取得された時刻ｔ２を保持する。続いて、図３のステップＳ３０６において、操作位置取得部２２２は、実世界における操作位置Ｐ２における位置情報（ｘ２，ｙ２，ｚ２）を取得する。
【００９０】
次いで、図３のステップＳ３０７において、操作判定部２２３は、操作位置Ｐ２のタッチ状態の判定及び操作軌跡の保持を行う。具体的に、図３のステップＳ３０７における詳細な処理手順を示す図４では、まず、ステップＳ４０１において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ２がタッチ閾値８０１以下であると判断（Ｓ４０１／Ｙｅｓ）する。続いて、図４のステップＳ４０２において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ２よりも１つ前の操作位置Ｐ１がタッチ状態であると判断（Ｓ４０２／Ｙｅｓ）する。続いて、図４のステップＳ４０３において、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ２がタッチ状態であることを保持する。さらに、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ２よりも１つ前の操作位置Ｐ１がタッチ状態であることを保持する。続いて、図４のステップＳ４０４において、操作軌跡保持部２２４は、操作位置Ｐ１に係る情報（ｘ２，ｙ２，ｚ２、ｔ２）を、タップ操作の操作軌跡における操作位置に係る情報として継続して保持する。
【００９１】
次いで、図３のステップＳ３０８において、操作判定部２２３は、操作位置Ｐ２に基づいて、タッチ操作の判定を行う。具体的に、図３のステップＳ３０８における詳細な処理手順を示す図５では、まず、ステップＳ５０１において、操作判定部２２３は、現在の操作位置Ｐ２がタッチ状態で、かつ１つ前の操作位置Ｐ１がリリース状態でないと判断（Ｓ５０１／Ｎｏ）する。続いて、図５のステップＳ５０３において、操作判定部２２３は、現在の操作位置Ｐ２がリリース状態でないと判断（Ｓ５０２／Ｎｏ）する。
【００９２】
次いで、図３のステップＳ３０９において、認識部２２５は、表示ボタン操作の判定を行う。具体的に、図３のステップＳ３０９における詳細な処理手順を示す図６では、ステップＳ６０１において、認識部２２５は、操作位置Ｐ２の処理でタップ操作の判定（Ｓ５０５）がなされていないと判断（Ｓ６０１／Ｎｏ）する。次いで、図３のステップＳ３１０において、表示制御部２２６は、ステップＳ３０９で表示ボタン操作の認識がされていないため、現在表示されているＵＩ画面１５２の表示の更新は行わない。続いて、図３のステップＳ３１１において、情報処理装置１１０は、電源がオフでないと判断（Ｓ３１１／Ｎｏ）し、その後、図３のステップＳ３０２に戻る。
【００９３】
図７（ａ）に示す操作位置Ｐ３及び操作位置Ｐ４の処理については、上述した操作位置Ｐ２の処理と同様であるため、その説明は省略する。
【００９４】
次に、図７（ａ）に示す操作位置Ｐ５について説明する。
操作位置Ｐ５の処理について、図３のステップＳ３０２からステップＳ３０４までの処理は、上述した操作位置Ｐ１の処理と同様であるため、その説明は省略する。続いて、図３のステップＳ３０５において、操作位置取得部２２２は、距離画像１６０における操作位置１６２として操作位置Ｐ５を取得し、当該操作位置Ｐ５とともに当該操作位置Ｐ５が取得された時刻ｔ５を保持する。続いて、図３のステップＳ３０６において、操作位置取得部２２２は、実世界における操作位置Ｐ５における位置情報（ｘ５，ｙ５，ｚ５）を取得する。
【００９５】
次いで、図３のステップＳ３０７において、操作判定部２２３は、操作位置Ｐ５のタッチ状態の判定及び操作軌跡の保持を行う。具体的に、図３のステップＳ３０７における詳細な処理手順を示す図４では、まず、ステップＳ４０１において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ５がタッチ閾値８０１以下でないと判断（Ｓ４０１／Ｎｏ）する。続いて、図４のステップＳ４０７において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ５よりも１つ前の操作位置Ｐ４がタッチ状態であると判断（Ｓ４０７／Ｙｅｓ）する。続いて、図４のステップＳ４０８において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ５がリリース閾値以上でないと判断（Ｓ４０８／Ｎｏ）する。続いて、図４のステップＳ４１１において、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ５がタッチ状態であることを保持する。さらに、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ５よりも１つ前の操作位置Ｐ４がタッチ状態であることを保持する。続いて、図４のステップＳ４１２において、操作軌跡保持部２２４は、操作位置Ｐ５に係る情報（ｘ５，ｙ５，ｚ５、ｔ５）を、タップ操作の操作軌跡における操作位置に係る情報として継続して保持する。
【００９６】
操作位置Ｐ５の処理において、その後の図３のステップＳ３０８からステップＳ３１１までの処理は、上述した操作位置Ｐ２の処理と同様であるため、その説明は省略する。
【００９７】
次に、タップ操作の終了の操作位置である、図７（ａ）に示す操作位置Ｐ６について説明する。
操作位置Ｐ６の処理について、図３のステップＳ３０２からステップＳ３０４までの処理は、上述した操作位置Ｐ１の処理と同様であるため、その説明は省略する。続いて、図３のステップＳ３０６において、操作位置取得部２２２は、距離画像１６０における操作位置１６２として操作位置Ｐ６を取得し、当該操作位置Ｐ６とともに当該操作位置Ｐ６が取得された時刻ｔ６を保持する。続いて、図３のステップＳ３０６において、操作位置取得部２２２は、実世界における操作位置Ｐ６における位置情報（ｘ６，ｙ６，ｚ６）を取得する。
【００９８】
次いで、図３のステップＳ３０７において、操作判定部２２３は、操作位置Ｐ６のタッチ状態の判定及び操作軌跡の保持を行う。具体的に、図３のステップＳ３０７における詳細な処理手順を示す図４では、まず、ステップＳ４０１において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ６がタッチ閾値８０１以下でないと判断（Ｓ４０１／Ｎｏ）する。続いて、図４のステップＳ４０７において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ６よりも１つ前の操作位置Ｐ５がタッチ状態であると判断（Ｓ４０７／Ｙｅｓ）する。続いて、図４のステップＳ４０８において、操作判定部２２３は、図８（ａ）に示すように操作位置Ｐ６がリリース閾値以上であると判断（Ｓ４０８／Ｙｅｓ）する。続いて、図４のステップＳ４０９において、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ６がリリース状態であることを保持する。さらに、操作判定部２２３（或いは操作軌跡保持部２２４）は、操作位置Ｐ６よりも１つ前の操作位置Ｐ５がタッチ状態であることを保持する。続いて、図４のステップＳ４１０において、操作軌跡保持部２２４は、操作位置Ｐ６に係る情報（ｘ６，ｙ６，ｚ６、ｔ６）を、タップ操作の操作軌跡における終了（最後）の操作位置に係る情報として保持する。その後、操作軌跡保持部２２４は、操作軌跡における操作位置に係る情報の保持を終了する。
【００９９】
次いで、図３のステップＳ３０８において、操作判定部２２３は、操作位置Ｐ６に基づいて、タッチ操作の判定を行う。具体的に、図３のステップＳ３０８における詳細な処理手順を示す図５では、まず、ステップＳ５０１において、操作判定部２２３は、現在の操作位置Ｐ６がタッチ状態でなく、かつ１つ前の操作位置Ｐ５がリリース状態でないと判断（Ｓ５０１／Ｎｏ）する。続いて、図５のステップＳ５０３において、操作判定部２２３は、現在の操作位置Ｐ６がリリース状態で、かつ１つ前の操作位置Ｐ５がタッチ状態であると判断（Ｓ５０３／Ｙｅｓ）する。続いて、図５のステップＳ５０４において、操作判定部２２３は、認識部２２５に対してリリースイベントを通知する。続いて、図５のステップＳ５０５において、操作判定部２２３は、操作体である手Ｈの指先が操作面１５０に対してタッチ閾値８０１よりも近づいた後に、リリース閾値８０２よりも遠ざかる一連の操作であるタップ操作の判定を行う。ここでは、タップ操作の判定基準として、さらに、最初にタッチ閾値８０１よりも近づいた操作位置Ｐ１と、最初にリリース閾値８０２よりも遠ざかった操作位置Ｐ６との操作面１５０（ｘｙ平面）における距離が、所定の閾値以下である条件も含めることとする。そして、ここでは、操作位置Ｐ１（ｘ１，ｙ１）と操作位置Ｐ６（ｘ６，ｙ６）との操作面１５０（ｘｙ平面）における距離が、所定の閾値Ｌ１以下であるものとする。
【０１００】
次いで、図３のステップＳ３０９において、認識部２２５は、表示ボタン操作の判定を行う。具体的に、図３のステップＳ３０９における詳細な処理手順を示す図６では、ステップＳ６０１において、認識部２２５は、操作位置Ｐ６の処理でタップ操作の判定（Ｓ５０５）がなされたと判断（Ｓ６０１／Ｙｅｓ）する。続いて、図６のステップＳ６０２において、認識部２２５は、タップ操作の操作軌跡（操作位置Ｐ１〜Ｐ６）と、図７（ａ）に示す表示ボタン７０１の領域とが重畳していると判断（Ｓ６０２／Ｙｅｓ）する。具体的に、図７（ａ）に示す例では、タップ操作の操作軌跡の一部である操作位置Ｐ２及びＰ３が表示ボタン７０１の領域と重畳している。続いて、図６のステップＳ６０３において、認識部２２５は、タップ操作の操作軌跡（操作位置Ｐ１〜Ｐ６）と重畳していると判断した表示ボタン７０１の操作を認識（検出）する。
【０１０１】
次いで、図３のステップＳ３１０において、表示制御部２２６は、ステップＳ３０９で表示ボタン７０１が操作されたと判定（認識）したため、表示ボタン７０１の表示を、当該認識する前の表示状態から変更する制御を行う。例えば、表示制御部２２６は、図７（ａ）に示すように表示ボタン７０１の枠の線を太くし点滅するように表示を更新制御する。なお、表示ボタン７０１の表示の更新は、色や明るさを変えることや、表示を消す等であってもよい。その後、図３のステップＳ３１１以降の処理を行う。
【０１０２】
＜タップ操作の第２例＞
次に、図７（ｂ）及び図８（ａ）を用いて、表示ボタン及び当該表示ボタンに対するタップ操作の第２例の場合における情報処理装置１１０の処理について説明する。
【０１０３】
タップ操作の第２例は、上述したタップ操作の第１例との違いは、図７（ｂ）に示すように、２つの表示ボタンＡ（７０２）及び表示ボタンＢ（７０３）が近い位置に並んで表示され、タップ操作の操作軌跡が当該２つの表示ボタンに重畳していることである。また、図７（ｂ）に示す操作位置Ｐ１〜Ｐ６は、それぞれ、図８（ａ）に示す操作位置Ｐ１〜Ｐ６に対応する。
【０１０４】
まず、図７（ｂ）に示す操作位置Ｐ１から操作位置Ｐ５までの処理は、図７（ａ）を用いて上述したタップ操作の第１例の場合と同様であるため、その説明は省略する。
【０１０５】
次に、タップ操作の終了の操作位置である、図７（ｂ）に示す操作位置Ｐ６について説明する。
操作位置Ｐ６の処理について、図３のステップＳ３０２からステップＳ３０８までの処理は、上述したタップ操作の第１例の場合と同様であるため、その説明は省略する。続いて、図３のステップＳ３０９において、認識部２２５は、表示ボタン操作の判定を行う。具体的に、図３のステップＳ３０９における詳細な処理手順を示す図６では、ステップＳ６０１において、認識部２２５は、操作位置Ｐ６の処理でタップ操作の判定（Ｓ５０５）がなされたと判断（Ｓ６０１／Ｙｅｓ）する。続いて、図６のステップＳ６０２において、認識部２２５は、タップ操作の操作軌跡（操作位置Ｐ１〜Ｐ６）と、図７（ｂ）に示す表示ボタンの領域とが重畳していると判断（Ｓ６０２／Ｙｅｓ）する。具体的に、図７（ｂ）に示す例では、タップ操作の操作軌跡の一部である操作位置Ｐ２及びＰ３が表示ボタンＡ（７０２）の領域と重畳し、タップ操作の操作軌跡の一部である操作位置Ｐ５及びＰ６が表示ボタンＢ（７０３）の領域と重畳している。
【０１０６】
続いて、図６のステップＳ６０３において、認識部２２５は、タップ操作の操作軌跡（操作位置Ｐ１〜Ｐ６）と重畳していると判断した表示ボタンの操作を認識（検出）する。具体的に、認識部２２５は、図７（ｂ）に示すようにタップ操作の操作軌跡が複数の表示ボタンに重畳した場合には、当該操作軌跡の開始の操作位置Ｐ１に最も近い表示ボタンＡ（７０２）に対する当該操作と認識する。その理由を以下に記載する。一般的に、ユーザは操作の開始時に（または前半に）より注意を払う（集中して操作を行う）傾向がある。したがって、タップ操作の開始の操作位置に最も近い表示ボタンの操作と認識することにより、よりユーザの操作意図に即した表示ボタンの選択を行うことができ、操作性を向上させることができると考えられるためである。
【０１０７】
次いで、図３のステップＳ３１０において、表示制御部２２６は、ステップＳ３０９で表示ボタンＡ（７０２）が操作されたと判定（認識）したため、表示ボタンＡ（７０２）の表示を、当該認識する前の表示状態から変更する制御を行う。例えば、表示制御部２２６は、例えば、図７（ｂ）に示すように表示ボタンＡ（７０２）の枠の線を太くし点滅するように表示を更新制御する。なお、表示ボタンＡ（７０２）の表示の更新は、色や明るさを変えることや、表示を消す等であってもよい。その後、図３のステップＳ３１１以降の処理を行う。
【０１０８】
＜タップ操作の第３例＞
次に、図７（ｃ）及び図８（ａ）を用いて、表示ボタン及び当該表示ボタンに対するタップ操作の第３例の場合における情報処理装置１１０の処理について説明する。
【０１０９】
タップ操作の第３例は、上述したタップ操作の第２例との違いは、図７（ｃ）に示すように、単なるタップ操作ではなくダブルタップ操作（タップ操作の２回連続操作）が行われた場合である。具体的に、図７（ｃ）には、操作位置Ｐ１から操作位置Ｐ６までの操作軌跡で示す第１のタップ操作と、操作位置Ｐ７から操作位置Ｐ１２までの操作軌跡で示す第２のタップ操作とで構成されるダブルタップ操作が行われた場合を示している。ここで、図７（ｃ）に示す操作位置Ｐ１〜Ｐ６は、それぞれ、図８（ａ）に示す操作位置Ｐ１〜Ｐ６に対応する。また、図７（ｃ）に示す操作位置Ｐ７〜Ｐ１２は、それぞれ、図８（ａ）に示す操作位置Ｐ１〜Ｐ６に対応するものとする。
【０１１０】
まず、図７（ｃ）に示す第１のタップ操作の操作位置Ｐ１から操作位置Ｐ５までの処理は、上述したタップ操作の第２例の場合と同様（即ち、図７（ａ）を用いて上述したタップ操作の第１例の場合と同様）であるため、その説明は省略する。
【０１１１】
次に、第１のタップ操作の終了の操作位置である、図７（ｃ）に示す操作位置Ｐ６について説明する。
操作位置Ｐ６の処理について、図３のステップＳ３０２からステップＳ３０７までの処理は、上述したタップ操作の第２例の場合と同様（即ち、図７（ａ）を用いて上述したタップ操作の第１例の場合と同様）であるため、その説明は省略する。
【０１１２】
次いで、図３のステップＳ３０８において、操作判定部２２３は、操作位置Ｐ６に基づいて、タッチ操作の判定を行う。具体的に、図３のステップＳ３０８における詳細な処理手順を示す図５では、ステップＳ５０１，ステップＳ５０３及びステップＳ５０４の処理は、上述したタップ操作の第２例の場合と同様（即ち、図７（ａ）を用いて上述したタップ操作の第１例の場合と同様）であるため、その説明は省略する。続いて、図５のステップＳ５０５において、操作判定部２２３は、操作体である手Ｈの指先が操作面１５０に対してタッチ閾値８０１よりも近づいた後に、リリース閾値８０２よりも遠ざかる一連の操作であるタップ操作の判定を行う。
【０１１３】
さらに、タップ操作の第３例では、操作判定部２２３は、ダブルタップ操作の判定を行う。即ち、操作判定部２２３は、所定の条件を満たすか否かに応じて、複数のタップ操作（複数の一連の操作）が、一体操作であるダブルタップ操作であるかを判定する。本実施形態では、操作判定部２２３によるダブルタップ操作の判定条件として、以下の４つの条件を適用する。
・［第１の条件］第１のタップ操作における終了の操作位置と、当該第１のタップ操作の後になされた第２のタップ操作における開始の操作位置との操作面１５０（ｘｙ平面）における距離が、所定の閾値以下であること。
・［第２の条件］第２のタップ操作における開始の操作位置と、第２のタップ操作における終了の操作位置との操作面１５０（ｘｙ平面）における距離が、所定の閾値以下であること。
・［第３の条件］第１のタップ操作における終了の操作位置における時刻から、当該第１のタップ操作の後になされた第２のタップ操作における開始の操作位置における時刻までの経過時間が、所定の閾値以下であること。
・［第４の条件］第２のタップ操作における開始の操作位置における時刻から、第２のタップ操作における終了の操作位置における時刻までの経過時間が、所定の閾値以下であること。
本実施形態では、操作判定部２２３は、この第１の条件〜第４の条件を考慮して、ダブルタップ操作を判定する。
【０１１４】
ここで、操作位置Ｐ６の処理においては、当該操作位置Ｐ６を含むタップ操作の前に行われたタップ操作がないため、ダブルタップ操作が行われたとの判定はなされない。操作位置Ｐ６の処理において、その後、図３のステップＳ３０９以降の処理を行う。
【０１１５】
また、図７（ｃ）に示す操作位置Ｐ７〜操作位置Ｐ１２の処理についても、それぞれ、上述したタップ操作の第３例における操作位置Ｐ１〜操作位置Ｐ６の処理と同様の処理を行う。ここで、操作位置Ｐ１２の処理において、図５のステップＳ５０５では、操作判定部２２３は、ダブルタップ操作の判定を行う。この際、図７（ｃ）に示す例では、第１のタップ操作における終了の操作位置Ｐ６と、第２のタップ操作における開始の操作位置Ｐ７との操作面１５０（ｘｙ平面）における距離が、所定の閾値以下であり、上述した第１の条件を満たすものとする。また、図７（ｃ）に示す例では、第２のタップ操作における開始の操作位置Ｐ７と、第２のタップ操作における終了の操作位置Ｐ１２との操作面１５０（ｘｙ平面）における距離が、所定の閾値以下であり、上述した第２の条件を満たすものとする。さらに、図７（ｃ）に示す例では、第１のタップ操作における終了の操作位置Ｐ６における時刻ｔ６から、第２のタップ操作における開始の操作位置Ｐ７における時刻ｔ７までの経過時間が、所定の閾値以下であり、上述した第３の条件を満たすものとする。さらに、第２のタップ操作における開始の操作位置Ｐ７における時刻ｔ７から、第２のタップ操作における終了の操作位置Ｐ１２における時刻ｔ１２までの経過時間が、所定の閾値以下であり、上述した第４の条件を満たすものとする。
したがって、この場合、操作判定部２２３は、操作位置Ｐ１２の処理でダブルタップ操作の判定（Ｓ５０５）を行う。
【０１１６】
操作位置Ｐ１２の処理に関し、図３のステップＳ３０９以降の処理について説明する。
図３のステップＳ３０９における詳細な処理手順を示す図６では、まず、ステップＳ６０１において、認識部２２５は、操作位置Ｐ１２の処理でダブルタップ操作の判定（Ｓ５０５）がなされたと判断（Ｓ６０１／Ｙｅｓ）する。続いて、図６のステップＳ６０２において、認識部２２５は、ダブルタップ操作の操作軌跡（操作位置Ｐ１〜Ｐ６及び操作位置Ｐ７〜Ｐ１２）と、図７（ｃ）に示す表示ボタンＡ（７０４）及び表示ボタンＢ（７０５）の領域とが重畳していると判断（Ｓ６０２／Ｙｅｓ）する。具体的に、図７（ｃ）に示す例では、ダブルタップ操作の操作軌跡の一部である操作位置Ｐ２及びＰ３が表示ボタンＡ（７０４）の領域と重畳しており、また、ダブルタップ操作の操作軌跡の一部である操作位置Ｐ５，Ｐ６，Ｐ８〜Ｐ１０が表示ボタンＢ（７０５）の領域と重畳している。
【０１１７】
操作位置Ｐ１２の処理に関し、続いて、図６のステップＳ６０３において、認識部２２５は、ダブルタップ操作の操作軌跡と重畳していると判断した表示ボタンの操作を認識（検出）する。図７（ｃ）に示すタップ操作の第３例では、操作位置Ｐ１〜Ｐ６までの第１のタップ操作と、操作位置Ｐ７〜Ｐ１２までの第２のタップ操作とで構成されるダブルタップ操作が行われており、それぞれのタップ操作の操作軌跡が表示ボタンと重畳している。この場合、本実施形態では、認識部２２５は、ダブルタップ操作における最初の第１のタップ操作の操作軌跡による重畳を優先して、表示ボタンの操作を認識（検出）する。具体的に、図７（ｃ）に示す例では、第１のタップ操作の操作軌跡（操作位置Ｐ１〜Ｐ６）が、最初に表示ボタンＡ（７０４）に重畳しているため、認識部２２５は、表示ボタンＡ（７０４）の操作を認識（検出）する。具体的に、認識部２２５は、図７（ｃ）に示すようにダブルタップ操作の操作軌跡が複数の表示ボタンに重畳した場合には、ダブルタップ操作における最初の第１のタップ操作の操作軌跡による重畳判定結果を優先して、表示ボタンに対する当該操作と認識する。その理由を以下に記載する。一般的に、ユーザは操作の開始時に（または前半に）より注意を払う（集中して操作を行う）傾向がある。したがって、ダブルタップ操作における最初の第１のタップ操作の操作軌跡による重畳判定結果を優先して表示ボタンの操作を認識することにより、よりユーザの操作意図に即した表示ボタンの選択を行うことができ、操作性を向上させることができると考えられるためである。
【０１１８】
その後、タップ操作の第１例と同様に、図３のステップＳ３１０以降の処理を行う。
【０１１９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
このプログラム及び当該プログラムを記憶したコンピュータ読み取り可能な記憶媒体は、本発明に含まれる。
【０１２０】
なお、上述した本発明の実施形態は、いずれも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２１】
１００：テーブルトップインタフェースシステム、１１０：情報処理装置、１２０：距離画像センサ、１３０：可視光カメラ、１４０：プロジェクタ、１５０：操作面
【図１】
2019016029.tif 000003
【図２】
2019016029.tif 000004
【図３】
2019016029.tif 000005
【図４】
2019016029.tif 000006
【図５】
2019016029.tif 000007
【図６】
2019016029.tif 000008
【図７】
2019016029.tif 000009
【図８】
2019016029.tif 000010