(57)【特許請求の範囲】
【請求項１】
ユーザの顔を照明する光源と、
所定の露出条件でユーザの顔を複数回撮影することにより複数の原画像を生成する撮像部と、
前記複数の原画像のうち、第１の数の原画像を合成することにより第１の合成画像を生成し、かつ、前記複数の原画像のうち、前記第１の数よりも多い第２の数の原画像を合成することにより第２の合成画像を生成する画像生成部と、
前記第１の合成画像からユーザの顔を検出する顔検出部と、
前記顔検出部で検出されたユーザの顔に対応する前記第２の合成画像上の領域内でユーザの瞳孔及び前記光源のプルキンエ像を検出するプルキンエ像検出部と、
前記ユーザの瞳孔と前記光源のプルキンエ像の位置関係に基づいてユーザの視線方向を検出する視線検出部と、
を有する視線検出装置。
【請求項２】
前記顔検出部が前記ユーザの顔の検出に失敗した場合、前記画像生成部は、前記第１の数を所定数増加するよう修正し、前記複数の原画像のうち、該修正された第１の数の原画像を合成することにより修正された第１の合成画像を生成し、前記顔検出部は、該修正された第１の合成画像からユーザの顔を検出する、請求項１に記載の視線検出装置。
【請求項３】
前記プルキンエ像検出部が前記ユーザの瞳孔または前記光源のプルキンエ像の検出に失敗した場合、前記画像生成部は、前記第２の数を所定数増加するよう修正し、前記複数の原画像のうち、該修正された第２の数の原画像を合成することにより修正された第２の合成画像を生成し、前記プルキンエ像検出部は、該修正された第２の合成画像からユーザの瞳孔及び前記光源のプルキンエ像を検出する、請求項１または２に記載の視線検出装置。
【請求項４】
前記撮像部は、前記光源が消灯した状態で前記ユーザの顔を撮影した暗画像をさらに取得し、
前記画像生成部は、前記複数の原画像のうち、前記第２の数の原画像を合成した画像と前記暗画像の差分画像を前記第２の合成画像として生成する、
請求項１〜３の何れか一項に記載の視線検出装置。
【請求項５】
所定の露出条件で、光源により照明されたユーザの顔を複数回撮影することにより複数の原画像を生成し、
前記複数の原画像のうち、第１の数の原画像を合成することにより第１の合成画像を生成し、
前記複数の原画像のうち、前記第１の数よりも多い第２の数の原画像を合成することにより第２の合成画像を生成し、
前記第１の合成画像からユーザの顔を検出し、
検出されたユーザの顔に対応する前記第２の合成画像上の領域内でユーザの瞳孔及び前記光源のプルキンエ像を検出し、
前記ユーザの瞳孔と前記光源のプルキンエ像の位置関係に基づいてユーザの視線方向を検出する、
ことを含む視線検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、角膜反射像を検出することにより視線方向を検出する視線検出装置及び視線検出方法に関する。
【背景技術】
【０００２】
従来より、ユーザの眼を撮影した画像を解析することにより光源の角膜反射像（プルキンエ像）を検出することで、ユーザの視線方向を検出する視線検出装置が開発されている。このような視線検出装置は、プルキンエ像を検出できなければ、視線方向を検出することができない。そのため、プルキンエ像が画像上で識別可能なように、ユーザの眼を撮影するカメラの露光量が適切に調節されることが好ましい。
【０００３】
しかし、視線検出装置が搭載された装置は、屋内のように環境光による照度がある程度一定に保たれる環境で利用されるとは限らない。例えば、そのような装置が屋外で使用される場合、ユーザの顔に太陽光が当たったり、太陽光が直接カメラに入射することもある。このような場合、ユーザの眼の輝度よりもその他の部分の輝度の方が非常に高くなるので、その他の部分に合わせて露光量が調節されると、プルキンエ像及びその周囲については露光量が不足する。その結果、画像上でプルキンエ像が識別できなくなる。一方、視線検出装置が、ユーザの顔を照明するのに十分な光量を持つ光を発する照明光源を有していれば、環境光の明るさにかかわらずに、プルキンエ像と顔全体を識別できる画像を生成することができる。しかし、そのような光源は消費電力が大きく、また大きな光量を持つ光をユーザの顔、特に眼に向けて照射することは危険を伴うので好ましくない。
【０００４】
そこで、露光量が相対的に少ない第１の画像からユーザの顔の輪郭などを検出することで顔向きを検出し、一方、露光量が相対的に多い第２の画像に写ったユーザの眼の情報を用いて視線方向を検出する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２７６８４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、第１の画像または第２の画像の撮影時の露光量が適切でなければ、それらの画像から顔の輪郭または眼を検出することが困難となる。そのため、露光量が不適切な場合には、視線検出装置は、例えば、電子シャッタの開放時間または撮像素子のゲインを調節した上で、ユーザの顔を再撮影しなければならないおそれがあった。そして再撮影が行われた場合、視線検出に要する処理時間が、その再撮影に要する期間だけ長くなる。処理時間が長くなることは、特に、できるだけリアルタイムで視線方向を知ることが求められるアプリケーションにとって好ましくない。
【０００７】
そこで本明細書は、周囲環境の明るさによらずにユーザの視線方向を検出できるとともに、視線検出に要する処理時間の増加を抑制可能な視線検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの実施形態によれば、視線検出装置が提供される。この視線検出装置は、ユーザの顔を照明する光源と、所定の露出条件でユーザの顔を複数回撮影することにより複数の原画像を生成する撮像部と、第１の数の原画像を合成することにより第１の合成画像を生成し、かつ、第１の数よりも多い第２の数の原画像を合成することにより第２の合成画像を生成する画像生成部と、第１の合成画像からユーザの顔を検出する顔検出部と、第２の合成画像からユーザの瞳孔及び光源のプルキンエ像を検出するプルキンエ像検出部と、ユーザの瞳孔と光源のプルキンエ像の位置関係に基づいてユーザの視線方向を検出する視線検出部とを有する。
【０００９】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１０】
本明細書に開示された視線検出装置は、周囲環境の明るさによらずにユーザの視線方向を検出できるとともに、視線検出に要する処理時間の増加を抑制できる。
【図面の簡単な説明】
【００１１】
【図１】一つの実施形態による視線検出装置のハードウェア構成図である。
【図２】制御部の機能ブロック図である。
【図３】（ａ）は合成に用いた原画像の枚数が相対的に少ない第１の合成画像の一例を示す図であり、（ｂ）は（ａ）に示した第１の合成画像における眼の部分を拡大した図である。
【図４】（ａ）は合成に用いた原画像の枚数が相対的に多い第２の画像の一例を示す図であり、（ｂ）は（ａ）に示した第２の合成画像における眼の部分を拡大した図である。
【図５】参照テーブルの一例を示す図である。
【図６】視線検出処理の動作フローチャートを示す図である。
【図７】視線検出処理の動作フローチャートを示す図である。
【発明を実施するための形態】
【００１２】
以下、図を参照しつつ、一つの実施形態による、視線検出装置について説明する。
この視線検出装置は、周囲の環境が明るい条件でも顔の輪郭が検出できるような少ない露光量が想定される露出条件でユーザの顔を複数回撮影することにより複数の原画像を作成する。そしてこの視線検出装置は、相対的に少ない枚数の原画像を合成した第１の合成画像からユーザの顔の輪郭または部位を検出することで、ユーザの顔を検出する。一方、この視線検出装置は、相対的に多い枚数の原画像を合成した第２の合成画像からプルキンエ像及び瞳孔の重心を検出することでユーザの視線方向を検出する。
なお、合成とは、例えば、複数画像間での対応画素の輝度値の加算値を算出し、加算値を合成画像上の対応画素に設定するものである。また、加算において、輝度値の加算値が画素の輝度値の上限値以上となる場合は、その上限値を合成画像上の対応画素の輝度値とする。
【００１３】
本実施形態による視線検出装置は、ユーザの視線方向を利用する様々な装置に実装される。例えば、視線検出装置は、携帯端末または車載運転支援装置に実装される。視線検出装置が携帯端末に実装される場合、例えば、携帯端末は、視線検出装置から受け取ったユーザの視線方向に関する情報に基づいて、携帯端末が有するディスプレイ上でユーザが注視する位置を特定し、その位置に表示されたアイコンに応じた処理を実行する。
【００１４】
また、視線検出装置が車載運転支援装置に実装される場合、例えば、その運転支援装置は、視線検出装置から受け取ったユーザの視線方向に関する情報に基づいて、ユーザの視線方向が車両前方の所定範囲から外れているか否か判定する。そして、車両が前進している間の一定期間に渡ってユーザの視線方向がその所定範囲から外れていれば、運転支援装置は、ユーザが余所見していると判定し、スピーカなどを通じてユーザに警報音を発する。さらに、運転支援装置は、視線検出装置からユーザの顔の向きに関する情報を受け取り、その情報に基づいてユーザが横を向いているか否かを判定し、ユーザが横を向いている場合に警報音を発するようにしてもよい。
【００１５】
図１は、一つの実施形態による視線検出装置のハードウェア構成図である。視線検出装置１は、光源２と、カメラ３と、インターフェース部４と、メモリ５と、制御部６とを有する。なお、図１は、視線検出装置１が有する構成要素を説明するための図であり、視線検出装置１の各構成要素の実際の配置を表した図ではないことに留意されたい。例えば、視線検出装置１が有する各構成要素は、一つの筺体内に収容されていてもよく、一部の構成要素が他の構成要素とは別個に配置されてもよい。例えば、視線検出装置１が車載運転支援装置に実装される場合、光源２は、インスツルメントパネルまたは車室内前方の天井付近においてユーザへ向けて光を発するように取り付けられる。またカメラ３も、例えば、インスツルメントパネルまたは車室内前方の天井付近に、ユーザの方を向けて取り付けられる。そして光源２及びカメラ３は、信号線を介して、インターフェース部４、メモリ５及び制御部６が実装され、インスツルメントパネルの裏側に配置された回路基板と接続されてもよい。
【００１６】
光源２は、ユーザの顔、特に眼及びその周囲を照明する。そのため、光源２は、例えば、少なくとも一つの赤外発光ダイオードと、制御部６からの制御信号に応じて、赤外発光ダイオードに図示しない電源からの電力を供給する駆動回路とを有する。そして光源２は、制御部６から光源を点灯させる制御信号を受信している間、照明光を発する。
なお、視線検出装置１が有する光源２の数は、１個に限られず、複数個であってもよい。
【００１７】
カメラ３は、撮像部の一例であり、ユーザの顔が写った原画像を生成する。そのために、カメラ３は、光源２の光に感度を持つ２次元状に配列された固体撮像素子を有するイメージセンサと、そのイメージセンサ上にユーザの顔の像を結像する撮像光学系を有する。カメラ３は、虹彩による反射像及び光源２以外の光源からの光の角膜反射像が検出されることを抑制するために、イメージセンサと撮像光学系の間に、可視光カットフィルタをさらに有してもよい。またカメラ３は、原画像上で、ユーザの角膜に光源２の像が写るように配置される。
【００１８】
また、画像が光源２のプルキンエ像を識別できる程度の解像度を有するように、カメラ３のイメージセンサの画素数は、例えば、100万、200万、あるいは400万とすることができる。またイメージセンサにより生成される画像はカラー画像であり、画素ごとに赤色(R)、緑色(G)及び青色(B)の３色の成分を持つ。各色成分は、例えば、0〜255の何れかの値をとり、色成分値が大きいほど、その色の輝度が高い。あるいは、イメージセンサにより生成される画像は、光の強度が強いほど各画素の輝度が高くなるモノクロ画像であってもよい。
【００１９】
カメラ３は、視線検出処理が実行されている間、制御部６から通知された所定の周期及び所定の露出条件で連続的にユーザの顔を撮影することにより、ユーザの顔が写った原画像を複数生成する。カメラ３は、原画像を生成する度に、生成した原画像を制御部６へ出力する。
【００２０】
インターフェース部４は、視線検出装置１を、他の機器、例えば、視線検出装置１が実装された装置と接続するためのインターフェース回路を有する。例えば、視線検出装置１が車載運転支援装置に実装されている場合、インターフェース部４は、例えば、コントロールエリアネットワーク(Controller Area Network, CAN)に準じた通信回線を介して信号を送信または受信するための回路を有する。そしてインターフェース部４は、例えば、制御部６から受け取った、ユーザの視線方向または顔向きに関する情報を、CANを介して視線検出装置１と接続されている車載運転支援装置の制御基板へ送信する。
【００２１】
メモリ５は、例えば、読み書き可能な不揮発性の半導体メモリを有する。そしてメモリ５は、制御部６上で実行される視線検出処理のプログラムを記憶する。またメモリ５は、例えば、プルキンエ像の重心に対する瞳孔重心の相対的な位置とユーザの視線方向との関係を表す視線方向参照テーブルなど、ユーザの視線方向またはユーザの顔を検出するために利用される各種のデータを記憶する。
またメモリ５は、直近に撮影された所定枚数の原画像と、ユーザの顔などの検出に用いられる第１の合成画像と、瞳孔及びプルキンエ像の検出に用いられる第２の合成画像とを記憶する。なお、所定枚数は、例えば、第２の合成画像の生成に利用される原画像の最大数である。なお、合成画像の詳細については後述する。
【００２２】
制御部６は、一つまたは複数のプロセッサ及びその周辺回路を有し、視線検出装置１の各部と信号線を通じて接続されている。そして制御部６は、視線検出装置１の各部へ信号線を通じて制御信号を送信することで視線検出装置１の各部を制御する。
制御部６は、ユーザの視線方向の情報を用いるアプリケーションが、視線検出装置１が実装されている装置で実行されている間、視線方向検出処理を実行する。また制御部６は、視線検出装置１の起動時、あるいは上記のようなアプリケーションの起動時など、特定のタイミングにおいて、光源のプルキンエ像と瞳孔重心との相対的な位置関係とユーザの視線方向との関係を求めるキャリブレーション処理を実行する。
【００２３】
図２は、制御部６の機能ブロック図である。制御部６は、光源制御部１１と、カメラ制御部１２と、画像生成部１３と、顔検出部１４と、プルキンエ像検出部１５と、視線検出部１６と、キャリブレーション部１７とを有する。
光源制御部１１、カメラ制御部１２、画像生成部１３、顔検出部１４、プルキンエ像検出部１５、視線検出部１６及びキャリブレーション部１７は、制御部６が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールである。
あるいは、光源制御部１１、カメラ制御部１２、画像生成部１３、顔検出部１４、プルキンエ像検出部１５、視線検出部１６及びキャリブレーション部１７は、それぞれ、制御部６が有するプロセッサとは別個の回路として形成されてもよい。あるいは光源制御部１１、カメラ制御部１２、画像生成部１３、顔検出部１４、プルキンエ像検出部１５、視線検出部１６及びキャリブレーション部１７は、その各部に対応する回路が集積された一つの集積回路として視線検出装置１に実装されてもよい。
【００２４】
光源制御部１１は、光源２を点灯または消灯させる。光源制御部１１は、例えば、視線検出処理の実行中、光源２を点灯させる。また光源制御部１１は、光源２が複数含まれる場合、同時に２個以上の光源が点灯するように各光源へ制御信号を送信してもよい。同時に複数の光源が点灯すると、プルキンエ像にも点灯している複数の光源の像が含まれるので、視線検出装置１は、画像上での輝点の配置パターンが、実際に点灯している光源の配置パターンと一致するか否か調べることができる。そのため、視線検出装置１は、室内灯または太陽など、他の光源の像と視線検出装置１が有する光源の像とを識別し易くなる。
【００２５】
カメラ制御部１２は、カメラ３が撮影する周期及び露出条件を制御する。カメラ制御部１２は、例えば、視線検出処理の実行中、ユーザが所定の方向を注視している間にカメラ３が複数回の撮影を行えるような周期、例えば、30m秒〜300m秒周期で、カメラ３に連続的に撮影させる。またカメラ制御部１２は、例えば、カメラ３の撮影対象範囲内の平均照度が想定される最大値である場合に原画像上でユーザの顔に相当する画素の輝度値が飽和しない露出条件で、カメラ３に各回の撮影を実行させる。これにより、原画像上では、輝度値の飽和により顔が識別不能となることがない。そのため、制御部６は、第１の合成画像を作成する際に、その合成に利用する原画像の枚数を最初に小さく設定しておき、その後その枚数を増やしていくだけで、ユーザの顔の検出に用いるのに適切な合成画像を作成できる。この露出条件は、例えば、実験的あるいはカメラ３の撮像素子の感度などに基づいて計算により求められる。さらに、露出条件は、第２の合成画像上でプルキンエ像が検出できるように、各原画像において、プルキンエ像及びその周囲の画素が最小輝度値とならないように設定されることが好ましい。
【００２６】
カメラ制御部１２は、撮影周期及び露出条件をカメラ３に通知する。なお、露出条件には、例えば、シャッタ速度及びF値が含まれる。またカメラ制御部１２は、視線検出処理が開始されると、カメラ３へ撮影を開始させることを指示する制御信号を送信する。一方、カメラ制御部１２は、カメラ３から原画像を受け取る度に、その原画像を一旦メモリ５に記憶させる。
【００２７】
画像生成部１３は、メモリ５に記憶されている第１の積算数の原画像を合成することにより、第１の合成画像を生成する。また画像生成部１３は、メモリ５に記憶されている、第１の積算数よりも多い第２の積算数の原画像を合成することにより第２の合成画像を生成する。
【００２８】
各原画像に対する露出条件は一定であるため、合成に用いる原画像の枚数が多いほど、合成画像は、露光量が多い露出条件で撮影された画像と実質的に同じ画像となる。従って、原画像の枚数が少なければ、合成画像上では、原画像において相対的にコントラストが低い領域、例えば、影になっている部分のコントラストは十分な高さにならない。一方、原画像において相対的にコントラストが高い領域、例えば、顔が環境光により照らされている場合の顔の輪郭部分は、合成に用いる原画像の枚数が少ない合成画像上でも十分なコントラストを持つ。そのため、このような原画像の枚数が少ない合成画像は、顔の輪郭及び眼、鼻、口など、比較的周囲との輝度差が大きい部位の検出に適している。
【００２９】
一方、合成に用いる原画像の枚数が多い合成画像では、環境光により照らされている領域に含まれる画素の値は飽和してしまう。そのため、例えば、顔が一方から環境光により照らされている場合、合成画像上ではその照らされている領域内の画素の輝度がその取り得る最大値で一定になってしまい、合成画像上でその領域に写っている部位は識別不能になる。しかし、原画像においてコントラストが低い領域では、近傍画素間の輝度差が原画像の枚数に応じて大きくなるので、そのような領域に写っている部位を識別することは容易になる。そのため、原画像の枚数の多い合成画像は、環境光により影になることがある、瞳孔及びプルキンエ像などを検出するのに適している。
【００３０】
図３（ａ）は合成に用いた原画像の枚数が相対的に少ない第１の合成画像の一例を示す図であり、図３（ｂ）は図３（ａ）に示した合成画像における眼の部分を拡大した図である。この第１の合成画像３００では、顔の輪郭、及び眼、鼻、口などの部位が識別可能なコントラストで写っている。一方、図３（ｂ）に示されるように、眼の角膜領域３１０は、ほぼ一様に暗くなっており、そのため、合成画像３００からプルキンエ像を検出することは困難である。
【００３１】
図４（ａ）は合成に用いた原画像の枚数が相対的に多い第２の合成画像の一例を示す図であり、図４（ｂ）は図４（ａ）に示した合成画像における眼の部分を拡大した図である。この第２の合成画像４００では、領域４１０に含まれる画素の輝度が飽和しているため、その領域４１０に含まれる顔の輪郭を検出することは困難である。一方、図４（ｂ）に示されるように、眼の角膜領域４２０は、十分なコントラストを有し、角膜領域４２０内のプルキンエ像４３０とその周囲との間の輝度差も大きい。そのため、合成画像４００からプルキンエ像を検出することは容易である。
【００３２】
そこで、第１の合成画像は、顔の領域を検出するために利用され、一方、第２の合成画像は、プルキンエ像を利用する視線方向の検出に利用される。
第１及び第２の積算数を決定するために、例えば、視線検出装置１が実装された装置が、その装置の周囲の照度を測定する照度計を有している場合、画像生成部１３は、インターフェース部４を介してその照度計から照度の測定値を取得する。この場合、メモリ５には、予め照度と第１及び第２の積算数との関係を表す積算数参照テーブルが記憶される。そして画像生成部１３は、積算数参照テーブルを参照することにより、照度の測定値に対応する第１及び第２の積算数を決定する。
なお、第１の積算数は、例えば、実験的に、第１の合成画像上で顔の輪郭及び眼、鼻、口などの各部位が識別できるようなコントラストが得られるように設定される。一方、第２の積算数は、例えば、実験的に、第２の合成画像上で瞳孔及びプルキンエ像が識別できるようなコントラストが得られるように設定される。
【００３３】
また、画像生成部１３は、メモリ５に記憶されている何れかの原画像、例えば最新の原画像上の所定領域の平均輝度値に基づいて第１及び第２の積算数を決定してもよい。所定領域は、原画像上で顔が写っている可能性が高い領域、例えば、原画像の中心を含む、原画像の幅及び高さの1/4〜1/2の幅及び高さを持つ部分領域とすることができる。
【００３４】
さらに、画像生成部１３は、顔検出部１４から顔の検出または顔の向きの検出に失敗したことを通知されると、第１の積算数を1以上の所定数だけ増やすよう修正する。そして画像生成部１３は、修正された第１の積算数の原画像を合成することにより、修正された第１の合成画像を生成し、その修正された第１の合成画像を再度顔検出部１４へ渡す。同様に、画像生成部１３は、プルキンエ像検出部１５から瞳孔の検出またはプルキンエ像の検出に失敗したことを通知されると、第２の積算数を1以上の所定数だけ増やすよう修正する。そして画像生成部１３は、修正された第２の積算数の原画像を合成することにより、修正された第２の合成画像を生成し、その修正された第２の合成画像を再度プルキンエ検出部１５へ渡す。
【００３５】
画像生成部１３は、第１の合成画像を生成するため、第１の合成画像の各画素について、第１の積算数の原画像の当該画素の値の和を求め、その和を第１の合成画像のその当該画素の値とする。同様に、画像生成部１３は、第２の合成画像を生成するため、第２の合成画像の各画素について、第２の積算数の原画像の当該画素の値の和を求め、その和を第２の合成画像のその当該画素の値とする。なお、原画像がカラー画像である場合、画像生成部１３は、それぞれの色について画素ごとにその色値の和を算出する。
画像生成部１３は、第１の合成画像を顔検出部１４へ渡し、一方、第２の合成画像をプルキンエ像検出部１５へ渡す。
【００３６】
顔検出部１４は、視線検出処理またはキャリブレーション処理の実行中において、第１の合成画像上で、ユーザの顔を検出する。
本実施形態では、撮影時において、ユーザの顔は光源２からの赤外光で照明されており、赤外光に対する肌の反射率は比較的高い（例えば、肌の反射率は近赤外の波長域で数10%）ので、画像上で顔の肌の部分が写っている画素の輝度は高い。一方、画像上で髪の毛またはユーザの背後の領域は赤外光に対する反射率が低いかまたは光源から遠いため、髪の毛またはユーザの背後の領域が写っている画素の輝度は、相対的に低くなる。
そこで、顔検出部１４は、画像の各画素の値がRGB表色系により表されているカラー画像である場合、各画素の値をYUV表色系により表される値に変換する。そして顔検出部１４は、各画素の輝度成分（Y成分）の値が所定の閾値以上の画素を、顔が写っている可能性がある顔領域候補画素として抽出する。なお、画像の各画素の値が輝度を表すモノクロ画像である場合、顔検出部１４は、各画素の値を所定の閾値と比較する。所定の閾値は、例えば、画像上の輝度成分の最大値に0.8を乗じた値に設定される。
【００３７】
また、第１の合成画像上でユーザの顔が占める領域は比較的大きく、かつ、第１の合成画像上で顔が占める領域の大きさもある程度推定される。
そこで顔検出部１４は、顔領域候補画素に対してラベリング処理を行って、互いに隣接している顔領域候補画素の集合を顔候補領域とする。そして顔検出部１４は、顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれているか否か判定する。顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれていれば、顔検出部１４はその顔候補領域をユーザの顔が写っている顔領域と判定する。
なお、顔候補領域の大きさは、例えば、顔候補領域の水平方向の最大幅の画素数で表される。この場合、基準範囲は、例えば、第１の合成画像の水平方向画素数の1/4以上〜2/3以下に設定される。あるいは、顔候補領域の大きさは、例えば、顔候補領域に含まれる画素数で表されてもよい。この場合、基準範囲は、例えば、第１の合成画像全体の画素数の1/16以上〜4/9以下に設定される。
【００３８】
顔検出部１４は、顔候補領域の大きさだけでなく、顔候補領域の形状も、顔候補領域を顔領域と判定するための判定条件に加えてもよい。人の顔は、一般に略楕円形状を有している。そこで顔検出部１４は、例えば、顔候補領域の大きさが上記の基準範囲に含まれ、かつ、顔候補領域の円形度が、一般的な顔の輪郭に相当する所定の閾値以上である場合に顔候補領域を顔領域としてもよい。なお顔検出部１４は、顔候補領域の輪郭上に位置する画素の合計を顔候補領域の周囲長として求め、顔候補領域内の総画素数に4πを乗じた値を周囲長の２乗で除することにより円形度を算出できる。
【００３９】
あるいは、顔検出部１４は、顔候補領域の輪郭上の各画素の座標を楕円方程式に当てはめて最小二乗法を適用することにより、顔候補領域を楕円近似してもよい。そして顔検出部１４は、その楕円の長軸と短軸の比が一般的な顔の長軸と短軸の比の範囲に含まれる場合に、顔候補領域を顔領域としてもよい。なお、顔検出部１４は、楕円近似により顔候補領域の形状を評価する場合、第１の合成画像の各画素の輝度成分に対して近傍画素間演算を行ってエッジに相当するエッジ画素を検出してもよい。この場合、顔検出部１４は、エッジ画素を例えばラベリング処理を用いて連結し、一定の長さ以上に連結されたエッジ画素を顔候補領域の輪郭とする。
【００４０】
なお、顔検出部１４は、画像上に写っている顔の領域を検出する他の様々な方法の何れかに従って顔領域を検出してもよい。例えば、顔検出部１４は、顔候補領域と一般的な顔の形状に相当するテンプレートとの間でテンプレートマッチングを行って、顔候補領域とテンプレートとの一致度を算出し、その一致度が所定値以上である場合に、顔候補領域を顔領域と判定してもよい。
【００４１】
顔検出部１４は、顔領域を抽出できると、顔領域を表す情報を生成する。例えば、顔領域を表す情報は、画像と同一のサイズを有し、かつ顔領域内の画素と顔領域外の画素とが異なる画素値を持つ２値画像とすることができる。
そして顔検出部１４は、顔領域を表す情報をプルキンエ像検出部１５へ渡す。一方、顔検出部１４は、顔領域の検出に失敗した場合、例えば、上述した顔領域の検出条件が満たされない場合、画像生成部１３へ第１の積算数を増やすよう通知する。
【００４２】
さらに、顔検出部１４は、ユーザの顔向きを判定してもよい。この場合、顔検出部１４は、例えば、顔領域内で眼、鼻の穴、口などの特徴的な部位を検出する。そのために、例えば、顔検出部１４は、顔領域と一般的なそれらの部位の形状に相当するテンプレートとの間で相対的な位置を変えつつテンプレートマッチングを行って、顔領域とテンプレートとの一致度を算出する。そして顔検出部１４は、顔領域内の特定位置で一致度が所定値以上である場合に、その特定位置にテンプレートに相当する部位が写っていると判定する。
【００４３】
顔検出部１４は、部位の位置情報に基づいて顔の中心線を求める。例えば、顔検出部１４は、左右の鼻の穴の重心を結ぶ線の第１の中点を求める。また顔検出部１４は、左右の眼の重心を結ぶ線の第２の中点を求める。そして顔検出部１４は、第１の中点と第２の中点を結ぶ線を顔中心線とする。
顔検出部１４は顔中心線の左右の顔領域の画素数の比率、あるいは、顔中心線上の所定の点から顔領域の左右の端点までの最大距離の比率を求める。そして顔検出部１４は、その比率と、顔の向きとの関係を表す顔向き参照テーブルを参照することにより、ユーザの顔の向きを決定する。なお、その比率と顔の向きとの関係は、予め実験により決定され、その関係を表す顔向き参照テーブルは、予めメモリ５に記憶される。
【００４４】
顔検出部１４は、例えば、カメラ３に対して正対しているときの顔の向きを0°とし、カメラ３から見て右側を向いているときに正の値、左側を向いているときに負の値を持つ、顔の向きを表す水平方向の角度値を作成する。同様に、顔検出部１４は、カメラ３に対して正対しているときの顔の向きを0°とし、カメラ３から見て上側を向いているときに正の値、下側を向いているときに負の値を持つ、顔の向きを表す垂直方向の角度値を作成する。そして顔検出部１４は、その水平方向の角度値と垂直方向の角度値の組み合わせを、顔の向きを表す情報としてインターフェース部４を介して出力する。
【００４５】
プルキンエ像検出部１５は、視線検出処理またはキャリブレーション処理の実行中において、第２の合成画像上の顔領域内でユーザの眼が写っている領域を検出し、眼が写っている領域内でプルキンエ像を検出する。
眼に相当する画素の輝度は、眼の周囲に相当する画素の輝度と大きく異なる。そこでプルキンエ像検出部１５は、顔領域内の各画素に対して、例えば、Sobelフィルタを用いて垂直方向の近傍画素間差分演算を行って垂直方向に輝度が変化するエッジ画素を検出する。そしてプルキンエ像検出部１５は、例えば、エッジ画素が略水平方向に眼の大きさに相当する所定数以上連結された２本のエッジ線で囲まれた領域を眼の領域とする。
あるいは、プルキンエ像検出部１５は、画像上の眼の像を表すテンプレートと、顔領域とのテンプレートマッチングにより、顔領域内でテンプレートに最も一致する領域を検出し、その検出した領域を眼の領域としてもよい。
【００４６】
さらに、プルキンエ像検出部１５は、眼の領域内で瞳孔が写っている領域を検出する。本実施形態では、プルキンエ像検出部１５は、瞳孔に相当するテンプレートと眼の領域との間でテンプレートマッチングを行い、眼の領域内でテンプレートとの一致度が最も高くなる領域を検出する。そしてプルキンエ像検出部１５は、一致度の最高値が所定の一致度閾値よりも高い場合、その検出した領域に瞳孔が写っていると判定する。なお、テンプレートは、瞳孔の大きさに応じて複数準備されてもよい。この場合、プルキンエ像検出部１５は、各テンプレートと眼の領域とのテンプレートマッチングをそれぞれ実行し、一致度の最高値を求める。そして一致度の最高値が一致度閾値よりも高い場合、プルキンエ像検出部１５は、一致度の最高値に対応するテンプレートと重なった領域に瞳孔が写っていると判定する。なお、一致度は、例えば、テンプレートとそのテンプレートと重なった領域との正規化相互相関値として算出される。また一致度閾値は、例えば、0.7または0.8に設定される。
【００４７】
また瞳孔が写っている領域の輝度は、その周囲の領域の輝度よりも低く、瞳孔は略円形である。そこでプルキンエ像検出部１５は、眼の領域内で、同心円状に半径の異なる２本のリングを設定する。そしてプルキンエ像検出部１５は、外側のリングに相当する画素の輝度の平均値から内側の画素の輝度の平均値を引いた差分値が所定の閾値よりも大きい場合、その内側のリングで囲まれた領域を瞳孔領域としてもよい。またプルキンエ像検出部１５は、内側のリングで囲まれた領域の平均輝度値が所定の閾値以下であることを、瞳孔領域として検出する条件に加えてもよい。この場合、所定の閾値は、例えば、眼の領域内の最大輝度値と最小輝度値の差の10％〜20％を、最小輝度値に加えた値に設定される。
プルキンエ像検出部１５は、瞳孔領域の検出に成功した場合、瞳孔領域に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、瞳孔領域の重心の座標として算出する。一方、プルキンエ像検出部１５は、瞳孔領域の検出に失敗した場合、画像生成部１３へ第２の積算数を増やすよう通知する。
【００４８】
またプルキンエ像検出部１５は、眼の領域内で光源２のプルキンエ像を検出する。光源２のプルキンエ像が写っている領域の輝度は、その周囲の領域の輝度よりも高い。また、光源２のプルキンエ像が写っている領域の形状は、各光源の発光面の形状と略一致する。そこでプルキンエ像検出部１５は、眼の領域内で、光源の発光面の輪郭形状と略一致する形状を持ち、かつ、大きさが異なるとともに中心が一致する２本のリングを設定する。そしてプルキンエ像検出部１５は、内側のリングに相当する画素の輝度の平均値である内部輝度平均値から外側の画素の輝度の平均値を引いた差分値が所定の差分閾値よりも大きく、かつ内側輝度平均値が所定の輝度閾値よりも高い領域を検出する。そしてプルキンエ像検出部１５は、その検出された領域内の内側のリングで囲まれた領域を光源２のプルキンエ像とする。なお、差分閾値は、例えば、眼の領域内の近傍画素間の差分値の平均値とすることができる。また所定の輝度閾値は、例えば、眼の領域内での輝度値の最高値の80%とすることができる。
【００４９】
なお、プルキンエ像検出部１５は、画像上で瞳孔が写っている領域を検出する他の様々な方法の何れかを用いて、瞳孔が写っている領域を検出してもよい。同様に、プルキンエ像検出部１５は、画像上で光源のプルキンエ像が写っている領域を検出する他の様々な方法の何れかを用いて、光源のプルキンエ像が写っている領域を検出してもよい。
【００５０】
プルキンエ像検出部１５は、光源２のプルキンエ像の検出に成功した場合、光源に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、プルキンエ像の重心の座標として算出する。一方、プルキンエ像検出部１５は、光源のプルキンエ像の検出に失敗した場合、画像生成部１３へ第２の積算数を増やすよう通知する。
プルキンエ像検出部１５は、キャリブレーション処理の実行時の場合、プルキンエ像の重心及び瞳孔重心をキャリブレーション部１７へ通知する。一方、プルキンエ像検出部１５は、視線検出処理の実行時には、プルキンエ像の重心及び瞳孔重心を視線検出部１６へ通知する。
【００５１】
視線検出部１６は、視線検出処理の実行中において、プルキンエ像の重心及び瞳孔重心に基づいて、ユーザの視線方向を検出する。
【００５２】
角膜の表面は略球形であるため、視線方向によらず、光源のプルキンエ像の位置はほぼ一定となる。一方、瞳孔重心は、ユーザの視線方向に応じて移動する。そのため、視線検出部１６は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求めることにより、ユーザの視線方向を検出できる。
【００５３】
本実施形態では、視線検出部１６は、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、例えば、瞳孔重心の水平方向座標及び垂直方向座標からプルキンエ像の重心の水平方向座標及び垂直方向座標を減算することにより求める。そして視線検出部１６は、瞳孔重心の相対的な位置とユーザの視線方向との関係を表す視線方向参照テーブルを参照することにより、ユーザの視線方向を決定する。視線検出部１６は、ユーザの視線方向を、インターフェース部４を介して出力する。
【００５４】
図５は、視線方向参照テーブルの一例を示す図である。視線方向参照テーブル５００の左側の列の各欄には、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置の座標が表される。また視線方向参照テーブル５００の右側の列の各欄には、同じ行の瞳孔重心の相対的な位置の座標に対応する視線方向が表される。なお、瞳孔重心の相対的な位置の座標は、第２の合成画像上の画素単位で表される。一方、視線方向は、所定方向、例えば、ユーザの視線方向がカメラ３の光軸と平行な方向を基準方向とし、基準方向と視線方向とがなす水平方向の角度と垂直方向の角度の組で表される。例えば、行５０１には、瞳孔重心の相対的な位置の座標(0,0)に対する視線方向が(0°,0°)であることが示されている。また、行５０２には、瞳孔重心の相対的な位置の座標(-2,0)に対する視線方向が(-10°,0°)であることが示されている。
【００５５】
キャリブレーション部１７は、キャリブレーション処理を実行することにより視線方向参照テーブルを更新する。
キャリブレーション部１７は、例えば、制御部６から視線検出装置１が起動したことを示す信号を受信したときに、キャリブレーション処理を実行する。キャリブレーション処理が開始されると、キャリブレーション部１７は、例えば、視線検出装置１が実装された装置のディスプレイなどのユーザインターフェースを介して、ユーザに、所定の基準位置を見ることを指示するメッセージを報知する。基準位置は、例えば、視線検出装置１が実装された装置のディスプレイの中心、あるいはカメラ３の設置位置などとすることができる。またキャリブレーションの実行中、ユーザは、その基準位置を注視するものとする。
【００５６】
キャリブレーション部１７は、ユーザが基準位置を注視しているときに撮影された原画像から作成される第２の合成画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部１５から受け取る。そしてキャリブレーション部１７は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、基準位置に対応する視線方向に対応させるよう、視線方向参照テーブルを更新する。同様に、キャリブレーション部１７は、ユーザが他の基準位置を注視しているときに撮影された原画像に基づいて作成された第２の合成画像から求められたプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、その基準位置に対応する視線方向と対応づけるよう視線方向参照テーブルを更新する。
さらに、キャリブレーション部１７は、その他の視線方向に対するプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、既に求められている視線方向に対応する瞳孔重心の相対的な位置を用いて例えば線形補間することにより決定する。
キャリブレーション部１７は、更新された視線方向参照テーブルをメモリ５に保存する。
【００５７】
図６及び図７は、制御部６により制御される視線検出処理の動作フローチャートである。制御部６は、所定の周期、例えば、100m秒〜1秒間隔で、この動作フローチャートに示される視線検出処理を繰返し実行する。
【００５８】
制御部６のカメラ制御部１２は、カメラ３から、所定の周期及び所定の露出条件でユーザの顔を撮影した複数の原画像を取得する（ステップＳ１０１）。そしてカメラ制御部１２は、各原画像をメモリ５に一時的に記憶させる。また、制御部６の画像生成部１３は、第１の積算数を決定する（ステップＳ１０２）。画像生成部１３は、第１の積算数の原画像を合成することにより第１の合成画像を作成する（ステップＳ１０３）。そして画像生成部１３は、第１の合成画像を制御部６の顔検出部１４へ渡す。
【００５９】
顔検出部１４は、第１の合成画像に対して顔領域及び顔向き検出処理を実行する（ステップＳ１０４）。そして顔検出部１４は、顔領域及び顔向きが検出できたか否か判定する（ステップＳ１０５）。顔検出部１４は、顔領域または顔向きの何れかが検出できなかった場合（ステップＳ１０５−Ｎｏ）、画像生成部１３へ第１の積算数を増やすよう通知する。そして画像生成部１３は、第１の積算数を1以上の所定数だけ増やす（ステップＳ１０６）。そして制御部６は、ステップＳ１０３以降の処理を再度実行する。
【００６０】
一方、顔検出部１４は、顔領域と顔向きの両方が検出できた場合（ステップＳ１０５−Ｙｅｓ）、顔領域をプルキンエ像検出部１５へ通知する。また顔検出部１４は、顔向きを表す情報をインターフェース部４を介して視線検出装置１が実装された装置へ出力する（ステップＳ１０７）。
【００６１】
図７に示されるように、画像生成部１３は、第１の積算数よりも多い第２の積算数を決定する（ステップＳ１０８）。そして画像生成部１３は、第２の積算数の原画像を合成することにより第２の合成画像を作成する（ステップＳ１０９）。画像生成部１３は、第２の合成画像をプルキンエ像検出部１５へ渡す。プルキンエ像検出部１５は、第２の合成画像上の顔領域に対して瞳孔及びプルキンエ像の検出処理を実行する（ステップＳ１１０）。そしてプルキンエ像検出部１５は、瞳孔及びプルキンエ像が検出できたか否か判定する（ステップＳ１１１）。プルキンエ像検出部１５は、瞳孔またはプルキンエ像の何れかが検出できなかった場合（ステップＳ１１１−Ｎｏ）、画像生成部１３へ第２の積算数を増やすよう通知する。そして画像生成部１３は、第２の積算数を1以上の所定数だけ増やす（ステップＳ１１２）。そして制御部６は、ステップＳ１０９以降の処理を再度実行する。
【００６２】
一方、プルキンエ像検出部１５は、瞳孔とプルキンエ像の両方が検出できた場合（ステップＳ１１１−Ｙｅｓ）、プルキンエ像の重心及び瞳孔重心を視線検出部１６へ通知する。視線検出部１６は、プルキンエ像の重心と瞳孔重心の相対的な位置関係に基づいてユーザの視線方向を決定する（ステップＳ１１３）。そして視線検出部１６は、視線方向を表す情報をインターフェース部４を介して視線検出装置１が実装された装置へ出力する（ステップＳ１１４）。
【００６３】
なお、顔検出部１４は、ステップＳ１０４にて顔領域検出処理のみを実行してもよい。この場合、ステップＳ１０５においても、顔検出部１４は、顔領域が検出されたか否かを判定する。
【００６４】
以上に説明してきたように、この視線検出装置は、所定の露出条件で撮影された原画像を互いに異なる枚数だけ合成することで、顔領域及び顔向きなどの検出に適した合成画像と瞳孔及びプルキンエ像などの検出に適した合成画像とを別個に作成する。そのため、この視線検出装置は、周囲の環境が明るい場合でも、顔領域を参照してユーザの視線方向を検出できる。またこの視線検出装置は、プルキンエ像などの検出に失敗したとしても、原画像の積算数を変更するだけで、プルキンエ像などの検出に適した合成画像を作成できる。したがって、この視線検出装置は、プルキンエ像の検出に失敗してからユーザの眼を再撮影する必要はなく、プルキンエ像が検出できるまでのタイムラグを短縮できるので、視線方向を検出するのに要する時間の増加を抑制できる。
【００６５】
なお、本発明は上記の実施形態に限定されるものではない。例えば、カメラは、視線検出処理の実行中、照明光源が消灯した状態で撮影した暗画像を一定周期で生成してもよい。そして制御部の画像生成部は、第２の合成画像の各画素の輝度値から、暗画像の対応する画素の輝度値を減算することにより得られた差分画像を、補正された第２の合成画像としてもよい。
この場合、暗画像と原画像とでは、光源のプルキンエ像のみが異なり、かつ暗画像にはプルキンエ像が写っていない。そのため、上記のように第２の合成画像と暗画像の差分画像では、プルキンエ像が強調される。一方、角膜上に太陽または室内灯など他の光源の像が写っていても、原画像上の他の光源の像と暗画像上の他の光源の像はほぼ同一であるため、差分画像上では、他の光源の像はキャンセルされてそのコントラストは低下する。そのため、プルキンエ像検出部は、補正された第２の合成画像に基づいてプルキンエ像を検出することで、他の光源の像を視線検出装置が有する光源のプルキンエ像として誤検出し難くなり、より正確にプルキンエ像を検出できる。
なお、暗画像を撮影するための露出条件は、原画像を撮影するための露出条件と同一でもよい。あるいは、暗画像を撮影するための露出条件は、第２の合成画像を１回の撮影で得るための露光量よりも小さく、かつ、原画像を撮影するための露出条件よりも露光量が多くなるように設定されてもよい。
【００６６】
他の変形例では、顔検出部は、最新の第１の合成画像上での顔領域の位置または顔向きを決定するために、過去に検出された顔領域の位置及び顔向きを参照してもよい。例えば、顔検出部は、ブロックマッチングなどの動き検出処理を利用して、過去の合成画像で検出された顔領域などと最も一致する最新の第１の合成画像上の領域を求め、その領域を顔領域としてもよい。あるいは、顔検出部は、様々なトラッキング技術の何れかを利用して、最新の第１の合成画像上で抽出された顔候補領域中、過去に検出された顔領域の位置から最も確からしい顔候補領域を求めて、その顔候補領域を顔領域としてもよい。さらに、視線検出装置が実装された装置が、ジャイロなどの角速度を検出するセンサを搭載している場合、顔検出部は、そのセンサから角速度に関する情報を取得して、顔向きの判定に利用してもよい。例えば、顔検出部は、過去に顔向きを検出したときから最新の第１の合成画像が得られたときまでの装置の回転角を、角速度に関する情報に基づいて求め、その回転角だけ顔向きが変化したと判定してもよい。
さらに他の変形例では、プルキンエ像検出部は、第２の合成画像全体に対して瞳孔の検出処理を行ってもよい。
【００６７】
また、上記の実施形態及び変形例による制御部の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【００６８】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００６９】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
ユーザの顔を照明する光源と、
所定の露出条件でユーザの顔を複数回撮影することにより複数の原画像を生成する撮像部と、
前記複数の原画像のうち、第１の数の原画像を合成することにより第１の合成画像を生成し、かつ、前記複数の原画像のうち、前記第１の数よりも多い第２の数の原画像を合成することにより第２の合成画像を生成する画像生成部と、
前記第１の合成画像からユーザの顔を検出する顔検出部と、
前記第２の合成画像からユーザの瞳孔及び前記光源のプルキンエ像を検出するプルキンエ像検出部と、
前記ユーザの瞳孔と前記光源のプルキンエ像の位置関係に基づいてユーザの視線方向を検出する視線検出部と、
を有する視線検出装置。
（付記２）
前記所定の露出条件は、前記撮像部の撮影対象範囲内の平均照度が想定される最大値である場合に前記原画像上で前記ユーザの顔に相当する画素の輝度値が飽和しない条件である、付記１に記載の視線検出装置。
（付記３）
前記顔検出部が前記ユーザの顔の検出に失敗した場合、前記画像生成部は、前記第１の数を所定数増加するよう修正し、前記複数の原画像のうち、該修正された第１の数の原画像を合成することにより修正された第１の合成画像を生成し、前記顔検出部は、該修正された第１の合成画像からユーザの顔を検出する、付記１または２に記載の視線検出装置。
（付記４）
前記プルキンエ像検出部が前記ユーザの瞳孔または前記光源のプルキンエ像の検出に失敗した場合、前記画像生成部は、前記第２の数を所定数増加するよう修正し、前記複数の原画像のうち、該修正された第２の数の原画像を合成することにより修正された第２の合成画像を生成し、前記プルキンエ像検出部は、該修正された第２の合成画像からユーザの瞳孔及び前記光源のプルキンエ像を検出する、付記１〜３の何れか一項に記載の視線検出装置。
（付記５）
前記プルキンエ像検出部は、前記顔検出部で検出されたユーザの顔に対応する前記第２の合成画像上の領域内でユーザの瞳孔及び前記光源のプルキンエ像を検出する、付記１〜４の何れか一項に記載の視線検出装置。
（付記６）
前記撮像部は、前記光源が消灯した状態で前記ユーザの顔を撮影した暗画像をさらに取得し、
前記画像生成部は、前記複数の原画像のうち、前記第２の数の原画像を合成した画像と前記暗画像の差分画像を前記第２の合成画像として生成する、
付記１〜５の何れか一項に記載の視線検出装置。
（付記７）
所定の露出条件で、光源により照明されたユーザの顔を複数回撮影することにより複数の原画像を生成し、
前記複数の原画像のうち、第１の数の原画像を合成することにより第１の合成画像を生成し、
前記複数の原画像のうち、前記第１の数よりも多い第２の数の原画像を合成することにより第２の合成画像を生成し、
前記第１の合成画像からユーザの顔を検出し、
前記第２の合成画像からユーザの瞳孔及び前記光源のプルキンエ像を検出し、
前記ユーザの瞳孔と前記光源のプルキンエ像の位置関係に基づいてユーザの視線方向を検出する、
ことを含む視線検出方法。
（付記８）
所定の露出条件で、光源により照明されたユーザの顔を複数回撮影することにより生成された複数の原画像を取得し、
前記複数の原画像のうち、第１の数の原画像を合成することにより第１の合成画像を生成し、
前記複数の原画像のうち、前記第１の数よりも多い第２の数の原画像を合成することにより第２の合成画像を生成し、
前記第１の合成画像からユーザの顔を検出し、
前記第２の合成画像からユーザの瞳孔及び前記光源のプルキンエ像を検出し、
前記ユーザの瞳孔と前記光源のプルキンエ像の位置関係に基づいてユーザの視線方向を検出する、
ことをコンピュータに実行させる視線検出用コンピュータプログラム。
【符号の説明】
【００７０】
１    視線検出装置
２    光源
３    カメラ
４    インターフェース部
５    メモリ
６    制御部
１１    光源制御部
１２    カメラ制御部
１３    画像生成部
１４    顔検出部
１５    プルキンエ像検出部
１６    視線検出部
１７    キャリブレーション部
【図１】
0005601179.tif 000002
【図２】
0005601179.tif 000003
【図３】
0005601179.tif 000004
【図４】
0005601179.tif 000005
【図５】
0005601179.tif 000006
【図６】
0005601179.tif 000007
【図７】
0005601179.tif 000008