(57)【要約】【課題】使用者に対して表示が見やすいタッチＧＵＩを可能とするＨＭＤタイプの情報処理端末等を提供する。【解決手段】本発明の情報処理端末は、使用者の頭部前方の映像を撮像する撮像手段と、現実世界の光景に仮想オブジェクトの画像を重畳して表示する表示手段と、現実世界の実在のオブジェクトに対する使用者のタッチを認識するタッチ認識手段と、情報処理手段とを有している。前記情報処理手段は、前記表示手段により現実世界の実在オブジェクトに重畳してタッチ操作のためのグラフィカル・ユーザー・インターフェースを表示させる。前記タッチ認識手段により前記実在オブジェクトに対する使用者のタッチを認識したとき、前記実在オブジェクトに重畳表示している前記グラフィカル・ユーザー・インターフェースへのタッチ操作があったものと判定する。【選択図】図１
2015203889.tif 000002
【特許請求の範囲】
【請求項１】
使用者の頭部前方の映像を撮像する撮像手段と、
現実世界の光景に仮想オブジェクトの画像を重畳して表示する表示手段と、
現実世界の実在のオブジェクトに対する使用者のタッチを認識するタッチ認識手段と、
前記表示手段により現実世界の実在オブジェクトに重畳してタッチ操作のためのグラフィカル・ユーザー・インターフェースを表示させる制御手段と、
前記タッチ認識手段により前記実在オブジェクトに対する使用者のタッチを認識したとき、前記実在オブジェクトに重畳表示している前記グラフィカル・ユーザー・インターフェースへのタッチ操作があったものと判定する判定手段と、
を有することを特徴とする情報処理端末。
【請求項２】
前記制御手段は、
前記表示手段により現実世界の実在オブジェクトに重畳して使用者によるタッチを促す表示をさせ、
前記タッチ認識手段により前記実在オブジェクトに対する使用者のタッチを認識したとき、その認識したタッチ位置に基づきグラフィカル・ユーザー・インターフェースの表示位置を決定する
ことを特徴とする請求項１に記載の情報処理端末。
【請求項３】
前記表示手段は、
複数のキーを配置したキーボードを表示するキーボード表示手段を備え、
前記タッチ認識手段は、
前記表示したキーボードに対する使用者のタッチを認識し、当該タッチ位置に対応するキーのキーコードより文字列を生成する文字列生成手段を備え、
前記判定手段は、
前記生成された文字列が、意味を有する有意味文字列か、意味を有しない無意味文字列かを判定する意味判定手段と、
無意味文字列と判定された文字列に含まれる各文字を、それぞれ前記キーボード上で所定のシフト量だけずらして得られる１以上の修正候補文字列を生成する修正候補生成手段と、
前記生成された修正候補文字列が有意味文字列となるときのシフト量に応じて、前記キーボードの、各キーに対応するタッチ位置の割り当てを変更するタッチ位置割り当て変更手段と
を有することを特徴とする、請求項２に記載の情報処理端末。
【請求項４】
使用者の頭部前方の映像を撮像する撮像手段と、実世界の光景に仮想オブジェクトの画像を重畳して表示する表示手段と、現実世界の実在のオブジェクトに対する使用者のタッチを認識するタッチ認識手段とを有する情報処理端末における情報処理方法であって、
前記表示手段により現実世界の実在オブジェクトに重畳してタッチ操作のためのグラフィカル・ユーザー・インターフェースを表示させる制御工程と、
前記タッチ認識手段により前記実在オブジェクトに対する使用者のタッチを認識したとき、前記実在オブジェクトに重畳表示している前記グラフィカル・ユーザー・インターフェースへのタッチ操作があったものと判定する判定工程と、
を有することを特徴とする情報処理方法。
【請求項５】
コンピュータを、請求項１乃至３の何れか１項に記載の情報処理端末が有する各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、使用者の頭部に装着し、現実世界の光景に重畳してグラフィックス表示を行う、いわゆる拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）表示用のヘッドマウントディスプレイ等の情報処理端末等に関する。
【背景技術】
【０００２】
スマートフォン等の近年の情報処理端末で、表示部とタッチ入力部とを一体に構成したタッチ・ディスプレイを備えている。このような情報処理端末では、このタッチ・ディスプレイにより、機能や設定を表示するグラフィカル・ユーザー・インターフェース（以下、「ＧＵＩ」という）を使用者がタッチして指示する「タッチＧＵＩ」が、さまざまな利点を有して、一般的である。
【０００３】
一方、ヘッドマウントディスプレイ（Ｈｅａｄ  Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ  以下、「ＨＭＤ」という）では、使用者が表示部を頭部に装着するため、表示部とタッチ入力部を一体に構成することができず、タッチ・ディスプレイを採用することができない。
【０００４】
そこで、ＨＭＤでタッチＧＵＩを使用するために、たとえば特許文献１が開示する技術のように、腕や手等の現実のオブジェクト上にＧＵＩをプロジェクション投影し、その投影されたＧＵＩへのタッチを検知する方法等が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１３／００１６０７０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、腕や手等の現実のオブジェクト上にＧＵＩをプロジェクション表示する場合は、オブジェクトの反射率や周辺環境の明るさ等により、表示が見難くなることがある。また、プロジェクションの投影範囲内に、投影のターゲットとした腕や手等の特定のオブジェクトが確実に存在していなければならない。
【０００７】
本発明は、こうした従来技術における課題に鑑みてなされたものであり、使用者に対して表示が見やすいタッチＧＵＩを可能とするＨＭＤタイプの情報処理端末等を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、使用者の頭部前方の映像を撮像する撮像手段と、現実世界の光景に仮想オブジェクトの画像を重畳して表示する表示手段と、現実世界の実在のオブジェクトに対する使用者のタッチを認識するタッチ認識手段と、情報処理手段とを備えている。前記情報処理手段は、前記表示手段により現実世界の実在オブジェクトに重畳してタッチ操作のためのグラフィカル・ユーザー・インターフェースを表示させる。また、前記情報処理手段は、前記タッチ認識手段により前記実在オブジェクトに対する使用者のタッチを認識したとき、前記実在オブジェクトに重畳表示している前記グラフィカル・ユーザー・インターフェースへのタッチ操作があったものと判定する。
【発明の効果】
【０００９】
本発明により、使用者に対して表示が見やすいタッチＧＵＩを可能とするＨＭＤタイプの情報処理端末等が実現する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態１に係るＨＭＤ１００の外観を示す図である。
【図２】本実施形態のＨＭＤの構成例を示すブロック図である。
【図３】本実施形態のＨＭＤにおける判断・処理の流れを示すフローチャートである。
【図４】本発明の実施形態２に係るＨＭＤにおける判断・処理の流れを示すフローチャートである。
【図５Ａ】本実施形態のＨＭＤが、現実世界の実在オブジェクトに重畳して使用者によるタッチを促す表示をした様子を模式的に表した図である。
【図５Ｂ】本実施形態のＨＭＤが、当該実在オブジェクトに対する使用者のタッチを認識したとき、その認識したタッチ位置に基づきグラフィカル・ユーザー・インターフェースの表示位置を決定する様子を模式的に表した図である。
【図６Ａ】本発明の実施形態３に係る情報処理端末の一例としてのＨＭＤが、実在のオブジェクトに重畳してキーボードを拡張現実表示し、使用者のタッチを認識した様子を模式的に表した図である。
【図６Ｂ】本実施形態のＨＭＤが、当該タッチにより生成された文字列を無意味文字列として判定したとき、各キーに対応するタッチ位置の割り当てを変更する様子を模式的に表した図である。
【図７】本発明の実施形態３に係るＨＭＤにおける判断・処理の流れを示すフローチャートである。
【図８】本実施形態における修正候補テーブルの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明に係る情報処理端末、情報処理方法及びプログラムの実施形態を詳細に説明する。
【００１２】
［実施形態１］
実施形態１では、本発明を情報処理端末の一例としてのＨＭＤに適用した例について説明する。
ＨＭＤには、透明または半透明のハーフミラーにグラフィックスを投影する、いわゆるグラス・シースルー方式と、撮像装置が撮像している現実世界の光景にグラフィックスを電気的に重畳する、いわゆるビデオ・シースルー方式がある。両者のハードウェア構成における相違については後述する。
【００１３】
図１は、本実施形態のＨＭＤ１００の外観を示す図である。
このＨＭＤ１００は、当該ＨＭＤ１００を使用者の頭部に装着する頭部装着部１０１と、使用者の頭部前方の映像を撮像する撮像部１０２と、グラフィックスを表示する表示部１０４とを備えている。
【００１４】
頭部装着部１０１は、本実施形態のＨＭＤ１００を使用者の頭部に装着させるものであり、側頭装着部１２１と、アジャスタ１２２と、長さ調整部１２３と、後頭装着部１２４と、額装着部１２５とを備えている。
【００１５】
ＨＭＤ１００を頭部に装着するには、まず、アジャスタ１２２で長さ調整部１２３を緩めた状態で使用者が頭にかぶる。そして、額装着部１２５を額に密着させてから側頭装着部１２１と後頭装着部１２４を各々側頭部、後頭部に密着させるように、アジャスタ１２２で長さ調整部１２３を絞める。なお、頭部装着部１０１は、同図中に示したゴーグルタイプの他に、眼鏡フレームタイプ、ヘルメットタイプ等種々のタイプが利用可能である。
【００１６】
撮像部１０２はいわゆるデジタルカメラであり、入射窓１１２Ｌ，１１２Ｒと、撮像センサー１１６Ｌ，１１６Ｒと、光学プリズム１１７Ｌ，１１７Ｒとを備えている。この撮像部１０２は、本実施形態のＨＭＤ１００を頭部に装着した使用者の頭部が向く方向と略同方向（使用者の視界に相当する方向）を撮像する。具体的には、入射窓１１２Ｌ，１１２Ｒを介してＨＭＤの外部から入射した光を光学プリズム１１７Ｌ，１１７ＲによってＨＭＤ１００内部に導き、撮像センサー１１６Ｌ，１１６Ｒにより受光して撮像する。
【００１７】
表示部１０４は、スクリーン１１０Ｌ，１１０Ｒと、カラー液晶ディスプレイ１１４Ｌ，１１４Ｒと、光学プリズム１１５Ｌ，１１５Ｒとを備えている。なお、符号の末尾のＬ、Ｒの文字は左眼用、右眼用を示している。この表示部１０４は、使用者の目の位置に相対するように、眼鏡における眼鏡レンズに相当する位置に設けられたものである。具体的には、カラー液晶ディスプレイ１１４Ｌ，１１４Ｒが表示する画像を光学プリズム１１５Ｌ，１１５Ｒによって導き、スクリーン１１０に表示する。
【００１８】
ＨＭＤ１００が前述のビデオ・シースルー型である場合は、スクリーン１１０Ｌ，１１０Ｒは原則として透過度を有さず、光学プリズム１１５Ｌ，１１５Ｒによって導光されたカラー液晶ディスプレイ１１４Ｌ，１１４Ｒからの表示光をそのまま表示する。これに対して、ＨＭＤ１００が前述のグラス・シースルー型である場合は、スクリーン１１０Ｌ，１１０Ｒはいわゆるハーフミラーで構成される。すなわち、スクリーン１１０Ｌ，１１０Ｒは、一定の透過度を有し、使用者が現実空間の光景を光学的に見ることができるようになっている。同時に、表面または裏面もしくは内部に埋め込まれて設けられたミラーにより、カラー液晶ディスプレイ１１４Ｌ，１１４Ｒが表示し、光学プリズム１１５Ｌ，１１５Ｒによって導かれたグラフィックスの表示光を使用者の目の方向に反射する。つまり、グラス・シースルー型の場合には、現実空間の光景と仮想オブジェクトの画像（グラフィックス）とが、スクリーン１１０Ｌ，１１０Ｒにおいて光学的に重畳される。
【００１９】
表示部１０４の光学プリズム１１５Ｌ，１１５Ｒの出力光と撮像部１０２の光学プリズム１１７Ｌ，１１７Ｒの入力光は使用者の瞳の光軸と一致しており、撮像センサー１１６Ｌ，１１６Ｒは、使用者の位置及び頭部の方向にの現実空間の映像を撮像する。
【００２０】
ビデオ・シースルー型ＨＭＤの場合には、カラー液晶ディスプレイ１１４Ｌ，１１４Ｒには、撮像センサー１１６Ｌ，１１６Ｒによって撮像された現実空間の映像と仮想オブジェクトの画像（グラフィックス）とを電気的に重畳（画像合成）した画像が表示される。一方、グラス・シースルー型ＨＭＤの場合には、カラー液晶ディスプレイ１１４Ｌ，１１４Ｒには、原則として、仮想オブジェクトの画像（グラフィックス）のみが表示される。
【００２１】
図２は本実施形態のＨＭＤ１００の構成例を示すブロック図である。
ＨＭＤ１００は、さらに、頭部装着部１０１を含む本体内部に埋め込まれ、前述の図１中には外観としては図示されない表示制御部１３０、撮像制御部１４０、ＣＰＵ１５０、メモリ１６０、電源部１７０、通信部１８０、タッチ認識部１９０とを備えている。
【００２２】
表示制御部１３０は、表示部１０４の表示制御を行う。たとえば、現実空間の映像に重畳表示（画像合成）する仮想オブジェクトの画像（グラフィックス）の大きさや位置、向き、色彩、透過度、現実空間の映像が変化したことに伴う移動や明度の変更等を制御する。この仮想オブジェクトの画像には、たとえば、使用者の指示を入力するメニュー表示等のグラフィカル・ユーザー・インターフェース、キーボード等の画像が含まれる。
【００２３】
撮像制御部１４０は、撮像データを用いた所定の演算処理による演算結果に基づいて露光制御、測距制御等を行う。これにより、ＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理等が行われる。また、撮像部１０２が光学フィルターを光路上から挿脱する機構や防振機構等を備えている場合は、撮像データその他の条件によりフィルターの挿脱や防振等の制御を行う。
【００２４】
ＣＰＵ１５０は、ＨＭＤ１００全体の演算処理を行う。後述するメモリ１６０に記録されたプログラムを実行することで、本実施形態の各処理を実現する。メモリ１６０はワーク領域および不揮発性領域より構成される。メモリ１６０内のワーク領域には、不揮発性領域から読み出されたプログラムやシステム制御用の定数、変数が展開される。また、現実空間に重畳して表示する仮想オブジェクトの画像（グラフィックス）のデータが、表示のために保持される。また、撮像部１０２により撮像されＡ／Ｄ変換された撮像データが、画像解析や画像処理等の目的で保持される。
【００２５】
電源部１７０は、アルカリ電池やリチウム電池等の一次電池やＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、ＡＣアダプター等からなり、ＨＭＤ１００全体に電源を供給する。また、この電源部１７０は、使用者の操作その他の条件により電源オン、電源オフを切り替える電源スイッチを備える。通信部１８０は、ＣＰＵ１５０の制御に基づき、ＰＣ等の情報端末や、ＬＡＮやインターネットといったネットワークとの通信を行う。
タッチ認識部１９０は、実在オブジェクトに対する使用者のタッチ操作を認識する。タッチ認識部１９０は、たとえばＣＰＵ１５０がメモリ１６０に記憶されたタッチ認識プログラムに基づき撮像部１０２の撮像映像を演算処理することにより、ソフトウェア的に実現される。あるいは、後述する静電容量の変化を計測する方法による場合には、静電容量測定計等により構成される。
【００２６】
図３は、本実施形態のＨＭＤ１００における判断・処理の流れを示すフローチャートである。なお、この判断・処理は、ＣＰＵ１５０がメモリ１６０の不揮発性領域に記録されたプログラムをワーク領域に展開して実行することで実現する。
【００２７】
使用者により電源が投入されると、本実施形態のＨＭＤ１００は、撮像部１０２により現実空間の撮像を開始する（Ｓ３０１）。そして、ＣＰＵ１５０は、撮像された映像中に所定の要件に合致する実在オブジェクトの像があるか否かを判定する（Ｓ３０２）。所定の要件とは、たとえば、使用者から所定の距離（たとえば１メートル）内にあるもの、一定以上の略平坦な領域を有するもの、等である。なお、この実在オブジェクトの存在の判定は、例えばＣＰＵ１５０が、実在オブジェクトの輪郭部分等の位置・距離の座標等を算出することによって行うことができる。ＣＰＵ１５０は、左右の撮像センサー１１６Ｒ，１１６Ｌが撮像した映像中の実在オブジェクトの位置の差（視差）に応じて、実在オブジェクトの輪郭部分等の位置・距離の座標等を算出することができる。
【００２８】
このような所定の要件に合致する実在オブジェクトが特定できないときは、エラーや警告の表示を行う（Ｓ３０３）。次に、この特定された実在オブジェクトに関連させて、ＧＵＩの画像を拡張現実の画像として表示する（Ｓ３０４）。すなわち、ＣＰＵ１５０は、撮像された映像中の前記実在オブジェクトの位置に相当するスクリーン１１０Ｌ，１１０Ｒ上の位置を算出し、算出した位置に、ＧＵＩのボタン等のグラフィックスを重畳表示させる。なお、ＨＭＤ１００の使用者（装着者）が頭を振る等して撮像された映像中の前記実在オブジェクトの位置が変わったときは、ＣＰＵ１５は、それに伴ってグラフィックスを重畳表示させる位置も変更する。また、使用者（装着者）が前記実在オブジェクトに近付いたり遠ざかったりしたことにより撮像された映像中の前記実在オブジェクトの大きさが変わったときは、ＣＰＵ１５０は、それにともなってグラフィックスの重畳表示の大きさも変更する。
【００２９】
次に、前記特定された実在オブジェクトに対する使用者のタッチ操作があったかを判定する（Ｓ３０５）。ここでタッチ操作は、たとえば、以下の具体的な操作を含む。
実在オブジェクトを触れたこと（以下、「タッチダウン」と称する）。実在オブジェクトを触れている状態であること（以下、「タッチオン」と称する）。実在オブジェクトを触れたまま移動していること（以下、「ムーブ」と称する）。実在オブジェクトを２本の指で触れて、その間隔を狭めるように動かすこと（以下、「ピンチイン」と称する）。実在オブジェクトを２本の指で触れて、その間隔を広げるように動かすこと（以下、「ピンチアウト」と称する）。実在オブジェクトへ触れていた指を離したこと（以下、「タッチアップ」と称する）。実在オブジェクトに触れていない状態（以下、「タッチオフ」と称する）。
【００３０】
実在オブジェクトに対する使用者のタッチ操作があったかどうかは、たとえば、静電容量の変化を計測する方法や、実在オブジェクトと使用者の手指との距離を計測する方法等のタッチ認識により判定することが可能である。静電容量の変化を計測するものは、たとえば使用者の指先と使用者の頭部に装着された静電容量測定計と接地した実在オブジェクトとの間で形成される回路の静電容量を測定し、所定以上の変化があったときを「タッチがなされた」と判定するものである。実在オブジェクトと使用者の手指との距離を計測するものは、たとえば撮像センサー１１６Ｌ，１１６Ｒが撮像した映像中の手指の位置の差（視差）により、いわゆる三角測量の原理を用いて距離計測を行うことができる。あるいは、使用者の指先又は実在オブジェクトに超音波測距センサーなどを設置し、超音波や音波の反射時間から距離計測を行って、実在オブジェクトと使用者の手指との距離の差が略０となったときを「タッチがなされた」と判定することもできる。または、撮像センサー１１６Ｌ，１１６Ｒが撮像した映像中の、使用者の手指により実在オブジェクト上に生じた「影」の濃度（輝度）の変化や、前述の「影」と使用者の手指（手指先端）との距離の変化により、「タッチがなされた」と判定することもできる。これらの技術はいずれも既知であり、実用可能に提供されているものである。
【００３１】
実在オブジェクトに対する使用者のタッチ操作があったと判定したときは、撮像画像における使用者の手指先端の位置を取得する（Ｓ３０６）。ここで、手指先端と判定される箇所が２以上あるときは、その２以上の箇所すべてについて位置を取得する。次に、取得された手指先端の位置に対応する位置に表示（重畳表示）しているグラフィックスを変化させる処理を行なう（Ｓ３０７）。たとえば、「写真」等の画像のグラフィックスを重畳表示しているときに、使用者の２本の指タッチによる「ピンチアウト」操作を検知したときは、当該「写真」等の画像のグラフィックスを拡大する処理を行なう。
【００３２】
また、バーチャル・キーボード等、使用者の１本の指タッチによる操作を前提とするグラフィックスを表示しているときに、２箇所以上の手指先端位置を取得した場合について想定する。このときは、手指先端の位置の移動量が最も大きな位置に対応するグラフィックス要素（バーチャル・キーボードを表示している場合は、その中のキーのひとつ）に対する「タッチダウン」操作があったものとする。このような場合には、たとえば当該グラフィックス要素（たとえば、キーのひとつ）が凹んで見えるようなグラフィックス処理を行なう。
【００３３】
そして、当該操作に対応する、テキスト入力等の情報処理を実施し（Ｓ３０８）、所定の終了条件を満たすか否かを判定する（Ｓ３０９）。たとえば、バーチャル・キーボードの消去に割り当てられた「閉じる」ボタンが使用者のタッチダウン操作により指示されたか否か、すなわち、仮想オブジェクトの画像であるグラフィカル・ユーザー・インターフェースへのタッチ操作があったか否かを判定する。タッチ操作があったときは、仮想オブジェクトの画像であるグラフィカル・ユーザー・インターフェースの重畳表示を消去し（Ｓ３１０）、図３に示す処理を終了する。
【００３４】
本実施形態によれば、現実世界の実在オブジェクトに重畳してタッチ操作のためのグラフィカル・ユーザー・インターフェースを表示をする。そして、実在オブジェクトに対する使用者のタッチを認識したとき、実在オブジェクトに重畳表示しているグラフィカル・ユーザー・インターフェースへのタッチ操作があったものと判定する。このため、実在オブジェクトの反射率や周辺環境の明るさ等に関わらず、使用者にとってグラフィカル・ユーザー・インターフェースの表示が見やすいタッチＧＵＩを実現することができる。
【００３５】
また、本実施形態では、使用者は実在オブジェクトに対してタッチ操作を行うため、確実な触覚的レスポンスを受けることができ、たとえば使用者が空中で行う手指等のジェスチャー操作を撮像して操作入力を判断する方法等に比較して操作性が向上する。また、空中で行うジェスチャー操作等に比較して、タッチしているかタッチしていないかの区別が明確であるため、使用者の操作に対する識別性が向上し、識別誤りに起因する誤動作を低減させることが可能となる。
【００３６】
［実施形態２］
実施形態２では、本発明の情報処理端末の一例としてのＨＭＤが、現実世界の実在オブジェクトに重畳して使用者によるタッチを促す表示をする。そして、当該実在オブジェクトに対する使用者のタッチを認識したとき、その認識したタッチされた位置（タッチ位置）に基づきグラフィカル・ユーザー・インターフェースの表示位置を決定する。なお、本実施形態のＨＭＤは、前述の図１及び図２に示す実施形態１のＨＭＤ１００と同様に構成されている。
【００３７】
ＨＭＤが前述のビデオ・シースルー型ＨＭＤである場合は、表示部１０４に表示する現実世界の光景は撮像部１０２が撮像したものであるから、表示部１０４における実在オブジェクトの表示位置座標と撮像された映像中の位置座標とを一致させることは容易である。
【００３８】
これに対して、ＨＭＤが前述のグラス・シースルー型ＨＭＤである場合は、たとえばスクリーン（ハーフミラー）１１０Ｒ，１１０Ｌに外縁を設け、かつ、使用者の目との間の距離を調節することにより撮像部１０２の撮像画角と使用者の視野角を略一致させている。このようにしても、ＨＭＤの装着状態によっては、使用者がスクリーン（ハーフミラー）１１０Ｌ，１１０Ｒを通して実在オブジェクトを見たときに視覚的に認識する実在オブジェクトの位置と、撮像された映像中の実在オブジェクトの位置がずれる場合がある。
【００３９】
この場合、実在オブジェクトに相当する位置にグラフィックスを重畳表示される位置と使用者が視覚的に認識する実在オブジェクトの位置がずれることになる。あるいは、使用者がタッチしたと認識するグラフィックスの位置と、撮像された映像中の使用者の手指の位置に基づいて使用者によりタッチされたと判定したグラフィックスの位置がずれることとなる。
【００４０】
このような「ずれ」が生じないようにするためには、使用者がタッチしたと認識するグラフィックスのスクリーン１１０Ｌ，１１０Ｒ上の表示位置の座標と、使用者によりタッチされた位置の撮像された映像中の位置の座標とを一致させる較正処理を行なえばよい。
【００４１】
このため、本実施形態のＨＭＤでは、現実世界の実在オブジェクトに重畳して使用者によるタッチを促す表示をする。そして、当該実在オブジェクトに対する使用者のタッチを認識したとき、その認識したタッチされた位置（タッチ位置）に基づきグラフィカル・ユーザー・インターフェースの表示位置を決定する。これにより、使用者が視覚的に認識する実在オブジェクトの位置と、グラフィカル・ユーザー・インターフェースを表示させるための撮像部１０２からの映像における実在オブジェクトの位置が一致するように較正している。
【００４２】
図４は、本実施のＨＭＤにおける判断・処理の流れを示すフローチャートである。
使用者により電源が投入されると、本実施形態に係るＨＭＤは、撮像部１０２により現実空間の撮像を開始する（Ｓ４０１）。そして、ＣＰＵ１５０は、所定の要件により、使用者の実在オブジェクトに対するタッチ操作を本実施形態のＨＭＤへの指示・操作として受け付ける処理を開始するかどうかを判定する（Ｓ４０２）。所定の要件とは、たとえば、位置・角度センサー等により本実施形態のＨＭＤを装着した使用者が自ら移動していない（歩行状態でない）ことを検知した場合、等である。当該処理を開始すると判定したときは、ＣＰＵ１５０は、まず、スクリーン（ハーフミラー）１１０Ｌ，１１０Ｒ上の所定の位置座標に、使用者の実在オブジェクト上へのタッチを促すグラフィックスの表示を行わせる（Ｓ４０３）。
【００４３】
そして、ＣＰＵ１５０は、実在オブジェクトに対する使用者のタッチ操作があったか否かを判定する（Ｓ４０４）。実在オブジェクトに対する使用者のタッチ操作があったと判定したときは、ＣＰＵ１５０は、撮像された映像中の使用者の手指先端の位置座標を取得する（Ｓ４０５）。ここで、手指先端と判定される箇所が２以上あるときは、手指先端の位置の移動量が最も大きなものの位置座標を取得する。
【００４４】
この後、ＣＰＵ１５０は、撮像された映像中の前記取得された位置座標を、スクリーン（ハーフミラー）１１０Ｌ，１１０Ｒの前記タッチを促すグラフィックスを表示させた所定の表示位置の座標に対応させる較正処理を行う（Ｓ４０６）。この後、ＣＰＵ１５０は、当該較正された撮像部１０２による撮像された映像中のタッチ位置に基づき、スクリーン（ハーフミラー）１１０Ｌ，１１０Ｒ上のグラフィカル・ユーザー・インターフェースの表示位置を決定する。
【００４５】
図５Ａは、本実施形態のＨＭＤが、現実世界の実在オブジェクトに重畳して使用者によるタッチを促す表示をした状態を表した図である。また、図５Ｂは、当該実在オブジェクトに対する使用者のタッチを認識したとき、その認識したタッチ位置に基づきグラフィカル・ユーザー・インターフェースの表示位置を決定する様子を模式的に表した図である。
【００４６】
５０１は、本実施形態のＨＭＤ５０１１を装着した使用者Ｕと、使用者Ｕのいる現実世界とを表している。
５０２は、使用者Ｕから見た拡張現実表示の様態である。実在オブジェクトであるテーブル５０２３に、使用者のタッチを促すグラフィックス５０２２を重畳して表示している。
５０３は、同じく使用者Ｕから見た拡張現実表示の様態であり、使用者Ｕが手指による実在オブジェクトへのタッチにより、あたかもグラフィックス５０３２をタッチしようとしている様子を表している。
５０４は、５０１と同様の視点から５０３の状況を見た様態を表している。
【００４７】
ここで、使用者Ｕがタッチしようとしている実在オブジェクト上の位置は、使用者Ｕから見たとき、使用者にタッチを促すグラフィックスの表示されている位置に対応する筈である。つまり、撮像された映像における、使用者Ｕがタッチしようとしているポイントの位置座標は、使用者Ｕから見たときのグラフィックス５０３２のスクリーン（ハーフミラー）１１０Ｌ，１１０Ｒ上の表示位置の位置座標に対応する筈である。そこで、この対応情報に基づき、撮像された映像中のタッチ位置（手指先端の位置）に対応するスクリーン（ハーフミラー）１１０Ｌ，１１０Ｒ上の位置に表示するＧＵＩがタッチ操作・指示の対象となるようにする。このようにすれば、使用者ＵのＨＭＤの装着状態が一定である限り、使用者がタッチしたと認識するグラフィックスの位置と、撮像された映像中の手指位置に基づき使用者によりタッチされたと判定したグラフィックスの位置がずれることがなくなる。
【００４８】
すなわち、本実施形態によれば、いわゆるグラス・シースルー型ＨＭＤである場合も、使用者がタッチ操作をしたと視覚的に認識する表示部１０４上の位置座標と、撮像された映像中のタッチ操作の位置座標とを精度よく対応させることができる。これにより、現実世界の実在オブジェクトに対する使用者のタッチ操作を、拡張現実表示したＧＵＩに対するタッチ操作として認識するタッチＧＵＩが可能となる。
【００４９】
［実施形態３］
実施形態３では、本発明の情報処理端末の一例としてのＨＭＤが、仮想オブジェクトの画像である複数のキーを配置したキーボードを表示（キーボード表示）し、表示したキーボードに対する使用者のタッチを認識する。そして、当該タッチの位置（タッチ位置）に対応するキーのキーコードより文字列を生成（文字列生成）し、その生成された文字列が、意味を有する有意味文字列か、意味を有しない無意味文字列かを判定（意味判定）する。無意味文字列と判定した場合には、文字列に含まれる各文字を、それぞれ前記キーボード上で所定のシフト量だけずらして得られる１以上の修正候補文字列を生成（修正候補生成）する。さらに、生成された修正候補文字列が有意味文字列となるときのシフト量に応じて、前記キーボードの、各キーに対応するタッチ位置の割り当てを変更（タッチ位置割り当て）する。なお、本実施形態のＨＭＤは、前述の図１及び図２に示す実施形態１のＨＭＤ１００と同様に構成されている。
【００５０】
前述の実施形態２に係るＨＭＤによれば、グラス・シースルー型ＨＭＤであっても、使用者のタッチ操作があった実在オブジェクト上の位置と、現実世界の光景に重畳表示したグラフィックスの表示位置とが対応付けられている。このため、使用者のＨＭＤの装着状態が一定である限り、使用者は実在オブジェクトに対してタッチ操作をすることで、あたかも重畳表示したグラフィックスに対してタッチ操作をしているような操作・指示を実現することが出来る。
【００５１】
しかし、たとえば使用者が頭を振った等の要因により装着状態が変化すると、使用者に見える実在オブジェクトの位置と、重畳表示したグラフィックスの表示位置にずれを生じてしまう。これのような状態になると、再び使用者がタッチ操作をする位置と、それに対応するＧＵＩの表示位置との間で「ずれ」が生ずる可能性がある。
【００５２】
本実施形態のＨＭＤでは、この「ずれ」を以下のように解消している。
すなわち、本実施形態のＨＭＤでは、ユーザのタッチ操作によって得られたキーコードに対応する文字列が無意味文字列である場合には、文字列に含まれる各文字を、前記キーボード上で所定のシフト量だけずらして得られる１以上の修正候補文字列を生成する。さらに、意味のある文字列か否かに応じて、生成された修正候補文字列が有意味文字列となるときのシフト量に応じて、前記キーボードの、各キーに対応するタッチ位置の割り当てを変更する。
【００５３】
図６Ａは、本実施形態のＨＭＤが、実在のオブジェクト（テーブル）に重畳してキーボードを拡張現実表示した状態を表した図である。また、図６Ｂは、使用者のタッチを認識し、当該タッチにより生成された文字列を無意味文字列として判定したとき、各キーに対応するタッチ位置の割り当てを変更する様子を模式的に表した図である。
【００５４】
６０１は、本実施形態のＨＭＤ６０１１を装着した使用者Ｕと、使用者Ｕのいる現実世界とを表している。
６０２は、使用者Ｕが表示部１０４を介して見た拡張現実表示の様態を表している。この態様では、実在オブジェクトであるテーブル６０２３に、表示部１０４によってキーボードのグラフィックス６０２２を重畳して表示した例について表している。
【００５５】
ここで、使用者Ｕに対して表示されているキーボードは６０２２であるが、本実施形態のＨＭＤ６０１１では、表示されているキーボードのグラフィックスの周囲に、いわば架空の、使用者に対して表示しないキー領域を設けている。ＣＰＵ１５０は、このキー領域に対応する使用者のタッチ操作についても、表示されているキーボードの各キーに対応するキーコード以外のキーコードを発生させるようにしている。
【００５６】
これを模式的に表したものが６０３である。６０３において、斜線を施した領域６０３４は、使用者Ｕに対して表示されないが、ＣＰＵ１５０は、この領域に対応する実在オブジェクト上の領域がタッチされたときは、その位置に応じたキーコードを発生させる。さらに、ＣＰＵ１５０は、発生させたキーコードに対応する文字列を生成する。
【００５７】
６０４は、使用者Ｕが、実在オブジェクトに対するタッチ操作（この場合は「タッチダウン」操作）により、「ｏ」のキーコードを発生させるために「ｏ」キーを指示しようとしている様子を表している。
【００５８】
本実施形態のＨＭＤの使用者は、このようにして、たとえばローマ字変換により「こんにちは」と入力しようとするときは、「ｋ」「ｏ」「ｎ」「ｎ」「ｎ」「ｉ」「ｔ」「ｉ」「ｈ」「ａ」キーを、順次指示しようとする。
【００５９】
ところで、仮に使用者の実在オブジェクトに対するタッチ位置とそれに対応するＧＵＩ表示との間で「ずれ」が生じていたとすると、使用者の実在オブジェクトに対するタッチ操作により発生するキーコードは前述の状態とは異なる状態になる。すなわち、たとえば「ｌ」「ｐ」「ｍ」「ｍ」「ｍ」「ｏ」「ｙ」「ｏ」「ｊ」「ｓ」のようなキーコードが発生する。これは、右側への１キー分に相当する「ずれ」が生じていた場合である。
【００６０】
本実施形態のＨＭＤでは、ＣＰＵ１５０が、随時、発生したキーコードにより生成される文字列について、それが有意味文字列か無意味文字列かの判定を行う。その判定タイミングは、たとえば、一般的な文字入力システムにおいて、シーケンシャルに発生したキーコードを自動的に文字列変換するタイミングと同期させてもよい。あるいは、「ずれ」が生じる可能性の高い振動等を位置・角度センサー等により検知し、振動等を検知したタイミングと連動させて、文字列が有意味文字列か無意味文字列かの判定を行ってもよい。
【００６１】
なお、表示されているキーボードのグラフィックスの周囲に、いわば架空のキー領域を設け、この領域に対応する使用者のタッチ操作についてもキーコードを発生させるのは以下の理由による。たとえば使用者がキーボード上端の数値キーを実在オブジェクトへのタッチにより指示しようとしながら、タッチ位置とそれに対応するＧＵＩ表示との間の「ずれ」により、そのさらに上の位置がタッチ操作されていると認識されていた場合を想定する。このような場合に、架空のキー領域が設けられていないと、そのタッチ指示に対応した「ずれたキーコード」が発生しない。そうすると、使用者がタッチ操作を行った位置がどのくらいずれているかを、発生したキーコードを手掛かりに推定することができなくなる。上述の「架空のキー領域」を設けるのは、仮想キーボードの周縁部に位置するキーのさらに外側が使用者によってタッチ指示されたときもそのタッチ位置に応じたキーコードを発生させるためである。さらに、その「ずれたキーコード」による無意味文字列から、後述する「シフト量」の算出を行うことができるようにするためである。
【００６２】
図７は本実施形態のＨＭＤにおける判断・処理の流れを示すフローチャートである。
ステップＳ７０１において、使用者のタッチ操作を検出すると、ＣＰＵ１５０は、ステップＳ７０２において、所定の条件による文字列判定タイミングかを判断する。文字列判定タイミングでない場合は、ＣＰＵ１５０は、入力されたキーコードをメモリ１６０の一時蓄積領域に格納する（Ｓ７０３）。
【００６３】
文字列判定タイミングであれば、ＣＰＵ１５０は、ステップＳ７０４において、メモリ１６０に記憶されている文字列を読み出し、当該文字列が意味を有しない無意味文字列か否かを判定する（意味判定）。すなわち、ＣＰＵ１５０は、当該文字列が予め記憶されている辞書データに含まれているかどうかを検索し、その検索結果により無意味文字列か否かの判定を実行する。たとえば、文字列入力がローマ字変換モードであるときに“ｋｏｎｎｎｉｔｉｈａ”と入力されたときは、辞書データに登録されている「こんにちは」にマッチするため、有意味文字列と判定される。また、“ｌｐｍｍｍｏｙｏｊｓ”等と入力された場合には、辞書登録されているどの語ともマッチしないため、無意味文字列と判定される。あるいは、そもそもローマ字変換モードにおける入力の場合には、入力されたアルファベット三文字までの組み合わせが、どの「かな」にも変換できないものであれば、無意味と判定することができる。また、有意味文字列であればステップＳ７０９に進み、仮名漢字変換を実行する。
【００６４】
一方、無意味文字列であれば、ステップＳ７０５に進み、ＣＰＵ１５０は、入力された文字列を、キーボード上のキー配列にしたがって所定のシフト量だけずらし、修正候補文字列を作成する（修正候補生成）。シフト量は、１文字右、１文字左、１文字左下、１文字右下、１文字左上、１文字右上、２文字右、…、ｎ文字右等である。修正候補文字列は、一旦、メモリ１６０の一時蓄積領域に記憶される。
【００６５】
ステップＳ７０６において、ＣＰＵ１５０は、作成した修正候補文字列が有意味文字列か否かを判定する。有意味文字列でなければ、ステップＳ７０５に戻り、次の修正候補文字列を作成する。
【００６６】
なお、ステップＳ７０５において、予め複数の修正候補文字列を作成し、作成された修正候補文字列を修正候補テーブルに登録してもよい。当該テーブルは、メモリ１６０に記憶しておくことができる。ＣＰＵ１５０は、当該テーブルに登録されている各候補文字列について、上述の有意味文字列か否かの判定を実行する。
【００６７】
有意味文字列が見つかると、ステップＳ７０７に進み、ＣＰＵ１５０は、有意味文字列となるときのシフト量を決定し、メモリ１６０に記憶する。ステップＳ７０８において、ＣＰＵ１５０は、決定されたシフト量をメモリ１６０から読み出し、このシフト量に応じて撮像画像における使用者のタッチ位置に対応するキーを変更する。たとえば、シフト量が「１文字右」である場合には、ＣＰＵ１５０は、今までＦキーに対応させていた撮像画像上のタッチ位置を、Ｇキーに対応するように変更する。具体的には、各キーについて、撮像部１０２からの映像中の座標データと、これに対応するキーとの対応関係を管理するキー割り当て（タッチ位置割り当て）テーブルを変更し、メモリ１６０に記憶する。
【００６８】
ステップＳ７０９において、ＣＰＵ１５０は、仮名漢字変換処理等の文字入力処理を実行する。たとえば、有意味文字列を仮名漢字変換処理して変換文字候補を表示部１０４に表示させる。これに応じて、たとえば使用者により「次候補」が指示された場合、ＣＰＵ１５０は、次候補を表示部１０４に表示する。あるいは、使用者により「確定」が指示された場合、ＣＰＵ１５０は、文字入力を確定する。
【００６９】
ここで、たとえば、ローマ字変換モードにおいて、使用者が「こんにちは」と入力する場合を例に説明を補足する。使用者が実在オブジェクトへのタッチ操作によりテキスト入力しようとするとき、撮像された映像中の、認識されたタッチ位置に対応するキーのポジションが、たとえば使用者から見たときのキーボードの表示ポジションから、１キー分だけ右にずれていたとする。この場合、「ずれ」がなかったとすれば、ローマ字で“ｋｏｎｎｎｉｔｉｈａ”と入力されるべきところを、「ずれ」のために“ｌｐｍｍｍｏｙｏｊｓ”と入力されてしまう。この間、ＣＰＵ１５０は、使用者によりキーが打鍵（タッチ）されるごとに、入力されたキーコードをバッファリング（一時蓄積）する（Ｓ７０３）。ここでは“ｌ” “ｐ” “ｍ” “ｍ” “ｍ” “ｏ” “ｙ” “ｏ” “ｊ” “ｓ”が、この順番どおりにバッファリングされる。
【００７０】
所定の条件による文字列判定タイミングで（Ｓ７０２）、ＣＰＵ１５０は、バッファリングされた文字列“ｌｐｍｍｍｏｙｏｊｓ”が無意味文字列であるか否かを検出する（Ｓ７０４）。この場合は無意味文字列であるため、ＣＰＵ１５０は、この無意味文字列“ｌｐｍｍｍｏｙｏｊｓ”について、キーコードをキー配列にしたがって所定量だけシフトさせることにより修正候補テーブルを作成する（Ｓ７０５）。
【００７１】
図８は、このようにして作成された修正候補テーブルの一例を示す図である。
ＣＰＵ１５０は、修正候補テーブル内の修正候補文字列について、前述の辞書データに登録されている語（有意味文字列）とのマッチングをとる。同図中に示す場合では、「シフト量」が「１文字右」の文字列“ｋｏｎｎｎｉｔｉｈａ”についてマッチング量が最大となるので、ＣＰＵ１５０は、修正文字列“ｋｏｎｎｎｉｔｉｈａ” を取得し、そのときの「シフト量」として「１文字右」を取得する。そこで、ＣＰＵ１５０は、撮像された映像中のタッチ位置に対応して発生させるキーコードを当該「シフト量」分ずらして再度割り当てる。これにより、撮像された映像中のタッチ位置に対応するキーのポジションと、使用者から見たときのキーボードの表示ポジションの「ずれ」を解消することができる。
【００７２】
本実施形態では、入力されるキーコードより生成される文字列が「無意味文字列」であるとき、それが「有意味文字列」となるときのシフト量を決定する。さらに、決定されたシフト量に基づいて、撮像された映像中のタッチ位置に対応して発生させるキーコードの割り当てを変更する。したがって、振動等により、いわゆるグラス・シースルー型ＨＭＤの装着状態が変化した場合であっても、使用者が視覚的に認識する表示部１０４上のキー・ポジションと、撮像された映像中のタッチ操作の位置座標との対応関係を適切にすることができる。これにより、現実世界の実在オブジェクトに対する使用者のタッチ操作を、拡張現実表示したキーボードに対するタッチ操作として精度よく認識することが可能となる。
【００７３】
［その他の実施形態］
本発明の目的は、以下の処理を実行することによっても達成される。すなわち、上述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置が備えるコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体等から読み出して実行する処理である。この場合、記憶媒体等から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、そのプログラムも本発明を構成することになる。
【符号の説明】
【００７４】
１００  ＨＭＤ    １０１  頭部装着部    １０２  撮像部    １０４  表示部
１１０Ｌ，１１０Ｒ  スクリーン
１１２Ｌ，１１２Ｒ  入射窓
１１４Ｌ，１１４Ｒ  カラー液晶ディスプレイ
１１５Ｌ，１１５Ｒ  光学プリズム
１１６Ｌ，１１６Ｒ  撮像センサー
１１７Ｌ，１１７Ｒ  光学プリズム
【図１】
2015203889.tif 000003
【図２】
2015203889.tif 000004
【図３】
2015203889.tif 000005
【図４】
2015203889.tif 000006
【図５Ａ】
2015203889.tif 000007
【図５Ｂ】
2015203889.tif 000008
【図６Ａ】
2015203889.tif 000009
【図６Ｂ】
2015203889.tif 000010
【図７】
2015203889.tif 000011
【図８】
2015203889.tif 000012