(57)【要約】【課題】ユーザの頭部に装着して使用する装着具のずれを検出する。【解決手段】ユーザが装着して使用する装着具を含む視線検出システムであって、ユーザの眼に非可視光を照射する複数の照射部と、非可視光に基づいてユーザの眼を撮像するカメラと、カメラが撮像した撮像画像からユーザの瞳孔中心を特定する瞳孔特定部と、複数の照射部の配置位置と、複数の照射部からユーザの眼に照射した照射光の照射位置と、カメラの配置位置とに基づいて、ユーザの角膜曲率の中心の位置に関する情報を取得する取得部と、撮像画像における、ユーザの角膜曲率の中心と、瞳孔中心とを結ぶベクトルを特定するベクトル特定部と、ベクトルに基づいてユーザが装着する装着具の装着状態のずれを検出するずれ検出部とを備える。【選択図】図１１
2018026120.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが装着して使用する装着具を含む視線検出システムであって、
ユーザの眼に非可視光を照射する複数の照射部と、
前記非可視光に基づいて前記ユーザの眼を撮像するカメラと、
前記カメラが撮像した撮像画像から前記ユーザの瞳孔中心を特定する瞳孔特定部と、
前記複数の照射部の配置位置と、前記複数の照射部から前記ユーザの眼に照射した照射光の照射位置と、前記カメラの配置位置とに基づいて、前記ユーザの角膜曲率の中心の位置に関する情報を取得する取得部と、
前記撮像画像における、前記ユーザの角膜曲率の中心と、前記瞳孔中心とを結ぶベクトルを特定するベクトル特定部と、
前記ベクトルに基づいて前記ユーザが装着する前記装着具の装着状態のずれを検出するずれ検出部とを備える視線検出システム。
【請求項２】
前記視線検出システムは、さらに、
前記複数の照射部と、前記カメラとの配置位置を示す配置情報を記憶する記憶部を備え、
前記取得部は、前記記憶部に記憶した前記複数の照射部のうちの第１の照射部の配置情報と、前記第１の照射部から照射された非可視光の前記ユーザの眼に対する第１照射位置と、前記記憶部に記憶した前記複数の照射部のうち前記第１の照射部とは異なる第２の照射部の配置情報と、前記第２の照射部から照射された非可視光の前記ユーザの眼に対する第２照射位置と、前記カメラの配置位置とに基づいて前記ユーザの角膜曲率の中心の位置に関する情報を取得することを特徴とする請求項１に記載の視線検出システム。
【請求項３】
前記取得部は、前記カメラの中心位置から前記第１の照射部への第１ベクトルと、前記カメラの中心位置から前記第１照射位置への第２ベクトルとを含む第１平面、及び、前記カメラの中心位置から前記第２の照射部への第３ベクトルと、前記カメラの中心位置から前記第２照射位置への第４ベクトルとを含む第２平面の交線を、前記ユーザの角膜曲率の中心の位置に関する情報として取得することを特徴とする請求項２に記載の視線検出システム。
【請求項４】
前記ベクトル特定部は、前記交線と前記カメラのイメージセンサとの交点を前記撮像画像における、前記ユーザの角膜曲率の中心として前記ベクトルを特定することを特徴とする請求項３に記載の視線検出システム。
【請求項５】
前記ずれ検出部は、第１の時刻において前記ベクトル特定部が前記ベクトルとして特定した第１ベクトルの位置と、前記第１の時刻から所定時間内の第２の時刻において前記ベクトル特定部が前記ベクトルとして特定した第２ベクトルの位置と、が異なる位置にある場合にずれがあることを検出することを特徴とする請求項１から４のいずれか１項に記載の視線検出システム。
【請求項６】
前記装着具は、ヘッドマウントディスプレイであり、
前記視線検出システムは、更に、視線検出装置を含み、
前記装着具は、
前記照射部と、
前記カメラと、
前記撮像画像を前記視線検出装置に送信する送信部を備え、
前記視線検出装置は、
前記撮像画像を受信する受信部と、
前記瞳孔特定部と、
前記取得部と、
前記ベクトル特定部と、
前記ずれ検出部と、を備えることを特徴とする請求項１から５のいずれか１項に記載の視線検出システム。
【請求項７】
前記装着具は、更に、前記ユーザに画像を提示する表示部を備え、
前記視線検出装置は、更に、前記撮像画像に基づいて、前記画像を注視するユーザの注視位置を検出する視線検出部を備えることを特徴とする請求項６に記載の視線検出システム。
【請求項８】
前記視線検出装置は、さらに、
前記ずれ検出部が検出したずれに基づいて、前記視線検出部が検出したユーザの注視位置を補正する補正部を備えることを特徴とする請求項７に記載の視線検出システム。
【請求項９】
ユーザの眼に非可視光を複数の照射部から照射する照射ステップと、
前記非可視光に基づいて前記ユーザの眼を撮像するカメラを用いて撮像する撮像ステップと、
前記撮像ステップにおいて撮像した撮像画像から前記ユーザの瞳孔中心を特定する瞳孔特定ステップと、
前記複数の照射部の配置位置と、前記複数の照射部から前記ユーザの眼に照射した照射光の照射位置と、前記カメラの配置位置とに基づいて、前記ユーザの角膜曲率の中心の位置に関する情報を取得する取得ステップと、
前記撮像画像における、前記ユーザの角膜曲率の中心と、前記瞳孔中心とを結ぶベクトルを特定するベクトル特定ステップと、
前記ベクトルに基づいて前記ユーザが装着する装着具の装着状態のずれを検出するずれ検出ステップとを含むずれ検出方法。
【請求項１０】
ユーザが装着して使用する装着具の装着状態のずれを検出するずれ検出プログラムであって、
コンピュータに、
ユーザの眼に非可視光を照射する複数の照射から照射した前記非可視光に基づいて前記ユーザの眼を撮像するカメラから撮像した撮像画像を取得する撮像画像取得機能と、
前記撮像画像から前記ユーザの瞳孔中心を特定する瞳孔特定機能と、
前記複数の照射部の配置位置と、前記複数の照射部から前記ユーザの眼に照射した照射光の照射位置と、前記カメラの配置位置とに基づいて、前記ユーザの角膜曲率の中心の位置に関する情報を取得する取得機能と、
前記撮像画像における、前記ユーザの角膜曲率の中心と、前記瞳孔中心とを結ぶベクトルを特定するベクトル特定機能と、
前記ベクトルに基づいて前記ユーザが装着する前記装着具の装着状態のずれを検出するずれ検出機能とを実現させるずれ検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、視線検出システムに関し、特にヘッドマウントディスプレイを用いた視線検出技術に関する。
【背景技術】
【０００２】
従来、ユーザが注視している箇所を特定する視線検出においては、事前にキャリブレーションを行って、ユーザの視線の基本情報を予め取得しておくことで実現する。特許文献１には、キャリブレーションを行って、視線検出を行う技術が開示されている。
【０００３】
近年においては、ユーザが頭部に装着して使用するヘッドマウントディスプレイやディスプレイグラスなどにおいても視線検出を実現することが試みられている。そのような場合においても上述のキャリブレーションを行ったうえで、視線検出を行うこととなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１３４３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、これは、ユーザと、ヘッドマウントディスプレイやディスプレイグラスとの相対位置関係が変わらないことが前提となっている。そのため、例えば、ヘッドマウントディスプレイが使用中に、図１３に示すように、物理的にずれた場合には、視線検出の検出位置の精度が低下するという問題があった。そのため、ヘッドマウントディスプレイのユーザへの装着状態のずれを検出することは視線検出の精度低下を発見するためにも重要な課題であった。図１３に示す例では、ユーザの頭部に装着したヘッドマウントディスプレイ１００が点線１５０ｔ１における状態から、実線１５０ｔ２に示す状態に上にずれた場合を示している。なお、これは、ずれの一例を示しているにすぎず、下にずれる他、片側が上下にずれたりする場合なども含まれ、いずれのずれ方をしても、視線検出の検出位置の精度が低下するという問題がある。そのため、このずれを検出する手法の開発が望まれている。
【０００６】
本発明は、上記問題に鑑みてなされたものであり、ヘッドマウントディスプレイのようなユーザの頭部に装着して使用する装着具のズレが発生したような場合にそのずれを検出することができる視線検出システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様は、ユーザが装着して使用する装着具を含む視線検出システムであって、ユーザの眼に非可視光を照射する複数の照射部と、非可視光に基づいてユーザの眼を撮像するカメラと、カメラが撮像した撮像画像からユーザの瞳孔中心を特定する瞳孔特定部と、複数の照射部の配置位置と、複数の照射部からユーザの眼に照射した照射光の照射位置と、カメラの配置位置とに基づいて、ユーザの角膜曲率の中心の位置に関する情報を取得する取得部と、撮像画像における、ユーザの角膜曲率の中心と、瞳孔中心とを結ぶベクトルを特定するベクトル特定部と、ベクトルに基づいてユーザが装着する装着具の装着状態のずれを検出するずれ検出部とを備える。
【０００８】
上記視線検出システムにおいて、視線検出システムは、さらに、複数の照射部と、カメラとの配置位置を示す配置情報を記憶する記憶部を備え、取得部は、記憶部に記憶した複数の照射部のうちの第１の照射部の配置情報と、第１の照射部から照射された非可視光のユーザの眼に対する第１照射位置と、記憶部に記憶した複数の照射部のうち第１の照射部とは異なる第２の照射部の配置情報と、第２の照射部から照射された非可視光のユーザの眼に対する第２照射位置と、カメラの配置位置とに基づいてユーザの角膜曲率の中心の位置に関する情報を取得することとしてもよい。
【０００９】
上記視線検出システムにおいて、取得部は、カメラの中心位置から第１の照射部への第１ベクトルと、カメラの中心位置から第１照射位置への第２ベクトルとを含む第１平面、及び、カメラの中心位置から第２の照射部への第３ベクトルと、カメラの中心位置から第２照射位置への第４ベクトルとを含む第２平面の交線を、ユーザの角膜曲率の中心の位置に関する情報として取得することとしてもよい。
【００１０】
上記視線検出システムにおいて、ベクトル特定部は、交線とカメラのイメージセンサとの交点を撮像画像における、ユーザの角膜曲率の中心としてベクトルを特定することとしてもよい。
【００１１】
上記視線検出システムにおいて、ずれ検出部は、第１の時刻においてベクトル特定部がベクトルとして特定した第１ベクトルの位置と、第１の時刻から所定時間内の第２の時刻においてベクトル特定部がベクトルとして特定した第２ベクトルの位置と、が異なる位置にある場合にずれがあることを検出することとしてもよい。
【００１２】
上記視線検出システムにおいて、装着具は、ヘッドマウントディスプレイであり、視線検出システムは、更に、視線検出装置を含み、装着具は、照射部と、カメラと、撮像画像を視線検出装置に送信する送信部を備え、視線検出装置は、撮像画像を受信する受信部と、瞳孔特定部と、取得部と、ベクトル特定部と、ずれ検出部と、を備えることとしてもよい。
【００１３】
上記視線検出システムにおいて、装着具は、更に、ユーザに画像を提示する表示部を備え、視線検出装置は、更に、撮像画像に基づいて、画像を注視するユーザの注視位置を検出する視線検出部を備えることとしてもよい。
【００１４】
上記視線検出システムにおいて、視線検出装置は、さらに、ずれ検出部が検出したずれに基づいて、視線検出部が検出したユーザの注視位置を補正する補正部を備えることとしてもよい。
【００１５】
また、本発明のある態様は、ユーザが装着する装着具の装着状態のずれを検出するずれ検出方法であって、ユーザの眼に非可視光を複数の照射部から照射する照射ステップと、非可視光に基づいてユーザの眼を撮像するカメラを用いて撮像する撮像ステップと、撮像ステップにおいて撮像した撮像画像からユーザの瞳孔中心を特定する瞳孔特定ステップと、複数の照射部の配置位置と、複数の照射部からユーザの眼に照射した照射光の照射位置と、カメラの配置位置とに基づいて、ユーザの角膜曲率の中心の位置に関する情報を取得する取得ステップと、撮像画像における、ユーザの角膜曲率の中心と、瞳孔中心とを結ぶベクトルを特定するベクトル特定ステップと、ベクトルに基づいてユーザが装着する装着具の装着状態のずれを検出するずれ検出ステップとを含む。
【００１６】
また、本発明のある態様は、ユーザが装着して使用する装着具の装着状態のずれを検出するずれ検出プログラムであって、コンピュータに、ユーザの眼に非可視光を照射する複数の照射から照射した非可視光に基づいてユーザの眼を撮像するカメラから撮像した撮像画像を取得する撮像画像取得機能と、撮像画像からユーザの瞳孔中心を特定する瞳孔特定機能と、複数の照射部の配置位置と、複数の照射部からユーザの眼に照射した照射光の照射位置と、カメラの配置位置とに基づいて、ユーザの角膜曲率の中心の位置に関する情報を取得する取得機能と、撮像画像における、ユーザの角膜曲率の中心と、瞳孔中心とを結ぶベクトルを特定するベクトル特定機能と、ベクトルに基づいてユーザが装着する装着具の装着状態のずれを検出するずれ検出機能とを実現させる。
【００１７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１８】
本発明によれば、ヘッドマウントディスプレイ等に代表される装着具において、その装着状態のずれを検出する技術を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】視線検出システムの構成を示す図である。
【図２】ヘッドマウントディスプレイをユーザが装着した様子を示す外観図である。
【図３】ヘッドマウントディスプレイの画像表示系の概観を模式的に示す斜視図である。
【図４】ヘッドマウントディスプレイの画像表示系の光学構成を模式的に示す図である。
【図５】視線検出システムの構成を示すブロック図である。
【図６】視線方向の検出のためのキャリブレーションを説明する模式図である。
【図７】ユーザの角膜の位置座標を説明する模式図である。
【図８】ずれ検出の概要を模式的に説明するための斜視図である。
【図９】眼球のイメージ図である。
【図１０】ずれ検出の概要を模式的に説明するための平面図である。
【図１１】ヘッドマウントディスプレイのずれと、イメージセンサへの写像の関係例を示す図である。
【図１２】視線検出システムの動作を示すフローチャートである。
【図１３】ヘッドマウントディスプレイがずれる様子を示す図である。
【図１４】視線検出システムの構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明に係る視線検出システムについて図面を参照しながら詳細に説明する。
【００２１】
＜実施の形態１＞
＜構成＞
図１に示すように、本発明に係る視線検出システム１は、装着具１００を含む。
【００２２】
装着具１００は、ユーザが装着して使用するデバイスであり、例えば、ヘッドマウントディスプレイや、ウェアグラスなどに代表されるウェアラブル端末である。
【００２３】
視線検出システム１は、照射部１２１と、カメラ１１６と、瞳孔特定部２２３と、取得部２２４と、ベクトル特定部２２５と、ずれ検出部２２６とを備える。
【００２４】
照射部１２１は、装着具を装着しているユーザの眼に非可視光を照射する。照射部１２１は、複数の照射源を有する。照射部１２１が照射する非可視光は、例えば、ユーザの眼に害が及ばない範囲の近赤外光である。また、照射源は、例えば、ＬＥＤライトである。
【００２５】
カメラ１１６は、照射部１２１が照射した非可視光に基づいてユーザの眼を撮像する。
【００２６】
瞳孔特定部２２３は、カメラ１１６が撮像した撮像画像からユーザの瞳孔中心を特定する。ここで瞳孔中心は、ユーザ３００の瞳孔の中心位置に相当する位置であればよく、中心以外には重心であってもよい。
【００２７】
取得部２２４は、照射部１２１の複数の照射源の配置位置と、複数の照射源からユーザの眼に照射した照射光の照射位置と、カメラ１１６の配置とに基づいて、ユーザの角膜曲率の中心の位置に関する情報を取得する。ここでは角膜曲率の中心と記載しているが、これは、角膜曲率の重心位置であってもよい。配置位置や照射位置は、視線検出システムにおいてそれぞれの位置を特定できる座標情報であってもよいし、基本位置（例えば、視線検出システム上で設定した原点）からの方向と距離を示す情報であってもよい。また、ユーザの角膜曲率とは、ユーザの角膜が形成する円弧（球）を含む円（球）の中心のことをいう。
【００２８】
ベクトル特定部２２５は、カメラ１１６が撮像した撮像画像において、ユーザの角膜距離角中心と、瞳孔中心とを結ぶベクトルを特定する。
【００２９】
ずれ検出部２２６は、ベクトル特定部２２５が特定したベクトルに基づいて、ユーザが装着している装着具１００の装着状態のずれを検出する。
以下、視線検出システム１について更に詳細に説明する。
【００３０】
図２は、実施の形態に係る視線検出システム１の概観を模式的に示す図である。実施の形態に係る視線検出システム１は、装着具１００の一例として示したヘッドマウントディスプレイ１００と視線検出装置２００とを含む。以下においては、装着具１００は、ヘッドマウントディスプレイ１００と記載する。図２に示すように、ヘッドマウントディスプレイ１００は、ユーザ３００の頭部に装着して使用される。
【００３１】
視線検出装置２００は、ヘッドマウントディスプレイ１００を装着したユーザの右目及び左目の少なくとも一方の視線方向を検出し、ユーザの焦点、すなわち、ユーザがヘッドマウントディスプレイに表示されている三次元画像において注視している箇所を特定する。また、視線検出装置２００は、ヘッドマウントディスプレイ１００が表示する映像を生成する映像生成装置としても機能する。限定はしないが、一例として、視線検出装置２００は、据え置き型のゲーム機、携帯ゲーム機、ＰＣ、タブレット、スマートフォン、ファブレット、ビデオプレイヤ、テレビ等の映像を再生可能な装置である。視線検出装置２００は、ヘッドマウントディスプレイ１００と無線または有線で接続する。図２に示す例では、視線検出装置２００はヘッドマウントディスプレイ１００と無線で接続している。視線検出装置２００がヘッドマウントディスプレイ１００との無線接続は、例えば既知のＷｉ−Ｆｉ（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）等の無線通信技術を用いて実現できる。限定はしないが、一例として、ヘッドマウントディスプレイ１００と視線検出装置２００との間における映像の伝送は、Ｍｉｒａｃａｓｔ（商標）やＷｉＧｉｇ（商標）、ＷＨＤＩ（商標）等の規格に則って実行される。
【００３２】
なお、図２は、ヘッドマウントディスプレイ１００と視線検出装置２００とが異なる装置である場合の例を示している。しかしながら、視線検出装置２００はヘッドマウントディスプレイ１００に内蔵されてもよい。
【００３３】
ヘッドマウントディスプレイ１００は、筐体１５０、装着具１６０、およびヘッドフォン１７０を備える。筐体１５０は、画像表示素子などユーザ３００に映像を提示するための画像表示系や、図示しないＷｉ−ＦｉモジュールやＢｌｕｅｔｏｏｔｈ（登録商標）モジュール等の無線伝送モジュールを収容する。装着具１６０は、ヘッドマウントディスプレイ１００をユーザ３００の頭部に装着する。装着具１６０は例えば、ベルトや伸縮性の帯等で実現できる。ユーザ３００が装着具１６０を用いてヘッドマウントディスプレイ１００を装着すると、筐体１５０はユーザ３００の眼を覆う位置に配置される。このため、ユーザ３００がヘッドマウントディスプレイ１００を装着すると、ユーザ３００の視界は筐体１５０によって遮られる。
【００３４】
ヘッドフォン１７０は、視線検出装置２００が再生する映像の音声を出力する。ヘッドフォン１７０はヘッドマウントディスプレイ１００に固定されなくてもよい。ユーザ３００は、装着具１６０を用いてヘッドマウントディスプレイ１００を装着した状態であっても、ヘッドフォン１７０を自由に着脱することができる。
【００３５】
図３は、実施の形態に係るヘッドマウントディスプレイ１００の画像表示系１３０の概観を模式的に示す斜視図である。より具体的に、図３は、実施の形態に係る筐体１５０のうち、ヘッドマウントディスプレイ１００を装着したときにユーザ３００の角膜３０２に対向する領域を示す図である。
【００３６】
図３に示すように、左目用凸レンズ１１４ａは、ユーザ３００がヘッドマウントディスプレイ１００を装着したときに、ユーザ３００の左目の角膜３０２ａと対向する位置となるように配置される。同様に、右目用凸レンズ１１４ｂは、ユーザ３００がヘッドマウントディスプレイ１００を装着したときに、ユーザ３００の右目の角膜３０２ｂと対向する位置となるように配置される。左目用凸レンズ１１４ａと右目用凸レンズ１１４ｂとは、それぞれ左目用レンズ保持部１５２ａと右目用レンズ保持部１５２ｂとに把持されている。
【００３７】
以下本明細書において、左目用凸レンズ１１４ａと右目用凸レンズ１１４ｂとを特に区別する場合を除いて、単に「凸レンズ１１４」と記載する。同様に、ユーザ３００の左目の角膜３０２ａとユーザ３００の右目の角膜３０２ｂとを特に区別する場合を除いて、単に「角膜３０２」と記載する。左目用レンズ保持部１５２ａと右目用レンズ保持部１５２ｂとも、特に区別する場合を除いて「レンズ保持部１５２」と記載する。
【００３８】
レンズ保持部１５２には、複数の赤外光源１０３が備えられている。煩雑となることを避けるために、図３においてはユーザ３００の左目の角膜３０２ａに対して赤外光を照射する赤外光源をまとめて赤外光源１０３ａで示し、ユーザ３００の右目の角膜３０２ｂに対して赤外光を照射する赤外光源をまとめて赤外光源１０３ｂで示す。以下、赤外光源１０３ａと赤外光源１０３ｂとを特に区別する場合を除いて「赤外光源１０３」と記載する。図３に示す例では、左目用レンズ保持部１５２ａには６つの赤外光源１０３ａが備えられている。同様に、右目用レンズ保持部１５２ｂにも６つの赤外光源１０３ｂが備えられている。このように、赤外光源１０３を凸レンズ１１４に直接配置せず、凸レンズ１１４を把持するレンズ保持部１５２に配置することにより、赤外光源１０３の取り付けが容易となる。一般にレンズ保持部１５２は樹脂等で構成されるため、ガラス等から構成される凸レンズ１１４よりも赤外光源１０３を取り付けるための加工が容易でからである。
【００３９】
上述したように、レンズ保持部１５２は凸レンズ１１４を把持する部材である。したがって、レンズ保持部１５２に備えられた赤外光源１０３は、凸レンズ１１４の周囲に配置されることになる。なお、ここでは、それぞれの眼に対して赤外光を照射する赤外光源１０３を６つとしているが、この数はこれに限定されるものではなく、それぞれの眼に対応して少なくとも１つあればよく、２以上配されているのが望ましい。
【００４０】
図４は、実施の形態に係る筐体１５０が収容する画像表示系１３０の光学構成を模式的に示す図であり、図３に示す筐体１５０を左目側の側面から見た場合の図である。画像表示系１３０は、赤外光源１０３、画像表示素子１０８、ホットミラー１１２、凸レンズ１１４、カメラ１１６、および第１通信部１１８を備える。
【００４１】
赤外光源１０３は、近赤外（７００ｎｍ〜２５００ｎｍ程度）の波長帯域の光を照射可能な光源である。近赤外光は、一般に、ユーザ３００の肉眼では観測ができない非可視光の波長帯域の光である。
【００４２】
画像表示素子１０８は、ユーザ３００に提示するための画像を表示する。画像表示素子１０８が表示する画像は、視線検出装置２００内の映像生成部２２２が生成する。映像生成部２２２については後述する。画像表示素子１０８は、例えば既知のＬＣＤ（Liquid Crystal Display）や有機ＥＬディスプレイ（Organic Electro Luminescence Display）等を用いて実現できる。
【００４３】
ホットミラー１１２は、ユーザ３００がヘッドマウントディスプレイ１００を装着したときに、画像表示素子１０８とユーザ３００の角膜３０２との間に配置される。ホットミラー１１２は、画像表示素子１０８が生成する可視光は透過するが、近赤外光は反射する性質を持つ。
【００４４】
凸レンズ１１４は、ホットミラー１１２に対して、画像表示素子１０８の反対側に配置される。言い換えると、凸レンズ１１４は、ユーザ３００がヘッドマウントディスプレイ１００を装着したときに、ホットミラー１１２とユーザ３００の角膜３０２との間に配置される。すなわち、凸レンズ１１４は、ヘッドマウントディスプレイ１００がユーザ３００に装着されたときに、ユーザ３００の角膜３０２に対向する位置に配置される。
【００４５】
凸レンズ１１４はホットミラー１１２を透過する画像表示光を集光する。このため、凸レンズ１１４は、画像表示素子１０８が生成する画像を拡大してユーザ３００に提示する画像拡大部として機能する。なお、説明の便宜上、図３では凸レンズ１１４をひとつのみ示しているが、凸レンズ１１４は、種々のレンズを組み合わせて構成されるレンズ群であってもよいし、一方が曲率を持ち、他方が平面の片凸レンズであってもよい。
【００４６】
複数の赤外光源１０３は、凸レンズ１１４の周囲に配置されている。赤外光源１０３は、ユーザ３００の角膜３０２に向けて赤外光を照射する。
【００４７】
図示はしないが、実施の形態に係るヘッドマウントディスプレイ１００の画像表示系１３０は画像表示素子１０８を二つ備えており、ユーザ３００の右目に提示するための画像と左目に提示するための画像とを独立に生成することができる。このため、実施の形態に係るヘッドマウントディスプレイ１００は、ユーザ３００の右目と左目とに、それぞれ右目用の視差画像と左目用の視差画像とを提示することができる。これにより、実施の形態に係るヘッドマウントディスプレイ１００は、ユーザ３００に対して奥行き感を持った立体映像を提示することができる。
【００４８】
上述したように、ホットミラー１１２は、可視光を透過し、近赤外光を反射する。したがって、画像表示素子１０８が照射する画像光はホットミラー１１２を透過してユーザ３００の角膜３０２まで到達する。また赤外光源１０３から照射され、凸レンズ１１４の内部の反射領域で反射された赤外光は、ユーザ３００の角膜３０２に到達する。
【００４９】
ユーザ３００の角膜３０２に到達した赤外光は、ユーザ３００の角膜３０２で反射され、再び凸レンズ１１４の方向に向かう。この赤外光は凸レンズ１１４を透過し、ホットミラー１１２で反射される。カメラ１１６は可視光を遮断するフィルタを備えており、ホットミラー１１２で反射された近赤外光を撮像する。すなわち、カメラ１１６は、赤外光源１０３から照射され、ユーザ３００の眼で角膜反射された近赤外光を撮像する近赤外カメラである。
【００５０】
なお、図示はしないが、実施の形態に係るヘッドマウントディスプレイ１００の画像表示系１３０は、カメラ１１６を二つ、すなわち、右目で反射された赤外光を含む画像を撮像する第１撮像部と、左目で反射された赤外光を含む画像を撮像する第２撮像部とを備える。これにより、ユーザ３００の右目及び左目の双方の視線方向を検出するための画像を取得することができる。
【００５１】
第１通信部１１８は、カメラ１１６が撮像した画像を、ユーザ３００の視線方向を検出する視線検出装置２００に出力する。具体的には、第１通信部１１８は、カメラ１１６が撮像した画像を視線検出装置２００に送信する。視線方向検出部として機能する視線検出部２２１の詳細については後述するが、視線検出装置２００のＣＰＵ（Central Processing Unit）が実行する視線検出プログラムによって実現される。なお、ヘッドマウントディスプレイ１００がＣＰＵやメモリ等の計算リソースを持っている場合には、ヘッドマウントディスプレイ１００のＣＰＵが視線方向検出部を実現するプログラムを実行してもよい。
【００５２】
詳細は後述するが、カメラ１１６が撮像する画像には、ユーザ３００の角膜３０２で反射された近赤外光に起因する輝点と、近赤外の波長帯域で観察されるユーザ３００の角膜３０２を含む眼の画像とが撮像されている。赤外光源からの近赤外光は、ある程度の指向性を有するものの、ある程度の拡散光も照射しており、ユーザ３００の眼の画像は、当該拡散光により撮像される。
【００５３】
以上は、実施の形態に係る画像表示系１３０のうち主にユーザ３００の左目に画像を提示するための構成について説明したが、ユーザ３００の右目に画像を提示するための構成は上記と同様である。
【００５４】
図５は、視線検出システム１に係るヘッドマウントディスプレイ１００と視線検出装置２００との詳細構成を示すブロック図である。
【００５５】
図５に示すように、ヘッドマウントディスプレイ１００は、第１通信部１１８と、表示部１２０と、照射部１２１と、撮像部１２２と、画像処理部１２３とを備える。
【００５６】
第１通信部１１８は、視線検出装置２００と通信を実行する機能を有する通信インターフェースである。上述したとおり、第１通信部１１８は、有線通信又は無線通信により第２通信部２２０と通信を実行する。使用可能な通信規格の例は上述した通りである。第１通信部１１８は、撮像部１２４または画像処理部１２３から伝送された視線検出に用いる画像データ（撮像画像のデータ）を第２通信部２２０に送信する。また、第１通信部１１８は、視線検出装置２００から送信された画像データやマーカー画像を表示部１２０に伝達する。画像データは、一例として、仮想空間画像を表示するためのデータであったり、ゲームコンテンツ画像であったりする。また、画像データは、三次元画像を表示するための右目用視差画像と、左目用視差画像とからなる視差画像対であってもよい。
【００５７】
表示部１２０は、第１通信部１１８から伝達された画像データであって、映像生成部２２２により生成された画像データを画像表示素子１０８に表示する機能を有する。また、表示部１２０は、映像生成部２２２から出力されたマーカー画像を画像表示素子１０８の指定されている座標に表示する。
【００５８】
照射部１２１は、赤外光源１０３を制御し、ユーザの右目又は左目に近赤外光を照射する。
【００５９】
撮像部１２２は、カメラ１１６を用いて、それぞれの目で反射された近赤外光を含む画像を撮像する。また、撮像部１２２は、画像表示素子１０８に表示されたマーカー画像を注視するユーザの眼を含む画像を撮像する。撮像部１２２は、撮像して得た画像を、第１通信部１１８又は画像処理部１２３に伝達する。
【００６０】
以上が、ヘッドマウントディスプレイ１００の構成の説明である。次に、視線検出装置２００について詳細に説明する。
【００６１】
図５に示すように、視線検出装置２００は、第２通信部２２０と、視線検出部２２１と、映像生成部２２２と、瞳孔特定部２２３と、取得部２２４と、ベクトル特定部２２５と、ずれ検出部２２６と、補正部２２７と、記憶部２２８とを備える。
【００６２】
第２通信部２２０は、ヘッドマウントディスプレイ１００の第１通信部１１８と通信を実行する機能を有する通信インターフェースである。上述したとおり、第２通信部２２０は、有線通信又は無線通信により第１通信部１１８と通信を実行する。第２通信部２２０は、映像生成部２２２から伝達された１以上の広告を含む仮想空間画像を表示するための画像データや、キャリブレーションのために用いるマーカー画像などをヘッドマウントディスプレイ１００に送信する。また、ヘッドマウントディスプレイ１００から伝達された撮像部１２２により撮像されたマーカー画像を注視するユーザの眼を含む画像や、映像生成部２２２が出力した画像データに基づいて表示された画像を見るユーザの眼を撮像した撮像画像を視線検出部２２１や瞳孔特定部２２３、取得部２２４に伝達する。
【００６３】
視線検出部２２１は、第２通信部２２０からユーザの右目の視線検出用の画像データ（撮像画像）を受け付けて、ユーザの右目の視線方向を検出する。同様に、第２通信部２２０からユーザの左目の視線検出用の画像データを受け付けて、ユーザ３００の左目の視線方向を検出する。より具体的には、視線検出部２２１は、後述する視線検出手法により、ユーザが画像表示素子１０８において表示されている画像の注視している箇所を特定する。視線検出部２２１は、ユーザが注視している箇所（画像表示素子１０８における注視座標）を映像生成部２２２に伝達する。
【００６４】
映像生成部２２２は、ヘッドマウントディスプレイ１００の表示部１２０に表示させる画像データを生成し、第２通信部２２０に伝達する。また、映像生成部２２２は、視線検出のためのキャリブレーションのためのマーカー画像を生成し、その表示座標位置と共に、第２通信部２２０に伝達して、ヘッドマウントディスプレイ１００に送信させる。また、映像生成部２２２は、視線検出部２２１または補正部２２７から出力されたユーザの注視に基づいて映像を生成し、そのデータを第２通信部２２０に伝達する。例えば、映像生成部２２２は、注視位置の解像度が高い映像データを生成して、第２通信部に伝達する。
【００６５】
瞳孔特定部２２３は、第２通信部２２０からユーザの眼を撮像した撮像画像を受け取って、解析する。瞳孔特定部２２３は、撮像画像中の瞳孔中心の座標位置を特定し、特定した座標位置をベクトル特定部２２５に伝達する。
【００６６】
取得部２２４は、記憶部２２８に記憶されているカメラ１１６の中心から第１の赤外光源の位置までのベクトルと、カメラ１１６の中心から撮像画像における第１の赤外光源からの照射位置へのベクトルとから、両ベクトルを通る平面を特定する。当該平面上のどこかに、ユーザ３００の眼の角膜曲率の中心が存在する。同様に、取得部２２４は、記憶部２２８に記憶されているカメラ１１６の中心から第２の赤外光源の位置までのベクトルと、カメラ１１６の中心から撮像画像における第２の赤外光源からの照射位置へのベクトルとから、両ベクトルを通る平面を特定する。この平面上のどこかにも、ユーザ３００の眼の角膜曲率の中心が存在する。そして、特定した２つの平面の交線を示す交線ベクトルを特定する。取得部２２４は、ユーザ３００の角膜曲率の中心に関する情報として、角膜曲率の中心を通る交線ベクトルの情報を、ベクトル特定部２２５に伝達する。
【００６７】
ベクトル特定部２２５は、瞳孔特定部２２３が特定した瞳孔中心の座標位置と、取得部２２４から伝達された交線ベクトルと、から撮像画像においてユーザの眼の角膜曲率の中心から、瞳孔中心へのベクトルＶを特定する。ベクトル特定部２２５は、取得部２２４が取得した交線ベクトルと、カメラ１１６のイメージセンサとの仮想上の交点、即ち、撮像画像上における座標位置を特定する。そして、交線ベクトルとイメージセンサとの交点を角膜曲率の中心とし、そこから、瞳孔中心までのベクトルＶを特定する。当該ベクトルＶは、ベクトルの始端（角膜曲率の中心）とベクトルの終端（瞳孔中心）との情報を含む。ベクトル特定部２２５は、特定したベクトルＶをずれ検出部２２６に伝達する。
【００６８】
ずれ検出部２２６は、ベクトル特定部２２５が第１の時間ｔ１において特定したベクトルＶ１と、第２の時間ｔ２において特定したベクトルＶ２とのそれぞれの位置座標を比較して、ユーザが装着しているヘッドマウントディスプレイ１００がずれているか否かを判定する。ずれ検出部２２６は、ベクトルＶ１とベクトルＶ２との長さと向きが所定範囲内（誤差の範囲内）で一致し、位置座標が所定以上一致しない場合に、ユーザが装着しているヘッドマウントディスプレイ１００の装着状態がずれていると判定する。それ以外の場合に、ずれ検出部２２６は、ユーザが装着しているヘッドマウントディスプレイ１００はずれていないと判定する。
【００６９】
補正部２２７は、視線検出部２２１が検出したユーザ３００の注視位置を、ずれ検出部２２６が検出したずれ量に基づいて補正する機能を有する。これにより、仮にユーザ３００が装着しているヘッドマウントディスプレイ１００がずれてしまったとしても、検出したユーザの注視位置に補正をかけて、正しくユーザが注視している位置を算出することができる。
【００７０】
記憶部２２８は、視線検出装置２００が動作上必要とする各種プログラムやデータを記憶する記録媒体である。記憶部２２８は、例えば、ＨＤＤ（Hard Disc Drive）、ＳＳＤ（Solid State Drive）などにより実現される。記憶部２２８は、視線検出部２２１が視線検出に用いる視線検出プログラムや、瞳孔特定部２２３、取得部２２４、ベクトル特定部２２５、ずれ検出部２２６が利用するずれ検出プログラムや、カメラ１１６から各赤外光源へのベクトル情報などを記憶している。
【００７１】
以上が視線検出装置２００の構成の説明である。次に、ユーザの注視点の検出について説明する。
【００７２】
図６は、実施の形態に係る視線方向の検出のためのキャリブレーションを説明する模式図である。ユーザ３００の視線方向は、カメラ１１６が撮像し第１通信部１１８が視線検出装置２００に出力した映像を、視線検出装置２００内の視線検出部２２１及び視線検出部２２１が解析することにより実現される。
【００７３】
映像生成部２２２は、図６に示すような点Ｑ１〜Ｑ９までの９つの点（マーカー画像）を生成し、ヘッドマウントディスプレイ１００の画像表示素子１０８に表示させる。視線検出装置２００は、点Ｑ１〜点Ｑ９に到るまで順番にユーザ３００に注視させる。このとき、ユーザ３００は首を動かさずに極力眼球の動きのみで各点を注視するように求められる。カメラ１１６は、ユーザ３００が点Ｑ１〜Ｑ９までの９つの点を注視しているときのユーザ３００の角膜３０２を含む画像を撮像する。
【００７４】
図７は、ユーザ３００の角膜３０２の位置座標を説明する模式図である。視線検出装置２００内の視線検出部２２１は、カメラ１１６が撮像した画像を解析して赤外光に由来する輝点１０５を検出する。ユーザ３００が眼球の動きのみで各点を注視しているときは、ユーザがいずれの点を注視している場合であっても、輝点１０５の位置は動かないと考えられる。そこで視線検出部２２１は、検出した輝点１０５をもとに、カメラ１１６が撮像した画像中に２次元座標系３０６を設定する。
【００７５】
視線検出部２２１はまた、カメラ１１６が撮像した画像を解析することにより、ユーザ３００の角膜３０２の中心Ｐを検出する。これは例えばハフ変換やエッジ抽出処理等、既知の画像処理を用いることで実現できる。これにより、視線検出部２２１は、設定した２次元座標系３０６におけるユーザ３００の角膜３０２の中心Ｐの座標を取得できる。
【００７６】
図６において、画像表示素子１０８が表示する表示画面に設定された２次元座標系における点Ｑ１〜点Ｑ９の座標をそれぞれＱ１（ｘ１，ｙ１）Ｔ，Ｑ２（ｘ２，ｙ２）Ｔ・・・，Ｑ９（ｘ９，ｘ９）Ｔとする。各座標は、例えば各点の中心に位置する画素の番号となる。また、ユーザ３００が点Ｑ１〜点Ｑ９を注視しているときの、ユーザ３００角膜３０２の中心Ｐを、それぞれ点Ｐ１〜Ｐ９とする。このとき、２次元座標系３０６における点Ｐ１〜Ｐ９の座標をそれぞれＰ１（Ｘ１，Ｙ１）Ｔ，Ｐ２（Ｘ２，Ｙ２）Ｔ，・・・，Ｐ９（Ｘ９，Ｙ９）Ｔとする。なお、Ｔはベクトルまたは行列の転置を表す。
【００７７】
いま、２×２の大きさの行列Ｍを以下の式（１）のように定義する。
【００７８】
【数１】
2018026120.tif 000003
【００７９】
このとき、行列Ｍが以下の式（２）を満たせば、行列Ｍはユーザ３００の視線方向を画像表示素子１０８が表示する画像面に射影する行列となる。
ＱＮ＝ＭＰＮ  （Ｎ＝１，・・・，９）    （２）
【００８０】
上記式（２）を具体的に書き下すと以下の式（３）のようになる。
【００８１】
【数２】
2018026120.tif 000004
式（３）を変形すると以下の式（４）を得る。
【００８２】
【数３】
2018026120.tif 000005
ここで、
【００８３】
【数４】
2018026120.tif 000006
とおくと、以下の式（５）を得る。
ｙ＝Ａｘ    （５）
【００８４】
式（５）において、ベクトルｙの要素は視線検出部２２１が画像表示素子１０８に表示させる点Ｑ１〜Ｑ９の座標であるため既知である。また、行列Ａの要素はユーザ３００の角膜３０２の頂点Ｐの座標であるため取得できる。したがって、視線検出部２２１は、ベクトルｙおよび行列Ａを取得することができる。なお、変換行列Ｍの要素を並べたベクトルであるベクトルｘは未知である。したがって、行列Ｍを推定する問題は、ベクトルｙと行列Ａとが既知であるとき、未知ベクトルｘを求める問題となる。
【００８５】
式（５）は、未知数の数（すなわちベクトルｘの要素数４）よりも式の数（すなわち、視線検出部２２１がキャリブレーション時にユーザ３００に提示した点Ｑの数）が多ければ、優決定問題となる。式（５）に示す例では、式の数は９つであるため、優決定問題である。
【００８６】
ベクトルｙとベクトルＡｘとの誤差ベクトルをベクトルｅとする。すなわち、ｅ＝ｙ−Ａｘである。このとき、ベクトルｅの要素の二乗和を最小にするという意味で最適なベクトルｘｏｐｔは、以下の式（６）で求められる。
ｘｏｐｔ＝（ＡＴＡ）−１ＡＴｙ    （６）
ここで「−１」は逆行列を示す。
【００８７】
視線検出部２２１は、求めたベクトルｘｏｐｔの要素を用いることで、式（１）の行列Ｍを構成する。これにより、視線検出部２２１は、ユーザ３００の角膜３０２の頂点Ｐの座標と行列Ｍとを用いることで、式（２）にしたがい、ユーザ３００の右目が画像表示素子１０８に表示される動画像上のどこを注視しているかを推定できる。ここで、視線検出部２２１は、更に、ユーザの眼と、画像表示素子１０８間の距離情報をヘッドマウントディスプレイ１００から受信し、その距離情報に応じて、推定したユーザが注視している座標値を修正する。なお、ユーザの眼と画像表示素子１０８との間の距離による注視位置の推定のずれは誤差の範囲として無視してもよい。これにより、視線検出部２２１は、画像表示素子１０８上の右目の注視点と、ユーザの右目の角膜の頂点とを結ぶ右目視線ベクトルを算出することができる。同様に、視線検出部２２１は、画像表示素子１０８上の左目の注視点と、ユーザの左目の角膜の頂点とを結ぶ左目視線ベクトルを算出することができる。なお、片目だけの視線ベクトルで２次元平面上でのユーザの注視点を特定することができ、両眼の視線ベクトルを得ることでユーザの注視点の奥行き方向の情報まで算出することができる。視線検出装置２００はこのようにしてユーザの注視点を特定することができる。なお、ここに示した注視点の特定方法は一例であり、本実施の形態に示した以外の手法を用いて、ユーザの注視点を特定してもよい。
【００８８】
次に、ずれ検出部２２６によるずれの検出について説明する。
【００８９】
図８は、本発明に係る撮像系を示す模式図であり、ずれ検出部２２６が、装着のずれを検出するために用いるベクトル８４０を概念的に説明するための図である。
【００９０】
図８は、カメラ１１６がユーザの眼を撮像する様子を示す概念図である。また、図１０は、図８を平面的に見た場合の平面図である。ここでは、ユーザの眼（右目）に、赤外光源Ｌ１、Ｌ２から非可視光（近赤外光）が照射されている様子をカメラ１１６で撮像する例を示している。赤外光源Ｌ１、Ｌ２は、赤外光源１０３ａのうちのいずれかである。本来であれば、カメラ１１６との間には、凸レンズ１１４やホットミラー１１２が介在する。そして、図３に示すように、カメラ１１６は、一度ホットミラー１１２により反射された像を撮像するものであるが、ここでは、説明を簡単にするために、反射していない状態を示している。図８においては、ユーザ３００の眼を撮像するカメラ１１６と、その内部にあるイメージセンサ１１６ｐへの写像のイメージを示している。カメラ１１６は、小型のカメラであり、撮像の光軸は、カメラ１１６の中心１１６ｍに向かって集光することとなる。なお、図８においては、その他の赤外光源については、図面を見やすくするために記載を省略している。
【００９１】
図８や図１０において、イメージセンサ１１６ｐをカメラ１１６の外部にあるように示しているが、これは、図面及び説明の内容を分かりやすくするために、このように記載しているに過ぎない。実際には、イメージセンサ１１６ｐは、カメラ１１６の内部に存在する。同様に、図１０におけるカメラ１１６の中心１１６ｍもカメラ１１６の内部に存在する。また、図１０におけるＸＹ軸に示される座標系は仮想のものである。
【００９２】
ずれ検出部２２６は、図８に示すベクトル８４０を用いてヘッドマウントディスプレイ１００の装着状態のずれを検出する。このベクトル８４０は、ユーザ３００の角膜曲率中心から瞳孔中心へのベクトルのイメージセンサ１１６ｐへの写像である。図９に示すように、ユーザ３００の眼球は真球ではなく、角膜が突出する構造となっていることは周知の事実である。図９に示すように眼球８０１の端部に角膜３０２が存在し、凸レンズとなっており、この中心が瞳孔中心８０４となる。そして、角膜３０２が真球を描くと仮に想定した場合の球体が角膜球８０２となる。この角膜球８０２の中心が角膜３０２の角膜曲率の中心８０５となる。上述のベクトル８４０は、角膜曲率の中心８０５から瞳孔中心８０４を結ぶベクトルのイメージセンサ１１６ｐへの写像（実質的にイメージセンサ１１６ｐに写るのは瞳孔中心８０４の写像のみであることに注意されたい）である。
【００９３】
図８に示すように、赤外光源Ｌ１から照射された近赤外光は、ベクトル８３２の光軸に示されるようにユーザ３００の眼の照射位置８０６に照射される。この照射光は、ユーザ３００の角膜３０２に反射されて、図８のベクトル８２６とは逆向きのベクトルの光軸を通ってカメラ１１６の中心１１６ｍに向かう。ユーザ３００の眼に写った照射光は、写像８１６としてイメージセンサ１１６ｐ上に像を結ぶ。
【００９４】
同様に、赤外光源Ｌ２から照射された近赤外光は、ベクトル８３４の光軸に示されるようにユーザ３００の眼の照射位置８０３に照射される。この照射光は、ユーザ３００の角膜３０２に反射されて、図８のベクトル８２３とは逆向きのベクトルの光軸を通ってカメラ１１６の中心１１６ｍに向かう。ユーザ３００の眼に写った照射光は、写像８１３として、イメージセンサ１１６ｐ上に像を結ぶ。
【００９５】
また、赤外光源Ｌ１、Ｌ２からの拡散光により、ユーザ３００の瞳孔中心８０４もイメージセンサ１１６ｐ上に、瞳孔写像８１４として像を結ぶ。
【００９６】
図８において、ベクトル８３１は、カメラ１１６の中心１１６ｍから赤外光源Ｌ１に向かうベクトルであり、ベクトル８３３は、カメラ１１６の中心１１６ｍから赤外光源Ｌ２に向かうベクトルである。
【００９７】
図８において、ベクトル８３１と、ベクトル８３２と、ベクトル８２６は、一つの平面（以下、第１平面と呼称する）を形成し、この第１平面は、ユーザの角膜曲率の中心８０５を通る。ベクトル８３１は、上述の通りカメラ１１６の中心１１６ｍから赤外光源Ｌ１に向かうベクトルであり、既知のベクトル（実測値）である。ベクトル８３１の情報については、予め記憶部２２８に記憶されている。ベクトル８２６は、カメラ１１６の中心１１６ｍから照射位置８０６に向かうベクトルであり、図８、図１０に示すように、カメラ１１６の中心１１６ｍから、イメージセンサ１１６ｐの写像８１６の延長上にある。カメラ１１６の中心１１６ｍと、イメージセンサ１１６ｐとの間の相対位置関係は、既知の値（予め設定された値）であり、記憶部２２８に記憶されている。したがって、ベクトル８２６は、カメラ１１６の中心１１６ｍからイメージセンサ１１６ｐ上の写像８１６へのベクトルを算出することで、ベクトル８２６を算出することができる。よって、ベクトル８３１は、既知の値であり、ベクトル８２６は、演算により算出することができることから、第１平面をベクトル８２６と、ベクトル８３１とから定義することができる。
【００９８】
同様に、ベクトル８３３と、ベクトル８３４と、ベクトル８２３は、一つの平面（以下、第２平面と呼称する）を形成し、この第２平面は、ユーザの角膜曲率の中心８０５を通る。ベクトル８３３は、上述の通りカメラ１１６の中心１１６ｍから赤外光源Ｌ２に向かうベクトルであり、既知のベクトル（実測値）である。ベクトル８３３の情報については、予め記憶部２２８に記憶されている。ベクトル８２４は、カメラ１１６の中心１１６ｍから照射位置８０６に向かうベクトルであり、図８、図１０に示すように、カメラ１１６の中心１１６ｍから、イメージセンサ１１６ｐの写像８１３の延長上にある。カメラ１１６の中心１１６ｍと、イメージセンサ１１６ｐとの間の相対位置関係は、既知の値（予め設定された値）であり、記憶部２２８に記憶されている。したがって、ベクトル８２４は、カメラ１１６の中心１１６ｍからイメージセンサ１１６ｐ上の写像８１３へのベクトルを算出することで、ベクトル８２４を算出することができる。よって、ベクトル８３３は、既知の値であり、ベクトル８２４は、演算により算出することができることから、第２平面をベクトル８２４と、ベクトル８３１とから定義することができる。
【００９９】
二つの平面は、共にユーザ３００の角膜曲率の中心８０５を通ることから、第１平面と第２平面とが成す交線８２５も又ユーザ３００の角膜曲率の中心８０５を通る。したがって、第１平面と第２平面の交線８２５を求めることができれば、イメージセンサ１１６ｐ上への角膜曲率の中心８０５の仮想的な写像８１５を、交線８２５とイメージセンサ１１６ｐとの交点として算出することができる。そして、写像８１５のイメージセンサ１１６ｐ上での座標を計算できれば、ベクトル８４０を算出することができる。このようにして、視線検出装置２００（瞳孔特定部２２３、取得部２２４、ベクトル特定部２２５）は、ベクトル８４０を算出する。なお、第１平面と第２平面とが平行になる場合には、ベクトル８４０は算出することができないので、その場合には、視線検出装置２００は、平面を算出するために用いる光源を別の赤外光源１０３に変更する。
【０１００】
図１１は、ずれがイメージセンサ上においてどのように表れるかの例を示す側面図である。図１１は、ユーザの眼が点線で示される状態から実線で示される状態にずれた場合を示している。点線で示される状態の時点をｔ１、実線で示される状態の時点をｔ２とする。図１１の例は、ヘッドマウントディスプレイ１００がユーザ３００に対して装着状態が上方向にずれた場合の例を示している。
【０１０１】
時点ｔ１での角膜曲率の中心から瞳孔中心へのベクトル９０１は、凸レンズ１１４及び図示していないがホットミラー１１２を介して、カメラ１１６のイメージセンサ１１６ｐ上のベクトル８４０ｔ１として検出されたとする。同様に、時点ｔ２での角膜曲率の中心から瞳孔中心へのベクトル９０１は、凸レンズ１１４及び図示していないがホットミラー１１２を介して、カメラ１１６のイメージセンサ１１６ｐ上のベクトル８４０ｔ２として検出されたとする。ずれ検出部２２６は、このベクトル８４０ｔ１とベクトル８４０ｔ２との比較を行って、これらの長さと向きが一致し、その上で、座標位置が異なる場合に、ヘッドマウントディスプレイ１００の装着状態がずれたことを検出する。
【０１０２】
以下、ベクトル８４０の算出をより具体的に説明する。
【０１０３】
上述の第１平面を定義する座標セットをΠとする。この座標セットΠは以下のように式（７）で定義することができる。
【０１０４】
【数５】
2018026120.tif 000007
【０１０５】
上記式（７）において、ベクトルＣＧｉ１は、カメラ１１６の中心１１６ｍから照射位置へのベクトル、即ち、図８、図１０におけるベクトル８２６である。また、ベクトルＣＬ１は、カメラ１１６の中心１１６ｍから赤外光源Ｌ１へのベクトル、即ち、図８、図１０におけるベクトル８３１である。また、第１平面を定義する最後の要素は、カメラ１１６の中心１１６ｍを仮の原点（０、０、０）として、下記式（８）から算出することができる。
【０１０６】
Π１ｄ＝ｄ１＝−（ａ１ｘ０＋ｂ１ｙ０＋ｃ１ｚ０）＝−（ａ１・０＋ｂ１・０＋ｃ１・０）＝０                                …（８）
【０１０７】
平面は、Ｘ軸、Ｙ軸、Ｚ軸の３軸の傾きと、原点からの距離によって定義することができる。第１平面は、原点を通るので、原点からの距離を０として定義することができる。したがって、第１平面Π１は、以下の式（９）のように定義することができる。
【０１０８】
【数６】
2018026120.tif 000008
【０１０９】
同様にして、第２平面Π２も、以下の式（１０）のように定義することができる。
【０１１０】
【数７】
2018026120.tif 000009
【０１１１】
上記式（９）及び式（１０）から、第１平面と第２平面との交線ｌ１２（交線８２５）は、以下の式（１１）のように定義することができる。
【０１１２】
【数８】
2018026120.tif 000010
【０１１３】
角膜曲率の中心８０５の写像８１５は、式（１１）に示す交線８２５と、イメージセンサ１１６ｐとの交点として算出することができる。よって、ベクトル８４０は、その交点から瞳孔写像８１４へのベクトルとして特定することができる。
【０１１４】
＜動作＞
以下、図１２のフローチャートを用いて視線検出装置２００の動作を説明する。図１２は、視線検出装置２００が、ユーザが頭部に装着したヘッドマウントディスプレイ１００の装着状態のずれを検出する処理を示したフローチャートである。
【０１１５】
（ステップＳ１２０１）
ステップＳ１２０１において、視線検出装置２００は、ヘッドマウントディスプレイ１００から時刻ｔにおける撮像画像を取得する。第２通信部２２０は、時刻ｔにおける撮像画像を受信すると、記憶部２２８に記憶するとともに、視線検出部２２１、瞳孔特定部２２３、取得部２２４に伝達する。視線検出部２２１は、伝達された撮像画像を用いて、ユーザ３００の注視箇所を特定する。その後に視線検出装置２００は、処理をステップＳ１２０２に移行する。
【０１１６】
（ステップＳ１２０２）
ステップＳ１２０２において、撮像画像を伝達された瞳孔特定部２２３は、撮像画像に画像解析をかけて、撮像画像中のユーザの目の瞳孔中心の座標を特定する。瞳孔特定部２２３は、特定した瞳孔中心の座標をベクトル特定部２２５に伝達して、ステップＳ１２０３に移行する。
【０１１７】
（ステップＳ１２０３）
ステップＳ１２０３において、撮像画像を伝達された取得部２２４は、上述した手法を用いて、ユーザ３００の角膜曲率の中心を通る交線を特定する。取得部２２４は、特定した交線をベクトル特定部２２５に伝達して、ステップＳ１２０４に移行する。
【０１１８】
（ステップＳ１２０４）
ステップＳ１２０４において、瞳孔中心と、角膜曲率の中心を通る交線と、を伝達されたベクトル特定部２２５は、まず、角膜曲率の中心を通る交線が、カメラ１１６のイメージセンサと交わる交点の座標を特定する、そして、ベクトル特定部２２５は、特定した交点から、伝達された瞳孔中心へ向かうベクトルＶ１を算出する。ベクトル特定部２２５は特定したベクトルＶ１をずれ検出部２２６に伝達し、ステップＳ１２０５に移行する。
【０１１９】
（ステップＳ１２０５）
ステップＳ１２０５において、第２通信部２２０は、新たなユーザの目を撮像する撮像画像を得たか否かを判定する。新たな時刻ｔ＋１の撮像画像を得るまでは待機する（ＮＯ）。新たな時刻ｔ＋１の撮像画像を得た場合には（ＹＥＳ）、ステップＳ１２０６に移行する。
【０１２０】
（ステップＳ１２０６）
ステップＳ１２０６において、新たな撮像画像を伝達された瞳孔特定部２２３は、撮像画像に画像解析をかけて、撮像画像中のユーザの目の瞳孔中心の座標を特定する。瞳孔特定部２２３は、特定した瞳孔中心の座標をベクトル特定部２２５に伝達して、ステップＳ１２０７に移行する。
【０１２１】
（ステップＳ１２０７）
ステップＳ１２０７において、新たな撮像画像を伝達された取得部２２４は、上述した手法を用いて、ユーザ３００の角膜曲率の中心を通る交線を特定する。取得部２２４は、特定した交線をベクトル特定部２２５に伝達して、ステップＳ１２０８に移行する。
【０１２２】
（ステップＳ１２０８）
ステップＳ１２０８において、瞳孔中心と、角膜曲率の中心を通る交線と、を伝達されたベクトル特定部２２５は、まず、角膜曲率の中心を通る交線が、カメラ１１６のイメージセンサと交わる交点の座標を特定する、そして、ベクトル特定部２２５は、特定した交点から、伝達された瞳孔中心へ向かうベクトルＶ１を算出する。ベクトル特定部２２５は特定したベクトルＶ１をずれ検出部２２６に伝達し、ステップＳ１２０９に移行する。
【０１２３】
（ステップＳ１２０９）
ステップＳ１２０９からステップＳ１２１０にかけてずれ検出部２２６は、ユーザ３００が装着しているヘッドマウントディスプレイ１００がずれたか否かを判定する。ステップＳ１２０９において、ずれ検出部２２６は、ステップＳ１２０４で特定したベクトルＶ１とステップＳ１２０８で特定したベクトルＶ２との長さが（誤差の範囲内で）等しいか否かを判定する。ベクトルＶ１とベクトルＶ２との長さが等しい場合には（ＹＥＳ）、ステップＳ１２１０に移行し、等しくない場合には（ＮＯ）、処理を終了する。
【０１２４】
（ステップＳ１２１０）
ステップＳ１２１０において、ずれ検出部２２６は、ベクトルＶ１の向きとベクトルＶ２の向きが（誤差の範囲内で）同じか否かを判定する。ベクトルＶ１の向きとベクトルＶ２の向きが同じである場合には（ＹＥＳ）、ステップＳ１２１１に移行し、同じでない場合には（ＮＯ）、処理を終了する。
【０１２５】
（ステップＳ１２１１）
ステップＳ１２１１において、ずれ検出部２２６は、ベクトルＶ１とベクトルＶ２との座標位置が異なるか否かを判定する。ずれ検出部２２６は、ベクトルＶ１とベクトルＶ２との間の距離が所定以上であるか否かを判定することによって、座標位置が異なるか否かを判定することとしてもよいし、ベクトルＶ１とベクトルＶ２の始端（又は終端）の座標位置が異なるか否かで判定することとしてもよい。ベクトルＶ１の座標位置と、ベクトルＶ２の座標位置とが異なる場合には（ＹＥＳ）、ステップＳ１２１２に移行し、異ならない、即ち、ベクトルＶ１とベクトルＶ２との座標位置が（誤差の範囲内で）同じである場合には（ＮＯ）、処理を終了する。
【０１２６】
（ステップＳ１２１２）
ステップＳ１２１２において、ステップＳ１２０９からステップＳ１２１１の判定の結果、ずれ検出部２２６は、ユーザ３００が装着しているヘッドマウントディスプレイ１００が初期状態から（キャリブレーションを行った時点の装着状態から）、ずれていると判定する。ずれ検出部２２６は、ベクトルＶ１とベクトルＶ２との間のずれ量を補正部２２７に伝達し、ステップＳ１２１３に移行する。ここで、ずれ量は、ベクトルＶ１からベクトルＶ２へ向かうベクトルであって、ベクトルＶ１の始点（又は終点）からベクトルＶ２の始点（又は終点）に向かうベクトルで示される。
【０１２７】
（ステップＳ１２１３）
ステップＳ１２１３において、補正部２２７は、ずれ検出部２２６から伝達されたずれ量に基づいて、視線検出部２２１が検出した注視位置を補正する。具体的には、補正部２２７は、視線検出部２２１が検出した注視位置の座標に対して、ずれ量で示されるベクトルの逆ベクトルを加算した座標位置を、注視位置として出力する。
【０１２８】
補正部２２７から出力された注視位置は、例えば、映像生成部２２２が生成する映像生成に利用される。具体的には、映像生成部２２２は、特定した注視位置を中心とする所定範囲の画像の解像度を高解像度にした画像を生成して第２通信部２２０を介してヘッドマウントディスプレイ１００に送信する。またその他には、注視位置は、例えば、視線検出システム１において例えば、ゲームなどのアプリケーションを実行している際の入力位置として利用したり、画像における注目位置を特定することによるマーケティング等に利用したりすることができる。また、ずれ検出部２２６が、ユーザ３００が装着したヘッドマウントディスプレイ１００がずれていないと判定した場合には、視線検出装置２００は、特に何も処理をしない。
【０１２９】
視線検出装置２００は、図１２に示す処理を、視線検出システム１が稼働し続ける間、逐次実行する。
【０１３０】
＜まとめ＞
上述のように、視線検出システム１は、撮像した撮像画像において、ユーザ３００の角膜曲率の中心８０５のカメラ１１６のイメージセンサ１１６ｐへの仮想の写像８１５から、瞳孔中心８０４のイメージセンサ１１６ｐへの瞳孔写像８１４へのベクトル８４０に基づいて、ユーザ３００へのヘッドマウントディスプレイ１００の装着状態のずれを検出することができる。ユーザ３００は、ヘッドマウントディスプレイ１００がずれた瞬間においては、ユーザ３００の眼はその直前と同じ状態を保っていることになる。したがって、その直前の撮像画像におけるベクトル８４０と、ずれた瞬間における撮像画像におけるベクトル８４０とは、共に同じ長さ、同じ向きになっているはずである。そのような異なる時間におけるベクトル８４０の長さと向きと座標とを比較することで、ずれ検出部２２６は、ユーザ３００におけるヘッドマウントディスプレイ１００の装着状態のずれを検出することができる。このずれの検出にあたっては、角膜曲率の中心８０５の３次元空間上の座標や、眼球８０１の中心の３次元空間上での座標を算出するといった複雑な計算が必要ない。そのため、計算量の少ない演算で、ユーザ３００におけるヘッドマウントディスプレイ１００の装着状態のずれを検出することができる。また、この検出は、ヘッドマウントディスプレイ１００に対して、接触センサ等の新たなセンサを設けることなく実現することができるという利点がある。
【０１３１】
＜実施の形態２＞
上記実施の形態１においては、視線検出装置２００によるずれの検出及び補正について述べた。しかしながら、上記実施の形態１に係るずれの検出及び補正は、特定のレンズにおいて適用可能となることがある。そこで、本実施の形態２においては、どのような形状のレンズにおいても、装着したヘッドマウントディスプレイのずれを検出し、補正を行う手法について説明する。
【０１３２】
（例１）
まず、（例１）では、一ユーザ３０について、キャリブレーションを行う手法について述べる。この（例１）においては、上記実施の形態１に示した場合と同様に９つのマーカー画像を表示し、それぞれのマーカー画像を注視するユーザ３０の眼を撮像し、その時の瞳孔中心の撮像系における座標値を特定し、マーカー画像の撮像系における座標値と対応付けてキャリブレーションデータを取得する。
【０１３３】
撮像画像系におけるユーザの瞳孔中心の座標をＸ（ｘ１、ｘ２）とし、対応する画像表示素子１０８における写像の座標をＹ（ｙ１、ｙ２）とする。ここで、ｆ１（Ｘ）＝ｙ１、ｆ２（Ｘ）＝ｙ２と変換できる写像関数（mapping function）ｆ１及び関数ｆ２について考える。なお、関数ｆ１及び関数ｆ２は、共に二次多項式である。
【０１３４】
上記二次多項式として、二乗カーネルを用いた放射基底関数 (radial basis function) を構築する。当該関数により、撮像した画像系におけるユーザの眼の瞳孔中心の座標値から、画像表示素子の座標系におけるユーザの瞳孔中心の写像座標値を推定する。
【０１３５】
ユーザの眼を撮像して得られた瞳孔中心の座標に関するデータ群を、Ｘｎ（０＜ｎ≦Ｎ）とし、２乗カーネルφ（Ｘ、Ｘｎ）を、以下のように定義する。なお、ここでＮは９とするが、この数は９に限るものではない。
【０１３６】
【数９】
2018026120.tif 000011
【０１３７】
すると、ｆ１（Ｘ）及びｆ２（Ｘ）は、以下のように定義することができる。
【０１３８】
【数１０】
2018026120.tif 000012
【０１３９】
【数１１】
2018026120.tif 000013
【０１４０】
ここで、上記式における未知の係数ａ１及びａ２を、以下のように定義づける。
【０１４１】
【数１２】
2018026120.tif 000014
【０１４２】
【数１３】
2018026120.tif 000015
【０１４３】
これらの未知の係数を求めるために、最小二乗法を用いる。具体的には、以下に示される数式を解く。
【０１４４】
【数１４】
2018026120.tif 000016
【０１４５】
【数１５】
2018026120.tif 000017
【０１４６】
ここで、Ａは、Ｎ×Ｎの正方行列である。
【０１４７】
上述の通り、ユーザの眼を撮像して得られた瞳孔中心の座標に関するデータ群を、Ｘｎ（０＜ｎ≦Ｎ）としたときの、画像表示素子の表示系におけるユーザの瞳孔中心の座標に関するデータ群を、Ｙｎ（０＜ｎ≦Ｎ）とする。このＸｎ及びＹｎは計測により得られたものであるため、既知の値となる。当該データは、上記実施の形態に示したキャリブレーションを行うことにより得られる。即ち、画像表示素子１０８の特定の座標位置に表示したマーカー画像をユーザが注視し、そのマーカー画像を注視しているユーザの眼を撮像することにより、撮像画像におけるユーザの瞳孔中心の座標と、画像表示素子１０８の特定の座標位置との対応関係を得ることができる。
【０１４８】
このとき、二乗カーネルを、以下のように定義する。
【０１４９】
【数１６】
2018026120.tif 000018
【０１５０】
すると、行列Ａを以下の式で表すことができる。
【０１５１】
【数１７】
2018026120.tif 000019
【０１５２】
この行列Ａを分解し、その疑似逆行列Ａ＋を、Ａ−１と近似する。すると、ａ１、ａ２を以下の数式から算出することができる。
【０１５３】
【数１８】
2018026120.tif 000020
【０１５４】
【数１９】
2018026120.tif 000021
【０１５５】
上記式において、Ｔは転置を表す。上述の通り、Ｘｎ、Ｙｎは、共に既知の値であることから、Ａ−１も既知の行列として算出することができる。また、ｙ１１〜ｙ１Ｎ及びｙ２１〜ｙ２Ｎもまた、マーカー画像の表示座標位置であるため、既知の値である。したがって、ａ１及びａ２は、全て既知の値から算出することができる。
【０１５６】
以上に説明した手法により、視線検出装置２００の視線検出部２２１は、算出された係数ａ１、ａ２を用いて、写像座標値Ｙｎを算出することができる。即ち、視線検出部２２１は、注視点Ｙｏｕｔを、撮像画像から得られた瞳孔中心Ｘｏｕｔから、ｆ１（Ｘｏｕｔ）と、ｆ２（Ｘｏｕｔ）とを演算することにより推定することができる。
【０１５７】
（例２）
上記（例１）においては、ユーザ自身のキャリブレーション時のデータを用いた推測を行うこととした。この（例２）においては、ユーザ自身のキャリブレーションデータが少ない状態でも、注視位置の推定を行うことができる例を説明する。
【０１５８】
当該構成を実現するために、視線検出装置２００の記憶部には、予め、複数のユーザについてキャリブレーションを行ったときの、キャリブレーションデータ（撮像画像のデータとその撮像時に画像表示素子１０８において注視していた座標位置のデータ）を記憶しておく。そして、それらの中から、実際に、ヘッドマウントディスプレイ１００を装着して使用するユーザ３０に近いキャリブレーションデータを用い、それに対して補正をかけることで、実際の注視点の特定を実現する。これは、視線検出において、人間の眼の動きは、往々にして、他の人間の眼の動きと似ているという事実を利用するものであり、他人のキャリブレーションデータを補正することで、ユーザ３０の注視点の特定を行うものである。そのために、（例２）では、予め複数人のキャリブレーションデータを視線検出装置２００の記憶部に記憶しておくとともに、実際にヘッドマウントディスプレイ１００を装着するユーザ３０については、２つの異なる座標位置に表示されたマーカー画像を注視するユーザ３０の眼の撮像画像を用いることで、９点のマーカー画像に対するキャリブレーションを行うよりもキャリブレーションに要する時間を短縮することができる。以下、その手法について詳細に説明する。
【０１５９】
まず、最初に観測した第１の瞳孔中心の撮像画像における座標値と、マーカー画像の表示位置の座標値とが（Ｘ１、Ｙ１）、であるとする。すると、ｈｆ（Ｘ´、Ｙ）＝０とすると、その変換関数は、以下の式で表すことができる。
【０１６０】
【数２０】
2018026120.tif 000022
【０１６１】
一方、第２の瞳孔中心の表示位置の座標値と、マーカー画像の表示位置の座標値とが、（Ｘ２、Ｙ２）であるとする。このとき、両座標値は、以下の数式を満たすと考える。
【０１６２】
【数２１】
2018026120.tif 000023
【０１６３】
マーカー画像の座標値に誤差がない場合には、変換係数λは、１となる。ここで、変換係数λは、他人のキャリブレーションデータを、ユーザ３０のものとして利用するための補正を行う係数である。
【０１６４】
ところで、予め１つのキャリブレーションデータから、撮像した瞳孔中心から、画像表示素子１０８への写像位置への変換（注視点の特定）を行った場合、この最適化を用いても正確に注視点を特定できず注視点に狂いが生じる可能性がある。そこで、更なる正確性を求めるために、複数人のキャリブレーションデータから、最もヘッドマウントディスプレイ１００を装着するユーザ３０に適したキャリブレーションデータを選定することで、この狂いを抑制することができる。
【０１６５】
（条件１）
上記の最適化後の変換係数は、最適なキャリブレーションデータを選択している場合に、１に近くなる。即ち、下記数式を満たす。
【０１６６】
【数２２】
2018026120.tif 000024
【０１６７】
（条件２）
上記の最適化後の変換係数を用いて行った２つマーカー画像を注視する注視点への変換誤差は、最小となる（最も０に近くなる）。即ち、以下の数式を満たす。
【０１６８】
【数２３】
2018026120.tif 000025
【０１６９】
（条件３）
推定された瞳孔中心の座標位置と、変換された瞳孔中心の座標位置との誤差は、最小となる（最も０に近くなる）。即ち、以下の数式を満たす。
【０１７０】
【数２４】
2018026120.tif 000026
【０１７１】
以上の３つの条件から、複数のキャリブレーションデータの中から、上述の３つの条件を満たすキャリブレーションデータを選択する。即ち、以下の数式を満たすキャリブレーションデータを特定する。
【０１７２】
【数２５】
2018026120.tif 000027
【０１７３】
視線検出装置２００の視線検出部２２１は、複数のキャリブレーションデータの中から、最もユーザ３０に近いキャリブレーションデータを選択し、選択したキャリブレーションデータに対して、前述の変換係数をかけて、視線検出を行う。
【０１７４】
なお、ここでは、３つの条件を用いて、最もユーザ３０に最も近いキャリブレーションデータを選択することとしたが、これはその限りではなく、上述の（条件１）〜（条件３）のうちの１つまたは２つだけを用いて、ユーザ３０に最も近いキャリブレーションデータを選択することとしてもよい。
【０１７５】
以上のように、（例２）の場合には、ヘッドマウントディスプレイ１００を装着して使用するユーザのキャリブレーションを行う回数を極力少なくした状態で、視線検出を実現できるので、キャリブレーションに要する時間や手間を軽減することができるとともに、例えば、ヘッドマウントディスプレイ１００を使ってゲームをする際のプレイ開始を、キャリブレーションを行う場合に比して、早めることができる。
【０１７６】
また、複数のキャリブレーションデータの中から、ユーザ３０に最も適したキャリブレーションデータを選択する際に、類似するキャリブレーションデータを複数のグループにグルーピングし、それぞれのグループの代表となるキャリブレーションデータを設定しておき、それらの中からまず、ユーザに最も近いグループを特定し、さらに、特定したグループに含まれるキャリブレーションデータの中からユーザ３０に最も近いキャリブレーションデータを選択する構成としてもよい。
【０１７７】
（例３）
上記（例１）及び（例２）においては、ユーザに対して装着したＨＭＤが固定の状態の際にキャリブレーションを行った場合の、写像座標位置の算出方法を説明した。この（例３）では、ＨＭＤが固定でない場合の例を説明する。この（例３）においては、前提として、以下の条件でキャリブレーションを行うことが必要となる。
【０１７８】
（例３）におけるキャリブレーションでは、４点の位置に表示されたマーカー画像それぞれについて、ユーザがヘッドマウントディスプレイ１００を実際に少しずつずらしながら、１つのマーカー画像を注視した状態を維持し、その状態を撮像する。この場合のマーカー画像の位置の４点は、上記実施の形態１における９つのマーカー画像の四隅を利用することが望ましい。この撮像では、ヘッドマウントディスプレイがずれた状態であっても正しく注視点を特定できるように、所定フレーム数（例えば、１００フレーム）分の撮像画像を取得する。所定フレーム数は、ヘッドマウントディスプレイ１００のユーザ３０への装着状態の如何に関わらず、注視点を特定するに足るだけのフレーム数を得ることとする。４点それぞれについて、ＨＭＤをずらしながら、１００フレーム分の撮像画像を得て、キャリブレーションデータ（撮像画像における瞳孔中心の座標値と、角膜曲率の中心の座標値と、その時にユーザが注視していたマーカー画像の画像表示素子１０８における表示座標との対応関係を示すデータ）を取得する。そして、瞳孔中心の座標値と、角膜曲率の中心の座標値とから、画像表示素子１０８における注視点の座標値を得る。以下、このようなキャリブレーションを行った場合の、注視点の推定手法について説明する。
【０１７９】
Ｘ＝｛ｘ１、ｘ２、ｘ３、ｘ４｝、Ｙ＝｛ｙ１、ｙ２｝とする。
【０１８０】
（ｘ１、ｘ２）＝（ＣＣｘ、ＣＣｙ）であり、瞳孔中心の撮像座標系における座標値を示す。また、（ｘ１、ｘ２）＝（ＰＣｘ、ＰＣｙ）であり、撮像座標系における角膜曲率中心の座標値である。また、（ｙ１、ｙ２）＝（Ｓｘ、Ｓｙ）であり、画像表示素子１０８の座標系における瞳孔中心の座標値である。
【０１８１】
ここで、撮像画像から取得できたＸに基づいて、Ｘを画像表示素子１０８の座標系における座標値に変換する変換関数ｇ１、ｇ２、即ち、ｇ１（Ｘ）＝ｙ１、ｇ２（ｘ）＝ｙ２は、２次の１４項からなる多項式で以下のように表現できる。
【０１８２】
【数２６】
2018026120.tif 000028
【０１８３】
【数２７】
2018026120.tif 000029
【０１８４】
上記数式において、未知の係数ｂ１及びｂ２を以下のように表す。
【０１８５】
【数２８】
2018026120.tif 000030
【０１８６】
【数２９】
2018026120.tif 000031
【０１８７】
上記式において、Ｔは転置を意味する。
【０１８８】
この係数を決定するために、最小二乗法を用いることで算出することができる。
【０１８９】
即ち、以下の２式を用いて算出することができる。
【０１９０】
【数３０】
2018026120.tif 000032
【０１９１】
【数３１】
2018026120.tif 000033
【０１９２】
ここで行列Ａは、Ｎ×１４の行列である。ここで、観察して得られたＸｎ、Ｙｎ（ｎは、０＜ｎ≦Ｎ）とすると、行列Ａは、以下のように表現することができる。
【０１９３】
【数３２】
2018026120.tif 000034
【０１９４】
この行列Ａを分解し、その疑似逆行列Ａ＋を、Ａ−１と近似する。すると、ｂ１、ｂ２を以下の数式から算出することができる。
【０１９５】
【数３３】
2018026120.tif 000035
【０１９６】
【数３４】
2018026120.tif 000036
【０１９７】
以上に示す内容から、ｂ１及びｂ２は、既知の値に基づいて算出することができる。したがって、撮像画像から取得したＸ（瞳孔中心と角膜曲率の中心それぞれの座標値）に基づいて、画像表示素子１０８における座標Ｙを、上記変換式ｇ１及びｇ２を用いることで、ヘッドマウントディスプレイの装着状態がずれたとしても、正しく、注視点を特定することができる。
【０１９８】
さらには、予測された瞳孔中心（Ｐｃ´）は、角膜曲率の座標値に関する情報がある限り、目的関数ｈｆを利用して、以下の数式から算出することができる。
【０１９９】
【数３５】
2018026120.tif 000037
【０２００】
そして、画像表示素子１０８における注視点の座標値は、例え、角膜曲率の中心の座標がなくとも、上述した関数ｆを用いて、以下の数式に示すように推定することができる。
【０２０１】
【数３６】
2018026120.tif 000038
【０２０２】
【数３７】
2018026120.tif 000039
【０２０３】
【数３８】
2018026120.tif 000040
【０２０４】
以上のように、画像表示素子１０８における４点の座標値と、撮像画像との対応関係をとっておくことで、その補正を行うことができる。（例３）におけるキャリブレーションでは、ユーザが実際にヘッドマウントディスプレイをずらしながら、キャリブレーションを行うことにより、ずれた状態を想定したキャリブレーションデータもとることができる。したがって、実際に使用時にヘッドマウントディスプレイの装着状態が変化したとしても、そのずれを吸収して、注視点を特定することができる。
【０２０５】
（例４）
（例４）においては、上記（例３）の変形例を示す。（例４）では、（例３）のずれ検出の簡易版であり、（例２）と同様に、他人のキャリブレーションデータを利用してヘッドマウントディスプレイの装着のずれを吸収して注視点を特定する手法を示す。この（例４）では、角膜曲率の中心を、取得した瞳孔中心と、その画像表示素子１０８における写像座標とから最適化する手法について説明する。これは、人によって、瞳孔中心に対する角膜曲率の中心が異なるため、他人のキャリブレーションデータを利用する際には、角膜曲率の中心の補正が必要となるためである。
【０２０６】
この（例４）におけるキャリブレーションにおいては、左右に配された２つの光源からの光点の中心に、ユーザ３０の瞳孔中心がくるように、マーカー画像を動かし、スクリーン座標を設定することにより実現する。この場合には、マーカー画像は中心となるものを表示し、その位置を調整して、スクリーン座標系を設定する。
【０２０７】
角膜曲率の中心を変換する変換係数を最適化するための目的関数ｈｇは、視線検出に用いた任意のキャリブレーションデータｇ（Ｘ）を用いることで実現することができる。
【０２０８】
【数３９】
2018026120.tif 000041
【０２０９】
上記数式において、（ｘ１´、ｘ２´）は、ｈｇ＝０としたときに、既知の値であるｘ３、ｘ４、ｙ１、ｙ２から算出することができる。具体的には、以下のように変換係数を設定することができる。
【０２１０】
【数４０】
2018026120.tif 000042
【０２１１】
【数４１】
2018026120.tif 000043
【０２１２】
このとき、上述のλ１及びλ２は、以下を満たす。
【０２１３】
【数４２】
2018026120.tif 000044
【０２１４】
【数４３】
2018026120.tif 000045
【０２１５】
そして、算出されたλ１及びλ２から、以下の数式を用いて、最終的な、画像表示素子１０８における注視点を算出することができる。
【０２１６】
【数４４】
2018026120.tif 000046
【０２１７】
なお、複数(ｎ個)のマーカーに対してこの測定を行った場合には、下記式が成り立ち、上述と同様にし、未知の係数λ１及びλ２を算出して、注視点を特定することができる。
【０２１８】
【数４５】
2018026120.tif 000047
【０２１９】
なお、ここに示した各種の例は、以下の組み合わせで、注視点の特定と装着ずれの注視点に対する補正との実現が可能となる。即ち、例１、例２は、注視点を特定するための手法であり、例３、例４は、ずれを検出し、すれを加味した上での注視点の特定手法を示している。したがって、以下の組み合わせでの運用をする必要がある。
【０２２０】
即ち、
（例１）＋（例３）
（例２）＋（例３）
（例１）＋（例４）
（例２）＋（例４）
の組み合わせでの運用が考えられ、（例１）と（例２）の組み合わせが最もユーザに特化した注視点の特定ができるので、視線検出の精度が最も高いと言える。即ち、ヘッドマウントディスプレイ１００を個人で利用する場合に最も適した運用になると言える。一方、キャリブレーションに要する時間を最も短縮できるのが、（例２）と（例４）との組み合わせである。この場合には、ヘッドマウントディスプレイ１００を短時間で、複数のユーザで使いまわすような状況、例えば、ヘッドマウントディスプレイ１００をイベントなどで運用する場合に適したキャリブレーションを行うことができる。
【０２２１】
＜補足＞
本発明に係る視線検出システムは、上記実施の形態に限定されるものではなく、その発明の思想を実現するための他の手法により実現されてもよいことは言うまでもない。以下、各種変形例について説明する。
【０２２２】
（１）上記実施の形態において、マーカー画像（輝点）を表示した位置は一例であり、ユーザの視線検出を行うために異なる位置に表示され、それぞれを注視するユーザの眼の画像を獲得し、そのときのユーザの眼の中心を特定することができれば、上記実施の形態に示した表示位置に限定されないことは言うまでもない。また、その際にマーカー画像を表示する個数も９つに限定されるものではなく、上記行列ｘの４つの要素を特定するには、４つの式が成立すればよいので、少なくとも４点のマーカー画像についてのユーザの角膜中心を特定できれば事足りる。
【０２２３】
（２）上記実施の形態においては、ユーザ３００の視線を検出するために、ユーザ３００の眼を撮像する手法として、ホットミラー１１２で反射させた映像を撮像しているが、これは、ホットミラー１１２を通さずに直接ユーザ３００の眼を撮像してもよい。
【０２２４】
（３）上記実施の形態において、ステップＳ１２０２とステップＳ１２０３は、並列に実行されてもよいし、ステップＳ１２０３を先に処理し、ステップＳ１２０２を後に処理してもよい。
【０２２５】
（４）上記実施の形態においては、特に特定していないが、ユーザ３００の角膜曲率の中心は、３つ目の赤外光源からの照射位置を利用して３枚目の角膜曲率の中心を通る平面を特定することで、３枚の角膜曲率の中心を通る平面の交点を、角膜曲率の中心座標として算出することができる。
【０２２６】
（５）上記実施の形態においては、凸レンズ１１４の曲率については、特に記載していないが、ベクトル８４０の写像が現れる位置に応じて凸レンズ１１４の曲率に応じた補正を行う必要がある場合がある。当該補正を行うに当たっては、事前に記憶部２２８に補正に係る補正関数を記憶しておくことで実現することができる。この補正関数は事前のシミュレーションにより適切な関数を視線検出装置２００のオペレータが算出して入力しておけばよい。なお、凸レンズ１１４が平板に近いレンズであれば、この補正は必ずしも必要ではない。
【０２２７】
（６）上記実施の形態において、ベクトル８４０は、逆向きのベクトルであってもよい。即ち、ベクトル８４０は、ユーザ３００の瞳孔中心の瞳孔写像８１４からユーザ３００の角膜曲率の中心８０５の写像８１５へのベクトルであってもよい。ずれ検出部２２６は、このベクトルであっても上記実施の形態に示したものと同様にヘッドマウントディスプレイ１００の装着状態のずれを検出することができる。
【０２２８】
（７）上記実施の形態において、視線検出部２２１、映像生成部２２２、瞳孔特定部２２３、取得部２２４、ベクトル特定部２２５、ずれ検出部２２６、補正部２２７は、一つの制御部、即ち、一つのプロセッサにより実現されてもよく、複数の制御部により実現されてもよい。
【０２２９】
（８）また、上記実施の形態においては、ユーザに装着した装着具（ヘッドマウントディスプレイ１００）のずれを検出するずれ検出の手法として、視線検出装置２００のプロセッサがずれ検出プログラム等を実行することにより、ユーザが注視している箇所を特定することとしているが、これは視線検出装置２００に集積回路（ＩＣ（Integrated Circuit）チップ、ＬＳＩ（Large Scale Integration））等に形成された論理回路（ハードウェア）や専用回路によって実現してもよい。また、これらの回路は、１または複数の集積回路により実現されてよく、上記実施の形態に示した複数の機能部の機能を１つの集積回路により実現されることとしてもよい。ＬＳＩは、集積度の違いにより、ＶＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩなどと呼称されることもある。すなわち、図１４に示すように、視線検出システム１は、照射回路１２０ａと、カメラ１１６と、瞳孔特定回路２２３ａと、取得回路２２４ａと、ベクトル特定回路２２５ａと、ずれ検出回路２２６ａとから構成されてよく、それぞれの機能は、上記実施の形態に示した同様の名称を有する各部と同様である。
【０２３０】
また、上記ずれ検出プログラムは、プロセッサが読み取り可能な記録媒体に記録されていてよく、記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記ずれ検出プログラムは、当該ずれ検出プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記プロセッサに供給されてもよい。本発明は、上記ずれ検出プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【０２３１】
なお、上記ずれ検出プログラムは、例えば、ActionScript、JavaScript（登録商標）などのスクリプト言語、Objective-C、Java（登録商標）などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装できる。
【０２３２】
また、本発明に係る視線検出方法は、ユーザに装着して使用するヘッドマウントディスプレイと、前記ユーザの視線を検出する視線検出装置とを含む視線検出システムによる視線検出のための方法であって、前記視線検出装置が前記ヘッドマウントディスプレイにマーカー画像を出力し、前記ヘッドマウントディスプレイが、前記マーカー画像を表示し、前記マーカー画像を注視するユーザの眼を撮像し、撮像されたユーザの眼を含む画像を前記視線検出装置に出力し、前記視線検出装置が、前記マーカー画像、及び、前記撮像された前記マーカー画像を注視しているユーザの眼を含む画像を重畳した合成画像を作成し、作成された合成画像を出力することを特徴とする方法としてもよい。
【０２３３】
（９）上記実施の形態に示した構成並びに各（補足）を適宜組み合わせることとしてもよい。
【符号の説明】
【０２３４】
１  視線検出システム、  １００  ヘッドマウントディスプレイ、  １０３ａ  赤外光源（第２赤外光照射部）、  １０３ｂ  赤外光源（第１赤外光照射部）、  １０５  輝点、  １０８  画像表示素子、  １１２  ホットミラー、  １１４，１１４ａ，１１４ｂ  凸レンズ、  １１６  カメラ、  １１８  第１通信部、  １２０  表示部１２０  照射部、  １２２  撮像部、  １２３  画像処理部、  １３０  画像表示系、  １５０  筐体、  １５２ａ，１５２ｂ  レンズ保持部、  １６０  装着具、  １７０  ヘッドフォン、  ２００  視線検出装置、  ２２０  第２通信部、  ２２１  視線検出部、  ２２２  映像生成部、    ２２３  瞳孔特定部、２２４  取得部、  ２２５  ベクトル特定部、  ２２６  ずれ検出部  、  ２２７  補正部  、  ２２８  記憶部。
【図１】
2018026120.tif 000048
【図２】
2018026120.tif 000049
【図３】
2018026120.tif 000050
【図４】
2018026120.tif 000051
【図５】
2018026120.tif 000052
【図６】
2018026120.tif 000053
【図７】
2018026120.tif 000054
【図８】
2018026120.tif 000055
【図９】
2018026120.tif 000056
【図１０】
2018026120.tif 000057
【図１１】
2018026120.tif 000058
【図１２】
2018026120.tif 000059
【図１３】
2018026120.tif 000060
【図１４】
2018026120.tif 000061