(57)【特許請求の範囲】
【請求項１】
画像を取得する取得手段と、
前記画像内に含まれる複数の被写体のうちの第１の被写体の領域の陰影状態に基づいて、前記第１の被写体とは異なる、前記画像内の第２の被写体の領域に仮想的に光を照射する仮想光源を設定する設定手段と、
前記設定された仮想光源に基づく光を前記第２の被写体の領域に照射したような陰影状態の画像を生成する生成手段と、を備える、
ことを特徴とする画像処理装置。
【請求項２】
前記設定手段は、前記第２の被写体の領域の陰影状態が、前記第１の被写体の領域の陰影状態に近づくように前記仮想光源を設定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、前記第２の被写体の領域における輝度の強度分布及び陰影の方向と、前記第１の被写体の領域における輝度の強度分布及び陰影の方向との差異を小さくするように前記仮想光源を設定する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記設定手段は、前記第２の被写体の領域における高輝度領域と低輝度領域の分布態様が、前記第１の被写体の領域における高輝度領域と低輝度領域の分布態様に近づくように前記仮想光源を設定する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記設定手段は、前記第１の被写体の領域における高輝度領域の位置に対応する前記第２の被写体の領域における高輝度領域と、前記第１の被写体の領域における低輝度領域の位置に対応する前記第２の被写体の領域における低輝度領域と、前記仮想光源の位置とが直線上に並ぶように前記仮想光源の位置を設定する、
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記設定手段は、前記第１の被写体の領域における高輝度領域と前記第２の被写体の領域における高輝度領域との差異と、前記第１の被写体の領域における低輝度領域と前記第２の被写体の領域における低輝度領域との差異とのいずれが大きいかに応じて、前記仮想光源の位置を設定する、
ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記第１の被写体は、前記複数の被写体のうち主要被写体である、
ことを特徴とする請求項１から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第１の被写体は、前記画像内で最も大きな面積を占める被写体又は前記画像の中央に最も近い被写体である、
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記設定手段は、前記複数の被写体を複数のグループに分割して、グループごとに前記第１の被写体と前記第２の被写体とを決定し、
グループごとに、グループ内の第１の被写体の領域の陰影状態に基づいて、同じグループ内の第２の被写体の領域に仮想的に光を照射する仮想光源を設定する、
ことを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記設定手段は、
前記第１の被写体の領域に対して仮想的な光を照射する仮想光源を予め決定し、
前記第２の被写体の領域の陰影状態と前記第１の被写体の領域の陰影状態とが所定の基準に基づき類似する場合、前記第１の被写体の領域に対する仮想光源の特性を、前記第２の被写体の領域に対する仮想光源に設定し、
前記第２の被写体の領域の陰影状態と前記第１の被写体の領域の陰影状態とが前記所定の基準に基づき類似しない場合、前記第２の被写体の領域の陰影状態を、前記第１の被写体の領域の陰影状態に近づけるように前記仮想光源を設定する、
ことを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
画像を撮像する撮像手段と、
請求項１から１０のいずれか１項に記載の画像処理装置と、を備える
ことを特徴とする撮像装置。
【請求項１２】
取得手段が、画像を取得する取得工程と、
設定手段が、前記画像内に含まれる複数の被写体のうちの第１の被写体の領域の陰影状態に基づいて、前記第１の被写体とは異なる、前記画像内の第２の被写体の領域に仮想的に光を照射する仮想光源を設定する設定工程と、
生成手段が、前記設定された仮想光源に基づく光を前記第２の被写体の領域に照射したような陰影状態の画像を生成する生成工程と、を備える、
ことを特徴とする画像処理装置の制御方法。
【請求項１３】
画像を撮像する撮像手段を有する撮像装置の制御方法であって、
取得手段が、前記画像を取得する取得工程と、
設定手段が、前記画像内に含まれる複数の被写体のうちの第１の被写体の領域の陰影状態に基づいて、前記第１の被写体とは異なる、前記画像内の第２の被写体の領域に仮想的に光を照射する仮想光源を設定する設定工程と、
生成手段が、前記設定された仮想光源に基づく光を前記第２の被写体の領域に照射したような陰影状態の画像を生成する生成工程と、を備える、
ことを特徴とする撮像装置の制御方法。
【請求項１４】
コンピュータに、請求項１２に記載の画像処理装置の制御方法の各工程を実行させるためのプログラム。
【請求項１５】
コンピュータに、請求項１３に記載の撮像装置の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および撮像装置、それらの制御方法ならびにプログラムに関する。
【背景技術】
【０００２】
従来、画像処理によって撮影後に撮影時とは異なる照明環境で撮影したように見える画像を生成するリライティング処理が知られている。リライティング処理によって所望の照明環境で撮影したように見える画像を生成するためには、リライティング処理のための仮想光源の強度や位置を適切に設定する必要がある。特許文献１には、人物の顔の有無や位置に応じて仮想光源の強度を設定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４８５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術では、被写体が１つしか存在しない場合には適切な仮想光源の強度を設定することが可能になるが、複数の被写体が存在する場合の処理については考慮されていない。すなわち、複数の被写体に対して個別に照明環境を調節できることが望ましいが、被写体ごとに独立に仮想光源を設定すると、陰影のつき方が互いに不揃いとなり、生成される画像が不自然になる場合がある。
【０００５】
本発明は、上述の従来技術の問題点に鑑みてなされたものである。すなわち、複数の被写体に対して仮想光源を適用する場合に、被写体間における陰影の違和感を低減することができる画像処理装置および撮像装置、それらの制御方法ならびにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、画像を取得する取得手段と、画像内に含まれる複数の被写体のうちの第１の被写体の領域の陰影状態に基づいて、第１の被写体と異なる、画像内の第２の被写体の領域に仮想的に光を照射する仮想光源を設定する設定手段と、設定された仮想光源に基づく光を第２の被写体の領域に照射したような陰影状態の画像を生成する生成手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数の被写体に対して仮想光源を適用する場合に、被写体間における陰影の違和感を低減することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る画像処理装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【図２】実施形態１に係る画像処理部の機能構成例を示す図
【図３】実施形態１に係るリライティング処理の一連の動作を示すフローチャート
【図４】実施形態１に係る、仮想光源の位置を設定する処理の詳細を説明する図
【図５】実施形態２に係るリライティング処理の一連の動作を示すフローチャート
【図６】実施形態２に係る、仮想光源の位置を設定する処理の詳細を説明する図
【発明を実施するための形態】
【０００９】
（実施形態１）
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下では画像処理装置の一例として、撮影した画像にリライティング処理を行うことが可能な任意のデジタルカメラに本発明を適用した例を説明する。しかし、本発明は、デジタルカメラに限らず、入力した画像にリライティング処理を行うことが可能な任意の機器にも適用可能である。これらの機器には、例えば携帯電話機、ゲーム機、タブレット端末、パーソナルコンピュータ、時計型や眼鏡型の情報端末、監視システム及び医療機器などが含まれてよい。
【００１０】
（デジタルカメラ１００の構成）
図１は、本実施形態の画像処理装置の一例としてデジタルカメラ１００の機能構成例を示すブロック図である。なお、図１に示す機能ブロックの１つ以上は、ＡＳＩＣやプログラマブルロジックアレイ（ＰＬＡ）などのハードウェアによって実現されてもよいし、ＣＰＵやＭＰＵ等のプログラマブルプロセッサがソフトウェアを実行することによって実現されてもよい。また、ソフトウェアとハードウェアの組み合わせによって実現されてもよい。従って、以下の説明において、異なる機能ブロックが動作主体として記載されている場合であっても、同じハードウェアが主体として実現され得る。
【００１１】
撮影光学系１０１はズームレンズ、フォーカスレンズを含み、被写体からの光学像を撮像部１０３に含まれる撮像素子に結像させる。シャッター１０２は絞り機能を備え、被写体光学像を所定の時間に渡って露光させる。
【００１２】
撮像部１０３は、光電変換素子を有する画素が複数、２次元的に配列された構成を有する撮像素子を含む。撮像素子は、結像された光学像を各画素で光電変換し、画素単位のアナログ画像信号を出力する。撮像素子は、例えばＣＣＤ（Charge-Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどを含む。撮像素子は例えば原色ベイヤー配列のカラーフィルタを有し、各画素には、Ｒ（赤）、Ｇ（緑）、Ｂ（青）の何れかのカラーフィルタが設けられている。撮像部１０３は、これらの色成分ごとに分離したＲＧＢ形式で画像信号を出力する。
【００１３】
Ａ／Ｄ変換部１０４は、撮像部１０３から出力されるアナログ画像信号をデジタル信号に変換して画像データを出力する。画像処理部１０５はＡ／Ｄ変換部１０４から出力される画像データに対し、ホワイトバランス処理や、γ処理、色補正処理などの各種画像処理を行う。
【００１４】
画像メモリ１０６は、揮発性の記憶媒体を含み、撮影された画像データや記録媒体１１２から読み出された画像データ等を一時的に保持する。メモリ制御部１０７は、画像メモリ１０６に対するデータの書き込みや読み出しを制御する。Ｄ／Ａ変換部１０８は、入力したデジタル信号をアナログ信号に変換する変換回路又はモジュールを含む。
【００１５】
表示部１０９は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ、電子ペーパー等の表示デバイスを含む。表示部１０９は、撮影又は再生された画像を表示したり、ライブビュー画像を表示したりするほか、デジタルカメラ１００を操作するためのメニュー等を表示する。
【００１６】
コーデック部１１０は演算回路又はモジュールを含み、画像データを圧縮符号化・復号化する。記録Ｉ／Ｆ１１１は、記録媒体１１２とのインターフェースを含み、記録媒体１１２との間でデータを送受信する。
【００１７】
記録媒体１１２は、メモリカード等の、大容量のランダムアクセス可能な記録媒体である。記録媒体１１２は、不図示の装着、排出機構により、デジタルカメラ１００に対してユーザが容易に装着し、また、取り外すことが可能である。
【００１８】
システム制御部５０は、例えば、ＣＰＵ（ＭＰＵ）、メモリ等を有し、不揮発性メモリ１２４に記憶されたプログラムを実行してデジタルカメラ１００の各ブロックを制御したり、各ブロック間でのデータ転送を制御したりする。また、システム制御部５０は、ユーザからの操作を受け付ける操作部１２０からの操作信号に応じて、デジタルカメラ１００の各ブロックを制御する。
【００１９】
操作部１２０は、例えば、静止画記録ボタン、動画記録開始、停止を指示するボタンなどの撮影に関連する各種操作を入力するスイッチ類を含む。また、操作部１２０は、メニュー表示ボタン、決定ボタン、その他カーソルキー、ポインティングデバイス、タッチパネル等を有し、ユーザによりこれらのキーやボタンが操作されるとシステム制御部５０に操作信号を送信する。電源スイッチ１２１は、デジタルカメラ１００の電源の入り切りを操作するスイッチを含む。電源スイッチ１２１は操作部１２０に含まれてもよい。
【００２０】
電源制御部１２２は、電池の装着の有無、電池の種類、電池残量の検出を行って、電源部１２３から供給される電力を制御する。
【００２１】
不揮発性メモリ１２４は、電気的に消去・記録可能なメモリカード等の記録媒体であり、例えばＥＥＰＲＯＭ等を含む。不揮発性メモリ１２４は、システム制御部５０におけるＣＰＵのためのプログラムや、動作用の定数などを記憶する。
【００２２】
システムタイマ１２５は各種制御に用いる時間や、内蔵された時計の時間を計測する。システムメモリ１２６はシステム制御部５０の動作用の定数、変数、不揮発性メモリ１２４から読み出したプログラム等を展開する。測距センサ１２７は撮影時に画像データの各画素における被写体までの奥行きを計測して奥行情報をシステム制御部５０或いは画像処理部１０５に出力する。
【００２３】
（撮像時におけるデジタルカメラ１００の基本的な動作）
次に、図１を参照して説明したデジタルカメラ１００の、撮影時における基本的な動作を説明する。
【００２４】
撮像部１０３は、撮影光学系１０１及びシャッター１０２を介して入射した光を光電変換し、画像信号としてＡ／Ｄ変換部１０４へ出力する。Ａ／Ｄ変換部１０４は撮像部１０３から出力されるアナログ画像信号をデジタル画像信号に変換し画像処理部１０５に出力する。
【００２５】
画像処理部１０５は、Ａ／Ｄ変換部１０４からの画像データ、又は、メモリ制御部１０７から読み出した画像データに対し、ホワイトバランスなどの色変換処理、γ処理などを行い、ベイヤーＲＧＢデータ、輝度・色差信号Ｙ、Ｒ−Ｙ、Ｂ−Ｙのうち何れかの画像データを出力する。画像処理部１０５から出力された画像データは、メモリ制御部１０７を介して画像メモリ１０６に書き込まれる。また、画像処理部１０５は、入力された画像データに対して所定の演算処理を行い、得られた演算結果をシステム制御部５０に出力する。システム制御部５０は、画像処理部１０５からの演算結果に基づいて露光制御、測距制御を行う。これにより、例えばＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理などを行うことができる。画像処理部１０５では更に、撮像した画像データを解析し、撮影時の光源を推定し、推定した光源に基づきＡＷＢ（オートホワイトバランス）処理も行う。
【００２６】
画像メモリ１０６は、Ａ／Ｄ変換部１０４や画像処理部１０５から出力された画像データなど、表示部１０９に表示するための画像データを格納する。また、Ｄ／Ａ変換部１０８は、画像メモリ１０６に格納されている画像表示用のデータをアナログ信号に変換して表示部１０９に供給する。表示部１０９は、ＬＣＤ等の表示装置上に、Ｄ／Ａ変換部１０８からのアナログ信号に応じて表示する。また、コーデック部１１０は、画像メモリ１０６に記録された画像データを例えばＭＰＥＧなどの規格に基づき圧縮符号化し、圧縮符号化されたデータは記録Ｉ／Ｆ１１１を介して記録媒体１１２に記憶される。
【００２７】
（リライティング処理に係る一連の動作）
次に、図２から図４を参照して、本実施形態のリライティング処理に係る一連の動作を説明する。図２は本実施形態に係る画像処理部１０５の機能構成例を、図３は本実施形態のリライティング処理に係るフローチャートを、図４は仮想光源の位置を設定する処理の詳細をそれぞれ示している。また、リライティング処理に係る一連の動作は、例えば操作部１２０に対するユーザからの撮影指示に応じて撮像部１０３で撮影された画像データが画像処理部１０５に入力された場合に開始される。また、本処理は、システム制御部５０が不揮発性メモリ１２４に記憶されたプログラムをシステムメモリ１２６の作業用領域に展開、実行し、画像処理部１０５（或いは画像処理部１０５を構成する各部）を制御することにより実現される。
【００２８】
Ｓ３０１では、被写体検出部２０１は撮影して得らえた画像データから複数の顔領域を検出する。本実施形態の顔領域の検出処理は公知の顔認識技術を用いることができ、例えば目や口などの所定の器官を検出して顔領域を検出する方法を用いることができる。本処理により例えば図４（ａ）に示す顔領域４０１及び４０２が検出される。
【００２９】
Ｓ３０２では、代表被写体選択部２０２はＳ３０１において検出された複数の顔領域の中から、代表となる顔領域（単に代表領域ともいう）を１つ選択する。より詳細な処理については後述する。
【００３０】
Ｓ３０３では、陰影情報取得部２０３はＳ３０２において代表領域として選択された顔領域の陰影情報を取得する。より詳細な処理については後述する。
【００３１】
Ｓ３０４では、仮想光源情報設定部２０４はＳ３０３で取得された顔領域の陰影情報に基づいて、代表領域以外の顔領域に対して仮想的に光を照射する仮想光源のパラメータ（仮想光源情報）を設定する。具体的に、仮想光源情報設定部２０４は、代表領域以外の顔領域の陰影状態（陰影の付き方）が代表領域の陰影状態に近づくように、仮想光源の位置や強度を設定する。更に詳細な処理については後述する。
【００３２】
Ｓ３０５では、照明付加部２０５はＳ３０４において設定された仮想光源情報を用いて、代表領域以外の顔領域に仮想的な光を照射した効果を付加する。本実施形態における照明効果の付加には、例えば特開２０１０−１３５９９６号公報に開示された公知のリライティング技術を用いることができる。照明付加部２０５は照明効果を付加した画像（撮影時とは異なる照明環境で撮影したような陰影状態の画像）を生成して出力すると処理を終了し、システム制御部５０は一連の動作を終了する。
【００３３】
次に、Ｓ３０２における代表領域を選択する処理、Ｓ３０３における陰影情報を取得する処理、Ｓ３０４における仮想光源情報を設定する処理のそれぞれの詳細について説明する。
【００３４】
Ｓ３０２では、代表被写体選択部２０２はＳ３０１において検出した複数の顔領域の中から代表となる顔領域を選択する。これは、代表領域（たとえば主要被写体）の陰影を基準に複数の顔領域に対して照明効果を付加するためである。代表領域以外の顔領域の陰影状態が代表領域の陰影状態に近づけば、複数の顔領域に対してそれぞれ照明効果を付加した場合であっても処理後の画像が全体として不自然さの低減した仕上がりとなる。代表被写体選択部２０２は、例えば図４（ａ）に示すように、複数の顔領域のうち画像内に占める面積が大きい顔領域４０１を代表領域として選択する。なお、例えば画像の中央に最も近い顔領域を選択する方法や陰影の付き方が好ましい（例えば輝度値の分布や陰影の方向が予め定めた条件を満たす）顔領域を選択する方法、またはこれらの組み合わせなど他の方法を用いてもよい。
【００３５】
Ｓ３０３では、陰影情報取得部２０３は、Ｓ３０２において選択された代表領域の陰影情報を取得する。具体的には、陰影情報取得部２０３は代表領域の陰影の分布態様を算出する。例えば、図４（ｂ）に示すように代表領域を複数のブロック（例えば、３×３＝９個）に分割して、分割したブロック毎に輝度平均値を算出する。次に、陰影情報取得部２０３は、算出した輝度平均値に基づいて、代表領域の陰影情報を算出する。例えば、分割した複数のブロックのうち、最も平均輝度の高いブロック（図４（ｂ）のブロック４０３）の輝度Ｄｈと最も平均輝度の低いブロック（図４（ｂ）のブロック４０４）の輝度Ｄｌとを算出して、ＤｈとＤｌの組を代表領域の陰影情報とする。換言すれば、本実施形態の陰影情報は、代表領域における輝度の強度分布と陰影の方向に関する情報を保持する。
【００３６】
Ｓ３０４では、仮想光源情報設定部２０４は仮想光源の情報を設定する。仮想光源の情報は、例えば仮想光源の位置（方向）と強度とを含む。仮想光源情報設定部２０４は、代表領域以外の顔領域に照明効果を付加する際の仮想光源情報を、代表領域以外の顔領域の陰影状態が代表領域の陰影状態に近づくように設定する。具体的には、仮想光源情報設定部２０４は、図４（ｃ）に示すように、Ｓ３０３と同様の分割方法（３×３）を用いて代表領域以外の顔領域を複数のブロックに分割し、分割したブロック毎に輝度平均値を算出する。次に、代表領域以外の顔領域において分割されたブロックのうち、代表領域内において最も輝度平均値の高いブロック（例えばブロック４０３）の位置と同じ位置関係（対応する位置関係）にあるブロック（ブロック４０５）の輝度平均値Ｄｈ’を求める。そして、式１に従ってブロック４０３の輝度平均値Ｄｈとブロック４０５の輝度平均値Ｄｈ’の差分を求める。
【００３７】
ＤＨ  ＝  Ｄｈ  −  Ｄｈ’      （１）
【００３８】
同様に、仮想光源情報設定部２０４は、代表領域以外の顔領域の分割されたブロックのうち、Ｓ３０３において選択された代表領域の最も輝度平均値の低いブロック（ブロック４０４）と同じ位置関係にあるブロック（ブロック４０６）の輝度平均値Ｄｌ’を求める。そして、式２に従って、ブロック４０４の輝度平均値Ｄｌとブロック４０６の輝度平均値Ｄｌ’との差分ＤＬを求める。
【００３９】
ＤＬ  ＝  Ｄｌ  −  Ｄｌ’      （２）
【００４０】
すなわち、差分ＤＨ及び差分ＤＬを求めることにより、代表領域における輝度の強度分布及び陰影の方向と、代表領域以外の領域における輝度の強度分布及び陰影の方向との差異を得ることができる。
【００４１】
次に仮想光源情報設定部２０４は、算出した差分ＤＨと差分ＤＬの大きさを比較したうえで、代表領域以外の顔領域の陰影状態が代表領域の陰影状態に近づくように仮想光源の位置（方向）を設定する。仮想光源情報設定部２０４は、高輝度値の差分ＤＨが低輝度値の差分ＤＬ以上である場合、ブロック４０５の中心とブロック４０６の中心とを結ぶ直線上に、ブロック４０６よりブロック４０５に仮想光源の光が照射されるように仮想光源を配置する。すなわち、直線上に、仮想光源とブロック４０５の中心とブロック４０６の中心とがこの順番に並ぶように仮想光源を配置する（図４（ｄ））。反対に、高輝度値の差分ＤＨが低輝度値の差分ＤＬ未満である場合、ブロック４０５の中心とブロック４０６の中心とを結ぶ直線上であって、ブロック４０５よりブロック４０６に仮想光源の光が照射されるように仮想光源を配置する。すなわち、仮想光源とブロック４０６の中心とブロック４０５の中心とがこの順番に並ぶように仮想光源を配置する。
【００４２】
また、仮想光源情報設定部２０４は、仮想光源の強度Ｓ１を式３に従って算出する。
【００４３】
Ｓ１  ＝｜ＤＨ  −  ＤＬ｜      （３）
【００４４】
そして、仮想光源情報設定部２０４は、仮想光源を配置すると処理を上述したＳ３０５に進め、システム制御部５０はＳ３０５の処理が完了すると本一連の動作を終了する。
【００４５】
なお、本実施形態では、仮想光源の位置（方向）を２次元空間上で決定する例について説明したが、更に奥行き情報を加味して、３次元空間上で仮想光源の位置（方向）を決定してもよい。この場合、測距センサ１２７から出力される画像の各画素に対応する距離情報を奥行き情報として用いれば、３次元空間に上述した実施形態を適用することができる。
【００４６】
また、本実施形態では、画角内に被写体領域（顔領域）が３つ以上存在する場合であっても、上述した処理と同様に１つの代表領域を選択して、代表領域の陰影情報を基準としたリライティング処理を行うことができる。そして、本実施形態では顔領域を例に説明したが被写体領域を人物全体や所定の物体である場合にも上述した方法を適用することができる。
【００４７】
なお、本実施形態では、代表領域に照明効果を与えない場合を例に説明した。しかし、上述した仮想光源による処理と異なる方法により代表領域の陰影状態を予め変化させてもよい。この場合、陰影状態の変化した後の代表領域の陰影情報を基準にして、代表領域以外の顔領域に対する仮想光源情報を設定し、照明効果を付加すればよい。
【００４８】
なお、本実施形態では、複数の被写体から１つの代表となる被写体（領域）を選択するリライティング処理について説明したが、複数の被写体を複数のグループに分割し、分割したグループごとに代表となる被写体を選択するリライティング処理を行ってもよい。例えば、複数の被写体間の距離が所定以上離れている場合、環境光の当たり方が異なるものと推定できる。この場合、まず被写体をグループに分割して各グループ内の代表となる被写体を選択し、上述したリライティング処理を行ってもよい。このようにすれば、もとの環境光の当たり方が異なりグループ間で陰影の付き方が異なる場合に、リライティング後の画像の不自然さを更に低減することができる。
【００４９】
なお、本実施形態では、仮想光源情報として仮想光源の位置（方向）と強度を用いたが、更に顔領域における拡散特性を考慮してもよい。すなわち、代表領域の陰影状態に近づけるために代表領域以外の顔領域の拡散特性を適宜設定してよい。たとえば、仮想光源によって陰影をより強調したい場合には拡散特性を低くし、陰影を弱めたい場合は拡散特性を高くすればよい。
【００５０】
以上説明したように本実施形態では、複数の顔領域がある場合に、代表領域の陰影状態に基づき、代表領域以外の顔領域の陰影状態を代表領域の陰影状態に近づけるように変化させる仮想光源を設定して、画像のリライティング処理を行うようにした。このようにすることで、複数の被写体を含んだ画像にリライティング処理を適用する場合に複数の被写体の陰影状態をより適切に設定することが可能になる。換言すれば、複数の被写体に対して仮想光源を適用する場合に、被写体間における陰影の違和感を低減することができる。
【００５１】
（実施形態２）
次に実施形態２について説明する。実施形態１では、代表領域の陰影状態を基準にして代表領域以外の顔領域に対する仮想光源を設定するリライティング処理について説明した。実施形態２では、代表領域に対する仮想光源を設定して代表領域に対しても照明効果を付加し、当該仮想光源の情報を用いて、代表領域以外の他の顔領域に照明効果を付加する。本実施形態では、デジタルカメラ１００の構成は実施形態１の場合と同一でよく、リライティング処理におけるＳ６０１〜Ｓ６０５に係る処理のみが異なる。このため、同一の構成や同一のステップについては同一の符号を付して重複する説明は省略し、相違点について重点的に説明する。
【００５２】
（リライティング処理に係る一連の動作）
本実施形態に係るリライティング処理の一連の動作について、図５を参照して説明する。なお、本実施形態に係るリライティング処理に係る一連の動作は、実施形態１と同様、例えば操作部１２０に対するユーザからの撮影指示に応じて撮像部１０３で撮影された画像データが画像処理部１０５に入力された場合に開始される。また、本処理は、システム制御部５０が不揮発性メモリ１２４に記憶されたプログラムをシステムメモリ１２６の作業用領域に展開、実行し、画像処理部１０５（或いは画像処理部１０５を構成する各部）を制御することにより実現される。
【００５３】
まず画像処理部１０５は、システム制御部５０の指示に応じて、Ｓ３０１及びＳ３０２における処理により代表となる顔領域（すなわち代表領域）を選択する。
【００５４】
Ｓ６０１では、陰影情報取得部２０３はＳ３０１において検出された全ての顔領域に対してそれぞれの陰影情報を取得する。陰影情報取得部２０３はＳ３０３において上述した陰影情報の取得方法を用いて各領域の陰影情報を取得する。Ｓ６０２では、仮想光源情報設定部２０４はＳ３０２において選択された代表領域に対して仮想光源の位置や強度を設定する。より詳細な処理については後述する。
【００５５】
Ｓ６０３では、仮想光源情報設定部２０４はＳ３０１において検出された全ての顔領域に対して、処理対象の領域が代表領域であるか否かを判定する。仮想光源情報設定部２０４は、処理対象の領域が代表領域である場合にはＳ３０５に処理を進め、代表領域でない場合にはＳ６０４に処理を進める。
【００５６】
Ｓ６０４では、仮想光源情報設定部２０４は、Ｓ６０１で取得した陰影情報に基づいて、代表領域と代表領域以外のそれぞれの顔領域とで陰影が類似するか否かを判定する。より詳細な処理については後述するが、陰影が類似すると判定した場合Ｓ６０５に処理を進め、陰影が類似しないと判定した場合Ｓ３０４に処理を進める。
【００５７】
Ｓ６０５では、仮想光源情報設定部２０４は、代表領域以外の顔領域に対して照明効果を付加するための仮想光源情報として、代表領域に用いる仮想光源情報と同じ情報を設定する。
【００５８】
Ｓ３０４では、仮想光源情報設定部２０４は、代表領域以外の顔領域に対して照明効果を付加する場合の仮想光源情報として、代表領域の陰影情報に基づき、代表領域の陰影状態に近づくように仮想光源の位置や強度を設定する。そして、Ｓ３０５では、照明付加部２０５がＳ３０４までの処理により設定した仮想光源情報を基にして、Ｓ６０１で検出した全ての顔領域に対して照明効果を付加し、その後本一連の動作を終了する。
【００５９】
次に、Ｓ６０２における代表領域に対する仮想光源情報を設定する処理、Ｓ６０４における代表領域と代表以外の顔領域との陰影が類似するか否かを判定する処理について、より詳細に説明する。
【００６０】
Ｓ６０２では、仮想光源情報設定部２０４は代表領域に対する仮想光源情報を設定する。本ステップでは、仮想光源情報設定部２０４は代表領域の陰影の付き方が所望になるように仮想光源情報を設定する。仮想光源情報設定部２０４は、後述する判定により代表領域の陰影があまりついていないと判定した場合は陰影を強めるように仮想光源情報を設定し、反対に陰影がつきすぎていると判定した場合は陰影を弱めるように仮想光源情報を設定する。
【００６１】
仮想光源情報設定部２０４が陰影情報を設定する例について、図６を参照して説明する。図６（ａ）に示すように代表となる顔領域（代表領域７０１）が検出されており、この状態に対する仮想光源の位置を求める。図４を参照して説明したように、仮想光源情報設定部２０４は、代表領域７０１を複数の領域に分割して、分割した領域毎に輝度平均値を算出する。そして、輝度平均値が最も高い領域（図６（ａ）の７０３）の輝度平均値Ｙｈと、輝度平均値が最も低い領域（図６（ａ）の７０２）の輝度平均値Ｙｌとの差分Ｄ２を式４に従って算出する。
【００６２】
Ｄ２  ＝  Ｙｈ  −  Ｙｌ      （４）
【００６３】
仮想光源情報設定部２０４は、算出した差分Ｄ２と所定の閾値Ｔ１とを比較して、代表領域に陰影がつきすぎているかを判定する。すなわち、仮想光源情報設定部２０４は、差分Ｄ２が閾値Ｔ１よりも小さい場合、陰影があまりついていないと判定して、陰影を強めるための仮想光源を配置する。例えば仮想光源情報設定部２０４は、高輝度領域７０３の中心と低輝度領域７０２の中心とを結ぶ直線上に、仮想光源と、高輝度領域７０３の中心と、低輝度領域７０２の中心とがこの順に並ぶように仮想光源を配置する（図６（ｂ））。一方、仮想光源情報設定部２０４は、差分Ｄ２が閾値Ｔ１以上である場合、陰影がつきすぎていると判定して、陰影を弱めるための仮想光源を配置する。具体的には、高輝度領域７０３の中心と低輝度領域７０２の中心とを結ぶ直線上に、仮想光源と、低輝度領域７０２の中心と、高輝度領域７０３の中心とがこの順番に並ぶように仮想光源を配置する。
【００６４】
また、仮想光源情報設定部２０４は、仮想光源の強度Ｓ２を式５に従って算出する。
【００６５】
Ｓ２  ＝  ｋ１  ×  （ＭａｘＹ  −  Ｙｈ）      （５）
ここで、ＭａｘＹを輝度値として採り得る範囲で最大の値、ｋ１を１以下の正数とする所定の係数とする。ｋ１は照明付加処理によって輝度値が飽和しないように実験結果等に応じて予め定めておいてよい。
【００６６】
Ｓ６０４では、仮想光源情報設定部２０４は、代表領域の陰影と代表領域以外の顔領域の陰影とが類似するか否かを判定する。上述したように本実施形態では、陰影が類似すると判定した場合、Ｓ６０５において代表領域以外の顔領域に対して、代表領域に対する仮想光源情報と同じ仮想光源情報を設定する。このようにすることで、陰影の類似する顔領域に対して仮想光源情報を設定し直す処理が減少し計算量を削減できる。また、２つの顔領域の陰影状態が類似する場合には、代表領域に対する仮想光源情報を用いても当該２つの領域は類似した陰影状態になるため照明効果を付加した後の画像が不自然にならない。
【００６７】
より具体的に、例えば、Ｓ６０１において代表領域の陰影情報（Ｄｈ、Ｄｌ）と代表以外の顔領域の陰影情報（Ｄｈ’’、Ｄｌ’’）が取得されているものとする。この場合、仮想光源情報設定部２０４は、代表領域におけるブロックのうちＤｈを算出したブロックの位置と、代表領域以外の顔領域におけるブロックのうちＤｈ’’を算出したブロックの位置とが同じ位置関係（対応する位置関係）にあるかを判定する。また、代表領域におけるＤｌを算出したブロックと代表領域以外の顔領域におけるＤｌ’’とを算出したブロックとが同じ位置関係にあるかを判定する。そして、算出されたＤｈとＤｈ’’との差分が所定の閾値Ｔ２よりも小さく、かつ算出されたＤｌとＤｌ’’との差分が所定の閾値Ｔ３よりも小さいかを判定する。仮想光源情報設定部２０４は、これらの条件を全て満たす場合、代表領域の陰影と代表領域以外の顔領域の陰影とが類似すると判定し、Ｓ６０５に処理を進める。他方、上記の条件を満たさない場合には代表領域の陰影と代表以外の顔領域の陰影とが類似しないと判定してＳ３０４に処理を進める。
【００６８】
なお、本実施形態では、代表領域の陰影と代表領域以外の顔領域の陰影が類似すると判定した場合に、代表領域以外の顔領域に対して、代表領域と同じ仮想光源を設定した照明効果を付加するようにした。しかし、夜景や日陰などのシーンにおいて、複数の顔領域の陰影が類似すると推測される場合、当該複数の顔領域に対してはＳ６０４の判定処理を行わずに代表領域に対する仮想光源情報を適用して照明効果を付加してもよい。このようにすれば、夜景等の一定の条件下における所定の複数の顔領域に対するリライティング処理の負担を軽減することができる。
【００６９】
以上説明したように本実施形態では、代表領域に仮想光源を設定すると共に、代表領域以外の顔領域の陰影が代表領域の陰影と類似している場合には、代表領域以外の顔領域には代表領域に対する仮想光源情報を流用して適用するようにした。このようにすることで、複数の被写体に対して仮想光源を適用する場合に、被写体間における陰影の違和感を低減することができるほか、処理負担をより軽減することができる。
【００７０】
なお、上記の２つの実施形態では、リライティング処理により画像に照明効果を付加する例を説明したが、撮影後に撮影時とは異なる照明環境で撮影したような陰影状態の画像を生成する他の処理もリライティング処理に含まれる。例えば、画像中の顔領域の陰影状態を変化させるために、影の部分の大きさを変化させたり影の強さを変化させたりする処理でもよい。
【００７１】
また、上記の２つの実施形態では、被写体の顔領域の陰影情報に基づいてリライティング処理を行う例を説明したが、被写体の陰影情報であれば顔領域でなくてもよい。例えば、人物の顔領域だけでなく人物の体も含めた領域（人物領域）を判別可能な構成であれば、人物領域の陰影情報に基づいてリライティング処理を行ってもよい。あるいは、車などの顔領域が存在しない物体が被写体の場合、その物体の陰影情報に基づいてリライティング処理を行ってもよい。
【００７２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７３】
１０３…撮像部、１０５…画像処理部、２０１…被写体検出部、２０２…代表被写体選択部、２０３…陰影情報取得部、２０４…仮想光源情報設定部、２０５…照明付加部
【図１】
0006641181.tif 000002
【図２】
0006641181.tif 000003
【図３】
0006641181.tif 000004
【図４】
0006641181.tif 000005
【図５】
0006641181.tif 000006
【図６】
0006641181.tif 000007