以下、図面を参照しつつ本発明に係る瞳孔検出装置及び瞳孔検出方法の好適な実施形態について詳細に説明する。なお、図面の説明においては、同一又は相当部分には同一符号を付し、重複する説明を省略する。
まず、図1~4を用いて、本開示の実施形態に係る瞳孔検出装置1の構成を説明する。瞳孔検出装置1は、対象者Aの眼を撮像することで対象者Aの瞳孔の位置を検出するコンピュータシステムである。対象者とは、瞳孔の位置を検出する対象となる人であり、被験者ともいうことができる。瞳孔検出装置1の利用目的は何ら限定されず、例えば、よそ見運転の検出、運転者のサイドミラーやルームミラーの安全確認動作の確認、運転者の眠気の検出、商品の興味の度合いの調査、アミューズメント装置等に利用されるコンピュータへのデータ入力、乳幼児の自閉症診断等の診断用装置などに瞳孔検出装置1を利用することができる。
図1に模式的に示すように、瞳孔検出装置1は、ステレオカメラとして機能する一対のカメラ(第1のカメラおよび第2のカメラ)10と画像処理装置20とを備える。以下では、必要に応じて、一対のカメラ10を、対象者Aの左側にある左カメラ10Lと、対象者Aの右側にある右カメラ10Rとに区別する。本実施形態では、瞳孔検出装置1は、対象者Aが見る対象であるディスプレイ装置30をさらに備えるが、瞳孔検出装置1の利用目的は上記のように限定されないので、対象者Aの視線の先にある物はディスプレイ装置30に限定されず、例えば自動車のフロントガラスでもあり得る。したがって、ディスプレイ装置30は瞳孔検出装置1における必須の要素ではない。それぞれのカメラ10は画像処理装置20と無線または有線により接続され、カメラ10と画像処理装置20との間で各種のデータまたは命令が送受信される。各カメラ10に対しては予めカメラ較正が行われる。
カメラ10は対象者Aの瞳孔およびその周辺を含む眼を撮影するために用いられる。一対のカメラ10は水平方向に沿って所定の間隔をおいて配され、かつ、対象者Aが眼鏡をかけているときの顔画像における反射光の写り込みを防止する目的で対象者Aの顔より低い位置に設けられる。水平方向に対するカメラ10の仰角は、瞳孔の確実な検出と対象者Aの視野範囲の妨げの回避との双方を考慮して、例えば20~35度の範囲に設定される。個々のカメラ10に対しては予めカメラ較正が行われる。
本実施形態では、カメラ10は、それぞれ、所定の時間間隔(例えば、120fpsの時間間隔)で撮像可能な撮像装置である。カメラ10は、画像処理装置20からの命令に応じて対象者Aを撮像し、画像データを画像処理装置20に出力する。
カメラ10のレンズ部分を図2に模式的に示す。この図に示すように、カメラ10では、対物レンズ11が円形状の開口部12に収容され、開口部12の外側に光源13が取り付けられている。光源13は、対象者Aの眼に向けて照明光を照射するための機器であり、複数の発光素子13a(第1の光源)と複数の発光素子13b(第2の光源)とから成る。発光素子13aは、出力光の中心波長が850nmの半導体発光素子(LED)であり、開口部12の縁に沿って等間隔でリング状に配される。発光素子13bは、出力光の中心波長が940nmの半導体発光素子であり、発光素子13aの外側の左右に上下方向に並んで配される。カメラ10の光軸から発光素子13bまでの距離は、該光軸から発光素子13aまでの距離よりも大きい。それぞれの発光素子13a,13bは、カメラ10の光軸に沿って照明光を出射するように設けられる。なお、光源13の配置は図2に示す構成に限定されず、カメラ10をピンホールモデルとみなすことができれば他の配置であってもよい。発光素子13a,13bは、それぞれ、画像処理装置20からの命令に応じた別々のタイミング及び期間で照明光を出射する。なお、発光素子13a,13bの出射する照明光の強度は、対象者Aに照射された際に瞳孔以外の背景が同じ明るさとなるように予めそれぞれの強度が設定される。
光源13を構成する発光素子(第1の光源)13aは、明瞳孔画像を得るための照明光(第1の照明光)を、対象者Aの顔に向けて照射するための光源である。明瞳孔画像とは、後述の暗瞳孔画像と比較して対象者Aの瞳孔が相対的に明るく写った画像をいう。また、発光素子13aは、暗瞳孔画像の取得時に、眼鏡反射を生じさせて差分画像において眼鏡反射を相殺させるための光源としても共用される。
光源13を構成する発光素子(第2の光源)13bは、暗瞳孔画像を得るための照明光(第2の照明光)を、対象者Aの顔に向けて照射するための光源である。暗瞳孔画像とは、前述の明瞳孔画像と比較して対象者Aの瞳孔が相対的に暗く映った画像をいう。この発光素子13bは、明瞳孔画像及び暗瞳孔画像の取得時において角膜反射を強調して生じさせるための光源としても共用される。
画像処理装置20は、カメラ10及び光源13の制御と、対象者Aの瞳孔位置および視線方向の検出とを実行するコンピュータである。画像処理装置20は、据置型または携帯型のパーソナルコンピュータ(PC)により構築されてもよいし、ワークステーションにより構築されてもよいし、他の種類のコンピュータにより構築されてもよい。あるいは、画像処理装置20は複数台の任意の種類のコンピュータを組み合わせて構築されてもよい。複数台のコンピュータを用いる場合には、これらのコンピュータはインターネットやイントラネットなどの通信ネットワークを介して接続される。
画像処理装置20の一般的なハードウェア構成を図3に示す。画像処理装置20は、オペレーティングシステムやアプリケーション・プログラムなどを実行するCPU(プロセッサ)101と、ROMおよびRAMで構成される主記憶部102と、ハードディスクやフラッシュメモリなどで構成される補助記憶部103と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部104と、キーボードやマウスなどの入力装置105と、ディスプレイやプリンタなどの出力装置106とを備える。
後述する画像処理装置20の各機能要素は、CPU101または主記憶部102の上に所定のソフトウェアを読み込ませ、CPU101の制御の下で通信制御部104や入力装置105、出力装置106などを動作させ、主記憶部102または補助記憶部103におけるデータの読み出しおよび書き込みを行うことで実現される。処理に必要なデータやデータベースは主記憶部102または補助記憶部103内に格納される。
図4に示すように、画像処理装置20は機能的構成要素として点灯制御部21、画像取得部22、及び算出部23を備える。点灯制御部21は、光源13の点灯タイミング及び点灯期間を制御する。画像取得部22は、カメラ10の撮影タイミングを光源13の点灯タイミングに同期して制御することで、カメラ10から画像データ(眼画像のデータ)を取得する機能要素である。算出部23は、画像データを基に、対象者Aの瞳孔の三次元位置および対象者Aの視線方向として視線ベクトルを検出する機能要素である。視線とは、対象者Aの瞳孔中心と該対象者Aの注視点(対象者が見ている点)とを結ぶ線である。なお、「視線」という用語は、起点、終点、および方向の意味(概念)を含む。また、「視線ベクトル」とは、対象者の視線の方向をベクトルで表したもので、「視線方向」を表す一形態である。画像処理装置20の検出結果の瞳孔位置及び視線方向の出力先は何ら限定されない。例えば、画像処理装置20は判定結果を画像、図形、またはテキストでモニタに表示してもよいし、メモリやデータベースなどの記憶装置に格納してもよいし、通信ネットワーク経由で他のコンピュータシステムに送信してもよい。
画像取得部22は、カメラ10の撮影タイミングを制御する機能要素である。具体的には、カメラ10を所定のフレームレート(例えば、120fps)及び所定の露光時間で繰り返し撮像し、交互に明瞳孔画像及び暗瞳孔画像を取得するように制御する。
点灯制御部21は、カメラ10の撮影タイミングに同期させて、発光素子13a,13bの点灯タイミング及びカメラ10の露光期間内の発光量を制御する機能要素である。本実施形態では、点灯制御部21は、発光素子13a,13bの発光量をそれぞれの点灯期間を設定することによって制御している。具体的には、点灯制御部21は、明瞳孔画像の撮像タイミングに同期した発光素子13aの比較的強い(比較的長い点灯期間での)点灯と、暗瞳孔画像の撮影タイミングに同期した発光素子13bの比較的強い(比較的長い点灯期間での)点灯とを交互に繰り返すように、発光素子13a,13bを点灯させる。このとき、点灯制御部21は、明瞳孔画像の撮影タイミングでは、角膜反射像を強調させるために、発光素子13bを比較的弱い強度で(比較的短い点灯期間で)点灯させるように制御し、暗瞳孔画像の撮影タイミングでは、眼鏡反射を生じさせて後述する差分画像において眼鏡反射を相殺させるために、発光素子13aを比較的弱い強度で(比較的短い点灯期間で)点灯させるように制御する。
上記画像取得部22及び上記点灯制御部21の機能により、主に発光素子13aから対象者Aの眼球に照明光が出射されるタイミングでカメラ10によって瞳孔が撮像されると明瞳孔画像が取得され、主に発光素子13bから照明光が出射されるタイミングでカメラ10によって瞳孔が撮像されると暗瞳孔画像が取得される。これは、次のような性質によるものである。つまり、対象者Aの眼球への照明光がカメラ10の光軸から相対的に離れた位置から入射した場合には、眼球の瞳孔から入射し、眼球内部で反射されて再び瞳孔を通過した照明光がカメラ10に届きにくいため、瞳孔が相対的に暗く映るという性質である。逆に、対象者Aの眼球への照明光がカメラ10の光軸に相対的に近い位置から入射した場合には、眼球の瞳孔から入射し、眼球内部で反射されて再び瞳孔を通過した照明光がカメラ10に届きやすいため、瞳孔が相対的に明るく映るという性質である。
以下、算出部23による、対象者Aの瞳孔の三次元位置および対象者Aの視線方向の検出機能の詳細について説明する。
算出部23は、所定の時間間隔(例えば、120fpsに対応する時間間隔)で交互に取得された明瞳孔画像と暗瞳孔画像との2つの画像を用いて、明瞳孔画像のウィンドウ内の各画素の輝度から暗瞳孔画像のウィンドウ内の各画素の輝度を差し引いて差分を求めることにより差分画像を連続して取得する。このとき、明瞳孔画像と暗瞳孔画像を取得するタイミングには時間差があること、及び対象者Aがカメラ10に対して移動することを考慮して、算出部23は、特許第4452836号に記載の手法と同様の手法を用いて、明瞳孔画像及び暗瞳孔画像上において角膜反射像の位置を検出し、角膜反射像の位置が一致するように暗瞳孔画像の画像上のウィンドウの位置を明瞳孔画像に対して補正する。画像上の角膜反射像の位置は、前のフレームから得られた瞳孔輝度よりも高い角膜反射用閾値で2値化し、ラベリング処理を行い、最も角膜反射として大きさと形状を有する画素群を選択し、その画素群から、角膜反射像の中心を輝度も考慮した重心として求めることにより、検出される。一方で、算出部23は、明瞳孔画像及び暗瞳孔画像上において角膜反射像の位置を検出し、角膜反射像の位置が一致するように明瞳孔画像の画像上のウィンドウの位置を暗瞳孔画像に対して補正してもよい。このような機能により、算出部23は、上記の所定の時間間隔(例えば、120fpsに対応する時間間隔)で、差分画像を連続して取得することができる。図5は、算出部23による差分画像の算出機能を説明する概念図である。すなわち、明瞳孔画像及び暗瞳孔画像の所定の時間間隔の取得タイミングをti-1,ti,ti+1,…(iは任意の自然数)とすると、算出部23は、時刻tiにて取得される明瞳孔画像と時刻ti+1にて取得される暗瞳孔画像を基にした差分画像を、その後の演算時刻(例えば、ti+2)において取得し、次に、時刻ti+1にて取得される暗瞳孔画像と時刻ti+2にて取得される明瞳孔画像を基にした差分画像を、その後の演算時刻(例えば、ti+3)において取得する。
また、算出部23は、時間的に連続して取得した2個の差分画像を均等に演算する。すなわち、算出部23は、2個の差分画像の各画素の画素値を乗算することにより乗算画像を生成する。そして、算出部23は、時間的に連続する2個の差分画像を、1個ずつ時間的に後ろにずらして選択して乗算画像を生成することにより、上記の所定の時間間隔(例えば、120fpsに対応する時間間隔)での眼部の画像が反映された乗算画像を連続して生成する。例えば、算出部23は、演算時刻ti+1にて取得される差分画像と演算時刻ti+2にて取得される差分画像とを用いて、それらの画像が反映された乗算画像を、その後の演算時刻ti+3にて取得し、その後連続して演算時刻ti+4,ti+5,…にて乗算画像を取得する。
上記のように取得された乗算画像においては、瞳孔部における画素値が比較的大きな値を持ち、それ以外の部分が乗算画像の元になった差分画像に比較してより零値に近くなり、瞳孔部がより強調された画像となっている。このような性質を利用し、算出部23は、連続して取得した乗算画像を対象にして、対象者Aの瞳孔像の画像上の位置(以下、二次元位置ともいう。)を検出する。すなわち、算出部23は、乗算画像を瞳孔用閾値を基準に2値化し、孤立点除去、モルフォロジー処理によるノイズ除去、ラベリングを行う。そして、算出部23は、最も瞳孔らしい形状を有する画素群を、瞳孔として検出する。このとき、瞳孔がまぶたやまつ毛で隠れた場合にも、まぶたやまつ毛と瞳孔との境界を偽の瞳孔輪郭として排除し、真の瞳孔輪郭のみを楕円フィッティングして、真の瞳孔輪郭の乗算画像上の位置を検出し、楕円フィッティングで求まる楕円の式から瞳孔像の中心位置を算出する。このとき、算出部23は、演算対象の乗算画像の画素値のビット数を削減するために、乗算画像の画素値を所定値(例えば、画素値が8ビットで表現されている場合は2の8乗の値)で割ってから瞳孔像の二次元位置を検出してもよい。
さらに、算出部23は、一対のカメラ10ごとに、同一の演算時間において取得された乗算画像を基に検出された瞳孔像の二次元位置と、その乗算画像の元となった3つの画像のうちの中間の暗瞳孔画像あるいは明瞳孔画像を対象に検出された角膜反射像の位置とを、連続して取得する。例えば、上記の演算時刻ti+3において取得された乗算画像に対しては、その乗算画像の元となった2つの差分画像の共通の演算元である、時刻tiの明瞳孔画像における角膜反射像の位置が対応する。また、上記の演算時刻ti+4において取得された乗算画像に対しては、その乗算画像の元となった2つの差分画像の共通の演算元である、時刻ti+1の暗瞳孔画像における角膜反射像の位置が対応する(図5)。そして、算出部23は、一対のカメラ10に対応して得られた瞳孔像の二次元位置を用いて、対象者Aの瞳孔の三次元位置を算出する。さらに、算出部23は、算出した瞳孔の三次元位置、一対のカメラ10ごとに得られた瞳孔像の二次元位置及び角膜反射像の位置とを用いて対象者Aの視線ベクトルおよび注視点を、所定の時間間隔で連続して検出する。上記の瞳孔の三次元位置の算出手法、視線ベクトルおよび注視点の算出手法は、本発明者らによって開発された手法(国際公開WO2012/020760号公報参照)を採用することができる。
ここで、上記説明では、差分画像の演算および乗算画像の演算が1フレームに相当する時間を要するという前提で差分画像及び乗算画像の演算時刻を記載している。一方で、これらの差分及び乗算の両方に要する時間の合計が十分短くて1フレームに対応する時間より小さい時間Δtである場合は、乗算画像の演算時刻を前倒しの時刻で得るように動作してもよい。例えば、図5に示す演算時刻ti+3で取得する乗算画像は、時刻ti+1に対して「Δt」の時間遅れで、言い換えれば、時刻tiに対して「1フレームの時間+Δt」の時間遅れで取得することができる。
以上説明した瞳孔検出装置1の作用効果について説明する。
瞳孔検出装置1によれば、カメラ10の開口部12の外側に配置された発光素子13a,13bが所定時間間隔で交互に点灯され、これらの点灯タイミングに合わせてカメラ10で眼画像が取得されることにより、瞳孔が相対的に明るく写った明瞳孔画像と瞳孔が相対的に暗く写った暗瞳孔画像とが交互に得られ、明瞳孔画像と暗瞳孔画像との画像ペアの差分から差分画像が連続して取得される。さらに、連続して取得された2個の差分画像を均等に演算することによって対象者Aの瞳孔位置が検出される。このように、連続する2個の差分画像を均等に演算することによって、周囲が明るい環境下であっても、周囲が暗い環境下であっても、連続して取得する差分画像において現れる瞳孔の位置を所定時間間隔のタイミングの位置に設定することができる。その結果、連続して取得する差分画像を基に、瞳孔の位置の変化を安定して検出することができる。特に、本実施形態は、比較的フレームレートの高い(通常の60fpsよりも高い)カメラを用いる場合に有効である。さらに、コストあるいは設置場所の広さの制限等の理由から、発光素子の数あるいは装置の設置面積を削減したい場合にも有効である。
また、本実施形態の算出部23は、明瞳孔画像及び暗瞳孔画像における角膜反射像の位置を検出し、交互に取得した明瞳孔画像及び暗瞳孔画像を対象に差分画像を取得する際には、角膜反射像の位置が一致するように画像位置を補正している。このような構成の場合、対象者Aの顔が動いた場合であっても、差分画像において瞳孔像を際立たせることができ、瞳孔位置の検出精度が向上する。その結果、連続して取得する差分画像を基に、瞳孔の位置の変化をさらに安定して検出することができる。
なお、本実施形態の算出部23は、交互に取得した明瞳孔画像及び暗瞳孔画像を対象に差分画像を取得する際には、角膜反射像の位置が一致するように暗瞳孔画像の位置を明瞳孔画像に対して補正するか、あるいは、角膜反射像の位置が一致するように明瞳孔画像の位置を暗瞳孔画像に対して補正している。こうすれば、画像位置を補正した場合に、周囲が明るい環境下であっても、周囲が暗い環境下であっても、連続して取得する差分画像において現れる瞳孔の位置を所定時間間隔のタイミングの位置に設定することができる。その結果、連続して取得する差分画像を基に、瞳孔の位置の変化をより安定して検出することができる。
また、本実施形態の算出部23は、乗算画像を対象に検出した瞳孔の二次元位置、および、明瞳孔画像あるいは暗瞳孔画像を対象に検出した角膜反射像の位置を基に対象者Aの視線方向をさらに検出している。この場合には、連続して取得する差分画像を基に、視線方向の変化を安定して検出することができる。
上記のような瞳孔検出装置1による処理イメージを具体的に説明する。
図6には、瞳孔検出装置1によって取得される明瞳孔画像及び暗瞳孔画像のイメージを示しており、(a)部には明瞳孔画像及び暗瞳孔画像の二次元分布のイメージを示し、(b)部には位置補正処理前の明瞳孔画像及び暗瞳孔画像の一次元分布のイメージを示し、(c)部には位置補正処理後の明瞳孔画像及び暗瞳孔画像の一次元分布のイメージを示し、(d)部には差分画像の一次元分布のイメージを示す。図6の(b)部~(d)部には、角膜反射像の中心に沿った直線上における画素値(輝度)の一次元分布を示し、簡略化のため瞳孔部以外の虹彩部分等の画素値が一定に表現されている(以下の各図においても同様)。
図6の(a)部に示すように、瞳孔検出装置1によって取得される明瞳孔画像上で比較的輝度が高い瞳孔部PBが現れ、瞳孔検出装置1によって取得される暗瞳孔画像上で比較的輝度が低い瞳孔部PDが現れ、それぞれの画像上には輝度が瞳孔部PB,PDよりも高い角膜反射像CB,CDが現れる。これらの明瞳孔画像及び暗瞳孔画像においては、発光素子13a,13bの設置位置の違いに起因して対象者Aの顔の輪郭部等において明暗差が生じたり、対象者Aの顔の動きにより顔の各部分に明暗差が生じる傾向にある。そこで、瞳孔検出装置1の算出部23は、差分画像において瞳孔の誤検出を防止するために、明瞳孔画像及び暗瞳孔画像において各瞳孔部を含むようなウィンドウを設定し、そのウィンドウ内の画像を用いて差分画像を生成するようにしている。さらに、算出部23は、対象者Aの動きにより明瞳孔画像における瞳孔部PBと暗瞳孔画像の瞳孔部PDとの間で位置がずれた場合(図6の(b)部)、互いのウィンドウの位置を角膜反射像CB,CDが一致するように補正した後に(図6の(c)部)、互いのウィンドウの共通部分を差分することにより差分画像を生成することにより(図6の(c)部)、瞳孔の位置の検出精度を保つようにしている。
なお、明瞳孔画像における瞳孔部PBは、暗瞳孔画像の瞳孔部PDに比較して輝度が高いが、瞳孔検出装置1が太陽光などの近赤外線を含む光が照射する環境で使用される場合には、対象者Aの顔が明るくなるために輝度が周辺部に比較して低くなる場合がある。さらに、このように周辺部が明るくなる環境下では対象者Aの瞳孔が一般的に小さくなるため、瞳孔部PBの輝度が低くなりやすい。これは、対象者Aの瞳孔を通過して眼球内に入射する光量が減少するためであり、光源とカメラと対象者との位置関係、及び、対象者の視線方向の変化がなければ、瞳孔面積と瞳孔輝度との間には比例関係が成り立つためである。同様に、暗瞳孔画像あるいは差分画像における瞳孔部においても、瞳孔面積と瞳孔輝度との間には比例関係が成り立つ。
ここで、対象者の瞳孔面積あるいは使用環境に応じた瞳孔検出装置1における差分画像を用いた瞳孔像の位置の検出状態の変化について説明する。
図7には、周囲が暗い環境下あるいは瞳孔面積が大きい場合における明瞳孔画像及び暗瞳孔画像の一次元分布を示す。図7の(a)部に示す状態では、明瞳孔画像における瞳孔部PBの輝度LPBが、周辺の虹彩等よりも明らかに高くなっており、暗瞳孔画像における瞳孔部PDの輝度LPDは、周辺の虹彩等より少し低くなっている。図7の(b)部に示す状態では、明瞳孔画像における瞳孔部PBの輝度LPBが、周辺の虹彩等よりも明らかに高くなっており、暗瞳孔画像における瞳孔部PDの輝度LPDは、周辺の虹彩等より少し高くなっている。これらの状態は、明瞳孔画像において瞳孔部が明るく光りやすい一方で、暗瞳孔画像においては瞳孔部が他の部分に対して輝度が同等で目立たない状態である(以下、このような状態を「明瞳孔優位」と呼ぶ。)。
図8には、周囲が明るい環境下あるいは瞳孔面積が小さい場合における明瞳孔画像及び暗瞳孔画像の一次元分布を示す。図8の(a)部に示す状態では、暗瞳孔画像における瞳孔部PDの輝度LPDが、周辺の虹彩等よりも明らかに低くなっており、明瞳孔画像における瞳孔部PBの輝度LPBは、周辺の虹彩等より少し高くなっている。図8の(b)部に示す状態では、暗瞳孔画像における瞳孔部PDの輝度LPDが、周辺の虹彩等よりも明らかに低くなっており、明瞳孔画像における瞳孔部PBの輝度LPBは、周辺の虹彩等より少し低くなっている。これらの状態は、暗瞳孔画像において瞳孔部が暗くなりやすい一方で、明瞳孔画像においては瞳孔部が他の部分に対して輝度が同等で目立たない状態である(以下、このような状態を「暗瞳孔優位」と呼ぶ。)。
上記のような明瞳孔優位及び暗瞳孔優位の状態で瞳孔像が画像中で動いた場合を想定する。図9の(a)部及び(b)部には、それぞれ、明瞳孔優位及び暗瞳孔優位の場合の画像の一次元分布を示し、上側に明瞳孔画像及び暗瞳孔画像の一次元分布を示し、下側に差分画像の一次元分布を示している。
図9の(a)部に示すように、明瞳孔優位の場合は、差分画像において直前に得られた差分画像の瞳孔部の輝度の平均値の50%を閾値として設定した場合、それによって検出される瞳孔像のエッジは元の明瞳孔画像における瞳孔部のエッジと一致する。一方、図9の(b)部に示すように、暗瞳孔優位の場合は、同様な閾値によって検出される瞳孔像のエッジは元の暗瞳孔画像における瞳孔部のエッジと一致する。このことから、差分画像を基に瞳孔の二次元位置を検出しようとする場合、明瞳孔優位の場合は明瞳孔画像の瞳孔が検出され、暗瞳孔優位の場合には暗瞳孔画像の瞳孔が検出されることが分かる。
図10に示すように、時刻ti-1,ti,ti+1,…において、暗瞳孔画像、明瞳孔画像、暗瞳孔画像、…と順に取得された場合を仮定する。算出部23によって連続した時刻に取得された明瞳孔画像及び暗瞳孔画像を基に、明瞳孔画像から暗瞳孔画像を差し引いて差分画像が取得される。例えば、時刻tiに得られた明瞳孔画像から時刻ti-1で得られた暗瞳孔画像が差し引かれることにより、演算時刻ti+1に差分画像が得られる。その次に、既に時刻tiで取得された明瞳孔画像から時刻ti+1で取得される暗瞳孔画像が差し引かれることにより、演算時刻ti+2に差分画像が得られる。ここで、明瞳孔優位の状態の場合には、互いに位置ずれが生じている明瞳孔画像及び暗瞳孔画像から差分画像を生成した際には明瞳孔画像における瞳孔位置が検出されることになるため、上記の2枚の差分画像において検出される瞳孔の二次元位置は、ともに時刻tiでの明瞳孔画像における瞳孔の二次元位置となる。つまり、演算時刻ti+1,ti+2において同じ位置が続けて2回検出される。同様に、演算時刻ti+3,ti+4において、時刻ti+2での明瞳孔画像における瞳孔位置が続けて2回検出される。
また、図11に示すように、暗瞳孔優位の状態の場合には、互いに位置ずれが生じている明瞳孔画像及び暗瞳孔画像から差分画像を生成した際には暗瞳孔画像における瞳孔位置が検出されることになるため、演算時刻ti+2,ti+3で取得される2枚の差分画像において検出される瞳孔の二次元位置は、ともに時刻ti+1での暗瞳孔画像における瞳孔の二次元位置となる。つまり、演算時刻ti+2,ti+3において同じ位置が続けて2回検出される。
このように、明瞳孔画像と暗瞳孔画像との間の位置補正を実行しない場合は、明瞳孔優位の場合は、時刻tiと時刻ti+2の瞳孔の二次元位置が得られ、暗瞳孔優位の場合は、時刻ti+1と時刻ti+3の瞳孔の二次元位置が得られることがわかり、明瞳孔優位の状態と暗瞳孔優位の状態とでは、瞳孔の二次元位置が得られる時刻が異なってくる。図12には、瞳孔位置が一方向に等速で変化する場合に、算出部23によって検出される瞳孔位置の画像フレーム毎の変化を示している。このように、明瞳孔優位であっても暗瞳孔優位であっても、2枚の画像フレームで連続して同じ位置が検出され、明瞳孔優位の状態と暗瞳孔優位の状態とでは、同じ位置が連続して得られるタイミングが1フレームずれてしまう。つまり、別の観点から考えると、カメラ10のフレームレートの半分の頻度でしか瞳孔位置を検出できないこととなる。瞳孔位置の検出頻度が低いと次の画像フレームにおける瞳孔位置の予測の精度が低くなり、差分画像の生成対象となるウィンドウの位置を正確に設定することが困難となる。その結果、ウィンドウサイズを大きくする必要があり、背景ノイズを拾いやすくなって瞳孔検出のロバスト性が低下する。
ここで注意すべき点は、差分画像によって瞳孔が検出されて瞳孔領域が明確になる前においては、その瞳孔の位置が明瞳孔画像における瞳孔像のものなのか暗瞳孔画像における瞳孔像のものなのかが不明という点である。つまり、角膜反射像に基づく位置補正を行って差分演算および二値化演算を行って瞳孔領位置が明確になって初めて、明瞳孔優位の状態か暗瞳孔優位の状態かが明らかになる。そのため、差分画像に基づく瞳孔の二次元位置の検出時にその瞳孔位置の時刻を解析することはその処理が煩雑となる。
これに対して、本実施形態では、連続して取得された2個の差分画像を均等に演算することによって対象者Aの瞳孔位置が検出されるため、煩雑な処理は不要である。特に、本実施形態では、瞳孔が画像中をおおよそ等速で移動するのであれば、明瞳孔優位あるいは暗瞳孔優位のいずれの場合であっても、連続する差分画像において瞳孔位置の誤差の方向が逆となっている。このような性質を考慮して乗算画像を利用して瞳孔位置を検出することによって、2枚の差分画像中の瞳孔位置の誤差が相殺されることになり、瞳孔位置の検出精度が向上する。
また、本実施形態の瞳孔検出装置1によれば、明瞳孔優位か暗瞳孔優位かが不明の状況で対象者Aの頭部が動く場合であっても、瞳孔位置の検出精度を向上させるとともに、瞳孔形状までも正確に検出することが可能である。図13に示すように、本実施形態にかかる算出部23により、時刻ti-1の暗瞳孔画像と時刻tiの明瞳孔画像との間の差分画像を演算時刻ti+1で生成する際には、時刻ti-1の暗瞳孔画像の位置が時刻tiの明瞳孔画像に対して補正される。このとき、明瞳孔優位の状態であると、演算時刻ti+1の差分画像で得られる瞳孔位置は時刻tiにおける瞳孔位置となる。その後、演算時刻ti+2の差分画像で得られる瞳孔位置も時刻tiにおける瞳孔位置となる。また、暗瞳孔優位の状態である場合は、演算時刻ti+1の差分画像で得られる瞳孔位置は時刻ti-1における瞳孔位置を位置補正したものなる。その後、演算時刻ti+2の差分画像で得られる瞳孔位置は時刻ti+1における瞳孔位置を位置補正したものとなる。そのため、連続した演算時刻で得られた差分画像を基にした乗算画像を用いることにより、瞳孔位置の変化を精度よく検出できる。
一方で、明瞳孔画像と暗瞳孔画像との間の位置補正としては、直前のフレームの画像を直後のフレームの画像に対して補正する処理も考えられる。この場合、明瞳孔優位の状態であると、演算時刻ti+1の差分画像で得られる瞳孔位置は時刻tiにおける瞳孔位置となる。その後、演算時刻ti+2の差分画像で得られる瞳孔位置は時刻tiにおける瞳孔位置を位置補正したものとなる。そのため、演算時刻ti+2においては時刻tiの瞳孔位置を時刻ti+1の瞳孔位置に誤って検出することになり、連続した演算時刻で得られた差分画像を基にした乗算画像を用いても、瞳孔位置の検出精度を高めることはできない。この場合、明瞳孔優位であることが予めわかっていれば、演算時刻ti+2において得られる瞳孔位置を時刻tiのものと認識すれば問題ないが、既に述べたように、そのように認識することは困難である。暗瞳孔優位の状態の場合は、演算時刻ti+1の差分画像で得られる瞳孔位置は時刻ti-1における瞳孔位置が位置補正されたものとなる。その後、演算時刻ti+2の差分画像で得られる瞳孔位置は時刻ti+1における瞳孔位置となる。そのため、演算時刻ti+1においては時刻ti-1の瞳孔位置を時刻tiの瞳孔位置に誤って検出することになり、連続した演算時刻で得られた差分画像を基にした乗算画像を用いても、瞳孔位置の検出精度を高めることはできない。この場合も、暗瞳孔優位であることは不明であるため、瞳孔位置の検出時刻を修正することは困難である。
図14の(a)部には差分画像の輝度分布を示し、図14の(b)部には連続した差分画像を基にした乗算画像の輝度分布を示し、図15には同一の差分画像を基にした乗算画像の輝度分布を示している。それぞれの図において、上側に各画像の表示例を示し、下側に各画像の一次元輝度分布を示す。このように、図14の(a)部に示される差分画像においては背景と瞳孔との輝度にあまり差が生じていないが、図14の(b)部に示されるように、連続した差分画像を基にした乗算画像においては、左右の瞳孔輝度が高くなっているとともに瞳孔部以外の背景部分のノイズが小さくなっており、乗算画像を用いることで瞳孔位置が検出しやすくなることが分かる。また、図15に示されるように、同一の差分画像を基にした乗算画像においては、瞳孔以外の背景部分に高輝度点が多く見られ、ノイズが強調されている。これは、画素間の画素値の大小関係は二乗しても変化しないためである。従って、同一の差分画像を基にした乗算画像を用いると、瞳孔を誤検出する可能性がある。しかも、画素値は離散的であるので、256諧調の画素値の差分画像を二乗した画像も256諧調であり、瞳孔位置の検出のための閾値を設定する際の容易さには変化がない。これに対して、連続する異なる差分画像を乗算する場合には、元の差分画像の一方が異なっている。例えば、明瞳孔画像は共通であるが暗瞳孔画像は異なっている。通常、これらの2つの暗瞳孔画像は異なったノイズを含む。そのため、乗算画像において、ランダムノイズを含むノイズ、および頭部が動くことによる画像の変化による差分画像上の輝度変化が相殺されて、瞳孔以外の部分の輝度値が零に近づくことになる。また、乗算画像においては、一方の差分画像上の瞳孔部の画素の輝度が低くなっても、他方の差分画像上の同一画素の輝度がそれを補うことになる。上述した結果から、本実施形態のように時間的に連続する差分画像を基にした乗算画像を用いることが、瞳孔輝度を高くして瞳孔位置が検出しやすくなること、及びノイズの影響を除去することに関して有効であることが示された。
さらに、本実施形態の算出部23は、連続する差分画像を基に乗算画像を取得している。つまり、演算時刻ti+2,ti+4等の演算時刻が1フレームを超えて離れた差分画像を用いていない。演算時刻ti+2,ti+4で取得された2つの差分画像を基に乗算画像を生成する場合も、2つの差分画像の元となる明瞳孔画像と暗瞳孔画像とが両方とも違うので、乗算の効果は得られる。しかしながら、このような乗算画像では、明瞳孔優位あるいは暗瞳孔優位の状態における瞳孔位置のずれ量が相殺されない。本実施形態では、瞳孔が画像中をおおよそ等速で移動するのであれば、明瞳孔優位あるいは暗瞳孔優位のいずれの場合であっても、それぞれの差分画像におけるずれ方向が同一であるので2枚の差分画像中の瞳孔位置は一致することになり、乗算による効果が期待できる。
本発明は、上述した実施形態に限定されるものではない。上記実施形態の構成は様々変更されうる。
上述した実施形態では、算出部23は、所定の時間間隔で取得された連続するN個(Nは2以上の偶数)の差分画像を基に乗算画像を生成し、その乗算画像を基に瞳孔の二次元位置および視線方向を検出してもよい。この場合も、瞳孔の位置の変化を安定して検出することができる。特に、乗算画像の生成元を偶数個の差分画像に設定することにより、連続する差分画像における瞳孔位置及び視線方向の誤差方向が逆方向であることに対してその誤差を確実に相殺することができる。また、解析が必要な瞳孔の位置変化の時間間隔に応じて、乗算画像の元となる差分画像の数を設定することで演算量を削減することができる。
また、上述した実施形態の算出部23は、明瞳孔画像と暗瞳孔画像との間で角膜反射像の位置を用いた位置補正を行っているが、特許第4452832号に記載の鼻孔に基づく位置補正を行ってもよいし、特許第5429885号、特許第6083761号、特許第6583734号、及び特許第6555707号に記載の三次元空間での瞳孔の位置を予測することによる位置補正を行ってもよい。
また、上記実施形態の変形例として、算出部23は、連続する差分画像を均等の演算結果に反映する際には、次のように処理してもよい。すなわち、算出部23は、連続して取得した2つの差分画像を対象に、上述した方法と同様にして2つの瞳孔の二次元位置の候補を検出し、2つの瞳孔位置の候補の平均値を演算結果として取得し、その演算結果を基に最終的な瞳孔の二次元位置を検出してもよい。このようにすれば、演算時刻ti+1,ti+2で得られる2つの差分画像によって検出される2つの瞳孔位置を平均化することにより、明瞳孔優位の場合であっても暗瞳孔優位の場合であっても、その結果得られる瞳孔位置を時刻tiにおける瞳孔位置に近い位置とすることができる。その結果、連続して取得する差分画像を基に、瞳孔位置の変化を安定して検出することができる。
また、上記実施形態の別の変形例として、算出部23は、連続する差分画像を基に検出した視線方向を平均化することにより、連続する差分画像を均等の演算結果に反映してもよい。すなわち、算出部23は、連続して取得した2つの差分画像を対象に、上述した実施形態と同様にして、それぞれの差分画像を基に瞳孔の二次元位置と角膜反射像の位置とを検出し、それらを用いて2つの視線方向の候補を検出し、2つの視線方向の候補の平均値を演算結果として取得し、その演算結果を基に最終的な視線方向を検出してもよい。
ただし、上記別の変形例においては、算出部23は、連続する差分画像を基に2つの視線方向の候補を検出する際には、連続する差分画像から検出した2つの瞳孔位置を平均化したものを用いてもよい。
視線方向の検出を精度よく実現するためには、瞳孔の位置と角膜反射の位置とは同じ時刻に検出されたものを用いる必要がある。視線は基本的に瞳孔中心と角膜反射点位置との相対関係から算出されるため、両者の検出時刻がずれていると、検出される視線に大きなばらつきが発生したり、頭部が一定方向に移動している場合にその方向に依存した視線のずれが生じる。例えば、明瞳孔優位の場合には、演算時刻ti+1,ti+2で得られる差分画像から検出されるのは、時刻tiの瞳孔の位置であり、角膜反射の位置も時刻tiでの明瞳孔画像上の位置であるため(図10)、問題は生じない。しかし、暗瞳孔優位の場合には、演算時刻ti+1,ti+2で得られる差分画像から検出されるのは、それぞれ時刻ti-1,ti+1の瞳孔の位置であり、角膜反射の位置は時刻tiでの明瞳孔画像上の位置であるため(図11)、別々の時刻に検出された瞳孔位置と角膜反射位置から視線方向を検出することになってしまう。その結果、視線検出結果にばらつきが生じてしまう。
直前のフレームの画像位置をその直後のフレームの画像位置に対して補正する場合にも、検出される視線方向にずれが生じる。明瞳孔優位の場合には、時刻ti-1の暗瞳孔画像を時刻tiの明瞳孔画像に対して位置補正したときは問題ないが、時刻tiの明瞳孔画像をti+1の暗瞳孔画像に対して位置補正したときには視線方向がずれる(図10)。暗瞳孔優位の場合は、時刻tiの明瞳孔画像を時刻ti+1の暗瞳孔画像に対して位置補正したときは問題ないが、時刻ti-1の暗瞳孔画像をtiの明瞳孔画像に対して位置補正したときには視線方向がずれる(図11)。そのずれ量は、瞳孔の画像中での移動速度に依存し、移動速度が大きいときほどずれ量が大きくなる。
一方、上記変形例によれば、明瞳孔優位か暗瞳孔優位かが不明な場合に、頭部が動いても視線方向あるいは注視点を正確に追尾できる。瞳孔が画像中でほぼ等速で動いていると仮定すると、暗瞳孔優位の場合は、時刻ti-1の暗瞳孔画像を時刻tiの明瞳孔画像に対して位置補正して両画像から差分画像を生成するときと、時刻ti+1の暗瞳孔画像を時刻tiの明瞳孔画像に対して位置補正して両画像から差分画像を生成するときとでは、検出される視線方向のずれる方向が正反対となる。従って、連続して検出される視線方向はばらつきを有し、そのばらつき方向は正反対である。さらに、明瞳孔優位の場合は、時刻ti-1の暗瞳孔画像を時刻tiの明瞳孔画像に対して位置補正して両画像から差分画像を生成するときと、時刻ti+1の暗瞳孔画像を時刻tiの明瞳孔画像に対して位置補正して両画像から差分画像を生成するときとでは、検出される視線方向が正しいので、それらの検出結果を平均化した視線方向も正しい方向を示す。本変形例によれば、差分画像を用いて連続して検出される視線方向を平均化することにより本来の正しい視線方向を検出することができる。
また、上記の2つの変形例においても、所定の時間間隔で取得された連続するN個(Nは2以上の偶数)の差分画像を基に演算結果を平均化して、平均化した演算結果を基に瞳孔の二次元位置および視線方向を検出してもよい。
また、上記実施形態に係る算出部23は、交互に取得した明瞳孔画像及び暗瞳孔画像を基に差分画像を取得する際には、当該差分画像より先の演算時刻に連続して取得された2つの乗算画像を基に検出された2つの瞳孔の二次元位置の変化から、明瞳孔画像及び暗瞳孔画像に対してウィンドウを設定し、設定したウィンドウ間で差分画像を生成してもよい。例えば、算出部23は、時刻ti-1,ti,ti+1の3枚の眼部画像を基にした乗算画像から検出した瞳孔位置を、時刻tiの位置として検出し、時刻ti-2,ti-1,tiの3枚の眼部画像を基にした乗算画像から検出した瞳孔位置を、時刻ti-1の位置として検出する。算出部23は、これらの瞳孔位置から時刻ti+2における瞳孔の二次元位置を予測する。同様に、算出部23は、時刻ti+1における瞳孔の二次元位置を、時刻ti-2の瞳孔位置と時刻ti-1の瞳孔位置とから予測する。そして、算出部23は、予測した瞳孔位置を基に、差分画像を取得する際に、時刻ti+1における眼部画像上のウィンドウの位置、及び、時刻ti+2における眼部画像上のウィンドウの位置を設定することができる。このような変形例によれば、対象者Aの顔が動いた場合であっても、差分画像において瞳孔像を確実に捉えることができ、瞳孔位置を安定して検出することができる。加えて、ウィンドウを設定することで画像演算の範囲を限定できるので瞳孔検出の演算速度も向上させることができる。
また、上記実施形態、上記変形例、及び上記別の変形例においては、明瞳孔画像と暗瞳孔画像を取得する時間間隔が1フレームに対応する間隔で一定でなく変化する場合は次のような機能を有していてもよい。すなわち、算出部23は、両画像を取得した時刻を特定し、両画像から得た差分画像の演算結果への反映度合いを均等ではなく、両画像の取得時刻に対応させて調整(重み付け)してもよい。このように、算出部23は、均等に連続する差分画像を演算結果に反映する以外にも、誤差を差分画像間で打ち消すことができれば、連続する差分画像を重み付けして演算結果に反映するようにしてもよい。これにより、画像の取得間隔に対応して瞳孔位置あるいは視線方向の検出の誤差を少なくすることができる。