(57)【要約】      （修正有）【課題】複数の仮想光源を用いるリライティングの処理負荷を軽減する技術を提供する。【解決手段】デジタルカメラの画像処理部において、リライティング処理部２０２は、所定の被写体における第１の仮想光源の反射特性を示す第１の反射特性データと、所定の被写体における第２の仮想光源の反射特性を示す第２の反射特性データとを合成する合成処理を行う反射特性マップ合成部と、合成処理により得られた合成反射特性データが示す反射特性に基づいて、画像に含まれる被写体における反射成分を生成する仮想光源反射成分算出部と、上記画像に対して上記反射成分を付加する仮想光源付加処理部と、を備える。【選択図】図３
2019083008.tif 000002
【特許請求の範囲】
【請求項１】
所定の被写体における第１の仮想光源の反射特性を示す第１の反射特性データと、前記所定の被写体における第２の仮想光源の反射特性を示す第２の反射特性データとを合成する合成処理を行う合成手段と、
前記合成処理により得られた合成反射特性データが示す反射特性に基づいて、画像に含まれる被写体における反射成分を生成する生成手段と、
前記画像に対して前記反射成分を付加する付加手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記合成手段は、複数の反射特性データの中から前記第１の反射特性データ及び前記第２の反射特性データを選択する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
補正モードを決定する決定手段を更に備え、
前記合成手段は、前記補正モードに基づいて前記第１の反射特性データ及び前記第２の反射特性データを選択する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記画像に含まれる前記被写体の輝度に基づいて前記補正モードを決定する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記合成手段は、ユーザ指示に従って前記第１の反射特性データ及び前記第２の反射特性データを選択する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記合成手段は、前記合成処理において、前記第１の反射特性データに第１の係数を乗じ、前記第２の反射特性データに第２の係数を乗じる
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記合成手段は、前記画像に含まれる前記被写体の輝度に基づいて前記第１の係数及び前記第２の係数を決定する
ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記所定の被写体と前記画像に含まれる前記被写体との形状の相違を補償するように前記合成反射特性データを補正する補正手段を更に備え、
前記生成手段は、前記補正がなされた前記合成反射特性データに基づいて前記反射成分を生成する
ことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記合成反射特性データは、前記所定の被写体の各位置における反射特性を表現する反射特性画像を含み、
前記補正手段は、前記所定の被写体と前記画像に含まれる前記被写体との形状の相違を補償するように、前記反射特性画像を幾何学変換する
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記補正手段は更に、前記画像に基づいて前記反射特性画像に対して平滑化処理を行う
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
請求項１乃至１０のいずれか１項に記載の画像処理装置と、
前記画像を生成する撮像手段と、
を備えることを特徴とする撮像装置。
【請求項１２】
画像処理装置が実行する画像処理方法であって、
所定の被写体における第１の仮想光源の反射特性を示す第１の反射特性データと、前記所定の被写体における第２の仮想光源の反射特性を示す第２の反射特性データとを合成する合成処理を行う合成工程と、
前記合成処理により得られた合成反射特性データが示す反射特性に基づいて、画像に含まれる被写体における反射成分を生成する生成工程と、
前記画像に対して前記反射成分を付加する付加工程と、
を備えることを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、写真撮影においては、補助照明やレフ板による光の調整によって、被写体に生じる光と影の領域の調整が行われている。これにより、被写体の印象をさまざまに変化させた写真撮影が可能となる。また、これらの光の調整を撮影後に行う技術として、被写体領域に対して、光の反射によるハイライトや陰影成分を加える技術（リライティング）がある。これにより、暗部を補正することや、立体感を強調した画像を生成することが可能となる。
【０００３】
特許文献１は、被写体の距離情報を取得し、距離情報に基づいて被写体の形状情報を求め、形状情報、距離情報、及び仮想光源の位置に基づいて撮影画像を処理して、被写体に対して仮想光源からの光を照射した画像を生成する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−８６２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、被写体の距離情報から法線を算出し、法線、被写体距離、仮想光源の位置と方向、強度に基づき、仮想光源による反射特性を求めてリライティング制御を行っている。この方法では、被写体距離、法線、仮想光源による反射特性を算出する演算量が多く、処理に時間がかかる。特に、仮想光源の数を増やして多灯での照射を行う場合には、仮想光源の数だけ演算を繰り返す必要があるため、処理に要する時間が増大する。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、複数の仮想光源を用いるリライティングの処理負荷を軽減する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、所定の被写体における第１の仮想光源の反射特性を示す第１の反射特性データと、前記所定の被写体における第２の仮想光源の反射特性を示す第２の反射特性データとを合成する合成処理を行う合成手段と、前記合成処理により得られた合成反射特性データが示す反射特性に基づいて、画像に含まれる被写体における反射成分を生成する生成手段と、前記画像に対して前記反射成分を付加する付加手段と、を備えることを特徴とする画像処理装置を提供する。
【０００８】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【発明の効果】
【０００９】
本発明によれば、複数の仮想光源を用いるリライティングの処理負荷を軽減することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】デジタルカメラ１００の構成を示すブロック図。
【図２】画像処理部１０５の構成を示すブロック図。
【図３】リライティング処理部２０２の構成を示すブロック図。
【図４】第１の実施形態に係る、システム制御部５０が反射特性マップ合成部３０１のために実行する合成パラメータ設定処理のフローチャート。
【図５】被写体の輝度に応じたリライティングモードを示す図。
【図６】反射特性マップを示す図。
【図７】リライティングモードと使用する反射特性マップとの関係について説明する図。
【図８】合成後の反射特性マップを示す図。
【図９】フィッティング処理について説明する図。
【図１０】第２の実施形態に係る、システム制御部５０が反射特性マップ合成部３０１のために実行する合成パラメータ設定処理のフローチャート。
【図１１】仮想光源を設置するユーザ操作のためのユーザインタフェースを示す図。
【図１２】第３の実施形態に係るリライティング処理部２０２の構成を示すブロック図。
【図１３】拡散反射マップＤ及び鏡面反射マップＳの生成処理を説明する図。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。また、別々の実施形態の中で説明されている特徴を適宜組み合せることも可能である。
【００１２】
以下の各実施形態では、画像処理装置をデジタルカメラ（撮像装置）に適用した構成を例にして説明を行う。
【００１３】
［第１の実施形態］
図１は、デジタルカメラ１００の構成を示すブロック図である。図１において、１０１は、ズームレンズ及びフォーカスレンズを含むレンズ群である。１０２は、絞り機能を備えるシャッターである。１０３は、光学像を電気信号に変換するＣＣＤやＣＭＯＳ素子等で構成される撮像部である。１０４は、アナログ信号をデジタル信号に変換するＡ／Ｄ変換器である。１０５は、Ａ／Ｄ変換器１０４から出力される画像データに対し、ホワイトバランス処理や、リライティング処理、γ処理、輪郭強調処理、色補正処理などの各種画像処理を行う画像処理部である。１０６は、画像メモリである。１０７は、画像メモリ１０６を制御するメモリ制御部である。１０８は、入力デジタル信号をアナログ信号に変換するＤ／Ａ変換器である。１０９は、ＬＣＤ等を含む表示部である。１１０は、画像データを圧縮符号化・復号化するコーデック部である。
【００１４】
１１１は、記録媒体１１２とのインタフェース（Ｉ／Ｆ）である。１１２は、メモリカードやハードディスク等の記録媒体である。１１３は、撮影画像中から顔が映っている領域を検出する顔検出部である。５０は、デジタルカメラ１００のシステム全体を制御するシステム制御部である。１２１は、プログラムやパラメータなどを格納するＥＥＰＲＯＭなどの不揮発性メモリである。１２２は、システム制御部５０の動作用の定数、変数、不揮発性メモリ１２１から読みだしたプログラム等を展開するシステムメモリである。１２３は、ストロボ（光源装置）である。１２４は、被写体との距離を測定する測距センサである。
【００１５】
次に、上記のように構成されたデジタルカメラ１００における被写体撮影時の基本動作について説明する。撮像部１０３は、レンズ１０１及びシャッター１０２を介して入射した光を光電変換し、入力画像信号としてＡ／Ｄ変換器１０４へ出力する。Ａ／Ｄ変換器１０４は、撮像部１０３から出力されるアナログ画像信号をデジタル画像信号に変換して画像処理部１０５に出力する。なお、デジタル画像信号は、ＲＡＷ画像データとして記録媒体１１２に記録されてもよい。
【００１６】
画像処理部１０５は、Ａ／Ｄ変換器１０４からの画像データ、又は、メモリ制御部１０７からの画像データに対し、ホワイトバランスなどの色変換処理、リライティング処理、γ処理、輪郭強調処理などを行う。また、画像処理部１０５は、顔検出部１１３の顔検出結果や撮像した画像データを用いて所定の評価値算出処理を行う。システム制御部５０は、得られた評価値に基づいて露光制御及び測距制御を行う。これにより、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＡＷＢ（オートホワイトバランス）処理などを行うことができる。
【００１７】
画像処理部１０５から出力された画像データは、メモリ制御部１０７を介して画像メモリ１０６に書き込まれる。画像メモリ１０６は、撮像部１０３から出力された画像データや、表示部１０９に表示するための画像データを格納する。Ｄ／Ａ変換器１０８は、画像メモリ１０６に格納されている画像表示用のデータをアナログ信号に変換して表示部１０９に供給する。表示部１０９は、ＬＣＤ等の表示デバイス上に、Ｄ／Ａ変換器１０８からのアナログ信号に応じた表示を行う。
【００１８】
コーデック部１１０は、画像メモリ１０６に記録された画像データをＪＰＥＧ、ＭＰＥＧなどの規格に基づき圧縮符号化する。システム制御部５０は、符号化した画像データを、Ｉ／Ｆ１１１を介して記録媒体１１２に格納する。
【００１９】
以上、被写体撮影時の基本動作について説明した。上記の基本動作以外に、システム制御部５０は、前述した不揮発性メモリ１２１に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。ここでいうプログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムのことである。この際、システム制御部５０の動作用の定数、変数、不揮発性メモリ１２１から読み出したプログラム等は、システムメモリ１２２に展開される。
【００２０】
次に、図２を参照して、画像処理部１０５の詳細について説明する。図２は、画像処理部１０５の構成を示すブロック図である。図２において、２００は同時化処理部、２０１はＷＢ増幅部、２０２はリライティング処理部、２０３は輝度・色信号生成部である。２０４は輪郭強調処理部、２０５は輝度ガンマ処理部、２０６は色変換処理部、２０７は色ガンマ処理部、２０８は色差信号生成部、２０９は評価値生成部である。
【００２１】
画像処理部１０５における動作について説明する。図１のＡ／Ｄ変換器１０４から出力された画像信号が、画像処理部１０５に入力される。画像処理部１０５に入力された画像信号は、同時化処理部２００に入力される。同時化処理部２００は、入力されたベイヤーＲＧＢの形式の画像データに対して同時化処理を行い、色信号Ｒ，Ｇ，Ｂを生成する。
【００２２】
ＷＢ増幅部２０１は、システム制御部５０が算出するホワイトバランスゲイン値に基づき、ＲＧＢの色信号にゲインをかけ、ホワイトバランスを調整する。ＷＢ増幅部２０１は、ホワイトバランスが調整されたＲＧＢ信号を、リライティング処理部２０２に入力する。また、ＷＢ増幅部２０１は、ホワイトバランスが調整されたＲＧＢ信号を、後述する評価値の生成に用いる輝度信号Ｙ’の生成に用いるＲ’Ｇ’Ｂ’信号として、輝度・色信号生成部２０３に入力する。
【００２３】
リライティング処理部２０２は、入力されたＲＧＢ信号に対して後述するリライティング処理を施した後に、ＲＧＢ信号を輝度・色信号生成部２０３に出力する。輝度・色信号生成部２０３は、ＲＧＢ信号から輝度信号Ｙを生成し、生成した輝度信号Ｙを輪郭強調処理部２０４へ、色信号ＲＧＢを色変換処理部２０６へ、それぞれ出力する。また、輝度・色信号生成部２０３は、ＷＢ増幅部２０１から入力されたＲ’Ｇ’Ｂ’信号から輝度信号Ｙ’を生成し、評価値生成部２０９に入力する。
【００２４】
輪郭強調処理部２０４は、輝度信号Ｙに対して輪郭強調処理を行い、輝度ガンマ処理部２０５へ出力する。輝度ガンマ処理部２０５は、輝度信号Ｙに対してガンマ補正を行い、輝度信号Ｙを画像メモリ１０６に出力する。色変換処理部２０６は、ＲＧＢ信号に対するマトリクス演算などにより、所望のカラーバランス変換を行う。色ガンマ処理部２０７は、ＲＧＢの色信号にガンマ補正を行う。色差信号生成部２０８は、ＲＧＢ信号から色差信号Ｒ−Ｙ、Ｂ−Ｙを生成し、画像メモリ１０６に出力する。画像メモリ１０６に出力された画像信号（Ｙ、Ｒ−Ｙ、Ｂ−Ｙ）は、コーデック部１１０によって圧縮符号化され、記録媒体１１２に記録される。
【００２５】
評価値生成部２０９は、実際の環境光源の状態を推定するための評価値を生成する。本実施形態における環境光源の状態とは、被写体に対する環境光源の方向及び強度（輝度）である。従って、評価値生成部２０９は、環境光源の方向及び強度を推定するための評価値を生成して出力する。具体的には、評価値生成部２０９は、図５に示すように画像を複数のブロックに分割し、ブロック毎の平均輝度値を算出する。評価値生成部２０９は、算出した評価値をシステムメモリ１２２に記録する。
【００２６】
次に、図３を参照して、リライティング処理部２０２の構成及び動作について説明する。図３は、リライティング処理部２０２の構成を示すブロック図である。図３において、３０１は、仮想光源が被写体に反射した特性（被写体における仮想光源の反射特性）を示す反射特性マップを複数読み込み合成する反射特性マップ合成部である。３０２は、仮想光源の反射特性マップを被写体に合わせてなじませるフィッティング処理部である。３０３は、反射特性マップに基づいて被写体に反射した色成分（仮想光源反射成分）を算出する仮想光源反射成分算出部である。３０４は、入力画像に対して仮想光源反射成分を加算する仮想光源付加処理部である。以下、リライティング処理部２０２の各部の動作について詳細に説明する。
【００２７】
反射特性マップ合成部３０１は、事前に用意した仮想光源の反射特性マップ（詳細は後述）を複数読み込み合成する。この複数の反射特性マップの合成処理において、システム制御部５０は、どの反射特性マップを読み込むのかの決定、及び合成パラメータの決定を行う。
【００２８】
図４を参照して、システム制御部５０が反射特性マップ合成部３０１のために実行する合成パラメータ設定処理について説明する。被写体の撮影が行われると、図４のフローチャートの処理が開始する。
【００２９】
Ｓ４０１で、システム制御部５０は、撮影した被写体の特徴量を取得する。具体的には、システム制御部５０は、評価値生成部２０９（図２）により生成された、画像の各ブロックの平均輝度値を取得する。ブロック分割の例を図５に示す。評価値生成部２０９は、図５に示すように分割したブロック毎に被写体の平均輝度値を算出し、システム制御部５０は、算出された平均輝度値を取得する。
【００３０】
Ｓ４０２で、システム制御部５０は、撮影時のストロボ照射情報を取得する。ストロボ照射情報とは、撮影時にストロボ１２３を発光したか否かを示す情報である。
【００３１】
Ｓ４０３で、システム制御部５０は、Ｓ４０１で取得した被写体の特徴量に応じて、リライティングモードを決定する。本実施形態では、リライティングモードとして、（１）斜光補正モード、（２）トップライト補正モード、（３）逆光補正モード、（４）フラット補正モード、の４種類がある場合の例について説明する。最初に、システム制御部５０は、撮影された画像において顔検出部１１３が検出した顔領域の情報を取得する。例えば、システム制御部５０は、顔検出部１１３から、顔領域５０１（図５（Ａ）〜（Ｄ）参照）の情報を取得する。次に、システム制御部５０は、Ｓ４０１で取得した各ブロックの被写体特徴量のうち、顔領域５０１に含まれる各ブロックの被写体特徴量を取得する。システム制御部５０は、顔領域５０１における被写体特徴量（輝度）の分布を解析し、分布が図５（Ａ）〜（Ｄ）のいずれに該当するかを判定する。図５（Ａ）に示すように顔領域５０１の左右で明暗差がある場合、システム制御部５０は斜光補正モードを選択する。図５（Ｂ）に示すように顔領域５０１の上下で明暗差があり、かつ上側が明るい場合、システム制御部５０はトップライト補正モードを選択する。図５（Ｃ）に示すように顔領域５０１の中で明暗差が少なく、かつ顔領域５０１が他の領域よりも暗い場合、システム制御部５０は逆光補正モードを選択する。図５（Ｄ）に示すように顔領域５０１の中で明暗差が少なく、かつ顔領域５０１が十分明るい場合、システム制御部５０はフラット補正モードを選択する。なお、図５（Ａ）には顔領域５０１の左側が明るく右側が暗い状態が示されているが、顔領域５０１の左側が暗く右側が明るい場合も斜光補正モードが選択される。顔領域５０１における被写体特徴量（輝度）の分布が上記４つのリライティングモードのいずれにも対応しない場合、システム制御部５０は、リライティングによる画像補正を行わないと判定する。
【００３２】
Ｓ４０４で、システム制御部５０は、Ｓ４０３で決定したリライティングモードに応じた反射特性マップ（反射特性データ）を選択し、選択した反射特性マップの合成特性を決定する。反射特性マップとは、平均的な顔形状モデルに対して、所定の光源位置からリライティングした結果の反射特性を示した画像である。反射特性マップの例を図６に示す。図６の上段は、光源の位置を左側９０度（Ｌ９０）から、右側９０度（Ｒ９０）まで変化させた反射特性マップを示している。図６の下段は、光源の位置を下側６０度（Ｄｏｗｎ６０）及び上側６０度（Ｕｐ６０）に設定した場合の反射特性マップを示している。このような反射特性マップは、平均的な顔形状モデルに基づき事前に生成しておき、不揮発性メモリ１２１（図１）に記録しておくものとする。
【００３３】
図７を参照して、リライティングモードと使用する反射特性マップとの関係について説明する。図７の例において、リライティングモードが「斜光補正モード」の場合、被写体の左右を比較して暗い側に対して６０度の角度から仮想光源を照射する。また、明るい側に対して６０度の角度から光を減光する。図５（Ａ）の例の場合、被写体に向かって右側が暗く、左側が明るい。そのため、右側６０度から仮想光源を照射した場合の反射特性マップ（Ｒ６０）と、左側６０度から仮想光源を照射した場合の反射特性マップ（Ｌ６０）とを、下記の式（１）に従って合成する。
Ｍ  ＝  α×（Ｒ６０）−β×（Ｌ６０）  ・・・（１）
ここで、Ｍは合成後の反射特性マップであり、α及びβは合成の際の係数（合成特性）であって０〜１の値を取る。システム制御部５０は、顔の所定の基準輝度に対して顔の暗部が暗いほどαを大きく設定し、基準輝度に対して顔の明部が明るいほどβを大きく設定する。βの項はマイナスになっているため減光を示している。合成後の反射特性マップを図８（Ａ）に示す。合成後の反射特性マップ（合成反射特性データ）は、被写体の各位置における反射特性を表現する画像（反射特性画像）のデータ形式を持つ。図８（Ａ）において、基準階調（例えば８ビットの場合は１２８）よりも明るい部分は加算光、暗い場合は減算光を示している（図８（Ｂ）〜（Ｄ）においても同様）。
【００３４】
図５（Ａ）とは逆に、被写体に向かって左側が暗く、右側が明るい場合は、式（１）において使用する反射特性マップの左右を反転する。即ち、左側６０度から仮想光源を照射した場合の反射特性マップ（Ｌ６０）と、右側６０度から仮想光源を照射した場合の反射特性マップ（Ｒ６０）とを、下記の式（２）に従って合成する。
Ｍ  ＝  α×（Ｌ６０）−β×（Ｒ６０）  ・・・（２）
【００３５】
式（２）において、システム制御部５０は、顔の所定の基準輝度に対して顔の暗部が暗いほどαを大きく設定し、基準輝度に対して顔の明部が明るいほどβを大きく設定する。
【００３６】
次に、リライティングモードが「トップライト補正モード」の場合について説明する。この場合、図５（Ｂ）に示すように、被写体の頭部付近が明るく、口から下が暗くなっている。そのため、被写体の上側から減光し、下側から加算光を照射することで顔に当たる光のバランスをとる。即ち、上側６０度から仮想光源を照射した場合の反射特性マップ（Ｕｐ６０）と、下側６０度から仮想光源を照射した場合の反射特性マップ（Ｄｏｗｎ６０）とを、下記の式（３）に従って合成する。
Ｍ  ＝  α×（Ｄｏｗｎ６０）−β×（Ｕｐ６０）  ・・・（３）
【００３７】
この場合の合成後の反射特性マップを図８（Ｂ）に示す。なお、式（３）において、システム制御部５０は、顔の所定の基準輝度に対して顔の暗部が暗いほどαを大きく設定し、基準輝度に対して顔の明部が明るいほどβを大きく設定する。
【００３８】
リライティングモードが「逆光補正モード」の場合、顔が全体的に暗いため、正面と、正面下方それぞれから加算光の仮想光源を照射する。即ち、正面から仮想光源を照射した場合の反射特性マップ（Ｆ０）と、下側６０度から仮想光源を照射した場合の反射特性マップ（Ｄｏｗｎ６０）とを、下記の式（４）に従って合成する。
Ｍ  ＝  α×（Ｆ０）＋β×（Ｄｏｗｎ６０）  ・・・（４）
【００３９】
この場合の合成後の反射特性マップを図８（Ｃ）に示す。なお、式（４）において、システム制御部５０は、顔の所定の基準輝度に対して顔領域５０１が暗いほどα及びβを大きく設定する。
【００４０】
リライティングモードが「フラット補正モード」であり、ストロボ発光がない場合、仮想光源を左右どちらか斜め６０度から照射する。この場合、反射特性マップの合成は行われず、式（５）に示すようにゲインの調整だけが行われる。
Ｍ  ＝  α×（Ｌ６０又はＲ６０）  ・・・（５）
【００４１】
なお、式（５）において、システム制御部５０は、顔の所定の基準輝度に対して顔領域５０１が暗いほどαを大きく設定する。
【００４２】
リライティングモードが「フラット補正モード」であり、ストロボ発光がある場合、ストロボ光をキャンセルするため、正面からの光を減光し、仮想光源を正面上側から照射する。具体的には、正面から仮想光源を照射した場合の反射特性マップ（Ｆ０）と、上側６０度から仮想光源を照射した場合の反射特性マップ（Ｕｐ６０）とを、下記の式（６）に従って合成する。
Ｍ  ＝  α×（Ｕｐ６０）−β×（Ｆ０）  ・・・（６）
【００４３】
この場合の合成後の反射特性マップを図８（Ｄ）に示す。なお、式（６）において、システム制御部５０は、顔の所定の基準輝度に対して顔領域５０１が暗いほどαを大きく設定し、基準輝度に対して顔の明部が明るいほどβを大きく設定する。
【００４４】
以上、リライティングモードに応じた反射特性マップの選択と合成特性（係数α及びβの値及び符号）の決定について説明した。
【００４５】
Ｓ４０５で、システム制御部５０は、Ｓ４０４で決定した合成パラメータ（反射特性マップ及び合成特性）を反射特性マップ合成部３０１に設定する。
【００４６】
以上、システム制御部５０が反射特性マップ合成部３０１のために実行する合成パラメータ設定処理について説明した。その後、反射特性マップ合成部３０１は、設定された合成パラメータに基づいて反射特性マップの合成処理を行う。反射特性マップ合成部３０１は、合成後の反射特性マップを、フィッティング処理部３０２に出力する。フィッティング処理部３０２は、撮影画像（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）を参照して、合成後の反射特性マップに対してフィッティング処理を行う。
【００４７】
図９を参照して、フィッティング処理について説明する。図９（Ａ）は、合成後の反射特性マップを示す。反射特性マップには、目や口の位置に対応した特徴点９０１〜９０３が予め設定されている。図９（Ｂ）は、撮影画像（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）を示す。まず、フィッティング処理部３０２は、撮影画像の被写体の特徴点（目や口など）の位置９０４〜９０６を基準に、反射特性マップを幾何変形（幾何学変換）する。具体的には、フィッティング処理部３０２は、顔検出部１１３（図１）から、撮影画像の被写体の特徴点（目や口など）の座標位置を取得する。そして、フィッティング処理部３０２は、特徴点９０１〜９０３と位置９０４〜９０６との位置関係が整合するように、反射特性マップに対して拡大、縮小、及び回転を行う。これにより、反射特性マップの平均的な顔形状モデル（所定の被写体）と撮影画像に含まれる被写体との形状の相違を補償することができる。
【００４８】
次に、フィッティング処理部３０２は、撮影画像を参照画像として用いて、反射特性マップに対してジョイントバイラテラルフィルタを適用する。これにより、参照画像のエッジを保存した状態で反射特性マップに平滑化処理を適用することが可能である。ジョイントバイラテラルフィルタを適用した結果を図９（Ｃ）に示す。フィッティング処理部３０２は、ジョイントバイラテラルフィルタの適用により得られた反射特性マップＭｆを、仮想光源反射成分算出部３０３に出力する。
【００４９】
なお、リライティングモードが「フラット補正モード」であり、ストロボ発光がない場合のように、複数の反射特性マップを合成する合成処理が行われない場合がある。この場合、上記の式（５）に示すように、反射特性マップ合成部３０１は、選択された反射特性マップに対して係数を乗じることにより得られる反射特性マップを、フィッティング処理部３０２に出力する。そして、フィッティング処理部３０２は、合成処理が行われた場合と同様に、反射特性マップ合成部３０１から出力された反射特性マップに対して、上で説明したフィッティング処理を行う。
【００５０】
仮想光源反射成分算出部３０３は、式（７）に従い、撮影画像（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）に対してフィッティング処理後の反射特性マップＭｆを乗算する。これにより、仮想光源による被写体の反射色成分（Ｒａ、Ｇａ、Ｂａ）が算出される。
Ｒａ  ＝  Ｍｆ×Ｒｉｎ
Ｇａ  ＝  Ｍｆ×Ｇｉｎ  ・・・（７）
Ｂａ  ＝  Ｍｆ×Ｂｉｎ
【００５１】
仮想光源反射成分算出部３０３は、算出した仮想光源による被写体の反射成分（Ｒａ、Ｇａ、Ｂａ）を仮想光源付加処理部３０４へ出力する。
【００５２】
仮想光源付加処理部３０４は、式（８）に従い、被写体領域に対して仮想光源の反射成分（Ｒａ、Ｇａ、Ｂａ）を付加する。
Ｒｏｕｔ  ＝  Ｒｉｎ＋Ｒａ
Ｇｏｕｔ  ＝  Ｇｉｎ＋Ｇａ  ・・・（８）
Ｂｏｕｔ  ＝  Ｂｉｎ＋Ｂａ
【００５３】
以上説明したように、第１の実施形態によれば、デジタルカメラ１００は、複数の反射特性マップを合成し、合成後の反射特性マップが示す反射特性に基づいて画像に含まれる被写体の反射成分を生成し、生成した反射成分を画像に対して付加する。これにより、複数の仮想光源を用いるリライティングの処理負荷を軽減することが可能となる。
【００５４】
なお、本実施形態では、デジタルカメラ１００が反射特性マップを左右方向で５段階、上下方向で２段階持っている場合を例に説明を行ったが、反射特性マップの持ち方はこれに限定されない。例えば、デジタルカメラ１００は、上下左右それぞれ１０段階など、より多くのパターンの反射特性マップを保持していてもよい。また、例えば左側６０度と右側６０度のように左右対称の反射特性マップのペアについては、いずれか一方のみを用意しておき、デジタルカメラ１００が被写体の状態に応じて反射特性マップを左右反転して利用してもよい。
【００５５】
また、本実施形態では、反射特性マップの合成演算として、加算及び減算の例について説明したが、反射特性マップを合成する際の演算は、加算及び減算に限定されない。例えば、合成演算は、乗算又は除算を含んでもよいし、ＲＧＢ色成分の割合を変化させて合成するような色変換処理を含んでもよい。
【００５６】
また、本実施形態では、リライティングモードとして「斜光補正モード」、「トップライト補正モード」、「逆光補正モード」、及び「フラット補正モード」の４つのモードがある場合について説明した。しかし、リライティングモードはこれら４つのモードに限定されない。リライティングモードに応じて反射特性マップの合成パラメータを決定する構成であれば、どのようなモードを用意してもよい。
【００５７】
また、本実施形態では、被写体の輝度分布に応じてリライティングモードを決定する構成について説明したが、リライティングモードの決定はこれ以外の方法で行ってもよい。例えば、ユーザ指示に従ってリライティングモードを決定（選択）する構成を取ることも可能である。
【００５８】
また、本実施形態では、２つの反射特性マップを合成する場合を例に説明したが、複数の反射特性マップを合成する構成であれば、いくつの反射特性マップを合成しても構わない。例えば、３灯照明を再現するために３つの反射特性マップを合成するなどの構成を取ることも可能である。
【００５９】
［第２の実施形態］
第１の実施形態では、撮影時に被写体の状況に応じてリライティングモードを選択し、リライティングモードに応じて反射特性マップの合成パラメータを制御する構成について説明した。第２の実施形態では、記録媒体１１２に一度記録したＲＡＷ画像を現像する際に、ユーザ指示に応じた仮想光源によるリライティングを行う構成について説明する。第２の実施形態において、デジタルカメラ１００の基本的な構成は第１の実施形態と同様である（図１乃至図３参照）。以下、主に第１の実施形態と異なる点について説明する。
【００６０】
デジタルカメラ１００は、撮像部１０３で撮影した撮影画像をすぐに画像処理部１０５で現像処理するのではなく、記録媒体１１２にＲＡＷ画像を一旦記録する。その後、ユーザの操作によって画像が選択されると、デジタルカメラ１００は記録媒体１１２からＲＡＷ画像を読み出し、画像処理部１０５により画像処理を行う。
【００６１】
本実施形態では、図３の反射特性マップ合成部３０１に設定する反射特性マップの合成パラメータの決定方法が第１の実施形態と異なる。図１０を参照して、合成パラメータの決定方法について説明する。
【００６２】
図１０は、第２の実施形態に係る、システム制御部５０が反射特性マップ合成部３０１のために実行する合成パラメータ設定処理のフローチャートである。ユーザにより現像対象画像（リライティング対象の画像）が選択されると、本フローチャートの処理が開始する。
【００６３】
Ｓ１００１で、システム制御部５０は、リライティングする仮想光源の照射角度を決定する。照射角度はユーザ操作に従って決定される。仮想光源を設置するユーザ操作のためのユーザインタフェースの例を図１１に示す。
【００６４】
図１１において、１１０１はカメラ筐体、１１０２は操作部、１１０３は表示部を示している。操作部１１０２は、図１の操作部１２０に含まれる。表示部１１０３は、図１の表示部１０９に含まれる。リライティング対象の画像がユーザによって選択されると、システム制御部５０は、表示部１１０３に選択された画像を表示する。１１０４〜１１０６は、設定された仮想光源の位置を示している。デジタルカメラ１００は、この仮想光源の位置と方向に基づいてリライティング処理を行う。仮想光源の位置は、ユーザによるタッチ操作によって決定される。１１０４〜１１０６に示すように、ユーザは任意の位置に複数の仮想光源を設置することが可能である。光源の位置が決定されると、システム制御部５０は、設定された仮想光源の位置から主被写体の中心方向に仮想光源を照射するように照射角度を決定する。仮想光源は複数設置可能であり、図１１では３灯の仮想光源１１０４、１１０５、１１０６が設置された場合を示している。システム制御部５０は、仮想光源の照射角度を決定した後、設置した複数の仮想光源毎に、Ｓ１００２〜Ｓ１００７の処理を実行する。
【００６５】
Ｓ１００２で、システム制御部５０は、照射角度に対応する反射特性マップが不揮発性メモリ１２１に記録されているか否かを判定する。本実施形態では、第１の実施形態と同様に、図６に示す７種類の反射特性マップが不揮発性メモリ１２１に記録されているものとする。図１１の例では、仮想光源１１０４は被写体の正面にあり、図６の「Ｆ０」が照射角度に対応する。仮想光源１１０６は被写体の左側９０度の位置にあり、図６の「Ｌ９０」が照射角度に対応する。仮想光源１１０４、１１０６の例では、対応する反射特性マップが存在するので、処理はＳ１００３に進む。一方、仮想光源１１０５は、被写体の左側７５度から照射している。この照射角度に対応する反射特性マップは存在しないため、処理はＳ１００４に進む。
【００６６】
Ｓ１００３で、システム制御部５０は、仮想光源の照射角度に対応する反射特性マップを選択する。図１１の例では、仮想光源１１０４に対しては図６の「Ｆ０」、仮想光源１１０６に対しては図６の「Ｌ９０」が選択される。
【００６７】
Ｓ１００４で、システム制御部５０は、仮想光源の照射角度に最も近い反射特性マップを２つ（決定した照射角度よりも大きいものと小さいもの）選択する。図１１の例では、仮想光源１１０５は、左側７５度の照射角度を持つため、左側７５度に近い、左側９０度（Ｌ９０）と左側６０度（Ｌ６０）の２つの反射特性マップが選択される。
【００６８】
Ｓ１００５で、システム制御部５０は、選択した２つの反射特性マップを合成する合成比率を決定する。仮想光源１１０５の場合、左側７５度は左側９０度と左側６０度の中間の角度であるため、左側９０度の反射特性マップ（Ｌ９０）と左側６０度の反射特性マップ（Ｌ６０）とを１対１の比率で合成する。即ち、式（９）に従って反射特性マップの合成処理を行うことにより、近似的に左側７５度から照射した反射特性マップを生成することができる。
Ｍ  ＝  ０．５×（Ｌ９０）＋０．５×（Ｌ６０）  ・・・（９）
【００６９】
Ｓ１００６で、システム制御部５０は、合成パラメータ（反射特性マップ及び合成比率）を反射特性マップ合成部３０１に設定する。
【００７０】
Ｓ１００７で、システム制御部５０は、全ての仮想光源の処理が完了したか否かを判定する。図１１の例では仮想光源を３つ設定しているため、システム制御部５０は、３つの仮想光源に関してＳ１００２〜Ｓ１００６の処理が完了したか否かを判定する。全ての仮想光源の処理が完了した場合、処理はＳ１００８に進み、そうでない場合、処理はＳ１００２に戻る。
【００７１】
Ｓ１００８で、システム制御部５０は、選択又は生成した全ての仮想光源の反射特性マップを加算合成するように反射特性マップ合成部３０１を設定する。図１１の例では、システム制御部５０は、仮想光源１１０４〜１１０６に対応する３つの反射特性マップを合成し、１つの合成反射特性マップを生成するように、反射特性マップ合成部３０１を設定する。
【００７２】
以上、システム制御部５０が反射特性マップ合成部３０１のために実行する合成パラメータ設定処理について説明した。その後、反射特性マップ合成部３０１は、設定された合成パラメータに基づいて反射特性マップの合成処理を行う。以後の処理は、第１の実施形態と同様である。
【００７３】
以上説明したように、第２の実施形態によれば、デジタルカメラ１００は、リライティング処理を行う際に、ユーザ操作に従って仮想光源の照射角度を決定する。そして、デジタルカメラ１００は、予め用意した反射特性マップを合成することにより、決定した照射角度に対応する反射特性マップを生成する。これにより、比較的少ない処理負荷で所望の照射角度の反射特性マップを生成することが可能となる。
【００７４】
なお、本実施形態では、予め保持していた反射特性マップを合成することで最終的な反射特性マップを生成した。しかし、予め保持していた反射特性マップ以外に、撮影時に取得した被写体の形状から算出した反射特性マップを併せて利用する構成を取ることも可能である。この場合、デジタルカメラ１００は、被写体の形状を取得し、形状に基づき反射特性マップを生成する。また、デジタルカメラ１００は、予め保持していた反射特性マップと、被写体の形状に基づく反射特性マップとを選択的に利用するように構成されていてもよい。具体的には、デジタルカメラ１００は、測距センサ１２４から取得した距離情報から法線を算出し、法線と仮想光源の位置・方向・反射率などに基づき反射特性マップを生成する。測距センサ１２４を用いて生成された反射特性マップは、精度は高くなるが、生成するための時間はかかってしまう。そこで、プレビューなど速度を重視する場合は事前に用意していた反射特性マップを合成して利用し、最終的な画像など精度を重視する場合は測距センサ１２４を用いて生成した反射特性マップを利用する方法を取ることも可能である。
【００７５】
また、被写体距離が離れすぎて距離情報を取得できない場合や、顔が小さい、暗すぎる、明るすぎるなどの理由により法線の精度が悪化するような条件の場合がある。このような場合、精度を優先する場合であっても、事前に用意していた反射特性マップに切り替えて利用する構成を取ることも可能である。
【００７６】
［第３の実施形態］
以下、図１２及び図１３を参照して、第３の実施形態について説明する。本実施形態では、被写体に応じてカメラ内で複数の反射特性マップを生成し、合成する例について説明する。さらに本実施形態では、拡散反射特性マップと鏡面反射特性マップという、異なる性格を有する２つのマップを生成し合成する。
【００７７】
本実施形態における、デジタルカメラ１００の全体構成は第１の実施形態（図１〜図２）で説明したものと同様であるため、説明は省略する。本実施形態では、リライティング処理部２０２の構成が第１及び第２の実施形態と異なる。以下、主に第１及び第２の実施形態と異なる点について説明する。
【００７８】
本実施形態におけるリライティング処理部２０２の構成を図１２に示す。図１２において、１２０１は法線を算出する法線算出部、１２０２は、法線情報と仮想光源の方向情報に基づき、仮想光源の反射特性マップを生成する反射特性マップ生成部である。１２０３は複数の反射特性マップを合成する反射特性マップ合成部、１２０４は合成した反射特性マップに基づき仮想光源の反射成分を算出する仮想光源反射成分算出部である。
【００７９】
上記の構成のリライティング処理部２０２の動作について説明する。法線算出部１２０１は、測距センサ１２４（図１）から取得した被写体距離情報から法線マップを算出する。被写体距離情報とは、撮影画像の画素単位で得られる２次元の距離情報のことである。被写体距離情報から法線マップを生成する方法に関しては、公知のどのような技術を用いてもよいものとする。
【００８０】
反射特性マップ生成部１２０２は、被写体に対して仮想光源を設置し、法線と仮想光源の向きの関係から被写体の拡散反射特性マップＤおよび、鏡面反射マップＳを算出する。
【００８１】
拡散反射マップＤは、図１３に示すように被写体中の着目画素Ｐにおける被写体の法線ベクトルをＮ、着目画素Ｐから仮想光源の方向ベクトルをＬ、仮想光源と被写体（着目画素）の距離をＫとすると下記の式で計算される。ただし、ベクトルＬおよびＮは正規化されているものとする。
Ｄｉ＝（Ｌ・Ｎ）／Ｋ２
【００８２】
拡散反射を付与する仮想光源は複数個設置することができ、Diはi番目の仮想光源に対応した拡散反射特性マップであることを示す。上記の式の演算により、法線ベクトルＮの方向と仮想光源の方向ベクトルＬの方向が近く、被写体と仮想光源の距離Ｋが近いほど、拡散反射成分は大きくなる。
【００８３】
また、鏡面反射マップＳは、図１３に示すように鏡面反射の方向ベクトルをＲ、被写体位置（着目画素Ｐ）からカメラの方向ベクトル（視線の方向）をＶとすると、下記の式で計算される。すなわち、鏡面反射成分は、カメラの方向が鏡面反射の方向と近いほど大きくなる。
Ｓｊ＝（Ｒ・Ｖ）ｍ
【００８４】
鏡面反射の方向ベクトルＲの算出には、提案されている既知のどのような算出方法を用いても良い。ここでは、仮想光源の位置から被写体位置（着目画素Ｐ）のベクトルを入射角とした場合に、反射面に対して入射角と同じ角度で反射した場合のベクトルを鏡面反射の方向ベクトルＲとする。また、ｍは、鏡面反射した光の広がり具合を示す輝き係数であり、この値が大きくなると鏡面反射が急峻になる。
【００８５】
鏡面反射を付与する仮想光源は複数個設置することができ、Ｓｉはｊ番目の仮想光源に対応した鏡面反射特性マップであることを示す。
【００８６】
反射特性マップ生成部１２０２は、評価値生成部２０９（図２）で取得した被写体評価値に基づき、拡散反射および鏡面反射を付与する仮想光源を複数個設置する。例えば、図５Ａに示すように被写体の左右の明るさが異なる斜光の場合は、被写体に対して左から光を照射する仮想光源と、右から照射する仮想光源を設置する。図５Ｂのように被写体の上下で明るさが異なる場合は、被写体に対して上から光を照射する仮想光源と、下から照射する仮想光源を設置する。
【００８７】
上記のように、反射特性マップ生成部１２０２は、設置した複数の位置の仮想光源に対する拡散反射マップＤと鏡面反射マップＳを算出し、反射特性マップ合成部１２０３に出力する。
【００８８】
反射特性マップ合成部１２０３は、下記の式に基づき、入力された複数の拡散反射マップＤと鏡面反射マップＳについて被写体の陰影状態に応じた比率で加減算を行い、最終的な反射特性マップＭを生成する。
Ｍ＝Σｉ（αｉ×Ｄｉ）＋Σｊ（βｊ×Ｓｊ）
【００８９】
ここで、αおよびβは、加減算の重みであり負の値も取ることが可能である。αもしくはβを負値に設定することで、特定の仮想光源を減算光にすることが可能である。
【００９０】
例えば、図５Ａに示す被写体のように被写体に向かって左側が明るく、右側が暗い斜光シーンの場合、左側から被写体に向かって照射する仮想光源のαもしくはβ値を負の値にして減光にする。また右側から照射する仮想光源のα値を大きくして暗部に対して強い拡散光を当てるようにする。このように複数の拡散反射マップおよび鏡面反射マップの合成比率を制御することで、被写体の状態に応じた反射特性マップＭが生成される。生成された反射特性マップＭは、仮想光源反射成分算出部１２０４に出力される。
【００９１】
仮想光源反射成分算出部１２０４は、撮影画像（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）に対して、反射特性マップＭを乗算する。これにより、仮想光源による被写体の反射色成分（Ｒａ、Ｇａ、Ｂａ）を算出する。式では下記の通りとなる。
Ｒａ  ＝  Ｍ  ×  Ｒｉｎ
Ｒａ  ＝  Ｍ  ×  Ｇｉｎ
Ｒａ  ＝  Ｍ  ×  Ｂｉｎ
【００９２】
上記のように算出した仮想光源による反射成分（Ｒａ、Ｇａ、Ｂａ）は仮想光源付加処理部３０４へ出力される。仮想光源付加処理部３０４の処理は第１の実施形態と同様であるためここでの説明は省略する。
【００９３】
以上説明した通り、第３の実施形態によれば、デジタルカメラ１００は、リライティング処理を行う場合に、設定した複数の光源に対応する反射特性マップ生成する。そして、デジタルカメラ１００は、生成した複数の反射特性マップを重み付きで合成することで、所望の反射特性マップを得る。これにより、複数の仮想光源個々に対応した反射色成分の演算を行うことなく高速な処理が可能となる。
【００９４】
なお、上の説明では、拡散反射マップＤと鏡面反射マップＳをすべて合成して最終的な反射特性マップＭを計算するものとしたが、拡散反射マップ、鏡面反射マップそれぞれの合成マップを生成し、最終的な反射色成分を計算する構成をとることも可能である。
【００９５】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９６】
５０…システム制御部、１００…デジタルカメラ、１０５…画像処理部、２０２…リライティング処理部、３０１…反射特性マップ合成部、３０２…フィッティング処理部、３０３…仮想光源反射成分算出部、３０４…仮想光源付加処理部
【図１】
2019083008.tif 000003
【図２】
2019083008.tif 000004
【図３】
2019083008.tif 000005
【図４】
2019083008.tif 000006
【図５】
2019083008.tif 000007
【図６】
2019083008.tif 000008
【図７】
2019083008.tif 000009
【図８】
2019083008.tif 000010
【図９】
2019083008.tif 000011
【図１０】
2019083008.tif 000012
【図１１】
2019083008.tif 000013
【図１２】
2019083008.tif 000014
【図１３】
2019083008.tif 000015