以下に、本発明にかかる検出装置、検出プログラムおよび検出方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
実施例1について説明する。図1は、検出装置の全体構成を示す図である。検出装置10は、検出対象者の瞳孔を検出し、検出した瞳孔の位置を用いて検出対象者の視線を検出する装置であり、例えば、コンピュータや、携帯電話器、スマートフォン、Personal Digital Assistants(PDA)などの携帯端末などである。本実施例では、検出装置10をパーソナル・コンピュータによって構成した場合を例に説明する。図1に示すように、検出装置10は、表示部20と、操作入力部21と、赤外カメラ22と、可視カメラ23と、制御部24とを有する。
表示部20は、各種情報を表示する表示デバイスである。表示部20としては、Liquid Crystal Display(LCD)やCathode Ray Tube(CRT)などの表示デバイスが挙げられる。表示部20は、各種情報を表示する。例えば、表示部20は、視線を用いて操作が可能な各種の画面を表示する。
操作入力部21は、各種の情報を入力する入力デバイスである。例えば、操作入力部21としては、マウスやキーボードなどの入力デバイスが挙げられる。なお、操作入力部21は、検出装置10に設けられた各種のボタンや、表示部20上に設けられた透過型のタッチセンサなどの入力デバイスとしてもよい。図1の例では、機能的な構成を示したため、表示部20と操作入力部21を別に分けているが、例えば、タッチパネルなど表示部20と操作入力部21を一体的に設けたデバイスで構成してもよい。操作入力部21は、ユーザからの操作入力を受け付け、受け付けた操作内容を示す操作情報を制御部24に入力する。
赤外カメラ22は、赤外線による赤外画像を撮影する撮像デバイスである。可視カメラ23は、可視光による可視画像を撮影する撮像デバイスである。赤外カメラ22および可視カメラ23は、表示部20を参照するユーザの顔を撮影可能な位置に取り付けられる。例えば、赤外カメラ22および可視カメラ23は、表示部20の周辺に、画像を撮影可能な撮影領域を表示部20の上面方向に向けて設けられている。図2は、検出装置の外観の一例を示す図である。図2に示す検出装置10は、表示部20を含んだディスプレイ26を有する。ディスプレイ26の前方には、操作入力部21であるマウスやキーボードが配置されている。なお、制御部24は、ディスプレイ26内に含まれていてもよく、別な筐体内に含まれていてもよい。
ディスプレイ26は、表示部20の上側の中央部分に可視カメラ23が設けられ、表示部20の下側の中央部分に赤外カメラ22が設けられている。また、ディスプレイ26は、赤外カメラ22の横に、赤外光を照射する赤外ライト27が設けられている。なお、可視カメラ23と赤外カメラ22の配置位置は逆としてもよい。
図3は、赤外カメラおよび可視カメラの配置を詳細に説明する図である。赤外カメラ22および可視カメラ23は、表示部20の上下に横方向の位置を同じにして配置されている。例えば、赤外カメラ22および可視カメラ23は、ディスプレイ26を設置した場合の矩形状の表示部20の水平方向をx方向とし、当該水平方向に対する垂直方向をy方向とした場合、表示部20のx方向の中央部分に、x方向の位置を同じにして設けられている。これにより、赤外カメラ22および可視カメラ23により撮影される画像は、x方向の位置の対応関係が取りやすくなる。
赤外ライト27は、赤外カメラ22による撮影の際に点灯する。なお、赤外ライト27は、赤外カメラ22による撮影の間連続して点灯させてもよく、赤外カメラ22による撮影タイミングに同期して点灯させてもよい。
赤外カメラ22および可視カメラ23は、それぞれ所定のフレームレートで連続的に撮影し、撮影した画像の画像情報を制御部24へ出力する。フレームレートは、視線の検出を行う周期に応じた周期とする。赤外カメラ22と可視カメラ23のフレームレートは、同じでもよく、異なっていてもよい。例えば、赤外カメラ22は、5frame per second(fps)で赤外画像の撮影を行い、撮影した赤外画像の画像情報を制御部24へ出力する。可視カメラ23は、2fpsで可視画像の撮影を行い、撮影した可視画像の画像情報を制御部24へ出力する。
図4は、可視カメラにより撮影された可視画像の一例を示す図である。図5は、赤外カメラにより撮影された赤外画像の一例を示す図である。可視カメラ23は、赤外カメラ22よりも上方に設けられているため、図4、5に示すように、ユーザの顔は、赤外画像よりも可視画像で上方から写した像となる。また、赤外カメラ22および可視カメラ23の画角等を調整した場合、可視画像と可視画像のx方向の位置が対応するようになる。例えば、図4、5の例では、画像内の虹彩部分を囲んだ矩形のx方向の座標x1、x2が対応する。
図1に戻り、制御部24は、検出装置10を制御するデバイスである。制御部24としては、Central Processing Unit(CPU)、Micro Processing Unit(MPU)等の電子回路や、Application Specific Integrated Circuit(ASIC)、Field Programmable Gate Array(FPGA)等の集積回路を採用できる。制御部24は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部24は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部24は、反射検出部30と、虹彩検出部31と、特定部32と、瞳孔検出部33と、視線検出部34と、視線処理部35とを有する。
反射検出部30は、メガネによる反射を検出する処理部である。ここで、メガネによる反射が発生すると、反射部分が明るくなる。そこで、例えば、反射検出部30は、赤外カメラ22から出力された画像情報により示される赤外画像から輝度が所定のしきい値以上の画素を求める。例えば、赤外画像が白黒画像で明るいところを白く、暗いところを黒く表されている場合、反射検出部30は、明るさが所定のしきい値以上の画素を求める。この明るさの所定のしきい値は、反射部分と反射以外の部分を判定できる値に定める。なお、明るさの所定のしきい値は、管理者等よって変更可能としてもよい。そして、反射検出部30は、明るさが所定のしきい値以上の画素が所定の個数以上かたまって隣接している場合、メガネによる反射が発生していると検出する。ここで、画像は、ノイズ等によっても明るさが所定のしきい値以上の画素が発生する場合がある。そこで、反射検出部30は、明るさが所定のしきい値以上の画素が所定の個数以上かたまって隣接している場合、メガネによる反射が発生していると検出する。反射の発生の判定に用いる所定の個数は、反射部分と反射以外の部分を判定できる値に定める。なお、反射の発生の判定に用いる所定の個数は、管理者等よって変更可能としてもよい。
虹彩検出部31は、可視画像から虹彩を検出する処理部である。例えば、虹彩検出部31は、反射検出部30によりメガネによる反射が検出された場合、可視カメラ23から出力された画像情報により示される可視画像から虹彩を検出する。虹彩検出部31は、例えば、可視画像から顔領域を検出する。この顔領域を検出する技術は、周知の何れの手法を適用してもよい。虹彩検出部31は、例えば、可視画像を低画質な粗い画像に変換し、変換した画像内で一般的な顔のパターンを移動させてマッチングを行い、類似度が所定のしきい値以上の最も高い部分を顔領域と検出する。この顔領域の検出に用いる所定のしきい値は、顔と顔以外の部分を判定できる値に定める。なお、顔領域の検出に用いる所定のしきい値は、管理者等よって変更可能としてもよい。そして、虹彩検出部31は、顔領域のサイズに応じた一般的な虹彩の大きさを求める。顔領域のサイズに応じた一般的な虹彩の大きさは、例えば、予め虹彩のサイズを示すサイズ情報として不図示の記憶部に予め記憶し、虹彩検出部31が、サイズ情報に基づいて、虹彩の大きさを求めてもよい。また、顔領域のサイズから一般的な虹彩のサイズを算出する演算式を予め求め、虹彩検出部31は、当該演算式を用いて顔領域のサイズから一般的な虹彩のサイズを求めてもよい。そして、虹彩検出部31は、顔領域の中の眼が存在する範囲について、一般的な虹彩の大きさの丸いパターンを移動させてマッチングを行い、パターンとの類似度が所定のしきい値以上の最も高い部分を虹彩と検出する。この虹彩の検出に用いる所定のしきい値は、虹彩と虹彩以外の部分を判定できる値に定める。なお、虹彩の検出に用いる所定のしきい値は、管理者等よって変更可能としてもよい。
ここで、赤外カメラ22および可視カメラ23の特性を知るため、メガネによる反射がある場合と、反射がない場合での赤外カメラ22により撮影された赤外画像および可視カメラ23により撮影された可視画像からそれぞれ得られる情報を分析した。図6は、赤外画像と可視画像の特性の一例を示す図である。図6の例では、「○」は、精度良く検出できることを示す。「△」は、検出可能であることを示す。「×」は、検出不能であることを示す。
図6に示すように、可視カメラ23により撮影された可視画像は、メガネによる反射がない場合、および、反射がある場合、共に虹彩を検出できる。しかし、可視画像は、瞳孔を検出できない。この理由は、可視領域では、虹彩と瞳孔の色差が小さく、虹彩と瞳孔を十分に判別できないためと考えられる。
一方、赤外カメラ22により撮影された赤外画像は、メガネによる反射がない場合、瞳孔を精度良く検出でき、虹彩も検出できる。しかし、赤外画像は、メガネによる反射がある場合、虹彩を検出できない。また、赤外画像は、反射の位置により瞳孔を誤検出する場合があり、反射の位置を除いた場合、瞳孔を検出できる。このため、図6の例では、「赤外画像」の「反射あり」について「×〜△」と示している。
図1に戻り、特定部32は、瞳孔の探索範囲を特定する処理部である。例えば、特定部32は、反射検出部30によりメガネによる反射が検出された場合、虹彩検出部31により可視画像内で虹彩を検出した位置に基づいて、赤外カメラ22により撮影された赤外画像内の瞳孔の探索範囲を特定する。特定部32は、例えば、可視画像内での虹彩を囲む矩形を求め、可視画像内での矩形の4つの頂点の位置を求める。そして、特定部32は、可視画像内の4つの頂点の位置に対応する赤外画像内の位置を求め、赤外画像内の対応する4つの位置を頂点とする矩形領域を探索範囲と特定する。可視画像の位置に対する赤外画像の対応する位置は、演算により求めてもよい。例えば、ディスプレイ26の上下に可視カメラ23と赤外カメラ22を設けたことにより、可視カメラ23と赤外カメラ22の画角から対応する座標を変換するアフィン変換等の変換式が定まる。特定部32は、例えば、変換式を用いて、可視画像内での虹彩を囲む矩形の4つの頂点の赤外画像内での対応する位置を求め、赤外画像内での対応する4つの位置を頂点とする矩形領域を探索範囲と特定する。なお、赤外画像と可視画像の位置の対応関係を示す対応位置情報を不図示の記憶部に予め記憶し、特定部32は、対応位置情報を用いて、可視画像内での虹彩を囲む矩形の4つの頂点の赤外画像内での対応する位置を求めてもよい。なお、探索範囲を特定する手法は、上記の手法に限定されない。本実施例のように、ディスプレイ26の表示部20の上下に、赤外カメラ22および可視カメラ23をx方向の位置を同じにして設けてx方向の位置を対応させた場合、可視画像と赤外画像は、x方向の位置に対応関係がある。このため、特定部32は、可視画像内で虹彩を検出したx方向の位置から赤外画像の対応するx方向の位置を求め、求めたx方向の位置のy方向の全範囲を探索範囲と特定してもよい。すなわち、特定部32は、探索範囲としてx方向の範囲を特定してもよい。
瞳孔検出部33は、瞳孔を検出する処理部である。例えば、瞳孔検出部33は、反射検出部30によりメガネによる反射が検出された場合、特定部32により特定された探索範囲内で瞳孔を検出する。例えば、瞳孔検出部33は、赤外画像の探索範囲について瞳孔の一般的な大きさの丸いパターンを移動させてマッチングを行い、パターンとの類似度を算出する。
ところで、メガネによる反射と瞳孔が一部重なった場合、赤外画像内での瞳孔は、反射部分によって欠けた形状になる。
そこで、瞳孔検出部33は、赤外画像の明るい領域および当該明るい領域の周囲の暗い領域を検出し、当該明るい領域と当該暗い領域との位置関係に基づいて、明るい領域に対応する部分を一部欠損させた瞳孔のパターンを用いて瞳孔を検出する。例えば、瞳孔検出部33は、赤外画像の探索範囲から輝度が所定のしきい値以上の画素が所定個以上隣接してかたまっている反射部分があるか否かを求める。反射部分がある場合、瞳孔検出部33は、反射部分の周囲の最も暗い領域を求める。そして、瞳孔検出部33は、最も暗い領域と反射部分との位置関係から、瞳孔の一般的な大きさの丸いパターンの反射部分に対応する側を一部欠損させた欠損パターンを求める。欠損パターンは、例えば、所定角度毎に欠けた部分を設けた複数の欠損パターンの欠損パターンデータを不図示の記憶部に予め記憶し、瞳孔検出部33が、欠損パターンデータから最も暗い領域に対する反射部分の位置関係に近い欠損パターンを求めてもよい。また、瞳孔検出部33が、最も暗い領域と反射部分との位置関係に基づき、瞳孔の一般的な大きさの丸いパターンから反射部分に対応する位置を一部欠損させた欠損パターンを生成してもよい。図7は、欠損パターンの一例を示す図である。図7の例では、30度毎に欠けた部分を設けた欠損パターンP1〜P12が示されている。例えば、最も暗い領域に対する反射部分の角度が70度である場合、瞳孔検出部33は、最も暗い領域に対する反射部分の位置関係に近い欠損パターンP2を用いる。なお、反射部分の位置関係に近い欠損パターンが複数ある場合は、何れか1つの欠損パターンでパターンマッチングを行ってもよく、位置関係に近い全ての欠損パターンでパターンマッチングを行ってもよい。
瞳孔検出部33は、赤外画像の探索範囲について欠損パターンを移動させてマッチングを行い、パターンとの類似度を算出する。
そして、瞳孔検出部33は、赤外画像の探索範囲で、丸いパターンまたは欠損パターンとの類似度が所定のしきい値以上の最も高い部分を瞳孔と検出する。この瞳孔の検出に用いる所定のしきい値は、瞳孔と瞳孔以外の部分を判定できる値に定める。なお、瞳孔の検出に用いる所定のしきい値は、管理者等よって変更可能としてもよい。また、瞳孔検出部33は、欠損パターンとの類似度の算出をメガネによる反射が発生した場合だけ行ってもよい。
ここで、メガネによる反射が検出された場合の瞳孔を検出する流れを説明する。図8は、メガネによる反射が検出された場合の瞳孔を検出する流れを示す図である。虹彩検出部31は、可視カメラ23により撮影された可視画像から虹彩40を検出する。特定部32は、虹彩40を囲む矩形41を求め、可視画像内の矩形41の位置に対応する赤外画像内の矩形42の位置を求め、矩形42の領域を探索範囲と特定する。そして、瞳孔検出部33は、矩形42内で一般的な瞳孔の丸いパターンまたは欠損パターンとパターンマッチングを行って瞳孔43を検出する。このように、検出装置10は、可視画像の虹彩40の位置から赤外画像の探索範囲を特定して瞳孔の検出を行うことにより、探索範囲外に、瞳孔に類似した黒い丸い部分があっても、その黒い丸い部分を瞳孔として誤検知することを抑制できる。また、検出装置10は、図8に示すように、瞳孔43に近い部分で反射44が発生した場合でも、欠損パターンとパターンマッチングを行うことにより瞳孔43を検出できる。
一方、瞳孔検出部33は、反射検出部30によりメガネによる反射が検出されていない場合、赤外カメラ22により撮影された赤外画像から瞳孔を検出する。瞳孔検出部33は、例えば、赤外画像の中で顔領域を検出する。この顔領域を検出する技術は、周知の何れの手法を適用してもよい。そして、瞳孔検出部33は、顔領域の中の眼が存在する範囲について瞳孔の一般的な大きさの丸いパターンを移動させてマッチングを行い、パターンとの類似度が所定のしきい値以上の最も高い部分を瞳孔と検出する。
視線検出部34は、視線を検出する処理部である。例えば、視線検出部34は、赤外画像の探索範囲内から角膜反射をさらに検出する。なお、瞳孔検出部33が、角膜反射をさらに検出してもよい。そして、視線検出部34は、角膜反射法を用いて、瞳孔検出部33により検出された瞳孔の中心位置と角膜反射の中心の位置距離および角膜曲率半径から視線を計算する。
視線処理部35は、視線検出部34により検出された視線に応じて処理を行う処理部である。一例として、視線処理部35は、表示部20に表示された画面内の視線の位置に応じて画面を操作する操作情報を生成する。図9および図10は、視線により画面を操作する一例を示す図である。図9の例では、画面50は、タイル状にアイコンメニュー51が設けられている。また、画面50は、複数のアイコン53が配置されたメニューバー52が右側に設けられ、自動的に隠す設定とされており、カーソルが画面50の右端に触れると、メニューバー52が表示される。図9の例は、ユーザが画面50の右端に一定時間以上視線を向けた場合にメニューバー52を表示させ、メニューバー52に設けられたアイコン53aに一定時間以上視線を向けた場合にアイコン53aを選択したものとする場合を示している。また、図10の例では、画面60は、複数の画像や動画などのコンテンツ61が表示されている。図10の例は、画面60に表示されたコンテンツ61に一定時間以上視線を向けた場合、視線を向けたコンテンツ61が選択状態となり、選択状態のコンテンツ61が視線の移動に合わせてスクロールする場合を示している。このように、検出装置10は、視線の位置に応じて画面を操作する操作情報を生成するので、ユーザが表示部20に表示された画面を視線によって操作できる。
また、他の一例として、視線処理部35は、表示部20に表示された画面内の視線の位置に応じて画面の表示を変化させる。図11は、視線により画面の表示を変化させる一例を示す図である。図11の例では、画面70は、様々な情報が表示されている。図11の例は、ユーザが画面70の一部分に一定時間以上視線を向けた場合に視線が向けられた一部分を拡大表示71させる場合を示している。このように、検出装置10は、視線の位置に応じて画面の一部分を拡大表示するので、画面内のユーザが興味がある部分が拡大表示されるため、画面を読みやすくすることができる。
また、他の一例として、視線処理部35は、表示部20に表示された画面内の視線の位置に応じて情報を収集する。図12は、画面内の視線の位置に応じて情報を収集する一例を示す図である。図12の例では、画面80は、様々な登場人物やテロップ、ロゴなどが表示されている。図12の例では、ユーザの視線が向けられた部分や、視線が向けられた部分の遷移からユーザの興味がある部分やユーザの視線行動を収集して、収集した情報を外部サーバ81へ送信する場合を示している。これにより、検出装置10は、視線の位置に応じて情報を収集するので、ユーザの興味や潜在的な視線の行動パターンなどの情報を収集できる。
次に、本実施例に係る検出装置10により瞳孔の位置を検出して視線を検出する流れを説明する。本実施例に係る検出装置10は、メガネによる反射を検出した場合、赤外カメラ22により5fpsで赤外画像を撮影し、可視カメラ23により2fpsで可視画像を撮影する。図13は、撮影された赤外画像および可視画像の処理の流れの一例を示す図である。図13の横軸は、時間tを示している。検出装置10は、前の赤外画像の撮影タイミング以降に、可視画像が撮影されている場合、当該可視画像から虹彩を検出し、虹彩の位置に基づいて、赤外画像内の瞳孔の探索範囲を特定し、特定された探索範囲内で瞳孔を検出する。図13の例では、赤外画像F1、F4は、それぞれ前の赤外画像の撮影タイミング以降に、可視画像が撮影されている。このため、赤外画像F1は、可視画像F6での虹彩位置から瞳孔位置を検出する。また、赤外画像F4は、可視画像F7での虹彩位置から瞳孔位置を検出する。
一方、検出装置10は、前の赤外画像の撮影タイミング以降に、可視画像が撮影されていない場合、前の赤外画像の瞳孔の位置から瞳孔を検出する。検出装置10は、例えば、前の赤外画像の瞳孔の位置から所定のサイズの範囲を探索範囲と定めて、探索範囲内で瞳孔を検出する。なお、検出装置10は、前の赤外画像の瞳孔の位置からの追跡により瞳孔を検出してもよい。例えば、検出装置10は、数フレーム前の赤外画像での瞳孔の位置の変化から瞳孔の動きベクトルを求め、前の赤外画像での瞳孔の位置から動きベクトル分移動させた位置を中心に探索範囲を定めて瞳孔を検出してもよい。図13の例では、赤外画像F2、F3、F5は、それぞれ前の赤外画像の撮影タイミング以降に、可視画像が撮影されていない。このため、赤外画像F2は、赤外画像F1での瞳孔位置から瞳孔位置を検出する。また、赤外画像F3は、赤外画像F2での瞳孔位置から瞳孔位置を検出する。また、赤外画像F5は、赤外画像F4での瞳孔位置から瞳孔位置を検出する。
このように、検出装置10は、可視画像から虹彩を検出し、可視画像内で虹彩を検出した位置に基づいて、赤外画像内の瞳孔の探索範囲を特定し、特定された探索範囲内で瞳孔を検出するので、瞳孔の位置を精度良く検出できる。また、検出装置10は、メガネによる反射がない場合や、反射を検出したが前の赤外画像の撮影タイミング以降に可視画像が撮影されていない場合、前の赤外画像の瞳孔の位置を用いて次の赤外画像の瞳孔を検出するので、瞳孔の位置を精度良く検出できる。
次に、本実施例に係る検出装置10が瞳孔を検出する検出処理の流れを説明する。図14は、検出処理の手順を示すフローチャートである。この検出処理は、例えば、検出装置10が視線の検出を開始するタイミングに実行される。
図14に示すように、反射検出部30は、メガネによる反射を検出する(S10)。反射検出部30は、メガネによる反射が検出されたか否か判定する(S11)。反射が検出されない場合(S11否定)、瞳孔検出部33は、赤外カメラ22により撮影された赤外画像から顔領域を検出する(S12)。そして、瞳孔検出部33は、顔領域の中の眼が存在する範囲から瞳孔を検出する(S13)。瞳孔検出部33は、例えば、電源オフの指示など、瞳孔検出の終了が指示されたか否か判定する(S14)。瞳孔検出の終了が指示されていない場合(S14否定)、S12へ移行する。一方、瞳孔検出の終了が指示された場合(S14肯定)、処理を終了する。
一方、反射が検出された場合(S11肯定)、虹彩検出部31は、可視カメラ23により撮影された可視画像から顔領域を検出する(S15)。そして、虹彩検出部31は、顔領域の中から虹彩を検出する(S16)。特定部32は、可視画像内で虹彩を検出した位置に基づいて、赤外カメラ22により撮影された赤外画像内の瞳孔の探索範囲を特定する(S17)。瞳孔検出部33は、赤外画像の特定された探索範囲から瞳孔を検出する(S18)。瞳孔検出部33は、瞳孔検出の終了が指示されたか否か判定する(S19)。瞳孔検出の終了が指示されていない場合(S19否定)、瞳孔検出部33は、前の赤外画像の撮影タイミング以降に、可視カメラ23により可視画像が撮影されたか否か判定する(S20)。可視画像が撮影された場合(S20肯定)、S15へ移行する。一方、可視画像が撮影されていない場合(S20否定)、瞳孔検出部33は、前の赤外画像の瞳孔位置から探索範囲を特定し(S21)、S18へ移行する。一方、瞳孔検出の終了が指示された場合(S19肯定)、処理を終了する。
このように、検出装置10は、検出対象者の顔の可視画像を撮影する。また、検出装置10は、検出対象者の顔の赤外画像を撮影する。そして、検出装置10は、撮影された可視画像から虹彩を検出する。また、検出装置10は、可視画像内で虹彩を検出した位置に基づいて、撮影された赤外画像内の瞳孔の探索範囲を特定する。そして、検出装置10は、特定された探索範囲内で瞳孔を検出する。これにより、検出装置10は、瞳孔の位置を精度良く検出できる。
また、検出装置10は、赤外画像の明るい領域および当該明るい領域の周囲の暗い領域を検出し、当該明るい領域と当該暗い領域との位置関係に基づいて、明るい領域に対応する部分を一部欠損させた瞳孔のパターンを用いて瞳孔を検出する。これにより、検出装置10は、瞳孔に近い部分で反射が発生した場合でも、瞳孔を検出できる。
また、検出装置10は、メガネによる反射を検出し、メガネによる反射を検出した場合に、虹彩検出、探索範囲の特定、瞳孔検出の処理を行う。これにより、検出装置10は、メガネによる反射が発生していない場合の処理負荷を軽減させることができる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
上記の実施例では、検出対象者の瞳孔を検出し、検出した瞳孔の位置を用いて検出対象者の視線を検出する場合について説明したが、開示の装置はこれに限定されない。例えば、検出装置10は、検出対象者の瞳孔を検出し、顔領域内での検出した瞳孔の位置などを用いて検出対象者の生体認証等を行ってもよい。また、検出した瞳孔の位置などを用いて顔の向きを検出したり、顔領域内での検出した瞳孔の位置と口の位置の変化などから検出対象者の表情を検出してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示す反射検出部30、虹彩検出部31、特定部32、瞳孔検出部33、視線検出部34および視線処理部35の各処理部が適宜統合されてもよい。また、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、Central Processing Unit(CPU)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[検出プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図15は、検出プログラムを実行するコンピュータを示す図である。
図15に示すように、コンピュータ300は、CPU310、Read Only Memory(ROM)320、Hard Disk Drive(HDD)330、Random Access Memory(RAM)340を有する。これら310〜340の各部は、バス400を介して接続される。
ROM320には上記実施例の各処理部と同様の機能を発揮する検出プログラム320aが予め記憶される。例えば、上記実施例1の反射検出部30、虹彩検出部31、特定部32、瞳孔検出部33、視線検出部34および視線処理部35と同様の機能を発揮する検出プログラム320aを記憶させる。なお、検出プログラム320aについては、適宜分離しても良い。
HDD330には、各種データを記憶する。例えば、HDD330は、OSや瞳孔の検出に用いる各種データを記憶する。
そして、CPU310が、検出プログラム320aをROM320から読み出して実行することで、実施例1の各処理部と同様の動作を実行する。すなわち、検出プログラム320aは、実施例1の反射検出部30、虹彩検出部31、特定部32、瞳孔検出部33、視線検出部34および視線処理部35と同様の動作を実行する。
なお、上記した検出プログラム320aについては、必ずしも最初からROM320に記憶させることを要しない。検出プログラム320aはHDD330に記憶させてもよい。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、Compact Disk Read Only Memory(CD−ROM)、Digital Versatile Disk(DVD)、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
以上説明した実施例1、2を含む実施形態に関し、更に以下の付記を開示する。
(付記1)検出対象者の顔の可視画像を撮影する第1撮影部と、
前記検出対象者の顔の赤外画像を撮影する第2撮影部と、
前記第1撮影部により撮影された可視画像から虹彩を検出する虹彩検出部と、
前記虹彩検出部により前記可視画像内で虹彩を検出した位置に基づいて、前記第2撮影部により撮影された赤外画像内の瞳孔の探索範囲を特定する特定部と、
前記特定部により特定された探索範囲内で瞳孔を検出する瞳孔検出部と、
を有することを特徴とする検出装置。
(付記2)前記瞳孔検出部は、赤外画像の明るい領域および当該明るい領域の周囲の暗い領域を検出し、当該明るい領域と当該暗い領域との位置関係に基づいて、明るい領域に対応する部分を一部欠損させた瞳孔のパターンを用いて瞳孔を検出する
ことを特徴とする付記1に記載の検出装置。
(付記3)メガネによる反射を検出する反射検出部をさらに有し、
前記虹彩検出部、前記特定部、前記瞳孔検出部は、前記反射検出部によりメガネによる反射を検出した場合に、処理を行う
ことを特徴とする付記1または付記2に記載の検出装置。
(付記4)コンピュータに、
検出対象者の顔の可視画像を撮影する第1撮影部により撮影された可視画像から虹彩を検出し、
前記可視画像内で虹彩を検出した位置に基づいて、前記検出対象者の顔の赤外画像を撮影する第2撮影部により撮影された赤外画像内での瞳孔の探索範囲を特定し、
特定された探索範囲内で瞳孔を検出する、
各処理を実行させることを特徴とする検出プログラム。
(付記5)瞳孔を検出する処理は、赤外画像の明るい領域および当該明るい領域の周囲の暗い領域を検出し、当該明るい領域と当該暗い領域との位置関係に基づいて、明るい領域に対応する部分を一部欠損させた瞳孔のパターンを用いて瞳孔を検出する
ことを特徴とする付記4に記載の検出プログラム。
(付記6)コンピュータに、メガネによる反射を検出する処理をさらに実行させ、
虹彩を検出する処理、探索範囲を特定する処理、瞳孔を検出する処理は、メガネによる反射を検出した場合に行う
ことを特徴とする付記4または付記5に記載の検出プログラム。
(付記7)コンピュータが、
検出対象者の顔の可視画像を撮影する第1撮影部により撮影された可視画像から虹彩を検出し、
前記可視画像内で虹彩を検出した位置に基づいて、前記検出対象者の顔の赤外画像を撮影する第2撮影部により撮影された赤外画像内での瞳孔の探索範囲を特定し、
特定された探索範囲内で瞳孔を検出する、
各処理を実行することを特徴とする検出方法。
(付記8)瞳孔を検出する処理は、赤外画像の明るい領域および当該明るい領域の周囲の暗い領域を検出し、当該明るい領域と当該暗い領域との位置関係に基づいて、明るい領域に対応する部分を一部欠損させた瞳孔のパターンを用いて瞳孔を検出する
ことを特徴とする付記7に記載の検出方法。
(付記9)コンピュータに、メガネによる反射を検出する処理をさらに実行させ、
虹彩を検出する処理、探索範囲を特定する処理、瞳孔を検出する処理は、メガネによる反射を検出した場合に行う
ことを特徴とする付記7または付記8に記載の検出方法。
(付記10)コンピュータに、
検出対象者の顔の可視画像を撮影する第1撮影部により撮影された可視画像から虹彩を検出し、
前記可視画像内で虹彩を検出した位置に基づいて、前記検出対象者の顔の赤外画像を撮影する第2撮影部により撮影された赤外画像内での瞳孔の探索範囲を特定し、
特定された探索範囲内で瞳孔を検出する、
各処理を実行させることを特徴とする検出プログラムを格納した記憶媒体。
(付記11)瞳孔を検出する処理は、赤外画像の明るい領域および当該明るい領域の周囲の暗い領域を検出し、当該明るい領域と当該暗い領域との位置関係に基づいて、明るい領域に対応する部分を一部欠損させた瞳孔のパターンを用いて瞳孔を検出する
ことを特徴とする付記10に記載の検出プログラムを格納した記憶媒体。
(付記12)コンピュータに、メガネによる反射を検出する処理をさらに実行させ、
虹彩を検出する処理、探索範囲を特定する処理、瞳孔を検出する処理は、メガネによる反射を検出した場合に行う
ことを特徴とする付記10または付記11に記載の検出プログラムを格納した記憶媒体。