JP3630792B2 - Gaze detection device and optical device - Google Patents
Gaze detection device and optical device Download PDFInfo
- Publication number
- JP3630792B2 JP3630792B2 JP23211795A JP23211795A JP3630792B2 JP 3630792 B2 JP3630792 B2 JP 3630792B2 JP 23211795 A JP23211795 A JP 23211795A JP 23211795 A JP23211795 A JP 23211795A JP 3630792 B2 JP3630792 B2 JP 3630792B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- line
- pupil
- area
- sensor
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Focusing (AREA)
- Automatic Focus Adjustment (AREA)
- Eye Examination Apparatus (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、観察者の視線を検出する視線検出装置及び該装置を具備したカメラ等の光学装置の改良に関するものである。
【0002】
【従来の技術】
従来より、撮影者が観察面上のどの位置を観察しているかを検出する、いわゆる視線(視軸)を検出する装置(例えばアイカメラ)が種々提供されている。例えば特開平1−274736号公報においては、光源からの平行光束を撮影者の眼球の前眼部へ投射し、角膜からの反射光による角膜反射像と瞳孔の結像位置を利用して注視点を求めている。また同公報において、注視点検出装置を一眼レフカメラに配設し撮影者の注視点情報を用いて撮影レンズの自動焦点調節を行う例を開示している。
【0003】
図12は視線検出原理を説明するための図であり、同図において、15は撮影者の眼球、16は角膜、17は虹彩である。
【0004】
以下この図を用いて視線の検出方法を説明する。
【0005】
光源13bより投射された赤外光は、観察者の眼球15の角膜16を照射する。このとき角膜16の表面で反射した赤外光の一部により形成される角膜反射像d(虚像)は受光レンズ12により集光され、イメージセンサ14上の位置d´に結像する。同様に光源13aにより投射された赤外光は、眼球15の角膜16を照明する。このとき、角膜16の表面で反射した赤外光の一部により形成された角膜反射像eは受光レンズ12により集光され、イメージセンサ14上の位置e´に結像する。
【0006】
又、虹彩17の端部a,bからの光束は、受光レンズ12を介してイメージセンサ14上の位置a´,b´に該端部a,bの像を結像する。受光レンズ12の光軸に対する眼球15の光軸の回転角θが小さい場合、虹彩17の端部a,bのx座標をxa,xbとすると、瞳孔19の中心位置cの座標xcは、
xc≒(xa+xb)/2
と表される。
【0007】
又、角膜反射像d及びeの中点のx座標と角膜16の曲率中心oのx座標xoとは略一致する。このため角膜反射像の発生位置d,eのx座標をxd,xe、角膜16の曲率中心oと瞳孔19の中心cまでの標準的な距離をOCとすると、眼球15の光軸15aの回転角θxは、
OC*SINθx≒(xd+xe)/2−xc …………(1)
の関係式を略満足する。このためイメージセンサ14上に投影された眼球15の各特徴点(角膜反射像及び瞳孔の中心)の位置を検出することにより眼球15の光軸15aの回転角θを求めることができる。
【0008】
眼球15の光軸15aの回転角は(1)式より、
β*OC*SINθx≒{(xpo−δx)−xic}*pitch…(2)
β*OC*SINθy≒{(ypo−δy)−yic}*pitch…(3)
と求められる。ここで、θxはz−x平面内での眼球光軸の回転角、θyはy−z平面内での眼球光軸の回転角である。(xpo,ypo)はイメージセンサ14上の2個の角膜反射像の中点の座標、(xic,yic)はイメージセンサ14上の瞳孔中心の座標である。pitchはイメージセンサ14の画素ピッチである。又、βは受光レンズ12に対する眼球15の位置により決まる結像倍率で、実質的には2個の角膜反射像の間隔の関数として求められる。
【0009】
δx,δyは角膜反射像の中点の座標を補正する補正項であり、撮影者の眼球を平行光ではなく発散光にて照明していることにより生じる誤差を補正する補正項及び、δyに関しては、撮影者の眼球を下まぶたの方から発散光にて照明していることにより生じるオフセット成分を補正する補正項も含まれている。
【0010】
次に、眼球回転角と注視点の座標の関係から撮影者の注視点を求める。眼球回転角と注視点の座標の関係は、撮影者の眼球光軸の回転角(θx,θy)とすると、撮影者の観察面上の注視点(x,y)は、カメラの姿勢が横位置の場合、
x=m*(θx+Δ) …………(4)
y=m*θy …………(5)
と求められる。ここで、x方向はカメラの姿勢が横位置の場合の撮影者に対して水平方向、y方向はカメラの姿勢が横位置の場合の撮影者に対して垂直方向を示している。mは眼球の回転角からピント板上の座標に変換する変換係数、Δは眼球光軸15aと視軸(注視点)とのなす角である。
【0011】
この時の変換係数m、Δには個人差があるため、この変換係数を含んだ形での個人差補正データを予め求めておく必要がある。個人差補正データは、撮影者に所定の座標を注視してもらい、そのときの眼球光軸の回転角を求める事で算出する事ができる。
【0012】
この様に個人差補正データを求めるための検出動作をキャリブレーションといい、キャリブレーションにより求めた個人差補正データをキャリブレーションデータという。
【0013】
観察面上(x1,0)を注視したときの眼球の回転角を(θx1,0)、(x2,0)を注視したときの眼球の回転角を(θx2,0)とすると、以下の式で個人差データを求める事ができる。
【0014】
m=(x1−x2)/(θx1−θx2) ……(6)
Δ=(x2・θx1−x1・θx2)/(x1−x2) ……(7)
尚、個人差データの入力は、カメラの姿勢毎に入力することが望ましい。
【0015】
このようにして、角膜反射像や瞳孔の位置から撮影者の注視点を求めることができるが、センサ上の眼球像から角膜反射像や瞳孔の位置などの特徴点を求める方法は、特開平4−347133号等に提案されている。
【0016】
また、センサの全画素を読み出さないで時間を短縮する方法について特開平6−254053号に提案されている。同提案では、眼球像の瞳孔部分の輝度が非常に低いことから、画像上の低輝度部分を検出し、その部分だけを読み出し(領域制限読み出し)、演算することによって視線検出の時間を短縮することが提案されている。
【0017】
更に、読み出したセンサ画像から瞳孔のエッジを検出するのも最低輝度値を基準に検出することが開示されている。
【0018】
【発明が解決しようとする課題】
しかしながら、開示されている技術では、瞳孔が最低輝度であるという前提の元で検出を行っているので、その前提が崩れると視線検出がうまく出来ない。
【0019】
瞳孔が最低輝度でない原因及び最低輝度を基準として検出を行う場合の不具合として以下のものがある。
【0020】
1)センサの周辺に照明光が行き渡らず、光量落ちする。
【0021】
2)眼鏡(メガネ)の金属フレーム等の全反射物があるため、その部分の光が全くセンサ上に導かれない。すなわちフレーム部分だけ暗黒となる。
【0022】
3)全体的に輝度が低いため、適当な閾値の設定が出来ない。
【0023】
4)明るさにより瞳孔の大きさが変化するのに、領域制限読み出しの際、明るさがかわっても領域の広さは同じである。
【0024】
次にそれぞれの問題を述べる。
【0025】
1)センサの周辺部が最低輝度になると、その部分を中心として読み出し領域の決定を行うが、この読み出し領域に瞳孔及びP像が全て含まれていないと視線検出ができない。
【0026】
2)眼鏡のフレームがセンサ上で暗黒になる場合が有り、瞳孔部分の輝度より低い輝度になることがある。ここを瞳孔であると誤検出すると、上記1)と同様に、フレーム部分を中心として読み出し領域の決定を行ってしまい、読み出し領域に瞳孔及び角膜反射像(プルキンエ像:P像)が全て含まれていない為に視線検出ができない。
【0027】
3)全体に輝度が低いときは、閾値の設定がうまく行かない。瞳孔は最低輝度を示すこともあるが瞳孔とほぼ同じ輝度になる部分が多く、瞳孔とそれ以外の部分の区別が出来ない。このため、読み出し領域の決定が出来ない。
【0028】
4)瞳孔の大きさは明るいときは小さく、暗いときは大きくなる。これを同じ大きさで領域を決定していては無駄が出てしまう。
【0029】
さらにこれらの他、ゴースト等の影響で瞳孔部分の輝度が持ち上がってしまう現象がある。このような場合、瞳孔を最低輝度を基準に検出していると瞳孔のエッジが検出できない。
【0032】
(発明の目的)本発明の目的は、観察者が眼鏡使用している為に瞳孔部分の輝度よりも低い輝度部分の画像情報が得られ、この部分を瞳孔部分として誤って検出してしまうといった事を防止することのできる視線検出装置及び光学装置を提供することにある。
【0035】
【課題を解決するための手段】
上記目的を達成するために、請求項1〜5に記載の各本発明は、眼球像を含む画像情報を入力する画像入力手段と、該画像入力手段にて得られる画像情報の特徴点を含む特徴領域を検出する特徴領域検出手段と、前記特徴領域に基づいて前記画像情報の領域を設定する領域設定手段とを備え、前記設定された領域の画像情報に基づいて視線検出を行う視線検出装置において、前記特徴領域の形状を所定の形状と比較する形状比較手段を具備し、該形状比較手段にて前記特徴領域が所定の形状であると判断された場合に、前記領域設定手段が領域設定を実行し直すことを特徴とするものである。また、請求項7に記載の本発明は、請求項1〜5のいずれかに記載の視線検出装置を具備した光学装置とするものである。
【0040】
【発明の実施の形態】
以下、本発明を図示の実施の形態に基づいて詳細に説明する。
【0041】
図1は本発明のカメラ本体に内蔵された電気回路の要部ブロック図である。
【0042】
カメラ本体に内蔵されたカメラ制御手段であるところのマイクロコンピュータの中央処理装置(以下、CPUと称す)100には、視線検出回路101,姿勢検知回路102,自動焦点検出回路103,信号入力回路104,LCD駆動回路105,LED駆動回路106,IRED駆動回路107が接続されている。又、不図示ではあるが視撮影レンズ内に配置された焦点調節回路、絞り駆動回路とはマウント接点を介して信号の伝達がなされる。
【0043】
CPU100に付随した記憶手段としてのEEPROM100aは、フィルムカウンタその他の撮影情報を記憶すると共にキャリブレーションを行って得た個人差補正データを記憶する。
【0044】
視線検出回路101は、イメージセンサ14(CCD−EYE)からの眼球像の出力をCPU100に送信する。CPU100はイメージセンサ14からの眼球像信号をCPU内部のA/D変換手段によりA/D変換し、この像情報から視線検出に必要な眼球像の各特徴点を所定のアルゴリズムに従って抽出し、さらに各特徴点の位置から撮影者の眼球の回転角を算出する。
【0045】
姿勢検知回路102は、複数のペアのフォトセンサとLED(HV1,HV2)及び重力により可動な遮蔽物から成り、重力により遮蔽物が動きフォトセンサの出力が変化することにより姿勢を検知する。フォトセンサは互いに90°程度の角度で配置されそれぞれ水平軸からも角度をもって配置される。
【0046】
自動焦点検出回路103は、複数のラインセンサから得た光電変換電圧をCPU100に送り、CPU100では内蔵されたA/D変換装置によってラインセンサ信号を順次A/D変換し、所定の演算を行って焦点検出を行う。
【0047】
信号入力回路104は、各種スイッチからの信号入力を行い、スイッチの状態が変化するとCPU100に割り込み信号を発生させる。
【0048】
SW−1はレリーズ釦の第1ストロークでONし、測光,AF(オートフォーカス),視線検出動作を開始するスイッチ、SW−2はレリーズ釦の第2ストロークでONするレリーズスイッチ、SW−MDIALはカメラの各種撮影モードの他、キャリブレーションモードやカメラのロックポジションを選択するモードダイアルである。SW−CALDELは個人差補正データ消去スイッチである。SWーDIAL1とSW−DIAL2は電子ダイヤルスイッチで、信号入力回路のアップダウンカウンタに入力され、ここで前記電子ダイヤルの回転クリック量をカウントする。
【0049】
LCD駆動回路105は、ファインダ内LCD24及びモニタ用LCD42に各種情報を表示する他、不図示のブザーを駆動してブザー音を発生させる。
【0050】
LED駆動回路106は、ファインダ内の測距点をスーパーインポーズ照明するためのLED21(LED−L2,LED−L1,LED−C,LED−R1,LED−R2)を点灯させるための回路である。LED−L2,LED−L1,LED−C,LED−R1,LED−R2はそれぞれファインダ内の焦点検出(測距点)マークFP−L2,FP−L1,FP−C,FP−R1,FP−R2に対応しており、LED21を点灯させることにより、ファインダ内の測距点マークが照明される。
【0051】
IRED駆動回路107は、撮影者の眼球を赤外光で照明するための赤外LED(IRED−0,IRED−1,IRED−2,IRED−3,IRED−4,IRED−5,IRED−6,IRED−7)を点灯させるための回路である。この回路には過電流を防止する為の回路や長時間の通電による事故を防止するための安全回路が組み込まれている。
【0052】
IREDは2つがペアで使用され、眼球に対して下側から照明される。具体的なIREDの位置を示した図を図2に示す。
【0053】
カメラの姿勢が横位置の場合、裸眼用としてIRED−0,IRED−1が、又眼鏡用としてIRED−4,IRED−5が、それぞれペアとして使用され、グリップ上の縦位置では、裸眼用としてIRED−3,IRED−0が、又眼鏡用としてIRED−7,IRED−4が、それぞれペアとして使用される。また、グリップ下の縦位置では、裸眼用としてIRED−1,IRED−2が、又眼鏡用としてIRED−5,IRED−6が、それぞれペアとして使用される。つまり、どの姿勢においても裸眼の場合は間隔の狭いIREDペアが使用され、眼鏡や眼球の距離が遠い場合は間隔の広いIREDペアが使用される。
【0054】
スイッチSW−1が押されると、所定の動作を実行した後、図3の「視線メイン」フローがコールされる。以下これに従って視線検出動作の全体の説明を行う。
【0055】
サブルーチン「視線メイン」がコールされると、ステップ#M01からプログラムを実行していく。視線検出ルーチンは、必ずしも1回実行されただけで視線位置を出力するわけではなく、複数回実行し(何回か制御方法を変えて試してみる)、最終的に注視点の位置を検出するようになっている。
【0056】
まず、設定されたキャリブレーション番号をチェックし、キャリブレーション番号に対応した個人差補正データをEEPROM100aから読み込む(#M02)。
【0057】
正しくないキャリブレーション番号や、キャリブレーション番号が設定されていない場合(視線がOFFになっている場合も含む)のチェックも行い(#M03)、正常でなければステップ#M09へ分岐し、リターンする。
【0058】
キャリブレーション番号が正しく設定されていて、個人差補正データが読み込めたら、視線検出パラメータの初期化を行う(#M04)。ここでは、視線検出状態を示すパラメータの初期化を初回にのみ行う。サブルーチン「視線メイン」が繰り返し実行される場合の2回目以降は実行されない。
【0059】
次に、視線検出用エリアセンサの蓄積をサブルーチン「YBASIS」で行う(#M05)。このサブルーチンの中では、眼球を照明するIREDとその駆動電流の決定を行い、センサの予備蓄積を行って、視線検出を行うときの蓄積制御を決定する。決定した蓄積制御方法で眼球像の画像データを得る。
【0060】
次に、画像データの特徴点抽出のためのパラメータの初期化を行う(#M06)。そして、蓄積されたデータを読み出しつつ特徴点を抽出するサブルーチン「Read_Detect」(#M07)を実行する。このサブルーチンの内部動作は後で詳しく説明する。
【0061】
センサの読み出し及び特徴点抽出が終了すると、検出された特徴点から注視点位置の計算をサブルーチン「P_Process」(#M08)で行う。ここでは、「Read_Detect」で求めた瞳孔エッジ座標から、瞳孔円の中心座標、及び、照明光の角膜反射像(プリキンエ像:P像)の座標を使って、所定の計算式から眼球の回転角を求める。眼球の回転角が検出できたら、個人差補正データを用いてその人の注視する点を計算する。
【0062】
最後にこのプログラムをリターンする(#M10)。
【0063】
1回で注視点が求められない場合は繰り返し「視線メイン」がコールされ、別の制御方法(照明,蓄積制御方法、演算パラメータを変えて行う)で視線検出を行う。
【0064】
次に、上記ステップ#M07で実行されるサブルーチン「Read_Detect 」について、図4のフローチャートにより説明する。サブルーチン「Read_Detect 」は、センサの蓄積が終了した後にコールされる。
【0065】
サブルーチン「Read_Detect」がコールされると、ステップ#R01から実行していく。まず、センサのブロック読み機能を使って、センサ全体を荒くみる(#R02)。センサのブロック読み機能とは、センサの複数の画素をまとめたデータを出力する機能で、センサ出力を「4×4」の16画素を1つのブロックにして出力(「4×4」の平均値を出力)することができる。
【0066】
こうすることにより、例えば「100×70」画素のセンサ出力を、「25×18」ブロックのデータで全体の画像を荒く見ることができる。この様にデータ数を少なくすることで「100×70」画素のメモリが確保できなくても、「25×18」画素分のメモリを確保する事は、カメラのような機器の組み込みマイコンでも可能である。
【0067】
又、ブロック出力がハード的に得られないセンサでも、ソフト的に平均を求めてデータ数を減らすことで、同等の演算を行うことができる。又必ずしも平均値である必要はなく、全センサ画素を間引いて使ってもよい。
【0068】
次に、ブロック読み出しした画像の最大値,最小値,平均値を求める(#R03)。最大値はプルキンエ像(以後、P像と記す)を求める時に使用し、最小値は瞳孔を探すときに使用する。平均値は、画像全体の明るさのデータとして使用する。
【0069】
ここで、ブロック画像の最低輝度を検出する範囲と、げた上げ(重み付け)について図5を使って説明する。
【0070】
この例では画像の左下の方が部分的に暗くなっており、アドレス(xmin ’,ymin ’)部分が最低輝度になっている〔図5(a)参照〕。ブロック画像の全体を検索して最低輝度を探すと、このように瞳孔以外の部分を探してしまう場合がある。そこで、まず最低輝度を検出する部分を中央のエリア1(中央を中心とする水平:xg1、垂直:yg1の範囲)の部分に限定する。中央の部分に限定するのは、
1)周辺は照明のむらや光量落ちで暗くなってしまう。
【0071】
2)眼球は画像の周辺にない(もし、画像の周辺にあっても視線検出が不能)。
という理由からである。
【0072】
次に、エリア1の範囲でエリア2(中央を中心とする水平:xg2、垂直:yg2の範囲)の外側のドーナツ型の領域には、げた量(重み付け量)wt1のげた上げを行う。エリア2の範囲でエリア3(中央を中心とする水平:xg3、垂直:yg3の範囲)の外側のドーナツ型の領域には、げた量wt2のげた上げを行う〔図5(b)参照〕。エリア3にはげた量wt3のげた上げを行う。げた量は「wt1>wt2>wt3」になっていて、中央部分ほどげた量が少なく周辺ほどげた量が大きくなっている。この為、最低輝度の位置は中央部分が選ばれ易くなる。
【0073】
ブロック位置に対応したげた量をwt(x,y)とし、ブロック画像の値を、b1(x,y)とすると、最低輝度位置は、
〔b1(x,y)+wt(x,y)〕(但し、計算範囲はエリア1内)
が最低になる(x,y)の位置として求めることが出来る。この位置を(xmin ,ymin )とすれば、最低輝度MINblkはb1(xmin ,ymin )として求められる。すなわち、げた上げして求めた最低値からげたの値を引いた元の画像の値を最低値として記憶する〔図5(c)参照〕。
【0074】
実際には、wt1=4,wt2=2,wt3=0,xg1=18,yg1=14,xg2=12,yg2=8,xg3=6,yg3=4に設定されている。
【0075】
平均輝度を計算する場合は、げた上げを行わずに計算する。
【0076】
図4のフローチャートの説明に戻り、次にブロック像の最低値と所定の閾値を使って瞬きの検知を行う(#R04)。瞬きの最中は視線検出不能なのでその処理を行う。例えば、今回の視線検出を中止して次回全く同じ制御で視線検出を行ったりする。
【0077】
次に、読み出し範囲の初期化を行う。通常全体範囲をはじめに指定しておく(#R05)。センサをカメラに取り付けた状態で周辺がけられてしまうような場合には、その部分を除いたけられないエリアを指定する。
【0078】
次いで、ブロックデータから求めた平均輝度(BlkAve)と閾値を比較する(#R06)。平均輝度が低ければステップ#R08へ進み、ブロックデータによる瞳孔位置推定を行わない。これは全体の輝度が低いとセンサの周辺部分が低くなり、必ずしも瞳孔位置が最低輝度とはならなくなってしまう為、最低輝度を使って瞳孔位置推定を行うと正しく瞳孔位置を推定することができない。平均輝度が閾値より高ければ、ステップ#R07へ分岐し、サブルーチン「瞳孔位置推定」をコールして、瞳孔位置の推定を行う。
【0079】
ステップ#R08では、サブルーチン「読み出し&逐次処理」をコールして、決定した領域内のセンサ読み出し及び逐次処理で特徴点抽出を行い、リターンする(#R09)。
【0080】
上記の様に、ブロック画像にげた上げ(重み付け)を行って、最低輝度位置を検出するため、センサの周辺に照明光が行き渡らず、光量落ちした様な場合でも、正しい瞳孔位置を推定できるようにした。
【0081】
さらに、全体の輝度が低いときには、瞳孔位置を検出するのが難しくなるため、瞳孔位置推定を行わない。このため、無理やり瞳孔推定を行って時間を無駄にしたり、誤推定を行うことがない。
【0082】
次に、上記図4のステップ#R07にて実行されるサブルーチン「瞳孔位置推定」について、図6のフローチャートを使って説明する。
【0083】
サブルーチン「瞳孔位置推定」がコールされると(#E01)、まず水平方向の瞳孔の広がりをサブルーチン「BlkHorArea」で検出する。ブロック化した画像データをb1(x,y)で表し(x:水平方向、y:垂直方向)、図4のステップ#R03で求めた最低輝度を「MINblk」としてそのアドレスをxmin0,ymin0とする。
【0084】
まず、垂直方向のアドレスymin0で輝度が「MINblk+α」以下の範囲を求める。次に垂直方向の範囲を、水平アドレスxmin0位置で輝度が「MINblk+α」以下の範囲を求める(#E03)。水平アドレスは必ずしもxmin0の位置でなくてもよく、例えばステップ#E02で求めた範囲の中心位置からで垂直方向に範囲を求めても良い。
【0085】
ここで、瞳孔の大きさを平面的に探さないのは、周辺の暗部と瞳孔の低輝度部がつながっている場合〔図7(a)参照〕、平面的に広さを検出すると瞳孔以外の部分も含まれてしまい、正しい瞳孔位置が検出出来ないからである〔図7(b)参照〕。
【0086】
ところが、検出した最低輝度位置から、水平方向及び垂直方向のみに検出を行えば、正しい瞳孔の大きさを検出することが可能である〔図7(c)参照〕。
【0087】
次に、眼鏡フレーム判定を行う。
【0088】
ステップ#E04で眼鏡フレームで無いと判定されたら、上記ステップ#E02,上記ステップ#E03で計算した範囲の中心を求める(#E05)。つまり上記ステップ#E02で求めた水平方向の範囲の中心と、ステップ#E03で求めた垂直方向の範囲の中心を求める。
【0089】次に、全体の明るさを判定する(#E06)。ブロック画像の平均値BlkAveと閾値ThrHI とを比較して、閾値より小さければステップ#E07へ分岐する。このステップ#E07では、ブロック画像からP像の位置を検出する。全体の輝度が高いとブロック画像からプルキンエ像部分を検出するのが難しくなるのと、P像の影響で瞳孔範囲が小さく検出されることが無いので、P像位置の検出を行わない。
【0090】
輝度が低い場合、ブロック画像を使ってP像位置を検出する(#E07)。孤立して輝度が高い点をP像として検出する。カメラの姿勢が横位置の場合、垂直方向で孤立した値を検出する。水平方向には、2つのP像があるため、2つのブロックが連続して高輝度になっていることがある。この為、水平方向にはブロック像によるP像検出を行わない。
【0091】
次に、検出したP像とその回りを最低輝度レベルに置き換える(#E08)。最低輝度レベルに置き換えることで、上記ステップ#E02及び#E03で行ったのと同じ処理を行って再度瞳孔の大きさを推定することが出来る。
【0092】
ステップ#E09及び#E10では、再び瞳孔の水平方向及び垂直方向の広がりを求める。検出は、ステップ#E05で求めた瞳孔中心位置から行う。
【0093】
次に、ブロックの画素位置から実際のセンサ上の位置を求める(#E11)。最後に検出した瞳孔の広さにマージンを加え、読み出し領域を決定する(#E12)。
【0094】
瞳孔の左側のx座標をxpp1 ,右側をxpp2 ,上側をypp1 ,下側をypp2 とし、領域の余裕量(瞳孔分)をmag、P像分をmagpとすると、読み出すセンサの領域は、水平方向は「xpp1 −mag」から「xpp2 +mag」まで、垂直方向は「ypp1 −mag」から「ypp2 +mag+magp」まである。
【0095】
カメラの姿勢が横位置の場合、P像は瞳孔の下に来るため、下方向の読み出し領域にはmagp分だけ他よりも余裕を持たせてある。magpは、カメラの姿勢が縦位置の場合には、x座標の下側に広くなる様に余裕をもたせる。
【0096】
余裕量mag,magpはセンサ全体の輝度により変化し、輝度が高くなると瞳孔が小さくなるので、余裕量も小さくなるように設定する。
【0097】
ステップ#R03で求めた平均輝度
センサの読み出し領域が設定されたら、サブルーチンをリターンする(#E15)。
【0098】
このように、全体の明るさで、瞳孔推定で推定した瞳孔領域を変えることによって、明るいときに瞳孔が小さくなっても無駄な領域を読み出すことがなく、さらに、暗い時も瞳孔がはみ出さない領域を設定することが出来る。
【0099】
ここで、図6のステップ#E04の説明を行う。
【0100】
眼鏡のフレームが画像内に入り込むと、黒く細長い形として現れることがある。これは、眼鏡のフレーム部分が全反射してしまうため、センサ上に照明の光が全くこなくなるからである。
【0101】
図8(a)に示したように、横位置ではセンサの上下方向の幅があまり大きくないので、眼鏡フレームの暗黒部分がセンサ外に出てしまったために問題にならなかったが、図8(b)に示すように、縦位置では眼鏡のフレームの暗黒部分がセンサ内に入り込んでしまうため、瞳孔位置検出に悪影響を及ぼすことがある。そこで、眼鏡のフレームと瞳孔とを識別し、正しい瞳孔のみを検出する必要がある。そこで、眼鏡フレームの形状に着目し、ステップ#E02と#E03で検出した低輝度部分の形で判定を行う。
【0102】
具体的には、縦位置の場合、水平方向(センサ上x軸方向)が短く、かつ、垂直方向(センサ上y軸方向)が長い場合を判定する。図8(c)のAの位置を最低輝度として認識できた場合、これは瞳孔部分が正しく選ばれたので、低輝度部の水平方向の長さxdと垂直方向の長さydは同程度の大きさになって、どちらかが大きかったり小さかったりしていない。ところが、もし、B部分を最低輝度として検出した場合、水平方向の長さxfは非常に短く、垂直方向の長さyfは極端に長い。この特徴から眼鏡フレームを識別する。
【0103】
眼鏡フレームの水平方向の閾値をxfth 、垂直方向の閾値をyfch 、低輝度部分の水平方向の長さをldkx、垂直方向の長さをldky とすると、
ldkx <xfth かつ ldky >yfth
をみたす場合、眼鏡フレームと判定する。
【0104】
具体的には、xfth =5,yfth =10(縦位置の場合)で検出を行っている。図に合せて縦位置で説明を行ったが、横位置では水平方向と垂直方向が入れかわる。フレームの判定が垂直方向(縦位置)の長さだけで判定できないのは、画面全体が暗い場合、低輝度部分の大きさが大きくなってしまうことからである。
【0105】
眼鏡フレームと判定すると、ステップ#E13に分岐する。ここで、瞳孔部分がうまく推定できなかったため、領域制限のパラメータを初期化し、ブロックデータから求めた最低輝度値のデータも眼鏡フレーム部分の間違った値になっているのでデフォルト値に設定し直す(#E14)。
【0106】
この例では眼鏡フレームと判定された場合は領域制限をやめてしまうが、反対に眼鏡フレーム部分を取り除いた部分だけを計算するように領域の制限を行ってもよい。又、これとは別に、眼鏡フレーム部分を排除して瞳孔部分を推定するように再計算してもよい。
【0107】
処理が終了するとステップ#E15へ進み、サブルーチンをリターンする。
【0108】
このように、眼鏡フレームの特徴を判別し、眼鏡フレームを判別したときは所定の領域で視線演算を行うようにしたため、間違った領域を設定することがない。
【0109】
フローチャートでは、説明していないが、眼鏡フレームと判定した場合それを除く領域を設定するようにしても良いし、眼鏡フレーム領域を除いた領域で再度瞳孔位置を推定し直してもよい。
【0110】
このようにして、瞳孔位置の誤推定を排除できる。
【0111】
次に、図4のサブルーチン「読み出し&逐次処理」について、図9のフローチャートを用いて説明する。
【0112】
このサブルーチン「読み出し&逐次処理」がコールされると(#x01)、まず、センサに読み出し開始通信を行う(#x02)。次に、センサ出力をA/D変換する為にA/D変換の初期化を行う(#x03)。次いで、逐次計算を行うためのパラメータの初期化や、制限された領域だけを読み出すためのパルス数の設定を行う(#x04)。
【0113】
次に、これから読む水平ラインが読み出す領域を含むかどうかを判定し(#x05)、読み出し領域外でならステップ(#x19)分岐する。そして、ステップ#x19で、水平ラインを1ライン読み飛ばすための、水平ライン読み飛ばしパルスを出力する。このパルスがセンサに送られるとセンサは水平の1ラインの読み出しを行わない。
【0114】
上記ステップ#x05で、これから読む水平ラインが読み出す領域を含んでいる場合、ステップ#x06へ分岐する。そしてここでは、1ラインの読み出しを行う。まず、1画素毎の読み出しパルスを送り、センサからの出力をA/D変換し所定のRAMに一時的に格納する。読み出す水平ラインの中でも指定された領域外の部分はA/D変換を行わず、読み出しパルスを高速に出力することによって、指定された領域のデータだけを短時間で得ることができる。
【0115】
これらの動作はソフト的にタイミングを作って動作させる以外にも、ハード的にパルス出力,A/D変換,データ格納を行う様な構成にしても良い。この場合、A/D変換やパルス出力にソフトが介在する必要がないためその間、ソフトは特徴点の抽出を行うことができる。
【0116】
次に、カメラの位置が縦位置かどうかを判定し(#x07)、縦位置なら読み出しライン数をAレジスタに入れ(#x08)、横位置なら(縦位置でないなら)、今まで検出した瞳孔エッジの総数を計算し、Aレジスタに格納する(#x09)。次いで、Aレジスタが0かどうかを判定し(#x11)、0で無いなら(#x12)へ分岐し、サブルーチン「P像検出」を実行する(#x12)。
【0117】
カメラ位置が縦位置の場合、少なくとも1ライン以上センサの読み出しが終了してから「P像検出」を行うようにしている。又、横位置の場合は、照明位置の関係から瞳孔位置よりP像の方が下に成ることが判っているので、無駄な演算を省くために瞳孔のエッジが少なくとも1つ検出されてからP像の検出を行うようにしている。
【0118】
次に、瞳孔エッジを検出するのに充分なライン数の読み出しが終了しているかを判定し(#x13)、十分ならステップ#x14に分岐する。そしてこのステップ#x14では、サブルーチン「瞳孔エッジ検出」をコールし瞳孔エッジを検出する。
【0119】
画像データはメモリの制約上から数ライン分記憶できるだけで、その分のライン数が記憶されたら充分なライン数があると判定する。水平方向にのみ瞳孔エッジを検出する場合(即ち、カメラが横位置姿勢の時に瞳孔の左右方向のエッジだけを検出する場合)は、1ラインでも十分である。瞳孔のエッジは、それまで読み出したセンサ出力の最低値を基準として計算する。
【0120】
次に、1ライン分のデータ読み込みが終了するまで待ち、読み込んだ画像データを一時的に格納したRAMから計算用のRAMに移しかえる(#x15)。上記ステップ#x06でソフト的に読み込みが終了している場合はこの動作は必要ないが、ハード的にセンサの読み込みを行っている場合はここでセンサ読み込みのチェックを行う。
【0121】
次に、サブルーチン「最低輝度検出」を実行する(#x16)。既に図4のステップ#R03でブロック読み出しによって最低輝度を検出しているが、ここでは画素毎の値を使って正確な値を求める。最低輝度は、瞳孔を検出するときに使用するが、センサ出力が1ライン読み込まれる毎に検出を行い、1ライン毎に更新していく。
【0122】
1ラインの中で領域外の部分の残りの空送りパルスを出力する(#x17)。ハード的にセンサ読み出しを行う場合は、領域外空送りパルスを送る必要がある。次に、読み出したライン数をカウントアップする(#x18)。ここで、カウントアップするのは制限された領域内の読み出したライン数をカウントする。
【0123】
次に、センサに送った駆動パルス数(1ライン分に対応)をカウントアップする(#x20)。カウントがセンサの水平ライン数になったかどうか判定し(#x21)、なっていなければステップ#x05に戻り、センサ読み出しを繰り返す。
【0124】
ステップ#20では、センサの水平ライン数のカウントアップを行い、次のステップ#21では水平ライン数分だけパルスが出されたかを判定する。
【0125】
指定された領域のセンサ読み出しが終了しても、センサの水平ライン数分の読み出しパルスを送る必要があるため、ステップ#x05に戻り、読み出しを繰り返す。この場合、読み出しの空送りパルスのみをステップ#x19にて出力する。
【0126】
センサの読み出しが終了するとサブルーチンをリターンする(#x22)。
【0127】
次に、最低輝度検出について、図10を使って説明を行う。
【0128】
図10(a)は眼鏡(メガネ)ゴーストがある眼球像の図であり、センサの読み出しは画面左上から水平な1ラインずつ行う。最低輝度の初期値はブロックデータから求めた最低輝度の値に所定量加えた値である。ブロックデータと実際の値とのずれが有るため、ブロックデータの最低値をそのまま使わず所定量を加える必要がある。
【0129】
図10(b),(c)は、図10(a)のE−E´の断面であり、図10(b)は従来方式の最低輝度検出によって得られる最低輝度を示している。画面下側にゴーストが有るため、図10(b)は全体的に右上りになっている。最低輝度は瞳孔の一番上側の部分で決定され、以後更新されない。その為、最低輝度を基準としてエッジを検出すると、図10(b)のFの部分で瞳孔の輝度が最低輝度を基準にした閾値を上回ってしまう。こうなると、図10(a)画像の下側エッジ、すなわち図10(b)の右側のエッジが検出出来なくなってしまう。
【0130】
そこで、図10(c)のように最低輝度値を部分的な最低輝度(水平1ライン毎)になるようにし、瞳孔の持ち上がりに追従して閾値も持ち上がるように変えれば〔図10(c)のGの部分参照〕、従来例では検出できなかったエッジも検出することが出来る。
【0131】
次に、図9のステップ#x16で実行されるサブルーチン「最低輝度検出」について、図11のフローチャートにより説明する。
【0132】
図9のステップ#x16から、サブルーチン「最低輝度検出」(#N01)がコールされると、まず、最低輝度値が新しく検出されたかどうかを示すフラグ「MinChang」 をクリアし、最低輝度を検出するためのパラメータ設定を行う(#N02)。次に、その水平ラインの中で最低輝度を検出する範囲を設定する(#N03)。最低輝度の検出開始画素位置(j)や、検出終了位置(jend)を設定する。
【0133】
最低輝度を検出するための閾値を設定する(#N04)。これまでに検出された最低輝度値をEYEMIN、瞳孔位置を検出するための閾値をEYEMINLVL とすると、検出用の閾値を
minthr1 =EYEMIN+EyeMinRiseThr
minthr2 =EYEMINLVL
と設定する。EyeMinRiseThr は、最低輝度の持ち上がりを許容するための量で、これから検出する水平ラインの最低輝度がこの許容量以内で持ち上がっていた場合、最低輝度値は新しく更新する。(最低輝度値は大きい値に更新され、真の意味で最低輝度値とは成らないので注意)
EYEMINLVL とEYEMINの関係は、EYEMINLVL >EYEMINである。EYEMINLVL とminthr1 の関係は、EYEMINLVL >minthr1 である。
【0134】
次に、計算範囲内の画素とその近傍の画素について以下のループを繰り返し最低輝度判定を行う。
【0135】
まず、センサ出力値im(j)と最低輝度閾値minthr1 を比較する(#N05)。minthr1 より小さければステップ#N06へ分岐し、二つ手前の画素が閾値minthr2 より小さいか較べる(#N06)。小さい場合、ステップ#N07へ分岐し、今度は一つ手間の画素が閾値minthr2 より小さいか較べる(#N07)。小さければステップ#N08へ分岐し、閾値を更新し、フラグ「MinChang」をセットする。
【0136】これらをまとめると
im(j)< minthr1 かつ im(j−2)< minthr2
かつ im(j−1)< minthr2
の場合、閾値を更新する。
【0137】
閾値が更新された場合も、判定で更新されなかった場合も(つまり、ステップ#N05,#N06,#N07の何れかで条件が満たされなかった場合も)、次にステップ#N09へ進む。そして、ここで画素のインデックスjをカウントアップし、それが指定された計算範囲内であるか判定する。計算範囲内ならステップ#N05へ戻り、判定を繰り返す。
【0138】
計算範囲すべてを判定したらステップ#N10へ進み、最低輝度が更新されたかをフラグ「MinChang」で判定する。フラグがセットされていれば、ステップ#N11へ分岐し、最低輝度閾値を更新する。
【0139】
EYEMIN ←minthr1
EYEMINLVL ←minthr2
最後にサブルーチンをリターンする(#N12)。
【0140】
このように、1ライン分の最低輝度を求める時に、そこまでの最低輝度EYEMINにEyeMinRiseThr を加えた量を閾値にして検出を行うため、瞳孔の持ち上がりに対して追従して最低輝度値が変り、エッジを検出するときの閾値も瞳孔の持ち上がりに追従して閾値も持ち上がる。このようにすることで瞳孔部分の輝度の持ち上がりがあっても、正しくエッジ検出が出来る。
【0141】
(発明と実施の形態の対応)本実施の形態において、本発明の画像入力手段は、CCD−EYE14、視線検出回路101から成る。又、特徴領域検出手段、領域設定手段、形状比較手段は、CPU100とCPU100内のプログラムで構成されている。
【0142】
以上が実施の形態の各構成と本発明の各構成の対応関係であるが、本発明は、これら実施の形態の構成に限定されるものではなく、請求項で示した機能、又は実施の形態がもつ機能が達成できる構成であればどのようなものであってもよいことは言うまでもない。
【0143】
(変形例)
本発明は、一眼レフカメラに適用した場合を述べているが、レンズシャッタカメラ,ビデオカメラ等のカメラにも適用可能である。更に、その他の光学機器、例えば顕微鏡やヘッドマウントディスプレイ装置 やゲーム機にも適用することができるものである。
【0144】
【発明の効果】
以上説明したように、本発明によれば、特徴領域の形状を所定の形状と比較する形状比較手段を設け、該形状比較手段により特徴領域の形状が所定の形状であると判断された場合、領域設定手段に領域設定を再度実行し直させるようにしている。
【0145】
よって、観察者が眼鏡使用している為に瞳孔部分の輝度よりも低い輝度部分の画像情報が得られ、この部分を瞳孔部分として誤って検出してしまうといった事を防止することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る一眼レフカメラの要部の電気的構成を示すブロック図である。
【図2】図1のカメラのファインダ接眼部を示す図である。
【図3】図1のカメラの視線検出時の動作を示すフローチャートである。
【図4】図3のステップ#M07のセンサ読み出し&特徴抽出動作を示すフローチャートである。
【図5】図4の動作説明を助ける為の図である。
【図6】図4のステップ#R07の瞳孔位置推定時の動作を示すフローチャートである。
【図7】図6の動作説明を助ける為の図である。
【図8】同じく図6の眼鏡フレーム検出時の動作説明を助ける為の図である。
【図9】図4のステップ#R08の読み出し&逐次処理時の動作を示すフローチャートである。
【図10】図9の動作説明を助ける為の図である。
【図11】図9のステップ#x16の最低輝度検出時の動作を示すフローチャートである。
【図12】視線検出の原理を説明する為の図である。
【符号の説明】
14 イメージセンサ(CCD−EYE)
100 CPU
101 視線検出回路
103 焦点検出回路
106 LED駆動回路
107 IRED駆動回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a line-of-sight detection device for detecting the line of sight of an observer and an optical device such as a camera equipped with the device.
[0002]
[Prior art]
Conventionally, various apparatuses (for example, eye cameras) for detecting a so-called line of sight (visual axis) for detecting which position on the observation surface the photographer is observing have been provided. For example, in Japanese Patent Application Laid-Open No. 1-274736, a parallel light beam from a light source is projected onto the anterior segment of the photographer's eyeball, and a gazing point is obtained using the corneal reflection image by the reflected light from the cornea and the imaging position of the pupil. Seeking. Further, the publication discloses an example in which a gazing point detection device is disposed in a single-lens reflex camera and automatic focusing of a photographic lens is performed using photographic point of sight information.
[0003]
FIG. 12 is a diagram for explaining the gaze detection principle. In FIG. 12, 15 is the eyeball of the photographer, 16 is the cornea, and 17 is the iris.
[0004]
The line-of-sight detection method will be described below with reference to FIG.
[0005]
The infrared light projected from the
[0006]
Further, the light beams from the ends a and b of the
xc≈ (xa + xb) / 2
It is expressed.
[0007]
Further, the x coordinate of the midpoint of the cornea reflection images d and e and the x coordinate xo of the center of curvature o of the
OC * SINθx≈ (xd + xe) / 2−xc (1)
Is substantially satisfied. Therefore, the rotation angle θ of the optical axis 15a of the
[0008]
The rotation angle of the optical axis 15a of the
β * OC * SINθx≈ {(xpo−δx) −xic} * pitch (2)
β * OC * SINθy≈ {(ypo−δy) −yic} * pitch (3)
Is required. Here, θx is the rotation angle of the eyeball optical axis in the zx plane, and θy is the rotation angle of the eyeball optical axis in the yz plane. (Xpo, ypo) is the coordinate of the midpoint of the two corneal reflection images on the
[0009]
δx and δy are correction terms for correcting the coordinates of the midpoint of the cornea reflection image, and correction terms for correcting an error caused by illuminating the photographer's eyeball with divergent light instead of parallel light, and δy Includes a correction term for correcting an offset component generated by illuminating the photographer's eyeball with divergent light from the lower eyelid.
[0010]
Next, the gazing point of the photographer is obtained from the relationship between the eyeball rotation angle and the coordinates of the gazing point. When the relationship between the eyeball rotation angle and the coordinates of the gazing point is the rotation angle (θx, θy) of the photographer's eyeball optical axis, the gazing point (x, y) on the photographer's observation plane has a horizontal camera posture. For position,
x = m * (θx + Δ) (4)
y = m * θy (5)
Is required. Here, the x direction indicates the horizontal direction with respect to the photographer when the camera posture is in the horizontal position, and the y direction indicates the vertical direction with respect to the photographer when the camera posture is in the horizontal position. m is a conversion coefficient for converting the rotation angle of the eyeball into coordinates on the focus plate, and Δ is an angle formed by the eyeball optical axis 15a and the visual axis (gaze point).
[0011]
Since there are individual differences in the conversion coefficients m and Δ at this time, it is necessary to obtain in advance personal difference correction data including the conversion coefficients. The personal difference correction data can be calculated by having the photographer gaze at predetermined coordinates and obtaining the rotation angle of the eyeball optical axis at that time.
[0012]
The detection operation for obtaining the individual difference correction data in this manner is called calibration, and the individual difference correction data obtained by the calibration is called calibration data.
[0013]
If the rotation angle of the eyeball when gazing at (x1,0) on the observation surface is (θx1,0), and the rotation angle of the eyeball when gazing at (x2,0) is (θx2,0), The individual difference data can be obtained.
[0014]
m = (x1-x2) / (θx1-θx2) (6)
Δ = (x2 · θx1−x1 · θx2) / (x1−x2) (7)
It is desirable to input individual difference data for each camera posture.
[0015]
In this way, the photographer's gazing point can be obtained from the cornea reflection image and the position of the pupil. A method for obtaining a feature point such as the cornea reflection image and the position of the pupil from the eyeball image on the sensor is disclosed in JP-A-4 -347133 etc. are proposed.
[0016]
Japanese Patent Laid-Open No. 6-254053 proposes a method for shortening the time without reading all the pixels of the sensor. In this proposal, since the brightness of the pupil part of the eyeball image is very low, the low-luminance part on the image is detected, only that part is read (area limited readout), and calculation is performed to shorten the eye-gaze detection time. It has been proposed.
[0017]
Further, it is disclosed that the edge of the pupil is detected from the read sensor image based on the minimum luminance value.
[0018]
[Problems to be solved by the invention]
However, in the disclosed technique, detection is performed based on the assumption that the pupil has the lowest luminance, and thus the gaze detection cannot be performed well if the assumption is broken.
[0019]
There are the following problems as a cause when the pupil does not have the lowest luminance and when the detection is performed based on the lowest luminance.
[0020]
1) Illumination light does not spread around the sensor, and the amount of light falls.
[0021]
2) Since there is a total reflection object such as a metal frame of spectacles (glasses), no light of that portion is guided onto the sensor. That is, only the frame portion is dark.
[0022]
3) Since the overall brightness is low, an appropriate threshold cannot be set.
[0023]
4) Although the size of the pupil changes depending on the brightness, the area size is the same even if the brightness changes during area limited readout.
[0024]
Each problem is described below.
[0025]
1) When the peripheral portion of the sensor has the lowest luminance, the reading area is determined around that area. However, if the reading area does not include all pupils and P images, the line of sight cannot be detected.
[0026]
2) The frame of the spectacles may be dark on the sensor, and the luminance may be lower than the luminance of the pupil portion. If this is mistakenly detected as a pupil, the readout area is determined centering on the frame portion as in 1) above, and the pupil and the corneal reflection image (Purkinje image: P image) are all included in the readout area. Gaze detection is not possible.
[0027]
3) When the brightness is low as a whole, the threshold setting is not successful. Although the pupil may show the lowest luminance, there are many portions where the luminance is almost the same as that of the pupil, and the pupil and other portions cannot be distinguished. For this reason, the reading area cannot be determined.
[0028]
4) The pupil size is small when bright and large when dark. If the area is determined with the same size, it will be useless.
[0029]
In addition to these, there is a phenomenon in which the luminance of the pupil portion increases due to the influence of ghosts and the like. In such a case, if the pupil is detected based on the minimum luminance, the edge of the pupil cannot be detected.
[0032]
(Object of the invention) Object of the invention The observer is wearing glasses use Therefore, it is possible to provide a line-of-sight detection device and an optical device capable of preventing image information of a luminance portion lower than the luminance of the pupil portion from being obtained and preventing this portion from being erroneously detected as the pupil portion. There is.
[0035]
[Means for Solving the Problems]
the above the purpose In order to achieve 5 Each of the present inventions described in 1), an image input means for inputting image information including an eyeball image, and an image information obtained by the image input means. Feature region detecting means for detecting a feature region including a feature point, and the feature region based on the feature region Area setting means for setting the area of the image information, and based on the image information of the set area Perform gaze detection In the line-of-sight detection device, Shape comparison means for comparing the shape of the feature region with a predetermined shape Comprising When the shape comparison means determines that the feature area has a predetermined shape, the area setting means re-executes the area setting. It is characterized by this.
[0040]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in detail based on illustrated embodiments.
[0041]
FIG. 1 is a block diagram of a main part of an electric circuit built in the camera body of the present invention.
[0042]
A central processing unit (hereinafter referred to as a CPU) 100 of a microcomputer, which is a camera control means built in the camera body, includes a line-of-sight detection circuit 101, an
[0043]
An
[0044]
The line-of-sight detection circuit 101 transmits an eyeball image output from the image sensor 14 (CCD-EYE) to the
[0045]
The
[0046]
The automatic focus detection circuit 103 sends photoelectric conversion voltages obtained from a plurality of line sensors to the
[0047]
The
[0048]
SW-1 is turned on by the first stroke of the release button, and a switch for starting photometry, AF (autofocus) and line-of-sight detection operation, SW-2 is a release switch turned on by the second stroke of the release button, and SW-MDIAL is This is a mode dial for selecting a calibration mode and a camera lock position in addition to various camera shooting modes. SW-CALDEL is an individual difference correction data deletion switch. SW-DIAL1 and SW-DIAL2 are electronic dial switches, which are input to an up / down counter of a signal input circuit, and count the rotational click amount of the electronic dial.
[0049]
The
[0050]
The LED drive circuit 106 is a circuit for turning on the LED 21 (LED-L2, LED-L1, LED-C, LED-R1, LED-R2) for superimposing illumination of a distance measuring point in the finder. . LED-L2, LED-L1, LED-C, LED-R1, and LED-R2 are focus detection (ranging points) marks FP-L2, FP-L1, FP-C, FP-R1, and FP- in the viewfinder, respectively. The distance measuring point mark in the viewfinder is illuminated by turning on the LED 21.
[0051]
The
[0052]
Two IREDs are used in pairs and are illuminated from below the eyeball. FIG. 2 shows a specific IRED position.
[0053]
When the camera is in the horizontal position, IRED-0 and IRED-1 are used as a pair for the naked eye, and IRED-4 and IRED-5 are used as a pair for the glasses. IRED-3 and IRED-0 are used as a pair, and IRED-7 and IRED-4 are used as a pair for glasses. In the vertical position under the grip, IRED-1 and IRED-2 are used as a pair for the naked eye, and IRED-5 and IRED-6 are used as a pair for glasses. That is, in any posture, an IRED pair with a narrow interval is used for the naked eye, and an IRED pair with a wide interval is used for a long distance between the glasses and the eyeball.
[0054]
When the switch SW-1 is pressed, after performing a predetermined operation, the “line of sight” flow in FIG. 3 is called. Hereinafter, the entire line-of-sight detection operation will be described in accordance with this.
[0055]
When the subroutine “line-of-sight main” is called, the program is executed from step # M01. The line-of-sight detection routine is not necessarily executed just once, but the line-of-sight position is not output, but is executed a plurality of times (try several times by changing the control method) and finally detects the position of the gazing point. It is like that.
[0056]
First, the set calibration number is checked, and individual difference correction data corresponding to the calibration number is read from the EEPROM 100a (# M02).
[0057]
Check if the calibration number is not correct or if the calibration number is not set (including when the line of sight is OFF) (# M03). If not, branch to step # M09 and return. .
[0058]
When the calibration number is correctly set and the individual difference correction data can be read, the line-of-sight detection parameter is initialized (# M04). Here, initialization of the parameter indicating the line-of-sight detection state is performed only for the first time. The subroutine “Gaze Main” is not executed after the second time when it is repeatedly executed.
[0059]
Next, accumulation of the line-of-sight detection area sensor is performed by a subroutine “YBASIS” (# M05). In this subroutine, the IRED for illuminating the eyeball and its drive current are determined, the sensor is preliminarily accumulated, and the accumulation control when the line of sight is detected is determined. Image data of an eyeball image is obtained by the determined accumulation control method.
[0060]
Next, parameters for extracting feature points of the image data are initialized (# M06). Then, a subroutine “Read_Detect” (# M07) for extracting feature points while reading the accumulated data is executed. The internal operation of this subroutine will be described in detail later.
[0061]
When sensor reading and feature point extraction are completed, the gaze point position is calculated from the detected feature points in a subroutine “P_Process” (# M08). Here, from the pupil edge coordinates obtained by “Read_Detect”, the center coordinates of the pupil circle and the coordinates of the corneal reflection image (Prikinje image: P image) of the illumination light are used to calculate the rotation angle of the eyeball from a predetermined calculation formula. Ask for. When the rotation angle of the eyeball can be detected, a point to be watched by the person is calculated using the individual difference correction data.
[0062]
Finally, this program is returned (# M10).
[0063]
If the gazing point cannot be obtained at one time, the “line of sight main” is called repeatedly, and the line of sight is detected by another control method (which is performed by changing the illumination, accumulation control method, and calculation parameter).
[0064]
Next, the subroutine “Read_Detect” executed in step # M07 will be described with reference to the flowchart of FIG. The subroutine “Read_Detect” is called after the sensor accumulation is completed.
[0065]
When the subroutine “Read_Detect” is called, the processing is executed from step # R01. First, the sensor is read roughly using the block reading function of the sensor (# R02). The sensor block reading function is a function for outputting data in which a plurality of pixels of the sensor are collected. The sensor output is output as 16 blocks of “4 × 4” as one block (an average value of “4 × 4”). Output).
[0066]
By doing so, for example, the sensor output of “100 × 70” pixels can be viewed roughly with the data of “25 × 18” blocks. Even if it is not possible to secure a memory of “100 × 70” pixels by reducing the number of data in this way, it is possible to secure a memory of “25 × 18” pixels even with an embedded microcomputer in a device such as a camera. It is.
[0067]
Further, even in a sensor in which a block output cannot be obtained in hardware, an equivalent calculation can be performed by obtaining an average in software and reducing the number of data. The average value is not necessarily required, and all sensor pixels may be thinned out.
[0068]
Next, the maximum value, the minimum value, and the average value of the block-read image are obtained (# R03). The maximum value is used when obtaining a Purkinje image (hereinafter referred to as P image), and the minimum value is used when searching for a pupil. The average value is used as brightness data for the entire image.
[0069]
Here, the range in which the minimum luminance of the block image is detected and the increase (weighting) will be described with reference to FIG.
[0070]
In this example, the lower left part of the image is partially darker, and the address (xmin ′, ymin ′) portion has the lowest luminance (see FIG. 5A). When the entire block image is searched for the minimum luminance, a portion other than the pupil may be searched in this way. Therefore, first, the portion where the minimum luminance is detected is limited to the central area 1 (horizontal center: xg1, vertical range: yg1). To limit to the center part,
1) The surrounding area becomes dark due to uneven illumination and low light intensity.
[0071]
2) The eyeball is not in the periphery of the image (if it is in the periphery of the image, gaze detection is impossible).
That is why.
[0072]
Next, in the
[0073]
If the amount corresponding to the block position is wt (x, y) and the block image value is b1 (x, y), the minimum luminance position is
[B1 (x, y) + wt (x, y)] (however, the calculation range is within area 1)
Can be obtained as the position of (x, y) at which. If this position is (xmin, ymin), the minimum luminance MINblk is obtained as b1 (xmin, ymin). That is, the original image value obtained by subtracting the value from the minimum value obtained by raising is stored as the minimum value (see FIG. 5C).
[0074]
Actually, wt1 = 4, wt2 = 2, wt3 = 0, xg1 = 18, yg1 = 14, xg2 = 12, yg2 = 8, xg3 = 6, yg3 = 4.
[0075]
When calculating the average luminance, the calculation is performed without raising the brightness.
[0076]
Returning to the description of the flowchart of FIG. 4, next, blink detection is performed using the lowest value of the block image and a predetermined threshold (# R04). Since the line of sight cannot be detected during blinking, the process is performed. For example, the current gaze detection is stopped and the next gaze detection is performed with exactly the same control.
[0077]
Next, the read range is initialized. Usually, the entire range is designated first (# R05). When the sensor is attached to the camera and the surrounding area is removed, an area that cannot be removed is designated.
[0078]
Next, the average luminance (BlkAve) obtained from the block data is compared with the threshold (# R06). If the average luminance is low, the process proceeds to step # R08, and the pupil position is not estimated based on the block data. This is because if the overall brightness is low, the peripheral part of the sensor will be low, and the pupil position will not necessarily be the minimum brightness. If the pupil position is estimated using the minimum brightness, the pupil position cannot be estimated correctly. . If the average luminance is higher than the threshold value, the process branches to step # R07, and the subroutine “Estimate pupil position” is called to estimate the pupil position.
[0079]
In Step # R08, the subroutine “Reading & Sequential Processing” is called, and feature points are extracted by sensor reading and sequential processing in the determined area, and the process returns (# R09).
[0080]
As described above, the lowest luminance position is detected by raising (weighting) the block image, so that the correct pupil position can be estimated even when the illumination light does not spread around the sensor and the light amount has dropped. I made it.
[0081]
Further, when the overall luminance is low, it is difficult to detect the pupil position, so the pupil position is not estimated. For this reason, the pupil estimation is not forced and time is not wasted or erroneous estimation is not performed.
[0082]
Next, the sub-routine “pupil position estimation” executed in step # R07 of FIG. 4 will be described with reference to the flowchart of FIG.
[0083]
When the subroutine “Estimate pupil position” is called (# E01), the pupil spread in the horizontal direction is first detected by the subroutine “BlkHorArea”. The blocked image data is represented by b1 (x, y) (x: horizontal direction, y: vertical direction), the minimum luminance obtained in step # R03 in FIG. 4 is “MINblk”, and the addresses are xmin0 and ymin0. .
[0084]
First, a range where the luminance is “MINblk + α” or less at the address ymin0 in the vertical direction is obtained. Next, the range in the vertical direction is obtained at the horizontal address xmin0 position where the luminance is equal to or less than “MINblk + α” (# E03). The horizontal address is not necessarily the position of xmin0. For example, the range may be obtained in the vertical direction from the center position of the range obtained in step # E02.
[0085]
Here, the size of the pupil is not searched in a plane when the surrounding dark part and the low-luminance part of the pupil are connected (see FIG. 7 (a)). This is because the correct pupil position cannot be detected (see FIG. 7B).
[0086]
However, if the detection is performed only in the horizontal direction and the vertical direction from the detected lowest luminance position, the correct pupil size can be detected (see FIG. 7C).
[0087]
Next, eyeglass frame determination is performed.
[0088]
If it is determined in step # E04 that the frame is not an eyeglass frame, the center of the range calculated in step # E02 and step # E03 is obtained (# E05). That is, the center of the horizontal range obtained in step # E02 and the center of the vertical range obtained in step # E03 are obtained.
Next, the overall brightness is determined (# E06). Average value of block image BlkAve And the threshold value ThrHI, and if smaller than the threshold value, the process branches to step # E07. In step # E07, the position of the P image is detected from the block image. If the overall brightness is high, it becomes difficult to detect the Purkinje image portion from the block image. Since the pupil range is not detected small due to the influence of the P image, the P image position is not detected.
[0090]
If the luminance is low, the P image position is detected using the block image (# E07). An isolated point with high brightness is detected as a P image. When the camera is in the horizontal position, an isolated value is detected in the vertical direction. Since there are two P images in the horizontal direction, the two blocks may continuously have high brightness. For this reason, the P image detection by the block image is not performed in the horizontal direction.
[0091]
Next, the detected P image and its surroundings are replaced with the lowest luminance level (# E08). By replacing with the lowest luminance level, it is possible to estimate the size of the pupil again by performing the same processing as in steps # E02 and # E03.
[0092]
In Steps # E09 and # E10, the spread of the pupil in the horizontal direction and the vertical direction is obtained again. Detection is performed from the pupil center position obtained in step # E05.
[0093]
Next, the actual position on the sensor is obtained from the pixel position of the block (# E11). A margin is added to the finally detected pupil size to determine a readout area (# E12).
[0094]
If the x coordinate of the left side of the pupil is xpp1, the right side is xpp2, the upper side is ypp1, the lower side is ypp2, the margin of the region (pupil portion) is mag, and the P image portion is magp, the sensor area to be read out is the horizontal direction. Is from “xpp1 −mag” to “xpp2 + mag”, and the vertical direction is from “ypp1 −mag” to “ypp2 + mag + magp”.
[0095]
When the camera is in the horizontal position, the P image is below the pupil, so that the downward reading area is given a margin more than the others by the mapp. When the camera is in the vertical position, the “magp” has a margin so as to be widened below the x coordinate.
[0096]
The margins “mag” and “magp” vary depending on the luminance of the entire sensor, and the pupil is reduced when the luminance is increased, so that the margin is set to be small.
[0097]
Average brightness obtained in step # R03
When the sensor reading area is set, the subroutine is returned (# E15).
[0098]
In this way, by changing the pupil area estimated by pupil estimation with the overall brightness, even if the pupil becomes small when it is bright, it does not read out a useless area, and the pupil does not protrude even when it is dark You can set the area.
[0099]
Here, step # E04 in FIG. 6 will be described.
[0100]
If the frame of the glasses enters the image, it may appear as a black elongated shape. This is because the frame portion of the spectacles is totally reflected, and the illumination light does not come on the sensor at all.
[0101]
As shown in FIG. 8 (a), since the vertical width of the sensor is not so large in the horizontal position, the dark portion of the spectacle frame has come out of the sensor. As shown in b), in the vertical position, the dark part of the frame of the glasses enters the sensor, which may adversely affect the detection of the pupil position. Therefore, it is necessary to identify the frame of the glasses and the pupil and detect only the correct pupil. Therefore, paying attention to the shape of the spectacle frame, the determination is made based on the shape of the low luminance portion detected in steps # E02 and # E03.
[0102]
Specifically, in the case of the vertical position, it is determined whether the horizontal direction (x-axis direction on the sensor) is short and the vertical direction (y-axis direction on the sensor) is long. When the position of A in FIG. 8C can be recognized as the minimum luminance, the pupil portion is correctly selected, so the horizontal length xd and the vertical length yd of the low luminance portion are approximately the same. It's getting bigger, and either isn't big or small. However, if the B portion is detected as the minimum luminance, the horizontal length xf is very short and the vertical length yf is extremely long. The eyeglass frame is identified from this feature.
[0103]
Assuming that the horizontal threshold of the spectacle frame is xfth, the vertical threshold is yfch, the horizontal length of the low-luminance portion is ldkx, and the vertical length is ldky,
ldkx <xfth and ldky> yfth
If it meets, the eyeglass frame is determined.
[0104]
Specifically, detection is performed with xfth = 5 and yfth = 10 (in the case of the vertical position). Although the description has been made in the vertical position according to the figure, the horizontal direction and the vertical direction are interchanged in the horizontal position. Judgment of frame is not possible only by the length in the vertical direction (vertical position) No This is because when the entire screen is dark, the size of the low-brightness portion becomes large.
[0105]
If the eyeglass frame is determined, the process branches to step # E13. Here, since the pupil portion could not be estimated well, the region restriction parameter was initialized, and the minimum luminance value data obtained from the block data is also an incorrect value for the spectacle frame portion, so it is reset to the default value ( # E14).
[0106]
In this example, if it is determined that the frame is a spectacle frame, the region restriction is stopped, but conversely, the region may be limited so that only a portion obtained by removing the spectacle frame portion is calculated. Alternatively, recalculation may be performed so that the spectacle frame portion is excluded and the pupil portion is estimated.
[0107]
When the process ends, the process proceeds to step # E15, and the subroutine is returned.
[0108]
As described above, the characteristics of the spectacle frame are discriminated, and when the spectacle frame is discriminated, the line-of-sight calculation is performed in a predetermined area, so that an incorrect area is not set.
[0109]
Although not described in the flowchart, when it is determined that the frame is a spectacle frame, an area other than that may be set, or the pupil position may be estimated again in the area excluding the spectacle frame area.
[0110]
In this way, erroneous estimation of the pupil position can be eliminated.
[0111]
Next, the subroutine “Read & Sequential Processing” in FIG. 4 will be described using the flowchart in FIG.
[0112]
When this subroutine “Reading & Sequential Processing” is called (# x01), first, reading start communication is performed to the sensor (# x02). Next, A / D conversion is initialized in order to A / D convert the sensor output (# x03). Next, initialization of parameters for performing sequential calculation and setting of the number of pulses for reading out only a limited region are performed (# x04).
[0113]
Next, it is determined whether or not the horizontal line to be read includes an area to be read (# x05), and if outside the read area, the process branches to step (# x19). In step # x19, a horizontal line skip pulse for skipping one horizontal line is output. When this pulse is sent to the sensor, the sensor does not read out one horizontal line.
[0114]
In step # x05, if the horizontal line to be read includes an area to be read, the process branches to step # x06. Here, one line is read out. First, a readout pulse is sent for each pixel, and the output from the sensor is A / D converted and temporarily stored in a predetermined RAM. A portion outside the designated area in the horizontal line to be read is not subjected to A / D conversion, and only the data in the designated area can be obtained in a short time by outputting the read pulse at a high speed.
[0115]
These operations may be configured so as to perform pulse output, A / D conversion, and data storage in hardware, in addition to operating with software timing. In this case, since it is not necessary for software to intervene in A / D conversion and pulse output, the software can extract feature points during that time.
[0116]
Next, it is determined whether or not the camera position is the vertical position (# x07). If the vertical position, the number of readout lines is entered in the A register (# x08), if the horizontal position (if not the vertical position), the pupil detected so far The total number of edges is calculated and stored in the A register (# x09). Next, it is determined whether or not the A register is 0 (# x11). If it is not 0, the process branches to (# x12), and the subroutine “P image detection” is executed (# x12).
[0117]
When the camera position is the vertical position, “P image detection” is performed after reading of the sensor by at least one line or more. Further, in the case of the horizontal position, it is known from the relationship of the illumination position that the P image is lower than the pupil position. Therefore, in order to eliminate useless calculation, the P position is detected after at least one pupil edge is detected. Image detection is performed.
[0118]
Next, it is determined whether reading of a sufficient number of lines to detect the pupil edge is completed (# x13), and if sufficient, the process branches to step # x14. In step # x14, the subroutine “pupil edge detection” is called to detect the pupil edge.
[0119]
Image data can only be stored for several lines due to memory limitations, and if the corresponding number of lines is stored, it is determined that there is a sufficient number of lines. When detecting the pupil edge only in the horizontal direction (that is, detecting only the left and right edge of the pupil when the camera is in the horizontal position), one line is sufficient. The edge of the pupil is calculated based on the lowest value of the sensor output read up to that point.
[0120]
Next, the process waits until the reading of data for one line is completed, and moves the read image data from the temporarily stored RAM to the RAM for calculation (# x15). This operation is not necessary when the reading is completed in software in step # x06, but if the sensor is read in hardware, the sensor reading is checked here.
[0121]
Next, a subroutine “minimum luminance detection” is executed (# x16). Although the minimum luminance has already been detected by block reading in step # R03 in FIG. 4, an accurate value is obtained using a value for each pixel. The minimum luminance is used when detecting the pupil, but is detected every time the sensor output is read in one line, and is updated every line.
[0122]
The remaining idle feed pulse of the portion outside the area in one line is output (# x17). When performing sensor reading in hardware, it is necessary to send an out-of-region idle feed pulse. Next, the number of read lines is counted up (# x18). Here, counting up counts the number of lines read in the limited area.
[0123]
Next, the number of drive pulses sent to the sensor (corresponding to one line) is counted up (# x20). It is determined whether the count has reached the number of horizontal lines of the sensor (# x21). If not, the process returns to step # x05 to repeat sensor reading.
[0124]
In step # 20, the number of horizontal lines of the sensor is counted up, and in the next step # 21, it is determined whether or not pulses are output by the number of horizontal lines.
[0125]
Even if the sensor reading of the designated area is completed, it is necessary to send a reading pulse for the number of horizontal lines of the sensor, so the process returns to step # x05 and the reading is repeated. In this case, only the read idle feed pulse is output in step # x19.
[0126]
When the sensor reading is completed, the subroutine is returned (# x22).
[0127]
Next, the minimum luminance detection will be described with reference to FIG.
[0128]
FIG. 10A is a diagram of an eyeball image with spectacles (glasses) ghost, and sensor reading is performed for each horizontal line from the upper left of the screen. The initial value of the minimum luminance is a value obtained by adding a predetermined amount to the minimum luminance value obtained from the block data. Since there is a difference between the block data and the actual value, it is necessary to add a predetermined amount without using the minimum value of the block data as it is.
[0129]
FIGS. 10B and 10C are cross sections taken along line EE ′ of FIG. 10A, and FIG. 10B shows the minimum luminance obtained by the conventional minimum luminance detection. Since there is a ghost on the lower side of the screen, FIG. 10B is generally on the upper right. The minimum brightness is determined at the uppermost part of the pupil and is not updated thereafter. Therefore, when an edge is detected with reference to the minimum luminance, the luminance of the pupil exceeds the threshold value based on the minimum luminance at the portion F in FIG. 10B. In this case, the lower edge of the image in FIG. 10A, that is, the right edge in FIG. 10B cannot be detected.
[0130]
Therefore, as shown in FIG. 10 (c), the minimum luminance value is set to a partial minimum luminance (for each horizontal line), and the threshold value is also raised so as to follow the lifting of the pupil [FIG. 10 (c). The edge that could not be detected in the conventional example can also be detected.
[0131]
Next, the subroutine “minimum luminance detection” executed in step # x16 of FIG. 9 will be described with reference to the flowchart of FIG.
[0132]
When the subroutine “minimum luminance detection” (# N01) is called from step # x16 in FIG. 9, first, the flag “MinChange” indicating whether or not the minimum luminance value is newly detected is cleared, and the minimum luminance is detected. Parameter setting is performed (# N02). Next, a range for detecting the minimum luminance in the horizontal line is set (# N03). The lowest luminance detection start pixel position (j) and the detection end position (jend) are set.
[0133]
A threshold for detecting the minimum luminance is set (# N04). If the lowest luminance value detected so far is EYEMIN and the threshold for detecting the pupil position is EYEMINLVL, the detection threshold is
minthr1 = EYEMIN + EyeMinRiseThr
minthr2 = EYEMINLVL
And set. EyeMinRiseThr is an amount for allowing the minimum luminance to be lifted. When the minimum luminance of the horizontal line to be detected is increased within the allowable amount, the minimum luminance value is newly updated. (Note that the minimum brightness value is updated to a larger value and does not become the minimum brightness value in the true sense)
The relationship between EYEMINLVL and EYEMIN is EYEMINLVL> EYEMIN. The relationship between EYEMINLVL and minthr1 is EYEMINLVL> minthr1.
[0134]
Next, the minimum brightness determination is performed by repeating the following loop for the pixels within the calculation range and the neighboring pixels.
[0135]
First, the sensor output value im (j) is compared with the minimum luminance threshold minthr1 (# N05). If it is smaller than minthr1, the process branches to step # N06, and it is compared whether the two previous pixels are smaller than the threshold value minthr2 (# N06). If it is smaller, the process branches to step # N07, and this time, it is compared whether the one troublesome pixel is smaller than the threshold value minthr2 (# N07). If it is smaller, the process branches to Step # N08, the threshold is updated, and the flag “MinChange” is set.
In summary,
im (j) < minthr1 and im (J-2) < minthr2
And im (J-1) < minthr2
In the case of, the threshold value is updated.
[0137]
If the threshold value is updated or not updated by determination (that is, if the condition is not satisfied in any of steps # N05, # N06, and # N07), the process proceeds to step # N09. Then, the pixel index j is counted up here to determine whether it is within the designated calculation range. If it is within the calculation range, the process returns to step # N05 to repeat the determination.
[0138]
When all the calculation ranges are determined, the process proceeds to step # N10, and it is determined by the flag “MinChange” whether the minimum luminance has been updated. If the flag is set, the process branches to step # N11 to update the minimum luminance threshold.
[0139]
EYEMIN ← minthr1
EYEMINLVL ← minthr2
Finally, the subroutine is returned (# N12).
[0140]
In this way, when the minimum luminance for one line is obtained, detection is performed with the amount of EyeMinRiseThr added to the minimum luminance EYEMIN so far as a threshold, so the minimum luminance value changes following the lifting of the pupil, The threshold value for detecting an edge also increases with the rise of the pupil. By doing so, the edge can be detected correctly even if the luminance of the pupil is increased.
[0141]
(Correspondence between Invention and Embodiment) In the present embodiment, the image input means of the present invention includes a CCD-
[0142]
The above is the correspondence between each configuration of the embodiment and each configuration of the present invention. However, the present invention is not limited to the configuration of the embodiment, and the functions shown in the claims or the embodiment It goes without saying that any configuration may be used as long as the function of the can be achieved.
[0143]
(Modification)
The present invention is applied to a single-lens reflex camera, but can also be applied to cameras such as a lens shutter camera and a video camera. Furthermore, the present invention can be applied to other optical devices such as a microscope, a head mounted display device, and a game machine.
[0144]
【The invention's effect】
As explained above, according to the present invention, A shape comparison unit that compares the shape of the feature region with a predetermined shape is provided, and when the shape comparison unit determines that the shape of the feature region is a predetermined shape, the region setting unit performs the region setting again. I am doing so.
[0145]
Therefore, Since the observer uses glasses, it is possible to obtain image information of a luminance portion lower than the luminance of the pupil portion, and prevent this portion from being erroneously detected as the pupil portion. be able to.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an electrical configuration of a main part of a single-lens reflex camera according to an embodiment of the present invention.
2 is a view showing a viewfinder eyepiece of the camera shown in FIG. 1;
FIG. 3 is a flowchart showing an operation at the time of line-of-sight detection of the camera of FIG. 1;
4 is a flowchart showing a sensor reading & feature extraction operation in step # M07 of FIG. 3;
FIG. 5 is a diagram for helping to explain the operation of FIG. 4;
6 is a flowchart showing an operation at the time of pupil position estimation in step # R07 in FIG. 4;
7 is a diagram for helping to explain the operation of FIG. 6; FIG.
8 is a diagram for helping to explain the operation when detecting the eyeglass frame of FIG. 6; FIG.
FIG. 9 is a flowchart showing an operation at the time of reading & sequential processing in step # R08 of FIG. 4;
10 is a diagram for explaining the operation of FIG. 9; FIG.
11 is a flowchart showing an operation at the time of detecting the minimum luminance in step # x16 in FIG. 9;
FIG. 12 is a diagram for explaining the principle of line-of-sight detection.
[Explanation of symbols]
14 Image sensor (CCD-EYE)
100 CPU
101 Eye-gaze detection circuit
103 Focus detection circuit
106 LED drive circuit
107 IRED drive circuit
Claims (7)
前記特徴領域の形状を所定の形状と比較する形状比較手段を具備し、該形状比較手段にて前記特徴領域が所定の形状であると判断された場合に、前記領域設定手段は領域設定を実行し直すことを特徴とする視線検出装置。Image input means for inputting image information including an eyeball image, feature area detection means for detecting a feature area including a feature point of image information obtained by the image input means, and the image information based on the feature area A line-of-sight detection apparatus that performs line-of- sight detection on the basis of image information of the set area.
A shape comparison unit that compares the shape of the feature region with a predetermined shape is provided, and the region setting unit executes region setting when the shape comparison unit determines that the feature region has a predetermined shape. A line-of-sight detection device characterized by re-working .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23211795A JP3630792B2 (en) | 1995-08-18 | 1995-08-18 | Gaze detection device and optical device |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP23211795A JP3630792B2 (en) | 1995-08-18 | 1995-08-18 | Gaze detection device and optical device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0956678A JPH0956678A (en) | 1997-03-04 |
| JP3630792B2 true JP3630792B2 (en) | 2005-03-23 |
Family
ID=16934279
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP23211795A Expired - Fee Related JP3630792B2 (en) | 1995-08-18 | 1995-08-18 | Gaze detection device and optical device |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3630792B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4878273B2 (en) * | 2006-11-22 | 2012-02-15 | アイシン精機株式会社 | Glasses detection device, image processing device, glasses detection method, and computer program |
| JP5417272B2 (en) * | 2010-07-14 | 2014-02-12 | 本田技研工業株式会社 | Eyeball imaging device |
-
1995
- 1995-08-18 JP JP23211795A patent/JP3630792B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0956678A (en) | 1997-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12568300B2 (en) | Electronic apparatus, method for controlling electronic apparatus, and non-transitory computer-readable storage medium for GUI control on a display | |
| US5926655A (en) | Line of sight detection device and an apparatus having a line of sight detection device | |
| US6507702B2 (en) | Device having sight line detecting function | |
| JP2002345756A (en) | Eye gaze detection device and optical equipment | |
| US5983030A (en) | Optical apparatus having a visual axis detector | |
| JP3297481B2 (en) | Eye gaze detection device | |
| US5402199A (en) | Visual axis detecting apparatus | |
| JP3630792B2 (en) | Gaze detection device and optical device | |
| JP3256294B2 (en) | Eye gaze detection apparatus and eye gaze detection method | |
| JP2002301030A (en) | Equipment with gaze detection function | |
| JP2024003432A (en) | Electronics | |
| JP2000075198A (en) | Device with gaze detection function | |
| JP3530647B2 (en) | Eye gaze detecting device and optical device | |
| JPH0956679A (en) | Image processing device and optical device | |
| JP3624030B2 (en) | Gaze detection device and optical device | |
| JP2003307774A (en) | Optical equipment with gaze detection function | |
| JPH10171995A (en) | Feature point detection device, pupil edge detection device, and gaze detection device | |
| JP7739026B2 (en) | Imaging device, control method thereof, and program | |
| JP2003339642A (en) | Eye-gaze detecting device and optical device having the same | |
| JP2002328294A (en) | Gaze detection device, device with gaze detection function, and camera | |
| JPH07199046A (en) | Equipment with line-of-sight detection function | |
| JP2002341239A (en) | Eye gaze detection device | |
| JP3211427B2 (en) | Eye gaze detection device | |
| JP3437343B2 (en) | Eye gaze detection device | |
| JP3483366B2 (en) | Camera having line-of-sight detection means |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040324 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040420 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040621 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041130 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041215 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081224 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081224 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091224 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091224 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101224 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111224 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121224 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131224 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |