(実施形態)
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて説明する。図1は、本発明を実施した撮像装置の第1実施形態であるデジタルカメラ(以下、単にカメラと称す)100の構成を説明するブロック図である。本実施形態のカメラ100は、後述する撮像素子102などを備えたカメラ本体と、当該カメラ本体の内部へと被写体の光学像を導く撮像レンズ群を備えたレンズユニット101とが一体的に設けられた所謂レンズ一体型の撮像装置である。なお、カメラ100としては、レンズユニット101とカメラ本体とが、それぞれ別々に設けられた所謂レンズ交換型の撮像装置であってもよい。
図1に図示するレンズユニット101は、ズームレンズ、フォーカスレンズ、シフトレンズ、絞りなどを備えた光学部材である。例えば、フォーカスレンズの光軸方向の進退移動により焦点調節を行うことができる。なお、上述したレンズ群および絞りは不図示とする。
撮像素子102は電荷蓄積型の固体撮像素子であって、レンズユニット101を介して入射した光束(被写体の光学像)を光電変換(撮像)してアナログ画像信号(アナログ画像データ)を生成する撮像手段である。なお、撮像素子102としては、所謂ベイヤー配列のCMOSイメージセンサを採用する。また、撮像素子102は、位相差検出画素が設けられており、画像信号(画像データ)と位相差信号(位相差データ)とを同一の画素で取得することができる。撮像素子102の構成については、図2を参照して後述する。
撮像素子102から出力されたアナログ画像データは、AFE(Analog Front End)103によってデジタル画像データに変換される。そして、当該デジタル画像データは、DFE(Digital Front End)104に入力され、所定の演算処理が施される。
DSP(Digital Signal Processer)105は映像信号処理部であって、DFE104から出力されたデジタル画像データに対して、種々の処理を施す。DSP105が、デジタル画像データに対して実行する処理としては、WB調整処理、色マトリックス変換処理、輝度信号生成処理、エッジ強調処理、RGB変換処理、階調処理、色輝度信号変換処理などの画像処理および現像処理などである。
具体的に、DSP105は、DFE104から出力されたデジタル画像データに対して、所定のホワイトバランス(WB)補正値を用いたWB補正処理を実行する。次に、DSP105は、WB補正処理が施されたデジタル画像データに対して、色ゲインをかけて色差信号に変換する色マトリックス処理を実行する。また、DSP105は、WB補正処理が施されたデジタル画像データに基づいて、当該デジタル画像データの輝度信号を生成する輝度信号生成処理を実行する。なお、生成された輝度信号に対してエッジ強調処理を施し、対応するデジタル画像データの輪郭情報を取得してもよい。次に、DSP105は、所定の処理が施された色差信号と上述した輝度信号をRGB信号に変換するRGB変換処理を実行する。次に、DSP105は、変換されたRGB信号に対して階調補正を施した後に、当該RGB信号を色輝度信号(YUV)に変換する色輝度変換処理を実行する。
その後、DSP105は、上述した種々の処理が施されたデジタル画像データをRAM(Random Accses Memory)106に一時記録、およびメインメモリ107に記録する。また、DSP105は、上述した種々の処理が施されたデジタル画像データを、カメラ100に対して着脱可能な記録媒体108に記録させることもできる。なお、DSP105は、上述した種々の処理が施されたデジタル画像データを、表示用のアナログ画像データに変換し、表示部109に表示させることもできる。以上が、DSP105が実行する画像処理および現像処理である。
なお、以降の説明では、測光演算のよって取得される画像の輝度値を、上述した輝度信号を8ビットの256階調(0〜255)のレベルで表すが、これ以外の表し方を採用するようなものであってもよい。
また、DSP105の内部には、距離情報取得回路105aとグループ化回路105bが設けられている。距離情報取得回路105aは、DFE104から出力された画像データに対応する位相差データに基づいて、当該画像データに関する距離情報を取得する距離情報取得手段である。以下、画像データに関する距離情報を取得する処理を距離情報取得処理と称す。
本実施形態では、上述した距離情報として、撮像素子102から出力される画像データに基づく撮像画面を複数に分割した領域(以下、分割領域と称す)ごとに、被写体までの距離(被写体距離)に関する距離マップを生成する。したがって、本実施形態のカメラ100は、画像(画像データ)内の分割領域ごとに被写体距離を取得することができる。
なお、本実施形態では分割領域ごとの距離情報として距離マップを取得するような構成であるが、これに限定されるものではない。上述した距離情報としては、少なくとも、撮像によって撮像素子102から出力される画像データおよび当該画像データに基づく撮像画面において、分割領域ごとに被写体距離に関する情報であればよい。
また、グループ化回路105bは、DFE104から出力された画像データを上述した分割領域と同様に分割し、同一の被写体に対応する分割領域ごとに、画像データに含まれる分割領域を区分け(グループ分け)するグループ化手段である。以下、同一の被写体に対応する分割領域をグループ分け(分割領域を同一の被写体ごとにグループ分け)する処理を領域グループ化処理と称す。距離情報取得処理および領域グループ化処理に係る各処理の詳細は後述する。
表示部109は、TFT型LCD(薄膜トランジスタ駆動型液晶表示器)を採用した表示手段である。なお、表示部109として、有機EL素子(有機エレクトロルミネッセンス素子)などを採用する構成であってもよい。
カメラ制御部110は、カメラ100を構成する各部の動作を統括的に制御する制御手段であって、CPUなどの制御処理回路等を備えている。カメラ制御部110には、AFE103、DFE104、DSP105、RAM106、メインメモリ107、TG111、撮像制御部112、発光制御回路114が接続されている。なお、カメラ制御部110は、後述するストロボ113の発光量を算出する処理(以下、調光演算処理と称す)を行う調光演算手段でもある。この詳細については後述する。
TG111は、撮像素子102に駆動信号を供給するタイミングジェネレータ(タイミング発生部)である。撮像制御部112は、レンズユニット101を構成する各部の駆動を制御する制御手段である。
以上説明した、TG111および撮像制御部112の動作は、カメラ制御部110からの指示に基づいて実行される。すなわち、カメラ制御部110は、撮像素子102の電荷蓄積時間、レンズユニット101に含まれる絞りの開度、シャッター(不図示)の動作タイミングなどを制御し、被写体を撮像するための適正な露出量(明るさ)を設定することができる(AE制御)。また、カメラ制御部110は、レンズユニット101のフォーカスレンズ(不図示)の駆動を制御して、合焦領域内にある被写体に合焦させることができる(AF制御)。
ストロボ113は、発光部(不図示)、充電部(不図示)を備えた発光手段である。そして、発光制御回路114は、ストロボ113の発光に係る種々の制御を実行する発光制御手段である。なお、本実施形態のストロボ113は、カメラ100と一体的に設けられた内蔵式の発光手段であるが、これに限定されるものではない。例えば、ストロボ113として、カメラ100と通信可能な外付け式の発光手段を採用するような構成であってもよい。
上述した発光制御回路114の動作はカメラ制御部110からの指示に基づいて実行される。カメラ制御部110は、ストロボ113の発光量および発光時間を制御して、撮像素子102の露光タイミング(被写体の撮像)に合わせて、所定の発光量でストロボ113を発光させるように発光制御ができる。
ここで、カメラ100による、ストロボ113の発光を伴った撮像動作(以下、発光撮像と称す)の概要について説明する。まず、ユーザによる撮像準備指示(例えば、レリーズボタン(不図示)の半押し)に応じて、測光演算用の画像データが取得される。なお、測光演算用の画像データは撮像素子102を用いて取得される。
次に、当該画像データに基づいて測光演算、AE制御およびAF制御が実行され、被写体を撮像する際の露出量やレンズユニット101の駆動量が設定される。
次に、測光演算の結果に基づき、ストロボ113を発光させると判定された場合、ユーザによる撮像指示(例えば、レリーズボタンの全押し)に応じて、距離情報取得処理、領域グループ化処理、調光演算処理が実行される。なお、ストロボ113の発光判定および上述した各処理の詳細は後述する。
最後に、撮像素子102の本露光に合わせて、調光演算処理で算出された本発光量でストロボ113を発光させる。以上が、本実施形態のカメラ100の基本的な構成である。
次に、本実施形態の撮像素子102の構成について、図2〜3を参照して詳細に説明する。図2は、本発明の第1実施形態に係る撮像素子102の画素配置を示す模式的に示す図である。
図2において、撮像素子102は、複数の単位画素部200が行列状(2次元)に配列され、複数の単位画素部全体に対してR(Red)/G(Green)/B(Blue)のカラーフィルタがベイヤー状に配置されている。また、単位画素部200内にはそれぞれ半画素部a、半画素部bが配置されており、図中の201a、201bは、それぞれ単位画素部200の半画素部のフォトダイオード(以下、PDと称す)を示している。半画素部a、bの各々の画像信号は焦点検出に利用され、半画素部a、半画素部bの画像信号を加算したa/b合成信号は画像データの生成に用いられる。
図3は、本発明の第1実施形態に係る、レンズユニット101の射出瞳を通過する光束と単位画素部200との関係を示した模式的に示す図である。なお、図3において、図2と同一部分には同じ符号を付す。
図3において、単位画素部200上には、カラーフィルタ301、マイクロレンズ302がそれぞれ形成されている。なお、図3において、マイクロレンズ302を有する単位画素部200に対して、射出瞳303を通過した光束の中心を光軸304で示す。射出瞳303を通過した光束は、光軸304を中心として単位画素部200に入射する。
射出瞳303は、マイクロレンズ302を介して、半画素部201aで受光される光が通過する第1領域305と、半画素部201bで受光される光が通過する第2領域306に分けられる。すなわち、半画素部201aと半画素部201bは、それぞれレンズユニット101の射出瞳303の異なる領域の光を受光する。したがって、半画素部201aと半画素部201bからは、それぞれ別々の信号(像信号波形)が出力される。
上述した射出瞳303と単位画素部200の各半画素部との関係性は、撮像素子102を構成する他の単位画素部についても同様である。したがって、本実施形態のカメラ100は、撮像素子102の単位画素部ごとに、それぞれ別々の像信号波形の組を取得できる。そして、本実施形態のカメラ100は、当該像波形信号同士のズレ量に基づいて、位相差方式の焦点検出が可能となる。
なお、当該像波形信号同士のズレ量が、撮像素子102を構成する単位画素部ごとの焦点のずれ量(デフォーカス量)であって、前述した位相差データに該当する。以上説明したデフォーカス量(位相差データ)は、撮像素子102から出力された画像信号に基づいて、DSP105により検出される。
そして、DSP105で検出したデフォーカス量に基づき、カメラ制御部110がレンズユニット101のフォーカスレンズの駆動を制御することで、被写体に対する焦点調節が可能となる。
ここで、図4を参照して、前述した距離情報取得処理について説明する。図4は、本発明の第1実施形態に係る距離マップの取得方法を例示的に説明する図である。図4(a)は、撮像素子102を用いて取得された画像データ(以下、単に画像と称す)を例示的に説明する図である。以降は、図4(a)に図示する画像を、撮像素子102を用いて取得した画像データとして説明する。
図4(a)に図示する画像に含まれる被写体としては、カメラ100から近い順に看板、木および家が位置している。また、図4(a)に図示する画像には、上述した以外の被写体としてカメラ100から遠ざかる方向に被写体距離が変化している通路が存在している。
DSP(領域分割手段)105は、撮像素子102を用いて取得した画像を図4(a)に図示するように、複数の領域(分割領域)に分割する。なお、本実施形態では、取得した画像を水平方向に7ブロック、垂直方向に9ブロックに分割する例について説明するが、分割領域の分割数、大きさや形はどのようものを採用してもよい。
次に、距離情報取得回路105aは、分割領域ごとに被写体距離に関する情報を設定する。具体的に、距離情報取得回路105aは、撮像素子102から出力された位相差データ(デフォーカス量)を被写体距離に変換する。そして、距離情報取得回路105aは、各画素の被写体距離を平均化して分割領域ごとの被写体距離を算出し、算出した被写体距離を対応する分割領域ごとに設定する。当該処理を全ての分割領域で実行することで、取得した画像に関する距離マップを取得することができる。
図4(b)は、上述した処理を実行することで取得した距離マップを例示的に説明する図であって、分割領域ごとに被写体距離がメートル単位で設定されている。なお、本実施形態では、上述した被写体距離を、撮像素子102から対応する被写体までの距離とするが、これに限定されるものではない。例えば、カメラ100を構成する所定の部材から被写体までの距離を被写体距離としてもよい。当該被写体距離としては、少なくとも、画像に含まれる被写体までの距離に関する情報であればよい。
次に、本実施形態における領域グループ化処理について説明する。まず、グループ化回路105bは、取得した画像を前述した分割領域に分割し、当該分割領域ごとの輝度値を比較する。なお、輝度値の算出のための測光演算の詳細については後述する。
次に、グループ化回路105bは、取得した分割領域ごとの輝度値に基づき、互いに隣接する分割領域のうち、隣接する分割領域同士の輝度値のレベル差が所定の範囲に収まる分割領域を検出する。そして、互いに隣接する分割領域のうち、輝度値のレベル差が所定の範囲に収まる分割領域を、同一の被写体に対応する分割領域とする。
なお、同一の被写体に対応する分割領域に該当する輝度値のレベルの差を、±10以外の所定の範囲に設定する構成であってもよい。また、隣接した分割領域のうち、輝度値のレベルが同一になる分割領域を、同一の被写体に対応する分割領域と判定するような構成であってもよい。
次に、グループ化回路105bは、互いに隣接する分割領域間での輝度値のレベル差が所定の範囲に収まる複数の分割領域が同一のグループとなるように、当該複数の分割領域をグループ化する。そして、取得した画像全体に当該グループ化を適用することで、画像に含まれる全ての分割領域が、輝度値のレベル差ごとにグループ分けされる。
次に、グループ化回路105bは、グループ化された分割領域のグループ内で、分割領域ごとに色輝度信号(YUV)を比較し、隣接する分割領域ごとの色の類似度を判定する。そして、色の類似度が所定のレベル以下となる分割領域を当該分割領域が含まれるグループから除外する。この処理をグループごとに実行することで、画像に含まれる同一の被写体ごとに、当該同一の被写体に該当する分割領域をグループ分けすることができる。
なお、本実施形態では、分割領域ごとの輝度値と色輝度信号に基づいて、画像に含まれる同一の被写体に該当する分割領域をグループ分けする構成について説明したが、これに限定されるものではない。例えば、上述した輝度値と色輝度信号以外に、DSP105で取得した被写体のエッジ情報を用いて、分割領域をグループ化するような構成であってもよい。本実施形態のカメラ100としては、分割領域ごとの、被写体の輝度に関する情報と被写体の色に関する情報と被写体の輪郭に関する情報と、の少なくとも1つに基づいて、同一の被写体に該当する分割領域をグループ分けするような構成であればよい。以上が本実施形態のカメラ100に係る領域グループ化処理である。
図5は、本発明の第1実施形態に係る領域グループ化処理について例示的に説明する図であって、濃い実線で示す各領域が被写体ごとのグループを示している。図5に図示する画像においては、通路に該当するグループ(第1のグループ)と、看板に該当するグループ(第2のグループ)と、それ以外の孤立したグループ(計26個)に分割領域がグループ分けされる。なお、複数の分割領域を含まないグループに該当する単一の分割領域(以下、単一領域と称す)としては、同一の被写体に該当する分割領域が1つのみの領域、または、領域グループ化処理において他の分割領域とのグループ化に失敗した領域である。
なお、本実施形態において、領域グループ化処理に用いる分割領域の数、大きさおよび形を、距離情報取得処理に用いた分割領域と同一とする構成であるが、これに限定されるものではない。例えば、領域グループ化処理と距離情報取得処理とで、分割領域の数や大きさ、形を異ならせる構成であってもよい。この場合、少なくとも、領域グループ化処理と距離情報取得処理とで、互いの分割領域同士が対応付けされればよい。
以上説明した領域グループ化処理は、取得した画像を構成する複数の分割領域のそれぞれが、画像内に存在するどの被写体に対応する領域であるかを検出する処理である。換言すると、領域グループ化処理により、画像を構成する分割領域をグループ分けすることで、画像に含まれる被写体を検出することができる。本実施形態では、当該領域グループ化処理を実行することで、画像に含まれる主要被写体に対応する分割領域と、主要被写体以外の被写体に対応する分割領域を検出できる。この詳細については後述する。
次に、ストロボ113に係る調光演算処理について説明する。本実施形態では、非発光時と予備発光時の輝度値の差分と、前述した距離マップに基づいて、被写体を本撮像する際のストロボ113の発光量(本発光量)を算出する。なお、本実施形態では、ストロボ113の発光判定において、ストロボ113を発光すると判定されている場合について説明する。
上述したストロボ113の発光判定としては、ユーザによる撮像準備指示に応じて、カメラ制御部110が被写体の輝度値を算出し(測光演算)する。その後、カメラ制御部110は、当該輝度値を予め決められた閾値と比較することで、ストロボ113の発光有無を判定する。
測光演算の方法としては、まず、ユーザの撮像準備指示に応じて取得した測光用の画像を複数の領域(分割領域)に分割する。そして、分割領域ごとに各単位画素部に対応した輝度値を平均化した平均輝度値を算出し、各領域の平均輝度値を積分することで代表輝度値を算出する。なお、測光演算に用いる分割領域は、前述した距離情報取得処理および領域グループ化処理の分割領域と同一である。
なお、上述した代表輝度値をAE制御に用いることで、被写体を撮像する際に当該被写体を適正な明るさとする露出量(適正露出量)を設定できる。また、ストロボ113を用いた発光撮像をおこなう場合、当該適正露出量として、ストロボ113の発光量を加味した値が設定される。また、上述した各分割領域の輝度値は、前述した領域グループ化処理に用いられる。
発光判定によりストロボ113を発光すると判定された場合、ユーザによる撮像指示に応じてカメラ制御部110は、ストロボ113を発光させずに調光用の画像(調光用非発光画像)を取得させる。その後、カメラ制御部110は、ストロボ113を予備発光させて調光用の画像(調光用予備発光画像)を取得させる。
なお、前述した距離情報取得処理および領域グループ化処理は、当該調光用非発光画像または調光用予備発光画像を用いて行われる。すなわち、本実施形態のカメラ100では、調光用の画像を取得した後に距離情報取得処理と領域グループ化処理が実行される。なお、距離情報取得処理と領域グループ化処理に用いる画像を調光用の画像とは異ならせ、調光用の画像の取得前に距離情報取得処理と領域グループ化処理を実行するような構成であってもよい。
ここで、後述する予備発光の反射光量の算出を容易にするために、調光用非発光画像を取得するための撮影時の露出量と、調光用予備発光画像を取得するための撮影時の露出量とは同一とする。なお、互いの露出量を同一にせず、後述する各調光用画像の輝度値の算出時に、互いの露出量の差分を補償するような構成であってもよい。
図6は、本発明の第1実施形態に係るカメラ100における予備発光の反射光量の算出方法を説明する図である。図6(a)は調光用非発光画像の分割領域ごとの輝度値を示す図であって、図6(b)は調光用予備発光画像の分割領域ごとの輝度値を示す図である。また、図6(c)はストロボ113を予備発光した際の被写体からの反射光量を示す図であって、反射光量を輝度値にして表わしている。
図6(a)、(b)に図示するように、カメラ制御部110は、取得した調光用非発光画像と調光用予備発光画像を複数の分割領域に分割し、分割領域ごとに輝度値を算出する。次に、カメラ制御部110は、調光用予備発光画像に係る各分割領域の輝度値と調光用非発光画像に係る各分割領域の輝度値の差分(差分輝度値)を算出する。この差分輝度値が、ストロボ113を予備発光したことによる被写体からの反射光量である。
次に、CPU(重み付け手段)110は調光用の重み付けデータ(設定値)を生成する。一般的に、ユーザが撮像を意図する主要被写体は、カメラ100からの距離が比較的近い位置に存在する確率が高い。そこで、本実施形態では、カメラ制御部110が、先に取得した距離マップに基づいて各分割領域の調光演算処理用の重み付け係数を設定し、主要被写体が適正な明るさで照明されるようなストロボ113の発光量を算出する。
なお、当該調光演算用の重み付け係数は、本実施形態の調光演算処理によって算出されるストロボ113の発光量の増減に関わる影響度であって、分割領域ごとに、被写体距離に応じた値が設定される。
図7は、本発明の第1実施形態に係るカメラ100の調光演算処理用の分割領域ごとの重み付け係数(調光重み付けデータ)を例示的に説明する図である。図7に図示するように、本実施形態の調光重み付けデータとしては、被写体距離が小さい(カメラ100からの距離が近い)分割領域ほど、重み付け係数を大きく設定される。以上説明した調光重み付けデータ(設定値)は、被写体距離に応じて予め設定されている値である。さらに、一般的に、画角内の略中央付近に主要被写体が存在している確率が高いため、画像内の最外周に該当する分割領域の重み付け係数を、最外周よりも1つ内側の領域に対して相対的に小さく設定する。
なお、本実施形態では、被写体距離に基づいて調光重み付けデータを設定するような構成であるが、調光重み付けデータの設定方法はどのようなものを採用してもよい。例えば、中央重点測光やスポット測光など、測光領域の位置に応じて調光重み付け係数を設定するような構成であってもよい。
以上説明したように、後述する距離グラデーション領域判定処理を実行する前に各分割領域に設定される調光重み付けデータはデフォルトの設定値であって、上述した被写体距離や測光領域の位置などに応じて予め設定されている値である。そして、当該設定値はメインメモリ107に格納されているものとする。
ここで、ストロボ113の本発光量としては、調光用非発光画像の明るさを、メインメモリ107等に予め記録されている目標輝度値と一致させる(近づける)ために必要なストロボ113の発光量を設定すれば良い。したがって、分割領域ごとの調光用の重み付け係数を、調光用非発光画像の対応する各分割領域の輝度値と掛けあわせて加重平均した値と目標輝度値との差分が、ストロボ113の本発光量となる。
具体的に説明する。まず、カメラ制御部110は、分割領域ごとの調光用の重み付け係数を、調光用非発光画像の対応する各分割領域の輝度値と掛けあわせて加重平均した値と目標輝度値との差分(目標輝度差分)を算出する。次に、カメラ制御部110は、分割領域ごとの反射光量(差分輝度値)に、各分割領域の調光用の重み付け係数を掛けあわせて加重平均した値(予備発光輝度値)を算出する。そして、カメラ制御部110は、予備発光輝度値と目標輝度差分の比率に基づいて、ストロボ113の本発光量を算出する。例えば、目標輝度差分が予備発光輝度値の3倍である場合、予備発光時のストロボ113の発光量を3倍した値がストロボ113の本発光量となる。
ここで、上述した調光演算処理では、ストロボ113の予備発光による反射光量が検出された分割領域を考慮してストロボ113の本発光量が算出される。そして、当該本発光量としては、被写体距離が小さい被写体を重点的に考慮した発光量となる。
したがって、主要被写体以外の被写体として、反射率が大きい被写体や被写体距離が小さい被写体が撮像画面内に含まれる場合は、当該被写体を考慮してストロボ113の本発光量を算出しなければならない。この場合、算出された発光量に基づいて発光撮像をしても、当該撮像によって取得される画像は、主要被写体の明るさが不自然なものとなるため、望ましくない。すなわち、ストロボ113の本発光量を算出する際に、ユーザが撮像を意図しない主要被写体以外の被写体を考慮することは望ましくない。
ここで、通路や道路、壁などの被写体が撮像画面内に含まれる場合、当該通路や道路、壁など被写体は、ユーザが撮像を意図する主要被写体である確率が低い。したがって、通路や道路、壁などの被写体は、ストロボ113の調光演算処理に考慮する必要性が低い。例えば、図4(a)に図示した通路など、距離マップに基づいて、撮像画面内で被写体距離が同一方向に連続して変化している被写体は、ユーザが撮像を意図する主要被写体である確率が低い。
そこで、本実施形態では、同一の被写体に対応する分割領域のグループにおいて、隣接する分割領域間で被写体距離が同一の方向に連続して変化している場合に、当該グループに含まれる分割領域を調光演算から除外する。以下、この詳細について説明する。
図8は、本発明を実施した撮像装置の第1実施形態であるカメラ100における距離グラデーション領域判定処理を説明したフローチャートである。まず、ステップS801でDSP105は、調光用に取得した画像(調光用非発光画像および調光用予備発光画像)を複数の領域(分割領域)に分割する。
次に、ステップS802で距離情報取得回路105aは、ステップS801の処理で取得した画像に基づいて、当該画像に関する距離マップを取得する。そして、ステップS803でグループ化回路105bは、当該画像を同一の被写体に該当する分割領域ごとにグループ分けする。なお、ステップS801〜S803の処理の詳細は、調光演算処理、距離情報取得処理、領域グループ化処理に関する前述の通りである。
次に、ステップS804でカメラ制御部110は、RAM106に保持されている距離グラデーションフラグを初期化する。本実施形態では、ステップS803でグループ化された分割領域のそれぞれについて、被写体距離が同一方向に連続して変化する領域であるか否かを判定する。
具体的に、画像内の各分割領域に設定された被写体距離を垂直方向に走査することで垂直方向に隣接している分割領域同士を比較し、当該分割領域間の被写体距離が同一方向に連続して変化しているか否かを判定する。そして、カメラ制御部(距離変化判定手段)110は、当該判定により被写体距離が同一方向に連続して変化していると判定された分割領域を、距離グラデーション領域と判定する。そして、カメラ制御部110は、当該判定結果に基づいて、該当する分割領域の距離グラデーションフラグをONする。
ステップS804の処理は、前回の距離グラデーション領域判定処理で設定された距離グラデーションフラグを初期化する処理である。なお、カメラ100の電源のオンオフに応じて距離グラデーションフラグのオンオフを初期化する構成であれば、カメラ100の電源投入後に初めておこなう距離グラデーション領域判定処理で、ステップS804の処理を実行しないような構成であってもよい。なお、距離グラデーションフラグのON・OFFの情報は、画像の分割領域に関連付けされてRAM106に一時的に保持(記録)させることができる。
次に、S805でカメラ制御部110は、ステップS802で取得した距離マップを参照し、前述したように、グループ化された分割領域ごとに画像内の各列で垂直方向に向けた被写体距離の走査を開始する。なお、上述した画像に含まれる各分割領域の被写体距離の走査は、図9に図示するように、画像の左下端に該当する分割領域から開始し、垂直方向に位置する分割領域に向けて順番に行われる。図9は、本発明の第1実施形態に係るカメラ100の被写体距離の垂直走査方法について例示的に説明した図である。
図9に図示するように、垂直方向に隣接する各分割領域の走査が完了したら、右隣の列の最下部に該当する分割領域から、再上部の分割領域に向けて順番に走査する。この処理を分割領域の列ごとに行い、1つのグループに含まれる全ての分割領域の走査が完了したら、次のグループの走査を開始する。
なお、分割領域の被写体距離の走査は、画像内の左下端に位置する分割領域が含まれる被写体のグループから開始し、その後は、画像の右上端に向かって順番に各被写体のグループ毎に行う。本実施形態では、通路が含まれる被写体グループから分割領域の被写体距離の走査を開始し、当該第1のグループに含まれる全ての分割領域の操作が完了した後、看板が含まれる被写体グループの走査を開始する。
図8に戻る。なお、以降のステップS806〜S821の処理は、分割領域ごとに実行される処理を示している。ステップS806でカメラ制御部110は、現在処理中(走査中)の分割領域が単一領域であるか否かを判定する。なお、ステップS806の処理としては、現在処理中のグループに含まれる分割領域の数が、所定の数よりも少ないか否かを判定するような構成であってもよい。
カメラ制御部110により、現在処理中の分割領域が単一領域である(ステップS806でYES)と判定された場合、ステップS807でカメラ制御部110は、現在処理中の分割領域の距離グラデーションフラグをOFFに設定する。
また、カメラ制御部110により、現在処理中の分割領域が単一領域でない(ステップS806でNO)と判定された場合、ステップS808でカメラ制御部110は、現在処理中の分割領域の被写体距離と、一つ前に走査した分割領域の被写体距離とを比較する。本実施形態では、現在処理中の分割領域の被写体距離と一つ前に走査した分割領域の被写体距離との差分(距離変化量)を算出する。すなわち、互いに隣接する分割領域間での距離変化量を算出する。
なお、現在処理中の分割領域が、同一のグループ内における各列の下端に位置する領域である場合は、一つ前の行に対応する分割領域が存在せず、分割領域ごとの被写体距離を比較することが出来ない。そこで、現在処理中の分割領域が、同一のグループ内における各列の下端に位置する領域である場合は、ステップS808〜S815の処理を実行せず、ステップS816まで進む。そして、当該分割領域については、次の行の(垂直方向に隣接する)分割領域に設定された距離グラデーションフラグと同一の距離グラデーションフラグを設定する。
なお、現在処理中の分割領域が、同一のグループ内における各列の下端に位置する領域である場合に、1つ先の行に対応する分割領域と比較して距離変化量を算出するような構成であってもよい。すなわち、画像内における被写体距離の走査は、画像の上部から下部に向かって実行するような構成であってもよい。
次に、ステップS809でカメラ制御部110は、ステップS808で算出した距離変化量が第1の閾値以上であるか否かを判定する。本実施形態では、図4(b)に図示する被写体距離の単位に合わせて、第1の閾値を2メートルとする。
カメラ制御部110により、現在処理中の分割領域の距離変化量が第1の閾値以上である(ステップS809でYES)と判定された場合、ステップS810でカメラ制御部110は、現在処理中の分割領域の距離グラデーションフラグをOFFに設定する。また、カメラ制御部110により、現在処理中の分割領域の距離変化量が第1の閾値以上ではない(ステップS809でNO)と判定された場合は、ステップS811に進む。
次に、ステップ811でカメラ制御部110は、ステップS808で算出した距離変化量が第2の閾値よりも小さいか否かを判定する。本実施形態では、第2の閾値を1メートルとする。
カメラ制御部110により、現在処理中の分割領域の距離変化量が第2の閾値以下ではない(ステップS811でNO)と判定された場合、ステップS812でカメラ制御部110は、現在処理中の分割領域の距離グラデーションフラグをONに設定する。すなわち、現在処理中の分割領域の距離変化量が、距離グラデーションフラグをONに設定するための所定の範囲(1メートル以上かつ2メートルよりも小さい範囲)に含まれると判定し、距離グラデーションフラグをONに設定する。
なお、第1の閾値および第2の閾値(および所定の範囲)は、上述した値に限定されるものではなく、各画像において垂直方向に隣接する分割領域同士の被写体距離が同一の方向に連続して変化していると判定できる値であればどのようなものでもよい。
また、カメラ制御部110により、現在処理中の分割領域の距離変化量が第2の閾値以下である(ステップS811でYES)と判定された場合は、ステップS813に進む。そして、ステップS813でカメラ制御部110は、現在処理中の分割領域が等距離領域であると判定し、RAM106で記録している等距離領域カウントのカウント数を1つ増やす。
ステップS813の処理は、現在処理中の分割領域が、隣接する分割領域と略同一の被写体距離が設定された領域(等距離領域)であることを検出するための処理である。なお、本実施形態では、略同一の距離を距離変化量が1メートル以下の距離とするが、これに限定されるものではない。前述したように、第2の閾値の値に応じて、等距離領域の判定の基準とする距離は変化する。
次に、ステップS814でカメラ制御部110は、ステップS813でカウントした等距離領域カウント数が所定数以上であるか否かを判定する。具体的に、ステップS814でカメラ制御部110は、現在までに走査が完了しており、現在処理中の分割領域と隣接する等距離領域の数が所定値以上であるか否かを判定する。
本実施形態では、当該所定値を3に設定する。したがって、ステップS814の処理では、隣接する等距離領域が3つ以上か否かを判定する。なお、所定値として3以外の値を設定するような構成であってもよい。
カメラ制御部110により、隣接する等距離領域が所定値以上ではない(ステップS814でNO)と判定された場合、ステップS812でカメラ制御部110は、現在処理中の分割領域の距離グラデーションフラグをONに設定する。また、カメラ制御部110により、隣接する等距離領域が所定値以上ではある(ステップS814でYES)と判定された場合はステップS815に進む。そして、ステップS815でカメラ制御部110は、現在処理中の分割領域を含めて連続して隣接している等距離領域に該当する分割領域の距離グラデーションフラグをOFFに設定する。
次に、ステップS816でカメラ制御部110は、現在処理中の分割領域が含まれるグループにおいて、当該分割領域を含む列の上端部までの走査が完了したか否かを判定する。カメラ制御部110により、列の上端部までの走査が完了していない(ステップS816でNO)と判定された場合、ステップS817でカメラ制御部110は、現在処理中の分割領域と垂直方向で隣接する次の分割領域の被写体距離の読み出しを開始する。
また、カメラ制御部110により、列の上端部までの走査が完了した(ステップS816でYES)と判定された場合、ステップS818でカメラ制御部110は、現在処理中の分割領域が含まれるグループにおける全ての列の走査が完了したか否かを判定する。
カメラ制御部110により、現在処理中の分割領域が含まれるグループに含まれる全ての列の走査が完了していない(ステップS818でNO)と判定された場合、ステップS819でカメラ制御部110は、次の列での被写体距離の走査を開始する。
また、カメラ制御部110により、現在処理中の分割領域が含まれるグループの全ての列の走査が完了した(ステップS818でYES)と判定された場合はステップS820に進む。そして、ステップS820でカメラ制御部110は、現在処理中の分割領域が含まれるグループ以外の全てのグループにおける被写体距離の走査が完了したか否かを判定する。
カメラ制御部110により、全てのグループにおける被写体距離の走査が完了していない(ステップS820でNO)と判定された場合、ステップS821でカメラ制御部110は、次のグループの被写体距離の走査を開始する。そして、カメラ制御部110により、全てのグループにおける被写体距離の走査が完了した(ステップS820でYES)と判定された場合、距離グラデーション領域判定処理を終了する。
なお、図4(b)に図示する画像の場合、当該距離グラデーション領域判定処理によって、通路が含まれる被写体のグループ(第1のグループ)に含まれる分割領域が距離グラデーション領域であると判定される。
次に、図8のフローチャートで設定した距離グラデーションフラグの設定に基づいて、ストロボ113の調光演算に係る距離重み付けデータの設定(距離重み付け処理)方法について、図10を参照して説明する。図10は、本発明を実施する撮像装置の第1実施形態に係るカメラ100の距離重み付け処理を説明するフローチャートであって、図8に図示する距離グラデーション領域判定処理が終了した後に行われる処理である。
まず、ステップS1001でカメラ制御部110は、画像に含まれる全ての分割領域の距離重み付け係数を初期化(=0)に設定する。そして、ステップS1002でカメラ制御部110は、分割領域ごとに、先に設定された距離グラデーションフラグの情報の読み出しを開始する。
次に、ステップS1003でカメラ制御部110は、読み出し対象の分割領域に設定されている距離グラデーションフラグがONであるか否かを判定する。
カメラ制御部110により、距離グラデーションフラグがONである(ステップS1003でYES)と判定された場合、ステップS1004でカメラ制御部110は、読み出し対象の分割領域の距離重み付け係数を0に設定する。また、カメラ制御部110により、距離グラデーションフラグがOFFである(ステップS1003でNO)と判定された場合、ステップS1005でカメラ制御部110は、読み出し対象の分割領域の距離重み付け係数を100に設定する。
なお、本実施形態では、距離グラデーションフラグがONに設定されている分割領域の距離重み付けの係数を0に設定するような構成であるが、これに限定されるものではない。距離グラデーションフラグがONに設定されている分割領域の距離重み付けの係数としては、当該フラグがONに設定されている分割領域を、ストロボ113の調光演算から除外する(できる)値であればどのような値であってもよい。
次に、ステップS1006でカメラ制御部110は、画像に含まれる全ての分割領域に対して、距離重み付け係数の設定が完了したか否かを判定する。そして、全ての分割領域への距離重み付け係数の設定が完了する(ステップS1006でYESと判定される)まで、ステップS1002〜S1006の処理を繰り返す。以上が、本実施形態の距離重み付け処理である。
図11は、本発明の第1実施形態に係る距離重み付けデータを例示的に説明する図であって、図10のフローチャートに基づいて設定された画像の距離重み付けデータを示している。
本実施形態では、図11に図示するように、距離グラデーション領域判定処理によって、距離グラデーション領域であると判定された通路を含む被写体グループに該当する分割領域の距離重み付け係数を0に設定する。また、当該通路を含む被写体グループ以外に該当する分割領域の距離重み付け係数を100に設定する。
カメラ制御部110は、算出した距離重み付けデータを先に説明したデフォルトの調光重み付けデータ(設定値)に適用し、新たな調光重み付けデータを生成する。図12は、本発明の第1実施形態に係るカメラ100の、距離重み付けデータを加味した調光重み付けデータを例示的に説明する図である。
図12に図示するように、距離重み付けデータを適用することによって、距離グラデーション領域であると判定された分割領域の調光用の重み付け係数を0に設定する。そして、距離グラデーション領域であると判定された分割領域以外の領域の調光重み付けデータは、先に設定されたデフォルトの調光重み付けデータ(設定値)から変更しない。すなわち、本実施形態のカメラ100では、距離グラデーション領域であると判定された分割領域の重み付け係数が、同一の位置に該当する分割領域のデフォルトの調光重み付け係数よりも下げられる。
前述したように、隣接する分割領域間の距離変化が同一の方向に連続して変化している場合、当該分割領域が含まれるグループに対応する被写体は、主要被写体以外の被写体である確率が高い。
そこで、本実施形態のカメラ100では、距離グラデーション領域であると判定されなかった分割領域を主要被写体に対応する分割領域とし、距離グラデーション領域であると判定された分割領域を主要被写体以外に対応する分割領域とする。なお、当該主要被写体は、画像内において、ユーザが撮像を意図している確率が高い被写体の候補である。
そして、本実施形態では、図12に図示するような、主要被写体以外の被写体に対応する分割領域の調光演算に関わる影響を除外できるような距離重み付けデータを、調光重み付けデータに適用して調光演算処理を実行する。
この構成によって、ストロボ113の調光演算処理の対象から、被写体距離が同一の方向に連続して変化している分割領域を除外することができる。したがって、本実施形態のカメラ100は、主要被写体である確率が低い被写体を調光演算処理から除外し、主要被写体を優先してストロボ113の本発光量を算出することができる。
以上説明したように、本実施形態のカメラ100は、上述した構成を採用することによって、主要被写体以外の被写体によってストロボ113の本発光量が不自然になることを抑制できる。すなわち、本実施形態のカメラ100は、主要被写体が不自然な明るさになる発光量が算出されることを抑制することができる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらに限定されず、その要旨の範囲内で種々の変形および変更が可能である。例えば、前述した実施形態では、撮像素子102から出力された位相差データを用いた、所謂撮像面位相差検出方式によって距離マップを取得する場合についてしたが、これに限定されるものではない。
例えば、撮像素子102以外の素子(例えば、所謂AFセンサなど)からの出力信号に基づいて、距離マップを取得するような構成であってもよい。また、レンズユニット101のフォーカスレンズの各レンズ位置とコントラスト評価値との関係に基づいて距離マップを取得するような構成であってもよい。さらに、TOF(Time Of Flight)方式や、画像内の空間情報から距離情報を取得するDFD(Depth From Defocus)方式などを用いて距離マップを取得するような構成であってもよい。さらに、カメラ100の外部から取得した距離マップを、前述した種々の処理に用いるような構成であってもよい。なお、像面位相差検出方式以外によって距離マップを取得する場合は、撮像素子102としてCMOS以外の固体撮像素子(例えば、CCDなど)を採用する構成であってもよい。
なお、上述した複数の方式を採用する場合、必ずしも、取得した画像を複数の分割領域に分割して、上述した距離情報取得処理や領域グループ化処理を実行する必要はない。例えば、撮像素子102から出力できる画像信号に対応した撮像画面を複数の領域に分割し、当該分割された領域ごとに距離情報取得処理および領域グループ化処理を行う構成であってもよい。
上述した構成としては、例えば、調光演算処理などに用いる調光用の画像の分割領域に対応させて、撮像画面上の複数の領域ごとに距離情報取得処理や領域グループ化処理を行う。そして、取得した距離マップや分割領域のグループに関する各情報を、調光演算処理の際に調光用の画像の各分割領域に対応付ける。以上説明した構成であっても、前述した実施形態と略同一の距離マップや被写体グループに関する情報を取得できる。
また、前述した実施形態では、距離グラデーション領域判定を、取得した画像の垂直方向(画像の短辺と平行な方向)において行う構成であったが、これに限定されるものではない。例えば、距離グラデーション領域判定を、取得した画像の水平方向(画像の長辺と平行な方向)において行うような構成であってもよいし、取得した画像内の斜め方向(例えば、画像の左下端から右上端など)に向けて行うような構成であってもよい。
なお、この場合は、グループ化回路105bによってグループ分けされた分割領域において、水平方向または斜め方向で互いに隣接する分割領域の距離変化量が所定の範囲内であるか否かを判定することで、距離グラデーション領域を判定する。
以上説明した構成であれば、取得した画像に対する被写体距離の変化方向が斜め方向となる被写体に対しても、距離重み付けデータを加味した調光重み付けデータを生成することができる。したがって、主要被写体が不自然な明るさとなる発光量が算出されることを、さらに効果的に抑制できる。
さらに、前述した実施形態では、画像に対する固定の方向において距離グラデーション領域判定を行う構成であったが、これに限定されるものではない。例えば、カメラ100の姿勢に応じ、画像に対して距離グラデーション領域判定処理を行う方向を変更するような構成であってもよい。具体的には、距離グラデーション領域判定処理を行う画像が、カメラ100が横位置状態で撮像された画像であるか、縦位置状態で撮像された画像であるかに応じて、画像に対して距離グラデーション領域判定処理を行う方向を設定する。
なお、カメラ100の姿勢に関する情報は、ジャイロセンサ(不図示)などの出力に基づいて検出するような構成であってもよいし、取得した画像と当該画像内における被写体向きとを比較することで検出するような構成であってもよい。
また、前述した実施形態では、距離グラデーション領域であると判定された分割領域の調光重み付け係数を0にするような構成であったが、これに限定されるものではない。例えば、距離グラデーション領域であると判定された分割領域の調光重み付け係数を、当該分割領域と被写体距離が同一であって、距離グラデーション領域ではないと判定された分割領域の調光重み付け係数よりも小さくするような構成であってもよい。
さらに、画像に含まれる全ての分割領域において、距離グラデーション領域であると判定された分割領域の調光重み付け係数を、距離グラデーション領域であると判定されなかた分割領域の調光重み付け係数よりも小さくする構成であってもよい。この場合、主要被写体に対応する分割領域の重み付け係数を、主要被写体以外の被写体に対応する分割領域の重み付け係数よりも高くすることができる。なお、上述した主要被写体に対応する分割領域としては、被写体距離が所定の値以下となる分割領域とする。具体的に、ストロボ113を発光させても、当該発光が届かないような被写体距離に該当する分割領域については、距離グラデーション領域であると判定されていなかったとしても、主要被写体以外の被写体に対応する分割領域とする。例えば、図7に図示したようなデフォルトの調光重み付けデータにおいて、重み付け係数が0に設定された分割領域は、主要被写体以外の被写体に該当する分割領域とする。以上説明した構成であっても、主要被写体が不自然な明るさとなる発光量が算出されることを抑制できる。
なお、前述した実施形態では、被写体距離が同一の方向に連続して変化している分割領域をストロボ113に関わる調光演算から除外する構成であるが、当該分割領域に該当する被写体に応じて、調光演算から除外するか否かを変更する構成であってもよい。例えば、画像内の被写体に人物が含まれる場合は、当該人物に該当する分割領域のみを調光演算の対象にするような構成であってもよい。すなわち、画像内に人物が含まれる場合は、上述した距離グラデーション領域判定処理を実行せず、人物以外の被写体に該当する全ての分割領域の距離重み付け係数を0にするような構成であってもよい。
なお、上述した構成は人物以外の被写体に適用してもよい。例えば、DSP105が、主要被写体の候補となる被写体の輪郭情報と取得した画像内のエッジ情報とを比較する。そして、DSP(被写体検出手段)105は、当該比較の結果に基づき、主要被写体の候補となる被写体の輪郭情報に対して、取得した画像内の輪郭の類似度が所定の閾値以上となる被写体を主要被写体として検出する。上述した主要被写体の候補となる被写体の輪郭情報はメインメモリ107などに予め格納されているものを参照する。また、画像内に含まれる人物など、主要被写体であると考えられる被写体の検出は公知の方法であればどのような方法を採用してもよい。
以上説明した構成を採用し、カメラ制御部110は、DSP105によって検出された主要な被写体に該当する分割領域以外の分割領域の調光重み付け係数を0にして、調光演算処理を実行する。すなわち、カメラ制御部110は、検出された主要被写体に該当する分割領域の調光重み付け係数のみに基づいて、ストロボ113の発光量を算出する。この構成により、不必要に距離グラデーション領域判定処理を実行することを抑制できるため、カメラ100の処理負荷を低減することができる。
なお、前述した実施形態では、DSP105、カメラ制御部110、TG111、撮像制御部112、発光制御回路114などが互いに連携して動作することで、カメラ100の動作を制御するような構成であったが、これに限定されるものではない。例えば、前述した図8や図10に図示したフローに従ったプログラムを予めメインメモリ107に格納しておき、当該プログラムをカメラ制御部110などが実行することで、カメラの動作を制御するような構成であってもよい。
本実施形態の種々の処理は、撮像装置による被写体の撮像に合わせて当該被写体を照明可能な発光装置を制御する発光制御装置に適用するようなものであってもよい。
また、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。また、プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光/光磁気記録媒体でもあってもよい。
また、前述した実施形態では、本発明を実施する撮像装置の一例としてデジタルカメラについて説明したが、これに限定されるものではない。例えば、デジタルビデオカメラやスマートフォンなどの可搬型デバイスなど、本発明はその要旨の範囲内で種々の撮像装置に適用することが可能である。
また、前述した実施形態は、距離グラデーション領域判定処理や距離重み付け処理、調光演算処理などの種々の処理を撮像装置であるカメラ100で実行する場合について説明したが、これに限定されるものではない。上述した種々の処理を、撮像装置による被写体の撮像に合わせて発光可能な発光手段を備えた発光制御装置で実行するような構成であってもよい。この場合、当該発光制御装置はCPUを備えた制御マイコンと、当該制御マイコンが読み出し可能な種々のデータを格納できるメモリ、撮像装置と通信できる通信手段などを備えている。そして、当該発光制御装置は、撮像装置の動作に同期して動作することで、前述した、距離グラデーション領域判定処理や距離重み付け処理、調光演算処理などの種々の処理を実行することで、発光手段の本発光量を算出する。
また本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現できる。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現できる。