以下、本発明の実施形態として、フラッシュ撮影機能を備えた一眼レフのデジタルカメラと、そのデジタルカメラのフラッシュの発光量の制御方法を示す。
[ 実施形態1 ]
図1A、図1Bおよび図1Cは、本発明の一実施形態におけるデジタルカメラ1の外観を示す図である。図1Aに示すように、このデジタルカメラ1の上部には、シャッタレリーズボタン2、撮影モードの設定に利用されるモードダイヤル3、内蔵フラッシュ4および付属品の取付口であるホットシュー5が備えられている。
シャッタレリーズボタン2は、2段階の押下により2種類の動作を指示できる構造となっている。例えば、自動露出調整機能(AE:Auto Exposure)、自動焦点調節機能(AF:Auto Focus)を利用した撮影では、デジタルカメラ1は、シャッタレリーズボタン2が軽く押下(半押しともいう)されたときに、露出調整、焦点合わせなどの撮影準備を行う。その状態で、シャッタレリーズボタン2が強く押下(全押しともいう)されると、デジタルカメラ1は露光を開始し、露光により得られた1画面分の画像データをメモリカードに記録する。
内蔵フラッシュ4は、脇にあるフラッシュポップアップボタン6を押すことにより、図1Bに示すようにカメラ上部方向に開く(以下、ポップアップと称する)。また、一部の撮影モードでは、自動的にポップアップすることもある。ポップアップ状態の内蔵フラッシュ4は、シャッタレリーズボタン2の2段階目の押下操作と連動して2回発光する。1回目の発光は被写体からの反射光量を測定するための予備発光であり、通常の発光に比べれば発光量は微小である。予備発光には反射光量の測定のほか、赤目を予防する目的もある。2回目の発光は十分な露光量を得るための本発光であり、本発光の発光量が適正であれば、適当な明るさの画像を得ることができる。
内蔵フラッシュ4の動作は、シャッタレリーズボタン2の操作のみならず、モードダイヤル3により設定された撮影モードにも依存する。撮影モードとしては、撮影に係る全設定をカメラが自動で行う「AUTO」、撮影に係る全設定をユーザが手動で行う「マニュアル」のほか、「プログラムオート」、「シャッタ優先オート」、「絞り優先オート」、「ブレ軽減」、「ナチュラルフォト」、「人物」、「風景」、「夜景」など、撮影シーンごとのモードが用意されている。「AUTO」モードに設定されたデジタルカメラ1は、フラッシュ撮影が必要と判断すれば、自動的に内蔵フラッシュ4をポップアップし、シャッタレリーズボタン2の操作と連動してフラッシュを発光させる。一方、「ナチュラルフォト」はフラッシュレス撮影を行うモードであるため、このモードに設定されたデジタルカメラ1では、シャッタレリーズボタン2を操作しても内蔵フラッシュ4は動作しない。他のモードについても、それぞれ、そのモードの目的に適う内蔵フラッシュ4の動作が定められている。
なお、このデジタルカメラ1は、図1Cに示すようにホットシュー5に外付フラッシュ6を取り付けて使用することもできる。外付フラッシュ7は、ホットシュー5に取付けられることで機械的・電気的にデジタルカメラ1に接続され、これにより、内蔵フラッシュ4と同様、モードダイヤル3によるモード設定に応じて、シャッタレリーズボタン2の2段階目の押下操作と連動した発光動作を行うようになる。以下、図1Aおよび図1Bに例示した形態を中心に説明するが、本発明はフラッシュが内蔵か外付けかによらず適用可能な発明である。
続いて、図2を参照して、デジタルカメラ1の内部構成について、概要を説明する。図2に示すように、デジタルカメラ1は、レンズ12、レンズ駆動部16、絞り13、絞り駆動部17、CCD14およびタイミングジェネレータ(TG)18からなる撮像系を備える。レンズ12は、被写体にピントを合わせるためのフォーカスレンズ、ズーム機能を実現するためのズームレンズなど複数の機能別レンズにより構成される。レンズ駆動部16はステッピングモータなど小型のモータで、CCD14から各機能別レンズのまでの距離が目的に適った距離となるように各機能別レンズの位置を調整する。絞り13は複数の絞り羽根からなる。絞り駆動部17は、ステッピングモータなど小型のモータで、絞りの開口サイズが目的に適ったサイズになるように絞り羽根の位置を調整する。CCD14は原色カラーフィルタを伴う500〜1200万画素のCCDで、タイミングジェネレータ18からの指示信号に応じて蓄積された電荷を放出する。タイミングジェネレータ18は、CCD14に所望の時間のみ電荷が蓄積されるようにCCD14に対して信号を送り、これによりシャッタ速度を調整する。
また、デジタルカメラ1は、CCD14の出力信号をデジタル信号に変換するA/D変換部15と、A/D変換部15が出力した画像データをシステムバス34を介して他の処理部に転送する画像入力制御部23と、画像入力制御部23から転送された画像データを一時記憶するSDRAM22を備える。SDRAM22に記憶される画像データはRAWデータである。
また、デジタルカメラ1は、フラッシュ11と、フラッシュ11の発光タイミングや発光量を制御するフラッシュ制御部19と、レンズ駆動部16にレンズの移動を指示して焦点合わせを行う焦点調節部20と、絞り値とシャッタ速度を決定し、絞り駆動部17とタイミングジェネレータ18に指示信号を送出する露出調整部21と、SDRAM22に記憶されている画像データを対象として顔の検出処理を実行し、顔の有無を示す値、さらに顔が有る場合には検出された顔に相当する領域を示す情報(以下、領域情報)を出力する顔領域抽出部(顔検出部)24を備える。フラッシュ制御部19、焦点調節部20および露出調整部21は、SDRAM22に記憶されている画像データのほか、顔領域抽出部24が実行した検出処理の結果を参照して処理を行うこともある。顔の検出結果を参照して露出調整を行う方法としては、例えば特開2001−215404号公報、特開2003−107555号公報などに開示されている方法を用いることができる。また、顔の検出結果を参照して焦点調節を行う方法としては、例えば特開2006−145629号公報に開示されている方法を用いることができる。フラッシュ制御部19、焦点調節部20および露出調整部21が、顔領域抽出部24から出力される検出結果を参照するか否かは、撮影モードその他の設定値によって決まる。
デジタルカメラ1は、この他、SDRAM22に記憶されている画像データに対して画像処理を施す画像処理部25を備える。画像処理部25は、画像を自然な色合い、明るさにするための色階調補正や明るさ補正、また画像データが赤目を含むものであるときに赤目を黒目に修正する処理など、画像の見栄えを良くするための各種仕上げ処理を行った後、処理済画像データを再度SDRAM22に格納する。
また、デジタルカメラ1は、SDRAM22に記憶されている画像データの液晶モニタ(LCD:Liquid Crystal Display)27への出力を制御する表示制御部26を備える。表示制御部26は、SDRAM22に記憶されている画像データの画素数を、表示に適した大きさとなるように間引きしてから液晶モニタ27に出力する。
また、デジタルカメラ1は、SDRAM22に記憶されている画像データのメモリカード29への書込み、およびメモリカード29に記録されている画像データのSDRAM22へのロードを制御する記録読出制御部28を備える。記録読出制御部28は、ユーザの設定に応じてRAWデータをそのまま、もしくは圧縮符号化によりJPEGデータに変換してからメモリカード29に記録する。JPEGデータをロードするときは、その逆の変換を行ってからデータをSDRAM22にロードする。
また、デジタルカメラ1は、ジャイロセンサなどにより構成される手ブレ検出部35を備える。手ぶれ検出部35は撮影時の手ブレを検出すると、フラッシュ制御部19、露出調整部21、画像処理部25に検出されたブレ量の情報を供給する。露出調整部21は、手ブレが検出されたときには手ブレが検出されないときよりもシャッタ速度を短く設定し、取得画像に対する手ブレの影響を軽減する。また、画像処理部25は、手ブレが検出されたとき、取得後の画像データに対しブレを補正する画像処理を施す。
デジタルカメラ1は、この他、CPU(Central Processor Unit)31、操作/制御プログラムが格納されたRAM(Random Access Memory)32、各種設定値が記憶されているEEPROM(Electronically Erasable and Programmable Read Only Memory)33からなる全体制御部30を備える。全体制御部30は、モードダイヤルによる撮影モードの設定をはじめユーザが行う各種設定操作を検出し、設定された内容をEEPROM33に記憶せしめる。そして、その設定操作が行われたとき、もしくは撮影操作が行われたときに、EEPROMに記憶された設定値にしたがって、前述したフラッシュ制御部19、焦点調節部20、露出調整部21、画像入力制御部23、顔領域抽出部24、画像処理部25、表示制御部26、記録読出制御部29に対し、システムバス34を介して、実行すべき処理や、その処理の実行タイミングを指示する信号を送出する。
図3に、フラッシュ制御部19の構成とフラッシュ制御部19の入出力データを示す。フラッシュ制御部19は、図に示すように、第1演算手段41、第2演算手段42、パラメータ記憶手段43および発光量決定手段44を備える。第1演算手段41、第2演算手段42および発光量決定手段44は、後述する演算を実行する演算回路であり、パラメータ記憶手段43はEEPROMである。但し、パラメータ記憶手段43は、必ずしもフラッシュ制御部19の構成要素でなくてもよい。例えば、全体制御部30が備えるEEPROM33をパラメータ記憶手段43として利用してもよい。
第1演算手段41は、全体制御部30の制御の下、画像入力制御部23から、非発光時画像データと予備発光時画像データの供給を受ける。予備発光時画像データは、撮像部が、全体制御部30の制御の下で、フラッシュ11による予備発光と同期して撮影した画像データである。非発光時画像データは、その予備発光の直前または直後に、撮像部により撮影された画像データである。第1演算手段は、これら2種類の画像を用いて、後述する演算処理を実行することにより、顔を考慮しない場合のフラッシュ発光量の仮適正値Cnを求め、出力する。
第2演算手段42は、第1演算手段と同様、全体制御部30の制御の下、画像入力制御部23から、非発光時画像データと予備発光時画像データの供給を受ける。第2演算手段42は、この他、顔領域抽出部24から、顔に相当する領域を示す領域情報の供給を受ける。顔領域抽出部24により複数の顔が検出されていた場合には、検出された顔の数と同数の領域情報の供給を受ける。そして、2種類の画像と領域情報とを用いて、顔ごとに、後述する演算処理を実行することにより、顔を考慮した場合のフラッシュ発光量の仮適正値Cf1〜CfNを求め、出力する。
パラメータ記憶手段43が記憶するパラメータαは設定により可変なパラメータであり、顔領域抽出部24や手ブレ検出部35によって設定される。あるいは全体制御部30が、顔領域抽出部24や手ブレ検出部35の出力を受けて、パラメータαを設定する。顔領域抽出部24がパラメータを設定するときは、抽出した領域ごとに1つの値を設定する。手ブレ検出部35や焦点調節部20は、顔領域抽出部24が抽出した領域の数に関係なく、1つの値を設定する。
発光量決定手段44は、第1演算手段41から出力された仮適正値Cnと、第2演算手段から出力された仮適正値Cf1〜CfNと、パラメータ記憶手段43から読み出したパラメータαとを利用して本発光の発光量を決定し、その決定に基づいてフラッシュ11の発光量を制御する。
以下、第1演算手段41、第2演算手段42および発光量決定手段44が行う処理について、さらに説明する。第1演算手段41と第2演算手段42は、入力された非発光時画像データおよび予備発光時画像データを、複数の領域ブロックに分割する。図4は、領域ブロックへの分割の一例を示す図であり、画像データ45(非発光時画像データまたは予備発光時画像データ)を、n×m個の領域ブロックに分割したところを示している。以下の説明では、図に例示している(1,1)、(n,m)といった符号により、位置が異なる領域ブロックを区別するものとする。
図5は、第1演算手段の処理を示すフローチャートである。第1演算手段41は、非発光時画像データの領域ブロックごとの輝度情報Ya(1,1)〜Ya(n,m)を取得する(S101)。例えば、非発光時画像データをRGB−YCC変換し、各画素の輝度値を求め、その画素輝度値の領域ごとの平均値を求め、輝度情報Yaとする。予備発光時画像データについても、同様の手順により、各領域ブロックの輝度情報Yb(1,1)〜Yb(n,m)を取得する(S102)。
続いて第1演算手段41は、領域ブロック(x、y)ごとに、ステップS102で取得した輝度情報Yb(x、y)とステップS101で取得した輝度情報Ya(x、y)との差分Ydを計算する(S103)。そして、全領域ブロックの差分Yd(1,1)〜Yd(n,m)に基づいて、顔を考慮しない場合のフラッシュ発光量の適正値(仮適正値Cn)を決定し、出力する(S104)。例えば、差分Yd(1,1)〜Yd(n,m)の単純平均あるいは加重平均などから被写体からの単位発光量あたりの反射光量を推定し、そこから最適な露出が得られる反射光量となる発光量を求め、これを仮適正値Cnとする。差分Yd(1,1)〜Yd(n,m)の加重平均を求めるときは、例えば画像の中央に近い領域ブロックの重み付けを大きくするなど、顔に依存しない重み付けを行う。
図6は、第2演算手段の処理を示すフローチャートである。以下、図4に例示したように、顔領域抽出部24により3つの領域46a、46bおよび46cが抽出された場合を例示しながら説明する。第2演算手段は、まずカウンタiの値を1に初期化する(S201)。そして、顔領域抽出部24から供給されたi番目(ここでは1番目)の領域情報が示す領域46aに対応する領域ブロック群47aを選択する(S202)。例えば、各領域ブロックについて領域46aと重なる範囲の面積を計算し、面積の半分以上が領域46aと重なっているブロック群47aを選択する。
続いて、第2演算手段は、非発光時画像データについて、選択された領域ブロックの輝度情報Ya(p、q)を取得する(S203)。さらに、予備発光時画像データについても、選択された領域ブロックの輝度情報Yb(p、q)を取得する(S204)。図4の例であれば、領域46aについて選択されたブロック群47aは12個の領域ブロックを含んでいるので、ブロック12個分の輝度情報Ya(p1、q1)〜Ya(p12、q12)とYb(p1、q1)〜Yb(p12、q12)を取得する。
続いて、選択された領域ブロックごとに、ステップS204で取得した輝度情報Yb(p,q)とステップS203で取得した輝度情報Ya(p,q)との差分Yd(p,q)を計算し(S205)、選択された領域ブロックについて求められた差分Yd(p,q)に基づいて、顔を考慮する場合のフラッシュ発光量の適正値(仮適正値Cf1)を決定する(S206)。図4の例であれば、ブロック12個分の差分Yd(p1,q1)〜Yd(p12、q12)を求め、これらの差分に基づいて仮適正値Cf1を決定する。例えば、差分Yd(p1,q1)〜Yd(p12、q12)の単純平均から被写体からの単位発光量あたりの反射光量を推定し、最適な露出が得られる反射光量となる発光量を求め、これを仮適正値Cf1とする。
第2演算手段42は、上記ステップS202〜S206までの処理を、カウンタ値iが検出された顔の数Nと一致するまで繰り返す(S207)。図4の例では、検出された顔は3つあるので、カウンタをカウントアップし(S208)、領域46bとブロック群47b、領域46cとブロック群47cについて、それぞれ、ステップS202〜S206までの処理を実行する。N個の領域について上記処理が完了すると(S207)、第2演算手段42は、ステップS206において求められた仮適正値Cf1〜CfNを出力する(S209)。図4の例では、3個の仮適正値Cf1、Cf2およびCf3が出力される。
発光量決定手段44は、第1演算手段41が出力した仮適正値Cnと、第2演算手段42が出力した仮適正値Cf1〜CfNを基準値とする調整を行うことにより、フラッシュ11の適正発光量Chを決定する。本実施形態ではパラメータ記憶手段43に記憶されているパラメータαに基づいて発光量の調整を行う。具体的には、発光量決定手段44は、次式(1)、(2)に基づく演算を行うことにより、適正発光量Chを決定する。
Cf = minimum(Cf1,Cf2・・・CfN) … (1)
適正発光量Ch=Cn×(1−α)+Cf×α …(2)
つまり、複数の顔について、それぞれ求められた仮適正値の中から、値が最小のものを選択し((1)式)、その値Cf(Cfmin)と、仮適正値Cnとを基準とした調整を行うことにより、適正発光量Chを求める((2)式)。値が最小の仮適正値を調整の基準とするのは、適正発光量が最小となる顔は、最も反射が強く白とびしやすい顔であるので、この顔について白とびが発生しないように発光量を調整しておけば、すべての顔について白とびを防止することができるからである。例えば図4の例であれば、最も大きな顔について求められた発光量の仮適正値Cf1が最小値となるので、Cf=Cf1となる。
パラメータαは前述したとおり、顔領域抽出部24、手ブレ検出部35あるいは焦点調節部20により設定され、顔領域抽出部24により設定される場合には、顔ごとの値が設定される。パラメータの値が顔ごとに記憶されている場合、(2)式において用いる値αとしては、(1)式において選択された仮適正値に対応する顔について設定された値が選択される。図4の例では、3つのパラメータα1、α2およびα3がパラメータ記憶手段43に記憶されているが、(2)式において用いられる値αはα1となる。
以下、顔領域抽出部24によるパラメータαの設定処理について説明する。顔を考慮した調光は、顔の検出に用いられる画像データと調光に用いられる画像データが同じであることを前提としている。しかし実際の撮影では、顔の検出から非発光時画像データの取得までの間、あるいは非発光時画像データの取得から予備発光時画像データの取得までの間に、数十ミリ秒以上のタイムラグがあるため、この間に被写体が動いたり、手ブレが生じたりすると、各処理に用いられる画像データが互いに異なるものとなってしまうことがある。
図7A、図7B、図8Aおよび図8Bは、画像データと領域情報が示す領域と図6のステップS202において選択される領域ブロックの関係を示す図である。画像データ48は顔領域抽出部24が顔の検出処理に用いた画像データで、画像データ45はフラッシュ制御部19が調光に用いた画像データ(非発光時画像データあるいは予備発光時画像データ)である。図7Bおよび図8Bの楕円49は、調光時の顔の位置を示している。
図7Aおよび図7Bに示すように、画像に占める顔の割合が比較的大きい場合には、顔の位置が顔検出時と多少ずれていても、選択されたブロック群47dの大半は、ずれた後の顔(楕円49)に対応している。よって、ずれが生じてしまったとしても、選択されたブロック群47dの輝度情報は、調光を行う上で参照に値する。しかし、図8Aおよび図8Bに示すように、画像に占める顔の割合が小さく、顔領域46eに対応するブロックが1つしか無いような場合には、顔の位置がずれてしまったことにより、ブロック47eは顔領域46eと対応しなくなる。この場合、ブロック47eの輝度情報は、顔を考慮した調光処理では、もはや参照に値しない。これは、第2演算手段により求められる仮適正値Cfiの信頼度が、画像に占める顔の割合が大きいほど高く、顔の割合が小さいほど低いことを意味する。
そこで、本実施形態では、顔領域抽出部24は、顔の抽出処理が完了した後、検出された顔ごとに、その顔に相当する領域として抽出された領域の、画像の横幅に対する割合を計算する。そして、顔の割合とパラメータαとの対応付けを定義したルックアップテーブル(LUT)を参照することにより、検出された顔ごとにパラメータαの値を決定する。顔領域抽出部24は、N個の顔が検出された場合には、N個のパラメータ値α1〜αNを決定し、フラッシュ制御部19のパラメータ記憶手段43に、それらの値を記憶せしめる。図4の例では、前述のとおり3つのパラメータα1、α2およびα3がパラメータ記憶手段43に記憶される。ここで、LUTの参照に代えて、LUTと同等の変換を行う回路あるいはプログラムを採用してもよいことは言うまでもない。
図9に、LUTの一例を示す。このLUTによれば、顔の割合が所定の閾値Th1を下回るときには、パラメータαは、ゼロではない所定の下限値αLに設定される。また、顔の割合が所定の閾値Th2を上回るときには、パラメータαは、1ではない所定の上限値αUに設定される。そして、顔の割合が閾値Th1以上閾値Th2以下であるときは、パラメータαは、下限値αLから上限値αUまでの範囲で、顔の割合が小さいほど小さく、大きいほど大きな値に設定される。このLUTを使って設定された値を用いて(2)の演算処理を行えば、画像に占める顔の割合が小さいときには発光量調整における仮適正値Cfの影響力が弱まり、被写体が動いたり手ブレが生じたりしても、演算により求まる発光量が適正範囲を大きく外れることはなくなる。
なお、上記処理では、画像の横幅に対する顔の横幅の割合を計算しているが、画像に占める顔の割合の指標となる値であれば、計算する値はどのような値であってもよい。例えば、抽出された領域の面積や画素数、画像全体の面積に対する顔の面積比などを計算してもよい。あるいは、顔の横幅と2つの目の間隔とは相関関係があるので、目を検出して目と目の間隔を求め、これを画像に占める顔の割合を示す指標値として演算に利用してもよい。すなわち、LUTの横軸として設定されるパラメータは、上記処理の目的に適うものであれば特に限定されない。また、上記LUTでは、閾値Th1以上閾値Th2以下の範囲においてパラメータの値が線形的に増加するが、非線形に増加する(LUTが非線形カーブを描く)ようにしてもよい。また、閾値Th1、Th2も、設計方針に応じて任意に定めることができるので、上記例のように閾値で区切られた一部の範囲においてのみαの値が単調増加するLUTのほか、閾値を設けずαの値が全範囲にわたって単調増加するようなLUTも採用し得る。
パラメータαの決定方針とパラメータの決定に使用するLUTとしては、他にも種々考えられる。例えば、人物の顔が画像の端で検出された場合には、その人物は撮影対象ではない可能性がある。よって、図10に例示するLUTは、抽出された領域の位置が、画像の左端からの距離にしてTh3以上、Th4以下であれば、パラメータαの値を上限値αUとし、抽出された領域の位置がそれ以外、すなわち画像の端に近い位置にあるときはパラメータαの値を下限値αLとするものである。このLUTを使って設定された値を用いて(2)の演算処理を行えば、検出された顔が中央付近に位置するときには発光量調整における仮適正値Cfの影響力が強まり、反対に端に位置するときには発光量調整における仮適正値Cfの影響力が弱まる。
また、検出された顔の傾き(首の傾げ具合)や顔の向き(正面顔、横顔)によって、パラメータαの値を決める方法も考えられる。顔領域抽出部24が行う顔検出処理では、学習のしかたにもよるが、首を傾げた顔や横向きの顔は、垂直な正面顔に比べれば誤検出が発生する確率が高い。すなわち、顔領域の情報を利用して求められた仮適正値Cfの信頼度は、検出された顔の傾きが垂直であるほど高く、また正面に近い向きであるほど高い。そこで、図11に示すように、横軸を顔の傾きとし、顔が垂直もしくは垂直に順ずる傾きのときには、パラメータαの値が上限値αUに設定され、顔の傾きが所定の閾値Th6あるいはTh7を超えたときは傾きが大きいほどパラメータαの値が小さく設定され、傾きが次の閾値Th5およびTh8を超えて水平もしくは水平に近くなったときには、パラメータαの値が下限値αLに設定されるようにLUTを定義する。もしくは、横軸を顔の向きとした同様のLUTを定義する。これらのLUTを使って設定された値を用いて(2)の演算処理を行えば、仮適正値Cfの信頼度が高いときには発光量調整における仮適正値Cfの影響力が強まり、反対に、仮適正値Cfの信頼度が低いときには発光量調整における仮適正値Cfの影響力が弱まることとなる。
なお、前述したとおりパラメータαは手ブレのブレ量や、焦点距離に応じた値を設定してもよい。例えば、検出された手ブレのブレ量が所定の閾値を越えているときに、パラメータαの値を下限値αLに設定する。あるいは、焦点距離が長いときには手ブレの影響が強く出やすいので、焦点距離が所定の閾値以上となったときに、パラメータαの値を下限値αLに設定する。ブレ量や焦点距離は、検出された顔とは無関係であるため、ブレ量や焦点距離に基づいてパラメータαが設定された場合には、仮適正値Cfとして顔別適正値Cf1〜CfNのいずれが選択されたかに拘わらず、パラメータ記憶手段43に記憶されている値が演算に用いられることとなる。
なお、パラメータαの設定をどの処理部が行うか、あるいはどのようなLUTを利用するかは、撮影モードなどの設定に応じて切り替えてもよいが、単にパラメータを記憶するだけのパラメータ記憶手段43に代えて、複数の処理部からの設定入力を受け付けて、入力された複数の値を使って、新たに最適なパラメータ値を求める手段を設けてもよい。
また、上記構成によれば、顔の検出結果を利用して調光を行うことに問題があることを察知もしくは予測できたときに、発光量調整における仮適正値Cfの影響力を抑えることができるが、実際の撮影では、デジタルカメラが事前に察知もしくは予測できないような問題(例えば、顔の誤検出)も起こり得る。よって、上記構成に対しさらに、上記問題が発生した場合でも、発光量決定手段44により決定された発光量が、適正値を大きく外れないようにする機能を備えてもよい。
例えば、発光量決定手段44により、顔を考慮せずに調光を行った場合に求められる適正値、すなわち第1演算手段41が出力する仮適正値Cnを基準とし、その仮適正値Cnの値から判断して妥当と思われる範囲に、適正発光量Chを制限する。つまり、適正発光量Chを、固定された範囲に制限するのではなく、仮適正値Cnに基づいて定められた範囲に制限する。
具体的には、発光量決定手段44に、上記(2)式に代えて、次式(3)および(4)に基づく処理を実行させる。
ここで、Ckは仮の適正発光量である。また、ULは、正常な顔検出が行われた場合であって適正値Cfが適正値Cnよりも大きくなる場合に、適正値Cfと適正値Cnの差分が取り得る値の最大値である。またLLは、正常な顔検出が行われた場合であって適正値Cfが適正値Cnよりも小さくなる場合に、適正値Cfと適正値Cnの差分が取り得る値の最大値である。ULおよびLLの値は、顔を含む被写体の調光を繰り返すことにより経験的に取得された値とする。
上記(3)式により求められる仮の適正発光量は、予期せぬ状況が発生した場合には、極端に大きな値あるいは極端に小さな値となる場合もある。しかし、そのような極端な値となったときでも、上記(4)式に基づく演算により、適正発光量Chは、Cn―LLからCn+ULまでの範囲に制限される。このCn―LLという下限値およびCn+ULという上限値は、適正値Cnを基準として決定される値であるため、発光量がこの範囲である限り、フラッシュ撮影により取得される画像が極端な失敗画像となることはない。すなわち、予期せぬ状況が発生した場合でも撮影が全く無駄になることはない。
なお、以上に説明した例は、適正発光量Chについて上限値と下限値を定めた例であるが、上限値のみ、あるいは下限値のみを定め、極端に大きな値となってしまった場合のみ、あるいは極端に小さな値となってしまった場合のみ、値を制限するようにしてもよい。
以上に説明したように、本実施形態のデジタルカメラでは、発光量決定手段44が、第2演算手段42から供給されるN個の仮適正値Cf1〜CfNを基準値として、その基準値から推定して不都合がないと思われる範囲内の値に、発光量を設定するので、いずれの顔にとっても不都合がない値に、発光量が決定される。これにより、複数の顔が検出され、しかも顔の大きさや明るさ(肌色)が顔ごとに異なっているような場合でも、適切な発光量でフラッシュ撮影が行われ、白とびのない画像を得ることができる。
また、本実施形態では、(2)式や(3)式に示したように、顔を考慮しない調光により求められた仮適正値Cnと、顔を考慮した調光により求められた仮適正値Cfとの加重平均を計算することにより、適正発光量Ch(もしくは仮の適正発光量Ck)を求めているので、発光量調整における仮適正値Cfの影響力を、パラメータαの設定ひとつで簡単に、強めたり弱めたりすることができる。第1演算手段41と第2演算手段42は、常時同じ演算式に基づく演算を行っていればよいので、複数の演算式を調光方針に応じて使い分けるものに比べ、第1演算手段41と第2演算手段42の回路構造あるいはプログラムを、シンプルなものとすることができる。
なお、発光量の調整方法、すなわち発光量決定手段44の処理は、上記(1)〜(4)式に基づく処理に限らず、他の演算式を採用してもよい。例えば、(2)式や(3)式は、加重平均ではなく、二乗平均、対数平均などを求めてもよい。また、例えば、2つの基準値の中間の値よりも何%Cf寄りにする、というように基準値からの調整分を固定的に決めておいてもよい。さらには、加重平均などを求めた後に決まった調整値を加算あるいは減算するなどしてもよい。
[ 実施形態2 ]
次に説明するデジタルカメラは、外観、内部構成は実施形態1のデジタルカメラと同じであるが、フラッシュ制御部19が行う処理が実施形態1と異なる。図12に、本実施形態におけるフラッシュ制御部19の構成と入出力データを示す。フラッシュ制御部19は、図に示すように、演算手段50と、発光量決定手段51と、重み付けパラメータ設定手段52とを備える。
演算手段50は、全体制御部30の制御の下、画像入力制御部23から、非発光時画像データと予備発光時画像データの供給を受け、実施形態1の説明において仮適正値Cnを求めるための処理として説明した図5の処理と同様の処理を行う。但し、演算手段50は、実施形態1の第1演算手段41と異なり、ステップS104において検出された複数の顔のうち1つの顔に対応する領域ブロックに重み付けをおいた演算を行って仮適正値Cf1〜CfNを求める。各領域ブロックの重み付けは、重み付けパラメータ設定手段52により設定される。
重み付けパラメータ設定手段52は、全体制御部30の制御の下、顔領域抽出部24から領域情報の供給を受ける。そして、各領域に対応する領域ブロックに対し、顔がない領域に対応する領域ブロックよりも高い重み付けを設定する。この際、重み付けパラメータ設定手段51は、顔が抽出された領域に対応する領域ブロックの重み付けを一律に高く設定するのではなく、顔が大きいときほど重み付けを高く設定する。例えば、顔がない領域の重み付けを1とした場合、顔に対応するブロック数が3個未満であれば重み付けを3に、3個〜6個であれば重み付けを4に、7個〜10個であれば重み付けを5に、11個以上であれば重み付けを6に設定する。
例えば、図4に示した例では、演算手段50は、まず領域46aに対応するブロック群47aの重み付けを高くし、領域46bと領域46cに対応するブロック群は顔がない領域と同等の重み付けにして図5に示した演算処理を実行し、仮適正値Cf1を求める。領域46aに対応するブロック群47aは12個の領域ブロックを含むので、このときのブロックの重み付けは図13A示すようなものとなる。次に、演算手段50は、領域46bに対応するブロック群47bの重み付けを高くし、領域46aと領域46cに対応するブロック群は顔がない領域と同等の重み付けにして図5に示した演算処理を実行し、仮適正値Cf2を求める。領域46bに対応するブロック群47bは2個の領域ブロックを含むので、このときのブロックの重み付けは図13B示すようなものとなる。続いて、演算手段50は、領域46cに対応するブロック群47cの重み付けを高くし、領域46aと領域46bに対応するブロック群は顔がない領域と同等の重み付けにして図5に示した演算処理を実行し、仮適正値Cf3を求める。領域46cに対応するブロック群47cは2個の領域ブロックを含むので、このときのブロックの重み付けは図13Cに示すようなものとなる。
発光量決定手段51は、演算手段が求めた仮適正値Cf1〜CfNの中から、値が最小のものを選択し、フラッシュの適正発光量Chをその最小の仮適正値に決定する。もしくはフラッシュの適正発光量Chを、最小の仮適正値に所定値を加算もしくは減算した値に決定する。これにより、複数の顔が検出され、顔の大きさや明るさ(肌色)が顔ごとに異なっているような場合でも、適切な発光量でフラッシュ撮影が行われ、白とびのない画像を得ることができる。
以上、2つの実施形態を例示しながら説明したが、本発明はこれらの実施形態に限定されるものではない。例えば、仮適正値Cf1〜CfNの中の最小値のみを基準値として調整を行うのではなく、最小値と最大値とを基準値として調整を行えば、白とびを防止できるだけでなく、明るさ不足の顔がなくなるように発光量を決めることができる。この他、複数の顔が検出されたときに各顔について個別に適正発光量が求めておき、発光量の調整を、顔ごとの適正発光量を基準値として行う方法およびデジタルカメラは、すべて本発明の技術的範囲に属する。