(57)【要約】【課題】  キャリブレーションの精度を向上させる。【解決手段】  人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出装置は、人物の視線の位置を検出する視線検出部と、ペン先の位置を検出するペン先検出部と、ペン先を見ずに書く行為が行われたかを判定する判定部と、視線検出部およびペン先検出部によりそれぞれ検出された互いに対応する視線の位置およびペン先の位置を用いて補正データを生成し、ペン先を見ずに書く行為が行われたと判定部により判定された場合、生成した補正データの更新を実行せずに待機するデータ更新部と、視線検出部により検出された視線の位置を補正データを用いて補正する補正部とを有する。【選択図】  図１
2018015218.tif 000002
【特許請求の範囲】
【請求項１】
人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出装置において、
人物の視線の位置を検出する視線検出部と、
ペン先の位置を検出するペン先検出部と、
ペン先を見ずに書く行為が行われたかを判定する判定部と、
前記視線検出部および前記ペン先検出部によりそれぞれ検出された互いに対応する視線の位置およびペン先の位置を用いて前記補正データを生成し、ペン先を見ずに書く行為が行われたと前記判定部により判定された場合、生成した前記補正データの更新を実行せずに待機するデータ更新部と、
前記視線検出部により検出された視線の位置を前記補正データを用いて補正する補正部と
を有することを特徴とする視線検出装置。
【請求項２】
請求項１に記載の視線検出装置において、
前記判定部は、ペン先の位置の移動速度が所定の速度以上の場合、ペン先を見ずに書く行為が行われたと判定する
ことを特徴とする視線検出装置。
【請求項３】
請求項１または請求項２に記載の視線検出装置において、
前記判定部は、ペン先の軌跡と文字との類似度が所定の閾値以下である場合、ペン先を見ずに書く行為が行われたと判定する
ことを特徴とする視線検出装置。
【請求項４】
請求項１ないし請求項３のいずれか１項に記載の視線検出装置において、
前記判定部は、視線の位置の単位時間当たりの移動量とペン先の位置の単位時間当たりの移動量との差が所定値以上の場合、ペン先を見ずに書く行為が行われたと判定する
ことを特徴とする視線検出装置。
【請求項５】
請求項１ないし請求項４のいずれか１項に記載の視線検出装置において、
前記判定部は、ペン先から所定の距離だけ離れた位置までの判定領域内に罫線が存在しない場合、ペン先を見ずに書く行為が行われたと判定する
ことを特徴とする視線検出装置。
【請求項６】
請求項５に記載の視線検出装置において、
前記判定部は、前記判定領域内に複数の行に渡って文字が書かれた場合、前記判定領域内に罫線が存在するか否かに拘わらず、ペン先を見て書く行為が行われたと判定する
ことを特徴とする視線検出装置。
【請求項７】
請求項１ないし請求項５のいずれか１項に記載の視線検出装置において、
前記データ更新部は、前記判定部により、ペン先を見ずに書く行為が行われたと判定されなかった場合に、生成した前記補正データの更新を実行する
ことを特徴とする視線検出装置。
【請求項８】
人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出装置による視線検出方法において、
前記視線検出装置が有する視線検出部が、人物の視線の位置を検出し、
前記視線検出装置が有するペン先検出部が、ペン先の位置を検出し、
前記視線検出装置が有する判定部が、ペン先を見ずに書く行為が行われたかを判定し、
前記視線検出装置が有するデータ更新部が、互いに対応する視線の位置およびペン先の位置を用いて前記補正データを生成し、ペン先を見ずに書く行為が行われたと前記判定部により判定された場合、生成した前記補正データの更新を実行せずに待機し、
前記視線検出装置が有する補正部が、前記視線検出部により検出された視線の位置を前記補正データを用いて補正する
ことを特徴とする視線検出方法。
【請求項９】
人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出処理をコンピュータに実行させる視線検出プログラムにおいて、
人物の視線の位置を検出し、
ペン先の位置を検出し、
ペン先を見ずに書く行為が行われたかを判定し、
互いに対応する視線の位置およびペン先の位置を用いて前記補正データを生成し、ペン先を見ずに書く行為が行われたと判定した場合、生成した前記補正データの更新を実行せずに待機し、
検出した視線の位置を前記補正データを用いて補正する
ことを特徴とする視線検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視線検出装置、視線検出方法および視線検出プログラムに関する。
【背景技術】
【０００２】
ユーザの視線を検出する視線検出装置では、検出した視線と実際の視線との間に、ユーザ毎に固有の誤差が発生する場合がある。このため、観察面上のどの位置をユーザが観察しているかを検出する視線検出を実行する前に、視線の個人差を補正するキャリブレーションを実行する視線検出装置が提案されている。例えば、視線検出装置は、キャリブレーションを実行するモードがユーザにより選択された場合、位置の異なる２つの視標を順次注視するようにユーザに指示し、２つの視標を注視した際にそれぞれ算出されるユーザの眼球の回転角等に基づいて、視線を補正する。この場合、ユーザに予めキャリブレーションを実行させるため、ユーザの負担が増加する。このため、ユーザの負担を軽減してキャリブレーションを実行する方法が提案されている（例えば、特許文献１参照）。この種の方法では、例えば、ユーザがペンで筆記をしている場合、ペン先に向かってユーザの視線があるものとして、キャリブレーションを実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２６１７２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ペン先に向かってユーザの視線があるものとして、キャリブレーションを実行する従来の方法では、ユーザがペン先を見ずに文字等を書いている場合でも、視線の位置とペン先の位置とを対応させてキャリブレーションが実行されるおそれがある。ユーザがペン先を見ていない場合、視線の位置とペン先の位置とを対応させると、誤ったキャリブレーションが実行される。この場合、キャリブレーションの精度が低下する。
【０００５】
１つの側面では、本件開示の視線検出装置、視線検出方法および視線検出プログラムは、キャリブレーションの精度を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
一観点によれば、人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出装置は、人物の視線の位置を検出する視線検出部と、ペン先の位置を検出するペン先検出部と、ペン先を見ずに書く行為が行われたかを判定する判定部と、視線検出部およびペン先検出部によりそれぞれ検出された互いに対応する視線の位置およびペン先の位置を用いて補正データを生成し、ペン先を見ずに書く行為が行われたと判定部により判定された場合、生成した補正データの更新を実行せずに待機するデータ更新部と、視線検出部により検出された視線の位置を補正データを用いて補正する補正部とを有する。
【０００７】
別の観点によれば、人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出装置による視線検出方法では、視線検出装置が有する視線検出部が、人物の視線の位置を検出し、視線検出装置が有するペン先検出部が、ペン先の位置を検出し、視線検出装置が有する判定部が、ペン先を見ずに書く行為が行われたかを判定し、視線検出装置が有するデータ更新部が、互いに対応する視線の位置およびペン先の位置を用いて補正データを生成し、ペン先を見ずに書く行為が行われたと判定部により判定された場合、生成した補正データの更新を実行せずに待機し、視線検出装置が有する補正部が、視線検出部により検出された視線の位置を補正データを用いて補正する。
【０００８】
別の観点によれば、人物の視線の位置を検出し、検出した視線の位置を補正データを用いて補正する視線検出処理をコンピュータに実行させる視線検出プログラムは、人物の視線の位置を検出し、ペン先の位置を検出し、ペン先を見ずに書く行為が行われたかを判定し、互いに対応する視線の位置およびペン先の位置を用いて補正データを生成し、ペン先を見ずに書く行為が行われたと判定した場合、生成した補正データの更新を実行せずに待機し、検出した視線の位置を補正データを用いて補正する。
【発明の効果】
【０００９】
本件開示の視線検出装置、視線検出方法および視線検出プログラムは、キャリブレーションの精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】視線検出装置、視線検出方法および視線検出プログラムの一実施形態を示す図である。
【図２】視線検出装置、視線検出方法および視線検出プログラムの別の実施形態を示す図である。
【図３】図２に示した視線検出装置の動作の一例を示す図である。
【図４】図２に示した判定部の動作の一例を示す図である。
【図５】図２に示した判定部の動作の別の例を示す図である。
【図６】図２に示した判定部の動作の別の例を示す図である。
【図７】図２に示した判定部の動作の別の例を示す図である。
【図８】図２に示した判定部の動作の別の例を示す図である。
【図９】図２に示した視線検出装置の動作の別の例を示す図である。
【図１０】視線検出装置、視線検出方法および視線検出プログラムの別の実施形態を示す図である。
【図１１】図１０に示した判定部による更新判定処理の概要を示す図である。
【図１２】図１０に示した視線検出装置の動作の一例を示す図である。
【図１３】視線検出プログラムを実行するハードウェアの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、実施形態について、図面を用いて説明する。図１は、視線検出装置、視線検出方法および視線検出プログラムの一実施形態を示す。図１に示す視線検出装置ＥＳＹＳａは、人物の視線の位置を検出し、検出した視線の位置を補正データＣＤＡＴＡを用いて補正する。例えば、視線検出装置ＥＳＹＳａは、視線検出の対象者であるユーザＵＳＥＲがペンＰＥＮの先端ＮＩＢ（以下、ペン先ＮＩＢとも称する）を見て文字等を書いた場合に、検出した視線と実際の視線との間の誤差を補正するキャリブレーションを実行する。視線検出装置ＥＳＹＳａは、例えば、ヘッドマウントディスプレイ端末、タブレット型端末等のコンピュータに搭載される。視線検出装置ＥＳＹＳａが実行する視線検出処理等は、ハードウェアのみで実現されてもよく、視線検出プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、視線検出プログラムは、人物の視線の位置を検出し、検出した視線の位置を補正データＣＤＡＴＡを用いて補正する視線検出処理をコンピュータに実行させてもよい。また、ネットワークを介して接続されている他のコンピュータに処理に必要なデータを送信し、視線検出処理を実行させてもよい。
【００１２】
視線検出装置ＥＳＹＳａは、視線検出部ＥＤＥＴａ、ペン先検出部ＮＤＥＴａ、判定部ＪＤＧａ、データ更新部ＤＵＰａおよび補正部ＣＲＥＣａを有する。
【００１３】
視線検出部ＥＤＥＴａは、人物の視線の位置を検出し、検出した視線の位置を示す座標情報をデータ更新部ＤＵＰａおよび補正部ＣＲＥＣａに出力する。例えば、視線検出部ＥＤＥＴａは、撮像装置（図示せず）により撮像されたユーザＵＳＥＲの目を含む領域の画像（以下、ユーザＵＳＥＲの画像とも称する）を受信する。そして、視線検出部ＥＤＥＴａは、ユーザＵＳＥＲの画像を用いて角膜反射法等の視線検出処理を実行し、ユーザＵＳＥＲの視線を検出する。角膜反射法では、例えば、赤外線カメラと赤外線ＬＥＤ（Light Emitting Diode）とを用いて撮像された画像が用いられる。なお、視線検出処理は、角膜反射法に限定されない。例えば、視線検出部ＥＤＥＴａは、可視カメラにより撮像された画像を用いて視線検出処理を実行してもよい。
【００１４】
ペン先検出部ＮＤＥＴａは、ユーザＵＳＥＲが文字、図形等の何かを書いている場合、ペン先ＮＩＢの位置を検出し、検出したペン先ＮＩＢの位置を示す座標情報を判定部ＪＤＧａおよびデータ更新部ＤＵＰａに出力する。例えば、視線検出装置ＥＳＹＳａがタブレット型端末のコンピュータに搭載され、ペンＰＥＮがスタイラスペンである場合、ペン先検出部ＮＤＥＴａは、スタイラスペンＰＥＮがタッチしたタッチパネル上の位置をペン先ＮＩＢの位置として検出する。あるいは、視線検出装置ＥＳＹＳａがヘッドマウントディスプレイ端末のコンピュータに搭載され、ユーザＵＳＥＲが記入用紙に文字等を書く場合、ペン先検出部ＮＤＥＴａは、記入用紙およびペン先ＮＩＢを含む領域を撮像した画像を受信する。そして、ペン先検出部ＮＤＥＴａは、記入用紙およびペン先ＮＩＢを含む領域が撮像された画像からペン先ＮＩＢの位置を検出する。
【００１５】
判定部ＪＤＧａは、ペン先ＮＩＢを見ずに書く行為が行われたかを判定する。すなわち、判定部ＪＤＧａは、文字、図形等の物がペン先ＮＩＢを見ずに書かれたかを判定する。例えば、判定部ＪＤＧａは、書き方、書かれた内容、筆圧等のペンＰＥＮの運び方のパターンに基づいて、ペン先ＮＩＢを見ずに物が書かれたかを判定する。ペンＰＥＮの運び方のパターンは、例えば、ペン先検出部ＮＤＥＴａにより検出されたペン先ＮＩＢの位置を示す座標情報等に基づいて特定される。例えば、判定部ＪＤＧａは、ペン先ＮＩＢの位置を示す座標情報をペン先検出部ＮＤＥＴａから順次受信する。そして、判定部ＪＤＧａは、ペン先ＮＩＢの位置の単位時間当たりの移動量（移動距離）を算出する。また、判定部ＪＤＧａは、ペン先ＮＩＢの位置の単位時間当たりの移動量の平均（以下、平均移動量とも称する）を算出する。そして、判定部ＪＤＧａは、ペン先ＮＩＢの位置の単位時間当たりの移動量が平均移動量の所定数倍（例えば、２倍）の場合、文字、図形等の何かがペン先を見ずに書かれたと判定する。
【００１６】
ここで、例えば、ユーザＵＳＥＲがメモを走り書きする場合、または、ユーザＵＳＥＲが単純な図形を素早く書く場合等では、ペン先ＮＩＢを見ずに文字、図形等が書かれる場合がある。この場合、ペン先ＮＩＢの位置の単位時間当たりの移動量は、平均の移動量より大きくなる。したがって、判定部ＪＤＧａは、ペン先ＮＩＢの位置の単位時間当たりの移動量が平均移動量の所定数倍であるかを判定することにより、文字、図形等がペン先ＮＩＢを見ずに書かれたかを判定できる。
【００１７】
あるいは、判定部ＪＤＧａは、ペン先ＮＩＢの位置の周辺のレイアウトに基づいて、ペン先ＮＩＢを見ずに物が書かれたかを判定する。例えば、判定部ＪＤＧａは、ペン先ＮＩＢから所定の距離だけ離れた位置までに、罫線および枠等の線が存在しない場合、ペン先ＮＩＢを見ずに物が書かれたと判定する。
【００１８】
データ更新部ＤＵＰａは、視線検出部ＥＤＥＴａおよびペン先検出部ＮＤＥＴａによりそれぞれ検出された互いに対応する視線の位置およびペン先ＮＩＢの位置を用いて補正データＣＤＡＴＡを更新する。例えば、データ更新部ＤＵＰａは、補正データＣＤＡＴＡを用いて補正した視線の位置がペン先検出部ＮＤＥＴａにより検出されたペン先ＮＩＢの位置に一致するように、補正データＣＤＡＴＡを更新する。すなわち、データ更新部ＤＵＰａは、視線検出部ＥＤＥＴａにより検出された視線の位置をペン先検出部ＮＤＥＴａにより検出されたペン先ＮＩＢの位置に補正する補正データＣＤＡＴＡを生成する。なお、データ更新部ＤＵＰａは、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧａにより判定された場合、補正データＣＤＡＴＡの更新を実行せずに待機する。
【００１９】
ペン先ＮＩＢを見ずに物が書かれた場合、視線の位置はペン先ＮＩＢの位置に一致しないため、視線の位置をペン先ＮＩＢの位置に一致させるように補正データＣＤＡＴＡを更新すると、補正データＣＤＡＴＡは誤ったデータに更新される。したがって、データ更新部ＤＵＰａは、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧａにより判定された場合、補正データＣＤＡＴＡの更新を実行せずに待機することにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止できる。
【００２０】
補正部ＣＲＥＣａは、視線検出部ＥＤＥＴａにより検出された視線の位置を補正データＣＤＡＴＡを用いて補正する。すなわち、補正部ＣＲＥＣａは、視線の個人差を補正するキャリブレーションを、補正データＣＤＡＴＡを用いて実行する。このように、ユーザＵＳＥＲにキャリブレーションのための作業を要求することなく、ユーザＵＳＥＲが物を書いている場合にキャリブレーションが実行される。このため、ユーザＵＳＥＲの負担を軽減してキャリブレーションを実行することができる。また、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧａにより判定された場合、補正データＣＤＡＴＡが更新されないため、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。この結果、ペン先ＮＩＢを見ずに物が書かれたか否かに拘わらず補正データＣＤＡＴＡを更新する場合に比べて、キャリブレーションの精度を向上させることができる。
【００２１】
なお、視線検出装置ＥＳＹＳａの構成は、図１に示す例に限定されない。例えば、視線検出装置ＥＳＹＳａは、ユーザＵＳＥＲの目を含む領域を撮像する撮像装置を有してもよい。また、例えば、視線検出装置ＥＳＹＳａは、ユーザＵＳＥＲが文字等を書いている場面を撮像する撮像装置を有してもよい。
【００２２】
以上、図１に示す実施形態では、視線検出部ＥＤＥＴａは、ユーザＵＳＥＲの視線の位置を検出し、ペン先検出部ＮＤＥＴａは、ペン先ＮＩＢの位置を検出する。そして、判定部ＪＤＧａは、ペン先ＮＩＢを見ずに物が書かれたかを判定する。また、データ更新部ＤＵＰａは、互いに対応する視線の位置およびペン先ＮＩＢの位置を用いて補正データＣＤＡＴＡを更新する。なお、データ更新部ＤＵＰａは、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧａにより判定された場合、補正データＣＤＡＴＡの更新を実行せずに待機する。そして、補正部ＣＲＥＣａは、視線検出部ＥＤＥＴａにより検出された視線の位置を補正データＣＤＡＴＡを用いて補正する。
【００２３】
このように、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧａにより判定された場合、データ更新部ＤＵＰａは、補正データＣＤＡＴＡの更新を実行せずに待機する。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。この結果、ペン先ＮＩＢを見ずに物が書かれたか否かに拘わらず補正データＣＤＡＴＡを更新する場合に比べて、キャリブレーションの精度を向上させることができる。
【００２４】
図２は、視線検出装置、視線検出方法および視線検出プログラムの別の実施形態を示す。図１で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図２に示す視線検出装置ＥＳＹＳｂは、図１に示した視線検出部ＥＤＥＴａ、ペン先検出部ＮＤＥＴａおよび判定部ＪＤＧａの代わりに、視線検出部ＥＤＥＴｂ、ペン先検出部ＮＤＥＴｂおよび判定部ＪＤＧｂを有する。また、視線検出装置ＥＳＹＳｂは、図１に示したデータ更新部ＤＵＰａおよび補正部ＣＲＥＣａの代わりに、データ更新部ＤＵＰｂおよび補正部ＣＲＥＣｂを有する。さらに、視線検出装置ＥＳＹＳｂでは、撮像装置ＣＡＭ１、タッチパネルＴＰＬ、座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭが図１に示した視線検出装置ＥＳＹＳａに追加される。視線検出装置ＥＳＹＳｂのその他の構成は、図１に示した視線検出装置ＥＳＹＳａと同一または同様である。
【００２５】
例えば、視線検出装置ＥＳＹＳｂは、タブレット型端末等のコンピュータに搭載される。視線検出装置ＥＳＹＳｂが実行する視線検出処理等は、ハードウェアのみで実現されてもよく、視線検出プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、視線検出プログラムは、人物の視線の位置を検出し、検出した視線の位置を補正データＣＤＡＴＡを用いて補正する視線検出処理をコンピュータに実行させてもよい。図２に示す例では、ペンＰＥＮは、スタイラスペンである。
【００２６】
視線検出装置ＥＳＹＳｂは、撮像装置ＣＡＭ１、視線検出部ＥＤＥＴｂ、タッチパネルＴＰＬ、ペン先検出部ＮＤＥＴｂ、判定部ＪＤＧｂ、データ更新部ＤＵＰｂ、補正部ＣＲＥＣｂ、座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭを有する。
【００２７】
撮像装置ＣＡＭ１は、例えば、ウェブカメラ等の可視カメラであり、ユーザＵＳＥＲの目を含む領域を所定のフレームレートで撮像する。そして、撮像装置ＣＡＭ１は、ユーザＵＳＥＲの目を含む領域を撮像した画像（ユーザＵＳＥＲの画像）を視線検出部ＥＤＥＴｂに順次出力する。
【００２８】
視線検出部ＥＤＥＴｂは、撮像装置ＣＡＭ１から受信したユーザＵＳＥＲの画像を用いて視線検出処理を実行し、ユーザＵＳＥＲの視線のタッチパネルＴＰＬ上での位置（座標）を検出する。以下、ユーザＵＳＥＲの視線のタッチパネルＴＰＬ上での位置は、視線位置とも称される。視線検出部ＥＤＥＴｂは、ユーザＵＳＥＲの画像から検出した視線位置を示す座標情報を、座標記憶部ＣＭＥＭに順次格納する。
【００２９】
ペン先検出部ＮＤＥＴｂは、スタイラスペンＰＥＮがタッチしたタッチパネルＴＰＬ上での位置（座標）を、ペン先ＮＩＢの位置として検出する。以下、ペン先ＮＩＢのタッチパネルＴＰＬ上での位置は、タッチ位置とも称される。ペン先検出部ＮＤＥＴｂは、タッチ位置を示す座標情報を、座標記憶部ＣＭＥＭに順次格納する。
【００３０】
座標記憶部ＣＭＥＭは、視線位置を示す座標情報およびタッチ位置を示す座標情報を、時系列に記憶する。なお、座標記憶部ＣＭＥＭは、視線位置を示す座標情報およびタッチ位置を示す座標情報を、撮像装置ＣＡＭ１のフレーム単位で記憶してもよいし、停留点単位で記憶してもよい。停留点は、例えば、タッチパネルＴＰＬ上で視線が停留した位置である。
【００３１】
補正データ記憶部ＤＭＥＭは、補正データＣＤＡＴＡを記憶する。なお、座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭは、互いに異なるメモリに割り当てられてもよいし、１つのメモリの異なる領域に割り当てられてもよい。
【００３２】
判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたかを判定し、判定結果をデータ更新部ＤＵＰｂに通知する。例えば、判定部ＪＤＧｂは、書き方、書かれた内容、筆圧等のペンＰＥＮの運び方のパターンに基づいて、ペン先ＮＩＢを見ずに物が書かれたかを判定する。ペンＰＥＮの運び方のパターンは、例えば、座標記憶部ＣＭＥＭに記憶されたタッチ位置を示す座標情報に基づいて特定される。あるいは、ペンＰＥＮの運び方のパターンは、座標記憶部ＣＭＥＭに記憶された視線位置を示す座標情報およびタッチ位置を示す座標情報に基づいて特定される。すなわち、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに記憶された視線位置を示す座標情報およびタッチ位置を示す座標情報のうちの少なくともタッチ位置を示す座標情報に基づいて、ユーザＵＳＥＲがペン先ＮＩＢを見ているかを判定する。なお、判定部ＪＤＧｂの動作は、図４以降で説明する。
【００３３】
データ更新部ＤＵＰｂは、視線検出部ＥＤＥＴｂおよびペン先検出部ＮＤＥＴｂによりそれぞれ検出された互いに対応する視線位置およびタッチ位置を用いて補正データＣＤＡＴＡを更新する。互いに対応する視線位置およびタッチ位置は、例えば、同じ時刻、または、所定の時間差以内に検出された視線位置およびタッチ位置である。
【００３４】
例えば、データ更新部ＤＵＰｂは、互いに対応する視線位置およびタッチ位置をそれぞれ示す座標情報を座標記憶部ＣＭＥＭから受信し、ペン先ＮＩＢを見ずに物が書かれたかの判定結果を判定部ＪＤＧｂから受信する。データ更新部ＤＵＰｂは、ペン先ＮＩＢが見られていたことを示す判定結果を判定部ＪＤＧｂから受信した場合、視線検出部ＥＤＥＴｂにより検出された視線位置をペン先検出部ＮＤＥＴｂにより検出されたタッチ位置に補正する補正データＣＤＡＴＡを生成する。そして、データ更新部ＤＵＰｂは、補正データ記憶部ＤＭＥＭに記憶された補正データＣＤＡＴＡを、生成した補正データＣＤＡＴＡに更新する。
【００３５】
なお、データ更新部ＤＵＰｂは、ペン先ＮＩＢを見ずに物が書かれたことを示す判定結果を判定部ＪＤＧｂから受信した場合、補正データＣＤＡＴＡの更新を実行せずに待機する。すなわち、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧｂにより判定された場合、補正データ記憶部ＤＭＥＭに記憶された補正データＣＤＡＴＡは、更新されない。このように、ペン先ＮＩＢを見ずに物が書かれた場合に、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができる。
【００３６】
補正部ＣＲＥＣｂは、視線検出部ＥＤＥＴｂにより検出された視線位置を補正データＣＤＡＴＡを用いて補正する。例えば、補正部ＣＲＥＣｂは、視線位置を示す座標情報を座標記憶部ＣＭＥＭから受信し、補正データＣＤＡＴＡを補正データ記憶部ＤＭＥＭから受信する。そして、補正部ＣＲＥＣｂは、座標記憶部ＣＭＥＭから受信した座標情報が示す視線位置を、補正データ記憶部ＤＭＥＭから受信した補正データＣＤＡＴＡを用いて補正する。
【００３７】
このように、視線検出装置ＥＳＹＳｂは、視線の個人差を補正するキャリブレーションを、ユーザＵＳＥＲにキャリブレーションのための作業を要求することなく、ユーザＵＳＥＲが文字等を書いている場合に、補正データＣＤＡＴＡを用いて実行する。このため、ユーザＵＳＥＲの負担を軽減してキャリブレーションを実行することができる。また、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧｂにより判定された場合、補正データＣＤＡＴＡが更新されないため、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。この結果、ペン先ＮＩＢを見ずに物が書かれたか否かに拘わらず補正データＣＤＡＴＡを更新する場合に比べて、キャリブレーションの精度を向上させることができる。
【００３８】
なお、視線検出装置ＥＳＹＳｂの構成は、図２に示す例に限定されない。例えば、視線検出装置ＥＳＹＳｂは、赤外線カメラおよび赤外線ＬＥＤ等を含む視線センサを撮像装置ＣＡＭ１の代わりに有してもよい。この場合、例えば、赤外線ＬＥＤは、赤外線をユーザＵＳＥＲの目に照射し、赤外線カメラは、赤外線が照射されたユーザＵＳＥＲの目を撮像する。そして、視線検出部ＥＤＥＴｂは、赤外線カメラで撮像されたユーザＵＳＥＲの画像を用いて角膜反射法による視線検出処理を実行してもよい。
【００３９】
また、例えば、視線検出装置ＥＳＹＳｂは、ユーザＵＳＥＲが文字等を書いている場面（すなわち、ペン先ＮＩＢを含む領域）を撮像する撮像装置（例えば、図１０に示す撮像装置ＣＡＭ２）を有してもよい。この場合、視線検出装置ＥＳＹＳｂは、タッチパネルＴＰＬを含まないコンピュータに搭載されてもよい。タッチパネルＴＰＬが視線検出装置ＥＳＹＳｂに含まれない場合、例えば、ペン先検出部ＮＤＥＴｂは、ペン先ＮＩＢを含む領域を撮像した画像から、ペン先ＮＩＢの位置を検出する。この場合、例えば、図４等に示す更新判定処理において、判定部ＪＤＣｂは、ペン先ＮＩＢを撮像する撮像装置のフレームレートに基づいて、ペン先ＮＩＢの位置の単位時間当たりの移動量等を算出する。
【００４０】
また、視線検出装置ＥＳＹＳｂは、筆圧を検出するセンサを有してもよい。この場合、ペン先ＮＩＢを見ずに物が書かれたか否かの判定に、筆圧の情報が用いられてもよい。例えば、判定部ＪＤＧｂは、筆圧が均等（筆圧の変化が所定値以内）である場合、ペン先ＮＩＢを見ずに物が書かれたと判定してもよい。
【００４１】
図３は、図２に示した視線検出装置ＥＳＹＳｂの動作の一例を示す。なお、図３に示す動作は、ハードウェアのみで実現されてもよく、視線検出プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、視線検出プログラムは、図３に示す動作をコンピュータに実行させてもよい。図３に示す動作は、例えば、１文字あるいは１つの図形が書き終わる度に、バッチ処理で実行される。ステップＳ１００、Ｓ１０２、Ｓ１０４の処理は、補正用のデータを蓄積する処理であり、ステップＳ２００、Ｓ２１０、Ｓ３００の処理は、補正データＣＤＡＴＡを生成する処理である。
【００４２】
ステップＳ１００では、視線検出部ＥＤＥＴｂは、視線検出処理を実行する。これにより、視線位置が検出される。
【００４３】
次に、ステップＳ１０２では、ペン先検出部ＮＤＥＴｂは、スタイラスペンＰＥＮがタッチパネルＴＰＬをタッチしたかを検出する。スタイラスペンＰＥＮのタッチが検出された場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１０４に移る。一方、スタイラスペンＰＥＮのタッチを検出していない時間が所定時間以上の場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ２００に移る。所定時間は、例えば、１文字書き終わってから次の文字を書き始めるまでの平均的な時間、または、視線検出の実行間隔等である。
【００４４】
ステップＳ１０４では、視線検出装置ＥＳＹＳｂは、視線位置を示す座標情報およびタッチ位置を示す座標情報を座標記憶部ＣＭＥＭに格納する。例えば、視線検出部ＥＤＥＴｂは、ステップＳ１００で検出した視線位置を示す座標情報を座標記憶部ＣＭＥＭに記憶する。また、ペン先検出部ＮＤＥＴｂは、スタイラスペンＰＥＮがタッチパネルＴＰＬをタッチした座標をタッチ位置として算出し、算出したタッチ位置を示す座標情報を座標記憶部ＣＭＥＭに記憶する。これにより、互いに対応する視線位置およびタッチ位置をそれぞれ示す座標情報が座標記憶部ＣＭＥＭに記憶される。ステップＳ１０４の処理が実行された後、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１００に戻る。
【００４５】
ステップＳ２００では、視線検出装置ＥＳＹＳｂは、視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されているか否かを判定する。視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されている場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ２１０に移る。一方、視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されていない場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ４００に移る。
【００４６】
ステップＳ２１０では、判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡを更新するか否かを判定する更新判定処理を実行する。なお、ステップＳ２１０の更新判定処理、すなわち、判定部ＪＤＧｂの動作の詳細は、図４以降で説明する。ペン先ＮＩＢを見ずに物が書かれた場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ４００に移る。一方、ペン先ＮＩＢを見て物が書かれた場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ３００に移る。
【００４７】
ステップＳ３００では、データ更新部ＤＵＰｂは、ペン先ＮＩＢを見て物が書かれたと判定された場合の視線位置およびタッチ位置を用いて補正データＣＤＡＴＡを更新する。
【００４８】
次に、ステップＳ４００では、補正部ＣＲＥＣｂは、視線検出部ＥＤＥＴｂにより検出された視線位置を補正データＣＤＡＴＡを用いて補正する。これにより、キャリブレーションの実行を含む視線検出処理が終了する。
【００４９】
なお、視線検出装置ＥＳＹＳｂの動作は、図３に示す例に限定されない。例えば、補正用のデータを蓄積する処理（ステップＳ１１０−Ｓ１１８）、補正データＣＤＡＴＡを生成して更新する処理（ステップＳ２０２−Ｓ３００）、視線位置を補正データＣＤＡＴＡを用いて補正する処理（ステップＳ４００）は、並列に実行されてもよい。
【００５０】
図４は、図２に示した判定部ＪＤＧｂの動作の一例を示す。なお、図４に示す動作は、図３に示したステップＳ２１０の更新判定処理の一例である。図４に示す更新判定処理では、判定部ＪＤＧｂは、物を書く速度によって、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。ステップＳ２１０の処理は、図３に示したステップＳ２００において視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されていると判定された場合に、実行される。
【００５１】
ステップＳ２１２では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納されたタッチ位置を示す座標情報を用いて、タッチ位置の移動速度、すなわち、単位時間当たりの移動距離を算出する。
【００５２】
次に、ステップＳ２１４では、判定部ＪＤＧｂは、ステップＳ２１２で算出した移動速度が所定の速度以上か否かを判定する。所定の速度は、例えば、実験、シミュレーション等に基づいて決定された値に設定されてもよいし、タッチ位置の移動速度の平均の所定数倍（例えば、２倍）等に設定されてもよい。
【００５３】
移動速度が所定の速度以上である場合、判定部ＪＤＧｂの動作は、ステップＳ２１６に移る。一方、移動速度が所定の速度未満である場合、判定部ＪＤＧｂの動作は、ステップＳ２１８に移る。
【００５４】
ステップＳ２１６では、判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡの更新を待機すると判定する。このように、判定部ＪＤＧｂは、ペン先ＮＩＢの位置の移動速度が所定の速度以上の場合、ペン先ＮＩＢを見ずに物が書かれたと判定する。したがって、ステップＳ２１６で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ４００に移る。
【００５５】
ステップＳ２１８では、判定部ＪＤＧｂは、ペン先ＮＩＢを見て物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡを更新すると判定する。したがって、ステップＳ２１８で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ３００に移る。
【００５６】
このように、判定部ＪＤＧｂは、物を書く速度によって、補正データＣＤＡＴＡを更新するか否かを判定する。例えば、ユーザＵＳＥＲがメモを走り書きする場合、または、ユーザＵＳＥＲが単純な図形を素早く書く場合、図４に示す更新判定処理により、補正データＣＤＡＴＡの更新が待機される。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。なお、判定部ＪＤＧｂの動作、すなわち、更新判定処理は、図４に示す例に限定されない。
【００５７】
図５は、図２に示した判定部ＪＤＧｂの動作の別の例を示す。すなわち、図５に示す動作は、図３に示したステップＳ２１０の更新判定処理の別の例である。図５に示す更新判定処理では、判定部ＪＤＧｂは、中心視野で捉えられる範囲に物が書かれたかによって、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。ステップＳ２２０の処理は、図３に示したステップＳ２００において視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されていると判定された場合に、実行される。
【００５８】
ステップＳ２２０では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納された視線位置を示す座標情報を用いて、視線位置の単位時間当たりの移動量ＭＥ（移動距離ＭＥ）を算出する。
【００５９】
次に、ステップＳ２２２では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納されたタッチ位置を示す座標情報を用いて、タッチ位置の単位時間当たりの移動量ＭＴ（移動距離ＭＴ）を算出する。
【００６０】
次に、ステップＳ２２４では、判定部ＪＤＧｂは、ステップＳ２２０で算出した移動量ＭＥとステップＳ２２２で算出した移動量ＭＴとの差が所定値以上か否かを判定する。所定値は、例えば、実験、シミュレーション等に基づいて決定された値に予め設定される。移動量ＭＥと移動量ＭＴとの差が所定値以上である場合、判定部ＪＤＧｂの動作は、ステップＳ２２６に移る。一方、移動量ＭＥと移動量ＭＴとの差が所定値未満である場合、判定部ＪＤＧｂの動作は、ステップＳ２２８に移る。
【００６１】
ステップＳ２２６では、判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡの更新を待機すると判定する。このように、判定部ＪＤＧｂは、視線の位置の単位時間当たりの移動量ＭＥとペン先ＮＩＢの位置の単位時間当たりの移動量ＭＴとの差が所定値以上の場合、ペン先ＮＩＢを見ずに物が書かれたと判定する。したがって、ステップＳ２１６で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ４００に移る。
【００６２】
ここで、例えば、ユーザＵＳＥＲは、中心視野で捉えられる範囲に文字を書いている場合、視線をほとんど動かさずに文字を書き続け、中心視野で捉えられる範囲外に文字を書く場合に、文字を書く位置に合わせて視線を移動させる。すなわち、中心視野で捉えられる範囲に物が書かれる場合、ペン先ＮＩＢを見ずに物が書かれる場合がある。ユーザＵＳＥＲが中心視野で捉えられる範囲に視線をほとんど動かさずに文字を書いている場合、視線位置の移動量ＭＥは、タッチ位置（ペン先ＮＩＢの位置）の移動量ＭＴに比べて小さくなる。
【００６３】
このため、中心視野で捉えられる範囲に文字を書いている期間では、文字を書く位置に合わせて視線を移動させる場合に比べて、移動量ＭＥと移動量ＭＴとの差が大きくなる。したがって、図５に示す例では、判定部ＪＤＧｂは、移動量ＭＥと移動量ＭＴとの差が所定値以上である場合、ペン先ＮＩＢを見ずに中心視野で捉えられる範囲に物が書かれたと判定する。
【００６４】
ステップＳ２２８では、判定部ＪＤＧｂは、ペン先ＮＩＢを見て物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡを更新すると判定する。したがって、ステップＳ２２８で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ３００に移る。
【００６５】
このように、判定部ＪＤＧｂは、中心視野で捉えられる範囲に物が書かれたかによって、補正データＣＤＡＴＡを更新するか否かを判定する。例えば、ユーザＵＳＥＲが中心視野で捉えられる範囲に文字を書いている場合、図５に示す更新判定処理により、補正データＣＤＡＴＡの更新が待機される。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。
【００６６】
なお、判定部ＪＤＧｂの動作、すなわち、更新判定処理は、図５に示す例に限定されない。例えば、判定部ＪＤＧｂは、図４に示した更新判定処理と図５に示した更新判定処理とを合わせた更新判定処理を実行してもよい。この場合、補正データＣＤＡＴＡは、図４に示した更新判定処理と図５に示した更新判定処理とのいずれかでペン先ＮＩＢを見ずに物が書かれたと判定されると、更新されない。
【００６７】
図６は、図２に示した判定部ＪＤＧｂの動作の別の例を示す。すなわち、図６に示す動作は、図３に示したステップＳ２１０の更新判定処理の別の例である。図６に示す更新判定処理では、判定部ＪＤＧｂは、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた物と文字との類似度によって、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。ステップＳ２３０の処理は、図３に示したステップＳ２００において視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されていると判定された場合に、実行される。
【００６８】
ステップＳ２３０では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納されたタッチ位置を示す座標情報から得られるタッチ位置の軌跡と予め登録された文字との類似度を算出する。タッチ位置の軌跡と文字との類似度は、例えば、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた文字を認識するための文字認識処理におけるパターンマッチング等を実行することにより算出される。
【００６９】
次に、ステップＳ２３２では、判定部ＪＤＧｂは、ステップＳ２３０で算出した類似度が閾値以下か否かを判定する。閾値は、例えば、文字認識処理に用いられる閾値より小さい値に設定される。なお、閾値は、文字認識処理に用いられる閾値と同じ値でもよいし、文字認識処理に用いられる閾値より大きい値でもよい。類似度が閾値以下である場合、判定部ＪＤＧｂの動作は、ステップＳ２３４に移る。一方、類似度が閾値を越える場合、判定部ＪＤＧｂの動作は、ステップＳ２３６に移る。
【００７０】
ステップＳ２３４では、判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡの更新を待機すると判定する。このように、判定部ＪＤＧｂは、ペン先ＮＩＢの軌跡と文字との類似度が所定の閾値以下である場合、ペン先ＮＩＢを見ずに文字が書かれたと判定する。すなわち、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた物が文字として認識されない場合、または、認識した文字とスタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた物との差分が大きい場合、ペン先ＮＩＢを見ずに文字が書かれたと判定される。ステップＳ２３４で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ４００に移る。
【００７１】
ステップＳ２３６では、判定部ＪＤＧｂは、ペン先ＮＩＢを見て物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡを更新すると判定する。したがって、ステップＳ２３６で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ３００に移る。
【００７２】
このように、判定部ＪＤＧｂは、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた物と文字との類似度によって、補正データＣＤＡＴＡを更新するか否かを判定する。例えば、ユーザＵＳＥＲがペン先ＮＩＢを見ずに文字を雑に書いた場合、図６に示す更新判定処理により、補正データＣＤＡＴＡの更新が待機される。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。
【００７３】
なお、判定部ＪＤＧｂの動作、すなわち、更新判定処理は、図６に示す例に限定されない。例えば、判定部ＪＤＧｂは、図４、図５および図６に示したそれぞれの更新判定処理のうちの複数の更新判定処理を組み合わせた更新判定処理を実行してもよい。この場合、補正データＣＤＡＴＡは、組み合わせに含まれる複数の更新判定処理のいずれかでペン先ＮＩＢを見ずに物が書かれたと判定されると、更新されない。
【００７４】
図７は、図２に示した判定部ＪＤＧｂの動作の別の例を示す。すなわち、図７に示す動作は、図３に示したステップＳ２１０の更新判定処理の別の例である。図７に示す更新判定処理では、判定部ＪＤＧｂは、書き慣れた文字かによって、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。ステップＳ２４０の処理は、図３に示したステップＳ２００において視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されていると判定された場合に、実行される。
【００７５】
ステップＳ２４０では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納されたタッチ位置を示す座標情報から得られるタッチ位置の軌跡から文字を認識する。例えば、判定部ＪＤＧｂは、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた文字を認識するための文字認識処理を実行する。
【００７６】
次に、ステップＳ２４２では、判定部ＪＤＧｂは、ステップＳ２４０で認識した文字が書き慣れた文字か否かを判定する。例えば、ユーザＵＳＥＲのサイン等が書き慣れた文字としてユーザＵＳＥＲにより予め登録される。なお、所定回数以上書かれた単語が書き慣れた文字として自動的に登録されてもよい。スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた文字が書き慣れた文字である場合、判定部ＪＤＧｂの動作は、ステップＳ２４４に移る。一方、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた文字が書き慣れた文字でない場合、判定部ＪＤＧｂの動作は、ステップＳ２４６に移る。
【００７７】
ステップＳ２４４では、判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡの更新を待機すると判定する。このように、判定部ＪＤＧｂは、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた文字が書き慣れた文字である場合、ペン先ＮＩＢを見ずに文字が書かれたと判定する。したがって、ステップＳ２４４で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ４００に移る。
【００７８】
ステップＳ２４６では、判定部ＪＤＧｂは、ペン先ＮＩＢを見て物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡを更新すると判定する。したがって、ステップＳ２４６で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ３００に移る。
【００７９】
このように、判定部ＪＤＧｂは、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた物が書き慣れた文字かによって、補正データＣＤＡＴＡを更新するか否かを判定する。例えば、ユーザＵＳＥＲがペン先ＮＩＢを見ずにユーザＵＳＥＲのサインを書いた場合、図７に示す更新判定処理により、補正データＣＤＡＴＡの更新が待機される。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。
【００８０】
なお、判定部ＪＤＧｂの動作、すなわち、更新判定処理は、図７に示す例に限定されない。例えば、ステップＳ２４２では、ステップＳ２４０で認識された文字が書き慣れた文字かを判定する代わりに、ステップＳ２４０で認識された文字が予め登録された文字かを判定してもよい。この場合、書き慣れた文字の他に、ペン先ＮＩＢを見ずに書ける単純な文字等がステップＳ２４２の判定に用いられる文字として予め登録されてもよい。
【００８１】
また、例えば、判定部ＪＤＧｂは、図４、図５、図６および図７に示したそれぞれの更新判定処理のうちの複数の更新判定処理を組み合わせた更新判定処理を実行してもよい。この場合、補正データＣＤＡＴＡは、組み合わせに含まれる複数の更新判定処理のいずれかでペン先ＮＩＢを見ずに物が書かれたと判定されると、更新されない。
【００８２】
図８は、図２に示した判定部ＪＤＧｂの動作の別の例を示す。すなわち、図８に示す動作は、図３に示したステップＳ２１０の更新判定処理の別の例である。図８に示す更新判定処理では、判定部ＪＤＧｂは、書体によって、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。ステップＳ２５０の処理は、図３に示したステップＳ２００において視線位置を示す座標情報およびタッチ位置を示す座標情報が座標記憶部ＣＭＥＭに格納されていると判定された場合に、実行される。
【００８３】
ステップＳ２５０では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納された視線位置を示す座標情報およびタッチ位置を示す座標情報を用いて、互いに対応する視線位置とタッチ位置との差分を算出する。例えば、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納された互いに対応する視線位置およびタッチ位置の組み合わせ毎に、視線位置とタッチ位置との差分を算出する。
【００８４】
次に、ステップＳ２５２では、ステップＳ２５０の処理対象の組み合わせの数を母数として、ステップＳ２５０で算出した差分が閾値以下の視線位置およびタッチ位置の組み合わせの数の割合Ｐを算出する。例えば、ステップＳ２５０の処理対象の組み合わせの数は、座標記憶部ＣＭＥＭに格納された互いに対応する視線位置およびタッチ位置の組み合わせの数に対応する。
【００８５】
次に、ステップＳ２５４では、判定部ＪＤＧｂは、ステップＳ２５２で算出した割合Ｐが所定の割合以上か否かを判定する。割合Ｐが所定の割合以上である場合、判定部ＪＤＧｂの動作は、ステップＳ２５６に移る。一方、割合Ｐが所定の割合未満である場合、判定部ＪＤＧｂの動作は、ステップＳ２６０に移る。
【００８６】
ステップＳ２５６では、判定部ＪＤＧｂは、タッチ位置の軌跡から得られる文字の書体を特定する。例えば、判定部ＪＤＧｂは、文字認識処理を実行して文字の書体を特定する。
【００８７】
次に、ステップＳ２５８では、判定部ＪＤＧｂは、ステップＳ２５６で特定した書体が筆記体か否かを判定する。書体が筆記体である場合、判定部ＪＤＧｂの動作は、ステップＳ２６０に移る。一方、書体が筆記体でない場合、判定部ＪＤＧｂの動作は、ステップＳ２６２に移る。
【００８８】
ステップＳ２６０では、判定部ＪＤＧｂは、ペン先ＮＩＢを見ずに物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡの更新を待機すると判定する。このように、判定部ＪＤＧｂは、スタイラスペンＰＥＮでタッチパネルＴＰＬ上に書かれた文字の書体が筆記体である場合、ペン先ＮＩＢを見ずに文字が書かれたと判定する。したがって、ステップＳ２６０で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ４００に移る。
【００８９】
ステップＳ２６２では、ステップＳ２５０の処理対象の組み合わせのうち、ステップＳ２５０で算出した差分が閾値以下の視線位置およびタッチ位置の組み合わせを抽出する。
【００９０】
次に、ステップＳ２６４では、判定部ＪＤＧｂは、ペン先ＮＩＢを見て物が書かれたと判定する。すなわち、判定部ＪＤＧｂは、補正データＣＤＡＴＡを更新すると判定する。したがって、ステップＳ２６４で判定部ＪＤＧｂの判定結果が得られた後、視線検出装置ＥＳＹＳｂの動作は、図３に示したステップＳ３００に移る。なお、図３に示したステップＳ３００では、ステップＳ２６２で抽出した視線位置およびタッチ位置に基づいて、補正データＣＤＡＴＡが更新される。
【００９１】
このように、判定部ＪＤＧｂは、文字の書体によって、補正データＣＤＡＴＡを更新するか否かを判定する。例えば、ユーザＵＳＥＲがペン先ＮＩＢを見ずに筆記体で文字を書いた場合、図８に示す更新判定処理により、補正データＣＤＡＴＡの更新が待機される。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。
【００９２】
なお、判定部ＪＤＧｂの動作、すなわち、更新判定処理は、図７に示す例に限定されない。例えば、判定部ＪＤＧｂは、図４、図５、図６、図７および図８に示したそれぞれの更新判定処理のうちの複数の更新判定処理を組み合わせた更新判定処理を実行してもよい。この場合、補正データＣＤＡＴＡは、組み合わせに含まれる複数の更新判定処理のいずれかでペン先ＮＩＢを見ずに物が書かれたと判定されると、更新されない。
【００９３】
図９は、図２に示した視線検出装置ＥＳＹＳｂの動作の別の例を示す。なお、図９に示す動作は、ハードウェアのみで実現されてもよく、視線検出プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、視線検出プログラムは、図９に示す動作をコンピュータに実行させてもよい。図９に示す動作は、例えば、１文字が書き終わるまで待たずに、リアルタイム処理で実行される。例えば、ステップＳ１１０−Ｓ１１８の処理は、スタイラスペンＰＥＮがタッチパネルＴＰＬに連続してタッチし続けている間（例えば、一筆書きで文字等の何かが書かれている間）実行される。そして、ステップＳ２０２以降の処理は、スタイラスペンＰＥＮがタッチパネルＴＰＬから離れたことを契機に実行される。
【００９４】
ステップＳ１１０では、視線検出部ＥＤＥＴｂは、視線位置（ユーザＵＳＥＲの視線の位置）を検出したか否かを判定する。視線検出部ＥＤＥＴｂが視線位置を検出した場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１２に移る。一方、視線検出部ＥＤＥＴｂが視線位置を検出していない場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１４に移る。
【００９５】
ステップＳ１１２では、視線検出部ＥＤＥＴｂは、ステップＳ１１０で検出した視線位置を示す座標情報を座標記憶部ＣＭＥＭに格納する。ステップＳ１１２の処理が実行された後、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１４に移る。
【００９６】
ステップＳ１１４では、ペン先検出部ＮＤＥＴｂは、スタイラスペンＰＥＮがタッチパネルＴＰＬをタッチしたかを検出する。スタイラスペンＰＥＮのタッチが検出された場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１６に移る。一方、スタイラスペンＰＥＮのタッチが検出されない場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ２０２に移る。
【００９７】
ステップＳ１１６では、ペン先検出部ＮＤＥＴｂは、スタイラスペンＰＥＮがタッチパネルＴＰＬ上に配置された終了ボタンの領域をタッチしたか否かを、タッチ位置に基づいて判定する。スタイラスペンＰＥＮがタッチした位置が終了ボタンである場合、キャリブレーションの実行を含む視線検出処理は終了する。一方、スタイラスペンＰＥＮがタッチした位置が終了ボタンでない場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１８に移る。
【００９８】
ステップＳ１１８では、ペン先検出部ＮＤＥＴｂは、ステップＳ１１４で検出したタッチ位置を示す座標情報を座標記憶部ＣＭＥＭに格納する。ステップＳ１１８の処理が実行された後、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１０に戻る。
【００９９】
ステップＳ２０２では、視線検出装置ＥＳＹＳｂは、視線位置およびタッチ位置の両方を検出済みか否かを判定する。例えば、視線検出装置ＥＳＹＳｂは、視線位置を示す座標情報およびタッチ位置を示す座標情報の両方が座標記憶部ＣＭＥＭに格納されているか否かを判定する。視線位置およびタッチ位置の両方が検出済みである場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ２１２に移る。一方、視線位置およびタッチ位置のいずれかが検出されていない場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１０に戻る。
【０１００】
ステップＳ２１２では、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納されたタッチ位置を示す座標情報を用いて、タッチ位置の移動速度、すなわち、単位時間当たりの移動距離を算出する。
【０１０１】
次に、ステップＳ２１４では、判定部ＪＤＧｂは、ステップＳ２１２で算出した移動速度が所定の速度以上か否かを判定する。移動速度が所定の速度以上である場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ４００に移る。一方、移動速度が所定の速度未満である場合、視線検出装置ＥＳＹＳｂの動作は、ステップＳ３００に移る。
【０１０２】
なお、ステップＳ２１２、Ｓ２１４は、図４で説明したように、補正データＣＤＡＴＡを更新するか否かを判定する更新判定処理、すなわち、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する処理である。したがって、図９に示す例では、判定部ＪＤＧｂは、移動速度が所定の速度以上である場合、ペン先ＮＩＢを見ずに物が書かれたと判定し、補正データＣＤＡＴＡの更新を待機させる。
【０１０３】
ステップＳ３００では、データ更新部ＤＵＰｂは、移動速度が所定の速度未満である場合の視線位置およびタッチ位置を用いて補正データＣＤＡＴＡを更新する。
【０１０４】
次に、ステップＳ４００では、補正部ＣＲＥＣｂは、視線検出部ＥＤＥＴｂにより検出された視線位置を補正データＣＤＡＴＡを用いて補正する。ステップＳ４００の処理が実行された後、視線検出装置ＥＳＹＳｂの動作は、ステップＳ１１０に戻る。
【０１０５】
このように、視線検出装置ＥＳＹＳｂは、ペン先ＮＩＢを見ずに物が書かれたか否かをリアルタイムで判定し、ペン先ＮＩＢを見ずに物が書かれた場合、補正データＣＤＡＴＡの更新を実行せずに待機する。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、正しい補正データＣＤＡＴＡを用いたキャリブレーションをリアルタイムで実行することができる。
【０１０６】
なお、視線検出装置ＥＳＹＳｂの動作は、図９に示す例に限定されない。例えば、補正データＣＤＡＴＡを更新するための処理（ステップＳ１１０−Ｓ３００）は、視線位置を補正データＣＤＡＴＡを用いて補正する処理（ステップＳ４００）と並列に実行されてもよい。
【０１０７】
また、例えば、判定部ＪＤＧｂは、互いに対応する視線位置とタッチ位置との差分が予め設定された値以上である場合、ペン先ＮＩＢを見ずに物が書かれたと判定してもよい。あるいは、判定部ＪＤＧｂは、座標記憶部ＣＭＥＭに格納されたタッチ位置を示す座標情報から得られるタッチ位置の軌跡が、同じ位置または所定の大きさの領域を複数回通過する場合、ペン先ＮＩＢを見ずに物が書かれたと判定してもよい。また、視線検出装置ＥＳＹＳｂが筆圧を検出するセンサを有する場合、判定部ＪＤＧｂは、筆圧が均等（筆圧の変化が所定値以内）である場合、ペン先ＮＩＢを見ずに物が書かれたと判定してもよい。あるいは、判定部ＪＤＧｂは、複数の更新判定処理を組み合わせた更新判定処理を実行してもよい。この場合、補正データＣＤＡＴＡは、組み合わせに含まれる複数の更新判定処理のいずれかでペン先ＮＩＢを見ずに物が書かれたと判定されると、更新されない。
【０１０８】
以上、図２から図９に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、判定部ＪＤＧｂは、ペン先検出部ＮＤＥＴｂにより検出されたペン先ＮＩＢの位置等から得られるペンＰＥＮの運び方のパターンに基づいて、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。そして、データ更新部ＤＵＰｂは、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧｂにより判定された場合、補正データＣＤＡＴＡの更新を実行せずに待機する。また、補正部ＣＲＥＣｂは、視線検出部ＥＤＥＴｂにより検出された視線の位置を補正データＣＤＡＴＡを用いて補正する。
【０１０９】
このように、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧｂにより判定された場合、データ更新部ＤＵＰｂは、補正データＣＤＡＴＡの更新を実行せずに待機する。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。この結果、ペン先ＮＩＢを見ずに物が書かれたか否かに拘わらず補正データＣＤＡＴＡを更新する場合に比べて、キャリブレーションの精度を向上させることができる。
【０１１０】
図１０は、視線検出装置、視線検出方法および視線検出プログラムの別の実施形態を示す。図１から図９で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図１０に示す視線検出装置ＥＳＹＳｃは、図２に示したタッチパネルＴＰＬ、ペン先検出部ＮＤＥＴｂおよび判定部ＪＤＧｂの代わりに、撮像装置ＣＡＭ２、ペン先検出部ＮＤＥＴｃおよび判定部ＪＤＧｃを有することを除いて、図２に示した視線検出装置ＥＳＹＳｂと同一または同様である。
【０１１１】
例えば、視線検出装置ＥＳＹＳｃは、ヘッドマウントディスプレイ端末等のコンピュータに搭載される。なお、視線検出装置ＥＳＹＳｃは、ヘッドマウントディスプレイ端末以外のコンピュータに搭載されてもよい。視線検出装置ＥＳＹＳｃが実行する視線検出処理等は、ハードウェアのみで実現されてもよく、視線検出プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、視線検出プログラムは、人物の視線の位置を検出し、検出した視線の位置を補正データＣＤＡＴＡを用いて補正する視線検出処理をコンピュータに実行させてもよい。図１０に示す例では、ユーザＵＳＥＲは、ペンＰＥＮを用いて記入用紙ＦＭに文字等を記入する。記入用紙ＦＭは、無地の用紙でもよいし、罫線等が記載された用紙でもよい。
【０１１２】
視線検出装置ＥＳＹＳｃは、撮像装置ＣＡＭ１、ＣＡＭ２、視線検出部ＥＤＥＴｂ、ペン先検出部ＮＤＥＴｃ、判定部ＪＤＧｃ、データ更新部ＤＵＰｂ、補正部ＣＲＥＣｂ、座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭを有する。
【０１１３】
撮像装置ＣＡＭ１、視線検出部ＥＤＥＴｂ、データ更新部ＤＵＰｂおよび補正部ＣＲＥＣｂは、図２に示した撮像装置ＣＡＭ１、視線検出部ＥＤＥＴｂ、データ更新部ＤＵＰｂおよび補正部ＣＲＥＣｂと同一または同様である。また、座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭは、図２に示した座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭと同一または同様である。
【０１１４】
撮像装置ＣＡＭ２は、例えば、ウェブカメラ等の可視カメラであり、ペン先ＮＩＢおよび記入用紙ＦＭを含む領域を所定のフレームレートで撮像する。すなわち、撮像装置ＣＡＭ２は、ユーザＵＳＥＲが文字等を書いている場面を所定のフレームレートで撮像する。そして、撮像装置ＣＡＭ２は、ペン先ＮＩＢ等を含む領域を撮像した画像（以下、ペン先ＮＩＢの画像とも称する）をペン先検出部ＮＤＥＴｃに順次出力する。
【０１１５】
ペン先検出部ＮＤＥＴｃは、ユーザＵＳＥＲがペンＰＥＮで文字等を記入用紙ＦＭに書いている場合、撮像装置ＣＡＭ２から受信したペン先ＮＩＢの画像を用いて、ペン先ＮＩＢの記入用紙ＦＭ上での位置（座標）をペン先ＮＩＢの位置として検出する。そして、ペン先検出部ＮＤＥＴｃは、ペン先ＮＩＢの位置を示す座標情報を、座標記憶部ＣＭＥＭに順次格納する。また、ペン先検出部ＮＤＥＴｃは、撮像装置ＣＡＭ２から受信したペン先ＮＩＢの画像を判定部ＪＤＧｃに転送する。なお、ペン先ＮＩＢの画像は、撮像装置ＣＡＭ２から判定部ＪＤＧｃにペン先検出部ＮＤＥＴｃを介さずに転送されてもよい。
【０１１６】
判定部ＪＤＧｃは、ペン先ＮＩＢを見ずに物が書かれたかを判定し、判定結果をデータ更新部ＤＵＰｂに通知する。例えば、判定部ＪＤＧｃは、レイアウト解析部ＬＳＣを有する。レイアウト解析部ＬＳＣは、例えば、記入用紙ＦＭ上でのペン先ＮＩＢの位置から所定の距離だけ離れた位置までの判定領域（図１１に示す領域ＰＡＲ）内に存在する罫線を抽出する。そして、判定部ＪＤＧｃは、ペン先ＮＩＢから所定の距離だけ離れた位置までの判定領域内に罫線が存在しない場合、ペン先ＮＩＢを見ずに物が書かれたと判定する。罫線には、枠線も含まれる。
【０１１７】
なお、レイアウト解析部ＬＳＣは、判定領域内に存在する罫線および文字を抽出してもよい。この場合、判定部ＪＤＧｃは、判定領域内に複数の行に渡って文字が書かれた場合、判定領域内に罫線が存在するか否かに拘わらず、ペン先ＮＩＢを見て物が書かれたと判定してもよい。すなわち、判定部ＪＤＧｃは、判定領域内に罫線が存在せず、かつ、文字等が１行に書かれる場合、ペン先ＮＩＢを見ずに物が書かれたと判定してもよい。
【０１１８】
このように、判定部ＪＤＧｃは、ペン先ＮＩＢの位置の周辺のレイアウトに基づいて、ペン先ＮＩＢを見ずに物が書かれたかを判定する。ペン先ＮＩＢを見ずに物が書かれた場合、補正データＣＤＡＴＡは、更新されない。すなわち、判定部ＪＤＧｃは、ペン先ＮＩＢの位置の周辺のレイアウトに基づいて、補正データＣＤＡＴＡを更新するか否かを判定する。補正データＣＤＡＴＡを更新するか否かを判定する更新判定処理の概要、すなわち、判定部ＪＤＧｃによる更新判定処理の概要は、図１１で説明する。
【０１１９】
なお、視線検出装置ＥＳＹＳｃの構成は、図１０に示す例に限定されない。例えば、視線検出装置ＥＳＹＳｃは、赤外線カメラおよび赤外線ＬＥＤ等を含む視線センサを撮像装置ＣＡＭ１の代わりに有してもよい。また、視線検出装置ＥＳＹＳｃは、撮像装置ＣＭＡ２の代わりに、タッチパネルＴＰＬを有してもよい。この場合、レイアウト解析部ＬＳＣは、スタイラスペンＰＥＮがタッチしたタッチパネルＴＰＬ上の位置（タッチ位置）から所定の距離だけ離れた位置までの判定領域内を解析し、タッチパネルＴＰＬ上の判定領域内に配置された罫線等を抽出する。
【０１２０】
図１１は、図１０に示した判定部ＪＤＧｃによる更新判定処理の概要を示す。破線で囲んだ領域ＰＡＲは、ペン先ＮＩＢから所定の距離ＴＤだけ離れた位置までの判定領域を示す。
【０１２１】
例えば、ユーザＵＳＥＲが何かを見ながら無地の用紙ＦＭにスケッチする場合等では、ペン先ＮＩＢを見ずに物が書かれる場合がある。したがって、例えば、ユーザＵＳＥＲが無地の用紙ＦＭに何かを記載し、判定領域ＰＡＲから罫線が抽出されない場合、判定部ＪＤＧｃは、ペン先ＮＩＢを見ずに物が書かれたと判定する。
【０１２２】
また、ユーザＵＳＥＲは、伝票の記入欄に文字を記入する場合では、文字が記入欄からはみ出さないように、ペン先ＮＩＢを見ながら文字を書く。したがって、ユーザＵＳＥＲが用紙ＦＭの記入欄に文字等を記載し、レイアウト解析部ＬＳＣが判定領域ＰＡＲから罫線を抽出した場合、判定部ＪＤＧｃは、ペン先ＮＩＢを見て物が書かれたと判定する。
【０１２３】
また、ユーザＵＳＥＲは、複数の行に渡って文字を書く場合では、文字を前の行と揃えるために、ペン先ＮＩＢを見ながら文字を書く。したがって、ユーザＵＳＥＲが用紙ＦＭに複数の行に渡って文字等を記載し、レイアウト解析部ＬＳＣが判定領域ＰＡＲ内に複数の行に渡って文字が書かれたことを検出した場合、判定部ＪＤＧｃは、ペン先ＮＩＢを見て物が書かれたと判定する。
【０１２４】
図１２は、図１０に示した視線検出装置ＥＳＹＳｃの動作の一例を示す。なお、図１２に示す動作は、ハードウェアのみで実現されてもよく、視線検出プログラム等のソフトウェアによりハードウェアを制御することにより実現されてもよい。例えば、視線検出プログラムは、図１２に示す動作をコンピュータに実行させてもよい。
【０１２５】
ステップＳ１２０では、ペン先検出部ＮＤＥＴｃは、撮像装置ＣＡＭ２から受信したペン先ＮＩＢの画像を用いて、ペン先ＮＩＢの位置を検出する。
【０１２６】
次に、ステップＳ２７０では、判定部ＪＤＧｃは、ステップＳ１２０で検出したペン先ＮＩＢの位置を含む周辺領域の情報を、ペン先ＮＩＢの画像から取得する。周辺領域は、ペン先ＮＩＢから所定の距離ＴＤだけ離れた位置までの判定領域ＰＡＲを含む領域であり、判定領域ＰＡＲと同じ領域でもよいし、判定領域ＰＡＲより広い領域でもよい。
【０１２７】
次に、ステップＳ２７２では、判定部ＪＤＧｃは、周辺領域内に罫線が存在するか否かを判定する。例えば、判定部ＪＤＧｃが有するレイアウト解析部ＬＳＣは、ステップＳ２７０で取得した周辺領域の情報を解析し、周辺領域内に存在する罫線を抽出する。周辺領域内に罫線が存在する場合、視線検出装置ＥＳＹＳｃの動作は、ステップＳ２７４に移る。一方、周辺領域内に罫線が存在しない場合、視線検出装置ＥＳＹＳｃの動作は、ステップＳ４００に移る。
【０１２８】
ステップＳ２７４では、判定部ＪＤＧｃは、ステップＳ２７２で抽出した罫線とペン先ＮＩＢとの距離Ｄを算出する。
【０１２９】
次に、ステップＳ２７６では、判定部ＪＤＧｃは、ステップＳ２７４で算出した距離Ｄが閾値ＴＤ以下か否かを判定する。閾値ＴＤは、例えば、図１１に示した距離ＴＤに対応する。距離Ｄが閾値ＴＤ以下である場合、視線検出装置ＥＳＹＳｃの動作は、ステップＳ３００に移る。すなわち、判定領域ＰＡＲ内に罫線が存在する場合、視線検出装置ＥＳＹＳｃの動作は、ステップＳ３００に移る。一方、距離Ｄが閾値ＴＤより大きい場合、視線検出装置ＥＳＹＳｃの動作は、ステップＳ４００に移る。すなわち、判定領域ＰＡＲ内に罫線が存在しない場合、視線検出装置ＥＳＹＳｃの動作は、ステップＳ４００に移る。
【０１３０】
なお、ステップＳ２７０−Ｓ２７６は、補正データＣＤＡＴＡを更新するか否かを判定する更新判定処理、すなわち、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する処理である。したがって、図１２に示す例では、判定部ＪＤＧｃは、周辺領域内に罫線が存在しない場合、または、距離Ｄが閾値ＴＤより大きい場合、ペン先ＮＩＢを見ずに物が書かれたと判定し、補正データＣＤＡＴＡの更新を待機させる。
【０１３１】
ステップＳ３００では、データ更新部ＤＵＰｂは、ペン先ＮＩＢの位置とペン先ＮＩＢの位置に対応する視線位置とを用いて、補正データＣＤＡＴＡを更新する。視線位置は、例えば、視線検出部ＥＤＥＴｂにより、撮像装置ＣＡＭ１のフレーム間隔で順次検出される。
【０１３２】
次に、ステップＳ４００では、補正部ＣＲＥＣｂは、視線検出部ＥＤＥＴｂにより検出された視線位置を補正データＣＤＡＴＡを用いて補正する。これにより、キャリブレーションの実行を含む視線検出処理が終了する。
【０１３３】
このように、判定部ＪＤＧｃは、ペン先ＮＩＢの周辺のレイアウトによって、補正データＣＤＡＴＡを更新するか否かを判定する。例えば、ユーザＵＳＥＲがペン先ＮＩＢを見ずに無地の用紙ＦＭにメモ等を書いた場合、図１２に示す更新判定処理により、補正データＣＤＡＴＡの更新が待機される。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。
【０１３４】
なお、視線検出装置ＥＳＹＳｃの動作は、図１２に示す例に限定されない。例えば、レイアウト解析部ＬＳＣは、周辺領域内に存在する罫線および文字を抽出してもよい。そして、判定部ＪＤＧｃは、判定領域ＰＡＲ内に複数の行に渡って文字が記載されている場合、距離Ｄが閾値ＴＤ以下か否かに拘わらず、ペン先ＮＩＢを見て物が書かれたと判定してもよい。すなわち、判定部ＪＤＧｃは、判定領域ＰＡＲ内に罫線が存在せず、かつ、文字等が１行に書かれる場合に、ペン先ＮＩＢを見ずに物が書かれたと判定してもよい。また、例えば、補正データＣＤＡＴＡを更新するための処理（ステップＳ１２０−Ｓ３００）は、視線位置を補正データＣＤＡＴＡを用いて補正する処理（ステップＳ４００）と並列に実行されてもよい。
【０１３５】
以上、図１０から図１２に示す実施形態においても、図１に示した実施形態と同様の効果を得ることができる。例えば、判定部ＪＤＧｃは、撮像装置ＣＡＭ２により撮像されたペン先ＮＩＢの画像等から得られるペンＰＥＮの周辺のレイアウトに基づいて、ペン先ＮＩＢを見ずに物が書かれたか否かを判定する。そして、データ更新部ＤＵＰｂは、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧｃにより判定された場合、補正データＣＤＡＴＡの更新を実行せずに待機する。また、補正部ＣＲＥＣｂは、視線検出部ＥＤＥＴｂにより検出された視線の位置を補正データＣＤＡＴＡを用いて補正する。
【０１３６】
このように、ペン先ＮＩＢを見ずに物が書かれたと判定部ＪＤＧｃにより判定された場合、データ更新部ＤＵＰｂは、補正データＣＤＡＴＡの更新を実行せずに待機する。これにより、補正データＣＤＡＴＡが誤ったデータに更新されることを抑止することができ、誤った補正データＣＤＡＴＡを用いたキャリブレーションが実行されることを抑止することができる。この結果、ペン先ＮＩＢを見ずに物が書かれたか否かに拘わらず補正データＣＤＡＴＡを更新する場合に比べて、キャリブレーションの精度を向上させることができる。
【０１３７】
図１３は、視線検出プログラムを実行するハードウェアの一例を示す。なお、図１から図１２で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。例えば、視線検出プログラムは、図１に示した視線検出装置ＥＳＹＳａの機能、図２に示した視線検出装置ＥＳＹＳｂの撮像装置ＣＡＭ１を除く機能、図１０に示した視線検出装置ＥＳＹＳｃの撮像装置ＣＡＭ１、ＣＡＭ２を除く機能をコンピュータＣＰで実現する。
【０１３８】
コンピュータＣＰは、例えば、プロセッサＰＵ、メモリＭＥＭ、ハードディスク装置ＨＤＤ、入出力インタフェースＩＦおよび光学ドライブ装置ＯＤＲを有する。プロセッサＰＵ、メモリＭＥＭ、ハードディスク装置ＨＤＤ、入出力インタフェースＩＦおよび光学ドライブ装置ＯＤＲは、バスＢＵＳに接続される。視線検出装置ＥＳＹＳ（ＥＳＹＳａ、ＥＳＹＳｂ、ＥＳＹＳｃ）の機能は、例えば、撮像装置ＣＡＭの機能を除いて、プロセッサＰＵと、メモリＭＥＭと、ハードディスク装置ＨＤＤと、入出力インタフェースＩＦとにより実現される。
【０１３９】
光学ドライブ装置ＯＤＲは、光ディスク等のリムーバブルディスクＲＤを装着可能であり、装着したリムーバブルディスクＲＤに記録された情報の読み出しおよび記録を実行する。また、コンピュータＣＰは、入出力インタフェースＩＦを介してコンピュータＣＰの外部と通信する。例えば、入出力インタフェースＩＦは、撮像装置ＣＡＭ１等で撮像された画像等を受け、プロセッサＰＵ等に転送する。
【０１４０】
メモリＭＥＭは、例えば、コンピュータＣＰのオペレーティングシステムを格納する。また、メモリＭＥＭは、視線検出装置ＥＳＹＳの動作をプロセッサＰＵが実行するための視線検出プログラム等のアプリケーションプログラムを格納する。なお、座標記憶部ＣＭＥＭおよび補正データ記憶部ＤＭＥＭは、メモリＭＥＭに割り当てられてもよいし、メモリＭＥＭとは異なるメモリに割り当てられてもよい。
【０１４１】
視線検出プログラム等のアプリケーションプログラムは、光ディスク等のリムーバブルディスクＲＤに記録して頒布することができる。例えば、コンピュータＣＰは、視線検出プログラム等のアプリケーションプログラムを、リムーバブルディスクＲＤから光学ドライブ装置ＯＤＲを介して読み出し、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。また、コンピュータＣＰは、視線検出プログラム等のアプリケーションプログラムを、インターネット等のネットワークに接続する通信装置（図示せず）を介してダウンロードし、メモリＭＥＭやハードディスク装置ＨＤＤに格納してもよい。
【０１４２】
視線検出プログラムを実行するハードウェアは、図１３に示す例に限定されない。例えば、コンピュータＣＰは、光学ドライブ装置ＯＤＲが省かれてもよい。また、例えば、コンピュータＣＰは、ウェブカメラ等の撮像装置ＣＡＭ１、ＣＡＭ２を有してもよい。
【０１４３】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１４４】
ＣＡＭ１、ＣＡＭ２‥撮像装置；ＣＭＥＭ‥座標記憶部；ＣＰ‥コンピュータ；ＣＲＥＣａ、ＣＲＥＣｂ‥補正部；ＤＭＥＭ‥補正データ記憶部；ＤＵＰａ、ＤＵＰｂ‥データ更新部；ＥＤＥＴａ、ＥＤＥＴｂ‥視線検出部；ＥＳＹＳａ、ＥＳＹＳｂ、ＥＳＹＳｃ‥視線検出装置；ＨＤＤ‥ハードディスク装置；ＩＦ‥入出力インタフェース；ＪＤＧａ、ＪＤＧｂ、ＪＤＧｃ‥判定部；ＬＳＣ‥レイアウト解析部；ＭＥＭ‥メモリ；ＮＤＥＴａ、ＮＤＥＴｂ、ＮＤＥＴｃ‥ペン先検出部；ＯＤＲ‥光学ドライブ装置；ＰＵ‥プロセッサ；ＲＤ‥リムーバブルディスク；ＴＰＬ‥タッチパネル
【図１】
2018015218.tif 000003
【図２】
2018015218.tif 000004
【図３】
2018015218.tif 000005
【図４】
2018015218.tif 000006
【図５】
2018015218.tif 000007
【図６】
2018015218.tif 000008
【図７】
2018015218.tif 000009
【図８】
2018015218.tif 000010
【図９】
2018015218.tif 000011
【図１０】
2018015218.tif 000012
【図１１】
2018015218.tif 000013
【図１２】
2018015218.tif 000014
【図１３】
2018015218.tif 000015