IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許-画像処理装置および画像処理方法 図1
  • 特許-画像処理装置および画像処理方法 図2
  • 特許-画像処理装置および画像処理方法 図3
  • 特許-画像処理装置および画像処理方法 図4
  • 特許-画像処理装置および画像処理方法 図5
  • 特許-画像処理装置および画像処理方法 図6
  • 特許-画像処理装置および画像処理方法 図7
  • 特許-画像処理装置および画像処理方法 図8
  • 特許-画像処理装置および画像処理方法 図9
  • 特許-画像処理装置および画像処理方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-04
(45)【発行日】2024-07-12
(54)【発明の名称】画像処理装置および画像処理方法
(51)【国際特許分類】
   H04N 23/88 20230101AFI20240705BHJP
   H04N 23/10 20230101ALI20240705BHJP
【FI】
H04N23/88
H04N23/10
【請求項の数】 24
(21)【出願番号】P 2020033750
(22)【出願日】2020-02-28
(65)【公開番号】P2021136662
(43)【公開日】2021-09-13
【審査請求日】2023-02-27
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】門井 英貴
(72)【発明者】
【氏名】▲高▼橋 良輔
(72)【発明者】
【氏名】朽木 洋晃
(72)【発明者】
【氏名】吉田 明光
(72)【発明者】
【氏名】古谷 浩平
【審査官】三沢 岳志
(56)【参考文献】
【文献】特開2008-052428(JP,A)
【文献】特開2003-299109(JP,A)
【文献】特開2006-211416(JP,A)
【文献】特開2012-165077(JP,A)
【文献】特開2010-130468(JP,A)
【文献】特開2009-027480(JP,A)
【文献】特開2008-219414(JP,A)
【文献】特開2016-005105(JP,A)
【文献】特開2013-017083(JP,A)
【文献】特開2008-312253(JP,A)
【文献】特開2019-134332(JP,A)
【文献】特開2008-042644(JP,A)
【文献】特開2015-192152(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/88
H04N 23/10
(57)【特許請求の範囲】
【請求項1】
撮影画像から、撮影シーンを照明する光の色温度情報を領域ごとに示す色温度マップを生成する画像処理装置であって、
通信機能を有する通信光源の点灯および消灯を制御する制御手段と、
前記制御手段によって前記通信光源を点灯させたときの撮影画像の輝度と、前記制御手段によって前記通信光源を消灯させたときの撮影画像の輝度とに基づいて、撮影画像の領域ごとに、対応する撮影シーンの領域を照明する光源が、前記通信光源であるか、通信機能を有しない非通信光源であるか、前記通信光源と前記非通信光源の両方であるかを判別する判別手段と、
前記判別手段による判別の結果と、前記通信光源から通信によって取得した色温度情報と、撮影画像に基づいて推定した前記非通信光源の色温度情報とを用いて、前記色温度マップを生成する生成手段と、を有し、
前記判別手段は、前記制御手段によって前記通信光源を消灯させたときに閾値以上の輝度を有する領域のうち、前記制御手段によって前記通信光源点灯させたときに輝度が上昇した領域を、前記通信光源と前記非通信光源の両方が照明する領域と判別する、ことを特徴とする画像処理装置。
【請求項2】
前記非通信光源の色温度情報を推定する推定手段をさらに有し、
前記推定手段は、撮影画像から白色領域を検出することにより前記非通信光源の色温度情報を推定する、ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記推定手段は、撮影画像のうち、前記非通信光源によって照明され、前記通信光源によって照明されていない撮影シーンの領域に対応する領域から白色領域を検出することにより前記非通信光源の色温度情報を推定する、ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記推定手段は、
撮影画像のうち、前記非通信光源によって照明され、前記通信光源によって照明されていない撮影シーンの領域に対応する領域についての色評価値と、
撮影画像のうち、前記通信光源によって照明されている撮影シーンの領域に対応する領域についての色評価値との差を、前記通信光源の色温度が異なる状態で得られた撮影画像について取得し、
前記差の変化に基づいて前記非通信光源の色温度情報を推定する、
ことを特徴とする請求項2または3に記載の画像処理装置。
【請求項5】
前記色温度マップを用いて前記撮影画像に適用するホワイトバランス係数を算出する算出手段と、
前記ホワイトバランス係数を前記撮影画像に適用する適用手段と、をさらに有することを特徴とする請求項1から4のいずれか1項に記載の画像処理装置。
【請求項6】
前記算出手段は、前記撮影画像の着目領域に対応する色温度情報を前記色温度マップを用いて取得し、該取得した色温度情報に基づいて前記ホワイトバランス係数を算出することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記算出手段は、前記撮影画像のうち、前記色温度マップで前記着目領域と同じ色温度情報を有する領域から検出した白色領域に基づいて前記ホワイトバランス係数を算出することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記算出手段は、前記色温度マップにおいて同じ色温度情報を有する領域の面積に応じた重みで色温度情報を加算して得られた色温度情報に基づいて前記ホワイトバランス係数を算出することを特徴とする請求項5に記載の画像処理装置。
【請求項9】
前記加算において、前記撮影画像の着目領域に対応する色温度の重みを大きくすることを特徴とする請求項8に記載の画像処理装置。
【請求項10】
前記着目領域が複数の候補領域から選択されており、選択されなかった候補領域に、前記色温度マップにおいて前記着目領域と異なる色温度情報を有する候補領域が存在する場合、前記算出手段は、当該選択されなかった候補領域に関する重みを用いて前記色温度情報を算出する請求項9に記載の画像処理装置。
【請求項11】
前記算出手段は、前記色温度マップにおいて前記着目領域に関して複数の色温度情報が設定されている場合、前記複数の色温度情報を同じ色温度情報に対応する領域の面積に応じて加算して得られた色温度情報に基づいて前記ホワイトバランス係数を算出することを特徴とする請求項6に記載の画像処理装置。
【請求項12】
前記算出手段は、前記面積を求める際、ノイズ成分と判定される領域の面積を除外することを特徴とする請求項11に記載の画像処理装置。
【請求項13】
前記算出手段は、前記色温度マップを用いて前記撮影画像の領域ごとにホワイトバランス係数を算出することを特徴とする請求項5に記載の画像処理装置。
【請求項14】
前記算出手段は、前記色温度マップにおける色温度情報の信頼度がいずれも予め定められた閾値未満である場合には、前記領域ごとのホワイトバランス係数の算出に代えて前記撮影画像の全体に基づいてホワイトバランス係数を算出することを特徴とする請求項13に記載の画像処理装置。
【請求項15】
前記算出手段は、前記撮影画像に対応する距離マップを用いて前記色温度情報の信頼度を算出することを特徴とする請求項14に記載の画像処理装置。
【請求項16】
前記算出手段は、前記撮影画像のうち、前記信頼度が前記閾値以上の前記色温度情報を有する領域については領域ごとにホワイトバランス係数を算出する、請求項14または15に記載の画像処理装置。
【請求項17】
前記適用手段は、前記撮影画像のうち、前記信頼度が前記閾値以上の前記色温度情報を有する領域については領域ごとに算出されたホワイトバランス係数を適用し、前記信頼度が前記閾値未満の前記色温度情報を有する領域については前記撮影画像の全体に基づいて算出されたホワイトバランス係数を適用することを特徴とする、請求項16に記載の画像処理装置。
【請求項18】
前記算出手段は、前記色温度マップの色温度情報のうち、通信光源の寄与率が予め定めた閾値未満である色温度情報については信頼度を低下させることを特徴とする請求項14から17のいずれか1項に記載の画像処理装置。
【請求項19】
前記算出手段は、前記色温度マップのうち、色温度情報が経時変化している領域について、色温度情報の信頼度を低下させることを特徴とする請求項14から17のいずれか1項に記載の画像処理装置。
【請求項20】
前記算出手段は、前記撮影画像が動画もしくは連写撮影された静止画でない場合には、色温度情報が経時変化している領域について、色温度情報の信頼度を低下させないことを特徴とする請求項19に記載の画像処理装置。
【請求項21】
撮像素子と、
前記撮像素子を用いて得られた撮影画像を用いる請求項1から19のいずれか1項に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項22】
前記撮像装置は、光通信機能を有する通信光源から信号を受信するための光通信センサーを有し、前記光通信センサーが、前記撮像素子が有する画素アレイに規則的に配置されることを特徴とする請求項21に記載の撮像装置。
【請求項23】
通信機能を有する通信光源の点灯および消灯を制御する制御手段を有する画像処理装置が実行する、撮影画像から、撮影シーンを照明する光の色温度情報を領域ごとに示す色温度マップを生成するための画像処理方法であって、
前記制御手段によって前記通信光源を点灯させたときの撮影画像の輝度と、前記制御手段によって前記通信光源を消灯させたときの撮影画像の輝度とに基づいて、撮影画像の領域ごとに、対応する撮影シーンの領域を照明する光源が、前記通信光源であるか、通信機能を有しない非通信光源であるか、前記通信光源と前記非通信光源の両方であるかを判別する判別工程と、
前記判別工程による判別の結果と、前記通信光源から通信によって取得した色温度情報と、撮影画像に基づいて推定した前記非通信光源の色温度情報とを用いて、前記色温度マップを生成する生成工程と、を有し、
前記判別工程では、前記制御手段によって前記通信光源を消灯させたときに閾値以上の輝度を有する領域のうち、前記制御手段によって前記通信光源点灯させたときに輝度が上昇した領域を、前記通信光源と前記非通信光源の両方が照明する領域と判別する、ことを特徴とする画像処理方法。
【請求項24】
コンピュータを、請求項1から19のいずれか1項に記載の画像処理装置が有する各手段として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置および画像処理方法に関し、特には光源情報の取得技術に関する。
【背景技術】
【0002】
デジタルカメラやデジタルビデオカメラなど、撮像素子を用いる撮像装置には、撮像によって得られた画像(撮像画像)に基づいて画像のホワイトバランスを自動で調整するオートホワイトバランス制御機能を有するものがある。例えばオートホワイトバランス制御機能は、撮像画像から白色と思われる部分を検出し、検出した部分が無彩色となるように算出した色成分ごとのゲイン(ホワイトバランス係数もしくは補正値と呼ばれる)を画像全体に適用することで実現される。
【0003】
さらに、特許文献1では、色温度の異なる複数の環境光源が存在するシーンの撮像画像について、領域ごとに異なるホワイトバランス係数を適用することで、画像全体で適切なホワイトバランスを実現するデジタルカメラが開示されている。また、特許文献2では、撮像画像に基づいて、画像全体に同一のホワイトバランス係数を適用するか、領域ごとに異なるホワイトバランス係数を適用するかを切り替える撮像装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2002-271638号公報
【文献】特開2015-192152号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1および2では、撮像画像のみに基づいて環境光の色温度を推定するため、撮影シーンに無彩色の被写体が含まれない場合には色温度の推定精度が低下する場合がある。
【0006】
本発明は、撮影画像以外の情報を用いて環境光の色温度を精度よく推定することが可能な画像処理装置および画像処理方法の提供を目的とする。
【課題を解決するための手段】
【0007】
上述の目的は、撮影画像から、撮影シーンを照明する光の色温度情報を領域ごとに示す色温度マップを生成する画像処理装置であって、通信機能を有する通信光源の点灯および消灯を制御する制御手段と、制御手段によって通信光源を点灯させたときの撮影画像の輝度と、制御手段によって通信光源を消灯させたときの撮影画像の輝度とに基づいて、撮影画像の領域ごとに、対応する撮影シーンの領域を照明する光源が、通信光源であるか、通信機能を有しない非通信光源であるか、通信光源と非通信光源の両方であるかを判別する判別手段と、判別手段による判別の結果と、通信光源から通信によって取得した色温度情報と、撮影画像に基づいて推定した非通信光源の色温度情報とを用いて、色温度マップを生成する生成手段と、を有し、判別手段は、制御手段によって通信光源を消灯させたときに閾値以上の輝度を有する領域のうち、制御手段によって通信光源点灯させたときに輝度が上昇した領域を、通信光源と非通信光源の両方が照明する領域と判別する、ことを特徴とする画像処理装置によって達成される。
【発明の効果】
【0008】
本発明によれば、撮影画像以外の情報を用いて環境光の色温度を精度よく推定することが可能な画像処理装置および画像処理方法を提供することができる。
【図面の簡単な説明】
【0009】
図1】発明の実施形態に係る画像処理装置の一例である撮像装置に関する図
図2】実施形態に係る色温度マップ生成処理に関するフローチャート
図3図2の色温度同定処理に関する図
図4】色温度マップを用いたホワイトバランス係数の算出処理に関するフローチャート
図5】着目領域の例を説明するための模式図
図6】色温度マップの一例を示した模式図
図7】第7実施形値おける領域別ホワイトバランス制御処理に関するフローチャート
図8】色温度マップの経時変化の例を示す模式図
図9】色温度マップと距離マップに基づいた光源信頼度の重み付けに関する模式図
図10】光源信頼度に応じた部分WB係数と全体WB係数の混合比の例を示す図
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明をその例示的な実施形態に基づいて詳細に説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定しない。また、実施形態には複数の特徴が記載されているが、その全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
なお、以下の実施形態では、本発明をデジタルカメラ、デジタルビデオカメラなどの撮像装置で実施する場合に関して説明する。しかし、本発明に撮像機能は必須でなく、画像データを処理可能な任意の電子機器で実施可能である。このような電子機器には、ビデオカメラ、コンピュータ機器(パーソナルコンピュータ、タブレットコンピュータ、メディアプレーヤ、PDAなど)、携帯電話機、スマートフォン、ゲーム機、ロボット、ドローン、ドライブレコーダが含まれる。これらは例示であり、本発明は他の電子機器でも実施可能である。
【0012】
●(第1実施形態)
図1(a)は、本発明の実施形態に係る画像処理装置の一例として撮像装置100(以下、カメラ100という)の基本的な機能構成例を示すブロック図である。光学系101は、レンズ群、シャッター、絞りなどを備え、被写体の光学像を撮像素子102の結像面に形成する撮像光学系である。レンズ群には固定レンズと可動レンズが含まれ、可動レンズには手ぶれ補正用のレンズ、フォーカスレンズ、変倍レンズなどが含まれる。また、絞りがシャッターの機能を有していてもよい。可動レンズ、絞り、およびシャッターの動作は、カメラ100の主制御部であるCPU103によって制御される。光学系101は交換可能であってもなくてもよい。なお、光学系101が交換可能な場合、シャッターはカメラ100の本体側に設ける。なお、カメラ100はメカニカルシャッターを有さなくてもよい。CPU103は、光学系101の情報(フォーカスレンズ位置、焦点距離、絞り値など)を直接、あるいは光学系101のコントローラを通じて間接的に取得可能である。
【0013】
撮像素子102は、例えば、CCDイメージセンサ又はCMOSイメージセンサであり、光電変換領域を有する画素が複数、2次元状に配列されている。また、撮像素子102は特定の色パターンを有するカラーフィルタを有し、各画素には色パターンに応じた1色のフィルタが設けられている。本発明はカラーフィルタの色パターンに依存しないが、ここでは原色ベイヤ配列のカラーフィルタが設けられているものとする。したがって、各画素にはR(赤)、G(緑)、B(青)のいずれかのカラーフィルタが設けられている。撮像素子102は光学像を各画素で光電変換し、画素ごとの輝度情報を示すアナログ画像信号に変換する。
【0014】
撮像素子102が生成するアナログ画像信号は、A/D変換器(図示せず)によってデジタル画像信号に変換される。なお、A/D変換器は撮像素子102が有してもよいし、CPU103がA/D変換を行ってもよい。A/D変換器の出力するデジタル画像信号を構成する画素信号はその信号を生成した画素に設けられたカラーフィルタの色の輝度成分のみを有するRAWデータである。CPU103はRAWデータを一次記憶装置104に記憶する。なお、撮像素子102の撮影感度(以下ISO感度という)はCPU103によって設定される。
【0015】
CPU103は二次記憶装置107に記憶されたプログラムを一次記憶装置104に転送して実行することにより、カメラ100の各部を制御し、カメラ100の様々な機能を実現する。なお、以下の説明において、CPU103がプログラムを実行して実現する機能の少なくとも一部は、ASICなどの専用ハードウェアによって実現してもよい。
【0016】
一次記憶装置104は、例えばRAMなどの揮発性記憶装置である。一次記憶装置104はCPU103がプログラムを実行するために用いるほか、画像データのバッファメモリ、画像処理用の作業領域、表示用のビデオメモリなどとして用いられる。
【0017】
二次記憶装置107は、例えばEEPROMなどの書き換え可能な不揮発性記憶装置である。二次記憶装置107には、CPU103が実行可能なプログラム(命令)や、カメラ100の設定、GUIデータなどが記憶されている。
【0018】
記録媒体106は、例えば半導体メモリカードなどの書き換え可能な不揮発性記憶装置である。記録媒体106はカメラ100に対して着脱可能であってもなくてもよい。カメラ100が生成したデータ(静止画データ、動画データ、音声データなど)は、記録媒体106に記録することができる。つまり、カメラ100は、記録媒体106の読み書き機能と、着脱機構(記録媒体106が着脱可能な場合)とを有する。なお、カメラ100が生成したデータの記録先は記録媒体106に限定されない。カメラ100が有する通信インターフェースを通じて外部機器に送信され、外部機器がアクセス可能な記録装置に記録してもよい。
【0019】
表示部108は、例えば液晶ディスプレイである。CPU103は表示部108の表示制御装置として機能する。撮影スタンバイ状態や動画像の記録中、表示部108には撮影した動画像がリアルタイムに表示され、表示部108は電子ビューファインダーとして機能する。また、表示部108には、記録媒体106に記録されている画像データや、メニュー画面などのGUI(Graphical User Interface)画像も表示される。
【0020】
操作部109は、ユーザ操作を受け付ける入力デバイス群の総称である。操作部109には、例えば、ボタン、レバー、およびタッチパネルなどが用いられる。操作部109は音声や視線など、物理的な操作が不要な入力デバイスを有してもよい。操作部109が有する入力デバイスは割り当てられた機能に応じた名前が付けられる。代表例としては、シャッターボタン、メニューボタン、方向キー、決定(セット)ボタン、モード切り替えダイヤルなどが挙げられる。なお1つの入力デバイスに異なる機能が選択的に割り当てられてもよい。
【0021】
画像処理回路105は画像データ(RAWデータであっても、現像処理後の画像データであってもよい)に対して予め定められた画像処理を適用し、異なる形式の画像データを生成したり、各種の情報を取得および/または生成したりする。画像処理回路105例えば特定の機能を実現するように設計されたASICのような専用のハードウェア回路であってもよいし、DSPのようなプログラマブルプロセッサがソフトウェアを実行することで特定の機能を実現する構成であってもよい。
【0022】
ここで、画像処理回路105が適用する画像処理には、前処理、色補間処理、補正処理、データ加工処理、評価値算出処理、特殊効果処理などが含まれる。前処理には、信号増幅、基準レベル調整、欠陥画素補正などが含まれる。色補間処理は、画素から読み出した画像データに含まれていない色成分の値を補間する処理であり、デモザイク処理や同時化処理とも呼ばれる。補正処理には、ホワイトバランス制御、階調補正(ガンマ処理)、光学系101の光学収差や周辺減光の影響を補正する処理、色を補正する処理などが含まれる。データ加工処理には、合成処理、スケーリング処理、符号化および復号処理、ヘッダ情報生成処理などが含まれる。評価値算出処理は、自動焦点検出(AF)に用いる信号や評価値の生成、自動露出制御(AE)に用いる評価値の算出処理などである。特殊効果処理には、ぼかしの付加、色調の変更、リライティング処理などが含まれる。なお、これらは画像処理回路105が適用可能な画像処理の例示であり、画像処理回路105が適用する画像処理を限定するものではない。
【0023】
画像処理回路105がRAWデータに対して適用する画像処理のうち、RAWデータを写真のデータとして表示や印刷などに利用可能な汎用的な形式の画像データに変換するための一連の画像処理を現像処理と呼ぶ。一般に現像処理はホワイトバランス制御処理および色補完処理を含み、その他にもレンズ収差補正処理、ノイズ低減(NR)処理、ガンマ(階調変換)処理などが含まれうる。
【0024】
また、画像処理回路105は、カメラ100に設定可能な撮影モードに対応した一連の画像処理セットが予め登録されている。これにより、例えば夜景や夕焼けといった特定のシーンを撮影して得られた画像データに対し、シーンに適した画像処理が実行される。
【0025】
なお、本実施形態では画像処理回路105がホワイトバランス制御に関する処理を実行するが、ホワイトバランス制御に関する処理の少なくとも一部を、CPU103が実行してもよい。
【0026】
通信部110は通信光源201等の外部装置との通信インターフェースである。通信部110は有線および無線通信規格の1つ以上に準拠した通信が可能である。例えば、通信部110は、図1(b)に示すように、通信の種類や規格に応じて個別の通信部を有してもよい。図1(b)には通信部100が有線通信部100a、無線通信部100b、光無線通信部100cを有している例を示している。ここで、無線通信部100bはWi-Fi(IEEE 802.11シリーズの1つ以上)、Bluetooth(登録商標)などの、電磁波を用いた通信規格に準拠した通信を行う。光無線通信部100cはIrDAやLi-Fiなど、光を用いた通信規格に準拠した通信を行う。有線通信部100aはEthernet(登録商標)、USBなど、有線伝送路を用いる通信規格に準拠した通信を行う。各通信部が複数の通信規格に対応してもよい。
【0027】
有線通信部100a、無線通信部100b、光無線通信部100cは外部装置との通信が実現できればどのような方法でカメラ100に実装されてもよい。特に光無線通信部100cは、撮像素子102の一部の画素を代替するように実装することができる。このように、撮像素子102上に配置された光無線通信部100cを光通信センサー110dと呼ぶ。
【0028】
光通信センサー100dは、図1(c)に示すように、複数の画素が2次元的に配置された画素アレイ102に規則的に配置される。このように、複数の光通信センサー100dを画素の一部を代替するかたちで配置することにより、個々の光通信センサー100dにより、光通信センサー100dを中心とした部分領域ごとに異なる情報を受信できる。例えば画素アレイ102aに10個の光通信センサー100dが等間隔に配置された場合、撮影画像を、それぞれが1つの光通信センサー100dを含む10個の部分領域に分割することができる。照射光を用いて光源の情報を送信する光源が存在する場合、反射光として光通信センサー100dが受信する光源の情報から、撮影シーンを照らす光源の情報を部分領域ごとに取得することができる。光通信センサー100dは例えば光源が通信に用いる光の波長を選択的に透過する分光特性を有するフィルタをカラーフィルタと同様に備えた画素であってよい。なお、撮影画像データを生成する場合には、光通信センサー100dを欠陥画素として取り扱う。
【0029】
光源群200は撮影シーンを照らす複数の光源である。本実施形態において光源群200は通信光源201と非通信光源202とを有する。通信光源201は制御部201a、通信部201b、および発光部201cを有し、通信部110を通じてカメラ100と通信が可能な光源である。発光部201cは例えばR(赤)、G(緑)、B(青)の複数のLEDである。通信光源201はインテリジェントな光源(スマート光源)であり、制御部201aが発光部201cのLEDの発光強度を色成分ごとに制御することにより、光源の色温度や明るさを変更することができる。制御部201aは発光部201cの明るさ(オンオフ含む)や色温度をカメラ100からの指示に従って変更する。また、制御部201cは、カメラ100との通信が確立した際や、カメラ100からの要求に応じて、カメラ100に通信光源201の情報(明るさ、色温度、調節可能なパラメータとその範囲、光通信機能の有無など。以下、これらを光源情報という)を送信することができる。
【0030】
非通信光源202は外部装置との通信機能を有しない光源(従来の光源)である。非通信光源202は人工光源だけでなく、太陽光のような自然光源も含む。非通信光源は、従来の蛍光灯など、カメラ100から発光状態のコントロールや情報取得ができないものである。
【0031】
(色温度マップの作成)
図2は本実施形態においてCPU103が各部を制御して実現される色温度マップの生成動作に関するフローチャートである。色温度マップとは、撮影画像の部分領域ごとに、対応する撮影シーンの照明光の色温度情報を記録した情報である。
【0032】
なお、色温度マップが示す撮影シーンの範囲は撮影画像の撮影シーンと完全に一致していなくてもよい。例えば撮影シーンを包含する範囲について色温度マップが作成されたり、撮影シーンの一部(例えば撮影シーンの縁部の一部)が色温度マップに含まれなかったりしてもよい。
【0033】
色温度情報は、光源が発する光の色を、対応する黒体の温度(単位ケルビン(K))で表した色温度であってよい。色度が黒体軌跡上に存在しない光源については相関色温度であってよく、この場合には黒体軌跡からの色差Δuvを合わせた情報であってもよい。またXYZ表色系の色度座標値(x,y)でもよい。また、分光分布のスペクトルをサンプリングして記録するなど、光源または光源が発する光の色を表す情報であれば形式は問わない。以下、「色温度」は光源または光源が発する光の色を任意の基準で表した情報の総称として用いる。
【0034】
なお、通信光源201の発光体などの経年劣化により、光源の色温度が変化すると、通信光源201が送信する仕様上の色温度と、実際の色温度との差が大きくなる。そのため、色温度マップに光源の使用期間や使用状況に関する情報を付加してもよい。また、例えば光源の使用期間や使用状況に基づいて、仕様上の色温度と実際の色温度との差が大きいであろうと判定される場合、色温度に代えて通信光源201の固有情報を色温度マップに含めてもよい。この場合、色温度マップから色温度を知ることはできないが、色温度が異なる部分領域を把握することは可能である。また、色温度マップに輝度情報を付加してもよい。
【0035】
図2に示す色温度マップの生成動作は、操作部109を通じたユーザ指示に応答して実行してもよいし、ホワイトバランス制御動作の一部として自動的に実行されてもよい。なお、色温度マップの生成動作を開始する前に、CPU103は通信部110の通信範囲に存在する通信光源を検出し、検出した通信光源のそれぞれと通信可能な状態にあるものとする。なお、ここでは説明および理解を容易にするため、通信光源を制御するコマンド体系は全ての通信光源について共通であるものとする。また、撮像素子102に光通信センサー100dが設けられているものとする。
【0036】
S201でCPU103は、通信部110を通じて通信光源201に対して消灯を指示する命令を送信する。この命令は例えば対象とする通信光源201を限定しない命令であってもよいし、事前に検出されている通信光源201のそれぞれを指定した命令であってもよい。これにより、通信範囲に存在する通信光源201は消灯する。一方、非通信光源202の状態に変化はない。
【0037】
S202でCPU103は撮影を実行して撮影画像を取得する。あるいは、並行して動画撮影を行っている場合には、消灯命令を送信した後に撮影されたフレーム画像を用いてもよい。CPU103は画像処理部105を用いて撮影画像の輝度情報を取得し、撮影シーンに照明されている領域が存在するか否かを判定する。
【0038】
例えば、撮影画像の全体の平均輝度や、撮影画像を分割した部分領域ごとの平均輝度などに基づいて、閾値以上の輝度を有する領域が存在すると判定された場合、撮影シーンで非通信光源202によって照明されている部分が存在することがわかる。撮影シーンに照明されている領域が存在していると判定されれば、CPU103はS203を実行する。撮影シーンに照明されている領域が存在していると判定されなければ、CPU103はS206を実行する。
【0039】
上述の通り、CPU103は、通信光源201との通信によって通信光源201の色温度を取得することができる。しかし、非通信光源202については撮影画像から色温度を推定する必要がある。S203~S205は、非通信光源202の色温度を推定する処理である。
【0040】
S203でCPU103は、通信光源201が色温度を制御する機能を有するか否かを判定し、色温度を制御する機能を有すると判定されればS205を実行し、色温度を制御する機能を有すると判定されなければS204を実行する。この判定は、通信光源201との通信を確立する際に取得した光源情報に基づいて、あるいはS203で通信光源201から取得した光源情報に基づいて行うことができる。
【0041】
S204でCPU103は、従来のオートホワイトバランス制御方法を用いて非通信光源202の色温度を推定する。例えばCPU103は、撮影画像のうち、白色であると判定される画素の値を用いて色温度を推定する。
【0042】
例えば、画像処理部105は、撮影画像を所定数に分割(例えば水平方向に24分割、垂直方向に16分割)し、各分割領域に含まれるRGB信号に基づいて色評価値を算出する。そして、画像処理部105は、色評価値が予め定められた白範囲の評価値に含まれる領域を白領域として検出する。なお、「白領域」は白に限らず無彩色の領域を含むものとする。また、S204の段階では通信光源201は消灯しているため、分割領域のうち、平均輝度が閾値以上の分割領域から白領域を検出する。
【0043】
CPU103は、予め複数種類の異なる光源下で白色物体を撮影して得られた撮影画像から同様にして求めた色評価値のうち、画像処理部105が求めた色評価値との色度図上での距離が最も近い光源を特定する。そして、CPU103は、特定した光源の色温度を、画像処理部105が求めた色評価値に対応する分割領域を照明する非通信光源202の色温度と推定する。
【0044】
このようにして、分割領域を照明している非通信光源202の色温度を推定することができる。なお、ここで推定される色温度は、分割領域を照明している非通信光源202を1つの光源と仮定した色温度である。異なる色温度の複数の非通信光源202が1つの分割領域を照明している場合、この方法では個々の非通信光源202の色温度を推定することはできない。
【0045】
なお、無彩色部分を含まない分割領域は白領域として検出されないため、その分割領域について光源の色温度を推定することは難しい。このような分割領域についてCPU103は、予め定められた色温度を記録したり、色温度の検出不可能領域としてエラー値を記録したりしてもよい。
【0046】
S205は、色温度をカメラ100から制御可能な通信光源201を使って非通信光源202の色温度を推定する色温度同定処理に相当する。図3(a)は、S205における色温度同定処理を模式的に示した図、図3(b)は色温度同定処理のフローチャートである。301は撮影シーン(撮影範囲)を示す。したがって、図3(a)に示す撮影範囲301は通信光源201が照明する領域と、非通信光源202が照明する領域と、両方の光源が照明する領域とを含んでいる。
【0047】
S205の実行開始時には通信光源201は消灯しているため、状態1に相当する。
まずS2050でCPU103は、この状態で得られる撮影画像について、画像処理部105を用い、S204と同様にして、閾値以上の平均輝度を有する分割領域について色評価値を算出する。
【0048】
次にS2051でCPU103は、通信光源201を点灯させて状態2にする。そして、CPU103は、通信光源201を所定の色温度で点灯させる。CPU103は、S2051の2度目以降の実行時には通信光源201の色温度を変化させる。CPU103は画像処理部105に、状態1で得られた撮像画像において非通信光源202が照明していた領域(撮影範囲301の部分領域302)のうち、通信光源201の点灯によって輝度が上昇した領域303(重複領域)を撮影画像から検出する。そして、CPU103は、画像処理部105に検出した重複領域の色評価値を算出させる。
【0049】
S2053で画像処理部105は、重複領域について算出した色評価値を、状態1での撮影画像の同領域について得られている色評価値と比較し、差をCPU103に出力する。
S2054でCPU103は、通信光源201を予め定められた複数の色温度のそれぞれで点灯させた状態で色評価値の差を算出したか否かを判定する。CPU103は、まだ色評価値の差を求めていない色温度があれば再度S2051を実行し、予め定められた複数の色温度の全てについて色評価値の差が算出されていればS2055を実行する。このように、S2051~S2054においてCPU103は、通信光源201の色温度を段階的に変化させながら、画像処理部105で得られる色評価値の差の値を求める。
【0050】
S2055でCPU103は、色評価値の差が極小となる通信光源の色温度を特定し、非通信光源202の色温度と見なす。なぜなら、通信光源201の色温度が非通信光源202の色温度と等しくなった場合、部分領域303について状態1と状態2とで得られる色評価値は等しくなるからである。なお、状態1で色評価値を求める際に重複領域を検出し、状態1においても重複領域について色評価値を求めることで、状態1と状態2とで同じ領域(重複領域)について色評価値を求めることができ、推定精度を高めることができる。しかし、状態2においては少なくとも通信光源201に照明される領域について色評価値を求めればよい。ただし、状態1と状態2とで色評価値を求める領域が異なると、領域に含まれる被写体が異なる場合があり、その場合には推定精度が低下する可能性がある。
【0051】
なお、色評価値の差が極小となる通信光源201の色温度が検出できなかった場合、CPU103は非通信光源202の色温度として、通信光源201の色温度の可変範囲で最小となる色温度を設定したり、エラーを示す値を設定したりすることができる。例えば、非通信光源202の色温度が通信光源201の色温度の可変範囲に含まれない場合はこれに該当する。例えば通信光源201の色温度が3000Kから7000Kの範囲で可変であり、非通信光源202の色温度が8000Kの場合、色評価値の差の極小点は特定できない。この場合CPU103は、非通信光源202の色温度として7000Kの色温度を設定したり、エラー値を設定したりすることができる。
【0052】
また、状態2において通信光源201と非通信光源202との両方で照明される領域303が明るすぎたり暗すぎたりする場合、RGB信号が飽和したり、0に近い値になったりするため、領域303の色評価値を正確に算出するのが難しくなる。このような場合もCPU103は非通信光源202の色温度としてエラー値を設定することができる。
【0053】
S205の色温度同定処理は、S204の白範囲検出とは違い、撮影シーンに無彩色の被写体が無くても非通信光源202の色温度を推定できるメリットがある。しかし、色評価値は物体本来の色の影響を受けるため、被写体が強い有彩色を有する場合には色温度の推定精度が低下する。そのため、領域303に含まれる分割領域のうち、強い有彩色を有する分割領域は除外して状態1および状態2の色評価値を算出してもよい。
【0054】
撮影範囲301のうち、通信光源201と非通信光源202との両方で照明される領域303は、状態1で輝度が閾値以上の領域のうち、状態2でさらに明るくなった領域として検出することができる。領域303が存在しない場合は、状態1で輝度が閾値以上の領域と、状態2で状態1よりも明るくなった領域とのうち、距離が近い分割領域を疑似的な重複領域としてもよい。
【0055】
ただし、擬似的な重複領域とする部分領域が離れていることにより、それぞれの部分領域が違う色の被写体を撮影している可能性が高くなり、色温度の推定精度が低下する。そのため、状態1で輝度が閾値以上の領域と、状態2で輝度が閾値以上の領域とのそれぞれについてS204と同様の方法で求めた色評価値の差を算出してもよい。
【0056】
なお、S205において、色温度差の極小値または最小値が検出できれば通信光源201の色温度をどのように変化させてもよい。以下に考えられるいくつかの例を示す。
(例1)色温度を調整可能範囲で昇順または降順に切り替える。例えば3000K→3500K→4200K→5000K→6500Kのように切り替える。
(例2)例1では通信光源201の光が赤から青に徐々に変わるため、撮影シーンを見ているユーザーが照明の色が変わっていることを知覚しやすい。例えば、3000K→6500K→3500K→5000K→4200Kのように低色温度、高色温度を交互に切り替えることにより、赤い光と青い光が短時間で切り替わるため、人間の目には赤い光や青い光が知覚されにくくなる。
(例3)例1、2では調整可能範囲の全体にわたって色温度を変化させていた。しかし、色温度を変化させる範囲を調整可能範囲の一部にしてもよい。例えば、S204をS205の前に実行し、非通信光源202の色温度を暫定的に推定する。そして、S205では、推定した色温度を含む一部の範囲で色温度を変化させる。例えば暫定的に推定された色温度が4200Kだった場合、色温度を3500Kから5000Kの範囲で変化させることができる。
(例4)公知の最適化問題を解く手法、例えば勾配法などを用いて、変化させる色温度の順序を決定する。
なお、これらの例1~例4は組み合わせてもよいし、他の方法で色温度を変化させてもよい。
【0057】
S204またはS205により、非通信光源202の色温度を検出すると、CPU103はS206以降を実行して色温度マップを生成する。
S206でCPU103は、通信光源201が光通信機能を有するか否かを判定し、光通信機能を有すると判定されればS207を実行し、光通信機能を有しないと判定されなければS209を実行する。この判定は、通信光源201との通信を確立する際に取得した光源情報に基づいて、あるいはS203で通信光源201から取得した光源情報に基づいて行うことができる。
【0058】
S207でCPU103は、画像処理部105を通じて光通信センサー110dの出力する信号を受信し、復調およびデコードなど必要な処理を適用して、通信光源201が光通信によって送信した色温度を撮影画像の領域ごとに取得する。
【0059】
S208でCPU103は、光通信センサー100dのそれぞれから色温度が取得できたか否かを判定する。通信光源201との光通信は被写体の反射光を利用するため、通信光源201が照明する光の反射率が低い被写体が存在すると、通信品質が低下する。例えば、黒色の被写体や、光を散乱したり吸収したりする材質の被写体は光の反射率が低い。なお、複数の光源から照明されている領域の光を受光する光通信センサー100dは、複数の光源のそれぞれからデータを受信する。
【0060】
通信品質が低く、データが正しく得られない場合や、通信光源201が光通信機能を有しない場合、S209でCPU103は、撮影シーンにおいて個々の通信光源201が照明する領域を判定する。具体的には、CPU103はS201と同様に、すべての通信光源201を消灯させる(図3(a)の状態1に相当)。
【0061】
この状態で得られる撮影画像において閾値以上の輝度を有する領域は非通信光源202が照明している領域に相当する。CPU103は、撮影画像のうち、すべての通信光源201が消灯した状態で得られた撮影画像において閾値以上の輝度を有する領域について、S204またはS205で推定した非通信光源202の色温度を設定する。色温度の設定は上述した分割領域単位で行ってもよいし、画素単位で行ってもよい。
【0062】
次にCPU103は、通信光源201を一つずつ点灯させながら、撮影画像を取得する。図3(a)の状態2に関して説明したように、撮影画像において、消灯していた通信光源201を点灯させたことによって明るくなった領域があれば、点灯させた通信光源201に照明されている領域と判定できる。CPU103は、撮像画像のうち、点灯させた通信光源201に照明されていると判定された領域について、点灯させた通信光源201の色温度を設定する。
【0063】
CPU103は、点灯させた通信光源201の色温度を、その通信光源201との通信を確立する際に取得した光源情報もしくはS203でその通信光源201から取得した光源情報を利用して色温度マップに設定することができる。あるいは、CPU103は、点灯させた通信光源201からS209において改めて光源情報を取得して色温度マップに設定してもよい。
【0064】
CPU103は、残りの通信光源201について順次同様の処理を実行し、個々の通信光源201が照明する領域について、その通信光源の色温度を設定する。すべての通信光源201に対して色温度の設定が終了すると、撮影画像の各領域に1つまたは複数の色温度が設定される。
【0065】
S210でCPU103は、最終的な色温度マップを生成する。複数の光源が存在する場合、図3(a)の領域303のように、複数の光源によって照明される領域(以下、重複領域という)が発生しうる。S209では個々の光源が照明する領域についてその光源の色温度を設定するため、複数の光源で照明される領域については複数の色温度が設定されている。
【0066】
S210では、このように複数の色温度が設定されている重複領域について、色温度を合成して1つの色温度が設定されるようにする。色温度は公知の方法を用いて合成することができるが、以下に一例を説明する。
【0067】
一般的に、重複領域の色温度は、被写体の反射率が大きく異ならない場合、照度が大きい光源の色温度に近づく傾向がある。例えば4000Kと5000Kの2つの光源に照明される重複領域において、5000Kの光源による照度の方が高い場合、重複領域の色温度は4500Kよりも大きな値(ただし5000K未満)になる。
【0068】
照度は光源からの距離に依存するが、光源から被写体までの距離は不明であるため、個々の光源による被写体の明るさ(輝度)に応じて色温度を加重平均する。
光源が2つあり、それぞれの色温度をK1,K2とし、それぞれの輝度をY1,Y2とするとき、合成色温度Kmixを以下の式1によって求めることができる。
Kmix= (K1*Y1 + K2*Y2) / (Y1 + Y2) (式1)
【0069】
光源が三つ以上ある場合は項を増やすことによって計算できる。また色温度は前述のとおりK(ケルビン)に限らない。Kと色差Δuvを合わせてマップに設定していた場合は、それぞれを式1に適用してもよい。また、ミレッドのように視覚的に均等な空間で式1を適用してもよい。
なお、輝度は撮影画像から算出してもよいし、光源情報に含まれる明るさ(出力ワット数や全光束)に基づいて何らかの方法で算出してもよい。
【0070】
なお、色温度マップの用途によっては重複領域について色温度を合成しない方がよい場合がある。この場合、光源間の明るさの比率として上述のように輝度を算出して色温度マップに含めてもよい。また、S210を実行するか否かを設定できるようにしてもよい。なお、上述の色温度マップの生成処理は、必要な画像データが得られさえすれば、通信光源の制御や撮影機能を有しない装置においても実行可能である。したがって、色温度の推定に用いる画像をカメラ100や他の装置から取得可能な任意の装置で色温度マップを生成することができる。
【0071】
このようにして、撮影シーンの領域ごとの色温度マップが生成できる。色温度マップには様々な用途があるが、例えばホワイトバランス制御に用いることで、色温度の異なる複数の光源が存在するシーンの撮影画像について、精度の良いホワイトバランス制御が実現できる。本実施形態では、通信光源(いわゆるスマート照明)については光源から取得可能な色温度の情報を利用することにより、被写体の色に影響されない精度の良い色温度を取得することができる。また、通信光源について精度の良い色温度が得られることにより、従前の通信機能を有しない光源の色温度の推定精度も向上させることができる。
【0072】
なお、色温度マップの生成は、定常的に実行してもよいが、特定の条件に合致した場合にのみ実行するようにしてもよい。例えば、記録用の撮影が行われる直前のタイミング(例えば、撮影準備指示を検出したタイミング)や、撮影シーンが変化したことが検出されたタイミングで実行するようにしてもよい。
【0073】
また、既に色温度マップを生成した撮影範囲の一部を撮影する場合には、生成済みの色温度マップから撮影シーンに対応する範囲のマップを切り出して色温度マップを生成してもよい。例えば、光学系101がズームレンズの場合、広角端の撮影範囲に対して色温度マップを生成しておくことで、画角が変更されたり、撮影範囲が少し移動されたりした場合に新たに色温度マップを生成する必要がない。
【0074】
●(第2実施形態)
次に、第2実施形態について説明する。本実施形態は、第1実施形態で生成された色温度マップを用いたホワイトバランス制御(ホワイトバランス係数の算出)に関する。
【0075】
図4は、着目領域に基づいたホワイトバランス係数の算出処理に関するフローチャートである。
S1001でCPU103は、着目領域を決定する。
図5は、S1001における着目領域の取得に関する模式図である。図5(a)は撮影シーン1113が、複数の光源1111、1112に照明されていることを示している。そして、図5(b)は、撮影シーン1113における合焦領域が合焦枠1121によってユーザに提示されている状態を示している。この場合、CPU103は、合焦枠1121で示される合焦領域を着目領域とすることができる。
【0076】
図5(c)は、撮影シーン1113において検出された顔領域が顔枠1131によってユーザに提示されている。この場合、CPU103は、顔枠1131で示される顔領域を着目領域とすることが可能である。
図5(d)は、撮影シーン1113において、複数のAF領域のうち、合焦しているAF領域のAF枠1141がユーザに示されている。この場合、CPU103は、AF枠1141で示される合焦領域を着目領域とすることが可能である。
【0077】
ここで説明した以外にも、合焦領域や検出された特徴領域に基づいて自動的に着目領域を決定することができる。また、ユーザが着目領域を設定してもよい。この場合、表示部108がタッチディスプレイであれば、ライブビュー画面のタッチ操作に基づいてCPU103は着目領域を決定することができる。あるいは、CPU103は、着目領域の指定するための枠を移動可能にライブビュー画像に重畳表示し、操作部109を通じて指定された枠の位置に対応する領域を着目領域として決定してもよい。
【0078】
着目領域を決定するとS1002でCPU103は、ホワイトバランス係数を算出する。例えばCPU103は、S1001で決定した着目領域に対する色温度を撮影シーン113に対して生成済みの色温度マップから取得し、取得した色温度に基づいてホワイトバランス係数を算出することができる。例えば図5(b)の合焦枠1121に対応する領域を着目領域として決定した場合、色温度マップにおいて、着目領域に対応する領域については光源1111の色温度が設定されている。したがって、CPU103は、光源1111の色温度に対応したホワイトバランス係数を算出する。なお、図4のフローチャートに示した処理は、画像処理部105が実行してもよい。
【0079】
本実施形態では、色温度マップを用いて着目領域に適したホワイトバランス係数を算出することができる。そのため、色温度が異なる光源が存在する撮影シーンにおいて、ユーザの意図に適したホワイトバランス制御が実現できる。
【0080】
●(第3実施形態)
次に、第3実施形態について説明する。本実施形態においては、第1実施形態で生成した色温度マップに設定されている色温度と実際の色温度とが異なる場合を考える。このような状態は、例えば通信光源の色温度が経年劣化により変化した場合や、被写体色の影響によって反射光の色温度が光源の色温度から変化している場合などに起こりうる。
【0081】
色温度マップに設定された色温度と実際の色温度とが異なる場合、CPU103は、例えば着目領域(図5(b)の合焦枠1121で示される領域とする)と同じ、または近い色温度が設定されている撮影画像中の領域を、色温度マップから探索する。そして、CPU103は、探索された領域(例えば図5(b)の領域1122)から、第1実施形態のS204と同様にして、白色領域(領域1123)を検出して色温度を推定することができる。
【0082】
このように、色温度マップを用いて、着目領域と同じ色温度が設定されている領域で白検出を実行することにより、他の色温度が設定されている白色領域(例えば領域1124)の影響を受けずにホワイトバランス係数を算出することができる。そのため、より精度のよいホワイトバランス制御が実現できる。
【0083】
なお、本実施形態においては、色温度マップから領域ごとの色温度が直接(あるいは間接的に)得られる例を示したが、色温度の絶対値に関する情報がなくてもよい。例えば、未知の色温度を持つ光源で照明されている領域がどの領域かが判別かのうであれば、その領域内で白検出することによりホワイトバランス係数を算出できる。
【0084】
本実施形態では、色温度マップの色温度と実際の色温度とが異なる場合や、光源の色温度が未知の場合においても、適切なホワイトバランス係数を算出することができる。
【0085】
●(第4実施形態)
次に、第4実施形態について説明する。第2実施形態や第3実施形態においては、着目領域以外の領域の色温度の影響を除外する例を説明した。しかし、着目領域の色温度のみに基づいて算出したホワイトバランス係数は、画像全体に適用するには適していない場合もある。
【0086】
例えば図5(e)に示すように、撮影シーンの大部分が着目領域を照明する光源1111とは異なる色温度の光源1112で照明されている場合がある。この場合、色温度マップにおいて着目領域に設定されている色温度に基づいて算出したホワイトバランス係数を画像全体に適用すると、光源1112で照明されている部分の色が不自然になる場合がある。このような場合には、撮影シーン1113を照明している複数の光源の色温度を考慮して画像全体に適用するのに適したホワイトバランス係数を得るための色温度を算出する。
【0087】
例えば、光源1111の色温度をK1、撮影シーン1113内で光源1111に照明されている領域の面積をS1、光源1112の色温度をK2、撮影シーン1113内で光源1112に照明されている領域の面積をS2とする。この場合、CPU103は以下の式2によって色温度Kを算出する。
色温度K=(K1×S1×α+K2×S2)÷(S1×α+S2) (式2)
【0088】
ここで、αは着目領域1121の優先係数であり、着目領域1121を照明する光源の色温度に対する重みを表している。優先係数αを1より大きい値とすることで、着目領域を重視した色温度Kを得ることができる。優先係数αは着目領域の種類(例えば人物の顔の場合は他の場合よりも大きくする)や、着目領域の大きさ(例えば着目領域が大きいほど係数を大きくする)を考慮して決定することができる。あるいは、ユーザが動的にαを変更できるようにしてもよい。この場合、ユーザは、ライブビュー画像を観察しながら、好みのホワイトバランスが得られるように操作部109を通じてαを変更することができる。また、式2による色温度Kの算出は、色温度マップ全体に占める、着目領域と異なる色温度が設定されている領域の割合が閾値以上の場合にのみ実行するようにしてもよい。
【0089】
式2によって算出された色温度Kに基づいてホワイトバランス係数を算出することにより、撮影シーンの大半が着目領域と異なる照明の色温度を有する場合であっても、画像全体に適したホワイトバランス制御が実現できる。
【0090】
●(第5実施形態)
次に、第5実施形態について説明する。本実施形態では、着目領域が複数の候補領域から選択されている場合のホワイトバランス係数を算出するために用いる色温度の算出方法について説明する。
【0091】
図5(f)は、撮影画像から複数の顔領域1161と1162が検出され、顔領域1161に合焦している状態を示している。また、顔領域を着目領域として決定する設定が成されているものとする。この場合、CPU103は、複数の候補領域である顔領域1161と1162のうち、合焦している顔領域1161を最終的な着目領域として選択してホワイトバランス係数を算出する。このような場合、選択されなかった他の候補領域に、着目領域とは色温度の異なる照明がされている候補領域が存在すれば、それを考慮したホワイトバランス係数を算出することができる。
【0092】
CPU103は例えば第4実施形態で用いた式2に対し、他の顔領域1162に対する優先係数βを追加した以下の式3を用いて色温度Kを算出することができる。
色温度K=(K1×S1×α+K2×S2×β)÷(S1×α+S2×β) (式3)
【0093】
ここで、優先係数βを1より小さくすることにより、他の顔領域1162の影響を軽減させることができる。優先係数βは、例えば顔領域1162の大きさ(大きいほど1に近い値とする)や、合焦している顔領域1161との深度差(深度差が大きいほど1より小さくする)などから決定することも可能である。
【0094】
式3によって算出された色温度Kに基づいてホワイトバランス係数を算出することにより、着目領域の候補が複数存在する場合に、着目領域として決定されなかった候補領域を考慮したホワイトバランス係数を算出することができる。
【0095】
●(第6実施形態)
次に、第6実施形態について説明する。本実施形態では、着目領域が色温度マップにおいて異なる色温度が設定された領域を含んでいる場合に、ホワイトバランス係数を算出するために用いる色温度の算出方法について説明する。
【0096】
図5(g)は、着目領域である被写体領域が、光源1111で照明される領域1171と光源1112で照明される領域1172とにまたがって存在している状態を示している。ここで、光源1111の色温度をK1、被写体領域内で光源1111に照明されている領域1171の面積をSa、光源1112の色温度をK2、撮影シーン内で光源1112に照明されている領域1172の面積をSbとする。このような場合、CPU103は、以下の式4を用いて色温度Kを算出することができる。
色温度K=(Ka×Sa+Kb×Sb)÷(Sa+Sb) (式4)
【0097】
式4によって算出された色温度Kに基づいてホワイトバランス係数を算出することにより、着目領域が色温度マップにおいて異なる色温度が設定された領域を含んでいる場合にも適切なホワイトバランス係数を算出することができる。
【0098】
●(第7実施形態)
次に、第7実施形態について説明する。本実施形態では色温度マップを用いた領域ごとのホワイトバランス制御に関して説明する。
【0099】
図6の色温度マップは、領域ごとに設定されている色温度に基づいて表した模式図である。領域A 2001、領域B 2002、領域C 2003、領域D 2004は、それぞれ異なる色温度が設定されている領域を示している。色温度マップの各領域には、その領域を照明している光源の輝度、光源の色温度の取得方法、(相関)色温度などの光源情報が設定されている。光源情報2005~2008がそれぞれ領域A 2001~領域D 2004の光源情報である。ここで、光源の輝度は撮像素子102のダイナミックレンジを100%としたときの割合(%)である。また、色温度の取得方法は、非通信光源202については白検出(S204)または色温度同定(S205)、通信光源201については通信による取得(S207における光無線通信または接続時などの無線通信での取得)である。
【0100】
色温度マップは領域分けされている場合と、領域分けされていない場合の両方の場合が考えられるが、以下では、領域分けされている場合について説明する。領域分けされた色温度マップは、領域分け前の領域の中で、輝度が最も高い点(画素、領域)を中心として、(相関)色温度が所定の閾値以内の連続領域を同じ色温度の領域とする処理を、領域分けされていない領域がなくなるまで繰り返し行うことで作成できる。
【0101】
図7は領域別のホワイトバランス制御に関するフローチャートであり、図7(a)が全体的なフローチャート、図7(b)はS2009の詳細を示すフローチャートである。
【0102】
S2009でCPU103は、色温度マップの領域ごとに光源信頼度を算出する。
なお、光源信頼度とは、色温度マップに設定されている(相関)色温度情報の信憑性を数値で表現したものである。
【0103】
S2009の具体的な処理について、図7(b)のフローチャートを用いて説明する。
S2015でCPU103は、光源情報2005~2008に含まれる光源の輝度情報を用い、領域ごとに、その領域を照明する光における通信光源201の寄与率を算出する。なお、通信光源の寄与率は、全光源の中で通信光源が占める照度の割合と撮像素子102に蓄積された光量の二つの要素から構成されている。
【0104】
各光源の輝度情報には通信光源の寄与率を判断する要素が二つとも反映されているため、通信光源iの輝度がYi(%)で表現されるとすると、式5を用いて、通信光源の寄与率Ra(%)を算出することができる。
Ra=ΣYi (式5)
【0105】
CPU103はS2016で、領域ごとに通信光源の寄与率を用いて光源信頼度を算出する。任意の領域iの光源信頼度をRe_iは、通信光源の寄与率Ra_iが、予め決められた信頼可能な閾値Th(%)以上の時に100%となるように、式6を用いて算出する。
Re_i=MIN[100×Ra_i/Th,100] (式6)
【0106】
図2のS204で行うような白領域検出による色温度推定では、画像から白と思われる領域を検出するため、例えば、低色温度の光源で照明される白い被写体と、高色温度の光源で照明される赤い被写体との区別が困難であり、白領域を誤検出する可能性がある。そのため、本実施形態では画像情報に依存せずに高精度の色温度が取得できる通信光源の寄与率から光源信頼度を算出する。
【0107】
なお、通信光源201のうち、光通信機能を有する通信光源を、光通信機能を有しない通信光源よりも取得できる色温度の精度が高いものとして取り扱ってもよい。例えば、光通信機能を有する通信光源の寄与率と光通信機能を有しない通信光源の寄与率とをそれぞれ求め、前者の重みを大きくした加重加算によって最終的な光源信頼度を算出してもよい。
【0108】
CPU103はS2017で、外的要因(ノイズ成分)の影響を光源信頼度へ反映させる。ノイズ成分の一例として、撮像素子102の飽和領域や点光源、センサノイズなどが挙げられるが、この限りではなく、色温度マップの精度を落とすノイズ成分全般を指す。ここではCPU103は、色温度マップにおいて、面積が予め定めた閾値よりも小さい領域をノイズ領域として特定する。
【0109】
ノイズ領域でない任意の領域の面積をSa、ノイズ領域iの面積をSn_i、ノイズ成分反映前の光源信頼度をRe_a、ノイズ成分反映後の光源信頼度をRe_bとする。CPU103は、以下の式7を用いて、ノイズ成分を反映した光源信頼度Re_aを算出する。
Re_a=Re_b×Sa/(ΣSn_i+Sa) (式7)
例えば、領域B 2002のノイズ成分を反映した光源信頼度は、領域D 2004をノイズ領域、領域B 2002の面積を990、領域D 2004の面積を10とすると、19.8%となる。
【0110】
CPU103はS2018で、色温度マップの経時変化に伴う光源信頼度への重み付けを行う。
図8(a)~図8(c)は、色温度マップの経時変化の一例を模式的に表している。ある色温度が設定された領域が2020、2021、2022と経時変化した場合、CPU103は撮影モードに応じて光源信頼度を変化させる。具体的には、CPU103は、静止画の連写撮影や動画撮影など、図8(a)~図8(c)の期間にわたって連続的に撮影する場合は、撮影画像間での変化を抑制するために、面積が経時変化する領域についての光源信頼度を下げる重み付けを行う。具体的には、重みを0、もしくは1未満の所定値とすることができる。なお、静止画の単写など、連続的な撮影でない場合には、画質を最優先し、光源信頼度を低下させる重み付けは行わない。
【0111】
次に、S2019でCPU103は、距離マップを用いた光源信頼度への重み付けを行う。なお、距離マップを生成する方法に特に制限は無く、公知の方法を用いることができる。距離マップは画素ごとに被写体距離を表す情報であり、輝度値が距離を表すデプスマップ(距離画像、奥行き画像などと呼ばれることもある)であってよい。例えば、画像処理部105において得られるコントラスト評価値が極大となるフォーカスレンズ位置を画素ごとに求めることで、画素ごとに被写体距離を取得することができる。また、合焦距離を変えて同一シーンを複数回撮影して得られる画像データと光学系の点像分布関数(PSF)とから、ぼけ量と距離との相関関係に基づいて画素ごとの距離マップを求めることもできる。これらの技術に関しては例えば特開2010-177741号公報や米国特許第4,965,840号公報などに記載されている。また、視差画像対を取得可能な撮像素子を用いている場合には、ステレオマッチング等の手法で画素ごとに被写体距離を取得することができる。
【0112】
図9は色温度マップと距離マップに基づいた光源信頼度への重み付け方法を示した図である。
図9(a)は、色温度マップと距離マップとが一致しており、光源信頼度への影響がない場合を示している。図9(b)は色温度マップと距離マップが一致しておらず、光源信頼度が下がる場合を示している。図9(c)は色温度マップと距離マップが一致していないが、光源信頼度は下げない場合を示している。
【0113】
なお、図9(a)-i、(b)-i、(c)-iは色温度マップを、図9(a)-ii、(b)-ii、(c)-iiは距離マップを、図9(a)-iii、(b)-iii、(c)-iiiは光源信頼度をそれぞれ示している。また、距離マップは同じパターンで表現されている領域が同距離を表しており、光源信頼度は白に近いほど高信頼度、黒に近いほど低信頼度であることを示しているものとする。なお、距離マップは色温度マップと同様に、近い距離を同一距離として領域分けされたものであってよい。
【0114】
まず、図9(a)について説明する。色温度マップ(図9(a)-i)と距離マップ(図9(a)―ii)の領域の境界が一致しているため、色温度マップ図9(a)-iが正しく検出できていると考えられる。したがって、CPU103は光源信頼度への重み付けを不要と判断する。その結果、重み付け前および重み付け後の光源信頼度はいずれも図9(a)-iiiで表わされる。
【0115】
次に、図9(b)について説明する。色温度マップ(図9(b)-i)は領域2023が異なる色温度の領域2024、2025に挟まれる形で領域分けされている。一方、距離マップ(図9(b)-ii)は色温度マップにおける領域2023~2025に相当する領域が1つの距離領域2026で構成されており、マップ間に差異があることが分かる。光源の特性を考えた場合、同じ距離の被写体について、同じ色温度の光源で照明される領域に挟まれる形で異なる色温度の光源で照明される領域が存在する状態は少ないと考えられるため、CPU103は光源信頼度を下げるように重み付けを行うことを決定する。図9(a)-iiiを重み付け前の光源信頼度、図9(b)-iiiを重み付け後の光源信頼度としたとき、領域2023に対する光源信頼度2027は重み付けにより例えば光源信頼度2028のように低くなる。
【0116】
最後に、図9(c)について説明する。色温度マップ(図9(c)-i)は領域2029、2030、および2031の全領域に互いに異なる色温度が設定されている。一方、距離マップ(図9(c)-ii)は、色温度マップにおける領域2030と2031に対応する領域2033と2034とを同じ距離の領域としている。この場合、距離マップにおける領域2033と2034の距離が同じであるが、領域2032が領域2033よりも近い場合には領域2032の被写体によって光が遮られることにより色温度マップに示される状態が生じうる。そのため、CPU103は光源信頼度への重み付けは不要と判断する。その結果、重み付け前および重み付け後の光源信頼度はいずれも図9(c)-iiiで表わされる。
【0117】
以上のようにして、CPU103は、距離マップと色温度マップを比較して、領域ごとの光源信頼度に重み付けを行う。
【0118】
図7(a)に戻り、S2010でCPU103は、領域ごとにホワイトバランス制御を行うか否かを決定するため、全領域の光源信頼度が閾値未満か否かを判定する。CPU103は、全領域の光源信頼度が閾値未満と判定されればS2011を実行し、光源信頼度が閾値以上の領域が存在すると判定されればS2012を実行する。
【0119】
光源信頼度が閾値未満である領域は、色温度を誤検知している可能性が高いと考えられる。全領域について光源信頼度が低い場合に領域ごとのホワイトバランス制御を行うと、画像全体のカラーバランスが崩れる可能性がある。したがって、全領域の光源信頼度が閾値よりも小さいと判定された場合、CPU103はS2011において、画像処理部105を用いて、画面全体から検出した白色領域に基づいて算出したホワイトバランス係数を画像全体に適用する。
【0120】
一方、S2012でCPU103は、光源信頼度が閾値以上の領域に対して個別にホワイトバランス制御を適用するために、ホワイトバランス係数(以下、部分WB係数という)を算出する。
【0121】
部分WB係数は色温度マップの最小領域単位で算出してもよいし、図6に示したような領域分け後の領域単位で算出してもよい。CPU103は、前者の場合は色温度マップ作成時の(相関)色温度を領域ごとにそのまま使用する。また、CPU103は、後者の場合は領域分けの際に算出した、領域内の最高輝度の点の(相関)色温度を使用する。なお、後者の場合は、各領域に含まれるすべての最小領域についての(相関)色温度を輝度で重み付け平均して色温度を算出してもよい。(相関)色温度からホワイトバランスを求める手法は公知であるため、ここでは割愛する。
【0122】
CPU103はS2013で、光源信頼度が閾値より小さい領域に対して共通に適用するホワイトバランス係数(以下、全体WB係数)を算出する。S2011と同様に画面全体から検出した白色領域に基づいて全体WB係数を算出すると、部分WB係数を適用する領域の影響を受ける。そのため、CPU103は、光源信頼度が閾値より小さい領域の中から白色領域を検出してホワイトバランス係数を算出するように画像処理部105を制御する。
【0123】
2014でCPU103は、画像処理部105を用い、S2012とS2013で算出したホワイトバランス係数を領域ごとに適用する。基本的には領域ごとに部分WB係数と全体WB係数を選択的に適用すればよいが、部分WB係数を適用する領域と全体WB係数を適用する領域との境界を目立ちにくくするために、境界部分についてはWB係数がなだらかに変化するようにしてもよい。
【0124】
図10は光源信頼度に応じた部分WB係数と全体WB係数の混合比の例を示す図である。図10の横軸は光源信頼度、縦軸は部分WB係数と全体WB係数の混合比を表している。光源信頼度が閾値a未満の場合には全体WB係数のみが用いられる。光源信頼度が閾値a以上になると、部分WB係数の比率が0%より大きくなる。また、光源信頼度が閾値b以上の領域では部分WB係数のみが用いられる。全体WB係数は光源信頼度が閾値b未満の領域から算出する。図10に示す混合比に従って、部分WB係数と全体WB係数とを合成したWB係数を用いることにより、部分WB係数を適用する領域と全体WB係数を適用する領域との境界を目立ちにくくすることができる。
【0125】
本実施形態によれば、領域別ホワイトバランス制御に用いる部分WB係数と全体WB係数とを領域の光源信頼度に応じて適切に用いることにより、画面全体に対して領域ごとのホワイトバランス制御を行うことで発生するカラーバランスの崩れを抑制できる。
【0126】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0127】
100...撮像装置、101...光学系、102...撮像素子、103...CPU、104...一次記憶装置、105...画像処理部、106...記録媒体、107...二次記憶装置、108...表示部、109...操作部、110...通信部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10