(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-14
(45)【発行日】2024-08-22
(54)【発明の名称】視線位置処理装置、撮像装置、学習装置、視線位置処理方法、学習方法、及びプログラム
(51)【国際特許分類】
H04N 23/611 20230101AFI20240815BHJP
G06N 20/00 20190101ALI20240815BHJP
G02B 7/28 20210101ALN20240815BHJP
【FI】
H04N23/611
G06N20/00
G02B7/28 N
(21)【出願番号】P 2020126725
(22)【出願日】2020-07-27
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】吉村 勇希
【審査官】彦田 克文
(56)【参考文献】
【文献】特開2002-328294(JP,A)
【文献】特開平05-100147(JP,A)
【文献】特開2018-010465(JP,A)
【文献】国際公開第2010/035472(WO,A1)
【文献】特開2020-106552(JP,A)
【文献】国際公開第2019/069812(WO,A1)
【文献】特開2020-048185(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/611
G06N 20/00
G02B 7/28
(57)【特許請求の範囲】
【請求項1】
表示手段を見るユーザの視線位置を繰り返し検出する検出手段と、
前記検出手段により検出される視線位置の信頼性を判定する第1の判定手段と、
前記検出手段により検出される複数の視線位置の統計値を算出することで統計視線位置を生成する生成手段であって、前記信頼性に基づいて1つの統計値の算出に用いる視線位置の数を制御する生成手段と、
を備えることを特徴とする視線位置処理装置。
【請求項2】
視線位置の変動速度を推定する推定手段と、
前記統計視線位置と前記推定された変動速度とに基づいて、将来の視線位置を予測する予測手段と、
を更に備えることを特徴とする請求項1に記載の視線位置処理装置。
【請求項3】
前記予測手段は、前記信頼性が低いほど近い将来の視線位置を予測する
ことを特徴とする請求項2に記載の視線位置処理装置。
【請求項4】
記憶手段に記憶された視線位置と前記予測により得られた前記将来の視線位置との間の差分が閾値以上であるか否かを判定する第2の判定手段であって、前記信頼性が低いほど前記閾値として大きな値を用いる、第2の判定手段と、
前記差分が前記閾値以上である場合に、前記記憶手段に記憶された視線位置を前記将来の視線位置で更新する更新手段と、
を更に備えることを特徴とする請求項2又は3に記載の視線位置処理装置。
【請求項5】
前記第1の判定手段は、前記検出手段により検出される視線位置が表示部の中心から遠いほど、前記信頼性が低いと判定する
ことを特徴とする請求項1乃至4のいずれか1項に記載の視線位置処理装置。
【請求項6】
前記第1の判定手段は、前記検出手段により検出される視線位置が前記表示部の中心から前記ユーザの瞼の開閉方向に所定距離離れている場合、前記検出手段により検出される視線位置が前記表示部の中心から前記開閉方向に直交する方向に前記所定距離離れている場合よりも、前記信頼性が低いと判定する
ことを特徴とする請求項5に記載の視線位置処理装置。
【請求項7】
前記生成手段は、前記信頼性が低いほど前記1つの統計値の算出に用いる視線位置の数が多くなるように制御する
ことを特徴とする請求項1乃至6のいずれか1項に記載の視線位置処理装置。
【請求項8】
前記統計値は、平均値である
ことを特徴とする請求項1乃至7のいずれか1項に記載の視線位置処理装置。
【請求項9】
前記検出手段は、学習済み辞書データに基づく推論により前記検出を行うことを特徴とする請求項1乃至8のいずれか1項に記載の視線位置処理装置。
【請求項10】
前記複数の視線位置は、各々が前記検出手段により異なる時刻に検出される視線位置であり、
前記生成手段は、前記信頼性に基づいて、前記1つの統計値の算出に用いる異なる時刻に検出される前記視線位置の数を制御する
ことを特徴とする請求項1乃至9のいずれか1項に記載の視線位置処理装置。
【請求項11】
請求項1乃至10のいずれか1項に記載の視線位置処理装置と、
撮像手段と、
を備えることを特徴とする撮像装置。
【請求項12】
前記第1の判定手段は、前記撮像手段が用いる撮影光学系の焦点距離が長いほど、前記信頼性が低いと判定する
ことを特徴とする請求項11に記載の撮像装置。
【請求項13】
表示手段を見るユーザの視線位置を繰り返し検出する検出手段と、
前記検出手段により検出される複数の視線位置の統計値を算出することで統計視線位置を生成する生成手段であって、表示部の中心からの距離が第1の距離の視線位置を含む場合に、前記第1の距離より短い第2の距離の視線位置を含む場合よりも多い数の視線位置を用いて前記統計値を算出する、生成手段と、
を備えることを特徴とする視線位置処理装置。
【請求項14】
請求項13に記載の視線位置処理装置と、
撮像手段と、
を備えることを特徴とする撮像装置。
【請求項15】
表示手段を見るユーザの眼球を撮影することで取得される第1の複数の眼部画像
と、前記第1の複数の眼部画像から検出された視線位置に基づく学習を行うことにより
、眼部画像からユーザの視線位置を検出するための学習済み辞書データを生成する学習手段を備え、
前記学習手段は、前記第1の複数の眼部画像において右眼と左眼とが左右対称であることに基づいて、左右兼用の学習済み辞書データを生成する
ことを特徴とする学習装置。
【請求項16】
前記学習手段は、前記第1の複数の眼部画像を視線位置で分類し、視線位置毎に学習を行うことにより、視線位置毎の学習済み辞書データを生成する
ことを特徴とする請求項15に記載の学習装置。
【請求項17】
前記学習手段は、前記第1の複数の眼部画像よりも解像度が低い、視線位置を示す情報に関連付けられた第2の複数の眼部画像を視線位置で分類し、視線位置毎に学習を行うことにより、視線位置毎の学習済み辞書データを生成する
ことを特徴とする請求項15に記載の学習装置。
【請求項18】
前記学習手段は、前記第1の複数の眼部画像に含まれる眼における、眼頭、眼尻、虹彩、瞳孔、まつ毛、眉のうちの少なくとも1つに関する、位置、形状、及び色のうちの少なくとも1つに基づいて、学習を行う
ことを特徴とする請求項15乃至17のいずれか1項に記載の学習装置。
【請求項19】
前記学習手段は、前記第1の複数の眼部画像のうちの少なくとも一部を左右反転する画像処理を行うことで前記左右兼用の学習済み辞書データを生成する
ことを特徴とする請求項15乃至18のいずれか1項に記載の学習装置。
【請求項20】
視線位置処理装置が実行する視線位置処理方法であって、
表示手段を見るユーザの視線位置を繰り返し検出する検出工程と、
前記検出工程により検出される視線位置の信頼性を判定する第1の判定工程と、
前記検出工程により検出される複数の視線位置の統計値を算出することで統計視線位置を生成する生成工程であって、前記信頼性に基づいて1つの統計値の算出に用いる視線位置の数を制御する生成工程と、
を備えることを特徴とする視線位置処理方法。
【請求項21】
視線位置処理装置が実行する視線位置処理方法であって、
表示手段を見るユーザの視線位置を繰り返し検出する検出工程と、
前記検出工程により検出される複数の視線位置の統計値を算出することで統計視線位置を生成する生成工程であって、表示部の中心からの距離が第1の距離の視線位置を含む場合に、前記第1の距離より短い第2の距離の視線位置を含む場合よりも多い数の視線位置を用いて前記統計値を算出する、生成工程と、
を備えることを特徴とする視線位置処理方法。
【請求項22】
学習装置が実行する学習方法であって、
表示手段を見るユーザの眼球を撮影することで取得される第1の複数の眼部画像
、前記第1の複数の眼部画像から検出された視線位置に基づく学習を行うことにより
、眼部画像からユーザの視線位置を検出するための学習済み辞書データを生成する学習工程を備え、
前記学習工程では、前記第1の複数の眼部画像において右眼と左眼とが左右対称であることに基づいて、左右兼用の学習済み辞書データを生成する
ことを特徴とする学習方法。
【請求項23】
コンピュータを、請求項1乃至10のいずれか1項に記載の視線位置処理装置の各手段として機能させるためのプログラム。
【請求項24】
コンピュータを、請求項13に記載の視線位置処理装置の各手段として機能させるためのプログラム。
【請求項25】
コンピュータを、請求項15乃至19のいずれか1項に記載の学習装置の学習手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、視線位置処理装置、撮像装置、学習装置、視線位置処理方法、学習方法、及びプログラムに関する。
【背景技術】
【0002】
ファインダ視野内を覗く撮影者の撮影範囲内の視線位置を検出することで、測距点を選択する方法が特許文献1に開示されている。特許文献1では、複数の測距点選択手段の優先度に応じて測距点選択が行われるため、撮影者の意図に応じた測距点選択を実現することができる。特許文献1に記載の撮像装置は、撮影者がピント板状に形成される光学像を観察することを可能にする、いわゆる光学ファインダを有している。
【0003】
また、近年、光学ファインダを備えず、撮影光学系を通過した光束を受光する撮像素子で取得された映像を再生する表示装置として、電子ビューファインダを有する撮像装置が存在する。光学ファインダを有する撮像装置が、光束分割手段を有するのに対して、電子ビューファインダを有する撮像装置は、光束分割手段を必要としないため、撮影範囲内のより広い範囲で焦点検出を行ったり、被写体検出を行ったりすることができる。
【0004】
また、特許文献1には、検出された複数の視線位置を加算処理して平均視線位置を算出することにより、視線位置の振動を抑制する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
複数の視線位置を加算処理する場合、算出される平均視線位置は、過去の視線位置の影響を受ける。従って、一律に所定数の視線位置を加算処理すると、算出される平均視線位置に、実際の視線位置に対する一律の遅延が発生するため、視線検出の精度が低下する。
【0007】
本発明はこのような状況に鑑みてなされたものであり、視線検出の精度を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明は、表示手段を見るユーザの視線位置を繰り返し検出する検出手段と、前記検出手段により検出される視線位置の信頼性を判定する第1の判定手段と、前記検出手段により検出される複数の視線位置の統計値を算出することで統計視線位置を生成する生成手段であって、前記信頼性に基づいて1つの統計値の算出に用いる視線位置の数を制御する生成手段と、を備えることを特徴とする視線位置処理装置を提供する。
【発明の効果】
【0009】
本発明によれば、視線検出の精度を向上させることが可能となる。
【0010】
なお、本発明のその他の特徴及び利点は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【図面の簡単な説明】
【0011】
【
図1】視線位置処理装置を備えるデジタルカメラ100の構成を示すブロック図。
【
図2】撮像部22の画素の構成と、瞳面と光電変換部の対応関係とを示す図。
【
図3】焦点検出専用画素の構成と、瞳面と光電変換部の対応関係とを示す図。
【
図4】操作部70に含まれる視線入力操作部401を示す図。
【
図5】デジタルカメラ100による焦点検出、視線検出、及び撮影動作に関する処理のフローチャート。
【
図7】各視線の向きにおける瞳孔中心とプルキニエ像の相対関係を示した概略図。
【
図8】移動平均数n=5、t
予測期間=3の場合のx方向の移動平均処理及び予測処理の概念図。
【
図9】ユーザが電子ビューファインダを覗いて1点を注視した際の、視線位置に応じた視線位置のばらつき量を概念的に示した図。
【
図10】辞書データを用いる視線位置検出処理のフローチャート。
【
図11】左右の眼の視線方向の対応関係を示した図。
【
図12】再学習済み辞書データを生成する処理の概念図。
【
図13】辞書データを生成するための眼部情報学習器1201の構成について説明する図。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0013】
[第1の実施形態]
<<デジタルカメラ100の構成>>
図1は、視線位置処理装置を備えるデジタルカメラ100の構成を示すブロック図である。
図1において、レンズユニット150は、撮影レンズを搭載するレンズユニットであり、デジタルカメラ100に対して着脱可能である。レンズ103は通常、複数枚のレンズから構成されるが、ここでは簡略化して1枚のレンズのみで示している。通信端子6は、レンズユニット150がデジタルカメラ100側と通信を行うための通信端子であり、通信端子10は、デジタルカメラ100がレンズユニット150側と通信を行うための通信端子である。レンズユニット150は、この通信端子6、10を介してシステム制御部50と通信し、内部のレンズシステム制御回路4によって絞り駆動回路2を介して絞り102の制御を行い、AF駆動回路3を介してレンズ103の位置を変位させることで焦点を合わせる。
【0014】
シャッター101は、システム制御部50の制御で撮像部22の露光時間を自由に制御できるフォーカルプレーンシャッターである。撮像部22は、光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像素子である。A/D変換器23は、アナログ信号をデジタル信号に変換する。A/D変換器23は、撮像部22から出力されるアナログ信号をデジタル信号に変換するために用いられる。撮像部22から得られた信号は、撮像だけでなく、露出制御、焦点検出制御にも用いられる。撮像部22においては、1つのマイクロレンズに対して、光電変換部が分割された画素が設けられている。光電変換部を分割することにより入射瞳が分割され、それぞれの光電変換部から位相差検出信号を得ることができる。また、分割された光電変換部からの信号を加算することにより、撮像信号も得ることができる。このような画素は、焦点検出画素と撮像画素を兼用できるというメリットがある。
【0015】
図2は、撮像部22の画素の構成と、瞳面と光電変換部の対応関係とを示す図である。201が光電変換部を、253が瞳面を、251がマイクロレンズを、252がカラーフィルタをそれぞれ示している。
図2には、光電変換部201a(第1焦点検出画素)と、光電変換部201b(第2焦点検出画素)の2つの光電変換部201が設けられている。瞳面253aを通過した光が光電変換部201aに入射し、瞳面253bを通過した光が光電変換部201bに入射する。これにより、光電変換部201a及び光電変換部201bから得られた信号から焦点検出が行える。また、光電変換部201a及び光電変換部201bから得られた信号を加算することにより、撮像信号を生成することができる。
【0016】
本実施形態では、
図2に示した画素を撮像部22の全画面領域に設けることにより、画面上に写るいずれの被写体に対しても、位相差検出により焦点を合わせることが可能となる。
【0017】
なお、本実施形態では、上記の焦点検出方式を用いて説明を行うが、焦点検出方式はこの場合に限らない。例えば、撮像部22に、後述の
図3に示す焦点検出専用画素を設けて焦点検出を行ってもよい。また、撮像部22には、焦点検出用の画素を設けず、撮像用の画素のみを設け、コントラスト方式で焦点検出を行ってもよい。
【0018】
図3は、焦点検出専用画素の構成と、瞳面と光電変換部の対応関係とを示す図である。
図3に示す画素は、
図2と異なり、焦点検出専用の画素である。瞳面253の形状は、開口部254により決定される。また、瞳面253を通過した光のみを検出するため、対となる画素(
図3において不図示の右側の瞳面からの光を検出する画素)を別途設けて焦点検出信号を取得する必要がある。撮像部22に、
図3に示す焦点検出専用画素と、撮像画素とを全画面領域に設けることにより、画面上に写るいずれの被写体に対しても、位相差検出により焦点を合わせることが可能となる。
【0019】
図1に戻り、画像処理部24は、A/D変換器23からのデータ、又は、メモリ制御部15からのデータに対し所定の画素補間、縮小のようなリサイズ処理、色変換処理を行う。また、画像処理部24では、撮像した画像データを用いて所定の演算処理が行われ、得られた演算結果に基づいてシステム制御部50が露光制御、測距制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理が行われる。画像処理部24では更に、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。
【0020】
A/D変換器23からの出力データは、画像処理部24及びメモリ制御部15を介して、或いは、直接メモリ制御部15を介して、メモリ32に書き込まれる。メモリ32は、撮像部22によって得られA/D変換器23によりデジタルデータに変換された画像データや、表示部28に表示するための画像データを格納する。メモリ32は、所定枚数の静止画像や所定時間の動画像及び音声を格納するのに十分な記憶容量を備えている。また、メモリ32は、画像表示用のメモリ(ビデオメモリ)を兼ねている。
【0021】
D/A変換器19は、メモリ32に格納されている画像表示用のデータをアナログ信号に変換して表示部28に供給する。こうして、メモリ32に書き込まれた表示用の画像データはD/A変換器19を介して表示部28により表示される。表示部28は、LCD等の表示器上に、D/A変換器19からのアナログ信号に応じた表示を行う。A/D変換器23によって一度A/D変換されメモリ32に蓄積されたデジタル信号をD/A変換器19においてアナログ変換し、表示部28に逐次転送して表示することで、電子ビューファインダとしての機能が実現する。これにより、スルー画像表示(ライブビュー表示)を行える。なお、表示部28としては、不図示の接眼部を通して覗き込む電子ビューファインダを設けてもよいし、デジタルカメラ100の背面にディスプレイを設けてもよい。また、電子ビューファインダと、背面のディスプレイの両方を設けてもよい。
【0022】
不揮発性メモリ56は、電気的に消去・記録可能なメモリであり、例えばEEPROM等が用いられる。不揮発性メモリ56には、システム制御部50の動作用の定数、プログラム等が記憶される。ここでいう、プログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムのことである。
【0023】
システム制御部50は、デジタルカメラ100全体を制御する。前述した不揮発性メモリ56に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。52はシステムメモリであり、RAMが用いられる。システムメモリ52には、システム制御部50の動作用の定数、変数、不揮発性メモリ56から読み出したプログラム等を展開する。また、システム制御部50は、メモリ32、D/A変換器19、表示部28等を制御することにより表示制御も行う。
【0024】
システムタイマー53は、各種制御に用いる時間や、内蔵された時計の時間を計測する計時部である。電源スイッチ72は、デジタルカメラ100の電源のON及びOFFを切り替える操作部材である。
【0025】
モード切替スイッチ60、第1シャッタースイッチ62、第2シャッタースイッチ64、操作部70は、システム制御部50に各種の操作指示を入力するための操作部材である。
【0026】
モード切替スイッチ60は、システム制御部50の動作モードを静止画記録モード、動画撮影モード、再生モード等のいずれかに切り替える。静止画記録モードに含まれるモードとして、オート撮影モード、オートシーン判別モード、マニュアルモード、絞り優先モード(Avモード)、シャッター速度優先モード(Tvモード)がある。また、撮影シーン別の撮影設定となる各種シーンモード、プログラムAEモード、カスタムモード等がある。モード切替スイッチ60で、メニュー画面に含まれるこれらのモードのいずれかに直接切り替えられる。或いは、モード切替スイッチ60により画面表示をメニュー画面に一旦切り換えた後に、メニュー画面に含まれるこれらのモードのいずれかに、他の操作部材を用いて切り替えるようにしてもよい。同様に、動画撮影モードにも複数のモードが含まれていてもよい。
【0027】
第1シャッタースイッチ62は、デジタルカメラ100に設けられたシャッターボタン61の操作途中、いわゆる半押し(撮影準備指示)でONとなり第1シャッタースイッチ信号SW1を発生する。第1シャッタースイッチ信号SW1により、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作が開始する。
【0028】
第2シャッタースイッチ64は、シャッターボタン61の操作完了、いわゆる全押し(撮影指示)でONとなり、第2シャッタースイッチ信号SW2を発生する。システム制御部50は、第2シャッタースイッチ信号SW2に応じて、撮像部22からの信号読み出しから記録媒体200に画像データを書き込むまでの一連の撮影処理の動作を開始する。
【0029】
操作部70は、ユーザからの操作を受け付ける入力部としての各種操作部材である。操作部70には、メニュー選択、モード選択、撮影した動画像の再生などを実施するための電子ボタンや十字キーなどが設けられている。操作部70の各操作部材は、表示部28に表示される種々の機能アイコンを選択操作することなどにより、場面ごとに適宜機能が割り当てられ、各種機能ボタンとして作用する。機能ボタンとしては、例えば終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン等がある。例えば、メニューボタンが押されると各種の設定可能なメニュー画面が表示部28に表示される。ユーザは、表示部28に表示されたメニュー画面と、上下左右の4方向ボタンやSETボタンとを用いて直感的に各種設定を行うことができる。
【0030】
図4は、操作部70に含まれる視線入力操作部401を示す図である。視線入力操作部401は、ユーザの視線が表示部28のいずれの箇所を見ているかを検出するための操作部材である。
図4(a)は、視線入力操作部401の一例を示す。
図4(a)の視線入力操作部401の構成は、特許文献1に開示されているような、ファインダ視野内を覗くユーザの眼球400aの光軸の回転角を検出し、検出した回転角からユーザの視線を検出する方式を実現する構成である。表示部28には、レンズユニット150を通して撮影されたライブビュー画像が表示されている。401aはイメージセンサを、401bは受光レンズを、401cはダイクロイックミラーを、401dは接眼レンズを、401eは照明光源を示す。照明光源401eにより、眼球400aに赤外光が投射される。眼球400aで反射した赤外光は、ダイクロイックミラー401cで反射され、イメージセンサ401aにより撮影される。撮影された眼球画像は、不図示のA/D変換器によりデジタル信号に変換され、システム制御部50に送信される。システム制御部50は、撮影された眼球画像から、瞳孔の領域などを抽出し、ユーザの視線を算出する。
【0031】
なお、視線検出方式は、
図4(a)に示す方式に限らず、ユーザの両眼を撮影し、視線を検出する方式でもよい。
図4(b)は、
図4(a)とは異なる視線入力操作部401の一例を示す。
図4(b)では、デジタルカメラ100の背面に設けられている表示部28に、レンズユニット150を通して撮影されたライブビュー画像が表示されている。
図4(b)では、デジタルカメラ100の背面に、表示部28を観察しているユーザの顔400を撮影するカメラ401fが設けられている。
図4(b)において、カメラ401fが撮影する画角を点線で示している。不図示の照明光源がユーザの顔に投光を行い、カメラ401fが眼球画像を取得する。システム制御部50は、この眼球画像に含まれる眼球400a及び眼球400bの少なくとも一方に基づいて、ユーザの視線を算出する。なお、視線検出方式は、この方式に限らず、ユーザが表示部28のいずれの箇所を注視しているかを検出できる任意の方式を利用可能である。
【0032】
図1に戻り、電源制御部80は、電池検出回路、DC-DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出を行う。また、電源制御部80は、その検出結果及びシステム制御部50の指示に基づいてDC-DCコンバータを制御し、必要な電圧を必要な期間、記録媒体200を含む各部へ供給する。
【0033】
電源部30は、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。記録媒体I/F18は、メモリカードやハードディスク等の記録媒体200とのインタフェースである。記録媒体200は、撮影された画像を記録するためのメモリカード等の記録媒体であり、半導体メモリや磁気ディスク等から構成される。
【0034】
通信部54は、無線又は有線ケーブルによって外部装置と接続し、映像信号や音声信号の送受信を行う。通信部54は、無線LAN(Local Area Network)やインターネットとも接続可能である。通信部54は、撮像部22で撮像した画像(スルー画像を含む)や、記録媒体200に記録された画像を送信可能であり、また、外部装置から画像データやその他の各種情報を受信することができる。
【0035】
姿勢検知部55は、重力方向に対するデジタルカメラ100の姿勢を検知する。姿勢検知部55で検知された姿勢に基づいて、撮像部22で撮影された画像が、デジタルカメラ100を横に構えて撮影された画像であるか、縦に構えて撮影された画像なのかを判別可能である。システム制御部50は、姿勢検知部55で検知された姿勢に応じた向き情報を撮像部22で撮像された画像の画像ファイルへ付加したり、画像を回転して記録したりすることが可能である。姿勢検知部55としては、加速度センサやジャイロセンサなどを用いることができる。
【0036】
上述したデジタルカメラ100では、中央1点AFや顔AFを用いた撮影が可能である。中央1点AFとは、撮影画面内の中央位置1点に対してAFを行うことである。顔AFとは、顔検出機能によって検出された撮影画面内の顔に対してAFを行うことである。
【0037】
顔検出機能について説明する。システム制御部50は、顔検出対象の画像データを画像処理部24に送る。システム制御部50の制御下で画像処理部24は、画像データに水平方向バンドパスフィルタを適用する。また、システム制御部50の制御下で画像処理部24は、処理された画像データに垂直方向バンドパスフィルタを適用する。これら水平及び垂直方向のバンドパスフィルタにより、画像データのエッジ成分が検出される。
【0038】
その後、システム制御部50は、検出されたエッジ成分に関してパターンマッチングを行い、眼及び鼻、口、耳の候補群を抽出する。そして、システム制御部50は、抽出された眼の候補群の中から、予め設定された条件(例えば2つの眼の距離、傾き等)を満たすものを、眼の対と判断し、眼の対があるもののみ眼の候補群として絞り込む。そして、システム制御部50は、絞り込まれた眼の候補群とそれに対応する顔を形成する他のパーツ(鼻、口、耳)とを対応付け、また、予め設定した非顔条件フィルタを通すことで、顔を検出する。システム制御部50は、顔の検出結果に応じて顔情報を出力し、処理を終了する。このとき、システム制御部50は、顔の数などの特徴量をシステムメモリ52に記憶する。顔検出機能の実現方法は、上述の方法に限らず、公知の機械学習を用いた方法により、同様に、顔の数、サイズ、パーツなどを検出してもよい。また、被写体の種別として、人物の顔に限らず、動物や乗り物などを検出してもよい。
【0039】
以上のようにライブビュー表示又は再生表示される画像データを画像解析して、画像データの特徴量を抽出して被写体情報を検出することが可能である。本実施形態では、被写体情報として顔情報を例に挙げたが、被写体情報には他にも赤目判定や眼の検出、眼つむり検出、笑顔検出等の様々な情報がある。
【0040】
なお、顔AFと同時に顔AE,顔FE、顔WBを行うことができる。顔AEとは、検出された顔の明るさに合わせて、画面全体の露出を最適化することである。顔FEとは、検出された顔を中心にフラッシュの調光をすることである。顔WBとは、検出された顔の色に合わせて画面全体のWBを最適化することである。
【0041】
<<視線検出及び撮影動作>>
次に、
図5を参照して、視線位置の検出処理について説明する。
図5は、デジタルカメラ100による焦点検出、視線検出、及び撮影動作に関する処理のフローチャートである。本フローチャートの処理は、撮影スタンバイ状態などのライブビュー状態(動画撮影状態)においてユーザが撮影操作を行うライブビュー撮影時の処理に対応し、システム制御部50が主体となって実行される。
【0042】
S1で、システム制御部50は、撮像処理を開始する。S1以降、撮像処理により繰り返し撮像データが取得される。撮像処理において、システム制御部50は、撮像部22を駆動し、撮像データを取得する。取得する撮像データは、後述する記録画像ではなく、検出・表示用の画像に対応するため、記録画像に対してサイズが小さい。S1の撮像処理では、焦点検出、被写体検出、ライブビュー表示などを行うために十分な解像度を有する画像が取得される。ここでは、ライブビュー表示用の動画撮影のための駆動動作であるため、システム制御部50は、ライブビュー表示用のフレームレートに応じた時間の電荷蓄積と読み出しとを行う、いわゆる電子シャッターを用いた撮像を行う。ここで行うライブビュー表示は、ユーザが撮影範囲や撮影条件の確認を行うためのもので、例えば、30フレーム/秒(撮影間隔33.3ms)や60フレーム/秒(撮影間隔16.6ms)であってよい。
【0043】
S2で、システム制御部50は、画像データ及び焦点検出データの抽出処理を開始する。S2以降、S1で開始した撮像処理により撮像データが取得される度に、抽出処理が実行される。抽出処理において、システム制御部50は、S1の撮像処理で得られた撮像データのうち、第1焦点検出画素及び第2焦点検出画素から得られる焦点検出データを取得する。また、システム制御部50は、第1焦点検出画素及び第2焦点検出画素の出力信号を加算することにより撮像信号を生成し、画像処理部24で色補間処理などを適用して得られる画像データを取得する。このように、1回の撮影により、画像データと、焦点検出データとを取得することができる。なお、撮像画素、第1焦点検出画素、第2焦点検出画素を個別の画素構成とした場合には、システム制御部50は、焦点検出画素における補間処理などを行って画像データを取得する。
【0044】
S3で、システム制御部50は、ライブビュー表示処理(LV表示処理)を開始する。S3以降、S2で開始した抽出処理により画像データが取得される度に、LV表示処理が実行される。LV表示処理において、システム制御部50は、S2の抽出処理で得られた画像データをもとに、画像処理部24を用いてライブビュー表示用の画像を生成し、表示部28に表示する。なお、ライブビュー表示用の画像は、例えば表示部28の解像度に合わせた縮小画像であり、S2の抽出処理で画像データを生成する際に画像処理部24で縮小処理を実施することもできる。この場合、システム制御部50は、S2の抽出処理で取得した画像データを表示部28に表示させる。上述の通り、ライブビュー表示中は所定のフレームレートでの撮影と表示が行われるため、ユーザは表示部28を見ながら撮影の構図や露出条件の調整などを行うことができる。 また、上述の通り、本実施形態では、被写体として人物の顔や動物などを検出することが可能である。LV表示処理において、システム制御部50は、ライブビュー画像の表示と共に、検出した被写体の領域を示す枠などの表示も行う。
【0045】
S4で、システム制御部50は、視線検出処理を開始する。S4以降、システム制御部50は、視線入力操作部401により、ユーザ(撮影者)が表示部28上のどの位置を観察しているかを示す情報(視線位置情報)を、ユーザが観察していた表示画像と関連付けて、所定の時間間隔で繰り返し取得する。また、システム制御部50は、検出された視線位置を、ユーザに通知するために、表示部28に表示する。S4で検出される視線位置は、様々な要因により、ユーザが意図する被写体の位置に対して誤差を有する。また、個人差はあるが、人間が意図する被写体を視認してから眼が動き出すまでにコンマ数秒程度の遅延時間が存在する。システム制御部50は、
図5の処理と並行して、このような誤差や遅延時間の影響を抑制する処理(
図6を参照して後述)を行う。
【0046】
S5で、システム制御部50は、撮影準備開始を示す第1シャッタースイッチ62(SW1)のオン/オフを検出する。システム制御部50は、シャッターボタン61の押し込み量に応じて、2段階のオン/オフを検出することが可能であり、SW1のオン/オフは、シャッターボタン61の1段階目のオン/オフに相当する。S5においてSW1のオンが検出されない(又はオフが検出された)場合、システム制御部50は、処理ステップをS11に進める。一方、S5においてSW1のオンが検出された場合、システム制御部50は、処理ステップをS6に進める。
【0047】
S6で、システム制御部50は、焦点検出処理(焦点検出領域の設定、及び焦点検出)を行う。S6の焦点検出処理は、S5においてSW1がオフであると判定されるまで、ライブビュー画像が取得される度に繰り返し実行される。
【0048】
焦点検出処理において、システム制御部50は、S4で開始した視線検出処理により検出され
図6の処理により補正された視線位置と、S3で開始したLV表示処理に含まれる被写体検出処理により検出された被写体位置の両方を用いて、焦点検出領域を設定する。
【0049】
その後、システム制御部50は、設定された焦点検出領域に対応する焦点検出データを用いて、デフォーカス量及びデフォーカス方向を、焦点検出領域ごとに求める。本実施形態では、システム制御部50は、焦点検出用の像信号の生成と、焦点検出用の像信号のずれ量(位相差)の算出と、算出したずれ量からデフォーカス量及びデフォーカス方向を求める処理とを実施するものとする。
【0050】
システム制御部50は、焦点検出領域に対応する焦点検出用の像信号として得られた第1焦点検出信号及び第2焦点検出信号に、シェーディング補正及びフィルタ処理を行い、対の信号の光量差の低減と、位相差検出を行う空間周波数の信号抽出とを行う。次に、システム制御部50は、フィルタ処理後の第1焦点検出信号と第2焦点検出信号とを相対的に瞳分割方向にシフトさせるシフト処理を行い、信号の一致度を表す相関量を算出する。
【0051】
フィルタ処理後のk番目の第1焦点検出信号をA(k)、第2焦点検出信号をB(k)、焦点検出領域に対応する番号kの範囲をWとする。また、シフト処理によるシフト量をs1、シフト量s1のシフト範囲をΓ1とする。そうすると、相関量CORは、式(1)により算出される。
【0052】
【0053】
システム制御部50は、シフト量s1のシフト処理により、k番目の第1焦点検出信号A(k)とk-s1番目の第2焦点検出信号B(k-s1)を対応させ減算し、シフト減算信号を生成する。システム制御部50は、生成されたシフト減算信号の絶対値を計算し、焦点検出領域に対応する範囲W内で番号kの和を取り、相関量COR(s1)を算出する。必要に応じて、システム制御部50は、各行毎に算出された相関量を、各シフト量毎に、複数行に渡って加算してもよい。
【0054】
次に、システム制御部50は、相関量から、サブピクセル演算により、相関量が最小値となる実数値のシフト量を算出して像ずれ量p1とする。そして、システム制御部50は、算出した像ずれ量p1に、焦点検出領域の像高と、撮像レンズ(結像光学系)のF値、射出瞳距離に応じた変換係数K1をかけて、デフォーカス量を検出する。
【0055】
S7で、システム制御部50は、選択された焦点検出領域で検出されたデフォーカス量に基づき、レンズ駆動を行う。ここで、検出されたデフォーカス量が所定値より小さい場合には、必ずしもレンズ駆動を行う必要はない。
【0056】
S9で、システム制御部50は撮影開始指示を示す第2シャッタースイッチ64(SW2)のオン/オフを検出する。操作部70の一つであるレリーズ(撮影トリガ)スイッチは、押し込み量に応じて、2段階のオン/オフを検出することが可能で、上述のSW2は、レリーズ(撮影トリガ)スイッチの2段階目のオン/オフに相当する。システム制御部50は、S9でSW2のオンが検出されない場合、S5に戻り、SW1のオン/オフを検出する。
【0057】
S9で、システム制御部50は、SW2のオンが検出されたか否かを判定する。SW2のオンが検出された場合、処理ステップはS10に進み、SW2のオンが検出されない場合、処理ステップはS5に戻る。
【0058】
S10で、システム制御部50は、画像記録を行うか否かを判定する。本実施形態では、システム制御部50は、連写中の画像取得処理を、記録画像用と表示/焦点検出用とで切り替える。切り替えは、交互でもよいし、例えば、3回に1回の割合で表示/焦点検出用の画像取得処理が行われるなどであってもよい。これにより、単位時間当たりの撮影枚数を大幅に減らすことなく、高精度な焦点検出を行うができる。画像記録を行うと判定された場合、処理ステップはS300に進み、そうでない場合、処理ステップはS400に進む。
【0059】
S300で、システム制御部50は、撮影サブルーチンを実行することにより記録用の画像を取得する。その後、再びS9の判定(即ち、連写を継続するか否かの判定)が行われる。
【0060】
S400で、システム制御部50は、連写中の撮像/表示/焦点検出処理を実行する。連写中の撮像/表示/焦点検出処理の内容は、S1乃至S3及びS6で説明した処理の内容と同様である。但し、システム制御部50は、連写の撮影コマ速度、記録画像の生成処理などに応じて、ライブビュー画像の表示期間、表示更新レート(間隔)、表示遅延などを適宜調整する。
【0061】
本実施形態のように、連写中に、表示画像の表示期間、更新レート、表示遅延が変わった際に、ユーザの視線位置は、少なからず影響を受ける。本実施形態では、上述の表示仕様の状態や切り替わりに応じて、検出される視線位置に誤差が生じることに鑑みて、システム制御部50は、適切に視線位置の加工や検出処理の制御を行う。これにより、表示仕様の変化によらず、精度の高い視線位置を取得することができる。得られた視線位置情報は、上述の通り、焦点検出領域の設定や検出された被写体領域との紐づけなどに用いられる。S400の処理の後、再びS9の判定(即ち、連写を継続するか否かの判定)が行われる。
【0062】
S5においてSW1のオンが検出されない場合(又はオフが検出された場合)、S11の処理が行われる。S11で、システム制御部50は、メインスイッチのオフが検出されたか否かを判定する。メインスイッチのオフが検出された場合、本フローチャートの処理は終了する。メインスイッチのオフが検出されない場合、処理ステップはS5に戻る。
【0063】
<<視線位置補正処理>>
次に、
図6を参照して、視線位置補正処理について説明する。
図6は、視線位置補正処理のフローチャートである。本フローチャートの処理は、
図5のS4における視線検出処理の開始以降に、システム制御部50が主体となって並行して実行される。
【0064】
S201で、システム制御部50は、直近の複数回の視線検出処理により検出された複数の視線位置を取得する。ここで取得される視線位置の数は、後述するS203及びS208において行われる移動平均処理に必要とされる数である。
【0065】
S202で、システム制御部50は、撮影レンズの焦点距離情報を取得する。
【0066】
S203で、システム制御部50は、複数の視線位置を用いて移動平均処理を行うことにより、移動平均視線位置を算出する。ここでの移動平均のデータ数(視線位置の数)は、予め定められた数(例えば、5)である。移動平均視線位置を算出することにより、ユーザの視線の固視微動に起因する視線位置の振動成分を低減することができる。
【0067】
S204で、システム制御部50は、ユーザの視線位置検出時の瞳孔径を検出する。
【0068】
S205で、システム制御部50は、瞳孔径に基づいて移動平均視線位置を補正する。この補正は、人間の瞳孔の大きさが眼球に入る光の強さにより変化し、瞳孔の大きさに応じて視線検出誤差が変化するために必要な補正である。また、ここでの補正量は移動平均視線位置によって変化するため、システム制御部50は、移動平均視線位置を用いて補正量を適正化してもよい。本実施形態では補正結果を安定させるために、S201で取得された視線位置ではなく、S203で取得された移動平均視線位置が用いられる。
【0069】
S206で、システム制御部50は、S202で取得された焦点距離、及びS203で取得された移動平均視線位置を用いて、視線位置の信頼性を評価する。
【0070】
図7及び
図9を参照して、視線位置の信頼性評価について説明する。
図7は、各視線の向きにおける瞳孔中心とプルキニエ像の相対関係を示した概略図である。701はプルキニエ像、702は瞳孔を示したものである。
図9は、ユーザが電子ビューファインダを覗いて1点を注視した際の、視線位置に応じた視線位置のばらつき量を概念的に示した図である。901は、ユーザが左下の視線位置で1点を注視した際の、視線位置のばらつき量を示したものである。
【0071】
一般的に、視線検出センサ(例えば、
図4に示す視線入力操作部401)は中央位置でキャリブレーションされており、中央位置で最も検出精度が良くなるように設計されている。視線位置の検出方法としては、瞳孔中心とプルキニエ像の相対位置関係の変化を検出して算出する角膜反射法が一般的に知られている。この検出方法には、視線位置に応じて検出精度が異なるという課題がある。その理由は、プルキニエ像取得に使用する近赤外線光はセンサ側のレイアウトの問題から瞳孔中心に対して少しずれた場所に照射されるが、照射光は眼球の正面に対して斜入射されるため、プルキニエ像は眼球の中心に対してずれた場所で観測されるためである。また、この課題に加えて、視線位置に応じた視線検出精度の変化には異方性があるという課題もある。これは、
図7に示すように、瞳孔中心が瞼の開閉方向(上下方向)に移動する場合、瞳孔の一部が瞼に隠れることによって瞳孔中心の検出精度が低下しやすいことが一因として挙げられる。そのため、
図9に示すように、視線位置の検出精度は、中心位置に対して左右方向の方が上下方向よりも高い。
【0072】
上記の通り視線検出センサの構造に起因して視線検出精度の低下が発生する。加えて、人間起因の視線検出精度に影響を与える項目として、固視微動が挙げられる。眼球構造として、斜視の事例を除けば正面正視している場合が外眼筋のバランスが最も取れ、固視微動が最も抑制される。外眼筋は、上直筋、下直筋、外直筋、内直筋、上斜筋、下斜筋により構成されているが、固視微動はこれらの筋力を使用させる力のバランスが崩れるほど大きくなる。上下、左右の異方性に関しては個人差が大きいため確固たる定説は現在確立されていないが、視線位置が正面正視状態からずれるほど、外眼筋を構成する各筋肉の力のバランスが崩れるので、固視微動は大きくなる。また、上下左右方向よりも斜め方向に視線位置を変えた方が外眼筋を構成する各筋肉の力のバランスが崩れるので、固視微動が大きくなると考えられている。以上のように、固視微動も視線位置に応じて変化し、個人差も大きい。そのため、キャリブレーション時に個人データの固視微動の大きさを視線位置毎で取得することにより、視線検出精度を向上させることができる。
【0073】
以上の通り、視線位置に応じた視線検出精度の変動は、視線検出センサの構造に起因する変動と、人間の固視微動に起因する変動とが組み合わさって決定される。これらを加味して高精度な視線位置を取得するためには、検出された視線位置の信頼性に基づいて後段の視線位置補正処理を適正化する必要がある。
【0074】
視線位置の信頼性を取得する方法としては、予め複数人の複数の視線位置に関する視線情報データを取得しておき、各視線位置における分散データを整理して、その逆数を取ることで視線情報の信頼性評価値とする方法が考えられる。分散データの逆数を取ることで、分散データが小さい場合は視線位置のばらつきが小さく、値が安定している(信頼性が高い)ため、信頼性の値が大きくなる。逆に、分散データが大きい場合は視線位置のばらつきが大きく、値が不安定な(信頼性が低い)ため、信頼性の値が小さくなる。
【0075】
加えて、焦点距離が長いほど、ユーザの手振れにより撮影中の被写体がブレてしまい、そのブレた被写体をユーザが視線で追うと視線位置が振動してしまうため、焦点距離を加味して信頼性を算出してもよい。具体的には、焦点距離が短いほど信頼性を高く、焦点距離が長いほど信頼性を低く評価すればよい。
【0076】
また、上記に加え、瞼の開き具合に応じて視線検出センサから取得された視線位置の信頼性が変化することを考慮して信頼性を評価してもよい。瞼の開き具合に応じて視線位置の信頼性が変化する理由は、視線位置に応じて視線検出精度が異なる理由と類似しており、瞼によって瞳孔の一部が隠れてしまうことで検出精度の低下が生じる。瞼の開き具合に応じた視線位置の信頼性の変化は、視線検出センサを用いて検出可能である。視線検出センサで瞼の開き具合による視線位置の信頼性の変化を検出できない場合には、システム制御部50は、別のセンサにより瞼の開き具合を検出し、信頼性を評価してもよい。
【0077】
以上の点を考慮し、S206において、システム制御部50は、視線位置、焦点距離、及び瞼の開き具合の少なくともいずれかに基づいて、信頼性を評価する。ここで用いる視線位置は、S205において補正された移動平均視線位置である。
【0078】
例えば、システム制御部50は、視線位置が表示部28の中心から遠いほど、信頼性が低いと判定する。また、システム制御部50は、視線位置が表示部28の中心からユーザの瞼の開閉方向に所定距離離れている場合、視線位置が表示部28の中心から開閉方向に直交する方向に同じ所定距離離れている場合よりも、信頼性が低いと判定する。システム制御部50は、撮影光学系の焦点距離が長いほど、信頼性が低いと判定する。
【0079】
なお、S204及びS205の処理は省略可能である。この場合、S206において、システム制御部50は、S205において補正された移動平均視線位置の代わりに、S203において取得された移動平均視線位置を使用する。また、S203の処理も省略可能である。この場合、S206において、システム制御部50は、S205において補正された移動平均視線位置の代わりに、S201において取得された視線位置を使用する。
【0080】
S207で、システム制御部50は、S206において取得された信頼性に基づいて、視線位置を補正するための制御パラメータを設定する。本実施形態における視線位置の補正処理は、移動平均処理及び予測処理を含ものとするが、移動平均処理及び予測処理のうちの一方のみを含んでもよい。システム制御部50は、移動平均処理の制御パラメータとして、移動平均数n(移動平均のデータ数)を決定する。また、システム制御部50は、予測期間t予測期間を決定する。信頼性と制御パラメータとの関係については、S208の処理を説明する際に併せて説明する。
【0081】
予測処理が必要な理由として、移動平均処理による遅延時間と、人間が視認してから視線移動までにかかる遅延時間とが挙げられる。従って、システム制御部50は、予測処理としてこれらの遅延時間を補うためのフィードフォワード制御を行う。
【0082】
S208で、システム制御部50は、S207で決定された制御パラメータに基づいて、視線位置を補正する処理(移動平均処理及び予測処理)を行う。視線位置の予測方法としては、視線位置の履歴情報から近似関数を導出して補正する手法や、起点と終点となる位置情報を用いて位置速度制御をする方法等が考えられる。予測処理を行う上で考慮すべきことは、使用する視線位置が固視微動の影響を受けて振動的な値をとるため、S206において取得した信頼性に基づいて適切にローパス処理をして視線予測量を導出する必要があることである。視線情報のローパス処理として代表的な方法としては移動平均処理が考えられるが、移動平均数を多くするほど、視線変化に対する遅延時間の増加につながり、即応性とのトレードオフの関係になる。そのため、視線位置の信頼性を用いて移動平均数を決定する方法が有効である。即ち、前述したS207において、システム制御部50は、信頼性が高い場合には即応性を重視するために移動平均数nを減らし、信頼性が低い場合には振動成分の抑制を重視するために移動平均数nを増やす。本実施形態では、視線位置の履歴情報から移動平均と1次の近似関数とを導出して視線予測を行う場合について説明を行うものとする。但し、S207において説明した通り、システム制御部50は、移動平均処理及び予測処理のうちの一方のみを実行してもよい。
【0083】
図8は、移動平均数n=5、t
予測期間=3の場合のx方向の移動平均処理及び予測処理の概念図である。ここでの移動平均処理は、S201において取得された視線位置に基づいて行われる。
【0084】
図8において、801は時刻t
2における視線位置、802は時刻t1~5の視線位置の平均値(移動平均視線位置)、803は時刻t1~5の視線位置の最小二乗法で算出した傾き(視線位置の変動速度)、804は移動平均重心時刻を示す。また、805は、移動平均視線位置802及び傾き803を用いて予測した視線位置を示す。
【0085】
時刻t=5における移動平均視線位置X5は、式(2)を用いて算出することができる。
【0086】
【0087】
次に、視線位置のx方向の傾きaxは、式(3)を用いて算出することができる。
【0088】
【0089】
図8(b)は、
図8(a)の結果を用いて、時刻t=8の時の視線位置を予測した場合の概略を示している。時刻t=5(t
現在)において、時刻t=8(t
予測)における予測視線位置X’
8を算出するには、式(4)~式(6)で表した移動平均重心時刻t
移動平均重心、移動平均重心補正時間t
移動平均重心補正、予測補正時間t
予測補正と、傾きa
xとを用いて、式(7)で算出することができる。式(7)における傾きa
xにt
予測補正を掛けた項が視線予測による補正量となる。
【0090】
【0091】
【0092】
【0093】
【0094】
なお、t予測=t現在+t予測期間である。t予測期間は、人間が被写体を視認してから視線移動が開始するまでの遅延時間に相当する期間であり、実験等に基づいて決定可能である。ここでは、t予測期間=3であるものとする。このように、t予測期間は固定値であってもよい。しかしながら、S207において説明した通り、システム制御部50は、視線位置の信頼性に基づいてt予測期間を決定してもよい。視線位置の信頼性が低い場合には、視線予測による補正成分は誤差を多く含む可能性が高くなるため、システム制御部50は、t予測期間を上記の遅延時間に相当する値よりも小さくする(信頼性が低いほど近い将来の視線位置を予測する)ことで、誤差を低減することができる。
【0095】
また、上記説明では、理解を容易にするために時間と視線位置数とを同じ分解能にして説明した。実際の使用ケースにおいても、単位時間当たりの視線位置取得数が分かれば式(2)~式(7)を用いて移動平均を用いて視線予測することが可能である。
【0096】
また、上記説明ではx方向のみを用いて説明したが、y方向に関しても同様に予測視線位置を算出可能である。
【0097】
また、上記説明では、連続して取得された視線位置を用いて視線予測をする場合について述べたが、視線位置取得中に瞬きやシャッター等の理由で部分的に視線位置が取得できない場合がある。その場合においても、取得できなかったタイミングの視線位置を加味して、取得できた視線情報とそのタイミングとを適切に関連付けて視線予測処理をすればよく、必ずしも連続した視線位置を用いなければ視線予測ができないわけではない。
【0098】
S209で、システム制御部50は、新たな視線位置(S208において算出した補正視線位置)を、不揮発性メモリ56に記憶された元の視線位置と比較し、元の視線位置を更新するか否かを判定する。新たな視線位置と元の視線位置との間の差分が閾値以上の場合、S210で、システム制御部50は、不揮発性メモリ56に記憶された元の視線位置を新たな視線位置で更新する。反対に、差分が閾値未満の場合、システム制御部50は視線位置の更新を行わず、本フローチャートの処理を終了する。
【0099】
視線位置の更新判定を設けた理由は、信頼性に基づいて移動平均数を増減して補正処理を適正化しても、被写体が動いていないにもかかわらず視線位置が振動してしまう成分を完全には除去できないためである。更新の不感帯を設けることで、振動成分を更に抑止することができる。また、視線位置を連続的に表示する場合などにおいては、ユーザは視線位置を動かしていないと思っていても固視微動等により多少は動いているため、ユーザの意思と視線検出の結果の不一致を低減するためにおいても、視線位置の更新に判定閾値を設けるのは有効である。視線位置の更新判定において、S206の信頼性評価の結果に基づいて、信頼性が高い場合には閾値を小さく(不感帯を縮小)し、信頼性が低い場合には閾値を大きく(不感帯を拡張)する等の調整をしてもよい。
【0100】
<<視線位置補正処理の変形例>>
上述の視線位置補正処理においては、近似関数を用いて視線位置の予測処理を行う構成について説明した。近似関数を用いた予測処理は、近似関数の係数を算出する際に演算規模が多少大きくなる。そこで、変形例として、位置速度制御を用いて視線位置を予測する構成について、
図6を参照して説明する。
【0101】
S201~S207及びS209~S210の処理は、上述の近似関数を用いる場合と同様である。
【0102】
S208で、システム制御部50は、S207において決定された制御パラメータを用いて予測処理を行う。変形例の予測処理について、
図8を参照して説明する。
【0103】
予測処理において、システム制御部50は、始点となる基準視線位置として移動平均値を用いる。理由としては、位置制御を行う場合、基準となる始点が振動してしまうと、視線予測結果に振動成分が増大して乗るためである。移動平均視線位置は上述の式(2)で算出可能であり、
図8(a)の場合はX
3が移動平均視線位置となる。
【0104】
続いて、終点の視線位置は、即応性を求めるため、移動平均前の最新の視線位置xを用いるのがよい。よって、
図8においてはt=5の時の視線位置x
5を終点の視線位置とすればよい。単純に位置制御を行うのであれば、始点と終点の視線位置に係数Pをかけて視線予測量を調整すればよい。ただし、位置制御のみでは視線予測の追従性能を上げるとオーバーシュートしやすいため、速度制御も入れた方がよい。速度制御を入れるためには、最新の視線位置の変動量が必要になるため、時刻t=4と時刻t=5の時の視線位置x
4、x
5の差分に、係数Dを掛けた項を追加すればよい。以上を加味した位置速度制御による視線予測の式は式(8)となる。
【0105】
【0106】
上述の近似関数を用いる場合と同様、システム制御部50は、信頼性が低い場合に視線位置の視線予測による補正量を減らしたい場合には、位置制御項のPを小さくすればよい。
【0107】
なお、本実施形態では、取得した視線データを単純に平均処理して視線検出する事例で説明したが、視線データの差分等をみて、閾値以上の差分量を検出した場合にはその視線データを外れ値として除外してから視線検出をすることで、視線検出時のばらつきを抑制してもよい。また、平均処理に代わって、最小二乗法などの近似曲線を求めて各タイミングの視線検出結果としてもよい。このように、視線検出結果については任意の統計値を用いて算出してもよい。
【0108】
また、演算速度や演算規模の面で問題が無ければ、視線データを単純に移動平均して算出するのではなく、メディアン処理やカルマンフィルタ処理で算出してもよい。このように所定期間中の視線データを時間軸で比べ、中央値の抽出や外れ値の除外を行ってから平均処理をすることで、ばらつきをより抑制して視線検出することが可能になる。
【0109】
以上説明したように、第1の実施形態によれば、デジタルカメラ100は、ユーザの視線位置を繰り返し検出する。そして、デジタルカメラ100は、検出される視線位置の信頼性を判定し、検出される複数の視線位置の統計値(例えば、平均値)を算出することで統計視線位置(例えば、平均視線位置)を生成する。その際に、デジタルカメラ100は、信頼性に基づいて1つの統計値の算出に用いる視線位置の数を制御する。例えば、デジタルカメラ100は、信頼性が低いほど1つの統計値(例えば、平均値)の算出に用いる視線位置の数が多くなるように制御する。従って、信頼性が低い場合は平均される視線位置の数が増えることにより視線位置の検出誤差や固視微動による変動の影響が抑制され、信頼性が高い場合は平均される視線位置の数が減ることにより遅延が抑制されるため、視線検出の精度が向上する。また、デジタルカメラ100は、例えば複数の視線位置に対する最小二乗法などにより視線位置の変動速度を推定し、平均視線位置と推定された変動速度とに基づいて、将来の視線位置を予測する。これにより、複数の視線位置を平均することに伴う遅延、及び人間が被写体を視認してから視線移動が開始するまでの遅延の影響が補償されるため、視線検出の精度が向上する。
【0110】
なお、デジタルカメラ100は、信頼性を用いる代わりに、検出される視線位置の表示部28の中心からの距離に基づいて、1つの統計値の算出に用いる視線位置の数を制御してもよい。例えば、デジタルカメラ100は、検出される視線位置が、表示部28の中心からの距離が第1の距離の視線位置を含む場合に、第1の距離より短い第2の距離の視線位置を含む場合よりも多い数の視線位置を用いて、統計値を算出する。
【0111】
[第2の実施形態]
第2の実施形態では、第1の実施形態で説明した
図5のS4で開始する視線位置検出処理について、学習により得られた辞書データを用いて視線位置を検出する構成について説明する。併せて、辞書データを得るための学習処理についても説明する。
【0112】
第2の実施形態において、デジタルカメラ100の基本的な構成は第1の実施形態と同様である(
図1参照)。以下、主に第1の実施形態と異なる点について説明する。
【0113】
<<辞書データを用いる視線位置検出処理>>
図10は、辞書データを用いる視線位置検出処理のフローチャートである。辞書データは事前に作成されて不揮発性メモリ56に格納されているものとする。辞書データの作成方法は後述する。第1の実施形態において説明した通り、
図4のS4以降、システム制御部50は、視線位置を所定の時間間隔で取得する。第2の実施形態においては、システム制御部50が視線位置を所定の時間間隔で取得することにおける各回の取得処理が、
図10のフローチャートの処理に対応する。
【0114】
S1001で、システム制御部50は、視線入力操作部401を用いて眼部画像情報(視線画像情報)を取得する。
【0115】
S1002で、システム制御部50は、S1001において取得された視線画像情報、及び不揮発性メモリ56に格納された辞書データに基づいて推論を行うことにより、視線位置を検出する。具体的には、システム制御部50は、視線画像情報に含まれるユーザの眼が右眼か左眼かを判定する。判定方法は特に限定されない。次に、システム制御部50は、辞書データに含まれる深層学習のCNN(コンボリューショナル・ニューラル・ネットワーク)を用いることで、視線画像情報に対応する視線位置を取得する。
【0116】
なお、視線画像情報がユーザの両眼を含む場合、システム制御部50は、視線画像において右眼領域と左眼領域とを特定し、左右兼用の辞書データを適切に使用することにより視線位置を検出してもよい。
【0117】
<<辞書データの作成方法>>
ここで、上述の視線位置検出処理において使用される辞書データの作成方法について説明する。
【0118】
眼球の瞳孔位置とプルキニエ像の位置関係から視線情報(視線位置)を検出するにあたっては、視線位置、虹彩径、瞳孔径、眼部画像の信頼性によって検出結果が変化してしまう。よって、眼の画像を用いる学習により辞書データを作成する際には、関連情報として視線位置、虹彩径、瞳孔径、眼部画像の信頼性を紐付けて学習させた方が、より高精度な学習済み辞書データを作成することが可能となる。
【0119】
カメラのようなユーザが片眼でファインダを覗き込む装置に関する眼部画像情報を取得して学習器に入力し、学習済み辞書データを作成するには、学習データの収集の際に工夫が必要である。
【0120】
カメラのファインダを覗く眼が右眼の人と、左眼の人がいる。通常であれば右眼用と左眼用でそれぞれ学習データ、及び学習済み辞書データを用意する必要があるが、眼頭や眼尻などの人間的特徴点を加味して右眼画像か左眼画像かを判断することが可能である。よって、眼部画像を眼部情報学習器に入力して学習済み辞書データを作成する際に、眼部情報学習器内に人間の対称性を加味してデータの関連付け処理を行ったり、右眼か左眼のどちらかを左右反転して眼の向きを合わせる等の画像処理を行う。これにより、右眼用と左眼用のそれぞれの学習データを左右兼用の眼部画像データとして学習器に学習させ、学習済み辞書データを作成することが可能となる。
【0121】
作成された、左右兼用の学習済み辞書データを用いて視線検出を行う際には、システム制御部50は、眼部画像(S901の視線画像情報)から眼頭や眼尻等の眼部情報を検出する等して右眼画像か左眼画像かを判定する。そして、システム制御部50は、画像反転処理などの前処理を適切に行ってから、眼部情報を取得し、視線位置を取得する。
【0122】
図11は、左右の眼の視線方向の対応関係を示した図である。視線位置と眼の場合においては、
図11に示したように、左右の眼は体の中心に対して概ね左右対称に配置、構成されている。そのため、左右の視線位置毎の眼部画像を左右反転させ、視線位置も左右反転させた人間に基づいて学習データを作成することにより、汎用性の高い学習データを作成することができる。汎用性の高い学習データを作成するためには、眼部画像のデータ収集時に可能な限り様々な種類の眼部画像を収集する必要がある。人間は同じ人でも完全な左右対象ではなく、また、利き眼が存在するため、カメラの覗き込み方の左右差が大きい。そのため、同じ人の眼部画像だとしても、左右の眼で異なる傾向の画像データが取得される。よって、汎用的な眼部画像から視線位置を検出するための学習済み辞書データを作成するためには、左右別々で用意するよりも、左右の対称性を加味して左右兼用として学習済み辞書データを作成した方が汎用的で高精度な視線検出が可能となる。
【0123】
学習済み辞書データを作成時には、学習データを眼球の特徴点を加味して画像処理してから学習器に入力することにより、微細な特徴まで検出することが可能である。これは、収集された学習データの中から共通点をある程度意図的に導く処理になるため、辞書データが過学習にならないように注意する必要があるが、使用方法を適切にすることで、視線情報の検出精度向上に有効である。
【0124】
過度に無作為に収集した学習データを用いて学習済み辞書データを作成すると、平均値から少しでも外れたデータが辞書データにかけられた時に検出精度が著しく低下してしまう懸念がある。そのため、一部意図的に学習データに画像処理をかけてから学習済み辞書データを作成することで、その欠点を補うことが可能である。また、複数辞書を用いて、条件に応じて辞書を使い分けて視線検出を行う場合であれば、より視線検出精度の向上を図ることが可能となる。複数の辞書を使い分ける方法として、完全無作為に学習された第1の辞書データと、一部意図的に画像処理をかけた学習データを用いて学習された第2の辞書データとを使用する方法がある。そして、第1の辞書データでは視線検出ができなかった場合に、第2の辞書データを用いて視線検出を行う方法や、第1の辞書データで大まかに視線検出した後に、第2の辞書データでより高精度に視線検出する方法等が考えられる。
【0125】
画像処理の目的を、
図11を用いて説明する。例えば眼頭と眼尻の位置関係により眼の角度が定義可能であり、学習データの眼の角度を合わせてから辞書データを作成することで、眼の輪郭や、虹彩・瞳孔・眼尻・眼頭の位置関係など眼の微細な構造情報も学習しやすくなる。また、人種によって虹彩の色情報が異なるので、色が検出可能な視線検出センサであれば、色情報を使用するのも有効である。よって、眼頭情報・眼尻情報・虹彩情報・瞳孔情報・まつ毛情報・眉情報等の眼の構造情報における、位置関係、形状、色等を加味して、画像サイズ調整、画像回転角度調整、画像切り出し範囲調整、色調整、コントラスト調整、エッジ抽出処理(デジタルフィルタ処理)等の画像処理をしてから辞書データを作成することで、より高精度な視線検出が可能な辞書データを作成可能となる。
【0126】
辞書データの高精度化にあたっては、学習データ量を増やすのも非常に重要である。学習データの収集にあたっては、カメラを起動後、視線検出センサのキャリブレーションを行う際に、複数の視線検出データを取得することが多い。よって、視線検出装置としてカメラを使用し、カメラ使用者の同意が得られれば、無線通信などによりカメラからクラウドサーバに眼部画像、眼部特徴情報、眼部画像の視線情報の信頼性(視線信頼性)を送信してもよい。送信されたデータを学習データとして活用できれば、学習データな効率的な収集が可能である。こうして収集された学習データを追加学習して学習済み辞書データを作成し、再学習済み辞書データをカメラで受信して視線検出時に活用すれば、カメラのユーザははより高精度な視線検出結果を用いて撮影を行うことが可能となる。
【0127】
図12は、上述の再学習済み辞書データを生成する処理の概念図である。眼部情報学習器1201は、上述のクラウドサーバへ送信された眼部画像、眼部特徴情報、眼部画像の視線情報の信頼性(視線信頼性)に基づいて再学習済み辞書データを生成する。
【0128】
<<眼部情報学習器の構成>>
次に、
図13を参照して、辞書データを生成するための眼部情報学習器1201の構成について説明する。眼部情報学習器1201は、例えばパーソナルコンピュータなどの情報処理装置により実装することができる。或いは、デジタルカメラ100が眼部情報学習器1201を含んでもよい。
【0129】
図13(a)に示すように、眼部情報学習器1201には、眼部特徴である視線位置、眼頭情報・眼尻情報・虹彩情報・瞳孔情報・まつ毛情報・眉情報に加え、眼部画像情報の信頼性を紐づけられ用意された眼部画像が入力される。眼部情報学習器1201がこれらの入力データに基づく学習を行うことにより、出力として学習済み辞書データが作成される。
【0130】
図13(b)に示すように、この学習済み辞書データに眼部画像が入力されると、視線情報(視線位置を示す情報)が出力される。眼部情報学習器1201の入力として、眼部画像情報に加えて、眼部情報、及び、眼部画像情報の信頼性を追加する理由は、自動学習する際に、眼部情報を複合的に加味して視線位置を学習したり、眼部情報毎に個別に学習させた辞書を自動生成したり、眼部情報に基づいて学習方法を異ならせた複数の辞書を自動生成したり、学習データとして適切な眼部画像を自動で取捨選択したりするためである。眼部情報学習器1201内で複数の眼部情報を加味して視線位置を学習する場合について以下説明する。
図13(c)に示すように、眼部情報学習器1201が入力された眼部情報に基づき複数の学習済み辞書データを作成し、学習済み辞書データを用いて視線情報を取得する場合を考える。この場合、
図13(d)に示すように、眼部画像を複数の学習済み辞書データに通して複数の視線情報を取得してもよい。
【0131】
人間の眼部は個人差が大きいため、学習器を用いて辞書データを作成する際には無作為に学習器に学習させた辞書データ(無作為選定学習済み辞書データ)だけで視線検出を行うと、視線検出精度を満足に保証できない可能性がある。そのため、無作為選定学習済み辞書データに加えて、特定の眼部特徴に着目して類似性の高いものを選別し、選別方法毎に学習器に学習させた辞書データ(条件選定学習済み辞書データ)を用意してもよい。この場合、システム制御部50は、無作為選定学習済み辞書データと条件選定学習済み辞書データとを併用して視線検出を行う。
【0132】
ここで、第1の実施形態において説明した
図7を再び参照する。第1の実施形態において説明した通り、視線検出センサ(例えば、
図4に示す視線入力操作部401)による視線検出は、視線位置に応じて検出精度が異なる。また、視線位置に応じた視線検出精度の変化には異方性がある
従って、学習済みデータを作成する際には、視線位置によらず全視線位置の眼部画像を学習することにより得られる全視線位置学習済みデータに加えて、
図7に示した中央、右上、左下といった視線位置毎で分類して学習することにより得られる視線位置別学習済みデータを作成してもよい。
【0133】
全視線位置学習済みデータと、視線位置別学習済みデータとをそれぞれ作成する際には、眼部特徴(視線位置、眼頭情報・眼尻情報・虹彩情報・瞳孔情報・まつ毛情報・眉情報)をより検出しやすくするための構成を採用してもよい。具体的には、視線位置別学習済みデータの方が全視線位置学習済みデータより空間解像度が高い画像データを用いる学習構成を採用してもよい。瞳孔とプルキニエ像の相対位置関係を検出する際に、眼部情報も併せて検出することで、眼部画像を取得する視線検出センサと、ユーザ眼部との位置関係(距離・回転角度)が分かる。視線検出センサとユーザ眼部との位置関係を常に検出することで、視線位置検出における高精度なキャリブレーションの実現が可能となるため、高精度な視線位置検出を実現するためには有効である。
【0134】
視線検出を行う際には、まず、システム制御部50は、全視線位置学習済みデータを用いて視線検出を行う。瞳孔やプルキニエ像が瞼等によって光学的にケラレが生じて視線検出精度が低下しやすい場合(
図2の右上や左下といった視線位置)に関しては、システム制御部50は、視線位置別学習済みデータを用いて視線位置検出を行う。これにより、視線位置検出の高速化と高精度化のバランスをとることが可能となる。
【0135】
次に、虹彩径を加味した学習済み辞書データを作成する必要性について説明する。虹彩は、瞳孔とは異なり、環境による変化を受けず大きさは変わらず、個人差も小さい。そのため、虹彩の大きさから、眼球から視線検出センサまでの距離(以下、眼球距離)情報を大まかに取得することが可能である。なお、視線検出センサと眼球の間にコンタクトレンズや眼鏡等の光学系が挿入された場合は、虹彩のみかけの大きさが変化する。
【0136】
デジタルカメラ100のような撮像装置では、医療器具とは異なり、視線情報取得時の頭部固定は行われないため、眼球距離が変動しやすい。そのような状況下でも、虹彩の大きさも加味して視線検出を行うことで、高精度な視線検出が可能となる。
【0137】
次に、瞳孔径を加味した学習済み辞書データを用意する必要性について説明する。人間の瞳孔径は、眼球に入る光の強さにより変化する。そのため、眼球に入る光の強さが変化すると瞼等による瞳孔のケラレ方が変化するため、視線の検出精度が変化する。
【0138】
最後に、眼部画像の信頼性を紐づけて学習済み辞書データを作成する必要性について説明する。ファインダ内の同じ位置にユーザが視線を向けていたとしても、瞼の開き方やファインダの覗き込み方の個人差は大きいため、眼球と視線検出センサの間の遮蔽物や瞼のケラレによって眼部画像自体の信頼性に大きく差が出てしまう。瞳孔や虹彩のケラレの程度が混在した学習用画像データは、加工処理を必要としたり、除外したりして選別しながら処理した方が高精度な学習済みデータを生成することが可能となる。学習用画像データを効率良く選別し、高精度な学習済み辞書データを作成するためには、取得した画像データを自動で選別する必要がある。そのため、視線検出センサで視線情報の信頼性を出力できる場合はその情報も付随させるか、又は学習させる前に眼部画像の視線の信頼性を算出して付随させてから学習を実施する荒政を採用してもよい。
【0139】
以上説明したように、第2の実施形態によれば、眼部情報学習器1201は、視線位置を示す情報に関連付けられた複数の眼部画像に基づく学習を行うことにより学習済み辞書データを生成する。その際に、眼部情報学習器1201は、複数の眼部画像において右眼と左眼とが左右対称であることに基づいて、左右兼用の学習済み辞書データを生成する。これにより、高精度な学習済み辞書データを生成することが可能となる。
【0140】
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0141】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0142】
22…撮像部、24…画像処理部、28…表示部、50…システム制御部、52…システムメモリ、56…不揮発性メモリ、100…デジタルカメラ、150…レンズユニット、200…記録媒体