(57)【特許請求の範囲】
【請求項１】
画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出する補正係数算出部と、
前記補正係数算出部により算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する座標位置検出部と
を有することを特徴とする視線検出装置。
【請求項２】
前記補正係数算出部は、前記利用者によって前記オブジェクトが選択される度に仮の補正係数を算出し、前記利用者の前記オブジェトに対する注視具合に基づいて仮の補正係数の重み付けを行い、重み付けを行った各仮の補正係数を基にして、補正係数を算出することを特徴とする請求項１に記載の視線検出装置。
【請求項３】
前記補正係数算出部は、選択されたオブジェクトと他のオブジェクトとの距離に基づいて仮の補正係数に重み付けを行い、補正係数を算出することを特徴とする請求項２に記載の視線検出装置。
【請求項４】
前記補正係数算出部は、選択されたオブジェクト周辺の他のオブジェクトの密度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする請求項２に記載の視線検出装置。
【請求項５】
前記補正係数算出部は、オブジェクトが選択された時間から所定時間前までのマウスポインタの移動速度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする請求項２に記載の視線検出装置。
【請求項６】
前記補正係数算出部は、利用者識別情報と眼球半径とを対応付けて記憶する記憶部を参照し、入力された利用者識別情報を基にして、該利用者識別情報に対応する眼球半径を特定し、該眼球半径を更に利用して補正係数を算出することを特徴とする請求項１〜５のいずれか一つ記載の視線検出装置。
【請求項７】
コンピュータに、
画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出し、
算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する処理を実行させる補正係数算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視線検出装置等に関する。
【背景技術】
【０００２】
人の視線を検出する技術として、近赤外線等を利用者の眼球に照射して、角膜表面における反射像の位置から得られる角膜曲率中心と瞳孔中心から視線を検出するものがある。この技術を利用することで、利用者が注視するディスプレイ上の位置を判定することができる。例えば、利用者はキーボードを操作しなくても、ディスプレイ上のオブジェクトを注視することで、オブジェクトを選択することができる。
【０００３】
しかし、角膜表面における反射像を利用して検出される視線によって判定されるディスプレイ上の位置と、実際に利用者が注視している位置との間には誤差が生じる場合がある。誤差が生じると、利用者が視線によってディスプレイ上の所定のオブジェクトを選択しようとした場合には、意図しないオブジェクトが選択されてしまう場合がある。誤差が発生する要因としては、角膜表面における光の屈折率、眼球形状、眼球中心に対する基準点のズレなどがある。
【０００４】
上記の誤差を補正するために、視線キャリブレーションが行われる。この視線キャリブレーションでは、角膜表面における反射像から求められるディスプレイ上の位置と、実際のディスプレイ上の位置との誤差を埋める補正係数を算出する。この補正係数を利用することで、誤差がなくなり、利用者は快適にディスプレイ上のオブジェクトを選択することができる。
【０００５】
ここで、従来の視線キャリブレーションの一例について説明する。図１６は、従来の視線キャリブレーションの一例を説明するための図である。図１６に示すように、従来技術では、ディスプレイ１０を複数の領域に分割し、領域内にパターン１１を表示させる。このパターン１１は、矢印の順に移動する。利用者は、ディスプレイ上に表示されるパターン１１を順に追っていく。そして、従来技術では、パターン１１が表示されている領域毎に、視線から判定したディスプレイ１０上の位置と領域の位置との誤差を求め、この誤差が小さくなるような補正係数を算出する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４３８５１９７号公報
【特許文献２】特開２００６−２８５７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、視線キャリブレーションを実行する場合に、ユーザに係る負担が大きいという問題があった。
【０００８】
例えば、図１６に示した方法により視線キャリブレーションを実行する場合には、利用者はディスプレイ１０に表示されるパターン１１を見続けることになり、時間もかかるため、利用者にとって大きな負担となる。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、利用者に負担をかけることなく視線キャリブレーションを実行することができる視線検出装置および補正係数算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示の視線検出装置は、画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと画面に表示された他のオブジェクトとの関係に基づいて、利用者が視線入力を行う場合の誤差を補正するための補正係数を算出する補正係数算出部を有する。また、開示の視線検出装置は、補正係数と、利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、利用者が注視している画面上の座標を検出する座標位置検出部を有することを要件とする。
【発明の効果】
【００１１】
開示の視線検出装置によれば、利用者に負担をかけることなく視線キャリブレーションを実行することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例にかかる視線検出装置の機能構成を示す図である。
【図２】図２は、特徴量管理テーブルのデータ構造の一例を示す図である。
【図３】図３は、個人パラメータのデータ構造の一例を示す図である。
【図４】図４は、オブジェクト座標データのデータ構造の一例を示す図である。
【図５】図５は、補正係数管理テーブルのデータ構造の一例を示す図である。
【図６】図６は、目の特徴量を説明するための図である。
【図７】図７は、利用者の操作例を示す図（１）である。
【図８】図８は、利用者の操作例を示す図（２）である。
【図９】図９は、オブジェクトの密度と利用者の注視具合との関係を説明するための図（１）である。
【図１０】図１０は、オブジェクトの密度と利用者の注視具合との関係を説明するための図（２）である。
【図１１】図１１は、目的のオブジェクトにマウスポインタを移動させる場合の挙動を説明するための図である。
【図１２】図１２は、マウスポインタを選択対象となるオブジェクトまで移動させる場合の移動速度との関係を示す図である。
【図１３】図１３は、視線θと画面上の座標との関係を示す図である。
【図１４】図１４は、視線検出装置が補正係数を算出する場合の処理手順を示すフローチャートである。
【図１５】図１５は、実施例にかかる視線検出装置を構成するコンピュータのハードウェア構成を示す図である。
【図１６】図１６は、従来の視線キャリブレーションの一例を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する視線検出装置および補正係数算出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
本実施例にかかる視線検出装置の構成について説明する。図１は、本実施例にかかる視線検出装置の機能構成を示す図である。図１に示すように、この視線検出装置１００は、記憶部１０１、カメラ１０２、目検出部１０３、特徴量抽出部１０４、入力部１０５、画面表示部１０６、操作情報取得部１０７を有する。また、視線検出装置１００は、選択オブジェクト判定部１０８、重要度判定部１０９、補正係数算出部１１０、注視位置検出部１１１、画面制御部１１２を有する。
【００１５】
記憶部１０１は、利用者の視線キャリブレーションを実行するための各種データを記憶する記憶部である。図１に示すように、記憶部１０１は、特徴量管理テーブル１０１ａ、個人パラメータ１０１ｂ、オブジェクト座標データ１０１ｃ、補正係数管理テーブル１０１ｄ、補正係数データ１０１ｅを記憶する。
【００１６】
このうち、特徴量管理テーブル１０１ａは、特徴量を保持するテーブルである。この特徴量は、目の瞳孔中心と角膜反射像を基に特定される値である。目の瞳孔中心および角膜反射像の説明は後述する。図２は、特徴量管理テーブルのデータ構造の一例を示す図である。図２に示すように、特徴量管理テーブル１０１ａでは、特徴量が順に記憶されている。
【００１７】
個人パラメータ１０１ｂは、利用者毎の眼球半径を保持する。図３は、個人パラメータのデータ構造の一例を示す図である。図３に示すように、この個人パラメータ１０１ｂは、利用者を識別する利用者識別情報と、眼球半径とを対応づけて保持する。
【００１８】
オブジェクト座標データ１０１ｃは、オブジェクトの画面上の座標を保持する。図４は、オブジェクト座標データのデータ構造の一例を示す図である。図４に示すように、このオブジェクト座標データ１０１ｃは、オブジェクトを識別するオブジェクト識別情報と、座標とを対応づけて保持する。この座標は、画面上のオブジェクトの座標である。
【００１９】
補正係数管理テーブル１０１ｄは、補正係数の候補を保持するテーブルである。以下の説明において、補正係数の候補を仮の補正係数と表記する。図５は、補正係数管理テーブルのデータ構造の一例を示す図である。図５に示すように、この補正係数管理テーブル１０１ｄは、仮の補正係数と重要度フラグとを対応づけて保持する。ここで、重要度フラグは、該当する仮の補正係数が重要であるか否かを識別するためのフラグである。
【００２０】
補正係数データ１０１ｅは、角膜表面における反射像から求められるディスプレイ上の位置と、実際のディスプレイ上の位置との誤差を埋めるデータである。後述する注視位置検出部１１１は、この補正係数データ１０１ｅを利用して、利用者の注視位置を検出する。
【００２１】
図１の説明に戻る。カメラ１０２は、利用者の顔を撮影する装置である。カメラ１０２が利用者の顔を撮影する場合には、可視光または赤外線が利用者の目に照射されているものとする。カメラ１０２は、撮影した画像データを目検出部１０３、注視位置検出部１１１に出力する。
【００２２】
なお、カメラ１０２は、入力部１０５から出力される制御信号に合わせて、画像データを目検出部１０３に出力する。この制御信号は、利用者がマウスをクリックしたタイミングや、タッチパネルをタッチしたタイミングに合わせて入力部１０５から出力される信号である。カメラ１０２は、注視位置検出部１１１に対しては、画像データを常時出力する。
【００２３】
目検出部１０３は、画像データに含まれる目の領域を検出する処理部である。目検出部１０３は、目の領域を検出した後に、目の領域の画像データを特徴量抽出部１０４に出力する。
【００２４】
目検出部１０３が、目の領域を検出する処理の一例について説明する。例えば、目検出部１０３は、人物の目の特徴を含むパターンを保持しており、このパターンと画像データとをマッチングさせることで、目が存在する領域を画像データから判定する。または、目検出部１０３は、画像データから目頭や目尻といった目の特徴点を画像データから抽出し、抽出した特徴点の位置を基にして、目の領域を判定してもよい。
【００２５】
特徴量抽出部１０４は、目の領域の画像データから目の特徴量を抽出する処理部である。特徴量抽出部１０４は、抽出した特徴量を特徴量管理テーブル１０１ａに登録する。
【００２６】
例えば、特徴量抽出部１０４は、画像データから目の瞳孔中心と、角膜反射像とを検出し、瞳孔中心と角膜反射像との距離を目の特徴量として抽出する。ここで、角膜反射像は、利用者の目に光りが入射することで発生する像である。図６は、目の特徴量を説明するための図である。図６に示すように、利用者の目２０には、瞳孔中心２１と、角膜反射像２２とが存在する。例えば、目の特徴量は、瞳孔中心２１の位置から、角膜反射像２２の位置までの距離２３に対応する。
【００２７】
なお、特徴量抽出部１０４が抽出する特徴量は、利用者がマウスをクリックしたタイミングや、タッチパネルをタッチしたタイミングに対応するものとする。
【００２８】
入力部１０５は、利用者が視線検出装置１００に各種の情報を入力するために利用する入力装置である。例えば、入力部１０５は、キーボードやマウスなどに対応する。利用者は、入力部１０５を操作して、画面表示部１０６に表示されるオブジェクトを選択する。ここで、オブジェクトは、例えば、アイコン、フォルダ、ウインドウのボタンに対応する。また、利用者がログインする場合などには、入力部１０５を操作して、ＩＤ（Identification）やパスワード等を入力する。利用者が操作した情報は、入力部１０５から操作情報取得部１０７、補正係数算出部１１０に出力される。
【００２９】
また、例えば、入力部１０５は、利用者がマウスをクリックしたタイミングや、タッチパネルをタッチしたタイミングに合わせて、制御信号をカメラ１０２に出力する。
【００３０】
図７は、利用者の操作例を示す図（１）である。図７に示す例では、利用者３０は、マウス等を操作して、マウスポインタ３１を移動させ、ウインドウのボタン３２をクリックする。このように、ボタン３２をクリックする場合、利用者３０は、ボタン３２を注視していると考えられる。
【００３１】
画面表示部１０６は、ディスプレイやタッチパネル等の表示装置に対応する。例えば、利用者は、画面表示部１０６に表示されるオブジェクトをタッチすることで、オブジェクトを選択する。利用者が操作した情報は、画面表示部１０６から操作情報取得部１０７に出力される。
【００３２】
図８は、利用者の操作例を示す図（２）である。図８に示す例では、利用者３０は、利用者の手３０ａによって、タッチパネル上のアイコン３３をタッチする。このように、アイコン３３をタッチする場合、利用者３０は、アイコン３３を注視しているものと考えられる。
【００３３】
操作情報取得部１０７は、入力部１０５および画面表示部１０６から利用者の操作データを取得し、取得した操作データを選択オブジェクト判定部１０８に出力する。この操作データは、利用者がマウスポインタでクリックした画面上の座標、または、利用者がタッチした画面上の座標を含む。また、操作データは、マウスポインタをクリックした時点から所定の時間前までの、マウスポインタの移動速度を含む。マウスポインタの移動速度の単位は、例えばpixel数／秒となる。
【００３４】
選択オブジェクト判定部１０８は、操作データを基にして、利用者が選択したオブジェクトを判定する処理部である。例えば、選択オブジェクト判定部１０８は、クリックされた座標と、オブジェクト座標データ１０１ｃとを比較して、利用者が選択したオブジェクトを判定する。以下の説明において、利用者が選択したオブジェクトを選択オブジェクトと表記する。
【００３５】
例えば、選択オブジェクト判定部１０８は、クリックされた座標が（Ｘ１、Ｙ１）の場合には、オブジェクト識別番号「１００１」のオブジェクトを選択オブジェクトとして判定する。同様に、選択オブジェクト判定部１０８は、タッチされた座標が（Ｘ１、Ｙ１）の場合には、オブジェクト識別番号「１００１」のオブジェクトを選択オブジェクトとして判定する。選択オブジェクト判定部１０８は、選択オブジェクトの識別情報を重要度判定部１０９に出力する。また、選択オブジェクト判定部１０８は、操作データを重要度判定部１０９に出力する。
【００３６】
重要度判定部１０９は、選択オブジェクトとその他のオブジェクトとの関係に基づいて、仮の補正係数の重要度を判定する処理部である。重要度判定部１０９は、注視判定部の一例である。ここで、仮の補正係数は、利用者が選択オブジェクトを選択した時点での視線から求められる画面上の座標と、選択オブジェクトとの誤差を補正する係数である。この仮の補正係数は、利用者が選択オブジェクトを選択する度に、後述の補正係数算出部１１０によって算出される。重要度判定部１０９は、仮の補正係数の重要度を「オブジェクト間の距離」、「オブジェクトの密度」、「マウスポインタの移動速度」に基づいて判定する。重要度判定部１０９は、判定結果を補正係数算出部１１０に出力する。
【００３７】
まず、重要度判定部１０９が、オブジェクト間の距離に基づいて重要度を判定する処理について説明する。選択オブジェクトと、他のオブジェクトとの距離が小さければ、利用者は、選択オブジェクトをより狭い領域で注視していると考えられ、注視具合が高い。このため、オブジェクト間の距離が小さい場合には、この時点で求められる仮の補正係数の重要度が高い。これに対して、選択オブジェクトと、他のオブジェクトとの距離が大きければ、利用者は、選択オブジェクトを広い領域で注視していると考えられ、注視具合が低い。このため、オブジェクト間の距離が大きい場合には、この時点で求められる仮の補正係数の重要度が低い。
【００３８】
具体的に、重要度判定部１０９は、選択オブジェクトの識別情報と、オブジェクト座標データ１０１ｃとを比較して、選択オブジェクトの座標を判定する。そして、重要度判定部１０９は、選択オブジェクトの座標とオブジェクト座標データ１０１ｃとを比較して、選択オブジェクトの座標と、この座標に最も近いオブジェクトの座標との距離を算出する。重要度判定部１０９は、算出した距離が所定の距離未満の場合には、仮の補正係数の重要度が高いと判定する。これに対して、重要度判定部１０９は、算出した距離が所定の距離以上の場合には、仮の補正係数の重要度が低いと判定する。
【００３９】
重量度判定部１０９が、オブジェクトの密度に基づいて重要度を判定する処理について説明する。図９および図１０は、オブジェクトの密度と利用者の注視具合との関係を説明するための図である。図９に示すように、選択オブジェクト３４の周りに他のオブジェクト３５〜４１が密集している場合には、利用者は、選択オブジェクトを含む狭い領域３４ａを注視していると考えられ、注視具合が高い。このため、オブジェクトの密度が高い場合には、この時点で求められる仮の補正係数の重要度が高い。これに対して、図１０に示すように、選択オブジェクト４２の周りに他のオブジェクト４３が密集していない場合には、利用者は、選択オブジェクトを含む広い領域４２ａを見ていると考えられ、注視具合が低い。このため、オブジェクトの密度が低い場合には、この時点で求められる仮の補正係数の重要度が低い。
【００４０】
具体的に、重要度判定部１０９は、選択オブジェクトの識別情報と、オブジェクト座標データ１０１ｃとを比較して、選択オブジェクトの座標を判定する。そして、重要度判定部１０９は、選択オブジェクトの座標とオブジェクト座標データ１０１ｃとを比較して、選択オブジェクトの座標を中心とした所定の範囲内に含まれるオブジェクトの数を計数する。重要度判定部１０９は、計数した数が所定の数以上の場合には、仮の補正係数の重要度が高いと判定する。これに対して、重要度判定部１０９は、計数した数が所定の数未満の場合には、仮の補正係数の重要度が低いと判定する。
【００４１】
重要度判定部１０９が、マウスポインタの移動速度に基づいて重要度を判定する処理について説明する。図１１は、目的のオブジェクトにマウスポインタを移動させる場合の挙動を説明するための図である。一般的に、利用者は、選択対象となるオブジェクト３２とマウスポインタ３１との距離が離れている場合には、マウスポインタを高速に移動させる。そして、利用者は、選択対象となるオブジェクト３２とマウスポインタ３１との距離が近づくにつれて、マウスポインタ３１の位置を微調整するべく、移動速度を低速にする。
【００４２】
図１２は、マウスポインタを選択対象となるオブジェクトまで移動させる場合の移動速度との関係を示す図である。図１２の縦軸は移動速度の速さを示し、横軸は時間を示す。時間か経過するに従い、マウスポインタは、選択対象となるオブジェクトに近づくものとする。また、図１２において、時間Ｔのタイミングで、選択対象のオブジェクトがクリックされるものとする。図１２に示すように、時間がＴに近づくにつれて、移動速度は小さくなる。
【００４３】
すなわち、マウスポインタの移動速度が小さいと、利用者は、選択対象となるオブジェクトを注視していると考えられ、注視具合が高い。このため、移動速度が小さい場合には、この時点で求められる仮の補正係数の重要度が高い。これに対して、移動速度が大きいと、利用者は、選択対象となるオブジェクトを注視していないものと考えられ、注視具合が低い。このため、移動速度が大きい場合には、この時点で求められる仮の補正係数の重要度が低い。
【００４４】
具体的に、重要度判定部１０９は、選択オブジェクトが選択されたタイミングから所定時間前のタイミングまでのマウスポインタの移動速度の平均値を算出する。そして、重要度判定部１０９は、移動速度の平均値が所定の速度未満の場合には、仮の補正係数の重要度が高いと判定する。これに対して、重要度判定部１０９は、移動速度の平均値が所定の速度以上の場合には、仮の補正係数の重要度が低いと判定する。
【００４５】
補正係数算出部１１０は、複数の仮の補正係数と、この仮の補正係数の重要度に基づいて、補正係数を算出する処理部である。まず、補正係数算出部１１０が仮の補正係数を算出する処理について説明した後に、補正係数を算出する処理について説明する。
【００４６】
補正係数算出部１１０が仮の補正係数を算出する処理について説明する。補正係数算出部１１０は、入力部１０５から利用者識別情報を取得し、この利用者識別情報に対応する眼球半径の情報を個人パラメータ１０１ｂから取得する。そして、補正係数算出部１１０は、特徴点管理テーブル１０１ａの特徴量と、眼球半径とを基にして利用者の視線θを算出する。特徴量をｘ、眼球半径をｒとすると、視線θは式（１）によって算出できる。
θ＝Ａｓｉｎ−１（ｘ／ｒ）＋Ｂ・・・（１）
式（１）のＡ、Ｂは、所定の定数である。
【００４７】
補正係数算出部１１０は、視線θを算出した後に、視線θによって利用者が注視している画面上の座標を算出する。図１３は、視線θと画面上の座標との関係を示す図である。図１３に示すように、画面４０と利用者の目４１との距離をＤとすると、座標Ｘと水平方向の視線θ１との関係は、式（２）によって表すことができる。
Ｘ＝Ｄ×｛ａ×ｔａｎθ１＋ｂ｝・・・（２）
また、図示は省略するが、Ｙ座標と重力方向の視線θ２との関係は、式（３）によって表すことができる。式（２）、（３）に含まれるａ、ｂは仮の補正係数である。
Ｙ＝Ｄ×｛ａ×ｔａｎθ２＋ｂ｝・・・（３）
【００４８】
補正係数算出部１１０は、オブジェクト座標データ１０１ｃから選択オブジェクトの座標を検出し、検出した座標と、式（２）、（３）から求められる座標との差が最小となる仮の補正係数ａ、ｂの値を特定する。補正係数算出部１１０は、利用者によってオブジェクトが選択される度に、仮の補正係数を順次算出し、補正係数管理テーブル１０１ｄに仮の補正係数を登録する。
【００４９】
なお、補正係数算出部１１０は、仮の補正係数を算出した時点で、重要度判定部１０９の判定結果を取得する。仮の補正係数の重要度が高いと判定されている場合には、仮の補正係数を補正係数管理テーブル１０１ｄに格納する際に、重要度フラグを「オン」にする。これに対して、補正係数算出部１１０は、仮の補正係数の重要度が低いと判定されている場合には、仮の補正係数を補正係数管理テーブル１０１ｄに格納する際に、重要度フラグを「オフ」にする。
【００５０】
続いて、補正係数算出部１１０が、上記算出した仮の補正係数を基にして、補正係数を算出する処理について説明する。補正係数算出部１１０は、仮の補正係数のうち、重要度フラグが「オン」となっている仮の補正係数に重み付けを行う。補正係数算出部１１０は、重み付けを行った仮の補正係数と、他の仮の補正係数を基にして、補正係数を算出する。
【００５１】
例えば、図５に示すように、仮の補正係数ａ２、ｂ２の重要度フラグがオンとなり、他の仮の補正係数ａ１、ｂ１、ａ３、ｂ３の重要度フラグがオフとなる場合には、仮の補正係数ａ２、ｂ２に重み付けを行って補正係数ａ、ｂを算出する。この場合、例えば、補正係数算出部１１０は、補正係数ａを（ａ１＋ａ２×２＋ａ３）／４によって算出し、補正係数ｂを（ｂ１＋ｂ２×２＋ｂ３）／４によって算出する。補正係数算出部１１０は、算出結果によって、補正係数データ１０１ｅを更新する。例えば、補正係数算出部１１０は、利用者が選択オブジェクトを選択して、特徴量が特徴量管理テーブル１０１ａに登録される度に、上記処理を繰り返し実行する。
【００５２】
注視位置検出部１１１は、利用者が注視している画面上の座標を検出する処理部である。注視位置検出部１１１は、検出した座標を画面制御部１１２に出力する。
【００５３】
具体的に、注視位置検出部１１１は、目検出部１０３、特徴量抽出部１０４と同様にして、利用者の特徴量を抽出する。また、注視位置検出部１１１は、補正係数算出部１１０と同様にして、特徴量と眼球半径から利用者の視線θを算出する。注視位置検出部１１１は、視線θを算出した後に、視線θと、補正係数データ１０１ｅの補正係数と、式（２）、（３）に基づいて、利用者が注視する座標を算出する。視線位置検出部１１１は、上記処理を繰り返し実行する。
【００５４】
画面制御部１１２は、注視位置検出部１１１の検出結果に基づいて、各種の画面制御を実行する処理部である。例えば、画面制御部１１２は、所定時間、オブジェクトと視線から得られる座標とが重なっている場合には、該オブジェクトがクリックされたものと判定し、該オブジェクトを選択する。また、画面制御部１１２は、視線の座標の変化方向に合わせて、画面をスクロールさせる。また、画像制御部１１２は、所定時間、視線の座標が変化しない場合には、該座標の領域を拡大する。
【００５５】
次に、本実施例に係る視線検出装置１００の処理手順について説明する。図１４は、視線検出装置が補正係数を算出する場合の処理手順を示すフローチャートである。例えば、図１４に示す処理は、利用者によってマウスがクリックされたことを契機にして実行される。図１４に示すように、視線検出装置１００は、操作データを取得し（ステップＳ１０１）、選択されたオブジェクトを判定する（ステップＳ１０２）。
【００５６】
視線検出装置１００は、選択オブジェクトとその他のオブジェクトとの関係から、仮の補正係数の重要度を判定し、補正係数管理テーブル１０１ｄを更新する（ステップＳ１０３）。視線検出装置１００は、補正係数管理テーブル１０１ｄを基にして、補正係数を算出する（ステップＳ１０４）。図１４に示す処理は、利用者によってマウスがクリックされた場合に、繰り返し実行される。
【００５７】
次に、本実施例にかかる視線検出装置１００の効果について説明する。視線検出装置１００は、利用者がオブジェクトを選択する度に、仮の補正係数を求めておく。そして、視線検出装置１００は、選択オブジェクトとその他のオブジェクトとの関係に基づいて、複数の仮の補正係数のうち、利用者の注視具合が高い場合に算出された仮の補正係数に重きをおき、補正係数を算出する。視線検出装置１００は、利用者の操作に便乗して補正係数を算出するので、利用者に視線キャリブレーションを意識させることはない。このため、視線キャリブレーションを行う場合に、利用者にかかる負担を軽減させることができる。
【００５８】
また、視線検出装置１００は、オブジェクト間の距離に基づいて、仮の補正係数の重み付けを行うので、利用者の注視具合が高い場合に算出された仮の補正係数の値を、補正係数の値により反映させることができる。このため、補正係数の精度が向上し、利用者の注視する座標を正確に算出することができる。
【００５９】
また、視線検出装置１００は、オブジェクトの密度に基づいて、仮の補正係数の重み付けを行うので、利用者の注視具合が高い場合に算出された仮の補正係数の値を、補正係数の値により反映させることができる。このため、補正係数の精度が向上し、利用者の注視する座標を正確に算出することができる。
【００６０】
また、視線検出装置１００は、マウスポインタの移動速度に基づいて、仮の補正係数の重み付けを行うので、利用者の注視具合が高い場合に算出された仮の補正係数の値を、補正係数の値により反映させることができる。このため、補正係数の精度が向上し、利用者の注視する座標を正確に算出することができる。
【００６１】
また、視線検出装置１００は、個人パラメータ１０１ｂから利用者に対応する眼球半径の情報を取得し、この眼球半径の情報を利用して補正係数を算出する。このため、個人差による誤差をなくし、正確に補正係数を算出することができる。
【００６２】
次に、視線検出装置が、補正係数を算出する場合のその他の例について説明する。まず、オブジェクトの密度に基づいて、補正係数を算出する場合について説明する。あるタイミングでオブジェクトが選択された事象を事象１とし、事象１とは異なるタイミングで異なるオブジェクトが選択された事象を事象２とする。事象１および事象２の条件を下記に示すものとする。
【００６３】
事象１では、選択オブジェクトの周囲５０pixel四方内に他のオブジェクトが５個存在するものとする。他のオブジェクトをそれぞれ他オブジェクト１〜５とする。選択オブジェクトと他オブジェクト１との距離を距離ｐ１１、選択オブジェクトと他オブジェクト２との距離をｐ１２、選択オブジェクトと他オブジェクト３との距離をｐ１３とする。また、選択オブジェクトと他オブジェクト４との距離をｐ１４、選択オブジェクトと他オブジェクト５との距離をｐ１５とする。また、選択オブジェクトを選択した場合に算出した仮の補正係数をａ１、ｂ１とする。
【００６４】
事象２では、選択オブジェクトの周囲５０pixel四方内に他のオブジェクトが２個存在するものとする。他のオブジェクトをそれぞれ他オブジェクト１，２とする。選択オブジェクトと他オブジェクト１との距離を距離ｐ２１、選択オブジェクトと他オブジェクト２との距離をｐ２２とする。また、選択オブジェクトを選択した場合に算出した仮の補正係数をａ２、ｂ２とする。
【００６５】
以上のように事象１、２を仮定した場合において、補正係数算出部１１０が、補正係数を算出する場合について説明する。例えば、補正係数算出部１１０は、選択オブジェクトの周囲５０pixel四方内に存在する「他のオブジェクトの数」を重み付けの係数とする。この方法では、補正係数算出部１１０は、
ａ＝（５×ａ１＋２×ａ２）／７・・・（４）
ｂ＝（５×ｂ１＋２×ｂ２）／７・・・（５）
によって、補正係数ａ、ｂを算出する。
【００６６】
また、以上のように事象１、２を仮定した場合において、補正係数算出部１１０は「選択オブジェクトと他オブジェクトとの距離」を重み付けの係数としてもよい。この方法では、補正係数算出部１１０は、
ａ＝１／ｋ×｛（１／ｐ１１＋１／ｐ１２＋１／ｐ１３＋１／ｐ１４＋１／ｐ１５）×ａ１＋（１／ｐ２１＋１／ｐ２２）×ａ２）｝・・・（６）
ｂ＝１／ｋ×｛（１／ｐ１１＋１／ｐ１２＋１／ｐ１３＋１／ｐ１４＋１／ｐ１５）×ｂ１＋（１／ｐ２１＋１／ｐ２２）×ｂ２）｝・・・（７）
によって、補正係数ａ、ｂを算出する。式（６）、（７）のｋは、式（８）によって表される。
ｋ＝１／ｐ１１＋１／ｐ１２＋１／ｐ１３＋１／ｐ１４＋１／ｐ１５＋１／ｐ２１＋１／ｐ２２・・・（８）
【００６７】
次に、マウスポインタの移動速度に基づいて、補正係数を算出する場合について説明する。一事例として、マウスポインタの移動速度が基準値以下で停止するまでに５フレームの画像データが存在すると仮定する。時系列順に、第一フレーム、第二フレーム、第三フレーム、第四フレーム、第五フレームとする。ここでは、補正係数算出部１１０は、フレームが切り替わる度に、仮の補正係数を算出するものとする。
【００６８】
第一フレームで求めた仮の補正係数をａ１、ｂ１とし、第二フレームで求めた仮の補正係数をａ２、ｂ２とし、第三フレームで求めた仮の補正係数をａ３、ｂ３とする。第四フレームで求めた仮の補正係数をａ４、ｂ４とし、第五フレームで求めた仮の補正係数をａ５、ｂ５とする。
【００６９】
第一フレームにおけるマウスポインタの移動速度をｖ１、第二フレームにおけるマウスポインタの移動速度をｖ２、第三フレームにおけるマウスポインタの移動速度をｖ３とする。第四フレームにおけるマウスポインタの移動速度をｖ４、第五フレームにおけるマウスポインタの移動速度をｖ５とする。
【００７０】
以上のように仮の補正係数および移動速度を仮定した場合において、補正係数算出部１１０は、例えば、
ａ＝ｍ×（ａ１／ｖ１＋ａ２／ｖ２＋ａ３／ｖ３＋ａ４／ｖ４＋ａ５／ｖ５）・・・（９）
ｂ＝ｍ×（ｂ１／ｖ１＋ｂ２／ｖ２＋ｂ３／ｖ３＋ｂ４／ｖ４＋ｂ５／ｖ５）・・・（１０）
によって補正係数ａ、ｂを算出する。式（９）、（１０）のｍは、式（１１）によって表される。
ｍ＝１／ｖ１＋１／ｖ２＋１／ｖ３＋１／ｖ４＋１／ｖ５・・・（１１）
【００７１】
ところで、図１に示した目検出装置１０３、特徴量抽出部１０４、操作情報取得部１０７、選択オブジェクト判定部１０８、重要度判定部１０９、補正係数算出部１１０、注視位置検出部１１１、画面制御部１１２は、各種集積装置に対応する。この集積装置は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。または、上記処理部１０３、１０４、１０７〜１１２は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００７２】
また、図１に示した記憶部１０１は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００７３】
視線検出装置１００は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、ＰＨＳ端末、移動体通信端末またはＰＤＡなどの情報処理装置に、視線検出装置１００の各機能を搭載することによって実現することもできる。
【００７４】
図１５は、実施例にかかる視線検出装置を構成するコンピュータのハードウェア構成を示す図である。図１５に示すように、このコンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、モニタ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る媒体読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置２０５を有する。また、コンピュータ２００は、画像を撮影する複数のカメラ２０６と、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８を有する。各装置２０１〜２０８は、バス２０９に接続される。
【００７５】
そして、ハードディスク装置２０８は、補正係数算出プログラム２０８ａ、注視位置検出プログラム２０８ｂ、各種データ２０８ｃを記憶する。補正係数算出プログラム２０８ａは、目検出部１０３、特徴量抽出部１０４、操作情報取得部１０７、選択オブジェクト判定部１０８、補正係数算出部１１０と同様の機能を有する。注視位置検出部プログラム２０８ｂは、注視位置検出部１１１に対応する。各種データ２０８ｃは、特徴量管理テーブル１０１ａ、個人パラメータ１０１ｂ、オブジェクト座標データ１０１ｄ、補正係数管理テーブル１０１ｄ、補正係数データ１０１ｅに対応する情報を含む。
【００７６】
ＣＰＵ２０１は、補正係数算出部プログラム２０８ａ、注視位置検出プログラム２０８ｂ、各種データ２０８ｃをハードディスク装置２０８から読み出してＲＡＭ２０７に展開する。補正係数算出プログラム２０８ａは、補正係数算出プロセス２０７ａとして機能する。注視位置検出プログラム２０８ｂは、注視位置検出プロセス２０７ｂとして機能する。補正係数算出プロセス２０７ａは、各種データ２０７ｃを利用して、仮の補正係数に重み付けを行って補系係数を算出し、注視位置検出プロセス２０７ｂは、補正係数を利用して、利用者の注視する位置を検出する。
【００７７】
なお、上記の補正係数算出部プログラム２０８ａ、注視位置検出プログラム２０８ｂは、必ずしもハードディスク装置２０８に格納されている必要はない。例えば、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等にこのプログラムを記憶させておき、コンピュータ２００がこれらからプログラムを読み出して実行するようにしてもよい。
【００７８】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７９】
（付記１）画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出する補正係数算出部と、
前記補正係数算出部により算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する座標位置検出部と
を有することを特徴とする視線検出装置。
【００８０】
（付記２）前記視線検出装置は更に、選択された前記オブジェクトと前記画面に表示された前記他のオブジェクトとの関係に基づいて、選択された前記オブジェクトを前記利用者が注視しているか否かを判定する注視判定部を有し、
前記補正係数算出部は、前記利用者によって前記オブジェクトが選択される度に仮の補正係数を算出し、算出した前記仮の補正係数のうち、前記注視判定部によってオブジェクトを注視していると判定された際に算出した仮の補正係数と、オブジェクトを注視していないと判定された際に算出した仮の補正係数にそれぞれ異なる重み付けを行い、重み付けを行った各仮の補正係数を基にして、補正係数を算出することを特徴とする付記１に記載の視線検出装置。
【００８１】
（付記３）前記補正係数算出部は、選択されたオブジェクトと他のオブジェクトとの距離に基づいて仮の補正係数に重み付けを行い、補正係数を算出することを特徴とする付記２に記載の視線検出装置。
【００８２】
（付記４）前記補正係数算出部は、選択されたオブジェクト周辺の他のオブジェクトの密度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記２に記載の視線検出装置。
【００８３】
（付記５）前記補正係数算出部は、オブジェクトが選択された時間から所定時間前までのマウスポインタの移動速度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記２に記載の視線検出装置。
【００８４】
（付記６）前記補正係数算出部は、利用者識別情報と眼球半径とを対応付けて記憶する記憶部参照し、入力された利用者識別情報を基にして、該利用者識別情報に対応する眼球半径を特定し、該眼球半径を更に利用して補正係数を算出することを特徴とする付記１〜５のいずれか一つに記載の視線検出装置。
【００８５】
（付記７）コンピュータに、
画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出し、
算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する処理を実行させる補正係数算出プログラム。
【００８６】
（付記８）さらに、選択された前記オブジェクトと前記画面に表示された前記他のオブジェクトとの関係に基づいて、選択された前記オブジェクトを前記利用者が注視しているか否かを判定する処理をコンピュータに実行させ、
前記補正係数を算出する場合に、利用者によってオブジェクトが選択される度に仮の補正係数を算出し、算出した仮の補正係数のうち、オブジェクトを注視していると判定された際に算出した仮の補正係数と、オブジェクトを注視していないと判定された際に算出した仮の補正係数にそれぞれ異なる重み付けを行い、重み付けを行った各仮の補正係数を基にして、補正係数を算出することを特徴とする付記７に記載の補正係数算出プログラム。
【００８７】
（付記９）前記補正係数を算出する場合に、選択されたオブジェクトと他のオブジェクトとの距離に基づいて仮の補正係数に重み付けを行い、補正係数を算出することを特徴とする付記８に記載の補正係数算出プログラム。
【００８８】
（付記１０）前記補正係数を算出する場合に、選択されたオブジェクト周辺の他のオブジェクトの密度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記８に記載の補正係数算出プログラム。
【００８９】
（付記１１）前記補正係数を算出する場合に、オブジェクトが選択された時間から所定時間前までのマウスポインタの移動速度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記８に記載の補正係数算出プログラム。
【００９０】
（付記１２）前記補正係数を算出する場合に、利用者識別情報と眼球半径とを対応付けて記憶する記憶装置を参照し、入力された利用者識別情報を基にして、該利用者識別情報に対応する眼球半径を特定し、該眼球半径を更に利用して補正係数を算出することを特徴とする付記７〜１１のいずれか一つに記載の補正係数算出プログラム。
【符号の説明】
【００９１】
１００    視線検出装置
１０１    記憶部
１０２    カメラ
１０３    目検出部
１０４    特徴量抽出部
１０５    入力部
１０６    画面表示部
１０７    操作情報取得部
１０８    選択オブジェクト判定部
１０９    重要度判定部
１１０    補正係数算出部
１１１    注視位置検出部
１１２    画面制御部
【図１】
0005664064.tif 000002
【図２】
0005664064.tif 000003
【図３】
0005664064.tif 000004
【図４】
0005664064.tif 000005
【図５】
0005664064.tif 000006
【図６】
0005664064.tif 000007
【図７】
0005664064.tif 000008
【図８】
0005664064.tif 000009
【図９】
0005664064.tif 000010
【図１０】
0005664064.tif 000011
【図１１】
0005664064.tif 000012
【図１２】
0005664064.tif 000013
【図１３】
0005664064.tif 000014
【図１４】
0005664064.tif 000015
【図１５】
0005664064.tif 000016
【図１６】
0005664064.tif 000017