(57)【要約】  本発明は、操作体と対象面の近接の程度の検出結果に誤差が含まれる場合に生じるタッチ入力の終了の誤認識を低減することを目的とする。  本発明は、上記の目的を達成する一手段として、所定の面に対する操作体近接の程度を表す情報を取得する距離取得部２１４と、前記操作体による前記所定の面へのタッチ入力の開始が認識された後の前記近接の程度の遷移に基づいて、前記近接の程度に関する第１基準値を決定する基準決定部２１５と、前記決定された前記第１基準値に基づいて、前記タッチ入力の終了を認識するための前記近接の程度に関する第１条件を決定する条件決定部２１５と、前記距離取得部２１４によって取得される情報が表す前記近接の程度が前記条件決定部２１５によって決定された前記第１条件を満たしたことに応じて、前記タッチ入力の終了を認識する認識部２１７とを備える。
2017029749.tif 000002
【特許請求の範囲】
【請求項１】
所定の面に対する操作体の近接の程度を表す情報を取得する取得手段と、
前記操作体による前記所定の面へのタッチ入力の開始が認識された後の前記近接の程度の遷移に基づいて、前記近接の程度に関する第１基準値を決定する基準決定手段と、
前記基準決定手段によって特定された前記第１基準値に基づいて、前記タッチ入力の終了を認識するための前記近接の程度に関する第１条件を決定する条件決定手段と、
前記取得手段によって取得される情報が表す前記近接の程度が前記条件決定手段によって決定された前記第１条件を満たしたことに応じて、前記タッチ入力の終了を認識する認識手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記近接の程度を表す情報とは、
前記操作体と前記所定の面との間の距離に対応する値であることを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記近接の程度を表す情報とは、
前記操作体により前記所定の面に与えられる圧力の大きさに対応する値であることを特徴とする、
請求項１に記載の情報処理装置。
【請求項４】
前記近接の程度を表す情報とは、
前記操作体が近接することによって前記所定の面に生じる静電容量の変化量に対応する値であることを特徴とする、
請求項１に記載の情報処理装置。
【請求項５】
前記近接の程度を表す情報とは、
前記操作体と前記所定の面とが接触する面積の大きさに対応する値であることを特徴とする、
請求項１に記載の情報処理装置。
【請求項６】
前記基準決定手段は、
前記操作体による前記所定の面へのタッチ入力の開始が認識された後の前記近接の程度の遷移のうち、前記操作体が前記所定の面に最も近づいた時点での前記近接の程度に基づいて前記第１基準値を決定することを特徴とする、
請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記条件決定手段は、前記操作体と前記所定の面との間の距離が、前記第１基準値に所定値を加えたことで得られる閾値より大きいことを前記近接の程度に関する前記第１条件として決定することを特徴とする、
請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記条件決定手段は、前記操作体による前記所定の面へのタッチ入力の開始が認識された後、前記タッチ入力が継続されている時間が所定時間を越えるまでの間は、前記第１条件を前記タッチ入力の終了を認識するための条件として決定することを特徴とする、
請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記条件決定手段は、前記操作体による前記所定の面へのタッチ入力の開始が認識された後、前記タッチ入力中の前記操作体の移動距離が所定距離を越えるまでの間、前記第１条件を前記タッチ入力の終了を認識するための条件として決定することを特徴とする、
請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項１０】
前記条件決定手段は、前記操作体による前記所定の面へのタッチ入力の開始が認識された後、前記操作体が所定速度で移動するまでの間、前記第１条件を前記タッチ入力の終了を認識するための条件として決定することを特徴とする、
請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項１１】
さらに、
前記基準決定手段は、前記操作体による前記所定の面へのタッチ入力の終了が認識された後の前記近接の程度に基づいて、前記近接の程度に関する第２基準値を決定し、
前記条件決定手段は、前記第２基準値に基づいて、前記タッチ入力が開始されたことを認識するための前記近接の程度に関する第２条件を決定し、
前記認識手段は、前記取得手段によって取得される情報が表す前記近接の程度が前記条件決定手段によって決定された前記第２条件を満たしたことに応じて、前記タッチ入力が開始されたことを認識する
を備えることを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記基準決定手段は、
前記操作体による前記所定の面へのタッチ入力の終了が認識された後の前記近接の程度の遷移のうち、前記操作体が前記所定の面から最も離れたた時点での前記近接の程度に基づいて前記第２基準値を決定することを特徴とする、
請求項１１に記載の情報処理装置。
【請求項１３】
前記条件決定手段は、前記操作体と前記所定の面との間の距離が、前記第２基準値から所定値を減じたることで得られる閾値より小さいことを前記近接の程度に関する前記第２条件として決定することを特徴とする、
請求項１１又は１２のいずれか一項に記載の情報処理装置。
【請求項１４】
前記条件決定手段は、
前記操作体による前記所定の面へのタッチ入力の終了が検出された後、前記操作体と前記所定の面との間の距離が所定の距離を越えるまでの間、前記第２条件を前記タッチ入力が開始されたことを認識するための条件として決定することを特徴とする、
請求項１１乃至１３のいずれか一項に記載の情報処理装置。
【請求項１５】
取得手段により、所定の面に対する操作体の近接の程度を表す情報を取得する取得工程と、
基準決定手段により、前記操作体による前記所定の面へのタッチ入力の開始が認識された後の前記近接の程度の遷移に基づいて、前記近接の程度に関する第１基準値を決定する特定工程と、
条件決定手段により、前記第１基準値に基づいて、前記タッチ入力の終了を認識するための前記近接の程度に関する第１条件を決定する決定工程と、
認識手段により、前記取得工程で取得される情報が表す前記近接の程度が前記決定工程で決定された前記第１条件を満たしたことに応じて、前記タッチ入力の終了を認識する認識工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１６】
コンピュータを、所定の面に対する操作体の近接の程度を表す情報を取得する取得手段と、
前記操作体による前記所定の面へのタッチ入力の開始が認識された後の前記近接の程度の遷移に基づいて、前記近接の程度に関する第１基準値を決定する基準決定手段と、
前記基準決定手段によって特定された前記第１基準値に基づいて、前記タッチ入力の終了を認識するための前記近接の程度に関する第１条件を決定する条件決定手段と、
前記取得手段によって取得される情報が表す前記近接の程度が前記条件決定手段によって決定された前記第１条件を満たしたことに応じて、前記タッチ入力の終了を認識する認識手段とを備える情報処理装置として機能させるプログラム。
【請求項１７】
請求項１６に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作者によるタッチ入力を検出する技術に関する。
【背景技術】
【０００２】
近年では、ＡＲ（Augmented Reality）やＭＲ（Mixed Reality）といった環境において、物理的には存在しない仮想的なタッチ対象面に対するタッチが行われる場面がある。また、プロジェクションによってユーザインタフェース（以下、ＵＩ）を壁や机など任意の操作面に投影し、投影したＵＩに対してタッチが行われる場面がある。このような場面においては、ステレオカメラや赤外カメラ等、距離情報を得ることが可能な距離画像の撮像手段を用い、対象面と、所定の操作体の一部（例えば操作者の指先）との間の近接の程度に基づいて、両者が接触しているか否かを判定することが多い。具体的には、対象面と、操作者の指先との間の距離に所定の閾値を設け、その閾値を越える程度両者が近づいた場合に、指先が対象面にタッチしたと判定する。以下、指先と対象面が非接触の状態から接触することをタッチ、接触状態から非接触になることをリリースと表記する。【０００３】
距離画像から距離情報を得るなど、センサで検知した情報から操作体と対象面の近接の程度を取得する処理を実際に行う場合、センサの精度や環境に起因して生じる誤差を無くすことは難しい。操作体と対象面の間の距離など、両者の近接の程度に対する閾値判定を用いたタッチとリリースの検出においては、誤差を踏まえた上で適切な閾値を設定することが困難な場合がある。【０００４】
特許文献１は、リリースを認識するための条件を、閾値を越えることではなく、対象面をタッチした操作体の動きの向きが反転したこととしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４０５２４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
操作体の位置検出に誤差が生じる環境では、ユーザが操作体を固定していたとしても、位置情報のぶれが検出されることがある。検出されるぶれの大きさによっては、ユーザが意図しないにも関わらず、操作体の動きに反転が生じたような結果が得られる場合もある。特許文献１は、そのような場合に対する考慮はなされていない。【０００７】
本発明は、操作体と対象面の近接の程度の検出結果に誤差が含まれる場合に生じる、タッチ入力の終了の誤認識を低減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記の目的を達成するために、所定の面に対する操作体の近接の程度を表す情報を取得する取得手段と、前記操作体による前記所定の面へのタッチ入力の開始が認識された後の前記近接の程度の遷移に基づいて、前記近接の程度に関する第１基準値を決定する基準決定手段と、前記基準決定手段によって特定された前記第１基準値に基づいて、前記タッチ入力の終了を認識するための前記近接の程度に関する第１条件を決定する条件決定手段と、前記取得手段によって取得される情報が表す前記近接の程度が前記条件決定手段によって決定された前記第１条件を満たしたことに応じて、前記タッチ入力の終了を認識する認識手段とを備える。
【発明の効果】
【０００９】
本発明によれば、操作体と対象面の近接の程度の検出結果に誤差が含まれる場合に生じる、タッチ入力の終了の誤認識を低減することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の情報処理装置を利用するシステムの外観の一例を表す図
【図２】（ａ）第１実施形態情報処理装置のハードウェア構成、（ｂ）第１実施形態の機能構成の一例を表すブロック図
【図３】第１実施形態における操作認識処理の流れの一例を表すフローチャート
【図４】（ａ）第１実施形態におけるタッチ操作認識処理の流れの一例を表すフローチャート、（ｂ）第１実施形態におけるタッチ操作認識処理の流れの一例を表すフローチャート
【図５】（ａ）操作中の指先と対象面の間の距離の理想的な遷移の一例を表す図、（ｂ）操作中の指先と対象面の間の距離の遷移の一例を表す図
【図６】（ａ）第１実施形態のリリース閾値決定処理の流れの一例を表すフローチャート、（ｂ）第１実施形態のタッチ閾値決定処理の流れの一例を表すフローチャート
【図７】第１実施形態で決定されるリリース閾値の一例を表す図
【図８】第１実施形態で決定されるタッチ閾値の一例を表す図
【図９】（ａ）変形例でのタッチ操作認識処理の流れの一例を表すフローチャート、（ｂ）変形例でのリリース閾値決定処理の流れの一例を表すフローチャート
【図１０】変形例で決定されるリリース閾値の一例を表す図
【発明を実施するための形態】
【００１１】
以下、本発明に係る実施例の情報処理を、図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲をそれらの構成に限定する趣旨のものではない。
【００１２】
＜第１実施形態＞
一般的に「タッチ」とは、テーブル面に投影されたアイテムの表示領域に指先を接触または近接させることにより当該アイテムに対するタッチ入力を開始する動作である。また、「リリース」とは、タッチ操作後のアイテムに接触または近接させた指先をアイテムから離すことにより、当該アイテムに対するタッチ入力を終了する動作である。タッチ操作を採用する多くの情報処理装置は、タッチからリリースに至る間の指先の位置・動き・速度等に基づいてタップ・ムーブ・フリック等の様々なタッチ操作を認識することができる。例えば、指先を対象面にタッチした後、対象面に沿った方向にはほぼ動かずにすぐリリースするという一流れの入力は、「タップ操作」と呼ばれ、表示されているアイテムを選択するための指示として認識されることが多い。本実施形態では、「タッチ」と「リリース」のそれぞれを「タッチ操作」及び「リリース操作」という単独の操作の入力として認識し、ユーザに対してフィードバックを行う情報処理装置を例に説明していく。例えば、タッチ操作が認識されたこと応じて、タッチされているアイテムの色を変更する。さらにリリース操作が認識された場合には、タッチされていたアイテムを拡大する。また、本実施形態では、タッチからリリースに至る間の操作体の状態を、タッチ入力中と表記する。
【００１３】
スマートホンやタブレットＰＣなどの携帯型装置では、多くの場合、表示画面に設けたタッチセンサにより操作者の指先が表示画面に接触したことを直接検出し、タッチとリリースを認識する。このように、直接的に所定のタッチ対象面に対する接触／非接触を検出するシステムでは、タッチ操作を入力するユーザの意図と大きく異なるタイミングでタッチやリリースが認識されることは少ない。これに対し、操作体と対象面の間の距離を取得し、その距離と閾値との比較に基づいてタッチとリリースを検出する場合は、十分な精度で距離を取得できないために、ユーザの意図に沿わないタイミングで計測結果の距離が閾値を越えてしまう可能性がある。従来は、検出誤差によってタッチの認識漏れが起きることを防ぐために、タッチを検出するためのタッチ対象面からの距離の閾値（以下ではタッチ閾値という）を十分に大きく設定することが多かった。また、リリースを検出するためのタッチ対象面からの距離の閾値（以下ではリリース閾値という）は、タッチ閾値に一致させるか、あるいは、タッチ閾値よりさらに大きく設定されることがあった。リリース閾値をより大きく設定すると、操作体が十分に対象面から離れるまではリリースが認識されないので、タッチ入力中に生じた検出のぶれによって、操作の認識が中断されてしまうことを防ぐことができた。しかしながら、タッチ閾値とリリース閾値のそれぞれを大きく設定すると、結果的に、ユーザは不自然に大振りな動きでタッチ操作を行わなくてはタッチとリリースが認識されなくなる。その結果、操作性が低下してしまう。
【００１４】
そこで本実施形態では、所定のタッチ閾値に関する閾値処理により、タッチが認識された場合、その後のタッチ入力中の操作体とタッチ対象面との近接の程度の遷移に基づいて、動的にリリース閾値を決定する。具体的には、操作体がタッチ入力中に最もタッチ対象面に近づいた時点での両者の近接の程度を基準とし、操作体が基準から所定の閾値の分だけタッチ対象面から遠ざかった段階でリリースを認識する。また、本実施形態では、一旦リリースが認識された後でタッチ入力が再開されるときのタッチ閾値は、リリースが認識された後の操作体とタッチ対象面との近接の程度の遷移に基づいて、動的に決定する。
【００１５】
以下、第１実施形態として、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムを選択するために、操作者が片手の指１本によってタッチ入力を行う場合を例に挙げて説明する。なお、以下では、ユーザが操作の入力に用いる操作体としては、ユーザの片手の指を例に挙げるが、スタイラスやロボットアームなどの物体が操作体として利用される場合にも適用可能である。
【００１６】
［システムの外観］
図１は、本実施形態に係る情報処理装置１００を設置したテーブルトップインタフェースシステムの外観の一例である。また、３次元空間内の位置情報を定義する座標軸も示す。対象面１０１は、テーブルトップインタフェースのテーブル部分であり、ユーザは、対象面１０１をタッチすることでタッチ操作を入力することが可能である。本実施形態では、対象面１０１の上方に、対象面を見下ろすようにして距離画像センサ１０２が設置される。距離画像とは、各画素の値に、基準位置（例えば、撮像に利用された撮像手段のレンズ中心など）から、その画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ１０２が撮像する距離画像の画素値には、距離画像センサ１０２から、対象面１０１あるいはその上方に存在する物体表面までの距離が反映される。撮像された距離画像は、情報処理装置１００に入力画像として入力される。情報処理装置１００は、入力画像を解析することでユーザの手１０６の三次元位置を取得し、入力される操作を認識する。従ってユーザは、対象面１０１と距離画像センサ１０２の間の空間の、距離画像センサ１０２によって撮像可能な範囲内で手などの所定の物体を動かすことにより、空間ジェスチャ操作を入力することが可能である。本実施形態では、赤外光を利用するパターン照射方式、あるいは、ＴＯＦ（Time-of-Flight）方式のセンサを利用する。
【００１７】
また本実施形態では、可視光カメラ１０３もまた、上方から対象面１０１を見下ろすようにして設置される。情報処理装置１００は、可視光カメラ１０３を制御して、対象面１０１に載置された物体を撮像してその読み取り画像を得る書画カメラとして機能することができる。情報処理装置１００は、可視光カメラ１０３によって得られる可視光画像や、距離画像センサ１０２によって得られる距離画像に基づいて、対象面１０１上の空間に存在する物体を検出し、さらに識別する。物体には、例えば、ユーザの手、紙媒体や本などのドキュメントやその他の立体物を含む。
【００１８】
プロジェクタ１０４は、対象面１０１の上面に画像の投影を行う。本システムでは、ユーザは投影された画像に含まれるアイテム１０５に対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、手１０６の検出および操作の認識には、距離画像センサ１０２を使って取得した距離画像を用いる。距離画像を用いることで、プロジェクタ１０４の投影光の影響でユーザの手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置としては、プロジェクタ１０４に替えて、対象面１０１を液晶ディスプレイとするなどとすることもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いることでも、投影光の影響を受けずに手の検出が可能である。
【００１９】
なお、対象面１０１を上方からみた画像が得られる構成であれば、必ずしも距離画像センサ１０２及び可視光カメラ１０３自体が上方に設置されている必要はない。例えば、対象面の情報に設置したミラーを撮像するように構成したとしても、対象面１０１を上方から見た画角の画像が得られる。プロジェクタ１０４も同様に、図１の例では、斜め上方から見下ろすように対象面１０１上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して対象面１０１に反射させてもよい。
【００２０】
本実施形態では、対象面１０１上の三次元空間に図１に示すｘ、ｙ、ｚ軸を定義し、位置情報を扱う。ここでは一例として、テーブルの上面に平行な二次元がｘｙ平面、テーブル上面に直交し上方に伸びる方向をｚ軸の正方向としている。なお、本実施形態では、ｚ軸方向は、世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を対象面１０１とするシステムにも適用可能である。
【００２１】
［装置の構成］
図２（ａ）は、本実施形態に係る情報処理装置１００を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット（ＣＰＵ）２００は、ＲＡＭ２０２をワークメモリとして、ＲＯＭ２０１や記憶装置２０３に格納されたＯＳやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス２０４に接続された各構成を制御する。ＣＰＵ２００が実行する処理には、後述するタッチ操作とリリース操作の認識処理が含まれる。記憶装置２０３は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。距離画像センサ１０２は、ＣＰＵ２００の制御に従い、アイテムが表示されるテーブルとアイテムを操作するユーザの手を含む空間の距離画像を撮像し、撮影した距離画像をシステムバス２０４に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい赤外光を利用する方式のセンサを例に説明するが、用途に応じて視差方式や赤外光の反射時間を利用する方式などを利用することも可能である。プロジェクタ１０４は、ＣＰＵ２００の制御に従い、テーブルに操作対象となる画像アイテムを投影する。
【００２２】
なお図１の利用例では、可視光カメラ１０３、距離画像センサ１０２、プロジェクタ１０４はそれぞれ情報処理装置１００に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置１００と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置１００に一体化されていても構わない。
【００２３】
図２（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、後述する各フローチャートに従った処理を実行することで実現される。また例えば、ＣＰＵ２００を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００２４】
画像取得部２１０は、距離画像センサ１０２によって撮像された距離画像を、入力画像として一定時間毎に取得し、ＲＡＭ２０２に随時保持する。なお画像取得部２１０が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」あるいは「入力画像を取得する」として説明する。
【００２５】
領域抽出部２１１は、画像取得部２１０によって取得された入力画像の各画素について、背景差分法に従って閾値判定やノイズ低減処理を施し、距離画像中の手領域を抽出する。背景画像としては、テーブル１０１上に物体が存在しない状態が撮像された入力画像が使用される。手領域とは、入力された距離画像のうち、操作体としてユーザが利用する手が映っている領域である。位置検出部２１２は、領域抽出部２１１によって抽出された手領域の輪郭情報に基づき、ユーザの手の指先位置を検出し、座標値を特定する。
【００２６】
距離取得部２１３は、位置検出部２１２が検出した指先位置と、タッチ対象面であるテーブル上面との間の距離を近接の程度を表す情報として取得する。本実施形態の入力画像は、各画素値に、ｚ座標に相当する値を持つため、背景画像と最新の入力画像のそれぞれで、位置検出部２１２が検出した指先位置に相当する画素の画素値の差分が、指先（上面）とテーブル１０１上面の間の距離に相当する。このように本実施形態においては、操作体とタッチ対象面の近接の程度は、図１に示した座標軸のうちｚ座標の値に対応し、これは、指先のテーブル面からの高さを意味する。ただし、操作体とタッチ対象面の近接の程度は、距離画像の画素値に基づいて得られる距離情報には限られない。例えば、操作体がタッチ対象面に近接することによって生じる静電容量の変化量や、温度や圧力、接触面積の変化量の情報であっても構わない。
【００２７】
基準決定部２１４は、後述する認識部２１６によってタッチが認識された後の、操作体の対象面に対する近接の程度の遷移に基づいて、リリース閾値を決定するための基準となる第１基準値を決定する。第１基準値は、操作体が対象面に最も近づいた時点の情報を基に特定される。本実施形態では、近接の程度は、タッチ対象面と操作体の間の距離（テーブルからの指先の高さ）である。従って基準決定部２１４は、タッチ入力が開始された後の、タッチ対象面と操作体の間の距離の遷移の中で、最小の距離（最小の高さ）を第１基準値として決定する。また本実施形態では、基準決定部２１４は、後述する認識部２１６によってリリースが認識された後の、前記操作体の対象面に対する近接の程度の遷移に基づいて、第２基準値を決定する。第２基準値は、リリース後に再度入力されるタッチを認識するためのタッチ閾値を決定する処理において基準となる。第２基準値は、リリース後に操作体が対象面に最も離れた時点の情報を基に特定される。本実施形態では、基準決定部２１４は、リリースが認識された後の、タッチ対象面と操作体の間の距離（テーブルからの指先の高さ）の遷移の中で、最大の距離（最大の高さ）を第２基準値とする。
【００２８】
条件決定部２１５は、基準決定部２１４が決定した基準値を使って、タッチ操作とリリース操作の検出に用いる条件を決定する。本実施形態では、少なくともタッチ入力の終了を認識するための第１条件として、タッチ対象面と操作体の近接の程度に関するリリース閾値を決定する。そして、タッチ入力の再開を認識するための第２条件としてタッチ閾値を決定する。そして、本実施形態では、近接の程度を表す情報としてタッチ対象面と操作体の間の距離（テーブルからの指先の高さ）を扱うため、リリース閾値とタッチ閾値は距離（高さ）の閾値である。具体的には、第１条件となるリリース閾値は、第１基準値として決定された距離に、所定値を加えることで決定される。第２条件となるタッチ閾値は、第２基準値として決定された値に、所定値を加えることで決定される。ただし、第２基準値に所定値を加えた結果が、タッチ閾値の初期値より大きくなる場合は、タッチ閾値は初期値のままとなる。
【００２９】
認識部２１６は、距離取得部２１３によって取得された距離と、予め決定された初期値としてのタッチ閾値、あるいは条件決定部２１５によって決定された第１条件、第２条件である閾値との比較に基づいて、タッチ操作とリリース操作を認識する。具体的には、操作体がタッチ対象面から十分離れた距離から、タッチ閾値を越える距離に近づいた場合に、タッチを認識する。また、操作体がタッチ対象面からリリース閾値を越える距離まで離れた場合にリリースを認識する。
【００３０】
表示制御部２１７は、ＲＯＭ２０１や記憶装置２０３に記憶された情報を用いて、本実施形態の表示部であるプロジェクタ１０４によって、テーブルの対象面１０１上に投影させる画像を生成し、出力する。出力された画像は、プロジェクタ１０４によって、テーブル上の対象面１０１上に投影表示される。投影される画像には、少なくとも選択操作の対象となる複数のアイテムを含むＧＵＩ画面が含まれる。アイテム毎に選択や移動が可能であってもよく、画像全体が選択や移動の対象であってもよい。
【００３１】
［タッチ操作の認識処理］
図３のフローチャートに従って第１実施形態の操作の認識処理を説明する。図３のフローチャートの処理は、情報処理装置の各機能部を構成するＣＰＵ２００がＲＯＭ２０１に記録されたプログラムをＲＡＭ２０２に展開して実行することで実現される。本実施形態では、距離画像センサ１０２によって撮影された距離画像が情報処理装置１００に入力されたことに応じて図３のフローチャートの処理が開始される。また本実施形態では、図３のフローチャートの処理が、距離画像センサ１０２から距離画像が入力される毎に繰り返される。従って処理が繰り返される周期は、距離画像センサ１０２の撮像映像のフレームレートに一致する。
【００３２】
ステップＳ３０１では、画像取得部２１０が、距離画像センサ１０２から、入力画像として、画像が投影されるテーブルとユーザの手を含む空間を撮像した距離画像を取得する。取得される距離画像の各画素には、距離画像センサ１０２から被写体までの距離に対応する値が、画素値として保持される。本実施形態では、入力画像内の各画素の位置と画素値に対して、距離画像センサ１０２のレンズ特性および対象面１０１との相対位置関係に基づく座標変換を施す。これにより、入力画像内の各画素の情報を、テーブル１０１上に定義された実世界の３次元座標系にマッピングして、三次元位置情報として扱う。
【００３３】
ステップＳ３０２では、領域抽出部２１１が、距離画像の各画素を走査し、距離画像からユーザの手が映る手領域を抽出する。本実施形態においては、入力されたユーザの手を含む距離画像と、予め取得した背景のみの距離画像（テーブルのみを撮像した距離画像）との差分を画素毎に求め、差分が閾値よりも大きくなる画素を手領域として抽出する。すなわち、テーブル上面からの高さが閾値以上高い画素が集合した領域を、テーブルより上に存在する手が写っている領域とみなす。この方式は背景差分法の考え方に従う。さらに、抽出された領域に、膨張収縮処理を施し、距離画像センサの誤差に由来する微小なノイズを除去することで手領域を補正する。なお、他の抽出方法として、画素値が表すセンサからの距離が、所定の閾値が表す距離よりも近いという条件を満たす画素群を手領域として抽出することも可能である。この場合は背景画像として用いるためのテーブルのみを撮像した距離画像を予め取得することが不要となる。
【００３４】
ステップＳ３０３では、位置検出部２１２が、ステップＳ３０２において抽出された手領域の形状に基づいて、指先に相当する位置を探索し、その３次元座標を検出する。本実施形態では、まず手領域の輪郭点を抽出し、各輪郭点について、隣接する輪郭点と成すベクトル間の角度を算出する。そして、ベクトル間角度が閾値よりも小さくなる輪郭点を指先位置の候補点として抽出し、さらに複数の指先位置の候補点が密集する位置を指先として特定する。つまり、輪郭が比較的細まった突端部を表す部分の先端を指先位置として特定する。特定した指先位置、距離画像の画素値、実世界座標系への座標変換パラメータを基に、実世界座標系における指先の３次元座標を算出することが可能である。なお、指先位置の検出方法はこれに限らず、円形テンプレートマッチングや、手の構造に基づく制約を使って位置を絞り込む方法を利用することも可能である。
【００３５】
ステップＳ３０４では、距離取得部２１３が、ステップＳ３０３において検出された指先とタッチ対象面との間の距離を、近接の程度を表す情報として取得する。本実施形態においては、指先とタッチ対象面との間の距離は、テーブル上に定義されたｚ座標として算出される。
【００３６】
ステップＳ３０５では、認識部２１６が、現在は非タッチ状態かを判定する。本実施形態では、タッチ状態と非タッチ状態の２つの状態を定義する。そして、各フレームについて、操作体がいずれの状態にあるかの判定結果を得る。ステップＳ３０５では、前のフレームで、操作体がいずれの状態に遷移していたかを参照することで、現フレームがタッチ入力中か否かが判定される。
【００３７】
タッチ状態とは、操作体とタッチ対象面との間の距離が、タッチ閾値（初期値として予め定義されたタッチ閾値と条件決定部２１５に第2条件として決定されたタッチ閾値の両方を含む）を下回っている状態である。非タッチ状態とは、タッチ状態にあった操作体がタッチ対象面から遠ざかることで、操作体とタッチ対象面との間の距離がリリース閾値を越えた状態である。ただし、情報処理装置１００が起動されてから一度もタッチの認識が行われていない初期状態は非タッチ状態に含まれる。非タッチ状態からタッチ状態への状態遷移が起こることが、すなわちタッチを認識することである。同様に、タッチ状態から非タッチ状態への状態遷移が起こることが、リリースを認識することになる。本実施形態では、操作体がタッチ対象面に物理的に接触しているか否かには関わらず、操作体がタッチ状態にある間を、タッチ入力中であるとみなす。そして、非タッチ状態に遷移した場合、タッチ入力が終了されたとみなす。これにより、情報処理装置１００は、タッチセンサ機能を有さない任意の面が対象面となる場合でも、タッチセンサを搭載した機器と同様に、いわゆるタッチ操作を認識可能となる。
【００３８】
認識部２１６は、状態遷移が生じる毎に、ＲＡＭ２０２に、現在の状態を示す情報を保持する。従って、認識部２１６は、ステップＳ３０５において、前のフレームの処理の結果、ＲＡＭ２０２に保持されている情報を参照して判定を行う。現在は非タッチ状態であると判定された場合（ステップＳ３０５でＹｅｓ）、ステップＳ３０６に進む。現在は非タッチ状態でないと判定された場合（ステップＳ３０５でＮｏ）、ステップＳ３０７に進む。非タッチ状態でない場合とは、すなわちタッチ状態の場合である。
【００３９】
ステップＳ３０６では、タッチ操作の認識処理が実行される。タッチ操作の認識処理では、現在非タッチ状態にある操作体とタッチ対象面との間の距離と、タッチ閾値との大小関係に基づいて、タッチ操作が認識される。ここで、図４（ａ）のフローチャートは、ステップＳ３０６において認識部２１６が実行する処理の流れの一例を表す。まず、ステップＳ４０１において、認識部２１６は、ステップＳ３０４において取得された距離は、タッチ閾値より小さいかを判定する。ここで比較に用いられるタッチ閾値は、初期値として情報処理装置１００が保持していたタッチ閾値か、あるいは、後述するステップＳ３１０において第２条件として決定されたタッチ閾値のいずれかである。取得された距離がタッチ閾値より小さいと判定される場合（ステップＳ４０１でＹｅｓ）、ステップＳ４０２に進む。取得された距離がタッチ閾値より小さいと判定されない場合（ステップＳ４０１でＮｏ）、タッチ操作は認識されないため、図３のフローチャートに戻る。
【００４０】
ステップＳ４０２では、認識部２１６が、指先の状態が、非タッチ状態からタッチ状態に遷移したことを表す情報をＲＡＭ２０２に保持する。ステップＳ４０３では、認識部２１６が、条件決定部２１５及び表示制御部２１７など、後続する処理を行う各機能部に、タッチ入力が開始されたことを通知する。
【００４１】
図３のフローチャートに戻り、ステップＳ３０７では、リリース操作の認識処理が実行される。リリース操作の認識処理では、タッチ状態にある操作体とタッチ対象面との間の距離と、リリース閾値との大小関係に基づいて、リリース操作が検出される。ここで、図４（ｂ）のフローチャートは、ステップＳ３０７において認識部２１６が実行する処理の流れの一例を表す。まず、ステップＳ４１１において、認識部２１６は、ステップＳ３０４において取得された距離は、リリース閾値より大きいかを判定する。ここで比較に用いられるリリース閾値は、後述するステップＳ３１１において第１条件として決定されたリリース閾値である。取得された距離がリリース閾値より大きいと判定される場合（ステップＳ４１１でＹｅｓ）、ステップＳ４１２に進む。取得された距離がリリース閾値より大きいと判定されない場合（ステップＳ４１１でＮｏ）、リリース操作は認識されないため、図３のフローチャートに戻る。
【００４２】
ステップＳ４１２では、認識部２１６が、指先の状態が、タッチ状態から非タッチ状態に遷移したことを表す情報をＲＡＭ２０２に保持する。またこのとき、認識部２１６は、現在時刻を、最後にリリース操作が認識された時刻としてＲＡＭ２０２に保持する。ステップＳ４１３では、認識部２１６が、条件決定部２１５及び表示制御部２１７など、後続する処理を行う各機能部に、タッチ入力が終了されたことを通知する。
【００４３】
図３のフローチャートに戻り、ステップＳ３０８では、表示制御部２１７が、認識部２１６の認識結果に基づいて、表示部であるプロジェクタ１０４に対する出力を制御する。例えば、タッチ操作が認識された場合には、ステップＳ３０３において検出された指先位置に応じて表示されている画像の一部の色を変更する。また、リリース操作が認識された場合には、指先位置に応じて表示されている画像の一部を拡大する。ただしこれらは一例に過ぎない。
【００４４】
ステップＳ３０９では、条件決定部２１５が、ＲＡＭ２０２に保持されている指先の状態を表す情報を参照し、現在は非タッチ状態かを判定する。なおステップＳ３０９の判定は、現フレームに対するタッチ操作とリリース操作の認識処理の結果に基づくものであるため、ステップＳ３０５の判定と同じ結果になるとは限らない。現在は非タッチ状態であると判定された場合（ステップＳ３０９でＹｅｓ）、ステップＳ３１０に進む。現在は非タッチ状態でないと判定された場合（ステップＳ３０９でＮｏ）、ステップＳ３１１に進む。ステップＳ３１０では、次のフレームの処理で利用するタッチ閾値を決定する処理が実行される。ステップＳ３１１では、次のフレームの処理で利用するリリース閾値を決定する処理が実行される。ステップＳ３１０のタッチ閾値決定処理と、ステップＳ３１１のリリース閾値決定処理については後述する。
【００４５】
［リリース閾値の決定処理］
ここで、ステップＳ３１１で実行されるリリース閾値決定処理の詳細を説明する。まず、図５に、タッチ操作とリリース操作を連続して入力する指先の、タッチ対象面に対する近接の程度の遷移の一例を表す。図５（ａ）（ｂ）において、縦軸はｚ座標を表す。ｚ座標は本実施形態では、操作体とタッチ対象面（ｚ＝０の面）の間の近接の程度を表す距離である。また、ｚ座標は、テーブル面（ｚ＝０）からの指先の高さと言いかえることもできる。横軸は時間である。図５（ａ）の軌跡５０１は、ユーザが手１０６の人差指の指先５００を対象面１０１に接触させてタッチ操作を行い、その直後にリリース操作を行う（この入力は上述したタップ操作に相当する）場合の指先５００の理想的な軌跡である。理想的な軌跡５０１の場合、時間が進むにつれて、ｚ座標が一様に減少し、ピークを越えた後で一様に増加している。
【００４６】
しかしながら、様々なユーザがそれぞれ自然なタップ操作を行う場合、取得される指先位置の軌跡は理想的とは限らない。実際には、図５（ｂ）に示すように、ユーザの手の動きの個人差や試行差、またセンサの距側精度の影響により様々である。例えば、軌跡５０２は、タッチ操作後に指先５００が十分に離れなかった場合の軌跡である。また、軌跡５０３は、指先と対象面とが十分に近づかない場合の軌跡である。また、軌跡５０４は、ｚがマイナスの値として検出されてしまった場合の軌跡である。軌跡５０５は、値がぶれた結果、細かい上下移動が検出されてしまった場合の軌跡である。これらの軌跡に対し、例えば破線５０６で示す固定されたｚ座標をリリース閾値として用いる。すると、そもそもタッチ操作が検出されなかったり、タッチ操作が認識できてもリリース操作が認識できなかったり、エラーとなってしまったり、複数回タッチ操作が検出されてしまったりし得る。本実施形態では、図５（ｂ）のような理想的ではない軌跡を描くタッチ入力による操作の誤検出を低減するため、リリース操作の認識に用いるリリース閾値の値を固定せず、タッチ入力が開始後の指先と対象面の近接の程度遷移に応じて動的に決定する。
【００４７】
ここで図６（ａ）のフローチャートを参照して、ステップＳ３１１のリリース閾値決定処理の流れを説明する。まず、ステップＳ６０１において、条件決定部２１５は、ステップＳ３０４において取得された距離が、ＲＡＭ２０２に保持されている第１基準値より小さいかを判定する。本実施形態において第１基準値は、タッチ入力が開始された後の操作体とタッチ対象面の間の距離の遷移において、最小の値が選ばれる。なお、初めてステップＳ３１１の処理が行われるため第１基準値の情報がＲＡＭ２０２に保持されていない場合、ステップＳ６０１は常にＹｅｓと判定するものとする。取得された距離が、保持している第１基準値より小さいと判定された場合（ステップＳ６０１でＹｅｓ）、ステップＳ６０２に進む。取得された距離が、保持している第１基準値より小さいと判定されない場合（ステップＳ６０１でＮｏ）、現フレームではリリース閾値を変更する必要がないので、図３のフローチャートに戻って一連の処理を終了する。ステップＳ６０２では、条件決定部２１５が、ステップＳ３０４において取得された距離を、第１基準値として保持する。ステップＳ６０３では、条件決定部２１５が、ＲＡＭ２０２に保持している第１基準値に、所定値α(α＞０)を加えた値を、リリース閾値として決定する。決定されるリリース閾値は、現在のタッチ入力の終了を認識するための、操作体と対象面の近接の程度に関する第１条件である。
【００４８】
図７に、本実施形態によって決定されるリリース閾値の一例を表す。図７においても、図５と同様、縦軸にｚ座標、横軸に時間が表される。破線７００は、初期値として与えられるタッチ閾値（一例としてタッチ閾値の大きさをγ＞０で表す）である。本実施形態ではまず、非タッチ状態にある指先５００と対象面１０１との間の距離が閾値７００を下回った時点で、指先のタッチ状態への状態遷移が検出される。それにより、タッチ入力が開始されたことが認識される。この時点をタッチ検出時点７０１として図中に示す。この後、フレームレートに従って新しく距離画像が入力される度に、指先５００と対象面１０１の間の距離（指先５００のｚ座標）の最小値が、第１基準値として保持される。図７において、線７０２は、フレーム毎に保持される第１基準値の軌跡を表す。そして、各フレームにおいて、第１基準値（線７０２）に、所定値α（ｚ方向の幅７０３）を加えた値を、リリース閾値として決定する。決定されたリリース閾値は、次のフレームを対象として、ステップＳ３０７のリリース操作の認識処理が実行されるときに、ステップＳ４１１の判定処理に利用される。図７において、破線７０４は、フレーム毎に決定されるリリース閾値の軌跡を表す。例えば、図７に示す軌跡５０２にそった指先５００の動きが検出された場合、指先５００とタッチ対象面１０１の間の距離（ｚ座標）がリリース閾値（破線７０４）を上回った時点７０５において、リリース操作が認識される。
【００４９】
なお、所定値α（ｚ方向の幅７０３）はセンサの距側誤差の大きさを許容するように定めることで、リリース操作の誤検出を抑制することが可能となる。センサの距側誤差は指先の形状や表面の特性によっても変化する場合があるため、これらも所定値αを定める上で参考にすることが望ましい。本実施形態では、このようにリリース閾値を動的に設定することで、適切なタイミングでリリース操作を認識することができるようになる。例えば、軌跡５０３のように操作体が対象面に十分に近づかないような場合にもタッチ操作を認識するためには、タッチ閾値γをある程度大きく設定する必要がある。そのような場合でも、本実施形態によるリリース閾値の決定方法を用いれば、リリース閾値は不必要なまでに大きくなることはない。
【００５０】
［タッチ閾値決定処理］
ここで、ステップＳ３１０で実行されるタッチ閾値の決定処理の詳細を説明する。図６（ｂ）は、本実施形態で実行されるタッチ閾値決定処理の流れの一例を表すフローチャートである。まず、ステップＳ６１１において、条件決定部２１５は、この時点がリリース操作の後、所定時間以内かを判定する。ステップＳ６１１の処理は、例えばユーザが変わった場合や、実行されるアプリケーションが変わった場合、あるいは装置が起動状態のまま放置された場合に、確実に閾値を初期状態に戻すための処理である。従って、ステップＳ６１１で判定される所定時間は、１人のユーザがアプリケーションに対して連続操作を行う平均的な時間の長さに対して、十分に長い時間として定められる。また環境によっては、ステップＳ６１１は省略してしまってもよい。本実施形態では、条件決定部２１５は、ステップＳ４１２でＲＡＭ２０２に最後にリリース操作が認識された時刻の情報を使って判定する。現在がリリース操作の後所定時間以内であると判定された場合（ステップＳ６１１でＹｅｓ）、ステップＳ６１３に進む。現在がリリース操作の後所定時間以内であると判定されない場合（ステップＳ６１１でＮｏ）、ステップＳ６１２に進む。本実施形態において条件決定部２１５は、ステップＳ６１１でＮｏと判定する場合、ステップＳ４１２でＲＡＭ２０２に最後にリリース操作が認識された時刻の情報を削除する。なお、情報処理装置１００が起動されてからこの時点までに一度もタッチ操作とリリース操作が認識されていない状態（初期状態といえる）でステップＳ６１１の処理が実行されている場合、判定結果はＮｏとなる。ステップＳ６１２では、条件決定部２１５が、タッチ閾値を、タッチ閾値の初期値として与えられている値γ（γ＞０）に決定する。そして、図３のフローチャートに戻って一連の処理を終了する。
【００５１】
一方、ステップＳ６１３において、条件決定部２１５は、ステップＳ３０４において取得された距離が、ＲＡＭ２０２に保持されている第２基準値より大きいかを判定する。本実施形態において第２基準値は、非タッチ状態における操作体とタッチ対象面の間の距離の遷移において、最大の値が選ばれる。なお、初めてステップＳ６１３の処理が行われるため、第２基準値の情報がＲＡＭ２０２に保持されていない場合、ステップＳ６１３は常にＹｅｓと判定するものとする。取得された距離が、保持している第２基準値より大きいと判定された場合（ステップＳ６１３でＹｅｓ）、ステップＳ６１４に進む。取得された距離が、保持している第１基準値より大きいと判定されない場合（ステップＳ６１３でＮｏ）、ステップＳ６１２に進む。ステップＳ６１４では、条件決定部２１５が、ステップＳ３０４において取得された距離を、第２基準値として保持する。ステップＳ６１５では、条件決定部２１５が、ＲＡＭ２０２に保持している第２基準値から、所定値β(β＞０)を減じた値を、タッチ閾値として決定する。
【００５２】
さらに、ステップＳ６１６で、条件決定部２１５が、ステップＳ６１３で決定されたタッチ閾値が、タッチ閾値の初期値として与えられている値γ（γ＞０）より大きいかを判定する。閾値が初期値γより大きいと判定された場合（ステップＳ６１６でＹｅｓ）、ステップＳ６１２に進む。閾値が初期値γより大きいと判定されない場合（ステップＳ６１６でＮｏ）、図３のフローチャートに戻って一連の処理を終了する。ステップＳ６１６の処理によりタッチ閾値の最大値を初期値γにすることで、タッチ閾値が無尽蔵に大きくなってしまうことを防ぐことができる。タッチ閾値の最大値は必ずしも初期値γに一致する必要はない。ただし、初期値は、情報処理装置１００の設置環境に対して最適化された値が設定されているため、γをタッチ閾値の最大値とするのが効率的である。ステップＳ３１０で上記のように決定されるタッチ閾値は、次のタッチ入力の開始あるいは再開を認識するための、操作体と対象面の近接の程度に関する第２条件である。
【００５３】
図８に、本実施形態によって決定されるタッチ閾値の一例を表す。なお図８は、図７に示した操作体の動きの続きを表している。従って、図７と共通する要素には同じ番号を付し、詳細な説明は省略する。図８は、直前にタッチ操作とリリース操作が認識された後で、再びタッチ入力が開始される場合の例を表す。このような状況は例えば、「ダブルタップ操作」と呼ばれる、タップ操作を２回連続して入力する操作が入力される場合などで発生する。リリース操作が認識された時点７０５では、タッチ状態にある指先５００と対象面１０１との間の距離がリリース閾値（破線７０４）を上回り、非タッチ状態に遷移する。本実施形態では時点７０５の後、フレームレートに従って新たに距離画像が入力される度に、指先５００と対象面１０１の間の距離（指先５００のｚ座標）の最大値が、第２基準値として保持される。図８において、線８００は、フレーム毎に保持される第２基準値の軌跡を表す。そして、各フレームにおいて、第２基準値（線８００）から、所定値β（ｚ方向の幅８０１）を減じた値を、タッチ閾値として決定する。図８において、破線８０２は、フレーム毎に決定されるタッチ閾値の軌跡を表す。例えば、図８における軌跡５０２にそった指先５００の動きが検出された場合、指先５００とタッチ対象面１０１の間の距離（ｚ座標）がタッチ閾値（破線８０２）を下回った時点８０３において、タッチ操作が認識される。ここで指先５００の軌跡５０２は、初期値として与えられたタッチ閾値である閾値７００を上回る前に、再びタッチ対象面１０１に近づいている。ダブルタップ操作を入力する場合のように、ユーザがタッチとリリースを繰り返し入力しようとすると、指先の動きが緩慢になり、図８のようにリリースの後に指の高さが十分に上がりきらない傾向がある。本実施形態によれば、上述したようにタッチ閾値を改めて決定することで、リリース操作の後、初期値として与えられたタッチ閾値γを上回る前に、指先が再びタッチ対象面に近づけられた場合でも、タッチ操作を検出することが可能となる。
【００５４】
なお、所定値βはセンサの距側誤差の大きさを許容するように定めることで、タッチ操作の誤検出を抑制することが可能となる。センサの距側誤差は指先の形状や表面の特性によっても変化する場合があるため、これらも所定値βを定める上で参考にすることが望ましい。
【００５５】
以上により、本実施形態では、操作体と対象面との間の距離取得値に誤差が含まれる場合においても、ユーザの意図に沿ったタイミングでリリース操作を認識することができる。さらに、本実施形態によれば、リリース操作の直後に再び入力されるタッチ操作について、ユーザの指の動きが緩慢なものになった場合でも、その認識を容易とする。
【００５６】
なお、上述した例では、テーブル上の平面を、タッチ対象面としてタッチ入力を受け付ける場合を説明した。ただし、タッチ対象面の向きや形状は上向きの平面に限定されない。例えば、テーブル上の平面に代わり、曲面や点をタッチ対象面としても、本実施形態は適用可能である。さらに、ＭＲシステムにおけるＨＭＤ（Head Mount Display）等を通して見る仮想面をタッチ対象面として用いてもよい。特に、仮想面へのタッチ操作とリリース操作時には、ユーザが触覚によって指先が仮想面に触れたか、又は仮想面から離れたかを感知することが困難である。そのため、指先が対象面に十分に近づかない場合や、指先が定義されたタッチ対象面を突き抜ける場合が発生しやすい。このような場合は、本実施形態によってリリース閾値を動的に決定することによってユーザの意図に沿ったリリース操作が認識しやすくなるという効果がある。具体的には、指先が仮想面の内側方向に最も接近した際の距離を第１基準値として保持し、基準値に所定値を加えたリリース閾値を決定する。同様に、タッチ対象面が仮想面である場合も、本実施形態によってタッチ閾値を決定することで、リリース操作後に再び入力されるタッチ操作の誤認識を低減できる。
【００５７】
また、上述した例では、距離画像センサ１０２によって取得した指先と対象面との間の距離を、近接の程度として取得し、タッチ操作を検出する例を説明した。ただし、距離に代わり、タッチセンサの静電容量や感圧量、又は指先と対象面との接触面積等をタッチ操作の認識のための近接の程度とする場合であっても適用可能である。例えば、指先と対象面の近接の程度を、指先がタッチ対象面に近づくことで生じる静電容量の変化量で取得する場合は、変化量が大きいほど、指先と対象面が近いことを意味する。従って、リリース閾値を決定する場合、タッチ入力の開始後、静電容量が最大となった時点での変化量を基に第１基準値が特定される。また、指先と対象面の近接の程度を、指先によるタッチ対象面の感圧量として取得する場合は、圧力量が大きいほど、指先と対象面が強く近接したことを意味する。従って、リリース閾値を決定する場合、タッチ入力の開始後、圧力が最大となった時点の情報を基に第１基準値は特定される。また、指先と対象面の近接の程度を、指先と対象面との接触面積として取得する場合は、接触面積が大きいほど、指先と対象面が強く近接したことを意味する。従って、リリース閾値を決定する場合、タッチ入力の開始後、接触面積が最大となった時点の情報を基に第１基準値は特定される。タッチ閾値の決定における第２基準値の特定方法もこれに準じる。
【００５８】
＜変形例＞
次に、第１実施形態の変形例として、タッチ操作の入力からリリース操作の入力までの間に、指先がある程度の距離を移動する場合にも、適切なタッチ閾値及びリリース閾値の決定する変形例を示す。変形例第１以下では、タッチ操作の入力からリリース操作の入力までの間に、操作体をタッチ対象面に平行な方向に移動させる操作を、ムーブ操作と称する。ユーザがムーブ動作を入力する場合に、タッチ対象面と操作体の間の距離に検出誤差が発生すると、ユーザの意図に反してリリース閾値を越える動きが検出されてしまうことで、ムーブ操作の途中でリリースが誤検出される場合がある。そこで、本実施形態では特に、操作体がタッチ状態にある間の動きが、ムーブ操作としての意味を有する可能性を考慮し、リリース操作が認識されるための条件（第１条件）の厳しさを制御する。
【００５９】
以下、変形例でも、第１実施形態と同様に、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムに対し、ユーザが片手の指１本によるタッチ入力を行う場合を例に挙げて説明する。ただし、操作体はユーザの手や指に限られない。変形例に係るインタフェースシステムの外観および装置の構成は、図１及び図２に示した第1実施形態のものに準じる。従って各要素について、詳細な説明を省略する。
【００６０】
図２（ｃ）は、変形例における情報処理装置１００の機能構成の一例を示すブロック図である。各機能部は、ＣＰＵ２００が、ＲＯＭ２０１に格納されたプログラムをＲＡＭ２０２に展開し、第１の実施形態に準じた各フローチャートに従った処理を実行することで実現される。ただし、代替としてハードウェアを用いることも可能である。なお図２（ｂ）に示した第１の実施形態と同等の機能を有する機能部には同じ番号を付して詳細な説明は省略している。ここでは第１の実施形態と異なる点を説明する。
【００６１】
移動量取得部２２０は、位置検出部２１２によって検出された指先の位置について、指先の状態が非タッチ状態からタッチ状態に遷移した時点からの移動距離を取得する。時間取得部２２１は、認識部２１６の指先の状態が非タッチ状態からタッチ状態に遷移した時点を基準とした経過時間を、タッチ継続時間として取得する。変形例の条件決定部２１５は、時間取得部２２１が取得したタッチ継続時間と、移動量取得部２２０が取得したタッチ操作を認識した時点からの操作体（指先）の移動距離を利用して、タッチ入力の終了を認識するための第１条件を決定する。変形例においても、第１条件は、操作体のタッチ対象面に対する近接の程度に関するリリース閾値を設定することで定義される。
【００６２】
［操作認識処理］
変形例においても、メイン処理となる操作認識処理の全体の流れは、図３のフローチャートに従って実行される。ただし、変形例では、ステップＳ３０６のタッチ操作の認識処理は、図９（ａ）のフローチャートに沿って実行される。また、ステップＳ３１１のリリース閾値の決定処理は、図９（ｂ）のフローチャートに沿って実行される。以下、これらの第１実施形態との差異部分について説明する。
【００６３】
［タッチ操作の認識処理］
図９（ａ）は変形例のステップＳ３０６において実行される、タッチ操作の認識処理のフローチャートである。変形例では、ステップＳ４０２において、認識部２１６が、指先の状態がタッチ状態に遷移したことを表す情報をＲＡＭ２０２に保持すると、ステップＳ９０１に処理が進む。ステップＳ９０１において、時間取得部２２１は、タッチ継続時間の取得を開始する。タッチ継続時間とは、指先の状態が非タッチ状態からタッチ状態に遷移した時点から経過時間である。ステップＳ９０２では、移動量取得部２２０が、ステップＳ３０３において検出された指先位置の移動距離の取得を開始する。本実施形態では、現フレームにおける指先位置の座標をタッチ開始位置として保持し、以降のフレームで検出される指先位置との間に生じた変移量を算出するための基準とする。
【００６４】
［リリース閾値決定処理］
図９（ｂ）は変形例のステップＳ３１１において実行される、リリース閾値決定処理の流れを表すフローチャートである。まず、ステップＳ９１１において、時間取得部２２１が、ステップＳ９０１の処理で計測を開始したタッチ継続時間が、所定時間を越えたかを判定する。タッチ継続時間が、所定時間を越えたと判定される場合（ステップＳ９１１でＹｅｓ）、ステップＳ９１３に進む。一方、タッチ継続時間が、所定時間を越えたと判定されない場合（ステップＳ９１１でＮｏ）、ステップＳ９１２に進む。ステップＳ９１２では、移動量取得部２２０は、ステップＳ９０２で保持されたタッチ開始位置と、ステップＳ３０３で検出された指先位置の間の距離を、タッチ状態での移動距離として取得し、所定距離を越えたかを判定する。移動距離が所定距離を越えたと判定される場合（ステップＳ９１２でＹｅｓ）、ステップＳ９１３に進む。一方、移動距離が所定距離を越えたと判定されない場合（ステップＳ９１２でＮｏ）、ステップＳ６０１に進む。ステップＳ９１３では、条件決定部２１５が、リリース閾値を所定値δに決定し、リリース閾値決定処理を終了する。本実施形態において所定値δは、タッチ閾値の初期値として与えられる値γと同じであるとする。
【００６５】
図１０に、変形例によって決定されるリリース閾値の一例を表す。図１０においても、図５や図７と同様、縦軸にｚ座標、横軸に時間が表される。また、図７で示したのと同じ要素については、同じ番号を付している。破線７００は、初期値として与えられるタッチ閾値γ（γ＞０）である。本変形例では、タッチ状態での操作体の移動中に設定される固定されたリリース閾値δ（δ＞０）は、閾値γと一致する。従って変形例において破線７００は、タッチ状態での操作体の移動中に設定されるリリース閾値も表している。
【００６６】
まず、非タッチ状態にある指先５００と対象面１０１との間の距離がタッチ閾値γ（破線７００）を下回り、指先５００がタッチ状態に遷移した時点をタッチ検出時点７０１とし図中に示す。本変形例では、タッチ検出時点７０１において、タッチ継続時間と、指先の移動距離の取得が開始される。タッチ検出時点７０１以降、フレームレートに従って距離画像が入力される度に、指先５００と対象面１０１の間の距離（ｚ座標）が取得され、最小の距離７０２が第１基準値として特定される。そして、第１基準値７０２に、所定値αを加えた値が、各フレームのリリース閾値（図中に破線７０４で示す）として決定される。ここで、タッチ状態のまま指先５００を対象面に平行に動かす操作（例えばムーブ操作）においては、対象面に対する指先の距離の軌跡５０２が不安定だと、動的に決定されたリリース閾値（破線７０４）に頻繁に近づく、あるいは上回ってしまう場合がある。リリース閾値を越えると、ユーザがムーブ操作の入力を継続しているつもりであっても、リリース操作が認識されてしまう。
【００６７】
そこで、本変形例では、リリース操作の誤認識を低減することを目的として、タッチ継続時間が所定時間を越える、あるいは指先の移動距離が所定距離を越えた時点９００において、リリース閾値を所定値δ（破線７００）と決定する。この場合、続くフレームに入力画像を対象とするリリース操作の認識処理においては、軌跡５０２に示す指先５００と対象面１０１の間の距離が、破線７００で表すリリース閾値を上回った時点９０１において、リリース操作が認識される。
【００６８】
以上により、本変形例では、操作体と対象面との間の距離の取得に誤差が含まれる場合であっても、ユーザの意図に沿ったタイミングでリリース操作を認識することができる。特に、操作体がタッチ状態で移動をする間のリリースの誤認識を低減することができる。
【００６９】
なお、上述した変形例では、リリース閾値を動的に決定せず、固定された値を用いることを決定する基準として、タッチ状態の継続時間や、指先の移動距離を用いた。ただし、これらに代わり、指先の移動速度や手の姿勢の変化を基準として用いてもよい。例えば移動速度を基準として用いる場合は、タッチ状態での操作体の移動速度が所定速度に到達した時点で、リリース閾値を固定の値にする。基準となる情報は、ユーザによって行われる操作の種類や、センサの距離取得精度に合わせて選択することで、リリース操作の検出応答速度と誤検出抑制を調整することが可能となる。
【００７０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために以下の請求項を添付する。
【符号の説明】
【００７２】
２１０  画像取得部
２１１  領域抽出部
２１２  位置検出部
２１３  距離取得部
２１４  基準決定部
２１５  条件決定部
２１６  認識部
２１７  表示制御部
【図１】
2017029749.tif 000003
【図２】
2017029749.tif 000004
【図３】
2017029749.tif 000005
【図４】
2017029749.tif 000006
【図５】
2017029749.tif 000007
【図６】
2017029749.tif 000008
【図７】
2017029749.tif 000009
【図８】
2017029749.tif 000010
【図９】
2017029749.tif 000011
【図１０】
2017029749.tif 000012
【国際調査報告】
2017029749.tif 000013
2017029749.tif 000014