説明

ホワイトバランス調整装置、ホワイトバランス調整方法、ホワイトバランス調整プログラム、および、撮像装置

【課題】ホワイトバランス調整を行うための光源を正確に検出することができない。
【解決手段】ホワイトバランス調整装置は、撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するエリア推定部と、光源色推定エリアについて、撮像画像の奥行き方向における距離を光源色推定エリアの距離として算出する距離算出部と、光源色推定エリアの色度を算出する色度算出部と、光源色推定エリアの距離、および、光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するホワイトバランス調整値算出部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像画像のホワイトバランスを調整するためのホワイトバランス調整値を算出する技術に関する。
【背景技術】
【0002】
従来、被写体が撮像された画面を複数のエリアに分割して、各エリアごとに色情報を取得し、取得した各エリアごとの色情報と光源種に対応する色分布とに基づいて、光源種を判別して、光源種に適したホワイトバランス調整を行う技術が知られている(特許文献1参照)。
【0003】
また、カメラから被写体までの距離情報に基づいて、被写体距離に近い画像領域を撮像画像から抽出し、抽出した画像領域に関する撮像信号に基づいて、ホワイトバランス調整のための制御量を算出する技術が知られている(特許文献2参照)。
【特許文献1】特開2000−224608号公報
【特許文献2】特開2001−28762号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、複数の光源下におけるシーンや、光源と間違えやすい被写体の入ったシーン等では、正しいホワイトバランス調整を行うことができないという問題があった。また、特許文献2に記載の技術では、被写体に近い領域に光源色などの光源判別可能な情報が無いと、正確な光源検出を行うことができないという問題があった。
【0005】
本発明は上記の課題に鑑みてなされたものであり、その目的は、光源を精度良く推定して、精度の良いホワイトバランス調整を行うことを目的とする。
【課題を解決するための手段】
【0006】
本発明のある態様に係るホワイトバランス調整装置は、撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するエリア推定部と、前記光源色推定エリアについて、前記撮像画像の奥行き方向における距離を、前記光源色推定エリアの距離として算出する距離算出部と、前記光源色推定エリアの色度を算出する色度算出部と、前記光源色推定エリアの距離、および、前記光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するホワイトバランス調整値算出部と、を備えることを特徴とする。
【0007】
本発明の別の態様に係るホワイトバランス調整方法は、撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するステップと、前記光源色推定エリアについて、前記撮像画像の奥行き方向における距離を、前記光源色推定エリアの距離として算出するステップと、前記光源色推定エリアの色度を算出するステップと、前記光源色推定エリアの距離、および、前記光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するステップと、を備えることを特徴とする。
【0008】
本発明のさらに別の態様に係るホワイトバランス調整プログラムは、撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するステップと、前記光源色推定エリアについて、前記撮像画像の奥行き方向における距離を、前記光源色推定エリアの距離として算出するステップと、前記光源色推定エリアの色度を算出するステップと、前記光源色推定エリアの距離、および、前記光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するステップと、をコンピュータに実行させることを特徴とする。
【0009】
これらの態様によれば、光源色推定エリアの距離、および、光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するので、例えば、複数の光源下におけるシーンや、光源と間違えやすい被写体の入ったシーン等においても、実際の光源に応じた精度の良いホワイトバランス調整値を算出して、精度の良いホワイトバランス調整を行うことができる。
【発明の効果】
【0010】
本発明によれば、精度の良いホワイトバランス調整を行うことができる。
【発明を実施するための最良の形態】
【0011】
−第1の実施形態−
図1は、本発明の第1の実施形態におけるホワイトバランス調整装置が適用される撮像装置の概略構成を示したブロック図である。撮像装置1は、例えば、デジタルカメラであり、撮像部2と画像処理装置3とを備えている。ホワイトバランス調整装置は、画像処理装置3の内部に設けられている第2画像処理部27に対応する。
【0012】
撮像部2は、レンズ10、シャッタ11、CCD12、CCD制御部13、レンズ駆動部14、および、ストロボ15を備えている。なお、他の例として、本実施形態に係るホワイトバランス調整装置は、デジタルカメラ以外の、ホワイトバランスを調整可能な様々な電子機器に搭載されてもよい。
【0013】
レンズ10には、ピント調節および焦点距離調節用の撮影レンズと、開口量を調節するための絞り10aが配置されている。この絞り10aの役割は、撮影制御部20からの制御指令に基づいて、撮像面へ照射する光の明るさと深度を調整することであるが、深度調整の必要性の少ない廉価な撮像装置においては、明るさ調節の目的のために、例えば、光量調節のためのNDフィルタで代用することも可能である。
【0014】
レンズ10は、後述する撮影制御部20の制御によりレンズ駆動部14が作動することにより駆動される。これにより、撮影制御部20からの制御指令に基づいて、ピント合わせやズーム駆動等が行われる。ストロボ15は、撮影制御部20の制御により、被写体に光を照射可能となっている。
【0015】
レンズ10の後方には、露光時間制御用のシャッタ11が配置されている。このシャッタ11は、撮影制御部20によって駆動制御される。シャッタ11は、スルー画像撮影時には常に開いた状態とされる。この時、CCD12の露光量制御は、CCD12の有する電子シャッタ機能を用いて実現される。また、いわゆる静止画(以下「スチル撮影」という)の撮影時には、シャッタ11によりCCD12への露光量が制御される。
【0016】
シャッタ11の後方には、二次元撮像素子としてのCCD12が配置されており、レンズ10によって結像される被写体像を電気信号に光電変換する。なお、本実施形態では、撮像素子としてCCDを用いているが、これに限らず、CMOS(Complementary Metal Oxide Semiconductor)等の二次元撮像素子を使用できることは言うまでもない。
【0017】
CCD制御部13は、CCDインターフェイス21に接続されている。CCD制御部13は、CCDインターフェイス21を介して後述するシーケンスコントローラ(以下「ボディCPU」という)22からの制御信号を受信し、この制御信号に基づいてCCD12の電源のオン・オフ制御等を行い、撮像のタイミングを調整し、光電変換信号の増幅(ゲイン調整)等を行う。
【0018】
CCD12により取得されたアナログ信号の画像信号は、画像処理装置3に入力され、CCDインターフェイス21によりデジタル信号に変換される。
【0019】
画像処理装置3は、例えば、ASICであり、上述の撮影制御部20、CCDインターフェイス21、ボディCPU22、輝度算出部23、AF演算部24、第1画像処理部25、顔検出部26、第2画像処理部27、および、第3画像処理部28等を備えている。これら各部は、画像処理装置3内のデータバス30を介して相互に接続されている。
【0020】
ボディCPU22は、撮像装置1が備える各部の制御を行う。輝度算出部23は、画像信号を所定の分割エリアごとに平均して、輝度信号に変換し、被写体の輝度分布情報を算出する。
【0021】
AF演算部24は、画像信号を所定の領域に分割して、領域毎にコントラスト情報を算出し、レンズ駆動部14の制御と同期して、所定領域のコントラストが最大となるように、レンズ10を駆動することにより、被写体に焦点を合わせる。
【0022】
第1画像処理部25、第2画像処理部27、および、第3画像処理部28は、撮像部2により取得された画像信号に対して、OB減算、色補正、階調補正、白黒・カラーモード処理、ホワイトバランス処理、スルー画像処理といった各種の画像処理を行う。特に、第2画像処理部27で行われるホワイトバランス処理の詳細については、後述する。
【0023】
顔検出部26は、画像信号を基に、顔検出に適したサイズの画像を作成し、例えば、特開2006−227995号公報に開示されているような公知の技術を用いて、処理対象画像中から顔の部分に類似する特徴量を持つ部分を探索して顔候補領域を抽出し、顔候補領域の種々の情報を用いて、顔か否かの判断を行い、顔領域の位置と大きさを検出する。
【0024】
ここで、より具体的な顔検出方法は、例えば、P.Viola and M.Jones,“Rapid object detection using a boosted cascade of simple features,”Proc. of CVPR,2001に開示されているような、Viola−Jonesの顔検出方法である。Viola−Jonesの顔検出方法は、Adaboostの学習によって選択された顔検出に最適な矩形フィルタを顔検出対象画像に照合させ、顔を検出する方法である。上記矩形フィルタをカスケード型に配することで処理を高速化している。
【0025】
また、上記データバス30には、上述した構成要素のほか、圧縮部31、SDRAM(Synchronous Dynamic Random Access Memory)制御部32、フラッシュメモリ制御部33、操作検出部34、記録媒体制御部35、ビデオ信号出力部36などが接続されている。
【0026】
圧縮部31は、後述するSDRAM41に記憶された画像データ等をJPEGで圧縮するためのブロックである。なお、画像圧縮はJPEGに限らず、他の圧縮方法も適用できる。
【0027】
フラッシュメモリ制御部33は、フラッシュメモリ42に接続されている。このフラッシュメモリ42には、撮像装置1における各処理を制御するための画像処理プログラムが記憶されており、ボディCPU22は、このフラッシュメモリ42に記憶されているプログラムに従って各部の制御を行う。なお、フラッシュメモリ42は、電気的に書換可能な不揮発性メモリである。
【0028】
SDRAM41は、SDRAM制御部32を介してデータバス30に接続されている。SDRAM41は、第1画像処理部25等によって画像処理された画像情報または圧縮部31によって圧縮された画像情報を一時的に記憶するためのメモリである。
【0029】
撮影制御部20は、データバス30を介してボディCPU22等の各部と接続している。記録媒体制御部35は、記録媒体43に接続され、この記録媒体43への画像データ等の記録の制御を行う。記録媒体43は、xDピクチャーカード(登録商標)、メモリスティック(登録商標)またはハードディスクドライブ(HD)等の書換可能な記録媒体で構成され、撮像装置本体に対して着脱可能とされている。
【0030】
ビデオ信号出力部36は、表示モニタ制御部45を介して表示モニタ46に接続されている。ビデオ信号出力部36は、SDRAM41または記録媒体43に記憶された画像データを、表示モニタ46に表示するためのビデオ信号に変換するための回路である。表示モニタ46は、例えば、撮像装置本体の背面に配置されている液晶表示装置であるが、撮影者が観察できる位置であれば、背面に限らないし、また液晶に限らず他の表示装置であってもよい。
【0031】
操作部47は、撮像装置1の撮影指示を示すレリーズを検出するスイッチや、モードダイヤル、パワースイッチ、コントロールダイヤル、再生ボタン、メニューボタン、十字キー、OK釦等を含み、操作検出部34を介してデータバス30に接続されている。
【0032】
このような構成を備える撮像装置1において、ユーザによってパワースイッチ(図示略)がオンされると、以下に示す表示シーケンスがボディCPU22によって実行され、ボディCPU22からの制御により各部が作動する。以下、表示シーケンスの動作フローについて図2を参照して説明する。
【0033】
〔表示シーケンス〕
ユーザによって電源がオンされると、ステップSA1において、撮像部2によるスルー画像の撮影が開始される。スルー画像の画像信号は、CCDインターフェイス21によりデジタル信号に変換され、変換後の画像信号(以下、「スルー画像信号」という)が画像処理装置3内に入力される。
【0034】
ステップSA2では、第1画像処理部25により、スルー画像信号に対して第1画像処理、すなわち、公知のOB補正処理等を行う。ステップSA3では、顔検出部26により、スルー画像信号を顔検出に適した画像に変換し、所定の領域毎に顔の特徴量とのマッチング比較を行って、顔の位置および大きさを検出する。ステップSA4では、被写体を推定する。被写体の推定処理の詳細については、図3に示すフローチャートを用いて後述する。
【0035】
ステップSA5では、第2画像処理部27により、第2画像処理、すなわち、ホワイトバランス処理を行う。ホワイトバランス処理の詳細については、図6に示すフローチャートを用いて後述する。
【0036】
ステップSA6では、第3画像処理部28により、第3画像処理、すなわち、既知のYC変換処理、階調変換処理、圧縮、リサイズ等の処理を行う。ステップSA7では、処理後のスルー画像信号を表示モニタ46に表示させる。
【0037】
ステップSA8では、顔検出の結果が前回の顔検出結果に対して変化したか否かを判定する。例えば、前回のスルー画像信号においては顔検出がされたのに、今回のスルー画像信号においては検出されなかった場合や、逆に、前回のスルー画像信号においては顔検出がされなかったのに、今回のスルー画像信号において検出された場合のように、顔検出の結果が変化した場合には、ステップSA9に進む。
【0038】
ステップSA9では、被写体の距離が前回のスルー画像信号のときと変動しているか否かを判定する。この距離の変動は、例えば、以前にオートフォーカスを行って取得したスルー画像信号における合焦エリアと、今回得られたスルー画像信号の同エリアにおけるコントラストの差分を算出し、その差分が所定値以上であれば、被写体の距離が変動していると判断する。この結果、被写体の距離が変動していたと判定するとステップSA10に進む。
【0039】
ステップSA10では、オートフォーカス処理を行う。具体的には、オートフォーカス用に撮影とレンズ駆動を複数回繰り返し、撮影により得られた信号を複数のエリアに分割(例えば、縦20分割、横30分割)し、エリア毎のコントラストを算出し、コントラスト値が最大となる位置にレンズ10を駆動することで、被写体への合焦動作を行う。
【0040】
分割したエリアのうち、どのエリアのコントラストを重視して、レンズ駆動を行うかは、公知のアルゴリズムにより決定される。例えば、本実施形態では、直前の顔検出の結果を用いて、顔が検出された場合には、顔の位置情報、大きさ情報を基に顔に近いエリアを重視し、顔が検出されなかった場合には、最も至近のエリアを重視する。
【0041】
ステップSA11では、各分割エリアの被写体距離分布を算出する。具体的には、オートフォーカス処理におけるレンズ駆動終了後に、各撮影時のコントラスト情報とそのときのレンズ位置、最終駆動終了時のレンズ位置情報を基に、各分割エリアの被写体距離を算出し、被写体距離分布情報として所定のメモリに記憶する。被写体距離は、撮像画像の奥行き方向における距離であり、本実施形態では、CCD12から被写体までの距離である。ただし、被写体には、撮影対象である人物や物だけでなく、背景も含まれる。また、オートフォーカス処理時に重視したエリア、および、そのエリアのコントラスト値についてもメモリに記憶する。この処理が終了すると、ステップSA12に進む。
【0042】
一方、ステップSA8において、顔検出の結果が前回と今回とで変化していない場合、あるいは、ステップSA9において、被写体の距離が変動していない場合には、ステップSA12に進む。
【0043】
ステップSA12では、スルー画像信号を用いて、被写体の輝度分布を算出するとともに、上記顔検出結果を用いて、被写体エリア、被写体周辺エリアの輝度を算出する。ステップSA13では、ステップSA12で得られた被写体の輝度分布情報をもとに、スルー画像中のシャッタ速度、絞り、ISO感度を決定し、これらのAPEX値(av、tv、sv)をメモリに記憶し、次回のスルー画像露出時に反映する。
【0044】
ステップSA14では、操作検出部34で撮影者によりレリーズボタンが押されたか否かを判定する。レリーズボタンが押されたと判定すると、ステップSA15に進み、スチル撮影を実施する。スチル撮影の処理については、図4に示すフローチャートを用いて後述する。スチル撮影が終了した場合、あるいは、ステップSA14において、レリーズボタンが押されていない場合には、ステップSA16に進む。
【0045】
ステップSA16では、操作検出部34で、撮影者によりパワースイッチが押されて電源がオフされたか否かを判定する。電源がオフされていないと判定するとステップSA1に戻り、ユーザによって電源がオフされるまで、上述の処理を繰り返し実行する。一方、電源がオフされたと判定すると、ステップSA17に進んで、表示シーケンスのスタンバイ処理を行って、フローチャートの処理を終了する。
【0046】
〔被写体推定〕
図3は、図2に示すフローチャートのステップSA4で行われる被写体推定処理の詳細を示すフローチャートである。被写体推定処理では、後述するように、主要被写体の有無、主要被写体箇所、および、主要被写体までの距離を求める。なお、主要被写体までの距離は、図2のステップSA11で求めた被写体距離分布情報を用いる。
【0047】
ステップSB1では、図2のステップSA3で行われた顔検出の結果に基づいて、顔が検出されたか否かを判定する。顔が検出されたと判定するとステップSB2に進む。ステップSB2では、主要被写体箇所を「顔」、主要被写体は「あり」、主要被写体距離を「主要被写体箇所の距離」として、被写体推定処理を終了する。
【0048】
一方、ステップSB1において、顔が検出されていないと判定すると、ステップSB3に進む。ステップSB3では、距離測定が不能であるか否かを判定する。例えば、図2のステップSA10において行ったオートフォーカス処理時に、コントラスト値の検出ができないなどで、オートフォーカスできなかった場合には、距離測定が不能であると判定して、ステップSB4に進む。ステップSB4では、主要被写体箇所は「不明」、主要被写体は「なし」として、被写体推定処理を終了する。
【0049】
ステップSB3において、距離測定が可能であると判定すると、ステップSB5に進む。ステップSB5では、図2のステップSA4で検出した被写体距離が1mより長く、かつ、5mより短いかを判定する。被写体距離が1mより長く、かつ、5mより短いと判定すると、ステップSB6に進む。ステップSB6では、主要被写体箇所は「測距箇所」、主要被写体は「あり」、主要被写体距離を「主要被写体箇所の距離」として、被写体推定処理を終了する。なお、本実施形態に係るホワイトバランス調整装置は、被写体推定処理の判定基準を「1m」および「5m」と設定したが、これに限られず、他の例として、「2m」および「6m」と設定してもよい。
【0050】
一方、ステップSB5において、被写体距離が1m以下、または、5m以上であると判定すると、ステップSB7に進む。ステップSB7では、主要被写体箇所は「画像全体」、主要被写体は「なし」として、被写体推定処理を終了する。
【0051】
〔スチル撮影〕
次に、図2のフローチャートを用いて説明した表示シーケンスのステップSA15で行われるスチル撮影について、図4を参照して説明する。図4は、スチル撮影の処理手順を示すフローチャートである。
【0052】
図4のステップSC1では、プリ撮影が実施される。撮像部2にて取得された画像信号は、CCDインターフェイス21においてデジタル化された後、撮像処理装置3内の各部へ転送される。
【0053】
ステップSC2では、第1画像処理部25により、プリ撮影で得られた画像信号に対してOB処理等の第1画像処理を行う。ステップSC3では、顔検出部26により、第1画像処理後の画像信号に基づいて、顔検出処理を行う。ステップSC4では、オートフォーカス処理を行う。ステップSC5では、被写体の距離分布を算出する。ステップSC6では、被写体を推定する。顔検出処理、オートフォーカス処理、被写体の距離分布算出処理、被写体の推定処理については、図2のステップSA3、ステップSA10、ステップSA11、ステップSA4の処理と同じであるので、詳しい説明は省略する。
【0054】
ステップSC7では、被写体の輝度分布を算出する。この処理は、図2のステップSA12の処理と同じである。ステップSC8では、ステップSC7で得られた被写体の輝度分布情報に基づいて、露光条件を決定するための目標輝度を求め、この目標輝度に基づいて、本撮影でのシャッタ速度、絞り、ISO感度等の露光条件を決定し、これらのAPEX値(av、tv、sv)を記憶する。
【0055】
ステップSC9では、ストロボ15の発光の必要性の有無を判断する。例えば、逆光時や低輝度時には、ストロボ15の発光が必要であると判断する。この結果、ストロボ発光が必要でないと判断された場合には、ステップSC10に進む。ステップSC10では、絞り10a、シャッタ11、CCD12を制御して、ステップSC8で決定した露光条件で撮影を行う。撮像部2において取得された画像信号は、CCDインターフェイス21においてデジタル信号に変換され、画像処理装置3内の各部に転送される。
【0056】
ステップSC9において、ストロボ15の発光が必要であると判断された場合には、ステップSC11に進む。ステップSC11では、ストロボ発光と撮像を行うプリ露光を実施し、得られたCCD出力データを読み出して所定の処理を行う。ステップSC12では、ステップSC11で得られたCCD出力データを基に、ストロボ光照射時の被写体の輝度分布情報を作成し、作成した輝度分布情報に基づいて、ストロボ発光量を演算する。
【0057】
ステップSC13では、絞り10a、シャッタ11、ストロボ15、CCD12等を制御して、ステップSC8で決定した露光条件、および、ステップSC12で演算した発光量にて、ストロボ発光および撮影を行う。撮像部2において取得された画像信号は、CCDインターフェイス21においてデジタル信号に変換され、画像処理装置3内の各部に転送される。
【0058】
ステップSC14では、第1画像処理部25にて、画像信号に対して公知のOB補正処理等の第1画像処理を実施する。第1画像処理後の画像信号は、第2画像処理部27に転送される。
【0059】
ステップSC15では、第2画像処理部27において、第1画像処理部25から転送されてきた画像信号に対して、ホワイトバランス調整処理等の第2画像処理を実施する。第2画像処理後の画像信号は、第3画像処理部28に転送される。なお、第2画像処理部27において行われるホワイトバランス調整処理の詳細については、図6を用いて後述する。
【0060】
ステップSC16では、第3画像処理部28において、第2画像処理部27から転送されてきた画像信号に対して、色補正、ノイズ補正、YC変換、階調変換、圧縮等の第3画像処理を実施する。
【0061】
ステップSC17では、画像処理の終了した画像を記録媒体43に記録する。ステップSC18では、画像処理の終了した画像を、ビデオ信号出力部36等を介して表示モニタ46に表示する。
【0062】
図5は、第2画像処理部27の詳細な構成を示すブロック図である。第2画像処理部27は、光源候補推定部271と、光源候補信頼性推定部272と、光源候補エリア距離算出部273と、光源決定部274と、ホワイトバランス調整部275とを備える。以下、図6に示すフローチャートを用いて、各部271〜275で行われる処理について説明する。
【0063】
〔ホワイトバランス処理〕
図6は、第2画像処理部27で行われるホワイトバランス処理の詳細な内容を示すフローチャートである。ステップSD1〜ステップSD3の処理は、光源候補推定部271で行われ、ステップSD4〜ステップSD5の処理は、光源候補信頼性推定部272で行われる。また、ステップSD6〜ステップSD9の処理は、光源候補エリア距離算出部273で行われ、ステップSD10の処理は、光源決定部273で行われ、ステップSD11〜ステップSD12の処理は、ホワイトバランス調整部275で行われる。
【0064】
ステップSD1では、撮影により得られた画像を複数のエリアに分割(例えば、縦20分割、横30分割)し、分割したエリア毎に、各色のCCD出力値R,G,Bの平均値を算出する。図7は、20×30のエリアに分割された撮影画像70の一例を示す図である。ここでは、撮影画像70の左下を基準として、横方向にi番目、縦方向にj番目の分割エリアのR平均値、G平均値、B平均値をそれぞれ、Rij、Gij、Bijとする。
【0065】
ステップSD2では、分割した各エリアの評価値として、Rij/Gij、Bij/Gijを算出する。評価値は、撮像画像から光源色を推定するために用いる指標である。
【0066】
ステップSD3では、ステップSD2で求めた評価値を、R/Gをx軸、B/Gをy軸とする平面上にプロットし、この平面上に設定される各光源色候補エリア内に含まれる評価値の重心値を求める。
【0067】
図8は、R/Gをx軸、B/Gをy軸とする平面上に設定される光源色候補エリア81〜86の一例を示す図である。光源色候補エリア81〜86は、光源に照らされたと推定される無彩色の色度分布の範囲を規定したものであり、それぞれ、日陰、曇天、晴天、蛍光灯、その他の光源、電球の色度分布の範囲を規定したものである。光源色候補エリア85のその他の光源には、夕日や、様々な光源のミックス光等が含まれる。
【0068】
図8では、光源色候補エリア81〜86とともに、光源色を推定するための光源推定可能色候補エリア87〜89も示している。光源推定可能色候補エリア87〜89は、光源に照らされたと推定される特定の有彩色の色度分布の範囲を規定したものであり、それぞれ、曇天下の肌色、晴天下の肌色、晴天下の緑色の色度が分布する範囲を規定したものである。
【0069】
上述した光源色候補エリア81〜86、および、光源推定可能色候補エリア87〜89は、撮像画像から光源色を推定するための領域である。
【0070】
評価値の重心値は、光源色候補エリア81〜86ごとに、エリア内に含まれる評価値の平均値を演算することにより求める。ここでは、光源色候補エリア81〜86の重心値(x、y)をそれぞれ、ZPOINT_1(x、y)〜ZPOINT_6(x、y)と表す。例えば、光源色候補エリア81内に含まれる評価値の平均値がR/G=0.2、B/G=0.8の場合には、ZPOINT_1(0.2,0.8)のように表す。また、光源色候補エリア81内に含まれる評価値が一個もない場合には、ZPOINT_1(0,0)と記載することにする。
【0071】
なお、ここでは、図8に示す光源色候補エリア81〜86、および、光源推定可能色候補エリア87〜89内に、撮像画像の各分割エリアの評価値を当てはめる処理を行っているが、これは、撮像画像において、光源色を推定するための光源色推定エリアを特定する処理、すなわち、撮像画像において、光源色候補エリア81〜86、および、光源推定可能色候補エリア87〜89の光源の色度と等しい色度を有するエリアを特定する処理と等しい。
【0072】
ステップSD4では、各光源色候補エリア81〜86に対応する光源色の信頼性係数α1〜α6、および、各光源推定可能色候補エリア87〜89に対応する光源推定可能色の信頼性係数α7〜α9を求める。信頼性係数α1〜α9は、撮像画像のホワイトバランス調整に用いる光源色または光源推定可能色の確からしさを示す係数であり、ここでは、第1の信頼性係数と呼ぶ。第1の信頼性係数α1〜α9は、後述するように、図4に示すフローチャートのステップSC7で求めた撮影時の被写体輝度情報、またはステップSC8で求めた撮影のための目標輝度情報に基づいて求める(本実施形態では、ステップSC8で求めた値を使用し、以下、適宜「撮影輝度」という)。
【0073】
図9は、第1の信頼性係数α1〜α9を算出するための信頼性係数算出関数の一例を示す図である。図9において、横軸は撮影輝度(被写体輝度)、縦軸は第1の信頼性係数である。光源によって絶対的な明るさに差があり、撮影輝度も光源によって異なるという性質に基づいて、撮影輝度に応じた信頼性係数算出関数を設定している。図9に示す例では、光源色候補エリア84,86に対応する光源色の信頼性係数算出関数を91、光源色候補エリア81,82に対応する光源色、および、光源推定可能色候補エリア87に対応する光源推定可能色の信頼性係数算出関数を92、光源色候補エリア83に対応する光源色、および、光源推定可能色候補エリア88,89に対応する光源推定可能色の信頼性係数算出関数を93、光源色候補エリア85に対応する光源色の信頼性係数算出関数を94で示している。
【0074】
例えば、光源が晴天時の太陽光(光源色候補エリア83)の信頼性係数算出関数93は、撮影輝度が高くなるほど第1の信頼性係数α3が高くなる関数となっている。一方、光源が蛍光灯(光源色候補エリア84)の場合には、光源輝度がそれほど高くなく、太陽光による晴天時ほど撮影輝度は高くない。従って、信頼性係数算出関数91は、所定輝度以下の輝度領域において、第1の信頼性係数α4が高くなる関数となっている。
【0075】
光源候補信頼性推定部272は、撮影輝度から第1の信頼性係数を算出するための信頼性係数算出関数91〜94を記憶しており、これらの関数91〜94と撮影輝度とから、第1の信頼性係数α1〜α9を算出する。なお、信頼性係数算出関数91〜94の代わりに、図9に示すような撮影輝度と第1の信頼性係数との関係を定めたテーブルを光源候補信頼性推定部272に記憶させておき、このテーブルと撮影輝度とから、第1の信頼性係数α1〜α9を算出するようにしてもよい。
【0076】
ステップSD5では、各光源色候補エリア81〜86に対応する光源色の第2の信頼性係数α’1〜α’6、および、各光源推定可能色候補エリア87〜89に対応する光源推定可能色の第2の信頼性係数α’7〜α’9を求める。ここでは、各エリア81〜89に含まれる評価値の個数に基づいて、第2の信頼性係数α’1〜α’9を求める。
【0077】
図10は、第2の信頼性係数α’1〜α’9を算出するための信頼性係数算出関数の一例を示す図である。図10において、横軸は各エリア81〜89に含まれる評価値の個数、縦軸は第2の信頼性係数である。図10に示す例では、光源色候補エリア84,86に対応する光源色の信頼性係数算出関数を101、それ以外のエリア81〜83,85,87〜89に対応する光源色または光源推定可能色の信頼性係数算出関数を102でそれぞれ示している。図10に示すように、エリア内に含まれる個数が多いほど、信頼性係数は高い。また、エリア内に含まれる評価値の数が0の場合には、第2の信頼性係数α’は0とする。
【0078】
なお、各エリア81〜89に含まれる評価値の数が多いというのは、撮像画像において、光源色を推定するための光源色推定エリアが広い(または光源色推定エリアの箇所が多い)ということと同等である。
【0079】
図10に示す信頼性係数算出関数101,102、および各エリア81〜89内に含まれる評価値の個数に基づいて、第2の信頼性係数α’1〜α’9をそれぞれ算出すると、ステップSD6に進む。ステップSD6では、各エリア81〜89の被写体の撮像面からの距離を算出する。
【0080】
図11は、ステップSD1で求めた複数の分割エリア(i,j)ごとの距離情報の一例を示す図である。この距離情報は、図4に示すフローチャートのステップSC5で求めたものである。
【0081】
まず、各光源色候補エリア81〜86、および、各光源推定可能色候補エリア87〜89に含まれる評価値に対応する分割エリアの距離の値を読み出し、エリア81〜89ごとに距離ヒストグラムを図11にもとづき作成する。
【0082】
図12〜図14は、光源色候補エリア83、84、81の距離ヒストグラムの一例を示す図である。図12〜図14において、横軸は距離、縦軸は頻度(個数)である。ここでは、作成した距離ヒストグラムにおいて、所定の頻度しきい値Th以上のピーク値の距離を、その光源の距離とする。図12に示す例では、光源色候補エリア83に対応する光源の距離は、dv_3_peak1となる。
【0083】
所定の頻度しきい値Th以上の距離ピーク値が複数ある場合には、それら複数のピーク値の距離を、その光源の距離とする。図13に示す例では、所定の頻度しきい値Th以上の距離ピーク値が2つあるため、光源色候補エリア84に対応する光源の距離は、dv_4_peak1、および、dv_4_peak2となる。
【0084】
距離のピーク値が所定の頻度しきい値Th未満の場合には、最大の値をとる距離を、その光源の距離とする。図14に示す例では、光源色候補エリア81に対応する光源の距離は、dv_1_peak1となる。
【0085】
ステップSD7では、主要被写体が存在するか否かを判定する。この判定は、図3に示すフローチャートの処理において、主要被写体が「あり」と判断したか、「なし」と判断したかに基づいて行う。主要被写体が存在しないと判定するとステップSD8に進む。
【0086】
ステップSD8では、ステップSD6で求めた光源の距離に基づいて、距離信頼性係数Kを求める。距離信頼性係数Kは、光源の距離に応じて、その光源の信頼性(確からしさ)を表す係数であり、値が大きいほど、信頼性が高いことを意味する。
【0087】
図15は、ステップSD8において、距離信頼性係数Kを算出するための距離信頼性係数算出関数の一例を図である。図15において、横軸は光源の距離、縦軸は距離信頼性係数Kである。図15に示す例では、光源色候補エリア86に対応する光源の距離信頼性係数算出関数を151、光源色候補エリア84に対応する光源の距離信頼性係数算出関数を152、その他のエリア81〜83、85、87〜89に対応する光源の距離信頼性係数算出関数を153でそれぞれ示している。
【0088】
例えば、蛍光灯(光源色候補エリア84)や電球(光源色候補エリア86)等の人工光は、室内等の距離的に近い部分を照らす光源であり、遠距離を照射することは考えにくく、また、遠距離を照射するような明るさもない。従って、光源の距離が遠い場合には、画像内の主要な光源である可能性は低いため、距離信頼性係数は低くなる。
【0089】
また、複数の光源が含まれているような場合には、撮影者により近い側の方が被写体を照らしている可能性が高く、撮影者により近い方の光源に順応している可能性が高い。従って、距離信頼性係数算出関数153では、距離が近い方ほど、距離信頼性係数を大きくしている。
【0090】
ステップSD8では、ステップSD6で求めた距離と、図15に示す距離信頼性係数算出関数とに基づいて、各エリア81〜89に対応する光源の距離信頼性係数Kを算出する。
【0091】
なお、距離信頼性係数算出関数の代わりに、光源の距離と距離信頼性係数Kとの関係を定めたテーブルデータを光源候補エリア距離算出部273に記憶させておき、ステップSD6で求めた距離に基づいて、上記テーブルデータを参照することにより、各エリア81〜89に対応する光源の距離信頼性係数Kを算出するようにしてもよい。
【0092】
一方、ステップSD7の判定において、主要被写体が存在すると判定すると、ステップSD9に進む。ステップSD9では、図16に示す距離信頼性係数算出関数に基づいて、距離信頼性係数Kを算出する。図16において、横軸は光源の距離、縦軸は距離信頼性係数Kである。
【0093】
図16に示す例では、ストロボ発光時と、ストロボ非発光時とに応じて、2種類の距離信頼性係数算出関数161,162を設定している。この関数161,162は、図3に示すフローチャートの処理で求めた主要被写体距離に応じて設定する。すなわち、主要被写体距離から第1の所定距離の位置がピーク値となるように、ストロボ発光時の距離信頼性係数算出関数161を設定し、主要被写体距離から第2の所定距離の位置がピーク値となるように、ストロボ非発光時の距離信頼性係数算出関数162を設定する。これは、主要被写体近辺であって、主要被写体より撮影者に近い位置におけるものが主要被写体と同じ光源条件である可能性が高いためである。
【0094】
また、ストロボ発光時には、撮影者に近いほどストロボ光の影響が大きくなり、光源色または光源推定可能色としての確からしさが低くなる。従って、図16に示すように、ストロボ発光時と、ストロボ非発光時とに応じて、異なる距離信頼性係数算出関数を設定している。
【0095】
なお、図16に示す距離信頼性係数算出関数では、各エリア81〜89に関係なく、光源の距離およびストロボの有無に応じて、距離信頼性係数Kが定まる関数となっているが、図15に示す距離信頼性係数算出関数のように、各エリア81〜89ごとに、光源の特性に応じて異なる関数を設定するようにしてもよい。
【0096】
ステップSD9では、画像が撮像された時にストロボ15が発光されたか否かを検出し、その検出結果と、図16に示す距離信頼性係数算出関数161,162と、光源の距離とに基づいて、距離信頼性係数Kを算出する。
【0097】
ステップSD10では、次式(1)より、撮像画像中の光源の色度L_POINT(x,y)を算出する。
【0098】
L_POINT(x,y)=1/(α1×α’1×K1+α2×α’2×K2+α3×α’3×K3+α4×α’4×K4+α5×α’5×K5+α6×α’6×K6+α7×α’7×K7+α8×α’8×K8+α9×α’9×K9+m)×{α1×α’1×K1×ZPOINT_1(x,y)+α2×α’2×K2×ZPOINT_2(x,y)+α3×α’3×K3×ZPOINT_3(x,y)+α4×α’4×K4×ZPOINT_4(x,y)+α5×α’5×K5×ZPOINT_5(x,y)+α6×α’6×K6×ZPOINT_6(x,y)+α7×α’7×K7×ZPOINT_2def(x,y)+α8×α’8×K8×ZPOINT_3def(x,y)+α9×α’9×K9×ZPOINT_3def(x,y)+m×ZPOINT_3def(x,y)} (1)
【0099】
ただし、式(1)において、ZPOINT_2def(x,y)は、曇天の光源に対応する光源色候補エリア82の代表的色度、ZPOINT_3def(x,y)は、晴天の光源色候補エリア83の代表的色度であり、それぞれ適切な値を予め設定しておく。光源推定可能色候補エリア87〜89はそれぞれ、曇天下の肌色、晴天下の肌色、晴天下の緑色が分布する色領域である。従って、エリア87〜89に位置する点の個数が多い場合には、撮像画面中に曇天下の肌色、晴天下の肌色、晴天下の緑色が存在する可能性が高いため、光源がそれぞれ曇天、晴天、晴天であると推測することができる。従って、式(1)では、光源推定可能色候補エリア87に対応する色度として、曇天の光源に対応する光源色候補エリア82の代表的色度ZPOINT_2def(x,y)を用い、光源推定可能色候補エリア88,89に対応する色度として、晴天の光源に対応する光源色候補エリア83の代表的色度ZPOINT_3def(x,y)を用いている。
【0100】
また、式(1)において、mは所定の値(例えば、0に近い小さい値)であり、撮像画面内に、光源色が少ない場合や、光源があっても、第1の信頼性係数や、第2の信頼性係数、距離信頼性係数が小さくて、光源としての信頼性が低い場合に、それらの光源の色度に対して晴天の色度の重みが相対的に大きくなるようにするための係数である。例えば、検出された光源色が個数も少なく、輝度的にも光源に照らされた光の可能性が低く、かつ、距離的にも被写体から遠いような場合には、無難でよくある光源である晴天の色度に近い色度になる。また、撮像画像中に、光源色が無い場合、すなわち、光源色推定エリアが検出されなかった場合には、撮像画像中の光源の色度L_POINT(x,y)は、晴天の色度となる。
【0101】
なお、光源の色度L_POINT(x,y)を算出する式は、式(1)に限られない。例えば、式(1)では、全てのエリア81〜89の色度を用いるようにしたが、第1の信頼性係数×第2の信頼性係数×距離信頼性係数Kの値が大きい所定の数(例えば、3個)の色度のみを用いて算出するようにしてもよい。
【0102】
ステップSD11では、ホワイトバランスゲインを算出して、ホワイトバランス調整を行う。ここでは、ステップSD10で算出した光源の色度(R/G,B/G)の逆数G/R、G/Bをホワイトバランスゲインとし、算出したホワイトバランスゲインを、全てのピクセルのR、B出力値に乗算する。光源色の部分は、この処理により、G=R=Bとなり、白として表現される。
【0103】
ステップSD12では、色マトリックスを選択する。色マトリックスは、撮像素子の特性に合わせて、各光源色候補エリア81〜86に対応する光源色用に、それぞれメモリ内に予め格納されている。ステップSD10で算出した光源の色度(R/G,B/G)が各光源色候補エリア81〜86に対応する光源色のうち、どの光源色に対応するか、または、どの光源色に最も近いかを求め、求めた光源色の色マトリックスを、R,G,Bから、例えば、Y,Cr,Cbに色変換する際に使用する。
【0104】
以上、第1の実施形態におけるホワイトバランス調整装置によれば、撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定し、推定した光源色推定エリアについて、撮像画像の奥行き方向における距離を光源色推定エリアの距離として算出するとともに、光源色推定エリアの色度を算出し、光源色推定エリアの距離および光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出する。これにより、撮像画像中に複数の光源が存在する場合でも、複数の光源に応じた適切なホワイトバランス調整値を算出することができる。また、撮像画像中に、光源と間違いやすい被写体が存在する場合でも、光源色推定エリアの距離および色度に基づいてホワイトバランス調整値を算出することにより、光源と間違いやすい被写体を主要な光源と誤認識することなく、適切なホワイトバランス調整値を算出することができる。
【0105】
特に、第1の実施形態におけるホワイトバランス調整装置によれば、推定した光源色推定エリアの確からしさを示す信頼性を判定し、光源色推定エリアの距離、色度、および信頼性に基づいてホワイトバランス調整値を算出するので、より適切なホワイトバランス調整を行うことができる。また、撮像画像が撮像された時の輝度情報に基づいて、光源色推定エリアの信頼性を判定するので、光源色推定エリアの信頼性を精度良く判定することができる。さらに、光源色推定エリアの広さに基づいて、光源色推定エリアの信頼性を判定するので、光源色推定エリアの信頼性を精度良く判定することができる。さらに、光源色推定の距離と主要被写体の距離とに基づいて、光源色推定エリアの信頼性を判定するので、被写体を照らしている光源をより精度良く判定することができる。
【0106】
また、撮像画像を複数のエリアに分割して、光源色推定エリア内の分割エリアごとに、撮像画像の奥行き方向における距離を算出し、算出した距離の頻度が所定の頻度しきい値以上である距離のピーク値を、光源色推定エリアの距離として算出する。この時、所定の頻度しきい値以上である距離のピーク値が複数存在する場合には、それら複数のピーク値の距離を、光源色推定エリアの距離として算出するので、より多くの情報を用いて、さらに精度良くホワイトバランス調整値を算出することができる。また、頻度が所定の頻度しきい値以上である距離が存在しない場合には、頻度が所定の頻度しきい値未満の距離の中で最も頻度が多い距離を、光源色推定エリアの距離として算出するので、ホワイトバランス調整値の算出に際し、頻度が所定の頻度しきい値未満の距離の光源色推定エリアが除外されることもない。
【0107】
−第2の実施形態−
図17は、第2の実施形態におけるホワイトバランス処理の詳細な内容を示すフローチャートであり、第2画像処理部27によって行われる。図17に示すフローチャートにおいて、図6に示すフローチャートの処理と同一の処理を行うステップについては、同一の符号を付して詳しい説明は省略する。
【0108】
ステップSD1〜ステップSD5の処理に続くステップSD20では、光源色候補エリア81〜86および光源推定可能色候補エリア87〜89の中から、ステップSD4で算出した第1の信頼性係数と、ステップSD5で算出した第2の信頼性係数とを乗算した値が大きい順に、2つのエリアを選択する。ここでは、選択した2つのエリアの第1の信頼性係数をそれぞれ、α_light1、α_light2、第2の信頼性係数をそれぞれ、α’_light1、α’_light2、エリア内の評価値の重心値をそれぞれ、ZPOINT_light1、ZPOINT_light2とする。
【0109】
なお、ステップSD3では、光源色候補エリア81〜86の重心値しか求めていないが、図6のステップSD10の処理で説明したように、光源推定可能色候補エリア87〜89の重心値は、それぞれ、ZPOINT_2def(x,y)、ZPOINT_3def(x,y)、ZPOINT_3def(x,y)とする。
【0110】
ステップSD21では、ステップSD20で選択した2つのエリアの被写体の撮像面からの距離を算出する。距離の算出は、図6のステップSD6の距離算出と基本的に同じであるが、距離ヒストグラムを作成した際に、所定の頻度しきい値Thとの比較は行わない。すなわち、作成した距離ヒストグラムにおける1つのピーク値の距離を、その光源の距離とする。ここでは、ステップSD20で選択した2つのエリアに対して求めた距離をそれぞれ、dv_light1、dv_light2とする。
【0111】
ステップSD22では、光源が複数存在するか、すなわち、2つ存在するか否かを判定する。ステップSD6において、2つの光源を選択した場合には、ステップSD23に進む。ステップSD23では、主要被写体が存在するか否かを判定する。この判定は、図3に示すフローチャートの処理において、主要被写体が「あり」と判断したか、「なし」と判断したかに基づいて行う。主要被写体が存在すると判定するとステップSD24に進む。
【0112】
ステップSD24では、次式(2)より、撮像画中の光源の色度L_POINT(x,y)を算出する。ただし、式(2)において、dv_objectは、図3に示すフローチャートの処理で求めた主要被写体距離である。
【0113】
L_POINT(x,y)=|dv_light2−dv_object|/|dv_light1−dv_light2|×ZPOINT_light1(x,y)+|dv_light1−dv_object|/|dv_light1−dv_light2|×ZPOINT_light2(x,y) (2)
【0114】
式(2)では、ステップSD20で選択した2つのエリアに対応する光源の色度を重み付け加算する際に、主要被写体に近い光源ほど、重みが大きくなるような演算を行っている。
【0115】
一方、ステップSD23において、主要被写体が存在しないと判定すると、ステップSD25に進む。ステップSD25では、dv_light1がdv_light2より小さいか否かを判定する。dv_light1がdv_light2より小さいと判定すると、ステップSD26に進む。
【0116】
ステップSD26では、次式(3)より、撮像画中の光源の色度L_POINT(x,y)を算出する。
【0117】
L_POINT(x,y)=2/3×ZPOINT_light1(x,y)+1/3×ZPOINT_light2(x,y) (3)
【0118】
式(3)に示すように、dv_light1がdv_light2より小さい場合には、dv_light1に対応する光源の色度の重みが、dv_light2に対応する光源の色度の重みより大きくなるような重み付け演算を行う。
【0119】
一方、ステップSD25において、dv_light1がdv_light2以上であると判定すると、ステップSD27に進む。ステップSD27では、次式(4)より、撮像画中の光源の色度L_POINT(x,y)を算出する。
【0120】
L_POINT(x,y)=1/3×ZPOINT_light1(x,y)+2/3×ZPOINT_light2(x,y) (4)
【0121】
式(4)に示すように、dv_light1がdv_light2以上である場合には、dv_light2に対応する光源の色度の重みが、dv_light1に対応する光源の色度の重みより大きくなるような重み付け演算を行う。
【0122】
ステップSD22において、1つの光源しか存在しない場合、すなわち、ステップSD20の処理において、9つのエリア81〜89のうち、第1の信頼性係数と第2の信頼性係数とを乗算した値が0となるエリアが8つあり、1つの光源しか選択できかった場合には、ステップSD28に進む。ステップSD28では、次式(5)の関係が成り立つか否かを判定する。ただし、式(5)において、α_thは、光源の信頼性を判定するための所定のしきい値である。
【0123】
α_light1×α’_light1>α_th (5)
【0124】
式(5)の関係が成り立つと判定すると、ステップSD29に進む。ステップSD29では、光源の信頼性が高いと判断して、選択した光源の色度をそのまま、光源の色度L_POINT(x,y)とする。すなわち、次式(6)より、光源の色度L_POINT(x,y)を算出する。ただし、ZPOINT_light1(x,y)は、選択した1つのエリア内の評価値の重心値である。
【0125】
L_POINT(x,y)=ZPOINT_light1(x,y) (6)
【0126】
一方、ステップSD28において、式(5)の関係が成り立たないと判定すると、ステップSD30に進む。ステップSD30では、主要被写体が存在するか否かを判定する。主要被写体が存在すると判定するとステップSD31に進む。
【0127】
ステップSD31では、次式(7)の関係が成り立つか否かを判定し、成り立つと判定すると、ステップSD32に進む。ただし、式(7)におけるdv_thは、所定の距離しきい値である。
【0128】
|dv_light1−dv_object|<dv_th (7)
【0129】
ステップSD32では、次式(8)より、撮像画像中の光源の色度L_POINT(x,y)を算出する。
【0130】
L_POINT(x,y)=|dv_light_def−dv_object|/|dv_light1−dv_light_def|×ZPOINT_light1(x,y)+|dv_light1−dv_object|/|dv_light1−dv_light_def|×ZPOINT_light_def(x,y) (8)
【0131】
ただし、式(8)において、ZPOINT_light_def(x,y)は、所定の光源の色度であり、本実施の形態では、晴天の色度ZPOINT_3def(x,y)とする。また、dv_light_defは、晴天の光源距離であり、予め定められた値を用いる。
【0132】
ステップSD30で主要被写体が存在しないと判定した場合、および、ステップSD31で式(7)の関係が成り立たないと判定したい場合には、ステップSD33に進む。ステップSD33では、次式(9)より、撮像画像中の光源の色度L_POINT(x,y)を算出する。ただし、式(9)において、n(0<n<1)は、所定の重み係数である。
【0133】
L_POINT(x,y)=n×ZPOINT_light1(x,y)+(1−n)×ZPOINT_light_def(x,y) (9)
【0134】
光源の色度を求めた後の処理、すなわち、ステップSD11およびステップSD12の処理は、図6に示すフローチャートのステップSD11およびステップSD12の処理と同じである。
【0135】
以上、第2の実施形態におけるホワイトバランス調整装置においても、第1の実施の形態におけるホワイトバランス調整装置と同様に、撮像画像中に複数の光源が存在する場合や、撮像画像中に、光源と間違いやすい被写体が存在する場合でも、適切なホワイトバランス調整値を算出することができる。
【0136】
第2の実施形態におけるホワイトバランス調整装置によれば、光源色推定エリアが1つしか推定されなかった場合であって、推定された光源色推定エリアの信頼性が所定の信頼性よりも低い場合に、推定された光源色推定エリアの色度と所定の光源の色度とに基づいてホワイトバランス調整値を算出する。これにより、信頼性の低い光源の色度のみに基づいたホワイトバランス調整値が算出されるのを防ぐことができる。
【0137】
また、第2の実施形態におけるホワイトバランス調整装置によれば、光源色推定エリアが2つ以上推定された場合であって、撮像画像中に主要な被写体が存在すると判定した場合に、光源色推定エリアの距離が主要な被写体までの距離に近い光源色推定エリアほど重みが大きくなるように重み付けをして、ホワイトバランス調整値を算出するので、主要な被写体に近い光源色推定エリアの色度を重視した適切なホワイトバランス調整値を算出することができる。
【0138】
さらに、光源色推定エリアが2つ以上推定された場合であって、撮像画像中に主要な被写体が存在しないと判定した場合に、光源色推定エリアの距離が近い光源色推定エリアほど重みが大きくなるように重み付けをして、ホワイトバランス調整値を算出するので、被写体を照らしている可能性が高い方の光源を重視したホワイトバランス調整値を算出することができる。
【0139】
本発明は、上述した各実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。そうした変形例を以下に挙げる。
【0140】
表示シーケンス(図2参照)におけるオートフォーカス処理は、スチル撮影(図4参照)におけるオートフォーカス処理と同じであるが、スルー画像信号を表示モニタ46に表示させている時に頻繁に実施すると、スルー画像の視認性が悪くなる。従って、図2を用いて説明したように、顔検出の結果が変化(ステップSA8の判定を肯定)した場合であって、かつ、被写体の距離が変動(ステップSA9の判定を肯定)した場合に、オートフォーカス処理を行う。この場合、オートフォーカス処理の結果を用いて算出される被写体距離の精度は、スチル撮影時に比べて悪くなる。上述した実施形態では、表示シーケンスでもスチル撮影時と同様に、距離情報を用いたホワイトバランス処理を行うものとして説明したが、下記(i)や(ii)の処理を行うようにしてもよい。
(i)表示シーケンスでは、距離情報を用いない従来のホワイトバランス処理を行う。
(ii)表示シーケンスでは、オートフォーカスが動作して正確な被写体距離情報が得られた場合にのみ、図6を用いて説明したホワイトバランス処理を行い、それ以外の場合には、従来のホワイトバランス処理を行う。
【0141】
上述した実施形態では、第1の信頼性係数α、第2の信頼性係数α’、距離信頼性係数Kをそれぞれ、撮影輝度、エリア内の評価値の個数、光源の距離に基づいて算出したが、光源色の輝度や、光源色の分散値、黒体放射軌跡との色差等も考慮して求めるようにしてもよい。
【0142】
光源色推定エリアの距離は、撮像画像の奥行き方向における距離であり、上述した実施形態では、CCD12から光源色推定エリアの被写体までの距離としたが、例えば、撮像画面上における主要被写体から、光源色推定エリアの被写体までの距離としてもよい。この距離は、撮像画面上において、撮像画面上の主要被写体と光源色推定エリアの被写体との距離を測定し、撮影レンズの焦点距離に基づいて、測定した距離を実際の距離に換算することにより求めることができる。
【0143】
上述した実施形態では、光源色推定エリアの距離を、オートフォーカス処理時の焦点位置から求めるDFF法を利用して求めたが、画像のぼけ量と距離の相関モデルを用いたDFD法を利用して求めてもよいし、距離測定用のセンサを別途設け、このセンサを用いて、距離を測定するようにしてもよい。
【0144】
図17に示すフローチャートのステップSD20では、光源色候補エリア81〜86および光源推定可能色候補エリア87〜89の中から、2つのエリアを選択したが、3つ以上のエリアを選択するようにしてもよい。この場合、ステップSD24では、選択した各エリアの距離が主要な被写体までの距離に近いエリアほど、そのエリアの色度の重みが大きくなるように重み付けをして、撮像画像中の光源の色度L_POINT(x,y)を求めればよい。また、ステップSD23の判定を否定した後の処理では、選択した各エリアの距離が近いほど、そのエリアの色度の重みが大きくなるように重み付けをして、撮像画像中の光源の色度L_POINT(x,y)を求めるようにすればよい。
【図面の簡単な説明】
【0145】
【図1】本発明の第1の実施形態におけるホワイトバランス調整装置が適用される撮像装置の概略構成を示したブロック図である。
【図2】表示シーケンスの処理手順を示すフローチャートである。
【図3】被写体推定処理の詳細を示すフローチャートである。
【図4】スチル撮影の処理手順を示すフローチャートである。
【図5】第2画像処理部の詳細な構成を示すブロック図である。
【図6】ホワイトバランス処理の詳細な内容を示すフローチャートである。
【図7】20×30のエリアに分割された撮影画像の一例を示す図である。
【図8】R/Gをx軸、B/Gをy軸とする平面上に設定される光源色候補エリアの一例を示す図である。
【図9】第1の信頼性係数を算出するための信頼性係数算出関数の一例を示す図である。
【図10】第2の信頼性係数を算出するための信頼性係数算出関数の一例を示す図である。
【図11】複数の分割エリア(i,j)の距離情報の一例を示す図である。
【図12】光源色候補エリア83の距離ヒストグラムの一例を示す図である。
【図13】光源色候補エリア84の距離ヒストグラムの一例を示す図である。
【図14】光源色候補エリア81の距離ヒストグラムの一例を示す図である。
【図15】主要被写体が存在しない場合に、距離信頼性係数Kを算出するための距離信頼性係数算出関数の一例を図である。
【図16】主要被写体が存在する場合に、距離信頼性係数Kを算出するための距離信頼性係数算出関数の一例を図である。
【図17】第2の実施の形態におけるホワイトバランス処理の詳細な内容を示すフローチャートである。
【符号の説明】
【0146】
1…撮像装置
2…撮像部
3…画像処理装置
10…レンズ
11…シャッタ
12…CCD
13…CCD制御部
14…レンズ駆動部
15…ストロボ
20…撮影制御部
21…CCDインターフェイス
22…シーケンスコントローラ
23…輝度算出部
24…AF算出部
25…第1画像処理部
26…顔検出部
27…第2画像処理部
28…第3画像処理部
30…データバス
41…SDRAM
42…フラッシュメモリ
43…記録媒体
46…表示モニタ
47…操作部

【特許請求の範囲】
【請求項1】
撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するエリア推定部と、
前記光源色推定エリアについて、前記撮像画像の奥行き方向における距離を、前記光源色推定エリアの距離として算出する距離算出部と、
前記光源色推定エリアの色度を算出する色度算出部と、
前記光源色推定エリアの距離、および、前記光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するホワイトバランス調整値算出部と、
を備えることを特徴とするホワイトバランス調整装置。
【請求項2】
前記推定された光源色推定エリアの確からしさを示す信頼性を判定する信頼性判定部をさらに備え、
前記ホワイトバランス調整値算出部は、前記光源色推定エリアの距離、前記光源色推定エリアの色度、および、前記光源色推定エリアの信頼性に基づいて、前記ホワイトバランス調整値を算出することを特徴とする請求項1に記載のホワイトバランス調整装置。
【請求項3】
前記撮像画像に写された被写体の輝度を表す被写体輝度情報を取得する輝度情報取得部をさらに備え、
前記信頼性判定部は、前記被写体輝度情報に基づいて、前記光源色推定エリアの信頼性を判定することを特徴とする請求項2に記載のホワイトバランス調整装置。
【請求項4】
前記推定された光源色推定エリアの広さを検出する光源色推定エリア広さ検出部をさらに備え、
前記信頼性判定部は、前記光源色推定エリアの広さに基づいて、前記光源色推定エリアの信頼性を判定することを特徴とする請求項2または請求項3に記載のホワイトバランス調整装置。
【請求項5】
前記ホワイトバランス調整値算出部は、前記光源色推定エリアが複数推定された場合には、前記距離算出部によって算出された距離が近い光源色推定エリアの色度の重みが大きくなるように重み付けをして、前記ホワイトバランス調整値を算出することを特徴とする請求項1から請求項4のいずれか一項に記載のホワイトバランス調整装置。
【請求項6】
前記ホワイトバランス調整値算出部は、前記距離算出部によって算出された距離に応じた重み付け度合いを定めた関数に基づいて、前記重み付けの度合いを決定することを特徴とする請求項5に記載のホワイトバランス調整装置。
【請求項7】
前記距離に応じた重み付け度合いを定めた関数は、光源の種類に応じてそれぞれ設定されていることを特徴とする請求項6に記載のホワイトバランス調整装置。
【請求項8】
前記光源色推定エリアの色情報に基づいて、前記光源色推定エリアごとに前記光源の種類を判定する光源種判定部をさらに備えることを特徴とする請求項7に記載のホワイトバランス調整装置。
【請求項9】
前記ホワイトバランス調整値算出部は、前記光源色推定エリアの距離と前記重み付けの度合いとの関係を定めたテーブルデータを有しており、前記距離算出部によって算出された距離に基づいて、前記テーブルデータを参照することにより、前記重み付けの度合いを決定することを特徴とする請求項5に記載のホワイトバランス調整装置。
【請求項10】
前記撮像画像の主要な被写体を推定する主要被写体推定部と、
前記撮像画像の奥行き方向における、前記推定された主要な被写体までの距離を算出する被写体距離算出部と、
をさらに備え、
前記ホワイトバランス調整値算出部は、前記光源色推定エリアが複数推定された場合には、各光源色推定エリアの距離と前記主要な被写体までの距離との関係に応じて、各光源色推定エリアの重みを決定し、決定した重みに応じて各光源色推定エリアの色度を重み付けして、前記ホワイトバランス調整値を算出することを特徴とする請求項1から請求項4のいずれか一項に記載のホワイトバランス調整装置。
【請求項11】
前記撮像画像が撮像された時にストロボが発光されたか否かを検出するストロボ発光検出部をさらに備え、
前記ホワイトバランス調整値算出部は、前記ストロボ発光の有無に応じて、前記各光源色推定エリアの重みを変更することを特徴とする請求項10に記載のホワイトバランス調整装置。
【請求項12】
前記ホワイトバランス調整値算出部は、前記光源色推定エリアの信頼性が低くなるほど、所定の光源の色度の重みが大きくなるように重み付けをして、前記ホワイトバランス調整値を算出することを特徴とする請求項2から請求項4のいずれか一項に記載のホワイトバランス調整装置。
【請求項13】
前記ホワイトバランス調整値算出部は、前記光源色推定エリアが1つも推定されなかった場合に、所定の光源の色度を用いて、前記ホワイトバランス調整値を算出することを特徴とする請求項1から請求項12のいずれか一項に記載のホワイトバランス調整装置。
【請求項14】
撮像画像を複数のエリアに分割するエリア分割部をさらに備え、
前記距離算出部は、前記光源色推定エリア内の分割エリアごとに、前記撮像画像の奥行き方向における距離を算出し、算出した距離の頻度が所定の頻度しきい値以上である距離のピーク値を、前記光源色推定エリアの距離として算出することを特徴とする請求項1から請求項13のいずれか一項に記載のホワイトバランス調整装置。
【請求項15】
前記距離算出部は、算出した距離の頻度が前記所定の頻度しきい値以上である距離のピーク値が複数存在する場合には、それら複数のピーク値の距離を、前記光源色推定エリアの距離として算出することを特徴とする請求項14に記載のホワイトバランス調整装置。
【請求項16】
前記距離算出部は、算出した距離の頻度が前記所定の頻度しきい値以上である距離が存在しない場合には、頻度が前記所定の頻度しきい値未満の距離の中で最も頻度が多い距離を、前記光源色推定エリアの距離として算出することを特徴とする請求項14または請求項15に記載のホワイトバランス調整装置。
【請求項17】
前記ホワイトバランス調整値算出部は、前記光源色推定エリアが1つしか推定されなかった場合において、前記推定された光源色推定エリアの信頼性が所定の信頼性よりも低い場合に、前記推定された光源色推定エリアの色度と所定の光源の色度とに基づいてホワイトバランス調整値を算出することを特徴とする請求項2から請求項4のいずれか一項に記載のホワイトバランス調整装置。
【請求項18】
前記ホワイトバランス調整値算出部は、前記光源色推定エリアが2つ以上推定された場合において、
前記撮像画像中に主要な被写体が存在するか否かを判定する主要被写体判定部と、
前記主要な被写体が存在すると判定された場合に、前記撮像画像の奥行き方向における前記主要な被写体までの距離を算出する被写体距離算出部と、
をさらに備え、
前記ホワイトバランス調整値算出部は、前記主要な被写体が存在すると判定された場合に、前記光源色推定エリアの距離が前記主要な被写体までの距離に近い光源色推定エリアほど、その光源色推定エリアの色度の重みが大きくなるように重み付けをして、前記ホワイトバランス調整値を算出することを特徴とする請求項1から請求項4のいずれか一項に記載のホワイトバランス調整装置。
【請求項19】
前記ホワイトバランス調整値算出部は、前記エリア推定部によって前記光源色推定エリアが2つ以上推定された場合において、
前記撮像画像中に主要な被写体が存在するか否かを判定する主要被写体判定部をさらに備え、
前記ホワイトバランス調整値算出部は、前記主要な被写体が存在しないと判定された場合に、前記光源色推定エリアの距離が近い光源色推定エリアほど、その光源色推定エリアの色度の重みが大きくなるように重み付けをして、前記ホワイトバランス調整値を算出することを特徴とする請求項1から請求項4のいずれか一項に記載のホワイトバランス調整装置。
【請求項20】
請求項1から請求項19のいずれか一項に記載のホワイトバランス調整装置を備えることを特徴とする撮像装置。
【請求項21】
撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するステップと、
前記光源色推定エリアについて、前記撮像画像の奥行き方向における距離を、前記光源色推定エリアの距離として算出するステップと、
前記光源色推定エリアの色度を算出するステップと、
前記光源色推定エリアの距離、および、前記光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するステップと、
を備えることを特徴とするホワイトバランス調整方法。
【請求項22】
撮像画像において、光源色を推定するための光源色推定エリアを少なくとも1つ推定するステップと、
前記光源色推定エリアについて、前記撮像画像の奥行き方向における距離を、前記光源色推定エリアの距離として算出するステップと、
前記光源色推定エリアの色度を算出するステップと、
前記光源色推定エリアの距離、および、前記光源色推定エリアの色度に基づいて、ホワイトバランス調整値を算出するステップと、
をコンピュータに実行させることを特徴とするホワイトバランス調整プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図7】
image rotate


【公開番号】特開2010−130468(P2010−130468A)
【公開日】平成22年6月10日(2010.6.10)
【国際特許分類】
【出願番号】特願2008−304302(P2008−304302)
【出願日】平成20年11月28日(2008.11.28)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】