JP6006543B2 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP6006543B2
JP6006543B2 JP2012141466A JP2012141466A JP6006543B2 JP 6006543 B2 JP6006543 B2 JP 6006543B2 JP 2012141466 A JP2012141466 A JP 2012141466A JP 2012141466 A JP2012141466 A JP 2012141466A JP 6006543 B2 JP6006543 B2 JP 6006543B2
Authority
JP
Japan
Prior art keywords
reliability
specular reflection
white
extraction
reflection component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012141466A
Other languages
English (en)
Other versions
JP2014007530A5 (ja
JP2014007530A (ja
Inventor
光太郎 北島
光太郎 北島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012141466A priority Critical patent/JP6006543B2/ja
Priority to US13/922,525 priority patent/US8988549B2/en
Publication of JP2014007530A publication Critical patent/JP2014007530A/ja
Priority to US14/629,976 priority patent/US9338419B2/en
Publication of JP2014007530A5 publication Critical patent/JP2014007530A5/ja
Application granted granted Critical
Publication of JP6006543B2 publication Critical patent/JP6006543B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N23/84Camera processing pipelines; Components thereof for processing colour signals
    • H04N23/88Camera processing pipelines; Components thereof for processing colour signals for colour balance, e.g. white-balance circuits or colour temperature control

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Color Television Image Signal Generators (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Processing Of Color Television Signals (AREA)
  • Image Processing (AREA)

Description

本発明は、画像処理装置および画像処理方法に関し、特には画像から光源色を推定する技術に関する。
従来、デジタルカメラに用いられるオートホワイトバランス制御機能は、外部センサを使用せず、撮像素子の出力を用いてホワイトバランスを調整するものが主流となっている。例えば特許文献1には、撮像素子の出力を用いてホワイトバランスを調整する手法として、入力画像中から白(無彩色)であると思われる色を抽出し、抽出した色が白になるようなホワイトバランスゲインを算出する方法が開示されている。
また、被写体物体光を鏡面反射成分と拡散反射成分に分離する二色性反射モデルを利用したものが知られている。
また、特許文献2には、明るさの異なる近接画素間の差分を算出することで、被写体を照射する光源色を特定する方法が開示されている。この方法は、高輝度な第1の画素(物体色を反映する拡散反射成分と光源色を反映する鏡面反射成分の両方を含む)から第1の画素よりも低輝度な画素(物体色のみを含む拡散反射成分)の差分を算出することで、光源色の成分を抽出する原理に基づいている。
具体的には、高輝度の第1の画素のRGB値と、第1の画素よりも低輝度な第2の画素のRGB値の差分を算出する。この差分RGB値は光源色と同じベクトル成分を持つRGB値であるから、差分RGB値の成分比からホワイトバランスゲインを算出することができる。
特開平5−64219号公報 特許第4447520号公報
特許文献1に記載される方法では、白い被写体が画像中に存在しない場合や、白に近いが白ではない被写体が多く含まれる場合などにおいては、光源色の推定精度、すなわちホワイトバランス調整の精度が低下する。
また、特許文献2に記載される方法は、輝度の差(ダイナミックレンジ)が小さい画像について、やはりホワイトバランス調整の精度が低下する。
本発明はこのような従来技術の課題に鑑みなされたものであり、様々な被写体について画像から精度良く光源色を推定し、精度の良いホワイトバランスゲインを得ることが可能な画像処理装置および画像処理方法を提供することを目的とする。
上述の目的は、入力画像から、所定の色空間において予め定められた白抽出範囲に含まれる色を有する画素を抽出する白抽出手段と、抽出された画素の値に基づいて、入力画像に対する第1のホワイトバランスゲインを算出する第1の算出手段と、入力画像に含まれる鏡面反射成分を抽出する鏡面反射成分抽出手段と、抽出された鏡面反射成分に基づいて、入力画像に対する第2のホワイトバランスゲインを算出する第2の算出手段と、白抽出手段による画素の抽出の信頼度である白抽出信頼度を、予め定めた条件に基づいて算出する第1の信頼度算出手段と、第1のホワイトバランスゲインと、第2のホワイトバランスゲインとを、白抽出信頼度が高いほど第1のホワイトバランスゲインに大きな重みを与えて加重加算し、入力画像に用いる第3のホワイトバランスゲインを算出する混合手段と、を有することを特徴とする画像処理装置によって達成される。
本発明によれば、様々な被写体について画像から精度良く光源色を推定し、精度の良いホワイトバランスゲインを得ることが可能である。
本発明の実施形態に係る画像処理装置の一例としてのデジタルカメラの構成例を示すブロック図。 図1の画像処理部の構成例を示すブロック図。 本発明の第1の実施形態におけるホワイトバランスゲイン算出処理を説明するためのフローチャート。 本発明の実施形態における白抽出範囲の例を示す図。 本発明の実施形態における白抽出信頼度1〜3の特性の例を示す図。 図3のS304における鏡面反射成分抽出処理を説明するためのフローチャート。 本発明の第1の実施形態における入力画像の例を示す図。 本発明の第1の実施形態における差分およびカウント値の格納方法を模式的に示す図。 本発明における光源色の推定方法を説明するための図。 本発明の第2の実施形態におけるホワイトバランスゲイン算出処理を説明するためのフローチャート。 図10のS1001における鏡面反射成分・輪郭成分抽出処理を説明するためのフローチャート。 本発明の第2の実施形態における鏡面反射信頼度1〜3の特性の例を示す図。 本発明の第2の実施形態の変形例における被写体認識の例を説明するための図。
本発明の例示的な実施形態を、添付図面に基づいて詳細に説明する。以下の実施形態では、本発明に係る画像処理装置の一例としてのデジタルカメラを説明するが、本発明において撮影に係る構成は必須ではなく、画像データを取得可能な任意の装置で本発明を実施可能である。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るデジタルカメラ100の構成例を示すブロック図である。
図1において、レンズ群101は、フォーカスレンズを含むズームレンズである。絞り機能を備えるシャッタ102が、レンズ群101と撮像部103との間に設けられている。撮像部103は、レンズ群101によって撮像面に形成される光学像を画素単位の電気信号に変換するCCD/CMOSイメージセンサを代表とする撮像素子を有する。A/D変換器104は、撮像部103が出力するアナログ信号をデジタル信号(画像データ)に変換する。
画像処理部105は、A/D変換器104から出力される画像データに対し、色補間(デモザイク)、ホワイトバランス調整、γ補正、輪郭強調、ノイズリダクション、色補正などの各種画像処理を行う。画像メモリ106は画像データを一時的に記憶する。メモリ制御部107は、画像メモリ106の読み書きを制御する。D/A変換器108は、画像データをアナログ信号に変換する。表示部109はLCDや有機ELディスプレイ等の表示装置を有し、各種GUIやライブビュー画像、記録媒体112から読み出して再生した画像などを表示する。コーデック部110は、画像メモリ106に記憶されている画像データを記録媒体に記録するために予め定められた方法で符号化したり、画像ファイルに含まれる符号化画像データを例えば表示のために復号したりする。
インタフェース(I/F)111は、例えば半導体メモリカードやカード型ハードディスクなどの着脱可能な記録媒体112を、デジタルカメラ100と機械的および電気的に接続する。システム制御部50は例えばCPUやMPUなどのプログラマブルなプロセッサであってよい。システム制御部50は、例えば不揮発性メモリ124や内蔵する不揮発性メモリに記録されたプログラムを実行して必要なブロックや回路を制御することにより、後述する光源推定処理を始めとしたデジタルカメラ100の機能を実現する。
操作部120は、ユーザがデジタルカメラ100に各種の指示を入力するためのボタンやスイッチなどをまとめて記載したものである。電源スイッチ121は操作部120に含まれるスイッチ群の1つであるが、便宜上異なるブロックで記載している。電源制御部122は、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、例えば充電池である電源部123について、装着の有無、種類、電池残量等の情報を検出する。また、電源制御部122は、電源部123に関する検出結果及びシステム制御部50の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体112を含むデジタルカメラ100の各部へ供給する。
不揮発性メモリ124は電気的に消去・記録可能な、例えばEEPROM等であってよい。不揮発性メモリ124は、各種の設定値、GUIデータをはじめ、システム制御部50がMPUやCPUである場合にはプログラムが記録される。
システムタイマ125は各種制御に用いる時間や、内蔵時計の時刻を計測する。システムメモリ126は、システム制御部50の動作用の定数や変数を保存したり、不揮発性メモリ124から読みだしたプログラム等を展開するために用いられる、例えば揮発性メモリである。
次に、デジタルカメラ100における撮影時の動作について説明する。
例えば撮像部103は、シャッタ102が開いている際にレンズ群101が撮像面に形成する被写体像を撮像素子によって光電変換し、アナログ画像信号としてA/D変換器104へ出力する。A/D変換器104は撮像部103から出力されるアナログ画像信号をデジタル画像信号(画像データ)に変換し画像処理部105に出力する。
画像処理部105は、A/D変換器104からの画像データ、又は、メモリ制御部107からの画像データに対し、色補間(デモザイク)、γ補正、輪郭強調、ノイズリダクション、色補正などの各種画像処理を行う。
また、画像処理部105では、撮影で得られた画像データを用いて輝度やコントラストなどに関する所定の演算処理を行い、得られた演算結果に基づいてシステム制御部50が測距制御、露光制御を行う。このように、本実施形態のデジタルカメラ100では、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理を行う。画像処理部105ではさらに、撮影で得られた画像データを用いて、撮影時に被写体を照明した光源色を推定し、推定した光源色に基づくオートホワイトバランス(AWB)調整も行う。光源色の推定処理の詳細については後述する。
画像処理部105から出力された画像データは、メモリ制御部107を介して画像メモリ106に書き込まれる。画像メモリ106は、撮像部103から出力された画像データや、表示部109に表示するための画像データを格納する。
また、D/A変換器108は、画像メモリ106に格納されている画像表示用のデータをアナログ信号に変換して表示部109に供給する。表示部109は、LCD等の表示装置に、D/A変換器108からのアナログ信号に応じた表示を行う。
コーデック部110は、画像メモリ106に記録された画像データをJPEGやMPEGなどの規格に基づき符号化する。システム制御部50は符号化した画像データに対して予め定められたヘッダなどを付与して画像ファイルを形成し、インタフェース111を介して記録媒体112に記録する。
なお、現在のデジタルカメラでは、撮影スタンバイ状態においては動画撮影を行い、撮影された動画を表示部109に表示し続けることにより表示部109を電子ビューファインダ(EVF)として機能させるのが一般的である。この場合、シャッタ102は開いた状態とし、撮像部103のいわゆる電子シャッタを用いて例えば30フレーム/秒の撮影を行う。
そして、操作部120に含まれるシャッタボタンが半押しされると上述のAF,AE制御が行われ、全押しされると本撮影により記録用の静止画撮影が実行され、記録媒体112に記録される。また、動画撮影ボタンなどにより動画撮影が指示された場合は、記録媒体112への動画記録を開始する。
図2は、画像処理部105の機能構成例を示すブロック図である。
図1のA/D変換器104から出力された画像データは、輝度・色信号生成部200に入力される。画像データは、撮像素子に設けられたカラーフィルタを構成する色成分の1つに対応した値を有する。一般的に用いられるベイヤー配列の原色カラーフィルタが用いられる場合、画像データは、R画素,G画素,B画素のデータから構成される。
輝度・色信号生成部200はこのような画像データに対してデモザイク処理を行い、各画素について輝度信号Yおよび色信号R,G,Bを生成する。輝度・色信号生成部200は、生成した色信号R,G,Bをホワイトバランス(WB)増幅部201へ、輝度信号Yを輝度γ処理部205へ出力する。また、輝度・色信号生成部200は、色信号R,G,Bを、画像データ(RBG)として、メモリ制御部107を介して画像メモリ106に出力する。
また、輝度・色信号生成部200で生成した色信号R,G,Bは色空間変換処理部207にも入力される。色空間変換処理部207では、以下の式を用いて、色信号R,G,Bを色空間信号CxおよびCyに変換し、画像信号Cx, Cyを画像データ(CxCy)としてメモリ制御部107を介して画像メモリ106に出力する。
Cx = (R - B) / Y
Cy = (R + B -2G) / Y
Y = (R + G + B) / 2
WB増幅部201は、後述する処理によりシステム制御部50が算出するホワイトバランスゲイン値に基づき、色信号R,G,Bにゲインを適用し、ホワイトバランスを調整する。色γ処理部202では、色信号R,G,Bにガンマ補正を行う。色差信号生成部203では、色信号R,G,Bから色差信号R−Y、B−Y信号を生成し色補正部204に出力する。色補正部204では色差信号R−Y、B−Yにゲインを適用するなどにより、色相や彩度を調整する。色補正部204は、補正後の色差信号R−Y、B−Yをメモリ制御部107を介して画像メモリ106に出力する。
一方、輝度γ処理部205では輝度信号Yに対してガンマ補正を行い、輪郭強調処理部206および輪郭信号生成部208へ出力する。輪郭強調処理部206は輝度信号Yに対して輪郭強調処理を行い、メモリ制御部107を介して画像メモリ106に出力する。輪郭強調処理部206の出力する輝度信号Yと、色補正部204が出力する色差信号R−Y,B−Yが、コーデック部110によって符号化され、最終的に記録媒体112に記録される。
また、輪郭信号生成部208は、輝度γ処理部205の出力画像に対してバンドパスフィルタを施し、画像の輪郭信号を生成する。輪郭信号生成部208は生成した輪郭画像信号をメモリ制御部107を介して画像メモリ106に出力する。なお、輪郭信号生成部208は第1の実施形態には不要である。
次に、本実施形態における光源推定処理について、図3のフローチャートを用いて説明する。光源推定処理は、システム制御部50が画像処理部105の輝度・色信号生成部200が画像メモリ106に出力した信号から光源色の成分を推定する処理である。
なお、図3に示す処理を行う前に、システム制御部50は画像メモリ106から画像データ(RGB)および画像データ(CxCy)を取得し、システムメモリ126に展開しておく。
S301でシステム制御部50は、入力画像から白色(無彩色)に近い信号を抽出する。この処理について図4を用いて説明する。図4(a)はCxCy色空間を示している。図4(a)において白抽出範囲401は白色とみなす色領域を示しており、白丸402のそれぞれは画像データ(CxCy)を示している。Cx_baseおよびCy_baseは、白抽出範囲401の水平方向および垂直方向における最大幅である。
システム制御部50は、入力画像の全ての画素に対して、白抽出範囲401に含まれる色を有するか否かを判定する。白抽出範囲に含まれる画素値(Cx, Cy)は、例えばシステムメモリ126であってよいバッファに加算される。
また、システム制御部50は、白抽出範囲に含まれる画素値(Cx, Cy)を有する画素数をカウントしておく(白画素カウント)。
さらにシステム制御部50は、白色(無彩色)の被写体として誤って抽出しやすい色が画像中にどの程度含まれるのかもカウントする。これについて図4(b)を用いて説明する。図4(b)は図4(a)と同様にCxCy色空間と白抽出範囲401の関係を示している。図4(b)において、色の領域404、405、406の画素は、白色(無彩色)である可能性も、有彩色である可能性もある。例えば、太陽光下における薄い青色の物体色と、日蔭にある無彩色の被写体の画素は、いずれも色の領域404に含まれる可能性がある。システム制御部50は、このような、白色(無彩色)でないにもかかわらず白色と見なされる可能性のある色の領域404、405、406に含まれる色を有する画素の数をカウントしておく。なお、白色(無彩色)の被写体として誤って抽出される可能性のある色が分布する領域は、予め設定しておくことができる。
S302でシステム制御部50は、S301における抽出結果に基づいて、ホワイトバランスゲインを算出する。まずシステム制御部50は、抽出した画素値(Cx, Cy)の合計値を、白画素カウント値で除算し、ホワイトバランスゲインを算出する。この演算は、白抽出範囲401に含まれる色を有する画素値の平均の算出である。図4(a)の黒丸403は、算出された平均値の例を示す。
次にシステム制御部50は、算出した平均値(Cx,Cy)の色空間を変換し、RGB色空間の値に変換する。このRGB値を白抽出平均RGB値(wR,wG,wB)とよぶ。
そして、第1の算出手段としてのシステム制御部50は、白抽出平均RGB値(wR,wG,wB)からホワイトバランスゲイン(第1のホワイトバランスゲイン)を算出する。GのホワイトバランスゲインwG-Gainを所定の固定値とすると、RとBのホワイトバランスゲイン(wR-Gain, wB-Gain)を、以下の式によって算出する。
wR-Gain = (wG / wR) * wG-Gain
wB-Gain = (wG / wB) * wG-Gain
このように、wR-Gain,wB-Gainは白抽出に基づくホワイトバランスゲイン(第1のホワイトバランスゲイン)を示している。
S303で第1の信頼度算出手段としてのシステム制御部50は、白抽出に基づくホワイトバランスゲインの信頼度(白抽出信頼度)を算出する。白抽出信頼度の算出方法について図5を用いて説明する。白抽出信頼度は、白抽出信頼度1〜3を積算することで求める。まず、白抽出信頼度1〜3の算出方法について説明する。
(白抽出信頼度1の算出)
第1の白抽出信頼度としての白抽出信頼度1は、白抽出範囲401に含まれる色を有する画素数の、画像全体の画素数に対する割合に依存する。システム制御部50は、S301で得られた白画素カウントが、入力画像の画素数の何パーセントに当たるのかを算出し、これを白画素割合とする。そして、例えば図5(a)に示す、白画素の割合と白抽出信頼度1との関係に基づき、白抽出信頼度1を算出する。本実施形態では、白画素割合の増加に従って白抽出信頼度1が線形的に増加するものとする。
(白抽出信頼度2の算出)
第2の白抽出信頼度としての白抽出信頼度2は、白抽出範囲401に含まれる色を有する画素値の分布の広がり度から算出する。具体的には、入力画像から検出された、白抽出範囲401に含まれる画素値(Cx,Cy)の最小値、最大値の差から白分布の広がり度を算出する。S301でシステム制御部50は、白抽出範囲401に含まれる画素値のうち、Cxの最大値Cx_maxと最小値Cx_min、Cyの最大値Cy_maxと最小値Cy_minをそれぞれ検出しておく。そして、システム制御部50は、白抽出のCxおよびCy方向の広がり度を
白抽出のCx広がり度 = (Cx_max - Cx_min)/Cx_base
白抽出のCy広がり度 = (Cy_max - Cy_min)/Cy_base
として算出する。ここで、Cx_baseおよびCy_baseは図4(a)に示すように、白抽出範囲401で取り得る最大幅を示す。
そして、システム制御部50は、算出した白抽出のCx広がり度とCy広がり度とを加算し、白抽出広がり度とする。そして、例えば図5(b)に示す白抽出広がり度と白抽出信頼度2との関係から、白抽出信頼度2を算出する。本実施形態では、白抽出広がり度が増えるに従って白抽出信頼度2が線形的に減少し、その後は一定値となるものとする。
白画素として抽出された画素値が白抽出範囲401内で広範囲に分布している場合、ということは、抽出した色のばらつきが大きく、安定していないとことを意味している。そのため、色の広がり度が高い場合は白抽出信頼度を低下させている。
(白抽出信頼度3の算出)
第3の白抽出信頼度としての白抽出信頼度3は、白と誤判定しやすい色を有する画素数の、白と判定された画素数に対する割合から算出する。前述の通り、S301でシステム制御部50は、白と誤判定しやすい色の領域404〜406に含まれる色を有する画素数をカウントしている。そしてシステム制御部50は、例えば図5(c)に示す、
白と誤判定しやすい色の領域404〜406に含まれる色を有する画素数/白抽出範囲401に含まれる色を有する画素数
で得られる割合と、白抽出信頼度3との関係に基づいて、白抽出信頼度3を算出する。白と誤判定しやすい色の割合が増える従って白抽出信頼度2が線形的に減少し、その後は一定値となるものとする。
白と誤判定しやすい色を有する画素の割合が多いということは、白と判定すべきかあいまいな色が多いということであり、判定の信頼性が低くなる。そこで、白と誤判定しやすい色の画素が多い場合は、白抽出信頼度を低下させている。
上述のようにして白抽出信頼度1〜3を算出した後、システム制御部50は、以下のように白抽出信頼度1〜3の積によって最終的な白抽出信頼度を算出する。
白抽出信頼度=白抽出信頼度1×白抽出信頼度2×白抽出信頼度3
図3に戻り、S304で鏡面反射成分抽出手段としてのシステム制御部50は鏡面反射成分の抽出を行う。
S304における鏡面反射成分抽出処理の詳細を、図6に示すフローチャートを用いて説明する。
図6において、S601およびS607は、S602〜S606の処理が、対象画素をラスタスキャンしながら全画素に対して実施されることを示している。
S602でシステム制御部50は、処理対象画素が飽和していないか確認する。具体的には、システム制御部50は、RGB成分のそれぞれを所定の閾値と比較し、閾値より大きい成分があれば画素が飽和していると判断し、現在の処理対象画素の処理をスキップして、次の画素について飽和の確認を行う。一方、RGB成分がいずれも閾値以下であれば画素は飽和していないと判断してシステム制御部50は処理をS603に進める。
S603でシステム制御部50は、処理対象画素と比較画素の差分を算出する。処理対象画素および比較画素について、図7(a)を用いて説明する。図7(a)において700は入力画像を示しており、701は入力画像700の一部を拡大した状態を模式的に示している。701におけるメッシュは画素の境界を示している。702は現在の処理における処理対象画素を示し、図6の処理は、処理対象画素702の位置を順次ラスタスキャンしながら各画素について実施される。703、704、705は処理対象画素702に対する比較画素を示しており、本実施形態では処理対象画素702から所定の方向に所定の距離(画素数)離れた位置の複数の画素を比較画素とする。
処理対象画素と比較画素とが満たすべき位置関係は予め定めておくことができるが、基本的には処理対象画素に近接した複数の位置にある画素を比較画素とする。ここでは、一例として処理対象画素を左上角の画素として有する4×4画素のブロックにおける残り3つの角の画素を比較画素としている。処理対象画素と比較画素との距離が短すぎると画素間の差が少なくなる可能性が高くなり、また距離が長すぎると同一物体に対応しない可能性が高くなる。従って、例えば数〜10画素程度の範囲で実験的に距離を定める。なお、処理対象画素と比較画素との位置関係は、処理対象画素の位置が入力画像の端部となる場合などにおいて適宜変更されてよい。
S603でシステム制御部50は、処理対象画素702と比較画素703との差分を算出する。即ち、システム制御部50は、処理対象画素702のRGB値(R1, G1, B1)と比較画素703のRGB値(R2, G2, B2)との色成分ごとの差分(subR, subG, subB)を算出する。
S604でシステム制御部50は、S603で算出した差分(subR, subG, subB)の大きさSが所定の閾値T1よりも大きい(T1<S)か否かを判定する。差分(subR, subG, subB)の大きさSは次の式から算出する。
S=√{(subR)2+(subG)2+(subB)2}
システム制御部50は、差分の大きさSが閾値T1よりも大きい場合にはS605に、閾値T1以下の場合はS606に、それぞれ処理を進める。
S605で、システム制御部50は、処理対象画素と比較画素の差分(subR, subG, subB)を、システムメモリ126に保存(加算)し、差分合計値sumSを算出する。差分(subR, subG, subB)の保存形式の例を図8(a)に示す。本実施形態では、差分の大きさSが閾値T1より大きい場合に、図8(a)に示すように、差分(subR, subG, subB)を処理対象画素が属するブロックごとに合計し、差分合計値sumSを得る。
なお、ここでのブロックとは入力画像の分割領域を指し、図7(a)は、入力画像700を水平方向8×垂直方向8に64分割した例を示している。このように、入力画像の部分領域ごとに、その部分領域に含まれる画素に対して算出された差分(subR, subG, subB)を、各ブロックで合計し、ブロックを代表する差分値(ブロック差分値)とする。また、差分(subR, subG, subB)を加算するごとに、差分合計値sumSに対応付けられたカウント値CountSを1加算する。従って、カウント値CountSはブロック差分値の算出に用いられた差分値の数を示す。
なお、S604、S605において、差分の大きさSが閾値T1より大きい場合だけ、差分(subR, subG, subB)を合計する理由は、光源色の特徴を示す度合が大きいと思われる差分値だけを抽出するためである。これについて図7(b)、図9を用いてより具体的に説明する。
図7(b)は鏡面反射を含む被写体の画像と、処理対象画素706および比較画素707〜709とを示している。ここで、輝度の高い比較画素707、709は鏡面反射成分を比較的多く含み、処理対象画素706および比較画素708は、ほぼ拡散反射成分のみからなる画素であるとする。
図9(a)は、画素が含む鏡面反射成分と拡散反射成分との関係の例をRGB色空間で模式的に示している。RGB空間において、ある画素のRGB値は原点からRGB値に対応する座標へのベクトルで表すことができる。ベクトル901はRGB値が物体色(拡散反射成分)のみからなる場合を、ベクトル902は、RGB値が物体色(拡散反射成分)と光源色(鏡面反射成分)とからなる場合を示すものとする。この場合、得たい光源色(鏡面反射成分)のRGB値を示すベクトル903は、ベクトル902と901との差分ベクトルとして求めることができる。なお、ベクトルの始点はいずれも座標原点であるため、実際には座標間の差として求まるRGB値が光源のRGB値となる。従って、物体色のみからなる画素のRGB値と、物体色と光源色からなる画素のRGB値との差分を、光源色のRGB値として得ることができる。図7(b)の例では、処理対象画素706と、比較画素707または709とのRGB値の差分が、光源色のRGB値の推定値として求められる。
一方、図7(b)における処理対象画素706と比較画素708はどちらも拡散反射成分が支配的であるため、これら画素のRGB値は図9(a)の例ではベクトル901に近い。例えば、図9(b)において、処理対象画素706と比較画素708のRGB値がそれぞれベクトル911、912であるとすると、RGB値の差分は非常に小さい値となる。図示しないが、同様に比較画素709と709とはどちらも拡散反射成分と鏡面反射成分を持っており、RGB値はいずれもベクトル902と似たベクトルで表されるため、やはりRGB値の差分は非常に小さい値となる。
比較画素707のRGB値が図9(b)のベクトル913で表されるとすると、処理対象画素706のRGB値に対応するベクトル911と、比較画素707のRGB値に対応するベクトル913の差分は大きくなる。この差分は光源色のRGB値に近いベクトルであるため、抽出したい差分である。
このように、画素のRGB値の差分の大きさSが小さい場合は、両者が類似した反射成分を持つ場合が多いと考えられ、差分値における光源の特性の寄与は少ないと考えられるため、本実施形態では光源色の推定には使用しない。このため前述のように閾値T1を設け、差分の大きさSが閾値T1より大きい場合だけ、差分(subR, subG, subB)をシステムメモリ126で合計し、差分合計値sumS(R, G, B)を求めている。
システム制御部50は、差分合計値sumSを64個のブロックのそれぞれについて算出する。また、ブロック1の差分合計値をsumS1(R1, G1, B1)、ブロック2の差分合計値をsumS2(R2, G2, B2)、・・・、ブロック64の差分合計値をsumS64(R64, G64, B64)とする。また、差分合計値sumSに差分を加算した際、システム制御部50は差分カウント値countSに1を加算する。ブロックごとの差分合計値sumS1〜sumS64と差分カウント値countSを図8に示す。
図6に戻り、S606でシステム制御部50は、全ての比較画素703〜705についてS602〜S605の処理を行ったか確認する。図7に示した通り、本実施形態では1つの処理対象画素702に対して比較画素は703、704、705の3つある。そのため全ての処理対象画素に対して、差分算出(S603)を行い、差分の大きさSが所定の閾値T1よりも大きい場合に、差分(subR, subG, subB)をシステムメモリ126で加算して、差分カウント値に1を加える。
以上説明したS602〜S606の処理を、処理対象画素をラスタスキャンしながら入力画像の全画素に対して行う。
S607までの処理により、入力画像の全画素について差分値の集計が完了すると、システム制御部50は、S608〜S613で8×8=64個のブロックのそれぞれについて平均差分値を算出する。
まずS609でシステム制御部50は、処理対象のブロックの差分カウント値countSを参照し、差分カウント値countSが所定の閾値T2より大きいか判定する。システム制御部50は、差分カウント値countSが閾値T2より大きいブロックは鏡面反射成分を含んでいると判断して処理をS610に進める。またシステム制御部50は、差分カウント値countSが閾値T2以下のブロックについては鏡面反射成分を含んでいないと判断して次のブロックの処理に移る。
S610でシステム制御部50は、平均差分値(blkR, blkG, blkB)を算出する。具体的には、差分合計値sumSの値をRGB成分ごとに差分カウント値countSで除算する。その結果、処理対象ブロックについての平均差分値(blkR, blkG, blkB)が得られる。
S611でシステム制御部50は、S610で算出した処理対象ブロックの平均差分値(blkR, blkG, blkB)を、システムメモリ126内のブロック合計値(sumBlkR,sumBlkG,sumBlkB)に加算する。ブロック合計値は、後述する画像全体の平均差分値を算出するために利用される。
S612でシステム制御部50は、鏡面反射ブロック数blkCountSに1を加算する。鏡面反射ブロック数blkCountSは入力画像を分割した64個のブロックのうち、鏡面反射成分を持つと判断されたブロックの数を示している。
システム制御部50は、8×8=64個の全ブロックに対して、前述のS609〜612の処理を行うと、S614で入力画像全体の平均差分値(aveR, aveG, aveB)を算出する。具体的には、システム制御部50は、ブロック合計値(sumBlkR,sumBlkG,sumBlkB)の各成分を鏡面反射ブロック数blkCountSで除算することによって入力画像全体の平均差分値(aveR, aveG, aveB)を算出する。この、入力画像全体の平均差分値(aveR, aveG, aveB)は、図7を用いて説明したとおり、鏡面反射成分の平均値を示している。
図3に戻り、S305でシステム制御部50は、入力画像が鏡面反射成分を含むか否かを判定する。ここでは、前述の鏡面反射ブロック数blkCountSを参照し、鏡面反射ブロック数blkCountSが所定の閾値以上の場合に、入力画像が鏡面反射成分を含むと判定するものとする。システム制御部50は、入力画像が鏡面反射成分を含むと判定した場合はS306に、鏡面反射成分を含まないと判定した場合はS307に、それぞれ処理を進める。
S306で第2の算出手段としてのシステム制御部50は、鏡面反射成分に基づきホワイトバランスゲイン(第2のホワイトバランスゲイン)を算出する。ここでは、GのホワイトバランスゲインsG-Gainを所定の固定値とすると、RとBのホワイトバランスゲインsR-Gain, sB-Gainを、以下の式によって算出する。
sR-Gain = (aveG / aveR) * sG-gain
sB-Gain = (aveG / aveB) * sG-gain
S307でシステム制御部50は、ホワイトバランスゲインに、予め不揮発性メモリ124に用意した太陽光のホワイトバランスゲインを設定する。
pG-Gain = 太陽光Gゲイン
pR-Gain = 太陽光Rゲイン
pB-Gain = 太陽光Bゲイン
S308で混合手段としてのシステム制御部50は、S303で算出した白抽出信頼度に基づいて、ホワイトバランスゲインのMIX率を算出する。ホワイトバランスゲインのMIX率とは、白抽出に基づくホワイトバランスゲインと、他の情報に基づくホワイトバランスゲインとを混合する割合を示している。本実施形態では、ホワイトバランスゲインMIX率に、S303で算出した白抽出信頼度(0〜1)を設定する。例えば、前述の白抽出信頼度が0.8の場合、ホワイトバランスゲインMIX率を0.8にする。
S309でシステム制御部50は、S308で算出したホワイトバランスゲインMIX率に基づき、白抽出結果に基づくホワイトバランスゲインと他の情報に基づくホワイトバランスゲインを混合する。ここで、他の情報に基づくホワイトバランスゲインは、鏡面反射に基づくホワイトバランスゲインもしくは、太陽光に基づくホワイトバランスゲインである。
具体的には、S305で入力画像が鏡面反射成分を含むと判定された場合、システム制御部50は、白抽出に基づくホワイトバランスゲイン(wR-Gain,wG-Gain,wB-Gain)と、鏡面反射に基づくホワイトバランスゲイン(sR-Gain,sG-Gain,sB-Gain)とを混合する。式で表すと以下のように加重加算して、第3のホワイトバランスゲインとしての最終的なホワイトバランスゲイン(R-Gain,G-gain,B-Gain)を算出する。
R-Gain = MIX率 × wR-Gain + (1−MIX率) × sR-Gain
G-Gain = MIX率 × wG-Gain + (1−MIX率) × sG-Gain
B-Gain = MIX率 × wB-Gain + (1−MIX率) × sB-Gain
一方、S305で入力画像が鏡面反射成分を含まないと判定された場合、システム制御部50は、白抽出に基づくホワイトバランスゲイン(wR-Gain,wG-Gain,wB-Gain)と太陽光に基づくホワイトバランスゲイン(pR-Gain,pG-Gain,pB-Gain)とを混合する。式で表すと以下のように加重加算して、第3のホワイトバランスゲインとしての最終的なホワイトバランスゲイン(R-Gain,G-Gain,B-Gain)を算出する。
R-Gain = MIX率 × wR-Gain + (1−MIX率) × pR-Gain
G-Gain = MIX率 × wG-Gain + (1−MIX率) × pG-Gain
B-Gain = MIX率 × wB-Gain + (1−MIX率) × pB-Gain
なお、Gに対するホワイトバランスゲインが固定値「1」である場合(すなわち、G成分は増減させない場合)には、上述の説明におけるG成分についてのホワイトバランスゲイン算出は不要である。
S310でシステム制御部50は、算出したホワイトバランスゲインを、WB増幅部201(図2)に設定する。WB増幅部201は設定されたホワイトバランスゲインに基づき入力RGB値の増幅処理を行う。
以上、説明したように、本実施形態では、画像から抽出した白画素に基づき算出したホワイトバランスゲインと、画像の鏡面反射成分に基づき算出したホワイトバランスゲインとを求める。そして、白画素の抽出信頼度に応じて、2つのホワイトバランスゲインを混合して最終的なホワイトバランスゲインを算出する。
そのため、白画素の抽出信頼度が低くなる場合であっても、入力画像が鏡面反射成分を含む場合には、鏡面反射成分に基づくホワイトバランスゲインを考慮することにより、ホワイトバランスゲインの精度を向上させることができる。
なお、本実施形態では、白(無彩色)と判定した画素の数、白と判定した画素値の分布の広がり、白と誤判定しやすい色を有する画素の割合という3つの条件のそれぞれで信頼度を求め、3つの信頼度の積を最終的な白抽出信頼度とした。しかし、他の方法で白抽出の信頼度を求めてもよい。例えば、3つの信頼度の1つだけを最終的な白抽出信頼度としてもよいし、3つのうち最も高い信頼度を採用してもよい。また、積算に限らず、加算など、他の演算を用いてもよい。
また、他の情報を用いて白抽出信頼度を算出してもよい。例えば、被写体の明るさ情報に基づき白抽出の信頼度を算出することもできる。例えば、被写体の明るさが非常に明るい場合、屋外の撮影で得られた画像と判断し、図4(a)に示した白抽出範囲401を図4(b)の407に示すように、太陽光に対応した非常に狭い範囲とする。白抽出範囲を407のように非常に狭くした場合は、白として抽出される画素値の範囲が狭く、白抽出が誤っている可能性は低くなる。そこで、画像の平均輝度や、顔のような主被写体の輝度が十分高いと判定される場合は高く、暗い場合は低くなる白抽出信頼度を算出してもよい。
また、本実施形態では、入力画像を水平,垂直の両方向に8分割して64個のブロックに分割する例について説明したが、ブロックの分割方法や分割数に制限はない。例えば64以上のブロックに分割しても、画像全体を1つのブロックとして扱ってもよい。また、ブロックの大きさも同一としなくてもよい。
また、本実施形態は、CxCy色空間の画像信号を用いて白抽出を行ったが、他の色空間の画像信号を用いてもよく、例えばL*a*b*色空間など別の色空間の画像信号を用いてもよい。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第1の実施形態は、白抽出の信頼度に基づき、白抽出に基づくホワイトバランスゲインと他の情報に基づくホワイトバランスゲインのMIX率を算出した。これに対して第2の実施形態は、鏡面反射成分の有無の判定についても信頼度を算出し、白抽出の信頼度と鏡面反射成分判定の信頼度の両方に基づきホワイトバランスゲインのMIX率を算出することを特徴とする。
本実施形態においても第1の実施形態で説明したデジタルカメラ100において実施可能であるため、デジタルカメラ100の構成についての説明は省略し、本実施形態に特有な光源色の推定処理について、図10のフローチャートを用いて説明する。
図10においてS301〜S303は第1の実施形態で説明した図3の同符号の処理と同様の処理であるため、詳細な説明は省略する。
システム制御部50は、白抽出に基づくホワイトバランスゲインを算出し(S301,302)、白抽出の信頼度を算出する(S303)。
続くS1001でシステム制御部50は、鏡面反射成分および輪郭信号成分を抽出する。鏡面反射成分および輪郭信号成分の抽出処理の詳細を、図11のフローチャートに従って説明する。
図11において、S601〜606は第1の実施形態の図6の同符号の処理と同様であるため詳細な説明は省略する。システム制御部50は、入力画像全画素に対してラスタスキャンし、処理対象画素と比較画素の差分を計算し、差分の大きさSが閾値T1以上の差分を、ブロックごとに、かつRGB成分単位で差分値sumSに加算する。
S1101でシステム制御部50は、処理対象画素の位置に対応する輪郭信号の画素値を画像メモリ106から取得し、所定の閾値T3と比較する。輪郭信号の画素値が閾値T3よりも大きい場合、システム制御部50は処理対象画素が輪郭画素であると判定し、処理をS1102に進める。一方、輪郭信号の画素値が閾値T3以下の場合、システム制御部50は処理対象画素が輪郭画素ではないと判定し、処理をS607に進める。
S1102でシステム制御部50は、輪郭信号の画素値をブロックごとに加算し、ブロックごとの輪郭合計値sumEを算出する。また、ブロックごとの輪郭カウント値countEに1を加える。ブロックごとの輪郭合計値sumEおよび輪郭カウント値countEの例を図8(b)に示す。
システム制御部50はS601からS607の処理を全画素に対して行い、図8(b)に示す情報(差分合計値、差分カウント値、輪郭合計値、輪郭カウント値)を得る。
S608からS612においてシステム制御部50は、第1の実施形態(図6の同符号の処理)と同様にブロック単位で処理を行い、鏡面反射成分を持つブロックの平均差分値(blkR, blkG, blkB)を算出する。
S1103でシステム制御部50は、ブロック平均差分値(blkR, blkG, blkB)の最大値、最小値を算出する。具体的には、システム制御部50は、まずブロック平均差分値(blkR, blkG, blkB)をCxCy色空間の値(blkCx,blkCy)に変換する。そしてシステム制御部50はblkCx,blkCyを、Cx,Cy方向それぞれの最大値Cx_maxS, Cy_maxS、最小値Cx_minS, Cy_minSと比較する。
ブロック平均差分値(blkCx,blkCy)の成分ごとに、最大値よりも大きいか、もしくは最小値よりも小さい場合に、Cx_maxS, Cy_maxS, Cx_minS, Cy_minSの値を更新する。例えばCx_maxS=80, Cy_maxS = 80, Cx_minS = 20, Cy_minS = 20とする。この場合、処理対象ブロックのブロック平均差分値(blkCx, blkCy) = (90, 60)であれば、システム制御部50はCx_maxSを90に更新する。
S1104でシステム制御部50は、処理対象ブロックのブロック輪郭カウント値countEが閾値T4よりも大きいか判定し、閾値T4よりも大きい場合はS1105で輪郭ブロック数blkCountEに1を加算する。一方、ブロック輪郭カウント値countEが閾値T4以下ならば、システム制御部50は次のブロックの処理に移る。
システム制御部50は、S608とS613の間の処理を全ブロックに対して実行し、画像全体に含まれる輪郭ブロック数blkCountEを得る。また、システム制御部50は、第1の実施形態と同様に、鏡面反射ブロック数blkCountSと鏡面反射ブロックの合計値(sumBlkR,sumBlkG,sumBlkB)を得る。
S614でシステム制御部50は、鏡面反射ブロックの合計値(sumBlkR,sumBlkG,sumBlkB)の各成分を鏡面反射ブロック数blkCountSで除算し、全ブロックの平均差分値(aveR, aveG, aveB)を算出する。
S1106でシステム制御部50は、全ブロック数(8×8=64ブロック)に対する鏡面反射ブロック数blkCountSの割合を算出する。具体的には下記の式で算出する。
鏡面反射ブロック割合 = blkCountS / 64
S1107でシステム制御部50は、全ブロック数(8×8=64ブロック)に対する輪郭ブロック数blkCountEの割合を算出する。具体的には、下記の式で算出する。
輪郭ブロック割合 = blkCountE / 64
このようにして、鏡面反射成分を含むと判定されたブロック数、鏡面反射成分を含むと判定されたブロックの割合、輪郭を含むと判定されたブロックの割合、鏡面反射成分の色(鏡面反射ブロックの平均差分値)、鏡面反射成分の最大値、最小値を得る。
図10に戻り、S305でシステム制御部50は、入力画像が鏡面反射成分を含むか否かを判定する。ここでは、システム制御部50は、鏡面反射ブロック数blkCountSが所定の閾値以上である場合に入力画像が鏡面反射成分を含むと判定する。システム制御部50は、入力画像が鏡面反射成分を含むと判定した場合は処理をS306に進め、入力画像が鏡面反射成分を含まないと判定した場合は処理をS307に進める。
S306でシステム制御部50は、鏡面反射成分に基づきホワイトバランスゲイン(第2のホワイトバランスゲイン)を算出する。一方、S305〜306の処理は第1の実施形態の同符号の処理と同様である。
S1002で第2の信頼度算出手段としてのシステム制御部50は、抽出された鏡面反射成分の信頼度(鏡面反射信頼度)を算出する。本実施形態における鏡面反射信頼度の算出方法について図12を用いて説明する。本実施形態においては、まず鏡面反射信頼度1〜3を算出し、鏡面反射信頼度1〜3の積を最終的な鏡面反射信頼度とする。
(鏡面反射信頼度1の算出)
第1の鏡面反射信頼度としての鏡面反射信頼度1は、画像全体のブロック数に対する鏡面反射ブロックの割合、すなわち、画像全体のうち、鏡面反射成分が存在すると判定された領域の割合に依存する。例えば図12(a)に示す、鏡面反射ブロックの割合と鏡面反射信頼度1との関係に基づき、鏡面反射信頼度1を算出する。本実施形態では、鏡面反射ブロックの割合が0〜0.5までは鏡面反射信頼度1が線形的に0〜1.0まで増加し、その後は1.0を維持するものとする。システム制御部50は、例えば図12(a)に示す鏡面反射ブロックの割合と鏡面反射信頼度1との関係をテーブルや関数等の形式で保存しておき、図11のS1106で算出した鏡面反射ブロック割合を用いて鏡面反射信頼度1を算出することができる。
(鏡面反射信頼度2の算出)
第2の鏡面反射信頼度としての鏡面反射信頼度2は、画像全体のブロック数に対する輪郭ブロックの割合、すなわち、画像全体のうち、輪郭が含まれると判定された領域の割合に依存する。例えば図12(b)に示す、輪郭ブロックの割合と鏡面反射信頼度2との関係に基づき、鏡面反射信頼度2を算出する。本実施形態では、輪郭ブロックの割合が0の時に鏡面反射信頼度2が1.0であり、輪郭ブロックの割合が増加するに従って鏡面反射信頼度2は線形に減少し、下限値(ここでは0.2)に達すると下限値を維持するものとする。システム制御部50は、例えば図12(b)に示す輪郭ブロックの割合と鏡面反射信頼度2との関係をテーブルや関数等の形式で保存しておき、図11のS1107で算出した輪郭ブロック割合を用いて鏡面反射信頼度2を算出することができる。輪郭が多い画像は、処理対象画素と比較画素の差分が大きくなる。これは、輪郭が多い画像は被写体が模様を有する場合が多く、差分が大きくなりやすいが、本来抽出したい鏡面反射に起因する差分との区別がつかないため、輪郭が多い画像に関しては、鏡面反射信頼度2を低下させる。
(鏡面反射信頼度3の算出)
第3の鏡面反射信頼度としての鏡面反射信頼度3は、鏡面反射成分の色の分布の広がり度に基づき算出する。具体的には、図11のS1103で算出した鏡面反射ブロックの色の最大値(Cx_maxS, Cy_maxS)、最小値(Cx_minS,Cy_minS)から鏡面反射に基づく色の広がり度を算出する。システム制御部50は、鏡面反射ブロックの色の最大値と最小値の差分から鏡面反射広がり度を
鏡面反射Cx広がり度 = (Cx_maxS - Cx_minS) / Cx_base
鏡面反射Cy広がり度 = (Cy_maxS - Cy_minS) / Cy_base
として算出する。ここで、Cx_baseおよびCy_baseは図4(a)に示すように、白抽出範囲401で取り得る最大幅を示す。
そして、システム制御部50は、算出した鏡面反射のCx広がり度とCy広がり度とを加算し、鏡面反射広がり度とする。そして、例えば図13(c)に示す鏡面反射広がり度と鏡面反射信頼度3との関係から、鏡面反射信頼度3を算出する。本実施形態では、本実施形態では、鏡面反射広がり度が0の時に鏡面反射信頼度2が1.0であり、鏡面反射広がり度が増加するに従って鏡面反射信頼度3は線形に減少し、下限値(ここでは0.2)に達すると下限値を維持するものとする。
鏡面反射成分の色の最大値と最小値の差が大きい場合、鏡面反射成分の色のばらつきが大きく、安定したデータが抽出できていないことを意味するため、鏡面反射広がり度が高い場合は鏡面反射信頼度を低下させている。
上述のようにして鏡面反射信頼度1〜3を算出した後、システム制御部50は、以下のように鏡面反射信頼度1〜3の積によって最終的な鏡面反射信頼度を算出する。
鏡面反射信頼度=鏡面反射信頼度1×鏡面反射信頼度2×鏡面反射信頼度3
図10に戻り、S1003でシステム制御部50は、鏡面反射信頼度が所定の閾値(例えば0.4)以上か判定する。システム制御部50は、鏡面反射信頼度が閾値以上と判定されれば処理をS1004に、閾値未満と判定されれば処理をS307に、それぞれ進める。
S1004で混合手段としてのシステム制御部50は、白抽出信頼度および鏡面反射信頼度から、ホワイトバランスゲインのMIX率1を算出する。MIX率1を式で表すと以下のようになる。
MIX率1 = 白抽出信頼度 /(白抽出信頼度+鏡面反射信頼度)
つまり、MIX率1は、白抽出信頼度と鏡面反射信頼度の合計に対する白抽出信頼度の割合に応じた重みである。また、(1−MIX率)は、白抽出信頼度と鏡面反射信頼度の合計に対する鏡面反射信頼度の割合に応じた重みである。
S1005でシステム制御部50は、MIX率1に基づき、白抽出に基づくホワイトバランスゲイン(wR-Gain, wG-Gain, wB-Gain)と、鏡面反射に基づくホワイトバランスゲイン(sR-Gain, sG-Gain, sB-Gain)の結果を混合し、最終的なホワイトバランスゲインを算出する。
最終的なホワイトバランスの算出式を以下に示す。
R-Gain = wR-Gain × MIX率1 + sR-Gain × (1− MIX率1)
G-Gain = wG-Gain × MIX率1 + sG-Gain × (1− MIX率1)
B-Gain = wB-Gain × MIX率1 + sB-Gain × (1− MIX率1)
なお、Gに対するホワイトバランスゲインが固定値「1」である場合(すなわち、G成分は増減させない場合)には、G-Gainの算出は不要である。
一方、S307でシステム制御部50は、ホワイトバランスゲイン値に、予め不揮発性メモリ124に用意した太陽光のホワイトバランスゲイン値を設定する。この処理は第1の実施形態の同符号と同じである。
S1006でシステム制御部50は、白抽出信頼度からホワイトバランスゲインのMIX率2を算出する。なお、MIX率2には、白抽出信頼度の値を設定する(MIX率2=白抽出信頼度)。
S1007でシステム制御部50は、白抽出に基づくホワイトバランスゲイン(wR-Gain, wG-Gain, wB-Gain)と太陽光のゲイン(pR-Gain, pG-Gain, pB-Gain)の混合処理を行う。
最終的なホワイトバランスの算出式を以下に示す。
R-Gain = wR-Gain × MIX率2 + pR-Gain × (1− MIX率2)
G-Gain = wG-Gain × MIX率2 + pG-Gain × (1− MIX率2)
B-Gain = wB-Gain × MIX率2 + pB-Gain × (1− MIX率2)
なお、ここでも、Gに対するホワイトバランスゲインが固定値「1」である場合(すなわち、G成分は増減させない場合)には、G-Gainの算出は不要である。
S1008でシステム制御部50は、算出した最終ホワイトバランスゲインを、WB増幅部201(図2)に設定する。WB増幅部201は設定されたホワイトバランスゲインに基づき入力RGB値の増幅処理を行う。
以上説明したように、本実施形態では、第1の実施形態の構成に加えて、鏡面反射の信頼度を算出し、白抽出の信頼度と鏡面反射の信頼度の二つを用いて、ホワイトバランスゲインのMIX率を算出する構成とした。
このような構成をとることで、信頼性の高いホワイトバランスゲインを重視したホワイトバランスゲインが生成されるため、さらに精度の高いホワイトバランス制御が可能となる。
なお、本実施形態では、2つのホワイトバランスゲインのMIX率を算出し、2つのホワイトバランスゲインを混合する構成について説明したが、2つのゲインの値を必ずしも混合する構成をとる必要はない。例えば、白抽出信頼度と鏡面反射信頼度を比較し、信頼度が高い方のホワイトバランスゲインを最終ホワイトバランスゲインに設定する構成をとることも可能である。
また、本実施形態では、2つのホワイトバランスゲインを混合する構成について説明したが、太陽光に基づくホワイトバランスゲインも含めて3つ以上のホワイトバランスゲインを混合する構成をとってもかまわない。例えば、白抽出信頼度と鏡面反射信頼度の合計値が1に満たない時は太陽光に基づくホワイトバランスゲインも混合する構成をとることも可能である。この時の最終ホワイトバランスゲインは、α=1-(白抽出信頼度+鏡面反射信頼度)とすると、
R-Gain = 白抽出信頼度× wR-Gain + 鏡面反射信頼度× sR-Gain + α× pR-Gain
G-Gain = 白抽出信頼度× wG-Gain + 鏡面反射信頼度× sG-Gain + α× pG-Gain
B-Gain = 白抽出信頼度× wB-Gain + 鏡面反射信頼度× sB-Gain + α× pB-Gain
で表される。
また、本実施形態では、鏡面反射信頼度が低い場合に鏡面反射に基づくホワイトバランスゲインの代わりに太陽光のホワイトバランスゲインを混合する構成としたが、他のホワイトバランスゲインを混合してもよい。例えば、入力画像が全体的に赤を帯びている場合は白熱灯のホワイトバランスゲイン、青を帯びている場合は日陰のホワイトバランスゲインを鏡面反射に基づくホワイトバランスゲインの代わりに混合してもよい。
また、本実施形態では、鏡面反射ブロックの割合、輪郭ブロックの割合、鏡面反射成分の色の広がり度に基づいて鏡面反射信頼度を算出したが、他の方法を用いて算出してもよい。具体的には、鏡面反射の量、輪郭特徴、鏡面反射の色特徴の何れかの基づき信頼度を算出する構成であれば、どのような方法で鏡面反射の信頼度を算出してもよい。例えば、鏡面反射成分の量だけで信頼度を算出してもよい。
また、本実施形態では、鏡面反射成分の色の広がり度を、鏡面反射成分の色の最大値と最小値の差分に基づき決定したが、鏡面反射成分の色の分散値から算出してもよい。この場合、分散値が大きければ鏡面反射成分がばらついていると見なして信頼度を低くする。
また、本実施形態では、輪郭ブロックの数を直接用いて、鏡面反射信頼度を算出したが、輪郭情報を鏡面反射ブロックか否かの判定に利用してもよい。この場合、輪郭ブロックと判断したブロックは、鏡面反射ブロックと見なさないように制御する。例えば、図11のS609の判定において、鏡面反射ブロックとして加算する条件として「差分カウント値countSが閾値T2より大きい」だけでなく「輪郭カウント値countEが閾値T5より少ない」を追加する。これにより、輪郭ブロックが多い場合は、鏡面反射ブロックが少なくなるため、結果的に輪郭ブロックの数を鏡面反射信頼度に反映させることが可能となる。
また、鏡面反射の量、輪郭特徴、鏡面反射の色特徴以外の情報として、被写体認識を行い被写体認識結果によって鏡面反射信頼度を決定してもよい。
図11に示す鏡面反射信頼度算出処理において、被写体認識処理を実行する。ここでは、説明の簡略化のため、被写体認識処理では鏡面反射成分を持たない青空を認識するものとする。図13は青空を含む被写体画像を8×8個の64ブロックに分割している様子を示している。
システム制御部50は例えば画像処理部105を用いてブロック単位で青空評価値を算出し、青空のブロックであるか否かを判定する。青空評価値の算出は、画像中の位置と色によって算出する。例えば、画像の上部にある程、また、所定の色相(青色)の彩度が高いブロックほど青空評価値を高くする。そして、システム制御部50は青空評価値が所定の閾値を超えたブロックを青空ブロックと判定し、その総数を求める。図13において斜線が付加されたブロック1301は、青空ブロックと判定されたブロックである。
青空ブロックの画像全体に対する割合(青空ブロックの総数/64)が所定の閾値(例えば0.7)を超える場合は鏡面反射している被写体の割合が少ないと考えられる。そのため、システム制御部50は、1.0未満の所定値(一定値または、青空ブロックの割合の増加に応じて減少する値)を最終的な鏡面反射信頼度として用いる。
このように、鏡面反射を持たない青空中心の被写体の場合は、鏡面反射の信頼度を下げ、白抽出や太陽光に基づくホワイトバランスゲインを重視するように制御する。これにより、より精度良く、鏡面反射の信頼度を求めることが可能である。
なお、被写体認識結果のみによって鏡面反射信頼度を求めてもよいが、第2の実施形態の構成のように被写体認識結果と他の情報と組み合わせて鏡面反射信頼度を算出してもよい。例えば被写体認識の結果、青空ブロックと認識されたブロックは、鏡面反射ブロックとみなさないように制御することができる。
例えば、図11のS609の判定において、鏡面反射ブロックとして加算する条件として「差分カウント値countSが閾値T2より大きい」だけでなく「青空ブロックでない」を追加する。これにより、鏡面反射ブロックに青空ブロックがある場合には鏡面反射ブロック数blkCountSが小さくなるため、青空ブロックが多い場合は、結果的に鏡面反射信頼度が低くなる。
なお、ここでは被写体認識として青空を認識する例を元に説明したが、被写体認識情報によって鏡面反射信頼度を算出する構成であれば、どのような被写体を認識してもかまわない。例えば、被写体認識処理により布や金属、人物の顔などを認識し、鏡面反射が生じにくい布の場合は、鏡面反射信頼度を低くし、鏡面反射が生じやすい金属や人物の顔の場合は、鏡面反射信頼度を高くしてもよい。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (10)

  1. 入力画像から、所定の色空間において予め定められた白抽出範囲に含まれる色を有する画素を抽出する白抽出手段と、
    前記抽出された画素の値に基づいて、前記入力画像に対する第1のホワイトバランスゲインを算出する第1の算出手段と、
    前記入力画像に含まれる鏡面反射成分を抽出する鏡面反射成分抽出手段と、
    前記抽出された鏡面反射成分に基づいて、前記入力画像に対する第2のホワイトバランスゲインを算出する第2の算出手段と、
    前記白抽出手段による画素の抽出の信頼度である白抽出信頼度を、予め定めた条件に基づいて算出する第1の信頼度算出手段と、
    前記第1のホワイトバランスゲインと、前記第2のホワイトバランスゲインとを、前記白抽出信頼度が高いほど前記第1のホワイトバランスゲインに大きな重みを与えて加重加算し、前記入力画像に用いる第3のホワイトバランスゲインを算出する混合手段と、
    を有することを特徴とする画像処理装置。
  2. 前記鏡面反射成分抽出手段により抽出された鏡面反射成分に基づいて、前記入力画像が鏡面反射成分を有するか否かを判定する判定手段をさらに有し、
    前記混合手段は、前記判定手段によって前記入力画像が鏡面反射成分を有さないと判定された場合、前記第2のホワイトバランスゲインの代わりに予め用意されたホワイトバランスゲインを用いて前記第3のホワイトバランスゲインを算出することを特徴とする請求項1記載の画像処理装置。
  3. 前記第1の信頼度算出手段が、前記白抽出信頼度を、
    前記入力画像の画素数に対する前記白抽出手段により抽出された画素の数の割合が大きいほど高い第1の白抽出信頼度と、
    前記白抽出手段により抽出された画素の値の分布の広がりが大きいほど低い第2の白抽出信頼度と、
    前記白抽出手段により抽出された画素の数に対する、入力画像に含まれる予め定められた白と誤判定しやすい色を有する画素の数の割合が大きいほど低い第3の白抽出信頼度と、
    の少なくとも1つから算出することを特徴とする請求項1または請求項2に記載の画像処理装置。
  4. 前記鏡面反射成分抽出手段により抽出された鏡面反射成分の信頼度を算出する第2の信頼度算出手段をさらに有し、
    前記混合手段は、
    前記鏡面反射成分の信頼度が予め定めた閾値以上の場合に、前記白抽出信頼度と前記鏡面反射成分の信頼度の合計に対する前記白抽出信頼度の割合に応じた重みを前記第1のホワイトバランスゲインに与え、前記白抽出信頼度と前記鏡面反射成分の信頼度の合計に対する前記鏡面反射成分の信頼度の割合に応じた重みを前記第2のホワイトバランスゲインに与えて加重加算し、前記第3のホワイトバランスゲインを算出する、
    ことを特徴とする請求項1乃至請求項3のいずれか1項に記載の画像処理装置。
  5. 前記鏡面反射成分抽出手段により抽出された鏡面反射成分の信頼度を算出する第2の信頼度算出手段をさらに有し、
    前記混合手段は、
    前記鏡面反射成分の信頼度が予め定めた閾値以上の場合に、前記鏡面反射成分の信頼度が前記白抽出信頼度より高い場合には前記第2のホワイトバランスゲインを前記第3のホワイトバランスゲインとし、前記白抽出信頼度が前記鏡面反射成分の信頼度より高い場合には前記第1のホワイトバランスゲインを前記第3のホワイトバランスゲインとする、
    ことを特徴とする請求項1乃至請求項3のいずれか1項に記載の画像処理装置。
  6. 前記混合手段は、
    前記鏡面反射成分の信頼度が予め定めた閾値未満の場合に、前記第1のホワイトバランスゲインと、予め用意されたホワイトバランスゲインとを、前記白抽出信頼度が高いほど前記第1のホワイトバランスゲインに大きな重みを与えて加重加算して前記第3のホワイトバランスゲインを算出する、
    ことを特徴とする請求項4または請求項5に記載の画像処理装置。
  7. 前記第2の信頼度算出手段が、前記鏡面反射成分の信頼度を、
    前記入力画像のうち、鏡面反射成分が存在すると判定された領域の割合が大きいほど高い第1の鏡面反射信頼度と、
    前記入力画像のうち、輪郭が含まれると判定された領域の割合が大きいほど低い第2の鏡面反射信頼度と、
    前記鏡面反射成分抽出手段により抽出された鏡面反射成分の値の分布の広がりが大きいほど低い第3の鏡面反射信頼度と、
    の少なくとも1つから算出することを特徴とする請求項4乃至請求項6のいずれか1項に記載の画像処理装置。
  8. 入力画像から、所定の色空間において予め定められた白抽出範囲に含まれる色を有する画素を抽出する白抽出手段と、
    前記入力画像に含まれる鏡面反射成分を抽出する鏡面反射成分抽出手段と、
    前記白抽出手段による抽出結果と前記鏡面反射成分抽出手段による抽出結果のうち、信頼度が高い方の抽出結果に基づいて、入力画像に用いるホワイトバランスゲインを算出する算出手段と、
    を有することを特徴とする画像処理装置。
  9. 画像処理方法であって、
    入力画像から、所定の色空間において予め定められた白抽出範囲に含まれる色を有する画素を抽出する白抽出ステップと、
    前記抽出された画素の値に基づいて、前記入力画像に対する第1のホワイトバランスゲインを算出する第1の算出ステップと、
    前記入力画像に含まれる鏡面反射成分を抽出する鏡面反射成分抽出ステップと、
    前記抽出された鏡面反射成分に基づいて、前記入力画像に対する第2のホワイトバランスゲインを算出する第2の算出ステップと、
    前記白抽出ステップにおける画素の抽出の信頼度である白抽出信頼度を、予め定めた条件に基づいて算出する第1の信頼度算出ステップと、
    前記第1のホワイトバランスゲインと、前記第2のホワイトバランスゲインとを、前記白抽出信頼度が高いほど前記第1のホワイトバランスゲインに大きな重みを与えて加重加算し、前記入力画像に用いる第3のホワイトバランスゲインを算出する混合ステップと、
    を有することを特徴とする画像処理方法。
  10. 画像処理方法であって、
    入力画像から、所定の色空間において予め定められた白抽出範囲に含まれる色を有する画素を抽出する白抽出ステップと、
    前記入力画像に含まれる鏡面反射成分を抽出する鏡面反射成分抽出ステップと、
    前記白抽出ステップでの抽出結果と前記鏡面反射成分抽出ステップでの抽出結果のうち、信頼度が高い方の抽出結果に基づいて、入力画像に用いるホワイトバランスゲインを算出する算出ステップと、
    を有することを特徴とする画像処理方法。
JP2012141466A 2012-06-22 2012-06-22 画像処理装置および画像処理方法 Expired - Fee Related JP6006543B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012141466A JP6006543B2 (ja) 2012-06-22 2012-06-22 画像処理装置および画像処理方法
US13/922,525 US8988549B2 (en) 2012-06-22 2013-06-20 Image processing apparatus and control method therefor
US14/629,976 US9338419B2 (en) 2012-06-22 2015-02-24 Image processing apparatus and control method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012141466A JP6006543B2 (ja) 2012-06-22 2012-06-22 画像処理装置および画像処理方法

Publications (3)

Publication Number Publication Date
JP2014007530A JP2014007530A (ja) 2014-01-16
JP2014007530A5 JP2014007530A5 (ja) 2015-07-09
JP6006543B2 true JP6006543B2 (ja) 2016-10-12

Family

ID=49774148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012141466A Expired - Fee Related JP6006543B2 (ja) 2012-06-22 2012-06-22 画像処理装置および画像処理方法

Country Status (2)

Country Link
US (2) US8988549B2 (ja)
JP (1) JP6006543B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6083974B2 (ja) * 2012-04-24 2017-02-22 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP6249638B2 (ja) * 2013-05-28 2017-12-20 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP6410454B2 (ja) * 2014-04-03 2018-10-24 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
JP6380972B2 (ja) * 2014-05-02 2018-08-29 オリンパス株式会社 画像処理装置および撮像装置
JP6508890B2 (ja) * 2014-07-07 2019-05-08 キヤノン株式会社 画像処理装置、その制御方法、および制御プログラム
EP3043558B1 (en) 2014-12-21 2022-11-02 Production Resource Group, L.L.C. Large-format display systems having color pixels and white pixels
KR20160092125A (ko) * 2015-01-26 2016-08-04 삼성디스플레이 주식회사 표시 장치
US9467632B1 (en) 2015-07-13 2016-10-11 Himax Imaging Limited Dual exposure control circuit and associated method
CN105407340B (zh) * 2015-11-23 2018-02-23 深圳市金立通信设备有限公司 一种白平衡处理方法及终端
JP6727816B2 (ja) * 2016-01-19 2020-07-22 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、画像処理プログラムおよび記憶媒体
JP6700840B2 (ja) 2016-02-18 2020-05-27 キヤノン株式会社 画像処理装置、撮像装置、制御方法及びプログラム
CN107911682B (zh) * 2017-11-28 2020-02-18 Oppo广东移动通信有限公司 图像白平衡处理方法、装置、存储介质和电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2508237B2 (ja) * 1989-02-14 1996-06-19 日本電気株式会社 カラ―画像の光源色の色度測定方法および装置
JPH0564219A (ja) 1991-09-05 1993-03-12 Canon Inc 撮像装置
JP2005286548A (ja) * 2004-03-29 2005-10-13 Seiko Epson Corp 有彩色の撮像対象を表す部分の影響を抑えたカラーバランス調整
JP4447520B2 (ja) * 2005-06-29 2010-04-07 株式会社市川ソフトラボラトリー 画像処理装置および画像処理方法
JP4967445B2 (ja) * 2006-05-11 2012-07-04 ソニー株式会社 撮像装置およびその光源推定装置
US20090147098A1 (en) 2007-12-10 2009-06-11 Omnivision Technologies, Inc. Image sensor apparatus and method for color correction with an illuminant-dependent color correction matrix
JP2010021651A (ja) * 2008-07-08 2010-01-28 Nikon Corp 環境光推定装置、デジタルカメラ及び環境光推定プログラム
US8503771B2 (en) * 2010-12-20 2013-08-06 Samsung Techwin Co., Ltd. Method and apparatus for estimating light source

Also Published As

Publication number Publication date
US20130342724A1 (en) 2013-12-26
US9338419B2 (en) 2016-05-10
JP2014007530A (ja) 2014-01-16
US20150172617A1 (en) 2015-06-18
US8988549B2 (en) 2015-03-24

Similar Documents

Publication Publication Date Title
JP6006543B2 (ja) 画像処理装置および画像処理方法
US10397486B2 (en) Image capture apparatus and method executed by image capture apparatus
CN106464816B (zh) 图像处理设备、摄像设备和图像处理方法
US10861136B2 (en) Image processing apparatus, image processing method, and storage medium
US9129188B2 (en) Image processing apparatus and control method thereof
US9961319B2 (en) Image processing apparatus and control method thereof
US11889202B2 (en) Image processing apparatus, image processing method, and storage medium
JP6904788B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP6410454B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2015005927A (ja) 画像処理装置およびその制御方法
JP2015211233A (ja) 画像処理装置および画像処理装置の制御方法
JP5956844B2 (ja) 画像処理装置およびその制御方法
JP5414216B2 (ja) 撮像装置、その制御方法及びプログラム
JP2018107741A (ja) 画像処理装置、画像処理方法、およびプログラム
JP6450107B2 (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
US11405598B2 (en) Image processing apparatus, image processing method, and storage medium
JP2017126920A (ja) 撮像装置
JP2016213717A (ja) 画像処理装置及び画像処理方法、プログラム、記憶媒体
JP5146223B2 (ja) プログラム、カメラ、画像処理装置および画像の輪郭抽出方法
JP5791454B2 (ja) 撮像装置、及びその制御方法
JP6701299B2 (ja) 画像処理装置および画像処理方法
JP2017182668A (ja) データ処理装置、撮像装置、及びデータ処理方法
JP6624895B2 (ja) 画像処理装置、撮像装置、制御方法及びプログラム
JP2018151766A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2018041203A (ja) 画像処理装置、画像処理方法、及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150522

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150522

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160314

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160812

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160909

R151 Written notification of patent or utility model registration

Ref document number: 6006543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees