(57)【要約】  インタフェース制御システム（２０００）は第１マーカ検出部（２０２０）及び表示制御部（２０４０）を有する。第１マーカ検出部（２０２０）は、ユーザに身につけられたカメラ（２０）から得られる撮像画像に基づいて、ユーザの身体に取り付けられた第１マーカ（５０）を検出する。表示制御部（２０４０）は、第１マーカ検出部（２０２０）によって検出された第１マーカに基づいて、ユーザによって装着されるヘッドマウントディスプレイ（３０）の表示画面（３２）に操作画像を表示する。表示制御部（２０４０）は、ユーザの目から見て、操作画像がユーザの腕部に重畳されて見えるように、操作画像を表示する。
2016185845.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出手段と、
前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出手段によって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御手段と、
前記ユーザによって前記操作画像が操作されたことを判定する操作検出手段と、
を有するインタフェース制御システム。
【請求項２】
前記検出手段は、前記第１マーカを検出することにより、前記第１マーカの位置、大きさ、又は姿勢を特定し、
前記表示制御手段は、前記検出手段によって特定された前記第１マーカの位置、大きさ、又は姿勢に基づいて、前記ヘッドマウントディスプレイの表示画面における前記操作画像の位置、大きさ、又は姿勢を決定する、
請求項１に記載のインタフェース制御システム。
【請求項３】
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である、請求項１又は２に記載のインタフェース制御システム。
【請求項４】
前記表示制御手段は、前記カメラから得られる画像に写っている前記第１マーカの種類に基づいて、表示する前記操作画像を決定する、請求項１乃至３いずれか一項に記載のインタフェース制御システム。
【請求項５】
前記デバイスに対するユーザ操作に応じて、前記デバイスの表示画面上に表示される第１マーカの種類を切り替える第２表示制御手段を更に有し、
前記検出手段は、前記カメラから得られる画像から検出された前記第１マーカの種類を特定し、
前記表示制御手段は、表示されている操作画面を、前記特定された第１マーカの種類に対応する操作画面に切り替える、請求項３に記載のインタフェース制御システム。
【請求項６】
前記表示制御手段は、前記ユーザが前記操作画像に対して行った操作に基づいて、表示する前記操作画像を変更する、請求項１乃至５いずれか一項に記載のインタフェース制御システム。
【請求項７】
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
前記カメラから得られる画像内の背景の特徴を抽出し、前記抽出した特徴に基づいて、前記デバイスの表示画面上に表示される第１マーカの形状、模様、又は色彩を決定する第１マーカ決定手段を有する、請求項１乃至６いずれか一項に記載のインタフェース制御システム。
【請求項８】
前記表示制御手段は、
前記ヘッドマウントディスプレイの表示画面上に第２マーカを表示し、
前記ヘッドマウントディスプレイを介して前記ユーザに視認される前記第１マーカと前記第２マーカの位置関係が所定の位置関係になった場合に前記操作画像を表示する、請求項１乃至７いずれか一項に記載のインタフェース制御システム。
【請求項９】
前記検出手段は、前記ヘッドマウントディスプレイの表示画面上の一部の所定位置に表示される前記第２マーカに対応する部分領域を対象に前記第１マーカを検出する、
請求項８に記載のインタフェース制御システム。
【請求項１０】
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記デバイスの表示画面上に所定の表示を行う第２表示制御手段を有し、
前記操作検出手段は、前記カメラによって前記所定の表示が撮像された場合に、前記ユーザによって前記操作画像が操作されたと判定する、請求項１乃至９いずれか一項に記載のインタフェース制御システム。
【請求項１１】
前記操作検出手段は、ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、請求項１乃至９いずれか一項に記載のインタフェース制御システム。
【請求項１２】
前記操作検出手段は、前記カメラから得られる画像に含まれる領域のうち、前記第１マーカに基づいて定まる一部の領域について操作体の検出を行い、前記一部の領域において操作体が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、請求項１乃至９いずれか一項に記載のインタフェース制御システム。
【請求項１３】
前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、所定割合以上の面積が前記ユーザの手と重なっている操作対象の中から、前記ユーザによって操作された操作対象として決定する操作対象特定手段を有する、請求項１乃至１２いずれか一項に記載のインタフェース制御システム。
【請求項１４】
前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、最も左上又は最も右上の操作対象を、前記ユーザによって操作された操作対象として決定する操作対象特定手段を有する、請求項１乃至１３いずれか一項に記載のインタフェース制御システム。
【請求項１５】
前記表示制御手段は、前記ヘッドマウントディスプレイを介して前記ユーザによって視認される前記操作画像とその操作画像を操作する前記ユーザの手が重なる場合、前記ユーザの手がある位置に手の画像を重畳させた操作画像を、前記ヘッドマウントディスプレイの表示画面上に表示する、請求項１乃至１４いずれか一項に記載のインタフェース制御システム。
【請求項１６】
前記表示制御手段は、前記ユーザの身体の姿勢に応じて、前記操作画像の一部のみを表示する、請求項１乃至１５いずれか一項に記載のインタフェース制御システム。
【請求項１７】
請求項１乃至１６いずれか一項に記載の各手段を有するインタフェース制御装置。
【請求項１８】
コンピュータによって実行されるインタフェース制御方法であって、
ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出ステップと、
前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出ステップによって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御ステップと、
前記ユーザによって前記操作画像が操作されたことを判定する操作検出ステップと、
を有するインタフェース制御方法。
【請求項１９】
請求項１８に記載の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インタフェース制御システム、インタフェース制御装置、インタフェース制御方法、及びプログラムに関する。
【背景技術】
【０００２】
入力インタフェースの１つとして、ヘッドマウントディスプレイを装着したユーザの視界に画像を表示し、その画像に対してユーザが操作を加えることで、ユーザが入力を行える種々のインタフェースが開発されている。【０００３】
特許文献１は、ヘッドマウントディスプレイによってユーザの視界に表示される画像を、ユーザが持つモバイル端末を用いて操作する技術を開示している。具体的には、ユーザの視界に表示される画像のうち、ユーザが操作したい画像にモバイル端末のタッチパネルが重畳されるようにモバイル端末を持ち、そのタッチパネルに対して操作を加えることで、ヘッドマウントディスプレイに表示された画像を操作する。【０００４】
特許文献２は、ヘッドマウントディスプレイに表示される仮想キーボードを用いて入力を行う技術を開示している。また、特許文献２は、上記仮想キーボードを実空間上の物に固定することで、ヘッドマウントディスプレイの装着者が頭部を動かしても上記仮想キーボードの位置が変化しないようにする技術を開示している。【０００５】
特許文献３は、ヘッドマウントディスプレイと連携するタブレット端末を用いて、ヘッドマウントディスプレイを通して見える実空間上の物体に対し、仮想的にアノテーションを付す技術を開示している。【０００６】
特許文献４は、ユーザの手のひらのジェスチャ（例えば手のひらを開くジェスチャ）に応じて、その手のひらにメニュー画面を表示したり、そのメニュー画面を切り替えたりする技術を開示している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１４／１８８７９８号
【特許文献２】特表２０１５−５０４６１６号公報
【特許文献３】国際公開第２０１４／１６２８２５号
【特許文献４】米国特許出願公開第２０１５／００１６７７７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ヘッドマウントディスプレイの表示画面に表示される操作用の画像（以下、操作画像）は、ユーザにとって扱いやすい位置や姿勢で表示されることが好ましい。この点、特許文献１の場合、操作画像はユーザの視界の正面に固定されているため、ユーザが他の物を見たいときにユーザの視界を遮ってしまう。特許文献２の場合、机などの実物体に操作画像が固定されるため、ユーザが視線方向を変えて別の場所を見ながら操作することができない。特許文献３も特許文献２と同様に、画像（アノテーション）を実物体に対して固定的に割り当てるものである。さらに、特許文献４は、ユーザが手を移動させた場合に、それに合わせて操作画像の位置を変更する技術は開示していない。【０００９】
本発明は、上記課題に鑑みてなされたものである。本発明の目的は、ヘッドマウントディスプレイを用いた入力インタフェースの利便性を向上する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明のインタフェース制御システムは、ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出手段と、前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出手段によって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御手段と、前記ユーザによって前記操作画像が操作されたと判定する操作検出手段と、を有する。【００１１】
本発明のインタフェース制御装置は、本発明のインタフェース制御システムが有する各手段を有する装置である。【００１２】
本発明のインタフェース制御方法は、コンピュータによって実行されるインタフェース制御方法である。当該インタフェース制御方法は、ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの腕部に取り付けられた第１マーカを検出する検出ステップと、前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出ステップによって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御ステップと、前記ユーザによって前記操作画像が操作されたと判定する操作検出ステップと、を有する。【００１３】
本発明のプログラムは、本発明のインタフェース制御方法をコンピュータに実行させるプログラムである。
【発明の効果】
【００１４】
本発明によれば、ヘッドマウントディスプレイを用いた入力インタフェースの利便性を向上する技術が提供される。
【図面の簡単な説明】
【００１５】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１６】
【図１】実施形態１に係るインタフェース制御システムを例示するブロック図である。
【図２】第１マーカが表示されるデバイスを例示する図である。
【図３】インタフェース制御システムが利用されている様子をユーザの視界の外から見た様子を示している。
【図４】インタフェース制御システムを利用しているユーザの視界に写る様子を例示する図である。
【図５】インタフェース制御システムの利用形態の別の例を示す図である。
【図６】第２表示制御部をさらに有するインタフェース制御システムを例示するブロック図である。
【図７】インタフェース制御システムを実現する計算機のハードウエア構成を例示するブロック図である。
【図８】実施形態１のインタフェース制御システムによって実行される処理の流れを例示するフローチャートである。
【図９】第１マーカに基づいて決定される座標系を例示する図である。
【図１０】座標系と操作画像の姿勢との対応関係を例示する図である。
【図１１】座標系における操作画像の位置を例示する図である。
【図１２】操作画像の一例を示す図である。
【図１３】第１マーカと操作画像との対応関係を示す情報をテーブル形式で例示する図である。
【図１４】実施形態２に係るインタフェース制御システムを例示するブロック図である。
【図１５】第１マーカに関する情報をテーブル形式で例示する図である。
【図１６】表示画面上に表示される第２マーカを例示する図である。
【図１７】ユーザの視界において第１マーカと第２マーカとが重なった場合に操作画像が表示される様子を例示する図である。
【図１８】実施形態２のインタフェース制御システムが方法１において実行する処理の流れを例示するフローチャートである。
【図１９】実施形態２のインタフェース制御システムが方法２において実行する処理の流れを例示するフローチャートである。
【図２０】実施形態４に係るインタフェース制御システムを例示するブロック図である。
【図２１】検出対象とする指及び手の甲の一部から成る形状を例示する図である。
【図２２】操作画像がタップされた場合に第１マーカが変更される様子を例示する図である。
【図２３】第１マーカがユーザの左の腕部にある場合における検出領域を例示する図である。
【図２４】選択ボタンを表す操作画像が操作されている様子を例示する図である。
【図２５】キーボードを表す操作画像が操作されている様子を平面視で例示する図である。
【図２６】操作点を用いて操作対象を特定する様子を例示する図である。
【図２７】キーボードを表す操作画像の一部のキーのみが腕部に重畳される様子を例示する図である。
【図２８】第１マーカの姿勢に応じた操作対象が表示される様子を例示する図である。
【図２９】第１マーカの姿勢に応じた操作対象が表示される様子を例示する図である。
【図３０】操作画像に対して手の画像を合成しない場合において、ユーザの視界に写る操作画像及びその操作画像を操作するユーザの手を平面視で例示する図である。
【図３１】操作画像に対して手の画像を合成した場合において、ユーザの視界に写る操作画像及びその操作画像を操作するユーザの手を平面視で例示する図である。
【図３２】実施形態７に係るインタフェース制御システムを例示するブロック図である。
【図３３】表示画面に表示されるガイド画像を例示する第１の図である。
【図３４】表示画面に表示されるガイド画像を例示する第２の図である。
【図３５】操作体の色相範囲を例示する第１の図である。
【図３６】操作体の色相範囲を例示する第２の図である。
【図３７】ガイド画像を例示する図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１８】
［実施形態１］
図１は、実施形態１に係るインタフェース制御システム２０００を例示するブロック図である。図１において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１９】
インタフェース制御システム２０００は第１マーカ検出部２０２０及び表示制御部２０４０を有する。第１マーカ検出部２０２０は、ユーザに身につけられたカメラから得られる撮像画像に基づいて、ユーザの身体に取り付けられた第１マーカを検出する。ここで、「ユーザに身につけられたカメラ」とは、ユーザの身体に直接取り付けられたカメラでもよいし、ユーザが身につけている任意の物に取り付けられたカメラでもよい。また、「第１マーカがユーザの身体に取り付けられる」とは、第１マーカがユーザの身体にある状態を全般的に含み、ユーザの身体に対して第１マーカが固定されている状態のみに限定されない。
【００２０】
第１マーカ５０は、撮像画像において少なくともその位置が特定できる任意のマーカである。例えば第１マーカ５０は、３次元の座標系の決定に利用できるマーカである。３次元の座標系の決定に利用できるマーカは、例えば AR（Augmented Reality）マーカである。ただし、３次元の座標系の決定に利用できるマーカは、参照方向によらず、或る基準点からの相互に直交する３つの方向を一定に得ることができるものであればよく、AR マーカには限定されない。
【００２１】
第１マーカは、ユーザの身体の任意の箇所に取り付けることができる。例えば第１マーカは、ユーザの腕部に取り付けられる。ここで、ユーザの腕部とは、そのユーザの腕だけでなく、腕及び手を含む部分である。
【００２２】
例えば第１マーカ５０は、ユーザの腕部に取り付けられたデバイスの表示画面に表示される画像である。このデバイスは、表示画面上に画像を表示する機能を有する任意の電子機器である。なおこのデバイスは、ユーザの腕部に直接取り付けられてもよいし、服の上からユーザの腕部に取り付けられてもよい。
【００２３】
図２は、第１マーカ５０が表示されるデバイス７０を例示する図である。図２のデバイス７０は、ユーザの手首に取り付けられる時計型のデバイスである。表示画面７２は、デバイス７０の表示画面である。図２において、表示画面７２に表示されている斜線で塗られている画像が、第１マーカ５０である。なお、デバイス７０は時計型のデバイスには限定されない。
【００２４】
第１マーカ５０は、予めデバイス７０に記憶されている画像であってもよいし、デバイス７０の外部にある記憶装置に記憶されている画像であってもよい。後者の場合、デバイス７０は、表示する第１マーカ５０を記憶装置から取得して表示する。
【００２５】
第１マーカ５０は、上述のようにデバイス７０に表示されるものに限定されない。また、第１マーカ５０は、ユーザの腕部に直接描画されていてもよいし、ユーザの腕部にある任意の物に描画されていてもよい。後者の場合、例えば第１マーカ５０は、ユーザの指に取り付けられている指輪、ユーザの手首に取り付けられているリストバンド、又はユーザが着ている服の袖などに描画される。なお、第１マーカ５０は、手で描画されてもよいし、印字されてもよい。さらにマーカ５０は、ユーザの身体の特定の部分であってもよい。例えばマーカ５０は、ユーザの手の甲などである。
【００２６】
表示制御部２０４０は、第１マーカ検出部２０２０によって検出された第１マーカに基づいて、ユーザによって装着されるヘッドマウントディスプレイの表示画面３２に操作画像を表示する。表示制御部２０４０は、ユーザの目から見て、操作画像がユーザの身体に重畳されて見えるように、操作画像を表示する。その具体的な表示方法については後述する。
【００２７】
操作画像は、ユーザが種々の計算機に対して入力操作を行うために操作する画像である。例えば操作画像がキーボードの画像である場合、ユーザは、このキーボードの画像に含まれるキーの画像に対して操作を加えることにより、そのキーに対応する文字等の入力を行う。
【００２８】
図３及び図４を用いて、本実施形態のインタフェース制御システム２０００の利用形態について例示する。図３は、インタフェース制御システム２０００が利用されている様子をユーザの視界の外から見た様子を示している。一方、図４は、インタフェース制御システム２０００を利用しているユーザの視界に写る様子を例示する図である。
【００２９】
図３のヘッドマウントディスプレイ３０は、グラス型のヘッドマウントディスプレイである。表示画面３２は、ヘッドマウントディスプレイ３０のレンズ部分に設けられている透過型のディスプレイである。カメラ２０は、ユーザに身につけられたカメラである。図３において、カメラ２０はヘッドマウントディスプレイ３０のレンズ付近に取り付けられている。なお、後述するように、表示画面３２は透過型のディスプレイに限定されない。また、カメラ２０の設置位置は、ヘッドマウントディスプレイ３０上に限定されない。
【００３０】
図３及び図４において、ユーザの手首に第１マーカ５０が設けられている。インタフェース制御システム２０００は、カメラ２０によって生成された、第１マーカ５０が写っている撮像画像に基づいて、表示画面３２に操作画像６０を表示する。操作画像６０はキーボードの画像である。操作画像６０は、ユーザから見える腕部１０に重畳されるように、表示画面３２に表示される。その結果、図４に示すように、ユーザの目には、腕部１０に操作画像６０が重畳されているように見える。ここで、表示制御部２０４０は、図４に示すように、表示される位置に応じて、操作画像６０の形状を変形（湾曲させるなど）して表示することが好ましい。ただし、表示制御部２０４０は、操作画像６０の形状を変形せずに表示してもよい。
【００３１】
ここで、デバイス７０は、ヘッドマウントディスプレイ３０と通信する機能を有していてもよいし、有していなくてもよい。なお、デバイス７０とヘッドマウントディスプレイ３０とが通信する必要のない構成にした場合、これらの間の通信のための設定（ペアリング等）が不要となり、インタフェース制御システム２０００を利用するための準備の手間が少なくなるという利点がある。
【００３２】
インタフェース制御システム２０００の利用形態は、図３及び図４で示した例に限定されない。図５は、インタフェース制御システム２０００の利用形態の別の例を示す図である。図５において、第１マーカ５０は、ユーザの指にはめられている指輪に付されている。そして、表示制御部２０４０は、ユーザの手のひらに操作画像６０が重畳されて見えるように、表示画面３２に操作画像６０を表示している。なお、図５における指輪は、第１マーカ５０を表示する機能を有する指輪型のデバイスであってもよい。
【００３３】
＜作用・効果＞
本実施形態のインタフェース制御システム２０００によれば、ユーザが入力操作に利用する操作画像が、ユーザの腕部に重畳されて見えるように、ヘッドマウントディスプレイ３０の表示画面３２に表示される。ここで、操作画像６０の表示はユーザの腕部にある第１マーカに基づいて行われるため、ユーザが腕部を動かすと、その動きに合わせて操作画像６０を移動させることもできる。そのためユーザは、望む位置や姿勢で容易に操作画像６０を表示させることができる。よって、本実施形態のインタフェース制御システム２０００には、操作画像６０の位置や姿勢が固定されている入力インタフェースと比較し、入力インタフェースの利便性が高いという利点がある。
【００３４】
なお、第１マーカ５０が付される位置と操作画像６０が重畳されるユーザの身体上の位置とは、関節をまたがない位置関係にあることが好適である。例えば図２及び図３で例示した利用形態では、第１マーカ５０が手首にあり、操作画像６０が腕に表示されているため、これらの位置関係は関節をまたがない位置関係である。このような位置関係にすることで、ユーザが関節を軸にして身体を動かす動作（例えば手首を曲げる動作）を行っても第１マーカ５０と操作画像６０の表示位置との相対的な位置関係に変化がないため、操作画像６０をより正確な姿勢や位置で表示することができる。よって、ユーザの動作の自由度が高くなる。ただし、第１マーカ５０が付される位置と操作画像６０が重畳されるユーザの身体上の位置との関係は、関節をまたぐ位置関係であってもよい。
【００３５】
第１マーカ５０はユーザの腕部と比較して単純な形状等で構成できるため、画像から第１マーカ５０を検出する処理は、画像からユーザの腕部を検出する処理と比較して容易な処理となる。そのため、本実施形態のインタフェース制御システム２０００には、短い時間及び少ない計算機資源で正確に操作画像６０を表示できるという利点がある。
【００３６】
ユーザがジェスチャを行うことで入力を行う入力インタフェースと比較し、ユーザが操作画像６０を操作することで入力を行う本実施形態のインタフェース制御システム２０００には、ユーザが各種のジェスチャを覚えなくてよいという利点がある。
【００３７】
また、ジェスチャを用いて入力を行う入力インタフェースには、ユーザが入力操作以外の目的でジェスチャと同様に手を動かした場合に、入力が誤検出されてしまうおそれがある。一方、本実施形態のインタフェース制御システム２０００では、撮像画像に第１マーカ５０が写っている場合に操作画像６０が表示される。よってユーザは、カメラ２０の撮像範囲に第１マーカ５０を含めるか否かにより、操作画像６０を操作するための動作とそれ以外の動作とを容易に切り分けることができる。そのため、本実施形態のインタフェース制御システム２０００には誤検出が少なくないという利点がある。
【００３８】
同様に、ユーザの視界に常に操作画像が表示され続ける入力インタフェースでも、ユーザが入力操作以外の目的で手を動かした場合に、入力が誤検出されてしまうおそれがある。また、ユーザの視界に常に操作画像が表示され続けると、ユーザが入力操作以外の動作を行いたい際に視界が遮られてしまう。これに対し、本実施形態のインタフェース制御システム２０００には、撮像画像に第１マーカ５０が写っている場合に操作画像６０が表示されるため、入力の誤検出が少なく、かつ入力操作以外の操作を行いたい場合に視界が遮られることがない。そのため、本実施形態のインタフェース制御システム２０００には、画像を用いた入力操作の利便性が高いという利点がある。
【００３９】
操作画像６０の表示場所がユーザの腕部に限定されているため、撮像画像において、操作画像６０を操作するユーザの手などの背景が、ユーザの腕部に限定される。そのため、操作画像の表示場所がユーザの腕部に限定されていない場合（例えばユーザが見る任意の景色に操作画像が重畳される場合）と比較し、ユーザが操作を行う手などを撮像画像から検出する処理が容易になるという利点がある。なお、ユーザによる操作の検出方法については、後述の実施形態で説明する。
【００４０】
第１マーカ５０をデバイス７０に表示する構成には、第１マーカ５０をユーザの腕部に直接描画したりする方法と比較し、第１マーカ５０の表示及び変更が容易に行えるという利点がある。
【００４１】
第１マーカ５０をデバイス７０に表示する構成において、デバイス７０を、第１マーカ５０を表示する機能以外にも種々の機能を持つデバイスとすることができる。この場合、デバイス７０という１つのデバイスを様々な用途に活用できることとなる。例えば、デバイス７０にインストールされる種々のアプリケーションの１つとして、インタフェース制御システム２０００を利用するためのアプリケーション（第１マーカ５０の表示などを行うアプリケーション）をデバイス７０にインストールする。このような利用形態には、汎用のデバイスを有効活用できるという利点、及びインタフェース制御システム２０００の導入が容易になるという利点がある。
【００４２】
以下、本実施形態のインタフェース制御システム２０００について、さらに詳しく説明する。なお、以降の説明では、本実施形態及び後述の各実施形態について、第１マーカ５０がデバイス７０の表示画面７２に表示される形態を例示する。第１マーカ５０をデバイス７０の表示画面７２に表示する場合、インタフェース制御システム２０００は、第１マーカ５０の表示を制御する第２表示制御部２０６０をさらに有する。図６は、第２表示制御部２０６０をさらに有するインタフェース制御システム２０００を例示するブロック図である。
【００４３】
ただし、以降で説明するインタフェース制御システム２０００の実現方法は、デバイス７０を利用する方法に限定されない。以降で説明する各構成は、その内容が矛盾しない範囲で、デバイス７０を利用しない形態にも適用可能である。
【００４４】
＜ハードウエア構成例＞
実施形態１のインタフェース制御システム２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、インタフェース制御システム２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００４５】
図７は、インタフェース制御システム２０００を実現する計算機１０００のハードウエア構成を例示するブロック図である。計算機１０００は、インタフェース制御システム２０００の実装に用いられる種々の計算機である。計算機１０００は、インタフェース制御システム２０００を実装するための専用の計算機であってもよいし、様々なアプリケーションが動作する汎用の計算機であってもよい。
【００４６】
例えば計算機１０００は、ヘッドマウントディスプレイ３０である。ただし計算機１０００は、ヘッドマウントディスプレイ３０以外の計算機（デバイス７０など）であってもよい。この場合、ヘッドマウントディスプレイ３０は、計算機１０００による制御に基づいて、表示画面３２に操作画像６０を表示する。また、インタフェース制御システム２０００は、２つ以上の計算機によって実現されてもよい。例えばインタフェース制御システム２０００は、ヘッドマウントディスプレイ３０及びデバイス７０を用いて実現される。この場合、例えば第１マーカ検出部２０２０及び表示制御部２０４０はヘッドマウントディスプレイ３０に実装され、第２表示制御部２０６０はデバイス７０に実装される。
【００４７】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージ１０８０、及びインタフェース１１００を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージ１０８０、及びインタフェース１１００が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。プロセッサ１０４０は、例えば CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ１０６０は、例えば RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ１０８０は、例えばハードディスク、SSD (Solid State Drive)、又はメモリカードなどの記憶装置である。また、ストレージ１０８０は、RAM や ROM 等のメモリであってもよい。
【００４８】
インタフェース１１００は、計算機１０００と外部のデバイスとを接続するためのインタフェースである。例えばインタフェース１１００は、USB（Universal Serial Bus）等のバス接続のインタフェースや、ネットワークインタフェースを含む。ネットワークインタフェースは、無線回線に接続するインタフェースであってもよいし、有線回線に接続するインタフェースであってもよい。
【００４９】
インタフェース１１００を介して接続されるデバイスは、例えばカメラ２０である。ただし計算機１０００は、カメラ２０によって生成された撮像画像を取得できればよく、カメラ２０と直接接続されている必要はない。例えばカメラ２０がカメラ２０の外部にある記憶装置に撮像画像を記憶する場合、計算機１０００はこの記憶装置と接続されていればよい。
【００５０】
また、計算機１０００がヘッドマウントディスプレイ３０の外部に設けられている場合、計算機１０００は、例えばインタフェース１１００を介してヘッドマウントディスプレイ３０と接続される。
【００５１】
ストレージ１０８０は、インタフェース制御システム２０００の各機能を実現するためのプログラムを記憶している。具体的には、ストレージ１０８０は、各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールを実行することで、インタフェース制御システム２０００の各機能構成部の機能をそれぞれ実現する。ここでプロセッサ１０４０は、上記各モジュールを実行する際、これらのモジュールをメモリ１０６０上に読み出してから実行してもよいし、メモリ１０６０上に読み出さずに実行してもよい。
【００５２】
インタフェース制御システム２０００のハードウエア構成は図７に示した構成に限定されない。例えば、各プログラムモジュールはメモリ１０６０に格納されてもよい。この場合、インタフェース制御システム２０００は、ストレージ１０８０を備えていなくてもよい。
【００５３】
＜＜ヘッドマウントディスプレイ３０について＞＞
ヘッドマウントディスプレイ３０は、ユーザの視界に入る表示画面３２を有する任意のヘッドマウントディスプレイである。例えば表示画面３２は、非透過型のディスプレイである。この場合、ヘッドマウントディスプレイ３０は、ユーザの周囲（例えばユーザの顔方向）を撮像するカメラによって撮像された画像と、その他の物を表す画像とを重畳させて表示画面３２に表示する。ユーザは、この表示画面３２を見ることで、周囲の景色にその他の物が重畳された様子を見ることができる。そこで、インタフェース制御システム２０００は、カメラによって撮像されたユーザの腕部の画像に対して操作画像６０を重畳したものを表示画面３２に表示する。なお、「ユーザの周囲を撮像するカメラ」は、カメラ２０であってもよいし、これとは別途設けられるカメラであってもよい。
【００５４】
また例えば、表示画面３２は、透過型のディスプレイである。この場合、ユーザは、表示画面３２の先にある実物体及び表示画面３２に表示される画像の両方を見ることができる。そこで例えば、インタフェース制御システム２０００は、表示画面３２の先にあるユーザの腕部に操作画像６０が重畳されて見えるように、操作画像６０を表示画面３２に表示する。また例えば、インタフェース制御システム２０００は、表示画面３２が非透過型ディスプレイである場合と同様に、ユーザの周囲を撮像するカメラによって撮像されたユーザの腕部の画像に対して操作画像６０を重畳したものを表示画面３２に表示してもよい。
【００５５】
＜＜カメラ２０について＞＞
カメラ２０は撮像を行って画像を生成する任意のカメラである。カメラ２０は、２次元（２Ｄ）カメラであってもよいし、３次元（３Ｄ）カメラであってもよい。
【００５６】
ここで、カメラ２０によって生成される撮像画像を用いて、ユーザが見る操作画像６０の表示位置の決定などを行うためには、カメラ２０の撮像方向とユーザの顔方向との関係が予め把握できることが好適である。そのため、例えばカメラ２０は、カメラ２０の撮像方向とユーザの顔方向とが一致するとみなせる場所に設けられる。表示画面３２が透過型のヘッドマウントディスプレイの場合、例えばこの場所は、図３で説明したヘッドマウントディスプレイ３０のレンズ付近などである。また、表示画面３２が非透過型のヘッドマウントディスプレイであり、表示画面３２に表示する周囲の景色を撮像するカメラがカメラ２０である場合、カメラの撮像方向とユーザの顔方向は一致するとみなせる。
【００５７】
ただし、カメラ２０の設置位置は、カメラ２０の撮像方向とユーザの顔方向とが一致するとは限らない場所に設置されてもよい。例えばこの場合、カメラ２０は、ユーザの頭部の任意の箇所に設けられる（頭部に限定はされない）。この場合、カメラ２０の撮像方向とユーザの顔方向との関係（角度のずれなど）を予めパラメタとして定義しておく。インタフェース制御システム２０００は、このパラメタを利用することでカメラ２０の撮像方向とユーザの顔方向との関係を把握する。このパラメタは、インタフェース制御システム２０００に予め設定されてもよいし、インタフェース制御システム２０００からアクセス可能な記憶装置に記憶しておいてもよい。
【００５８】
また例えば、カメラ２０は、ユーザが首から提げているもの（社員証など）に取り付けられていてもよい。この場合、インタフェース制御システム２０００は、カメラ２０によって撮像されたユーザの腕部の画像に操作画像６０を重畳したものを、表示画面３２に表示することが好適である。
【００５９】
＜処理の流れ＞
図８は、実施形態１のインタフェース制御システム２０００によって実行される処理の流れを例示するフローチャートである。第１マーカ検出部２０２０は、カメラ２０によって撮像された撮像画像を取得する（Ｓ１０２）。第１マーカ検出部２０２０は、取得した撮像画像に第１マーカが写っているか否かを判定する（Ｓ１０４）。第１マーカが写っていない場合（Ｓ１０４：ＮＯ）、図８の処理はＳ１０４に進む。一方、第１マーカが写っている場合（Ｓ１０４：ＹＥＳ）、図８の処理はＳ１０６に進む。Ｓ１０６において、表示制御部２０４０は、第１マーカに基づき、ユーザの腕部に重畳されるように、ヘッドマウントディスプレイ３０の表示画面３２上に操作画像６０を表示する。
【００６０】
＜第１マーカ検出部２０２０が行う処理の詳細＞
第１マーカ検出部２０２０は、カメラ２０によって撮像された撮像画像を取得する（Ｓ１０２）。第１マーカ検出部２０２０は、カメラ２０から直接撮像画像を取得してもよいし、カメラ２０によって生成された撮像画像が記憶されている記憶装置から撮像画像を取得してもよい。
【００６１】
第１マーカ検出部２０２０は、取得した撮像画像に第１マーカ５０が写っているか否かを判定する（Ｓ１０４）。例えば、第１マーカ検出部２０２０は、第１マーカ５０に関する形状、サイズ、色などについての情報を予め保持しており、このような既知の情報を用いて、取得された撮像画像から第１マーカ５０を検出する。ここで、画像に所定のマーカが写っているか否かを判定する技術には、例えば画像から所定のオブジェクトを検出する既知のオブジェクト検出技術などを利用することができる。この技術の詳細については省略する。
【００６２】
第１マーカ検出部２０２０が第１マーカ５０を検出する処理を開始するタイミングは任意である。例えば第１マーカ検出部２０２０は、常時第１マーカ５０を検出する処理を行う。また例えば、第１マーカ検出部２０２０は、ユーザから指示を受けたタイミングで上記処理を開始してもよい。例えばこの指示は、ヘッドマウントディスプレイ３０に設けられたボタン等を用いて行われる。
【００６３】
また例えば、第１マーカ検出部２０２０は、撮像画像を解析することによって所定の状況を検出した場合に、第１マーカ５０の検出を開始してもよい。例えばこの所定の状況は、ユーザが実世界で行っている作業に関わる状況である。例えばユーザが、作業現場でメータを読み取って数値を記録する作業を行っているとする。この場合、第１マーカ検出部２０２０は、撮像画像の中にメータが写っていることを検出した場合に、第１マーカ５０の検出を開始する。なお、上記所定の状況を検出する処理は、常時行われていてもよいし、ユーザから指示を受けたタイミングで開始されてもよい。ここで、「どのような状況を検出した場合に第１マーカ５０の検出を開始するか」という情報は、第１マーカ検出部２０２０に予め定められていてもよいし、第１マーカ検出部２０２０からアクセス可能な記憶装置に記憶されていてもよい。
【００６４】
同様に、カメラ２０が撮像を開始するタイミングも任意である。例えばカメラ２０は、常時撮像を行う。また例えば、カメラ２０は、第１マーカ検出部２０２０が第１マーカ５０を検出する処理を開始するタイミングで撮像を開始してもよい。
【００６５】
第１マーカ検出部２０２０は、第１マーカ５０を検出する処理を開始した後、カメラ２０によって生成される複数の撮像画像それぞれについて第１マーカ５０の検出を行う。第１マーカ検出部２０２０は、カメラ２０によって生成される全ての撮像画像について第１マーカ５０の検出を行ってもよいし、一部の撮像画像について第１マーカ５０の検出を行ってもよい。後者の場合、例えば第１マーカ検出部２０２０は、生成される撮像画像のうち、所定数の撮像画像ごとに（例えば３枚に１枚の割合で）第１マーカ５０の検出を行う。
【００６６】
＜表示制御部２０４０が行う処理の詳細＞
表示制御部２０４０は、第１マーカ検出部２０２０によって第１マーカ５０が検出された場合に（Ｓ１０４：ＹＥＳ）、第１マーカ５０に基づき、ユーザの腕部に重畳されるように、ヘッドマウントディスプレイ３０の表示画面３２上に操作画像６０を表示する（Ｓ１０６）。ユーザの腕部に操作画像６０が重畳して見えるように操作画像６０を表示するために、表示制御部２０４０は、検出された第１マーカ５０に基づいて、操作画像６０の姿勢、位置、及び大きさの少なくとも１つを決定する。以下、これらの決定方法について説明する。
【００６７】
＜＜操作画像６０の姿勢を決定する方法＞＞
表示制御部２０４０は、第１マーカ５０の姿勢に応じて、操作画像６０の姿勢を決定する。具体的にはまず、表示制御部２０４０は、撮像画像に写っている第１マーカ５０を用いて、第１マーカ５０に対応した３次元の座標系を決定する。図９は、第１マーカ５０に基づいて決定される座標系８０を例示する図である。座標系８０は、x 方向、y 方向、及び z 方向で定まる３次元の座標系である。なお、画像に写っているマーカの形状等に基づいて３次元の座標系を決定する技術には、例えば AR マーカを用いて３次元の座標系を決定する既知の技術などを利用できる。そのため、この技術に関する詳細な説明は省略する。
【００６８】
さらに表示制御部２０４０は、上記決定した座標系８０に基づいて、操作画像６０の姿勢を決定する。例えばこの決定には、予め定めておいた上記座標系８０と操作画像６０の姿勢との対応関係を利用する。図１０は、座標系８０と操作画像６０の姿勢との対応関係を例示する図である。図１０において、操作画像６０を平面視した場合の右方向が座標系８０における x 方向となっており、操作画像６０を平面視した場合における下方向が座標系８０における y 方向となっており、操作画像６０を平面視した場合における視線方向と逆の方向が座標系８０における z 方向となっている。この対応関係は、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。なお、操作画像６０が複数種類ある場合、上記対応関係は、操作画像６０ごとに定めておく。
【００６９】
ただし表示制御部２０４０は、第１マーカ５０を用いて操作画像６０の姿勢を決定しなくてもよい。この場合、例えば表示制御部２０４０は、第１マーカ５０によらない固定の姿勢で操作画像６０を表示する。また例えば表示制御部２０４０は、撮像画像を画像解析することで、第１マーカ５０があるユーザの腕部を表す領域を割り出し、撮像画像の二次元平面におけるその領域の姿勢（x 軸に対してその領域が成す角度など）を算出する。そして、表示制御部２０４０は、撮像画像の二次元平面におけるユーザの腕部の姿勢に基づいて、操作画像６０の姿勢を決定する。例えば表示制御部２０４０は、撮像画像の二次元平面の x 軸に対して操作画像６０の x 方向が成す角度を、上記 x 軸に対してユーザの腕部を表す領域が成す角度と同じにする。
【００７０】
＜＜操作画像の大きさの決定＞＞
表示制御部２０４０は、撮像画像に写っている第１マーカ５０の大きさに応じて、表示画面３２に表示する操作画像６０の大きさを決定する。例えば予め、第１マーカ５０の大きさと操作画像６０の大きさとの比率を定めておく。そして、表示制御部２０４０は、この比率及び撮像画像に写っている第１マーカ５０の大きさに基づいて、表示画面３２に表示する操作画像６０の大きさを決定する。上記比率は、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。なお、操作画像６０が複数種類ある場合、上記比率は、操作画像６０ごとに定めておく。
【００７１】
ただし表示制御部２０４０は、第１マーカ５０を用いて操作画像６０の大きさを決定しなくてもよい。この場合、例えば表示制御部２０４０は、第１マーカ５０によらない固定の大きさで操作画像６０を表示する。また例えば、表示制御部２０４０は、撮像画像を画像解析することで、第１マーカ５０があるユーザの腕部の領域を割り出し、その領域の面積に応じた大きさを操作画像６０の大きさとする。例えば、表示制御部２０４０は、ユーザの腕部の領域に収まる範囲で最大の大きさとなるように、操作画像６０の大きさを決定する。
【００７２】
＜＜操作画像６０の位置の決定＞＞
表示制御部２０４０は、撮像画像に写っている第１マーカ５０の位置に応じて表示画面３２に表示する操作画像６０の位置を決定する。例えば予め、操作画像６０の位置を、上述した座標系８０における位置として予め定義しておく。この座標系８０における位置は、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。
【００７３】
図１１は、座標系８０における操作画像６０の位置を例示する図である。図１１の例において、座標系８０における操作画像６０の位置は予め、(-3Mx-Ix, -Iy/2, 0) と定められている。ここで、Mx は第１マーカ５０の x 方向の大きさ、Ix は操作画像６０の x 方向の大きさ、Iy は操作画像６０の y 方向の大きさを表す。また、操作画像６０の位置は、操作画像６０の左上の座標を表す。
【００７４】
表示制御部２０４０は、座標系８０における位置が (-3Mx-Ix, -Iy/2, 0) となるように操作画像６０を描画している。なお、操作画像６０の姿勢は、図１０で説明したケースと同様に、「操作画像６０を平面視した場合の右方向が座標系における x 方向であり、操作画像６０を平面視した場合における下方向が座標系における y 方向であり、操作画像６０を平面視した場合における視線方向と逆の方向が z 方向である」と定められている。
【００７５】
ただし表示制御部２０４０は、第１マーカ５０を用いて操作画像６０の位置を決定しなくてもよい。この場合、例えば表示制御部２０４０は、撮像画像を画像解析することで、第１マーカ５０があるユーザの腕部の領域を割り出し、その領域の位置に基づいて操作画像６０の位置を決定する。例えば表示制御部２０４０は、ユーザの腕部を表す領域の重心を算出し、操作画像６０の重心がユーザの腕部の重心に位置するように、操作画像６０の位置を決定する。
【００７６】
＜＜＜第１マーカ５０がある腕部の左右と操作画像６０の位置との関係＞＞＞
操作画像６０の位置は、第１マーカ５０がユーザの左の腕部と右の腕部のどちらにあるかによって異なる。この点を考慮する方法は様々である。例えば、第１マーカ５０が左右どちらの腕部にあるのかを、インタフェース制御システム２０００に対して予め設定しておく。そして表示制御部２０４０は、この設定に応じた位置に操作画像６０を表示する。
【００７７】
また例えば、表示制御部２０４０は、撮像画像を解析し、第１マーカ５０が左右どちらの腕部にあるのかを判定してもよい。例えば表示制御部２０４０は、撮像画像からユーザの腕部を表す領域を検出し、この領域を、第１マーカ５０を境に２つに分割し、これら２つの領域の面積や色に基づいて上記判定を行う。ここでは、第１マーカ５０は、ユーザの手首から指先までの範囲にあるとする。
【００７８】
第１マーカ５０がユーザの左の腕部にある場合、上記分割された２つの領域のうち、左にある領域の方が右にある領域よりも面積が大きくなる。一方、第１マーカ５０がユーザの右の腕部にある場合、右にある領域の方が、左にある領域よりも面積が大きくなる。そこで表示制御部２０４０は、上記２つの領域の面積の大きさの違いに基づいて、第１マーカ５０が左右どちらの腕部にあるかを判定する。
【００７９】
また、ユーザの腕部のうち、手の部分はほぼ全体が肌色の領域である一方で、腕の部分は一部又は全部が服で覆われていることが多く、肌色以外の領域も多いと考えられる。そこで例えば、表示制御部２０４０は、上記分割された２つの領域のうち、どちらの領域の方が肌色の割合が多いかを判定することで、第１マーカ５０が左右どちらの腕部にあるかを判定する。具体的には、表示制御部２０４０は、右にある領域の方が肌色の割合が多い場合、第１マーカ５０が左の腕部にあると判定し、左にある領域の方が肌色の割合が多い場合、第１マーカ５０が右の腕部にあると判定する。
【００８０】
ただし、上述した左右両方の領域の双方において肌色の割合が多い場合、腕が服で覆われていない（例えばユーザが半袖の服を着ている）と考えられる。そこで、表示制御部２０４０は、上述した左右両方の領域において肌色の割合が所定値以上である場合、肌色の割合の違いではなく、その他の方法で腕部の左右を判定するようにしてもよい。この所定値は、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶部に記憶されていてもよい。
【００８１】
インタフェース制御システム２０００には、第１マーカ５０が左の腕部にある場合の操作画像６０の位置と、第１マーカ５０が右の腕部にある場合の操作画像６０の位置の双方が予め設定されていてもよいし、片方のみが設定されていてもよい。後者の場合、設定されている方の位置から、設定されていない方の位置を算出する。この方法は、インタフェース制御システム２０００に予め定めておく。例えば図１１のように座標系８０を定める場合、第１マーカ５０が左右の腕部いずれにあっても、操作画像６０の位置の y 座標と z 座標は変わらない。また、x 座標については、左の腕部にある場合には操作画像６０の x 方向の大きさである 3Mx を考慮しているが、右の腕部にある場合にはこれが不要となる。また、x 座標の符号は正になる。そこで、表示制御部２０４０は、第１マーカ５０が右の腕部にある場合の操作画像６０の位置を、第１マーカ５０が左の腕部にある場合の操作画像６０の位置に基づいて、(3Mx, -Iy/2, 0) と算出する。
【００８２】
＜＜表示画面３２への操作画像６０の描画について＞＞
上述した操作画像６０の姿勢、大きさ、及び位置は、撮像画像に写っている第１マーカ５０に基づいて定まる三次元の座標系８０における操作画像６０の姿勢、大きさ、及び位置である。しかし実際には、表示制御部２０４０は、操作画像６０を二次元平面である表示画面３２に描画する。そこで表示制御部２０４０は、三次元の座標系８０における操作画像６０を表示画面３２の二次元平面にマッピングする処理を行い、このマッピングされた操作画像６０を表示画面３２に表示する。これにより、表示画面３２を見るユーザは、ユーザの腕部に上述した姿勢等で重畳された操作画像６０を見ることができる。
【００８３】
ここで、カメラ２０の撮像方向がユーザの視線方向と一致するとみなせば、表示画面３２の二次元平面は撮像画像の二次元平面と同じである。そこで表示制御部２０４０は、操作画像６０を撮像画像の二次元平面にマッピングすることで、操作画像６０を表示画面３２の二次元平面にマッピングできる。なお、三次元空間上において所定の姿勢、大きさ、及び姿勢で存在する物体を、その三次元空間との関係が定められている二次元空間にマッピングする手法には、既知の手法を利用できる。そのため、この手法に関する詳細な説明は省略する。
【００８４】
ただし表示制御部２０４０、カメラ２０の撮像方向がユーザの視線方向と一致するとはみなさず、これらの方向の違いを考慮して上記マッピングを行ってもよい。この場合、表示制御部２０４０は、カメラ２０の撮像方向とユーザの視線方向との対応関係を表すパラメタを利用して上記マッピングを行う。このパラメタは、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。
【００８５】
＜操作画像６０の種類について＞
ユーザによる入力操作に用いられる操作画像６０には、様々な画像が利用できる。図１２は、操作画像６０の一例を示す図である。操作画像６０−１はキーボードの画像である。操作画像６０−２は電話型のテンキーの画像である。操作画像６０−３は YES と NO の２択を選択するボタンを表す画像である。インタフェース制御システム２０００が扱う操作画像６０は１種類のみであってもよいし、複数種類であってもよい。
【００８６】
インタフェース制御システム２０００が複数種類の操作画像６０を扱う場合、表示制御部２０４０は、複数種類の操作画像６０の中から、表示画面３２に表示する操作画像６０の種類を決定する。例えば表示制御部２０４０は、ユーザによる操作に応じて操作画像６０の種類を決定する。ここで、上記ユーザによる操作は様々である。例えばユーザは、ヘッドマウントディスプレイ３０に設けられたボタン等を操作することで、操作画像６０の種類の指定又は変更を行う。また例えば、ユーザは、現在表示画面３２に表示されている操作画像６０に所定の操作を加えることで、操作画像６０の種類を変更してもよい。この所定の操作は、例えば操作画像６０の含まれる特定のキーを押す操作である。
【００８７】
さらに、インタフェース制御システム２０００が複数種類の第１マーカ５０を扱う場合、撮像画像に写っている第１マーカ５０の種類と、表示画面３２に表示する操作画像６０の種類とを、予め対応付けておいてもよい。この場合、表示制御部２０４０は、撮像画像に写っている第１マーカ５０の種類を判定することで、操作画像６０の種類を決定する。この場合、例えば第１マーカ５０の種類は、マーカの形状、模様、及び色などで定められる。例えば第１マーカ５０の色に応じて操作画像６０の種類を定めておく場合、表示制御部２０４０は、撮像画像に写っている色に応じた操作画像６０を表示画面３２に表示する。
【００８８】
また、第１マーカ５０から ID（Identifier）を算出できる場合、この ID と操作画像６０の種類とを予め対応付けておいてもよい。ID を算出できる第１マーカ５０は、例えば QR コード（登録商標）である。この場合、表示制御部２０４０は、撮像画像に写っている第１マーカ５０を解析して ID を算出し、この ID に対応付けられている操作画像６０を表示画面３２に表示する。
【００８９】
図１３は、第１マーカ５０と操作画像６０との対応関係を示す情報をテーブル形式で例示する図である。図１３のテーブルを、対応テーブル２００と表記する。第１マーカ２０２は、第１マーカ５０の種類や ID などを示す。操作画像２０４は、第１マーカ２０２に示される第１マーカ５０と対応する操作画像６０を示す。
【００９０】
なお、第１マーカ５０と操作画像６０との対応関係を示す情報（対応テーブル２００など）は、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。
【００９１】
＜第１マーカ５０を変更する方法について＞
前述したように、第１マーカ５０は複数種類あってもよい。この場合、第２表示制御部２０６０は、表示画面７２に表示する第１マーカ５０を変更する機能を有する。例えば第２表示制御部２０６０は、デバイス７０に対する操作に応じて、第１マーカ５０を変更する。デバイス７０の操作は、例えばデバイス７０に設けられた物理ボタンに対する操作である。また、表示画面７２がタッチパネルである場合、デバイス７０の操作は、表示画面７２に対するタップ操作やスワイプ操作であってもよい。
【００９２】
また例えば、第２表示制御部２０６０は、ヘッドマウントディスプレイ３０に対する操作に応じて第１マーカ５０を変更する。この場合、デバイス７０は、ヘッドマウントディスプレイ３０と通信を行うことで、第１マーカ５０を変更する指示を取得する。ヘッドマウントディスプレイ３０から取得する情報は、表示する第１マーカ５０を特定できる任意の情報である。例えばこの情報は、表示する第１マーカ５０を特定する ID や、第１マーカ５０の画像などである。
【００９３】
＜ユーザによる操作の検出について＞
インタフェース制御システム２０００は、ユーザによって操作画像６０が操作されたことを検出することで、ユーザによる入力操作を受け付ける。例えばユーザが、キーボードを表す操作画像６０における T のキーに対して操作を加えた場合、インタフェース制御システム２０００は、T のキーに対して操作が加えられたことを検出する。ここで、ユーザによる操作画像６０の操作をインタフェース制御システム２０００が検出する方法は任意である。この方法の具体的な例については、後述の実施形態で説明する。
【００９４】
＜操作画像６０に対する操作によって制御される対象について＞
ユーザは、操作画像６０に対して操作を行うことで種々の計算機を制御する。例えばユーザは、操作画像６０に対して操作を行うことで、ヘッドマウントディスプレイ３０で動作しているアプリケーションや OS（Operating System）など（以下、アプリケーション等）を操作する。また例えば、ユーザは、操作画像６０を操作することで、デバイス７０で動作しているアプリケーション等を制御する。また例えば、ユーザは、操作画像６０に対して操作を行うことで、PC やスマートフォンなどで動作するアプリケーション等を操作してもよい。さらに、ユーザは、操作画像６０に対して操作を行うことで、工場等の施設に設置された各種の機械を制御してもよい。なお、制御対象の計算機は、インタフェース制御システム２０００を実現する計算機１０００（図７参照）であってもよいし、その他の計算機であってもよい。後者の場合、制御対象となる各種計算機は、計算機１０００と通信可能に接続されている。例えばこれらの各種計算機は、入出力インタフェース１１００を介して計算機１０００と接続されている。
【００９５】
＜操作画像６０を用いたデバイス７０の操作について＞
上述したように、ユーザは、操作画像６０を操作することで、デバイス７０で動作しているアプリケーション等を制御してもよい。この場合、ユーザは、操作画像６０に対して操作を行うことで、表示画面７２に表示される第１マーカ５０を変更してもよい。
【００９６】
ここで、操作画像６０を表示する領域（ユーザの腕部など）は、デバイス７０の操作領域（表示画面７２やハードウエアボタンなどを配置する領域）と比較して広い。そのため、操作画像６０を用いてデバイス７０を操作できるようにすることで、ユーザがより広い操作領域でデバイス７０を操作できるようになる。よって、ユーザにとってデバイス７０の操作性が向上する。
【００９７】
［実施形態２］
図１４は、実施形態２に係るインタフェース制御システム２０００を例示するブロック図である。図１４において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態２のインタフェース制御システム２０００は、実施形態１のインタフェース制御システム２０００と同様の機能を有する。
【００９８】
実施形態２のインタフェース制御システム２０００は第１マーカ決定部２０８０を有する。第１マーカ決定部２０８０はデバイス７０の表示画面７２に表示する第１マーカ５０の形状、模様、又は色彩（以下、形状等）を決定する。そのために、第１マーカ決定部２０８０は、カメラ２０から得られる画像内の背景の特徴を抽出する。そして、第１マーカ決定部２０８０は、抽出した背景の特徴に基づいて、表示画面７２に表示する第１マーカ５０の形状等を決定する。なお、第１マーカ５０の形状は第１マーカ５０の外形を意味し、第１マーカ５０の模様は第１マーカ５０の内部の模様を意味する。
【００９９】
前述したように、第１マーカ検出部２０２０は、カメラ２０から得られる撮像画像に写っている第１マーカ５０を検出する。ここで、撮像画像の背景の特徴と第１マーカ５０の特徴が類似していると、これらの特徴が類似していない場合と比較し、撮像画像に写っている第１マーカ５０の検出等が難しくなる。例えば、撮像画像に写っている第１マーカ５０を第１マーカ検出部２０２０が検出できなかったり、第１マーカ５０の姿勢等を表示制御部２０４０が正しく算出できなかったりする。その結果、操作画像６０が表示されるべきタイミングで表示されなかったり、操作画像６０が不自然な位置や姿勢で表示されたりする可能性がある。このような状況を避けるために第１マーカ検出部２０２０や表示制御部２０４０がより詳細に撮像画像を解析するようにするという方法もとりうるが、第１マーカ５０の検出に多くの計算時間や計算機資源が必要となる。
【０１００】
そこで本実施形態の第１マーカ決定部２０８０は、カメラ２０から得られる撮像画像の背景の特徴を解析し、この特徴に応じて第１マーカ５０の形状等を決定する。これにより、撮像画像に写っている第１マーカ５０の検出等が行いやすくするという利点がある。
【０１０１】
以下、第１マーカ決定部２０８０の動作の詳細について説明する。
【０１０２】
＜第１マーカの色彩を決定する方法＞
第１マーカ決定部２０８０は、撮像画像内の背景の色彩の特徴を算出する。そして、第１マーカ決定部２０８０は、撮像画像内の背景の色彩の特徴に応じて、第１マーカ５０の色彩を決定する。例えば上記背景の色彩の特徴は、背景の色彩分布によって定まる。第１マーカ決定部２０８０は、背景の色彩分布を用いて、背景の色彩に利用されていない色彩領域を割り出す。そして、第１マーカ決定部２０８０は、この利用されていない色彩領域に含まれる色を用いて、第１マーカ５０の色彩を決定する。
【０１０３】
＜第１マーカ５０の形状及び模様を決定する方法＞
第１マーカ決定部２０８０は、撮像画像内の背景の模様の特徴を算出する。そして、第１マーカ決定部２０８０は、この模様の特徴に応じて、第１マーカ５０の形状又は模様を決定する。例えば、撮像画像内の背景の模様が直線を多く含む場合、第１マーカ決定部２０８０は、第１マーカ５０の形状を曲線で構成される形状（円形など）にするか、又は第１マーカ５０の模様を、曲線を多く含む模様（水玉模様など）にする。一方、撮像画像内の背景の模様が曲線を多く含む場合、第１マーカ決定部２０８０は、第１マーカ５０の形状を直線で構成される形状（四角形など）にするか、又は第１マーカ５０の模様を、直線を多く含む模様（格子模様など）にする。
【０１０４】
＜特徴の算出に用いる画像領域について＞
撮像画像のうち、背景の特徴の算出に利用する領域は、撮像画像全体であってもよいし、撮像画像の一部の領域であってもよい。後者の場合、例えば利用する領域は、第１マーカ５０の表示場所（例えばデバイス７０の表示画面７２）を含む所定の範囲である。第１マーカ５０の表示場所を含む所定の範囲は、例えば第１マーカ５０の表示場所の中心を中心とし、かつ所定長の半径を持つ円で表される領域である。この所定長は、第１マーカ５０の表示場所の大きさに依存しない絶対値で定義されていてもよいし、第１マーカ５０の表示場所の大きさとの相対値で定義されていてもよい。第１マーカ５０の表示場所や上記所定長を示す情報は、第１マーカ決定部２０８０に予め設定されていてもよいし、第１マーカ決定部２０８０からアクセス可能な記憶装置に記憶されていてもよい。なお、上記所定の範囲の形状は円に限定されない。
【０１０５】
＜決定した第１マーカ５０の特徴を利用する方法＞
第１マーカ決定部２０８０は、決定した特徴に基づいて、第１マーカ５０の生成又は取得を行う。前者の場合、所定の色彩、形状、及び模様を持つ画像を生成する技術には、既知の技術を利用できる。そのため、第１マーカ５０の生成方法の詳細な説明は省略する。第２表示制御部２０６０は、第１マーカ決定部２０８０によって生成された第１マーカ５０を表示画面７２に表示する。
【０１０６】
決定した特徴に基づいて第１マーカ５０を取得する場合、第１マーカ決定部２０８０は、複数用意されている第１マーカ５０の中から、決定した特徴に合致する第１マーカ５０を選択する。この場合、各第１マーカ５０は予め、その第１マーカ５０の色彩、形状、及び模様の特徴を示す情報と対応付けて記憶装置に記憶されている。図１５は、第１マーカ５０に関する情報をテーブル形式で例示する図である。図１５のテーブルを、第１マーカ情報３００と呼ぶ。第１マーカ情報３００は、ＩＤ３０２、色彩の特徴３０４、形状の特徴３０６、及び模様の特徴３０８を有する。ここでＩＤ３０２は、第１マーカ５０の ID を表す。第１マーカ決定部２０８０は、第１マーカ情報３００に示される第１マーカ５０の中から、撮像画像の背景の特徴に基づいて決定した特徴を持つ第１マーカ５０を選択する。第２表示制御部２０６０は、第１マーカ決定部２０８０によって選択された第１マーカ５０を表示画面７２に表示する。
【０１０７】
［実施形態３］
実施形態３に係るインタフェース制御システム２０００は、例えば実施形態１と同様に図１で表される。以下で説明する点を除き、実施形態３のインタフェース制御システム２０００は、実施形態１又は２のインタフェース制御システム２０００と同様である。
【０１０８】
実施形態３の表示制御部２０４０は、ヘッドマウントディスプレイ３０の表示画面３２上に第２マーカを表示する。そして、表示制御部２０４０は、ユーザの視界において第１マーカと第２マーカとが所定の位置関係にある場合に、操作画像の表示を行う。
【０１０９】
図１６は、表示画面３２上に表示される第２マーカ９０を例示する図である。ここで、第２マーカ９０の形状等は任意である。また第２マーカ９０は、第１マーカ５０と同じ形状等のマーカであってもよいし、異なる形状等のマーカであってもよい。
【０１１０】
上記所定の位置関係としては、任意の位置関係を定めることができる。例えばこの位置関係は、「第１マーカ５０と第２マーカ９０とが重なって見える」という位置関係や「第１マーカ５０と第２マーカ９０との間の距離が所定距離以下である」という位置関係である。図１７は、ユーザの視界において第１マーカ５０と第２マーカ９０とが重なった場合に操作画像６０が表示される様子を例示する図である。図１７（ａ）では、第１マーカ５０と第２マーカ９０とは重なっていないため、操作画像６０が表示されていない。一方、図１７（ｂ）では、ユーザが腕部を移動させた結果、第１マーカ５０と第２マーカ９０とが重なったため、操作画像６０が表示されている。
【０１１１】
以下、本実施形態のインタフェース制御システム２０００が行う処理を具体的に説明する。
【０１１２】
＜具体的な方法１＞
表示制御部２０４０は、撮像画像における第１マーカ５０の位置、表示画面３２における第２マーカ９０の位置、及び撮像画像上の座標と表示画面３２上の座標との対応関係（表示画面３２上の座標を撮像画像上の座標に変換する変換式など）に基づいて、ユーザの視界における第１マーカ５０と第２マーカ９０との位置関係を把握することができる。例えば表示制御部２０４０は、撮像画像上の座標と表示画面３２上の座標との対応関係を用いて、表示画面３２上における第２マーカ９０の位置を、撮像画像上の位置に変換する（第２マーカ９０を撮像画像上にマッピングする）。そして、表示制御部２０４０は、撮像画像における第１マーカ５０の位置と第２マーカ９０の位置とを用いて、これらの位置関係が所定の位置関係にあるか否かを判定する。
【０１１３】
なお、撮像画像上の座標と表示画面３２上の座標との対応関係は、カメラ２０に関する各種のパラメタ（画角や焦点距離）や、表示画面３２とカメラ２０との位置関係などに基づいて定まる。この対応関係は、これらのパラメタなどを用いて表示制御部２０４０によって算出されてもよいし、設定値として予め定められていてもよい。
【０１１４】
例えば表示制御部２０４０は、撮像画像上にマッピングした第２マーカ９０が第１マーカ５０と重なっている場合、操作画像６０を表示する。一方、これらが重なっていない場合、表示制御部２０４０は操作画像６０を表示しない。また例えば、表示制御部２０４０は、撮像画像上にマッピングした第２マーカ９０と第１マーカ５０との距離を算出する。そして、表示制御部２０４０は、この距離が所定値以下の場合に操作画像６０を表示し、この距離が所定値より大きい場合に操作画像６０を表示しない。この所定距離は予め表示制御部２０４０に設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。
【０１１５】
図１８は、実施形態２のインタフェース制御システム２０００が上記方法１において実行する処理の流れを例示するフローチャートである。図１８における各ステップのうち、図８に同符号のステップがあるものは、その同符号のステップと同様の処理を表す。
【０１１６】
撮像画像から第１マーカ５０が検出された後（Ｓ１０４：ＹＥＳ）、表示制御部２０４０は、表示画面３２上の第２マーカ９０の位置を撮像画像上の位置に変換する（Ｓ２０２）。表示制御部２０４０は、撮像画像における第１マーカ５０の位置と第２マーカ９０の位置が所定の位置関係にあるか否かを判定する（Ｓ２０４）。これらが所定の位置関係にある場合（Ｓ２０４：ＹＥＳ）、図１８の処理はＳ１０６に進む。一方、これらが所定の位置関係にない場合（Ｓ２０４：ＮＯ）、図１８の処理はＳ１０２に進む。
【０１１７】
なお、表示制御部２０４０は、第１マーカ５０の位置を表示画面３２の座標空間上の位置に変換することで、第１マーカ５０の位置と第２マーカ９０の位置との位置関係を把握してもよい。
【０１１８】
＜具体的な方法２＞
インタフェース制御システム２０００は、第１マーカ検出部２０２０が撮像画像から第１マーカ５０を検出する範囲を、第２マーカ９０を基準とする所定範囲に限定することで、第１マーカ５０と第２マーカ９０とが所定の位置関係にある場合にのみ操作画像６０が表示されるようにしてもよい。具体的にはまず第１マーカ検出部２０２０は、撮像画像に第１マーカ５０が写っているか否かの検出を行う前に、第２マーカ９０の位置を撮像画像上の位置に変換する。そして、第１マーカ検出部２０２０は、撮像画像に含まれる領域のうち、第２マーカ９０の位置を基準とする所定範囲内のみを対象として、第１マーカ５０の検出を行う。これにより、第２マーカ９０と第１マーカ５０とが所定の位置関係にある場合のみ、第１マーカ５０が検出される。この場合、表示制御部２０４０は、第１マーカ検出部２０２０によって第１マーカ５０が検出された場合に操作画像６０を表示する。
【０１１９】
図１９は、実施形態２のインタフェース制御システム２０００が上記方法２において実行する処理の流れを例示するフローチャートである。図１９における各ステップのうち、図１８に同符号のステップがあるものは、その同符号のステップと同様の処理を表す。撮像画像が取得された後（Ｓ１０２）、表示制御部２０４０は、表示画面３２上の第２マーカ９０の位置を撮像画像上の位置に変換する（Ｓ２０２）。第１マーカ検出部２０２０は、撮像画像における第２マーカ９０の位置を基準とした所定範囲内において、第１マーカ５０の検出を行う（Ｓ３０２）。この所定範囲内で第１マーカ５０が検出された場合（Ｓ３０２：ＹＥＳ）、図１９の処理はＳ１０６に進む。一方、この所定範囲内で第１マーカ５０が検出されなかった場合（Ｓ３０２：ＮＯ）、図１９の処理はＳ１０２に進む。
【０１２０】
＜変形例＞
表示制御部２０４０は、複数の第２マーカ９０を表示画面３２のそれぞれ異なる位置に表示してもよい。この場合、表示制御部２０４０は、第１マーカ５０と或る第２マーカ９０とが所定の位置関係になった場合に、その第２マーカ９０に応じた操作画像６０を表示してもよい。例えば表示制御部２０４０は、第１マーカ５０と第２マーカ９０−１とが所定の位置関係になった場合にキーボードを表す操作画像６０を表示し、第１マーカ５０と第２マーカ９０−２とが所定の位置関係になった場合にテンキーを表す操作画像６０を表示する。これにより、ユーザは、容易な方法で複数種類の操作画像６０を利用することができる。なお、第２マーカ９０と操作画像６０との対応関係は、予め表示制御部２０４０に設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。またこの場合、第２マーカ９０に、その第２マーカ９０に対応する操作画像６０の名称や略称などを含めることで、ユーザが第２マーカ９０と操作画像６０との対応関係を容易に把握できるようになる。
【０１２１】
＜ハードウエア構成例＞
例えば実施形態２のインタフェース制御システム２０００のハードウエア構成は、実施形態１のインタフェース制御システム２０００と同様に、図７で表される。本実施形態において、前述したストレージ１０８０に記憶される各プログラムモジュールには、本実施形態で説明する各機能を実現するプログラムがさらに含まれる。
【０１２２】
＜作用・効果＞
本実施形態のインタフェース制御システム２０００によれば、表示画面３２に第２マーカ９０が表示され、ユーザの視界において第１マーカ５０と第２マーカ９０とが所定の位置関係になった場合に、操作画像６０が表示される。よって、第１マーカ５０がユーザの視界に入った場合に常に操作画像６０が表示される形態と比較し、第１マーカ５０が視界に入る状態においても、ユーザが操作画像６０の操作以外の作業を容易に行えるようになる。
【０１２３】
［実施形態４］
図２０は、実施形態４に係るインタフェース制御システム２０００を例示するブロック図である。図２０において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態４のインタフェース制御システム２０００は、実施形態１から３いずれかのインタフェース制御システム２０００と同様である。
【０１２４】
実施形態４のインタフェース制御システム２０００は操作検出部２１００及び操作対象特定部２１２０を有する。操作検出部２１００は、ユーザが操作画像に対して操作を行ったことを検出する。操作対象特定部２１２０は、操作画像に操作対象が複数含まれる場合に、「ユーザがどの操作対象を操作したのか」を特定する。操作対象を複数含む操作画像は、例えばキーボードの画像である。この場合、操作対象は、各キーを表す画像である。
【０１２５】
＜操作検出部２１００が行う処理の詳細＞
＜＜検出方法１＞＞
操作検出部２１００は、ユーザの視界において操作画像に重畳する位置に操作体が配置されている場合に、操作画像に対して操作が行われたことを検出する。ここで、操作体とは、操作画像の操作に用いられるもの全般を意味する。操作体は、ユーザの身体の一部（例えば指など）であってもよいし、ユーザの身体以外のもの（例えばペンなど）であってもよい。
【０１２６】
操作検出部２１００は、カメラ２０から得られる撮像画像を解析し、ユーザの視界において操作画像６０が重畳されている領域に操作体が写っているか否かを判定する。そして、操作検出部２１００は、この領域に操作体が写っている場合に、操作画像６０が操作されたと判定する。ここで、操作検出部２１００は、撮像画像上における操作体及び操作画像６０の位置関係に基づいて、ユーザの視界において操作画像６０が重畳されている領域に操作体が写っているか否かを判定する。具体的には、操作検出部２１００は、撮像画像上における操作体の領域と、撮像画像上における操作画像６０の領域とが重なっている場合に、ユーザの視界において操作画像６０が重畳されている領域に操作体が写っていると判定する。
【０１２７】
ここで、実際には操作画像６０は撮像画像に写っていない。そこで操作検出部２１００は、表示制御部２０４０による操作画像６０の表示処理の過程で算出された、三次元の座標系８０における操作画像６０を、撮像画像の二次元平面にマッピングする処理を行うことで、撮像画像上における操作画像６０の領域を算出する。
【０１２８】
なお、操作検出部２１００は、操作画像６０が表示されているユーザの腕部以外の任意の物を操作体として扱ってもよいし、所定の物のみを操作体として扱ってもよい。後者の場合、操作検出部２１００は、撮像画像に含まれる領域の内、ユーザの視界において操作画像６０が重畳されている領域にユーザの腕部以外の任意の物体が写っている場合に、操作画像６０が操作されたと判定する。一方後者の場合、操作検出部２１００は、この領域に所定の操作体が写っているか否かを判定する。そして、操作検出部２１００は、この領域に所定の操作体が写っている場合に、操作画像６０が操作されたと判定する。なお、画像中の所定の領域に所定の物（所定の形状など）が写っていることを検出する技術には、既知のオブジェクト認識技術などを利用できる。そのため、この方法の詳細な説明は省略する。
【０１２９】
ここで、操作検出部２１００は、ユーザの指を操作体とする場合、指先の形状だけでなく、指及び手の甲の一部から成る形状を検出対象としてもよい。図２１は、検出対象とする指及び手の甲の一部から成る形状を例示する図である。図２１において、ドット柄で塗られた部分が、検出対象とする形状である。
【０１３０】
指及び手の甲の一部から成る形状は、右手の場合と左手の場合で異なる。また、ユーザが操作体として使う手は、操作画像６０が右の腕部に表示される場合には左手であり、操作画像６０が左の腕部に表示される場合には右手であることがわかる。そこで操作検出部２１００は、操作画像６０が表示されている腕部がどちらの腕部であるかに基づいて、検出すべき操作体の形状を決定する。例えば操作検出部２１００は、操作画像６０が左の腕部に表示されている場合、右手の指及び手の甲の一部の形状を、検出すべき操作体の形状とする。この方法によれば、操作画像６０の操作に用いられる手と反対の手を誤って操作体として検出することがなくなるため、操作体の誤検出を少なくすることができる。
【０１３１】
ここで、操作検出部２１００は、ユーザの視界において操作画像６０が重畳されている領域に操作体が所定時間以上継続して写っている場合のみ、操作画像６０が操作されたと判定してもよい。こうすることで、例えば操作体が操作画像６０の上を単に通過しただけの場合に、操作検出部２１００が「操作画像６０が操作された」と検出してしまうことを防ぐことができる。
【０１３２】
本方法の場合、後述する検出方法２及び３と比較し、振動を検出するためのセンサが不要であるという利点がある。
【０１３３】
＜＜検出方法２＞＞
操作検出部２１００は、ユーザの腕部に振動が加わった場合に、操作画像６０が操作されたと検出してもよい。この場合、ユーザの腕部には、振動を検出するためのセンサ（例えば加速度センサ）が取り付けられる。例えば操作検出部２１００は、このセンサによって所定の大きさ以上の衝撃が検出された場合に、操作画像６０が操作されたと検出する。この所定の大きさは、操作検出部２１００に予め設定されていてもよいし、操作検出部２１００からアクセス可能な記憶装置に記憶されていてもよい。
【０１３４】
ここでユーザが操作画像６０に対して加える操作は、例えば操作画像６０をタップする操作である。そこで操作検出部２１００は、腕部に対してタップによる振動が加えられた場合に、操作画像６０が操作されたと判定してもよい。この場合、操作検出部２１００は、センサの出力を解析し、タップによる振動を表す出力が検出された場合に、操作画像６０が操作されたと判定する。例えば操作検出部２１００は、センサの出力に所定の周波数以上の高周波成分が含まれている場合に、腕部がタップされたと判定する。この所定の周波数は、操作検出部２１００に予め設定されていてもよいし、操作検出部２１００からアクセス可能な記憶装置に記憶されていてもよい。
【０１３５】
上述した振動を検出するためのセンサは、例えばデバイス７０に設けられる。この場合、例えば操作検出部２１００はデバイス７０に設けられる。そして、操作画像６０が操作されたことを操作検出部２１００が検出した場合、デバイス７０はその旨をヘッドマウントディスプレイ３０に通知する。ただし、操作検出部２１００はデバイス７０の外部に設けられてもよい。この場合、操作検出部２１００はデバイス７０と通信を行って、センサの出力を示す情報を取得する。また上記センサは、デバイス７０の外部に設けられてもよい。
【０１３６】
上記センサは、ユーザの素肌に密着して設けられてもよいし、密着せずに設けられてもよい。例えばセンサがデバイス７０に設けられ、かつデバイス７０が服の上からユーザの腕部に取り付けられる場合、センサはユーザの素肌に密着せずに設けられる。
【０１３７】
この方法によれば、ユーザは腕部に振動を加えることで操作画像６０を操作するため、ユーザが、操作を行った際に触覚を通じて実感を伴ったフィードバックを得られるという利点がある。また、操作が行われた位置を、ユーザが触覚を通じて感覚的に認識・確認できるという利点がある。さらに、ユーザが操作画像６０の上に手をかざしただけでは操作画像６０が操作されたことにならず、ユーザが意図して腕部をタップ等しなければ、操作画像６０が操作されたことにならない。そのため、ユーザが意図していない入力が誤って検出されてしまう蓋然性が低くなるという利点もある。
【０１３８】
＜＜検出方法３＞＞
検出方法３において操作検出部２１００は、検出方法２と同様の方法で、ユーザの腕部に所定の振動が加えられたことを検出する。そして、ユーザの腕部に所定の振動が加えられたことが検出された場合、第２表示制御部２０６０が、表示画面７２に表示されている第１マーカ５０を変更する。次いで、操作検出部２１００が、カメラ２０から得られる撮像画像を解析することで、第１マーカ５０が変更されたか否かを判定する。そして、操作検出部２１００は、第１マーカ５０が変更された場合に、操作画像６０が操作されたと判定する。図２２は、操作画像６０がタップされた場合に第１マーカ５０が変更される様子を例示する図である。
【０１３９】
例えば、第１マーカ５０の画像として、通常時の画像と操作検出時の画像の２種類を用意しておく。そして、第２表示制御部２０６０は、ユーザの腕部に振動が加えられたことが検出された場合に、第１マーカ５０の画像を通常時の画像から操作検出時の画像に変更する。
【０１４０】
ここで、第２表示制御部２０６０は、第１マーカ５０の全体を変更してもよいし、第１マーカ５０の一部のみを変更してもよい。後者の場合、例えば第１マーカ５０は、操作画像６０の表示に利用するための第１の部分と、操作画像６０が操作されたことの検出に利用するための第２の部分という２つの部分で構成される。そして、第２表示制御部２０６０は、ユーザの腕部に所定の振動が加えられた場合、第１マーカ５０のうち、上記第２の部分を変更する。
【０１４１】
本方法には、検出方法２と同様の利点に加え、センサによって振動が検出されたことをヘッドマウントディスプレイ３０に伝えるための通信が不要であるという利点がある。そのため、ヘッドマウントディスプレイ３０やデバイス７０が通信機能を持つ必要がない。
【０１４２】
なお、前述した検出方法２や検出方法３で利用されるセンサは、振動センサに限定されない。例えばセンサは、圧力センサや静電容量センサでもよい。圧力センサや静電容量センサが設けられる場所は任意である。例えば圧力センサや静電容量センサは、デバイス７０の表示画面７２に設けられる。また例えば、圧力センサや静電容量センサは、ユーザの腕や手などに貼られたり巻き付けられたりするシートなどに設けられてもよい。また例えば、圧力センサや静電容量センサは、ユーザの衣服（服の袖など）に設けられてもよい。
【０１４３】
センサが静電容量センサである場合、ユーザは、センサが身に付けられている箇所に触れる。これにより、静電容量センサによって静電容量の変化が検出される。また例えば、センサが圧力センサである場合、ユーザは、センサが身に付けられている箇所に圧力を加える。これにより、圧力センサによって圧力が検出される。
【０１４４】
静電容量センサ又は圧力センサを用いる場合、前述した検出方法２や検出方法３における操作検出部２１００やデバイス７０は、ユーザによって腕部に振動が加えられたことが検出されたことに応じて行う処理を、静電容量センサによって所定値以上の静電容量の変化が検出されたことや、圧力センサによって所定値以上の圧力が検出されたことに応じて行う。
【０１４５】
なお、センサによる検出を行わせるための動作（振動を加える動作など）は、操作体によって行われてもよいし、操作体以外を用いて行われてもよい。
【０１４６】
＜＜操作検出部２１００が操作体の検出を行う領域について＞＞
操作検出部２１００は、操作体を検出する処理を、操作画像全体を対象として行ってもよいし、撮像画像の一部の領域を対象として行ってもよい。後者の場合、操作検出部２１００は、操作体の検出対象とする領域（以下、検出領域）を、操作画像に含まれる領域のうち、操作画像６０を操作する場合に操作体が位置すると考えられる領域に限定する。以下、その限定方法の具体例について述べる。
【０１４７】
＜＜限定方法１＞＞
操作検出部２１００は、撮像画像に含まれる領域のうち、表示制御部２０４０によって操作画像６０が表示されている領域を、検出領域とする。ここで、「撮像画像に含まれる領域のうち、表示制御部２０４０によって操作画像６０が表示されている領域」には、操作画像６０の表示処理の過程で表示制御部２０４０によって算出されたものを利用できる。なお、透過型のヘッドマウントディスプレイを用いる場合、操作画像６０は撮像画像上に表示されない。この場合、「撮像画像に含まれる領域のうち、表示制御部２０４０によって操作画像６０が表示されている領域」は、表示画面３２上における操作画像６０の領域が撮像画像上にマッピングされたものを意味する。
【０１４８】
＜＜限定方法２＞＞
操作検出部２１００は、撮像画像に写っている第１マーカ５０に基づいて、操作体の検出領域を決定する。操作画像６０が操作される際の操作体の位置は操作画像６０が表示される領域内であり、操作画像６０が表示される領域は第１マーカ５０に基づいて決定されるためである。
【０１４９】
例えばまず、操作検出部２１００は、実施形態１で説明した種々の方法により、第１マーカ５０がユーザの右の腕部と左の腕部のどちらに付されているかを把握する。そして操作検出部２１００は、第１マーカ５０がユーザの右の腕部と左の腕部のどちらにあるかを考慮して、検出領域を限定する。図２３は、第１マーカ５０がユーザの左の腕部にある場合における検出領域を例示する図である。検出領域１１０は、第１マーカ５０に基づいて定まる座標系８０における xy 平面であり、かつ x 方向の位置が座標系８０の原点を基準に負の方向の位置となっている。
【０１５０】
検出領域１１０において、x 方向の辺である辺１２０や y 方向の辺である辺１３０の長さは、例えば予め定められた所定の長さである。ただし操作検出部２１００は、辺１２０や辺１３０の長さを上記所定の長さに設定した後、これらの長さを徐々に短くしていくことで、検出領域１１０の大きさを徐々に狭くしていってもよい。具体的には、操作検出部２１００は、検出領域１１０に含まれる領域のうち、中心から遠い領域において所定期間以上操作体が検出されない場合に、検出領域１１０を狭くする。例えば検出領域１１０内の領域のうち、辺１３０を所定の長さ短くした場合に検出領域１１０に含まれなくなる領域が、所定期間操作されなかったとする。この場合、操作検出部２１００は、辺１３０を当該所定の長さ短くする。腕の大きさや太さには個人差があるため、操作検出部２１００は、検出領域１１０を徐々に狭くすることで、このような個人差に対処できる。なお、上記各所定の値は、操作検出部２１００に予め設定されていてもよいし、操作検出部２１００からアクセスできる記憶装置に記憶されていてもよい。
【０１５１】
インタフェース制御システム２０００によれば、第１マーカ５０を基準に操作画像６０の表示位置などが定まるため、上述のように第１マーカ５０を基準に操作体の検出領域を限定することができる。よって、操作体の検出領域を容易な方法で限定できる。また、操作体の検出領域を限定することで、操作体の検出に要する時間が短くなる。
【０１５２】
さらに、操作画像６０がユーザの腕部に表示される場合、上述のように限定される検出領域の背景は、ユーザの素肌や服の袖などとなる。そのため、一般的な景色が背景となる場合と比較し、背景の色や模様が単調となる。よって、操作体の検出が容易になる。
【０１５３】
＜操作対象特定部２１２０が行う処理の詳細＞
操作対象特定部２１２０は、複数の操作対象のうち、操作体が重畳されている操作対象を特定する。そして、操作対象特定部２１２０は、操作体が重畳されている操作対象を、操作が加えられた操作対象として特定する。
【０１５４】
図２４は、選択ボタンを表す操作画像６０が操作されている様子を例示する図である。図２４において、ユーザの指１００が NO の領域に重畳されている。そのため、操作対象特定部２１２０は、操作対象が NO のボタンであると特定する。
【０１５５】
ヘッドマウントディスプレイを利用するシステムの中には、腕部に加えられた振動を解析することで操作対象を特定するシステムもある。しかしこのようなシステムを利用する場合、「どの位置をタップした場合にどのような振動が検出されるか」という情報を予め得るためのキャリブレーションが必要となる。これに対し、操作対象特定部２１２０によれば、このようなキャリブレーションを行うことなく操作対象を特定できる。よって、インタフェース制御システム２０００をより容易に利用できるという利点がある。
【０１５６】
ここで、操作体が１つの操作対象のみに重畳されているとは限らず、複数の操作対象に重畳されている場合もある。図２５は、キーボードを表す操作画像６０が操作されている様子を平面視で例示する図である。図２５では、ユーザの手が複数のキーに重畳されている。この場合、「操作体が重畳されている」という条件のみでは操作対象を特定することができない。そこでこのような場合、操作対象特定部２１２０は、操作体が重畳されている複数の操作対象のうち、どの操作対象が操作されたのかを特定する。以下、この具体的な方法を例示する。
【０１５７】
＜＜特定方法１＞＞
操作対象特定部２１２０は、撮像画像に写っている操作体を表す領域を用いて、操作点を算出する。例えば操作点は指先やペン先などである。そして操作対象特定部２１２０は、操作点に重畳されている操作対象を、操作が加えられた操作対象として特定する。
【０１５８】
図２６は、操作点を用いて操作対象を特定する様子を例示する図である。図２６において、操作点は操作点１４０である。よって、操作対象特定部２１２０は、操作対象が T のキーであると特定する。
【０１５９】
ここで、操作対象特定部２１２０が操作点を算出する方法は様々である。例えば操作対象特定部２１２０は、撮像画像に写っている操作体を表す領域の重心を算出する。そして、操作対象特定部２１２０は、操作体を表す領域のうち、重心から最も遠い点を操作点とする。
【０１６０】
上述の方法によれば、例えば指先やペン先などが操作点となる。しかし、例えば指で腕部をタップすることで操作画像６０を操作する場合、指先ではなく指の腹で腕部をタップする場合もある。そこで操作対象特定部２１２０は、操作体の重心から最も遠い点を算出し、さらにこの点から少しずらした場所を操作点としてもよい。例えばこの場合、操作体の重心から最も遠い点と操作点との位置関係を予め定めておく。
【０１６１】
また例えば、操作体に対し、操作点を特定するためのマーカが付されていてもよい。この場合、操作対象特定部２１２０は、撮像画像を解析することで上記操作点を特定するためのマーカを検出し、その検出された位置を操作点とする。
【０１６２】
操作点を特定するマーカは、撮像画像における位置を特定できる任意のマーカである。操作点を特定するためのマーカとしてどのようなマーカを検出するのか（操作点を特定するためのマーカの形状など）を表す情報は、予め操作対象特定部２１２０に設定されていてもよいし、操作対象特定部２１２０からアクセス可能な記憶装置に記憶されていてもよい。
【０１６３】
操作点を特定するためのマーカは、操作体に直接付されてもよいし、操作体に取り付けられる物に付されていてもよい。後者の場合、例えばユーザは、操作点を特定するためのマーカが付された指輪を指にはめ、その指で操作画像６０を操作する。また、このマーカは、デバイス上に表示される画像であってもよい。例えばユーザは、マーカを表示する機能を有する指輪型のデバイスをはめて操作画像６０を操作する。
【０１６４】
＜＜特定方法２＞＞
操作対象特定部２１２０は、操作体が重畳されている複数の操作対象の相対的な位置関係に基づいて、操作された操作対象を特定する。例えば操作対象特定部２１２０は、操作体が重畳されている操作対象のうち、操作画像６０を平面視した場合に最も上にある操作対象を、操作された操作対象として特定する。例えば図２５や図２６のキーボードの例の場合、操作対象特定部２１２０は、操作体が重畳されている操作画像６０の内、最も上にある T のキーを、操作された操作対象として特定する。なお、図２５や図２６に示すような平面視の操作画像６０は、例えば撮像画像に含まれる操作画像６０の領域を切り出し、第１マーカ５０によって定まる座標系８０に基づいて座標変換することで得ることができる。
【０１６５】
ここで、操作対象特定部２１２０は、操作画像６０を平面視した場合の上方向が、操作画像におけるどの方向であるかを把握できる必要がある。この点、実施形態１で述べたように、表示制御部２０４０が操作画像６０を表示するために、撮像画像に写っている第１マーカ５０によって定まる座標系８０と操作画像６０の姿勢との関係が予め定められている。そのため、操作対象特定部２１２０は、この関係を利用することで、操作画像６０を平面視した場合の上方向が、操作画像においてどの方向であるかを把握することができる。実施形態１で説明した図１０の例では、操作画像６０を平面視した場合の上方向は、座標系８０の -y 方向である。
【０１６６】
また例えば、操作対象特定部２１２０は、操作画像６０が重畳されている腕部が左右どちらの腕部であるかによって、操作対象の特定方法を変えてもよい。具体的には、操作対象特定部２１２０は、操作画像６０が重畳されている腕部が左の腕部である場合、操作体が重畳されている操作対象のうち、操作画像６０を平面視した場合に最も左上にある操作対象を、操作された操作対象として特定する。操作画像６０が左の腕部に重畳されている場合、左の腕部を自然に構えると、操作画像６０を平面視した場合に左にある操作対象の方が、右にある操作対象よりも手前にある。この場合、手前にある操作対象に操作体を置くと、その操作対象の奥にある操作対象にも操作体が重畳される。一方、奥にある操作対象に操作体を置いても、その手前にある操作対象には操作体が重畳されない。そのため、操作画像６０を平面視した場合に最も左上にある操作対象が、操作された操作対象であると考えられる。
【０１６７】
同様の理由により、操作対象特定部２１２０は、操作画像６０が重畳されている腕部が右の腕部である場合、操作体が重畳されている操作対象のうち、操作画像６０を平面視した場合に最も右上にある操作対象を、操作された操作対象として特定する。
【０１６８】
ここで、操作体が重畳されている範囲が小さい操作対象（微かに指がかぶっているだけの操作対象など）は、たとえ最も上などにある操作対象であったとしても、操作された操作対象ではない可能性が高い。そのため操作対象特定部２１２０は、操作体が重畳されている操作対象のうち、その操作対象の所定割合以上（例えば５０％以上）の領域に操作体が重畳されている操作対象のみを対象として、上述した特定方法２の処理を行ってもよい。こうすることで、操作対象特定部２１２０が、微かに指などがかぶっているだけの操作対象などを誤って操作された操作対象として特定してしまうことを防ぐことができる。つまり、操作対象の特定精度が向上する。
【０１６９】
［実施形態５］
実施形態５に係るインタフェース制御システム２０００は、例えば実施形態１と同様に図１で表される。以下で説明する点を除き、実施形態５のインタフェース制御システム２０００は、実施形態１から４いずれかのインタフェース制御システム２０００と同様の機能を有する。
【０１７０】
実施形態５のインタフェース制御システム２０００は、操作画像６０に含まれる複数の操作対象の内、一部の操作対象のみを表示画面３２に表示する。図２７は、キーボードを表す操作画像６０の一部のキーのみが腕部に重畳される様子を例示する図である。図２７において、ユーザの腕部には、操作画像６０に含まれる複数のキーのうち、真ん中の行のキーのみが表示されている。
【０１７１】
このように操作画像６０に含まれる複数の操作対象の内の一部のみを表示するようにすることで、各操作対象をより大きく表示することができるようになる。これにより、ユーザにとって操作対象が操作しやすくなり、インタフェース制御システム２０００の操作性が向上するという利点がある。
【０１７２】
以下、本実施形態の表示制御部２０４０が行う具体的な処理について説明する。
【０１７３】
例えば、表示制御部２０４０は、操作画像６０を重畳させるユーザの腕部の姿勢を割り出し、その腕部の姿勢に応じた操作対象のみを表示する。ここで、ユーザの腕部の姿勢と、表示する操作対象との対応は予め定めておく。
【０１７４】
ユーザの腕部の姿勢を割り出す方法は様々である。例えば操作対象特定部２１２０は、撮像画像に写っている第１マーカ５０の姿勢を、ユーザの腕部の姿勢とする。また例えば、操作対象特定部２１２０は、ユーザの腕部に取り付けられたセンサを用いて、ユーザの腕部の姿勢を割り出す。例えばこのセンサは、実施形態４で説明した、ユーザの腕部に加えられた振動を検出するために利用される加速度センサなどである。
【０１７５】
第１マーカ５０の姿勢に応じて表示される操作対象を変更する例を、図２８及び図２９を用いて説明する。図２８及び図２９は、第１マーカ５０の姿勢に応じた操作対象が表示される様子を例示する図である。図２８において、第１マーカ５０の姿勢の z 方向は、ユーザの目の方を向いている。言い換えると、ユーザが、第１マーカ５０を正面から見ていると言える。そこで表示制御部２０４０は、操作画像６０が表すキーボードのうち、真ん中の行のキーを表示している。
【０１７６】
これに対し、図２９において、第１マーカ５０の姿勢の z 方向は、図２８の場合よりも上を向いている。言い換えると、ユーザが、第１マーカ５０を下の方から見上げていると言える。そこで表示制御部２０４０は、操作画像６０が表すキーボードのうち、下の列のキーを表示している。なお、同様に、第１マーカ５０の姿勢の z 方向が図２８の場合よりも下を向いている場合、表示制御部２０４０は操作画像６０が表すキーボードのうち、上の列のキーを表示する（図示せず）。
【０１７７】
図２８及び図２９の例における処理を実現するために、例えば、キーボードの各行に対して、ユーザの視線方向（撮像画像を平面視する方向）と第１マーカ５０の姿勢の z 方向とが成す角度の範囲を対応づけた情報を予め保持しておく。この情報は、表示制御部２０４０に予め設定されていてもよいし、表示制御部２０４０からアクセス可能な記憶装置に記憶されていてもよい。
【０１７８】
また例えば、操作対象特定部２１２０は、ヘッドマウントディスプレイ３０やデバイス７０に対して所定の操作が行われた場合に、その操作に応じて表示する操作対象を決定してもよい。上記所定の操作は、例えばヘッドマウントディスプレイ３０に備えられているボタンの押下や、デバイス７０の表示画面７２に対して行うタップ操作などである。
【０１７９】
なお、操作対象特定部２１２０は、常に一部の操作対象のみを表示してもよいし、一部の操作対象を表示するモードと全ての操作対象を表示するモードとが切り替え可能になっていてもよい。後者の場合、例えば操作対象特定部２１２０は、ヘッドマウントディスプレイ３０やデバイス７０に対して所定の操作が行われた場合に、上記モードの切り換えを行う。
【０１８０】
［実施形態６］
実施形態６に係るインタフェース制御システム２０００は、例えば実施形態１と同様に図１で表される。以下で説明する点を除き、実施形態６のインタフェース制御システム２０００は、実施形態１から５いずれかのインタフェース制御システム２０００と同様の機能を有する。
【０１８１】
実施形態６の表示制御部２０４０は、操作画像６０のうち、ユーザが操作画像６０を操作する手が重畳される部分に手の画像を合成して、操作画像６０を表示する。
【０１８２】
図３０は、操作画像６０に対して手の画像を合成しない場合において、ユーザの視界に写る操作画像６０及びその操作画像６０を操作するユーザの手を平面視で例示する図である。図３０の場合、ユーザの目から見ると、操作画像６０を操作する手の上に操作画像６０が重畳されているように見える。これに対し、実物のキーボードをユーザが扱う場合、ユーザの目には、キーボードの上に手が見え、手が置かれている部分のキーボードは手に隠れて見えない。このように、図３０の場合にユーザに見える様子は、実物のキーボードを扱う場合に見える様子と異なるため、ユーザによっては違和感を覚える可能性がある。
【０１８３】
図３１は、操作画像６０に対して手の画像（手画像１５０）を合成した場合において、ユーザの視界に写る操作画像６０及びその操作画像６０を操作するユーザの手を平面視で例示する図である。図３１の場合、実物のキーボードを扱った場合と同様に、キーボードの上に手が置かれているように見える。よって、図３０の場合と比較し、ユーザの目に写る様子がより自然なものとなり、ユーザにとって違和感が少なくなるという利点がある。
【０１８４】
ここで、操作画像６０に対して合成するユーザの手の画像は任意である。例えばこの画像は、人間の手を模した画像であってもよいし、ロボットの手などを模した画像であってもよい。また、操作画像６０に対して合成される画像は、手の一部であってもよい。例えば表示制御部２０４０は、操作に用いられている指（図３１では人差し指）に対してのみ、その指に重畳するように指の画像を合成する。
【０１８５】
なお、表示制御部２０４０は、操作画像６０に対して手の画像を合成する代わりに、操作画像６０のうち、操作画像６０を操作するユーザの手と重なっている部分を表示しないようにしてもよい。
【０１８６】
［実施形態７］
図３２は、実施形態７に係るインタフェース制御システム２０００を例示するブロック図である。図３２において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態７のインタフェース制御システム２０００は、実施形態１から６いずれかのインタフェース制御システム２０００と同様である。
【０１８７】
実施形態７のインタフェース制御システム２０００は、キャリブレーション部２１４０及び第２表示制御部２１８０を有する。キャリブレーション部２１４０は、操作体についてキャリブレーションを実行する。第２表示制御部２１８０については後述する。
【０１８８】
キャリブレーション部２１４０がキャリブレーションを行う前提として、カメラ２０によって生成される撮像画像において、特定の領域に操作体が写っているとする。キャリブレーション部２１４０は、撮像画像におけるその特定の領域について色相範囲を算出する。そしてキャリブレーション部２１４０は、算出された色相範囲を、操作体の色相範囲として色相範囲記憶部２１６０に記憶させる。なお色相範囲記憶部２１６０は、インタフェース制御システム２０００を実現する計算機１０００の内部に設けられてもよいし、計算機１０００の外部に設けられてもよい。
【０１８９】
実施形態７の操作検出部２１００又は操作対象特定部２１２０、及びこれらの双方は、撮像画像から操作体を検出する（撮像画像に操作体が写っているか否かの判定を行ったり、操作点の算出を行ったりする）際に、色相範囲記憶部２１６０に記憶されている操作体の色相範囲を利用する。ここで、操作体の検出には、例えば既知のオブジェクト認識の技術が利用できる。この際、撮像画像に対してオブジェクト認識を実行する前に、操作検出部２１００や操作対象特定部２１２０は、撮像画像から、操作体の色相範囲に含まれる領域のみを抽出する。そして、抽出された領域を対象にオブジェクト認識を行う。
【０１９０】
＜特定の領域に操作体が写るようにする方法＞
前述したように、キャリブレーション部２１４０がキャリブレーションを実行する際には、撮像画像の特定の領域に操作体が写っていることが前提となる。そのため、この特定の領域に操作体が写るようにする必要がある。
【０１９１】
そのために、インタフェース制御システム２０００は第２表示制御部２１８０を有する。第２表示制御部２１８０は、表示画面３２に、操作体を配置すべき領域を示すガイド画像を表示する。キャリブレーション部２１４０は、その後にカメラ２０によって生成された撮像画像を対象として、上述したキャリブレーションを実行する。操作体の色相範囲の算出対象となる、撮像画像上の上記特定の領域は、上記ガイド画像が示す「操作体を配置すべき領域」に対応する領域である。なお、撮像画像上の領域と表示画面３２上の領域との対応関係は、カメラ２０に関する各種のパラメタ（画角や焦点距離）や、表示画面３２とカメラ２０との位置関係などに基づいて定まる。この対応関係は、これらのパラメタなどを用いてキャリブレーション部２１４０によって算出されてもよいし、設定値として予め定められていてもよい。
【０１９２】
図３３は、表示画面３２に表示されるガイド画像を例示する第１の図である。図３３の例において、第２表示制御部２１８０は、表示画面３２上の所定の位置（例えば中心）にガイド画像１６０を表示させる。さらに第２表示制御部２１８０は、説明画像１７０をガイド画像１６０の付近に表示させる。説明画像１７０は、ユーザが行うべき行動を表す説明を含む画像である。インタフェース制御システム２０００のユーザは、ガイド画像１６０内に収まるように操作体（例えば指）を配置する。キャリブレーション部２１４０は、撮像画像においてガイド画像１６０に対応する領域について色相範囲を算出する。
【０１９３】
図３３の場合、ガイド画像１６０が表示される位置が固定であるため、撮像画像において色相範囲の算出対象となる領域も固定となる。
【０１９４】
図３４は、表示画面３２に表示されるガイドを例示する第２の図である。図３４の例では、ガイド画像１６０の位置及び説明画像１７０の位置及び姿勢が、第１マーカ５０の位置及び姿勢に対して相対的に定められている。
【０１９５】
図３４の場合、ガイド画像１６０が表示される位置が固定でないため、撮像画像において色相範囲の算出対象となる領域も固定でない。そこでキャリブレーション部２１４０は、キャリブレーションの対象となる撮像画像が生成された時点における、表示画面３２上のガイド画像１６０の位置に基づいて、その撮像画像において色相範囲の算出対象となる領域を算出する。
【０１９６】
＜キャリブレーションを行うタイミング＞
キャリブレーション部２１４０がキャリブレーションを行う時には、操作体が特定の領域に配置されている必要がある。ここで、キャリブレーション部２１４０は、操作体が特定の領域に配置されたことを検出してもよいし、検出しなくてもよい。前者の場合、例えばキャリブレーション部２１４０は、前述したセンサによる検出に基づいて、操作体が特定の領域に配置されたことを検出する。この場合、ユーザは、ガイド画像１６０によって示される位置に操作体を配置した状態で、センサによる検出が行われるような動作を行う。例えばセンサとして加速度センサが設けられている場合、ユーザは、ガイド画像１６０に示される場所に対してタップなどを行う。キャリブレーション部２１４０は、上記センサによる検出が行われたタイミング又はそれに近いタイミングで生成された撮像画像を対象としてキャリブレーションを実行する。
【０１９７】
キャリブレーション部２１４０は、操作体が特定の領域に配置されたことを検出せずに、キャリブレーションの実行を開始してもよい。例えばキャリブレーション部２１４０は、第２表示制御部２１８０によってガイド画像１６０が表示された時点から所定時間後に生成された撮像画像を取得し、その撮像画像を対象としてキャリブレーションを実行する。この場合、上記撮像画像を取得するまでの残り時間（キャリブレーションのための撮像を行うまでの残り時間）が、説明画像１７０に示されることが好適である。
【０１９８】
＜操作体の色相範囲について＞
キャリブレーション部２１４０は、キャリブレーション対象の撮像画像における特定の領域の色相に基づいて、操作体の色相範囲を算出する。例えばキャリブレーション部２１４０は、上記特定の領域に含まれる各画素の色相を算出し、算出された色相の統計値を用いて操作体の色相範囲を定める。例えばキャリブレーション部２１４０は、上記特定の領域に含まれる各画素の色相の平均値μ及び標準偏差σを算出し、「μ−ｋσ以上、μ＋ｋσ以下」の範囲を操作体の色相範囲とする。ここで、ｋは任意の実数である。
【０１９９】
図３５は、操作体の色相範囲を例示する第１の図である。スペクトル１８０はスペクトルを表し、ヒストグラム１９０は色相範囲の算出対象となる領域に含まれる色相のヒストグラムである。ヒストグラム１９０の x 軸は色相を表す。ヒストグラム１９０の y 軸は画素数を表す。なお描画の都合上、スペクトル１８０は白黒の２値で表されている。
【０２００】
＜背景のキャリブレーション＞
キャリブレーション部２１４０は、ユーザがインタフェース制御システム２０００を利用する際に操作体の背景となる領域（以下、背景領域）についても色相範囲を算出し、その色相範囲を用いて操作体の色相範囲を算出してもよい。具体的には、キャリブレーション部２１４０は、操作体の色相範囲を算出する方法と同様の方法で、背景領域の色相範囲を算出する。さらにキャリブレーション部２１４０は、操作体の色相範囲の算出対象である上記特定の領域について算出した色相範囲から、背景領域の色相範囲にも含まれている領域を排除する。キャリブレーション部２１４０は、この排除の結果残った色相範囲を操作体の色相範囲とする。
【０２０１】
図３６は、操作体の色相範囲を例示する第２の図である。色相範囲２００は、操作体が配置される領域について算出した色相範囲である。色相範囲２１０は、背景が配置される領域について算出した色相範囲である。キャリブレーション部２１４０は、色相範囲２００から色相範囲２１０を排除して残る色相範囲２２０を操作体の色相範囲とする。
【０２０２】
＜＜背景の色相範囲の算出方法＞＞
キャリブレーション部２１４０は、操作画像の特定の領域に背景が配置された状態で、背景についてのキャリブレーションを実行する。この特定の領域は、操作体が配置される領域と同じであってもよいし、異なってもよい。前者の場合、例えばキャリブレーション部２１４０は、まず特定の領域に操作体が配置された状態でキャリブレーションを行うことで第１の色相範囲（図３６の色相範囲２００）を算出する。次にキャリブレーション部２１４０は、その特定の領域に背景領域が配置された状態でキャリブレーションを行うことで第２の色相範囲を算出する（図３６の色相範囲２１０）。そしてキャリブレーション部２１４０は、第１の色相範囲から第２の色相範囲を除外することで、操作体の色相範囲を算出する（図３６の色相範囲２２０）。この場合、操作体の色相範囲の算出に、２つの撮像画像が必要となる。
【０２０３】
一方、操作体が配置される特定の領域と背景が配置される特定の領域が異なる場合、キャリブレーション部２１４０は、１つの撮像画像によって操作体の色相範囲を算出することができる。例えばキャリブレーション部２１４０は、ガイド画像１６０に含まれる一部の領域を、操作体が配置される領域として扱い、ガイド画像１６０に含まれるその他の領域を、背景が配置される領域として扱う。
【０２０４】
図３７は、ガイド画像１６０を例示する図である。図３６において、ガイド画像１６０は、指の形状を表す部分（領域１６２）及びそれ以外の部分（領域１６４）を含む。キャリブレーション部２１４０は、領域１６２の色相に基づいて操作体の色相範囲を算出し、領域１６４の色相に基づいて背景領域の色相範囲を算出する。そして、キャリブレーション部２１４０は、領域１６２について算出した色相範囲から、領域１６４について算出した色相範囲を排除することで、最終的な操作体の色相範囲を算出する。
【０２０５】
＜ハードウエア構成例＞
例えば実施形態７のインタフェース制御システム２０００のハードウエア構成は、実施形態１のインタフェース制御システム２０００と同様に、図７で表される。本実施形態において、前述したストレージ１０８０に記憶される各プログラムモジュールには、本実施形態で説明する各機能を実現するプログラムがさらに含まれる。
【０２０６】
＜作用・効果＞
本実施形態によれば、操作体の色相範囲を予め算出しておくキャリブレーションが行われ、その後のユーザによる入力操作において、操作体の検出が上記色相範囲を用いて行われる。こうすることで、操作体の算出を精度よく、なおかつ容易に行うことができるようになる。
【０２０７】
本実施形態のインタフェース制御システム２０００によるキャリブレーションが特に有用な状況の例として、インタフェース制御システム２０００が利用される場所が複数存在する状況がある。一般に、場所ごとに照明の色などが違うため、たとえユーザがそれらの場所で同じ操作体（例えばユーザの指）を利用したとしても、撮像画像に写る操作体の色相は場所ごとに異なることがある。このような場合、ユーザは、インタフェース制御システム２０００を利用する場所ごとに操作体についてキャリブレーションを行う。こうすることで、インタフェース制御システム２０００を利用する場所が変化しても、操作体の精度よく算出することができる。
【０２０８】
また、本実施形態のインタフェース制御システム２０００は、背景についてのキャリブレーションを行うことで、操作体の色相範囲から背景領域の色相範囲を除いてもよい。このようにすることで、撮像画像に含まれる領域から、背景の色相範囲に含まれる色相を持つ領域を除外した上で、操作体を検出するためのオブジェクト認識などを実行することができる。こうすることで、操作体の検出をさらに精度よく、かつ容易に行うことができるようになる。
【０２０９】
＜変形例＞
実施形態７のインタフェース制御システム２０００が実行するキャリブレーションは、背景の色相範囲の算出のみであってもよい。この場合、操作検出部２１００や操作対象特定部２１２０は、背景領域の色相範囲に含まれる色相を有する領域を撮像画像から除外し、残った領域に対してオブジェクト認識などを行うことで操作体を検出する。こうすることで、操作体の周囲の領域である背景領域が撮像画像から除外されるため、操作体を精度よくかつ容易に検出することができるようになる。
【０２１０】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【０２１１】
以下、参考形態の例を付記する。
１．  ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出手段と、
前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出手段によって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御手段と、
前記ユーザによって前記操作画像が操作されたことを判定する操作検出手段と、
を有するインタフェース制御システム。
２．  前記検出手段は、前記第１マーカを検出することにより、前記第１マーカの位置、大きさ、又は姿勢を特定し、
前記表示制御手段は、前記検出手段によって特定された前記第１マーカの位置、大きさ、又は姿勢に基づいて、前記ヘッドマウントディスプレイの表示画面における前記操作画像の位置、大きさ、又は姿勢を決定する、
１．に記載のインタフェース制御システム。
３．  前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である、１．又は２．に記載のインタフェース制御システム。
４．  前記表示制御手段は、前記カメラから得られる画像に写っている前記第１マーカの種類に基づいて、表示する前記操作画像を決定する、１．乃至３．いずれか一つに記載のインタフェース制御システム。
５．  前記デバイスに対するユーザ操作に応じて、前記デバイスの表示画面上に表示される第１マーカの種類を切り替える第２表示制御手段を更に有し、
前記検出手段は、前記カメラから得られる画像から検出された前記第１マーカの種類を特定し、
前記表示制御手段は、表示されている操作画面を、前記特定された第１マーカの種類に対応する操作画面に切り替える、３．に記載のインタフェース制御システム。
６．  前記表示制御手段は、前記ユーザが前記操作画像に対して行った操作に基づいて、表示する前記操作画像を変更する、１．乃至５．いずれか一つに記載のインタフェース制御システム。
７．  前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
前記カメラから得られる画像内の背景の特徴を抽出し、前記抽出した特徴に基づいて、前記デバイスの表示画面上に表示される第１マーカの形状、模様、又は色彩を決定する第１マーカ決定手段を有する、１．乃至６．いずれか一つに記載のインタフェース制御システム。
８．  前記表示制御手段は、
前記ヘッドマウントディスプレイの表示画面上に第２マーカを表示し、
前記ヘッドマウントディスプレイを介して前記ユーザに視認される前記第１マーカと前記第２マーカの位置関係が所定の位置関係になった場合に前記操作画像を表示する、１．乃至７．いずれか一つに記載のインタフェース制御システム。
９．  前記検出手段は、前記ヘッドマウントディスプレイの表示画面上の一部の所定位置に表示される前記第２マーカに対応する部分領域を対象に前記第１マーカを検出する、
８．に記載のインタフェース制御システム。
１０．  前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記デバイスの表示画面上に所定の表示を行う第２表示制御手段を有し、
前記操作検出手段は、前記カメラによって前記所定の表示が撮像された場合に、前記ユーザによって前記操作画像が操作されたと判定する、１．乃至９．いずれか一つに記載のインタフェース制御システム。
１１．  前記操作検出手段は、ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、１．乃至９．いずれか一つに記載のインタフェース制御システム。
１２．  前記操作検出手段は、前記カメラから得られる画像に含まれる領域のうち、前記第１マーカに基づいて定まる一部の領域について操作体の検出を行い、前記一部の領域において操作体が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、１．乃至９．いずれか一つに記載のインタフェース制御システム。
１３．  前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、所定割合以上の面積が前記ユーザの手と重なっている操作対象の中から、前記ユーザによって操作された操作対象として決定する操作対象特定手段を有する、１．乃至１２．いずれか一つに記載のインタフェース制御システム。
１４．  前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、最も左上又は最も右上の操作対象を、前記ユーザによって操作された操作対象として決定する操作対象特定手段を有する、１．乃至１３．いずれか一つに記載のインタフェース制御システム。
１５．  前記表示制御手段は、前記ヘッドマウントディスプレイを介して前記ユーザによって視認される前記操作画像とその操作画像を操作する前記ユーザの手が重なる場合、前記ユーザの手がある位置に手の画像を重畳させた操作画像を、前記ヘッドマウントディスプレイの表示画面上に表示する、１．乃至１４．いずれか一つに記載のインタフェース制御システム。
１６．  前記表示制御手段は、前記ユーザの身体の姿勢に応じて、前記操作画像の一部のみを表示する、１．乃至１５．いずれか一つに記載のインタフェース制御システム。
１７．  １．乃至１６．いずれか一つに記載の各手段を有するインタフェース制御装置。
１８．  コンピュータによって実行されるインタフェース制御方法であって、
ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出ステップと、
前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出ステップによって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御ステップと、
前記ユーザによって前記操作画像が操作されたことを判定する操作検出ステップと、
を有するインタフェース制御方法。
１９．  前記検出ステップは、前記第１マーカを検出することにより、前記第１マーカの位置、大きさ、又は姿勢を特定し、
前記表示制御ステップは、前記検出ステップによって特定された前記第１マーカの位置、大きさ、又は姿勢に基づいて、前記ヘッドマウントディスプレイの表示画面における前記操作画像の位置、大きさ、又は姿勢を決定する、
１８．に記載のインタフェース制御方法。
２０．  前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である、１８．又は１９．に記載のインタフェース制御方法。
２１．  前記表示制御ステップは、前記カメラから得られる画像に写っている前記第１マーカの種類に基づいて、表示する前記操作画像を決定する、１８．乃至２０．いずれか一つに記載のインタフェース制御方法。
２２．  前記デバイスに対するユーザ操作に応じて、前記デバイスの表示画面上に表示される第１マーカの種類を切り替える第２表示制御ステップを更に有し、
前記検出ステップは、前記カメラから得られる画像から検出された前記第１マーカの種類を特定し、
前記表示制御ステップは、表示されている操作画面を、前記特定された第１マーカの種類に対応する操作画面に切り替える、２０．に記載のインタフェース制御方法。
２３．  前記表示制御ステップは、前記ユーザが前記操作画像に対して行った操作に基づいて、表示する前記操作画像を変更する、１８．乃至２２．いずれか一つに記載のインタフェース制御方法。
２４．  前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
前記カメラから得られる画像内の背景の特徴を抽出し、前記抽出した特徴に基づいて、前記デバイスの表示画面上に表示される第１マーカの形状、模様、又は色彩を決定する第１マーカ決定ステップを有する、１８．乃至２３．いずれか一つに記載のインタフェース制御方法。
２５．  前記表示制御ステップは、
前記ヘッドマウントディスプレイの表示画面上に第２マーカを表示し、
前記ヘッドマウントディスプレイを介して前記ユーザに視認される前記第１マーカと前記第２マーカの位置関係が所定の位置関係になった場合に前記操作画像を表示する、１８．乃至２４．いずれか一つに記載のインタフェース制御方法。
２６．  前記検出ステップは、前記ヘッドマウントディスプレイの表示画面上の一部の所定位置に表示される前記第２マーカに対応する部分領域を対象に前記第１マーカを検出する、
２５．に記載のインタフェース制御方法。
２７．  前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記デバイスの表示画面上に所定の表示を行う第２表示制御ステップを有し、
前記操作検出ステップは、前記カメラによって前記所定の表示が撮像された場合に、前記ユーザによって前記操作画像が操作されたと判定する、１８．乃至２６．いずれか一つに記載のインタフェース制御方法。
２８．  前記操作検出ステップは、ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、１８．乃至２６．いずれか一つに記載のインタフェース制御方法。
２９．  前記操作検出ステップは、前記カメラから得られる画像に含まれる領域のうち、前記第１マーカに基づいて定まる一部の領域について操作体の検出を行い、前記一部の領域において操作体が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、１８．乃至２６．いずれか一つに記載のインタフェース制御方法。
３０．  前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、所定割合以上の面積が前記ユーザの手と重なっている操作対象の中から、前記ユーザによって操作された操作対象として決定する操作対象特定ステップを有する、１８．乃至２９．いずれか一つに記載のインタフェース制御方法。
３１．  前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、最も左上又は最も右上の操作対象を、前記ユーザによって操作された操作対象として決定する操作対象特定ステップを有する、１８．乃至３０．いずれか一つに記載のインタフェース制御方法。
３２．  前記表示制御ステップは、前記ヘッドマウントディスプレイを介して前記ユーザによって視認される前記操作画像とその操作画像を操作する前記ユーザの手が重なる場合、前記ユーザの手がある位置に手の画像を重畳させた操作画像を、前記ヘッドマウントディスプレイの表示画面上に表示する、１８．乃至３１．いずれか一つに記載のインタフェース制御方法。
３３．  前記表示制御ステップは、前記ユーザの身体の姿勢に応じて、前記操作画像の一部のみを表示する、１８．乃至３２．いずれか一つに記載のインタフェース制御方法。
３４．  １８．乃至３３．いずれか一つに記載の各ステップをコンピュータに実行させるプログラム。
【０２１２】
この出願は、２０１５年５月２１日に出願された日本出願特願２０１５−１０３９０５号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2016185845.tif 000003
【図２】
2016185845.tif 000004
【図３】
2016185845.tif 000005
【図４】
2016185845.tif 000006
【図５】
2016185845.tif 000007
【図６】
2016185845.tif 000008
【図７】
2016185845.tif 000009
【図８】
2016185845.tif 000010
【図９】
2016185845.tif 000011
【図１０】
2016185845.tif 000012
【図１１】
2016185845.tif 000013
【図１２】
2016185845.tif 000014
【図１３】
2016185845.tif 000015
【図１４】
2016185845.tif 000016
【図１５】
2016185845.tif 000017
【図１６】
2016185845.tif 000018
【図１７】
2016185845.tif 000019
【図１８】
2016185845.tif 000020
【図１９】
2016185845.tif 000021
【図２０】
2016185845.tif 000022
【図２１】
2016185845.tif 000023
【図２２】
2016185845.tif 000024
【図２３】
2016185845.tif 000025
【図２４】
2016185845.tif 000026
【図２５】
2016185845.tif 000027
【図２６】
2016185845.tif 000028
【図２７】
2016185845.tif 000029
【図２８】
2016185845.tif 000030
【図２９】
2016185845.tif 000031
【図３０】
2016185845.tif 000032
【図３１】
2016185845.tif 000033
【図３２】
2016185845.tif 000034
【図３３】
2016185845.tif 000035
【図３４】
2016185845.tif 000036
【図３５】
2016185845.tif 000037
【図３６】
2016185845.tif 000038
【図３７】
2016185845.tif 000039
【手続補正書】
【提出日】平成29年11月16日(2017.11.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出手段と、
前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出手段によって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御手段と、
前記ユーザによって前記操作画像が操作されたことを判定する操作検出手段と、
を有し、
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である、インタフェース制御システム。
【請求項２】
前記検出手段は、前記第１マーカを検出することにより、前記第１マーカの位置、大きさ、又は姿勢を特定し、
前記表示制御手段は、前記検出手段によって特定された前記第１マーカの位置、大きさ、又は姿勢に基づいて、前記ヘッドマウントディスプレイの表示画面における前記操作画像の位置、大きさ、又は姿勢を決定する、
請求項１に記載のインタフェース制御システム。
【請求項３】
前記表示制御手段は、前記カメラから得られる画像に写っている前記第１マーカの種類に基づいて、表示する前記操作画像を決定する、請求項１又は２に記載のインタフェース制御システム。
【請求項４】
前記デバイスに対するユーザ操作に応じて、前記デバイスの表示画面上に表示される第１マーカの種類を切り替える第２表示制御手段を更に有し、
前記検出手段は、前記カメラから得られる画像から検出された前記第１マーカの種類を特定し、
前記表示制御手段は、表示されている操作画面を、前記特定された第１マーカの種類に対応する操作画面に切り替える、請求項１乃至３いずれか一項に記載のインタフェース制御システム。
【請求項５】
前記表示制御手段は、前記ユーザが前記操作画像に対して行った操作に基づいて、表示する前記操作画像を変更する、請求項１乃至４いずれか一項に記載のインタフェース制御システム。
【請求項６】
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
前記カメラから得られる画像内の背景の特徴を抽出し、前記抽出した特徴に基づいて、前記デバイスの表示画面上に表示される第１マーカの形状、模様、又は色彩を決定する第１マーカ決定手段を有する、請求項１乃至５いずれか一項に記載のインタフェース制御システム。
【請求項７】
前記表示制御手段は、
前記ヘッドマウントディスプレイの表示画面上に第２マーカを表示し、
前記ヘッドマウントディスプレイを介して前記ユーザに視認される前記第１マーカと前記第２マーカの位置関係が所定の位置関係になった場合に前記操作画像を表示する、請求項１乃至６いずれか一項に記載のインタフェース制御システム。
【請求項８】
前記検出手段は、前記ヘッドマウントディスプレイの表示画面上の一部の所定位置に表示される前記第２マーカに対応する部分領域を対象に前記第１マーカを検出する、
請求項７に記載のインタフェース制御システム。
【請求項９】
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像であり、
ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記デバイスの表示画面上に所定の表示を行う第２表示制御手段を有し、
前記操作検出手段は、前記カメラによって前記所定の表示が撮像された場合に、前記ユーザによって前記操作画像が操作されたと判定する、請求項１乃至８いずれか一項に記載のインタフェース制御システム。
【請求項１０】
前記操作検出手段は、ユーザの腕部の振動を検出するセンサによって所定の振動が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、請求項１乃至８いずれか一項に記載のインタフェース制御システム。
【請求項１１】
前記操作検出手段は、前記カメラから得られる画像に含まれる領域のうち、前記第１マーカに基づいて定まる一部の領域について操作体の検出を行い、前記一部の領域において操作体が検出された場合に、前記ユーザによって前記操作画像が操作されたと判定する、請求項１乃至８いずれか一項に記載のインタフェース制御システム。
【請求項１２】
前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、所定割合以上の面積が前記ユーザの手と重なっている操作対象の中から、前記ユーザによって操作された操作対象として決定する操作対象特定手段を有する、請求項１乃至１１いずれか一項に記載のインタフェース制御システム。
【請求項１３】
前記操作画像に複数の操作対象が含まれ、前記操作画像に対して操作を行う前記ユーザの手が複数の操作対象と重なっている場合、それら複数の操作対象の内、最も左上又は最も右上の操作対象を、前記ユーザによって操作された操作対象として決定する操作対象特定手段を有する、請求項１乃至１２いずれか一項に記載のインタフェース制御システム。
【請求項１４】
前記表示制御手段は、前記ヘッドマウントディスプレイを介して前記ユーザによって視認される前記操作画像とその操作画像を操作する前記ユーザの手が重なる場合、前記ユーザの手がある位置に手の画像を重畳させた操作画像を、前記ヘッドマウントディスプレイの表示画面上に表示する、請求項１乃至１３いずれか一項に記載のインタフェース制御システム。
【請求項１５】
前記表示制御手段は、前記ユーザの身体の姿勢に応じて、前記操作画像の一部のみを表示する、請求項１乃至１４いずれか一項に記載のインタフェース制御システム。
【請求項１６】
請求項１乃至１５いずれか一項に記載の各手段を有するインタフェース制御装置。
【請求項１７】
コンピュータによって実行されるインタフェース制御方法であって、
ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出ステップと、
前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出ステップによって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御ステップと、
前記ユーザによって前記操作画像が操作されたことを判定する操作検出ステップと、
を有し、
前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である、インタフェース制御方法。
【請求項１８】
請求項１７に記載の各ステップをコンピュータに実行させるプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明のインタフェース制御システムは、ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの身体に取り付けられた第１マーカを検出する検出手段と、前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出手段によって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御手段と、前記ユーザによって前記操作画像が操作されたと判定する操作検出手段と、を有する。前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明のインタフェース制御方法は、コンピュータによって実行されるインタフェース制御方法である。当該インタフェース制御方法は、ユーザに身につけられたカメラから得られる画像に基づいて、前記ユーザの腕部に取り付けられた第１マーカを検出する検出ステップと、前記ユーザの身体に重畳されて前記ユーザに視認されるように、前記検出ステップによって検出された前記第１マーカに基づいて、前記ユーザによって装着されるヘッドマウントディスプレイの表示画面上に操作画像を表示する表示制御ステップと、前記ユーザによって前記操作画像が操作されたと判定する操作検出ステップと、を有する。前記第１マーカは、前記ユーザの腕部に取り付けられるデバイスの表示画面上に表示される画像である。
【国際調査報告】
2016185845.tif 000040
2016185845.tif 000041
2016185845.tif 000042
2016185845.tif 000043