以下に添付図面を参照して、本発明にかかる補正値算出装置、補正値算出方法および補正値算出プログラムの好適な実施の形態を詳細に説明する。
(実施の形態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の視線位置を検出する。また、視線検出装置102は、補正値算出装置101によって算出された被写体120に固有の補正値を用いて、被写体120の視線位置を補正する。ここで、被写体120の視線位置とは、被写体120の視線と画面105の表示画像SPとが交差する表示画像SP上の点の座標位置である。
被写体120の視線は、例えば、被写体120の眼球121の角膜曲率中心122から瞳孔123の瞳孔中心124に向かうベクトル(以下、「第1の視線ベクトルV1」と表記する)によって定義される。ここで、第1の視線ベクトルV1に基づく表示画像SP上の視線位置には、被写体の個人差にともなう誤差が含まれている可能性がある。そこで、以下の説明では、第1の視線ベクトルV1に基づく表示画像SP上の視線位置を「仮の視線位置VP」と表記する。
具体的には、例えば、視線検出装置102が、撮影装置104によって撮影された被写体120の眼の撮影画像に基づいて、被写体120の第1の視線ベクトルV1を算出する。ここで、被写体120の眼とは、被写体120の眼球121の表面であり、例えば、まぶたの動きに連動して露出する黒眼と白眼を含む眼球121の表面である。そして、視線検出装置102が、算出された被写体120の第1の視線ベクトルV1と、画面105と被写体120の眼球121との距離に基づいて、表示画像SP上の仮の視線位置VPを算出する。なお、画面105と被写体120の眼球121との距離は、例えば、予め設定されている。
表示装置103は、画面105に表示画像SPを表示する。画面105に表示される表示画像SPは、例えば、任意の時間間隔で連続的に切り替わる。表示画像SPは、例えば、デジタルサイネージの広告画像でもよく、また、eラーニングのための教材画像でもよい。撮影装置104は、画面105に対向している被写体120の眼を撮影する。撮影装置104は、画面105に対向している被写体120の眼を撮影可能な所定の位置に設置されている。
実施の形態1では、表示画像SP上の領域ごとの特徴を抽出した特徴量に基づいて、被写体120が注視している注視点Gを決定する。そして、実施の形態1では、被写体120の実際の視線が注視点Gに向いていると仮定して、被写体120の眼の撮影画像から得られる仮の視線位置VPを注視点Gに略一致させるための被写体120に固有の補正値を算出する。
また、実施の形態1では、被写体120に固有の補正値を正確に求めるために、表示画像SP上の仮の視線位置VPと注視点Gとのペアを複数求めて、被写体120に固有の補正値を統計的に求める。ところが、被写体120が注視している注視点Gは、表示画像SP上の特定の領域に偏る場合がある。この場合、被写体120に固有の補正値を複数のペアから統計的に求めても、注視点Gの位置的な偏りにより、正確な補正値を算出することができない場合がある。
そこで、実施の形態1では、画面105の表示画像SPを区切って分割された区画ごとに仮の視線位置VPと注視点Gとのペアを求め、複数の区画のペアに基づいて、被写体120に固有の補正値を算出する。これにより、被写体120に固有の補正値の算出元となるペアが特定の区画に偏ることを防ぎ(すなわち、注視点Gの位置的な偏りを防ぎ)、被写体120に固有の補正値を正確に求める。以下、図2を用いて、被写体120に固有の補正値を算出する補正値算出装置101の処理手順(1)〜(7)について説明する。
図2は、実施の形態1にかかる補正値算出装置の補正値算出処理の一実施例を示す説明図である。(1)補正値算出装置101は、撮影装置104によって撮影された被写体120の眼の撮影画像に基づく被写体120の仮の視線位置VPを視線検出装置102から取得する。具体的には、例えば、補正値算出装置101が、被写体120の仮の視線位置VP1を視線検出装置102から取得する。
(2)補正値算出装置101は、画面105の表示画像SPを区切って分割された区画群の中から、取得された被写体120の仮の視線位置VPを含む区画を検索する。ここで、区画とは、表示画像SPを任意の大きさに区切って分割された所定範囲の領域である。具体的には、例えば、補正値算出装置101が、区画D1〜D4の中から、仮の視線位置VP1を含む区画D1を検索する。
(3)補正値算出装置101は、検索された区画に含まれる画素の画素値に基づいて、区画内の領域ごとの特徴を抽出した特徴量を算出する。ここで、領域とは、例えば、表示画像SPを画素単位で区切って分割した画像領域である。画素値とは、例えば、画素の赤色、緑色、青色ごとの輝度である。
また、特徴量とは、人間の視覚的な注意を引きつける強さを表す指標値である。すなわち、特徴量が大きい領域ほど、人間の視覚的な注意を引きつける強さが大きい領域となる。具体的には、例えば、補正値算出装置101が、表示画像SPに含まれる画素の画素値に基づいて、領域ごとの特徴を強調する処理を行うことにより、領域ごとの特徴量を算出する。
(4)補正値算出装置101は、算出された区画内の領域ごとの特徴量に基づいて、区画内の複数の領域のいずれかの領域を、被写体120が注視している注視点Gに決定する。ここで、特徴量が大きい領域ほど、人間の視覚的な注意を引きつける強さが大きくなるため、人間の視線が向きやすい領域として扱うことができる。
そこで、補正値算出装置101が、複数の領域のうち他の領域に比べて特徴量が大きい領域を、被写体120が注視している注視点Gに決定する。具体的には、例えば、補正値算出装置101が、区画D1内の領域ごとの特徴量に基づいて、区画D1内の領域A1を、被写体120が注視している注視点G1に決定する。
(5)補正値算出装置101は、取得された仮の視線位置VPと、決定された注視点Gの座標位置とを関連付ける。具体的には、例えば、補正値算出装置101が、取得された仮の視線位置VP1と、決定された注視点G1の座標位置とをペアP1として関連付ける。
(6)補正値算出装置101は、上記(1)〜(5)を繰り返した結果、関連付けられた区画ごとの関連付け結果のうち、複数の区画の関連付け結果に基づいて、被写体120に固有の補正値を算出する。ここで、被写体120の実際の視線は、眼球121から注視点Gに向かうベクトル(以下、「第2の視線ベクトルV2」と表記する)であると推定することができる。そこで、補正値算出装置101が、被写体120の実際の視線が注視点Gに向いていると仮定して、第1の視線ベクトルV1を第2の視線ベクトルV2に略一致させるための補正値を算出する。
具体的には、例えば、補正値算出装置101が、区画D1〜D4ごとのペアP1〜P4のうち、少なくとも2以上の区画のペアに基づいて、被写体120に固有の補正値を算出する。ペアP2は、区画D2内の仮の視線位置VP2と注視点G2の座標位置との関連付け結果である。ペアP3は、区画D3内の仮の視線位置VP3と注視点G3の座標位置との関連付け結果である。ペアP4は、区画D4内の仮の視線位置VP4と注視点G4の座標位置との関連付け結果である。
(7)補正値算出装置101は、算出された被写体120に固有の補正値を視線検出装置102に出力する。この結果、視線検出装置102において、被写体120に固有の補正値を用いて、被写体120の眼の撮影画像に基づく仮の視線位置VP(第1の視線ベクトルV1)を補正して、被写体120の個人差にともなう誤差を補正した視線を検出することができる。
以上説明したように、実施の形態1にかかる補正値算出装置101によれば、画面105の表示画像SPを区切って分割された区画D1〜D4ごとに、仮の視線位置VPと注視点Gとを関連付けることができる。これにより、表示画像SP上の複数の区画の仮の視線位置VPと注視点Gとのペア(例えば、ペアP1〜P4)を求めることができる。
また、補正値算出装置101によれば、区画ごとのペアのうち、少なくとも2以上の区画のペアに基づいて、被写体120に固有の補正値を算出することができる。これにより、被写体120に固有の補正値の算出元となるペアが特定の区画に偏ることを防ぎ、被写体120に固有の補正値を正確に求めることができる。
これらのことから、実施の形態1にかかる補正値算出装置101によれば、視線検出前の段階に被写体120の協力の下で行われる事前手続を行うことなく、被写体120に固有の補正値を正確に求めることができる。また、補正値算出装置101によれば、被写体120に固有の補正値を求めるために、特定の画像を予め用意する必要がなく、さらに、特定の画像を被写体120に対して呈示する必要がない。
(実施の形態2)
つぎに、実施の形態2にかかる視線検出装置300について説明する。実施の形態2では、実施の形態1で説明した補正値算出装置101を視線検出装置300に適用した場合について説明する。なお、実施の形態1で説明した箇所と同一箇所については、同一符号を付して説明を省略する。
(視線検出装置300のハードウェア構成)
まず、実施の形態2にかかる視線検出装置300のハードウェア構成について説明する。図3は、実施の形態2にかかる視線検出装置のハードウェア構成の一例を示すブロック図である。図3において、視線検出装置300は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、光ディスクドライブ306と、光ディスク307と、I/F(Interface)308と、キーボード309と、マウス310と、ディスプレイ311と、カメラ312と、を備えている。また、各構成部はバス320によってそれぞれ接続されている。
ここで、CPU301は、視線検出装置300の全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータのリード/ライトを制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。
光ディスクドライブ306は、CPU301の制御にしたがって光ディスク307に対するデータのリード/ライトを制御する。光ディスク307は、光ディスクドライブ306の制御で書き込まれたデータを記憶したり、光ディスク307に記憶されたデータをコンピュータに読み取らせたりする。
I/F308は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク314に接続され、ネットワーク314を介して他の装置に接続される。そして、I/F308は、ネットワーク314と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F308には、例えばモデムやLANアダプタなどを採用することができる。
キーボード309は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス310は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。
ディスプレイ311は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ311は、例えば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。カメラ312は、ディスプレイ311に対向している被写体の眼を撮影するためのデジタルカメラである。カメラ312は、例えば、被写体の眼を撮影するための専用カメラであってもよく、また、監視カメラやウェブカメラなどであってもよい。
(ディスプレイ311の外観)
つぎに、視線検出装置300のディスプレイ311の外観について説明する。図4は、ディスプレイの外観の一例を示す説明図である。図4において、ディスプレイ311には、カメラ312と赤外線LED(Light Emitting Diode)401が設置されている。
カメラ312は、ディスプレイ311に対向している被写体の眼402を撮影可能な位置に設置されている。赤外線LED401は、近赤外線を照射する点光源である。赤外線LED401は、例えば、カメラ312の光軸から外れた位置から、被写体の眼402に近赤外線を照射可能な状態で設置されている。
(各種座標系510,520,530)
ここで、被写体の視線検出に使用する各種座標系510,520,530について説明する。図5は、視線検出に使用する座標系の一例を示す説明図である。図5において、画像座標系510は、例えば、カメラ312によって撮影された被写体の眼の撮影画像(以下、「眼球画像EP」という)の所定の基準点を原点OPとするXP軸とYP軸からなる直交座標系である。
カメラ座標系520は、例えば、カメラ原点OCをカメラ312の光学中心とするXC軸とYC軸とZC軸とからなる直交座標系である。世界座標系530は、例えば、ディスプレイ311上の所定の基準点を原点OWとするXW軸とYW軸とZW軸とからなる直交座標系である。
(視線検出装置300の機能的構成)
つぎに、実施の形態2にかかる視線検出装置300の機能的構成について説明する。図6は、視線検出装置の機能的構成を示すブロック図である。図6において、視線検出装置300は、取得部601と、視線算出部602と、分割部603と、検索部604と、特徴量算出部605と、注視点決定部606と、関連付け部607と、登録/更新部608と、補正値算出部609と、補正部610と、出力部611と、判断部612と、誤差算出部613と、区画決定部614と、を含む。
各機能部(取得部601〜区画決定部614)は、例えば、図3に示したROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F308により、その機能を実現する。なお、各機能部(取得部601〜区画決定部614)の処理結果は、特に指定する場合を除いて、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。
まず、取得部601は、例えば、連続的に表示が切り替わるディスプレイ311の表示画像SPを取得する。具体的には、例えば、取得部601が、ディスプレイ311に表示された画面イメージを画像データとしてキャプチャすることにより表示画像SPを取得する。
表示画像SPは、動画像でも任意の時間間隔で表示が切り替わる静止画像でもよい。また、取得部601による表示画像SPの取得タイミングは、任意に設定可能である。例えば、取得部601は、ディスプレイ311の表示が切り替わるごとに表示画像SPを取得してもよい。また、取得部601は、一定の時間間隔で表示画像SPを取得してもよい。
取得部601は、ディスプレイ311に対向している被写体の眼(眼球)の眼球画像EPをカメラ312から取得する。ここで、被写体とは、カメラ312によって撮影される対象者である。例えば、被写体は、ディスプレイ311を見ながら作業をしているユーザでもよく、また、ディスプレイ311の前を通りかかってディスプレイ311を見ている通行人でもよい。
また、被写体の眼(眼球)とは、被写体の眼球表面であり、例えば、まぶたの動きに連動して露出する黒眼と白眼を含む部分である。なお、以下の説明では、被写体として「人」を例に挙げて説明するが、被写体は眼球を有するゴリラや猿などの「人に準ずる動物」でもよい。
また、取得部601による眼球画像EPの取得タイミングは、任意に設定可能である。例えば、取得部601は、一定の時間間隔で眼球画像EPを取得してもよい。また、取得部601は、表示画像SPの取得タイミングと同期を取って、眼球画像EPを取得してもよい。また、眼球画像EPに写る被写体の眼球は、片眼でも両眼でもよい。
取得された眼球画像EPは、例えば、取得された眼球画像EPの撮影時にディスプレイ311に表示中の表示画像SPと関連付けてRAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶される。なお、眼球画像EPには、例えば、眼球画像EPの撮影時刻が付加されている。ここで、カメラ312によって撮影された眼球画像EPの具体例について説明する。
図7は、眼球画像の具体例を示す説明図である。図7において、眼球画像EPは、カメラ312によって人の眼球700を撮影した画像である。なお、図面では眼球画像EPの一部を抜粋して表示している。ここでは、図4に示した赤外線LED401により、眼球700に向けて近赤外線を照射して撮影している。このため、眼球画像EPにおいて、瞳孔701が虹彩702と比較して暗くなり、角膜表面にプルキニエ像703が現れている。プルキニエ像703とは、眼球700に近赤外線を照射した際に現れる角膜表面における反射像である。
図6の説明に戻り、視線算出部602は、取得された眼球画像EPに基づいて、被写体の眼球からディスプレイ311に向かう第1の視線ベクトルV1を算出する。具体的には、例えば、視線算出部602が、人の眼球に近赤外線を照射したときの角膜表面における反射像(例えば、図7に示したプルキニエ像703)を利用して、第1の視線ベクトルV1を算出する。
ただし、世界座標系530におけるディスプレイ311と被写体の眼球とのZW軸方向の距離は、予め設定されている。具体的には、例えば、ディスプレイ311を、商業施設、空港、駅などに設置されるデジタルサイネージとして使用する場合、ディスプレイ311と被写体の眼球とのZW軸方向の距離は100〜130[cm]程度に設定される。また、ディスプレイ311を、パーソナル・コンピュータの画面として使用する場合、ディスプレイ311と被写体の眼球とのZW軸方向の距離は30〜50[cm]程度に設定される。
また、世界座標系530におけるカメラ312の設置位置は、既知の値である。このため、カメラ312によって撮影された被写体の眼球画像EPから第1の視線ベクトルV1を算出することができる。なお、第1の視線ベクトルV1を算出する具体的な処理内容は、図15および図16を用いて後述する。
ここで、第1の視線ベクトルV1は、例えば、下記式(1)を用いて、極座標系におけるベクトルによって表現される。ただし、V1は、第1の視線ベクトルである。また、r1は動径であり、世界座標系530の原点OWから眼球までの距離である。また、θ1は偏角であり、第1の視線ベクトルV1と世界座標系530の基準軸(例えば、ZW軸)とのなす角である。また、φ1は偏角であり、第1の視線ベクトルV1と世界座標系530の基準軸(例えば、XW軸)とのなす角である。
また、視線算出部602は、算出された第1の視線ベクトルV1に基づいて、表示画像SP上の仮の視線位置VPを算出する。ここで、仮の視線位置VPは、被写体の眼球からディスプレイ311に向かう第1の視線ベクトルV1と、ディスプレイ311の表示画像SPとが交差する表示画像SP上の点の座標位置である。
具体的には、例えば、視線算出部602が、第1の視線ベクトルV1の方向に伸びる直線と表示画像SPとが交わる点の座標位置を、表示画像SP上の仮の視線位置VPとして算出する。以下の説明では、仮の視線位置VPの座標位置を「(XW,YW)=(vx,vy)」と表記する。なお、仮の視線位置VPを算出する具体的な処理内容については、図17を用いて後述する。
分割部603は、ディスプレイ311の画面に表示された表示画像SPを区切って区画群に分割する。ここで、区画とは、ディスプレイ311の画面を区切って分割された所定範囲の領域(例えば、円、三角形、矩形など)である。具体的には、例えば、分割部603が、ディスプレイ311の画面の縦横をそれぞれM等分することにより、画面を区画群に分割することにしてもよい。
以下の説明では、表示画像SPを区切って分割された区画群を「区画D1〜Dm」と表記し、区画D1〜Dmのうち任意の区画を「区画Di」と表記する(i=1,2,…,m)。また、区画Diを、世界座標系530のXW座標の範囲と、世界座標系530のYW座標の範囲によって指定される矩形領域とする。
検索部604は、表示画像SPを区切って分割された区画D1〜Dmの中から、仮の視線位置VPを含む区画Diを検索する。具体的には、例えば、検索部604が、区画Diを指定するXW座標の範囲内に仮の視線位置VPのXW座標「vx」を含み、かつ、区画Diを指定するYW座標の範囲内に仮の視線位置VPのYW座標「vy」を含む区画Diを検索する。
特徴量算出部605は、検索された区画Diに含まれる画素の画素値に基づいて、区画Di内の領域ごとの特徴を抽出した特徴量を算出する。ここで、領域とは、区画Diを任意の大きさで区切って分割した画像領域である。例えば、領域は、区画Diを画素単位で区切って分割したものでもよく、また、区画Diをa画素×b画素の単位で分割したものでもよい(a,b:自然数)。画素の画素値とは、例えば、画素の色(赤、緑、青)ごとの輝度である。輝度とは、各領域の色ごとの明るさの度合いを表す値である。
特徴量とは、人の視覚的な注意を引きつける強さを表す指標値である。すなわち、区画Di内の複数の領域のうち特徴量が大きい領域ほど、人の視覚的な注意を引きつける強さが大きい領域となる。ただし、各領域の特徴量は、複数の領域の特徴を相対評価して算出してもよく、また、各領域の特徴を絶対評価して算出してもよい。
具体的には、例えば、特徴量算出部605が、表示画像SPの中から、検索された区画Diの画像を抽出する。そして、特徴量算出部605が、抽出された区画Diの画像上の領域ごとの特徴を抽出した特徴量を算出する。なお、特徴量算出部605の具体的な処理内容は、図18〜図29を用いて後述する。
また、特徴量算出部605が、表示画像SPに含まれる画素の画素値に基づいて、表示画像SP上の領域ごとの特徴を抽出した特徴量を算出する。そして、特徴量算出部605が、表示画像SP上の領域ごとの特徴量の中から、区画Diの領域ごとの特徴量を抽出することにしてもよい。
以下の説明では、領域の一例として、区画Di内の各画素を例に挙げて説明する。また、区画Di内の複数の画素を「画素p1〜pn」と表記し、画素p1〜pnのうち任意の画素を「画素pj」と表記する(j=1,2,…,n)。また、各画素p1〜pnの特徴量を「特徴量C1〜Cn」と表記する。
算出された画素p1〜pnごとの特徴量C1〜Cnは、例えば、図8に示す特徴量テーブル800に記憶される。特徴量テーブル800は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、特徴量テーブル800の記憶内容について説明する。
図8は、特徴量テーブルの記憶内容の一例を示す説明図である。図8において、特徴量テーブル800は、画素ID、座標位置および特徴量のフィールドを有し、画素p1〜pnごとの特徴量データ800−1〜800−nをレコードとして記憶している。
画素IDとは、区画Di内の画素pjの識別子である。座標位置は、世界座標系530における画素pjのXW座標およびYW座標である。ただし、世界座標系530における画素pjのZW座標は「0」とする。特徴量とは、画素pjの人の視覚的な注意を引きつける強さを表す指標値である。
図6の説明に戻り、注視点決定部606は、算出された画素p1〜pnごとの特徴量C1〜Cnに基づいて、区画Di内の画素p1〜pnのいずれかの画素pjを、被写体が注視している注視点Gに決定する。ここで、区画Di内の画素p1〜pnのうち特徴量が大きい画素pjは、人の視線が向きやすい領域であり、人が注視している可能性が高い領域である。
そこで、注視点決定部606が、例えば、特徴量テーブル800を参照して、画素p1〜pnのうち、特徴量が最大となる画素pjを注視点Gに決定することにしてもよい。例えば、特徴量テーブル800内の特徴量C1〜Cnのうち特徴量C1が最大であるとする。この場合、決定部が、画素p1〜pnのうち、特徴量が最大となる画素p1の座標位置「(XW,YW)=(x1,y1)」を注視点Gに決定する。
これにより、区画Di内の画素p1〜pnのうち、人の視覚的な注意を引きつける強さが最も大きく、人の視線が最も向きやすい画素pj(例えば、画素p1)を注視点Gに決定することができる。以下の説明では、世界座標系530における注視点GのXW座標を「gx」とし、YW座標を「gy」とする。ただし、世界座標系530における注視点GのZW座標は「0」とする。なお、注視点Gを決定する他の決定手法については、図13を用いて後述する。
また、視線算出部602は、被写体の眼球から、決定された注視点Gに向かう第2の視線ベクトルV2を算出する。具体的には、例えば、視線算出部602が、世界座標系530における眼球の角膜曲率中心の座標位置と注視点Gの座標位置とに基づいて、第2の視線ベクトルV2を算出する。なお、第2の視線ベクトルV2を算出する具体的な処理内容は、図17を用いて後述する。
ここで、第2の視線ベクトルV2は、例えば、下記式(2)を用いて、極座標系におけるベクトルによって表現される。V2は、第2の視線ベクトルである。また、r2は動径であり、世界座標系530の原点OWから眼球までの距離である。また、θ2は偏角であり、第2の視線ベクトルV2と世界座標系530の基準軸(例えば、ZW軸)とのなす角である。また、φ2は偏角であり、第2の視線ベクトルV2と世界座標系530の基準軸(例えば、XW軸)とのなす角である。
関連付け部607は、算出された区画Di内の仮の視線位置VPと、決定された区画Di内の注視点Gの座標位置とを関連付ける。具体的には、例えば、関連付け部607が、区画Diごとに、仮の視線位置VPの算出元である第1の視線ベクトルV1と、被写体の眼球から注視点Gに向かう第2の視線ベクトルV2とを関連付けることにしてもよい。
以下の説明では、関連付け部607が、区画Diごとに、第1の視線ベクトルV1と第2の視線ベクトルV2とをベクトルペアとして関連付ける場合を例に挙げて説明する。
登録/更新部608は、関連付けられた区画Diのベクトルペアを図9に示すベクトルペアテーブル900に登録する。ベクトルペアテーブル900は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、ベクトルペアテーブル900の記憶内容について説明する。
図9は、ベクトルペアテーブルの記憶内容の一例を示す説明図である。図9において、ベクトルペアテーブル900は、ペアID、区画ID、θ1、φ1、θ2およびφ2のフィールドを有し、ベクトルペアP1〜P3ごとの偏角データ(例えば、偏角データ900−1〜900−3)をレコードとして記憶している。
ここで、ペアIDとは、第1の視線ベクトルV1と第2の視線ベクトルV2のベクトルペアの識別子である。区画IDは、仮の視線位置VPおよび注視点Gを含む区画Diの識別子である。θ1およびφ1は、第1の視線ベクトルV1の偏角である。θ2およびφ2は、第2の視線ベクトルV2の偏角である。なお、各偏角の単位は[度]である。
図6の説明に戻り、補正値算出部609は、関連付けられた区画Diごとの関連付け結果のうち、複数の区画の関連付け結果に基づいて、被写体に固有の補正値を算出する。ここで、補正値は、被写体の個人差にともなう視線位置の誤差を補正するためのキャリブレーションに用いるパラメータの値である。補正値は、具体的には、例えば、下記式(3)に示す行列W(以下、「キャリブレーション行列W」という)に含まれるパラメータω1〜ω4の値である。
具体的には、例えば、補正値算出部609が、下記式(4)を用いて、被写体に固有のパラメータω1〜ω4の値を算出することができる。ただし、V1は第1の視線ベクトル、V2は第2の視線ベクトル、Wはキャリブレーション行列である。
より具体的には、例えば、補正値算出部609が、関連付けられた区画Diごとの関連付け結果のうち、所定の区画数N以上の区画の関連付け結果に基づいて、被写体に固有の補正値を算出する。ここで、所定の区画数Nは、2以上n以下の任意の値である。例えば、画面内の全区画数nを「n=16」とすると、所定の区画数Nは、例えば、「N=10」、「N=13」、「N=16」などに設定される。
区画数Nの値として、例えば、画面内の全区画数nの値を設定することにより、補正値の算出元となる注視点Gの座標位置を、画面上に均一に分散させることができる。区画数Nは、例えば、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。なお、補正値算出部609の具体的な処理内容については後述する。
また、算出された補正値は、例えば、図10に示すパラメータテーブル1000に記憶される。パラメータテーブル1000は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
図10は、パラメータテーブルの記憶内容の一例を示す説明図である。図10において、パラメータテーブル1000は、キャリブレーション行列Wに含まれるパラメータω1〜ω4の値を保持している。
図6の説明に戻り、補正部610は、被写体に固有の補正値を用いて、表示画像SP上の仮の視線位置VPを補正する。具体的には、例えば、補正部610が、下記式(5)を用いて、仮の視線位置VPの算出元である第1の視線ベクトルV1を補正する。ただし、V1’は補正後の第1の視線ベクトル、V1は第1の視線ベクトル、Wはキャリブレーション行列である。
より具体的には、例えば、補正部610が、パラメータテーブル1000を参照して、各パラメータω1〜ω4の値を上記式(5)に代入する。さらに、補正部610が、第1の視線ベクトルV1の動径r1および偏角θ1、φ1を上記式(5)に代入することにより、補正後の第1の視線ベクトルV1’を算出することができる。
また、補正部610は、補正された補正後の第1の視線ベクトルV1’に基づいて、表示画像SP上の視線位置を算出する。具体的には、例えば、補正部610が、補正後の第1の視線ベクトルV1’の方向に伸びる直線と表示画像SPとが交わる点の座標位置を、表示画像SP上の視線位置として算出する。ここで、補正後の第1の視線ベクトルV1’に基づく表示画像SP上の視線位置は、被写体の個人差にともなう誤差が補正された被写体の視線位置(以下、「被写体の視線位置RP」という)である。
出力部611は、表示画像SP上の被写体の視線位置RPを出力する。具体的には、例えば、出力部611が、表示画像SPと、表示画像SP上の被写体の視線位置RPとを関連付けて示す視線検出結果を出力する。ここで、視線検出結果の具体例について説明する。
図11は、視線検出結果の具体例を示す説明図である。図11において、視線検出結果Rは、画像ID、時刻および座標位置を有している。画像IDは、表示画像SPの識別子である。時刻は、眼球画像EPの撮影時刻であり、視線検出時刻を表している。座標位置は、世界座標系530における被写体の視線位置RPのXW座標およびYW座標である。
視線検出結果Rによれば、時刻tjに表示画像SPjを見ている被写体の表示画像SPj上での視線位置RP(xj,yj)を認識することができる。具体的には、例えば、視線検出結果Rは、例えば、表示装置103に対する入力インターフェースとして利用することができる。
なお、出力部611の出力形式としては、例えば、ディスプレイ311への表示、I/F308による外部装置への送信がある。また、他の出力形式として、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶することにしてもよい。
また、出力部611は、算出された被写体に固有の補正値を出力することにしてもよい。具体的には、例えば、出力部611が、パラメータテーブル1000内のパラメータω1〜ω4の値を出力することにしてもよい。これにより、以降において、被写体に固有のパラメータω1〜ω4の値を用いて、キャリブレーションを行うことができる。
判断部612は、表示画像SP上の仮の視線位置VPが停留点か否かを判断する。ここで、停留点とは、被写体の視線位置が停留している点である。ここでは、仮の視線位置VPが所定時間T以上、所定領域Q内に留まっている場合に、仮の視線位置VPが停留点であると定義する。
具体的には、例えば、まず、判断部612が、表示画像SPにおいて、仮の視線位置VP(ここでは、「仮の視線位置VP[1]」という)を中心とする所定領域Qを設定する。所定領域Qは、例えば、仮の視線位置VP[1]を中心とする半径q(例えば、q=30[ピクセル])の円である。
つぎに、視線算出部602が、例えば、仮の視線位置VP[1]の算出元となる眼球画像EPの撮影時刻から一定時間t0経過した後、新たな仮の視線位置VP[2]を算出する。そして、判断部612が、新たな仮の視線位置VP[2]が所定領域Q内に存在するか否かを判断する。ここで、新たな仮の視線位置VP[2]が所定領域Q内に存在しない場合、判断部612が、表示画像SP上の仮の視線位置VPが停留点ではないと判断する。
一方、新たな仮の視線位置VP[2]が所定領域Q内に存在する場合、判断部612が、仮の視線位置VP[1]を算出した時点から所定時間T経過したか否かを判断する。ここで、所定時間T経過した場合、判断部612が、表示画像SP上の仮の視線位置VP[1]が停留点であると判断する。
一方、所定時間T経過していない場合、視線算出部602が、仮の視線位置VP[2]の算出元となる眼球画像EPの撮影時刻から一定時間t0経過した後、新たな仮の視線位置VP[3]を算出して、上記同様の処理を繰り返す。これにより、表示画像SP上の仮の視線位置VPが停留点か否かを判断することができる。
なお、所定領域Qの半径q、一定時間t0および所定時間Tは、例えば、予め設定されてROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
また、関連付け部607は、表示画像SP上の仮の視線位置VPが停留点であると判断された場合に、第1の視線ベクトルV1と第2の視線ベクトルV2とをベクトルペアとして関連付けることにしてもよい。これにより、被写体が意識的に見た視線位置をもとに、被写体に固有の補正値を算出することができる。換言すれば、被写体の視線移動中の通過点を、補正値の算出元から排除することができる。この結果、被写体の視線の誤差を補正する際の補正精度を向上させることができる。
また、関連付け部607は、登録/更新部608によって登録された区画Diのベクトルペアの数が所定数A未満の場合、第1の視線ベクトルV1と第2の視線ベクトルV2とをベクトルペアとして関連付けることにしてもよい。具体的には、例えば、まず、関連付け部607が、ベクトルペアテーブル900内の区画IDフィールドに「Di」が設定されているレコード数を計数することにより、区画Diのベクトルペアの数を計数する。
そして、区画Diのベクトルペアの数が所定数A未満の場合、関連付け部607が、第1の視線ベクトルV1と第2の視線ベクトルV2とをベクトルペアとして関連付ける。一方、区画Diのベクトルペアの数が所定数A以上の場合、関連付け部607は、第1の視線ベクトルV1と第2の視線ベクトルV2との関連付けを行わない。これにより、区画Diごとのベクトルペアの数を平準化して、被写体に固有の補正値の算出元となるベクトルペアが特定の区画Diに偏ることを防ぐことができる。
なお、特徴量算出部605は、区画Diのベクトルペアの数が所定数A以上の場合、区画Di内の画素p1〜pnごとの特徴量C1〜Cnを算出しないことにしてもよい。これにより、画素p1〜pnごとの特徴量C1〜Cnの算出処理にかかる負荷を軽減することができる。
また、注視点決定部606は、区画Diのベクトルペアの数が所定数A以上の場合、区画Di内の注視点Gを決定しないことにしてもよい。これにより、区画Di内の注視点Gの決定処理にかかる負荷を軽減することができる。
また、登録/更新部608は、関連付けられた区画Diのベクトルペアに基づいて、ベクトルペアテーブル900に登録済みの区画Diのベクトルペアを更新することにしてもよい。具体的には、例えば、登録/更新部608が、未登録のベクトルペアと登録済みのベクトルペアとの間で、それぞれ注視点Gに決定された画素pjの特徴量Cjを比較する。
この結果、未登録のベクトルペアの特徴量Cjが大きい場合、ベクトルペアテーブル900に登録済みのベクトルペアを未登録のベクトルペアに更新する。これにより、注視点Gに決定された画素pjの特徴量Cjが大きくなるように区間Diのベクトルペアを更新することができ、補正値の算出元としてより適切なベクトルペアをベクトルペアテーブル900に登録することができる。
なお、上述した説明では、世界座標系530におけるディスプレイ311と被写体の眼球とのZW軸方向の距離を、予め設定することにしたが、これに限らない。例えば、既存技術を利用して、ディスプレイ311に対向している被写体にレーザ光を照射し、レーザ光が反射して戻ってくるまでの時間から、ディスプレイ311と被写体の眼球との距離を測定することにしてもよい。
(注視点Gの決定手法)
つぎに、表示画像SP上の仮の視線位置VPを含む区画Di内の注視点Gを決定する他の決定手法について説明する。以下に説明する決定手法では、人や地物などのオブジェクトを表す領域は、他の領域に比べて人間の視覚的な注意を引きつける強さが大きくなることを想定する。
そこで、まず、注視点決定部606は、区画Di上のオブジェクトを閉領域として抽出することにより、被写体の視線が向いている領域を絞り込む。具体的には、例えば、注視点決定部606が、区画Diにラベリング処理を施すことにより、区画Diの中から複数の閉領域を抽出する。ラベリング処理とは、2値化処理された画像において、連結している画素に同じラベル(番号)を属性として付加することで、閉領域を抽出する処理である。
以下の説明では、表示画像SP上の仮の視線位置VPを含む区画Di内の閉領域を「閉領域H1〜HK」と表記し、閉領域H1〜HKのうち任意の閉領域を「閉領域Hk」と表記する(k=1,2,…,K)。また、閉領域Hkに含まれる画素群を「画素p[1]〜p[V]」と表記し、画素p[1]〜p[V]のうち任意の画素を「画素p[v]」と表記する。ただし、画素p[v]は、区画Di内のいずれかの画素pjに対応している。さらに、各画素p[1]〜p[V]の特徴量を「特徴量C[1]〜C[V]」と表記する。ここで、区画Di内の閉領域Hkの具体例について説明する。
図12は、区画内の閉領域の具体例を示す説明図である。図12において、画像1210は、表示画像SP上の仮の視線位置VPを含む区画Di内の各画素を「黒」または「白」によって表現する2値化画像である。具体的には、例えば、注視点決定部606が、区画Diの画像に対して2値化処理を施すことにより画像1210を作成する。2値化処理の具体的な処理内容は図18を用いて後述する。
また、画像1220は、画像1210の縦方向、横方向に連続している画素に同じラベルが付加された画像である。具体的には、例えば、注視点決定部606が、画像1210の左上から右方向に走査して、縦方向、横方向に連続している画素に同じラベルを付加することにより画像1220を作成する。
このあと、注視点決定部606が、画像1220の中から、同じラベル(ただし、「0」を除く)が付加された画素の集合を閉領域Hkとして抽出する。ここでは、画像1220の中から、閉領域H1〜H3が抽出される。これにより、区画Di内のオブジェクトを閉領域H1〜H3として抽出することができる。
以下、図12に示す複数の閉領域H1〜H3の中から、注視点Gを含む閉領域を決定する決定手法1〜4について説明する。
<決定手法1>
まず、各閉領域Hkに含まれる画素p[v]ごとの特徴量C[v]に基づいて、注視点Gを含む閉領域を決定する場合について説明する。ここでは、閉領域Hkに含まれる画素p[v]の特徴量C[v]の最大値が大きくなればなるほど、人間の視覚的な注意を引きつける強さが大きくなることを想定する。
注視点決定部606は、図8に示した特徴量テーブル800を参照して、区画Di内の閉領域Hkごとに、閉領域Hkに含まれる画素p[1]〜p[V]の特徴量C[1]〜C[V]うち、最大の特徴量(以下、「極大値Cmax(k)」と表記する)を特定する。
特定された閉領域Hkごとの極大値Cmax(k)は、例えば、図13に示す閉領域データテーブル1300に記憶される。閉領域データテーブル1300は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、閉領域データテーブル1300の記憶内容について説明する。
図13は、閉領域データテーブルの記憶内容の一例を示す説明図である。図13において、閉領域データテーブル1300は、閉領域ID、極大値、面積、集中度および評価値のフィールドを有し、閉領域Hkごとの閉領域データをレコードとして記憶する。
閉領域IDは、閉領域Hkの識別子である。極大値は、閉領域Hkの極大値Cmax(k)である。面積は、閉領域Hkの面積Skである。集中度は、閉領域Hkの集中度Fkである。評価値は、閉領域Hkの評価値Ekである。なお、集中度Fkおよび評価値Ekについての詳細な説明は後述する。
図13の(13−1)において、閉領域H1の閉領域ID『H1』が閉領域IDフィールドに設定され、閉領域H1の極大値『200』が極大値フィールドに設定されて、閉領域データ1300−1がレコードとして閉領域データテーブル1300に記憶されている。同(13−1)において、閉領域H2の閉領域ID『H2』が閉領域IDフィールドに設定され、閉領域H2の極大値『250』が極大値フィールドに設定されて、閉領域データ1300−2がレコードとして閉領域データテーブル1300に記憶されている。同(13−1)において、閉領域H3の閉領域ID『H3』が閉領域IDフィールドに設定され、閉領域H3の極大値『100』が極大値フィールドに設定されて、閉領域データ1300−3がレコードとして閉領域データテーブル1300に記憶されている。
注視点決定部606は、閉領域H1〜HKの中から、極大値Cmax(k)が最大の閉領域Hkを、注視点Gを含む閉領域に決定する。具体的には、例えば、注視点決定部606が、閉領域データテーブル1300を参照して、極大値が最大の閉領域H2を、注視点Gを含む閉領域に決定する。
ここで、閉領域H1〜HKの中に、極大値Cmax(k)が最大の閉領域Hkが複数存在する場合がある。この場合、例えば、注視点決定部606が、極大値Cmax(k)が最大の各閉領域Hkの重心と仮の視線位置VPとの距離を算出して、仮の視線位置VPとの距離が最小の閉領域Hkを、注視点Gを含む閉領域に決定することにしてもよい。
また、注視点決定部606は、決定された閉領域Hk内の画素p[1]〜p[V]のいずれかの画素p[v]を、被写体が注視している注視点Gに決定する。具体的には、例えば、注視点決定部606が、閉領域Hk内の画素p[1]〜p[V]のうち、特徴量C[v]が極大値Cmax(k)の画素p[v]を注視点Gに決定する。
この際、特徴量C[v]が極大値Cmax(k)の画素が複数存在する場合、例えば、注視点決定部606が、特徴量C[v]が極大値Cmax(k)の任意の画素p[v]を注視点Gに決定することにしてもよい。また、注視点決定部606は、決定された閉領域Hkの重心の位置を注視点Gに決定することにしてもよい。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、極大値Cmax(k)が最大の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
また、上記登録/更新部608は、注視点Gを含む閉領域に決定された閉領域Hkの極大値Cmax(k)に基づいて、ベクトルペアテーブル900に登録済みの区画Diのベクトルペアを更新することにしてもよい。具体的には、例えば、登録/更新部608が、未登録のベクトルペアと登録済みのベクトルペアとの間で、それぞれ注視点Gを含む閉領域に決定された閉領域Hkの極大値Cmax(k)を比較する。
この結果、未登録のベクトルペアの極大値Cmax(k)が大きい場合、ベクトルペアテーブル900に登録済みのベクトルペアを未登録のベクトルペアに更新する。これにより、注視点Gを含む閉領域Hkの極大値Cmax(k)が大きくなるように区間Diのベクトルペアを更新することができ、補正値の算出元としてより適切なベクトルペアをベクトルペアテーブル900に登録することができる。
なお、区画Diから抽出された閉領域Hkが一つの場合は、注視点決定部606は、閉領域Hk内の画素p[1]〜p[V]のうち、特徴量C[v]が最大の画素p[v]を注視点Gに決定することにしてもよい。
<決定手法2>
つぎに、閉領域Hkごとの面積Skに基づいて、注視点Gを含む閉領域を決定する場合について説明する。ここでは、閉領域Hkの面積Skが大きくなればなるほど、人間の視覚的な注意を引きつける強さが大きくなることを想定する。
注視点決定部606は、区画Di内の閉領域Hkごとに、閉領域Hkの面積Skを算出する。具体的には、例えば、注視点決定部606が、閉領域Hkに含まれる画素p[1]〜p[S]の画素数を計数することにより、閉領域Hkの面積Skを算出する。特定された閉領域Hkごとの面積Skは、例えば、図13に示した閉領域データテーブル1300に記憶される。
図13の(13−2)において、閉領域H1の面積『26』が面積フィールドに設定されて、閉領域データ1300−1が更新されている。同(13−2)において、閉領域H2の面積『13』が面積フィールドに設定されて、閉領域データ1300−2が更新記憶されている。同(13−2)において、閉領域H3の面積『3』が面積フィールドに設定されて、閉領域データ1300−3が更新されている。
注視点決定部606は、閉領域H1〜HKの中から、面積Skが最大の閉領域Hkを、注視点Gを含む閉領域に決定する。具体的には、例えば、注視点決定部606が、閉領域データテーブル1300を参照して、面積が最大の閉領域H1を、注視点Gを含む閉領域に決定する。
ここで、閉領域H1〜HKの中に、面積Skが最大の閉領域Hkが複数存在する場合がある。この場合、例えば、注視点決定部606が、面積Skが最大の各閉領域Hkの重心と仮の視線位置VPとの距離を算出して、仮の視線位置VPとの距離が最小の閉領域Hkを、注視点Gを含む閉領域に決定することにしてもよい。
また、注視点決定部606は、決定された閉領域Hk内の画素p[1]〜p[V]のいずれかの画素p[v]を、被写体が注視している注視点Gに決定する。具体的には、例えば、注視点決定部606が、閉領域Hk内の画素p[1]〜p[V]のうち、特徴量C[v]が極大値Cmax(k)の画素p[v]を注視点Gに決定する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、面積Skが最大の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
また、上記登録/更新部608は、注視点Gを含む閉領域に決定された閉領域Hkの面積Skに基づいて、ベクトルペアテーブル900に登録済みの区画Diのベクトルペアを更新することにしてもよい。具体的には、例えば、登録/更新部608が、未登録のベクトルペアと登録済みのベクトルペアとの間で、それぞれ注視点Gを含む閉領域に決定された閉領域Hkの面積Skを比較する。
この結果、未登録のベクトルペアの面積Skが大きい場合、ベクトルペアテーブル900に登録済みのベクトルペアを未登録のベクトルペアに更新する。これにより、注視点Gを含む閉領域Hkの面積Skが大きくなるように区間Diのベクトルペアを更新することができ、補正値の算出元としてより適切なベクトルペアをベクトルペアテーブル900に登録することができる。
<決定手法3>
つぎに、閉領域Hkごとの集中度Fkに基づいて、注視点Gを含む閉領域を決定する場合について説明する。ここで、集中度Fkとは、閉領域Hk内の画素p[1]〜p[V]の特徴量C[1]〜C[V]の濃度を表す指標である。ここでは、閉領域Hkの集中度Fkが小さくなればなるほど、人間の視覚的な注意を引きつける強さが大きくなることを想定する。
注視点決定部606は、区画Di内の閉領域Hkごとに、閉領域Hkの集中度Fkを算出する。具体的には、例えば、注視点決定部606が、下記式(6)を用いて、閉領域Hkの集中度Fkを算出することができる。ただし、Fkは、閉領域Hkの集中度である。C[v]は、閉領域Hkに含まれる画素p[v]の特徴量である。Skは、閉領域Hkの面積である。
なお、閉領域Hkに含まれる画素p[v]の特徴量C[v]は、例えば、特徴量テーブル800から特定される。閉領域Hkの面積Skは、例えば、図13に示した閉領域データテーブル1300から特定される。また、特定された閉領域Hkごとの集中度Fkは、例えば、閉領域データテーブル1300に記憶される。
図13の(13−3)において、閉領域H1の集中度『95』が集中度フィールドに設定されて、閉領域データ1300−1が更新されている。同(13−3)において、閉領域H2の集中度『50』が集中度フィールドに設定されて、閉領域データ1300−2が更新されている。同(13−3)において、閉領域H3の集中度『100』が集中度フィールドに設定されて、閉領域データ1300−3が更新されている。
注視点決定部606は、閉領域H1〜HKの中から、集中度Fkが最小の閉領域Hkを、注視点Gを含む閉領域に決定する。具体的には、例えば、注視点決定部606が、閉領域データテーブル1300を参照して、閉領域H1〜H3の中から、集中度Fkが最小の閉領域H2を、注視点Gを含む閉領域に決定する。
ここで、閉領域H1〜HKの中に、集中度Fkが最小の閉領域Hkが複数存在する場合がある。この場合、例えば、注視点決定部606が、集中度Fkが最小の各閉領域Hkの重心と仮の視線位置VPとの距離を算出して、仮の視線位置VPとの距離が最小の閉領域Hkを、注視点Gを含む閉領域に決定することにしてもよい。
また、注視点決定部606は、決定された閉領域Hk内の画素p[1]〜p[V]のいずれかの画素p[v]を、被写体が注視している注視点Gに決定する。具体的には、例えば、注視点決定部606が、閉領域Hk内の画素p[1]〜p[V]のうち、特徴量C[v]が極大値Cmax(k)の画素p[v]を注視点Gに決定する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、集中度Fkが最小の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
また、上記登録/更新部608は、注視点Gを含む閉領域に決定された閉領域Hkの集中度Fkに基づいて、ベクトルペアテーブル900に登録済みの区画Diのベクトルペアを更新することにしてもよい。具体的には、例えば、登録/更新部608が、未登録のベクトルペアと登録済みのベクトルペアとの間で、それぞれ注視点Gを含む閉領域に決定された閉領域Hkの集中度Fkを比較する。
この結果、未登録のベクトルペアの集中度Fkが小さい場合、ベクトルペアテーブル900に登録済みのベクトルペアを未登録のベクトルペアに更新する。これにより、注視点Gを含む閉領域Hkの集中度Fkが小さくなるように区間Diのベクトルペアを更新することができ、補正値の算出元としてより適切なベクトルペアをベクトルペアテーブル900に登録することができる。
<決定手法4>
つぎに、閉領域Hkごとの評価値Ekに基づいて、注視点Gを含む閉領域を決定する場合について説明する。ここで、評価値Ekとは、閉領域Hkが注視点Gを含む可能性を評価するための指標である。ここでは、閉領域Hkの評価値Ekが大きくなればなるほど、人間の視覚的な注意を引きつける強さが大きくなることを想定する。
注視点決定部606は、区画Di内の閉領域Hkごとに、閉領域Hkの評価値Ekを算出する。具体的には、例えば、注視点決定部606が、下記式(7)を用いて、閉領域Hkの評価値Ekを算出することができる。ただし、Ekは、閉領域Hkの評価値である。Cmax(k)は、閉領域Hkの極大値である。Skは、閉領域Hkの面積である。Fkは、閉領域Hkの集中度である。
Ek=(Cmax(k)×Sk)/Fk ・・・(7)
上記式(7)によれば、閉領域Hkに含まれる画素p[1]〜p[V]の特徴量C[1]〜C[V]の総和が大きくなり、閉領域Hkの面積Skが大きくなり、閉領域Hkの集中度Fkが小さくなれば、閉領域Hkの評価値Ekは大きくなる。
なお、閉領域Hkに含まれる画素p[1]〜p[V]の特徴量C[1]〜C[V]は、例えば、特徴量テーブル800から特定される。閉領域Hkの面積Skおよび集中度Fkは、例えば、図13に示した閉領域データテーブル1300から特定される。また、特定された閉領域Hkごとの評価値Ekは、例えば、閉領域データテーブル1300に記憶される。
図13の(13−4)において、閉領域H1の評価値『55』が評価値フィールドに設定されて、閉領域データ1300−1が更新されている。同(13−4)において、閉領域H2の評価値『65』が評価値フィールドに設定されて、閉領域データ1300−2が更新されている。同(13−4)において、閉領域H3の評価値『3』が評価値フィールドに設定されて、閉領域データ1300−3が更新されている。
注視点決定部606は、閉領域H1〜HKの中から、評価値Ekが最大の閉領域Hkを、注視点Gを含む閉領域に決定する。この際、ノイズ(局所的に一部の領域の特徴量が大きくなるなどの不具合)による影響を排除するために、面積Skが所定値S0未満の閉領域Hkは決定対象から除外することにしてもよい。
例えば、所定値S0の一例として「S0=10」とする。この場合、例えば、注視点決定部606が、閉領域データテーブル1300を参照して、面積Skが所定値S0以上の閉領域H1,H2のうち、評価値Ekが最大の閉領域H2を、注視点Gを含む閉領域に決定する。
ここで、閉領域H1〜HKの中に、評価値Ekが最大の閉領域Hkが複数存在する場合がある。この場合、例えば、注視点決定部606が、評価値Ekが最大の各閉領域Hkの重心と仮の視線位置VPとの距離を算出して、仮の視線位置VPとの距離が最小の閉領域Hkを、注視点Gを含む閉領域に決定することにしてもよい。
また、注視点決定部606は、決定された閉領域Hk内の画素p[1]〜p[V]のいずれかの画素p[v]を、被写体が注視している注視点Gに決定する。具体的には、例えば、注視点決定部606が、閉領域Hk内の画素p[1]〜p[V]のうち、特徴量C[v]が極大値Cmax(k)の画素p[v]を注視点Gに決定する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、評価値Ekが最大の閉領域Hkを、注視点Gを含む閉領域に決定することができる。また、面積Skが所定値S0未満の閉領域Hkは決定対象から除外することにより、ノイズによる影響を排除することができる。
また、上記登録/更新部608は、注視点Gを含む閉領域に決定された閉領域Hkの評価値Ekに基づいて、ベクトルペアテーブル900に登録済みの区画Diのベクトルペアを更新することにしてもよい。具体的には、例えば、登録/更新部608が、未登録のベクトルペアと登録済みのベクトルペアとの間で、それぞれ注視点Gを含む閉領域に決定された閉領域Hkの評価値Ekを比較する。
この結果、未登録のベクトルペアの評価値Ekが大きい場合、ベクトルペアテーブル900に登録済みのベクトルペアを未登録のベクトルペアに更新する。これにより、注視点Gを含む閉領域Hkの評価値Ekが大きくなるように区間Diのベクトルペアを更新することができ、補正値の算出元としてより適切なベクトルペアをベクトルペアテーブル900に登録することができる。
また、上述した決定手法1〜4において、注視点Gに決定された画素p[v]の座標位置が区画Diの境界付近の場合は、上記関連付け部607は、区画Di内の仮の視線位置VPと、区画Di内の注視点Gの座標位置とを関連付けないことにしてもよい。すなわち、関連付け部607が、区画Diの第1の視線ベクトルV1と第2の視線ベクトルV2との関連付けを行わない。これにより、複数の区画が隣接する境界付近に、各区画Diの注視点Gが偏ってしまうことを防ぐことができる。なお、区画Diの境界付近とは、例えば、区画Diの境界に接する画素であってもよく、また、境界から数画素(例えば、3画素)程度の範囲でもよい。
(区間Diの大きさの決定手法)
つぎに、分割部603によって表示画像SPを分割する際の区画Diの大きさを決定する決定手法について説明する。ここでは、区画Di内の仮の視線位置VPと、区画Di内の注視点Gの座標位置との誤差を統計的に処理して、区画Diの適切な大きさを決定する。
誤差算出部613は、関連付けられた区画Di内の仮の視線位置VPと、区画Di内の注視点Gの座標位置との誤差εを算出する。具体的には、例えば、誤差算出部613が、下記式(8)を用いて、仮の視線位置VPと、注視点Gの座標位置との誤差εを算出することができる。
ただし、εは仮の視線位置VPと注視点Gの座標位置との距離である。vxは仮の視線位置VPのXW座標であり、vyは仮の視線位置VPのYW座標である。gxは注視点GのXW座標であり、gyは注視点GのYW座標である。
ε={(vx−gx)2+(vy−gy)2}1/2 ・・・(8)
算出された誤差εは、例えば、図14に示す誤差テーブル1400に記憶される。誤差テーブル1400は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。ここで、誤差テーブル1400の記憶内容について説明する。
図14は、誤差テーブルの記憶内容の一例を示す説明図である。図14において、誤差テーブル1400は、標本IDおよび誤差のフィールドを有し、各フィールドに情報を設定することで誤差データ(例えば、誤差データ1400−1〜1400−3)をレコードとして記憶している。
標本IDは、誤差データの識別子である。誤差は、区画Di内の仮の視線位置VPと、区画Di内の注視点Gの座標位置との誤差εである。上記誤差算出部613によって誤差εが算出されると、その都度、標本IDがインクリメントされて新たな誤差データが誤差テーブル1400に記憶される。
区画決定部614は、算出された誤差εに基づいて、表示画像SPを区切って分割する区画Diの大きさを決定する。具体的には、例えば、区画決定部614が、誤差テーブル1400を参照して、仮の視線位置VPと注視点Gの座標位置との誤差に関する誤差分布を作成する。
ここで、誤差分布とは、例えば、x軸とy軸とからなる2次元座標系において、誤差がx以下となる確率yを表す確率密度分布である。なお、統計的な処理の精度を向上させるため、誤差テーブル1400内の標本数が所定数M(例えば、M=100)以上となった場合に、誤差分布を作成することにしてもよい。
そして、区画決定部614が、作成された誤差分布の値に基づいて、表示画像SPを区切って分割する区画Diの大きさを決定する。誤差分布の値とは、例えば、誤差分布の平均μ、分散σ2、標準偏差σなどである。ここで、誤差分布において、平均μからのずれが±3σ以下の範囲に誤差が含まれる確率は約99[%]である。
そこで、区画決定部614が、例えば、表示画像SPを区切って分割する区画Diの大きさを、1辺の長さが「6σ」の正方形に決定することにしてもよい。この場合、分割部603は、決定された区画Diの大きさにしたがって、ディスプレイ311の画面を、1辺の長さが「6σ」の正方形に区切って区画D1〜Dmに分割する。
これにより、区画Diの大きさをできるだけ小さくしつつ、区画Di内でベクトルペアを高確率に作ることができる適切な大きさで表示画像SPを分割することができ、補正値の算出元となるベクトルペアをより多く求めることができる。
(補正値算出部609の具体的な処理内容)
ここで、被写体に固有の補正値を算出する補正値算出部609の具体的な処理内容について説明する。ここでは、まず、補正値算出部609が、2組のベクトルペアを用いて、パラメータω1〜ω4の値を求める場合について説明する。まず、補正値算出部609が、上記式(4)を展開することにより、下記式(9)および(10)の連立方程式を求める。
θ2=ω1θ1+ω2 ・・・(9)
φ2=ω3φ1+ω4 ・・・(10)
このあと、補正値算出部609が、例えば、図9に示したベクトルペアテーブル900を参照して、偏角データ900−1,900−2を上記式(9)および(10)に代入して、4つの連立方程式を求める。ただし、各偏角θ1、φ1、θ2およびφ2の値は、単位を[度]から[ラジアン]に変換して、上記式(9)および(10)に代入する。
そして、補正値算出部609が、4つの連立方程式を解くことで、パラメータω1〜ω4の値を求めることができる。偏角データ900−1,900−2の例では、各パラメータω1〜ω4の値は『ω1=1.18,ω2=0.087,ω3=9,ω4=−2.98』となる。
つぎに、補正値算出部609が、3組以上のベクトルペアを用いて、パラメータω1〜ω4の値を求める場合について説明する。ここでは、最小二乗法を用いて、パラメータω1〜ω4の値を求める場合について説明する。
まず、補正値算出部609が、ベクトルペアがN組のときのパラメータω1,ω2についての下記式(11)の誤差関数を、パラメータω1,ω2それぞれについて偏微分して、下記式(12)および(13)の連立方程式を求める。ただし、E(ω1,ω2)は、ベクトルペアPjがN組のときのパラメータω1,ω2についての誤差関数である。θ1jは、ベクトルペアPjの第1の視線ベクトルV1の偏角θ1である。θ2jは、ベクトルペアPjの第2の視線ベクトルV2の偏角θ2である。
同様に、補正値算出部609が、ベクトルペアPjがN組のときのパラメータω3,ω4についての下記式(14)の誤差関数を、パラメータω3,ω4それぞれについて偏微分して、下記式(15)および(16)の連立方程式を求める。ただし、E(ω3,ω4)は、ベクトルペアPjがN組のときのパラメータω3,ω4についての誤差関数である。φ1jは、ベクトルペアPjの第1の視線ベクトルV1の偏角φ1である。φ2jは、ベクトルペアPjの第2の視線ベクトルV2の偏角φ2である。
このあと、補正値算出部609が、例えば、ベクトルペアテーブル900を参照して、偏角データ900−1〜900−3の偏角θ1,θ2を上記式(12)および(13)に代入することにより、下記式(17)を求める。ただし、偏角θ1,θ2の値は、単位を[度]から[ラジアン]に変換して、上記式(12)および(13)に代入する。
また、補正値算出部609が、ベクトルペアテーブル900を参照して、偏角データ900−1〜900−3の偏角φ1,φ2を上記式(15)および(16)に代入することにより、下記式(18)を求める。ただし、偏角φ1,φ2の値は、単位を[度]から[ラジアン]に変換して、上記式(15)および(16)に代入する。
そして、補正値算出部609が、上記式(17)および(18)を解くことにより、パラメータω1〜ω4の値を求めることができる。偏角データ900−1〜900−3の例では、各パラメータω1〜ω4の値は『ω1=0.95,ω2=0.14,ω3=1.17,ω4=−0.12』となる。
このように、複数のベクトルペアを用いて統計的にパラメータω1〜ω4の値を算出することにより、被写体に固有のパラメータω1〜ω4の値を精度よく求めることができる。
(視線算出部602の具体的な処理内容)
つぎに、第1の視線ベクトルV1を算出する視線算出部602の具体的な処理内容について説明する。図15および図16は、第1の視線ベクトルV1を算出する具体的な処理内容の概要を示す説明図である。ここでは、図7に示した眼球700に近赤外線を照射したときの角膜表面におけるプルキニエ像703を利用して、第1の視線ベクトルV1を算出する場合について説明する。
(i)視線算出部602は、画像座標系510における眼球画像EP上の瞳孔701の瞳孔中心1501の位置ベクトルP’Pおよびプルキニエ像703の位置ベクトルuPを算出する。そして、視線算出部602は、瞳孔中心1501の位置ベクトルP’Pおよびプルキニエ像703の位置ベクトルuPをカメラ座標系520に座標変換する。
ここで、世界座標系530におけるプルキニエ像703および瞳孔中心1501のZW座標は、ディスプレイ311と被写体の眼球700との距離として予め設定されている。このため、カメラ座標系520における瞳孔中心1501の位置ベクトルP’Cは、世界座標系530における瞳孔中心1501のZW座標と画像座標系510における瞳孔中心1501の位置ベクトルP’Pから求めることができる。また、カメラ座標系520におけるプルキニエ像703の位置ベクトルuCは、世界座標系530におけるプルキニエ像703のZW座標と画像座標系510におけるプルキニエ像703の位置ベクトルuPから求めることができる。
なお、瞳孔中心1501は、例えば、眼球画像EPに写っている眼球表面のうち、周囲に比べて暗い楕円領域(瞳孔701)の中心位置である。また、プルキニエ像703は、例えば、眼球画像EPに写っている眼球表面のうち、瞳孔701の近傍に位置する輝点である。
(ii)視線算出部602は、プルキニエ像703の位置ベクトルuCから、角膜1502の角膜曲率中心1503の位置ベクトルcCを算出する。具体的には、例えば、視線算出部602が、下記式(19)を用いて、角膜曲率中心1503の位置ベクトルcCを算出することができる。
ただし、cCは、カメラ座標系520における角膜曲率中心1503の位置ベクトルである。Cは、角膜曲率半径を表す定数である。‖uC‖は、位置ベクトルuCのノルムである。なお、図15中、符号1504は「房水」である。
一例として、C=7.6[mm]、プルキニエ像703の位置ベクトルuC(XC,YC,ZC)=(35.42,61.04,600)とする。この場合、上記式(19)から、角膜曲率中心1503の位置ベクトルcCは、『cC(XC,YC,ZC)=(35.42,61.04,607.6)』となる。なお、各座標値の単位は[mm]である。
(iii)視線算出部602は、眼球画像EP上での瞳孔中心1501の位置ベクトルP’Cから、角膜表面での瞳孔中心1501の位置ベクトルPCを算出する。具体的には、例えば、視線算出部602が、下記式(20)を用いて、角膜表面での瞳孔中心1501の位置ベクトルPCを算出することができる。
ただし、PCは、角膜表面での瞳孔中心1501の位置ベクトルである。P’Cは、眼球画像EP上での瞳孔中心1501の位置ベクトルである。Cは、角膜曲率半径を表す定数である。‖P’C‖は、位置ベクトルP’Cのノルムである。また、Mは下記式(21)となる。ただし、‖P’C−uC‖は、位置ベクトル(P’C−uC)のノルムである。
一例として、C=7.6[mm]、眼球画像EP上での瞳孔中心1501の位置ベクトルP’C(XC,YC,ZC)=(35.14,59.22,600)とする。この場合、上記式(20)および(21)から、角膜表面での瞳孔中心1501の位置ベクトルPCは、『PC(XC,YC,ZC)=(35.15,59.44,607.6)』となる。
ただし、角膜1502に照射した光は、角膜表面で屈折する。したがって、観察された瞳孔701も実際の位置からは屈折して見えることになるため、位置ベクトルPCの補正が必要となる。そこで、視線算出部602が、角膜表面での瞳孔中心1501の位置ベクトルPCを補正する。
(iv)視線算出部602は、角膜表面での瞳孔中心1501に入射した光の屈折ベクトルtCと、角膜曲率中心1503から瞳孔中心1501までの距離Lとに基づいて、角膜表面での瞳孔中心1501の位置ベクトルPCを補正する。具体的には、例えば、視線算出部602が、下記式(22)を用いて、補正後の瞳孔中心1501の位置ベクトルpCを求めることができる。
ただし、pCは、補正後の瞳孔中心1501の位置ベクトルである。Lは、角膜曲率中心1503から瞳孔中心1501までの距離を表す定数である。Cは、角膜曲率半径を表す定数である。PCは、角膜表面での瞳孔中心1501の位置ベクトルである。また、tCは下記式(23)となる。ただし、n1は空気の屈折率、n2は房水1504の屈折率である。rCは、眼球画像EP上での瞳孔中心1501の位置ベクトルP’Cの単位ベクトルである。(rC,n)は、rCとnとの内積を表す。また、nは下記式(24)となる。
一例として、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)とする。この場合、上記式(22)〜(24)から、補正後の瞳孔中心1501の位置ベクトルpCは、『pC(XC,YC,ZC)=(35.3,59.83,603.07)』となる。
(v)視線算出部602は、補正後の瞳孔中心1501の位置ベクトルpCおよび角膜曲率中心1503の位置ベクトルcCを、カメラ座標系520から世界座標系530に座標変換する。そして、視線算出部602は、世界座標系530における補正後の瞳孔中心1501の位置ベクトルpWと、角膜曲率中心1503の位置ベクトルcWとに基づいて、第1の視線ベクトルV1Wを算出する。
具体的には、例えば、視線算出部602が、下記式(25)を用いて、第1の視線ベクトルV1Wを求めることができる。ただし、V1Wは、世界座標系530における第1の視線ベクトルV1である。
V1W=pW−cW ・・・(25)
一例として、瞳孔中心1501の位置ベクトルpW(XW,YW,ZW)=(35.3,59.83,603.07)とし、角膜曲率中心1503の位置ベクトルcW(XW,YW,ZW)=(35.42,61.04,607.6)とする。この場合、上記式(25)から、第1の視線ベクトルV1Wは、『V1W(XW,YW,ZW)=(−0.12,−1.21,−4.53)』となる。
また、視線算出部602が、世界座標系530における第1の視線ベクトルV1Wを極座標変換することにより、上記式(1)に含まれる動径r1、偏角θ1およびφ1を求めることができる。一例として、第1の視線ベクトルV1W(XW,YW,ZW)=(1,1,−7)とすると、極座標系における第1の視線ベクトルV1は『r1=1.74,θ1=168.58,φ1=45』となる。
なお、上述した説明では、人の左眼または右眼のいずれか一方の眼球に着目して、第1の視線ベクトルV1Wを求めることにしたが、これに限らない。例えば、視線算出部602が、左眼および右眼の眼球画像EPから左眼および右眼の第1の視線ベクトルV1Wを求めて、左眼および右眼の第1の視線ベクトルV1Wの平均値をとることにしてもよい。
(視線算出部602の具体的な処理内容)
第1の視線ベクトルV1に基づく表示画像SP上の仮の視線位置VPを算出する視線算出部602の具体的な処理内容について説明する。
図17は、視線ベクトルと視線位置との関係を表す説明図である。図17において、点Oは、世界座標系530における角膜曲率中心1503(図15参照)の位置ベクトルcWの先端の点である。点Aは、世界座標系530における第1の視線ベクトルV1Wの先端の点である。点A’は、第1の視線ベクトルV1Wの方向に伸びる直線と表示画像SPとが交わる点、すなわち、仮の視線位置VPである。
ここで、三角形OABと三角形OA’B’は相似関係にある。このため、角膜曲率中心1503の位置ベクトルcWのZW座標と第1の視線ベクトルV1WのZW座標との比率を利用して、仮の視線位置VPを求めることができる。具体的には、例えば、視線算出部602が、下記式(26)および(27)を用いて、仮の視線位置VPを求めることができる。
ただし、vx,vyは、仮の視線位置VPのXW座標およびYW座標である。また、仮の視線位置VPのZW座標は「0」である。xV1,yV1は、第1の視線ベクトルV1WのXW座標およびYW座標である。Gは、角膜曲率中心1503の位置ベクトルcWのZW座標の絶対値である。gは、第1の視線ベクトルV1WのZW座標の絶対値である。
vx=(G/g)×xV1 ・・・(26)
vy=(G/g)×yV1 ・・・(27)
一例として、世界座標系530における第1の視線ベクトルV1WをV1W(XW,YW,ZW)=(1.15,1.15,−7.00)とし、角膜曲率中心1503の位置ベクトルcWをcW(XW,YW,ZW)=(30,30,607)とする。この場合、上記Gは「G=607」となり、上記gは「g=7」となる。
したがって、仮の視線位置VPのXW座標は、上記式(26)から「vx=99.72=(607/7)×1.15」となる。また、仮の視線位置VPのYW座標は、上記式(27)から「vy=99.72=(607/7)×1.15」となる。
つぎに、図17を用いて、被写体の眼球から注視点Gに向かう第2の視線ベクトルV2を算出する視線算出部602の具体的な処理内容について説明する。図17において、点Cは、世界座標系530における第2の視線ベクトルV2Wの先端の点である。点C’は、第2の視線ベクトルV2Wの方向に伸びる直線と表示画像SPとが交わる点、すなわち、注視点Gである。
ここで、三角形OCBと三角形OC’B’は相似関係にある。このため、角膜曲率中心1503の位置ベクトルcWのZW座標と第1の視線ベクトルV1WのZW座標との比率を利用して、第2の視線ベクトルV2Wを求めることができる。具体的には、例えば、視線算出部602が、下記式(28)〜(30)を用いて、第2の視線ベクトルV2Wを求めることができる。
ただし、wx,wyは、注視点GのXW座標およびYW座標である。また、注視点GのZW座標は「0」である。xV2,yV2,zV2は、第2の視線ベクトルV2WのXW座標、YW座標およびZW座標である。zV1は、第1の視線ベクトルV1WのZW座標である。Gは、角膜曲率中心1503の位置ベクトルcWのZW座標の絶対値である。gは、第1の視線ベクトルV1WのZW座標の絶対値である。
xV2=(g/G)×wx ・・・(28)
yV2=(g/G)×wy ・・・(29)
zV2=zV1 ・・・(30)
一例として、世界座標系530における注視点Gを「G(XW,YW,ZW)=(100,100,0)」とし、角膜曲率中心1503の位置ベクトルcWを「cW(XW,YW,ZW)=(30,30,607)」とする。第1の視線ベクトルV1WのZW座標を「ZW=−7」とする。この場合、上記Gは「G=607」となり、上記gは「g=7」となる。
したがって、第2の視線ベクトルV2WのXW座標は、上記式(28)から「xV2=1.15」となる。また、第2の視線ベクトルV2WのYW座標は、上記式(29)から「yV2=1.15」となる。また、第2の視線ベクトルV2WのZW座標は、上記式(30)から「zV2=−7」となる。
そして、視線算出部602が、第2の視線ベクトルV2Wを極座標変換することにより、第2の視線ベクトルV2を求めることができる。一例として、第2の視線ベクトルV2Wを「V2W(XW,YW,ZW)=(1.15,1.15,−7)」とすると、第2の視線ベクトルV2は「r2=7.18,θ2=166.92,φ2=45」となる。
(特徴量算出部605の具体的な処理内容)
つぎに、表示画像SP内の領域ごとの特徴量(上述した区画Di内の画素p1〜〜pnごとの特徴量C1〜Cnに相当する)を算出する特徴量算出部605の具体的な処理内容について説明する。以下、表示画像SP内の複数の領域を「領域A1〜An」とし、領域A1〜Anごとの特徴量を「特徴量C1〜Cn」と表記する。ここでは、まず、表示画像SPに対して2値化処理を施すことにより、領域A1〜Anごとの特徴量C1〜Cnを算出する場合について説明する。
<2値化処理>
図18は、2値化処理の概要を示す説明図である。図18において、表示画像輝度テーブル1810は、領域ID、座標位置および輝度のフィールドを有し、領域A1〜Anごとの輝度情報1810−1〜1810−nを記憶している。
領域IDは、各領域A1〜Anの識別子である。座標位置は、世界座標系530における各領域A1〜Anの中心点のXW座標およびYW座標である。輝度は、各領域A1〜Anの赤(R)、緑(G)、青(B)ごとの輝度である。ここでは、各色の輝度が「0〜255」の256階調で表現されている。
まず、特徴量算出部605は、表示画像SPをグレースケール画像LPに変換する。ここで、グレースケール画像LPとは、画像を灰色の濃淡(白から黒までの明暗)だけで表現したものである。具体的には、例えば、特徴量算出部605が、表示画像SPの各領域A1〜Anの色ごとの輝度に基づいて、グレースケール画像LPにおける各領域A1〜Anの灰色の輝度を算出する。
より具体的には、例えば、特徴量算出部605が、下記式(31)を用いて、グレースケール画像LPにおける領域A1〜Anごとの灰色の輝度を算出することができる。ただし、L(i)は、グレースケール画像LPにおける領域Aiの灰色の輝度である。R(i)は、表示画像SPにおける領域Aiの赤色の輝度である。G(i)は、表示画像SPにおける領域Aiの緑色の輝度である。B(i)は、表示画像SPにおける領域Aiの青色の輝度である。
L(i)={R(i)+G(i)+B(i)}/3 ・・・(31)
すなわち、特徴量算出部605は、表示画像輝度テーブル1810を参照して、領域Aiの輝度R(i)、G(i)、B(i)を上記式(31)に代入することにより、領域Aiの輝度L(i)を算出することができる。例えば、領域A4の輝度L(4)は、『L(4)=200』となる。
なお、算出された領域A1〜Anごとの灰色の輝度L(1)〜L(n)は、例えば、グレースケール画像輝度テーブル1820に記憶される。グレースケール画像輝度テーブル1820は、領域ID、座標位置および輝度のフィールドを有し、領域A1〜Anごとの輝度情報1820−1〜1820−nを記憶している。ここで、輝度は、各領域A1〜Anの灰色(L)の輝度である。
つぎに、特徴量算出部605は、変換後のグレースケール画像LPに対して、2値化処理を実行する。ここで、2値化処理とは、濃淡のある画像を白と黒の2階調に変換する処理である。具体的には、例えば、特徴量算出部605は、各領域A1〜Anの灰色の輝度が、所定の閾値L以上となる場合は「白」、閾値L未満となる場合は「黒」に置き換える。なお、閾値Lは、任意に設定されて、ROM302、RAM303、磁気ディスク305、光ディスク307などの記憶装置に記憶されている。
より具体的には、例えば、特徴量算出部605は、グレースケール画像輝度テーブル1820を参照して、領域Aiの灰色の輝度L(i)が、閾値L以上となる場合は、輝度L(i)を「255」に置き換える。一方、特徴量算出部605は、領域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)は、例えば、図8に示した特徴量テーブル800の領域A1〜Anごとの「特徴量」フィールドに記憶される。すなわち、各領域A1〜Anの2値化後の輝度L(1)〜L(n)を、人の視覚的な注意を引きつける強さを表す特徴量C1〜Cnとする。
このように、各領域A1〜Anの輝度L(1)〜L(n)を2値化して表すことにより、領域A1〜Anの中から輝度・色・形が周囲と異なる領域Aiを特定することができる。ここで、輝度・色・形が周囲と異なる領域の一例について説明する。
図19は、輝度・色・形が周囲と異なる領域の一例を示す説明図である。なお、図面では、表示画像SPの一部を抜粋して表示している。図19において、表示画像SPaでは、領域Aaが周囲と比べて明るくなっている。表示画像SPbでは、領域Abが周囲と比べて色が異なっている。表示画像SPcでは、領域Acのみに文字が表示されている(形が周囲と異なる)。
表示画像SPにおいて、輝度・色・形が周囲と異なる領域Aiは、他の領域に比べて人の視線が向きやすい領域といえる。このため、各領域A1〜Anの輝度を2値化して表すことにより、領域Aa,Ab,Acのような輝度・色・形が周囲と異なる領域Aiを注視点Gに決定することができる。
なお、視線検出装置300は、領域Aa,Ab,Acのような輝度・色・形が周囲と異なる領域Aiを含む表示画像SPを、視線検出中の任意のタイミングでディスプレイ311に表示することにしてもよい。これにより、表示画像SPの中から注視点Gを精度よく決定して、被写体に固有の補正値(パラメータω1〜ω4の値)を高精度に算出することができる。
<顕著度マップ作成処理>
つぎに、表示画像SPに関する顕著度マップを作成することにより、領域A1〜Anごとの特徴量C1〜Cnを算出する場合について説明する。ここで、顕著度マップとは、表示画像SP上の領域A1〜Anごとの人の視覚的な注意を引きつける強さを顕著度として表すマップである。
具体的には、特徴量算出部605が、表示画像SPを輝度成分、色成分、方向成分に分離して、各成分に関する顕著度マップM1〜M3を作成する。そして、特徴量算出部605が、顕著度マップM1〜M3の線形和をとることにより、表示画像SPの顕著度マップMを作成する。
以下、図20〜図28を用いて、顕著度マップ作成処理の具体的な処理内容について説明する。ここでは、まず、図20および図21を用いて、輝度成分に関する表示画像SPの顕著度マップM1を作成する場合について説明する。
図20および図21は、輝度成分に関する顕著度マップ作成処理の概要を示す説明図である。図20において、(i)特徴量算出部605は、表示画像SPをグレースケール画像LPに変換する。ここで、表示画像輝度テーブル2010は、表示画像SP上の各領域A1〜Anの色(RGB)ごとの輝度を記憶するテーブルである。
具体的には、例えば、特徴量算出部605が、表示画像輝度テーブル2010を参照して、表示画像SP上の領域Aiの輝度R(i)、G(i)、B(i)を上記式(31)に代入する。これにより、グレースケール画像LP上の領域Aiの灰色(L)の輝度L(i)を算出することができる。
グレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、グレースケール画像輝度テーブル2020に記憶される。グレースケール画像輝度テーブル2020は、グレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図20において、(ii)特徴量算出部605は、グレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DPを作成する。ここで、ガウシアンフィルタとは、画像を滑らかにして輪郭のボケを少なくすることを目的とした平滑化フィルタである。ダウンサンプリングとは、サンプリング周波数を下げて再サンプリングすることである。
ダウンサンプリング画像DP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ダウンサンプリング画像輝度テーブル2030に記憶される。ダウンサンプリング画像輝度テーブル2030は、ダウンサンプリング画像DP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図20において、(iii)特徴量算出部605は、ダウンサンプリング画像DPにアップサンプリング(バイリニア補間)を実施して、ピラミッド画像PPを作成する。ここで、アップサンプリングとは、サンプリング周波数を上げて再サンプリングすることである。ピラミッド画像PPとは、解像度の異なる画像の集合である。
ピラミッド画像PP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ピラミッド画像輝度テーブル2040に記憶される。ピラミッド画像輝度テーブル2040は、ピラミッド画像PP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。ただし、ピラミッド画像輝度テーブル2040は、ピラミッド画像PPの低解像度画像の各領域A1〜Anの輝度L(1)〜L(n)を記憶している。
図21において、(iv)特徴量算出部605は、ピラミッド画像PPに関する中心周辺差分処理を実施して、輝度成分に関する顕著度マップM1を作成する。ここで、中心周辺差分処理とは、ピラミッド画像PPの高解像度画像と低解像度画像との差分を取ることである。ここでは、ピラミッド画像PPの高解像度画像の各領域A1〜Anの輝度L(1)〜L(n)として、グレースケール画像輝度テーブル2020内の各領域A1〜Anの輝度L(1)〜L(n)を用いる。
具体的には、特徴量算出部605が、ピラミッド画像輝度テーブル2040内の領域Aiの輝度L(i)と、グレースケール画像輝度テーブル2020内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度成分に関する顕著度を算出する。例えば、領域A2の輝度成分に関する顕著度は、『47=|33−80|』となる。
表示画像SP上の各領域A1〜Anの輝度成分に関する顕著度は、例えば、輝度顕著度テーブル2100に記憶される。輝度顕著度テーブル2100は、表示画像SP上の各領域A1〜Anの輝度成分に関する顕著度を記憶するテーブルである。これにより、輝度成分に関する表示画像SPの顕著度マップM1を作成することができる。
なお、上述した各種テーブル2010,2020,2030,2040,2100は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
つぎに、図22〜図24を用いて、色成分に関する表示画像SPの顕著度マップM2を作成する場合について説明する。図22〜図24は、色成分に関する顕著度マップ作成処理の概要を示す説明図である。
図22および図23において、(i)特徴量算出部605は、表示画像輝度テーブル2010(図20参照)を参照して、表示画像SPをR成分、G成分、B成分およびY(黄)成分に分離する。ここで、表示画像SP上の各領域A1〜Anの黄色の輝度Y(1)〜Y(n)は、例えば、特徴量算出部605が、下記式(32)を用いて求めることができる。ただし、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成分輝度テーブル2210に記憶される。R成分輝度テーブル2210は、表示画像SP上の各領域A1〜Anの赤色の輝度R(1)〜R(n)を記憶するテーブルである。
また、分離された表示画像SP上の各領域A1〜Anの緑色の輝度G(1)〜G(n)は、例えば、G成分輝度テーブル2220に記憶される。G成分輝度テーブル2220は、表示画像SP上の各領域A1〜Anの緑色の輝度G(1)〜G(n)を記憶するテーブルである。
また、分離された表示画像SP上の各領域A1〜Anの青色の輝度B(1)〜B(n)は、例えば、B成分輝度テーブル2310に記憶される。B成分輝度テーブル2310は、表示画像SP上の各領域A1〜Anの青色の輝度B(1)〜B(n)を記憶するテーブルである。
また、分離された表示画像SP上の各領域A1〜Anの黄色の輝度Y(1)〜Y(n)は、例えば、Y成分輝度テーブル2320に記憶される。Y成分輝度テーブル2320は、表示画像SP上の各領域A1〜Anの黄色の輝度Y(1)〜Y(n)を記憶するテーブルである。
図22において、(ii)特徴量算出部605は、R成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してR成分のダウンサンプリング画像DPを作成する。
R成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度R(1)〜R(n)は、例えば、R成分ダウンサンプリング画像輝度テーブル2211に記憶される。R成分ダウンサンプリング画像輝度テーブル2211は、R成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度R(1)〜R(n)を記憶するテーブルである。
図22において、(iii)特徴量算出部605は、R成分のダウンサンプリング画像DPにアップサンプリングを実施して、R成分のピラミッド画像PPを作成する。R成分のピラミッド画像PP上の各領域A1〜Anの輝度R(1)〜R(n)は、例えば、R成分ピラミッド画像輝度テーブル2212に記憶される。R成分ピラミッド画像輝度テーブル2212は、R成分のピラミッド画像PP上の各領域A1〜Anの輝度R(1)〜R(n)を記憶するテーブルである。
図22において、(ii)特徴量算出部605は、G成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してG成分のダウンサンプリング画像DPを作成する。G成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度G(1)〜G(n)は、例えば、G成分ダウンサンプリング画像輝度テーブル2221に記憶される。G成分ダウンサンプリング画像輝度テーブル2221は、G成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度G(1)〜G(n)を記憶するテーブルである。
図22において、(iii)特徴量算出部605は、G成分のダウンサンプリング画像DPにアップサンプリングを実施して、G成分のピラミッド画像PPを作成する。G成分のピラミッド画像PP上の各領域A1〜Anの輝度G(1)〜G(n)は、例えば、G成分ピラミッド画像輝度テーブル2222に記憶される。G成分ピラミッド画像輝度テーブル2222は、G成分のピラミッド画像PP上の各領域A1〜Anの輝度G(1)〜G(n)を記憶するテーブルである。
図23において、(ii)特徴量算出部605は、B成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してB成分のダウンサンプリング画像DPを作成する。B成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度B(1)〜B(n)は、例えば、B成分ダウンサンプリング画像輝度テーブル2311に記憶される。B成分ダウンサンプリング画像輝度テーブル2311は、B成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度B(1)〜B(n)を記憶するテーブルである。
図23において、(iii)特徴量算出部605は、B成分のダウンサンプリング画像DPにアップサンプリングを実施して、B成分のピラミッド画像PPを作成する。B成分のピラミッド画像PP上の各領域A1〜Anの輝度B(1)〜B(n)は、例えば、B成分ピラミッド画像輝度テーブル2312に記憶される。B成分ピラミッド画像輝度テーブル2312は、B成分のピラミッド画像PP上の各領域A1〜Anの輝度B(1)〜B(n)を記憶するテーブルである。
図23において、(ii)特徴量算出部605は、Y成分に分離した表示画像SPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してY成分のダウンサンプリング画像DPを作成する。Y成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度Y(1)〜Y(n)は、例えば、Y成分ダウンサンプリング画像輝度テーブル2321に記憶される。Y成分ダウンサンプリング画像輝度テーブル2321は、Y成分のダウンサンプリング画像DP上の各領域A1〜Anの輝度Y(1)〜Y(n)を記憶するテーブルである。
図23において、(iii)特徴量算出部605は、Y成分のダウンサンプリング画像DPにアップサンプリングを実施して、Y成分のピラミッド画像PPを作成する。Y成分のピラミッド画像PP上の各領域A1〜Anの輝度Y(1)〜Y(n)は、例えば、Y成分ピラミッド画像輝度テーブル2322に記憶される。Y成分ピラミッド画像輝度テーブル2322は、Y成分のピラミッド画像PP上の各領域A1〜Anの輝度Y(1)〜Y(n)を記憶するテーブルである。
図24において、(iv)特徴量算出部605は、R成分の表示画像SPとG成分の表示画像SPに関する中心周辺差分処理を実施する。具体的には、例えば、特徴量算出部605が、下記式(33)を用いて、表示画像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)}|
・・・(33)
なお、輝度R(i)は、R成分輝度テーブル2210に記憶されている。輝度G(i)は、G成分輝度テーブル2220に記憶されている。輝度RP(i)は、R成分ピラミッド画像輝度テーブル2212に記憶されている。輝度GP(i)は、G成分ピラミッド画像輝度テーブル2222に記憶されている。また、算出された表示画像SP上の各領域A1〜Anの赤色および緑色の輝度RG(1)〜RG(n)は、例えば、RG成分輝度テーブル2410に記憶される。RG成分輝度テーブル2410は、表示画像SP上の各領域A1〜Anの赤色および緑色の輝度RG(1)〜RG(n)を記憶するテーブルである。
図24において、(iv)特徴量算出部605は、B成分の表示画像SPとY成分の表示画像SPに関する中心周辺差分処理を実施する。具体的には、例えば、特徴量算出部605が、下記式(34)を用いて、表示画像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)}・・・(34)
なお、輝度B(i)は、B成分輝度テーブル2310に記憶されている。輝度Y(i)は、Y成分輝度テーブル2320に記憶されている。輝度BP(i)は、B成分ピラミッド画像輝度テーブル2312に記憶されている。輝度YP(i)は、Y成分ピラミッド画像輝度テーブル2322に記憶されている。また、算出された表示画像SP上の各領域A1〜Anの青色および黄色の輝度BY(1)〜BY(n)は、例えば、BY成分輝度テーブル2420に記憶される。BY成分輝度テーブル2420は、表示画像SP上の各領域A1〜Anの青色および黄色の輝度BY(1)〜BY(n)を記憶するテーブルである。
図24において、(v)特徴量算出部605は、領域A1〜Anの輝度RG(1)〜RG(n)と、領域A1〜Anの輝度BY(1)〜BY(n)との線形和をとることにより、色成分に関する顕著度マップM2を作成する。具体的には、特徴量算出部605が、RG成分輝度テーブル2410内の領域Aiの輝度RG(i)と、BY成分輝度テーブル2420内の領域Aiの輝度BY(i)とを足し合わせて、領域Aiの色成分に関する顕著度を算出する。例えば、領域A2の色成分に関する顕著度は、『340=20+320』となる。
表示画像SP上の各領域A1〜Anの色成分に関する顕著度は、例えば、色顕著度テーブル2430に記憶される。色顕著度テーブル2430は、表示画像SP上の各領域A1〜Anの色成分に関する顕著度を記憶するテーブルである。これにより、色成分に関する表示画像SPの顕著度マップM2を作成することができる。
なお、上述した各種テーブル2210〜2212,2220〜2222,2310〜2312,2320〜2322,2410,2420,2430は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
つぎに、図25〜図27を用いて、方向成分に関する表示画像SPの顕著度マップM3を作成する場合について説明する。なお、以下に示す各角度(0度、45度、90度、135度)は、ガボール関数の縞模様の方向である。図25〜図27は、方向成分に関する顕著度マップ作成処理の概要を示す説明図である。
図25において、(i)特徴量算出部605は、グレースケール画像輝度テーブル2020を参照して、グレースケール画像LPに対して0度のガボールフィルタによりフィルタリングする。ガボールフィルタとは、画像の局所的な濃淡情報を取り出すものである。0度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、0度ガボールフィルタ輝度テーブル2510に記憶される。0度ガボールフィルタ輝度テーブル2510は、0度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図25において、(i)特徴量算出部605は、グレースケール画像輝度テーブル2020を参照して、グレースケール画像LPに対して45度のガボールフィルタによりフィルタリングする。45度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、45度ガボールフィルタ輝度テーブル2520に記憶される。45度ガボールフィルタ輝度テーブル2520は、45度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図26において、(i)特徴量算出部605は、グレースケール画像輝度テーブル2020を参照して、グレースケール画像LPに対して90度のガボールフィルタによりフィルタリングする。90度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、90度ガボールフィルタ輝度テーブル2610に記憶される。90度ガボールフィルタ輝度テーブル2610は、90度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図26において、(i)特徴量算出部605は、グレースケール画像輝度テーブル2020を参照して、グレースケール画像LPに対して135度のガボールフィルタによりフィルタリングする。135度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、135度ガボールフィルタ輝度テーブル2620に記憶される。135度ガボールフィルタ輝度テーブル2620は、135度のガボールフィルタを通したグレースケール画像LP上の各領域A1〜Anの輝度L(1)〜L(n)を記憶するテーブルである。
図25において、(ii)特徴量算出部605は、0度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(0度)を作成する。ダウンサンプリング画像DP(0度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ダウンサンプリング画像輝度テーブル2511に記憶される。
図25において、(ii)特徴量算出部605は、45度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(45度)を作成する。ダウンサンプリング画像DP(45度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ダウンサンプリング画像輝度テーブル2521に記憶される。
図26において、(ii)特徴量算出部605は、90度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(90度)を作成する。ダウンサンプリング画像DP(90度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ダウンサンプリング画像輝度テーブル2611に記憶される。
図26において、(ii)特徴量算出部605は、135度のガボールフィルタを通したグレースケール画像LPにガウシアンフィルタをかけて平滑化したあと、ダウンサンプリングを実施してダウンサンプリング画像DP(135度)を作成する。ダウンサンプリング画像DP(135度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ダウンサンプリング画像輝度テーブル2621に記憶される。
図25において、(iii)特徴量算出部605は、ダウンサンプリング画像DP(0度)にアップサンプリングを実施して、ピラミッド画像PP(0度)を作成する。ピラミッド画像PP(0度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ピラミッド画像輝度テーブル2512に記憶される。
図25において、(iii)特徴量算出部605は、ダウンサンプリング画像DP(45度)にアップサンプリングを実施して、ピラミッド画像PP(45度)を作成する。ピラミッド画像PP(45度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ピラミッド画像輝度テーブル2522に記憶される。
図26において、(iii)特徴量算出部605は、ダウンサンプリング画像DP(90度)にアップサンプリングを実施して、ピラミッド画像PP(90度)を作成する。ピラミッド画像PP(90度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ピラミッド画像輝度テーブル2612に記憶される。
図26において、(iii)特徴量算出部605は、ダウンサンプリング画像DP(135度)にアップサンプリングを実施して、ピラミッド画像PP(135度)を作成する。ピラミッド画像PP(135度)上の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、ピラミッド画像輝度テーブル2622に記憶される。
図27において、(iv)特徴量算出部605は、ピラミッド画像PP(0度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部605が、0度ガボールフィルタ輝度テーブル2510内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2512内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(0度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、0度差分輝度テーブル2711に記憶される。
図27において、(iv)特徴量算出部605は、ピラミッド画像PP(45度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部605が、45度ガボールフィルタ輝度テーブル2520内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2522内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(45度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、45度差分輝度テーブル2712に記憶される。
図27において、(iv)特徴量算出部605は、ピラミッド画像PP(90度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部605が、90度ガボールフィルタ輝度テーブル2610内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2612内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(90度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、90度差分輝度テーブル2713に記憶される。
図27において、(iv)特徴量算出部605は、ピラミッド画像PP(135度)に関する中心周辺差分処理を実施する。具体的には、特徴量算出部605が、135度ガボールフィルタ輝度テーブル2620内の領域Aiの輝度L(i)とピラミッド画像輝度テーブル2622内の領域Aiの輝度L(i)との差分を求めることにより、領域Aiの輝度L(i)を算出する。ピラミッド画像PP(135度)に関する中心周辺差分処理後の各領域A1〜Anの輝度L(1)〜L(n)は、例えば、135度差分輝度テーブル2714に記憶される。
図27において、(v)特徴量算出部605は、0度、45度、90度、135度のガボールフィルタに通したグレースケール画像LPに基づく領域A1〜Anの輝度L(1)〜L(n)の線形和をとることにより、方向成分に関する顕著度マップM3を作成する。具体的には、特徴量算出部605が、差分輝度テーブル2711〜2714内の領域Aiの輝度L(i)を足し合わせて、領域Aiの方向成分に関する顕著度を算出する。例えば、領域A3の方向成分に関する顕著度は、『170=0+0+0+170』となる。
表示画像SP上の各領域A1〜Anの方向成分に関する顕著度は、例えば、方向顕著度テーブル2720に記憶される。方向顕著度テーブル2720は、表示画像SP上の各領域A1〜Anの方向成分に関する顕著度を記憶するテーブルである。これにより、方向成分に関する表示画像SPの顕著度マップM3を作成することができる。
なお、上述した各種テーブル2510〜2512,2520〜2522,2610〜2612,2620〜2622,2711〜2714,2720は、例えば、RAM303、磁気ディスク305、光ディスク307などの記憶装置により実現される。
つぎに、図28を用いて、輝度成分、色成分および方向成分に関する表示画像SPの顕著度マップM1〜M3の線形和をとることにより、表示画像SPの顕著度マップMを作成する場合について説明する。
図28は、表示画像の顕著度マップ作成処理の概要を示す説明図である。図28において、(i)特徴量算出部605は、輝度顕著度テーブル2100(図21参照)の領域A1〜Anごとの顕著度を、最小値が「0」かつ最大値が「255」となるように正規化する。ここでは、例えば、領域A2の顕著度が「47」から「120」に変換されている。
図28において、(i)特徴量算出部605は、色顕著度テーブル2430の領域A1〜Anごとの顕著度を、最小値が「0」かつ最大値が「255」となるように正規化する。ここでは、例えば、領域A3の顕著度が「780」から「255」に変換されている。
図28において、(i)特徴量算出部605は、方向顕著度テーブル2720の領域A1〜Anごとの顕著度を、最小値が「0」かつ最大値が「255」となるように正規化する。ここでは、例えば、領域A2の顕著度が「170」から「255」に変換されている。
図28において、(ii)特徴量算出部605は、輝度、色、方向顕著度テーブル2100,2430,2720の領域A1〜Anごとの顕著度の線形合成を行うことにより、領域A1〜Anごとの顕著度を算出する。これにより、表示画像SPに関する顕著度マップMを作成することができる。
具体的には、特徴量算出部605が、輝度、色、方向顕著度テーブル2100,2430,2720の領域A1〜Anごとの顕著度の線形和をとる。そして、特徴量算出部605が、線形和をとった領域A1〜Anごとの顕著度を最小値が「0」かつ最大値が「255」となるように正規化する。算出された領域A1〜Anごとの顕著度は、例えば、図8に示した特徴量テーブル800内の領域A1〜Anごとの「特徴量」フィールドに記憶される。すなわち、ここでは、各領域A1〜Anの顕著度を、人の視覚的な注意を引きつける強さを表す特徴量C1〜Cnとしている。
ここで、領域A1〜Anのうち領域A1〜A4に着目する。この場合、例えば、上記注視点決定部606は、特徴量テーブル800を参照して、領域A1〜A4のうち、特徴量が最大の領域A3を注視点Gに決定する。ここで、表示画像SPに関する顕著度マップMの具体例について説明する。
図29は、顕著度マップの具体例を示す説明図である。図29において、表示画像2901は、ディスプレイ311に表示された表示画像SPである。また、顕著度マップ2902は、表示画像2901の顕著度マップMである。顕著度マップ2902では、輝度や色などの特徴が周囲に比べて顕著な部分を強調して表している。
具体的には、顕著度マップ2902において、白い部分は黒い部分に比べて人の視覚的な注意を引きつける強さが大きいことを表している。顕著度マップ2902によれば、表示画像2901の中から人が注視しやすい注視点Gを高精度に決定することができる。
(視線検出装置300の補正値算出処理手順)
つぎに、視線検出装置300の補正値算出処理手順について説明する。ここでは、ベクトルペアテーブル900に登録する区画Diのベクトルペアの数が「1」の場合を例に挙げて説明する(すなわち、上記所定数A=1)。
図30は、視線検出装置の補正値算出処理手順の一例を示すフローチャート(その1)である。図30のフローチャートにおいて、まず、取得部601により、表示画像SPおよび眼球画像EPを取得したか否かを判断する(ステップS3001)。表示画像SPは、眼球画像EPの撮影時にディスプレイ311に表示中のものである。
ここで、取得部601により、表示画像SPおよび眼球画像EPを取得するのを待つ(ステップS3001:No)。そして、取得部601により、表示画像SPおよび眼球画像EPを取得した場合(ステップS3001:Yes)、視線算出部602により、取得された眼球画像EPに基づいて、第1の視線ベクトルV1を算出する(ステップS3002)。第1の視線ベクトルV1は、被写体の眼球からディスプレイ311に向かうベクトルである。
つぎに、視線算出部602により、算出された第1の視線ベクトルV1に基づいて、表示画像SP上の仮の視線位置VPを算出する(ステップS3003)。そして、分割部603により、ディスプレイ311の画面に表示された表示画像SPを区切って区画D1〜Dmに分割する(ステップS3004)。
このあと、検索部604により、分割された区画D1〜Dmの中から、仮の視線位置VPを含む区画Diを検索する(ステップS3005)。そして、特徴量算出部605により、区画Diのベクトルペアがベクトルペアテーブル900に登録済みか否かを判断する(ステップS3006)。
ここで、区画Diのベクトルペアが登録済みの場合(ステップS3006:Yes)、ステップS3001に戻る。一方、区画Diのベクトルペアが未登録の場合(ステップS3006:No)、注視点決定部606により、区画Di内の被写体が注視している注視点Gを決定する注視点決定処理を実行する(ステップS3007)。
このあと、視線算出部602により、被写体の眼球から、決定された注視点Gに向かう第2の視線ベクトルV2を算出する(ステップS3008)。つぎに、関連付け部607により、ステップS3002において算出された第1の視線ベクトルV1と、ステップS3008において算出された第2の視線ベクトルV2とを区画Diのベクトルペアとして関連付ける(ステップS3009)。
そして、更新部により、区画Diのベクトルペアをベクトルペアテーブル900に登録する(ステップS3010)。つぎに、補正値算出部609により、ベクトルペアテーブル900に登録されているベクトルペアの数cが所定の区画数N以上となったか否かを判断する(ステップS3011)。ここで、区画数N未満の場合(ステップS3011:No)、ステップS3001に戻る。
一方、区画数N以上の場合(ステップS3011:Yes)、補正値算出部609により、ベクトルペアテーブル900を参照して、キャリブレーション行列Wに含まれるパラメータω1〜ω4の値を算出する(ステップS3012)。そして、補正値算出部609により、算出されたパラメータω1〜ω4の値をパラメータテーブル1000に登録して(ステップS3013)、本フローチャートによる一連の処理を終了する。
これにより、区画D1〜Dmのうち、N個の区画のベクトルペアに基づいて、被写体に固有の補正値を算出することができる。この結果、被写体に固有の補正値の算出元となるベクトルペアが特定の区画Diに偏ることを防ぐことができ、被写体に固有の補正値を正確に求めることができる。
なお、上記区画決定部614によって区画Diの大きさが決定されている場合は、ステップS3004において、決定された区画Diの大きさにしたがって、ディスプレイ311の画面を区画D1〜Dmに分割することにしてもよい。
<注視点決定処理の具体的な処理手順>
つぎに、図30に示したステップS3007の注視点決定処理の具体的な処理手順について説明する。まず、区画Di内の閉領域Hkごとの極大値Cmax(k)を用いて、区画Di内の注視点Gを含む閉領域を決定する場合について説明する。
図31は、注視点決定処理の具体的な処理手順の一例を示すフローチャート(その1)である。図31のフローチャートにおいて、まず、特徴量算出部605により、図30に示したステップS3005において検索された区画Di内の画素p1〜pnの画素値に基づいて、区画Di内の画素p1〜pnごとの特徴量C1〜Cnを算出する(ステップS3101)。算出された画素p1〜pnごとの特徴量C1〜Cnは、特徴量テーブル800に記憶される。
つぎに、注視点決定部606により、区画Diにラベリング処理を施すことにより、区画Diの中から閉領域Hkを抽出する(ステップS3102)。このあと、注視点決定部606により、複数の閉領域Hkが抽出されたか否かを判断し(ステップS3103)、複数の閉領域Hkが抽出されなかった場合(ステップS3103:No)、ステップS3109に移行する。
一方、複数の閉領域Hkが抽出された場合(ステップS3103:Yes)、注視点決定部606により、閉領域Hkのkを「k=1」とする(ステップS3104)。そして、注視点決定部606により、特徴量テーブル800を参照して、閉領域Hkの極大値Cmax(k)を特定する(ステップS3105)。特定された閉領域Hkの極大値Cmax(k)は、閉領域データテーブル1300に記憶される。
このあと、注視点決定部606により、閉領域Hkのkをインクリメントして(ステップS3106)、「k>K」となったか否かを判断する(ステップS3107)。ここで、「k≦K」の場合(ステップS3107:No)、ステップS3105に戻る。
一方、「k>K」の場合(ステップS3107:Yes)、注視点決定部606により、閉領域データテーブル1300を参照して、閉領域H1〜HKの中から極大値Cmax(k)が最大の閉領域Hkを特定する(ステップS3108)。
つぎに、注視点決定部606により、特定された閉領域Hk内の特徴量C[v]が極大値Cmax(k)の画素p[v]を特定する(ステップS3109)。そして、注視点決定部606により、特定された画素p[v]を注視点Gに決定して(ステップS3110)、図30に示したステップS3008に移行する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、極大値Cmax(k)が最大の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
つぎに、区画Di内の閉領域Hkごとの面積Skを用いて、区画Di内の注視点Gを含む閉領域を決定する場合について説明する。
図32は、注視点決定処理の具体的な処理手順の一例を示すフローチャート(その2)である。図32のフローチャートにおいて、まず、特徴量算出部605により、図30に示したステップS3005において検索された区画Di内の画素p1〜pnの画素値に基づいて、区画Di内の画素p1〜pnごとの特徴量C1〜Cnを算出する(ステップS3201)。算出された画素p1〜pnごとの特徴量C1〜Cnは、特徴量テーブル800に記憶される。
つぎに、注視点決定部606により、区画Diにラベリング処理を施すことにより、区画Diの中から閉領域Hkを抽出する(ステップS3202)。このあと、注視点決定部606により、複数の閉領域Hkが抽出されたか否かを判断し(ステップS3203)、複数の閉領域Hkが抽出されなかった場合(ステップS3203:No)、ステップS3209に移行する。
一方、複数の閉領域Hkが抽出された場合(ステップS3203:Yes)、注視点決定部606により、閉領域Hkのkを「k=1」とする(ステップS3204)。そして、注視点決定部606により、閉領域Hkの面積Skを算出する(ステップS3205)。算出された閉領域Hkの面積Skは、閉領域データテーブル1300に記憶される。
このあと、注視点決定部606により、閉領域Hkのkをインクリメントして(ステップS3206)、「k>K」となったか否かを判断する(ステップS3207)。ここで、「k≦K」の場合(ステップS3207:No)、ステップS3205に戻る。
一方、「k>K」の場合(ステップS3207:Yes)、注視点決定部606により、閉領域データテーブル1300を参照して、閉領域H1〜HKの中から面積Skが最大の閉領域Hkを特定する(ステップS3208)。
つぎに、注視点決定部606により、特定された閉領域Hk内の特徴量C[v]が最大の画素p[v]を特定する(ステップS3209)。そして、注視点決定部606により、特定された画素p[v]を注視点Gに決定して(ステップS3210)、図30に示したステップS3008に移行する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、面積Skが最大の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
つぎに、区画Di内の閉領域Hkごとの集中度Fkを用いて、区画Di内の注視点Gを含む閉領域を決定する場合について説明する。
図33は、注視点決定処理の具体的な処理手順の一例を示すフローチャート(その3)である。図33のフローチャートにおいて、まず、特徴量算出部605により、図30に示したステップS3005において検索された区画Di内の画素p1〜pnの画素値に基づいて、区画Di内の画素p1〜pnごとの特徴量C1〜Cnを算出する(ステップS3301)。算出された画素p1〜pnごとの特徴量C1〜Cnは、特徴量テーブル800に記憶される。
つぎに、注視点決定部606により、区画Diにラベリング処理を施すことにより、区画Diの中から閉領域Hkを抽出する(ステップS3302)。このあと、注視点決定部606により、複数の閉領域Hkが抽出されたか否かを判断し(ステップS3303)、複数の閉領域Hkが抽出されなかった場合(ステップS3303:No)、ステップS3310に移行する。
一方、複数の閉領域Hkが抽出された場合(ステップS3303:Yes)、注視点決定部606により、閉領域Hkのkを「k=1」とする(ステップS3304)。そして、注視点決定部606により、閉領域Hkの面積Skを算出する(ステップS3305)。算出された閉領域Hkの面積Skは、閉領域データテーブル1300に記憶される。
つぎに、注視点決定部606により、閉領域Hkの集中度Fkを算出する(ステップS3306)。算出された閉領域Hkの集中度Fkは、閉領域データテーブル1300に記憶される。このあと、注視点決定部606により、閉領域Hkのkをインクリメントして(ステップS3307)、「k>K」となったか否かを判断する(ステップS3308)。
ここで、「k≦K」の場合(ステップS3308:No)、ステップS3305に戻る。一方、「k>K」の場合(ステップS3308:Yes)、注視点決定部606により、閉領域データテーブル1300を参照して、閉領域H1〜HKの中から集中度Fkが最小の閉領域Hkを特定する(ステップS3309)。
つぎに、注視点決定部606により、特定された閉領域Hk内の特徴量C[v]が最大の画素p[v]を特定する(ステップS3310)。そして、注視点決定部606により、特定された画素p[v]を注視点Gに決定して(ステップS3311)、図30に示したステップS3008に移行する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、集中度Fkが最小の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
つぎに、区画Di内の閉領域Hkごとの評価値Ekを用いて、区画Di内の注視点Gを含む閉領域を決定する場合について説明する。
図34は、注視点決定処理の具体的な処理手順の一例を示すフローチャート(その4)である。図34のフローチャートにおいて、まず、特徴量算出部605により、図30に示したステップS3005において検索された区画Di内の画素p1〜pnの画素値に基づいて、区画Di内の画素p1〜pnごとの特徴量C1〜Cnを算出する(ステップS3401)。算出された画素p1〜pnごとの特徴量C1〜Cnは、特徴量テーブル800に記憶される。
つぎに、注視点決定部606により、区画Diにラベリング処理を施すことにより、区画Diの中から閉領域Hkを抽出する(ステップS3402)。このあと、注視点決定部606により、複数の閉領域Hkが抽出されたか否かを判断し(ステップS3403)、複数の閉領域Hkが抽出されなかった場合(ステップS3403:No)、ステップS3412に移行する。
一方、複数の閉領域Hkが抽出された場合(ステップS3403:Yes)、注視点決定部606により、閉領域Hkのkを「k=1」とする(ステップS3404)。そして、注視点決定部606により、特徴量テーブル800を参照して、閉領域Hkの極大値Cmax(k)を特定する(ステップS3405)。特定された閉領域Hkの極大値Cmax(k)は、閉領域データテーブル1300に記憶される。
このあと、注視点決定部606により、閉領域Hkの面積Skを算出する(ステップS3406)。算出された閉領域Hkの面積Skは、閉領域データテーブル1300に記憶される。つぎに、注視点決定部606により、閉領域Hkの集中度Fkを算出する(ステップS3407)。算出された閉領域Hkの集中度Fkは、閉領域データテーブル1300に記憶される。
そして、注視点決定部606により、閉領域Hkの評価値Ekを算出する(ステップS3408)。算出された閉領域Hkの評価値Ekは、閉領域データテーブル1300に記憶される。このあと、注視点決定部606により、閉領域Hkのkをインクリメントして(ステップS3409)、「k>K」となったか否かを判断する(ステップS3410)。
ここで、「k≦K」の場合(ステップS3410:No)、ステップS3405に戻る。一方、「k>K」の場合(ステップS3410:Yes)、注視点決定部606により、閉領域データテーブル1300を参照して、閉領域H1〜HKの中から評価値Ekが最大の閉領域Hkを特定する(ステップS3411)。
つぎに、注視点決定部606により、特定された閉領域Hk内の特徴量C[v]が極大値Cmax(k)の画素p[v]を特定する(ステップS3412)。そして、注視点決定部606により、特定された画素p[v]を注視点Gに決定して(ステップS3413)、図30に示したステップS3008に移行する。
これにより、区画Di内のオブジェクトを表す閉領域H1〜HKの中から、評価値Ekが最大の閉領域Hkを、注視点Gを含む閉領域に決定することができる。
(視線検出装置300の補正値算出処理手順の他の一例)
つぎに、視線検出装置300の補正値算出処理手順の他の一例について説明する。ここでは、表示画像SP上の仮の視線位置VPが停留点であると判断された場合に、関連付け部607が、第1の視線ベクトルV1と第2の視線ベクトルV2とをベクトルペアとして関連付ける場合を例に挙げて説明する。
図35および図36は、視線検出装置の補正値算出処理手順の他の一例を示すフローチャート(その2)である。図35のフローチャートにおいて、まず、取得部601により、表示画像SPおよび眼球画像EPを取得したか否かを判断する(ステップS3501)。表示画像SPは、眼球画像EPの撮影時にディスプレイ311に表示中のものである。
ここで、取得部601により、表示画像SPおよび眼球画像EPを取得するのを待つ(ステップS3501:No)。そして、取得部601により、表示画像SPおよび眼球画像EPを取得した場合(ステップS3501:Yes)、視線算出部602により、取得された眼球画像EPに基づいて、第1の視線ベクトルV1を算出する(ステップS3502)。
つぎに、視線算出部602により、算出された第1の視線ベクトルV1に基づいて、表示画像SP上の仮の視線位置VPを算出する(ステップS3503)。そして、判断部612により、ステップS3501において取得された表示画像SPにおいて、算出された仮の視線位置VPを中心とする所定領域Qを設定する(ステップS3504)。
このあと、判断部612により、ステップS3501において取得された眼球画像EPの撮影時刻からの経過時間tを「t=0」として(ステップS3505)、一定時間t0経過したか否かを判断する(ステップS3506)。ここで、一定時間t0経過するのを待って(ステップS3506:No)、一定時間t0経過した場合(ステップS3506:Yes)、取得部601により、眼球画像EPを取得する(ステップS3507)。
このあと、視線算出部602により、取得された眼球画像EPに基づいて、第1の視線ベクトルV1を算出する(ステップS3508)。つぎに、視線算出部602により、算出された第1の視線ベクトルV1に基づいて、表示画像SP上の仮の視線位置VPを算出する(ステップS3509)。
そして、判断部612により、ステップS3501において取得された表示画像SPにおいて、ステップS3509において算出された仮の視線位置VPが所定領域Q内に存在するか否かを判断する(ステップS3510)。ここで、所定領域Q内に存在しない場合(ステップS3510:No)、ステップS3501に戻る。
一方、所定領域Q内に存在する場合(ステップS3510:Yes)、判断部612により、経過時間tを「t=t+t0」として(ステップS3511)、経過時間tが所定時間Tより大きくなったか否かを判断する(ステップS3512)。ここで、経過時間tが所定時間T以内の場合(ステップS3512:No)、ステップS3506に戻る。
一方、経過時間tが所定時間Tより大きい場合(ステップS3512:Yes)、判断部612により、ステップS3503において算出された仮の視線位置VPが停留点であると判断して(ステップS3513)、図36に示すステップS3601に移行する。
図36のフローチャートにおいて、まず、分割部603により、ディスプレイ311の画面に表示された表示画像SPを区切って区画D1〜Dmに分割する(ステップS3601)。このあと、検索部604により、分割された区画D1〜Dmの中から、仮の視線位置VPを含む区画Diを検索する(ステップS3602)。
そして、特徴量算出部605により、区画Diのベクトルペアがベクトルペアテーブル900に登録済みか否かを判断する(ステップS3603)。ここで、区画Diのベクトルペアが登録済みの場合(ステップS3603:Yes)、図35に示すステップS3501に戻る。
一方、区画Diのベクトルペアが未登録の場合(ステップS3603:No)、注視点決定部606により、区画Di内の被写体が注視している注視点Gを決定する注視点決定処理を実行する(ステップS3604)。なお、ステップS3604の注視点決定処理は、図30に示したステップS3007の注視点決定処理と同様のため詳細な説明を省略する。
このあと、視線算出部602により、被写体の眼球から、決定された注視点Gに向かう第2の視線ベクトルV2を算出する(ステップS3605)。つぎに、関連付け部607により、図35に示したステップS3502において算出された第1の視線ベクトルV1と、ステップS3605において算出された第2の視線ベクトルV2とを区画Diのベクトルペアとして関連付ける(ステップS3606)。
そして、更新部により、区画Diのベクトルペアをベクトルペアテーブル900に登録する(ステップS3607)。つぎに、補正値算出部609により、ベクトルペアテーブル900に登録されているベクトルペアの数cが所定の区画数N以上となったか否かを判断する(ステップS3608)。ここで、区画数N未満の場合(ステップS3608:No)、図35に示したステップS3501に戻る。
一方、区画数N以上の場合(ステップS3608:Yes)、補正値算出部609により、ベクトルペアテーブル900を参照して、キャリブレーション行列Wに含まれるパラメータω1〜ω4の値を算出する(ステップS3609)。そして、補正値算出部609により、算出されたパラメータω1〜ω4の値をパラメータテーブル1000に登録して(ステップS3610)、本フローチャートによる一連の処理を終了する。
これにより、被写体が意識的に見た視線位置をもとに、被写体に固有の補正値を算出することができる。換言すれば、被写体の視線移動中の通過点を、補正値の算出元から排除することができる。この結果、被写体の視線の誤差を補正する際の補正精度を向上させることができる。なお、ステップS3513において、仮の視線位置VPが停留点であると判断される前に、表示画像SPが切り替わった場合は、本フローチャートによる一連の処理を最初からやり直すことにしてもよい。
(視線検出装置300の視線検出処理手順)
つぎに、視線検出装置300の視線検出処理手順について説明する。
図37は、視線検出装置の視線検出処理手順の一例を示すフローチャートである。図37のフローチャートにおいて、まず、取得部601により、表示画像SPおよび眼球画像EPを取得したか否かを判断する(ステップS3701)。表示画像SPは、眼球画像EPの撮影時にディスプレイ311に表示中のものである。
ここで、取得部601により、表示画像SPおよび眼球画像EPを取得するのを待つ(ステップS3701:No)。そして、取得部601により、表示画像SPおよび眼球画像EPを取得した場合(ステップS3701:Yes)、視線算出部602により、取得された眼球画像EPに基づいて、第1の視線ベクトルV1を算出する(ステップS3702)。
つぎに、補正部610により、パラメータテーブル1000内のパラメータω1〜ω4の値を用いて、算出された第1の視線ベクトルV1を補正する(ステップS3703)。このあと、補正部610により、補正された補正後の第1の視線ベクトルV1’に基づいて、表示画像SP上の被写体の視線位置RPを算出する(ステップS3704)。
そして、出力部611により、ステップS3701において取得された表示画像SPと、ステップS3704において算出された表示画像SP上の被写体の視線位置RPとを関連付けて示す視線検出結果Rを出力して(ステップS3705)、本フローチャートによる一連の処理を終了する。
これにより、被写体の個人差にともなう誤差を補正した視線位置RPを精度よく検出することができる。
以上説明したように、実施の形態2にかかる視線検出装置300によれば、ディスプレイ311の表示画像SPを区切って分割された区画D1〜Dmのうち、仮の視線位置VPを含む区画Di内の画素p1〜pnごとの特徴量C1〜Cnを算出することができる。これにより、眼球画像EPの撮影時にディスプレイ311に表示中の表示画像SP上の仮の視線位置VPを含む区画Diの中から、被写体の注視点Gを決定することができる。
また、視線検出装置300によれば、区画Diごとに、眼球画像EPに基づく第1の視線ベクトルV1と、被写体の眼球から注視点Gに向かう第2の視線ベクトルV2とをベクトルペアとして関連付けることができる。これにより、ディスプレイ311の画面上の区画D1〜Dmのうち、複数の区画のベクトルペアを求めることができる。
また、視線検出装置300によれば、区画D1〜Dmのうち少なくとも2以上の区画のベクトルペアに基づいて、被写体に固有の補正値(パラメータω1〜ω4の値)を算出することができる。これにより、被写体に固有の補正値の算出元となるベクトルペアが特定の区画Diに偏ることを防ぐことができる。また、複数のベクトルペアを用いて被写体に固有の補正値を統計的に求めることができる。
また、視線検出装置300によれば、被写体に固有の補正値を用いて、第1の視線ベクトルV1(仮の視線位置VP)を補正(キャリブレーション)することにより、被写体の個人差にともなう誤差を補正した視線位置RPを精度よく検出することができる。
また、視線検出装置300によれば、ベクトルペアテーブル900に登録される区画Diのベクトルペアの最大登録数(上記所定数A)を設定することにより、区画Diのベクトルペアが所定数Aより多く登録されることを防ぐことができる。これにより、区画Diごとのベクトルペアの数を平準化して、被写体に固有の補正値の算出元となるベクトルペアが特定の区画Diに偏ることを防ぐことができる。
また、視線検出装置300によれば、ベクトルペアテーブル900に未登録の区画Diのベクトルペアと登録済みの区画Diのベクトルペアとを比較して、補正値の算出元としてより適切なベクトルペアをベクトルペアテーブル900に登録することができる。
また、視線検出装置300によれば、表示画像SP上の仮の視線位置VPが停留点であると判断された場合に、区画Diのベクトルペアをベクトルペアテーブル900に登録することができる。これにより、被写体が意識的に見た視線位置をもとに、被写体に固有の補正値を算出することができる。換言すれば、被写体の視線移動中の通過点を、補正値の算出元から排除することができる。この結果、被写体の視線の誤差を補正する際の補正精度を向上させることができる。
また、視線検出装置300によれば、被写体の仮の視線位置VPと注視点Gの座標位置との誤差を統計的に処理して、ディスプレイ311の表示画像SPを区切って分割する区画Diの大きさを決定することができる。これにより、区画Diの大きさをできるだけ小さくしつつ、区画Di内でベクトルペアを高確率に作ることができる適切な大きさで表示画像SPを分割することができ、補正値の算出元となるベクトルペアをより多く求めることができる。
また、視線検出装置300によれば、区画Diの中から複数の閉領域Hkを抽出し、閉領域Hkごとの面積Skに基づいて、注視点Gを含む閉領域を決定することができる。これにより、面積Skが大きく、他の閉領域に比べて人間の視覚的な注意を引きつける強さが大きくなる閉領域Hkの中から注視点Gを決定することができる。
また、視線検出装置300によれば、区画Diの中から複数の閉領域Hkを抽出し、閉領域Hkごとの極大値Cmax(k)に基づいて、注視点Gを含む閉領域を決定することができる。これにより、極大値Cmax(k)が大きく、他の閉領域に比べて人間の視覚的な注意を引きつける強さが大きくなる閉領域Hkの中から注視点Gを決定することができる。
これらのことから、実施の形態2にかかる視線検出装置300によれば、被写体に固有の補正値を精度よく求めて、キャリブレーションでの補正精度を向上させることができる。この結果、視線検出装置300によれば、対象者の視線検出中に、対象者に意識させることなく適切なキャリブレーションを行うことが可能となり、対象者の個人差にともなう誤差を補正した視線を検出することができる。
また、視線検出装置300を、例えば、デジタルサイネージを利用した広告システムに適用することにより、対象者が見ている広告の内容を正確に特定することができる。この結果、対象者が見ている内容に関連する詳細情報をさらに表示するなどして、より効果的な宣伝広告を行うことができる。
また、視線検出装置300を、例えば、eラーニングを利用した学習システムに適用することにより、対象者が読み飛ばした部分を顕著に表示するなどして、リアルタイムに対象者の学習をサポートすることができる。
また、視線検出装置300を、例えば、パーソナル・コンピュータに適用することにより、ユーザが見たウェブサイト上のバナー広告などを特定することができる。これにより、ユーザに意識させることなく、ウェブサイト上のバナー広告などの閲覧回数を調査することが可能となる。
また、視線検出装置300を、例えば、飛行機のフライトシミュレータに適用することにより、熟練パイロットや訓練生の視線を正確に検出することができる。これにより、例えば、パイロット養成において、熟練パイロットの視線と訓練生の視線とを比較して、訓練生に的確なアドバイスを行うことができる。
なお、本実施の形態で説明した視線算出方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本視線算出プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本視線算出プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)被写体の眼の撮影画像に基づく、表示装置の画面に表示された表示画像上の前記被写体の視線位置を取得する取得部と、
前記表示画像を区切って分割された区画群の中から、前記取得部によって取得された前記被写体の視線位置を含む区画を検索する検索部と、
前記検索部によって検索された区画に含まれる画素の画素値に基づいて、前記区画内の領域ごとの特徴を抽出した特徴量を算出する特徴量算出部と、
前記特徴量算出部によって算出された領域ごとの特徴量に基づいて、前記区画内の複数の領域のいずれかの領域を、前記被写体が注視している注視点に決定する決定部と、
前記区画ごとに、前記取得部によって取得された前記被写体の視線位置と、前記決定部によって決定された注視点の座標位置とを関連付ける関連付け部と、
前記関連付け部によって関連付けられた前記区画ごとの関連付け結果のうち、複数の区画の関連付け結果に基づいて、前記被写体に固有の補正値を算出する補正値算出部と、
を備えることを特徴とする補正値算出装置。
(付記2)前記補正値算出部によって算出された前記被写体に固有の補正値に基づいて、前記被写体の視線位置を補正する補正部を備えることを特徴とする付記1に記載の補正値算出装置。
(付記3)前記補正値算出部は、前記関連付け部によって関連付けられた前記区画ごとの関連付け結果のうち、所定の区画数以上の区画の関連付け結果に基づいて、前記被写体に固有の補正値を算出することを特徴とする付記1または2に記載の補正値算出装置。
(付記4)前記関連付け部によって関連付けられた前記区画ごとの関連付け結果を記憶部に登録する登録部を備え、
前記関連付け部は、前記区画ごとに、前記登録部によって登録された当該区画の関連付け結果が所定数未満の場合、前記取得部によって取得された前記被写体の視線位置と、前記決定部によって決定された注視点の座標位置とを関連付けることを特徴とする付記1〜3のいずれか一つに記載の補正値算出装置。
(付記5)前記関連付け部によって関連付けられた前記区画の関連付け結果に基づいて、前記記憶部に登録されている当該区画の関連付け結果を更新する更新部を備えることを特徴とする付記4に記載の補正値算出装置。
(付記6)前記取得部によって取得された時系列の前記被写体の第1の視線位置および前記被写体の第2の視線位置に基づいて、前記被写体の第1の視線位置が停留点か否かを判断する判断部を備え、
前記関連付け部は、前記判断部によって前記被写体の第1の視線位置が停留点と判断された場合、前記被写体の第1の視線位置と、当該被写体の第1の視線位置を含む区画内の注視点の座標位置とを関連付けることを特徴とする付記1〜5のいずれか一つに記載の補正値算出装置。
(付記7)前記取得部によって取得された前記被写体の視線位置と、前記決定部によって決定された注視点の座標位置との誤差を算出する誤差算出部と、
前記誤差算出部によって算出された算出結果に基づいて、前記表示画像を区切って分割する区画の大きさを決定する区画決定部と、
前記区画決定部によって決定された区画の大きさにしたがって、前記表示画像を区切って区画群に分割する分割部と、を備え、
前記検索部は、前記分割部によって分割された区画群の中から、前記被写体の視線位置を含む区画を検索することを特徴とする付記1〜6のいずれか一つに記載の補正値算出装置。
(付記8)前記検索部によって検索された区画の中から複数の閉領域を抽出する抽出部を備え、
前記決定部は、前記抽出部によって抽出された閉領域ごとの面積に基づいて、前記複数の閉領域のいずれかの閉領域を、前記被写体が注視している注視点に決定することを特徴とする付記1〜7のいずれか一つに記載の補正値算出装置。
(付記9)前記決定部は、前記各閉領域に含まれる領域ごとの特徴量に基づいて、前記複数の閉領域のいずれかの閉領域を、前記被写体が注視している注視点に決定することを特徴とする付記8に記載の補正値算出装置。
(付記10)被写体の眼の撮影画像に基づく、表示装置の画面に表示された表示画像上の前記被写体の視線位置を取得する取得工程と、
前記表示画像を区切って分割された区画群の中から、前記取得工程によって取得された前記被写体の視線位置を含む区画を検索する検索工程と、
前記検索工程によって検索された区画に含まれる画素の画素値に基づいて、前記区画内の領域ごとの特徴を抽出した特徴量を算出する特徴量算出工程と、
前記特徴量算出工程によって算出された領域ごとの特徴量に基づいて、前記区画内の複数の領域のいずれかの領域を、前記被写体が注視している注視点に決定する決定工程と、
前記取得工程によって取得された前記被写体の視線位置と、前記決定工程によって決定された前記区画内の注視点の座標位置とを関連付ける関連付け工程と、
前記取得工程、前記検索工程、前記特徴量算出工程、前記決定工程および前記関連付け工程が繰り返し実行された結果、前記区画ごとの関連付け結果のうち複数の区画の関連付け結果に基づいて、前記被写体に固有の補正値を算出する補正値算出工程と、
をコンピュータが実行することを特徴とする補正値算出方法。
(付記11)被写体の眼の撮影画像に基づく、表示装置の画面に表示された表示画像上の前記被写体の視線位置を取得する取得工程と、
前記表示画像を区切って分割された区画群の中から、前記取得工程によって取得された前記被写体の視線位置を含む区画を検索する検索工程と、
前記検索工程によって検索された区画に含まれる画素の画素値に基づいて、前記区画内の領域ごとの特徴を抽出した特徴量を算出する特徴量算出工程と、
前記特徴量算出工程によって算出された領域ごとの特徴量に基づいて、前記区画内の複数の領域のいずれかの領域を、前記被写体が注視している注視点に決定する決定工程と、
前記取得工程によって取得された前記被写体の視線位置と、前記決定工程によって決定された注視点の座標位置とを関連付ける関連付け工程と、
前記取得工程、前記検索工程、前記特徴量算出工程、前記決定工程および前記関連付け工程が繰り返し実行された結果、前記区画ごとの関連付け結果のうち複数の区画の関連付け結果に基づいて、前記被写体に固有の補正値を算出する補正値算出工程と、
をコンピュータに実行させることを特徴とする補正値算出プログラム。