(57)【特許請求の範囲】
【請求項１】
ユーザの眼を照射する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記画像上の前記角膜反射像のサイズを前記距離特徴量として求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
を有する視線検出装置。
【請求項２】
前記距離特徴量抽出部は、前記画像上の前記顔の少なくとも二つの部位の位置を求め、当該少なくとも二つの部位間の間隔を前記距離特徴量として求める、請求項１に記載の視線検出装置。
【請求項３】
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記画像上の前記角膜反射像のサイズを、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量として求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことを含む視線検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、角膜反射像を検出することにより視線方向を検出する視線検出装置及び視線検出方法に関する。
【背景技術】
【０００２】
従来より、ユーザの眼を撮影した画像を解析することにより光源の角膜反射像（プルキンエ像）を検出することで、ユーザの視線方向を検出する視線検出装置が開発されている。
このような視線検出装置では、ユーザが注視する位置を正確に検出するために、ユーザが視線検出装置が搭載された装置を利用する前に、いわゆるキャリブレーション処理が行われる。キャリブレーション処理では、例えば、視線検出装置は、予め指定された複数の方向をユーザが注視した時の画像上のプルキンエ像の位置と瞳孔の位置の差を測定し、参照テーブルにその差と注視位置とを対応付けて格納する。そして視線検出装置は、視線検出処理を実行する際には、測定されたプルキンエ像の位置と瞳孔の位置の差に対応する注視位置を、参照テーブルを参照することで決定する。そして視線検出装置が求めた注視位置に応じて、視線検出装置が搭載された装置が画面スクロール等の制御動作を実行することで、ユーザの操作の手間を軽減できる。
【０００３】
しかし、視線検出処理の実行時における、視線検出装置が搭載された装置とユーザとの位置関係が、キャリブレーション処理の実行時における、視線検出装置が搭載された装置とユーザとの位置関係と異なることがある。特に、視線検出装置が、携帯電話または携帯情報端末といった、ユーザが自らの手で保持する装置に搭載される場合、視線検出処理の実行時におけるその装置とユーザ間の距離を常に一定に保つことは困難である。そしてユーザと装置との間の距離が変われば、視線方向が同一であってもユーザが注視する位置は変化する。そのため、視線検出装置は、キャリブレーション時に作成した参照テーブルを用いても、ユーザが注視する位置を正確に検出できないおそれがあった。そこで、視線検出装置からユーザまでの距離を測定し、その距離及び視線方向に基づいてユーザが注視する位置を検出する技術が提案されている（例えば、特許文献１及び２を参照）。
【０００４】
例えば、このような公知技術の一例による装置は、その装置からオペレータまでの距離を、オペレータを撮影した画像から自動焦点機能により測定する。そしてその装置は、その距離及び虹彩とプルキンエ像間の画像上での位置の差に基づいて、表示部の画面上でオペレータが注視する位置を求める。
また他の公知技術の一例による装置は、ユーザの顔を撮影した画像から顔の複数の特徴点及び輪郭を抽出し、複数の特徴点間の位置関係に基づいて顔の向きを求めるとともに、輪郭の大きさに基づいて装置からユーザの顔までの距離を求める。そしてこの装置は、顔の向きまたは装置からユーザの顔までの距離に応じて、表示部の表示画面のスクロール、拡大、縮小などの制御を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１８７０９１号公報
【特許文献２】特開２００９−３１３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、自動焦点機能により画像から装置からオペレータまでの距離を測定するためには、装置は、被写界深度が浅い光学系と、イメージセンサ上に焦点を結ぶ物点までの被写体距離を変えるためにその光学系を移動させる機構を備えることになる。そのため、装置全体の構造が複雑化してしまう。
また、画像から抽出された顔の特徴点または輪郭に基づいて画面表示を制御する装置は、ユーザが顔を動かさず、視線のみを動かすと、ユーザが注視している位置が移動したことを検知できないので、画面表示を適切に制御できないおそれがあった。
【０００７】
そこで本明細書は、キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる視線検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの実施形態によれば、視線検出装置が提供される。この視線検出装置は、ユーザの眼を照射する光源と、光源が点灯している間に眼を含む領域であって、ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、表示部からユーザの顔までの距離とその距離に応じて変化する画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、画像から距離特徴量を求める距離特徴量抽出部と、距離情報を参照することにより距離特徴量に対応する表示部からユーザの顔までの距離を推定する距離推定部と、画像に含まれる眼の領域から、光源の角膜反射像とユーザの瞳孔重心とを検出するプルキンエ像検出部と、瞳孔重心と角膜反射像との位置関係に応じてユーザの視線方向を検出する視線検出部と、視線方向と表示部からユーザの顔までの距離に基づいて、表示部上のユーザの注視位置を求める注視位置検出部とを有する。
【０００９】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１０】
本明細書に開示された視線検出装置は、キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態による視線検出装置を搭載した携帯端末のハードウェア構成図である。
【図２】第１の実施形態による視線検出装置を搭載した携帯端末の概略正面図である。
【図３】第１の実施形態による視線検出装置の制御部の機能ブロック図である。
【図４】参照テーブルの一例を示す図である。
【図５】（ａ）は、被写体距離が比較的近い第１の距離である場合の画像上のユーザの顔を表す模式図である。（ｂ）は、被写体距離が第１の距離よりも遠い第２の距離である場合の画像上のユーザの顔を表す模式図である。
【図６】画像上での左右の鼻孔の重心間の間隔と被写体距離との関係の実験結果を表すグラフである。
【図７】注視位置テーブルの一例を示す図である。
【図８】キャリブレーション処理の動作フローチャートである。
【図９】視線検出処理の動作フローチャートである。
【図１０】（ａ）は、プルキンエ像が写った画像の一例を表し、（ｂ）は、（ａ）の水平方向の線に沿った画素のうち、輝度値が飽和した画素の数と被写体距離との関係の実験結果を表すグラフである。
【図１１】第３の実施形態による視線検出装置を搭載した携帯端末の概略正面図である。
【図１２】二つの光源のプルキンエ像間の間隔と被写体距離との関係の実験結果を表すグラフである。
【図１３】第４の実施形態による視線検出装置の制御部の機能ブロック図である。
【図１４】傾き検出処理の動作フローチャートである。
【発明を実施するための形態】
【００１２】
以下、図を参照しつつ、第１の実施形態による視線検出装置について説明する。
この視線検出装置は、光源のプルキンエ像を撮影した画像を解析し、プルキンエ像と瞳孔の重心間の距離に基づいてユーザの視線方向を検出する。さらにこの視線検出装置は、その画像上で、視線検出装置が搭載された装置の表示部からユーザの顔までの距離に応じて変化する距離特徴量として、顔の複数の特徴的な部位間の間隔を求め、その間隔に応じて表示部からユーザの顔までの距離を求める。そしてこの視線検出装置は、視線検出装置が搭載された装置の表示部からユーザの顔までの距離とユーザの視線方向とに基づいて、表示部の画面上のユーザの注視位置を特定する。なお、この実施形態では、視線検出装置が搭載された装置が有するカメラの光学系の前側主点とその装置の表示部の位置の差は、ユーザの顔から表示部までの距離に対して無視できる程度に小さい。そこで以下では、便宜上、視線検出装置が搭載された装置の表示部からユーザの顔までの距離を被写体距離と呼ぶ。
【００１３】
図１は、第１の実施形態による視線検出装置を搭載した携帯端末のハードウェア構成図である。携帯端末１は、ユーザインターフェース２と、メモリ３と、制御部４と、筺体５と、視線検出装置１０とを有する。なお、携帯端末１は、例えば、携帯電話機または携帯情報端末である。さらに携帯端末１は、携帯端末１を他の機器に接続するための通信インターフェース回路（図示せず）を有していてもよい。なお、図１は、携帯端末１が有する構成要素を説明するための図であり、携帯端末１の各構成要素の実際の配置を表した図ではないことに留意されたい。
【００１４】
ユーザインターフェース２は、表示部の一例であり、例えば、タッチパネルディスプレイを有する。そしてユーザインターフェース２は、筺体５の正面において、ユーザインターフェース２の表示画面が、筺体５の正面に対向するユーザを向くように配置される。そしてユーザインターフェース２は、例えば、様々なアイコンまたは操作ボタンを制御部４からの制御信号に応じて表示する。またユーザインターフェース２は、表示されたアイコンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部４へ出力する。
なお、ユーザインターフェース２は、液晶ディスプレイといった表示装置と、キーパッドなどの複数の操作スイッチを有していてもよい。
【００１５】
メモリ３は、例えば、読み書き可能な不揮発性の半導体メモリを有する。そしてメモリ３は、制御部４上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。またメモリ３は、ユーザインターフェース２の表示画面に表示中のアイコンまたは操作ボタンの領域を表す情報を記憶する。
【００１６】
さらに、メモリ３は、視線検出装置１０の記憶部としても機能する。そしてメモリ３は、ユーザが注視する位置を検出するために利用される各種のデータを記憶する。例えば、メモリ３は、プルキンエ像の重心に対する瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを記憶する。またメモリ３は、画像から抽出された距離特徴量と被写体距離との関係を表す距離参照テーブルを記憶する。さらにメモリ３は、被写体距離及び視線方向とユーザが注視する位置との関係を表す注視位置テーブルを記憶する。さらに、メモリ３は、視線検出処理を実行するプログラムを記憶する。
なお、視線検出装置１０の記憶部として機能するメモリ回路は、メモリ３とは別個に携帯端末１に実装されてもよい。
【００１７】
視線検出装置１０は、ユーザインターフェース２の表示画面上でユーザが注視している位置を求める。そして視線検出装置１０は、ユーザが注視している位置を表す情報を制御部４が実行中のアプリケーションプログラムに渡す。なお、視線検出装置１０の詳細については後述する。
【００１８】
制御部４は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部４は、携帯端末１の各部と信号線を介して接続されており、携帯端末１全体を制御する。例えば、制御部４は、ユーザインターフェース２から受け取った操作信号と実行中のアプリケーションプログラムに応じた処理を実行する。
また制御部４は、視線検出装置１０の制御部としても機能する。なお、視線検出装置１０の制御部としての機能及び動作に関しては後述する。
さらに、制御部４は、アプリケーション実行部の一例であり、例えば、視線検出装置１０により求められた、ユーザが注視している位置とメモリ３に記憶されているユーザインターフェース２の表示画面上の各アイコンの表示領域とを比較する。そして制御部４は、ユーザが注視している位置と何れかのアイコンまたは操作ボタンの表示領域とが重なっている場合、そのアイコンまたは操作ボタンに応じた処理を実行する。
【００１９】
図２は、携帯端末１の概略正面図である。携帯端末１の略中央に設けられたユーザインターフェース２の表示画面２ａには、地図２０１とその周囲に画面をスクロールさせるためのスクロールボタン２０２〜２０５が表示されている。
この場合、ユーザが注視する位置がスクロールボタン２０２〜２０５の何れかの表示領域と重なっていれば、制御部４は、そのスクロールボタンに関して予め設定された方向に画面をスクロールさせる。また、ユーザの注視位置が地図２０１が表示された領域内であり、かつ、ユーザが表示画面２ａに顔を近づけると、制御部４はユーザインターフェース２に地図を拡大表示させてもよい。
【００２０】
視線検出装置１０は、ユーザの視線方向及び表示画面２ａ上の注視位置を検出するために、光源１１と、カメラ１２と、メモリ３と、制御部４とを有する。
光源１１は、携帯端末１を操作するユーザの顔、特に眼及びその周囲を照明する。そのため、光源１１は、例えば、少なくとも一つの赤外発光ダイオードと、制御部４からの制御信号に応じて、赤外発光ダイオードに図示しない電源からの電力を供給する駆動回路とを有する。そして光源１１は、制御部４から光源を点灯させる制御信号を受信している間、照明光を発する。
なお、視線検出装置１０が有する光源１１の数は、１個に限られず、視線検出装置１０は、互いに異なる位置に配置される複数個の光源を有してもよい。
【００２１】
カメラ１２は、撮像部の一例であり、眼を含むユーザの顔の少なくとも一部の領域が写った画像を生成する。そのために、カメラ１２は、光源１１の光に感度を持つ２次元状に配列された固体撮像素子を有するイメージセンサと、そのイメージセンサ上にユーザの眼の像を結像する撮像光学系を有する。カメラ１２は、虹彩による反射像及び光源１１以外の光源からの光の角膜反射像が検出されることを抑制するために、イメージセンサと撮像光学系の間に、可視光カットフィルタをさらに有してもよい。
【００２２】
また、画像が光源１１のプルキンエ像を識別できる程度の解像度を有するように、カメラ１２のイメージセンサの画素数は、例えば、100万、200万、あるいは400万とすることができる。またイメージセンサにより生成される画像はカラー画像であり、画素ごとに赤色(R)、緑色(G)及び青色(B)の３色の成分を持つ。各色成分は、例えば、0〜255の何れかの値をとり、色成分値が大きいほど、その色の輝度が高い。あるいは、イメージセンサにより生成される画像は、光の強度が強いほど各画素の輝度が高くなるモノクロ画像であってもよい。
カメラ１２は、視線検出処理が実行されている間、光源１１が点灯している間に所定の周期でユーザの顔を撮影することにより、点灯している光源により照明されたユーザの顔が写った画像を生成する。そしてカメラ１２は、画像を生成する度に、生成した画像を制御部４へ出力する。
【００２３】
再度図２を参照すると、携帯端末１のユーザインターフェース２の表示画面２ａの上端に近接してカメラ１２が配置される。このカメラ１２は、表示画面２ａに対向するユーザの顔を撮影できるように向けられる。
光源１１は、表示画面２ａに対向するユーザの顔を照明できるように、ユーザインターフェース２の外周に配置される。この例では、光源１１は、ユーザインターフェース２の上端に近接し、カメラ１２と並んで配置される。
【００２４】
制御部４は、上述したように、携帯端末１の制御部でもあり、視線検出装置１０の各部と信号線を通じて接続されている。そして制御部４は、視線検出装置１０の各部へ信号線を通じて制御信号を送信することで視線検出装置１０の各部を制御する。
また制御部４は、ユーザが注視している位置の情報を用いるアプリケーションが携帯端末１で実行されている間、ユーザが注視している位置を求める視線方向検出処理を実行する。また、制御部４は、携帯端末１の起動時、あるいは上記のようなアプリケーションの起動時など、特定のタイミングにおいて、光源のプルキンエ像と瞳孔重心との相対的な位置関係とユーザの視線方向との関係を求めるキャリブレーション処理を実行する。
【００２５】
図３は、制御部４の視線検出処理に関する機能ブロック図である。制御部４は、光源制御部２１と、カメラ制御部２２と、顔検出部２３と、プルキンエ像検出部２４と、視線検出部２５と、距離特徴量抽出部２６と、距離推定部２７と、注視位置検出部２８と、キャリブレーション部２９とを有する。
制御部４が有するこれらの各部は、制御部４が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールである。また制御部４が有するこれらの各部は、それぞれ、制御部４が有するプロセッサとは別個の回路として形成されてもよい。あるいは制御部４が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として、制御部４が有するプロセッサとは別個に携帯端末１に実装されてもよい。この場合、その集積回路は、メモリ３とは別個に、参照テーブルなどを記憶して、視線検出装置１０が有する記憶部として機能する記憶回路を含んでいてもよい。
【００２６】
光源制御部２１は、光源１１を点灯または消灯させる。光源制御部２１は、例えば、視線検出処理の実行中、光源１１を点灯させる。また光源制御部２１は、光源１１が複数含まれる場合、同時に２個以上の光源が点灯するように各光源へ制御信号を送信してもよい。同時に複数の光源が点灯すると、プルキンエ像にも点灯している複数の光源の像が含まれるので、視線検出装置１０は、画像上での輝点の配置パターンが、実際に点灯している光源の配置パターンと一致するか否か調べることができる。そのため、視線検出装置１０は、室内灯または太陽など、他の光源の像と視線検出装置１０が有する光源の像とを識別し易くなる。
【００２７】
カメラ制御部２２は、視線検出処理またはキャリブレーション処理の実行中において、カメラ１２が撮影するタイミングを制御する。カメラ制御部２２は、光源制御部２１から光源１１が点灯したことを通知されると、カメラ１２に対して所定の周期で撮影を実行させる撮影指示信号を送信する。そしてカメラ制御部２２は、カメラ１２から画像を受け取る度に、その画像を一旦メモリ３に記憶させる。
【００２８】
顔検出部２３は、視線検出処理またはキャリブレーション処理の実行中において、画像上でユーザの眼が写っている可能性のある領域を特定するために、カメラ１２から受け取った画像上で、ユーザの顔が写っている領域を検出する。
本実施形態では、撮影時において、ユーザの顔は光源１１からの赤外光で照明されており、赤外光に対する肌の反射率は比較的高い（例えば、肌の反射率は近赤外の波長域で数10%）ので、画像上で顔の肌の部分が写っている画素の輝度は高い。一方、画像上で髪の毛またはユーザの背後の領域は赤外光に対する反射率が低いかまたは光源から遠いため、髪の毛またはユーザの背後の領域が写っている画素の輝度は、相対的に低くなる。
そこで、顔検出部２３は、画像の各画素の値がRGB表色系により表されているカラー画像である場合、各画素の値をYUV表色系により表される値に変換する。そして顔検出部２３は、各画素の輝度成分（Y成分）の値が所定の閾値以上の画素を、顔が写っている可能性がある顔領域候補画素として抽出する。なお、画像の各画素の値が輝度を表すモノクロ画像である場合、顔検出部２３は、各画素の値を所定の閾値と比較する。所定の閾値は、例えば、画像上の輝度成分の最大値に0.8を乗じた値に設定される。
【００２９】
また、ユーザの視線に応じて携帯端末１の操作が実行される場合、ユーザの顔は、携帯端末１の正面を向いており、かつ、携帯端末１の正面から略数十cm離れた位置にあると想定される。そのため、画像上でユーザの顔が占める領域は比較的大きく、かつ、画像上で顔が占める領域の大きさもある程度推定される。
そこで顔検出部２３は、顔領域候補画素に対してラベリング処理を行って、互いに隣接している顔領域候補画素の集合を顔候補領域とする。そして顔検出部２３は、顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれているか否か判定する。顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれていれば、顔検出部２３はその顔候補領域をユーザの顔が写っている顔領域と判定する。
なお、顔候補領域の大きさは、例えば、顔候補領域の水平方向の最大幅の画素数で表される。この場合、基準範囲は、例えば、画像の水平方向画素数の1/4以上〜2/3以下に設定される。あるいは、顔候補領域の大きさは、例えば、顔候補領域に含まれる画素数で表されてもよい。この場合、基準範囲は、例えば、画像全体の画素数の1/16以上〜4/9以下に設定される。
【００３０】
顔検出部２３は、顔候補領域の大きさだけでなく、顔候補領域の形状も、顔候補領域を顔領域と判定するための判定条件に加えてもよい。人の顔は、一般に略楕円形状を有している。そこで顔検出部２３は、例えば、顔候補領域の大きさが上記の基準範囲に含まれ、かつ、顔候補領域の円形度が、一般的な顔の輪郭に相当する所定の閾値以上である場合に顔候補領域を顔領域としてもよい。なお顔検出部２３は、顔候補領域の輪郭上に位置する画素の合計を顔候補領域の周囲長として求め、顔候補領域内の総画素数に4πを乗じた値を周囲長の２乗で除することにより円形度を算出できる。
【００３１】
あるいは、顔検出部２３は、顔候補領域の輪郭上の各画素の座標を楕円方程式に当てはめて最小二乗法を適用することにより、顔候補領域を楕円近似してもよい。そして顔検出部２３は、その楕円の長軸と短軸の比が一般的な顔の長軸と短軸の比の範囲に含まれる場合に、顔候補領域を顔領域としてもよい。なお、顔検出部２３は、楕円近似により顔候補領域の形状を評価する場合、画像の各画素の輝度成分に対して近傍画素間演算を行ってエッジに相当するエッジ画素を検出してもよい。この場合、顔検出部２３は、エッジ画素を例えばラベリング処理を用いて連結し、一定の長さ以上に連結されたエッジ画素を顔候補領域の輪郭とする。
【００３２】
なお、顔検出部２３は、画像上に写っている顔の領域を検出する他の様々な方法の何れかに従って顔領域を検出してもよい。例えば、顔検出部２３は、顔候補領域と一般的な顔の形状に相当するテンプレートとの間でテンプレートマッチングを行って、顔候補領域とテンプレートとの一致度を算出し、その一致度が所定値以上である場合に、顔候補領域を顔領域と判定してもよい。
【００３３】
顔検出部２３は、顔領域を抽出できると、顔領域を表す情報を生成する。例えば、顔領域を表す情報は、画像と同一のサイズを有し、かつ顔領域内の画素と顔領域外の画素とが異なる画素値を持つ２値画像とすることができる。
そして顔検出部２３は、顔領域を表す情報をプルキンエ像検出部２４へ渡す。
【００３４】
プルキンエ像検出部２４は、視線検出処理またはキャリブレーション処理の実行中において、顔領域内でユーザの眼が写っている領域を検出し、眼が写っている領域内でプルキンエ像を検出する。
眼に相当する画素の輝度は、眼の周囲に相当する画素の輝度と大きく異なる。そこでプルキンエ像検出部２４は、顔領域内の各画素に対して、例えば、Sobelフィルタを用いて垂直方向の近傍画素間差分演算を行って垂直方向に輝度が変化するエッジ画素を検出する。そしてプルキンエ像検出部２４は、例えば、エッジ画素が略水平方向に眼の大きさに相当する所定数以上連結された２本のエッジ線で囲まれた領域を眼の領域とする。
あるいは、プルキンエ像検出部２４は、画像上の眼の像を表すテンプレートと、顔領域とのテンプレートマッチングにより、顔領域内でテンプレートに最も一致する領域を検出し、その検出した領域を眼の領域としてもよい。
【００３５】
さらに、プルキンエ像検出部２４は、眼の領域内で瞳孔が写っている領域を検出する。本実施形態では、プルキンエ像検出部２４は、瞳孔に相当するテンプレートと眼の領域との間でテンプレートマッチングを行い、眼の領域内でテンプレートとの一致度が最も高くなる領域を検出する。そしてプルキンエ像検出部２４は、一致度の最高値が所定の一致度閾値よりも高い場合、その検出した領域に瞳孔が写っていると判定する。なお、テンプレートは、瞳孔の大きさに応じて複数準備されてもよい。この場合、プルキンエ像検出部２４は、各テンプレートと眼の領域とのテンプレートマッチングをそれぞれ実行し、一致度の最高値を求める。そして一致度の最高値が一致度閾値よりも高い場合、プルキンエ像検出部２４は、一致度の最高値に対応するテンプレートと重なった領域に瞳孔が写っていると判定する。なお、一致度は、例えば、テンプレートとそのテンプレートと重なった領域との正規化相互相関値として算出される。また一致度閾値は、例えば、0.7または0.8に設定される。
【００３６】
また瞳孔が写っている領域の輝度は、その周囲の領域の輝度よりも低く、瞳孔は略円形である。そこでプルキンエ像検出部２４は、眼の領域内で、同心円状に半径の異なる２本のリングを設定する。そしてプルキンエ像検出部２４は、外側のリングに相当する画素の輝度の平均値から内側の画素の輝度の平均値を引いた差分値が所定の閾値よりも大きい場合、その内側のリングで囲まれた領域を瞳孔領域としてもよい。またプルキンエ像検出部２４は、内側のリングで囲まれた領域の平均輝度値が所定の閾値以下であることを、瞳孔領域として検出する条件に加えてもよい。この場合、所定の閾値は、例えば、眼の領域内の最大輝度値と最小輝度値の差の10％〜20％を、最小輝度値に加えた値に設定される。
プルキンエ像検出部２４は、瞳孔領域の検出に成功した場合、瞳孔領域に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、瞳孔領域の重心の座標として算出する。一方、プルキンエ像検出部２４は、瞳孔領域の検出に失敗した場合、制御部４へその旨を表す信号を返す。
【００３７】
またプルキンエ像検出部２４は、眼の領域内で光源１１のプルキンエ像を検出する。光源１１のプルキンエ像が写っている領域の輝度は、その周囲の領域の輝度よりも高く、その輝度値は略飽和している（すなわち、輝度値が、画素値が取り得る輝度の値の略最高値となっている）。また、光源１１のプルキンエ像が写っている領域の形状は、各光源の発光面の形状と略一致する。そこでプルキンエ像検出部２４は、眼の領域内で、光源の発光面の輪郭形状と略一致する形状を持ち、かつ、大きさが異なるとともに中心が一致する２本のリングを設定する。そしてプルキンエ像検出部２４は、内側のリングに相当する画素の輝度の平均値である内部輝度平均値から外側の画素の輝度の平均値を引いた差分値を求める。プルキンエ像検出部２４は、その差分値が所定の差分閾値よりも大きく、かつ内側輝度平均値が所定の輝度閾値よりも高い場合、その内側のリングで囲まれた領域を光源１１のプルキンエ像とする。なお、差分閾値は、例えば、眼の領域内の近傍画素間の差分値の平均値とすることができる。また所定の輝度閾値は、例えば、眼の領域内での輝度値の最高値の80%とすることができる。
なお、プルキンエ像検出部２４は、画像上で瞳孔が写っている領域を検出する他の様々な方法の何れかを用いて、瞳孔が写っている領域を検出してもよい。同様に、プルキンエ像検出部２４は、画像上で光源のプルキンエ像が写っている領域を検出する他の様々な方法の何れかを用いて、光源のプルキンエ像が写っている領域を検出してもよい。
【００３８】
プルキンエ像検出部２４は、光源１１のプルキンエ像の検出に成功した場合、光源に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、プルキンエ像の重心の座標として算出する。一方、プルキンエ像検出部２４は、光源のプルキンエ像の検出に失敗した場合、制御部４へその旨を表す信号を返す。
プルキンエ像検出部２４は、キャリブレーション処理の実行時の場合、プルキンエ像の重心及び瞳孔重心をキャリブレーション部２９へ通知する。一方、プルキンエ像検出部２４は、視線検出処理の実行時には、プルキンエ像の重心及び瞳孔重心を視線検出部２５へ通知する。
【００３９】
視線検出部２５は、視線検出処理の実行中において、プルキンエ像の重心及び瞳孔重心に基づいてユーザの視線方向を検出する。
【００４０】
角膜の表面は略球形であるため、視線方向によらず、光源のプルキンエ像の位置はほぼ一定となる。一方、瞳孔重心は、ユーザの視線方向に応じて移動する。そのため、視線検出部２５は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求めることにより、ユーザの視線方向を検出できる。
本実施形態では、視線検出部２５は、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、例えば、瞳孔重心の水平方向座標及び垂直方向座標からプルキンエ像の重心の水平方向座標及び垂直方向座標を減算することにより求める。そして視線検出部２５は、瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを参照することにより、ユーザの注視位置を決定する。
そして視線検出部２５は、ユーザの視線方向を注視位置検出部２８へ通知する。
【００４１】
図４は、参照テーブルの一例を示す図である。参照テーブル４００の左側の列の各欄には、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置の座標が表される。また参照テーブル４００の右側の列の各欄には、同じ行の瞳孔重心の相対的な位置の座標に対応するユーザの視線方向が表される。なお、この例では、視線方向は、表示画面２ａ上の基準点をユーザが注視しているときの視線方向を基準方向として、その基準方向からの水平方向及び垂直方向の角度の差で表される。なお、瞳孔重心の相対的な位置の座標は、画像上の画素単位で表される。
【００４２】
距離特徴量抽出部２６は、被写体距離に応じて変化する距離特徴量を画像から抽出する。ここで、カメラ１２により得られた画像上のユーザの顔の大きさは、被写体距離が離れるほど小さくなる。そのため、画像上での顔の特徴的な部位間の距離も、被写体距離に応じて変化する。
【００４３】
このことを、図５（ａ）及び図５（ｂ）を参照しつつ説明する。図５（ａ）は、被写体距離が比較的近い第１の距離である場合の画像上のユーザの顔を表す模式図である。図５（ｂ）は、被写体距離が第１の距離よりも遠い第２の距離である場合の画像上のユーザの顔を表す模式図である。図５（ａ）及び図５（ｂ）に示されるように、画像５００、５１０には、それぞれ、ユーザの顔の左右の鼻孔５０１が写っている。そして画像５００の撮影時の被写体距離が、画像５１０の撮影時の被写体距離より短いので、画像５００に写っているユーザの顔の面積の方が、画像５１０に写っているユーザの顔の面積よりも大きい。そのため、画像５００に写っている左右の鼻孔５０１間の間隔Δnは、画像５１０に写っている左右の鼻孔５０１間の間隔Δfよりも広い。このように、被写体距離が大きいほど、画像上での左右の鼻孔間の距離が短くなることが分かる。同様に、被写体距離が短いほど、画像上での両目の中心間の間隔、口と鼻の間隔、何れかの目の中心と口との間隔、あるいは左右の口角点間の間隔など、二つの特徴的な部位間の画像上の距離は大きくなる。
【００４４】
図６は、画像上での左右の鼻孔の重心間の間隔と被写体距離との関係の実験結果を表すグラフである。図６において、横軸は被写体距離を表し、縦軸は左右の鼻孔の重心間の間隔（ピクセル単位）を表す。そして各点は、それぞれ、被写体距離300mm〜600mmにおける左右の鼻孔の重心間の間隔を表す。この実験では、1/3.2インチ（水平方向4.73mm、垂直方向3.52mm）の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより顔を撮影した画像を用いた。各点に示されるように、左右の鼻孔の重心間の間隔は、被写体距離が大きくなるほど小さくなっている。また、点６０１に示される、被写体距離が最大(600mm)のときの左右の鼻孔の重心間の間隔に対して、点６０２に示される、被写体距離が最小(300mm)のときの左右の鼻孔の重心間の間隔は約4倍となる。このように、画像上での左右の鼻孔の重心間の間隔は被写体距離に応じて大きく変化することが分かる。したがって、画像上の左右の鼻孔の重心間の間隔は距離特徴量として使用可能である。同様に、左右の目の中心間の間隔、鼻尖点と口の中心間の間隔なども距離特徴量として使用可能である。
そこで本実施形態では、距離特徴量抽出部２６は、顔領域内で眼、鼻の穴、口角点などの特徴的な部位を少なくとも二つ検出し、その特徴的な部位間の距離を距離特徴量とする。
【００４５】
距離特徴量抽出部２６は、顔領域と、目、鼻孔、口などの特徴的な部位の一般的な形状に相当するテンプレートとの間で相対的な位置を変えつつテンプレートマッチングを行って、顔領域とテンプレートとの一致度を算出する。例えば、鼻孔に関するテンプレートは、略円形状の輝度が低い領域とその周囲に輝度が高い領域とを有するように設定される。そして距離特徴量抽出部２６は、顔領域内の特定位置で一致度が所定値以上である場合に、その特定位置にテンプレートに相当する部位が写っていると判定する。距離特徴量抽出部２６は、少なくとも二つの部位の画像上の位置を求め、その部位間の距離を距離特徴量とする。
距離特徴量抽出部２６は、視線検出処理の実行時には、距離特徴量を距離推定部２７へ渡す。一方、距離特徴量抽出部２６は、キャリブレーション処理の実行時の場合、距離特徴量をキャリブレーション部２９へ通知する。
【００４６】
距離推定部２７は、距離特徴量に基づいて、被写体距離を推定する。本実施形態では、距離推定部２７は、メモリ３に予め記憶されている、距離特徴量と被写体距離との関係を表す距離参照テーブルを参照することにより、距離特徴量に対応する被写体距離を推定する。
あるいは、距離推定部２７は、距離特徴量と被写体距離との関係式に、距離特徴量抽出部２６により求められた距離特徴量を入力することにより、被写体距離を求めてもよい。なお、距離参照テーブル及び距離特徴量と被写体距離との関係式は、それぞれ、距離情報の一例である。
距離推定部２７は、視線検出処理の実行時には、被写体距離を注視位置検出部２８へ通知する。一方、距離推定部２７は、キャリブレーション処理の実行時の場合、その距離をキャリブレーション部２９へ通知する。
【００４７】
注視位置検出部２８は、ユーザの視線方向及び被写体距離に基づいて、ユーザが表示画面２ａ上で注視している位置を検出する。なお、以下では、便宜上、ユーザが表示画面２ａ上で注視している位置を単に注視位置と呼ぶ。
本実施形態では、注視位置検出部２８は、ユーザの視線方向及び被写体距離と表示画面２ａ上でのユーザの注視位置との関係を表す注視位置テーブルを参照することにより、ユーザの注視位置を決定する。
【００４８】
図７は、注視位置テーブルの一例を示す図である。注視位置テーブル７００の左側の列には、被写体距離が表される。また注視位置テーブル７００の上端の行には、ユーザの視線方向が表される。そして注視位置テーブル７００の各欄には、同じ行の被写体距離及び同じ列の視線方向に対応する、表示画面２ａ上の注視位置の座標が表示画面２ａの画素単位で表される。例えば、注視位置テーブル７００の欄７０１には、距離200mmで視線方向が水平方向0°、垂直方向1°の場合の注視位置が(cx,cy+40)であることが示されている。なお、cx、cyは、視線方向が(0,0)のときの注視位置、すなわち基準注視位置の座標、例えば、表示画面２ａの中心の水平座標及び垂直座標である。
【００４９】
あるいは、注視位置検出部２８は、被写体距離が所定の基準距離である場合の、視線方向に対する注視位置を基準注視位置として注視位置テーブルを参照して求め、その基準注視位置を被写体距離に応じて補正してもよい。なお基準距離は、例えば、キャリブレーション処理の実行時において指定された被写体距離であり、300mmに設定される。この場合、補正により算出される注視位置の水平座標vx及び垂直座標vyは以下の式で算出される。
vx = R(vrx-cx) + cx
vy = R(vry-cy) + cy
ここで、vrx、vryは、それぞれ、表示画面上の基準注視位置の水平座標及び垂直座標であり、cx、cyは、視線方向が(0,0)のときの注視位置の座標である。そしてRは、基準距離に対する距離推定部２７により推定された距離の比である。
注視位置検出部２８は、ユーザの注視位置を制御部４で実行中のアプリケーションプログラムへ通知する。
【００５０】
キャリブレーション部２９は、キャリブレーション処理を実行することにより、上記の参照テーブル及び距離参照テーブルを更新する。
キャリブレーション部２９は、例えば、制御部４から携帯端末１が起動したことを示す信号を受信したとき、あるいは、特定のアプリケーションが起動されたことを示す信号を受信したときに、キャリブレーション処理を実行する。
【００５１】
キャリブレーション処理が開始されると、キャリブレーション部２９は、ユーザインターフェース２の表示画面２ａ上の所定の基準位置にキャリブレーション用のマークを表示させる。基準位置は、例えば、表示画面２ａの中心、あるいは表示画面２ａの４角の何れかとすることができる。
さらに、キャリブレーション部２９は、キャリブレーション中において、携帯端末１の表示画面２ａからどれだけ離した位置に顔を配置するのかを指示するために、表示画面２ａからユーザの顔までの指定距離を表示画面２ａ上に表示させる。
キャリブレーションの実行中、ユーザは、表示画面２ａ上に表示されているキャリブレーション用のマークを注視するものとする。
【００５２】
キャリブレーション部２９は、表示画面２ａの中心にマークが表示されているときに撮影された画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部２４から受け取る。そしてキャリブレーション部２９は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、ユーザが表示画面２ａの中心を注視したときの視線方向に対応させるよう、参照テーブルを更新する。なお、注視位置の座標と視線方向とは１対１に対応する。そこでキャリブレーション部２９は、例えば、ユーザが表示画面２ａの中心を注視したときの視線方向を、水平方向及び垂直方向とも0°とする。
【００５３】
またキャリブレーション部２９は、表示画面２ａの左上の角にマークが表示されているときに撮影された画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部２４から受け取る。そしてキャリブレーション部２９は、このときのプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、ユーザが表示画面２ａの左上の角を注視したときの視線方向に対応させるよう、参照テーブルを更新する。同様に、キャリブレーション部２９は、マークが表示画面２ａの他の角に表示されているときの撮影画像上でのプルキンエ像の重心に対する瞳孔重心の相対的位置を、ユーザがマークの表示位置を注視したときの視線方向と対応づけるよう参照テーブルを更新する。
さらに、キャリブレーション部２９は、他の視線方向に対するプルキンエ像の重心を基準とした瞳孔重心の相対的位置を、既に求めた上記の５個のマークの位置に対応する瞳孔重心の相対的な位置を用いて例えば線形補間することにより決定する。そしてキャリブレーション部２９は、様々な視線方向に対する瞳孔重心の相対的な位置を対応づけるように参照テーブルを更新する。
【００５４】
また、キャリブレーション部２９は、上記の指定距離における距離特徴量を距離特徴量抽出部２６から受け取る。そしてキャリブレーション部２９は、距離特徴量を指定距離と対応付けるように距離参照テーブルを更新する。さらにキャリブレーション部２９は、指定距離を様々に変えて、カメラ１２にユーザの顔を撮影した画像を作成させてもよい。この場合、キャリブレーション部２９は、それぞれの指定距離において撮影された画像から抽出された距離特徴量を距離特徴量抽出部２６から受け取る。そしてキャリブレーション部２９は、各指定距離とその指定距離における距離特徴量を対応付けるように距離参照テーブルを更新する。
【００５５】
なお、本実施形態のように、距離特徴量が顔の二つの特定部位間の画像上の距離であれば、被写体距離と距離特徴量とは反比例する。そこでこの場合、キャリブレーション部２９は、任意の被写体距離dに対する距離特徴量を、指定距離d0について求めた距離特徴量に、その被写体距離dに対する指定距離d0の比(d0/d)を乗じることで求めてもよい。そしてキャリブレーション部２９は、計算により算出された距離特徴量及び対応する被写体距離に基づいて、距離参照テーブルを更新してもよい。この場合、視線検出装置１０は、一つの指定距離についてのみユーザの顔を撮影すればよいので、キャリブレーション処理の手間を軽減できる。
キャリブレーション部２９は、更新された参照テーブル及び距離参照テーブルをメモリ３に保存する。
【００５６】
また、距離特徴量に関する個人差が無視できるほど小さい場合、予め一般的な顔のモデルを撮影した画像から抽出された距離特徴量、あるいはシミュレーションにより算出される距離特徴量に基づいて予め距離参照テーブルが作成されていてもよい。この場合には、キャリブレーション部２９は、距離参照テーブルを更新しなくてもよい。
【００５７】
図８は、制御部４により実行される、キャリブレーション処理の動作フローチャートを示す。
制御部４は、ユーザインターフェース２の表示画面２ａ上の基準位置に所定のマークを表示させる（ステップＳ１０１）。次に、制御部４は、光源１１が点灯した状態でユーザの顔を撮影した画像をカメラ１２から取得する（ステップＳ１０２）。制御部４の顔検出部２３は、画像上で顔が写っている顔領域を抽出する（ステップＳ１０３）。そして顔検出部２３は、顔領域を表す情報を制御部４のプルキンエ像検出部２４及び距離特徴量抽出部２６へ渡す。
【００５８】
プルキンエ像検出部２４は、顔領域内で眼の領域を検出する（ステップＳ１０４）。そしてプルキンエ像検出部２４は、眼の領域内で瞳孔重心を検出する（ステップＳ１０５）。またプルキンエ像検出部２４は、眼の領域内で点灯している光源のプルキンエ像を検出する（ステップＳ１０６）。
【００５９】
プルキンエ像検出部２４は、瞳孔重心及び光源のプルキンエ像の検出に成功したか否か判定する（ステップＳ１０７）。プルキンエ像検出部２４が瞳孔重心または光源のプルキンエ像の検出に失敗した場合（ステップＳ１０７−Ｎｏ）、制御部４は、カメラ１２に再撮影を指示する（ステップＳ１０８）。そして制御部４はステップＳ１０２以降の処理を再実行する。
一方、プルキンエ像検出部２４が瞳孔重心及び光源のプルキンエ像の検出に成功した場合（ステップＳ１０７−Ｙｅｓ）、プルキンエ像検出部２４は、光源のプルキンエ像の重心及び瞳孔重心を制御部４のキャリブレーション部２９へ通知する。
キャリブレーション部２９は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求める。そしてキャリブレーション部２９は、その相対的な位置と表示画面２ａに表示されているマークの位置により決定される視線方向とに基づいて、参照テーブルを更新する（ステップＳ１０９）。
【００６０】
また距離特徴量抽出部２６は、画像から指定距離における距離特徴量を抽出する（ステップＳ１１０）。距離特徴量抽出部２６は、その距離特徴量をキャリブレーション部２９へ通知する。そしてキャリブレーション部２９は、指定距離と距離特徴量とを対応付けるように距離参照テーブルを更新する（ステップＳ１１１）。
ステップＳ１１１の後、制御部４は、キャリブレーション処理を終了する。なお、プルキンエ像検出部２４は、ステップＳ１０５の処理とステップＳ１０６の処理の順序を入れ替えてもよい。またプルキンエ像検出部２４は、顔領域全体でユーザの瞳孔及び光源のプルキンエ像を探索してもよい。この場合、ステップＳ１０４の処理は省略される。さらに、制御部４は、ステップＳ１０４〜Ｓ１０９の処理とステップＳ１１０及びＳ１１１の処理の順序を入れ替えてもよい。
【００６１】
図９は、制御部４により実行される、視線検出処理の動作フローチャートを示す。
制御部４は、光源１１が点灯した状態でユーザの顔を撮影した画像をカメラ１２から取得する（ステップＳ２０１）。そして制御部４の顔検出部２３は、画像上で顔が写っている顔領域を抽出する（ステップＳ２０２）。顔検出部２３は、顔領域の抽出に成功したか否か判定する（ステップＳ２０３）。顔領域の抽出に失敗した場合（ステップＳ２０３−Ｎｏ）、ユーザは携帯端末１を向いていない。そのため、制御部４は、視線検出処理を終了する。その後制御部４は、キャリブレーション処理を実行してもよい。あるいは、制御部４は、ステップＳ２０１以降の処理を再度実行してもよい。この場合には、制御部４のカメラ制御部２２は、前回の撮影時の露出条件と異なる露出条件でユーザの顔を撮影するようにカメラ１２に制御信号を送信してもよい。
【００６２】
一方、顔検出部２３が顔領域の抽出に成功した場合（ステップＳ２０３−Ｙｅｓ）、顔検出部２３は、顔領域を表す情報を制御部４のプルキンエ像検出部２４及び距離特徴量抽出部２６へ渡す。
プルキンエ像検出部２４は、顔領域内で眼の領域を検出する（ステップＳ２０４）。そしてプルキンエ像検出部２４は、眼の領域内で瞳孔重心を検出する（ステップＳ２０５）。またプルキンエ像検出部２４は、眼の領域内で光源１１のプルキンエ像を検出する（ステップＳ２０６）。そしてプルキンエ像検出部２４は、瞳孔重心及び光源のプルキンエ像の検出に成功したか否か判定する（ステップＳ２０７）。
【００６３】
プルキンエ像検出部２４が瞳孔重心及び光源のプルキンエ像の検出に失敗した場合（ステップＳ２０７−Ｎｏ）、制御部４は、ステップＳ２０１以降の処理を再度実行する。その際、カメラ制御部２２は、前回の撮影時の露出条件と異なる露出条件でユーザの顔を撮影するようにカメラ１２に制御信号を送信してもよい。
一方、プルキンエ像検出部２４が瞳孔重心及び光源のプルキンエ像の検出に成功した場合（ステップＳ２０７−Ｙｅｓ）、プルキンエ像検出部２４は、光源のプルキンエ像の重心及び瞳孔重心を制御部４の視線検出部２５へ通知する。
視線検出部２５は、参照テーブルを参照してプルキンエ像の重心を基準とする瞳孔重心の位置に対応する視線方向を検出する（ステップＳ２０８）。そして視線検出部２５は、その視線方向を表す情報を、制御部４の注視位置検出部２８へ渡す。
【００６４】
また距離特徴量抽出部２６は、画像から距離特徴量を抽出する（ステップＳ２０９）。距離特徴量抽出部２６は、その距離特徴量を制御部４の距離推定部２７へ渡す。そして距離推定部２７は、距離参照テーブルを参照して距離特徴量に対応する、被写体距離を推定する（ステップＳ２１０）。そして距離推定部２７は、被写体距離の推定値を、注視位置検出部２８へ渡す。
【００６５】
注視位置検出部２８は、注視位置テーブルを参照して、視線方向及び被写体距離の推定値に対応する注視位置を求める（ステップＳ２１１）。そして注視位置検出部２８は、その注視位置を表す情報を、制御部４が実行中のアプリケーションプログラムへ渡す。
その後、制御部４は、視線検出処理を終了する。なお、プルキンエ像検出部２４は、ステップＳ２０５の処理とステップＳ２０６の処理の順序を入れ替えてもよい。またプルキンエ像検出部２４は、顔領域全体でユーザの瞳孔及び光源のプルキンエ像を探索してもよい。この場合、ステップＳ２０４の処理は省略される。あるいは、プルキンエ像検出部２４が着目画像上で瞳孔重心または光源のプルキンエ像の何れか一方の検出に失敗した時点で、他方の検出処理を行わずに、制御部４は、ステップＳ２０１以降の処理を再実行してもよい。
【００６６】
以上に説明してきたように、第１の実施形態による視線検出装置は、視線検出処理の実行時における被写体距離を求め、その距離とプルキンエ像に基づいて求められる視線方向とからユーザの注視位置を求める。そのため、この視線検出装置は、キャリブレーションの実行時と視線検出処理の実行時とで被写体距離が異なっていても、正確に注視位置を検出できる。さらにこの視線検出装置は、プルキンエ像の検出に用いられる画像と同一の画像から被写体距離を表す特徴量を抽出し、その特徴量に基づいて被写体距離を推定できる。そのため、この視線検出装置は、被写体距離推定のために視線方向検出のための機構と別個の機構を持つ必要が無いので、装置構成を簡単化できる。
【００６７】
次に、第２の実施形態による視線検出装置について説明する。第２の実施形態による視線検出装置は、画像上のプルキンエ像のサイズを距離特徴量として求める。
【００６８】
第２の実施形態による視線検出装置は、第１の実施形態による視線検出装置と比較して、制御部の距離特徴量抽出部の処理が異なる。そこで、以下では、距離特徴量抽出部及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、第１の実施形態に関する関連部分の説明を参照されたい。
【００６９】
光源１１は、その周囲よりも明るいので、画像上でのプルキンエ像に相当する画素の輝度値もその周囲の画素の輝度値よりも高くなる。ここで、カメラ１２の露出条件が適切に設定されていれば、画像上では、プルキンエ像に相当する画素の輝度値は、取り得る輝度値の最大値に近い値となる。すなわち、画像上でのプルキンエ像に相当する画素の輝度値は飽和する。
また、被写体距離が近いほど、画像上でのプルキンエ像のサイズも大きくなる。そのため、被写体距離が近いほど、プルキンエ像のサイズに相当する、ほぼ最大輝度値となる画素の数が増加する。
【００７０】
図１０（ａ）は、プルキンエ像が写った画像の一例を表し、図１０（ｂ）は、図１０（ａ）の水平方向の線１０００に沿った画素のうち、輝度値が飽和した画素（以下、便宜上飽和画素と呼ぶ）の数と被写体距離との関係の実験結果を表すグラフである。図１０（ｂ）において、横軸は被写体距離を表し、縦軸は輝度値を表す。そして点１００１〜１００４は、それぞれ、被写体距離200mm、300mm、400mm、500mmにおける飽和画素数を表す。この実験では、1/3.2インチ（水平方向4.73mm、垂直方向3.52mm）の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより眼を撮影した画像を用いた。そして各画素の輝度値は0〜255の値を取り、輝度値240以上の画素を飽和画素とした。
点１００１〜１００４に示されるように、飽和画素数は、被写体距離が大きくなるほど少なくなることが分かる。また被写体距離が最大となるとき（500mm）の飽和画素数に対して、被写体距離が最小となるとき（200mm）となるときの飽和画素数は5倍になっている。このように、画像上でプルキンエ像のサイズに相当する飽和画素の数は、距離特徴量として使用可能である。
【００７１】
そこで、この実施形態による距離特徴量抽出部２６は、プルキンエ像検出部２４から画像上でのプルキンエ像の領域を表す情報を取得する。そして距離特徴量抽出部２６は、プルキンエ像の領域の重心を求め、その重心を通る１画素幅の直線である走査線を設定する。なお、走査線の方向は任意であり、例えば、水平方向あるいは垂直方向に設定される。距離特徴量抽出部２６は、走査線上で、かつプルキンエ像の領域内で飽和画素の数をカウントする。例えば、距離特徴量算出部２６は、輝度値が閾値以上となる画素を飽和画素とする。なお、閾値は、輝度値の最大値または最大値よりも僅かに小さい値、例えば、240〜255の何れかに設定される。
距離特徴量抽出部２６は、視線検出処理の実行時には、距離特徴量としてその飽和画素の数を距離推定部２７へ渡す。一方、距離特徴量抽出部２６は、キャリブレーション処理の実行時の場合、距離特徴量としてその飽和画素の数をキャリブレーション部２９へ通知する。
なお、変形例によれば、距離特徴量抽出部２６は、プルキンエ像の領域内に含まれる飽和画素の総数を距離特徴量として算出してもよい。
【００７２】
距離推定部２７は、メモリ３に記憶された距離参照テーブルを参照して、距離特徴量である飽和画素数に対応する被写体距離を求め、その被写体距離を注視位置検出部２８へ通知する。注視位置検出部２８は、被写体距離及び視線検出部２５により求められた視線方向に基づいて、表示画面上の注視位置を求める。このように、この実施形態では、距離参照テーブルは、飽和画素数と被写体距離との対応関係を表す。
また、キャリブレーション部２９は、様々な指定距離における飽和画素数を距離特徴量抽出部２６から受け取る。そしてキャリブレーション部２９は、各指定距離とその指定距離における飽和画素数を対応付けるように距離参照テーブルを更新する。
【００７３】
以上に説明してきたように、第２の実施形態による視線検出装置は、高精度で検出可能な画像上のプルキンエ像の領域内で、被写体距離の変化による変動幅が相対的に大きい飽和画素数を距離特徴量として求める。そのため、この第２の実施形態による視線検出装置は、被写体距離を正確に推定できる。したがって、この第２の実施形態による視線検出装置は、正確に注視位置を求めることができる。
【００７４】
次に、第３の実施形態による視線検出装置について説明する。第３の実施形態による視線検出装置は、所定距離だけ離して配置された少なくとも二つの光源を有し、画像上の各光源に対応するプルキンエ像間の距離を距離特徴量として求める。
【００７５】
第３の実施形態による視線検出装置は、第１の実施形態による視線検出装置と比較して、光源の数が複数であること、及び制御部の距離特徴量抽出部の処理が異なる。そこで、以下では、光源、距離特徴量抽出部及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、第１の実施形態に関する関連部分の説明を参照されたい。
【００７６】
図１１は、第３の実施形態による視線検出装置が搭載された携帯端末１の概略正面図である。図１１に示されるように、この実施形態では、ユーザインターフェース２の表示画面２ａの上端近傍に第１の光源１１−１を備え、表示画面２ａの下端近傍に第２の光源１１−２を備える。なお、光源の配置はこの例に限られず、例えば、一つの光源が表示画面２ａの左端近傍に配置され、他の一つの光源が表示画面２ａの右端近傍に配置されてもよい。あるいは、３個以上の光源が表示画面２ａの周囲に配置されてもよい。ただし、画像上でプルキンエ像間の距離が大きくなるように、各光源間の距離はできるだけ離れるように、各光源が配置されることが好ましい。
【００７７】
人の角膜は、略球面状に形成されているので、凸面鏡として機能する。そのため、被写体距離が大きくなるほど、画像上での複数の光源のそれぞれに対応するプルキンエ像間の距離は小さくなる。
【００７８】
図１２は、画像上での表示画面２ａを挟んで上下方向に並べて配置された二つの光源のプルキンエ像間の間隔と被写体距離との関係の実験結果を表すグラフである。図１２において、横軸は被写体距離を表し、縦軸はプルキンエ像間の間隔（ピクセル単位）を表す。そして各点は、それぞれ、被写体距離200mm〜650mmにおけるプルキンエ像間の間隔を表す。この実験では、縦方向に77mmの長さを持つ表示画面の上端近傍と下端近傍にそれぞれ光源を配置した。そして、1/3.2インチ（水平方向4.73mm、垂直方向3.52mm）の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより眼を撮影した画像を用いた。各点に示されるように、プルキンエ像間の間隔は、被写体距離が大きくなるほど小さくなっている。また、点１２０１に示される、被写体距離が最大(650mm)のときのプルキンエ像間の間隔に対して、点１２０２に示される、被写体距離が最小(200mm)のときのプルキンエ像間の間隔は15倍以上となる。このように、プルキンエ像間の間隔は被写体距離に応じて大きく変化することが分かる。したがって、画像上のプルキンエ像間の距離は距離特徴量として使用可能である。
【００７９】
そこで、この実施形態による距離特徴量抽出部２６は、プルキンエ像検出部２４から画像上での各光源のプルキンエ像の重心を表す情報を取得する。そして距離特徴量抽出部２６は、プルキンエ像の重心間の距離を求める。
距離特徴量抽出部２６は、視線検出処理の実行時には、距離特徴量としてプルキンエ像の重心間の距離を距離推定部２７へ渡す。
【００８０】
距離推定部２７は、メモリ３に記憶された距離参照テーブルを参照して、距離特徴量であるプルキンエ像の重心間の距離に対応する被写体距離を求め、その被写体距離を注視位置検出部２８へ通知する。またプルキンエ像検出部２４は、何れか一方の光源、例えば、上側に配置された光源１１−１のプルキンエ像の重心を視線検出部２５に通知する。そして視線検出部２５は、光源１１−１のプルキンエ像の重心位置に基づいてユーザの視線方向を求める。
注視位置検出部２８は、被写体距離及び視線検出部２５により求められた視線方向に基づいて、表示画面上の注視位置を求める。このように、この実施形態では、距離参照テーブルは、プルキンエ像の重心間の距離と被写体距離との対応関係を表す。
【００８１】
この実施形態では、キャリブレーション部２９は、キャリブレーション処理において距離参照テーブルを更新しなくてもよい。画像上でのプルキンエ像間の間隔は、被写体距離の他、光源間の距離、カメラの画角及びイメージセンサの画素数及び角膜の曲率半径により決定される。そして被写体距離と角膜の曲率半径以外は、既知であり、かつ、成人であれば角膜の曲率半径はほぼ一定であるとみなせる。そのため、一般的な角膜のモデルに基づいて、プルキンエ像間の距離と被写体距離との対応関係は予め求められるためである。
なお、他の実施形態と同様に、キャリブレーション部２９は、距離参照テーブルを更新してもよい。この場合、キャリブレーション部２９は、様々な指定距離における、画像上でのプルキンエ像間の距離を距離特徴量抽出部２６から受け取る。そしてキャリブレーション部２９は、各指定距離とその指定距離におけるプルキンエ像間の距離を対応付けるように距離参照テーブルを更新する。
【００８２】
以上に説明してきたように、第３の実施形態による視線検出装置は、高精度で検出可能な画像上のプルキンエ像の領域内で、被写体距離の変化による変動幅が相対的に大きい複数の光源のそれぞれに対応するプルキンエ像間の距離を距離特徴量として求める。そのため、この視線検出装置は、被写体距離を正確に推定できる。したがって、この視線検出装置は、正確に注視位置を求めることができる。さらにこの視線検出装置は、距離参照テーブルを更新しなくてもよいので、キャリブレーション処理の実行時におけるユーザの手間を軽減できる。
【００８３】
変形例によれば、視線検出装置は、注視位置そのものを求める代わりに、異なる時刻に取得された複数の画像のそれぞれから求めた視線方向の変化量と被写体距離に基づいて注視位置の移動量を求めてもよい。この場合、制御部の視線検出部は、画像から視線方向を求める度に、その画像の取得時刻と視線方向とをメモリに記憶させる。そしてメモリは、一定期間（例えば、10秒間）、その視線方向及び画像の取得時刻を記憶する。また制御部の注視位置検出部は、現時刻に取得された画像から求めた視線方向と、その画像よりも1〜数フレーム前に取得された画像から求めた視線方向との角度差を視線方向の変化量として求める。そして注視位置検出部は、視線方向の角度差の正接に、現画像について求められた被写体距離を乗じることで注視位置の移動量を求める。注視位置検出部は、注視位置の移動量を制御部で実行中のアプリケーションプログラムへ通知する。
【００８４】
制御部は、そのアプリケーションプログラムに従って、例えば、注視位置の移動量に応じて画面をスクロールさせる。1〜数フレーム前の画像の取得時から現画像の取得時までの間の視線方向の変化量が同一でも被写体距離が異なれば、注視位置の移動量も異なるので、制御部は、画面のスクロール量またはスクロール速度も変えることが好ましい。例えば、視線方向の変化量が同一でも、被写体距離が２倍になれば注視位置の移動量も２倍になるので、制御部はスクロール量またはスクロール速度も２倍とする。
このように、この視線検出装置は、被写体距離によらず、注視位置の移動量に応じた画面制御を携帯端末の制御部に実行させることができる。
【００８５】
次に、第４の実施形態による視線検出装置について説明する。第４の実施形態による視線検出装置は、上下方向に離して配置された少なくとも二つの光源を有し、画像上の各光源に対応するプルキンエ像の飽和画素の数により、視線検出装置に対する垂直方向に沿った顔の傾きを算出する。
【００８６】
第４の実施形態による視線検出装置は、第３の実施形態による視線検出装置と比較して、制御部が視線検出装置に対する顔の傾きを検知する点で異なる。そこで、以下では、制御部の顔の傾きの検知及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載され、図１１に示されるように、表示画面の上端近傍と下端近傍にそれぞれ一つずつ光源が配置されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、上記の各実施形態についての関連部分の説明を参照されたい。
【００８７】
図１３は、第４の実施形態による視線検出装置の制御部の機能ブロック図である。制御部４は、光源制御部２１と、カメラ制御部２２と、顔検出部２３と、プルキンエ像検出部２４と、視線検出部２５と、距離特徴量抽出部２６と、距離推定部２７と、注視位置検出部２８と、キャリブレーション部２９と、傾き検出部３０とを有する。
【００８８】
本実施形態では、距離特徴量抽出部２６は、第１の実施形態のように、画像上での顔の複数の部位間の距離を距離特徴量として抽出する。あるいは、距離特徴量抽出部２６は、第３の実施形態のように、画像上での複数の光源のそれぞれに対応するプルキンエ像間の距離を距離特徴量として抽出してもよい。
【００８９】
傾き検出部３０は、携帯端末１に対するユーザの顔の相対的な傾きを検出する。そのために傾き検出部３０は、画像上での各光源のプルキンエ像の領域を表す情報をプルキンエ像検出部２４から受け取る。そして傾き検出部３０は、光源ごとに、プルキンエ像の領域内の飽和画素数をカウントする。なお、飽和画素数のカウントの方法は、第２の実施形態による距離特徴量抽出部による飽和画素数のカウントの方法と同様とすることができる。
【００９０】
第２の実施形態に関して述べたように、被写体距離が大きくなるほど、プルキンエ像の飽和画素数は少なくなる。そのため、上側の光源１１−１のプルキンエ像の飽和画素数が、下側の光源１１−２のプルキンエ像の飽和画素数よりも少なければ、上側の光源１１−１からユーザの眼までの距離が下側の光源１１−２からユーザの眼までの距離よりも大きい。すなわち、ユーザの顔は、携帯端末１の表示画面２ａの下端よりも表示画面２ａの上端の方がユーザの顔から遠くなるように、携帯端末１に対して傾いている。このことを、便宜上、ユーザの顔が上向きに傾いていると呼ぶ。
【００９１】
逆に、上側の光源１１−１のプルキンエ像の飽和画素数が、下側の光源１１−２のプルキンエ像の飽和画素数よりも多ければ、上側の光源１１−１からユーザの眼までの距離が下側の光源１１−２からユーザの眼までの距離よりも小さい。すなわち、ユーザの顔は、携帯端末１の表示画面２ａの上端よりも表示画面２ａの下端の方がユーザの顔から遠くなるように、携帯端末１に対して傾いている。このことを、便宜上、ユーザの顔が下向きに傾いていると呼ぶ。
そして上側の光源１１−１のプルキンエ像の飽和画素数が下側の光源１１−２のプルキンエ像の飽和画素数と略等しければ、表示画面２ａとユーザの顔は略平行になっている。
【００９２】
図１４は、傾き検出部３０による傾き検出処理の動作フローチャートである。制御部４は、傾き検出部３０による傾き検出処理を、視線検出処理と別個に実行する。あるいは、制御部４は、図９に示した視線検出処理のステップＳ２１１に引き続いて傾き検出処理を実行してもよい。
傾き検出部３０は、上側の光源１１−１のプルキンエ像の飽和画素数と下側の光源１１−２のプルキンエ像の飽和画素数を求める（ステップＳ３０１）。そして傾き検出部３０は、上側の光源１１−１のプルキンエ像の飽和画素数cuと下側の光源１１−２のプルキンエ像の飽和画素数clの差を所定数Thと比較する（ステップＳ３０２）。そして上側の光源１１−１のプルキンエ像の飽和画素数cuが下側の光源１１−２のプルキンエ像の飽和画素数clよりも所定数Th以上多ければ、傾き検出部３０は、ユーザの顔が下向きに傾いていると判定する（ステップＳ３０３）。そして傾き検出部３０は、ユーザの顔が下向きに傾いていることを制御部４で実行中のアプリケーションプログラムへ通知する。一方、下側の光源１１−２のプルキンエ像の飽和画素数clが上側の光源１１−１のプルキンエ像の飽和画素数cuよりも所定数Th以上多ければ、傾き検出部３０は、ユーザの顔が上向きに傾いていると判定する（ステップＳ３０４）。そして傾き検出部３０は、ユーザの顔が上向きに傾いていることを制御部４で実行中のアプリケーションプログラムへ通知する。また二つの光源のプルキンエ像の飽和画素数の差の絶対値|cu-cl|が所定値Th未満であれば、傾き検出部３０は、ユーザの顔が携帯端末１の表示画面と略平行になっていると判定する（ステップＳ３０５）。そして傾き検出部３０は、ユーザの顔が携帯端末１の表示画面と略平行になっていることを制御部４で実行中のアプリケーションプログラムへ通知する。ステップＳ３０３〜Ｓ３０５の後、傾き検出部３０は傾き検出処理を終了する。なお、所定数Thは、例えば、実験あるいはシミュレーションにより求められ、例えば、'1'に設定される。
【００９３】
この場合、制御部４は、アプリケーションプログラムに従って、例えば、上記の変形例のように、ユーザの注視位置の移動量に応じて画面をスクロールさせる。その際、制御部４は、視線が表示画面２ａの上側へ向けて移動した場合と、下側へ向けて視線が移動した場合とで、スクロール量またはスクロール速度が一定となるように、ユーザの顔向きに応じてスクロール量またはスクロール速度を調節することが好ましい。例えば、制御部４は、ユーザの顔が上向きである場合、ユーザが注視位置を表示画面２ａの略中央から上方へ移動させたときの画面のスクロール量を、表示画面２ａの略中央から下方へ移動させたときの画面のスクロール量よりも大きくする。また、ユーザの顔が表示画面２ａと略平行である場合、制御部４は、ユーザが注視位置を表示画面２ａの略中央から上方へ移動させたときと、表示画面２ａの略中央から下方へ移動させたときとで、画面のスクロール量またはスクロール速度を等しくする。
【００９４】
また変形例によれば、携帯端末がジャイロセンサといった角速度を検知できるセンサを搭載している場合、制御部は、そのセンサから携帯端末の角速度を表す情報を取得する。そして傾き検出部は、その角速度に基づいて、携帯端末の表示画面に対するユーザの顔の傾きを求めてもよい。例えば、携帯端末の表示画面とユーザの顔が略平行であると判定されているときに、制御部が、ジャイロセンサから携帯端末の上端が背面側へ倒れ、携帯端末の下端が正面側、すなわちユーザ側に倒れる方向の角速度が検知されたことを通知されたとする。この場合、傾き検出部は、ユーザの顔向きは上向きであると判定する。
【００９５】
また、傾き検出部は、水平方向についても携帯端末の表示画面に対するユーザの顔の傾きを判定してもよい。この場合、携帯端末の正面において、水平方向の異なる位置に二つの光源が配置される。例えば、表示画面の右端及び左端に近接して二つの光源が配置される。そして傾き検出部は、画像上での各光源のプルキンエ像の飽和画素数を求め、光源ごとの飽和画素数を比較する。向かって右側の光源の飽和画素数が向かって左側の光源の飽和画素数よりも多ければ、傾き検出部は、ユーザの顔は、水平方向に沿って、左側ほど携帯端末の表示画面から離れるように傾いていると判定する。逆に、向かって左側の光源の飽和画素数が向かって右側の光源の飽和画素数よりも多ければ、傾き検出部は、ユーザの顔は、水平方向に沿って、右側ほど携帯端末の表示画面から離れるように傾いていると判定する。
【００９６】
さらに他の変形例によれば、表示画面の４個の角のそれぞれの近傍に光源が配置されてもよい。この場合、傾き検出部は、垂直方向に沿ったユーザの顔の傾きを検出するために、画像上で、上側の二つの光源に対応する二つのプルキンエ像間の距離と、下側の二つの光源に対応する二つのプルキンエ像間の距離とをそれぞれ求める。そして、上側の二つの光源に対応する二つのプルキンエ像間の距離が下側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部はユーザの顔は下向きであると判定する。逆に、下側の二つの光源に対応する二つのプルキンエ像間の距離が上側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部はユーザの顔は上向きであると判定する。
同様に、傾き検出部は、水平方向に沿ったユーザの顔の傾きを検出するために、画像上で、向かって左側の二つの光源に対応する二つのプルキンエ像間の距離と、向かって右側の二つの光源に対応する二つのプルキンエ像間の距離とをそれぞれ求めてもよい。例えば、向かって右側の二つの光源に対応する二つのプルキンエ像間の距離が向かって左側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部は、ユーザの顔は、左側ほど携帯端末の表示画面から離れるように傾いていると判定する。
【００９７】
上記の各実施形態または変形例による視線検出装置は、表示部上のユーザの注視位置を利用する様々な装置に組み込むことができる。例えば、視線検出装置は、カーナビゲーションシステム、あるいはコンピュータに組み込まれてもよい。この場合、視線検出装置が有する光源及びカメラと表示部とは別個に配置されていてもよい。
【００９８】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００９９】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
ユーザの眼を照射する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
を有する視線検出装置。
（付記２）
前記距離特徴量抽出部は、前記画像上の前記顔の少なくとも二つの部位の位置を求め、当該少なくとも二つの部位間の間隔を前記距離特徴量として求める、付記１に記載の視線検出装置。
（付記３）
前記距離特徴量抽出部は、前記画像上の前記角膜反射像のサイズを前記距離特徴量として求める、付記１に記載の視線検出装置。
（付記４）
前記距離特徴量抽出部は、前記画像上の前記角膜反射像に相当する領域に含まれる、輝度値が飽和した画素の数を前記角膜反射像のサイズとする、付記３に記載の視線検出装置。
（付記５）
前記光源は、互いに異なる位置に配置された第１の発光素子と第２の発光素子とを有し、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第１の発光素子の第１の角膜反射像と前記第２の発光素子の第２の角膜反射像を検出し、
前記距離特徴量抽出部は、前記画像上の前記第１の角膜反射像と前記第２の角膜反射像間の間隔を前記距離特徴量として求める、付記１に記載の視線検出装置。
（付記６）
前記第１の発光素子と前記第２の発光素子は、所定方向に沿って配置され、
前記第１の角膜反射像のサイズと前記第２の角膜反射像のサイズを求め、前記第１の角膜反射像のサイズよりも前記第２の角膜反射像のサイズが小さい場合に、前記第１の発光素子と前記顔との距離が、前記第２の発光素子と該顔との距離よりも小さくなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、付記５に記載の視線検出装置。
（付記７）
前記光源は、前記表示部の外周に沿って互いに異なる位置に配置された少なくとも４個の発光素子を有し、前記発光素子のうちの第１の発光素子及び第２の発光素子は、前記表示部の垂直方向の中心よりも上側に配置され、一方、前記発光素子のうちの第３の発光素子及び第４の発光素子は、前記表示部の垂直方向の中心よりも下側に配置され、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第１〜第４の発光素子の角膜反射像をそれぞれ検出し、
前記画像上の前記第１の発光素子の角膜反射像と前記第２の発光素子の角膜反射像間の第１の間隔及び前記第３の発光素子の角膜反射像と前記第４の発光素子の角膜反射像間の第２の間隔をそれぞれ求め、前記第２の間隔よりも前記第１の間隔が小さい場合に、前記表示部の下端が前記表示部の上端よりもユーザの顔に近くなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、付記１に記載の視線検出装置。
（付記８）
表示部と、
ユーザの眼を照明する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
前記表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
前記注視位置と関連付けられた処理を実行するアプリケーション実行部と、
を有する携帯端末。
（付記９）
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことを含む視線検出方法。
（付記１０）
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を撮像部から取得し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことをコンピュータに実行させる視線検出用コンピュータプログラム。
【符号の説明】
【０１００】
１    携帯端末
２    ユーザインターフェース
２ａ    表示画面
３    メモリ
４    制御部
５    筺体
１０    視線検出装置
１１、１１−１〜１１−２    光源
１２    カメラ
２１    光源制御部
２２    カメラ制御部
２３    顔検出部
２４    プルキンエ像検出部
２５    視線検出部
２６    距離特徴量抽出部
２７    距離推定部
２８    注視位置検出部
２９    キャリブレーション部
３０    傾き検出部
【図１】
0005655644.tif 000002
【図２】
0005655644.tif 000003
【図３】
0005655644.tif 000004
【図４】
0005655644.tif 000005
【図５】
0005655644.tif 000006
【図６】
0005655644.tif 000007
【図７】
0005655644.tif 000008
【図８】
0005655644.tif 000009
【図９】
0005655644.tif 000010
【図１０】
0005655644.tif 000011
【図１１】
0005655644.tif 000012
【図１２】
0005655644.tif 000013
【図１３】
0005655644.tif 000014
【図１４】
0005655644.tif 000015