説明

ポインティングデバイス、操作者の注視位置とカーソルの位置との誤差の補正をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体

【課題】操作者の注視位置とカーソル位置との誤差を容易に補正可能なポインティングデバイスを提供する。
【解決手段】視線検出装置2は、撮像デバイス1で取得される操作者の目の画像情報を用いて、ディスプレー4の画面上で操作者が注視している位置への視線を検出し、その検出結果からディスプレー4の画面上で入力可能な位置を示すカーソル6の座標情報を算出する。そして、視線検出装置2は、算出された座標情報に基づいてディスプレー4の画面上に表示されたカーソル6の位置と操作者が注視している位置7との誤差に基づく操作者の動きを検出する。そうすると、視線検出装置2は、その検出した操作者の動きに基づいて、撮像デバイス1で取得される操作者の特徴的な画像情報を動かし、誤差を補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作者の視線に基づきコンピュータ等のディスプレー画面上のカーソルを操作することを目的とする視線入力によるポインティングデバイス、コンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関し、特に、操作者が注視している位置とカーソルの位置との誤差を補正するポインティングデバイス、操作者の注視位置とカーソルの位置との誤差の補正をコンピュータに実行させるためのプログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【背景技術】
【0002】
操作者の視線を算出する手法及び装置は、主にコンピュータ等のポインティングデバイスへの応用として既に様々の提案がなされている(例えば特許文献1,2参照)。従来の技術では、まず、操作者からある程度離れた位置にカメラ等の撮像デバイスを配置して目や頭部を含めた領域の画像を取得する。その後、取得された画像から瞳孔領域を検出して瞳孔中心位置情報などから視線方向(ベクトル)を算出する。
【0003】
視線方向を算出するために必要な基準点を取得するのに、専用眼鏡をかけたり、専用シールを顔に張るなど、既知の標的を身に付ける手法や、プルキニエ像と言われる操作者の角膜表面上の近赤外線投光器からの反射光を利用する手法などが提案されている。
【0004】
他にも頭部画像における目、鼻、口などの配置から顔面の傾きを求め視線方向を算出する方法もある(非特許文献1)。
【0005】
視線の起点も取得画像から視線方向と共に算出する。一般的には瞳孔中心位置や角膜曲率中心位置などの算出結果が用いられる。
【0006】
そして、視線は、視線の起点から視線方向に伸ばした直線として算出される。
【0007】
また、装置系や操作者の位置関係や操作者自身の変更があるごとに、操作開始時にキャリブレーションをとることで、視線検出装置とディスプレーの座標系の歪みや誤差の補正や視線の算出精度を向上させることが出来る。
【0008】
この視線検出技術では、一般的なポインティングデバイスのように手動による操作を必要としないので、肢体不自由者がコンピュータなどを用いてコミュニケーションを行う場合有効である。また、健常者の使用についても、視線でのカーソル操作と手動によるキーボード等の入力を組み合わせることで、より快適かつ感覚的な入力を可能とする。
【特許文献1】特開平11−2755号公報
【特許文献2】特開2003−79577号公報
【特許文献3】特開2000−89905号公報
【非特許文献1】松本吉央,“顔情報のリアルタイム計測技術とその応用”,システム/制御/情報:システム制御情報学会誌,Vol.45,No.9,pp.517−522,2001.
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかし、従来の技術による視線算出では、算出精度に限界がある。算出精度を決める要因として、視線算出アルゴリズムの種類、撮像デバイスの分解能や演算装置の演算精度等の装置系の精度、操作者の頭部と装置系との位置関係、操作時の操作者の動き、および操作者の角膜や瞳孔等の身体的個人差等が挙げられる。
【0010】
算出精度を向上させる従来の方法としては、キャリブレーションを詳細に行う、装置系の演算精度を上げる、装置系のセンサの種類を増やす、操作者の身体的情報を予めアルゴリズムに反映させる、演算装置と頭部との位置関係を固定するために頭部を動かないように固定して使用したり装置を眼鏡にしてかける等が挙げられる。
【0011】
しかしながら、予測外の外乱による影響も存在するので、どんなに工夫を加えても算出精度には限界がある。従って、このような視線入力によるポインティングデバイスを操作者が使用した場合、視線を目標位置に向けてもカーソルと目標位置には誤差を生じる。また、このような解決手段では、操作者に負担を強いたり、装置系が大規模になりコストが高くなる問題がある。
【0012】
視線検出装置の根本的な問題は、視線の先の目標位置を決めているのが操作者であるので、目標位置とカーソル位置との間の誤差を視認することが操作者にしかできないということである。そして、従来の手法では、操作者が視認した誤差を使用中に装置系へ伝えることができない。ゆえに、使用中にその誤差を補正することができないのである。
【0013】
そこで、この発明は、かかる問題を解決するためになされたものであり、その目的は、操作者の注視位置とカーソル位置との誤差を容易に補正可能なポインティングデバイスを提供することである。
【0014】
また、この発明の別の目的は、操作者の注視位置とカーソル位置との誤差の補正をコンピュータに実行させるためのプログラムを提供することである。
【0015】
さらに、この発明の別の目的は、操作者の注視位置とカーソル位置との誤差の補正をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することである。
【課題を解決するための手段】
【0016】
この発明によれば、ポインティングデバイスは、視線検出手段と、動き検出手段と、誤差補正手段とを備える。視線検出手段は、撮像デバイスで取得される操作者の目の画像情報を用いて、ディスプレー画面上で操作者が注視している位置への視線を検出し、その検出結果からディスプレー画面上で入力可能な位置を示すカーソルの座標情報を算出する。動き検出手段は、視線検出手段により得られた座標情報に基づいてディスプレー画面上に表示されたカーソル位置と操作者が注視している位置との誤差に基づく操作者の動きを検出する。誤差補正手段は、動き検出手段によって検出された操作者の動きに基づいて、誤差を補正する。
【0017】
好ましくは、動き検出手段は、操作者の特徴的な画像情報の動きを誤差に基づく操作者の動きとして検出する。
【0018】
好ましくは、動き検出手段は、操作者の瞳孔の動きまたは操作者の視線方向の変化を誤差に基づく操作者の動きとして検出する。
【0019】
この発明によれば、コンピュータに実行させるためのプログラムは、操作者の注視位置とカーソル位置との誤差の補正をコンピュータに実行させるためのプログラムであって、視線検出手段が、撮像デバイスで取得される操作者の目の画像情報を用いて、ディスプレー画面上で操作者が注視している位置への視線を検出し、その検出結果からディスプレー画面上で入力可能な位置を示すカーソルの座標情報を算出する第1のステップと、動き検出手段が、第1のステップにおいて得られた座標情報に基づいてディスプレー画面上に表示されたカーソル位置と操作者が注視している位置との誤差に基づく操作者の動きを検出する第2のステップと、誤差補正手段が、第2のステップにおいて検出された操作者の動きに基づいて、誤差を補正する第3のステップとをコンピュータに実行させるためのプログラムである。
【0020】
好ましくは、第2のステップにおいて、動き検出手段は、操作者の特徴的な画像情報の動きを誤差に基づく操作者の動きとして検出する。
【0021】
好ましくは、第2のステップにおいて、動き検出手段は、操作者の瞳孔の動きまたは操作者の視線方向の変化を誤差に基づく操作者の動きとして検出する。
【0022】
さらに、この発明によれば、記録媒体は、請求項4から請求項6のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【0023】
頭部位置による使用中の補正ができるので、視線算出の精度が多少悪くてもカーソル位置を目標位置に合わせることができる。すなわち、厳密な使用前のキャリブレーション、高度な視線算出アルゴリズム、センサ類の精度向上、多種のセンサ類の使用などへの要求が軽減される。したがって、開発コストを低く抑えることが可能になる。
【0024】
また、従来の視線算出手法は、演算装置と頭部との位置関係が固定されたほうが精度が良くなる傾向にあったため、頭部を固定したり、装置を眼鏡にして装着したりするなど、操作者に負担を強いる構成であった。しかし、本発明では、逆に頭部を動かすことにより誤差補正を行うので、操作者への拘束感を軽減できる。
【発明を実施するための最良の形態】
【0025】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【0026】
図1は、この発明の実施の形態によるポインティングデバイスの構成を示す概略図である。また、図2は、頭部移動によるカーソル位置の補正を行う前の取得画像(左)とディスプレー画面(右)を示す図である。さらに、図3は、頭部移動によるカーソル位置の補正を行った後の取得画像(左)とディスプレー画面(右)を示す図である。
【0027】
図1を参照して、この発明の実施の形態によるポインティングデバイス100は、カメラ等からなる撮像デバイス1と、視線検出装置2と、コンピュータ3と、ディスプレー4とを備える。そして、ポインティングデバイス100は、後述するように、操作者が頭部5を動かすことでディスプレー4上のカーソル6を操作者の視線の先の目標位置7に合わせることができる。
【0028】
撮像デバイス1は、操作者の目や頭部を含む画像を撮影し、その撮影した画像を視線検出装置2へ出力する。視線検出装置2は、撮影された取得画像8を撮像デバイス1から受け、その受けた取得画像8に基づいて、操作者の視線方向を公知の方法により計算する。
【0029】
例えば、角膜反射法を用いた場合、球体として近似される角膜の中心点である角膜曲率中心位置(3次元空間座標)と瞳孔中心位置(3次元空間座標)とを結ぶベクトルが視線方向として計算され、角膜曲率中心位置と瞳孔中心位置とを結ぶ直線が視線として計算される。この場合の視線の起点は、角膜曲率中心となる。
【0030】
空間座標での角膜曲率中心と瞳孔中心の計算方法を以下に説明する。まず、撮像デバイス1のすぐ近くに近赤外線光源を設置することで、角膜表面における近赤外線光源の反射光、いわゆるプルキニエ像が撮像デバイス1によって瞳孔画像と一緒に撮影される。プルキニエ像は、撮像デバイス1のレンズ中心と角膜曲率中心とを結ぶ直線と角膜表面との交点を近似的に表している。したがって、レンズから角膜表面までの距離および角膜曲率半径を把握していれば、角膜曲率中心位置は、撮像されたプルキニエ像の平面座標から計算され得る。同様にして、瞳孔中心位置も、レンズから角膜表面までの距離と撮像された瞳孔中心の平面座標とから計算され得る。
【0031】
なお、上記においては、角膜反射法を用いて視線を算出する方法について説明したが、この発明においては、これに限らず、顔面の傾きを頭部画像の各種パーツの配置から求める等の別の方法を用いて算出されてもよく、視線の算出方法は、特に、限定されるものではない。
【0032】
そして、視線検出装置2は、その計算した操作者の視線をディスプレー4上の座標値に変換する。すなわち、この座標値は、視線の方程式と、ディスプレー4上の平面を表す方程式との交点として求められる。ここで、変換された座標値をAdとすると、座標値Adは、次式によって表される。
【0033】
【数1】

【0034】
式(1)において、axは、水平方向の座標値であり、ayは、垂直方向の座標値である。
【0035】
また、視線検出装置2は、視線算出と同時に補正情報として操作者の目の画像9から瞳孔中心位置10を取得する。補正情報には、瞳孔中心ではなくても頭部にある特徴的な画像情報なら何でも良い。ただし、瞳孔中心位置は、視線算出の従来の手法において一般的に用いられる情報なので、これを補正情報に利用すれば、新たに補正情報取得のための演算をする必要がなく、計算時間を短縮でき、コストを軽減できる。
【0036】
撮像デバイス1の取得画像領域における瞳孔中心位置10の座標値BをB=(bx,by)と表す。ここで、bxは、水平方向の座標値であり、byは、垂直方向の座標値である。そして、視線検出装置2は、座標値Bを、ある関数Fによりディスプレー4上の座標値として補正情報Bdを次式により算出する。
【0037】
【数2】

【0038】
式(2)において、fは、水平方向の座標値を決める関数であり、gは、垂直方向の座標値を決める関数である。
【0039】
なお、式(2)においては、関数f,gの変数は、bxおよびbyであると表記されているが、これは、水平方向の座標を補正する場合、垂直方向の座標情報も必要であり、垂直方向の座標を補正する場合、水平方向の座標情報も必要であるからである。補正関数Fの最も簡単な例は、f=α・bxおよびg=β・by(α、βは比例定数)の線形関数によって表され得る。
【0040】
視線検出装置2は、補正情報Bdを算出すると、式(1),(2)より、ディスプレー4上のカーソルの座標値Cdを次式によって求める。
【0041】
【数3】

【0042】
すなわち、視線検出装置2は、視線算出から求められた座標値Adに取得画像領域における瞳孔中心位置10から求めた補正情報Bdを加えることによりディスプレー4上のカーソル位置を求める。つまり、補正可能領域は、視線から算出された座標値Adを中心に関数Fで規定される範囲に広がる。例えば、取得画像領域内の瞳孔中心位置情報Bを単純に線形変換して補正情報Bdとした場合、図2のようにディスプレー4上の補正可能領域14は、取得画像領域8と相似の関係になる。したがって、式(3)は、矢印11によって示すように視線を目標位置に向けたまま頭部を動かすことにより、取得画像領域内で瞳孔中心位置が矢印12のように動き、ディスプレー4上の補正可能領域内をカーソルがそれに連動して矢印13のように動くことを意味する。
【0043】
視線検出装置2は、上述した方法によって計算したカーソル座標値Cdをコンピュータ3に送信し、コンピュータ3は、ディスプレー4上にカーソル6を表示する。
【0044】
例えば、初期状態として、図2のように瞳孔中心位置10が取得画像領域8の中心にある場合は、視線算出から求められた座標値とカーソル位置15は、等しくなり、補正可能領域14は、その点を中心に広がっている。図2のようにカーソル位置が目標位置7から左下にずれていた場合は、図3のように、操作者は、視線を目標位置7に向けたまま頭を右上に動かす。このとき、操作者の瞳孔中心位置10も一緒に動く。ここで、撮像デバイス1は、ディスプレー4側から操作者の目の領域を写しているので、瞳孔輪郭位置は、左右反転して左上に動くことになる。また、操作者が視線を目標位置に向けていれば、理想的にはディスプレー中の補正可能領域14は、動かない。カーソル6は、瞳孔中心位置の動きに連動して、左右反転を考慮した関数Fに従い右上に動き、そして、目標位置に近づく。この頭を動かす動作を、操作者がディスプレー4上の目標位置7とカーソル6とを見ながら行うことで誤差が補正され、最終的に図3のように、カーソル位置15が目標位置7に一致する。
【0045】
したがって、視線検出装置2は、操作者が目標位置7とカーソル6の位置との誤差を視認し、その視認に基づいて頭を動かしたことを撮像デバイス1から入力される取得画像8に基づいて検出し、その検出した操作者の頭の動きに基づいて目標位置7とカーソル6の位置との誤差を補正する。
【0046】
一般的な制御システムでは、目標位置と制御対象の位置との誤差を検知して、その誤差を減らすように制御対象の操作を行うというフィードバック制御を行っている。しかしながら、視線入力によるポインティングデバイスでは、目標位置および目標位置と制御対象であるカーソルの位置の誤差を認知できるのが操作者のみであり、操作中は、操作者自身がその誤差を認知しても装置系に誤差情報を伝えられないため、その誤差を補正することができない。
【0047】
したがって、算出精度を向上させるためには、操作者が認知した誤差を装置系に伝える手段が必要になる。この誤差補正に、コンピュータ用のマウスのような手動の補助的なポインティングデバイスを使用することも考えられる(特許文献3参照)。しかし、手動の装置を使用したのでは手を使わないで良いという視線入力によるポインティングデバイスの利点を生かせない。
【0048】
そこで、この誤差補正に瞳孔中心位置もしくは操作者の頭部(目、鼻および口等の操作者の特徴的な画像情報)の位置情報を用いることを本発明の特徴とする。すなわち、目標位置と視線計算されたカーソル位置に誤差がある場合、目標位置を見つめながら誤差を埋める方向に頭を動かすことにより、その頭部の動きに連動してカーソル位置を動かし、目標位置に合わせるのである。撮像デバイスの取得画像内における瞳孔中心位置や頭部の移動は、プルキニエ像などの基準となる画像を利用している場合、理想的には視線算出に影響しない。したがって、取得画像内の頭部の動きに関連した瞳孔中心位置などの位置情報は、誤差補正情報として利用可能である。
【0049】
ポインティングデバイス100を使用する前に、操作者は、決められた目標位置を注視することで視線検出装置2のキャリブレーションを行う。ポインティングデバイス100では、補正可能領域内に目標位置があれば、操作者は、カーソルを自分の意思で目標位置に合わせることができる。逆に言えば、補正可能領域内に目標位置がなければ、操作者が頭をどんなに大きく動かそうがカーソルの位置を補正することはできない。したがって、最小の補正可能領域は、使用前のキャリブレーションと装置系の精度に依存する。つまり、装置系の精度が高く使用前のキャリブレーションを厳密に行っていた場合は、視線算出によるカーソル位置と目標位置との誤差が少ないので、補正可能領域を小さく設定できる。この場合は、頭部の移動量を少なく抑えるか、補正情報の精度を上げることができる。ゆえに、キャリブレーションや装置系の精度は高いほうが操作しやすいが、コストや操作者への拘束感の問題がある。この操作性とコスト等のトレードオフに関しては使用目的に合わせて調節すれば良い。
【0050】
なお、上記においては、視線検出装置2は、瞳孔中心位置または操作者の頭部の位置情報を用いて目標位置7とカーソル6の位置との誤差を補正すると説明したが、この発明においては、これに限らず、視線検出装置2は、操作者の視線方向の変化を検出し、その検出した操作者の視線方向の変化を用いて目標位置7とカーソル6の位置との誤差を補正するようにしてもよい。操作者の瞳孔中心位置が動くと、操作者の視線方向も変化するので、視線検出装置2は、操作者の視線方向の変化を用いて目標位置7とカーソル6の位置との誤差を補正できる。
【0051】
また、上述した説明では、視線検出装置2によりカーソルの座標値を計算していたが、撮像デバイス1をコンピュータに直接繋ぐことで、コンピュータ上のソフトウエアにより視線検出装置2の機能を実現することもできる。
【0052】
図4は、この発明の実施の形態による他のポインティングデバイスの構成を示す概略図である。この発明の実施の形態によるポインティングデバイスは、図4に示すポインティングデバイス110であってもよい。図4を参照して、ポインティングデバイス110は、撮像デバイス1と、コンピュータ30とを備える。
【0053】
撮像デバイス1は、操作者の目や頭部を含む画像を撮影し、その撮影した画像をコンピュータ30へ出力する。
【0054】
コンピュータ30は、CPU(Central Processing Unit)31と、ROM(Read Only Memory)32と、RAM(Random Access Memory)33と、インターフェース34と、ディスプレー35と、バスBSとを含む。
【0055】
CPU31、ROM32、RAM33、インターフェース34およびディスプレー35は、バスBSを介して相互に接続される。
【0056】
CPU31は、インターフェース34およびバスBSを介して撮像デバイス1から取得画像8を取得する。そして、CPU31は、バスBSを介してROM32からプログラムを読み出し、その読み出したプログラムを実行して、視線のディスプレー35上における座標値Adを求め、その座標値Adをカーソル6の位置としてバスBSを介してディスプレー35上に表示するとともに、目標位置7とカーソル6の位置との誤差を補正する。
【0057】
ROM32は、この発明によるプログラムを記憶する。RAM33は、CPU31のワークメモリとして機能する。
【0058】
インターフェース34は、撮像デバイス1に接続され、撮像デバイス1が撮影した画像を撮像デバイス1から受けるとともに、その受けた画像を、バスBSを介してCPU31へ出力する。
【0059】
ディスプレー35は、CPU31からの制御に従って補正前後のカーソル6の位置を表示する。
【0060】
図5は、この発明の実施の形態によるプログラムを示すフローチャートである。図5を参照して、撮像デバイス1は、ディスプレー上の注視対象を見ている操作者の目や頭部を含む画像情報を取得し(ステップS1)、その取得した画像情報をポインティングデバイス110へ出力する。ポインティングデバイス110のCPU31は、撮像デバイス1によって取得された操作者の目や頭部の画像情報8をインターフェース34およびバスBSを介して取得し、ディスプレー35上で操作者が注視している位置への視線を上述した方法によって算出し、視線のディスプレー35の座標位置(=Ad)を算出する(ステップS2)。
【0061】
そして、ポインティングデバイス110のCPU31は、撮像デバイス1によって取得された操作者の目や頭部の画像情報8をインターフェース34およびバスBSを介して取得し、ステップS2と並行して、ディスプレー35上に表示されるカーソル位置と操作者が注視している位置との誤差に基づく操作者の動きを検出する(ステップS3)。
【0062】
その後、CPU31は、検出された操作者の動きに基づいて、目標位置7とカーソル位置との誤差を補正し(ステップS4)、その補正後の座標情報をカーソル6の位置としてディスプレー35の画面上に表示する(ステップS5)。
【0063】
そして、操作者は、ディスプレー35の画面上に表示されるカーソル位置と自己が注視している位置とが一致しているかどうかの判断を行なう(ステップS6)。操作者は、カーソル位置と注視位置とが一致していない場合、その認識した誤差を補正するように頭部を移動する(ステップS7)。
【0064】
以上の一連の動作を、ステップS6において、操作者の注視している位置とカーソル位置とが一致したと操作者が判断するまで行なう。
【0065】
なお、CPU31は、目標位置7とカーソル6の位置との誤差を補正する場合、図5に示すフローチャートのステップS3において、操作者の視線方向の変化をディスプレー35上のカーソル位置と操作者が注視している位置との誤差に基づく操作者の動きとして検出するようにしてもよい。
【0066】
このように、ポインティングデバイス110は、ポインティングデバイス100の視線検出装置2をソフトウエアによって実現したものである。
【0067】
そして、ポインティングデバイス110においては、図5に示すステップS2を実行するCPU31は、「視線検出手段」を構成し、ステップS3を実行するCPU31は、「動き検出手段」を構成し、ステップS4を実行するCPU31は、「誤差補正手段」を構成する。
【0068】
また、ROM32は、図5に示すフローチャートからなるプログラムを記憶するので、プログラムを記録したコンピュータ(CPU31)読み取り可能な記録媒体に相当する。なお、図5に示すフローチャートからなるプログラムは、CD(Compact Disk)およびDVD(Digital Versatile Disk)等の各種の記録媒体に記録されて販売され、CD等の記録媒体がパーソナルコンピュータ等に装着されると、CPU31によって読み出されて実行されるので、図5に示すフローチャートからなるプログラムを記録したCD等の記録媒体も、プログラムを記録したコンピュータ(CPU31)読み取り可能な記録媒体に相当する。
【0069】
操作者の目の画像9から視線方向および視線や補正情報を算出するには、瞳孔中心位置10を求める必要があるが、この発明においては、以下に説明する方法によって瞳孔中心位置10を求めてもよい。
【0070】
図6は、図1に示す撮像デバイス1により撮影された瞳孔画像の簡略図である。瞳孔画像とは、図6に示すように瞳孔の全体とその周辺部位である虹彩が撮影された画像を意味する。瞳孔画像は、256階調の8bitグレイスケール画像(0が黒色、255が白色に対応)である。
【0071】
図6を参照して、瞳孔画像の横幅をW、縦幅をHとし、瞳孔画像の左下を原点(0,0)とするxy座標を定義する。この座標系において、座標(i,j)の画素値をP(i,j)とする。
【0072】
視線検出装置2は、図6に示す画像から、仮の瞳孔輪郭をエッジ検出手法(例として以下に説明する手法)を用いて求める。
【0073】
図7は、仮の瞳孔輪郭を検出する方法を説明するための図である。図7を参照して、視線検出装置2は、仮の瞳孔中心を座標(W/2,H/2)に設定する。そして、視線検出装置2は、仮の瞳孔中心から、放射線状に延びた直線上に存在する各画素において、注目する画素とそれに隣接する画素との画素値の差を計算する。すなわち、視線検出装置2は、注目する座標を(i,j)とし、その隣接ピクセルを(i',j')とし、画素値の差をDPとすると、DP=|P(i,j)−P(i',j')|を演算して画素値の差を計算する。
【0074】
そして、視線検出装置2は、画素値の差DPがあるしきい値TH1以上である場合、すなわち式(4)を満たすとき、注目している座標(i,j)をエッジ画素、すなわち仮の瞳孔輪郭座標とする。図7では、一例として0度、45度、90度の各放射線方向におけるエッジ検出を示しており、図中の×印が検出した仮の瞳孔輪郭位置である。
【0075】
【数4】

【0076】
このとき、視線検出装置2は、ある放射線上において、式(4)を満たす画素が存在した場合、その時点で同放射線上におけるエッジ検出を終了し、次の角度におけるエッジ検出を開始する。また、視線検出装置2は、式(4)を満たす画素が存在しなかった場合、その放射線上にはエッジ無しとし、次の角度におけるエッジ検出を開始する。
【0077】
上記手法を用いて瞳孔輪郭を検出する場合、放射線方向の数は、瞳孔画像の画像サイズがW=60、H=60(単位:ピクセル)程度であった場合、0度の角度から始め、360度までの32方向について考えれば良い。ただし、放射線角度方向の数は、32方向以上あっても問題はなく、むしろより多くの放射線方向においてエッジ検出を実行するのが望ましいが、その数は瞳孔画像の画像サイズに依存する。
【0078】
以上の処理により得られた仮の瞳孔輪郭の座標をC(xi,yi)、i=1〜Nとする。ここでxi,yiは、それぞれi番目の仮の瞳孔輪郭のx座標及びy座標であり、Nは、得られた座標の総数である。
【0079】
仮の瞳孔輪郭データから、ノイズ成分などの影響で検出されてしまう偽の瞳孔輪郭を除去するため、次に説明する偽の瞳孔輪郭除去を実行する。
【0080】
図8は、偽の瞳孔輪郭を除去するフローチャートである。図8を参照して、視線検出装置2は、仮の瞳孔輪郭の全データを一つの母集団として定義し、これに対する各瞳孔輪郭のマハラノビス距離を計算し(ステップS11)、得られたマハラノビス距離の平均値を計算する(ステップS12)。
【0081】
ここで、マハラノビス距離とは、次の計算により求めることができる。まず、視線検出装置2は、瞳孔輪郭データの分散共分散行列COVを式(5)により求める。
【0082】
【数5】

【0083】
次に、視線検出装置2は、式(6)によりCOVの逆行列COV'を求め、式(7)の行列演算により瞳孔輪郭C(xi,yi)のマハラノビス距離MDiと、平均マハラノビス距離MD_AVEとを計算する。
【0084】
【数6】

【0085】
【数7】

【0086】
その後、視線検出装置2は、i=1およびj=1を設定し(ステップS13)、i≦Nであるか否かを判定する(ステップS14)。
【0087】
ステップS14において、i≦Nであると判定されたとき、視線検出装置2は、マハラノビス距離MDiと平均マハラノビス距離MD_AVEとの差DMDを演算し(ステップS15)、その演算した差DMDがしきい値TH2以上であるか否かを判定する(ステップS16)。
【0088】
そして、ステップS16において、差DMDがしきい値TH2以上であると判定されたとき、視線検出装置2は、瞳孔輪郭座標C(xi,yi)を偽の瞳孔輪郭とみなして除去する(ステップS17)。その後、視線検出装置2は、i=i+1を設定する(ステップS18)。そして、一連の動作は、ステップS14へ戻る。
【0089】
一方、ステップS16において、差DMDがしきい値TH2以上でないと判定されたとき、視線検出装置2は、瞳孔輪郭座標C(xi,yi)を真の瞳孔輪郭CG(xj,yj)=C(xi,yi)と設定するとともに、i=i+1およびj=j+1を設定する(ステップS19)。その後、一連の動作は、ステップS14へ戻る。
【0090】
そして、ステップS14において、i≦Nではないと判定されるまで、上述したステップS14〜ステップS19が繰り返し実行される。すなわち、全ての仮の瞳孔輪郭データに対して偽の瞳孔輪郭データか真の瞳孔輪郭データかが判定されるまで、ステップS14〜ステップS19が繰り返し実行される。
【0091】
そして、ステップS14において、i≦Nではないと判定されると、一連の動作は終了する。
【0092】
図8に示すフローチャートを実行することによって、残ったデータ集合CG(xj,yj)を真の瞳孔輪郭データ集合として得ることができる。
【0093】
なお、図8に示すフローチャートは、仮の瞳孔輪郭データから偽の瞳孔輪郭データを排除することを目的としているため、上記に挙げたエッジ検出手法とは異なった手法を利用して仮の瞳孔輪郭データを求めた場合でも、瞳孔輪郭が座標データとして与えられるすべての場合に対して対応可能である。
【0094】
上記においては、視線検出装置2は、マハラノビス距離および平均マハラノビス距離を用いて偽の瞳孔輪郭データを除去すると説明したが、この発明においては、視線検出装置2は、一般的には、次の方法によって偽の瞳孔輪郭データを除去する。
【0095】
図9は、偽の瞳孔輪郭データを除去する他の方法を説明するためのフローチャートである。一連の動作が開始されると、視線検出装置2は、複数の仮の瞳孔輪郭データを検出し、その検出した複数の仮の瞳孔輪郭データを母集団としたときの複数の仮の瞳孔輪郭データと母集団の重心との複数の距離L1のばらつきを検出する(ステップS21)。その後、視線検出装置2は、ばらつきの重心と複数の仮の輪郭データとの複数の距離L2を演算し(ステップS22)、その複数の距離L2の平均を演算する(ステップS23)。
【0096】
そして、視線検出装置2は、演算された複数の距離L2と複数の距離L2の平均とを用いて、距離L2が複数の距離L2の平均から相対的に離れている仮の輪郭データを偽の輪郭データとして複数の仮の輪郭データから除去して真の輪郭データを求める(ステップS24)。これによって、一連の動作は終了する。
【0097】
なお、ステップS24において、偽の輪郭瞳孔データを除去する具体的な方法は、次の方法からなる。視線検出装置2は、複数の距離L2の各距離L2と複数の距離L2の平均との差を求め、その求めた差がしきい値以上であるとき、その差を有する仮の瞳孔輪郭データを除去し、その求めた差がしきい値よりも小さいとき、その差を有する仮の瞳孔輪郭データを真の瞳孔輪郭データとする。
【0098】
また、図9に示すフローチャートは、図8に示すフローチャートを一般化したものである。その理由は、次のとおりである。
【0099】
視線検出装置2がステップS21において複数の距離L1のばらつきを検出し、ステップS22において複数の距離L2を演算することは、式(5)を用いて分散共分散行列COVを演算し、式(6)および式(7)を用いてマハラノビス距離MDiを演算することに相当し、視線検出装置2がステップS23において複数の距離L2の平均を演算することは、式(7)を用いて平均マハラノビス距離MD_AVEを演算することに相当し、視線検出装置2がステップS24において複数の距離L2と複数の距離L2の平均とを用いて距離L2が複数の距離L2の平均から相対的に離れている仮の瞳孔輪郭データを偽の瞳孔輪郭データとして除去し、真の瞳孔輪郭データを検出することは、マハラノビス距離と平均マハラノビス距離との差がしきい値TH2以上の仮の瞳孔輪郭データを除去し、マハラノビス距離と平均マハラノビス距離との差がしきい値TH2よりも小さい仮の瞳孔輪郭データを真の瞳孔輪郭データとすることに相当するからである。
【0100】
そして、視線検出装置2がステップS21において複数の距離L1のばらつきを検出し、ステップS22において複数の距離L2を演算することが、式(5)を用いて分散共分散行列COVを演算し、式(6)および式(7)を用いてマハラノビス距離MDiを演算することに相当するのは、式(5)において演算される分散共分散行列COVは、複数の仮の瞳孔輪郭データを母集団としたときの複数の仮の瞳孔輪郭データと母集団の重心との複数の距離L1のばらつきを表し、式(6)および式(7)を用いて演算されるマハラノビス距離MDiは、複数の距離L1のばらつきの重心と複数の仮の瞳孔輪郭データとの複数の距離L2を表すからである。
【0101】
したがって、図9に示すステップS21,S22は、図8に示すステップS11に相当し、図9に示すステップS23は、図8に示すステップS12に相当し、図9に示すステップS24は、図8に示すステップS13〜ステップS19に相当する。
【0102】
その結果、この発明においては、マハラノビス距離以外の指標を用いて偽の瞳孔輪郭データを除去して真の輪郭瞳孔データを求める視線検出装置が存在しても、その視線検出装置が図9に示すフローチャートに従って偽の瞳孔輪郭データを除去して真の輪郭瞳孔データを求めていれば、その視線検出装置は、この発明による視線検出装置に含まれる。
【0103】
上述した図8および図9に示すフローチャートは、マハラノビス距離(=上述したばらつきの重心と仮の瞳孔輪郭データとの距離)の差が小さい仮の瞳孔輪郭データが母集団に含まれる確率が高くなるという思想を基本とする。そして、この差が小さい仮の瞳孔輪郭データを母集団に含めることを実現するために、マハラノビス距離と平均マハラノビス距離との差がしきい値TH2以上であるか否かを判定するのである。
【0104】
一方、従来、行なわれているマハラノビス距離を用いた判定は、複数の母集団が存在した場合に、マハラノビス距離を用いて判別対象のデータが複数の母集団のうちのどの母集団に含まれるかを判定するものである。具体的には、判別対象のデータと複数の母集団の重心との複数のマハラノビス距離を演算し、その演算した複数のマハラノビス距離のうち、最も小さいマハラノビス距離を有する母集団に判別対象のデータが含まれると判定する。
【0105】
しかし、この発明においては、母集団は、1個しか存在せず、複数の仮の瞳孔輪郭データは、母集団の重心からある距離を保って存在しているので、マハラノビス距離が小さい仮の瞳孔輪郭データは、母集団から外れることになる。
【0106】
そこで、上述したように、マハラノビス距離(=上述したばらつきの重心と仮の瞳孔輪郭データとの距離)の差が小さい仮の瞳孔輪郭データが母集団に含まれる確率が高くなるという思想を採用することにしたものである。
【0107】
視線検出装置2は、図8または図9に示すフローチャートに従って真の瞳孔輪郭データ集合を求めると、その求めた真の瞳孔輪郭データ集合を用いて上述した方法によって瞳孔中心位置10を求める。
【0108】
なお、この発明においては、ポインティングデバイス110のCPU31も、図8または図9に示すフローチャートに従って真の瞳孔輪郭データ集合を求め、その求めた真の瞳孔輪郭データ集合を用いて上述した方法によって瞳孔中心位置10を求める。この場合、ROM32は、図8または図9に示すフローチャートからなるプログラムを記憶している。
【0109】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【0110】
この視線検出技術では、一般的なポインティングデバイスのように手動による操作を必要としないので、肢体不自由者がコンピュータなどを用いてコミュニケーションを行う場合有効である。また、健常者の使用についても、視線でのカーソル操作と手動によるキーボード等の入力を組み合わせることで、より快適かつ感覚的な入力を可能とする。
【図面の簡単な説明】
【0111】
【図1】この発明の実施の形態によるポインティングデバイスの構成を示す概略図である。
【図2】頭部移動によるカーソル位置の補正を行う前の取得画像(左)とディスプレー画面(右)を示す図である。
【図3】頭部移動によるカーソル位置の補正を行った後の取得画像(左)とディスプレー画面(右)を示す図である。
【図4】この発明の実施の形態による他のポインティングデバイスの構成を示す概略図である。
【図5】この発明の実施の形態によるプログラムを示すフローチャートである。
【図6】図1に示す撮像デバイスにより撮影された瞳孔画像の簡略図である。
【図7】仮の瞳孔輪郭を検出する方法を説明するための図である。
【図8】偽の瞳孔輪郭を除去するフローチャートである。
【図9】偽の瞳孔輪郭データを除去する他の方法を説明するためのフローチャートである。
【符号の説明】
【0112】
1 撮像デバイス、2 視線検出装置、4 ディスプレー、6 カーソル、7 目標位置。


【特許請求の範囲】
【請求項1】
撮像デバイスで取得される操作者の目の画像情報を用いて、ディスプレー画面上で操作者が注視している位置への視線を検出し、その検出結果から前記ディスプレー画面上で入力可能な位置を示すカーソルの座標情報を算出する視線検出手段と、
前記視線検出手段により得られた座標情報に基づいて前記ディスプレー画面上に表示されたカーソル位置と前記操作者が注視している位置との誤差に基づく前記操作者の動きを検出する動き検出手段と、
前記動き検出手段によって検出された前記操作者の動きに基づいて、前記誤差を補正する誤差補正手段とを備えるポインティングデバイス。
【請求項2】
前記動き検出手段は、前記操作者の特徴的な画像情報の動きを前記誤差に基づく前記操作者の動きとして検出する、請求項1に記載のポインティングデバイス。
【請求項3】
前記動き検出手段は、前記操作者の瞳孔の動きまたは前記操作者の視線方向の変化を前記誤差に基づく前記操作者の動きとして検出する、請求項2に記載のポインティングデバイス。
【請求項4】
操作者の注視位置とカーソル位置との誤差の補正をコンピュータに実行させるためのプログラムであって、
視線検出手段が、撮像デバイスで取得される操作者の目の画像情報を用いて、ディスプレー画面上で操作者が注視している位置への視線を検出し、その検出結果から前記ディスプレー画面上で入力可能な位置を示すカーソルの座標情報を算出する第1のステップと、
動き検出手段が、前記第1のステップにおいて得られた座標情報に基づいて前記ディスプレー画面上に表示されたカーソル位置と前記操作者が注視している位置との誤差に基づく前記操作者の動きを検出する第2のステップと、
誤差補正手段が、前記第2のステップにおいて検出された前記操作者の動きに基づいて、前記誤差を補正する第3のステップとをコンピュータに実行させるためのプログラム。
【請求項5】
前記第2のステップにおいて、前記動き検出手段は、前記操作者の特徴的な画像情報の動きを前記誤差に基づく前記操作者の動きとして検出する、請求項4に記載のコンピュータに実行させるためのプログラム。
【請求項6】
前記第2のステップにおいて、前記動き検出手段は、前記操作者の瞳孔の動きまたは前記操作者の視線方向の変化を前記誤差に基づく前記操作者の動きとして検出する、請求項5に記載のコンピュータに実行させるためのプログラム。
【請求項7】
請求項4から請求項6のいずれか1項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate