(57)【特許請求の範囲】
【請求項１】
観察者の眼球を照明する為の照明手段と、該照明手段により照明された観察者の眼球像を受光して画像情報を出力する受光手段と、該受光手段にて得られた画像情報の部分領域もしくは全体領域を選択する画像領域選択手段と、該画像領域選択手段にて選択された画像情報の領域から眼球の特徴点を検出する特徴点検出手段と、観察者の個人差データを取得する個人差データ取得手段とを備え、前記個人差データと前記眼球の特徴点から観察者の視線を検出する視線検出装置において、
前記個人差データ取得手段は、画像情報中にゴーストが含まれているか否かを前記受光手段にて得られた画像情報の全体領域を用いて判定するゴースト判定手段を有し、
前記画像領域選択手段は、前記ゴースト判定手段にてゴーストの有無が判定されるまでは、前記画像情報の全体領域を選択し、ゴースト判定後は特徴点検出のために前記画像情報の部分領域を選択することを特徴とする視線検出装置。
【請求項２】
観察者の眼球を照明する為の照明手段と、該照明手段により照明された観察者の眼球像を受光して画像情報を出力する受光手段と、該受光手段にて得られた画像情報の部分領域もしくは全体領域を選択する画像領域選択手段と、該画像領域選択手段にて選択された画像情報の領域から眼球の特徴点を検出する特徴点検出手段と、観察者の個人差データを取得する個人差データ取得手段とを備え、前記個人差データと前記眼球の特徴点から観察者の視線を検出する視線検出装置において、
前記個人差データ取得手段は、観察者の眼球に前記照明手段によるものではない外光が入射しているか否かを前記受光手段にて得られた画像情報の全体領域を用いて判定する外光判定手段を有し、
前記画像領域選択手段は、前記外光判定手段にて外光が入射していると判定された場合は、前記画像情報の部分領域を選択することを特徴とする視線検出装置。
【請求項３】
観察者の眼球を照明する為の照明手段と、該照明手段により照明された観察者の眼球像を受光して画像情報を出力する受光手段と、該受光手段にて得られた画像情報から眼球の特徴点を検出する特徴点検出手段と、観察者の個人差データを取得する個人差データ取得手段とを備え、前記個人差データと前記特徴点から観察者の視線を検出する視線検出装置において、
前記個人差データ取得手段は、前記照明手段と前記受光手段の少なくとも一方の制御方法の設定を変更して視線検出動作を行い、最適な前記照明手段及び前記受光手段の制御方法を決定し、該制御方法で視線検出動作を複数回行った視線検出結果と、該制御方法を決定する際に行った視線検出動作の視線検出結果とから前記個人差データを算出することを特徴とする視線検出装置。
【請求項４】
請求項１から３のいずれかに記載の視線検出装置を具備したことを特徴とする光学装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、観察者の視線位置を観察者の個人差データを使って求める視線検出装置や該装置を具備したカメラ等の光学装置の改良に関するものである。
【０００２】
【従来の技術】
従来より、撮影者が観察面上のどの位置を観察しているかを検出する、いわゆる視線（視軸）を検出する装置（例えばアイカメラ）が種々提供されている。例えば特開平１−２７４７３６号公報においては、光源からの平行光束を撮影者の眼球の前眼部へ投射し、角膜からの反射光による角膜反射像と瞳孔の結像位置を利用して注視点を求めている。また同公報において、注視点検出装置を一眼レフカメラに配設し、撮影者の注視点情報を用いて撮影レンズの自動焦点調節を行なう例を開示している。
【０００３】
図８は視線検出原理を説明する為の図である。
【０００４】
同図において、１５は撮影者の眼球、１６は角膜、１７は虹彩である。以下この図を用いて視線の検出方法を説明する。
【０００５】
光源１３ｂより放射された赤外光は、観察者の眼球１５の角膜１６を照射する。このとき角膜１６の表面で反射した赤外光の一部により形成される角膜反射像ｄ（虚像）は受光レンズ１２により集光され、イメージセンサ１４上の位置ｄ´に結像する。同様に光源１３ａにより放射された赤外光は、眼球１５の角膜１６を照明する。このとき、角膜１６の表面で反射した赤外光の一部により形成された角膜反射像ｅは受光レンズ１２により集光され、イメージセンサ１４上の位置ｅ´に結像する。
【０００６】
又、虹彩の端部ａ，ｂからの光束は、受光レンズ１２を介してイメージセンサ１４上の位置ａ´，ｂ´に該端部ａ，ｂの像を結像する。受光レンズ１２の光軸に対する眼球１５の光軸の回転角θが小さい場合、虹彩の端部ａ，ｂのｘ座標をｘａ，ｘｂとすると、瞳孔１９の中心位置ｃの座標ｘｃは、
ｘｃ≒（ｘａ＋ｘｂ）／２
と表される。
【０００７】
また、角膜反射像ｄ及びｅの中点のｘ座標と角膜１６の曲率中心ｏのｘ座標ｘｏとは略一致する。このため、角膜反射像の発生位置ｄ，ｅのｘ座標をｘｄ，ｘｅ、角膜１６の曲率中心ｏと瞳孔の中心ｃまでの標準的な距離をＯＣとすると、眼球１５の光軸１５ａの回転角θｘは、
ＯＣ＊ＳＩＮθｘ≒（ｘｄ＋ｘｅ）／２−ｘｃ          …………（１）
の関係式を略満足する。このためイメージセンサ１４上に投影された眼球１５の各特徴点（角膜反射像及び瞳孔の中心）の位置を検出することにより、眼球１５の光軸１５ａの回転角θを求めることができる。
【０００８】
眼球１５の光軸１５ａの回転角は（１）  式より、
β＊ＯＣ＊ＳＩＮθｘ≒｛（ｘｐｏ−δｘ）−ｘｉｃ｝＊ｐｉｔｃｈ    ……（２）
β＊ＯＣ＊ＳＩＮθｙ≒｛（ｙｐｏ−δｙ）−ｙｉｃ｝＊ｐｉｔｃｈ    ……（３）
と求められる。ここで、θｘはｚ−ｘ平面内での眼球光軸の回転角、θｙはｙ−ｚ平面内での眼球光軸の回転角である。（ｘｐｏ，ｙｐｏ）はイメージセンサ１４上の２個の角膜反射像の中点の座標、（ｘｉｃ，ｙｉｃ）はイメージセンサ１４上の瞳孔中心の座標である。ｐｉｔｃｈはイメージセンサ１４の画素ピッチである。また、βは受光レンズ１２に対する眼球１５の位置により決まる結像倍率で、実質的には２個の角膜反射像の間隔の関数として求められる。
【０００９】
δｘ，δｙは角膜反射像の中点の座標を補正する補正項であり、撮影者の眼球を平行光ではなく発散光にて照明していることにより生じる誤差を補正する補正項及び、δｙに関しては、撮影者の眼球を下まぶたの方から発散光にて照明していることにより生じるオフセット成分を補正する補正項も含まれている。
【００１０】
次に、眼球回転角と注視点の座標の関係から撮影者の注視点を求める。眼球回転角と注視点の座標の関係は、撮影者の眼球光軸の回転角を（θｘ，θｙ）とすると、撮影者の観察面上の注視点（ｘ，ｙ）は、カメラの姿勢が横位置の場合、
ｘ＝ｍ＊（θｘ＋Δ）                              …………（４）
ｙ＝ｍ＊θｙ                                      …………（５）
と求められる。ここで、ｘ方向はカメラの姿勢が横位置の場合の撮影者に対して水平方向、ｙ方向はカメラの姿勢が横位置の場合の撮影者に対して垂直方向を示している。ｍは眼球の回転角からピント板上の座標に変換する変換係数、Δは眼球光軸１５ａと視軸（注視点）とのなす角である。この時の変換係数ｍ、Δには個人差があるため、この変換係数を含んだ形での個人差補正データを予め求めておく必要がある。
【００１１】
個人差補正データは、撮影者に所定の座標を注視してもらい、そのときの眼球光軸の回転角を求める事で算出する事ができる。この様に個人差補正データを求めるための検出動作をキャリブレーションといい、キャリブレーションにより求めた個人差補正データをキャリブレーションデータという。
【００１２】
観察面上（ｘ１，０）を注視したときの眼球の回転角を（θｘ１，０）、（ｘ２，０）を注視したときの眼球の回転角を（θｘ２，０）とすると以下の式で個人差データを求める事ができる。
【００１３】
ｍ＝（ｘ１−ｘ２）／（θｘ１−θｘ２）                …………（６）
Δ＝（ｘ２・θｘ１−ｘ１・θｘ２）／（ｘ１−ｘ２）      ………（７）
このような個人差補正データを求めること以外に、キャリブレーションは、使用する照明の選択や照明の明るさのパラメータの設定等を行っている。照明の種類は、主に裸眼の場合を対象とした照明（裸眼照明）とメガネ（眼鏡）を使用した撮影者用（眼鏡照明）との２種類がある。
【００１４】
キャリブレーション時の照明の選択は、最初に裸眼照明を行って視線の検出が出来なければ、眼鏡照明にするとか、裸眼照明で視線検出出来た場合でも、眼鏡のゴーストが発生しているか否かを判定したり、眼球の距離を判定したりして照明を最終的に決定する。
【００１５】
通常の視線検出動作においては、センサ画面内の瞳孔領域のみを読み出し、時間を短縮する方法が本願出願人より先願（特開平６−１３８３７０号）されている。この提案によれば、過去の視線検出画像の瞳孔位置を記憶しておいてその位置から今回の瞳孔位置を推定し、視線演算を行う領域を限定している。
【００１８】
【発明が解決しようとする課題】
しかしながら、視線検出の演算時間を短縮するためにセンサ画面内の瞳孔領域のみを読み出すと、ゴーストの有無を判定することができず、本来眼鏡照明を使用すべきところで裸眼照明を使うという誤りが生じる。
【００１９】
さらに別な問題として、外光が有る場合は領域を制限して視線検出演算を行った方が良いのに、ゴーストの有無を判定するために画像の全体で演算を行おうとして結果的に視線検出演算ができないことがある。
【００２０】
さらに別な問題として、照明やセンサ制御を決定するために行った視線検出演算結果は個人差補正データを求める際に使用していないため、データが無駄になってしまう。すなわち、１回分の視線検出時間が余計に掛かる。
【００２１】
以上のような様々な課題がある。
【００２４】
（発明の目的）  本発明の第１の目的は、眼鏡用の照明手段を選択する必要があるのに、誤って裸眼用の照明手段を選択してしまうといったことを防止することのできる視線検出装置を提供することにある。
【００２５】
本発明の第２の目的は、個人差データ取得時に、観察者の眼球に照明手段にて照明された以外の光が入射している場合であっても、個人差データ取得の為の動作を正確に行うことのできる視線検出装置を提供することにある。
【００２６】
本発明の第３の目的は、最適な照明手段及び受光手段の制御方法を決定する為に行った視線検出の結果を無駄にせず、個人差補正データの一つとして有効活用することのできる視線検出装置を提供することにある。
【００２９】
【課題を解決するための手段】
上記第１の目的を達成するために、請求項１記載の本発明は、観察者の眼球を照明する為の照明手段と、該照明手段により照明された観察者の眼球像を受光して画像情報を出力する受光手段と、該受光手段にて得られた画像情報の部分領域もしくは全体領域を選択する画像領域選択手段と、該画像領域選択手段にて選択された画像情報の領域から眼球の特徴点を検出する特徴点検出手段と、観察者の個人差データを取得する個人差データ取得手段とを備え、前記個人差データと前記眼球の特徴点から観察者の視線を検出する視線検出装置において、前記個人差データ取得手段が、画像情報中にゴーストが含まれているか否かを前記受光手段にて得られた画像情報の全体領域を用いて判定するゴースト判定手段を有し、前記画像領域選択手段が、前記ゴースト判定手段にてゴーストの有無が判定されるまでは、前記画像情報の全体領域を選択し、ゴースト判定後は特徴点検出のために前記画像情報の部分領域を選択することを特徴とするものである。
【００３０】
また、上記第２の目的を達成するために、請求項２記載の本発明は、観察者の眼球を照明する為の照明手段と、該照明手段により照明された観察者の眼球像を受光して画像情報を出力する受光手段と、該受光手段にて得られた画像情報の部分領域もしくは全体領域を選択する画像領域選択手段と、該画像領域選択手段にて選択された画像情報の領域から眼球の特徴点を検出する特徴点検出手段と、観察者の個人差データを取得する個人差データ取得手段とを備え、前記個人差データと前記眼球の特徴点から観察者の視線を検出する視線検出装置において、前記個人差データ取得手段が、観察者の眼球に前記照明手段によるものではない外光が入射しているか否かを前記受光手段にて得られた画像情報の全体領域を用いて判定する外光判定手段を有し、前記画像領域選択手段が、前記外光判定手段にて外光が入射していると判定された場合は、前記画像情報の部分領域を選択することを特徴とするものである。
【００３１】
また、上記第３の目的を達成するために、請求項３記載の本発明は、観察者の眼球を照明する為の照明手段と、該照明手段により照明された観察者の眼球像を受光して画像情報を出力する受光手段と、該受光手段にて得られた画像情報から眼球の特徴点を検出する特徴点検出手段と、観察者の個人差データを取得する個人差データ取得手段とを備え、前記個人差データと前記特徴点から観察者の視線を検出する視線検出装置において、前記個人差データ取得手段が、前記照明手段と前記受光手段の少なくとも一方の制御方法の設定を変更して視線検出動作を行い、最適な前記照明手段及び前記受光手段の制御方法を決定し、該制御方法で視線検出動作を複数回行った視線検出結果と、該制御方法を決定する際に行った視線検出動作の視線検出結果とから個人差データを算出することを特徴とするものである。
【００３２】
【発明の実施の形態】
以下、本発明を図示の実施の形態に基づいて詳細に説明する。
【００３３】
図１は本発明の実施の第１の形態に係るカメラ本体に内蔵された電気回路の要部に示すブロック図である。
【００３４】
カメラ本体に内蔵されたカメラ制御手段であるところのマイクロコンピュータの中央処理装置（以下ＣＰＵと称す）１００には、視線検出回路１０１、姿勢検知回路１０２、自動焦点検出回路１０３、信号入力回路１０４、ＬＣＤ駆動回路１０５、ＬＥＤ駆動回路１０６、ＩＲＥＤ駆動回路１０７が接続されている。また、不図示ではあるが、視撮影レンズ内に配置された焦点調節回路、絞り駆動回路とはマウント接点を介して信号の伝達がなされる。
【００３５】
ＣＰＵ１００に付随した記憶手段としてのＥＥＰＲＯＭ１００ａは、フィルムカウンタその他の撮影情報を記憶すると共にキャリブレーションを行って得た個人差補正データを記憶する。
【００３６】
視線検出回路１０１は、イメージセンサ１４（ＣＣＤ−ＥＹＥ）からの眼球像の出力をＣＰＵ１００に送信する。ＣＰＵ１００はイメージセンサ１４からの眼球像信号をＣＰＵ内部のＡ／Ｄ変換手段によりＡ／Ｄ変換し、この像情報を視線検出に必要な眼球像の各特徴点を所定のアルゴリズムに従って抽出し、さらに各特徴点の位置から撮影者の眼球の回転角を算出する。
【００３７】
姿勢検知回路１０２は、複数のペアのフォトセンサとＬＥＤ（ＨＶ１，ＨＶ２）及び重力により可動な遮蔽物から成り、重力により遮蔽物が動きフォトセンサの出力が変化することにより姿勢を検知する。
【００３８】
自動焦点検出回路１０３は、複数のラインセンサから得た電圧をＣＰＵ１００に送り、ＣＰＵ１００では内蔵されたＡ／Ｄ変換手段によってラインセンサ信号を順次Ａ／Ｄ変換する。Ａ／Ｄ変換されたセンサ信号は所定のアルゴリズムにより焦点状態を演算するのに用いられる。
【００３９】
前記信号入力回路１０４は、各種スイッチからの信号入力を行い、スイッチの状態が変化するとＣＰＵ１００に割り込み信号を発生させる。ＳＷ−１はレリーズ釦の第１ストロークでＯＮし、測光，ＡＦ，視線検出動作を開始するスイッチ、ＳＷ−２はレリーズ釦の第２ストロークでＯＮするレリーズスイッチ、ＳＷ−ＭＤＩＡＬはカメラの各種撮影モードの他、キャリブレーションモードやカメラのロックポジションを選択するモードダイアルである〔図２（ａ），（ｂ）参照〕。ＳＷ−ＣＡＬＤＥＬは個人差補正データ消去スイッチである。ＳＷ−ＤＩＡＬ１とＳＷ−ＤＩＡＬ２は電子ダイアルで、信号入力回路１０４のアップダウンカウンタに入力され、ここで電子ダイアルの回転クリック量がカウントされる。電子ダイヤルＳＷ−ＤＩＡＬ１はＳＷ−１，ＳＷ−２とモニタ用ＬＣＤ４２の間に配置され、右手の人差し指で操作できるようになっている〔図２（ａ）参照〕。電子ダイヤルＳＷ−ＤＩＡＬ２はカメラの背面に配置され右手の親指で操作できるようになっている〔図２（ａ）参照〕。
【００４０】
ＬＣＤ駆動回路１０５は、ファインダ内ＬＣＤ２４〔図２（ｄ）参照〕及びモニタ用ＬＣＤ４２〔図２（ａ）参照〕に各種情報を表示する他に、不図示のブザーを駆動し、ブザー音を発生させる。
【００４１】
ＬＥＤ駆動回路１０６は、ファインダ内の測距点（焦点検出点）をスーパーインポーズ照明するためのＬＥＤ２１（ＬＥＤ−Ｌ２，ＬＥＤ−Ｌ１，ＬＥＤ−Ｃ，ＬＥＤ−Ｒ１，ＬＥＤ−Ｒ２）を点灯させるための回路である。前記ＬＥＤ−Ｌ２，ＬＥＤ−Ｌ１，ＬＥＤ−Ｃ，ＬＥＤ−Ｒ１，ＬＥＤ−Ｒ２は、それぞれファインダ内の測距マークＦＰ−Ｌ２，ＦＰ−Ｌ１，ＦＰ−Ｃ，ＦＰ−Ｒ１，ＦＰ−Ｒ２に対応しており、ＬＥＤ２１を点灯させることによりファインダ内の測距マークが照明される〔図２（ｄ）参照〕。
【００４２】
ＩＲＥＤ駆動回路１０７は、撮影者の眼球を赤外光で照明するための赤外ＬＥＤ（ＩＲＥＤ−０，ＩＲＥＤ−１，ＩＲＥＤ−２，ＩＲＥＤ−３，ＩＲＥＤ−４，ＩＲＥＤ−５，ＩＲＥＤ−６，ＩＲＥＤ−７）を点灯させるための回路である。この回路には過電流を防止する為の回路や長時間の通電を防止するための回路が組み込まれている。ＩＲＥＤは２つがペアで使用され、眼球に対し下側から照明される。なお、裸眼用の照明は視線検出の光軸に近く、２つの間隔も狭い。眼鏡用照明は、光軸から遠く、２つの照明の間隔は広い。そして、眼鏡使用者は、裸眼の人よりも眼球距離が遠くなることが多く、照明の間隔が狭いと、角膜反射像が検出できなかったり、光軸に近いところから照明すると眼鏡表面の反射像により（ゴースト）角膜反射像が検出できなくなってしまう。更に眼鏡照明の時は、裸眼照明の時に較べ、光量を多くしたり、センサの蓄積時間を長くしたりする。
【００４３】
カメラの姿勢が横位置の場合、裸眼用としてＩＲＥＤ−０，ＩＲＥＤ−１が、また眼鏡用としてＩＲＥＤ−４，ＩＲＥＤ−５が、それぞれペアとして使用され、グリップ上の縦位置では、裸眼用としてＩＲＥＤ−３，ＩＲＥＤ−０が、また眼鏡用としてＩＲＥＤ−７，ＩＲＥＤ−４が、ペアとして使用される。グリップ下の縦位置では、裸眼用としてＩＲＥＤ−１，ＩＲＥＤ−２が、また眼鏡用としてＩＲＥＤ−５，ＩＲＥＤ−６が、それぞれペアとして使用される〔図２（ｃ）参照〕。
【００４４】
上記の様に、どの姿勢においても裸眼の場合は間隔の狭いＩＲＥＤペアが使用され、眼鏡使用時や眼球の距離が遠い場合は間隔の広いＩＲＥＤペアが使用される。
【００４５】
ＣＰＵ１００は視線検出装置の各機能部材に信号を送信して制御を行うとともに、各種の検出回路からの信号を受けてその信号処理を行う。
【００４６】
次に、図３を使って、キャリブレーション動作と表示について説明する。
【００４７】
カメラのモードダイアルＳＷ−ＭＤＩＡＬをキャリブレーションモードにすると、プログラムの制御がステップ＃１に移る。そして、キャリブレーションモードにおいて電子ダイアルＳＷ−ＤＩＡＬ１を回転させると、キャリブレーション番号の変更ができる。キャリブレーションモードで電子ダイアルＳＷ−ＤＩＡＬ１に変化があると割り込みでキャリブレーション番号の変更処理を行う。
【００４８】
次に、パラメータの初期設定を行う（＃２）。初期設定が終了すると、カメラの姿勢検知を行い、カメラの姿勢を４つの姿勢（横位置、縦位置：グリップが上、縦位置：グリップが下、逆さ位置）に分類する（＃３）。次いで、その姿勢のキャリブレーションデータがあるかどうかを判定し（＃４）、データがある場合はキャリブレーション番号（ＣＡＬ番号）を点灯させる（＃５）。一方、データがなければＣＡＬ番号を点滅させる（＃６）。
【００４９】
次に、スイッチＳＷ−１の状態を判別する（＃７）。もしスイッチＳＷ−１がＯＮのままならステップ＃３〜＃７を繰り返す。また、スイッチＳＷ−１がＯＦＦ状態なら、キャリブレーションの指標をファインダ内にスーパーインポーズ表示する。横位置で構えた場合は右測距点を第１の指標として使用し、縦位置に構えた場合は常に上になる測距点を第１の指標として使用する。その為、姿勢がグリップ下位置の縦位置であるか判定し（＃８）、そうであるならＬＥＤ−Ｌ２を点滅させることにより、図２（ｄ）に示した左端の測距マークＦＰ−Ｌ２を表示する（＃１０）。それ以外のカメラ姿勢ならＬＥＤ−Ｒ２を点滅させ、右端の測距マークＦＰ−Ｒ２を表示する。この状態でスイッチＳＷ−１がＯＮされるのを待つ（＃１１）。
【００５０】
上記スイッチＳＷ−１がＯＦＦの間はステップ＃３〜＃１１を繰り返す。そして、この間に電子ダイアルＳＷ−ＤＩＡＬ１を回転させると、キャリブレーション番号の表示が変化する。
【００５１】
スイッチＳＷ−１がＯＮされると、上記ステップ＃９又は＃１０で点滅表示したＬＥＤを点灯表示にし（＃１２）、サブルーチン「眼鏡判定」をコールし、視線検出で使う照明の選択やその他のパラメータ設定を行う（＃１３）。ここでは、何種類かの照明で視線検出を行い、どの照明系が良いかの選択を行ったり、その結果によって照明の明るさ設定などを行う。詳しくは図４のフローチャートを使って説明する。
【００５２】
次にキャリブレーションデータを取得するために「ＣＡＬ視線演算」ルーチンをコールする（＃１３．  ５）。ここでは、サブルーチン「眼鏡判定」で決定した照明とパラメータ設定で視線検出を行う。視線演算が終了するとＬＥＤを消灯させ（＃１４）、視線演算が失敗したかを判定する（＃１５）。成功なら「ピピッ」というブザーで成功したことを知らせる（＃１６）。
【００５３】
次に、スイッチＳＷ−１がＯＦＦするのを待ち（＃１７）、ＯＦＦになったら第２の指標を点滅させる。グリップ下の縦位置の場合点滅させるＬＥＤが異なるのでそれを判定し（＃１８）、グリップ下の縦位置ならＬＥＤ−Ｒ２を点滅させ、測距マークＦＰ−Ｒ２を表示する（＃１９）。それ以外ならＬＥＤ−Ｌ２を点滅させ、測距マークＦＰ−Ｌ２を表示する（＃２０）。これで縦位置なら下の測距点が、横位置なら左の測距点が、それぞれ点滅表示されることになる。
【００５４】
そして、スイッチＳＷ−１が再びＯＮされるのを待ち（＃２１）、ＯＮされたらＬＥＤを点滅から点灯に変え（＃２２）、２点目の指標に対するキャリブレーションの視線検出を行う（＃２３）。この時、２点目の指標の視線演算であることを示すフラグＣＡＬＳＴＥＰ２をセットしておく。視線演算が終了したらＬＥＤを消灯させ（＃２４）、再度視線失敗かどうか判定する（＃２５）。成功なら「ピピッ」というブザー音で知らせ（＃２６）、取得したデータをカメラ姿勢とＣＡＬ番号に対応させてＣＰＵ内のＥＥＰＲＯＭ１００ａに記憶する（＃２７）。ここで、キャリブレーションが終了したことを表示し（＃２８）、スイッチＳＷ−１がＯＦＦされるのを待つ（＃２９）。そして、スイッチＳＷ−１がＯＦＦされたらリターンする。
【００５５】
次に、ステップ＃１３．５またはステップ＃２３で視線演算が失敗した場合について説明する。
【００５６】
この場合、ステップ＃１５又は＃２５からステップ＃３０へ分岐し、ここで失敗表示を行う。これは、「ＣＡＬ」の表示と番号の両方を点滅し、ブザーを連続で「ピピピピピピピピピピピピピ・・・・・・・」と鳴らすことで失敗を認識させる。スイッチＳＷ−１がＯＮ（＃３０．  ５）及びＯＦＦ（＃２９）するのを待ち、リターンする（＃３１）。
【００５７】
リターンした後も引き続きカメラのモードダイアルＳＷ−ＭＤＩＡＬがキャリブレーションモードになっていれば、上記のステップ＃１からプログラムを実行する。
【００５８】
ここで、個人差補正データの消去について簡単に説明しておく。
【００５９】
カメラのモードがキャリブレーションモードの時に、キャリブレーションデータ消去スイッチＳＷ−ＣＡＬＤＥＬをＯＮする事によって、姿勢別の個人差補正データの消去を行うことができる。該消去スイッチＳＷ−ＣＡＬＤＥＬをＯＮすると信号入力回路１０４はＣＰＵ１００に割り込み信号を発生させ、ＣＰＵ１００は割り込みサブルーチン「データ消去」を実行する。
【００６０】
次に、本発明の主要部分であるサブルーチン「眼鏡判定」（図３のステップ＃１３の部分）について、図４のフローチャートにより説明する。
【００６１】
最初は、裸眼設定にするため「眼鏡フラグ」（ＧｌａｓｓＦ）を“０”に、眼鏡によるゴーストの有無を判断するため「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“１”に、それぞれセットする（＃３２）。制限された領域の外にゴーストがあるとゴーストの発見ができなくなるため、全体領域で視線演算を行う。次に、「視線検出」（ＮＡＣ＿ＭＡＩＮ）をコールする（＃３３）。
【００６２】
ここで、図５（ａ）を使ってサブルーチン「視線検出」の説明を行う。
【００６３】
サブルーチンがコールされると（＃Ｍ０１）、まず設定されたＣＡＬ番号に対する個人差データをＥＥＰＲＯＭ１００ａから読み出す（＃Ｍ０２）。キャリブレーションモードの場合は過去に入力されたデータを読み出すが、過去にデータが無い場合やデータが消去されている場合はパラメータを所定の値に初期設定する。次に、ＣＡＬ番号に関わらず共通なパラメータの初期化を行う（＃Ｍ０３）。パラメータの初期化が終了したら、イメージセンサの蓄積を開始する（＃Ｍ０４）。
【００６４】
イメージセンサ１４はまず照明手段を使わずに所定時間予備蓄積を行う。この予備蓄積の結果で実際に眼球像を求めるときの蓄積制御方法を決定する。蓄積制御方法が決定したら今度は照明を点灯して蓄積を行う。照明はフラグＧｌａｓｓＦが“１”なら眼鏡用照明を使用する。照明はフラグＧｌａｓｓＦが“１”にセットされていれば眼鏡用照明を使い、“０”ならば裸眼用照明を使う。
【００６５】
蓄積制御は、照明に連動して変える。具体的には眼鏡照明の時は、裸眼照明の時と較べ、蓄積時間を長くする。若しくは照明の光量を増す様にしても良い。
【００６６】
また、照明の種類とは別に、蓄積制御の補正の設定がされていれば蓄積制御の補正を行う（蓄積時間を短くするとか、外光除去蓄積を行うとか）。
【００６７】
次に、センサの読み出し及び特徴点の抽出を行う（＃Ｍ０５）。瞳孔の中心や照明の反射像（Ｐ像：プルキンエ像）などの特徴点座標が抽出できたら、所定の演算を行って眼球像の回転角を求める（＃Ｍ０６）。通常モードでは眼球像の回転角からキャリブレーションで求めた個人差補正データを使って観察者の注視点座標を求める。キャリブレーション動作時は眼球の回転角だけを求める。キャリブレーション時は、「キャリブレーションフラグ」を“１”に設定し、この事によってキャリブレーション用の視線演算を行う。さらにこれらの他に、眼球像の信頼性の度合いを示す値や眼球の距離などを求める。
【００６８】
このように「視線検出」（ＮＡＣ＿ＭＡＩＮ）では、眼球像の瞳孔円及び照明の反射像（Ｐ像）などの特徴点を抽出し、所定の演算を行うことにより、観察者の眼球の回転角度や眼球までの距離，計算したデータの信頼性評価値等を求める。
【００６９】
図４に戻って、視線検出の結果を判定して分岐を行う（＃３４）。視線検出が成功していればＮＡＣ＿ＯＫフラグが“１”にセットされるのでこれで判定する。
【００７０】
ここから先は、いくつかのケースに分けて説明する。
【００７１】
最初に裸眼の場合（眼鏡ゴーストが無い場合）について説明する。
【００７２】
視線検出が成功するとステップ＃３５へ進み、今回が２巡目かどうかを判定する（裸眼照明→眼鏡照明の２回で１巡）。１巡目なら（＃３６）へ分岐する。そして、ここで既にゴーストが発見されているかどうかを判定する。１回目では未だゴースト判定を行っていないのでステップ＃３７へ分岐する。ゴースト判定用の眼球像を取り込んで視線検出を行ったので、ゴースト判定の前に「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“０”にクリアする。領域制限を禁止したのはゴースト判定をする為なので、１回だけ領域制限を禁止すればよく、次回からは領域制限を行う。
【００７３】
次に、ゴーストの数を判定する（＃３８）。ゴーストの数はＰ像検出の時にＰ像と同程度の輝度レベルで大きさがＰ像より大きい領域の数をカウントしておく。裸眼の場合、ゴーストは無いので眼球距離Ｓｚｅの閾値をゴースト無し閾値に設定する（＃４０）。そして、設定した閾値と検出した眼球距離Ｓｚｅとを比較して（＃４３）、眼球距離が近ければステップ＃４４へ分岐し、眼鏡照明かどうかを判定する（裸眼の人は、眼鏡の人に比べ眼球距離が短い）。最初は裸眼設定なのでステップ＃５０へ進み、ここでも裸眼設定なのでステップ＃５２へと進む。
【００７４】
そして、「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“０”に設定し、領域制限を許可する。今説明していた動作では既に「領域制限禁止フラグ」は“０”に設定されているが、別のルートを通った場合に「領域制限禁止フラグ」が“１”のままにならないように、ここで“０”にしている。同時に、眼鏡判定直後を表す「ＣＡＬ眼鏡判定後フラグ」（ＣＡＬ＿ＪＡＧＪ）を“１”に設定する（＃５２）。このフラグが“１”にセットされていると、眼鏡判定で使用したデータが「ＣＡＬ視線演算」で使われる。最後にサブルーチンをリターンする（＃５３）。
【００７５】
このように、最初画像の領域制限を禁止し、全体画像でゴーストを判断し、ゴーストを判断する為の画像を得た後に領域の制限を許可し、視線検出の演算時間を短縮する為にセンサ画面内の瞳孔領域のみを読み出すようにしたことにより、ゴーストの有無を判定することができ、さらにゴースト判定後は演算時間の短縮が可能である。１  回の視線検出にかかる時間を短くすることにより、同じ時間内に多くの回数視線検出が可能になり、精度のよいキャリブレーションデータを求めることができる。さらに、正しくゴースト判定ができるので、本来眼鏡照明を使用すべきところは眼鏡照明の設定ができる。
【００７６】
次に、図４のステップ＃４３で眼球の距離が閾値より遠かった場合を説明する。
【００７７】
この場合、ステップ＃４３からステップ＃４６へ分岐する。そして、「眼鏡フラグ」（ＧｌａｓｓＦ）を判定し、ここでは“０”なので、サブルーチン「眼鏡設定＆距離判定」（ＧｓｅｔＤｓｔＣｈｋ）を実行する（＃４７）。サブルーチン「眼鏡設定＆距離判定」（ＧｓｅｔＤｓｔＣｈｋ）では、「眼鏡フラグ」（ＧｌａｓｓＦ）を“１”に設定し、再び眼球距離を判定する。これは、眼鏡照明で距離が近い場合、蓄積過多になる傾向があったため、本発明でそれに対する対策を新しく追加した。ここではステップ＃４３とは別の閾値で距離の判定を行う。眼球距離が近い場合は、「近距離フラグ」（ＤｉｓｔａｎｃｅＦ  ）を“１”に設定する。
【００７８】
サブルーチン「眼鏡設定＆距離判定」（ＧｓｅｔＤｓｔＣｈｋ）を終了すると、ステップ＃３３に戻り、再び「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行う。そして、視線成功（＃３４）で、１巡目なら（＃３５）、ゴーストフラグの判定を行う（＃３６）。ゴースト無しなら、ＥｓｔｉｍＤＩＳを“０”にクリアし（＃３７）、ゴースト数を判定する（＃３８）。そして、眼球距離Ｓｚｅの閾値をゴースト無しの値に設定し（＃４０）、検出した眼球距離と閾値の比較を行う（＃４３）。眼球距離が遠い場合はステップ＃４６で眼鏡フラグをチェックする。今回は眼鏡照明なのでステップ＃５０へ進み、眼鏡照明で検出した結果に基づいて距離の判断を行うために、もう一度サブルーチン「眼鏡設定＆距離判定」ＧｓｅｔＤｓｔＣｈｋを実行する（＃５１）。裸眼照明で既に距離の判定を行っている場合もあるが、眼鏡照明で視線演算を行った結果で判定をし直す方がより正確な判断が可能なためである。
【００７９】
次に「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“０”に設定し領域制限を許可して「ＣＡＬ  眼鏡判定後フラグ」（ＣＡＬ＿ＪＡＧＪ）を“１”に設定し（＃５２）、サブルーチンを終了する（＃５３）。
【００８０】
次に、眼鏡の場合（眼鏡ゴーストが発生した場合）の説明を行う。
【００８１】
ステップ＃３３で視線検出を行い、視線検出が成功するとステップ＃３４からステップ＃３５へ進み、今回が２巡目かどうか判定する。１巡目ならステップ＃３６へ分岐する。１  回目では未だゴースト判定を行っていないので、ステップ＃３７へ分岐する。ゴースト判定の前に「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“０”にクリアし、次回からは領域制限を行う。次にゴーストの数を判定する（＃３８）。ゴーストの数が閾値より多いとステップ＃３９へ分岐し、眼鏡照明かどうかを判定する。最初は裸眼設定なのでステップ＃４８へ進み、「ゴーストフラグ」を“１”に設定する。
【００８２】
次にサブルーチン「眼鏡設定＆距離判定」（ＧｓｅｔＤｓｔＣｈｋ）（＃４９）において、「眼鏡フラグ」（ＧｌａｓｓＦ）を“１”に設定し、眼球距離を判定する。このサブルーチンを終了するとステップ＃３３に戻り、もう一度「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行う。そして、視線検出成功なら（＃３４）、２巡目の判定を行い（＃３５）、１巡目なのでステップ＃３６へ進む。既にゴースト判定を行い、ゴーストフラグが“１”に設定されているので、眼球距離Ｓｚｅの閾値を「ゴースト有り閾値」に設定する（＃４２）。
【００８３】
そして、前記の閾値と眼球距離Ｓｚｅを比較して分岐を行う（＃４３）。距離が遠いならステップ＃４６で眼鏡判定を行う。眼鏡照明なのでステップ＃５０に進み、ステップ＃５１  へ分岐する。もう一度サブルーチン「眼鏡設定＆距離判定」ＧｓｅｔＤｓｔＣｈｋを実行する（＃５１  ）。ここで、眼鏡照明で検出した結果に基づいて距離の判定を行う。次に「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“０”に設定し領域制限を許可し、「ＣＡＬ眼鏡判定後フラグ」（ＣＡＬ＿ＪＡＧＪ）を“１”に設定し（＃５２）、サブルーチンを終了する（＃５３）。
【００８４】
上記ステップ＃４３で距離判定を行って距離が近い場合はステップ＃４４を介して＃４５へ分岐する。１  回目の視線検出でゴーストが発生したため眼鏡照明で再検出を行ったが、眼球距離が近い場合である。この場合は「眼鏡フラグ」（ＧｌａｓｓＦ）及び、「近距離フラグ」（ＤｉｓｔａｎｃｅＦ  ）を“０”にクリアし、再度、裸眼照明で視線検出を試みる。「２巡目フラグ」を“１”にセットし、２巡目であることを設定する。この後、ステップ＃３３に戻り、再度「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行う。視線検出ができたなら（＃３４）、分岐を行い、２巡目判定を行う（＃３５）。２巡目なのでステップ＃５０へ進み、眼鏡判定を行い、その結果ステップ＃５２に進む。ここで、「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を“０”に設定し領域制限を許可し、「ＣＡＬ眼鏡判定後フラグ」（ＣＡＬ＿ＪＡＧＪ）を“１”に設定し（＃５２）、サブルーチンを終了する（＃５３）。
【００８５】
このように、眼鏡照明の時は、距離判定を行い、撮影者の眼球距離が所定より短い場合、蓄積制御を変更することによって適切な眼球像を得ることができる。具体的には、眼鏡照明の場合、受光センサの蓄積時間を長くしたり、照明を強くしたりして制御を行うが、眼鏡照明で眼球距離が近い場合は、蓄積時間を短くしたり、照明を弱めにしたりする。
【００８６】
次に、視線検出ができなかった場合について説明を行う。
【００８７】
「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行って視線検出ができなかった場合、ステップ＃３４からステップ＃５４へ分岐する。ここで「瞬きフラグ」（ＷｉｎｋＦ  ）が“１”に設定されているか判定を行い（＃５４）、Ｗｉｎｋ＝１なら「繰り返しフラグ」（ＲｅｐＦｌａｇ  ）を“１”にセットする（＃５５）。キャリブレーション動作時に「ＲｅｐＦｌａｇ  」はクリアされないため、瞬きの判定で同じ蓄積制御を行うのは１回だけである。これは、瞬きによってキャリブレーション動作の時間が長くなりすぎないようにするためである。さらに、瞬きの判定を行うのは眼鏡判定の中だけである。
【００８８】
次にステップ＃３３に戻り、再度同じ照明で「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行う。
【００８９】
瞬き検知は視線演算中の「特徴点抽出」、つまり図５（ａ）のステップ＃Ｍ０５で行う。図５（ｂ）を使ってこの「特徴点抽出」の説明を行う。
【００９０】
サブルーチン「特徴点抽出」がコールされると（＃Ｒ０１）、まずセンサのブロック読みを行う（＃Ｒ０２）。ブロック読みでセンサの全体を荒く読むことができる。ブロック読みの画像を使って最低輝度を求める（＃Ｒ０３）。最低輝度は瞬き検知の他、領域制限の読み出し領域を検出するとき、さらに特徴点を抽出するときなどに用いる。次に「瞬きの検知」（＃Ｒ０４）、「領域設定」（＃Ｒ０５）を行う。次に「領域設定」で設定された領域の読み出しを行いながら画像の特徴点を抽出する（＃Ｒ０６）。特徴点の抽出，センサの読み出しが終了すると、サブルーチンをリターンする（＃Ｒ０７）。
【００９１】
ここで、図６を使って瞬き判定の説明を行う。
【００９２】
サブルーチン「瞬き検知」がコールされると（＃Ｗ０１）、まず瞬きフラグ「ＷｉｎｋＦ  」をクリアする（＃Ｗ０２）。次に、前回瞬き検知で同じ蓄積制御を行っているかを「ＲｅｐＦｌａｇ  」を使って判定する（＃Ｗ０３）。「ＲｅｐＦｌａｇ  」がセットされている場合はすぐにリターンする。瞬き判定を２回続けて行わないためである。
【００９３】
一方、「ＲｅｐＦｌａｇ  」がクリアされている場合は、瞬きの通常閾値を設定する（＃Ｗ０４）。次に全体輝度を全体輝度閾値と決定し、全体の輝度が高く（＃Ｗ０５）、外光除去制御でないなら（＃Ｗ０６）、瞬きの高輝度閾値を設定する。次に眼鏡照明かどうかを判定し（＃Ｗ０８）、眼鏡照明なら眼鏡閾値を設定する（＃Ｗ０９）。次に、ブロック画像から求めた最低輝度からセンサのダーク分を減算し（＃Ｗ１０）、それを設定した閾値と比較する（＃Ｗ１１）。閾値より大きければ「ＷｉｎｋＦ  」を“１”に設定し、瞬きであると判定する。瞬き判定が終了するとリターンする（＃Ｗ１３）。
【００９４】
ここで再び図４の説明に戻る。
【００９５】
ステップ＃５４で瞬きをしていない場合は、眼鏡照明の判定を行う（＃５６）。裸眼照明で検出ができなければ次回眼鏡照明で視線検出を行うので「眼鏡フラグ」（ＧｌａｓｓＦ）を“１”に設定する（＃５７）。その後、ステップ＃３３に戻り、「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行う。眼鏡照明で視線演算を行って（＃３３）、検出可能なら（＃３４）、２巡目であるかを判定し（＃３５）、１巡目ならゴーストの判定を行う（＃３６）。そして、１回目の視線検出で検出できなかった場合、未だゴースト判定を行っていないので、「領域制限禁止フラグ」を“０”にクリアした後（＃３７）、ゴースト数の判定を行う（＃３８）。ゴースト有りなら眼鏡判定を行い（＃３９）、眼球距離Ｓｚｅはゴースト有りの閾値を設定する（＃４１）。＃３８でゴーストが無ければ、ゴースト無し閾値を設定する（＃４０）。
【００９６】
その後は、前に説明したのと同様に距離判定を行い適切な照明を決定する。
【００９７】
このように裸眼照明で検出ができなかった場合は、眼球距離等に無関係に照明を眼鏡用に切り換えて検出を行って見る。「瞬き検知」結果を用いなければ、裸眼の観察者がたまたま瞬きを行ったために眼鏡照明に設定されてしまったり、眼鏡の観察者が瞬きの為にキャリブレーションが出来なくなってしまうことがある。そこで、「瞬き検知」結果をキャリブレーション動作中に適用し、同じ照明で再度視線演算を繰り返すことによって、正しく照明の設定や蓄積制御の設定が出来る。さらに、瞬きの判定で同じ蓄積制御を繰り返すのは１回のみとし、瞬き判定でキャリブレーション動作が長くなることを防いでいる。
【００９８】
ステップ＃５６で既に眼鏡照明の時は、２巡目の判定を行う（＃５８）。１巡目なら、外光の判定を行う（＃５９）。ここでは、外光の判定を行い、もし外光があるなら次回領域制限を行うように「領域制限禁止フラグ」（ＥｓｔｉｍＤｉｓ）を０にクリアする（＃６０）。これは、外光が有るために偽のＰ像や睫毛の偽エッジが発生して視線検出が失敗する場合が有るためである。ここで領域制限を行ってしまうとゴースト数の判定ができなくなる事があるが、視線検出ができないよりは良い。外光が無い場合は、領域制限禁止のままである。次に「２巡目フラグ」を１に設定し、「眼鏡フラグ」（ＧｌａｓｓＦ）を“０”にクリアし（＃６１）、再度裸眼照明で「視線検出」（ＮＡＣ＿ＭＡＩＮ）を行う。
【００９９】
２巡目でステップ＃６２に分岐した場合には、キャリブレーション失敗を表す「ＣＡＬ失敗フラグ」を“１”に設定する（＃３３）。そして、ステップ＃５０〜＃５２を通過し（プログラムの都合上通過するが取り立てて意味はない）、リターンする（＃５３）。
【０１００】
このように、裸眼照明→眼鏡照明→裸眼照明→眼鏡照明という巡で視線演算を行って検出ができなければキャリブレーション失敗となる。
【０１０１】
次に、図３のステップ＃１３．  ５及びステップ＃２３のサブルーチン「ＣＡＬ視線演算」の詳細について、図７のフローチャートにより説明する。
【０１０２】
図３のステップ＃１３．  ５でサブルーチン「ＣＡＬ  視線演算」がコールする前にはサブルーチン「眼鏡判定」が実行され（図３のステップ＃１３）、その最後のステップ、つまり図４のステップ＃５２でフラグ「ＣＡＬ＿ＪＡＧＪ」が“１”に設定されている。この状態で図７のステップ＃８０にプログラムの制御が移行してくる。
【０１０３】
まず、ＣＡＬ視線演算を行うに当たり、初期設定を行う（＃８０）。キャリブレーションで視線検出を試行する回数の設定し、取得したデータを格納するアドレス設定、検出できた回数をカウントするカウンタ、及び、「ＣＡＬ＿ＥＲＲ  フラグ」のクリアを行う。次にステップ（＃８２）でフラグ「ＣＡＬ＿ＪＡＧＪ」が“０”であるか判定をし、もし“０”なら「視線検出」（ＮＡＣ＿ＭＡＩＮ）（＃８３）をコールする。眼鏡判定を行った直後なら「ＣＡＬ＿ＪＡＧＪ」が“１”に設定されているので「視線検出」（ＮＡＣ＿ＭＡＩＮ）をコールせずにステップ＃８４へ進む。
【０１０４】
このことにより、眼鏡判定で視線検出を行った結果を捨てずに使用することができる。
【０１０５】
次に、同じデータを重複して使用しないようにフラグ「ＣＡＬ＿ＪＡＧＪ」を“０”にクリアする（＃８４）。そして、視線検出の結果を判定する（＃８５）。視線検出が成功していればＮＡＣ＿ＯＫフラグが“１”にセットされるのでこれで判定する。成功していればステップ＃８６で今検出した視線データを所定のアドレスに格納し、次のステップ＃８７で成功したデータ数をカウントする。そして、試行する回数をダウンカウントしているカウンタを減算し（＃８８）、もし「０」でないなら所定回数ステップ＃８１〜＃８８を繰り返す。所定回数繰り返すとループをぬけ、個人差データの計算を行う（＃８９）。ここで、片方の指標に対するデータが計算できる。
【０１０６】
次に、フラグ「ＣＡＬ＿ＳＴＥＰ２」でどちらの指標を見ているのかを判定し、１点目ならステップ＃９１へ、２点目ならステップ＃９２へ、それぞれ分岐し、計算データを格納するアドレス設定を行い、アドレスが設定されたら計算データを格納する（＃９３）。次に成功したデータ数（ステップ＃８７でカウントしている）が所定数より多いかどうかを判定し（＃９４）、所定数に満たなければ「ＣＡＬ＿ＥＲＲ  フラグ」を“１”に設定する（＃９５）。最後にサブルーチンをリターンする（＃９６）。
【０１０７】
このようにすることによって、サブルーチン「眼鏡判定」、即ち照明やセンサ制御を決定するために行った視線検出演算結果は個人差補正データを求める際に有効に使うことができ、データが無駄にならない。つまり、１回分の視線検出時間だけ速くキャリブレーション動作が終了する。
【０１０８】
（発明と実施の形態の対応）
実施の各形態において、ＩＲＥＤ駆動回路１０７及び赤外発光ダイオードＩＲＥＤ−０〜ＩＲＥＤ−７が本発明の照明手段に相当し、視線検出回路１０１及びイメージセンサ１４が本発明の受光手段に相当する。
【０１０９】
また、ＣＰＵ１００内の図３〜図７の動作を行う部分が、本発明の特徴点検出手段、個人差データ取得手段、決定手段、ゴースト判定手段、画像領域選択手段、外光判定手段に相当する。
【０１１０】
以上が実施の形態の各構成と本発明の各構成の対応関係であるが、本発明は、これら実施の形態の構成に限定されるものではなく、請求項で示した機能、又は実施の形態がもつ機能が達成できる構成であればどのようなものであってもよいことは言うまでもない。
【０１１１】
（変形例）
本発明は、一眼レフカメラに適用した場合を述べているが、レンズシャッタカメラ，ビデオカメラ等のカメラにも適用できるものである。更には、その他の光学機器や他の装置や構成ユニットとしても適用することができるものである。
【０１１６】
【発明の効果】
以上説明したように、本発明によれば、画像情報中にゴーストが含まれているか否かを受光手段にて得られた画像情報の全体領域を用いて判定するゴースト判定手段にてゴーストの有無が判定されるまでは、受光手段にて得られた画像情報の全体領域を選択し、ゴーストの有無が判定された後は特徴点検出のために画像情報の領域を制限して眼球の特徴点を検出する。
【０１１７】
よって、眼鏡用の照明手段を選択する必要があるのに、誤って裸眼用の照明手段を選択してしまうといったことを防止することができる。
【０１１８】
また、本発明によれば、観察者の眼球に照明手段によるものではない外光が入射しているか否かを受光手段にて得られた画像情報の全体領域を用いて判定する外光判定手段にて外光が入射していると判定された場合は、受光手段にて得られた画像情報の領域を制限して眼球の特徴点を検出する。
【０１１９】
よって、個人差データ取得時に、観察者の眼球に照明手段にて照明された以外の光が入射している場合であっても、個人差データ取得の為の動作を正確に行うことができる。
【０１２０】
また、本発明によれば、照明手段と受光手段の少なくとも一方の制御方法の設定を変更して視線検出動作を行うことで最適な照明手段及び受光手段の制御方法を決定し、この決定された制御方法で視線検出動作を複数回行った視線検出結果と、制御方法を決定する際に行った視線検出動作の視線検出結果とから個人差データを算出する。
【０１２１】
よって、最適な照明手段及び受光手段の制御方法を決定する為に行った視線検出の結果を無駄にせず、個人差補正データの一つとして有効活用することができる。
【図面の簡単な説明】
【図１】本発明の実施の各形態に係るカメラの要部構成を示すブロック図である。
【図２】図１のカメラの各操作部材や視線検出用照明手段やファインダ内の表示例を示す図である。
【図３】図１のカメラのキャリブレーション動作を示すフローチャートである。
【図４】図３のステップ＃１３での動作を示すフローチャートである。
【図５】図１のカメラの視線検出時の動作を示すフローチャートである。
【図６】図５（ｂ）のステップ＃Ｒ０４での動作を示すフローチャートである。
【図７】図１のカメラのキャリブレーション視線演算時の動作を示すフローチャートである。
【図８】視線検出原理について説明する為の図である。
【符号の説明】
１００    マイクロコンピュータの中央処理装置（ＣＰＵ）
１０１    視線検出回路
１０２    姿勢検知回路
１０３    自動焦点検出回路
１０４    信号入力回路
１０５    ＬＣＤ駆動回路
１０６    ＬＥＤ駆動回路
１０７    ＩＲＥＤ駆動回路
ＩＲＥＤ−０〜ＩＲＥＤ−７    赤外発光ダイオード
【図１】
0003624030.tif 000002
【図２】
0003624030.tif 000003
【図３】
0003624030.tif 000004
【図４】
0003624030.tif 000005
【図５】
0003624030.tif 000006
【図６】
0003624030.tif 000007
【図７】
0003624030.tif 000008
【図８】
0003624030.tif 000009