(57)【要約】【課題】交流ＥＯＧ法を適用し、実用性を低下させることなく、高精度な視線位置計測を行うことが可能となる。【解決手段】推定方法は、ユーザの眼電位の計測値に基づいて該ユーザの眼球運動の情報を取得する工程（ステップＳ１）と、ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する取得工程と（ステップＳ２）、少なくともユーザの眼球運動の情報に基づいて、ユーザの視線の相対運動に関する情報を取得する工程（ステップＳ１０）と、記ユーザの視線の相対運動に関する情報と、画面上のインタラクション対象の位置情報とを基に、ユーザの画面上での視線位置を推定する工程（ステップＳ１１）と、を含む。【選択図】図８
2019197369.tif 000002
【特許請求の範囲】
【請求項１】
推定装置に実行させる推定方法であって、
ユーザの眼電位の計測値に基づいて該ユーザの眼球運動の情報を取得する第１の取得工程と、
前記ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する第２の取得工程と、
少なくとも前記ユーザの眼球運動の情報に基づいて、前記ユーザの視線の相対運動に関する情報を取得する第３の取得工程と、
前記ユーザの視線の相対運動に関する情報と、前記画面上のインタラクション対象の位置情報とを基に、前記ユーザの画面上での視線位置を推定する推定工程と、
を含んだことを特徴とする推定方法。
【請求項２】
前回推定されたユーザの画面上での視線位置と、新規インタラクションに対応する画面上のインタラクション対象の位置との間の距離である第１の距離が、所定の閾値以下であるか否かを判定する判定工程をさらに含み、
前記推定工程は、前記判定工程において前記第１の距離が所定の閾値以下であると判定された場合には、前記新規インタラクションに対応する画面上のインタラクション対象の位置情報と、該位置情報に対応する前記ユーザの視線の相対運動に関する情報とを基に前記ユーザの画面上での視線位置を推定し、前記判定工程において前記第１の距離が所定の閾値より大きいと判定された場合に、前記新規インタラクションの一つ前の判定工程において前記第１の距離が所定の閾値以下であると判定された画面上のインタラクション対象の位置情報と、該位置情報に対応する前記ユーザの視線の相対運動に関する情報とを基に前記ユーザの画面上での視線位置を推定することを特徴とする請求項１に記載の推定方法。
【請求項３】
前記判定工程は、前記ユーザの眼球運動の停止に関する特徴的な情報に基づくタイミングで実行することを特徴とする請求項２に記載の推定方法。
【請求項４】
前記第３の取得工程は、
前記ユーザの眼球運動の情報及び前記画面上のインタラクション対象の位置情報をデータセットに保存する保存工程と、
前記データセットに存在する、前記ユーザの眼球運動の情報及び前記画面上のインタラクション対象の位置情報を基に、前記ユーザの眼球運動量に対応する画面上の視線移動量を取得する第４の取得工程と、
を含んだことを特徴とする請求項２または３に記載の推定方法。
【請求項５】
前記保存工程は、前記判定工程において前記第１の距離が所定の閾値以下であると判定された前記新規インタラクションにおける画面上のインタラクション対象の位置情報と、前記新規インタラクションに対応する眼球運動の情報とを、その時点の前記データセットに含めることを特徴とする請求項４に記載の推定方法。
【請求項６】
前記ユーザの頭部の移動に関する計測値に基づいて該ユーザの頭部移動情報を取得する第５の取得工程をさらに含み、
前記第４の取得工程は、前記ユーザの眼球運動の情報及び前記画面上のインタラクション対象の位置情報とともに、前記ユーザの頭部移動情報を用いて、前記画面上の視線移動量を取得することを特徴とする請求項４に記載の推定方法。
【請求項７】
ユーザの眼電位の計測値に基づいて該ユーザの眼球運動の情報を取得するステップと、
前記ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得するステップと、
少なくとも前記ユーザの眼球運動の情報に基づいて、前記ユーザの視線の相対運動に関する情報を取得するステップと、
前記ユーザの視線の相対運動に関する情報と、前記画面上のインタラクション対象の位置情報とを基に、前記ユーザの画面上での視線位置を推定するステップと、
をコンピュータに実行させるための推定プログラム。
【請求項８】
ユーザの眼電位の計測値に基づいて該ユーザの眼球運動の情報を取得する第１の取得部と、
前記ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する第２の取得部と、
少なくとも前記ユーザの眼球運動の情報に基づいて、前記ユーザの視線の相対運動に関する情報を取得する第３の取得部と、
前記ユーザの視線の相対運動に関する情報と、前記画面上のインタラクション対象の位置情報とを基に、前記ユーザの画面上での視線位置を推定する推定部と、
を有することを特徴とする推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定方法、推定プログラム及び推定装置に関する。
【背景技術】
【０００２】
デバイスを用いて主に画面上で作業を行っているユーザが、画面上のどの位置に視線を向けているのかを取得できると、その情報を入力インタフェースやユーザ状態に関する分析のために利用することができる。このような目的のため、ユーザの視線位置を取得するアイトラッキングシステムが提案されている。
【０００３】
ところで、視線の位置を計測する際、多くの既存技術は、ユーザの眼球やその周辺を備え付けのカメラによって正面から撮影し、得られた画像データをアルゴリズムによって処理することで、視線の絶対位置を取得するアイトラッキングシステムを用いている。しかしながら、この方法にはいくつか問題がある。
【０００４】
まず、既存のアイトラッキングシステムの多くは、高価で、現場への導入が困難である。また、既存のアイトラッキングシステムは、視線情報以外に、ユーザの顔や居室などの機密性の高い情報を周辺的に取得してしまうため、セキュリティ上の観点から使用できない場合がある。さらに、既存のアイトラッキングシステムは、画像処理方式の持つ制約から、画面内におけるユーザの視線位置を推定するのみであり、画面外に離れて存在する対象を見ている状態は取得できない。
【０００５】
加えて、既存のアイトラッキングシステムは、容量の大きな動画像データを処理しなければならないため、ユーザが作業に用いているデバイス（ＰＣ、タブレット、スマートフォンなど）上で視線位置を推定する計算を行おうとした場合、デバイスのスペックが不足していると、計算が行えない。
【０００６】
なお、眼を撮影する小型カメラを顔の側に固定するタイプもあるが、この方法では、画面の内外にかかわらず視線位置を取得できるものの、従来の既存の据え置き型アイトラッカよりもさらに高価であり、一般的ではない。
【０００７】
これらを解決し得る方法として、ＥＯＧ（Electrooculogram）法を用いた視線位置の推定方法がある。このＥＯＧ法とは、視線の位置ではなく、眼球運動を計測する技術である。これは、眼球は前方に＋、後方に−の電位を持っていることを利用して、眼球の周囲に電極を貼り、電位変化から眼球の運動方向や量を推定するものである（非特許文献１）。
【０００８】
ＥＯＧ法では、数個の電極が取得する電位のみを用いて眼球運動を計測する。このため、高価なデバイスは不要であり、機密性のある周辺情報も取得されず、推定のために必要な計算量も画像処理より少なくてよい。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】大谷璋,  「眼球運動の時間特性」,  人間工学,  vol.4,  No.1,  p.29−36
【発明の概要】
【発明が解決しようとする課題】
【００１０】
このＥＯＧ法は、その電位の処理方法に基づいて、交流ＥＯＧ法と直流ＥＯＧ法の２つに分けることができる。
【００１１】
このうち、直流ＥＯＧ法では、眼球周辺の電位状態をそのまま取得するため、眼球の絶対的な位置に関する情報を含んだ電位を取得することができる。しかしながら、直流ＥＯＧ法ではドリフトが大きく発生する。ドリフトとは、計測している電位のベースラインが時間経過とともに変化してしまう現象のことである。このドリフトを補正するための方法が既に提案されてはいるものの、完全ではく、視線位置の実測は難しい。
【００１２】
これに対し、交流ＥＯＧ法では、眼球周辺の電位状態の変化量を取得することで、後述のドリフトの影響をある程度避けつつ、眼球の相対的な運動に関する情報を含んだ電位を取得することができる。しかしながら、交流ＥＯＧ法は、あくまで眼球運動を計測するものであるため、取得されるデータに視線の相対的な運動に関する情報は含まれるものの、視線の絶対的な位置に関する情報は含まれない。
【００１３】
そこで、交流ＥＯＧ法によって取得される眼球運動を用いて視線位置を推測する方法は、これまでいくつか提案されている。図１３は、従来の視線位置推定方法を説明する図である。従来の方法は、基本的に、ある眼球運動を行った際に画面上で視線がどの程度移動するのかを対応付け（移動量を対応付け）した上で、ある時点での絶対位置（例えば、図１３の（ａ）のクリックＣ１の位置）をＥＯＧ以外の方法によって取得する（絶対位置特定）。そして、これらの方法は、その時点から視線移動量を足し合わせ続けて視線位置Ｐ２´を推定する（図１３の（ｂ）参照）。
【００１４】
しかしながら、従来の方法は、時間経過とともに推定精度が悪くなってしまい、実用的ではなかった。言い換えると、従来の方法では、時間経過とともに誤差が蓄積し、実際の視線位置Ｐ２（図１３の（ｂ）参照）と、推定された視線位置Ｐ２´との距離がずれてしまっていた。その理由は以下の通りである。
【００１５】
まず、従来の方法では、相対的な移動量を推定する際に誤差が生じる。この一因として、電位変化に混ざるノイズがある。従来の方法では、交流ＥＯＧ法を適用した装置の電位の交流増幅器によって、ドリフトがある程度排除されたとしても、完全には排除できない。また、従来の方法では、他の様々な理由によって生じるノイズは除去しきれないため、移動量の推定には少なからず誤差が生じる。
【００１６】
加えて、移動量の対応付けを行ってから時間が経過すると、眼球運動量と視線移動量との関係の変化が原因となる誤差もさらに生じる。これは、主に長期的な時間経過とともに姿勢が変化することが理由である。例えば、同じ眼球運動量であっても、画面を遠くから見ていた場合には視線移動量は大きくなるが、近くから見ていた場合には視線移動量は小さくなる。眼球運動に加えて、別センサからユーザの姿勢に関する情報を取得するなどの方法で対策は可能であるが、同じく完全ではないと推測される。
【００１７】
そして、交流ＥＯＧ法は、視線の絶対位置に関する情報を一切取得しない。このため、従来の方法では、移動量の推定値に対する誤差が時間経過とともに蓄積され続ける。従来の方法では、様々な方法を用いて誤差を軽減したとしても、絶対位置特定を行わない時間が長きにわたると、推定には困難が生じる。
【００１８】
このため、従来の方法では、交流ＥＯＧ法によって視線の位置を精度よく推定するために、一定以上の時間が経つ、ユーザの頭部が動くなどのイベントが発生するごとに移動量の対応付けや絶対位置特定の２種の補正を繰り返すことが適切であることがわかる。
【００１９】
しかしながら、従来の方法では、これらの補正を行うためには、ある一点への凝視や一定量の視線移動などをユーザに課さなくてはならない。従来の方法のように、頻繁に補正を行い、そのたびに一点への凝視や視線移動等の動作を求めることはユーザに煩わしさを与え、実用的ではない。
【００２０】
上記のように、補正を課さなければ精度が劣化し、補正を課せば実用性が低下することが理由で、交流ＥＯＧ法による視線の位置推定の実用化は困難であった。
【００２１】
本発明は、上記に鑑みてなされたものであって、交流ＥＯＧ法を適用し、実用性を低下させることなく、高精度な視線位置計測を行うことが可能となる推定方法、推定プログラム及び推定装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上述した課題を解決し、目的を達成するために、本発明に係る推定方法は、推定装置に実行させる推定方法であって、ユーザの眼電位の計測値に基づいて該ユーザの眼球運動の情報を取得する第１の取得工程と、ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する第２の取得工程と、少なくともユーザの眼球運動の情報に基づいて、ユーザの視線の相対運動に関する情報を取得する第３の取得工程と、ユーザの視線の相対運動に関する情報と、画面上のインタラクション対象の位置情報とを基に、ユーザの画面上での視線位置を推定する推定工程と、を含んだことを特徴とする。
【発明の効果】
【００２３】
本発明によれば、交流ＥＯＧ法を適用し、実用性を低下させることなく、高精度な視線位置計測を行うことが可能となる。
【図面の簡単な説明】
【００２４】
【図１】図１は、実施の形態１における推定システムの構成の一例を示す図である。
【図２】図２は、図１に示す推定装置の構成の一例を示すブロック図である。
【図３】図３は、図２に示す推定装置における眼球運動量と、２クリック間の画面上の位置との対応付けを説明する図である。
【図４】図４は、図１に示す視線位置推定部の処理を説明する図である。
【図５】図５は、実際の視線位置と、推定した視線位置とのずれを説明する図である。
【図６】図６は、図１に示す注視チェック部の処理を説明する図である。
【図７】図７は、図１に示す推定装置が用いる関数のパラメータの更新について説明する図である。
【図８】図８は、実施の形態１に係る推定処理の処理手順を示すフローチャートである。
【図９】図９は、実施の形態２における推定システムの構成の一例を示す図である。
【図１０】図１０は、図９に示す推定装置の構成の一例を示すブロック図である。
【図１１】図１１は、実施の形態２に係る推定処理の処理手順を示すフローチャートである。
【図１２】図１２は、プログラムが実行されることにより、推定装置が実現されるコンピュータの一例を示す図である。
【図１３】図１３は、従来の視線位置推定方法を説明する図である。
【発明を実施するための形態】
【００２５】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００２６】
［実施の形態１］
まず、本発明の実施の形態１について説明する。図１は、実施の形態１における推定システムの構成の一例を示す図である。
【００２７】
図１に示すように、実施の形態に係る推定システムは、ユーザ２の眼球周辺（例えば、こめかみ）に付された複数の電極３に接続するセンサ４と、電極３による眼電位の計測値の入力を受け付けて、ユーザの画面上での視線位置を推定する推定装置１０とを有する。
推定装置１０は、ユーザインタフェースであるマウス１１ａやキーボード１１ｂ、及び、ユーザによるユーザインタフェースの操作に応じた画面画像を表示するディスプレイ１２ａと接続する。
【００２８】
センサ４は、ユーザ２の眼球周辺に接触している電極３を通して、眼電位の時系列的変化を計測する。計測結果は、推定装置１０に入力される。なお、電極３は、２以上あってもよい。
【００２９】
推定装置１０は、ユーザの眼電位の時系列変化量に基づいて該ユーザの眼球運動の情報（眼電位の変化量）を取得する。さらに、推定装置１０は、ユーザ操作によるデバイス（マウス１１ａやキーボード１１ｂ）上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する。インタラクションとは、画面上でボタンを押すなどの行為である。ユーザはインタラクションを行う際、行為の対象（マウスカーソル、タップする自分の指が乗ったボタン、テキスト入力時のカーソルなど）を注視するはずである。推定装置１０では、このタイミングを捉え、インタラクション対象の画面上の位置を暫定的な視線の絶対位置として利用する。
【００３０】
そして、推定装置１０は、ユーザの眼球運動の情報に基づいてユーザの視線の相対運動に関する情報を取得する。すなわち、推定装置１０は、眼電位の変化量を変換し、この眼電位の変化量に対応する視線移動量（相対値）を取得する。続いて、推定装置１０は、画面上のインタラクション対象の位置情報（絶対値）に、電位変化量から変換された視線移動量（相対値）を加算することによって、ユーザの画面上での視線位置を推定する。
【００３１】
このように、推定装置１０は、インタラクション情報に基づいて得られた視線の絶対位置を基に、交流ＥＯＧ法によって得られた眼球運動から求めた視線移動量を加算することによって、実用的にアイトラッキングを実現する。
【００３２】
［推定装置の構成］
次に、推定装置１０の構成について説明する。図２は、図１に示す推定装置１０の構成の一例を示すブロック図である。図１に示すように、推定装置１０は、入力装置１１及び表示装置１２と接続する。そして、推定装置１０は、通信部１３、記憶部１４及び制御部１５を有する。
【００３３】
入力装置１１は、ユーザによる入力操作に対応して、制御部１５に対する各種指示情報の入力を受け付けるデバイス装置である。例えば、入力装置１１は、マウス１１ａやキーボード１１ｂ等の入力デバイスを用いて実現される。
【００３４】
ユーザによるマウス１１ａの移動操作によるインタラクションに対応して、表示装置１２の画面上のカーソルやスライダーが移動する。このカーソルやスライダーの画面上の位置が、画面上のインタラクション対象の位置情報として、インタラクション位置情報取得部１５２（後述）に取得される。また、ユーザによるマウス１１ａのクリック操作によるインタラクションに対応して、画面上のボタンが選択される。このボタンの画面上の位置が、画面上のインタラクション対象の位置情報として、インタラクション位置情報取得部１５２（後述）に取得される。
【００３５】
そして、ユーザによるキーボード１１ｂの操作によるインタラクションに対応して、画面上のファイルに文字等が記載される。この記載された文字等の位置が、画面上のインタラクション対象の位置情報として、インタラクション位置情報取得部１５２（後述）に取得される。
【００３６】
表示装置１２は、液晶ディスプレイなどのディスプレイ１２ａによって実現される。具体的には、表示装置１２は、アプリケーション画面等を表示する。
【００３７】
通信部１３は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１３は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部１５（後述）との間の通信を行う。
【００３８】
記憶部１４は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、推定装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部１４は、眼電位情報記憶部１４１、インタラクション記憶部１４２、推定位置記憶部１４３、データセット記憶部１４４及びパラメータ記憶部１４５を有する。
【００３９】
眼電位情報記憶部１４１は、入力を受け付けた、センサ４による眼電位の計測値に基づく眼電位の変化量を、時間情報と対応付けて記憶する。
【００４０】
インタラクション記憶部１４２は、ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を、時間情報に対応付けて記憶する。例えば、インタラクション記憶部１４２は、ユーザによるマウス１１ａの移動操作によるインタラクションに対応して移動した表示装置１２の画面上のカーソルやスライダーの位置を、時間情報に対応付けて記憶する。また、インタラクション記憶部１４２は、ユーザによるマウス１１ａのクリック操作によるインタラクションに対応して選択された画面上のボタンの位置情報を時間情報として記憶する。また、インタラクション記憶部１４２は、ユーザによるキーボード１１ｂの操作によるインタラクションに対応して画面上のファイルに記載された文字の位置を、時間情報に対応付けて記憶する。
【００４１】
推定位置記憶部１４３は、視線位置推定部１５７が推定したユーザの画面上での視線位置情報を、時間情報に対応付けて記憶する。
【００４２】
データセット記憶部１４４は、ユーザの眼球運動の情報及び画面上のインタラクション対象の位置情報を対応付けて記憶する。データセット記憶部１４４は、ユーザの眼電位の変化量と、該変化量に対応する画面上のインタラクション対象の位置情報とを１組のデータセットとして、複数組みのデータセットを記憶する。
【００４３】
パラメータ記憶部１４５は、視線移動量を計算する際に使用する演算式や、その演算式に適用される各種パラメータを記憶する。パラメータ記憶部１４５が記憶するパラメータは、関数生成部１５４２（後述）によって、更新される。
【００４４】
制御部１５は、推定装置１０全体を制御する。制御部１５は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部１５は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路である。また、制御部１５は、各種のプログラムが動作することにより各種の処理部として機能する。制御部１５は、眼電位情報取得部１５１（第１の取得部）、インタラクション位置取得部１５２（第２の取得部）、注視チェック部１５３（判定部）、視線移動量取得部１５４（第３の取得部）及び視線位置推定部１５５を有する。
【００４５】
眼電位情報取得部１５１は、センサ４より入力された、ユーザの眼電位の計測値に基づいて該ユーザの眼球運動の情報（眼電位の変化量）を取得する。眼電位情報取得部１５１は、取得した眼電位の変化量を、時間情報に対応付けて、注視チェック部１５３に出力するとともに、眼電位情報記憶部１４１にも記憶する。
【００４６】
インタラクション位置取得部１５２は、ユーザの操作によるデバイス（マウス１１ａ、キーボード１１ｂ）上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する。インタラクション位置取得部１５２は、取得したインタラクション対象の位置情報を、時間情報に対応づけて、注視チェック部１５３に出力するとともに、インタラクション記憶部１４２にも記憶する。
【００４７】
注視チェック部１５３は、前回推定されたユーザの画面上での視線位置と、新規インタラクションに対応する画面上のインタラクション対象の実際の位置との間の距離である第１の距離が、所定の閾値Ｌ以下であるか否かを判定する。
【００４８】
注視チェック部１５３は、第１の距離が所定の閾値以下であると判定された場合にのみ、新規インタラクションにおける画面上のインタラクション対象の位置情報と、対応する眼電位変化量とを、視線移動量取得部１５４及び視線位置推定部１５５に出力する。そして、注視チェック部１５３は、第１の距離が所定の閾値より大であると判定された場合には、新規インタラクションにおける画面上のインタラクション対象の位置情報と、対応する眼電位変化量とを、視線移動量取得部１５４及び視線位置推定部１５５に出力せず、保持する。この場合、保持された情報は、次回の注視チェックを通過したデータとともに視線移動量取得部１５４において使用される場合がある。注視チェック部１５３は、インタラクションが発生するごとに判定を行う。
【００４９】
視線移動量取得部１５４は、少なくともユーザの眼球運動の情報に基づいてユーザの視線の相対運動に関する情報を取得する。視線移動量取得部１５４は、画面上におけるユーザの視線の相対移動量を計算する。視線移動量取得部１５４は、データセット保存部１５４１、関数生成部１５４２及び視線移動量計算部１５４３を有する。
【００５０】
データセット保存部１５４１は、眼電位情報取得部１５１が取得したユーザの眼球運動の情報と、インタラクション位置取得部１５２が取得した画面上のインタラクション対象の位置情報とを１組のデータセットとして、データセット記憶部１４４に保存する。具体的には、データセット保存部１５４１は、眼電位の変化量と、これに対応する、画面上のインタラクション対象の位置とを保存する。
【００５１】
また、データセット保存部１５４１は、注視チェック部１５３によって第１の距離が所定の閾値以下であると判定された新規インタラクションにおける画面上のインタラクション対象の位置情報と、新規インタラクションに対応する眼球運動の情報（眼電位の変化量）とを、その時点のデータセット記憶部１４４に保存する。なお、データセット記憶部１４４のデータセットの数量には上限が設定されており、データセット保存部１５４１は、データセットの数量が上限を超える場合には、データセット記憶部１４４のデータセットのうち最も古いデータセットを一つ廃棄する。
【００５２】
関数生成部１５４２は、データセット記憶部１４４に保存されたデータセットが所定組（数十〜数百組）を超えた際に、関数Ｆを生成する。関数Ｆは、前回のインタラクション発生時刻から現時刻までの間の眼電位の変化量が入力されると、前回のインタラクションに対するインタラクション対象の位置から、現時刻における視線の位置までの間の移動量（距離及び方向を含む。）（相対値）を、視線移動量として出力する関数である。
【００５３】
関数生成部１５４２は、データセット記憶部１４４に保存された複数のデータセットを任意のアルゴリズムに学習させることによって、関数Ｆを生成する。言い換えると、関数生成部１５４２は、関数Ｆに適用される各パラメータの値を設定する。関数生成部１５４２は、生成したパラメータをパラメータ記憶部１４５に記憶する。また、関数生成部１５４２は、関数Ｆ生成後、新たなデータセットによってデータセットが更新されるごとに、関数Ｆのパラメータを更新する。関数生成部１５４２は、パラメータ記憶部１４５が記憶するパラメータを、更新したパラメータに更新する。
【００５４】
視線移動量計算部１５４３は、ユーザの眼球運動の情報及び画面上のインタラクション対象の位置情報を基に、ユーザの眼球運動量に対応する画面上の視線移動量を計算する。具体的には、視線移動量計算部１５４３は、関数Ｆに、前回のインタラクション発生時刻から現時刻までの眼電位の変化量を入力することによって、前回のインタラクションに対するインタラクション対象の位置から、現時刻における視線の推定位置までの間の移動量を計算する。
【００５５】
視線位置推定部１５５は、ユーザの視線の相対運動に関する情報と、画面上のインタラクション対象の位置情報とを基に、ユーザの画面上での視線位置を推定する。具体的には、視線位置推定部１５５は、前回インタラクションの画面上の対象位置に、視線移動量計算部１５４３が取得したユーザの眼電位の変化量に対応する画面上の視線移動量を加算することによって、現時刻における視線位置の推定位置を得る。なお、視線位置推定部１５５は、注視チェック部１５３において第１の距離が所定の閾値以下であると判定された場合に、ユーザの画面上での視線位置の推定を行う。
【００５６】
［情報取得処理］
推定装置１０の各処理について説明する。まず、ユーザは、表示装置１２の画面を見ながら作業を行う。センサ４は、ユーザの眼球周辺に接触している電極３を通して、眼電位の時系列的変化を計測する。センサ４による計測結果は、眼電位情報取得部１５１によって取得される。ここでは、あるインタラクションＸ発生時刻から次のインタラクションＸ＋１発生時刻までの間の眼電位の合計変化量をΔ（Ｘ〜Ｘ＋１）として説明する。
【００５７】
推定装置１０では、ユーザが画面上で行う作業（Ｗｅｂブラウジング、オフィスソフトによる書類作成、業務システム上でのデータ投入作業など）に関連する処理を行う。これらの処理と並行して、インタラクション位置取得部１５２は、ユーザがコンピュータに対して行ったインタラクションの画面上での対象位置（マウスをクリックした座標、タッチパネルでタップした座標、物理キーボードで入力を行った際のテキストカーソルの座標など）を取得して、記録する。ここでは、あるインタラクションＸの画面上の対象位置をＰ（Ｘ）とする。
【００５８】
そして、視線移動量取得部１５４では、データセット保存部１５４１が、電位変化量（眼球の運動量）と、インタラクション間の移動量（距離）とを対応付ける。ここで、Δ（ｌ〜ｌ＋１）を、インタラクション対象ｌからインタラクション対象ｌ＋１までの眼電位の合計変化量とする。このΔ（ｌ〜ｌ＋１）は、インタラクション対象ｌからインタラクション対象ｌ＋１の間に生じた眼球運動の合計量に対応している。
【００５９】
データセット保存部１５４１は、この眼電位の合計変化量Δ（ｌ〜ｌ＋１）の値と、インタラクション対象ｌの画面上の位置Ｐ（ｌ）と、を、１組のデータセットとして対応させる。視線移動量取得部１５４は、この対応関係を基に、眼球運動の量から、画面上での視線移動量を算出できるようにしている。
【００６０】
具体的には、データセット保存部１５４１が、数十〜数百個程度のインタラクション間隔に関するΔ，Ｐを収集する。そして、関数生成部１５４２は、データセット記憶部１４４に記憶された複数のデータセットを、任意のアルゴリズムによって学習することによって、関数Ｆを生成する。関数Ｆは、眼電位の合計変化量Δ（ｌ〜ｌ＋１）を、該眼電位の合計変化量Δ（ｌ〜ｌ＋１）に対応する画面上の視線移動量（Ｐ（ｌ＋１）―Ｐ（ｌ））に変換する関数である。
【００６１】
図３は、図２に示す推定装置１０における眼球運動量と、クリックＣ１及びクリックＣ２間の画面Ｍ上の位置との対応付けを説明する図である。図３に示すように、視線移動量取得部１５４は、２クリック間に行った眼球運動の量と２クリック間の画面上の距離とを対応付ける。そして、視線移動量取得部１５４は、関数Ｆを用いて、２クリック間に行った眼球運動の量が入力されると、２クリック間の画面上の距離を取得できるようにすることで、眼電位の合計変化量と画面上の視線移動量の対応付けを、ユーザの明示的な動作なしに行うことを可能にする。
【００６２】
［視線位置推定部の処理］
次に、視線位置推定部１５５の処理について説明する。視線位置推定部１５５は、関数Ｆが完成した段階で、視線の位置推定を開始する。本実施の形態１では、視線位置推定を行う時刻に最も近い過去のインタラクションｍの発生時に、インタラクションｍの画面上の対象位置Ｐ（ｍ）に視線位置が存在していたとみなす。
【００６３】
視線位置推定部１５５は、視線移動量計算部１５４３によるインタラクションｍ発生時刻から現時刻ｎｏｗまでの眼電位の合計変化量Δ（ｍ〜ｎｏｗ）の関数Ｆへの入力によって得られた出力Ｆ（Δ（ｍ〜ｎｏｗ））を加算して、視線の推定位置を得る。出力Ｆ（Δ（ｍ〜ｎｏｗ））は、Δ（ｍ〜ｎｏｗ）に対応するインタラクション対象ｍの位置から現時刻ｎｏｗにおける視線の位置までの移動量（距離）である。
【００６４】
すなわち、視線位置推定部１５５は、現時刻ｎｏｗにおける視線の推定位置Ｐ（ｎｏｗ）を以下の（１）式を用いて取得する。
【００６５】
【数１】
2019197369.tif 000003
【００６６】
図４は、図１に示す視線位置推定部１５５の処理を説明する図である。図４に示すように、視線位置推定部１５５は、画面Ｍ上のインタラクション（例：クリック）対象の位置に、眼電位の変化量から変換された画面Ｍ上の視線移動量を加算していくことで、視線位置を推定する。
【００６７】
具体的には、視線位置推定部１５５は、クリックＣ１の位置Ｐ（１）がインタラクション対象の位置として入力されると、位置Ｐ（１）に、各期間の眼電位の変化量を基にそれぞれ計算された画面Ｍ上の視線移動量を順次加算することによって（矢印Ｒ１参照）、現時刻の視線位置Ｐ（ｎｏｗ）を取得する。視線位置推定部１５５は、新たにクリックＣ２の位置Ｐ（２）がインタラクション対象の位置として入力されると、クリック位置を位置Ｐ（２）にキャリブレーションする。そして、視線位置推定部１５５は、この位置（Ｐ（２））に、各期間の眼電位の変化量を基にそれぞれ計算された視線移動量を順次加算することによって（矢印Ｒ２参照）、現時刻の画面Ｍ上の視線位置Ｐ（ｎｏｗ´）を取得する。
【００６８】
［注視チェック部の処理］
次に、注視チェック部１５３の処理について説明する。ところで、ユーザは必ずしも画面上のインタラクション対象を注視しながらインタラクションを行うわけではない。例えば、ユーザは、マウスカーソルを先にボタンの位置に置いておき、別の場所を見ながらクリックすることもある。それにもかかわらず、全てのインタラクションに関して、視線位置推定処理を行うと、誤った視線位置が推定されてしまう。
【００６９】
図５は、実際の視線位置と、推定した視線位置とのずれを説明する図である。図５の画面Ｍ例に示すように、視線と一致していないクリック位置Ｃ２をキャリブレーションに用いると（図５の（１）参照）、次の視線位置として予測した位置Ｐ（３´）の絶対座標が狂ってしまう（図５の（２）参照）。そして、この予測結果を用いると、実態と合わない対応付け補正が行なわれてしまう（図５の（３）参照）。
【００７０】
そのため、注視チェック部１５３は、一定量のデータセットが集まり、それに基づいた関数Ｆが生成された後は、毎インタラクションが発生するごとに注視チェックを行う。図６は、図１に示す注視チェック部１５３の処理を説明する図である。
【００７１】
注視チェック部１５３は、まず、閾値Ｌを定める。続いて、注視チェック部１５３は、一つ前のインタラクションｎ−１を出発点とした場合、現インタラクションｎが発生する時刻までに移動した視線移動量を加算して推定される視線位置（Ｐ（ｎ−１）＋Ｆ（Δ（ｎ−１〜ｎ）））と、現インタラクションｎの画面Ｍ上の位置Ｐ（ｎ）との距離（第１の距離）を求める。そして、注視チェック部１５３は、求めた第１の距離が、閾値Ｌより小さいか否かを判定する。
【００７２】
例えば、注視チェック部１５３は、クリックＣ１の位置Ｐ（１）に、位置Ｐ（１）から、次のクリックＣ２の発生時刻までの視線移動量を位置Ｐ（１）に加算して推定された視線位置Ｐ（２´）＝（（Ｐ（１）＋Ｆ（Δ（１〜２）））と、次のクリックＣ２の画面Ｍ上の位置Ｐ（２）との距離を求める。この場合、第１の距離は、閾値Ｌより大きい（図６の（１）参照）。この場合には、実際の視線位置と、推定した視線位置とがずれていると判定できるため、注視チェック部１５３は、眼電位の合計変化量Δ（１〜２）を利用しない。
【００７３】
このように、注視チェック部１５３によるチェックを通過しなかった場合には、眼電位の合計変化量Δ（１〜２）を用いたデータセットの更新及び関数Ｆのパラメータ更新は実行されない。したがって、視線位置推定部１５５は、一つ前までのインタラクション情報に基づいた関数Ｆを用いて、ユーザの視線位置を推定する。すなわち、推定された視線位置は、Ｐ（ｎ−１）＋Ｆｏｌｄ（Δ（ｎ−１〜ｎｏｗ））となる。
【００７４】
次に、注視チェック部１５３は、推定された視線位置Ｐ（３´）＝（（Ｐ（２）＋Ｆ（Δ（２〜３）））と、次のクリックＣ３の画面上の位置Ｐ（３）との距離を求める。この場合、求めた距離は、閾値Ｌ以下であった（図６の（２）参照）。この場合には、注視チェック部１５３は、眼電位の合計変化量Δ（２〜３）とクリックＣ３の画面Ｍ上の位置Ｐ（２）とをデータセットとして利用する。
【００７５】
したがって、データセット保存部１５４１は、注視チェック部１５３による注視チェックを通過した場合、眼電位の合計変化量Δ（ｎ−１〜ｎ）と位置Ｐ（２）とを新しくデータセット記憶部１４４に格納する。データセット記憶部１４４のデータセットの数量には上限が設定されており、データセット保存部１５４１は、データセットの数量が上限を超える場合には、データセット記憶部１４４のデータセットのうち最も古い眼電位の合計変化量Δ（  ）のデータセットを一つ捨てる。なお、推定装置１０は、最適なデータセットを選ぶために、データセット記憶部１４４の古いデータセットは削除せずに、データを蓄積しておき、蓄積されたデータセットの中から最近のインタラクションだけを選択し、関数Ｆを更新してもよい。
【００７６】
［関数のパラメータ更新］
続いて、関数生成部１５４２は、更新されたデータセット記憶部１４４のデータセットを基に関数Ｆのパラメータを更新する。そして、視線移動量計算部１５４３は、この関数Ｆを用いて、ユーザの眼球運動量に対応する画面上の視線移動量Ｆ（Δ（ｎ〜ｎｏｗ））を計算する。続いて、視線位置推定部１５５は、ユーザの視線位置Ｐ（ｎｏｗ）直前のインタラクション対象の位置Ｐ（ｎ）に、視線移動量Ｆ（Δ（ｎ〜ｎｏｗ））を加算して、ユーザの視線位置Ｐ（ｎｏｗ）を推定する。
【００７７】
ここで、関数Ｆのパラメータ更新について説明する。推定装置１０では、データセット記憶部１４４に格納されるデータセットの数量に上限を設け、データセットの数量が上限を超える場合には、データセットのうち最も古いデータセットを一つ捨てる。言い換えると、推定装置では、最近のインタラクションだけを利用して、眼電位の合計変化量Δと、インタラクション対象の画面上の位置Ｐとの対応付けを常に更新していく。これに応じて、更新されたデータセットを用いて学習を行い、関数Ｆのパラメータを更新していくことによって、時間の経過によって生じたドリフトや姿勢移動による対応付けの変化に適応していくことが可能である。
【００７８】
図７は、図１に示す推定装置１０が用いる関数Ｆのパラメータの更新について説明する図である。画面Ｍ上に置いて、実際の視線の移動距離と、現在のモデル（関数Ｆ）が予測する移動距離との間に誤差が生じた場合であっても（図７の（１）参照）、実際のクリック間距離を真の移動距離とみなせば、モデル（関数Ｆのパラメータ）を補正（更新）可能である（図７の（２）参照）。言い換えると、推定装置１０では、常に、画面上におけるインタラクション対象の最新位置を用いて、関数Ｆのパラメータを更新している。
【００７９】
したがって、推定装置１０によれば、関数Ｆのパラメータ更新は、自動的に繰り返し実行される。このため、関数Ｆのパラメータ更新のために、ユーザによる操作を必要としない。以上より、推定装置１０では、常に最新のデータセットを用いて自動的に関数Ｆのパラメータ更新を繰り返すため、推定精度の劣化を低減するとともに、パラメータ更新の実行による実用性低下も防止することができる。
【００８０】
［推定処理の処理手順］
次に、推定装置１０による推定処理の処理手順について説明する。図８は、実施の形態１に係る推定処理の処理手順を示すフローチャートである。
【００８１】
図８に示すように、眼電位情報取得部１５１は、センサ４より入力された、ユーザの眼電位の計測値に基づいて該ユーザの眼球運動における眼電位の変化量を取得する（ステップＳ１）。例えば、ステップＳ１と並行して、インタラクション位置取得部１５２は、ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報を取得する（ステップＳ２）。
【００８２】
推定装置１０では、制御部１５が、インタラクションを検知したか否かを判定する（ステップＳ３）。制御部１５は、インタラクションを検知していないと制御部１５が判定した場合（ステップＳ３：Ｎｏ）、ステップＳ１及びステップＳ２に戻る。
【００８３】
インタラクションを検知したと制御部１５が判定した場合（ステップＳ３：Ｙｅｓ）、データセット保存部１４５１は、所定量のデータセットを取得したか否かを判定する（ステップＳ４）。データセット保存部１４５１は、所定量のデータセットを取得していないと判定した場合（ステップＳ４：Ｎｏ）、眼電位の変化量と画面上のインタラクション対象の位置情報とを１組とのデータセットとして、データセット記憶部１４４に追加する（ステップＳ５）。
【００８４】
これに対し、所定量のデータセットをデータセット保存部１４５１が取得したと判定した場合（ステップＳ４：Ｙｅｓ）、注視チェック部１５３が注視チェックを行う（ステップＳ６）。注視チェック部１５３は、前回推定されたユーザの画面上での視線位置と、新規インタラクションにおける画面上のインタラクション対象の実際の位置との間の第１の距離が、所定の閾値Ｌ以下であるか否かを判定する。そして、注視チェック部１５３は、第１の距離が、所定の閾値Ｌ以下であると判定した場合、新規インタラクションの画面上のインタラクション対象の実際の位置情報と、これに対応する眼電位の変化量とのデータセットは、注視チェックを通過したと判定する。
【００８５】
そして、注視チェック部１５３は、新規インタラクションの画面上のインタラクション対象の実際の位置情報と、これに対応する眼電位の変化量とのデータセットが注視チェックを通過したか否かを判定する（ステップＳ７）。制御部１５は、対象のデータセットが注視チェックを通過しないと注視チェック部１５３が判定した場合（ステップＳ７：Ｎｏ）、このデータセットを用いた以降の処理を行わず、ステップＳ１２に進む。
【００８６】
一方、対象のデータセットが注視チェックを通過したと注視チェック部１５３が判定した場合（ステップＳ７：Ｙｅｓ）、データセット保存部１５４１は、このデータセットを、データセット記憶部１４４に追加し（ステップＳ８）、古いデータセットを廃棄する。
【００８７】
そして、関数生成部１５４２は、データセット記憶部１４４が記憶する、新たなデータセットを含む複数のデータセットを視線移動量推定用の関数Ｆのパラメータを更新する（ステップＳ９）、続いて、視線移動量計算部１５４３は、関数Ｆに、前回のインタラクション発生時刻から現時刻までのインタラクション発生時刻までの間の眼電位の変化量を入力し、眼電位の変化量に対応する画面上の視線移動量、すなわち、前回のインタラクションに対するインタラクション対象の位置から、現時刻における視線の位置までの間の移動量を取得する（ステップＳ１０）。
【００８８】
視線位置推定部１５５は、前回インタラクションの画面上の対象位置に、視線移動量計算部１５４３が取得した眼電位の変化量に対応する画面上の視線移動量を加算することによって、現時刻における視線位置を推定する（ステップＳ１１）。
【００８９】
その後、制御部１５は、視線の推定位置、眼電位の変化量、及び、視線移動量をアイトラッキングに使用開始した後（ステップＳ１２）、ステップＳ１に戻り、次の視線位置推定処理を進める。
【００９０】
［実施の形態１の効果］
このように、実施の形態１に係る推定装置１０は、ユーザの願電波情報に変化量を取得してユーザの画面上の視線移動量を相対的に取得する。そして、推定装置１０は、ユーザの操作によるデバイス上でのインタラクションに対応する画面上のインタラクション対象の位置情報（絶対値）を取得する。続いて、推定装置１０は、画面上の視線移動量（相対値）と、画面上のインタラクション対象の位置情報（絶対値）とを基に、ユーザの画面上での現時刻での視線位置を推定する。具体的には、推定装置１０は、画面上の視線移動量（相対値）を、画面上のインタラクション対象の位置情報（絶対値）に加算して、ユーザの画面上での現時刻での視線位置を推定する。
【００９１】
このように、本実施の形態１では、ＥＯＧ法にインタラクション利用を加え、画面上の視線移動量（相対値）と画面上のインタラクション対象の位置情報（絶対値）とを加算するという単純な推定方式を採用する。また、本実施の形態１では、絶対値に推定値を加算する推定方式を採用するため、推定値のみを加算する場合と比較し、高い精度を保持することも可能である。このため、本実施の形態１によれば、計算量を増加させることなく、ユーザの画面上での現時刻での視線位置を推定することができるため、実用性を低下させることなく、高精度な視線位置計測を行うことが可能となる。
【００９２】
また、本実施の形態１では、注視チェック部１５３が、前回推定されたユーザの画面上での視線位置と、新規インタラクションにおける画面上のインタラクション対象の位置との間の第１の距離が、所定の閾値以下であるか否かを判定する。すなわち、実施の形態１では、推定装置１０が、実際の視線位置と推定した視線位置とのずれを検知する。さらに、実施の形態１では、注視チェック部１５３は、関数Ｆが生成された後は、毎インタラクションが発生するごとに注視チェックを行う。
【００９３】
そして、実施の形態１では、実際の視線位置と推定した視線位置とのずれがないデータセットのみを用いて、関数Ｆのパラメータを繰り返し更新する。言い換えると、実施の形態１では、実際の視線位置と合わないデータセットは採用しないため、関数Ｆのパラメータ更新を適切に実行できる。
【００９４】
そして、本実施の形態１では、常に最新のデータセットを用いて、自動的に、関数Ｆのパラメータ更新を繰り返す。すなわち、関数Ｆのパラメータ更新に関する処理は、ユーザの明示的な動作なしに行う。言い換えると、実施の形態１では、交流ＥＯＧ法を適用した場合に必要となる視線位置のキャリブレーションをユーザが意識しない形で繰り返し行っている。さらに、本実施の形態１によれば、推定精度の劣化を低減するとともに、関数Ｆのパラメータ更新の実行による実用性低下も防止することができる。以上より、推定装置１０では、常に最新のデータセットを用いて自動的に関数Ｆのパラメータ更新を繰り返すため、推定精度の劣化を低減するとともに、パラメータ更新の実行による実用性低下も防止することができる。
【００９５】
以上より、本実施の形態１によれば、交流ＥＯＧ法を適用し、実用性を低下させることなく、高精度な視線位置計測を行うことが可能となる。
【００９６】
［実施の形態１の変形例１］
本実施の形態１の変形例として、注視チェック部１５３は、注視チェック処理（ステップＳ６）において、インタラクションに対応する注視を検出する際に、この処理の実行タイミングを調節しても用いてもよい。注視チェック部１５３は、注視チェック処理を、ユーザの眼球運動の停止に関する特徴的な情報に基づくタイミングで実行する。
【００９７】
例えば、注視チェック部１５３は、眼球運動が一時停止していることをもって、画面の一定位置に注視を行っていると判定することで、注視が発生していることを検出することができる。注視チェック部１５３は、あるインタラクションを注視しているかどうかチェックする際には、インタラクション発生時刻の推定された視線位置をそのまま用いるのではなく、インタラクション発生時刻に近いタイミングで検出された注視を用いる。これによって、注視チェックの精度が向上することが期待される。一般に、ユーザはクリック対象を注視したあと、マウスクリックを行っているとされているため、このタイミング調整を行うことによって、インタラクションの少し前に存在するインタラクション対象への注視を精度よく抽出することに役立つことが期待される。
【００９８】
また、注視チェック処理においては、インタラクション対象のメタ情報を用いてもよい。例えば、注視チェック部１５３は、ボタンやテキストボックスなど意味のある対象物が存在する場合には、注視チェックを通過させる。一方、注視チェック部１５３は、意味のある対象物が存在しない場合には意図しない入力であるとして注視していないものとみなす。
【００９９】
［実施の形態１の変形例２］
また、注視チェック部１５３は、注視チェック処理において、閾値Ｌとして、定められた値を静的に用いるのではなく、関数Ｆの信頼度に応じて、閾値Ｌを適応的に変化させてもよい。例えば、推定を開始してすぐのモデルは、注視対象とインタラクション対象が一致しているかどうか厳密には問われずに生成される。このため、推定を開始してすぐの場合は、関数Ｆの精度がそれほどよくないと考えられるので、注視チェック部１５３は、閾値Ｌを比較的大きめにとっておき、回数を追うごとに一定値に達するまで閾値Ｌの値を下げていってもよい。
【０１００】
このように、関数Ｆの信頼度に応じて閾値Ｌを変化させるによって、不適切な注視チェックが働くことを防止できることが期待できる。また、データセットの更新による関数Ｆの再補正では対応吸収しきれない短い時間単位で発生するドリフトを軽減させるために、眼電位データにフィルタをかけるなどしてもよい。
【０１０１】
［実施の形態２］
次に、実施の形態２について説明する。実施の形態２は、眼電位センサの他に頭部の運動量を計測するセンサの検出結果を用いて、データセットの更新による関数Ｆのパラメータ更新では吸収しきれない短い時間単位で発生する姿勢変化に対応する。
【０１０２】
図９は、実施の形態２における推定システムの構成の一例を示す図である。図９に示すように、ユーザ２の頭部には、加速度センサ２０３ａ、傾きセンサ２０３ｂが装着される。センサ２０４は、加速度センサ２０３ａ、傾きセンサ２０３ｂから取得した計測値を推定装置２１０に入力する。
【０１０３】
加速度センサ２０３ａは、頭部の加速度を計測する。加速度センサ２０３ａ計測した加速度は、相対的な頭部の三次元的な位置移動に関する情報である。傾きセンサ２０３ｂは、頭部の角度変化を計測する。傾きセンサ２０３ｂが計測した頭部の角度変化は、相対的な頭部の三軸に関する角度変化に関する情報である。これらの２つの情報は、空間内における相対的な頭部の運動量に関する頭部運動情報として扱われる。推定装置２１０は、頭部運動情報を、眼電位の変化量とともに用いて、画面上の視線位置を求める。
【０１０４】
図１０は、図９に示す推定装置２１０の構成の一例を示すブロック図である。推定装置２１０は、図２に示す推定装置１０と比して、記憶部１４が、センサ２０４から入力された頭部運動情報を記憶する頭部運動情報記憶部２１４１を有する。また、推定装置２１０は、推定装置１０の制御部１５に代えて、頭部運動情報取得部２１５１及び視線移動量取得部２１５４を有する制御部２１５を有する。
【０１０５】
頭部運動情報取得部２１５１は、ユーザの頭部の移動に関する計測値に基づいて該ユーザの頭部移動情報を取得する。頭部運動情報取得部２１５１は、加速度センサ２０３ａ及び傾きセンサ２０３ｂによる計測値を、頭部運動情報として取得する。
【０１０６】
視線移動量取得部２１５４は、ユーザの眼球運動の情報及び画面上のインタラクション対象の位置情報とともに、ユーザの頭部運動情報を用いて、画面上の視線移動量を取得し、ユーザの画面上での視線位置を推定する。視線移動量取得部２１５４は、データセット保存部２１５４１、関数生成部２１５４２及び視線移動量計算部２１５４３を有する。
【０１０７】
データセット保存部２１５４１は、眼電位情報取得部１５１が取得したユーザの眼球運動の情報と、インタラクション位置取得部１５２が取得した画面上のインタラクション対象の位置情報と、頭部運動情報取得部２１５１が取得したユーザの頭部運動情報とを、１組のデータセットとして、その時点のデータセット記憶部１４４に保存する。データセット保存部２１５４１は、注視チェック部１５３を通過したユーザの眼電位の変化量と、画面上のインタラクション対象の位置情報と、ユーザの頭部運動情報とをデータセット記憶部１４４に保存し、古いデータセットを一つ廃棄する。
【０１０８】
関数生成部２１５４２は、データセット記憶部１４４に保存されたデータセットが所定組を超えた際に、関数Ｆ´を生成する。関数Ｆ´は、前回のインタラクション発生時刻から現時刻までの間の眼電位の変化量と頭部運動情報とを入力すると、前回のインタラクションに対するインタラクション対象の位置から、現時刻における視線の位置までの間の移動量（距離、方向）（相対値）を、視線移動量として、出力する関数である。
【０１０９】
関数生成部２１５４２は、データセット記憶部１４４に保存された複数のデータセットを任意のアルゴリズムに学習させることによって、関数Ｆ´を生成する。関数生成部２１５４２は、生成した関数Ｆ´のパラメータをパラメータ記憶部１４５に記憶する。また、関数生成部１５４２は、関数Ｆ´の生成後、新たなデータセットによってデータセットが更新されるごとに、関数Ｆ´ののパラメータを更新する。
【０１１０】
視線移動量計算部２１５４３は、ユーザの眼球運動の情報と頭部運動情報とを基に、ユーザの眼球運動量及びユーザの頭部運動情報に対応する画面上の視線移動量を計算する。具体的には、視線移動量計算部２１５４３は、関数Ｆ´に、前回のインタラクション発生時刻から現時刻までの眼電位の変化量と頭部運動情報とを入力することによって、前回のインタラクションに対するインタラクション対象の位置から、現時刻における視線の位置までの間の移動量を計算する。
【０１１１】
そして、視線位置推定部１５５は、前回インタラクションの画面上の対象位置に、視線移動量計算部２１５４３が取得したユーザの眼電位の変化量及び頭部運動情報に対応する画面上の視線移動量を加算することによって、現時刻における視線位置の推定位置を得る。
【０１１２】
［推定処理の処理手順］
次に、推定装置２１０による推定処理の処理手順について説明する。図１１は、実施の形態２に係る推定処理の処理手順を示すフローチャートである。
【０１１３】
図１１に示すステップＳ２１及びステップＳ２２は、図８に示すステップＳ１及びステップＳ２と同様の処理である。頭部運動情報取得部２１５１は、ステップＳ２１及びステップＳ２２と並行して、ユーザの頭部運動情報を取得する（ステップＳ２３）。ステップＳ２４及びステップＳ２５は、図８に示すステップＳ３及びステップＳ４と同様の処理である。
【０１１４】
データセット保存部２１４５１は、所定量のデータセットを取得していないと判定した場合（ステップＳ２５：Ｎｏ）、眼電位の変化量と画面上のインタラクション対象の位置情報と頭部運動情報とを１組とのデータセットとして、データセット記憶部１４４に追加する（ステップＳ２６）。
【０１１５】
これに対し、所定量のデータセットをデータセット保存部１４５１が取得したと判定した場合（ステップＳ２５：Ｙｅｓ）、ステップＳ２７に進む。ステップＳ２７及びステップＳ２８は、図８に示すステップＳ６及びステップＳ７と同様の処理である。
【０１１６】
制御部２１５は、対象のデータセットが注視チェックを通過しないと注視チェック部１５３が判定した場合（ステップＳ２８：Ｎｏ）、このデータセットを用いた以降の処理を行わず、ステップＳ３３に進む。
【０１１７】
一方、対象のデータセットが注視チェックを通過したと注視チェック部１５３が判定した場合（ステップＳ２８：Ｙｅｓ）、データセット保存部２１５４１は、このデータセットを、データセット記憶部１４４に追加し（ステップＳ２９）、古いデータセットを廃棄する。
【０１１８】
そして、関数生成部２１５４２は、データセット記憶部１４４が記憶する、新たなデータセットを含む複数のデータセットを視線移動量推定用の関数Ｆ´のパラメータを更新する（ステップＳ３０）。続いて、視線移動量計算部１５４３は、関数Ｆ´に、前回のインタラクション発生時刻から現時刻までのインタラクション発生時刻までの間の眼電位の変化量及び頭部移動情報を入力し、眼電位の変化量及び頭部移動情報に対応する画面上の視線移動量を取得する（ステップＳ３１）。ステップＳ３２およびステップＳ３３は、図８に示すステップＳ１１及びステップＳ１２と同様の処理である。
【０１１９】
［実施の形態２の効果］
このように、実施の形態２では、頭部運動情報を取得し、眼球の運動量に加えて、眼球が存在している頭部そのものの運動量についても考慮して視線推定を行うことができる。したがって、実施の形態２によれば、実施の形態１と比して、さらに、頭部を移動しながらの視線移動に対応することができるという効果を奏する。
【０１２０】
そして、実施の形態２では、頭部の移動量と傾きとによって、ディスプレイ外の周辺的な環境に対して、視線が向いているという情報を得ることができる。実施の形態２では、デスクに配置されている物をディスプレイ外への注視行動と対応付けることで、それらに対する注視も計測することができる。例えば、「ディスプレイを離れて真下」なら「キーボード」を注視していると判定でき、「真下から少し右側」なら「キーボード脇の業務マニュアル」を注視していると判定でき、「ディプスレイより左側」なら「電話機」を注視していると判定できる。
【０１２１】
このように、実施の形態２によれば、顔面が画面正面方向から逸れると視線推定が不可能となる既存のアイトラッカの問題点を克服し、ユーザの状態についてより広範なデータを取得することを可能にする。
【０１２２】
なお、頭部の位置が画面の中心から垂直にあるとき、画面の中心付近は頭部に近いが、周辺は頭部から遠くなる。こうした距離の違いは、眼球運動量と視線移動量との対応付けに違いをもたらす。
【０１２３】
このため、本実施の形態１，２では、視線位置の推定を行う際に、眼球運動の出発点とみなす直前のクリックの画面中での絶対位置を関数生成の入力の一部とする。これによって、例えば直近の数分の間、頭部位置が画面中央から垂直にあった場合、画面中央付近のクリック（出発点）から視線移動を行う際には、視線移動量は小さめに算出され、中央から離れたクリックから視線移動を行う際には、視線移動量は大きめに算出されるような関数を作ることが可能になる。また、直近の数分における頭部位置が画面中央から少し右にあった場合には、その場所（画面中央から少し右）を中心として、同様にそこから離れれば視線移動量を大きくしていくような関数が得られる。言い換えると、頭部位置を考慮した関数を得るためには、眼球運動量を視線移動量に対応付ける際にクリックの絶対座標を考慮すればよく、頭部センサは必ずしも必要ではないともいえる。
【０１２４】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。本実施の形態に係る推定装置１０，２１０は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【０１２５】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２６】
［プログラム］
図１１は、プログラムが実行されることにより、推定装置１０，２１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１２７】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１２８】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、推定装置１０，２１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、推定装置１０，２１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１２９】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１３０】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１３１】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０１３２】
３  電極
４  センサ
１０，２１０  推定装置
１１  入力装置
１１ａ  マウス
１１ｂ  キーボード
１２  表示装置
１２ａ  ディスプレイ
１３  通信部
１４  記憶部
１５，２１５  制御部
１４１  眼電位情報記憶部
１４２  インタラクション記憶部
１４３  推定位置記憶部
１４４  データセット記憶部
１４５  パラメータ記憶部
１５１  眼電位情報取得部
１５２  インタラクション位置取得部
１５３  注視チェック部
１５４，２１５４  視線移動量取得部
１５５  視線位置推定部
１５４１，２１５４１  データセット保存部
１５４２，２１５４２  関数生成部
１５４３，２１５４３  視線移動量計算部
２１４１  頭部運動情報記憶部
【図１】
2019197369.tif 000004
【図２】
2019197369.tif 000005
【図３】
2019197369.tif 000006
【図４】
2019197369.tif 000007
【図５】
2019197369.tif 000008
【図６】
2019197369.tif 000009
【図７】
2019197369.tif 000010
【図８】
2019197369.tif 000011
【図９】
2019197369.tif 000012
【図１０】
2019197369.tif 000013
【図１１】
2019197369.tif 000014
【図１２】
2019197369.tif 000015
【図１３】
2019197369.tif 000016