(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-21
(45)【発行日】2024-05-29
(54)【発明の名称】画像処理装置および画像処理方法
(51)【国際特許分類】
H04N 23/10 20230101AFI20240522BHJP
H04N 23/88 20230101ALI20240522BHJP
【FI】
H04N23/10
H04N23/88
(21)【出願番号】P 2020030851
(22)【出願日】2020-02-26
【審査請求日】2023-02-27
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】渡辺 杏平
【審査官】三沢 岳志
(56)【参考文献】
【文献】特開2015-228546(JP,A)
【文献】特開2019-139720(JP,A)
【文献】特開平06-086156(JP,A)
【文献】特表2019-515376(JP,A)
【文献】特開2008-167280(JP,A)
【文献】特開2002-358522(JP,A)
【文献】特開2013-172308(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/10
H04N 23/88
(57)【特許請求の範囲】
【請求項1】
画像データから白色領域を検出する白検出手段と、
前記白色領域のデータに基づいて第1のホワイトバランス補正値を算出する第1の補正値算出手段と、
機械学習を用いて、前記画像データから予め定められた特定の色を有する被写体の領域を検出する被写体検出手段と、
前記被写体検出手段により検出された被写体の領域の色に基づいて、第2のホワイトバランス補正値を算出する第2の補正値算出手段と、
前記第1のホワイトバランス補正値と、前記第2のホワイトバランス補正値とに基づいて、前記画像データに適用する最終的なホワイトバランス補正値である第3のホワイトバランス補正値を算出する第3の補正値算出手段と、
前記第3のホワイトバランス補正値を用いた現像処理を前記画像データに適用する適用手段と、を有
し、
前記被写体検出手段は、機械学習を用いて出力された情報に基づいて、前記被写体の領域の検出結果を示す検出マップを生成し、
前記第2の補正値算出手段は、前記検出マップに基づいて特定された領域の色に基づいて前記第2のホワイトバランス補正値を算出し、
前記検出マップは、前記画像データを分割した部分領域ごとに前記検出結果に基づく信頼度を示す、
ことを特徴とする画像処理装置。
【請求項2】
前記機械学習を用いて出力された情報は、前記画像データの画素またはブロックが前記予め定められた特定の色を有する被写体の領域である確率を示すことを特徴とする請求項
1に記載の画像処理装置。
【請求項3】
前記機械学習は、前記画像データから草木の緑を有する画素またはブロックを出力するのに用いられることを特徴とする請求項
1または
2に記載の画像処理装置。
【請求項4】
前記第1のホワイトバランス補正値の信頼度が高いと判定される場合には前記第1のホワイトバランス補正値を前記画像データに適用する最終的なホワイトバランス補正値とし、
前記第1のホワイトバランス補正値の信頼度が高いと判定されない場合には前記第3のホワイトバランス補正値を前記画像データに適用する最終的なホワイトバランス補正値とする、ことを特徴とする請求項1から
3のいずれか1項に記載の画像処理装置。
【請求項5】
前記予め定められた色が、緑色または肌色であることを特徴とする請求項1から
4のいずれか1項に記載の画像処理装置。
【請求項6】
前記第3の補正値算出手段は、前記第1のホワイトバランス補正値と、前記第2のホワイトバランス補正値とを加重加算して前記第3のホワイトバランス補正値を算出することを特徴とする請求項1から
5のいずれか1項に記載の画像処理装置。
【請求項7】
前記加重加算に用いる重みが、前記第1のホワイトバランス補正値と第2のホワイトバランス補正値との少なくとも一方の信頼度に基づくことを特徴とする請求項
6に記載の画像処理装置。
【請求項8】
前記加重加算に用いる重みが、撮影シーンが特定シーンである信頼度にさらに基づくことを特徴とする請求項
7に記載の画像処理装置。
【請求項9】
前記特定シーンが屋外シーンであることを特徴とする請求項
8に記載の画像処理装置。
【請求項10】
前記第2の補正値算出手段は、前記特定の色と、光源の色温度とに基づいて前記第2のホワイトバランス補正値を算出することを特徴とする請求項1から
7のいずれか1項に記載の画像処理装置。
【請求項11】
前記第2の補正値算出手段は、前記画像データのうち予め定められた範囲に含まれる色を有するデータに基づいて前記光源の色温度を推定することを特徴とする請求項
10に記載の画像処理装置。
【請求項12】
撮像素子と、
前記撮像素子によって得られた画像データからホワイトバランス補正値を算出
し、算出したホワイトバランス補正値を用いて前記画像データに対して現像処理を適用する請求項1から
11のいずれか1項に記載の画像処理装置と
、
を有することを特徴とする撮像装置。
【請求項13】
画像処理装置が実行する画像処理方法であって、
画像データから白色領域を検出する白検出工程と、
前記白色領域のデータに基づいて第1のホワイトバランス補正値を算出する第1の補正値算出工程と、
機械学習を用いて、前記画像データから予め定められた特定の色を有する被写体の領域を検出する被写体検出工程と、
前記被写体検出工程により検出された被写体の領域の色に基づいて、第2のホワイトバランス補正値を算出する第2の補正値算出工程と、
前記第1のホワイトバランス補正値と、前記第2のホワイトバランス補正値とに基づいて、前記画像データに適用する最終的なホワイトバランス補正値である第3のホワイトバランス補正値を算出する第3の補正値算出工程と、
前記第3のホワイトバランス補正値を用いた現像処理を前記画像データに適用する適用工程と、を有
し、
前記被写体検出工程では、機械学習を用いて出力された情報に基づいて、前記被写体の領域の検出結果を示す検出マップを生成し、
前記第2の補正値算出工程では、前記検出マップに基づいて特定された領域の色に基づいて前記第2のホワイトバランス補正値を算出し、
前記検出マップは、前記画像データを分割した部分領域ごとに前記検出結果に基づく信頼度を示す、
ことを特徴とする画像処理方法。
【請求項14】
コンピュータを、請求項1から
11のいずれか1項に記載の画像処理装置が有する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置および画像処理方法に関し、特にはホワイトバランス制御技術に関する。
【背景技術】
【0002】
適切な色調を有する撮影画像を生成するためには、画像のホワイトバランスを精度よく制御する必要がある。また、精度のよいホワイトバランス制御を行うには、被写体色と光源色とを精度よく区別する必要がある。
【0003】
特に、草木の緑色や、人の肌色など、特定の色がイメージされる被写体の色は、光源色と精度良く区別することが重要である。特許文献1には、撮影シーンの赤外線量を検出し、日陰など暗い場所における草木の緑色と、光源色に起因する緑色とを区別する技術が提案されている。
【0004】
一方、晴天、日陰、電球、蛍光灯のそれぞれについて機械学習したサポートベクタマシン(SVM)を用いて環境光との類似度を算出し、それぞれの類似度に基づいてニューラルネットワークが光源の種類を特定する技術が提案されている(特許文献2)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2015-228546号公報
【文献】特開2013-168723号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1で提案される技術は、赤外線量を検出するための構成が必要である。そのため、必要な部品のコストや実装スペースが問題となりうる。
一方、特許文献2で提案される技術は、赤外線量を検出するための構成が不要であるが、ホワイトバランス制御の精度が、SVMによる類似度の精度やニューラルネットワークの判定精度が低いと、適切なホワイトバランス制御が実現できない。
【0007】
本発明は、赤外線量を検出するための部品などの特別な部品の使用を抑えつつ、信頼性の高いホワイトバランス制御を実現する画像処理装置および画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
上述の目的は、画像データから白色領域を検出する白検出手段と、白色領域のデータに基づいて第1のホワイトバランス補正値を算出する第1の補正値算出手段と、機械学習を用いて、画像データから予め定められた特定の色を有する被写体の領域を検出する被写体検出手段と、被写体検出手段により検出された被写体の領域の色に基づいて、第2のホワイトバランス補正値を算出する第2の補正値算出手段と、第1のホワイトバランス補正値と、第2のホワイトバランス補正値とに基づいて、画像データに適用する最終的なホワイトバランス補正値である第3のホワイトバランス補正値を算出する第3の補正値算出手段と、第3のホワイトバランス補正値を用いた現像処理を画像データに適用する適用手段と、を有し、被写体検出手段は、機械学習を用いて出力された情報に基づいて、被写体の領域の検出結果を示す検出マップを生成し、第2の補正値算出手段は、検出マップに基づいて特定された領域の色に基づいて第2のホワイトバランス補正値を算出し、検出マップは、画像データを分割した部分領域ごとに検出結果に基づく信頼度を示す、ことを特徴とする画像処理装置によって達成される。
【発明の効果】
【0009】
本発明によれば、特別な部品の使用を抑えつつ、信頼性の高いホワイトバランス制御を実現する撮像装置および画像処理方法を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るカメラの機能構成例を示すブロック図
【
図2】
図1の画像処理回路が実現するホワイトバランス制御部の構成例を示すブロック図
【
図3】
図1のカメラにおける撮影処理に関するフローチャート
【
図4】実施形態におけるWB補正値の演算処理に関するフローチャート
【
図6】実施形態における白WB補正値の信頼度算出処理に関するフローチャート
【
図8】実施形態における検出マップ生成処理に関する図
【
図9】実施形態における被写体判定処理に関するフローチャート
【
図10】実施形態におけるWB補正値算出処理に関する図
【
図11】実施形態における、被写体検出に基く色温度推定処理に関するフローチャート
【
図12】実施形態における混合WB補正値の生成動作に関するフローチャート
【
図13】第2実施形態における画像処理回路が実現するホワイトバランス制御部の構成構成例を示すブロック図
【
図14】第2実施形態における混合WB補正値の生成動作に関するフローチャート
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明をその例示的な実施形態に基づいて詳細に説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定しない。また、実施形態には複数の特徴が記載されているが、その全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
なお、以下の実施形態では、本発明をレンズ交換式のデジタルカメラで実施する場合に関して説明する。しかし、本発明に撮像機能は必須でなく、任意の電子機器で実施可能である。このような電子機器には、ビデオカメラ、コンピュータ機器(パーソナルコンピュータ、タブレットコンピュータ、メディアプレーヤ、PDAなど)、携帯電話機、スマートフォン、ゲーム機、ロボット、ドローン、ドライブレコーダが含まれる。なお、本発明は撮影範囲における赤外線量を検出する機能を有しない電子機器において特に好適に実施可能であるが、撮影範囲における赤外線量を検出する機能を有する電子機器においても実施可能である。
【0013】
●(第1実施形態)
図1は、本発明の第1実施形態に係る撮像装置100(以下、カメラ100という)の機能構成例を示すブロック図である。
カメラ100の光学系101はレンズユニットであり、複数のレンズ、シャッター、および絞りを備えている。光学系101は交換可能であってもなくてもよい。絞りはシャッターを兼ねても良い。なお、光学系101が交換可能な場合、シャッターはカメラ100の本体側に設ける。なお、カメラ100はメカニカルシャッターを有さなくてもよい。
【0014】
光学系101は、被写体の光学像を撮像素子102の結像面に形成する。光学系101の合焦距離は中央演算装置(CPU)103がフォーカスレンズの位置を調整することによって制御可能である。また、光学系101がズームレンズの場合、光学系101の焦点距離(画角)は、CPU103が変倍レンズの位置を調整することによって制御可能である。また、CPU103は、光学系101の情報(フォーカスレンズ位置、焦点距離、絞り値など)を直接、あるいは光学系101のコントローラを通じて間接的に取得可能である。
【0015】
撮像素子102は、例えば、CCDイメージセンサ又はCMOSイメージセンサであり、光電変換領域を有する画素が複数、2次元状に配列されている。また、撮像素子102は特定の色パターンを有するカラーフィルタを有し、各画素には色パターンに応じた1色のフィルタが設けられている。本発明はカラーフィルタの色パターンに依存しないが、ここでは原色ベイヤ配列のカラーフィルタが設けられているものとする。したがって、各画素にはR(赤)、G(緑)、B(青)のいずれかのカラーフィルタが設けられている。撮像素子102は光学像を各画素で光電変換し、画素ごとの輝度情報を示すアナログ画像信号に変換する。
【0016】
撮像素子102が生成するアナログ画像信号は、A/D変換器(図示せず)によってデジタル画像信号に変換される。なお、A/D変換器は撮像素子102が有してもよいし、CPU103がA/D変換を行ってもよい。A/D変換器の出力するデジタル画像信号を構成する画素信号はその信号を生成した画素に設けられたカラーフィルタの色の輝度成分のみを有するRAWデータである。CPU103はRAWデータを一次記憶装置104に記憶する。なお、撮像素子102の撮影感度(以下ISO感度という)はCPU103によって設定される。
【0017】
CPU103は二次記憶装置107に記憶されたプログラムを一次記憶装置104に転送して実行することにより、カメラ100の各部を制御し、カメラ100の様々な機能を実現する。なお、以下の説明において、CPU103がプログラムを実行して実現する機能の少なくとも一部は、ASICなどの専用ハードウェアによって実現してもよい。
【0018】
一次記憶装置104は、例えばRAMなどの揮発性記憶装置である。一次記憶装置104はCPU103がプログラムを実行するために用いるほか、画像データのバッファメモリ、画像処理用の作業領域、表示用のビデオメモリなどとして用いられる。
【0019】
二次記憶装置107は、例えばEEPROMなどの書き換え可能な不揮発性記憶装置である。二次記憶装置107には、CPU103が実行可能なプログラム(命令)や、カメラ100の設定、GUIデータなどが記憶されている。
【0020】
記録媒体106は、例えば半導体メモリカードなどの書き換え可能な不揮発性記憶装置である。記録媒体106はカメラ100に対して着脱可能であってもなくてもよい。カメラ100が生成したデータ(静止画データ、動画データ、音声データなど)は、記録媒体106に記録することができる。つまり、カメラ100は、記録媒体106の読み書き機能と、着脱機構(記録媒体106が着脱可能な場合)とを有する。なお、カメラ100が生成したデータの記録先は記録媒体106に限定されない。カメラ100が有する通信インターフェースを通じて外部機器に送信され、外部機器がアクセス可能な記録装置に記録してもよい。
【0021】
表示部108は、例えば液晶ディスプレイである。CPU103は表示部108の表示制御装置として機能する。撮影スタンバイ状態や動画像の記録中、表示部108には撮影した動画像がリアルタイムに表示され、表示部108は電子ビューファインダーとして機能する。また、表示部108には、記録媒体106に記録されている画像データや、メニュー画面などのGUI(Graphical User Interface)画像も表示される。
【0022】
操作部109は、ユーザ操作を受け付ける入力デバイス群の総称である。操作部109には、例えば、ボタン、レバー、およびタッチパネルなどが用いられる。操作部109は音声や視線など、物理的な操作が不要な入力デバイスを有してもよい。操作部109が有する入力デバイスは割り当てられた機能に応じた名前が付けられる。代表例としては、シャッターボタン、メニューボタン、方向キー、決定(セット)ボタン、モード切り替えダイヤルなどが挙げられる。なお1つの入力デバイスに異なる機能が選択的に割り当てられてもよい。
【0023】
画像処理回路105は画像データ(RAWデータであっても、現像処理後の画像データであってもよい)に対して予め定められた画像処理を適用し、異なる形式の画像データを生成したり、各種の情報を取得および/または生成したりする。画像処理回路105例えば特定の機能を実現するように設計されたASICのような専用のハードウェア回路であってもよいし、DSPのようなプログラマブルプロセッサがソフトウェアを実行することで特定の機能を実現する構成であってもよい。
【0024】
ここで、画像処理回路105が適用する画像処理には、前処理、色補間処理、補正処理、データ加工処理、評価値算出処理、特殊効果処理などが含まれる。前処理には、信号増幅、基準レベル調整、欠陥画素補正などが含まれる。色補間処理は、画素から読み出した画像データに含まれていない色成分の値を補間する処理であり、デモザイク処理や同時化処理とも呼ばれる。補正処理には、ホワイトバランス制御、階調補正(ガンマ処理)、光学系101の光学収差や周辺減光の影響を補正する処理、色を補正する処理などが含まれる。データ加工処理には、合成処理、スケーリング処理、符号化および復号処理、ヘッダ情報生成処理などが含まれる。評価値算出処理は、自動焦点検出(AF)に用いる信号や評価値の生成、自動露出制御(AE)に用いる評価値の算出処理などである。特殊効果処理には、ぼかしの付加、色調の変更、リライティング処理などが含まれる。なお、これらは画像処理回路105が適用可能な画像処理の例示であり、画像処理回路105が適用する画像処理を限定するものではない。
【0025】
画像処理回路105がRAWデータに対して適用する画像処理のうち、RAWデータを写真のデータとして表示や印刷などに利用可能な汎用的な形式の画像データに変換するための一連の画像処理を現像処理と呼ぶ。一般に現像処理はホワイトバランス制御処理および色補完処理を含み、その他にもレンズ収差補正処理、ノイズ低減(NR)処理、ガンマ(階調変換)処理などが含まれうる。
【0026】
また、画像処理回路105は、カメラ100に設定可能な撮影モードに対応した一連の画像処理セットが予め登録されている。これにより、例えば夜景や夕焼けといった特定のシーンを撮影して得られた画像データに対し、シーンに適した画像処理が実行される。
【0027】
なお、本実施形態では画像処理回路105がホワイトバランス制御に関する処理を実行するが、ホワイトバランス制御に関する処理の少なくとも一部を、CPU103が実行してもよい。
【0028】
図2は、カメラ100においてホワイトバランス補正値を算出してホワイトバランスを制御するホワイトバランス制御部200の機能構成例を示すブロック図である。以下、ホワイトバランスをWBと略記する。WB制御部200は、画像処理回路105(および/またはCPU103)が実行するWB制御処理を1つの制御部として表現したものである。
【0029】
WB制御部200は、白と推定される画素に適用するWB補正値(以下、白WB補正値という)と、被写体の画素に適用するWB補正値(以下、被写体WB補正値という)とから最終的なWB補正値を算出する。WB制御部200の各ブロックの動作については後述する。
【0030】
図3は、カメラ100の撮影処理に関するフローチャートである。このフローチャートは、カメラ100が起動して撮影スタンバイ状態になった時点から、ユーザ指示に基づいて静止画を撮影し、静止画データを記録するまでの一連の処理を示している。
【0031】
カメラ100は起動すると撮影スタンバイ状態になり、操作部109に対する操作を監視しながら、予め定められたスタンバイ動作を継続的に実行する(S301)。具体的には、CPU103は、スタンバイ動作として、動画の撮影および表示処理を継続的に実行し、表示部108をビューファインダーとして機能させる。CPU103は、操作部109に対して予め定められた静止画の撮影準備指示に相当する操作が行われたことが検出されるまで、スタンバイ動作を継続して実行する。また、CPU103は、静止画の撮影準備指示に相当しない操作に対しては、スタンバイ動作を継続しながら、操作に応じた処理を実行する。例えば、光学系101の画角を変更する操作が検出された場合、CPU103は操作に応じて光学系101の変倍レンズを駆動する。また、撮影条件(シャッター速度、絞り値、撮影感度、露出補正値など)を変更する操作が検出された場合、CPU103は操作に応じてカメラ100の設定値を変更する。またCPU103は必要に応じてライブビュー画面の表示内容に設定値の変更を反映させる。
【0032】
S305でCPU103は、撮影準備指示に相当する操作として、シャッターボタンの半押しでONするSW1の状態を確認する。SW1がONであればCPU103はS306を実行する。SW1がOFFであれば、CPU103はS301およびS305を繰り返し実行する。
【0033】
S306およびS307は、静止画の撮影準備動作である。カメラ100に自動露出(AE)モードや自動焦点検出(AF)モードが設定されている場合、CPU103は撮影準備動作としてAEやAFを実行する。
【0034】
S306でCPU103は、画像処理回路105から撮影画像の輝度情報を取得する。画像処理回路105は撮影画像(ライブビュー表示用に撮影した動画のフレーム画像)について、予め定められた輝度情報を算出してCPU103に出力する。CPU103は、輝度情報に基づいて撮影条件(シャッター速度、絞り値、およびISO感度)を決定する。
【0035】
S307でCPU103は、画像処理回路105からAFを行うための評価値や信号を取得する。あるいは、カメラ100がAFセンサを有する場合にはAFセンサから信号を取得してもよい。CPU103は、コントラスト法や位相差検出法など公知の方法を用いて光学系101が焦点検出領域内の被写体に合焦するよう、光学系101のフォーカスレンズを駆動する。
【0036】
S308でCPU103は、撮影指示に相当する操作として、シャッターボタンの全押しでONするSW2の状態を確認する。SW2がONであればCPU103はS309を実行する。SW2がOFFであれば、CPU103はS305を実行する。
【0037】
S309でCPU103は、S306で決定した撮影条件(あるいはユーザが設定した撮影条件)で静止画撮影を実行し、一次記憶装置104にRAWデータを記憶する。
【0038】
S310でCPU103は、一次記憶装置104に記憶されたRAWデータに対する現像処理を画像処理回路105に行わせる。画像処理回路105は現像処理の1工程としてWB補正値を算出する(S310A)。画像処理回路105は、現像処理によって得られた画像データに基づいて表示用の画像データを生成したり、記録用の画像データを格納したデータファイルを生成したりする。画像処理回路105は、生成した画像データやデータファイルを一次記憶装置104に記憶する。画像処理回路105におけるWB補正値の算出処理の詳細については後述する。
【0039】
S312でCPU103は、表示用の画像データに基づく画像を表示部108に表示させる。
S313でCPU103は、画像データファイルを記録媒体106に記録する。
【0040】
なお、ここではS313で処理が終了しているが、実際には再び撮影スタンバイ動作(S301)に復帰してもよい。また、RAWデータを格納したデータファイルを記録媒体106に記録してもよい。
【0041】
図4は、
図3のS310における現像処理の一工程として画像処理回路105(WB制御部200)が実行するWB補正値の算出処理(S310A)の詳細に関するフローチャートである。
図2および
図4を参照し、WB補正値の算出処理の詳細を説明する。
【0042】
(S401:白検出)
ブロック分割部201は、一次記憶装置104に記憶されたRAWデータを複数のブロックデータに分割する。1つのブロックデータは、撮影画像を水平方向および垂直方向に複数に分割した複数のブロック領域の1つに対応するデータである。そして、ブロック分割部201は、ブロックデータに含まれる画素データの値を、カラーフィルタの色ごとに積分する。これにより、各ブロックデータについて、R成分、G成分、およびB成分の積分値が得られる。続いて、ブロック分割部201は、ブロックデータごとに、G成分に対するR成分とB成分の割合(R/GおよびB/G)を求め、白判定部および検出マップ作成部に出力する。
【0043】
白判定部202は、ブロックデータのうち、予めR/G-B/G座標系に設定した白色領域(白検出範囲)に含まれるR/GおよびB/Gを有するブロックデータを、白色ブロックのデータと判定する。白判定部202は、すべての白色ブロックのデータについて色成分ごとの積分値Rinteg、Ginteg、およびBintegを算出し、白WB補正値算出部203に出力する。
【0044】
図5は、白色ブロックの判定に用いる白色領域の設定例を示す図である。
図5において、横軸はR/Gを示し、縦軸はB/Gを示す。501は黒体輻射軌跡、502は白色領域である。白色領域502は、カメラ100において太陽光(日向および日陰)、タングステン光、水銀灯、蛍光灯、フラッシュ光などの様々な光源下で無彩色被写体を撮影した画像について求めたR/G、B/Gを含むように設定する。
【0045】
(S402:白WB補正値の算出)
白WB補正値算出部203は第1の補正値算出手段である。白WB補正値算出部203は、R/GおよびB/Gが白色領域502内に含まれる白色ブロックのデータについて算出した色成分ごとの積分値Rinteg、Ginteg、およびBintegに基づき、式(1)によってWB補正値(白WB補正値)を算出する。WB補正値は、各色成分に適用するゲイン(係数)である。
白WB補正値のRゲインW_WB_Rgain=Ginteg/Rinteg
白WB補正値のGゲインW_WB_Ggain=Ginteg/Ginteg
白WB補正値のBゲインW_WB_Bgain=Ginteg/Binteg (1)
白WB補正値算出部203は、算出した白WB補正値を、混合WB補正値算出部214と第1信頼度算出部204とに出力する
【0046】
(S403:白WB補正値の信頼度算出)
第1信頼度算出部204は、白WB補正値の信頼度を算出する。
図6は、S403における白WB補正値の信頼度算出の詳細を示すフローチャートである。
【0047】
(S601:割合信頼度算出)
第1信頼度算出部204は、S401において白ブロックのデータと判定されたブロックデータの数の、全ブロックデータの数に対する割合に基づいて、白WB補正値の信頼度(割合信頼度Tratio)を算出する。この割合は、画像全体に占める白ブロックの割合でもある。
【0048】
割合信頼度Tratioを算出する際、第1信頼度算出部204は
図7(A)に示す、白ブロックの割合と割合信頼度との関係に基づいて、割合信頼度Tratio(%)を算出する。
図7(A)においては、横軸は白ブロックの割合、縦軸は割合信頼度Tratio(%)を示しており、白ブロックの割合が多い程、割合信頼度Tratioが高くなる。なお、横軸は白ブロックの総数としてもよい。第1信頼度算出部204は、
図7(A)に示す関係をテーブル(割合信頼度テーブル)として保持し、白ブロックの数を用いてテーブルを参照することにより、割合信頼度Tratio(%)を取得することができる。
【0049】
(S602:距離信頼度の算出)
続いて、第1信頼度算出部204は、S402で白WB補正値算出部203が算出した白WB補正値のうち、W_WB_RgainおよびW_WB_Bgainに基づいて、式(2)から、白WB補正値のR/G-B/G空間における座標を求める。
白WB補正値に対応するR/G=1/W_WB_Rgain
白WB補正値に対応するB/G=1/W_WB_Bgain (2)
【0050】
そして、第1信頼度算出部204は、
図5に示すように、白WB補正値に対応する(R/G,B/G)座標503と、黒体輻射軌跡501との最短距離504を算出する。第1信頼度算出部204は、
図7(B)に示す最短距離504と距離信頼度との関係に基づいて、距離信頼度Tdist(%)を算出する
【0051】
図7(B)において、横軸は白WB補正値に対応する(R/G,B/G)座標503と黒体輻射軌跡501との最短距離504を示し、縦軸は黒体輻射軌跡501からの距離信頼度Tdist(%)を示す。なお、距離信頼度Tdist(%)は、最短距離504が短いほど高くなるように設定することができる。
図7(B)において、距離信頼度Tdistが100%となる最小距離Dminと、0%となる最大距離Dmaxとは例えば実験的に予め設定することができる。なお、最短距離504が短いほど、すなわち、R/G-B/G座標系における白WB補正値の座標が黒体輻射軌跡501上の点に近いほど、水銀灯下ではなく自然光下の無彩色のブロック領域が白ブロックと判定されている可能性が高いことを示す。
【0052】
(S603:白WB補正値の信頼度算出)
次に、第1信頼度算出部204は、割合信頼度Tratio(%)と距離信頼度Tdist(%)とに基づいて、式(3)によって白WB補正値の最終的な信頼度Twhite(%)を算出する。
Twhite(%)=Tratio(%)×Tdist(%)/100 (3)
第1信頼度算出部204は、算出した信頼度Twhite(%)を重み算出部213と、CPU103とに出力する。以上が、白WB補正値の信頼度算出処理である。
【0053】
(S404:白WB補正値の信頼度判定)
次に、CPU103は、S403で算出された白WB補正値の信頼度Twhiteが高信頼度であるか低信頼度であるか判定する。ここでは一例として、CPU103は信頼度Twhite(%)が所定の閾値以上であれば高信頼度であると判定する。高信頼度とは、自然光下で無彩色が検出されている可能性が高いことを示す。また、信頼度Twhite(%)が所定の閾値未満であれば低信頼度であると判定する。
【0054】
信頼度Twhiteが高信頼度であると判定された場合、CPU103は画像処理回路105にWB補正値算出処理を終了させ、算出した白WB補正値を用いてRAWデータの現像処理を行うよう、画像処理回路105を制御する。
一方、信頼度Twhiteが低信頼度であると判定された場合、CPU103は、被写体に基づくWB補正値を画像処理回路105に算出させる。
なお、S404の判定処理は、画像処理回路105で実施してもよい。また、S404の判定処理を行わず、常にS405以降の処理を実行するようにしてもよい。
【0055】
(S405:被写体領域の検出)
簡易現像処理部205は、一次記憶装置104に記憶されたRAWデータに対して簡易的な現像処理を適用する。簡易的な現像処理とは、例えば、解像度を低下させたRAWデータと、白WB補正値算出部203で算出済みの白WB補正値とを用いた現像処理であってよい。簡易現像処理部205は、現像処理を適用して得られた画像データを被写体検出部206と被写体判定部208に出力する。
【0056】
被写体検出部206は、簡易現像済みの画像データに対し、被写体検出処理を適用する。被写体検出部206が検出する被写体は、ホワイトバランス制御が難しいとされる色(例えば草木の緑色や人の肌色など)を有する被写体であってよいが、これらに限定されない。
【0057】
被写体検出方法に特に制限はないが、例えば畳み込みニューラルネットワーク(CNN)などを用いた機械学習、特には深層学習を用いることができる。学習方法に特に制限はないが、例えば検出したい色の被写体を様々な光源下かつ明るさで撮影した画像データを用いた教師あり学習であってよい。検出する被写体の種類が複数の場合、学習は被写体ごとに行う。
【0058】
被写体検出部206が検出する被写体は、例えば予め二次記憶装置107に記憶されている複数の被写体候補の中から、例えばカメラ100に設定されている撮影モードなどに応じて自動的に、あるいはユーザ設定に従って選択することができる。なお、同一のRAWデータから異なる被写体を検出するために、被写体検出処理を複数回適用してもよい。
【0059】
ここでは、被写体検出部206が、入力画像データの画素ごとに、検出対象の被写体(色)の画素であるか否かを判定し、判定結果を表す値(例えば1か0)を有する画素から形成される二値画像を生成するものとする。あるいは、2次元のブロックデータを入力として、特定色の被写体の画像ブロックであるか、他の被写体の画像ブロックであるか分類するものであってもよい。
【0060】
検出マップ作成部207は、被写体検出部206における検出結果から、被写体検出マップを作成する。検出マップ作成部207は、簡易現像された画像データの、例えばブロック分割部201が生成するブロック領域に対応する部分領域ごとに、特定色を有すると判定された画素が占める割合を求め、割合に応じた検出マップを生成する。あるいは、検出マップ生成部は、被写体検出部206が求めた、特定色の被写体の画像ブロックである確率に基づいて検出マップを生成してもよい。
【0061】
例えば、検出対象の被写体が「草木の緑」の画素であるとする。
図8(a)に示すシーンを撮影して得られるRAWデータに基づく現像ずみ画像データが被写体検出部206に入力された場合を考える。この場合、検出マップ作成部207は、
図8(b)に示すような検出マップを生成する。検出マップは、部分領域ごとに、特定色を有すると判定された画素が占める割合を信頼度と見なし、0%から100%の間の値で示している。
図8(b)の例では信頼度を10%単位に丸めているが、信頼度は1%単位であってもよい。信頼度が100%に近いほど、検出対象の被写体(色)を有する領域である信頼度が高い。
【0062】
(S406:被写体検出に基づく色温度推定)
検出マップ作成部207は、生成した検出マップを被写体判定部208に出力する。被写体判定部208は、検出マップにおいて高い信頼度を有する部分領域に対し、その信頼度の信憑性を判定する。判定は例えば色に基づくものであってよい。以下、色に基づく判定方法について説明する。
【0063】
図9は、被写体判定部208による被写体判定処理に関するフローチャートである。
S901で被写体判定部208は、簡易現像された画像データから、検出マップにおいて信頼度が高い(例えば閾値(例えば80%)以上の部分領域の画像データを抽出する。
【0064】
S902で被写体判定部208は、抽出した画像データに含まれる画素のうち、検出被写体について予め設定された色検出領域(色検出枠)に含まれる色の画素を抽出する。被写体判定部208は、抽出した画素の(R/G,B/G)座標と、色検出領域との関係に応じて各画素に対する色信頼度Tcolorを求める。
図7(C)は、画素の色座標と色信頼度Tcolor(%)との関係例を示す図である。
【0065】
図7(C)において、座標1001、1002は
図10(A)において同じ参照数字を付した領域の外縁に対応する座標である。外側の領域1001は色検出枠である。
図7(C)は、色検出枠1001の内側に設定された領域1002に含まれる色座標を有する画素は色信頼度Tcolorが100(%)、色検出枠1001より外の色座標を有する画素は色信頼度Tcolorが0(%)であることを示している。領域1002の外縁から色検出枠1001の外縁までの間の領域に含まれる色座標を有する画素については、色信頼度Tcolorが100%より小さく0%より大きい。被写体判定部208は、画素ごとに求めた色信頼度Tcolorを例えば平均して、部分領域の色信頼度Tcolorを求める。
【0066】
S903でRGB値加算部209は、検出マップで高い信頼度を有する部分領域について、色検出枠内に含まれる色を有する画素の色成分を積分する。この際、対応する色信頼度Tcolorを重みとして用いる。
R,G,B各成分の積分値をRintegA、GintegA、およびBintegAとすると、以下の式(4)によって積分値が得られる。
RintegA=RintegA+Rij×(Tcolor/100)
GintegA=GintegA+Gij×(Tcolor/100)
BintegA=BintegA+Bij×(Tcolor/100) (4)
ここで、Rijは、水平方向にi番目、垂直方向にj番目(i,jは1以上の整数)の部分領域におけるR成分の積分値である。GijおよびBijについても同様である。検出マップにおける信頼度が低い部分領域は積分対象でないため、i,jは連続値とは限らない。
【0067】
このように、色信頼度Tcolorを考慮して積分値を求めることによって、機械学習に基づく被写体検出の信頼度が高いものの、対象とする被写体の色を有しない画素が多いブロック領域の影響を抑制することができる。このため、機械学習による被写体検出の精度が低い場合においても精度の高いホワイトバランス制御が可能となる。
【0068】
色信頼度Tcolorを考慮した積分値の算出では、
図10(A)の色座標1006のように、色検出枠1001の外側の座標に該当する画素の色成分は積分されない。一方、色検出枠1001の内側に設定された領域1002に含まれる、色座標1003に該当する画素の色成分はそのまま加算(積分)される。また、色検出枠1001には含まれるが、領域1002には含まれない色座標1004に該当する画素の色成分は、色座標に応じて0%より大きく100%より小さい割合で加算される。例えば、色座標1004から最も近い色検出枠1001上の座標Aと、色座標1004から最も近い領域1002上の座標Bとの距離を100とした時の、色座標1004から座標Bまでの距離の大きさを色信頼度Tcolorとすることができる。
【0069】
簡易現像された画像データのうち、検出マップで高い信頼度を有する全ての部分領域についての加算処理が終了すると、積分値RintegA、GintegA、およびBintegAに基づいて、(R/G,B/G)座標が得られる。参照数字1007は、座標(RintegA/GintegA,BintegA/GintegA)を示している。
【0070】
RGB値加算部209は、S903で1つの部分領域についての加算処理を終了すると、CPU103にその時点での積分値を出力する。
S904でCPU103は、この積分値を1つ前の部分領域について得られた積分値と比較することにより、積分値RintegA、GintegA、およびBintegAの全てが更新されているか否かを判定する。CPU103は、判定結果を第2信頼度算出部に出力する。
【0071】
積分値RintegA、GintegA、およびBintegAの全てが更新されていると判定されると、CPU103は、S903で加算処理を適用した部分領域が、検出対象の色を有する部分領域であるとみなす。積分値RintegA、GintegA、およびBintegAの少なくとも一つが更新されていないと判定されると、CPU103は検出対象の色を有しない部分領域であるとみなす。
【0072】
S905で第2信頼度算出部212は、CPU103によって、積分値RintegA、GintegA、およびBintegAの全てが更新されていると判定された部分領域を、以下の式(5)にしたがって計数する。計数値Ntotalは、検出対象の色を有する部分領域の総数を示す。
Ntotal=Ntotal+1 (5)
【0073】
S906でCPU103は、検出マップにおいて高い信頼度を有する部分領域の全てについてS904の判定を実施したか否かを判定する。CPU103は、検出マップにおいて高い信頼度を有する部分領域の全てについてS904の判定を実施した判定されれば被写体判定処理を終了する。CPU103は、検出マップにおいて高い信頼度を有する部分領域の全てについてS904の判定を実施したと判定されなければ被写体判定部208に次の部分領域に対する処理を実施させる。
【0074】
第2信頼度算出部212は、計数値Ntotalに基づいて、簡易現像された画像データに占める、検出対象の色を有する部分領域の割合Nratioを以下の式(6)によって算出し、重み算出部213へ出力する。
Nratio=Ntotal/総分割数×100 (6)
ここで、総分割数は、ブロック分割部201が生成するブロック領域の数に等しい。したがって、割合Nratioは、RAWデータが表す画像全体に占める、特定色を有する領域の割合でもある。
【0075】
一方、光源色推定部210は、RGB加算部209が算出した積分値RintegA、GintegA、およびBintegAから得られる、R/G-B/G座標系における座標(
図10(A)の座標1007)に基づいて、環境光の色温度を推定する。
【0076】
図11は、光源色推定部210における色温度推定処理に関するフローチャートである。また、
図10(B)は、
図10(A)に記載した要素のうち、色温度推定に関連する要素と座標とを示している。
【0077】
色検出枠1001の頂点に対応する座標1008~1011について、光源の逆色温度(色温度の逆数)が例えば光源色推定部210に予め記憶されているものとする。座標1008および1010は低色温度側の頂点、座標1009および1011は高色温度側の頂点である。
【0078】
S1101で光源色推定部210は、座標1007のR/G成分に対応する色検出枠1001の上側の外縁上の座標1012(逆色温度)を求めるため、座標1008と1009とを線形補間する。
【0079】
S1102で光源色推定部210は、座標1007のR/G成分に対応する色検出枠1001の下側の外縁上の座標1013(逆色温度)を求めるため、座標1010と1011とを線形補間する。
【0080】
S1103で光源色推定部210は座標1012に対応する光源の逆色温度と、座標1013に対応する光源の逆色温度とを線形補間して、座標1007のB/G成分に対応する逆色温度を算出する。
【0081】
S1104で光源色推定部210は、S1103で算出した逆色温度を色温度に変換することにより、撮影時の環境光の色温度を推定する。光源色推定部210は、得られた色温度を被写体WB補正値算出部211に出力する。
【0082】
(S407:推定された光源色温度に基づくWB補正値の算出)
被写体WB補正値算出部211(第2の補正値算出手段)は、光源色推定部210が出力する、座標1007に対応する光源の色温度の推定値に基づくWB補正値(被写体WB補正値)を算出する。
図10(C)を用いて、被写体WB補正値について説明する。
図10(C)において、
図10(A)と同じ要素には同じ参照数字が付してある。
【0083】
被写体WB補正値算出部211は、被写体検出部206で検出した特定の色に対応する色温度に対応する黒体輻射軌跡501上の点の座標(RGg,BGg)を算出する。そして、被写体WB補正値算出部211は、式(7)を用いて座標(RGg,BGg)に対応する被写体WB補正値を算出する。
被写体WB補正値のRゲインIR_WB_Rgain=1/RGg
被写体WB補正値のGゲインIR_WB_Ggain=1
被写体WB補正値のBゲインIR_WB_Bgain=1/BGg (7)
【0084】
(S408:最終的なWB補正値の算出)
混合WB補正値算出部214(第3の補正値算出手段)は、白WB補正値と被写体WB補正値とを、重み算出部213で算出される所定の割合で加算して最終的なWB補正値(混合WB補正値)を算出する。
【0085】
図12に示すフローチャートと、
図10(D)とを用いて、白WB補正値と被写体WB補正値とから、最終的なWB補正値を算出する処理について説明する。
図10(D)において、
図10(C)と同じ要素には同じ参照数字を付してある。
【0086】
S1201で重み算出部213は、簡易現像された画像データに占める、検出対象の色を有する部分領域の割合Nratioに基づいて、被写体信頼度Tspecificを算出する。なお、割合Nratioと被写体信頼度Tspecificとの関係は例えば
図7(D)に示すようなものであってよい。なお、
図7(D)において、割合Nratioの代わりに、計数値Ntotalを用いてもよい。基本的に、割合Nratioまたは計数値Ntotalが大きくなるほど、被写体信頼度Tspecificが高くなるような関係とすることができる。重み算出部213は、
図7(D)の関係を表すテーブルまたは数式を記憶しており、割合Nratioまたは計数値Ntotalを用いて被写体信頼度Tspecificを算出する。
【0087】
S1202で重み算出部213は、被写体信頼度Tspecificに基づいて、式(8)によって被写体WB補正値の重みRatio_WBを算出する。なお、ここではS403で算出された白WB補正値の信頼度Twhiteを加味しているが、白WB補正値および被写体WB補正値の一方の信頼度を用いて重みRatio_WBを算出してもよい。
Ratio_WB=Twhite×Tspecific/100 (8)
【0088】
S1203で混合WB補正値算出部214は、重みRatio_WBに基づいて、式(9)によって白WB補正値と被写体WB補正値と加重加算し、最終的なWB補正値(混合WB補正値)WB_Rmixを算出する。
WB_Rmix=(WB_Rw×(100-Ratio_WB)+WB_Rspecific×Ratio_WB)/100 (9)
【0089】
ここで、WB_Rwは白WB補正値のRゲイン、WB_Rspecificは被写体WB補正値のRゲイン、WB_Rmixは混合WB補正値のRゲインである。混合WB補正値算出部214は、GゲインおよびBゲインについてもRゲインと同様にして算出する。
【0090】
図10(D)において、(R/G,B/G)座標1014は被写体WB補正値、(R/G,B/G)座標1015は白WB補正値、(R/G,B/G)座標1016は混合WB補正値にそれぞれ対応する。
図10(D)に示すように、(R/G,B/G)座標1014と(R/G,B/G)座標1015とを結ぶ直線を、重みRatio_WBに応じて分割した座標が、混合WB補正値に対応する(R/G,B/G)座標1016である。このように加重加算を行うことにより、白WB補正値と被写体WB補正値との遷移(すなわち、重みの変化による混合WB補正値の変化)を滑らかにすることができる。
【0091】
画像処理回路105は、このようにして得られた混合WB補正値を、一次記憶装置104に記憶されたRAWデータの現像処理に用いる。
【0092】
本実施形態では、白色画素の検出に基づいて算出した白WB補正値と、被写体検出に基づいて算出した被写体WB補正値とに基づいて、最終的なWB補正値を得ることができる。そのため、例えば白WB補正値の信頼度が高くないと判定された場合に被写体WB補正値を反映したWB補正値を算出することで、より信頼度の高いWB補正値が得られる。
【0093】
また、被写体検出に機械学習を用いることで、従来赤外光を用いて検出出していた、例えばWB制御において難しい色とされる自然の緑を精度よく検出することができる。また、機械学習であれば自然の緑だけでなく、人の肌色など赤外光では対応が難しかった色の被写体も学習させることが可能である。さらに、機械学習による被写体検出結果の信憑性を判定し、白WB補正値に加味する被写体WB補正値の重みを制御することで、被写体検出の精度が高くないことが混合WB補正値に与える影響を抑制することができる。
【0094】
●(第2実施形態)
次に、本発明の第2実施形態について説明する。本実施形態はWB制御部における重み算出処理以外は第1実施形態と共通であるため、相違点について重点的に説明する。本実施形態では、特定の撮影シーンであるかどうかの信頼度を、被写体WB補正値の重みに反映させる。以下では、特定の撮影シーンが屋外シーンである場合を一例として説明するが、屋外シーン以外であっても同様に適用可能である。
【0095】
図13は、本実施形態におけるWB制御部200’の機能構成例を示すブロック図で、第1実施形態と同様の構成には
図2と同じ参照数字を付すことにより重複する説明を省略する。WB制御部200’はシーン判定部1301を有している。
【0096】
シーン判定部1301は、ブロック分割部201の出力するRAWデータに基づいて撮影シーンが特定シーンである信頼度(確からしさ)を算出する。なお、SW2のONが検出される直前に生成された表示用画像データを用いてシーン判定を行ってもよい。また、特定シーンは撮影モードに応じて、あるいはユーザ設定に応じて変更されうる。特定シーンは、被写体検出部206において検出する特定色の被写体が存在する可能性が高いシーンとすることができる。これにより、被写体検出結果の信頼度が高い場合であっても、特定色の被写体が存在しうるシーンである可能性が低い場合には、被写体WB補正値が混合WB補正値に与える影響を抑制することができる。
【0097】
シーン判定部は、特定シーンごとの判定条件を予め記憶しているものとする。シーン判定は公知の技術を用いて行うことができるため、各シーンの判定方法の詳細については説明を省略する。なお、シーン判定には他の情報や外部装置を利用してもよい。例えば、カメラ100がGPSや無線基地局などを利用した測位方法による位置情報を取得可能な場合、取得した位置情報を外部装置に送信し、どのような場所であるかを問い合わせてシーンを判定すると言ったことも可能である。
【0098】
ここでは屋外シーンである信頼度を得るため、シーン判定部1301はブロックデータごとに輝度情報を生成し、例えば撮影画像全体の平均輝度の大きさに基づいて屋外シーンである信頼度Toutdoorを算出するものとする。ここでは、輝度が高いシーンは屋外シーンである可能性が高いものとする。そのため、
図7(A)における横軸を輝度、縦軸を屋外シーンの信頼度Toutdoorとした関係に従って、屋外シーン信頼度Toutdoorを算出することができる。輝度と屋外シーン信頼度Toutdoorとの関係は、シーン判定部1301が例えばテーブルや計算式の形式で予め記憶している。
【0099】
図14は、第2実施形態における
図4のS408で行う、最終的なWB補正値を算出する処理に関するフローチャートである。第1実施形態と同様の処理ステップには
図12と同じ参照数字を付すことにより、重複する説明を省略する。
【0100】
S1401で重み算出部213は、S1201と同様にして被写体信頼度Tspecificを算出する。また、シーン判定部1301が、特定シーンの信頼度(ここでは屋外シーン信頼度Toutdoor)を算出する。
【0101】
S1402で重み算出部213は、被写体信頼度Tspecificと、シーン判定部1301で算出した屋外シーン信頼度Toutdoorとに基づいて、式(10)によって被写体WB補正値の重みRatio_WB2を算出する。
Ratio_WB2=Tspecific×Toutdoor/100 (10)
【0102】
S1403で混合WB補正値算出部214は、重みRatio_WB2に基づいて、式(9)によって白WB補正値と被写体WB補正値と加重加算し、最終的なWB補正値(混合WB補正値)WB_Rmixを算出する。
WB_Rmix=(WB_Rw×(100-Ratio_WB2)+WB_Rspecific×Ratio_WB2)/100 (9)’
【0103】
本実施形態では、被写体WB補正値の重みに、特定の撮影シーンである信頼度を反映させるようにした。例えば特定の撮影シーンを検出対象の被写体が存在する可能性が高いシーンとすることで、混合WB補正値の精度をより高めることが可能になる。
【0104】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0105】
本発明は上述した実施形態の内容に制限されず、発明の精神および範囲から離脱することなく様々な変更及び変形が可能である。したがって、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0106】
200…WB制御部、203…白WB補正値算出部、205…簡易現像処理部、206…被写体検出部、207…検出マップ作成部、208…被写体判定部、211…被写体WB補正値算出部、213…重み算出部、214…混合WB補正値算出部