以下に、本発明の実施形態を図面に基づいて詳細に説明する。なお、以下に説明する実施形態により本発明が限定されるものではない。
以下の説明においては、三次元グローバル座標系を設定して各部の位置関係について説明する。所定面の第1軸と平行な方向をX軸方向とし、第1軸と直交する所定面の第2軸と平行な方向をY軸方向とし、第1軸及び第2軸のそれぞれと直交する第3軸と平行な方向をZ軸方向とする。所定面はXY平面を含む。
(第1実施形態)
第1実施形態について説明する。図1は、第1実施形態に係る視線検出装置の一例を模式的に示す斜視図である。本実施形態において、視線検出装置100は、被験者の視線を検出する装置であり、被験者の関心対象を評価する評価装置としても用いられる。
(視線検出装置の全体構成)
図1に示すように、視線検出装置100は、表示装置101と、ステレオカメラ装置102と、照明装置103とを備える。
表示装置101は、液晶ディスプレイ(liquid crystal display:LCD)又は有機ELディスプレイ(organic electroluminescence display:OLED)のようなフラットパネルディスプレイを含む。表示装置101は、表示部として機能する。
本実施形態において、表示装置101の表示画面101Sは、XY平面と実質的に平行である。X軸方向は表示画面101Sの左右方向であり、Y軸方向は表示画面101Sの上下方向であり、Z軸方向は表示画面101Sと直交する奥行方向である。また、表示画面101Sに向かって右方向が+X方向、左方向が−X方向であり、上方向が+Y方向、下方向が−Y方向であり、手前方向が+Z方向、奥方向が−Z方向である。
ステレオカメラ装置102は、撮像部としての第1カメラ102A及び第2カメラ102Bを有する。ステレオカメラ装置102は、表示装置101の表示画面101Sよりも下方に配置される。第1カメラ102Aと第2カメラ102BとはX軸方向に配置される。第1カメラ102Aは、第2カメラ102Bよりも−X方向に配置される。第1カメラ102A及び第2カメラ102Bはそれぞれ、赤外線カメラを含み、例えば波長850[nm]の近赤外光を透過可能な光学系と、その近赤外光を受光可能な撮像素子とを有する。
照明装置103は、光源としての第1光源103A及び第2光源103Bを有する。照明装置103は、表示装置101の表示画面101Sよりも下方に配置される。第1光源103Aと第2光源103BとはX軸方向に配置される。第1光源103Aは、第1カメラ102Aよりも−X方向に配置される。第2光源103Bは、第2カメラ102Bよりも+X方向に配置される。第1光源103A及び第2光源103Bはそれぞれ、LED(light emitting diode)光源を含み、例えば波長850[nm]の近赤外光を射出可能である。なお、第1光源103A及び第2光源103Bは、第1カメラ102Aと第2カメラ102Bとの間に配置されてもよい。
図2は、本実施形態に係る表示装置とステレオカメラ装置と照明装置と被験者の眼球との位置関係を模式的に示す図である。
照明装置103は、検出光である近赤外光を射出して、被験者の眼球111を照明する。ステレオカメラ装置102は、第1光源103Aから射出された検出光が眼球111に照射されたときに第2カメラ102Bで眼球111を撮影し、第2光源103Bから射出された検出光が眼球111に照射されたときに第1カメラ102Aで眼球111を撮影する。
第1カメラ102A及び第2カメラ102Bの少なくとも一方からフレーム同期信号が出力される。第1光源103A及び第2光源103Bは、フレーム同期信号に基づいて検出光を射出する。第1カメラ102Aは、第2光源103Bから射出された検出光が眼球111に照射されたときに、眼球111の画像データを取得する。第2カメラ102Bは、第1光源103Aから射出された検出光が眼球111に照射されたときに、眼球111の画像データを取得する。
眼球111に検出光が照射されると、その検出光の一部は瞳孔112で反射し、その瞳孔112からの光がステレオカメラ装置102に入射する。また、眼球111に検出光が照射されると、角膜の虚像である角膜反射像113が眼球111に形成され、その角膜反射像113からの光がステレオカメラ装置102に入射する。
第1カメラ102A及び第2カメラ102Bと第1光源103A及び第2光源103Bとの相対位置が適切に設定されることにより、瞳孔112からステレオカメラ装置102に入射する光の強度は低くなり、角膜反射像113からステレオカメラ装置102に入射する光の強度は高くなる。すなわち、ステレオカメラ装置102で取得される瞳孔112の画像は低輝度となり、角膜反射像113の画像は高輝度となる。ステレオカメラ装置102は、取得される画像の輝度に基づいて、瞳孔112の位置及び角膜反射像113の位置を検出することができる。
図3は、本実施形態に係る視線検出装置のハードウェア構成の一例を示す図である。図3に示すように、視線検出装置100は、表示装置101と、ステレオカメラ装置102と、照明装置103と、コンピュータシステム20と、入出力インターフェース装置30と、駆動回路40と、出力装置50と、入力装置60と、音声出力装置70とを備える。制御部としてのコンピュータシステム20は、演算処理装置20A及び記憶装置20Bを含む。
コンピュータシステム20と、駆動回路40と、出力装置50と、入力装置60と、音声出力装置70とは、入出力インターフェース装置30を介してデータ通信する。
演算処理装置20Aは、CPU(central processing unit)のようなマイクロプロセッサを含む。記憶装置20Bは、ROM(read only memory)及びRAM(random access memory)のようなメモリ又はストレージを含む。演算処理装置20Aは、記憶装置20Bに記憶されているコンピュータプログラム20Cに従って演算処理を実施する。
駆動回路40は、駆動信号を生成して、表示装置101、ステレオカメラ装置102、及び照明装置103に出力する。また、駆動回路40は、ステレオカメラ装置102で取得された眼球111の画像データを、入出力インターフェース装置30を介してコンピュータシステム20に供給する。
出力装置50は、フラットパネルディスプレイのような表示装置を含む。なお、出力装置50は、印刷装置を含んでもよい。入力装置60は、操作されることにより入力データを生成する。入力装置60は、コンピュータシステム用のキーボード又はマウスを含む。なお、入力装置60が表示装置である出力装置50の表示画面に設けられたタッチセンサを含んでもよい。音声出力装置70は、スピーカを含み、例えば被験者に注意を促すための音声を出力する。
本実施形態においては、表示装置101とコンピュータシステム20とは別々の装置である。なお、表示装置101とコンピュータシステム20とが一体でもよい。例えば視線検出装置100がタブレット型パーソナルコンピュータを含む場合、そのタブレット型コンピュータに、コンピュータシステム20、入出力インターフェース装置30、駆動回路40、及び表示装置101が搭載されてもよい。
図4は、本実施形態に係る視線検出装置の一例を示す機能ブロック図である。図4に示すように、入出力インターフェース装置30は、入出力部302を有する。駆動回路40は、表示装置駆動部402と、第1カメラ入出力部404Aと、第2カメラ入出力部404Bと、光源駆動部406とを有する。表示装置駆動部402は、表示装置101を駆動するための駆動信号を生成して表示装置101に出力する。第1カメラ入出力部404Aは、第1カメラ102Aを駆動するための駆動信号を生成して第1カメラ102Aに出力する。第2カメラ入出力部404Bは、第2カメラ102Bを駆動するための駆動信号を生成して第2カメラ102Bに出力する。光源駆動部406は、第1光源103A及び第2光源103Bを駆動するための駆動信号を生成して第1光源103A及び第2光源103Bに出力する。また、第1カメラ入出力部404Aは、第1カメラ102Aで取得された眼球111の画像データを、入出力部302を介してコンピュータシステム20に供給する。第2カメラ入出力部404Bは、第2カメラ102Bで取得された眼球111の画像データを、入出力部302を介してコンピュータシステム20に供給する。
コンピュータシステム20は、視線検出装置100を制御する。コンピュータシステム20は、処理部200と、注視判定部220と、キャリブレーション部222と、注視点検出処理部240と、有効判定処理部260とを有する。コンピュータシステム20の機能は、演算処理装置20A及び記憶装置20Bによって発揮される。
処理部200は、視線検出のための各種処理を実行する。処理部200は、表示制御部202と、光源制御部204と、画像データ取得部206と、入力データ取得部208と、位置検出部210と、記憶部212と、出力制御部214とを有する。
表示制御部202は、被験者に見せるための画像を表示装置101の表示画面101Sに表示させる。表示制御部202は、例えば表示画面101Sの1点に画像を表示可能である。
光源制御部204は、光源駆動部406を制御して、第1光源103A及び第2光源103Bの作動状態を制御する。光源制御部204は、第1光源103Aと第2光源103Bとが異なるタイミングで検出光を射出するように第1光源103A及び第2光源103Bを制御する。
画像データ取得部206は、第1カメラ102A及び第2カメラ102Bを含むステレオカメラ装置102によって取得された被験者の眼球111の画像データを、入出力部302を介してステレオカメラ装置102から取得する。
入力データ取得部208は、入力装置60が操作されることにより生成された入力データを、入出力部302を介して入力装置60から取得する。
位置検出部210は、画像データ取得部206で取得された眼球111の画像データに基づいて、瞳孔中心の位置データを検出する。また、位置検出部210は、画像データ取得部206で取得された眼球111の画像データに基づいて、角膜反射中心の位置データを検出する。瞳孔中心は、瞳孔112の中心である。角膜反射中心は、角膜反射像113の中心である。位置検出部210は、被験者の左右それぞれの眼球111について、瞳孔中心の位置データ及び角膜反射中心の位置データを検出する。
記憶部212と、出力制御部214とについては、後述する。
注視判定部220は、処理部200の処理結果を用いて、さらに言えば、位置検出部210が検出した瞳孔中心の位置データと角膜反射中心の位置データとを用いて、注視判定処理を実行する。注視判定処理は、後述するキャリブレーション処理において被験者が目標位置を注視しているかを判定する処理である。
キャリブレーション部222は、第1キャリブレーション部230と第2キャリブレーション部250とを有する。キャリブレーション部222は、視線検出のためのキャリブレーション処理として、第1キャリブレーション部230で第1キャリブレーション処理を実行し、第1キャリブレーション部250で第2キャリブレーション処理を実行する。
第1キャリブレーション部230は、処理部200の処理結果を用いて、第1キャリブレーション処理を実行する。第1キャリブレーション処理は、キャリブレーション処理の1つであり、後述する注視点検出処理のためのキャリブレーション処理であるが、その処理内容は後述する。また、第1キャリブレーション部230は、注視判定部220において被験者が目標位置を注視していると判定した場合に、注視点検出のための第1キャリブレーション処理を実行する。
第1キャリブレーション部230は、曲率中心算出部232を有する。曲率中心算出部232は、処理部200の画像データ取得部206で取得された眼球111の画像データに基づいて、眼球111の角膜曲率中心の位置を算出する。
注視点検出処理部240は、処理部200の処理結果及び第1キャリブレーション部230の処理結果(キャリブレーションのデータ)を用いて、注視点検出処理を実行する。注視点検出処理は、被験者の注視点を検出する処理であるが、その処理内容は後述する。注視点検出処理部240は、補正位置算出部242と、注視点検出部244とを有する。
補正位置算出部242は、処理部200の位置検出部210で検出された瞳孔112の中心と、第1キャリブレーション部230の曲率中心算出部232で算出された角膜曲率中心との距離に基づいて、角膜曲率中心の位置を補正し、左右それぞれの眼球の補正後の角膜曲率中心の位置を算出する。
注視点検出部244は、処理部200の画像データ取得部206で取得された眼球111の画像データに基づいて、被験者の注視点の位置を検出する。本実施形態において、注視点の位置とは、三次元グローバル座標系で規定される被験者の視線ベクトルと表示装置101の表示画面101Sとの交点の位置をいう。注視点検出部244は、眼球111の画像データから取得された瞳孔中心の位置及び角膜曲率中心の位置に基づいて、被験者の左右それぞれの眼球111の視線方向である視線ベクトルを検出する。つまり、注視点検出部244は、被験者の左右それぞれの眼球111の視線方向を検出する視線検出部でもある。被験者の左右それぞれの眼球111の視線ベクトルが検出された後、注視点検出部244は、視線ベクトルと表示画面101Sとの交点を示す注視点の位置を検出する。
第2キャリブレーション部250は、処理部200の処理結果及び注視点検出処理部240の処理結果を用いて、第2キャリブレーション処理を実行する。第2キャリブレーション処理は、キャリブレーション処理の1つであり、次回以降の注視点検出処理のためのキャリブレーション処理であるが、その処理内容は後述する。また、第2キャリブレーション部250は、注視判定部220において被験者が目標位置を注視していると判定した場合に、次回以降の注視点検出処理のための第2キャリブレーション処理を実行する。
第2キャリブレーション部250は、理想位置算出部252と、演算部254とを有する。理想位置算出部252は、表示画面101Sの1点に表示される画像の位置と、瞳孔112の中心の位置とから、左右それぞれの眼球の理想的な角膜曲率中心の位置を算出する。
演算部254は、左右それぞれの眼球について、注視点検出処理部240の補正位置算出部242で算出される補正後の角膜曲率中心の位置と、理想位置算出部252で算出される理想的な角膜曲率中心の位置との差分である位置差分を算出する。
また、処理部200の記憶部212は、表示装置101の表示画面101Sの1点に画像を表示する処理と、被験者の左右の眼球に光源から近赤外光を照射する処理と、近赤外光が照射される被験者の左右の眼球の画像データを取得する処理と、取得された画像データから、左右それぞれの眼球の瞳孔112の中心を示す瞳孔中心の位置と角膜反射像113の中心を示す角膜反射中心の位置とを検出する処理と、瞳孔中心の位置データと角膜反射中心の位置データとを用いて、キャリブレーション処理において被験者が目標位置を注視しているかを判定する処理と、光源と角膜反射中心とを結ぶ仮想直線と、画像と瞳孔中心と結ぶ仮想直線とに基づいて、左右それぞれの眼球の角膜曲率中心の位置を算出する処理と、瞳孔中心と角膜曲率中心との距離に基づいて角膜曲率中心の位置を補正し、左右それぞれの眼球の補正後の角膜曲率中心の位置を算出する処理と、瞳孔中心の位置と補正後の角膜曲率中心の位置とから、左右それぞれの眼球の注視点を検出する処理と、表示画面101Sの1点に表示される画像の位置と瞳孔中心の位置とから、左右それぞれの眼球の理想的な角膜曲率中心の位置を算出する処理と、左右それぞれの眼球について、補正後の角膜曲率中心の位置と理想的な角膜曲率中心の位置との差分である位置差分を算出する処理と、をコンピュータに実行させる視線検出プログラムを記憶する。
出力制御部214は、表示装置101、出力装置50、及び音声出力装置70の少なくとも一つにデータを出力する。本実施形態において、出力制御部214は、表示画面101Sの1点に画像を表示させる。また、出力制御部214は、被験者の左右それぞれの眼球111の注視点の位置を表示画面101S又は出力装置50に表示させる。
コンピュータシステム20は、以上のような構成となっている。
(角膜曲率中心の算出方法の概要)
次に、本実施形態に係る第1キャリブレーション部230が有する曲率中心算出部232の処理の概要について説明する。曲率中心算出部232は、眼球111の画像データに基づいて、眼球111の角膜曲率中心の位置を算出する。
図5及び図6は、本実施形態に係る角膜曲率中心の位置の算出方法を説明するための模式図である。図5は、1つの光源103Cで眼球111が照明される例を示す。図6は、第1光源103A及び第2光源103Bで眼球111が照明される例を示す。
まず、図5に示す例について説明する。光源103Cは、第1カメラ102Aと第2カメラ102Bとの間に配置される。瞳孔中心112Cは、瞳孔112の中心である。角膜反射中心113Cは、角膜反射像113の中心である。図5において、瞳孔中心112Cは、眼球111が1つの光源103Cで照明されたときの瞳孔中心を示す。角膜反射中心113Cは、眼球111が1つの光源103Cで照明されたときの角膜反射中心を示す。
角膜反射中心113Cは、光源103Cと角膜曲率中心110とを結ぶ直線上に存在する。角膜曲率半径109は、角膜表面と角膜曲率中心110との距離である。
角膜反射中心113Cの位置は、ステレオカメラ装置102によって検出される。角膜曲率中心110は、光源103Cと角膜反射中心113Cとを結ぶ直線上に存在する。曲率中心算出部232は、その直線上において角膜反射中心113Cからの距離が所定値となる位置を、角膜曲率中心110の位置として算出する。所定値は、一般的な角膜の曲率半径値などから事前に定められた値であり、記憶部212に記憶されている。
次に、図6に示す例について説明する。本実施形態においては、第1カメラ102A及び第2光源103Bと、第2カメラ102B及び第1光源103Aとは、第1カメラ102Aと第2カメラ102Bとの中間位置を通る直線に対して左右対称の位置に配置される。第1カメラ102Aと第2カメラ102Bとの中間位置に仮想光源103Vが存在するとみなすことができる。
角膜反射中心121は、第2カメラ102Bで眼球111を撮影した画像における角膜反射中心を示す。角膜反射中心122は、第1カメラ102Aで眼球111を撮影した画像における角膜反射中心を示す。角膜反射中心124は、仮想光源103Vに対応する角膜反射中心を示す。
角膜反射中心124の位置は、ステレオカメラ装置102で取得された角膜反射中心121の位置及び角膜反射中心122の位置に基づいて算出される。ステレオカメラ装置102は、ステレオカメラ装置102に規定される三次元ローカル座標系において角膜反射中心121の位置及び角膜反射中心122の位置を検出する。ステレオカメラ装置102について、事前にステレオ較正法によるカメラ較正が実施され、ステレオカメラ装置102の三次元ローカル座標系を三次元グローバル座標系に変換する変換パラメータが算出される。その変換パラメータは、記憶部212に記憶されている。
曲率中心算出部232は、ステレオカメラ装置102で取得された角膜反射中心121の位置及び角膜反射中心122の位置を、変換パラメータを使って、三次元グローバル座標系における位置に変換する。曲率中心算出部232は、三次元グローバル座標系で規定される角膜反射中心121の位置及び角膜反射中心122の位置に基づいて、三次元グローバル座標系における角膜反射中心124の位置を算出する。
角膜曲率中心110は、仮想光源103Vと角膜反射中心124とを結ぶ直線123上に存在する。曲率中心算出部232は、直線123上において角膜反射中心124からの距離が所定値となる位置を、角膜曲率中心110の位置として算出する。所定値は、一般的な角膜の曲率半径値などから事前に定められた値であり、記憶部212に記憶されている。
このように、光源が2つある場合でも、光源が1つである場合の方法と同様の方法で、角膜曲率中心110が算出される。
角膜曲率半径109は、角膜表面と角膜曲率中心110との距離である。したがって、角膜表面の位置及び角膜曲率中心110の位置が算出されることにより、角膜曲率半径109が算出される。
(視線検出方法)
次に、本実施形態に係る視線検出方法の一例について説明する。図7は、本実施形態に係る視線検出方法の一例を示すフローチャートである。本実施形態においては、第1キャリブレーション処理(ステップS100)と、注視点検出処理(ステップS200)と、第2キャリブレーション処理(ステップS300)と、が実施される。第1キャリブレーション処理は、被験者が目標位置を注視しているかを判定する注視判定処理と、角膜曲率中心110の位置の算出処理と、瞳孔中心112Cと角膜曲率中心110との距離データの算出処理とを含む。第2キャリブレーション処理は、被験者が目標位置を注視しているかを判定する注視判定処理と、理想的な角膜曲率中心110の位置の算出処理とを含む。なお、注視判定処理は、第1キャリブレーション処理及び第2キャリブレーション処理の両方に含まれている処理であるが、第1キャリブレーション処理及び第2キャリブレーション処理とは別に独立して実行されてもよい。また、注視判定処理は、第1キャリブレーション処理及び第2キャリブレーション処理の少なくてもいずれかで実行されてもよい。
(第1キャリブレーション処理)
第1キャリブレーション処理(ステップS100)について説明する。第1キャリブレーション処理において、表示制御部202は、被験者に注視させるための目標位置を設定する。目標位置は、三次元グローバル座標系において規定される。本実施形態において、表示制御部202は、目標位置を、例えば表示装置101の表示画面101Sの中央位置に設定する。なお、目標位置は、表示画面101Sの端部位置に設定されてもよい。表示制御部202は、設定した目標位置に目標画像を表示させる。これにより、被験者は、目標位置を注視し易くなる。
第1キャリブレーション処理では、目標位置に目標画像を表示させた後に、ステレオカメラ装置102により、被験者の眼球111の画像を撮像し、画像データ取得部206が、その撮像した画像データを取得する。位置検出部210は、その画像データに基づき、瞳孔中心112Cの位置と角膜反射中心124の位置とを検出する。
第1キャリブレーション処理では、注視判定部220が、注視判定処理を実行して、位置検出部210が検出した瞳孔中心112Cの位置と角膜反射中心124の位置とに基づき、被験者が目標位置を注視しているかを判定する。以下、注視判定部220の処理内容について説明する。
図8A及び図8Bは、注視判定処理を説明するための説明図である。図8A及び図8Bは、被験者の眼球111の画像の模式図である。図8A及び図8Bの線分XAは、瞳孔中心112Cを通る水平方向(鉛直方向)に沿った仮想の直線である。線分YAは、瞳孔中心112Cを通るであって線分XAに直交する仮想の直線であり、垂直方向(鉛直)に沿った直線である。
図8Aは、被験者が表示装置101に対する標準位置に位置しており、かつ、被験者が表示画面101Sの中央位置の目標位置を注視した場合の、眼球111の画像の例である。標準位置とは、表示装置101の前方(+Z方向)側の位置であり、視線検出を行う際に被験者が位置するように、予め定められた位置である。
図8Aに示すように、被験者が中央位置の目標位置を注視した場合、理想的には、角膜反射像113は、線分YA上付近に位置する。また、本実施形態では、ステレオカメラ装置102は表示画面101Sより下方側(−Y方向側)に位置しているため、角膜反射像113及び角膜反射中心113Cは、瞳孔中心112Cの下方側(−Y方向側)に位置している。ここで、瞳孔中心112Cと角膜反射中心113Cとの間の距離を、距離rとする。距離rは、被験者が表示画面101Sの下方側(−Y方向側)を見ると、短くなり、被験者が表示画面101Sの上方側(+Y方向側)を見ると、長くなる。また、被験者が中心位置にある目標位置よりも上方側(+Y方向側)を注視している場合の距離rは、被験者が中心位置にある目標位置を注視している場合の距離rよりも、長くなる。
また、図8Bは、被験者が表示画面101Sの中央位置よりも右上を見た場合の画像の例である。ここで、線分YA上の仮想的な任意の点を、基準点Pとする。そして、瞳孔中心112Cと基準点Pとを結ぶ直線(ここでは線分YA)と、瞳孔中心112Cと角膜反射中心113Cとを結ぶ直線とがなす角度を、角度θとする。図8Aでは、角膜反射中心113Cが線分YA上に位置しているため、角度θは0度である。図8Bでは、被験者が目標位置より右上を見ているため、角膜反射中心113Cの位置が線分YAから左側にずれ、角度θは、0度より大きくなっている。
以上の観点から、注視判定部220は、瞳孔中心112Cの位置と角膜反射中心124の位置とから、距離rと角度θとを算出する。注視判定部220は、算出した距離rと角度θとに基づき、被験者が目標位置を注視しているかを判定する。
具体的には、注視判定部220は、記憶部212から、予め設定された距離閾値r0を読み出す。距離閾値r0は、下限値と上限値とを有する数値範囲(距離範囲)である。注視判定部220は、算出した距離rが距離閾値r0の範囲内であるかを確認することで、被験者が目標位置を注視しているかを判定する。注視判定部220は、算出した距離rが距離閾値r0の範囲内である場合に、被験者が目標位置を注視していると判定し、算出した距離rが距離閾値r0の範囲外である場合に、被験者が目標位置を注視していないと判定する。距離閾値r0は、予め定められた数値範囲であるが、例えば、人の角膜曲率半径はほぼ同じであることから一定値として設定することが可能であり、3mm以上5mm以下の範囲にあることが好ましいと考えられる。
また、注視判定部220は、記憶部212から、予め設定された角度閾値θ0を読み出す。角度閾値θ0は、予め定められた1つの値である。注視判定部220は、算出した角度θが角度閾値θ0以下であるかを確認することで、被験者が目標位置を注視しているかを判定する。注視判定部220は、算出した角度θが角度閾値θ0以下である場合に、被験者が目標位置を注視していると判定し、算出した角度θが角度閾値θ0より大きい場合に、被験者が目標位置を注視していないと判定する。角度閾値θ0は、予め定められた値であるが、例えば、20°以上30°以下の値であることが好ましい。なお、本実施形態では、基準点Pは、線分YA上に位置していると設定した点であるが、基準点Pの設定位置は、任意である。また、注視判定部220は、角度閾値θ0を、下限値と上限値とを有する数値範囲(角度範囲)としてもよい。この場合、注視判定部220は、角度θが角度閾値θ0以下である(又は、角度閾値θ0の範囲内である)場合に、被験者が目標位置を注視していると判定し、角度θが角度閾値θ0より大きい(又は、角度閾値θ0の範囲外である)場合に、被験者が目標位置を注視していないと判定する。
更に具体的には、注視判定部220は、算出した距離rが距離閾値r0の範囲内であって、かつ、算出した角度θが角度閾値θ0以下である場合に、被験者が目標位置を注視していると判定する。そして、注視判定部220は、算出した距離rが距離閾値r0の範囲外である場合と、算出した角度θが角度閾値θ0より大きい場合との少なくともいずれかを満たした場合に、被験者が目標位置を注視していないと判定する。このように、注視判定部220は、距離rと角度θとの両方に基づき、被験者が目標位置を注視しているかを判定している。ただし、注視判定部220は、距離rと角度θとのいずれかのみに基づき、被験者が目標位置を注視しているかを判定してもよい。すなわち、注視判定部220は、瞳孔中心112Cの位置と角膜反射中心113Cの位置との関係性を示す指標値を、少なくとも1つ設定すればよい。そして、注視判定部220は、この指標値が所定の閾値の範囲内にある場合に、被験者が目標位置を注視していると判定し、この指標値がその閾値の範囲外にある場合に、被験者が目標位置を注視していないと判定すればよい。ここでの指標値は、本実施形態の例では、距離r及び角度θの少なくともいずれかであるが、瞳孔中心112Cの位置と角膜反射中心113Cの位置との関係を示す値であれば、距離r及び角度θに限られない。
注視判定部220は、以上のようにして注視判定処理を実行して、被験者が目標位置を注視しているかを判定する。第1キャリブレーション部230(曲率中心算出部232)は、この注視判定部220が目標位置を注視していると判定した場合に、ステレオカメラ装置102が撮像した画像に基づき、キャリブレーション処理を実行する。第1キャリブレーション部230(曲率中心算出部232)は、キャリブレーション処理として、角膜曲率中心110の位置の算出処理と、瞳孔中心112Cと角膜曲率中心110との距離データの算出処理とを行う。
図9は、本実施形態に係る第1キャリブレーション部によるキャリブレーション処理の一例を説明するための模式図である。図9に示すように、表示制御部202は、被験者に注視させるための目標位置130を設定する。目標位置130は、三次元グローバル座標系において規定される。本実施形態において、目標位置130は、例えば表示装置101の表示画面101Sの中央位置に設定される。なお、目標位置130は、表示画面101Sの端部位置に設定されてもよい。
表示制御部202は、設定された目標位置130に目標画像を表示させる。これにより、被験者は、目標位置130を注視し易くなる。
直線131は、仮想光源103Vと角膜反射中心113Cとを結ぶ直線である。直線132は、目標位置130と瞳孔中心112Cとを結ぶ直線である。角膜曲率中心110は、直線131と直線132との交点である。曲率中心算出部232は、仮想光源103Vの位置と、目標位置130の位置と、瞳孔中心112Cの位置と、角膜反射中心113Cの位置とに基づいて、角膜曲率中心110の位置を算出することができる。
以下に、第1キャリブレーション処理の処理フローを基に、第1キャリブレーション処理の流れについて説明する。図10は、本実施形態に係る第1キャリブレーション処理の一例を示すフローチャートである。表示制御部202は、表示装置101の表示画面101Sに目標画像を表示させる(ステップS101)。被験者は、目標画像を注視することにより、目標位置130を注視することができる。
次に、光源制御部204は、光源駆動部406を制御して、第1光源103A及び第2光源103Bのうち一方の光源から検出光を射出させる(ステップS102)。ステレオカメラ装置102は、第1カメラ102A及び第2カメラ102Bのうち検出光を射出した光源からの距離が長い方のカメラで被験者の眼を撮影する(ステップS103)。
次に、光源制御部204は、光源駆動部406を制御して、第1光源103A及び第2光源103Bのうち他方の光源から検出光を射出させる(ステップS104)。ステレオカメラ装置102は、第1カメラ102A及び第2カメラ102Bのうち検出光を射出した光源からの距離が長い方のカメラで被験者の眼を撮影する(ステップS105)。
瞳孔112は、暗い部分としてステレオカメラ装置102に検出され、角膜反射像113は、明るい部分としてステレオカメラ装置102に検出される。すなわち、ステレオカメラ装置102で取得される瞳孔112の画像は低輝度となり、角膜反射像113の画像は高輝度となる。位置検出部210は、取得される画像の輝度に基づいて、瞳孔112の位置及び角膜反射像113の位置を検出することができる。また、位置検出部210は、瞳孔112の画像データに基づいて、瞳孔中心112Cの位置を算出する。また、位置検出部210は、角膜反射像113の画像データに基づいて、角膜反射中心113Cの位置を算出する(ステップS106)。
ステレオカメラ装置102によって検出された位置は、3次元のローカル座標系で規定される位置である。位置検出部210は、記憶部212に記憶されている変換パラメータを使用して、ステレオカメラ装置102で検出された瞳孔中心112Cの位置及び角膜反射中心113Cの位置を座標変換して、三次元グローバル座標系で規定される瞳孔中心112Cの位置及び角膜反射中心113Cの位置を算出する(ステップS107)。
瞳孔中心112Cの位置及び角膜反射中心113Cの位置が算出された後に、注視判定部220が、ステップS108からステップS112の注視判定処理を実行する。注視判定部220は、瞳孔中心112Cの位置データ及び角膜反射中心113Cの位置データに基づき、瞳孔中心112Cと角膜反射中心113Cとの間の距離rを算出する(ステップS108)。注視判定部220は、算出した距離rが、距離閾値r0の範囲内であるかを確認し(ステップS109)、距離rが距離閾値r0の範囲内である場合(ステップS109;Yes)、瞳孔中心112Cと角膜反射中心113Cとの間の角度θを算出する(ステップS110)。次に、注視判定部220は、算出した角度θが角度閾値θ0以下であるかを確認し(ステップS111)、角度θが角度閾値θ0以下である場合(ステップS111;Yes)、被験者が目標位置を注視していると判定する(ステップS112)。
距離rが距離閾値r0の範囲内でない場合(ステップS109;No)、すなわち距離rが距離閾値r0の範囲外である場合、注視判定部220は、被験者が目標位置を注視していないと判定し、それまでのデータ(瞳孔中心112Cの位置データ及び角膜反射中心113Cの位置データ)を無効として、次の画像撮影を行うためステップS101に戻る。この場合、注視判定部220は、例えば目標位置を注視していない旨を操作者や被験者に通知させてから、ステップS101に戻ってもよい。ステップS101に戻った後は、目標位置130に目標画像を表示させて、新たに眼球111の画像を撮像して瞳孔中心112Cの位置及び角膜反射中心113Cの位置を算出し、再度、注視判定処理を実行する。角度θが角度閾値θ0以下でない場合(ステップS110;No)、すなわち角度θが角度閾値θ0以上である場合も、注視判定部220は、被験者が目標位置を注視していないと判定し、それまでのキャリブレーションデータを無効として、次の画像撮影を行うためステップS101に戻り、次の画像から注視判定処理を実行する。
注視判定部220によって被験者が目標位置を注視していると判定すると、第1キャリブレーション部230の曲率中心算出部232は、グローバル座標系で規定される角膜反射中心113Cと仮想光源103Vとを結ぶ直線131を算出する(ステップS113)。
次に、曲率中心算出部232は、表示装置101の表示画面101Sに規定される目標位置130と瞳孔中心112Cとを結ぶ直線132を算出する(ステップS114)。曲率中心算出部232は、ステップS113で算出した直線131とステップS114で算出した直線132との交点を求め、この交点を角膜曲率中心110とする(ステップS115)。
その後、曲率中心算出部232は、瞳孔中心112Cと角膜曲率中心110との距離126を算出して、記憶部212に記憶する(ステップS116)。記憶された距離は、ステップS200の注視点検出において、角膜曲率中心110を算出するために使用される。ステップS116により、第1キャリブレーション処理は終了する。
(注視点検出処理)
次に、注視点検出処理(ステップS200)について説明する。注視点検出処理は、第1キャリブレーション処理の後に、注視点検出処理部240によって実施される。注視点検出処理部240の注視点検出部244は、眼球111の画像データに基づいて、被験者の視線ベクトル及び注視点の位置を算出する。
図11は、本実施形態に係る注視点検出処理の一例を説明するための模式図である。注視点検出処理は、第1キャリブレーション処理(ステップS100)で求めた瞳孔中心112Cと角膜曲率中心110との距離126を用いて、角膜曲率中心110の位置を補正すること、及び補正された角膜曲率中心110の位置を使って注視点を算出することを含む。
図11において、注視点165は、一般的な曲率半径値を用いて算出された角膜曲率中心110から求めた注視点を示す。注視点166は、第1キャリブレーション処理で求められた距離126を用いて算出された角膜曲率中心110Hから求めた注視点を示す。
瞳孔中心112Cは、第1キャリブレーション処理において算出された瞳孔中心を示し、角膜反射中心113Cは、第1キャリブレーション処理において算出された角膜反射中心を示す。
直線173は、仮想光源103Vと角膜反射中心113Cとを結ぶ直線である。角膜曲率中心110は、一般的な曲率半径値から算出した角膜曲率中心の位置である。
距離126は、第1キャリブレーション処理により算出した瞳孔中心112Cと角膜曲率中心110との距離である。
角膜曲率中心110Hは、距離126を用いて角膜曲率中心110を補正した補正後の角膜曲率中心の位置を示す。
角膜曲率中心110Hは、角膜曲率中心110が直線173上に存在すること、及び瞳孔中心112Cと角膜曲率中心110との距離が距離126であることから求められる。これにより、一般的な曲率半径値を用いる場合に算出される視線177は、視線178に補正される。また、表示装置101の表示画面101S上の注視点は、注視点165から注視点166に補正される。
図12は、本実施形態に係る注視点検出処理の一例を示すフローチャートである。なお、図12に示すステップS201からステップS206までの処理は、図10に示したステップS102からステップS107までの処理と同様であるため説明を省略する。すなわち、ステップS201からステップS206までの注視点検出処理においては、第1キャリブレーション処理とは異なる注視点検出用に撮像した眼球111の画像を用いて、瞳孔中心112C及び角膜反射中心113Cの位置データを算出する。
ステップS206で瞳孔中心112C及び角膜反射中心113Cの位置データをグローバル座標系に変換した後、注視点検出部244は、瞳孔中心112Cと角膜曲率中心110Hとを結ぶ視線ベクトルを算出する(ステップS207)。このステップS207は、図10に示したステップS113と同内容の処理である。
その後、補正位置算出部242は、ステップS207で算出した直線173上であって、瞳孔中心112Cからの距離がキャリブレーション処理によって求めた距離126と等しい位置を、補正後の角膜曲率中心である角膜曲率中心110Hとして算出する(ステップS208)。
注視点検出部244は、瞳孔中心112Cと角膜曲率中心110Hとを結ぶ視線ベクトルを算出する(ステップS209)。視線ベクトルは、被験者が見ている視線方向を示す。注視点検出部244は、視線ベクトルと表示装置101の表示画面101Sとの交点の位置を算出する(ステップS210)。視線ベクトルと表示装置101の表示画面101Sとの交点の位置が、三次元グローバル座標系で規定される表示画面101Sにおける被験者の注視点の位置である。
注視点検出部244は、三次元グローバル座標系で規定される注視点の位置を、2次元座標系で規定される表示装置101の表示画面101Sにおける位置に変換する(ステップS211)。これにより、被験者が見つめる表示装置101の表示画面101S上の注視点の位置が算出される。このステップS211で注視点の位置を変換することにより、注視点検出処理は終了する。
(第2キャリブレーション処理)
次に、第2キャリブレーション処理(ステップS300)について説明する。第2キャリブレーション処理は、注視判定処理と、左右それぞれの眼球の理想的な角膜曲率中心110Fの位置を算出する処理とを含む。第2キャリブレーション処理における注視判定処理は、第2キャリブレーション処理用の眼球111の画像データを用いる点以外は、第1キャリブレーション処理における注視判定処理と同じである。
図13は、本実施形態に係る第2キャリブレーション部によるキャリブレーション処理の一例を説明するための模式図である。図13に示すように、第2キャリブレーション処理では、被験者に注視させるための目標位置180が設定される。目標位置180は、三次元グローバル座標系において規定される。本実施形態において、目標位置180は、例えば表示装置101の表示画面101Sの中央位置に設定される。なお、目標位置180は、表示画面101Sの端部位置に設定されてもよい。表示制御部202は、設定された目標位置180に目標画像を表示させる。これにより、被験者は、目標位置180を注視し易くなる。
瞳孔中心112Cは、第1キャリブレーション処理において算出された瞳孔中心を示す。直線181は、仮想光源103Vと瞳孔中心112Cとを結ぶ直線である。距離126は、第1キャリブレーション処理により算出した瞳孔中心112Cと角膜曲率中心110Fとの距離である。
直線181上であって、瞳孔中心112Cとの間に距離126を有する位置には、理想的な角膜曲率中心110Fが設定される。理想位置算出部252は、目標位置180の位置と、瞳孔中心112Cの位置と、瞳孔中心112Cと角膜曲率中心110との距離126のデータとに基づいて、理想的な角膜曲率中心110Fの位置を算出することができる。位置差分127は、理想的な角膜曲率中心110Fと、上記した補正後の角膜曲率中心110Hとの距離である。
以下に、第2キャリブレーション処理の処理フローを基に、第2キャリブレーション処理の流れについて説明する。図14は、本実施形態に係る第2キャリブレーション処理の一例を示すフローチャートである。図14に示すステップS301からステップS312までの注視判定処理は、図10に示したステップS101からステップS112までの注視判定処理と同様であるため、説明を省略する。すなわち、ステップS301からステップS312までの注視判定処理においては、第1キャリブレーション処理における注視判定処理と同様に、瞳孔中心112C及び角膜反射中心113Cの位置データを算出し、注視判定部220により、それらの位置データに基づき、被験者が目標点180を注視しているかを判定する。
ステップS312において目標位置を注視していると判定されると、第2キャリブレーション部250の理想位置算出部252は、表示画面101Sの目標位置180と、グローバル座標系で規定される瞳孔中心112Cとを結ぶ直線181を算出する(ステップS313)。
次に、理想位置算出部252は、ステップS313で算出した直線181上の点であって、瞳孔中心112Cからの距離が第1キャリブレーション処理によって求めた距離126と等しい点を理想的な角膜曲率中心110Fとして求め、当該理想的な角膜曲率中心110Fの位置を算出する(ステップS314)。
次に、演算部254は、左右それぞれの眼球について、理想的な角膜曲率中心110Fと補正後の角膜曲率中心110Hとの距離である位置差分127を算出する(ステップS315)。演算部254は、算出した位置差分127を記憶部212に記憶させる。この位置差分127は、注視点検出処理で得られる補正後の角膜曲率中心110Hに対する較正値として用いられる。例えば、以降に注視点検出処理を行う際、注視点検出処理部240は、瞳孔中心112Cの位置と補正後の角膜曲率中心110Hの位置に位置差分127を加算した位置とから左右それぞれの眼球の視線方向を検出する。具体的には、注視点検出処理部240は、補正後の角膜曲率中心110Hに位置差分127を較正値として加算した角膜曲率中心から瞳孔中心112Cへ向かう視線ベクトルを、被験者の較正後の視線方向として検出する。このステップS315により、第2キャリブレーション処理は終了する。
以上説明したように、本実施形態に係る視線検出装置100は、光源(本実施形態では第1光源103A及び第2光源103B)と、撮像部(本実施形態では第1カメラ102A及び第2カメラ102B)と、位置検出部210と、注視判定部220と、キャリブレーション部(本実施形態では第1キャリブレーション部230及び第2キャリブレーション部250)と、を有する。光源は、被験者の眼球111に、視線検出用の検出光を照射する。撮像部は、検出光が照射された被験者の眼球111を撮像する。位置検出部210は、撮像部が撮像した画像から、眼球111の瞳孔中心112Cの位置と、眼球111の角膜反射中心113Cの位置とを検出する。注視判定部220は、位置検出部210が検出した瞳孔中心112Cの位置と角膜反射中心113Cの位置とに基づき、被験者が目標位置を注視しているかを判定する。キャリブレーション部は、注視判定部220が目標位置を注視していると判定した場合に、撮像部が撮像した画像に基づき視線検出のためのキャリブレーション(本実施形態では第1キャリブレーション及び第2キャリブレーション)を実行する。
視線検出の際のキャリブレーションは、被験者が表示画面101S上の目標位置を注視していることを前提に行われる。従って、被験者が目標位置を注視していない状態でキャリブレーションを実行すると、キャリブレーションの精度が低下するおそれがある。それに対し、本実施形態に係る視線検出装置100は、被験者が目標位置を注視しているかを判定し、目標位置を注視していると判定した場合に、キャリブレーション処理を実行する。従って、本実施形態に係る視線検出装置100は、被験者が目標位置を注視していない状態でキャリブレーションが実行されることを抑制し、キャリブレーションの精度低下を適切に抑制することができる。また、本実施形態に係る視線検出装置100は、瞳孔中心112Cの位置と角膜反射中心113Cの位置とに基づき、被験者が目標位置を注視しているかを判定するため、被験者が目標位置を注視しているかを高精度に判定することができ、キャリブレーションの精度低下を適切に抑制することができる。
また、注視判定部220は、瞳孔中心112Cの位置と角膜反射中心113Cの位置との関係性を示す指標値が、所定の閾値の範囲内にある場合に、被験者が目標位置を注視していると判定する。そして、注視判定部220は、その指標値が閾値の範囲外にある場合に、被験者が目標位置を注視していないと判定する。この視線検出装置100は、瞳孔中心112Cの位置と角膜反射中心113Cの位置との関係性を示す指標値が閾値の範囲内に入っているかに基づき、被験者が目標位置を注視しているかを判定している。従って、この視線検出装置100は、被験者が目標位置を注視しているかを高精度に判定することができ、キャリブレーションの精度低下を適切に抑制することができる。
また、注視判定部220は、瞳孔中心112Cの位置と角膜反射中心113Cの位置との間の距離rが、所定の距離閾値r0の範囲内である場合に、被験者が目標位置を注視していると判定する。この視線検出装置100は、距離rが距離閾値r0の範囲内であるかに基づき判定しているため、被験者が目標位置を注視しているかを高精度に判定することができ、キャリブレーションの精度低下を適切に抑制することができる。
また、注視判定部220は、瞳孔中心112Cの位置と所定の基準点Pとを結ぶ直線と、瞳孔中心112Cの位置と角膜反射中心113Cの位置とを結ぶ直線との間の角度θが、所定の角度閾値θ0以下である場合に、被験者が目標位置を注視していると判定する。この視線検出装置100は、角度θが角度閾値θ0以下であるかに基づき判定しているため、被験者が目標位置を注視しているかを高精度に判定することができ、キャリブレーションの精度低下を適切に抑制することができる。
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態に係る視線検出装置100は、注視判定処理において、判定のための閾値を段階的に更新する点で、第1実施形態とは異なる。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。
第2実施形態に係る注視判定部220は、第1実施形態と同様に、瞳孔中心112Cの位置と角膜反射中心113Cの位置との関係性を示す指標値が、所定の閾値の範囲内にある場合に、被験者が目標位置を注視していると判定する。そして、第2実施形態に係る注視判定部220は、その指標値が閾値の範囲外にある場合に、被験者が目標位置を注視していないと判定する。第2実施形態に係る注視判定部220は、第1実施形態とは異なり、被験者が目標位置を注視しているかを判定した後に、閾値の値を切り替えて、指標値が、切り替えた閾値の範囲内にあるかを判断する。第2実施形態に係る注視判定部220は、指標値が、切り替えた閾値の範囲内にあるかを判断して、被験者が目標位置を注視しているかを、再度判定する。
さらに詳しくは、注視判定部220は、指標値が閾値の範囲外にあって被験者が目標位置を注視していないと判定した場合に、閾値を、数値範囲が大きくなるように更新し、判定基準を緩和する。そして、第2実施形態に係る視線検出装置100は、眼球111の画像を再度撮像して、その画像に基づき、瞳孔中心112Cの位置と角膜反射中心113Cの位置とを、再度検出する。そして、視線検出装置100は、その瞳孔中心112Cの位置と角膜反射中心113Cの位置との関係性を示す指標値を再度算出して、その指標値が、更新した閾値(数値範囲が大きくなった閾値)の範囲内にあるかを、再度判定する。注視判定部220は、指標値が更新した閾値の範囲内にある場合、被験者が目標位置を注視していると判定する。
例えば第1実施形態のように閾値を一定のまま保っている場合、画像を撮像しなおして再判定を行っても、指標値が閾値の範囲外となることが続き、キャリブレーションの終了に時間を要するおそれが生じる。しかし、第2実施形態においては、一度閾値の範囲内に入らなかった場合に、閾値を更新して判定基準を緩和した状態で、再度判定を行う。従って、第2実施形態においては、キャリブレーションの成功率が低くなることを抑制して、キャリブレーションの終了までの時間が長くなることを抑制することができる。
なお、注視判定部220は、算出しなおした指標値が、更新した閾値の範囲外となった場合、数値範囲がさらに大きくなるように閾値を更に更新して、判定基準をさらに緩和してもよい。この注視判定部220は、判定基準をさらに緩和した状態で、被験者が目標位置を注視しているかを、再判定してもよい。ただし、閾値の更新は、上限を設けることが好ましい。例えば、注視判定部220は、閾値を更新する回数の上限を2回とし、閾値を合計3段階持たせてもよい。また、注視判定部220は、閾値を設定してからの経過時間の上限を定め、経過時間が上限に達した場合に、それ以上閾値を更新させないようにしてもよい。これにより、判定基準が緩和され過ぎて、キャリブレーションの精度が低下してしまうことを抑制することができる。
なお、本実施形態では、指標値とは、距離r及び角度θである。注視判定部220は、距離rが距離閾値r0の範囲外であると判定した場合は、距離閾値r0を、更新距離閾値r1に更新する。更新距離閾値r1は、距離閾値r0よりも数値範囲が広く設定された数値範囲である。更新距離閾値r1は、距離閾値r0に対し、数値範囲が、20%以上30%以下、拡張されたものであることが好ましい。また、注視判定部220は、距離rが更新距離閾値r1の範囲外であると判定した場合は、更新距離閾値r1を、更新距離閾値r2にさらに更新し、次に算出した距離rが、更新距離閾値r2の範囲内であるかを判定してもよい。更新距離閾値r2の更新距離閾値r1に対する数値範囲の拡張割合は、例えば、更新距離閾値r1の距離閾値r0に対する数値範囲の拡張割合と同じである。
また、注視判定部220は、角度θが角度閾値θ0より大きい(又は、角度閾値θ0の範囲外である)と判定した場合は、角度閾値θ0を、更新角度閾値θ1に更新する。更新角度閾値θ1は、角度閾値θ0よりも値が大きい数値(又は数値範囲が広く設定された数値範囲)である。更新角度閾値θ1は、角度閾値θ0に対し、10%以上20%以下、大きい値(数値範囲が拡張されたもの)であることが好ましい。また、注視判定部220は、再度算出した角度θが、更新角度閾値θ1より大きい(又は、更新角度閾値θ1の範囲外である)と判定した場合は、更新角度閾値θ1を、更新角度閾値θ2にさらに更新し、次に算出した角度θが、更新角度閾値θ2以下であるか(更新角度閾値θ2の範囲内であるか)を判定してもよい。更新角度閾値θ2の更新角度閾値θ1に対する拡張割合は、例えば、更新角度閾値θ1の角度閾値θ0に対する拡張割合と同じである。また、更新角度閾値θ1の角度閾値θ0に対する拡張割合は、更新距離閾値r1の距離閾値r0に対する数値範囲の拡張割合よりも、小さいことが好ましい。角度θは、距離rよりも、目標位置を注視しているかの判断に、重要となる場合がある。従って、角度閾値θ0の拡張割合を距離閾値r0の拡張割合より小さくすることで、判定基準が緩和され過ぎることを抑制して、キャリブレーションの精度が低下してしまうことを抑制することができる。
このように、本実施形態では、指標値が閾値の範囲外にあって被験者が目標位置を注視していないと判定した場合に、数値範囲が大きくなるように閾値を更新し、判定基準を緩和している。ただし、注視判定部220は、指標値が更新した閾値の範囲内にあるかを判断することで、目標位置を注視しているかを再度判定するものであれば、判定基準を緩和することに限られない。例えば、注視判定部220は、指標値が閾値の範囲内にあって被験者が目標位置を注視していると判定した場合に、数値範囲が小さくなるように閾値を更新し、判定基準を厳しくしてもよい。そして、注視判定部220は、指標値が更新した閾値(数値範囲が狭くなった閾値)の範囲内であるかを再度判定してもよい。注視判定部220は、指標値が更新した閾値(数値範囲が狭くなった閾値)の範囲内である場合、更に数値範囲が狭くなるように閾値を更新し、判定を続ける。注視判定部220は、指標値が更新した閾値(数値範囲が狭くなった閾値)の範囲外であると判定した時点で、その判定の直前の判定に使用されたデータを、キャリブレーション用のデータとする。これにより、注視判定部220は、キャリブレーションの精度をさらに向上させることができる。
以上説明した第2実施形態における処理を、フローチャートで説明する。最初に、第2実施形態に係る第1キャリブレーション処理を説明する。図15は、第2実施形態に係る第1キャリブレーション処理の一例を説明するためのフローチャートである。図15に示すように、第2実施形態に係る視線検出装置100は、第1実施形態と同様に(図10参照)、ステップS101からステップS107を実行して、瞳孔中心112Cと角膜反射中心113Cとの位置を算出する。
次に、注視判定部220は、距離閾値r0及び角度閾値θ0を設定した後、注視判定処理を所定回数実施しているか、又は、距離閾値r0及び角度閾値θ0を設定した後、所定時間が経過しているかを判断する(ステップS120A)。所定回数は、例えば1回であり、所定時間は、注視判定処理を1回実行する程度の時間である。すなわち、注視判定部220は、これまでに注視判定処理を行っているかを判断する。
注視判定処理を所定回数実施していない、又は、所定時間が経過していないと判断した場合(ステップS120A;No)、ステップS108に進み、更新前の距離閾値r0及び角度閾値θ0を用いて、注視判定処理を実行する。すなわち、この場合、注視判定部220は、注視判定処理をまだ行っていないと判断して、最初の注視判定処理を実行する。ステップS108以降の処理は、第1実施形態と同様である。ただし、第2実施形態においては、ステップS109で距離rが距離閾値r0(又は更新した距離閾値)の範囲内に無いと判断された場合(ステップS109;No)、及び、ステップS111で角度θが角度閾値θ0(又は更新した角度閾値)以下でないと判断された場合(ステップS111;No)においては、ステップS101に戻る代わりに、ステップS120Aに戻ってもよい。この場合、同じデータに対し、更新した閾値で再判定を行うことができ、キャリブレーションに要する時間を更に削減することができる。
一方、注視判定処理を所定回数実施している、又は、所定時間が経過していると判断した場合(ステップS120A;Yes)、注視判定部220は、距離閾値r0及び角度閾値θ0を更新可能であるかを判断する(ステップS122A)。上述のように、距離閾値r0及び角度閾値θ0の更新の上限数は、定められている。注視判定部220は、距離閾値r0及び角度閾値θ0を上限まで更新していない場合は、距離閾値r0及び角度閾値θ0を更新可能であると判断し、上限まで更新している場合は、更新可能でないと判断する。
距離閾値r0及び角度閾値θ0を更新可能でないと判断した場合(ステップS122A;No)、注視判定部220は、エラーであるとして、本処理を終了する。この場合、例えば、操作者や被験者に、キャリブレーションが適切に出来ない旨の、エラーメッセージなどを通知してもよい。
一方、距離閾値r0及び角度閾値θ0を更新可能であると判断した場合(ステップS122A;Yes)、注視判定部220は、距離閾値r0及び角度閾値θ0を更新して(ステップS124A)、ステップS108に進み、更新した距離閾値r0及び角度閾値θ0で、注視判定処理を再度実行する。ステップS116の終了により、本処理は終了する。
次に、第2実施形態に係る第2キャリブレーション処理を説明する。図16は、第2実施形態に係る第2キャリブレーション処理の一例を説明するためのフローチャートである。図16に示すように、第2実施形態に係る視線検出装置100は、第1実施形態と同様に(図14参照)、ステップS301からステップS307を実行して、瞳孔中心112Cと角膜反射中心113Cとの位置を算出する。
次に、注視判定部220は、距離閾値r0及び角度閾値θ0を設定した後、注視判定処理を所定回数実施しているか、又は、距離閾値r0及び角度閾値θ0を設定した後、所定時間が経過しているかを判断する(ステップS320A)。注視判定部220は、これまでに注視判定処理を行っているかを判断する。
注視判定処理を所定回数実施していない、又は、所定時間が経過していないと判断した場合(ステップS320A;No)、ステップS308に進み、更新前の距離閾値r0及び角度閾値θ0を用いて、注視判定処理を実行する。すなわち、この場合、注視判定部220は、注視判定処理をまだ行っていないと判断して、最初の注視判定処理を実行する。ステップS308以降の処理は、第1実施形態と同様である。ただし、第2実施形態においては、ステップS309で距離rが距離閾値r0(又は更新した距離閾値)の範囲内に無いと判断された場合(ステップS309;No)、及び、ステップS311で角度θが角度閾値θ0(又は更新した角度閾値)以下でないと判断された場合(ステップS311;No)においては、ステップS301に戻る代わりに、ステップS320Aに戻ってもよい。この場合、同じデータに対し、更新した閾値で再判定を行うことができ、キャリブレーションに要する時間を更に削減することができる。
一方、注視判定処理を所定回数実施している、又は、所定時間が経過していると判断した場合(ステップS320A;Yes)、注視判定部220は、距離閾値r0及び角度閾値θ0を更新可能であるかを判断する(ステップS322A)。注視判定部220は、距離閾値r0及び角度閾値θ0を上限まで更新していない場合は、距離閾値r0及び角度閾値θ0を更新可能であると判断し、上限まで更新している場合は、更新可能でないと判断する。
距離閾値r0及び角度閾値θ0を更新可能でないと判断した場合(ステップS322A;No)、注視判定部220は、エラーであるとして、本処理を終了する。
一方、距離閾値r0及び角度閾値θ0を更新可能であると判断した場合(ステップS322A;Yes)、注視判定部220は、距離閾値r0及び角度閾値θ0を更新して(ステップS324A)、ステップS308に進み、更新した距離閾値r0及び角度閾値θ0で、注視判定処理を再度実行する。ステップS315の終了により、本処理は終了する。このように、ステップS320AからステップS324Aの処理は、図15に示すステップS120AからステップS124Aと同様である。
以上説明したように、第2実施形態に係る注視判定部220は、被験者が目標位置を注視しているかを判定した後に閾値を切り替えて、指標値が、切り替えた閾値の範囲内にあるかを判断することで、被験者が目標位置を注視しているかを再度判定する。第2実施形態に係る視線検出装置100は、これにより、キャリブレーションの成功率が低くなりすぎることを抑制したり、キャリブレーションの精度低下をより好適に抑制したりすることができる。
以上、本発明の実施形態を説明したが、これら実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。