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