JP4951751B2 - 瞳孔検出に基づくポインティング装置及び方法 - Google Patents
瞳孔検出に基づくポインティング装置及び方法 Download PDFInfo
- Publication number
- JP4951751B2 JP4951751B2 JP2005127386A JP2005127386A JP4951751B2 JP 4951751 B2 JP4951751 B2 JP 4951751B2 JP 2005127386 A JP2005127386 A JP 2005127386A JP 2005127386 A JP2005127386 A JP 2005127386A JP 4951751 B2 JP4951751 B2 JP 4951751B2
- Authority
- JP
- Japan
- Prior art keywords
- pupil
- movement
- cursor
- pointer
- head
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Eye Examination Apparatus (AREA)
- Image Processing (AREA)
- Position Input By Displaying (AREA)
- Image Analysis (AREA)
Description
その一例としてコンピュータのモニタ画面上の視点(モニタ画面と操作者の視線との交点)にカーソルを提示する方法がある(特許文献1参照)。この方法は、ビデオカメラを用いて、瞳孔の中心だけでなくビデオカメラの近くに設置した光源の角膜反射光を検出し、カメラ画像中の瞳孔の中心と角膜反射の中心の相対位置から視点を検出する。
非特許文献1に記載された技術(Eagle eyeと名づけられている)は、パーソナル・コンピュータのモニタの横にビデオカメラを設置し、顔の画像を撮影しながら、画像処理により、予め指定する顔の一部をテンプレートマッチングにより追尾し、その動きに応じて、モニタ画面上のカーソルを動かす方式である。追尾対象としては、鼻の先、あごの先、黒眼などを試している。しかし、テンプレートを更新しても、急減な周囲の明るさの変化などに対応しにくい可能性があり、また、追尾すべき対象が徐々にずれていくなどの問題も発生しやすい。
そのために、カメラ(1)の開口(2)に近い光源(3)と遠い光源(4)をビデオのフィールドに同期させて交互に点灯させ(図1)、そのとき得られる明瞳孔画像(図2−a)と暗瞳孔画像(図2−b)を実時間で差分を行い、背景部をおよそ相殺させ、瞳孔部を浮き立たせた後に瞳孔を検出した(図2−c)。光源の配置例としてLED(発光ダイオード;5)を用いたものを図3に示している。近い光源(3)をカメラ開口(2)即ちレンズの周囲に同心円状に配置したこの例では、遠い光源(4)を、近い光源(3)の外周に同心円状に配置することも考えられる。
さらにこの瞳孔検出法では、操作者が視力矯正用の眼鏡やサングラスをしている場合にも、眼鏡反射の輝度は画像中において飽和するくらいに明るく他の部分と区別しやすいため、眼鏡反射の部分の輝度を下げてから画像差分をすることにより、眼鏡反射を画像処理の段階で除去することができる。しかし、眼鏡反射像が瞳孔に完全にかぶさってしまったときには、眼鏡反射により瞳孔がかき消されてしまうため、画像処理の段階で瞳孔を検出するのは不可能である。
このような場合にも、光源の前に偏光フィルターを設置し、カメラの開口の前に前述の偏光フィルターとは偏光方向を垂直にした偏光フィルターを設置することによって、眼鏡反射をある程度除去できる。また、角度を変えて複数のカメラを設けることにより、少なくともどれか1台のカメラにおいて、眼鏡反射像と瞳孔とが重ならない画像を得ることができる。
上記(1)は、旧来のジョイスティックに対応し、レバーの変位量に見合った量で、カーソル位置が決定される(絶対位置の制御)。上記(2)は現在のマウスやトラックボールに対応し、回転量に見合った量で、カーソルが移動する(相対位置の制御)。上記(3)は、現在のノート型コンピュータに見られるスティック状のコントローラに対応し、レバーの傾きが存在する間、カーソルは移動しつづける(積分による位置決定)。カーソルキーによるカーソルコントロールも、上記(3)に相当すると言えよう。
瞳孔の移動を検知し移動量情報を作成する場合には、マウス・インタフェースを用いて他のシステムと接続するのか、ジョイスティック・インタフェースあるいは他のスティック・インタフェースを用いるのかによって、出力信号に対する考慮が必要であり、多種多様の変換形態があることが理解されよう。
さらには、コンピュータそのものを制御手段として用いることも可能であり、その場合には、光源の照射(点滅)制御部分を分離して外部に設けることも考えられる。
所望により制御手段の制御機能を分割し、ソフトウエアで実行する部分、ハードウエアで実行する部分、コンピュータ自体で実行する部分、PCIボードで実行する部分など、適宜機能分散することが可能であることは、当業者であれば理解できよう。
顔画像から検出される瞳孔の検出状態は、(a)両目が開いており、両瞳孔とも検出されている状態(右瞳孔検出、左瞳孔検出)、(b)右目のみが開いており、右瞳孔のみが検出されているとき(右瞳孔検出、左瞳孔非検出)、(c)左目のみが開いており、左瞳孔のみが検出されているとき、(右瞳孔非検出、左瞳孔検出)、(d)両目とも閉じており、両瞳孔とも検出されないとき(右瞳孔非検出、左瞳孔非検出)の4通りである。
汎用の2ボタンマウス信号から出力される情報は、マウスボタン情報(右ボタンのDOWN(押した状態)・UP(離した状態)と左ボタンのDOWN・UP)とカーソル移動情報(水平方向、垂直方向)である。
例えば、片目を1度閉じてから開けばクリック、また、片目を閉じながら頭部を動かせば、ドラッグが開始され、その後に閉じていた目を開けば、ドラッグが終了する。また、片目を閉じてから開く動作を2回繰り返せばダブルクリックにもなる。
そのために、右目の開閉と左目の開閉を、汎用2ボタンマウスの右ボタンのUP,DOWNと左ボタンのUP,DOWNに対応させる処理を行うものとする。この対応づけは左右入れ換えることも可能である。
ただし、瞬目(まばたき)により両目が閉じる場合は、それは操作者の意図ではないために例外的に扱う。通常、汎用マウスの両ボタンとも押している状態は利用されないので、両目が閉じている場合は、両ボタンとも逆にUPになっている状態とみなす。ただし、瞳孔移動量は零であるとする。これにより、両目が閉じられている場合は、マウスを何も操作していない状態(手を放している状態)に相当させることになる。このような状態は、両目が閉じている場合だけでなく、顔がカメラに映っていない場合も同様の扱いとする。
(2)また、速く頭が動くと、それに伴って瞳孔も速く動く、その際に瞳孔の画像がボケてピーク輝度値が低下するなどして、結果的に瞳孔が検出できないことがある。これは、両目を開いているとき(カーソルを単に動かしているとき)において、両瞳孔に関して、もしくは、片方の瞳孔に関してありうる。その場合、瞳孔の検出状態が変化したと判断すると、操作者の意図とは異なったボタン情報を出力してしまう。
上の(1)と(2)のような問題を防ぐために、次のような対処を行う。
現在の画像フレームから得られた瞳孔の検出状態(検出、非検出)が、前のフレームから別の状態に変化しても、変化後に同じ状態が数フレーム(例えば、3フレーム、100ms) 以上連続して続いたときに、はじめて変化後の瞳孔状態に一致するボタン情報を出力するものとする。
以下、この明細書において、このような構成によるカーソル制御装置(ポインティング装置)を「瞳孔マウス」と略記する。
瞳孔マウスの場合、もし大きな頭部の動きによりカーソルを移動させることを想定して、ゲイン(カメラ画像中の瞳孔移動量に対するモニタ画面上のカーソル移動量)を決定すると、頭部を動かさず眼球が回転するだけの場合には、カーソルの移動量が極端に小さい。そのため、目の動きだけでカーソルを広い範囲を思いのままに動かすのは不可能である。したがって、目の動きだけでカーソルをモニタ画面全体に動かすためには、ゲインをかなり大きく設定する必要がある。この場合には、頭部の動きがほんの少しあるだけで、カーソルは意に沿わずコンピュータのモニタ画面の端まで移動してしまい、やはり思いのままの操作は難しい。
この発明は、「瞳孔マウス」において、頭部運動が可能な身体障害者から頭部運動がまったくできない身体障害者まで幅広く、コンピュータの操作者としてカーソル制御ができるゲイン設定方法及び装置を提案する。
瞳孔マウスでは、カメラの撮影拡大率が小さくとも(顔全体が十分に入る画角で撮影)、瞳孔中心を精度良く検出でき、しかも瞳孔の有無を正しく検出できる画像処理が基盤に存在しており、頭部の動きや目の動きに応じて生ずる瞳孔の移動を精密に捉えることができる。瞳孔マウスにおいては、画像中の瞳孔移動をモニタ画面中のカーソル移動に対応付けた。さらに、左右の目のウインクをそれぞれ、マウスの左右のボタンの押下状態に対応付けることにより、クリックやドラッグの動作をさせることができる。
しかし、頭部の運動を用いることなく目の動きによって瞳孔マウスを使用するためには、視点の位置にカーソルを提示することが望ましく、カメラ画像中の瞳孔位置とコンピュータのモニタ画面上のカーソル位置の対応付けのための較正を行なう必要がある。そうでなければ、網膜上の視覚分解能の低い部分でカーソルが希望の位置に移動したかを判断しなければならなくなり、それは事実上困難である。
したがって、一般の視点検出によるポインティング装置のように、視点位置に一致するようにカーソルを提示する必要がある。その場合に、従来の視点検出の場合のように複数の注視点を順次提示しそれを見させて較正をしても、何らかの要因で頭部が移動した場合は、再び同様の較正をする必要がある。したがって、較正を容易にする必要がある。
(1)本方式では、顔全体が十分に映る範囲で、1個もしくは2個の瞳孔を検出する。
(2)ただし、カメラから瞳孔までの距離はほぼ固定、もしくは、実時間で計測する方法を伴っているためカメラの拡大率が分り、頭部がカメラに対し前後に動いても、ゲイン(カーソル移動量/瞳孔移動量)の補正ができるものとする。
(3)頭部を大きく動かせる操作者、もしくは、疾病の度合いにおいては、目だけの動きによる瞳孔の動きより、頭部の動きのほうが大きいため、前記ゲインを小さくし、主に頭部の動きによりカーソル移動を行なう。
(4)頭部がまったく動かない操作者、もしくは、そのような疾病の度合いにおいては、ゲインを大きくし、目の動きだけで十分に大きいカーソル移動を得るようにする。
(5)頭部が少しだけ動き、目が普通に動く操作者の場合は、基本的には素早い視線の移動によりカーソルを素早く動かすが、目標の位置からのずれについては若干の頭部の移動により生ずる瞳孔移動によって補正する。
(6)前記ゲインは、ユーザが自由なタイミングで、短時間に簡単に頭部や視点移動を行なうだけで自動的に調整できるものとする。
(7)使用しやすくするために、頭部が動く場合はカーソルは顔の正面、目しか動かない場合は視点位置にカーソルを提示するものとし、それらの位置からずれた場合は、希望の位置をポインティングするまえにコンピュータ画面の端に顔を向けるか、目をむければ、ずれが補正される。
(8)使用者が眼鏡を使用している場合、瞳孔検出に必要な光源によって眼鏡反射が生じる。このような場合、カメラと光源をコンピュータ画面から離して設置することにより、前記(7)を満たすように操作している限り、カメラ画像中において、眼鏡反射像が瞳孔像に重なることなく瞳孔が検出できるため、瞳孔位置が使用できる。
(9)得られた瞳孔の座標位置をカーソル表示座標に対応させる関係を持たせることが好ましいが、画面端部においてゲインを増加させてもよい。
カメラ(11)は、近赤外線に感度を持つ汎用のCCDビデオカメラであり、カメラ(11)の開口部(光の通る部分)の近くに1つの光源(12)、そして、カメラの開口部から離れたところにもう一つの光源(13)を設ける。カメラ(11)、光源(12)及び光源(13)は制御装置(14)に接続される。制御装置(14)はモニタ画面(16)を有すコンピュータ(15)に接続されている。制御装置(14)内に較正手段(19)及び瞳孔検出判定手段(20)が備えられている。
操作者(17:ユーザ)に対し、カメラ近傍の光源(12)と離れた光源(13)とを交互に発光させて、その瞳孔からの反射画像をカメラ(11)で撮像する。光源(12)による画像と、光源(13)による画像との差分を制御装置(14)で演算し、得られた瞳孔位置の変化をUSBインタフェースにより、コンピュータ(15)に転送する。
コンピュータ(15)においては、制御装置(14)からの信号をポインティングデバイスの一種であるマウスと同等であるものと見なして、モニタ(16)画面上に表示されたカーソル(18)の位置を制御する。
また、制御装置(14)は片目のみを閉じる動作を検出し、左右ボタンの押下に相当する信号を発生する。
まず、カメラから瞳孔までの距離が固定であれば、その距離が不明でも、カーソルを快適に動作させるゲインを得る方法について述べる。 今、頭部は回転するだけで、頭部の中心は移動しないものとする。すなわち、首を支えとして、頭部の重心の移動は無いように頭部を回転させるものとする。したがって、カメラから瞳孔までの距離は変化しないものと仮定する。
≪自動ゲイン調整の概念≫
今、瞳孔マウスにおいて、左右(水平方向)の頭部回転によってカーソルを移動する場合を想定する。今、図5(a)のようにちょうど顔がモニタ画面の中央に向いているとする(なお、理解を容易にするために、カメラはモニタ画面の中央に設置してあるとする)。瞳孔マウスは、カメラ画像中の瞳孔の移動をモニタ画面上のカーソル移動に対応させるため、特別な操作等をしなければ、この図が示すように顔の正面にカーソルが提示されるとは限らない(この例においては、顔の正面よりも右にカーソルが提示されている)。
このような場合、頭部を反時計回り(左)に回転させても(図示していない)、頭部を大きく回転させてもカーソルが画面の左端まで移動しない場合がある。その理由は、ある臨界角度を超えると、顔をそれ以上回転させても、カメラ画像中の瞳孔は移動しなくなったり、瞳孔自体が検出できなくなるからである。また、正面から顔がずれると顔の回転角度に対し瞳孔移動が減少するから、画面端部においてゲインを増加させることが好ましい。
もし、そのときのゲインが適度な値に設定されているとすると、同図のように頭部が左に回転するのに伴ってカーソルも左に移動し、しかも、ほぼ、顔の向きに一致した方向(顔の正面)にカーソルが常に現れるようになる。そのような状況は、図5(e)のように、モニタ画面の左端に頭部が向くまで続けられる。このように、ゲインが適度な値に選ばれていれば、頭部の方向に一致した位置にカーソルを提示させることが可能である。
その後、さらに左に頭部を回転させると、ゲインが大きいため、少しの頭部の回転により、カーソルは大きく移動し(図6(d))、ついにはカーソルが左端に達して、それ以上頭部が動いてもカーソルは移動しなくなり(図6(e),図6(f))、そのまま同じ場所に居続ける。
このようにゲインが大きいときには、小さな頭部の回転でも、カーソルを大きく動作させることができ、特定の用途においては有効であるが、一般には、図5の場合のようにいつも頭部の方向(顔の正面)にカーソルが提示されるようにしたようが使用しやすい。そこで、頭部の回転した分だけカーソルが移動する適当なゲインに調整する方法について、次に述べる。
操作者がモニタ画面の右端に顔を向けてから左端に顔を向ける(左端が先で右端が後でもよい)。この際にカメラ画像中を移動する瞳孔中心座標の移動量をIxとする。モニタ画面の右端から左端までの画素数をWxとしたとき、kx=Wx/ Ixとして係数kxを求める。
同様のことは、次に述べるように、画面の縦方向にも当てはまる。操作者がモニタ画面の上端に顔を向けてから下端に顔を向ける。この際にカメラ画像中を移動する瞳孔中心座標の移動量をIyとする。モニタ画面の上端から下端までの画素数をWyとしたとき、ky=Wy/Iyとして係数kyを求める。
ゲインkx,kyを求めれば、カーソルが常に顔の正面に位置するようにできる。上述の説明では、kxとkyを独立に求めたが、図7のように図の右下隅と左下隅に顔を向けるか、あるいは、左上隅と右下隅に顔を向ければ、kxとkyを同時に求めることができる。
IxとIyの実際の求め方としては、たとえば2.5秒間の間(瞳孔座標範囲取得時間)、顔の正面がパソコン画面の上下左右端に来るように自由に頭を回転させてもらい、その間の瞳孔座標の存在範囲から、上述のIxとIyを求める。具体的には、上記取得時間内における瞳孔のx座標Pxの最大値と最小値をPxmax,Pxminとしたときに、Ix=Pxmax−PxminとしてIxを求める。同様に、Iy=Pymax−Pyminとして求める。
瞳孔マウスは、カメラ画像中の瞳孔の位置を、モニタ画面上のカーソル位置に対応させているわけではないため、瞳孔の誤検出があったり、瞬き中など瞳孔が検出されていない間に頭部が動くと、その間、フレーム間の瞳孔移動量ΔPx=0,ΔPy=0となるため、カーソル移動もΔCx=0,ΔCy=0となる。したがって、例えば、基本的にカーソルが常に顔の正面に位置するようにゲインが調整されていても、頭部回転中に少なくとも一時的にカーソルが移動しなくなり、カーソル位置が顔の正面からずれてしまい、カーソル操作がしにくくなる。
このようなときは、図5の説明で述べたように、顔の正面に対してカーソルが右上、右下、左上、左下のどちらの方向に存在するかを操作者が判断し、該当する方向の隅に顔を向けることにより、頭部の方向とカーソルの方向が一致する。その後は前述のように顔の正面にカーソルが提示されるようになる。図8の例の場合には、顔の正面から右上の領域に存在するので、顔の正面の右上の隅に向ければよい。
ただし、横方向の顔の向きとカーソルの位置がずれていても、水平位置がずれていないときは水平位置だけ図9に示したように、そのまま横方向に頭部を回転させればよい。そのときに、縦方向の顔の向きの変動が同時に生じてもかまわない。
その他に、例えば、両目を一定時間(たとえば、1秒以上閉じたら)カーソルを基本的に中央に戻し、その後、目を開いたと認識したら(2つの瞳孔が検出したら)、それから、例えば1秒間は瞳孔が動いてもカーソルを動かさないでおき、ユーザとしては顔をカーソルの方向に向ける(後述する視線の場合は、カーソルを見る)。1秒経ったら、それ以降は、通常通り瞳孔移動に対応させてカーソルを動かす、などがある。
しかし、この位置の補正を頻繁に行なわなければならないとしたら、面倒である。そこで、次に、瞳孔マウスにおいて、瞳孔が一時的にうまく検出できないときがある場合に、顔の正面からカーソルがずれるのを防ぐ方法について述べる。
瞳孔検出判定手段(20)は、両瞳孔非検出または、どちらか一方の瞳孔が非検出になった場合に、瞳孔が最後に検出されたフレームにおける瞳孔座標をメモリに保存しておき、再度瞳孔が検出されたときの瞳孔座標と保存した座標との差分値をカーソルの移動量に加えることによりカーソル位置を補正する。この方法によって、瞬き中に止まっていたカーソルが、瞬き後に眼を開けた瞬間にカーソルがステップ状に移動し、その後は、通常に頭の回転に合わせてカーソル移動する。
その他に、例えば、両目を一定時間(たとえば、1秒以上閉じたら)カーソルを基本的に中央に戻し、その後、目を開いたと認識したら(2つの瞳孔が検出されたら)、それから、例えば1秒間は瞳孔が動いてもカーソルを動かさないでおき、ユーザとしては顔をカーソルの方向に向ける(後述する視線の場合は、カーソルを見る)。1秒経った時点から通常にカーソルを動かす、などの方法がある。
頭部や目は常に細かく振動しているため、瞳孔を動かす気がなくとも振動している。瞳孔が振動すればカーソルも振動し、前述のように、ポインティングが正確にはできない。
そこで、次のように一種のデッドゾーンを設けて、振動を防ぐこととする。
基本的に、瞳孔の移動量とカーソルの移動量との関係を線形として与えれば、カーソルを見ながら頭部を回転させたとき、顔のほぼ正面にカーソルが位置するようになる。したがって、デッドゾーンを設けたときは、図10に表すような関係が適当である。ただし、ここでは、水平方向の関係のみを示した。
図10に示した関係を式に表すと、次式のように表せる。
|ΔPxi| >Thxのとき ΔCxi=kx(|ΔPxi | −Thx) (ΔPxi/|ΔPxi |) (1)
|ΔPxi| ≦Thxのとき ΔCxi=0
ここで、ΔPxi はi番目のフレームにおける瞳孔位置Pxiとi−1番目のフレームにおけるPxi-1との差(フレーム間の瞳孔移動量)であり、ΔPxi=Pxi−Pxi-1で表される。また、kx,kyは、前述したゲインに相当する。
式(1)の関係を用いることで、デッドゾーンであるThxを越えない小さな瞳孔移動のときは、カーソルはまったく動かず、デッドゾーンを超えると、瞳孔移動量にほぼ比例してカーソルが移動する。
ただし、この関係を用いるだけだと、カーソルをゆっくり動かすために意図的にゆっくりと一方向に頭部を動かした場合、意に反してカーソルがまったく動かないことがある。この問題を軽減するために、|ΔPxi| ≦Thxのときは、最後に|ΔPxi| >Thxの条件を満たしたフレーム(これをj番目のフレームとする)からの現在のフレーム(i番目)までの瞳孔移動量ΔPx=Pxi−Pxjを求め、これを式(1)のΔPxiに置き換えてΔCxiを決定する。
垂直方向に関しても、同様に表すことができ、水平方向と垂直方向は独立して働く。
このようにすることによって、基本的に瞳孔の非常にゆっくりな移動に対してはカーソル移動はないが、そのような場合でも移動の積分値が所定の量を超えたとき積分値に対応した分だけカーソル移動が起こる。
≪頭部や目の振動によるカーソル振動を防ぐ方法(移動平均法)≫
デッドゾーンを設け、特にカーソルを停止させようとしたときのカーソルのばらつきをなくす方法について上述した。しかし、デッドゾーンをなくし(式(1)においてThx=0とおく)、ΔPxi,ΔPyi もしくは ΔCxi,ΔCyiに移動平均を施こしてもよい(たとえば、5ポイント移動平均の採用。ただし、カメラはNTSC方式、30フレーム/秒(60フィールド/秒)とする)。これにより、カーソル移動は頭部の回転速度に比べて遅くなるが、カーソル移動は滑らかになり、頭部を停止させたときのカーソルのばらつきは減る。
今、図11のように、頭部を眼球に置き換え、頭部の回転を眼球の回転に置き換えても、これまでに述べたことがほぼ同様に言える。違う点は、頭部は滑らかに回転するのに対して、眼球は、その先に滑らかに移動する対象部が無い限りは、滑らかには運動せず、ステップ状に移動するという点である。したがって、視点移動に頼る場合は、カーソルはほぼステップ状に移動する(ステップが終了すると、《頭部や目の振動によるカーソル振動を防ぐ方法》の項で述べたように、カーソルは停止する)。
この場合、頭部の回転による瞳孔の移動を、眼球の回転による瞳孔の移動に置き換え、顔の正面(頭部の方向)を視線方向と考えてよい。頭部移動の場合と同様に、カメラから瞳孔までの距離は任意に選べるが不変であると仮定する(距離が変わった場合は、ゲイン調整をしなおせばよい)。
画面端部においては、眼球の回転による瞳孔座標の変化が小さいので、視点とカーソル位置との間に微妙な差が生じる。これを解決するためには、画面端部においてゲインをやや高くすることが有用である。
この場合、ゲイン調整が正しくでき、位置のずれもなければ、基本的には操作者が見ているところにカーソルが提示できる。
ただし、眼球の回転だけでカーソルを移動させる場合は、頭部を回転させる場合に比較して、カメラ画像の中で瞳孔はほんのわずかしか動かないため、ゲインkx,kyは大きく設定しなければならない。一般に、ΔPyの分解能はカメラの分解能や画像処理法などに依存する。瞳孔マウスの場合は、顔全体が十分に写るように、低い拡大率で撮影していることもあり、画像処理によって検出される瞳孔座標の分解能も必ずしも高くない。
そのため、瞳孔移動信号ΔPxi,ΔPyiに移動平均を施す。移動平均により、モニタ上の視点の動きに対するカーソルの移動は、緩やかな動きになり遅れるが、基本的に、ほぼ視点に一致した位置にカーソルが出現する。カーソルが希望の位置に完全に一致しないときは、位置が一致する箇所へ視線を移してずれを補正することも容易である。
実験から求めた値としては、(Wx,Wy)=(1280,1024)で、水平画角が14°35′で垂直画角が10°58′のカメラを用いて、カメラから50cmのところに頭部を固定したときの使用者の顔画像を320×240画素の分解能で取り込んだとき、デッドゾーン(Thx,Thy) =(0.05,0.05),ゲイン(kx,ky)=(80,150)、移動平均幅はx方向、y方向ともに10ポイントとしたときに(カメラは30フレーム/秒;NTSC方式)、カーソルの移動は視点の動きによりもずっと遅くなったが、瞳孔のみの検出でカーソルはおよそ視点位置に移動した。ただし、ここではデッドゾーン,ゲインなどは経験的に与えた。
なお、移動平均を施すか否かは操作者の好みにもよるので、オンオフの設定を可能とすることが好ましい。
次にデッドゾーンの適当な大きさについて述べる。そもそも、デッドゾーンは瞳孔の不随意の移動によりカーソルが移動を防ぐためである。よって、操作者毎に異なる不随意の瞳孔移動の量に応じて決定するのが妥当である。しかし、ここで述べている瞳孔移動とはビデオカメラ画像中の移動であるから、顔を撮影する際の拡大率に影響を受ける。したがって、カメラから顔までの距離に依存する。しかし、ゲイン調整の説明のときに仮定したように、カメラから顔までの距離は変化しないものと仮定する。特に、頭部が動かない操作者などでは、カメラと顔までの距離はほぼ固定されていると考えてよいため、この仮定は妥当である。
デッドゾーンは、次のように自動決定できる。操作者に数秒の間、頭部も眼球も動かさないでもらう。つまり、ディスプレイ上の適当な1点を注視しながら、頭部の動きを止めてもらう。その間に、ΔPxiとΔPyiを連続計測し、その間の|ΔPxi|,|ΔPyi|の最大値もしくは標準偏差など適当な値をデッドゾーンとして与える。これにより、その操作者とカメラからの距離に応じた適当なデッドゾーンが与えられ、カーソルが不随意な瞳孔移動によってチラつかず、しかも、細かな随意のカーソル移動が可能となる。
発明者の提案する画像処理(特願2004−170506号)により求まる|ΔPxi|のヒストグラムを作成した結果を図12に示す。発生頻度は双峰形の分布になっており、最初(左)の山の終端(右端)をFxとし、2つ目の山(右)の始端(左端)をSxとして、次式によりデッドゾーンを決定した。
Thx =(Sx+2・Fx)/3 (2)
デッドゾーンとゲイン調整をユーザが手を使用せずに行なうためには、何らかのきっかけを装置に対して与えることが必要である。そのきっかけとしては、一度両目を閉じ、閉じている時間が一定時間(例えば、2秒)を超えたら、これらの処理が開始するようにする。再度目を開いてから一定時間(たとえば、2秒間)の間に、まず、操作者はディスプレイ上の1点を注視しながら頭部を静止する。その時点で装置はブザーなどを鳴らし、デッドゾーンが自動決定され、つぎにゲイン調整処理に進むことを操作者が知る。
さらに次の例えば3秒間にゲイン調整のために、モニタ画面の上下左右端のほうに顔の正面が向くように頭部を動かすことによってゲイン調整を行なう。一度、これらの調整処理が実行されたら、再度、両瞳孔が検出されない状態が上記時間以上経たない限り、デッドゾーンとゲインは一定を保つものとする。なお、これらの調整の開始合図は、必ずしも両目の閉じている時間が長いときに行なうというだけでなく、両目を意識的に繰り返して2度、3度閉じた場合や、右目だけを閉じて開いたあとに左目を閉じて開いた場合など、幅広くあり、限定するものではない。
実験から求めた値としては、(Wx,Wy)=(1280,1024)で、水平画角が14°35′で垂直画角が10°58′のカメラを用いて、カメラから50cmのところに座った使用者の顔画像を320×240画素の分解能で取り込んだとき、デッドゾーンは (Thx,Thy)=(0.38,0.30)であり、(kx,ky)=(29,44)であった。
頭部が大きく素早く動くとき、それに伴って瞳孔が大きく素早く移動するため、瞳孔が検出できないことがある。このような場合には、特別な処理をしなければ、検出できなかったほうの目が閉じられたと判断され、クリックやドラッグがなされたと判断されてしまい、誤動作につながる。また、カーソルを動かすために頭部を回転している最中に、無意識のうちに片目だけ閉じたりすることがあるが、この場合も同様である。
しかし、幸いなことに、通常のマウスの場合を想定すると、マウスを動かしながらクリックをすることはない。そこで、瞳孔検出判定手段(20)を設け、瞳孔が非検出となったときには、その直前の瞳孔移動のスピード(ΔPxi,ΔPyi)を計算し、それが所定の値より大きいときは、瞳孔が非検出であっても、ボタン押し(クリック操作)信号を出さないようにする。前述の《顔の正面からカーソルがずれるのを防ぐ方法》の項で述べた方法を併用すれば、再度、瞳孔が検出されたときは、視点位置にカーソルが再度現れる(図13参照)。
ここで、頭部の回転の制御が自由にできる使用者の場合は、上記の所定の値は、デッドゾーン(Thx,Thy)と同じ値でも良いし、クリックやドラッグのため、片目を閉じる際に、頭部が動いてしまう使用者の場合には、デッドゾーンの数倍の値を与えたほうが良い。
このような方法は、ユーザがカメラの前から席をはずす場合にも有効である。席をはずす場合には、一般に瞳孔が急激に動き、その直後に瞳孔が検出できなくなる。このようには、カーソルがモニタ画面の端まで移動し、その状態のままクリックがなされることになり、コンピュータの誤動作に通ずるが、それを防ぐことができる。
中程度の病気進行状況にあるALS患者は、目は動くが、頭部動きが鈍くなってくる。そのような場合には、頭部回転と眼球回転の両方を利用して、ゲイン調整の実行を行なえばよい。また、カーソル移動においても、もし、視点を動かしてカーソルが希望の位置に一致しなかった場合は、もう一度視点を動かしてもよいし、頭部を少し回転させてずれを補正することもできる。
ビデオカメラの近くに設置した光源の角膜反射光を検出し、カメラ画像中の瞳孔の中心と角膜反射の中心の相対位置から視点を検出する従来技術(特許文献1参照)においては、瞳孔と角膜反射の両方がカメラに写る条件下でなければ、モニタ画面上の視点は検出できない。角膜反射は、カメラの光軸に対する視線方向の角度が大きいとき、角膜の領域から角膜反射が出てしまい、写らなくなる。したがって、実際にモニタとカメラを設置する場合、モニタの端のできるだけ近い位置にカメラを設定することが望ましい。しかし、モニタの近く、たとえば、図14のように、モニタのすぐ下にカメラを設置した場合、眼鏡をしてユーザが少しでも顔を下に向けると、眼鏡のレンズの表面での反射像がカメラに写り、それが瞳孔や角膜反射に重なり、視線は検出しにくくなるという問題がある。
発明者は、これまでに、同様のシステムにおいて、頭部の動き、特に回転に合わせてカメラ画像中を移動する瞳孔のみを捕らえて、瞳孔の位置のフレーム間の変動をカーソルの移動に対応させるポインティングシステム(瞳孔マウス)について出願している。その方法によれば、図15のようにモニタから角度にして離した位置にカメラを設置することにより、ユーザがカメラのほうに顔を向けなければ眼鏡反射は写らず、瞳孔検出の邪魔にならないという大きな利点がある。しかも、瞳孔は角膜反射とは異なり、カメラの光軸から大きくずれたところにユーザの視線が向いていても、また頭部が大きく回転しても容易に検出できるという利点がある。
2.頭部を自由に回転させることができる操作者から目しか動かない操作者まで、同一の装置およびアルゴリズムで対応できる。
3.瞳孔の検出に不備があっても、カーソル移動に与える悪影響は一時的であり、再度、瞳孔が検出された際には、本来のカーソル位置にもどる。
2 カメラ開口(レンズ)
3 カメラ開口に近い光源
4 カメラ開口から遠い光源
5 LED(発光ダイオード)
11 カメラ
12 カメラ開口に近い光源
13 カメラ開口から遠い光源
14 制御装置
16 モニタ
18 ポインタ(カーソル)
19 較正手段
20 瞳孔検出判定手段
Claims (6)
- コンピュータを操作する者の顔画像を捉えるカメラと、カメラ画像中の瞳孔座標を検出する手段と、検出した瞳孔座標の変位とコンピュータのモニタ画面上のポインタの移動量とが対応するように前記ポインタを移動させる手段と、前記瞳孔座標の変位とポインタ座標の移動量との対応関係を表すゲインの較正を行う手段とからなり、
前記較正を行う手段は、瞳孔座標とポインタ座標との対応関係において設けられた値あって、前記瞳孔座標変位量の前記ポインタの移動を起こさせる閾値であるデッドゾーンの大きさを設定する機能を有する
ことを特徴とする瞳孔検出に基づくポインティング装置。 - さらに瞳孔検出判定手段を備え、該瞳孔検出判定手段は瞳孔の存在から不存在への移行を検出すると、ポインタ位置におけるクリック操作信号を発生するとともに、瞳孔が不存在になる直前の瞳孔移動の速度が一定値を超える場合には、前記クリック操作信号の発生を抑制するものであることを特徴とする請求項1記載の瞳孔検出に基づくポインティング装置。
- さらに瞳孔検出判定手段を備え、該瞳孔検出判定手段は瞳孔の不存在から存在への移行を検出すると、新たに検出した瞳孔位置に対応するポインタ位置に対応する位置にまでポインタを移動させる信号を発生するものであることを特徴とする請求項1記載の瞳孔検出に基づくポインティング装置。
- コンピュータを操作する者の顔画像をカメラで捉えるステップと、カメラ画像中の瞳孔座標を検出するステップと、検出した瞳孔座標の変位とコンピュータのモニタ画面上のポインタの移動量とが対応するように前記ポインタを移動させるステップと、前記瞳孔座標の変位とポインタ座標の移動量との対応関係を表すゲインの較正を行うステップとからなり、
前記較正を行うステップは、瞳孔座標とポインタ座標との対応関係において設けられた値あって、前記瞳孔座標変位量の前記ポインタの移動を起こさせる閾値であるデッドゾーンの大きさを設定する機能を有する
ことを特徴とする瞳孔検出に基づくポインティング方法。 - さらに瞳孔検出判定ステップを備え、該瞳孔検出判定ステップは瞳孔の存在から不存在への移行を検出すると、ポインタ位置におけるクリック操作信号を発生するとともに、瞳孔移動の速度が一定値を超える場合には、前記クリック操作信号の発生を抑制するものであることを特徴とする請求項4記載の瞳孔検出に基づくポインティング方法。
- さらに瞳孔検出判定ステップを備え、該瞳孔検出判定ステップは瞳孔の不存在から存在への移行を検出すると、新たに検出した瞳孔位置に対応するポインタ位置に対応する位置にまでポインタを移動させる信号を発生するものであることを特徴とする請求項4記載の瞳孔検出に基づくポインティング方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005127386A JP4951751B2 (ja) | 2005-04-26 | 2005-04-26 | 瞳孔検出に基づくポインティング装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005127386A JP4951751B2 (ja) | 2005-04-26 | 2005-04-26 | 瞳孔検出に基づくポインティング装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006309291A JP2006309291A (ja) | 2006-11-09 |
JP4951751B2 true JP4951751B2 (ja) | 2012-06-13 |
Family
ID=37476150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005127386A Active JP4951751B2 (ja) | 2005-04-26 | 2005-04-26 | 瞳孔検出に基づくポインティング装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4951751B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140132906A (ko) * | 2013-05-09 | 2014-11-19 | 에스케이플래닛 주식회사 | 눈동자 추적을 이용한 모바일 툴팁 방법 및 장치 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4411387B2 (ja) | 2007-08-07 | 2010-02-10 | 学校法人 大阪電気通信大学 | 動体検出装置、動体検出方法、ポインティングデバイス、コンピュータプログラム及び記憶媒体 |
JP5004099B2 (ja) * | 2008-07-11 | 2012-08-22 | 国立大学法人静岡大学 | カーソル移動制御方法及びカーソル移動制御装置 |
JP4852627B2 (ja) * | 2009-05-14 | 2012-01-11 | 株式会社エヌ・ティ・ティ・ドコモ | 入力装置及び入力方法 |
EP2696262A1 (en) * | 2011-04-07 | 2014-02-12 | NEC CASIO Mobile Communications, Ltd. | Input device, input method, and computer program |
KR101365083B1 (ko) * | 2012-03-06 | 2014-02-21 | 모젼스랩(주) | 모션 인식을 통한 인터페이스 장치 및 이의 제어방법 |
WO2014181403A1 (ja) * | 2013-05-08 | 2014-11-13 | 富士通株式会社 | 入力装置及び入力プログラム |
WO2017013913A1 (ja) * | 2015-07-17 | 2017-01-26 | ソニー株式会社 | 視線検出装置、アイウェア端末、視線検出方法及びプログラム |
JP7173836B2 (ja) * | 2018-11-05 | 2022-11-16 | 京セラ株式会社 | コントローラ、位置判定装置、位置判定システム、表示システム、プログラム、および記録媒体 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61243508A (ja) * | 1985-04-22 | 1986-10-29 | Nippon Hoso Kyokai <Nhk> | 意志伝達装置 |
JP3796019B2 (ja) * | 1997-09-02 | 2006-07-12 | 三洋電機株式会社 | 視線検出装置 |
JP2000010723A (ja) * | 1998-06-18 | 2000-01-14 | Mr System Kenkyusho:Kk | 視線センサのキャリブレーション方法、視線入力装置およびプログラム記憶媒体 |
JP2000029617A (ja) * | 1998-07-08 | 2000-01-28 | Olympus Optical Co Ltd | 映像表示装置 |
JP2003280805A (ja) * | 2002-03-26 | 2003-10-02 | Gen Tec:Kk | データ入力装置 |
-
2005
- 2005-04-26 JP JP2005127386A patent/JP4951751B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140132906A (ko) * | 2013-05-09 | 2014-11-19 | 에스케이플래닛 주식회사 | 눈동자 추적을 이용한 모바일 툴팁 방법 및 장치 |
KR102181897B1 (ko) * | 2013-05-09 | 2020-11-23 | 에스케이플래닛 주식회사 | 눈동자 추적을 이용한 모바일 툴팁 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP2006309291A (ja) | 2006-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4951751B2 (ja) | 瞳孔検出に基づくポインティング装置及び方法 | |
TWI704501B (zh) | 可由頭部操控的電子裝置與其操作方法 | |
US10257507B1 (en) | Time-of-flight depth sensing for eye tracking | |
JP4491604B2 (ja) | 瞳孔検出装置 | |
US11917126B2 (en) | Systems and methods for eye tracking in virtual reality and augmented reality applications | |
TWI545947B (zh) | 具有影像擷取及分析模組之顯示裝置 | |
US7783077B2 (en) | Eye gaze tracker system and method | |
CN110716639B (zh) | 具有基于眼睛活动的显示器操作的电子设备 | |
US20160370859A1 (en) | Pupil detection device | |
US20060281969A1 (en) | System and method for operation without touch by operators | |
US20030123027A1 (en) | System and method for eye gaze tracking using corneal image mapping | |
US20110170060A1 (en) | Gaze Tracking Using Polarized Light | |
WO2010003410A1 (en) | Eye gaze tracking | |
JP2009031334A (ja) | プロジェクタ及びプロジェクタの投射方法 | |
US10466780B1 (en) | Systems and methods for eye tracking calibration, eye vergence gestures for interface control, and visual aids therefor | |
Lander et al. | hEYEbrid: A hybrid approach for mobile calibration-free gaze estimation | |
KR20200043786A (ko) | 화면 제어 방법 및 표시 장치 | |
WO2020080107A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2005261728A (ja) | 視線方向認識装置及び視線方向認識プログラム | |
CN205750115U (zh) | 可穿戴计算装置和具有它的可穿戴设备 | |
JPH11282617A (ja) | 視線入力装置 | |
US11874961B2 (en) | Managing display of an icon in an eye tracking augmented reality device | |
KR20140139743A (ko) | 영상 제어 방법 및 이를 이용한 영상 표시 장치 | |
JP2003256852A (ja) | 注視判定方法 | |
JP2024007776A (ja) | 画像処理装置、画像処理方法、及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070316 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070316 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090413 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090421 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090622 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090908 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091203 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100120 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20100521 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |