(57)【要約】【課題】円形ジェスチャーの軌跡をより正確に検出することができるプログラム、情報処理装置、及び情報処理方法を提供する。【解決手段】コンピュータに、候補円特定手順と、分散算出手順と、選択手順とを実行させる、プログラムである。候補円特定手順では、第１時刻に検知された物体の座標である第１座標と、第１時刻より後である第２時刻に検知された物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する。分散算出手順では、候補円ごとに、候補円の中心座標から、第１座標、第２座標、及び第１時刻と第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する。選択手順では、候補円ごとの分散に基づいて、複数の候補円の中から、ユーザーが物体を移動させた軌跡に対応する１つの円を選択する。【選択図】図２
2020042611.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
ユーザーが移動させる物体の通る座標を検知する検知手順と、
第１時刻に検知された前記物体の座標である第１座標と、前記第１時刻より後である第２時刻に検知された前記物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する、候補円特定手順と、
前記候補円ごとに、前記候補円の中心座標から、前記第１座標、前記第２座標、及び前記第１時刻と前記第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する、分散算出手順と、
前記候補円ごとの前記分散に基づいて、前記複数の候補円の中から、前記ユーザーが前記物体を移動させた軌跡に対応する１つの円を選択する、選択手順と、を実行させる、
プログラム。
【請求項２】
前記選択手順で選択された円の前記中心座標から前記第１座標へのベクトルである第１ベクトルと、当該中心座標から前記第２座標へのベクトルである第２ベクトルとの間の角度である第１角度を算出する、角度算出手順を更に実行させる、
請求項１に記載のプログラム。
【請求項３】
前記中心座標から所定方向に延びるベクトルである基準ベクトルが予め設定されており、
前記角度算出手順では、前記基準ベクトルと前記第１ベクトルとの間の角度である第２角度を更に算出する、
請求項２に記載のプログラム。
【請求項４】
前記第２角度に基づいて複数の情報群の中から１つの情報群を特定し、特定した１つの情報群の中から前記第１角度に基づいて１つの情報を特定する、情報特定手順を更に実行させる、
請求項３に記載のプログラム。
【請求項５】
前記角度算出手順で算出された前記第１角度を示す画像を生成する、画像生成手順を更に実行させる、
請求項２に記載のプログラム。
【請求項６】
前記第１時刻は、前記物体の移動の検知が開始された時刻である、
請求項１から請求項５のいずれか１項に記載のプログラム。
【請求項７】
ユーザーが移動させる物体の通る座標を検知する検知部と、
第１時刻に検知された前記物体の座標である第１座標と、前記第１時刻より後である第２時刻に検知された前記物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する、候補円特定部と、
前記候補円ごとに、前記候補円の中心座標から、前記第１座標、前記第２座標、及び前記第１時刻と前記第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する、分散算出部と、
前記候補円ごとの前記分散に基づいて、前記複数の候補円の中から、前記ユーザーが前記物体を移動させた軌跡に対応する１つの円を選択する、選択部と、を備える、
情報処理装置。
【請求項８】
コンピュータが、
ユーザーが移動させる物体の通る座標を検知する検知手順と、
第１時刻に検知された前記物体の座標である第１座標と、前記第１時刻より後である第２時刻に検知された前記物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する、候補円特定手順と、
前記候補円ごとに、前記候補円の中心座標から、前記第１座標、前記第２座標、及び前記第１時刻と前記第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する、分散算出手順と、
前記候補円ごとの前記分散に基づいて、前記複数の候補円の中から、前記ユーザーが前記物体を移動させた軌跡に対応する１つの円を選択する、選択手順と、を実行する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ユーザーが移動させる物体の軌跡を検出する技術に関する。
【背景技術】
【０００２】
近年、ウェアラブルデバイスが広く普及しており、このようなデバイスとのインタラクション手法が種々研究されている。この種のインタラクション手法として、ユーザーが体の一部（指など）或いはデバイスなどの物体を円形に移動させる、いわゆる円形ジェスチャーの軌跡を検出するものがある。更に、検出した円形軌跡の角度を算出し、当該角度に応じた値を入力値として用い、ディスプレイの表示画像のスクロール、デバイスが発する音量の変更、又は文字などの情報の入力などを行うものがある。
【０００３】
円形ジェスチャーの軌跡を検出する手法としては、特許文献１に開示された手法がある。この手法は、物体（ユーザーの体の一部、デバイスなど）の移動を走査（複数の点に分解）し、円形移動の円中心位置を、走査された点の履歴に応じて適合させていくものである。具体的には、新しい点（入力位置）毎に、現在の仮想円の中心位置と、円形移動の現在の出力角度（現在の仮想円の中心位置から現在位置へのベクトルと、正のＸ軸との間の角度）を算出する。そして、円形移動の現在位置の速度ベクトルと、以前位置の速度ベクトルから、円形移動の軌跡における極値を見出すとともに円中心位置を算出し、現在位置が当該極値の点に至るごとに円中心位置を更新する。特許文献１の手法では、以上のようにして物体の円形移動の軌跡を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１７−５３７３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザーが円形を描く際、正確な円形とならず凸凹した歪な円形となってしまうことがある。特に、ユーザーの手の平など不安定な場所に対して描く場合や空中で描く場合など、不安定な状況で描く場合には、正確な円形を描くことが特に困難となる。
【０００６】
特許文献１の手法では、上記の通り、円形移動の軌跡における極値を見出すとともに円中心位置を算出し、現在位置が当該極値の点に至るごとに円中心位置を更新する。換言すれば、円形軌跡における凸部（円中心から円外側に向かって突出する凸部）を見出したら、当該凸部に対応する円中心位置に更新する。同様に、円形軌跡における凹部（円中心側に凹んでいる凹部）を見出した場合も、当該凹部を凸部（逆側に突出する凸部）とみなし、当該軌跡に対して当該凸部の突出向きとは反対側の位置を円中心位置とする。このように、特許文献１のものでは、凹部（円中心側に凹んでいる凹部）を含まない凸部のみで構成される円形軌跡を前提としており、円形軌跡における極値に対応する部分（凹部、凸部）が凸部とみなすべきものか凹部とみなすべきものかに拘らず「凸部」とみなし、当該軌跡に対して当該凸部の突出向きとは反対側の位置を円中心位置とする。従って、円形軌跡が凹部（凹部とみなすべきもの）を含むものである場合には、ユーザーが描こうとした円とは全く異なる円を検出してしまうこととなる。このため、特許文献１のものでは、凹部を含む円形軌跡を正確に検出することができない。特に、過度に傾斜した凹凸があるなど複雑な歪となっている場合ほど、検出精度は低くなる。
【０００７】
そこで、本発明は、上記事情に鑑み、円形ジェスチャーの軌跡をより正確に検出することができるプログラム、情報処理装置、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係るプログラムは、コンピュータに、ユーザーが移動させる物体の通る座標を検知する検知手順と、第１時刻に検知された物体の座標である第１座標と、第１時刻より後である第２時刻に検知された物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する、候補円特定手順と、候補円ごとに、候補円の中心座標から、第１座標、第２座標、及び第１時刻と第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する、分散算出手順と、候補円ごとの分散に基づいて、複数の候補円の中から、ユーザーが物体を移動させた軌跡に対応する１つの円を選択する、選択手順と、を実行させる。
【０００９】
本発明の一態様に係る情報処理装置は、ユーザーが移動させる物体の通る座標を検知する検知部と、第１時刻に検知された物体の座標である第１座標と、第１時刻より後である第２時刻に検知された物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する、候補円特定部と、候補円ごとに、候補円の中心座標から、第１座標、第２座標、及び第１時刻と第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する、分散算出部と、候補円ごとの分散に基づいて、複数の候補円の中から、ユーザーが物体を移動させた軌跡に対応する１つの円を選択する、選択部と、を備える。
【００１０】
本発明の一態様に係る情報処理方法では、コンピュータが、ユーザーが移動させる物体の通る座標を検知する検知手順と、第１時刻に検知された物体の座標である第１座標と、第１時刻より後である第２時刻に検知された物体の座標である第２座標の両方を通り、半径が異なる複数の候補円を特定する、候補円特定手順と、候補円ごとに、候補円の中心座標から、第１座標、第２座標、及び第１時刻と第２時刻との間に検知された１つ又は複数の第３座標の各座標までの距離における分散を算出する、分散算出手順と、候補円ごとの分散に基づいて、複数の候補円の中から、ユーザーが物体を移動させた軌跡に対応する１つの円を選択する、選択手順と、を実行する。
【発明の効果】
【００１１】
本発明によれば、円形ジェスチャーの軌跡をより正確に検出することができるプログラムが提供される。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施形態に係るヘッドマウントディスプレイのハードウェア構成を示す図である。
【図２】図２は、本実施形態に係るヘッドマウントディスプレイの機能的構成を示す図である。
【図３】図３は、ユーザーが移動させる物体の座標の推移の一例を示す図である。
【図４】図４は、図３と同じ仮想平面における複数の領域に特定の情報が対応していることを示す図である。
【図５】図５は、図３と同じ仮想平面における複数の領域に特定の情報が対応していることを示す図である。
【図６】図６は、ディスプレイの表示画面の一部を示す図である。
【図７】図７は、ディスプレイの表示画面の一部を示す図である。
【図８】図８は、各候補円における中心座標から物体の軌跡までの距離の分布を示している。
【図９】図９は、図８に示す距離の分散を示している。
【図１０】図１０は、ディスプレイの表示画面の一部を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１４】
本実施形態は、本発明を、ユーザーの頭部に装着可能なディスプレイ装置であるヘッドマウントディスプレイ（Head Mounted Display）に適用した例である。
【００１５】
＜１．ヘッドマウントディスプレイのハードウェア構成＞
図１は、本実施形態に係るヘッドマウントディスプレイ１００のハードウェア構成を示すブロック図である。以下、ヘッドマウントディスプレイ１００をＨＭＤ１００ともいう。図１に示されるように、ＨＭＤ１００（コンピュータ）は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、深度センサ１０４、ディスプレイ１０５を備えている。
【００１６】
ＣＰＵ１０１は、ＨＭＤ１００の動作に関する各種演算処理を実行し、ディスプレイ１０５に表示する画像の生成等を実行する。ＲＯＭ１０２は、ＨＭＤ１００の動作に関する各種プログラムやデータ等を記憶する。ＲＡＭ１０３は、ＣＰＵ１０１の演算処理結果（ディスプレイ１０５に表示する画像等）や深度センサ１０４の検出結果等の各種情報を一時的に記憶する。深度センサ１０４は、赤外線を照射して物体との距離を検出するセンサである。深度センサ１０４は、当該物体の座標を検知するために用いられる。ディスプレイ１０５は、ＣＰＵ１０１の演算処理結果（画像等）等の各種情報を表示する。
【００１７】
＜２．ヘッドマウントディスプレイの機能的構成＞
図２は、本実施形態に係るＨＭＤ１００の機能的構成を示す模式図である。図２に示されるように、ＨＭＤ１００は、例示的に、検知部１１０と、候補円特定部１２０と、分散算出部１３０と、選択部１４０とを備えている。これらの各部は、例えば、ＲＯＭ１０２に記憶されているプログラムをＣＰＵ１０１が実行することにより実現される。
【００１８】
まず、検知部１１０について説明する。検知部１１０は、ユーザーが移動させる物体の座標を検知する機能を有する。検知部１１０は、深度センサ１０４を用いて実現される。
【００１９】
検知部１１０は、物体に施された色の種別に基づいて、当該物体を識別し、当該物体の座標を検知する。具体的には、検知部１１０は、物体が所定範囲（例えば、ユーザーの手の平）に配置されたら当該物体の検知を開始し、その後、所定時間ごと（例えば、１秒ごと）に当該物体の座標を検知する。なお、検知部１１０による検知開始のトリガーは、この態様に限られない。例えば、所定速度以上の速度で物体が移動開始したことを検知開始のトリガーとしてもよい。また、常に所定時間ごとに検知を行うようにしてもよい。以上のようにして、検知部１１０は、ユーザーが移動させる物体の座標を検知することが可能となる。
【００２０】
図３は、ユーザーが円を描く仮想平面、及び当該仮想平面における物体の座標の推移の一例を示す図である。尚、図中のベクトルＶＳは、Ｘ軸正の方向に向かうベクトル（以下、基準ベクトルＶＳという）である。以下、図３も参照しながら説明する。
【００２１】
検知部１１０は、物体の移動の検知が開始された時刻（以下、第１時刻という）における物体の座標（Ｘ１、Ｙ１）（第１座標）、当該検知が終了した時刻（以下、第２時刻という）における物体の座標（Ｘｎ、Ｙｎ）（ｎ≧３）（第２座標）、及び第１時刻と第２時刻との間における物体の座標（Ｘｍ、Ｙｍ）（ｍ＝２，…，ｎ−１）（第３座標）を検知することが可能である。
【００２２】
以上のようにして、ユーザーが移動させる物体の座標を検知する検知部１１０としての機能が、深度センサ１０４によって実現される。尚、検知部１１０による物体の座標の検知手法は、深度センサ１０４を用いた上記のものに限られず、他の技術により実現されてもよい。例えば、物体を撮影した画像を認識し、これに基づいて物体の座標を検知するものであってもよい。また、タッチパッド等の入力装置を用いて物体の座標を入力することにより当該座標を検知するものであってもよい。
【００２３】
次に、候補円特定部１２０、分散算出部１３０、選択部１４０について説明する。
【００２４】
候補円特定部１２０は、検知部１１０によって検知された物体の座標に基づいて、ユーザーが描こうとした円に近似する円の候補（以下、候補円という）を特定する。
【００２５】
分散算出部１３０は、候補円ごとに、候補円の中心座標（ｘ、ｙ）から、座標（Ｘ１、Ｙ１）、座標（Ｘｎ、Ｙｎ）（図３の例では、ｎ＝１１）、及び第１時刻と第２時刻との間に検知された１つ又は複数の座標（Ｘｍ、Ｙｍ）（ｍ＝２，…，ｎ−１）の各座標までの距離における分散ｓ2を算出する。
【００２６】
選択部１４０は、候補円ごとの分散ｓ2に基づいて、複数の候補円の中からユーザーが物体を移動させた軌跡に対応する１つの円を選択する。候補円特定部１２０、分散算出部１３０、及び選択部１４０は、ＣＰＵ１０１によって実現される。
【００２７】
まず、候補円特定部１２０について説明する。
【００２８】
候補円特定部１２０は、候補円の半径Ｒの長さ（以下、これを「半径ｒ」という）を複数特定する。半径ｒの最小値ｍｉｎと最大値ｍａｘが予め設定されている。候補円特定部１２０は、最小値ｍｉｎ以上かつ最大値ｍａｘ以下の値の半径ｒを複数特定する。候補円特定部１２０は、指数関数的に最小値ｍｉｎに近い半径ｒほど多くなるように、複数の半径ｒを特定する。このように特定するのは、ユーザーが画面いっぱいに円を描く（最大値ｍａｘに近い半径ｒの円を描く）ことは比較的少なく、また大きい半径ｒの場合は正確な候補円を特定しにくいなどの理由による。
【００２９】
尚、候補円の半径ｒを複数特定する方法は上記以外のものであってもよい。例えば、予め設定されたある中央値（例えば、半径ｒ＝１．０）、及びその前後に所定間隔（例えば、０．１間隔）ずつずらして得られる所定個（例えば、中央値と、その前後に５個ずつで、計１１個）の値を、半径ｒとして特定する、という方法であってもよい。この方法の場合、０．５，０．６，…，０．９，１．０，１．１，１．２，…，１．５の１１個の半径ｒが特定されることとなる。
【００３０】
候補円特定部１２０は、座標（Ｘ１、Ｙ１）と座標（Ｘｎ、Ｙｎ）の両方を通る円であって、上記のように特定された半径ｒの円を、候補円として特定する。これにより、複数の候補円が特定される。
【００３１】
次に、分散算出部１３０について説明する。
【００３２】
分散算出部１３０は、各候補円について、下記の連立方程式を解くことにより、候補円の中心座標（ｘ、ｙ）を算出する。
（Ｘ１−ｘ）2＋（Ｙ１−ｙ）2＝ｒ2
（Ｘｎ−ｘ）2＋（Ｙｎ−ｙ）2＝ｒ2
【００３３】
分散算出部１３０は、各候補円について、中心座標（ｘ、ｙ）から、座標（Ｘ１、Ｙ１）、座標（Ｘｎ、Ｙｎ）、及び第１時刻と第２時刻との間に検知された１つ又は複数の座標（Ｘｍ、Ｙｍ）の各座標までの距離を算出する。つまり、分散算出部１３０は、各候補円について、中心座標（ｘ、ｙ）から座標（Ｘ１、Ｙ１）までの距離Ｄ１、中心座標（ｘ、ｙ）から座標（Ｘｎ、Ｙｎ）までの距離Ｄｎ、中心座標から座標（Ｘｍ、Ｙｍ）までの距離Ｄｍ（ｍ＝２，…，ｎ−１）を算出する。
【００３４】
分散算出部１３０は、距離Ｄ１、距離Ｄｎ、距離Ｄｍの各距離における分散ｓ2を下記式により算出する。
【００３５】
【数１】
2020042611.tif 000003
（Ｄμ＝（Ｄ１＋Ｄ２＋・・・＋Ｄｎ）／ｎ）
【００３６】
次に、選択部１４０について説明する。
【００３７】
選択部１４０は、候補円特定部１２０によって特定された複数の候補円の中で分散ｓ2に基づいて、１つの円を選択する。より具体的には、選択部１４０は、複数の候補円の中で分散ｓ2の値が最も小さい１つの円を選択する。尚、分散ｓ2の値の低い順に複数の円を選択する態様であってもよい。
【００３８】
ここで、上記の通り、特許文献１に開示された手法では、円形軌跡における極値に対応する部分（凹部、凸部）が凸部とみなすべきものか凹部とみなすべきものかに拘らず「凸部」とみなし、当該軌跡に対して当該凸部の突出向きとは反対側の位置を円中心位置とする。従って、円形軌跡が凹部（凹部とみなすべきもの）を含むものである場合には、ユーザーが描こうとした円とは全く異なる円を検出してしまうこととなる。このため、特許文献１に開示された手法では、凹部を含む円形軌跡を正確に検出することができない。特に、過度に傾斜した凹凸があるなど複雑な歪となっている場合ほど、検出精度は低くなる。
【００３９】
これに対し、本実施形態では、上記の通り、選択部１４０は、中心座標（ｘ、ｙ）からの距離（距離Ｄ１、距離Ｄｎ、距離Ｄｍ）における分散ｓ2に基づいて円を選択する。換言すれば、特定の中心座標（ｘ、ｙ）に基づいた値（分散ｓ2）に基づいて円を選択する。従って、円形軌跡に凹部が含まれていても、上記特許文献１のように凸部の突出向きとは反対側の位置を円中心位置（座標）とするようなことは無いので、ユーザーが描こうとした円とは全く異なる円を特定してしまうことが無くなる。よって、本実施形態によれば、ユーザーが凹凸のある円形を描いた場合であっても、上記特許文献１のように円形移動の軌跡における極値に対応する部分（凸部）とは反対側の位置を円中心位置（座標）とする場合よりも高精度に当該軌跡を検出することができる。
【００４０】
引き続き、ＨＭＤ１００の機能的構成について説明する。ＨＭＤ１００は、更に、例示的に、角度算出部１５０と、情報特定部１６０と、画像生成部１７０を備えている。角度算出部１５０は、選択部１４０によって選択された円の中心座標（ｘ、ｙ）から座標（Ｘ１、Ｙ１）へのベクトルである第１ベクトルＶ１と、中心座標（ｘ、ｙ）から座標（Ｘｎ、Ｙｎ）へのベクトルである第２ベクトルＶ２との間の角度である第１角度Ａ１などの角度を算出する。情報特定部１６０は、角度算出部１５０によって算出された角度（第１角度Ａ１など）に基づいて各種情報を特定する。画像生成部１７０は、角度算出部１５０によって算出された第１角度Ａ１を示す画像を生成する。角度算出部１５０、情報特定部１６０、および画像生成部１７０もＣＰＵ１０１によって実現される。
【００４１】
まず、角度算出部１５０について説明する。
【００４２】
角度算出部１５０は、第１ベクトルＶ１と第２ベクトルＶ２の内積と外積を算出し、これらの値に基づいて第１角度Ａ１を算出する。第１角度Ａ１は、上記した通り、「選択部１４０によって選択された円の中心座標（ｘ、ｙ）から座標（Ｘ１、Ｙ１）へのベクトルである第１ベクトルＶ１と、中心座標（ｘ、ｙ）から座標（Ｘｎ、Ｙｎ）へのベクトルである第２ベクトルＶ２との間の角度」である。尚、本実施形態では、図３における反時計回りの向きを正の回転向きとしている。
【００４３】
角度算出部１５０は、基準ベクトルＶＳと第１ベクトルＶ１の内積と外積を算出し、これらの値に基づいて、基準ベクトルＶＳと第１ベクトルＶ１との間の角度Ａ２（以下、第２角度Ａ２という）を更に算出する。
【００４４】
以上のようにして、第１角度Ａ１及び第２角度Ａ２を算出する角度算出部１５０としての機能が、ＣＰＵ１０１によって実現される。
【００４５】
次に、情報特定部１６０について説明する。
【００４６】
図４及び図５は、図３と同じ仮想平面が基準ベクトルＶＳとの位置関係に応じて複数の領域に分けられ、各領域に特定の情報が対応していることを示している。具体的には、図４は、各領域に文字群（「Ａ〜Ｇ」、「Ｈ〜Ｎ」、…）が対応していることを示している。図５は、各領域に、文字群「Ａ〜Ｇ」に含まれる文字（「Ａ」、「Ｂ」、…、「Ｇ」）が対応していることを示している。図示は省略してあるが、「Ａ〜Ｇ」以外の文字群においても同様に対応関係が設定されている。
【００４７】
図４に示されるように、図中の上側の領域（つまり、基準ベクトルＶＳとの角度が「４５度以上１３５度未満」の領域）は、文字群「Ａ〜Ｇ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「１３５度以上２２５度未満」の領域）は、文字群「Ｈ〜Ｎ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「２２５度以上３１５度未満」の領域）は、文字群「Ｏ〜Ｕ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「３１５度以上３６０度未満」又は「０度以上４５度未満」の領域）は、文字群「Ｖ〜Ｚ，ＢＳ，ａＡ」が対応している。尚、「ＢＳ」は「Ｂａｃｋ  ｓｐａｃｅ」に対応し、「ａＡ」は大文字小文字の変換に対応している。
【００４８】
図５に示されるように、図中の上側の領域（つまり、基準ベクトルＶＳとの角度が「９０度以上１８０度未満」の領域）は、文字「Ａ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「１８０度以上２２５度未満」の領域）は、文字「Ｂ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「２２５度以上２７０度未満」の領域）は、文字「Ｃ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「２７０度以上３１５度未満」の領域）は、文字「Ｄ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「３１５度以上３６０度未満」の領域）は、文字「Ｅ」が対応している。反時計回りに次の領域（つまり、基準ベクトルＶＳとの角度が「０度以上４５度未満」の領域）は、文字「Ｆ」が対応している。
【００４９】
尚、円の描き始めは物体の軌跡が安定しにくい（正確な円となりにくい）が、本実施形態においては、上記のように円の書き始めの領域（基準ベクトルＶＳとの角度が「９０度以上１８０度未満」の領域）の角度範囲が他の領域よりも広くなっている（他領域が「４５度」であるのに対して「９０度」）ので、比較的容易に、正確な円を描くことができる。
【００５０】
情報特定部１６０は、図４に示される複数の文字群（「Ａ〜Ｇ」、「Ｈ〜Ｎ」、…）の中から、第２角度Ａ２に応じた１つの文字群を特定する（換言すれば、第１ベクトルＶ１が通る１つの領域に対応する文字群を特定する）。次に、情報特定部１６０は、特定した文字群の中から、第１角度Ａ１に応じた１つの文字を特定する。情報特定部１６０は、例えば、「第１角度Ａ１に第２角度Ａ２を足した角度」に応じた文字群を特定する（換言すれば、第２ベクトルＶ２が通る１つの領域に対応する文字を特定する）。図３の第１角度Ａ１及び第２角度Ａ２の場合には、まず、第２角度Ａ２に応じた文字群「Ａ〜Ｇ」を特定し、次に、第１角度Ａ１に応じた文字「Ｃ」を特定する。
【００５１】
ＨＭＤ１００は、このように特定された文字を入力値とする入力装置として機能する。
【００５２】
尚、本実施形態では文字を特定する態様としてあるが、文字以外の情報を特定し、当該情報を入力する態様であってもよい。また、第１角度Ａ１及び第２角度Ａ２を用いて情報を特定する態様であったが、第１角度Ａ１（換言すれば、ユーザーが物体を変位させた量）のみを用いて情報を特定及び入力する態様としてもよい。例えば、第１角度Ａ１に基づいて、ディスプレイ１０５の表示画像のスクロール、ＨＭＤ１００又は他のデバイスが発する音量の変更等を行う態様としてもよい。
【００５３】
以上のようにして、角度算出部１５０によって算出された角度に基づいて各種情報を特定する情報特定部１６０としての機能が、ＣＰＵ１０１によって実現される。
【００５４】
次に、画像生成部１７０について説明する。
【００５５】
画像生成部１７０は、角度算出部１５０で算出された第１角度Ａ１を示す画像を生成する。（第１角度Ａ１を示す画像の例については図１０を参照）
【００５６】
以上のようにして、画像生成部１７０としての機能が、ＣＰＵ１０１によって実現される。
【００５７】
なお、ＨＭＤ１００の上記機能的構成の一部又は全部が、ＨＭＤ１００以外の装置によって実現されてもよく、コンピュータネットワーク上において実現されてもよい。
【００５８】
＜３．ヘッドマウントディスプレイの動作例＞
図６は、ディスプレイ１０５に表示される画像の一部を示す図である。この例では、ユーザーが手に持つ棒状道具ＲＴを移動させたときの軌跡を検出する。棒状道具ＲＴの先端には青色部分Ｂが形成されており、検知部１１０は、青色部分Ｂの青色を検知することにより棒状道具ＲＴを識別し、その座標を検知する。
【００５９】
ユーザーが、その手の平において、円を描くように棒状道具ＲＴを移動させると、検知部１１０は、第１時刻における座標（Ｘ１、Ｙ１）、第２時刻における座標（Ｘ１１、Ｙ１１）、及び第１時刻と第２時刻との間における棒状道具ＲＴの座標（Ｘｍ、Ｙｍ）（ｍ＝２，…，１０）を検知する。尚、上記した通り、第１時刻は棒状道具ＲＴの移動の検知が開始された時刻であり、第２時刻は移動途中の現時刻である。
【００６０】
次に、候補円特定部１２０は、複数の候補円を特定する。候補円特定部１２０は、上記のように複数の半径ｒを特定し、その結果、１１個の候補円（以下、それぞれ候補円を、候補円Ｃ１、候補円Ｃ２、…、候補円Ｃ１１という）を特定する。
【００６１】
図７は、図６と同様にディスプレイ１０５の表示画面を示す図であり、特定された複数の候補円が表示されている状態を示している。尚、図４では、便宜上、すべての候補円Ｃ１、Ｃ２、…、Ｃ１１のうちの一部である候補円Ｃ２、Ｃ４、Ｃ６、Ｃ８、Ｃ１０のみを示し、その他の残りの候補円の図示を省略してある。
【００６２】
各候補円の区別が可能なように、各候補円は互いに異なる色の線で表示される。具体的には、半径ｒが小さい候補円ほど赤色、半径ｒが大きい候補円ほど白色で表示される。尚、図７では、便宜上、各候補円の線の太さの違いで候補円の区別が可能となるようにしてある。
【００６３】
次に、分散算出部１３０は、上記した通り、各候補円について、中心座標（ｘ、ｙ）から座標（Ｘ１、Ｙ１）までの距離Ｄ１、中心座標（ｘ、ｙ）から座標（Ｘｎ、Ｙｎ）までの距離Ｄｎ、中心座標（ｘ、ｙ）から座標（Ｘｍ、Ｙｍ）までの距離Ｄｍ（ｍ＝２，…，ｎ−１）を算出する。図８は、各候補円における中心座標（ｘ、ｙ）から物体の軌跡（座標（Ｘ１、Ｙ１）、（Ｘｎ、Ｙｎ）、座標（Ｘｍ、Ｙｍ））までの距離の分布を示している。図９は、図８に示す距離の分散ｓ2を示している。この例では、図９に示されるように、候補円Ｃ６の分散ｓ2が最も小さいので、選択部１４０は、候補円Ｃ６を選択する。
【００６４】
次に、角度算出部１５０は、第１角度Ａ１（この例では「１８３度」）及び第２角度Ａ２（この例では「９３度」）を算出する。
【００６５】
次に、情報特定部１６０は、第２角度Ａ２が「９３度」であるので、文字群「Ａ〜Ｇ」を特定し、第１角度Ａ１が「１８３度」である（従って、「第１角度Ａ１に第２角度Ａ２を足した角度」が「２７６度」）ので、文字「D」を特定する。
【００６６】
また、画像生成部１７０は、第１角度Ａ１（この例では「１８３度」）を示す画像を生成する。図１０に示されるように、ディスプレイ１０５の画面に「１８３度」が表示される。尚、図１０では、選択部１４０によって選択された候補円Ｃ６の一部である円弧Ｃ６１（候補円Ｃ６を近似円とした場合の物体の軌跡）も表示されている。
【００６７】
＜４．変形例＞
上記の例では、ユーザーが手に持つ棒状道具ＲＴを移動させたときの軌跡を検出する態様であったが、検出する対象は、ユーザーが移動させる物体であれば特に限定されない。例えば、ユーザーの手を検出対象とし、手を移動させたときの軌跡を検出する態様であってもよい。
【００６８】
例えば、画像認識により、２本の指（例えば、親指と人差し指）の先端を離した状態とくっつけた状態とを識別する態様とすることができる。２本の指の先端を離した状態からくっつけた状態になったら指の座標の検知を開始し（つまり、この時を第１時刻とする）、２本の指を離した状態に戻ったら当該検知を終了する（つまり、この時を第２時刻とする）。このような態様であっても、上記の棒状道具ＲＴの例と同様に、円形ジェスチャーの軌跡を検出することができ、尚且つ同様の効果を得ることができる。なお、開始及び終了のトリガーとなるジェスチャーはこれに限られず、任意のジェスチャーを採用することができる。
【００６９】
また、上記の例では、物体の移動の検知が開始された時刻を第１時刻、当該検知が終了した時刻を第２時刻とし、第１時刻における物体の座標と、第２時刻における物体の座標を通る円を候補円としている。しかしながら、この第１時刻と第２時刻はこのような時刻に限られない。つまり、物体の移動の検知が開始された後の時刻を第１時刻としてもよいし、当該検知が終了する前の時刻を第２時刻としてもよい。
【００７０】
以上、具体例を参照しつつ本実施形態について説明した。しかし、本発明はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
【符号の説明】
【００７１】
１００：ヘッドマウントディスプレイ
Ａ１：第１角度
Ａ２：第２角度
Ｖ１：第１ベクトル
Ｖ２：第２ベクトル
ＶＳ：基準ベクトル
Ｃ１，Ｃ２，…，Ｃ１１：候補円
【図１】
2020042611.tif 000004
【図２】
2020042611.tif 000005
【図３】
2020042611.tif 000006
【図４】
2020042611.tif 000007
【図５】
2020042611.tif 000008
【図６】
2020042611.tif 000009
【図７】
2020042611.tif 000010
【図８】
2020042611.tif 000011
【図９】
2020042611.tif 000012
【図１０】
2020042611.tif 000013