(57)【要約】【課題】視線検出装置が出力する視線位置座標の精度が低い場合であってもユーザが読んだか否かを精度よく判定できるようにする。【解決手段】本情報処理装置は、（Ａ）表示画面上における視線位置を取得して、表示画面上に表示される文章の行数に応じて設定される閾値と、視線位置の移動が改行を表す移動である回数とから、文章を読み終わったか否かを判定する判定部と、（Ｂ）視線位置の移動が改行を表す移動以外の第２の方向に所定距離以上となったことを検出することに応じて、閾値又は回数を変更する変更部とを有する。【選択図】図５
2015056174.tif 000002
【特許請求の範囲】
【請求項１】
表示画面上における視線位置を取得して、前記表示画面上に表示される文章の行数に応じて設定される閾値と、前記視線位置の移動が改行を表す移動である回数とから、前記文章を読み終わったか否かを判定する判定部と、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出することに応じて、前記閾値又は回数を変更する変更部と、
を有する情報処理装置。
【請求項２】
前記変更部が、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出し、且つ当該所定距離以上の視線位置の移動の前、所定時間以内に前記改行を表す移動を検出していた場合、前記閾値又は回数を変更する
請求項１記載の情報処理装置。
【請求項３】
前記第２の方向が、前記文章の読みの方向と同方向であり、
前記所定距離が、前記改行を表す移動を検出する際の閾値に応じて決定される値である
請求項２記載の情報処理装置。
【請求項４】
前記変更部が、
前記視線位置の移動が、前記文章の先頭行方向に所定距離以上となったことを検出すると、前記文章の読みの方向に対して垂直方向の、前記視線位置の移動距離を行数に換算し、換算された前記行数に応じて、前記閾値又は回数を変更する
請求項１記載の情報処理装置。
【請求項５】
前記変更部が、
前記視線位置の第１の移動が、前記文章の読みの方向に対して垂直方向に所定距離以上となったことを検出した後に、前記視線位置の移動が前記文章の読みの方向に所定時間以上継続した状態を検出すると、当該状態へ遷移した際の視線位置が、前記視線位置の第１の移動前の位置よりも前記文章の先頭行側であるか判断し、
前記状態へ遷移した際の視線位置が、前記視線位置の第１の移動前の位置よりも前記文章の先頭行側であると判断された場合には、前記視線位置の第１の移動前の位置と前記状態の視線位置との間の、前記文章の読みの方向に対して垂直方向の距離を行数に換算し、換算された前記行数に応じて、前記閾値又は回数を変更する
請求項１記載の情報処理装置。
【請求項６】
表示画面上における視線位置を取得して、前記表示画面上に表示される文章の行数に応じて設定される閾値と、前記視線位置の移動が改行を表す移動である回数とから、前記文章を読み終わったか否かを判定する処理を実行する間に、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出することに応じて、前記閾値又は回数を変更する
処理を、コンピュータに実行させるためのプログラム。
【請求項７】
表示画面上における視線位置を取得して、前記表示画面上に表示される文章の行数に応じて設定される閾値と、前記視線位置の移動が改行を表す移動である回数とから、前記文章を読み終わったか否かを判定する処理を実行する間に、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出することに応じて、前記閾値又は回数を変更する
処理を含み、コンピュータにより実行される情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書の既読判定技術に関する。
【背景技術】
【０００２】
パソコンやタブレットやスマートフォン端末、キオスク端末といった情報端末の画面描画更新の方法として、ユーザの視線を検出し、その移動によって画面の表示内容を切り替えたり、スクロール操作を行うといった技術が存在している。具体的には、特定の領域等を読んだかどうかを判定してから画面の表示を切り替えたり、画面をスクロールすることにより、ユーザの操作負担を減らすものである。
【０００３】
また、視線による画面制御等を行う技術には以下のようなものもある。すなわち、文章やコンテンツ上に判定領域を設け、その判定領域内にユーザの視線座標が検出された場合にユーザが参照していると判断し、ユーザが参照したパーツの順序が、予め定められた順序と一致した場合、ユーザが読んだと認識し、視線に対応した画面制御等を行うものである。
【０００４】
このような技術の場合、読んだかどうか判定する対象の文章やコンテンツの判定領域上に視線座標が検出されない場合、その文章やコンテンツを読んだかどうか判定することができない。例えば、視線検出装置が出力する視線位置座標の精度が高ければ、図１に示すように、判定領域１０００において、太線で示すように１行目を読んだ後、太点線で示すように２行目を読んだということを把握できる。しかしながら、視線検出装置が出力する視線位置座標の精度が低く、その誤差が文章の文字（各行）やコンテンツの大きさよりも粗い場合がある。このような場合、図２に示すように、視線位置が判定領域１０００に収まらない場合や、行をまたいで移動したりするため、たとえその文章等を読んでいたとしても、視線検出装置が出力する視線位置座標を単純に追うだけでは、文章等を読んだか否かを判定することはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１０７０４８号公報
【特許文献２】特開平８−２２３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、一側面によれば、視線検出装置が出力する視線位置座標の精度が低い場合であってもユーザが読んだか否かを精度よく判定できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、（Ａ）表示画面上における視線位置を取得して、表示画面上に表示される文章の行数に応じて設定される閾値と、視線位置の移動が改行を表す移動である回数とから、文章を読み終わったか否かを判定する判定部と、（Ｂ）視線位置の移動が改行を表す移動以外の第２の方向に所定距離以上となったことを検出することに応じて、閾値又は回数を変更する変更部とを有する。
【発明の効果】
【０００８】
一側面によれば、視線検出装置が出力する視線位置座標の精度が低い場合であってもユーザが読んだか否かを精度よく判定できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、従来技術の問題を説明するための図である。
【図２】図２は、従来技術の問題を説明するための図である。
【図３】図３は、本実施の形態の概要を説明するための図である。
【図４】図４は、本実施の形態の概要を説明するための図である。
【図５】図５は、本実施の形態に係る情報処理装置の機能ブロック図である。
【図６】図６は、判定領域を説明するための図である。
【図７】図７は、視線検出誤差を説明するための図である。
【図８】図８は、判定領域を説明するための図である。
【図９】図９は、判定領域を説明するための図である。
【図１０】図１０は、第３データ格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、第１の実施の形態に係る処理フローを示す図である。
【図１２】図１２は、第１の実施の形態に係る処理フローを示す図である。
【図１３】図１３は、調整処理の処理フローを示す図である。
【図１４】図１４は、第１の実施の形態に係る調整処理を説明するための図である。
【図１５】図１５は、第１の実施の形態に係る調整処理を説明するための図である。
【図１６】図１６は、第２の実施の形態の概要を説明するための図である。
【図１７】図１７は、第２の調整処理の処理フローを示す図である。
【図１８】図１８は、第２の実施の形態に係る調整処理を説明するための図である。
【図１９】図１９は、第３の実施の形態の概要を説明するための図である。
【図２０】図２０は、第３の調整処理の処理フローを示す図である。
【図２１】図２１は、第３の調整処理の処理フローを示す図である。
【図２２】図２２は、第３の実施の形態に係る調整処理を説明するための図である。
【図２３】図２３は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
本実施の形態では、たとえ視線検出装置が出力する視線位置座標の精度が低い場合であっても、図３に示すような（図２と同じ）左から右へ書かれた文章の場合には、次の行を読む際には、矢印１１００のように右から左へ向いた視線の移動が発生することに着目する。このように文章を読む際に生じ且つ改行（行替えとも呼ぶ）に対応する、視線位置の移動の発生を計数することで、判定領域内の文章を読んだか否かを判定する。
【００１１】
しかしながら、実際には、ユーザは、各行を上から順番に読むだけではなく、前の行に戻って読み直したりする。例えば、図４に模式的に示すように、第１行目（ここでは分かりやすくするため文章の行を横線で示す）が読み終わって第２行目に改行し（点線矢印）、第２行目を少し読み進めたところで第１行目の行末付近へ戻る（実線矢印）場合がある。このような読み戻しを行う場合には、点線矢印で表される改行１回分、既読判断においてカウントされる改行検出回数を減ずるか、文章の行数から決定される改行検出回数の閾値を増加させるものとする。
【００１２】
図５に本実施の形態に係る情報処理装置の機能ブロック図を示す。本実施の形態に係る情報処理装置１００は、視線検出部１０１と、表示部１０２と、表示処理部１０３と、第１データ格納部１０４と、第２データ格納部１０５と、視線処理部１０６と、領域設定部１０７と、第３データ格納部１０８と、入力部１０９とを有する。
【００１３】
視線検出部１０１は、表示部１０２における表示画面上の視線位置座標を検出し、第２データ格納部１０５に格納する。本実施の形態では、視線検出部１０１は、従来からあるどのような機構及びアルゴリズムによるものであってもよいので、詳細な説明は省略する。
【００１４】
第１データ格納部１０４は、ユーザが読んだか否かを判断することになった文章のデータと、当該文章に対して設定されている範囲のデータと、設定データとを格納する。第１データ格納部１０４に格納されている文章のデータを、表示処理部１０３が読み出して、表示部１０２に出力する。その際、表示処理部１０３は、上記範囲に対応する、表示部１０２における表示画面上の領域の座標データ及び領域設定部１０７で用いられるデータ（例えば行間長などを含む）を、領域設定部１０７に出力する。
【００１５】
領域設定部１０７は、第１データ格納部１０４に格納されている設定データ等と、表示処理部１０３から出力されるデータとを用いて、以下で説明する第１判定領域及び第２判定領域のデータを生成し、第３データ格納部１０８に格納する。
【００１６】
視線処理部１０６は、変更部１０６１及び判定部１０６２を含む。例えば、入力部１０９からの指示に応じて、判定部１０６２は、第２データ格納部１０５に格納されている視線位置座標から、第３データ格納部１０８に格納されている第１判定領域内の文章を読んだか否かを判定し、判定結果を第３データ格納部１０８に格納すると共に、表示処理部１０３に対して判定結果を表示部１０２へ出力させる。また、変更部１０６１は、図４に模式的に示すような状況が発生したか否かを判断し、このような状況が発生した場合には、改行検出回数の閾値又は改行検出回数を変更する。閾値を変更する場合には、変更部１０６１は、変更後の閾値を第３データ格納部１０８に格納する。
【００１７】
次に、図６を用いて、既読判定処理において用いられる判定領域について説明する。図６は、表示部１０２における表示画面の一例を示している。本表示画面には、文章と、当該文章を読んだことを入力するためのボタン１３００とが含まれる。本実施の形態では、文章に対して、当該文章を読んだか否かを判定すべき範囲が予め設定されている。図６の例では、１行目の左端における「あいう」から、１０行目の右端における「ゆよわ」までの文章が、第１データ格納部１０４に、文章のデータとして格納されると共に、さらにこの文章の範囲が範囲のデータとして格納されている。そして、この範囲の文章を囲う矩形（例えば最小矩形）の領域１３０１が第１判定領域であり、表示処理部１０３は、この第１判定領域を表す座標データ（例えば右上頂点と左下頂点の座標値又は左上頂点と右下頂点の座標値）のデータと、領域設定部１０７における処理で用いられるデータ（例えば、左から右へ読みの方向が設定されている場合には、左端文字及び右端文字の座標値など）を、領域設定部１０７に出力する。そして領域設定部１０７は、領域１３０１に対して、設定データに含まれる視線検出誤差（視線検出部１０１が出力する座標値の誤差（ここでは長さ））を基に領域１３０２を第２判定領域として設定する。判定部１０６２は、この第２判定領域に視線位置座標が入る場合には、視線の移動が、以下に述べる条件を満たすか否かを判定する。尚、図６では、領域１３０２が領域１３０１より広く、内包する表記をしているが、領域１３０２と領域１３０１とが同じ範囲でも良く、あるいは、領域１３０２が領域１３０１を内包しなくても良い。
【００１８】
次に、第２判定領域の設定例について、図７及び図８を用いて説明する。この設定例では、上でも述べた視線検出誤差ｒeを用いた設定方法を採用しており、ユーザがある位置を見た時には、その座標は、図７に示すように、ある位置を中心とし且つ半径ｒeを有する円内に入っている。そこで、図８に示すように、第１判定領域１３１１における右端の文字に真の視線位置が来た場合に、視線検出部１０１からの視線位置座標は、半径ｒeの円１３１４内の任意の位置を表す可能性がある。同様に、第１判定領域１３１１における左端の文字に真の視線位置が来た場合、視線検出部１０１からの視線位置座標は、半径ｒeの円１３１３内の任意の位置を表す可能性がある。
【００１９】
従って、円１３１３の左端から円１３１４の右端までの長さＨmaxを第２判定領域の横方向長さとして採用する。そして、左端文字を横方向の座標を維持したまま最下行に仮に移動させ、右端文字を横方向の座標を維持したまま最上行に仮に移動させた場合（図８では既にこの状態になっている）、移動後の左端文字の中心を中心として用い且つ半径ｒeを有する円１３１３と、移動後の右端文字の中心を中心として用い且つ半径ｒeを有する円１３１４とに外接する矩形を第２判定領域１３１２として採用する。なお、第２判定領域１３１２の四隅については半径ｒeの円弧で丸めても良い。また、第２判定領域１３１２の縦方向の長さＶは、移動後の左端文字の中心を中心として用い且つ半径ｒeを有する円１３１３の下端と、移動後の右端文字の中心を中心として用い且つ半径ｒeを有する円１３１４の上端との間の長さとなる。
【００２０】
そして、第１行目の右端文字を読んだ後、第２行目の左端文字に読み進める場合には、視線検出誤差を考慮すると、最も短い場合でも、視線位置は、第１行目の右端文字に設定された円１３１４の左端から、第２行目の左端文字に設定された円１３１３の右端への長さＨminだけ移動する。最も長い場合には、視線位置は、第２判定領域１３１２の横の長さＨmaxだけ移動する。すなわち、行替えが行われる場合には、視線位置座標は、Ｈmin乃至Ｈmax、第１判定領域内の文章の読みの方向とは反対方向に移動することになる（図８の矢印１３１５）。いずれにせよ、行替えが行われる場合には、第２判定領域１３１２内において視線位置は移動して、最短でもＨminだけ移動することになる。この最短Ｈminの視線位置の移動を検出する。なお、ユークリッド距離で判断しても良いが、例えば読みの方向にｘ軸又はｙ軸の正の方向が設定されていれば、移動元位置のｘ座標値又はｙ座標値と移動先位置のｘ座標値又はｙ座標値の差が移動距離の閾値Ｈmin以上であることを確認するようにしても良い。
【００２１】
なお、第２判定領域１３１２の設定を簡単にするため、第１判定領域１３１１の境界から視線検出誤差ｒeだけ外側に第２判定領域１３１２の境界を設けるようにしても良い。
【００２２】
また、ユーザが一度に読める範囲を表す可読領域を基に移動距離の閾値を設定するようにしても良い。本実施の形態においては、可読領域については、例えば平均的なユーザのデータが第１データ格納部１０４に設定データとして格納されているものとする。
【００２３】
図９に示すように閾値Ｈminを設定する場合もある。すなわち、ユーザが一度に読める範囲を表す可読領域１３２２の右端を第１判定領域１３２１の右端に合わせて配置し、その可読領域１３２２の中心に、視線検出誤差ｒeを半径とする円１３２４を配置する。同様に、可読領域１３２３の左端を第１判定領域１３２１の左端に合わせて配置し、その可読領域１３２３の中心に、視線検出誤差ｒeを半径とする円１３２５を配置する。この円１３２５の右端と円１３２４の左端との距離を、距離の閾値Ｈminとして用いるようにしても良い。
【００２４】
これは、右端文字まで視線を移動させなくても、可読領域が右端文字を含むように視線を移動させれば、右端文字まで読むことができ、同様に、左端文字まで視線を移動させなくても、可読領域が左端文字を含むように視線を移動させれば、左端文字まで読むことができるためである。
【００２５】
次に、第３データ格納部１０８に格納されるデータの一例を図１０に示す。図１０の例では、既読判定すべき文章を含む文書の文書識別子（ＩＤ）と、第１判定領域の範囲を定める座標データ（例えば右上と左下の座標値）と、第２判定領域の範囲を定める座標データ（例えば右上と左下の座標値）と、移動距離の閾値（以下、距離閾値と呼ぶ）と、第１判定領域に含まれる文章の行数と、改行検出回数の閾値（以下、回数閾値と呼ぶ）と、行間の長さと、改行検出回数又は改行検出回数の閾値の変更の有無を表す変更フラグと、既読か否かを表す判定フラグとを含む。第１判定領域に含まれる文章の行数は、第１データ格納部１０４に、文章のデータにおいて行数が含まれる場合もあれば、表示毎に行数が変化する場合には、例えば表示処理部１０３等によって表示されている行数を特定する。行間の長さについては、図４で模式的に示したように、行の中心と行の中心の間の長さＬである。
【００２６】
次に、図１１乃至図１５を用いて、本実施の形態に係る情報処理装置１００の処理内容を説明する。
【００２７】
例えば、入力部１０９によってユーザから、ある文章の表示を指示されると、表示処理部１０３は、その文章のデータを第１データ格納部１０４から読み出し、表示部１０２に表示する。この際、表示処理部１０３は、この文章において既読判定を行うべき範囲を、第１データ格納部１０４に格納されている範囲のデータから特定する（ステップＳ１）。そして、表示処理部１０３は、表示部１０２における表示画面上における第１判定領域の座標データを特定し、領域設定部１０７に出力する。また、領域設定部１０７は、視線検出誤差を考慮して第１判定領域を包含するように第２判定領域を設定して、第１判定領域の座標データ及び第２判定領域の座標データを、第３データ格納部１０８に格納する（ステップＳ３）。領域設定部１０７の処理は、図８を用いて説明したような処理である。また、この処理の際に、図８又は図９に示すように、領域設定部１０７は、移動距離の閾値Ｈminを算出し、第３データ格納部１０８に格納する。
【００２８】
また、領域設定部１０７は、表示処理部１０３から表示画面上の行数（読みの方向の行数。以下、表示行数と呼ぶ）のデータを取得するか、表示行数が固定の場合には第１データ格納部１０４から表示行数のデータを読み出して、第３データ格納部１０８に格納する（ステップＳ５）。本ステップでは、例えば表示処理部１０３から、行間の長さについても取得して、第３データ格納部１０８に格納する。また、領域設定部１０７は、表示行数から初期的な回数閾値を算出して、第３データ格納部１０８に格納する。例えば、本実施の形態では、表示行数−１が回数閾値となる。また、第３データ格納部１０８において、変更フラグ及び判定フラグの初期値はオフとなっている。
【００２９】
ここまでは前処理であるが、入力部１０９によってユーザから、ある文章の表示が指示されると、視線検出部１０１は、視線位置座標を検出し、時刻と共に第２データ格納部１０５に格納する。
【００３０】
そして、判定部１０６２は、第２データ格納部１０５に格納されている、最新の視線位置座標及び１単位時間前の視線位置座標のデータを読み出す（ステップＳ７）。これによって、表示画面上における移動元位置と移動先位置とが特定され、移動距離も算出できる。上でも述べたように、本実施の形態では、移動距離は、ユークリッド距離であってもよいし、読みの方向に平行な軸方向の座標値の差であっても良い。
【００３１】
そして、判定部１０６２は、第３データ格納部１０８に格納されている第２判定領域の座標データ及び距離閾値に基づき、移動元位置及び移動先位置が第２判定領域内であって、第１判定領域における文章の読みの方向とは反対方向の移動距離が距離閾値Ｈmin以上であるか否かを判断する（ステップＳ９）。すなわち、行替えが発生したか否かを判断する。
【００３２】
移動元位置及び移動先位置が第２判定領域内でないか、又は第１判定領域における文章の読みの方向とは反対方向の移動距離が閾値Ｈmin以上でなければ、行替え発生とは判定されないので、変更部１０６１が、回数閾値又は改行検出回数の調整処理を実行する（ステップＳ１０）。その後処理は、ステップＳ１３に移行する。なお、ここでは、全体の処理の流れを先に説明するので、調整処理の詳細については、後に述べる。
【００３３】
一方、移動元位置及び移動先位置が第２判定領域内であって、第１判定領域における文章の読みの方向とは反対方向の移動距離が閾値Ｈmin以上であれば、改行発生と判定されるので、判定部１０６２は、改行検出回数を１カウントアップし（ステップＳ１１）、ユーザから入力部１０９を介して既読判定指示がなされたか否かを判定する（ステップＳ１３）。例えば図６の次へボタン１３００が押されたか否かを判断する。既読判定指示がなされていない場合には、処理はステップＳ７に戻る。一方、既読判定指示がなされた場合には、処理は端子Ａを介して図１２の処理に移行する。
【００３４】
判定部１０６２は、行替えの回数が、回数閾値以上であるか否かを判断する（ステップＳ１５）。上でも述べたように、図６のような単純な文章であれば、（表示行数−１）が文章全体を読んだ場合の閾値となる。改行検出回数が表示行数に基づく回数閾値未満であれば、判定部１０６２は、表示処理部１０３に対して、未読有りを表すメッセージを表示部１０２に表示させる（ステップＳ１７）。そして処理を終了する。なお、最初から読み直すように指示しても良い。
【００３５】
一方、行替えの回数が、表示行数に基づく回数閾値以上であれば、範囲内の文章を読んだと判定できるので、判定部１０６２は、第３データ格納部１０８において、この文章についての判定フラグをオンに設定する（ステップＳ１９）。そして、判定部１０６２は、表示処理部１０３に対して、表示部１０２に、完了を表すメッセージを表示させる（ステップＳ２１）。そして処理を終了する。
【００３６】
このような処理を行うことで、精度の低い視線検出部１０１を用いた場合においても、文章を読んだか否かを判断することができるようになる。
【００３７】
なお、上では、ユーザが明示的に次にボタン１３００をクリックした場合に、文章を読んだか否かを判断する処理の例を示したが、例えば、改行検出回数をインクリメントする毎に、改行検出回数が表示行数に基づく閾値以上となったか否かを自動的に判断するようにしても良い。この際、改行検出回数が表示行数に基づく回数閾値以上となった後に、次にボタン等を表示させて、ユーザに判定完了を通知する方法や、所定の時間が経過した後に判定完了を通知しても良い。
【００３８】
次に、図１３乃至図１５を用いて、調整処理（ステップＳ１０）の詳細について説明する。
【００３９】
移動元位置及び移動先位置が第２判定領域内でないか、又は第１判定領域における文章の読みの方向とは反対方向の移動距離が閾値Ｈmin以上でない場合、変更部１０６１は、移動元位置から移動先位置への移動が、読みの方向の移動距離が第２の距離閾値以上となる移動であるか判断する（ステップＳ３１）。本ステップでも、移動元位置及び移動先位置が第２判定領域内という条件は同様に判断される。このような移動が検出されれば、読み戻しが発生した可能性がある。なお、第２の距離閾値については以下に説明する。ステップＳ３１の条件を満たさない場合には、処理は呼び出し元の処理に戻る。
【００４０】
一方、ステップＳ３１の条件を満たすと判断された場合には、変更部１０６１は、第２データ格納部１０５に格納されているデータを遡って、所定時間以内に、読みの方向とは逆方向で移動距離が距離閾値以上の移動（ステップＳ９の要件を満たす移動）が発生していたか判断する（ステップＳ３３）。
【００４１】
本実施の形態では、図１４に示すように、１行普通に読むのに時間ｔaかかるとして、１行目を読み終わった後に、２行目をあまり読み進まないうち（具体的には１行に対する１より小さな正の割合αの箇所まで２行目を読んだ時点で）に読み戻しのため１行目に戻った場合を想定する。そうすると、現在は１行目に視線位置があるので、読み戻しのための時間ｔbと、２行目を普通に読むのにかかる時間ｔaに割合αを乗じた結果である時間αｔaとの和（αｔa＋ｔb。例えばαが０．１で、２行目を全部読む時間taが２秒ならばαtaは２００msである。また、tbが１００msだとすれば、αｔa＋ｔbは３００msとなる。）だけ遡ると、改行に相当する視線の移動（点線矢印。具体的には点線矢印の先に対応する移動先位置）が検出される。２行目をあまり読み進まないうちという要件から、αを事前に決定しておき、一般的に今回の文章に含まれる行を１行読むのにかかる時間に乗ずることでαｔaを用意するようにしてもよい。また、ｔaについては、ステップＳ１１で改行検出回数をカウントアップする間隔（この平均など）を計測することで得るようにしてもよい。αについては上限値を決めておいて、行頭から視線位置までの長さから上限値未満の値を動的に算出するようにしてもよい。また、対象の行に漢字や難読語が含まれる場合、taの値は、通常よりも長い時間がかかることが想定されるので、文章の内容によってtaの値を調整すればよい。
【００４２】
なお、ステップＳ３１で用いられる第２の距離閾値については、ステップＳ９で用いられる距離閾値に対して（１−α）等の補正係数を乗じた値を用いる。場合によっては、ステップＳ９で用いられる距離閾値をそのまま用いる場合もある。
【００４３】
ステップＳ３３の条件を満たす視線の移動が発生していない場合には、処理は呼び出し元の処理に戻る。図１５に模式的に示すように、行替えが発生した後に通常通り読み進めた場合には、読みの方向への移動を検出する前、所定時間以内に行替えは検出されないので、そのまま次の処理に移行する。
【００４４】
一方、ステップＳ３３の条件を満たす視線の移動が発生した場合には、図４等で示した読み戻しが発生しているので、再度改行を表す視線の移動が発生してしまうので、変更部１０６１は、回数閾値を１インクリメントして第３データ格納部１０８に格納するか、又は改行検出回数を１デクリメントする（ステップＳ３５）。また、第３データ格納部１０８において変更フラグをオンに設定する。そして処理は呼び出し元の処理に戻る。
【００４５】
このようにすれば、回数閾値又は改行検出回数を適切に変更できるので、精度よく文章を読んだか否かを判断できるようになる。
【００４６】
［実施の形態２］
図４等で示したような例だけではなく、例えば図１６に示すような読み直しが行われる場合もある。図１６の例では、１行目から３行目まで２回改行を表す移動が検出された後、文章の先頭行方向への視線の移動が検出される場合がある。このような場合も、既に読んだと判定されている行の分を再度読み直せば、同じように改行が検出されることになる。
【００４７】
本実施の形態では、このような場面に対処するために、第１の実施の形態とは異なる第２の調整処理を実行する。図１７及び図１８を用いて、第２の調整処理を説明する。
【００４８】
変更部１０６１は、移動元位置から移動先位置への移動が、文章の先頭行方向への移動であるか否かを判断する（ステップＳ４１）。今回検出された移動が、文章の先頭行方向への移動ではない場合には、呼び出し元の処理に戻る。
【００４９】
例えば、図１８に模式的に示すように、１行目を読み終わって２行目を読み始めた後、４行目に視線が移動したような場合には、２行目乃至４行目を読んだことにはできないので、回数閾値又は改行検出回数を調整することはしない。
【００５０】
一方、今回検出された移動が、文章の先頭行方向への移動である場合には、変更部１０６１は、読みの方向に対して垂直方向の移動距離ｄｕを算出する（ステップＳ４３）。図１６で模式的に示したように、横方向がｘ軸、縦方向がｙ軸であるとすると、ｙ座標値の差によって垂直方向の移動距離ｄｕを算出することができる。
【００５１】
そして、変更部１０６１は、第３データ格納部１０８に格納されている行間の長さを用いて、垂直方向の移動距離を、遡った行数に換算する（ステップＳ４５）。具体的には、Ｌｕ＝−｛integer（垂直方向の移動距離／行間の長さＬ）｝によって算出する。integer(X)は整数を表す関数である。
【００５２】
そして、変更部１０６１は、回数閾値を、遡った分だけインクリメントして第３データ格納部１０８に格納するか、又は改行検出回数を遡った分だけデクリメントする（ステップＳ４７）。また、第３データ格納部１０８において変更フラグをオンに設定する。そして処理は、呼び出し元の処理に戻る。
【００５３】
このようにすれば、読み直しに対処して回数閾値又は改行検出回数を適切に変更できるので、精度よく文章を読んだか否かを判断できるようになる。
【００５４】
［実施の形態３］
さらに視線の位置が複雑に動く場合もある。図１９に模式的に示すように、１行目を読み終わって２行目を読んでいる途中で、視線が４行目に移動した後、さらに１行目に戻って、再度１行目を読み進めるようなケースがある。このような場合、通常の読みから逸脱し始めた位置Ｓ（＝垂直方向の移動の移動元位置）の行までは正常に改行を検出しているが、１行目に戻って再度読み始めることが確認できた位置Ｅ（通常の移動の移動元位置）までは、どのような経路、例えば４行目の位置Ｉを経由しようと、既読判定には影響はない。最終的に、通常の読みに相当する視線の移動が再開された行が、通常の読みから逸脱し始めた位置Ｓよりも上であれば、第２の実施の形態と同様に、回数閾値又は改行検出回数を調整する。それ以外であれば、図１８に示すように回数閾値又は改行検出回数について調整することはない。
【００５５】
本実施の形態では、このような複雑な視線の移動を検出した場合でも、適切に回数閾値又は改行検出回数を調整するものである。
【００５６】
本実施の形態に係る第３の調整処理については、図２０乃至図２２を用いて説明する。
【００５７】
変更部１０６１は、今回検出された移動が、読みの方向に対して垂直な移動距離が第３の距離閾値以上の移動であるか判断する（図２０：ステップＳ１０１）。第３の距離閾値は、例えば視線検出誤差ｒeの２倍程度の値が用いられる。今回検出された移動が、上記のような移動ではない場合には、処理は呼び出し元の処理に戻る。
【００５８】
一方、今回検出された移動が、上記のような移動であれば、変更部１０６１は、今回検出された移動の移動元位置をＳに設定する（ステップＳ１０３）。
【００５９】
また、変更部１０６１は、１単位時間後の視線位置座標を第２データ格納部１０５から読み出す（ステップＳ１０５）。そして、変更部１０６１は、ステップＳ１０１と同様に、取得された視線位置座標とその前の視線位置座標とから特定される次の移動が、読みの方向に対して垂直な移動距離が第３の距離閾値以上の移動であるか判断する（ステップＳ１０７）。すなわち、読みの方向に対して垂直方向の視線の移動が、継続しているか否かを判断するものである。ステップＳ１０７の条件を満たす場合には、処理はステップＳ１０５に戻る。なお、本処理フローでは１単位時間内で所定距離以上視線位置が移動していることを条件としているが、短時間且つ垂直方向への所定距離以上の移動であることを確認してもよい。
【００６０】
一方、ステップＳ１０７の条件を満たさない場合には、移動先位置から安定的に読み始めたのか否かを判断するために、変更部１０６１は、次の移動が、第３の距離閾値以内の幅に入る読みの方向への移動であるか否かを判断する（ステップＳ１０９）。例えば、行に対して垂直方向の移動でなくても、読みの方向とは逆方向に視線位置を移動させたりする場合には、まだ移動先位置から安定的に読み始めているとは言えないためである。従って、ステップＳ１０９の条件を満たさない場合には処理はステップＳ１０５に戻る。
【００６１】
一方、ステップＳ１０９の条件が満たされる場合には、変更部１０６１は、時間計測を開始し（ステップＳ１１１）、移動元位置をＥtempに設定する（ステップＳ１１２）と共に、さらに１単位時間後の視線位置座標を第２データ格納部１０５から取得する（ステップＳ１１３）。
【００６２】
そして、変更部１０６１は、取得された視線位置座標とその前の視線位置座標とから特定される次の移動が、ステップＳ１０９と同様に、第３の距離閾値以内の幅に入る読みの方向への移動であるか否かを判断する（ステップＳ１１５）。ステップＳ１１５の条件を満たさない場合には、変更部１０６１は、ステップＳ１１１で開始した時間計測と、ステップＳ１１２で設定したＥtempをクリアして（ステップＳ１１６）、処理はステップＳ１０５に戻る。
【００６３】
一方、ステップＳ１１５の条件を満たす場合には、変更部１０６１は、計測されている時間が所定時間を経過したか判断する（ステップＳ１１７）。例えば、図１４を用いて説明したように、１行を読むための時間ｔaに対して安定的に読み進めている割合βを乗じたβｔaを所定時間として用いる。
【００６４】
ステップＳ１１７の条件を満たさない場合には処理はステップＳ１１３に戻る。一方、ステップＳ１１７の条件を満たすようになれば、移動先の行で安定的に読み進めていることが検出されたので、端子Ｂを介して図２１の処理に移行する。なお、ステップＳ１１７の条件としては、読みの速度が所定速度以下である点をも確認してもよい。
【００６５】
図２１の処理の説明に移行して、変更部１０６１は、ＥtempをＥに設定する（ステップＳ１１９）。これによって図１９における移動先位置Ｅが得られたことになる。
【００６６】
そうすると、変更部１０６１は、ＥはＳよりも先頭行側（図１９の例では上側）であるか否かを判断する（ステップＳ１２１）。ステップＳ１２１の条件を満たさない場合には、回数閾値又は改行検出回数を調整することはないので、呼び出し元の処理に戻る。
【００６７】
例えば、図２２に示すように、２行目が読み終わった後に、３行目を読む進める途中（視線位置Ｓ）で１行目に戻り、少し読んだ後（視線位置Ｉ１からＩ２）、４行目に移動し、その後点線で示すように読み進めた場合、ＳよりＥは下にあるので、回数閾値又は改行検出回数を変更することはないので、本処理は終了する。このとき、Ｅの位置は、現在は図２２に記載されている場所としているが、点線に示すように、十分読み進めた点線の○に示した最終位置としても良い。
【００６８】
一方、ステップＳ１２１の条件を満たす場合には、変更部１０６１は、第３データ格納部１０８に格納されている行間の長さを用いて、ＥとＳとの間の垂直方向の距離を、遡った行数に換算する（ステップＳ１２３）。具体的には、Ｌｕ＝−｛integer（ＥとＳとの垂直方向の移動距離／行間の長さＬ）｝によって算出する。
【００６９】
そして、変更部１０６１は、回数閾値を、遡った分だけインクリメントして第３データ格納部１０８に格納するか、又は改行検出回数を遡った分だけデクリメントする（ステップＳ１２５）。また、第３データ格納部１０８において変更フラグをオンに設定する。そして処理は、呼び出し元の処理に戻る。
【００７０】
このようにすれば、ユーザが読むべき場所を探すような視線の移動を行った場合であっても、回数閾値又は改行検出回数を適切に変更できるので、精度よく文章を読んだか否かを判断できるようになる。
【００７１】
以上本発明の実施の形態を説明したが、本発明はこれらの実施の形態に限定されるものではない。例えば、図５に示した情報処理装置１００の機能ブロック構成は一例であって、プログラムモジュール構成とは異なる場合もある。さらにデータ格納部の構成についても、ファイル構成とは異なる場合もある。また、実施例では横書きの文章構成を示したが、縦書きの文章構成でも同様に説明される。
【００７２】
さらに、処理フローについて同様に、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数ステップを並列に実行するようにしてもよい。
【００７３】
なお、上で述べた情報処理装置１００は、コンピュータ装置であって、図２３に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７と視線の検出を行うためユーザを撮影するカメラ２５１６とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７４】
以上述べた本実施の形態をまとめると、以下のようになる。
【００７５】
本実施の形態に係る情報処理装置は、（Ａ）表示画面上における視線位置を取得して、表示画面上に表示される文章の行数に応じて設定される閾値と、視線位置の移動が改行を表す移動である回数とから、文章を読み終わったか否かを判定する判定部と、（Ｂ）視線位置の移動が改行を表す移動とは異なる第２の方向に所定距離以上となったことを検出することに応じて、閾値又は回数を変更する変更部とを有する。
【００７６】
改行を表す移動とは異なる上記のような移動が発生した場合、単純に改行に相当する移動のみに着目していると、文章を読み終わったか否かの判定を誤る場合がある。これによって、上記閾値又は回数を変更することで、改行に相当する移動に着目することにしても、精度よく文章を読んだか否かを判断することができるようになる。
【００７７】
なお、上で述べた変更部が、視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出し、且つ当該所定距離以上の視線位置の移動の前、所定時間以内に上記改行を表す移動を検出していた場合、閾値又は回数を変更するようにしてもよい。比較的短時間のうちに読み戻しが生じた場合に対処するものである。
【００７８】
なお、上記第２の方向が、文章の読みの方向と同方向であり、上記所定距離が、改行を表す移動を検出する際の閾値に応じて決定される値である場合もある。比較的短時間のうちに読み戻しが生じた場合の条件は具体的には上記のようなものである。
【００７９】
さらに、上で述べた変更部が、視線位置の移動が、文章の先頭行方向に所定距離以上となったことを検出すると、文章の読みの方向に対して垂直方向の、視線位置の移動距離を行数に換算し、換算された行数に応じて、閾値又は回数を変更するようにしてもよい。一度読んだ行に直接的に戻った場合に対処することができるようになる。
【００８０】
また、上で述べた変更部が、（ｂ１）視線位置の第１の移動が、文章の読みの方向に対して垂直方向に所定距離以上となったことを検出した後に、視線位置の移動が文章の読みの方向に所定時間以上継続した状態を検出すると、当該状態へ遷移した際の視線位置が、視線位置の第１の移動前の位置よりも文章の先頭行側であるか判断し、（ｂ２）上記状態へ遷移した際の視線位置が、視線位置の第１の移動前の位置よりも文章の先頭行側であると判断された場合には、視線位置の第１の移動前の位置と上記状態の視線位置との間の、文章の読みの方向に対して垂直方向の距離を行数に換算し、換算された行数に応じて、閾値又は回数を変更するようにしてもよい。視線位置が複雑に移動する場合にも対処できるようになる。
【００８１】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【００８２】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８３】
（付記１）
表示画面上における視線位置を取得して、前記表示画面上に表示される文章の行数に応じて設定される閾値と、前記視線位置の移動が改行を表す移動である回数とから、前記文章を読み終わったか否かを判定する判定部と、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出することに応じて、前記閾値又は回数を変更する変更部と、
を有する情報処理装置。
【００８４】
（付記２）
前記変更部が、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出し、且つ当該所定距離以上の視線位置の移動の前、所定時間以内に前記改行を表す移動を検出していた場合、前記閾値又は回数を変更する
付記１記載の情報処理装置。
【００８５】
（付記３）
前記第２の方向が、前記文章の読みの方向と同方向であり、
前記所定距離が、前記改行を表す移動を検出する際の閾値に応じて決定される値である
付記２記載の情報処理装置。
【００８６】
（付記４）
前記変更部が、
前記視線位置の移動が、前記文章の先頭行方向に所定距離以上となったことを検出すると、前記文章の読みの方向に対して垂直方向の、前記視線位置の移動距離を行数に換算し、換算された前記行数に応じて、前記閾値又は回数を変更する
付記１記載の情報処理装置。
【００８７】
（付記５）
前記変更部が、
前記視線位置の第１の移動が、前記文章の読みの方向に対して垂直方向に所定距離以上となったことを検出した後に、前記視線位置の移動が前記文章の読みの方向に所定時間以上継続した状態を検出すると、当該状態へ遷移した際の視線位置が、前記視線位置の第１の移動前の位置よりも前記文章の先頭行側であるか判断し、
前記状態へ遷移した際の視線位置が、前記視線位置の第１の移動前の位置よりも前記文章の先頭行側であると判断された場合には、前記視線位置の第１の移動前の位置と前記状態の視線位置との間の、前記文章の読みの方向に対して垂直方向の距離を行数に換算し、換算された前記行数に応じて、前記閾値又は回数を変更する
付記１記載の情報処理装置。
【００８８】
（付記６）
表示画面上における視線位置を取得して、前記表示画面上に表示される文章の行数に応じて設定される閾値と、前記視線位置の移動が改行を表す移動である回数とから、前記文章を読み終わったか否かを判定する処理を実行する間に、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出することに応じて、前記閾値又は回数を変更する
処理を、コンピュータに実行させるためのプログラム。
【００８９】
（付記７）
表示画面上における視線位置を取得して、前記表示画面上に表示される文章の行数に応じて設定される閾値と、前記視線位置の移動が改行を表す移動である回数とから、前記文章を読み終わったか否かを判定する処理を実行する間に、
前記視線位置の移動が改行を表す移動の方向とは異なる第２の方向に所定距離以上となったことを検出することに応じて、前記閾値又は回数を変更する
処理を含み、コンピュータにより実行される情報処理方法。
【符号の説明】
【００９０】
１００  情報処理装置
１０１  視線検出部
１０２  表示部
１０３  表示処理部
１０４  第１データ格納部
１０５  第２データ格納部
１０６  視線処理部
１０６１  変更部
１０６２  判定部
１０７  領域設定部
１０８  第３データ格納部
１０９  入力部
【図１】
2015056174.tif 000003
【図２】
2015056174.tif 000004
【図３】
2015056174.tif 000005
【図４】
2015056174.tif 000006
【図５】
2015056174.tif 000007
【図６】
2015056174.tif 000008
【図７】
2015056174.tif 000009
【図８】
2015056174.tif 000010
【図９】
2015056174.tif 000011
【図１０】
2015056174.tif 000012
【図１１】
2015056174.tif 000013
【図１２】
2015056174.tif 000014
【図１３】
2015056174.tif 000015
【図１４】
2015056174.tif 000016
【図１５】
2015056174.tif 000017
【図１６】
2015056174.tif 000018
【図１７】
2015056174.tif 000019
【図１８】
2015056174.tif 000020
【図１９】
2015056174.tif 000021
【図２０】
2015056174.tif 000022
【図２１】
2015056174.tif 000023
【図２２】
2015056174.tif 000024
【図２３】
2015056174.tif 000025