<実施の形態1>
<構成>
図1は、実施の形態に係る視線検出システム1の概観を模式的に示す図である。実施の形態に係る視線検出システム1は、ヘッドマウントディスプレイ100と視線検出装置200とを含む。図1に示すように、ヘッドマウントディスプレイ100は、ユーザ300の頭部に装着して使用される。
視線検出装置200は、ヘッドマウントディスプレイ100を装着したユーザの右目及び左目の視線方向を検出し、ユーザの焦点、すなわち、ユーザがヘッドマウントディスプレイに表示されている三次元画像において注視している箇所を特定する。また、視線検出装置200は、ヘッドマウントディスプレイ100が表示する映像を生成する映像生成装置としても機能する。限定はしないが、一例として、視線検出装置200は、据え置き型のゲーム機、携帯ゲーム機、PC、タブレット、スマートフォン、ファブレット、ビデオプレイヤ、テレビ等の映像を再生可能な装置である。視線検出装置200は、ヘッドマウントディスプレイ100と無線または有線で接続する。図1に示す例では、視線検出装置200はヘッドマウントディスプレイ100と無線で接続している。視線検出装置200がヘッドマウントディスプレイ100との無線接続は、例えば既知のWi−Fi(登録商標)やBluetooth(登録商標)等の無線通信技術を用いて実現できる。限定はしないが、一例として、ヘッドマウントディスプレイ100と視線検出装置200との間における映像の伝送は、Miracast(商標)やWiGig(商標)、WHDI(商標)等の規格に則って実行される。
なお、図1は、ヘッドマウントディスプレイ100と視線検出装置200とが異なる装置である場合の例を示している。しかしながら、視線検出装置200はヘッドマウントディスプレイ100に内蔵されてもよい。
ヘッドマウントディスプレイ100は、筐体150、装着具160、およびヘッドフォン170を備える。筐体150は、画像表示素子などユーザ300に映像を提示するための画像表示系や、図示しないWi−FiモジュールやBluetooth(登録商標)モジュール等の無線伝送モジュールを収容する。装着具160は、ヘッドマウントディスプレイ100をユーザ300の頭部に装着する。装着具160は例えば、ベルトや伸縮性の帯等で実現できる。ユーザ300が装着具160を用いてヘッドマウントディスプレイ100を装着すると、筐体150はユーザ300の眼を覆う位置に配置される。このため、ユーザ300がヘッドマウントディスプレイ100を装着すると、ユーザ300の視界は筐体150によって遮られる。
ヘッドフォン170は、視線検出装置200が再生する映像の音声を出力する。ヘッドフォン170はヘッドマウントディスプレイ100に固定されなくてもよい。ユーザ300は、装着具160を用いてヘッドマウントディスプレイ100を装着した状態であっても、ヘッドフォン170を自由に着脱することができる。
図2は、実施の形態に係るヘッドマウントディスプレイ100の画像表示系130の概観を模式的に示す斜視図である。より具体的に、図2は、実施の形態に係る筐体150のうち、ヘッドマウントディスプレイ100を装着したときにユーザ300の角膜302に対向する領域を示す図である。
図2に示すように、左目用凸レンズ114aは、ユーザ300がヘッドマウントディスプレイ100を装着したときに、ユーザ300の左目の角膜302aと対向する位置となるように配置される。同様に、右目用凸レンズ114bは、ユーザ300がヘッドマウントディスプレイ100を装着したときに、ユーザ300の右目の角膜302bと対向する位置となるように配置される。左目用凸レンズ114aと右目用凸レンズ114bとは、それぞれ左目用レンズ保持部152aと右目用レンズ保持部152bとに把持されている。
以下本明細書において、左目用凸レンズ114aと右目用凸レンズ114bとを特に区別する場合を除いて、単に「凸レンズ114」と記載する。同様に、ユーザ300の左目の角膜302aとユーザ300の右目の角膜302bとを特に区別する場合を除いて、単に「角膜302」と記載する。左目用レンズ保持部152aと右目用レンズ保持部152bとも、特に区別する場合を除いて「レンズ保持部152」と記載する。
レンズ保持部152には、複数の赤外光源103が備えられている。煩雑となることを避けるために、図2においてはユーザ300の左目の角膜302aに対して赤外光を照射する赤外光源をまとめて赤外光源103aで示し、ユーザ300の右目の角膜302bに対して赤外光を照射する赤外光源をまとめて赤外光源103bで示す。以下、赤外光源103aと赤外光源103bとを特に区別する場合を除いて「赤外光源103」と記載する。図2に示す例では、左目用レンズ保持部152aには6つの赤外光源103aが備えられている。同様に、右目用レンズ保持部152bにも6つの赤外光源103bが備えられている。このように、赤外光源103を凸レンズ114に直接配置せず、凸レンズ114を把持するレンズ保持部152に配置することにより、赤外光源103の取り付けが容易となる。一般にレンズ保持部152は樹脂等で構成されるため、ガラス等から構成される凸レンズ114よりも赤外光源103を取り付けるための加工が容易でからである。
上述したように、レンズ保持部152は凸レンズ114を把持する部材である。したがって、レンズ保持部152に備えられた赤外光源103は、凸レンズ114の周囲に配置されることになる。なお、ここでは、それぞれの眼に対して赤外光を照射する赤外光源103を6つとしているが、この数はこれに限定されるものではなく、それぞれの眼に対応して少なくとも1つあればよく、2以上配されているのが望ましい。
図3は、実施の形態に係る筐体150が収容する画像表示系130の光学構成を模式的に示す図であり、図2に示す筐体150を左目側の側面から見た場合の図である。画像表示系130は、赤外光源103、画像表示素子108、ホットミラー112、凸レンズ114、カメラ116、および第1通信部118を備える。
赤外光源103は、近赤外(700nm〜2500nm程度)の波長帯域の光を照射可能な光源である。近赤外光は、一般に、ユーザ300の肉眼では観測ができない非可視光の波長帯域の光である。
画像表示素子108は、ユーザ300に提示するための画像を表示する。画像表示素子108が表示する画像は、視線検出装置200内の映像出力部222が生成する。映像出力部222については後述する。画像表示素子108は、例えば既知のLCD(Liquid Crystal Display)や有機ELディスプレイ(Organic Electro Luminescence Display)を用いて実現できる。
ホットミラー112は、ユーザ300がヘッドマウントディスプレイ100を装着したときに、画像表示素子108とユーザ300の角膜302との間に配置される。ホットミラー112は、画像表示素子108が生成する可視光は透過するが、近赤外光は反射する性質を持つ。
凸レンズ114は、ホットミラー112に対して、画像表示素子108の反対側に配置される。言い換えると、凸レンズ114は、ユーザ300がヘッドマウントディスプレイ100を装着したときに、ホットミラー112とユーザ300の角膜302との間に配置される。すなわち、凸レンズ114は、ヘッドマウントディスプレイ100がユーザ300に装着されたときに、ユーザ300の角膜302に対向する位置に配置される。
凸レンズ114はホットミラー112を透過する画像表示光を集光する。このため、凸レンズ114は、画像表示素子108が生成する画像を拡大してユーザ300に提示する画像拡大部として機能する。なお、説明の便宜上、図2では凸レンズ114をひとつのみ示しているが、凸レンズ114は、種々のレンズを組み合わせて構成されるレンズ群であってもよし、一方が曲率を持ち、他方が平面の片凸レンズであってもよい。
複数の赤外光源103は、凸レンズ114の周囲に配置されている。赤外光源103は、ユーザ300の角膜302に向けて赤外光を照射する。
図示はしないが、実施の形態に係るヘッドマウントディスプレイ100の画像表示系130は画像表示素子108を二つ備えており、ユーザ300の右目に提示するための画像と左目に提示するための画像とを独立に生成することができる。このため、実施の形態に係るヘッドマウントディスプレイ100は、ユーザ300の右目と左目とに、それぞれ右目用の視差画像と左目用の視差画像とを提示することができる。これにより、実施の形態に係るヘッドマウントディスプレイ100は、ユーザ300に対して奥行き感を持った立体映像を提示することができる。
上述したように、ホットミラー112は、可視光を透過し、近赤外光を反射する。したがって、画像表示素子108が照射する画像光はホットミラー112を透過してユーザ300の角膜302まで到達する。また赤外光源103から照射され、凸レンズ114の内部の反射領域で反射された赤外光は、ユーザ300の角膜302に到達する。
ユーザ300の角膜302に到達した赤外光は、ユーザ300の角膜302で反射され、再び凸レンズ114の方向に向かう。この赤外光は凸レンズ114を透過し、ホットミラー112で反射される。カメラ116は可視光を遮断するフィルタを備えており、ホットミラー112で反射された近赤外光を撮像する。すなわち、カメラ116は、赤外光源103から照射され、ユーザ300の眼で角膜反射された近赤外光を撮像する近赤外カメラである。
なお、図示はしないが、実施の形態に係るヘッドマウントディスプレイ100の画像表示系130は、カメラ116を二つ、すなわち、右目で反射された赤外光を含む画像を撮像する第1撮像部と、左目で反射された赤外光を含む画像を撮像する第2撮像部とを備える。これにより、ユーザ300の右目及び左目の双方の視線方向を検出するための画像を取得することができる。
第1通信部118は、カメラ116が撮像した画像を、ユーザ300の視線方向を検出する視線検出装置200に出力する。具体的には、第1通信部118は、カメラ116が撮像した画像を視線検出装置200に送信する。視線方向検出部として機能する視線検出部221、視線検出部221の詳細については後述するが、視線検出装置200のCPU(Central Processing Unit)が実行する視線検出プログラムによって実現される。なお、ヘッドマウントディスプレイ100がCPUやメモリ等の計算リソースを持っている場合には、ヘッドマウントディスプレイ100のCPUが視線方向検出部を実現するプログラムを実行してもよい。
詳細は後述するが、カメラ116が撮像する画像には、ユーザ300の角膜302で反射された近赤外光に起因する輝点と、近赤外の波長帯域で観察されるユーザ300の角膜302を含む眼の画像とが撮像されている。
以上は、実施の形態に係る画像表示系130のうち主にユーザ300の左目に画像を提示するための構成について説明したが、ユーザ300の右目に画像を提示するための構成は上記と同様である。
図4は、視線検出システム1に係るヘッドマウントディスプレイ100と視線検出装置200とのブロック図である。図4に示すように、また、上述したとおり、視線検出システム1は、互いに通信を実行するヘッドマウントディスプレイ100と視線検出装置200とを含む。
図4に示すようにヘッドマウントディスプレイ100は、第1通信部118と、第1表示部121と、赤外光照射部122と、画像処理部123と、撮像部124とを備える。
第1通信部118は、視線検出装置200の第2通信部220と通信を実行する機能を有する通信インターフェースである。上述したとおり、第1通信部118は、有線通信又は無線通信により第2通信部220と通信を実行する。使用可能な通信規格の例は上述した通りである。第1通信部118は、撮像部124または画像処理部123から伝送された視線検出に用いる画像データを第2通信部220に送信する。また、第1通信部118は、視線検出装置200から送信された三次元画像データやマーカー画像を第1表示部121に伝達する。
第1表示部121は、第1通信部118から伝達された三次元画像データを画像表示素子108に表示する機能を有する。三次元画像データは、右目用視差画像と左目用視差画像とを含み、それらは視差画像対となっている。第1表示部121は、マーカー画像出力部223から出力されたマーカー画像を画像表示素子108の指定されている座標に表示する。
赤外光照射部122は、赤外光源103を制御し、ユーザの右目又は左目に赤外光を照射する。
画像処理部123は、必要に応じて、撮像部124が撮像した画像に画像処理を行い、第1通信部118に伝達する。
撮像部124は、カメラ116を用いて、それぞれの目で反射された近赤外光を含む画像を撮像する。また、撮像部124は、画像表示素子108に表示されたマーカー画像を注視するユーザの眼を含む画像を撮像する。撮像部124は、撮像して得た画像を、第1通信部118又は画像処理部123に伝達する。撮像部124は、動画を撮像することとしてもよいし、適宜適切なタイミング(例えば、近赤外光を照射しているタイミングや、マーカー画像を表示しているタイミング)で静止画を撮像することとしてもよい。
図4に示すように視線検出装置200は、第2通信部220と、視線検出部221と、映像出力部222と、マーカー画像出力部223と、判定部224と、合成画像出力部225と、第2表示部226と、記憶部227とを備える。
第2通信部220は、ヘッドマウントディスプレイ100の第1通信部118と通信を実行する機能を有する通信インターフェースである。上述したとおり、第2通信部220は、有線通信又は無線通信により第1通信部118と通信を実行する。第2通信部220は、映像出力部222から伝達された三次元画像データや、マーカー画像出力部223から伝達されたマーカー画像とその表示座標位置や、ヘッドマウントディスプレイ100に送信する。また、ヘッドマウントディスプレイ100から伝達された撮像部124により撮像されたマーカー画像を注視するユーザの眼を含む画像を判定部224及び合成画像出力部225に伝達し、映像出力部222が出力した三次元画像データに基づいて表示された画像を見るユーザの眼を撮像した画像を視線検出部221に伝達する。
視線検出部221は、第2通信部220からユーザの右目の視線検出用の画像データを受け付けて、ユーザの右目の視線方向を検出する。視線検出部221は、後述する手法を用いて、ユーザの右目の視線方向を示す右目視線ベクトルを算出し、及び、ユーザの左目の視線方向を示す左目視線ベクトルを算出し、ユーザが画像表示素子108において表示されている画像の注視している箇所を特定する。
映像出力部222は、ヘッドマウントディスプレイ100の第1表示部121に表示させる三次元画像データを生成し、第2通信部220に伝達する。映像出力部222は、出力する三次元画像の座標系並びに当該座標系において表示されるオブジェクトの三次元の位置座標を示す情報を保持する。
マーカー画像出力部223は、視線検出のための事前準備であるキャリブレーションを行うための指標となるマーカー画像を生成し、その表示位置を決定する機能を有する。マーカー画像出力部223は、マーカー画像を生成し、当該マーカー画像を画像表示素子108において表示すべき表示座標位置を決定する。マーカー画像出力部223は、生成したマーカー画像と、その表示座標位置とを第2通信部220に伝達し、ヘッドマウントディスプレイ100に送信するよう指示する。なお、本実施の形態においては、マーカー画像出力部223は、視線検出装置200のオペレータからの入力指示に従って、マーカー画像の表示位置を変更する。
また、マーカー画像出力部223は、判定部224からユーザの眼を含む画像が視線検出の画像として用いることができない旨とその際のマーカー画像の表示座標位置とを伝達されると、その表示座標位置を画像表示素子108の中央寄りの座標位置に変更した新たな表示座標位置とマーカー画像とを第2通信部220に伝達し、ヘッドマウントディスプレイ100に送信するよう指示する。
判定部224は、第2通信部220から伝達されたマーカー画像を注視するユーザの眼を含む画像に基づいて、当該画像におけるユーザの眼の画像が視線検出のための画像として利用可能であるか否かを判定する機能を有する。具体的には、判定部224は、第2通信部220から伝達されたマーカー画像を注視するユーザの眼を含む画像において、ユーザの黒目(角膜)を特定し、その中心位置を特定できるか否かによって判定する。判定部224は、第2通信部220から伝達されたマーカー画像を注視するユーザの眼を含む画像が、視線検出のための画像として用をなさない、すなわち、黒目の中心を特定できないと判定した場合には、マーカー画像出力部223にその旨を当該マーカー画像の表示座標位置とともに伝達する。
合成画像出力部225は、マーカー画像出力部223が出力したマーカー画像をその表示位置の左右を反転させた画像と、第2通信部220から伝達されたマーカー画像を注視するユーザの眼を含む撮像画像と、を合成して合成画像生成する機能を有する。合成画像出力部225は、生成した合成画像を第2表示部226に出力する。
第2表示部226は、画像を表示するモニタを含み、合成画像出力部225から伝達された合成画像を表示する機能を有する。すなわち、第2表示部226は、マーカー画像を注視するユーザの眼の画像と、その時の対応する位置に表示させたマーカー画像とを重畳した合成画像を表示する。
記憶部227は、視線検出装置200が動作上必要とする各種プログラムやデータを記憶する記録媒体である。なお、図4においては、記憶部227は他の機能部との接続線を示していないが、各機能部は、適宜必要なプログラム、データを、記憶部227にアクセスして参照する。
次に、実施の形態に係る視線方向の検出について説明する。
図5は、実施の形態に係る視線方向の検出のためのキャリブレーションを説明する模式図である。ユーザ300の視線方向は、カメラ116が撮像し第1通信部118が視線検出装置200に出力した映像を、視線検出装置200内の視線検出部221及び視線検出部221が解析することにより実現される。
マーカー画像出力部223は、図5に示すような点Q1〜Q9までの9つの点(マーカー画像)を生成し、ヘッドマウントディスプレイ100の画像表示素子108に表示させる。視線検出装置200は、点Q1〜点Q9に到るまで順番にユーザ300に注視させる。このとき、ユーザ300は首を動かさずに極力眼球の動きのみで各点を注視するように求められる。カメラ116は、ユーザ300が点Q1〜Q9までの9つの点を注視しているときのユーザ300の角膜302を含む画像を撮像する。
図6は、ユーザ300の角膜302の位置座標を説明する模式図である。視線検出装置200内の視線検出部221は、カメラ116が撮像した画像を解析して赤外光に由来する輝点105を検出する。ユーザ300が眼球の動きのみで各点を注視しているときは、ユーザがいずれの点を注視している場合であっても、輝点105の位置は動かないと考えられる。そこで視線検出部221は、検出した輝点105をもとに、カメラ116が撮像した画像中に2次元座標系306を設定する。
視線検出部221はまた、カメラ116が撮像した画像を解析することにより、ユーザ300の角膜302の中心Pを検出する。これは例えばハフ変換やエッジ抽出処理等、既知の画像処理を用いることで実現できる。これにより、視線検出部221は、設定した2次元座標系306におけるユーザ300の角膜302の中心Pの座標を取得できる。
図5において、画像表示素子108が表示する表示画面に設定された2次元座標系における点Q1〜点Q9の座標をそれぞれQ1(x1,y1)T,Q2(x2,y2)T・・・,Q9(x9,y9)Tとする。各座標は、例えば各点の中心に位置する画素の番号となる。また、ユーザ300が点Q1〜点Q9を注視しているときの、ユーザ300角膜302の中心Pを、それぞれ点P1〜P9とする。このとき、2次元座標系306における点P1〜P9の座標をそれぞれP1(X1,Y1)T,P2(X2,Y2)T,・・・,P9(X9,Y9)Tとする。なお、Tはベクトルまたは行列の転置を表す。
いま、2×2の大きさの行列Mを以下の式(1)のように定義する。
このとき、行列Mが以下の式(2)を満たせば、行列Mはユーザ300の視線方向を画像表示素子108が表示する画像面に射影する行列となる。
QN=MPN (N=1,・・・,9) (2)
上記式(2)を具体的に書き下すと以下の式(3)のようになる。
とおくと、以下の式(5)を得る。
y=Ax (5)
式(5)において、ベクトルyの要素は視線検出部221が画像表示素子108に表示させる点Q1〜Q9の座標であるため既知である。また、行列Aの要素はユーザ300の角膜302の頂点Pの座標であるため取得できる。したがって、視線検出部221は、ベクトルyおよび行列Aを取得することができる。なお、変換行列Mの要素を並べたベクトルであるベクトルxは未知である。したがって、行列Mを推定する問題は、ベクトルyと行列Aとが既知であるとき、未知ベクトルxを求める問題となる。
式(5)は、未知数の数(すなわちベクトルxの要素数4)よりも式の数(すなわち、視線検出部221がキャリブレーション時にユーザ300に提示した点Qの数)が多ければ、優決定問題となる。式(5)に示す例では、式の数は9つであるため、優決定問題である。
ベクトルyとベクトルAxとの誤差ベクトルをベクトルeとする。すなわち、e=y−Axである。このとき、ベクトルeの要素の二乗和を最小にするという意味で最適なベクトルxoptは、以下の式(6)で求められる。
xopt=(ATA)−1ATy (6)
ここで「−1」は逆行列を示す。
視線検出部221は、求めたベクトルxoptの要素を用いることで、式(1)の行列Mを構成する。これにより、視線検出部221は、ユーザ300の角膜302の頂点Pの座標と行列Mとを用いることで、式(2)にしたがい、ユーザ300の右目が画像表示素子108が表示する動画像上のどこを注視しているかを2次元の範囲で推定できる。これにより、視線検出部221は、画像表示素子108上の右目の注視点と、ユーザの右目の角膜の頂点とを結ぶ右目視線ベクトルを算出することができる。同様に、視線検出部221は、画像表示素子108上の左目の注視点と、ユーザの左目の角膜の頂点とを結ぶ左目視線ベクトルを算出することができる。
図7は、合成画像出力部225が出力する合成画像の例を示す図である。
図7(a)は、ヘッドマウントディスプレイ100においてユーザから見て右上、すなわち、図5で言えば点Q3の位置にマーカー画像が表示されているときに、当該マーカー画像を注視するユーザの左目を撮像した画像と、その時の画面に対する相対位置に表示されたマーカー画像とを合成した合成画像の例を示す図である。なお、ユーザの眼を見ている状態において、マーカー画像の位置は、左右対称になる。
図7(b)は、ヘッドマウントディスプレイ100においてユーザから見て画面中央上部、すなわち、図5で言えば点Q2の位置にマーカー画像が表示されているときに、当該マーカー画像を注視するユーザの左目を撮像した画像と、その時の画面に対する相対位置に表示されたマーカー画像とを合成した合成画像の例を示す図である。なお、ユーザの眼を見ている状態において、マーカー画像の位置は、左右対称になる。
図7(c)は、ヘッドマウントディスプレイ100においてユーザから見て左上、すなわち、図5で言えば点Q1の位置にマーカー画像が表示されているときに、当該マーカー画像を注視するユーザの左目を撮像した画像と、その時の画面に対する相対位置に表示されたマーカー画像とを合成した合成画像の例を示す図である。
このような合成画像が第2表示部226に表示されることにより、視線検出システム1のオペレータは、ヘッドマウントディスプレイ100を装着するユーザが、キャリブレーション時にマーカー画像を注視しているか否かの確認を行うことができる。なお、図7には図示していないが、このような合成画像が、図5に示す9つの点Q1〜Q9それぞれについて生成され、表示されることになる。また、図7では、ユーザの左目の例を示しているが、これは、ユーザの右目についても同様の合成画像を得ることができる。
<動作>
図8は、視線検出システム1のキャリブレーション時の動作を示すフローチャートである。図8を用いて、視線検出システム1の動作を説明する。
視線検出装置200のマーカー画像出力部223は、表示するマーカー画像Qiについてi=1とする(ステップS801)。
マーカー画像出力部223は、i番目の表示座標位置にマーカー画像をヘッドマウントディスプレイ100の画像表示素子108に表示させる(ステップS802)。すなわち、マーカー画像出力部223は、マーカー画像を生成し、その表示座標位置を決定する。例えば、i=1の場合であれば、点Q1を表示座標位置として決定する。マーカー画像出力部223は、第2通信部220に生成したマーカー画像とその表示座標位置を第2通信部220に伝達する。第2通信部220は、伝達されたマーカー画像とその表示座標位置をヘッドマウントディスプレイ100に送信する。
ヘッドマウントディスプレイ100の第1通信部118は、マーカー画像とその表示座標位置を受信すると、これを第1表示部121に伝達する。第1表示部121は、伝達されたマーカー画像を指定されている表示座標位置で、画像表示素子108に表示する。ユーザは、表示されたマーカー画像を注視する。撮像部124は、表示されたマーカー画像を注視するユーザの眼を含む画像を撮像する(ステップS803)。撮像部124は、撮像した画像を第1通信部118に伝達する。第1通信部118は、伝達されたマーカー画像を注視するユーザの眼を撮像した画像の画像データを視線検出装置200に送信する。
視線検出装置200の第2通信部220は、マーカー画像を注視するユーザの眼を撮像した画像の画像データを受信すると、合成画像出力部225に伝達する。合成画像出力部225は、伝達されたマーカー画像を注視するユーザの眼を撮像した画像に、その際に表示していたマーカー画像を、その表示位置の左右を反転させた位置に重畳して合成して合成画像を生成する(ステップS804)。
合成画像出力部225は、生成した合成画像を第2表示部226に伝達し、第2表示部226は、伝達された合成画像を表示する(ステップS805)。これにより、視線検出システム1のオペレータは、ヘッドマウントディスプレイ100を装着したユーザがマーカー画像を注視しているか否かを確認でき、注視していなかった場合には、ユーザにマーカー画像を注視するように指示することができる。
マーカー画像出力部223は、iが9であるか否かを判定する(ステップS806)。iが9でない場合には、マーカー画像出力部223は、iに1加算し、ステップS802に戻る。iが9である場合には、判定部224は、撮像して得られた9枚の画像について、各々が視線検出用のデータとして用いることができるか否かを判定する(ステップS807)。すなわち、判定部224は、各表示座標位置で表示されたマーカー画像を注視するユーザの眼を撮像した画像各々について、ユーザの角膜中心を特定できるか否かを判定する。特定できる場合には、その座標位置を記憶部227に記憶し、上記行列式に用いる。特定できない場合には、判定部224は、マーカー画像出力部223に対して、ユーザの角膜中心を特定できなかったときに表示されていたマーカー画像の表示座標位置と、当該マーカー画像を注視するユーザの眼の画像からユーザの角膜中心を特定できなかったことを伝達する。
マーカー画像出力部223は、ユーザの角膜中心を特定できなかった画像を撮像したときのマーカー画像の表示座標位置を、画面(画像表示素子108)の中央寄りに修正する。そして、修正後の表示座標位置を第2通信部220に伝達する。第2通信部220は伝達された表示座標位置をヘッドマウントディスプレイ100に送信する。第1通信部118は、受信した修正後の表示座標位置を第1表示部121に伝達する。第1表示部121は、伝達された修正後の表示座標位置にマーカー画像を表示し、ユーザにこれを注視させる。撮像部124は、修正後の表示座標位置に表示されたマーカー画像を注視するユーザの眼を撮像する(ステップS809)。撮像部124は、撮像した画像を第1通信部118に伝達し、第1通信部118は当該画像を視線検出装置200に送信する。そして、ステップS808の処理に戻る。
一方、判定部224が、撮像した全ての画像が視線検出用のデータとして使用できると判定した場合、すなわち、全ての画像からユーザの角膜中心を特定できた場合に、上記行列xの要素を算出して、キャリブレーション処理を終了する。
以上が、視線検出システム1のキャリブレーション時の動作の説明である。
図9は、マーカー画像出力部223によるマーカー画像の表示座標位置の変更例を示すイメージ図である。図9(a)は、マーカー画像の画像表示素子108における表示位置の基本位置を示す図である。図9(a)には、まとめて9つのマーカー画像を示しているが、実際には、これらは1つ1つ順に画像表示素子108に表示される。すなわち、9枚のユーザの眼を撮像した画像が得られることになる。
このとき、一例として、図9(a)に示されるマーカー画像のうち、マーカー画像901a、902a、903aそれぞれを図9(a)に示す座標表示位置に表示した際に、ユーザがそのマーカー画像を注視している画像が視線検出のために用いることができない、すなわち、判定部224が、ユーザの角膜中心を特定できなかったとする。すると、判定部224は、マーカー画像出力部223にその旨を伝達する。
これを受けてマーカー画像出力部223は、ユーザの角膜中心を特定できなかった際に表示していたマーカー画像の表示座標位置を画面中央寄りに修正する。すなわち、図9(b)に示すように、マーカー画像901aの表示座標位置をマーカー画像901bに示す表示座標位置に、マーカー画像902aの表示座標位置をマーカー画像902bに示す表示座標位置に、マーカー画像903aの表示座標位置をマーカー画像903bに示す表示座標位置に、修正する。そして、修正後の表示座標位置で各マーカー画像をヘッドマウントディスプレイ100の画像表示素子108に表示させて、これを注視するユーザの眼を含む画像を撮像する。そして、判定部224は、再度撮像された画像においてユーザの角膜中心を特定できるか否かを判定することになる。
なお、図9(b)においては、マーカー画像の表示座標位置をx軸方向及びy軸方向の両方ともを中央寄りにすることとしているが、これは、一方の軸のみについて中央寄りに修正することとしてもよい。そして、一方の軸のみについて表示位置を修正したマーカー画像をユーザに注視させて撮像した画像からユーザの角膜中心を特定できなかった場合に、更に、他方の軸についてもマーカー画像の表示座標位置を中央寄りに修正するというようにしてもよい。
<まとめ>
上述のように、本発明に係る視線検出システム1は、マーカー画像と、それを注視するユーザの眼を撮像した画像とを、重畳して合成画像を生成し、これを出力することで、視線検出システム1のオペレータは、キャリブレーションの際にユーザがマーカー画像を注視しているかどうかを確認することができる。また、撮像時に、ユーザの角膜が、ユーザの下瞼の影になってしまい、撮像された画像からでは、ユーザの角膜中心を特定できない場合に対応して、視線検出システム1は、マーカー画像を表示する表示座標位置を修正することで、ユーザの角膜中心を特定しやすくすることができる。
<実施の形態2>
上記実施の形態1においては、視線検出を行うためのキャリブレーション時に視線検出装置200のオペレータにとって有意となる構成を示した。本実施の形態2においては、さらに、ユーザ300の特性を取得できる構成を説明する。ヘッドマウントディスプレイ100を装着して使用するユーザ300は、個人差により、見え方や見える範囲が異なってくる。そのため、個々人の特性に応じた映像を提供して、ユーザビリティに富んだシステムを提供することが望まれている。本実施の形態2においては、そのような視線検出システムについて説明する。
<構成>
図11は、実施の形態2に係る視線検出システムの構成を示すブロック図である。図11に示すように、視線検出システムは、ヘッドマウントディスプレイ100と、視線検出装置200とを含む。図11に示すように、ヘッドマウントディスプレイ100は、第1通信部118と、第1表示部121と、赤外光照射部122と、画像処理部123と、撮像部124とを備える。また、視線検出装置200は、第2通信部220と、視線検出部221と、映像出力部222と、受付部228と、特定部229と、記憶部227とを備える。図11に示すヘッドマウントディスプレイ100及び視線検出装置200は、それぞれ、実施の形態1に示したヘッドマウントディスプレイ100及び視線検出装置200と同等の機能を有する。なお、図11においては、本実施の形態2と関連しない構成については、構成を割愛している。以下においては、実施の形態1と共通する機能については、説明を割愛し、異なる機能についてのみ説明する。
映像出力部222は、ヘッドマウントディスプレイ100に、有効視野特定グラフの表示画像を第2通信部220を介して送信し、ヘッドマウントディスプレイ100の第1表示部121は、画像表示素子108に伝達された有効視野特定グラフを表示する。
視線検出装置200の受付部228は、ヘッドマウントディスプレイ100を装着しているユーザ300が、画像表示素子108に表示された有効視野特定グラフにおいて、ユーザ300にとってオブジェクトの見え方を示す視認情報を受け付ける。受付部は、例えば、視線検出装置200に備えられた、あるいは、接続された入力用のインターフェースを用いて、視認情報の入力を受け付けるものであってもよいし、第2通信部220から通信によって受け取った視認情報を受け付けるものであってもよい。入力用のインターフェースとは、例えば、視線検出装置に備えられた入力パネルのハードキーであってもよいし、視線検出装置200に接続されたキーボードやタッチパッドなどであってもよい。また、あるいは、受付部228は、ユーザ300から発せられた音声の入力を受け付けるものであってもよく、この場合には、いわゆる音声認識処理により、音声を解析することにより、ユーザ300からの視認情報の入力を受け付けるものであってもよい。受付部228は、受け付けた視認情報を特定部229に伝達する。
有効視野特定グラフは、ヘッドマウントディスプレイ100を装着して使用するユーザ300の有効視野を特定するための表示画像である。図12に有効視野特定グラフの一例を示す。図12は、ヘッドマウントディスプレイ100の画像表示素子108に表示している状態の表示画像1200を示している。
有効視野特定グラフは、図12に示すように、ユーザが注視すべき注視点を示す注視点マーカー1202と、注視点マーカー1202を中心としてその周囲に複数のオブジェクトを環状に配した画像である。ここでは、複数のオブジェクトそれぞれとして、ひらがなを配した例を示しているが、これは、一例であって、その他の文字や画像であってもよい。複数のオブジェクトは、注視点マーカー1202(の中心)からの距離に応じたサイズの画像であり、注視点マーカー1202からの距離が長くなればなるほど大きくなるように設定している。即ち、オブジェクトの中心の座標と、注視点マーカーの中心の座標との間の距離をl、その時のオブジェクトの画像サイズをx×yとしたとき、表示するオブジェクトの中心座標と注視点マーカー1202の中心の座標との間の距離が2lの場合には、オブジェクトの画像サイズは、2x×2yとなる。
特定部229は、受付部228から伝達された視認情報に基づいて、ユーザ300の有効視野を特定する。
ユーザ300は、画像表示素子108に表示された図12の有効視野特定グラフの注視点マーカー1202を注視したままの状態で、どのオブジェクトまで、はっきりと視認できるのかを特定する。ユーザ300が注視点マーカー1202を注視したままで明確に視認できるオブジェクトの情報が本実施の形態2における視認情報となる。例えば、ユーザが明確に視認できたオブジェクトで最も注視点マーカー1202から遠いオブジェクトが、「う、く、す、つ、ぬ、ふ、む、ゆ」であった場合には、図12の点線で示す円1201が、ユーザ300の有効視野となる。
特定部229は、受付部228から伝達された視認情報で示されるユーザ300が視認できているオブジェクトの情報を特定する。特定部229は、映像出力部222がヘッドマウントディスプレイ100に送信した有効視野グラフの座標系と、ヘッドマウントディスプレイ100における表示位置とに基づいて、ユーザ300の有効視野範囲(座標範囲)を特定する。具体的には、視認情報で示されるユーザ300が注視点マーカーを注視したままで明確に視認できたオブジェクトの表示座標を特定する。そして、特定したオブジェクトの表示座標範囲のうち注視点マーカー1202から最も遠い距離にある座標までの距離を半径とする円内を、ユーザの有効視野として特定する。
映像出力部222は、特定部229が特定した有効視野と、視線検出部221が特定した注視点とに基づいて、高解像度映像を生成する。映像出力部222は、視線検出部221が特定した注視点を中心に、特定部229が特定した有効視野内の範囲に表示する映像部分の高解像度映像を生成する。また、映像出力部222は、画面全体分の低解像度映像を生成する。そして、生成した低解像度映像と、有効視野内の高解像度映像を、第2通信部220を介してヘッドマウントディスプレイ100に送信する。なお、映像出力部222は、低解像度映像については、有効視野外の範囲分だけを生成することとしてもよい。
これにより、視線検出装置200は、各ユーザの有効視野に応じた範囲の高解像度映像をヘッドマウントディスプレイ100に送信することができる。即ち、各ユーザの視力特性に応じて高画質の画像を提供することができる。また、高解像度映像を送信する範囲をユーザの有効視野に絞ることにより、全画面分の高解像度映像を送信するよりもデータ容量を抑制することができるので、ヘッドマウントディスプレイ100−視線検出装置200間のデータ転送量を抑制することができる。これは、例えば、視線検出装置200が外部の映像配信サーバから映像をもらって、ヘッドマウントディスプレイ100に転送する場合にも同様の効果を期待できる。即ち、視線検出装置200でユーザの視線位置と有効視野を特定し、その情報を映像配信サーバに送ることで、映像配信サーバは、指定された範囲内の高解像度映像と、全画面分の低解像度映像を送信することにより、映像配信サーバから視線検出装置200へのデータ転送量を抑制することができる。
<動作>
図13は、視線検出装置200によるユーザの有効視野を特定する際の動作を示すフローチャートである。
視線検出装置200は、実施の形態1に示したキャリブレーションを行った後に、映像出力部222は、記憶部227から、有効視野特定グラフを読み出す。そして、読み出した有効視野特定グラフを、表示命令と共に第2通信部220を介してヘッドマウントディスプレイ100に送信する(ステップS1301)。これにより、ヘッドマウントディスプレイ100の第1表示部121は、第1通信部118を介して有効視野特定グラフを受信し、画像表示素子108に表示する。ユーザ300は、表示された有効視野特定グラフの注視点マーカーを注視した状態で、その周囲に表示されているオブジェクトのうち、明確に視認できるオブジェクトを特定する。
続いて、視線検出装置200の受付部228は、ユーザ300が表示された有効視野特定グラフのうちで、ユーザ300が注視点マーカーを注視したまま視認できたオブジェクトの情報である視認情報を受け付ける(ステップS1302)。これは、ユーザ300が直接入力することとしてもよいし、ユーザ300から視線検出装置200のオペレータが視認できたオブジェクトの情報を伝達されて入力することとしてもよいし、あるいは、各オブジェクトを順番に点滅させてユーザ300がその点滅させたオブジェクトを注視している状態で明確に視認できていたかどうかを点滅時の簡単なボタンの押下等で入力を受け付けて、受付部228に入力される形態をとることとしてもよい。受付部228は、ユーザ300の視認情報を受け付けると、受け付けた視認情報を特定部229に伝達する。
特定部229は、受付部228からユーザ300の視認情報を受け付けると、ユーザ300の有効視野を特定する。ユーザの有効視野の特定手法は、上述した通りである。特定部229は、特定したユーザの有効視野情報(ユーザ300の注視点を中心とする座標範囲を示す情報)を生成し、記憶部227に記憶して(ステップS1303)、処理を終了する。
以上の処理により、視線検出装置200は、ヘッドマウントディスプレイ100を装着したユーザ300の有効視野を特定する。
次に、特定した有効視野の利用方法について説明する。図14は、視線検出装置200により特定されたユーザの有効視野に基づいて、ヘッドマウントディスプレイ100に表示させる画像を生成する際の動作を示すフローチャートである。図14に示す動作は、視線検出装置200からヘッドマウントディスプレイ100に表示すべき映像を送信しているときの動作である。
映像出力部222は、ヘッドマウントディスプレイ100の画像表示素子108に表示する映像であって、低解像度の映像を生成する。そして、映像出力部222は、第2通信部220を介して、生成した低解像度映像をヘッドマウントディスプレイ100に送信する(ステップS1401)。
視線検出装置200の第2通信部220は、ヘッドマウントディスプレイ100から、画像表示素子108に表示されている映像を見ているユーザの眼を撮像した撮像画像を受信する。第2通信部220は、受信した撮像画像を視線検出部221に伝達する。そして、視線検出部221は、実施の形態1に示したようにして、ユーザ300の注視位置を特定する(ステップS1402)。視線検出部221は、特定した注視位置を映像出力部222に伝達する。
映像出力部222は、視線検出部221からユーザ300の注視位置を伝達されると、記憶部227から、特定部229が特定したユーザ300の有効視野を示す有効視野情報を読み出す。そして、伝達された注視位置を中心とし、有効視野情報で示される有効視野の範囲までの高解像度の映像を生成する(ステップS1403)。
映像出力部222は、生成した高解像度の映像を、第2通信部220を介してヘッドマウントディスプレイ100に送信する(ステップS1404)。
視線検出装置200は、映像出力部222が出力する映像が終了したか(最後のフレームに到達したか)否か、または、ユーザ300あるいは視線検出装置200のオペレータから映像の再生終了の入力を受けたか否かを判定する(ステップS1405)。映像が終了しておらず、かつ、ユーザ300またはオペレータからも再生終了入力を受け付けていない場合には(ステップS1405のNO)、ステップS1401に戻る。映像が終了しているか、ユーザ300またはオペレータから再生終了入力を受け付けていた場合には(ステップS1405のYES)、処理を終了する。
これによって、視線検出装置200は、ヘッドマウントディスプレイ100に、低解像度の映像を始終送信し続けることにより、映像を途切れることなく提供することができるとともに、ユーザの注視点を中心とした高解像度の画像も送信するので、画質の良い映像をユーザに提供できる。また、視線検出装置200は、ヘッドマウントディスプレイ100に、ユーザ300の有効視野内には高解像度の映像を提供し、有効視野外には低解像度の映像を提供するという構成を有するので、視線検出装置200からヘッドマウントディスプレイ100に送信する高解像度の映像を必要最小限とすることで、視線検出装置200からヘッドマウントディスプレイ100に送信するデータ転送量を抑制することができる。
<実施の形態3>
上記実施の形態2においては、注視点マーカーを中心として注視点マーカーからの距離に応じて複数のオブジェクトの視認の程度に応じて、ユーザ300の有効視野を特定する手法について説明した。本実施の形態3においては、実施の形態2とは異なった形態でのユーザ300の有効視野の特定方法について説明する。本実施の形態3においては、実施の形態2と異なる点についてのみ説明する。
図15は、実施の形態3に係る有効視野グラフをヘッドマウントディスプレイ100の画像表示素子108に表示している状態を示している。
映像出力部222は、図15に示す有効視野グラフの各円を所定の周期で明滅させる。即ち、表示した状態からだんだんと消去するようにし、消去した状態から表示するということを所定の周期で繰り返す。ユーザ300がその状態を視認したとき、ヘッドマウントディスプレイ100のシステム上では全ての円は同時に表示し、同時に消去するようにしていても、人間の個人差により、同時に表示し、同時に消去するように見えているとは限らない。本実施の形態3においては、ユーザ各々で異なる同心円の見え方に応じて、その有効視野を特定する。
<構成>
実施の形態3に係る視線検出システムの構成は、実施の形態2に示した視線検出システムの構成と同様である。
その相違点は、映像出力部222が、図12に示した有効視野グラフを表示していたのに対し、本実施の形態3においては、図15に示す有効視野グラフを明滅するように表示することにある。図15に示す有効視野グラフは、注視点マーカーの中心を中心とする複数の同心円が等間隔で表示された画像である。各同心円は均等間隔で、かつ、同じ線幅となっている。映像出力部222は、この同心円を所定の周期で明滅するように表示する。そして、この所定の周期を少しずつ変更しながら表示する。
受付部228は、視認情報として、ユーザが図15に示す複数の同心円全てが同時に現れ、全てが同時に消滅したと感じたときの周期の情報を特定可能な情報を受け付ける。
特定部229は、受付部228から伝達された視認情報で示される周期に基づいて、ヘッドマウントディスプレイ100の有効視野を特定する。特定部229は、記憶部227に予め記憶されている、周期と有効視野の関係を示す有効視野算出関数に基づいて、ユーザ300の有効視野(注視点からの有効視野距離)を特定する。ここで、有効視野算出関数は、周期が短いほどユーザ300の有効視野が広く(有効視野距離が長く)、長いほどユーザ300の有効視野が狭くなる(有効視野が短く)なる関数である。即ち、有効視野の狭いユーザの場合、表示と非表示との切り替わりの周期が遅くてもその変化が同時に起こると感じる。つまり、このようなユーザは一般的に画像の変化に鈍感であると推定できる。有効視野の広いユーザの場合、表示と非表示との間の周期が遅いとその変化に気づきやすい。つまり、このようなユーザは一般的に画像の変化に鋭敏であると推定できる。
<動作>
図16は、実施の形態3に係る視線検出装置200によるユーザ300の視野を特定するための動作を示すフローチャートである。
図16に示すように、映像出力部222は、複数の同心円を所定の周期で明滅するように表示する(ステップS1601)。即ち、図15に示す有効視野グラフにおいて、各円を同時かつ所定の周期で表示から消滅、消滅から表示を繰り返すようにして表示する。所定の周期は、初期値が与えられ、映像出力部222は、この所定の周期を徐々に変更する。
ユーザ300は、所定の周期を変更しながらの、同心円群の表示から消滅、消滅から再表示の繰り返し過程において、全ての同心円が同時に表示され、同時に消滅するタイミングを視認情報として入力する(ステップS1602)。受付部228は、このタイミングを受け付けて、その時の映像出力部222が同心円群の表示/非表示を繰り返している所定の周期を、特定部229に伝達する。
特定部229は、伝達された所定の周期から、記憶部227に記憶している有効視野関数を用いて、ユーザ300の有効視野を特定する(ステップS1603)。
このような構成によっても、視線検出装置200は、ユーザ300の有効視野を特定することができ、実施の形態2に示した効果と同等の効果を奏することができる。
<実施の形態4>
本実施の形態4においては、実施の形態1とは、異なるマーカー画像の表示方法、ならびに、その際の視線検出方法を説明する。
上記実施の形態1においては、9つのマーカー画像を順番に表示して、それを注視するユーザの眼を撮像するキャリブレーションを行う例を示したが、本実施の形態4においては、1つのマーカー画像のみでキャリブレーションを行う例について説明する。
<構成>
本実施の形態に係る視線検出システムの基本的構成は、実施の形態1に示した構成と変わらない。そのため、図4に示すブロック図と同様の構成を有する。以下では、実施の形態1からの変更点について述べる。
実施の形態4における映像出力部222は、キャリブレーション時にヘッドマウントディスプレイ100に全周囲映像を送信する。このとき、この全周囲映像(又はある程度広範囲、即ち、画像表示素子108の表示範囲よりも広い映像)は少なくとも1つのマーカー画像を含む。即ち、ヘッドマウントディスプレイ100の第1表示部121は、ワールド座標系の予め定めた座標にマーカー画像を表示する。ワールド座標とは、画像を三次元表示する際の空間全体を表す座標系のことをいう。また、全周囲映像とは、基本的には、ワールド座標系で表示する360度映像のことをいう。ヘッドマウントディスプレイ100は、加速度センサを備えることにより、ユーザがどの向きを向いているかを特定することができるので、映像出力部222は、ヘッドマウントディスプレイ100から加速度センサの情報を受け取ることにより、どの範囲の映像を転送するのかを決定して、映像データを転送する。
ユーザ300は、ヘッドマウントディスプレイ100を装着した状態で、自身の頭を動かすことで、マーカー画像をヘッドマウントディスプレイ100の表示範囲内に含まれるように表示し、その時にマーカー画像を少なくとも2つの異なる方向から注視する。ヘッドマウントディスプレイ100のカメラ116は、その際のユーザの眼を撮像し、キャリブレーション用の画像として取得する。即ち、本実施の形態1では、ユーザの眼とマーカー画像との間の異なる位置関係になるように、9つの位置にマーカー画像を表示してユーザに注視させたのに対し、本実施の形態4では、表示するマーカー画像は1つであるものの、これをユーザがいろいろな角度から見ることで、複数のキャリブレーション用の画像を取得することができる。
図17(a)、(b)は、全周囲映像と、ヘッドマウントディスプレイ100に表示される表示画面との対応関係を模式的に示す図である。図17(a)、(b)には、ユーザ300がヘッドマウントディスプレイ100を装着している状態を示しており、その際に視線検出装置200から送信される全周囲映像1701に対して、ヘッドマウントディスプレイ100の画像表示素子108上に表示される表示範囲1702と、全周囲映像1701中のマーカー画像1703とを模式的に示した図である。図17(a)、(b)に示した全周囲映像1701や表示範囲1702、マーカー画像1703は仮想上のものであり、実際に図17(a)、(b)のように現出しているものではないことに注意されたい。マーカー画像1703のワールド座標における位置は固定である。一方、画像表示素子108上に表示される際には、ユーザ300の顔の向きに応じて、表示位置が異なってくる。なお、マーカー画像1703は、目印であり、その形状は、円形に限定されるものではないことは言うまでもない。
図17(a)は、ヘッドマウントディスプレイ100の表示画像素子の表示範囲1702内にマーカー画像1703が含まれていない状態を示しており、図17(b)は、表示範囲1702内にマーカー画像1703が含まれている状態を示している。図17(b)の状態において、ヘッドマウントディスプレイ100のカメラ116は、近赤外光を光源としたユーザの眼を撮像する。また、ユーザ300は、自身の頭を動かして、表示範囲1702を動かして、表示範囲1702内で図17(b)に示す位置とは別の位置にマーカー画像1703が現れるようにし、そのときのマーカー画像を注視する。そして、ヘッドマウントディスプレイ100のカメラ116は、同様にユーザの眼を撮像する。本実施の形態4においては、このようにして、複数のキャリブレーション用の画像を得ることができ、実施の形態1に示した各数式を用いて、ユーザの注視点を特定することができるようになる。
このため、本実施の形態4に係るマーカー画像出力部223は、ワールド座標系におけるマーカー画像の表示位置を決定する機能を有する。
<動作>
実施の形態4に係る視線検出システムの動作を図18のフローチャートを用いて説明する。
図18に示すように、マーカー画像出力部223は、ワールド座標系におけるマーカー画像の表示座標を決定する(ステップS1801)。
視線検出装置200の映像出力部222は、第2通信部220を介して画像表示素子108に表示すべき映像を送信する。また、マーカー画像出力部223も同様に、マーカー画像をその表示座標と共に、ヘッドマウントディスプレイ100に送信する。ヘッドマウントディスプレイ100の第1表示部121は、ヘッドマウントディスプレイ100に搭載されている加速度センサの値から、ヘッドマウントディスプレイ100のワールド座標系に対する向きを検出し、その方向の画像であって、画像表示素子108に表示される範囲内に、マーカー画像が含まれるか否かを判定する(ステップS1802)。
表示範囲内にマーカー画像が含まれる場合に(ステップS1802のYES)、第1表示部121は、画像表示素子108上の対応する位置に、マーカー画像を表示する(ステップS1803)。表示範囲内にマーカー画像が含まれていない場合に(ステップS1803のNO)、ステップS1805の処理に移行する。
カメラ116は、画像表示素子108に表示されているマーカー画像を注視するユーザ300の眼を、非可視光を光源として撮像する(ステップS1804)。ヘッドマウントディスプレイ100は、撮像した画像を視線検出装置200に送信し、視線検出装置200は、当該撮像画像をキャリブレーション用の画像として、記憶部227に記憶する。
視線検出装置200の視線検出部221は、キャリブレーションのために必要とする撮像画像が所定枚数(例えば、9枚であるがこれに限定されるものではない)に達したか否かを判定する(ステップS1805)。所定枚数に達している場合に(ステップS1805のYES)、キャリブレーションの処理を終える。一方、所定枚数に達していない場合に(ステップS1805のNO)、ステップS1802の処理に戻る。
このようにしても、実施の形態1と同様に、視線検出のためのキャリブレーションを行うことができる。なお、実施の形態4におけるキャリブレーションは、例えば、映像と映像の間の途切れ目において、次の映像のローディング中に行ってもよいし、あるいは、一般的にゲームのロード画面において行うこととしてもよい。また、その場合に、マーカー画像を動かして、ユーザにその動いているマーカー画像に目線をやるように工夫してもよい。その場合に、マーカー画像は、見ている映像や実行するゲーム等に登場するキャラクターの画像であるとしてもよい。
<補足1>
本発明に係る視線検出システムは、以下のように構成することとしてもよい。
(a)ユーザの頭部に装着して使用する映像表示装置を含み、前記ユーザに提示する画像を表示する表示画面と、前記表示画面の所定の表示位置を中心に環状に広がるように、オブジェクトを前記表示画面に表示する表示部と、前記ユーザが前記所定の表示位置を注視した状態において、前記ユーザにおける前記オブジェクトの見え方を示す視認情報を受け付ける受付部と、前記視認情報に基づいて、前記ユーザの有効視野を特定する特定部を備える視線検出システムであるとしてもよい。
(b)また、上記(a)に記載の視線検出システムにおいて、前記表示部は、前記所定の表示位置を中心に、当該所定の表示位置からの距離に応じた大きさのオブジェクトを表示し、前記視認情報は、前記ユーザが前記所定の表示位置を注視した状態で、前記オブジェクトを前記ユーザが鮮明に視認可能な範囲を示す情報であることを特徴とすることとしてもよい。
(c)また、上記(a)に記載の視線検出システムにおいて、前記表示部は、前記所定の表示位置を中心とする複数の円を一定距離間隔で、かつ、所定の周期で明滅するように表示し、前記視認情報は、前記ユーザが前記所定の表示位置を注視した状態で、前記明滅する複数の円が同時に表示又は消滅すると前記ユーザが認識可能な前記所定の周期を特定可能な情報であることを特徴とすることとしてもよい。
(d)また、上記(a)〜(c)のいずれかに記載の視線検出システムにおいて、前記視線検出システムは、さらに、前記ユーザが前記表示画面に表示された画像を視認するときの注視位置を検出する視線検出部を備え、前記表示部は、前記注視位置を中心に、前記特定部が特定した有効視野内に高解像度の画像を表示し、前記有効視野該に低解像度の画像を表示することを特徴とすることとしてもよい。
(e)また、上記(d)に記載の視線検出システムにおいて、前記映像表示装置は、ヘッドマウントディスプレイであり、前記視線検出システムは、さらに、前記ヘッドマウントディスプレイに設けられた前記表示画面に表示する画像を生成して、前記ヘッドマウントディスプレイに転送するものであって、前記注視位置を中心に、前記特定部が特定した有効視野内に表示する高解像度の画像を生成して転送し、少なくとも前記有効視野外に表示する低解像度の画像を生成して転送する映像生成部を備えることとしてもよい。
(f)また、上記(e)に記載の視線検出システムにおいて、前記映像生成部は、前記有効視野の位置に関わらず表示画像全体の低解像度画像を生成して転送することとしてもよい。
(g)また、視線検出システムは、ユーザの頭部に装着して使用する映像表示装置を含み、前記ユーザに提示する画像を表示する表示画面と、ワールド座標系上の特定の座標位置に配されたマーカー画像を、前記表示画面の表示座標系内に前記特定の座標位置が含まれる場合に表示する表示部と、前記表示画面に前記マーカー画像が表示されている場合に、前記マーカー画像を注視している状態の前記ユーザの眼を撮像する撮像部と、前記撮像部が撮像した少なくとも2枚の異なる撮像画像に基づいて、前記表示画面におけるユーザの注視位置を検出する視線検出部とを備える。
(h)また、本発明に係る有効視野特定方法は、ユーザの頭部に装着して使用し、前記ユーザに提示する画像を表示する表示画面を有する映像表示装置を含む視線検出システムにおける前記ユーザの有効視野特定方法であって、前記表示画面の所定の表示位置を中心に環状に広がるように、オブジェクトを前記表示画面に表示する表示ステップと、前記ユーザが前記所定の表示位置を注視した状態において、前記ユーザにおける前記オブジェクトの見え方を示す視認情報を受け付ける受付ステップと、前記視認情報に基づいて、前記ユーザの有効視野を特定する特定ステップとを含む。
(i)また、本発明に係る視線検出方法は、ユーザの頭部に装着して使用し、前記ユーザに提示する画像を表示する表示画面を有する映像表示装置を含む視線検出システムにおける視線検出方法であって、ワールド座標系上の特定の座標位置に配されたマーカー画像を、前記表示画面の表示座標系内に前記特定の座標位置が含まれる場合に前記表示画面に表示する表示ステップと、前記表示画面に前記マーカー画像が表示されている場合に、前記マーカー画像を注視している状態の前記ユーザの眼を撮像する撮像ステップと、前記撮像ステップにおいて撮像した少なくとも2枚の異なる撮像画像に基づいて、前記表示画面におけるユーザの注視位置を検出する視線検出ステップとを含む。
(j)また、本発明に係る有効視野特定プログラムは、ユーザの頭部に装着して使用しユーザに提示する画像を表示する表示画面を有する映像表示装置を含む視線検出システムに含まれるコンピュータに、前記表示画面の所定の表示位置を中心に環状に広がるように、オブジェクトを前記表示画面に表示する表示機能と、前記ユーザが前記所定の表示位置を注視した状態において、前記ユーザにおける前記オブジェクトの見え方を示す視認情報を受け付ける受付機能と、前記視認情報に基づいて、前記ユーザの有効視野を特定する特定機能とを実現させる。
(k)また、本発明に係る視線検出プログラムは、ユーザの頭部に装着して使用しユーザに提示する画像を表示する表示画面を有する映像表示装置を含む視線検出システムに含まれるコンピュータに、ワールド座標系上の特定の座標位置に配されたマーカー画像を、前記表示画面の表示座標系内に前記特定の座標位置が含まれる場合に前記表示画面に表示する表示機能と、前記表示画面に前記マーカー画像が表示されている場合に、前記マーカー画像を注視している状態の前記ユーザの眼を撮像する撮像機能と、前記撮像機能において撮像した少なくとも2枚の異なる撮像画像に基づいて、前記表示画面におけるユーザの注視位置を検出する視線検出機能とを実現させる。
<実施の形態5>
上記実施の形態においては、キャリブレーションに係る各種の手法について説明したが、本実施の形態においては、更に、ユーザの疲労を軽減するための手法を説明する。そこで、まず、この疲労について説明する。
ヘッドマウントディスプレイでは、三次元画像を表示することがある。ところで、三次元画像を視聴しているとユーザは疲労を覚えることがあるという問題がある。三次元画像を表示すると、ユーザからは、実際のモニター位置よりも表示物が浮き出て見えるようになる。そのため、ユーザの眼球はその表示物の表示位置(深度)にピントを合わせようとする。しかし、実際には、モニターの位置は、その表示物の表示位置よりも奥にあるため、眼球がそこに実際のモニターがあることに気づき、その位置にピントを再度合わせようとする。三次元画像を見る際には、この眼球の自動的なピント合わせが交互に発生するため、ユーザは疲労を覚えることとなる。
そのため、本実施の形態5においては、立体視を行う際のユーザの疲労を軽減し得る視線検出システムを開示する。
<構成>
図19は、視線検出システム1に係るヘッドマウントディスプレイ100と視線検出装置200とのブロック図である。視線検出システムは本実施の形態においては、立体映像表示システムと呼称されてもよい。図19に示すように、また、上述したとおり、視線検出システム1は、互いに通信を実行するヘッドマウントディスプレイ100と視線検出装置200とを含む。ここでは、上記実施の形態と異なる構成について説明する。
図19に示すようにヘッドマウントディスプレイ100は、第1通信部118と、表示部121と、赤外光照射部122と、画像処理部123と、撮像部124と、駆動部125と、駆動制御部126とを備える。
第1通信部118は、上記実施の形態に示した各種機能の他、三次元画像データを駆動制御部126に伝達する。この三次元画像データには、表示されるオブジェクトの表示深度を示す情報が含まれる。ここで、表示深度とは、ユーザの眼から、立体視によりオブジェクトが疑似的に表示される表示位置までの距離とする。また、三次元画像データは、右目用視差画像と左目用視差画像とを含み、それらは視差画像対となっている。
駆動部125は、駆動制御部126から伝達される制御信号に従って、画像表示素子108を、ユーザの眼との間の相対距離が変動するように移動させるためのモーターを駆動する機能を有する。
駆動制御部126は、第1通信部118から伝達された映像データを利用して、表示されるオブジェクトの表示深度に応じて画像表示素子108を移動させるための制御信号を生成し、駆動部125に伝達する機能を有する。駆動制御部126は、制御信号を生成する手法として以下の駆動例に従って制御信号を生成する。
<駆動例1>表示される表示オブジェクトの表示深度と、画像表示素子108の深度との間の差分が所定の閾値以上であれば、画像表示素子108の深度を表示深度に近づける制御信号を生成する。なお、ここでは、所定の閾値以上であればとしているが、この比較をすることなく、画像表示素子108の深度をオブジェクトの表示深度に近づける制御信号を生成することとしてもよい。
<駆動例2>第1時間で表示される表示オブジェクトの第1表示深度と、第2時間で表示される表示オブジェクトの第2表示深度とを比較し、第2表示深度が第1表示深度よりも大きければ、第2時間で表示される表示オブジェクトは第1時間で表示される表示オブジェクトよりユーザ300から見て奥側に表示されることになる。
駆動部の動作の更なる詳細については後述する。
図20は、画像表示素子108、すなわち、モニターを移動させる機構の一例を示す図である。図20(a)は、ヘッドマウントディスプレイ100の画像表示素子108の駆動部を示す平面図であり、ヘッドマウントディスプレイ100内部の機構を示す図である。図20(b)は、図20(a)の矢印711で示される方向で、当該駆動部を斜め下から見た斜視図である。
図20(a)、(b)に示すように、画像表示素子108は、その端部(図面では右側)が支柱701に接続され、支柱701はレール702に端部が滑動自在に固定されている。画像表示素子108の端部には、櫛歯が設けられ、ベルトレーン703の歯と嵌合する。ベルトレーン703の表面には、図20に示すように歯が設けられており、モーター704が回動することにより、この歯も移動する。したがって、画像表示素子108も矢印710に示す方向で、移動する。モーター704が、右回転すれば画像表示素子108は、ユーザ300の眼から遠ざかる方向に移動し、左回転すれば画像表示素子108は、ユーザ300の眼に近づく方向に移動する。ここで、モーター704は、駆動制御部126からの制御に従って駆動部125により回動する。一例として、このような構造を有することにより、ヘッドマウントディスプレイ100の画像表示素子108は、ユーザ300の眼との相対距離が変動するように移動することができる。なお、この画像表示素子108を移動させる手法は一例にすぎず、その他の手法を用いて実現してもよいことは言うまでもない。
<動作>
以下、ヘッドマウントディスプレイ100において画像表示素子108を移動させる駆動方法について説明する。
<駆動例1>
図21は、実施の形態に係るヘッドマウントディスプレイ100の動作を示すフローチャートである。
視線検出装置200の映像出力部222は、画像表示素子108に表示する立体映像の映像データを第2通信部220に伝達する。第2通信部220は伝達された映像データをヘッドマウントディスプレイ100に送信する。
第1通信部118は、映像データを受信すると、駆動制御部126に伝達する。駆動制御部126は、伝達された映像データから表示オブジェクトの表示深度情報を抽出する(ステップS2101)。
駆動制御部126は、抽出した表示深度情報で示される表示深度と、画像表示素子108の位置から定まる深度との間の距離が所定の閾値以上であるか否かを判定する(ステップS2102)。すなわち、駆動制御部126は、表示オブジェクトと画像表示素子108との間の距離が一定以上離れているか否かを判定する。駆動制御部126は、表示深度と画像表示素子108との間の距離が所定の閾値以上であると判定した場合には(ステップS2102のYES)、ステップS2103に移行し、所定の閾値未満であると判定した場合には(ステップS2102のNO)、ステップS2104に移行する。
駆動制御部126は、抽出した表示深度情報から表示オブジェクトがユーザの眼に映る表示深度を特定する。そして、特定した表示深度に近づける方向に、モニター、すなわち、画像表示素子108を移動させる制御信号を生成し、駆動部125に伝達する。駆動部125は伝達された制御信号に基づいて、モーター704を駆動し、画像表示素子108を移動させる(ステップS2103)。駆動部125は、画像表示素子108を移動させたことを表示部121に伝達する。
表示部121は、駆動部125から画像表示素子108を移動させた旨を伝達されると、対応する映像を画像表示素子108に表示させる(ステップS2104)。
図21に示す処理を繰り返すことにより、都度、画像表示素子108を表示するオブジェクトの表示深度に応じて、移動させることができる。つまり、オブジェクトの表示深度と画像表示素子108の位置との差を少なくすることができる。したがって、ユーザ300の眼球運動によりピント調整の発生を抑制することができるので、ユーザ300に与える疲労感を抑制することができる。
<駆動例2>
図22は、実施の形態に係るヘッドマウントディスプレイ100の動作の詳細を示すフローチャートである。ここでは、駆動制御部126が、動画である映像データを伝達された段階から説明する。
駆動制御部126は、映像データのうち第1時間に表示する表示オブジェクトの表示深度情報(以下、第1表示深度情報)を映像データから抽出する(ステップS2201)。
次に、駆動制御部126は、映像データのうち第1時間に続く第2時間に表示する表示オブジェクトの表示深度情報(以下、第2表示深度情報)を映像データから抽出する(ステップS2202)。なお、ここで、第2時間は、第1時間の直後(1フレーム後ろ)である必要はなく、一定時間(例えば、1sec)後でもよい。
駆動制御部126は、第2表示深度情報で示される第2表示深度が、第1表示深度情報で示される第1表示深度よりも大きい(深い)か否かを判定する(ステップS2203)。これは第2時間に表示されるオブジェクトが、第1時間に表示されている場合よりも、ユーザにとって、奥側に表示されて見えるのかを判定することと同義である。
第2表示深度が第1表示深度よりも大きい場合に(ステップS2203のYES)、駆動制御部126は、画像表示素子108、すなわち、モニターをユーザの眼から遠ざける方向に移動させるよう駆動部125に制御信号を伝達する。駆動部125は、当該制御信号に従って、ユーザの眼から画像表示素子108を遠ざける方向に移動させる(ステップS2204)。
第2表示深度が第1表示深度よりも小さい場合に(ステップS2203のNO)、駆動制御部126は、画像表示素子108、すなわち、モニターをユーザの眼に近づける方向に移動させるよう駆動部125に制御信号を伝達する。駆動部125は、当該制御信号に従って、ユーザの眼に近づける画像表示素子を近づける方向に移動させる(ステップS2206)。
駆動部125は、画像表示素子108を移動させると、画像表示素子108を移動させた旨を表示部121に伝達する。そして、表示部121は、画像表示素子108に第2時間に表示すべき映像を表示する(ステップS2205)。
ヘッドマウントディスプレイ100は、視線検出装置200の映像出力部222から出力される映像データを全て表示し終える(又はユーザにより映像の再生を中断される)まで、図22に示す処理を繰り返す。
これにより、連続して画像を表示する動画などの場合のオブジェクトの表示深度と画像表示素子108との間の距離が変動すればユーザ300のピント調整機能が発生しやすくなるものの、図22に示す処理により、この発生頻度を抑制することができる。
<まとめ>
上述のように、本発明に係る視線検出システム1は、表示する立体映像におけるオブジェクトの表示深度に応じて、画像表示素子108、すなわち、モニターそのものを移動させることができる。具体的には、画像表示素子108の位置と、立体映像の表示深度とを近づけることができる。画像表示素子108の位置と立体映像の表示深度との乖離が大きければ大きいほど眼球のピント調整が発生しやすくなるが、本実施の形態に係る構成を備えることにより、ヘッドマウントディスプレイ100は、眼球のピント調整運動が発生する頻度を抑制することができる。したがって、オブジェクトの仮想的な表示位置とモニターの実際の位置との差異に基づく、眼球機能のピント調整の発生を多少なりとも軽減することができるので、ユーザの眼球疲労を抑制することができる。
また、本発明に係る視線検出システム1は、ヘッドマウントディスプレイ100に搭載して使用すると、モニターの移動が容易であるとともに、視線検出も行うことができる。したがって、ユーザになるべく疲労感を与えないで立体映像を提示でき、かつ、その立体映像において、ユーザが見ている箇所を特定できる視線検出の両方を実現できる。
なお、本実施の形態5において、画像表示素子108を稼働させる構造は、上記図20に示す構造に限定されるものではない。図20(a)の矢印710に示す方向に画像表示素子108を移動させることができる構造になっていれば、その他の構造を採用することとしてもよい。例えば、ウォームギアなどにより同様の構成を実現することとしてもよい。また、上記実施の形態においては、図20に示した構造は、ヘッドマウントディスプレイ100の左右(ユーザが装着している状態での左右であり、画像表示素子108の長尺方向における左右)に備えることしたが、画像表示素子108を左右で違和感なく移動させることができるのであれば、片側のみの構造であってもよい。
本実施の形態5において、画像表示素子108は、1つとしているが、これはその限りではない。ヘッドマウントディスプレイ100に、ユーザ300の左目に相対する画像表示素子と、ユーザ300の右目に相対する画像表示素子との2つの画像表示素子を備え、それぞれを別々に駆動させることとしてもよい。これにより、ユーザ300の左右の眼の視力に応じた焦点調整のような細やかな制御を行うことができるようになる。
本実施の形態5においては、ユーザ300の視線を検出するために、ユーザ300の眼を撮像する手法として、ホットミラー112で反射させた映像を撮像しているが、これは、ホットミラー112を通さずに直接ユーザ300の眼を撮像してもよい。
<補足2>
本実施の形態5に係る視線検出システムは、立体映像表示システムとして、以下のようにあらわされてもよい。
(l)本実施の形態5に係る立体映像表示システムは、ユーザに提示する立体映像を表示するモニターと、前記ユーザの眼との相対距離が変動するよう前記モニターを移動させる駆動部と、前記モニターに表示させる立体映像の深度に応じて前記駆動部を制御する制御部とを備える立体映像表示システムである。
また、本実施の形態5に係る制御方法は、立体視におけるユーザの疲労を軽減するための立体映像表示システムの制御方法であって、モニターにユーザに提示する立体映像を表示する表示ステップと、前記モニターに表示させる立体映像の深度に応じて、前記ユーザの眼との相対距離が変動するよう前記モニターを移動させる駆動部を制御する制御ステップとを含む。
本実施の形態5に係る制御プログラムは、立体映像表示システムのコンピュータに、モニターにユーザに提示する立体映像を表示させる表示機能と、前記モニターに表示させる立体映像の深度に応じて、前記ユーザの眼との相対距離が変動するよう前記モニターを移動させる駆動部を制御する制御機能とを実現させる制御プログラム。
(m)上記(l)に係る立体映像表示システムにおいて、前記制御部は、前記立体映像が表示される深度に前記モニターを近づける方向に前記駆動部を制御することを特徴とすることとしてもよい。
(n)上記(l)又は(m)に係る立体映像表示システムにおいて、前記制御部は、第1の時間に続く第2の時間において表示される立体映像の深度が、前記第1の時間に表示された立体映像の深度よりも浅くなる場合に、前記モニターを前記ユーザの眼に近づける方向に前記駆動部を制御することを特徴としてもよい。
(o)上記(l)〜(n)のいずれかに係る立体映像表示システムにおいて、前記制御部は、第1の時間に続く第2の時間において表示される立体映像の深度が、前記第1の時間に表示された立体映像の深度よりも深くなる場合に、前記モニターを前記ユーザの眼から遠ざける方向に前記駆動部を制御することを特徴としてもよい。
(p)上記(l)〜(o)のいずれかに係る立体映像表示システムにおいて、前記立体映像表示システムは、ユーザの頭部に装着して使用されるヘッドマウントディスプレイに搭載されるものであり、前記ヘッドマウントディスプレイは、さらに、ユーザの眼に非可視光を照射する非可視光照射部と、前記非可視光照射部により照射された非可視光を含むユーザの眼を撮像する撮像部と、前記撮像部により撮像された画像を、視線検出を行う視線検出装置に出力する出力部とを備えることを特徴としてもよい。
<補足3>
本発明に係る視線検出システムは、上記実施の形態に限定されるものではなく、その発明の思想を実現するための他の手法により実現されてもよいことは言うまでもない。
上記実施の形態において、マーカー画像(輝点)を表示した位置は一例であり、ユーザの視線検出を行うために異なる位置に表示され、それぞれを注視するユーザの眼の画像を獲得し、そのときのユーザの眼の中心を特定することができれば、上記実施の形態に示した表示位置に限定されないことは言うまでもない。また、その際にマーカー画像を表示する個数も9つに限定されるものではなく、上記行列xの4つの要素を特定するには、4つの式が成立すればよいので、少なくとも4点のマーカー画像についてのユーザの角膜中心を特定できれば事足りる。
上記実施の形態においては、ユーザ300の視線を検出するために、ユーザ300の眼を撮像する手法として、ホットミラー112で反射させた映像を撮像しているが、これは、ホットミラー112を通さずに直接ユーザ300の眼を撮像してもよい。
上記実施の形態においては、マーカー画像出力部223は、視線検出装置200のオペレータからの入力指示に従って、マーカー画像の表示位置を変更することとしたが、マーカー画像出力部223は、自動的にマーカー画像の表示位置を変更することとしてもよい。例えば、マーカー画像出力部223は、所定時間(例えば、3秒)が経過するごとにマーカー画像の表示位置を変更することとしてもよい。
より好適には、視線検出システム1は、ヘッドマウントディスプレイ100から得られた撮像画像を解析して、ユーザがマーカー画像を注視しているか否かを判定し、ユーザがマーカー画像を注視していると判定すると、マーカー画像の表示位置を変更するように構成されてもよい。
即ち、記憶部227には、予めユーザが画像表示素子108の中央を注視している状態の画像(9つのマーカー画像のうちの中央のマーカー画像をユーザが注視している状態で撮像した画像)を記憶しておく。そして、判定部224は、記憶されている当該画像と撮像画像との角膜(黒目)の中心位置の比較を行って、撮像画像のユーザの角膜中心が記憶している画像のユーザの角膜中心から、マーカー画像が表示されている方向に所定距離(例えば、画像表示素子108の画素座標単位系において30画素)以上離間しているか否かに応じて、ユーザがマーカー画像を注視しているか否かを判定する。そして、判定部224は、当該判定において、ユーザがマーカー画像を注視していると判定した場合に、マーカー画像出力部223にマーカー画像の表示位置を変更を指示し、マーカー画像出力部223は当該指示にしたがって、マーカー画像の表示位置を変更する。
マーカー画像出力部223は、ユーザがマーカー画像を注視していないと判定した場合には、ユーザがマーカー画像に注意が向くように、マーカー画像を強調表示(例えば、その表示位置で点滅させたり、矢印等のアイコンでマーカー画像を指示したり、「マーカーを見てください」というような内容な文章を表示したりする)するように報知することもできる。当該報知は、音声ガイダンスにより、ヘッドマウントディスプレイ100のヘッドフォン170から、「マーカーを見てください」というようなアナウンスを行うことにより実現することとしてもよい。そのために記憶部227は当該音声のデータを記憶し、マーカー画像出力部223は、ユーザがマーカー画像を注視していないと判定したときにその音声のデータをヘッドマウントディスプレイ100に送信し、ヘッドマウントディスプレイ100は、受信した音声のデータをヘッドフォン170から出力する。また、更には、ヘッドマウントディスプレイ100は、判定部224がキャリブレーションのための撮像画像の取得に成功したと判定した場合にユーザに問題がなかったことを示す(キャリブレーションに成功していることを示す)ために、マーカー画像に例えば、「○」や「OK」といった画像を表示することとしてもよい。
このようにヘッドマウントディスプレイ100を装着しているユーザがマーカー画像を注視しているか否かを判定するように視線検出システム1を構成することで、キャリブレーションの自動化を実現できる。したがって、従来のキャリブレーションにおいてはヘッドマウントディスプレイ100を装着するユーザとは別にオペレータが必要となるところ、オペレータの存在なしでキャリブレーションを行うことができる。
また、ヘッドマウントディスプレイ100は、3D画像を表示する際に、画像表示素子108をユーザの眼との間の距離を変更できる(移動できる)構成を備えることとしてもよい。ユーザの眼から表示される3D画像までの仮想距離(深度)と、実際のユーザの眼と画像表示素子108との間の距離とが乖離していると、ユーザの眼の疲れの一因となるところ、当該構成により、ヘッドマウントディスプレイ100は、ユーザの眼の疲れを軽減することができる。
また、視線検出システム1において、キャリブレーション時に、ユーザの有効視野を特定することとしてもよい。ユーザの有効視野とは、ユーザがある一点を見ている状態で、そこから端部方向に向けて、ユーザが明瞭に画像を認識できる範囲のことである。視線検出システム1においては、キャリブレーション時に、画面中心から円状にマーカー画像を表示して、有効視野を特定することとしてもよい。また、ユーザがある一点を見ている状態で、その一点を中心とした複数の同心円を明滅表示させて、同時に消えて見えるタイミングとなる周期を特定することで、ユーザの有効視野を特定することとしてもよい。ユーザごとの有効視野の特定ができれば、有効視野外の画像については画質を落としてもユーザは認識しにくいので、視線検出装置200からヘッドマウントディスプレイ100に転送する画像のデータ転送量を抑制することができる。
また、上記実施の形態においては、視線検出におけるキャリブレーションの手法として、視線検出装置200のプロセッサが視線検出プログラム等を実行することにより、ユーザが注視している箇所を特定することとしているが、これは視線検出装置200に集積回路(IC(Integrated Circuit)チップ、LSI(Large Scale Integration))等に形成された論理回路(ハードウェア)や専用回路によって実現してもよい。また、これらの回路は、1または複数の集積回路により実現されてよく、上記実施の形態に示した複数の機能部の機能を1つの集積回路により実現されることとしてもよい。LSIは、集積度の違いにより、VLSI、スーパーLSI、ウルトラLSIなどと呼称されることもある。すなわち、図10に示すように、ヘッドマウントディスプレイ100は、第1通信回路118aと、第1表示回路121aと、赤外光照射回路122aと、画像処理回路123aと、撮像回路124aとから構成されてよく、それぞれの機能は、上記実施の形態に示した同様の名称を有する各部と同様である。また、視線検出装置200は、第2通信回路220aと、視線検出回路221aと、映像出力回路222aと、マーカー画像出力回路223aと、判定回路224aと、合成画像出力回路225aと、第2表示回路226aと、記憶回路227aとから構成されてよく、それぞれの機能は、上記実施の形態に示した同様の名称を有する各部と同様である。なお、図10では、実施の形態1における視線検出システムを回路により実現した例を示したが、図示はしないものの、図11や図19に示す視線検出システムについても同様に回路により実現してもよいことは言うまでもない。
また、上記視線検出プログラムは、プロセッサが読み取り可能な記録媒体に記録されていてよく、記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記視線検出プログラムは、当該視線検出プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記プロセッサに供給されてもよい。本発明は、上記視線検出プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
なお、上記視線検出プログラムは、例えば、ActionScript、JavaScript(登録商標)などのスクリプト言語、Objective-C、Java(登録商標)などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装できる。
また、本発明に係る視線検出方法は、ユーザに装着して使用するヘッドマウントディスプレイと、前記ユーザの視線を検出する視線検出装置とを含む視線検出システムによる視線検出のための方法であって、前記視線検出装置が前記ヘッドマウントディスプレイにマーカー画像を出力し、前記ヘッドマウントディスプレイが、前記マーカー画像を表示し、前記マーカー画像を注視するユーザの眼を撮像し、撮像されたユーザの眼を含む画像を前記視線検出装置に出力し、前記視線検出装置が、前記マーカー画像、及び、前記撮像された前記マーカー画像を注視しているユーザの眼を含む画像を重畳した合成画像を作成し、作成された合成画像を出力することを特徴とする方法としてもよい。
また、本発明に係る視線検出プログラムは、コンピュータに、ヘッドマウントディスプレイに表示させるマーカー画像を出力するマーカー画像出力機能と、前記ヘッドマウントディスプレイに表示されたマーカー画像を注視するユーザの眼を撮像した撮像画像を取得する取得機能と、前記マーカー画像と、前記撮像画像とを重畳した合成画像を作成する作成機能と、前記合成画像を出力する合成画像出力機能とを実現させるプログラムとしてもよい。