撮像装置およびホワイトバランス制御方法
【課題】オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができる撮像装置およびホワイトバランス制御方法を提供する。
【解決手段】CMOSセンサから出力される画像フレームを複数のブロックに分割し、分割した複数のブロックのWB評価値を算出する特徴量算出部101と、算出した特徴量に基づいて白ブロックを検出する白ブロック検出部102と、画像フレームから被写体エリアを検出する被写体エリア検出部103と、現在の画像フレームにおいて被写体エリア内から白ブロックが検出され、且つ、先行フレームにおいて被写体エリア内から白ブロックが検出されていない場合に、被写体エリア以外から検出された白ブロックのWB評価値に基づいてWB制御値を算出し、画像フレームのホワイトバランスを制御するホワイトバランス制御部104と、を備える。
【解決手段】CMOSセンサから出力される画像フレームを複数のブロックに分割し、分割した複数のブロックのWB評価値を算出する特徴量算出部101と、算出した特徴量に基づいて白ブロックを検出する白ブロック検出部102と、画像フレームから被写体エリアを検出する被写体エリア検出部103と、現在の画像フレームにおいて被写体エリア内から白ブロックが検出され、且つ、先行フレームにおいて被写体エリア内から白ブロックが検出されていない場合に、被写体エリア以外から検出された白ブロックのWB評価値に基づいてWB制御値を算出し、画像フレームのホワイトバランスを制御するホワイトバランス制御部104と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置およびホワイトバランス制御方法に関する。
【背景技術】
【0002】
撮像素子を用いて画像を撮像するデジタルカメラなどの撮像装置においては、人間にとって白く見える部分を画像上で白く再現するためのオートホワイトバランスと呼ばれる処理が行われている。オートホワイトバランスは、例えば、撮像素子から出力される画像フレームの中で白色(無彩色)を映したと推定される領域を検出し、検出した領域の色情報に基づいて算出した制御値(以下、WB制御値という。)を用いて、画像フレームの各画素の信号を調整することで実現できる。
【0003】
具体的には、例えば画像フレームを縦横16×16の256個のブロックに分割し、分割したブロックごとに、各ブロックに含まれる画素のRGBそれぞれの信号の積算値を算出して、ブロックごとのG信号の積算値に対するR信号およびB信号の積算値の比(G/R,G/B)を、各ブロックの特徴量(以下、WB評価値という。)として求める。そして、求めた各ブロックのWB評価値(G/R,G/B)を、G/R,G/Bを軸とした色空間(以下、WB色空間という。)にプロットする。
【0004】
WB色空間上には、予め光源(昼光やタングステン光)の色温度を変化させた場合における黒体輻射の軌跡がリファレンスゲインとして用意されている。このWB色空間上で、プロットされた各ブロックのWB評価値(G/R,G/B)とリファレンスゲインとのマッチングをとることにより、画像フレームにおいて白色を映したと推定される領域を検出することができる。
【0005】
以上のように検出された白色の領域は、光源の種類によってRGB積算比が異なっているが、この白色の領域におけるRGBの積算比がR:G:B=1:1:1となるようなゲイン(WB制御値)を各画素に乗算することで、オートホワイトバランスを実現することができる。これは人間の色順応のメカニズムに基づいており、人間は異なる光源下においても白いものが白く見えるように色順応が働くという仮説に基づいている。つまり、オートホワイトバランスとは、画面全体が白色となる基準被写体を撮影している状態で、撮影信号としてのR信号、G信号、B信号の出力レベルを等しくするホワイトバランス制御を、基準被写体を撮影せずに自動で行えるようにする処理ということができる。画面の中の白色を映した領域のR信号およびB信号の出力レベルをG信号と等しくするために、入力されたR信号およびB信号のそれぞれに対して乗算されるゲイン(係数)が、WB制御値となる。
【0006】
ところで、上記のようなオートホワイトバランスの方式は、被写体に無彩色の部分がない場合や、被写体のほとんどを有彩色(物体色)が占める場合には、画像フレームから白色の領域を検出できない、もしくは白色の領域を検出する処理の精度が低下するため、結果的に誤ったホワイトバランス制御を行ってしまうという欠点がある。具体的な例を示すと、高色温度の光源下において人肌がアップのシーンで、人肌の肌色を映した領域を低色温度光源下の白色(無彩色)を映した領域として誤って検出し、人肌を青白く補正するようなホワイトバランス制御を行ってしてしまうという問題が指摘されている。また、森林のように緑が占める割合が大きい場合にも、物体色の領域を蛍光灯によって照明された白色の領域として誤って検出し、誤ったホワイトバランス制御を行ってしまうことがある。このような誤ったホワイトバランス制御はカラーフェイリアと呼ばれている。
【0007】
以上のようなカラーフェイリアを改善する方法として、例えば、特許文献1や特許文献2に記載の技術が知られている。
【0008】
特許文献1には、動画撮影におけるカラーフェイリアの軽減方法として、被写体追尾情報を用いた制御方法が開示されている。具体的には、主要な被写体の代表的な色を示す領域(例えば、人物の肌色)を基準領域として設定し、追尾手段により、この基準領域を画面内での被写体の移動に合わせて追従させ、この基準領域に含まれる色情報を取得し、各フレームにおいて被写体の同一の部分(例えば人物の頬の部分)を表す画像データに基づいて、露出およびホワイトバランスを適正に補正できるようにしている。すなわち、この特許文献1に記載の技術では、利用者が設定した基準領域を、その色情報から順次取得されるフレームに対して探索することで、たとえば被写体が撮像装置に急に近づいてきた場合でも肌色引き込みによるカラーフェイリアを防止できるようにしている。
【0009】
また、特許文献2には、複数の撮像システムにより動画像を追尾しながら撮像するシステムにおいて、被写体の移動に伴い被写体を撮像していたカメラからとのカメラに切り替えて被写体の撮像を引き継ぐ際に、被写体を撮像していた撮像条件を、撮像を引き継いだカメラの撮像条件として継承することで、カメラ切換時の不自然な画像の変化を抑制することが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載の技術では、そもそもユーザが設定する被写体の代表的な色を示す基準領域が、光源色(無彩色)の領域なのか、物体色(有彩色)の領域なのか分からず、基準領域の色情報をどのようにホワイトバランス制御に用いるのか不明である。また、特許文献1に記載の技術では、被写体が動くことで異なる光源下に移動した場合、基準領域から得られる色情報は大きく変わってしまい、本来同一基準領域と判定しなければならないのに誤判定し、カラーフェイリアが発生してしまうという問題がある。
【0011】
また、特許文献2に記載の技術においても、被写体が異なる光源下に移動した場合、カメラ切換時にホワイトバランス等の撮像条件を引き継いでしまうので、移動後の撮影環境に適したホワイトバランスが設定できず、カラーフェイリアが発生してしまうという問題がある。
【0012】
本発明は、上記に鑑みてなされたものであって、オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができる撮像装置およびホワイトバランス制御方法を提供することを目的としている。
【課題を解決するための手段】
【0013】
上述した課題を解決し、目的を達成するために、本発明に係る撮像装置は、撮像素子と、前記撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出する特徴量算出手段と、前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出する白ブロック検出手段と、前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出する被写体エリア検出手段と、前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するホワイトバランス制御手段と、を備えることを特徴とする。
【0014】
また、本発明に係るホワイトバランス制御方法は、撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出するステップと、前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出するステップと、前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出するステップと、前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するステップと、を含むことを特徴とする。
【発明の効果】
【0015】
本発明によれば、オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができるという効果を奏する。
【図面の簡単な説明】
【0016】
【図1−1】図1−1は、デジタルカメラの上面図である。
【図1−2】図1−2は、デジタルカメラの正面図である。
【図1−3】図1−3は、デジタルカメラの裏面図である。
【図2】図2は、デジタルカメラの制御系の構成を示すブロック図である。
【図3】図3は、第1の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図4】図4は、各ブロックのWB評価値をWB色空間上にプロットした様子を示す図である。
【図5】図5は、追尾対象の被写体の動きと時系列で入力される画像フレームAおよび画像フレームB内の被写体エリアの位置とを説明する図である。
【図6】図6は、図5の画像フレームAおよび画像フレームBから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【図7】図7は、追尾対象の被写体の動きと時系列で入力される画像フレームC、画像フレームDおよび画像フレームE内の被写体エリアの位置とを説明する図である。
【図8】図8は、図7の画像フレームC、画像フレームDおよび画像フレームEから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【図9】図9は、第1の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【図10】図10は、第2の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図11】図11は、第2の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【図12】図12は、第3の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図13】図13は、第3の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【図14】図14は、第4の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図15】図15は、第4の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下に添付図面を参照して、この発明に係る撮像装置およびホワイトバランス制御方法の最良な実施の形態を詳細に説明する。なお、以下ではイメージセンサとしてCMOSセンサを用いたデジタルカメラに本発明を適用した例について説明するが、本発明は、CCDセンサを用いたデジタルカメラに対しても有効に適用可能である。また本発明は、デジタルカメラに限らず、被写体追尾機能とオートホワイトバランス機能とを備えた撮像装置に対して広く適用できる。
【0018】
(第1の実施の形態)
図1は、本実施の形態に係るデジタルカメラの外観を示す図であり、図1−1は同デジタルカメラの上面図、図1−2は同デジタルカメラの正面図、図1−3は同デジタルカメラの裏面図である。
【0019】
本実施の形態に係るデジタルカメラは、図1−1に示すように、その上面に、静止画撮影が可能な枚数などを表示するサブLCD1と、静止画撮影の際に押圧操作されるレリーズシャッタボタン2と、画像を記録する記録(撮影)モードや記録された画像を再生する再生モード、カメラ設定のためのSETUPモードなどの各種モードの切替えの際に操作されるモードダイヤル3を有する。
【0020】
また、本実施の形態に係るデジタルカメラは、図1−2に示すように、その正面に、ストロボを発光させるストロボ発光部4と、被写体までの距離を測定する測距ユニット5と、図示しないリモコン端末からの赤外線信号を受信するリモコン受光部6と、後述するズームレンズ25やフォーカスレンズ26、メカニカルシャッタ27およびこれらを一体に支持する支持部材などから構成される鏡胴ユニット7と、光学ファインダ(正面)8を有する。また、本実施の形態に係るデジタルカメラの側面には、後述するメモリカード80を挿入するメモリカードスロットルや電池を収容する電池収容部が設けられており、これらメモリカードスロットルや電池収容部は蓋体9により閉塞されている。
【0021】
また、本実施の形態に係るデジタルカメラは、その裏面に、オートフォーカス作動時に点灯するオートフォーカスLED(AFLED)10と、ストロボ発光時に点灯するストロボLED11と、各種設定画面の表示や再生画像の表示および撮影時の電子ファインダとして用いられるLCDモニタ12と、光学ファインダ(裏面)13と、広角側ズーム時に操作されるズームボタン(WIDE)14および望遠側ズーム時に操作されるズームボタン(TELE)15と、電源スイッチ16と、セルフタイマの作動時に操作されるセルフタイマ/削除スイッチ17を有する。
【0022】
さらに、本実施の形態に係るデジタルカメラは、その裏面に、メニュー選択の際に操作されるメニュースイッチ18と、選択した事項を確定させる際に操作されるOKスイッチ19と、LCDモニタ12に表示する再生画像を切替える際に操作される画像確認スイッチ(左)20および画像確認スイッチ(右)21と、マクロ撮影を行う際に操作されるマクロスイッチ22と、ストロボ発光モードの切替え時に操作されるストロボスイッチ23と、LCDモニタ12の表示の切替え時に操作されるディスプレイスイッチ24を有する。
【0023】
図2は、本実施の形態に係るデジタルカメラの制御系の構成を示すブロック図である。本実施の形態に係るデジタルカメラは、制御系の構成として、ズームレンズ25やフォーカスレンズ26、メカニカルシャッタ27を駆動するためのモータドライバ28と、イメージセンサであるCMOSセンサ30と、CMOSセンサ30から出力されるアナログの画像信号を処理してデジタル画像データを生成するアナログフロントエンド(AFE)40と、CMOSセンサ30およびAFE40に対して駆動タイミング信号を出力するタイミングジェネレータ(TG)50と、AFE40から出力されたデジタル画像データに対して各種デジタル画像処理を実行するとともにデジタルカメラ全体の動作を制御する信号処理IC60とを備えている。信号処理IC60には、上述したLCDモニタ12のほか、SDRAM70やメモリカード80、ROM90、操作部100などが接続されている。
【0024】
メカニカルシャッタ27は、開状態によりCMOSセンサ30に光を入射させ、閉状態によりCMOSセンサ30への光の入射を遮断する機械的なシャッタである。このメカニカルシャッタ27は、光学レンズであるズームレンズ25やフォーカスレンズ26とともに、モータドライバ28により駆動される。モータドライバ28によるズームレンズ25、フォーカスレンズ26およびメカニカルシャッタ27の駆動は、信号処理IC60の内部に含まれるCPU61によって制御される。
【0025】
CMOSセンサ30は、光電変換機能によって、光学レンズにより結像した光学像をその明るさに比例した電気信号に変換して出力する固体撮像素子である。CMOSセンサ30は、TG50から出力される駆動タイミング信号に従って駆動され、各画素の露光や信号読み出しが制御される。CMOSセンサ30からの出力電気信号は、AFE40に入力される。
【0026】
AFE40は、CMOSセンサ30の出力電気信号(アナログ画素信号)をサンプリングホールド(相関二重サンプリング)するCDS41と、CDS41によりサンプリングされた信号のゲインを調整するAGC(Auto Gain Control)42と、AGC42の出力をデジタル信号に変換するA/D変換機(A/D)43とを有する。これらAFE40を構成する各部は、TG50から出力される駆動タイミング信号に従ってCMOSセンサ30と同期して駆動され、また、AGC42におけるゲインの設定などは、信号処理IC60内部に含まれるCPU61の命令に従って実施される。AFE40により出力されるデジタルデータ(デジタル画像データ)は、信号処理IC60に入力される。
【0027】
TG50には、信号処理IC60内部に含まれる同期信号生成部69によって生成された垂直同期信号VDおよび水平同期信号HDが供給される。TG50は、これら垂直同期信号VDおよび水平同期信号HDに基づいて、CMOSセンサ30およびAFE40を同期して駆動させるための駆動タイミング信号を生成し、生成した駆動タイミング信号をCMOSセンサ30およびAFE40に供給する。
【0028】
信号処理IC60は、デジタルカメラ全体の動作を統括的に制御するCPU61と、垂直同期信号VDおよび水平同期信号HDに合わせてAFE40からデジタル画像データの取り込みを行うCMOSI/F部62と、SDRAM70へのデータの書き込みや読み出しを制御するメモリコントローラ63と、CMOSI/F部62から入力されたデジタル画像データを表示や記録が可能なYUVのデータ形式に変換するYUV変換部64と、画像データを所定のフォーマット(例えばJPEG)に従って圧縮および伸張する圧縮伸張部65と、LCDモニタ12や外部表示装置への表示データの出力を制御する表示出力制御部66と、表示や記録のサイズに合わせて画像サイズを変更するリサイズ処理部67と、メモリカード80へのデータの書き込みや読み出しを制御するメディアI/F部68と、CPU61の命令により垂直同期信号VDおよび水平同期信号HDを生成する同期信号生成部69とを有している。
【0029】
AFE40から出力されるデジタル画像データは、CMOSI/F部62により画像フレームを一単位として信号処理IC60内部に取り込まれ、信号処理IC60内部で黒レベルの補正、欠損画素の補正、シェーディング補正などの画像処理が行われた上で、メモリコントローラ63によりSDRAM70に画像フレームごとのRGBデータ(RAW−RGB画像データ)として一時保管される。
【0030】
SDRAM70に保存された画像フレームごとのRAW−RGB画像データは、メモリコントローラ63によりSDRAM70から読み出され、ホワイトバランスのゲイン乗算やガンマ補正、RGB補間処理を経てYUV変換部64に供給される。YUV変換部64は、この画像データに対してエッジ強調や色設定などの各種画像処理を行うとともに、輝度/色差信号であるYUV画像データへの変換を行う。YUV変換部64で生成されたYUV画像データは、メモリコントローラ63により再度SDRAM70に格納される。
【0031】
SDRAM70に保存されたYUV画像データは、メモリコントローラ63によりSDRAM70から読み出され、撮影モードアイコンなどを表示するためのOSD(オンスクリーンディスプレイ)データとともに表示出力制御部66に供給される。表示出力制御部66は、これらYUV画像データとOSDデータを合成して表示用データを生成し、同期信号などの信号を付加してLCDモニタ12に出力する。なお、表示出力制御部66は、生成した表示用データをTVビデオ信号として出力して外部表示装置に表示させることも可能であり、例えば外部表示装置がNTSCシステムのTVであれば、リサイズ処理部67により、そのシステムに合わせた水平・垂直の変倍処理が施された上で、TVに出力される。
【0032】
また、メモリカード80への記録時には、SDRAM70に保存されたYUV画像データが、CPU61の命令によりメモリコントローラ63によってSDRAM70から読み出されて圧縮伸張部65に供給され、圧縮伸張部65においてJPEGデータなどの圧縮データが生成される。ここで、SDRAM70に保存されたYUV画像データはフルサイズのデータであり、メモリカード80に記録する画像サイズがCMOSセンサ30の画像サイズよりも小さい場合は、リサイズ処理部67にて記録用に画像が縮小された上で圧縮伸張部65に供給される。圧縮伸張部65で生成された圧縮データ(JPEGデータ)は、メモリコントローラ63により再度SDRAM70に格納され、その後、ヘッダ追加などの処理が行われた後に、メディアI/F部68を介してメモリカード80に記録される。
【0033】
以上の信号処理IC60内部における各部の動作は、CPU61の命令に従って実行される。CPU61は、例えばROM90に格納されたデジタルカメラの制御を行うための制御プログラムおよび制御データを、例えばSDRAM70上にロードし、ロードした制御プログラムのプログラムコードに基づいて、デジタルカメラ全体の動作を統括的に制御する。すなわち、CPU61は、操作部100の各種ボタンキーによる指示や図示しないリモコン端末からの動作指示等に基づいて、指示に応じた画像を適切に撮影、表示、記録できるように、モータドライバ28やAFE40、TG50、信号処理IC60内部の各処理部などを制御する。なお、操作部100は、撮影者がデジタルカメラの動作指示を行うためのものであり、図1に示したレリーズシャッタボタン2やズームボタン14,15などの各種ボタンキーが該当する。
【0034】
以下、レリーズシャッタボタン2の押下に応じて静止画を撮影する際のCPU61による制御について、さらに詳しく説明する。
【0035】
レリーズシャッタボタン2が押下されると、撮影に先立ちAF(AUTO FOCUS)処理が行われる。AF処理としては、例えば、フォーカスレンズ26を移動させながらコントラストの最大値を見つける山登りAFなどが行わる。これは、映像信号のG信号(または輝度値であるY信号)の高周波成分からAF評価値を作成し、AF評価値が最大になるところのフォーカスレンズ26の位置(フォーカス位置)を算出して、フォーカスレンズ26を移動させる処理である。
【0036】
AFの評価値を取得するエリアについては、1つの画像フレームに対して複数のエリアを考慮するマルチエリアAFや、一部しか考慮しないスポットエリアAFなどがある。そして、AF評価値をもとに撮影シーンに適したフォーカス位置を算出し、そのポイントへフォーカスレンズ26を移動させる。フォーカスレンズ26は、CPU61の命令により、モータドライバ28を介して移動させることができる。
【0037】
次に、静止画撮影用の電子シャッタの設定や、AGC42の計算/設定、絞りの計算/設定が行われ(AE(AUTO EXPOUSRE)処理)、記録用の露光が行われる。電子シャッタの設定は、CPU61の命令により、CMOSセンサ30の駆動を制御するTG50により実行することができる。また、AGC42の設定は、CPU61の命令により、AFE40により実行することができる。
【0038】
その後、静止画用の露光が完了した時点でメカニカルシャッタ27が閉じられ、CMOSセンサ30より静止画用のRGBデータ(RAW−RGB画像データ)が出力される。レリーズ第1処理(半押し)およびレリーズ第2処理(全押し)を搭載しているカメラシステムでは、レリーズ第1処理を実行することでAFやAE処理の計算を行い、レリーズ第2処理で記録用の露光が行われるような制御になっているのが一般的である。
【0039】
静止画用のRAW−RGB画像データは、CMOSI/F部62により信号処理IC60内部に取り込まれ、信号処理IC60内部で黒レベルの補正、欠損画素の補正、シェーディング補正などの画像処理が行われた上で、メモリコントローラ63によりSDRAM70に書き込まれる。インタレース転送であれば、複数回の転送によって、1つの画像フレームを構成する全てのデータが、RAW−RGB画像データとしてSDRAM70に書き込まれる。
【0040】
SDRAM70に書き込まれた静止画用のRAW−RGB画像データは、上述したように、SDRAM70から読み出され、ホワイトバランスのゲイン乗算やガンマ補正、RGB補間処理を経て、YUV変換部64でエッジ強調や色設定などの各種画像処理を行うとともに輝度/色差信号であるYUVデータに変換され、SDRAM70に書き戻される。
【0041】
その後、SDRAM70に書き込まれたYUV画像データが、再度、SDRAM70から読み出され、必要に応じてリサイズ処理部67にて縮小処理が行われた上で、圧縮伸張部65で例えばJPEG圧縮などのデータ圧縮処理が行われる。そして、圧縮データ(JPEGデータ)が再度SDRAM70に書き戻され、ヘッダ追加などの処理が行われた後に、メディアI/F部68を介してメモリカード80に記録される。
【0042】
次に、本実施の形態に係るデジタルカメラにおいて実施されるホワイトバランス制御について、詳細に説明する。
【0043】
本実施の形態に係るデジタルカメラによるホワイトバランス制御は、一例として、随時更新される画像フレームに対して連続的に実施される。すなわち、信号処理IC60には、上述したように、撮像素子であるCMOSセンサ30からの画像データが、AFE40を介して、フレーム画像を一単位として随時入力される。この信号処理IC60に入力される各画像フレームに対して、信号処理IC60内部のCPU61による処理として、ホワイトバランス制御が行われる。なお、ホワイトバランス制御の対象となる画像フレームは、静止画撮影前にLCDモニタ12などに表示するモニタリング用の画像の画像フレームであってもよいし、例えば連写撮影などで得られる連続した静止画の画像フレームであってもよい。また、静止画撮影前にモニタリング用の画像の画像フレームに対する処理で得られた後述のホワイトバランス制御値を記憶しておき、静止画撮影時に得られる画像フレームに対して記憶したホワイトバランス制御値を適用してホワイトバランス制御を行うようにしてもよい。
【0044】
図3は、ホワイトバランス制御を実施するためのCPU61の機能構成を示す機能ブロック図である。CPU61は、例えば上述した制御プログラムの1つとしてROM90に格納され、メインメモリ(例えばSDRAM70)上にロードされたホワイトバランス制御用のプログラムを実行することによって、図3に示すように、特徴量算出部101、白ブロック検出部102、被写体エリア検出部103、ホワイトバランス制御部104の各機能を実現する。
【0045】
特徴量算出部101は、CMOSセンサ30から出力され、AFE40を介して信号処理IC60に入力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについてWB評価値を算出する処理機能である。
【0046】
白ブロック検出部102は、特徴量算出部101により算出されたWB評価値に基づいて、複数に分割された画像フレームの各ブロックのうちで、白色を映したブロックと推定される白ブロックを検出する処理機能である。
【0047】
被写体エリア検出部103は、処理の対象としている現在の画像フレームの中で、追尾する被写体を写した領域である被写体エリアを検出する処理機能である。
【0048】
本実施の形態に係るデジタルカメラは被写体追尾機能を備えており、被写体追尾機能がオンの状態での動作時には、CPU61が、信号処理IC60に時系列で連続的に入力される複数の画像フレームそれぞれに対して、例えばユーザにより追尾対象として指定された被写体が映っている領域(被写体エリア)を検出する処理を行う。この画像フレームから被写体エリアを検出する処理を行うのが、被写体エリア検出部103である。被写体追尾機能がオンの場合、画像フレームから検出された被写体エリアは、例えば、静止画撮影時における上述したAFの評価値を取得するエリアとして、また、AE処理のための測光エリアとして用いられる。なお、被写体追尾自体の手法に関しては様々な方式が提案されており、画像フレームから被写体エリアを検出する処理についても一般的な公知の技術を用いて行えばよいので、処理の詳細については説明を省略する。
【0049】
ホワイトバランス制御部104は、白ブロック検出部102により検出された白ブロックのWB評価値に基づいてWB制御値を算出し、算出したWB制御値を用いて、画像フレームのホワイトバランスを制御する処理機能である。ここで、特に本実施の形態に係るデジタルカメラにおいては、このCPU61のホワイトバランス制御部104が、被写体エリア検出部103により検出された被写体エリアについての情報を利用することによって、従来技術と比較してより適切なWB制御値を算出し、高精度なホワイトバランス制御を行えるようにしている。
【0050】
すなわち、このホワイトバランス制御部104は、処理の対象としている現在の画像フレームにおいて、被写体エリア検出部103が検出した被写体エリア内から白エリアが検出され、且つ、現在の画像フレームよりも前にCMOSセンサ30から出力された画像フレーム(以下、先行フレームという。)において、被写体エリア検出部103が検出した被写体エリア(現在の画像フレームにおける追尾対象の被写体と同一の被写体を映したエリア)内から白ブロックが検出されていない場合には、現在の画像フレームにおいて被写体エリア内から検出された白ブロックを用いずに、それ以外の白ブロックのWB評価値に基づいてWB制御値を算出し、算出したWB制御値を用いて画像フレームのホワイトバランスを制御するようにしている。なお、上記の先行フレームは、現在の画像フレームの直前に出力された画像フレームだけに限らず、現在の画像フレームと同一の被写体を追尾している状態で現在の画像フレームよりも前に出力された画像フレームすべてを含むものである。
【0051】
以下、CPU61が上記の特徴量算出部101、白ブロック検出部102、被写体エリア検出部103およびホワイトバランス制御部104の各機能を持つことにより実現されるホワイトバランス制御の具体例について、さらに詳しく説明する。
【0052】
CMOSセンサ30からAFE40を介して出力される画像フレームは、信号処理IC60のCMOSI/F部62により信号処理IC60内部に取り込まれ、メモリコントローラ63によりSDRAM70(フレームメモリ)に保管される。このとき、CMOSI/F部62は、信号処理IC60内部に取り込んだ画像フレームにおける特定部分あるいは画像フレーム全体のR,G,Bの値を読み込み、CPU61に入力する。
【0053】
CPU61の特徴量算出部101は、信号処理IC60内部に取り込まれた画像フレームを予め定めた分割方法(例えば、縦横16×16の256分割)に従って複数のブロックに分割し、CMOSI/F部62が読み込んだR,G,Bの値を用いて、分割したブロックごとに、各ブロックに含まれる画素のRGBそれぞれの信号の積算値を求める。そして、特徴量算出部101は、ブロックごとのG信号の積算値に対するR信号およびB信号の積算値の比(G/R,G/B)を算出する。算出した値は、各ブロックの色の特徴を表す特徴量であり、これをWB評価値として用いる。
【0054】
特徴量算出部101によって画像フレームにおける各ブロックのWB評価値(G/R,G/B)が算出されると、白ブロック検出部102が、算出された各ブロックのWB評価値(G/R,G/B)を、G/Rを横軸とし、G/Bを縦軸としたWB色空間上にプロットし、WB色空間上における各ブロックのWB評価値の分布から、白ブロックの検出を行う。
【0055】
図4は、各ブロックのWB評価値(G/R,G/B)をWB色空間上にプロットした様子を示す図である。WB色空間上には、図4に示すように、予め光源の色温度を変化させた場合における黒体輻射の軌跡がリファレンスゲインとして用意されている。そして、このリファレンスゲイン上において実際の撮影環境下で想定される光源色を中心にある程度の幅を持たせた領域(図4において楕円で示した領域)が、白検出エリアとして設定されている。
【0056】
白ブロック検出部102は、特徴量算出部101により算出された各ブロックのWB評価値をWB色空間上にプロットしたときに、プロットされたWB評価値(図4中の黒色の点)が、WB色空間上に設定された白検出エリア内に位置するブロックを、画像フレームの中で白色を映したブロックと推定される白ブロックとして検出する。WB評価値が白検出エリア内に入っているか否かは、判定用のプログラムを用意してCPU61で実行することにより簡単に実現できる。なお、CMOSセンサ30の分光感度の分布により同じ照明、被写体でも色の特徴が変化するので、ホワイトバランス色空間上のリファレンスゲインおよび白検出エリアは、デジタルカメラが搭載するCMOSセンサ30の特性に合わせて決定しておくことが望ましい。
【0057】
白ブロック検出部102により白ブロックが検出されると、ホワイトバランス制御部104は、検出された白ブロックのWB評価値(G/R,G/B)に基づいて、WB制御値を算出する。このとき、ホワイトバランス制御部104は、処理の対象としている現在の画像フレームにおいて被写体エリア内から白エリアが検出されているが、先行フレームにおいては被写体エリア内から白ブロックが検出されていない場合は、現在の画像フレームにおいて被写体エリア内から検出された白ブロックを用いずに、それ以外の白ブロックのWB評価値に基づいてWB制御値を算出する。WB制御値は、検出された白ブロックを画像上で白く見せるための制御値であり、白ブロック内における各画素のRGBの積算比がR:G:B=1:1:1に近づくように、R信号やB信号に対して乗算するゲインの値である。
【0058】
ここで、WB評価値は、上述したようにG信号の積算値に対するR信号およびB信号の積算値の比(G/R,G/B)であるので、1つの白ブロックのみに着目すれば、この白ブロックのG/Rの値をRゲインとし、G/BをBゲインとして、R信号に対してRゲインを乗算するともにB信号に対してBゲインを乗算することにより、RGBの積算比をR:G:B=1:1:1とすることができる。ただし、実際には1つの画像フレームから複数の白ブロックが検出され、検出された複数の白ブロックのWB評価値が異なる値を持つことが多い。そこで、ホワイトバランス制御部104は、例えば、検出された複数の白ブロックのG/Rの値の平均値をRゲインとし、検出された複数の白ブロックのG/Bの値の平均値をBゲインとして、WB制御値(Rゲイン,Bゲイン)を算出する。また、実際の撮影環境は複数の光源の影響を受ける場合も多く、図4に示す例のように、複数の白検出エリアにおいて白ブロックが検出される場合もある。このような場合には、ホワイトバランス制御部104は、例えば、複数の白検出エリアそれぞれで検出された白ブロックの数に応じて重みを付けた加重平均などによって、WB制御値を算出すればよい。また、各光源の影響が支配的な領域ごとに異なるWB制御値を算出し、領域の境界付近ではWB制御値を線形に変化させるようにしてもよい。なお、ホワイトバランス制御部104によるWB制御値の算出方法は、上記に限定されるものではなく、例えばカラーフェイリアを低減するための工夫、あるいはユーザにとって好ましい色合いに仕上がるような工夫など、様々な工夫を行った上で最終的に得られる値をWB制御値として決定するようにしてもよい。
【0059】
ホワイトバランス制御部104は、以上のようにして算出したWB制御値(Rゲイン,Bゲイン)を、フレーム画像を構成する各画素のR信号およびB信号に乗算することによって、画像フレームのホワイトバランスを制御する。具体的には、上述したように、YUV変換部64がSDRAM70から読み出されたRAW−RGB画像データをYUVデータに変換する前処理としてホワイトバランスのゲイン乗算が行われるが、この際、CPU61のホワイトバランス制御部104がYUV変換部64に対してWB制御値を設定することにより、このWB制御値に基づくホワイトバランス制御を実行する。
【0060】
図5および図6は、本実施の形態におけるホワイトバランス制御の具体的な一例を説明する図であり、図5は追尾対象の被写体の動きと時系列で入力される画像フレームAおよび画像フレームB内の被写体エリアの位置とを説明する図、図6は図5の画像フレームAおよび画像フレームBから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【0061】
図5に示す例は、追尾対象の被写体が、図5(a)に示すように、ある光源の光が直接照射されない位置から直接照射される位置(光源下)へと移動した場合を想定している。追尾対象の被写体が光源下へ移動する前に撮影(入力)された画像フレームが、図5(b)に示す画像フレームAであり、追尾対象の被写体が光源下へ移動した後に撮影(入力)された画像フレームが、図5(c)に示す画像フレームBである。つまり、画像フレームAは、画像フレームBとの関係において先行フレームとなる。また、図5(d)は、画像フレームAにおいて検出された被写体エリアに対応する画像フレームA内のブロックの位置を示しており、図5(e)は、画像フレームBにおいて検出された被写体エリアに対応する画像フレームB内のブロックの位置を示している。なお、この例では、説明を簡単にするために、1つの画像フレームにおけるブロックの数は、縦横6×9の54個であり、被写体エリアの大きさはブロック2個分に相当するものとしている。
【0062】
本実施の形態におけるホワイトバランス制御は、上述したように、画像フレームから検出された被写体エリアについての情報を利用して、適切なWB制御値を算出するようにしている。具体的には、画像フレームAでは、図5(d)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(2,2)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。一方、画像フレームBでは、図5(e)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(4,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。これら被写体エリアに対応するブロックの位置の情報を用い、白ブロックが被写体エリア内から検出されたか否かを判定する。
【0063】
すなわち、画像フレームAに対するホワイトバランス制御では、(水平位置,垂直位置)=(2,2)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームAの(水平位置,垂直位置)=(2,2)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図6に示すように、(0.4,0.6)であったとすると、このWB評価値は白検出エリアから外れているため、画像フレームAにおいては、被写体エリア内から白ブロックは検出されていないと判定する。
【0064】
一方、画像フレームBに対するホワイトバランス制御では、(水平位置,垂直位置)=(4,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームBの(水平位置,垂直位置)=(4,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図6に示すように、(0.5,0.9)であったとすると、このWB評価値は白検出エリア内に入っているため、画像フレームBにおいては、被写体エリア内から白ブロックが検出されたと判定する。
【0065】
画像フレームAと画像フレームBとにおいて、被写体検出エリアに対応するブロックのWB評価値が変化するのは、追尾対象の被写体が異なる光源下に移動した結果、追尾対象の被写体自体の色(物体色)は同じでも、光源が変化したことの影響により、CMOSセンサ30から出力される信号が変化するためである。従来技術では、このような場合でも、画像フレームBに対するホワイトバランス制御を行う際に、被写体エリア内から検出された白ブロックも含め、全ての白ブロックのWB評価値を用いてWB制御値の算出を行うようにしていた。このため、追尾対象の被写体を白くする方向のWB制御値が算出されてしまい、カラーフェイリアを生じさせてしまう場合があった。
【0066】
これに対して、本実施の形態におけるホワイトバランス制御では、画像フレームBに対するホワイトバランス制御を行う際に、先行フレームである画像フレームAにおいて被写体エリア内から白ブロックが検出されていないため、被写体エリア内から検出された白ブロックのWB評価値をWB制御値の算出には用いず、被写体エリア内から検出された白ブロック以外の他の白ブロックのWB評価値を用いて、WB制御値の算出を行う。その結果、適切なWB制御値を算出することができ、ホワイトバランス制御を高精度に行って、カラーフェイリアの発生を有効に抑制することができる。
【0067】
図7および図8は、本実施の形態におけるホワイトバランス制御の他の具体例を説明する図であり、図7は追尾対象の被写体の動きと時系列で入力される画像フレームC、画像フレームDおよび画像フレームE内の被写体エリアの位置とを説明する図、図8は図7の画像フレームC、画像フレームDおよび画像フレームEから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【0068】
図7に示す例は、図7(a)に示すように、ある光源下に位置している被写体が追尾対象として設定(ロックオン)された後、その追尾対象の被写体が、光源の光が直接照射されない位置へと移動し、さらにその後、光源下へと戻ってきた場合を想定している。追尾対象の被写体をロックオンしたときに撮影(入力)された画像フレームが、図7(b)に示す画像フレームCであり、追尾対象の被写体が光源下から移動した後に撮影(入力)された画像フレームが、図7(c)に示す画像フレームDであり、追尾対象の被写体が光源下へと戻ってきた後に撮影(入力)された画像フレームが、図7(d)に示す画像フレームEである。つまり、画像フレームDは、画像フレームEとの関係において先行フレームとなる。また、図7(e)は、画像フレームCにおいて検出された被写体エリアに対応する画像フレームC内のブロックの位置を示しており、図7(f)は、画像フレームDにおいて検出された被写体エリアに対応する画像フレームD内のブロックの位置を示しており、図7(g)は、画像フレームEにおいて検出された被写体エリアに対応する画像フレームE内のブロックの位置を示している。
【0069】
画像フレームCでは、図7(e)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(3,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。また、画像フレームDでは、図7(f)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(7,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。また、画像フレームEでは、図7(g)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(5,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。
【0070】
本例の場合、画像フレームCの(水平位置,垂直位置)=(3,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図8に示すように、(0.5,0.9)であり、白検出エリア内に入っているとする。画像フレームCは、追尾対象の被写体をロックオンしたときに撮影(入力)された画像フレームであるため、先行フレームとなる画像フレームは存在しない。このため、画像フレームCに対するホワイトバランス制御では、被写体エリア内から検出された白ブロックも含め、全ての白ブロックのWB評価値を用いてWB制御値の算出が行われる。
【0071】
次に、画像フレームDに対するホワイトバランス制御では、画像フレームDの(水平位置,垂直位置)=(7,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームDの(水平位置,垂直位置)=(7,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図8に示すように、(0.4,0.6)であったとすると、このWB評価値は白検出エリアから外れているため、画像フレームDにおいては、被写体エリア内から白ブロックは検出されていないと判定する。
【0072】
次に、画像フレームEに対するホワイトバランス制御では、画像フレームEの(水平位置,垂直位置)=(5,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームEの(水平位置,垂直位置)=(5,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図8に示すように、(0.5,0.9)であったとすると、このWB評価値は白検出エリア内に入っているため、画像フレームEにおいては、被写体エリア内から白ブロックが検出されたと判定する。
【0073】
本例においては、画像フレームEに対するホワイトバランス制御を行う際に、先行フレームである画像フレームDにおいて被写体エリア内から白ブロックが検出されていないため、被写体エリア内から検出された白ブロックのWB評価値をWB制御値の算出には用いず、被写体エリア内から検出された白ブロック以外の他の白ブロックのWB評価値を用いて、WB制御値の算出を行う。その結果、上述した例と同様に、適切なWB制御値を算出することができ、ホワイトバランス制御を高精度に行って、カラーフェイリアの発生を有効に抑制することができる。
【0074】
図9は、被写体追尾機能がオンのときにCPU61により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図9のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。
【0075】
信号処理IC60内部に画像フレームが入力されると(ステップS101)、CPU61の特徴量算出部101が、入力された画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれのWB評価値(G/R,G/B)を算出する(ステップS102)。
【0076】
次に、CPU61の白ブロック検出部102が、特徴量算出部101により算出されたWB評価値に基づいて、複数に分割された画像フレームの各ブロックのうちで、白色を映したブロックと推定される白ブロックを検出する(ステップS103)。
【0077】
次に、追尾対象の被写体が既に設定(ロックオン)されているか否かが判定され(ステップS104)、追尾対象の被写体が既に設定されていれば(ステップS104:YES)、CPU61の被写体エリア検出部103が、ステップS101で入力された画像フレームの中から、この追尾対象の被写体を映した被写体エリアを検出する(ステップS105)。一方、追尾対象の被写体が設定されていない場合には(ステップS104:NO)、被写体エリア検出部103は、例えばユーザからの指定に従って、ステップS101で入力された画像フレーム中の被写体を追尾対象として設定し(ステップS106)、その被写体の位置を被写体エリアとする。
【0078】
次に、CPU61のホワイトバランス制御部104が、白ブロック検出部102により検出された白ブロックの位置と、被写体エリア検出部103により検出された被写体エリアの位置とに基づいて、被写体エリア内から白ブロックが検出されているか否かを判定する(ステップS107)。そして、被写体エリア内から白ブロックが検出されていない場合には(ステップS107:NO)、ホワイトバランス制御部104は、判定結果フラグに1をセットして(ステップS108)、ステップS111に処理を移行する。なお、判定結果フラグは、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かを示す1ビットの情報であり、判定結果フラグ=0は被写体エリア内から白ブロックが検出されたことを示し、判定結果フラグ=1は被写体エリア内から白ブロックが検出されていないことを示している。
【0079】
一方、被写体エリア内から白ブロックが検出された場合には(ステップS107:YES)、ホワイトバランス制御部104は、判定結果フラグ=1となっているか否か、つまり、先行フレームにおいて被写体エリア内から白ブロックが検出されていないかどうかを確認する(ステップS109)。そして、判定結果フラグ=1となっている場合には(ステップS109:YES)、ホワイトバランス制御部104は、被写体エリア内から検出された白ブロックを除き、ステップS103で検出された白ブロックのWB評価値に基づいてWB制御値の算出を行う(ステップS110)。一方、判定結果フラグ=0となっている場合(ステップS109:NO)、あるいは、被写体エリア内から白ブロックが検出されなかった場合(ステップS107:NO)は、ステップS103で検出されたすべての白ブロックのWB評価値に基づいてWB制御値の算出を行う(ステップS111)。
【0080】
ステップS110またはステップS111で算出されたWB制御値は、例えば、RゲインおよびBゲインとしてYUV変換部64に設定される。そして、画像フレームを一単位とするRAW−RGB画像データのR信号に対してRゲインを乗算し、B信号に対してBゲインを乗算することで、オートホワイトバランスが行われる。
【0081】
以上、具体的な例を挙げながら詳細に説明したように、本実施の形態に係るデジタルカメラでは、CPU61のホワイトバランス制御部104が、被写体エリア内から白ブロックが検出され、且つ、先行フレームにおいて被写体エリア内から白ブロックが検出されていない場合に、被写体エリア内から検出された白ブロック以外の白ブロックのWB評価値を用いて算出したWB制御値を用いて画像フレームのホワイトバランスを制御するようにしている。したがって、本実施の形態に係るデジタルカメラによれば、オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができる。
【0082】
(第2の実施の形態)
次に、第2の実施の形態に係るデジタルカメラついて説明する。本実施の形態に係るデジタルカメラは、追尾対象の被写体が人物の顔であるか否かを判定する機能を持ち、追尾対象の被写体が人物の顔である場合は、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、処理対象となる現在の画像フレームにおいて被写体エリア内から検出された白ブロックは用いずに、それ以外の他の白ブロックのWB評価値に基づいてWB制御値を算出するようにしたものである。なお、デジタルカメラの基本的な構成および処理の概要は上述した第1の実施の形態と同様であるため、以下、第1の実施の形態と同様の部分については同一の符号を付して重複した説明を省略する。
【0083】
図10は、本実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPU61’の機能構成を示す機能ブロック図である。本実施の形態におけるCPU61’は、図10に示すように、第1の実施の形態におけるCPU61の機能構成(図3参照)に加えて、顔判定部105および補正部106をさらに備えている。
【0084】
顔判定部105は、追尾対象の被写体が人物の顔であるか否かを判定する処理機能である。この顔判定部105は、一例として、画像フレームに対するパターンマッチングなどによって人物の顔を検出する処理を行い、被写体エリア検出部103により検出された被写体エリア内で人物の顔が検出された場合に、追尾対象の被写体が人物の顔であると判定する。なお、画像から人物の顔を検出する手法としては従来様々な方式が提案されており、顔判定部105は、これら公知の技術を採用して人物の顔を検出すればよい。また、顔判定部105による判定は、必ずしもすべての画像フレームに対して行う必要はなく、同一の被写体を追尾している間に追尾対象の被写体が人物の顔であると判定したら、その情報を記憶しておくことで、後の画像フレームでの判定を省略することができる。
【0085】
本実施の形態におけるホワイトバランス制御では、顔判定部105によって追尾対象の被写体が人物の顔であると判定された場合に、ホワイトバランス制御部104’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かの判定を行わず、処理対象となる現在の画像フレームにおいて被写体エリア内から検出された白ブロックを用いずに、白ブロック検出部102により検出された他の白ブロックのWB評価値に基づいてWB制御値を算出する。すなわち、追尾対象の被写体が人物の顔であると判定されていれば、被写体エリアから白ブロックが検出されたとしても、それは白色の領域ではなく、光源の光の影響によりWB評価値が白検出エリアに入った領域であると判定できる。したがって、この場合には、ホワイトバランス制御部104’が被写体エリア内の白ブロックを除いた他の白ブロックのWB評価値に基づいてWB制御値を算出することで、より適切なホワイトバランス制御が可能になる。
【0086】
補正部106は、顔判定部105によって追尾対象の被写体が人物の顔であると判定された場合に、被写体エリアに含まれるブロックのWB評価値を用いて、ホワイトバランス制御部104’が算出したWB制御値を補正する処理機能である。具体的には、補正部106は、顔判定部105によって追尾対象の被写体が人物の顔であると判定された場合に、被写体エリアに含まれるブロックのWB評価値と、ホワイトバランス制御部104’が算出したWB制御値とを比較する。そして、両者の間に予め定めた閾値以上の乖離がある場合に、ホワイトバランス制御部104’が算出したWB制御値を、被写体エリアに含まれるブロックのWB評価値に近づけるように補正する。つまり、補正部106は、ホワイトバランス制御部104’が算出するWB制御値が、上述したWB色空間上で、被写体エリアに含まれるブロック(人物の顔を映したブロック)のWB評価値から一定の距離の範囲内におさまるようにフィードバック制御する。なお、補正部106による具体的な補正方法としては、本発明者が提案した特開2008−236101号公報に開示された技術を適用することができる。
【0087】
図11は、本実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPU61’により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図11のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。なお、図11のフローチャートにおいて、ステップS201〜ステップS206の処理は、図9のフローチャートで示したステップS101〜ステップS106の処理と同様であり、ステップS208〜ステップS212の処理は、図9のフローチャートで示したステップS107〜ステップS211の処理と同様であるので、これらの処理の説明は省略する。
【0088】
本実施の形態におけるホワイトバランス制御では、CPU61’のホワイトバランス制御部104’が、ステップS208において被写体エリア内から白ブロックが検出されているか否かを判定する前に、CPU61’の顔判定部105が、追尾対象の被写体が人物の顔か否かの判定を行う(ステップS207)。そして、追尾対象の被写体が人物の顔ではないと判定された場合に(ステップS207:NO)、ホワイトバランス制御部104’が、第1の実施形態と同様の処理(ステップS208〜ステップS212の処理)を実施する。一方、追尾対象の被写体が人物の顔であると判定された場合(ステップS207:YES)、ホワイトバランス制御部104’は、被写体エリア以外から検出された白ブロックのWB評価値に基づいて、WB制御値の算出を行う(ステップS213)。
【0089】
次に、CPU61’の補正部106が、ステップS213で算出されたWB制御値と、被写体エリア内のブロックのWB評価値とを比較し、両者の乖離が予め定めた閾値以上となっているか否かを判定する(ステップS214)。そして、両者の乖離が閾値以上となっている場合には(ステップS214:YES)、補正部106は、ステップS213で算出されたWB制御値を、被写体エリア内のブロックのWB評価値に近づけるように補正する(ステップS215)。
【0090】
以上のように、本実施の形態に係るデジタルカメラでは、CPU61’の顔判定部105が、追尾対象の被写体が人物の顔であるか否かを判定し、追尾対象の被写体が人物の顔であると判定された場合は、ホワイトバランス制御部104’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、被写体エリア以外から検出された白ブロックのWB評価値に基づいてWB制御値を算出するようにしている。したがって、上述した第1の実施の形態と比較して、さらにオートホワイトバランスの精度を向上させることができ、カラーフェイリアの発生をより有効に抑制することができる。
【0091】
また、本実施の形態に係るデジタルカメラによれば、追尾対象の被写体が人物の顔であると判定された場合に、CPU61’の補正部106が、ホワイトバランス制御部104’ により算出されたWB制御値を被写体エリア内のブロックのWB評価値と比較し、両者の乖離が閾値以上となっている場合に、ホワイトバランス制御部104’により算出されたWB制御値を被写体エリア内のブロックのWB評価値に近づけるように補正するので、人物の顔を考慮したオートホワイトバランスを実施することができ、カラーフェイリアの発生をより有効に抑制することができる。
【0092】
(第3の実施の形態)
次に、第3の実施の形態に係るデジタルカメラついて説明する。本実施の形態に係るデジタルカメラは、被写体エリアの大きさを判定する機能を持ち、被写体エリアの大きさが基準値よりも小さい場合は、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、処理対象となる現在の画像フレームにおいて被写体エリア内から検出された白ブロックは用いずに、それ以外の他の白ブロックのWB評価値に基づいてWB制御値を算出するようにしたものである。なお、デジタルカメラの基本的な構成および処理の概要は上述した第1の実施の形態と同様であるため、以下、第1の実施の形態と同様の部分については同一の符号を付して重複した説明を省略する。
【0093】
図12は、本実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPU61’’の機能構成を示す機能ブロック図である。本実施の形態におけるCPU61’’は、図12に示すように、第1の実施の形態におけるCPU61の機能構成(図3参照)に加えて、被写体エリア判定部107をさらに備えている。
【0094】
被写体エリア判定部107は、被写体エリア検出部103により検出された被写体エリアの大きさを判定する処理機能である。画像フレーム全体の大きさに対して被写体エリアの大きさが十分に小さい場合は、被写体エリア内のブロックのWB評価値がWB制御値の算出に与える影響は小さくなる。例えば、画像フレーム全体を縦横16×16の256ブロックに分割した場合において、被写体エリアの大きさが1ブロック分にしか相当しないような場合には、被写体エリア内のブロックのWB評価値は無視することができる。本実施の形態においては、この被写体エリアの大きさが予め定めた基準値よりも小さいか否かを判定するために、被写体エリア判定部107が設けられている。
【0095】
本実施の形態におけるホワイトバランス制御では、被写体エリア判定部107によって被写体エリアの大きさが基準値よりも小さいと判定された場合に、ホワイトバランス制御部104’’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かの判定を行わず、処理対象となる現在の画像フレームにおいて被写体エリア以外から検出された他の白ブロックのWB評価値に基づいてWB制御値を算出する。すなわち、被写体エリアの大きさが基準値よりも小さければ、被写体エリアを考慮せずにWB制御値を算出することができ、これにより、被写体追尾の影響によりオートホワイトバランスが不安定になることを有効に防止し、また、CPU61’’の処理負荷を低減させて電力消費量の削減を図ることができる。
【0096】
図13は、本実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPU61’’により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図13のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。なお、図13のフローチャートにおいて、ステップS301〜ステップS308の処理は、図9のフローチャートで示したステップS101〜ステップS108の処理と同様であり、ステップS310〜ステップS312の処理は、図9のフローチャートで示したステップS109〜ステップS111の処理と同様であるので、これらの処理の説明は省略する。
【0097】
本実施の形態におけるホワイトバランス制御では、被写体エリア内から白ブロックが検出されていると判定された場合に(ステップS307:Yes)、CPU61’’の被写体エリア判定部107が、被写体エリアの大きさが予め定めた基準値以上であるか否かを判定する(ステップS309)。そして、被写体エリアの大きさが基準値以上であると判定された場合に(ステップS309:YES)、ホワイトバランス制御部104’’が、第1の実施形態と同様に、判定結果フラグ=1となっているか否か、つまり、先行フレームにおいて被写体エリア内から白ブロックが検出されていないかどうかを確認する(ステップS310)。一方、被写体エリアの大きさが基準値よりも小さいと判定された場合には(ステップS309:NO)、ホワイトバランス制御部104’’は、ステップS310の判定を行うことなくステップS311に処理を移行し、ステップS311において、被写体エリア以外から検出された白ブロックのWB評価値に基づいて、WB制御値の算出を行う。
【0098】
以上のように、本実施の形態に係るデジタルカメラでは、CPU61’’の被写体エリア判定部107が被写体エリアの大きさを判定し、被写体エリアの大きさが予め定めた基準値よりも小さい場合には、ホワイトバランス制御部104’’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、被写体エリア以外から検出された白ブロックのWB評価値に基づいてWB制御値を算出するようにしている。したがって、上述した第1の実施の形態と同様にオートホワイトバランスの精度を向上させて、カラーフェイリアの発生をより有効に抑制することができるとともに、被写体追尾の影響によりオートホワイトバランスが不安定になることを有効に防止することができ、さらに、CPU61’’の処理負荷を低減させて電力消費量の削減を図ることができる。
【0099】
(第4の実施の形態)
次に、第4の実施の形態に係るデジタルカメラついて説明する。本実施の形態に係るデジタルカメラは、CMOSセンサ30から連続的に出力され信号処理IC60内に入力される複数の画像フレーム間において、追尾対象の被写体の背景が変化しているか否かを判定する機能を持ち、追尾対象の被写体の背景が変化している場合は、処理対象となる画像フレームに対するホワイトバランス制御を行わないようにしたものである。なお、デジタルカメラの基本的な構成および処理の概要は上述した第1の実施の形態と同様であるため、以下、第1の実施の形態と同様の部分については同一の符号を付して重複した説明を省略する。
【0100】
図14は、本実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPU61’’’の機能構成を示す機能ブロック図である。本実施の形態におけるCPU61’’’は、図14に示すように、第1の実施の形態におけるCPU61の機能構成(図3参照)に加えて、背景変化判定部108をさらに備えている。
【0101】
背景変化判定部108は、CMOSセンサ30から連続的に出力され信号処理IC60内に入力される複数の画像フレーム間において、追尾対象の被写体の背景が変化しているか否かを判定する処理機能である。
【0102】
固定された背景の中で追尾対象の被写体が移動しているような撮影シーンにおいては、画像における光源が大きく変化することはないが、例えばカメラアングルを随時変えながら追尾対象の被写体を追っているような撮影シーンにおいては、連続する複数の画像フレーム間で光源が大きく変わる可能性がある。そして、このように連続する複数の画像フレーム間で被写体の背景が変化し、光源が大きく変わるような場合には、画像フレーム単位でホワイトバランス制御を実行するとオートホワイトバランスが不安定になる可能性がある。
【0103】
そこで、本実施の形態においては、CPU61’’’の背景変化判定部108が、連続する複数の画像フレーム間で被写体の背景が変化しているか否かを判定し、被写体の背景が変化していると判定された場合には、ホワイトバランス制御部104’’’が処理対象となる画像フレームに対するホワイトバランス制御を行わないようにしている。ホワイトバランス制御部104’’’がホワイトバランス制御を行わない場合は、現在の画像フレームに対応した新たなWB制御値が算出されない。この場合、現在の画像フレームに対応するRAW−RGB画像データのR信号およびB信号には、一例として、YUV変換部64に既に設定されているRゲインやBゲインが乗算されることになる。
【0104】
背景変化判定部108が、連続する複数の画像フレーム間で被写体の背景が変化しているか否かを判定する手法としては、様々な手法が考えられる。例えば、画像フレームの上下左右端のAE評価値、WB評価値、AF評価値を、連続する画像フレーム間で比較することによって、背景が変化しているか否かを判定することができる。連続する複数の画像フレーム間で被写体の背景に変化がなければこれらの評価値の変化は小さい。一方、連続する複数の画像フレーム間で被写体の背景が変化していれば、これらの評価値が大きく変化する。したがって、背景変化判定部108は、連続する複数の画像フレーム間でこれらの評価値が予め定めた閾値以上変化している場合に、被写体の背景が変化していると判定することができる。
【0105】
図15は、本実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPU61’’’により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図15のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。なお、図15のフローチャートにおいて、ステップS401〜ステップS406の処理は、図9のフローチャートで示したステップS101〜ステップS106の処理と同様であり、ステップS408〜ステップS412の処理は、図9のフローチャートで示したステップS107〜ステップS111の処理と同様であるので、これらの処理の説明は省略する。
【0106】
本実施の形態におけるホワイトバランス制御では、CPU61’’’のホワイトバランス制御部104’’’が、ステップS408において被写体エリア内から白ブロックが検出されているか否かを判定する前に、CPU61’’’の背景変化判定部108が、追尾対象の被写体の背景が変化しているか否かの判定を行う(ステップS407)。そして、追尾対象の被写体の背景に変化はないと判定された場合に(ステップS407:NO)、ホワイトバランス制御部104’’’が、第1の実施形態と同様の処理(ステップS408〜ステップS412の処理)を実施する。一方、追尾対象の被写体の背景が変化していると判定された場合には(ステップS407:YES)、ホワイトバランス制御部104’’’は、処理対象となる現在の画像フレームに対応するWB制御値の算出は行わずに、処理を終了する。
【0107】
以上のように、本実施の形態に係るデジタルカメラでは、CPU61’’’の背景変化判定部108が連続する複数の画像フレーム間で追尾対象の被写体の背景が変化しているか否かを判定し、背景が変化していると判定された場合には、ホワイトバランス制御部104’’’が、処理対象となる現在の画像フレームに対するホワイトバランス制御を行わないようにしている。したがって、上述した第1の実施の形態と同様にオートホワイトバランスの精度を向上させて、カラーフェイリアの発生をより有効に抑制することができるとともに、光源が大きく変化することに起因してオートホワイトバランスが不安定になることを有効に防止することができる。
【0108】
以上、本発明の具体的な実施の形態として第1乃至第4の実施の形態について詳しく説明したが、本発明は上述した各実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上述した各実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、上述した各実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0109】
30 CMOSセンサ
60 信号処理IC
61(61’,61’’,61’’’) CPU
101 特徴量算出部
102 白ブロック検出部
103 被写体エリア検出部
104(104’,104’’,104’’’) ホワイトバランス制御部
105 顔判定部
106 補正部
107 被写体エリア判定部
108 背景変化判定部
【先行技術文献】
【特許文献】
【0110】
【特許文献1】特開2007−104200号公報
【特許文献2】特開2009−65381号公報
【技術分野】
【0001】
本発明は、撮像装置およびホワイトバランス制御方法に関する。
【背景技術】
【0002】
撮像素子を用いて画像を撮像するデジタルカメラなどの撮像装置においては、人間にとって白く見える部分を画像上で白く再現するためのオートホワイトバランスと呼ばれる処理が行われている。オートホワイトバランスは、例えば、撮像素子から出力される画像フレームの中で白色(無彩色)を映したと推定される領域を検出し、検出した領域の色情報に基づいて算出した制御値(以下、WB制御値という。)を用いて、画像フレームの各画素の信号を調整することで実現できる。
【0003】
具体的には、例えば画像フレームを縦横16×16の256個のブロックに分割し、分割したブロックごとに、各ブロックに含まれる画素のRGBそれぞれの信号の積算値を算出して、ブロックごとのG信号の積算値に対するR信号およびB信号の積算値の比(G/R,G/B)を、各ブロックの特徴量(以下、WB評価値という。)として求める。そして、求めた各ブロックのWB評価値(G/R,G/B)を、G/R,G/Bを軸とした色空間(以下、WB色空間という。)にプロットする。
【0004】
WB色空間上には、予め光源(昼光やタングステン光)の色温度を変化させた場合における黒体輻射の軌跡がリファレンスゲインとして用意されている。このWB色空間上で、プロットされた各ブロックのWB評価値(G/R,G/B)とリファレンスゲインとのマッチングをとることにより、画像フレームにおいて白色を映したと推定される領域を検出することができる。
【0005】
以上のように検出された白色の領域は、光源の種類によってRGB積算比が異なっているが、この白色の領域におけるRGBの積算比がR:G:B=1:1:1となるようなゲイン(WB制御値)を各画素に乗算することで、オートホワイトバランスを実現することができる。これは人間の色順応のメカニズムに基づいており、人間は異なる光源下においても白いものが白く見えるように色順応が働くという仮説に基づいている。つまり、オートホワイトバランスとは、画面全体が白色となる基準被写体を撮影している状態で、撮影信号としてのR信号、G信号、B信号の出力レベルを等しくするホワイトバランス制御を、基準被写体を撮影せずに自動で行えるようにする処理ということができる。画面の中の白色を映した領域のR信号およびB信号の出力レベルをG信号と等しくするために、入力されたR信号およびB信号のそれぞれに対して乗算されるゲイン(係数)が、WB制御値となる。
【0006】
ところで、上記のようなオートホワイトバランスの方式は、被写体に無彩色の部分がない場合や、被写体のほとんどを有彩色(物体色)が占める場合には、画像フレームから白色の領域を検出できない、もしくは白色の領域を検出する処理の精度が低下するため、結果的に誤ったホワイトバランス制御を行ってしまうという欠点がある。具体的な例を示すと、高色温度の光源下において人肌がアップのシーンで、人肌の肌色を映した領域を低色温度光源下の白色(無彩色)を映した領域として誤って検出し、人肌を青白く補正するようなホワイトバランス制御を行ってしてしまうという問題が指摘されている。また、森林のように緑が占める割合が大きい場合にも、物体色の領域を蛍光灯によって照明された白色の領域として誤って検出し、誤ったホワイトバランス制御を行ってしまうことがある。このような誤ったホワイトバランス制御はカラーフェイリアと呼ばれている。
【0007】
以上のようなカラーフェイリアを改善する方法として、例えば、特許文献1や特許文献2に記載の技術が知られている。
【0008】
特許文献1には、動画撮影におけるカラーフェイリアの軽減方法として、被写体追尾情報を用いた制御方法が開示されている。具体的には、主要な被写体の代表的な色を示す領域(例えば、人物の肌色)を基準領域として設定し、追尾手段により、この基準領域を画面内での被写体の移動に合わせて追従させ、この基準領域に含まれる色情報を取得し、各フレームにおいて被写体の同一の部分(例えば人物の頬の部分)を表す画像データに基づいて、露出およびホワイトバランスを適正に補正できるようにしている。すなわち、この特許文献1に記載の技術では、利用者が設定した基準領域を、その色情報から順次取得されるフレームに対して探索することで、たとえば被写体が撮像装置に急に近づいてきた場合でも肌色引き込みによるカラーフェイリアを防止できるようにしている。
【0009】
また、特許文献2には、複数の撮像システムにより動画像を追尾しながら撮像するシステムにおいて、被写体の移動に伴い被写体を撮像していたカメラからとのカメラに切り替えて被写体の撮像を引き継ぐ際に、被写体を撮像していた撮像条件を、撮像を引き継いだカメラの撮像条件として継承することで、カメラ切換時の不自然な画像の変化を抑制することが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載の技術では、そもそもユーザが設定する被写体の代表的な色を示す基準領域が、光源色(無彩色)の領域なのか、物体色(有彩色)の領域なのか分からず、基準領域の色情報をどのようにホワイトバランス制御に用いるのか不明である。また、特許文献1に記載の技術では、被写体が動くことで異なる光源下に移動した場合、基準領域から得られる色情報は大きく変わってしまい、本来同一基準領域と判定しなければならないのに誤判定し、カラーフェイリアが発生してしまうという問題がある。
【0011】
また、特許文献2に記載の技術においても、被写体が異なる光源下に移動した場合、カメラ切換時にホワイトバランス等の撮像条件を引き継いでしまうので、移動後の撮影環境に適したホワイトバランスが設定できず、カラーフェイリアが発生してしまうという問題がある。
【0012】
本発明は、上記に鑑みてなされたものであって、オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができる撮像装置およびホワイトバランス制御方法を提供することを目的としている。
【課題を解決するための手段】
【0013】
上述した課題を解決し、目的を達成するために、本発明に係る撮像装置は、撮像素子と、前記撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出する特徴量算出手段と、前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出する白ブロック検出手段と、前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出する被写体エリア検出手段と、前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するホワイトバランス制御手段と、を備えることを特徴とする。
【0014】
また、本発明に係るホワイトバランス制御方法は、撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出するステップと、前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出するステップと、前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出するステップと、前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するステップと、を含むことを特徴とする。
【発明の効果】
【0015】
本発明によれば、オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができるという効果を奏する。
【図面の簡単な説明】
【0016】
【図1−1】図1−1は、デジタルカメラの上面図である。
【図1−2】図1−2は、デジタルカメラの正面図である。
【図1−3】図1−3は、デジタルカメラの裏面図である。
【図2】図2は、デジタルカメラの制御系の構成を示すブロック図である。
【図3】図3は、第1の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図4】図4は、各ブロックのWB評価値をWB色空間上にプロットした様子を示す図である。
【図5】図5は、追尾対象の被写体の動きと時系列で入力される画像フレームAおよび画像フレームB内の被写体エリアの位置とを説明する図である。
【図6】図6は、図5の画像フレームAおよび画像フレームBから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【図7】図7は、追尾対象の被写体の動きと時系列で入力される画像フレームC、画像フレームDおよび画像フレームE内の被写体エリアの位置とを説明する図である。
【図8】図8は、図7の画像フレームC、画像フレームDおよび画像フレームEから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【図9】図9は、第1の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【図10】図10は、第2の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図11】図11は、第2の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【図12】図12は、第3の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図13】図13は、第3の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【図14】図14は、第4の実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPUの機能構成を示す機能ブロック図である。
【図15】図15は、第4の実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPUにより実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下に添付図面を参照して、この発明に係る撮像装置およびホワイトバランス制御方法の最良な実施の形態を詳細に説明する。なお、以下ではイメージセンサとしてCMOSセンサを用いたデジタルカメラに本発明を適用した例について説明するが、本発明は、CCDセンサを用いたデジタルカメラに対しても有効に適用可能である。また本発明は、デジタルカメラに限らず、被写体追尾機能とオートホワイトバランス機能とを備えた撮像装置に対して広く適用できる。
【0018】
(第1の実施の形態)
図1は、本実施の形態に係るデジタルカメラの外観を示す図であり、図1−1は同デジタルカメラの上面図、図1−2は同デジタルカメラの正面図、図1−3は同デジタルカメラの裏面図である。
【0019】
本実施の形態に係るデジタルカメラは、図1−1に示すように、その上面に、静止画撮影が可能な枚数などを表示するサブLCD1と、静止画撮影の際に押圧操作されるレリーズシャッタボタン2と、画像を記録する記録(撮影)モードや記録された画像を再生する再生モード、カメラ設定のためのSETUPモードなどの各種モードの切替えの際に操作されるモードダイヤル3を有する。
【0020】
また、本実施の形態に係るデジタルカメラは、図1−2に示すように、その正面に、ストロボを発光させるストロボ発光部4と、被写体までの距離を測定する測距ユニット5と、図示しないリモコン端末からの赤外線信号を受信するリモコン受光部6と、後述するズームレンズ25やフォーカスレンズ26、メカニカルシャッタ27およびこれらを一体に支持する支持部材などから構成される鏡胴ユニット7と、光学ファインダ(正面)8を有する。また、本実施の形態に係るデジタルカメラの側面には、後述するメモリカード80を挿入するメモリカードスロットルや電池を収容する電池収容部が設けられており、これらメモリカードスロットルや電池収容部は蓋体9により閉塞されている。
【0021】
また、本実施の形態に係るデジタルカメラは、その裏面に、オートフォーカス作動時に点灯するオートフォーカスLED(AFLED)10と、ストロボ発光時に点灯するストロボLED11と、各種設定画面の表示や再生画像の表示および撮影時の電子ファインダとして用いられるLCDモニタ12と、光学ファインダ(裏面)13と、広角側ズーム時に操作されるズームボタン(WIDE)14および望遠側ズーム時に操作されるズームボタン(TELE)15と、電源スイッチ16と、セルフタイマの作動時に操作されるセルフタイマ/削除スイッチ17を有する。
【0022】
さらに、本実施の形態に係るデジタルカメラは、その裏面に、メニュー選択の際に操作されるメニュースイッチ18と、選択した事項を確定させる際に操作されるOKスイッチ19と、LCDモニタ12に表示する再生画像を切替える際に操作される画像確認スイッチ(左)20および画像確認スイッチ(右)21と、マクロ撮影を行う際に操作されるマクロスイッチ22と、ストロボ発光モードの切替え時に操作されるストロボスイッチ23と、LCDモニタ12の表示の切替え時に操作されるディスプレイスイッチ24を有する。
【0023】
図2は、本実施の形態に係るデジタルカメラの制御系の構成を示すブロック図である。本実施の形態に係るデジタルカメラは、制御系の構成として、ズームレンズ25やフォーカスレンズ26、メカニカルシャッタ27を駆動するためのモータドライバ28と、イメージセンサであるCMOSセンサ30と、CMOSセンサ30から出力されるアナログの画像信号を処理してデジタル画像データを生成するアナログフロントエンド(AFE)40と、CMOSセンサ30およびAFE40に対して駆動タイミング信号を出力するタイミングジェネレータ(TG)50と、AFE40から出力されたデジタル画像データに対して各種デジタル画像処理を実行するとともにデジタルカメラ全体の動作を制御する信号処理IC60とを備えている。信号処理IC60には、上述したLCDモニタ12のほか、SDRAM70やメモリカード80、ROM90、操作部100などが接続されている。
【0024】
メカニカルシャッタ27は、開状態によりCMOSセンサ30に光を入射させ、閉状態によりCMOSセンサ30への光の入射を遮断する機械的なシャッタである。このメカニカルシャッタ27は、光学レンズであるズームレンズ25やフォーカスレンズ26とともに、モータドライバ28により駆動される。モータドライバ28によるズームレンズ25、フォーカスレンズ26およびメカニカルシャッタ27の駆動は、信号処理IC60の内部に含まれるCPU61によって制御される。
【0025】
CMOSセンサ30は、光電変換機能によって、光学レンズにより結像した光学像をその明るさに比例した電気信号に変換して出力する固体撮像素子である。CMOSセンサ30は、TG50から出力される駆動タイミング信号に従って駆動され、各画素の露光や信号読み出しが制御される。CMOSセンサ30からの出力電気信号は、AFE40に入力される。
【0026】
AFE40は、CMOSセンサ30の出力電気信号(アナログ画素信号)をサンプリングホールド(相関二重サンプリング)するCDS41と、CDS41によりサンプリングされた信号のゲインを調整するAGC(Auto Gain Control)42と、AGC42の出力をデジタル信号に変換するA/D変換機(A/D)43とを有する。これらAFE40を構成する各部は、TG50から出力される駆動タイミング信号に従ってCMOSセンサ30と同期して駆動され、また、AGC42におけるゲインの設定などは、信号処理IC60内部に含まれるCPU61の命令に従って実施される。AFE40により出力されるデジタルデータ(デジタル画像データ)は、信号処理IC60に入力される。
【0027】
TG50には、信号処理IC60内部に含まれる同期信号生成部69によって生成された垂直同期信号VDおよび水平同期信号HDが供給される。TG50は、これら垂直同期信号VDおよび水平同期信号HDに基づいて、CMOSセンサ30およびAFE40を同期して駆動させるための駆動タイミング信号を生成し、生成した駆動タイミング信号をCMOSセンサ30およびAFE40に供給する。
【0028】
信号処理IC60は、デジタルカメラ全体の動作を統括的に制御するCPU61と、垂直同期信号VDおよび水平同期信号HDに合わせてAFE40からデジタル画像データの取り込みを行うCMOSI/F部62と、SDRAM70へのデータの書き込みや読み出しを制御するメモリコントローラ63と、CMOSI/F部62から入力されたデジタル画像データを表示や記録が可能なYUVのデータ形式に変換するYUV変換部64と、画像データを所定のフォーマット(例えばJPEG)に従って圧縮および伸張する圧縮伸張部65と、LCDモニタ12や外部表示装置への表示データの出力を制御する表示出力制御部66と、表示や記録のサイズに合わせて画像サイズを変更するリサイズ処理部67と、メモリカード80へのデータの書き込みや読み出しを制御するメディアI/F部68と、CPU61の命令により垂直同期信号VDおよび水平同期信号HDを生成する同期信号生成部69とを有している。
【0029】
AFE40から出力されるデジタル画像データは、CMOSI/F部62により画像フレームを一単位として信号処理IC60内部に取り込まれ、信号処理IC60内部で黒レベルの補正、欠損画素の補正、シェーディング補正などの画像処理が行われた上で、メモリコントローラ63によりSDRAM70に画像フレームごとのRGBデータ(RAW−RGB画像データ)として一時保管される。
【0030】
SDRAM70に保存された画像フレームごとのRAW−RGB画像データは、メモリコントローラ63によりSDRAM70から読み出され、ホワイトバランスのゲイン乗算やガンマ補正、RGB補間処理を経てYUV変換部64に供給される。YUV変換部64は、この画像データに対してエッジ強調や色設定などの各種画像処理を行うとともに、輝度/色差信号であるYUV画像データへの変換を行う。YUV変換部64で生成されたYUV画像データは、メモリコントローラ63により再度SDRAM70に格納される。
【0031】
SDRAM70に保存されたYUV画像データは、メモリコントローラ63によりSDRAM70から読み出され、撮影モードアイコンなどを表示するためのOSD(オンスクリーンディスプレイ)データとともに表示出力制御部66に供給される。表示出力制御部66は、これらYUV画像データとOSDデータを合成して表示用データを生成し、同期信号などの信号を付加してLCDモニタ12に出力する。なお、表示出力制御部66は、生成した表示用データをTVビデオ信号として出力して外部表示装置に表示させることも可能であり、例えば外部表示装置がNTSCシステムのTVであれば、リサイズ処理部67により、そのシステムに合わせた水平・垂直の変倍処理が施された上で、TVに出力される。
【0032】
また、メモリカード80への記録時には、SDRAM70に保存されたYUV画像データが、CPU61の命令によりメモリコントローラ63によってSDRAM70から読み出されて圧縮伸張部65に供給され、圧縮伸張部65においてJPEGデータなどの圧縮データが生成される。ここで、SDRAM70に保存されたYUV画像データはフルサイズのデータであり、メモリカード80に記録する画像サイズがCMOSセンサ30の画像サイズよりも小さい場合は、リサイズ処理部67にて記録用に画像が縮小された上で圧縮伸張部65に供給される。圧縮伸張部65で生成された圧縮データ(JPEGデータ)は、メモリコントローラ63により再度SDRAM70に格納され、その後、ヘッダ追加などの処理が行われた後に、メディアI/F部68を介してメモリカード80に記録される。
【0033】
以上の信号処理IC60内部における各部の動作は、CPU61の命令に従って実行される。CPU61は、例えばROM90に格納されたデジタルカメラの制御を行うための制御プログラムおよび制御データを、例えばSDRAM70上にロードし、ロードした制御プログラムのプログラムコードに基づいて、デジタルカメラ全体の動作を統括的に制御する。すなわち、CPU61は、操作部100の各種ボタンキーによる指示や図示しないリモコン端末からの動作指示等に基づいて、指示に応じた画像を適切に撮影、表示、記録できるように、モータドライバ28やAFE40、TG50、信号処理IC60内部の各処理部などを制御する。なお、操作部100は、撮影者がデジタルカメラの動作指示を行うためのものであり、図1に示したレリーズシャッタボタン2やズームボタン14,15などの各種ボタンキーが該当する。
【0034】
以下、レリーズシャッタボタン2の押下に応じて静止画を撮影する際のCPU61による制御について、さらに詳しく説明する。
【0035】
レリーズシャッタボタン2が押下されると、撮影に先立ちAF(AUTO FOCUS)処理が行われる。AF処理としては、例えば、フォーカスレンズ26を移動させながらコントラストの最大値を見つける山登りAFなどが行わる。これは、映像信号のG信号(または輝度値であるY信号)の高周波成分からAF評価値を作成し、AF評価値が最大になるところのフォーカスレンズ26の位置(フォーカス位置)を算出して、フォーカスレンズ26を移動させる処理である。
【0036】
AFの評価値を取得するエリアについては、1つの画像フレームに対して複数のエリアを考慮するマルチエリアAFや、一部しか考慮しないスポットエリアAFなどがある。そして、AF評価値をもとに撮影シーンに適したフォーカス位置を算出し、そのポイントへフォーカスレンズ26を移動させる。フォーカスレンズ26は、CPU61の命令により、モータドライバ28を介して移動させることができる。
【0037】
次に、静止画撮影用の電子シャッタの設定や、AGC42の計算/設定、絞りの計算/設定が行われ(AE(AUTO EXPOUSRE)処理)、記録用の露光が行われる。電子シャッタの設定は、CPU61の命令により、CMOSセンサ30の駆動を制御するTG50により実行することができる。また、AGC42の設定は、CPU61の命令により、AFE40により実行することができる。
【0038】
その後、静止画用の露光が完了した時点でメカニカルシャッタ27が閉じられ、CMOSセンサ30より静止画用のRGBデータ(RAW−RGB画像データ)が出力される。レリーズ第1処理(半押し)およびレリーズ第2処理(全押し)を搭載しているカメラシステムでは、レリーズ第1処理を実行することでAFやAE処理の計算を行い、レリーズ第2処理で記録用の露光が行われるような制御になっているのが一般的である。
【0039】
静止画用のRAW−RGB画像データは、CMOSI/F部62により信号処理IC60内部に取り込まれ、信号処理IC60内部で黒レベルの補正、欠損画素の補正、シェーディング補正などの画像処理が行われた上で、メモリコントローラ63によりSDRAM70に書き込まれる。インタレース転送であれば、複数回の転送によって、1つの画像フレームを構成する全てのデータが、RAW−RGB画像データとしてSDRAM70に書き込まれる。
【0040】
SDRAM70に書き込まれた静止画用のRAW−RGB画像データは、上述したように、SDRAM70から読み出され、ホワイトバランスのゲイン乗算やガンマ補正、RGB補間処理を経て、YUV変換部64でエッジ強調や色設定などの各種画像処理を行うとともに輝度/色差信号であるYUVデータに変換され、SDRAM70に書き戻される。
【0041】
その後、SDRAM70に書き込まれたYUV画像データが、再度、SDRAM70から読み出され、必要に応じてリサイズ処理部67にて縮小処理が行われた上で、圧縮伸張部65で例えばJPEG圧縮などのデータ圧縮処理が行われる。そして、圧縮データ(JPEGデータ)が再度SDRAM70に書き戻され、ヘッダ追加などの処理が行われた後に、メディアI/F部68を介してメモリカード80に記録される。
【0042】
次に、本実施の形態に係るデジタルカメラにおいて実施されるホワイトバランス制御について、詳細に説明する。
【0043】
本実施の形態に係るデジタルカメラによるホワイトバランス制御は、一例として、随時更新される画像フレームに対して連続的に実施される。すなわち、信号処理IC60には、上述したように、撮像素子であるCMOSセンサ30からの画像データが、AFE40を介して、フレーム画像を一単位として随時入力される。この信号処理IC60に入力される各画像フレームに対して、信号処理IC60内部のCPU61による処理として、ホワイトバランス制御が行われる。なお、ホワイトバランス制御の対象となる画像フレームは、静止画撮影前にLCDモニタ12などに表示するモニタリング用の画像の画像フレームであってもよいし、例えば連写撮影などで得られる連続した静止画の画像フレームであってもよい。また、静止画撮影前にモニタリング用の画像の画像フレームに対する処理で得られた後述のホワイトバランス制御値を記憶しておき、静止画撮影時に得られる画像フレームに対して記憶したホワイトバランス制御値を適用してホワイトバランス制御を行うようにしてもよい。
【0044】
図3は、ホワイトバランス制御を実施するためのCPU61の機能構成を示す機能ブロック図である。CPU61は、例えば上述した制御プログラムの1つとしてROM90に格納され、メインメモリ(例えばSDRAM70)上にロードされたホワイトバランス制御用のプログラムを実行することによって、図3に示すように、特徴量算出部101、白ブロック検出部102、被写体エリア検出部103、ホワイトバランス制御部104の各機能を実現する。
【0045】
特徴量算出部101は、CMOSセンサ30から出力され、AFE40を介して信号処理IC60に入力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについてWB評価値を算出する処理機能である。
【0046】
白ブロック検出部102は、特徴量算出部101により算出されたWB評価値に基づいて、複数に分割された画像フレームの各ブロックのうちで、白色を映したブロックと推定される白ブロックを検出する処理機能である。
【0047】
被写体エリア検出部103は、処理の対象としている現在の画像フレームの中で、追尾する被写体を写した領域である被写体エリアを検出する処理機能である。
【0048】
本実施の形態に係るデジタルカメラは被写体追尾機能を備えており、被写体追尾機能がオンの状態での動作時には、CPU61が、信号処理IC60に時系列で連続的に入力される複数の画像フレームそれぞれに対して、例えばユーザにより追尾対象として指定された被写体が映っている領域(被写体エリア)を検出する処理を行う。この画像フレームから被写体エリアを検出する処理を行うのが、被写体エリア検出部103である。被写体追尾機能がオンの場合、画像フレームから検出された被写体エリアは、例えば、静止画撮影時における上述したAFの評価値を取得するエリアとして、また、AE処理のための測光エリアとして用いられる。なお、被写体追尾自体の手法に関しては様々な方式が提案されており、画像フレームから被写体エリアを検出する処理についても一般的な公知の技術を用いて行えばよいので、処理の詳細については説明を省略する。
【0049】
ホワイトバランス制御部104は、白ブロック検出部102により検出された白ブロックのWB評価値に基づいてWB制御値を算出し、算出したWB制御値を用いて、画像フレームのホワイトバランスを制御する処理機能である。ここで、特に本実施の形態に係るデジタルカメラにおいては、このCPU61のホワイトバランス制御部104が、被写体エリア検出部103により検出された被写体エリアについての情報を利用することによって、従来技術と比較してより適切なWB制御値を算出し、高精度なホワイトバランス制御を行えるようにしている。
【0050】
すなわち、このホワイトバランス制御部104は、処理の対象としている現在の画像フレームにおいて、被写体エリア検出部103が検出した被写体エリア内から白エリアが検出され、且つ、現在の画像フレームよりも前にCMOSセンサ30から出力された画像フレーム(以下、先行フレームという。)において、被写体エリア検出部103が検出した被写体エリア(現在の画像フレームにおける追尾対象の被写体と同一の被写体を映したエリア)内から白ブロックが検出されていない場合には、現在の画像フレームにおいて被写体エリア内から検出された白ブロックを用いずに、それ以外の白ブロックのWB評価値に基づいてWB制御値を算出し、算出したWB制御値を用いて画像フレームのホワイトバランスを制御するようにしている。なお、上記の先行フレームは、現在の画像フレームの直前に出力された画像フレームだけに限らず、現在の画像フレームと同一の被写体を追尾している状態で現在の画像フレームよりも前に出力された画像フレームすべてを含むものである。
【0051】
以下、CPU61が上記の特徴量算出部101、白ブロック検出部102、被写体エリア検出部103およびホワイトバランス制御部104の各機能を持つことにより実現されるホワイトバランス制御の具体例について、さらに詳しく説明する。
【0052】
CMOSセンサ30からAFE40を介して出力される画像フレームは、信号処理IC60のCMOSI/F部62により信号処理IC60内部に取り込まれ、メモリコントローラ63によりSDRAM70(フレームメモリ)に保管される。このとき、CMOSI/F部62は、信号処理IC60内部に取り込んだ画像フレームにおける特定部分あるいは画像フレーム全体のR,G,Bの値を読み込み、CPU61に入力する。
【0053】
CPU61の特徴量算出部101は、信号処理IC60内部に取り込まれた画像フレームを予め定めた分割方法(例えば、縦横16×16の256分割)に従って複数のブロックに分割し、CMOSI/F部62が読み込んだR,G,Bの値を用いて、分割したブロックごとに、各ブロックに含まれる画素のRGBそれぞれの信号の積算値を求める。そして、特徴量算出部101は、ブロックごとのG信号の積算値に対するR信号およびB信号の積算値の比(G/R,G/B)を算出する。算出した値は、各ブロックの色の特徴を表す特徴量であり、これをWB評価値として用いる。
【0054】
特徴量算出部101によって画像フレームにおける各ブロックのWB評価値(G/R,G/B)が算出されると、白ブロック検出部102が、算出された各ブロックのWB評価値(G/R,G/B)を、G/Rを横軸とし、G/Bを縦軸としたWB色空間上にプロットし、WB色空間上における各ブロックのWB評価値の分布から、白ブロックの検出を行う。
【0055】
図4は、各ブロックのWB評価値(G/R,G/B)をWB色空間上にプロットした様子を示す図である。WB色空間上には、図4に示すように、予め光源の色温度を変化させた場合における黒体輻射の軌跡がリファレンスゲインとして用意されている。そして、このリファレンスゲイン上において実際の撮影環境下で想定される光源色を中心にある程度の幅を持たせた領域(図4において楕円で示した領域)が、白検出エリアとして設定されている。
【0056】
白ブロック検出部102は、特徴量算出部101により算出された各ブロックのWB評価値をWB色空間上にプロットしたときに、プロットされたWB評価値(図4中の黒色の点)が、WB色空間上に設定された白検出エリア内に位置するブロックを、画像フレームの中で白色を映したブロックと推定される白ブロックとして検出する。WB評価値が白検出エリア内に入っているか否かは、判定用のプログラムを用意してCPU61で実行することにより簡単に実現できる。なお、CMOSセンサ30の分光感度の分布により同じ照明、被写体でも色の特徴が変化するので、ホワイトバランス色空間上のリファレンスゲインおよび白検出エリアは、デジタルカメラが搭載するCMOSセンサ30の特性に合わせて決定しておくことが望ましい。
【0057】
白ブロック検出部102により白ブロックが検出されると、ホワイトバランス制御部104は、検出された白ブロックのWB評価値(G/R,G/B)に基づいて、WB制御値を算出する。このとき、ホワイトバランス制御部104は、処理の対象としている現在の画像フレームにおいて被写体エリア内から白エリアが検出されているが、先行フレームにおいては被写体エリア内から白ブロックが検出されていない場合は、現在の画像フレームにおいて被写体エリア内から検出された白ブロックを用いずに、それ以外の白ブロックのWB評価値に基づいてWB制御値を算出する。WB制御値は、検出された白ブロックを画像上で白く見せるための制御値であり、白ブロック内における各画素のRGBの積算比がR:G:B=1:1:1に近づくように、R信号やB信号に対して乗算するゲインの値である。
【0058】
ここで、WB評価値は、上述したようにG信号の積算値に対するR信号およびB信号の積算値の比(G/R,G/B)であるので、1つの白ブロックのみに着目すれば、この白ブロックのG/Rの値をRゲインとし、G/BをBゲインとして、R信号に対してRゲインを乗算するともにB信号に対してBゲインを乗算することにより、RGBの積算比をR:G:B=1:1:1とすることができる。ただし、実際には1つの画像フレームから複数の白ブロックが検出され、検出された複数の白ブロックのWB評価値が異なる値を持つことが多い。そこで、ホワイトバランス制御部104は、例えば、検出された複数の白ブロックのG/Rの値の平均値をRゲインとし、検出された複数の白ブロックのG/Bの値の平均値をBゲインとして、WB制御値(Rゲイン,Bゲイン)を算出する。また、実際の撮影環境は複数の光源の影響を受ける場合も多く、図4に示す例のように、複数の白検出エリアにおいて白ブロックが検出される場合もある。このような場合には、ホワイトバランス制御部104は、例えば、複数の白検出エリアそれぞれで検出された白ブロックの数に応じて重みを付けた加重平均などによって、WB制御値を算出すればよい。また、各光源の影響が支配的な領域ごとに異なるWB制御値を算出し、領域の境界付近ではWB制御値を線形に変化させるようにしてもよい。なお、ホワイトバランス制御部104によるWB制御値の算出方法は、上記に限定されるものではなく、例えばカラーフェイリアを低減するための工夫、あるいはユーザにとって好ましい色合いに仕上がるような工夫など、様々な工夫を行った上で最終的に得られる値をWB制御値として決定するようにしてもよい。
【0059】
ホワイトバランス制御部104は、以上のようにして算出したWB制御値(Rゲイン,Bゲイン)を、フレーム画像を構成する各画素のR信号およびB信号に乗算することによって、画像フレームのホワイトバランスを制御する。具体的には、上述したように、YUV変換部64がSDRAM70から読み出されたRAW−RGB画像データをYUVデータに変換する前処理としてホワイトバランスのゲイン乗算が行われるが、この際、CPU61のホワイトバランス制御部104がYUV変換部64に対してWB制御値を設定することにより、このWB制御値に基づくホワイトバランス制御を実行する。
【0060】
図5および図6は、本実施の形態におけるホワイトバランス制御の具体的な一例を説明する図であり、図5は追尾対象の被写体の動きと時系列で入力される画像フレームAおよび画像フレームB内の被写体エリアの位置とを説明する図、図6は図5の画像フレームAおよび画像フレームBから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【0061】
図5に示す例は、追尾対象の被写体が、図5(a)に示すように、ある光源の光が直接照射されない位置から直接照射される位置(光源下)へと移動した場合を想定している。追尾対象の被写体が光源下へ移動する前に撮影(入力)された画像フレームが、図5(b)に示す画像フレームAであり、追尾対象の被写体が光源下へ移動した後に撮影(入力)された画像フレームが、図5(c)に示す画像フレームBである。つまり、画像フレームAは、画像フレームBとの関係において先行フレームとなる。また、図5(d)は、画像フレームAにおいて検出された被写体エリアに対応する画像フレームA内のブロックの位置を示しており、図5(e)は、画像フレームBにおいて検出された被写体エリアに対応する画像フレームB内のブロックの位置を示している。なお、この例では、説明を簡単にするために、1つの画像フレームにおけるブロックの数は、縦横6×9の54個であり、被写体エリアの大きさはブロック2個分に相当するものとしている。
【0062】
本実施の形態におけるホワイトバランス制御は、上述したように、画像フレームから検出された被写体エリアについての情報を利用して、適切なWB制御値を算出するようにしている。具体的には、画像フレームAでは、図5(d)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(2,2)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。一方、画像フレームBでは、図5(e)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(4,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。これら被写体エリアに対応するブロックの位置の情報を用い、白ブロックが被写体エリア内から検出されたか否かを判定する。
【0063】
すなわち、画像フレームAに対するホワイトバランス制御では、(水平位置,垂直位置)=(2,2)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームAの(水平位置,垂直位置)=(2,2)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図6に示すように、(0.4,0.6)であったとすると、このWB評価値は白検出エリアから外れているため、画像フレームAにおいては、被写体エリア内から白ブロックは検出されていないと判定する。
【0064】
一方、画像フレームBに対するホワイトバランス制御では、(水平位置,垂直位置)=(4,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームBの(水平位置,垂直位置)=(4,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図6に示すように、(0.5,0.9)であったとすると、このWB評価値は白検出エリア内に入っているため、画像フレームBにおいては、被写体エリア内から白ブロックが検出されたと判定する。
【0065】
画像フレームAと画像フレームBとにおいて、被写体検出エリアに対応するブロックのWB評価値が変化するのは、追尾対象の被写体が異なる光源下に移動した結果、追尾対象の被写体自体の色(物体色)は同じでも、光源が変化したことの影響により、CMOSセンサ30から出力される信号が変化するためである。従来技術では、このような場合でも、画像フレームBに対するホワイトバランス制御を行う際に、被写体エリア内から検出された白ブロックも含め、全ての白ブロックのWB評価値を用いてWB制御値の算出を行うようにしていた。このため、追尾対象の被写体を白くする方向のWB制御値が算出されてしまい、カラーフェイリアを生じさせてしまう場合があった。
【0066】
これに対して、本実施の形態におけるホワイトバランス制御では、画像フレームBに対するホワイトバランス制御を行う際に、先行フレームである画像フレームAにおいて被写体エリア内から白ブロックが検出されていないため、被写体エリア内から検出された白ブロックのWB評価値をWB制御値の算出には用いず、被写体エリア内から検出された白ブロック以外の他の白ブロックのWB評価値を用いて、WB制御値の算出を行う。その結果、適切なWB制御値を算出することができ、ホワイトバランス制御を高精度に行って、カラーフェイリアの発生を有効に抑制することができる。
【0067】
図7および図8は、本実施の形態におけるホワイトバランス制御の他の具体例を説明する図であり、図7は追尾対象の被写体の動きと時系列で入力される画像フレームC、画像フレームDおよび画像フレームE内の被写体エリアの位置とを説明する図、図8は図7の画像フレームC、画像フレームDおよび画像フレームEから算出したWB評価値をWB色空間上にプロットした様子を示す図である。
【0068】
図7に示す例は、図7(a)に示すように、ある光源下に位置している被写体が追尾対象として設定(ロックオン)された後、その追尾対象の被写体が、光源の光が直接照射されない位置へと移動し、さらにその後、光源下へと戻ってきた場合を想定している。追尾対象の被写体をロックオンしたときに撮影(入力)された画像フレームが、図7(b)に示す画像フレームCであり、追尾対象の被写体が光源下から移動した後に撮影(入力)された画像フレームが、図7(c)に示す画像フレームDであり、追尾対象の被写体が光源下へと戻ってきた後に撮影(入力)された画像フレームが、図7(d)に示す画像フレームEである。つまり、画像フレームDは、画像フレームEとの関係において先行フレームとなる。また、図7(e)は、画像フレームCにおいて検出された被写体エリアに対応する画像フレームC内のブロックの位置を示しており、図7(f)は、画像フレームDにおいて検出された被写体エリアに対応する画像フレームD内のブロックの位置を示しており、図7(g)は、画像フレームEにおいて検出された被写体エリアに対応する画像フレームE内のブロックの位置を示している。
【0069】
画像フレームCでは、図7(e)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(3,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。また、画像フレームDでは、図7(f)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(7,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。また、画像フレームEでは、図7(g)の斜線で示す位置で被写体エリアが検出されるので、画像の左上を基準として(水平位置,垂直位置)=(5,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、被写体エリアに対応するブロックとなる。
【0070】
本例の場合、画像フレームCの(水平位置,垂直位置)=(3,4)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図8に示すように、(0.5,0.9)であり、白検出エリア内に入っているとする。画像フレームCは、追尾対象の被写体をロックオンしたときに撮影(入力)された画像フレームであるため、先行フレームとなる画像フレームは存在しない。このため、画像フレームCに対するホワイトバランス制御では、被写体エリア内から検出された白ブロックも含め、全ての白ブロックのWB評価値を用いてWB制御値の算出が行われる。
【0071】
次に、画像フレームDに対するホワイトバランス制御では、画像フレームDの(水平位置,垂直位置)=(7,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームDの(水平位置,垂直位置)=(7,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図8に示すように、(0.4,0.6)であったとすると、このWB評価値は白検出エリアから外れているため、画像フレームDにおいては、被写体エリア内から白ブロックは検出されていないと判定する。
【0072】
次に、画像フレームEに対するホワイトバランス制御では、画像フレームEの(水平位置,垂直位置)=(5,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックが、白ブロックとして検出されたかどうかを判定する。ここで、画像フレームEの(水平位置,垂直位置)=(5,5)、(水平サイズ,垂直サイズ)=(2,1)のブロックのWB評価値(G/R,G/B)が、図8に示すように、(0.5,0.9)であったとすると、このWB評価値は白検出エリア内に入っているため、画像フレームEにおいては、被写体エリア内から白ブロックが検出されたと判定する。
【0073】
本例においては、画像フレームEに対するホワイトバランス制御を行う際に、先行フレームである画像フレームDにおいて被写体エリア内から白ブロックが検出されていないため、被写体エリア内から検出された白ブロックのWB評価値をWB制御値の算出には用いず、被写体エリア内から検出された白ブロック以外の他の白ブロックのWB評価値を用いて、WB制御値の算出を行う。その結果、上述した例と同様に、適切なWB制御値を算出することができ、ホワイトバランス制御を高精度に行って、カラーフェイリアの発生を有効に抑制することができる。
【0074】
図9は、被写体追尾機能がオンのときにCPU61により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図9のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。
【0075】
信号処理IC60内部に画像フレームが入力されると(ステップS101)、CPU61の特徴量算出部101が、入力された画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれのWB評価値(G/R,G/B)を算出する(ステップS102)。
【0076】
次に、CPU61の白ブロック検出部102が、特徴量算出部101により算出されたWB評価値に基づいて、複数に分割された画像フレームの各ブロックのうちで、白色を映したブロックと推定される白ブロックを検出する(ステップS103)。
【0077】
次に、追尾対象の被写体が既に設定(ロックオン)されているか否かが判定され(ステップS104)、追尾対象の被写体が既に設定されていれば(ステップS104:YES)、CPU61の被写体エリア検出部103が、ステップS101で入力された画像フレームの中から、この追尾対象の被写体を映した被写体エリアを検出する(ステップS105)。一方、追尾対象の被写体が設定されていない場合には(ステップS104:NO)、被写体エリア検出部103は、例えばユーザからの指定に従って、ステップS101で入力された画像フレーム中の被写体を追尾対象として設定し(ステップS106)、その被写体の位置を被写体エリアとする。
【0078】
次に、CPU61のホワイトバランス制御部104が、白ブロック検出部102により検出された白ブロックの位置と、被写体エリア検出部103により検出された被写体エリアの位置とに基づいて、被写体エリア内から白ブロックが検出されているか否かを判定する(ステップS107)。そして、被写体エリア内から白ブロックが検出されていない場合には(ステップS107:NO)、ホワイトバランス制御部104は、判定結果フラグに1をセットして(ステップS108)、ステップS111に処理を移行する。なお、判定結果フラグは、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かを示す1ビットの情報であり、判定結果フラグ=0は被写体エリア内から白ブロックが検出されたことを示し、判定結果フラグ=1は被写体エリア内から白ブロックが検出されていないことを示している。
【0079】
一方、被写体エリア内から白ブロックが検出された場合には(ステップS107:YES)、ホワイトバランス制御部104は、判定結果フラグ=1となっているか否か、つまり、先行フレームにおいて被写体エリア内から白ブロックが検出されていないかどうかを確認する(ステップS109)。そして、判定結果フラグ=1となっている場合には(ステップS109:YES)、ホワイトバランス制御部104は、被写体エリア内から検出された白ブロックを除き、ステップS103で検出された白ブロックのWB評価値に基づいてWB制御値の算出を行う(ステップS110)。一方、判定結果フラグ=0となっている場合(ステップS109:NO)、あるいは、被写体エリア内から白ブロックが検出されなかった場合(ステップS107:NO)は、ステップS103で検出されたすべての白ブロックのWB評価値に基づいてWB制御値の算出を行う(ステップS111)。
【0080】
ステップS110またはステップS111で算出されたWB制御値は、例えば、RゲインおよびBゲインとしてYUV変換部64に設定される。そして、画像フレームを一単位とするRAW−RGB画像データのR信号に対してRゲインを乗算し、B信号に対してBゲインを乗算することで、オートホワイトバランスが行われる。
【0081】
以上、具体的な例を挙げながら詳細に説明したように、本実施の形態に係るデジタルカメラでは、CPU61のホワイトバランス制御部104が、被写体エリア内から白ブロックが検出され、且つ、先行フレームにおいて被写体エリア内から白ブロックが検出されていない場合に、被写体エリア内から検出された白ブロック以外の白ブロックのWB評価値を用いて算出したWB制御値を用いて画像フレームのホワイトバランスを制御するようにしている。したがって、本実施の形態に係るデジタルカメラによれば、オートホワイトバランスの精度を向上させて、カラーフェイリアの発生を有効に抑制することができる。
【0082】
(第2の実施の形態)
次に、第2の実施の形態に係るデジタルカメラついて説明する。本実施の形態に係るデジタルカメラは、追尾対象の被写体が人物の顔であるか否かを判定する機能を持ち、追尾対象の被写体が人物の顔である場合は、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、処理対象となる現在の画像フレームにおいて被写体エリア内から検出された白ブロックは用いずに、それ以外の他の白ブロックのWB評価値に基づいてWB制御値を算出するようにしたものである。なお、デジタルカメラの基本的な構成および処理の概要は上述した第1の実施の形態と同様であるため、以下、第1の実施の形態と同様の部分については同一の符号を付して重複した説明を省略する。
【0083】
図10は、本実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPU61’の機能構成を示す機能ブロック図である。本実施の形態におけるCPU61’は、図10に示すように、第1の実施の形態におけるCPU61の機能構成(図3参照)に加えて、顔判定部105および補正部106をさらに備えている。
【0084】
顔判定部105は、追尾対象の被写体が人物の顔であるか否かを判定する処理機能である。この顔判定部105は、一例として、画像フレームに対するパターンマッチングなどによって人物の顔を検出する処理を行い、被写体エリア検出部103により検出された被写体エリア内で人物の顔が検出された場合に、追尾対象の被写体が人物の顔であると判定する。なお、画像から人物の顔を検出する手法としては従来様々な方式が提案されており、顔判定部105は、これら公知の技術を採用して人物の顔を検出すればよい。また、顔判定部105による判定は、必ずしもすべての画像フレームに対して行う必要はなく、同一の被写体を追尾している間に追尾対象の被写体が人物の顔であると判定したら、その情報を記憶しておくことで、後の画像フレームでの判定を省略することができる。
【0085】
本実施の形態におけるホワイトバランス制御では、顔判定部105によって追尾対象の被写体が人物の顔であると判定された場合に、ホワイトバランス制御部104’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かの判定を行わず、処理対象となる現在の画像フレームにおいて被写体エリア内から検出された白ブロックを用いずに、白ブロック検出部102により検出された他の白ブロックのWB評価値に基づいてWB制御値を算出する。すなわち、追尾対象の被写体が人物の顔であると判定されていれば、被写体エリアから白ブロックが検出されたとしても、それは白色の領域ではなく、光源の光の影響によりWB評価値が白検出エリアに入った領域であると判定できる。したがって、この場合には、ホワイトバランス制御部104’が被写体エリア内の白ブロックを除いた他の白ブロックのWB評価値に基づいてWB制御値を算出することで、より適切なホワイトバランス制御が可能になる。
【0086】
補正部106は、顔判定部105によって追尾対象の被写体が人物の顔であると判定された場合に、被写体エリアに含まれるブロックのWB評価値を用いて、ホワイトバランス制御部104’が算出したWB制御値を補正する処理機能である。具体的には、補正部106は、顔判定部105によって追尾対象の被写体が人物の顔であると判定された場合に、被写体エリアに含まれるブロックのWB評価値と、ホワイトバランス制御部104’が算出したWB制御値とを比較する。そして、両者の間に予め定めた閾値以上の乖離がある場合に、ホワイトバランス制御部104’が算出したWB制御値を、被写体エリアに含まれるブロックのWB評価値に近づけるように補正する。つまり、補正部106は、ホワイトバランス制御部104’が算出するWB制御値が、上述したWB色空間上で、被写体エリアに含まれるブロック(人物の顔を映したブロック)のWB評価値から一定の距離の範囲内におさまるようにフィードバック制御する。なお、補正部106による具体的な補正方法としては、本発明者が提案した特開2008−236101号公報に開示された技術を適用することができる。
【0087】
図11は、本実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPU61’により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図11のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。なお、図11のフローチャートにおいて、ステップS201〜ステップS206の処理は、図9のフローチャートで示したステップS101〜ステップS106の処理と同様であり、ステップS208〜ステップS212の処理は、図9のフローチャートで示したステップS107〜ステップS211の処理と同様であるので、これらの処理の説明は省略する。
【0088】
本実施の形態におけるホワイトバランス制御では、CPU61’のホワイトバランス制御部104’が、ステップS208において被写体エリア内から白ブロックが検出されているか否かを判定する前に、CPU61’の顔判定部105が、追尾対象の被写体が人物の顔か否かの判定を行う(ステップS207)。そして、追尾対象の被写体が人物の顔ではないと判定された場合に(ステップS207:NO)、ホワイトバランス制御部104’が、第1の実施形態と同様の処理(ステップS208〜ステップS212の処理)を実施する。一方、追尾対象の被写体が人物の顔であると判定された場合(ステップS207:YES)、ホワイトバランス制御部104’は、被写体エリア以外から検出された白ブロックのWB評価値に基づいて、WB制御値の算出を行う(ステップS213)。
【0089】
次に、CPU61’の補正部106が、ステップS213で算出されたWB制御値と、被写体エリア内のブロックのWB評価値とを比較し、両者の乖離が予め定めた閾値以上となっているか否かを判定する(ステップS214)。そして、両者の乖離が閾値以上となっている場合には(ステップS214:YES)、補正部106は、ステップS213で算出されたWB制御値を、被写体エリア内のブロックのWB評価値に近づけるように補正する(ステップS215)。
【0090】
以上のように、本実施の形態に係るデジタルカメラでは、CPU61’の顔判定部105が、追尾対象の被写体が人物の顔であるか否かを判定し、追尾対象の被写体が人物の顔であると判定された場合は、ホワイトバランス制御部104’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、被写体エリア以外から検出された白ブロックのWB評価値に基づいてWB制御値を算出するようにしている。したがって、上述した第1の実施の形態と比較して、さらにオートホワイトバランスの精度を向上させることができ、カラーフェイリアの発生をより有効に抑制することができる。
【0091】
また、本実施の形態に係るデジタルカメラによれば、追尾対象の被写体が人物の顔であると判定された場合に、CPU61’の補正部106が、ホワイトバランス制御部104’ により算出されたWB制御値を被写体エリア内のブロックのWB評価値と比較し、両者の乖離が閾値以上となっている場合に、ホワイトバランス制御部104’により算出されたWB制御値を被写体エリア内のブロックのWB評価値に近づけるように補正するので、人物の顔を考慮したオートホワイトバランスを実施することができ、カラーフェイリアの発生をより有効に抑制することができる。
【0092】
(第3の実施の形態)
次に、第3の実施の形態に係るデジタルカメラついて説明する。本実施の形態に係るデジタルカメラは、被写体エリアの大きさを判定する機能を持ち、被写体エリアの大きさが基準値よりも小さい場合は、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、処理対象となる現在の画像フレームにおいて被写体エリア内から検出された白ブロックは用いずに、それ以外の他の白ブロックのWB評価値に基づいてWB制御値を算出するようにしたものである。なお、デジタルカメラの基本的な構成および処理の概要は上述した第1の実施の形態と同様であるため、以下、第1の実施の形態と同様の部分については同一の符号を付して重複した説明を省略する。
【0093】
図12は、本実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPU61’’の機能構成を示す機能ブロック図である。本実施の形態におけるCPU61’’は、図12に示すように、第1の実施の形態におけるCPU61の機能構成(図3参照)に加えて、被写体エリア判定部107をさらに備えている。
【0094】
被写体エリア判定部107は、被写体エリア検出部103により検出された被写体エリアの大きさを判定する処理機能である。画像フレーム全体の大きさに対して被写体エリアの大きさが十分に小さい場合は、被写体エリア内のブロックのWB評価値がWB制御値の算出に与える影響は小さくなる。例えば、画像フレーム全体を縦横16×16の256ブロックに分割した場合において、被写体エリアの大きさが1ブロック分にしか相当しないような場合には、被写体エリア内のブロックのWB評価値は無視することができる。本実施の形態においては、この被写体エリアの大きさが予め定めた基準値よりも小さいか否かを判定するために、被写体エリア判定部107が設けられている。
【0095】
本実施の形態におけるホワイトバランス制御では、被写体エリア判定部107によって被写体エリアの大きさが基準値よりも小さいと判定された場合に、ホワイトバランス制御部104’’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かの判定を行わず、処理対象となる現在の画像フレームにおいて被写体エリア以外から検出された他の白ブロックのWB評価値に基づいてWB制御値を算出する。すなわち、被写体エリアの大きさが基準値よりも小さければ、被写体エリアを考慮せずにWB制御値を算出することができ、これにより、被写体追尾の影響によりオートホワイトバランスが不安定になることを有効に防止し、また、CPU61’’の処理負荷を低減させて電力消費量の削減を図ることができる。
【0096】
図13は、本実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPU61’’により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図13のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。なお、図13のフローチャートにおいて、ステップS301〜ステップS308の処理は、図9のフローチャートで示したステップS101〜ステップS108の処理と同様であり、ステップS310〜ステップS312の処理は、図9のフローチャートで示したステップS109〜ステップS111の処理と同様であるので、これらの処理の説明は省略する。
【0097】
本実施の形態におけるホワイトバランス制御では、被写体エリア内から白ブロックが検出されていると判定された場合に(ステップS307:Yes)、CPU61’’の被写体エリア判定部107が、被写体エリアの大きさが予め定めた基準値以上であるか否かを判定する(ステップS309)。そして、被写体エリアの大きさが基準値以上であると判定された場合に(ステップS309:YES)、ホワイトバランス制御部104’’が、第1の実施形態と同様に、判定結果フラグ=1となっているか否か、つまり、先行フレームにおいて被写体エリア内から白ブロックが検出されていないかどうかを確認する(ステップS310)。一方、被写体エリアの大きさが基準値よりも小さいと判定された場合には(ステップS309:NO)、ホワイトバランス制御部104’’は、ステップS310の判定を行うことなくステップS311に処理を移行し、ステップS311において、被写体エリア以外から検出された白ブロックのWB評価値に基づいて、WB制御値の算出を行う。
【0098】
以上のように、本実施の形態に係るデジタルカメラでは、CPU61’’の被写体エリア判定部107が被写体エリアの大きさを判定し、被写体エリアの大きさが予め定めた基準値よりも小さい場合には、ホワイトバランス制御部104’’が、先行フレームにおいて被写体エリア内から白ブロックが検出されたか否かに関わらず、被写体エリア以外から検出された白ブロックのWB評価値に基づいてWB制御値を算出するようにしている。したがって、上述した第1の実施の形態と同様にオートホワイトバランスの精度を向上させて、カラーフェイリアの発生をより有効に抑制することができるとともに、被写体追尾の影響によりオートホワイトバランスが不安定になることを有効に防止することができ、さらに、CPU61’’の処理負荷を低減させて電力消費量の削減を図ることができる。
【0099】
(第4の実施の形態)
次に、第4の実施の形態に係るデジタルカメラついて説明する。本実施の形態に係るデジタルカメラは、CMOSセンサ30から連続的に出力され信号処理IC60内に入力される複数の画像フレーム間において、追尾対象の被写体の背景が変化しているか否かを判定する機能を持ち、追尾対象の被写体の背景が変化している場合は、処理対象となる画像フレームに対するホワイトバランス制御を行わないようにしたものである。なお、デジタルカメラの基本的な構成および処理の概要は上述した第1の実施の形態と同様であるため、以下、第1の実施の形態と同様の部分については同一の符号を付して重複した説明を省略する。
【0100】
図14は、本実施の形態に係るデジタルカメラにおいて、ホワイトバランス制御を実施するためのCPU61’’’の機能構成を示す機能ブロック図である。本実施の形態におけるCPU61’’’は、図14に示すように、第1の実施の形態におけるCPU61の機能構成(図3参照)に加えて、背景変化判定部108をさらに備えている。
【0101】
背景変化判定部108は、CMOSセンサ30から連続的に出力され信号処理IC60内に入力される複数の画像フレーム間において、追尾対象の被写体の背景が変化しているか否かを判定する処理機能である。
【0102】
固定された背景の中で追尾対象の被写体が移動しているような撮影シーンにおいては、画像における光源が大きく変化することはないが、例えばカメラアングルを随時変えながら追尾対象の被写体を追っているような撮影シーンにおいては、連続する複数の画像フレーム間で光源が大きく変わる可能性がある。そして、このように連続する複数の画像フレーム間で被写体の背景が変化し、光源が大きく変わるような場合には、画像フレーム単位でホワイトバランス制御を実行するとオートホワイトバランスが不安定になる可能性がある。
【0103】
そこで、本実施の形態においては、CPU61’’’の背景変化判定部108が、連続する複数の画像フレーム間で被写体の背景が変化しているか否かを判定し、被写体の背景が変化していると判定された場合には、ホワイトバランス制御部104’’’が処理対象となる画像フレームに対するホワイトバランス制御を行わないようにしている。ホワイトバランス制御部104’’’がホワイトバランス制御を行わない場合は、現在の画像フレームに対応した新たなWB制御値が算出されない。この場合、現在の画像フレームに対応するRAW−RGB画像データのR信号およびB信号には、一例として、YUV変換部64に既に設定されているRゲインやBゲインが乗算されることになる。
【0104】
背景変化判定部108が、連続する複数の画像フレーム間で被写体の背景が変化しているか否かを判定する手法としては、様々な手法が考えられる。例えば、画像フレームの上下左右端のAE評価値、WB評価値、AF評価値を、連続する画像フレーム間で比較することによって、背景が変化しているか否かを判定することができる。連続する複数の画像フレーム間で被写体の背景に変化がなければこれらの評価値の変化は小さい。一方、連続する複数の画像フレーム間で被写体の背景が変化していれば、これらの評価値が大きく変化する。したがって、背景変化判定部108は、連続する複数の画像フレーム間でこれらの評価値が予め定めた閾値以上変化している場合に、被写体の背景が変化していると判定することができる。
【0105】
図15は、本実施の形態に係るデジタルカメラにおいて、被写体追尾機能がオンのときにCPU61’’’により実行されるホワイトバランス制御に関わる一連の処理を示すフローチャートである。この図15のフローチャートで示す一連の処理は、一例として、CMOSセンサ30からAFE40を介して信号処理IC60内部に画像フレームが入力されるたびに繰り返し行われる。なお、図15のフローチャートにおいて、ステップS401〜ステップS406の処理は、図9のフローチャートで示したステップS101〜ステップS106の処理と同様であり、ステップS408〜ステップS412の処理は、図9のフローチャートで示したステップS107〜ステップS111の処理と同様であるので、これらの処理の説明は省略する。
【0106】
本実施の形態におけるホワイトバランス制御では、CPU61’’’のホワイトバランス制御部104’’’が、ステップS408において被写体エリア内から白ブロックが検出されているか否かを判定する前に、CPU61’’’の背景変化判定部108が、追尾対象の被写体の背景が変化しているか否かの判定を行う(ステップS407)。そして、追尾対象の被写体の背景に変化はないと判定された場合に(ステップS407:NO)、ホワイトバランス制御部104’’’が、第1の実施形態と同様の処理(ステップS408〜ステップS412の処理)を実施する。一方、追尾対象の被写体の背景が変化していると判定された場合には(ステップS407:YES)、ホワイトバランス制御部104’’’は、処理対象となる現在の画像フレームに対応するWB制御値の算出は行わずに、処理を終了する。
【0107】
以上のように、本実施の形態に係るデジタルカメラでは、CPU61’’’の背景変化判定部108が連続する複数の画像フレーム間で追尾対象の被写体の背景が変化しているか否かを判定し、背景が変化していると判定された場合には、ホワイトバランス制御部104’’’が、処理対象となる現在の画像フレームに対するホワイトバランス制御を行わないようにしている。したがって、上述した第1の実施の形態と同様にオートホワイトバランスの精度を向上させて、カラーフェイリアの発生をより有効に抑制することができるとともに、光源が大きく変化することに起因してオートホワイトバランスが不安定になることを有効に防止することができる。
【0108】
以上、本発明の具体的な実施の形態として第1乃至第4の実施の形態について詳しく説明したが、本発明は上述した各実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上述した各実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、上述した各実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0109】
30 CMOSセンサ
60 信号処理IC
61(61’,61’’,61’’’) CPU
101 特徴量算出部
102 白ブロック検出部
103 被写体エリア検出部
104(104’,104’’,104’’’) ホワイトバランス制御部
105 顔判定部
106 補正部
107 被写体エリア判定部
108 背景変化判定部
【先行技術文献】
【特許文献】
【0110】
【特許文献1】特開2007−104200号公報
【特許文献2】特開2009−65381号公報
【特許請求の範囲】
【請求項1】
撮像素子と、
前記撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出する特徴量算出手段と、
前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出する白ブロック検出手段と、
前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出する被写体エリア検出手段と、
前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するホワイトバランス制御手段と、を備えることを特徴とする撮像装置。
【請求項2】
前記被写体が人物の顔であるか否かを判定する顔判定手段をさらに備え、
前記ホワイトバランス制御手段は、前記被写体が人物の顔であると判定された場合は、前記先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されたか否かに関わらず、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて、前記制御値を算出することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記被写体が人物の顔であると判定された場合に、前記被写体エリアに含まれるブロックの前記特徴量を用いて、前記ホワイトバランス制御手段が算出した制御値を補正する補正手段をさらに備えることを特徴とする請求項2に記載の撮像装置。
【請求項4】
前記被写体エリアの大きさを判定する被写体エリア判定手段をさらに備え、
前記ホワイトバランス制御手段は、前記被写体エリアの大きさが基準値よりも小さいと判定された場合は、前記先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されたか否かに関わらず、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて、前記制御値を算出することを特徴とする請求項1に記載の撮像装置。
【請求項5】
前記撮像素子から連続的に出力される複数の前記画像フレーム間において、前記被写体の背景が変化しているか否かを判定する背景変化判定手段をさらに備え、
前記ホワイトバランス制御手段は、前記被写体の背景が変化していると判定された場合に、前記ホワイトバランスの制御を行わないことを特徴とする請求項1に記載の撮像装置。
【請求項6】
撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出するステップと、
前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出するステップと、
前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出するステップと、
前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するステップと、を含むことを特徴とするホワイトバランス制御方法。
【請求項1】
撮像素子と、
前記撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出する特徴量算出手段と、
前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出する白ブロック検出手段と、
前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出する被写体エリア検出手段と、
前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するホワイトバランス制御手段と、を備えることを特徴とする撮像装置。
【請求項2】
前記被写体が人物の顔であるか否かを判定する顔判定手段をさらに備え、
前記ホワイトバランス制御手段は、前記被写体が人物の顔であると判定された場合は、前記先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されたか否かに関わらず、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて、前記制御値を算出することを特徴とする請求項1に記載の撮像装置。
【請求項3】
前記被写体が人物の顔であると判定された場合に、前記被写体エリアに含まれるブロックの前記特徴量を用いて、前記ホワイトバランス制御手段が算出した制御値を補正する補正手段をさらに備えることを特徴とする請求項2に記載の撮像装置。
【請求項4】
前記被写体エリアの大きさを判定する被写体エリア判定手段をさらに備え、
前記ホワイトバランス制御手段は、前記被写体エリアの大きさが基準値よりも小さいと判定された場合は、前記先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されたか否かに関わらず、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて、前記制御値を算出することを特徴とする請求項1に記載の撮像装置。
【請求項5】
前記撮像素子から連続的に出力される複数の前記画像フレーム間において、前記被写体の背景が変化しているか否かを判定する背景変化判定手段をさらに備え、
前記ホワイトバランス制御手段は、前記被写体の背景が変化していると判定された場合に、前記ホワイトバランスの制御を行わないことを特徴とする請求項1に記載の撮像装置。
【請求項6】
撮像素子から出力される画像フレームを複数のブロックに分割し、分割した複数のブロックそれぞれについて、各ブロックの色の特徴を表す特徴量を算出するステップと、
前記特徴量に基づいて、前記複数のブロックのうちで、白色を映したブロックと推定される白ブロックを検出するステップと、
前記画像フレームの中で、追尾する被写体を映した被写体エリアを検出するステップと、
前記画像フレームにおいて前記被写体エリア内から前記白ブロックが検出され、且つ、前記画像フレームよりも前に前記撮像素子から出力された画像フレームである先行フレームにおいて前記被写体エリア内から前記白ブロックが検出されていない場合に、前記画像フレームにおいて前記被写体エリア内から検出された白ブロック以外の前記白ブロックの前記特徴量に基づいて算出した制御値を用いて、前記画像フレームのホワイトバランスを制御するステップと、を含むことを特徴とするホワイトバランス制御方法。
【図1−1】
【図1−2】
【図1−3】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図1−2】
【図1−3】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−119756(P2012−119756A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−265155(P2010−265155)
【出願日】平成22年11月29日(2010.11.29)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願日】平成22年11月29日(2010.11.29)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]