(57)【特許請求の範囲】
【請求項１】
第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出部であって、前記角膜球中心が、前記第１カメラと前記第１瞳孔画像から得られる角膜反射点とを通る軸と、前記第２カメラと前記第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出部と、
前記複数の候補ベクトルの中から、瞳孔中心と、前記第１カメラおよび前記第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定部と
を備える瞳孔検出システム。
【請求項２】
前記判定部が、前記基準線との成す角度が前記所定の閾値以下であり、かつ長さが所定の範囲内であるという前記ベクトル条件を満たす前記候補ベクトルを選択する、
請求項１に記載の瞳孔検出システム。
【請求項３】
前記ベクトル算出部が、
角膜反射候補点を用いて前記瞳孔中心を算出する処理を、前記候補ベクトルを算出する前に実行し、
前記角膜反射候補点を用いて前記瞳孔中心を算出できなかった場合には、該角膜反射候補点を除外し、
除外されなかった前記角膜反射候補点に対応する前記候補ベクトルのみを算出する、
請求項１または２に記載の瞳孔検出システム。
【請求項４】
前記ベクトル算出部が、前記対象者の左瞳孔および右瞳孔のそれぞれについて複数の候補ベクトルを算出し、
前記判定部が、
前記左瞳孔および前記右瞳孔のそれぞれについて左瞳孔中心および右瞳孔中心を判定し、
前記ベクトル条件を満たす前記候補ベクトルに対応し、かつ、前記左瞳孔中心および前記右瞳孔中心に基づく瞳孔間距離が所定の範囲内にあるという距離条件を満たす前記左瞳孔中心および前記右瞳孔中心に前記左瞳孔および前記右瞳孔がそれぞれ位置すると判定する、
請求項１〜３のいずれか一項に記載の瞳孔検出システム。
【請求項５】
前記ベクトル算出部が、前記対象者の左瞳孔および右瞳孔のそれぞれについて複数の候補ベクトルを算出し、
前記判定部が、
前記左瞳孔および前記右瞳孔のそれぞれについて、前記ベクトル条件を満たす候補ベクトルを選択することで、左瞳孔中心および右瞳孔中心を判定し、
前記左瞳孔中心および前記右瞳孔中心に基づいて左視線および右視線をそれぞれ算出し、
前記左瞳孔中心、前記右瞳孔中心、および前記左視線により規定される平面の法線と、前記左瞳孔中心、前記右瞳孔中心、および前記右視線により規定される平面の法線との成す角度が所定の閾値以下であるという視線条件を満たす場合に、前記左視線および前記右視線が正しい視線であると判定する、
請求項１〜４のいずれか一項に記載の瞳孔検出システム。
【請求項６】
前記判定部が、正しいと判定された前記左視線および前記右視線に対応する前記左瞳孔中心および前記右瞳孔中心に、前記左瞳孔および前記右瞳孔がそれぞれ位置すると判定する、
請求項５に記載の瞳孔検出システム。
【請求項７】
請求項１〜３のいずれか一項に記載の瞳孔検出システムにより判定された前記瞳孔中心に基づいて前記対象者の視線を検出する視線検出部を備える視線検出システム。
【請求項８】
請求項４または６に記載の瞳孔検出システムにより判定された前記左瞳孔中心および前記右瞳孔中心に基づいて前記対象者の左視線および右視線を検出する視線検出部を備える視線検出システム。
【請求項９】
プロセッサを備える瞳孔検出システムにより実行される瞳孔検出方法であって、
第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出ステップであって、前記角膜球中心が、前記第１カメラと前記第１瞳孔画像から得られる角膜反射点とを通る軸と、前記第２カメラと前記第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出ステップと、
前記複数の候補ベクトルの中から、瞳孔中心と前記第１カメラおよび前記第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定ステップと
を含む瞳孔検出方法。
【請求項１０】
第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出部であって、前記角膜球中心が、前記第１カメラと前記第１瞳孔画像から得られる角膜反射点とを通る軸と、前記第２カメラと前記第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出部と、
前記複数の候補ベクトルの中から、瞳孔中心と前記第１カメラおよび前記第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定部と
してコンピュータを機能させるための瞳孔検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は、瞳孔検出システム、視線検出システム、瞳孔検出方法、および瞳孔検出プログラムに関する。
【背景技術】
【０００２】
従来から、対象者の瞳孔を検出する技術が知られている。この技術は、よそ見運転の検出、運転者の眠気の検出、商品の興味の度合いの調査、コンピュータへのデータ入力などに応用することが可能である。【０００３】
このような瞳孔検出技術に関し、下記特許文献１には、明瞳孔画像と暗瞳孔画像との差分により瞳孔を検出するための方法が記載されている。この方法では、明瞳孔および暗瞳孔を撮影した２つの画像における角膜反射位置のずれ量を検出し、一方の画像を角膜反射位置のずれ量に対応する分だけ移動する位置補正を行うことで、両画像の瞳孔部を実質的に一致させる。その上で、両画像の差分が取られる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４５２８３６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、明瞳孔画像および暗瞳孔画像には様々なノイズが載りやすい。ノイズの一例として光源から発する光の眼鏡反射がある。眼鏡反射の中には、角膜反射と区別が付きにくいくらいに小さなものがある。また、眼鏡反射の位置はヒトの頭部の動きにより大きく移動するので、眼鏡反射と角膜反射とを画像の特徴だけから区別するのは困難である。また、涙が多い人の場合には下まぶたと白目との境界が光ったり目頭の突起部が光ったりすることがあり、これらは角膜反射と酷似する。このようなノイズを角膜反射として誤検出してしまうと、角膜反射に基づく位置補正が正しく機能しなくなり、その結果、瞳孔を正確に検出することができない。そこで、瞳孔画像にノイズが含まれる場合でも瞳孔を正しく検出することが望まれている。
【課題を解決するための手段】
【０００６】
本発明の一側面に係る瞳孔検出システムは、第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出部であって、角膜球中心が、第１カメラと第１瞳孔画像から得られる角膜反射点とを通る軸と、第２カメラと第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出部と、複数の候補ベクトルの中から、瞳孔中心と、第１カメラおよび第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定部とを備える。【０００７】
本発明の一側面に係る瞳孔検出方法は、プロセッサを備える瞳孔検出システムにより実行される瞳孔検出方法であって、第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出ステップであって、角膜球中心が、第１カメラと第１瞳孔画像から得られる角膜反射点とを通る軸と、第２カメラと第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出ステップと、複数の候補ベクトルの中から、瞳孔中心と第１カメラおよび第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定ステップとを含む。【０００８】
本発明の一側面に係る瞳孔検出プログラムは、第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出部であって、角膜球中心が、第１カメラと第１瞳孔画像から得られる角膜反射点とを通る軸と、第２カメラと第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出部と、複数の候補ベクトルの中から、瞳孔中心と第１カメラおよび第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定部としてコンピュータを機能させる。【０００９】
このような側面においては、角膜球中心と瞳孔中心とを結ぶ候補ベクトルが複数個算出され、その中から、向きが正しいと推定される候補ベクトルが選択され、選択されたベクトルに対応する瞳孔中心に瞳孔が位置すると判定される。このように、複数の候補ベクトルのそれぞれについて方向を検査することで、瞳孔画像にノイズが含まれる場合でも瞳孔を正しく検出することができる。
【発明の効果】
【００１０】
本発明の一側面によれば、瞳孔画像にノイズが含まれる場合でも瞳孔を正しく検出することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る瞳孔検出システムを示す斜視図である。
【図２】カメラのレンズ部分を示す平面図である。
【図３】実施形態に係る画像処理装置のハードウェア構成を示す図である。
【図４】実施形態に係る瞳孔検出システムの機能構成を示すブロック図である。
【図５】実施形態に係る瞳孔検出システムの動作を示すフローチャートである。
【図６】差分画像の生成を示す図である。
【図７】角膜反射に基づく位置補正を説明するための図である。
【図８】角膜反射のノイズを示す図である。
【図９】実施形態に係る瞳孔検出システムで設定される座標系の位置関係を示す図である。
【図１０】候補ベクトル（角膜球中心−瞳孔ベクトル）の一例を示す図である。
【図１１】候補ベクトル（角膜球中心−瞳孔ベクトル）の別の例を示す図である。
【図１２】ベクトル条件を説明するための図である。
【図１３】視線の検出を説明するための図である。
【図１４】注視点検出のメカニズムを説明するための図である。
【図１５】視線のずれを説明するための図である。
【図１６】実施形態に係る瞳孔検出プログラムの構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一又は同等の要素には同一の符号を付し、重複する説明を省略する。
【００１３】
［瞳孔検出システムの構成］
まず、図１〜４を用いて、実施形態に係る瞳孔検出システム１の構成を説明する。瞳孔検出システム１は、対象者の瞳孔の位置を検出するコンピュータシステムであり、このシステムにより、本実施形態に係る瞳孔検出方法が実施される。対象者とは、瞳孔位置を検出する対象となる人であり、被験者ともいうことができる。瞳孔検出システム１および瞳孔検出方法の利用目的は何ら限定されず、例えば、よそ見運転の検出、運転者の眠気の検出、商品の興味の度合いの調査、コンピュータへのデータ入力などに瞳孔検出システム１を利用することができる。
【００１４】
図１に模式的に示すように、瞳孔検出システム１は、ステレオカメラとして機能する一対のカメラ（第１カメラおよび第２カメラ）１０と画像処理装置２０とを備える。以下では、必要に応じて、一対のカメラ１０を、対象者Ａの左側にある左カメラ１０Ｌと、対象者Ａの右側にある右カメラ１０Ｒとに区別する。本実施形態では、瞳孔検出システム１は、対象者Ａが見る対象であるディスプレイ装置３０をさらに備えるが、瞳孔検出システム１の利用目的は上記のように限定されないので、対象者Ａの視線の先にある物はディスプレイ装置３０に限定されず、例えば自動車のフロントガラスでもあり得る。したがって、ディスプレイ装置３０は瞳孔検出システム１における必須の要素ではない。それぞれのカメラ１０は画像処理装置２０と無線または有線により接続され、カメラ１０と画像処理装置２０との間で各種のデータまたは命令が送受信される。各カメラ１０に対しては予めカメラ較正が行われる。
【００１５】
カメラ１０は対象者Ａの瞳孔およびその周辺を撮影するために用いられる。一対のカメラ１０は水平方向に沿って所定の間隔をおいて配され、かつ、対象者Ａが眼鏡をかけているときの顔画像における反射光の写り込みを防止する目的で対象者Ａの顔より低い位置に設けられる。水平方向に対するカメラ１０の仰角は、瞳孔の確実な検出と対象者Ａの視野範囲の妨げの回避との双方を考慮して、例えば２０〜３５度の範囲に設定される。個々のカメラ１０に対しては予めカメラ較正が行われる。
【００１６】
本実施形態では、カメラ１０は、インターレーススキャン方式の一つであるＮＴＳＣ方式のカメラである。ＮＴＳＣ方式では、１秒間に３０枚得られる１フレームの画像データは、奇数番目の水平画素ラインで構成される奇数フィールドと、偶数番目の水平画素ラインで構成される偶数フィールドから構成され、奇数フィールドの画像と偶数フィールドの画像とが１／６０秒の間隔で交互に撮影されることで生成される。したがって、一つのフレームは、一対の奇数フィールドおよび偶数フィールドに相当する。カメラ１０は、画像処理装置２０からの命令に応じて対象者Ａを撮像し、画像データを画像処理装置２０に出力する。
【００１７】
カメラ１０のレンズ部分を図２に模式的に示す。この図に示すように、カメラ１０では、対物レンズ１１が円形状の開口部１２に収容され、開口部１２の外側に光源１３が設けられる。光源１３は、対象者Ａの顔に向けて照明光を照射するための機器であり、複数の発光素子１３ａと複数の発光素子１３ｂとから成る。発光素子１３ａは、出力光の中心波長が８５０ｎｍの半導体発光素子（ＬＥＤ）であり、開口部１２の縁に沿って等間隔でリング状に配される。発光素子１３ｂは、出力光の中心波長が９４０ｎｍの半導体発光素子であり、発光素子１３ａの外側に等間隔でリング状に配される。したがって、カメラ１０の光軸から発光素子１３ｂまでの距離は、該光軸から発光素子１３ａまでの距離よりも大きい。それぞれの発光素子１３ａ，１３ｂは、カメラ１０の光軸に沿って照明光を出射するように設けられる。なお、光源１３の配置は図２に示す構成に限定されず、カメラをピンホールモデルとみなすことができれば他の配置であってもよい。
【００１８】
画像処理装置２０は、カメラ１０の制御と、対象者Ａの瞳孔の検出とを実行するコンピュータである。画像処理装置２０は、据置型または携帯型のパーソナルコンピュータ（ＰＣ）により構築されてもよいし、ワークステーションにより構築されてもよいし、他の種類のコンピュータにより構築されてもよい。あるいは、画像処理装置２０は複数台の任意の種類のコンピュータを組み合わせて構築されてもよい。複数台のコンピュータを用いる場合には、これらのコンピュータはインターネットやイントラネットなどの通信ネットワークを介して接続される。
【００１９】
画像処理装置２０の一般的なハードウェア構成を図３に示す。画像処理装置２０は、オペレーティングシステムやアプリケーション・プログラムなどを実行するＣＰＵ（プロセッサ）１０１と、ＲＯＭおよびＲＡＭで構成される主記憶部１０２と、ハードディスクやフラッシュメモリなどで構成される補助記憶部１０３と、ネットワークカードあるいは無線通信モジュールで構成される通信制御部１０４と、キーボードやマウスなどの入力装置１０５と、ディスプレイやプリンタなどの出力装置１０６とを備える。
【００２０】
後述する画像処理装置２０の各機能要素は、ＣＰＵ１０１または主記憶部１０２の上に所定のソフトウェアを読み込ませ、ＣＰＵ１０１の制御の下で通信制御部１０４や入力装置１０５、出力装置１０６などを動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出しおよび書き込みを行うことで実現される。処理に必要なデータやデータベースは主記憶部１０２または補助記憶部１０３内に格納される。
【００２１】
図４に示すように、画像処理装置２０は機能的構成要素として画像取得部２１、第１判定部（ベクトル算出部および判定部）２２、および第２判定部（判定部）２３を備える。画像取得部２１は、カメラ１０の撮影タイミングとカメラ１０の光源１３の発光タイミングとを制御することで、カメラ１０から画像データを取得する機能要素である。第１判定部２２は、画像データから得られる候補ベクトルに基づいて瞳孔位置を判定する機能要素である。第２判定部２３は、第１判定部２２で正しいと判定された瞳孔位置に基づいて視線を算出し、その視線に基づいて瞳孔位置をさらに判定する機能要素である。視線とは、対象者の瞳孔中心と該対象者の注視点（対象者が見ている点）とを結ぶ線である。なお、「視線」という用語は、起点、終点、および方向の意味（概念）を含む。画像処理装置２０は、２段階の判定を通して正しい瞳孔位置を判定（推定）する。瞳孔位置の判定結果の出力先は何ら限定されない。例えば、画像処理装置２０は判定結果を画像、図形、またはテキストでモニタに表示してもよいし、メモリやデータベースなどの記憶装置に格納してもよいし、通信ネットワーク経由で他のコンピュータシステムに送信してもよい。
【００２２】
本明細書における「候補ベクトル」とは、角膜球中心と瞳孔中心とを結ぶベクトル（例えば、角膜球中心から瞳孔中心に至るベクトル）であり、したがって、「角膜球中心−瞳孔ベクトル」ともいうことができる。ただし、この候補ベクトルの端点である角膜球中心および瞳孔中心は計算により得られる座標であるので、対象者Ａの実際の角膜球中心および瞳孔中心の位置とは異なり得る。
【００２３】
［瞳孔検出方法］
次に、図５〜１５を用いて、瞳孔検出システム１の動作について説明するとともに、本実施形態に係る瞳孔検出方法について説明する。
【００２４】
（処理の概要）
瞳孔検出方法の概要を図５に示す。まず、画像取得部２１がそれぞれのカメラ１０から明瞳孔画像および暗瞳孔画像を取得する（ステップＳ１１）。続いて、第１判定部２２が明瞳孔画像および暗瞳孔画像に基づいて複数の候補ベクトルを算出する（ステップＳ１２、ベクトル算出ステップ）。第１判定部２２は、複数の候補ベクトルの中から、下記２項目から成る条件（本実施形態ではこれが「ベクトル条件」である）を満たす候補ベクトルを選択することで、１以上の瞳孔候補（正しいと推定される瞳孔位置）を特定する（ステップＳ１３、判定ステップ）。
・ベクトル条件（１）…候補ベクトルと基準線との角度が所定の閾値以下である。
・ベクトル条件（２）…候補ベクトルの長さが所定の範囲内である。
【００２５】
第１判定部２２は、両方の瞳孔について、ベクトル条件を満たす瞳孔位置を特定する（ステップＳ１４参照）。
【００２６】
続いて、第２判定部２３が１以上の左瞳孔候補（左瞳孔候補群）と１以上の右瞳孔候補（右瞳孔候補群）とに基づいて更なる判定を行う。具体的には、第２判定部２３は、左瞳孔候補群から選択した一つの左瞳孔候補に基づいて左視線を算出すると共に、右瞳孔候補群から選択した一つの右瞳孔候補に基づく右視線を算出する（ステップＳ１５）。そして、第２判定部２３は下記条件（本明細書ではこれを「視線条件」という）を満たす左視線および右視線を選択する（ステップＳ１６）。
・視線条件…対象者の高さ方向における左視線と右視線とのずれが所定の閾値以下である。
【００２７】
第２判定部２３は、左瞳孔候補と右瞳孔位置とのすべての組合せについてステップＳ１５，Ｓ１６の処理を実行し（ステップＳ１７参照）、最終的な判定結果を出力する（ステップＳ１８）。
【００２８】
ｉ番目のフィールドの画像が撮影されてから（ｉ＋１）番目のフィールドの画像が撮影されるまでの間に対象者Ａの頭部が動かなければ、図６に示すように、単純に明瞳孔画像および暗瞳孔画像の差を取ることで、瞳孔部分（図６における符号Ｐ）が浮かび上がった差分画像を生成することができる。しかし、ｉ番目のフィールドの画像が撮影されてから（ｉ＋１）番目のフィールドの画像が撮影されるまでの間のわずかな時間に対象者Ａの頭部が動くと、これら２画像の間で瞳孔の位置にずれが生じ、その結果、良好な差分画像を得ることができない。そこで、差分画像を得る前に、明瞳孔画像および暗瞳孔画像に対して角膜反射に基づく位置補正が行われる。
【００２９】
角膜反射に基づく位置補正では、ｉ番目のフィールド（画像）と（ｉ＋１）番目のフィールド（画像）のそれぞれから検出した角膜反射点Ｒの位置が一致するようにｉ番目のフィールド（画像）をずらしてから（図７の矢印を参照）、２画像の差分が取られる。図７の下段に示すこの差分画像から瞳孔Ｐを検出することができる。
【００３０】
しかし、明瞳孔画像および暗瞳孔画像には、光の眼鏡反射などの様々なノイズが載りやすい。例えば図８に示すように、真の角膜反射点Ｒと区別が付きにくいくらいに小さなノイズＲｆが瞳孔画像に写り得る。そのノイズＲｆの一つを正しい角膜反射点として位置補正が為されると、正しい瞳孔位置を求めることができない。瞳孔検出システム１の目的は、このようなノイズが瞳孔画像に写った場合でも正しい瞳孔位置を特定することである。
【００３１】
（瞳孔画像の取得）
眼に入った光は網膜で乱反射し、反射光のうち瞳孔を通り抜けた光は強い指向性をもって光源へ戻る性質がある。カメラの開口部近くにある光源が発光した時にカメラを露光させると、網膜で反射した光の一部がその開口部に入るため、瞳孔が瞳孔周辺よりも明るく写った画像を取得することができる。この画像が明瞳孔画像である。これに対して、カメラの開口部から離れた位置にある光源が発光した時にカメラを露光させると、眼から戻ってきた光はカメラの開口部にほとんど戻らないため、瞳孔が暗く写った画像を取得することができる。この画像が暗瞳孔画像である。また、透過率が高い波長の光を眼に照射すると、網膜での光の反射が多くなるので瞳孔が明るく写り、透過率が低い波長の光を眼に照射すると、網膜での光の反射が少なくなるので瞳孔が暗く写る。
【００３２】
本実施形態では、透過率が高い波長の光（中心波長が８５０ｎｍ）を発する発光素子１３ａが開口部１２に隣接した位置に設けられ、眼の透過率が低い波長の光（中心波長が９４０ｎｍ）を発する発光素子１３ｂを開口部１２から離れた位置に設けられる。画像取得部２１は、カメラ１０の奇数フィールドに合わせて発光素子１３ａを点灯させて明瞳孔画像を撮影し、カメラ１０の偶数フィールドに合わせて発光素子１３ａを点灯させて暗瞳孔画像を撮影する。画像取得部２１は二つのカメラ１０の間で作動タイミングをわずかにずらし、個々のカメラ１０の露光時間はそのずらし時間以下に設定される。画像取得部２１は、各カメラ１０の露光時間中に、対応する発光素子１３ａおよび発光素子１３ｂを交互に発光させることで、一方のカメラ１０の光源１３からの光が他方のカメラ１０の画像に影響を与えないようにする（クロストークが起こらないようにする）。
【００３３】
画像取得部２１は、これらの一連の制御により得られる明瞳孔画像および暗瞳孔画像を取得する。一方のカメラ１０から得られる明瞳孔画像または暗瞳孔画像は第１瞳孔画像に相当し、他方のカメラ１０から得られる明瞳孔画像または暗瞳孔画像は第２瞳孔画像に相当する。得られる画像データは、奇数フィールド又は偶数フィールドのみに有効画素を有しているため、画像取得部２１は、隣接する有効画素の画素ラインの輝度平均をそのライン間の画素値に埋め込むことによって、明瞳孔画像または暗瞳孔画像を生成する。画像取得部２１は明瞳孔画像および暗瞳孔画像を第１判定部２２に出力する。
【００３４】
（角膜反射に基づく位置補正）
第１判定部２２は、画像取得部２１から入力された明瞳孔画像および暗瞳孔画像のそれぞれから角膜反射点の１以上の候補（角膜反射候補点）を検出する。具体的には、第１判定部２２は１枚の画像に対してＰタイル法による２値化とラベリングとを行い、形状や輝度平均などの情報に基づいてその画像から１以上の角膜反射候補点を選択する。このような処理により、第１判定部２２は明瞳孔画像および暗瞳孔画像のそれぞれから、１以上の（例えば複数の）角膜反射候補点を得る。一つの瞳孔画像から取得する角膜反射候補点の最大数（例えば２、３、５など）が予め設定されていてもよい。例えば、第１判定部２２は図８に示す画像から、符号ＲおよびＲｆで示される三つの角膜反射候補点を検出する。
【００３５】
続いて、第１判定部２２は明瞳孔画像および暗瞳孔画像から角膜反射候補点を一つずつ選択し、選択した二つの角膜反射候補点に基づいて２画像間での角膜反射の移動量を位置補正量として計算する。続いて、第１判定部２２はそれら二つの角膜反射候補点が一致するように、前フィールド（ｉ番目のフィールド）の画像を、次フィールド（（ｉ＋１）番目のフィールド）の画像に位置補正量だけずらした上で、これら２画像から差分画像を生成する。そして、第１判定部２２は一致させた角膜反射候補点の位置を取得する。
【００３６】
（瞳孔位置および角膜反射位置の算出）
続いて、第１判定部２２は差分画像から瞳孔位置の候補を特定する。具体的には、第１判定部２２は、前フレームと輝度が大きく変化しないことを利用して、前フレームで検出された瞳孔の輝度平均を利用して、その平均輝度の半分の値を閾値として差分画像を２値化し、ラベリングを行う。続いて、第１判定部２２は、瞳孔らしい面積、サイズ、面積比、正方形度、および瞳孔特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補を選択し、各瞳孔候補の中心座標を算出する。したがって、一致させた角膜反射候補点の座標に対して１以上の瞳孔候補の座標が得られる場合がある。
【００３７】
一方、一致させた角膜反射候補点の座標に対して瞳孔候補の座標が一つも得られない場合もあり得る。それは、対応させた一方もしくは両方の角膜反射候補点が偽の角膜反射点であった場合に特に起こり得る。この場合には、第１判定部２２は、一致させた角膜反射候補点を除外してもよい。後述するステレオ法（ステレオマッチング）を実行する前に、偽の角膜反射と推定される角膜反射候補点を除外することで、後続の計算時間を短縮することができる。
【００３８】
続いて、第１判定部２２は各瞳孔候補の３次元座標を求める。具体的には、第１判定部２２はステレオ法を用いて、算出した瞳孔中心座標から左右の瞳孔の３次元位置を計算する。ステレオ法とは、カメラのレンズの焦点距離、画像中心、画素サイズなどの内部パラメータと、カメラの位置や姿勢等の外部パラメータとを予め計測しておき、複数台のステレオカメラで対象物を撮影したときに、画像中の点の座標を基に、内部パラメータおよび外部パラメータを用いてその点の空間上の位置を決定する方法である。
【００３９】
第１判定部２２がステレオ法を用いて瞳孔の３次元座標を計算する際には、図９に示すような座標系を用いる。同図に示す世界座標系（ＸＷ，ＹＷ，ＺＷ）は、２台のカメラ１０が共有する原点ＯＷが例えばディスプレイ装置３０の画面中央に位置する座標系である。カメラ座標系（Ｘ，Ｙ，Ｚ）は、その原点Ｃがカメラ１０の光学中心とされ、Ｚ軸が光学中心から画像面に垂直に引いた光軸と平行とされた座標系である。画像座標系（ＸＧ，ＹＧ）は、撮像素子が置かれる画像面に沿ってＸＹ平面と平行にされ、光軸と画像面の交点（画像中心）を原点Ｃｉとする座標系である。点Ｐが目標点の座標とすると、カメラ１０を用いた際の画像座標系への投影点（Ｘｄ，Ｙｄ）は、画像のゆがみにより理想的な投影点（Ｘｕ，Ｙｕ）からずれることになる。したがって、ステレオ法を用いた３次元位置計測を精度良く行うためには、目標点Ｐの世界座標とその画像座標との対応づけを記録したキャリブレーションデータを予め取得する必要がある。例えば、外部パラメータとしての世界座標に対するカメラ座標系の平行移動ベクトルおよび世界座標系に対するカメラ座標系の回転行列や、内部パラメータとしての焦点距離、画像中心座標、スケール係数、レンズひずみ係数、撮像素子間隔等がキャリブレーションデータとして予め取得され、第１判定部２２に記憶される。
【００４０】
第１判定部２２は、２台のカメラ１０からの出力データを基に検出した画像座標系における瞳孔中心座標と、世界座標系における瞳孔中心座標との関係式を、キャリブレーションデータを参照しながら取得する。次に、第１判定部２２は、２つの関係式から世界座標系における対象者Ａの瞳孔の３次元座標を求める。同様にして、第１判定部２２は、対象者Ａの左右の瞳孔の３次元座標を求めることができる。
【００４１】
また、第１判定部２２は瞳孔候補の３次元座標の算出と同様の手法を用いて、左カメラ１０Ｌに対応する（左カメラ１０Ｌの画像から得られる）角膜反射点（角膜反射候補点）と右カメラ１０Ｒに対応する（右カメラ１０Ｒの画像から得られる）角膜反射点（角膜反射候補点）との中心座標を算出する。偽の角膜反射と推定される角膜反射候補点を予め除外する処理を行った場合には、第１判定部２２は、除外されることなく残った角膜反射点（角膜反射候補点）についてのみ中心座標を算出すればよい。
【００４２】
（候補ベクトルの算出）
続いて、第１判定部２２は候補ベクトルを求める。図１０，１１を参照しながらこの計算について説明する。第１判定部２２は、左カメラ１０Ｌのレンズ中心（レンズ中心以外の点でもよい）と左カメラ１０Ｌに対応する角膜反射点（角膜反射候補点）ＲＬとを通る直線（軸）ＬＬと、右カメラ１０Ｒのレンズ中心（レンズ中心以外の点でもよい）と右カメラ１０Ｒに対応する角膜反射点（角膜反射候補点）ＲＲとを通る直線（軸）ＬＲとの交点Ｃの３次元座標を角膜球中心の３次元座標として設定する。そして、第１判定部２２は、角膜球中心Ｃおよび瞳孔中心Ｐの３次元座標に基づいて候補ベクトルＶを求める。
【００４３】
第１判定部２２は、明瞳孔画像および暗瞳孔画像から選択した一組の角膜反射候補点から１以上の瞳孔候補を検出し得るので、第１判定部２２は当該一組の角膜反射候補点から１以上の候補ベクトルを得る。一方、第１判定部２２は、除外した角膜反射候補点に対応する候補ベクトルは生成しない。すなわち、第１判定部２２は、除外されなかった角膜反射候補点に対応する候補ベクトルのみを算出すればよいので、その分だけ計算時間を短縮することができる。第１判定部２２は、明瞳孔画像の角膜反射候補点と暗瞳孔画像の角膜反射候補点とのすべての組合せについて上記の処理を実行することで、複数の候補ベクトルを求める。例えば、左カメラ１０Ｌに関して、明瞳孔画像から２個の角膜反射候補点を検出し、暗瞳孔画像から３個の角膜反射候補点を検出したとする。この場合に、明瞳孔画像と暗瞳孔画像との双方に真の角膜反射点が含まれているとすると、第１判定部２２は左カメラ１０Ｌに関して、６個（＝２×３）の差分画像に基づいて最多で６個、最少で１個の候補ベクトルを算出し得る。また、右カメラ１０Ｒに関して、明瞳孔画像および暗瞳孔画像のそれぞれから２個ずつ角膜反射候補点を検出したとする。この場合には、明瞳孔画像と暗瞳孔画像との双方に真の角膜反射点が含まれているとすると、第１判定部２２は右カメラ１０Ｒに関して、４個（＝２×２）の差分画像に基づいて最多で４個、最少で１個の候補ベクトルを算出し得る。この場合には結局、ステレオマッチングにより最多で２４（＝６×４）通り、最少で１（＝１×１）通りの候補ベクトルが得られる。
【００４４】
（候補ベクトルの判定）
得られる候補ベクトルの中には、図１０に示すように正しいと思われる候補ベクトルＶもあれば、図１１に示すように、外乱光源ＤＬによる角膜反射を基に算出される候補ベクトル（正しいとはいえない候補ベクトル）Ｖもある。第１判定部２２は各候補ベクトルがベクトル条件を満たすか否かを判定し、ベクトル条件を満たす候補ベクトルのみを選択する。上述した通り、ベクトル条件は、候補ベクトルと基準線との角度が所定の閾値以下であり、かつ、候補ベクトルの長さが所定の範囲内である、という条件である。
【００４５】
図１２の例では、ベクトル条件で用いる基準線は、２台のカメラ１０のレンズ中心間の中点（重心）Ｏｍと瞳孔中心Ｐとを結ぶ線ＯｍＰである。ベクトル条件で用いる閾値αは、３０度、４０度、または５０度でもよいし、他の値でもよい。第１判定部２２は、候補ベクトルＶと基準線ＯｍＰとの成す角度が閾値α以下であればその候補ベクトルＶを選択し、当該角度が閾値αを超える場合には、その候補ベクトルＶを除外する。なお、図１２では説明のために候補ベクトルＶをカメラ１０の方向に延ばして示している。
【００４６】
なお、基準線はどちらか一方のカメラ１０のレンズ中心と瞳孔中心Ｐとを結ぶ線であってもよい。いずれにしても、基準線は、瞳孔中心と少なくとも１台のカメラ１０の位置とに基づいて設定される。
【００４７】
また、第１判定部２２は候補ベクトルＶの長さ、すなわち瞳孔中心と角膜球中心との距離が所定の範囲にあるか否かを判定する。例えば、範囲の下限値および上限値はそれぞれｄ−１．５（ｍｍ）、ｄ＋１．５（ｍｍ）である。ここで、値ｄは、眼鏡反射や偽の角膜反射が生じない環境下で１以上のユーザについて計測した、角膜球中心と瞳孔中心との距離である。なお、範囲の下限値はｄ−１．０（ｍｍ）またはｄ−２．０（ｍｍ）でもよく、範囲の上限値はｄ＋１．０（ｍｍ）またはｄ＋２．０（ｍｍ）でもよい。第１判定部２２は、候補ベクトルＶの長さがその範囲内であればその候補ベクトルＶを選択し、当該長さがその範囲内でない場合には、その候補ベクトルＶを除外する。
【００４８】
第１判定部２２は、ベクトル条件を満たす候補ベクトルＶに対応する瞳孔中心の３次元座標を瞳孔候補として特定する。第１判定部２２は左右の瞳孔のそれぞれについて瞳孔候補（以下では、左瞳孔候補および右瞳孔候補ともいう）を特定し、その瞳孔候補のデータを第２判定部２３に出力する。ベクトル条件を満たす候補ベクトルに対応する瞳孔中心を特定するということは、その瞳孔中心に瞳孔が位置すると判定することを意味する。
【００４９】
（視線の検出）
第２判定部２３は左右の瞳孔の３次元座標に基づいて視線を検出する。図１３に示すように、瞳孔の３次元位置Ｐに基づいて、カメラ１０の開口部１２の中心を原点Ｏとし、その原点Ｏと瞳孔中心Ｐを結ぶ基準線ＯＰを法線とする仮想視点平面Ｘ’−Ｙ’を考える。ここで、Ｘ’軸は、世界座標系のＸＷ−ＺＷ平面と仮想視点平面との交線に相当する。
【００５０】
第２判定部２３は、画像面ＳＧにおける角膜反射点Ｇから瞳孔中心ＰまでのベクトルｒＧを算出し、そのベクトルｒＧを、距離ＯＰから求められたカメラの拡大率を用いて実寸に換算したベクトルｒに変換する。このとき、各カメラ１０をピンホールモデルと考え、角膜反射点Ｇと瞳孔中心Ｐとが、仮想視点平面Ｘ’−Ｙ’と平行な平面上にあると仮定する。つまり、第２判定部２３は、仮想視点平面と平行であって瞳孔Ｐの３次元座標を含む平面上において、瞳孔中心Ｐと角膜反射点Ｇの相対座標をベクトルｒとして算出し、このベクトルｒは角膜反射点Ｇから瞳孔中心Ｐまでの実距離を表す。
【００５１】
続いて、第２判定部２３は、対象者Ａの仮想視点平面上の注視点Ｔに関して、直線ＯＴの水平軸Ｘ’に対する傾きφが、ベクトルｒの画像面上の水平軸ＸＧに対する傾きφ’と等しいと仮定する。さらに、第２判定部２３は、対象者Ａの視線ベクトル、すなわち、瞳孔中心Ｐと注視点Ｔとを結ぶベクトルＰＴと、基準線ＯＰとの成す角θを、ゲイン値ｋを含むパラメータを使った下記式（１）により計算する。
θ＝ｆ１（ｒ）＝ｋ×｜ｒ｜    …（１）
【００５２】
このような角度φ，θの計算は、瞳孔中心Ｐの存在する平面上のベクトルｒを仮想視点平面上で拡大したものがそのまま対象者Ａの注視点に対応するとみなすことにより行われる。より詳しくは、対象者Ａの視線ＰＴの基準線ＯＰに対する角度θは、瞳孔中心と角膜反射の距離｜ｒ｜との間で線形関係を有すると仮定する。
【００５３】
角度θと距離｜ｒ｜とは線形近似できるという仮定、および二つの傾きφ，φ’が等しいという仮定を利用することで、（θ，φ）と（｜ｒ｜，φ’）とを１対１に対応させることができる。このとき、第２判定部２３は、カメラ１０の開口部１２の中心に設定された原点Ｏと、仮想視点平面上の注視点Ｔとを結ぶベクトルＯＴを次式（２）により得る。なお、ベクトルＯＰはカメラ１０から得られる。
【数１】
0006548171.tif 000002
【００５４】
最後に、第２判定部２３は視線ベクトルＰＴと視対象平面（ディスプレイ装置３０）との交点である注視点Ｑを次式（３）で求める。
Ｑ＝ｎＰＴ＋Ｐ    …（３）
【００５５】
しかし、一般的にヒトの視軸（瞳孔中心および中心窩を通る軸）と光軸（角膜からレンズの中心へと延びる法線）との間にはずれがあり、対象者Ａがカメラを注視した際にも角膜反射と瞳孔中心とは一致しない。そこで、これを補正する原点補正ベクトルｒ０を定義し、カメラ画像から実測した角膜反射−瞳孔中心ベクトルをｒ’とすると、ベクトルｒはｒ＝ｒ’−ｒ０で表されるので、式（１）は下記式（４）のように書き換えられる。
θ＝ｋ×｜ｒ’−ｒ０｜    …（４）
計測されたｒ’に対して原点補正を行うことで、（θ，φ）と（｜ｒ｜，φ’）とを１対１に対応させることができ、精度の高い注視点検出を行うことができる。
【００５６】
このような角度φ，θの計算は、瞳孔中心Ｐの存在する平面上のベクトルｒ（＝ｒ’−ｒ０）を仮想視点平面上で拡大したものがそのまま対象者Ａの注視点に対応するとみなすことにより行われている。より詳しくは、対象者Ａの視線ＰＴの基準線ＯＰに対する角度θは、瞳孔中心と角膜反射の距離の修正値｜ｒ’−ｒ０｜との間で線形関係を有すると仮定している。なお、関数ｆ１に含まれる原点補正ベクトルｒ０には、対象者Ａがカメラを見たとき（θ＝０）の実寸の角膜反射−瞳孔中心間のベクトルが零ではないために、この角膜反射−瞳孔中心間のベクトルとして、ベクトルｒ０が設定される。ここで、上記ゲイン値ｋ及び原点補正ベクトルｒ０は、各対象者Ａや左右の眼球によって異なるため較正を行う必要がある。そこで、ゲイン値ｋ及び原点補正ベクトルｒ０には、予め設定された初期値に対して後述するパラメータ補正処理によって補正された値が使用される。瞳孔中心と角膜球中心の距離と視軸（基準値）は、注視点検出の一点較正時に求める。
【００５７】
さらに、第２判定部２３は、２台のカメラ１０の画像に対応して計算された角度φ，θであるφ１，φ２，θ１，θ２を参照して、対象者Ａのディスプレイ装置３０の画面上の注視点を検出する。ここで、注視点検出のメカニズムを説明するために図１４に示すような座標系を定義する。２台のステレオカメラ１０の位置に対応した原点Ｏ１’，Ｏ２’を有する２つの仮想視点平面Ｈ１，Ｈ２と、瞳孔中心Ｐを中心とした半径を任意とした仮想視点球面Ｓを定義する。２つの仮想視点平面Ｈ１，Ｈ２は、それぞれ、直線ＰＯ１’，ＰＯ２’に対して垂直な平面である。そして、瞳孔中心Ｐとディスプレイ画面上の注視点Ｑを通る直線（視線）と仮想視点球面Ｓとの交点をＧＳ、瞳孔中心Ｐと原点Ｏ１’を通る直線と仮想視点球面Ｓとの交点をＯ１、瞳孔中心Ｐと原点Ｏ２’を通る直線と仮想視点球面Ｓとの交点をＯ２とする。なお、視線ＰＱと仮想視点平面Ｈ１との交点をＧ１とすると、直線Ｏ１’Ｇ１と仮想視点平面Ｈ１との水平軸の成す角がφ１となる。同様に、視線ＰＱと仮想視点平面Ｈ２との交点をＧ２とすると、直線Ｏ２’Ｇ２と仮想視点平面Ｈ２との水平軸の成す角がφ２となる。さらに、仮想視点球面Ｓ上において、点Ｏ１における点Ｏ１を通る水平面と球面Ｓとの交線（曲線）と、曲線Ｏ１ＧＳとの成す角は、上記角度φ１と等しくなる。同様に、仮想視点球面Ｓ上において、点Ｏ２における点Ｏ２を通る水平面と仮想視点球面Ｓとの交線（曲線）と、曲線Ｏ２ＧＳとの成す角は、上記角度φ２と等しくなる。また、上述したように、点Ｐ，Ｏ１，Ｏ１’は同じ直線Ｌ１上に存在し、点Ｐ，Ｏ２，Ｏ２’は同じ直線Ｌ２上に存在するので、直線Ｌ１と視線の成す角がθ１となり、直線Ｌ２と視線の成す角がθ２となる。
【００５８】
第２判定部２３は、上記のような関係を用いることにより、予め既知である原点Ｏ１’，Ｏ２’の位置座標、及びディスプレイ装置３０の位置及び向きのデータを参照しながら、画面上の注視点を算出することができる。すなわち、２台のカメラ１０のカメラ画像によって計算された角度φ１，φ２，θ１，θ２から、仮想視点球面Ｓ上の点ＧＳ，Ｏ１，Ｏ２の相対的位置関係を取得することができる。従って、第２判定部２３は、既知である原点Ｏ１’，Ｏ２’の座標と、既に計算された瞳孔中心Ｐの座標から、一意に視線ＰＧＳを求めることができ、その視線ＰＧＳとディスプレイ装置３０の画面との交点を計算することにより注視点Ｑを検出することができる。なお、角度φ１，θ１から求められる視線ＰＧＳと、角度φ２，θ２から求められる視線ＰＧＳがずれている場合にはそれらを平均したものを最終的な視線ベクトルとして計算することもできる。
【００５９】
ここで、第２判定部２３が視線の計算に用いる関数ｆ１には、パラメータとしてゲイン値ｋ及び原点補正ベクトルｒ０が含まれている。このゲイン値ｋは、上記式（４）を見ても分かるように、角膜反射−瞳孔中心ベクトルｒ’を調整後のベクトルｒ＝ｒ’−ｒ０の大きさと視線を示す角度θが線形関係にあると仮定して、そのベクトルｒから角度θを求める時に使用する倍率である。理想的には、角度θとベクトル｜ｒ’｜とが線形関係にあれば、ゲイン値ｋさえ求まれば角度θが計算できるはずである。言い換えれば角度θ＝０のとき、つまり対象者Ａがカメラを注視したときはベクトル｜ｒ’｜＝０になるはずである。しかしながら、実際には眼球の視軸（視線）と光軸とは一致せず、角度θ＝０のときベクトル｜ｒ’｜≠０となる。さらに、対象者Ａが変われば角度θ＝０のときのベクトル｜ｒ｜は異なる。なお、眼球の視軸とは、対象者の眼球の中心窩と対象者の注視点とを結ぶ直線である。
【００６０】
以下、ｋ及びベクトルｒ０の求め方について説明する。式（４）より、ベクトルθ１，θ２は、以下の式（５），（６）でそれぞれ表される。
θ１＝ｋｒ１＝ｋ×（ｒ´１―ｒ０）    …（５）
θ２＝ｋｒ２＝ｋ×（ｒ´２―ｒ０）    …（６）
【００６１】
なお、これらの式において原点補正ベクトルｒ０は個々の眼球において一意に決定されるため、カメラに関係なくｒ０とした。また、２台のカメラの間隔は角度で表され、次式（７）で定義できる。
【数２】
0006548171.tif 000003
【００６２】
式（５）〜（７）から、次式（８）が得られ、この式（８）から係数ｋ（較正値）が算出される。
【数３】
0006548171.tif 000004
【００６３】
２台のカメラの位置は既知であるから、∠Ｏ１ＰＯ２は常に既知である。したがって、対象者が特定の位置を注視しなくても、各カメラにおいて実測されるベクトルｒ’から係数ｋを算出することができる。
【００６４】
さらに、第２判定部２３は、１点較正法により、原点補正ベクトルｒ０を求める。１点較正法による原点補正ベクトルｒ０の求め方は、具体的には次の通りである。まず、第２判定部２３は、ディスプレイ装置３０の表示画面上の任意の位置に１点の視標（規定点）を表示させて、対象者Ａに当該視標を注視させる。この状態で、第２判定部２３は、投影仮想視点平面上の注視点を検出する。次に、第２判定部２３は、検出した注視点と視標の座標を投影仮想視点平面上に投影した点との差分を補正量として算出する。そして、第２判定部２３は、この補正量に基づいて原点補正ベクトルｒ０を決定する。これにより、第２判定部２３は、式（４）による高精度な注視点検出を行うことができる。
【００６５】
このように注視点を検出することで、第２判定部２３は対象者Ａの視線を検出することができる。第２判定部２３は、このように対象者Ａの視線を検出した時点で、その検出結果を出力してもよい。この場合には、第２判定部２３は視線検出部としても機能し、瞳孔検出システム１は視線検出システムとしても機能する。
【００６６】
ヒトが両眼で一点を見ている時、両眼の視線は一点で重なるのが理想である。このとき、左右の視線の交点と右眼の瞳孔中心（右瞳孔中心）と左眼の瞳孔中心（左瞳孔中心）の３点により平面が構成される。この性質を利用して、第２判定部２３は、左右の視線が正しく検出されているか、さらに、その前提である瞳孔中心座標が正しかったかを判定してもよい。しかし、実際にはヒトの２本の視線がわずかにずれていることもあり得るし、装置の誤差も起こりえるので、一般的には、図１５に示すように２本の視線は、対象者Ａの高さ方向に沿ってずれる。右瞳孔中心および左瞳孔中心をそれぞれＰＲ，ＰＬとし、右眼および左眼から延びる視線の単位方向ベクトルをそれぞれｉＲＧ，ｉＬＧとする。また、右瞳孔中心から左瞳孔中心へ延びる単位方向ベクトルをｉＲＬとし、左瞳孔中心から右瞳孔中心へ延びる単位方向ベクトルをｉＬＲとする。さらに、２本の視線が互いに最も接近するときの各視線上の点をそれぞれＧＲ，ＧＬとする。このとき、３点ＰＲ，ＰＬ，ＧＲを通る平面の法線単位ベクトルｉＲは、外積を示す下記式（９）で表される。
ｉＲ＝ｉＲＧ×ｉＲＬ    …（９）
また、３点ＰＲ，ＰＬ，ＧＬが通る平面の法線単位ベクトルｉＬは同様に下記式（１０）で求まる。
ｉＬ＝ｉＬＧ×ｉＬＲ    …（１０）
【００６７】
両眼の視線が交わる場合には二つの法線単位ベクトルｉＲ，ｉＬは一致するので、下記式（１１）により得られる角度δは零になる。
【数４】
0006548171.tif 000005
【００６８】
この理論を利用して、第２判定部２３は、二つの法線単位ベクトルｉＲ，ｉＬの成す角度δが所定の範囲にある場合に（閾値をδ０として、｜δ｜≦δ０である場合に）左右の視線が正しいと判定し、さらに、その視線に対応する左右の瞳孔位置の組合せを選択する。一方、その角度δが閾値δ０を超える場合には、第２判定部２３は左右の視線が正しくないと判定し、その視線に対応する左右の瞳孔位置の組合せを除外する。｜δ｜≦δ０であるということは、対象者の高さ方向における左視線と右視線とのずれが所定の閾値以下であることを意味する。
【００６９】
第２判定部２３は、左瞳孔候補と右瞳孔候補のすべての組合せについて上記の処理を実行することで、正しいと推定される左右の瞳孔位置の組合せを選択する。この処理は、正しいと判定された左視線および右視線に対応する左瞳孔中心および右瞳孔中心に、左瞳孔および右瞳孔がそれぞれ位置すると判定することを意味する。なお、第２判定部は、瞳孔位置について判定結果を出力することなく、正しいと判定した左視線および右視線のみを最終の判定結果として出力してもよい。この場合も、第２判定部２３は視線検出部としても機能し、瞳孔検出システム１は視線検出システムとしても機能する。
【００７０】
あるいは、第２判定部２３は、ディスプレイ装置３０上の注視点を検出した場合に、左右の注視点の間の距離に基づいて視線（および瞳孔位置）が正しいか否かを判定してもよい。具体的には、第２判定部２３は、角度δを計算する前に求まった左右の視線と画面平面との交点を注視点として求め、個々の右眼の注視点と個々の左眼の注視点との間の距離を総当たりで求める。そして、第２判定部２３は、双方の距離が所定の閾値以下であれば左右の視線が正しいと判定する。
【００７１】
［瞳孔検出プログラム］
次に、図１６を用いて、画像処理装置２０を実現するための瞳孔検出プログラムＰ１を説明する。
【００７２】
瞳孔検出プログラムＰ１は、メインモジュールＰ１０、画像取得モジュールＰ１１、第１判定モジュールＰ１２、および第２判定モジュールＰ１３を備える。
【００７３】
メインモジュールＰ１０は、瞳孔検出機能を統括的に制御する部分である。画像取得モジュールＰ１１、第１判定モジュールＰ１２、および第２判定モジュールＰ１３を実行することにより実現される機能はそれぞれ、上記の画像取得部２１、第１判定部２２、および第２判定部２３の機能と同様である。
【００７４】
瞳孔検出プログラムＰ１は、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。また、瞳孔検出プログラムＰ１は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００７５】
以上説明したように、本発明の一側面に係る瞳孔検出システムは、第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出部であって、角膜球中心が、第１カメラと第１瞳孔画像から得られる角膜反射点とを通る軸と、第２カメラと第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出部と、複数の候補ベクトルの中から、瞳孔中心と、第１カメラおよび第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定部とを備える。
【００７６】
本発明の一側面に係る瞳孔検出方法は、プロセッサを備える瞳孔検出システムにより実行される瞳孔検出方法であって、第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出ステップであって、角膜球中心が、第１カメラと第１瞳孔画像から得られる角膜反射点とを通る軸と、第２カメラと第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出ステップと、複数の候補ベクトルの中から、瞳孔中心と第１カメラおよび第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定ステップとを含む。
【００７７】
本発明の一側面に係る瞳孔検出プログラムは、第１カメラにより撮影された対象者の第１瞳孔画像と、第２カメラにより撮影された該対象者の第２瞳孔画像とに基づいて、角膜球中心と瞳孔中心とを結ぶ候補ベクトルをステレオ法により複数個算出するベクトル算出部であって、角膜球中心が、第１カメラと第１瞳孔画像から得られる角膜反射点とを通る軸と、第２カメラと第２瞳孔画像から得られる角膜反射点とを通る軸との交点である、該ベクトル算出部と、複数の候補ベクトルの中から、瞳孔中心と第１カメラおよび第２カメラの少なくとも一方の位置とに基づいて設定される基準線との成す角度が所定の閾値以下であるというベクトル条件を満たす候補ベクトルを選択し、選択した候補ベクトルに対応する瞳孔中心に瞳孔が位置すると判定する判定部としてコンピュータを機能させる。
【００７８】
このような側面においては、角膜球中心と瞳孔中心とを結ぶ候補ベクトルが複数個算出され、その中から、向きが正しいと推定される候補ベクトルが選択され、選択されたベクトルに対応する瞳孔中心に瞳孔が位置すると判定される。このように、複数の候補ベクトルのそれぞれについて方向を検査することで、瞳孔画像にノイズが含まれる場合でも瞳孔を正しく検出することができる。
【００７９】
このような効果についてさらに説明する。第１瞳孔画像および第２瞳孔画像の少なくとも一方で複数の角膜反射点が検出された場合、すなわち瞳孔画像内にノイズが生じた場合には、まずは双方の画像における角膜反射点を総当たりで組み合わせて複数の候補ベクトルを求め、各候補ベクトルの方向および長さを検査することで、ベクトル条件を満たす候補ベクトルのみを選択する。この選択は、ベクトル条件を満たさない候補ベクトルを除外することを意味するから、結果として瞳孔位置の誤検出が少なくなる。すなわち、瞳孔を正しく検出することができる。
【００８０】
また、上記側面においては、カメラに取り付けられた光源による角膜反射と、カメラから離れた位置に取り付けられた光源による角膜反射とを区別することができる。
【００８１】
他の側面に係る瞳孔検出システムでは、判定部が、基準線との成す角度が所定の閾値以下であり、かつ長さが所定の範囲内であるというベクトル条件を満たす候補ベクトルを選択してもよい。
【００８２】
このように、複数の候補ベクトルのそれぞれについて向きおよび長さの双方を検査することで、瞳孔画像にノイズが含まれる場合でも瞳孔をより正しく検出することができる。
【００８３】
他の側面に係る瞳孔検出システムでは、ベクトル算出部が、角膜反射候補点を用いて瞳孔中心を算出する処理を、候補ベクトルを算出する前に実行し、角膜反射候補点を用いて瞳孔中心を算出できなかった場合には、該角膜反射候補点を除外し、除外されなかった角膜反射候補点に対応する候補ベクトルのみを算出してもよい。
【００８４】
この場合には、候補ベクトルを求める前に、瞳孔中心を算出できなかった角膜反射候補点（すなわち、正しくないと推定される角膜反射候補点）が除外されるので、明らかに誤りであると予想される候補ベクトルが算出されない。この処理により候補ベクトルの個数を抑えることができるので、その分だけ瞳孔検出に要する時間を短縮することができる。
【００８５】
他の側面に係る瞳孔検出システムでは、ベクトル算出部が、対象者の左瞳孔および右瞳孔のそれぞれについて複数の候補ベクトルを算出し、判定部が、左瞳孔および右瞳孔のそれぞれについて、ベクトル条件を満たす候補ベクトルを選択することで、左瞳孔中心および右瞳孔中心を判定し、左瞳孔中心および右瞳孔中心に基づいて左視線および右視線をそれぞれ算出し、左瞳孔中心、右瞳孔中心、および左視線により規定される平面の法線と、左瞳孔中心、右瞳孔中心、および右視線により規定される平面の法線との角度が所定の閾値以下であるという視線条件を満たす場合に、左視線および右視線が正しい視線であると判定してもよい。
【００８６】
上記二つの法線が成す角度は、対象者の高さ方向における左右の視線のずれに相当する。このずれについても検査することで、瞳孔画像にノイズが含まれる場合でも視線を正しく検出することができる。
【００８７】
他の側面に係る瞳孔検出システムでは、判定部が、正しいと判定された左視線および右視線に対応する左瞳孔中心および右瞳孔中心に、左瞳孔および右瞳孔がそれぞれ位置すると判定してもよい。
【００８８】
この場合には、視線の正しさも考慮した上で瞳孔を正しく検出することができる。
【００８９】
本発明の一側面に係る視線検出システムは、上記瞳孔検出システムにより判定された瞳孔中心に基づいて対象者の視線を検出する視線検出部を備える。
【００９０】
このような側面においては、方向が正しいと推定される候補ベクトルに対応する瞳孔中心に基づいて対象者の視線が検出されるので、瞳孔画像にノイズが含まれる場合でも視線を正しく特定することができる。
【００９１】
以上、本発明をその実施形態に基づいて詳細に説明した。しかし、本発明は上記実施形態に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００９２】
左右の瞳孔位置の候補が得られた際に、第１判定部２２は瞳孔中心間の距離（瞳孔間距離）が所定の範囲内にある左右の瞳孔位置のみを選択してもよい。この処理は、上記ベクトル条件の判定を行う前または後に実行可能である。
【００９３】
具体的には、第１判定部２２は抽出された左瞳孔中心の候補から一つを選択すると共に、右瞳孔中心の候補から一つを選択し、選択された２個の瞳孔中心間の距離（瞳孔間距離）を算出する。瞳孔間距離ｌは下記式（１２）で表される。ここで、Ｐ１およびＰ２は左右の瞳孔中心の３次元座標である。
ｌ＝｜Ｐ１−Ｐ２｜    …（１２）
【００９４】
そして、第１判定部２２は、瞳孔間距離が所定範囲内にあるという距離条件を満たす瞳孔中心のペアを選択し、その距離条件を満たさないペアを除外する。第１判定部２２は、左瞳孔中心と右瞳孔中心とのすべての組合せについてこの処理を行う。
【００９５】
一般に、人間の瞳孔間距離は約６５ｍｍである。したがって、個人差や輻輳による瞳孔間距離の変化等を考慮すると、距離条件のために設定する範囲は、６５ｍｍを含む範囲であってもよい。例えば、範囲の下限は５０ｍｍ、５５ｍｍ、または６０ｍｍでもよく、範囲の上限は７０ｍｍ、７５ｍｍ、または８０ｍｍでもよい。
【００９６】
すなわち、他の側面に係る瞳孔検出システムでは、ベクトル算出部が、対象者の左瞳孔および右瞳孔のそれぞれについて複数の候補ベクトルを算出し、判定部が、左瞳孔および右瞳孔のそれぞれについて左瞳孔中心および右瞳孔中心を判定し、ベクトル条件を満たす候補ベクトルに対応し、かつ、左瞳孔中心および右瞳孔中心に基づく瞳孔間距離が所定の範囲内にあるという距離条件を満たす左瞳孔中心および右瞳孔中心に左瞳孔および右瞳孔がそれぞれ位置すると判定してもよい。
【００９７】
このように、瞳孔間距離についても検査することで、瞳孔画像にノイズが含まれる場合でも瞳孔を正しく検出することができる。
【００９８】
なお、距離条件を用いる判定は、瞳孔間距離ではなく角膜中心間の距離（角膜間距離）に基づいて行われてもよい。
【００９９】
第１判定部２２は、瞳孔中心から得られる視軸に対して上記ベクトル条件を用いた判定を行ってもよい。
【０１００】
瞳孔検出システムは３台以上のカメラを備えてもよい。例えば、３個のカメラを仮想視点平面上で正三角形の各頂点の位置に配置したり、４個のカメラを仮想視点平面上で正方形の４頂点の位置に配置したりしてもよい。このような場合には、瞳孔または角膜反射を捉えることができた２個のカメラで撮影された画像を用いて上記実施形態により瞳孔位置および視線を求めることができるので、より確実に瞳孔および視線を求めることができる。
【０１０１】
上記実施形態では瞳孔検出システム１が第２判定部２３を備えたが、この第２判定部２３を省略してもよい。すなわち、瞳孔検出システム１は上記ベクトル条件を満たす瞳孔位置を最終的な判定結果として出力してもよい。
【０１０２】
上記実施形態ではベクトル条件を「候補ベクトルと基準線との角度が所定の閾値以下であり、かつ候補ベクトルの長さが所定の範囲内である」と規定したが、候補ベクトルの長さを考慮しなくてもよい。すなわち、ベクトル条件が、「候補ベクトルと基準線との角度が所定の閾値以下である」と規定されてもよい。これは、上記実施形態におけるベクトル条件（１）のみを用いることを意味する。
【０１０３】
上記実施形態では、第１判定部２２が明瞳孔画像および暗瞳孔画像から差分画像を生成し、その差分画像から瞳孔座標を求めたが、第１判定部２２は差分画像を生成することなく、画像取得部３１から入力された１枚の瞳孔座標（明瞳孔画像または暗瞳孔画像）から瞳孔位置および角膜反射位置を求めてもよい。具体的には、第１判定部２２は１枚の瞳孔画像に対して２値化およびラベリングを実行し、瞳孔（または角膜反射点）らしい面積、サイズ、面積比、正方形度、および特徴量等の形状パラメータに基づいて、ラベルづけされた画素の連結成分の中から瞳孔候補（または角膜反射候補点）を選択する。そして、第１判定部２２は各瞳孔候補（または各角膜反射候補点）の位置を取得する。
【符号の説明】
【０１０４】
１…瞳孔検出システム、１０…カメラ（第１カメラまたは第２カメラ）、２０…画像処理装置、２１…画像取得部、２２…第１判定部、２３…第２判定部、Ｐ１…瞳孔検出プログラム、Ｐ１０…メインモジュール、Ｐ１１…画像取得モジュール、Ｐ１２…第１判定モジュール、Ｐ１３…第２判定モジュール。
【図１】
0006548171.tif 000006
【図２】
0006548171.tif 000007
【図３】
0006548171.tif 000008
【図４】
0006548171.tif 000009
【図５】
0006548171.tif 000010
【図６】
0006548171.tif 000011
【図７】
0006548171.tif 000012
【図８】
0006548171.tif 000013
【図９】
0006548171.tif 000014
【図１０】
0006548171.tif 000015
【図１１】
0006548171.tif 000016
【図１２】
0006548171.tif 000017
【図１３】
0006548171.tif 000018
【図１４】
0006548171.tif 000019
【図１５】
0006548171.tif 000020
【図１６】
0006548171.tif 000021