(57)【要約】【課題】表示装置，プログラム及び表示方法に関し、画面上に表示される情報のスクロール速度に関するユーザビリティを向上させる。【解決手段】ユーザの視線位置が画面上で停留した停留点に基づき、画面上に表示される情報のスクロール速度を制御する表示装置において、算出部２Ａと制御部４とを備える。算出部２Ａは、視線位置が停留した時刻が前後する二つの停留点間の距離を算出する。また、制御部４は、算出部２Ａで算出された距離が所定距離以上であるときに、距離が所定距離未満であるときと比較してスクロール速度を速くする。【選択図】図８
2015106327.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの視線位置が画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御する表示装置において、
前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出する算出部と、
前記算出部で算出された前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする制御部と、
を備えたことを特徴とする、表示装置。
【請求項２】
前記制御部において、前記距離のばらつきが所定度合い以上であるときに、前記ばらつきが所定度合い未満であるときと比較して前記スクロール速度を速くする
ことを特徴とする、請求項１記載の表示装置。
【請求項３】
前記二つの前記停留点間の距離に関して、前記情報のスクロール方向に垂直な方向についての第一距離成分を算出する第一算出部を備え、
前記制御部において、前記第一算出部で算出された前記第一距離成分が第一所定距離未満であるときに、前記第一距離成分が第一所定距離以上であるときと比較して前記スクロール速度を遅くする
ことを特徴とする、請求項１又は２記載の表示装置。
【請求項４】
前記制御部において、前記情報の改行に伴う前記視線位置の移動による前記距離が第二所定距離未満であるときに、前記距離が第二所定距離以上であるときと比較して前記スクロール速度を速くする
ことを特徴とする、請求項１〜３の何れか１項に記載の表示装置。
【請求項５】
前記距離の算出回数に対して、前記距離が前記所定距離未満となった回数の割合を算出する割合算出部を備え、
前記制御部において、前記割合が所定割合以上であるときに、前記割合が所定割合未満であるときと比較して前記スクロール速度を遅くする
ことを特徴とする、請求項１〜４の何れか１項に記載の表示装置。
【請求項６】
前記情報として文字列を表示する表示装置であって、
前記制御部において、
前記停留点が前記文字列の後方へ移動したときに、前記文字列を改行方向の順方向にスクロールさせ、
前記停留点が前記文字列の前方へ移動したときに、前記文字列を改行方向の逆方向にスクロールさせる
ことを特徴とする、請求項１〜５の何れか１項に記載の表示装置。
【請求項７】
ユーザの視線位置が表示装置の画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御するプログラムにおいて、
複数の前記停留点のうち前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出し、
前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする
処理をコンピュータに実行させるプログラム。
【請求項８】
ユーザの視線位置が表示装置の画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御する表示方法において、
複数の前記停留点のうち前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出し、
前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする
ことを特徴とする、表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、視線入力インタフェースを利用して画面上に表示される情報のスクロール速度を制御する表示装置，プログラム及び表示方法に関する。
【背景技術】
【０００２】
従来、コンピュータやスマートフォン等の電子機器に視線入力インタフェースを適用することで、電子機器の操作性，利便性を向上させる技術が開発されている。すなわち、ユーザの視線を用いて電子機器を操作できるようにしたものである。ユーザの視線は、例えばビデオカメラで撮像された可視光撮影像や赤外線撮影像等から測定される。具体的な測定手法としては、角膜反射法や虹彩位置による推定法，瞳孔の扁平度による推定法等が知られている。
【０００３】
ところで、電子機器の表示画面における表現手法の一つとして、情報のスクロール表示を挙げることができる。スクロール表示とは、画面上に表示される画像やテキスト等の情報を平行移動させつつ描画する手法であり、例えば描画領域に収まらない大きな画像や大量のテキストを表示するのに用いられる。情報を画面上でスライドさせることで、一部分しか表示されていない情報の全体像や、他の部分との連続性をユーザに意識させることができる。
【０００４】
インターネット用ブラウザにおいては、サイト上のコンテンツに対するスクロール機能をマウスホイールの回転操作やタッチパネル上のフリック操作（スライド操作）に対応させたものが存在する。一方、近年ではこのようなマニュアルの操作に代えて、あるいは加えて、上記の視線入力インタフェースを利用した操作環境を提供することが検討されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2009-294848号公報
【特許文献２】特開2009-151501号公報
【特許文献３】特開平06-096130号公報
【特許文献４】特開平11-085452号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
視線を用いてスクロール表示を制御する場合、ユーザの負担が少なく、かつ、閲覧しやすい適切なスクロール速度で情報をスクロール表示することが望まれる。そこで、スクロール表示される情報に対するユーザの過去の閲覧履歴や目視率に基づいて、スクロール速度を制御することが考えられる。あるいは、ユーザの視線の移動速度に基づいて、情報のスクロール速度を制御することが考えられる。
【０００７】
しかしながら、前者の手法を採用した場合、その情報に対する過去のユーザの振る舞いがスクロール速度に関連付けられることになる。そのため、一つの情報に対するユーザの読み方が変化したときの対応が難しい。例えば、普段は時間をかけてゆっくりと読んでいる文書について、ユーザが短時間で流し読みしたい場合であっても、過去と同様にスクロール速度が低速となってしまう。
【０００８】
また、眼球運動には随意運動と不随意運動とが含まれる。そのため、後者の手法を採用した場合であっても、移動速度を精度よく算出することが難しく、適切なスクロール速度で情報をスクロール表示することが難しい場合がある。
【０００９】
例えば、視線の動きを大局的に捉えれば、眼球運動は、視線位置が所定範囲内に留まる停留（Fixation）と、視線位置が大きく飛躍するサッカード（Saccade，サッケードともいう）とに分類することができる。一方、停留中であっても眼球運動が完全に停止しているわけではなく、マイクロサッカード（Micro-saccade），ドリフト（Drift），トレモア（Tremor）等と呼ばれる非定常的な固視微動が生じている。つまり、視線の移動速度は常に変動しているため、どの時点での視線の移動速度をスクロール速度に反映させるかによって、情報の閲覧しやすさが劇的に変化しうる。
【００１０】
本件の目的の一つは、このような課題に鑑み創案されたもので、画面上に表示される情報のスクロール速度に関するユーザビリティを向上させることである。
また、前記目的に限らず、後述する「発明を実施するための形態」に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的として位置付けることができる。
【課題を解決するための手段】
【００１１】
ここで開示する表示装置は、ユーザの視線位置が画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御する表示装置である。
前記表示装置は、前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出する算出部と、前記算出部で算出された前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする制御部とを備える。
【発明の効果】
【００１２】
情報のスクロール速度に関するユーザビリティを向上させることができる。
【図面の簡単な説明】
【００１３】
【図１】視線の運動を説明するための模式図であり、（Ａ）は文章を読んでいるときの停留及びサッカードを示す図、（Ｂ）は停留点に含まれるマイクロサッカード，ドリフト，トレモアを示す図である。
【図２】実施形態の表示装置が適用されたコンピュータを例示する斜視図である。
【図３】コンピュータ装置構成を示すブロック図である。
【図４】スクロールの表示手法を説明するためのフローチャートである。
【図５】情報の表示領域及び文章の一行の長さ等を示す図である。
【図６】視線位置の変化と読みパターンとの関係を説明するための模式図であり、（Ａ）は精読時，（Ｂ）は改行移動時，（Ｃ）は遅い逆読み時，（Ｄ）速い逆読み時，（Ｅ）は略読（流し読み）時に対応する。
【図７】情報の表示領域上に設定された判定領域やトリガ領域を示す図である。
【図８】スクロールを制御するプログラムのブロック構成図である。
【図９】視線位置の移動距離の算出に係るフローチャートである。
【図１０】読みパターンの判定に係るフローチャートである。
【図１１】スクロール速度の設定に係るフローチャートの例である。
【図１２】スクロール速度の設定に係るフローチャートの例である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して表示装置，プログラム及び表示方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形や技術の適用を排除する意図はない。すなわち、本実施形態をその趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。
【００１５】
［１．用語］
本実施形態の表示装置，プログラム及び表示方法は、画面上に表示される情報のスクロール速度を制御するものである。ここでいう「スクロール速度」とは、画像や絵文字，テキストなどの視覚情報をスクロールさせる際の画面上での移動速度である。スクロール速度は、ユーザの視線位置が画面上で停留した停留点に基づいて制御される。
【００１６】
ここでは、ユーザの眼球運動が停留（Fixation）とサッカード（Saccade，急速眼球運動，サッケードともいう）とに分類される。これらは、視線の角速度や、画面上における視線位置の移動速度に応じて分類される。例えば、視線の角速度が所定角速度以下であるときや、視線の移動速度が所定速度以下であるときには、視線が停留しているものとみなされ、角速度が所定角速度を超えるときに、サッカードが発生したとみなされる。
【００１７】
画面上で視線が停留した位置のことを停留点と呼ぶ。例えば、画面上での視線の移動距離が所定距離以下であり、かつ、その状態が所定時間継続したことを以て、停留点が生じたとみなす。停留点の座標は、その停留点に含まれる全ての視線座標の平均値としてもよいし、最初にその停留点に進入した視線座標としてもよい。
【００１８】
図１（Ａ）は、画面上に表示された横書き複数行の文字情報（テキスト）と、それを読むユーザの視線位置の軌跡とを図示したものである。文字情報を読んでいるときの視線位置は、おおむね文字情報の配列方向に沿って、停留とサッカードとを繰り返しながら、文字情報の下流側に向かって移動する。図１（Ａ）中の白抜き四角は一つの文字を表し、黒丸は停留点を表す。また、停留点間を結ぶ直線はサッカードに相当し、その長さ及び方向が視線の移動速度及び移動方向に対応する。停留点は、文字情報上やその周辺を数文字間隔で飛び飛びに移動する。本実施形態では、これらの停留点間の距離に基づいて情報の読み方が識別され、改行方向（縦方向）のスクロール速度が制御される。
【００１９】
図１（Ｂ）は、一つの停留点内における固視微動を図示したものである。マイクロサッカードは、停留点内における視線の直線的な移動部分に相当する。一方、ドリフトは、マイクロサッカードの終点と始点とを接続する直線又は曲線状の部分に相当し、トレモアはドリフト上に重畳された高周波振動に相当する。本実施形態では、停留した時刻が前後する二つの停留点間の距離に基づいて、すなわち、停留中における固視微動の影響が取り除かれた視線の移動速度に基づいて、スクロール速度が制御される。
【００２０】
［２．装置構成］
図２は、本実施形態に係るパーソナルコンピュータ１０の斜視図である。ここでは、ディスプレイ１６の筐体にコンピュータ２０が内蔵されたディスプレイ一体型デスクトップパソコンを例示する。このパーソナルコンピュータ１０には、ビデオカメラ１１，キーボード１２，マウス１３，ストレージリーダライタ１４，ネットワーク通信装置１５，ディスプレイ１６及びコンピュータ２０が設けられる。これらは、図示しない電力源（例えば、二次電池や家庭用コンセント等）からの電力供給を受けて作動する。
【００２１】
ビデオカメラ１１は、ユーザの視線位置を検出する動画撮影装置であり、少なくとも画角内にユーザの眼球が入る位置に設けられる。このビデオカメラ１１の位置は、ディスプレイ１６に対する相対位置が固定されている。したがって、ビデオカメラ１１で撮影された映像からユーザの位置及び視線の方向ベクトルを特定することで、ディスプレイ１６上でユーザが注視している視線位置を特定することができる。ここで撮影された撮像情報は、コンピュータ２０に伝達される。
【００２２】
キーボード１２及びマウス１３はともに、コンピュータ２０の入力装置の一つである。これらのキーボード１２及びマウス１３には、ディスプレイ１６に表示される情報をスクロールさせる機能が予め割り当てられている。例えば、インターネット用ブラウザ上でキーボード１２のページダウン，ページアップキーを押下することで、ブラウザ上の情報が上下方向にスクロールする。また、マウス１３のホイールを上下に回転操作することによっても、同様の動作が実現される。キーボード１２及びマウス１３の操作によるスクロールの速度は、ユーザによって任意に設定可能とされる。キーボード１２，マウス１３から入力される操作情報は、コンピュータ２０に伝達される。なお、本実施形態では、これらのキーボード１２及びマウス１３の操作に優先して、視線入力によるスクロール速度の制御がなされる。
【００２３】
ストレージリーダライタ１４は、リムーバブルメディアの読み書き用のデバイスであり、インタフェース装置を介してコンピュータ２０に接続される。コンピュータ２０は、内蔵メモリ上に記憶されたプログラムだけでなく、リムーバブルメディア上に記録されたプログラムも実行可能である。例えば、本実施形態の表示手法を実行するプログラムは、リムーバブルメディア上に記録され、ストレージリーダライタ１４からコンピュータ２０に読み込まれて実行されることとしてもよい。
【００２４】
ネットワーク通信装置１５は、所定の通信技術規格に基づいた有線又は無線の通信装置である。例えば、上記のブラウザ上に表示される情報には、ネットワーク通信装置１５を介してコンピュータ２０に伝達される画像，絵文字，テキストの情報が含まれる。また、オンラインの情報だけでなく、コンピュータ２０の内部に記憶されているオフラインの情報も含まれる。
【００２５】
ディスプレイ１６（表示装置）は、コンピュータ２０から出力される映像信号を表示するものである。このディスプレイ１６には、例えば上記のブラウザや、ブラウザ上の各種情報が表示される。本実施形態の表示手法を実行するプログラムは、ディスプレイ１６に表示される情報のスクロール速度を制御するように機能する。スクロール速度が制御される具体的なアプリケーションは任意であり、例えば画像表示ソフトやテキストエディタ，電子ブックリーダ，ブラウザ，電子メールクライアント等に含まれるスクロール表示が制御される。
【００２６】
コンピュータ２０は、CPU（Central Processing Unit），MPU（Micro Processing Unit）といったプロセッサやROM（Read Only Memory），RAM（Random Access Memory），インタフェース装置等を有する電子計算機である。このコンピュータ２０は、ビデオカメラ１１から伝達される撮像情報に基づいて、ディスプレイ１６を閲覧しているユーザの視線の動きを検知し、その種類を認識する機能を持つ。また、ここで認識された視線の動きの種類に基づいて、ディスプレイ１６に表示される情報のスクロール速度を制御する機能を持つ。
【００２７】
［３．コンピュータの構成］
図３に示すように、本実施形態のコンピュータ２０には中央処理装置２１（CPU），主記憶装置２２，補助記憶装置２３，インタフェース装置２４が設けられ、これらがバス２９を介して互いに通信可能に接続される。中央処理装置２１は、制御ユニット（制御回路）や演算ユニット（演算回路），キャッシュメモリ（レジスタ群）等を内蔵する処理装置（プロセッサ）である。また、主記憶装置２２は、プログラムや作業中のデータが格納されるメモリ装置であり、例えば前述のRAM，ROMがこれに含まれる。一方、補助記憶装置２３は、主記憶装置２２よりも長期的に保持されるデータやプログラムが格納されるメモリ装置であり、例えばフラッシュメモリ等のROMがこれに含まれる。
【００２８】
インタフェース装置２４は、コンピュータ２０と外部装置との間の入出力（Input/Output；I/O）を司るものである。ここには、入力部２５，ストレージ制御部２６，通信制御部２７，出力部２８が設けられる。
入力部２５は、ビデオカメラ１１やキーボード１２，マウス１３とコンピュータ２０とのインタフェースとして機能するものである。ビデオカメラ１１から伝達される撮像情報や、キーボード１２，マウス１３から伝達される操作情報は、入力部２５を介してコンピュータ２０内に入力される。
【００２９】
ストレージ制御部２６は、ストレージリーダライタ１４とコンピュータ２０とのインタフェースとして機能するものである。ストレージ制御部２６は、リムーバブルメディアが装着されているストレージリーダライタ１４に対してリード／ライト等のアクセスコマンドを送信することで、データの書き込みや読み出しを行う。なお、ストレージリーダライタ１４上のリムーバブルメディアには、ビデオカメラ１１で撮影された撮像データや、コンピュータ２０で認識された視線の動きに関する情報の読み書きも可能である。
【００３０】
通信制御部２７は、ネットワーク通信装置１５とコンピュータ２０とのインタフェースとして機能するものである。また、出力部２８は、ディスプレイ１６とコンピュータ２０とのインタフェースとして機能するものである。ディスプレイ１６に表示される情報のスクロール速度は、コンピュータ２０内で認識された視線の動きの種類に応じて制御される。なお、ディスプレイ１６との通信の種類は、例えば有線通信デバイスによる有線通信であってもよいし、あるいは無線通信デバイスによる無線通信であってもよい。
【００３１】
［４．制御内容］
図４は、上記のコンピュータ２０で実行されるスクロール制御の流れを説明するためのフローチャートである。制御内容を大局的に捉えれば、本実施形態のスクロール制御には、視線検出過程，読みパターン判定過程，トリガ検出過程，読み方推定過程，速度設定過程、スクロール制御過程が含まれる。
【００３２】
視線検出過程（ステップＡ１０）では、ビデオカメラ１１で検出された撮像情報に基づき、ユーザの視線位置が検出されるとともに、視線位置がディスプレイ１６上で停留した停留点が検出される。ここでは、例えば図１（Ａ）中に示すように、ディスプレイ１６上における停留点の位置が把握される。この停留点は、ユーザによるディスプレイ１６上の情報の読み方（見方）に応じた軌跡，分布を示す。
【００３３】
ステップＡ２０では、ステップＡ１０で把握された停留点の分布から、ユーザの「読みパターン」が把握される。ここではまず、複数の停留点のうち視線位置が停留した時刻が前後する二つの停留点について、それらの間の距離が算出される。つまり、視線位置がある停留点から次の停留点まで移動したときに、それらの停留点間の距離が算出される。
【００３４】
ディスプレイ１６上における停留点の位置を特定するための座標系は、図５に示すように、ディスプレイ１６の左上角を原点とした直交座標系とし、水平方向右側に向かうに連れてx成分が増加し、垂直方向下側に向かうに連れてy成分が増加することとする。ある時刻tにおける停留点Pt(xt，yt)と、その直前に検出された停留点Pt-1(xt-1，yt-1)との距離dtは、以下の式１〜式３のように記述される。ここで、dxtは水平方向の距離成分（水平距離成分，第一距離成分，以下x成分と呼ぶ）であり、dytは垂直方向の距離成分（垂直距離成分，第二距離成分，以下y成分と呼ぶ）である。ディスプレイ１６の表示領域のサイズは、x成分が0からXまでの範囲とし、y成分が0からYまでの範囲とする。
【００３５】
【数１】
2015106327.tif 000003
【００３６】
ユーザの「読みパターン」は、距離dt，x成分dxt，y成分dytの組み合わせに基づいて判別される。本実施形態で判別される「読みパターン」の種類は、図６（Ａ）〜（Ｅ）に示す５パターンである。これらの「読みパターン」は、停留点が移動する毎に判別される。
図６（Ａ）に示すパターン１は、ユーザが情報を精読している状態に対応するパターンである。パターン１は、例えば距離dtが比較的小さく、y成分dytが0に近い（x成分dxtと比較してy成分dytが小さい）場合に相当する。
【００３７】
図６（Ｂ）に示すパターン２は、ユーザの視線位置が改行を跨いで移動した状態に対応するパターンである。パターン２は、例えばx成分dxtが負であり、y成分dytが情報の一行分前後であって、距離dtが一行の長さに近い場合に相当する。
図６（Ｃ）に示すパターン３は、ユーザがすでに読んだ情報を読み返している状態（遅い逆読みの状態）に対応するパターンである。パターン３は、例えばy成分dytがやや小さい（絶対値が比較的小さい）負の値であって、距離dtが比較的小さい場合に相当する。
【００３８】
図６（Ｄ）に示すパターン４は、ユーザがすでに読んだ情報を略読（拾い読み，速い逆読み）している状態に対応するパターンである。パターン４は、例えばy成分dytがやや大きい（絶対値が比較的大きい）負の値であって、距離dtが比較的大きい場合に相当する。
図６（Ｅ）に示すパターン５は、ユーザがまだ読んでいない情報を略読（流し読み）している状態に対応するパターンである。パターン５は、例えば距離dtが比較的大きい場合や、上記のパターン１〜４の何れにも当てはまらない場合に相当する。
【００３９】
ステップＡ３０では、ステップＡ１０で把握された停留点が、画面上のトリガ領域に進入したか否かが判定される。トリガ領域とは、ディスプレイ１６に表示されている情報をスクロールさせるための条件に係る領域である。トリガ領域内に停留点が位置する場合（すなわち、視線位置がトリガ領域に進入した場合）に、スクロール制御が開始される。なお、ステップＡ３０は、図４中に示すように、ステップＡ２０，Ａ４０，Ａ５０に対して並列的に実行してもよいが、ステップＡ２０，Ａ４０の間に直列的に挿入してステップＡ２０が完了する毎に実行してもよい。
【００４０】
図７に示すように、ディスプレイ１６上の領域は、スクロール領域と除外領域とに分類され、スクロール領域の上端部及び下端部が上トリガ領域及び下トリガ領域とされる。下トリガ領域は、情報を下方（順方向）にスクロールさせるための領域となり、上トリガ領域は、情報を上方（逆方向）にスクロールさせるための領域となる。除外領域とはスクロール表示に関係しない領域であって、例えば情報がスクロール表示されない領域（例えば、ブラウザ上のツールバー表示領域や広告領域など）である。また、領域以外のトリガを用いる際には、トリガ領域は設定不要であり、情報の表示領域全体をスクロール領域とすることなども考えられる。
【００４１】
ステップＡ４０では、停留点が移動する毎に判別された「読みパターン」の分布から、ユーザの情報に対する全体的な「読み方」が推定される。ここでは、最も頻度の高い「読みパターン」が、ユーザの「読み方」に反映されているものと推定する。例えば、パターン１の回数が多い場合、ユーザは「精読」しているものと推定し、パターン５の回数が多い場合、ユーザは「略読（流し読み）」しているものと推定する。
【００４２】
ステップＡ５０では、ステップＡ４０で推定された「読み方」に基づいて、スクロール速度が設定される。順方向のスクロール速度は、例えばパターン５の回数が最も多い場合に最も速く設定され、パターン１の回数が最も多い場合に最も遅く設定される。一方、逆方向のスクロール速度は、例えばパターン４の回数が最も多い場合に最も速く設定され、パターン３の回数が最も多い場合に最も遅く設定される。
【００４３】
ステップＡ６０では、ステップＡ５０で設定されたスクロール速度となるように、ディスプレイ１６上のスクロール表示が制御される。これにより、ユーザの「読み方」に応じた速度で情報がスクロール表示される。例えば、ユーザが「精読」している場合には、キーボード１２及びマウス１３の操作がなされなくても、自動的にスクロール速度が緩やかとなる。一方、ユーザが「流し読み」している場合には、自動的にスクロール速度が高速となる。
【００４４】
［５．プログラム］
上記のようなスクロール制御を実施するためのプログラムのブロック構成を図８に例示する。これらの処理内容は、例えばアプリケーションプログラムとしてコンピュータ２０の補助記憶装置２３やリムーバブルメディアに記録され、主記憶装置２２内のメモリ空間内に展開されて実行される。処理内容を機能的に分類すると、このプログラムには、検出部１，算出部２，判定部３，制御部４が設けられる。
【００４５】
［５−１．検出部］
検出部１は、上記のステップＡ１０の制御内容に対応するものであり、ユーザの視線位置を検出するとともに、その停留点を検出するものである。この検出部１には、注視点検出部１Ａと停留点検出部１Ｂとが設けられる。
【００４６】
注視点検出部１Ａは、ディスプレイ１６の画面上におけるユーザの視線位置を「注視点」として検出するものである。注視点の座標は、ディスプレイ１６の表面とユーザの視線の方向ベクトルとの交点で与えられる。具体的な注視点の検出手法は任意であり、角膜反射法，虹彩位置による推定法，瞳孔の扁平度による推定法等を採用することができる。
【００４７】
注視点の検出手法例として、角膜反射法について簡単に説明する。角膜反射法とは、点光源の可視光線や近赤外線を眼球に照射し、角膜表面における反射光（いわゆるプルキニエ像）と瞳孔との位置関係から視線の方向を特定する手法である。注視点検出部１Ａは、ビデオカメラ１１で撮影された画像データを解析することによって、ユーザの瞳孔の中心点及びプルキニエ像を特定し、視線の方向ベクトルを算出するとともに、画面上でのユーザの視線位置を特定する。ここで算出されたユーザの視線位置の情報は、停留点検出部１Ｂに伝達される。
【００４８】
停留点検出部１Ｂは、ユーザの視線位置の停留点を検出するものである。ここでは、ディスプレイ１６の画面上のうち、図７中に示すスクロール領域内で視線位置が停止した場合に、その位置が「停留点」と判断される。例えば、視線位置の移動距離が所定距離以下（例えば、数mm以下）である状態が所定時間以上（例えば、数十ms以上）継続した場合に、視線が停留したと判断され、その位置が「停留点」とされる。あるいは、視線の角速度が所定角速度以下（例えば、秒速数°以下）である状態が所定時間以上継続した場合に、視線が停留したと判断してもよい。
【００４９】
停留点検出部１Ｂは、新たな停留点が検出される毎に、その停留点が検出された時刻と停留点の座標とをメモリ（例えば、主記憶装置２２，補助記憶装置２３，リムーバブルメディア等）に記録する。停留点の座標は、その停留点に含まれる全ての視線座標の平均値としてもよいし、最初にその停留点に進入した視線座標としてもよい。
【００５０】
停留点の軌跡には、ユーザによる情報の読み方が反映される。例えば、ユーザがテキストを精読しているときには、図６（Ａ）に示すように、視線位置が停留する時間が長くなり、停留点の間隔が短くなる。また、停留点の移動方向は、文字列の後方へ向かう方向となる。一方、ユーザがテキストを流し読みしているときには、図６（Ｅ）に示すように、視線位置が停留する時間が短くなり、停留点の間隔が長くなる。また、停留点の移動方向は、必ずしも文字列の後方へ向かう方向にはならない。本実施形態では、停留点の移動パターンを判別することで、ユーザによる情報の読み方を推定する。
【００５１】
［５−２．算出部］
算出部２は、検出部１で検出された二つの停留点間の距離に関する演算を実施するものである。言い換えると算出部２は、ある停留点から次の停留点までのサッカードの長さに関する演算を実施する。算出部２には、距離算出部２Ａ，第一算出部２Ｂ，第二算出部２Ｃが設けられる。
【００５２】
距離算出部２Ａは、視線位置が停留した時刻が前後する二つの停留点について、距離dtを算出するものである。ここでは、上述の式１〜式３に従って、直近の停留点Pt(xt，yt)とその直前に検出された停留点Pt(xt-1，yt-1)との間の距離dtが算出される。ここで算出される距離dtは、例えば図１（Ａ）中に示されるサッカードによる視線の移動距離に相当する。つまり、図１（Ｂ）中に示されるマイクロサッカード，ドリフト，トレモア等の不随意運動に由来する視線の移動距離は、距離dtには大きな影響を与えない。このことから、距離dtは、ユーザによる情報の「読み方」を推定するための指標の一つとなりうる。
【００５３】
第一算出部２Ｂは、距離算出部２Ａで距離dtを算出された二つの停留点について、そのx成分dxtを算出するものであり、第二算出部２Ｃはそのy成分dytを算出するものである。ここでは、上述の式２，式３に従って、停留点Pt-1(xt-1，yt-1)と停留点Pt(xt，yt)との間のx成分dxt及びy成分dytが算出される。算出部２で算出された距離dt，x成分dxt及びy成分dytの情報は、判定部３に伝達される。
【００５４】
［５−３．判定部］
判定部３は、算出部２で算出された停留点間の距離dt，x成分dxt及びy成分dytの情報に基づき、ユーザの情報の読み方を判定するものである。この判定部３には、読みパターン判定部３Ａと読み方判定部３Ｂとが設けられる。
【００５５】
読みパターン判定部３Ａは、二つの停留点間における停留点の移動パターンが、図６（Ａ）〜（Ｅ）に示されたどの「読みパターン」に対応するかを判定するものである。以下に、各パターンの判定条件を例示する。これらの判定条件は記載された順に優先されるものとし、何れかの条件が成立した時点でそれ以降の条件は判定されないものとする。したがって、読みパターン判定部３Ａでは、個々のサッカード（二つの停留点間の移動パターン）に対応する「読みパターン」が択一的に決定される。
【００５６】
「読みパターン」の判定条件例
パターン１：2c<dxt<10c かつ100dyt<dxt かつ 0.5l>dt が成立
パターン２：パターン１ではなく dxt<0 かつ dyt<3c かつ 0.8l<dt が成立
パターン３：パターン１〜２ではなく -5c<dyt<0 が成立
パターン４：パターン１〜３ではなく dyt<-5c が成立
パターン５：パターン１〜４ではない
（cは一文字の大きさに相当する寸法、lは一行の長さに相当する寸法である。）
【００５７】
読み方判定部３Ｂは、読みパターン判定部３Ａで判定された複数の「読みパターン」に基づき、全体的なユーザの「読み方」を判定するものである。ここでは、最も頻度の高い「読みパターン」が、ユーザの「読み方」に反映されているものと判断される。「読みパターン」の頻度は、例えばディスプレイ１６に表示される情報が変更されるたびに計測されることとしてもよいし、ユーザ毎に計測されることとしてもよい。例えば、ブラウザ上に表示される情報のスクロール速度を制御する際には、セッション毎の頻度を判定してもよいし、ページ毎の頻度を判定してもよい。ここで判定された「読み方」は、制御部４に伝達される。
【００５８】
［５−４．制御部］
制御部４は、判定部３で判定された「読み方」に応じたスクロール速度を設定し、そのスクロール速度で情報をスクロール表示させるものである。ここでは、ユーザの視線位置がディスプレイ１６上のトリガ領域に進入したときに、画面に表示されている情報を上下方向にスクロールさせる制御が実施される。スクロールの方向は、視線位置が進入したトリガ領域に応じて定められる。
【００５９】
例えば、図７に示すように、視線位置が下トリガ領域に進入したときには、スクロール方向が上方向（順方向）とされる。ディスプレイ１６に表示されている情報がテキスト（文字情報）であるとすると、スクロール方向を順方向とすることで、スクロール領域に表示されている部分よりも後方のテキストが画面上に表示される。一方、視線位置が上トリガ領域に進入したときには、スクロール方向が下方向（逆方向）とされる。これにより、スクロール領域に表示されている部分よりも前方のテキストが画面上に表示される。
【００６０】
制御部４には、スクロール速度を設定するための要素として、距離制御部４Ａ，ばらつき制御部４Ｂ，精読制御部４Ｃ，改行制御部４Ｄ，割合制御部４Ｅ，方向制御部４Ｆが設けられる。これらの制御部４Ａ〜４Ｆは、所定の条件に応じて何れか一つが選択される制御構成としてもよい。あるいは、各制御部４Ａ〜４Ｆで個別にスクロール速度を設定したうえで、それらの複数のスクロール速度に基づいて最終的なスクロール速度を決定する制御構成としてもよい。
【００６１】
距離制御部４Ａは、算出部２で算出された距離dtに基づいてスクロール速度を設定するものである。ここでは、距離dtが所定距離以上であるときに、所定距離未満であるときと比較して、速いスクロール速度が設定されてスクロールが制御される。反対に、距離dtが所定距離未満であるときには、スクロール速度が遅くされる。
【００６２】
例えば、パターン１以外が成立した状態（距離dtが0.5l以上であるとき）では、パターン１が成立した状態（距離dtが0.5l未満であるとき）と比較して、スクロール速度が速くなる。これにより、ユーザが精読している情報のスクロール速度が低速となり、流し読みしている情報のスクロール速度は高速となる。距離dtが長いほどスクロール速度を速くすることで、流し読みの閲覧性が向上する。
なお、距離dtとスクロール速度とを対応させて、距離dtが短いほど、より遅いスクロール速度が設定されることとしてもよい。つまり、スクロール速度を制御するための閾値が設定されていなくてもよい。
【００６３】
ばらつき制御部４Ｂは、算出部２で算出された距離dtのばらつきに基づいてスクロール速度を設定するものである。ここでは、距離dtのばらつきが所定度合い以上であるときに、そのばらつきが所定度合い未満であるときと比較して、速いスクロール速度が設定される。ここでいう「ばらつき」は、例えば距離dtの偏差（標準偏差，平均偏差，四分偏差など）の大きさや分散（平方偏差，標本分散など）を算出することで把握することができる。
【００６４】
例えば、標準偏差が所定標準偏差未満であるときに、距離dtのばらつきが小さいものと判断されて、スクロール速度が低速とされる。あるいは、標本分散値が所定標本分散値未満であるときに、スクロール速度が低速とされる。ユーザが情報を精読している場合には、サッカードの距離がやや短くなり、停留点間の距離のばらつきが比較的小さくなる。したがって、距離dtのばらつきが小さいほど、スクロール速度を遅くすることで、表示される情報の可読性が向上する。
なお、距離dtのばらつきとスクロール速度とを対応させて、ばらつきが小さいほど、より遅いスクロール速度を設定し、ばらつきが大きいほどより速いスクロール速度を設定してもよい。
【００６５】
精読制御部４Ｃは、算出部２で算出された距離dt及びx成分dxtに基づいてスクロール速度を設定するものである。ここでは、ユーザによる情報の「読み方」に着目し、x成分dxtが第一所定距離未満であるときに、x成分dxtが第一所定距離以上であるときと比較して遅いスクロール速度が設定される。あるいは、x成分dxtが小さいほどスクロール速度が低速に設定される。このように、ユーザが情報を精読している場合には、その読み方に合わせてスクロール速度を低速とすることで、ユーザによる情報の読み飛ばしが回避されやすくなり、スクロール速度が適正化される。
【００６６】
改行制御部４Ｄは、算出部２で算出された距離dt及びx成分dxtに基づいてスクロール速度を設定するものである。ここでは、情報の改行部分におけるユーザの「読み方」に着目し、視線位置が改行部分を跨いだときのx成分dxtが第二所定値未満であるときに、x成分dxtが第二所定値以上であるときと比較して、スクロール速度が速く設定される。あるいは、x成分dxtが大きいほどスクロール速度が遅く設定される。ここでいうx成分dxtは、文字情報の改行に伴う視線位置の移動によって生じた距離成分であって、情報のスクロール方向に垂直な方向についての距離成分である。
【００６７】
視線位置が改行部分を跨いだときのx成分dxtは、一行の長さが短いほど短縮される。また、ディスプレイ１６に表示される情報が同一であっても、ブラウザの種類や画面上におけるスクロール領域の幅に応じて、一行の長さは変化する。一方、x成分dxtに基づいて画面上での情報の表示幅を推定し、x成分dxtが小さいほどスクロール速度を速くすることで、スクロール表示される情報をユーザの「読み方」に追いつかせやすくなり、表示される情報の可読性が向上する。
【００６８】
割合制御部４Ｅは、算出部２における距離dtの算出回数に対して、距離dtが所定距離未満となった回数の割合を算出し、この割合に基づいてスクロール速度を制御するものである。ここでは、上記の割合が所定割合未満であるときと比較して、所定割合以上であるときにスクロール速度が遅く設定される。あるいは、上記の割合が高いほど、スクロール速度が遅く設定される。つまり、判定部３で判定された一回の「読みパターン」に基づくのではなく、判定された回数が多い高頻度の「読みパターン」に基づいてスクロール速度が制御される。ここでいう所定距離としては、例えばパターン１の判定条件に係る距離0.5lを採用することができる。
【００６９】
また、距離dtが所定距離未満となった回数の代わりに、パターン１が成立した回数を用いてもよい。つまり、読み方判定部３Ｂで判定されたユーザの「読み方」に対応するスクロール速度を設定してもよい。「読み方」と順方向のスクロール速度との関係としては、パターン５が最も速く、次いでパターン２が速く、パターン１で最も遅くすることが考えられる。また、逆方向のスクロール速度については、パターン３よりもパターン４で速くすればよい。
【００７０】
方向制御部４Ｆは、算出部２で算出されたy成分dytに基づいてスクロール方向を設定するものである。ここでは、y成分dytの値が正であるときに、情報のスクロール方向が順方向に設定される。ここでいう順方向とは、ディスプレイ１６の画面上で情報を上方に向かってスライド移動させる方向である。例えば、テキスト情報が画面上に表示されているときには、その情報を順方向にスクロールさせることによって、後側の文字列が画面上に補充されることになる。一方、y成分dytの値が負であるときには、情報のスクロール方向が逆方向に設定される。
【００７１】
本実施形態では、表示される情報を順方向にスクロールさせる際に、パターン１，２，５のうち精読状態に対応するパターン１の割合が所定割合以上であるときに、スクロール速度が遅く設定される。一方、表示される情報を逆方向にスクロールさせる際には、パターン３，４のうち、視線の移動距離が比較的短いパターン３の割合が所定割合以上であるときに、スクロール速度が遅く設定される。なお、スクロールの速度は、パターン１，３の割合が高いほど、より低速とされることとしてもよい。回数の割合（頻度）を参照することにより、判定部３で判定された「読みパターン」の傾向に合わせてスクロール速度を設定することができ、スクロール制御の信頼性が向上する。
【００７２】
［６．フローチャート］
図９〜図１１は、コンピュータ２０に適用されたスクロール速度の制御手順を説明するためのフローチャートである。これらのフローは、例えば補助記憶装置２３やリムーバブルメディアに記録されたアプリケーションプログラムによる制御手順に対応するものであり、コンピュータ２０に読み込まれて所定周期で繰り返し実行される。これらのプログラムの実行周期は、ビデオカメラ１１で画像データの撮影周期（フレームレート）に応じた周期とされる。
【００７３】
［６−１．距離算出フロー］
図９のフローは、おもに検出部１及び算出部２での演算内容に対応するものである。ステップＢ１０では、検出部１の注視点検出部１Ａにおいて、ディスプレイ１６の画面上でのユーザの視線位置が注視点として検出される。なお、ユーザの視線がディスプレイ１６の画面外を向いているときには、注視点の検出は不要である。またここでは、ディスプレイ１６のスクロール領域に表示されている情報が横書きのテキスト情報であるものとし、スクロール方向は上下方向とする。
【００７４】
ステップＢ２０では、停留点検出部１Ｂにおいて、視線位置の停留条件が成立したか否かが判定される。例えば、画面上のスクロール領域内において、注視点が所定のスポット範囲内に所定時間以上留まっているときに、停留条件が成立したと判定される。あるいは、視線の角速度が所定角速度を下回った状態で所定時間が経過した場合に、停留条件が成立したと判定してもよい。ここで、停留条件が成立している場合には、ステップＢ３０に進み、不成立の場合にはそのままこのフローを終了する。ステップＢ３０以降のステップは、新たな停留点が発見されるたびに実行される。
【００７５】
ステップＢ３０では、ディスプレイ１６上における停留点の座標とその検出時刻とがメモリに記録される。検出時刻の情報は、停留点が検出された順序を特定するのに用いられる。したがって、検出時刻の情報の代わりに、順序を表す情報をメモリに記録してもよい。また、停留点の座標の情報は、少なくとも停留点間の距離dtを算出するのに用いられる。なお、ここで用いられる座標系の種類は任意であり、例えば図５に示すような直交座標系の代わりに、前回の停留点の座標を原点とした極座標系を用いてもよい。
【００７６】
ステップＢ４０では、距離算出部２Ａにおいて、時間的に前後する二つの停留点Pt(xt，yt)，Pt-1(xt-1，yt-1)について、停留点間の距離dtが算出される。また、第一算出部２Ｂでは、これらの停留点間のx成分dxtが算出されるとともに、第二算出部２Ｃでは、これらの停留点間のy成分dytが算出される。x成分dxtは、Pt-1(xt-1，yt-1)からPt(xt，yt)へと向かう位置ベクトルを、情報のスクロール方向と垂直な方向に分解したものに相当する。また、y成分dytは、上記の位置ベクトルを情報のスクロール方向と平行な方向に分解したものに相当する。その後のステップＢ５０では、図１０に示すパターン判定フローへと制御が移行する。
【００７７】
パターン判定フローでは、ステップＢ４０で算出された距離dt，x成分dxt及びy成分dytに基づいて、ユーザの「読みパターン」の種類が判定され、各々のパターンの判定回数が累積的に計測された後に、距離算出フローへと復帰する。
ステップＢ６０では、制御部４において、停留点Pt(xt，yt)がディスプレイ１６上のトリガ領域に進入したか否かが判定される。この条件が成立すると、ステップＢ７０に進んで図１１に示す速度設定フローへと制御が移行する。一方、ステップＢ６０の条件が不成立の場合は、そのままこのフローを終了し、所定の周期を経て、制御が再びステップＢ１０から実行される。
【００７８】
［６−２．パターン判定フロー］
図１０のフローは、おもに判定部３での演算内容に対応するものである。ステップＣ１０では、図９のステップＢ４０で算出された距離dt，x成分dxt及びy成分dytに基づき、停留点の移動軌跡がパターン１に該当するか否かが判定される。例えば、2c<dxt<10c かつ 100dyt<dxtかつ0.5l>dt が成立する場合には、パターン１に該当するものと判断され、ステップＣ２０に進む。このステップＣ２０では、パターン１の検出回数を表す変数P1に１が加算されて、制御が距離算出フローへと復帰する。一方、ステップＣ１０の条件が不成立の場合にはステップＣ３０に進む。
【００７９】
ステップＣ３０では、停留点の移動軌跡がパターン２に該当するか否かが判定される。例えば、停留点の移動軌跡がパターン１に該当せず、dxt<0 かつ dyt<3c かつ 0.8l<dtが成立する場合にはステップＣ４０に進み、パターン２の検出回数を表す変数P2に１が加算されて、制御が距離算出フローへと復帰する。一方、ステップＣ３０の条件が不成立の場合にはステップＣ５０に進む。
【００８０】
ステップＣ５０，Ｃ６０では、停留点の移動軌跡がパターン３に該当するか否かが判定され、この条件の成立時（例えば、パターン１〜２ではなく、かつ -5c<dyt<0 が成立）にパターン３の検出回数を表す変数P3に１が加算される。同様に、ステップＣ７０，８０では、パターン４の判定（例えば、パターン１〜３ではなく、かつ dyt<-5c であることの判定）とその検出回数を表す変数P4のインクリメント処理が実施される。
【００８１】
ステップＣ１０，Ｃ３０，Ｃ５０，Ｃ７０の条件が何れも不成立の場合にはステップＣ９０に進み、停留点の移動軌跡がパターン５に該当するものと判断される。このステップでは、パターン５の検出回数を表す変数P5がインクリメントされて、制御が距離算出フローへと復帰する。このように、パターン判定フローでは、停留点が発見されるたびにその停留点の移動軌跡を複数の「読みパターン」の何れかに分類し、各々のパターンの出現頻度が計測される。
【００８２】
［６−３．速度設定フロー（１）］
図１１のフローは、おもに制御部４の演算内容に対応するものである。ステップＤ１０では、停留点が下トリガ領域内に存在するか（例えば、0.9Y<ytであるか）否かが判定される。この条件が成立する場合には、スクロール領域に表示される情報を順方向（上方向）にスクロールさせるためのステップＤ３０に進む。一方、ステップＤ１０の条件が不成立の場合には、ステップＤ２０に進む。
【００８３】
ステップＤ２０では、停留点が上トリガ領域内に存在するか（例えば、0.1Y>ytであるか）否かが判定される。この条件の成立時には、スクロール領域に表示される情報を逆方向（下方向）にスクロールさせるためのステップＤ４０に進む。一方、ステップＤ２０の条件が不成立の場合には、そのままこのフローを終了し、制御が距離算出フローへと復帰する。
【００８４】
順方向へのスクロール制御に関して、ステップＤ３０では、パターン１が成立した割合が所定割合以上であるか否かが判定される。ここでは、例えば割合制御部４Ｅにおいて、パターン１，パターン２，パターン５の何れかが検出された回数の合計（P1+P2+P5）に対するパターン１の検出回数P1の割合が算出され、この割合が90%を超えるか否かが判定される。この条件の成立時にはステップＤ５０に進み、スクロール速度が順方向で比較的遅い速度に設定される。一方、条件の不成立時にはステップＤ６０に進み、スクロール速度が順方向で比較的速い速度に設定される。
【００８５】
つまり、パターン１の頻度が低い場合と比較して、パターン１の頻度の高い場合におけるスクロール速度が低速に設定される。なお、上記の割合〔P1/(P1+P2+P5)〕の代わりに、全てのパターン１〜５の検出回数（P1+P2+P3+P4+P5）に対するパターン１の検出回数P1の割合〔P1/(P1+P2+P3+P4+P5)〕を算出してもよい。また、判定閾値である上記所定割合の具体的な値は任意に設定可能である。
【００８６】
ステップＤ５０，Ｄ６０に続くステップＤ９０では、ステップＤ５０，Ｄ６０で設定されたスクロール速度で情報のスクロール制御が実施され、情報が順方向に向かってスクロール表示される。また、ステップＤ１１０では、各パターン１〜５の検出回数がリセットされる。これにより、画面のスクロール制御が実施される毎に、ユーザの「読み方」に応じたスクロール速度が設定されることになる。
【００８７】
逆方向へのスクロール制御に関して、ステップＤ４０では、パターン３が成立した割合が所定割合以上であるか否かが判定される。ここでは、例えば割合制御部４Ｅにおいて、パターン３又はパターン４が検出された回数の合計（P3+P4）に対するパターン３の検出回数P3の割合が算出され、この割合が90%を超えるか否かが判定される。この条件の成立時にはステップＤ７０に進み、スクロール速度が逆方向で比較的遅い速度に設定される。一方、条件の不成立時にはステップＤ８０に進み、スクロール速度が逆方向で比較的速い速度に設定される。
【００８８】
つまり、パターン３の頻度が低い場合と比較して、パターン３の頻度の高い場合におけるスクロール速度が低速に設定される。ステップＤ７０，Ｄ８０に続くステップＤ１００では、ステップＤ７０，Ｄ８０で設定されたスクロール速度で情報のスクロール制御が実施され、情報が逆方向に向かってスクロール表示される。
【００８９】
［６−４．速度設定フロー（２）］
図１２のフローは、図１１の速度設定フローの内容を変更した変形例である。このフローでは、スクロール速度を変更するための六つのスクロール速度係数K1〜K6が設定される。これらの係数K1〜K6は、標準的なスクロール速度S（例えば、マウス１３のホイール操作によって実現されるスクロール速度）を基準として、視線入力による変更後のスクロール速度SSを高速側又は低速側に変更するための係数である。
【００９０】
ここでは、標準的なスクロール速度Sよりも速いスクロール速度がSよりも大きい値で与えられ、これよりも遅いスクロール速度がSよりも小さい値で与えられる。スクロール速度の値は、順方向の速度が正であり、逆方向の速度が負である。また、視線入力に由来する変更後のスクロール速度SSは、標準的なスクロール速度Sに各係数K1〜K6を乗算することによって定められるものとする。したがって、スクロール速度SSを速くするには、例えば各係数K1〜K6の値を1.0よりも大きな値に設定すればよく、スクロール速度SSを遅くするには、例えば各係数K1〜K6の値を1.0よりも小さな値に設定すればよい。各係数K1〜K6を乗じた結果、スクロール速度SSが1.0よりも大きければ、標準的なスクロール速度Sよりも速くなり、スクロール速度SSが1.0よりも小さければ標準的なスクロール速度Sよりも遅くなる。
【００９１】
ステップＥ１０では、方向制御部４Ｆにおいて、停留点が文字列の前方へ移動したか、それとも文字列の後方へ移動したかが判定される。停留点の移動方向と文字列の前後方向との関係は、x成分dxt及びy成分dytの値から判別可能である。例えば、y成分dytの値がほとんど変化していない場合（y成分dytの絶対値が一行分の高さ寸法以下である場合）、x成分dxtの値が負であれば、停留点が文字列の前方へ移動したとみなすことができる。また、y成分dytの値が負であって、その絶対値が一行分の高さ寸法よりも大きければ、x成分dxtの値の大小に関わらず、停留点が文字列の前方へ移動したとみなせる。反対に、y成分dytの値が正であって、その絶対値が一行分の高さ寸法よりも大きければ、x成分dxtの値の大小に関わらず、停留点が文字列の後方へ移動したとみなせる。
【００９２】
ここで、停留点が文字列の前方に移動したと判定された場合にはステップＥ１３に進み、文字列をその改行方向である順方向にスクロールさせるべく、第一スクロール速度係数K1の値が正の値（例えば、K1=1.0）に設定される。一方、停留点が文字列の後方に移動したと判定された場合にはステップＥ１６に進み、文字列を逆方向にスクロールさせるべく、第一スクロール速度係数K1の値が負の値（例えば、K1=-1.0）に設定される。
【００９３】
ステップＥ１０で判定対象となる停留点は、任意に抽出することができる。例えば、速度設定フローが開始された時点での最新の停留点とその直前の停留点とを抽出し、停留点の移動方向を特定してもよい。あるいは、直前の所定時間内に検出された全ての停留点を抽出し、個々の停留点の移動傾向を特定してもよい。複数の停留点が判定対象となる場合、個々の停留点に対応する第一スクロール速度係数K1を算出したうえで、それらの中央値や平均値を最終的な第一スクロール速度係数K1の値とすればよい。このような繰り返しの演算に関しては、図１２中のフローでは記載を省略する。
【００９４】
ステップＥ２０では、距離制御部４Ａにおいて、停留点間の距離dtが所定距離以上であるか否かが判定される。ここでいう所定距離は、ユーザが情報を流し読みしているか否か（裏を返せば、精読しているか否か）を判断するための閾値であり、例えば数文字分の距離（3c〜5c程度）に設定される。ステップＥ２０の条件が成立した時にはステップＥ２３に進み、第二スクロール速度係数K2が1.0以上の値に設定される。一方、この条件の不成立時にはステップＥ２６に進み、第二スクロール速度係数K2が1.0未満の値に設定される。
【００９５】
ステップＥ２０で判定対象となる距離dtとしては、例えば、読みパターンがパターン１又はパターン３であると判定された全ての距離dtを用いることが考えられる。複数の距離dtを判定対象とする場合、個々の距離dtに対応する第二スクロール速度係数K2を算出したうえで、それらの中央値や平均値を最終的な第二スクロール速度係数K2の値とすればよい。
【００９６】
ステップＥ３０では、ばらつき制御部４Ｂにおいて、距離dtのばらつきが所定度合い以上であるか否かが判定される。ここでいう所定度合いも、ユーザが情報を流し読みしているか否か（裏を返せば、精読しているか否か）を判断するための閾値であり、ユーザが情報を精読しているときの距離dtの分布に基づいて設定される。ステップＥ３０の条件成立時にはステップＥ３３に進み、第三スクロール速度係数K3が1.0以上の値に設定される。一方、この条件の不成立時にはステップＥ３６に進み、第三スクロール速度係数K3が1.0未満の値に設定される。
【００９７】
ステップＥ３０で判定対象となる距離dtは、読みパターンの種類に関わらず、全ての距離dtとすることが考えられる。すなわち、停留点の軌跡全体を判定対象とすることで、距離dtのばらつきの度合いが精度よく把握される。なお、上記の速度係数K1，K2と同様に、個々の距離dtに対応する第三スクロール速度係数K3を算出したうえで、それらの中央値や平均値を最終的な第三スクロール速度係数K3の値としてもよい。
【００９８】
ステップＥ４０では、精読制御部４Ｃにおいて、x成分dxtが第一所定距離未満であるか否かが判定される。x成分dxtの大きさは、ユーザによる情報の「読み方」が丁寧であるほど小さくなる。したがって、第一所定距離は、前述の所定距離と同程度（3c〜5c程度）かそれ未満の値に設定することが考えられる。ステップＥ４０の条件成立時にはステップＥ４３に進み、第四スクロール速度係数K4が1.0未満の値に設定される。一方、この条件の不成立時にはステップＥ４６に進み、第四スクロール速度係数K4が1.0以上の値に設定される。
【００９９】
ステップＥ４０で判定対象となるx成分dxtとしては、例えば、読みパターンがパターン１又はパターン３であると判定された全てのx成分dxtを用いることが考えられる。この場合、個々のx成分dxtに対応する第四スクロール速度係数K4を算出し、それらの中央値や平均値を最終的な第四スクロール速度係数K4の値としてもよい。
【０１００】
ステップＥ５０では、改行制御部４Ｄにおいて、視線位置が改行部分を跨いだときのx成分dxtが第二所定値未満であるか否かが判定される。改行部分を跨いだときのx成分dxtの大きさは、ディスプレイ１６に表示されている一行あたりの情報量が多いほど大きくなり、情報の改行箇所数が多いほど小さくなる。また、一行あたりの情報量が多いほど、視線が改行部分を跨ぐ際（飛び越える際）にかかる時間が長くなる。
【０１０１】
したがって、第二所定値は、一行あたりの長さlや情報の難易度等に応じて設定することが考えられる。あるいは、ユーザが情報を読む標準的な速度に基づいて第二所定値を設定してもよい。ステップＥ５０の条件成立時にはステップＥ５３に進み、第五スクロール速度係数K5が1.0以上の値に設定される。一方、この条件の不成立時にはステップＥ５６に進み、第五スクロール速度係数K5が1.0未満の値に設定される。
【０１０２】
ステップＥ５０で判定対象となるx成分dxtとしては、パターン２が検出されたときのx成分dxtを用いることが考えられ、例えばパターン２が検出された全てのx成分dxtを用いてもよい。この場合、個々のx成分dxtに対応する第五スクロール速度係数K5を算出し、それらの中央値や平均値を最終的な第五スクロール速度係数K5の値としてもよい。
【０１０３】
ステップＥ６０では、割合制御部４Ｅにおいて、距離dtが所定距離未満となった回数の割合が所定割合以上であるか否かが判定される。ここでいう所定距離は、上記の所定距離（3c〜5c程度）と同一でもよく、あるいは異なる値であってもよい。また、所定割合は、ユーザが精読していることを判断する際の精度に関係する値であり、任意に設定することができる。
【０１０４】
ステップＥ６０の条件成立時にはステップＥ６３に進み、第六スクロール速度係数K6が1.0未満の値に設定される。一方、この条件の不成立時にはステップＥ６６に進み、第六スクロール速度係数K6が1.0以上の値に設定される。したがって、距離dtがユーザの精読状態を表す比較的短い距離であって、その回数が多い場合には、スクロール速度が低速とされる。なお、ステップＥ６０での判定内容の代わりに、図１１のステップＤ３０に記載されたステップを実行して、パターン１が検出された回数の割合を判定する制御構成としてもよい。
【０１０５】
ステップＥ７０では、標準的なスクロール速度Sに各係数K1〜K6が乗算されたものが、最終的なスクロール速度SSとして設定されるとともに、そのスクロール速度SSで情報のスクロール制御が実施される。また、ステップＥ８０では、各パターン１〜５の検出回数がリセットされる。これにより、画面のスクロール制御が実施される毎に、ユーザの「読み方」に応じたスクロール速度が設定されることになる。
【０１０６】
［７．作用，効果］
（１）上記のスクロール制御では、停留点間の距離dtが所定距離以上であるときに、所定距離未満であるときと比較してスクロール速度が速くなるように、スクロール表示が制御される。例えば、図１１に示すフローでは、停留点間の距離dtが比較的小さいパターン１の回数が多い場合に、スクロール速度が高速に設定される。また、図１２に示すフローにおいても、ステップＥ２０〜Ｅ２３で同様の制御が実施される。このような制御により、ユーザの読み方に応じたスクロール速度を与えることができ、表示される情報を読みやすくすることができ、情報のスクロール速度に関するユーザビリティ（使い勝手，操作性）を向上させることができる。
【０１０７】
（２）上記のスクロール制御では、例えば図１２に示すように、停留点間の距離dtのばらつきが所定度合い以上であるときに、スクロール速度が速くなるようにスクロール表示が制御される。反対に、停留点間の距離dtのばらつきが小さければ、スクロール速度が遅くなるように制御される。このように、距離dtのばらつきとスクロール速度とを関連付けることで、例えばユーザの流し読み状態でのスクロール速度を適正化することができるとともに、精読状態での情報の可読性を向上させることができる。
【０１０８】
（３）上記のスクロール制御では、例えば図１２に示すように、情報のスクロール方向に垂直な方向についての距離成分であるx成分dxtが第一所定距離未満であるときに、スクロール速度が遅くなるようにスクロール表示が制御される。これにより、ユーザが情報を精読している状態を精度よく把握することができ、精読状態でのスクロール速度を適正化することができる。
【０１０９】
（４）上記のスクロール制御では、停留点間に文字情報の改行位置が存在する場合、x成分dxtが第二所定距離未満であるときに、スクロール速度が速くなるようにスクロール表示が制御される。つまり、ディスプレイ１６に表示される情報が同一であっても、一行の長さが短いほどスクロール速度が速く設定される。このような制御により、スクロール表示される情報をユーザの「読み方」に追いつかせやすくすることができ、表示される情報の読みやすさを向上させることができる。したがって、改行箇所を含む情報（例えば、文字情報）のスクロール速度を適正化することができる。
【０１１０】
（５）上記のスクロール制御では、停留点間の距離dtが所定距離未満となった回数の割合が所定割合以上であるときに、スクロール速度が遅くなるようにスクロール表示が制御される。例えば、図１１に示すフローでは、パターン１が成立した割合が所定割合以上である場合に、スクロール速度が低速に設定される。また、図１２に示すフローにおいても、ステップＥ６０〜Ｅ６３で同様の制御が実施される。このような制御により、ユーザの精読状態を精度よく把握することができ、ユーザに違和感を与えることなくスクロール速度を適正化することができる。
【０１１１】
（６）上記のスクロール制御では、停留点の移動方向に応じたスクロール方向が設定される。例えば、図１１に示すフローでは、停留点が進入したトリガ領域の位置に応じて、スクロール方向が順方向又は逆方向に設定される。また、図１２に示すフローでは、停留点の移動方向と文字情報の前後方向との関係から、スクロール方向が設定される。このような制御により、ユーザが読み進めたい方向に情報をスクロールさせることができ、ユーザビリティを向上させることができる。
【０１１２】
（７）上記のスクロール制御では、ディスプレイ１６のスクロール領域における視線位置の停留点が検出される。これにより、例えばブラウザ上のツールバー表示領域や広告領域での視線位置の軌跡（本来の読む行為とはあまり関係がない視線の動き）を除外して制御を実施することができ、スクロール速度の制御精度を向上させることができる。
【０１１３】
［８．変形例］
開示の実施形態の一例に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１１４】
上述の実施形態では、図１（Ａ）に示すように、おもに横書き複数行の文字情報を上下方向にスクロールさせる制御を想定した説明をしたが、情報のスクロール方向や記述方向はこれに限定されない。例えば、アラビア語，ヘブライ語，ペルシア語等のように、右から左へと記述される文字情報を制御対象としてもよいし、中国語，日本語のように、縦書きの文字情報を制御対象としてもよい。なお、縦書きの文字情報の精読状態は、その文字情報の記述方向である縦方向の距離成分（y成分dyt）に基づいて判断することができる。したがって、例えばy成分dytが第一所定距離未満であるときに、スクロール速度が遅くなるようにスクロール表示を制御することで、精読状態でのスクロール速度を適正化することができる。
【０１１５】
上述の実施形態では、ビデオカメラ１１で撮影された撮像情報に基づいてユーザの注視点及び停留点を検出するものを例示したが、停留点の検出に係る制御は省略することができる。例えば、市販の視線検出ソフトウェアを併用し、そのソフトウェアで特定された停留点の情報を用いてスクロール速度を制御することも可能である。少なくとも、実施形態の距離算出部２Ａ及び距離制御部４Ａを備えた構成であれば、ユーザの読み方に応じたスクロール速度を与えることができる。
【０１１６】
上述の実施形態では、図７に示すように、停留点がトリガ領域に進入したことを以て情報のスクロール制御を開始するものを説明したが、スクロール制御の開始条件はこれに限定されない。例えば、トリガとなる操作を契機としてスクロール制御を開始させてもよい。トリガとなる操作の具体例としては、キーボード１２のカーソルキー操作やマウス１３のホイール操作，瞬き，端末の傾き、タッチセンサを内蔵したディスプレイ１６へのタッチ操作，音声入力操作等が挙げられる。なお、標準的なスクロール速度Sをキーボード１２のカーソルキー操作やマウス１３のホイール操作や端末の傾きに対応させた上で、有効な視線入力操作がなされた場合に、その「読み方」に応じたスクロール速度SSを設定することとしてもよい。
【０１１７】
上述の実施形態では、図６に示すように、五通りの「読みパターン」を例示したが、これら以外のパターンを設定しておいてもよい。例えば、パターン１をその距離dtに応じて細分化し、距離dtが大きいほどスクロール速度が速くなるように、スクロール速度を多段階に設定してもよい。また、特定方向のみのスクロールを提供する際には、より少ない数の「読みパターン」を設定することも想定される。
【０１１８】
また、ユーザが実際に閲覧した情報をもとにしてスクロール速度を補正してもよい。すなわち、ディスプレイ１６に表示されている情報の種類（文書のジャンルやレイアウト）を解析し、想定される読み方の分布を考慮して、スクロール速度を増減させることが考えられる。さらに、ユーザの閲覧履歴の情報を利用して、ユーザの「読み方」の特性を反映したスクロール速度を設定してもよい。これらの手法を採用することで、より好ましいスクロール速度を提供することができ、ユーザビリティを向上させることができる。
【０１１９】
また、上述の実施形態では、情報がスクロール表示される毎にユーザの「読みパターン」の検出回数に対応する変数P1〜P5がリセットされるものを例示したが、リセットのタイミングは任意に設定することが可能である。例えば、文字情報のスクロール制御において、同一文書がディスプレイ１６に表示されている間は、ユーザの「読み方」が変化しないものとみなして、変数P1〜P5のリセットを保留することとしてもよい。
【０１２０】
一方、同一文書であっても、閲覧の途中でユーザの「読み方」が変化する場合もある。そこで、「読み方」の変化が大きい場合（例えば、パターン１の検出回数が90%である状態で、パターン５のみが連続して検出された場合）に変数P1〜P5をリセットすることとしてもよい。また、スクロール速度の急激な変更は、情報の閲覧性，視認性を低下させる要因となる。したがって、スクロール速度の時間変化勾配に制限をかけて、速度変化を緩慢にしてもよい。なお、キーボード１２のカーソルキー操作やマウス１３のホイール操作を併用してスクロール速度を変更可能とする場合も同様であり、スクロール速度の変化量の上限値を定めてもよい。
【０１２１】
また、上述の実施形態における各種閾値は、予め設定された固定値であってもよいが、ユーザの「読み方」に応じて変化する可変値とすることが好ましい。例えば、距離制御部４Ａでの判定に係る所定距離は、ユーザの読む速度に応じて設定されることが好ましい。そこで、パターン１の検出回数が多いユーザに対しては所定距離を短縮することで、流し読み状態と精読状態とが峻別されやすくしてもよい。スクロール速度の変更量についても同様であり、読む速度が遅いユーザに対してはスクロール速度をより遅くしてもよい。
【０１２２】
また、上述の実施形態では、図８に示す機能が補助記憶装置２３やリムーバブルメディア上にソフトウェアとして記録されたものを説明したが、ソフトウェアが記録される対象はこれに限定されない。例えば、フレキシブルディスク，CD，DVD，光学ディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供されてもよい。この場合、コンピュータ２０は、その記録媒体からプログラムを読み取り、主記憶装置２２，補助記憶装置２３に転送し格納して実行する。
【０１２３】
上記プログラムは、少なくとも実施形態の距離算出部２Ａ及び距離制御部４Ａの機能をコンピュータ２０に実現させるプログラムコードを含んでいる。また、コンピュータ２０の機能の一部は、アプリケーションプログラムではなくオペレーティングシステム（OS）やファームウェア等によって実現されてもよい。なお、上述の実施形態では、図８に示す機能がソフトウェア上で実施されるものを示したが、これらの機能の一部又は全部をハードウェア（論理回路）として設けてもよい。
【０１２４】
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
ユーザの視線位置が画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御する表示装置において、
前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出する算出部と、
前記算出部で算出された前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする制御部と、
を備えたことを特徴とする、表示装置。
【０１２５】
（付記２）
前記制御部において、前記距離のばらつきが所定度合い以上であるときに、前記ばらつきが所定度合い未満であるときと比較して前記スクロール速度を速くする
ことを特徴とする、付記１記載の表示装置。
【０１２６】
（付記３）
前記二つの前記停留点間の距離に関して、前記情報のスクロール方向に垂直な方向についての第一距離成分を算出する第一算出部を備え、
前記制御部において、前記第一算出部で算出された前記第一距離成分が第一所定距離未満であるときに、前記第一距離成分が第一所定距離以上であるときと比較して前記スクロール速度を遅くする
ことを特徴とする、付記１又は２記載の表示装置。
【０１２７】
（付記４）
前記制御部において、前記情報の改行に伴う前記視線位置の移動による前記距離が第二所定距離未満であるときに、前記距離が第二所定距離以上であるときと比較して前記スクロール速度を速くする
ことを特徴とする、付記１〜３の何れか１項に記載の表示装置。
【０１２８】
（付記５）
前記距離の算出回数に対して、前記距離が前記所定距離未満となった回数の割合を算出する割合算出部を備え、
前記制御部において、前記割合が所定割合以上であるときに、前記割合が所定割合未満であるときと比較して前記スクロール速度を遅くする
ことを特徴とする、付記１〜４の何れか１項に記載の表示装置。
【０１２９】
（付記６）
前記情報として文字列を表示する表示装置であって、
前記制御部において、
前記停留点が前記文字列の後方へ移動したときに、前記文字列を改行方向の順方向にスクロールさせ、
前記停留点が前記文字列の前方へ移動したときに、前記文字列を改行方向の逆方向にスクロールさせる
ことを特徴とする、付記１〜５の何れか１項に記載の表示装置。
【０１３０】
（付記７）
ユーザの視線位置が表示装置の画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御するプログラムにおいて、
複数の前記停留点のうち前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出し、
前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする
処理をコンピュータに実行させるプログラム。
【０１３１】
（付記８）
前記距離のばらつきが所定度合い以上であるときに、前記ばらつきが所定度合い未満であるときと比較して前記スクロール速度を速くする
処理をコンピュータに実行させる、付記７記載のプログラム。
【０１３２】
（付記９）
前記二つの前記停留点間の距離に関して、前記情報のスクロール方向に垂直な方向についての第一距離成分を算出し、
前記第一距離成分が第一所定距離未満であるときに、前記第一距離成分が第一所定距離以上であるときと比較して前記スクロール速度を遅くする
処理をコンピュータに実行させる、付記７又は８記載のプログラム。
【０１３３】
（付記１０）
前記情報の改行に伴う前記視線位置の移動による前記距離が第二所定距離未満であるときに、前記距離が第二所定距離以上であるときと比較して前記スクロール速度を速くする
処理をコンピュータに実行させる、付記７〜９の何れか１項に記載のプログラム。
【０１３４】
（付記１１）
前記距離の算出回数に対して、前記距離が前記所定距離未満となった回数の割合を算出し、
前記割合が所定割合以上であるときに、前記割合が所定割合未満であるときと比較して前記スクロール速度を遅くする
処理をコンピュータに実行させる、付記７〜１０の何れか１項に記載のプログラム。
【０１３５】
（付記１２）
前記情報として文字列を表示する表示装置での前記スクロール速度を制御するプログラムであって、
前記停留点が前記文字列の後方へ移動したときに、前記文字列を改行方向の順方向にスクロールさせ、
前記停留点が前記文字列の前方へ移動したときに、前記文字列を改行方向の逆方向にスクロールさせる
処理をコンピュータに実行させる、付記７〜１１の何れか１項に記載のプログラム。
【０１３６】
（付記１３）
ユーザの視線位置が表示装置の画面上で停留した停留点に基づき、前記画面上に表示される情報のスクロール速度を制御する表示方法において、
複数の前記停留点のうち前記視線位置が停留した時刻が前後する二つの前記停留点間の距離を算出し、
前記距離が所定距離以上であるときに、前記距離が所定距離未満であるときと比較して前記スクロール速度を速くする
ことを特徴とする、表示方法。
【０１３７】
（付記１４）
前記距離のばらつきが所定度合い以上であるときに、前記ばらつきが所定度合い未満であるときと比較して前記スクロール速度を速くする
ことを特徴とする、付記１３記載の表示方法。
【０１３８】
（付記１５）
前記二つの前記停留点間の距離に関して、前記情報のスクロール方向に垂直な方向についての第一距離成分を算出し、
前記第一距離成分が第一所定距離未満であるときに、前記第一距離成分が第一所定距離以上であるときと比較して前記スクロール速度を遅くする
ことを特徴とする、付記１３又は１４記載の表示方法。
【０１３９】
（付記１６）
前記情報の改行に伴う前記視線位置の移動による前記距離が第二所定距離未満であるときに、前記距離が第二所定距離以上であるときと比較して前記スクロール速度を速くする
ことを特徴とする、付記１３〜１５の何れか１項に記載の表示方法。
【０１４０】
（付記１７）
前記距離の算出回数に対して、前記距離が前記所定距離未満となった回数の割合を算出し、
前記割合が所定割合以上であるときに、前記割合が所定割合未満であるときと比較して前記スクロール速度を遅くする
ことを特徴とする、付記１３〜１６の何れか１項に記載の表示方法。
【０１４１】
（付記１８）
前記情報として文字列を表示する表示装置での前記スクロール速度を制御する表示方法であって、
前記停留点が前記文字列の後方へ移動したときに、前記文字列を改行方向の順方向にスクロールさせ、
前記停留点が前記文字列の前方へ移動したときに、前記文字列を改行方向の逆方向にスクロールさせる
ことを特徴とする、付記１３〜１７の何れか１項に記載の表示方法。
【符号の説明】
【０１４２】
１  検出部
１Ａ  注視点検出部
１Ｂ  停留点検出部
２  算出部
２Ａ  距離算出部
２Ｂ  第一算出部
２Ｃ  第二算出部
３  判定部
３Ａ  読みパターン判定部
３Ｂ  読み方判定部
４  制御部
４Ａ  距離制御部
４Ｂ  ばらつき制御部
４Ｃ  精読制御部
４Ｄ  改行制御部
４Ｅ  割合制御部
４Ｆ  方向制御部
１０  パーソナルコンピュータ
１１  ビデオカメラ
１２  キーボード
１３  マウス
１４  ストレージリーダライタ
１５  ネットワーク通信装置
１６  ディスプレイ
２０  コンピュータ
２１  中央処理装置
２２  主記憶装置
２３  補助記憶装置
２４  インタフェース装置
２５  入力部
２６  ストレージ制御部
２７  通信制御部
２８  出力部
【図１】
2015106327.tif 000004
【図２】
2015106327.tif 000005
【図３】
2015106327.tif 000006
【図４】
2015106327.tif 000007
【図５】
2015106327.tif 000008
【図６】
2015106327.tif 000009
【図７】
2015106327.tif 000010
【図８】
2015106327.tif 000011
【図９】
2015106327.tif 000012
【図１０】
2015106327.tif 000013
【図１１】
2015106327.tif 000014
【図１２】
2015106327.tif 000015