(57)【要約】【課題】ユーザーによる仮想的な操作パネルへのタッチを確実に判定できるタッチ判定装置、タッチ判定方法、およびタッチ判定プログラムを提供する。【解決手段】タッチ判定装置２０は、指の挙動を検出する検出部３２と、仮想的なボタンを、物体の表面に割り当てる割当部３４と、検出部によって検出された指の挙動に基づき、その指が物体の表面に接触したときに受ける物理的な影響を判断して、仮想的なボタンへのタッチを判定する判定部３５と、を有する。【選択図】図３
2014157515.tif 000002
【特許請求の範囲】
【請求項１】
指の挙動を検出する検出部と、
仮想的なボタンを、物体の表面に割り当てる割当部と、
前記検出部によって検出された前記指の挙動に基づき、前記指が前記物体の表面に接触したときに受ける物理的な影響を判断して、前記仮想的なボタンへのタッチを判定する判定部と、
を有するタッチ判定装置。
【請求項２】
前記判定部は、前記指が前記物体の表面に接触して静止したことを判断して、前記仮想的なボタンへのタッチを判定する請求項１に記載のタッチ判定装置。
【請求項３】
前記判定部は、前記指が前記物体の表面に接触して静止し、かつ、前記指の移動速度が静止前において所定値以上となることを判断して、前記仮想的なボタンへのタッチを判定する請求項２に記載のタッチ判定装置。
【請求項４】
前記判定部により判定されたタッチ位置を記録するタッチ位置記録部と、
前記タッチ位置記録部により記録された前記タッチ位置が含まれる平面を形成する平面形成部と、をさらに有する請求項１〜３のいずれか１項に記載のタッチ判定装置。
【請求項５】
前記仮想的なボタンの画像を前記物体の表面上に投影して表示する表示部を、さらに有する請求項１〜４のいずれか１項に記載のタッチ判定装置。
【請求項６】
指の挙動を検出する検出ステップと、
仮想的なボタンを、物体の表面に割り当てる割当ステップと、
前記検出ステップにおいて検出された前記指の挙動に基づき、前記指が前記物体の表面に接触したときに受ける物理的な影響を判断して、前記仮想的なボタンへのタッチを判定する判定ステップと、
を行うタッチ判定方法。
【請求項７】
前記判定ステップは、前記指が前記物体の表面に接触して静止したことを判断して、前記仮想的なボタンへのタッチを判定する請求項６に記載のタッチ判定方法。
【請求項８】
前記判定ステップは、前記指が前記物体の表面に接触して静止し、かつ、前記指の移動速度が静止前において所定値以上となることを判断して、前記仮想的なボタンへのタッチを判定する請求項７に記載のタッチ判定方法。
【請求項９】
前記判定ステップにおいて判定されたタッチ位置を記録するタッチ位置記録ステップと、
前記タッチ位置記録ステップにおいて記録された前記タッチ位置が含まれる平面を形成する平面形成ステップと、をさらに行う請求項６〜８のいずれか１項に記載のタッチ判定方法。
【請求項１０】
前記仮想的なボタンの画像を前記物体の表面上に投影して表示する表示ステップを、さらに行う請求項６〜９のいずれか１項に記載のタッチ判定方法。
【請求項１１】
指の挙動を検出する検出ステップと、
仮想的なボタンを、物体の表面に割り当てる割当ステップと、
前記検出ステップにおいて検出された前記指の挙動に基づき、前記指が前記物体の表面に接触したときに受ける物理的な影響を判断して、前記仮想的なボタンへのタッチを判定する判定ステップと、
をコンピューターに実行させるタッチ判定プログラム。
【請求項１２】
前記判定ステップは、前記指が前記物体の表面に接触して静止したことを判断して、前記仮想的なボタンへのタッチを判定する請求項１１に記載のタッチ判定プログラム。
【請求項１３】
前記判定ステップは、前記指が前記物体の表面に接触して静止し、かつ、前記指の移動速度が静止前において所定値以上となることを判断して、前記仮想的なボタンへのタッチを判定する請求項１２に記載のタッチ判定プログラム。
【請求項１４】
前記判定ステップにおいて判定されたタッチ位置を記録するタッチ位置記録ステップと、
前記タッチ位置記録ステップにおいて記録された前記タッチ位置が含まれる平面を形成する平面形成ステップと、を前記コンピューターにさらに実行させる請求項１１〜１３のいずれか１項に記載のタッチ判定プログラム。
【請求項１５】
前記仮想的なボタンの画像を前記物体の表面上に投影して表示する表示ステップを、前記コンピューターにさらに実行させる請求項１１〜１４のいずれか１項に記載のタッチ判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチ判定装置、タッチ判定方法、およびタッチ判定プログラムに関する。
【背景技術】
【０００２】
近年、現実の環境に付加的な情報を重畳させて表示する拡張現実（ＡＲ：Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）と呼ばれる技術が注目されている。ＡＲ技術を用いれば、現実の環境またはカメラにより撮影された画像内に、案内、広告等を表示できる。
【０００３】
また、ＡＲ技術を利用して現実の環境またはカメラにより撮影された画像内に仮想的な操作パネル（ボタン）を設定し、その操作パネルの操作を可能にする技術も開発されている。
【０００４】
たとえば、特許文献１には、仮想的な操作パネルを表示しているわけではないが、携帯電話の表示画面手前に仮想的な操作パネルがあるものと設定し、その位置（空間中）でのユーザーの指の動きを検知することにより携帯電話への入力を実現することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１４１４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に記載の発明では、仮想的な操作パネルは、現実の環境に実際に存在しているわけではない。そのため、携帯電話は、ユーザーの特定の動作を検知して、操作パネルにタッチする動作と判断することしかできない。これでは、特許文献１の携帯電話は、ユーザーが意図せずに特定の動作をしてしまった場合でも、操作パネルへの入力と判断してしまう場合がある。反対に、ユーザーが仮想的な操作パネルへのタッチを意図している場合でも、操作パネルの入力と判断しない場合もある。
【０００７】
このような誤操作が生じるのは、ユーザーが仮想的な操作パネルに直接タッチできず、空間中でのタッチ動作に振動が伴ってしまい、操作パネルへのタッチを確実には判断し難いからである。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、ユーザーによる仮想的な操作パネルへのタッチを確実に判定できるタッチ判定装置、タッチ判定方法、およびタッチ判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
（１）指の挙動を検出する検出部と、仮想的なボタンを、物体の表面に割り当てる割当部と、前記検出部によって検出された前記指の挙動に基づき、前記指が前記物体の表面に接触したときに受ける物理的な影響を判断して、前記仮想的なボタンへのタッチを判定する判定部と、を有するタッチ判定装置。
【００１０】
（２）前記判定部は、前記指が前記物体の表面に接触して静止したことを判断して、前記仮想的なボタンへのタッチを判定する上記（１）に記載のタッチ判定装置。
【００１１】
（３）前記判定部は、前記指が前記物体の表面に接触して静止し、かつ、前記指の移動速度が静止前において所定値以上となることを判断して、前記仮想的なボタンへのタッチを判定する上記（２）に記載のタッチ判定装置。
【００１２】
（４）前記判定部により判定されたタッチ位置を記録するタッチ位置記録部と、前記タッチ位置記録部により記録された前記タッチ位置が含まれる平面を形成する平面形成部と、をさらに有する上記（１）〜（３）のいずれかに記載のタッチ判定装置。
【００１３】
（５）前記仮想的なボタンの画像を前記物体の表面上に投影して表示する表示部を、さらに有する上記（１）〜（４）のいずれかに記載のタッチ判定装置。
【００１４】
（６）指の挙動を検出する検出ステップと、仮想的なボタンを、物体の表面に割り当てる割当ステップと、前記検出ステップにおいて検出された前記指の挙動に基づき、前記指が前記物体の表面に接触したときに受ける物理的な影響を判断して、前記仮想的なボタンへのタッチを判定する判定ステップと、を行うタッチ判定方法。
【００１５】
（７）前記判定ステップは、前記指が前記物体の表面に接触して静止したことを判断して、前記仮想的なボタンへのタッチを判定する上記（６）に記載のタッチ判定方法。
【００１６】
（８）前記判定ステップは、前記指が前記物体の表面に接触して静止し、かつ、前記指の移動速度が静止前において所定値以上となることを判断して、前記仮想的なボタンへのタッチを判定する上記（７）に記載のタッチ判定方法。
【００１７】
（９）前記判定ステップにおいて判定されたタッチ位置を記録するタッチ位置記録ステップと、前記タッチ位置記録ステップにおいて記録された前記タッチ位置が含まれる平面を形成する平面形成ステップと、をさらに行う上記（６）〜（８）のいずれかに記載のタッチ判定方法。
【００１８】
（１０）前記仮想的なボタンの画像を前記物体の表面上に投影して表示する表示ステップを、さらに行う上記（６）〜（９）のいずれかに記載のタッチ判定方法。
【００１９】
（１１）指の挙動を検出する検出ステップと、仮想的なボタンを、物体の表面に割り当てる割当ステップと、前記検出ステップにおいて検出された前記指の挙動に基づき、前記指が前記物体の表面に接触したときに受ける物理的な影響を判断して、前記仮想的なボタンへのタッチを判定する判定ステップと、をコンピューターに実行させるタッチ判定プログラム。
【００２０】
（１２）前記判定ステップは、前記指が前記物体の表面に接触して静止したことを判断して、前記仮想的なボタンへのタッチを判定する上記（１１）に記載のタッチ判定プログラム。
【００２１】
（１３）前記判定ステップは、前記指が前記物体の表面に接触して静止し、かつ、前記指の移動速度が静止前において所定値以上となることを判断して、前記仮想的なボタンへのタッチを判定する上記（１２）に記載のタッチ判定プログラム。
【００２２】
（１４）前記判定ステップにおいて判定されたタッチ位置を記録するタッチ位置記録ステップと、前記タッチ位置記録ステップにおいて記録された前記タッチ位置が含まれる平面を形成する平面形成ステップと、を前記コンピューターにさらに実行させる上記（１１）〜（１３）のいずれかに記載のタッチ判定プログラム。
【００２３】
（１５）前記仮想的なボタンの画像を前記物体の表面上に投影して表示する表示ステップを、前記コンピューターにさらに実行させる上記（１１）〜（１４）のいずれかに記載のタッチ判定プログラム。
【発明の効果】
【００２４】
本発明によれば、指が物体の表面に接触したときに受ける物理的な影響を判断して、仮想的なボタンへのタッチを判定している。これにより、ユーザーによる仮想的な操作パネルへのタッチを確実に判定できるようになる。また、仮想的なボタンをタッチしたユーザーに対して感触のフィードバックを与えられるため、ユーザーにとって感覚的に操作しやすい入力デバイスとなる。
【００２５】
上記した以外の課題、構成、および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００２６】
【図１】タッチ判定システムの概略構成を示す図である。
【図２】タッチ判定装置のハードウェア構成を示すブロック図である。
【図３】タッチ判定装置の機能構成を示すブロック図である。
【図４】第１実施形態に係る入力受付処理の手順を示すフローチャートである。
【図５】ヘッドマウントディスプレイ、ユーザーの指先、仮想的な操作パネルの位置関係を説明するための図である。
【図６】第１実施形態に係るタッチ判定処理の手順を示すフローチャートである。
【図７】第１実施形態に係るタッチ検出処理の手順を示すフローチャートである。
【図８】（Ａ）指先位置データの概略データ構造を示す図である。（Ｂ）指先速度データの概略データ構造を示す図である。
【図９】第１実施形態に係るタッチ判定の方法について説明するための図である。
【図１０】第２実施形態に係るタッチ検出処理の手順を示すフローチャートである。
【図１１】第２実施形態に係るタッチ判定の方法について説明するための図である。
【図１２】速度履歴データの概略データ構造を示す図である。
【図１３】第３実施形態に係るドラッグ判定処理の手順を示すフローチャートである。
【図１４】タッチ位置履歴データの概略データ構造を示す図である。
【図１５】ドラッグ操作を判定するために形成するタッチ平面について説明するための図である。
【発明を実施するための形態】
【００２７】
以下、添付した図面を参照して、本発明の実施形態を説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【００２８】
＜第１実施形態＞
図１は、第１実施形態に係るタッチ判定システム１の概略構成の例を示す図である。また、図２は、タッチ判定システム１に含まれるタッチ判定装置２０のハードウェア構成の例を示すブロック図である。図３は、タッチ判定装置２０の機能構成の例を示すブロック図である。
【００２９】
以下、図１〜図３を参照して、タッチ判定システム１について説明する。
【００３０】
図１に示すとおり、タッチ判定システム１は、ヘッドマウントディスプレイ１０と、タッチ判定装置２０と、を備える。
【００３１】
（ヘッドマウントディスプレイ１０）
ヘッドマウントディスプレイ（ＨＭＤ）１０は、ユーザーの頭部に装着する表示装置である。たとえば、ヘッドマウントディスプレイ１０は、外界の光を集めてユーザーの眼球へ届ける。これにより、ユーザーは、ヘッドマウントディスプレイ１０を装着した状態で外界を見ることができる。
【００３２】
これとともに、ヘッドマウントディスプレイ１０は、拡張現実の技術（ＡＲ技術）を有しており、外界からの光に付加的な情報を重畳させて表示できる。この技術を用いて、ヘッドマウントディスプレイ１０は、外界に存在する物体（たとえば、テーブル）上に仮想的な操作パネル５を割り当てる。これにより、あたかもその物体に操作パネル５が組み込まれているように、あるいは、その物体上に操作パネル５があるかのように表示できる。
【００３３】
なお、仮想的な操作パネル５の例としては、複数のキーやボタンにより構成されるキーボードや、特定の入力のためだけのボタンにより構成される入力デバイスが挙げられる。
【００３４】
このようなヘッドマウントディスプレイ１０は、図１に示すとおり、画像表示装置１１と、プリズム１２と、センサー１３と、を有している。
【００３５】
画像表示装置１１は、外界からの光に付加的に重畳させる画像（以下「重畳画像」ともいう）を表示する。たとえば、画像表示装置１１は、仮想的な操作パネル５があたかも外界に存在する物体（たとえば、テーブル）上にあるかのように表示するために、表示位置、表示サイズ、透明度、等が調整された重畳画像を表示する。なお、画像表示装置１１には、たとえば、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）ディスプレイ、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、などが採用される。
【００３６】
プリズム１２は、光を分散、屈折などさせるための、周囲の空間とは屈折率の異なるガラス、水晶などの透明な媒質でできた多面体である。たとえば、プリズム１２は、複数のプリズム（第１プリズム１２ａおよび第２プリズム１２ｂ）によって構成される。外界から第１プリズム１２ａに入射した光は、第１プリズム１２ａにおいて分光され、一方の光はユーザーの眼球方向に向けて直進する光として出射され、他方の光はセンサー１３の方向に向けて出射される。そして、眼球方向に直進する光は、第２プリズム１２ｂを透過してユーザーの眼球へと届く。また、画像表示装置１１から重畳画像の表示のために出力された光は、第２プリズム１２ｂにおいて屈折し、外界からの光とともにユーザーの眼球へと届く。
【００３７】
センサー１３は、ユーザーの指先の挙動を検出するために用いるセンサーである。センサー１３は、たとえば、カメラなどの撮像素子、および指先までの距離を測定可能な距離画像センサーである。
【００３８】
カメラは、ユーザーの指先について２次元方向の動きを検出するために用いられる。図１に示すとおり、カメラは、第１プリズム１２ａを介して外界からの光を受光して、外界の撮像画像（動画像）を生成する。この撮像画像を画像認識等の手法により解析することによってその指先の２次元方向の動きを検出できる。
【００３９】
また、距離画像センサーは、ユーザーの指先について奥行き方向の動きを検出するために用いられる。距離画像センサーは、不図示の近赤外レーザーからユーザーの視界内をスキャンするように出射されたレーザー光のうち、ユーザーの指先に反射して戻ってきたレーザー光を受光する。このとき、レーザー光が指先まで往復するのにかかる時間を計測することによってその指先の奥行き方向の動きを検出できる。
【００４０】
このように検出された指先の２次元方向の動きと奥行き方向の動きを合成すれば、ユーザーの指先についての３次元的な動きをリアルタイムでトレースできる。
【００４１】
なお、センサー１３は、ユーザーの指先の３次元的な挙動を検出できるものであれば、どのような形態、名称、構造のものであってもよく、超音波センサー等により構成されてもよい。本実施形態では、カメラは、ユーザーの視線方向を撮像可能なようにヘッドマウントディスプレイ１０に取り付けられる。また、距離画像センサーおよび近赤外レーザーも、ヘッドマウントディスプレイ１０に取り付けられる。しかし、これに限らず、カメラ、距離画像センサー、および近赤外レーザーは、ヘッドマウントディスプレイ１０とは分離されて独立した位置に設置されてもよい。また、センサー１３には、ヘッドマウントディスプレイ１０の姿勢を検出するために必要なセンサー、たとえば、３軸加速度センサー、ジャイロセンサー等が含まれてもよい。
【００４２】
（タッチ判定装置２０）
タッチ判定装置２０は、仮想的な操作パネル５にタッチしようとするユーザーの動作を判定する装置である。たとえば、タッチ判定装置２０は、仮想的な操作パネル５の画像（上述した重畳画像）を生成して、外界に存在する物体（たとえば、テーブル）の表面に割り当てる。このとき、タッチ判定装置２０は、ユーザーの指の挙動を検出し、その指が物体の表面に接触したときに受ける物理的な影響を判断して、仮想的な操作パネル５へのタッチを判定する。ここで、ユーザーの指が受ける物理的な影響には、たとえば、物体の表面から抗力を受けてユーザーの指の姿勢や挙動が変わることが含まれる。たとえば、物体の表面から抗力を受けて、指先が静止した状態となること、指先が反った状態となること、指が曲がった状態となること、などが含まれる。
【００４３】
このようなタッチ判定装置２０には、一般的なコンピューター装置、たとえば、デスクトップ型のＰＣ（パーソナルコンピューター）が用いられてもよいし、タブレット端末、スマートフォン、携帯電話、等の携帯端末が用いられてもよい。
【００４４】
たとえば、タッチ判定装置２０は、図２に示すとおり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、メモリー２２と、ストレージ２３と、外部インターフェース（Ｉ／Ｆ）２４と、を有し、これらは信号をやり取りするためのバス２５を介して相互に接続されている。
【００４５】
ＣＰＵ２１は、プログラムにしたがって上記各部の制御や各種の演算処理を実行するマルチコアのプロセッサ等から構成される制御回路であり、タッチ判定装置２０の各機能は、それに対応するプログラムをＣＰＵ２１が実行することにより発揮される。
【００４６】
メモリー２２は、作業領域として一時的にプログラムおよびデータを記憶する高速アクセス可能な主記憶装置である。メモリー２２には、たとえば、ＤＲＡＭ（Ｄｙｍａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｍａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等が採用される。
【００４７】
ストレージ２３は、オペレーティングシステムを含む各種プログラムや各種データを格納する大容量の補助記憶装置である。ストレージ２３には、たとえば、フラッシュメモリー、ソリッドステートドライブ、ハードディスク等が採用される。
【００４８】
外部Ｉ／Ｆ２４は、外部機器（たとえば、ヘッドマウントディスプレイ１０）と通信するためのインターフェースであり、たとえば、ＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）などの通信規格が用いられる。もちろん、これに限らず、コンピューターネットワークを介して通信するためのイーサネット（登録商標）、トークンリング、ＦＤＤＩ等の規格が用いられてもよいし、ＢｒｕｅＴｏｏｔｈ、赤外線通信、ＵＳＢ通信のための通信規格が用いられてもよい。
【００４９】
以上のようなハードウェア構成からなるタッチ判定装置２０は、機能構成として、図３に示すとおり、外部環境取得部３１と、指挙動検出部３２と、オブジェクト生成部３３と、重畳画像生成部３４と、タッチ判定部３５と、を有する。外部環境取得部３１、指挙動検出部３２、オブジェクト生成部３３、重畳画像生成部３４、タッチ判定部３５は、ＣＰＵ２１が、ストレージ２３にインストールされているＯＳやプログラムをメモリー２２に読み出して実行することにより実現される。
【００５０】
外部環境取得部３１は、センサー１３を制御して、ユーザーの指先の挙動を検出するための情報を取得する。たとえば、外部環境取得部３１は、カメラを制御することによりセンサー１３にユーザーの視線方向を撮像させて、外界の撮像画像（動画像）を得る。そして、外部環境取得部３１は、この撮像画像を一般的な画像認識方法により解析することによって、その指先の２次元方向の位置情報を取得する。また、外部環境取得部３１は、近赤外レーザーからユーザーの視界内をスキャンするように出射されたレーザー光のうち、ユーザーの指先に反射して戻ってきたレーザー光を受光し、レーザー光が指先まで往復するのにかかった時間を計測する。そして、外部環境取得部３１は、計測した時間からユーザーの指先までの距離を求めることにより、その指先の奥行き方向の位置情報を取得する。
【００５１】
指挙動検出部３２は、外部環境取得部３１により取得された情報を基に、ユーザーの指の挙動を検出する。たとえば、指挙動検出部３２は、外部環境取得部３１により取得された動画像を構成する各フレーム画像からユーザーの指を認識して、ユーザーの指先の位置（３次元座標）についての変化を検出する。
【００５２】
オブジェクト生成部３３は、ヘッドマウントディスプレイ１０の画像表示装置１１に表示させる画像（重畳画像）の元となるオブジェクトを生成する。たとえば、複数のボタンから構成させる操作パネル５を模した画像を生成する。
【００５３】
重畳画像生成部３４は、オブジェクト生成部３３により生成されたオブジェクトを加工して、ヘッドマウントディスプレイ１０の画像表示装置１１に表示させる重畳画像を生成する。たとえば、重畳画像生成部３４は、ヘッドマウントディスプレイ１０に入射される外界の光に重畳させたときに、仮想的な操作パネル５があたかも外界に存在する物体（たとえば、テーブル）の表面にあるようにみえる重畳画像を生成する。
【００５４】
タッチ判定部３５は、仮想的な操作パネル５にユーザーがタッチする動作を判定する。具体的には、タッチ判定部３５は、指挙動検出部３２によって検出されたユーザーの指が、重畳画像が重畳された物体の表面に接触したときに受ける物理的な影響を判断して、仮想的な操作パネル５へのタッチを判定する。たとえば、タッチ判定部３５は、ユーザーの指が仮想的な操作パネル５の位置にあるテーブルに接触して静止した状態にあるかどうか判断することによって、タッチを判定する。
【００５５】
＜入力受付処理＞
図４は、仮想的な操作パネル５を用いてユーザーによる入力を受け付けるための処理（以下では「入力受付処理」とよぶ）の手順を示すフローチャートである。入力受付処理は、上記のタッチ判定装置２０において実行される。また、図５は、ヘッドマウントディスプレイ１０、ユーザーの指先、仮想的な操作パネル５の位置関係を説明するための図である。
【００５６】
以下、図４、図５を参照して、入力受付処理の手順について説明する。
【００５７】
たとえば、タッチ判定装置２０は、ヘッドマウントディスプレイ１０に電源が投入されると、図４に示す入力受付処理を開始する。もちろん、このときヘッドマウントディスプレイ１０およびタッチ判定装置２０は通信可能に接続されており、電源の投入はヘッドマウントディスプレイ１０からタッチ判定装置２０へ通知される。
【００５８】
入力受付処理が開始されると、タッチ判定装置２０は、外部環境取得部３１として機能して、ヘッドマウントディスプレイ１０の姿勢、すなわち、センサー１３（本実施形態ではカメラ）が向けられている方向を検出する（ステップＳ１０１）。たとえば、タッチ判定装置２０は、センサー１３に含まれる加速度センサー、ジャイロセンサー等を用いてヘッドマウントディスプレイ１０の姿勢（たとえば３軸各方向の加速度）を検出する。これにより、たとえば、ヘッドマウントディスプレイ１０がユーザーの頭部に装着されていないことが明らかな姿勢（たとえば、カメラが地面方向に向けられた姿勢）である場合には、以降の処理を行わずに待機することもできる。
【００５９】
次に、タッチ判定装置２０は、外部環境取得部３１および重畳画像生成部３４として機能して、仮想的な操作パネル５のような重畳画像を割り当てる対象、すなわち、仮想的な操作パネル５が置いてあるかのように見せる物体を決定する（ステップＳ１０２）。たとえば、図５に示すように、タッチ判定装置２０は、センサー１３に含まれるカメラによって外界を撮影し、撮影して得られた撮像画像内の中心位置にある物体（たとえば、テーブル）を、重畳画像の割り当て対象５０として決定する。このとき、タッチ判定装置２０は、近赤外レーザーからレーザー光を、ユーザーの視界内をスキャンするように出射させて（たとえば、出射方向を変更したり、放射状に出射したりすればよい）、距離画像センサーにおいてその反射レーザー光を受光させる。これにより、タッチ判定装置２０は、ヘッドマウントディスプレイ１０から外界の様々な地点までの距離を特定可能な奥行き情報（レーザー光が往復するのにかかる時間）を取得しておく。
【００６０】
続いて、タッチ判定装置２０は、重畳画像生成部３４として機能し、重畳画像を割り当てる位置（３次元座標）を決定する（ステップＳ１０３）。このとき、タッチ判定装置２０は、図５に示すように、ステップＳ１０２において得られた撮像画像の横方向に対応する方向をｘ軸とし、同撮像画像の縦方向に対応する方向をｙ軸とする。また、タッチ判定装置２０は、センサー１３が向けられている方向（ユーザーの視線方向）をｚ軸とする。そして、タッチ判定装置２０は、ステップＳ１０２で決定された重畳画像の割り当て対象５０上の特定の領域（図５に示すＡ〜Ｄ点で囲まれた領域）を、重畳画像の割り当て位置として選択する。そして、タッチ判定装置２０は、選択した領域の３次元座標（ｘ、ｙ、ｚ）を求める。たとえば、ステップＳ１０２において得られた撮像画像を用いて、各Ａ〜Ｄ点のｘ座標およびｙ座標を求める。また、ステップＳ１０２において得られた各Ａ〜Ｄ点の奥行き情報から、各Ａ〜Ｄ点のｚ座標を求める。なお、仮想的な操作パネル５がキーボードのように複数のボタン（以下、「仮想ボタン」とよぶ）により構成されている場合には、各仮想ボタンの位置（３次元座標）についても同様の手法により求める。
【００６１】
そして、タッチ判定装置２０は、引き続き重畳画像生成部３４として機能し、オブジェクト生成部３３によって前もって生成しておいたオブジェクトを加工して、仮想的な操作パネル５のような重畳画像を生成する（ステップＳ１０４）。たとえば、タッチ判定装置２０は、ヘッドマウントディスプレイ１０に入射される外界の光に重畳させたときに、仮想的な操作パネル５が、ステップＳ１０２において決定された物体（たとえば、テーブル）の表面上に置いてあるかのようにみえる重畳画像を生成する。そのためには、たとえば、重畳画像を配置する位置やその周辺の状況（日光の向き、周辺の明るさ、等）を考慮して、表示サイズ、歪曲度、色合い、影、透明度、等を調整すればよい。
【００６２】
次に、タッチ判定装置２０は、引き続き重畳画像生成部３４として機能して、ステップＳ１０４において生成した重畳画像を、画像表示装置１１に表示させる（ステップＳ１０５）。たとえば、タッチ判定装置２０は、ステップＳ１０４において生成した重畳画像を、外部Ｉ／Ｆ２４を介してヘッドマウントディスプレイ１０へ送信する。これにより、ヘッドマウントディスプレイ１０の画像表示装置１１には重畳画像が表示される。そして、ユーザーは、外界から入射された光に付加的に重畳された重畳画像（仮想的な操作パネル５）を、第２プリズム１２ｂを介して見ることができる。
【００６３】
このような仮想的な操作パネル５が表示された状態において、タッチ判定装置２０は、仮想的な操作パネル５を用いたユーザーによる入力を受け付ける。
【００６４】
そのために、タッチ判定装置２０は、タッチ判定部３５として機能し、仮想的な操作パネル５に対してタッチする動作がなされたか判定する処理（以下では「タッチ判定処理」とよぶ）を行う（ステップＳ１０６）。タッチ判定処理の具体的な処理内容については後述するが、タッチ判定装置２０は、タッチ判定処理によって、ユーザーの指でタッチされた操作パネル５上の仮想ボタンを特定できる。
【００６５】
そして、タッチ判定装置２０は、入力受付処理を終了させる指示がユーザーによりなされたか判別する（ステップＳ１０７）。たとえば、タッチ判定装置２０は、入力受付処理を終了させるための仮想ボタンがタッチされた場合に、入力受付処理を終了させる指示がなされたと判定し（ステップＳ１０７：Ｙｅｓ）、入力受付処理を終了する。
【００６６】
一方、入力受付処理を終了させる指示がなされない場合には（ステップＳ１０７：Ｎｏ）、タッチ判定装置２０は、入力受付処理を終了させるための仮想ボタンがタッチされるまで、ステップＳ１０１〜Ｓ１０６の処理を繰り返す。この間、タッチ判定装置２０は、ヘッドマウントディスプレイ１０の姿勢を繰り返し検出するため、ヘッドマウントディスプレイ１０の姿勢の変化に応じて重畳画像の表示位置を更新できる。これとともに、タッチ判定装置２０は、ユーザーのタッチ動作に応じて、ユーザーの指によってタッチされた仮想ボタンの表示形態（サイズ、色、等）を更新できる。たとえば、タッチ動作がなされた仮想ボタンが沈んでいるように、画像表示装置１１に表示させることもできる。このような表示によって、ユーザーはどの仮想ボタンをタッチしたのかすぐに把握できるようになるため、操作性も向上する。
【００６７】
＜タッチ判定処理（Ｓ１０６）＞
次に、上記の入力受付処理のサブルーチンとして行われるタッチ判定処理（Ｓ１０６）について説明する。
【００６８】
図６は、タッチ判定処理の手順を示すフローチャートである。タッチ判定処理は、入力受付処理と同様にタッチ判定装置２０において実行される。
【００６９】
なお、タッチ判定処理の実行中において、仮想的な操作パネル５は、画像表示装置１１に常に表示されているものとする。
【００７０】
タッチ判定処理を開始すると、タッチ判定装置２０は、タッチ判定部３５として機能し、手を検出する（ステップＳ２０１）。具体的には、タッチ判定装置２０は、ステップＳ１０２において取得された外界の撮像画像から肌色領域を検出して手領域とみなす。もちろん、この手法に限らず、たとえば、タッチ判定装置２０は、予め人間の身体の部位（たとえば、腕、手、指）別のモデルデータを学習しておき、そのモデルデータと撮像画像を比較することによって、より精度良く手を検出するようにしてもよい。
【００７１】
次に、タッチ判定装置２０は、ステップＳ２０１において検出された手の位置を特定する（ステップＳ２０２）。具体的には、タッチ判定装置２０は、手の位置を表す空間座標の範囲を算出する。そのために、たとえば、タッチ判定装置２０は、ステップＳ２０１において検出された手領域が占める２次元座標（ｘ、ｙ）の範囲を撮像画像から求める。これとともに、タッチ判定装置２０は、ステップＳ１０２において得られた奥行き情報から、手領域（手全体）のｚ座標の範囲を求める。
【００７２】
続いて、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０１において検出された手について、その姿勢を判別する（ステップＳ２０３）。具体的には、タッチ判定装置２０は、予め手のモデルデータを学習しておき、そのモデルデータと撮像画像内にある手領域の形状を比較することによって、手の姿勢を判別する。これにより、タッチ判定装置２０は、ユーザーの手と第三者の手を区別できる。
【００７３】
次に、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０１において検出された手にラベリングする（ステップＳ２０４）。たとえば、ステップＳ２０１において複数の手が検出された場合には、各手に１、２、・・・、等の番号を割り振る。
【００７４】
その後、タッチ判定装置２０は、ステップＳ２０４においてラベリングされた手のうち、１つの手を選択して、その手に含まれる指を検出する（ステップＳ２０５）。具体的には、タッチ判定装置２０は、ステップＳ２０２において求められた手領域の範囲から、指のように先が細くなっている領域を抽出して指領域とみなす。
【００７５】
そして、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０５において検出された指にラベリングする（ステップＳ２０６）。たとえば、タッチ判定装置２０は、ステップＳ２０５において検出された各指に対して、ａ、ｂ、・・・、等の文字を割り振る。
【００７６】
次に、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０５において検出された指ごとに、仮想的な操作パネル５へのタッチを検出する処理（以下では「タッチ検出処理」とよぶ）を行う（ステップＳ２０７）。タッチ判定装置２０は、タッチ検出処理によって、ステップＳ２０５において検出された各指について、仮想的な操作パネル５に対してタッチする動作がなされたか特定できる。タッチ検出処理の具体的な処理内容については後述する。
【００７７】
タッチ検出処理が終了すると、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０５において選択された手に含まれる全ての指について、ステップＳ２０７のタッチ検出処理によるタッチ検出が終了したか判別する（ステップＳ２０８）。
【００７８】
そして、タッチ判定装置２０は、全ての指についてタッチ検出処理が終了していない場合には（ステップＳ２０８：Ｎｏ）、ステップＳ２０７に処理を戻して、タッチ検出処理が行われていない指を選択し直す。
【００７９】
一方、タッチ判定装置２０は、全ての指についてタッチ検出処理が終了している場合には（ステップＳ２０８：Ｙｅｓ）、次に、ステップＳ２０１において検出された全ての手について、タッチ検出処理が終了したか判別する（ステップＳ２０９）。
【００８０】
そして、タッチ判定装置２０は、全ての手についてタッチ検出処理が終了していない場合には（ステップＳ２０９：Ｎｏ）、ステップＳ２０５に処理を戻して、タッチ検出処理が行われていない手を選択し直す。
【００８１】
一方、タッチ判定装置２０は、全ての手についてタッチ検出処理が終了している場合には（ステップＳ２０９：Ｙｅｓ）、タッチ判定処理を終了してメインルーチンである入力受付処理に処理を戻す。
【００８２】
＜タッチ検出処理（Ｓ２０７）＞
次に、上記のタッチ判定処理のサブルーチンとして行われるタッチ検出処理（Ｓ２０７）について説明する。
【００８３】
図７は、タッチ検出処理の手順を示すフローチャートである。タッチ検出処理は、入力受付処理およびタッチ判定処理と同様にタッチ判定装置２０において実行される。また、図８（Ａ）は、ユーザーの指先の位置（３次元座標）を記録した指先位置データ１５０の概略データ構造を示す図である。図８（Ｂ）は、ユーザーの指先の移動速度を単位期間（たとえば１ｍｓ）ごとに記録した指先速度データ１６０の概略データ構造を示す図である。また、図９は、タッチ判定の方法について説明するための図である。
【００８４】
以下、図７〜図９を参照して、タッチ検出処理の手順について説明する。
【００８５】
なお、タッチ検出処理の実行中においては、仮想的な操作パネル５は、画像表示装置１１に常に表示されているものとする。
【００８６】
タッチ検出処理を開始すると、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０５において検出された指（指先）と、仮想的な割り当て対象５０（たとえば、テーブル）の間の距離を算出する（ステップＳ３０１）。そのために、タッチ判定装置２０は、まず、指先の位置についての３次元座標を算出する。たとえば、タッチ判定装置２０は、撮像画像を用いて、ステップＳ２０５において検出された指領域の先端位置Ｐのｘ座標およびｙ座標を特定する。また、タッチ判定装置２０は、ステップＳ１０２において得られた奥行き情報から、指先の位置Ｐのｚ座標を求める。そして、タッチ判定装置２０は、ここで求めた３次元の指先の位置Ｐと、図５に示す割り当て対象５０と、の距離（ｚ’方向の距離）を算出する。この距離は、点と平面の距離を求める一般的な方程式を用いて算出できる。
【００８７】
このとき、タッチ判定装置２０は、求めた距離をデータとして記録する。たとえば、タッチ判定装置２０は、図８（Ａ）に示すような指先位置データ１５０として記録する。
【００８８】
指先位置データ１５０には、現時点の時刻１５１と、ステップＳ３０１において求められた距離１５２と、が対応付けて記録される。
【００８９】
次に、タッチ判定装置２０は、タッチ判定部３５として機能し、ステップＳ２０５において検出された指（指先）が仮想的な操作パネル５に近づく速度を求める（ステップＳ３０２）。すなわち、タッチ判定装置２０は、指先の３次元空間における移動速度について、図５に示す割り当て対象５０（たとえば、テーブルの表面）と垂直な方向ｚ’の成分を求める。たとえば、タッチ判定装置２０は、指先位置データ１５０に記録された直近の２つの距離１５２の差分（ｚ’成分）を求め、これを単位期間（たとえば、１ｍｓ）で除せばよい。
【００９０】
このとき、タッチ判定装置２０は、求めた速度（ｚ’／ｍｓ）を記録する。たとえば、タッチ判定装置２０は、図８（Ｂ）に示すような指先速度データ１６０として記録する。
【００９１】
指先速度データ１６０には、期間１６１と、ステップＳ３０２において求められた指先の移動速度１６２と、が対応付けて記録される。
【００９２】
次に、タッチ判定装置２０は、タッチ判定部３５として機能し、タッチ検出処理を開始してから、タッチ動作を判断するために必要な一定期間（たとえば、５０ｍｓ）が、経過したか否か判別する（ステップＳ３０３）。
【００９３】
タッチ判定装置２０は、一定期間が経過していなければ（ステップＳ３０３：Ｎｏ）、外部環境取得部３１として機能して、外界の撮影画像および奥行き情報を取得し直す。タッチ判定装置２０は、これにより得られた撮像画像および奥行き情報を用いて、再度ステップＳ３０１、Ｓ３０２の処理を行う。タッチ判定装置２０は、一定期間が経過するまでこれを繰り返し、指先位置データ１５０および指先速度データ１６０には、単位期間ごとにデータが追加される。
【００９４】
そして、タッチ判定装置２０は、一定期間が経過すると（ステップＳ３０３：Ｙｅｓ）、処理をステップＳ３０４に進める。この時点において指先位置データ１５０に記録されているデータをプロットすれば、図９に示すようなグラフが得られる。
【００９５】
ステップＳ３０４では、タッチ判定装置２０は、タッチ判定部３５として機能し、ユーザーの指先が仮想的な操作パネル５の割り当て対象５０（たとえば、テーブル）に接触して物理的な影響を受けたかどうか判断する。具体的には、タッチ判定装置２０は、指先位置データ１５０および指先速度データ１６０を用いて、所定期間以上、指先が静止しているか否か判別する（ステップＳ３０４）。たとえば、図９の紙面左側に示すグラフのように、指先の速度（絶対値）が所定の閾値未満となる状態が続かない場合には、指先は静止していないと判定する。
【００９６】
指先が静止していないと判定された場合には（ステップＳ３０４：Ｎｏ）、タッチ判定装置２０は、ステップＳ２０５において検出された指について、仮想的な操作パネル５へのタッチ動作はされていないとみなし、タッチ検出処理を終了する。
【００９７】
一方、ステップＳ３０４において、図９の紙面右側に示すグラフのように、指先の速度（絶対値）が所定の閾値未満となる状態が所定期間以上続く場合には、タッチ判定装置２０は、指先が静止していると判定する。
【００９８】
指先が静止していると判定された場合には（ステップＳ３０４：Ｙｅｓ）、タッチ判定装置２０は、ステップＳ２０５において検出された指について、仮想的な操作パネル５へのタッチ動作がされたとみなす（ステップＳ３０５）。この場合には、タッチ判定装置２０は、仮想的な操作パネル５内のどの仮想ボタンに対してタッチ動作がされたのか特定する。たとえば、タッチ判定装置２０は、指先の位置Ｐに最も近い仮想ボタンに対してタッチ動作がされたものとみなす。なお、指先の位置Ｐと各仮想ボタンの距離は、ステップＳ３０１において求められた指先の位置（３次元座標）と、ステップＳ１０３において求められた各仮想ボタンの位置（３次元座標）と、の距離によって求められる。
【００９９】
その後、タッチ判定装置２０は、タッチ検出処理を終了してタッチ判定処理に処理を戻す。
【０１００】
以上の入力受付処理、タッチ判定処理、およびタッチ検出処理が実行されることにより、タッチ判定装置２０は、ユーザーの指が物体の表面に接触したときに受ける物理的な影響を判断して、仮想的な操作パネル５へのタッチを判定できる。このような判断基準は明確かつシンプルであるため、タッチ判定装置２０は、ユーザーによる仮想的な操作パネルへのタッチを確実に判定できるようになる。また、ユーザーが仮想的な操作パネル５にタッチする動作をしたときは、必ず物体の表面から抗力を受けるため、ユーザーは感覚的に操作パネル５にタッチできたことを認識でき、入力操作がしやすい。
【０１０１】
＜第２実施形態＞
次に、本発明の第２実施形態について説明する。第２実施形態にかかるタッチ判定システム１は、第１実施形態にかかるタッチ判定システム１と基本的に同様の構成を備えるため、相違する点を中心に以下説明する。
【０１０２】
第２実施形態のタッチ判定装置２０は、第１実施形態とは異なる方法によって、仮想的な操作パネル５へのタッチ動作を判定する。具体的には、第２実施形態のタッチ判定装置２０は、ユーザーの指が物体の表面に接触して静止し、かつ、その指の移動速度が静止前において所定値以上となることを判断して、仮想的な操作パネル５へのタッチを判定する。
【０１０３】
図１０は、第２実施形態に係るタッチ検出処理の手順を示すフローチャートである。また、図１１は、ユーザーの指先の移動速度を一定期間（たとえば５０ｍｓ）ごとに記録した速度履歴データ１７０の概略データ構造を示す図である。また、図１２は、第２実施形態に係るタッチ判定の方法について説明するための図である。
【０１０４】
以下、図１０〜図１２を参照して、第２実施形態に係るタッチ検出処理の手順について説明する。
【０１０５】
なお、第２実施形態の入力受付処理、タッチ判定処理は、第１実施形態と同様に行われるため、その説明を省略する。そして、第２実施形態に係るタッチ検出処理は、第１実施形態と同様に、タッチ判定処理のサブルーチン（Ｓ２０７）として行われる。
【０１０６】
図１０に示すとおり、タッチ検出処理を開始すると、タッチ判定装置２０は、第１実施形態のステップＳ３０１〜Ｓ３０３と同様の処理を行って、指先位置データ１５０および指先速度データ１６０を生成する（ステップＳ４０１〜Ｓ４０３）。
【０１０７】
その後、タッチ判定装置２０は、タッチ判定部３５として機能し、上記の単位期間（たとえば、１ｍｓ）よりも長いスパン（たとえば、５０ｍｓ）での指先の移動速度について履歴を記録する（ステップＳ４０４）。具体的には、タッチ判定装置２０は、図８（Ｂ）に示す指先速度データ１６０に含まれるデータから一定期間ごとの平均速度を求めて、一定期間ごとの指先の平均移動速度をデータとして記録する。たとえば、タッチ判定装置２０は、図１１に示すような速度履歴データ１７０として記録する。
【０１０８】
速度履歴データ１７０には、一定期間１７１と、その一定期間１７１における指先の平均移動速度１７２と、が対応付けて記録される。
【０１０９】
次に、タッチ判定装置２０は、タッチ判定部３５として機能し、ユーザーの指先が仮想的な操作パネル５の割り当て対象５０（たとえば、テーブル）に接触して物理的な影響を受けたかどうか判断する。
【０１１０】
そのために、タッチ判定装置２０は、まず、上記実施形態のステップＳ３０４と同様に、指先位置データ１５０および指先速度データ１６０を用いて、所定期間以上、指先が静止しているか否か判別する（ステップＳ４０５）。
【０１１１】
次に、指先が静止していると判定された場合には（ステップＳ４０５：Ｙｅｓ）、タッチ判定装置２０は、速度履歴データ１７０を用いて、指先の静止直前の速度が一定速度以上であるか否か判別する（ステップＳ４０６）。
【０１１２】
そして、タッチ判定装置２０は、図１２の紙面右側に示すグラフのように、指先の移動速度が静止直前において一定速度以上である場合には（ステップＳ４０６：Ｙｅｓ）、ユーザーの指先が割り当て対象５０に接触して物理的な影響を受けたと判定する。
【０１１３】
一方、ステップＳ４０５において指先が静止していないと判定された場合（ステップＳ４０５：Ｎｏ）、または、図１２の紙面左側に示すグラフのように、ステップＳ４０６において指先の移動速度が静止直前において一定速度未満であると判定された場合には（ステップＳ４０６：Ｎｏ）、タッチ判定装置２０は、ユーザーの指先が割り当て対象５０から物理的な影響を受けていないと判定する。
【０１１４】
以上のステップＳ４０５、Ｓ４０６により、指先が割り当て対象５０から物理的な影響を受けていないと判定されたときは、タッチ判定装置２０は、ステップＳ２０５において検出された指について、仮想的な操作パネル５へのタッチ動作がされたとみなす（ステップＳ４０７）。
【０１１５】
一方、以上のステップＳ４０５、Ｓ４０６により、指先が割り当て対象５０から物理的な影響を受けていないと判定されたときは、タッチ判定装置２０は、ステップＳ２０５において検出された指について、仮想的な操作パネル５へのタッチ動作はされていないとみなし、タッチ検出処理を終了する。
【０１１６】
その後、タッチ判定装置２０は、タッチ検出処理を終了してタッチ判定処理に処理を戻す。
【０１１７】
以上のタッチ検出処理が実行されることにより、タッチ判定装置２０は、ユーザーの指先が静止していると判定された場合であっても、静止直前の指先の速度が小さい場合にはタッチ動作とみなさないようにしている。これにより、手を休めるために割り当て対象５０（たとえば、テーブル）上に手を置く動作等を、タッチ動作と判定しないようにできる。
【０１１８】
＜第３実施形態＞
次に、本発明の第３実施形態について説明する。第３実施形態にかかるタッチ判定システム１は、第１実施形態および第２実施形態にかかるタッチ判定システム１と基本的に同様の構成を備えるため、相違する点を中心に以下説明する。
【０１１９】
第３実施形態のタッチ判定装置２０は、第２実施形態と同様の方法によって、仮想的な操作パネル５へのタッチ動作を判定するが、そのタッチ動作がドラッグ操作のために行われたのか区別して判定する点で異なる。
【０１２０】
図１３は、第３実施形態に係るドラッグ判定処理の手順を示すフローチャートである。また、図１４は、仮想的な操作パネル５へのタッチ位置の履歴を記録したタッチ位置履歴データ１８０の概略データ構造を示す図である。また、図１５は、ドラッグ操作を判定するために形成するタッチ平面について説明するための図である。
【０１２１】
以下、図１３〜図１５を参照して、第３実施形態に係るドラッグ判定処理の手順について説明する。
【０１２２】
なお、第３実施形態の入力受付処理、タッチ判定処理、タッチ検出処理は、第１実施形態または第２実施形態と同様に行われるため、その説明を省略する。そして、第３実施形態に係るドラッグ判定処理は、第１実施形態または第２実施形態において仮想的な操作パネル５にタッチする動作がなされたと判定されたとき（ステップ３０５、Ｓ４０７）に開始される。
【０１２３】
図１３に示すとおり、ドラッグ判定処理を開始すると、タッチ判定装置２０は、タッチ判定部３５として機能し、仮想的な操作パネル５にタッチする動作がなされたと判定された指先によるタッチ位置を記録する（ステップＳ５０１）。具体的には、タッチ判定装置２０は、指先が静止しているときにステップＳ３０１において求められた指先の位置（３次元座標）をデータとして記録する。たとえば、タッチ判定装置２０は、図１４に示すようなタッチ位置履歴データ１８０として記録する。
【０１２４】
タッチ位置履歴データ１８０には、タッチ位置の識別番号１８１と、タッチ位置の３次元座標１８２と、が対応付けて記録される。
【０１２５】
なお、ステップＳ５０１の処理により、タッチ位置履歴データ１８０には、タッチ動作がなされる毎に、データが追加されることになる。
【０１２６】
次に、タッチ判定装置２０は、タッチ判定部３５として機能し、図１５に示すように、タッチ位置履歴データ１８０に記憶されているタッチ位置を含む平面を、仮想的な操作パネル５が存在する平面（以下「タッチ平面」とよぶ）として形成、補正する（ステップＳ５０２）。具体的には、タッチ判定装置２０は、ｙ＝ａ（ｘ−ｘ０）＋ｂ（ｙ−ｙ０）＋ｃ（ｚ−ｚ０）という平面を表す一般式と、過去の各タッチ位置との距離の総和が最小となるように、パラメータ（ａ、ｂ、ｃ）を決定すればよい。なお、（ａ、ｂ、ｃ）はタッチ平面の法線ベクトルを表し、（ｘ０、ｙ０、ｚ０）は、タッチ平面に含まれる１つのタッチ位置の座標を表す。
【０１２７】
その後、タッチ判定装置２０は、タッチ判定部３５として機能し、ドラッグ判定処理が開始されてから所定時間が経過するか否か判別する（ステップＳ５０３）。タッチ判定装置２０は、所定時間が経過していなければ（ステップＳ５０３：Ｎｏ）、所定時間が経過するまで待機する。ここで、所定時間待機するのは、今後繰り返し行われるドラッグ判定の間隔を調整するためである。
【０１２８】
そして、所定時間が経過すると（ステップＳ５０３：Ｙｅｓ）、タッチ判定装置２０は、外部環境取得部３１およびタッチ判定部３５として機能し、指先の位置についての３次元座標を算出する（ステップＳ５０４）。たとえば、タッチ判定装置２０は、まず、外部環境取得部３１として機能して、外界の撮影画像および奥行き情報を取得し直す。次に、タッチ判定装置２０は、タッチ判定部３５として機能し、これにより得られた撮像画像および奥行き情報を用いて、指先の位置Ｐ（３次元座標）を求める。
【０１２９】
そして、タッチ判定装置２０は、ここで求めた指先の位置Ｐと、ステップＳ５０３において求めたタッチ平面と、の距離を算出する（ステップＳ５０４）。この距離は、点と平面の距離を求める一般的な方程式を用いて算出できる。
【０１３０】
ステップＳ５０４、Ｓ５０５の処理により、タッチ判定装置２０は、ユーザーの指（指先）と、タッチ平面の間の距離を算出できる。
【０１３１】
このとき、タッチ判定装置２０は、タッチ判定部３５として機能し、ユーザーの指とタッチ平面との距離が一定距離離れているか否か判別する（ステップＳ５０６）。一定距離離れていなければ（ステップＳ５０６：Ｎｏ）、タッチ判定装置２０は、仮想的な操作パネル５に対して１点をタッチする操作ではなく、仮想的な操作パネル５上を指でなぞるようなドラッグ操作がなされているとみなし、処理をステップＳ５０１に戻す。一方、ユーザーの指とタッチ平面との距離が一定距離れていれば、仮想的な操作パネル５から指が離されたとみなし（ステップＳ５０７）、ドラッグ判定処理を終了する。
【０１３２】
以上のドラッグ判定処理が実行されることにより、タッチ判定装置２０は、ユーザーからの仮想的な操作パネル５へのタッチ動作が、１点をタッチする操作なのか、ドラッグ操作なのか、区別できる。また、タッチ位置の座標を多く記録するほど、精度良くタッチ平面を求めることができるので、本実施形態のタッチ判定装置２０を使用すればするほど高速にドラッグ判定できるようになる。
【０１３３】
なお、上記した各実施形態における各フローチャートの処理単位は、タッチ判定装置２０の理解を容易にするために、主な処理内容に応じて分割したものである。処理ステップの分類の仕方やその名称によって、本願発明が制限されることはない。タッチ判定装置２０で行われる処理は、さらに多くの処理ステップに分割することもできる。また、１つの処理ステップが、さらに多くの処理を実行してもよい。
＜変形例＞
また、上記の各実施形態は、本発明の要旨を例示することを意図し、本発明を限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【０１３４】
たとえば、上記各実施形態では、外界の光をユーザーの目に届けるヘッドマウントディスプレイ１０を用いる例について説明しているが、拡張現実の技術が利用できるのであれば、これに限定されない。たとえば、外界を撮影した撮影画像を背景画像として表示しておき、背景画像に操作パネル５のような重畳画像を重畳させて表示する表示装置を用いてもよい。
【０１３５】
また、上記各実施形態では、ヘッドマウントディスプレイ１０とタッチ判定装置２０を別々の装置として説明しているが、これに限らず、一体型の装置としてもよい。
【０１３６】
また、上記各実施形態では、カメラにより撮影された画像の中心位置にある物体を、重畳画像の割り当て対象５０として選択しているが、これに限らない。たとえば、平坦な領域をもつ物体、周辺よりも色が濃い又は薄い物体、特別な形状（たとえば、直方体、球状）の物体などを、重畳画像の割り当て対象５０として選択してもよい。
【０１３７】
また、上記各実施形態では、特に述べていないが、仮想的な操作パネル５の画像を重畳画像の割り当て対象５０（物体の表面）上に投影して表示してもよい。この場合には、仮想的な操作パネル５の画像を投影するためのプロジェクターをヘッドマウントディスプレイ１０等に設ければよい。
【０１３８】
また、上記各実施形態では、ユーザーの指が受ける物理的な影響を判断する方法として、主に、指先が静止した状態であるかどうかを調べる方法について説明している。しかし、本発明は、これに限らず、タッチ判定装置２０が、撮像画像を画像解析することにより指先が反った状態であるかどうかをみて、その指が受けている物理的な影響を判断してもよい。また、撮像画像を画像解析して関節の位置を特定し、指が曲がった状態であるかどうかをみて、その指が受けている物理的な影響を判断してもよい。これらの場合には、奥行き情報を利用せずに、撮像画像のみを利用して判断できるため、高速に判断できるというメリットもある。
【０１３９】
また、上記各実施形態では、特に言及していないが、タッチ判定装置２０は、撮影画像および奥行き情報を取得し直す度に、ヘッドマウントディスプレイ１０の姿勢を検出し、その姿勢に応じて、各所で求められる３次元座標を座標変換する。これにより、座標系を統一化できる。
【０１４０】
以上のタッチ判定システム１の構成は、上記の各実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的なタッチ判定システム１が備える構成を排除するものではない。
【０１４１】
また、上記したタッチ判定システム１の各機能構成は、各機能構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。各機能構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。
【０１４２】
また、タッチ判定装置２０を動作させるプログラムは、ＵＳＢメモリー、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ等のコンピューター読み取り可能な記録媒体によって提供されてもよいし、インターネット等のネットワークを介してオンラインで提供されてもよい。この場合、コンピューター読み取り可能な記録媒体に記録されたプログラムは、通常、メモリー２２やストレージ２３等に転送され記憶される。また、このプログラムは、たとえば、単独のアプリケーションソフトとして提供されてもよいし、タッチ判定装置２０の一機能としてその装置のソフトウェアに組み込んでもよい。
【０１４３】
また、図３に示した各構成要素の処理は、専用のハードウェア回路によっても実現することもできる。この場合には、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【符号の説明】
【０１４４】
１  タッチ判定システム、
５  操作パネル、
１０  ヘッドマウントディスプレイ、
１１  画像表示装置、
１２ａ、ｂ  プリズム、
１３  センサー、
２０  タッチ判定装置、
２１  ＣＰＵ、
２２  メモリー
２３  ストレージ、
２４  外部Ｉ／Ｆ、
３１  外部環境取得部、
３２  指挙動検出部、
３３  オブジェクト生成部、
３４  重畳画像生成部、
３５  タッチ判定部、
５０  割り当て対象、
１５０  指先位置データ、
１６０  指先速度データ、
１７０  速度履歴データ、
１８０  タッチ位置履歴データ。
【図１】
2014157515.tif 000003
【図２】
2014157515.tif 000004
【図３】
2014157515.tif 000005
【図４】
2014157515.tif 000006
【図５】
2014157515.tif 000007
【図６】
2014157515.tif 000008
【図７】
2014157515.tif 000009
【図８】
2014157515.tif 000010
【図９】
2014157515.tif 000011
【図１０】
2014157515.tif 000012
【図１１】
2014157515.tif 000013
【図１２】
2014157515.tif 000014
【図１３】
2014157515.tif 000015
【図１４】
2014157515.tif 000016
【図１５】
2014157515.tif 000017