(57)【要約】【課題】視線検出装置が出力する視線位置座標の精度が低い場合であっても、ユーザが文章を最後まで読んだか否かを判定できるように、ボタンなどの、視線の移動先となる表示を行う。【解決手段】本情報処理装置は、（Ａ）表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、特定された最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定する決定部と、（Ｂ）決定された表示位置に、文章を読んだことを入力するためのボタンを表示画面上に表示する表示処理部とを有する。【選択図】図３
2015055950.tif 000002
【特許請求の範囲】
【請求項１】
表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定する決定部と、
決定された前記表示位置に、前記文章を読んだことを入力するためのボタンを前記表示画面上に表示する表示処理部と、
を有する情報処理装置。
【請求項２】
前記表示位置が、
前記文章の読みの方向とは逆方向に予め定められた距離以上の視線位置の移動が検出されるような位置
である請求項１記載の情報処理装置。
【請求項３】
前記表示位置が、
前記文章の読みの方向に対して垂直方向に予め定められた距離以上の視線位置の移動が検出されるような位置
である請求項１記載の情報処理装置。
【請求項４】
前記表示位置が、
前記文章の読みの方向と同じ方向に予め定められた距離以上の視線位置の移動が検出されるような位置
である請求項１記載の情報処理装置。
【請求項５】
前記決定部が、
前記予め定められた距離に基づき、前記既読判定において用いられる、前記最終行についての移動距離の閾値を算出する
請求項１乃至４のいずれか１つ記載の情報処理装置。
【請求項６】
前記決定部が、
複数の文章の各々について、最終行の行末位置を特定し、
前記複数の文章の各々について、特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置の範囲を算出し、
前記複数の文章の各々について算出された前記表示位置の範囲が重複する範囲から、前記ボタンの表示位置を決定する
請求項１乃至５のいずれか１つ記載の情報処理装置。
【請求項７】
前記移動距離の閾値が、
前記予め定められた距離を、前記視線位置の検出誤差、前記視線位置の検出誤差及び一度に読むことができる範囲に対応する長さ、又は前記視線位置の検出誤差及び一度に読むことができる範囲に対応する長さ及び前記ボタンの長さで補正することで得られる
請求項５記載の情報処理装置。
【請求項８】
前記決定部が、
前記予め定められた距離を、前記視線位置の検出誤差で補正した距離に基づき、前記表示位置を決定する
請求項１乃至５のいずれか１つ記載の情報処理装置。
【請求項９】
表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、
特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定し、
決定された前記表示位置に、前記文章を読んだことを入力するためのボタンを前記表示画面上に表示する
処理をコンピュータに実行させるためのプログラム。
【請求項１０】
表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、
特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定し、
決定された前記表示位置に、前記文章を読んだことを入力するためのボタンを前記表示画面上に表示する
処理を含み、コンピュータにより実行される情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書の既読判定技術に関する。
【背景技術】
【０００２】
パソコンやタブレット、キオスク端末といった情報端末の画面描画更新の方法として、ユーザの視線を検出し、その移動によって画面の表示内容を切り替えたり、スクロール操作を行うといった技術が存在している。具体的には、特定の領域等を読んだかどうかを判定してから画面の表示を切り替えたり、画面をスクロールすることにより、ユーザの操作負担を減らすものである。
【０００３】
また、視線による画面制御等を行う技術には以下のようなものもある。すなわち、文章やコンテンツ上に判定領域を設け、その判定領域内にユーザの視線座標が検出された場合にユーザが参照していると判断し、ユーザが参照したパーツの順序が、予め定められた順序と一致した場合、ユーザが読んだと認識し、視線に対応した画面制御等を行うものである。
【０００４】
このような技術の場合、読んだかどうか判定する対象の文章やコンテンツの判定領域上に視線座標が検出されない場合、その文章やコンテンツを読んだかどうか判定することができない。例えば、視線検出装置が出力する視線位置座標の精度が高ければ、判定領域において、１行目を読んだ後、２行目を読んだということを把握できる。しかしながら、視線検出装置が出力する視線位置座標の精度が低く、その誤差が文章の文字（各行）やコンテンツの大きさよりも粗い場合がある。このような場合、視線位置が判定領域に収まらない場合や、行をまたいで移動したりするため、たとえその文章等を読んでいたとしても、視線検出装置が出力する視線位置座標を単純に追うだけでは、文章等を読んだか否かを判定することはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１０７０４８号公報
【特許文献２】特開平８−２２３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、一側面によれば、視線検出装置が出力する視線位置座標の精度が低い場合であっても、ユーザが文章を最後まで読んだか否かを判定できるように、ボタンなどの、視線の移動先となる表示を行うための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、（Ａ）表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、特定された最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定する決定部と、（Ｂ）決定された表示位置に、文章を読んだことを入力するためのボタンを表示画面上に表示する表示処理部とを有する。
【発明の効果】
【０００８】
一側面によれば、視線検出装置が出力する視線位置座標の精度が低い場合であっても、ユーザが文章を最後まで読んだか否かを判定できるように視線の移動先となる表示を行うことができるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態における視線の動きを説明するための図である。
【図２】図２は、本実施の形態におけるレイアウトを説明するための図である。
【図３】図３は、本実施の形態に係る情報処理装置の機能ブロック図である。
【図４】図４は、第１の実施の形態に係る処理フローを示す図である。
【図５】図５は、第１の実施の形態において処理される文書のデータの一例を示す図である。
【図６】図６は、第１の実施の形態に係る配置ルールを説明するための図である。
【図７】図７は、第１の実施の形態に係る配置ルールの変形例を示す図である。
【図８】図８は、第１の実施の形態に係る配置ルールの変形例を示す図である。
【図９】図９は、第１の実施の形態に係る判定閾値を説明するための図である。
【図１０】図１０は、第１の実施の形態に係る判定閾値を説明するための図である。
【図１１】図１１は、第１の実施の形態に係る判定閾値を説明するための図である。
【図１２】図１２は、判定領域を説明するための図である。
【図１３】図１３は、視線検出誤差を説明するための図である。
【図１４】図１４は、判定領域を説明するための図である。
【図１５】図１５は、判定領域を説明するための図である。
【図１６】図１６は、第３データ格納部に格納されるデータの一例を示す図である。
【図１７】図１７は、第１の実施の形態に係る既読判定処理の処理フローを示す図である。
【図１８】図１８は、第１の実施の形態に係る既読判定処理の処理フローを示す図である。
【図１９】図１９は、第２の実施の形態において処理される文書のデータの一例を示す図である。
【図２０】図２０は、第２の実施の形態に係る処理フローを示す図である。
【図２１】図２１は、第２の実施の形態に係るボタンの配置を説明するための図である。
【図２２】図２２は、第２の実施の形態に係るボタンの配置を説明するための図である。
【図２３】図２３は、第２の実施の形態に係るボタンの配置を説明するための図である。
【図２４】図２４は、第２の実施の形態に係る判定閾値を説明するための図である。
【図２５】図２５は、第３の実施の形態において処理される文書のデータの一例を示す図である。
【図２６】図２６は、第３の実施の形態に係る処理フローを示す図である。
【図２７】図２７は、第４の実施の形態において処理される文書の例を示す図である。
【図２８】図２８は、第４の実施の形態に係る処理フローを示す図である。
【図２９】図２９は、範囲設定処理の処理フローを示す図である。
【図３０】図３０は、文書１について設定される表示範囲の一例を示す図である。
【図３１】図３１は、文書２について設定される表示範囲の一例を示す図である。
【図３２】図３２は、共通の表示範囲について説明するための図である。
【図３３】図３３は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
本実施の形態では、たとえ視線検出装置が出力する視線位置座標の精度が低い場合であっても、図１に示すような左から右へ書かれた文章の場合には、次の行を読む際には、矢印１１００及び１１１０のように右から左へ向いた視線の移動が発生することに着目する。このように文章を読む際に生じ且つ改行（行替えとも呼ぶ）に対応する、視線位置の移動の発生を計数することで、判定領域内の文章を読んだか否かを判定する。
【００１１】
しかしながら、図１の例からも分かるように、３行の文章では、矢印１１００及び１１１０は発生するが、最終行（すなわち３行目）を読んだ後には次の行が存在しないので、改行が検出されない。従って、何もしない場合には、文章を最後の行まで読んだかを確認することは難しい。
【００１２】
そこで、図２に模式的に示すように、複数の行を含む文章１２００を読み終わったことを入力するためのボタン１３００を、適切な位置に表示する。具体的には、左から右へ書かれた文章１２００の下方の行において行頭（ここでは左端）付近に、ボタン１３００を表示する。そうすることで、本実施の形態では、最後の行を読み終わったことで最終行の行末（ここでは右端）からボタン１３００へ発生する視線の移動１１２０を、改行と同様に検出でき、文章１２００の最後の行まで読んだということを判定することができるようになる。
【００１３】
本実施の形態では、このような判定が行えるようにボタン１３００の配置を行った後、それに応じて既読判定のための処理を実行する。
【００１４】
図３に本実施の形態に係る情報処理装置の機能ブロック図を示す。本実施の形態に係る情報処理装置１００は、視線検出部１０１と、表示部１０２と、文書データ処理部１０３と、第１データ格納部１０４と、第２データ格納部１０５と、判定部１０６と、領域設定部１０７と、第３データ格納部１０８と、入力部１０９とを有する。
【００１５】
文書データ処理部１０３は、表示処理部１０３１と、位置決定部１０３２とを有する。
【００１６】
視線検出部１０１は、表示部１０２における表示画面上の視線位置座標を検出し、第２データ格納部１０５に格納する。本実施の形態では、視線検出部１０１は、従来からあるどのような機構及びアルゴリズムによるものであってもよいので、詳細な説明は省略する。
【００１７】
第１データ格納部１０４は、ユーザが読んだか否かを判断することになった文章のデータと、当該文章に対して設定されている範囲のデータと、設定データとを格納する。第１データ格納部１０４に格納されている文章のデータを、文書データ処理部１０３の表示処理部１０３１が読み出して、表示部１０２に出力する。その際、文書データ処理部１０３の位置決定部１０３２は、第１データ格納部１０４に格納されている設定データを用いて、上で述べたボタン１３００の配置位置を決定する処理と、後に述べる既読判定処理で用いられる、最終行のための判定閾値を決定する処理とを実行する。但し、位置決定部１０３２は、この判定閾値を領域設定部１０７に出力する。また、表示処理部１０３１は、上記範囲に対応する、表示部１０２における表示画面上の領域の座標データ及び領域設定部１０７で用いられるデータを、領域設定部１０７に出力する。
【００１８】
領域設定部１０７は、第１データ格納部１０４に格納されている設定データ等と、文書データ処理部１０３から出力されるデータとを用いて、以下で説明する第１判定領域及び第２判定領域のデータを生成し、第３データ格納部１０８に格納する。なお、領域設定部１０７は、最終行以外の行についての閾値や位置決定部１０３２から受け取った最終行の既読判定のための判定閾値についても、第３データ格納部１０８に格納する。
【００１９】
例えば、入力部１０９からの指示に応じて、判定部１０６は、第２データ格納部１０５に格納されている視線位置座標から、第３データ格納部１０８に格納されている第１判定領域内の文章を読んだか否かを判定し、判定結果を第３データ格納部１０８に格納すると共に、文書データ処理部１０３に対して判定結果を表示部１０２へ出力させる場合もある。また、判定部１０６は、この際の判定には、文章の最後まで読んだか否かの判定も含まれる。
【００２０】
次に、例えば入力部１０９からの指示に応じて、文書データ処理部１０３が、第１データ格納部１０４に格納されている文書のデータを表示する際の処理について、図４を用いて説明する。
【００２１】
例えば入力部１０９からの指示に応じて、文書データ処理部１０３の位置決定部１０３２は、第１データ格納部１０４に格納されている文書のデータを読み込む（ステップＳ１）。そして、位置決定部１０３２は、文書のデータから、文書に含まれる文章の最終行の行末位置を含むパラメータを抽出する（ステップＳ３）。
【００２２】
本実施の形態では、例えば図５に示すような文書のデータを表示する場合を想定する。図５の例では、文章のみの文書であり、左から右へ書かれた行（ここでは実線で簡略化されている）が９行ある。そして、１行の横の長さはＣであり、行間はＬである。横方向はｘ座標で表され、縦方向はｙ座標で表されるものとする。そして、本実施の形態では、９行目の行末（すなわち文章の末尾）が、右端に到達しているものとする。なお、図示の都合上、ボタン「次へ」が既に示されているが、まだこの段階ではその位置は確定していない。なお、ボタンの左端位置はＰb＝（ｘb，ｙb）と表すものとする。
【００２３】
そして、本ステップでは、最終行の行末位置Ｐe＝（ｘe，ｙe）を抽出し、行間Ｌを抽出する。なお、行末位置を判断する際に、行末が句読点などの記号の場合は、それらの記号を含めずに行末を判断しても良い。
【００２４】
そして、位置決定部１０３２は、第１データ格納部１０４に格納されている設定データに含まれるボタンの配置ルールに従って、最終行の下に、仮想的な行を設定して、当該行にボタンの座標を設定する（ステップＳ５）。
【００２５】
例えば、ボタンの配置ルールが、最終行の１行下にボタンを配置するというルールであれば、ｙb＝ｙe＋Ｌが設定される。但し、２行下にボタンを配置するようなルールでも良く、その場合には、ｙb＝ｙe＋２Ｌと設定される。
【００２６】
さらに、位置決定部１０３２は、ボタンの配置ルールに従って、行末位置から行頭方向に距離Ｘ離れた位置をボタンの位置に設定する（ステップＳ７）。
【００２７】
配置ルールには、例えば図６に示すように、文章の読みの方向とは逆方向に、最終行の行末Ｐeからどれだけ離れてボタンを配置するかというルールが含まれる。図６の例では、ｘ軸方向の距離で、行の長さＣと同じ距離ｄxが指定される。但し、距離ｄxについては、行の長さＣに限定されず、任意の距離が指定され得る。
【００２８】
但し、図７に模式的に示すように、最終行の行末Ｐeに視線の位置が検出された場合、半径ｅの視線検出誤差の円内に実際の視線位置がある。すなわち、最終行の行末Ｐeに視線の位置が検出されても、実際の視線の位置のｘ座標値は、ｘe−ｅとなっている場合もある。このような場合を考慮して、指定された距離ｄxに視線検出誤差ｅを加算した結果ｄx＋ｅを、距離Ｘとして採用する場合もある。図７には、３つのｄxの例が示されており、ボタンの位置Ｐb1、Ｐb2及びＰb3が示されている。但し、Ｐb3の場合には、行頭の位置より左となっているので、表示範囲を超えていればボタンを表示できない。従って、ボタンを表示できなくなるような距離ｄxは指定できない。また、距離ｄxは、短すぎると誤検出の可能性が高くなるので、距離ＸがＣに近い方が好ましい。
【００２９】
さらに、最終行の行末Ｐeにおける視線位置の検出誤差だけではなく、移動先の視線位置の検出誤差を考慮するようにしてもよい。図８に模式的に示すように、移動先の視線位置Ｐmにおいても、半径ｅの視線検出誤差の円内に実際の視線位置Ｐmが存在することになる。なお、視線検出誤差を示す半径ｅは、例えば画面中心部分は小さく、画面周辺部分に行くに従って大きくするなど、視線位置に応じて変化をさせるようにしても良い。すなわち、ｘ軸方向に最大２ｅの長さだけ視線の移動距離が短く検出される可能性がある。従って、指定された距離ｄxに視線検出誤差の２倍の距離を加えた結果ｄx＋２ｅを、距離Ｘとして採用する場合もある。図８にも、３つのｄxの例が示されている。但し、表示範囲を超えていればボタンを表示できない。従って、ボタンを表示できなくなるような距離ｄxは指定できない。また、距離ｄxは、短すぎると誤検出の可能性が高くなるので、距離ＸがＣに近い方が好ましい。
【００３０】
距離Ｘが上で述べたいずれかの方法で決定されると、ｘb＝ｘe−Ｘによって、ボタンのｘ座標値を算出する。
【００３１】
その後、位置決定部１０３２は、設定した位置のデータを、表示処理部１０３１に指示する（ステップＳ９）。表示処理部１０３１の処理については、後に述べる。
【００３２】
さらに、位置決定部１０３２は、最終行に対する既読判定の判定閾値を算出し、領域設定部１０７に出力する（ステップＳ１１）。
【００３３】
本実施の形態では、例えば以下のような判定閾値を設定する。すなわち、図９に示すような第１の例では、移動元の視線位置と移動先の視線位置の視線検出誤差ｅを考慮して、Ｘ（ここではＣ）から、２ｅを差し引いたＸ−２ｅを、判定閾値Ｍ2thに採用する。
【００３４】
さらに、図１０に示すような第２の例では、一度に読むことができる範囲１４００及び１４１０を考慮する。すなわち、一度に読むことができる範囲１４００及び１４１０に入っていれば、文末まで視線を移動させずとも読むことができ、文頭まで視線を移動させずともボタンを認識できる。従って、移動元の視線位置と移動先の視線位置の視線検出誤差ｅに加えて、一度に読むことができる範囲１４００及び１４１０の辺の長さｖも両サイドで考慮して、Ｘ（ここではＣ）から、２ｅ＋２ｖを差し引いたＸ−（２ｅ＋２ｖ）を、判定閾値Ｍ2thに採用する。
【００３５】
さらに、図１１に示すような第３の例では、第２の例に加えて、ボタン１３００の長さｗをも考慮する。すなわち、ボタン１３００の右端が、一度に読むことができる範囲１４００の左端に入っていれば、ボタン１３００を認識できるので、Ｘ−（２ｅ＋２ｖ＋ｗ）を判定閾値Ｍ2thに採用する。
【００３６】
このような例のいずれかの態様に従って、Ｘから最終行の判定閾値Ｍ2thを算出する。
【００３７】
以上のような処理を実行することで、文章の最終行まで読んだことを判定できる位置にボタン１３００を配置することができるようになる。さらに、以下で述べる既読判定処理において用いられる最終行の判定閾値をも算出できるようになる。
【００３８】
本実施の形態では、上でも述べたように、左から右へ読みの方向が設定されている文章を例として示したが、上から下へ読みの方向が設定されている文章であっても、左を上に、右を下に置換することで同様に処理できる。
【００３９】
次に、図１２乃至図１８を用いて、既読判定処理について説明する。
【００４０】
まず、図１２を用いて、既読判定処理において用いられる判定領域について説明する。図１２は、表示部１０２における表示画面の一例を示している。本表示画面には、文章と、当該文章を読んだことを入力するためのボタン１３００とが含まれる。本実施の形態では、文章に対して、当該文章を読んだか否かを判定すべき範囲が予め設定されている。図１２の例では、１行目の左端における「あいう」から、１０行目の右端における「ゆよわ」までの文章が、第１データ格納部１０４に、文章のデータとして格納されると共に、さらにこの文章の範囲が範囲のデータとして格納されている。そして、この範囲の文章を囲う矩形（例えば最小矩形）の領域１３０１が第１判定領域であり、表示処理部１０３１は、この第１判定領域を表す座標データ（例えば右上頂点と左下頂点の座標値又は左上頂点と右下頂点の座標値）のデータと、領域設定部１０７における処理で用いられるデータ（例えば、左から右へ読みの方向が設定されている場合には、左端文字及び右端文字の座標値など）を、領域設定部１０７に出力する。そして領域設定部１０７は、領域１３０１に対して、設定データに含まれる視線検出誤差（視線検出部１０１が出力する座標値の誤差（ここでは長さ））を基に領域１３０２を第２判定領域として設定する。判定部１０６は、この第２判定領域に視線位置座標が入る場合には、視線の移動が、以下に述べる条件を満たすか否かを判定する。尚、図１２では、領域１３０２が領域１３０１より広く、内包する表記をしているが、領域１３０２と領域１３０１とが同じ範囲でも良く、あるいは、領域１３０２が領域１３０１を内包しなくても良い。
【００４１】
次に、第２判定領域の設定例について、図１３及び図１４を用いて説明する。この設定例では、上でも述べた視線検出誤差ｅを用いた設定方法を採用しており、ユーザがある位置を見た時には、その座標は、図１３に示すように、ある位置を中心とし且つ半径ｅを有する円内に入っている。そこで、図１４に示すように、第１判定領域１３１１における右端の文字に真の視線位置が来た場合に、視線検出部１０１からの視線位置座標は、半径ｅの円１３１４内の任意の位置を表す可能性がある。同様に、第１判定領域１３１１における左端の文字に真の視線位置が来た場合、視線検出部１０１からの視線位置座標は、半径ｅの円１３１３内の任意の位置を表す可能性がある。
【００４２】
従って、円１３１３の左端から円１３１４の右端までの長さＨmaxを第２判定領域の横方向長さとして採用する。そして、左端文字を横方向の座標を維持したまま最下行に仮に移動させ、右端文字を横方向の座標を維持したまま最上行に仮に移動させた場合（図１４では既にこの状態になっている）、移動後の左端文字の中心を中心として用い且つ半径ｅを有する円１３１３と、移動後の右端文字の中心を中心として用い且つ半径ｅを有する円１３１４とに外接する矩形を第２判定領域１３１２として採用する。なお、第２判定領域１３１２の四隅については半径ｅの円弧で丸めても良い。また、第２判定領域１３１２の縦方向の長さＶは、移動後の左端文字の中心を中心として用い且つ半径ｅを有する円１３１３の下端と、移動後の右端文字の中心を中心として用い且つ半径ｅを有する円１３１４の上端との間の長さとなる。
【００４３】
そして、第１行目の右端文字を読んだ後、第２行目の左端文字に読み進める場合には、視線検出誤差を考慮すると、最も短い場合でも、視線位置は、第１行目の右端文字に設定された円１３１４の左端から、第２行目の左端文字に設定された円１３１３の右端への長さＨminだけ移動する。最も長い場合には、視線位置は、第２判定領域１３１２の横の長さＨmaxだけ移動する。すなわち、行替えが行われる場合には、視線位置座標は、Ｈmin乃至Ｈmax、第１判定領域内の文章の読みの方向とは反対方向に移動することになる（図１４の矢印１３１５）。いずれにせよ、行替えが行われる場合には、第２判定領域１３１２内において視線位置は移動して、最短でもＨminだけ移動することになる。この最短Ｈminの視線位置の移動を検出する。なお、ユークリッド距離で判断しても良いが、例えば読みの方向にｘ軸又はｙ軸の正の方向が設定されていれば、移動元位置のｘ座標値又はｙ座標値と移動先位置のｘ座標値又はｙ座標値の差が移動距離の閾値Ｈmin以上であることを確認するようにしても良い。
【００４４】
なお、第２判定領域１３１２の設定を簡単にするため、第１判定領域１３１１の境界から視線検出誤差ｅだけ外側に第２判定領域１３１２の境界を設けるようにしても良い。
【００４５】
また、ユーザが一度に読める範囲を表す可読領域を基に移動距離の閾値を設定するようにしても良い。本実施の形態においては、可読領域については、例えば平均的なユーザのデータが第１データ格納部１０４に設定データとして格納されているものとする。
【００４６】
図１５に示すように閾値Ｈminを設定する場合もある。すなわち、ユーザが一度に読める範囲を表す可読領域１３２２の右端を第１判定領域１３２１の右端に合わせて配置し、その可読領域１３２２の中心に、視線検出誤差ｅを半径とする円１３２４を配置する。同様に、可読領域１３２３の左端を第１判定領域１３２１の左端に合わせて配置し、その可読領域１３２３の中心に、視線検出誤差ｅを半径とする円１３２５を配置する。この円１３２５の右端と円１３２４の左端との距離を、距離の閾値Ｈminとして用いるようにしても良い。
【００４７】
これは、右端文字まで視線を移動させなくても、可読領域が右端文字を含むように視線を移動させれば、右端文字まで読むことができ、同様に、左端文字まで視線を移動させなくても、可読領域が左端文字を含むように視線を移動させれば、左端文字まで読むことができるためである。
【００４８】
次に、第３データ格納部１０８に格納されるデータの一例を図１６に示す。図１６の例では、判定開始時刻又は判定完了時刻などの時刻と、第１判定領域の範囲を定める座標データ（例えば右上と左下の座標値）と、第２判定領域の範囲を定める座標データ（例えば右上と左下の座標値）と、移動距離の閾値と、第１判定領域に含まれる文章の行数と、既読か否かを表す判定フラグとを含む。但し、本実施の形態では、移動距離の閾値は、最終行と最終行以外とでは異なる。従って、移動距離の閾値として、最終行以外（９行分）と最終行（１行分）とが登録され、行数についても最終行以外の行数と最終行の行数とが登録され、判定フラグについても最終行以外についてのフラグと最終行についてのフラグが用意される。
【００４９】
なお、第１判定領域に含まれる文章の行数は、第１データ格納部１０４に、文章のデータにおいて行数が含まれる場合もあれば、表示毎に行数が変化する場合には、表示処理部１０３１などによって表示されている行数を特定する。
【００５０】
次に、図１７及び図１８を用いて、本実施の形態に係る情報処理装置１００の処理内容を説明する。
【００５１】
例えば、入力部１０９等からの指示に応じて、表示処理部１０３１は、文書のデータを第１データ格納部１０４から読み出す。そして、表示処理部１０３１は、文書に含まれる文章において既読判定を行うべき範囲を、第１データ格納部１０４に格納されている範囲のデータ等から特定する（図１７：ステップＳ２１）。そして、表示処理部１０３１は、表示部１０２の表示画面上における第１判定領域の座標データを特定し、領域設定部１０７に出力する。また、領域設定部１０７は、視線検出誤差を考慮して第１判定領域を包含するように第２判定領域を設定して、第１判定領域の座標データ及び第２判定領域の座標データを、第３データ格納部１０８に格納する（ステップＳ２３）。領域設定部１０７の処理は、図１４を用いて説明したような処理である。また、この処理の際に、図１４又は図１５に示すように、領域設定部１０７は、最終行以外の行について移動距離の閾値Ｈmin（図１６の例ではＭth）を算出し、位置決定部１０３２から得られた最終行についての判定閾値Ｍ2thと共に第３データ格納部１０８に格納する。
【００５２】
また、領域設定部１０７は、表示処理部１０３１から表示画面上の行数（読みの方向の行数。以下、表示行数と呼ぶ）のデータを取得するか、表示行数が固定の場合には第１データ格納部１０４から表示行数のデータを読み出して、第３データ格納部１０８に格納する（ステップＳ２５）。本ステップでは、最終行と最終行以外とに分けて第３データ格納部１０８に格納する。
【００５３】
そして、表示処理部１０３１は、位置決定部１０３２から受け取った位置にボタンを配置した文書のデータを、表示部１０２の表示画面に表示する（ステップＳ２６）。また、視線検出部１０１は、視線位置座標を検出し、第２データ格納部１０５に格納する。
【００５４】
そして、判定部１０６は、第２データ格納部１０５に格納されている、最新の視線位置座標及び１単位時間前の視線位置座標のデータを読み出す（ステップＳ２７）。これによって、表示画面上における移動元位置と移動先位置とが特定され、移動距離も算出できる。なお、本実施の形態では、移動距離は、読みの方向に平行な軸方向の座標値の差であっても良いし、ユークリッド距離を採用するようにしてもよい。
【００５５】
そして、判定部１０６は、第３データ格納部１０８に格納されている第２判定領域の座標データに基づき、移動元位置及び移動先位置が第２判定領域内であって、第１判定領域における文章の読みの方向とは反対方向の移動距離が閾値Ｈmin（図１６の例ではＭth）以上であるか否かを判断する（ステップＳ２９）。すなわち、行替えが発生したか否かを判断する。
【００５６】
移動元位置及び移動先位置が第２判定領域内でないか、又は第１判定領域における文章の読みの方向とは反対方向の移動距離が閾値Ｈmin以上でなければ、行替え発生とは判定されないので、処理はステップＳ３３に移行する。
【００５７】
一方、移動元位置及び移動先位置が第２判定領域内であって、第１判定領域における文章の読みの方向とは反対方向の移動距離が閾値Ｈmin以上であれば、行替え発生と判定されるので、判定部１０６は、行替え回数を１カウントアップする（ステップＳ３１）。
【００５８】
そうすると、判定部１０６は、行替えの回数が、最終行以外の行数に基づく閾値以上であるか否かを判断する（ステップＳ３３）。本実施の形態では、閾値は行数と同一である。行替えの回数が最終行以外の行数に基づく閾値以上でない場合には、処理はステップＳ２７に戻る。一方、既行替えの回数が最終行以外の行数に基づく閾値以上である場合には、判定部１０６は、第３データ格納部１０８において、最終行以外の行についての判定フラグをオンにセットする（ステップＳ３４）。そして、処理は端子Ａを介して図１８の処理に移行する。
【００５９】
そして、判定部１０６は、第２データ格納部１０５に格納されている、最新の視線位置座標及び１単位時間前の視線位置座標のデータを読み出す（ステップＳ３５）。そうすると、判定部１０６は、所定方向（本実施の形態においては第１判定領域における文章の読みの方向とは反対方向）の移動距離が最終行についての判定閾値Ｍ2th以上であるか否かを判断する（ステップＳ３７）。すなわち、ボタンへの視線の移動が発生したか否かを判断する。本ステップについても、本実施の形態では、ｘ座標値の差によって判断される。また、あまりに大きな移動距離が得られた場合には、無視するようにしてもよい。
【００６０】
例えば、所定方向の移動距離が最終行についての判定閾値Ｍ2th以上でなければ、判定部１０６は、表示処理部１０３１に対して、例えば未読有りを表すメッセージを表示部１０２に表示させる（ステップＳ３８）。そして処理を終了する。例えば、ボタンをクリックできないようにしてもよい。
【００６１】
一方、所定方向の移動距離が最終行についての判定閾値Ｍ2th以上であれば、判定部１０６は、第３データ格納部１０８において、この文章の最終行についての判定フラグをオンに設定する（ステップＳ３９）。そして処理を終了する。ステップＳ３９に応じて、ボタンをクリックできるようにしてもよい。すなわち、ボタンはステップＳ２６で表示するが、クリックできないようにしておき、最終行まで読んだと判定できた場合に、ボタンをクリックできるようにしてもよい。なお、ステップＳ３４の段階でボタンに誘導するような表示を行うようにしてもよい。
【００６２】
このような処理を行うことで、精度の低い視線検出部１０１を用いた場合においても、文章を最後まで読んだことを確認することができるようになる。
【００６３】
［実施の形態２］
第１の実施の形態では、表示される文章の最終行における行末が、行の右端に存在しているため、文章を読んだことを入力するためのボタンを表示範囲に入るように左側に配置することが容易であった。このような場合には、最終行以外の行と同様に、最終行についても読みの方向とは逆の方向への行替え（すなわち改行）を検出すればよいので、既読判定処理への影響は小さい。
【００６４】
しかしながら、最終行の行末が、右端以外の位置に来てしまう場合がある。この場合でも、ボタンを表示範囲に入るように左側に配置することができればよいが、配置できない場合もある。本実施の形態では、このようなケースに対処するための処理を説明する。
【００６５】
例えば、図１９に示すような文書の場合には、行間Ｌ、最大行長Ｃについては第１の実施の形態と同じであるが、最終行の文末の位置Ｐeは、行の右端ではなく、比較的左側に存在している。このような場合、さらに左側にボタンを配置するのは視線移動の検出の面で難しい場合がある。そこで、本実施の形態では、図１９に示すように、最終行から所定長下側にボタンを配置することで、最終行の行末からボタンへの視線の移動を検出しやすくする。なお、本実施の形態でも、ボタンの左端がボタン位置Ｐbとして設定されるものとする。
【００６６】
例えば入力部１０９からの指示に応じて、文書データ処理部１０３の位置決定部１０３２は、第１データ格納部１０４に格納されている文書のデータを読み込む（図２０：ステップＳ５１）。そして、位置決定部１０３２は、文書のデータから、文書に含まれる文章の最終行の行末位置及び先頭行の行頭位置を含むパラメータを抽出する（ステップＳ５３）。
【００６７】
本実施の形態では、上で述べた図１９に示すような文書のデータを表示する場合を想定する。図５と同様に、文章のみの文書であり、左から右へ書かれた行（ここでは実線で簡略化されている）が９行あり、横方向はｘ座標で表され、縦方向はｙ座標で表されるものとする。そして、本実施の形態では、９行目の行末（すなわち文章の末尾）が、右端にはなく、ｘ座標値が０からＣまでの間になっているものとする。なお、図示の都合上、ボタン「次へ」が既に示されているが、まだこの段階ではその位置は確定していない。なお、ボタンの左端位置はＰb＝（ｘb，ｙb）と表すものとする。さらに、文章の先頭位置、すなわち先頭行の行頭位置Ｐs＝（ｘs，ys）も抽出する。同様に、行間Ｌも抽出する。
【００６８】
そして、位置決定部１０３２は、第１データ格納部１０４に格納されている設定データに含まれるボタンの配置ルールに従って、最終行の下に、仮想的な行を設定して、当該行にボタンの座標を設定する（ステップＳ５５）。
【００６９】
例えば、ボタンの配置ルールが、最終行の１行下にボタンを配置するというルールであれば、ｙb＝ｙe＋Ｌが設定される。但し、２行下にボタンを配置するようなルールでも良く、その場合には、ｙb＝ｙe＋２Ｌと設定される。
【００７０】
さらに、位置決定部１０３２は、ボタンの配置ルールに従って、行末位置から行頭位置に距離Ｘ離れた位置をボタンの位置に設定する（ステップＳ５７）。
【００７１】
配置ルールには、第１の実施の形態と同様に、文章の読みの方向とは逆方向に、最終行の行末Ｐeからどれだけ離れてボタンを配置するかというルールが含まれる。本実施の形態では、ｘ軸方向の距離で、行の長さＣの８割、すなわち距離ｄx＝０．８Ｃが指定されているものとする。但し８割は一例であり、第１の実施の形態と同様に、Ｘ＝ｄxとする場合もあれば、Ｘ＝ｄx＋ｅや、Ｘ＝ｄx＋２ｅの場合もある。
【００７２】
このように距離Ｘが決定されると、ｘb＝ｘe−Ｘによって、ボタンのｘ座標値を算出する。
【００７３】
その後、位置決定部１０３２は、設定した位置が、表示部１０２における表示画面内に表示可能な位置であるか否かを判断する（ステップＳ５９）。例えば、表示範囲の座標の原点が（０，０）であれば、ｘ座標値又はｙ座標値が負の値となると、表示範囲外と判断される。ここまでの処理フローであれば、ｘ座標値が負の値となる可能性がある。
【００７４】
設定した位置が表示可能な位置であれば、処理はステップＳ６３に移行する。一方、設定した位置が表示可能な位置でなければ、位置決定部１０３２は、ボタンの配置ルールに従って、最終行の行頭位置から垂直下方向に離れた位置を設定する（ステップＳ６１）。
【００７５】
例えば、ｄy＝５Ｌという配置ルールがあれば、図２１に示すように、ｙb＝ｙe＋５Ｌと設定し、ｘb＝ｘsと設定する。ｄy＝５Ｌは一例であって、例えば、ｄy＝Ｃとしてもよく、文章を読んでいる際には通常発生しないような垂直下方向の視線の移動が検出できればよい。
【００７６】
また、第１の実施の形態と同様に、視線検出誤差を考慮する場合もある。図７で示したように最終行の行末位置における視線検出誤差を考慮する場合もあれば、図２２に示したように、最終行の行末位置における視線検出誤差に加えて視線の移動先の視線検出誤差を考慮した上で、ｄyだけ視線が移動したことを確保するため、ｙb＝ｄy＋２ｅというように設定するようにしてもよい。
【００７７】
すなわち、ｄy＝５Ｌ又はＣといった視線の移動を確実に発生させるためには、図２３に示すように、ｙb＝ｙe＋（５Ｌ＋２ｅ）とする。
【００７８】
なお、ｘbについても、ｘsではなく、ｘeを用いてもよいし、図２３に示すように、ｘe−Ｌといったように、第１の実施の形態における改行を９０度回転させたような視線の移動を発生させるような配置を採用してもよい。
【００７９】
その後、位置決定部１０３２は、設定した位置のデータを、表示処理部１０３１に指示する（ステップＳ６３）。表示処理部１０３１の処理については、第１の実施の形態と同様であるから、説明は省略する。
【００８０】
さらに、位置決定部１０３２は、最終行に対する既読判定の判定閾値を算出し、領域設定部１０７に出力する（ステップＳ６５）。
【００８１】
本実施の形態でも、ステップＳ５５及びＳ５７で設定した位置が採用された場合には、第１の実施の形態と同様の処理を行う。
【００８２】
また、ステップＳ６１で設定された位置を用いる場合には、例えば以下のような判定閾値を設定する。すなわち、図２４に示すような例では、移動元の視線位置と移動先の視線位置の視線検出誤差ｅを考慮して、Ｘ（ここでは５Ｌ）から、２ｅを差し引いたＸ−２ｅを、判定閾値Ｍ3thに採用する。なお、移動方向が異なるので、移動方向についてのデータ（ここではｙ軸方向）についても付加して、領域設定部１０７に出力する。
【００８３】
従って、図１８の処理フローのステップＳ３７において、判定部１０６は、所定方向として、読みの方向と直交する方向（より具体的には先頭行から最終行の方向であって読みの方向と直交する方向）の移動距離が最終行についての判定閾値Ｍ3th以上であるか否かを判断することになる。
【００８４】
なお、このような場合においても、一度に読むことができる範囲を考慮して、判定閾値Ｍ3thを設定するようにしてもよい。
【００８５】
以上のような処理を実行することで、最終行の行末位置に応じて、文章の最終行まで読んだことを判定できるボタン位置に変更して、その位置にボタンを配置することができるようになる。さらに、上で述べた既読判定処理において用いられる最終行の判定閾値をも算出できるようになる。
【００８６】
［実施の形態３］
第２の実施の形態では、左から右に読みの方向がある文章において、垂直下方向にボタンを配置して、最終行を読んだことを表す特徴的な視線の移動を検出できるようにする例を示した。しかし、垂直下方向にあまりスペースが存在しない場合も存在する。また、最終行を読んだことを表す特徴的な視線の移動は、垂直下方向に限られるものではない。
【００８７】
本実施の形態では、図２５に模式的に示すように、読みの方向へ特徴的な視線の移動を発生させるようなボタンの配置を行う例を示す。
【００８８】
例えば、図２５に示すように、行間Ｌ、最大行長Ｃについては第１の実施の形態と同じであるが、最終行の文末の位置Ｐeは、行の右端ではなく、比較的左側に存在している。このような場合、さらに左側にボタンを配置するのは視線移動の検出の面で難しい場合がある。そこで、本実施の形態では、図２５に示すように、例えば最終行の１行下の行において、最終行の行末から所定長右側にボタンを配置することで、最終行の行末からボタンへの視線の移動を検出しやすくする。なお、本実施の形態でも、ボタンの左端がボタン位置Ｐbとして設定されるものとする。
【００８９】
例えば入力部１０９からの指示に応じて、文書データ処理部１０３の位置決定部１０３２は、第１データ格納部１０４に格納されている文書のデータを読み込む（図２６：ステップＳ７１）。そして、位置決定部１０３２は、文書のデータから、文書に含まれる文章の最終行の行末位置を含むパラメータを抽出する（ステップＳ７３）。
【００９０】
本実施の形態では、上で述べた図２５に示すような文書のデータを表示する場合を想定する。図５と同様に、文章のみの文書であり、左から右へ書かれた行（ここでは実線で簡略化されている）が９行あり、横方向はｘ座標で表され、縦方向はｙ座標で表されるものとする。そして、本実施の形態では、９行目の行末（すなわち文章の末尾）が、右端にはなく、ｘ座標値が０からＣまでの間になっているものとする。なお、図示の都合上、ボタン「次へ」が既に示されているが、まだこの段階ではその位置は確定していない。なお、ボタンの左端位置はＰb＝（ｘb，ｙb）と表すものとする。同様に、行間Ｌも抽出する。
【００９１】
そして、位置決定部１０３２は、第１データ格納部１０４に格納されている設定データに含まれるボタンの配置ルールに従って、最終行の下に、仮想的な行を設定して、当該行にボタンの座標を設定する（ステップＳ７５）。
【００９２】
例えば、ボタンの配置ルールが、最終行の１行下にボタンを配置するというルールであれば、ｙb＝ｙe＋Ｌが設定される。但し、２行下にボタンを配置するようなルールでも良く、その場合には、ｙb＝ｙe＋２Ｌと設定される。
【００９３】
さらに、位置決定部１０３２は、ボタンの配置ルールに従って、行末位置から行頭位置に距離Ｘ離れた位置をボタンの位置に設定する（ステップＳ７７）。
【００９４】
配置ルールには、第１の実施の形態と同様に、文章の読みの方向とは逆方向に、最終行の行末Ｐeからどれだけ離れてボタンを配置するかというルールが含まれる。本実施の形態では、ｘ軸方向の距離で、行の長さＣの５割、すなわち距離ｄx＝０．５Ｃが指定されているものとする。但し５割は一例であり、第１の実施の形態と同様に、Ｘ＝ｄxとする場合もあれば、Ｘ＝ｄx＋ｅや、Ｘ＝ｄx＋２ｅの場合もある。
【００９５】
このように距離Ｘが決定されると、ｘb＝ｘe−Ｘによって、ボタンのｘ座標値を算出する。
【００９６】
その後、位置決定部１０３２は、設定した位置が、表示部１０２における表示画面内に表示可能な位置であるか否かを判断する（ステップＳ７９）。例えば、表示範囲の座標の原点が（０，０）であれば、ｘ座標値又はｙ座標値が負の値となると、表示範囲外と判断される。ここまでの処理フローであれば、ｘ座標値が負の値となる可能性がある。
【００９７】
設定した位置が表示可能な位置であれば、処理はステップＳ８３に移行する。一方、設定した位置が表示可能な位置でなければ、位置決定部１０３２は、ボタンの配置ルールに従って、最終行の行頭位置から読みの方向に離れた位置を設定する（ステップＳ８１）。
【００９８】
本実施の形態では、図２５で模式的に示すように、読みの方向に所定距離Ｙ離れた位置にボタンを配置する。例えば、ｄx＝０．５Ｃという設定に基づき、ｘb＝ｘe＋Ｙ＝ｘe＋０．５Ｃというｘ座標値を採用してもよい。
【００９９】
さらに、第１の実施の形態の方向を反転させたような変形も可能である。すなわち、視線検出誤差を考慮して、Ｙ＝０．５Ｃ＋ｅ、Ｙ＝０．５Ｃ＋２ｅといったような変形も可能である。
【０１００】
また、０．５Ｃは一例であって、他の値を採用するようにしてもよい。但し、ボタンの右端が表示範囲を超えないように設定する。
【０１０１】
なお、ｙ座標値については、ステップＳ７５に従って設定してもよいし、他の値をｙ座標値に設定してもよい。
【０１０２】
その後、位置決定部１０３２は、設定した位置のデータを、表示処理部１０３１に指示する（ステップＳ８３）。表示処理部１０３１の処理については、第１の実施の形態と同様であるから、説明は省略する。
【０１０３】
さらに、位置決定部１０３２は、最終行に対する既読判定の判定閾値Ｍ4thを算出し、領域設定部１０７に出力する（ステップＳ８５）。
【０１０４】
本実施の形態でも、ステップＳ７５及びＳ７７で設定した位置が採用された場合には、第１の実施の形態と同様の処理を行う。
【０１０５】
また、ステップＳ８１で設定された位置を用いる場合には、第１の実施の形態で説明した例の左右反転したものと同様である。例えば、判定閾値Ｍ4thがＹ−２ｅと設定される場合もあれば、一度に読むことができる範囲の長さｖを考慮して、Ｙ−２ｅ−２ｖと設定される場合もある。
【０１０６】
なお、移動方向が異なるので、移動方向についてのデータ（ここでは＋ｘ軸方向）についても付加して、領域設定部１０７に出力する。
【０１０７】
従って、図１８の処理フローのステップＳ３７において、判定部１０６は、所定方向として、読みの方向と同じ方向の移動距離が最終行についての判定閾値Ｍ4th以上であるか否かを判断することになる。
【０１０８】
以上のような処理を実行することで、最終行の行末位置に応じて、文章の最終行まで読んだことを判定できるボタン位置に変更して、その位置にボタンを配置することができるようになる。さらに、上で述べた既読判定処理において用いられる最終行の判定閾値等をも算出できるようになる。
【０１０９】
［実施の形態４］
第１乃至第３の実施の形態では、１ページ分の文書を想定した処理を説明したが、複数ページの文書を提示する場合に、ボタンの位置が各ページで異なると、読み手であるユーザが戸惑う場合もある。
【０１１０】
例えば、図２７に示すように、左に示した文書１については、最終行の行末位置は右端に達しているが、右に示した文書２については、最終行の行末位置は右端ではなく左側に寄っている。これらの文書をそれぞれについて処理すると、上で述べた実施の形態では、文書１では左端にボタンが配置されたり、文書２では下方又は右側に配置されるようになる。
【０１１１】
従って、本実施の形態では、図２８乃至図３２を用いて説明する処理を行うことで、複数ページに可能な限り同じ位置にボタンを配置しつつ、当該ボタンへの視線の移動によって最終行まで読んだということを判定できるようにする。
【０１１２】
まず、位置決定部１０３２は、未処理の文書のデータを、第１データ格納部１０４から読み出す（図２８：ステップＳ９１）。そして、位置決定部１０３２は、読み出された文書のデータに対して範囲設定処理を実行する（ステップＳ９３）。範囲設定処理については、図２９を用いて説明する。
【０１１３】
まず、位置決定部１０３２は、文書のデータから、文書に含まれる文章の最終行の行末位置を含むパラメータを抽出する（ステップＳ１１１）。本ステップは、第１の実施の形態におけるステップＳ３と同様である。なお、ボタンの左端位置はＰbi＝（ｘbi，ｙbi）と表すものとする。ｉは、ページ番号又は文書番号を表す。
【０１１４】
そして、本ステップでは、最終行の行末位置Ｐei＝（ｘei，ｙei）を抽出し、行間Ｌを抽出する。
【０１１５】
そして、位置決定部１０３２は、第１データ格納部１０４に格納されている設定データに含まれるボタンの配置ルールに従って、最終行の下に、仮想的な行を設定して、当該行にボタンの座標を設定する（ステップＳ１１３）。
【０１１６】
例えば、ボタンの配置ルールが、最終行の１行下にボタンを配置するというルールであれば、ｙb＝ｙe＋Ｌが設定される。但し、２行下にボタンを配置するようなルールでも良く、その場合には、ｙb＝ｙe＋２Ｌと設定される。
【０１１７】
さらに、位置決定部１０３２は、ボタンの配置ルールに従って、行末位置から行頭位置に距離Ｘ離れた範囲をボタンの配置範囲に設定する（ステップＳ１１５）。
【０１１８】
例えば、Ｘ＝０．３Ｃというように設定しておき、ｘbi≦ｘei−０．３Ｃというようにボタンの配置範囲を設定する。Ｘ＝０．３Ｃは一例であって、他の値を採用するようにしてもよい。この際も、視線検出誤差を考慮してもよい。
【０１１９】
その後、位置決定部１０３２は、設定した配置範囲が、表示部１０２における表示画面内に表示可能な範囲であるか否かを判断する（ステップＳ１１７）。例えば、表示範囲の座標の原点が（０，０）であれば、ｘ座標値又はｙ座標値が負の値のみとなると、表示範囲に表示できないと判断される。ここまでの処理フローであれば、ｘ座標値の最大値が負の値となる可能性があり、この場合には、表示不能であると判断される。
【０１２０】
設定した位置が表示可能な位置であれば、処理は呼び出し元の処理に戻る。一方、設定した範囲が表示可能な範囲でなければ、位置決定部１０３２は、ボタンの配置ルールに従って、最終行の行末位置から読みの方向に離れた位置を設定する（ステップＳ１１９）。そして処理は、呼び出し元の処理に戻る。
【０１２１】
例えば、ｘbi≧ｘei＋０．３Ｃというような形で、読みの方向に所定距離離れた範囲を設定する。０．３Ｃは、一例であって、他の値を採用するようにしてもよい。この際も、視線検出誤差を考慮してもよい。
【０１２２】
なお、上で述べた例では、ｙ軸方向については範囲を設定しない例を示したが、ｙ軸方向についても範囲を設定するようにしてもよい。
【０１２３】
例えば、図２７の文書１については、ステップＳ１１５で設定された範囲で表示可能であるので、例えば図３０に示すような範囲Ａが設定される。範囲Ａは、最終行の１行下において左側に設定されている。一方、図２７の文書２については、ステップＳ１１５で設定された範囲では表示可能とはならないので、例えば図３１に示すような範囲Ｂが設定される。範囲Ｂは、最終行の１行下において右側に設定されている。
【０１２４】
図２８の処理の説明に戻って、位置決定部１０３２は、未処理の文書のデータが存在するか否かを判断する（ステップＳ９５）。未処理の文書のデータが存在していれば、処理はステップＳ９１に戻る。一方、未処理の文書のデータがなければ、位置決定部１０３２は、設定された範囲の共通範囲を特定する（ステップＳ９７）。
【０１２５】
図３０及び図３１の例を重ねると、図３２に示すようになる。図３２の例では、範囲Ａと範囲Ｂの共通範囲Ｃが特定される。共通範囲Ｃは、ｘe2＋０．３Ｃ≦ｘb≦ｘe1−０．３Ｃと表される。
【０１２６】
なお、本ステップにおいて、場合によっては共通範囲Ｃを検出できない場合もある。この場合には、それぞれの文書についてボタン位置を決定する。
【０１２７】
そして、位置決定部１０３２は、共通範囲の中でボタンの位置を決定する（ステップＳ９９）。例えば、中間位置を採用する。図３２の場合には、（ｘe1＋ｘe2）／２が中間位置として得られる。２ページの場合には、単純に行末位置の中点になる場合もあるが、３ページ以上の場合には、単純には得られない。例えば、共通範囲の重心を用いてもよい。
【０１２８】
その後、位置決定部１０３２は、設定した位置のデータを、表示処理部１０３１に指示する（ステップＳ１００）。表示処理部１０３１の処理については、第１の実施の形態と同様であるから、説明は省略する。
【０１２９】
さらに、位置決定部１０３２は、各文書について最終行に対する既読判定の判定閾値を算出し、領域設定部１０７に出力する（ステップＳ１０１）。
【０１３０】
ボタンの位置が決定されれば、第１の実施の形態で説明したように、単純に最終行の行末位置のｘ座標値とボタン位置のｘ座標値との差として判定閾値を設定してもよいし、視線検出誤差を考慮してもよいし、一度に読むことができる範囲に対応する長さを考慮するようにしてもよい。
【０１３１】
このような処理を実行することによって、複数の文書に含まれる文章の最終行の行末位置にばらつきがある場合でも、ボタン位置を共通にすることができ、読み手に戸惑いを与えることなく、読み手は読み進めることができるようになる。
【０１３２】
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で述べた情報処理装置の機能ブロック構成は一例であって、プログラムモジュール構成とは一致しない場合もある。
【０１３３】
さらに、処理フローについても、処理結果が変わらない限り、ステップの順番を入れ替えたり、複数ステップを並列に実行するようにしてもよい。
【０１３４】
また、上で述べた例では、１つのボタンを配置する例を説明したが、複数のボタンを配置する場合もある。この場合も、例えば最も最終行の行末位置に近いボタンの位置を上で述べた処理で決定し、当該ボタンの付近でより遠い位置に他のボタンを配置すれば、既読判定処理において同じ判定閾値を用いることができるようになる。
【０１３５】
また、画面の拡大や縮小が指示されたりして表示内容が変化した場合には、再度ボタンの配置を行うことが好ましい。
【０１３６】
さらに、最終行の行末位置と、ボタンの位置との関係を蓄積しておき、後に同じ最終行の行末位置が検出された場合に、既に算出されているボタンの位置を読み出して使用するようにしてもよい。
【０１３７】
さらに、ボタンを押せるようにする（ボタンに割り当てられた機能を有効化する）タイミングや時間についても、様々な変形が可能である。例えば、最終行以外の行が読み終わったタイミングでボタンを押せるようにしてもよいが、最終行まで読み終わったと確認されたタイミングでボタンを押せるようにしてもよい。さらに、最終行まで読み終わったと確認されたタイミングから一定時間のみボタンを押せるようにしてもよい。ボタンを見ていると判断される時間内にのみボタンを押せるようにしてもよい。
【０１３８】
さらに、配置ルールについては、様々な設定が可能である。例えば、ベクトルにて設定する場合もあれば、関数を用意しておくようにしてもよい。
【０１３９】
さらに、第２の実施の形態と第３の実施の形態を組み合わせるような実施の形態も可能である。例えば、最終行の行末位置に応じて、読みの方向とは逆方向に配置したり、読みの方向に配置したり、垂直下方向に配置したりすることを切り替えてもよい。また、これらに優先順位を予め付与しておき、表示可能な範囲に含まれていない場合には次の優先順位についてのボタンの位置を採用するようにしてもよい。
【０１４０】
さらに、１ページに１つの文章が配置される例を示したが、複数の文章が配置されており、各文章についてボタンが配置されるような場合にも、本実施の形態は適用可能である。
【０１４１】
さらに、上では文章以外に他のコンテンツが含まれていない例を示したが、画像その他のコンテンツを配置する場合もある。このような場合には、ボタンの位置が仮に決定された後に、他のコンテンツにボタンが重ならないか否かを判断した上で、最終的にボタンの位置を決定するようにしてもよい。重なる場合には、他の候補位置を決定して他のコンテンツに重ならないか否かを確認する。
【０１４２】
さらに、ボタンをクリックするためにはカーソルを移動させることになるので、カーソルの位置を考慮してボタンの位置を決定する場合もある。タブレット端末を片手で持っている際に、端末を持っている方の手の指が届く範囲から想定されるタッチ位置など使用環境から想定されるユーザが操作しやすい位置を採用することもある。例えば、右手でタブレット端末を持っていると、左下よりも右下にボタンがある方が、右手での操作がしやすくなると考えられるためである。
【０１４３】
なお、上で述べた情報処理装置１００は、コンピュータ装置であって、図３３に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７と視線の検出を行うためユーザを撮影するカメラ２５１６とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４４】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１４５】
本実施の形態に係る情報処理方法は、（Ａ）表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、（Ｂ）特定された最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定し、（Ｃ）決定された表示位置に、文章を読んだことを入力するためのボタンを表示画面上に表示する処理を含む。
【０１４６】
視線位置の改行に相当する移動を単純に文章についてのみ確認する場合には最終行について読んだか否かを確定的に把握することが難しい場合があるので、このようにボタンを配置することで、文章の最終行まで読んだことを確認できるようになる。なお、ボタンは目標となる表示オブジェクトの一種であり、ボタン以外の表示オブジェクトであってもよい。
【０１４７】
上で述べた表示位置が、文章の読みの方向とは逆方向に予め定められた距離以上の視線位置の移動が検出されるような位置である場合もある。視線位置の改行に相当する移動を検出する処理との親和性が高い。
【０１４８】
また、上で述べた表示位置が、文章の読みの方向に対して垂直方向に予め定められた距離以上の視線位置の移動が検出されるような位置である場合もある。特徴的な視線の移動を検出することで、安定的に最終行を読んだことを確認できるようになる。
【０１４９】
さらに、上で述べた表示位置が、文章の読みの方向と同じ方向に予め定められた距離以上の視線位置の移動が検出されるような位置である場合もある。特徴的な視線の移動を検出することで、安定的に最終行を読んだことを確認できるようになる。
【０１５０】
さらに、上で述べた情報処理方法が、予め定められた距離に基づき、既読判定において用いられる、最終行についての移動距離の閾値を算出するようにしてもよい。これによって、最終行についても既読判定を適切に実行できるようになる。なお、閾値に加えて移動の方向のデータを含む場合もある。
【０１５１】
さらに、上で述べた決定する処理が、（b1）複数の文章の各々について、最終行の行末位置を特定し、（b2）複数の文章の各々について、特定された最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置の範囲を算出し、（b3）複数の文章の各々について算出された表示位置の範囲が重複する範囲から、ボタンの表示位置を決定する処理を含むようにしてもよい。例えば、複数ページに渡って表示される文章についてボタンの位置を共通にすることで、読み手が安定的にボタンへ視線を移動させることができるようになり、その検出が容易になる。
【０１５２】
また、上で述べた移動距離の閾値が、上記予め定められた距離を、視線位置の検出誤差、視線位置の検出誤差及び一度に読むことができる範囲に対応する長さ、又は視線位置の検出誤差及び一度に読むことができる範囲に対応する長さ及びボタンの長さで補正することで得られる場合もある。様々な条件を加味して閾値を決定する場合がある。
【０１５３】
さらに、上で述べた決定する処理が、予め定められた距離を、視線位置の検出誤差で補正した距離に基づき、表示位置を決定するようにしてもよい。これによって適切な長さだけボタンを最終行の行末位置から離すことができるようになる。
【０１５４】
なお、上で述べたような処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１５５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５６】
（付記１）
表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定する決定部と、
決定された前記表示位置に、前記文章を読んだことを入力するためのボタンを前記表示画面上に表示する表示処理部と、
を有する情報処理装置。
【０１５７】
（付記２）
前記表示位置が、
前記文章の読みの方向とは逆方向に予め定められた距離以上の視線位置の移動が検出されるような位置
である付記１記載の情報処理装置。
【０１５８】
（付記３）
前記表示位置が、
前記文章の読みの方向に対して垂直方向に予め定められた距離以上の視線位置の移動が検出されるような位置
である付記１記載の情報処理装置。
【０１５９】
（付記４）
前記表示位置が、
前記文章の読みの方向と同じ方向に予め定められた距離以上の視線位置の移動が検出されるような位置
である付記１記載の情報処理装置。
【０１６０】
（付記５）
前記決定部が、
前記予め定められた距離に基づき、前記既読判定において用いられる、前記最終行についての移動距離の閾値を算出する
付記１乃至４のいずれか１つ記載の情報処理装置。
【０１６１】
（付記６）
前記決定部が、
複数の文章の各々について、最終行の行末位置を特定し、
前記複数の文章の各々について、特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置の範囲を算出し、
前記複数の文章の各々について算出された前記表示位置の範囲が重複する範囲から、前記ボタンの表示位置を決定する
付記１乃至５のいずれか１つ記載の情報処理装置。
【０１６２】
（付記７）
前記移動距離の閾値が、
前記予め定められた距離を、前記視線位置の検出誤差、前記視線位置の検出誤差及び一度に読むことができる範囲に対応する長さ、又は前記視線位置の検出誤差及び一度に読むことができる範囲に対応する長さ及び前記ボタンの長さで補正することで得られる
付記５記載の情報処理装置。
【０１６３】
（付記８）
前記決定部が、
前記予め定められた距離を、前記視線位置の検出誤差で補正した距離に基づき、前記表示位置を決定する
付記１乃至５のいずれか１つ記載の情報処理装置。
【０１６４】
（付記９）
表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、
特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定し、
決定された前記表示位置に、前記文章を読んだことを入力するためのボタンを前記表示画面上に表示する
処理をコンピュータに実行させるためのプログラム。
【０１６５】
（付記１０）
表示画面における視線位置の改行に相当する移動を検出することによって既読判定を行うべき文章に含まれる複数の行のうち最終行の行末位置を特定し、
特定された前記最終行の行末位置から、予め定められた距離以上の視線位置の移動が検出されるような表示位置を決定し、
決定された前記表示位置に、前記文章を読んだことを入力するためのボタンを前記表示画面上に表示する
処理を含み、コンピュータにより実行される情報処理方法。
【符号の説明】
【０１６６】
１００  情報処理装置
１０１  視線検出部
１０２  表示部
１０３  文書データ処理部
１０３１  表示処理部
１０３２  位置決定部
１０４  第１データ格納部
１０５  第２データ格納部
１０６  判定部
１０７  領域設定部
１０８  第３データ格納部
１０９  入力部
【図１】
2015055950.tif 000003
【図２】
2015055950.tif 000004
【図３】
2015055950.tif 000005
【図４】
2015055950.tif 000006
【図５】
2015055950.tif 000007
【図６】
2015055950.tif 000008
【図７】
2015055950.tif 000009
【図８】
2015055950.tif 000010
【図９】
2015055950.tif 000011
【図１０】
2015055950.tif 000012
【図１１】
2015055950.tif 000013
【図１２】
2015055950.tif 000014
【図１３】
2015055950.tif 000015
【図１４】
2015055950.tif 000016
【図１５】
2015055950.tif 000017
【図１６】
2015055950.tif 000018
【図１７】
2015055950.tif 000019
【図１８】
2015055950.tif 000020
【図１９】
2015055950.tif 000021
【図２０】
2015055950.tif 000022
【図２１】
2015055950.tif 000023
【図２２】
2015055950.tif 000024
【図２３】
2015055950.tif 000025
【図２４】
2015055950.tif 000026
【図２５】
2015055950.tif 000027
【図２６】
2015055950.tif 000028
【図２７】
2015055950.tif 000029
【図２８】
2015055950.tif 000030
【図２９】
2015055950.tif 000031
【図３０】
2015055950.tif 000032
【図３１】
2015055950.tif 000033
【図３２】
2015055950.tif 000034
【図３３】
2015055950.tif 000035