(57)【特許請求の範囲】
【請求項１】
画像に対して仮想光源を設定し、前記仮想光源から前記画像内の被写体像に光が照射されたリライティング画像を生成する画像処理装置であって、
前記被写体像を構成する画素の輝度値に基づき、前記画像におけるハイライト領域を検出する検出手段と、
前記画像における環境光の光源情報を推定する推定手段と、
前記リライティング画像を生成する処理において、前記仮想光源の光の光源情報と、推定された前記環境光の光源情報とに基づき、前記画像におけるハイライト領域の画素値を減じる補正を行う処理手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記環境光の光源情報は前記環境光の強度を含み、前記仮想光源の光源情報は前記仮想光源の光の強度を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記環境光の強度と前記仮想光源の光の強度との比較結果に基づき、前記画像におけるハイライト領域の画素値を減じる補正を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記環境光の光源情報は前記環境光の入射方向を含み、前記仮想光源の光源情報は前記仮想光源の光の入射方向を含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記処理手段は、前記環境光の入射方向と前記仮想光源の光の入射方向との比較結果に基づき、前記画像におけるハイライト領域の画素値を減じる補正を行うことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記環境光の光源情報は前記環境光の強度を含み、前記仮想光源の光源情報は前記仮想光源の光の強度を含み、
前記処理手段は、前記環境光の強度が前記仮想光源の光の強度よりも大きい場合に前記ハイライト領域の画素値を補正せず、前記環境光の強度が前記仮想光源の光の強度以下の場合に前記ハイライト領域の画素値を減じる補正を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記推定手段はさらに、前記被写体像に対応する被写体の表面のうち、前記ハイライト領域に含まれる領域の法線ベクトルの情報に基づき、前記環境光の入射方向を前記環境光の光源情報として推定し、
前記処理手段は、前記環境光の強度が前記仮想光源の光の強度以下の場合であって、かつ、前記環境光の入射方向と設定された前記仮想光源の光の入射方向とが類似しないと判定される場合に前記ハイライト領域の画素値を減じる補正を行うことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記環境光の入射方向と前記仮想光源の光の入射方向とは、当該方向の交差する角度が所定の閾値より小さい場合に方向が類似すると判定され、前記角度が前記閾値以上の場合に類似しないと判定されることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記処理手段は、前記ハイライト領域の画素値から、前記角度の大きさに応じた前記環境光の強度の値を減ずることにより、前記ハイライト領域の画素値を減じる補正を行うことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記処理手段は、前記ハイライト領域の周辺領域の画素値に基づき、前記ハイライト領域の画素値を減じる補正を行うことを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記処理手段は、前記環境光の強度が前記仮想光源の光の強度以下の場合は、前記仮想光源の光に基づくハイライト領域を前記画像の前記被写体像に形成することを更に特徴とする請求項７から９のいずれか１項に記載の画像処理装置。
【請求項１２】
前記処理手段は、前記環境光の強度が前記仮想光源の光の強度より大きい場合、
前記環境光の入射方向と前記仮想光源の光の入射方向とが類似すると判定される場合に、前記仮想光源の光に基づくハイライト領域を前記画像の前記被写体像に形成し、
前記環境光の入射方向と前記仮想光源の光の入射方向とが類似しないと判定される場合に、前記仮想光源の光に基づくハイライト領域を前記画像の前記被写体像に形成しないことを更に特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記仮想光源の光の拡散度合いは、前記環境光の拡散度合いに対応するように設定されることを特徴とする請求項１から１２のいずれか１項に記載の画像処理装置。
【請求項１４】
前記推定手段は、前記画像における前記ハイライト領域と、前記ハイライト領域の周辺領域との画素の輝度値の差分に基づき、前記環境光の強度を推定することを特徴とする請求項６から１１のいずれか１項に記載の画像処理装置。
【請求項１５】
画像に対して仮想光源を設定し、前記仮想光源から前記画像内の被写体像に光が照射されたリライティング画像を生成する画像処理装置の制御方法であって、
前記画像処理装置の検出手段が、前記被写体像を構成する画素の輝度値に基づき、前記画像におけるハイライト領域を検出する検出工程と、
前記画像処理装置の推定手段が、前記画像における環境光の光源情報を推定する推定工程と、
前記画像処理装置の処理手段が、前記リライティング画像を生成する処理において、前記仮想光源の光の光源情報と、推定された前記環境光の光源情報とに基づき、前記画像におけるハイライト領域の画素値を減じる補正を行う処理工程と
を含む、
ことを特徴とする画像処理方法。
【請求項１６】
コンピュータを請求項１から１４のいずれか１項に記載の画像処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
リライティングと呼ばれる、撮影した画像に対して撮影時とは異なる照明環境で撮影したような画像を作成する方法がある。リライティングを行う際、撮影時の照明環境によって生じたハイライト領域が残ってしまうとリライティング後の画像が不自然になる場合がある。これに対して、撮影時の照明環境によって生じたハイライト領域を除去する技術が提案されている（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２１３８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の技術を用いることで、撮影時の照明環境によって生じたハイライト領域を除去することは可能である。しかし、その場合は常に撮影時の照明環境によって生じたハイライト領域が除去されてしまうため、撮影時の照明環境によって生じたハイライト領域を残したい場合に対応できない。
【０００５】
そこで本発明は、撮影時の照明環境情報（以下、環境光情報）とリライティング時の照明環境情報（以下、仮想光源情報）とを用いて、ハイライト領域に対する処理の制御を可能とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための発明は画像に対して仮想光源を設定し、前記仮想光源から前記画像内の被写体像に光が照射されたリライティング画像を生成する画像処理装置に関連し、当該画像処理装置は、
前記被写体像を構成する画素の輝度値に基づき、前記画像におけるハイライト領域を検出する検出手段と、
前記画像における環境光の光源情報を推定する推定手段と、
前記リライティング画像を生成する処理において、前記仮想光源の光の光源情報と、推定された前記環境光の光源情報とに基づき、前記画像におけるハイライト領域の画素値を減じる補正を行う処理手段と
を備える。
【発明の効果】
【０００７】
環境光情報と仮想光源情報とを用いて、被写体に生じるハイライト領域に対する処理を制御することができる。
【図面の簡単な説明】
【０００８】
【図１】発明の実施形態に対応する画像処理装置の構成例を示すブロック図。
【図２】発明の実施形態に対応する画像処理部の機能構成の一例を示す図。
【図３】発明の実施形態に対応する処理の一例を示すフローチャート。
【図４】発明の実施形態に対応する法線テンプレート、及び、環境光の入射方向と仮想光源の光の入射方向とに応じて求まる係数の一例を示す図。
【図５】発明の実施形態に対応する座標系を説明するための図。
【発明を実施するための形態】
【０００９】
以下に、本発明の実施形態を、添付の図面に基づいて詳細に説明する。本実施形態に対応する画像処理装置は、画像に対して仮想光源を設定し、当該仮想光源から画像内の被写体像に光が照射されたリライティング画像を生成する。その際、被写体に対して光源からを照射される光（環境光と、仮想光源からの光とを含む）により生じるハイライト領域を制御する。ここで、ハイライト領域とは、光源から照射された光が被写体の表面で反射することにより、白く写った一部の被写体領域のことをいう。
【００１０】
［実施形態１］
以下、添付の図面を参照して、発明の第１の実施形態に対応する画像処理装置について説明する。本実施形態では、画像処理装置としてデジタルカメラを例に説明する。但し、画像処理装置の実施形態には、デジタルカメラ以外に、例えばパーソナルコンピュータ、携帯電話、スマートフォン、ＰＤＡ、タブレット端末、デジタルビデオカメラなどの任意の情報処理端末或いは撮像装置が含まれる。
【００１１】
図１はデジタルカメラ１００の構成を示すブロック図である。図１においてデジタルカメラ１００は、以下の構成を備える。レンズ群１０１は、ズームレンズ、フォーカスレンズを含んで構成される。レンズ群１０１は、デジタルカメラ１００が一眼レフのデジタルカメラの場合は交換レンズとして取り付け可能に構成されてもよい。シャッター１０２は絞り機能を備える。撮像部１０３は光学像を電気信号に変換するＣＣＤやＣＭＯＳ素子等で構成される。Ａ／Ｄ変換器１０４はアナログ信号をデジタル信号に変換する。画像処理部１０５は、Ａ／Ｄ変換器１０４から出力される画像データに対し、ホワイトバランス処理や、γ処理、色補正処理などの各種画像処理を行う。画像メモリ１０６はデジタルカメラ１００において処理される画像を保持する。メモリ制御部１０７は画像メモリ１０６を制御し、画像の書き込み、読み出しを制御する。Ｄ／Ａ変換器１０８は入力デジタル信号をアナログ信号に変換する。表示部１０９はＬＣＤや有機ＥＬ等で構成されるディスプレイである。コーデック部１１０は画像データを圧縮符号化・復号化する。
【００１２】
媒体インタフェース（Ｉ／Ｆ）１１１は記憶媒体２００とのインタフェースである。記憶媒体１１２はメモリカードやハードディスク等の記憶媒体であり、媒体Ｉ／Ｆ１１１を介してデジタルカメラ１００に着脱可能になっている。システム制御部５０はデジタルカメラ１００のシステム全体を制御する。操作部１２０は各種の操作指示をユーザから受け付ける。電源スイッチ１２１はデジタルカメラ１００の電源のオン／オフを制御するスイッチである。電源制御部１２２は電池の装着の有無、電池の種類、電池残量の検出を行う。電源部１２３はデジタルカメラ１００に電力を供給する電池である。不揮発性メモリ１２４は電気的に消去・記憶が可能な記憶媒体であり、例えばＥＥＰＲＯＭ等が用いられる。
【００１３】
システムタイマ１２５は各種制御に用いる時間や、内蔵された時計の時間を計測する。システムメモリ１２６はシステム制御部５０の動作用の定数、変数、不揮発性メモリ１２４から読みだしたプログラム等を展開するためのメモリである。測距センサ１２７は被写体との距離を測定し、撮影画素の画素単位に対応する距離情報を２次元の距離マップ画像として出力する。
【００１４】
次に、上記のように構成されたデジタルカメラ１００における被写体撮影時の基本的な処理の流れについて説明する。撮像部１０３は、レンズ群１０１及びシャッター１０２を介して入射した光を光電変換し、画像信号をＡ／Ｄ変換器１０４へ出力する。Ａ／Ｄ変換器１０４は撮像部１０３から出力されるアナログ画像信号をデジタル画像信号（画像データ）に変換し画像処理部１０５に出力する。
【００１５】
画像処理部１０５は、Ａ／Ｄ変換器１０４からの画像データ、又は、メモリ制御部１０７を介して画像メモリ１０６から読み出した画像データに対し、ホワイトバランスなどの色変換処理、γ処理などを行い、ベイヤーＲＧＢデータ、輝度・色差信号Ｙ、Ｒ−Ｙ、Ｂ−Ｙの中で何れかの画像データを出力する。画像処理部１０５から出力された画像データは、メモリ制御部１０７を介して画像メモリ１０６に書き込まれる。また、画像処理部１０５では、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部５０が露光制御、測距制御を行う。これにより、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、などを行う。画像処理部１０５では更に、撮像した画像データを解析し、光源を推定し、推定した光源に基づきＡＷＢ（オートホワイトバランス）処理も行う。
【００１６】
画像メモリ１０６は、撮像部１０３による撮像により得られた画像データや、表示部１０９に表示するための画像データを格納する。また、Ｄ／Ａ変換器１０８は、画像メモリ１０６に格納されている画像表示用のデータをアナログ信号に変換して表示部１０９に供給する。表示部１０９は、ＬＣＤ等の表示器上に、Ｄ／Ａ変換器１０８からのアナログ信号に応じた表示を行う。コーデック部１１０は、画像メモリ１０６に記録された画像データをＪＰＥＧやＭＰＥＧなどの静止画または動画の標準規格に基づき圧縮符号化する。
【００１７】
上記の基本動作以外に、システム制御部５０は、前述した不揮発性メモリ１２４に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。ここでいうプログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムのことである。この際、システム制御部５０の動作用の定数、変数、不揮発性メモリ１２４から読み出したプログラム等をシステムメモリ１２６に展開する。以上、デジタルカメラ１００のブロック構成と、基本動作について説明した。
【００１８】
上述の図１のデジタルカメラ１００において、撮像素子や表示素子のような物理的デバイスを除き、各ブロックは専用ロジック回路やメモリを用いてハードウェア的に構成されてもよい。或いは、メモリに記憶されている処理プログラムをＣＰＵ等のコンピュータが実行することにより、ソフトウェア的に構成されてもよい。また、上記ではデジタルカメラ１００をレンズ群１０１、シャッター１０３、撮像部１０３を含む構成として説明した。しかし、発明の実施形態として、ハイライト領域を処理するための画像編集装置、画像処理装置或いは情報処理装置として、撮像機能を有しない構成で実現してもよい。
【００１９】
次に、発明の実施形態に対応するハイライト領域の処理の概要について図２から図４を参照して説明する。図２は、発明の実施形態に対応する画像処理部１０５の機能構成の一例を示す図である。図３は、発明の実施形態に対応する画像処理部１０５における処理の一例を示すフローチャートである。図４（Ａ）は、発明の実施形態に対応する画像処理部１０５における処理を説明するための法線テンプレートの一例を示す図である。以下では、図３のフローチャートの流れに従い処理を説明する。該フローチャートに対応する処理は、例えば、画像処理部１０５として機能する１以上のプロセッサが対応するプログラム（ＲＯＭ等に格納）を実行することにより実現できる。
【００２０】
まず、撮像部１０３から出力された画像信号がＡ／Ｄ変換器１０４を経て画像データとして画像処理部１０５に入力されると、Ｓ３０１において被写体領域検出部２０１が、入力画像データから被写体像を検出する。本実施形態では、被写体として人間を撮像した場合について説明し、特に被写体像として顔領域を検出する。顔領域の検出処理は周知の方法を用いることができる。当該方法には、例えば、目や口などの器官を検出して顔領域を検出する方法がある。次にＳ３０２では、法線情報取得部２０２が、図４（Ａ）に示すような法線テンプレートを参照してＳ３０１で被写体領域検出部２０１が検出した顔領域における法線情報を取得する。次にＳ３０３では、ハイライト領域検出部２０３が、顔領域の中で輝度の高い領域をハイライト領域として検出する。次にＳ３０４では、環境光情報推定部２０４が、Ｓ３０２で取得した法線情報と、Ｓ３０３で検出したハイライト領域から、環境光の光源情報を推定する。Ｓ３０５では、仮想光源情報設定部２０５が、ユーザの入力に基づいて仮想光源の光源情報を設定する。Ｓ３０６では、ハイライト領域処理部２０６が、Ｓ３０４で推定した環境光の光源情報と、Ｓ３０５で設定した仮想光源の光源情報とに基づき、ハイライト領域の処理を行う。
【００２１】
以上が、本実施形態に対応するハイライト領域の処理の概要であるが、ここでは撮像部１０３から出力された画像信号がＡ／Ｄ変換器１０４を経て画像データとして画像処理部１０５に入力された場合の処理として説明した。しかし、本発明が適用可能な実施形態はこれに限定されるものではない。例えば、媒体インタフェース１１１を介して記憶媒体１１２から読み出された圧縮画像データをコーデック部１１０で伸長し画像メモリ１０６に格納した後、当該画像メモリ１０６が格納する画像データに対して画像処理部１０５がハイライト処理を実施しても良い。
【００２２】
次に、Ｓ３０２からＳ３０６の処理の詳細について説明する。まず、Ｓ３０２では、撮影した画像の顔領域の法線情報を取得する。この処理では、図４（Ａ）で示すような法線テンプレートを用いてもよい。法線テンプレートとは、オブジェクトである顔の表面の各法線ベクトルのｘ、ｙ、ｚ成分に対応するＲＧＢ画素値により、当該顔の表面を表現した画像のことであり、法線マップともいう。図４（Ａ）の法線テンプレートでは、顔が正面を向いている場合の法線情報を示しているが、顔の側面の法線情報を含んでいてもよい。実際に撮影した画像では、顔が正面を向いているとは限らないので、撮影された顔の向きに合わせた法線テンプレートを参照して法線情報を計算する必要がある。この計算を行うためには、撮影された顔の向きが正面方向から何度傾いているかの角度情報がわかればよい。角度情報の算出方法としては、公知の技術を用いることができる。例えば、特開２０１４−１１５８５９号公報に開示されるような、右目、左目、鼻などの器官を画像から抽出し、これらの相対的な位置関係から顔が向いている角度を算出する方法がある。本実施形態では、当該方法により算出した角度情報に応じて法線テンプレートを回転させることで、撮影された顔領域の法線情報を取得することができる。
【００２３】
次にＳ３０３のハイライト領域を検出する処理では、ハイライト領域検出部２０３が、顔領域中の高輝度領域を、ハイライト領域として検出する。ハイライト領域の検出方法としては、Ｓ３０１で検出された顔領域を構成する各画素の輝度値を所定の閾値Ｌｔｈと比較し、輝度値が閾値以上の画素領域をハイライト領域として検出する方法がある。閾値Ｌｔｈは、例えば顔領域の平均輝度を用いることが考えられるが、この方法に限られない。高輝度画素として抽出された各画素が互いに隣接する場合は、これらの画素を纏めて一つのハイライト領域として扱う。このようにして、顔領域の各画素のうち輝度がＬｔｈ以上である画素で構成される領域がハイライト領域として抽出される。
【００２４】
次に、Ｓ３０４の環境光情報を推定する処理では、環境光情報推定部２０４が、画像撮影時の環境光の情報を推定する。本実施形態では、環境光の入射方向（位置）、強度を推定する。まず、環境光の入射方向の推定方法について図５を参照して説明する。まず、環境光に基づきハイライト領域が発生するのは、図５（ａ）に示すように、環境光の光源（例えば、太陽や室内の照明）から対象物（本実施形態では被写体である人間の顔）の表面に入射したときの入射角θｉと、表面から反射したときの反射角θｒとがほぼ等しい場合である。このような反射形態を一般には「鏡面反射」といい、画像データのうち鏡面反射した反射光がデジタルカメラ１００に直接入射している部位では、被写体そのもの色よりも光源色が支配的になる。本実施形態では、鏡面反射時にθｉ＝θｒとなることを利用して、被写体の法線とデジタルカメラ１００との角度θｒに基づき、環境光の入射方向ＶＬ１を推定する。
【００２５】
図５（ｂ）及び（ｃ）は、本実施形態における座標系を説明する図である。図５（ｂ）に示すように、デジタルカメラ１００で被写体５０１を撮像する場合、デジタルカメラ１００の撮像部１０３を原点（Ｏcamera）とした３次元空間（以下、カメラ座標系という）を設定する。被写体の顔の表面を構成する任意の点の座標は、カメラ座標系でＸｎ＝（ｘｎ、ｙｎ、ｚｎ）で表される（ｎは１以上の自然数）。このとき、カメラ座標系で座標が与えられる各点は、当該点を含む平面Ｐｎの法線ベクトルの原点とする。例えば、被写体の顔の表面の点Ｘ１のカメラ座標系における座標を（ｘ１、ｙ１、ｚ１）とすると、カメラ座標系における当該点Ｘ１の方向Ｘｖ１は、（ｘ１、ｙ１、ｚ１）でベクトルとして表すことができる。そして、当該点Ｘ１は、被写体に設定されたローカル座標系における原点（Ｏlocal）と一致し、点Ｘ１を含む平面Ｐ１の法線ベクトルＮｘ１は、ローカル座標系においてＮｘ１＝（ｘｎｌ、ｙｎ１、ｚｎ１）となる。当該ローカル座標系はカメラ座標系内に設定され、各軸方向はカメラ座標系と一致しているものとする。また、ローカル座標系から見たデジタルカメラ１００の方向は−Ｘｖ１＝（−ｘ１、−ｙ１、−ｚ１）で表すことができる。
【００２６】
よって、平面Ｐ１がハイライト領域に含まれる場合、環境光の入射角度θｉは、法線ベクトルＮｘ１と、カメラ座標系における当該点Ｘ１のベクトルＸｖ１との交差角度と一致し、当該交差角度が図５（ａ）のθｒに相当する。このとき、環境光の入射方向を示すベクトルＶＬ１は、Ｘｖ１を法線ベクトルＮｘ１の回りに点Ｘ１を基準に１８０度回転させたベクトルと見なすことができ、以下の式（１）で求めることができる。
ＶＬ１＝Ｎｘ１（Ｎｘ１・（−Ｘｖ１））−［−Ｘｖ１-Ｎｘ１（Ｎｘ１・（−Ｘｖ１））］      （１）
【００２７】
上記において、ｎ（ｎ・ｘ）は、ベクトルｘの単位ベクトルｎへの射影を表す。このようにして環境光の入射方向ＶＬ１をＳ３０２で得られた法線テンプレートを利用して求めることができる。上述の方法は一例として記載したものであって、環境光の入射方向を上述とは異なる方法により算出しても良い。また、ハイライト領域に複数画素が含まれる場合、各画素について計算した式（１）の計算結果を平均した値を環境光の入射方向としても良い。また、各画素の法線ベクトルの平均を先に算出し、当該平均法線ベクトルを強度が最も強い平面の法線ベクトルとして上述の計算によりＶＬ１を求めても良い。或いは、環境光の入射方向の情報はデジタルカメラ１００での撮影時に予め与えられても良い。
【００２８】
次に、環境光の強度の推定方法について説明する。環境光の強度としては、Ｓ３０３で検出されたハイライト領域と、検出されたハイライト領域の周辺領域との輝度の差分を用いる。例えば、以下のように環境光の強度を求める。まず、ハイライト領域に含まれる画素数をｉ１、各画素の輝度の値をＹｈｉ（１≦ｉ≦ｉ１）とすると、ハイライト領域の平均輝度Ｙｈは、式（２）のように求まる。
Ｙｈ  ＝  ΣＹｈｉ／ｉ１      （２）
【００２９】
また、ハイライト領域からの距離がＤｔｈ以下である領域を周辺領域とすると、周辺領域の平均輝度Ｙｌは、周辺領域に含まれる画素数ｊ１及び周辺領域に含まれる各画素の輝度の値Ｙｌｊ（１≦ｊ≦ｊ１）を用いて、式（３）のように求まる。
Ｙｌ  ＝  ΣＹｌｊ／ｊ１      （３）
式（２）、（３）で求めたＹｈ、Ｙｌの差分（式（４）参照）を環境光の強度Ｌ１として用いる。
【００３０】
Ｌ１  ＝  Ｙｈ  −  Ｙｌ      （４）
Ｓ３０５では、ユーザの指示のもと、仮想光源情報設定部２０５が仮想光源の光源情報を設定する。設定する仮想光源の光源情報は、仮想光源が照射する光の入射方向（位置）及び、仮想光源の光の強度（以下、簡単のため、それぞれ仮想光源の入射方向、仮想光源の強度という。）であるとする。ここでは操作部１２０を介してデジタルカメラ１００のユーザからの操作を受け付ける。具体的には、操作部１２０に対するユーザ操作によって、図示しないメニューからリライティング処理が選択され、リライティング処理で使用する情報が入力される。本実施形態では説明の簡略化のため、仮想光源の入射方向（位置）ＶＬ２、及び強度Ｌ２をユーザが入力するものとする（プリセットの中から選択する方法でもよい）。
【００３１】
Ｓ３０６では、環境光の光源情報と仮想光源の光源情報とに基づき、ハイライト領域処理部２０６が画像データにおけるハイライト領域を処理する。本実施形態では、当該処理として環境光によって生じたハイライト領域に含まれる画素の画素値を補正する。以下、具体的な処理の流れを説明する。
【００３２】
ハイライト領域の処理に当たっては、まず環境光の強度Ｌ１と仮想光源の強度Ｌ２との比較を行う。Ｌ１がＬ２よりも大きい場合（Ｌ１＞Ｌ２）は、環境光のほうが仮想光源の光よりも強度が強いとして、環境光によって生じたハイライト領域の画素値を補正しない。一方、環境光の強度が仮想光源の強度以下の場合（Ｌ１≦Ｌ２）は、環境光によって生じたハイライト領域の画素値を補正することができる。このとき更に環境光の入射方向ＶＬ１と仮想光源の入射方向ＶＬ２とを比較する。ＶＬ１とＶＬ２の方向が類似する（光源の位置が互いに近い）場合は環境光によって生じたハイライト領域の画素値を補正しない。一方、ＶＬ１とＶＬ２の方向が類似しない（光源の位置が互いに遠い）場合、環境光によって生じたハイライト領域の画素値を補正する。当該補正は、例えば、ハイライト領域の画素値から環境光の強度Ｌ１に基づく値を減算することにより行っても良い。また、ハイライト領域の周辺領域の画素値を用いてハイライト領域の画素値を補正してもよく、例えば、周辺領域の画素の平均値、或いは、当該平均値を更に処理した値によりハイライト領域の画素値を置換してもよい。その他、ハイライト領域を低減、或いは、除去するための公知の方法を使用することができる。
【００３３】
また、ＶＬ１とＶＬ２の方向の類似性（光源間の距離）の判定は、例えば、ＶＬ１とＶＬ２の交差する角度θｃを求め、θｃが所定の閾値θｔｈよりも小さいか否かで判定する。ＶＬ１及びＶＬ２を用いるとｃｏｓθｃを下記の式（５）で表すことができる。
ｃｏｓθｃ  ＝  ＜ＶＬ１，ＶＬ２＞  ／  （  ｜｜ＶＬ１｜｜  ×  ｜｜ＶＬ２｜｜  ）      （５）
【００３４】
ここで、＜ａ、ｂ＞はａとｂの内積を、｜｜ａ｜｜はａのノルムをそれぞれ表すとする。式（５）よりｃｏｓθｃが求まるので、逆三角関数を用いてθｃが求まる。交差角度θｃが閾値θｔｈよりも小さい場合、環境光の入射方向と仮想光源の入射方向とが近いと判断し、環境光によって生じたハイライト領域を除去しない。求めたθが閾値θｔｈ以上の場合は、環境光の入射方向と仮想光源の入射方向とが離れていると判断し、環境光によって生じたハイライト領域を除去する。
【００３５】
以上、本実施形態における処理について説明した。上述の本実施形態では、法線情報を取得する方法として、法線テンプレートを使用したが、この方法に限らず、例えば測距センサ１２７が出力する撮影画素の画素単位に対応する距離情報を使用して法線情報を取得しても良い。また、法線テンプレートは、被写体ごとに用意しても良い。
【００３６】
また上述の実施形態では、環境光の強度が仮想光源の強度よりも弱くかつ環境光の入射方向と仮想光源の入射方向とが類似しない場合に環境光によって生じたハイライト領域の画素値を補正することとした。その際、環境光の入射方向と仮想光源の入射方向との離れ度合いに応じて、環境光によって生じたハイライトを弱めてもよい。例えば、図４（Ｂ）で示すように環境光の入射方向と仮想光源の入射方向とのなす角θｃが大きくなるにつれて値が大きくなるような係数ｋを設定する。そして、環境光の強度Ｌ１にｋを乗算した値を環境光によって生じたハイライト領域の各画素の画素値Ｙｈｉから減算し、ハイライト領域の各画素値を補正することができる。補正後の画素値Ｙｈｉ'は式（６）に基づき算出することができる。これにより、環境光の入射方向と仮想光源の入射方向とに応じて、環境光によって生じたハイライトを弱めることができる。
Ｙｈｉ'＝Ｙｈｉ−ｋＬ１      （６）
【００３７】
さらに上述の実施形態では、仮想光源の強度をユーザが直接指定する場合を説明したが、これに限らず、例えば環境光の強度を基準として、環境光の強度よりも強いか弱いかなどの相対的な情報をユーザが指定しても良い。
【００３８】
上述の実施形態では、環境光及び仮想光源の光源情報として、光源からの光の入射方向（位置）、強度を用いたが、これに限らず、例えば光源の拡散度合いなどの情報を用いても良い。ここで、拡散度合いとは、光源から照射される光の強度の方向依存性をさしている。光源から照射される光の強度が特定の方向のみ強い場合は拡散度合いが低いとし、光源から照射される光の強度が方向によらず均一に近いほど拡散度合いが高いとする。また、光源情報に拡散度合いが含まれる場合、仮想光源の光の拡散度合いをユーザが指定することができる。このとき、環境光の拡散度合いを仮想光源の光の拡散度合いとして用いても良い。光源情報に拡散度合いが含まれる場合、光源の方向を示す各ベクトルＶＬ１、ＶＬ２は、光源から照射される光の強度が最も強い方向を示すものとする。
【００３９】
以上のように、本実施形態によれば被写体に照射される環境光の入射方向と、新たに設定される仮想光源から照射される光の入射方向との関係と、環境光と仮想光源の光との強度との関係に応じて、画像データに形成された環境光に基づくハイライト領域を処理することができる。例えば、環境光の入射方向と仮想光源の入射方向とが異なり、かつ仮想光源の光の方が環境光よりも強度が強い場合、環境光によるハイライト領域が残存していては不自然となるのでこれを除去することができる。一方、仮想光源を設定した場合であっても環境光の方が仮想光源の光よりも強度が強い場合には、ハイライト領域を残存させることができる。
【００４０】
［実施形態２］
上述の実施形態１では、環境光によって生じたハイライト領域を除去する場合について説明した。これに対し、発明の第２の実施形態では、仮想光源によって生じるハイライト領域を付加する場合を説明する。
【００４１】
本実施形態に対応するデジタルカメラ及び画像処理部の構成は図１及び図２に示したものと同様である。また、画像処理部１０５におけるハイライト処理の流れも図３及び図４を参照して説明したものと同様である。但し、図３のＳ３０６における処理が異なっている。以下、本実施形態に対応するハイライト領域の処理方法について説明する。本実施形態ではＳ３０６において、環境光の光源情報と仮想光源の光源情報とに基づき、仮想光源によって生じるハイライト領域の付加を行う。当該処理の詳細を以下に説明する。
【００４２】
本処理では、まず環境光の強度Ｌ１と仮想光源の強度Ｌ２との比較を行う。Ｌ１がＬ２以下の場合（Ｌ１≦Ｌ２）、仮想光源の光のほうが環境光よりも強度が強いとして、仮想光源からの光によって生じるハイライト領域を付加する。ハイライト領域は、以下の方法により設定することができる。まず、仮想光源の入射方向ＶＬ２とＳ３０２で得られた法線情報とから、式（１）に基づきＳ３０１で検出された顔を構成する任意の平面についてベクトルを算出する。次に、算出されたベクトルの値が当該ベクトルを算出した平面の法線ベクトルの原点のカメラ座標系の座標に対応するものを選択する。そして、選択されたベクトルに対応する平面を含む面を仮想光源からの光に基づくハイライト領域とすることができる。また、ハイライト領域の生成は、例えば、仮想光源の強度Ｌ２をハイライト領域に含まれる画素の画素値に加算することにより行っても良い。
【００４３】
一方、Ｌ１がＬ２より大きい場合（Ｌ１＞Ｌ２）は、更に環境光の入射方向ＶＬ１と仮想光源の入射方向ＶＬ２とを比較する。ＶＬ１とＶＬ２の方向が類似する場合は、仮想光源によって生じるハイライト領域を付加し、ＶＬ１とＶＬ２の方向が類似しない場合は、仮想光源によって生じるハイライト領域を付加しない。ＶＬ１とＶＬ２の方向の類似性の判定方法は、実施形態１で述べたものと同様とし、ここでは詳細な説明は省略する。
【００４４】
以上のように、本実施形態によれば被写体に照射される環境光の入射方向と、新たに設定される仮想光源から照射される光の入射方向との関係と、環境光と仮想光源の光との強度との関係に応じて、画像データに仮想光源に基づくハイライト領域を付加することができる。例えば、環境光の入射方向と仮想光源の入射方向とが異なり、かつ仮想光源の光の方が環境光よりも強度が強い場合、環境光によるハイライト領域が残存していては不自然となるのでこれを除去することができる。一方、仮想光源を設定した場合であっても環境光の方が仮想光源の光よりも強度が強い場合には、ハイライト領域を残存させることができる。
【００４５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４６】
１００：デジタルカメラ、１０１：レンズ群、１０２：シャッター、１０３：撮像部、１０４：Ａ／Ｄ変換部、１０５：画像処理部、１０６：画像メモリ、１０７：メモリ制御部、１０８：Ｄ／Ａ変換部、１０９：表示部、１１０：コーデック部、１１１：媒体Ｉ／Ｆ、１１２：記憶媒体、１１３：外部出力Ｉ／Ｆ、５０：システム制御部、１２０：操作部、１２１：電源スイッチ、１２２：電源制御部、１２３：電源部、１２４：不揮発性メモリ、１２５：システムタイマ、１２６：システムメモリ、１２７：距離センサ
【図１】
0006666735.tif 000002
【図２】
0006666735.tif 000003
【図３】
0006666735.tif 000004
【図４】
0006666735.tif 000005
【図５】
0006666735.tif 000006