(57)【特許請求の範囲】
【請求項１】
入力された画像から被写体領域を検出する検出手段と、
入力された画像について、前記検出手段により検出された被写体領域の代表輝度値を算出する代表輝度値算出手段と、
前記検出手段により検出されたそれぞれの被写体領域に対し、画像に占める面積をそれぞれ算出する面積算出手段と、
前記検出手段により検出された被写体領域のうち、優先度の高い被写体領域を特定する優先度特定手段と、
前記代表輝度値算出手段により算出されたそれぞれの被写体領域の代表輝度値と、前記面積算出手段により算出されたそれぞれの被写体領域の面積と、前記優先度特定手段により特定された優先度の高い被写体領域とに応じて、それぞれの被写体領域の出力時の明るさを決定する明るさ決定手段と、
前記明るさ決定手段によって決定されたそれぞれの被写体領域の明るさに基づいて露光量を算出する露光量算出手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
画像を出力するときのそれぞれの被写体領域の間の輝度段差を決定する輝度段差決定手段をさらに備え、前記明るさ決定手段は、前記輝度段差決定手段により決定された被写体領域の間の輝度段差と、前記面積算出手段により算出されたそれぞれの被写体領域の面積とに応じて、それぞれの被写体領域の出力時の明るさを決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記明るさ決定手段は、被写体領域の間の輝度段差が大きければ大きいほど、面積比が変化した際の明るさ調整量の変化が大きくなるように明るさを調整することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記明るさ決定手段は、被写体領域の間の輝度段差が大きければ大きいほど、面積比が変化した際の明るさ調整量の変化が大きくなるように明るさを調整するとともに、前記優先度が高い被写体領域ほど、適正の明るさになるように明るさを調整することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記露光量算出手段により算出された露光量に基づき撮像された画像に対する階調補正処理を行う階調補正手段をさらに有することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記階調補正手段は、画像の階調特性を決定し、該決定された階調特性を、入力信号に応じたゲインのテーブルに変換し、該変換されたゲインテーブルに基づいてゲイン処理を行うことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記階調補正手段は、前記明るさ決定手段によって決定されたそれぞれの被写体領域の明るさに応じて、前記露光量算出手段により算出された露光量に基づき撮像された画像に対する階調特性を決定することを特徴とする請求項５または６に記載の画像処理装置。
【請求項８】
前記検出手段は、人物の領域と、空の領域と、背景の領域とを前記被写体領域として検出することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記優先度特定手段は、人物の領域を最も優先することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記優先度特定手段は、前記被写体領域として人物の領域が存在しない場合、低輝度の被写体領域を最も優先することを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
入力された画像から被写体領域を検出する検出工程と、
入力された画像について、前記検出工程において検出された被写体領域の代表輝度値を算出する代表輝度値算出工程と、
前記検出工程において検出されたそれぞれの被写体領域に対し、画像に占める面積をそれぞれ算出する面積算出工程と、
前記検出工程において検出された被写体領域のうち、優先度の高い被写体領域を特定する優先度特定工程と、
前記代表輝度値算出工程において算出されたそれぞれの被写体領域の代表輝度値と、前記面積算出工程において算出されたそれぞれの被写体領域の面積と、前記優先度特定工程において特定された優先度の高い被写体領域とに応じて、それぞれの被写体領域の出力時の明るさを決定する明るさ決定工程と、
前記明るさ決定工程において決定されたそれぞれの被写体領域の明るさに基づいて露光量を算出する露光量算出工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１３】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面全体のバランスのとれた階調補正が可能な画像処理装置に関するものである。
【背景技術】
【０００２】
従来より、ＨＤＲ（ハイダイナミックレンジ）や覆い焼き等、入力のダイナミックレンジ（Ｄレンジ）を拡大した信号を出力段階において階調圧縮する処理が知られている。特許文献１では、画像を複数のエリアに分割し、それぞれのエリアから算出した代表画素値とエッジ成分によりエリア毎のヒストグラムを算出し、算出したヒストグラムに基づいて、エリアに対応する階調変換カーブを生成する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１３０１５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年では、撮影する画角に応じて各被写体領域の明るさを制御して出力する技術が要求されている。しかしながら、特許文献１では、各被写体領域ごとに最適な階調補正を行うことは記載されているものの、各被写体領域間のバランスが考慮されていないため、不自然な画像になる場合があるという問題がある。さらに、特許文献１では、撮影する画角に応じて各被写体領域の明るさを制御して出力することはできない。
【０００５】
本発明は上述した課題に鑑みてなされたものであり、その目的は、画面内の各被写体領域の明るさを制御して階調補正を行う場合に、画面全体のバランスのとれた階調補正を実現することである。
【課題を解決するための手段】
【０００６】
本発明に係わる画像処理装置は、入力された画像から被写体領域を検出する検出手段と、入力された画像について、前記検出手段により検出された被写体領域の代表輝度値を算出する代表輝度値算出手段と、前記検出手段により検出されたそれぞれの被写体領域に対し、画像に占める面積をそれぞれ算出する面積算出手段と、前記検出手段により検出された被写体領域のうち、優先度の高い被写体領域を特定する優先度特定手段と、前記代表輝度値算出手段により算出されたそれぞれの被写体領域の代表輝度値と、前記面積算出手段により算出されたそれぞれの被写体領域の面積と、前記優先度特定手段により特定された優先度の高い被写体領域とに応じて、それぞれの被写体領域の出力時の明るさを決定する明るさ決定手段と、前記明るさ決定手段によって決定されたそれぞれの被写体領域の明るさに基づいて露光量を算出する露光量算出手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画面内の各被写体領域の明るさを制御して階調補正を行う場合に、画面全体のバランスのとれた階調補正を実現することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】領域別トーンマッピングの処理内容を説明した図。
【図２】本発明の一実施形態に係わる撮像装置の構成を示すブロック図。
【図３】画像処理部内の階調補正処理に関わる部分の構成を示したブロック図。
【図４】露光量算出部内の構成を示したブロック図。
【図５】画像を取得してから露光量算出部で露光量を算出するまでのフロー図。
【図６】被写体領域検出部の被写体領域判別について説明した図。
【図７】被写体領域間の輝度段差及び、目標露光量と出力露光量を説明した図。
【図８】輝度段差と圧縮量の関係を示す図。
【図９】仮出力露光量と出力露光量の決定方法を説明した図。
【図１０】露光量決定部内の動作フロー図。
【図１１】第１の調整量と第２の調整量と最終調整量を算出するためのテーブルについて説明した図。
【図１２】画像処理部内で行う階調補正処理の動作フロー図。
【図１３】階調特性からゲインテーブルへの変換を説明した図。
【図１４】ゲイン処理部内の構成を示したブロック図。
【図１５】階調特性算出部内の構成を示したブロック図。
【図１６】階調特性算出部内で行う動作フロー図。
【図１７】被写体領域間の輝度段差及び、目標ゲイン量とゲイン量を説明した図。
【図１８】仮ゲイン量とゲイン量の決定方法を説明した図。
【図１９】階調補正量算出部内で行う動作フロー図。
【図２０】各被写体領域で実現したい入出力特性について説明した図。
【図２１】被写体領域毎の階調補正量を適用する入力信号の範囲について説明した図。
【発明を実施するための形態】
【０００９】
以下、本発明の一実施形態について、添付図面を参照して詳細に説明する。本実施形態は、被写体領域の情報を用いて最適な階調補正処理を行うものである。ここで、被写体領域の検出結果を用いて、被写体領域毎に階調補正を行う技術について説明する。この技術を本件では領域別トーンマッピングと呼称する。領域別トーンマッピングでは、図１に示すように、被写体領域毎に代表輝度値などに基づいて最適なゲイン量を算出し、算出された複数のゲイン量を適用した複数の画像を作成して、各画像からそれぞれの被写体領域を抽出して合成し、出力画像を得る。
【００１０】
なお、本実施形態は、最も効果が高いと考えられる逆光時の人物シーンを想定し、人物が最も暗く、空が最も明るいシーンを想定した階調補正処理について説明する。ただし、本発明の考え方はこのようなシーン以外にも適用可能である。
【００１１】
図２は、本発明の一実施形態に係わる撮像装置の構成を示すブロック図である。図２において、光学系１０１は、ズームレンズやフォーカスレンズから構成されるレンズ群、絞り調整装置、および、シャッター装置を備えている。この光学系１０１は、撮像部１０２に到達する被写体像の倍率やピント位置、あるいは、光量を調整している。撮像部１０２は、光学系１０１を通過した被写体の光束を光電変換し電気信号に変換するＣＣＤやＣＭＯＳセンサー等の撮像素子を含む。
【００１２】
Ａ／Ｄ変換部１０３は、入力された映像信号をデジタルの画像信号に変換する。画像処理部１０４は、通常の信号処理の他に、階調補正処理を行う。画像処理部１０４はＡ／Ｄ変換部１０３から出力された画像のみでなく、記録部１１０から読み出された画像に対しても同様の画像処理を行うことができる。画像処理部１０４内の階調補正処理の部分については、後程説明する。
【００１３】
露光量算出部１０５は、階調補正処理を行うために最適な入力画像を得るために、撮影時の露光量を算出する部分である。画像処理部１０４の処理結果を入力とし、算出した露光量を出力し、露光量制御部１０６の入力とする。露光量算出部１０５については、後程詳細に説明する。
【００１４】
露光量制御部１０６は、露光量算出部１０５によって算出された露光量を実現するために、光学系１０１と撮像部１０２を制御して、絞り、シャッタースピード、センサーのアナログゲインを制御する。システム制御部１０７は、本実施形態の撮像装置全体の動作を制御、統括する制御機能部である。画像処理部１０４で処理された画像から得られる輝度値や操作部１０８から送信された指示に基づいて、光学系１０１や撮像部１０２の駆動制御も行う。
【００１５】
表示部１０９は、液晶ディスプレイや有機ＥＬ（Electro Luminescence）ディスプレイで構成され、撮像部１０２で生成された画像や、記録部１１０から読み出された画像を表示する。記録部１１０は、画像を記録する機能を有し、たとえば、半導体メモリが搭載されたメモリカードや光磁気ディスク等の回転記録体を収容したパッケージなどを用いた情報記録媒体を含んでもよく、この情報記録媒体を着脱可能にしてもよい。バス１１１は、画像処理部１０４、システム制御部１０７、表示部１０９、および、記録部１１０の間で画像信号をやり取りするために用いられる。
【００１６】
まず、階調補正処理を行うために最適な露光量で撮影された画像を得るために必要な露光量算出部１０５の処理内容について説明する。本実施形態では、露光量の算出に対しても、被写体領域の情報を用いる。
【００１７】
図４は、露光量算出部１０５内のブロック図である。本実施形態では、露光量算出部１０５の入力として、図３に示した画像処理部１０４内の領域別輝度値算出部２０３と領域別面積算出部２０４の出力結果を用いる。図３の画像処理部１０４の処理内容については後程詳細に説明する。
【００１８】
領域別輝度値算出部２０３の出力結果を入力として、領域間出力輝度段差算出部３０１（輝度段差決定部）で処理を行う。そして、この処理結果と、領域別面積算出部２０４の出力結果を入力として露光量決定部３０２で露光量を決定し、露光量制御部１０６へと出力するまでが、露光量算出部１０５の処理内容となる。
【００１９】
露光量を算出するための画像を取得してから、露光量算出部１０５で露光量を算出するまでの処理内容を動作フローで示したのが図５である。以下、図５を用いて露光量を算出するための画像を取得してから、露光量算出部１０５で露光量を決定するまでの処理内容について詳細に説明する。ステップＳ６０１からステップＳ６０４までが画像処理部１０４で行う処理、ステップＳ６０５からステップＳ６０６までが露光量算出部１０５で行う処理である。
【００２０】
ステップＳ６０１では、露光量を算出するために撮像された画像を取得する。ステップＳ６０２では、取得画像から被写体領域の判別を行う。本実施形態では、被写体領域の判別として、人物の顔領域、人物の体領域、雲・太陽等を含む空領域、それ以外の領域を背景領域として計４つの領域を判別する。図６は、入力画像（１９ａ）に対して、被写体判別を行った結果（１９ｂ）の例を示した図である。被写体領域の判別の方法については、ニューラルネットワークによる学習データを用いた物体認識等、公知の方法で良い（特開２００６−３９６６６号公報参照）また、被写体領域の判別精度については、１画素毎ではなく、一定のサイズで区切られたブロック毎の判別でもよい。
【００２１】
図５に戻り、ステップＳ６０３以降の説明を行う。ステップＳ６０３では、ステップＳ６０２の被写体判別結果を用いて、被写体領域毎の面積を算出する。被写体領域毎の面積とは、画像全体の総画素数に対する対象の被写体領域の画素数の占める割合を指す。本実施形態では人物の顔領域、背景領域、空領域の面積をそれぞれ算出する。それぞれの被写体領域の面積をHUMAN_SIZE，BACK_SIZE，SKY_SIZEと称して、以降説明する。
【００２２】
ステップＳ６０４では、ステップＳ６０２の被写体判別結果を用いて、被写体領域毎の代表輝度値を算出する。代表輝度値は、該当する被写体領域内の輝度信号の平均値、もしくは座標に応じた重み付けによる加重平均値を指す。代表輝度値を算出する被写体領域として、人物の顔領域、背景領域、空領域の３領域を算出する。本実施形態では、人物の体領域は代表輝度値算出に含めない。
【００２３】
被写体領域の代表輝度値をそれぞれ、HUMAN_Y、BACK_Y、SKY_Yと称して、以降説明する。また、本実施形態では、人物の顔領域、空領域の代表輝度値は、該当する被写体領域内の輝度信号の平均値から算出し、背景領域の代表輝度値は、座標に応じた重み付けによる加重平均値から算出する。
【００２４】
ステップＳ６０５では、ステップＳ６０４で算出した各被写体領域の代表輝度値に基づいて被写体領域間の出力時の輝度段差を算出する。被写体領域間の輝度段差の算出について図７を用いて説明する。
【００２５】
図７の（１１ａ）は、入力画像の露光量を基準に、各被写体領域の目標露光量を示した図である。目標露光量とは、対象の被写体領域の代表輝度値を目標輝度値にするために、入力画像の露光量から何段オーバー、何段アンダーの露光量にすれば良いかを示したものである。
【００２６】
オーバーとは入力画像の露光量よりも大きくすること、アンダーとは入力画像の露光量よりも小さくすることを指す。なお、目標輝度値は各被写体領域によってあらかじめ決められた値である。
【００２７】
各被写体領域の代表輝度値をHUMAN_Y、BACK_Y、SKY_Yとし、各被写体領域の目標輝度値をHUMAN_ref_Y、BACK_ref_Y、SKY_ref_Yとすると、各被写体領域の目標露光量ΔBV_HUMAN_ref、ΔBV_BACK _ref、ΔBV_SKY_refは（式１）によって算出される。
【００２８】
ΔBV_HUMAN_ref＝ｌｏｇ2（HUMAN_ref_Y／HUMAN_Y）
ΔBV_BACK _ref＝ｌｏｇ2（BACK_ref_Y／BACK_Y）      …（式１）
ΔBV_SKY_ref＝ｌｏｇ2（SKY_ref_Y／SKY_Y）
上記（式１）によって算出された各被写体領域の目標露光量から各被写体領域間の輝度段差を算出する。人物の顔領域と背景領域の輝度段差をΔHB、背景領域と空領域の輝度段差をΔBS、人物の顔領域と空領域の輝度段差をΔHSとすると、ΔHB，ΔBS，ΔHSは、（式２）の様に算出される。
【００２９】
ΔHB＝ＡＢＳ（ΔBV_HUMAN_ref−ΔBV_BACK _ref）
ΔBS＝ＡＢＳ（ΔBV_BACK _ref−ΔBV_SKY_ref）                  …（式２）
ΔHS＝ＡＢＳ（ΔBV_HUMAN_ref−ΔBV_SKY_ref）
上記（式２）によって算出された輝度段差ΔHB，ΔBS，ΔHSを用いて、出力時の人物の顔領域と背景領域の輝度段差ΔHB_OUT、出力時の背景領域と空領域の輝度段差ΔBS_OUT、出力時の人物の顔領域と空領域の輝度段差ΔHS_OUTは下記の（式３）によって算出される。Comp_HB, Comp_BS, Comp_HSは圧縮量を示しており、０．０〜１．０の値をとる。
【００３０】
ΔHB_OUT＝ΔHB×Comp_HB
ΔBS_OUT＝ΔBS×Comp_BS                                      …（式３）
ΔHS_OUT＝ΔHS×Comp_HS
また、本実施形態では背景領域が中間輝度の被写体領域であるため、下記（式４）の様な関係を持つ。
【００３１】
ΔHS×Comp_HS＝ΔHB×Comp_HB＋ΔBS×Comp_BS                  …（式４）
（式３）、（式４）の圧縮量Comp_HB, Comp_BS, Comp_HSは、被写体領域間の輝度段差と被写体の輝度の関係に応じて、例えば図８のように決定する。上記（式３）によって算出された被写体領域間の出力時の輝度段差ΔHB_OUT，ΔBS_OUT，ΔHS_OUTは、後のステップＳ６０６の処理で用いる。
【００３２】
図５に戻り、ステップＳ６０６以降の説明を行う。ステップＳ６０６では、ステップＳ６０３で算出した各被写体領域の面積HUMAN_SIZE，BACK_SIZE，SKY_SIZEと、ステップＳ６０５で算出した被写体領域間の出力時の輝度段差ΔHB_OUT，ΔBS_OUT，ΔHS_OUTを入力として、階調補正処理を行うために最適な画像を撮影するための露光量を決定する。以上で、露光量算出部１０５の露光量を算出する処理は終了となる。
【００３３】
次に、本実施形態の特徴的な部分であるステップＳ６０６の詳細の処理について説明する。
【００３４】
まず、図７を用いて露光量算出の最終出力について説明する。図７の（１１ｂ）は、入力画像の露光量に対し、各被写体領域の出力露光量を示した図である。この出力露光量とは、最終的に出力したい各被写体領域の明るさを実現するために、入力画像の露光量に対し、何段オーバー、何段アンダーの露光量にすれば良いかを示したものである。
【００３５】
人物の顔領域、背景領域、空領域の出力露光量をそれぞれ、ΔBV_HUMAN，ΔBV_BACK，ΔBV_SKYとすると、各被写体領域の出力露光量の関係は（式５）の様になる。
【００３６】
ΔBV_HUMAN＝ΔBV_BACK＋ΔHB_OUT＝ΔBV_SKY＋ΔHS_OUT
ΔBV_BACK＝ΔBV_HUMAN−ΔHB_OUT＝ΔBV_SKY＋ΔBS_OUT          …（式５）
ΔBV_SKY＝ΔBV_HUMAN−ΔHS_OUT＝ΔBV_BACK−ΔBS_OUT
（式５）の様にして、出力時の輝度段差ΔHB_OUT，ΔBS_OUT，ΔHS_OUTを被写体領域間で維持する様に、各被写体領域の露光量を決定する。
【００３７】
各被写体領域の出力露光量の内、最も露光量の小さい出力露光量を、階調補正処理を行うために最適な露光量として決定する。つまり、各被写体領域の内、最も露光量の小さい出力露光量である空領域のΔBV_SKYを撮影時の露光量として決定する。本実施形態では上記の方法で撮影時の露光量を決定するが、この方法に加え、主被写体の出力露光量に対しある一定の値までしか露光量を小さくできない等、露光量を小さくできる上限を設けて撮影時の露光量を決定しても良い。
【００３８】
次に、図９を用いてΔBV_HUMAN，ΔBV_BACK，ΔBV_SKYの算出方法について説明する。本実施形態では、図９の（１２ａ）の様に中間輝度の被写体である背景領域の目標露光量ΔBV_BACK_refを背景領域の仮出力露光量として（式６）の様に、出力時の輝度段差ΔHB_OUT, ΔBS_OUT, ΔHS_OUTを被写体領域間で維持できる様に人物の顔領域の仮出力露光量ΔBV_HUMAN'、空領域の仮出力露光量ΔBV_SKY'を算出する。
【００３９】
ΔBV_HUMAN'＝ΔBV_BACK_ref＋ΔHB_OUT
ΔBV_SKY'＝ΔBV_BACK_ref−ΔBS_OUT                    …（式６）
背景領域の仮出力露光量ΔBV_BACK_ref、上記（式６）で算出した人物の顔領域の仮出力露光量ΔBV_HUMAN'と空領域の仮出力露光量ΔBV_SKY'に基づいて、調整量Δadjを加えることにより各被写体領域の出力露光量ΔBV_HUMAN，ΔBV_BACK，ΔBV_SKYを算出する。
【００４０】
ΔBV_HUMAN＝ΔBV_HUMAN'＋Δadj
ΔBV_BACK＝ΔBV_BACK_ref＋Δadj                       …（式７）
ΔBV_SKY＝ΔBV_SKY'＋Δadj
上記（式７）で適用する調整量Δadjの算出方法は、本実施形態の特徴となる部分である。調整量Δadjの算出方法について図１０の動作フローチャートを用いて詳細に説明する。
【００４１】
本実施形態では人物以外の被写体の情報により算出した第１の調整量Δadj_back_skyと、人物の情報により算出した第２の調整量Δadj_humanを加重加算することにより調整量Δadjを算出する。上記の様に２つの調整量を算出する理由としては、人物が存在するシーンにおいて人物が主被写体であり、人物が存在しないシーンにおいては低輝度の被写体が主被写体であるという考え方に基づいている。
【００４２】
ステップＳ７０１では、背景領域と空領域双方が存在し、かつ人物が存在する場合に人物が最も低輝度被写体かどうかで、第１の調整量Δadj_back_skyを算出するか否かを判断している。その理由としては、背景領域と空領域のどちらかしか存在しない場合には第１の調整量を算出する必要が無いためである。また、人物が最も低輝度被写体でない場合には、人物は中間輝度被写体もしくは高輝度被写体となり、適正の明るさで出力しようとするため、第１の調整量の影響により人物の明るさを適正よりも明るい方向、もしくは暗い方向に制御するのを防ぎたいためである。
【００４３】
背景領域と空領域双方が存在し、かつ人物が存在する場合に人物が最も低輝度被写体である場合にはステップＳ７０２に進み、そうでない場合はステップＳ７０３に進む。ステップＳ７０２では、背景領域と空領域の面積と領域間の輝度段差を用いて、第１の調整量Δadj_back_skyを算出し、次のステップＳ７０４へ進む。第１の調整量Δadj_back_skyの算出方法については後程説明する。ステップＳ７０３では、第１の調整量Δadj_back_skyを算出しないと判断されたため、Δadj_back_skyに０の値を代入して次のステップＳ７０４へ進む。
【００４４】
ステップＳ７０４では、人物が存在し、かつ人物が最も低輝度の被写体かどうかで、第２の調整量Δadj_humanを算出するか否かを判断している。その理由としては、人物が存在しない場合には第２の調整量を算出する必要が無いためである。また、人物が最も低輝度被写体でない場合には、人物は中間輝度被写体もしくは高輝度被写体となり、適正の明るさで出力しようとするため、第２の調整量を算出する必要が無いためである。
【００４５】
ステップＳ７０５では、背景領域と空領域の面積と領域間の輝度段差を用いて、第２の調整量Δadj_humanを算出し、次のステップＳ７０７へ進む。第２の調整量Δadj_humanの算出方法については後程説明する。ステップＳ７０６では、第２の調整量Δadj_humanを算出しないと判断されたため、Δadj_humanに０の値を代入して次のステップＳ７０７へ進む。
【００４６】
ステップＳ７０７では、第１の調整量Δadj_back_skyと第２の調整量Δadj_humanを加重加算することにより最終的な調整量Δadjを算出する。算出方法については後程説明する。ステップＳ７０８では、ステップＳ７０７で算出した最終的な調整量Δadjを用いて露光量を算出する。その算出方法は（式５）〜（式７）で説明した通りである。以上で、調整量Δadjを算出して露光量を決定するまでの処理は終了となる。
【００４７】
次に、第１の調整量Δadj_back_skyと第２の調整量Δadj_humanの算出方法について説明する。まず、第１の調整量Δadj_back_skyの算出方法について、図１１の（１３ａ−１） と（１３ａ−２）を用いて説明する。
【００４８】
図１１の（１３ａ−１）は第１の調整量Δadj_back_skyを算出するためのテーブルであり、横軸は背景領域に対する空の面積比であり、縦軸は第１の調整量Δadj_back_skyの値である。背景領域に対する空領域の面積比は下記の（式８）の様にして算出する。BACK_SIZEは背景領域の面積、SKY_SIZEは空領域の面積である。
【００４９】
（背景領域に対する空領域の面積比）＝SKY_SIZE／（SKY_SIZE＋BACK_SIZE）
…（式８）
上記（式８）の背景領域に対する空領域の面積が大きければ大きい程、第１の調整量Δadj_back_skyの値はリミット調整値ΔMAX_ADJ_back_skyに近づく特性となる。
【００５０】
リミット調整値ΔMAX_ADJ_back_skyについては図１１の（１３ａ−２）のテーブルによって算出される。横軸は出力時の背景と空の輝度段差ΔBS_OUTで、縦軸はリミット調整値ΔMAX_ADJ_back_skyの値となる。つまり、出力時の背景と空の輝度段差ΔBS_OUTの値が大きくなればなる程、リミット調整値ΔMAX_ADJ_back_skyの値がΔMAX_ADJに近づく特性となる。
【００５１】
このΔMAX_ADJとは、あらかじめ決められたリミット値であり、空領域の仮出力露光量ΔBV_SKY'を空領域の目標露光量ΔBV_SKY_refに近づけた値にするために、ΔBV_SKY_refとΔBV_SKY'の差分量に基づいて設定するのが望ましい。
【００５２】
以上の方法で、第１の調整量Δadj_back_skyを算出することによって、背景領域に対し空領域の面積が大きくなると空領域の出力露光量ΔBV_SKYを空領域の目標露光量ΔBV_SKY_refに近づけることが出来る。また、空領域と背景領域の輝度段差が大きい程、Ｄレンジが広いシーンと判断し、空領域の出力露光量ΔBV_SKYを空領域の目標露光量ΔBV_SKY_refに近づける度合を、Ｄレンジが狭いシーンに比べ急峻に行うことができる。
【００５３】
次に、第２の調整量Δadj_humanの算出方法について、図１１の（１３ｂ）を用いて説明する。第２の調整量Δadj_humanは第１の調整量Δadj_back_skyの算出方法と異なり、被写体領域間の輝度段差に関わらず、人物の顔領域の面積に応じて算出する。その理由は、人物の顔領域を主被写体として第１に考慮しているためである。
【００５４】
図１１の（１３ｂ）は、第２の調整量Δadj_humanを算出するためのテーブルであり、横軸は人物の顔領域の面積つまり前述のHUMAN_SIZEであり、縦軸は第２の調整量Δadj_humanの値となる。人物の顔領域の面積が大きければ大きい程、第２の調整量Δadj_humanの値はΔMAX_ADJ_humanに近づく特性となる。ΔMAX_ADJ_humanはあらかじめ設定された値であり、人物領域の仮出力露光量ΔBV_HUMAN'を人物領域の目標露光量ΔBV_HUMAN_refに近づけた値に調整するために、ΔBV_HUMAN_refとΔBV_HUMAN'の差分量に基づいて設定するのが望ましい。以上の方法で、第１の調整量Δadj_humanを算出することによって人物の顔領域の面積が大きくなると人物の顔領域の出力露光量ΔBV_HUMANを人物の顔領域の目標露光量ΔBV_HUMAN_refに近づけることが出来る。
【００５５】
最後に、最終調整量Δadjの算出方法について、図１１の（１３ｃ）を用いて説明する。最終調整量Δadjは、下記の（式９）の様に、第１の調整量Δadj_back_skyと第２の調整量Δadj_humanを加重加算することにより算出する。αは０．０〜１．０の値をとる加重加算係数である。
【００５６】
Δadj＝α×Δadj_back_sky＋（１−α）×Δadj_human      …（式９）
上記（式９）の加重加算係数αは図１１の（１３ｃ）のテーブルによって算出される。横軸は出力時の人物の顔領域と高輝度被写体の輝度段差となっており、本実施形態では高輝度被写体は空領域であるので、出力時の人物の顔領域と空領域の輝度段差ΔHS_OUTを横軸の値として用いる。縦軸は加重加算係数αの値となっており、出力時の人物の顔領域と高輝度被写体の輝度段差が大きければ大きい程、Ｄレンジが大きいシーンとして判断し、第１の調整量Δadj_back_skyの重みを大きくする。反対に、出力時の人物の顔領域と高輝度被写体の輝度段差が小さければ小さい程、Ｄレンジが小さいシーンとして第２の調整量Δadj_humanの重みを大きくする。その理由は、Ｄレンジが大きいシーンでは、主被写体である人物の顔領域を目標露光量に近づけると、高輝度被写体が飽和しやすくなるためである。また、Ｄレンジが小さいシーンでは、主被写体である人物の顔領域を目標露光量に近づけても高輝度被写体が飽和しにくいためである。
【００５７】
なお、人物がいないシーンの場合のみ、本実施形態では、加重加算係数αは上記の様に算出せず、値として１が代入され、最終調整量Δadjは、第１の調整量Δadj_back_skyがそのまま使用される。
【００５８】
以上の様にして最終調整量Δadjは算出され、前述（式５）〜（式７）で説明した様にして露光量を算出することにより、階調補正処理を行うために最適なＤレンジの画像を取得することができる。
【００５９】
次に、画像処理部１０４内の階調補正処理について詳細に説明する。露光量算出部１０５によって決定された露光量で撮影した画像を入力として、画像処理部１０４内で階調補正処理を行う。
【００６０】
なお、本実施形態の階調補正処理は、領域別トーンマッピングの考えから被写体領域間の輝度段差を縮める様な階調特性を画像全体に適用する（階調特性決定）。またそれに加え、主被写体領域を最優先（優先度算出）とした上で、主被写体以外の被写体領域にシーンに応じてバランス良く階調を割り当てることにより、人間の見た目通りのコントラストと明るさの絵を出力する。
【００６１】
図３は、画像処理部１０４内の階調補正処理に関わる部分の構成を示したブロック図である。このブロック図に対応する動作フローチャートが図１２である。以降、図１２を用いて、画像処理部１０４内の階調補正処理について詳細に説明する。
【００６２】
ステップＳ８０１では、撮影された画像を取得する。ステップＳ８０２では、ステップＳ８０１で取得された画像に対し、被写体領域の判別処理を行う。被写体領域判別処理の内容については、前述したステップＳ６０２の処理と同様のため、説明は省略する。
【００６３】
ステップＳ８０３では、ステップＳ８０２の被写体判別結果を用いて、被写体領域毎の面積を算出する。面積の算出方法については前述したステップＳ６０３の処理と同様のため、説明は省略する。
【００６４】
ステップＳ８０４では、ステップＳ８０２で判別された被写体領域毎に代表輝度値を算出する。各被写体領域の代表輝度値の算出方法については、前述したステップＳ６０４と同様のため、説明は省略する。
【００６５】
ステップＳ８０５では、ステップＳ８０１で取得した画像を入力とし、ステップＳ８０２で判別された被写体領域毎にヒストグラムを算出する。本実施形態では、ヒストグラムは、輝度信号のヒストグラムを算出する。なおヒストグラムを算出する対象の被写体領域は代表輝度値の算出時と同様、人物の顔領域、背景領域、空領域の３領域である。
【００６６】
ステップＳ８０６では、ステップＳ８０４で算出した被写体領域毎の代表輝度値と、ステップＳ８０５で算出した被写体領域毎のヒストグラムを入力として、撮影された画像の階調特性を算出する。ステップＳ８０６の階調特性の算出方法については、後程詳細に説明する。
【００６７】
なお、ステップＳ８０６で算出する階調特性とは、図１３の（１８ａ）の様に横軸を入力信号、縦軸を出力信号として、入力信号に応じた出力信号を表した入出力特性のことを指す。例えば、階調特性を何も変化させない場合は、点線で示したグラフの様になり、入力信号と出力信号の値は等しくなる。なお、本実施形態では、この入力信号、出力信号は輝度信号のことを指す。
【００６８】
ステップＳ８０７では、ステップＳ８０６で算出した階調特性に基づいて、図１３の（１８ｂ）の様に横軸を入力信号、縦軸をゲインとした、入力信号に応じたゲインを示すゲインテーブルに変換する。本実施形態では、入力信号は輝度信号のことを指す。入力信号をｘ、階調特性により入力信号に応じた出力信号をｙとすると、ゲインGainは（式１０）で表される。
【００６９】
Gain＝ｙ／ｘ                                  …（式１０）
ステップＳ８０８では、ステップＳ８０７で算出したゲインテーブルに基づいて、撮影した画像にゲインをかける処理を行う。図１４はステップＳ８０８のゲイン処理に対応するゲイン処理部２０６内の構成を示したブロック図である。以下、図１４を用いてステップＳ８０８のゲイン処理について説明する。
【００７０】
画面の一番左上に位置する画素を(0,0)として、撮影された入力画像の画素位置を(x,y)で示した場合、入力信号Yin(x,y)から出力されるゲインをGain(x,y)として、ステップＳ８０７で算出したゲインテーブルをGainTbl関数として示したのが（式１１）である。
【００７１】
Gain(x,y)＝GainTbl（Yin(x,y)）                …（式１１）
上記Gain(x,y)は撮影された入力画像の(x,y)に位置する画素に対応するゲインである。ゲインを算出するための入力信号であるYinは、撮影された入力画像に基づいて、ゲイン算出用画像生成部５０１で生成される。ゲイン算出用画像の生成方法としては、コントラストを向上させるため、入力画像を輝度画像に変換し、平均値処理を行って画像を生成する方法を用いる。この画像を入力としてゲインを算出することにより、よりコントラストを向上させる効果が期待出来る。
【００７２】
ゲイン変換部５０２は、ゲイン算出用画像生成部５０１により生成したYin信号に基づいて、ゲイン信号に変換する処理を行う。処理内容については（式１１）で示した処理を行う。ゲイン乗算部５０３は、ゲイン変換部５０２で算出したゲインに基づいて、入力画像に対し、ゲインを乗算する処理を行う。本実施形態では、撮影された入力画像から、既にデモザイキング処理を終えたＲ，Ｇ，Ｂ画像に対し、ゲインを乗算する処理を行う。ゲイン乗算前の(x,y)に位置する入力画像のＲ，Ｇ，Ｂの信号をそれぞれRin(x,y)，Gin(x,y)，Bin(x,y)とした場合、ゲイン乗算後のＲ，Ｇ，Ｂの信号Rout(x,y)，Gout(x,y)，Bout(x,y)は、（式１１）のGainTbl関数を用いて、（式１２）で表すことができる。
【００７３】
Rout(x,y)＝Rin(x,y)×GainTbl（Yin(x,y)）
Gout(x,y)＝Gin(x,y)×GainTbl（Yin(x,y)）            …（式１２）
Bout(x,y)＝Bin(x,y)×GainTbl（Yin(x,y)）
（式１２）の様に、画素位置(x,y)であれば、R,G,Bの信号にかけるゲインは同じである。なお、本実施形態ではRGB信号に対してゲイン処理を行ったが、YUV信号に対して上記のゲイン処理を行ってもよい。以上が図１２のステップＳ８０８の処理である。
【００７４】
図１２に戻り、ステップＳ８０９の処理について説明する。ステップＳ８０９では、ステップＳ８０８でゲイン処理を行ったＲ，Ｇ，Ｂのｍビットの信号を表示系に合わせるため、γ特性で階調圧縮処理を行い、ｎ（ｍ≧ｎ）ビットの信号を出力する。階調圧縮処理はγ特性を用いた公知の方法で良い。以上が、画像処理部１０４内の階調補正処理の全体のフローである。
【００７５】
図３の画像処理部１０４内の各ブロックに対し、図１２の処理は、被写体領域算出部２０１にはステップＳ８０２が、領域別ヒストグラム算出部２０２にはステップＳ８０５が、領域別輝度値算出部２０３にはステップＳ８０４が対応する。また、階調特性算出部２０５にはステップＳ８０６が、ゲインテーブル算出部２０６にはステップＳ８０７が、ゲイン処理部２０７にはステップＳ８０８が、階調圧縮処理部２０８にはステップＳ８０９の処理が対応する。
【００７６】
以降、図１２の動作フローの内、ステップＳ８０６の処理について詳細に説明する。ステップＳ８０６の処理は階調特性算出部２０４の処理に対応し、階調特性算出部２０４内の構成をブロック図で示したのが図１５である。
【００７７】
階調特性算出部２０４内の処理は、被写体領域毎に算出した面積と、被写体領域毎に算出した代表輝度値と、被写体領域毎に算出した輝度のヒストグラムを入力とし、撮影された画像の階調特性を算出し、出力する。
【００７８】
図１５のブロック図を動作フローにしたものが、図１６である。以降、図１６の動作フロー図を用いて撮影された画像の階調特性の算出方法について説明する。
【００７９】
ステップＳ９０１では、被写体領域毎に算出した代表輝度値を用いて出力時の被写体領域間の輝度段差を算出する。輝度段差の算出方法については、図１７の様に、ステップＳ６０５の処理の内容と同様で、露光量をゲイン量と置き換えただけなので、説明は省略する。
【００８０】
ステップＳ９０２では、ステップＳ９０１で算出した出力時の被写体領域間の輝度段差と、各被写体領域の面積を入力として、各被写体領域の階調補正量を算出する。なお、階調補正量とは、本実施形態では一律ゲイン量のことを指しており、対象の被写体領域毎にかけたい一律ゲイン量を算出する。
【００８１】
被写体領域毎の階調補正量、つまりゲイン量の算出方法については、図１８の様に、ステップＳ６０６の処理の露光量をゲイン量に置き換えただけであるので説明は省略する。人物の顔領域、背景領域、空領域のゲイン量をそれぞれ、GAIN_HUMAN，GAIN_BACK，GAIN_SKYとすると算出方法は（式１３）で示される。（式１３）は（式９）の変数名を差し替えただけである。
【００８２】
調整量であるΔadjの算出方法については、図１９の動作フロー図の様に、ステップＳ６０６の処理で説明した図１０の動作フロー図の露光量を階調補正量に置き換えただけなので説明は省略する。なお、GAIN_HUMAN'とGAIN_SKY'は人物の顔領域、空領域の仮ゲイン量であり、GAIN_BACK_refは背景領域の目標ゲイン量である。
【００８３】
GAIN_HUMAN＝GAIN_HUMAN'＋Δadj
GAIN_BACK＝GAIN_BACK_ref＋Δadj                    …（式１３）
GAIN_SKY＝GAIN_SKY'＋Δadj
本実施形態では、０段未満のゲイン量に関しては実施しないため、（式１３）でGAIN_HUMAN，GAIN_BACK，GAIN_SKYを算出した後、GAIN_HUMAN，GAIN_BACK，GAIN_SKYのうち、負の値になっているものがあれば、０にクリップする。
【００８４】
被写体領域毎の階調補正量を、入出力特性で表すと、図２０の様になる。入力信号をＸ、出力信号をＹとすると、各被写体領域で実現したい入出力特性は下記の（式１４）で表わされる。
【００８５】
人物の顔領域の入出力特性：Ｙ＝２(GAIN_HUMAN)×Ｘ
背景領域の入出力特性    ：Ｙ＝２(GAIN_BACK)×Ｘ    …（式１４）
各被写体領域の入出力特性が、それぞれ、領域別トーンマッピングで被写体領域毎に適用する階調特性である。各被写体領域の入出力特性の傾きが、各被写体領域で実現したいコントラストであり、出力信号が各被写体領域で実現したい明るさを示している。被写体領域毎の入出力特性を参考に、画面一様に適用する階調特性を生成する処理をステップＳ９０３以降で行う。
【００８６】
図１２に戻りステップＳ９０３以降の処理について説明する。ステップＳ９０３では、被写体領域毎の輝度のヒストグラムに基づいて、ステップＳ９０２で算出した被写体領域毎の階調補正量を適用する入力信号の範囲を決定する。入力信号の範囲について図２１を用いて説明する。
【００８７】
図２１に記載した３つの入出力特性は、（式１４）で示した各被写体領域で実現したい入出力特性である。入出力特性の横軸に記載しているHUMAN_POINT，BACK_POINT，SKY_POINTが各被写体領域の入出力特性を適用する入力信号の範囲を決定する指標となる。0からHUMAN_POINTまでの入力信号の範囲を(1)、0からBACK_POINTまでの入力信号の範囲を(2)、SKY_POINTから入力信号で表現できる最大値までの入力信号の範囲を(3)として図示している。(1) (2) (3)において、(1)は人物の顔領域の入出力特性を適用したい入力信号の範囲、(2)は背景領域の入出力特性を適用したい入力信号の範囲、(3)は空領域の入出力特性を適用したい入力信号の範囲を指す。HUMAN_POINT，BACK_POINT，SKY_POINTについては、例えば、各被写体領域の輝度度数分布から決定すればよく、各被写体領域において上位または下位からの累積値が所定の割合となる輝度とすればよい。
【００８８】
ステップＳ９０４では、ステップＳ９０２で算出した被写体領域毎の階調補正量HUMAN_GAIN，BACK_GAIN，SKY_GAINと、ステップＳ９０３で算出した被写体領域毎の階調補正量を適用する範囲の指標となるHUMAN_POINT，BACK_POINT，SKY_POINTを用いて、階調特性を生成する。例えば、HUMAN_GAINとHUMAN_POINTから第１の変化点を決定し、BACK_GAINとBACK_POINTから第２の変化点を決定し、SKY_GAIN とSKY_POINT から第３の変化点を決定し、これらの変化点をつないで階調特性を生成する。なお、これらの３つの変化点のうち２つだけ用いて階調特性を生成してもよい。以上により、階調特性の生成方法についての説明は終了となる。
【００８９】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【００９０】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９１】
１０１：光学系、１０２：撮像部、１０３：Ａ／Ｄ変換部、１０４：画像処理部、１０５：露光量算出部、１０６：露光量制御部、１０７：システム制御部、１０８：操作部、１０９：表示部、１１０：記録部、１１１：システムバス
【図１】
0006386843.tif 000002
【図２】
0006386843.tif 000003
【図３】
0006386843.tif 000004
【図４】
0006386843.tif 000005
【図５】
0006386843.tif 000006
【図６】
0006386843.tif 000007
【図７】
0006386843.tif 000008
【図８】
0006386843.tif 000009
【図９】
0006386843.tif 000010
【図１０】
0006386843.tif 000011
【図１１】
0006386843.tif 000012
【図１２】
0006386843.tif 000013
【図１３】
0006386843.tif 000014
【図１４】
0006386843.tif 000015
【図１５】
0006386843.tif 000016
【図１６】
0006386843.tif 000017
【図１７】
0006386843.tif 000018
【図１８】
0006386843.tif 000019
【図１９】
0006386843.tif 000020
【図２０】
0006386843.tif 000021
【図２１】
0006386843.tif 000022