以下、図面を参照して本発明の実施形態を説明する。なお、以下に説明する実施形態では、本発明による電子機器およびその制御方法を、静止画・動画の撮影が可能なデジタルカメラに適用した場合を例としている。
図1Aに本実施形態による撮像装置の一例としてのデジタルカメラ100の背面外観図を示す。表示部28は画像や各種情報を表示する表示部である。表示部28には、図1Bで説明されるように背面表示パネル28aと、ファインダー内の表示部である電子ビューファインダー28bが含まれる。シャッターボタン61は撮影指示を行うための操作部である。モード切り替えスイッチ60は各種モードを切り替えるための操作部である。コネクタ112は、パーソナルコンピュータやプリンタなどの外部機器と接続するための接続ケーブル111とデジタルカメラ100とを接続するためのコネクタである。操作部70はユーザーからの各種操作を受け付ける各種スイッチ、ボタン、タッチパネル等の操作部材より成る。コントローラホイール73は操作部70に含まれる回転操作可能な操作部材である。電源スイッチ72は、電源オン、電源オフを切り替えるための押しボタンである。
記録媒体200は、例えばメモリカードやハードディスク等を含み、デジタルカメラ100により撮影された画像等を格納する。記録媒体スロット201は記録媒体200を着脱可能に格納するためのスロットである。記録媒体スロット201に格納された記録媒体200は、デジタルカメラ100との通信が可能となり、記録や再生が可能となる。蓋202は記録媒体スロット201の蓋である。図1Aにおいては、蓋202を開けて記録媒体スロット201から記録媒体200の一部を取り出して露出させた状態を示している。
図1Bは、本実施形態によるデジタルカメラ100の構成例を示すブロック図である。図1Bにおいて、撮影レンズ103はズームレンズ、フォーカスレンズを含むレンズ群である。シャッター101は絞り機能を備えるシャッターである。撮像部22は光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像素子である。A/D変換器23は、アナログ信号をデジタル信号に変換する。A/D変換器23は、撮像部22から出力されるアナログ信号をデジタル信号に変換するために用いられる。バリア102は、デジタルカメラ100の、撮影レンズ103を含む撮像系を覆うことにより、撮影レンズ103、シャッター101、撮像部22を含む撮像系の汚れや破損を防止する。
画像処理部24は、A/D変換器23からのデータ、又は、メモリ制御部15からのデータに対し所定の画素補間、縮小といったリサイズ処理や色変換処理を行う。また、画像処理部24では、撮像した画像データを用いて所定の演算処理を行う。画像処理部24により得られた演算結果に基づいてシステム制御部50が露光制御、測距制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理が行われる。画像処理部24は更に、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理を行う。また、画像処理部24は、システム制御部50と協働して画像データから顔および瞳を検出する検出部としても機能する。
A/D変換器23からの出力データは、画像処理部24及びメモリ制御部15を介して、或いは、メモリ制御部15を介してメモリ32に直接書き込まれる。メモリ32は、例えば、撮像部22によって得られA/D変換器23によりデジタルデータに変換された画像データや、表示部28に表示するための画像データを格納する。メモリ32は、所定枚数の静止画像や所定時間の動画像および音声を格納するのに十分な記憶容量を備えている。
また、メモリ32は画像表示用のメモリ(ビデオメモリ)を兼ねている。D/A変換器13は、メモリ32に格納されている画像表示用のデータをアナログ信号に変換して表示部28に供給する。こうして、メモリ32に書き込まれた表示用の画像データはD/A変換器13を介して表示部28により表示される。表示部28は、LCD等の表示器上に、D/A変換器13からのアナログ信号に応じた表示を行う。A/D変換器23によって一度A/D変換されメモリ32に蓄積されたデジタル信号をD/A変換器13においてアナログ変換し、表示部28に逐次転送して表示することで、スルー画像表示(ライブビュー表示(LV表示))を行える。以下、ライブビューで表示される画像をLV画像と称する場合もある。
不揮発性メモリ56は、電気的に消去・記録可能な記録媒体としてのメモリであり、例えばEEPROM等が用いられる。不揮発性メモリ56には、システム制御部50の動作用の定数、プログラム等が記憶される。ここでいう、プログラムとは、本実施形態にて後述する各種フローチャートを実行するためのコンピュータプログラムのことである。
システム制御部50は、デジタルカメラ100全体を制御する少なくとも1つのプロセッサーまたは回路である。前述した不揮発性メモリ56に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。システムメモリ52には、例えばRAMが用いられる。システムメモリ52には、システム制御部50の動作用の定数、変数、不揮発性メモリ56から読み出したプログラム等が展開される。また、システム制御部50はメモリ32、D/A変換器13、表示部28等を制御することにより表示制御も行う。
システムタイマー53は各種制御に用いる時間や、内蔵された時計の時間を計測する計時部である。モード切り替えスイッチ60、シャッターボタン61、操作部70はシステム制御部50に各種の動作指示を入力するための操作手段である。
モード切り替えスイッチ60は、システム制御部50の動作モードを静止画記録モード、動画撮影モード、再生モード等のいずれかに切り替える。静止画記録モードに含まれるモードとして、オートモード、オートシーン判別モード、マニュアルモード、撮影シーン別の撮影設定となる各種シーンモード、プログラムAEモード、カスタムモード等がある。モード切り替えスイッチ60により、ユーザーはこれらのモードのいずれかに直接切り替えることができる。あるいは、モード切り替えスイッチ60でメニューボタンに一旦切り換えた後に、メニューボタンに含まれるこれらのモードのいずれかに、他の操作部材を用いて切り替えるようにしてもよい。同様に、動画撮影モードにも複数のモードが含まれていてもよい。
シャッターボタン61は、第1シャッタースイッチ62と第2シャッタースイッチ64を有する。第1シャッタースイッチ62は、デジタルカメラ100に設けられたシャッターボタン61の操作途中、いわゆる半押し(撮影準備指示)でONとなり第1シャッタースイッチ信号SW1を発生する。第1シャッタースイッチ信号SW1により、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作を開始する。第2シャッタースイッチ64は、シャッターボタン61の操作完了、いわゆる全押し(撮影指示)でONとなり、第2シャッタースイッチ信号SW2を発生する。システム制御部50は、第2シャッタースイッチ信号SW2により、撮像部22からの信号読み出しから記録媒体200に画像データを書き込むまでの一連の撮影処理の動作を開始する。
操作部70の各操作部材は、表示部28に表示される種々の機能アイコンを選択操作することなどにより、場面ごとに適宜機能が割り当てられ、各種機能ボタンとして作用する。機能ボタンとしては、例えば終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン等がある。例えば、メニューボタンが押されると各種の設定可能なメニュー画面が表示部28に表示される。利用者は、表示部28に表示されたメニュー画面と、上下左右の4方向ボタンやSETボタンとを用いて直感的に各種設定を行うことができる。
コントローラホイール73は、操作部70に含まれる回転操作可能な操作部材であり、方向ボタンと共に選択項目を指示する際などに使用される。コントローラホイール73を回転操作すると、操作量に応じて電気的なパルス信号が発生し、このパルス信号に基づいてシステム制御部50はデジタルカメラ100の各部を制御する。このパルス信号によって、コントローラホイール73が回転操作された角度や、何回転したかなどを判定することができる。なお、コントローラホイール73は回転操作が検出できる操作部材であればどのようなものでもよい。例えば、ユーザーの回転操作に応じてコントローラホイール73自体が回転してパルス信号を発生するダイヤル操作部材であってもよい。また、タッチセンサーよりなる操作部材で、コントローラホイール73自体は回転せず、コントローラホイール73上でのユーザーの指の回転動作などを検出するものであってもよい(いわゆる、タッチホイール)。
電源制御部80は、電池検出回路、DC-DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出を行う。また、電源制御部80は、その検出結果及びシステム制御部50の指示に基づいてDC-DCコンバータを制御し、必要な電圧を必要な期間、記録媒体200を含む各部へ供給する。電源部30は、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。
記録媒体I/F18は、メモリカードやハードディスク等の記録媒体200とのインターフェースである。記録媒体200は、撮影された画像を記録するためのメモリカード等の記録媒体であり、半導体メモリや光ディスク、磁気ディスク等から構成される。通信部54は、無線または有線ケーブルによって接続し、映像信号や音声信号等の送受信を行う。通信部54は無線LAN(Local Area Network)やインターネットとも接続可能である。通信部54は撮像部22で撮像した画像(スルー画像を含む)や、記録媒体200に記録された画像を送信可能であり、また、外部機器から画像データやその他の各種情報を受信することができる。
姿勢検知部55は重力方向に対するデジタルカメラ100の姿勢を検知する。姿勢検知部55で検知された姿勢に基づいて、撮像部22で撮影された画像が、デジタルカメラ100を横に構えて撮影された画像であるか、縦に構えて撮影された画像であるかを判別可能である。システム制御部50は、姿勢検知部55で検知された姿勢に応じた向き情報を撮像部22で撮像された画像の画像ファイルに付加したり、画像を回転して記録したりすることが可能である。姿勢検知部55としては、加速度センサーやジャイロセンサーなどを用いることができる。
接眼検知部57は目(物体)の接近(接眼)を検知する。システム制御部は、接眼検知部57で検知された状態に応じて、背面表示パネル28aと電子ビューファインダー28bの表示/非表示を切り替える。すなわち、接眼検知部57が接眼を検知している場合は表示先を電子ビューファインダー28bとし、接眼検知部57が接眼を検知していない場合は表示先を背面表示パネル28aとする。
なお操作部70の一つとして、背面表示パネル28aに対する接触(位置)を検知可能なタッチパネル70aを有する。タッチパネル70aと背面表示パネル28aとは一体的に構成することができる。例えば、タッチパネル70aは、光の透過率が背面表示パネル28aの表示を妨げないように構成され、背面表示パネル28aの表示画面の内部に組み込まれる内蔵型(インセル型)とすることができる。タッチパネル70aにおける入力座標と背面表示パネル28aの表示画面上の表示座標とを対応付けることで、恰もユーザーが背面表示パネル28aの表示画面を直接的に操作可能であるかのようなGUI(グラフィカルユーザーインターフェース)を提供できる。システム制御部50はタッチパネル70aへの以下のユーザー操作、あるいは状態を検出できる。
・タッチパネル70aにタッチしていなかった指やペンが新たにタッチパネル70aにタッチしたこと、すなわち、タッチの開始(以下、タッチダウン(Touch-Down)と称する)の検出。
・タッチパネル70aを指やペンでタッチしている状態であること(以下、タッチオン(Touch-On)と称する)の検出。
・タッチパネル70aを指やペンでタッチしたまま移動していること(以下、タッチムーブ(Touch-Move)と称する)の検出。
・タッチパネル70aへタッチしていた指やペンを離したこと、すなわち、タッチの終了(以下、タッチアップ(Touch-Up)と称する)の検出。
・タッチパネル70aに何もタッチしていない状態(以下、タッチオフ(Touch-Off)と称する)の検出。
タッチダウンが検出されると、同時にタッチオンであることも検出される。タッチダウンの後、タッチアップが検出されない限りは、通常はタッチオンが検出され続ける。タッチムーブが検出されるのもタッチオンが検出されている間である。タッチオンが検出されていても、タッチ位置が移動していなければタッチムーブは検出されない。タッチしていた全ての指やペンがタッチアップしたことが検出された後は、タッチオフとなる。
これらの操作・状態や、タッチパネル70a上に指やペンがタッチしている位置座標は内部バスを通じてシステム制御部50に通知され、システム制御部50は通知された情報に基づいてタッチパネル70a上にどのような操作が行なわれたかを判定する。例えば、タッチムーブに関して、システム制御部50は、タッチパネル70a上で移動する指やペンの移動方向を、位置座標の変化に基づいて、タッチパネル70a上の垂直成分・水平成分毎に判定できる。またタッチパネル70a上をタッチダウンから一定のタッチムーブを経てタッチアップをしたとき、ストロークを描いたこととする。
素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネル70a上に指をタッチしたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル70a上を指ではじくように素早くなぞる操作である。所定距離以上を、所定速度以上でタッチムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行なわれたと判定できる。また、所定距離以上を、所定速度未満でタッチムーブしたことが検出された場合はドラッグが行なわれたと判定するものとする。更に、複数箇所(例えば2点)を同時にタッチして、互いのタッチ位置を近づけるタッチ操作をピンチイン、互いのタッチ位置を遠ざけるタッチ操作をピンチアウトと称する。ピンチアウトとピンチインを総称してピンチ操作(あるいは単にピンチ)と称する。
タッチパネル70aは、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、電磁誘導方式、画像認識方式、光センサー方式等、様々な方式のタッチパネルのうちいずれの方式のものを用いても良い。方式によって、タッチパネルに対する接触があったことでタッチがあったと検出する方式や、タッチパネルに対する指やペンの接近があったことでタッチがあったと検出する方式のものがあるが、いずれの方式でもよい。
上述したデジタルカメラ100では中央1点AFや顔AF、瞳AFを用いた撮影が可能である。中央1点AFとは撮影画面内の中央位置1点に対してAFを行うことである。顔AFとは顔検出機能によって検出された撮影画面内の顔に対してAFを行うことである。瞳AFとは顔検出機能の一種でもある器官検出機能によって検出された撮影画面内の顔に含まれる瞳に対してAFを行うことである。
顔検出機能について説明する。上述したように、システム制御部50と画像処理部24は、画像から顔および該顔の器官(目、鼻、口、耳など)を検出可能な検出部として機能する。システム制御部50は顔検出対象の画像データを画像処理部24に送る。システム制御部50の制御下で画像処理部24は、画像データに水平方向バンドパスフィルタを作用させる。また、システム制御部50の制御下で画像処理部24は、画像データに垂直方向バンドパスフィルタを作用させる。これら水平及び垂直方向のバンドパスフィルタを適用することにより、画像データからエッジ成分が検出される。
その後、システム制御部50は、検出されたエッジ成分に関してパターンマッチングを行い、目及び鼻、口、耳などの顔の器官の候補群を抽出する。そして、システム制御部50は、抽出された目の候補群の中から、予め設定された条件(例えば2つの目の距離、傾き等)を満たすものを目と判断し、目の候補群の絞り込みを行う。そして、システム制御部50は、絞り込まれた目の候補群とそれに対応する顔を形成する他のパーツ(鼻、口、耳などの器官)を対応付け、また、予め設定した非顔条件フィルタを通すことで、顔を検出する。システム制御部50は、顔の検出結果に応じて、検出された顔の数、各顔の位置、大きさ、向き、内容する器官(目、鼻、口、耳)などの位置や大きさ等の顔情報を出力し、処理を終了する。このとき、システム制御部50は、顔の数などの特徴量をシステムメモリ52に記憶する。一旦顔として検出された領域は、コントラストや色、大きさ等の条件が合致していれば所定期間(1秒程度)は顔として検出し続ける。これによって、一時的に被写体が後ろを向いた、目を瞑った等によって顔の器官が検出されなくなっても、顔として検出し続けることが可能である。
システム制御部50は、上述の顔検出機能によって検出された顔について抽出済みとなっている目を、検出された目(瞳)として確定し、瞳検出結果として瞳情報を出力する。瞳情報には、例えば、画像中における目の位置、顔における目の位置、大きさ等、また、目の位置と大きさに基づく瞳領域が含まれる。瞳検出は、顔の要素(パーツ)を検出する器官検出の一種である。
以上のようにライブビュー表示あるいは再生表示される画像データを画像解析して、画像データの特徴量を抽出して、顔や瞳などの特定の被写体情報を検出することが可能である。
なお、顔AFと同時に顔AE,顔FE、顔WBを行うことができる。顔AEとは検出された顔の明るさに合わせて、画面全体の露出を最適化することである。顔FEとは検出された顔を中心にフラッシュの調光をすることである。顔WBとは、検出された顔の色に合わせて画面全体のWBを最適化することである。
さらに、システム制御部50は、画像処理部24を用いて、色、コントラスト、動きベクトルなどの条件によって、主要被写体と想定されるモノ(人物の顔と器官以外のモノ)を検出することも可能である。
また、デジタルカメラ100では、撮影時のオートフォーカス(AF)の動作モードとして、複数のAFモードからユーザー操作に応じて1つのAFモードを設定することが可能である。AFモードの設定は、設定メニュー画面における、AFモードを設定するためのメニュー項目が選択されて表示されるAFモード設定画面でのユーザー操作に基づいて行われる。AFを行う位置の決定方式ごとに複数のAFモードが用意されている。本実施形態では、AFモードとして、一点AFモードと、追尾優先モードのいずれかが設定できるものとする。
一点AFモードは、撮影範囲の中央、あるいはユーザーが指定した一点に焦点調節位置を表すAF枠を設定するAFモードである。一点AFモードでは、AF枠は被写体に変化があっても移動せず、顔などの被写体が検出されているか否かに関わらず、AF枠の位置から得られた情報(コントラスト値や位相差AF用のデフォーカス量)に基づいてAFが行われる。
追尾優先モードでは、ユーザーからの追尾指定がない場合(追尾待機状態、追尾解除状態)は、デジタルカメラ100が自動的に主被写体と判定した被写体がAF対象(焦点調節位置)となる。人物の顔が検出された場合は、検出された人物の瞳または顔を優先して主被写体としてAF対象にする。人物の顔が検出されていない場合は、動体、コントラスト値の高い被写体、中央に近い被写体などの所定の条件に従って主被写体をデジタルカメラ100が自動的に決定してAF対象とする。また、ユーザーからの追尾指定がなされた後は、LV画像中で指定された被写体を追尾し続け、追尾している被写体の撮影範囲内での位置が変わっても、追尾している被写体をAF対象とする。例えばユーザーが人物Aの瞳または顔を追尾指定した場合(追尾中)は、LV画像上で人物Aが移動しても人物Aの瞳または顔を追い続け、AF対象とする。
また、人物以外を追尾対象とすることも可能であり(モノ追尾)、追尾指定された位置の色、コントラスト、形状などを条件として、同一の被写体がLV画像中で移動しても追い続け、AF対象とする。すなわち、追尾優先モードは追尾を行うことによるAF位置の決定が可能なAFモードである。なお、AFモードは一点AFモードと追尾優先モードに限られるものではない。例えばユーザーが指定した限定領域内で追尾を行うAFモード(「ゾーンAF」)などがあってもよい。設定したAFモードは、不揮発性メモリ56に記憶され、撮影モード処理においてはシステムメモリ52に読み出される。
ここで、本実施形態の撮像部22に用いられる撮像素子を説明する。撮像素子は、C-MOSセンサーとその周辺部で構成され、横方向にm個、縦方向にn個の複数の画素部がマトリクス状に配置されている。各画素部が1つの光電変換素子を有している。撮像素子は、撮像用画素部と焦点検出用画素部の2種類の画素部を有する。2行×2列の画素のうち、対角に配置される一対のG画素は撮像用画素部とし、R画素とB画素の一部を焦点検出用画素部としている。
焦点検出用画素部は、撮影光学系の異なる射出瞳の領域を通る光束を受光する2つのグループのいずれかに属する。これにより、2つのグループのそれぞれの焦点検出用画素群から互いに視差を有するA像信号とB像信号が得られ、公知の位相差式焦点検出を行うことができる。このように、撮像素子では、撮像素子から取得した信号に基づいて位相差式の焦点検出を行う、いわゆる撮像面位相差式の焦点検出を行うことができる。
システム制御部50は、焦点検出用画素部から取得したA像信号とB像信号とを用いて位相差式の焦点検出処理を行う。より具体的には、システム制御部50は視差を有する一対の像信号であるA像信号とB像信号との像ずれ量を、公知の相関演算により算出する。また、像ずれ量に所定の係数を掛けることでデフォーカス量を算出し、当該デフォーカス量に基づいてフォーカスレンズの駆動量を算出する。
なお、本実施例では焦点検出を行うための構成として上述の構成を例示したが、焦点検出を行うことができる構成であれば、異なる構成であってもよい。例えば、異なる画素構成によって撮像面位相差式の焦点検出を実現しても良いし、公知のコントラスト式の焦点検出を採用しても良い。また、焦点検出専用センサーを用いることで位相差式の焦点検出を実現しても良い。
図2は、本実施形態によるデジタルカメラ100の撮影モード処理を示すフローチャートである。
S201において、システム制御部50は、撮像部22を通して取得された映像を画像処理部24で表示用の画像に変換してメモリ32に書き込み、メモリ32に書き込まれた画像を表示部28に表示させる。システム制御部50は、この動作を繰り返し行うことで、撮像部22で撮像された画像をライブビューとして表示する。また、このタイミングで、システム制御部50と画像処理部24は、表示されている画像から顔および瞳を検出する検出処理を開始する。顔と瞳の検出は繰り返し実行され、システム制御部50は、その検出結果を使用する。
S202ではシステム制御部50は、タッチパネル70aへのタッチダウン操作を検知したか否かを判断する。S202でタッチパネル70aへのタッチダウン操作を検知したと判断された場合、処理はS204に進み、タッチダウン操作を検知しなかったと判断された場合、処理はS203に進む。ここで、システム制御部50は、検知されたタッチダウン操作に基づいて、画像が表示された表示画面上におけるユーザーの指定位置を取得する。S203では、システム制御部50は焦点調節の対象となる焦点検出領域の自動設定処理を行う。焦点検出領域の自動設定処理は、ライブビュー中にデジタルカメラが焦点検出領域を決める処理であり、詳細については図3のフローチャートにより後述する。S204では、システム制御部50は焦点検出領域の手動設定処理を行う。焦点検出領域の手動設定処理は、ライブビュー中に検出したタッチダウンの位置に基づいて焦点検出領域を決定する処理であり、詳細については図4のフローチャートにより後述する。
S205において、システム制御部50は、焦点検出領域の手動設定の解除が行われたかどうかを判断する。焦点検出領域の手動設定の解除操作は、例えば、操作部70の操作部材への所定の操作であってもよいし、タッチパネル70aの特定の場所へのタッチダウンであってもよい。S205において焦点検出領域の手動設定の解除操作がなされたと判断された場合、処理はS206へ進み、解除操作がなされていないと判断された場合、処理はS202に戻る。
S206では、システム制御部50がシャッターボタン61の操作途中(半押し)において第1シャッタースイッチ62から得られる第1シャッタースイッチ信号SW1を検知したか否かを判断する。第1シャッタースイッチ信号SW1が検知された場合、処理はS207に進み、第1シャッタースイッチ信号SW1が検知さない場合、処理はS211に進む。
S207では、システム制御部50は、S203またはS204における領域選択処理により設定された焦点検出領域に対して焦点検出処理を行い、焦点検出結果に応じて撮影レンズ103のフォーカスレンズを駆動する。こうして、手動または自動で設定された焦点検出領域を用いた焦点調節が行われる。S208において、システム制御部50は第2シャッタースイッチ64から得られる第2シャッター信号SW2を検知したかどうかを判断する。第2シャッタースイッチ64は、シャッターボタン61の操作完了(全押し)に応じて第2シャッター信号SW2を出力する。S208において、システム制御部50が第2シャッタースイッチ信号SW2を検知した場合、処理はS209に進み、第2シャッタースイッチ信号SW2を検知しなかった場合、処理はS210へ進む。
S210において、システム制御部50は、第1シャッタースイッチ信号SW1を検知しているか否かを判断する。これにより、第1シャッタースイッチ信号SW1が維持されているか(シャッターボタン61の半押し状態が維持されているか)が確認される。S210において第1シャッタースイッチ信号SW1が検知された場合、処理はS208へ戻り、検知されなかった場合、処理はS211に進む。
S209において、システム制御部50は撮影動作を行う。S211において、システム制御部50は、終了操作(記録モードの終了)を検知したか否かを判断する。S211において、システム制御部50が記録モードの終了を検知した場合はこのフローを終了し、記録モードの終了を検知しなかった場合、処理はS202に戻る。システム制御部50は、例えば、モード切り替えスイッチ60により電源オフ設定や、再生モード、PC接続モード等の記録モード以外のモード設定になされたことを検知した場合に記録モードの終了と判断する。
次に図3のフローチャートを用いて焦点検出領域の自動設定処理(S203)について説明する。焦点検出領域の自動設定処理はライブビュー中に、デジタルカメラが自動的に焦点検出領域を決める領域選択処理である。
S301において、システム制御部50は、焦点検出をする対象となる被写体が、ユーザーのタッチダウン操作により選択済みとなっているかどうかを判定する。焦点検出をする対象となる被写体の選択は、タッチパネル70aのユーザーが選択した被写体が表示されている位置をタッチダウンすることによって選択することができる。S301で焦点検出をする対象となる被写体を選択済みと判定された場合、処理はS302に進み、選択されていないと判定された場合、処理はS304に進む。
S302では、システム制御部50は、焦点検出をする対象として選択中の被写体を検出しているか否か(ライブビュー画像に存在するか否か)を判定する。選択中の被写体(領域)とは、直前の自動設定処理(S203)、手動設定処理(S204)により、焦点検出領域に選択された被写体の領域である。例えば、ユーザーが選択した被写体が画像から無くなっている場合、選択中の被写体が検出されていないと判定される。S302において選択中の被写体を検出していると判定された場合、処理はS303に進み、検出していないと判定された場合、処理はS304へ進む。S303において、システム制御部50は、焦点検出の対象となる領域を選択中の被写体の領域として、本処理を終了する。本処理が終了すると、処理は図2のS206に進む。
S304以降の処理は、ユーザーのタッチダウン位置(指定位置)に基づいて選択された被写体が画像(ライブビュー画像)に存在しない場合に実行される、焦点検出領域の自動選択処理である。自動選択処理では、画像に瞳が存在すれば、その瞳の領域が自動的に選択される。複数の瞳が存在する場合には、それらの瞳のうち、カメラに近い側の瞳、または、大きく撮影されている方の瞳が選択される。システム制御部50は、焦点検出領域に設定された領域を示す枠(AF枠)を表示部28の表示画面に表示する(ライブビュー画像に重畳表示する)枠表示処理を行ってもよい。なお、S304以降の処理は、顔AFと瞳AFの実行時における焦点検出領域の設定にも用いられ得る処理である。顔AFであっても、瞳検出設定(S307)がONであれば、瞳領域が焦点検出領域に設定される。但し、この場合、焦点検出領域を示すAF枠は、瞳領域が焦点検出領域に設定されても顔を囲むように表示される。ユーザーが顔AFを指定しているにもかかわらず瞳領域を示す枠を表示することでユーザーが混乱してしまうことを防ぐためである。
まず、S304において、システム制御部50は、ライブビューの表示用画像データに対して顔が検出されているかどうかを判定する。上述したように顔の検出はシステム制御部50と画像処理部24により実施される。S304で顔を検出していないと判定された場合、処理はS305に進み、顔を検出していると判定された場合、処理はS306に進む。
S305では、顔が検されていないため、システム制御部50は、撮影画角内で最も撮像面から近い場所に1つ以上の焦点検出領域を設定し、本処理を終了する。撮像面から近い場所に焦点検出領域を設定するのは、ピントを合わせたい被写体を至近に配置するようユーザーがフレーミングして撮影する可能性が高いからである。最も撮像面から近い場所を特定する方法の一例として、撮像面に最も近い距離にピント合わせた状態からコントラストのある領域が検索できるまでピントを合わる距離を遠距離側に移動させ、焦点検出領域を決定する方法がある。
S306では、システム制御部50は、ライブビューの表示用画像データから検出されている顔から主顔を決定する。主顔とは主被写体の顔である。検出されている顔が1つであれば、その顔が主顔に決定される。複数の顔を検出していた場合には、顔の大きさや顔の位置に応じてシステム制御部50が主顔を決定する。例えば、顔の大きさがより大きく、また静止画または動画として撮影される画像の中心により近い顏を主顔に設定する。例えば図8のように画像における顔の大きさと顔の位置に応じて評価値が設定される。図8における「顔の大きさ(水平)」は検出された顔の水平画素数に応じた評価値である。「画角中心からの顔位置」は、画像中心から画像対角までを100%とした場合に、顔の中心が画像中心からどの程度離れているかに応じた評価値である。例えば、顔の大きさが35ピクセルで顔の中心が画像中心にあった場合は顔の大きさによる評価値は30で画像中心からの顔位置による評価値は50となり、総合の評価値は80となる。顏が複数検出された場合はそれぞれの顔に対して総合の評価値求めて、最も総合の評価値の高い顔を主顔とする。
S307では、システム制御部50は瞳検出設定がONになっているかどうかを判断する。瞳検出設定のON/OFFはユーザー操作により設定可能である。S307で瞳検出設定がONであると判定された場合、処理はS309へ進み、瞳検出設定がONであると判定されなかった場合、処理はS308に進む。S308では、システム制御部50は焦点検出領域を主顔の顏領域に設定し、本処理を終了する。顏領域とは、顔全体を含む領域(例えば、顔に外接する矩形)である(例えば、図9(a)のHL×WLの矩形の領域)。なお、顔の内接矩形を顔領域としても構わない。
S309において、システム制御部50は、主顔から両方の瞳が検出されたか否かを判定する。両方の瞳が検出されたと判定された場合、処理はS310へ進み、両方の瞳が検出されていないと判定された場合、処理はS308へ進む。S308の処理は上述したとおりである。
S310において、システム制御部50は、顔の顏向きが正面を向いているかどうか、すなわち、主顔が正面顔か否かを判定する。図9(b)は正面顔を示している。図9(c)のようにカメラに対して顔が斜めを向いている場合は、顔の向きは正面ではない(非正面顔とも称する)。なお、顔が正面を向いているかどうかの判定は、例えば画像処理部24が正面を向いた顔をテンプレートとしてパターンマッチングを行い、テンプレートとマッチした場合には顔が正面を向いていると判定することによって可能である。また、検出された顔の位置と顔に含まれる器官(瞳、鼻、口等)の位置から正面顔か否かを判定するようにしても良い。例えば、顔の中心から左右ぞれぞれの瞳の位置までの水平方向と垂直方向の両方の距離が等しければ顔が正面を向いていると判定し、等しくなければ顔が正面を向いていないと判定することができる。
S310において、主顔が正面顔であると判定された場合、処理はS311へ、正面顔でないと判定された場合、処理はS312へ進む。S311において、システム制御部50は、主顔の両方の瞳のうち画面中央に近い瞳に焦点検出領域を設定する。例えば、検出された瞳位置を中心として、顔の大きさに対して一定の割合を掛けた大きさの領域(瞳領域)が、瞳への焦点検出領域として設定される。瞳に対する焦点検出領域の設定はもちろんこれに限られるものではなく、例えば、検出された瞳位置を含む領域であって、他の器官(鼻、口等)を含まない領域を設定するようにしてもよい。
S312において、システム制御部50は顔の向きがカメラから向かって右向きに傾いている顏かどうかを判定する。S312で主顔が右向きに傾いていると判定された場合、処理はS313に進み、主顔が右向きに傾いていない(この場合、左向きに傾いている)と判定された場合、処理はS314へ進む。S313において、システム制御部50は、主顔のカメラから向かって左側の瞳に焦点検出領域を設定し、本処理を終了する。左側の瞳領域を焦点検出領域に設定するのは、カメラから向かって顔が右向きの顔の場合は、カメラから向かって左側の瞳が右側の瞳よりもカメラに近い側にあると判断しているからである。S314では、システム制御部50は、主顔のカメラから向かって右側の瞳に焦点検出領域を設定して本処理を終了する。なお、主顔が正面に向いていない場合に(S310でNO)、2つの瞳のうち画像において大きい方の瞳に焦点検出領域が設定されるようにしてもよい。
次に図4のフローチャートを用いて焦点検出領域の手動設定処理(S204)について説明する。焦点検出領域の手動選択処理は、タッチダウンの位置に応じて焦点検出の領域を設定する領域選択処理である。
S401では、システム制御部50はライブビューの表示用画像データに対して顔が検出されているかどうかを判定する。上述したように、顔の検出はシステム制御部50と画像処理部24により実施される。顔が検出されていると判定された場合、処理はS403へ進み、検出されていないと判定された場合、処理はS402へ進む。S402では、システム制御部50は、タッチダウン位置に対して画像処理部24に物体検出を行わせ、検出された物体の領域を焦点検出領域に設定し、本フローを終了する。フローを終了すると処理は、図2のS205に遷移する。なお、タッチダウン位置とは、画像表示された表示画面上(背面表示パネル28a上)におけるタッチダウンの位置であり、表示画面上へのユーザーの指定位置の一例である。以下、ユーザーの指定位置をタッチダウン位置として実施形態の説明を行う。また、物体検出の方法としては、周囲の領域よりも色や輝度の顕著な領域を抽出して物体領域とする方法や、カメラからの距離がタッチダウンした位置と同一距離にある領域を物体領域として抽出する方法、などがあげあれる。
S403では、システム制御部50は瞳検出設定がONになっているかどうかを判断する。S403で瞳検出がONになっていると判定されなかった場合、処理はS404に進み、瞳検出がONになっていると判定された場合、処理はS407に進む。S404において、システム制御部50はタッチダウン位置が顔領域内かどうかを判定する。S404でタッチダウン位置が顔領域であると判定された場合、処理はS405に進み、タッチダウン位置が顔領域ではないと判定された場合、処理はS406へ進む。S405において、システム制御部50は、タッチダウン位置の顏領域を焦点検出領域として設定してフローを終了する。S406において、システム制御部50は、タッチダウンした位置に対して画像処理部24による物体検出を行い、検出された物体の領域を焦点検出領域に設定してフローを終了する。
S407で、システム制御部50はタッチダウン位置が顔の近傍範囲内かどうかを判定する。例えば、図9(c)(d)の領域933内にあればタッチダウン位置が顔の近傍範囲内であると判断し、領域933の外であれば顔の近傍範囲にはないと判断する。したがって、顔の近傍範囲(領域933)内にタッチダウン位置があるということは、顔領域(HL×WLの矩形領域内)にタッチダウン位置がある場合を含む。本例では、顔の中心位置に対して、顔の大きさの水平サイズWL、垂直サイズHLそれぞれにAを掛けた領域を領域933とする。Aは1以上の数値であれば整数でなくてもいくつでも構わない。S407でタッチダウン位置が顔の近傍範囲にあると判断されなかった場合、処理はS402に進み、タッチダウン位置が顔の近傍範囲にあると判断された場合、処理はS408に進む。S402については、上述したとおりである。
S408において、システム制御部50はタッチダウン位置に基づいて特定された顔の少なくとも左右どちらか一方の瞳が検出されているかどうかを判定する。本実施形態では、タッチダウン位置に基づいて特定された顔として、タッチダウン位置に最も近い顔(タッチダウン位置がその領域内に存在する顔を含む)を用いて説明する。S408において、どちらの瞳も検出されていない判断された場合、処理はS404に進み、少なくともどちらかの瞳が検出されている判断された場合、処理はS409に進む。S404に進んだ場合の処理は、上述したとおりである。
S409では、システム制御部50がタッチダウン位置から最も近い顔、またはその顔の左右の瞳のうちのいずれかが既にタッチダウンによって選択されているかどうかを判定する。既にタッチダウンによって選択されていると判定された場合、処理はS410に進み、選択されていないと判定された場合、処理はS414に進む。
S410で、システム制御部50は、タッチダウン位置が顔領域内かどうかを判定する。S410でタッチダウン位置が顔領域内であると判定された場合、処理はS411へ進み、そうではないと判定された場合、処理はS402に進む。S402の処理は上述したとおりである。S411において、システム制御部50は、タッチダウン位置の顔が正面顔かどうかを判定する。S411でタッチダウン位置の顏が正面顔と判定された場合、処理はS412に進み、正面顔と判定されなかった場合、処理はS411に進む。S412では、システム制御部50は、正面顔(選択中)の焦点領域設定処理を実行してフローを終了する。正面顔(選択中)の焦点領域設定処理については、図5を用いて後述する。S413では、システム制御部50は、斜め顔(選択中)の焦点領域設定処理を実行してフローを終了する。斜め顔(選択中)の焦点領域設定処理については、図10を用いて後述する。
S414で、システム制御部50は、タッチダウン位置から最も近い顔(特定された顔)が正面向きかどうかを判断する。顔が正面向きであると判定された場合、処理はS416に進み、顔が正面向きでないと判定された場合、処理はS415へ進む。S415において、システム制御部50は、斜め顔(非選択)の焦点検出領域設定処理を実行し、本フローを終了する。斜め顔(非選択)の焦点検出領域設定処理については、図7を用いて後述する。
S416において、システム制御部50は、タッチダウン位置が顔領域内かどうかを判定する。タッチダウン位置が顔領域内であると判定された場合、処理はS417に進み、顔領域内でないと判定された場合、処理はS418へ進む。S417では、システム制御部50は、正面顔(非選択)の焦点検出領域設定処理を実行し、本フローを終了する。正面顔の焦点検出領域設定処理については図6を用いて後述する。また、S418では、タッチダウンした位置に対して画像処理部24による物体検出を行い、検出された物体の領域を焦点検出領域に設定してフローを終了する。
次に図5を用いて、正面顔(選択中)の焦点検出領域設定処理(S412の処理)の詳細を説明する。人物選択中の焦点検出領域設定処理は、既にタッチダウンによって人物の顏または瞳が焦点検出領域として選択された状態において、同一人物の顔領域に再度タッチダウンした場合に、焦点検出領域を手動で設定する処理である。本実施形態では、ユーザーの指定位置により特定された顔において既に一方の瞳が焦点検出領域のために選択されている場合に、非選択となっている他方の瞳の選択領域を設定し、選択されている一方の瞳について選択領域を設定しない。これにより、同一人物の顔領域に再度タッチダウンするたびに、焦点検出領域を設定する対象となる瞳が切り替わることになる。図5の処理では、ユーザーの指定位置により特定された顔において既に一方の瞳が焦点検出領域として選択されている場合に、特定された顔の領域を上下に分けた上側の領域が、非選択中となっている他方の瞳の選択領域に設定される。例えば、図9(a)の領域901が非選択中の瞳の選択領域に設定される。
なお、本実施形態では、非選択中の瞳の選択領域を拡張する処理として、領域901の全体が非選択中の瞳のための選択領域となるようにしたが、これに限られるものではない。例えば、非選択中の瞳のための選択領域が選択中の瞳の選択領域よりも小さくなる所定のサイズ比で領域901を分割して、それぞれの瞳の選択領域として設定するようにしてもよい。
S501において、システム制御部50はタッチダウン位置が顔領域を上下に分けた下側の領域にあるかどうかを判断する。本実施形態では、例えば、図9(a)に示されるように、顔領域を上下に半分に分け、領域900が顔の下側の領域、領域901が上側の領域である。タッチダウン位置が顔領域の下側の領域であると判定された場合、処理はS502に進み、そうでない場合、処理はS503へ進む。タッチダウン位置が顔領域の下側の領域であると判定されない場合とは、顔領域の下側の領域を除く上側の領域、例えば、タッチダウン位置が図9(a)の領域901であった場合である。S502において、システム制御部50は、顔領域を焦点検出領域として設定する。
S503では、システム制御部50は、人物のカメラから向かって右側の瞳がタッチダウンによって選択されているか否か、すなわち、右側の瞳領域が焦点検出領域として手動で設定されているか否かを判定する。右側の瞳が選択されていると判定された場合、処理はS504に進み、選択されていないと判定された場合、処理はS507に進む。S504では(右側の瞳が選択中の場合)、システム制御部50は、人物のカメラから向かって左側の瞳が検出されているか否かを判定する。S504で左側の瞳が検出されていると判定された場合、処理はS505に進み、左側の瞳が検出されていないと判定された場合、処理はS506へ進む。
S505において、システム制御部50は、左側の瞳領域を焦点検出領域として設定して、本フローを終了する。S506では、システム制御部50は、顔領域を焦点検出領域として設定し、本フローを終了する。本フローを終了すると図4の焦点検出領域の手動設定処理も終了し、処理は図2のS205に遷移する。
S507では(左側の瞳が選択中の場合)、システム制御部50は、人物のカメラから向かって右側の瞳が検出されているか否かを判定する。右側の瞳が検出されていると判定された場合、処理はS508に進み、右側の瞳が検出されていると判定されなかった場合、処理はS506へ進む。S508において、システム制御部50は、右側の瞳領域を焦点検出領域に設定して本フローを終了する。S506の処理は、上述したとおりである。
次に、図6を用いて正面顔(非選択)の焦点検出領域設定処理(S417)について説明する。正面顔(非選択)の焦点検出領域設定処理は、人物の顏または瞳が焦点検出領域として選択されていない場合で、正面顔の人物の領域がタッチダウンされた場合に焦点検出領域を設定する処理である。
S601において、システム制御部50は、タッチダウン位置が顔領域の下半分かどうかを判断する。例えば、図9(b)において、領域910が顔の下半分の領域である。S601において、タッチダウン位置が顔領域の下半分であると判定された場合、処理はS602に進み、タッチダウン位置が顔領域の下半分であると判定されなかった場合、処理はS603へ進む。タッチダウン位置が顔領域の下半分であると判定されない場合とは、例えば、図9(b)における領域911または領域912がタッチダウンされたと場合である。S602において、システム制御部50は、顔領域を焦点検出領域として設定し、本フローを終了する。本フローを終了すると図4に示される焦点検出領域の手動設定処理も終了し、処理は図2のS205に遷移する。
S603では、システム制御部50は、人物のカメラから向かって左側の領域がタッチダウンされているかどうか、例えば、図9(b)において領域911がタッチダウンされているかどうかを判断する。顔の左側の領域がタッチダウンされていると判定された場合、処理はS604に進み、顔の左側の領域がタッチダウンされていないと判定された場合(顔の右側の領域がタッチダウンされている場合)、処理はS607に進む。以上、S601、S603の処理は、ユーザーの指定位置により特定される顔の左側の瞳を選択するための左側領域(図9(b)の領域911)と右側の瞳を選択するための右側領域(図9(b)の領域912)を設定することと等価である。
S604では、システム制御部50が、人物のカメラから向かって左側の瞳が検出されているか否かを判定する。S604で左側の瞳が検出されていると判定された場合、処理はS605に進み、左側の瞳が検出されていないと判定された場合、処理はS606へ進む。S605において、システム制御部50は、左側の瞳領域を焦点検出領域として設定して本フローを終了する。S606において、システム制御部50は顔領域を焦点検出領域として設定して本フローを終了する。
S607において、システム制御部50は、人物のカメラから向かって右側の瞳が検出されているか否かを判定する。右側の瞳が検出されていると判定された場合、処理はS608に進み、右側の瞳が検出されていないと判定された場合、処理はS606に進む。S608において、システム制御部50は、右側の瞳領域を焦点検出領域として設定し、本フローを終了する。S606の処理は上述したとおりである。
次に図7を用いて斜め顔(非選択)の焦点検出領域設定処理(S415)について説明する。斜め顔(非選択)の焦点検出領域設定処理は、人物の顏または瞳が焦点検出領域として選択されていない場合で、かつ、正面を向いていない人物の領域にタッチダウンされた場合に焦点検出領域を設定する処理である。
S701において、システム制御部50はタッチダウン位置が顔領域の下半分かどうかを判定する。例えば、図9(c)において、近傍範囲(領域933)における領域920および領域924が顔の下半分の領域である。S701において、タッチダウン位置が顔領域の下半分であると判定された場合、処理はS702に進み、他の場合、処理はS705へ進む。S705において、システム制御部50はタッチダウン位置から最も近い顏の左右両方の瞳を検出したかどうかを判定する。左右両方の瞳を検出したと判定された場合、処理はS706へ進み、左右両方の瞳を検出したと判定されなかった場合、処理はS702に進む。
S702において、システム制御部50はタッチダウン位置が顔領域内かどうかを判定する。タッチダウン位置が顔領域内であると判定された場合、処理はS703に進み、他の場合、処理はS704へ進む。S703において、システム制御部50は、タッチダウン位置の顏領域を焦点検出領域に設定し、本フローを終了する。顔領域域内であると判断する領域は、例えば、図9(c)において領域920である。本フローを終了すると図4の焦点検出領域の手動設定処理も終了し、処理は図2のS205に遷移する。S704において、システム制御部50はタッチダウン位置に対して画像処理部24で物体検出を行い、検出された物体の領域を焦点検出領域に設定し、本フローを終了する。
S706において、システム制御部50は、左右の瞳の選択の境界を左右瞳の中央に設定する。図9(c)の線925は、左右の瞳の選択の境界の設定例である。S707でシステム制御部50はタッチダウン位置から最も近い顔が主顔かどうかを判断する。主顔と判定された場合、処理はS713に進み、主顔と判定されなかった場合、処理はS708に遷移する。
S708でシステム制御部50はタッチダウン位置が顔領域内であるかどうかを判定する。タッチダウン位置が顔領域内であると判定された場合、処理はS710へ進み、その他の場合、処理はS709に進む。S709では、システム制御部50はタッチダウン位置に対して画像処理部24で検出を行い、検出された物体の領域を焦点検出領域に設定し、本フローを終了する。
S710において、システム制御部50はタッチダウン位置がS706で決定した境界よりも左側にあるかどうか、つまり図9(c)に示す領域921にあるかどうかを判定する。タッチダウン位置が境界よりも左側(領域921)にあると判定された場合、処理はS711に進み、他の場合、すなわち、タッチダウン位置が境界よりも右側(領域922)にあると判定された場合、処理はS712に進む。タッチダウン位置が境界よりも右側にある場合とは、図9(c)の例の場合、タッチダウン位置が領域922にあると判定された場合である。S711において、システム制御部50は、左側の瞳領域を焦点検出領域として設定し、本フローを終了する。また、S712では、システム制御部50は、右側の瞳領域を焦点検出領域として設定して本フローを終了する。以上のように、システム制御部50は、ユーザーの指定位置により特定される顔の左側の瞳を選択するための左側領域と右側の瞳を選択するための右側領域を、それぞれ当該顔領域に収まるように設定する(S701、S710)。そして、システム制御部50は、ユーザーの指定位置が左側領域または右側領域に存在する場合に、対応する瞳の瞳領域を焦点検出領域として選択する(S711、S712)。なお、
S713では、システム制御部50がタッチダウン位置から最も近い顔の瞳に対して端側の瞳を決定する。端側の瞳とは左右の瞳のうちより顔領域の端にある瞳の事である。端側の瞳の決定方法としては、顔の領域と左右の瞳位置から顔の領域の端に近い方の瞳を端側の瞳として決定すればよい。もちろん、これに限られるものではなく、例えば、S706で決めた左右の瞳選択の境界に基づいて領域の狭い方の瞳を端側の瞳として決定してもよい。あるいは、顔の振り向き角度ごとのテンプレート情報と顔画像を比較することで顔の振り向き角度を求め、求めた振り向き角度からカメラから見て奥側にある瞳が端側にあると推測するようにしてもよい。
S714において、システム制御部50は、端側の瞳の信頼度を求め、これが閾値A以上かどうかを判定する。瞳の検出結果の信頼度とは、瞳検出において検出された瞳の確からしさを示す度合いを示す数値(評価値とも称する)であり、数値が高ければ検出された瞳の確からしさが高くなる。
瞳の信頼度の算出方法として、例えば検出できた器官のパーツ数による信頼度と画像に含まれるノイズ成分による信頼度を求めてそれらを足し合わせたものを最終的な信頼度とする。検出できた器官のパーツ数による信頼度は、器官を複数のパーツに分け、検出できたパーツの数から信頼度を算出する。各々のパーツの検出は、検出する器官に応じたパーツ検出領域を設定し、画像処理部24の内部に保存してあるパーツのテンプレートと一致している領域がパーツ検出領域内に存在すると破断した場合はパーツが検出されたものとする。1つの器官に対して検出できたパーツの数に応じて器官検出の信頼度を算出する。例えば器官を瞳として検出した場合、目の虹彩、目頭、目尻、まぶた上部、まぶた下部、など複数のパーツに分けて検出できたパーツが多いほど信頼度が高くなる。
また、画像に含まれるノイズ成分による信頼度は、器官検出領域の画像のノイズ成分を抽出してノイズが少ないと判断した場合は信頼度を高く設定しノイズが多いと判断した場合は信頼度を低く設定する。ノイズ成分の抽出方法としては、検出領域のオリジナル画像に対して検出領域のオリジナル画像にローパスフィルターをかけた画像を減算し、減算された画像の差の絶対値を取る方法などがある。
なお、器官検出の信頼度の算出には、他の方法が用いられてもよい。例えば、器官だと判断した領域に対して輝度ヒストグラムを取り、画像処理部24内部に保存してある器官のテンプレートの輝度ヒストグラムとの一致度を算出することによって信頼度を算出するようにしてもよい。あるいは、器官であるとは判断された領域からエッジ情報を抽出し、エッジ量から信頼度を算出するようにしてもよい。また、複数の方法を加味して信頼度を算出してもよい。例えば、閾値Aは、ノイズ成分は考慮せず器官のパーツがすべて検出できる閾値を目安に設定する。
S714で、端側の瞳の信頼度が閾値A以上であると判定された場合、処理はS715へ進み、端側の瞳の信頼度が閾値A以上であると判定されなかった場合、処理はS708に進む。S708以降の処理は上述したとおりである。
S715では、システム制御部50は、端側の瞳が焦点検出領域であると判定するための、タッチダウン位置の領域を広げる。例えば、図9(d)の領域932に示すように、端側の瞳である右側の瞳を焦点検出領域であると判定するタッチダウン位置の領域を顔領域の外側に広げる。左右瞳の中心から顔領域右端にかけての領域の水平サイズWL_Rに対し、B倍して顔領域の外の背景側を含むように領域を拡大する。以上のように、システム制御部50は、所定条件を満たす場合に、特定された顔の端(顔の領域の境界)に近い方の瞳を選択するための領域を拡張する。ここで、所定条件は、特定された顔が主被写体となる条件を満たしていること(S707)と、特定された顔の境界に近い方の瞳の、瞳としての検出の信頼度が所定値以上であること(S714)である。また、本実施形態では、所定条件として、特定された顔およびその瞳のいずれもが、焦点検出領域として選択されていないこと(S409)、特定された顔が正面顔でないこと(S414)を含む。
以上のように、システム制御部50は、瞳を選択するための領域の拡張を行わない場合、図9(c)に示すように左側領域(領域921)と右側領域(領域922)の双方を検出された顔の大きさに基づく顔領域に収まるように設定する(S711、S712)。他方、瞳を選択するための領域の拡張を行う場合、システム制御部50は、図9(d)に示されるように、拡張対象の領域を顔領域の外側へ向かって拡張する。
S716において、システム制御部50は、タッチダウン位置がS715で拡大された領域内かどうかを判定する。例えば、タッチダウン位置が、図9(d)における領域932内であるかどうかを判定する。タッチダウン位置がS715で拡大した領域内であると判定された場合、処理はS717に進み、そうでない場合、処理はS718へ進む。S717において、システム制御部50は、端側の瞳領域を焦点検出領域として設定して本フローを終了する。
S718において、システム制御部50はタッチダウン位置が顔領域内かどうかを判定する。これは、例えば、図9(d)において、領域931の領域内かどうかの判定となる。S718でタッチダウン位置が顔領域内と判定された場合、処理はS719に進み、タッチダウン位置が顔領域内と判定されなかった場合、処理はS720へ進む。S719において、システム制御部50は中央側、つまり端側とは逆の瞳領域を焦点検出領域として設定して本フローを終了する。S720において、システム制御部50はタッチダウン位置に対して画像処理部24で物体検出を行い、検出された物体の領域を焦点検出領域に設定し、本フローを終了する。
次に図10を用いて斜め顔(選択中)の焦点検出領域設定処理について説明する。斜め顔(選択中)の焦点検出領域設定処理は、人物の顏または瞳が焦点検出領域として選択されていない場合で正面を向いていない人物の領域にタッチダウンした場合に焦点検出領域を設定する処理である。
S1001において、システム制御部50はタッチダウン領域が顔領域の下半分かどうかを判断する。例えば、図9(c)において、領域920および領域924が顔の下半分の領域である。S1001において、タッチダウン領域が顔領域の下半分であると判断された場合、処理はS1002へ進み、タッチダウン領域が顔領域の下半分ではないと判断された場合、処理はS1005へ進む。
S1002において、システム制御部50はタッチダウン領域が顔領域内かどうかを判断する。顔領域内と判断される領域は、図9(c)における領域920である。S1002において顔領域内であると判断された場合、処理はS1003に進み、タッチダウン領域が顔領域内ではないと判断された場合、処理はS1004に進む。S1003において、システム制御部50は、タッチダウン位置の顏領域を焦点検出領域として設定し、本処理を終了する。また、S1004において、システム制御部50はタッチダウンした位置に対して画像処理部24で物体検出を行い、検出された物体を被写体として焦点検出領域に設定して本処理を終了する。本処理を終了すると図4の焦点検出領域の手動設定処理も終了し、図2のS205に遷移する。
S1005において、システム制御部50はタッチダウンした位置から最も近い顏の左右両方の瞳を検出したかどうかを判定する。S1005において左右両方の瞳を検出したと判断された場合、処理はS1006へ進み、左右両方の瞳を検出していないと判断された場合、処理はS1002に進む。S1002以降の処理は上述したとおりである。S1006において、システム制御部50は、左右の瞳の選択の境界を左右の瞳の中央に設定する。左右の瞳の選択の境界の例を図9(c)の線925に示す。
S1007において、システム制御部50はタッチダウンした位置から最も近い顔が主顔かどうかを判断する。S1007において主顔と判断された場合、処理はS1013に進み、主顔と判断されなかった場合、処理はS1008に進む。S1008で、システム制御部50はタッチダウン位置が顔領域内であるかどうかを判断する。S1008で顔領域内であると判断された場合、処理はS1010に進み、顔領域内であると判断されなかった場合、処理は、S1009に進む。
S1009において、システム制御部50はタッチダウンした位置に対して画像処理部24で検出を行い、検出された物体の領域焦点検出領域に設定し、本処理を終了する。S1010において、システム制御部50は、タッチダウン位置がS1006で決定した境界よりも左側にあるかどうか、つまり図9(c)に示す領域921にあるかどうかを判断する。タッチダウン位置が境界よりも左側にあると判断された場合、処理はS1011に進み、そうではない場合、処理はS1012に進む。S1011において、システム制御部50は、左側の瞳領域を焦点検出領域に設定し、本処理を終了する。S1012では、システム制御部50は、図9(c)に示す領域922がタッチダウンされたものと判断し、右側の瞳領域を焦点検出領域に設定して本処理を終了する。以上のS1008~S1012の処理は、上述したS708~S712と同様の処理である。
S1013では、システム制御部50は、タッチダウン位置から最も近い顔の瞳に対して端側の瞳を決定する。端側の瞳とは左右の瞳のうちより顔領域の端にある瞳の事である。例えば、システム制御部50は、顔の領域と左右の瞳位置から顔の領域の端に近い方の瞳を端側の瞳として決定する。なお、端側の瞳の決定方法はこれに限られるものではない。例えば、S1006で決めた左右の瞳選択の境界に基づいて領域の狭い方の瞳を端側の瞳として決定してもよい。或は、顔の振り向き角度ごとのテンプレート情報と顔画像を比較することで顔の振り向き角度を求めて振り向き角度からカメラから見て奥側にある瞳を端側の瞳に決定するようにしてもよい。
S1014において、システム制御部50は端側と逆側の瞳がユーザーによって既に選択されているかどうかを判定する。S1014で既に選択されていると判断された場合、処理はS1015へ進み、既に選択されていると判断されなかった場合、処理はS1008に進む。S1015において、システム制御部50は端側の瞳の信頼度を求め、これが閾値A以上かどうかを判断する。瞳の検出の信頼度については、S714において上述したとおりである。S1015で信頼度が閾値A以上と判断された場合、処理はS1016へ進み、信頼度が閾値A以上と判断されなかった場合、処理はS1008へ進む。S1008以降の処理は上述したとおりである。
S1016以降では、システム制御部50は、タッチダウンにより端側の瞳を焦点検出領域であると判断する領域を広げた上で、タッチダウン位置との関係から焦点検出領域を設定する。S1016~S1021の処理は、図7のS715~S720の処理と同様である。
以上説明したように、上記実施形態によれば、被写体の顔が主被写体の場合は瞳選択を行いやすくすることでユーザーが適切に焦点検出領域を選択することが可能となる。すなわち、ユーザーが瞳を焦点検出領域として選択する可能性が高い場合に瞳領域として反応する領域を広げることで、従来よりもユーザーの意図を組みとった焦点検出領域の設定が可能になる。
なお、上記実施形態では、図4のS112(図5)で、タッチダウン位置が正面顔の領域内であった場合に、顔領域の下半分へのタッチダウンにより常に顔が選択され、顔領域の上半分へのタッチダウンが繰り返されると右目と左目が交互に選択される。しかしながら、これに限られるものではない。例えば、タッチダウン位置が正面顔の領域内であった場合に、その位置が下半分であるか上半分であるかに関わらず、タッチダウンが繰り返されると、顔→右目→左目→顔のように焦点検出領域が順次に切り替わるようにしてもよい。図11は、正面顔(選択中)の焦点検出領域設定処理の他の例を示すフローチャートであり、タッチダウンに応じて顔→右目→左目→顔のように焦点検出領域を順次に切り替える処理を示す。図11に示した処理は、図4のS412の処理を詳述するものであり、図5に示した処理に置き換わるものである。
S521において、システム制御部50は、人物の顔がタッチダウンによって選択されているか否か、すなわち、顔が焦点検出領域として手動で設定されているか否かを判定する。S521において顔が選択されていると判定されると、処理はS522に進む。S522において、システム制御部50は、人物のカメラから向かって右側の瞳が検出されているか否かを判定する。右側の瞳が検出されていると判定された場合、処理はS523に進み、システム制御部50は、右側の瞳領域を焦点検出領域に設定する。一方、S522において右側の瞳が検出されていないと判定された場合、処理はS525へ進む。
S521において、人物の顔が選択中ではないと判定された場合、処理はS524へ進む。S524において、システム制御部50は、人物のカメラから向かって右側の瞳がタッチダウンによって選択されているか否か、すなわち、右側の瞳領域が焦点検出領域として手動で設定されているか否かを判定する。右側の瞳領域が焦点検出領域として選択されていると判定された場合、処理はS525へ進む。S525において、システム制御部50は、人物のカメラから向かって左側の瞳が検出されているか否かを判定する。左側の瞳が検出されていると判定された場合、処理はS5526に進み、システム制御部50は、左側の瞳領域を焦点検出領域に設定する。一方、S525において左側の瞳が検出されていないと判定された場合、処理はS527へ進む。S524において、右側の瞳が選択中ではないと判定された場合も、処理はS527へ進む。S527において、システム制御部50は、顔領域を焦点検出領域に設定する。
以上のように、図11に示した処理によれば、顔領域へのタッチ操作に応じて、焦点検出領域が、顔→右側の瞳領域→左側の瞳領域の順に切り替わる。すなわち、顔領域の全体が、顔の選択領域→右側の瞳領域の選択領域→左側の瞳の選択領域の様に切り替わることになる。このような構成によれば、狭い領域へのタッチをしなくてすみ、広い顔領域をタッチすることで右目、左目、顔を、より確実に指定できる。なお、顔→右側の瞳領域→左側の瞳領域の順番において、右側の瞳あるいは左側の瞳が検出されていない場合は、スキップされる。例えば、右側の瞳が検出されていない場合は、タッチ操作に応じて焦点検出領域が顔→左側の瞳領域の順に切り替わることになる。また、切り替えの順番は、顔→右側の瞳領域→左側の瞳領域に限られるものではなく、例えば、顔→左側の瞳領域→右側の瞳領域であってもよいことは明らかである。
なお、システム制御部50は、上述した処理によって焦点検出領域に設定された領域を示す枠(AF枠)を表示部28の表示画面に表示する(ライブビュー画像に重畳表示する)枠表示処理を行ってもよい。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、選択した領域が顏かどうかの判断において、顏の下半分のタッチダウンを検出した時に顏を焦点検出領域としたが、顔の半分でなくても構わない。また、焦点検出領域の手動設定処理で縦方向の顔の振り向き角度をみて斜め顔かどうか判定しても構わないし、斜め顔の焦点検出領域設定処理において端側の瞳が選択される領域を垂直方向に拡大しても構わない。また、上記実施形態では、焦点検出領域の設定を目的として領域選択を行っているが、これに限られるものではない。例えば、露出測定のための領域の設定を目的としたものであってもよい。
なお、システム制御部50が行うものとして説明した上述の各種制御は1つのハードウェアが行ってもよいし、複数のハードウェア(例えば、複数のプロセッサーや回路)が処理を分担することで、装置全体の制御を行ってもよい。
また、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
また、上述した実施形態においては、本発明を撮像装置に適用した場合を例にして説明したが、これはこの例に限定されるものではない。例えば、追尾枠や検出枠の表示に関しては、撮影された画像を表示する機能と画像上の位置を指定する機能を有した電子機器であれば適用可能である。例えば、撮影済みの画像を再生して顔、目、口、鼻を検出し、赤目補正する目を選ぶのか、別の理由で顔を選ぶのか(例えば人物名を入力する)といった際のタッチ操作に適用可能である。他にも、顔または器官を選択して行う処理としては次のようなものがある。顔全体または目を選択してモザイクまたはマスクをかける、目を選択して瞳の強調処理(大きくするなど)を行う、鼻を選択して大きく強調する画像処理を施す、顔全体または頬などを選択して美肌効果の画像処理を施す。口を選択して唇の赤みを強調する、光沢を付けるなどの画像処理を掛ける。これらのような場合の顔の器官の選択方法として、LV画像の変わりに、記録済み画像を対象として上述の処理を適用可能である。また、AF枠の表示に関しても、撮像機能がある各種電子機器に適用可能である。すなわち、本発明は、パーソナルコンピュータやPDA、携帯電話端末や携帯型の画像ビューワ、ディスプレイを備えるプリンタ装置、デジタルフォトフレーム、音楽プレーヤー、ゲーム機、電子ブックリーダー、シール印刷システムなどに適用可能である。
また、上記実施形態ではタッチパネルへのタッチ操作により表示画面上の領域を指定したがこれに限られるものではなく、例えば、マウスによるマウスポインタの操作により画面上の領域(顔領域や瞳領域)を指定するようにしてもよい。また、上記実施形態では、追尾対象の器官として瞳を例示したが、これに限られるものではなく、例えば、鼻、口などの他の器官を追尾対象(AF対象)として指定可能としてもよい。例えば、口を追尾対象(AF対象)とする場合、顔領域を上下方向に半分に分け、下領域を口、上領域を顔というように関連づければよい。
また、撮像装置本体に限らず、有線または無線通信を介して撮像装置(ネットワークカメラを含む)と通信し、撮像装置を遠隔で制御する制御装置にも本発明を適用可能である。撮像装置を遠隔で制御する装置としては、例えば、スマートフォンやタブレットPC、デスクトップPCなどの装置がある。制御装置側で行われた操作や制御装置側で行われた処理に基づいて、制御装置側から撮像装置に各種動作や設定を行わせるコマンドを通知することにより、撮像装置を遠隔から制御可能である。また、撮像装置で撮影したライブビュー画像を有線または無線通信を介して受信して制御装置側で表示できるようにしてもよい。また、撮像装置で撮影したライブビュー画像を有線または無線通信を介して受信して制御装置側で表示できるようにしてもよい。その場合、そのような制御装置は撮像装置のAF機構を制御するAF制御を実行することになる。すなわち、図5A、図5Bにより上述したAF処理は、撮像装置などの外部装置が有するAF機構を制御するためのAF制御であってもよい。
(他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。