JP2023087377A - 視線検出装置 - Google Patents

視線検出装置 Download PDF

Info

Publication number
JP2023087377A
JP2023087377A JP2021201724A JP2021201724A JP2023087377A JP 2023087377 A JP2023087377 A JP 2023087377A JP 2021201724 A JP2021201724 A JP 2021201724A JP 2021201724 A JP2021201724 A JP 2021201724A JP 2023087377 A JP2023087377 A JP 2023087377A
Authority
JP
Japan
Prior art keywords
line
sight
posture
user
head
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021201724A
Other languages
English (en)
Inventor
秀 田中
Hide Tanaka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2021201724A priority Critical patent/JP2023087377A/ja
Priority to US18/064,084 priority patent/US20230186520A1/en
Publication of JP2023087377A publication Critical patent/JP2023087377A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • H04N17/002Diagnosis, testing or measuring for television systems or their details for television cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/766Arrangements for image or video recognition or understanding using pattern recognition or machine learning using regression, e.g. by projecting features on hyperplanes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/19Sensors therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/61Control of cameras or camera modules based on recognised objects
    • H04N23/611Control of cameras or camera modules based on recognised objects where the recognised objects include parts of the human body
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/617Upgrading or updating of programs or applications for camera control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • H04N23/672Focus control based on electronic image sensor signals based on the phase difference signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/67Focus control based on electronic image sensor signals
    • H04N23/675Focus control based on electronic image sensor signals comprising setting of focusing regions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Ophthalmology & Optometry (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Biomedical Technology (AREA)
  • Eye Examination Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)
  • Viewfinders (AREA)
  • Automatic Focus Adjustment (AREA)

Abstract

Figure 2023087377000001
【課題】視線検出装置の使用状態の変化に起因した視線検出の精度の低下を抑制することのできる技術を提供する。
【解決手段】本発明の視線検出装置は、ユーザーの眼を撮像した眼画像に基づいて、前記ユーザーが見ている位置である視線位置を検出する視線検出手段と、前記眼画像に基づいて、前記ユーザーの頭部の姿勢である頭部姿勢を検出する姿勢検出手段と、所定のキャリブレーション動作により、前記視線位置の検出誤差を低減するための第1の補正値を取得するキャリブレーション手段と、現在の視線位置に関する視線情報、前記所定のキャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢に基づいて、前記第1の補正値を補正する補正手段とを有することを特徴とする。
【選択図】図8

Description

本発明は視線検出装置に関する。
近年、カメラの自動化・インテリジェント化が進んでいる。特許文献1では、手動で被写体位置を入力せずとも、ファインダを覗く撮影者の視線位置の情報に基づいて、撮影者が意図する被写体を認識し、焦点制御を行う技術が提案されている。ユーザーの視線位置を検出する視線検出装置は、ユーザーの頭部に装着するVR機器やAR機器などのウェアラブルデバイスにも搭載され、ユーザーインターフェースとして普及しつつある。特許文献2では、人物の顔全体を撮像した画像に基づいて顔の向きと両眼の視線方向とを判断し、顔の向きに基づいて両眼の視線方向を統合することで人物の視線方向を判断する技術が提案されている。特許文献3では、視線検出の精度を向上させるためにキャリブレーションを行う技術が提案されている。
特開2004-008323号公報 特開2009-104524号公報 特開平4-242630号公報
しかしながら、ファインダの覗き方やウェアラブルデバイスの装着状態などの使用状態を一定にして視線検出装置を使用することはユーザーにとって難しく、キャリブレーションを行っていても、使用状態の変化によって視線検出の精度が低下してしまう。
本発明は、視線検出装置の使用状態の変化に起因した視線検出の精度の低下を抑制することのできる技術を提供することを目的とする。
本発明の視線検出装置は、ユーザーの眼を撮像した眼画像に基づいて、前記ユーザーが見ている位置である視線位置を検出する視線検出手段と、前記眼画像に基づいて、前記ユーザーの頭部の姿勢である頭部姿勢を検出する姿勢検出手段と、所定のキャリブレーション動作により、前記視線位置の検出誤差を低減するための第1の補正値を取得するキャリブレーション手段と、現在の視線位置に関する視線情報、前記所定のキャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢に基づいて、前記第1の補正値を補正する補正手段とを有することを特徴とする。
本発明によれば、視線検出装置の使用状態の変化に起因した視線検出の精度の低下を抑制することができる。
実施例1に係るカメラの外観図である。 実施例1に係るカメラの断面図である。 実施例1に係るカメラのブロック図である。 実施例1に係るカメラのファインダ内視野を示す図である。 実施例1に係るキャリブレーション動作のフローチャートである。 実施例1に係る視線検出方法の原理を説明するための図である。 実施例1に係る眼画像を示す図である。 実施例1に係る視線検出動作のフローチャートである。 実施例1に係る頭部の回転方向を示す図である。 実施例1に係る頭部姿勢情報の取得方法を説明するための図である。 実施例1に係るニューラルネットワークを示す図である。 実施例1に係るカメラ動作のフローチャートである。 実施例2に係るヘッドマウントディスプレイの外観図である。 実施例2に係るヘッドマウントディスプレイのブロック図である。
以下、添付の図面を参照して本発明の実施例について説明する。視線検出の精度は、キャリブレーションを行うことで向上させることができる。しかしながら、ファインダの覗き方やウェアラブルデバイスの装着状態などの使用状態を一定にして視線検出装置を使用することはユーザーにとって難しく、使用状態がキャリブレーション時と異なると、視線検出の精度が低下してしまう。特に眼鏡型のウェアラブルデバイスは通常の眼鏡と同様にずれやすく、視線検出の精度が低下しやすい。顔の向きを考慮して視線検出を行う技術が提案されているが、そのような技術でも、キャリブレーション時との顔の向きの違いは考慮されず、視線検出の精度が低下してしまう。そこで、以下の実施例では、キャリブレーション時からの視線検出装置の使用状態のずれを検出し、キャリブレーションにより得られた補正値を、検出結果に応じて補正する。これにより、視線検出装置の使用状態がキャリブレーション時と異なることに起因した視線検出の精度の低下を抑制することができる。
<<実施例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(タッチパネル)は、液晶パネルなどの表示パネルを備えており、表示パネルで画像を表示する機能を有する。また、ユーザーの眼球を照明する4つの光源13a~13dが接眼レンズ12の周囲に備わっている。光源の数は4つより多くても少なくてもよい。
図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~13d、光分割器15、受光レンズ16、眼用撮像素子17なども含まれている。光源13a~13dは、光の角膜反射による反射像(角膜反射像;プルキニエ像)と瞳孔の関係から視線を検出するために従来から一眼レフカメラなどで用いられている光源であり、ユーザーの眼球14を照明するための光源である。具体的には、光源13a~13dは、ユーザーに対して不感の赤外光を発する赤外発光ダイオードなどであり、接眼レンズ12の周りに配置されている。照明された眼球14の光学像(眼球像;光源13a~13dから発せられて眼球14で反射した反射光による像)は、接眼レンズ12を透過し、光分割器15で反射される。そして、眼球像は、受光レンズ16によって、CCDやCMOSなどの光電素子列を2次元的に配した眼用撮像素子17上に結像される。受光レンズ16は、眼球14の瞳孔と眼用撮像素子17を共役な結像関係に位置付けている。後述する所定のアルゴリズムにより、眼用撮像素子17上に結像された眼球像における眼球(瞳孔)と角膜反射像の位置関係から、眼球14の視線が検出される。具体的には、視線に関する情報として、視線方向(視線の方向;ユーザーが見ている方向)や、表示デバイス10の画面における視点(視線が注がれた位置;ユーザーが見ている位置;視線位置)などが得られる。
図3は、カメラ1内の電気的構成を示すブロック図である。CPU3には、視線検出回路201、測光回路202、自動焦点検出回路203、信号入力回路204、表示デバイス駆動回路11、光源駆動回路205などが接続されている。また、CPU3は、撮影レンズユニット1A内に配置された焦点調節回路118と、撮影レンズユニット1A内の絞り駆動部112に含まれた絞り制御回路206とに、マウント接点117を介して信号を伝達する。CPU3に付随したメモリ部4は、撮像素子2や眼用撮像素子17からの撮像信号の記憶機能と、後述する視線の個人差を補正する視線補正値の記憶機能とを有する。視線補正値は、視点の検出誤差を低減するための補正値と捉えることもできる。
視線検出回路201は、デジタルシリアルインターフェース回路であり、眼用撮像素子17上に眼球像が結像した状態での眼用撮像素子17の出力(眼(眼球14)を撮像した眼画像)をA/D変換し、その結果をCPU3に送信する。CPU3は、後述する所定のアルゴリズムに従って眼画像から視線検出に必要な特徴点を抽出し、特徴点の位置からユーザーの視線を検出する。
測光回路202は、測光センサの役割を兼ねた撮像素子2から得られる信号、具体的には被写界の明るさに対応した輝度信号の増幅、対数圧縮、A/D変換などを行い、その結果を被写界輝度情報としてCPU3に送る。
自動焦点検出回路203は、撮像素子2の中に含まれる、位相差検出のために使用される複数の検出素子(複数の画素)からの信号電圧をA/D変換し、CPU3に送る。CPU3は、複数の検出素子の信号から、各焦点検出ポイントに対応する被写体までの距離を演算する。これは撮像面位相差AFとして知られる公知の技術である。実施例1では、一例として、図4(a)のファインダ内視野像(表示デバイス10の画面)に示した180か所に対応する撮像面上の180か所のそれぞれに、焦点検出ポイントがあるとする。
信号入力回路204には、スイッチSW1とスイッチSW2が接続されている。スイッチSW1は、レリーズボタン5の第1ストロークでONするスイッチであり、カメラ1の測光、測距、視線検出動作などを開始するためのスイッチである。スイッチSW2は、レリーズボタン5の第2ストロークでONするスイッチであり、撮影動作を開始するためのスイッチである。スイッチSW1,SW2からのON信号が信号入力回路204に入力され、CPU3に送信される。
光源駆動回路205は、光源13a~13dを駆動する。
図4(a)は、実施例1に係るファインダ内視野を示す図であり、表示デバイス10が動作した状態(画像を表示した状態)を示す。図4(a)に示すように、ファインダ内視野には、焦点検出領域400、180個の測距点指標401、視野マスク402などがある。180個の測距点指標401のそれぞれは、撮像面上における焦点検出ポイントに対応する位置に表示されるように、表示デバイス10に表示されたスルー画像(ライブビュー画像)に重ねて表示される。また、180個の測距点指標401のうち、現在の視点A(推定位置)に対応する測距点指標401は、枠などで強調されて表示される。
<キャリブレーション動作の説明>
視点は、人間の眼球の形状の個人差などの要因により、高精度に推定できないことがある。具体的には、視線補正値をユーザーに適した値に調整しなければ、図4(b)に示すように、実際の視点Bと推定された視点Cとのずれが生じてしまう。図4(b)では、ユーザーは人物を注視しているが、カメラ1は背景が注視されていると誤って推定しており、適切な焦点検出・調整ができない状態に陥ってしまっている。
そこで、カメラ1が撮像を行う前に、キャリブレーション作業を行い、ユーザーに適した視線補正値を取得し、カメラ1に格納する必要がある。
キャリブレーション作業は、例えば、撮像前に図4(c)のような位置の異なる複数の指標を表示デバイス10の画面に強調表示し、ユーザーにその指標を見てもらうことで行われる。各指標の注視時に視線検出動作が行われ、算出された複数の視点(推定位置)と、各指標の座標とから、ユーザーに適した視線補正パラメーが求められる。なお、ユーザーの見るべき位置が示唆されれば、指標の表示方法は特に限定されず、指標であるグラフィックが表示されてもよいし、画像(撮像された画像など)の輝度や色の変更で指標が表示されてもよい。
図5は、実施例1に係るキャリブレーション動作(所定のキャリブレーション動作)のフローチャートである。実施例1に係るキャリブレーション動作では、視線補正値だけでなく、ユーザーの頭部の姿勢に関する頭部姿勢情報も取得する。キャリブレーション動作は、例えば、キャリブレーション作業の開始を指示するユーザー操作に応じて開始する。
ステップS501では、CPU3は、ユーザーに注視させる指標を表示デバイス10に表示する。
ステップS502では、CPU3は、所定時間の待機を行う。
ステップS503では、CPU3は、ユーザーによってレリーズボタン5が押されて(半押しされて)スイッチSW1がONとなったか否かを判定する。例えば、ユーザーは、指標を注視したことを示すために、レリーズボタン5の半押しを行い、スイッチSW1をONにする。CPU3は、スイッチSW1がONとなった場合はステップS504に処理を進め、スイッチSW1がONとならなかった場合はステップS502に処理を戻す。
ステップS504では、CPU3は、視線検出動作を行う。視線検出動作は図8を用いて後述するが、ステップS504では、図8のステップS801~S806の処理が行われる。ステップS504では、視線方向が検出される。例えば、受光レンズ16の光軸に対する眼球14の光軸の角度(回転角θx,θy)が算出される。眼球14の光軸は、ユーザーの視線方向回転角θxは、Z-X平面(Y軸に垂直な平面)内での眼球14の回転角であり、回転角θyは、Z-Y平面(X軸に垂直な平面)内での眼球14の回転角である。さらに、ステップS504では、頭部姿勢情報が取得される。
ステップS505では、CPU3は、所定のエラー判定処理を行う。エラー判定処理は、ステップS504の視線検出動作に失敗したか否かを判定する処理である。例えば、CPU3は、角膜反射像が検出できなかった場合に、視線検出動作に失敗した(視線検出動作にエラーが発生した)と判定する。これに限られず、エラー判定処理では、角膜反射像の間隔や、瞳孔中心(瞳孔の中心)と角膜反射像との間隔などの様々な基準で、エラーの有無を判定することができる。
ステップS506では、CPU3は、ステップS505のエラー判定処理の結果に応じて、ステップS504の視線検出動作(現在の視線検出動作)に失敗したか否かを判定する。そして、CPU3は、視線検出動作に失敗した(視線検出動作にエラーが発生した)場合はステップS507に処理を進め、視線検出動作に成功した(視線検出動作にエラーが発生しなかった)場合はステップS509に処理を進める。
ステップS507では、CPU3は、視線検出動作の実行回数が所定回数に達したか否かを判定する。そして、CPU3は、視線検出動作の実行回数が所定回数未満である場合はステップS504に処理を戻し、視線検出動作の実行回数が所定回数である場合はステップS508に処理を進める。視線検出動作の実行回数はCPU3によりカウントされる。視線検出動作の実行回数(成功回数+失敗回数)の代わりに、視線検出動作の失敗回数をカウントしてもよい。
ステップS508では、CPU3は、キャリブレーション(視線補正値の決定)が適切に行えないと判断し、キャリブレーションに失敗した旨をユーザーへ通知する。そして、CPU3は、キャリブレーション動作を終了する。
ステップS509では、CPU3は、視線方向の検出回数(視線方向を検出できた回数;回転角θx,θyを算出できた回数;視線検出動作の成功回数)が所定回数に達したか否かを判定する。そして、CPU3は、視線方向の検出回数が所定回数未満である場合はステップS504に処理を戻し、視線方向の検出回数が所定回数に達した場合はステップS510に処理を進める。視線方向の検出回数はCPU3によりカウントされる。
ステップS510では、CPU3は、全ての指標について視線検出(ステップS501~S509の処理)が完了したか否かを判定する。そして、CPU3は、視線検出が行われていない指標が残っている場合はステップS511に処理を進め、全ての指標について視線検出が完了した場合はステップS513に処理を進める。
ステップS511では、CPU3は、ステップS501で表示する指標を次の指標に変更する(切り替える)。
ステップS512では、CPU3は、変更前の指標が表示されている状態で得られた情報をリセットする。例えば、CPU3は、回転角θx,θyをリセットする。CPU3は、ステップS507,S509の処理ためにカウントした回数(視線検出動作の実行回数と視線方向の検出回数)もリセットする。そして、CPU3は、ステップS501に処理を戻す。
ステップS513では、CPU3は、キャリブレーションに成功した旨をユーザーへ通知する。
ステップS514では、CPU3は、指標ごとに検出した視線方向(回転角θx,θy)に基づいて視線補正値を算出し、視線補正値を、ステップS504で取得した頭部姿勢情報とともにメモリ部4に格納する。そして、CPU3は、キャリブレーション動作を終了する。メモリ部4に格納する頭部姿勢情報は、キャリブレーション動作中の代表的な頭部の姿勢に関する情報である。例えば、頭部姿勢情報は、頭部の姿勢を示す値であり、メモリ部4に格納する頭部姿勢情報は、キャリブレーション動作中に得られた値(頭部姿勢情報)の平均値、中間値、または最頻値である。
ステップS514では、視線補正値として、補正値Ax,Bx,Ay,Byが算出される。補正値AxはX軸方向のオフセットであり、補正値BxはX軸方向の敏感度であり、補正値AyはY軸方向のオフセットであり、補正値ByはY軸方向の敏感度である。
一例として、表示デバイス10の画面の中央、上端、下端、左端、及び、右端の5か所に順に指標を表示する場合を説明する。図4(c)の中央の指標411は、回転角θx=φx1と回転角θy=φy1に対応するとする。ユーザーが指標411を注視しているときに、回転角θx=θx1と回転角θy=θy1が得られたとすると、オフセットAx,Ayは以下の式1-1,1-2で算出できる。

Ax=θx1-φx1 ・・・(式1-1)
Ay=θy1-φy1 ・・・(式1-2)
図4(c)の指標412が回転角θx=φx2と回転角θy=φy2に対応し、指標413が回転角θx=φx3と回転角θy=φy3に対応するとする。指標414が回転角θx=φx4と回転角θy=φy4に対応し、指標415が回転角θx=φx5と回転角θy=φy5に対応するとする。ユーザーが指標412を注視しているときに、回転角θx=θx2と回転角θy=θy2が得られ、ユーザーが指標413を注視しているときに、回転角θx=θx3と回転角θy=θy3が得られたとする。そして、ユーザーが指標414を注視しているときに、回転角θx=θx4と回転角θy=θy4が得られ、ユーザーが指標415を注視しているときに、回転角θx=θx5と回転角θy=θy5が得られたとする。そうすると、敏感度Bx,Byは以下の式2-1,2-2で算出できる。

Bx=(θx2-θx3)/(φx2-φx3) ・・・(式2-1)
By=(θy4-θy5)/(φy4-φy5) ・・・(式2-2)
<視線検出動作の説明>
図6,7(a),7(b),8を用いて、視線検出方法について説明する。図6は、視線検出方法の原理を説明するための図であり、視線検出を行うための光学系の概略図である。図6に示すように、光源13a,13bは受光レンズ16の光軸に対して略対称に配置され、ユーザーの眼球14を照らす。光源13a,13bから発せられて眼球14で反射した光の一部は、受光レンズ16によって、眼用撮像素子17に集光する。同様に、光源13c,13dは受光レンズ16の光軸に対して略対称に配置され、ユーザーの眼球14を照らす。光源13c,13dから発せられて眼球14で反射した光の一部は、受光レンズ16によって、眼用撮像素子17に集光する。図7(a)は、眼用撮像素子17で撮像された眼画像(眼用撮像素子17に投影された眼球像)の概略図であり、図7(b)は眼用撮像素子17の出力強度を示す図である。図8は、実施例1に係る視線検出動作のフローチャートである。
視線検出動作が開始すると、図8のステップS801で、光源13a~13dは、ユーザーの眼球14に向けて赤外光を発する。赤外光によって照明されたユーザーの眼球像は、受光レンズ16を通して眼用撮像素子17上に結像され、眼用撮像素子17により光電変換される。これにより、処理可能な眼画像の電気信号が得られる。
ステップS802では、視線検出回路201は、眼用撮像素子17から得られた眼画像(眼画像信号;眼画像の電気信号)をCPU3に送る。
ステップS803では、CPU3は、ステップS802で得られた眼画像から、光源13a~13dの角膜反射像Pd,Pe,Pf,Pgと瞳孔中心cに対応する点の座標を求める。
光源13a~13dより発せられた赤外光は、ユーザーの眼球14の角膜142を照明する。このとき、角膜142の表面で反射した赤外光の一部により形成される角膜反射像Pd,Pe,Pf,Pgは、受光レンズ16により集光され、眼用撮像素子17上に結像して、眼画像における角膜反射像Pd’,Pe’,Pf’,Pg’となる。同様に瞳孔141の端部a,bからの光束も眼用撮像素子17上に結像して、眼画像における瞳孔端像a’,b’となる。
図7(b)は、図7(a)の眼画像における領域αの輝度情報(輝度分布)を示す。図7(b)では、眼画像の水平方向をX軸方向、垂直方向をY軸方向とし、X軸方向の輝度分布が示されている。実施例1では、角膜反射像Pd’,Pe’のX軸方向(水平方向)の座標をXd,Xeとし、瞳孔端像a’,b’のX軸方向の座標をXa,Xbとする。図7(b)に示すように、角膜反射像Pd’,Pe’の座標Xd,Xeでは、極端に高いレベルの輝度が得られる。瞳孔141の領域(瞳孔141からの光束が眼用撮像素子17上に結像して得られる瞳孔像の領域)に相当する、座標Xaから座標Xbまでの領域では、座標Xd,Xeを除いて、極端に低いレベルの輝度が得られる。そして、瞳孔141の外側の光彩143の領域(光彩143からの光束が結像して得られる、瞳孔像の外側の光彩像の領域)では、上記2種の輝度の中間の輝度が得られる。具体的には、X座標(X軸方向の座標)が座標Xaより小さい領域と、X座標が座標Xbより大きい領域とで、上記2種の輝度の中間の輝度が得られる。
図7(b)に示すような輝度分布から、角膜反射像Pd’,Pe’のX座標Xd,Xeと、瞳孔端像a’,b’のX座標Xa,Xbを得ることができる。具体的には、輝度が極
端に高い座標を角膜反射像Pd’,Pe’の座標として得ることができ、輝度が極端に低い座標を瞳孔端像a’,b’の座標として得ることができる。また、受光レンズ16の光軸に対する眼球14の光軸の回転角θxが小さい場合には、瞳孔中心cからの光束が眼用撮像素子17上に結像して得られる瞳孔中心像c’(瞳孔像の中心)のX座標Xcは、Xc≒(Xa+Xb)/2と表すことができる。つまり、瞳孔端像a’,b’のX座標Xa,Xbから、瞳孔中心像c’のX座標Xcを算出できる。このようにして、角膜反射像Pd’,Pe’の座標と、瞳孔中心像c’の座標とを見積もることができる。角膜反射像Pf’,Pg’の座標も同様に見積もることができる。
図8の説明に戻る。ステップS804では、CPU3は、眼球像の結像倍率βを算出する。結像倍率βは、受光レンズ16に対する眼球14の位置により決まる倍率で、例えば角膜反射像Pd’,Pe’の間隔(Xd-Xe)の関数を用いて求めることができる。
ステップS805では、CPU3は、受光レンズ16の光軸に対する眼球14の光軸の回転角θx,θyを算出する。角膜反射像Pdと角膜反射像Peの中点のX座標と角膜142の曲率中心OのX座標とはほぼ一致する。このため、角膜142の曲率中心Oから瞳孔141の中心cまでの標準的な距離をOcとすると、Z-X平面(Y軸に垂直な平面)内での眼球14の回転角θxは、以下の式3で算出できる。Z-Y平面(X軸に垂直な平面)内での眼球14の回転角θyも、回転角θxの算出方法と同様の方法で算出できる。

β×Oc×SINθx≒{(Xd+Xe)/2}-Xc ・・・(式3)
ステップS806では、CPU3は、ステップS802で得られた眼画像に基づいて、頭部姿勢情報を取得する。この処理は、ユーザーの頭部の姿勢である頭部姿勢を検出する姿勢検出処理と捉えることもできる。実施例1では、図9に示すように、Yaw方向における頭部の回転、Roll方向における頭部の回転、及び、Pitch方向における頭部の回転に着目した情報が、頭部姿勢情報として取得される。Yaw方向はYaw軸周りの回転方向であり、Roll方向はRoll軸周りの回転方向であり、Pitch方向はPitch軸周りの回転方向である。
例えば、図10(a)に示すように、CPU3は、眼画像から、目頭の位置(座標(X11,Y11))と目尻の位置(座標(X12,Y12))を検出する。これらの位置(特徴点)の検出方法は特に限定されず、例えば、所定のテンプレートを用いたマッチングを行う方法や、エッジを検出して走査する方法などにより、特徴点を検出することができる。そして、CPU3は、目頭と目尻を結んだ線分の傾きから、Roll軸周りの頭部の回転角θRollを算出する。CPU3は、以下の式4を用いて、Roll軸周りの頭部の回転角θRollを算出する。

θRoll=tan-1((Y12-Y11)/(X12-X11))
・・・(式4)
次に、CPU3は、角膜反射像の間隔から接眼距離を算出し、接眼距離から、Yaw軸周りの頭部の回転角θYawと、Pitch軸周りの頭部の回転角θPitchとを算出する。角膜反射像の間隔と接眼距離には強い相関があり、角膜反射像の間隔が長いほど短い接眼距離が算出される。
図10(b)に示すように、CPU3は、左側の角膜反射像Pd’,Pf’の間隔から左側の接眼距離(座標Z11)を算出し、右側の角膜反射像Pe’,Pg’の間隔から右
側の接眼距離(座標Z12)を算出する。そして、CPU3は、以下の式5を用いて、回転角θYawを算出する。式5において、座標X21は、角膜反射像Pd’,Pf’のX座標であり、座標X22は、角膜反射像Pe’,Pg’のX座標である。

θYaw=tan-1((Z12-Z11)/(X22-X21))
・・・(式5)
図10(c)に示すように、CPU3は、上側の角膜反射像Pf’,Pg’の間隔から上側の接眼距離(座標Z21)を算出し、下側の角膜反射像Pd’,Pe’の間隔から下側の接眼距離(座標Z22)を算出する。そして、CPU3は、以下の式6を用いて、回転角θPitchを算出する。式6において、座標Y21は、角膜反射像Pf’,Pg’のY座標であり、座標Y22は、角膜反射像Pd’,Pe’のY座標である。

θPitch=tan-1((Z22-Z21)/(Y22-Y21))
・・・(式6)
なお、頭部姿勢情報は上述した情報に限られず、ユーザーの頭部の姿勢に関する別の情報であってもよい。また、接眼距離の取得方法は上記方法に限られず、例えば測距センサなどを用いて接眼距離を取得してもよい。
図8の説明に戻る。ステップS807,S808では、CPU3は、現在の視点に関する視線情報、キャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢に基づいて、視線補正値Ax,Ay,Bx,Byを補正する。視線補正値Ax,Ay,Bx,Byは、図5のキャリブレーション動作により取得され、図8の視線検出動作が開始する前にメモリ部4に格納されるとする。
ステップS807では、CPU3は、現在の視線情報、キャリブレーション動作中に取得した頭部姿勢情報、及び、ステップS806で取得した頭部姿勢情報に基づいて、姿勢補正値kax,kbx,kay,kbyを取得する。視線情報として、例えば、瞳孔像の中心位置(座標Xc)、角膜反射像Pd’,Pe’,Pf’,Pg’の重心位置、及び、角膜反射像Pd’,Pe’,Pf’,Pg’の間隔が使用される。姿勢補正値kax,kbx,kay,kbyは、視線補正値Ax,Ay,Bx,Byを補正するための補正値である。
実施例1では、以下の12の関数が予め定められており、CPU3は、当該12の関数を用いて、姿勢補正値kax_Yaw,kbx_Yaw,kay_Yaw,kby_Yaw,kax_Roll,kbx_Roll,kay_Roll,kby_Roll,kax_Pitch,kbx_Pitch,kay_Pitch,kby_Pitchを算出する。以下の12の関数は、例えば、複数の実験値を用いたフィッティングにより得られる。

・現在の視線情報、キャリブレーション動作中に取得された回転角θYaw、及び、ステップS806で取得された回転角θYawの3つの情報を入力とし、姿勢補正値kax_Yawを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θYaw、及び、ステップS806で取得された回転角θYawの3つの情報を入力とし、姿勢補正値kbx_Yawを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θYaw、及び、ス
テップS806で取得された回転角θYawの3つの情報を入力とし、姿勢補正値kay_Yawを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θYaw、及び、ステップS806で取得された回転角θYawの3つの情報を入力とし、姿勢補正値kby_Yawを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θRoll、及び、ステップS806で取得された回転角θRollの3つの情報を入力とし、姿勢補正値kax_Rollを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θRoll、及び、ステップS806で取得された回転角θRollの3つの情報を入力とし、姿勢補正値kbx_Rollを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θRoll、及び、ステップS806で取得された回転角θRollの3つの情報を入力とし、姿勢補正値kay_Rollを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θRoll、及び、ステップS806で取得された回転角θRollの3つの情報を入力とし、姿勢補正値kby_Rollを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θPitch、及び、ステップS806で取得された回転角θPitchの3つの情報を入力とし、姿勢補正値kax_Pitchを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θPitch、及び、ステップS806で取得された回転角θPitchの3つの情報を入力とし、姿勢補正値kbx_Pitchを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θPitch、及び、ステップS806で取得された回転角θPitchの3つの情報を入力とし、姿勢補正値kay_Pitchを出力とする関数
・現在の視線情報、キャリブレーション動作中に取得された回転角θPitch、及び、ステップS806で取得された回転角θPitchの3つの情報を入力とし、姿勢補正値kby_Pitchを出力とする関数
姿勢補正値kax_Yawは、姿勢補正値kaxのYaw軸成分であり、キャリブレーション動作中の回転角θYawと現在の回転角θYawとの差分に対応する回転角θxのオフセットである。姿勢補正値kbx_Yawは、姿勢補正値kbxのYaw軸成分であり、キャリブレーション動作中の回転角θYawと現在の回転角θYawとの差分に対応する回転角θxの変化率である。姿勢補正値kay_Yawは、姿勢補正値kayのYaw軸成分であり、キャリブレーション動作中の回転角θYawと現在の回転角θYawとの差分に対応する回転角θyのオフセットである。姿勢補正値kby_Yawは、姿勢補正値kbyのYaw軸成分であり、キャリブレーション動作中の回転角θYawと現在の回転角θYawとの差分に対応する回転角θyの変化率である。
姿勢補正値kax_Rollは、姿勢補正値kaxのRoll軸成分であり、キャリブレーション動作中の回転角θRollと現在の回転角θRollとの差分に対応する回転角θxのオフセットである。姿勢補正値kbx_Rollは、姿勢補正値kbxのRoll軸成分であり、キャリブレーション動作中の回転角θRollと現在の回転角θRollとの差分に対応する回転角θxの変化率である。姿勢補正値kay_Rollは、姿勢補正値kayのRoll軸成分であり、キャリブレーション動作中の回転角θRollと現在の回転角θRollとの差分に対応する回転角θyのオフセットである。姿勢補正値kby_Rollは、姿勢補正値kbyのRoll軸成分であり、キャリブレーション動作中の回転角θRollと現在の回転角θRollとの差分に対応する回転角θyの変化
率である。
姿勢補正値kax_Pitchは、姿勢補正値kaxのPitch軸成分であり、キャリブレーション動作中の回転角θPitchと現在の回転角θPitchとの差分に対応する回転角θxのオフセットである。姿勢補正値kbx_Pitchは、姿勢補正値kbxのPitch軸成分であり、キャリブレーション動作中の回転角θPitchと現在の回転角θPitchとの差分に対応する回転角θxの変化率である。姿勢補正値kay_Pitchは、姿勢補正値kayのPitch軸成分であり、キャリブレーション動作中の回転角θPitchと現在の回転角θPitchとの差分に対応する回転角θyのオフセットである。姿勢補正値kby_Pitchは、姿勢補正値kbyのPitch軸成分であり、キャリブレーション動作中の回転角θPitchと現在の回転角θPitchとの差分に対応する回転角θyの変化率である。
そして、CPU3は、以下の式7-1~7-4を用いて、上記3つの関数を用いて算出した12個の姿勢補正値から、姿勢補正値kax,kbx,kay,kbyを算出する。

kax=kax_Yaw+kax_Roll+kax_Pitch
・・・(式7-1)
kbx=kbx_YAW×kbx_Roll×kbx_Pitch
・・・(式7-2)
kay=kay_Yaw+kay_Roll+kay_Pitch
・・・(式7-3)
kby=kby_YAW×kby_Roll×kby_Pitch
・・・(式7-4)
なお、姿勢補正値kax,kbx,kyx,kbyの取得方法は、上記方法に限られない。例えば、現在の視線情報、キャリブレーション動作中に取得された頭部姿勢情報、及び、ステップS806で取得された頭部姿勢情報の3つの情報を入力とし、姿勢補正値kax,kbx,kyx,kbyを出力とするニューラルネットワークを用いてもよい。図11は、そのようなニューラルネットワーク(全結合型フィードフォワードニューラルネットワーク)の一例を示す図である。ニューラルネットワークの学習には、例えば誤差逆伝搬法が使用され、撮像面上での視点と目標物(視点に最も近い物体である対象物)の中心位置との差を誤差としてニューラルネットワークのパラメータが更新される。対象物が所定のサイズよりも大きい場合には、視点を高精度に推定できない(ユーザーが対象物のどこを見ているのかを高精度に推定できない)ことがあるため、ニューラルネットワークのパラメータを更新しなくてもよい。カメラ1の演算負荷を減らすため、学習は別の装置で事前に行われるなどして、カメラ1には、学習済みのパラメータを用いた推論のみを行う演算器を搭載してもよい。
また、視線情報として、ステップS805で算出した回転角θx,θyを用いてもよい。また、キャリブレーション動作中の頭部姿勢と、現在の頭部姿勢との差分が所定の閾値よりも小さい場合には、視線補正値Ax,Ay,Bx,Byが補正(変更)されないよう、kax=0,kbx=1,kay=0,kby=1を設定してもよい。
図8の説明に戻る。ステップS808では、CPU3は、ステップS807で取得した姿勢補正値kax,kbx,kay,kbyを用いて、視線補正値Ax,Ay,Bx,Byを補正する。以下の式8-1~8-4を用いて、補正後の視線補正値Ax’,Ay’,Bx’,By’が算出される。

Ax’=kax+Ax ・・・(式8-1)
Bx’=kbx×Bx ・・・(式8-2)
Ay’=kay+Ay ・・・(式8-3)
By’=kby×By ・・・(式8-4)
ステップS809では、CPU3は、ステップS805で算出した回転角θx,θyとステップS808で得た視線補正値Ax’,Ay’,Bx’,By’とを用いて、表示デバイス10の画面におけるユーザーの視点を求める(推定する)。視点の座標(Hx,Hy)が瞳孔中心cに対応する座標であるとすると、視点の座標(Hx,Hy)は以下の式9-1,9-2で算出できる。

Hx=m×(Ax’×θx+Bx’) ・・・(式9-1)
Hy=m×(Ay’×θy+By’) ・・・(式9-2)
式9-1,9-2の係数mは、カメラ1のファインダ光学系(受光レンズ16など)の構成で定まる定数であり、回転角θx,θyを表示デバイス10の画面における瞳孔中心cに対応する座標に変換する変換係数である。係数mは、予め決定されてメモリ部4に格納されるとする。
ステップS810では、CPU3は、視点の座標(Hx,Hy)をメモリ部4に格納し、視線検出動作を終える。
<カメラ動作の説明>
カメラ1の動作(撮影動作を含んだカメラ動作)について、図12のフローチャートを用いて説明する。
カメラ1の電源がONされると、ステップS1201で、撮像素子2は、スルー画像の取得を開始し、スルー画像の画像信号をCPU3に送信し、CPU3は、取得したスルー画像を表示デバイス10に表示する。ユーザーは、表示デバイス10に表示されたスルー画像を見ることで、被写体の確認を行う。カメラ1の電源は、カメラ1に対するユーザー操作に応じてON/OFFされる。
ステップS1202では、CPU3は、カメラ1の電源をOFFするか否かを判定し、OFFする場合は図12のカメラ動作を終了し、OFFしない場合はステップS1203に処理を進める。
ステップS1203では、CPU3は、ステップS1201でスルー画像を視認し始めたユーザーの眼画像の取得を開始し、図8の視線検出動作を行う。視線検出動作により、表示デバイス10の画面における視点の座標が算出される。
ステップS1204では、図5のステップS505と同様に、CPU3は、所定のエラー判定処理を行う。
ステップS1205では、CPU3は、ステップS1204のエラー判定処理の結果に応じて、ステップS1203の視線検出動作(現在の視線検出動作)に失敗したか否かを判定する。そして、CPU3は、視線検出動作に失敗した(視線検出動作にエラーが発生した)場合はステップS1206に処理を進め、視線検出動作に成功した(視線検出動作にエラーが発生しなかった)場合はステップS1207に処理を進める。
ステップS1206では、CPU3は、過去の所定期間に算出された複数の視点から現在の視点を予測する。ステップS1206の処理が行われた場合には、現在の視点として、ステップS1203で算出された視点ではなく、ステップS1206で予測された視点が使用されることになる。なお、視点の予測方法は特に限定されない。例えば、過去の視点の移動量や移動方向などに基づいて現在の視点を予測できる。視点が移動している場合には、視点の軌跡が滑らかに延長されるように、現在の視点を予測できる。視点が1点で略止まっている場合には(1点を中心に揺れている場合などでは)、複数の視点の中心位置や平均位置などを、現在の視点として予測できる。
ステップS1207では、CPU3は、表示デバイス10の画面における現在の視点(推定位置)に視線枠(視点を示す枠)が表示されるように、スルー画像における、現在の視点(推定位置)に対応する位置に、視点枠を重ねる。これにより、図4(a)のような表示(スルー画像に視線枠を重ねた表示)が行われ、現在の視点A(推定位置)をユーザーに伝えることができる。視点枠の代わりに、視点を示す点などが表示されてもよい。
ステップS1208では、CPU3は所定時間の待機を行う。
ステップS1209では、CPU3は、ユーザーによってレリーズボタン5が押されて(半押しされて)スイッチSW1がONとなったか否かを判定する。例えば、ユーザーは、スルー画像に重ねて表示された視点枠(推定された視点を示す枠)の位置での合焦に同意した場合に、レリーズボタン5の半押しを行い、スイッチSW1をONにする。CPU3は、スイッチSW1がONとなった場合はステップS1210に処理を進め、スイッチSW1がONとならなかった場合はステップS1203に処理を戻して視点の再推定を行う。
ステップS1210では、CPU3は、現在の視線枠の位置での測距動作を行い、測距動作が行われたことを、視線枠の色を変えるなどの強調表示でユーザーに知らせる。
ステップS1211では、CPU3は、ステップS1210で得られた測距結果に応じて、撮影レンズユニット1A内のレンズ101を駆動する。これにより、スルー画像に重ねて表示された視点枠の位置での合焦が実現される。
ステップS1212では、CPU3は、ユーザーによってレリーズボタン5がさらに押し込まれて(全押しされて)スイッチSW2がONとなったか否かを判定する。例えば、ユーザーは、現在の合焦位置での撮影に同意した場合に、レリーズボタン5の全押しを行い、スイッチSW2をONにする。CPU3は、スイッチSW2がONとなった場合はステップS1213に処理を進め、スイッチSW2がONとならなかった場合はステップS1209に処理を戻す。
ステップS1213では、CPU3は、撮影動作を行うことで、撮像素子2によって取得された画像信号を、メモリ部4に格納する。
ステップS1214では、CPU3は、ステップS1213でメモリ部4に格納された画像(撮影された画像)を表示デバイス10に所定時間表示し、ステップS1202に処理を戻す。
<動作の具体例>
カメラ1の動作の具体例について説明する。ここでは、疑似的な眼球(疑似眼球)を設けた疑似的な頭部模型を用いる。まず、頭部模型を第1の姿勢にした状態でキャリブレー
ションを実施する。キャリブレーション中は疑似眼球の向きのみを変化させる。このキャリブレーションにより得られた視線補正値を使用すれば、頭部模型が第1の姿勢のときに視点を正確に推定することができる。次に、頭部模型の姿勢を第1の姿勢から変えず、所定の位置を見るように疑似眼球の視線方向を定めて、視点を推定する。この視点を第1の視点と記載する。そして、頭部模型の姿勢を第1の姿勢から第2の姿勢に変化させ、上記所定の位置を見るように疑似眼球の視線方向を定めて、視点を取得する。この視点を第2の視点と記載する。本発明が適用されていない場合には、第1の視点と第2の視点とに明確なずれが発生するが、本発明を適用した実施例1によれば、第1の視点と第2の視点とが略一致する。
<まとめ>
以上述べたように、実施例1によれば、現在の視線情報、キャリブレーション中の頭部姿勢、及び、現在の頭部姿勢に基づいて、視線補正値が補正される。これにより、視線検出装置の使用状態の変化に起因した視線検出の精度の低下を抑制することができる。例えば、ファインダの覗き直しや、装置のずれなどに起因した、視線検出の精度の低下を抑制することができ、高精度な視線検出結果を得ることができる。ひいては、視線検出結果に応じた処理(焦点調整など)を、ユーザーの意図通りに行うことができる。
<<実施例2>>
本発明の実施例2について説明する。実施例1では、撮像装置に本発明を適用する場合の例を説明したが、実施例2で、ユーザーの頭部に装着するVR機器やAR機器などのウェアラブルデバイスに本発明を適用する場合の例を説明する。ウェアラブルデバイスは、例えば、ヘッドマウントディスプレイや眼鏡型の電子機器である。
<構成の説明>
図13(a),13(b)は、実施例2に係るヘッドマウントディスプレイ(HMD)500の外観を示す。図13(a)は正面斜視図であり、図13(b)は背面斜視図である。図13(a)に示すように、HMD500は、頭部装着部501とコントローラ502を有し、頭部装着部501は、外界を撮像するための撮影レンズ505を有する。また、図13(b)に示すように、頭部装着部501は、右眼用と左眼用のそれぞれの構成要素として、表示部508、光源513a,513b、及び、眼用撮像素子517を有する。コントローラ502は、ユーザーからの各種操作を受け付ける操作部材541~543を有する。HMD500は、ビデオ透過型のHMD(外界を撮像し、外界の映像を略リアルタイムに表示するHMD)であってもよいし、そうでなくてもよい。HMD500は、VR(仮想現実)表示(撮影した(記録された)画像の表示や、ゲーム映像の表示などの仮想空間の表示)を行うHMDであってもよいし、AR(拡張現実)表示(現実空間に対する情報や仮想物体の重畳表示)を行うHMDであってもよい。
表示部508は、実施例1の表示デバイス10に対応し、外界を撮像した画像や、不図示の記憶部やネットワークなどから取得した様々な画像(映画やゲーム映像など)を表示する。表示部508は、ユーザーが注視している物体に関係する情報をUIとして表示してもよい。光源513a,513bは、実施例1の光源13a~13dに対応し、ユーザーの眼球を照明する。光源513a,513bから発せられて眼球で反射した光の一部は、眼用撮像素子517に集光する。眼用撮像素子517は、実施例1の眼用撮像素子17に対応し、ユーザーの眼を撮像する。操作部材541~543は、実施例1の操作部材41~43にそれぞれ対応する。ユーザーは、操作部材541~543を用いて様々な操作を行うことができ、例えば表示部508に表示されたUI(指標など)の位置をコントローラ502から微調整することができる。
図14は、HMD500の電気的構成を示すブロック図である。コントローラ502は
、CPU503、メモリ部504、視線検出回路601、LPF607、表示部駆動回路511、操作部材541(表示部)、及び、操作部材542,543を有する。上述したように、頭部装着部501は、撮影レンズ505、表示部508、光源513a,513b、及び、眼用撮像素子517を有する。さらに、頭部装着部501は、A/D変換部604、撮像素子602、測光回路603、光源駆動回路605、及び、表示部駆動回路611を有する。
CPU503は、実施例1のCPU3に対応する。CPU503は、マイクロコンピュータの中央処理部であり、HMD500全体を制御する。メモリ部504、実施例1のメモリ部4に対応し、眼用撮像素子517からの撮像信号の記憶機能と、視線の個人差を補正する視線補正値の記憶機能とを有する。メモリ部504は、左眼に関する情報の信頼度や、右眼に関する情報の信頼度などを補正する補正値の記憶機能を有してもよい。表示部駆動回路511は、操作部材541(表示部)を駆動する。
撮像素子602は、実施例1の撮像素子2に対応し、撮影レンズ505の予定結像面に配置されている。測光回路603は、実施例1の測光回路202に対応する。測光回路603は、測光センサの役割を兼ねた撮像素子602から得られる信号、具体的には被写界の明るさに対応した輝度信号の増幅、対数圧縮、A/D変換などを行い、その結果を被写界輝度情報としてCPU503に送る。光源駆動回路605は、実施例1の光源駆動回路205に対応し、光源513a,513bを駆動する。表示部駆動回路611は、実施例1の表示デバイス駆動回路11に対応し、表示部608を駆動する。
視線検出回路601は、実施例1の視線検出回路201に対応する。視線検出回路601は、眼用撮像素子517上に眼球像が結像した状態での眼用撮像素子517の出力(眼画像)をA/D変換部604にてA/D変換し、その結果をLPF607を介してCPU503に送信する。CPU503は、実施例1と同様のアルゴリズムに従って眼画像から視線検出に必要な特徴点を抽出し、特徴点の位置からユーザーの視線を検出する。
実施例2に係るキャリブレーション動作と視線検出動作は、実施例1と同様である。但し、実施例2では、ユーザーの右眼を撮像した右眼画像と、ユーザーの左眼を撮像した左眼画像とに基づいて、視点が検出される。右眼画像に基づいて右眼の回転角が算出され、左眼画像に基づいて左眼の回転角が算出される。そして、右眼の回転角に基づいて右眼の視点が推定され、左眼の回転角に基づいて左眼の視点が推定される。
頭部姿勢も、右眼画像と左眼画像に基づいて検出される。例えば、右眼画像に基づいて頭部姿勢情報(θYaw_R、θRall_R、θPitch_R)が取得され、左眼画像に基づいて頭部姿勢情報(θYaw_L、θRall_L、θPitch_L)が取得される。そして、以下の式10-1~10-3を用いて、上記2つの頭部姿勢情報を統合した最終的な頭部姿勢情報(θYaw、θRall、θPitch)を算出する。係数kL,kRは、利き眼の画像に基づく頭部姿勢情報の影響を大きくするための重みである。なお、右眼画像に基づく頭部姿勢情報の取得と、左眼画像に基づく頭部姿勢情報の取得との一方に失敗した場合には、取得に成功した頭部姿勢情報を、最終的な頭部姿勢情報としてもよい。

θYaw=(kL×θYaw_L+kR×θYaw_R)/2
・・・(式10-1)
θRall=(kL×θRall_L+kR×θRall_R)/2
・・・(式10-2)
θPitch=(kL×θPitch_L+kR×θPitch_R)/2
・・・(式10-3)
統合した頭部姿勢情報を用いて実施例1と同様に視線補正値を補正することで、視線検出装置の使用状態の変化に起因した視線検出の精度の低下を抑制することができる。
<まとめ>
以上述べたように、実施例2によれば、ヘッドマウントディスプレイなどのウェアラブルデバイスにおいて、実施例1と同様に、視線検出装置の使用状態の変化に起因した視線検出の精度の低下を抑制することができる。
なお、実施例1,2はあくまで一例であり、本発明の要旨の範囲内で実施例1,2の構成を適宜変形したり変更したりすることにより得られる構成も、本発明に含まれる。実施例1,2の構成を適宜組み合わせて得られる構成も、本発明に含まれる。
<その他の実施例>
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1:カメラ 3:CPU
500:ヘッドマウントディスプレイ 503:CPU

Claims (13)

  1. ユーザーの眼を撮像した眼画像に基づいて、前記ユーザーが見ている位置である視線位置を検出する視線検出手段と、
    前記眼画像に基づいて、前記ユーザーの頭部の姿勢である頭部姿勢を検出する姿勢検出手段と、
    所定のキャリブレーション動作により、前記視線位置の検出誤差を低減するための第1の補正値を取得するキャリブレーション手段と、
    現在の視線位置に関する視線情報、前記所定のキャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢に基づいて、前記第1の補正値を補正する補正手段と
    を有する
    ことを特徴とする視線検出装置。
  2. 現在の視線位置に関する視線情報、前記所定のキャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢に基づいて、第2の補正値を取得する取得手段
    をさらに有し、
    前記補正手段は、前記第2の補正値を用いて前記第1の補正値を補正する
    ことを特徴とする請求項1に記載の視線検出装置。
  3. 前記取得手段は、現在の視線位置に関する視線情報、前記所定のキャリブレーション動作中の頭部姿勢に関する第1の姿勢情報、及び、現在の頭部姿勢に関する第2の姿勢情報を入力とし、前記第2の補正値を出力とするニューラルネットワークを用いた演算手段である
    ことを特徴とする請求項2に記載の視線検出装置。
  4. 前記視線位置と、当該視線位置に最も近い物体である対象物の中心位置との差を誤差として、前記ニューラルネットワークのパラメータを更新する更新手段
    をさらに有する
    ことを特徴とする請求項3に記載の視線検出装置。
  5. 前記更新手段は、前記対象物が所定のサイズよりも大きい場合には、前記ニューラルネットワークのパラメータを更新しない
    ことを特徴とする請求項4に記載の視線検出装置。
  6. 前記補正手段は、前記所定のキャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢との差が所定の値よりも小さい場合には、前記第1の補正値を補正しない
    ことを特徴とする請求項1~5のいずれか1項に記載の視線検出装置。
  7. 前記視線検出手段は、前記ユーザーの右眼を撮像した右眼画像と、前記ユーザーの左眼を撮像した左眼画像とに基づいて、前記視線位置を検出し、
    前記姿勢検出手段は、前記右眼画像と前記左眼画像に基づいて、前記頭部姿勢を検出する
    ことを特徴とする請求項1~6のいずれか1項に記載の視線検出装置。
  8. 前記視線情報は、前記眼画像における瞳孔の中心位置、複数の角膜反射像の重心位置、及び、前記複数の角膜反射像の間隔の情報である
    ことを特徴とする請求項1~7のいずれか1項に記載の視線検出装置。
  9. 前記視線情報は、前記ユーザーが見ている方向である視線方向の、前記ユーザーの眼を撮像する撮像手段の光軸に対する角度の情報である
    ことを特徴とする請求項1~7のいずれか1項に記載の視線検出装置。
  10. ユーザーの眼を撮像した眼画像に基づいて、前記ユーザーが見ている位置である視線位置を検出する視線検出手段と、
    所定のキャリブレーション動作により、前記視線位置の検出誤差を低減するための補正値を取得するキャリブレーション手段と
    を有し、
    前記ユーザーが頭部を第1の姿勢にした状態で前記所定のキャリブレーション動作が行われた後、前記ユーザーが頭部を第1の姿勢にして所定の位置を見た状態で検出された視線位置と、前記ユーザーが頭部を前記第1の姿勢とは異なる第2の姿勢にして前記所定の位置を見た状態で検出された視線位置とが略一致する
    ことを特徴とする視線検出装置。
  11. ユーザーの眼を撮像した眼画像に基づいて、前記ユーザーが見ている位置である視線位置を検出する視線検出ステップと、
    前記眼画像に基づいて、前記ユーザーの頭部の姿勢である頭部姿勢を検出する姿勢検出ステップと、
    所定のキャリブレーション動作により、前記視線位置の検出誤差を低減するための第1の補正値を取得するキャリブレーションステップと、
    現在の視線位置に関する視線情報、前記所定のキャリブレーション動作中の頭部姿勢、及び、現在の頭部姿勢に基づいて、前記第1の補正値を補正する補正ステップと
    を有する
    ことを特徴とする視線検出方法。
  12. コンピュータを、請求項1~10のいずれか1項に記載の視線検出装置の各手段として機能させるためのプログラム。
  13. コンピュータを、請求項1~10のいずれか1項に記載の視線検出装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
JP2021201724A 2021-12-13 2021-12-13 視線検出装置 Pending JP2023087377A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021201724A JP2023087377A (ja) 2021-12-13 2021-12-13 視線検出装置
US18/064,084 US20230186520A1 (en) 2021-12-13 2022-12-09 Gaze detection apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021201724A JP2023087377A (ja) 2021-12-13 2021-12-13 視線検出装置

Publications (1)

Publication Number Publication Date
JP2023087377A true JP2023087377A (ja) 2023-06-23

Family

ID=86694683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021201724A Pending JP2023087377A (ja) 2021-12-13 2021-12-13 視線検出装置

Country Status (2)

Country Link
US (1) US20230186520A1 (ja)
JP (1) JP2023087377A (ja)

Also Published As

Publication number Publication date
US20230186520A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
JP7358530B2 (ja) 被写体認識装置及び被写体認識装置の制御方法
US11650660B2 (en) Electronic device, control method, and non-transitory computer readable medium
JP2024003037A (ja) 電子機器、電子機器の制御方法、プログラムおよび記憶媒体
JP2023087377A (ja) 視線検出装置
US20240085979A1 (en) Recording device, image-capturing apparatus, control method, and recording system
JP7358130B2 (ja) 電子機器およびその制御方法
US11829052B2 (en) Gaze detection apparatus, gaze detection method, and non-transitory computer readable medium
US20240114228A1 (en) Line-of-sight detecting apparatus, image pickup apparatus, line-of-sight detecting method, and storage medium
US20230126836A1 (en) Image pickup apparatus used as action camera, control method therefor, and storage medium storing control program therefor
US20230142934A1 (en) Electronic device, control method of electronic device, and non-transitory computer readable medium
JP2024003432A (ja) 電子機器
US20230092593A1 (en) Detection device detecting gaze point of user, control method therefor, and storage medium storing control program therefor
US20230179854A1 (en) Control apparatus, method of controlling control apparatus, control method, and storage medium
US20230396876A1 (en) Apparatus, method for apparatus, image capturing apparatus, and storage medium
JP2018033055A (ja) 撮像装置
JP2023063023A (ja) 電子機器及び電子機器の制御方法
JP2022183552A (ja) 視線情報取得装置、撮像装置、視線情報取得方法、プログラム、及び、記憶媒体
JP2022185313A (ja) 撮像装置
JP2022171084A (ja) 撮像装置及びその制御方法、並びにプログラム
JP2023159741A (ja) 電子機器、電子機器の制御方法、プログラム、および記憶媒体
JP2021064928A (ja) 電子機器
JP2952070B2 (ja) 視線検出装置および視線検出手段を備えた光学機器
JP2022165239A (ja) 撮像装置及びその制御方法、並びにプログラム
JP2023083695A (ja) 電子機器
JP2024008006A (ja) 画像処理装置、表示装置、画像処理方法、およびプログラム