(57)【特許請求の範囲】
【請求項１】
画像から被写体領域を検出する被写体検出手段と、
前記画像を複数の領域に分割する分割手段と、
前記複数の領域のうち、前記被写体領域と重複している領域の各々について、領域の代表色を表す色情報を算出する色情報算出手段と、
前記被写体領域と重複している領域の各々について、重みを決定する重み決定手段と、
前記色情報の各々に、当該色情報を求めた前記被写体領域と重複している領域について決定された前記重みを適用して積算する積算手段と、
前記色情報の積算結果と、予め定められた目標色の情報とから、前記代表色が前記目標色となるようなホワイトバランス制御値を算出するホワイトバランス制御値算出手段と、を有し、
前記重み決定手段は、前記被写体領域の大きさが、前記複数の領域のうちで全体が前記被写体領域に含まれる領域が、前記被写体領域の前記画像における位置によらず１つ以上存在する大きさの閾値Ｔｈ未満であれば、前記重みを０に決定し、前記閾値Ｔｈ以上であれば、前記重みを０より大きな値に決定することを特徴とするホワイトバランス制御装置。
【請求項２】
前記重み決定手段が、前記被写体領域が前記閾値Ｔｈに等しい大きさから大きくなるに従って段階的または徐々に前記重みが最大値に近づくように前記重みを決定することを特徴とする請求項１記載のホワイトバランス制御装置。
【請求項３】
前記色情報算出手段が、前記領域に含まれる画素値を色成分ごとに平均した色平均値を前記色情報として算出することを特徴とする請求項１又は請求項２に記載のホワイトバランス制御装置。
【請求項４】
前記重み決定手段が、前記重みを０に決定しない場合、前記被写体領域と重複している割合が小さい領域ほど前記重みが小さくなるように前記重みを決定することを特徴とする請求項１乃至請求項３のいずれか１項に記載のホワイトバランス制御装置。
【請求項５】
複数の前記被写体領域が検出され、かつ前記重みを０に決定しない場合、前記重み決定手段は、前記被写体領域と重複する領域のうち、前記複数の前記被写体領域のうち主要被写体として選択された被写体領域と重複する領域に対する重みが、他の被写体領域と重複する領域に対する重みより大きくなるように前記重みを決定することを特徴とする請求項１乃至請求項４のいずれか１項に記載のホワイトバランス制御装置。
【請求項６】
前記重み決定手段が前記重みを０に決定した場合、前記ホワイトバランス制御値算出手段が、前記複数の領域のうち白色であると判断される領域の色情報からホワイトバランス制御値を算出することを特徴とする請求項１乃至請求項５のいずれか１項に記載のホワイトバランス制御装置。
【請求項７】
前記画像を撮像する撮像手段と、
請求項１乃至請求項６のいずれか１項に記載のホワイトバランス制御装置と、
前記ホワイトバランス制御値を前記画像に反映する反映手段と、を有することを特徴とする撮像装置。
【請求項８】
被写体検出手段が、画像から被写体領域を検出する被写体検出工程と、
分割手段が、前記画像を複数の領域に分割する分割工程と、
色情報算出手段が、前記複数の領域のうち、前記被写体領域と重複している領域の各々について、領域の代表色を表す色情報を算出する色情報算出工程と、
重み決定手段が、前記被写体領域と重複している領域の各々について、重みを決定する重み決定工程と、
積算手段が、前記色情報の各々に、当該色情報を求めた前記被写体領域と重複している領域について決定された前記重みを適用して積算する積算工程と、
ホワイトバランス制御値算出手段が、前記色情報の積算結果と、予め定められた目標色の情報とから、前記代表色が前記目標色となるようなホワイトバランス制御値を算出するホワイトバランス制御値算出工程と、を有し、
前記重み決定工程では、前記被写体領域の大きさが、前記複数の領域のうちで全体が前記被写体領域に含まれる領域が、前記被写体領域の前記画像における位置によらず１つ以上存在する大きさの閾値Ｔｈ未満であれば、前記重みを０に決定し、前記閾値Ｔｈ以上であれば、前記重みを０より大きな値に決定することを特徴とするホワイトバランス制御方法。
【請求項９】
画像から被写体領域を検出する被写体検出手段と、
前記画像を複数の領域に分割する分割手段と、
前記複数の領域のうち、前記被写体領域と重複している領域の各々について、領域の代表色を表す色情報を算出する色情報算出手段と、
前記色情報と予め定められた目標色の情報とから、前記代表色が前記目標色となるような第２のホワイトバランス制御値を算出可能であるホワイトバランス制御値算出手段と、
前記被写体領域の大きさが、前記複数の領域のうちで全体が前記被写体領域に含まれる領域が、前記被写体領域の前記画像における位置によらず１つ以上存在する大きさに相当する閾値Ｔｈ未満であれば、前記第２のホワイトバランス制御値とは別に前記画像から算出された、第１のホワイトバランス制御値を前記画像に反映する反映手段と、を備えることを特徴とするホワイトバランス制御装置。
【請求項１０】
前記第１のホワイトバランス制御値は、前記複数の領域のうちで白色であると判断される領域の色情報から算出されることを特徴とする請求項９に記載のホワイトバランス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はホワイトバランス制御装置及び制御方法に関し、特にホワイトバランス制御値の算出に被写体検出の結果を用いるホワイトバランス制御装置及び制御方法に関する。本発明はさらに、本発明のホワイトバランス制御装置を用いた撮像装置に関する。
【背景技術】
【０００２】
デジタルカメラやデジタルビデオカメラなどの撮像装置においては、撮像によって得られた画像の色調を調整するホワイトバランス制御の機能を備えている。ホワイトバランス制御は、白い物体が白く撮像されるよう、ホワイトバランス制御値（補正値）により撮像画像の画素値を補正する処理である。
【０００３】
ホワイトバランス制御には、マニュアルホワイトバランス制御と、オートホワイトバランス制御がある。マニュアルホワイトバランス制御では、白い紙など、基準としたい白色物体を撮像して得られた画像の画素値からホワイトバランス制御値を求める。また、オートホワイトバランス制御では、通常の撮像で得られた画像から白色と思われる部分を自動検出し、検出された部分の画素値を用いてホワイトバランス制御値を求めるのが一般的である。
【０００４】
この、一般的なオートホワイトバランス制御では、白色であると判断できる部分が画像全体に対して小さい場合や、誤って白色と判断した部分が大きい場合には、正しいホワイトバランス制御値が取得できない。正しいホワイトバランス制御値が得られないと、ホワイトバランス制御した画像が色かぶりしてしまう。
【０００５】
この課題を解決するため、顔検出情報を用いたホワイトバランス制御値の算出方法が提案されている（特許文献１）。例えば、特許文献１には、一般的なオートホワイトバランス制御で得られるホワイトバランス制御値を適用した顔領域の色が、肌色として適正な範囲になるよう、必要に応じてホワイトバランス制御値を補正することが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１５９４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１では、顔領域から得られる色情報が肌色を示すことを前提としてホワイトバランス制御値を補正している。しかしながら、色情報は画像を分割したブロック単位で求められ、ブロックの大きさや形状は顔領域の大きさや位置とは独立して定められている。そのため、顔領域と重複するブロックに肌色画素が支配的に含まれているとは限らない。つまり、ブロックサイズと顔領域の大きさや位置との関係により、顔領域と重複するブロックから正しい肌色の情報が得られない場合もある。例えば、同じシーンで複数の画像を連続して撮像している途中に被写体の向きや位置が変わった場合、同じシーンで撮像した画像であっても、顔領域と重複するブロックから正しい肌色が取得できたりできなかったりする。この場合、特許文献１の手法では、顔検出情報を用いて算出されるホワイトバランス制御値が大きく変動する可能性があり、同じシーンで連続して撮像した画像であっても、色調が一定しない原因となる。
【０００８】
本発明はこのような従来技術の課題に鑑みてなされたものであり、被写体領域から得られる色情報を用いて算出するホワイトバランス制御値のばらつきを抑制することが可能なホワイトバランス制御装置および制御方法を提供する。
【課題を解決するための手段】
【０００９】
すなわち、本発明に係るホワイトバランス制御装置は、画像から被写体領域を検出する被写体検出手段と、画像を複数の領域に分割する分割手段と、複数の領域のうち、被写体領域と重複している領域の各々について、領域の代表色を表す色情報を算出する色情報算出手段と、被写体領域と重複している領域の各々について、重みを決定する重み決定手段と、色情報の各々に、当該色情報を求めた被写体領域と重複している領域について決定された重みを適用して積算する積算手段と、色情報の積算結果と、予め定められた目標色の情報とから、代表色が目標色となるようなホワイトバランス制御値を算出するホワイトバランス制御値算出手段と、を有し、重み決定手段は、被写体領域の大きさが、複数の領域のうちで全体が被写体領域に含まれる領域が、被写体領域の画像における位置によらず１つ以上存在する大きさの閾値Ｔｈ未満であれば、重みを０に決定し、閾値Ｔｈ以上であれば、重みを０より大きな値に決定することを特徴とする。
【発明の効果】
【００１０】
このような構成により、本発明によれば、被写体領域から得られる色情報を用いて算出するホワイトバランス制御値のばらつきを抑制することが可能なホワイトバランス制御装置および制御方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るホワイトバランス制御装置を用いた撮像装置の機能構成例を示すブロック図。
【図２】図１の被写体検出部の処理を説明するためのフローチャート。
【図３】図１のホワイトバランス制御部の処理を説明するためのフローチャート
【図４】図３のＳ４２００で行う第１のオートホワイトバランス演算処理の詳細を説明するためのフローチャート。
【図５】図３のＳ４３００で行う第２のオートホワイトバランス演算処理の詳細を説明するためのフローチャート。
【図６】図５のＳ４２０４で決定される加重重みw[i]の例について説明するための図。
【図７】本発明の第２の実施形態における加算重みw[i]の決定方法を説明するための図。
【図８】本発明の第３の実施形態における加算重みw[i]の決定方法を説明するための図。
【図９】本発明の第４の実施形態における加算重みw[i]の決定方法を説明するための図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明の例示的な実施形態を詳細に説明する。
図１は、本発明の実施形態に係るホワイトバランス制御装置を用いた撮像装置１００の機能構成例を示すブロック図である。なお、撮像装置が有する、レンズや撮像素子といった撮像に係る構成や、撮像画像の記録に係る構成は、本発明のホワイトバランス制御装置に必須でない。また、ホワイトバランス制御を行う画像のデータ形式は任意であり、例えばＲＡＷデータであってもＪＰＥＧデータであっても構わない。
【００１３】
被写体像は、結像光学系であるレンズ１０００により、撮像素子１０１０の撮像面に結像される。本実施形態において撮像素子１０１０は、例えば、一般的な原色カラーフィルタを備える単板カラー撮像素子とする。原色カラーフィルタは、各々６５０ｎｍ、５５０ｎｍ、４５０ｎｍ近傍に透過主波長帯を持つ３種類の色フィルタからなり、各々Ｒ（赤）、Ｇ（緑）、Ｂ（青）に対応する色プレーンを撮影する。
【００１４】
単板カラー撮像素子では、各画素が１色のフィルタに対応するよう、３色のフィルタを規則的に配列したカラーフィルタを用いるので、各画素では単一色プレーンの輝度を得ることしかできない。このため、撮像素子１０１０からは色モザイク画像が出力される。Ａ／Ｄ変換部１０２０では撮像素子から画素毎のアナログ電圧として出力される色モザイク画像を、以降の画像処理に適するデジタルデータへと変換する。被写体検出部１０３０では、デジタルデータに変換した画像に対して、周知の任意の方法によって特定の被写体検出処理を行い、特定被写体と思われる領域（被写体領域）ごとに位置、大きさ、信頼度などの情報を求める。なお、本実施形態では特定被写体として人間の顔を検出する。
【００１５】
ホワイトバランス制御部１０４０は、後述する処理により、ホワイトバランス制御値を求め、画像に適用する。具体的には白くあるべき領域のＲ，Ｇ，Ｂが等色になるようなゲインをホワイトバランス制御値として求め、画像のＲ，Ｇ，Ｂ成分に適用する。
【００１６】
色分離部１０５０は、色モザイク画像を補間することによって、全ての画素がＲ、Ｇ、Ｂの情報を有するカラー画像を生成する。生成されたカラー画像は、マトリクス変換部１０６０およびガンマ変換部１０７０を経て基本的なカラー画像が生成される。色調整部１０８０は、例えば、ノイズ低減、彩度強調、色相補正、エッジ強調といった画像の見栄えを改善するための処理を適用する。色調整部１０８０の出力する画像を原画像と称し、メモリ１１２０に蓄える。もしくは、圧縮部１０９０で原画像をＪＰＥＧ等の方法で圧縮し、記録部１１００にてメモリカード等の記録媒体に記録する。
【００１７】
制御部１１１０は、撮像装置１００全体の処理を制御する。制御部１１１０は、例えば制御プログラムを記憶するＲＯＭと、制御プログラムを実行するＣＰＵと、ＣＰＵが制御プログラムの実行時にワークエリアとして用いるＲＡＭを有していてよい。
メモリ１１２０は、各部における処理で用いる中間データの保存などに用いられる。
【００１８】
操作部１１３０は、ユーザが撮像装置１００に各種指示や設定を行うためのスイッチやボタンなどを有する。また、操作部１１３０はＥＶＦとして用いたり、各種情報を表示したりするための表示装置を有していてもよい。
レンズ１０００を除く各部は、バス１１４０を通じて互いに通信可能に接続される。
【００１９】
図２に示すフローチャートを参照して、被写体検出部１０３０の処理（顔検出処理）を説明する。
Ｓ３１００で被写体検出部１０３０は、Ａ／Ｄ変換部１０２０が出力する画像から、顔検出に適するような輝度情報を抽出するといった前処理を行う。Ｓ３２００で被写体検出部１０３０は、抽出した輝度情報から顔の特徴量を抽出する。Ｓ３３００で被写体検出部１０３０は、抽出した顔の特徴量から、１つまたは複数の、顔と思われる領域（顔領域）を検出する。そして、被写体検出部１０３０は、顔領域ごとに、画像内の位置や大きさ、顔のパーツ（目や鼻など）位置、顔としての信頼度などの顔検出情報を検出結果として取得する。顔検出の方法や、顔検出情報の構成について特に限定はなく、任意の公知技術を用いることができる。
【００２０】
（ホワイトバランス制御部の全体動作）
図３に示すフローチャートを参照して、ホワイトバランス制御部１０４０の全体動作を説明する。
Ｓ４１００において、ホワイトバランス制御部１０４０は、画像から得られる色情報より第１のオートホワイトバランス制御値を求める。Ｓ４２００において、ホワイトバランス制御部１０４０は、被写体検出部１０３０の顔検出結果に基づいて第２のオートホワイトバランス制御値を求める。Ｓ４３００において、ホワイトバランス制御部１０４０は、第２のオートホワイトバランス制御値、もしくは妥当な第２のオートホワイトバランス制御値が得られなかった場合は第１のオートホワイトバランス制御値を、最終的なオートホワイトバランス制御値とする。
【００２１】
Ｓ４４００において、ホワイトバランス制御部１０４０は、操作部１１３０からのユーザー指示により、複数の選択肢から、画像に反映するホワイトバランス制御値を決定する。この選択肢には、オートホワイトバランス制御値を含むプリセットホワイトバランス制御値や、マニュアルホワイトバランス制御値などが含まれる。このように、反映手段としてのホワイトバランス制御部１０４０では、ユーザーの選択したホワイトバランス制御値を画像に反映することができる。また、ユーザーがオートホワイトバランス制御値を選択した場合、顔検出情報を用いたホワイトバランス制御値を反映することができる。なお、Ｓ４４００において画像に反映するホワイトバランス制御値をユーザが逐一決定する必要はなく、例えば予め決定されたホワイトバランス制御値を反映させてもよい。
【００２２】
（第１のオートホワイトバランス制御値算出処理）
図４に示すフローチャートを用いて、ホワイトバランス制御部１０４０が図３のＳ４１００で行う第１のオートホワイトバランス制御値の算出処理について説明する。
【００２３】
まず、ホワイトバランス制御部１０４０は、Ａ／Ｄ変換部１０２０からメモリ１１２０に記憶された画像を読み出し、複数のブロックに分割する（Ｓ４１０１）。分割数をｍ（ｍは２以上の整数）とする。画像を分割する方法に制限はないが、例えば、同サイズの四角形や六角形の領域に分割することができる。
【００２４】
Ｓ４１０２〜Ｓ４１０６は、分割した各ブロックに対して行われる。ホワイトバランス制御部１０４０は、各ブロックに含まれる画素値を色成分ごとに平均して色平均値（R[i]、G[i]、B[i]）を算出する（Ｓ４１０２）。さらにホワイトバランス制御部１０４０は、以下の式（１）を用いてブロックごとに色評価値（Cx[i]、Cy[i]）を算出する（Ｓ４１０３）。
Cx[i] =（R[i] − B[i]）/ Y[i] × 1024
Cy[i] =（R[i] + B[i] − ２G[i]）/ Y[i] × 1024            式（１）
ただし、Y[i] = R[i] + ２G[i] + B[i]、i=1...m
【００２５】
次に、ホワイトバランス制御部１０４０は、Ｓ４１０３で算出したi番目のブロックの色評価値（Cx[i]、Cy[i]）が、予め設定した白検出範囲に含まれるかどうかを判断する（Ｓ４１０４）。白検出範囲とは、白色物体を特性（色温度など）の異なる光源下で予め撮影し、算出した色評価値の、Cx-Cy座標系における範囲である。
【００２６】
算出した色評価値（Cx[i]、Cy[i]）が白検出範囲に含まれる場合（Ｓ４１０４でYES）、ホワイトバランス制御部１０４０はそのブロックが白色であると判断する。そして、ホワイトバランス制御部１０４０は、白色であると判断したブロックの色平均値（R[i]、G[i]、B[i]）を積算する（Ｓ４１０５）。一方、色評価値（Cx[i]、Cy[i]）が白検出範囲に含まれない場合、ホワイトバランス制御部１０４０は、そのブロックの色平均値を積算せずに処理をＳ４１０６に進める。このＳ４１０４及びＳ４１０５における処理（白抽出処理）は、以下の式（２）により表すことができる。
SumR += w[i] * R[i]
SumG += w[i] * G[i]
SumB += w[i] * B[i]        式（２）
ただし、i=1...m
【００２７】
式（２）において、色評価値（Cx[i]、Cy[i]）が白検出範囲に含まれる場合は加算重みw[i]を１に、含まれない場合には加算重みw[i]を０とする。これにより、色評価値（Cx[i]、Cy[i]）が白検出範囲に含まれるブロックの色平均値（R[i]、G[i]、B[i]）のみが積算される。Ｓ４１０６でホワイトバランス制御部１０４０は、すべてのブロックについてＳ４１０２〜Ｓ４１０５の処理を行ったかどうかを判断し、未処理のブロックがあれば処理をＳ４１０２に戻し、すべてのブロックで処理したならば処理をＳ４１０７に進める。Ｓ４１０７でホワイトバランス制御部１０４０は、得られた色平均値の積分値（SumR、SumG、SumB）から、以下の式（３）式を用いて、第１のオートホワイトバランス制御値（WBCol_R1、WBCol_G1、WBCol_B1）を算出する。
WBCol_R1 = SumY × 1024 / SumR
WBCol_G1 = SumY × 1024 / SumG
WBCol_B1 = SumY × 1024 / SumB          式（３）
ただし、SumY = （SumR + ２ × SumG ＋ SumB）/ ４
【００２８】
（第２のオートホワイトバランス制御値算出処理）
図５に示すフローチャートを用いて、ホワイトバランス制御部１０４０が図３のＳ４２００で行う第２のオートホワイトバランス制御値の算出処理について説明する。
【００２９】
まず、分割手段としてのホワイトバランス制御部１０４０は、Ａ／Ｄ変換部１０２０からメモリ１１２０に記憶された画像を読み出し、複数のブロックに分割する（Ｓ４２０１）。分割数をｎ（ｎは２以上の整数）とする。
【００３０】
この分割処理は、ホワイトバランス制御部１０４０の処理負荷を軽減する観点からは、Ｓ４１０１における分割と同じ方法（同じブロックの形状および大きさ。すなわちｎ＝ｍ）で行うことが望ましい。ただし、処理能力やメモリに十分な余裕がある場合には、撮像条件や顔検出結果などの条件に応じてＳ４１０１とＳ４２０１での分割数と分割形状の少なくとも一方が異なってもよい。
【００３１】
Ｓ４２０２〜Ｓ４２０６は、分割した各ブロックに対して行われる。色情報算出手段としてのホワイトバランス制御部１０４０は、ブロックの少なくとも一部が、被写体検出部１０３０で検出された顔領域と重複するか判別し（Ｓ４２０２）、重複するブロックについて、ブロックの代表色を表す色情報を算出する。本実施形態において、ホワイトバランス制御部１０４０は、ブロックに含まれる画素値を色成分ごとに平均した色平均値（R[i]、G[i]、B[i]）を色情報として算出する（Ｓ４２０３）。ただし、顔領域内の肌色部分について色平均値を精度よく算出するためには、ブロック全体が顔領域内に含まれていることが望ましい。
【００３２】
重み決定手段としてのホワイトバランス制御部１０４０は、ブロック内の画素から得られる情報や被写体検出部１０３０から得られる情報（顔検出結果）を基に、処理中のブロックに対する加算重みw[i]を算出する（Ｓ４２０４）。そして、積算手段としてのホワイトバランス制御部１０４０は、上述した式（２）式を用い、ブロックの色平均値（R[i]、G[i]、B[i]）にブロックの加算重みw[i]を適用して積算（加重加算）する（Ｓ４２０５）。
【００３３】
一方、処理中のブロックが顔領域と全く重複しない場合（Ｓ４２０２，No）、ホワイトバランス制御部１０４０は、ブロックの色平均値を積算せずに処理をＳ４２０６に進める。これは、顔領域と重複しないブロックに対するブロックの加算重みw[i]を０とすることに相当する。
【００３４】
Ｓ４２０６でホワイトバランス制御部１０４０は、Ｓ４２０１で分割したすべてのブロックについてＳ４２０２〜Ｓ４２０５の処理を行ったかどうかを判断する。そして、ホワイトバランス制御部１０４０は、未処理のブロックがあれば処理をＳ４２０２に戻し、すべてのブロックで処理したならば処理をＳ４２０７に進める。Ｓ４２０７でホワイトバランス制御値算出手段としてのホワイトバランス制御部１０４０は、以下の式（４）式を用いて、第２のオートホワイトバランス制御値（WBCol_R2、WBCol_G2、WBCol_B2）を算出する。
WBCol_R2 = SumY × SkinR × 1024 / SumR
WBCol_G2 = SumY × SkinG × 1024 / SumG
WBCol_B2 = SumY × SkinB × 1024 / SumB        式（４）
ただし、SumY = （SumR + ２ × SumG ＋ SumB）/ ４、
SumR、SumG、SumBは得られた色平均値の加重加算値（積算結果）、SkinR、SkinG、SkinBは目標とする肌色のカラーバランス制御値である。第２のオートホワイトバランス制御値は、顔領域と重複するブロックの代表色が肌色の目標色となるようなホワイトバランス制御値である。
【００３５】
本実施形態で、ホワイトバランス制御部１０４０は、図３のＳ４３００において、通常は第２のオートホワイトバランス制御値を最終的なオートホワイトバランス制御値とする。しかし、被写体検出部１０３０において顔領域が検出できなかった場合など、Ｓ４２０５で求める色平均値の加重加算値がオートホワイトバランス制御値を求めるための値として妥当な値でない場合がある。このような場合、ホワイトバランス制御部１０４０は、Ｓ４３００において第１のオートホワイトバランス制御値を最終的なオートホワイトバランス制御値とする。
【００３６】
（加重重みの算出処理）
次に、図６を用いて、図５のＳ４２０４における加重重みw[i]の処理の例について説明する。ここでは、被写体検出部１０３０から得られる検出結果のうち、顔領域の大きさ情報を基に加算重みを算出する方法を説明する。
【００３７】
ブロックの大きさが顔領域より小さい場合であっても、顔の位置によっては、顔領域に全体が含まれるブロックが存在しない場合がある。一方、ブロックの大きさには処理の高速化や色評価値の信頼性などの観点から下限がある。そのため、図６（ａ）で示すように顔領域が小さい場合には特に、顔領域に全体が含まれるブロックが存在しない確率が高くなる。
【００３８】
顔領域が検出できていても、顔領域に全体が含まれるブロックが存在しない場合、顔領域に一部が重複するブロックの色情報に基づいて算出される第２のオートホワイトバランス制御値は安定しない。そのため、同じシーンを連続して撮像した画像間での色調が一定しないことが生じうる。
【００３９】
そのため、本実施形態では、Ｓ４２０１における画像の分割数及び分割形状と、顔領域の大きさとの関係に応じて、各ブロックの加算重みを決定することを特徴とする。より具体的には、顔領域の大きさが、顔領域の位置によらず、顔領域に全体が含まれるブロックが１つ以上存在する大きさを有するか否かにより、加算重みを決定する。顔領域の位置によらず、顔領域に全体が含まれるブロックが１つ以上存在するという条件を満たす顔領域の大きさは、画像の分割数と分割形状、顔領域の検出形状に応じて判定することができる。
【００４０】
例えば、ブロックの分割形状、顔領域の検出形状とも正方形の場合、顔領域の大きさが、縦横２×２ブロック分以上であれば、顔領域が画像中どの位置にあっても顔領域に全体が含まれるブロックが１つ以上存在するという条件を満たす。
【００４１】
本実施形態では、図６（ｂ）で示すように、被写体検出部１０３０から得られる顔領域の大きさが、顔領域の位置によらず、全体が含まれるブロックが１つ以上存在する大きさＴｈ未満の場合、顔領域と重複するブロックも加算重みw[i]を０とする。従って、SumR、SumG、SumBはすべて０となり、第２のオートホワイトバランス制御値は算出されず、Ｓ４３００では第１のオートホワイトバランス制御値が最終的なオートホワイトバランス制御値となる。
【００４２】
一方、顔領域の大きさがＴｈ以上の場合には、顔領域との重複を有するブロックの加算重みw[i]を０より大とする。なお、顔領域の大きさがＴｈ以上の場合、一律に加算重みw[i]を１としてもよい。しかし、その場合、顔領域の大きさがＴｈ付近で変動すると最終的なオートホワイトバランス制御値が第２のオートホワイトバランス制御値と第１のオートホワイトバランス制御値との間で頻繁に切り替わることが起こりうる。これは、オートホワイトバランス制御を適用した場合のショット間で色調がばらつく要因となる。そのため本実施形態では、加算重みw[i]の値を、顔領域の大きさがＴｈから大きくなるにつれて段階的もしくは徐々に最大値Wmax（ここでは１）に近づくように決定する。
【００４３】
顔領域の大きさがＴｈとなってから加算重みw[i]が最大値に達するまでの変化率（図６（ｂ）における加算重みの増加部分の傾き）は、小さすぎると顔検出結果を十分利用できなくなり、大きすぎると上述の変動の問題が大きくなる。そのため、適切な値を例えば実験などにより求めて設定する。なお、図６（ｂ）のように１次直線的に増加させてもよいし、Ｔｈ付近での増加率は低く、その後は増加率を高くする２次曲線的に増加させてもよい。
【００４４】
（変形例）
図６（ａ）では説明及び理解を容易にするため、顔領域の傾きもしくは回転がない場合を例示した。しかし、図６（ｃ）に示すように、顔領域が傾きもしくは回転している場合、Ｔｈの値は変化する（図６（ａ）のようなブロック分割を行う場合、傾きがない場合よりもＴｈが大きくなる）。そのため、顔領域の大きさ閾値Ｔｈを、顔領域の傾きもしくは回転の量を考慮して求めることで、第２のオートホワイトバランス制御値をさらに安定させることが可能である。
【００４５】
以上説明したように、本実施形態では、顔領域に全体が含まれるブロックが存在することが確実でない場合、顔領域と重複しているブロックに対しても加算重みを０とする。そのため、顔領域に全体が含まれるブロックが存在することが確実でない場合には、画像全体の情報に基づく第１のオートホワイトバランスが最終的なオートホワイトバランス制御値となる。
【００４６】
そして、顔領域に全体が含まれるブロックが存在することが確実な場合には、顔領域と重複するブロックの色平均値に基づく第２のオートホワイトバランス制御値を算出し、最終的なオートホワイトバランス制御値とする。これにより、顔領域と重複するブロックの色情報に基づいて算出されるオートホワイトバランス制御値のバラツキが小さくなり、同じシーンを連続して撮像した画像間の色調の変化を抑制することが可能になる。
【００４７】
さらに、顔領域に全体が含まれるブロックが存在することが確実となる顔領域の大きさ閾値Ｔｈから顔領域が大きくなるに従って段階的もしくは徐々に加算重みw[i]を最大値に近づけることで、顔領域の大きさが閾値Ｔｈ付近で変化した際の問題を緩和できる。
【００４８】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。本実施形態は、第２のオートホワイトバランス制御値算出処理における、顔領域と重複したブロックの色評価値の加算重みw[i]の決定方法以外第１の実施形態と同様である。そのため、加算重みw[i]の決定方法についてのみ説明する。
【００４９】
第１の実施形態においては、顔領域の大きさが閾値Ｔｈ以上である場合に、顔領域と重複を有するブロックの色評価値（色平均値）に対する加算重みを一律の値に設定していた。しかし、顔領域から肌の色だけを精度よく抽出しようとした場合、顔領域内に全体が含まれるブロックが多数存在することが望ましい。しかし、図７（ａ）に示すように顔領域が小さい場合には、顔領域と重複したブロックの総数（９個）に対して顔領域に全体が含まれるブロックの数（１個）が少なくなる。この場合、９個のブロックに対して一律の加算重みで色平均値を加重加算すると、顔領域内に全体が含まれるブロックから得られる最も良好な色平均値が加重加算値に占める割合が小さくなる。
【００５０】
そのため、本実施形態では、顔領域と重複するブロックに対する加算重みw[i]の値を、顔領域と重複する割合が小さいほど小さくすることで、肌色画素があまり含まれていないと考えられるブロックの色平均値の重みを小さくする。例えば、顔領域と９割重複しているブロックであれば、顔領域内に全体が含まれるブロックの加算重みの９割の値に削減したり、顔領域と１割未満が重複するブロックの加算重みの９倍に増加したりする。図７（ｂ）には、図７（ａ）の状況において、顔領域内に全体が含まれるブロックの加算重みを１０とした場合の加算重みの相対的な大きさの例を示している。
【００５１】
例えば、第１の実施形態において図６（ｂ）のような顔領域の大きさと加算重みの関係に従って求めた、基準となる加算重みに対して係数を乗じることによって上述のような加算重みを決定することができる。
【００５２】
本実施形態によれば、顔領域内に全体が含まれるブロックの数が少ない場合であっても、顔領域内に全体が含まれるブロックの色平均値が十分に反映された加重加算結果が得られる。そのため、第１の実施形態による効果に加え、第２のオートホワイトバランス制御値の精度をさらに向上させることが可能となる。
【００５３】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。本実施形態も、第２の実施形態と同様、顔領域と重複したブロックの色評価値の加算重みw[i]の決定方法以外第１の実施形態と同様である。そのため、加算重みw[i]の決定方法についてのみ説明する。
【００５４】
本実施形態は、被写体検出部１０３０における顔検出処理結果として得られる顔パーツ（目や鼻など）の情報に基づいて、顔領域と重複するブロックに対する加算重みw[i]を補正することを特徴とする。
【００５５】
より純粋な肌の色を取得できた場合、より高精度な第２のオートホワイトバランス制御値が得られる。そこで、本実施形態では、ブロックの代表色として取得することが望ましい色が多く含まれる可能性の高い位置のブロックの色平均値に対する加算重みを、その他の部分に該当するブロックの色平均値に対する加算重みよりも大きくする。特定被写体が人間の顔であれば、例えば頬や額など、顔の中でもより平坦な部分に該当するブロックの色平均値に対する加算重みを、その他の部分に該当するブロックの色平均値に対する加算重みよりも大きくする。
【００５６】
頬や額の位置は、顔検出処理結果として与えられてもよいし、顔検出処理で通常検出される目や鼻の位置から推定してもよい。そして、顔領域に全体が含まれるブロックのうち、頬や額と重複するブロックの加算重みw[i]を、その他の部位と重複するブロックの加算重みw[i]よりも大きくする。例えば、頬や額と重複するブロックの加算重みw[i]は、その他の顔検出領域と重複するブロックの加算重みw[i]の２倍とする（図８（ａ）及び（ｂ）参照）。
【００５７】
例えば、第１の実施形態において図６（ｂ）のような顔領域の大きさと加算重みの関係に従って求めた、基準となる加算重みに対して係数を乗じることによって上述のような加算重みを決定することができる。
【００５８】
本実施形態によっても、色平均値の積分値に占める、より純粋な肌の色から得られる色平均値の割合が高くなるので、第２の実施形態と同様、第２のオートホワイトバランス制御値の精度をさらに向上させることが可能となる。
【００５９】
（第４の実施形態）
次に、本発明の第４の実施形態について説明する。本実施形態も、第２、第３の実施形態と同様、顔領域と重複したブロックの色評価値の加算重みw[i]の決定方法以外第１の実施形態と同様である。そのため、加算重みw[i]の決定方法についてのみ説明する。本実施形態は第２または第３の実施形態と組み合わせることができる。
【００６０】
本実施形態は、被写体検出部１０３０において複数の顔領域が検出された場合の、顔領域と重複したブロックの色評価値の加算重みw[i]の決定方法に関する。例えば、公園や街中で撮像する場合のように、意図した被写体（主要被写体）以外の人物が撮像されて複数の顔領域が検出される場合がある。複数の顔領域が検出された場合、個々の顔領域から得られる情報を活用することで、より高精度な第２のオートホワイトバランス制御値を得ることが可能となると思われる。しかしながら、一般には主要被写体のホワイトバランスが適切であることが望まれることを考慮し、複数の顔領域からの色平均値の積分値における主要被写体の色平均値の占める割合を高くすることが望ましい。
【００６１】
このような観点から、本実施形態では、顔領域と重複するブロックのうち、主要被写体の顔領域と重複するブロックに対する加算重みw[i]を、主要被写体以外の人物の顔領域と重複するブロックに対する加算重みw[i]よりも大きくする。例えば、主要被写体の顔領域と重複するブロックに対する加算重みw[i]を、主要被写体以外の人物の顔領域と重複するブロックに対する加算重みw[i]の３倍とする（図９（ａ）及び（ｂ）参照）。この方法を用いることで、色平均値の積分値に占める、主要被写体から得られる色平均値の割合が高くなる。
【００６２】
例えば、第１の実施形態において図６（ｂ）のような顔領域の大きさと加算重みの関係に従って求めた、基準となる加算重みに対して係数を乗じることによって上述のような加算重みを決定することができる。
【００６３】
なお、被写体検出部１０３０において検出された複数の顔領域のうち、どの顔領域を主要被写体として選択するかは、任意の方法によることができる。例えば、最も大きな顔領域、最も画像の中央に近い顔領域、顔検出の信頼度が最も高い顔領域などの条件で主要被写体を決定してもよい。また、合焦度合（デフォーカス量）、笑顔度、目線の位置などの情報を用いて主要被写体を決定してもよい。これら条件を複数組み合わせて用いてもよい。あるいは、ユーザーに主被写体とする顔を選択させるようにしてもよい。
【００６４】
なお、本実施形態においては、少なくとも主要被写体とする顔領域の大きさが、第１の実施形態で説明した閾値Ｔｈ以上でなければ、第２のオートホワイトバランス制御値の算出が行われない（加算重みが全ブロックで０となるため）。しかし、主要被写体とする顔領域の大きさがＴｈ以上であれば、他の顔領域の大きさは閾値Ｔｈ未満であってもよい。これは、上述した加算重みの決定により、主要被写体でない人物の顔領域から得られる色平均値が色平均値の積分値に占める割合が小さいためである。
【００６５】
本実施形態を第２又は第３の実施形態と組み合わせる場合、図９（ｂ）のように求めた主要被写体の加算重みに対し、第２又は第３の実施形態で説明した補正を適用すればよい。
【００６６】
本実施形態によれば、顔領域が複数検出されている場合、個々の顔領域から得られる情報を有効に活用することで第２のオートホワイトバランス制御値の精度向上が期待される。さらに、主要被写体の色調が適切となるような第２のオートホワイトバランス制御値を得ることができる。
また、第２又は第３の実施形態と組み合わせることで、これら実施形態の効果も合わせて実現できる。
【００６７】
（その他の実施形態）
上述の実施形態では、第１のホワイトバランス制御値と、第２のオートホワイトバランス制御値の両方を算出し、第２のオートホワイトバランス制御値が算出できない場合や信頼度が低い場合にのみ第１のホワイトバランス制御値を用いる構成を説明した。しかし、本発明の課題は顔領域から得られる色情報を用いて算出する第２のオートホワイトバランス制御値のばらつき、特に同一シーンで得られる第２のオートホワイトバランス制御値のばらつきを抑制することである。そのため、第１のホワイトバランス制御値の算出は本発明において必須ではない。
【００６８】
さらに、上述の実施形態では、第２のオートホワイトバランス制御値の算出に人物の顔領域から得られる色情報を用いる場合を説明した。しかし、本発明は、予め目標となる色がわかっている任意の特定被写体の領域から得られる色情報を用いた第２のオートホワイトバランス制御値の算出に対して適用可能である。
【００６９】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【図１】
0005825796.tif 000002
【図２】
0005825796.tif 000003
【図３】
0005825796.tif 000004
【図４】
0005825796.tif 000005
【図５】
0005825796.tif 000006
【図６】
0005825796.tif 000007
【図７】
0005825796.tif 000008
【図８】
0005825796.tif 000009
【図９】
0005825796.tif 000010