(57)【特許請求の範囲】
【請求項１】
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出する第１の軌跡検出部と、
隣接する二つの前記第１の軌跡の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する第２の軌跡検出部と、
を有し、
前記第１の軌跡検出部は、前記複数の測定点のうち、前記文書を読むべき方向と逆向きに移動する、連続する測定点の組のうち、当該連続する測定点の組における視線位置の移動量が、前記画面上における、テキストの行に沿った前記文書の幅に応じて定まる所定値以上となる場合、当該連続する測定点の組を前記第１の軌跡の候補として検出し、前記第１の軌跡の候補のそれぞれの長さの差または比が所定値以下となる場合に、前記第１の軌跡の候補のそれぞれを前記第１の軌跡とする、読書範囲検出装置。
【請求項２】
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出する第１の軌跡検出部と、
隣接する二つの前記第１の軌跡の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する第２の軌跡検出部と、
を有し、
前記第２の軌跡検出部は、隣接する二つの前記第１の軌跡の組ごとに、当該組の間に取得された、連続する二つの前記測定点の組間の視線位置の移動量及び移動方向に基づいて前記文書を読むべき方向の眼の微動を検出し、検出された眼の微動の頻度に基づいて当該組の間に前記第２の軌跡が有るか否かを判定する、読書範囲検出装置。
【請求項３】
前記文書に含まれるテキストの行数に対する、前記第１の軌跡の数及び前記第２の軌跡の数の少なくとも一方の比に基づいて、ユーザが前記文書を読んだ割合を判定する既読割合判定部をさらに有する、請求項１または２に記載の読書範囲検出装置。
【請求項４】
前記検出された第２の軌跡のそれぞれに基づいて、前記複数の測定点の分布が前記画面上の前記文書のうちのユーザが読んだ範囲と一致するように前記複数の測定点の位置を補正する位置補正パラメータを算出する位置補正パラメータ算出部をさらに有する、請求項１〜３の何れか一項に記載の読書範囲検出装置。
【請求項５】
前記画面上の前記文書のうち、ユーザが読み始める先頭の位置を取得する先頭位置検出部と、
前記先頭の位置と、前記第１の軌跡の数及び前記第２の軌跡の数の少なくとも一方に基づいて、前記文書中で前記ユーザが読み終えた既読範囲を特定し、前記画面において前記既読範囲と前記文書中で前記ユーザが読んでいない未読範囲とが識別されるよう前記画面上に前記文書を表示させる表示制御部とをさらに有する、請求項１〜４の何れか一項に記載の読書範囲検出装置。
【請求項６】
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出し、
隣接する二つの前記第１の軌跡の組の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する、
ことを含み、
前記第１の軌跡を検出することは、前記複数の測定点のうち、前記文書を読むべき方向と逆向きに移動する、連続する測定点の組のうち、当該連続する測定点の組における視線位置の移動量が、前記画面上における、テキストの行に沿った前記文書の幅に応じて定まる所定値以上となる場合、当該連続する測定点の組を前記第１の軌跡の候補として検出し、前記第１の軌跡の候補のそれぞれの長さの差または比が所定値以下となる場合に、前記第１の軌跡の候補のそれぞれを前記第１の軌跡とする、
読書範囲検出方法。
【請求項７】
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出し、
隣接する二つの前記第１の軌跡の組の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する、
ことをコンピュータに実行させ、
前記第１の軌跡を検出することは、前記複数の測定点のうち、前記文書を読むべき方向と逆向きに移動する、連続する測定点の組のうち、当該連続する測定点の組における視線位置の移動量が、前記画面上における、テキストの行に沿った前記文書の幅に応じて定まる所定値以上となる場合、当該連続する測定点の組を前記第１の軌跡の候補として検出し、前記第１の軌跡の候補のそれぞれの長さの差または比が所定値以下となる場合に、前記第１の軌跡の候補のそれぞれを前記第１の軌跡とする、
読書範囲検出用コンピュータプログラム。
【請求項８】
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出し、
隣接する二つの前記第１の軌跡の組の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する、
ことを含み、
前記第２の軌跡を検出することは、隣接する二つの前記第１の軌跡の組ごとに、当該組の間に取得された、連続する二つの前記測定点の組間の視線位置の移動量及び移動方向に基づいて前記文書を読むべき方向の眼の微動を検出し、検出された眼の微動の頻度に基づいて当該組の間に前記第２の軌跡が有るか否かを判定する
読書範囲検出方法。
【請求項９】
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出し、
隣接する二つの前記第１の軌跡の組の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する、
ことをコンピュータに実行させ、
前記第２の軌跡を検出することは、隣接する二つの前記第１の軌跡の組ごとに、当該組の間に取得された、連続する二つの前記測定点の組間の視線位置の移動量及び移動方向に基づいて前記文書を読むべき方向の眼の微動を検出し、検出された眼の微動の頻度に基づいて当該組の間に前記第２の軌跡が有るか否かを判定する
読書範囲検出用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画面に表示された文書においてユーザが読んだ範囲を検出する読書範囲検出装置、読書範囲検出方法及び読書範囲検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、ユーザの視線方向を検出できるデバイスが小型化されている。そのため、ユーザの視線方向を検出できるデバイスは、様々な装置に搭載することが可能となっている。そこで、そのようなデバイスによりユーザの視線方向を検出した結果を利用するアプリケーションが研究されている（例えば、特許文献１〜３を参照）。
【０００３】
例えば、特許文献１に記載された情報処理装置は、画面上における視線位置を取得する。またこの情報処理装置は、画面上において文字列を囲む第１領域を元に定めた第２領域における視線位置の移動が改行を表す移動である第１回数が、第１領域に含まれる文字列の行数に応じて定められる第１閾値以上となったか否かを判定する。そしてこの情報処理装置は、第１回数が第１閾値以上となる前に、第１領域の第１部分が画面から外れ、かつ、第１領域の第２部分が画面に残るように変更する指示がなされた場合、第１回数が第１部分に含まれる文字列の第１行数に応じた閾値以上か否か判定する。第１回数がその閾値以上であれば、この情報処理装置は、第１部分について既読を表すデータをデータ格納部に格納する。
【０００４】
また、特許文献２に記載された表示装置は、ユーザの視線位置が画面上で停留した停留点に基づき、画面上に表示される情報のスクロール速度を制御する。この表示装置は、視線位置が停留した時刻が前後する二つの停留点間の距離を算出し、その距離が所定距離以上であるときに、距離が所定距離未満であるときと比較してスクロール速度を速くする。
【０００５】
また、特許文献３に開示された精読判断装置は、電子文書を読むユーザの視線の移動方向を検出する。そしてこの精読判断装置は、ユーザの視線の移動方向が、電子文書を読むべき方向から反転した回数を計測し、その計測結果と電子文書の特徴から定まる精読時に満足すべき反転回数とに基づいて、ユーザが精読したか否かを判断する。
【０００６】
これらの装置では、ユーザの視線位置が正確に検出できることが前提となっている。しかし、真の視線位置と、測定されたそのものの視線位置、すなわち、生の視線位置との間には、一般にずれがあるので、生の視線位置のデータをそのまま利用しても、ユーザの視線位置を正確に検出することは困難である。そこで、ユーザの視線位置を正確に検出するために、事前に、いわゆるキャリブレーション処理が行われる。
【０００７】
しかし、視線を検出する際における、視線検出用のデバイスとユーザとの位置関係が、キャリブレーション処理の実行時における、視線検出用のデバイスとユーザとの位置関係と異なることがある。特に、視線検出用のデバイスが、携帯電話または携帯情報端末といった、ユーザが自らの手で保持する装置に搭載される場合、視線検出時におけるそのデバイスとユーザ間の位置関係を常に一定に保つことは困難である。そしてユーザとデバイスとの間の位置関係が異なれば、視線方向が同一であっても、装置の画面上での視線の位置は異なる。また、毎回キャリブレーション処理を行うことは、ユーザにとって煩雑であり、実際的でない。
【０００８】
一方、ユーザの挙動に応じて、自動的に視線方向のキャリブレーションを行うアルゴリズムが提案されている（例えば、特許文献４を参照）。特許文献４に開示されたアルゴリズムは、ある対象物をユーザが注視することが想定される一連のタスク、例えば、コンピュータスクリーンの小領域を選択またはクリックするアクションの実行中にユーザの視線方向をモニタする。そしてこのアルゴリズムは、想定される方向とユーザの視線方向との相関をもとめ、その相関から、そのユーザに関して使用される視線方向のパラメータを計算する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１５−３２１８０号公報
【特許文献２】特開２０１５−１０６３２７号公報
【特許文献３】特開２０１５−３２２７３号公報
【特許文献４】国際公開第２０１０／０７１９２８号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献４に開示されたアルゴリズムでは、ユーザの操作と想定される視線方向とを関連付けるタスクが行われることが前提となっている。そのため、このアルゴリズムは、そのようなタスクが行われない場合には適用できない。
【００１１】
一つの側面では、本発明は、画面に表示された文書をユーザが読む際の視線の動きに基づいて、ユーザが読んだ範囲を特定する精度の向上を図ることが可能な読書範囲検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
一つの実施形態によれば、読書範囲検出装置が提供される。この読書範囲検出装置は、互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の測定点の組であるユーザの視線の第１の軌跡を、画面上で２か所以上検出する第１の軌跡検出部と、隣接する二つの第１の軌跡の間に取得された測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する第２の軌跡検出部とを有する。
【発明の効果】
【００１３】
画面に表示された文書においてユーザが読んだ範囲を特定する精度を高めることができる。
【図面の簡単な説明】
【００１４】
【図１】人の視覚における、視軸からの距離に応じた見え方の変化を表す模式図である。
【図２】一つの実施形態による読書範囲検出装置を搭載した携帯端末のハードウェア構成図である。
【図３】制御部の読書範囲検出処理に関する機能ブロック図である。
【図４】視線位置の測定点群の一例を示す図である。
【図５】（ａ）〜（ｄ）は、図４に示された視線位置の測定点の分布に対応する、視線位置の測定点の位置補正の説明図である。
【図６】読書範囲検出処理の動作フローチャートである。
【図７】変形例による、文書の発信源となる装置の画面の一例を示す図である。
【図８】変形例による、制御部の機能ブロック図である。
【図９】変形例による、ユーザインターフェースの画面上の文書表示の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図を参照しつつ、読書範囲検出装置について説明する。
この読書範囲検出装置は、画面に表示された文書をユーザが読むときの視線の移動パターンの特性に基づいて、明にキャリブレーションのための操作をユーザにさせることなくキャリブレーションを実行して、その文書においてユーザが読んだ範囲を検出する。
【００１６】
最初に、画面に表示された文書を人が読むときの視線の移動パターンの特性について説明する。
図１は、人の視覚における、視軸からの距離に応じた見え方の変化を表す模式図である。図１に示したイメージ１０１は、人が一行のテキスト１００の中心に視線を固定した状態で人が知覚できるイメージを表す。一般に、人の視覚では、網膜の中心窩に相当する中心視覚において最も解像度が高く、中心窩から離れるにつれて解像度は急激に低下する。そして中心視覚は、約１〜２°程度しかない。そのため、視線が固定された状態では、イメージ１０１に示されるように、人は、一般に、視線が固定された位置１０２を中心とする４〜５文字程度しかはっきりと視認することができない。一方、人が文書を読む際、文書を理解するのに要する解像度は高く、一般に、中心視覚が用いられる。そこで、画面に表示された文書を人が読むとき、人は目を移動させる。その移動には、眼を特定の目標に固定させた固視（fixations）と、眼を素早く直線的に移動させる微動(saccades)とが含まれる。文書が複数の行を含む場合、各行について、人は、固視と、主として文書の読むべき方向（以下、前方方向と呼ぶ）への微動（ただし、読むべき方向と逆方向（以下、後退方向と呼ぶ）への微動も一般的に行われる）とを連続して行うことでその行を読む。また、文書を読む際に観察される代表的な視線の移動パターンでは、読む行が切り替えられる際に、画面上での視線位置が後退方向へ大きく移動する。なお、そのような、読む行の切替に相当する、視線位置の後退方向への大きな移動の軌跡（第１の軌跡）を、以下では、戻りスイープ（return sweeps）と呼ぶ。
【００１７】
このように、画面に表示された文書を人が読むときの視線の移動パターンでは、行ごとの、一連の固視と前方方向への微動と、行と行の間に相当する戻りスイープとが含まれる。そこで、この読書範囲検出装置は、画面に文書が表示されてから、キャリブレーションされていない、画面上での視線位置を所定周期で取得して、取得した複数の視線位置から、比較的大きな後退方向への視線位置の移動を検出することで戻りスイープを検出する。そしてこの読書範囲検出装置は、検出された時間において、または検出された画面上の位置において隣接する二つの戻りスイープ間の一連の固視と前方方向への微動とを、一つの行のリーディングに相当する視線位置の移動の軌跡（第２の軌跡）を表す注視ラインとして検出する。そしてこの読書範囲検出装置は、検出した注視ラインと戻りスイープの数をカウントし、そのカウント数と、文書中の表示されている部分に含まれる行数とを比較することで、ユーザがその文書をどこまで読んだかを特定する。さらに、この読書範囲検出装置は、画面上での視線位置の分布の重心、幅、及び、各注視ラインの傾きなどに基づいて、画面上での視線位置を位置補正するための位置補正パラメータを算出する。そしてこの読書範囲検出装置は、その位置補正パラメータに従って取得したそれぞれの画面上での視線位置を補正することで、画面上での視線位置をパッシブに、すなわち、明にキャリブレーションのための操作をユーザにさせることなく、キャリブレーションする。
【００１８】
なお、本実施形態では、画面に表示される文書は、英文のように、テキストの各行が水平方向となり、前方方向が左から右へ向かう方向となる文書とする。しかし、画面に表示される文書は、これに限定されず、前方方向が右から左へ向かう方向となる文書であってもよく、あるいは、縦書きされた日本語のように、テキストの各行が画面上で垂直方向となり、前方方向が上から下へ向かう方向となる文書であってもよい。テキストの各行が画面上で垂直方向となる場合には、以下の説明において水平方向と垂直方向とを逆にすればよい。
【００１９】
以下の説明において、テキストの行の方向を、テキスト方向と呼ぶ。また、画面上での視線の位置を、単に視線位置と呼ぶ。
【００２０】
また、本実施形態では、読書範囲検出装置は、携帯電話機、スマートフォンあるいはタブレットといった携帯端末に実装されるものとする。しかし、読書範囲検出装置は、固定設置されるコンピュータ、電子情報ボードあるいはデジタルサイネージなどに実装されてもよい。あるいは、読書範囲検出装置は、仮想面あるいは物理的な面に文書が表示され、かつ、視線検出デバイスが文書が表示される面をカバーする他の機器に実装されてもよい。そのような機器には、例えば、TVセット、車両のフロントガラス、プロジェクタ、及び、眼鏡式のヘッドマウントディスプレイが含まれる。
【００２１】
図２は、一つの実施形態による読書範囲検出装置を搭載した携帯端末のハードウェア構成図である。携帯端末１は、ユーザインターフェース２と、メモリ３と、制御部４と、筺体５と、視線検出デバイス６とを有する。さらに携帯端末１は、他の機器と無線通信回線または有線通信回線を介して通信するための通信回路（図示せず）を有していてもよい。なお、図２は、携帯端末１が有する構成要素を説明するための図であり、携帯端末１の各構成要素の実際の配置を表した図ではないことに留意されたい。
【００２２】
ユーザインターフェース２は、表示部の一例であり、例えば、タッチパネルディスプレイを有する。そしてユーザインターフェース２は、筺体５の正面において、ユーザインターフェース２の画面が、筺体５の正面に対向するユーザを向くように配置される。そしてユーザインターフェース２は、例えば、様々な文書、アイコンまたは操作ボタンを制御部４からの制御信号に応じて表示する。またユーザインターフェース２は、表示されたアイコンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部４へ出力する。
なお、ユーザインターフェース２は、液晶ディスプレイといった表示装置と、キーパッドなどの複数の操作スイッチを有していてもよい。
【００２３】
メモリ３は、例えば、読み書き可能な不揮発性の半導体メモリを有する。そしてメモリ３は、制御部４上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。またメモリ３は、ユーザインターフェース２の画面に表示中のアイコンまたは操作ボタンの領域を表す情報を記憶する。
【００２４】
さらに、メモリ３は、ユーザの視線位置を検出するために利用される各種のデータを記憶する。例えば、メモリ３は、プルキンエ像の重心に対する瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブル、視線方向と視線位置との関係を表す参照テーブルを記憶する。さらに、メモリ３は、表示される文書の画面上での位置、水平方向及び垂直方向のサイズ、行数などを記憶する。さらにまた、メモリ３は、視線検出デバイス６から得られたユーザの眼の画像、あるいは、その画像に基づいて検出されたキャリブレーション前の生の視線位置の測定点の座標及び取得順番などを記憶する。
【００２５】
視線検出デバイス６は、ユーザインターフェース２の周囲に配置され、ユーザの視線方向を表す測定データを所定の周期（例えば、1ミリ秒〜33ミリ秒）ごとに生成する。そして視線検出デバイス６は、生成した測定データを制御部４へ出力する。
例えば、視線検出デバイス６は、赤外発光ダイオードと、CCDあるいはC-MOSといった赤外線に感度を持つイメージセンサとを有する。そして視線検出デバイス６は、測定データとして、ユーザの眼の瞳孔と、赤外発光ダイオードから発した光が角膜で反射された角膜反射像（以下、プルキンエ像と呼ぶ）とが表された画像をイメージセンサにより生成する。
【００２６】
制御部４は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部４は、携帯端末１の各部と信号線を介して接続されており、携帯端末１全体を制御する。例えば、制御部４は、ユーザインターフェース２から受け取った操作信号と実行中のアプリケーションプログラムに応じた処理を実行する。
また制御部４は、読書範囲検出装置としても機能する。制御部４は、ユーザインターフェース２の画面に文書が表示されている間、読書範囲検出処理を実行する。
【００２７】
図３は、制御部４の読書範囲検出処理に関する機能ブロック図である。制御部４は、表示制御部１０と、視線位置検出部１１と、戻りスイープ検出部１２と、注視ライン検出部１３と、既読割合判定部１４と、位置補正パラメータ算出部１５とを有する。
制御部４が有するこれらの各部は、制御部４が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールである。また制御部４が有するこれらの各部は、それぞれ、制御部４が有するプロセッサとは別個の回路として形成されてもよい。あるいは制御部４が有するこれらの各部は、その各部に対応する回路が集積された一つまたは複数の集積回路として、制御部４が有するプロセッサとは別個に携帯端末１に実装されてもよい。
【００２８】
表示制御部１０は、例えば、ユーザインターフェース２からの操作信号に応じて、メモリ３に記憶されている、電子データ化されている文書をユーザインターフェース２の画面に表示させる。その際、表示制御部１０は、文書のうち、現時点で表示されている範囲に含まれる行数、その範囲の画面上での重心及びテキスト方向（この例では、水平方向）の幅をメモリ３に保存する。なお、以下では、便宜上、ユーザインターフェース２の画面に表示されている文書を、単に表示文書と呼ぶ。
【００２９】
視線位置検出部１１は、視線検出デバイス６から制御部４が画像を取得する度に、その画像上でユーザの眼が写っている領域を検出し、眼が写っている領域内でプルキンエ像を検出する。
眼に相当する画素の輝度は、眼の周囲に相当する画素の輝度と大きく異なる。そこで視線位置検出部１１は、画像内の各画素に対して、例えば、Sobelフィルタを用いて垂直方向の近傍画素間差分演算を行って垂直方向に輝度が変化するエッジ画素を検出する。そして視線位置検出部１１は、例えば、エッジ画素が略水平方向に眼の大きさに相当する所定数以上連結された２本のエッジ線で囲まれた領域を眼の領域とする。
あるいは、視線位置検出部１１は、画像上の眼の像を表すテンプレートと、画像とのテンプレートマッチングにより、画像内でテンプレートに最も一致する領域を検出し、その検出した領域を眼の領域としてもよい。
【００３０】
さらに、視線位置検出部１１は、眼の領域内で瞳孔が写っている領域を検出する。本実施形態では、視線位置検出部１１は、瞳孔に相当するテンプレートと眼の領域との間でテンプレートマッチングを行い、眼の領域内でテンプレートとの一致度が最も高くなる領域を検出する。そして視線位置検出部１１は、一致度の最高値が所定の一致度閾値よりも高い場合、その検出した領域に瞳孔が写っていると判定する。なお、テンプレートは、瞳孔の大きさに応じて複数準備されてもよい。この場合、視線位置検出部１１は、各テンプレートと眼の領域とのテンプレートマッチングをそれぞれ実行し、一致度の最高値を求める。そして一致度の最高値が一致度閾値よりも高い場合、視線位置検出部１１は、一致度の最高値に対応するテンプレートと重なった領域に瞳孔が写っていると判定する。なお、一致度は、例えば、テンプレートとそのテンプレートと重なった領域との正規化相互相関値として算出される。また一致度閾値は、例えば、0.7または0.8に設定される。
【００３１】
また瞳孔が写っている領域の輝度は、その周囲の領域の輝度よりも低く、瞳孔は略円形である。そこで視線位置検出部１１は、眼の領域内で、同心円状に半径の異なる２本のリングを設定する。そして視線位置検出部１１は、外側のリングに相当する画素の輝度の平均値から内側の画素の輝度の平均値を引いた差分値が所定の閾値よりも大きい場合、その内側のリングで囲まれた領域を瞳孔領域としてもよい。また視線位置検出部１１は、内側のリングで囲まれた領域の平均輝度値が所定の閾値以下であることを、瞳孔領域として検出する条件に加えてもよい。この場合、所定の閾値は、例えば、眼の領域内の最大輝度値と最小輝度値の差の10％〜20％を、最小輝度値に加えた値に設定される。
視線位置検出部１１は、瞳孔領域に含まれる各画素の水平方向座標値の平均値及び垂直方向座標値の平均値を、瞳孔領域の重心の座標として算出する。
【００３２】
また視線位置検出部１１は、眼の領域内で視線検出デバイス６が有する光源のプルキンエ像を検出する。プルキンエ像が写っている領域の輝度は、その周囲の領域の輝度よりも高く、その輝度値は略飽和している（すなわち、輝度値が、画素値が取り得る輝度の値の略最高値となっている）。また、プルキンエ像が写っている領域の形状は、視線検出デバイス６が有する光源の発光面の形状と略一致する。そこで視線位置検出部１１は、眼の領域内で、光源の発光面の輪郭形状と略一致する形状を持ち、かつ、大きさが異なるとともに中心が一致する２本のリングを設定する。そして視線位置検出部１１は、内側のリングに相当する画素の輝度の平均値である内部輝度平均値から外側の画素の輝度の平均値を引いた差分値を求める。視線位置検出部１１は、その差分値が所定の差分閾値よりも大きく、かつ内側輝度平均値が所定の輝度閾値よりも高い場合、その内側のリングで囲まれた領域をプルキンエ像とする。なお、差分閾値は、例えば、眼の領域内の近傍画素間の差分値の平均値とすることができる。また所定の輝度閾値は、例えば、眼の領域内での輝度値の最高値の80%とすることができる。
なお、視線位置検出部１１は、画像上で瞳孔が写っている領域を検出する他の様々な方法の何れかを用いて、瞳孔が写っている領域を検出してもよい。同様に、視線位置検出部１１は、画像上でプルキンエ像が写っている領域を検出する他の様々な方法の何れかを用いて、視線検出デバイス６の光源のプルキンエ像が写っている領域を検出してもよい。
【００３３】
瞳孔重心及びプルキンエ像の重心を検出すると、視線位置検出部１１は、それらに基づいてユーザの視線方向を検出する。
【００３４】
角膜の表面は略球形であるため、視線方向によらず、視線検出デバイス６が有する光源のプルキンエ像の位置はほぼ一定となる。一方、瞳孔重心は、ユーザの視線方向に応じて移動する。そのため、視線位置検出部１１は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を求めることにより、ユーザの視線方向を検出できる。
本実施形態では、視線位置検出部１１は、プルキンエ像の重心を基準とする瞳孔重心の相対的な位置を、例えば、瞳孔重心の水平方向座標及び垂直方向座標からプルキンエ像の重心の水平方向座標及び垂直方向座標を減算することにより求める。そして視線位置検出部１１は、瞳孔重心の相対的な位置とユーザの視線方向との関係を表す参照テーブルを参照することにより、ユーザの視線方向を特定する。
【００３５】
視線位置検出部１１は、ユーザの視線方向を検出すると、ユーザの視線方向及び想定されるユーザの眼とユーザインターフェース２間の位置関係に基づいて、ユーザがユーザインターフェース２の画面上でのユーザの視線位置を検出する。
【００３６】
本実施形態では、視線位置検出部１１は、ユーザの眼とユーザインターフェース２間の想定される位置関係における、ユーザの視線方向と視線位置との関係を表す参照テーブルを参照することにより、ユーザの視線位置の測定点を求める。そして視線位置検出部１１は、ユーザの視線位置の測定点の画面上での座標を、その取得順序とともにメモリ３に保存する。なお、視線位置の測定点の取得順序は、その順序を表す番号で表れされてもよく、あるいは、その測定点を求めるために利用した、ユーザの眼の画像の取得時刻で表されてもよい。なお、視線位置検出部１１により求められた視線位置の測定点は、キャリブレーション前の生の視線位置の計測データである。
【００３７】
戻りスイープ検出部１２は、ユーザインターフェース２の画面に文書が表示された後に、互いに異なるタイミングで取得された、複数のユーザの視線位置の測定点に基づいて戻りスイープを検出する。
【００３８】
上述したように、戻りスイープは、ある行の最後から次の行の先頭へユーザが視線を移動させるときのユーザの視線の軌跡に相当する。そこで、戻りスイープ検出部１２は、取得順序で連続し、かつ後退方向へ移動する視線位置の測定点の組のうち、移動量が所定の閾値以上となる視線位置の測定点の組を、戻りスイープ候補として検出する。なお、所定の閾値は、例えば、画面上での文書の後退方向に沿った幅に0.68〜0.75といった値、例えば、0.7を乗じた値に設定される。
【００３９】
図４は、視線位置の測定点群の一例を示す図である。図４において、表示文書４００に対する、それぞれの視線位置の測定点４０１に示された番号は取得順序を表す。この例では、１４番目の測定点から１７番目の測定点までと、３４番目の測定点から３７番目の測定点まで、後退方向、すなわち左側へ向けて視線位置が大きく移動している。そして、１４番目〜１７番目の測定点間の移動量、及び、３４番目〜３７番目の測定点の移動量は、文書の幅cに0.7を乗じた値を超えている。そのため、１４番目〜１７番目の測定点の組、及び、３４番目〜３７番目の測定点の組が戻りスイープの候補となる。
【００４０】
一般的に、各行の長さはほぼ同じであるため、それぞれの戻りスイープにおける、視線位置の移動量もほぼ等しくなると想定される。そこで、戻りスイープ検出部１２は、検出された戻りスイープの候補のそれぞれの視線位置の移動量を互いに比較する。そして戻りスイープ検出部１２は、それぞれの戻りスイープの候補についての視線位置の移動量の比が所定値（例えば、1.2〜1.3）未満である場合、各戻りスイープの候補を有効な戻りスイープと判定する。
【００４１】
例えば、表示文書４００を表示している画面に対してn個（nは2以上の整数）の戻りスイープの候補が検出されており、各候補についての視線位置の移動量がl1〜lnであるとする。この場合、戻りスイープ検出部１２は、二つの戻りスイープの候補の組のそれぞれについての視線位置の移動量の比(Rij=li/lj)(i,j=1,2,..,n、ただしi≠j)を算出する。その際、戻りスイープ検出部１２は、各組について、候補の一方を分母とし、他方を分子としたときの比だけでなく、候補の一方を分子とし、他方を分母としたときの比も算出する。そして全ての比Rijが所定値Th未満である場合、戻りスイープ検出部１２は、各戻りスイープの候補を有効な戻りスイープと判定する。
【００４２】
一方、何れかの比Rkm(k,m∈{1,2,..,n}、ただしk≠m)が所定値Th以上となる場合、戻りスイープ検出部１２は、k番目またはm番目の候補を除外した残りの候補についての視線位置の移動量の比が所定値Th未満であれば、残りの候補を戻りスイープと判定してもよい。さらに、戻りスイープ検出部１２は、残りの候補の数が所定数になるまで、上記の処理を繰り返してもよい。
【００４３】
なお、戻りスイープ検出部１２は、上記の比による判定の代わりに、二つの戻りスイープの候補の組のそれぞれについての視線位置の移動量の差の絶対値を算出してもよい。そして戻りスイープ検出部１２は、その差の絶対値の最大値が所定値未満となる場合に、各戻りスイープの候補を有効な戻りスイープと判定してもよい。
【００４４】
さらに、戻りスイープ検出部１２は、上記の比または差による判定に加えて、戻りスイープの候補のそれぞれについて、テキスト方向における位置を求め、候補間でのその位置のずれ量が所定値以下となる場合に、各候補を有効な戻りスイープであると判定してもよい。この場合、例えば、戻りスイープ検出部１２は、戻りスイープの候補のそれぞれについて、その候補に対応する視線位置の測定点のうち、両端に位置する二つの測定点の中点を、テキスト方向におけるその候補の位置とすればよい。
【００４５】
なお、変形例によれば、戻りスイープ検出部１２は、サポートベクトルマシンといった、予め学習された統計的識別器を利用して戻りスイープの候補が有効な戻りスイープか後退方向の微動かを判定してもよい。この場合、戻りスイープ検出部１２は、例えば、その統計的識別器に、戻りスイープの候補に対応する各測定点間の位置差を入力することで、判定結果を得ることができる。
【００４６】
戻りスイープ検出部１２は、検出した戻りスイープのそれぞれについて、その戻りスイープの順序及びその戻りスイープに対応する視線位置の各測定点の取得順序をメモリ３に保存する。
【００４７】
注視ライン検出部１３は、連続する二つの戻りスイープの組のそれぞれについて、その二つの戻りスイープ間で注視ラインを検出する。
【００４８】
上述したように、戻りスイープは、読む行の切替に相当するユーザの視線の軌跡に相当するので、画面上で検出された連続する二つの戻りスイープの間に、ユーザが１行分のテキストを読む際の視線の軌跡が存在すると想定される。また、そのような視線の軌跡では、テキストに含まれる個々の単語あるいは単語間の空白を注視する際の固視と、前方方向への微動が含まれると想定される。
【００４９】
そこで、注視ライン検出部１３は、連続する二つの戻りスイープの組のそれぞれについて、その二つの戻りスイープ間に含まれる視線位置の測定点の組を、注視ラインの候補とする。
【００５０】
再度図４を参照すると、１４番目〜１７番目の視線位置の測定点の組と、３４番目〜３７番目の視線位置の測定点の組とが、それぞれ、戻りスイープとして検出されている。すなわち、１４番目〜１７番目の視線位置を含む戻りスイープの組と３４番目〜３７番目の視線位置を含む戻りスイープとは、隣接している関係にある。そこで１番目〜１４番目の視線位置の測定点の組、１７番目〜３４番目の視線位置の測定点の組、及び、３７番目〜４９番目の視線位置の測定点の組が、それぞれ、注視ラインの候補として抽出される。
【００５１】
注視ライン検出部１３は、注視ラインの候補ごとに、ユーザが１行のテキストを読む際の視線の軌跡を表す特徴量を算出する。例えば、注視ライン検出部１３は、注視ラインの候補に含まれる、連続する二つの視線位置の測定点の組ごとに、視線の移動方向及び移動量を算出する。そして注視ライン検出部１３は、視線の移動方向が前方方向であり、かつ、移動量が所定の閾値よりも大きい視線位置の測定点の組を、前方方向への微動(forward saccade)として検出する。なお、所定の閾値は、例えば、100°/secに相当する移動量とする。
【００５２】
注視ライン検出部１３は、注視ラインの候補ごとに、検出された前方方向への微動の数をカウントする。そして注視ライン検出部１３は、注視ラインの候補ごとに、その候補に含まれる、視線位置の測定点の総数に対する、前方方向への微動の数の比が所定の比率（例えば、60%）よりも高い場合、注視ラインの候補を注視ラインと判定する。
【００５３】
変形例によれば、注視ライン検出部１３は、移動量が所定の閾値以下となる、連続する二つの視線位置の測定点の組を固視として検出してもよい。そして注視ライン検出部１３は、注視ラインの候補ごとに、検出された前方方向への微動の数だけでなく、検出された固視の数をカウントしてもよい。注視ライン検出部１３は、注視ラインの候補ごとに、その候補に含まれる、視線位置の測定点の総数に対する、検出された前方方向への微動の数と固視の数の合計の比が所定の比率（例えば、80%）よりも高い場合、注視ラインの候補を注視ラインと判定してもよい。
【００５４】
他の変形例によれば、注視ライン検出部１３は、a)通常の読書時の挙動、b)斜め読み、c)精読、d)ランダムに注視のそれぞれに応じた一連の固視と微動を識別する統計的識別器を用いて、注視ラインの候補が何れに該当するかを判定してもよい。この場合、注視ライン検出部１３は、例えば、注視ラインの候補について検出された固視と微動の組をその並び順に従ってその統計的識別器に入力して、a)〜d)の何れに該当するかの判定結果を得ることができる。そして注視ライン検出部１３は、注視ラインの候補がa)〜c)の何れかに該当すると判定された場合に、その候補を有効な注視ラインとしてもよい。なお、そのような識別器として、例えば、a)〜d)のそれぞれについての代表的な固視と微動の組み合わせのパターンを表す複数の学習サンプルを用いて学習された、多層パーセプトロンといったニューラルネットワークあるいは隠れマルコフモデルが利用可能である。
【００５５】
注視ライン検出部１３は、検出した注視ラインのそれぞれについて、その注視ラインの順序及びその注視ラインに含まれる視線位置の測定点の取得順序をメモリ３に保存する。
【００５６】
既読割合判定部１４は、検出された戻りスイープの数及び注視ラインの数と、画面に表示文書の行数とを比較して、その表示文書における、ユーザが既読した割合を表す既読割合を判定する。
【００５７】
例えば、既読割合判定部１４は、表示文書の行数に対する注視ラインの数の比を、既読割合として算出する。あるいは、既読割合判定部１４は、表示文書の行数に対する、注視ラインの数と戻りスイープの数の多い方との比を、既読割合として算出してもよい。
【００５８】
位置補正パラメータ算出部１５は、ユーザが、表示文書全体を読んだか否か判定する。例えば、位置補正パラメータ算出部１５は、既読割合が100%に達した場合、ユーザが、表示文書全体を読んだと判定する。そしてユーザが、表示文書全体を読んだ場合、位置補正パラメータ算出部１５は、各視線位置の測定点を位置補正するための位置補正パラメータを算出する。
【００５９】
本実施形態では、位置補正パラメータ算出部１５は、各注視ラインについて、その注視ラインに対応する視線位置の測定点の分布を直線近似する。これは、注視ラインは、文書中の一つの行に対応し、文書の一つの行は、一般に直線であるため、ユーザの視線も、基本的にはその直線である行に沿って移動すると想定されるためである。
【００６０】
例えば、位置補正パラメータ算出部１５は、各注視ラインについて、その注視ラインに対応する視線位置の測定点の分布に対して最小二乗法を適用することで、その測定点の分布を直線近似する回帰直線を算出する。そして位置補正パラメータ算出部１５は、各注視ラインについて、テキスト方向（この例では、水平方向）に対する傾き角を算出する。位置補正パラメータ算出部１５は、各注視ラインの傾き角の平均値を、位置補正パラメータ中の回転パラメータとして算出する。
【００６１】
また、位置補正パラメータ算出部１５は、視線位置の測定点の分布の重心を算出する。そして位置補正パラメータ算出部１５は、その重心と、表示文書の重心との差を、位置補正パラメータ中の平行移動パラメータとして算出する。
【００６２】
位置補正パラメータ算出部１５は、ユーザが表示文書全体を読んだときの視線位置の測定点の分布の重心と表示文書の重心とが一致するよう、平行移動パラメータに従って視線位置の各測定点を平行移動する。そして位置補正パラメータ算出部１５は、重心位置合わせ後の視線位置の測定点の分布の重心を回転中心として、回転パラメータで表される回転角だけ、視線位置の各測定点を各注視ラインの傾き角の平均値と逆向きに回転させる。
【００６３】
位置補正パラメータ算出部１５は、重心位置合わせ及び傾き補正後の視線位置の測定点の分布における、テキスト方向に沿った幅に対する、表示文書の幅の比を、位置補正パラメータ中のテキスト方向の拡縮率パラメータとして算出する。位置補正パラメータ算出部１５は、重心位置合わせ後の視線位置の測定点の分布の重心を原点とする。そして位置補正パラメータ算出部１５は、重心位置合わせ及び傾き補正後の視線位置の各測定点について、その測定点と原点間のテキスト方向に沿った距離が、その距離に拡縮率パラメータを乗じた距離となるよう、その測定点をテキスト方向に沿って移動させる。これにより、テキスト方向における、視線位置の分布の幅が表示文書の幅と一致する。以上により、位置補正パラメータ算出部１５は、視線位置の各測定点の位置を、ユーザが表示文書を読む際の視線の軌跡に応じて補正できる。
【００６４】
図５（ａ）〜図５（ｄ）は、図４に示された視線位置の測定点の分布に対応する、測定点の位置補正の説明図である。図５（ａ）〜図５（ｄ）において、各測定点５０１には、その測定点の取得順序が示されている。
【００６５】
図５（ａ）に示されるように、１番目〜１４番目の視線位置の測定点の組、１７番目〜３４番目の視線位置の測定点の組、及び、３４番目〜４９番目の視線位置の測定点の組が、それぞれ、注視ラインgl1〜gl3に対応している。そこで、１番目〜１４番目の視線位置の測定点の組に対して、例えば、最小二乗法を適用することで、注視ラインgl1を直線近似する回帰直線５１１が求められる。同様に、１７番目〜３４番目の視線位置の測定点の組から、注視ラインgl2を直線近似する回帰直線５１２が求められ、３４番目〜４９番目の視線位置の測定点の組から、注視ラインgl3を直線近似する回帰直線５１３が求められる。そして、この例では、テキスト方向である水平方向に対する各回帰直線の傾きα1〜α3が、それぞれ、-15°、-14°、-16°と算出される。したがって、回転パラメータは、-15°となる。
【００６６】
また、図５（ｂ）に示されるように、視線位置の測定点５０１の分布の重心+gと、表示文書の重心+tとの差Δが、平行移動パラメータとして算出される。そして図５（ｃ）に示されるように、重心+gと重心+tとが一致するように、視線位置の各測定点５０１が平行移動パラメータに従って平行移動される。その後に、重心+gを回転中心として、回転パラメータ(-15°)の絶対値だけ、各注視ラインの傾きの平均値と逆向きに、すなわち、回転パラメータの逆向きである+15°だけ、各測定点５０１が回転移動される。
【００６７】
最後に、図５（ｄ）に示されるように、テキスト方向における、平行移動及び回転移動された各測定点５０１の分布の幅が、表示文書５１０のテキスト方向の幅Wと一致するように、視線位置の各測定点５０１の分布がテキスト方向に沿って拡大または縮小される。
【００６８】
図６は、制御部４により実行される、読書範囲検出処理の動作フローチャートである。制御部４は、視線検出デバイス６からユーザの眼を写した画像が得られる度に、下記の動作フローチャートに従って読書範囲検出処理を実行する。
【００６９】
視線位置検出部１１は、視線検出デバイス６から取得した、ユーザの眼を写した画像から、ユーザインターフェース２の画面上の視線位置の測定点を求める（ステップＳ１０１）。そして視線位置検出部１１は、画面上でのその測定点の座標及び取得順序をメモリ３に保存する。
【００７０】
戻りスイープ検出部１２は、表示文書の表示開始から、それまでに得られた視線位置の測定点の分布から、複数の戻りスイープを検出する（ステップＳ１０２）。そして、注視ライン検出部１３は、隣接する二つの戻りスイープの組のそれぞれについて、その二つの戻りスイープ間の視線位置の測定点から注視ラインを検出する（ステップＳ１０３）。
【００７１】
既読割合判定部１４は、表示文書の行数に対する、注視ラインの数または戻りスイープの数の比に基づいて、表示文書中の既読割合を求める（ステップＳ１０４）。
【００７２】
位置補正パラメータ算出部１５は、既読割合に基づいて、ユーザが表示文書全体を読んだか否か判定する（ステップＳ１０５）。ユーザが表示文書全体を読んでいない場合（ステップＳ１０５−Ｎｏ）、制御部４は、読書範囲検出処理を終了する。
【００７３】
一方、ユーザが表示文書全体を読んでいる場合（ステップＳ１０５−Ｙｅｓ）、位置補正パラメータ算出部１５は、各注視ラインについて、その注視ラインに対応する視線位置の測定点の分布を近似する回帰直線をもとめる。そして補正パラメータ算出部１７は、テキスト方向に対する、各注視ラインに対応する回帰直線の傾きの平均値を回転パラメータとして算出する（ステップＳ１０６）。
【００７４】
また、位置補正パラメータ算出部１５は、視線位置の測定点の分布の重心と、表示文書の重心間の差を、平行移動パラメータとして算出する（ステップＳ１０７）。そして位置補正パラメータ算出部１５は、視線位置の測定点の分布の重心と、表示文書の重心とが一致するように、平行移動パラメータを用いて、視線位置の各測定点を平行移動する（ステップＳ１０８）。また、位置補正パラメータ算出部１５は、回転パラメータを用いて、視線位置の測定点の分布の重心を回転中心として、各注視ラインに対応する回帰直線の傾きの平均値と逆向きに、視線位置の各測定点を回転させる（ステップＳ１０９）。そして位置補正パラメータ算出部１５は、テキスト方向における、視線位置の測定点の分布の幅と、表示文書の幅とが一致するように、テキスト方向に沿って視線位置の測定点の分布を拡大または縮小する（ステップＳ１１０）。そして制御部４は、読書範囲検出処理を終了する。
【００７５】
以上に説明してきたように、この読書範囲検出装置は、表示文書をユーザが読む間に、視線位置の測定点を所定周期で取得する。そして読書範囲検出装置は、互いに異なるタイミングで取得された視線位置の測定点の分布に基づいて、読む行の切替に相当する視線の軌跡である戻りスイープと、一つの行のリーディングに相当する視線の軌跡である注視ラインとを検出する。したがって、この読書範囲検出装置は、事前のキャリブレーションを必要とせずに、表示文書における、ユーザが読書した範囲、及び、既読割合を求めることができる。さらに、この読書範囲検出装置は、注視ラインと、表示文書の位置関係に応じて、視線位置の各測定点を位置補正できる。すなわち、この読書範囲検出装置は、ユーザが表示文書を読む際に取得された視線位置の測定点の分布から、視線位置をパッシブにキャリブレーションできる。
【００７６】
変形例によれば、制御部４は、位置補正された視線位置の測定点の分布に基づいて、ユーザの挙動を判定してもよい。例えば、制御部４は、位置補正された視線位置の測定点の分布に基づいて、ユーザが表示文書を精読したか否かを判定してもよい。この場合、制御部４は、例えば、特許文献３（特開２０１５−３２２７３号公報）に開示されているように、位置補正された視線位置の測定点の分布から、ユーザの視線の移動方向を検出し、視線の移動方向が表示文書を読むべき方向から反転した回数を計測する。そして制御部４は、その反転した回数と、表示文書の特徴から定まる精読時に満足すべき反転回数とに基づいて、ユーザが表示文書を精読したか否かを判定すればよい。
【００７７】
また他の変形例によれば、制御部４は、表示文書が変更される度に、上記の処理を行って位置補正パラメータを算出してもよい。そして制御部４は、位置補正パラメータを算出する度に、位置補正パラメータをメモリ３に追加保存してもよい。また制御部４は、位置補正パラメータが算出される度に、その位置補正パラメータの算出に利用された視線位置の測定点ごとに、補正前の測定点の位置と補正後の測定点の位置の差を表す補正ベクトルを算出してもよい。この補正ベクトルの集合である補正ベクトルフィールドは、所定の精度で計算され、算出される補正パラメータの数が増えるにつれて、粗いグリッドから高精細なグリッドに向上する。そして制御部４は、この補正ベクトルフィールドを利用して、文書以外のコンテンツがユーザインターフェース２の画面に表示されている場合でも、視線位置の測定点の位置を補正してもよい。すなわち、制御部４は、視線位置の測定点に対して、補正ベクトルフィールド中で最も近い位置の補正ベクトルを利用して、その測定点の位置を補正すればよい。
【００７８】
また、文書によっては、制御部４は、文書全体を一度にユーザインターフェース２の画面に表示できないことがある。そこで他の変形例によれば、文書のうち、ユーザインターフェース２の画面に実際に表示されている部分が変わる度に、制御部４は、上記の処理を実行して既読割合を算出することで、文書全体に対する既読割合を算出してもよい。この場合、表示制御部１０は、例えば、スクロール操作といった、文書中の表示されている部分を変更する操作が行われる度に、実際に表示されている部分を特定すればよい。そして制御部４は、表示されている部分ごとに求めた既読割合を、その表示されている部分に含まれる行数に乗じることで、表示されている部分についてユーザが読んだ行数を求め、その行数の合計を算出する。なお、表示されている部分が変更される前と変更された後において、表示されている部分の一部が重なっている場合には、制御部４は、その重なっている部分に含まれる、ユーザが読んだ行数を、行数の合計から減らしてもよい。
そして制御部４は、文書全体での行数に対する、ユーザが読んだ行数の合計の比を、文書全体に対する既読割合として算出する。
【００７９】
さらに他の変形例によれば、文書が他の装置から得られている場合、制御部４は、メモリ３に、その文書の発信源となる装置を識別する情報、例えば、メールアドレスあるいはIPアドレスとともに、その文書をメモリ３に保存してもよい。そして制御部４は、その文書について既読割合が求められた場合、その文書の発信源に既読割合を通知してもよい。例えば、制御部４は、文書の表示を終了した時点、あるいは、文書表示の開始から一定時間（例えば、5分）が経過する度に、その文書における既読割合を、その文書の発信源へ通知してもよい。例えば、文書が電子メールであり、その文書の発信源の識別情報がメールアドレスである場合、制御部４は、通信回路（図示せず）を介して、既読割合を記載した電子メールをその発信源となる装置へ返信してもよい。
【００８０】
図７は、この変形例による、文書の発信源となる装置の画面の一例を示す図である。装置７００の画面には、その装置７００が送信したメールのリスト７０１が表示されている。そしてリスト７０１において、各メールの名称の左側に、送信相手から返信されてきた、既読割合を表すアイコン７０２が表示されている。これにより、装置７００のユーザは、個々のメールを開かずとも、送信相手がそのメールをどの程度読んだかを視覚的に知ることができる。また、一つのメールが複数の送信先に送られている場合、そのメールを選択することで、装置７００の画面に、送信先ごとの既読割合が表示されてもよい。
【００８１】
あるいは、文書がウェブページ上の文書であり、その文書の発信源であるウェブサイトの識別情報がそのウェブサイトのIPアドレスであるとする。この場合、制御部４は、通信回路（図示せず）を介して、既読割合を表すパケットを、そのIPアドレスを持つ装置へ送信してもよい。
【００８２】
また他の変形例によれば、制御部４は、既読割合に応じたメッセージをユーザインターフェース２の画面に表示させたり、あるいは音声にてユーザに通知してもよい。例えば、文書が有料である場合、メモリ３に、その文書とともに、無料で読める既読割合の上限値が予め記憶される。そして制御部４は、文書全体に対する既読割合がその上限値に達した時点で、「これ以上は有料です」などのメッセージを画面に表示させてもよい。あるいは、メモリ３に、既読割合と課金する金額との関係を表すテーブルが予め保存されていてもよい。この場合、制御部４は、そのテーブルを参照することで、既読割合に応じた課金額をもとめ、その課金額を画面に表示させてもよい。
【００８３】
さらに他の変形例によれば、制御部４は、ユーザが読んでいる部分を表すマークをユーザインターフェース２の画面に表示させてもよい。
【００８４】
図８は、この変形例による、制御部４の機能ブロック図である。制御部４は、表示制御部１０と、視線位置検出部１１と、戻りスイープ検出部１２と、注視ライン検出部１３と、既読割合判定部１４と、位置補正パラメータ算出部１５と、先頭位置取得部１６とを有する。この変形例による制御部４は、上記の実施形態による制御部４と比較して、先頭位置取得部１６を有する点と、表示制御部１０の処理の一部が異なる。そこで以下では、先頭位置取得部１６及び表示制御部１０について説明する。
【００８５】
先頭位置取得部１６は、表示文書中でユーザが読み始めた位置である先頭位置を取得する。例えば、先頭位置取得部１６は、ユーザインターフェース２を介した、先頭位置を指定するユーザの操作により先頭位置を取得する。あるいは、先頭位置取得部１６は、文書中で表示されている部分を変更する操作、例えば、スクロール操作またはべーじめくり操作がユーザインターフェース２を介して行われたときに、その変更において移動した行数を取得する。そして先頭位置取得部１６は、変更操作前の先頭位置に、その移動した行数を加算することで、変更操作後における先頭位置を取得してもよい。あるいは、先頭位置取得部１６は、変更操作前の先頭位置に既読割合に応じた行数を加算した位置に相当する行に対応する、変更操作後の位置を先頭位置としてもよい。これにより、先頭位置取得部１６は、変更操作が行われる度に、自動的に先頭位置を特定できる。なお、この場合、先頭位置取得部１６は、一番最初にその文書が表示されるときの先頭位置を、文書全体での先頭行としてもよい。あるいは、先頭位置取得部１６は、変更操作後における、画面の上端に位置する行を先頭位置としてもよい。
先頭位置取得部１６は、文書中での先頭位置を表す情報をメモリ３に保存する。
【００８６】
制御部４は、先頭位置取得部１６が先頭位置を取得した後に、視線位置の測定点が得られる度に上記の実施形態による処理を行って、戻りスイープ及び注視ラインを検出する。そして制御部４は、検出された注視ラインの行数を表示制御部１０へわたす。
【００８７】
表示制御部１０は、先頭位置から、検出された注視ラインの数または戻りスイープの数のうち、多い方だけ下方へ移動した行までの範囲を、ユーザが既読した範囲とする。あるいは、表示制御部１０は、先頭位置から、検出された注視ラインの数だけ下方へ移動した行までの範囲を、ユーザが既読した範囲としてもよい。そして表示制御部１０は、既読の範囲が未読の範囲とが識別されるように、文書表示を制御する。例えば、表示制御部１０は、ユーザが未読の範囲に含まれる各行、あるいは、未読の範囲内の先頭の行をハイライト表示する。あるいは、表示制御部１０は、既読の範囲に含まれる各行の文字と背景とのコントラストを、ユーザが未読の範囲に含まれる各行の文字と背景とのコントラストよりも低下させる。
【００８８】
図９は、この変形例による、ユーザインターフェースの画面上の文書表示の一例を示す図である。画面２ａにおいて、既読の行９０１は、未読の行９０２よりもコントラストが低くなるように文書が表示されている。
【００８９】
この変形例によれば、制御部４は、ユーザに対して既読の範囲を視覚的に知らせることで、ユーザが表示文書を読むことをサポートできる。
【００９０】
なお、制御部４は、携帯端末１に表示されている文書と同じ文書を表示する、他の機器へ、先頭位置と注視ラインの数及び戻りスイープの数を表す情報を、通信回路（図示せず）を介して通知してもよい。そしてその情報を受け取った他の機器は、その情報に含まれる先頭位置と注視ラインの数及び戻りスイープの数に基づいて、上記の表示制御部１０の処理を実行してもよい。この場合、携帯端末１のユーザ（例えば、教師）が、講義のテキストといった文書をどこまで読んだかを、他の機器のユーザ（例えば、生徒）に対して視覚的に知らせることが可能となる。
【００９１】
また、この変形例によれば、位置補正パラメータ算出部１５は省略されてもよい。あるいは、位置補正パラメータ算出部１５は、先頭位置取得部１６により、表示文書中の先頭位置が取得されると、位置補正パラメータ算出処理を実行してもよい。この場合、位置補正パラメータ算出部１５は、表示文書全体の重心の代わりに、その先頭位置から既読範囲に含まれる表示文書の重心を用いて平行移動パラメータを算出してもよい。
【００９２】
また、上記の実施形態及び変形例による制御部の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な記録媒体に記録された形で提供されてもよい。
【００９３】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００９４】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出する第１の軌跡検出部と、
隣接する二つの前記第１の軌跡の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する第２の軌跡検出部と、
を有する読書範囲検出装置。
（付記２）
前記文書に含まれるテキストの行数に対する、前記第１の軌跡の数及び前記第２の軌跡の数の少なくとも一方の比に基づいて、ユーザが前記文書を読んだ割合を判定する既読割合判定部をさらに有する、付記１に記載の読書範囲検出装置。
（付記３）
前記検出された第２の軌跡のそれぞれに基づいて、前記複数の測定点の分布が前記画面上の前記文書のうちのユーザが読んだ範囲と一致するように前記複数の測定点の位置を補正する位置補正パラメータを算出する位置補正パラメータ算出部をさらに有する、付記１に記載の読書範囲検出装置。
（付記４）
前記位置補正パラメータ算出部は、前記検出された第２の軌跡のそれぞれについて、前記複数の測定点のうちの当該第２の軌跡に対応する測定点を直線近似して得られた線の前記テキストの行に対する傾き角を算出し、前記検出された第２の軌跡のそれぞれの前記傾き角の平均値を、前記位置補正パラメータのうちの回転量を規定する回転パラメータとして算出する、付記３に記載の読書範囲検出装置。
（付記５）
前記位置補正パラメータ算出部は、前記複数の測定点の第１の重心と、前記画面上の前記文書の第２の重心との差を、前記位置補正パラメータのうちの平行移動量を規定する平行移動パラメータとして算出する、付記３または４に記載の読書範囲検出装置。
（付記６）
前記位置補正パラメータ算出部は、前記平行移動パラメータを用いて前記第１の重心と前記第２の重心とが一致するように前記複数の測定点のそれぞれを平行移動し、平行移動後の前記第１の重心を回転中心として、前記回転パラメータを用いて前記傾き角の平均値の逆向きに前記複数の測定点を回転させる、付記５に記載の読書範囲検出装置。
（付記７）
前記位置補正パラメータ算出部は、前記テキストの行に沿った方向における、前記平行移動及び前記回転後の前記複数の測定点の分布の幅と、前記画面上の前記文書の幅とが一致するように、前記テキストの行に沿った方向に沿って前記複数の測定点を移動させる、付記６に記載の読書範囲検出装置。
（付記８）
前記文書に含まれるテキストの行数に対する、前記第１の軌跡の数及び前記第２の軌跡の数の少なくとも一方の比に基づいて、ユーザが前記文書を読んだ割合を判定する既読割合判定部をさらに有し、
前記位置補正パラメータ算出部は、前記割合に基づいてユーザが前記画面上の前記文書を全て読んだと判断した場合に前記位置補正パラメータを算出する、付記３〜７の何れかに記載の読書範囲検出装置。
（付記９）
前記画面上の前記文書のうち、ユーザが読み始める先頭の位置を取得する先頭位置取得部をさらに有し、
前記位置補正パラメータ算出部は、前記先頭の位置が取得されてから前記位置補正パラメータを算出する、付記３〜７の何れかに記載の読書範囲検出装置。
（付記１０）
前記画面上の前記文書のうち、ユーザが読み始める先頭の位置を取得する先頭位置取得部と、
前記先頭の位置と、前記第１の軌跡の数及び前記第２の軌跡の数の少なくとも一方に基づいて、前記文書中で前記ユーザが読み終えた既読範囲を特定し、前記画面において前記既読範囲と前記文書中で前記ユーザが読んでいない未読範囲とが識別されるよう前記画面上に前記文書を表示させる表示制御部とをさらに有する、付記１〜８の何れかに記載の読書範囲検出装置。
（付記１１）
前記第１の軌跡検出部は、前記複数の測定点のうち、前記文書を読むべき方向と逆向きに移動する、連続する測定点の組のうち、当該連続する測定点の組における視線位置の移動量が、前記画面上における、テキストの行に沿った前記文書の幅に応じて定まる所定値以上となる場合、当該連続する測定点の組を前記第１の軌跡の候補として検出し、前記第１の軌跡の候補のそれぞれの長さの差または比が所定値以下となる場合に、前記第１の軌跡の候補のそれぞれを前記第１の軌跡とする、付記１〜１０の何れかに記載の読書範囲検出装置。
（付記１２）
前記第１の軌跡検出部は、前記複数の測定点のうち、前記文書を読むべき方向と逆向きに移動する、連続する測定点の組を前記第１の軌跡の候補として検出し、前記第１の軌跡と前記文書を読むべき方向と逆向きの眼の微動とを識別する識別器を用いて、前記第１の軌跡の候補のそれぞれが前記第１の軌跡か否かを判定する、付記１〜１０の何れかに記載の読書範囲検出装置。
（付記１３）
前記第２の軌跡検出部は、隣接する二つの前記第１の軌跡の組ごとに、当該組の間に取得された、連続する二つの前記測定点の組間の視線位置の移動量及び移動方向に基づいて前記文書を読むべき方向の眼の微動を検出し、検出された眼の微動の数に基づいて当該組の間に前記第２の軌跡が有るか否かを判定する、付記１〜１２の何れかに記載の読書範囲検出装置。
（付記１４）
前記第２の軌跡検出部は、隣接する二つの前記第１の軌跡の組ごとに、当該組の間に取得された、連続する二つの前記測定点の組間の視線位置の移動量及び移動方向に基づいて前記文書を読むべき方向の眼の微動と固視とを検出し、検出された前記眼の微動の数及び前記固視の数に基づいて当該組の間に前記第２の軌跡が有るか否かを判定する、付記１〜１２の何れかに記載の読書範囲検出装置。
（付記１５）
前記第２の軌跡検出部は、隣接する二つの前記第１の軌跡の組ごとに、当該組の間に取得された、連続する二つの前記測定点の組間の視線位置の移動量及び移動方向に基づいて前記文書を読むべき方向の眼の微動と固視とを検出し、前記文書を読むべき方向の眼の微動と固視のパターンに応じて前記第２の軌跡か否かを識別する識別器を用いて、検出された前記微動及び前記固視が前記第２の軌跡か否かを判定する、付記１〜１２の何れかに記載の読書範囲検出装置。
（付記１６）
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出し、
隣接する二つの前記第１の軌跡の組の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する、
ことを含む読書範囲検出方法。
（付記１７）
互いに異なるタイミングにおいて視線検出デバイスにより生成されたユーザの文書を表示した画面に対する視線方向を表すデータから得た、前記画面上のユーザの視線位置の複数の測定点から、読む行の切替に相当する一連の前記測定点の組であるユーザの視線の第１の軌跡を、前記画面上で２か所以上検出し、
隣接する二つの前記第１の軌跡の組の間に取得された前記測定点に基づいて、ユーザが一つの行を読む際のユーザの視線の第２の軌跡を検出する、
ことをコンピュータに実行させるための読書範囲検出用コンピュータプログラム。
【符号の説明】
【００９５】
１    携帯端末
２    ユーザインターフェース
２ａ    画面
３    メモリ
４    制御部
５    筺体
６    視線検出デバイス
１０    表示制御部
１１    視線位置検出部
１２    戻りスイープ検出部（第１の軌跡検出部）
１３    注視ライン検出部（第２の軌跡検出部）
１４    既読割合判定部
１５    位置補正パラメータ算出部
１６    先頭位置取得部
【図１】
0006613865.tif 000002
【図２】
0006613865.tif 000003
【図３】
0006613865.tif 000004
【図４】
0006613865.tif 000005
【図５】
0006613865.tif 000006
【図６】
0006613865.tif 000007
【図７】
0006613865.tif 000008
【図８】
0006613865.tif 000009
【図９】
0006613865.tif 000010