JP2023040771A - 視線検出装置 - Google Patents
視線検出装置 Download PDFInfo
- Publication number
- JP2023040771A JP2023040771A JP2021147925A JP2021147925A JP2023040771A JP 2023040771 A JP2023040771 A JP 2023040771A JP 2021147925 A JP2021147925 A JP 2021147925A JP 2021147925 A JP2021147925 A JP 2021147925A JP 2023040771 A JP2023040771 A JP 2023040771A
- Authority
- JP
- Japan
- Prior art keywords
- calibration
- pupil
- contour
- line
- sight
- 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.)
- Pending
Links
Images
Landscapes
- Indication In Cameras, And Counting Of Exposures (AREA)
- Eye Examination Apparatus (AREA)
- Position Input By Displaying (AREA)
- Studio Devices (AREA)
- Camera Bodies And Camera Details Or Accessories (AREA)
Abstract
【課題】瞳孔の輪郭上の位置の検出状態に依らず視線を高精度に検出することのできる技術を提供する。
【解決手段】本発明の視線検出装置は、ユーザーの眼を撮像した眼画像から瞳孔の輪郭上の複数の位置を検出し、当該複数の位置に関連した輪郭情報を生成する瞳孔検出手段と、瞳孔検出手段により検出された複数の位置から推定される瞳孔の中心位置に基づいて、ユーザーの視線を検出する視線検出手段とを有し、視線検出手段は、記憶手段に格納されている複数のキャリブレーションデータのうち、瞳孔検出手段により生成された現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、ユーザーの視線を検出する。
【選択図】図9
【解決手段】本発明の視線検出装置は、ユーザーの眼を撮像した眼画像から瞳孔の輪郭上の複数の位置を検出し、当該複数の位置に関連した輪郭情報を生成する瞳孔検出手段と、瞳孔検出手段により検出された複数の位置から推定される瞳孔の中心位置に基づいて、ユーザーの視線を検出する視線検出手段とを有し、視線検出手段は、記憶手段に格納されている複数のキャリブレーションデータのうち、瞳孔検出手段により生成された現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、ユーザーの視線を検出する。
【選択図】図9
Description
本発明は、視線検出装置に関し、特に撮像装置やヘッドマウントディスプレイなどに関する。
特許文献1には、角膜反射像の位置と瞳孔の中心位置とに基づいて視線を検出する方法が開示されている。特許文献2には、瞳孔の輪郭上の複数の位置を検出し、当該複数の位置から、瞳孔の輪郭に近似した円周を判断し、当該円周の中心位置を瞳孔の中心位置として検出(推定)する方法が開示されている。
特許文献2に開示の方法は、瞳孔形状が真円形状である場合に好適に用いることができる。しかしながら、瞳孔形状には個人差があり、瞳孔形状が真円形状ではない楕円形状であることがある。特許文献2に開示の方法では、瞳孔形状が楕円形状で、かつ瞳孔輪郭の一部が検出できなかった場合に、瞳孔中心の検出結果に大きな誤差が生じる。そして、そのような誤差を含んだ検出結果に基づいて視線を検出すると、視線の検出結果にも大きな誤差が生じる。つまり、瞳孔形状が楕円形状で、かつ瞳孔輪郭の一部が検出できなかった場合に、瞳孔中心の検出精度と視線の検出精度とが著しく低下してしまう。
図31(A),31(B)は、実際の瞳孔中心と、検出された瞳孔中心との一例を示す図である。図31(A),31(B)には、瞳孔輪郭、瞳孔輪郭に近似した円周、および瞳孔輪郭上の位置として検出された複数の位置も示されている。瞳孔輪郭に近似した円周は、検出された複数の位置から判断された円周である。
図31(A)は、瞳孔形状が楕円形状で、瞳孔輪郭の全体に亘って複数の位置が検出されている場合の例を示す。図31(A)では、瞳孔輪郭の全体に亘って複数の位置が検出されているため、瞳孔形状が楕円形状であっても、実際の瞳孔中心にほぼ一致した位置を、瞳孔中心として検出できている。
図31(B)は、瞳孔形状が図31(A)と同じ楕円形状であるが、瞳孔輪郭の一部(上部)で位置が検出されていない場合の例を示す。例えば、瞼で瞳孔の上部が隠れていると、瞳孔輪郭の上部では位置が検出できない。図31(B)では、瞳孔輪郭の一部(左部、右部、および下部)でしか位置が検出されていないため、瞳孔形状が図31(A)と同じ楕円形状であるが、実際の瞳孔中心にほぼ一致した位置を、瞳孔中心として検出できていない。実際の瞳孔中心から(下方向に)ずれた位置が、瞳孔中心として検出されてしまっている。
ユーザーごとに視線検出のキャリブレーションを行えば、瞳孔形状などの個人差に起因した視線検出精度の低下を抑制することができる。しかしながら、キャリブレーション時にも、視線検出に使用するキャリブレーションデータを得るために、上述した方法で瞳孔中心が検出される。そのため、キャリブレーション後であっても、瞳孔輪郭上の位置の検
出状態がキャリブレーション時と異なると、視線の検出結果に大きな誤差が生じてしまう。
出状態がキャリブレーション時と異なると、視線の検出結果に大きな誤差が生じてしまう。
本発明は、瞳孔の輪郭上の位置の検出状態に依らず視線を高精度に検出することのできる技術を提供することを目的とする。
本発明の第1の態様は、ユーザーの眼を撮像した眼画像から瞳孔の輪郭上の複数の位置を検出し、当該複数の位置に関連した輪郭情報を生成する瞳孔検出手段と、前記瞳孔検出手段により検出された前記複数の位置から推定される前記瞳孔の中心位置に基づいて、前記ユーザーの視線を検出する視線検出手段とを有し、複数の条件のそれぞれの下で、前記視線検出手段が視線を検出する際に使用するキャリブレーションデータを得るためのキャリブレーションが予め行われており、前記キャリブレーションによって得られた前記キャリブレーションデータは、当該キャリブレーションの際に前記瞳孔検出手段により生成された輪郭情報と関連付けられて、記憶手段に予め格納されており、前記視線検出手段は、前記記憶手段に格納されている複数のキャリブレーションデータのうち、前記瞳孔検出手段により生成された現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、前記ユーザーの視線を検出することを特徴とする視線検出装置である。
本発明の第2の態様は、視線検出のキャリブレーションの複数の条件をユーザーに順次通知する通知手段と、前記キャリブレーションの条件が前記通知手段により通知される度に、通知された条件下で前記キャリブレーションを行うキャリブレーション手段とを有することを特徴とするキャリブレーション装置である。
本発明の第3の態様は、ユーザーの眼を撮像した眼画像から瞳孔の輪郭上の複数の位置を検出し、当該複数の位置に関連した輪郭情報を生成する瞳孔検出ステップと、前記瞳孔検出ステップで検出された前記複数の位置から推定される前記瞳孔の中心位置に基づいて、前記ユーザーの視線を検出する視線検出ステップとを有し、複数の条件のそれぞれの下で、前記視線検出ステップで視線を検出する際に使用するキャリブレーションデータを得るためのキャリブレーションが予め行われており、前記キャリブレーションによって得られた前記キャリブレーションデータは、当該キャリブレーションの際に前記瞳孔検出ステップで生成された輪郭情報と関連付けられて、記憶手段に予め格納されており、前記視線検出ステップでは、前記記憶手段に格納されている複数のキャリブレーションデータのうち、前記瞳孔検出ステップで生成された現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、前記ユーザーの視線を検出することを特徴とする視線検出方法である。
本発明の第4の態様は、視線検出のキャリブレーションの複数の条件をユーザーに順次通知する通知ステップと、前記キャリブレーションの条件が前記通知ステップで通知される度に、通知された条件下で前記キャリブレーションを行うキャリブレーションステップとを有することを特徴とするキャリブレーション方法である。
本発明の第5の態様は、コンピュータを、上述した視線検出装置の各手段として機能させるためのプログラムである。本発明の第6の態様は、コンピュータを、上述したキャリブレーション装置の各手段として機能させるためのプログラムである。
本発明によれば、瞳孔の輪郭上の位置の検出状態に依らず視線を高精度に検出することができる。
<<実施例1>>
以下、本発明の実施例1を説明する。
以下、本発明の実施例1を説明する。
<構成の説明>
図1(A),1(B)は、実施例1に係るカメラ1(デジタルスチルカメラ;レンズ交換式カメラ)の外観の一例を示す。図1(A)は正面斜視図であり、図1(B)は背面斜視図である。図1(A)に示すように、カメラ1は、撮影レンズユニット1A及びカメラ筐体1Bを有する。カメラ筐体1Bには、ユーザー(撮影者)からの撮影操作を受け付ける操作部材であるレリーズボタン5が配置されている。図1(B)に示すように、カメラ筐体1Bの背面には、カメラ筐体1B内に含まれている後述の表示デバイス10(表示パネル)を見るためにユーザーが覗く接眼レンズ12(接眼光学系)が配置されている。なお、接眼光学系には複数枚のレンズが含まれていてもよい。カメラ筐体1Bの背面には、ユーザーからの各種操作を受け付ける操作部材41~43も配置されている。例えば、操作部材41はタッチ操作を受け付けるタッチパネルであり、操作部材42は各方向に押し倒し可能な操作レバーであり、操作部材43は4方向のそれぞれに押し込み可能な4方向
キーである。操作部材41(タッチパネル)は、液晶パネル等の表示パネルを備えており、表示パネルで画像を表示する機能を有する。
図1(A),1(B)は、実施例1に係るカメラ1(デジタルスチルカメラ;レンズ交換式カメラ)の外観の一例を示す。図1(A)は正面斜視図であり、図1(B)は背面斜視図である。図1(A)に示すように、カメラ1は、撮影レンズユニット1A及びカメラ筐体1Bを有する。カメラ筐体1Bには、ユーザー(撮影者)からの撮影操作を受け付ける操作部材であるレリーズボタン5が配置されている。図1(B)に示すように、カメラ筐体1Bの背面には、カメラ筐体1B内に含まれている後述の表示デバイス10(表示パネル)を見るためにユーザーが覗く接眼レンズ12(接眼光学系)が配置されている。なお、接眼光学系には複数枚のレンズが含まれていてもよい。カメラ筐体1Bの背面には、ユーザーからの各種操作を受け付ける操作部材41~43も配置されている。例えば、操作部材41はタッチ操作を受け付けるタッチパネルであり、操作部材42は各方向に押し倒し可能な操作レバーであり、操作部材43は4方向のそれぞれに押し込み可能な4方向
キーである。操作部材41(タッチパネル)は、液晶パネル等の表示パネルを備えており、表示パネルで画像を表示する機能を有する。
図2は、図1(A)に示したY軸とZ軸が成すYZ平面でカメラ1を切断した断面図であり、カメラ1の内部構成の一例を示す。
撮影レンズユニット1A内には、2枚のレンズ101,102、絞り111、絞り駆動部112、レンズ駆動モーター113、レンズ駆動部材114、フォトカプラー115、パルス板116、マウント接点117、焦点調節回路118等が含まれている。レンズ駆動部材114は駆動ギヤ等からなり、フォトカプラー115は、レンズ駆動部材114に連動するパルス板116の回転を検知して、焦点調節回路118に伝える。焦点調節回路118は、フォトカプラー115からの情報と、カメラ筐体1Bからの情報(レンズ駆動量の情報)とに基づいてレンズ駆動モーター113を駆動し、レンズ101を移動させて合焦位置を変更する。マウント接点117は、撮影レンズユニット1Aとカメラ筐体1Bとのインターフェイスである。なお、簡単のために2枚のレンズ101,102を示したが、実際は2枚より多くのレンズが撮影レンズユニット1A内に含まれている。
カメラ筐体1B内には、撮像素子2、CPU3、メモリ部4、表示デバイス10、表示デバイス駆動回路11等が含まれている。撮像素子2は、撮影レンズユニット1Aの予定結像面に配置されている。CPU3は、マイクロコンピュータの中央処理部であり、カメラ1全体を制御する。メモリ部4は、撮像素子2により撮像された画像等を記憶する。表示デバイス10は、液晶等で構成されており、撮像された画像(被写体像)等を表示デバイス10の表示面に表示する。表示デバイス駆動回路11は、表示デバイス10を駆動する。ユーザーは、接眼レンズ12を通して、表示デバイス10の表示面を見ることができる。
カメラ筐体1B内には、光源13a,13b、光分割器15、受光レンズ16、眼用撮像素子17等も含まれている。光源13a,13bは、光の角膜反射による反射像(角膜反射像;プルキニエ像)と瞳孔の関係から視線方向を検出するために従来から一眼レフカメラ等で用いられている光源であり、ユーザーの眼球14を照明するための光源である。具体的には、光源13a,13bは、ユーザーに対して不感の赤外光を発する赤外発光ダイオード等であり、接眼レンズ12の周りに配置されている。照明された眼球14の光学像(眼球像;光源13a,13bから発せられて眼球14で反射した反射光による像)は、接眼レンズ12を透過し、光分割器15で反射される。そして、眼球像は、受光レンズ16によって、CMOS等の光電素子列を2次元的に配した眼用撮像素子17上に結像される。受光レンズ16は、眼球14の瞳孔と眼用撮像素子17を共役な結像関係に位置付けている。後述する所定のアルゴリズムにより、眼用撮像素子17上に結像された眼球像における瞳孔と角膜反射像の位置関係から、眼球14の視線方向(表示デバイス10の表示面における視点(視線位置))が検出される。
なお、眼球像は、接眼レンズ12と光分割器15を介さずに、受光レンズ16によって眼用撮像素子17上に結像されてもよい。その場合には、表示デバイス10と干渉しない位置に眼用撮像素子17と受光レンズ16を配置し、そのような配置に起因した画像変化を低減するように、眼用撮像素子17によって取得された眼球像に光学補正を施す。
図3は、カメラ1の電気的構成の一例を示すブロック図である。CPU3には、視線検出回路201、測光回路202、自動焦点検出回路203、信号入力回路204、表示デバイス駆動回路11、光源駆動回路205等が接続されている。また、CPU3は、撮影レンズユニット1A内に配置された焦点調節回路118と、撮影レンズユニット1A内の絞り駆動部112に含まれた絞り制御回路206とに、マウント接点117を介して信号
を伝達する。CPU3に付随したメモリ部4は、撮像素子2および眼用撮像素子17からの撮像信号の記憶機能と、視線の個人差を補正するキャリブレーションデータ(視線補正データ)の記憶機能とを有する。
を伝達する。CPU3に付随したメモリ部4は、撮像素子2および眼用撮像素子17からの撮像信号の記憶機能と、視線の個人差を補正するキャリブレーションデータ(視線補正データ)の記憶機能とを有する。
視線検出回路201は、眼用撮像素子17上に眼球像が結像した状態での眼用撮像素子17の出力(眼を撮像した眼画像)をA/D変換し、その結果をCPU3に送信する。CPU3は、後述する所定のアルゴリズムに従って眼画像から視線検出に必要な特徴点を抽出し、特徴点の位置に基づいてユーザーの視線(表示デバイス10の表示面における視点)を検出する。
測光回路202は、測光センサの役割を兼ねた撮像素子2から得られる信号、具体的には被写界の明るさに対応した輝度信号の増幅、対数圧縮、A/D変換等を行い、その結果を被写界輝度情報としてCPU3に送る。
自動焦点検出回路203は、撮像素子2の中に含まれる、位相差検出のために使用される複数の検出素子(複数の画素)からの信号電圧をA/D変換し、CPU3に送る。CPU3は、複数の検出素子の信号から、各焦点検出ポイントに対応する被写体までの距離を演算し、その演算結果に基づいて、撮影レンズユニット1A内のレンズ101を駆動する。これは撮像面位相差AFとして知られる公知の技術である。
信号入力回路204には、レリーズボタン5の第1ストロークでONし、カメラ1の測光、測距、視線検出動作等を開始するためのスイッチSW1と、レリーズボタン5の第2ストロークでONし、撮影動作を開始するためのスイッチSW2とが接続されている。スイッチSW1,SW2からのON信号が信号入力回路204に入力され、CPU3に送信される。
光源駆動回路205は、光源13a,13bを駆動する。
<視線検出方法の原理の説明>
図4,5(A),5(B)を用いて、視線検出方法の原理を説明する。図4は、視線検出方法の原理を説明するための図であり、視線検出を行うための光学系の一例を示す図である。図4に示すように、光源13a,13bは受光レンズ16の光軸に対して略対称に配置され、ユーザーの眼球14を照らす。光源13a,13bから発せられて眼球14で反射した光の一部は、受光レンズ16によって、眼用撮像素子17に集光する。図5(A)は、眼用撮像素子17で撮像された眼画像(眼用撮像素子17に投影された眼球像)の一例を示す図であり、図5(B)は図5(A)の眼画像のラインα上の輝度情報(輝度分布)の一例を示す図である。実施例1では、眼画像から、光源13a,13bの角膜反射像Pa,Pbと、瞳孔中心c(瞳孔141の中心位置)とを検出し、検出したそれらに基づいて眼球14の回転角θを検出する。そして、回転角θとキャリブレーションデータに基づいて、表示デバイス10の表示面におけるユーザーの視点(視線が注がれた位置;ユーザーが見ている位置)を検出する。
図4,5(A),5(B)を用いて、視線検出方法の原理を説明する。図4は、視線検出方法の原理を説明するための図であり、視線検出を行うための光学系の一例を示す図である。図4に示すように、光源13a,13bは受光レンズ16の光軸に対して略対称に配置され、ユーザーの眼球14を照らす。光源13a,13bから発せられて眼球14で反射した光の一部は、受光レンズ16によって、眼用撮像素子17に集光する。図5(A)は、眼用撮像素子17で撮像された眼画像(眼用撮像素子17に投影された眼球像)の一例を示す図であり、図5(B)は図5(A)の眼画像のラインα上の輝度情報(輝度分布)の一例を示す図である。実施例1では、眼画像から、光源13a,13bの角膜反射像Pa,Pbと、瞳孔中心c(瞳孔141の中心位置)とを検出し、検出したそれらに基づいて眼球14の回転角θを検出する。そして、回転角θとキャリブレーションデータに基づいて、表示デバイス10の表示面におけるユーザーの視点(視線が注がれた位置;ユーザーが見ている位置)を検出する。
角膜反射像Pa,Pbの検出方法を説明する。図5(A)では、眼画像の水平方向をX軸方向とし、垂直方向をY軸方向としており、図5(B)では、X軸方向の輝度分布が示されている。図5(B)に示すように、角膜反射像Pa,Pbの領域では、閾値TH1以上の極端に高い輝度が得られる。輝度が閾値TH1以上の範囲(水平方向の範囲)を眼画像の各ラインから検出することにより、輝度が閾値TH1以上の領域を、角膜反射像Pa,Pbの領域として、眼画像から検出することができる。そして、検出した領域の重心位置を、角膜反射像Paの位置(座標(X,Y)=(Xa,Ya))や、角膜反射像Pbの位置(座標(Xb,Yb))として検出することができる。
瞳孔中心cの検出方法を説明する。図5(B)に示すように、角膜反射像Pa,Pbの領域を除く、瞳孔141の領域では、閾値TH2以下の低い輝度が得られる。また、瞳孔141の外側の光彩143の領域では、閾値TH1と閾値TH2の間の比較的高い輝度が得られる。そのため、閾値TH2以下の輝度から、閾値TH1と閾値TH2の間の輝度までの変化があり、かつ輝度が閾値TH2と等しい位置(座標(Xc,Yc),(Xd,Yd)を、瞳孔輪郭(瞳孔141の輪郭)上の位置として検出することができる。この処理を眼画像の各ラインについて行うことで、瞳孔輪郭に沿った複数の位置を検出することができる。
そして、瞳孔輪郭上の複数の位置(座標(Xi,Yi))から、瞳孔輪郭に近似した円周(真円の円周)の中心位置(座標(X0,Y0))を、瞳孔中心cとして検出(推定)することができる。また、瞳孔輪郭に近似した円周の半径rを瞳孔半径(瞳孔141の半径)として検出することができる。具体的には、以下の式1により、瞳孔中心c(座標(X0,Y0))と瞳孔半径rを算出することができる。
回転角θの検出方法を説明する。角膜反射像Paと角膜反射像Pbの中点と角膜142の曲率中心Oとはほぼ一致する。そのため、曲率中心Oから瞳孔中心cまでの標準的な距離をOcとすると、Z-X平面(Y軸に垂直な平面)内での眼球14の回転角θxは、以下の式2-1により算出することができる。そして、Z-Y平面(X軸に垂直な平面)内での眼球14の回転角θyは、以下の式2-2により算出することができる。式2-1,2-2において、βは、眼球像の結像倍率である。結像倍率βは、受光レンズ16に対する眼球14の位置により決まる倍率であり、角膜反射像Paと角膜反射像Pbの間隔の関数を用いて算出することができる。
β×Oc×SINθx≒{(Xa+Xb)/2}-X0 ・・・(式2-1)
β×Oc×SINθy≒{(Ya+Yb)/2}-Y0 ・・・(式2-2)
β×Oc×SINθx≒{(Xa+Xb)/2}-X0 ・・・(式2-1)
β×Oc×SINθy≒{(Ya+Yb)/2}-Y0 ・・・(式2-2)
視点の検出方法を説明する。上述した回転角θx,θyから、表示デバイス10の表示面におけるユーザーの視点を検出(推定)することができる。視点の座標(Hx,Hy)が表示デバイス10の表示面における瞳孔中心cに対応する座標であるとすると、視点の座標(Hx,Hy)は以下の式3-1,3-2により算出することができる。式3-1,3-2において、係数mは、カメラ1のファインダー光学系(受光レンズ16等)の構成で定まる定数であり、回転角θx,θyを表示デバイス10の表示面における瞳孔中心cに対応する座標に変換する変換係数である。係数mは、例えば、予め決定されてメモリ部4に格納される。オフセット値θx_cal,θy_calは、視線の個人差を補正するキャリブレーションデータであり、後述するキャリブレーションの際に検出された回転角θx,θyである。視線の個人差は、例えば、眼球の形状や、瞳孔の形状などの個人差に起因して生じる。キャリブレーションにより得られたオフセット値θx_cal,θy_calは、例えば、メモリ部4に格納される。
Hx=m×(θx-θx_cal) ・・・(式3-1)
Hy=m×(θy-θy_cal) ・・・(式3-2)
Hx=m×(θx-θx_cal) ・・・(式3-1)
Hy=m×(θy-θy_cal) ・・・(式3-2)
<キャリブレーション全体動作の説明>
図6は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。ファインダー(接眼レンズ12)を覗いていない眼が閉じているか開いているかに依って、ファインダーを覗いているの眼の開き具合が変わる可能性が高い。眼の開き具合が変わることで、瞳孔輪郭上の位置の検出状態が変わり、瞳孔中心cや視線の検出結果(検出精度)も変わる。そこで、実施例1では、眼の開き具合が異なる複数の条件のそれぞれの下でキャリブレーションを予め行う。そして、キャリブレーション全体動作後には、複数の条件にそれぞれ対応する複数のキャリブレーションデータ
のうち、現在の状況に最も類似した状況(条件)下で得られたキャリブレーションデータを使用する。こうすることで、瞳孔輪郭上の位置の検出状態に依らず視線(視点)を高精度に検出することができる。
図6は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。ファインダー(接眼レンズ12)を覗いていない眼が閉じているか開いているかに依って、ファインダーを覗いているの眼の開き具合が変わる可能性が高い。眼の開き具合が変わることで、瞳孔輪郭上の位置の検出状態が変わり、瞳孔中心cや視線の検出結果(検出精度)も変わる。そこで、実施例1では、眼の開き具合が異なる複数の条件のそれぞれの下でキャリブレーションを予め行う。そして、キャリブレーション全体動作後には、複数の条件にそれぞれ対応する複数のキャリブレーションデータ
のうち、現在の状況に最も類似した状況(条件)下で得られたキャリブレーションデータを使用する。こうすることで、瞳孔輪郭上の位置の検出状態に依らず視線(視点)を高精度に検出することができる。
ステップS121では、CPU3は、ファインダーを覗いていない眼を閉じる動作、つまり表示デバイス10の表示面(後述するキャリブレーション用画面)を見ない眼を閉じる動作を促す所定の通知(アナウンス)を、ユーザーに対して行う。例えば、CPU3は、表示デバイス10の表示面に所定のアナウンス画面を表示する。通知方法は特に限定されず、例えば、CPU3は、不図示のスピーカーから所定の音声を出力してもよい。
ステップS122では、CPU3は、キャリブレーション(キャリブレーション用の回転角検出)を行う。ステップS122では、ファインダーを覗いていない眼が閉じた状態(ファインダーを覗いている眼のみが開いた状態)で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。キャリブレーション(キャリブレーション用の回転角検出)の詳細は後述する。瞳孔の輪郭情報は、瞳孔輪郭上の複数の位置(検出位置)に関連した情報である。
ステップS123では、CPU3は、ファインダーを覗いていない眼を開く動作、つまり両眼を開く動作を促す所定の通知(アナウンス)を、ユーザーに対して行う。
ステップS124では、CPU3は、キャリブレーション(キャリブレーション用の回転角検出)を行う。ステップS124では、ファインダーを覗いていない眼が開いた状態(両眼が開いた状態)で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。
このように、実施例1では、視線検出のキャリブレーションの複数の条件がユーザーに順次通知される。具体的には、キャリブレーション用画面を見ない眼を閉じる動作を促す通知と、キャリブレーション用画面を見ない眼を開く動作を促す通知とを含む複数の通知を順次行う。そして、キャリブレーションの条件が通知される度に、通知された条件下でキャリブレーションが行われる。
図7は、ステップS122,S124のキャリブレーション(キャリブレーション用の回転角検出)の一例を示すフローチャートである。
ステップS101では、CPU3は、表示デバイス10の表示面にキャリブレーション用画面を表示する。キャリブレーション用画面は、ユーザーが注視すべき指標として、ターゲット枠を含む。実施例1では、キャリブレーション用画面の中心(表示デバイス10の表示面の中心)にターゲット枠が表示されるとする。なお、指標は枠に限られず、点などであってもよい。
ステップS102では、CPU3は、光源13a,13bがユーザーの眼球14に向けて赤外光を発するように制御する。赤外光によって照明されたユーザーの眼球像は、受光レンズ16を通して眼用撮像素子17上に結像され、眼用撮像素子17により光電変換される。これにより、処理可能な眼画像の電気信号が得られる。
ステップS103では、CPU3は、眼用撮像素子17により得られた眼画像(眼画像信号;眼画像の電気信号)を、視線検出回路201を介して受信する。
ステップS104では、CPU3は、ステップS103で受信した眼画像から、光源13a,13bの角膜反射像Pa,Pbの位置と、瞳孔輪郭上の複数の位置とを検出する(
角膜反射検出および瞳孔検出)。検出方法は、上述したとおりである。
角膜反射検出および瞳孔検出)。検出方法は、上述したとおりである。
ステップS105では、CPU3は、ステップS104で検出した瞳孔輪郭上の複数の位置から、瞳孔中心cと瞳孔半径rを推定する。推定方法は、上述したとおりである(式1を用いた方法)。
ステップS106では、CPU3は、ステップS104で検出した瞳孔輪郭上の複数の位置、およびステップS105で推定した瞳孔中心cと瞳孔半径rから、瞳孔の輪郭情報を生成する。例えば、CPU3は、瞳孔中心cを基準として複数の判定領域を設定し、複数の判定領域のそれぞれについて輪郭領域(瞳孔輪郭上の位置が検出された領域)であるか否かを示す輪郭情報を生成する。実施例1では、CPU3は、瞳孔中心cを中心として円周方向に並んだ複数の判定領域(第1判定領域)を設定し、複数の判定領域のそれぞれについて輪郭領域であるか否かを示す輪郭情報(第1輪郭情報)を生成する。
図8は、瞳孔輪郭上の位置(検出位置)と、判定領域との一例を示す図である。例えば、CPU3は、瞳孔中心cを中心として円周方向に並んだ8つの判定領域R11~R18を設定する。判定領域R11~R18を設定するための複数の線(図8の複数の破線;瞳孔中心cから伸びた複数の線)のそれぞれの方向(傾き)は、予め定められている。ここでは、眼画像全体を構成する複数の判定領域が設定されるとするが、そうでなくてもよい。例えば、瞳孔中心cを中心とし且つ瞳孔半径rを半径とした円を構成する複数の判定領域が設定されてもよい。瞳孔半径rの推定誤差を考慮して、複数の判定領域が構成する円の半径が瞳孔半径rよりも長くなるように、複数の判定領域が設定されてもよい。判定領域R11~R18が設定されると、CPU3は、判定領域R11~R18のそれぞれについて瞳孔輪郭上の位置(検出位置)の数をカウントする。そして、CPU3は、瞳孔輪郭上の位置(検出位置)の数が所定数以下の判定領域(例えば瞳孔輪郭上の位置(検出位置)の数が1または0の判定領域)を輪郭領域から除外して輪郭情報を生成する。図8の例では、判定領域R11,R18が輪郭領域から除外され、判定領域R12~R17のそれぞれを輪郭領域として示す輪郭情報が生成される。
ステップS107では、CPU3は、眼球像の結像倍率βを算出する。算出方法は、上述したとおりである。
ステップS108では、CPU3は、眼球14の回転角θx,θyを算出する。算出方法は、上述したとおりである(式2-1,2-2を用いた方法)。
ステップS109では、CPU3は、ステップS108で算出した回転角θx,θyをオフセット値θx_cal,θy_cal(キャリブレーションデータ)として、ステップS106で生成した輪郭情報に関連付けてメモリ部4に格納する。
<カメラ動作の説明>
図9は、キャリブレーション全体動作後のカメラ動作の一例を示すフローチャートである。例えば、キャリブレーション全体動作後では、カメラ1の電源がONされると、図9のカメラ動作が行われる。カメラ1の電源は、カメラ1に対するユーザー操作に応じてON/OFFされる。
図9は、キャリブレーション全体動作後のカメラ動作の一例を示すフローチャートである。例えば、キャリブレーション全体動作後では、カメラ1の電源がONされると、図9のカメラ動作が行われる。カメラ1の電源は、カメラ1に対するユーザー操作に応じてON/OFFされる。
ステップS201では、CPU3は、撮像素子2を駆動し、画像(被写体像;被写体を略リアルタイムに表すライブビュー画像)の取得を開始する。CPU3は、取得した画像を、表示デバイス10の表示面に表示する(被写体を略リアルタイムに表すライブビュー表示)。
ステップS202では、CPU3は、カメラ1の電源をOFFするか否かを判定し、OFFする場合は図9のカメラ動作を終了し、OFFしない場合はステップS203に処理を進める。
ステップS203では、CPU3は、カメラ動作用の回転角検出を行う。カメラ動作用の回転角検出では、図7(キャリブレーション用の回転角検出)のステップS102~S108と同じ処理が行われる。
ステップS204では、CPU3は、メモリ部4に格納されている複数のキャリブレーションデータのうち、ステップS203で生成した現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを選択する。キャリブレーションデータの選択の詳細は後述する。
ステップS205では、CPU3は、ステップS203で検出した回転角θx,θyと、ステップS204で選択したキャリブレーションデータ(オフセット値θx_cal,θy_cal)とから、視点の座標(Hx,Hy)を算出する。算出方法は、上述したとおりである(式3-1,3-2を用いた方法)。
ステップS206では、CPU3は、表示デバイス10の表示面における、ステップS205で算出した視点の座標に、視点枠(視点を示す枠)を表示する。これにより、検出された現在の視点をユーザーに伝えることができる。視点枠は、ライブビュー画像に重ねて表示される。なお、視点を示すアイテムは枠に限られず、点などであってもよい。
ステップS207では、CPU3は、ユーザーによってレリーズボタン5が押されて(半押しされて)スイッチSW1がONとなったか否かを判定する。CPU3は、スイッチSW1がONとなった場合はステップS208に処理を進め、スイッチSW1がONとならなかった場合はステップS201に処理を戻して視点を再度検出する。
S208では、CPU3は、視点枠の位置の被写体に焦点が合うように、AF(オートフォーカス)処理を行う。つまり、視点枠はAF枠として使用される。例えば、AF処理として、撮像面位相差AFが行われる。
ステップS209では、CPU3は、ユーザーによってレリーズボタン5がさらに押し込まれて(全押しされて)スイッチSW2がONとなったか否かを判定する。CPU3は、スイッチSW2がONとなった場合はステップS210に処理を進め、スイッチSW2がONとならなかった場合はステップS207に処理を戻す。
ステップS210では、CPU3は、撮影動作を行う。例えば、CPU3は、撮像素子2を駆動して画像(被写体像)を取得し、取得した画像をメモリ部4(または不図示の記録媒体)に格納する。その後、CPU3は、ステップS201に処理を戻す。
ステップS204の処理(キャリブレーションデータの選択)の具体例を説明する。図10(A)~10(C)は、瞳孔輪郭上の位置(検出位置)と、判定領域との一例を示す図である。図10(A)は、瞳孔輪郭上の位置として、カメラ動作(図9のステップS203)で検出された複数の位置を示す。図10(A)の例では、判定領域R11,R12,R18が輪郭領域から除外され、判定領域R13~R17のそれぞれを輪郭領域として示す輪郭情報が生成される。図10(B),10(C)は、瞳孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図10(B)は、瞳孔輪郭上の位置として、ファインダーを覗いていない眼が閉じた状態(ファインダーを覗いている眼のみが開いた状態)で検出された複数の位置、すなわち図6のステップS122で検出された複
数の位置を示す。図10(B)の例では、判定領域R11,R18が輪郭領域から除外され、判定領域R12~R17のそれぞれを輪郭領域として示す輪郭情報が生成される。図10(C)は、瞳孔輪郭上の位置として、ファインダーを覗いていない眼が開いた状態(両眼が開いた状態)で検出された複数の位置、すなわち図6のステップS124で検出された複数の位置を示す。図10(C)の例では、判定領域R18が輪郭領域から除外され、判定領域R11~R17のそれぞれを輪郭領域として示す輪郭情報が生成される。
数の位置を示す。図10(B)の例では、判定領域R11,R18が輪郭領域から除外され、判定領域R12~R17のそれぞれを輪郭領域として示す輪郭情報が生成される。図10(C)は、瞳孔輪郭上の位置として、ファインダーを覗いていない眼が開いた状態(両眼が開いた状態)で検出された複数の位置、すなわち図6のステップS124で検出された複数の位置を示す。図10(C)の例では、判定領域R18が輪郭領域から除外され、判定領域R11~R17のそれぞれを輪郭領域として示す輪郭情報が生成される。
図11(A)は、カメラ動作時(現在)の輪郭情報と、キャリブレーションデータ1の輪郭情報との比較結果の一例を示す。図11(B)は、カメラ動作時の輪郭情報と、キャリブレーションデータ2の輪郭情報との比較結果の一例を示す。カメラ動作時の輪郭情報は図10(A)の状況で生成された輪郭情報である。キャリブレーションデータ1の輪郭情報は図10(B)の状況で生成された輪郭情報であり、キャリブレーションデータ2の輪郭情報は図10(C)の状況で生成された輪郭情報である。図11(A),11(B)において、「あり」は、それに対応する判定領域が輪郭領域と判定されたことを意味する輪郭判定結果であり、「無」は、それに対応する判定領域が輪郭領域と判定されなかったことを意味する輪郭判定結果である。また、「〇」は、それに対応する判定領域の輪郭判定結果がカメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで同じであることを意味する比較結果である。「×」は、それに対応する判定領域の輪郭判定結果がカメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで異なることを意味する比較結果である。CPU3は、比較結果が「〇」の判定領域の数が最も多いキャリブレーションデータを選択する。図11(A)では比較結果が「〇」の判定領域の数は7で、図11(B)では比較結果が「〇」の判定領域の数は6である。そのため、CPU3は、キャリブレーションデータ1を選択する。
ステップS204の処理(キャリブレーションデータの選択)の別の具体例を説明する。図12(A)は、カメラ動作時の輪郭情報と、キャリブレーションデータ1の輪郭情報との比較結果の一例を示す。図12(B)は、カメラ動作時の輪郭情報と、キャリブレーションデータ2の輪郭情報との比較結果の一例を示す。輪郭判定結果がカメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで同じである判定領域の数(比較結果が「〇」の判定領域の数)は、図12(A)でも図12(B)でも7である。そのため、比較結果が「〇」の判定領域の数からでは、1つのキャリブレーションデータを選択することはできない。
この場合には、CPU3は、カメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報との比較として、輪郭領域の存在範囲の比較をさらに行う。そして、CPU3は、輪郭領域の存在範囲がカメラ動作時のものに最も類似したキャリブレーションデータを選択する。
図13(A)~13(C)は、瞳孔輪郭上の位置(検出位置)と、判定領域との一例を示す図である。図13(A)は、瞳孔輪郭上の位置として、カメラ動作(図9のステップS203)で検出された複数の位置を示す。図13(A)の状況では、図12(A),12(B)に示すカメラ動作時の輪郭情報が生成される。図13(B),13(C)は、瞳孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図13(B)の状況では、図12(A)に示すキャリブレーションデータ1の輪郭情報が生成され、図13(C)の状況では、図12(B)に示すキャリブレーションデータ2の輪郭情報が生成される。図13(A)~13(C)には、輪郭領域の存在範囲として、水平方向の範囲(H範囲)と垂直方向の範囲(V範囲)とが示されている。
例えば、CPU3は、瞳孔中心cを中心として左右対称の位置関係にある2つの判定領域(「R12とR13」、「R11とR14」、「R18とR15」、及び、「R17と
R16」のそれぞれ)の輪郭判定結果の論理和をとって、V範囲を判断する。論理和をとることで、2つの判定領域の少なくとも一方が輪郭領域と判定されている場合に、当該2つの判定領域を輪郭領域とみなされる。そして、2つの判定領域の両方が輪郭領域でない(非輪郭領域である)と判定されている場合に、当該2つの判定領域を非輪郭領域とみなされる。図13(A),13(C)では、「R12とR13」、「R11とR14」、「R18とR15」、及び、「R17とR16」のそれぞれで、少なくとも一方の判定領域が輪郭領域と判定されている。そのため、CPU3は、論理和をとることにより、全ての判定領域R11~R18を輪郭領域と判定する。そして、CPU3は、全ての判定領域R11~R18からなる領域の上端から下端までの範囲をV範囲として決定する。一方、図13(B)では、判定領域R12と判定領域R13の両方が非輪郭領域と判定されている。そのため、CPU3は、論理和をとることにより、判定領域R12,R13を除く判定領域R11,R14~R18を輪郭領域と判定する。そして、CPU3は、判定領域R11,R14~R18からなる領域の上端から下端までの範囲をV範囲として決定する。
R16」のそれぞれ)の輪郭判定結果の論理和をとって、V範囲を判断する。論理和をとることで、2つの判定領域の少なくとも一方が輪郭領域と判定されている場合に、当該2つの判定領域を輪郭領域とみなされる。そして、2つの判定領域の両方が輪郭領域でない(非輪郭領域である)と判定されている場合に、当該2つの判定領域を非輪郭領域とみなされる。図13(A),13(C)では、「R12とR13」、「R11とR14」、「R18とR15」、及び、「R17とR16」のそれぞれで、少なくとも一方の判定領域が輪郭領域と判定されている。そのため、CPU3は、論理和をとることにより、全ての判定領域R11~R18を輪郭領域と判定する。そして、CPU3は、全ての判定領域R11~R18からなる領域の上端から下端までの範囲をV範囲として決定する。一方、図13(B)では、判定領域R12と判定領域R13の両方が非輪郭領域と判定されている。そのため、CPU3は、論理和をとることにより、判定領域R12,R13を除く判定領域R11,R14~R18を輪郭領域と判定する。そして、CPU3は、判定領域R11,R14~R18からなる領域の上端から下端までの範囲をV範囲として決定する。
同様に、CPU3は、瞳孔中心cを中心として上下対称の位置関係にある2つの判定領域(「R11とR18」、「R12とR17」、「R13とR16」、及び、「R14とR15」のそれぞれ)の輪郭判定結果の論理和をとって、H範囲を判断する。図13(A)~13(C)のいずれにおいても、判定領域R11と判定領域R18の両方が非輪郭領域と判定されているため、CPU3は、論理和をとることにより、判定領域R11,R18を除く判定領域R12~R17を輪郭領域と判定する。そして、CPU3は、判定領域R12~R17からなる領域の左端から右端までの範囲をH範囲として決定する。
上述したように、キャリブレーションデータ1については、H範囲(図13(B))はカメラ動作時のもの(図13(A))と同じであるが、V範囲(図13(B))はカメラ動作時のもの(図13(A))よりも狭い。一方で、キャリブレーションデータ2については、H範囲とV範囲の両方(図13(C))がカメラ動作時のもの(図13(A))と同じである。この場合には、CPU3は、キャリブレーションデータ1よりもキャリブレーションデータ2の方が輪郭領域の存在範囲がカメラ動作時のものに類似していると判断し、キャリブレーションデータ2を選択する。
ステップS204の処理(キャリブレーションデータの選択)の別の具体例を説明する。図14(A)は、カメラ動作時の輪郭情報と、キャリブレーションデータ1の輪郭情報との比較結果の一例を示す。図14(B)は、カメラ動作時の輪郭情報と、キャリブレーションデータ2の輪郭情報との比較結果の一例を示す。輪郭判定結果がカメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで同じである判定領域の数(比較結果が「〇」の判定領域の数)は、図14(A)でも図14(B)でも7である。そのため、比較結果が「〇」の判定領域の数からでは、1つのキャリブレーションデータを選択することはできない。
図15(A)~15(C)は、瞳孔輪郭上の位置(検出位置)と、判定領域との一例を示す図である。図15(A)は、瞳孔輪郭上の位置として、カメラ動作(図9のステップS203)で検出された複数の位置を示す。図15(A)の状況では、図14(A),14(B)に示すカメラ動作時の輪郭情報が生成される。図15(B),15(C)は、瞳孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図15(B)の状況では、図14(A)に示すキャリブレーションデータ1の輪郭情報が生成され、図15(C)の状況では、図14(A)に示すキャリブレーションデータ1の輪郭情報が生成される。図15(A)~15(C)には、輪郭領域の存在範囲として、水平方向の範囲(H範囲)と垂直方向の範囲(V範囲)とが示されている。
図15(A),15(B)に示すように、キャリブレーションデータ1のV範囲はカメ
ラ動作時のV範囲と同じであるが、キャリブレーションデータ1のH範囲はカメラ動作時のH範囲よりも広い。そして、図15(A),15(C)に示すように、キャリブレーションデータ2のH範囲はカメラ動作時のH範囲と同じであるが、キャリブレーションデータ2のV範囲はカメラ動作時のV範囲よりも狭い。そのため、輪郭領域の存在範囲からも、1つのキャリブレーションデータを選択することはできない。
ラ動作時のV範囲と同じであるが、キャリブレーションデータ1のH範囲はカメラ動作時のH範囲よりも広い。そして、図15(A),15(C)に示すように、キャリブレーションデータ2のH範囲はカメラ動作時のH範囲と同じであるが、キャリブレーションデータ2のV範囲はカメラ動作時のV範囲よりも狭い。そのため、輪郭領域の存在範囲からも、1つのキャリブレーションデータを選択することはできない。
この場合に備え、優先的に選択するキャリブレーションデータ(優先キャリブレーションデータ)として、複数のキャリブレーションデータのいずれかが予め設定される。そして、CPU3は、比較結果が「〇」の判定領域の数や輪郭領域の存在範囲などから1つのキャリブレーションデータを選択することができない場合に、優先キャリブレーションデータを選択する。優先キャリブレーションデータの設定は、固定であってもよいし、ユーザーが変更可能であってもよい。例えば、ユーザーは、カメラ1に対して、ファインダーを覗く際にファインダーを覗かない眼を通常は閉じるか否かを、予め登録する。そして、ファインダーを覗かない眼を通常は閉じる場合には、CPU3は、ファインダーを覗かない眼を閉じた状態で得られたキャリブレーションデータを選択する。ファインダーを覗かない眼を通常は開く場合には、CPU3は、ファインダーを覗かない眼を開いた状態で得られたキャリブレーションデータを選択する。
<まとめ>
以上説明したように、実施例1によれば、キャリブレーション用画面を見ない眼が閉じているという条件下でのキャリブレーションと、キャリブレーション用画面を見ない眼が開いているという条件下でのキャリブレーションとが順次行われる。キャリブレーションによって得られたキャリブレーションデータは、当該キャリブレーションの際に生成された輪郭情報と関連付けられて、記憶部に予め格納される。そして、キャリブレーション後のカメラ動作時には、記憶部に格納されている複数のキャリブレーションデータのうち、カメラ動作時の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、ユーザーの視線が検出される。こうすることで、瞳孔輪郭上の位置の検出状態に依らず視線(視点)を高精度に検出することができる。例えば、ファインダーの覗き方に依って眼画像における瞳孔輪郭の欠損範囲が変わっても、視線(視点)を高精度に検出することができる。
以上説明したように、実施例1によれば、キャリブレーション用画面を見ない眼が閉じているという条件下でのキャリブレーションと、キャリブレーション用画面を見ない眼が開いているという条件下でのキャリブレーションとが順次行われる。キャリブレーションによって得られたキャリブレーションデータは、当該キャリブレーションの際に生成された輪郭情報と関連付けられて、記憶部に予め格納される。そして、キャリブレーション後のカメラ動作時には、記憶部に格納されている複数のキャリブレーションデータのうち、カメラ動作時の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、ユーザーの視線が検出される。こうすることで、瞳孔輪郭上の位置の検出状態に依らず視線(視点)を高精度に検出することができる。例えば、ファインダーの覗き方に依って眼画像における瞳孔輪郭の欠損範囲が変わっても、視線(視点)を高精度に検出することができる。
なお、キャリブレーションデータは、回転角θx,θyから減算するオフセット値θx_cal,θy_calに限られず、回転角θx,θyに加算するオフセット値を含んでもよいし、回転角θx,θyに乗算するゲイン値を含んでもよい。キャリブレーションデータは、その他のパラメータを含んでもよく、回転角θx,θy以外の値を補正するパラメータを含んでもよい。
また、キャリブレーション用画面において、ユーザーが注視すべき指標の表示位置は、キャリブレーション用画面の中心(表示デバイス10の表示面の中心)に限られない。例えば、キャリブレーション用画面の複数の位置にそれぞれ対応する複数の指標が同時または順番に表示されてもよい。そして、複数の指標にそれぞれ対応する複数のキャリブレーションデータを取得してもよい。キャリブレーション後には、例えば、複数のキャリブレーションデータを用いた補間処理により、検出された回転角θx,θyに対応するキャリブレーションデータが得られ、得られたキャリブレーションデータを用いて回転角θx,θyが補正される。こうすることで、回転角θx,θyの補正精度を向上することができる。
<<実施例2>>
以下、本発明の実施例2を説明する。なお、以下では、実施例1と同じ点(構成や処理など)についての説明は省略し、実施例1と異なる点について説明する。実施例1では、
ファインダーの覗き方に依って眼画像における瞳孔輪郭の欠損範囲が変わることを想定して、キャリブレーションを行った。具体的には、ファインダーの覗き方が異なる複数の条件(眼画像における瞳孔輪郭の欠損範囲が異なる複数の条件)のそれぞれの下でキャリブレーションを行った。実施例2では、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化することを想定して、キャリブレーションを行う。具体的には、キャリブレーション用画面に表示される指標またはキャリブレーション画面全体の輝度が異なる複数の条件(ファインダー内の明るさが異なる複数の条件;瞳孔の大きさが異なる複数の条件)のそれぞれの下でキャリブレーションを行う。
以下、本発明の実施例2を説明する。なお、以下では、実施例1と同じ点(構成や処理など)についての説明は省略し、実施例1と異なる点について説明する。実施例1では、
ファインダーの覗き方に依って眼画像における瞳孔輪郭の欠損範囲が変わることを想定して、キャリブレーションを行った。具体的には、ファインダーの覗き方が異なる複数の条件(眼画像における瞳孔輪郭の欠損範囲が異なる複数の条件)のそれぞれの下でキャリブレーションを行った。実施例2では、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化することを想定して、キャリブレーションを行う。具体的には、キャリブレーション用画面に表示される指標またはキャリブレーション画面全体の輝度が異なる複数の条件(ファインダー内の明るさが異なる複数の条件;瞳孔の大きさが異なる複数の条件)のそれぞれの下でキャリブレーションを行う。
<キャリブレーション全体動作の説明>
図16は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。
図16は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。
ステップS321では、CPU3は、キャリブレーション用画面の指標(ユーザーが注視すべき指標)の輝度を高輝度に設定する。なお、CPU3は、キャリブレーション用画面全体の輝度を高輝度に設定してもよい。CPU3は、輝度を高輝度に設定することを、ユーザーに通知してもよい。ユーザーへの通知により、高輝度な表示が正常な表示である(表示設定が不適切なわけではない)とユーザーが認識でき、表示設定の変更が誤って行われることを抑制することができる。
ステップS322では、CPU3は、キャリブレーション(キャリブレーション用の回転角検出)を行う。ステップS322では、キャリブレーション用画面の指標が高輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。キャリブレーション(キャリブレーション用の回転角検出)の詳細は後述する。
ステップS323では、CPU3は、キャリブレーション用画面の指標の輝度を低輝度に設定する。なお、CPU3は、キャリブレーション用画面全体の輝度を低輝度に設定してもよい。CPU3は、輝度を低輝度に設定することを、ユーザーに通知してもよい。ユーザーへの通知により、低輝度な表示が正常な表示である(表示設定が不適切なわけではない)とユーザーが認識でき、表示設定の変更が誤って行われることを抑制することができる。
ステップS324では、CPU3は、キャリブレーション(キャリブレーション用の回転角検出)を行う。ステップS324では、キャリブレーション用画面の指標が低輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。
図17は、ステップS322,S324のキャリブレーション(キャリブレーション用の回転角検出)の一例を示すフローチャートである。
ステップS301~S305は、図7(実施例1)のステップS101~S105と同じである。但し、ステップS301では、設定された輝度でキャリブレーション用画面の指標が表示される。ステップS322のキャリブレーションを行う場合には、ステップS321で設定された高輝度で指標が表示され、ステップS324のキャリブレーションを行う場合には、ステップS323で設定された低輝度で指標が表示される。
ステップS306では、CPU3は、ステップS304で検出した瞳孔輪郭上の複数の位置、およびステップS305で推定した瞳孔中心cと瞳孔半径rから、瞳孔の輪郭情報を生成する。実施例2では、CPU3は、瞳孔中心cを中心として径方向に並んだ複数の
判定領域(第2判定領域)を設定し、複数の判定領域のそれぞれについて輪郭領域であるか否かを示す輪郭情報(第2輪郭情報)を生成する。
判定領域(第2判定領域)を設定し、複数の判定領域のそれぞれについて輪郭領域であるか否かを示す輪郭情報(第2輪郭情報)を生成する。
図18は、瞳孔輪郭上の位置(検出位置)と、判定領域との一例を示す図である。例えば、CPU3は、瞳孔中心cを中心として径方向に並んだ3つの判定領域R21~R23を設定する。判定領域R21は、瞳孔中心cを中心とした半径r1の円の領域であり、判定領域R22は、瞳孔中心cを中心とした半径r2(>半径r1)の円の領域から判定領域R21を除いた領域であり、判定領域R23は、判定領域R22の外側の領域である。ここでは、半径r1,r2が予め定められているとするが、そうでなくてもよい。例えば、CPU3は、瞳孔半径rに基づいて半径r1,r2を決定して、判定領域R21~R23を設定してもよい。判定領域R21~R23が設定されると、CPU3は、判定領域R21~R23のうち、瞳孔輪郭上の位置(検出位置)の数が最も多い判定領域を輪郭領域として、輪郭情報を生成する。図18の例では、判定領域R22を輪郭領域として示す輪郭情報が生成される。
ステップS307~S309は、図7(実施例1)のステップS107~S109と同じである。
<カメラ動作の説明>
キャリブレーション全体動作後のカメラ動作のフローチャートは、図9(実施例1)と同じである。但し、ステップS203では、図17(キャリブレーション用の回転角検出)のステップS302~S308と同じ処理が行われる。また、詳細は後述するが、ステップS204の処理方法(キャリブレーションデータの選択方法)が実施例1と異なる。
キャリブレーション全体動作後のカメラ動作のフローチャートは、図9(実施例1)と同じである。但し、ステップS203では、図17(キャリブレーション用の回転角検出)のステップS302~S308と同じ処理が行われる。また、詳細は後述するが、ステップS204の処理方法(キャリブレーションデータの選択方法)が実施例1と異なる。
ステップS204の処理(キャリブレーションデータの選択)の具体例を説明する。図19(A)~19(C)は、瞳孔輪郭上の位置(検出位置)と、判定領域との一例を示す図である。図19(A)は、瞳孔輪郭上の位置として、カメラ動作(図9のステップS203)で検出された複数の位置を示す。図19(A)の例では、判定領域R22を輪郭領域として示す輪郭情報が生成される。図19(B),19(C)は、瞳孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図19(B)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が高輝度で表示された状態で検出された複数の位置、すなわち図16のステップS322で検出された複数の位置を示す。図19(B)の例では、判定領域R21を輪郭領域として示す輪郭情報が生成される。図19(C)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が低輝度で表示された状態で検出された複数の位置、すなわち図16のステップS324で検出された複数の位置を示す。図19(C)の例では、判定領域R22を輪郭領域として示す輪郭情報が生成される。
図20(A)は、カメラ動作時(現在)の輪郭情報と、キャリブレーションデータ1の輪郭情報との比較結果の一例を示す。図20(B)は、カメラ動作時の輪郭情報と、キャリブレーションデータ2の輪郭情報との比較結果の一例を示す。カメラ動作時の輪郭情報は図19(A)の状況で生成された輪郭情報である。キャリブレーションデータ1の輪郭情報は図19(B)の状況で生成された輪郭情報であり、キャリブレーションデータ2の輪郭情報は図19(C)の状況で生成された輪郭情報である。図20(A),20(B)において、「あり」は、それに対応する判定領域が輪郭領域と判定されたことを意味する輪郭判定結果であり、「無」は、それに対応する判定領域が輪郭領域と判定されなかったことを意味する輪郭判定結果である。また、「〇」は、カメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで判定領域R21~R23の輪郭判定結果が同じであることを意味する比較結果である。「×」は、カメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで判定領域R21~R23の輪郭判定結果が異なることを意味する
比較結果である。CPU3は、比較結果が「〇」のキャリブレーションデータを選択する。図20(A)では比較結果は「×」であり、図20(B)では比較結果は「〇」であるため、CPU3は、キャリブレーションデータ2を選択する。
比較結果である。CPU3は、比較結果が「〇」のキャリブレーションデータを選択する。図20(A)では比較結果は「×」であり、図20(B)では比較結果は「〇」であるため、CPU3は、キャリブレーションデータ2を選択する。
図20(A),20(B)には、別の比較結果として、キャリブレーション時の輪郭領域と、カメラ動作時の輪郭領域との間の距離(輪郭間距離)も示されている。ここでは、同じ判定領域間の距離は「0」、判定領域R21と判定領域R22の間の距離は「1」、判定領域R22と判定領域R23の間の距離は「1」、判定領域R21と判定領域R23の間の距離は「2」とする。図20(A)では、キャリブレーション時の輪郭領域は判定領域R21であり、カメラ動作時の輪郭領域は判定領域R22であるため、輪郭間距離は「1」となっている。図20(B)では、キャリブレーション時もカメラ動作時も輪郭領域は判定領域R22であるため、輪郭間距離は「0」となっている。
ステップS204の処理(キャリブレーションデータの選択)の別の具体例を説明する。図21(A)は、カメラ動作時の輪郭情報と、キャリブレーションデータ1の輪郭情報との比較結果の一例を示す。図21(B)は、カメラ動作時の輪郭情報と、キャリブレーションデータ2の輪郭情報との比較結果の一例を示す。図21(A)では、カメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで判定領域R21~R23の輪郭判定結果が異なる(比較結果が「×」である)。図21(B)でも、カメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで判定領域R21~R23の輪郭判定結果が異なる(比較結果が「×」である)。つまり、カメラ動作時の輪郭情報とキャリブレーションデータの輪郭情報とで判定領域R21~R23の輪郭判定結果が同じであるキャリブレーションデータ(比較結果が「〇」であるキャリブレーションデータ)が存在しない。そのため、「〇」と「×」の比較結果からでは、1つのキャリブレーションデータを選択することはできない。
この場合には、CPU3は、輪郭間距離が最も短いキャリブレーションデータを選択する。図21(A)では、キャリブレーション時の輪郭領域は判定領域R21であり、カメラ動作時の輪郭領域は判定領域R23であるため、輪郭間距離は「2」となっている。図21(B)では、キャリブレーション時の輪郭領域は判定領域R22であり、カメラ動作時の輪郭領域は判定領域R23であるため、輪郭間距離は「1」となっている。そのため、CPU3は、キャリブレーションデータを選択する。
ステップS204の処理(キャリブレーションデータの選択)の別の具体例を説明する。図22(A)は、カメラ動作時の輪郭情報と、キャリブレーションデータ1の輪郭情報との比較結果の一例を示す。図22(B)は、カメラ動作時の輪郭情報と、キャリブレーションデータ2の輪郭情報との比較結果の一例を示す。図22(A),22(B)の場合も、図21(A),21(B)の場合と同様に、比較結果が「〇」であるキャリブレーションデータが存在しない。そのため、「〇」と「×」の比較結果からでは、1つのキャリブレーションデータを選択することはできない。そして、図22(A)でも図22(B)でも輪郭間距離は「1」となっているため、輪郭間距離からも、1つのキャリブレーションデータを選択することはできない。
この場合には、CPU3は、カメラ動作時における表示デバイス10の表示輝度を、キャリブレーション時の表示輝度と比較する。例えば、カメラ動作時における表示デバイス10の表示輝度は、表示デバイス10に表示する画面のデータ(複数の画素値)から判断される。キャリブレーション時の表示輝度は、キャリブレーション用画面の輝度設定(ステップS321の高輝度の設定や、ステップS323の低輝度の設定など)に応じて判断される。そして、CPU3は、表示デバイス10の表示輝度がカメラ動作時のものに最も近いキャリブレーションデータを選択する。
なお、比較結果が「〇」である複数のキャリブレーションデータが存在することもある。その場合も、「〇」と「×」の比較結果や輪郭間距離などからでは、1つのキャリブレーションデータを選択することはできないため、CPU3は、表示デバイス10の表示輝度がカメラ動作時のものに最も近いキャリブレーションデータを選択する。表示デバイス10の表示輝度がカメラ動作時のものに最も近い2つのキャリブレーションデータが存在する場合には、例えば、CPU3は、当該2つのキャリブレーションデータの一方を選択する。2つのキャリブレーションデータの一方がランダムに選択されてもよい。2つのキャリブレーションデータのうち、表示デバイス10の表示輝度が高い方が選択されてもよい。2つのキャリブレーションデータのうち、表示デバイス10の表示輝度が低い方が選択されてもよい。
<まとめ>
以上説明したように、実施例2によれば、実施例1と異なり、キャリブレーション用画面の輝度が異なる複数の条件のそれぞれの下でキャリブレーションが行われる。実施例1と同様に、キャリブレーションによって得られたキャリブレーションデータは、当該キャリブレーションの際に生成された輪郭情報と関連付けられて、記憶部に予め格納される。実施例1と同様に、キャリブレーション後のカメラ動作時には、記憶部に格納されている複数のキャリブレーションデータのうち、カメラ動作時の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、視線が検出される。こうすることで、瞳孔輪郭上の位置の検出状態に依らず視線(視点)を高精度に検出することができる。例えば、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化しても、視線(視点)を高精度に検出することができる。
以上説明したように、実施例2によれば、実施例1と異なり、キャリブレーション用画面の輝度が異なる複数の条件のそれぞれの下でキャリブレーションが行われる。実施例1と同様に、キャリブレーションによって得られたキャリブレーションデータは、当該キャリブレーションの際に生成された輪郭情報と関連付けられて、記憶部に予め格納される。実施例1と同様に、キャリブレーション後のカメラ動作時には、記憶部に格納されている複数のキャリブレーションデータのうち、カメラ動作時の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、視線が検出される。こうすることで、瞳孔輪郭上の位置の検出状態に依らず視線(視点)を高精度に検出することができる。例えば、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化しても、視線(視点)を高精度に検出することができる。
<<実施例3>>
以下、本発明の実施例3を説明する。以下では、実施例1,2と同じ点(構成や処理など)についての説明は省略し、実施例1,2と異なる点について説明する。実施例2では、ファインダー内の明るさが異なる複数の条件(瞳孔の大きさが異なる複数の条件)のそれぞれの下でキャリブレーションを行ったが、瞳孔が大きい場合には、瞼によって瞳孔の一部が隠れ、眼画像において瞳孔輪郭が欠損する可能性が高い。実施例3では、瞳孔の大きさに依って眼画像における瞳孔輪郭の欠損範囲が変わることを想定する。具体的には、実施例3では、輪郭情報の生成および比較の処理として、実施例1で説明した処理(円周方向に並んだ複数の第1判定領域を用いた処理)と、実施例2で説明した処理(径方向に並んだ複数の第2判定領域を用いた処理)との両方を行う。
以下、本発明の実施例3を説明する。以下では、実施例1,2と同じ点(構成や処理など)についての説明は省略し、実施例1,2と異なる点について説明する。実施例2では、ファインダー内の明るさが異なる複数の条件(瞳孔の大きさが異なる複数の条件)のそれぞれの下でキャリブレーションを行ったが、瞳孔が大きい場合には、瞼によって瞳孔の一部が隠れ、眼画像において瞳孔輪郭が欠損する可能性が高い。実施例3では、瞳孔の大きさに依って眼画像における瞳孔輪郭の欠損範囲が変わることを想定する。具体的には、実施例3では、輪郭情報の生成および比較の処理として、実施例1で説明した処理(円周方向に並んだ複数の第1判定領域を用いた処理)と、実施例2で説明した処理(径方向に並んだ複数の第2判定領域を用いた処理)との両方を行う。
<キャリブレーション全体動作の説明>
図23は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。
図23は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。
ステップS521~S524は、図16(実施例2)のS321~S324と同じである。但し、詳細は後述するが、ステップS522,S524では、ステップS322,S324と異なり、実施例2で説明した第2輪郭情報だけでなく、実施例1で説明した第1輪郭情報もメモリ部4に格納される。第2輪郭情報は、径方向に並んだ複数の第2判定領域のそれぞれについて輪郭領域であるか否かを示す輪郭情報であり、第1輪郭情報は、円周方向に並んだ複数の第1判定領域のそれぞれについて輪郭領域であるか否かを示す輪郭情報である。
ステップS525では、CPU3は、キャリブレーション用画面の指標(ユーザーが注視すべき指標)の輝度を中輝度に設定する。なお、CPU3は、キャリブレーション用画面全体の輝度を中輝度に設定してもよい。CPU3は、輝度を中輝度に設定することを、
ユーザーに通知してもよい。ユーザーへの通知により、中輝度の表示が正常な表示である(表示設定が不適切なわけではない)とユーザーが認識でき、表示設定の変更が誤って行われることを抑制することができる。
ユーザーに通知してもよい。ユーザーへの通知により、中輝度の表示が正常な表示である(表示設定が不適切なわけではない)とユーザーが認識でき、表示設定の変更が誤って行われることを抑制することができる。
ステップS526では、ステップS522,S524と同様に、CPU3は、キャリブレーション(キャリブレーション用の回転角検出)を行う。ステップS526では、キャリブレーション用画面の指標が中輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報(第1輪郭情報および第2輪郭情報)と、キャリブレーションデータとが取得され、メモリ部4に格納される。
図24は、ステップS522,S524,S526のキャリブレーション(キャリブレーション用の回転角検出)の一例を示すフローチャートである。
ステップS501~S505は、図7(実施例1)のステップS101~S105と同じである。但し、ステップS501では、設定された輝度でキャリブレーション用画面の指標が表示される。ステップS522のキャリブレーションを行う場合には、ステップS521で設定された高輝度で指標が表示され、ステップS524のキャリブレーションを行う場合には、ステップS523で設定された低輝度で指標が表示される。そして、ステップS526のキャリブレーションを行う場合には、ステップS525で設定された中輝度で指標が表示される。
ステップS506では、図17(実施例2)のステップS306と同様に、CPU3は、瞳孔中心cを中心として径方向に並んだ複数の第2判定領域を設定し、複数の第2判定領域のそれぞれについて輪郭領域であるか否かを示す第2輪郭情報を生成する。
ステップS507では、図7(実施例1)のステップS106と同様に、CPU3は、瞳孔中心cを中心として円周方向に並んだ複数の第1判定領域を設定し、複数の第1判定領域のそれぞれについて輪郭領域であるか否かを示す第1輪郭情報を生成する。
ステップS508~S510は、図7(実施例1)のステップS107~S109と同じである。但し、ステップS510では、CPU3は、オフセット値θx_cal,θy_cal(キャリブレーションデータ)を、ステップS506で生成した第2輪郭情報と、ステップS507で生成した第1輪郭情報とに関連付けてメモリ部4に格納する。
<カメラ動作の説明>
キャリブレーション全体動作後のカメラ動作のフローチャートは、図9(実施例1)と同じである。但し、ステップS203では、図24(キャリブレーション用の回転角検出)のステップS502~S509と同じ処理が行われる。また、詳細は後述するが、ステップS204の処理方法(キャリブレーションデータの選択方法)が実施例1,2と異なる。
キャリブレーション全体動作後のカメラ動作のフローチャートは、図9(実施例1)と同じである。但し、ステップS203では、図24(キャリブレーション用の回転角検出)のステップS502~S509と同じ処理が行われる。また、詳細は後述するが、ステップS204の処理方法(キャリブレーションデータの選択方法)が実施例1,2と異なる。
ステップS204の処理(キャリブレーションデータの選択)の具体例を説明する。
初めに、CPU3は、径方向に並んだ複数の第2判定領域のそれぞれについて輪郭領域であるか否かを示す第2輪郭情報の比較を行う。
図25(A)~25(D)は、瞳孔輪郭上の位置(検出位置)と、第2判定領域との一例を示す図である。図25(A)は、瞳孔輪郭上の位置として、カメラ動作(図9のステップS203)で検出された複数の位置を示す。図25(A)の例では、第2判定領域R22を輪郭領域として示す第2輪郭情報が生成される。図25(B)~25(D)は、瞳
孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図25(B)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が高輝度で表示された状態で検出された複数の位置、すなわち図23のステップS522で検出された複数の位置を示す。図25(B)の例では、第2判定領域R21を輪郭領域として示す第2輪郭情報が生成される。図25(C)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が低輝度で表示された状態で検出された複数の位置、すなわち図23のステップS524で検出された複数の位置を示す。図25(C)の例では、第2判定領域R22を輪郭領域として示す第2輪郭情報が生成される。図25(D)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が中輝度で表示された状態で検出された複数の位置、すなわち図23のステップS526で検出された複数の位置を示す。図25(D)の例では、第2判定領域R22を輪郭領域として示す第2輪郭情報が生成される。
孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図25(B)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が高輝度で表示された状態で検出された複数の位置、すなわち図23のステップS522で検出された複数の位置を示す。図25(B)の例では、第2判定領域R21を輪郭領域として示す第2輪郭情報が生成される。図25(C)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が低輝度で表示された状態で検出された複数の位置、すなわち図23のステップS524で検出された複数の位置を示す。図25(C)の例では、第2判定領域R22を輪郭領域として示す第2輪郭情報が生成される。図25(D)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が中輝度で表示された状態で検出された複数の位置、すなわち図23のステップS526で検出された複数の位置を示す。図25(D)の例では、第2判定領域R22を輪郭領域として示す第2輪郭情報が生成される。
図26(A)は、カメラ動作時(現在)の第2輪郭情報と、キャリブレーションデータ1の第2輪郭情報との比較結果の一例を示す。図26(B)は、カメラ動作時の第2輪郭情報と、キャリブレーションデータ2の第2輪郭情報との比較結果の一例を示す。図26(C)は、カメラ動作時の第2輪郭情報と、キャリブレーションデータ3の第2輪郭情報との比較結果の一例を示す。カメラ動作時の第2輪郭情報は図25(A)の状況で生成された第2輪郭情報である。キャリブレーションデータ1の第2輪郭情報は図25(B)の状況で生成された第2輪郭情報である。キャリブレーションデータ2の第2輪郭情報は図25(C)の状況で生成された第2輪郭情報である。キャリブレーションデータ3の第2輪郭情報は図25(D)の状況で生成された第2輪郭情報である。実施例2と同様に、CPU3は、比較結果が「〇」のキャリブレーションデータを選択する。図26(A)では比較結果は「×」であり、図26(B),26(C)では比較結果は「〇」であるため、CPU3は、キャリブレーションデータ2,3を選択する。
実施例2で説明したように、比較結果が「〇」であるキャリブレーションデータが存在しないことがある。その場合には、CPU3は、全てのキャリブレーションデータを選択してもよいし、実施例2で説明した別の方法でキャリブレーションデータを選択してもよい。例えば、CPU3は、図21(A),21(B)を用いて説明した方法(方法2-1)と、図22(A),22(B)を用いて説明した方法(方法2-2)との少なくとも一方を用いて、キャリブレーションデータを選択してもよい。CPU3は、方法2-1でキャリブレーションデータを選択し、複数のキャリブレーションデータ(所定数より多くのキャリブレーションデータ)を選択した場合に、方法2でキャリブレーションデータを絞り込んでもよい。CPU3は、方法2-1ではキャリブレーションデータを選択せずに、方法2でキャリブレーションデータを選択してもよい。比較結果が「〇」である複数のキャリブレーションデータ(所定数より多くのキャリブレーションデータ)が存在する場合も、CPU3は、方法2でキャリブレーションデータを絞り込んでよい。
第2輪郭情報の比較により複数のキャリブレーションが選択された場合には、CPU3は、円周方向に並んだ複数の第1判定領域のそれぞれについて輪郭領域であるか否かを示す第1輪郭情報の比較を行う。ここでは、上述したように、キャリブレーションデータ2とキャリブレーションデータ3を候補として選択しているので、第2輪郭情報の比較により2つのキャリブレーションデータ2,3が選択されたとする。
図27(A)~27(C)は、瞳孔輪郭上の位置(検出位置)と、第1判定領域との一例を示す図である。図27(A)は、瞳孔輪郭上の位置として、カメラ動作(図9のステップS203)で検出された複数の位置を示す。図27(A)の例では、第1判定領域R11~R18のそれぞれを輪郭領域として示す第1輪郭情報が生成される。図27(B),27(C)は、瞳孔輪郭上の位置として、キャリブレーションで検出された複数の位置を示す。図27(B)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が
低輝度で表示された状態で検出された複数の位置、すなわち図23のステップS524で検出された複数の位置を示す。図27(B)の例では、第1判定領域R11,R14~R18のそれぞれを輪郭領域として示す第1輪郭情報が生成される。図27(C)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が中輝度で表示された状態で検出された複数の位置、すなわち図23のステップS526で検出された複数の位置を示す。図27(C)の例では、第1判定領域R11~R18のそれぞれを輪郭領域として示す第1輪郭情報が生成される。
低輝度で表示された状態で検出された複数の位置、すなわち図23のステップS524で検出された複数の位置を示す。図27(B)の例では、第1判定領域R11,R14~R18のそれぞれを輪郭領域として示す第1輪郭情報が生成される。図27(C)は、瞳孔輪郭上の位置として、キャリブレーション用画面の指標が中輝度で表示された状態で検出された複数の位置、すなわち図23のステップS526で検出された複数の位置を示す。図27(C)の例では、第1判定領域R11~R18のそれぞれを輪郭領域として示す第1輪郭情報が生成される。
図28(A)は、カメラ動作時(現在)の第1輪郭情報と、キャリブレーションデータ2の第1輪郭情報との比較結果の一例を示す。図28(B)は、カメラ動作時の第1輪郭情報と、キャリブレーションデータ3の第1輪郭情報との比較結果の一例を示す。カメラ動作時の第1輪郭情報は図27(A)の状況で生成された第1輪郭情報である。キャリブレーションデータ2の第1輪郭情報は図27(B)の状況で生成された第1輪郭情報であり、キャリブレーションデータ3の第1輪郭情報は図27(C)の状況で生成された第1輪郭情報である。第2輪郭情報の比較により複数のキャリブレーションが選択された場合に、実施例1と同様に、CPU3は、比較結果が「〇」の判定領域の数が最も多いキャリブレーションデータを選択する。但し、CPU3は、第2輪郭情報の比較により選択した複数のキャリブレーションのうち、比較結果が「〇」の判定領域の数が最も多いキャリブレーションデータを選択する。図28(A)では比較結果が「〇」の判定領域の数は6で、図28(B)では比較結果が「〇」の判定領域の数は8である。そのため、CPU3は、キャリブレーションデータ3を選択する。
実施例1で説明したように、比較結果が「〇」の判定領域の数が最も多い複数のキャリブレーションデータが存在することがある。その場合には、CPU3は、実施例1で説明した別の方法でキャリブレーションデータを絞り込んでもよい。例えば、CPU3は、図12(A)~13(C)を用いて説明した方法(方法1-1)と、図14(A)~15(C)を用いて説明した方法(方法1-2)との少なくとも一方を用いて、キャリブレーションデータを絞り込んでもよい。CPU3は、方法1-1でキャリブレーションデータを絞り込み、1つのキャリブレーションデータに絞り込めなかった場合に、方法1-2でキャリブレーションデータを1つに絞り込んでもよい。CPU3は、方法1-1ではキャリブレーションデータを絞り込まずに、方法1-2でキャリブレーションデータを1つに絞り込んでもよい。
<まとめ>
以上説明したように、実施例3によれば、実施例2と同様にキャリブレーション全体動作とカメラ動作が行われるが、輪郭情報の生成および比較の処理として、実施例1で説明した処理と、実施例2で説明した処理との両方が行われる。こうすることで、実施例2よりも高精度に視線(視点)を検出することができる。例えば、瞳孔の大きさが依って眼画像における瞳孔輪郭の欠損範囲が変わっても、視線(視点)を高精度に検出することができる。
以上説明したように、実施例3によれば、実施例2と同様にキャリブレーション全体動作とカメラ動作が行われるが、輪郭情報の生成および比較の処理として、実施例1で説明した処理と、実施例2で説明した処理との両方が行われる。こうすることで、実施例2よりも高精度に視線(視点)を検出することができる。例えば、瞳孔の大きさが依って眼画像における瞳孔輪郭の欠損範囲が変わっても、視線(視点)を高精度に検出することができる。
なお、第2輪郭情報の比較の後に第1輪郭情報の比較を行う例を説明したが、第1輪郭情報の比較の後に第2輪郭情報の比較を行ってもよい。例えば、CPU3は、図10(A)~11(B)を用いて説明した方法(方法1-0)でキャリブレーションデータを選択し、複数のキャリブレーションデータを選択した場合に、第2輪郭情報を比較して、キャリブレーションデータを1つに絞り込んでもよい。CPU3は、方法1-0で複数のキャリブレーションデータ(所定数より多くのキャリブレーションデータ)を選択した場合に、方法1-1でキャリブレーションデータを絞り込んでもよい。そして、CPU3は、方法1-1で複数のキャリブレーションデータを選択した場合に、第2輪郭情報を比較して、キャリブレーションデータを1つに絞り込んでもよい。
<<実施例4>>
以下、本発明の実施例4を説明する。以下では、実施例1~3と同じ点(構成や処理など)についての説明は省略し、実施例1~3と異なる点について説明する。実施例3では、ファインダー内の明るさが異なる複数の条件(瞳孔の大きさが異なる複数の条件)のそれぞれの下でキャリブレーションを行った。そして、実施例3では、瞳孔の大きさに依って瞳孔輪郭の欠損範囲が変わることを想定し、輪郭情報の生成および比較の処理として、実施例1で説明した処理と、実施例2で説明した処理との両方を行った。しかし、実施例1で想定したように、眼画像における瞳孔輪郭の欠損範囲は、ファインダーの覗き方に依っても変わる。実施例4では、ファインダー内の明るさとファインダーの覗き方との組み合わせが異なる複数の条件のそれぞれの下でキャリブレーションを行う。
以下、本発明の実施例4を説明する。以下では、実施例1~3と同じ点(構成や処理など)についての説明は省略し、実施例1~3と異なる点について説明する。実施例3では、ファインダー内の明るさが異なる複数の条件(瞳孔の大きさが異なる複数の条件)のそれぞれの下でキャリブレーションを行った。そして、実施例3では、瞳孔の大きさに依って瞳孔輪郭の欠損範囲が変わることを想定し、輪郭情報の生成および比較の処理として、実施例1で説明した処理と、実施例2で説明した処理との両方を行った。しかし、実施例1で想定したように、眼画像における瞳孔輪郭の欠損範囲は、ファインダーの覗き方に依っても変わる。実施例4では、ファインダー内の明るさとファインダーの覗き方との組み合わせが異なる複数の条件のそれぞれの下でキャリブレーションを行う。
<キャリブレーション全体動作の説明>
図29は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。
図29は、キャリブレーション全体動作(キャリブレーションを含む一連の動作)の一例を示すフローチャートである。
ステップS721では、図6(実施例1)のステップS121と同様に、CPU3は、ファインダーを覗いていない眼を閉じる動作を促す所定の通知(アナウンス)を、ユーザーに対して行う。
ステップS722~S725は、図23のステップS521~S524(図16のステップS321~S324)と同じである。ステップS723では、ファインダーを覗かない眼が閉じられ且つキャリブレーション用画面の指標が高輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。ステップS725では、ファインダーを覗かない眼が閉じられ且つキャリブレーション用画面の指標が低輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。ステップS723,S725では、ステップS522,S524と同様に、実施例2で説明した第2輪郭情報だけでなく、実施例1で説明した第1輪郭情報もメモリ部4に格納される。
ステップS726では、図6(実施例1)のステップS123と同様に、CPU3は、ファインダーを覗いていない眼を開く動作を促す所定の通知(アナウンス)を、ユーザーに対して行う。
ステップS727~S730は、図23のステップS521~S524(図16のステップS321~S324)と同じである。ステップS728では、ファインダーを覗かない眼が開かれ且つキャリブレーション用画面の指標が高輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。ステップS730では、ファインダーを覗かない眼が開かれ且つキャリブレーション用画面の指標が低輝度で表示された状態で、ファインダーを覗いている眼の瞳孔の輪郭情報と、キャリブレーションデータとが取得され、メモリ部4に格納される。ステップS727,S730では、ステップS522,S524と同様に、実施例2で説明した第2輪郭情報だけでなく、実施例1で説明した第1輪郭情報もメモリ部4に格納される。
キャリブレーション全体動作後のカメラ動作は、実施例3と同じである。
<まとめ>
以上説明したように、実施例4によれば、ファインダーの覗き方に依って眼画像におけ
る瞳孔輪郭の欠損範囲が変わることと、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化することとを想定してキャリブレーションが行われる。具体的には、ファインダー内の明るさとファインダーの覗き方との組み合わせが異なる複数の条件のそれぞれの下でキャリブレーションが行われる。そして、実施例3と同様にカメラ動作が行われる。こうすることで、実施例1~3よりも高精度に視線(視点)を検出することができる。例えば、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化しても、ファインダーの覗き方に依って眼画像における瞳孔輪郭の欠損範囲が変わっても、視線(視点)を高精度に検出することができる。
以上説明したように、実施例4によれば、ファインダーの覗き方に依って眼画像におけ
る瞳孔輪郭の欠損範囲が変わることと、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化することとを想定してキャリブレーションが行われる。具体的には、ファインダー内の明るさとファインダーの覗き方との組み合わせが異なる複数の条件のそれぞれの下でキャリブレーションが行われる。そして、実施例3と同様にカメラ動作が行われる。こうすることで、実施例1~3よりも高精度に視線(視点)を検出することができる。例えば、撮影環境に依ってファインダー内の明るさが変化して瞳孔の大きさが変化しても、ファインダーの覗き方に依って眼画像における瞳孔輪郭の欠損範囲が変わっても、視線(視点)を高精度に検出することができる。
なお、実施例1~4はあくまで一例であり、本発明の要旨の範囲内で実施例1~4の構成を適宜変形したり変更したりすることにより得られる構成も、本発明に含まれる。実施例1~4の構成を適宜組み合わせて得られる構成も、本発明に含まれる。例えば、ユーザーに依っては複数回のキャリブレーションが煩わしいことがある。そのため、ユーザーがキャリブレーションの条件を選択可能であってもよい。
また、撮像装置(カメラ)に本発明を適用した例を説明したが、本発明は、視線検出を行う種々の視線検出装置や、視線検出のキャリブレーションを行う種々のキャリブレーション装置に適用可能である。キャリブレーション装置は、視線検出装置とは別体の装置であってもよい。
<<他の電子機器への適用例>>
図30(A)は、ノート型パーソナルコンピュータ810(ノートPC)の外観図である。図30(A)では、ノートPC810の表示部811を見るユーザーを撮像する撮像ユニット815がノートPC810に接続されており、ノートPC810は撮像ユニット815から撮像結果を取得する。そして、ノートPC810は、撮像結果に基づいてユーザーの視線を検出する。撮像ユニット815が視線検出を行ってもよい。本発明は、ノートPC810や撮像ユニット815にも適用可能である。
図30(A)は、ノート型パーソナルコンピュータ810(ノートPC)の外観図である。図30(A)では、ノートPC810の表示部811を見るユーザーを撮像する撮像ユニット815がノートPC810に接続されており、ノートPC810は撮像ユニット815から撮像結果を取得する。そして、ノートPC810は、撮像結果に基づいてユーザーの視線を検出する。撮像ユニット815が視線検出を行ってもよい。本発明は、ノートPC810や撮像ユニット815にも適用可能である。
図30(B)は、スマートフォン820の外観図である。図30(B)では、スマートフォン820は、インカメラ821(フロントカメラ)の撮像結果に基づいて、スマートフォン820の表示部822を見るユーザーの視線を検出する。本発明は、スマートフォン820にも適用可能である。同様に、本発明は、種々のタブレット端末にも適用可能である。
図30(C)は、ゲーム機830の外観図である。図30(C)では、ゲームのVR(Virtual Reality)画像を表示部836に表示するヘッドマウントディスプレイ835(HMD)が、ゲーム機830に接続されている。HMD835は、HMD835を装着したユーザーの眼を撮像するカメラ837を有しており、ゲーム機830は、HMD835から撮像結果を取得する。そして、ゲーム機830は、撮像結果に基づいてユーザーの視線を検出する。HMD835が視線検出を行ってもよい。本発明は、ゲーム機830やHMD835にも適用可能である。HMDに表示したVR画像を見る場合に本発明が適用可能であるのと同様に、眼鏡型のウェアラブル端末のレンズ部分などに表示したAR(Augmented Reality)画像を見る場合にも本発明は適用可能である。VR技術やAR技術に本発明が適用可能であるのと同様に、MR(Mixed Reality)技術やSR(Substitutional Reality)技術などの別のxR技術にも本発明は適用可能である。
<その他の実施例>
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおけ
る1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおけ
る1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1:カメラ 3:CPU
Claims (20)
- ユーザーの眼を撮像した眼画像から瞳孔の輪郭上の複数の位置を検出し、当該複数の位置に関連した輪郭情報を生成する瞳孔検出手段と、
前記瞳孔検出手段により検出された前記複数の位置から推定される前記瞳孔の中心位置に基づいて、前記ユーザーの視線を検出する視線検出手段と
を有し、
複数の条件のそれぞれの下で、前記視線検出手段が視線を検出する際に使用するキャリブレーションデータを得るためのキャリブレーションが予め行われており、
前記キャリブレーションによって得られた前記キャリブレーションデータは、当該キャリブレーションの際に前記瞳孔検出手段により生成された輪郭情報と関連付けられて、記憶手段に予め格納されており、
前記視線検出手段は、前記記憶手段に格納されている複数のキャリブレーションデータのうち、前記瞳孔検出手段により生成された現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、前記ユーザーの視線を検出する
ことを特徴とする視線検出装置。 - 前記瞳孔検出手段は、検出した前記複数の位置から推定される前記瞳孔の中心位置を基準として複数の判定領域を設定し、前記複数の判定領域のそれぞれについて前記瞳孔の輪郭上の位置が検出された領域であるか否かを示す前記輪郭情報を生成する
ことを特徴とする請求項1に記載の視線検出装置。 - 前記瞳孔検出手段は、前記瞳孔の中心位置を中心として円周方向に並んだ複数の第1判定領域を設定し、前記複数の第1判定領域のそれぞれについて前記瞳孔の輪郭上の位置が検出された領域であるか否かを示す第1輪郭情報を生成する
ことを特徴とする請求項1または2に記載の視線検出装置。 - 前記瞳孔検出手段は、前記瞳孔の中心位置を中心として径方向に並んだ複数の第2判定領域を設定し、前記複数の第2判定領域のそれぞれについて前記瞳孔の輪郭上の位置が検出された領域であるか否かを示す第2輪郭情報を生成する
ことを特徴とする請求項1~3のいずれか1項に記載の視線検出装置。 - 前記複数の条件は、前記キャリブレーション用の画面を見ない眼が閉じているという条件と、前記キャリブレーション用の画面を見ない眼が開いているという条件とを含む
ことを特徴とする請求項1~4のいずれか1項に記載の視線検出装置。 - 前記複数の条件は、前記キャリブレーション用の画面に表示される指標の輝度が異なる2つ以上の条件を含む
ことを特徴とする請求項1~5のいずれか1項に記載の視線検出装置。 - 前記複数の条件は、前記キャリブレーション用の画面全体の輝度が異なる2つ以上の条件を含む
ことを特徴とする請求項1~6のいずれか1項に記載の視線検出装置。 - 前記キャリブレーションを行う際に当該キャリブレーションの条件を前記ユーザーに通知する通知手段をさらに有する
ことを特徴とする請求項1~7のいずれか1項に記載の視線検出装置。 - 前記キャリブレーションの条件を前記ユーザーが選択可能である
ことを特徴とする請求項1~8のいずれか1項に記載の視線検出装置。 - 前記瞳孔検出手段により検出された前記複数の位置から推定される前記瞳孔の中心位置は、前記瞳孔の輪郭に近似した円周の中心位置である
ことを特徴とする請求項1~9のいずれか1項に記載の視線検出装置。 - 視線検出のキャリブレーションの複数の条件をユーザーに順次通知する通知手段と、
前記キャリブレーションの条件が前記通知手段により通知される度に、通知された条件下で前記キャリブレーションを行うキャリブレーション手段と
を有することを特徴とするキャリブレーション装置。 - 前記複数の条件は、前記キャリブレーション用の画面を見ない眼が閉じているという条件と、前記キャリブレーション用の画面を見ない眼が開いているという条件とを含む
ことを特徴とする請求項11に記載のキャリブレーション装置。 - 前記通知手段は、前記キャリブレーション用の画面を見ない眼を閉じる動作を促す通知と、前記キャリブレーション用の画面を見ない眼を開く動作を促す通知とを含む複数の通知を順次行う
ことを特徴とする請求項11または12に記載のキャリブレーション装置。 - 前記複数の条件は、前記キャリブレーション用の画面に表示される指標の輝度が異なる2つ以上の条件を含む
ことを特徴とする請求項11~13のいずれか1項に記載のキャリブレーション装置。 - 前記複数の条件は、前記キャリブレーション用の画面全体の輝度が異なる2つ以上の条件を含む
ことを特徴とする請求項11~14のいずれか1項に記載のキャリブレーション装置。 - 前記キャリブレーションの条件を前記ユーザーが選択可能である
ことを特徴とする請求項11~15のいずれか1項に記載のキャリブレーション装置。 - ユーザーの眼を撮像した眼画像から瞳孔の輪郭上の複数の位置を検出し、当該複数の位置に関連した輪郭情報を生成する瞳孔検出ステップと、
前記瞳孔検出ステップで検出された前記複数の位置から推定される前記瞳孔の中心位置に基づいて、前記ユーザーの視線を検出する視線検出ステップと
を有し、
複数の条件のそれぞれの下で、前記視線検出ステップで視線を検出する際に使用するキャリブレーションデータを得るためのキャリブレーションが予め行われており、
前記キャリブレーションによって得られた前記キャリブレーションデータは、当該キャリブレーションの際に前記瞳孔検出ステップで生成された輪郭情報と関連付けられて、記憶手段に予め格納されており、
前記視線検出ステップでは、前記記憶手段に格納されている複数のキャリブレーションデータのうち、前記瞳孔検出ステップで生成された現在の輪郭情報に最も類似した輪郭情報が関連付けられたキャリブレーションデータを使用して、前記ユーザーの視線を検出する
ことを特徴とする視線検出方法。 - 視線検出のキャリブレーションの複数の条件をユーザーに順次通知する通知ステップと、
前記キャリブレーションの条件が前記通知ステップで通知される度に、通知された条件下で前記キャリブレーションを行うキャリブレーションステップと
を有することを特徴とするキャリブレーション方法。 - コンピュータを、請求項1~10のいずれか1項に記載の視線検出装置の各手段として機能させるためのプログラム。
- コンピュータを、請求項11~16のいずれか1項に記載のキャリブレーション装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021147925A JP2023040771A (ja) | 2021-09-10 | 2021-09-10 | 視線検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021147925A JP2023040771A (ja) | 2021-09-10 | 2021-09-10 | 視線検出装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023040771A true JP2023040771A (ja) | 2023-03-23 |
Family
ID=85632316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021147925A Pending JP2023040771A (ja) | 2021-09-10 | 2021-09-10 | 視線検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023040771A (ja) |
-
2021
- 2021-09-10 JP JP2021147925A patent/JP2023040771A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11650660B2 (en) | Electronic device, control method, and non-transitory computer readable medium | |
US20230013134A1 (en) | Electronic device | |
JP2024003037A (ja) | 電子機器、電子機器の制御方法、プログラムおよび記憶媒体 | |
US20230142934A1 (en) | Electronic device, control method of electronic device, and non-transitory computer readable medium | |
US11829052B2 (en) | Gaze detection apparatus, gaze detection method, and non-transitory computer readable medium | |
US11822714B2 (en) | Electronic device and control method for capturing an image of an eye | |
JP2023040771A (ja) | 視線検出装置 | |
US20240114228A1 (en) | Line-of-sight detecting apparatus, image pickup apparatus, line-of-sight detecting method, and storage medium | |
US11971552B2 (en) | Electronic device, method of controlling the same, and storage medium | |
US20230092593A1 (en) | Detection device detecting gaze point of user, control method therefor, and storage medium storing control program therefor | |
US20230336862A1 (en) | Electronic device, control method, and non-transitory computer readable medium | |
JP7446898B2 (ja) | 電子機器 | |
US20240085979A1 (en) | Recording device, image-capturing apparatus, control method, and recording system | |
US20230125838A1 (en) | Electronic apparatus and control method for electronic apparatus | |
JP2018042155A (ja) | 表示装置及びその制御方法 | |
JP2022171084A (ja) | 撮像装置及びその制御方法、並びにプログラム | |
JP2021182736A (ja) | 電子機器 | |
JP2018033055A (ja) | 撮像装置 | |
JP2022183552A (ja) | 視線情報取得装置、撮像装置、視線情報取得方法、プログラム、及び、記憶媒体 | |
JP2023087377A (ja) | 視線検出装置 | |
JP2023159741A (ja) | 電子機器、電子機器の制御方法、プログラム、および記憶媒体 | |
JP2023102822A (ja) | 表示装置、ファインダ装置、および撮像装置 | |
JP2024003432A (ja) | 電子機器 | |
JP2023083695A (ja) | 電子機器 | |
JP2023155585A (ja) | 電子機器 |