説明

視線検出装置および補正係数算出プログラム

【課題】利用者に負担をかけることなく視線キャリブレーションを実行すること。
【解決手段】視線検出装置100は、利用者がオブジェクトを選択する度に、仮の補正係数を求める。そして、視線検出装置100は、選択オブジェクトとその他のオブジェクトとの関係に基づいて、複数の補正係数のうち、利用者の注視具合が高い場合に算出された仮の補正係数に重きをおき、補正係数を算出する。視線検出装置100は、利用者の操作に便乗して補正係数を算出するので、利用者に視線キャリブレーションを意識させることはない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視線検出装置等に関する。
【背景技術】
【0002】
人の視線を検出する技術として、近赤外線等を利用者の眼球に照射して、角膜表面における反射像の位置から得られる角膜曲率中心と瞳孔中心から視線を検出するものがある。この技術を利用することで、利用者が注視するディスプレイ上の位置を判定することができる。例えば、利用者はキーボードを操作しなくても、ディスプレイ上のオブジェクトを注視することで、オブジェクトを選択することができる。
【0003】
しかし、角膜表面における反射像を利用して検出される視線によって判定されるディスプレイ上の位置と、実際に利用者が注視している位置との間には誤差が生じる場合がある。誤差が生じると、利用者が視線によってディスプレイ上の所定のオブジェクトを選択しようとした場合には、意図しないオブジェクトが選択されてしまう場合がある。誤差が発生する要因としては、角膜表面における光の屈折率、眼球形状、眼球中心に対する基準点のズレなどがある。
【0004】
上記の誤差を補正するために、視線キャリブレーションが行われる。この視線キャリブレーションでは、角膜表面における反射像から求められるディスプレイ上の位置と、実際のディスプレイ上の位置との誤差を埋める補正係数を算出する。この補正係数を利用することで、誤差がなくなり、利用者は快適にディスプレイ上のオブジェクトを選択することができる。
【0005】
ここで、従来の視線キャリブレーションの一例について説明する。図16は、従来の視線キャリブレーションの一例を説明するための図である。図16に示すように、従来技術では、ディスプレイ10を複数の領域に分割し、領域内にパターン11を表示させる。このパターン11は、矢印の順に移動する。利用者は、ディスプレイ上に表示されるパターン11を順に追っていく。そして、従来技術では、パターン11が表示されている領域毎に、視線から判定したディスプレイ10上の位置と領域の位置との誤差を求め、この誤差が小さくなるような補正係数を算出する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第4385197号公報
【特許文献2】特開2006−285715号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来技術では、視線キャリブレーションを実行する場合に、ユーザに係る負担が大きいという問題があった。
【0008】
例えば、図16に示した方法により視線キャリブレーションを実行する場合には、利用者はディスプレイ10に表示されるパターン11を見続けることになり、時間もかかるため、利用者にとって大きな負担となる。
【0009】
開示の技術は、上記に鑑みてなされたものであって、利用者に負担をかけることなく視線キャリブレーションを実行することができる視線検出装置および補正係数算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
開示の視線検出装置は、画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと画面に表示された他のオブジェクトとの関係に基づいて、利用者が視線入力を行う場合の誤差を補正するための補正係数を算出する補正係数算出部を有する。また、開示の視線検出装置は、補正係数と、利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、利用者が注視している画面上の座標を検出する座標位置検出部を有することを要件とする。
【発明の効果】
【0011】
開示の視線検出装置によれば、利用者に負担をかけることなく視線キャリブレーションを実行することができるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、本実施例にかかる視線検出装置の機能構成を示す図である。
【図2】図2は、特徴量管理テーブルのデータ構造の一例を示す図である。
【図3】図3は、個人パラメータのデータ構造の一例を示す図である。
【図4】図4は、オブジェクト座標データのデータ構造の一例を示す図である。
【図5】図5は、補正係数管理テーブルのデータ構造の一例を示す図である。
【図6】図6は、目の特徴量を説明するための図である。
【図7】図7は、利用者の操作例を示す図(1)である。
【図8】図8は、利用者の操作例を示す図(2)である。
【図9】図9は、オブジェクトの密度と利用者の注視具合との関係を説明するための図(1)である。
【図10】図10は、オブジェクトの密度と利用者の注視具合との関係を説明するための図(2)である。
【図11】図11は、目的のオブジェクトにマウスポインタを移動させる場合の挙動を説明するための図である。
【図12】図12は、マウスポインタを選択対象となるオブジェクトまで移動させる場合の移動速度との関係を示す図である。
【図13】図13は、視線θと画面上の座標との関係を示す図である。
【図14】図14は、視線検出装置が補正係数を算出する場合の処理手順を示すフローチャートである。
【図15】図15は、実施例にかかる視線検出装置を構成するコンピュータのハードウェア構成を示す図である。
【図16】図16は、従来の視線キャリブレーションの一例を説明するための図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する視線検出装置および補正係数算出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0014】
本実施例にかかる視線検出装置の構成について説明する。図1は、本実施例にかかる視線検出装置の機能構成を示す図である。図1に示すように、この視線検出装置100は、記憶部101、カメラ102、目検出部103、特徴量抽出部104、入力部105、画面表示部106、操作情報取得部107を有する。また、視線検出装置100は、選択オブジェクト判定部108、重要度判定部109、補正係数算出部110、注視位置検出部111、画面制御部112を有する。
【0015】
記憶部101は、利用者の視線キャリブレーションを実行するための各種データを記憶する記憶部である。図1に示すように、記憶部101は、特徴量管理テーブル101a、個人パラメータ101b、オブジェクト座標データ101c、補正係数管理テーブル101d、補正係数データ101eを記憶する。
【0016】
このうち、特徴量管理テーブル101aは、特徴量を保持するテーブルである。この特徴量は、目の瞳孔中心と角膜反射像を基に特定される値である。目の瞳孔中心および角膜反射像の説明は後述する。図2は、特徴量管理テーブルのデータ構造の一例を示す図である。図2に示すように、特徴量管理テーブル101aでは、特徴量が順に記憶されている。
【0017】
個人パラメータ101bは、利用者毎の眼球半径を保持する。図3は、個人パラメータのデータ構造の一例を示す図である。図3に示すように、この個人パラメータ101bは、利用者を識別する利用者識別情報と、眼球半径とを対応づけて保持する。
【0018】
オブジェクト座標データ101cは、オブジェクトの画面上の座標を保持する。図4は、オブジェクト座標データのデータ構造の一例を示す図である。図4に示すように、このオブジェクト座標データ101cは、オブジェクトを識別するオブジェクト識別情報と、座標とを対応づけて保持する。この座標は、画面上のオブジェクトの座標である。
【0019】
補正係数管理テーブル101dは、補正係数の候補を保持するテーブルである。以下の説明において、補正係数の候補を仮の補正係数と表記する。図5は、補正係数管理テーブルのデータ構造の一例を示す図である。図5に示すように、この補正係数管理テーブル101dは、仮の補正係数と重要度フラグとを対応づけて保持する。ここで、重要度フラグは、該当する仮の補正係数が重要であるか否かを識別するためのフラグである。
【0020】
補正係数データ101eは、角膜表面における反射像から求められるディスプレイ上の位置と、実際のディスプレイ上の位置との誤差を埋めるデータである。後述する注視位置検出部111は、この補正係数データ101eを利用して、利用者の注視位置を検出する。
【0021】
図1の説明に戻る。カメラ102は、利用者の顔を撮影する装置である。カメラ102が利用者の顔を撮影する場合には、可視光または赤外線が利用者の目に照射されているものとする。カメラ102は、撮影した画像データを目検出部103、注視位置検出部111に出力する。
【0022】
なお、カメラ102は、入力部105から出力される制御信号に合わせて、画像データを目検出部103に出力する。この制御信号は、利用者がマウスをクリックしたタイミングや、タッチパネルをタッチしたタイミングに合わせて入力部105から出力される信号である。カメラ102は、注視位置検出部111に対しては、画像データを常時出力する。
【0023】
目検出部103は、画像データに含まれる目の領域を検出する処理部である。目検出部103は、目の領域を検出した後に、目の領域の画像データを特徴量抽出部104に出力する。
【0024】
目検出部103が、目の領域を検出する処理の一例について説明する。例えば、目検出部103は、人物の目の特徴を含むパターンを保持しており、このパターンと画像データとをマッチングさせることで、目が存在する領域を画像データから判定する。または、目検出部103は、画像データから目頭や目尻といった目の特徴点を画像データから抽出し、抽出した特徴点の位置を基にして、目の領域を判定してもよい。
【0025】
特徴量抽出部104は、目の領域の画像データから目の特徴量を抽出する処理部である。特徴量抽出部104は、抽出した特徴量を特徴量管理テーブル101aに登録する。
【0026】
例えば、特徴量抽出部104は、画像データから目の瞳孔中心と、角膜反射像とを検出し、瞳孔中心と角膜反射像との距離を目の特徴量として抽出する。ここで、角膜反射像は、利用者の目に光りが入射することで発生する像である。図6は、目の特徴量を説明するための図である。図6に示すように、利用者の目20には、瞳孔中心21と、角膜反射像22とが存在する。例えば、目の特徴量は、瞳孔中心21の位置から、角膜反射像22の位置までの距離23に対応する。
【0027】
なお、特徴量抽出部104が抽出する特徴量は、利用者がマウスをクリックしたタイミングや、タッチパネルをタッチしたタイミングに対応するものとする。
【0028】
入力部105は、利用者が視線検出装置100に各種の情報を入力するために利用する入力装置である。例えば、入力部105は、キーボードやマウスなどに対応する。利用者は、入力部105を操作して、画面表示部106に表示されるオブジェクトを選択する。ここで、オブジェクトは、例えば、アイコン、フォルダ、ウインドウのボタンに対応する。また、利用者がログインする場合などには、入力部105を操作して、ID(Identification)やパスワード等を入力する。利用者が操作した情報は、入力部105から操作情報取得部107、補正係数算出部110に出力される。
【0029】
また、例えば、入力部105は、利用者がマウスをクリックしたタイミングや、タッチパネルをタッチしたタイミングに合わせて、制御信号をカメラ102に出力する。
【0030】
図7は、利用者の操作例を示す図(1)である。図7に示す例では、利用者30は、マウス等を操作して、マウスポインタ31を移動させ、ウインドウのボタン32をクリックする。このように、ボタン32をクリックする場合、利用者30は、ボタン32を注視していると考えられる。
【0031】
画面表示部106は、ディスプレイやタッチパネル等の表示装置に対応する。例えば、利用者は、画面表示部106に表示されるオブジェクトをタッチすることで、オブジェクトを選択する。利用者が操作した情報は、画面表示部106から操作情報取得部107に出力される。
【0032】
図8は、利用者の操作例を示す図(2)である。図8に示す例では、利用者30は、利用者の手30aによって、タッチパネル上のアイコン33をタッチする。このように、アイコン33をタッチする場合、利用者30は、アイコン33を注視しているものと考えられる。
【0033】
操作情報取得部107は、入力部105および画面表示部106から利用者の操作データを取得し、取得した操作データを選択オブジェクト判定部108に出力する。この操作データは、利用者がマウスポインタでクリックした画面上の座標、または、利用者がタッチした画面上の座標を含む。また、操作データは、マウスポインタをクリックした時点から所定の時間前までの、マウスポインタの移動速度を含む。マウスポインタの移動速度の単位は、例えばpixel数/秒となる。
【0034】
選択オブジェクト判定部108は、操作データを基にして、利用者が選択したオブジェクトを判定する処理部である。例えば、選択オブジェクト判定部108は、クリックされた座標と、オブジェクト座標データ101cとを比較して、利用者が選択したオブジェクトを判定する。以下の説明において、利用者が選択したオブジェクトを選択オブジェクトと表記する。
【0035】
例えば、選択オブジェクト判定部108は、クリックされた座標が(X1、Y1)の場合には、オブジェクト識別番号「1001」のオブジェクトを選択オブジェクトとして判定する。同様に、選択オブジェクト判定部108は、タッチされた座標が(X1、Y1)の場合には、オブジェクト識別番号「1001」のオブジェクトを選択オブジェクトとして判定する。選択オブジェクト判定部108は、選択オブジェクトの識別情報を重要度判定部109に出力する。また、選択オブジェクト判定部108は、操作データを重要度判定部109に出力する。
【0036】
重要度判定部109は、選択オブジェクトとその他のオブジェクトとの関係に基づいて、仮の補正係数の重要度を判定する処理部である。重要度判定部109は、注視判定部の一例である。ここで、仮の補正係数は、利用者が選択オブジェクトを選択した時点での視線から求められる画面上の座標と、選択オブジェクトとの誤差を補正する係数である。この仮の補正係数は、利用者が選択オブジェクトを選択する度に、後述の補正係数算出部110によって算出される。重要度判定部109は、仮の補正係数の重要度を「オブジェクト間の距離」、「オブジェクトの密度」、「マウスポインタの移動速度」に基づいて判定する。重要度判定部109は、判定結果を補正係数算出部110に出力する。
【0037】
まず、重要度判定部109が、オブジェクト間の距離に基づいて重要度を判定する処理について説明する。選択オブジェクトと、他のオブジェクトとの距離が小さければ、利用者は、選択オブジェクトをより狭い領域で注視していると考えられ、注視具合が高い。このため、オブジェクト間の距離が小さい場合には、この時点で求められる仮の補正係数の重要度が高い。これに対して、選択オブジェクトと、他のオブジェクトとの距離が大きければ、利用者は、選択オブジェクトを広い領域で注視していると考えられ、注視具合が低い。このため、オブジェクト間の距離が大きい場合には、この時点で求められる仮の補正係数の重要度が低い。
【0038】
具体的に、重要度判定部109は、選択オブジェクトの識別情報と、オブジェクト座標データ101cとを比較して、選択オブジェクトの座標を判定する。そして、重要度判定部109は、選択オブジェクトの座標とオブジェクト座標データ101cとを比較して、選択オブジェクトの座標と、この座標に最も近いオブジェクトの座標との距離を算出する。重要度判定部109は、算出した距離が所定の距離未満の場合には、仮の補正係数の重要度が高いと判定する。これに対して、重要度判定部109は、算出した距離が所定の距離以上の場合には、仮の補正係数の重要度が低いと判定する。
【0039】
重量度判定部109が、オブジェクトの密度に基づいて重要度を判定する処理について説明する。図9および図10は、オブジェクトの密度と利用者の注視具合との関係を説明するための図である。図9に示すように、選択オブジェクト34の周りに他のオブジェクト35〜41が密集している場合には、利用者は、選択オブジェクトを含む狭い領域34aを注視していると考えられ、注視具合が高い。このため、オブジェクトの密度が高い場合には、この時点で求められる仮の補正係数の重要度が高い。これに対して、図10に示すように、選択オブジェクト42の周りに他のオブジェクト43が密集していない場合には、利用者は、選択オブジェクトを含む広い領域42aを見ていると考えられ、注視具合が低い。このため、オブジェクトの密度が低い場合には、この時点で求められる仮の補正係数の重要度が低い。
【0040】
具体的に、重要度判定部109は、選択オブジェクトの識別情報と、オブジェクト座標データ101cとを比較して、選択オブジェクトの座標を判定する。そして、重要度判定部109は、選択オブジェクトの座標とオブジェクト座標データ101cとを比較して、選択オブジェクトの座標を中心とした所定の範囲内に含まれるオブジェクトの数を計数する。重要度判定部109は、計数した数が所定の数以上の場合には、仮の補正係数の重要度が高いと判定する。これに対して、重要度判定部109は、計数した数が所定の数未満の場合には、仮の補正係数の重要度が低いと判定する。
【0041】
重要度判定部109が、マウスポインタの移動速度に基づいて重要度を判定する処理について説明する。図11は、目的のオブジェクトにマウスポインタを移動させる場合の挙動を説明するための図である。一般的に、利用者は、選択対象となるオブジェクト32とマウスポインタ31との距離が離れている場合には、マウスポインタを高速に移動させる。そして、利用者は、選択対象となるオブジェクト32とマウスポインタ31との距離が近づくにつれて、マウスポインタ31の位置を微調整するべく、移動速度を低速にする。
【0042】
図12は、マウスポインタを選択対象となるオブジェクトまで移動させる場合の移動速度との関係を示す図である。図12の縦軸は移動速度の速さを示し、横軸は時間を示す。時間か経過するに従い、マウスポインタは、選択対象となるオブジェクトに近づくものとする。また、図12において、時間Tのタイミングで、選択対象のオブジェクトがクリックされるものとする。図12に示すように、時間がTに近づくにつれて、移動速度は小さくなる。
【0043】
すなわち、マウスポインタの移動速度が小さいと、利用者は、選択対象となるオブジェクトを注視していると考えられ、注視具合が高い。このため、移動速度が小さい場合には、この時点で求められる仮の補正係数の重要度が高い。これに対して、移動速度が大きいと、利用者は、選択対象となるオブジェクトを注視していないものと考えられ、注視具合が低い。このため、移動速度が大きい場合には、この時点で求められる仮の補正係数の重要度が低い。
【0044】
具体的に、重要度判定部109は、選択オブジェクトが選択されたタイミングから所定時間前のタイミングまでのマウスポインタの移動速度の平均値を算出する。そして、重要度判定部109は、移動速度の平均値が所定の速度未満の場合には、仮の補正係数の重要度が高いと判定する。これに対して、重要度判定部109は、移動速度の平均値が所定の速度以上の場合には、仮の補正係数の重要度が低いと判定する。
【0045】
補正係数算出部110は、複数の仮の補正係数と、この仮の補正係数の重要度に基づいて、補正係数を算出する処理部である。まず、補正係数算出部110が仮の補正係数を算出する処理について説明した後に、補正係数を算出する処理について説明する。
【0046】
補正係数算出部110が仮の補正係数を算出する処理について説明する。補正係数算出部110は、入力部105から利用者識別情報を取得し、この利用者識別情報に対応する眼球半径の情報を個人パラメータ101bから取得する。そして、補正係数算出部110は、特徴点管理テーブル101aの特徴量と、眼球半径とを基にして利用者の視線θを算出する。特徴量をx、眼球半径をrとすると、視線θは式(1)によって算出できる。
θ=Asin−1(x/r)+B・・・(1)
式(1)のA、Bは、所定の定数である。
【0047】
補正係数算出部110は、視線θを算出した後に、視線θによって利用者が注視している画面上の座標を算出する。図13は、視線θと画面上の座標との関係を示す図である。図13に示すように、画面40と利用者の目41との距離をDとすると、座標Xと水平方向の視線θとの関係は、式(2)によって表すことができる。
X=D×{a×tanθ+b}・・・(2)
また、図示は省略するが、Y座標と重力方向の視線θとの関係は、式(3)によって表すことができる。式(2)、(3)に含まれるa、bは仮の補正係数である。
Y=D×{a×tanθ+b}・・・(3)
【0048】
補正係数算出部110は、オブジェクト座標データ101cから選択オブジェクトの座標を検出し、検出した座標と、式(2)、(3)から求められる座標との差が最小となる仮の補正係数a、bの値を特定する。補正係数算出部110は、利用者によってオブジェクトが選択される度に、仮の補正係数を順次算出し、補正係数管理テーブル101dに仮の補正係数を登録する。
【0049】
なお、補正係数算出部110は、仮の補正係数を算出した時点で、重要度判定部109の判定結果を取得する。仮の補正係数の重要度が高いと判定されている場合には、仮の補正係数を補正係数管理テーブル101dに格納する際に、重要度フラグを「オン」にする。これに対して、補正係数算出部110は、仮の補正係数の重要度が低いと判定されている場合には、仮の補正係数を補正係数管理テーブル101dに格納する際に、重要度フラグを「オフ」にする。
【0050】
続いて、補正係数算出部110が、上記算出した仮の補正係数を基にして、補正係数を算出する処理について説明する。補正係数算出部110は、仮の補正係数のうち、重要度フラグが「オン」となっている仮の補正係数に重み付けを行う。補正係数算出部110は、重み付けを行った仮の補正係数と、他の仮の補正係数を基にして、補正係数を算出する。
【0051】
例えば、図5に示すように、仮の補正係数a2、b2の重要度フラグがオンとなり、他の仮の補正係数a1、b1、a3、b3の重要度フラグがオフとなる場合には、仮の補正係数a2、b2に重み付けを行って補正係数a、bを算出する。この場合、例えば、補正係数算出部110は、補正係数aを(a1+a2×2+a3)/4によって算出し、補正係数bを(b1+b2×2+b3)/4によって算出する。補正係数算出部110は、算出結果によって、補正係数データ101eを更新する。例えば、補正係数算出部110は、利用者が選択オブジェクトを選択して、特徴量が特徴量管理テーブル101aに登録される度に、上記処理を繰り返し実行する。
【0052】
注視位置検出部111は、利用者が注視している画面上の座標を検出する処理部である。注視位置検出部111は、検出した座標を画面制御部112に出力する。
【0053】
具体的に、注視位置検出部111は、目検出部103、特徴量抽出部104と同様にして、利用者の特徴量を抽出する。また、注視位置検出部111は、補正係数算出部110と同様にして、特徴量と眼球半径から利用者の視線θを算出する。注視位置検出部111は、視線θを算出した後に、視線θと、補正係数データ101eの補正係数と、式(2)、(3)に基づいて、利用者が注視する座標を算出する。視線位置検出部111は、上記処理を繰り返し実行する。
【0054】
画面制御部112は、注視位置検出部111の検出結果に基づいて、各種の画面制御を実行する処理部である。例えば、画面制御部112は、所定時間、オブジェクトと視線から得られる座標とが重なっている場合には、該オブジェクトがクリックされたものと判定し、該オブジェクトを選択する。また、画面制御部112は、視線の座標の変化方向に合わせて、画面をスクロールさせる。また、画像制御部112は、所定時間、視線の座標が変化しない場合には、該座標の領域を拡大する。
【0055】
次に、本実施例に係る視線検出装置100の処理手順について説明する。図14は、視線検出装置が補正係数を算出する場合の処理手順を示すフローチャートである。例えば、図14に示す処理は、利用者によってマウスがクリックされたことを契機にして実行される。図14に示すように、視線検出装置100は、操作データを取得し(ステップS101)、選択されたオブジェクトを判定する(ステップS102)。
【0056】
視線検出装置100は、選択オブジェクトとその他のオブジェクトとの関係から、仮の補正係数の重要度を判定し、補正係数管理テーブル101dを更新する(ステップS103)。視線検出装置100は、補正係数管理テーブル101dを基にして、補正係数を算出する(ステップS104)。図14に示す処理は、利用者によってマウスがクリックされた場合に、繰り返し実行される。
【0057】
次に、本実施例にかかる視線検出装置100の効果について説明する。視線検出装置100は、利用者がオブジェクトを選択する度に、仮の補正係数を求めておく。そして、視線検出装置100は、選択オブジェクトとその他のオブジェクトとの関係に基づいて、複数の仮の補正係数のうち、利用者の注視具合が高い場合に算出された仮の補正係数に重きをおき、補正係数を算出する。視線検出装置100は、利用者の操作に便乗して補正係数を算出するので、利用者に視線キャリブレーションを意識させることはない。このため、視線キャリブレーションを行う場合に、利用者にかかる負担を軽減させることができる。
【0058】
また、視線検出装置100は、オブジェクト間の距離に基づいて、仮の補正係数の重み付けを行うので、利用者の注視具合が高い場合に算出された仮の補正係数の値を、補正係数の値により反映させることができる。このため、補正係数の精度が向上し、利用者の注視する座標を正確に算出することができる。
【0059】
また、視線検出装置100は、オブジェクトの密度に基づいて、仮の補正係数の重み付けを行うので、利用者の注視具合が高い場合に算出された仮の補正係数の値を、補正係数の値により反映させることができる。このため、補正係数の精度が向上し、利用者の注視する座標を正確に算出することができる。
【0060】
また、視線検出装置100は、マウスポインタの移動速度に基づいて、仮の補正係数の重み付けを行うので、利用者の注視具合が高い場合に算出された仮の補正係数の値を、補正係数の値により反映させることができる。このため、補正係数の精度が向上し、利用者の注視する座標を正確に算出することができる。
【0061】
また、視線検出装置100は、個人パラメータ101bから利用者に対応する眼球半径の情報を取得し、この眼球半径の情報を利用して補正係数を算出する。このため、個人差による誤差をなくし、正確に補正係数を算出することができる。
【0062】
次に、視線検出装置が、補正係数を算出する場合のその他の例について説明する。まず、オブジェクトの密度に基づいて、補正係数を算出する場合について説明する。あるタイミングでオブジェクトが選択された事象を事象1とし、事象1とは異なるタイミングで異なるオブジェクトが選択された事象を事象2とする。事象1および事象2の条件を下記に示すものとする。
【0063】
事象1では、選択オブジェクトの周囲50pixel四方内に他のオブジェクトが5個存在するものとする。他のオブジェクトをそれぞれ他オブジェクト1〜5とする。選択オブジェクトと他オブジェクト1との距離を距離p11、選択オブジェクトと他オブジェクト2との距離をp12、選択オブジェクトと他オブジェクト3との距離をp13とする。また、選択オブジェクトと他オブジェクト4との距離をp14、選択オブジェクトと他オブジェクト5との距離をp15とする。また、選択オブジェクトを選択した場合に算出した仮の補正係数をa1、b1とする。
【0064】
事象2では、選択オブジェクトの周囲50pixel四方内に他のオブジェクトが2個存在するものとする。他のオブジェクトをそれぞれ他オブジェクト1,2とする。選択オブジェクトと他オブジェクト1との距離を距離p21、選択オブジェクトと他オブジェクト2との距離をp22とする。また、選択オブジェクトを選択した場合に算出した仮の補正係数をa2、b2とする。
【0065】
以上のように事象1、2を仮定した場合において、補正係数算出部110が、補正係数を算出する場合について説明する。例えば、補正係数算出部110は、選択オブジェクトの周囲50pixel四方内に存在する「他のオブジェクトの数」を重み付けの係数とする。この方法では、補正係数算出部110は、
a=(5×a1+2×a2)/7・・・(4)
b=(5×b1+2×b2)/7・・・(5)
によって、補正係数a、bを算出する。
【0066】
また、以上のように事象1、2を仮定した場合において、補正係数算出部110は「選択オブジェクトと他オブジェクトとの距離」を重み付けの係数としてもよい。この方法では、補正係数算出部110は、
a=1/k×{(1/p11+1/p12+1/p13+1/p14+1/p15)×a1+(1/p21+1/p22)×a2)}・・・(6)
b=1/k×{(1/p11+1/p12+1/p13+1/p14+1/p15)×b1+(1/p21+1/p22)×b2)}・・・(7)
によって、補正係数a、bを算出する。式(6)、(7)のkは、式(8)によって表される。
k=1/p11+1/p12+1/p13+1/p14+1/p15+1/p21+1/p22・・・(8)
【0067】
次に、マウスポインタの移動速度に基づいて、補正係数を算出する場合について説明する。一事例として、マウスポインタの移動速度が基準値以下で停止するまでに5フレームの画像データが存在すると仮定する。時系列順に、第一フレーム、第二フレーム、第三フレーム、第四フレーム、第五フレームとする。ここでは、補正係数算出部110は、フレームが切り替わる度に、仮の補正係数を算出するものとする。
【0068】
第一フレームで求めた仮の補正係数をa1、b1とし、第二フレームで求めた仮の補正係数をa2、b2とし、第三フレームで求めた仮の補正係数をa3、b3とする。第四フレームで求めた仮の補正係数をa4、b4とし、第五フレームで求めた仮の補正係数をa5、b5とする。
【0069】
第一フレームにおけるマウスポインタの移動速度をv1、第二フレームにおけるマウスポインタの移動速度をv2、第三フレームにおけるマウスポインタの移動速度をv3とする。第四フレームにおけるマウスポインタの移動速度をv4、第五フレームにおけるマウスポインタの移動速度をv5とする。
【0070】
以上のように仮の補正係数および移動速度を仮定した場合において、補正係数算出部110は、例えば、
a=m×(a1/v1+a2/v2+a3/v3+a4/v4+a5/v5)・・・(9)
b=m×(b1/v1+b2/v2+b3/v3+b4/v4+b5/v5)・・・(10)
によって補正係数a、bを算出する。式(9)、(10)のmは、式(11)によって表される。
m=1/v1+1/v2+1/v3+1/v4+1/v5・・・(11)
【0071】
ところで、図1に示した目検出装置103、特徴量抽出部104、操作情報取得部107、選択オブジェクト判定部108、重要度判定部109、補正係数算出部110、注視位置検出部111、画面制御部112は、各種集積装置に対応する。この集積装置は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、上記処理部103、104、107〜112は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路に対応する。
【0072】
また、図1に示した記憶部101は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【0073】
視線検出装置100は、既知のパーソナルコンピュータ、ワークステーション、携帯電話、PHS端末、移動体通信端末またはPDAなどの情報処理装置に、視線検出装置100の各機能を搭載することによって実現することもできる。
【0074】
図15は、実施例にかかる視線検出装置を構成するコンピュータのハードウェア構成を示す図である。図15に示すように、このコンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、モニタ203を有する。また、コンピュータ200は、記憶媒体からプログラム等を読取る媒体読み取り装置204と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置205を有する。また、コンピュータ200は、画像を撮影する複数のカメラ206と、各種情報を一時記憶するRAM207と、ハードディスク装置208を有する。各装置201〜208は、バス209に接続される。
【0075】
そして、ハードディスク装置208は、補正係数算出プログラム208a、注視位置検出プログラム208b、各種データ208cを記憶する。補正係数算出プログラム208aは、目検出部103、特徴量抽出部104、操作情報取得部107、選択オブジェクト判定部108、補正係数算出部110と同様の機能を有する。注視位置検出部プログラム208bは、注視位置検出部111に対応する。各種データ208cは、特徴量管理テーブル101a、個人パラメータ101b、オブジェクト座標データ101d、補正係数管理テーブル101d、補正係数データ101eに対応する情報を含む。
【0076】
CPU201は、補正係数算出部プログラム208a、注視位置検出プログラム208b、各種データ208cをハードディスク装置208から読み出してRAM207に展開する。補正係数算出プログラム208aは、補正係数算出プロセス207aとして機能する。注視位置検出プログラム208bは、注視位置検出プロセス207bとして機能する。補正係数算出プロセス207aは、各種データ207cを利用して、仮の補正係数に重み付けを行って補系係数を算出し、注視位置検出プロセス207bは、補正係数を利用して、利用者の注視する位置を検出する。
【0077】
なお、上記の補正係数算出部プログラム208a、注視位置検出プログラム208bは、必ずしもハードディスク装置208に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ200が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等にこのプログラムを記憶させておき、コンピュータ200がこれらからプログラムを読み出して実行するようにしてもよい。
【0078】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0079】
(付記1)画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出する補正係数算出部と、
前記補正係数算出部により算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する座標位置検出部と
を有することを特徴とする視線検出装置。
【0080】
(付記2)前記視線検出装置は更に、選択された前記オブジェクトと前記画面に表示された前記他のオブジェクトとの関係に基づいて、選択された前記オブジェクトを前記利用者が注視しているか否かを判定する注視判定部を有し、
前記補正係数算出部は、前記利用者によって前記オブジェクトが選択される度に仮の補正係数を算出し、算出した前記仮の補正係数のうち、前記注視判定部によってオブジェクトを注視していると判定された際に算出した仮の補正係数と、オブジェクトを注視していないと判定された際に算出した仮の補正係数にそれぞれ異なる重み付けを行い、重み付けを行った各仮の補正係数を基にして、補正係数を算出することを特徴とする付記1に記載の視線検出装置。
【0081】
(付記3)前記補正係数算出部は、選択されたオブジェクトと他のオブジェクトとの距離に基づいて仮の補正係数に重み付けを行い、補正係数を算出することを特徴とする付記2に記載の視線検出装置。
【0082】
(付記4)前記補正係数算出部は、選択されたオブジェクト周辺の他のオブジェクトの密度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記2に記載の視線検出装置。
【0083】
(付記5)前記補正係数算出部は、オブジェクトが選択された時間から所定時間前までのマウスポインタの移動速度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記2に記載の視線検出装置。
【0084】
(付記6)前記補正係数算出部は、利用者識別情報と眼球半径とを対応付けて記憶する記憶部参照し、入力された利用者識別情報を基にして、該利用者識別情報に対応する眼球半径を特定し、該眼球半径を更に利用して補正係数を算出することを特徴とする付記1〜5のいずれか一つに記載の視線検出装置。
【0085】
(付記7)コンピュータに、
画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出し、
算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する処理を実行させる補正係数算出プログラム。
【0086】
(付記8)さらに、選択された前記オブジェクトと前記画面に表示された前記他のオブジェクトとの関係に基づいて、選択された前記オブジェクトを前記利用者が注視しているか否かを判定する処理をコンピュータに実行させ、
前記補正係数を算出する場合に、利用者によってオブジェクトが選択される度に仮の補正係数を算出し、算出した仮の補正係数のうち、オブジェクトを注視していると判定された際に算出した仮の補正係数と、オブジェクトを注視していないと判定された際に算出した仮の補正係数にそれぞれ異なる重み付けを行い、重み付けを行った各仮の補正係数を基にして、補正係数を算出することを特徴とする付記7に記載の補正係数算出プログラム。
【0087】
(付記9)前記補正係数を算出する場合に、選択されたオブジェクトと他のオブジェクトとの距離に基づいて仮の補正係数に重み付けを行い、補正係数を算出することを特徴とする付記8に記載の補正係数算出プログラム。
【0088】
(付記10)前記補正係数を算出する場合に、選択されたオブジェクト周辺の他のオブジェクトの密度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記8に記載の補正係数算出プログラム。
【0089】
(付記11)前記補正係数を算出する場合に、オブジェクトが選択された時間から所定時間前までのマウスポインタの移動速度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする付記8に記載の補正係数算出プログラム。
【0090】
(付記12)前記補正係数を算出する場合に、利用者識別情報と眼球半径とを対応付けて記憶する記憶装置を参照し、入力された利用者識別情報を基にして、該利用者識別情報に対応する眼球半径を特定し、該眼球半径を更に利用して補正係数を算出することを特徴とする付記7〜11のいずれか一つに記載の補正係数算出プログラム。
【符号の説明】
【0091】
100 視線検出装置
101 記憶部
102 カメラ
103 目検出部
104 特徴量抽出部
105 入力部
106 画面表示部
107 操作情報取得部
108 選択オブジェクト判定部
109 重要度判定部
110 補正係数算出部
111 注視位置検出部
112 画面制御部

【特許請求の範囲】
【請求項1】
画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出する補正係数算出部と、
前記補正係数算出部により算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する座標位置検出部と
を有することを特徴とする視線検出装置。
【請求項2】
前記視線検出装置は更に、選択された前記オブジェクトと前記画面に表示された前記他のオブジェクトとの関係に基づいて、選択された前記オブジェクトを前記利用者が注視しているか否かを判定する注視判定部を有し、
前記補正係数算出部は、前記利用者によって前記オブジェクトが選択される度に仮の補正係数を算出し、算出した前記仮の補正係数のうち、前記注視判定部によってオブジェクトを注視していると判定された際に算出した仮の補正係数と、オブジェクトを注視していないと判定された際に算出した仮の補正係数にそれぞれ異なる重み付けを行い、重み付けを行った各仮の補正係数を基にして、補正係数を算出することを特徴とする請求項1に記載の視線検出装置。
【請求項3】
前記補正係数算出部は、選択されたオブジェクトと他のオブジェクトとの距離に基づいて仮の補正係数に重み付けを行い、補正係数を算出することを特徴とする請求項2に記載の視線検出装置。
【請求項4】
前記補正係数算出部は、選択されたオブジェクト周辺の他のオブジェクトの密度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする請求項2に記載の視線検出装置。
【請求項5】
前記補正係数算出部は、オブジェクトが選択された時間から所定時間前までのマウスポインタの移動速度に基づいて仮の補正係数の重み付けを行い、補正係数を算出することを特徴とする請求項2に記載の視線検出装置。
【請求項6】
前記補正係数算出部は、利用者識別情報と眼球半径とを対応付けて記憶する記憶部を参照し、入力された利用者識別情報を基にして、該利用者識別情報に対応する眼球半径を特定し、該眼球半径を更に利用して補正係数を算出することを特徴とする請求項1〜5のいずれか一つ記載の視線検出装置。
【請求項7】
コンピュータに、
画面に表示されたオブジェクトが利用者によって選択された場合に、選択されたオブジェクトと前記画面に表示された他のオブジェクトとの関係に基づいて、前記利用者が視線入力を行う場合の誤差を補正するための補正係数を算出し、
算出された前記補正係数と、前記利用者の目を被写体として含んだ画像から求められた該目に関する特徴量とに基づいて、前記利用者が注視している画面上の座標を検出する処理を実行させる補正係数算出プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−65781(P2012−65781A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−212061(P2010−212061)
【出願日】平成22年9月22日(2010.9.22)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】