以下に、本発明にかかる角膜反射位置検出装置、視線検出装置及び角膜反射位置検出方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、以下では、視線検出結果を用いて発達障がいなどの評価を行う評価装置に視線検出装置を用いた例を説明する。適用可能な装置は評価装置に限られるものではない。
上記のように、一般的に行われている注視点検出では、個人差および環境等の影響により、常に注視点が取得可能な状態であるとは限らない。本実施形態の評価装置は、モニタ画面に対する被験者の注視点を検出する装置であって、被験者に見せるモニタの画面の一部に、注視点の検出状況を示す情報(状況情報)を被験者に気付かれにくい形状で表示する。これにより、第三者がリアルタイムに被験者の注視点の検出状況を把握することが可能になり、注視点測定全体の効率を向上させることができる。
また、本実施形態の視線検出装置(評価装置)は、2ヵ所に設置された照明部を用いて視線を検出する。また、本実施形態の視線検出装置(評価装置)は、視線検出前に被験者に1点を注視させて測定した結果を用いて、角膜曲率中心位置を高精度に算出する。
なお、照明部とは、光源を含み、被験者の眼球に光を照射可能な要素である。光源とは、例えばLED(Light Emitting Diode)などの光を発生する素子である。光源は、1個のLEDから構成されてもよいし、複数のLEDを組み合わせて1ヵ所に配置することにより構成されてもよい。以下では、このように照明部を表す用語として「光源」を用いる場合がある。
視点検出を精度よく行うためには、瞳孔位置を正しく検出できることが重要となっている。近赤外の光源を点灯させカメラで撮影した場合、カメラと光源の距離が一定以上離れていると、瞳孔は他の部分より暗くなることがわかっている。この特徴を用いて瞳孔位置が検出される。
本実施形態では、2台のカメラに対して、光源をそれぞれのカメラの外側に2ヶ所配置する。そして、これらの2つの光源を相互に異なるタイミングで点灯させ、点灯している光源からの距離が長い方(遠い方)のカメラで撮影する。これにより、瞳孔をより暗く撮影し、瞳孔と他の部分とを、より高精度に区別することが可能となる。
この場合、点灯させる光源が異なるため、通常のステレオ方式による三次元計測を単純に適用することができない。すなわち、視点を求める際の光源と角膜反射を結ぶ直線を世界座標で算出することができない。そこで本実施形態では、2つのタイミングでの、撮像に用いるカメラ相互の位置関係、および、点灯させる光源相互の位置関係を、仮想的な光源の位置(仮想光源位置)に対してそれぞれ対称とする。そして、2つの光源それぞれの点灯時に得られる2つの座標値を、左カメラによる座標値および右カメラによる座標値として世界座標に変換する。これにより、2つの光源それぞれの点灯時に得られる角膜反射位置を用いて、仮想光源と角膜反射を結ぶ直線を世界座標で算出すること、および、この直線に基づき視点を算出することが可能となる。
図1は、1つの光源を使用した場合の被験者の目11の様子を示す図である。図1に示すように、虹彩12と瞳孔13との暗さの差が十分ではなく、区別が困難となる。図2は、2つの光源を使用した場合の被験者の目21の様子を示す図である。図2に示すように、虹彩22と瞳孔23との暗さの差は、図1と比較して大きくなっている。
図3および4は、本実施形態の表示部、ステレオカメラ、赤外線光源および被験者の配置の一例を示す図である。
図3に示すように、本実施形態の評価装置は、表示部101と、ステレオカメラを構成する右カメラ102a、左カメラ102bと、LED光源103a、103bと、を含む。右カメラ102a、左カメラ102bは、表示部101の下に配置される。LED光源103a、103bは、右カメラ102a、左カメラ102bそれぞれの外側の位置に配置される。LED光源103a、103bは、例えば波長850nmの近赤外線を照射する光源である。図3では、9個のLEDによりLED光源103a、103b(照明部)を構成する例が示されている。なお、右カメラ102a、左カメラ102bは、波長850nmの近赤外光を透過できるレンズを使用する。なお、LED光源103a、103bと、右カメラ102a、左カメラ102bとの位置を逆にして、LED光源103a、103bを、右カメラ102a、左カメラ102bそれぞれの内側の位置に配置されていてもよい。
図4に示すように、LED光源103a、103bは、被験者の眼球111に向かって近赤外光を照射する。LED光源103aを照射したときに左カメラ102bで撮影を行い、LED光源103bを照射したときに右カメラ102aで撮影を行う。右カメラ102aおよび左カメラ102bと、LED光源103a、103bとの位置関係を適切に設定することにより、撮影される画像では、瞳孔112が低輝度で反射して暗くなり、眼球111内に虚像として生じる角膜反射113が高輝度で反射して明るくなる。従って、瞳孔112および角膜反射113の画像上の位置を2台のカメラ(右カメラ102a、左カメラ102b)それぞれで取得することができる。
さらに2台のカメラにより得られる瞳孔112および角膜反射113の位置から、瞳孔112および角膜反射113の位置の三次元世界座標値を算出する。本実施形態では、三次元世界座標として、表示部101の画面の中央位置を原点として、上下をY座標(上が+)、横をX座標(向かって右が+)、奥行きをZ座標(手前が+)としている。
図5は、評価装置100の機能の概要を示す図である。本実施形態において、評価装置100は、例えば被験者の眼球の角膜反射点の位置を検出する角膜反射位置検出装置、又は被験者の視線を検出する視線検出装置として用いられる。以下の説明においては、評価装置100を適宜、角膜反射位置検出装置100、又は視線検出装置100と称する場合がある。図5では、図3および4に示した構成の一部と、この構成の駆動などに用いられる構成を示している。図5に示すように、評価装置100は、右カメラ102aと、左カメラ102bと、左カメラ102b用のLED光源103aと、右カメラ102a用のLED光源103bと、スピーカ205と、駆動・IF(interface)部313と、制御部300と、記憶部150と、表示部101と、を含む。図5において、表示画面201は、右カメラ102aおよび左カメラ102bとの位置関係を分かりやすく示しているが、表示画面201は表示部101において表示される画面である。なお、駆動部とIF部は一体でもよいし、別体でもよい。
スピーカ205は、キャリブレーション時などに、被験者に注意を促すための音声などを出力する音声出力部として機能する。
駆動・IF部313は、ステレオカメラに含まれる各部を駆動する。また、駆動・IF部313は、ステレオカメラに含まれる各部と、制御部300とのインタフェースとなる。
制御部300は、例えば、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、ネットワークに接続して通信を行う通信I/Fと、各部を接続するバスを備えているコンピュータなどにより実現できる。
記憶部150は、制御プログラム、測定結果、評価結果など各種情報を記憶する。記憶部150は、例えば、表示部101に表示する画像等を記憶する。表示部101は、評価のための対象画像等、各種情報を表示する。
図6は、図5に示す各部の詳細な機能の一例を示すブロック図である。図6に示すように、制御部300には、表示部101と、駆動・IF部313が接続される。駆動・IF部313は、カメラIF314、315と、LED駆動制御部316と、スピーカ駆動部322と、を備える。
駆動・IF部313には、カメラIF314、315を介して、それぞれ、右カメラ102a、左カメラ102bが接続される。駆動・IF部313がこれらのカメラを駆動することにより、被験者を撮像する。右カメラ102aからはフレーム同期信号が出力される。フレーム同期信号は、左カメラ102bとLED駆動制御部316とに入力される。これにより、LED光源103a、103bを発光させ、それに対応して左右カメラによる画像を取り込んでいる。
スピーカ駆動部322は、スピーカ205を駆動する。なお、評価装置100が、印刷部としてのプリンタと接続するためのインタフェース(プリンタIF)を備えてもよい。また、プリンタを評価装置100の内部に備えるように構成してもよい。
制御部300は、評価装置100全体を制御する。制御部300は、点灯制御部351と、位置検出部352と、曲率中心算出部353と、視線検出部354と、視点検出部355と、出力制御部356と、評価部357と、判定部358と、を備えている。なお、視線検出装置としては、少なくとも点灯制御部351、位置検出部352、曲率中心算出部353、視線検出部354、および、判定部358が備えられていればよい。また、角膜反射位置検出装置としては、少なくとも点灯制御部351と、位置検出部352が備えられていればよい。
制御部300に含まれる各要素(点灯制御部351、位置検出部352、曲率中心算出部353、視線検出部354、視点検出部355、出力制御部356、評価部357、および、判定部358)は、ソフトウェア(プログラム)で実現してもよいし、ハードウェア回路で実現してもよいし、ソフトウェアとハードウェア回路とを併用して実現してもよい。
プログラムで実現する場合、当該プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
点灯制御部351は、LED駆動制御部316を用いて、LED光源103a、103bの点灯を制御する。例えば点灯制御部351は、LED光源103a、103bを、相互に異なるタイミングで点灯するように制御する。タイミングの差(時間)は、例えば、被験者の視線の移動等による視線検出結果への影響が生じない時間として予め定められた時間とすればよい。
位置検出部(瞳孔検出部、角膜反射検出部)352は、ステレオカメラにより撮像された眼球の画像から、瞳孔を示す瞳孔領域、および、角膜反射を示す角膜反射領域を検出する。また位置検出部352は、瞳孔領域に基づき、瞳孔の中心を示す瞳孔中心の位置を算出する。例えば位置検出部352は、瞳孔領域の輪郭上の複数の点を選択し、選択した複数の点を通る円の中心を、瞳孔中心の位置として算出する。同様にして位置検出部352は、角膜反射領域に基づき、角膜反射の中心を示す角膜反射中心の位置を算出する。位置検出部352は、瞳孔に関する検出を行う部分と、角膜反射に関する検出を行う部分とが別個に設けられてもよい。
位置検出部352は、眼球の画像において、所定の輝度閾値以上の輝度を有する高輝度領域が存在するか否かを、瞳孔の中心位置を基準とした検出対象領域を段階的に拡大することで検出する。眼球の画像は、例えばマトリクス状に配置された複数の画素によって構成される。位置検出部352は、高輝度領域が検出された場合、高輝度領域の面積を算出する。位置検出部352は、算出した高輝度領域の面積が所定の面積閾値以下の場合に、高輝度領域が角膜反射領域であると判定する。
位置検出部352は、高輝度領域が検出対象領域の外側に連続して存在する場合、検出対象領域の外側に存在する部分を含めた高輝度領域の面積を算出する。位置検出部352は、検出対象領域の外側に連続して存在する高輝度領域の面積を算出した後、検出対象領域を拡大した場合、拡大前の検出対象領域の検出時に輝度閾値以上の輝度を有するか否かを判定した領域については、当該判定を行わない。
位置検出部352は、画素ごとに輝度閾値以上の輝度を有するか否かを判定し、閾値以上の輝度を有すると判定した画素に対して隣り合う画素について連鎖的に輝度閾値以上の輝度を有するか否かの判定を行うことで、高輝度領域の範囲を検出する。位置検出部352は、瞳孔の中心位置を基準として一方向に検出対象領域を拡大する。この場合、一方向は、画像の撮像時において被験者の視点から光源位置に向けた方向に対応する方向である。
判定部358は、瞳孔領域の検出状況を判定する。例えば判定部358は、瞳孔領域の輝度および面積などに基づいて、瞳孔領域が正常に検出できているかを判定する。判定部358が、瞳孔領域の真円度に基づいて、瞳孔領域が正常に検出できているかを判定してもよい。
なお、判定部358は、瞳孔領域の検出の精度が高く瞳孔領域の検出状況を考慮する必要がないような場合であれば、当該判定を行わなくてもよい。
曲率中心算出部353は、仮想光源位置と角膜反射中心とを結ぶ直線から、角膜曲率中心を算出する。例えば、曲率中心算出部353は、この直線上で、角膜反射中心からの距離が所定値となる位置を、角膜曲率中心として算出する。所定値は、一般的な角膜の曲率半径値などから事前に定められた値を用いることができる。
角膜の曲率半径値には個人差が生じうるため、事前に定められた値を用いて角膜曲率中心を算出すると誤差が大きくなる可能性がある。従って、曲率中心算出部353が、個人差を考慮して角膜曲率中心を算出してもよい。この場合、曲率中心算出部353は、まず目標位置を被験者に注視させたときに算出された瞳孔中心および角膜反射中心を用いて、瞳孔中心と目標位置とを結ぶ直線と、角膜反射中心と仮想光源位置とを結ぶ直線と、の交点を算出する。そして曲率中心算出部353は、瞳孔中心と算出した交点との距離を算出し、例えば記憶部150に記憶する。
目標位置は、予め定められ、三次元世界座標値が算出できる位置であればよい。例えば、表示画面201の中央位置(三次元世界座標の原点)を目標位置とすることができる。この場合、例えば出力制御部356が、表示画面201上の目標位置(中央)に、被験者に注視させる画像(目標画像)等を表示する。これにより、被験者に目標位置を注視させることができる。
目標画像は、被験者を注目させることができる画像であればどのような画像であってもよい。例えば、輝度や色などの表示態様が変化する画像、および、表示態様が他の領域と異なる画像などを目標画像として用いることができる。
なお、目標位置は表示画面201の中央に限られるものではなく、任意の位置でよい。表示画面201の中央を目標位置とすれば、表示画面201の任意の端部との距離が最小になる。このため、例えば視線検出時の測定誤差をより小さくすることが可能となる。
距離の算出までの処理は、例えば実際の視線検出を開始するまでに事前に実行しておく。実際の視線検出時には、曲率中心算出部353は、仮想光源位置と角膜反射中心とを結ぶ直線上で、瞳孔中心からの距離が、事前に算出した距離となる位置を、角膜曲率中心として算出する。曲率中心算出部353が、仮想光源位置と、表示部上の目標画像を示す所定の位置と、瞳孔中心の位置と、角膜反射中心の位置と、から角膜曲率中心を算出する算出部に相当する。
視線検出部354は、瞳孔中心と角膜曲率中心とから被験者の視線を検出する。例えば視線検出部354は、角膜曲率中心から瞳孔中心へ向かう方向を被験者の視線方向として検出する。
視点検出部355は、検出された視線方向を用いて被験者の視点を検出する。視点検出部355は、例えば、表示画面201で被験者が注視する点である視点(注視点)を検出する。視点検出部355は、例えば図4のような三次元世界座標系で表される視線ベクトルとXY平面との交点を、被験者の注視点として検出する。
出力制御部356は、表示部101およびスピーカ205などに対する各種情報の出力を制御する。例えば、出力制御部356は、表示部101上の目標位置に目標画像を出力させる。また、出力制御部356は、評価画像、および、評価部357による評価結果などの表示部101に対する出力を制御する。
評価画像は、視線(視点)検出結果に基づく評価処理に応じた画像であればよい。例えば発達障がいを評価する場合であれば、発達障がいの被験者が好む画像(幾何学模様映像など)と、それ以外の画像(人物映像など)と、を含む評価画像を用いてもよい。
また出力制御部356は、瞳孔領域および角膜反射領域のうち少なくとも一方の検出状況を示す状況情報(インジケータ)を表示部101に表示させる。状況情報の表示方法の詳細は後述する。
評価部357は、評価画像と、視点検出部355により検出された注視点とに基づく評価処理を行う。例えば発達障がいを評価する場合であれば、評価部357は、評価画像と注視点とを解析し、発達障がいの被験者が好む画像を注視したか否かを評価する。
図7は、1つの光源を用いると仮定した場合の処理の概要を説明する図である。図3〜図6で説明した要素については同一の符号を付し説明を省略する。図7の例では、2つのLED光源103a、103bの代わりに、1つのLED光源203が用いられる。
瞳孔中心407および角膜反射中心408は、それぞれ、1つのLED光源203を点灯させた際に検出される瞳孔の中心、および、角膜反射点の中心を表している。角膜曲率半径409は、角膜表面から角膜曲率中心410までの距離を表す。LED光源203は、ここでは1個のLEDとしているが、数個の小さいLEDを組み合わせて1ヵ所に配置されたものであっても構わない。
図8は、本実施形態の評価装置100により実行される処理の概要を説明する図である。図3〜図6で説明した要素については同一の符号を付し説明を省略する。
角膜反射点621は左カメラ102bで撮影したときの画像上の角膜反射点を表す。角膜反射点622は右カメラ102aで撮影したときの画像上の角膜反射点を表す。本実施形態では、右カメラ102aと右カメラ用のLED光源103b、および、左カメラ102bと左カメラ用のLED光源103aは、例えば右カメラ102aと左カメラ102bの中間位置を通る直線に対して左右対称の位置関係にある。このため、右カメラ102aと左カメラ102bの中間位置(仮想光源位置)に仮想光源303があるとみなすことができる。角膜反射点624は、仮想光源303に対応する角膜反射点を表す。角膜反射点621の座標値と角膜反射点622の座標値を、左右カメラの座標値を三次元世界座標に変換する変換パラメータを用いて変換することにより、角膜反射点624の世界座標値が算出できる。仮想光源303と角膜反射点624を結ぶ直線523上に角膜の曲率中心505が存在する。従って、図7で表した光源が1ヵ所の視線検出方法と同等の方法で視点検出が可能である。
なお右カメラ102aと左カメラ102bとの位置関係、および、LED光源103aとLED光源103bとの位置関係は、上述の位置関係に限られるものではない。例えば同一の直線に対して、それぞれの位置関係が左右対称となる関係であってもよいし、右カメラ102aと左カメラ102bと、LED光源103aとLED光源103bとは同一直線上になくてもよい。
図9は、視点検出(視線検出)を行う前に、角膜曲率中心位置と、瞳孔中心位置と角膜曲率中心位置との距離を算出する算出処理を説明するための図である。図3〜図6で説明した要素については同一の符号を付し説明を省略する。
目標位置605は、表示部101上の一点に目標画像等を出して、被験者に見つめさせるための位置である。本実施形態では表示部101の画面の中央位置としている。直線613は、仮想光源303と角膜反射中心612とを結ぶ直線である。直線614は、被験者が見つめる目標位置605(注視点)と瞳孔中心611とを結ぶ直線である。角膜曲率中心615は、直線613と直線614との交点である。曲率中心算出部353は、瞳孔中心611と角膜曲率中心615との距離616を算出して記憶しておく。
図10は、本実施形態の算出処理の一例を示すフローチャートである。
まず出力制御部356は、表示部101の画面上の1点に目標画像を再生し(ステップS101)、被験者にその1点を注視させる。次に、点灯制御部351は、LED駆動制御部316を用いてLED光源103a、103bのうち一方を被験者の目に向けて点灯させる(ステップS102)。制御部300は、左右カメラ(右カメラ102a、左カメラ102b)のうち点灯したLED光源からの距離が長い方のカメラで被験者の目を撮像する(ステップS103)。次に、点灯制御部351は、LED光源103a、103bのうち他方を被験者の目に向けて点灯させる(ステップS104)。制御部300は、左右カメラのうち点灯したLED光源からの距離が長い方のカメラで被験者の目を撮像する(ステップS105)。
なお、点灯したLED光源からの距離が長いカメラ以外のカメラによる撮像を停止しなくてもよい。すなわち、少なくとも点灯したLED光源からの距離が長い方のカメラで被験者の目を撮像し、撮像した画像が座標算出等に利用可能となっていればよい。
LED光源103aまたはLED光源103bの照射により、瞳孔部分(瞳孔領域)は暗い部分(暗瞳孔)として検出される。またLED照射の反射として、角膜反射の虚像が発生し、明るい部分として角膜反射点(角膜反射中心)が検出される。すなわち、位置検出部352は、撮像された画像から瞳孔部分を検出し、瞳孔中心の位置を示す座標を算出する。位置検出部352は、例えば目を含む一定領域の中で最も暗い部分を含む所定の明るさ以下の領域を瞳孔部分として検出し、最も明るい部分を含む所定の明るさ以上の領域を角膜反射として検出する。また、位置検出部352は、撮像された画像から角膜反射部分(角膜反射領域)を検出し、角膜反射中心の位置を示す座標を算出する。なお、位置検出部352は、左右カメラで取得した2つの画像それぞれに対して、各座標値を算出する(ステップS106)。
なお、左右カメラは、三次元世界座標を取得するために、事前にステレオ較正法によるカメラ較正が行われており、変換パラメータが算出されている。ステレオ較正法は、例えば、「R. Y. Tsai, "A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses, " IEEE Journal of Robotics and Automation,vol.RA-3,no.4,1987.」において開示される方法等、従来から用いられているあらゆる方法を適用できる。
位置検出部352は、この変換パラメータを使用して、左右カメラの座標から、瞳孔中心と角膜反射中心の三次元世界座標に変換を行う(ステップS107)。例えば位置検出部352は、LED光源103aが点灯されたときに左カメラ102bにより撮像された画像から得られた座標を左カメラの座標とし、LED光源103bが点灯されたときに右カメラ102aにより撮像された画像から得られた座標を右カメラの座標として、変換パラメータを用いて三次元世界座標への変換を行う。この結果得られる世界座標値は、仮想光源303から光が照射されたと仮定したときに左右カメラで撮像された画像から得られる世界座標値に対応する。曲率中心算出部353は、求めた角膜反射中心の世界座標と、仮想光源303の中心位置の世界座標とを結ぶ直線を求める(ステップS108)。次に、曲率中心算出部353は、表示部101の画面上の1点に表示される目標画像の中心の世界座標と、瞳孔中心の世界座標とを結ぶ直線を算出する(ステップS109)。曲率中心算出部353は、ステップS108で算出した直線とステップS109で算出した直線との交点を求め、この交点を角膜曲率中心とする(ステップS110)。曲率中心算出部353は、このときの瞳孔中心と角膜曲率中心との間の距離を算出して記憶部150などに記憶する(ステップS111)。記憶された距離は、その後の視点(視線)検出時に、角膜曲率中心を算出するために使用される。
算出処理で表示部101上の1点を見つめる際の瞳孔中心と角膜曲率中心との間の距離は、表示部101内の視点を検出する範囲で一定に保たれている。瞳孔中心と角膜曲率中心との間の距離は、目標画像を再生中に算出された値全体の平均から求めてもよいし、再生中に算出された値のうち何回かの値の平均から求めてもよい。
図11は、視点検出を行う際に、事前に求めた瞳孔中心と角膜曲率中心との距離を使用して、補正された角膜曲率中心の位置を算出する方法を示した図である。注視点805は、一般的な曲率半径値を用いて算出した角膜曲率中心から求めた注視点を表す。注視点806は、事前に求めた距離を用いて算出した角膜曲率中心から求めた注視点を表す。
瞳孔中心811および角膜反射中心812は、それぞれ、視点検出時に算出された瞳孔中心の位置、および、角膜反射中心の位置を示す。直線813は、仮想光源303と角膜反射中心812とを結ぶ直線である。角膜曲率中心814は、一般的な曲率半径値から算出した角膜曲率中心の位置である。距離815は、事前の算出処理により算出した瞳孔中心と角膜曲率中心との距離である。角膜曲率中心816は、事前に求めた距離を用いて算出した角膜曲率中心の位置である。角膜曲率中心816は、角膜曲率中心が直線813上に存在すること、および、瞳孔中心と角膜曲率中心との距離が距離815であることから求められる。これにより一般的な曲率半径値を用いる場合に算出される視線817は、視線818に補正される。また、表示部101の画面上の注視点は、注視点805から注視点806に補正される。
図12は、本実施形態の視線検出処理の一例を示すフローチャートである。例えば、評価画像を用いた評価処理の中で視線を検出する処理として、図12の視線検出処理を実行することができる。評価処理では、図12の各ステップ以外に、評価画像を表示する処理、および、注視点の検出結果を用いた評価部357による評価処理などが実行される。
ステップS201〜ステップS207は、図10のステップS102〜ステップS108と同様であるため説明を省略する。
曲率中心算出部353は、ステップS207で算出した直線上であって、瞳孔中心からの距離が、事前の算出処理によって求めた距離と等しい位置を角膜曲率中心として算出する(ステップS208)。
視線検出部354は、瞳孔中心と角膜曲率中心とを結ぶベクトル(視線ベクトル)を求める(ステップS209)。このベクトルが、被験者が見ている視線方向を示している。視点検出部355は、この視線方向と表示部101の画面との交点の三次元世界座標値を算出する(ステップS210)。この値が、被験者が注視する表示部101上の1点を世界座標で表した座標値である。視点検出部355は、求めた三次元世界座標値を、表示部101の二次元座標系で表される座標値(x,y)に変換する(ステップS211)。これにより、被験者が見つめる表示部101上の視点(注視点)を算出することができる。
[角膜反射位置検出方法]
次に、本実施形態に係る角膜反射位置検出方法について説明する。本実施形態において、評価装置100は、例えば被験者の眼球の角膜反射点の位置を検出する角膜反射位置検出装置、又は被験者の視線を検出する視線検出装置として用いられる。以下の説明においては、評価装置100を適宜、角膜反射位置検出装置100、又は視線検出装置100と称する場合がある。
本実施形態に係る角膜反射位置検出方法では、眼鏡を着用した被験者の角膜反射点を検出する。図13及び図14は、眼鏡を着用した被験者の角膜反射点を検出する場合の一例を示す図である。図13及び図14並びに以降の説明では、被験者の右目を例に挙げて示しているが、左目を検出する場合についても同様の説明が可能である。
図13に示すように、眼鏡レンズ701Aを有する眼鏡を着用した被験者の眼球111に向けてLED光源103bから赤外光を照射した場合、角膜反射点921及び眼鏡レンズ701A(701)における眼鏡反射点721が左カメラ102bによって撮像される。同様に、図14に示すように、眼鏡レンズ701Bを有する眼鏡を着用した被験者の眼球111に向けてLED光源103bから赤外光を照射した場合、角膜反射点(角膜反射領域)921及び眼鏡レンズ701B(701)における眼鏡反射点721が左カメラ102bによって撮像される。
図13と図14とでは、眼鏡レンズ701(701A、701B)の曲率が異なっている場合を示している。被験者が眼鏡をかけている場合、眼鏡レンズ701の曲率や傾き、寸法等により眼鏡反射点721がランダムな位置に形成される。これに対して、角膜反射点921は、瞳孔中心に近接した位置に存在する。また、図13及び図14に示すように、眼鏡レンズ701は、眼球よりも曲率が大きくなっている。このため、眼鏡反射点721は、角膜反射点921よりも面積が大きくなる。なお、眼球111には、図13及び図14に示すように、角膜の曲率が変化する部位である曲率変化部115が存在する。曲率変化部115よりも外側に角膜反射点921が存在する場合には、視点が正確に算出できないことになる。
図15は、本実施形態に係る角膜反射位置検出方法の一例を示すフローチャートである。図16から図18は、角膜反射位置検出方法の一ステップを説明するための図である。以下の例では、2つのLED光源103a、103bを用いる場合を例に挙げて説明するが、1つのLED光源203を用いる場合も同様の説明が可能である。また、以下の角膜反射位置検出方法は、両目に対して行うことができる。以下の説明では、右目に対して行う場合を例に挙げているが、左目に対して行う場合についても同様の説明が可能である。なお、左右の一方の目のみに対して行ってもよい。
まず、LED光源103a又は103bから被験者の眼球111に向けて赤外光を照射し、右カメラ102a又は左カメラ102bによって被験者の眼球111を撮像する(ステップS601)。図16は、ステップS601において撮像される画像Imの一例を示す図である。図16に示す画像Imは、例えばマトリクス状に配置された複数の画素によって構成される。画像Imには、眼鏡を着用した被験者の左右の眼球111、瞳孔901及び眼鏡レンズ701(701L、701R)が含まれている。また、画像Imには、複数の輝点50が含まれている。複数の輝点50は、画像Imにおける眼球111の範囲内に配置されている。この状態では、当該輝点50が角膜反射点921であるか、眼鏡反射点721であるかを判別することが困難である。そこで、本実施形態では、以下の工程を行うことにより、角膜反射点921と眼鏡反射点721とを判別し、角膜反射点921を検出する。
被験者の眼球111を撮像した後、位置検出部352は、瞳孔中心位置を算出する(ステップS602)。図17は、画像Imのうち右目の眼鏡レンズ701Rの範囲を拡大して示す図である。ステップS602において、位置検出部352は、図17に示すように、例えば瞳孔901の輪郭901a上の複数の点901bを選択し、選択した複数の点901bを通る円の中心を、瞳孔中心位置911として算出する。瞳孔901は、光を殆ど反射しないため、周囲の環境によらず、虹彩又は瞼などに比較して輝度が低くなる傾向がある。したがって、位置検出部352は、例えば輝度が低い画素を検出することで瞳孔901を検出可能である。なお、画像Imの拡大図には、複数の輝点50(51、52、53)が含まれている。
瞳孔中心位置911が算出された後、位置検出部352は、角膜反射点921を検出するための検出対象領域を設定する(ステップS603)。図18は、画像Imのうち右目の瞳孔901の範囲を拡大して示す図である。ステップS603において、位置検出部352は、図18に示すように、瞳孔中心位置911を基準として検出対象領域Rを設定する。位置検出部352は、まず、画像Imのうち、瞳孔中心位置911を中心とし、所定の径を有する円の内側の領域を第1検出対象領域R1として設定する。位置検出部352は、第1検出対象領域R1の径(面積)を設定する場合、例えば予め設定された基準値を用いて行う。また、位置検出部352は、面積閾値に相当する面積を有する円の直径を第1検出対象領域R1の径と設定してもよい。第1検出対象領域R1には、当該円の内側にマトリクス状に配列される複数の画素が含まれる。
検出対象領域R(第1検出対象領域R1)を設定した後、位置検出部352は、検出対象領域R内に角膜反射点921が存在するか否かを判定する(ステップS604)。図19は、図15のステップS604における判定処理の一例を示すフローチャートである。図19に示すように、位置検出部352は、検出対象領域R内の画素(以下、「検索対象画素」と表記する)の輝度が所定の輝度閾値以上か否かを判定する。輝度閾値については、過去の検出結果、実験値、シミュレーション値等を用いて、予め設定しておくことができる。例えば、画像Imにおいて輝点50となる領域の輝度を予め測定しておき、当該測定値を基準として輝度閾値を設定することができる。位置検出部352は、個々の検索対象画素に対して上記判定を行う。
位置検出部352は、検索対象画素の輝度が輝度閾値以上であると判定した場合(ステップS901のYes)、当該検索対象画素と繋がっている画素であって輝度閾値以上の輝度を有する画素が存在するか否かを検出する(ステップS902)。以下、輝度閾値以上の輝度を有する画素を「高輝度画素」と表記する。ステップS902において、位置検出部352は、当該検索対象画素に対して上下方向及び左右方向に隣り合う画素並びに斜め方向に隣り合う画素について、ステップS901と同様の判定を行い、高輝度画素が存在するか否かを検出する。また、位置検出部352は、高輝度画素と判定した画素に対して、上下方向及び左右方向に隣り合う画素並びに斜め方向に隣り合う画素についても、ステップS901と同様の判定処理を行う。この場合、位置検出部352は、既に判定を行った画素については、判定処理を省略する。したがって、ステップS902において、位置検出部352は、高輝度画素に対して上下方向及び左右方向に隣り合う画素並びに斜め方向に隣り合う画素について連鎖的に判定を行うことで、高輝度画素が存在する範囲を検出する。ステップS902において、位置検出部352は、高輝度画素に対して隣り合う画素が検出対象領域Rの外側に配置される場合、当該検出対象領域Rの外側の画素についても高輝度画素か否かの判定を行う。このように高輝度画素の集合として検出される領域(高輝度領域)は、例えば画像Imにおいて輝点50となっている領域である。以下、高輝度画素の集合領域である高輝度領域が輝点50であるとして説明する。
高輝度領域の範囲が検出された後、位置検出部352は、検出した高輝度画素の数をカウントすることで、輝点50の面積を算出する(ステップS903)。輝点50の面積を算出した後、位置検出部352は、算出した面積が所定の面積閾値以下であるか否かを判定する(ステップS904)。面積閾値については、過去の検出結果、実験値、シミュレーション値等を用いて、予め設定しておくことができる。例えば、画像Imにおいて角膜反射点921となる領域の面積を求めておき、当該求めた面積を基準として面積閾値を設定することができる。位置検出部352は、算出した面積が面積閾値以下であると判定した場合(ステップS904のYes)、図15に示すステップS605の処理に進む。
一方、位置検出部352は、算出した面積が面積閾値を超えると判定した場合(ステップS904のNo)、また、上記ステップS901において検索対象画素の輝度が輝度閾値以下であると判定した場合(ステップS901のNo)、位置検出部352は、検出対象領域Rのすべての画素について検出を行ったか否かを判定する(ステップS905)。位置検出部352は、検出対象領域Rのすべての画素について検出を行ったと判定した場合(ステップS905のYes)、当該検出対象領域R内には角膜反射点921が存在しないと判定し、図15に示すステップS606の処理に進む。また、位置検出部352は、検出対象領域Rのすべての画素について検出を行っていないと判定した場合(ステップS905のNo)、検出を行っていない画素を次の検索対象として(ステップS906)、ステップS901以降の処理を繰り返し行う。
位置検出部352は、ステップS604の上記処理において、算出した輝点50の面積が面積閾値以下であると判定した場合(ステップS604のYes)、輝点50が角膜反射点921であると判断する(ステップS605)。ステップS605の判断によって角膜反射点921が検出される。したがって、位置検出部352は、角膜反射点921を検出するための処理を終了する。
一方、位置検出部352は、ステップS604の上記処理において、検出対象領域Rのすべての画素について検出を行ったと判定し、当該検出対象領域R内には角膜反射点921が存在しないと判定した場合(ステップS604のNo)、検出対象領域Rを拡大する処理を行う(ステップS606)。
ステップS606において、位置検出部352は、例えば面積閾値に相当する面積を有する円の直径に対応する寸法ずつ、検出対象領域Rを拡大する。なお、位置検出部352は、上記寸法ずつ検出対象領域Rを拡大する処理には限定されず、上記寸法とは異なる拡大幅で検出対象領域Rを拡大してもよい。図18に示す例において、位置検出部352は、検出対象領域Rを第1検出対象領域R1から第2検出対象領域R2に拡大する。位置検出部352は、検出対象領域Rを拡大した後、ステップS604の処理を繰り返し行う。したがって、位置検出部352は、検出対象領域Rを段階的に拡大しつつ、ステップS604の処理を行うことになる。
図18を参照して、検出対象領域Rを段階的に拡大しつつ判定を行う態様を、上記のフローチャートに対応させて具体例に説明する。図18に示すように、位置検出部352は、第1検出対象領域R1について高輝度画素を検出することなく、検出対象領域Rを第2検出対象領域R2に拡大して、ステップS604の処理を再度行う。
位置検出部352は、第2検出対象領域R2に存在する画素に対して輝度閾値以上の輝度を有するか否かの判定を行う(ステップS901)。位置検出部352は、例えば輝点51の第1領域51aを構成する画素について、高輝度画素であると判定する(ステップS901のYes)。この輝点51は、第2検出対象領域R2と、当該第2検出対象領域R2の外側の第3検出対象領域R3との間に跨って配置される。位置検出部352は、第1領域51aを構成する1つの画素を高輝度画素として検出した場合、高輝度画素に隣り合う画素について連鎖的に輝度閾値以上の輝度を有するか否かの判定を行う(ステップS902)。この結果、輝点51の第1領域51aの画素のみならず、当該輝点51のうち第3検出対象領域R3に突出した第2領域51bを構成する画素についても高輝度画素か否かの判定が行われる。したがって、輝点51は、第2領域51bが第3検出対象領域R3に配置されているが、第2検出対象領域R2の検出時において高輝度画素が配置される領域が検出されることになる。
次に、位置検出部352は、高輝度画素の数をカウントすることで輝点51の面積を求め(ステップS903)、求めた輝点51の面積について、所定の面積閾値以下であるか否かを判定する(ステップS904)。図18には、面積閾値に対応する面積を有する円状の閾値領域60が破線で図示されている。なお、この閾値領域60は、実際の画像Imには表示されない。図18に示すように、輝点51の面積は閾値領域60の面積よりも大きい。したがって、位置検出部352は、輝点51の面積が面積閾値よりも大きいと判定する(ステップS904のNo)。その後、位置検出部352は、第2検出対象領域R2のすべての画素について判定を行うが(ステップS905のNo、S906、S905のYes)、高輝度画素を検出することなく、検出対象領域Rを第3検出対象領域R3に拡大して、ステップS604の処理を再度行う。
位置検出部352は、第3検出対象領域R3に存在する画素に対して輝度閾値以上の輝度を有するか否かの判定を行う(ステップS901)。位置検出部352は、例えば輝点52を構成する画素について、高輝度画素であると判定する(ステップS901のYes)。位置検出部352は、輝点52を構成する1つの画素を高輝度画素として検出した場合、高輝度画素に隣り合う画素について連鎖的に輝度閾値以上の輝度を有するか否かの判定を行う(ステップS902)。なお、第3検出対象領域R3には、上記した輝点51の第2領域51bが配置される。この第2領域51bについては、第2検出対象領域R2の検出時に既に判定が行われている。したがって、位置検出部352は、第2領域51bを構成する画素については、輝度閾値以上の輝度を有するか否かの判定を行わない。このように、位置検出部352は、検出対象領域Rを拡大した場合、拡大前の検出対象領域Rの検出時に輝度閾値以上の輝度を有するか否かの判定を既に行った画素については、当該判定を行わないようにすることで、処理時間の短縮化を図っている。
次に、位置検出部352は、高輝度画素の数をカウントすることで輝点52の面積を求め(ステップS903)、求めた輝点52の面積について、所定の面積閾値以下であるか否かを判定する(ステップS904)。図18に示すように、輝点52の面積は閾値領域60の面積よりも小さい。したがって、位置検出部352は、輝点52の面積が面積閾値以内であると判定する(ステップS904のYes)。この場合、位置検出部352は、輝点52が角膜反射点921であると判定し(ステップS605)、処理を終了する。
図18に示すように、第3検出対象領域R3の外側には輝点53が配置されている。一方、第3検出対象領域R3における検出により、角膜反射点921が検出されている。この場合、位置検出部352は、輝点53については判定を行うことなく処理を終了する。このように、角膜反射点921が検出された時点で処理が終了するため、画像Imにおける全ての画素に対して検出を行う必要が無い。なお、輝点53は、瞳孔901の内側に配置される領域53aと、瞳孔901の外側にはみ出した領域53bとを有する。角膜反射点921を構成する輝点(例えば、輝点52)は、瞳孔901の外側にはみ出したり、瞳孔901の外側に存在したりする場合もあり得る。一方、眼球111において曲率変化部115(図13、図14参照)よりも外側に角膜反射点921が存在する場合には、視点が正確に算出できない。したがって、位置検出部352は、例えば画像Imに曲率変化部115が含まれる場合において、曲率変化部115の外側にはみ出した輝点50や、曲率変化部115の外側に存在する輝点50については、検出対象から除外するようにしてもよい。
また、本実施形態では、図3等に示すように、被験者の視点は表示部101に位置する。また、眼球111の画像Imの撮像位置である右カメラ102a、左カメラ102bと、光源位置であるLED光源103a、103bは、表示部101の下方に位置する。したがって、本実施形態において、画像Imの撮像時において被験者の視点から光源位置に向けた方向は、下方向である。被験者の視点と光源位置(LED光源103a、103b)とがこのような位置関係にある場合、角膜反射点921は、瞳孔中心位置911の下方に形成される。つまり、瞳孔中心位置911の上方には角膜反射点921が形成されない。そのため、このような場合、位置検出部352は、瞳孔中心位置911の上方に形成される輝点50については、角膜反射点921ではないと判定することができる。したがって、位置検出部352は、検出対象領域Rを設定する場合、又は検出対象領域Rを拡大する場合、瞳孔中心位置911を基準とした下方向のみに設定又は拡大するようにしてもよい。つまり、図18において瞳孔中心位置911を通過する左右方向の直線Hよりも下方側のみを検出対象領域Rとしてもよい。このように角膜反射点921が検出されないことが明らかな領域を検出対象領域Rから除外することにより、処理時間の短縮化を図ることができる。
以上のように、本実施形態に係る角膜反射位置検出装置100は、被験者の眼球の画像Imから瞳孔中心位置911を検出し、当該画像Imから角膜反射点921を検出する位置検出部352を備え、位置検出部352は、画像Imにおいて輝度閾値以上の輝度を有する高輝度領域(輝点50等)が存在するか否かを、瞳孔中心位置911を基準とした検出対象領域Rを段階的に拡大することで検出し、高輝度領域が検出された場合に高輝度領域が角膜反射点921であると判定する。
また、本実施形態に係る角膜反射位置検出方法は、被験者の眼球の画像Imから瞳孔中心位置911を検出することと、当該画像Imから角膜反射点921を検出することと、を含み、角膜反射点921を検出することは、画像Imにおいて輝度閾値以上の輝度を有する高輝度領域(輝点50等)が存在するか否かを、瞳孔中心位置911を基準とした検出対象領域Rを段階的に拡大することで検出することと、高輝度領域が検出された場合に高輝度領域が角膜反射点921であると判定することと、を含む。
このような角膜反射位置検出装置100及び角膜反射位置検出方法によれば、瞳孔中心位置911を基準とした検出対象領域Rを段階的に拡大しながら輝点50を検出し、当該輝点50が角膜反射点921となる輝点50か否かを判定することができる。これにより、瞳孔中心位置911に近い領域から検出対象領域Rを広げていくため、角膜反射点921となる輝点50を効率的に検出することができる。また、角膜反射点921を検出した場合、他の領域について検出処理を行う必要が無いため、効率的かつ高精度に角膜反射点921を検出することができる。
本実施形態に係る角膜反射位置検出装置100において、位置検出部352は、高輝度領域が検出された場合にさらに高輝度領域の面積を算出し、算出した高輝度領域の面積が面積閾値以下の場合に高輝度領域が角膜反射点921であると判定する。例えば、眼鏡をかけた被験者における眼鏡反射点721は、角膜反射点921よりも面積が大きくなる。したがって、検出された高輝度領域の面積を算出し、算出した高輝度領域の面積が面積閾値以下の場合に当該高輝度領域が角膜反射点921であると判定することにより、角膜反射点921を効率的に検出することができる。
本実施形態に係る角膜反射位置検出装置100において、位置検出部352は、高輝度領域が検出対象領域Rの外側に連続して存在する場合、検出対象領域Rの外側に存在する部分を含めた高輝度領域の面積を算出する。この構成により、高輝度領域の面積を効率的に算出することができる。
本実施形態に係る角膜反射位置検出装置100において、位置検出部352は、検出対象領域Rの外側に連続して存在する高輝度領域の面積を算出した後、検出対象領域Rを拡大した場合、拡大前の検出対象領域Rの検出時に輝度閾値以上の輝度を有するか否かを判定した領域については、当該判定を行わない。この構成により、拡大前の検出対象領域Rの検出時に判定を行った画素について、重ねて判定を行わないようにすることで、処理時間の短縮化を図ることができる。
本実施形態に係る角膜反射位置検出装置100において、画像Imは、マトリクス状に配置された複数の画素を有し、位置検出部352は、画素ごとに輝度閾値以上の輝度を有するか否かを判定し、閾値以上の輝度を有すると判定した画素に対して隣り合う画素について連鎖的に輝度閾値以上の輝度を有するか否かの判定を行うことで、高輝度領域の範囲を検出する。この構成により、効率的に高輝度領域の範囲を検出することができる。
本実施形態に係る角膜反射位置検出装置100において、被験者に向けて赤外光を照射するLED光源103a、103bを備え、位置検出部352は、瞳孔中心位置911を基準として一方向に検出対象領域Rを拡大し、一方向は、画像Imの撮像時において被験者の視点から光源位置に向けた方向に対応する方向である。この構成により、角膜反射点921が検出されないことが明らかな領域を検出対象領域Rから除外することができるため、処理時間の短縮化を図ることができる。
本実施形態に係る視線検出装置は、上記の角膜反射位置検出装置100を備える。これにより、効率的かつ高精度に角膜反射点921を検出することができるため、被験者の視線を効率的かつ高精度に検出することができる。
本発明の技術範囲は上記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更を加えることができる。例えば、上記実施形態において、被験者の眼球を撮像する右カメラ102a及び左カメラ102bが表示部101の下方に配置された構成を例に挙げて説明したが、これに限定されず、右カメラ102a及び左カメラ102bが表示部101の上方に配置されてもよい。この場合、角膜反射点921は、瞳孔中心位置911の上方に検出されることになる。このため、位置検出部352は、検出対象領域Rを瞳孔中心位置911の上方に設定又は拡大させることができる。
また、上記実施形態では、検出対象領域Rを円状の領域の内部として設定する場合を例に挙げて説明したが、これに限定されず、矩形、三角形等の多角形の内部に設定してもよいし、楕円形、長円形等の他の形状の内部に設定してもよい。また、設定した検出対象領域Rを相似形状で拡大させる構成に限定されず、非相似形状又は他の形状となるように拡大させてもよい。