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