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