視線検出装置及び視線検出方法
【課題】キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる視線検出装置を提供することを目的とする。
【解決手段】視線検出装置1は、光源11の点灯中に、眼を含む領域であって、ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部12と、その画像から表示部2からユーザの顔までの距離に応じて変化する距離特徴量を求める距離特徴量抽出部26と、距離特徴量に基づいて表示部2からユーザの顔までの距離を推定する距離推定部27と、画像に含まれる眼の領域から光源の角膜反射像とユーザの瞳孔重心とを検出するプルキンエ像検出部24と、瞳孔重心と角膜反射像との位置関係に応じてユーザの視線方向を検出する視線検出部25と、視線方向と表示部からユーザの顔までの距離に基づいて、表示部2上のユーザの注視位置を求める注視位置検出部28とを有する。
【解決手段】視線検出装置1は、光源11の点灯中に、眼を含む領域であって、ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部12と、その画像から表示部2からユーザの顔までの距離に応じて変化する距離特徴量を求める距離特徴量抽出部26と、距離特徴量に基づいて表示部2からユーザの顔までの距離を推定する距離推定部27と、画像に含まれる眼の領域から光源の角膜反射像とユーザの瞳孔重心とを検出するプルキンエ像検出部24と、瞳孔重心と角膜反射像との位置関係に応じてユーザの視線方向を検出する視線検出部25と、視線方向と表示部からユーザの顔までの距離に基づいて、表示部2上のユーザの注視位置を求める注視位置検出部28とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、角膜反射像を検出することにより視線方向を検出する視線検出装置及び視線検出方法に関する。
【背景技術】
【0002】
従来より、ユーザの眼を撮影した画像を解析することにより光源の角膜反射像(プルキンエ像)を検出することで、ユーザの視線方向を検出する視線検出装置が開発されている。
このような視線検出装置では、ユーザが注視する位置を正確に検出するために、ユーザが視線検出装置が搭載された装置を利用する前に、いわゆるキャリブレーション処理が行われる。キャリブレーション処理では、例えば、視線検出装置は、予め指定された複数の方向をユーザが注視した時の画像上のプルキンエ像の位置と瞳孔の位置の差を測定し、参照テーブルにその差と注視位置とを対応付けて格納する。そして視線検出装置は、視線検出処理を実行する際には、測定されたプルキンエ像の位置と瞳孔の位置の差に対応する注視位置を、参照テーブルを参照することで決定する。そして視線検出装置が求めた注視位置に応じて、視線検出装置が搭載された装置が画面スクロール等の制御動作を実行することで、ユーザの操作の手間を軽減できる。
【0003】
しかし、視線検出処理の実行時における、視線検出装置が搭載された装置とユーザとの位置関係が、キャリブレーション処理の実行時における、視線検出装置が搭載された装置とユーザとの位置関係と異なることがある。特に、視線検出装置が、携帯電話または携帯情報端末といった、ユーザが自らの手で保持する装置に搭載される場合、視線検出処理の実行時におけるその装置とユーザ間の距離を常に一定に保つことは困難である。そしてユーザと装置との間の距離が変われば、視線方向が同一であってもユーザが注視する位置は変化する。そのため、視線検出装置は、キャリブレーション時に作成した参照テーブルを用いても、ユーザが注視する位置を正確に検出できないおそれがあった。そこで、視線検出装置からユーザまでの距離を測定し、その距離及び視線方向に基づいてユーザが注視する位置を検出する技術が提案されている(例えば、特許文献1及び2を参照)。
【0004】
例えば、このような公知技術の一例による装置は、その装置からオペレータまでの距離を、オペレータを撮影した画像から自動焦点機能により測定する。そしてその装置は、その距離及び虹彩とプルキンエ像間の画像上での位置の差に基づいて、表示部の画面上でオペレータが注視する位置を求める。
また他の公知技術の一例による装置は、ユーザの顔を撮影した画像から顔の複数の特徴点及び輪郭を抽出し、複数の特徴点間の位置関係に基づいて顔の向きを求めるとともに、輪郭の大きさに基づいて装置からユーザの顔までの距離を求める。そしてこの装置は、顔の向きまたは装置からユーザの顔までの距離に応じて、表示部の表示画面のスクロール、拡大、縮小などの制御を実行する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−187091号公報
【特許文献2】特開2009−31368号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、自動焦点機能により画像から装置からオペレータまでの距離を測定するためには、装置は、被写界深度が浅い光学系と、イメージセンサ上に焦点を結ぶ物点までの被写体距離を変えるためにその光学系を移動させる機構を備えることになる。そのため、装置全体の構造が複雑化してしまう。
また、画像から抽出された顔の特徴点または輪郭に基づいて画面表示を制御する装置は、ユーザが顔を動かさず、視線のみを動かすと、ユーザが注視している位置が移動したことを検知できないので、画面表示を適切に制御できないおそれがあった。
【0007】
そこで本明細書は、キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる視線検出装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
一つの実施形態によれば、視線検出装置が提供される。この視線検出装置は、ユーザの眼を照射する光源と、光源が点灯している間に眼を含む領域であって、ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、表示部からユーザの顔までの距離とその距離に応じて変化する画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、画像から距離特徴量を求める距離特徴量抽出部と、距離情報を参照することにより距離特徴量に対応する表示部からユーザの顔までの距離を推定する距離推定部と、画像に含まれる眼の領域から、光源の角膜反射像とユーザの瞳孔重心とを検出するプルキンエ像検出部と、瞳孔重心と角膜反射像との位置関係に応じてユーザの視線方向を検出する視線検出部と、視線方向と表示部からユーザの顔までの距離に基づいて、表示部上のユーザの注視位置を求める注視位置検出部とを有する。
【0009】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【0010】
本明細書に開示された視線検出装置は、キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態による視線検出装置を搭載した携帯端末のハードウェア構成図である。
【図2】第1の実施形態による視線検出装置を搭載した携帯端末の概略正面図である。
【図3】第1の実施形態による視線検出装置の制御部の機能ブロック図である。
【図4】参照テーブルの一例を示す図である。
【図5】(a)は、被写体距離が比較的近い第1の距離である場合の画像上のユーザの顔を表す模式図である。(b)は、被写体距離が第1の距離よりも遠い第2の距離である場合の画像上のユーザの顔を表す模式図である。
【図6】画像上での左右の鼻孔の重心間の間隔と被写体距離との関係の実験結果を表すグラフである。
【図7】注視位置テーブルの一例を示す図である。
【図8】キャリブレーション処理の動作フローチャートである。
【図9】視線検出処理の動作フローチャートである。
【図10】(a)は、プルキンエ像が写った画像の一例を表し、(b)は、(a)の水平方向の線に沿った画素のうち、輝度値が飽和した画素の数と被写体距離との関係の実験結果を表すグラフである。
【図11】第3の実施形態による視線検出装置を搭載した携帯端末の概略正面図である。
【図12】二つの光源のプルキンエ像間の間隔と被写体距離との関係の実験結果を表すグラフである。
【図13】第4の実施形態による視線検出装置の制御部の機能ブロック図である。
【図14】傾き検出処理の動作フローチャートである。
【発明を実施するための形態】
【0012】
以下、図を参照しつつ、第1の実施形態による視線検出装置について説明する。
この視線検出装置は、光源のプルキンエ像を撮影した画像を解析し、プルキンエ像と瞳孔の重心間の距離に基づいてユーザの視線方向を検出する。さらにこの視線検出装置は、その画像上で、視線検出装置が搭載された装置の表示部からユーザの顔までの距離に応じて変化する距離特徴量として、顔の複数の特徴的な部位間の間隔を求め、その間隔に応じて表示部からユーザの顔までの距離を求める。そしてこの視線検出装置は、視線検出装置が搭載された装置の表示部からユーザの顔までの距離とユーザの視線方向とに基づいて、表示部の画面上のユーザの注視位置を特定する。なお、この実施形態では、視線検出装置が搭載された装置が有するカメラの光学系の前側主点とその装置の表示部の位置の差は、ユーザの顔から表示部までの距離に対して無視できる程度に小さい。そこで以下では、便宜上、視線検出装置が搭載された装置の表示部からユーザの顔までの距離を被写体距離と呼ぶ。
【0013】
図1は、第1の実施形態による視線検出装置を搭載した携帯端末のハードウェア構成図である。携帯端末1は、ユーザインターフェース2と、メモリ3と、制御部4と、筺体5と、視線検出装置10とを有する。なお、携帯端末1は、例えば、携帯電話機または携帯情報端末である。さらに携帯端末1は、携帯端末1を他の機器に接続するための通信インターフェース回路(図示せず)を有していてもよい。なお、図1は、携帯端末1が有する構成要素を説明するための図であり、携帯端末1の各構成要素の実際の配置を表した図ではないことに留意されたい。
【0014】
ユーザインターフェース2は、表示部の一例であり、例えば、タッチパネルディスプレイを有する。そしてユーザインターフェース2は、筺体5の正面において、ユーザインターフェース2の表示画面が、筺体5の正面に対向するユーザを向くように配置される。そしてユーザインターフェース2は、例えば、様々なアイコンまたは操作ボタンを制御部4からの制御信号に応じて表示する。またユーザインターフェース2は、表示されたアイコンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部4へ出力する。
なお、ユーザインターフェース2は、液晶ディスプレイといった表示装置と、キーパッドなどの複数の操作スイッチを有していてもよい。
【0015】
メモリ3は、例えば、読み書き可能な不揮発性の半導体メモリを有する。そしてメモリ3は、制御部4上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。またメモリ3は、ユーザインターフェース2の表示画面に表示中のアイコンまたは操作ボタンの領域を表す情報を記憶する。
【0016】
さらに、メモリ3は、視線検出装置10の記憶部としても機能する。そしてメモリ3は、ユーザが注視する位置を検出するために利用される各種のデータを記憶する。例えば、メモリ3は、プルキンエ像の重心に対する瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを記憶する。またメモリ3は、画像から抽出された距離特徴量と被写体距離との関係を表す距離参照テーブルを記憶する。さらにメモリ3は、被写体距離及び視線方向とユーザが注視する位置との関係を表す注視位置テーブルを記憶する。さらに、メモリ3は、視線検出処理を実行するプログラムを記憶する。
なお、視線検出装置10の記憶部として機能するメモリ回路は、メモリ3とは別個に携帯端末1に実装されてもよい。
【0017】
視線検出装置10は、ユーザインターフェース2の表示画面上でユーザが注視している位置を求める。そして視線検出装置10は、ユーザが注視している位置を表す情報を制御部4が実行中のアプリケーションプログラムに渡す。なお、視線検出装置10の詳細については後述する。
【0018】
制御部4は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部4は、携帯端末1の各部と信号線を介して接続されており、携帯端末1全体を制御する。例えば、制御部4は、ユーザインターフェース2から受け取った操作信号と実行中のアプリケーションプログラムに応じた処理を実行する。
また制御部4は、視線検出装置10の制御部としても機能する。なお、視線検出装置10の制御部としての機能及び動作に関しては後述する。
さらに、制御部4は、アプリケーション実行部の一例であり、例えば、視線検出装置10により求められた、ユーザが注視している位置とメモリ3に記憶されているユーザインターフェース2の表示画面上の各アイコンの表示領域とを比較する。そして制御部4は、ユーザが注視している位置と何れかのアイコンまたは操作ボタンの表示領域とが重なっている場合、そのアイコンまたは操作ボタンに応じた処理を実行する。
【0019】
図2は、携帯端末1の概略正面図である。携帯端末1の略中央に設けられたユーザインターフェース2の表示画面2aには、地図201とその周囲に画面をスクロールさせるためのスクロールボタン202〜205が表示されている。
この場合、ユーザが注視する位置がスクロールボタン202〜205の何れかの表示領域と重なっていれば、制御部4は、そのスクロールボタンに関して予め設定された方向に画面をスクロールさせる。また、ユーザの注視位置が地図201が表示された領域内であり、かつ、ユーザが表示画面2aに顔を近づけると、制御部4はユーザインターフェース2に地図を拡大表示させてもよい。
【0020】
視線検出装置10は、ユーザの視線方向及び表示画面2a上の注視位置を検出するために、光源11と、カメラ12と、メモリ3と、制御部4とを有する。
光源11は、携帯端末1を操作するユーザの顔、特に眼及びその周囲を照明する。そのため、光源11は、例えば、少なくとも一つの赤外発光ダイオードと、制御部4からの制御信号に応じて、赤外発光ダイオードに図示しない電源からの電力を供給する駆動回路とを有する。そして光源11は、制御部4から光源を点灯させる制御信号を受信している間、照明光を発する。
なお、視線検出装置10が有する光源11の数は、1個に限られず、視線検出装置10は、互いに異なる位置に配置される複数個の光源を有してもよい。
【0021】
カメラ12は、撮像部の一例であり、眼を含むユーザの顔の少なくとも一部の領域が写った画像を生成する。そのために、カメラ12は、光源11の光に感度を持つ2次元状に配列された固体撮像素子を有するイメージセンサと、そのイメージセンサ上にユーザの眼の像を結像する撮像光学系を有する。カメラ12は、虹彩による反射像及び光源11以外の光源からの光の角膜反射像が検出されることを抑制するために、イメージセンサと撮像光学系の間に、可視光カットフィルタをさらに有してもよい。
【0022】
また、画像が光源11のプルキンエ像を識別できる程度の解像度を有するように、カメラ12のイメージセンサの画素数は、例えば、100万、200万、あるいは400万とすることができる。またイメージセンサにより生成される画像はカラー画像であり、画素ごとに赤色(R)、緑色(G)及び青色(B)の3色の成分を持つ。各色成分は、例えば、0〜255の何れかの値をとり、色成分値が大きいほど、その色の輝度が高い。あるいは、イメージセンサにより生成される画像は、光の強度が強いほど各画素の輝度が高くなるモノクロ画像であってもよい。
カメラ12は、視線検出処理が実行されている間、光源11が点灯している間に所定の周期でユーザの顔を撮影することにより、点灯している光源により照明されたユーザの顔が写った画像を生成する。そしてカメラ12は、画像を生成する度に、生成した画像を制御部4へ出力する。
【0023】
再度図2を参照すると、携帯端末1のユーザインターフェース2の表示画面2aの上端に近接してカメラ12が配置される。このカメラ12は、表示画面2aに対向するユーザの顔を撮影できるように向けられる。
光源11は、表示画面2aに対向するユーザの顔を照明できるように、ユーザインターフェース2の外周に配置される。この例では、光源11は、ユーザインターフェース2の上端に近接し、カメラ12と並んで配置される。
【0024】
制御部4は、上述したように、携帯端末1の制御部でもあり、視線検出装置10の各部と信号線を通じて接続されている。そして制御部4は、視線検出装置10の各部へ信号線を通じて制御信号を送信することで視線検出装置10の各部を制御する。
また制御部4は、ユーザが注視している位置の情報を用いるアプリケーションが携帯端末1で実行されている間、ユーザが注視している位置を求める視線方向検出処理を実行する。また、制御部4は、携帯端末1の起動時、あるいは上記のようなアプリケーションの起動時など、特定のタイミングにおいて、光源のプルキンエ像と瞳孔重心との相対的な位置関係とユーザの視線方向との関係を求めるキャリブレーション処理を実行する。
【0025】
図3は、制御部4の視線検出処理に関する機能ブロック図である。制御部4は、光源制御部21と、カメラ制御部22と、顔検出部23と、プルキンエ像検出部24と、視線検出部25と、距離特徴量抽出部26と、距離推定部27と、注視位置検出部28と、キャリブレーション部29とを有する。
制御部4が有するこれらの各部は、制御部4が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールである。また制御部4が有するこれらの各部は、それぞれ、制御部4が有するプロセッサとは別個の回路として形成されてもよい。あるいは制御部4が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として、制御部4が有するプロセッサとは別個に携帯端末1に実装されてもよい。この場合、その集積回路は、メモリ3とは別個に、参照テーブルなどを記憶して、視線検出装置10が有する記憶部として機能する記憶回路を含んでいてもよい。
【0026】
光源制御部21は、光源11を点灯または消灯させる。光源制御部21は、例えば、視線検出処理の実行中、光源11を点灯させる。また光源制御部21は、光源11が複数含まれる場合、同時に2個以上の光源が点灯するように各光源へ制御信号を送信してもよい。同時に複数の光源が点灯すると、プルキンエ像にも点灯している複数の光源の像が含まれるので、視線検出装置10は、画像上での輝点の配置パターンが、実際に点灯している光源の配置パターンと一致するか否か調べることができる。そのため、視線検出装置10は、室内灯または太陽など、他の光源の像と視線検出装置10が有する光源の像とを識別し易くなる。
【0027】
カメラ制御部22は、視線検出処理またはキャリブレーション処理の実行中において、カメラ12が撮影するタイミングを制御する。カメラ制御部22は、光源制御部21から光源11が点灯したことを通知されると、カメラ12に対して所定の周期で撮影を実行させる撮影指示信号を送信する。そしてカメラ制御部22は、カメラ12から画像を受け取る度に、その画像を一旦メモリ3に記憶させる。
【0028】
顔検出部23は、視線検出処理またはキャリブレーション処理の実行中において、画像上でユーザの眼が写っている可能性のある領域を特定するために、カメラ12から受け取った画像上で、ユーザの顔が写っている領域を検出する。
本実施形態では、撮影時において、ユーザの顔は光源11からの赤外光で照明されており、赤外光に対する肌の反射率は比較的高い(例えば、肌の反射率は近赤外の波長域で数10%)ので、画像上で顔の肌の部分が写っている画素の輝度は高い。一方、画像上で髪の毛またはユーザの背後の領域は赤外光に対する反射率が低いかまたは光源から遠いため、髪の毛またはユーザの背後の領域が写っている画素の輝度は、相対的に低くなる。
そこで、顔検出部23は、画像の各画素の値がRGB表色系により表されているカラー画像である場合、各画素の値をYUV表色系により表される値に変換する。そして顔検出部23は、各画素の輝度成分(Y成分)の値が所定の閾値以上の画素を、顔が写っている可能性がある顔領域候補画素として抽出する。なお、画像の各画素の値が輝度を表すモノクロ画像である場合、顔検出部23は、各画素の値を所定の閾値と比較する。所定の閾値は、例えば、画像上の輝度成分の最大値に0.8を乗じた値に設定される。
【0029】
また、ユーザの視線に応じて携帯端末1の操作が実行される場合、ユーザの顔は、携帯端末1の正面を向いており、かつ、携帯端末1の正面から略数十cm離れた位置にあると想定される。そのため、画像上でユーザの顔が占める領域は比較的大きく、かつ、画像上で顔が占める領域の大きさもある程度推定される。
そこで顔検出部23は、顔領域候補画素に対してラベリング処理を行って、互いに隣接している顔領域候補画素の集合を顔候補領域とする。そして顔検出部23は、顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれているか否か判定する。顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれていれば、顔検出部23はその顔候補領域をユーザの顔が写っている顔領域と判定する。
なお、顔候補領域の大きさは、例えば、顔候補領域の水平方向の最大幅の画素数で表される。この場合、基準範囲は、例えば、画像の水平方向画素数の1/4以上〜2/3以下に設定される。あるいは、顔候補領域の大きさは、例えば、顔候補領域に含まれる画素数で表されてもよい。この場合、基準範囲は、例えば、画像全体の画素数の1/16以上〜4/9以下に設定される。
【0030】
顔検出部23は、顔候補領域の大きさだけでなく、顔候補領域の形状も、顔候補領域を顔領域と判定するための判定条件に加えてもよい。人の顔は、一般に略楕円形状を有している。そこで顔検出部23は、例えば、顔候補領域の大きさが上記の基準範囲に含まれ、かつ、顔候補領域の円形度が、一般的な顔の輪郭に相当する所定の閾値以上である場合に顔候補領域を顔領域としてもよい。なお顔検出部23は、顔候補領域の輪郭上に位置する画素の合計を顔候補領域の周囲長として求め、顔候補領域内の総画素数に4πを乗じた値を周囲長の2乗で除することにより円形度を算出できる。
【0031】
あるいは、顔検出部23は、顔候補領域の輪郭上の各画素の座標を楕円方程式に当てはめて最小二乗法を適用することにより、顔候補領域を楕円近似してもよい。そして顔検出部23は、その楕円の長軸と短軸の比が一般的な顔の長軸と短軸の比の範囲に含まれる場合に、顔候補領域を顔領域としてもよい。なお、顔検出部23は、楕円近似により顔候補領域の形状を評価する場合、画像の各画素の輝度成分に対して近傍画素間演算を行ってエッジに相当するエッジ画素を検出してもよい。この場合、顔検出部23は、エッジ画素を例えばラベリング処理を用いて連結し、一定の長さ以上に連結されたエッジ画素を顔候補領域の輪郭とする。
【0032】
なお、顔検出部23は、画像上に写っている顔の領域を検出する他の様々な方法の何れかに従って顔領域を検出してもよい。例えば、顔検出部23は、顔候補領域と一般的な顔の形状に相当するテンプレートとの間でテンプレートマッチングを行って、顔候補領域とテンプレートとの一致度を算出し、その一致度が所定値以上である場合に、顔候補領域を顔領域と判定してもよい。
【0033】
顔検出部23は、顔領域を抽出できると、顔領域を表す情報を生成する。例えば、顔領域を表す情報は、画像と同一のサイズを有し、かつ顔領域内の画素と顔領域外の画素とが異なる画素値を持つ2値画像とすることができる。
そして顔検出部23は、顔領域を表す情報をプルキンエ像検出部24へ渡す。
【0034】
プルキンエ像検出部24は、視線検出処理またはキャリブレーション処理の実行中において、顔領域内でユーザの眼が写っている領域を検出し、眼が写っている領域内でプルキンエ像を検出する。
眼に相当する画素の輝度は、眼の周囲に相当する画素の輝度と大きく異なる。そこでプルキンエ像検出部24は、顔領域内の各画素に対して、例えば、Sobelフィルタを用いて垂直方向の近傍画素間差分演算を行って垂直方向に輝度が変化するエッジ画素を検出する。そしてプルキンエ像検出部24は、例えば、エッジ画素が略水平方向に眼の大きさに相当する所定数以上連結された2本のエッジ線で囲まれた領域を眼の領域とする。
あるいは、プルキンエ像検出部24は、画像上の眼の像を表すテンプレートと、顔領域とのテンプレートマッチングにより、顔領域内でテンプレートに最も一致する領域を検出し、その検出した領域を眼の領域としてもよい。
【0035】
さらに、プルキンエ像検出部24は、眼の領域内で瞳孔が写っている領域を検出する。本実施形態では、プルキンエ像検出部24は、瞳孔に相当するテンプレートと眼の領域との間でテンプレートマッチングを行い、眼の領域内でテンプレートとの一致度が最も高くなる領域を検出する。そしてプルキンエ像検出部24は、一致度の最高値が所定の一致度閾値よりも高い場合、その検出した領域に瞳孔が写っていると判定する。なお、テンプレートは、瞳孔の大きさに応じて複数準備されてもよい。この場合、プルキンエ像検出部24は、各テンプレートと眼の領域とのテンプレートマッチングをそれぞれ実行し、一致度の最高値を求める。そして一致度の最高値が一致度閾値よりも高い場合、プルキンエ像検出部24は、一致度の最高値に対応するテンプレートと重なった領域に瞳孔が写っていると判定する。なお、一致度は、例えば、テンプレートとそのテンプレートと重なった領域との正規化相互相関値として算出される。また一致度閾値は、例えば、0.7または0.8に設定される。
【0036】
また瞳孔が写っている領域の輝度は、その周囲の領域の輝度よりも低く、瞳孔は略円形である。そこでプルキンエ像検出部24は、眼の領域内で、同心円状に半径の異なる2本のリングを設定する。そしてプルキンエ像検出部24は、外側のリングに相当する画素の輝度の平均値から内側の画素の輝度の平均値を引いた差分値が所定の閾値よりも大きい場合、その内側のリングで囲まれた領域を瞳孔領域としてもよい。またプルキンエ像検出部24は、内側のリングで囲まれた領域の平均輝度値が所定の閾値以下であることを、瞳孔領域として検出する条件に加えてもよい。この場合、所定の閾値は、例えば、眼の領域内の最大輝度値と最小輝度値の差の10%〜20%を、最小輝度値に加えた値に設定される。
プルキンエ像検出部24は、瞳孔領域の検出に成功した場合、瞳孔領域に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、瞳孔領域の重心の座標として算出する。一方、プルキンエ像検出部24は、瞳孔領域の検出に失敗した場合、制御部4へその旨を表す信号を返す。
【0037】
またプルキンエ像検出部24は、眼の領域内で光源11のプルキンエ像を検出する。光源11のプルキンエ像が写っている領域の輝度は、その周囲の領域の輝度よりも高く、その輝度値は略飽和している(すなわち、輝度値が、画素値が取り得る輝度の値の略最高値となっている)。また、光源11のプルキンエ像が写っている領域の形状は、各光源の発光面の形状と略一致する。そこでプルキンエ像検出部24は、眼の領域内で、光源の発光面の輪郭形状と略一致する形状を持ち、かつ、大きさが異なるとともに中心が一致する2本のリングを設定する。そしてプルキンエ像検出部24は、内側のリングに相当する画素の輝度の平均値である内部輝度平均値から外側の画素の輝度の平均値を引いた差分値を求める。プルキンエ像検出部24は、その差分値が所定の差分閾値よりも大きく、かつ内側輝度平均値が所定の輝度閾値よりも高い場合、その内側のリングで囲まれた領域を光源11のプルキンエ像とする。なお、差分閾値は、例えば、眼の領域内の近傍画素間の差分値の平均値とすることができる。また所定の輝度閾値は、例えば、眼の領域内での輝度値の最高値の80%とすることができる。
なお、プルキンエ像検出部24は、画像上で瞳孔が写っている領域を検出する他の様々な方法の何れかを用いて、瞳孔が写っている領域を検出してもよい。同様に、プルキンエ像検出部24は、画像上で光源のプルキンエ像が写っている領域を検出する他の様々な方法の何れかを用いて、光源のプルキンエ像が写っている領域を検出してもよい。
【0038】
プルキンエ像検出部24は、光源11のプルキンエ像の検出に成功した場合、光源に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、プルキンエ像の重心の座標として算出する。一方、プルキンエ像検出部24は、光源のプルキンエ像の検出に失敗した場合、制御部4へその旨を表す信号を返す。
プルキンエ像検出部24は、キャリブレーション処理の実行時の場合、プルキンエ像の重心及び瞳孔重心をキャリブレーション部29へ通知する。一方、プルキンエ像検出部24は、視線検出処理の実行時には、プルキンエ像の重心及び瞳孔重心を視線検出部25へ通知する。
【0039】
視線検出部25は、視線検出処理の実行中において、プルキンエ像の重心及び瞳孔重心に基づいてユーザの視線方向を検出する。
【0040】
角膜の表面は略球形であるため、視線方向によらず、光源のプルキンエ像の位置はほぼ一定となる。一方、瞳孔重心は、ユーザの視線方向に応じて移動する。そのため、視線検出部25は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求めることにより、ユーザの視線方向を検出できる。
本実施形態では、視線検出部25は、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、例えば、瞳孔重心の水平方向座標及び垂直方向座標からプルキンエ像の重心の水平方向座標及び垂直方向座標を減算することにより求める。そして視線検出部25は、瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを参照することにより、ユーザの注視位置を決定する。
そして視線検出部25は、ユーザの視線方向を注視位置検出部28へ通知する。
【0041】
図4は、参照テーブルの一例を示す図である。参照テーブル400の左側の列の各欄には、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置の座標が表される。また参照テーブル400の右側の列の各欄には、同じ行の瞳孔重心の相対的な位置の座標に対応するユーザの視線方向が表される。なお、この例では、視線方向は、表示画面2a上の基準点をユーザが注視しているときの視線方向を基準方向として、その基準方向からの水平方向及び垂直方向の角度の差で表される。なお、瞳孔重心の相対的な位置の座標は、画像上の画素単位で表される。
【0042】
距離特徴量抽出部26は、被写体距離に応じて変化する距離特徴量を画像から抽出する。ここで、カメラ12により得られた画像上のユーザの顔の大きさは、被写体距離が離れるほど小さくなる。そのため、画像上での顔の特徴的な部位間の距離も、被写体距離に応じて変化する。
【0043】
このことを、図5(a)及び図5(b)を参照しつつ説明する。図5(a)は、被写体距離が比較的近い第1の距離である場合の画像上のユーザの顔を表す模式図である。図5(b)は、被写体距離が第1の距離よりも遠い第2の距離である場合の画像上のユーザの顔を表す模式図である。図5(a)及び図5(b)に示されるように、画像500、510には、それぞれ、ユーザの顔の左右の鼻孔501が写っている。そして画像500の撮影時の被写体距離が、画像510の撮影時の被写体距離より短いので、画像500に写っているユーザの顔の面積の方が、画像510に写っているユーザの顔の面積よりも大きい。そのため、画像500に写っている左右の鼻孔501間の間隔Δnは、画像510に写っている左右の鼻孔501間の間隔Δfよりも広い。このように、被写体距離が大きいほど、画像上での左右の鼻孔間の距離が短くなることが分かる。同様に、被写体距離が短いほど、画像上での両目の中心間の間隔、口と鼻の間隔、何れかの目の中心と口との間隔、あるいは左右の口角点間の間隔など、二つの特徴的な部位間の画像上の距離は大きくなる。
【0044】
図6は、画像上での左右の鼻孔の重心間の間隔と被写体距離との関係の実験結果を表すグラフである。図6において、横軸は被写体距離を表し、縦軸は左右の鼻孔の重心間の間隔(ピクセル単位)を表す。そして各点は、それぞれ、被写体距離300mm〜600mmにおける左右の鼻孔の重心間の間隔を表す。この実験では、1/3.2インチ(水平方向4.73mm、垂直方向3.52mm)の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより顔を撮影した画像を用いた。各点に示されるように、左右の鼻孔の重心間の間隔は、被写体距離が大きくなるほど小さくなっている。また、点601に示される、被写体距離が最大(600mm)のときの左右の鼻孔の重心間の間隔に対して、点602に示される、被写体距離が最小(300mm)のときの左右の鼻孔の重心間の間隔は約4倍となる。このように、画像上での左右の鼻孔の重心間の間隔は被写体距離に応じて大きく変化することが分かる。したがって、画像上の左右の鼻孔の重心間の間隔は距離特徴量として使用可能である。同様に、左右の目の中心間の間隔、鼻尖点と口の中心間の間隔なども距離特徴量として使用可能である。
そこで本実施形態では、距離特徴量抽出部26は、顔領域内で眼、鼻の穴、口角点などの特徴的な部位を少なくとも二つ検出し、その特徴的な部位間の距離を距離特徴量とする。
【0045】
距離特徴量抽出部26は、顔領域と、目、鼻孔、口などの特徴的な部位の一般的な形状に相当するテンプレートとの間で相対的な位置を変えつつテンプレートマッチングを行って、顔領域とテンプレートとの一致度を算出する。例えば、鼻孔に関するテンプレートは、略円形状の輝度が低い領域とその周囲に輝度が高い領域とを有するように設定される。そして距離特徴量抽出部26は、顔領域内の特定位置で一致度が所定値以上である場合に、その特定位置にテンプレートに相当する部位が写っていると判定する。距離特徴量抽出部26は、少なくとも二つの部位の画像上の位置を求め、その部位間の距離を距離特徴量とする。
距離特徴量抽出部26は、視線検出処理の実行時には、距離特徴量を距離推定部27へ渡す。一方、距離特徴量抽出部26は、キャリブレーション処理の実行時の場合、距離特徴量をキャリブレーション部29へ通知する。
【0046】
距離推定部27は、距離特徴量に基づいて、被写体距離を推定する。本実施形態では、距離推定部27は、メモリ3に予め記憶されている、距離特徴量と被写体距離との関係を表す距離参照テーブルを参照することにより、距離特徴量に対応する被写体距離を推定する。
あるいは、距離推定部27は、距離特徴量と被写体距離との関係式に、距離特徴量抽出部26により求められた距離特徴量を入力することにより、被写体距離を求めてもよい。なお、距離参照テーブル及び距離特徴量と被写体距離との関係式は、それぞれ、距離情報の一例である。
距離推定部27は、視線検出処理の実行時には、被写体距離を注視位置検出部28へ通知する。一方、距離推定部27は、キャリブレーション処理の実行時の場合、その距離をキャリブレーション部29へ通知する。
【0047】
注視位置検出部28は、ユーザの視線方向及び被写体距離に基づいて、ユーザが表示画面2a上で注視している位置を検出する。なお、以下では、便宜上、ユーザが表示画面2a上で注視している位置を単に注視位置と呼ぶ。
本実施形態では、注視位置検出部28は、ユーザの視線方向及び被写体距離と表示画面2a上でのユーザの注視位置との関係を表す注視位置テーブルを参照することにより、ユーザの注視位置を決定する。
【0048】
図7は、注視位置テーブルの一例を示す図である。注視位置テーブル700の左側の列には、被写体距離が表される。また注視位置テーブル700の上端の行には、ユーザの視線方向が表される。そして注視位置テーブル700の各欄には、同じ行の被写体距離及び同じ列の視線方向に対応する、表示画面2a上の注視位置の座標が表示画面2aの画素単位で表される。例えば、注視位置テーブル700の欄701には、距離200mmで視線方向が水平方向0°、垂直方向1°の場合の注視位置が(cx,cy+40)であることが示されている。なお、cx、cyは、視線方向が(0,0)のときの注視位置、すなわち基準注視位置の座標、例えば、表示画面2aの中心の水平座標及び垂直座標である。
【0049】
あるいは、注視位置検出部28は、被写体距離が所定の基準距離である場合の、視線方向に対する注視位置を基準注視位置として注視位置テーブルを参照して求め、その基準注視位置を被写体距離に応じて補正してもよい。なお基準距離は、例えば、キャリブレーション処理の実行時において指定された被写体距離であり、300mmに設定される。この場合、補正により算出される注視位置の水平座標vx及び垂直座標vyは以下の式で算出される。
vx = R(vrx-cx) + cx
vy = R(vry-cy) + cy
ここで、vrx、vryは、それぞれ、表示画面上の基準注視位置の水平座標及び垂直座標であり、cx、cyは、視線方向が(0,0)のときの注視位置の座標である。そしてRは、基準距離に対する距離推定部27により推定された距離の比である。
注視位置検出部28は、ユーザの注視位置を制御部4で実行中のアプリケーションプログラムへ通知する。
【0050】
キャリブレーション部29は、キャリブレーション処理を実行することにより、上記の参照テーブル及び距離参照テーブルを更新する。
キャリブレーション部29は、例えば、制御部4から携帯端末1が起動したことを示す信号を受信したとき、あるいは、特定のアプリケーションが起動されたことを示す信号を受信したときに、キャリブレーション処理を実行する。
【0051】
キャリブレーション処理が開始されると、キャリブレーション部29は、ユーザインターフェース2の表示画面2a上の所定の基準位置にキャリブレーション用のマークを表示させる。基準位置は、例えば、表示画面2aの中心、あるいは表示画面2aの4角の何れかとすることができる。
さらに、キャリブレーション部29は、キャリブレーション中において、携帯端末1の表示画面2aからどれだけ離した位置に顔を配置するのかを指示するために、表示画面2aからユーザの顔までの指定距離を表示画面2a上に表示させる。
キャリブレーションの実行中、ユーザは、表示画面2a上に表示されているキャリブレーション用のマークを注視するものとする。
【0052】
キャリブレーション部29は、表示画面2aの中心にマークが表示されているときに撮影された画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部24から受け取る。そしてキャリブレーション部29は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、ユーザが表示画面2aの中心を注視したときの視線方向に対応させるよう、参照テーブルを更新する。なお、注視位置の座標と視線方向とは1対1に対応する。そこでキャリブレーション部29は、例えば、ユーザが表示画面2aの中心を注視したときの視線方向を、水平方向及び垂直方向とも0°とする。
【0053】
またキャリブレーション部29は、表示画面2aの左上の角にマークが表示されているときに撮影された画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部24から受け取る。そしてキャリブレーション部29は、このときのプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、ユーザが表示画面2aの左上の角を注視したときの視線方向に対応させるよう、参照テーブルを更新する。同様に、キャリブレーション部29は、マークが表示画面2aの他の角に表示されているときの撮影画像上でのプルキンエ像の重心に対する瞳孔重心の相対的位置を、ユーザがマークの表示位置を注視したときの視線方向と対応づけるよう参照テーブルを更新する。
さらに、キャリブレーション部29は、他の視線方向に対するプルキンエ像の重心を基準とした瞳孔重心の相対的位置を、既に求めた上記の5個のマークの位置に対応する瞳孔重心の相対的な位置を用いて例えば線形補間することにより決定する。そしてキャリブレーション部29は、様々な視線方向に対する瞳孔重心の相対的な位置を対応づけるように参照テーブルを更新する。
【0054】
また、キャリブレーション部29は、上記の指定距離における距離特徴量を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、距離特徴量を指定距離と対応付けるように距離参照テーブルを更新する。さらにキャリブレーション部29は、指定距離を様々に変えて、カメラ12にユーザの顔を撮影した画像を作成させてもよい。この場合、キャリブレーション部29は、それぞれの指定距離において撮影された画像から抽出された距離特徴量を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、各指定距離とその指定距離における距離特徴量を対応付けるように距離参照テーブルを更新する。
【0055】
なお、本実施形態のように、距離特徴量が顔の二つの特定部位間の画像上の距離であれば、被写体距離と距離特徴量とは反比例する。そこでこの場合、キャリブレーション部29は、任意の被写体距離dに対する距離特徴量を、指定距離d0について求めた距離特徴量に、その被写体距離dに対する指定距離d0の比(d0/d)を乗じることで求めてもよい。そしてキャリブレーション部29は、計算により算出された距離特徴量及び対応する被写体距離に基づいて、距離参照テーブルを更新してもよい。この場合、視線検出装置10は、一つの指定距離についてのみユーザの顔を撮影すればよいので、キャリブレーション処理の手間を軽減できる。
キャリブレーション部29は、更新された参照テーブル及び距離参照テーブルをメモリ3に保存する。
【0056】
また、距離特徴量に関する個人差が無視できるほど小さい場合、予め一般的な顔のモデルを撮影した画像から抽出された距離特徴量、あるいはシミュレーションにより算出される距離特徴量に基づいて予め距離参照テーブルが作成されていてもよい。この場合には、キャリブレーション部29は、距離参照テーブルを更新しなくてもよい。
【0057】
図8は、制御部4により実行される、キャリブレーション処理の動作フローチャートを示す。
制御部4は、ユーザインターフェース2の表示画面2a上の基準位置に所定のマークを表示させる(ステップS101)。次に、制御部4は、光源11が点灯した状態でユーザの顔を撮影した画像をカメラ12から取得する(ステップS102)。制御部4の顔検出部23は、画像上で顔が写っている顔領域を抽出する(ステップS103)。そして顔検出部23は、顔領域を表す情報を制御部4のプルキンエ像検出部24及び距離特徴量抽出部26へ渡す。
【0058】
プルキンエ像検出部24は、顔領域内で眼の領域を検出する(ステップS104)。そしてプルキンエ像検出部24は、眼の領域内で瞳孔重心を検出する(ステップS105)。またプルキンエ像検出部24は、眼の領域内で点灯している光源のプルキンエ像を検出する(ステップS106)。
【0059】
プルキンエ像検出部24は、瞳孔重心及び光源のプルキンエ像の検出に成功したか否か判定する(ステップS107)。プルキンエ像検出部24が瞳孔重心または光源のプルキンエ像の検出に失敗した場合(ステップS107−No)、制御部4は、カメラ12に再撮影を指示する(ステップS108)。そして制御部4はステップS102以降の処理を再実行する。
一方、プルキンエ像検出部24が瞳孔重心及び光源のプルキンエ像の検出に成功した場合(ステップS107−Yes)、プルキンエ像検出部24は、光源のプルキンエ像の重心及び瞳孔重心を制御部4のキャリブレーション部29へ通知する。
キャリブレーション部29は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求める。そしてキャリブレーション部29は、その相対的な位置と表示画面2aに表示されているマークの位置により決定される視線方向とに基づいて、参照テーブルを更新する(ステップS109)。
【0060】
また距離特徴量抽出部26は、画像から指定距離における距離特徴量を抽出する(ステップS110)。距離特徴量抽出部26は、その距離特徴量をキャリブレーション部29へ通知する。そしてキャリブレーション部29は、指定距離と距離特徴量とを対応付けるように距離参照テーブルを更新する(ステップS111)。
ステップS111の後、制御部4は、キャリブレーション処理を終了する。なお、プルキンエ像検出部24は、ステップS105の処理とステップS106の処理の順序を入れ替えてもよい。またプルキンエ像検出部24は、顔領域全体でユーザの瞳孔及び光源のプルキンエ像を探索してもよい。この場合、ステップS104の処理は省略される。さらに、制御部4は、ステップS104〜S109の処理とステップS110及びS111の処理の順序を入れ替えてもよい。
【0061】
図9は、制御部4により実行される、視線検出処理の動作フローチャートを示す。
制御部4は、光源11が点灯した状態でユーザの顔を撮影した画像をカメラ12から取得する(ステップS201)。そして制御部4の顔検出部23は、画像上で顔が写っている顔領域を抽出する(ステップS202)。顔検出部23は、顔領域の抽出に成功したか否か判定する(ステップS203)。顔領域の抽出に失敗した場合(ステップS203−No)、ユーザは携帯端末1を向いていない。そのため、制御部4は、視線検出処理を終了する。その後制御部4は、キャリブレーション処理を実行してもよい。あるいは、制御部4は、ステップS201以降の処理を再度実行してもよい。この場合には、制御部4のカメラ制御部22は、前回の撮影時の露出条件と異なる露出条件でユーザの顔を撮影するようにカメラ12に制御信号を送信してもよい。
【0062】
一方、顔検出部23が顔領域の抽出に成功した場合(ステップS203−Yes)、顔検出部23は、顔領域を表す情報を制御部4のプルキンエ像検出部24及び距離特徴量抽出部26へ渡す。
プルキンエ像検出部24は、顔領域内で眼の領域を検出する(ステップS204)。そしてプルキンエ像検出部24は、眼の領域内で瞳孔重心を検出する(ステップS205)。またプルキンエ像検出部24は、眼の領域内で光源11のプルキンエ像を検出する(ステップS206)。そしてプルキンエ像検出部24は、瞳孔重心及び光源のプルキンエ像の検出に成功したか否か判定する(ステップS207)。
【0063】
プルキンエ像検出部24が瞳孔重心及び光源のプルキンエ像の検出に失敗した場合(ステップS207−No)、制御部4は、ステップS201以降の処理を再度実行する。その際、カメラ制御部22は、前回の撮影時の露出条件と異なる露出条件でユーザの顔を撮影するようにカメラ12に制御信号を送信してもよい。
一方、プルキンエ像検出部24が瞳孔重心及び光源のプルキンエ像の検出に成功した場合(ステップS207−Yes)、プルキンエ像検出部24は、光源のプルキンエ像の重心及び瞳孔重心を制御部4の視線検出部25へ通知する。
視線検出部25は、参照テーブルを参照してプルキンエ像の重心を基準とする瞳孔重心の位置に対応する視線方向を検出する(ステップS208)。そして視線検出部25は、その視線方向を表す情報を、制御部4の注視位置検出部28へ渡す。
【0064】
また距離特徴量抽出部26は、画像から距離特徴量を抽出する(ステップS209)。距離特徴量抽出部26は、その距離特徴量を制御部4の距離推定部27へ渡す。そして距離推定部27は、距離参照テーブルを参照して距離特徴量に対応する、被写体距離を推定する(ステップS210)。そして距離推定部27は、被写体距離の推定値を、注視位置検出部28へ渡す。
【0065】
注視位置検出部28は、注視位置テーブルを参照して、視線方向及び被写体距離の推定値に対応する注視位置を求める(ステップS211)。そして注視位置検出部28は、その注視位置を表す情報を、制御部4が実行中のアプリケーションプログラムへ渡す。
その後、制御部4は、視線検出処理を終了する。なお、プルキンエ像検出部24は、ステップS205の処理とステップS206の処理の順序を入れ替えてもよい。またプルキンエ像検出部24は、顔領域全体でユーザの瞳孔及び光源のプルキンエ像を探索してもよい。この場合、ステップS204の処理は省略される。あるいは、プルキンエ像検出部24が着目画像上で瞳孔重心または光源のプルキンエ像の何れか一方の検出に失敗した時点で、他方の検出処理を行わずに、制御部4は、ステップS201以降の処理を再実行してもよい。
【0066】
以上に説明してきたように、第1の実施形態による視線検出装置は、視線検出処理の実行時における被写体距離を求め、その距離とプルキンエ像に基づいて求められる視線方向とからユーザの注視位置を求める。そのため、この視線検出装置は、キャリブレーションの実行時と視線検出処理の実行時とで被写体距離が異なっていても、正確に注視位置を検出できる。さらにこの視線検出装置は、プルキンエ像の検出に用いられる画像と同一の画像から被写体距離を表す特徴量を抽出し、その特徴量に基づいて被写体距離を推定できる。そのため、この視線検出装置は、被写体距離推定のために視線方向検出のための機構と別個の機構を持つ必要が無いので、装置構成を簡単化できる。
【0067】
次に、第2の実施形態による視線検出装置について説明する。第2の実施形態による視線検出装置は、画像上のプルキンエ像のサイズを距離特徴量として求める。
【0068】
第2の実施形態による視線検出装置は、第1の実施形態による視線検出装置と比較して、制御部の距離特徴量抽出部の処理が異なる。そこで、以下では、距離特徴量抽出部及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、第1の実施形態に関する関連部分の説明を参照されたい。
【0069】
光源11は、その周囲よりも明るいので、画像上でのプルキンエ像に相当する画素の輝度値もその周囲の画素の輝度値よりも高くなる。ここで、カメラ12の露出条件が適切に設定されていれば、画像上では、プルキンエ像に相当する画素の輝度値は、取り得る輝度値の最大値に近い値となる。すなわち、画像上でのプルキンエ像に相当する画素の輝度値は飽和する。
また、被写体距離が近いほど、画像上でのプルキンエ像のサイズも大きくなる。そのため、被写体距離が近いほど、プルキンエ像のサイズに相当する、ほぼ最大輝度値となる画素の数が増加する。
【0070】
図10(a)は、プルキンエ像が写った画像の一例を表し、図10(b)は、図10(a)の水平方向の線1000に沿った画素のうち、輝度値が飽和した画素(以下、便宜上飽和画素と呼ぶ)の数と被写体距離との関係の実験結果を表すグラフである。図10(b)において、横軸は被写体距離を表し、縦軸は輝度値を表す。そして点1001〜1004は、それぞれ、被写体距離200mm、300mm、400mm、500mmにおける飽和画素数を表す。この実験では、1/3.2インチ(水平方向4.73mm、垂直方向3.52mm)の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより眼を撮影した画像を用いた。そして各画素の輝度値は0〜255の値を取り、輝度値240以上の画素を飽和画素とした。
点1001〜1004に示されるように、飽和画素数は、被写体距離が大きくなるほど少なくなることが分かる。また被写体距離が最大となるとき(500mm)の飽和画素数に対して、被写体距離が最小となるとき(200mm)となるときの飽和画素数は5倍になっている。このように、画像上でプルキンエ像のサイズに相当する飽和画素の数は、距離特徴量として使用可能である。
【0071】
そこで、この実施形態による距離特徴量抽出部26は、プルキンエ像検出部24から画像上でのプルキンエ像の領域を表す情報を取得する。そして距離特徴量抽出部26は、プルキンエ像の領域の重心を求め、その重心を通る1画素幅の直線である走査線を設定する。なお、走査線の方向は任意であり、例えば、水平方向あるいは垂直方向に設定される。距離特徴量抽出部26は、走査線上で、かつプルキンエ像の領域内で飽和画素の数をカウントする。例えば、距離特徴量算出部26は、輝度値が閾値以上となる画素を飽和画素とする。なお、閾値は、輝度値の最大値または最大値よりも僅かに小さい値、例えば、240〜255の何れかに設定される。
距離特徴量抽出部26は、視線検出処理の実行時には、距離特徴量としてその飽和画素の数を距離推定部27へ渡す。一方、距離特徴量抽出部26は、キャリブレーション処理の実行時の場合、距離特徴量としてその飽和画素の数をキャリブレーション部29へ通知する。
なお、変形例によれば、距離特徴量抽出部26は、プルキンエ像の領域内に含まれる飽和画素の総数を距離特徴量として算出してもよい。
【0072】
距離推定部27は、メモリ3に記憶された距離参照テーブルを参照して、距離特徴量である飽和画素数に対応する被写体距離を求め、その被写体距離を注視位置検出部28へ通知する。注視位置検出部28は、被写体距離及び視線検出部25により求められた視線方向に基づいて、表示画面上の注視位置を求める。このように、この実施形態では、距離参照テーブルは、飽和画素数と被写体距離との対応関係を表す。
また、キャリブレーション部29は、様々な指定距離における飽和画素数を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、各指定距離とその指定距離における飽和画素数を対応付けるように距離参照テーブルを更新する。
【0073】
以上に説明してきたように、第2の実施形態による視線検出装置は、高精度で検出可能な画像上のプルキンエ像の領域内で、被写体距離の変化による変動幅が相対的に大きい飽和画素数を距離特徴量として求める。そのため、この第2の実施形態による視線検出装置は、被写体距離を正確に推定できる。したがって、この第2の実施形態による視線検出装置は、正確に注視位置を求めることができる。
【0074】
次に、第3の実施形態による視線検出装置について説明する。第3の実施形態による視線検出装置は、所定距離だけ離して配置された少なくとも二つの光源を有し、画像上の各光源に対応するプルキンエ像間の距離を距離特徴量として求める。
【0075】
第3の実施形態による視線検出装置は、第1の実施形態による視線検出装置と比較して、光源の数が複数であること、及び制御部の距離特徴量抽出部の処理が異なる。そこで、以下では、光源、距離特徴量抽出部及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、第1の実施形態に関する関連部分の説明を参照されたい。
【0076】
図11は、第3の実施形態による視線検出装置が搭載された携帯端末1の概略正面図である。図11に示されるように、この実施形態では、ユーザインターフェース2の表示画面2aの上端近傍に第1の光源11−1を備え、表示画面2aの下端近傍に第2の光源11−2を備える。なお、光源の配置はこの例に限られず、例えば、一つの光源が表示画面2aの左端近傍に配置され、他の一つの光源が表示画面2aの右端近傍に配置されてもよい。あるいは、3個以上の光源が表示画面2aの周囲に配置されてもよい。ただし、画像上でプルキンエ像間の距離が大きくなるように、各光源間の距離はできるだけ離れるように、各光源が配置されることが好ましい。
【0077】
人の角膜は、略球面状に形成されているので、凸面鏡として機能する。そのため、被写体距離が大きくなるほど、画像上での複数の光源のそれぞれに対応するプルキンエ像間の距離は小さくなる。
【0078】
図12は、画像上での表示画面2aを挟んで上下方向に並べて配置された二つの光源のプルキンエ像間の間隔と被写体距離との関係の実験結果を表すグラフである。図12において、横軸は被写体距離を表し、縦軸はプルキンエ像間の間隔(ピクセル単位)を表す。そして各点は、それぞれ、被写体距離200mm〜650mmにおけるプルキンエ像間の間隔を表す。この実験では、縦方向に77mmの長さを持つ表示画面の上端近傍と下端近傍にそれぞれ光源を配置した。そして、1/3.2インチ(水平方向4.73mm、垂直方向3.52mm)の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより眼を撮影した画像を用いた。各点に示されるように、プルキンエ像間の間隔は、被写体距離が大きくなるほど小さくなっている。また、点1201に示される、被写体距離が最大(650mm)のときのプルキンエ像間の間隔に対して、点1202に示される、被写体距離が最小(200mm)のときのプルキンエ像間の間隔は15倍以上となる。このように、プルキンエ像間の間隔は被写体距離に応じて大きく変化することが分かる。したがって、画像上のプルキンエ像間の距離は距離特徴量として使用可能である。
【0079】
そこで、この実施形態による距離特徴量抽出部26は、プルキンエ像検出部24から画像上での各光源のプルキンエ像の重心を表す情報を取得する。そして距離特徴量抽出部26は、プルキンエ像の重心間の距離を求める。
距離特徴量抽出部26は、視線検出処理の実行時には、距離特徴量としてプルキンエ像の重心間の距離を距離推定部27へ渡す。
【0080】
距離推定部27は、メモリ3に記憶された距離参照テーブルを参照して、距離特徴量であるプルキンエ像の重心間の距離に対応する被写体距離を求め、その被写体距離を注視位置検出部28へ通知する。またプルキンエ像検出部24は、何れか一方の光源、例えば、上側に配置された光源11−1のプルキンエ像の重心を視線検出部25に通知する。そして視線検出部25は、光源11−1のプルキンエ像の重心位置に基づいてユーザの視線方向を求める。
注視位置検出部28は、被写体距離及び視線検出部25により求められた視線方向に基づいて、表示画面上の注視位置を求める。このように、この実施形態では、距離参照テーブルは、プルキンエ像の重心間の距離と被写体距離との対応関係を表す。
【0081】
この実施形態では、キャリブレーション部29は、キャリブレーション処理において距離参照テーブルを更新しなくてもよい。画像上でのプルキンエ像間の間隔は、被写体距離の他、光源間の距離、カメラの画角及びイメージセンサの画素数及び角膜の曲率半径により決定される。そして被写体距離と角膜の曲率半径以外は、既知であり、かつ、成人であれば角膜の曲率半径はほぼ一定であるとみなせる。そのため、一般的な角膜のモデルに基づいて、プルキンエ像間の距離と被写体距離との対応関係は予め求められるためである。
なお、他の実施形態と同様に、キャリブレーション部29は、距離参照テーブルを更新してもよい。この場合、キャリブレーション部29は、様々な指定距離における、画像上でのプルキンエ像間の距離を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、各指定距離とその指定距離におけるプルキンエ像間の距離を対応付けるように距離参照テーブルを更新する。
【0082】
以上に説明してきたように、第3の実施形態による視線検出装置は、高精度で検出可能な画像上のプルキンエ像の領域内で、被写体距離の変化による変動幅が相対的に大きい複数の光源のそれぞれに対応するプルキンエ像間の距離を距離特徴量として求める。そのため、この視線検出装置は、被写体距離を正確に推定できる。したがって、この視線検出装置は、正確に注視位置を求めることができる。さらにこの視線検出装置は、距離参照テーブルを更新しなくてもよいので、キャリブレーション処理の実行時におけるユーザの手間を軽減できる。
【0083】
変形例によれば、視線検出装置は、注視位置そのものを求める代わりに、異なる時刻に取得された複数の画像のそれぞれから求めた視線方向の変化量と被写体距離に基づいて注視位置の移動量を求めてもよい。この場合、制御部の視線検出部は、画像から視線方向を求める度に、その画像の取得時刻と視線方向とをメモリに記憶させる。そしてメモリは、一定期間(例えば、10秒間)、その視線方向及び画像の取得時刻を記憶する。また制御部の注視位置検出部は、現時刻に取得された画像から求めた視線方向と、その画像よりも1〜数フレーム前に取得された画像から求めた視線方向との角度差を視線方向の変化量として求める。そして注視位置検出部は、視線方向の角度差の正接に、現画像について求められた被写体距離を乗じることで注視位置の移動量を求める。注視位置検出部は、注視位置の移動量を制御部で実行中のアプリケーションプログラムへ通知する。
【0084】
制御部は、そのアプリケーションプログラムに従って、例えば、注視位置の移動量に応じて画面をスクロールさせる。1〜数フレーム前の画像の取得時から現画像の取得時までの間の視線方向の変化量が同一でも被写体距離が異なれば、注視位置の移動量も異なるので、制御部は、画面のスクロール量またはスクロール速度も変えることが好ましい。例えば、視線方向の変化量が同一でも、被写体距離が2倍になれば注視位置の移動量も2倍になるので、制御部はスクロール量またはスクロール速度も2倍とする。
このように、この視線検出装置は、被写体距離によらず、注視位置の移動量に応じた画面制御を携帯端末の制御部に実行させることができる。
【0085】
次に、第4の実施形態による視線検出装置について説明する。第4の実施形態による視線検出装置は、上下方向に離して配置された少なくとも二つの光源を有し、画像上の各光源に対応するプルキンエ像の飽和画素の数により、視線検出装置に対する垂直方向に沿った顔の傾きを算出する。
【0086】
第4の実施形態による視線検出装置は、第3の実施形態による視線検出装置と比較して、制御部が視線検出装置に対する顔の傾きを検知する点で異なる。そこで、以下では、制御部の顔の傾きの検知及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載され、図11に示されるように、表示画面の上端近傍と下端近傍にそれぞれ一つずつ光源が配置されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、上記の各実施形態についての関連部分の説明を参照されたい。
【0087】
図13は、第4の実施形態による視線検出装置の制御部の機能ブロック図である。制御部4は、光源制御部21と、カメラ制御部22と、顔検出部23と、プルキンエ像検出部24と、視線検出部25と、距離特徴量抽出部26と、距離推定部27と、注視位置検出部28と、キャリブレーション部29と、傾き検出部30とを有する。
【0088】
本実施形態では、距離特徴量抽出部26は、第1の実施形態のように、画像上での顔の複数の部位間の距離を距離特徴量として抽出する。あるいは、距離特徴量抽出部26は、第3の実施形態のように、画像上での複数の光源のそれぞれに対応するプルキンエ像間の距離を距離特徴量として抽出してもよい。
【0089】
傾き検出部30は、携帯端末1に対するユーザの顔の相対的な傾きを検出する。そのために傾き検出部30は、画像上での各光源のプルキンエ像の領域を表す情報をプルキンエ像検出部24から受け取る。そして傾き検出部30は、光源ごとに、プルキンエ像の領域内の飽和画素数をカウントする。なお、飽和画素数のカウントの方法は、第2の実施形態による距離特徴量抽出部による飽和画素数のカウントの方法と同様とすることができる。
【0090】
第2の実施形態に関して述べたように、被写体距離が大きくなるほど、プルキンエ像の飽和画素数は少なくなる。そのため、上側の光源11−1のプルキンエ像の飽和画素数が、下側の光源11−2のプルキンエ像の飽和画素数よりも少なければ、上側の光源11−1からユーザの眼までの距離が下側の光源11−2からユーザの眼までの距離よりも大きい。すなわち、ユーザの顔は、携帯端末1の表示画面2aの下端よりも表示画面2aの上端の方がユーザの顔から遠くなるように、携帯端末1に対して傾いている。このことを、便宜上、ユーザの顔が上向きに傾いていると呼ぶ。
【0091】
逆に、上側の光源11−1のプルキンエ像の飽和画素数が、下側の光源11−2のプルキンエ像の飽和画素数よりも多ければ、上側の光源11−1からユーザの眼までの距離が下側の光源11−2からユーザの眼までの距離よりも小さい。すなわち、ユーザの顔は、携帯端末1の表示画面2aの上端よりも表示画面2aの下端の方がユーザの顔から遠くなるように、携帯端末1に対して傾いている。このことを、便宜上、ユーザの顔が下向きに傾いていると呼ぶ。
そして上側の光源11−1のプルキンエ像の飽和画素数が下側の光源11−2のプルキンエ像の飽和画素数と略等しければ、表示画面2aとユーザの顔は略平行になっている。
【0092】
図14は、傾き検出部30による傾き検出処理の動作フローチャートである。制御部4は、傾き検出部30による傾き検出処理を、視線検出処理と別個に実行する。あるいは、制御部4は、図9に示した視線検出処理のステップS211に引き続いて傾き検出処理を実行してもよい。
傾き検出部30は、上側の光源11−1のプルキンエ像の飽和画素数と下側の光源11−2のプルキンエ像の飽和画素数を求める(ステップS301)。そして傾き検出部30は、上側の光源11−1のプルキンエ像の飽和画素数cuと下側の光源11−2のプルキンエ像の飽和画素数clの差を所定数Thと比較する(ステップS302)。そして上側の光源11−1のプルキンエ像の飽和画素数cuが下側の光源11−2のプルキンエ像の飽和画素数clよりも所定数Th以上多ければ、傾き検出部30は、ユーザの顔が下向きに傾いていると判定する(ステップS303)。そして傾き検出部30は、ユーザの顔が下向きに傾いていることを制御部4で実行中のアプリケーションプログラムへ通知する。一方、下側の光源11−2のプルキンエ像の飽和画素数clが上側の光源11−1のプルキンエ像の飽和画素数cuよりも所定数Th以上多ければ、傾き検出部30は、ユーザの顔が上向きに傾いていると判定する(ステップS304)。そして傾き検出部30は、ユーザの顔が上向きに傾いていることを制御部4で実行中のアプリケーションプログラムへ通知する。また二つの光源のプルキンエ像の飽和画素数の差の絶対値|cu-cl|が所定値Th未満であれば、傾き検出部30は、ユーザの顔が携帯端末1の表示画面と略平行になっていると判定する(ステップS305)。そして傾き検出部30は、ユーザの顔が携帯端末1の表示画面と略平行になっていることを制御部4で実行中のアプリケーションプログラムへ通知する。ステップS303〜S305の後、傾き検出部30は傾き検出処理を終了する。なお、所定数Thは、例えば、実験あるいはシミュレーションにより求められ、例えば、'1'に設定される。
【0093】
この場合、制御部4は、アプリケーションプログラムに従って、例えば、上記の変形例のように、ユーザの注視位置の移動量に応じて画面をスクロールさせる。その際、制御部4は、視線が表示画面2aの上側へ向けて移動した場合と、下側へ向けて視線が移動した場合とで、スクロール量またはスクロール速度が一定となるように、ユーザの顔向きに応じてスクロール量またはスクロール速度を調節することが好ましい。例えば、制御部4は、ユーザの顔が上向きである場合、ユーザが注視位置を表示画面2aの略中央から上方へ移動させたときの画面のスクロール量を、表示画面2aの略中央から下方へ移動させたときの画面のスクロール量よりも大きくする。また、ユーザの顔が表示画面2aと略平行である場合、制御部4は、ユーザが注視位置を表示画面2aの略中央から上方へ移動させたときと、表示画面2aの略中央から下方へ移動させたときとで、画面のスクロール量またはスクロール速度を等しくする。
【0094】
また変形例によれば、携帯端末がジャイロセンサといった角速度を検知できるセンサを搭載している場合、制御部は、そのセンサから携帯端末の角速度を表す情報を取得する。そして傾き検出部は、その角速度に基づいて、携帯端末の表示画面に対するユーザの顔の傾きを求めてもよい。例えば、携帯端末の表示画面とユーザの顔が略平行であると判定されているときに、制御部が、ジャイロセンサから携帯端末の上端が背面側へ倒れ、携帯端末の下端が正面側、すなわちユーザ側に倒れる方向の角速度が検知されたことを通知されたとする。この場合、傾き検出部は、ユーザの顔向きは上向きであると判定する。
【0095】
また、傾き検出部は、水平方向についても携帯端末の表示画面に対するユーザの顔の傾きを判定してもよい。この場合、携帯端末の正面において、水平方向の異なる位置に二つの光源が配置される。例えば、表示画面の右端及び左端に近接して二つの光源が配置される。そして傾き検出部は、画像上での各光源のプルキンエ像の飽和画素数を求め、光源ごとの飽和画素数を比較する。向かって右側の光源の飽和画素数が向かって左側の光源の飽和画素数よりも多ければ、傾き検出部は、ユーザの顔は、水平方向に沿って、左側ほど携帯端末の表示画面から離れるように傾いていると判定する。逆に、向かって左側の光源の飽和画素数が向かって右側の光源の飽和画素数よりも多ければ、傾き検出部は、ユーザの顔は、水平方向に沿って、右側ほど携帯端末の表示画面から離れるように傾いていると判定する。
【0096】
さらに他の変形例によれば、表示画面の4個の角のそれぞれの近傍に光源が配置されてもよい。この場合、傾き検出部は、垂直方向に沿ったユーザの顔の傾きを検出するために、画像上で、上側の二つの光源に対応する二つのプルキンエ像間の距離と、下側の二つの光源に対応する二つのプルキンエ像間の距離とをそれぞれ求める。そして、上側の二つの光源に対応する二つのプルキンエ像間の距離が下側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部はユーザの顔は下向きであると判定する。逆に、下側の二つの光源に対応する二つのプルキンエ像間の距離が上側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部はユーザの顔は上向きであると判定する。
同様に、傾き検出部は、水平方向に沿ったユーザの顔の傾きを検出するために、画像上で、向かって左側の二つの光源に対応する二つのプルキンエ像間の距離と、向かって右側の二つの光源に対応する二つのプルキンエ像間の距離とをそれぞれ求めてもよい。例えば、向かって右側の二つの光源に対応する二つのプルキンエ像間の距離が向かって左側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部は、ユーザの顔は、左側ほど携帯端末の表示画面から離れるように傾いていると判定する。
【0097】
上記の各実施形態または変形例による視線検出装置は、表示部上のユーザの注視位置を利用する様々な装置に組み込むことができる。例えば、視線検出装置は、カーナビゲーションシステム、あるいはコンピュータに組み込まれてもよい。この場合、視線検出装置が有する光源及びカメラと表示部とは別個に配置されていてもよい。
【0098】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【0099】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
(付記1)
ユーザの眼を照射する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
を有する視線検出装置。
(付記2)
前記距離特徴量抽出部は、前記画像上の前記顔の少なくとも二つの部位の位置を求め、当該少なくとも二つの部位間の間隔を前記距離特徴量として求める、付記1に記載の視線検出装置。
(付記3)
前記距離特徴量抽出部は、前記画像上の前記角膜反射像のサイズを前記距離特徴量として求める、付記1に記載の視線検出装置。
(付記4)
前記距離特徴量抽出部は、前記画像上の前記角膜反射像に相当する領域に含まれる、輝度値が飽和した画素の数を前記角膜反射像のサイズとする、付記3に記載の視線検出装置。
(付記5)
前記光源は、互いに異なる位置に配置された第1の発光素子と第2の発光素子とを有し、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第1の発光素子の第1の角膜反射像と前記第2の発光素子の第2の角膜反射像を検出し、
前記距離特徴量抽出部は、前記画像上の前記第1の角膜反射像と前記第2の角膜反射像間の間隔を前記距離特徴量として求める、付記1に記載の視線検出装置。
(付記6)
前記第1の発光素子と前記第2の発光素子は、所定方向に沿って配置され、
前記第1の角膜反射像のサイズと前記第2の角膜反射像のサイズを求め、前記第1の角膜反射像のサイズよりも前記第2の角膜反射像のサイズが小さい場合に、前記第1の発光素子と前記顔との距離が、前記第2の発光素子と該顔との距離よりも小さくなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、付記5に記載の視線検出装置。
(付記7)
前記光源は、前記表示部の外周に沿って互いに異なる位置に配置された少なくとも4個の発光素子を有し、前記発光素子のうちの第1の発光素子及び第2の発光素子は、前記表示部の垂直方向の中心よりも上側に配置され、一方、前記発光素子のうちの第3の発光素子及び第4の発光素子は、前記表示部の垂直方向の中心よりも下側に配置され、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第1〜第4の発光素子の角膜反射像をそれぞれ検出し、
前記画像上の前記第1の発光素子の角膜反射像と前記第2の発光素子の角膜反射像間の第1の間隔及び前記第3の発光素子の角膜反射像と前記第4の発光素子の角膜反射像間の第2の間隔をそれぞれ求め、前記第2の間隔よりも前記第1の間隔が小さい場合に、前記表示部の下端が前記表示部の上端よりもユーザの顔に近くなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、付記1に記載の視線検出装置。
(付記8)
表示部と、
ユーザの眼を照明する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
前記表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
前記注視位置と関連付けられた処理を実行するアプリケーション実行部と、
を有する携帯端末。
(付記9)
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことを含む視線検出方法。
(付記10)
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を撮像部から取得し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことをコンピュータに実行させる視線検出用コンピュータプログラム。
【符号の説明】
【0100】
1 携帯端末
2 ユーザインターフェース
2a 表示画面
3 メモリ
4 制御部
5 筺体
10 視線検出装置
11、11−1〜11−2 光源
12 カメラ
21 光源制御部
22 カメラ制御部
23 顔検出部
24 プルキンエ像検出部
25 視線検出部
26 距離特徴量抽出部
27 距離推定部
28 注視位置検出部
29 キャリブレーション部
30 傾き検出部
【技術分野】
【0001】
本発明は、例えば、角膜反射像を検出することにより視線方向を検出する視線検出装置及び視線検出方法に関する。
【背景技術】
【0002】
従来より、ユーザの眼を撮影した画像を解析することにより光源の角膜反射像(プルキンエ像)を検出することで、ユーザの視線方向を検出する視線検出装置が開発されている。
このような視線検出装置では、ユーザが注視する位置を正確に検出するために、ユーザが視線検出装置が搭載された装置を利用する前に、いわゆるキャリブレーション処理が行われる。キャリブレーション処理では、例えば、視線検出装置は、予め指定された複数の方向をユーザが注視した時の画像上のプルキンエ像の位置と瞳孔の位置の差を測定し、参照テーブルにその差と注視位置とを対応付けて格納する。そして視線検出装置は、視線検出処理を実行する際には、測定されたプルキンエ像の位置と瞳孔の位置の差に対応する注視位置を、参照テーブルを参照することで決定する。そして視線検出装置が求めた注視位置に応じて、視線検出装置が搭載された装置が画面スクロール等の制御動作を実行することで、ユーザの操作の手間を軽減できる。
【0003】
しかし、視線検出処理の実行時における、視線検出装置が搭載された装置とユーザとの位置関係が、キャリブレーション処理の実行時における、視線検出装置が搭載された装置とユーザとの位置関係と異なることがある。特に、視線検出装置が、携帯電話または携帯情報端末といった、ユーザが自らの手で保持する装置に搭載される場合、視線検出処理の実行時におけるその装置とユーザ間の距離を常に一定に保つことは困難である。そしてユーザと装置との間の距離が変われば、視線方向が同一であってもユーザが注視する位置は変化する。そのため、視線検出装置は、キャリブレーション時に作成した参照テーブルを用いても、ユーザが注視する位置を正確に検出できないおそれがあった。そこで、視線検出装置からユーザまでの距離を測定し、その距離及び視線方向に基づいてユーザが注視する位置を検出する技術が提案されている(例えば、特許文献1及び2を参照)。
【0004】
例えば、このような公知技術の一例による装置は、その装置からオペレータまでの距離を、オペレータを撮影した画像から自動焦点機能により測定する。そしてその装置は、その距離及び虹彩とプルキンエ像間の画像上での位置の差に基づいて、表示部の画面上でオペレータが注視する位置を求める。
また他の公知技術の一例による装置は、ユーザの顔を撮影した画像から顔の複数の特徴点及び輪郭を抽出し、複数の特徴点間の位置関係に基づいて顔の向きを求めるとともに、輪郭の大きさに基づいて装置からユーザの顔までの距離を求める。そしてこの装置は、顔の向きまたは装置からユーザの顔までの距離に応じて、表示部の表示画面のスクロール、拡大、縮小などの制御を実行する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−187091号公報
【特許文献2】特開2009−31368号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、自動焦点機能により画像から装置からオペレータまでの距離を測定するためには、装置は、被写界深度が浅い光学系と、イメージセンサ上に焦点を結ぶ物点までの被写体距離を変えるためにその光学系を移動させる機構を備えることになる。そのため、装置全体の構造が複雑化してしまう。
また、画像から抽出された顔の特徴点または輪郭に基づいて画面表示を制御する装置は、ユーザが顔を動かさず、視線のみを動かすと、ユーザが注視している位置が移動したことを検知できないので、画面表示を適切に制御できないおそれがあった。
【0007】
そこで本明細書は、キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる視線検出装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
一つの実施形態によれば、視線検出装置が提供される。この視線検出装置は、ユーザの眼を照射する光源と、光源が点灯している間に眼を含む領域であって、ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、表示部からユーザの顔までの距離とその距離に応じて変化する画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、画像から距離特徴量を求める距離特徴量抽出部と、距離情報を参照することにより距離特徴量に対応する表示部からユーザの顔までの距離を推定する距離推定部と、画像に含まれる眼の領域から、光源の角膜反射像とユーザの瞳孔重心とを検出するプルキンエ像検出部と、瞳孔重心と角膜反射像との位置関係に応じてユーザの視線方向を検出する視線検出部と、視線方向と表示部からユーザの顔までの距離に基づいて、表示部上のユーザの注視位置を求める注視位置検出部とを有する。
【0009】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【0010】
本明細書に開示された視線検出装置は、キャリブレーション時と視線検出処理の実行時とで、ユーザと装置間の距離が異なる場合でも、ユーザが注視している位置を正確に検出できる。
【図面の簡単な説明】
【0011】
【図1】第1の実施形態による視線検出装置を搭載した携帯端末のハードウェア構成図である。
【図2】第1の実施形態による視線検出装置を搭載した携帯端末の概略正面図である。
【図3】第1の実施形態による視線検出装置の制御部の機能ブロック図である。
【図4】参照テーブルの一例を示す図である。
【図5】(a)は、被写体距離が比較的近い第1の距離である場合の画像上のユーザの顔を表す模式図である。(b)は、被写体距離が第1の距離よりも遠い第2の距離である場合の画像上のユーザの顔を表す模式図である。
【図6】画像上での左右の鼻孔の重心間の間隔と被写体距離との関係の実験結果を表すグラフである。
【図7】注視位置テーブルの一例を示す図である。
【図8】キャリブレーション処理の動作フローチャートである。
【図9】視線検出処理の動作フローチャートである。
【図10】(a)は、プルキンエ像が写った画像の一例を表し、(b)は、(a)の水平方向の線に沿った画素のうち、輝度値が飽和した画素の数と被写体距離との関係の実験結果を表すグラフである。
【図11】第3の実施形態による視線検出装置を搭載した携帯端末の概略正面図である。
【図12】二つの光源のプルキンエ像間の間隔と被写体距離との関係の実験結果を表すグラフである。
【図13】第4の実施形態による視線検出装置の制御部の機能ブロック図である。
【図14】傾き検出処理の動作フローチャートである。
【発明を実施するための形態】
【0012】
以下、図を参照しつつ、第1の実施形態による視線検出装置について説明する。
この視線検出装置は、光源のプルキンエ像を撮影した画像を解析し、プルキンエ像と瞳孔の重心間の距離に基づいてユーザの視線方向を検出する。さらにこの視線検出装置は、その画像上で、視線検出装置が搭載された装置の表示部からユーザの顔までの距離に応じて変化する距離特徴量として、顔の複数の特徴的な部位間の間隔を求め、その間隔に応じて表示部からユーザの顔までの距離を求める。そしてこの視線検出装置は、視線検出装置が搭載された装置の表示部からユーザの顔までの距離とユーザの視線方向とに基づいて、表示部の画面上のユーザの注視位置を特定する。なお、この実施形態では、視線検出装置が搭載された装置が有するカメラの光学系の前側主点とその装置の表示部の位置の差は、ユーザの顔から表示部までの距離に対して無視できる程度に小さい。そこで以下では、便宜上、視線検出装置が搭載された装置の表示部からユーザの顔までの距離を被写体距離と呼ぶ。
【0013】
図1は、第1の実施形態による視線検出装置を搭載した携帯端末のハードウェア構成図である。携帯端末1は、ユーザインターフェース2と、メモリ3と、制御部4と、筺体5と、視線検出装置10とを有する。なお、携帯端末1は、例えば、携帯電話機または携帯情報端末である。さらに携帯端末1は、携帯端末1を他の機器に接続するための通信インターフェース回路(図示せず)を有していてもよい。なお、図1は、携帯端末1が有する構成要素を説明するための図であり、携帯端末1の各構成要素の実際の配置を表した図ではないことに留意されたい。
【0014】
ユーザインターフェース2は、表示部の一例であり、例えば、タッチパネルディスプレイを有する。そしてユーザインターフェース2は、筺体5の正面において、ユーザインターフェース2の表示画面が、筺体5の正面に対向するユーザを向くように配置される。そしてユーザインターフェース2は、例えば、様々なアイコンまたは操作ボタンを制御部4からの制御信号に応じて表示する。またユーザインターフェース2は、表示されたアイコンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部4へ出力する。
なお、ユーザインターフェース2は、液晶ディスプレイといった表示装置と、キーパッドなどの複数の操作スイッチを有していてもよい。
【0015】
メモリ3は、例えば、読み書き可能な不揮発性の半導体メモリを有する。そしてメモリ3は、制御部4上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。またメモリ3は、ユーザインターフェース2の表示画面に表示中のアイコンまたは操作ボタンの領域を表す情報を記憶する。
【0016】
さらに、メモリ3は、視線検出装置10の記憶部としても機能する。そしてメモリ3は、ユーザが注視する位置を検出するために利用される各種のデータを記憶する。例えば、メモリ3は、プルキンエ像の重心に対する瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを記憶する。またメモリ3は、画像から抽出された距離特徴量と被写体距離との関係を表す距離参照テーブルを記憶する。さらにメモリ3は、被写体距離及び視線方向とユーザが注視する位置との関係を表す注視位置テーブルを記憶する。さらに、メモリ3は、視線検出処理を実行するプログラムを記憶する。
なお、視線検出装置10の記憶部として機能するメモリ回路は、メモリ3とは別個に携帯端末1に実装されてもよい。
【0017】
視線検出装置10は、ユーザインターフェース2の表示画面上でユーザが注視している位置を求める。そして視線検出装置10は、ユーザが注視している位置を表す情報を制御部4が実行中のアプリケーションプログラムに渡す。なお、視線検出装置10の詳細については後述する。
【0018】
制御部4は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部4は、携帯端末1の各部と信号線を介して接続されており、携帯端末1全体を制御する。例えば、制御部4は、ユーザインターフェース2から受け取った操作信号と実行中のアプリケーションプログラムに応じた処理を実行する。
また制御部4は、視線検出装置10の制御部としても機能する。なお、視線検出装置10の制御部としての機能及び動作に関しては後述する。
さらに、制御部4は、アプリケーション実行部の一例であり、例えば、視線検出装置10により求められた、ユーザが注視している位置とメモリ3に記憶されているユーザインターフェース2の表示画面上の各アイコンの表示領域とを比較する。そして制御部4は、ユーザが注視している位置と何れかのアイコンまたは操作ボタンの表示領域とが重なっている場合、そのアイコンまたは操作ボタンに応じた処理を実行する。
【0019】
図2は、携帯端末1の概略正面図である。携帯端末1の略中央に設けられたユーザインターフェース2の表示画面2aには、地図201とその周囲に画面をスクロールさせるためのスクロールボタン202〜205が表示されている。
この場合、ユーザが注視する位置がスクロールボタン202〜205の何れかの表示領域と重なっていれば、制御部4は、そのスクロールボタンに関して予め設定された方向に画面をスクロールさせる。また、ユーザの注視位置が地図201が表示された領域内であり、かつ、ユーザが表示画面2aに顔を近づけると、制御部4はユーザインターフェース2に地図を拡大表示させてもよい。
【0020】
視線検出装置10は、ユーザの視線方向及び表示画面2a上の注視位置を検出するために、光源11と、カメラ12と、メモリ3と、制御部4とを有する。
光源11は、携帯端末1を操作するユーザの顔、特に眼及びその周囲を照明する。そのため、光源11は、例えば、少なくとも一つの赤外発光ダイオードと、制御部4からの制御信号に応じて、赤外発光ダイオードに図示しない電源からの電力を供給する駆動回路とを有する。そして光源11は、制御部4から光源を点灯させる制御信号を受信している間、照明光を発する。
なお、視線検出装置10が有する光源11の数は、1個に限られず、視線検出装置10は、互いに異なる位置に配置される複数個の光源を有してもよい。
【0021】
カメラ12は、撮像部の一例であり、眼を含むユーザの顔の少なくとも一部の領域が写った画像を生成する。そのために、カメラ12は、光源11の光に感度を持つ2次元状に配列された固体撮像素子を有するイメージセンサと、そのイメージセンサ上にユーザの眼の像を結像する撮像光学系を有する。カメラ12は、虹彩による反射像及び光源11以外の光源からの光の角膜反射像が検出されることを抑制するために、イメージセンサと撮像光学系の間に、可視光カットフィルタをさらに有してもよい。
【0022】
また、画像が光源11のプルキンエ像を識別できる程度の解像度を有するように、カメラ12のイメージセンサの画素数は、例えば、100万、200万、あるいは400万とすることができる。またイメージセンサにより生成される画像はカラー画像であり、画素ごとに赤色(R)、緑色(G)及び青色(B)の3色の成分を持つ。各色成分は、例えば、0〜255の何れかの値をとり、色成分値が大きいほど、その色の輝度が高い。あるいは、イメージセンサにより生成される画像は、光の強度が強いほど各画素の輝度が高くなるモノクロ画像であってもよい。
カメラ12は、視線検出処理が実行されている間、光源11が点灯している間に所定の周期でユーザの顔を撮影することにより、点灯している光源により照明されたユーザの顔が写った画像を生成する。そしてカメラ12は、画像を生成する度に、生成した画像を制御部4へ出力する。
【0023】
再度図2を参照すると、携帯端末1のユーザインターフェース2の表示画面2aの上端に近接してカメラ12が配置される。このカメラ12は、表示画面2aに対向するユーザの顔を撮影できるように向けられる。
光源11は、表示画面2aに対向するユーザの顔を照明できるように、ユーザインターフェース2の外周に配置される。この例では、光源11は、ユーザインターフェース2の上端に近接し、カメラ12と並んで配置される。
【0024】
制御部4は、上述したように、携帯端末1の制御部でもあり、視線検出装置10の各部と信号線を通じて接続されている。そして制御部4は、視線検出装置10の各部へ信号線を通じて制御信号を送信することで視線検出装置10の各部を制御する。
また制御部4は、ユーザが注視している位置の情報を用いるアプリケーションが携帯端末1で実行されている間、ユーザが注視している位置を求める視線方向検出処理を実行する。また、制御部4は、携帯端末1の起動時、あるいは上記のようなアプリケーションの起動時など、特定のタイミングにおいて、光源のプルキンエ像と瞳孔重心との相対的な位置関係とユーザの視線方向との関係を求めるキャリブレーション処理を実行する。
【0025】
図3は、制御部4の視線検出処理に関する機能ブロック図である。制御部4は、光源制御部21と、カメラ制御部22と、顔検出部23と、プルキンエ像検出部24と、視線検出部25と、距離特徴量抽出部26と、距離推定部27と、注視位置検出部28と、キャリブレーション部29とを有する。
制御部4が有するこれらの各部は、制御部4が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールである。また制御部4が有するこれらの各部は、それぞれ、制御部4が有するプロセッサとは別個の回路として形成されてもよい。あるいは制御部4が有するこれらの各部は、その各部に対応する回路が集積された一つの集積回路として、制御部4が有するプロセッサとは別個に携帯端末1に実装されてもよい。この場合、その集積回路は、メモリ3とは別個に、参照テーブルなどを記憶して、視線検出装置10が有する記憶部として機能する記憶回路を含んでいてもよい。
【0026】
光源制御部21は、光源11を点灯または消灯させる。光源制御部21は、例えば、視線検出処理の実行中、光源11を点灯させる。また光源制御部21は、光源11が複数含まれる場合、同時に2個以上の光源が点灯するように各光源へ制御信号を送信してもよい。同時に複数の光源が点灯すると、プルキンエ像にも点灯している複数の光源の像が含まれるので、視線検出装置10は、画像上での輝点の配置パターンが、実際に点灯している光源の配置パターンと一致するか否か調べることができる。そのため、視線検出装置10は、室内灯または太陽など、他の光源の像と視線検出装置10が有する光源の像とを識別し易くなる。
【0027】
カメラ制御部22は、視線検出処理またはキャリブレーション処理の実行中において、カメラ12が撮影するタイミングを制御する。カメラ制御部22は、光源制御部21から光源11が点灯したことを通知されると、カメラ12に対して所定の周期で撮影を実行させる撮影指示信号を送信する。そしてカメラ制御部22は、カメラ12から画像を受け取る度に、その画像を一旦メモリ3に記憶させる。
【0028】
顔検出部23は、視線検出処理またはキャリブレーション処理の実行中において、画像上でユーザの眼が写っている可能性のある領域を特定するために、カメラ12から受け取った画像上で、ユーザの顔が写っている領域を検出する。
本実施形態では、撮影時において、ユーザの顔は光源11からの赤外光で照明されており、赤外光に対する肌の反射率は比較的高い(例えば、肌の反射率は近赤外の波長域で数10%)ので、画像上で顔の肌の部分が写っている画素の輝度は高い。一方、画像上で髪の毛またはユーザの背後の領域は赤外光に対する反射率が低いかまたは光源から遠いため、髪の毛またはユーザの背後の領域が写っている画素の輝度は、相対的に低くなる。
そこで、顔検出部23は、画像の各画素の値がRGB表色系により表されているカラー画像である場合、各画素の値をYUV表色系により表される値に変換する。そして顔検出部23は、各画素の輝度成分(Y成分)の値が所定の閾値以上の画素を、顔が写っている可能性がある顔領域候補画素として抽出する。なお、画像の各画素の値が輝度を表すモノクロ画像である場合、顔検出部23は、各画素の値を所定の閾値と比較する。所定の閾値は、例えば、画像上の輝度成分の最大値に0.8を乗じた値に設定される。
【0029】
また、ユーザの視線に応じて携帯端末1の操作が実行される場合、ユーザの顔は、携帯端末1の正面を向いており、かつ、携帯端末1の正面から略数十cm離れた位置にあると想定される。そのため、画像上でユーザの顔が占める領域は比較的大きく、かつ、画像上で顔が占める領域の大きさもある程度推定される。
そこで顔検出部23は、顔領域候補画素に対してラベリング処理を行って、互いに隣接している顔領域候補画素の集合を顔候補領域とする。そして顔検出部23は、顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれているか否か判定する。顔候補領域の大きさがユーザの顔の大きさに相当する基準範囲に含まれていれば、顔検出部23はその顔候補領域をユーザの顔が写っている顔領域と判定する。
なお、顔候補領域の大きさは、例えば、顔候補領域の水平方向の最大幅の画素数で表される。この場合、基準範囲は、例えば、画像の水平方向画素数の1/4以上〜2/3以下に設定される。あるいは、顔候補領域の大きさは、例えば、顔候補領域に含まれる画素数で表されてもよい。この場合、基準範囲は、例えば、画像全体の画素数の1/16以上〜4/9以下に設定される。
【0030】
顔検出部23は、顔候補領域の大きさだけでなく、顔候補領域の形状も、顔候補領域を顔領域と判定するための判定条件に加えてもよい。人の顔は、一般に略楕円形状を有している。そこで顔検出部23は、例えば、顔候補領域の大きさが上記の基準範囲に含まれ、かつ、顔候補領域の円形度が、一般的な顔の輪郭に相当する所定の閾値以上である場合に顔候補領域を顔領域としてもよい。なお顔検出部23は、顔候補領域の輪郭上に位置する画素の合計を顔候補領域の周囲長として求め、顔候補領域内の総画素数に4πを乗じた値を周囲長の2乗で除することにより円形度を算出できる。
【0031】
あるいは、顔検出部23は、顔候補領域の輪郭上の各画素の座標を楕円方程式に当てはめて最小二乗法を適用することにより、顔候補領域を楕円近似してもよい。そして顔検出部23は、その楕円の長軸と短軸の比が一般的な顔の長軸と短軸の比の範囲に含まれる場合に、顔候補領域を顔領域としてもよい。なお、顔検出部23は、楕円近似により顔候補領域の形状を評価する場合、画像の各画素の輝度成分に対して近傍画素間演算を行ってエッジに相当するエッジ画素を検出してもよい。この場合、顔検出部23は、エッジ画素を例えばラベリング処理を用いて連結し、一定の長さ以上に連結されたエッジ画素を顔候補領域の輪郭とする。
【0032】
なお、顔検出部23は、画像上に写っている顔の領域を検出する他の様々な方法の何れかに従って顔領域を検出してもよい。例えば、顔検出部23は、顔候補領域と一般的な顔の形状に相当するテンプレートとの間でテンプレートマッチングを行って、顔候補領域とテンプレートとの一致度を算出し、その一致度が所定値以上である場合に、顔候補領域を顔領域と判定してもよい。
【0033】
顔検出部23は、顔領域を抽出できると、顔領域を表す情報を生成する。例えば、顔領域を表す情報は、画像と同一のサイズを有し、かつ顔領域内の画素と顔領域外の画素とが異なる画素値を持つ2値画像とすることができる。
そして顔検出部23は、顔領域を表す情報をプルキンエ像検出部24へ渡す。
【0034】
プルキンエ像検出部24は、視線検出処理またはキャリブレーション処理の実行中において、顔領域内でユーザの眼が写っている領域を検出し、眼が写っている領域内でプルキンエ像を検出する。
眼に相当する画素の輝度は、眼の周囲に相当する画素の輝度と大きく異なる。そこでプルキンエ像検出部24は、顔領域内の各画素に対して、例えば、Sobelフィルタを用いて垂直方向の近傍画素間差分演算を行って垂直方向に輝度が変化するエッジ画素を検出する。そしてプルキンエ像検出部24は、例えば、エッジ画素が略水平方向に眼の大きさに相当する所定数以上連結された2本のエッジ線で囲まれた領域を眼の領域とする。
あるいは、プルキンエ像検出部24は、画像上の眼の像を表すテンプレートと、顔領域とのテンプレートマッチングにより、顔領域内でテンプレートに最も一致する領域を検出し、その検出した領域を眼の領域としてもよい。
【0035】
さらに、プルキンエ像検出部24は、眼の領域内で瞳孔が写っている領域を検出する。本実施形態では、プルキンエ像検出部24は、瞳孔に相当するテンプレートと眼の領域との間でテンプレートマッチングを行い、眼の領域内でテンプレートとの一致度が最も高くなる領域を検出する。そしてプルキンエ像検出部24は、一致度の最高値が所定の一致度閾値よりも高い場合、その検出した領域に瞳孔が写っていると判定する。なお、テンプレートは、瞳孔の大きさに応じて複数準備されてもよい。この場合、プルキンエ像検出部24は、各テンプレートと眼の領域とのテンプレートマッチングをそれぞれ実行し、一致度の最高値を求める。そして一致度の最高値が一致度閾値よりも高い場合、プルキンエ像検出部24は、一致度の最高値に対応するテンプレートと重なった領域に瞳孔が写っていると判定する。なお、一致度は、例えば、テンプレートとそのテンプレートと重なった領域との正規化相互相関値として算出される。また一致度閾値は、例えば、0.7または0.8に設定される。
【0036】
また瞳孔が写っている領域の輝度は、その周囲の領域の輝度よりも低く、瞳孔は略円形である。そこでプルキンエ像検出部24は、眼の領域内で、同心円状に半径の異なる2本のリングを設定する。そしてプルキンエ像検出部24は、外側のリングに相当する画素の輝度の平均値から内側の画素の輝度の平均値を引いた差分値が所定の閾値よりも大きい場合、その内側のリングで囲まれた領域を瞳孔領域としてもよい。またプルキンエ像検出部24は、内側のリングで囲まれた領域の平均輝度値が所定の閾値以下であることを、瞳孔領域として検出する条件に加えてもよい。この場合、所定の閾値は、例えば、眼の領域内の最大輝度値と最小輝度値の差の10%〜20%を、最小輝度値に加えた値に設定される。
プルキンエ像検出部24は、瞳孔領域の検出に成功した場合、瞳孔領域に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、瞳孔領域の重心の座標として算出する。一方、プルキンエ像検出部24は、瞳孔領域の検出に失敗した場合、制御部4へその旨を表す信号を返す。
【0037】
またプルキンエ像検出部24は、眼の領域内で光源11のプルキンエ像を検出する。光源11のプルキンエ像が写っている領域の輝度は、その周囲の領域の輝度よりも高く、その輝度値は略飽和している(すなわち、輝度値が、画素値が取り得る輝度の値の略最高値となっている)。また、光源11のプルキンエ像が写っている領域の形状は、各光源の発光面の形状と略一致する。そこでプルキンエ像検出部24は、眼の領域内で、光源の発光面の輪郭形状と略一致する形状を持ち、かつ、大きさが異なるとともに中心が一致する2本のリングを設定する。そしてプルキンエ像検出部24は、内側のリングに相当する画素の輝度の平均値である内部輝度平均値から外側の画素の輝度の平均値を引いた差分値を求める。プルキンエ像検出部24は、その差分値が所定の差分閾値よりも大きく、かつ内側輝度平均値が所定の輝度閾値よりも高い場合、その内側のリングで囲まれた領域を光源11のプルキンエ像とする。なお、差分閾値は、例えば、眼の領域内の近傍画素間の差分値の平均値とすることができる。また所定の輝度閾値は、例えば、眼の領域内での輝度値の最高値の80%とすることができる。
なお、プルキンエ像検出部24は、画像上で瞳孔が写っている領域を検出する他の様々な方法の何れかを用いて、瞳孔が写っている領域を検出してもよい。同様に、プルキンエ像検出部24は、画像上で光源のプルキンエ像が写っている領域を検出する他の様々な方法の何れかを用いて、光源のプルキンエ像が写っている領域を検出してもよい。
【0038】
プルキンエ像検出部24は、光源11のプルキンエ像の検出に成功した場合、光源に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、プルキンエ像の重心の座標として算出する。一方、プルキンエ像検出部24は、光源のプルキンエ像の検出に失敗した場合、制御部4へその旨を表す信号を返す。
プルキンエ像検出部24は、キャリブレーション処理の実行時の場合、プルキンエ像の重心及び瞳孔重心をキャリブレーション部29へ通知する。一方、プルキンエ像検出部24は、視線検出処理の実行時には、プルキンエ像の重心及び瞳孔重心を視線検出部25へ通知する。
【0039】
視線検出部25は、視線検出処理の実行中において、プルキンエ像の重心及び瞳孔重心に基づいてユーザの視線方向を検出する。
【0040】
角膜の表面は略球形であるため、視線方向によらず、光源のプルキンエ像の位置はほぼ一定となる。一方、瞳孔重心は、ユーザの視線方向に応じて移動する。そのため、視線検出部25は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求めることにより、ユーザの視線方向を検出できる。
本実施形態では、視線検出部25は、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、例えば、瞳孔重心の水平方向座標及び垂直方向座標からプルキンエ像の重心の水平方向座標及び垂直方向座標を減算することにより求める。そして視線検出部25は、瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを参照することにより、ユーザの注視位置を決定する。
そして視線検出部25は、ユーザの視線方向を注視位置検出部28へ通知する。
【0041】
図4は、参照テーブルの一例を示す図である。参照テーブル400の左側の列の各欄には、光源のプルキンエ像の重心を基準とする瞳孔重心の相対的な位置の座標が表される。また参照テーブル400の右側の列の各欄には、同じ行の瞳孔重心の相対的な位置の座標に対応するユーザの視線方向が表される。なお、この例では、視線方向は、表示画面2a上の基準点をユーザが注視しているときの視線方向を基準方向として、その基準方向からの水平方向及び垂直方向の角度の差で表される。なお、瞳孔重心の相対的な位置の座標は、画像上の画素単位で表される。
【0042】
距離特徴量抽出部26は、被写体距離に応じて変化する距離特徴量を画像から抽出する。ここで、カメラ12により得られた画像上のユーザの顔の大きさは、被写体距離が離れるほど小さくなる。そのため、画像上での顔の特徴的な部位間の距離も、被写体距離に応じて変化する。
【0043】
このことを、図5(a)及び図5(b)を参照しつつ説明する。図5(a)は、被写体距離が比較的近い第1の距離である場合の画像上のユーザの顔を表す模式図である。図5(b)は、被写体距離が第1の距離よりも遠い第2の距離である場合の画像上のユーザの顔を表す模式図である。図5(a)及び図5(b)に示されるように、画像500、510には、それぞれ、ユーザの顔の左右の鼻孔501が写っている。そして画像500の撮影時の被写体距離が、画像510の撮影時の被写体距離より短いので、画像500に写っているユーザの顔の面積の方が、画像510に写っているユーザの顔の面積よりも大きい。そのため、画像500に写っている左右の鼻孔501間の間隔Δnは、画像510に写っている左右の鼻孔501間の間隔Δfよりも広い。このように、被写体距離が大きいほど、画像上での左右の鼻孔間の距離が短くなることが分かる。同様に、被写体距離が短いほど、画像上での両目の中心間の間隔、口と鼻の間隔、何れかの目の中心と口との間隔、あるいは左右の口角点間の間隔など、二つの特徴的な部位間の画像上の距離は大きくなる。
【0044】
図6は、画像上での左右の鼻孔の重心間の間隔と被写体距離との関係の実験結果を表すグラフである。図6において、横軸は被写体距離を表し、縦軸は左右の鼻孔の重心間の間隔(ピクセル単位)を表す。そして各点は、それぞれ、被写体距離300mm〜600mmにおける左右の鼻孔の重心間の間隔を表す。この実験では、1/3.2インチ(水平方向4.73mm、垂直方向3.52mm)の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより顔を撮影した画像を用いた。各点に示されるように、左右の鼻孔の重心間の間隔は、被写体距離が大きくなるほど小さくなっている。また、点601に示される、被写体距離が最大(600mm)のときの左右の鼻孔の重心間の間隔に対して、点602に示される、被写体距離が最小(300mm)のときの左右の鼻孔の重心間の間隔は約4倍となる。このように、画像上での左右の鼻孔の重心間の間隔は被写体距離に応じて大きく変化することが分かる。したがって、画像上の左右の鼻孔の重心間の間隔は距離特徴量として使用可能である。同様に、左右の目の中心間の間隔、鼻尖点と口の中心間の間隔なども距離特徴量として使用可能である。
そこで本実施形態では、距離特徴量抽出部26は、顔領域内で眼、鼻の穴、口角点などの特徴的な部位を少なくとも二つ検出し、その特徴的な部位間の距離を距離特徴量とする。
【0045】
距離特徴量抽出部26は、顔領域と、目、鼻孔、口などの特徴的な部位の一般的な形状に相当するテンプレートとの間で相対的な位置を変えつつテンプレートマッチングを行って、顔領域とテンプレートとの一致度を算出する。例えば、鼻孔に関するテンプレートは、略円形状の輝度が低い領域とその周囲に輝度が高い領域とを有するように設定される。そして距離特徴量抽出部26は、顔領域内の特定位置で一致度が所定値以上である場合に、その特定位置にテンプレートに相当する部位が写っていると判定する。距離特徴量抽出部26は、少なくとも二つの部位の画像上の位置を求め、その部位間の距離を距離特徴量とする。
距離特徴量抽出部26は、視線検出処理の実行時には、距離特徴量を距離推定部27へ渡す。一方、距離特徴量抽出部26は、キャリブレーション処理の実行時の場合、距離特徴量をキャリブレーション部29へ通知する。
【0046】
距離推定部27は、距離特徴量に基づいて、被写体距離を推定する。本実施形態では、距離推定部27は、メモリ3に予め記憶されている、距離特徴量と被写体距離との関係を表す距離参照テーブルを参照することにより、距離特徴量に対応する被写体距離を推定する。
あるいは、距離推定部27は、距離特徴量と被写体距離との関係式に、距離特徴量抽出部26により求められた距離特徴量を入力することにより、被写体距離を求めてもよい。なお、距離参照テーブル及び距離特徴量と被写体距離との関係式は、それぞれ、距離情報の一例である。
距離推定部27は、視線検出処理の実行時には、被写体距離を注視位置検出部28へ通知する。一方、距離推定部27は、キャリブレーション処理の実行時の場合、その距離をキャリブレーション部29へ通知する。
【0047】
注視位置検出部28は、ユーザの視線方向及び被写体距離に基づいて、ユーザが表示画面2a上で注視している位置を検出する。なお、以下では、便宜上、ユーザが表示画面2a上で注視している位置を単に注視位置と呼ぶ。
本実施形態では、注視位置検出部28は、ユーザの視線方向及び被写体距離と表示画面2a上でのユーザの注視位置との関係を表す注視位置テーブルを参照することにより、ユーザの注視位置を決定する。
【0048】
図7は、注視位置テーブルの一例を示す図である。注視位置テーブル700の左側の列には、被写体距離が表される。また注視位置テーブル700の上端の行には、ユーザの視線方向が表される。そして注視位置テーブル700の各欄には、同じ行の被写体距離及び同じ列の視線方向に対応する、表示画面2a上の注視位置の座標が表示画面2aの画素単位で表される。例えば、注視位置テーブル700の欄701には、距離200mmで視線方向が水平方向0°、垂直方向1°の場合の注視位置が(cx,cy+40)であることが示されている。なお、cx、cyは、視線方向が(0,0)のときの注視位置、すなわち基準注視位置の座標、例えば、表示画面2aの中心の水平座標及び垂直座標である。
【0049】
あるいは、注視位置検出部28は、被写体距離が所定の基準距離である場合の、視線方向に対する注視位置を基準注視位置として注視位置テーブルを参照して求め、その基準注視位置を被写体距離に応じて補正してもよい。なお基準距離は、例えば、キャリブレーション処理の実行時において指定された被写体距離であり、300mmに設定される。この場合、補正により算出される注視位置の水平座標vx及び垂直座標vyは以下の式で算出される。
vx = R(vrx-cx) + cx
vy = R(vry-cy) + cy
ここで、vrx、vryは、それぞれ、表示画面上の基準注視位置の水平座標及び垂直座標であり、cx、cyは、視線方向が(0,0)のときの注視位置の座標である。そしてRは、基準距離に対する距離推定部27により推定された距離の比である。
注視位置検出部28は、ユーザの注視位置を制御部4で実行中のアプリケーションプログラムへ通知する。
【0050】
キャリブレーション部29は、キャリブレーション処理を実行することにより、上記の参照テーブル及び距離参照テーブルを更新する。
キャリブレーション部29は、例えば、制御部4から携帯端末1が起動したことを示す信号を受信したとき、あるいは、特定のアプリケーションが起動されたことを示す信号を受信したときに、キャリブレーション処理を実行する。
【0051】
キャリブレーション処理が開始されると、キャリブレーション部29は、ユーザインターフェース2の表示画面2a上の所定の基準位置にキャリブレーション用のマークを表示させる。基準位置は、例えば、表示画面2aの中心、あるいは表示画面2aの4角の何れかとすることができる。
さらに、キャリブレーション部29は、キャリブレーション中において、携帯端末1の表示画面2aからどれだけ離した位置に顔を配置するのかを指示するために、表示画面2aからユーザの顔までの指定距離を表示画面2a上に表示させる。
キャリブレーションの実行中、ユーザは、表示画面2a上に表示されているキャリブレーション用のマークを注視するものとする。
【0052】
キャリブレーション部29は、表示画面2aの中心にマークが表示されているときに撮影された画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部24から受け取る。そしてキャリブレーション部29は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、ユーザが表示画面2aの中心を注視したときの視線方向に対応させるよう、参照テーブルを更新する。なお、注視位置の座標と視線方向とは1対1に対応する。そこでキャリブレーション部29は、例えば、ユーザが表示画面2aの中心を注視したときの視線方向を、水平方向及び垂直方向とも0°とする。
【0053】
またキャリブレーション部29は、表示画面2aの左上の角にマークが表示されているときに撮影された画像に基づいて検出された、プルキンエ像の重心及び瞳孔重心の座標をプルキンエ像検出部24から受け取る。そしてキャリブレーション部29は、このときのプルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、ユーザが表示画面2aの左上の角を注視したときの視線方向に対応させるよう、参照テーブルを更新する。同様に、キャリブレーション部29は、マークが表示画面2aの他の角に表示されているときの撮影画像上でのプルキンエ像の重心に対する瞳孔重心の相対的位置を、ユーザがマークの表示位置を注視したときの視線方向と対応づけるよう参照テーブルを更新する。
さらに、キャリブレーション部29は、他の視線方向に対するプルキンエ像の重心を基準とした瞳孔重心の相対的位置を、既に求めた上記の5個のマークの位置に対応する瞳孔重心の相対的な位置を用いて例えば線形補間することにより決定する。そしてキャリブレーション部29は、様々な視線方向に対する瞳孔重心の相対的な位置を対応づけるように参照テーブルを更新する。
【0054】
また、キャリブレーション部29は、上記の指定距離における距離特徴量を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、距離特徴量を指定距離と対応付けるように距離参照テーブルを更新する。さらにキャリブレーション部29は、指定距離を様々に変えて、カメラ12にユーザの顔を撮影した画像を作成させてもよい。この場合、キャリブレーション部29は、それぞれの指定距離において撮影された画像から抽出された距離特徴量を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、各指定距離とその指定距離における距離特徴量を対応付けるように距離参照テーブルを更新する。
【0055】
なお、本実施形態のように、距離特徴量が顔の二つの特定部位間の画像上の距離であれば、被写体距離と距離特徴量とは反比例する。そこでこの場合、キャリブレーション部29は、任意の被写体距離dに対する距離特徴量を、指定距離d0について求めた距離特徴量に、その被写体距離dに対する指定距離d0の比(d0/d)を乗じることで求めてもよい。そしてキャリブレーション部29は、計算により算出された距離特徴量及び対応する被写体距離に基づいて、距離参照テーブルを更新してもよい。この場合、視線検出装置10は、一つの指定距離についてのみユーザの顔を撮影すればよいので、キャリブレーション処理の手間を軽減できる。
キャリブレーション部29は、更新された参照テーブル及び距離参照テーブルをメモリ3に保存する。
【0056】
また、距離特徴量に関する個人差が無視できるほど小さい場合、予め一般的な顔のモデルを撮影した画像から抽出された距離特徴量、あるいはシミュレーションにより算出される距離特徴量に基づいて予め距離参照テーブルが作成されていてもよい。この場合には、キャリブレーション部29は、距離参照テーブルを更新しなくてもよい。
【0057】
図8は、制御部4により実行される、キャリブレーション処理の動作フローチャートを示す。
制御部4は、ユーザインターフェース2の表示画面2a上の基準位置に所定のマークを表示させる(ステップS101)。次に、制御部4は、光源11が点灯した状態でユーザの顔を撮影した画像をカメラ12から取得する(ステップS102)。制御部4の顔検出部23は、画像上で顔が写っている顔領域を抽出する(ステップS103)。そして顔検出部23は、顔領域を表す情報を制御部4のプルキンエ像検出部24及び距離特徴量抽出部26へ渡す。
【0058】
プルキンエ像検出部24は、顔領域内で眼の領域を検出する(ステップS104)。そしてプルキンエ像検出部24は、眼の領域内で瞳孔重心を検出する(ステップS105)。またプルキンエ像検出部24は、眼の領域内で点灯している光源のプルキンエ像を検出する(ステップS106)。
【0059】
プルキンエ像検出部24は、瞳孔重心及び光源のプルキンエ像の検出に成功したか否か判定する(ステップS107)。プルキンエ像検出部24が瞳孔重心または光源のプルキンエ像の検出に失敗した場合(ステップS107−No)、制御部4は、カメラ12に再撮影を指示する(ステップS108)。そして制御部4はステップS102以降の処理を再実行する。
一方、プルキンエ像検出部24が瞳孔重心及び光源のプルキンエ像の検出に成功した場合(ステップS107−Yes)、プルキンエ像検出部24は、光源のプルキンエ像の重心及び瞳孔重心を制御部4のキャリブレーション部29へ通知する。
キャリブレーション部29は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求める。そしてキャリブレーション部29は、その相対的な位置と表示画面2aに表示されているマークの位置により決定される視線方向とに基づいて、参照テーブルを更新する(ステップS109)。
【0060】
また距離特徴量抽出部26は、画像から指定距離における距離特徴量を抽出する(ステップS110)。距離特徴量抽出部26は、その距離特徴量をキャリブレーション部29へ通知する。そしてキャリブレーション部29は、指定距離と距離特徴量とを対応付けるように距離参照テーブルを更新する(ステップS111)。
ステップS111の後、制御部4は、キャリブレーション処理を終了する。なお、プルキンエ像検出部24は、ステップS105の処理とステップS106の処理の順序を入れ替えてもよい。またプルキンエ像検出部24は、顔領域全体でユーザの瞳孔及び光源のプルキンエ像を探索してもよい。この場合、ステップS104の処理は省略される。さらに、制御部4は、ステップS104〜S109の処理とステップS110及びS111の処理の順序を入れ替えてもよい。
【0061】
図9は、制御部4により実行される、視線検出処理の動作フローチャートを示す。
制御部4は、光源11が点灯した状態でユーザの顔を撮影した画像をカメラ12から取得する(ステップS201)。そして制御部4の顔検出部23は、画像上で顔が写っている顔領域を抽出する(ステップS202)。顔検出部23は、顔領域の抽出に成功したか否か判定する(ステップS203)。顔領域の抽出に失敗した場合(ステップS203−No)、ユーザは携帯端末1を向いていない。そのため、制御部4は、視線検出処理を終了する。その後制御部4は、キャリブレーション処理を実行してもよい。あるいは、制御部4は、ステップS201以降の処理を再度実行してもよい。この場合には、制御部4のカメラ制御部22は、前回の撮影時の露出条件と異なる露出条件でユーザの顔を撮影するようにカメラ12に制御信号を送信してもよい。
【0062】
一方、顔検出部23が顔領域の抽出に成功した場合(ステップS203−Yes)、顔検出部23は、顔領域を表す情報を制御部4のプルキンエ像検出部24及び距離特徴量抽出部26へ渡す。
プルキンエ像検出部24は、顔領域内で眼の領域を検出する(ステップS204)。そしてプルキンエ像検出部24は、眼の領域内で瞳孔重心を検出する(ステップS205)。またプルキンエ像検出部24は、眼の領域内で光源11のプルキンエ像を検出する(ステップS206)。そしてプルキンエ像検出部24は、瞳孔重心及び光源のプルキンエ像の検出に成功したか否か判定する(ステップS207)。
【0063】
プルキンエ像検出部24が瞳孔重心及び光源のプルキンエ像の検出に失敗した場合(ステップS207−No)、制御部4は、ステップS201以降の処理を再度実行する。その際、カメラ制御部22は、前回の撮影時の露出条件と異なる露出条件でユーザの顔を撮影するようにカメラ12に制御信号を送信してもよい。
一方、プルキンエ像検出部24が瞳孔重心及び光源のプルキンエ像の検出に成功した場合(ステップS207−Yes)、プルキンエ像検出部24は、光源のプルキンエ像の重心及び瞳孔重心を制御部4の視線検出部25へ通知する。
視線検出部25は、参照テーブルを参照してプルキンエ像の重心を基準とする瞳孔重心の位置に対応する視線方向を検出する(ステップS208)。そして視線検出部25は、その視線方向を表す情報を、制御部4の注視位置検出部28へ渡す。
【0064】
また距離特徴量抽出部26は、画像から距離特徴量を抽出する(ステップS209)。距離特徴量抽出部26は、その距離特徴量を制御部4の距離推定部27へ渡す。そして距離推定部27は、距離参照テーブルを参照して距離特徴量に対応する、被写体距離を推定する(ステップS210)。そして距離推定部27は、被写体距離の推定値を、注視位置検出部28へ渡す。
【0065】
注視位置検出部28は、注視位置テーブルを参照して、視線方向及び被写体距離の推定値に対応する注視位置を求める(ステップS211)。そして注視位置検出部28は、その注視位置を表す情報を、制御部4が実行中のアプリケーションプログラムへ渡す。
その後、制御部4は、視線検出処理を終了する。なお、プルキンエ像検出部24は、ステップS205の処理とステップS206の処理の順序を入れ替えてもよい。またプルキンエ像検出部24は、顔領域全体でユーザの瞳孔及び光源のプルキンエ像を探索してもよい。この場合、ステップS204の処理は省略される。あるいは、プルキンエ像検出部24が着目画像上で瞳孔重心または光源のプルキンエ像の何れか一方の検出に失敗した時点で、他方の検出処理を行わずに、制御部4は、ステップS201以降の処理を再実行してもよい。
【0066】
以上に説明してきたように、第1の実施形態による視線検出装置は、視線検出処理の実行時における被写体距離を求め、その距離とプルキンエ像に基づいて求められる視線方向とからユーザの注視位置を求める。そのため、この視線検出装置は、キャリブレーションの実行時と視線検出処理の実行時とで被写体距離が異なっていても、正確に注視位置を検出できる。さらにこの視線検出装置は、プルキンエ像の検出に用いられる画像と同一の画像から被写体距離を表す特徴量を抽出し、その特徴量に基づいて被写体距離を推定できる。そのため、この視線検出装置は、被写体距離推定のために視線方向検出のための機構と別個の機構を持つ必要が無いので、装置構成を簡単化できる。
【0067】
次に、第2の実施形態による視線検出装置について説明する。第2の実施形態による視線検出装置は、画像上のプルキンエ像のサイズを距離特徴量として求める。
【0068】
第2の実施形態による視線検出装置は、第1の実施形態による視線検出装置と比較して、制御部の距離特徴量抽出部の処理が異なる。そこで、以下では、距離特徴量抽出部及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、第1の実施形態に関する関連部分の説明を参照されたい。
【0069】
光源11は、その周囲よりも明るいので、画像上でのプルキンエ像に相当する画素の輝度値もその周囲の画素の輝度値よりも高くなる。ここで、カメラ12の露出条件が適切に設定されていれば、画像上では、プルキンエ像に相当する画素の輝度値は、取り得る輝度値の最大値に近い値となる。すなわち、画像上でのプルキンエ像に相当する画素の輝度値は飽和する。
また、被写体距離が近いほど、画像上でのプルキンエ像のサイズも大きくなる。そのため、被写体距離が近いほど、プルキンエ像のサイズに相当する、ほぼ最大輝度値となる画素の数が増加する。
【0070】
図10(a)は、プルキンエ像が写った画像の一例を表し、図10(b)は、図10(a)の水平方向の線1000に沿った画素のうち、輝度値が飽和した画素(以下、便宜上飽和画素と呼ぶ)の数と被写体距離との関係の実験結果を表すグラフである。図10(b)において、横軸は被写体距離を表し、縦軸は輝度値を表す。そして点1001〜1004は、それぞれ、被写体距離200mm、300mm、400mm、500mmにおける飽和画素数を表す。この実験では、1/3.2インチ(水平方向4.73mm、垂直方向3.52mm)の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより眼を撮影した画像を用いた。そして各画素の輝度値は0〜255の値を取り、輝度値240以上の画素を飽和画素とした。
点1001〜1004に示されるように、飽和画素数は、被写体距離が大きくなるほど少なくなることが分かる。また被写体距離が最大となるとき(500mm)の飽和画素数に対して、被写体距離が最小となるとき(200mm)となるときの飽和画素数は5倍になっている。このように、画像上でプルキンエ像のサイズに相当する飽和画素の数は、距離特徴量として使用可能である。
【0071】
そこで、この実施形態による距離特徴量抽出部26は、プルキンエ像検出部24から画像上でのプルキンエ像の領域を表す情報を取得する。そして距離特徴量抽出部26は、プルキンエ像の領域の重心を求め、その重心を通る1画素幅の直線である走査線を設定する。なお、走査線の方向は任意であり、例えば、水平方向あるいは垂直方向に設定される。距離特徴量抽出部26は、走査線上で、かつプルキンエ像の領域内で飽和画素の数をカウントする。例えば、距離特徴量算出部26は、輝度値が閾値以上となる画素を飽和画素とする。なお、閾値は、輝度値の最大値または最大値よりも僅かに小さい値、例えば、240〜255の何れかに設定される。
距離特徴量抽出部26は、視線検出処理の実行時には、距離特徴量としてその飽和画素の数を距離推定部27へ渡す。一方、距離特徴量抽出部26は、キャリブレーション処理の実行時の場合、距離特徴量としてその飽和画素の数をキャリブレーション部29へ通知する。
なお、変形例によれば、距離特徴量抽出部26は、プルキンエ像の領域内に含まれる飽和画素の総数を距離特徴量として算出してもよい。
【0072】
距離推定部27は、メモリ3に記憶された距離参照テーブルを参照して、距離特徴量である飽和画素数に対応する被写体距離を求め、その被写体距離を注視位置検出部28へ通知する。注視位置検出部28は、被写体距離及び視線検出部25により求められた視線方向に基づいて、表示画面上の注視位置を求める。このように、この実施形態では、距離参照テーブルは、飽和画素数と被写体距離との対応関係を表す。
また、キャリブレーション部29は、様々な指定距離における飽和画素数を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、各指定距離とその指定距離における飽和画素数を対応付けるように距離参照テーブルを更新する。
【0073】
以上に説明してきたように、第2の実施形態による視線検出装置は、高精度で検出可能な画像上のプルキンエ像の領域内で、被写体距離の変化による変動幅が相対的に大きい飽和画素数を距離特徴量として求める。そのため、この第2の実施形態による視線検出装置は、被写体距離を正確に推定できる。したがって、この第2の実施形態による視線検出装置は、正確に注視位置を求めることができる。
【0074】
次に、第3の実施形態による視線検出装置について説明する。第3の実施形態による視線検出装置は、所定距離だけ離して配置された少なくとも二つの光源を有し、画像上の各光源に対応するプルキンエ像間の距離を距離特徴量として求める。
【0075】
第3の実施形態による視線検出装置は、第1の実施形態による視線検出装置と比較して、光源の数が複数であること、及び制御部の距離特徴量抽出部の処理が異なる。そこで、以下では、光源、距離特徴量抽出部及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、第1の実施形態に関する関連部分の説明を参照されたい。
【0076】
図11は、第3の実施形態による視線検出装置が搭載された携帯端末1の概略正面図である。図11に示されるように、この実施形態では、ユーザインターフェース2の表示画面2aの上端近傍に第1の光源11−1を備え、表示画面2aの下端近傍に第2の光源11−2を備える。なお、光源の配置はこの例に限られず、例えば、一つの光源が表示画面2aの左端近傍に配置され、他の一つの光源が表示画面2aの右端近傍に配置されてもよい。あるいは、3個以上の光源が表示画面2aの周囲に配置されてもよい。ただし、画像上でプルキンエ像間の距離が大きくなるように、各光源間の距離はできるだけ離れるように、各光源が配置されることが好ましい。
【0077】
人の角膜は、略球面状に形成されているので、凸面鏡として機能する。そのため、被写体距離が大きくなるほど、画像上での複数の光源のそれぞれに対応するプルキンエ像間の距離は小さくなる。
【0078】
図12は、画像上での表示画面2aを挟んで上下方向に並べて配置された二つの光源のプルキンエ像間の間隔と被写体距離との関係の実験結果を表すグラフである。図12において、横軸は被写体距離を表し、縦軸はプルキンエ像間の間隔(ピクセル単位)を表す。そして各点は、それぞれ、被写体距離200mm〜650mmにおけるプルキンエ像間の間隔を表す。この実験では、縦方向に77mmの長さを持つ表示画面の上端近傍と下端近傍にそれぞれ光源を配置した。そして、1/3.2インチ(水平方向4.73mm、垂直方向3.52mm)の200万画素CMOSセンサと対角方向画角58°を持つ結像光学系を有するカメラにより眼を撮影した画像を用いた。各点に示されるように、プルキンエ像間の間隔は、被写体距離が大きくなるほど小さくなっている。また、点1201に示される、被写体距離が最大(650mm)のときのプルキンエ像間の間隔に対して、点1202に示される、被写体距離が最小(200mm)のときのプルキンエ像間の間隔は15倍以上となる。このように、プルキンエ像間の間隔は被写体距離に応じて大きく変化することが分かる。したがって、画像上のプルキンエ像間の距離は距離特徴量として使用可能である。
【0079】
そこで、この実施形態による距離特徴量抽出部26は、プルキンエ像検出部24から画像上での各光源のプルキンエ像の重心を表す情報を取得する。そして距離特徴量抽出部26は、プルキンエ像の重心間の距離を求める。
距離特徴量抽出部26は、視線検出処理の実行時には、距離特徴量としてプルキンエ像の重心間の距離を距離推定部27へ渡す。
【0080】
距離推定部27は、メモリ3に記憶された距離参照テーブルを参照して、距離特徴量であるプルキンエ像の重心間の距離に対応する被写体距離を求め、その被写体距離を注視位置検出部28へ通知する。またプルキンエ像検出部24は、何れか一方の光源、例えば、上側に配置された光源11−1のプルキンエ像の重心を視線検出部25に通知する。そして視線検出部25は、光源11−1のプルキンエ像の重心位置に基づいてユーザの視線方向を求める。
注視位置検出部28は、被写体距離及び視線検出部25により求められた視線方向に基づいて、表示画面上の注視位置を求める。このように、この実施形態では、距離参照テーブルは、プルキンエ像の重心間の距離と被写体距離との対応関係を表す。
【0081】
この実施形態では、キャリブレーション部29は、キャリブレーション処理において距離参照テーブルを更新しなくてもよい。画像上でのプルキンエ像間の間隔は、被写体距離の他、光源間の距離、カメラの画角及びイメージセンサの画素数及び角膜の曲率半径により決定される。そして被写体距離と角膜の曲率半径以外は、既知であり、かつ、成人であれば角膜の曲率半径はほぼ一定であるとみなせる。そのため、一般的な角膜のモデルに基づいて、プルキンエ像間の距離と被写体距離との対応関係は予め求められるためである。
なお、他の実施形態と同様に、キャリブレーション部29は、距離参照テーブルを更新してもよい。この場合、キャリブレーション部29は、様々な指定距離における、画像上でのプルキンエ像間の距離を距離特徴量抽出部26から受け取る。そしてキャリブレーション部29は、各指定距離とその指定距離におけるプルキンエ像間の距離を対応付けるように距離参照テーブルを更新する。
【0082】
以上に説明してきたように、第3の実施形態による視線検出装置は、高精度で検出可能な画像上のプルキンエ像の領域内で、被写体距離の変化による変動幅が相対的に大きい複数の光源のそれぞれに対応するプルキンエ像間の距離を距離特徴量として求める。そのため、この視線検出装置は、被写体距離を正確に推定できる。したがって、この視線検出装置は、正確に注視位置を求めることができる。さらにこの視線検出装置は、距離参照テーブルを更新しなくてもよいので、キャリブレーション処理の実行時におけるユーザの手間を軽減できる。
【0083】
変形例によれば、視線検出装置は、注視位置そのものを求める代わりに、異なる時刻に取得された複数の画像のそれぞれから求めた視線方向の変化量と被写体距離に基づいて注視位置の移動量を求めてもよい。この場合、制御部の視線検出部は、画像から視線方向を求める度に、その画像の取得時刻と視線方向とをメモリに記憶させる。そしてメモリは、一定期間(例えば、10秒間)、その視線方向及び画像の取得時刻を記憶する。また制御部の注視位置検出部は、現時刻に取得された画像から求めた視線方向と、その画像よりも1〜数フレーム前に取得された画像から求めた視線方向との角度差を視線方向の変化量として求める。そして注視位置検出部は、視線方向の角度差の正接に、現画像について求められた被写体距離を乗じることで注視位置の移動量を求める。注視位置検出部は、注視位置の移動量を制御部で実行中のアプリケーションプログラムへ通知する。
【0084】
制御部は、そのアプリケーションプログラムに従って、例えば、注視位置の移動量に応じて画面をスクロールさせる。1〜数フレーム前の画像の取得時から現画像の取得時までの間の視線方向の変化量が同一でも被写体距離が異なれば、注視位置の移動量も異なるので、制御部は、画面のスクロール量またはスクロール速度も変えることが好ましい。例えば、視線方向の変化量が同一でも、被写体距離が2倍になれば注視位置の移動量も2倍になるので、制御部はスクロール量またはスクロール速度も2倍とする。
このように、この視線検出装置は、被写体距離によらず、注視位置の移動量に応じた画面制御を携帯端末の制御部に実行させることができる。
【0085】
次に、第4の実施形態による視線検出装置について説明する。第4の実施形態による視線検出装置は、上下方向に離して配置された少なくとも二つの光源を有し、画像上の各光源に対応するプルキンエ像の飽和画素の数により、視線検出装置に対する垂直方向に沿った顔の傾きを算出する。
【0086】
第4の実施形態による視線検出装置は、第3の実施形態による視線検出装置と比較して、制御部が視線検出装置に対する顔の傾きを検知する点で異なる。そこで、以下では、制御部の顔の傾きの検知及びその関連部分について説明する。またこの実施形態についても、視線検出装置は携帯端末に搭載され、図11に示されるように、表示画面の上端近傍と下端近傍にそれぞれ一つずつ光源が配置されるものとする。視線検出装置のその他の部分及び視線検出装置が搭載された携帯端末に関しては、上記の各実施形態についての関連部分の説明を参照されたい。
【0087】
図13は、第4の実施形態による視線検出装置の制御部の機能ブロック図である。制御部4は、光源制御部21と、カメラ制御部22と、顔検出部23と、プルキンエ像検出部24と、視線検出部25と、距離特徴量抽出部26と、距離推定部27と、注視位置検出部28と、キャリブレーション部29と、傾き検出部30とを有する。
【0088】
本実施形態では、距離特徴量抽出部26は、第1の実施形態のように、画像上での顔の複数の部位間の距離を距離特徴量として抽出する。あるいは、距離特徴量抽出部26は、第3の実施形態のように、画像上での複数の光源のそれぞれに対応するプルキンエ像間の距離を距離特徴量として抽出してもよい。
【0089】
傾き検出部30は、携帯端末1に対するユーザの顔の相対的な傾きを検出する。そのために傾き検出部30は、画像上での各光源のプルキンエ像の領域を表す情報をプルキンエ像検出部24から受け取る。そして傾き検出部30は、光源ごとに、プルキンエ像の領域内の飽和画素数をカウントする。なお、飽和画素数のカウントの方法は、第2の実施形態による距離特徴量抽出部による飽和画素数のカウントの方法と同様とすることができる。
【0090】
第2の実施形態に関して述べたように、被写体距離が大きくなるほど、プルキンエ像の飽和画素数は少なくなる。そのため、上側の光源11−1のプルキンエ像の飽和画素数が、下側の光源11−2のプルキンエ像の飽和画素数よりも少なければ、上側の光源11−1からユーザの眼までの距離が下側の光源11−2からユーザの眼までの距離よりも大きい。すなわち、ユーザの顔は、携帯端末1の表示画面2aの下端よりも表示画面2aの上端の方がユーザの顔から遠くなるように、携帯端末1に対して傾いている。このことを、便宜上、ユーザの顔が上向きに傾いていると呼ぶ。
【0091】
逆に、上側の光源11−1のプルキンエ像の飽和画素数が、下側の光源11−2のプルキンエ像の飽和画素数よりも多ければ、上側の光源11−1からユーザの眼までの距離が下側の光源11−2からユーザの眼までの距離よりも小さい。すなわち、ユーザの顔は、携帯端末1の表示画面2aの上端よりも表示画面2aの下端の方がユーザの顔から遠くなるように、携帯端末1に対して傾いている。このことを、便宜上、ユーザの顔が下向きに傾いていると呼ぶ。
そして上側の光源11−1のプルキンエ像の飽和画素数が下側の光源11−2のプルキンエ像の飽和画素数と略等しければ、表示画面2aとユーザの顔は略平行になっている。
【0092】
図14は、傾き検出部30による傾き検出処理の動作フローチャートである。制御部4は、傾き検出部30による傾き検出処理を、視線検出処理と別個に実行する。あるいは、制御部4は、図9に示した視線検出処理のステップS211に引き続いて傾き検出処理を実行してもよい。
傾き検出部30は、上側の光源11−1のプルキンエ像の飽和画素数と下側の光源11−2のプルキンエ像の飽和画素数を求める(ステップS301)。そして傾き検出部30は、上側の光源11−1のプルキンエ像の飽和画素数cuと下側の光源11−2のプルキンエ像の飽和画素数clの差を所定数Thと比較する(ステップS302)。そして上側の光源11−1のプルキンエ像の飽和画素数cuが下側の光源11−2のプルキンエ像の飽和画素数clよりも所定数Th以上多ければ、傾き検出部30は、ユーザの顔が下向きに傾いていると判定する(ステップS303)。そして傾き検出部30は、ユーザの顔が下向きに傾いていることを制御部4で実行中のアプリケーションプログラムへ通知する。一方、下側の光源11−2のプルキンエ像の飽和画素数clが上側の光源11−1のプルキンエ像の飽和画素数cuよりも所定数Th以上多ければ、傾き検出部30は、ユーザの顔が上向きに傾いていると判定する(ステップS304)。そして傾き検出部30は、ユーザの顔が上向きに傾いていることを制御部4で実行中のアプリケーションプログラムへ通知する。また二つの光源のプルキンエ像の飽和画素数の差の絶対値|cu-cl|が所定値Th未満であれば、傾き検出部30は、ユーザの顔が携帯端末1の表示画面と略平行になっていると判定する(ステップS305)。そして傾き検出部30は、ユーザの顔が携帯端末1の表示画面と略平行になっていることを制御部4で実行中のアプリケーションプログラムへ通知する。ステップS303〜S305の後、傾き検出部30は傾き検出処理を終了する。なお、所定数Thは、例えば、実験あるいはシミュレーションにより求められ、例えば、'1'に設定される。
【0093】
この場合、制御部4は、アプリケーションプログラムに従って、例えば、上記の変形例のように、ユーザの注視位置の移動量に応じて画面をスクロールさせる。その際、制御部4は、視線が表示画面2aの上側へ向けて移動した場合と、下側へ向けて視線が移動した場合とで、スクロール量またはスクロール速度が一定となるように、ユーザの顔向きに応じてスクロール量またはスクロール速度を調節することが好ましい。例えば、制御部4は、ユーザの顔が上向きである場合、ユーザが注視位置を表示画面2aの略中央から上方へ移動させたときの画面のスクロール量を、表示画面2aの略中央から下方へ移動させたときの画面のスクロール量よりも大きくする。また、ユーザの顔が表示画面2aと略平行である場合、制御部4は、ユーザが注視位置を表示画面2aの略中央から上方へ移動させたときと、表示画面2aの略中央から下方へ移動させたときとで、画面のスクロール量またはスクロール速度を等しくする。
【0094】
また変形例によれば、携帯端末がジャイロセンサといった角速度を検知できるセンサを搭載している場合、制御部は、そのセンサから携帯端末の角速度を表す情報を取得する。そして傾き検出部は、その角速度に基づいて、携帯端末の表示画面に対するユーザの顔の傾きを求めてもよい。例えば、携帯端末の表示画面とユーザの顔が略平行であると判定されているときに、制御部が、ジャイロセンサから携帯端末の上端が背面側へ倒れ、携帯端末の下端が正面側、すなわちユーザ側に倒れる方向の角速度が検知されたことを通知されたとする。この場合、傾き検出部は、ユーザの顔向きは上向きであると判定する。
【0095】
また、傾き検出部は、水平方向についても携帯端末の表示画面に対するユーザの顔の傾きを判定してもよい。この場合、携帯端末の正面において、水平方向の異なる位置に二つの光源が配置される。例えば、表示画面の右端及び左端に近接して二つの光源が配置される。そして傾き検出部は、画像上での各光源のプルキンエ像の飽和画素数を求め、光源ごとの飽和画素数を比較する。向かって右側の光源の飽和画素数が向かって左側の光源の飽和画素数よりも多ければ、傾き検出部は、ユーザの顔は、水平方向に沿って、左側ほど携帯端末の表示画面から離れるように傾いていると判定する。逆に、向かって左側の光源の飽和画素数が向かって右側の光源の飽和画素数よりも多ければ、傾き検出部は、ユーザの顔は、水平方向に沿って、右側ほど携帯端末の表示画面から離れるように傾いていると判定する。
【0096】
さらに他の変形例によれば、表示画面の4個の角のそれぞれの近傍に光源が配置されてもよい。この場合、傾き検出部は、垂直方向に沿ったユーザの顔の傾きを検出するために、画像上で、上側の二つの光源に対応する二つのプルキンエ像間の距離と、下側の二つの光源に対応する二つのプルキンエ像間の距離とをそれぞれ求める。そして、上側の二つの光源に対応する二つのプルキンエ像間の距離が下側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部はユーザの顔は下向きであると判定する。逆に、下側の二つの光源に対応する二つのプルキンエ像間の距離が上側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部はユーザの顔は上向きであると判定する。
同様に、傾き検出部は、水平方向に沿ったユーザの顔の傾きを検出するために、画像上で、向かって左側の二つの光源に対応する二つのプルキンエ像間の距離と、向かって右側の二つの光源に対応する二つのプルキンエ像間の距離とをそれぞれ求めてもよい。例えば、向かって右側の二つの光源に対応する二つのプルキンエ像間の距離が向かって左側の二つの光源に対応する二つのプルキンエ像間の距離よりも大きければ、傾き検出部は、ユーザの顔は、左側ほど携帯端末の表示画面から離れるように傾いていると判定する。
【0097】
上記の各実施形態または変形例による視線検出装置は、表示部上のユーザの注視位置を利用する様々な装置に組み込むことができる。例えば、視線検出装置は、カーナビゲーションシステム、あるいはコンピュータに組み込まれてもよい。この場合、視線検出装置が有する光源及びカメラと表示部とは別個に配置されていてもよい。
【0098】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【0099】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
(付記1)
ユーザの眼を照射する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
を有する視線検出装置。
(付記2)
前記距離特徴量抽出部は、前記画像上の前記顔の少なくとも二つの部位の位置を求め、当該少なくとも二つの部位間の間隔を前記距離特徴量として求める、付記1に記載の視線検出装置。
(付記3)
前記距離特徴量抽出部は、前記画像上の前記角膜反射像のサイズを前記距離特徴量として求める、付記1に記載の視線検出装置。
(付記4)
前記距離特徴量抽出部は、前記画像上の前記角膜反射像に相当する領域に含まれる、輝度値が飽和した画素の数を前記角膜反射像のサイズとする、付記3に記載の視線検出装置。
(付記5)
前記光源は、互いに異なる位置に配置された第1の発光素子と第2の発光素子とを有し、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第1の発光素子の第1の角膜反射像と前記第2の発光素子の第2の角膜反射像を検出し、
前記距離特徴量抽出部は、前記画像上の前記第1の角膜反射像と前記第2の角膜反射像間の間隔を前記距離特徴量として求める、付記1に記載の視線検出装置。
(付記6)
前記第1の発光素子と前記第2の発光素子は、所定方向に沿って配置され、
前記第1の角膜反射像のサイズと前記第2の角膜反射像のサイズを求め、前記第1の角膜反射像のサイズよりも前記第2の角膜反射像のサイズが小さい場合に、前記第1の発光素子と前記顔との距離が、前記第2の発光素子と該顔との距離よりも小さくなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、付記5に記載の視線検出装置。
(付記7)
前記光源は、前記表示部の外周に沿って互いに異なる位置に配置された少なくとも4個の発光素子を有し、前記発光素子のうちの第1の発光素子及び第2の発光素子は、前記表示部の垂直方向の中心よりも上側に配置され、一方、前記発光素子のうちの第3の発光素子及び第4の発光素子は、前記表示部の垂直方向の中心よりも下側に配置され、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第1〜第4の発光素子の角膜反射像をそれぞれ検出し、
前記画像上の前記第1の発光素子の角膜反射像と前記第2の発光素子の角膜反射像間の第1の間隔及び前記第3の発光素子の角膜反射像と前記第4の発光素子の角膜反射像間の第2の間隔をそれぞれ求め、前記第2の間隔よりも前記第1の間隔が小さい場合に、前記表示部の下端が前記表示部の上端よりもユーザの顔に近くなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、付記1に記載の視線検出装置。
(付記8)
表示部と、
ユーザの眼を照明する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
前記表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
前記注視位置と関連付けられた処理を実行するアプリケーション実行部と、
を有する携帯端末。
(付記9)
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことを含む視線検出方法。
(付記10)
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を撮像部から取得し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことをコンピュータに実行させる視線検出用コンピュータプログラム。
【符号の説明】
【0100】
1 携帯端末
2 ユーザインターフェース
2a 表示画面
3 メモリ
4 制御部
5 筺体
10 視線検出装置
11、11−1〜11−2 光源
12 カメラ
21 光源制御部
22 カメラ制御部
23 顔検出部
24 プルキンエ像検出部
25 視線検出部
26 距離特徴量抽出部
27 距離推定部
28 注視位置検出部
29 キャリブレーション部
30 傾き検出部
【特許請求の範囲】
【請求項1】
ユーザの眼を照射する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
を有する視線検出装置。
【請求項2】
前記距離特徴量抽出部は、前記画像上の前記顔の少なくとも二つの部位の位置を求め、当該少なくとも二つの部位間の間隔を前記距離特徴量として求める、請求項1に記載の視線検出装置。
【請求項3】
前記距離特徴量抽出部は、前記画像上の前記角膜反射像のサイズを前記距離特徴量として求める、請求項1に記載の視線検出装置。
【請求項4】
前記光源は、互いに異なる位置に配置された第1の発光素子と第2の発光素子とを有し、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第1の発光素子の第1の角膜反射像と前記第2の発光素子の第2の角膜反射像を検出し、
前記距離特徴量抽出部は、前記画像上の前記第1の角膜反射像と前記第2の角膜反射像間の間隔を前記距離特徴量として求める、請求項1に記載の視線検出装置。
【請求項5】
前記第1の発光素子と前記第2の発光素子は、所定方向に沿って配置され、
前記第1の角膜反射像のサイズと前記第2の角膜反射像のサイズを求め、前記第1の角膜反射像のサイズよりも前記第2の角膜反射像のサイズが小さい場合に、前記第1の発光素子と前記顔との距離が、前記第2の発光素子と該顔との距離よりも小さくなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、請求項4に記載の視線検出装置。
【請求項6】
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことを含む視線検出方法。
【請求項1】
ユーザの眼を照射する光源と、
前記光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成する撮像部と、
表示部から前記顔までの距離と、該距離に応じて変化する前記画像上での距離特徴量との関係を表す距離情報を記憶する記憶部と、
前記画像から前記距離特徴量を求める距離特徴量抽出部と、
前記距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定する距離推定部と、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出するプルキンエ像検出部と、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出する視線検出部と、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める注視位置検出部と、
を有する視線検出装置。
【請求項2】
前記距離特徴量抽出部は、前記画像上の前記顔の少なくとも二つの部位の位置を求め、当該少なくとも二つの部位間の間隔を前記距離特徴量として求める、請求項1に記載の視線検出装置。
【請求項3】
前記距離特徴量抽出部は、前記画像上の前記角膜反射像のサイズを前記距離特徴量として求める、請求項1に記載の視線検出装置。
【請求項4】
前記光源は、互いに異なる位置に配置された第1の発光素子と第2の発光素子とを有し、
前記プルキンエ像検出部は、前記角膜反射像として、前記画像上の前記第1の発光素子の第1の角膜反射像と前記第2の発光素子の第2の角膜反射像を検出し、
前記距離特徴量抽出部は、前記画像上の前記第1の角膜反射像と前記第2の角膜反射像間の間隔を前記距離特徴量として求める、請求項1に記載の視線検出装置。
【請求項5】
前記第1の発光素子と前記第2の発光素子は、所定方向に沿って配置され、
前記第1の角膜反射像のサイズと前記第2の角膜反射像のサイズを求め、前記第1の角膜反射像のサイズよりも前記第2の角膜反射像のサイズが小さい場合に、前記第1の発光素子と前記顔との距離が、前記第2の発光素子と該顔との距離よりも小さくなる方向に、前記顔が前記表示部に対して傾いていると判定する傾き検出部をさらに有する、請求項4に記載の視線検出装置。
【請求項6】
ユーザの眼を照射する光源が点灯している間に、前記眼を含む領域であって、前記ユーザの顔の少なくとも一部の領域を撮影した画像を生成し、
前記画像から、表示部から前記顔までの距離に応じて変化する前記画像上での距離特徴量を求め、
前記表示部から前記顔までの距離と前記距離特徴量との関係を表す距離情報を参照することにより前記距離特徴量に対応する前記表示部から前記顔までの距離を推定し、
前記画像に含まれる前記眼を含む領域から、前記光源の角膜反射像と前記ユーザの瞳孔重心とを検出し、
前記瞳孔重心と角膜反射像との位置関係に応じて前記ユーザの視線方向を検出し、
前記視線方向と前記表示部から前記顔までの距離に基づいて、前記表示部上の前記ユーザの注視位置を求める、
ことを含む視線検出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−187178(P2012−187178A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−51351(P2011−51351)
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月9日(2011.3.9)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]