(57)【要約】【課題】  被写体の人数が大人数の場合においても、リライティング処理にかかる時間を抑えること。【解決手段】  画像に含まれる複数の被写体に対して仮想光を照射した効果を付与するための仮想光パラメータを設定する設定手段と、前記複数の被写体を、陰影の状態に基づいて複数のグループに分類する分類手段とを有し、前記設定手段は、前記分類手段により分類されたグループ毎に、前記仮想光パラメータを設定する。【選択図】  図９
2019145097.tif 000002
【特許請求の範囲】
【請求項１】
画像に含まれる複数の被写体に対して仮想光を照射した効果を付与するための仮想光パラメータを設定する設定手段と、
前記複数の被写体を、陰影の状態に基づいて複数のグループに分類する分類手段とを有し、
前記設定手段は、前記分類手段により分類されたグループ毎に、前記仮想光パラメータを設定することを特徴とする設定装置。
【請求項２】
前記設定手段により設定された仮想光パラメータに基づき、前記複数の被写体に対して仮想光を照射した効果を付与する画像処理手段をさらに有することを特徴とする請求項１に記載の設定装置。
【請求項３】
前記複数の被写体の形状情報を取得する形状取得手段をさらに有し、
前記画像処理手段は、前記仮想光パラメータ及び前記形状情報に基づき、前記複数の被写体に対して仮想光を照射した効果を付与することを特徴とする請求項２に記載の設定装置。
【請求項４】
前記複数の被写体の距離情報を取得する距離取得手段をさらに有し、
前記画像処理手段は、前記仮想光パラメータ、前記形状情報、前記距離情報に基づき、前記複数の被写体に対して仮想光を照射した効果を付与することを特徴とする請求項３に記載の設定装置。
【請求項５】
前記複数の被写体の距離情報を取得する距離取得手段をさらに有し、
前記形状取得手段は、前記距離情報に基づき前記形状情報を取得することを特徴とする請求項３に記載の設定装置。
【請求項６】
前記仮想光パラメータは、仮想光の照射範囲と強度とを含むことを特徴とする請求項１乃至５のいずれか１項に記載の設定装置。
【請求項７】
前記設定手段は、ユーザ操作に基づき、前記グループ毎に前記仮想光パラメータを設定することを特徴とする請求項１乃至６のいずれか１項に記載の設定装置。
【請求項８】
前記仮想光は、被写体を明るくする加算光、被写体を暗くする減算光、被写体に鏡面反射を付加する鏡面反射光を含むことを特徴とする請求項１乃至７のいずれか１項に記載の設定装置。
【請求項９】
被写体を撮像し画像データを得る撮像手段をさらに有する請求項１乃至８のいずれか１項に記載の設定装置。
【請求項１０】
前記分類手段による分類の結果を、表示手段に表示する表示制御手段をさらに有する請求項１乃至９のいずれか１項に記載の設定装置。
【請求項１１】
前記分類手段による分類の結果を変更する指示を受け付ける入力手段をさらに有する請求項１乃至１０のいずれか１項に記載の設定装置。
【請求項１２】
前記入力手段は、少なくとも１つの被写体の選択と、選択された被写体を指定されたグループに分類する指示を受け付けることを特徴とする請求項１１に記載の設定装置。
【請求項１３】
前記分類手段による分類の結果を、表示手段に表示する表示制御手段をさらに有し、
前記表示制御手段による分類の結果は、前記画像処理手段による前記仮想光を照射した効果を付与する前に表示することを特徴とする請求項２に記載の設定装置。
【請求項１４】
前記分類手段による分類の結果を、表示手段に表示する表示制御手段をさらに有し、
前記表示制御手段による分類の結果は、前記画像処理手段による前記仮想光を照射した効果を付与した後に表示することを特徴とする請求項２に記載の設定装置。
【請求項１５】
前記分類手段による分類の結果を変更する指示を受け付ける入力手段をさらに有する請求項１４に記載の設定装置。
【請求項１６】
分類手段が、画像に含まれる複数の被写体を、陰影の状態に基づいて複数のグループに分類する分類工程と、
設定手段が、前記分類工程で分類されたグループ毎に、前記複数の被写体に対して仮想光を照射した効果を付与するための仮想光パラメータを設定する設定工程と
を有することを特徴とする設定方法。
【請求項１７】
コンピュータを、請求項１乃至１５のいずれか１項に記載の設定装置の各手段として機能させるためのプログラム。
【請求項１８】
請求項１７に記載のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された画像の明るさを補正する技術に関する。
【背景技術】
【０００２】
従来、撮影後の画像中の被写体に対して、仮想的な光源からの光を照射し、リライティング処理する技術が知られている。リライティング処理により、環境光によって生じた影などの暗部領域を明るくし、好ましい画像を得ることが可能となる。
【０００３】
例えば、特許文献１では、被写体の陰影の状態を適切に補正することができるリライティング処理について開示されている。具体的には、撮影画像の所定領域の陰影の状態を検出し、検出された陰影の状態に基づいて、仮想光源の特性を決定する。そして決定された特性を有する仮想光源で光を照射した場合の陰影の状態になるように、撮影画像を補正する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−７２６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら上記の特許文献１に挙げた方法では、例えば、被写体が大人数であった場合に、被写体毎の陰影の状態を検出した上で、被写体毎にそれぞれ適した仮想光源の特性を決定することになる。すなわち、被写体の数だけ仮想光源の特性を算出するために、リライティング処理にかかる時間が増大する。
【０００６】
また、ユーザが仮想光源のパラメータ設定を任意に設定可能なアプリケーションにおいても、例えば被写体が大人数であった場合に、ユーザが被写体毎に仮想光源パラメータを設定するのは非常に煩雑である。
【０００７】
本発明は上記問題点を鑑みてなされたものであり、被写体の人数が複数の場合においても、リライティング処理にかかる時間を抑えることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の設定装置は、画像に含まれる複数の被写体に対して仮想光を照射した効果を付与するための仮想光パラメータを設定する設定手段と、前記複数の被写体を、陰影の状態に基づいて複数のグループに分類する分類手段とを有し、前記設定手段は、前記分類手段により分類されたグループ毎に、前記仮想光パラメータを設定する。
【発明の効果】
【０００９】
本発明によれば、被写体の人数が大人数の場合においても、リライティング処理にかかる時間を抑えることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態におけるデジタルカメラの構成を示すブロック図。
【図２】実施形態における画像処理部の構成を示すブロック図。
【図３】実施形態における画像処理部における処理を示すフローチャート。
【図４】実施形態におけるリライティング処理部の構成を示すブロック図。
【図５】実施形態における仮想光源からの仮想的な光の反射を説明する模式図。
【図６】実施形態における仮想光源のパラメータ設定の説明図。
【図７】実施形態におけるリライティング処理前後の画像の一例を示す図。
【図８】実施形態におけるリライティング処理を示すフローチャート。
【図９】実施形態におけるリライティング処理を示すフローチャート。
【図１０】実施形態における複数人のリライティング処理を説明する図。
【図１１】実施形態におけるグループ分けを説明する図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明を実施するための形態を詳細に説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでするものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴うち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。なお、本実施形態では、撮像装置としてデジタルカメラに本発明を適用した例について説明する。
【００１２】
図１は、本実施形態におけるデジタルカメラ１００の構成例を示すブロック図である。図１に示すデジタルカメラ１００において、ズームレンズ、フォーカスレンズを含むレンズ群１０１（撮像光学系）、及び、絞り機能を備えるシャッター１０２を介して入射した光は、撮像部１０３において光電変換される。撮像部１０３は、ＣＣＤやＣＭＯＳ素子などで構成され、光電変換により得られた電気信号は、画像信号としてＡ／Ｄ変換器１０４へ出力される。Ａ／Ｄ変換器１０４は、撮像部１０３から出力されるアナログ画像信号をデジタル画像信号（画像データ）に変換し、画像処理部１０５に出力する。
【００１３】
画像処理部１０５は、Ａ／Ｄ変換器１０４からの画像データ、または、メモリ制御部１０７を介して画像メモリ１０６から読み出された画像データに対し、ホワイトバランスなどの色変換処理、γ処理、輪郭強調処理、色補正処理などの各種画像処理を行う。画像処理部１０５から出力された画像データは、メモリ制御部１０７を介して画像メモリ１０６に書き込まれる。画像メモリ１０６は、画像処理部１０５から出力された画像データや、表示部１０９に表示するための画像データを格納する。
【００１４】
顔・顔器官検出部１１３は、撮影された画像から、人物の顔及び器官が存在する顔及び顔器官領域を検出する。画像処理部１０５では、顔・顔器官検出部１１３の顔検出結果や顔器官検出結果、撮像した画像データを用いて所定の評価値算出処理を行い、得られた評価値に基づいてシステム制御部５０が露光制御、測距制御を行う。これにより、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理などを行う。
【００１５】
また、Ｄ／Ａ変換器１０８は、画像メモリ１０６に格納されている表示用のデジタルの画像データをアナログ信号に変換して表示部１０９に供給する。表示部１０９は、ＬＣＤ等の表示器上に、Ｄ／Ａ変換器１０８からのアナログ信号に応じた表示を行う。
【００１６】
コーデック部１１０は、画像メモリ１０６に格納された画像データをＪＰＥＧやＭＰＥＧなどの規格に基づいてそれぞれ圧縮符号化する。システム制御部５０は符号化した画像データを、インタフェース（Ｉ／Ｆ）１１１を介して、メモリカードやハードディスク等の記録媒体１１２に格納する。また、Ｉ／Ｆ１１１を介して記録媒体１１２から読み出された画像データをコーデック部１１０により復号して伸長し、画像メモリ１０６に格納する。そして、画像メモリ１０６に格納された画像データを、メモリ制御部１０７、Ｄ／Ａ変換器１０８を介して表示部１０９に表示することで、画像を再生表示することができる。
【００１７】
リライティング処理部１１４は、撮影された画像に仮想光源を当てて明るさを補正するリライティング処理（再照明処理）を行う。なお、リライティング処理部１１４により行われるリライティング処理については、詳細に後述する。
【００１８】
システム制御部５０は、デジタルカメラ１００のシステム全体を制御する。不揮発性メモリ１２１は、ＥＥＰＲＯＭなどのメモリにより構成され、システム制御部５０の処理に必要なプログラムやパラメータなどを格納する。システム制御部５０は、不揮発性メモリ１２１に記録されたプログラム、及び、システム制御部５０の動作用の定数、変数をシステムメモリ１２２に展開して実行することで、後述する本実施形態の各処理を実現する。
【００１９】
操作部１２０は、ユーザによるメニューの設定や画像選択などの操作を受け付ける。測距センサ１２３は被写体までの距離を測定し、撮影画素の各画素に対応する距離情報を出力する（距離情報検出）。
【００２０】
次に、画像処理部１０５の詳細について、図２及び図３を用いて説明する。図２は画像処理部１０５の構成を示すブロック図、図３は、画像処理部１０５における処理を示すフローチャートである。なお、本実施形態では、撮像部１０３はベイヤー配列のカラーフィルタにより覆われているものとする。従って、撮像部１０３の各画素からはＲ、Ｇ、Ｂいずれかの画像信号が出力される。
【００２１】
まず、Ｓ３０１において、図１のＡ／Ｄ変換器１０４から入力されたベイヤーＲＧＢの画像データは同時化処理部２００に入力される。同時化処理部２００は、入力されたＲ、Ｇ、Ｂの画像信号に対して同時化処理を行い、各画素について色信号ＲＧＢを生成する。次に、Ｓ３０２において、ＷＢ増幅部２０１は、公知の処理によりシステム制御部５０が算出するホワイトバランスゲイン値に基づき、生成された各画素の色信号ＲＧＢにゲインをかけ、ホワイトバランスを調整する。ＷＢ増幅部２０１によりホワイトバランスが調整された色信号ＲＧＢは、Ｓ３０３において、輝度・色信号生成部２０２に入力される。輝度・色信号生成部２０２は色信号ＲＧＢから輝度信号Ｙを生成し、生成した輝度信号Ｙを輪郭強調処理部２０３へ、また、色信号ＲＧＢを色変換処理部２０５へ出力する。
【００２２】
Ｓ３０４では、輪郭強調処理部２０３において、輝度信号Ｙに対して輪郭強調処理を行い、輝度ガンマ処理部２０４へ出力する。一方、色変換処理部２０５では、色信号ＲＧＢに、例えばマトリクス演算を行って、所望のカラーバランスへ変換し、色ガンマ処理部２０６と被写体情報検出部２０８へ出力する。
【００２３】
Ｓ３０５では、被写体情報検出部２０８において、顔・顔器官検出部１１３から出力される顔・顔器官検出情報と、色変換処理部２０５から出力される色信号ＲＧＢとから、撮影画像における被写体に関する情報を検出する（被写体情報検出）。ここで、被写体に関する情報とは、撮影画像内の被写体の人数、被写体の大きさ、被写体同士の位置関係、被写体への光のあたり方、被写体の陰影情報などである。例えば、被写体の人数、大きさ、位置関係に関しては、顔・顔器官検出部１１３が出力する各顔・顔器官の座標位置情報から検出し、光の当たり方や陰影情報は、撮影画像全体及び各被写体の平均輝度情報や輝度ヒストグラム情報から検出する。
【００２４】
Ｓ３０６では、輝度ガンマ処理部２０４において、輝度信号Ｙに対してガンマ補正を行い、メモリ制御部１０７を介してガンマ補正した輝度信号Ｙを画像メモリ１０６に出力する。一方、色ガンマ処理部２０６においては、色信号ＲＧＢにガンマ補正を行い、色差信号生成部２０７に出力する。Ｓ３０７では、色差信号生成部２０７においてＲＧＢ信号から色差信号Ｒ−Ｙ、Ｂ−Ｙ信号を生成し、メモリ制御部１０７を介して画像メモリ１０６に出力する。
【００２５】
次に、本実施形態におけるリライティング処理について説明する。図４はリライティング処理部１１４の構成を示すブロック図である。リライティング処理部１１４は、画像処理部１０５により処理されて画像メモリ１０６に記録された輝度信号Ｙ及び色差信号Ｂ−Ｙ、Ｒ−Ｙを読み出して入力とし、仮想光源によるリライティング処理を行う。
【００２６】
まず、ＲＧＢ信号変換部４０１は、入力された輝度信号Ｙ及び色差信号Ｂ−Ｙ、Ｒ−ＹをＲＧＢ信号に変換し、デガンマ処理部４０２へ出力する。デガンマ処理部４０２は、画像処理部１０５の輝度ガンマ処理部２０４及び色ガンマ処理部２０６におけるガンマ補正のガンマ特性と逆の特性の演算（デガンマ処理）を行い、リニアデータに変換する。そしてデガンマ処理部４０２は、リニアデータに変換後のＲＧＢ信号（Ｒｔ、Ｇｔ、Ｂｔ）を、仮想光源反射成分算出部４０６及び仮想光源付加処理部４０７に出力する。
【００２７】
一方、距離算出部４０３は測距センサ１２３から取得した被写体の距離情報から、距離マップを算出する。被写体の距離情報とは、撮影画像の画素単位で得られる２次元の距離情報のことである。法線算出部４０４は距離算出部４０３で算出した距離マップから、被写体の形状を表す形状情報として法線マップを算出する。距離マップから法線マップを生成する方法に関しては、公知の技術を用いるものとするが、具体的な処理例について図５を用いて説明する。
【００２８】
図５は、カメラ撮影座標と被写体の関係を示す図である。例えば、図５に示すようにある被写体５０１に対して、撮影画像の水平方向の差分ΔＨに対する、距離Ｄの差分ΔＤＨと、不図示ではあるが、垂直方向（図５の紙面に対して垂直な方向）の差分ΔＶに対する距離Ｄの差分ΔＤＶとから、被写体の一部分における勾配情報を算出する。そして、求めた被写体の一部分における勾配情報から法線Ｎを算出することが可能である。撮影した各画素に対して上記の処理を行うことで、撮影画像の各画素に対応する法線Ｎを算出することが可能である。法線算出部４０４は、撮影画像の各画素に対応する法線Ｎの情報を法線マップとして仮想光源反射成分算出部４０６に出力する。
【００２９】
なお、距離算出部４０３及び法線算出部４０４は、リライティング処理部１１４内に構成されるものとして説明したが、本発明はこれに限られるものでは無く、例えば、測距センサ１２３または画像処理部１０５内に構成しても良いし、独立した構成としても良い。
【００３０】
仮想光源設定部４０５は、画像処理部１０５の被写体情報検出部２０８から入力される被写体情報を基に、仮想光源のパラメータを設定する。例えば、顔全体が暗い被写体に対して顔の明るさを全体的に明るくしたい場合においては、顔全体が仮想光源の照射範囲に含まれるように、仮想光源の位置、照射範囲、強度などのパラメータを制御する。
【００３１】
ここで、被写体が１人である場合を例に取って、仮想光源に設定するパラメータについて、図６を用いて説明する。図６（ａ）は、被写体と仮想光源の位置関係を表した斜視図、図６（ｂ）は、被写体と仮想光源の位置関係を表した平面図である。仮想光源の位置に関しては、仮想光源と被写体までの距離を短く設定すれば仮想光源の光は被写体に強く当たるようになり、逆に被写体までの距離を長く設定すれば仮想光源の光は被写体に弱く当たるようになる。仮想光源の照射範囲に関しては、仮想光源の照射範囲を広く設定すれば被写体全体に光を当てることができ、逆に照射範囲を狭く設定すれば被写体の一部にだけ光を当てることができる。また、仮想光源の強度に関しては、仮想光源の強度を強く設定すれば、被写体に強く光を当てることになり、逆に強度を弱く設定すれば、被写体に弱く光を当てることになる。
【００３２】
仮想光源反射成分算出部４０６では、光源と被写体の距離Ｋ、法線情報Ｎ及び仮想光源設定部４０５が設定した仮想光源のパラメータに基づき、設定した仮想光源から仮想的に照射された光のうち、被写体により反射される成分を算出する。以下、仮想光源から仮想的に照射された光を「仮想光」と呼ぶ。具体的には、仮想光源と各画素に対応する被写体の部分との距離Ｋの二乗に反比例し、法線Ｎのベクトルと光源方向Ｌのベクトルの内積に比例するように、撮影画像の座標位置に対応する被写体の部分における仮想光の反射成分を算出する。
【００３３】
ここで、仮想光の反射成分の一般的な算出方法について、図５を用いて説明する。なお、図５では説明の簡略化のために撮影画像の水平方向についてのみ示しているが、上述したように、紙面に対して垂直な方向が撮影画像の垂直方向となる。以下の説明では、撮影画像における水平画素位置Ｈ１と不図示の垂直画素位置Ｖ１に対応する、被写体５０１上の点Ｐ１における仮想光の反射成分の算出方法について説明する。図５において、仮想光源５０２は被写体５０１に対して設定した仮想光源である。カメラ１００で撮影された撮影画像の位置（Ｈ１，Ｖ１）における仮想光の反射成分は、被写体５０１上の点Ｐ１における法線ベクトルＮ１と仮想光源５０２の光源方向ベクトルＬ１との内積に比例し、仮想光源５０２と点Ｐ１との距離Ｋ１の二乗に反比例する値となる。なお、法線ベクトルＮ１と光源方向ベクトルＬ１は、水平方向、垂直方向、及び奥行き方向（図５の距離Ｄで示す方向）からなる３次元のベクトルである。この関係を数式で表現すると、仮想光の被写体５０１上の点Ｐ１における反射成分（Ｒａ、Ｇａ、Ｂａ）は下記の式（１）に示す通りとなる。
Ｒａ＝α×（−Ｌ１・Ｎ１）／Ｋ１2×Ｒｔ
Ｇａ＝α×（−Ｌ１・Ｎ１）／Ｋ１2×Ｇｔ      …（１）
Ｂａ＝α×（−Ｌ１・Ｎ１）／Ｋ１2×Ｂｔ
ここで、αは仮想光源の光の強度であり、リライティング補正量のゲイン値、Ｒｔ、Ｇｔ、Ｂｔはデガンマ処理部４０２から出力されたＲＧＢ信号である。
【００３４】
上記のようにして算出された仮想光の反射成分（Ｒａ、Ｇａ、Ｂａ）は、仮想光源付加処理部４０７へ出力される。仮想光源付加処理部４０７では、仮想光の反射成分（Ｒａ、Ｇａ、Ｂａ）をデガンマ処理部４０２から出力されたＲＧＢ信号に付加する、下記の式（２）に示す処理を行う。
Ｒｏｕｔ＝Ｒｔ＋Ｒａ
Ｇｏｕｔ＝Ｇｔ＋Ｇａ      …（２）
Ｂｏｕｔ＝Ｂｔ＋Ｂａ
【００３５】
仮想光源付加処理部４０７によりリライティング処理されたＲＢＧ信号（Ｒｏｕｔ、Ｇｏｕｔ、Ｂｏｕｔ）は、ガンマ処理部４０８に入力され、ガンマ補正が行われる。そして、輝度・色差信号生成部４０９では、ガンマ処理されたＲＧＢ信号（Ｒ’ｏｕｔ、Ｇ’ｏｕｔ、Ｂ’ｏｕｔ）から輝度信号Ｙ及び色差信号Ｒ−Ｙ、Ｂ−Ｙ信号を生成して出力する。
【００３６】
リライティング処理部１１４で上述したリライティング処理した例を図７に示す。図７（ａ）は、リライティング処理前の撮影画像、図７（ｂ）は、リライティング処理後の撮影画像の例である。図７（ａ）に示すように暗かった被写体が、仮想光を当ててリライティング処理をすることで、図７（ｂ）に示すように明るく補正されている。
【００３７】
システム制御部５０は、リライティング処理部１１４が出力した輝度信号Ｙ及び色差信号Ｒ−Ｙ、Ｂ−Ｙを、メモリ制御部１０７の制御によって、画像メモリ１０６に蓄積した後、コーデック部１１０で圧縮符号化を行う。また、Ｉ／Ｆ１１１を介して記録媒体１１２に記録する。
【００３８】
次に、本実施形態におけるリライティング処理部１１４によるリライティング処理について、図８及び図９のフローチャートに沿って説明する。この処理は、操作部１２０を介したユーザからの操作によってリライティング処理が選択されている場合に、画像処理部１０５によって処理されて、画像メモリ１０６に記憶された画像（輝度信号Ｙ及び色差信号Ｒ−Ｙ、Ｂ−Ｙ）に対して実施される。
【００３９】
まず、Ｓ８０１において、仮想光源設定部４０５は、Ｓ３０５で被写体情報検出部２０８が取得した、リライティング処理を行う対象の画像に含まれる被写体の人数、大きさ、位置関係などの被写体情報を取得する。そして、Ｓ８０２において、被写体の人数が１人か複数かを判断する。１人の場合は、Ｓ８０３に進み、複数の場合には図９のＳ９０３に進む。
【００４０】
Ｓ８０３では、検出された被写体の領域について、距離算出部４０３が、更に、デジタルカメラ１００と被写体との距離による重み付けマップ（mapＫ）を生成する。具体的には、まず、距離算出部４０３が測距センサ１２３から取得した撮影画像の画素単位で得られる２次元の被写体距離情報に基づいて距離Ｋを画素単位で算出する（距離マップ）。そして、画素単位で１／（Ｋ2）を任意のビット幅で正規化した値を、距離による重み付けマップ（mapＫ）とする。
【００４１】
次に、Ｓ８０４では、検出された被写体の領域について、法線算出部４０４において距離算出部４０３から取得した距離マップに基づいて、法線マップ（mapＮ）を生成する。具体的には、図５で説明したように被写体法線ベクトルＮを画素単位で算出し、その各座標軸方向に対する方向余弦を求める。そして、画素単位で、求めた方向余弦を任意のビット幅で表現して法線による重み付けマップ（mapＮ）とする。
【００４２】
Ｓ８０５では、検出された被写体の領域について、仮想光源設定部４０５において、仮想光の重み付けマップを生成する。具体的には、仮想光源の光源方向ベクトル−Ｌを画素単位で算出し、その各座標軸方向に対する方向余弦を求める。そして、画素単位で、求めた方向余弦を任意のビット幅で表現して仮想光源による重み付けマップ（mapＬ）とする。なお、仮想光源の光源ベクトル−Ｌを算出する為の仮想光源のパラメータ設定に関しては、被写体情報検出部２０８から入力される被写体情報を基に決定する。例えば、取得した顔領域内の輝度分布が偏っていた場合、輝度値が低い領域に仮想光が当たるように仮想光源の位置、照射範囲、強度を決定する。
【００４３】
例えば、輝度値が低い領域の撮影画像における座標が（ｘ１，ｙ１）であるとすると、仮想光の被写体による反射成分（Ｒａ(x1, y1)、Ｇａ(x1, y1)、Ｂａ(x1, y1)）は、次式（３）で表される。
Ｒａ(x1, y1)＝α×（−Ｌ(x1, y1)・Ｎ(x1, y1)）／Ｋ(x1, y1)2×Ｒｔ
Ｇａ(x1, y1)＝α×（−Ｌ(x1, y1)・Ｎ(x1, y1)）／Ｋ(x1, y1)2×Ｇｔ
Ｂａ(x1, y1)＝α×（−Ｌ(x1, y1)・Ｎ(x1, y1)）／Ｋ(x1, y1)2×Ｂｔ
…（３）
なお、式（３）において、αは仮想光源の光の強度である。また、Ｌ(x1, y1)は、座標（ｘ１，ｙ１）に対応する被写体上の位置における仮想光源の光源方向ベクトル、Ｎ(x1, y1)は、座標（ｘ１，ｙ１）に対応する被写体上の位置における法線ベクトルである。更に、Ｋ(x1, y1)は、仮想光源と座標（ｘ１，ｙ１）に対応する被写体上の位置との距離を示す。仮想光が輝度値の低い領域である座標（ｘ１，ｙ１）にある被写体に当たるようにするには、（Ｒａ(x1, y1)、Ｇａ(x1, y1)、Ｂａ(x1, y1)）が正の値となるように、仮想光源の強さαと、被写体との距離Ｋ(x1, y1)を制御する。また、仮想光源の照射範囲は、取得した顔領域内の輝度分布情報を基に、任意の閾値よりも低い輝度値となる座標情報を取得し、その座標が含まれる照射範囲になるよう制御する。また、仮想光源の強さαを大きくし過ぎて白飛びや階調反転などの弊害が生じる可能性もあるので、仮想光源の強さαの範囲としては、照射範囲外となる輝度値が高い領域の平均輝度値±βの輝度値とし、ある閾値βの範囲内で制御する。上述した処理により、仮想光源設定部４０５は仮想光源の位置の範囲、照射する範囲、強度の範囲を算出し、その範囲内の平均値を仮想光源の位置、照射範囲，強度として設定値を決定する。
【００４４】
Ｓ８０６では、仮想光源反射成分算出部４０６において、検出された被写体の領域について、仮想光の反射成分（Ｒａ、Ｇａ、Ｂａ）を算出する。なお、反射成分（Ｒａ、Ｇａ、Ｂａ）は前述した通り、式（１）を用いて算出することができる。この式（１）を、Ｓ８０３の距離による重み付けマップ（mapＫ）、Ｓ８０４の被写体の法線による重み付けマップ（mapＮ）、Ｓ８０５の仮想光源による重み付けマップ（mapＬ）で置き換える。すなわち、下記の式（４）を用いて仮想光の反射成分を算出することができる。
Ｒａ＝α×mapＬ・mapＮ・mapＫ×Ｒｔ
Ｇａ＝α×mapＬ・mapＮ・mapＫ×Ｇｔ      …（４）
Ｂａ＝α×mapＬ・mapＮ・mapＫ×Ｂｔ
【００４５】
Ｓ８０７では、リライティング処理を行う。具体的には、上述した式（２）に示すように、Ｓ８０６で算出した仮想光の反射成分（Ｒａ、Ｇａ、Ｂａ）を、仮想光源付加処理部４０７において、デガンマ処理部４０２の出力（Ｒｔ、Ｇｔ、Ｂｔ）と加算する。リライティング処理を終えると、リライティング処理部１１４による処理を終了する。
【００４６】
以上の処理により、リライティング処理部１１４において、撮影画像中の被写体が１人の場合のリライティング処理を行う。
【００４７】
一方、Ｓ８０２で被写体の人数が複数であると判断された場合、図９のＳ９０３に進む。Ｓ９０３では、距離算出部４０３において、Ｓ８０３と同様にデジタルカメラ１００と被写体との距離による重み付けマップ（mapＫ）を生成する。このとき、検出された複数の被写体の内の１人について、距離による重み付けマップ（mapＫ）を生成する。
【００４８】
次に、Ｓ９０４では、Ｓ８０４と同様に、法線算出部４０４において、法線による重み付けマップ（mapＮ）を生成する。このとき、Ｓ９０３と同じ被写体について、法線による重み付けマップ（mapＮ）を生成する。
【００４９】
Ｓ９０５では、Ｓ９０３とＳ９０４の処理が、検出された人数分完了しているか否かを判別する。完了していなければＳ９０３に戻り、別の一人について処理を行い、完了していればＳ９０６に進む。
【００５０】
Ｓ９０６では、仮想光源設定部４０５において、撮影画像中の被写体をグループに分ける。具体的には、Ｓ８０１で取得した被写体情報（撮影画像内の被写体の人数、被写体の大きさ、被写体同士の位置関係、被写体の陰影情報）を基に、被写体をグループに分ける。
【００５１】
ここで、Ｓ９０６で行われる被写体のグループに分けについて、図１０と図１１を用いて説明する。図１０は、被写体が複数人の場合の撮影画像の例を示す。図１０（ａ）は、リライティング処理前の撮影画像、図１０（ｂ）は、仮想光源設定部４０５において被写体をグループ分けしたイメージ図である。図１０（ｂ）に示すように、被写体のグループ分けは、被写体同士の位置が近く、陰影情報が同じであれば、同じ被写体グループになるよう調整する。
【００５２】
Ｓ９０７では、Ｓ９０６において仮想光源設定部４０５で設定した被写体のグループ数が、上限値以下か否かを判別する。上限値以下の場合は、Ｓ９０８へ進み、上限値を超えていた場合は、Ｓ９０６に戻って、上限値以下となるように調整し直す。
【００５３】
なお、被写体グループへの分類後、どの被写体がどのグループに分類されたかをユーザが識別できるよう、表示部１０９に表示してもよい。このときの表示例としては、例えば図１０（ｂ）に示すようにグループを枠で囲うと共にグループ名を表示してもよい。また、被写体ごとにどのグループに分類されたかを示す指標（例えばグループ名、アイコン、色枠）を表示してもよい。
【００５４】
また、デジタルカメラ１００が自動的に分類した結果を、ユーザが変更できるようにしてもよい。この場合、ユーザは操作部１２０を介して分類結果を変更する指示を入力する。変更の方法は種々の方法が考えられる。例えば図１０（ｂ）のようにグループが枠で囲まれている場合は、例えば枠の大きさを変更することで、各枠に含まれる被写体を変更することができる。また、ユーザ操作により少なくとも１人の被写体を選択し、選択されたユーザがどのグループに分類されるかを指定するようにしてもよい。
【００５５】
Ｓ９０８では、仮想光源設定部４０５において、Ｓ９０６で決定した被写体グループ毎に、それぞれ仮想光源の位置、照射範囲、強度などのパラメータを設定する。この仮想光源の位置、照射範囲、強度などのパラメータの設定は、上述したＳ８０５と同様にして行うが、Ｓ８０５では１人の被写体について行っているのに対し、Ｓ９０８では被写体グループ毎に設定する。そして、被写体グループ毎に設定された仮想光源のパラメータに基づいて、仮想光源による重み付けマップを生成する。具体的には、仮想光源の光源方向ベクトル−Ｌを画素単位で算出し、その各座標軸方向に対する方向余弦を求める。求めた方向余弦を任意のビット幅で表現して仮想光源による重み付けマップ（mapＬ）とする。
【００５６】
図１１は、Ｓ９０８において仮想光源設定部４０５で用いた仮想光源パラメータ設定のテーブル例を示す。１１０１は、被写体Ｎｏ．、１１０２は被写体の顔中心座標、１１０３は陰影情報、１１０４は被写体グループ分け情報を示している。なお、図１１において被写体Ｎｏ．は、図１０の前列の被写体を左側から順に１〜５、後列の被写体を左側から順番に６〜１２に対応付けている。被写体Ｎｏ．及び顔中心座標は顔・顔器官検出部１１３の検出結果から取得し、陰影情報は、顔領域内の輝度分布情報から取得する。被写体のグループ分けは、被写体の位置が近く、陰影情報が同じであれば、同じ被写体グループになるよう調整する。図１１の例では、顔全体が明るい被写体はグループI、右顔の上が暗い被写体に対してはグループII、顔全体が暗い被写体に対してはグループIIIというように、被写体を３つのグループに分けている。
【００５７】
Ｓ９０９では、Ｓ９０６で決定した被写体グループ毎に設定された仮想光源のパラメータを用いて、仮想光源反射成分算出部４０６において仮想光の反射成分を算出する。仮想光の反射成分（Ｒａ、Ｇａ、Ｂａ）は前述した式（３）により算出することができる。そして、被写体グループ毎に、式（３）をＳ９０３で生成した距離による重み付けマップ（mapＫ）、Ｓ９０４で生成した被写体の法線による重み付けマップ（mapＮ）、Ｓ９０８で生成した仮想光源による重み付けマップ（mapＬ）で置き換える。これにより、上述した式（４）を用いて仮想光の反射成分を算出する。
【００５８】
図１０（ｃ）は、仮想光源反射成分算出部４０６により算出された仮想光の反射成分の算出結果のイメージ図である。仮想光反射成分の算出結果とは、前述した通り、ゲインα（強度）と仮想光源による重み付けマップ（mapＬ）と法線による重み付けマップ（mapＮ）と、距離による重み付けマップ（mapＫ）とを乗算した結果を示している。
【００５９】
Ｓ９１０では、仮想光源反射成分算出部４０６において、Ｓ９０９で算出した各被写体グループの仮想光反射成分を合成し、画像全体の仮想光源からの仮想的な光の反射成分（Ｒａ、Ｇａ、Ｂａ）であるを算出する。例えば、図１０に示した撮影画像の例では、被写体グループのI、II、IIIの仮想光反射成分を合成する。合成方法は既存の方法でよいが、例えば、比較明合成処理などで合成する。合成した例を図１０（ｃ）に示す。
【００６０】
Ｓ９１１では、リライティング処理を行う。ここでは、Ｓ８０７と同様に、式（２）を用いて、Ｓ９１０において仮想光源反射成分算出部４０６で算出した全体の仮想光の反射成分（Ｒａ、Ｇａ、Ｂａ）を、仮想光源付加処理部４０７において、デガンマ処理部４０２の出力（Ｒｔ、Ｇｔ、Ｂｔ）と加算することでリライティング処理する。
【００６１】
図１０（ｄ）は、リライティング処理後の撮影画像の例である。図１０（ａ）では、影の位置にいる被写体は顔が暗くなっているのに対し、図１０（ｄ）では、リライティング処理することで被写体全員が適切に明るく補正されている。
【００６２】
なお、リライティングの処理後の画像を表示部１０９に表示する場合は、どの被写体がどのグループに分類されてリライティング処理されたかをユーザが識別できるよう、表示部１０９に表示してもよい。さらに表示された分類結果をユーザが変更しリライティング処理をやり直すことができるようにしてもよい。このようにすることで、ユーザは所望のリライティング処理が得られなかった場合は、リライティング処理をやり直すことができる。
【００６３】
以上の処理により、リライティング処理部１１４において、複数人の被写体に対し、処理時間を掛けずにリライティング処理を行うことが可能となる。
【００６４】
なお、図８及び図９に示す処理では、距離による重み付けマップ及び法線による重み付けマップを生成した後に、仮想光源による重み付けマップを生成するものとして説明したが、生成する順番はこれに限られるものでは無い。仮想光源による重み付けマップの生成後に、距離による重み付けマップ及び法線による重み付けマップを生成しても良いし、並行して生成しても構わない。
【００６５】
また、本実施形態では、撮像装置としてデジタルカメラ１００を例にして説明したが、パーソナルコンピューター等の画像処理装置に本発明を適用することも可能である。その場合、カメラ等の撮像手段で撮影した画像を取得し、取得した画像に対してユーザが任意に仮想光源パラメータを設定してリライティング処理する画像処理装置であってもよい。画像と共に、顔検出結果、距離情報、法線情報などの付加情報があれば、それらの情報を用いてリライティング処理しても良い。その場合においても、被写体をグループ分けすることで、ユーザが被写体１人ずつに対して仮想光源のパラメータを設定する必要がなくなるため、仮想光源のパラメータ設定方法を煩雑にせずにリライティング処理することが可能となる。
【００６６】
また、本実施形態では、１人の被写体またはグループ毎に、仮想光源が１つの場合について説明したが、これに限るものではない。例えば、１つの仮想光源は被写体に対し右斜め上から、もう１つの仮想光源は被写体に対し真横からといったように、複数の仮想光源でリライティング処理する構成にしても良い。
【００６７】
また、本実施形態では、加算光により明るく補正する場合について述べたが、暗くするリライティングを行ってもよい。その場合、仮想光源のゲイン値αをマイナス（減算光）にする。また被写体に鏡面反射光を付加する構成にしてもよい。このように、複数の種類のいずれかを選択して仮想光とすることができる。
【００６８】
また、仮想光源の位置と処理対象画素の距離Ｄの算出方法は、本実施形態の形態に限定するものではなく、どのような算出方法をとってもよい。例えば、カメラの位置および被写体位置を３次元位置として取得し、３次元での距離で計算してもよい。
【００６９】
また、仮想光源を付加する場合に、距離の二乗に反比例する式で計算したが、仮想光源の付加量をこの方式で算出するものに限定するものではない。例えば、距離Ｄに反比例するものや、ガウス分布的に照射範囲が変化する式であってもよい。
【００７０】
また、上述した例では、人を被写体として検出する場合について説明したが、被写体は人に限られるものでは無く、予め決められた被写体（例えば、車、動物、植物など）を検出しても良い。
【００７１】
＜他の実施形態＞
また、本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７２】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【００７３】
５０：システム制御部、１０３：撮像部、１０５：画像処理部、１０６：画像メモリ、１１３：顔・顔器官検出部、１１４：リライティング処理部、１２０：操作部、１２３：測距センサ、４０３：距離算出部、４０４：法線算出部、４０５：仮想光源設定部、４０６：仮想光源反射成分算出部、４０７：仮想光源付加処理部
【図１】
2019145097.tif 000003
【図２】
2019145097.tif 000004
【図３】
2019145097.tif 000005
【図４】
2019145097.tif 000006
【図５】
2019145097.tif 000007
【図６】
2019145097.tif 000008
【図７】
2019145097.tif 000009
【図８】
2019145097.tif 000010
【図９】
2019145097.tif 000011
【図１０】
2019145097.tif 000012
【図１１】
2019145097.tif 000013