説明

オートホワイトバランス装置及びホワイトバランス調整方法

【課題】安定したホワイトバランス調整を行うことができるオートホワイトバランス装置を提供する。
【解決手段】ブロック分割回路110において、親ブロックを子ブロックに分割して、代表値計算回路120において、子ブロックごとに代表値を計算した後、親ブロックの代表色差成分と、各子ブロックの代表色差成分との色差平面上での距離を求めて、その距離が所定の閾値S以下かどうかを判定する。判定の結果、代表値計算回路120は、その距離が閾値S以下の条件を満たす子ブロックを選択し、選択された子ブロックのみを用いて、親ブロックの代表値を再計算する。また、ホワイトバランス評価回路130は、選択されなかった子ブロックの数に応じて親ブロックの信頼度を修正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子スチルカメラやビデオカメラなどに用いられるオートホワイトバランス装置に関する。
【背景技術】
【0002】
ビデオカメラやデジタルスチルカメラでは、白い被写体を白く再現するために、オートホワイトバランス調整が行われている。従来のオートホワイトバランス方式としては、画像全体の平均が無彩色となるように各画素の信号のRGB成分(赤、緑、青の三原色成分)のバランスを調整する方式がよく知られている。しかしながらこの方式では、有彩色が画像の大部分の領域を占めている場合、誤ったホワイトバランス調整を行うことになりやすいという欠点があった。
【0003】
このような誤ったホワイトバランス調整はカラーフェイリアと呼ばれる。このカラーフェイリアを軽減するオートホワイトバランス調整方式として、特許文献1に示される技術が知られている。この技術では、画像を複数のブロックに分割し、各ブロックのRGBの平均値を計算し、その平均値があらかじめ定めた範囲に属しているブロックのみを抽出する。そして、抽出したブロック群のRGBの平均値が無彩色になるように、RGB各成分の調整を行う。
【0004】
また、カラーフェイリアを軽減する別のオートホワイトバランス方式として、特許文献2に示されるものがある。この方式では、ホワイトバランス調整信号のとりうる値の範囲を制限し、過度のホワイトバランス調整が行われることを避けている。
【0005】
ところが、これらの方式は、被写体を照明する光源が限定されている場合には効果が得られたが、想定外の光源で照明される場合や複数種類の光源により同時照明される場合などには十分なホワイトバランス調整を行うことができなかった。
【0006】
そこで、本出願人は、特許文献3にて、改良されたオートホワイトバランス調整装置を提案した。この装置では、画像を複数のブロックに分割し、蛍光灯下で白い対象物を撮影したと判定されるブロック群、太陽光又はタングステン光下で白い対象物を撮影したと判定されるブロック群、画像中で最も明るいブロックに近い色を持つブロック群、をそれぞれ抽出する。そして、それらブロック群についてRGB各成分の平均値を求め、それらをあらかじめ定めた規則に従って混合した値をホワイトバランス調整信号として用いる。この装置では、画像中で最も明るいブロックに近似した色のブロック群のRGBの平均値をホワイトバランス信号に反映させることにより、想定外の光源下や複数種類の光源下でも、適切なホワイトバランス調整を行うことができる。
【0007】
ただ、特許文献3に記載の装置では、色のみに基づき上記各ブロック群を抽出していたため、各ブロック群の平均値を求める際に暗いブロックの値も用いられていた。画像として現れる色には、物体自体の色と物体を照明する光源の色の双方の影響がある。ここで、暗いブロックは光源の色を反映していない可能性が高いので、暗いブロックの情報をオートホワイトバランスの調整信号に反映させることは、誤差の要因となり兼ねない。
【0008】
そこで、本出願人は、特許文献4にて、さらに改良されたオートホワイトバランス調整装置を提案した。この装置では、画像を分割して得られたブロックごとに求めたRGB各成分の平均値をブロックの代表値として、その代表値に基づき、各ブロックの中から最高輝度のブロックを求め、その最高輝度ブロックの輝度に基づき、輝度閾値を求める。そして、全ブロックのうちこの輝度閾値より高い輝度を持つブロックの代表値に基づいて、ホワイトバランス調整を行う。
【0009】
【特許文献1】特開平5−292533号公報
【特許文献2】特開平5−7369号公報
【特許文献3】特開平8−289314号公報
【特許文献4】特開2000−92509号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
上記の方式では、各ブロックのRGB各成分の平均値を単純にブロックの代表値として定め、ホワイトバランス調整を行っている。したがって、例えば、各ブロック内に有彩色のものが存在するときや、ブロック内のRGBの値が一様でない場合、これらの色が混ざり各ブロックの平均値が各ブロックを照らしている光源の色を反映しなくなり、入力された画像に対して適切にホワイトバランスの調整が行えない場合がある。
【0011】
そこで、本発明は、各ブロック内に有彩色のものが存在するときや、ブロック内のRGBの値が一様でない場合であっても、安定したホワイトバランス調整を行うことができるオートホワイトバランス装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明に係るオートホワイトバランス装置は、撮像された画像に対してホワイトバランス調整を行うオートホワイトバランス装置において、入力された画像を複数のブロックに分割するブロック分割手段と、分割したブロックごとにブロック内の各色値に基づき、ブロックを代表する輝度及び色差を含む代表値を計算する代表値計算手段と、各ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うホワイトバランス調整手段と、を備え、前記ブロック分割手段は、入力された画像を複数の親ブロックに分割する親ブロック分割手段と、各親ブロックをさらに複数の子ブロックに分割する子ブロック分割手段と、を含み、前記代表値計算手段は、親ブロック内の各色値に基づき、親ブロックを代表する輝度及び色差を含む代表値を計算する親代表値計算手段と、子ブロック内の各色値に基づき、子ブロックを代表する輝度及び色差を含む代表値を計算する子代表値計算手段と、親代表色差と、その親ブロックに含まれる各子ブロックの子代表色差との比較に基づき、その親ブロックに含まれる子ブロック群の中から、所望の子ブロックをいくつか選択する子ブロック選択手段と、選択された各子ブロックの代表値に基づいて、その親ブロックの代表値を再計算する親代表値再計算手段と、を含み、前記ホワイトバランス調整手段は、再計算された各親ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とする。
【0013】
本発明によれば、子ブロック分割手段が、親ブロックを子ブロックに分割して、子代表値計算手段が、子ブロックごとに代表値を計算した後、子ブロック選択手段が、親ブロックの代表色差と、その親ブロックに含まれる各子ブロックの代表色差とを比較することで、所定の条件を満たす子ブロックを選択し、親代表値再計算手段が、選択された子ブロックのみを用いて、親ブロックの代表値を再計算する。これにより、たとえ各親ブロック内に有彩色のものが存在するときや、親ブロック内のRGBの値が一様でない場合であっても、安定したホワイトバランス調整を行うことができる。
【0014】
本発明に係るオートホワイトバランス装置の1つの態様によれば、オートホワイトバランス装置は、さらに、想定する光源についてそれぞれ、親ブロックごとに、各光源下での白色物体の色差と各親ブロックの代表色差との色差平面上での距離を求めて、これら各距離に基づき前記各光源が前記各親ブロックのシーンを照明している信頼度を推定するブロック信頼度推定手段と、前記子ブロック選択手段で選択された子ブロックの数に基づいて、前記親ブロックの信頼度を修正する信頼度修正手段と、を備え、前記ホワイトバランス調整手段は、再計算された各親ブロックの代表値及び修正された各親ブロックの信頼度に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とする。
【0015】
本発明によれば、信頼度修正手段が、子ブロック選択手段で選択された子ブロックの数に基づいて、親ブロックの信頼度を修正する。これにより、親ブロックと子ブロックとを区別せずに、単純に子ブロックのみを生成して、子ブロックごとに代表値を求めて、各子ブロックの代表値に基づいて、ホワイトバランス調整を行う場合よりも安定したホワイトバランス調整を行うことができる。
【0016】
本発明に係るオートホワイトバランス装置の1つの態様によれば、オートホワイトバランス装置は、さらに、前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割するか否かを決定する子ブロック分割決定手段を備え、子ブロックに分割しないと決定された場合、前記ホワイトバランス調整手段は、前記親代表値計算手段で計算された各親ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とする。
【0017】
本発明によれば、子ブロック分割決定手段が、画像の被写体輝度に基づいて、前記画像を子ブロックに分割すると決定した場合に、各親ブロックをさらに子ブロックに分割して、親ブロックの代表値を再計算する。これにより、画像の被写体輝度に応じて、必要な場合のみ子ブロックの分割処理が行われる。よって、すべての撮影シーンについて、子ブロックを生成して、親ブロックの代表値の再計算を行う処理を実行するよりも、より安定したホワイトバランス調整を実現することができる。
【0018】
本発明に係るオートホワイトバランス装置の1つの態様によれば、前記子ブロック分割決定手段は、前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割すると決定した場合、さらに、前記画像を構成する全親ブロックの代表色差の平均に基づいて、前記画像の光源が所定の光源と推定されるか否かを判定し、所定の光源ではないと推定される場合のみ、前記画像を子ブロックに分割すると最終決定することを特徴とする。
【0019】
本発明によれば、子ブロック分割決定手段は、画像を構成する全親ブロックの代表色差の平均に基づいて、前記画像の光源が所定の光源と推定されるか否かを判定し、所定の光源ではないと推定される場合のみ、前記画像を子ブロックに分割すると最終決定する。これにより、画像を子ブロックに分割して、親ブロックの代表値を再計算すると、逆に適切にホワイトバランスの調整を行うことができない所定の光源の場合には、子ブロックの生成を行わず、ホワイトバランス調整を行う。よって、より様々なシーンにおいて、安定したホワイトバランス調整を行うことができる。
【0020】
本発明に係るオートホワイトバランス装置の1つの態様によれば、前記子ブロック分割決定手段は、前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割すると決定した場合、さらに、前記画像を構成する各親ブロックの代表色差に基づいて、親ブロックごとにその親ブロックの光源が所定の光源と推定されるか否かを判定し、所定の光源ではないと推定される親ブロックのみ、子ブロックに分割すると最終決定することを特徴とする。
【0021】
本発明によれば、子ブロック分割決定手段は、前記画像を構成する各親ブロックの代表色差に基づいて、親ブロックごとにその親ブロックの光源が所定の光源と推定されるか否かを判定し、所定の光源ではないと推定される親ブロックのみ、子ブロックに分割すると最終決定する。これにより、すべての親ブロックについて子ブロックを生成して親ブロックの代表値を再計算するよりも、効率的に各親ブロックの代表値を求めることができる。
【発明を実施するための最良の形態】
【0022】
[第1の実施の形態]
以下、本発明の第1の実施の形態(以下、実施形態1とする)について、図面を用いて説明する。
【0023】
図1は、実施形態1のオートホワイトバランス装置10の構成を示す機能ブロック図である。このオートホワイトバランス装置10は、典型的には電子スチルカメラやビデオカメラなどのカメラ装置に組み込まれる。
【0024】
図1において、ブロック分割回路110は、カメラ装置の撮像装置20から入力された画像を複数のブロックに分割する。さらに、代表値計算回路120は、ブロックごとにそのブロック内の各色値(R,G,B)の平均値を算出し、その平均値に基づいて、そのブロックを代表する値(以下、代表値とする)として、輝度(L)及び色差(u,v)を算出する。そして、ホワイトバランス評価回路130は、算出した各ブロックの代表値などに基づいて入力画像の光源の色を推定する。ホワイトバランスゲイン計算回路140は、その推定結果に基づいて、ホワイトバランス調整のためのゲインを計算し、ホワイトバランス調整回路150が、そのゲインに基づいて入力された画像に対してホワイトバランスの調整を行う。
【0025】
実施形態1に係るオートホワイトバランス装置10は、入力された画像を複数の親ブロックに分割し、さらに各親ブロックを複数の子ブロックにそれぞれ分割する。そして、親ブロックの代表値を計算し、さらに子ブロックごとに代表値を計算した後、親ブロックの代表色差と、その親ブロックに含まれる各子ブロックの代表色差とを比較することで、所定の条件を満たす子ブロックを選択し、選択された子ブロックのみを用いて、親ブロックの代表値を再計算する。その後、再計算された親ブロックの代表値や被写体輝度に基づいて、入力された画像に対してホワイトバランスの調整を行う。実施形態1では、このように再計算された親ブロックの代表値を用いてホワイトバランス調整を行うことで、より安定したホワイトバランス調整を行う。
【0026】
以下、図2に示すオートホワイトバランス装置10の構成をより詳細に示した機能ブロック図を用いて、本装置の各部についてさらに説明する。
【0027】
≪ブロック分割回路≫
ブロック分割回路110は、撮像装置20から出力される画像データを所定の画素単位で構成されるブロック単位に分割する回路であり、親ブロック分割回路111と子ブロック分割回路112とを含む。
【0028】
親ブロック分割回路111は、撮像装置20から入力された画像データを、M×N個のブロックに分割する。図3は、親ブロックごとに分割した画像の一例を示す。この例では、1フレームの画像200は、親ブロック分割回路111により、12×8の親ブロックに分割される。
【0029】
子ブロック分割回路112は、親ブロックごとに分割された画像をさらにL×L個の子ブロックに分割する。図4は、親ブロックをさらに子ブロックに分割した画像の一例を示し、この例では、親ブロックは、子ブロック分割回路112により、3×3の子ブロックに分割される。なお、図3及び図4に示したブロック分割は一例であり、これ以外の分割方法を用いても構わない。
【0030】
親ブロック分割回路111で分割された各親ブロックの画像データ及び子ブロック分割回路112で分割された各子ブロックの画像データは、代表値計算回路120にそれぞれ入力される。
【0031】
≪代表値計算回路≫
代表値計算回路120は、ブロックごとにブロックの平均的な色の特性を示す、輝度及び色差を計算する。以下、この輝度及び色差をそれぞれ、代表輝度及び代表色差と呼び、さらに代表輝度及び代表色差を含めて代表値と呼ぶ。
【0032】
代表値計算回路120において、親ブロック代表値計算回路121は、親ブロックごとに代表値を計算し、子ブロック代表値計算回路122は、子ブロックごとに代表値を計算する。子ブロック選択回路123は、親ブロックの代表色差と各子ブロックの代表色差とをそれぞれ比較することで、子ブロックの選定を行う。親ブロック代表値再計算回路124は、子ブロック選択回路123で選択された各子ブロックの代表値を用いて、再度親ブロックの代表値を計算する。
【0033】
ここで、親ブロック代表値計算回路121及び子ブロック代表値計算回路122における、ブロック単位の代表輝度及び代表色差の計算方法について説明する。
【0034】
各計算回路121,122は、まず1ブロック(親ブロックもしくは子ブロック)の全画素の画素値の平均値を求める。つまり、撮像装置20の画像信号が例えばRGB(赤、緑、青)で表現されている場合、各計算回路121,122は、各画素のRGB値をRGBの各成分について全画素にわたり平均値を求める。次に、各計算回路121,122は、その平均値を、輝度(L)及び2つの色差成分(u,v)の組(L,u,v)について線形変換を行う。この変換式は次式で表される。
【数1】

なお、変換に用いる変換行列は、撮像装置20の入力色特性に依存するものであり、式(1)に示したものはその一例にすぎない。また、画像信号がRGB以外の表色系で表されている場合は、その表色系に応じた変換行列を用いて輝度及び色差成分を求めればよい。また、ブロックに含まれる全画素のRGBの平均値の代わりに分散値を求めて、その分散値を用いて式(1)に基づき線形変換し、各ブロックの代表値を求めてもよい。
【0035】
さらに、上記では、親ブロック代表値計算回路121は、親ブロックを構成する全画素のRGB値の合計を単純に平均している。しかし、次のように代表値を求めてもよい。すなわち、まず、親ブロックに含まれる子ブロックごとにすべて平均値もしくは分散値を求める。そして、求められた各子ブロックの平均値や分散値を合計して、その合計値を子ブロックの個数で除算することで平均を求め、この平均値を親ブロックの代表値とする。
【0036】
<子ブロック選択回路>
子ブロック選択回路123は、親ブロックの代表色差成分と、各子ブロックの代表色差成分との色差平面上での距離を求めて、その距離が所定の閾値S以下かどうかを判定する。判定の結果、子ブロック選択回路123は、親ブロックに含まれる全子ブロックの中から距離がその閾値S以下の子ブロックを選択する。つまり、子ブロック選択回路123は、親ブロックと色差特性が似ている子ブロックを選択する。この閾値Sは、想定した光源によらず1つの値を用いてもよいが、本実施形態1では、この閾値Sをあらかじめ想定した光源の種類に応じて個別に定めておく。そして、子ブロック選択回路123は、親ブロックごとに光源を推定して、推定した光源に対応する閾値Sに基づいて、子ブロックの選定を行う。なお、子ブロック選択回路123で推定される光源は、本実施形態1では、昼光、タングステン光(例えば白熱灯など)、蛍光灯光を想定する。これらは、一般ユーザの写真撮影やビデオ撮影における照明源として一般的なものである。
【0037】
以下、子ブロック選択回路123における閾値設定の手順について、図5及び図6を用いて説明する。図5は、子ブロック選択回路123における閾値設定の手順を示すフローチャートである。また、図6は、子ブロック選択回路123が、親ブロックの光源推定を行う際に用いる色差平面の一例を示す図であり、色差平面上に昼光領域、蛍光灯領域、タングステン光領域が定義されている。子ブロック選択回路123は、各親ブロックの代表色差成分(u0,v0)がこの色差平面上でどの領域に属するかを照合することで、親ブロックごとに光源の推定を行う。なお、上記各領域は、あらかじめ実験等を行うことで定めておけばよい。
【0038】
図5において、子ブロック選択回路123は、まず、ある親ブロックに対する閾値Sとして昼光の場合に定められた閾値を設定する(S101)。次いで、子ブロック選択回路123は、親ブロックの代表色差成分(u0,v0)が色差平面上において蛍光灯領域内に含まれているか否かを判定する(S102)。判定の結果、蛍光灯領域内に含まれている場合には、その親ブロックの閾値Sとして蛍光灯の閾値を設定する(S103)。続いて、S102での判定結果に拘わらず、子ブロック選択回路123は、親ブロックの代表色差成分(u0,v0)が色差平面上においてタングステン光領域内に含まれているか否かを判定する(S104)。判定の結果、タングステン光領域内に含まれている場合には、その親ブロックの閾値Sとしてタングステン光の閾値を設定する(S105)。以上の手順を親ブロックごとに実行することで、子ブロック選択回路123は、親ブロックごとに子ブロックの選定の際に基準となる閾値Sを設定する。なお、閾値の大きさは、例えば、蛍光灯、タングステン光、昼光の順に大きな値を設定する。ここで、蛍光灯の閾値を各光源の中で最も小さく設定する理由は、下記に示す子ブロックの選定処理において、光源が蛍光灯の場合にはより厳密に子ブロックの選定を行うためである。これは、蛍光灯の色特性が緑色の物体の色特性と似ており、全体に緑色の物体が存在する森林等のシーンを撮影する場合などに、光源の混同をする可能性が高いからである。
【0039】
さらに、子ブロック選択回路123は、各親ブロックの閾値Sが設定された後、親ブロックごとに子ブロックの選定を行う。そこで、以下、図7に示すフローチャートを用いて、子ブロックの選定手順について説明する。
【0040】
子ブロック選択回路123は、まず変数Xを初期値の「1」に設定し(S201)、親ブロックの代表色差成分(u0,v0)とその親ブロックに含まれるX番目の子ブロックの代表色差成分(uX,vX)との距離sを求め、その距離がその親ブロックに対して設定された閾値Sより大きいか否かを判定する(S202)。この判定は、例えば、下記に示す式に基づいて行う。
【数2】

S202での判定の結果、距離sが閾値Sより大きい場合には、続いて、X番目の子ブロックの代表色差成分(uX,vX)が、色差平面上において昼光領域内に存在するか否かを判定する(S203)。判定の結果、昼光領域に存在しない場合は、X番目の子ブロックの光源は昼光ではない推定して、X番目の子ブロックを、親ブロックの代表値の計算には使用しない除外候補として決定し(S204)、変数Xに1を加算する(S205)。そして、加算した変数Xが、親ブロックに含まれる子ブロックの合計個数より小さいか否かを判定して、変数Xが子ブロックの合計個数に達していなければ、次の子ブロックに対して、S202以降の処理を実行する。また、S203の判定の結果、昼光領域に存在する場合は、たとえ距離sが閾値Sより大きい場合でも、その子ブロックを除外候補とせずに、S205以降の処理を実行する。このように、子ブロックの光源が昼光と推定される場合に除外候補としない理由は、以下の通りである。
【0041】
すなわち、従来のオートホワイトバランス調整では、例えば、比較的暗く緑色の物体を多く含む昼光シーン(例えば、森林のシーン)において、緑色の色差成分と蛍光灯の色差成分とが近い値を持つことが起因して、そのようなシーンの光源を昼光ではなく蛍光灯として推定してしまい、誤ったホワイトバランス調整を実行してしまう場合があった。本実施実施形態では、そのような誤ったホワイトバランス調整を低減することを1つの目的といる。そこで、昼光として推定される色差成分を含む子ブロックはできるだけ光源判定に採用して、オートホワイトバランス装置10が、そのようなシーンの光源を昼光と判断しやすくするために、実施形態1では、子ブロック選択回路123は、代表色差成分が昼光領域に存在する場合、たとえ距離sが閾値Sより大きい場合でも、その子ブロックを除外候補とはしない。
【0042】
以上、子ブロック選択回路123は、各親ブロックに対して、子ブロックの選定処理を行い、除外候補の子ブロックを決定し、その情報が親ブロック代表値再計算回路124に提供される。また、子ブロック選択回路123は、各親ブロックの除外候補の子ブロックの個数をカウントし、そのカウント数を、下記に示す除外係数設定回路133に提供する。除外係数設定回路133は、そのカウント数に基づいて除外係数Cdを求める。信頼度修正回路135は、その除外係数Cdを用いて各親ブロックの信頼度の修正を行う。この信頼度の修正については後ほど詳しく説明する。
【0043】
<親ブロック代表値再計算回路>
親ブロック代表値再計算回路124は、除外候補の子ブロックを除いて、改めて、各親ブロックの代表値を計算する。つまり、除外候補とならなかった子ブロックの代表値をそれぞれ合計し、その合計値を除外候補とならなかった子ブロックの合計数で除算することで平均値を求め、その値を親ブロックの新たな代表値とする。
【0044】
このように、親ブロック代表値再計算回路124が、除外候補の子ブロックを除いて、改めて、各親ブロックの代表値を計算することで得られる効果を、図8に示すシーンについて説明する。
【0045】
図8は、シーン全体に木々等の緑色の物体が存在する画像データの一例を示す。このようなシーンについて、親ブロック内の全画素の輝度及び色差の平均値に基づいて、各親ブロックの代表値を求めて、その代表値に基づいて光源推定を行うと、図9に示すような判定結果を得る場合がある。ここで、「蛍光灯」は、光源を蛍光灯と判定したブロックであり、「Dark」は、暗いため光源として扱わないブロックである。この光源推定結果に基づいて、ホワイトバランス調整を行うと、蛍光灯の緑色を補正しようとホワイトバランスが行われるため、画像全体が強く紫色方向に補正されてしまう。このような光源推定の誤りは、緑色の物体の色差が、昼光の場合の色差と蛍光灯の場合の色差とで近い値を持つという色特性から生じる現象であり、光源を誤って蛍光灯と判定してしまう色差成分をもつ画素も含めて、ブロック内の全画素の輝度及び色差を平均化することが起因している。
【0046】
一方、実施形態1では、子ブロック選択回路123において子ブロックの選定が行われることで、ブロック内に存在する画素群のうち、蛍光灯の色差成分をもつ画素が除外されて、親ブロックの代表値が計算されるため、図8に示すシーンについて各ブロックの光源推定を行うと、図10に示すように、「昼光」と判定されるブロックが複数存在する判定結果を得る。よって、光源を誤って蛍光灯と判定されるブロックの数が減少し、蛍光灯の緑色を補正しようとホワイトバランスが行われ、画像全体が強く紫色方向に補正されてしまうことを防ぐことができる。
【0047】
以上のように、親ブロック代表値再計算回路124で再計算されて得られた各親ブロックの代表値は、ホワイトバランス評価回路130に入力されて、光源推定が行われる。
【0048】
≪ホワイトバランス評価回路≫
続いて、ホワイトバランス評価回路130に含まれる各回路について説明する。
【0049】
<分散係数計算回路>
分散係数計算回路131は、代表値計算回路120から各親ブロックの画像データを受け取り、それらの親ブロックの分散係数Cvを求める。分散係数Cvは、後述するブロック信頼度の補正のための係数であり、当該ブロックの画素値の分散に応じて決まる。親ブロックiの分散係数をCviと表す。
【0050】
分散係数計算回路131は、まず親ブロックの画素群の中からあらかじめ定めた方法で画素をサンプリングし、それらサンプリングした画素群の画素値の分散を求める。この場合、分散係数計算回路131は、例えば、R,G,Bの各成分についてサンプリングした画素群における分散を求め、これら各成分の分散を例えば平均するなどして全体的な分散値を求める。そして、分散係数計算回路131は、このようにして求めた分散値に基づき分散係数を求める。分散係数Cvは、あらかじめ用意した関数を用いて求める。図11は、この関数の一例のグラフである。図11に示すように、分散係数計算回路131では、分散値が大きくなるほど、それに対応する分散係数が小さくなるような関数を用いる。この関数は、例えば分散係数計算回路131内にあらかじめ登録されている。
【0051】
<飽和係数計算回路>
飽和係数計算回路132は、代表値計算回路120から各親ブロックの画像データを受け取り、それらの親ブロックの飽和係数Csを求める。飽和係数Csは、後述するブロック信頼度の補正のための係数であり、当該ブロックにおける飽和画素の数に応じて決まる。飽和画素とは、画素値の1以上の成分(例えばR、G、またはB)が、その成分の上限値(例えば8ビット表現ならば255)に達している画素をいう。親ブロックiの飽和係数をCsiと表す。
【0052】
飽和係数計算回路132は、まずブロックの中の飽和画素の数をカウントし、このカウント結果から飽和係数を求める。飽和係数Csは、あらかじめ用意した関数を用いて求める。図12は、この関数の一例のグラフである。図12に示すように、飽和係数計算回路132では、飽和画素数が大きくなるほど、それに対応する飽和係数が小さくなるような関数を用いる。ここで用いる関数は、例えば飽和係数計算回路132内にあらかじめ登録されている。
【0053】
<除外係数設定回路>
除外係数設定回路133は、親ブロックごとに除外係数Cdを求める。除外係数Cdは、後述するブロック信頼度の補正のための係数であり、子ブロック選択回路123において選択されなかった子ブロックの個数Eに基づいて、親ブロックごとに定められる係数である。除外係数Cdは、例えば、下記に示す条件に基づいて定められる。
Ei>閾値Aならば、Cdi=1/4
Ei>閾値Bならば、Cdi=0
【0054】
ここで、閾値A<閾値B、Eiは親ブロックiにおいて除外候補とされた子ブロックの個数、Cdiは親ブロックiにおける除外係数である。
【0055】
よって、例えば、閾値A=2、閾値B=4の場合、親ブロックにおいて除外候補とされた子ブロックの個数が「1」であれば、その親ブロックの除外係数Cdは「1/4」となり、その個数が「5」であれば、除外係数Cdは「0」となる。
【0056】
上記の通り、分散係数計算回路131、飽和係数計算回路132、除外係数設定回路133でそれぞれ求められた分散係数Cv、飽和係数Cs、除外係数Cdは、信頼度修正回路135に入力される。
【0057】
<ブロック信頼度計算回路>
ブロック信頼度計算回路134は、各親ブロックに対してあらかじめ想定した各光源について、その光源がそのブロックを照明している信頼度(ブロック信頼度と呼ぶ)を求める。あるブロックについてのブロック信頼度は、各想定光源について求められる。以下、この処理を詳しく説明する。
【0058】
実施形態1では、光源として、太陽光、タングステン光(例えば白熱灯など)、蛍光灯光を想定する。更に、実施形態1では、太陽光を昼光(昼間の日なたの光)と日陰光(昼間の日陰の光)とに分けて取り扱う。日なたと日陰では、同じ太陽光の影響下であっても、前者は色温度が比較的低く(赤っぽい)、後者は色温度が比較的高い(青っぽい)という違いがある。したがって、両者を一括して取り扱ったのでは、日なた、日陰とも中途半端なホワイトバランスになるおそれがあり、更に、日なたの部分と日陰の部分が混在するシーンで柔軟なホワイトバランスのコントロールが困難になる。そこで実施形態1では、昼光と日陰光とを別の光源として区別して取り扱うことにより、そのような問題を解決している。結局、実施形態1では、昼光、日陰光、タングステン光、蛍光灯光の4種類の光源を想定することになる。
【0059】
ブロック信頼度計算回路134は、各想定光源について、その光源下での白色物体の色の色差成分(以下、その光源の典型色差と呼ぶ)と、親ブロック代表値再計算回路124が計算して得られた親ブロックの代表値の色差成分(u,v)との距離dを求める。ここで、光源の識別番号をj(j=1,2,…,m:mは想定光源の個数であり、実施形態1ではm=4である)とし、識別番号jの光源を光源jと表現する。ここでは、便宜上光源1を昼光、光源2を日陰光、光源3をタングステン光、光源4を蛍光灯光とする。親ブロックiの代表値の色差成分(ui,vi)と光源jの典型色差(Uj,Vj)との距離Dijは、例えば次式に従って求める。
Dij=d11*(ui−Uj)2+d12*(ui−Uj)*(vi−Vj)+d22*(vi−Vj)2・・・(3)
【0060】
ここで、d11、d12、d22はそれぞれ所定の定数である。各光源について、その特性に合わせてこれら定数d11、d12、d22の組を選択することにより、光源特性にあった適切な距離を定義できる。この場合、それら定数の値は、各光源について、実験などであらかじめ求め、ブロック信頼度計算回路134又はカメラに設けられた記憶装置(ROMなど。図示省略)に記憶しておく。また、距離の定義には、上記式(3)以外のものを用いることも可能である。この場合、各光源について、その特性に応じた異なる距離の定義式を用いることも可能である。以上の距離dの計算が、1つの親ブロックiに対し、全想定光源jについて行われる。
【0061】
次にブロック信頼度計算回路134は、求めた距離Dijから、親ブロックiが光源jにより照明されている信頼度Rdijを求める。この信頼度Rdijは、色差の観点から見た信頼度である。信頼度Rdijは、あらかじめ定めた関数fを用いて距離Dijから求める。光源の種類によって、距離dと信頼度Rdとの関係が異なるので、この関数fは各光源jについて個別に用意することが好適である。光源jについての信頼度関数をfjと表すと、親ブロックiが光源jにより照明されている信頼度Rdijは次式により求められる。
Rdij=fj(Dij)・・・(4)
【0062】
図13に信頼度関数fjの一例を示す。図13に示すように、関数fjは、距離Dijが大きくなるに従って値が減少する関数である。この関数を距離に関して連続的に変化する関数とすることにより、二値的な弁別結果をベースにしたことによる従来技術の問題を回避できる。各光源の信頼度関数fjは、あらかじめ実験等により求め、装置内に記憶しておく。
【0063】
また、ブロック信頼度計算回路134は、このようにして求めた色差の観点からの信頼度Rdに対し、輝度の観点からの修正を加える。これは、蛍光灯下での白い物体の明るさの分布、直射日光(昼光)下での白い物体の明るさの分布、日陰での白い物体の明るさの分布、などがそれぞれ異なるためである。したがって、親ブロックiの輝度(明るさ)Liに応じて、親ブロックiが光源jにより照明されている可能性を求めることができる。ここでは、この可能性を係数として、前に求めた色差に基づく信頼度Rdを修正する。
【0064】
このため、ブロック信頼度計算回路134は、親ブロックiごとに、輝度の観点から見てその親ブロックiが光源jで照明されている可能性を示す輝度係数Clijを求める。輝度係数Clijは、光源jの種類に応じて個別にあらかじめ定められた関数gjに、親ブロックiの輝度Liを適用することにより求められる。すなわち、
Clij=gj(Li)・・・(5)
【0065】
図14に関数gjの一例を示す。関数gjは、輝度Liの関数であり、この例は輝度が大きくなるほど係数Clは大きくなるものを示している。これは明るい物ほど光源の影響を受けている可能性が高いことを考慮したものである。この関数を輝度に関して連続的に変化する関数とすることにより、ホワイトバランスに対するブロック輝度Liの影響を滑らかなものとすることができる。これは、ホワイトバランスの挙動の安定化に役立つ。なお、この輝度係数の特性は、光源jの種類によって異なる。各光源の輝度係数関数gjは、あらかじめ実験等により求め、装置内に記憶しておく。
【0066】
そして、ブロック信頼度計算回路134は、色差に基づく信頼度Rdに輝度係数Clを乗じることにより、信頼度Rijを求める。信頼度Rijは、色差及び輝度の両方の観点から見て、親ブロックiが光源jで照明されている可能性を示す値である。すなわち、信頼度Rijは、
Rij=Clij*Rdij・・・(6)
により求められる。
【0067】
ブロック信頼度計算回路134は、以上の処理を全ての親ブロックiに対して、全ての想定光源jについて実行する。求められた信頼度Rijの情報は、信頼度修正回路135に入力される。
【0068】
<信頼度修正回路>
信頼度修正回路135は、親ブロックiに対する光源jの信頼度Rijを、当該親ブロックiについての前述の分散係数Cvi、飽和係数Csi、除外係数Cdi、及び当該親ブロックiの画像全体の中での位置によって決まる位置係数Cpiとにより信頼度Rijを補正する。具体的には、これら係数を信頼度Rijにかけることにより、信頼度を修正する。修正された信頼度(修正信頼度と呼ぶ)Rmijとすると、
Rmij=Cvi*Cli*Cdi*Cpi*Rij・・・(7)
である。
【0069】
ここで、位置係数Cpiは、親ブロックiが画像の中央に近いほど大きい値になるようにあらかじめ定めておく。これは、一般に、画像の中央に近いブロックほど画像の中での重要度が高いと考えられるからである。位置的に見て重要度の高いブロックに対し高い位置係数を与えることにより、重要度の高いブロックの色がホワイトバランス制御により強く反映されることになる。図15は、位置係数の設定例を示す図である。この例では、画像中央部のブロック210−1には位置係数として1.0、画像周縁部のブロック210−2には位置係数として0.5が与えられている。これら位置係数は、装置内にあらかじめ記憶されている。
【0070】
また、この修正処理では、分散係数Cvi、飽和係数Csi、除外係数Cdiも考慮している。これには次のような意義がある。
【0071】
まず、分散係数Cviは、前述のように、親ブロックi内での画素値の分散が大きくなるほどその値が小さくなるように定められている。したがって、親ブロックiの分散が大きいほど分散係数Cviは小さくなり、この結果修正信頼度Rmijの値も小さくなる。このような修正を行うのは、親ブロックiの画素値の分散が大きいほど、その親ブロックの代表値(Li,ui,vi)から求めた信頼度Rij自体の信頼性が低いと考えられるためである。分散が大きいほどその親ブロックの各画素値のばらつきが大きいので、その画素値から求めた代表値がその親ブロックの色の傾向(すなわち照明の傾向)を表している可能性が低いと考えられる。したがって、そのような信頼性の低い代表値から求めた信頼度Rijは、信頼性が低いと考えられるので、その信頼度Rijのホワイトバランスへの影響を小さくするために、分散係数Cviの値を小さくする。
【0072】
また、飽和係数Csiは、前述のように、親ブロックi内での飽和画素の数が大きくなるほどその値が小さくなる。したがって、親ブロックi内の飽和画素数が多いほど飽和係数Csiは小さくなり、この結果信頼度Rijは小さい値に修正されることになる。このような修正を行うのは、親ブロックiの飽和画素数が大きいほど、そのブロックの代表値(Li,ui,vi)から求めた信頼度Rij自体の信頼性が低いと考えられるためである。飽和画素は、RGB各成分の上限値を超える部分がカットされている可能性があるので、対象物の正しい色を表していないおそれがある。したがって、飽和画素が多いほど、親ブロックの代表値がその親ブロックの色の傾向(したがって照明の傾向)を表している可能性が低くなると考えられる。そのような信頼性の低い代表値から求めた信頼度Rijは、それ自体信頼性が低いと考えられるので、ここでは、その信頼度Rijのホワイトバランスへの影響を小さくするために、飽和係数Csiの値を小さくするのである。
【0073】
さらに、除外係数Cdiは、上述のように、子ブロック選択回路123において除外候補と決定された子ブロックの数が少ないほどその値は大きくなる。したがって、除外候補の子ブロックが多いほどその親ブロックiの除外係数Cdiは小さくなり、この結果修正信頼度Rmijの値も小さくなる。このような修正を行うのは、除外候補となる子ブロックの数が多い親ブロックiほど、親ブロックiに含まれる各画素のRGB値にバラツキがあり、全画素の平均により求めた代表値では、対象物の正しい色を表していないおそれが高いからである。よって、除外候補の子ブロックが多いほど、親ブロックiの代表値がそのブロックの色の傾向(したがって照明の傾向)を表している可能性が低くなると考えられる。そのような信頼性の低い代表値から求めた信頼度Rijは、それ自体信頼性が低いと考えられるので、ここでは、その信頼度Rijのホワイトバランスへの影響を小さくするために、除外係数Cdiの値を小さくする。
【0074】
信頼度修正回路135では、全ての親ブロックについて、各光源について信頼度の修正が実行される。求められた修正信頼度Rmijは全体信頼度計算回路136及び光源寄与計算回路137に入力される。
【0075】
<全体信頼度計算回路>
全体信頼度計算回路136は、光源jの画像全体への信頼度(全体信頼度と呼ぶ)Rtjを計算する。全体信頼度計算回路136は、各親ブロックiの修正信頼度Rmijを画像中の全親ブロックについて総和することにより、全体信頼度Rtjを求める。すなわち、
Rtj=ΣRmij(ただしΣはi=1〜nについての総和)・・・(8)
である。
【0076】
<光源寄与計算回路>
光源寄与計算回路137は、画像のシーン全体についての各光源jの信頼度、及び各光源jの画像全体への寄与成分の推定をする。光源jの光源寄与成分は、画像全体の色合いに対して各光源jが与えている影響のことであり、言い換えれば、その光源jがその画像のシーンを照明することで、その画像に現れると推定される色の傾向である。光源寄与成分は、輝度及び色差の組で表される。ここでは、画像全体に対する光源jの寄与成分を(Lcj,ucj,vcj)と表す。
【0077】
光源寄与計算回路137は、全ての親ブロックについて、各想定光源jに対する修正信頼度Rmij、各親ブロックの代表値(Li,ui,vi)、及び各光源の全体信頼度Rtjに基づき、次式に従って光源寄与成分を推定する。
【数3】

式(9)において、Σはi=1〜n(nは、総親ブロック数)についての総和を示す。この計算は、各親ブロックiの輝度及び色差を、それぞれ各親ブロックiの修正信頼度Rmijによって、総親ブロックにわたって加重平均する処理と等価である。
【0078】
<光源寄与修正回路>
光源寄与修正回路138は、上記のとおり当該入力画像のシーン全体に対する各光源jの寄与成分が推定された推定値に対して修正を加える。この修正は大きく分けて2段階からなる。
【0079】
第一段階では、各光源jの寄与成分を、各想定光源jに対してあらかじめ定められた標準色と加重平均する。光源jの標準色は、光源jの照明下でのシーンの標準的な色(すなわち輝度及び色差の組)であり、これはあらかじめその光源jで各種のシーンを撮影し、それら撮影画像の輝度、色差を集計することで求めておく。各光源jの標準色(Lsj,usj,vsj)は、装置内にあらかじめ記憶しておく。この第一段階の修正処理は、次式で表される。
Lmj=wsj・Lcj+(1−wsj)・Lsj umj=wsj・ucj+(1−wsj)・usj vmj=wsj・vcj+(1−wsj)・vsj・・・(10)
ここで(Lmj,umj,vmj)は寄与成分の修正結果であり、wsj(ただし0≦ws≦1)はあらかじめ定めた重みである。この重みwsjは、各想定光源jについてあらかじめ実験等により求めておき、装置内に記憶しておく。
【0080】
第一段階の修正は、光源寄与成分(Lcj,ucj,vcj)に含まれる物体色の影響を低減するための修正である。画像に現れる色は、光源からの照明光の色(照明色)と物体それ自体の色(物体色)の両方から影響を受ける。ホワイトバランスは照明光の色温度に合わせて白い物が白く見えるように色補正することである。したがって、照明光の色が精度よく推定できれば、精度のよいホワイトバランス調整が行える。しかしながら、実際の画像は、白色以外の物体が数多く含まれたシーンを撮影したものがほとんどであり、画像の色には物体色の影響が多分に含まれている。光源寄与成分と当該光源jの標準色とを加重平均することで、光源寄与成分に含まれる物体色の影響を相対的に低減することができ、光源寄与成分をより照明の色に近い値に修正できる。
【0081】
第二段階では、この第一段階の修正結果(Lmj,umj,vmj)に対し、被写体輝度を考慮した修正を加える。被写体輝度Loは、カメラ装置に設けられた被写体輝度検出装置30にて検出される。この第二段階の修正では光源寄与修正回路138は、まず各想定光源jについて個別に修正係数Cojを求める。修正係数Cojは、各光源jについて個別に用意された関数hjに、被写体輝度Loを適用することにより求める。すなわち、
Coj=hj(Lo)・・・(11)
である。
【0082】
図16に被写体輝度に基づく修正関数hjの一例を示す。この例では、被写体輝度Loが大きくなるにつれて修正係数Coが小さくなっており、被写体輝度がある値を超えると修正係数が0になっている。これは光源が蛍光灯である場合の関数hjの一例である。撮影シーンが蛍光灯照明下である場合、シーンが昼間の屋外である場合に比べて被写体が暗い。被写体輝度が非常に大きい場合、画像は屋外のシーンを撮影したものである可能性が高く、蛍光灯照明である可能性は低い。そこで、蛍光灯光源の場合、被写体輝度が高くなるにつれて修正係数Coが小さい値になるようにしている。タングステン光や日陰光のシーンの場合も、昼光シーンに比べて被写体輝度が低いと考えられるので、被写体輝度がある程度以上高くなると修正係数Coが小さくなるような関数hjを用いる。これら修正関数hjは、実験等によりあらかじめ求めておき、装置内に記憶しておく。
【0083】
そして、光源寄与修正回路138は、このようにして求めた修正係数Coを第一段階の修正結果(Lmj,umj,vmj)に乗じることにより、最終的な修正結果(Lzj,uzj,vzj)を求める。すなわち、
Lzj=Coj・Lmjuzj=Coj・umjvzj=Coj・vmj・・・(12)
である。この修正結果(Lzj,uzj,vzj)は、被写体輝度などのパラメータを考慮して修正された光源寄与成分となっている。この修正結果は、照明色推定回路139に入力される。
【0084】
<照明色推定回路>
照明色推定回路139は、光源寄与修正回路138から入力された各光源jの光源寄与成分の修正結果(Lzj,uzj,vzj)と、全体信頼度計算回路136で求められたシーン全体に対する各光源jの全体信頼度Rtjとに基づき、当該画像の撮影シーンを照明する照明の色(照明色)を推定する。この推定は、光源寄与成分の修正結果(Lzj,uzj,vzj)を、各光源jの全体信頼度Rtjを重みとして、想定する全光源について加重平均することにより行う。すなわち、照明色を(IL,Iu,Iv)とすると、
【数4】

式(13)において、Σは全想定光源jについての総和である。すなわち、照明色推定回路139は、シーンがそれら想定光源jで複合的に照明されているとの仮定の下で、加重平均によりその複合照明の照明色を推定している。この照明色は、その複合照明下での白色物体の色に対応する。求められた照明色(IL,Iu,Iv)は、ホワイトバランスゲイン計算回路140に入力される。
【0085】
≪ホワイトバランスゲイン計算回路≫
ホワイトバランスゲイン計算回路140は、受け取った照明色(IL,Iu,Iv)の情報に基づき、ホワイトバランス調整のためのゲイン(Rgain,Ggain,Bgain)を計算する。この計算は、以下の式に基づき行われる。
【数5】

IMax=max(IR,IG,IB)・・・(15)
Rgain=IMax/IRGgain=IMax/IGBgain=IMax/IB・・・(16)
【0086】
(IR,IG,IB)は、照明色のRGB表現である。求められるホワイトバランスゲイン(Rgain,Ggain,Bgain)は、この色の照明が白色物体で反射されたときの色(すなわち(IR,IG,IB)そのもの)をグレイ(すなわちR=G=B)に補正する値となる。求められたホワイトバランスゲインは、ホワイトバランス調整回路150に入力される。
【0087】
≪ホワイトバランス調整回路≫
ホワイトバランス調整回路150は、撮像装置20から入力された画像の各画素値R,G,Bに対し、ホワイトバランスゲイン計算回路140で求めたゲイン(Rgain,Ggain,Bgain)をそれぞれ乗じることにより、その画像のホワイトバランスを調整する。したがって、オートホワイトバランス装置10から、次式、
Rout=Rgain*RGout=Ggain*GBout=Bgain*B・・・(17)
によって求められた出力(Rout,Gout,Bout)が出力される。
【0088】
以上、実施形態1では、親ブロックを子ブロックに分割して、子ブロックごとに代表値を計算した後、親ブロックの代表色差と、その親ブロックに含まれる各子ブロックの代表色差とを比較することで、所定の条件を満たす子ブロックを選択し、選択された子ブロックのみを用いて、親ブロックの代表値を再計算する。さらに、選択されなかった子ブロックの数に応じて親ブロックの信頼度も下方修正する。よって、実施形態1によれば、たとえ各ブロック内に有彩色のものが存在するときや、ブロック内のRGBの値が一様でない場合であっても、安定したホワイトバランス調整を行うことができる。
【0089】
[第2の実施の形態]
以下、本発明の第2の実施の形態(以下、実施形態2とする)について、図面を用いて説明する。
【0090】
図17は、実施形態2におけるオートホワイトバランス装置10の構成を詳細に示した機能ブロック図であり、撮影条件判定装置40が追加されている点で、実施形態1とは異なる。この撮影条件判定装置40は、親ブロックを子ブロックに分割して、親ブロックの代表値を再計算する処理を行うか否かを、被写体輝度に基づいて判定し、判定結果に応じて、ブロック分割回路110に対して子ブロック分割処理の指示を出力する。ブロック分割回路110は、入力された画像データを親ブロックごとに分割した後、撮影条件判定装置40から子ブロック分割処理の指示の入力があった場合のみ、各親ブロックを子ブロックに分割する処理を実行する。
【0091】
以下、撮影条件判定装置40における判定の手順について、図18に示すフローチャートを用いて説明する。
【0092】
撮影条件判定装置40は、被写体輝度検出装置30から出力された被写体輝度Loが、特定の範囲内かどうかを判定する(S301)。ここで、特定の範囲とは、複数の光源が取りうる輝度範囲のことをいう。実施形態2では、昼光と蛍光灯もしくは、昼光とタングステン光が取りうる範囲を輝度範囲として定める。実施形態2では、輝度範囲を6LV〜8LVと定める。このような範囲に被写体輝度が存在する場合、親ブロックのみを生成して、各親ブロックの代表値を算出し、その代表値を用いて入力画像の光源推定を行うと、安定したホワイトバランス調整が行えない可能性がある。そこで、実施形態2では、そのような撮影条件の場合には、子ブロックを生成して親ブロックの代表値を再計算し、より安定したホワイトバランス調整を実現する。
【0093】
S301の判定の結果、被写体輝度が特定の範囲内であれば、撮影条件判定装置40は、さらに、親ブロック代表値計算回路121が計算した各親ブロックの代表色差を取得して、それらの平均値を求める。そして、その平均代表色差が特定の光源範囲内かどうかを判定し(S302)、特定の光源範囲外の場合には、子ブロック分割処理の指示をブロック分割回路110に出力する(S303)。一方、S301での判定の結果、被写体輝度が特定の範囲外もしくは、平均代表色差が特定の光源範囲内の場合には、子ブロック分割処理の指示を出力しない。よって、この場合には、親ブロックのみを生成して、親ブロック代表値計算回路121で計算した各親ブロックの代表値を用いて入力画像の光源推定を行い、ホワイトバランス調整を行う。
【0094】
ここで、特定の光源範囲は、色差平面上において定義された光源領域のなかで、複数の光源が取りうる領域であり、特に子ブロック分割処理を実行してホワイトバランス調整を行うと、ホワイトバランス調整を失敗する場合が多い範囲のことをいう。実施形態2では、図19に示す通り、タングステン光と蛍光灯とが光源として取りうる範囲220である。これは、光源としてタングステン光と蛍光灯とが混ざり合った撮影条件において、子ブロック分割処理を実行してホワイトバランス調整を行うと、ホワイトバランス調整を失敗する場合が多いことが理由である。
【0095】
タングステン光と蛍光灯とが混ざり合った撮影シーンとしては、例えば、通路側がタングステン光により照射され、店内側が蛍光灯により照射されているショッピングモールなどの場所における撮影が挙げられる。図20は、タングステン光と蛍光灯とが混ざり合った撮影シーンの一例を示す。このようなシーンにおいて、子ブロックに分割して、子ブロックの選定を行うと、図21に示すような子ブロック選定処理が行われる。すなわち、タングステン光と蛍光灯とが混ざり合った環境のため、図20に示すようなシーンの画像データを親ブロックに分割すると、光源が蛍光灯の子ブロックと、タングステン光の子ブロックと、蛍光灯とタングステン光とが混ざり合った子ブロックとを含む親ブロックが現れる。このような親ブロックについて、子ブロック選択回路123において子ブロックの選択を行うと、蛍光灯を光源とする子ブロックのみが残り、親ブロックの代表値の再計算が行われる。すると、この親ブロックの光源は蛍光灯として正しく判断されるが、除外候補となった子ブロックの数が多いため、この親ブロックの信頼度は低く設定され、結局、画像の光源推定ではこの親ブロックの影響は少なくなる。その結果、光源として蛍光灯とタングステン光とを含むシーンにも拘わらず、タングステン光の影響が強くなり、全体的として青みがかったシーンにホワイトバランス調整が行われてしまう。
【0096】
一方、このようにタングステン光と蛍光灯とが混ざり合ったシーンについて、子ブロックを生成せずに親ブロックの代表値を計算すると、除外係数Cdは考慮されずに信頼度が求められる。その結果、蛍光灯とタングステン光とがバランス良く影響したホワイトバランス調整を行うことができる。
【0097】
以上のように、タングステン光と蛍光灯とが混ざり合った撮影条件では、子ブロックを生成せずに求めた親ブロックの代表値に基づいて、画像の光源推定を行った方が正しくホワイトバランス調整が行われる。そのため、実施形態2では、撮影条件判定装置40は、被写体輝度が昼光と蛍光灯もしくは、昼光とタングステン光が取りうる可能性がある範囲にある場合でも、タングステン光と蛍光灯とが混ざり合った環境では、子ブロック分割処理の指示をブロック分割回路110に対して出力しない。
【0098】
以上、実施形態2では、撮影条件に応じて、撮影条件判定装置40が子ブロックを生成する処理を実行するか否かを決定する。これにより、すべてのシーンについて、子ブロックを生成して、親ブロックの代表値の再計算を行う処理を実行するよりも、より安定したホワイトバランス調整を実現することができる。
【0099】
[第3の実施の形態]
以下、本発明の第3の実施の形態(以下、実施形態3とする)について、図面を用いて説明する。
【0100】
実施形態3は、撮影条件判定装置40が、親ブロックごとにタングステン光と蛍光灯とが混ざり合った光源か否かを判定して、親ブロックごとに子ブロックを生成するか否かの決定をする点で、実施形態2とは異なる。なお、実施形態3におけるオートホワイトバランス装置10の構成は、実施形態2の構成と同様でよく、図17に示す通りである。
【0101】
以下、撮影条件判定装置40における判定の手順について、図22に示すフローチャートを用いて説明する。
【0102】
撮影条件判定装置40は、被写体輝度検出装置30から出力された被写体輝度Loが、特定の範囲内かどうかを判定する(S401)。ここで、特定の範囲とは、実施形態2と同様に、光源として、昼光と蛍光灯もしくは、昼光とタングステン光が取りうる可能性がある被写体輝度の範囲である。
【0103】
判定の結果、その範囲に被写体輝度が存在する場合、撮影条件判定装置40は、変数iを初期値「1」に設定し(S402)、親ブロックiの代表色差が特定の光源範囲内か、すなわち、光源が蛍光灯とタングステン光とが混ざり合ったものかどうかを判定する(S403)。その結果、光源が蛍光灯とタングステン光とが混ざり合ったものでない場合、撮影条件判定装置40は、親ブロックiを子ブロック分割対象と決定する(S404)。次いで、変数iに1をインクリメントし(S405)、変数iが画像データを構成する親ブロックの総数より大きいか否かの判定をする(S406)。判定の結果、変数iが画像データを構成する親ブロックの総数以下の場合には、次の親ブロックに対してS403以降の処理を実行し、すべての親ブロックについて判定が行われた段階でこの処理を終了する。ここでの判定結果は、ブロック分割回路110に入力されて、子ブロック分割対象の親ブロックのみが子ブロックに分割され、親ブロックの代表値の再計算処理が実行される。
【0104】
このように、親ブロックごとに子ブロックを生成するか否かを判定することで、親ブロックごとに適した方法で代表値を求めることができ、より安定したホワイトバランス調整を実現することができる。また、すべての親ブロックについて子ブロックを生成して親ブロックの代表値を再計算するよりも、効率的に各親ブロックの代表値を求めることができる。
【0105】
図23は、白い壁に光源として蛍光灯とタングステン光とが照射されているシーンの一例を示す。そして、図24は、このシーンに対して親ブロックのみを生成して各親ブロックの光源の推定を行った場合の光源推定結果を示す。さらに、図25は、すべての親ブロックについて子ブロックを生成して各親ブロックの光源推定を行った場合の光源推定結果を示す。また、図26は、蛍光灯とタングステン光とが混ざり合った光源をもつ親ブロックを除いて、子ブロックの生成が行われ、各親ブロックの光源の推定を行った場合の光源推定結果を示す。
【0106】
図23に示すようなシーンについて、親ブロックのみを生成して行われた光源推定の結果に基づいてホワイトバランス調整を行うと、タングステン及びタングステン寄りの蛍光灯の影響を強く受けて調整が行われるため、全体として青みがかったシーンにホワイトバランス調整されてしまう。一方、子ブロックを生成する場合は、図25に示す通り、タングステン寄りの蛍光灯として光源の推定がされる親ブロックの数も低減し、タングステンと蛍光灯とがバランス良く影響して、ホワイトバランス調整が行われる。また、図26のように蛍光灯とタングステン光とが混ざり合った光源をもつ親ブロックを除いて、子ブロックの生成を行う場合にも、タングステンと蛍光灯とがバランス良く影響して、ホワイトバランス調整が行われる。よって、実施形態3のように、タングステン光と蛍光灯とが混ざり合った光源か否かを判定して、親ブロックごとに子ブロックを生成するか否かを決定する場合でも、すべての親ブロックに対して子ブロックを生成する場合とほぼ同様にホワイトバランス調整できることがわかる。
【0107】
以上、上記各実施形態では、適宜、親ブロックを子ブロックに分割して、子ブロックごとに代表値を計算した後、親ブロックの代表色差と、その親ブロックに含まれる各子ブロックの代表色差とを比較することで、所定の条件を満たす子ブロックを選択し、選択された子ブロックのみを用いて、親ブロックの代表値を再計算する。さらに、選択されなかった子ブロックの数に応じて親ブロックの信頼度も下方修正する。よって、各実施形態によれば、たとえ各ブロック内に有彩色のものが存在するときや、ブロック内のRGBの値が一様でない場合であっても、安定したホワイトバランス調整を行うことができる。
【0108】
なお、親ブロックと子ブロックとを区別せずに、単純に子ブロックのみを生成して、子ブロックごとに代表値を求めて、各子ブロックの代表値に基づいて、光源推定を行う方法も考えられる。しかし、この方法では、選択されなかった子ブロックの数に応じた親ブロックの信頼度の下方修正は行われないため、適切にホワイトバランス調整が行えない。つまり、例えば、図8に示すシーンを単純に子ブロック単位に分割して光源推定を行うと、図27に示すような結果を得る。すなわち、子ブロックの中には光源を昼光と推定されるものも含まれているが、全体としては光源を蛍光灯と推定される子ブロックが占める。そして、蛍光灯を光源と推定される子ブロックの信頼度は下方修正されないため、このままホワイトバランス調整が行われると、蛍光灯の影響を強く受けて、全体として紫がかった色に調整されてしまう。よって、単純に子ブロックのみを生成する場合、つまり、画像データを単純に従来よりも細かくブロック分割して各子ブロックの代表値に基づいて光源の推定を行う場合には、上記各実施形態のような効果は得られない。
【図面の簡単な説明】
【0109】
【図1】実施形態1乃至3におけるオートホワイトバランス装置の構成を示す機能ブロック図である。
【図2】実施形態1におけるオートホワイトバランス装置の構成をより詳細に示す機能ブロック図である。
【図3】入力画像の親ブロック分割の一例を示す図である。
【図4】入力画像の子ブロック分割の一例を示す図である。
【図5】子ブロック選択回路が行う閾値設定の手順を示すフローチャート図である。
【図6】色差平面上に定義された各光源の領域の一例を示す図である。
【図7】子ブロック選択回路が行う子ブロック選定の手順を示すフローチャート図である。
【図8】シーン全体に木々等の緑色の物体が存在する画像データの一例を示す図である。
【図9】親ブロックのみを生成して親ブロックの代表値を計算した場合における光源判定の結果の一例を示す図である。
【図10】子ブロックを生成して親ブロックの代表値を再計算した場合における光源判定の結果の一例を示す図である。
【図11】分散係数を求めるための関数の一例を示す図である。
【図12】飽和係数を求めるための関数の一例を示す図である。
【図13】ブロック信頼度を求めるための関数の一例を示す図である。
【図14】輝度係数を求めるための関数の一例を示す図である。
【図15】位置係数の設定例を示す図である。
【図16】被写体輝度に基づく修正係数を求めるための関数の一例を示す図である。
【図17】実施形態2におけるオートホワイトバランス装置の構成をより詳細に示す機能ブロック図である。
【図18】実施形態2における撮影条件判定装置が行う子ブロックの分割処理を実行するか否かの判定の手順を示すフローチャート図である。
【図19】撮影条件判定装置によって子ブロックの分割処理を実行しないと判定される特定の光源の色差平面上での領域を示す図である。
【図20】タングステン光と蛍光灯とが混ざり合った撮影シーンの一例を示す図である。
【図21】タングステン光と蛍光灯とが混ざり合った撮影シーンにおいて、子ブロックの選定を行った場合の選定結果を説明するための図である。
【図22】実施形態3における撮影条件判定装置が行う子ブロックの分割処理を実行するか否かの判定の手順を示すフローチャート図である。
【図23】白い壁に光源として蛍光灯とタングステン光とが照射されているシーンの一例を示す図である。
【図24】図23に示すシーンに対して、親ブロックのみを生成して各親ブロックの光源の推定を行った場合の光源推定結果を示す図である。
【図25】図23に示すシーンに対して、すべての親ブロックについて子ブロックを生成して各親ブロックの光源推定を行った場合の光源推定結果を示す図である。
【図26】図23に示すシーンに対して、蛍光灯とタングステン光とが混ざり合った光源をもつ親ブロックを除いて、子ブロックの生成が行われ、各親ブロックの光源の推定を行った場合の光源推定結果を示す図である。
【図27】図8に示すシーンに対して、画像を単純に子ブロック単位に分割して光源推定を行った場合の光源推定結果を示す図である。
【符号の説明】
【0110】
10 オートホワイトバランス装置、20 撮像装置、30 被写体輝度検出装置、40 撮影条件判定装置、110 ブロック分割回路、111 親ブロック分割回路、112 子ブロック分割回路、120 代表値計算回路、121 親ブロック代表値計算回路、122 子ブロック代表値計算回路、123 子ブロック選択回路、124 親ブロック代表値再計算回路、130 ホワイトバランス評価回路、131 分散係数計算回路、132 飽和係数計算回路、133 除外係数設定回路、134 ブロック信頼度計算回路、135 信頼度修正回路、136 全体信頼度計算回路、137 光源寄与計算回路、138 光源寄与修正回路、139 照明色推定回路、140 ホワイトバランスゲイン計算回路、150 ホワイトバランス調整回路。

【特許請求の範囲】
【請求項1】
撮像された画像に対してホワイトバランス調整を行うオートホワイトバランス装置において、
入力された画像を複数のブロックに分割するブロック分割手段と、
分割したブロックごとにブロック内の各色値に基づき、ブロックを代表する輝度及び色差を含む代表値を計算する代表値計算手段と、
各ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うホワイトバランス調整手段と、
を備え、
前記ブロック分割手段は、
入力された画像を複数の親ブロックに分割する親ブロック分割手段と、
各親ブロックをさらに複数の子ブロックに分割する子ブロック分割手段と、
を含み、
前記代表値計算手段は、
親ブロック内の各色値に基づき、親ブロックを代表する輝度及び色差を含む代表値を計算する親代表値計算手段と、
子ブロック内の各色値に基づき、子ブロックを代表する輝度及び色差を含む代表値を計算する子代表値計算手段と、
親代表色差と、その親ブロックに含まれる各子ブロックの子代表色差との比較に基づき、その親ブロックに含まれる子ブロック群の中から、所望の子ブロックをいくつか選択する子ブロック選択手段と、
選択された各子ブロックの代表値に基づいて、その親ブロックの代表値を再計算する親代表値再計算手段と、
を含み、
前記ホワイトバランス調整手段は、
再計算された各親ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とするオートホワイトバランス装置。
【請求項2】
請求項1に記載のオートホワイトバランス装置は、さらに、
想定する光源についてそれぞれ、親ブロックごとに、各光源下での白色物体の色差と各親ブロックの代表色差との色差平面上での距離を求めて、これら各距離に基づき前記各光源が前記各親ブロックのシーンを照明している信頼度を推定するブロック信頼度推定手段と、
前記子ブロック選択手段で選択された子ブロックの数に基づいて、前記各親ブロックの信頼度を修正する信頼度修正手段と、
を備え、
前記ホワイトバランス調整手段は、
再計算された各親ブロックの代表値及び修正された各親ブロックの信頼度に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とするオートホワイトバランス装置。
【請求項3】
請求項2に記載のオートホワイトバランス装置において、
前記信頼度修正手段は、
前記子ブロック選択手段で選択された子ブロックの数が少ないほど、親ブロックの信頼度が低くなるように修正することを特徴とするオートホワイトバランス装置。
【請求項4】
請求項1乃至3のいずれか1つに記載のオートホワイトバランス装置において、
前記子ブロック選択手段は、
親代表色差と、その親ブロックに含まれる各子ブロックの子代表色差との色差平面上での距離に基づいて、その親ブロックに含まれる子ブロック群の中から、所望の子ブロックをいくつか選択することを特徴とするオートホワイトバランス装置。
【請求項5】
請求項1乃至3のいずれか1つに記載のオートホワイトバランス装置において、
前記子ブロック選択手段は、
親代表色差と、その親ブロックに含まれる各子ブロックの子代表色差との色差平面上での距離をそれぞれ求めて、その距離が所定の閾値以下の子ブロックを、所望の子ブロックとして選択することを特徴とするオートホワイトバランス装置。
【請求項6】
請求項5に記載のオートホワイトバランス装置において、
前記所定の閾値は、各親ブロックの代表色差に基づいてそれぞれ定められることを特徴とするオートホワイトバランス装置。
【請求項7】
請求項1乃至6のいずれか1つに記載のオートホワイトバランス装置は、さらに
前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割するか否かを決定する子ブロック分割決定手段を備え、
子ブロックに分割しないと決定された場合、前記ホワイトバランス調整手段は、前記親代表値計算手段で計算された各親ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とするオートホワイトバランス装置。
【請求項8】
請求項7に記載のオートホワイトバランス装置において、
前記子ブロック分割手段は、前記画像の被写体輝度が、複数の光源が取りうる輝度範囲に含まれる場合に、前記画像を子ブロックに分割すると決定することを特徴とするオートホワイトバランス装置。
【請求項9】
請求項7に記載のオートホワイトバランス装置において、
前記子ブロック分割決定手段は、前記画像の被写体輝度が、昼光と蛍光灯もしくは昼光とタングステン光が共に取りうる輝度範囲に含まれる場合に、前記画像を子ブロックに分割すると決定することを特徴とするオートホワイトバランス装置。
【請求項10】
請求項7乃至9のいずれか1つに記載のオートホワイトバランス装置において、
前記子ブロック分割決定手段は、
前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割すると決定した場合、さらに、前記画像を構成する全親ブロックの代表色差の平均に基づいて、前記画像の光源が所定の光源と推定されるか否かを判定し、所定の光源ではないと推定される場合のみ、前記画像を子ブロックに分割すると最終決定することを特徴とするオートホワイトバランス装置。
【請求項11】
請求項7乃至9のいずれか1つに記載のオートホワイトバランス装置において、
前記子ブロック分割決定手段は、
前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割すると決定した場合、さらに、前記画像を構成する各親ブロックの代表色差に基づいて、親ブロックごとに親ブロックの光源が所定の光源と推定されるか否かを判定し、所定の光源ではないと推定される親ブロックのみ、子ブロックに分割すると最終決定することを特徴とするオートホワイトバランス装置。
【請求項12】
請求項10または11に記載のオートホワイトバランス装置において、
前記所定の光源は、色差平面上で定義された各光源領域のなかで重複する領域に含まれる光源であることを特徴とするオートホワイトバランス装置。
【請求項13】
請求項12に記載のオートホワイトバランス装置において、
前記重複する領域に含まれる光源は、蛍光灯とタングステン光であることを特徴とするオートホワイトバランス装置。
【請求項14】
撮像された画像に対してホワイトバランス調整を行うホワイトバランス調整方法において、
入力された画像を複数の親ブロックに分割する親ブロック分割ステップと、
各親ブロックをさらに複数の子ブロックに分割する子ブロック分割ステップと、
親ブロック内の各色値に基づき、親ブロックを代表する輝度及び色差を含む代表値を計算する親代表値計算ステップと、
子ブロック内の各色値に基づき、子ブロックを代表する輝度及び色差を含む代表値を計算する子代表値計算ステップと、
親代表色差と、その親ブロックに含まれる各子ブロックの子代表色差との比較に基づき、その親ブロックに含まれる子ブロック群の中から、所望の子ブロックをいくつか選択する子ブロック選択ステップと、
選択された各子ブロックの子代表値に基づいて、親ブロックの代表値を再計算する親代表値再計算ステップと、
再計算された各親ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うホワイトバランス調整ステップと、
を含むことを特徴とするホワイトバランス調整方法。
【請求項15】
請求項14に記載のホワイトバランス調整方法は、さらに、
想定する光源についてそれぞれ、親ブロックごとに各光源下での白色物体の色差と各親ブロックの代表色差との色差平面上での距離を求めて、これら各距離に基づき前記各光源が前記各親ブロックのシーンを照明している信頼度を推定するブロック信頼度推定ステップと、
前記子ブロック選択ステップにおいて選択された子ブロックの数に基づいて、前記親ブロックの信頼度を修正する信頼度修正ステップと、
を含み、
前記ホワイトバランス調整ステップでは、
再計算された各親ブロックの代表値及び修正された各親ブロックの信頼度に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とするホワイトバランス調整方法。
【請求項16】
請求項14又は15に記載のホワイトバランス調整方法は、さらに、
前記画像の被写体輝度に基づいて、前記画像を子ブロックに分割するか否かを決定する子ブロック分割決定ステップを含み、
子ブロックに分割しないと決定された場合、前記親代表値計算ステップにおいて計算された各親ブロックの代表値に基づいて、前記画像に対してホワイトバランス調整を行うことを特徴とするホワイトバランス調整方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図22】
image rotate

【図23】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2006−211440(P2006−211440A)
【公開日】平成18年8月10日(2006.8.10)
【国際特許分類】
【出願番号】特願2005−22416(P2005−22416)
【出願日】平成17年1月31日(2005.1.31)
【出願人】(590000846)イーストマン コダック カンパニー (1,594)
【Fターム(参考)】