(57)【特許請求の範囲】
【請求項１】
表示部を備えた情報処理装置であって、
接続された撮像手段から供給される撮像データ内にある眼球の特定部位を表す画像を第１の画像として検出する第１の画像検出手段と、前記撮像データ上での前記第１の画像の位置を特定する第１検出手段と、
前記撮像データ内から前記眼球に写りこんだ特定形状の物体を表す画像を第２の画像として検出する第２の画像検出手段と、前記撮像データ上での前記第２の画像の位置を特定する第２検出手段と、
前記第１の画像の位置と、前記第２の画像の位置との関係に基づき、前記撮像手段で撮像された眼球における視線移動量を検出する視線移動量検出手段と、
前記視線移動量検出手段により検出された前記視線移動量に基づいてマウスポインタを前記表示部内で移動させるマウスポインタ制御手段と、
前記第１の画像の位置と前記第２の画像の位置の変化の基準となる基準ズレ量を設定する基準ズレ量設定手段と、を有し、
前記基準ズレ量設定手段は、前記マウスポインタの移動にあわせて前記基準ズレ量を更新することを特徴とする情報処理装置。
【請求項２】
前記第２の画像検出手段は、縦横のサイズと縦横の比が所定の範囲内である画像を前記第２の画像として検出する請求項１に記載の情報処理装置。
【請求項３】
前記表示部は、第２の画像を表示し、
前記眼球に映り込んだ画像は、前記表示部に表示された前記第２の画像である請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置はさらに、瞬きを所定時間内に所定回数の動作が行われたかを検出する瞬き検出手段と、前記動作を検出した場合にマウスのクリック操作がなされたことを示す通知信号を発生させる通知手段とを有する請求項３に記載の情報処理装置。
【請求項５】
表示部を備え、接続された撮像手段から供給される撮像データ内の画像から視線の移動量を検出する情報処理装置に用いられるコンピュータを、
前記撮像手段から供給される撮像データ内にある眼球の特定部位を表す画像を第１の画像として検出する第１の画像検出手段と、
前記撮像データ上での前記第１の画像の位置を特定する第１検出手段と、
前記撮像データ内から前記眼球に写りこんだ特定形状の物体を表す画像を第２の画像として検出する第２の画像検出手段と、
前記撮像データ上での前記第２の画像の位置を特定する第２検出手段と、
前記第１の画像の位置と、前記第２の画像の位置との関係に基づき、前記撮像手段で撮像された眼球における視線移動量を検出する視線移動量検出手段と、
前記視線移動量検出手段により検出された前記視線移動量に基づいてマウスポインタを前記表示部内で移動させるマウスポインタ制御手段と、
前記第１の画像の位置と前記第２の画像の位置の変化の基準となる基準ズレ量を設定する基準ズレ量設定手段と、して機能させるプログラムであって、
前記基準ズレ量設定手段は、前記マウスポインタの移動にあわせて前記基準ズレ量を更新することを特徴とする。
【請求項６】
表示部を備え、接続された撮像手段から供給される撮像データ内の画像から視線の移動量を検出する情報処理方法であって、
前記撮像手段から供給される撮像データ内にある眼球の特定部位を表す画像を第１の画像として検出する第１の画像検出ステップと、
前記撮像データ上での前記第１の画像の位置を特定する第１検出ステップと、
前記撮像データ内から前記眼球に写りこんだ特定形状の物体を表す画像を第２の画像として検出する第２の画像検出ステップと、前記撮像データ上での前記第２の画像の位置を特定する第２検出ステップと、
前記第１の画像の位置と、前記第２の画像の位置との関係に基づき、前記撮像手段で撮像された眼球における視線移動量を検出する視線移動量検出ステップと、
前記視線移動量検出ステップにより検出された前記視線移動量に基づいてマウスポインタを前記表示部内で移動させるマウスポインタ制御ステップと、
前記第１の画像の位置と前記第２の画像の位置の変化の基準となる基準ズレ量を設定する基準ズレ量設定ステップと、を含む情報処理方法であって、
前記基準ズレ量設定ステップは、前記マウスポインタの移動にあわせて前記基準ズレ量を更新することを特徴とする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び方法、並びにプログラムの技術に関し、特に、頭部の束縛がない状態でユーザが眼を動かすだけで、マウス操作と等価な操作を実現可能にする技術に関する。
【背景技術】
【０００２】
従来より、パーソナルコンピュータ等の情報処理装置に対して情報を入力する操作として、入力機器を用いた入力操作が用いられている。特に、このような入力機器を用いた入力操作としては、マウスを用いた入力操作、即ちいわゆるマウス操作が広く用いられている。マウス操作の代表的な操作としては、アイコン等を選択するために、当該アイコン等までマウスポインタを移動させて、クリックする操作が知られている。
【０００３】
近年、マウス操作と等価な入力操作（以下、「マウス等価操作」と呼ぶ）を、マウスを用いずに、マウスポインタを含む画面を見るユーザの眼の動きだけで行いたいという要求が存在する。
近年、このような要求に応えるために、人間の眼球の視線位置を検出する技術が研究開発されている（特許文献１乃至３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１８７６０号公報
【特許文献２】特開２００１−６１７８５号公報
【特許文献３】特開平６−３４７８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１乃至３に記載された技術は、ユーザが頭部を固定してファインダを覗いたり、ヘッド・マウント・ディスプレイを頭部に装着したり、といった頭部を何かしらで束縛することが前提とされている。
しかしながら、マウス等価操作をするだけのために頭部が束縛されることは、ユーザにとって不快であり、このような頭部の束縛がない状態でマウス等価操作を実現することが要望されている状況である。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、頭部の束縛がない状態でユーザが眼を動かすだけで、マウス等価操作を実現可能にすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の１態様によると、
表示部を備えた情報処理装置であって、
接続された撮像手段から供給される撮像データ内にある眼球の特定部位を表す画像を第１の画像として検出する第１の画像検出手段と、
前記撮像データ上での前記第１の画像の位置を特定する第１検出手段と、
前記撮像データ内から前記眼球に写りこんだ特定形状の物体を表す画像を第２の画像として検出する第２の画像検出手段と、
前記撮像データ上での前記第２の画像の位置を特定する第２検出手段と、
前記第１の画像の位置と、前記第２の画像の位置との関係に基づき、前記撮像手段で撮像された眼球における視線移動量を検出する視線移動量検出手段と、
前記視線移動量検出手段により検出された前記視線移動量に基づいてマウスポインタを前記表示部内で移動させるマウスポインタ制御手段と、
前記第１の画像の位置と前記第２の画像の位置の変化の基準となる基準ズレ量を設定する基準ズレ量設定手段と、を有し、
前記基準ズレ量設定手段は、前記マウスポインタの移動にあわせて前記基準ズレ量を更新することを特徴とする情報処理装置を提供する。
【０００８】
本発明の別の態様によると、上述した本発明の一態様に係る情報処理装置に対応する情報処理方法及びプログラムを提供する。
【発明の効果】
【０００９】
本発明によれば、頭部の束縛がない状態でユーザが眼を動かすだけで、マウス等価操作が実現可能になる。
【図面の簡単な説明】
【００１０】
【図１】本発明の情報処理装置の一実施形態としての視線入力装置の外観構成を示す背面からの斜視図である。
【図２】図１の視線入力装置による視線位置を検出する手法を説明する図であって、表示部が映り込んだ眼球を撮像した結果を示す図である。
【図３】図２の撮像画像における瞳領域４の部分についての拡大図である。
【図４】図２の撮像画像における表示部像領域５の部分についての拡大図である。
【図５】瞳中心と像中心との相対的位置関係を表すズレ量について説明する図であって、図２の撮像画像における瞳領域４の部分についての拡大図である。
【図６】図１の視線入力装置の機能的構成を示す機能ブロック図である。
【図７】図６の視線入力装置が実行する情報入力処理の流れの一例を示すフローチャートである。
【図８】図７の情報入力処理のうち、ＳＷ処理の詳細な流れの一例を示すフローチャートである。
【図９】図７の情報入力処理のうち、基準検出処理の詳細な流れの一例を示すフローチャートである。
【図１０】図７の情報入力処理のうち、視線検出処理の詳細な流れの一例を示すフローチャートである。
【図１１】図１０の視線検出処理によって決定される、マウスポインタ移動の方向を説明する図である。
【図１２】図９の基準検出処理のうち、像中心検出処理の詳細な流れの一例を示すフローチャートである。
【図１３】図９の基準検出処理のうち、像中心検出処理の詳細な流れの一例であって、図１２の例とは異なる例を説明するフローチャートである。
【図１４】図９の基準検出処理のうち、像中心検出処理の詳細な流れの一例であって、図１２乃至図１３の例とは異なる例を説明するフローチャートである。
【図１５】図６の視線入力装置のハードウェアの構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態を図面に基づいて説明する。
【００１２】
図１は、本発明の情報処理装置の一実施形態としての視線入力装置１の外観構成例を示す背面からの斜視図である。
図１に示すように、視線入力装置１は、デジタルフォトフレームとして構成されている。視線入力装置１の正面（図１に図示されていない方の面）には、表示部１１と、撮像部１２と、が設けられている。
ユーザは、頭部を何ら束縛されることなく、その眼球２で表示部１１を見ながら視線を動かすだけで、マウス等価操作を行うことができる。
即ち、視線入力装置１は、ユーザの眼球２の視線位置を検出し、その検出結果に基づいてマウス等価操作を認識し、マウス等価操作により指示される情報（マウスポインタの移動指示やクリックによる選択指示等）を入力して、対応する処理を実行できる。
【００１３】
ここで、図２乃至図５を参照して、本実施形態で採用されている、ユーザの眼球２の視線位置の検出手法の一例について、具体的に説明する。
【００１４】
図２は、視線入力装置１による視線位置を検出する手法を説明する図であって、表示部１１が映り込んだ眼球２を撮像した結果を示す図である。
即ち、図２には、撮像部１２が眼球２を撮像した結果得られる画像（以下、「撮像画像」と呼ぶ）の一例が示されている。
撮像画像には、眼球２の像の領域３（以下、「眼球領域３」と呼ぶ）が含まれている。眼球領域３には、眼球２の瞳の像の領域（以下、「瞳領域４」と呼ぶ）と、眼球２に映り込んだ表示部１１の像の領域（以下、「表示部像領域５」と呼ぶ）と、が含まれている。
なお、撮像部１２の撮像対象の眼球２は、左右どちらのものでも構わないが、本実施形態では左目のものが予め採用されている。ただし、眼球２として右目のものが予め採用されていてもよいし、事後的に左右の何れかを選択できるようにしてもよい。
さらに、撮像部１２の撮像対象は両目であってもよく、この場合、視線入力装置１は、後述するクリック等価操作等、様々なマウス等価操作を両目の動作の組み合わせとして検出することができる。
【００１５】
ここで、本実施形態の「視線検出」としては、とある時点におけるユーザの眼球２の視線が向いている絶対的な方向を特定するものではなく、過去の特定の時点から検出時点までの間における眼球２の視線の移動ベクトル（移動量及び移動方向）を検出するものが採用されている。
【００１６】
視線の移動ベクトルを検出するために、連続して撮像された複数の撮像画像から、次の２つの基準点が特定されて用いられる。即ち、視線と共に動く基準点（以下、「移動基準点」と呼ぶ）と、当該移動基準点の座標を設定するための不動の原点となる基準点（以下、「不動基準点」と呼ぶ）といった２点が撮像画像から特定されて用いられる。
【００１７】
従来、移動基準点としては瞳領域４の位置（を代表する点）が、不動基準点としては眼球領域３の位置（を代表する点）が、それぞれ一般的に用いられてきた。
撮像画像のデータから瞳孔を正確に検出する技術自体は公知であり、瞳領域４の位置は、当該技術により検出された瞳孔の中心点によって代表させることができる。しかしながら、眼球領域３全体の位置を正確に検出することは、眼球２と固定的な位置関係にある測定装置を設けない限り非常に困難である。このような測定装置を設けなくとも目頭や目尻などの特徴部分は検出できるが、このような特徴部分は、瞳孔ほど鮮明ではなく、眼球領域３の正確な位置を特定するためには利用できない。
それ故、眼球領域３の位置を特定するためには、結局のところ、瞳孔を最も重要な特徴部分として検出することになる。この場合、当然ながら、瞳孔に基づいてそれぞれ特定された、眼球領域３の位置と瞳領域４の位置とを区別することは実質上できない。
このように、瞳領域４以外の特徴部分によって眼球領域３の位置を検出できる技術がない限り、眼球領域３の位置と瞳領域４の位置とを分離して検出することは非常に困難である。
それ故、特許文献１乃至３のような従来技術では、眼球の位置をある程度固定する必要があり、何かしらのユーザの頭部の束縛がなされることが前提となっていた。
しかしながら、このような頭部の束縛はユーザにとって不快であり、煩わしさに耐えない。
【００１８】
そこで、本実施形態では、頭部の束縛がない状態でユーザが眼を動かすだけでマウス等価操作を実現可能にすべく、次のような視線検出の手法が採用されている。
即ち、不動基準点として、従来の眼球領域３の位置の代わりに、瞳領域４の位置とは独立して検出することが可能な表示部像領域５の位置が採用される。この場合、不動基準点としての表示部像領域５の位置に対する、移動基準点としての瞳領域４の位置の相対的変化を検出することで、視線検出が実現される。
【００１９】
さらに以下、図３乃至図５を参照して、本実施形態の視線検出の手法について詳述する。
【００２０】
図３は、図２の撮像画像における瞳領域４の部分についての拡大図である。
図３に示すように、本実施形態では、瞳領域４の位置を代表する瞳中心Mは、例えば、瞳領域４の重心として特定することができる。
ここで、本実施形態では、撮像画像における所定領域の重心は、当該所定領域を構成する全画素の座標の平均値として求められるものとする。
即ち、撮像画像において、瞳領域４の重心の横座標は、瞳領域４を構成する全画素の各横座標の平均値として算出される。同様に、撮像画像においては、瞳領域４の重心の縦座標は、瞳領域４を構成する全画素の各縦座標の平均値として算出される。
このようにして算出された瞳中心Mが、本実施形態の移動基準点として用いられることになる。
【００２１】
ここで、本実施形態では、撮像画像の各画素の座標として、当該撮像画像の右下隅の画素を原点として、原点から当該画素までの距離を、横方向と縦方向の画素数で測ったものが採用されている。
即ち、本実施形態では、撮像画像のうち、横方向の最下線に沿って右から左に向かう軸が、横座標を示す軸であり、X軸として採用されている。一方、撮像画像のうち、縦方向の最右線に沿って下から上に向かう軸が、縦座標を示す軸であり、Y軸として採用されている。
このような座標が本実施形態で採用されているのは、眼球２が表示部１１と差し向かいになっているため、眼球２の視線がユーザから見て左から右に動く時、連続して撮像される複数の撮像画像の中では、瞳中心Mは逆に右から左に動くという鏡像関係を考慮したためである。また、後述する視線検出処理において、表示部１１の座標系のX軸の方向を、一般的通念に従い、左から右に向かって定義できるようにするためである。
【００２２】
なお、瞳中心Mを特定する手法は、特に本実施形態の手法に限定されず、瞳領域４の位置を代表する一点を瞳中心Mとして特定できる手法であれば足る。
【００２３】
図４は、図２の撮像画像における表示部像領域５の部分についての拡大図である。
図４に示すように、表示部像領域５の像中心Zは、表示部像領域５の位置を代表する点、即ち表示部像領域５の略中心の点であるため、本実施形態の不動基準点として用いられる。
【００２４】
像中心Zは、例えば、次のようにして特定することができる。
表示部像領域５は、眼球２に像として映り込んだ表示部１１が撮像された結果得られた領域であるため湾曲しているが、略長方形として近似的に取り扱うことが可能である。即ち、表示部像領域５は、図４に示す４つの頂点V1乃至V4からなる略長方形として近似的に取り扱うことができる。このように取り扱うことで、撮像画像から４つの頂点V1乃至V4を検出し、これらの４つの頂点V1乃至V4の重心を像中心Zとして容易に算出することができる。
即ち、撮像画像において、像中心Zの横座標は、４つの頂点V1乃至V4の横座標の平均値として算出される。同様に、像中心Zの縦座標は、４つの頂点V1乃至V4の縦座標の平均値として算出される。
このようにして算出された像中心Zが、本実施形態の不動基準点として用いられることになる。
【００２５】
なお、像中心Zを特定する手法は、特に本実施形態の手法に限定されず、表示部像領域５の位置を代表する一点を像中心Zとして特定できる手法であれば足る。
また、像中心Zを算出するという観点では、表示部像領域を湾曲した形状として撮像画像から忠実に切り出して用いる必要は特にない。例えば、表示部像領域５の境界部分に内接する正確な長方形を切り出し、当該長方形を用いて像中心Zを算出することも可能である。即ち、このような長方形の形状のように、データとして扱い易くなる形状で表示部像領域５を切り出すようにしてもよい。
【００２６】
次に、瞳中心M（移動基準点）と像中心Z（不動基準点）との相対的位置関係に基づく、視線検出の手法について説明する。
【００２７】
ユーザが表示部１１を注視している限り、ユーザの眼球２の視線が動いた場合、眼球領域３の中で、瞳領域４は視線と共に動くが、表示部像領域５は略静止している（図２参照）。
ここで注目すべき点は、眼球領域３全体は、ユーザが顔を動かせば、撮像画像の中で動いてしまうのであるが、ユーザが表示部１１を注視している限り、眼球領域３に対して表示部像領域５は相対的に略静止しているという点である。
また、上述したように、瞳領域４の位置に対して、眼球領域３の位置を独立に特定することは難しいが、表示部領域５の位置を独立に特定することは容易に可能である点も注目すべきである。
これらの注目すべき点を考慮すると、眼球領域３に対して相対的に略静止している表示部領域５の像中心Zを、眼球領域３の位置に代わる不動基準点として採用し、瞳中心M（移動基準点）と像中心Z（不動基準点）との相対的位置関係を表わすズレ量を導入することで、視線検出が容易に可能になる。
【００２８】
図５は、瞳中心Mと像中心Zとの相対的位置関係を表すズレ量について説明する図であって、図２の撮像画像における瞳領域４の部分についての拡大図である。
図５に示すように、撮像画像の座標系において、像中心Zから瞳中心Mに向かうベクトルV(x,y)をズレ量として定義すると、このズレ量の変化は、ユーザの眼球２の視線位置の変化に比例していると把握することができる。よって、このズレ量の変化を検出することによって、視線検出が容易に可能になる。
【００２９】
ここで、ズレ量の変化を検出するためには、変化の基準になるズレ量（以下、「基準ズレ量」と呼ぶ）が必要になるため、本実施形態では、この基準ズレ量の初期設定をするためのキャリブレーションが行われる。
即ち、ユーザは、表示部１１の中央位置を注視しながら、視線入力装置１に対する所定の操作を行うことで、キャリブレーションが行われる。
ここで、視線入力装置１に対する所定の操作は、特に限定されないが、本実施形態では、図示はしないが、視線入力装置１に設けられている専用の物理スイッチ（以下、「キャリブレーションスイッチ」と呼ぶ）の押下操作が採用されている。
即ち、本実施形態のキャリブレーションは、キャリブレーションスイッチの押下操作を契機として実行され、この時に検出された像中心Zから瞳中心Moに向かうズレ量Vo（xo,yo）が、基準ズレ量の初期値として設定される。
【００３０】
なお、初期値と記述したのは、基準ズレ量Vo（xo,yo）は、後述するように逐次更新されていくからである。ただし、この段階で基準ズレ量Vo（xo,yo）の更新の概念を持ち出すと混乱を生ずる恐れがあるため、基準ズレ量Vo（xo,yo）の更新については、ここでは考慮しないで話を進める。
【００３１】
この場合、ユーザの視線の移動ベクトルは、キャリブレーション以後に検出されたズレ量V(x,y)と基準ズレ量Vo(xo,yo)との差分ベクトル△V(△x,△y)の比例ベクトルとして表わすことができる。
ここで、視線の移動ベクトルの単位は何でもよいので、本実施形態では、比例定数を１として、差分ベクトル△V(△x,△y)がそのまま視線の移動ベクトルとして採用されるものとする。
このようにして、本実施形態では、視線の移動ベクトル△V(△x,△y)を検出することによって、視線検出が実現される。
【００３２】
ここで、キャリブレーション時に、表示部１１の中央位置をマウスポインタの初期位置として設定することで、視線の移動ベクトル△V(△x,△y)に基づいて、マウスポインタの初期値からのズレ量を算出することが容易に可能になる。そして、このマウスポインタの初期値からのズレ量に従って、マウスポインタの移動処理も容易に可能になる。
【００３３】
なお、ユーザが目を閉じたり表示部１１から視線を外したりした場合、視線の移動ベクトル△V(△x,△y)の検出は不可能になるが、そのような場合、視線入力装置１は、マウスポインタの移動処理を停止させ、視線の移動ベクトル△V(△x,△y)が再検出できるタイミングまで待機すれば足りる。
視線入力装置１は、視線の移動ベクトル△V(△x,△y)を再び検出した時、ユーザの姿勢がそれほど変わっていなければ、前回のキャリブレーションは依然有効であるため、マウスポインタをユーザの視線に追随させて移動させる処理を再開することができる。
勿論、ユーザが視線を激しく動かしたり、大きく姿勢を変えたりすれば、ユーザの視線位置とマウスポインタの位置とが一致しなくなる場合もある。しかしながら、そのような場合であっても、視線入力装置１は、キャリブレーションを再び行うことにより、ユーザの視線位置とマウスポインタの位置とを一致させることが容易にできる。
【００３４】
以上、瞳中心Mと像中心Zとの相対的位置関係に基づく視線検出の手法について説明した。
次に、図１の視線入力装置１が有する機能のうち、このような視線検出の手法に従った入力処理の実行機能を発揮させるための機能的構成について説明する。
【００３５】
図６は、図１の視線入力装置１の機能的構成を示す機能ブロック図である。
【００３６】
視線入力装置１は、上述した表示部１１及び撮像部１２に加えてさらに、操作部１３と、主制御部１４と、音声出力部１５と、を備えている。
【００３７】
操作部１３は、上述したキャリブレーションスイッチ等の各種物理スイッチで構成されている。
例えば、視線入力装置１は、動作モードとして、視線の動きを活用したマウス等価操作を受け付けて動作するモード（以下、「視線モード」と呼ぶ）と、従来から存在する、通常のマウス操作を受け付けて動作するモード（以下、「通常モード」と呼ぶ）と、を有している。
このため、図示はしないが、視線モードを選択指示するためのスイッチ（以下、「視線モードスイッチ」と呼ぶ）や、通常モードを選択指示するためのスイッチ（以下、「通常モードスイッチ」と呼ぶ）が、操作部１３の一部として設けられている。
【００３８】
ここで、視線モードスイッチが押下操作された後、即ち視線モードに切り替えられた後、最初の視線検出が行われるまでの間に、上述のキャリブレーションが行われている必要がある。
このため、視線モードスイッチが押下操作される度にキャリブレーションを行う仕様にすることで、視線モードスイッチに対して、視線モードの選択指示機能に加えて、キャリブレーションの開始指示機能も割り当てられたことと等価になる。よって、操作部１３の構成要素としてキャリブレーションスイッチは必ずしも必須ではない。
しかしながら、使い易さの観点からすると、視線モードの選択指示機能と、キャリブレーションの開始指示機能とは、それぞれ別のスイッチに割り当てた方がユーザには分かり易くなり好適であるため、本実施形態ではキャリブレーションスイッチが視線モードスイッチとは独立して設けられている。
【００３９】
なお、通常モードに対応すべく、マウス等の入力機器も視線入力装置１に接続可能である。ただし、マウス等の入力機器がなくとも、視線入力装置１は視線モードで動作可能である。このため、マウス等の入力機器は、操作部１３の構成要素として必須なものでない。従って、マウス等の入力機器は、操作部１３の構成要素として含めないものとして取り扱う。
【００４０】
操作部１３の視線モードスイッチが押下操作されて、視線入力装置１が視線モードで動作する場合、主制御部１４においては、図６に示すように、基準検出部２１と、視線検出部２２と、操作内容入力部２３と、表示制御部２４と、音声出力制御部２５と、が機能する。
【００４１】
基準検出部２１は、ユーザの眼球２が撮像された結果得られる撮像画像のデータを撮像部１２から取得して、当該撮像画像のデータから、視線検出を行うための基準となる情報（以下、「基準情報」と呼ぶ）を検出する。
【００４２】
例えば、基準検出部２１は、撮像画像のデータから、瞳領域４の位置を特定し、さらに、移動基準点としての瞳中心Mの座標を、基準情報の１つとして検出する。
【００４３】
また例えば、基準検出部２１は、撮像画像のデータから、表示部像領域５の位置を特定し、さらに、不動基準点としての像中心Zの座標を、基準情報の１つとして検出する。
具体的には例えば、基準検出部２１は、撮像画像のうち瞳中心Mを中心とした所定範囲の中から、平均輝度が所定の閾値以上となる長方形の領域であって、幅と高さが所定の条件を満たす領域を、表示部像領域５として特定する。
ここで、所定の条件として、幅と高さが所定の範囲内に収まると同時に、幅と高さの比が所定の範囲内に収まる、という条件が本実施形態では採用されている。
このような条件を課すのは、表示部領域５として誤認するおそれがある像、例えば眼球２に映り込んだ明るい長方形の像、具体的には例えば蛍光灯や遠方の窓の像を排除するためである。
その後、基準検出部２１は、このようにして特定した表示部像領域５から、上述したようにして像中心Zの座標を算出する。
【００４４】
なお、基準検出部２１は、このようにして検出した瞳中心Mや像中心Zの各座標を基準情報として視線検出部２２に供給するようにしてもよいが、本実施形態では、上述したズレ量V(x,y)をさらに求めて、それを基準情報として視線検出部２２に供給する。
【００４５】
具体的には例えば、基準検出部２１は、キャリブレーション時においては、瞳中心Moや像中心Zの各座標を検出すると、上述の基準ズレ量Vo(xo,yo)の初期設定をし、それを基準情報の１つとして視線検出部２２に供給する。
また、基準検出部２１は、その後に基準ズレ量Vo(xo,yo)を更新する毎に（更新の詳細については後述する）、それを基準情報の１つとして視線検出部２２に供給する。
【００４６】
また、基準検出部２１は、所定の時間間隔毎に、瞳中心Mや像中心Zの各座標を検出し、その検出結果に基づいて上述のズレ量V(x,y)を検出し、それを基準情報の１つとして視線検出部２２に供給する。
【００４７】
視線検出部２２は、これらの基準情報に基づいて、ユーザの眼球２の視線を検出する。
即ち、視線検出部２２は、ズレ量V(x,y)が供給される毎に、当該ズレ量V(x,y)と、その段階で保持している基準ズレ量Vo(xo,yo)とを用いて、視線の移動ベクトル△V(△x,△y)を算出することで、視線検出を行う。
【００４８】
視線検出部２２は、視線検出の結果、即ち視線の移動ベクトル△V(△x,△y)に基づいて、マウス等価操作の１つがなされたこと、即ち、マウスポインタの移動指示と等価な操作がなされたことを認識して、その認識結果を操作内容入力部２３に通知する。
換言すると、視線検出部２２は、視線の移動ベクトル△V(△x,△y)に対応するマウスポインタの移動量（その移動量分だけ移動させる指示）を、次のようにして認識する。
即ち、視線検出部２２は、視線の横方向（X軸方向）の移動量△xが所定の閾値を超えた場合に、移動量△xに所定の比例定数を乗じた量を、マウスポインタの横方向の移動量として認識する。
同様に、視線検出部２２操作内容は、視線の縦方向（Y軸方向）の移動量△yが所定の閾値を超えた場合に、移動量△yに所定の比例定数を乗じた量を、マウスポインタの縦方向の移動量として認識する。
これらの認識結果は、マウス等価操作の内容として視線検出部２２から操作内容入力部２３に供給される。
【００４９】
操作内容入力部２３は、視線検出部２２から供給されたマウス等価操作の内容を入力し、当該内容に応じた処理を実行する。
例えば、マウスポインタの移動量が視線検出部２２から供給された場合、操作内容入力部２３は、当該移動量を入力して、入力した移動量だけマウスポインタを移動させる処理を実行する。即ち、操作内容入力部２３は、マウスポインタの移動量を表示制御部６４に通知する。
【００５０】
表示制御部６４は、マウスポインタを含むGUI（Graphical  User  Interface）用の画面を表示部１１に表示させる制御を実行する。
即ち、表示制御部６４は、操作内容入力部２３から通知された移動量に基づいて、表示部１１の座標系におけるマウスポインタの位置を更新する。これにより、表示部１１に表示されたGUI用の画面内において、マウスポインタが実際に移動する（そのような動画像が表示される）ことになる。
【００５１】
ここで、表示部１１の座標系においては、右向きのX軸と上向きのY軸が採用されているものとする。
これにより、前述の如く、瞳中心Mが撮像画像の座標系において左に動いた時、マウスポインタは表示部１１の座標系において右に動くという鏡像関係を満たすことができる。なお、この詳細については、図１１を参照して後述する。
【００５２】
この後、視線検出部２２は、基準ズレ量Vo(xo,yo)もマウスポインタの移動にあわせて更新する。
即ち、視線検出部２２は、マウスポインタを横方向に△xに比例する移動量だけ移動させた場合、基準ズレ量Voの横方向の要素xoに対して移動量△xを加算する（即ち、xo=xとする）ように、基準ズレ量Vo(xo,yo)を更新する。同様に、視線検出部２２は、マウスポインタを縦方向に△yに比例する移動量だけ移動させた場合、基準ズレ量Voの縦方向の要素yoに対して移動量△yを加算する（つまり、yo=yとする）ように、基準ズレ量Vo(xo,yo)を更新する。
このようにして基準ズレ量Vo(xo,yo)が更新されて、その更新結果が視線検出部２２に保持されると、次回からは、新しいマウスポインタの位置からの視線の移動の検出が可能になる。
なお、上述のように、所定の閾値を超えた場合にのみマウスポインタの位置を更新するのは、人間の視線が常に揺らいでいるという性質のため、マウスポインタも無用に揺らいでしまう現象を回避するためである。
【００５３】
また、視線検出部２２は、マウス等価操作のうち、クリック操作と等価の操作も、撮像画像のデータから検出された眼球の状態に基づいて認識することができる。
即ち、視線検出部２２は、瞬きを検出する公知の手法に従って、撮像画像のデータから瞬き動作を検出する。この場合、視線検出部２２は、所定の時間内に２回連続して瞬き動作を検出した場合、クリック操作と等価の操作が行われたと認識し、その認識結果を操作内容入力部２３に供給する。
操作内容入力部２３は、このような認識結果が供給されると、クリック操作に対応付けられた指示内容、例えばアイコンの選択の指示等の内容を入力し、入力した内容に応じた処理（アイコンの選択等の処理）を実行する。
なお、マウス操作には、クリック操作として、いわゆる左クリックと右クリックが存在する。このような左クリックと右クリックとに区別する必要がある場合には、例えば左目の２回連続の瞬き動作に対して左クリックと等価な操作を割り当て、右目の２回連続の瞬き動作に対して右クリックと等価な操作を割り当てればよい。
【００５４】
さらに、操作内容入力部２３は、マウス等価操作の内容を入力した場合、その内容に応じた音声の出力指示を示す情報を、音声出力制御部２５に供給する。
音声出力制御部２５は、操作内容入力部２３から供給された情報で特定される音声、例えばクリックと等価な操作がなされた場合にはいわゆるクリック音を音声出力部１５から出力させる制御を実行する。
【００５５】
なお、操作部１３の通常モードスイッチが押下操作されて、視線入力装置１が通常モードで動作する場合、主制御部１４においては、操作内容入力部２３と、表示制御部２４と、音声出力制御部２５と、が機能する。ただし、通常モードにおける動作については、従来と何ら変わりがないため、ここではその説明は省略する。
【００５６】
以上、図６を参照して、視線入力装置１の機能的構成について説明した。
ただし、上述した図６の機能的構成は例示に過ぎず、上述の各種機能を装置全体として発揮可能であれば、視線入力装置１は任意の機能的構成を取ることができる。
【００５７】
次に、図７乃至図１４を参照して、図６の機能的構成を有する視線入力装置１が実行する処理のうち、マウス等価操作又は通常のマウス操作の内容を入力する処理（以下、「情報入力処理」と呼ぶ）の流れについて説明する。
【００５８】
図７は、図６の視線入力装置１が実行する情報入力処理の流れの一例を説明するフローチャートである。
情報入力処理は、例えば、視線入力装置１の電源が投入されて、ユーザにより所定の操作がなされたことを契機として開始され、次のようなステップＳ１乃至Ｓ１２の処理が実行される。
【００５９】
ステップＳ１において、主制御部１４は、視線入力装置１の全体を初期設定するためのイニシャライズ処理を実行する。
具体的には例えば、主制御部１４は、後述するステップＳ２のＳＷ処理により設定される動作モードの初期設定として、通常モードを設定する。
なお、本実施形態では、動作モードの初期設定として視線モードを設定することは禁止されているものとする。視線モードの開始時にはキャリブレーションの実行が伴うので、ユーザが視線モードを開始するという明示の指示が必要なためである。
【００６０】
ステップＳ２において、主制御部１４は、ＳＷ（スイッチ）処理を実行する。
ＳＷ処理とは、複数の選択肢が存在するモードについて所定の選択肢を選択したり、複数の状態が存在するフラグについて初期状態を選択したりして、設定する処理をいう。
例えば本実施形態のＳＷ処理では、動作モードとして、通常モードと視線モードとのうちユーザにより選択されたモードが設定される。
なお、ＳＷ処理のさらなる詳細については、図８を参照して後述する。
【００６１】
ステップＳ３において、主制御部１４は、視線モードが設定されているか否かを判定する。
【００６２】
ステップＳ２のＳＷ処理において通常モードが設定された場合、ステップＳ３においてＮＯであると判定されて、処理はステップＳ４に進む。この場合、上述したように、ユーザは通常のマウス操作を行うことになるので、図６の主制御部１４においては、操作内容入力部２３、表示制御部２４、及び音声出力制御部２５が機能する。
ステップＳ４において、操作内容入力部２３は、通常のマウス操作を認識する。
その後、処理はステップＳ９に進む。ただし、ステップＳ９以降の処理については、後述する。
【００６３】
これに対して、ステップＳ２のＳＷ処理において視線モードが設定された場合、ステップＳ３においてＹＥＳであると判定されて、処理はステップＳ５に進む。
ステップＳ５において、基準検出部２１は、基準検出処理を実行する。
基準検出処理とは、上述した図２乃至図５を参照して主要な処理を説明済みであるが、眼球２が撮像された結果得られる撮像画像のデータから、基準情報を検出する処理、即ち、瞳中心M（移動基準点）と像中心Z（不動基準点）とを検出し、それらの検出結果に基づいてズレ量V(x,y)を算出したり、基準ズレ量Vo(xo,yo)を算出（更新を含む）する処理をいう。なお、基準検出処理のさらなる詳細については、図９を参照して後述する。
【００６４】
ステップＳ６において、主制御部１４は、ステップＳ５の基準検出処理において、不動基準点となる像中心Zの検出に成功したか否かを判定する。
【００６５】
ステップＳ５の基準検出処理において像中心Zの検出に失敗した場合、続く視線検出処理（後述のステップＳ８の処理）の実行が不可能になるため、ステップＳ６においてＮＯであると判定されて、処理はステップＳ７に進む。
ステップＳ７において、主制御部１４は、所定のエラー処理を実行する。
その後、処理はステップＳ５の基準検出処理に戻される。即ち、ステップＳ５の基準検出処理で像中心Zの検出に成功するまでの間、ステップＳ５乃至Ｓ７のループ処理が繰り返される。
【００６６】
初回も含め所定の回のステップＳ５の基準検出処理で像中心Zの検出が成功すると、次のステップＳ６においてＹＥＳであると判定されて、処理はステップＳ８に進む。
【００６７】
ステップＳ８において、視線検出部２２は、視線検出処理を実行する。
視線検出処理とは、ステップＳ５の基準検出処理で検出されたズレ量V(x,y)及び基準ズレ量(xo,yo)に基づいて視線の移動ベクトル△V（△x,△y）を求めることによって、視線検出を行い、その視線検出結果に基づいてマウスポインタの移動指示を認識する（マウスポインタの移動量を決定する）等の処理をいう。また、ユーザの瞬きを検出し、クリック操作と等価の操作を認識する処理も、視線検出処理の一部として含まれている。要するに、視線検出処理とは、視線検出を行い、その検出結果等に基づいてマウス等価操作の内容を認識する処理をいう。
なお、視線検出処理のさらなる詳細については、図１０を参照して後述する。
【００６８】
ステップＳ９において、操作内容入力部２３は、ステップＳ８の視線検出処理において認識されたマウス等価操作の内容を入力する入力処理を実行し、入力した内容に応じた処理を適宜実行する。
【００６９】
ステップＳ１０において、表示制御部６４は、ステップＳ９の処理で入力されたマウス等価操作の内容に応じたGUI用の画面、例えば、マウスポインタを移動させたりする画面を、表示部１１に表示させる表示処理を実行する。
【００７０】
ステップＳ１１において、音声出力部１５は、ステップＳ９の処理で入力されたマウス等価操作の内容に応じた音声、例えばいわゆるクリック音を、音声出力部１５から発音させる発音処理を実行する。
【００７１】
ステップＳ１２において、主制御部１４は、処理の終了が指示されたか否かを判定する。
処理の終了の指示は、特に限定されず、例えば視線入力装置１の電源が遮断される指示等、各種各様の指示を処理の終了の指示として採用することができる。
処理の終了がまだ指示されていない場合、ステップＳ１２においてＮＯであると判定されて、処理はステップＳ２に戻され、それ以降の処理が繰り返される。
即ち、処理の終了が指示されるまでの間、ステップＳ２乃至Ｓ１２の処理が繰り返し実行され、ユーザがマウス等価操作又は通常のマウス操作を行う度に、その操作の内容が入力され、入力された内容に応じた処理が実行される。
その後、処理の終了が指示されると、ステップＳ１２においてＹＥＳであると判定されて、視線入力処理の全体が終了となる。
【００７２】
以上、図７を参照して、視線入力処理の流れについて説明した。
次に、このような視線入力処理のうち、ステップＳ２のＳＷ処理の詳細な流れについて説明する。
図８は、ＳＷ処理の詳細な流れを説明するフローチャートである。
【００７３】
ステップＳ２１において、主制御部１４は、操作部１３から全てのスイッチ状態を取得する。
ここで、スイッチ状態とは、ＯＮ状態又はＯＦＦ状態を意味する。また、スイッチ状態が取得されるスイッチは、本実施形態では、通常モードスイッチ、視線モードスイッチ、及びキャリブレーションスイッチである。
【００７４】
ステップＳ２２において、主制御部１４は、キャリブレーションスイッチがＯＮ状態であるか否かを判定する。キャリブレーションスイッチがＯＦＦ状態であった場合、ステップＳ２２においてＮＯであると判定され、処理はステップＳ２３に進む。
【００７５】
ステップＳ２３において、主制御部１４は、ＣＦフラグを「０」に設定する。
ここで、ＣＦフラグとは、キャリブレーション処理が必要か否かを示すフラグである。即ち、ＣＦフラグが「１」に設定されている場合には、キャリブレーション処理が不要であることを意味する。一方、本ステップＳ２３の処理後のように、ＣＦフラグが「０」に設定されている場合には、キャリブレーション処理が不要であることを意味する。
この後、処理はステップＳ２５に進む。ただし、ステップＳ２５以降の処理については後述する。
【００７６】
これに対して、キャリブレーションスイッチがＯＮ状態であった場合、ステップＳ２２においてＹＥＳであると判定され、処理はステップＳ２４に進む。
ステップＳ２４において、主制御部１４は、ＣＦフラグを「１」に設定する。即ち、この場合には、キャリブレーション処理が必要である旨が設定されたことになる。
【００７７】
ステップＳ２５において、主制御部１４は、視線モードスイッチがＯＮ状態であるか否かを判定する。
【００７８】
視線モードスイッチがＯＦＦ状態であった場合、ステップＳ２５においてＮＯであると判定され、処理はステップＳ２８に進む。ただし、ステップＳ２８以降の処理については後述する。
【００７９】
これに対して、視線モードスイッチがＯＮ状態であった場合、ステップＳ２５においてＹＥＳであると判定され、処理はステップＳ２６に進む。
【００８０】
ステップＳ２６において、主制御部１４は、視線入力装置１の動作モードとして視線モードを設定する。
【００８１】
ステップＳ２７において、主制御部１４は、ＣＦフラグを「１」に設定する。
この場合、ステップＳ２３の処理でＣＦ＝０に設定されていたとしても、視線モードスイッチの押下操作が優先されて、ＣＦ＝１に設定され、キャリブレーション処理が必要である旨の設定がなされる。
【００８２】
このようにして、ステップＳ２７の処理が終了した場合、又はステップＳ２５においてＮＯであると判定される（視線モードスイッチがＯＦＦ状態である）場合には、処理はステップＳ２８に進む。
【００８３】
ステップＳ２８において、主制御部１４は、通常モードスイッチがＯＮ状態であるか否かを判定する。通常モードスイッチがＯＦＦ状態であった場合、ステップＳ２８においてＮＯであると判定され、ＳＷ処理は終了する。
【００８４】
これに対して、通常モードスイッチがＯＮ状態であった場合、ステップＳ２８においてＹＥＳであると判定され、処理はステップＳ２９に進む。
ステップＳ２９において、主制御部１４は、視線入力装置１の動作モードとして通常モードを設定する。
これにより、ＳＷ処理は終了する。
【００８５】
ＳＷ処理が終了すると、即ち、図７のステップＳ２の処理は終了し、処理はステップＳ３に進む。
すると、上述したように、ステップＳ３の処理で、視線入力装置１の動作モードが視線モードであるか否かが判定され、視線モードであれば、ステップＳ５の基準検出処理が実行されることになる。
【００８６】
そこで、以下、ステップＳ５の基準検出処理の詳細な流れについて引き続き説明する。
図９は、基準検出処理の詳細な流れを説明するフローチャートである。
【００８７】
ステップＳ４１において、基準検出部２１は、ユーザの眼球２が撮像された結果得られる撮像画像のデータを撮像部１２から取得する。
【００８８】
ステップＳ４２において、基準検出部２１は、ステップＳ４１の処理でデータとして取得した撮像画像から、瞳領域４を検出する。
【００８９】
ステップＳ４３において、基準検出部２１は、ステップＳ４２の処理で検出した瞳領域４から、その重心を、移動基準点としての瞳中心Mとして特定する。
【００９０】
ステップＳ４４において、基準検出部２１は、像中心検出処理を実行する。
像中心検出処理とは、上述した不動基準点としての像中心Zを検出する処理をいう。
なお、像中心検出処理のさらなる詳細については、図１２乃至図１４を参照して後述する。
【００９１】
ステップＳ４５において、基準検出部２１は、像中心検出処理が成功したか否かを判定する。
【００９２】
像中心検出処理が失敗した場合、ステップＳ４５においてＮＯであると判定され、処理はステップＳ４６に進む。
ステップＳ４６において、基準検出部２１は、基準検出処理失敗のフラグを立てる。
これにより、基準検出処理は終了する。即ち、図７のステップＳ５の処理は終了して、次のステップＳ６の処理でＮＯであると判定されて、ステップＳ７のエラー処理が実行されることになる。
【００９３】
これに対して、像中心検出処理が成功した場合、ステップＳ４５においてＹＥＳであると判定され、処理はステップＳ４７に進む。
【００９４】
ステップＳ４７において、基準検出部２１は、ステップＳ４３の処理で特定された瞳中心Mと、ステップＳ４４の像中心検出処理で特定された像中心Zとに基づいて、ズレ量V(x,y)を求め、視線検出部２２に供給する。
【００９５】
ステップＳ４８において、基準検出部２１は、ＣＦ＝１であるか否かを判定する。
【００９６】
ＣＦ＝０である場合、即ち、キャリブレーションが不要である場合、ステップＳ４８においてＮＯであると判定され、基準検出処理は終了する。即ち、図７のステップＳ５の処理を終了して、処理はステップＳ６に進む。
【００９７】
これに対して、ＣＦ＝１である場合、即ち、キャリブレーションが必要である場合、ステップＳ４８においてＹＥＳであると判定され、処理はステップＳ４９に進む。
【００９８】
ステップＳ４９において、基準検出部２１は、キャリブレーション処理を実行して、基準ズレ量Vo(xo,yo)として、ステップＳ４７の処理で求めたズレ量V(x,y)に初期設定又は更新する（Vo(xo,yo)=V(x,y)）。
【００９９】
ステップＳ５０において、基準検出部２１は、ＣＦ＝０に設定する。即ち、キャリブレーションは実行されたので、現段階ではキャリブレーションが不要の旨の設定がなされる。
【０１００】
これにより、基準検出処理は終了し、即ち、図７のステップＳ５の処理は終了し、処理はステップＳ６に進む。
この場合、ステップＳ６においてＹＥＳであると判定され、ステップＳ８の視線検出処理が実行されることになる。
【０１０１】
そこで、以下、ステップＳ８の視線検出処理の詳細な流れについて引き続き説明する。
図１０は、視線検出処理の詳細な流れを説明するフローチャートである。
【０１０２】
ステップＳ６１において、視線検出部２２は、基準検出部２１から通知されたズレ量V(x,y)と基準ズレ量Vo(xo,yo)との差分ベクトルとして、視線の移動ベクトル△V(△x,△y)を算出する（△V(△x,△y)＝V(x,y)−Vo(xo,yo)）。
【０１０３】
ステップＳ６２において、視線検出部２２は、ステップＳ６１の処理で算出した視線の移動ベクトル△Vの横方向（X軸方向）の要素△xの絶対値が１０pixを超えている（｜△x｜＞１０pix）か否かを判定する。
【０１０４】
ここでは、マウスポインタの横方向の移動指示のためにユーザが視線を動かしたと信頼していえる視線の横方向の移動量が、撮像画像の画素に換算して、１１画素（pix）分と設定されている。
このため、視線の移動ベクトル△Vの横方向（X軸方向）の要素△xの絶対値が１０pix以下の場合には、ユーザはマウスポインタを移動させるつもりがないのに、視線の揺らぎ等で若干視線が移動した可能性があるとして、マウスポインタの移動の指示操作は認識されない。
従って、このような場合には、ステップＳ６２においてＮＯであると判定され、マウスポインタの移動の指示操作を認識するための処理であるステップＳ６３及びＳ６４の処理は実行されずに、処理はステップＳ６５に進む。ただし、ステップＳ６５以降の処理については、後述する。
【０１０５】
これに対して、視線の移動ベクトル△Vの横方向（X軸方向）の要素△xの絶対値が１０pixを超えた場合、マウスポインタの横方向の移動指示のためにユーザが視線を動かしたものと認識されて、その結果として、ステップＳ６２においてＹＥＳであると判定され、処理はステップＳ６３に進む。
【０１０６】
ステップＳ６３において、視線検出部２２は、視線の移動ベクトル△Vの横方向（X軸方向）の要素△ｘに応じたマウスポインタ移動の発生を操作内容入力部２３に通知する。
【０１０７】
ステップＳ６４において、視線検出部２２は、マウスポインタの移動に対応して、基準ズレ量Voの横方向（X軸方向）の要素xoを、現在のズレ量Vの横方向（X軸方向）の要素xに更新する（xo＝x）。
これにより、次回の視線検出処理のステップＳ６１の処理では、今回の現在のズレ量Vの横方向（X軸方向）の要素xが基準となって、視線の移動ベクトル△V（△x，△y）が求められることになる。
【０１０８】
このようにして、ステップＳ６４の処理が終了した場合、又はステップＳ６２の処理でＮＯであると判定された場合、処理はステップＳ６５に進む。
【０１０９】
ステップＳ６５において、視線検出部２２は、ステップＳ６１の処理で算出した視線の移動ベクトル△Vの縦方向（Y軸方向）の要素△yの絶対値が１０pixを超えている（｜△y｜＞１０pix）か否かを判定する。
【０１１０】
ここでは、マウスポインタの縦方向の移動指示のためにユーザが視線を動かしたと信頼していえる視線の縦方向の移動量が、撮像画像の画素に換算して、１１画素（pix）分と設定されている。
このため、視線の移動ベクトル△Vの縦方向（Y軸方向）の要素△yの絶対値が１０pix以下の場合には、ユーザはマウスポインタを移動させるつもりがないのに、視線の揺らぎ等で若干視線が移動した可能性があるとして、マウスポインタの移動の指示操作は認識されない。
従って、このような場合には、ステップＳ６５においてＮＯであると判定され、マウスポインタの移動の指示操作を認識するための処理であるステップＳ６６及びＳ６７の処理は実行されずに、処理はステップＳ６８に進む。ただし、ステップＳ６８以降の処理については、後述する。
【０１１１】
これに対して、視線の移動ベクトル△Vの縦方向（Y軸方向）の要素△yの絶対値が１０pixを超えた場合、マウスポインタの縦方向の移動指示のためにユーザが視線を動かしたものと認識されて、その結果として、ステップＳ６５においてＹＥＳであると判定され、処理はステップＳ６６に進む。
【０１１２】
ステップＳ６６において、視線検出部２２は、視線の移動ベクトル△Vの縦方向（Y軸方向）の要素△yに応じたマウスポインタ移動の発生を操作内容入力部２３に通知する。
【０１１３】
ステップＳ６７において、視線検出部２２は、マウスポインタの移動に対応して、基準ズレ量Voの縦方向（Y軸方向）の要素yoを、現在のズレ量Vの縦方向（Y軸方向）の要素ｙに更新する（yo＝y）。
これにより、次回の視線検出処理のステップＳ６１の処理では、今回の現在のズレ量Vの縦方向（Y軸方向）の要素yが基準となって、視線の移動ベクトル△V（△x，△y）が求められることになる。
【０１１４】
このようにして、ステップＳ６７の処理が終了した場合、又はステップＳ６５の処理でＮＯであると判定された場合、処理はステップＳ６８に進む。
【０１１５】
ステップＳ６８において、視線検出部２２は、撮像画像のデータから、ユーザの瞬きを検出できたか否かを判定する。
【０１１６】
ユーザの瞬きを検出できなかった場合、ステップＳ６８においてＮＯであると判定され、視線検出処理は終了する。
即ち、図７のステップＳ８の処理は終了し、処理はステップＳ９に進む。この場合、ステップＳ６３とＳ６６のうち少なくとも一方の処理が実行されているならば、ステップＳ９の処理で、マウスポインタの移動の指示が入力されて、次のステップＳ１０の処理でマウスポインタが移動する（そのようなGUI用の画像が表示される）。
【０１１７】
これに対して、ユーザの瞬きを検出できた場合、ステップＳ６８においてＹＥＳであると判定され、処理はステップＳ６９に進む。
【０１１８】
ステップＳ６９において、視線検出部２２は、今回検出された瞬きが、前回検出された瞬きから200mS以内に発生したか否かを判定する。
【０１１９】
今回と前回の瞬きの間隔が200mS以内でなかった場合、ユーザがクリック操作と等価の操作をするために瞬きを２回したわけではないと認識され、その結果、ステップＳ６９においてＮＯであると判定され、視線検出処理は終了する。
即ち、図７のステップＳ８の処理は終了し、処理はステップＳ９に進む。この場合も、ステップＳ６３とＳ６６のうち少なくとも一方の処理が実行されているならば、ステップＳ９の処理で、マウスポインタの移動の指示が入力されて、次のステップＳ１０の処理でマウスポインタが移動する（そのようなGUI用の画像が表示される）。
【０１２０】
これに対して、今回と前回の瞬きの間隔が200mS以内であった場合、ユーザがクリック操作と等価の操作をするために瞬きを２回したものであると認識され、その結果、ステップＳ６９においてＹＥＳであると判定され、処理はステップＳ７０に進む。
【０１２１】
ステップＳ７０において、視線検出部２２は、マウスクリックの発生を操作内容入力部２３に通知する。
これにより、視線検出処理は終了し、即ち、図７のステップＳ８の処理は終了し、処理はステップＳ９に進む。
この場合、ステップＳ９の処理で、クリック操作に対応付けられた指示（例えばアイコンの選択等の指示）が入力されて、指示に従った処理が適宜実行される。
【０１２２】
以上、図１０を参照して、図７の視線入力処理のうち、ステップＳ８の視線検出処理の流れについて説明した。
なお、ステップＳ６２及びＳ６５で採用されている１０pixや、ステップＳ６９で採用されている200msといった値は、例示に過ぎず、その趣旨（誤検出防止）を逸脱しない範囲内で自在に変更可能な値である。
【０１２３】
ここで、図１１を参照して、視線検出処理によって決定される、マウスポインタ移動の方向について説明しておく。
図１１は、視線検出処理によって決定される、マウスポインタ移動の方向を説明する図である。
図１１（Ａ）は、撮像画像の座標系の原点を像中心Zに取り直した座標系において、瞳中心Mが動く方向を示した図である。像中心Zを原点に取れば、瞳中心Mの座標はズレ量V(x,y)と一致した座標(x,y)で表される。
また、図１１（Ｂ）は、表示部１１の座標系において、中央位置を原点に取った場合に、図１１（Ａ）の視線位置の移動に応じてマウスポインタが動く方向を示した図である。
図１１（Ａ）において、瞳中心Mが、初期ズレ量Voの座標(xo,yo)から、現在のズレ量V(x,y)まで左上方向に動いた時、図１１（Ｂ）に示すように、マウスポインタは右上に動くことになる。
これは、上述の通り、図１１（Ａ）における撮像された瞳中心Mの移動方向と図１１（Ｂ）におけるユーザから見た視線位置の移動方向が鏡像関係になっているためである。
【０１２４】
ここで話を変えて、図９の基準検出処理（図７のステップＳ５の処理）のうち、ステップＳ３４の像中心検出処理の３つの例についてそれぞれ説明する。
【０１２５】
図１２は、像中心検出処理の詳細な流れの一例を説明するフローチャートである。
【０１２６】
ステップＳ８１において、基準検出部２１は、撮像画像の瞳領域４の近傍で、具体的には瞳中心Mを中心とした一定範囲内の領域で、縦横のサイズと縦横の比が所定の範囲内で、平均的に明るい長方形の領域の検出を試みる。
【０１２７】
ステップＳ８２において、基準検出部２１は、ステップＳ８１の処理の試みによって領域を検出できたか否かを判定する。
【０１２８】
ステップＳ８１の処理の試みによって領域を検出できなかった場合、ステップＳ８２においてＮＯであると判定され、処理はステップＳ８３に進む。
ステップＳ８３において、基準検出部２１は、像中心検出失敗を表すフラグを立てる。これにより、像中心検出処理は終了する。即ち、図９のステップＳ４４の処理が終了し、処理はステップＳ４５に進む。この場合、ステップＳ４５の処理でＮＯであると判定されて、基準検出失敗のフラグが立てられ、基準検出処理が終了し、即ち、図７のステップＳ５の処理が終了し、ステップＳ６の処理でＮＯであると判定された後、ステップＳ７のエラー処理が実行されることになる。
【０１２９】
これに対して、ステップＳ８１の処理の試みによって領域を検出できた場合、ステップＳ８２においてＹＥＳであると判定され、処理はステップＳ８４に進む。
ステップＳ８４において、基準検出部２１は、検出した領域を表示部像領域５として、その重心を、像中心Zの座標として算出する。
【０１３０】
これにより、像中心検出処理は終了する。即ち、図９のステップＳ４４の処理が終了し、処理はステップＳ４５に進む。この場合、ステップＳ４５の処理でＹＥＳであると判定されて、ズレ量V(x,y)等が求められた後、基準検出処理が終了する。即ち、図７のステップＳ５の処理が終了し、ステップＳ６の処理でＹＥＳであると判定された後、ステップＳ８の視線検出処理が実行されることになる。
【０１３１】
図１３は、像中心検出処理の詳細な流れの一例であって、図１２の例とは異なる例を説明するフローチャートである。
【０１３２】
ステップＳ１０１において、基準検出部２１は、撮像画像の瞳領域４の近傍で、具体的には瞳中心Mを中心とした一定範囲内の領域で、表示部１１の中心点から発信された認識信号（その認識信号が眼球２に写った様子を示す像を撮像部１２が撮像した結果えられる撮像画像内の領域）の検出の試みを、適当な公知の技術等を用いて行う。
即ち、このような試みで検出が成功した領域が、表示部像領域５として特定されることになる。
なお、この例では、表示制御部６４は、表示部１１を制御して、認識信号で変調した光を発光する機能を持っているものとする。
【０１３３】
ステップＳ１０２乃至Ｓ１０４の各々の処理及びそれらの処理の流れは、図１２の例のステップＳ８２乃至Ｓ８４と基本的に同様であるので、ここではその説明は省略する。
【０１３４】
図１４は、像中心検出処理の詳細な流れの一例であって、図１２及び図１３の例とは異なる例を説明するフローチャートである。
【０１３５】
ステップＳ１２１において、基準検出部２１は、撮像画像の瞳領域４の近傍で、具体的には瞳中心Mを中心とした一定範囲内の領域で、最も明るい画素を含む明るい画素が連続する領域で、所定の時間の間動かない領域の検出を試みる。
即ち、このような試みで検出が成功した領域が、表示部像領域５として特定されることになる。
なお、「所定の時間」は、特に限定されないが、200ms程度以下にすると好適である。200msを超えると、視線検出の反応が遅くなる可能性があるからである。
【０１３６】
ステップＳ１２２乃至Ｓ１２４の各々の処理及びそれらの処理の流れは、図１２の例のステップＳ８２乃至Ｓ８４と基本的に同様であるので、ここではその説明は省略する。
【０１３７】
以上説明したように、本実施形態に係る視線入力装置１は、表示部１１と、撮像部１２と、基準検出部２１と、視線検出部２２と、を備えている。
表示部１１は、所定形状の表示領域を有し、当該表示領域に画像を表示させる。
撮像部１２は、表示領域が映り込んだユーザの眼球２を撮像することによって、撮像画像のデータを生成する。
基準検出部２１は、撮像部１２により生成された撮像画像のデータから、ユーザの視線移動に伴って動く移動基準点と、ユーザの視線移動があっても略静止していると判断できる不動基準点とを検出し、不動基準点から移動基準点までを示すベクトルをズレ量V(x,y)として生成する。
視線検出部２２は、過去に生成された基準ズレ量Vo(xo,yo)と、今回生成されたズレ量V(x,y)とに基づいて、ユーザの視線の移動量として移動ベクトル△V（△x,△y）を検出する。
これにより、視線入力装置１は、ユーザの頭部を何ら束縛することなく、視線検出によってマウス等価操作を受け付けることができるので、ユーザは頭部も両手も自由な状態でマウス等価操作をすることができる。
ここで、タッチパネルはパネルの表面に指の油が付くし、タッチパッドは指が擦れる感触を嫌がるユーザが多い。また、リモートコントローラは操作に手間が掛かる。視線入力装置１は、これらのユーザインタフェース全ての欠点を無くして、快適なユーザインタフェースを実現できる。
また、ユーザは、表示部１１を注視している限り、視線検出は確実に行われるので、安定したマウス等価操作が実現できる。ユーザが視線を外しても、同じ姿勢で注視し直すだけで、マウス等価操作を再開できる。
【０１３８】
なお、本発明は上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【０１３９】
例えば、上述の実施形態では、視線モードスイッチとキャリブレーションスイッチとに対して、同一のキャリブレーション機能が割り当てられていたが、別々の種類のキャリブレーション機能がそれぞれ割り当てられていてもよい。
即ち、ユーザが視線モードスイッチを押下操作をする時は、それまで通常モードで移動させていたマウスポインタを注視している場合が多いと思われるので、マウスポインタの現在位置を初期位置とする、というキャリブレーションも可能である。
これに対して、ユーザがキャリブレーションスイッチを押下する時は、キャリブレーションをやり直すという意識が強いと思われるので、上述の実施形態のように、表示部１１の中央位置をマウスポインタの初期位置とする、というキャリブレーションを実行することができる。
【０１４０】
また例えば、上述の実施形態では、本発明が適用される情報処理装置は、デジタルフォトフレームとして構成される視線入力装置１であるとして説明した。
しかしながら、本発明は、特にこれに限定されず、上述の視線検出を実行可能な電子機器一般に適用することができる。具体的には例えば、本発明は、パーソナルコンピュータ、携帯型ナビゲーション装置、ポータブルゲーム機、携帯電話、携帯情報端末等に幅広く適用可能である。
【０１４１】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
【０１４２】
図１５は、上述した一連の処理をソフトウェアにより実行させる場合の、視線入力装置１のハードウェア構成を示すブロック図である。
【０１４３】
視線入力装置１は、上述した表示部１１、撮像部１２、操作部１３、及び音声出力部１５の他、CPU（Central  Processing  Unit）１０１と、ROM（Read  Only  Memory）１０２と、RAM（Random  Access  Memory）１０３と、バス１０４と、入出力インターフェース１０５と、記憶部１０６と、通信部１０７と、ドライブ１０８と、を備えている。
【０１４４】
CPU１０１は、ROM１０２に記録されているプログラム、又は、記憶部１０６からRAM１０３にロードされたプログラムに従って各種の処理を実行する。
RAM１０３にはまた、CPU１０１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【０１４５】
例えば、上述した図６の機能的構成のうち、主制御部１４は、CPU１０１というハードウェアと、ROM１０２等に記憶されたプログラム（ソフトウェア）との組み合わせとして構成することができる。
【０１４６】
CPU１０１、ROM１０２、及びRAM１０３は、バス１０４を介して相互に接続されている。このバス１０４にはまた、入出力インターフェース１０５も接続されている。入出力インターフェース１０５には、表示部１１、撮像部１２、操作部１３、音声出力部１５、記憶部１０６、通信部１０７、及びドライブ１０８が接続されている。
【０１４７】
記憶部１０６は、ハードディスク等で構成され、撮像部１２から出力された撮像画像のデータを一時記憶する。また、記憶部１０６は、各種画像処理に必要な各種データ、例えば、画像のデータ、各種フラグの値、閾値等も記憶する。
通信部１０７は、インターネット等を介して他の装置との間で行う通信を制御する。
【０１４８】
ドライブ１０８には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなるリムーバブルメディア１１１が適宜装着される。ドライブ１０８によって読み出されたコンピュータプログラムは、必要に応じて記憶部１０６等にインストールされる。
【０１４９】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【０１５０】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布されるリムーバブルメディア１１１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。
リムーバブルメディア１１１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、CD-ROM（Compact  Disk-Read  Only  Memory），DVD（Digital  Versatile  Disk）等により構成される。光磁気ディスクは、MD（Mini-Disk）等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されているROM１０２や、記憶部１０６に含まれるハードディスク等で構成される。
【０１５１】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【符号の説明】
【０１５２】
１・・・視線入力装置、２・・・眼球、３・・・眼球領域、４・・・瞳領域、５・・・表示部像領域、１１・・・表示部、１２・・・撮像部、１３・・・操作部、１４・・・主制御部、１５・・・音声出力部、２１・・・基準検出部、２２・・・視線検出部、２３・・・操作内容入力部、２４・・・表示制御部、２５・・・音声出力制御部、１０１・・・CPU、１０２・・・ROM、１０３・・・RAM、１０６・・・記憶部、１０７・・・通信部、１１１・・・リムーバブルメディア
【図１】
0005387557.tif 000002
【図２】
0005387557.tif 000003
【図３】
0005387557.tif 000004
【図４】
0005387557.tif 000005
【図５】
0005387557.tif 000006
【図６】
0005387557.tif 000007
【図７】
0005387557.tif 000008
【図８】
0005387557.tif 000009
【図９】
0005387557.tif 000010
【図１０】
0005387557.tif 000011
【図１１】
0005387557.tif 000012
【図１２】
0005387557.tif 000013
【図１３】
0005387557.tif 000014
【図１４】
0005387557.tif 000015
【図１５】
0005387557.tif 000016