(57)【特許請求の範囲】
【請求項１】
ユーザに仮想空間を認識させるための画面を表示可能な画像表示装置であって、
当該画像表示装置が実在している現実空間に関する情報を取得する外部情報取得部と、
前記情報に基づいて、前記現実空間に実在する特定の物体を認識する物体認識部と、
前記物体の像を前記仮想空間内の特定の平面に配置する疑似３次元化処理部と、
前記平面に、前記物体の像を認識するために用いられる複数の判定ポイントを設定すると共に、前記物体の像により操作される操作オブジェクトであって、前記複数の判定ポイント上を移動する操作オブジェクトを配置する仮想空間構成部と、
前記複数の判定ポイントの各々について、前記物体の像が重なっている状態である第１の状態と、前記物体の像が重なっていない状態である第２の状態とのいずれの状態であるかを判定する状態判定部と、
前記状態判定部による判定結果に応じて、前記操作オブジェクトの位置を更新する位置更新処理部と、
を備える画像表示装置。
【請求項２】
前記位置更新処理部は、前記第１の状態にある判定ポイントの位置に前記操作オブジェクトの位置を更新する、請求項１に記載の画像表示装置。
【請求項３】
前記位置更新処理部は、前記第１の状態にある判定ポイントが複数存在する場合、予め設定された条件に適合する判定ポイントの位置に、前記操作オブジェクトの位置を更新する、請求項２に記載の画像表示装置。
【請求項４】
前記位置更新処理部は、前記状態判定部により、前記複数の判定ポイントのうち開始エリアとして予め設定された少なくとも１つの判定ポイントのいずれかに前記物体の像が重なったと判定された場合に、前記操作オブジェクトの位置の更新を開始させる、請求項１〜３のいずれか１項に記載の画像表示装置。
【請求項５】
前記位置更新処理部は、前記複数の判定ポイントのうち解除エリアとして予め設定された少なくとも１つの判定ポイントのいずれかに前記操作オブジェクトの位置が更新された場合に、前記操作オブジェクトの位置の更新を終了させる、請求項１〜４のいずれか１項に記載の画像表示装置。
【請求項６】
前記位置更新処理部は、前記操作オブジェクトの位置の更新を終了させた場合に、前記開始エリアとして設定された少なくとも１つの判定ポイントのいずれかに前記操作オブジェクトの位置を更新する、請求項５に記載の画像表示装置。
【請求項７】
前記仮想空間構成部は、前記複数の判定ポイントのうち予め設定された少なくとも１つの判定ポイントを含む領域に選択オブジェクトを配置し、
前記領域における少なくとも１つの判定ポイントのいずれかに前記操作オブジェクトの位置が更新された場合に、前記選択オブジェクトが選択されたと判定する選択判定部をさらに備える、
請求項１〜６のいずれか１項に記載の画像表示装置。
【請求項８】
前記仮想空間構成部は、前記複数の判定ポイント上を移動可能な選択オブジェクトを前記平面に配置し、
前記選択オブジェクトが位置する判定ポイントに前記操作オブジェクトの位置が更新されて所定時間が経過した場合に、前記選択オブジェクトの位置を前記操作オブジェクトの位置と共に更新する選択判定部をさらに備える、
請求項１〜６のいずれか１項に記載の画像表示装置。
【請求項９】
前記選択判定部は、前記選択オブジェクトの位置を前記操作オブジェクトの位置と共に更新している状態において、前記操作オブジェクトの速度が閾値以下で所定時間経過した場合に、前記選択オブジェクトの位置の更新を停止する、請求項８に記載の画像表示装置。
【請求項１０】
前記外部情報取得部は、当該画像表示装置に内蔵されたカメラである、請求項１〜９のいずれか１項に記載の画像表示装置。
【請求項１１】
ユーザに仮想空間を認識させるための画面を表示可能な画像表示装置が実行する画像表示方法であって、
当該画像表示装置が実在している現実空間に関する情報を取得するステップ（ａ）と、
前記情報に基づいて、前記現実空間に実在する特定の物体を認識するステップ（ｂ）と、
前記物体の像を前記仮想空間内の特定の平面に配置するステップ（ｃ）と、
前記平面に、前記物体の像を認識するために用いられる複数の判定ポイントを設定すると共に、前記物体の像により操作される操作オブジェクトであって、前記複数の判定ポイント上を移動する操作オブジェクトを配置するステップ（ｄ）と、
前記複数の判定ポイントの各々について、前記物体の像が重なっている状態である第１の状態と、前記物体の像が重なっていない状態である第２の状態とのいずれの状態であるかを判定するステップ（ｅ）と、
前記ステップ（ｅ）における判定結果に応じて、前記操作オブジェクトの位置を更新するステップ（ｆ）と、
を含む画像表示方法。
【請求項１２】
ユーザに仮想空間を認識させるための画面を表示可能な画像表示装置に実行させる画像表示プログラムであって、
当該画像表示装置が実在している現実空間に関する情報を取得するステップ（ａ）と、
前記情報に基づいて、前記現実空間に実在する特定の物体を認識するステップ（ｂ）と、
前記物体の像を前記仮想空間内の特定の平面に配置するステップ（ｃ）と、
前記平面に、前記物体の像を認識するために用いられる複数の判定ポイントを設定すると共に、前記物体の像により操作される操作オブジェクトであって、前記複数の判定ポイント上を移動する操作オブジェクトを配置するステップ（ｄ）と、
前記複数の判定ポイントの各々について、前記物体の像が重なっている状態である第１の状態と、前記物体の像が重なっていない状態である第２の状態とのいずれの状態であるかを判定するステップ（ｅ）と、
前記ステップ（ｅ）における判定結果に応じて、前記操作オブジェクトの位置を更新するステップ（ｆ）と、
を実行させる画像表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間におけるユーザインタフェースの表示技術に関する。
【背景技術】
【０００２】
近年、仮想現実（バーチャルリアリティ、以下「ＶＲ」とも記す）をユーザに体験させる技術が、ゲームやエンターテインメント或いは職業訓練等の様々な分野で利用されている。ＶＲにおいては、通常、ヘッドマウントディスプレイ（以下、「ＨＭＤ」とも記す）と呼ばれるメガネ型又はゴーグル型の表示装置が用いられる。このＨＭＤをユーザの頭部に装着し、ＨＭＤに内蔵された画面を両眼で見ることにより、ユーザは立体感のある画像を鑑賞することができる。ＨＭＤにはジャイロセンサや加速度センサが内蔵されており、これらのセンサによって検出したユーザの頭部の動きに応じて、画面に表示する画像が変化する。それにより、ユーザは、あたかも表示された画像の中に入り込んだような体験をすることができる。【０００３】
このようなＶＲの技術分野においては、ユーザのジェスチャにより操作を行うユーザインタフェースが研究されている。一例として、ユーザの体表に専用のセンサを取り付け、或いは、ユーザの動きを検出するための外部装置をユーザの周囲に配置することにより、ＨＭＤに対してユーザの動きに応じた操作を行う技術が知られている。【０００４】
また、別の例として、特許文献１には、仮想空間にユーザインタフェースを配置し、ユーザがこのユーザインタフェースを操作するために用いる操作部が撮像部の視野内にあり、且つ、操作部とユーザインタフェースとの位置関係が規定の位置関係にある場合に、ユーザインタフェースに対する操作があったと判断する画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−４８６５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ユーザのジェスチャを検出するために専用のセンサや外部装置を設ける場合、装置構成が大掛かりになってしまう。また、専用のセンサや外部装置により検出された信号を処理するための演算量も膨大になり、高スペックな演算装置が必要になってしまう。さらも、ジェスチャの動きが早い場合には、演算処理に時間がかかってしまい、リアルタイムな操作が困難になってしまう。【０００７】
また、ユーザインタフェースとして複数のアイコンが仮想空間に表示されている場合、操作部を移動させることにより各アイコンとの位置関係がその都度変化する。そのため、単純に、操作部と各アイコンとの位置関係に基づいて操作の有無を判定すると、ユーザが意図しないアイコンに対して操作がなされたものと判断されてしまうおそれがある。この点に関し、特許文献１においては、アイコンと操作部との位置関係が所定の条件を満たしている状態で選択指示が入力された場合に、当該アイコンに対する操作がなされたものと判断している。つまり、アイコンの選択と決定という２段階の処理が行われている。そのため、ユーザにとっては直感的な操作とは言い難い。【０００８】
本発明は上記に鑑みてなされたものであって、ジェスチャによる直感的且つリアルタイムな操作を簡素な装置構成で行うことができる画像表示装置、画像表示方法、及び画像表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の一態様である画像表示装置は、ユーザに仮想空間を認識させるための画面を表示可能な画像表示装置であって、当該画像表示装置が実在している現実空間に関する情報を取得する外部情報取得部と、前記情報に基づいて、前記現実空間に実在する特定の物体を認識する物体認識部と、前記物体の像を前記仮想空間内の特定の平面に配置する疑似３次元化処理部と、前記平面に、前記物体の像を認識するために用いられる複数の判定ポイントを設定すると共に、前記物体の像により操作される操作オブジェクトを配置する仮想空間構成部と、前記複数の判定ポイントの各々について、前記物体の像が重なっている状態である第１の状態と、前記物体の像が重なっていない状態である第２の状態とのいずれの状態であるかを判定する状態判定部と、前記状態判定部による判定結果に応じて、前記操作オブジェクトの位置を更新する位置更新処理部と、を備えるものである。【００１０】
上記画像表示装置において、前記位置更新処理部は、前記第１の状態にある判定ポイントの位置に前記操作オブジェクトの位置を更新しても良い。【００１１】
上記画像表示装置において、前記位置更新処理部は、前記第１の状態にある判定ポイントが複数存在する場合、予め設定された条件に適合する判定ポイントの位置に、前記操作オブジェクトの位置を更新しても良い。【００１２】
上記画像表示装置において、前記位置更新処理部は、前記状態判定部により、前記複数の判定ポイントのうち開始エリアとして予め設定された少なくとも１つの判定ポイントのいずれかに前記物体の像が重なったと判定された場合に、前記操作オブジェクトの位置の更新を開始させても良い。【００１３】
上記画像表示装置において、前記位置更新処理部は、前記複数の判定ポイントのうち解除エリアとして予め設定された少なくとも１つの判定ポイントのいずれかに前記操作オブジェクトの位置が更新された場合に、前記操作オブジェクトの位置の更新を終了させても良い。【００１４】
上記画像表示装置において、前記位置更新処理部は、前記操作オブジェクトの位置の更新を終了させた場合に、前記開始エリアとして設定された少なくとも１つの判定ポイントのいずれかに前記操作オブジェクトの位置を更新しても良い。【００１５】
上記画像表示装置において、前記仮想空間構成部は、前記複数の判定ポイントのうち予め設定された少なくとも１つの判定ポイントを含む領域に選択オブジェクトを配置し、前記領域における少なくとも１つの判定ポイントのいずれかに前記操作オブジェクトの位置が更新された場合に、前記選択オブジェクトが選択されたと判定する選択判定部をさらに備えても良い。【００１６】
上記画像表示装置において、前記仮想空間構成部は、前記複数の判定ポイント上を移動可能な選択オブジェクトを前記平面に配置し、前記選択オブジェクトが位置する判定ポイントに前記操作オブジェクトの位置が更新されて所定時間が経過した場合に、前記選択オブジェクトの位置を前記操作オブジェクトの位置と共に更新する選択判定部をさらに備えても良い。【００１７】
上記画像表示装置において、前記選択判定部は、前記選択オブジェクトの位置を前記操作オブジェクトの位置と共に更新している状態において、前記操作オブジェクトの速度が閾値以下で所定時間経過した場合に、前記選択オブジェクトの位置の更新を停止しても良い。【００１８】
上記画像表示装置において、前記外部情報取得部は、当該画像表示装置に内蔵されたカメラであっても良い。【００１９】
本発明の別の態様である画像表示方法は、ユーザに仮想空間を認識させるための画面を表示可能な画像表示装置が実行する画像表示方法であって、当該画像表示装置が実在している現実空間に関する情報を取得するステップ（ａ）と、前記情報に基づいて、前記現実空間に実在する特定の物体を認識するステップ（ｂ）と、前記物体の像を前記仮想空間内の特定の平面に配置するステップ（ｃ）と、前記平面に、前記物体の像を認識するために用いられる複数の判定ポイントを設定すると共に、前記物体の像により操作される操作オブジェクトを配置するステップ（ｄ）と、前記複数の判定ポイントの各々について、前記物体の像が重なっている状態である第１の状態と、前記物体の像が重なっていない状態である第２の状態とのいずれの状態であるかを判定するステップ（ｅ）と、前記状態判定部による判定結果に応じて、前記操作オブジェクトの位置を更新するステップ（ｆ）と、を含むものである。【００２０】
本発明のさらに別の態様である画像表示プログラムは、ユーザに仮想空間を認識させるための画面を表示可能な画像表示装置に実行させる画像表示プログラムであって、当該画像表示装置が実在している現実空間に関する情報を取得するステップ（ａ）と、前記情報に基づいて、前記現実空間に実在する特定の物体を認識するステップ（ｂ）と、前記物体の像を前記仮想空間内の特定の平面に配置するステップ（ｃ）と、前記平面に、前記物体の像を認識するために用いられる複数の判定ポイントを設定すると共に、前記物体の像により操作される操作オブジェクトを配置するステップ（ｄ）と、前記複数の判定ポイントの各々について、前記物体の像が重なっている状態である第１の状態と、前記物体の像が重なっていない状態である第２の状態とのいずれの状態であるかを判定するステップ（ｅ）と、前記状態判定部による判定結果に応じて、前記操作オブジェクトの位置を更新するステップ（ｆ）と、を実行させるものである。
【発明の効果】
【００２１】
本発明によれば、平面上に設定された複数のポイントの各々について、物体の像が重なっているか否かを判定し、この判定結果に応じて操作オブジェクトの位置を更新するので、操作オブジェクトの位置の更新にあたって特定の物体の像の位置変化を逐一追跡する必要がなくなる。そのため、特定の物体の像の動きが早い場合であっても、特定の物体の像の位置に操作オブジェクトを容易に配置することができる。従って、特定の物体を用いたジェスチャによる直感的且つリアルタイムな操作を簡素な装置構成で行うことが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の第１の実施形態に係る画像表示装置の概略構成を示すブロック図である。
【図２】画像表示装置をユーザに装着させた状態を示す模式図である。
【図３】図１に示す表示部に表示される画面を例示する模式図である。
【図４】図３に示す画面に対応する仮想空間を例示する模式図である。
【図５】本発明の第１の実施形態における仮想空間に配置される操作面を例示する模式図である。
【図６】図５に示す操作面に特定の物体の像が重畳して表示された画面を例示する模式図である。
【図７】本発明の第１の実施形態に係る画像表示装置の動作を示すフローチャートである。
【図８】本発明の第１の実施形態において仮想空間に配置される操作面を例示する模式図である。
【図９】操作の受付処理を示すフローチャートである。
【図１０】操作の受付処理を説明するための模式図である。
【図１１】追従処理を示すフローチャートである。
【図１２】追従処理を説明するための模式図である。
【図１３】追従処理を説明するための模式図である。
【図１４】追従処理を説明するための模式図である。
【図１５】追従処理を説明するための模式図である。
【図１６】追従処理を説明するための模式図である。
【図１７】選択判定処理を終了する際の判定方法を説明するための模式図である。
【図１８】選択がなされたか否かの判定方法を説明するための模式図である。
【図１９】選択されたメニューの判定方法を説明するための模式図である。
【図２０】操作面における判定ポイントの別の配置例を示す模式図である。
【図２１】本発明の第２の実施形態において仮想空間に配置される操作面を例示する模式図である。
【図２２】本発明の第２の実施形態に係る画像処理装置の動作を示すフローチャートである。
【図２３】図２２に示す操作面に対する操作例を説明するための模式図である。
【図２４】図２２に示す操作面に対する操作例を説明するための模式図である。
【図２５】図２２に示す操作面に対する操作例を説明するための模式図である。
【図２６】図２２に示す操作面に対する操作例を説明するための模式図である。
【図２７】図２２に示す操作面に対する操作例を説明するための模式図である。
【図２８】図２２に示す操作面に対する操作例を説明するための模式図である。
【図２９】図２２に示す操作面に対する操作例を説明するための模式図である。
【図３０】本発明の第３の実施形態において仮想空間に配置される操作面を例示する模式図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態に係る表示装置について、図面を参照しながら説明する。なお、これらの実施形態によって本発明が限定されるものではない。また、各図面の記載において、同一部分には同一の符号を付して示している。
【００２４】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る画像表示装置の概略構成を示すブロック図である。本実施形態に係る画像表示装置１は、ユーザに両眼で画面を見させることにより、３次元的な仮想空間を認識させる装置である。図１に示すように、画像表示装置１は、画面が表示される表示部１１と、記憶部１２と、各種演算処理を行う演算部１３と、当該画像表示装置１の外部に関する情報（以下、外部情報という）を取得する外部情報取得部１４と、画像表示装置１の動きを検出する動き検出部１５とを備える。
【００２５】
図２は、画像表示装置１をユーザ２に装着させた状態を示す模式図である。画像表示装置１は、例えば図２に示すように、スマートフォン、携帯情報端末（ＰＤＡ）、携帯型ゲーム装置のようなディスプレイ及びカメラを備えた汎用の表示装置３をホルダー４に取り付けることにより構成することができる。この場合、表示装置３は、表面に設けられたディスプレイをホルダー４の内側に向け、背面に設けられたカメラ５をホルダー４の外側に向けた状態で取り付けられる。ホルダー４の内部には、ユーザの左右の眼に対応する位置にレンズがそれぞれ設けられており、ユーザ２は、これらのレンズを通して表示装置３のディスプレイを見る。また、ユーザ２は、ホルダー４を頭部に装着することにより、画像表示装置１に表示される画面をハンズフリーで見ることができる。
【００２６】
もっとも、表示装置３及びホルダー４の外観は、図２に示すものに限定されない。例えば、ホルダー４の代わりに、レンズが内蔵されたシンプルな箱型のホルダーを用いても良い。また、ディスプレイや演算装置やホルダーが一体化された専用の画像表示装置を用いても良い。このような専用の画像表示装置は、ヘッドマウントディスプレイとも呼ばれる。
【００２７】
再び図１を参照すると、表示部１１は、例えば液晶又は有機ＥＬ（エレクトロルミネッセンス）によって形成された表示パネル及び駆動部を含むディスプレイである。
【００２８】
記憶部１２は、例えばＲＯＭやＲＡＭといった半導体メモリ等のコンピュータ読取可能な記憶媒体である。記憶部１２は、オペレーティングシステムプログラム及びドライバプログラムに加えて、各種機能を実行するアプリケーションプログラムや、これらのプログラムの実行中に使用される各種パラメータ等を記憶するプログラム記憶部１２１と、表示部１１に表示させるコンテンツ（静止画や動画）の画像データを記憶する画像データ記憶部１２２と、コンテンツの表示中に入力操作を行う際に用いられるユーザインタフェースの画像のデータを記憶するオブジェクト記憶部１２３とを含む。この他、記憶部１２は、各種アプリケーションの実行中に出力される音声や効果音の音声データを記憶しても良い。
【００２９】
演算部１３は、例えばＣＰＵ（Central  Processing  Unit）やＧＰＵ（Graphics  Processing  Unit）を用いて構成され、プログラム記憶部１２１に記憶された各種プログラムを読み込むことにより、画像表示装置１の各部を統括的に制御すると共に、種々の画像を表示するための各種演算処理を実行する。演算部１３の詳細な構成については後述する。
【００３０】
外部情報取得部１４は、画像表示装置１が実在している現実空間に関する情報を取得する。外部情報取得部１４の構成は、現実空間に実在する物体の位置や動きを検出可能な構成であれば特に限定されず、例えば光学カメラ、赤外線カメラ、超音波発信機及び受信機等を外部情報取得部１４として用いることができる。本実施形態においては、表示装置３に内蔵されたカメラ５を外部情報取得部１４として用いる。
【００３１】
動き検出部１５は、例えばジャイロセンサ及び加速度センサを含み、画像表示装置１の動きを検出する。この動き検出部１５の検出結果に基づいて、画像表示装置１は、ユーザ２の頭部の状態（静止しているか否か）や、ユーザ２の視線方向（上方、下方）や、ユーザ２の視線方向の相対的な変化等を検知することができる。
【００３２】
次に、演算部１３の詳細な構成について説明する。演算部１３は、プログラム記憶部１２１に記憶された画像表示プログラムを読み込むことにより、３次元的に構成された仮想空間をユーザ２に認識させるための画面を表示部１１に表示させると共に、ユーザ２のジェスチャによる入力操作を受け付ける動作を実行する。
【００３３】
図３は、表示部１１に表示される画面の例を示す模式図である。図４は、図３に示す画面に対応する仮想空間の例を示す模式図である。静止画又は動画のコンテンツを仮想空間として表示する際には、図３に示すように、表示部１１の表示パネルを２つの領域に分け、互いに視差を設けた２つの画面１１ａ、１１ｂをこれらの領域に表示する。ユーザ２は、画面１１ａ、１１ｂを左右の眼でそれぞれ見ることにより、図４に示すような３次元的な画像（即ち、仮想空間）を認識することができる。
【００３４】
図１に示すように、演算部１３は、動き判定部１３１と、物体認識部１３２と、疑似３次元化処理部１３３と、仮想空間構成部１３４と、仮想空間表示制御部１３５と、状態判定部１３６と、位置更新処理部１３７と、選択判定部１３８と、操作実行部１３９とを備える。
【００３５】
動き判定部１３１は、動き検出部１５から出力された検出信号に基づいて、ユーザ２の頭部の動きを判定する。具体的には、動き判定部１３１は、ユーザの頭部が静止しているか否か、及び、頭部が動いている場合には頭部をどの方向に向けたか、といったことを判定する。
【００３６】
物体認識部１３２は、外部情報取得部１４によって取得された外部情報に基づいて、現実空間に実在する特定の物体を認識する。上述したように、外部情報取得部１４としてカメラ５（図２参照）を用いる場合、物体認識部１３２は、カメラ５が撮像することにより取得した現実空間の画像に対する画像処理により、予め設定された特徴を有する物体を認識する。認識対象とする特定の物体は、ユーザ２の手や指であっても良いし、スタイラスペンや棒などの物体であっても良い。
【００３７】
特定の物体を認識する際に用いられる特徴は、認識対象に応じて予め設定される。例えばユーザ２の手や指を認識する場合、物体認識部１３２は、例えば、肌色の範囲に含まれる色特徴量（Ｒ、Ｇ、Ｂの各画素値、色比、色差等）を有する画素を抽出し、これらの画素が所定数以上集まっている領域を、指や手が写った領域として抽出する。或いは、抽出した画素が集まっている領域の面積や周囲長に基づいて、指や手が写った領域を抽出しても良い。
【００３８】
疑似３次元化処理部１３３は、物体認識部１３２が認識した特定の物体の像を仮想空間内の特定の平面に配置する処理を実行する。具体的には、特定の物体の像を、ユーザインタフェースとして仮想空間内に配置される操作面内に配置する。詳細には、疑似３次元化処理部１３３は、特定の物体の像を含む２次元画像を生成し、この２次元画像が仮想空間に表示される操作面と同じ奥行き感となるように視差を設定することにより、当該物体の像があたかも３次元的な仮想空間の中のある平面に存在しているようにユーザに認識させる処理を行う。
【００３９】
仮想空間構成部１３４は、ユーザに認識させる仮想空間におけるオブジェクトの配置等を行う。詳細には、仮想空間構成部１３４は、画像データ記憶部１２２から画像データを読み出し、ユーザの頭部の状態に応じて、画像データによって表される画像全体から、一部の領域（ユーザの視野の範囲内の領域）を切り出したり、画像内のオブジェクトの奥行き感を変化させたりする。
【００４０】
また、仮想空間構成部１３４は、ユーザがジェスチャによる操作を行う際に使用される操作面の画像データをオブジェクト記憶部１２３から読み出し、この画像データに基づいて仮想空間内の特定の平面に操作面を配置する。
【００４１】
仮想空間表示制御部１３５は、仮想空間構成部１３４が構成した仮想空間に対し、疑似３次元化処理部１３３が生成した２次元画像を合成して表示部１１に表示させる。
【００４２】
図５は、仮想空間に配置される操作面を例示する模式図である。また、図６は、図５に示す操作面２０に対し、疑似３次元化処理部１３３により生成された２次元画像を重畳して表示した画面を例示する模式図である。図６においては、操作面２０に対し、ジェスチャに用いられる特定の物体としてユーザの指の像（以下、指画像という）２６を表示している。
【００４３】
図５に示す操作面２０は、複数の選択対象のうちからユーザが所望の選択対象を選択するためのユーザインタフェースである。図５に示すように、操作面２０には、ジェスチャに用いられる特定の物体の像（例えば指画像２６）を認識するための複数の判定ポイント２１が予め設定されている。これらの判定ポイント２１に重畳するように、開始エリア２２、メニュー項目２３ａ〜２３ｃ、解除エリア２４、及び操作オブジェクト２５が配置されている。
【００４４】
複数の判定ポイント２１の各々は、操作面２０上の固定された座標に対応づけられている。図５においては判定ポイント２１を格子状に配列しているが、判定ポイント２１の配列や、隣接する判定ポイント２１同士の間隔はこれに限定されない。操作オブジェクト２５を移動させる範囲を網羅するように、判定ポイント２１が配置されていれば良い。また、図５においては、複数の判定ポイント２１をドットで示しているが、操作面２０を表示部１１に表示する際には、判定ポイント２１を表示する必要はない（図６参照）。
【００４５】
操作オブジェクト２５は、ユーザが仮想的に操作する対象のアイコンであり、判定ポイント２１上を離散的に移動するように設定されている。操作オブジェクト２５の位置は、指画像２６と複数の判定ポイント２１との位置関係に基づき、見た目上、指画像２６の動きに追従するように変化する。図５においては、操作オブジェクト２５の形状を円形状としているが、操作オブジェクト２５の形状及び大きさは図５に示すものに限定されず、操作面２０の大きさやジェスチャに用いられる物体等に応じて適宜設定すれば良い。例えば、棒状のアイコンや矢印状のアイコンなどを操作オブジェクトとして用いても良い。
【００４６】
開始エリア２２、メニュー項目２３ａ〜２３ｃ、及び解除エリア２４の各々は、判定ポイント２１の位置と対応づけられている。このうち、開始エリア２２は、指画像２６への操作オブジェクト２５の追従処理を開始させるトリガーとして設けられている。操作面２０が開かれた直後には、操作オブジェクト２５は開始エリア２２に配置され、指画像２６が開始エリア２２に重なったと判定されると、指画像２６への操作オブジェクト２５の追従処理が開始される。
【００４７】
メニュー項目２３ａ〜２３ｃは、複数の選択対象（選択オブジェクト）をそれぞれ表すアイコンである。指画像２６への操作オブジェクト２５の追従処理中に、操作オブジェクト２５がメニュー項目２３ａ〜２３ｃのいずれかに重なったと判定されると、当該重なったメニュー項目に対応する選択対象が選択されたものと判定されると共に、指画像２６への操作オブジェクト２５の追従処理が解除される。
【００４８】
解除エリア２４は、指画像２６への操作オブジェクト２５の追従処理を解除するトリガーとして設けられている。指画像２６への操作オブジェクト２５の追従処理中に、操作オブジェクト２５が解除エリア２４に重なったと判定されると、指画像２６への操作オブジェクト２５の追従処理が解除される。
【００４９】
これらの開始エリア２２、メニュー項目２３ａ〜２３ｃ、及び解除エリア２４のオブジェクトの形状や大きさ、配置については、図５に示すものに限定されず、選択対象に対応するメニュー項目の数、指画像２６の操作面２０に対する相対的な大きさや形状、操作オブジェクト２５の大きさや形状等に応じて適宜設定すれば良い。
【００５０】
状態判定部１３６は、操作面２０に設定された複数の判定ポイント２１の各々の状態を判定する。ここで、判定ポイント２１の状態には、判定ポイント２１に指画像２６が重なっている状態（オンの状態）と、判定ポイント２１に指画像２６が重なっていない状態（オフの状態）とがある。判定ポイント２１の状態は、各判定ポイント２１が位置する画素の画素値に基づいて判定することができる。例えば、指画像２６と同様の色特徴量（画素値、色比、色差等）を有する画素位置の判定ポイント２１が、オンの状態にあると判定される。
【００５１】
位置更新処理部１３７は、状態判定部１３６による各判定ポイント２１の状態の判定結果に応じて、操作面２０における操作オブジェクト２５の位置を更新する。詳細には、位置更新処理部１３７は、操作オブジェクト２５の座標を、オンの状態にある判定ポイント２１の座標に変更する。この際、オンの状態にある判定ポイント２１が複数存在する場合には、予め設定された条件に適合する判定ポイント２１の座標に操作オブジェクト２５の座標を更新する。
【００５２】
選択判定部１３８は、操作面２０に配置された選択オブジェクトが選択されたか否かを、操作オブジェクト２５の位置に基づいて判定する。例えば図５において、操作オブジェクト２５が、メニュー項目２３ａと対応づけられた（具体的には、メニュー項目２３ａと位置が重なる）判定ポイント２１の位置に移動した場合、洗濯判定部１３８は、当該メニュー項目２３ａが選択されたものと判定する。
【００５３】
操作実行部１３９は、複数の選択対象のいずれかが選択されたと判定された場合に、選択された選択対象に応じた操作を実行する。操作の内容は、画像表示装置１において実行可能な操作であれば特に限定されない。具体例として、画像表示のオン・オフを切り替える操作や、表示中の画像を別の画像に切り替える操作等が挙げられる。
【００５４】
次に、画像表示装置１の動作について説明する。図７は、画像表示装置１の動作を示すフローチャートであり、仮想空間の画像表示プログラムの実行中にユーザのジェスチャによる入力操作を受け付ける動作を示している。また、図８は、本実施形態において仮想空間に配置される操作面２０を例示する模式図である。なお、上述したように、操作面２０に設定された判定ポイント２１は、表示部１１には表示されない。そのため、ユーザは、図８に示す状態で操作面２０を認識する。
【００５５】
図７のステップＳ１０１において、演算部１３は、操作面２０の表示を待機する。
続くステップＳ１０２において、演算部１３は、ユーザの頭部が静止しているか否かを判定する。ここで、頭部が静止しているとは、ユーザの頭部が完全に動いていない状態の他、頭部が僅かに動いている場合を含む。詳細には、動き判定部１３１が、動き検出部１５から出力された検出信号に基づいて、画像表示装置１（即ち頭部）の加速度及び角加速度が所定値以下であるか否かを判定する。加速度及び角加速度が所定値を超える場合、動き判定部１３１は、ユーザの頭部が静止していないと判定する（ステップＳ１０２：Ｎｏ）。この場合、演算部１３の動作はステップＳ１０１に戻り、引き続き操作面２０の表示を待機する。
【００５６】
一方、演算部１３は、ユーザの頭部が静止していると判定した場合（ステップＳ１０２：Ｙｅｓ）、続いて、ユーザがカメラ５（図２参照）の前に手をかざしているか否かを判定する（ステップＳ１０３）。詳細には、物体認識部１３２が、カメラ５によって取得された画像に対する画像処理により、手（肌色）の色特徴量を有する画素が所定数以上集まっている領域が存在するか否かを判定する。手の色特徴量を有する画素が所定数以上集まっている領域が存在しない場合、物体認識部１３２は、ユーザが手をかざしていないと判定する（ステップＳ１０３：Ｎｏ）。この場合、演算部１３の動作はステップＳ１０１に戻る。
【００５７】
一方、演算部１３は、ユーザが手をかざしていると判定した場合（ステップＳ１０３：Ｙｅｓ）、図８に示す操作面２０を表示部１１に表示する（ステップＳ１０４）。操作面２０が表示された当初は、操作オブジェクト２５が開始エリア２２に位置している。なお、この間にユーザの頭部が動いた場合、演算部１３は、ユーザの頭部の動き（即ち、ユーザの視線方向）に追従するように、操作面２０を表示する。ユーザの視線方向が変化しているにもかかわらず、操作面２０が背景の仮想空間に対して固定されていると、ユーザの視野から操作面２０が外れてしまい、これから操作を行おうとするユーザにとって不自然な画面になってしまうからである。
【００５８】
なお、ステップＳ１０３、Ｓ１０４においては、カメラ５に対してユーザが手をかざすことを、操作面２０を表示させるトリガーとしているが、手の他にも、例えばスタイラスペンや棒などの予め設定された物体をカメラ５の前にかざすことをトリガーとしても良い。
【００５９】
続くステップＳ１０５において、演算部１３は、ユーザの頭部が静止しているか否かを再度判定する。演算部１３は、ユーザの頭部が静止していないと判定した場合（ステップＳ１０５：Ｎｏ）、操作面２０を消去する（ステップＳ１０６）。その後、演算部１３の動作はステップＳ１０１に戻る。
【００６０】
ここで、ステップＳ１０１、Ｓ１０５において、ユーザの頭部が静止していることを、操作面２０を表示する条件とするのは、一般に、ユーザは、頭部を大きく動かしている状態で画像表示装置１の操作を行うことはないからである。逆に言えば、ユーザが頭部を大きく動かしているということは、ユーザは鑑賞中の仮想空間に没入している最中であると考えられ、そのようなときに操作面２０を表示すると、ユーザは煩わしく感じてしまうからである。
【００６１】
演算部１３は、ユーザの頭部が静止していると判定した場合（ステップＳ１０５：Ｙｅｓ）、操作面２０に対する操作の受付を行う（ステップＳ１０７）。図９は、操作の受付処理を示すフローチャートである。また、図１０は、操作の受付処理を説明するための模式図である。以下においては、特定の物体としてユーザの指を用いるものとする。
【００６２】
図９のステップＳ１１０において、演算部１３は、外部情報取得部１４が取得した現実空間の画像から、ユーザの指が写った領域として、特定の色の領域を抽出する処理を行う。具体的には、ユーザの指の色、即ち、肌色の領域を抽出する。詳細には、現実空間の画像に対し、物体認識部１３２が画像処理を行うことにより、肌色の色特徴量を有する画素が所定数以上集まっている領域を抽出する。また、疑似３次元化処理部１３３が、抽出された領域の２次元画像（即ち、指画像２６）を生成し、仮想空間表示制御部１３５が、該２次元画像を操作面２０に重畳して表示部１１に表示させる。なお、操作面２０に表示する指画像２６の態様は、ユーザが自身の指の動きを認識できる態様であれば特に限定されない。例えば、現実空間と同様のリアル感のある指の画像であっても良いし、特定の１色で塗りつぶした指のシルエットの画像であっても良い。
【００６３】
続くステップＳ１１１において、演算部１３は、物体の像、即ち指画像２６が開始エリア２２にあるか否かを判定する。詳細には、状態判定部１３６が、複数の判定ポイント２１のうちオンの状態にある判定ポイント（即ち、指画像２６が重なっている判定ポイント）を抽出し、さらに、抽出した判定ポイントの中に開始エリア２２と対応づけられた判定ポイントが含まれるか否かを判定する。オンの状態にある判定ポイントの中に開始エリア２２と対応づけられた判定ポイントが含まれる場合、指画像２６が開始エリア２２にあると判断される。
【００６４】
例えば図１０の場合、破線２７で囲んだ領域に位置する判定ポイント２１がオンの状態にある判定ポイントとして抽出され、このうち開始エリア２２と重なる判定ポイント２８が開始エリア２２と対応づけられた判定ポイントに該当する。
【００６５】
指画像２６が開始エリア２２にない場合（ステップＳ１１１：Ｎｏ）、状態判定部１３６は、所定時間待機し（ステップＳ１１２）、その後ステップＳ１１１における判定を再び行う。この際の待機時間の長さは特に限定されないが、一例として、表示部１１におけるフレームレートに基づき、１フレーム間隔〜数フレーム間隔に設定しても良い。
【００６６】
他方、指画像２６が開始エリア２２にある場合（ステップＳ１１１：Ｙｅｓ）、演算部１３は、指画像２６への操作オブジェクト２５の追従処理を実行する（ステップＳ１１３）。図１１は、追従処理を示すフローチャートである。また、図１２〜図１６は、追従処理を説明するための模式図である。
【００６７】
図１１のステップＳ１２１において、状態判定部１３６は、操作オブジェクト２５が位置する判定ポイントがオンの状態にあるか否かを判定する。例えば図１２においては、操作オブジェクト２５が位置する判定ポイント２１ａは、指画像２６と重なっているためオンの状態にある（ステップＳ１２１：Ｙｅｓ）。この場合、処理はメインルーチンに戻る。
【００６８】
他方、図１２の状態から、図１３に示すように指画像２６が移動した場合、判定ポイント２１ａはオフの状態となる（ステップＳ１２１：Ｎｏ）。この場合、状態判定部１３６は、オンの状態にある判定ポイントのうちから、所定の条件に合う判定ポイントを選択する（ステップＳ１２２）。本実施形態においては、一例として、操作オブジェクト２５が現在位置している判定ポイントから距離が最も近いことを条件とする。例えば図１３の場合、指画像２６が移動した結果、判定ポイント２１ｂ〜２１ｅがオンの状態になる。このうち、操作オブジェクト２５が現在位置している判定ポイント２１ａから一番近いのは判定ポイント２１ｂであるため、判定ポイント２１ｂが選択される。
【００６９】
或いは、所定の条件の別の例として、オンの状態の判定ポイントのうち、指画像２６の先端に距離が最も近い判定ポイントを選択することとしても良い。詳細には、状態判定部１３６は、オンの状態にある複数の判定ポイントが集合している領域において端部に位置する判定ポイントを抽出する。即ち、指画像２６の輪郭に沿って判定ポイントを抽出する。そして、抽出した判定ポイントからさらに、隣接する又は所定間隔の３つの判定ポイントを１グループとして抽出し、これらの判定ポイントのなす角度を算出する。このような角度の算出を、指画像２６の輪郭沿いの判定ポイントに対して順次行い、角度が最も小さいグループのうちの所定の（例えば真ん中の）判定ポイントを選択する。
【００７０】
続くステップＳ１２３において、位置更新処理部１３７は、操作オブジェクト２５の位置を、選択された判定ポイント２１の位置に更新する。例えば図１３の場合には判定ポイント２１ｂが選択されるため、図１４に示すように、操作オブジェクト２５の位置が、判定ポイント２１ａの位置から判定ポイント２１ｂの位置に更新される。このとき、ユーザには、操作オブジェクト２５があたかも指画像２６に追従して移動したように認識される。その後、処理はメインルーチンに戻る。
【００７１】
ここで、状態判定部１３６は、あくまで移動後における指画像２６との関係から判定ポイント２１の状態を判定し、位置更新処理部１３７は、判定ポイント２１の状態に応じて操作オブジェクト２５の位置を更新する。そのため、例えば図１５に示すように、指画像２６の移動速度が速い場合であっても、移動後の指画像２６との関係により、判定ポイント２１ｆ〜２１ｉがオンと判定される。このうち、操作オブジェクト２５が現在位置している判定ポイント２１ａから距離が最も近いのは判定ポイント２１ｆである。従って、この場合には、図１６に示すように、操作オブジェクト２５は、判定ポイント２１ａの位置から判定ポイント２１ｆの位置にジャンプする。しかしながら、結果として操作オブジェクト２５は指画像２６と重なるように表示されるため、やはり、ユーザには、操作オブジェクト２５が指画像２６に追従して移動したように認識される。
【００７２】
ここで、ステップＳ１２１において判定ポイント２１の状態を判定する間隔（言い換えると、ステップＳ１１３、１１４、１１６のループの周期）は、適宜設定すれば良い。一例として、表示部１１におけるフレームレートに基づいて設定しても良い。例えば、１フレーム間隔〜数フレーム間隔で判定を行うこととすれば、ユーザには、指画像２６の動きに伴って操作オブジェクト２５が自然に追従しているように見える。
【００７３】
再び図９を参照すると、ステップＳ１１４において、演算部１３は、操作オブジェクト２５が解除エリア２４にあるか否かを判定する。詳細には、図１７に示すように、選択判定部１３８が、操作オブジェクト２５が位置する判定ポイント２１が、解除エリア２４と対応づけられた判定ポイント２１に含まれるか否かを判定する。
【００７４】
操作オブジェクト２５が解除エリア２４にあると判定された場合（ステップＳ１１４：Ｙｅｓ）、位置更新処理部１３７は、操作オブジェクト２５の位置を開始エリア２２に戻す（ステップＳ１１５）。それにより、操作オブジェクト２５は指画像２６から離れ、指画像２６が再び開始エリア２２に重なるまで、追従処理が再開されなくなる（ステップＳ１１１、Ｓ１１３参照）。つまり、操作オブジェクト２５を解除エリア２４に移動させることで、指画像２６への操作オブジェクト２５の追従を解除することができる。
【００７５】
他方、操作オブジェクト２５が解除エリア２４にないと判定された場合（ステップＳ１１４：Ｎｏ）、演算部１３は、操作オブジェクト２５が選択エリアにあるか否かを判定する（ステップＳ１１６）。詳細には、選択判定部１３８が、操作オブジェクト２５の位置の判定ポイント２１が、メニュー項目２３ａ、２３ｂ、２３ｃのいずれかと対応づけられた判定ポイント２１に含まれるか否かを判定する。
【００７６】
操作オブジェクト２５が選択エリア（メニュー項目２３ａ、２３ｂ、２３ｃ）にないと判定された場合（ステップＳ１１６：Ｎｏ）、処理はステップＳ１１３に戻る。この場合、指画像２６への操作オブジェクト２５の追従が継続される。
【００７７】
他方、操作オブジェクト２５が選択エリアにあると判定された場合（ステップＳ１１６：Ｙｅｓ、図１８参照）、演算部１３は、指画像２６への操作オブジェクト２５の追従を解除する（ステップＳ１１７）。それにより、図１９に示すように、操作オブジェクト２５がメニュー項目２３ｂに留まった状態になる。その後、処理はメインルーチンに戻る。
【００７８】
再び図７を参照すると、ステップＳ１０８において、演算部１３は、所定の条件に従って、操作面２０に対する操作を終了するか否かを判定する。本実施形態においては、図１９に例示するように、操作オブジェクト２５がいずれかのメニュー項目に位置している場合、メニューを選択するという操作の目的が達成されたため、操作を終了すると判定する。この場合、演算部１３は、操作面２０を消去する（ステップＳ１０９）。それにより、ユーザのジェスチャによる入力操作を受け付ける一連の動作が終了する。その後、演算部１３は、選択されたメニュー（例えばメニューＢ）に応じた動作を実行する。
【００７９】
他方、操作面２０に対する操作を終了しない場合（ステップＳ１０９：Ｎｏ）、処理はステップＳ１０４に戻る。
【００８０】
以上説明したように、本発明の第１の実施形態によれば、ユーザが頭部をほぼ静止させた場合に操作面を仮想空間に表示させるので、入力操作を開始しようとするユーザの意図に沿った表示を行うことができる。つまり、ユーザが意図せずに画像表示装置１のカメラ５（図２参照）に手をかざしてしまったり、手に類似する物体が偶然カメラ５に写り込んでしまったりした場合であっても、操作面は表示されないので、ユーザは、操作面に妨げられることなく仮想空間の鑑賞を継続することができる。
【００８１】
また、本実施形態によれば、ジェスチャに用いられる特定の物体の像によって選択対象を直接選択するのではなく、操作オブジェクトを介して選択対象を選択するので、誤操作を低減することができる。例えば図１８において、仮に指画像２６の一部がメニュー項目２３ｃに接触してしまったとしても、操作オブジェクト２５が位置するメニュー項目２３ｂが選択されたものと判定される。従って、複数の選択対象が操作面に表示されていたとしても、ユーザは簡単に所望の操作を行うことができる。
【００８２】
また、本実施形態によれば、判定ポイント２１の状態（オン／オフ）を判定し、この判定結果に基づいて操作オブジェクト２５を移動させるので、簡単な演算処理で操作オブジェクト２５を指画像２６に追従させることができる。
【００８３】
ここで、指画像２６が移動する度に指画像２６の位置を追跡して操作オブジェクト２５を追従させる場合、演算量が非常に多くなる。そのため、指画像２６の移動速度が速い場合には、指画像２６の動きに対して操作オブジェクト２５の表示に遅延が生じることがあり、ユーザにとってリアルタイムな操作感覚が低減してしまうおそれがある。
【００８４】
これに対し、本実施形態においては、指画像２６の位置を逐一追跡するのではなく、定点にある各判定ポイント２１の状態を判定して操作オブジェクト２５を移動させるだけなので、高速な処理が可能となる。また、判定対象の判定ポイント２１の数は、表示部１１における画素数と比較して各段に少ないため、追従処理に要する演算負荷も少ない。従って、スマートフォン等の小型の表示装置を利用する場合であっても、ジェスチャによるリアルタイムな入力操作を行うことが可能となる。さらに、判定ポイント２１の密度の設定により、指画像２６への操作オブジェクト２５の追従精度を調整することができると共に、演算コストを調整することも可能となる。
【００８５】
なお、操作オブジェクト２５は、移動後の指画像２６の位置に離散的に移動することになるが、判定ポイント２１の判定周期を数フレーム間隔に留めれば、ユーザの目には操作オブジェクト２５が指画像２６に自然に追従しているように見える。
【００８６】
また、本実施形態によれば、操作面２０に開始エリア２２を設けるので、ユーザは、指画像２６を開始エリア２２に重ねることにより、所望のタイミングでジェスチャによる操作を開始することができる。
【００８７】
また、本実施形態によれば、操作面２０に解除エリア２４を設けるので、ユーザは所望のタイミングで指画像２６への操作オブジェクト２５の追従処理を解除し、ジェスチャによる操作を最初からやり直すことができる。
【００８８】
ここで、本実施形態においては、指画像２６が開始エリア２２に重なったことをトリガーとして操作オブジェクト２５の追従処理を開始している。このとき、操作オブジェクト２５は、オンの状態にある（つまり、指画像２６と重なった）判定ポイント２１のうち、現在位置している判定ポイント２１に距離が最も近い判定ポイント２１に移動する。そのため、操作オブジェクト２５が必ずしも指画像２６の先端（指先の位置）に追従するとは限らない。しかしながら、指画像２６のうち所望でない部分に操作オブジェクト２５が追従してしまった場合であっても、ユーザは、指画像２６を動かして操作オブジェクト２５を解除エリア２４に移動させることにより、操作オブジェクト２５の追従を解除することができる。それにより、ユーザは、指画像２６の所望の部分に操作オブジェクト２５が追従するまで、追従開始の操作を何度でもやり直すことができる。
【００８９】
（第１の変形例）
上記第１の実施形態においては、操作面２０に配置される判定ポイント２１の間隔や配置領域を適宜変更しても良い。例えば、判定ポイント２１を密に配置することで、操作オブジェクト２５を滑らかに移動させることができる。反対に、判定ポイント２１を粗に配置することで、演算量を低減することができる。
【００９０】
図２０は、操作面２０における判定ポイント２１の別の配置例を示す模式図である。図２０においては、操作面２０の一部に領域に限定して判定ポイント２１を配置している。このように、判定ポイント２１の配置領域を選択することで、ジェスチャによる操作が可能な領域を設定することができる。
【００９１】
（第２の変形例）
上記第１の実施形態においては、開始エリア２２における判定ポイント２１のオン／オフ状態に基づいて操作オブジェクト２５の追従が開始されるため、必ずしも指画像２６の先端に操作オブジェクト２５が追従するとは限らない。これに対し、指画像２６の先端認識処理を導入することにより、指画像２６の先端部分に対して確実に操作オブジェクト２５を追従させるようにしても良い。
【００９２】
詳細には、演算部１３は、指画像２６が開始エリア２２に重なった際、即ち、開始エリア２２と対応づけられた判定ポイント２１のいずれかがオンになった際に、指画像２６の輪郭を抽出して該輪郭の特徴量として曲率を算出する。そして、開始エリア２２と重なる輪郭部分の曲率が所定値以上である場合に、当該輪郭部分は指画像２６の先端であると判断し、この輪郭部分に操作オブジェクト２５を追従させる。反対に、開始エリア２２と重なる輪郭部分の曲率が所定値未満である場合、当該輪郭部分は指画像２６の先端ではないと判断し、操作オブジェクト２５の追従を見送る。
【００９３】
開始エリア２２に重なる輪郭部分が先端であるか否かを判定するために用いる特徴量としては、上述した曲率に限定されず、公知の種々の特徴量を用いることができる。例えば、演算部１３は、開始エリア２２に重なる指画像２６の輪郭上に所定間隔でポイントを設定し、連続する３つのポイントを１グループとしてこれら３つのポイントのなす角度を算出する。このような角度の算出を順次行い、算出した角度のいずれかが所定値未満である場合、角度が最も小さいグループに含まれるポイントに操作オブジェクト２５を追従させる。反対に、演算部１３は、算出した角度のいずれもが所定値以上（ただし、１８０°以下）である場合、当該輪郭部分は指画像２６の先端ではないと判断し、操作オブジェクト２５の追従を見送る。
【００９４】
（第３の変形例）
指画像２６の先端認識処理の別の例として、ジェスチャに用いられる特定の物体（即ち、ユーザの指）の先端に肌色とは異なる色のマーカを予め付しておき、特定の物体に加えて、このマーカを認識することとしても良い。マーカの認識方法は特定の物体の認識方法と同じであり、色特徴量としてマーカの色を用いれば良い。演算部１３は、認識したマーカの像を、特定の色（例えばマーカの色）を付して指画像２６と共に操作面２０に表示する。
【００９５】
この場合、演算部１３は、指画像２６が開始エリア２２に重なった際に、操作面２０からマーカの像（即ち、マーカの色が付された領域）を検出し、マーカの像に距離が最も近い判定ポイントに操作オブジェクト２５を移動させる。それにより、操作オブジェクト２５を指画像２６の先端部分に追従させることができる。
【００９６】
また、このような先端認識処理は、操作オブジェクト２５の追従処理（図１１参照）において、操作オブジェクト２５を移動させる判定ポイントを選択する際にも適用することができる（ステップＳ１２２参照）。詳細には、図１３に示すように、オンの状態にある判定ポイントが複数存在する場合、演算部１３は、マーカの像を検出し、マーカの像に距離が最も近い判定ポイントを選択する。それにより、操作オブジェクト２５を指画像の先端部分に追従させ続けることができる。
【００９７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。図２１は、本実施形態において仮想空間に配置される操作面を例示する模式図である。なお、本実施形態に係る画像表示装置の構成は、図１に示すものと同様である。
【００９８】
本実施形態においては、第１の実施形態と同様に、仮想空間内の特定の画面に特定の物体の像及び操作オブジェクトを表示し、特定の物体の像によって操作オブジェクトを操作するのに加え、この操作オブジェクトを介して、仮想空間に配置される３次元的なオブジェクトそのものを操作する。
【００９９】
図２１に示す操作面３０は、仮想空間にある複数のオブジェクトを、ユーザ所望の位置に配置するためのユーザインタフェースであり、一例として、仮想的な居住空間に家具のオブジェクトを配置する場合を示している。操作面３０の背景には居住空間の床や壁等の背景画像が表示されている。ユーザは、画像表示装置１を装着することで、この操作面３０に表示される居住空間に入り込んだ感覚で、家具のオブジェクトを立体的に認識することができる。
【０１００】
操作面３０には、特定の物体の像（後述する指画像２６）を認識するための複数の判定ポイント３１が設定されている。複数の判定ポイント３１の機能や、特定の物体の像２６との関係に応じた状態（オン／オフ）については、第１の実施形態と同様である（図５の判定ポイント２１参照）。なお、判定ポイント３１は通常、操作面３０に表示しなくても良い。
【０１０１】
また、操作面３０には、開始エリア３２、複数の選択オブジェクト３３ａ〜３３ｄ、解除エリア３４、及び、操作オブジェクト３５が、判定ポイント３１に重畳するように配置されている。このうち、開始エリア３２、解除エリア３４、及び操作オブジェクト３５の機能、並びに指画像２６への追従処理は、第１の実施形態と同様である（図９のステップＳ１１１、Ｓ１１２、Ｓ１１４参照）。
【０１０２】
ここで、図２１においては、開始エリア３２及び解除エリア３４が表示された状態を示しているが、通常は開始エリア３２及び解除３４を非表示とし、操作オブジェクト３５が開始エリア３２にあるとき、又は操作オブジェクト３５が解除エリア３４に近づいたときのみに、当該開始エリア３２又は解除エリア３４を表示するようにしても良い。
【０１０３】
選択オブジェクト３３ａ〜３３ｄは、家具等を表すアイコンであり、判定ポイント３１上を移動するように設定されている。ユーザは、操作オブジェクト３５を介して選択オブジェクト３３ａ〜３３ｄを操作することで、居住空間内の所望の位置に選択オブジェクト３３ａ〜３３ｄを配置することができる。
【０１０４】
次に、本実施形態に係る画像表示装置の動作を説明する。図２２は、本実施形態に係る画像表示装置の動作を示すフローチャートであり、表示部１１に表示された操作面３０に対する操作の受付処理を示している。図２３〜図２９は、操作面３０に対する操作例を説明するための模式図である。
【０１０５】
図２２に示すステップＳ２００〜Ｓ２０５は、ジェスチャに用いられる特定の物体の像（指画像２６）への操作オブジェクト３５の追従開始、追従、及び追従の解除の各処理を示すものであり、図９に示すステップＳ１１０〜Ｓ１１５と共通である。
【０１０６】
ステップＳ２０４に続くステップＳ２０６において、演算部１３は、操作オブジェクト３５が選択オブジェクト３３ａ〜３３ｄのいずれかと接触したか否かを判定する。詳細には、選択判定部１３８が、指画像２６に追従する操作オブジェクト３５の位置における判定ポイント３１（図２１参照）が、選択オブジェクト３３ａ〜３３ｄのいずれかの位置における判定ポイント３１と一致するか否かを判定する。例えば図２３の場合、操作オブジェクト３５は、ベッドの選択オブジェクト３３ｄと接触していると判定される。
【０１０７】
操作オブジェクト３５が選択オブジェクト３３ａ〜３３ｄのいずれにも接触しない場合（ステップＳ２０６：Ｎｏ）、処理はステップＳ２０３に戻る。他方、操作オブジェクト３５が選択オブジェクト３３ａ〜３３ｄのいずれかに接触している場合（ステップＳ２０６：Ｙｅｓ）、演算部１３（選択判定部１３８）は続いて、操作オブジェクト３５の速度が閾値以下であるか否かを判定する（ステップＳ２０７）。この閾値は、操作面３０において操作オブジェクト３５が概ね停止しているとユーザが認識できる程度の値に設定される。また、この判定は、操作オブジェクト３５が位置する判定ポイント３１が変化する頻度に基づいて行われる。
【０１０８】
操作オブジェクト３５の速度が閾値よりも大きい場合（ステップＳ２０７：Ｎｏ）、処理はステップＳ２０３に戻る。他方、操作オブジェクト３５の速度が閾値以下である場合（ステップＳ２０７：Ｙｅｓ）、演算部１３（選択判定部１３８）は続いて、操作オブジェクト３５が当該選択オブジェクトに接触したまま所定時間が経過したか否かを判定する（ステップＳ２０８）。ここで、図２３に示すように、演算部１３は、選択判定部１３８がこの判定を行っている間、ローディングバー３６を操作オブジェクト３５の近傍に表示しても良い。
【０１０９】
所定時間が経過する前に操作オブジェクト３５が当該選択オブジェクトから離れた場合（ステップＳ２０８：Ｎｏ）、処理はステップＳ２０３に戻る。他方、操作オブジェクト３５が当該選択オブジェクトに接触したまま所定時間が経過した場合（ステップＳ２０８：Ｙｅｓ）、演算部１３（選択判定部１３８）は、操作オブジェクト３５と接触している選択オブジェクトの位置を操作オブジェクト３５と共に更新する（ステップＳ２０９）。
【０１１０】
これにより、図２４に示すように、選択オブジェクト３３ｄが操作オブジェクト３５に追従して移動するようになる。つまり、ユーザは、指画像２６に追従する操作オブジェクト３５を所望の選択オブジェクトに重ねた状態で意図的に停止させることで、その選択オブジェクトを操作オブジェクト３５と一緒に移動させることができる。
【０１１１】
この際、演算部１３は、移動中の選択オブジェクトのサイズ（縮尺）を、奥行き方向の位置に応じて変更すると共に、仮想空間を構成するための２つの画面１１ａ、１１ｂ（図６参照）に設ける視差を調整しても良い。ここで、指画像２６及び操作オブジェクト３５は、仮想空間内の特定の平面に２次元的に表示されるのに対して、操作面３０の背景画像や選択オブジェクト３３ａ〜３３ｄは、仮想空間において３次元的に表示される。そのため、仮想空間において例えば選択オブジェクト３３ｄを奥の方に移動させる場合、指画像２６及び操作オブジェクト３５が表示された平面においては、操作オブジェクト３５を図の上方向に移動させることになる。なお、ユーザは、直感的に、現実空間において自身の指を３次元的に移動させるため、この指の動きを２次元平面に投影したものが指画像２６の動きとなる。その際に、図２４に示すように、選択オブジェクト３３ｄを奥（図の上方）に進めるほど縮小して表示することにより、ユーザは奥行き感を感じ易くなり、より意図した通りの位置に選択オブジェクト３３ｄを移動させることができる。また、この際に、操作オブジェクト３５の位置に応じて、選択オブジェクト３３ｄの縮尺の変化率を変えても良い。ここでの縮尺の変化率とは、図の上下方向における操作オブジェクト３５の移動量に対する選択オブジェクト３３ｄの縮尺の変化の割合のことである。具体的には、図の下方（即ち床面の手前側）に操作オブジェクト３５がある場合と、図の上方（即ち床面の奥側）に操作オブジェクト３５がある場合とでは、後者の場合に、縮尺の変化率を大きくする。縮尺の変化率は、判定ポイント３１の位置に紐づけておけば良い。
【０１１２】
続くステップＳ２１０において、演算部１３は、操作オブジェクト３５が、選択オブジェクト３３ａ〜３３ｄの配置可能なエリア（配置エリア）にあるか否かを判定する。配置エリアは、操作面３０のうち、開始エリア３２及び解除エリア３４を除く全領域としても良いし、開始エリア３２及び解除エリア３４を除く全領域のうちの一部に予め限定しても良い。例えば図２４に示すように、操作面３０の背景画像のうち床の部分３７のみを配置エリアとしても良い。この判定は、操作オブジェクト３５が位置する判定ポイント３１が、配置エリアと対応づけられた判定ポイント３１に含まれるか否かによって行われる。
【０１１３】
操作オブジェクト３５が配置エリアにある場合（ステップＳ２１０：Ｙｅｓ）、演算部１３（選択判定部１３８）は続いて、操作オブジェクト３５の速度が閾値以下であるか否かを判定する（ステップＳ２１１）。このときの閾値は、ステップＳ２０７における判定に用いる閾値と同じ値であっても良いし、異なる値であっても良い。
【０１１４】
操作オブジェクト３５の速度が閾値以下である場合（ステップＳ２１１：Ｙｅｓ）、演算部１３（選択判定部１３８）は続いて、操作オブジェクト３５の速度が閾値以下のまま所定時間経過したか否かを判定する（ステップＳ２１２）。図２５に示すように、演算部１３は、選択判定部１３８がこの判定を行っている間、ローディングバー３８を操作オブジェクト３５の近傍に表示しても良い。
【０１１５】
操作オブジェクト３５の速度が閾値以下のまま所定時間経過した場合（ステップＳ２１２：Ｙｅｓ）、演算部１３（選択判定部１３８）は、操作オブジェクト３５への選択オブジェクトの追従を解除し、選択オブジェクトの位置をその場に固定する（ステップＳ２１３）。それにより、図２６に示すように、再び操作オブジェクト３５のみが指画像２６と共に移動するようになる。つまり、ユーザは、選択オブジェクトが操作オブジェクト３５に追従しているときに、操作オブジェクト３５を所望の位置において意図的に停止させることで、操作オブジェクト３５への選択オブジェクトの追従を解除し、選択オブジェクトの位置を決定することができる。
【０１１６】
この際、演算部１３は、選択オブジェクトの向きを背景の画像に合わせて適宜調節しても良い。例えば図２６においては、ベッドの選択オブジェクト３３ｄの長辺が背景の壁と平行になるように調節されている。
【０１１７】
また、演算部１３は、選択オブジェクト同士の前後関係を調節しても良い。例えば図２７に示すように、机の選択オブジェクト３３ｂと同じ位置に椅子の選択オブジェクト３３ａが配置された場合、机の選択オブジェクト３３ｂの正面側（図２７においては奥側）に椅子の選択オブジェクト３３ａを配置する。
【０１１８】
続くステップＳ２１４において、演算部１３は、全ての選択オブジェクト３３ａ〜３３ｄに対する配置が終了したか否かを判定する。配置が終了した場合（ステップＳ２１４：Ｙｅｓ）、操作面３０に対する操作の受付処理は終了する。他方、配置が終了していない場合（ステップＳ２１４：Ｎｏ）、処理はステップＳ２０３に戻る。
【０１１９】
また、操作オブジェクト３５が配置エリアにない場合（ステップＳ２１０：Ｎｏ）、操作オブジェクト３５の速度が閾値よりも大きい場合（ステップＳ２１１：Ｎｏ）、又は、所定時間が経過する前に操作オブジェクト３５が移動した場合（ステップＳ２１２：Ｎｏ）、演算部１３は、操作オブジェクト３５が解除エリア３４にあるか否かを判定する（ステップＳ２１５）。なお、上述したように、通常は解除エリア３４を操作面３０に表示せず、操作オブジェクト３５が解除エリア３４に近づいたときに解除エリア３４を表示するようにしても良い。図２８は解除エリア３４が表示された状態を示している。
【０１２０】
操作オブジェクト３５が解除エリア３４にある場合（ステップＳ２１５：Ｙｅｓ）、演算部１３は、操作オブジェクト３５に追従する選択オブジェクトを最初の位置に戻す（ステップＳ２１６）。例えば図２８に示すように、チェストの選択オブジェクト３３ｃを追従させた状態で、操作オブジェクト３５を解除エリア３４に移動させた場合、選択オブジェクト３３ｃの追従が解除され、図２９に示すように、選択オブジェクト３３ｃが再びもとの場所に表示される。その後、処理はステップＳ２０３に戻る。これにより、ユーザは、選択オブジェクトの選択をやり直すことができる。
【０１２１】
他方、操作オブジェクト３５が解除エリア３４にない場合（ステップＳ２１６：Ｎｏ）、演算部１３はそのまま、指画像２６への操作オブジェクト３５の追従処理を継続する（ステップＳ２１７）。ステップＳ２１７における追従処理は、ステップＳ２０３におけるものと同様である。それにより、既に操作オブジェクト３５に追従している選択オブジェクトも、操作オブジェクト３５と共に移動する（ステップＳ２０９参照）。
【０１２２】
以上説明したように、本発明の第２の実施形態によれば、ユーザは、ジェスチャにより直感的に選択オブジェクトを操作することができる。従って、ユーザは、仮想空間内に入り込んだ感覚で、オブジェクトの存在感やオブジェクト同士の位置関係を確認しながらオブジェクトの配置を決定することができる。
【０１２３】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。図３０は、本実施形態において仮想空間に配置される操作面を例示する模式図である。なお、本実施形態に係る画像表示装置の構成は、図１に示すものと同様である。
【０１２４】
図３０に示す操作面４０には、複数の判定ポイント４１が設定されており、この判定ポイント４１に重畳するように地図画像が表示されている。また、操作面４０には、開始エリア４２、選択オブジェクト４３、解除エリア４４、及び操作オブジェクト４５が配置されている。これらの開始エリア、解除エリア４４、及び操作オブジェクト４５の機能並びに指画像への追従処理は、第１の実施形態と同様である（図９のステップＳ１１１、Ｓ１１２、Ｓ１１４参照）。なお、本実施形態においても、操作面４０を表示部１１（図１参照）に表示する際に、判定ポイント４１を表示する必要はない。
【０１２５】
本実施形態においては、操作面４０のうち、開始エリア４２及び解除エリア４４を除く地図画像全体が、選択オブジェクト４３の配置エリアとして設定されている。また、本実施形態においては、選択オブジェクト４３の一例としてピン状のオブジェクトを表示している。
【０１２６】
このような操作面４０において、指画像２６に操作オブジェクト４５を追従させた状態で、操作オブジェクト４５を１つの選択オブジェクト４３上で停止させ、所定時間待機すると、その選択オブジェクト４３が操作オブジェクト４５と共に移動を始める。また、操作オブジェクト４５を地図上の所望の位置で停止させ、所定時間待機すると、選択オブジェクト４５がその場所に固定される。それにより、選択オブジェクト４３が位置する判定ポイント４１に対応する地図上の地点が選択される。
【０１２７】
このように地図上の地点を選択する操作面４０は、様々なアプリケーションに適用することができる。一例として、操作面４０において１つの地点が選択されると、演算部１３は操作面４０を一旦閉じ、選択された地点に対応する仮想空間を表示する。それにより、ユーザは、選択した地点に瞬時に移動したような体験をすることができる。また、別の例として、操作面４０において２つの地点が選択されると、演算部１３は選択された２点間の地図上におけるルートを算出し、そのルートに沿って景色が変化する仮想空間を表示しても良い。
【０１２８】
本発明は、上記第１〜第３の実施形態及び変形例に限定されるものではなく、第１〜第３の実施形態及び変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、第１〜第３の実施形態及び変形例に示した全構成要素からいくつかの構成要素を除外して形成しても良いし、第１〜第３の実施形態及び変形例に示した構成要素を適宜組み合わせて形成しても良い。
【符号の説明】
【０１２９】
１  画像表示装置
２  ユーザ
３  表示装置
４  ホルダー
５  カメラ
１１  表示部
１１ａ、１１ｂ  画面
１２  記憶部
１３  演算部
１４  外部情報取得部
１５  検出部
１２１  プログラム記憶部
１２２  画像データ記憶部
１２３  オブジェクト記憶部
１３１  動き判定部
１３２  物体認識部
１３３  疑似３次元化処理部
１３４  仮想空間構成部
１３５  仮想空間表示制御部
１３６  状態判定部
１３７  位置更新処理部
１３８  選択判定部
１３９  操作実行部
【図１】
0006499384.tif 000002
【図２】
0006499384.tif 000003
【図３】
0006499384.tif 000004
【図４】
0006499384.tif 000005
【図５】
0006499384.tif 000006
【図６】
0006499384.tif 000007
【図７】
0006499384.tif 000008
【図８】
0006499384.tif 000009
【図９】
0006499384.tif 000010
【図１０】
0006499384.tif 000011
【図１１】
0006499384.tif 000012
【図１２】
0006499384.tif 000013
【図１３】
0006499384.tif 000014
【図１４】
0006499384.tif 000015
【図１５】
0006499384.tif 000016
【図１６】
0006499384.tif 000017
【図１７】
0006499384.tif 000018
【図１８】
0006499384.tif 000019
【図１９】
0006499384.tif 000020
【図２０】
0006499384.tif 000021
【図２１】
0006499384.tif 000022
【図２２】
0006499384.tif 000023
【図２３】
0006499384.tif 000024
【図２４】
0006499384.tif 000025
【図２５】
0006499384.tif 000026
【図２６】
0006499384.tif 000027
【図２７】
0006499384.tif 000028
【図２８】
0006499384.tif 000029
【図２９】
0006499384.tif 000030
【図３０】
0006499384.tif 000031