以下に添付図面を参照して、この発明にかかる補正値算出装置、補正値算出方法および補正値算出プログラムの好適な実施の形態を詳細に説明する。
(実施の形態1)
まず、実施の形態1にかかる補正値算出装置101が適用されるシステム100の一実施例について説明する。図1は、実施の形態1にかかる補正値算出装置が適用されるシステムの一実施例を示す説明図である。
図1において、システム100は、補正値算出装置101と、視線検出装置102と、表示装置103と、撮影装置104と、を含む。システム100において、補正値算出装置101と、視線検出装置102と、表示装置103と、撮影装置104とは、有線または無線のネットワーク110を介して通信可能に接続されている。
システム100は、たとえば、商業施設、空港、駅などに設置されるデジタルサイネージ(電子看板)を利用した広告システムや、eラーニング(electronic learning)を利用した学習システムなどに適用される。
補正値算出装置101は、表示装置103が有する画面105に対向している被写体120に固有の補正値を算出する。ここで、被写体120とは、撮影装置104の撮影対象となる人である。たとえば、被写体120は、画面105を見ながら作業をしているユーザでもよく、また、表示装置103の前を通りかかって画面105を見ている通行人でもよい。
また、被写体120に固有の補正値とは、キャリブレーションに用いるパラメータの値である。キャリブレーションとは、被写体120の眼球121の角膜表面における光の屈折率、眼球形状、眼球中心に対する中心窩のズレなどの個人差にともなう視線の誤差を補正するための処理である。
視線検出装置102は、表示装置103が有する画面105に対向している被写体120の視線を検出する。ここで、被写体120の視線は、たとえば、被写体120の眼球121の角膜曲率中心122から瞳孔123の瞳孔中心124に向かうベクトルによって定義される。
具体的には、たとえば、視線検出装置102が、撮影装置104によって撮影された被写体120の眼の撮影画像に基づいて、被写体120の視線ベクトルV1を算出する。ここで、被写体120の眼とは、被写体120の眼球121の表面であり、たとえば、まぶたの動きに連動して露出する黒眼と白眼を含む眼球121の表面である。また、視線検出装置102は、補正値算出装置101によって算出された被写体120に固有の補正値を用いて、視線ベクトルV1を補正する。
表示装置103は、画面105に表示画像SPを表示する。画面105に表示される表示画像SPは、任意の時間間隔で連続的に切り替わる。表示画像SPは、たとえば、デジタルサイネージの広告画像でもよく、また、eラーニングのための教材画像でもよい。
撮影装置104は、画面105に対向している被写体120の眼を撮影する。撮影装置104は、画面105に対向している被写体120の眼を撮影可能な所定の位置に設置されている。
以下、被写体120に固有の補正値を算出する補正値算出装置101の処理手順(1)〜(5)について説明する。
(1)補正値算出装置101は、撮影装置104によって撮影された被写体120の眼の撮影画像に基づく被写体120の眼球121から画面105に向かう視線ベクトルV1を視線検出装置102から取得する。
(2)補正値算出装置101は、被写体120の眼の撮影画像の撮影時における画面105の表示画像SPに含まれる画素の画素値に基づいて、表示画像SP上の領域ごとの特徴を抽出した特徴量を算出する。ここで、領域とは、たとえば、表示画像SPを画素単位で区切って分割した画像領域である。画素値とは、たとえば、画素の赤色、緑色、青色ごとの輝度である。また、特徴量とは、人間の視覚的な注意を引きつける強さを表す指標値である。すなわち、特徴量が大きい領域ほど、人間の視覚的な注意を引きつける強さが大きい領域となる。具体的には、たとえば、補正値算出装置101が、表示画像SPに含まれる画素の画素値に基づいて、領域ごとの特徴を強調する処理を行うことにより、領域ごとの特徴量を算出する。
(3)補正値算出装置101は、領域ごとの特徴量に基づいて、複数の領域のいずれかの領域を、被写体120が注視している注視点に決定する。ここで、特徴量が大きい領域ほど、人間の視覚的な注意を引きつける強さが大きくなるため、人間の視線が向きやすい領域として扱うことができる。そこで、補正値算出装置101が、複数の領域のうち他の領域に比べて特徴量が大きい領域を、被写体120が注視している注視点Wに決定する。ここでは、表示画像SP上の領域Axが、被写体120が注視している注視点Wに決定されている。この結果、被写体120の実際の視線は、眼球121から注視点Wに向かう視線ベクトルV2であると推定することができる。
(4)補正値算出装置101は、視線ベクトルV1と視線ベクトルV2とに基づいて、視線ベクトルV1を視線ベクトルV2に略一致させるための被写体120に固有の補正値を算出する。すなわち、ここでは、被写体120の実際の視線が注視点Wに向いていると仮定して、視線ベクトルV1を視線ベクトルV2に略一致させるための補正値を算出する。
(5)補正値算出装置101は、算出された被写体120に固有の補正値を視線検出装置102に出力する。この結果、視線検出装置102において、被写体120に固有の補正値を用いて、被写体120の眼の撮影画像に基づく視線ベクトルV1を補正することが可能となり、被写体120の個人差にともなう誤差を補正した視線を検出することができる。
以上説明したように、実施の形態1にかかる補正値算出装置101によれば、画面105の表示画像SP上の領域ごとの特徴を抽出した特徴量に基づいて、表示画像SPの中から注視点Wを決定することができる。これにより、眼球121から注視点Wに向かう視線ベクトルV2を被写体120の実際の視線として推定することができる。
また、補正値算出装置101によれば、視線ベクトルV1を視線ベクトルV2に略一致させるための補正値を、キャリブレーションに用いる被写体120に固有の補正値として算出することができる。これにより、視線検出前の段階に被写体120の協力の下で行われる事前手続を行うことなく、被写体120に固有の補正値を求めることができる。
また、補正値算出装置101によれば、表示画像SPに含まれる画素の画素値から領域ごとの特徴量を求めるため、画面105に表示される任意の表示画像SPの注視点Wを求めることができる。これにより、被写体120に固有の補正値を求めるために、特定の画像を予め用意する必要がなく、さらに、特定の画像を被写体120に対して呈示する必要がない。
(実施の形態2)
つぎに、実施の形態2にかかる視線検出装置200について説明する。実施の形態2では、実施の形態1で説明した補正値算出装置101を視線検出装置200に適用した場合について説明する。
(視線検出装置200のハードウェア構成)
まず、実施の形態2にかかる視線検出装置200のハードウェア構成について説明する。図2は、実施の形態2にかかる視線検出装置のハードウェア構成の一例を示すブロック図である。図2において、視線検出装置200は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、I/F(Interface)208と、キーボード209と、マウス210と、ディスプレイ211と、カメラ212と、を備えている。また、各構成部はバス220によってそれぞれ接続されている。
ここで、CPU201は、視線検出装置200の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
I/F208は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク214に接続され、ネットワーク214を介して他の装置に接続される。そして、I/F208は、ネットワーク214と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F208には、たとえばモデムやLANアダプタなどを採用することができる。
キーボード209は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス210は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。
ディスプレイ211は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ211は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。カメラ212は、ディスプレイ211に対向している被写体の眼を撮影するためのデジタルカメラである。カメラ212は、たとえば、被写体の眼を撮影するための専用カメラであってもよく、また、監視カメラやウェブカメラなどであってもよい。
(ディスプレイ211の外観)
つぎに、視線検出装置200のディスプレイ211の外観について説明する。図3は、ディスプレイの外観の一例を示す説明図である。図3において、ディスプレイ211には、カメラ212と赤外線LED(Light Emitting Diode)301が設置されている。
カメラ212は、ディスプレイ211に対向している被写体の眼302を撮影可能な位置に設置されている。赤外線LED301は、近赤外線を照射する点光源である。赤外線LED301は、たとえば、カメラ212の光軸から外れた位置から、被写体の眼302に近赤外線を照射可能な状態で設置されている。
(各種座標系410,420,430)
ここで、被写体の視線検出に使用する各種座標系410,420,430について説明する。図4は、視線検出に使用する座標系の一例を示す説明図である。図4において、画像座標系410は、たとえば、カメラ212によって撮影された被写体の眼の撮影画像(以下、「眼球画像EP」という)の所定の基準点を原点OPとするXP軸とYP軸からなる直交座標系である。
カメラ座標系420は、たとえば、カメラ原点OCをカメラ212の光学中心とするXC軸とYC軸とZC軸とからなる直交座標系である。世界座標系430は、たとえば、ディスプレイ211上の所定の基準点を原点OWとするXW軸とYW軸とZW軸とからなる直交座標系である。
(視線検出装置200の機能的構成)
つぎに、実施の形態2にかかる視線検出装置200の機能的構成について説明する。図5は、視線検出装置の機能的構成を示すブロック図である。図5において、視線検出装置200は、取得部501と、視線算出部502と、特徴量算出部503と、決定部504と、領域特定部505と、第1の位置算出部506と、抽出部507と、関連付け部508と、補正値算出部509と、補正部510と、第2の位置算出部511と、誤差算出部512と、誤差判定部513と、速度判定部514と、出力部515と、を含む。
各機能部501〜515は、たとえば、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F208により、その機能を実現する。なお、各機能部501〜515の処理結果は、特に指定する場合を除いて、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。
まず、取得部501は、たとえば、連続的に表示が切り替わるディスプレイ211の表示画像SPを取得する。具体的には、たとえば、取得部501が、ディスプレイ211に表示された画面イメージを画像データとしてキャプチャすることにより表示画像SPを取得する。
なお、表示画像SPは、動画像でも任意の時間間隔で表示が切り替わる静止画像でもよい。また、取得部501による表示画像SPの取得タイミングは、任意に設定可能である。たとえば、取得部501は、ディスプレイ211の表示が切り替わるごとに表示画像SPを取得してもよい。また、取得部501は、一定の時間間隔で表示画像SPを取得してもよい。
取得部501は、ディスプレイ211に対向している被写体の眼(眼球)の眼球画像EPをカメラ212から取得する。ここで、被写体とは、カメラ212によって撮影される対象者である。たとえば、被写体は、ディスプレイ211を見ながら作業をしているユーザでもよく、また、ディスプレイ211の前を通りかかってディスプレイ211を見ている通行人でもよい。
また、被写体の眼(眼球)とは、被写体の眼球表面であり、たとえば、まぶたの動きに連動して露出する黒眼と白眼を含む部分である。なお、以下の説明では、被写体として「人」を例に挙げて説明するが、被写体は眼球を有するゴリラや猿などの「人に準ずる動物」でもよい。
また、取得部501による眼球画像EPの取得タイミングは、任意に設定可能である。たとえば、取得部501は、一定の時間間隔で眼球画像EPを取得してもよい。また、取得部501は、表示画像SPの取得タイミングと同期を取って、眼球画像EPを取得してもよい。また、眼球画像EPに写る被写体の眼球は、片眼でも両眼でもよい。
取得された眼球画像EPは、たとえば、取得された眼球画像EPの撮影時にディスプレイ211に表示中の表示画像SPと関連付けてRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶される。なお、眼球画像EPには、たとえば、眼球画像EPの撮影時刻が付加されている。
ここで、カメラ212によって撮影された眼球画像EPの具体例について説明する。図6は、眼球画像の具体例を示す説明図である。図6において、眼球画像EPは、カメラ212によって人の眼球600を撮影した画像である。なお、図面では眼球画像EPの一部を抜粋して表示している。
ここでは、図3に示した赤外線LED301により、眼球600に向けて近赤外線を照射して撮影している。このため、眼球画像EPにおいて、瞳孔601が虹彩602と比較して暗くなり、角膜表面にプルキニエ像603が現れている。プルキニエ像603とは、眼球600に近赤外線を照射した際に現れる角膜表面における反射像である。
図5の説明に戻り、視線算出部502は、取得された眼球画像EPに基づいて、被写体の眼球からディスプレイ211に向かう第1の視線ベクトルV1を算出する。具体的には、たとえば、視線算出部502が、人の眼球に近赤外線を照射したときの角膜表面における反射像(たとえば、図6に示したプルキニエ像603)を利用して、第1の視線ベクトルV1を算出する。
ただし、世界座標系430におけるディスプレイ211と被写体の眼球とのZW軸方向の距離は、予め設定されている。具体的には、たとえば、ディスプレイ211を、商業施設、空港、駅などに設置されるデジタルサイネージとして使用する場合、ディスプレイ211と被写体の眼球とのZW軸方向の距離は100〜130[cm]程度に設定される。また、ディスプレイ211を、パーソナル・コンピュータの画面として使用する場合、ディスプレイ211と被写体の眼球とのZW軸方向の距離は30〜50[cm]程度に設定される。
また、世界座標系430におけるカメラ212の設置位置は、既知の値である。このため、カメラ212によって撮影された被写体の眼球画像EPから第1の視線ベクトルV1を算出することができる。なお、第1の視線ベクトルV1を算出する具体的な処理内容は、図12−1および図12−2を用いて後述する。
ここで、第1の視線ベクトルV1は、たとえば、下記式(1)を用いて、極座標系におけるベクトルによって表現される。ただし、V1は、第1の視線ベクトルである。また、r1は動径であり、世界座標系430の原点OWから眼球までの距離である。また、θ1は偏角であり、第1の視線ベクトルV1と世界座標系430の基準軸(たとえば、ZW軸)とのなす角である。また、φ1は偏角であり、第1の視線ベクトルV1と世界座標系430の基準軸(たとえば、XW軸)とのなす角である。
特徴量算出部503は、眼球画像EPが撮影されたときのディスプレイ211の表示画像SPに含まれる画素の画素値に基づいて、表示画像SP上の領域ごとの特徴を抽出した特徴量を算出する。ここで、領域とは、表示画像SPを任意の大きさで区切って分割した画像領域である。
たとえば、領域は、表示画像SPを画素単位で区切って分割したものでもよく、また、表示画像SPをN画素×M画素の単位で分割したものでもよい(N,M:自然数)。以下、表示画像SP上の複数の領域を「領域A1〜An」と表記し、領域A1〜Anのうち任意の領域を「領域Ai」と表記する(i=1,2,…,n)。
画素の画素値とは、たとえば、画素の色(赤、緑、青)ごとの輝度である。なお、輝度とは、各領域A1〜Anの色ごとの明るさの度合いを表す値である。特徴量とは、人の視覚的な注意を引きつける強さを表す指標値である。すなわち、表示画像SP上の複数の領域A1〜Anのうち特徴量が大きい領域ほど、人の視覚的な注意を引きつける強さが大きい領域となる。
ただし、領域Aiの特徴量Ciは、複数の領域A1〜Anの特徴を相対評価して算出してもよく、また、各領域Aiの特徴を絶対評価して算出してもよい。以下、各領域A1〜Anの特徴量を「特徴量C1〜Cn」と表記する。なお、特徴量算出部503の具体的な処理内容は、図14〜図24を用いて後述する。
また、算出された領域A1〜Anごとの特徴量C1〜Cnは、たとえば、図7に示す特徴量テーブル700に記憶される。特徴量テーブル700は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。ここで、特徴量テーブル700の記憶内容について説明する。
図7は、特徴量テーブルの記憶内容の一例を示す説明図である。図7において、特徴量テーブル700は、領域ID、座標位置および特徴量のフィールドを有し、領域A1〜Anごとの特徴量データ700−1〜700−nをレコードとして記憶している。
領域IDとは、各領域A1〜Anの識別子である。座標位置は、世界座標系430における各領域A1〜Anの中心点のXW座標およびYW座標である。ただし、世界座標系430における各領域A1〜Anの中心点のZW座標は「0」である。特徴量とは、領域A1〜Anごとの人の視覚的な注意を引きつける強さを表す指標値である。
なお、ここでは各領域A1〜Anの座標位置を、各領域A1〜Anの中心点のXW座標およびYW座標としたが、これに限らない。たとえば、各領域A1〜Anの座標位置として、各領域A1〜An内の中心点以外の任意の点のXW座標およびYW座標を用いることにしてもよい。
図5の説明に戻り、決定部504は、算出された領域A1〜Anごとの特徴量C1〜Cnに基づいて、複数の領域A1〜Anのいずれかの領域Aiを、被写体が注視している注視点Wに決定する。ここで、複数の領域A1〜Anのうち特徴量が大きい領域は、人の視線が向きやすい領域であり、人が注視している可能性が高い領域である。
そこで、決定部504が、たとえば、複数の領域A1〜Anのうち、特徴量が最大となる領域を注視点Wに決定することにしてもよい。具体的には、たとえば、領域特定部505が、特徴量テーブル700を参照して、複数の領域A1〜Anのうち、特徴量が最大となる領域を特定する。
一例として、特徴量テーブル700内の特徴量C1〜Cnのうち特徴量C1が最大であるとする。この場合、領域特定部505が、複数の領域A1〜Anのうち、特徴量が最大となる領域A1を特定する。そして、決定部504が、特定された領域A1の座標位置「(XW,YW)=(x1,y1)」を注視点Wに決定する。
これにより、表示画像SP上の複数の領域A1〜Anのうち、人の視覚的な注意を引きつける強さが最も大きく、人の視線が最も向きやすい領域(たとえば、領域A1)を注視点Wに決定することができる。以下、複数の領域A1〜Anのうち特徴量が最大となる領域を「領域Amax」と表記する。
ただし、特徴量C1〜Cnのうち最大の特徴量とは、特徴量C1〜Cnの中で値が最大となる特徴量Cmaxでもよく、特徴量Cmaxに1未満の定数α(たとえば、0.9)を掛けた値以上となる特徴量でもよい。これにより、領域Amaxとして、特徴量Ciが特徴量Cmaxと同程度の値となる領域Aiを特定することができる。なお、定数αは、たとえば、予め設定されてRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
第1の位置算出部506は、第1の視線ベクトルV1に基づいて、表示画像SP上の視線位置を算出する。具体的には、たとえば、第1の位置算出部506が、第1の視線ベクトルV1の方向に伸びる直線と表示画像SPとが交わる点の座標位置を、表示画像SP上の視線位置として算出する。
ここで、第1の視線ベクトルV1に基づく表示画像SP上の視線位置は、眼球画像EPに基づく被写体の視線位置である。このため、第1の視線ベクトルV1に基づく表示画像SP上の視線位置には、被写体の個人差にともなう誤差が含まれている可能性がある。そこで、以下の説明では、第1の視線ベクトルV1に基づく表示画像SP上の視線位置を「仮の視線位置VP」と表記する。また、仮の視線位置VPの座標位置を「(XW,YW)=(vx,vy)」と表記する。なお、第1の位置算出部506の具体的な処理内容については、図13を用いて後述する。
また、領域特定部505は、特徴量が最大となる領域Amaxが複数存在する場合、表示画像SP上の仮の視線位置VPの最近傍に位置する領域Amaxを特定する。そして、決定部504は、表示画像SP上の仮の視線位置VPの最近傍に位置する領域Amaxを注視点Wに決定することにしてもよい。
ここで、複数の領域A1〜Anのうち特徴量が最大となる複数の領域Amaxを「領域Amax[1]〜Amax[K]」と表記する。また、領域Amax[1]〜Amax[K]のうち任意の領域を「領域Amax[k]」と表記する(k=1,2,…,K)。
この場合、たとえば、まず、領域特定部505が、下記式(2)を用いて、各領域Amax[1]〜Amax[K]と仮の視線位置VPとの距離d[1]〜d[K]を算出する。ただし、d[k]は、領域Amax[k]と仮の視線位置VPとの距離である。vx,vyは、仮の視線位置VPのXW座標、YW座標である。x[k],y[k]は、領域Amax[k]のXW座標、YW座標である。
d[k]={(vx−x[k])2+(vy−y[k])2}1/2 ・・・(2)
なお、領域Amax[k]の座標位置(x[k],y[k])は、たとえば、特徴量テーブル700から特定される。たとえば、領域Amax[k]が領域A1の場合、領域Amax[k]のXW座標は『x[k]=x1』となり、領域Amax[k]のYW座標は『y[k]=y1』となる。
このあと、領域特定部505が、領域Amax[1]〜Amax[K]のうち、仮の視線位置VPとの距離が最小となる領域Amax[k]を特定する。そして、決定部504が、特定された領域Amax[k]を注視点Wに決定する。これにより、表示画像SP上の複数の領域A1〜Anのうち、仮の視線位置VPに最も近く、人の視線が最も向きやすい領域Amax[k]を注視点Wに決定することができる。
また、決定部504は、仮の視線位置VPの最近傍に位置する領域Amax[k]が複数存在する場合、複数の領域A1〜Anの中から注視点Wを決定しないことにしてもよい。これにより、注視点Wの候補となる点が複数存在し、注視点Wを一意に決定することができない場合は、表示画像SP上の注視点Wを未決定とすることができる。
なお、距離d[1]〜d[K]のうちの最小の距離とは、たとえば、距離d[1]〜d[K]の中で値が最小となる距離dminでもよく、距離dminに定数β(たとえば、3[mm])を加算した値以下となる距離でもよい。これにより、仮の視線位置VPの最近傍に位置する領域Amax[k]として、距離d[k]が距離dminと同程度の値となる領域Amax[k]を特定することができる。なお、定数βは、たとえば、予め設定されてRAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
抽出部507は、表示画像SPの中から仮の視線位置VPを含む所定範囲の画像を抽出する。ここで、所定範囲は、予め規定されており、たとえば、仮の視線位置VPを中心とする円でもよく、また、仮の視線位置VPを含む領域を中心とする領域の集合でもよい。より具体的には、たとえば、所定範囲は、仮の視線位置VPを中心として、被写体の個人差にともなう視線位置の誤差として想定される最大の誤差を半径とする円である。
この場合、特徴量算出部503は、抽出された所定範囲の画像上の領域ごとの特徴を抽出した特徴量を算出することにしてもよい。これにより、表示画像SPにおいて仮の視線位置VPから離れすぎているために注視点Wとなる可能性が低い領域Aiを、注視点Wの候補から排除することができる。また、特徴量Ciの算出対象となる領域数が少なくなるため、特徴量Ciの算出処理にかかる負荷を軽減させることができる。なお、以下の説明では、抽出された所定範囲の画像上の複数の領域を、表示画像SP上の複数の領域と同様に「複数の領域A1〜An」と表記する。
また、視線算出部502は、被写体の眼球から、決定された注視点Wに向かう第2の視線ベクトルV2を算出する。具体的には、たとえば、視線算出部502が、世界座標系430における眼球の角膜曲率中心の座標位置と注視点Wの座標位置とに基づいて、第2の視線ベクトルV2を算出する。なお、第2の視線ベクトルV2を算出する具体的な処理内容は、図13を用いて後述する。
ここで、第2の視線ベクトルV2は、たとえば、下記式(3)を用いて、極座標系におけるベクトルによって表現される。V2は、第2の視線ベクトルである。また、r2は動径であり、世界座標系430の原点OWから眼球までの距離である。また、θ2は偏角であり、第2の視線ベクトルV2と世界座標系430の基準軸(たとえば、ZW軸)とのなす角である。また、φ2は偏角であり、第2の視線ベクトルV2と世界座標系430の基準軸(たとえば、XW軸)とのなす角である。
関連付け部508は、第1の視線ベクトルV1と第2の視線ベクトルV2とを関連付ける。具体的には、たとえば、関連付け部508が、注視点Wが決定されるごとに、第1の視線ベクトルV1と第2の視線ベクトルV2とをベクトルペアとして関連付ける。
なお、関連付け結果は、たとえば、図8に示すベクトルペアテーブル800に記憶される。ベクトルペアテーブル800は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。ここで、ベクトルペアテーブル800の記憶内容について説明する。
図8は、ベクトルペアテーブルの記憶内容の一例を示す説明図である。図8において、ベクトルペアテーブル800は、ペアID、t、θ1、φ1、θ2およびφ2のフィールドを有し、ベクトルペアP1〜P3ごとの偏角データ(たとえば、偏角データ800−1〜800−3)をレコードとして記憶している。
ここで、ペアIDとは、第1の視線ベクトルV1と第2の視線ベクトルV2のベクトルペアの識別子である。tは、第1の視線ベクトルV1の算出元となる眼球画像EPの撮影時刻である。θ1およびφ1は、第1の視線ベクトルV1の偏角である。θ2およびφ2は、第2の視線ベクトルV2の偏角である。なお、各偏角の単位は[度]である。以下の説明では、任意のベクトルペアを「ベクトルペアPj」と表記する。
図5の説明に戻り、補正値算出部509は、第1の視線ベクトルV1と第2の視線ベクトルV2とに基づいて、第1の視線ベクトルV1を第2の視線ベクトルV2に略一致させるための被写体に固有の補正値を算出する。
ここで、補正値は、被写体の個人差にともなう視線位置の誤差を補正するためのキャリブレーションに用いるパラメータの値である。具体的には、たとえば、補正値は、下記式(4)に示す行列W(以下、「キャリブレーション行列W」という)に含まれるパラメータω1〜ω4の値である。
より具体的には、たとえば、補正値算出部509が、下記式(5)を用いて、被写体に固有のパラメータω1〜ω4の値を算出することができる。ただし、V1は第1の視線ベクトル、V2は第2の視線ベクトル、Wはキャリブレーション行列である。
なお、上記式(5)を用いる場合、キャリブレーション行列Wに含まれる未知数が4つのため、パラメータω1〜ω4の値を求めるために少なくとも2組のベクトルペアが必要となる。そこで、たとえば、補正値算出部509は、ベクトルペアテーブル800を参照して、複数のベクトルペアPjに基づいて、被写体に固有の補正値を算出する。なお、補正値算出部509の具体的な処理内容については後述する。
ただし、キャリブレーション行列Wに含まれるパラメータω1〜ω4のうち、いずれか2つのパラメータ(たとえば、ω2,ω4)の値を固定値とすることで、未知数を減らすことにしてもよい。これにより、1組のベクトルペアに基づいて、被写体に固有のパラメータ(たとえば、ω1,ω3)の値を算出することができる。
また、算出された補正値は、たとえば、図9に示すパラメータテーブル900に記憶される。パラメータテーブル900は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。
図9は、パラメータテーブルの記憶内容の一例を示す説明図である。図9において、パラメータテーブル900は、キャリブレーション行列Wに含まれるパラメータω1〜ω4の値を保持している。なお、パラメータテーブル900の記憶内容は、被写体に固有の補正値(パラメータω1〜ω4の値)が算出されると、その都度更新される。
図5の説明に戻り、補正部510は、被写体に固有の補正値を用いて、第1の視線ベクトルV1を補正する。具体的には、たとえば、補正部510が、下記式(6)を用いて、補正後の第1の視線ベクトルV1を算出することができる。ただし、V1’は補正後の第1の視線ベクトル、V1は第1の視線ベクトル、Wはキャリブレーション行列である。
より具体的には、たとえば、まず、補正部510が、パラメータテーブル900を参照して、各パラメータω1〜ω4の値を上記式(6)に代入する。また、補正部510が、第1の視線ベクトルV1の動径r1および偏角ω1、φ1を上記式(6)に代入することにより、補正後の第1の視線ベクトルV1’を算出することができる。
第2の位置算出部511は、補正された補正後の第1の視線ベクトルV1’に基づいて、表示画像SP上の視線位置を算出する。具体的には、たとえば、第2の位置算出部511が、補正後の第1の視線ベクトルV1’の方向に伸びる直線と表示画像SPとが交わる点の座標位置を、表示画像SP上の視線位置として算出する。
ここで、補正後の第1の視線ベクトルV1’に基づく表示画像SP上の視線位置は、被写体の個人差にともなう誤差が補正された被写体の視線位置である。なお、以下の説明では、補正後の第1の視線ベクトルV1’について、補正前の第1の視線ベクトルV1と同様に「第1の視線ベクトルV1」と表記する。
また、補正部510は、第1の視線ベクトルV1が算出されたときに、被写体に固有の補正値が算出されている場合、該補正値を用いて第1の視線ベクトルV1を補正することにしてもよい。具体的には、たとえば、補正部510が、第1の視線ベクトルV1が算出されたときに、パラメータテーブル900にパラメータω1〜ω4の値が記憶されている場合、該パラメータω1〜ω4の値を用いて、第1の視線ベクトルV1を補正する。
この場合、関連付け部508は、補正された補正後の第1の視線ベクトルV1と、第2の視線ベクトルV2とを関連付ける。これにより、被写体の個人差にともなう誤差が補正された第1の視線ベクトルV1を用いて、パラメータω1〜ω4の値を再計算することができる。
誤差算出部512は、関連付けられた第1の視線ベクトルV1と第2の視線ベクトルV2との誤差を算出する。具体的には、たとえば、誤差算出部512が、下記式(7)〜(9)を用いて、ベクトルペアPjの第1の視線ベクトルV1と第2の視線ベクトルV2との誤差を表す誤差ベクトルεを算出することができる。
ただし、εは、第1の視線ベクトルV1と第2の視線ベクトルV2との誤差を表す誤差ベクトルである。εθは、第1の視線ベクトルV1の偏角θ1と第2の視線ベクトルV2の偏角θ2との誤差である。εφは、第1の視線ベクトルV1の偏角φ1と第2の視線ベクトルV2の偏角φ2との誤差である。
εθ=|θ2−θ1| ・・・(8)
εφ=|φ2−φ1| ・・・(9)
誤差判定部513は、算出された誤差が所定の閾値未満か否かを判定する。具体的には、たとえば、誤差判定部513が、誤差ベクトルεの各値εθ,εφが、所定の閾値ε0未満となるか否かを判定する。なお、閾値ε0は、予め設定されてROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
たとえば、閾値ε0の値として、1画素(ピクセル)を識別できるほどの誤差を設定することにしてもよい。具体的には、たとえば、閾値ε0は、下記式(10)を用いて求めることができる。ただし、hは1画素当たりの長さ、Lはディスプレイ211から被写体の眼球までの距離である。なお、h,Lの単位は[mm]である。
ε0=tan-1(h/L) ・・・(10)
ここで、L=450[mm]とし、ディスプレイ211の大きさ(横×縦)を408[mm]×307[mm]とし、ディスプレイ211の解像度(横×縦)を1280[画素]×1024[画素]とする。この場合、閾値ε0は、上記式(10)から「ε0=0.04」となる。
なお、上述した説明では、誤差ベクトルεの各値εθ,εφについて共通の閾値ε0を設定することにしたが、これに限らない。たとえば、誤差ベクトルεの各値εθ,εφについて、それぞれ異なる閾値ε1,ε2を設定することにしてもよい。
また、補正値算出部509は、誤差が所定の閾値以上と判定された場合、被写体に固有の補正値を算出することにしてもよい。一方、補正値算出部509は、誤差が所定の閾値未満と判定された場合、被写体に固有の補正値を算出しないことにしてもよい。具体的には、たとえば、補正値算出部509が、誤差ベクトルεの各値εθ,εφが閾値ε0以上の場合、被写体に固有のパラメータω1〜ω4の値を算出する。一方、補正値算出部509が、誤差ベクトルεの各値εθ,εφが閾値ε0未満の場合、被写体に固有のパラメータω1〜ω4の値を算出しない。
これにより、既に算出済みのパラメータω1〜ω4の値を用いて補正された補正後の第1の視線ベクトルV1と第2の視線ベクトルV2との誤差が十分小さくなったら、パラメータω1〜ω4の値の更新を停止することができる。なお、被写体が動いて眼球の位置が変化することを考慮して、一定時間経過後に、パラメータω1〜ω4の値の更新を再開することにしてもよい。
速度判定部514は、時系列に連続する第1の視線ベクトルV1に基づいて、被写体の視線の移動速度が所定の速度以上か否かを判定する。ここで、時系列に連続する第1の視線ベクトルV1とは、たとえば、算出元の眼球画像EPの撮影時刻tが時系列に連続する一対の第1の視線ベクトルV1である。
すなわち、速度判定部514は、被写体の視線の移動速度が所定の速度以上で動く眼球運動(以下、「サッカード」という)が発生したか否かを判定する。具体的には、たとえば、速度判定部514が、第1の視線ベクトルV1の偏角θ1,φ1の単位時間当たりの変化量が所定の閾値S以上となった場合に、サッカードが発生したと判定する。
なお、閾値Sは、予め設定されてROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。ここで、一例として、時系列に連続する一対の第1の視線ベクトルV1の偏角θ1,φ1のいずれか一方の単位時間当たりの変化量が100[度/秒]以上となった場合をサッカードと定義する。
また、表示画像SPを60[fps(frame per second)]の動画像とし、時系列に連続する撮影時刻tの時間間隔を1[frame](=1/60[秒])とする。この場合、閾値Sは『S=1.67[度/frame]』となる。
具体的には、たとえば、まず、速度判定部514が、下記式(11)を用いて、時系列に連続する一対の第1の視線ベクトルV1の偏角θ1の差分を算出する。ただし、Sθは、時系列に連続する一対の第1の視線ベクトルV1の偏角θ1の差分である。tk,t(k+1)は、時系列に連続する撮影時刻である。θ1tkは、撮影時刻tkの眼球画像EPに基づく第1の視線ベクトルV1の偏角θ1である。θ1t(k+1)は、撮影時刻t(k+1)の眼球画像EPに基づく第1の視線ベクトルV1の偏角θ1である。
Sθ=|θ1tk−θ1t(k+1)| ・・・(11)
また、速度判定部514が、下記式(12)を用いて、時系列に連続する一対の第1の視線ベクトルV1の偏角φ1の差分を算出する。ただし、Sφは、時系列に連続する一対の第1の視線ベクトルV1の偏角φ1の差分である。tk,t(k+1)は、時系列に連続する撮影時刻である。φ1tkは、撮影時刻tkの眼球画像EPに基づく第1の視線ベクトルV1の偏角φ1である。φ1t(k+1)は、撮影時刻t(k+1)の眼球画像EPに基づく第1の視線ベクトルV1の偏角φ1である。
Sφ=|φ1tk−φ1t(k+1)| ・・・(12)
そして、速度判定部514が、算出された差分Sθ,Sφの少なくともいずれか一方が閾値S以上の場合、サッカードが発生したと判定する。一方、速度判定部514が、算出された差分Sθ,Sφの両方が閾値S未満の場合、サッカードが発生していないと判定する。
なお、時系列に連続する一対の第1の視線ベクトルV1は、たとえば、図10に示すベクトルテーブル1000に記憶されている。ベクトルテーブル1000は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。ここで、ベクトルテーブル1000の記憶内容について説明する。
図10は、ベクトルテーブルの記憶内容の一例を示す説明図である。図10において、ベクトルテーブル1000は、t、θ1およびφ1のフィールドを有し、時系列に連続する一対のベクトルデータをレコードとして記憶する。ここで、tは、第1の視線ベクトルV1の算出元となる眼球画像EPの撮影時刻である。θ1およびφ1は、第1の視線ベクトルV1の偏角である。
図10に示す(a)では、撮影時刻t5,t6の眼球画像EPに基づく第1の視線ベクトルV1の偏角θ1,φ1がベクトルデータ1000−1,1000−2として記憶されている。この場合、速度判定部514が、ベクトルデータ1000−1,1000−2に基づいてサッカードが発生したか否かを判定する。
具体的には、たとえば、まず、速度判定部514が、ベクトルデータ1000−1,1000−2の撮影時刻t5,t6の偏角θ1t5,θ1t6を上記式(11)に代入することにより、差分Sθを算出する。ここでは、「θ1t5=24.2」、「θ1t6=26.2」のため、差分Sθは「Sθ=2」となる。
また、速度判定部514が、ベクトルデータ1000−1,1000−2の撮影時刻t5,t6の偏角φ1t5,φ1t6を上記式(12)に代入することにより、差分Sφを算出する。ここでは、「φ1t5=10.3」、「φ1t6=10.3」のため、差分Sφは「Sφ=0」となる。
ここで、撮影時刻t5,t6の時間差を1[frame]とし、閾値Sを「S=1.67[度/frame]とする。この場合、速度判定部514が、算出された差分Sθ,Sφのうち、差分Sθ(=2)が閾値S(=1.67)以上となるため、サッカードが発生したと判定する。
なお、ベクトルテーブル1000の記憶内容は、第1の視線ベクトルV1が算出されると、その都度更新される。たとえば、図10に示す(a)において、新たな第1の視線ベクトルV1が算出されると、ベクトルデータ1000−1が削除され、新たな第1の視線ベクトルV1に関するベクトルデータ1000−3が記憶される。
図10に示す(b)では、撮影時刻t6,t7の眼球画像EPに基づく第1の視線ベクトルV1の偏角θ1,φ1がベクトルデータ1000−2,1000−3として記憶されている。この場合、速度判定部514が、ベクトルデータ1000−2,1000−3に基づいてサッカードが発生したか否かを判定する。
具体的には、たとえば、まず、速度判定部514が、ベクトルデータ1000−2,1000−3の撮影時刻t6,t7の偏角θ1t6,θ1t7を上記式(11)に代入することにより、差分Sθを算出する。ここでは、「θ1t6=26.2」、「θ1t7=27.2」のため、差分Sθは「Sθ=1」となる。
また、速度判定部514が、ベクトルデータ1000−2,1000−3の撮影時刻t6,t7の偏角φ1t6,φ1t7を上記式(12)に代入することにより、差分Sφを算出する。ここでは、「φ1t6=10.3」、「φ1t7=10.3」のため、差分Sφは「Sφ=0」となる。
ここで、撮影時刻t5,t6の時間差を1[frame]とし、閾値Sを「S=1.67[度/frame]とする。この場合、速度判定部514が、算出された差分Sθ,Sφの両方が閾値S(=1.67)未満となるため、サッカードが発生していないと判定する。
特徴量算出部503は、速度判定部514によって判定された判定結果に基づいて、領域A1〜Anごとの特徴量C1〜Cnを算出することにしてもよい。具体的には、たとえば、特徴量算出部503は、サッカードが発生したと判定された場合、領域A1〜Anごとの特徴量C1〜Cnを算出する。
一方、特徴量算出部503は、サッカードが発生していないと判定された場合、領域A1〜Anごとの特徴量C1〜Cnを算出しない。ここで、サッカードが発生していない状態は、時系列に連続する時刻tkと時刻t(k+1)との間の第1の視線ベクトルV1の偏角θ1,φ1の変化量が少なく、被写体の視線位置が停留している状態といえる。
さらに、この場合、表示画像SPの中から注視点Wに決定される領域Aiは、時刻tkと時刻t(k+1)との間で変化しない可能性が高く、その結果算出されるパラメータω1〜ω4の値の変化量も少なくなる可能性が高い。そこで、サッカードが発生していない場合は、特徴量C1〜Cnの算出処理を抑制し、パラメータω1〜ω4の値の算出にかかる一連の処理の効率化を図る。
また、出力部515は、補正後の第1の視線ベクトルV1に基づく表示画像SP上の視線位置を出力する。具体的には、たとえば、出力部515が、表示画像SPと、表示画像SP上での視線位置(以下、「被写体の視線位置RP」という)とを関連付けて示す視線検出結果を出力することにしてもよい。ここで、視線検出結果の具体例について説明する。
図11は、視線検出結果の具体例を示す説明図である。図11において、視線検出結果Rは、画像ID、時刻および座標位置を有している。画像IDは、表示画像SPの識別子である。時刻は、眼球画像EPの撮影時刻であり、視線検出時刻を表している。座標位置は、世界座標系430における被写体の視線位置RPのXW座標およびYW座標である。
視線検出結果Rによれば、時刻tjに表示画像SPjを見ている被写体の表示画像SPj上での視線位置RP(xj,yj)を認識することができる。具体的には、たとえば、視線検出結果Rは、たとえば、表示装置103に対する入力インターフェースとして利用することができる。
なお、出力部515の出力形式としては、たとえば、ディスプレイ211への表示、I/F208による外部装置への送信がある。また、他の出力形式として、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶することにしてもよい。
また、出力部515は、算出された被写体に固有の補正値を出力することにしてもよい。具体的には、たとえば、出力部515が、パラメータテーブル900内のパラメータω1〜ω4の値を出力することにしてもよい。これにより、以降において、被写体に固有のパラメータω1〜ω4の値を用いて、キャリブレーションを行うことができる。
なお、上述した説明では、世界座標系430におけるディスプレイ211と被写体の眼球とのZW軸方向の距離を、予め設定することにしたが、これに限らない。たとえば、既存技術を利用して、ディスプレイ211に対向している被写体にレーザ光を照射し、レーザ光が反射して戻ってくるまでの時間から、ディスプレイ211と被写体の眼球との距離を測定することにしてもよい。
(補正値算出部509の具体的な処理内容)
ここで、被写体に固有の補正値を算出する補正値算出部509の具体的な処理内容について説明する。ここでは、まず、補正値算出部509が、2組のベクトルペアPjを用いて、パラメータω1〜ω4の値を求める場合について説明する。まず、補正値算出部509が、上記式(5)を展開することにより、下記式(13)および(14)の連立方程式を求める。
θ2=ω1θ1+ω2 ・・・(13)
φ2=ω3φ1+ω4 ・・・(14)
このあと、補正値算出部509が、たとえば、図8に示したベクトルペアテーブル800を参照して、偏角データ800−1,800−2を上記式(13)および(14)に代入して、4つの連立方程式を求める。ただし、各偏角θ1、φ1、θ2およびφ2の値は、単位を[度]から[ラジアン]に変換して、上記式(13)および(14)に代入する。
そして、補正値算出部509が、4つの連立方程式を解くことで、パラメータω1〜ω4の値を求めることができる。偏角データ800−1,800−2の例では、各パラメータω1〜ω4の値は『ω1=1.18,ω2=0.087,ω3=9,ω4=−2.98』となる。
つぎに、補正値算出部509が、3組以上のベクトルペアPjを用いて、パラメータω1〜ω4の値を求める場合について説明する。ここでは、最小二乗法を用いて、パラメータω1〜ω4の値を求める場合について説明する。
まず、補正値算出部509が、ベクトルペアPjがN組のときのパラメータω1,ω2についての下記式(15)の誤差関数を、パラメータω1,ω2それぞれについて偏微分して、下記式(16)および(17)の連立方程式を求める。ただし、E(ω1,ω2)は、ベクトルペアPjがN組のときのパラメータω1,ω2についての誤差関数である。θ1jは、ベクトルペアPjの第1の視線ベクトルV1の偏角θ1である。θ2jは、ベクトルペアPjの第2の視線ベクトルV2の偏角θ2である。
同様に、補正値算出部509が、ベクトルペアPjがN組のときのパラメータω3,ω4についての下記式(18)の誤差関数を、パラメータω3,ω4それぞれについて偏微分して、下記式(19)および(20)の連立方程式を求める。ただし、E(ω3,ω4)は、ベクトルペアPjがN組のときのパラメータω3,ω4についての誤差関数である。φ1jは、ベクトルペアPjの第1の視線ベクトルV1の偏角φ1である。φ2jは、ベクトルペアPjの第2の視線ベクトルV2の偏角φ2である。
このあと、補正値算出部509が、たとえば、ベクトルペアテーブル800を参照して、偏角データ800−1〜800−3の偏角θ1,θ2を上記式(16)および(17)に代入することにより、下記式(21)を求める。ただし、偏角θ1,θ2の値は、単位を[度]から[ラジアン]に変換して、上記式(16)および(17)に代入する。
また、補正値算出部509が、ベクトルペアテーブル800を参照して、偏角データ800−1〜800−3の偏角φ1,φ2を上記式(19)および(20)に代入することにより、下記式(22)を求める。ただし、偏角φ1,φ2の値は、単位を[度]から[ラジアン]に変換して、上記式(19)および(20)に代入する。
そして、補正値算出部509が、上記式(21)および(22)を解くことにより、パラメータω1〜ω4の値を求めることができる。偏角データ800−1〜800−3の例では、各パラメータω1〜ω4の値は『ω1=0.95,ω2=0.14,ω3=1.17,ω4=−0.12』となる。
このように、複数のベクトルペアPjを用いて統計的にパラメータω1〜ω4の値を算出することにより、被写体に固有のパラメータω1〜ω4の値を精度よく求めることができる。
(視線算出部502の具体的な処理内容)
つぎに、第1の視線ベクトルV1を算出する視線算出部502の具体的な処理内容について説明する。図12−1および図12−2は、視線算出部502の具体的処理の概要を示す説明図である。ここでは、図6に示した眼球600に近赤外線を照射したときの角膜表面におけるプルキニエ像603を利用して、第1の視線ベクトルV1を算出する場合について説明する。
(i)視線算出部502は、画像座標系410における眼球画像EP上の瞳孔601の瞳孔中心1201の位置ベクトルP’Pおよびプルキニエ像603の位置ベクトルuPを算出する。そして、視線算出部502は、瞳孔中心1201の位置ベクトルP’Pおよびプルキニエ像603の位置ベクトルuPをカメラ座標系420に座標変換する。
ここで、世界座標系430におけるプルキニエ像603および瞳孔中心1201のZW座標は、ディスプレイ211と被写体の眼球600との距離として予め設定されている。このため、カメラ座標系420における瞳孔中心1201の位置ベクトルP’Cは、世界座標系430における瞳孔中心1201のZW座標と画像座標系410における瞳孔中心1201の位置ベクトルP’Pから求めることができる。また、カメラ座標系420におけるプルキニエ像603の位置ベクトルuCは、世界座標系430におけるプルキニエ像603のZW座標と画像座標系410におけるプルキニエ像603の位置ベクトルuPから求めることができる。
なお、瞳孔中心1201は、たとえば、眼球画像EPに写っている眼球表面のうち、周囲に比べて暗い楕円領域(瞳孔601)の中心位置である。また、プルキニエ像603は、たとえば、眼球画像EPに写っている眼球表面のうち、瞳孔601の近傍に位置する輝点である。
(ii)視線算出部502は、プルキニエ像603の位置ベクトルuCから、角膜1202の角膜曲率中心1203の位置ベクトルcCを算出する。具体的には、たとえば、視線算出部502が、下記式(23)を用いて、角膜曲率中心1203の位置ベクトルcCを算出することができる。
ただし、cCは、カメラ座標系420における角膜曲率中心1203の位置ベクトルである。Cは、角膜曲率半径を表す定数である。‖uC‖は、位置ベクトルuCのノルムである。なお、図12−1中、符号1204は「房水」である。
一例として、C=7.6[mm]、プルキニエ像603の位置ベクトルuC(XC,YC,ZC)=(35.42,61.04,600)とする。この場合、上記式(23)から、角膜曲率中心1203の位置ベクトルcCは、『cC(XC,YC,ZC)=(35.42,61.04,607.6)』となる。なお、各座標値の単位は[mm]である。
(iii)視線算出部502は、眼球画像EP上での瞳孔中心1201の位置ベクトルP’Cから、角膜表面での瞳孔中心1201の位置ベクトルPCを算出する。具体的には、たとえば、視線算出部502が、下記式(24)を用いて、角膜表面での瞳孔中心1201の位置ベクトルPCを算出することができる。
ただし、PCは、角膜表面での瞳孔中心1201の位置ベクトルである。P’Cは、眼球画像EP上での瞳孔中心1201の位置ベクトルである。Cは、角膜曲率半径を表す定数である。‖P’C‖は、位置ベクトルP’Cのノルムである。また、Mは下記式(25)となる。ただし、‖P’C−uC‖は、位置ベクトル(P’C−uC)のノルムである。
一例として、C=7.6[mm]、眼球画像EP上での瞳孔中心1201の位置ベクトルP’C(XC,YC,ZC)=(35.14,59.22,600)とする。この場合、上記式(24)および(25)から、角膜表面での瞳孔中心1201の位置ベクトルPCは、『PC(XC,YC,ZC)=(35.15,59.44,607.6)』となる。
ただし、角膜1202に照射した光は、角膜表面で屈折する。したがって、観察された瞳孔601も実際の位置からは屈折して見えることになるため、位置ベクトルPCの補正が必要となる。そこで、視線算出部502が、角膜表面での瞳孔中心1201の位置ベクトルPCを補正する。
(iv)視線算出部502は、角膜表面での瞳孔中心1201に入射した光の屈折ベクトルtCと、角膜曲率中心1203から瞳孔中心1201までの距離Lとに基づいて、角膜表面での瞳孔中心1201の位置ベクトルPCを補正する。具体的には、たとえば、視線算出部502が、下記式(26)を用いて、補正後の瞳孔中心1201の位置ベクトルpCを求めることができる。
ただし、pCは、補正後の瞳孔中心1201の位置ベクトルである。Lは、角膜曲率中心1203から瞳孔中心1201までの距離を表す定数である。Cは、角膜曲率半径を表す定数である。PCは、角膜表面での瞳孔中心1201の位置ベクトルである。また、tCは下記式(27)となる。ただし、n1は空気の屈折率、n2は房水1204の屈折率である。rCは、眼球画像EP上での瞳孔中心1201の位置ベクトルP’Cの単位ベクトルである。(rC,n)は、rCとnとの内積を表す。また、nは下記式(28)となる。
一例として、C=7.6[mm]、L=4.5[mm]、屈折ベクトルtC(XC,YC,ZC)=(0.057,0.13,1)とし、単位ベクトルn(XC,YC,ZC)=(−0.036,−0.21,−1)とする。この場合、上記式(26)〜(28)から、補正後の瞳孔中心1201の位置ベクトルpCは、『pC(XC,YC,ZC)=(35.3,59.83,603.07)』となる。
(v)視線算出部502は、補正後の瞳孔中心1201の位置ベクトルpCおよび角膜曲率中心1203の位置ベクトルcCを、カメラ座標系420から世界座標系430に座標変換する。そして、視線算出部502は、世界座標系430における補正後の瞳孔中心1201の位置ベクトルpWと、角膜曲率中心1203の位置ベクトルcWとに基づいて、第1の視線ベクトルV1Wを算出する。
具体的には、たとえば、視線算出部502が、下記式(29)を用いて、第1の視線ベクトルV1Wを求めることができる。ただし、V1Wは、世界座標系430における第1の視線ベクトルV1である。
V1W=pW−cW ・・・(29)
一例として、瞳孔中心1201の位置ベクトルpW(XW,YW,ZW)=(35.3,59.83,603.07)とし、角膜曲率中心1203の位置ベクトルcW(XW,YW,ZW)=(35.42,61.04,607.6)とする。この場合、上記式(29)から、第1の視線ベクトルV1Wは、『V1W(XW,YW,ZW)=(−0.12,−1.21,−4.53)』となる。
また、視線算出部502が、世界座標系430における第1の視線ベクトルV1Wを極座標変換することにより、上記式(1)に含まれる動径r1、偏角θ1およびφ1を求めることができる。一例として、第1の視線ベクトルV1W(XW,YW,ZW)=(1,1,−7)とすると、極座標系における第1の視線ベクトルVは『r1=1.74,θ1=168.58,φ1=45』となる。
なお、上述した説明では、人の左眼または右眼のいずれか一方の眼球に着目して、第1の視線ベクトルV1Wを求めることにしたが、これに限らない。たとえば、視線算出部502が、左眼および右眼の眼球画像EPから左眼および右眼の第1の視線ベクトルV1Wを求めて、左眼および右眼の第1の視線ベクトルV1Wの平均値をとることにしてもよい。
(第1の位置算出部506の具体的な処理内容)
第1の視線ベクトルV1に基づく表示画像SP上の視線位置を算出する第1の位置算出部506の具体的な処理内容について説明する。図13は、視線ベクトルと視線位置との関係を表す説明図である。
図13において、点Oは、世界座標系430における角膜曲率中心1203(図12−1参照)の位置ベクトルcWの先端の点である。点Aは、世界座標系430における第1の視線ベクトルV1Wの先端の点である。点A’は、第1の視線ベクトルV1Wの方向に伸びる直線と表示画像SPとが交わる点、すなわち、仮の視線位置VPである。
ここで、三角形OABと三角形OA’B’は相似関係にある。このため、角膜曲率中心1203の位置ベクトルcWのZW座標と第1の視線ベクトルV1WのZW座標との比率を利用して、仮の視線位置VPを求めることができる。具体的には、たとえば、第1の位置算出部506が、下記式(30)および(31)を用いて、仮の視線位置VPを求めることができる。
ただし、vx,vyは、仮の視線位置VPのXW座標およびYW座標である。また、仮の視線位置VPのZW座標は「0」である。xV1,yV1は、第1の視線ベクトルV1WのXW座標およびYW座標である。Gは、角膜曲率中心1203の位置ベクトルcWのZW座標の絶対値である。gは、第1の視線ベクトルV1WのZW座標の絶対値である。
vx=(G/g)×xV1 ・・・(30)
vy=(G/g)×yV1 ・・・(31)
一例として、世界座標系430における第1の視線ベクトルV1WをV1W(XW,YW,ZW)=(1.15,1.15,−7.00)とし、角膜曲率中心1203の位置ベクトルcWをcW(XW,YW,ZW)=(30,30,607)とする。この場合、上記Gは「G=607」となり、上記gは「g=7」となる。
したがって、仮の視線位置VPのXW座標は、上記式(30)から「vx=99.72=(607/7)×1.15」となる。また、仮の視線位置VPのYW座標は、上記式(31)から「vy=99.72=(607/7)×1.15」となる。
つぎに、図13を用いて、被写体の眼球から注視点Wに向かう第2の視線ベクトルV2を算出する視線算出部502の具体的な処理内容について説明する。図13において、点Cは、世界座標系430における第2の視線ベクトルV2Wの先端の点である。点C’は、第2の視線ベクトルV2Wの方向に伸びる直線と表示画像SPとが交わる点、すなわち、注視点Wである。
ここで、三角形OCBと三角形OC’B’は相似関係にある。このため、角膜曲率中心1203の位置ベクトルcWのZW座標と第1の視線ベクトルV1WのZW座標との比率を利用して、第2の視線ベクトルV2Wを求めることができる。具体的には、たとえば、視線算出部502が、下記式(32)〜(34)を用いて、第2の視線ベクトルV2Wを求めることができる。
ただし、wx,wyは、注視点WのXW座標およびYW座標である。また、注視点WのZW座標は「0」である。xV2,yV2,zV2は、第2の視線ベクトルV2WのXW座標、YW座標およびZW座標である。zV1は、第1の視線ベクトルV1WのZW座標である。Gは、角膜曲率中心1203の位置ベクトルcWのZW座標の絶対値である。gは、第1の視線ベクトルV1WのZW座標の絶対値である。
xV2=(g/G)×wx ・・・(32)
yV2=(g/G)×wy ・・・(33)
zV2=zV1 ・・・(34)
一例として、世界座標系430における注視点Wを(XW,YW,ZW)=(100,100,0)とし、角膜曲率中心1203の位置ベクトルcWをcW(XW,YW,ZW)=(30,30,607)とする。第1の視線ベクトルV1WのZW座標を「ZW=−7」とする。この場合、上記Gは「G=607」となり、上記gは「g=7」となる。
したがって、第2の視線ベクトルV2WのXW座標は、上記式(32)から「xV2=1.15」となる。また、第2の視線ベクトルV2WのYW座標は、上記式(33)から「yV2=1.15」となる。また、第2の視線ベクトルV2WのZW座標は、上記式(34)から「zV2=−7」となる。
そして、視線算出部502が、第2の視線ベクトルV2Wを極座標変換することにより、第2の視線ベクトルV2を求めることができる。一例として、第2の視線ベクトルV2Wを『(XW,YW,ZW)=(1.15,1.15,−7)』とすると、第2の視線ベクトルV2は『r2=7.18,θ2=166.92,φ2=45』となる。
(特徴量算出部503の具体的な処理内容)
つぎに、領域A1〜Anごとの特徴量C1〜Cnを算出する特徴量算出部503の具体的な処理内容について説明する。ここでは、まず、表示画像SPに対して2値化処理を施すことにより、領域A1〜Anごとの特徴量C1〜Cnを算出する場合について説明する。
<2値化処理>
図14は、2値化処理の概要を示す説明図である。図14において、表示画像輝度テーブル1410は、領域ID、座標位置および輝度のフィールドを有し、領域A1〜Anごとの輝度情報1410−1〜1410−nを記憶している。
領域IDは、各領域A1〜Anの識別子である。座標位置は、世界座標系430における各領域A1〜Anの中心点のXW座標およびYW座標である。輝度は、各領域A1〜Anの赤(R)、緑(G)、青(B)ごとの輝度である。ここでは、各色の輝度が「0〜255」の256階調で表現されている。
まず、特徴量算出部503は、表示画像SPをグレースケール画像LPに変換する。ここで、グレースケール画像LPとは、画像を灰色の濃淡(白から黒までの明暗)だけで表現したものである。具体的には、たとえば、特徴量算出部503が、表示画像SPの各領域A1〜Anの色ごとの輝度に基づいて、グレースケール画像における各領域A1〜Anの灰色の輝度を算出する。
より具体的には、たとえば、特徴量算出部503が、下記式(35)を用いて、グレースケール画像における領域A1〜Anごとの灰色の輝度を算出することができる。ただし、L(i)は、グレースケール画像における領域Aiの灰色の輝度である。R(i)は、表示画像SPにおける領域Aiの赤色の輝度である。G(i)は、表示画像SPにおける領域Aiの緑色の輝度である。B(i)は、表示画像SPにおける領域Aiの青色の輝度である。
L(i)={R(i)+G(i)+B(i)}/3 ・・・(35)
すなわち、特徴量算出部503は、表示画像輝度テーブル1410を参照して、領域Aiの輝度R(i)、G(i)、B(i)を上記式(35)に代入することにより、領域Aiの輝度L(i)を算出することができる。たとえば、領域A4の輝度L(4)は、『L(4)=200』となる。
なお、算出された領域A1〜Anごとの灰色の輝度L(1)〜L(n)は、たとえば、グレースケール画像輝度テーブル1420に記憶される。グレースケール画像輝度テーブル1420は、領域ID、座標位置および輝度のフィールドを有し、領域A1〜Anごとの輝度情報1420−1〜1420−nを記憶している。ここで、輝度は、各領域A1〜Anの灰色(L)の輝度である。
つぎに、特徴量算出部503は、変換後のグレースケール画像に対して、2値化処理を実行する。ここで、2値化処理とは、濃淡のある画像を白と黒の2階調に変換する処理である。具体的には、たとえば、特徴量算出部503は、各領域A1〜Anの灰色の輝度が、所定の閾値L以上となる場合は「白」、閾値L未満となる場合は「黒」に置き換える。なお、閾値Lは、任意に設定されて、ROM202、RAM203、磁気ディスク205、光ディスク207などの記憶装置に記憶されている。
より具体的には、たとえば、特徴量算出部503は、グレースケール画像輝度テーブル1420を参照して、領域Aiの灰色の輝度L(i)が、閾値L以上となる場合は、輝度L(i)を「255」に置き換える。一方、特徴量算出部503は、領域Aiの灰色の輝度L(i)が、閾値L未満となる場合は、輝度L(i)を「0」に置き換える。
ここで、上記閾値Lを『L=200』とする。この場合、たとえば、領域A1の輝度L(1)は、閾値L未満のため「0」に置き換えられる。また、領域A4の輝度L(4)は、閾値L以上のため「255」に置き換えられる。
なお、2値化された領域A1〜Anごとの輝度L(1)〜L(n)は、たとえば、図7に示した特徴量テーブル700の領域A1〜Anごとの「特徴量」フィールドに記憶される。すなわち、各領域A1〜Anの2値化後の輝度L(1)〜L(n)を、人の視覚的な注意を引きつける強さを表す特徴量C1〜Cnとする。
このように、各領域A1〜Anの輝度L(1)〜L(n)を2値化して表すことにより、領域A1〜Anの中から輝度・色・形が周囲と異なる領域Aiを特定することができる。図15は、輝度・色・形が周囲と異なる領域の一例を示す説明図である。なお、図面では、表示画像SPの一部を抜粋して表示している。
図15において、表示画像SPaでは、領域Aaが周囲と比べて明るくなっている。表示画像SPbでは、領域Abが周囲と比べて色が異なっている。表示画像SPcでは、領域Acのみに文字が表示されている(形が周囲と異なる)。
表示画像SPにおいて、輝度・色・形が周囲と異なる領域Aiは、他の領域に比べて人の視線が向きやすい領域といえる。このため、各領域A1〜Anの輝度を2値化して表すことにより、領域Aa,Ab,Acのような輝度・色・形が周囲と異なる領域Aiを注視点Wに決定することができる。
なお、視線検出装置200は、領域Aa,Ab,Acのような輝度・色・形が周囲と異なる領域Aiを含む表示画像SPを、視線検出中の任意のタイミングでディスプレイ211に表示することにしてもよい。これにより、表示画像SPの中から注視点Wを精度よく決定して、被写体に固有の補正値(パラメータω1〜ω4の値)を高精度に算出することができる。
<顕著度マップ作成処理>
つぎに、表示画像SPに関する顕著度マップを作成することにより、領域A1〜Anごとの特徴量C1〜Cnを算出する場合について説明する。ここで、顕著度マップとは、表示画像SP上の領域A1〜Anごとの人の視覚的な注意を引きつける強さを顕著度として表すマップである。
具体的には、特徴量算出部503が、表示画像SPを輝度成分、色成分、方向成分に分離して、各成分に関する顕著度マップM1〜M3を作成する。そして、特徴量算出部503が、顕著度マップM1〜M3の線形和をとることにより、表示画像SPの顕著度マップMを作成する。
以下、図16〜図24を用いて、顕著度マップ作成処理の具体的な処理内容について説明する。ここでは、まず、図16および図17を用いて、輝度成分に関する表示画像SPの顕著度マップM1を作成する場合について説明する。
図16および図17は、輝度成分に関する顕著度マップ作成処理の概要を示す説明図である。図16において、(i)特徴量算出部503は、表示画像SPをグレースケール画像LPに変換する。ここで、表示画像輝度テーブル1610は、表示画像SP上の各領域A1〜Anの色(RGB)ごとの輝度を記憶するテーブルである。
具体的には、たとえば、特徴量算出部503が、表示画像輝度テーブル1610を参照して、表示画像SP上の領域Aiの輝度R(i)、G(i)、B(i)を上記式(35)に代入する。これにより、グレースケール画像LP上の領域Aiの灰色(L)の輝度L(i)を算出することができる。
グレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、グレースケール画像輝度テーブル1620に記憶される。グレースケール画像輝度テーブル1620は、グレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図16において、(ii)特徴量算出部503は、グレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DPを作成する。ここで、ガウシアンフィルタとは、画像を滑らかにして輪郭のボケを少なくすることを目的とした平滑化フィルタである。ダウンサンプリングとは、サンプリング周波数を下げて再サンプリングすることである。
ダウンサンプリング画像DP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ダウンサンプリング画像輝度テーブル1630に記憶される。ダウンサンプリング画像輝度テーブル1630は、ダウンサンプリング画像DP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図16において、(iii)特徴量算出部503は、ダウンサンプリング画像DPにアップサンプリング(バイリニア補間)を実施して、ピラミッド画像PPを作成する。ここで、アップサンプリングとは、サンプリング周波数を上げて再サンプリングすることである。ピラミッド画像PPとは、解像度の異なる画像の集合である。
ピラミッド画像PP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ピラミッド画像輝度テーブル1640に記憶される。ピラミッド画像輝度テーブル1640は、ピラミッド画像PP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。ただし、ピラミッド画像輝度テーブル1640は、ピラミッド画像PPの低解像度画像の各領域A1〜Anの輝度L(1)〜L(n)を記憶している。
図17において、(iv)特徴量算出部503は、ピラミッド画像PPに関する中心周辺差分処理を実施して、輝度成分に関する顕著度マップM1を作成する。ここで、中心周辺差分処理とは、ピラミッド画像PPの高解像度画像と低解像度画像との差分を取ることである。ここでは、ピラミッド画像PPの高解像度画像の各領域A1〜Anの輝度L(1)〜L(n)として、グレースケール画像輝度テーブル1620内の各領域A1〜Anの輝度L(1)〜L(n)を用いる。
具体的には、特徴量算出部503が、ピラミッド画像輝度テーブル1640内の領域Aiの輝度L(i)と、グレースケール画像輝度テーブル1620内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度成分に関する顕著度を算出する。たとえば、領域A2の輝度成分に関する顕著度は、『47=|33−80|』となる。
表示画像SP上の各領域A1〜Anの輝度成分に関する顕著度は、たとえば、輝度顕著度テーブル1700に記憶される。輝度顕著度テーブル1700は、表示画像SP上の各領域A1〜Anの輝度成分に関する顕著度を記憶するテーブルである。これにより、輝度成分に関する表示画像SPの顕著度マップM1を作成することができる。
なお、上述した各種テーブル1610,1620,1630,1640,1700は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。
つぎに、図18〜図20を用いて、色成分に関する表示画像SPの顕著度マップM2を作成する場合について説明する。図18〜図20は、色成分に関する顕著度マップ作成処理の概要を示す説明図である。
図18および図19において、(i)特徴量算出部503は、表示画像輝度テーブル1610(図16参照)を参照して、表示画像SPをR成分、G成分、B成分およびY(黄)成分に分離する。ここで、表示画像SP上の各領域A1〜Anの黄色の輝度Y(1)〜Y(n)は、たとえば、特徴量算出部503が、下記式(36)を用いて求めることができる。ただし、Y(i)は、領域Aiの黄色の輝度である。R(i)は、領域Aiの赤色の輝度である。G(i)は、領域Aiの緑色の輝度である。B(i)は、領域Aiの青色の輝度である。なお、Y(i)が負の値の場合は「Y(i)=0」とする。
分離された表示画像SP上の各領域A1〜Anの赤色の輝度R(1)〜R(n)は、たとえば、R成分輝度テーブル1810に記憶される。R成分輝度テーブル1810は、表示画像SP上の各領域A1〜Anの赤色の輝度R(1)〜R(n)を記憶するテーブルである。
また、分離された表示画像SP上の各領域A1〜Anの緑色の輝度G(1)〜G(n)は、たとえば、G成分輝度テーブル1820に記憶される。G成分輝度テーブル1820は、表示画像SP上の各領域A1〜Anの緑色の輝度G(1)〜G(n)を記憶するテーブルである。
また、分離された表示画像SP上の各領域A1〜Anの青色の輝度B(1)〜B(n)は、たとえば、B成分輝度テーブル1910に記憶される。B成分輝度テーブル1910は、表示画像SP上の各領域A1〜Anの青色の輝度B(1)〜B(n)を記憶するテーブルである。
また、分離された表示画像SP上の各領域A1〜Anの黄色の輝度Y(1)〜Y(n)は、たとえば、Y成分輝度テーブル1920に記憶される。Y成分輝度テーブル1920は、表示画像SP上の各領域A1〜Anの黄色の輝度Y(1)〜Y(n)を記憶するテーブルである。
図18において、(ii)特徴量算出部503は、R成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してR成分のダウンサンプリング画像DPを作成する。
R成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度R(1)〜R(n)は、たとえば、R成分ダウンサンプリング画像輝度テーブル1811に記憶される。R成分ダウンサンプリング画像輝度テーブル1811は、R成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度R(1)〜R(n)を記憶するテーブルである。
図18において、(iii)特徴量算出部503は、R成分のダウンサンプリング画像DPにアップサンプリングを実施して、R成分のピラミッド画像PPを作成する。R成分のピラミッド画像PP上の各領域A1〜Anの輝度R(1)〜R(n)は、たとえば、R成分ピラミッド画像輝度テーブル1812に記憶される。R成分ピラミッド画像輝度テーブル1812は、R成分のピラミッド画像PP上の各領域A1〜Anの輝度R(1)〜R(n)を記憶するテーブルである。
図18において、(ii)特徴量算出部503は、G成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してG成分のダウンサンプリング画像DPを作成する。G成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度G(1)〜G(n)は、たとえば、G成分ダウンサンプリング画像輝度テーブル1821に記憶される。G成分ダウンサンプリング画像輝度テーブル1821は、G成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度G(1)〜G(n)を記憶するテーブルである。
図18において、(iii)特徴量算出部503は、G成分のダウンサンプリング画像DPにアップサンプリングを実施して、G成分のピラミッド画像PPを作成する。G成分のピラミッド画像PP上の各領域A1〜Anの輝度G(1)〜G(n)は、たとえば、G成分ピラミッド画像輝度テーブル1822に記憶される。G成分ピラミッド画像輝度テーブル1822は、G成分のピラミッド画像PP上の各領域A1〜Anの輝度G(1)〜G(n)を記憶するテーブルである。
図19において、(ii)特徴量算出部503は、B成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してB成分のダウンサンプリング画像DPを作成する。B成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度B(1)〜B(n)は、たとえば、B成分ダウンサンプリング画像輝度テーブル1911に記憶される。B成分ダウンサンプリング画像輝度テーブル1911は、B成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度B(1)〜B(n)を記憶するテーブルである。
図19において、(iii)特徴量算出部503は、B成分のダウンサンプリング画像DPにアップサンプリングを実施して、B成分のピラミッド画像PPを作成する。B成分のピラミッド画像PP上の各領域A1〜Anの輝度B(1)〜B(n)は、たとえば、B成分ピラミッド画像輝度テーブル1912に記憶される。B成分ピラミッド画像輝度テーブル1912は、B成分のピラミッド画像PP上の各領域A1〜Anの輝度B(1)〜B(n)を記憶するテーブルである。
図19において、(ii)特徴量算出部503は、Y成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してY成分のダウンサンプリング画像DPを作成する。Y成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度Y(1)〜Y(n)は、たとえば、Y成分ダウンサンプリング画像輝度テーブル1921に記憶される。Y成分ダウンサンプリング画像輝度テーブル1921は、Y成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度Y(1)〜Y(n)を記憶するテーブルである。
図19において、(iii)特徴量算出部503は、Y成分のダウンサンプリング画像DPにアップサンプリングを実施して、Y成分のピラミッド画像PPを作成する。Y成分のピラミッド画像PP上の各領域A1〜Anの輝度Y(1)〜Y(n)は、たとえば、Y成分ピラミッド画像輝度テーブル1922に記憶される。Y成分ピラミッド画像輝度テーブル1922は、Y成分のピラミッド画像PP上の各領域A1〜Anの輝度Y(1)〜Y(n)を記憶するテーブルである。
図20において、(iv)特徴量算出部503は、R成分の表示画像SPとG成分の表示画像SPに関する中心周辺差分処理を実施する。具体的には、たとえば、特徴量算出部503が、下記式(37)を用いて、表示画像SP上の各領域A1〜Anの赤色および緑色(RG)の輝度RG(1)〜RG(n)を算出する。ただし、RG(i)は、表示画像SP上の領域Aiの赤色および緑色の輝度である。R(i)は、表示画像SP上の領域Aiの赤色の輝度である。G(i)は、表示画像SP上の領域Aiの緑色の輝度である。RP(i)は、R成分のピラミッド画像PP上の領域Aiの赤色の輝度である。GP(i)は、G成分のピラミッド画像PP上の領域Aiの緑色の輝度である。
RG(i)=|{R(i)−G(i)}−{GP(i)−RP(i)}|
・・・(37)
なお、輝度R(i)は、R成分輝度テーブル1810に記憶されている。輝度G(i)は、G成分輝度テーブル1820に記憶されている。輝度RP(i)は、R成分ピラミッド画像輝度テーブル1812に記憶されている。輝度GP(i)は、G成分ピラミッド画像輝度テーブル1822に記憶されている。また、算出された表示画像SP上の各領域A1〜Anの赤色および緑色の輝度RG(1)〜RG(n)は、たとえば、RG成分輝度テーブル2010に記憶される。RG成分輝度テーブル2010は、表示画像SP上の各領域A1〜Anの赤色および緑色の輝度RG(1)〜RG(n)を記憶するテーブルである。
図20において、(iv)特徴量算出部503は、B成分の表示画像SPとY成分の表示画像SPに関する中心周辺差分処理を実施する。具体的には、たとえば、特徴量算出部503が、下記式(38)を用いて、表示画像SP上の各領域A1〜Anの青色および黄色(BY)の輝度BY(1)〜BY(n)を算出する。ただし、BY(i)は、表示画像SP上の領域Aiの青色および黄色の輝度である。B(i)は、表示画像SP上の領域Aiの青色の輝度である。Y(i)は、表示画像SP上の領域Aiの黄色の輝度である。BP(i)は、B成分のピラミッド画像PP上の領域Aiの青の輝度である。YP(i)は、Y成分のピラミッド画像PP上の領域Aiの黄色の輝度である。
BY(i)={B(i)−Y(i)}−{YP(i)−BP(i)}・・・(38)
なお、輝度B(i)は、B成分輝度テーブル1910に記憶されている。輝度Y(i)は、Y成分輝度テーブル1920に記憶されている。輝度BP(i)は、B成分ピラミッド画像輝度テーブル1912に記憶されている。輝度YP(i)は、Y成分ピラミッド画像輝度テーブル1922に記憶されている。また、算出された表示画像SP上の各領域A1〜Anの青色および黄色の輝度BY(1)〜BY(n)は、たとえば、BY成分輝度テーブル2020に記憶される。BY成分輝度テーブル2020は、表示画像SP上の各領域A1〜Anの青色および黄色の輝度BY(1)〜BY(n)を記憶するテーブルである。
図20において、(v)特徴量算出部503は、領域A1〜Anの輝度RG(1)〜RG(n)と、領域A1〜Anの輝度BY(1)〜BY(n)との線形和をとることにより、色成分に関する顕著度マップM2を作成する。具体的には、特徴量算出部503が、RG成分輝度テーブル2010内の領域Aiの輝度RG(i)と、BY成分輝度テーブル2020内の領域Aiの輝度BY(i)とを足し合わせて、領域Aiの色成分に関する顕著度を算出する。たとえば、領域A2の色成分に関する顕著度は、『340=20+320』となる。
表示画像SP上の各領域A1〜Anの色成分に関する顕著度は、たとえば、色顕著度テーブル2030に記憶される。色顕著度テーブル2030は、表示画像SP上の各領域A1〜Anの色成分に関する顕著度を記憶するテーブルである。これにより、色成分に関する表示画像SPの顕著度マップM2を作成することができる。
なお、上述した各種テーブル1810〜1812,1820〜1822,1910〜1912,1920〜1922,2010,2020,2030は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。
つぎに、図21〜図23を用いて、方向成分に関する表示画像SPの顕著度マップM3を作成する場合について説明する。なお、以下に示す各角度(0度、45度、90度、135度)は、ガボール関数の縞模様の方向である。図21〜図23は、方向成分に関する顕著度マップ作成処理の概要を示す説明図である。
図21において、(i)特徴量算出部503は、グレースケール画像輝度テーブル1620を参照して、グレースケール画像LPに対して0度のガボールフィルタによりフィルタリングする。ガボールフィルタとは、画像の局所的な濃淡情報を取り出すものである。0度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、0度ガボールフィルタ輝度テーブル2110に記憶される。0度ガボールフィルタ輝度テーブル2110は、0度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図21において、(i)特徴量算出部503は、グレースケール画像輝度テーブル1620を参照して、グレースケール画像LPに対して45度のガボールフィルタによりフィルタリングする。45度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、45度ガボールフィルタ輝度テーブル2120に記憶される。45度ガボールフィルタ輝度テーブル2120は、45度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図22において、(i)特徴量算出部503は、グレースケール画像輝度テーブル1620を参照して、グレースケール画像LPに対して90度のガボールフィルタによりフィルタリングする。90度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、90度ガボールフィルタ輝度テーブル2210に記憶される。90度ガボールフィルタ輝度テーブル2210は、90度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図22において、(i)特徴量算出部503は、グレースケール画像輝度テーブル1620を参照して、グレースケール画像LPに対して135度のガボールフィルタによりフィルタリングする。135度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、135度ガボールフィルタ輝度テーブル2220に記憶される。135度ガボールフィルタ輝度テーブル2220は、135度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図21において、(ii)特徴量算出部503は、0度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(0度)を作成する。ダウンサンプリング画像DP(0度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ダウンサンプリング画像輝度テーブル2111に記憶される。
図21において、(ii)特徴量算出部503は、45度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(45度)を作成する。ダウンサンプリング画像DP(45度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ダウンサンプリング画像輝度テーブル2121に記憶される。
図22において、(ii)特徴量算出部503は、90度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(90度)を作成する。ダウンサンプリング画像DP(90度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ダウンサンプリング画像輝度テーブル2211に記憶される。
図22において、(ii)特徴量算出部503は、135度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(135度)を作成する。ダウンサンプリング画像DP(135度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ダウンサンプリング画像輝度テーブル2221に記憶される。
図21において、(iii)特徴量算出部503は、ダウンサンプリング画像DP(0度)にアップサンプリングを実施して、ピラミッド画像PP(0度)を作成する。ピラミッド画像PP(0度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ピラミッド画像輝度テーブル2112に記憶される。
図21において、(iii)特徴量算出部503は、ダウンサンプリング画像DP(45度)にアップサンプリングを実施して、ピラミッド画像PP(45度)を作成する。ピラミッド画像PP(45度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ピラミッド画像輝度テーブル2122に記憶される。
図22において、(iii)特徴量算出部503は、ダウンサンプリング画像DP(90度)にアップサンプリングを実施して、ピラミッド画像PP(90度)を作成する。ピラミッド画像PP(90度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ピラミッド画像輝度テーブル2212に記憶される。
図22において、(iii)特徴量算出部503は、ダウンサンプリング画像DP(135度)にアップサンプリングを実施して、ピラミッド画像PP(135度)を作成する。ピラミッド画像PP(135度)上の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、ピラミッド画像輝度テーブル2222に記憶される。
図23において、(iv)特徴量算出部503は、ピラミッド画像PP(0度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部503が、0度ガボールフィルタ輝度テーブル2110内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2112内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(0度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、0度差分輝度テーブル2311に記憶される。
図23において、(iv)特徴量算出部503は、ピラミッド画像PP(45度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部503が、45度ガボールフィルタ輝度テーブル2120内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2122内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(45度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、45度差分輝度テーブル2312に記憶される。
図23において、(iv)特徴量算出部503は、ピラミッド画像PP(90度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部503が、90度ガボールフィルタ輝度テーブル2210内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2212内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(90度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、90度差分輝度テーブル2313に記憶される。
図23において、(iv)特徴量算出部503は、ピラミッド画像PP(135度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部503が、135度ガボールフィルタ輝度テーブル2220内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2222内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(135度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、たとえば、135度差分輝度テーブル2314に記憶される。
図23において、(v)特徴量算出部503は、0度、45度、90度、135度のガボールフィルタに通したグレースケール画像LPに基づく領域A1〜Anの輝度L(1)〜L(n)の線形和をとることにより、方向成分に関する顕著度マップM3を作成する。具体的には、特徴量算出部503が、差分輝度テーブル2311〜2314内の領域Aiの輝度L(i)を足し合わせて、領域Aiの方向成分に関する顕著度を算出する。たとえば、領域A3の方向成分に関する顕著度は、『170=0+0+0+170』となる。
表示画像SP上の各領域A1〜Anの方向成分に関する顕著度は、たとえば、方向顕著度テーブル2320に記憶される。方向顕著度テーブル2320は、表示画像SP上の各領域A1〜Anの方向成分に関する顕著度を記憶するテーブルである。これにより、方向成分に関する表示画像SPの顕著度マップM3を作成することができる。
なお、上述した各種テーブル2110〜2112,2120〜2122,2210〜2212,2220〜2222,2311〜2314,2320は、たとえば、RAM203、磁気ディスク205、光ディスク207などの記憶装置により実現される。
つぎに、図24を用いて、輝度成分、色成分および方向成分に関する表示画像SPの顕著度マップM1〜M3の線形和をとることにより、表示画像SPの顕著度マップMを作成する場合について説明する。図24は、表示画像の顕著度マップ作成処理の概要を示す説明図である。
図24において、(i)特徴量算出部503は、輝度顕著度テーブル1700(図17参照)の領域A1〜Anごとの顕著度を、最小値が「0」かつ最大値が「255」となるように正規化する。ここでは、たとえば、領域A2の顕著度が「47」から「120」に変換されている。
図24において、(i)特徴量算出部503は、色顕著度テーブル2030の領域A1〜Anごとの顕著度を、最小値が「0」かつ最大値が「255」となるように正規化する。ここでは、たとえば、領域A3の顕著度が「780」から「255」に変換されている。
図24において、(i)特徴量算出部503は、方向顕著度テーブル2320の領域A1〜Anごとの顕著度を、最小値が「0」かつ最大値が「255」となるように正規化する。ここでは、たとえば、領域A2の顕著度が「170」から「255」に変換されている。
図24において、(ii)特徴量算出部503は、輝度、色、方向顕著度テーブル1700,2030,2320の領域A1〜Anごとの顕著度の線形合成を行うことにより、領域A1〜Anごとの顕著度を算出する。これにより、表示画像SPに関する顕著度マップMを作成することができる。
具体的には、特徴量算出部503が、輝度、色、方向顕著度テーブル1700,2030,2320の領域A1〜Anごとの顕著度の線形和をとる。そして、特徴量算出部503が、線形和をとった領域A1〜Anごとの顕著度を最小値が「0」かつ最大値が「255」となるように正規化する。算出された領域A1〜Anごとの顕著度は、たとえば、図7に示した特徴量テーブル700内の領域A1〜Anごとの「特徴量」フィールドに記憶される。すなわち、ここでは、各領域A1〜Anの顕著度を、人の視覚的な注意を引きつける強さを表す特徴量C1〜Cnとしている。
ここで、領域A1〜Anのうち領域A1〜A4に着目する。この場合、たとえば、上記決定部504は、特徴量テーブル700を参照して、領域A1〜A4のうち、特徴量が最大の領域A3を注視点Wに決定する。ここで、表示画像SPに関する顕著度マップMの具体例について説明する。
図25は、顕著度マップの具体例を示す説明図である。図25において、表示画像2501は、ディスプレイ211に表示された表示画像SPである。また、顕著度マップ2502は、表示画像2501の顕著度マップMである。顕著度マップ2502では、輝度や色などの特徴が周囲に比べて顕著な部分を強調して表している。
具体的には、顕著度マップ2502において、白い部分は黒い部分に比べて人の視覚的な注意を引きつける強さが大きいことを表している。顕著度マップ2502によれば、表示画像2501の中から人が注視しやすい注視点Wを高精度に決定することができる。
(視線検出処理手順)
つぎに、視線検出装置200の視線検出処理手順について説明する。図26および図27は、視線検出装置の視線検出処理手順の一例を示すフローチャートである。図26のフローチャートにおいて、まず、取得部501により、表示画像SPおよび眼球画像EPを取得したか否かを判断する(ステップS2601)。ただし、表示画像SPは、眼球画像EPの撮影時にディスプレイ211に表示中のものである。
ここで、取得部501により、表示画像SPおよび眼球画像EPを取得するのを待つ(ステップS2601:No)。このあと、取得部501により、表示画像SPおよび眼球画像EPを取得した場合(ステップS2601:Yes)、視線算出部502により、取得された眼球画像EPに基づいて、第1の視線ベクトルV1を算出する(ステップS2602)。第1の視線ベクトルV1は、被写体の眼球からディスプレイ211に向かうベクトルである。
つぎに、補正部510により、パラメータテーブル900を参照して、パラメータω1〜ω4の値が登録されているか否かを判断する(ステップS2603)。ここで、パラメータω1〜ω4の値が登録されている場合(ステップS2603:Yes)、補正部510により、パラメータω1〜ω4の値を用いて、第1の視線ベクトルV1を補正する(ステップS2604)。
そして、補正部510により、ベクトルテーブル1000の記憶内容を更新する(ステップS2605)。具体的には、補正部510が、眼球画像EPの撮影時刻tと、補正後の第1の視線ベクトルV1の偏角θ1,φ1をベクトルテーブル1000に記憶する。
また、ステップS2603において、パラメータω1〜ω4の値が登録されていない場合(ステップS2603:No)、視線算出部502により、ベクトルテーブル1000の記憶内容を更新する(ステップS2605)。具体的には、視線算出部502が、眼球画像EPの撮影時刻tと、第1の視線ベクトルV1の偏角θ1,φ1をベクトルテーブル1000に記憶する。
このあと、速度判定部514により、ベクトルテーブル1000を参照して、一対のベクトルデータが存在するか否かを判断する(ステップS2606)。ここで、一対のベクトルデータが存在しない場合(ステップS2606:No)、ステップS2609に移行する。
一方、一対のベクトルデータが存在する場合(ステップS2606:Yes)、速度判定部514により、上記式(11)および(12)を用いて、一対のベクトルデータの偏角θ1,φ1の差分Sθ,Sφを算出する(ステップS2607)。
そして、速度判定部514により、算出された差分Sθ,Sφの少なくともいずれか一方が閾値S以上となるか否かを判断して、サッカードが発生したか否かを判定する(ステップS2608)。ここで、サッカードが発生していない場合(ステップS2608:No)、図27に示すステップS2619に移行する。
一方、サッカードが発生した場合(ステップS2608:Yes)、決定部504により、表示画像SPの中から注視点Wを決定する注視点決定処理を実行する(ステップS2609)。そして、視線算出部502により、被写体の眼球から注視点Wに向かう第2の視線ベクトルV2を算出して(ステップS2610)、図27に示すステップS2611に移行する。
つぎに、図27のフローチャートにおいて、関連付け部508により、第1の視線ベクトルV1と第2の視線ベクトルV2とを関連付けて(ステップS2611)、ベクトルペアテーブル800に登録する(ステップS2612)。ただし、第1の視線ベクトルV1は、ステップS2602において算出された第1の視線ベクトルV1、または、ステップS2604において補正された補正後の第1の視線ベクトルV1である。第2の視線ベクトルV2は、ステップS2610において算出された第2の視線ベクトルV2である。
このあと、誤差算出部512により、上記式(7)〜(9)を用いて、関連付けられた第1の視線ベクトルV1と第2の視線ベクトルV2との誤差を表す誤差ベクトルεを算出する(ステップS2613)。そして、誤差判定部513により、算出された誤差ベクトルεの各値εθ,εφが閾値ε0未満となるか否かを判定する(ステップS2614)。
ここで、誤差ベクトルεの各値εθ,εφが閾値ε0未満となる場合(ステップS2614:Yes)、本フローチャートによる一連の処理を終了する。一方、各値εθ,εφが閾値ε0未満とならない場合(ステップS2614:No)、補正値算出部509により、ベクトルペアテーブル800を参照して、ベクトルペアPjが2組以上あるか否かを判断する(ステップS2615)。
ここで、ベクトルペアPjが2組未満の場合(ステップS2615:No)、ステップS2619に移行する。一方、ベクトルペアPjが2組以上の場合(ステップS2615:Yes)、補正値算出部509により、被写体に固有のパラメータω1〜ω4の値を算出する(ステップS2616)。
なお、ベクトルペアPjが2組の場合、補正値算出部509が、たとえば、上記式(13)および(14)を用いて、パラメータω1〜ω4の値を算出することにしてもよい。また、ベクトルペアPjが3組以上の場合、補正値算出部509が、たとえば、上記式(15)〜(20)を用いて、パラメータω1〜ω4の値を算出することにしてもよい。
このあと、補正値算出部509により、算出されたパラメータω1〜ω4の値をパラメータテーブル900に登録して、パラメータテーブル900の記憶内容を更新する(ステップS2617)。そして、補正部510により、パラメータテーブル900内のパラメータω1〜ω4の値を用いて、第1の視線ベクトルV1を補正する(ステップS2618)。
つぎに、第2の位置算出部511により、第1の視線ベクトルV1に基づいて、表示画像SP上の被写体の視線位置RPを算出する(ステップS2619)。そして、出力部515により、表示画像SPと被写体の視線位置RPとを関連付けて表す視線検出結果Rを出力して(ステップS2620)、図26に示したステップS2601に戻る。
これにより、被写体の視線検出中に、被写体に意識させることなく補正値(パラメータω1〜ω4の値)を算出することができる。また、被写体に固有の補正値を用いて、第1の視線ベクトルV1を補正することにより、被写体の個人差にともなう誤差を補正した視線位置RPを検出することができる。
なお、ステップS2601において、表示画像SPおよび眼球画像EPが一定時間継続して取得されなかった場合は、各種テーブル800,900,1000等の記憶内容を初期化することにしてもよい。これにより、カメラ212の撮影対象となる被写体が変わった場合に、新たな被写体に固有の補正値を算出してキャリブレーションを行うことができる。
つぎに、図26に示したステップS2609の注視点決定処理の具体的処理手順について説明する。図28は、注視点決定処理の具体的処理手順の一例を示すフローチャートである。
図28のフローチャートにおいて、まず、第1の位置算出部506により、第1の視線ベクトルV1に基づいて、表示画像SP上の仮の視線位置VPを算出する(ステップS2801)。つぎに、抽出部507により、表示画像SPの中から仮の視線位置VPを含む所定範囲の画像を抽出する(ステップS2802)。
そして、特徴量算出部503により、所定範囲の画像上の領域A1〜Anごとの特徴量C1〜Cnを算出する(ステップS2803)。具体的には、たとえば、特徴量算出部503が、所定範囲の画像に関する顕著度マップMを作成することにより、領域A1〜Anごとの顕著度を特徴量C1〜Cnとして算出する。
このあと、領域特定部505により、複数のA1〜Anの中から、特徴量が最大となる領域Amaxを特定する(ステップS2804)。そして、決定部504により、特定された領域Amaxが複数存在するか否かを判断する(ステップS2805)。
ここで、特定された領域Amaxが一つの場合(ステップS2805:No)、決定部504により、特定された領域Amaxを注視点Wに決定して(ステップS2806)、図26に示したステップS2610に移行する。
一方、ステップS2805において、特定された領域Amaxが複数存在する場合(ステップS2805:Yes)、領域特定部505により、上記式(2)を用いて、各領域Amax[k]と仮の視線位置VPとの距離d[k]を算出する(ステップS2807)。つぎに、領域特定部505により、複数の領域Amax[1]〜Amax[K]の中から、仮の視線位置VPの最近傍に位置する領域Amax[k]を特定する(ステップS2808)。
そして、決定部504により、特定された最近傍の領域Amax[k]が複数存在するか否かを判断する(ステップS2809)。ここで、特定された最近傍の領域Amax[k]が複数存在する場合(ステップS2809:Yes)、図27に示したステップS2619に移行する。
一方、特定された最近傍の領域Amax[k]が一つの場合(ステップS2809:No)、決定部504により、特定された最近傍の領域Amax[k]を注視点Wに決定して(ステップS2810)、図26に示したステップS2610に移行する。
これにより、眼球画像EPの撮影時にディスプレイ211に表示中の表示画像SP上の領域A1〜Anの中から、被写体の注視点Wを決定することができる。
以上説明したように、実施の形態2にかかる視線検出装置200によれば、表示画像SPに含まれる画素の画素値に基づいて、表示画像SP上の領域A1〜Anごとの特徴量C1〜Cnを算出することができる。これにより、眼球画像EPの撮影時にディスプレイ211に表示中の表示画像SP上の領域A1〜Anの中から、被写体の注視点Wを決定することができる。
また、視線検出装置200によれば、眼球画像EPに基づく第1の視線ベクトルV1を、被写体の眼球から注視点Wに向かう第2の視線ベクトルV2に略一致させるための被写体に固有の補正値を算出することができる。これにより、対象者の視線検出中に、対象者に意識させることなく補正値(パラメータω1〜ω4の値)を算出することができる。
また、視線検出装置200によれば、被写体に固有の補正値を用いて、第1の視線ベクトルV1を補正(キャリブレーション)することにより、被写体の個人差にともなう誤差を補正した視線位置RPを検出することができる。
また、視線検出装置200によれば、第1の視線ベクトルV1と第2の視線ベクトルV2との複数のベクトルペアPjを用いて統計的に補正値を算出することができる。これにより、被写体に固有の補正値を精度よく求めることができ、キャリブレーションでの補正精度を向上させることができる。
また、視線検出装置200によれば、既に算出済みの補正値を用いて補正された補正後の第1の視線ベクトルV1に基づいて、新たな補正値を算出することができる。これにより、被写体の個人差にともなう誤差が補正された第1の視線ベクトルV1を用いて補正値を再計算することができ、被写体に固有の補正値の算出精度を向上させることができる。
また、視線検出装置200によれば、複数の領域A1〜Anのうち特徴量が最大となる領域Amaxを注視点Wに決定することができる。これにより、人の視覚的な注意を引きつける強さが最も大きく、人の視線が最も向きやすい領域Amaxを注視点Wに決定することができる。
また、視線検出装置200によれば、特徴量が最大となる複数の領域Amax[1]〜Amax[K]のうち、仮の視線位置VPの最近傍に位置する領域Amax[k]を注視点Wに決定することができる。これにより、仮の視線位置VPに最も近く、人の視線が最も向きやすい領域Amax[k]を注視点Wに決定することができる。
また、視線検出装置200によれば、仮の視線位置VPの最近傍に位置する領域Amax[k]が複数存在すると判定された場合、表示画像SP上の注視点Wを決定しないことにすることができる。これにより、注視点Wの候補となる点が複数存在し、注視点Wを一意に決定することができない場合は、表示画像SP上の注視点Wを未決定とすることができる。
また、視線検出装置200によれば、表示画像SPから仮の視線位置VPを含む所定範囲の画像を抽出し、所定範囲の画像上の領域A[1]〜A[n]ごとの特徴量C[1]〜C[n]を算出することができる。これにより、表示画像SPにおいて仮の視線位置VPから離れすぎているために注視点Wとなる可能性が低い領域Aiを、注視点Wの候補から排除することができる。また、特徴量Ciの算出対象となる領域数が少なくなるため、特徴量Ciの算出処理にかかる負荷を軽減させることができる。
また、視線検出装置200によれば、表示画像SPの顕著度マップを作成することにより、領域A1〜Anごとの特徴量C1〜Cnを算出することができる。これにより、眼球画像EPの撮影時にディスプレイ211に表示中の表示画像SP上の領域A1〜Anの中から、被写体の注視点Wを高精度に決定することができる。
また、視線検出装置200によれば、第1の視線ベクトルV1と第2の視線ベクトルV2との誤差ベクトルεの各値εθ,εφが閾値ε0以上の場合、被写体に固有の補正値を算出することができる。これにより、既に算出済みのパラメータω1〜ω4の値を用いて補正された補正後の第1の視線ベクトルV1と第2の視線ベクトルV2との誤差が十分小さくなったら、パラメータω1〜ω4の値の更新を停止することができる。
また、視線検出装置200によれば、時系列に連続する一対の第1の視線ベクトルV1に基づいて、サッカードの発生を判定することができる。これにより、サッカードが発生していない場合は、特徴量C1〜Cnの算出処理を抑制し、パラメータω1〜ω4の値の算出にかかる一連の処理の効率化を図ることができる。
これらのことから、視線検出装置200によれば、対象者の視線検出中に、対象者に意識させることなくキャリブレーションを行うことが可能となり、対象者の個人差にともなう誤差を補正した視線を検出することができる。
また、視線検出装置200を、たとえば、デジタルサイネージを利用した広告システムに適用することにより、対象者が見ている広告の内容を正確に特定することができる。この結果、対象者が見ている内容に関連する詳細情報をさらに表示するなどして、より効果的な宣伝広告を行うことができる。
また、視線検出装置200を、たとえば、eラーニングを利用した学習システムに適用することにより、対象者が読み飛ばした部分を顕著に表示するなどして、リアルタイムに対象者の学習をサポートすることができる。
また、視線検出装置200を、たとえば、パーソナル・コンピュータに適用することにより、ユーザが見たウェブサイト上のバナー広告などを特定することができる。これにより、ユーザに意識させることなく、ウェブサイト上のバナー広告などの閲覧回数を調査することが可能となる。
また、視線検出装置200を、たとえば、飛行機のフライトシミュレータに適用することにより、熟練パイロットや訓練生の視線を正確に検出することができる。これにより、たとえば、パイロット養成において、熟練パイロットの視線と訓練生の視線とを比較して、訓練生に的確なアドバイスを行うことができる。
なお、本実施の形態で説明した補正値算出方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本補正値算出プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本補正値算出プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)被写体の眼の撮影画像に基づく前記眼から表示装置の画面に向かう第1の視線ベクトルを取得する取得部と、
前記画面の表示画像に含まれる画素の画素値に基づいて、前記表示画像上の領域ごとの特徴を抽出した特徴量を算出する特徴量算出部と、
前記特徴量算出部によって算出された領域ごとの特徴量に基づいて、前記表示画像上の複数の領域のいずれかの領域を、前記被写体が注視している注視点に決定する決定部と、
前記取得部によって取得された第1の視線ベクトルと、前記眼から前記決定部によって決定された注視点に向かう第2の視線ベクトルとに基づいて、前記被写体に固有の補正値を算出する補正値算出部と、
を備えることを特徴とする補正値算出装置。
(付記2)前記決定部によって前記注視点が決定されるごとに、前記取得部によって取得された第1の視線ベクトルと前記眼から前記注視点に向かう第2の視線ベクトルとを関連付ける関連付け部をさらに備え、
前記補正値算出部は、
前記関連付け部によって関連付けられた第1の視線ベクトルと第2の視線ベクトルとの複数の組み合わせに基づいて、前記補正値を算出することを特徴とする付記1に記載の補正値算出装置。
(付記3)前記補正値算出部によって算出された前記補正値を用いて、前記第1の視線ベクトルを補正する補正部と、
前記補正部によって補正された補正後の前記第1の視線ベクトルに基づいて、前記表示画像上の視線位置を算出する位置算出部をさらに備えることを特徴とする付記1または2に記載の補正値算出装置。
(付記4)前記補正部は、
前記取得部によって前記第1の視線ベクトルが取得されたときに、前記補正値算出部によって前記補正値が算出されている場合、当該補正値を用いて前記第1の視線ベクトルを補正し、
前記補正値算出部は、
前記補正部によって補正された補正後の前記第1の視線ベクトルと、前記第2の視線ベクトルとに基づいて、前記補正値を算出することを特徴とする付記1〜3のいずれか一つに記載の補正値算出装置。
(付記5)前記決定部は、
前記複数の領域のうち、前記特徴量が最大となる領域を前記注視点に決定することを特徴とする付記1〜4のいずれか一つに記載の補正値算出装置。
(付記6)前記位置算出部は、
前記第1の視線ベクトルに基づいて、前記表示画像上の視線位置を算出し、
前記決定部は、
前記複数の領域のうち、前記位置算出部によって算出された前記表示画像上の視線位置の最近傍に位置する前記特徴量が最大となる領域を前記注視点に決定することを特徴とする付記5に記載の補正値算出装置。
(付記7)前記決定部は、
前記複数の領域のうち、前記表示画像上の視線位置の最近傍に位置する前記特徴量が最大となる領域が複数存在する場合、前記注視点を決定しないことを特徴とする付記6に記載の補正値算出装置。
(付記8)前記表示画像の中から、前記表示画像上の視線位置を含む所定範囲の画像を抽出する抽出部をさらに備え、
前記特徴量算出部は、
前記抽出部によって抽出された所定範囲の画像上の領域ごとの特徴を抽出した特徴量を算出することを特徴とする付記1〜7のいずれか一つに記載の補正値算出装置。
(付記9)前記特徴量算出部は、
前記表示画像に含まれる画素の色ごとの輝度に基づいて、前記領域ごとの特徴を強調して表す特徴量を算出することを特徴とする付記1〜8のいずれか一つに記載の補正値算出装置。
(付記10)前記第1の視線ベクトルと前記第2の視線ベクトルとの誤差を算出する誤差算出部と、
前記誤差算出部によって算出された誤差が所定の閾値未満か否かを判定する誤差判定部と、をさらに備え、
前記補正値算出部は、
前記誤差判定部によって前記誤差が所定の閾値以上と判定された場合、前記補正値を算出することを特徴とする付記1〜9のいずれか一つに記載の補正値算出装置。
(付記11)前記取得部によって取得された時系列に連続する第1の視線ベクトルに基づいて、前記被写体の視線の移動速度が所定の速度以上か否かを判定する速度判定部をさらに備え、
前記特徴量算出部は、
前記速度判定部によって判定された判定結果に基づいて、前記特徴量を算出することを特徴とする付記1〜10のいずれか一つに記載の補正値算出装置。
(付記12)前記眼の撮影画像に基づいて、前記眼から前記画面に向かう第1の視線ベクトルを算出する視線算出部をさらに備え、
前記取得部は、
前記視線算出部によって算出された第1の視線ベクトルを取得することを特徴とする付記1〜11のいずれか一つに記載の補正値算出装置。
(付記13)コンピュータが、
被写体の眼の撮影画像に基づく前記眼から表示装置の画面に向かう第1の視線ベクトルを取得する取得工程と、
前記画面の表示画像に含まれる画素の画素値に基づいて、前記表示画像上の領域ごとの特徴を抽出した特徴量を算出する特徴量算出工程と、
前記特徴量算出工程によって算出された領域ごとの特徴量に基づいて、前記表示画像上の複数の領域のいずれかの領域を、前記被写体が注視している注視点に決定する決定工程と、
前記取得工程によって取得された第1の視線ベクトルと、前記眼から前記決定工程によって決定された注視点に向かう第2の視線ベクトルとに基づいて、前記被写体に固有の補正値を算出する補正値算出工程と、
を実行することを特徴とする補正値算出方法。
(付記14)コンピュータに、
被写体の眼の撮影画像に基づく前記眼から表示装置の画面に向かう第1の視線ベクトルを取得する取得工程と、
前記画面の表示画像に含まれる画素の画素値に基づいて、前記表示画像上の領域ごとの特徴を抽出した特徴量を算出する特徴量算出工程と、
前記特徴量算出工程によって算出された領域ごとの特徴量に基づいて、前記表示画像上の複数の領域のいずれかの領域を、前記被写体が注視している注視点に決定する決定工程と、
前記取得工程によって取得された第1の視線ベクトルと、前記眼から前記決定工程によって決定された注視点に向かう第2の視線ベクトルとに基づいて、前記被写体に固有の補正値を算出する補正値算出工程と、
を実行させることを特徴とする補正値算出プログラム。