(57)【要約】【課題】仮想光源の位置によっては、好ましいリライティング結果が得られない。【解決手段】入力画像を撮像する画像撮像手段、前記画像撮像手段が撮像した画像から第一の被写体を検出し、前記画像撮像手段が撮像した画像から第一被写体を含まない第二の被写体を検出し、距離情報を取得し、撮像した画像に対して仮想光源を配置し仮想光源を検出した前記第一被写体に照射した画像を生成する。仮想光源情報は取得した距離情報と検出した第一被写体及び第二被写体の位置関係とに基づいて設定する。【選択図】図３
2020010168.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を撮像する画像撮像手段と、
前記画像撮像手段が撮像した画像から第一の被写体を検出する第一被写体検出手段と、
前記画像撮像手段が撮像した画像から第一の被写体を含まない第二の被写体を検出する第二被写体検出手段と、
距離情報を取得する距離情報取得手段と、
前記画像撮像手段が撮像した画像に対して、仮想光源を配置し、仮想光源を前記第一被写体検出手段が検出した前記第一被写体に照射した画像を生成するリライティング手段と、
前記リライティング手段で用いる仮想光源の情報を設定する仮想光源情報設定手段と、
を備え、
前記仮想光源情報設定手段は、前記距離情報取得手段が取得した距離情報と、前記第一被写体検出手段が検出した第一被写体及び前記第二被写体検出手段が検出した第二被写体の位置関係とに基づいて、仮想光源情報を設定することを特徴とする画像処理装置。
【請求項２】
前記仮想光源情報設定手段は、前記第一被写体検出手段が検出した第一被写体と前記第二被写体検出手段が検出した第二被写体とのどちらが撮像装置に近いかに応じて、仮想光源情報を設定する際に、第二被写体を考慮するか否かを決めることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記仮想光源情報設定手段は、前記第一被写体検出手段が検出した第一被写体と前記第二被写体検出手段が検出した第二被写体との距離に応じて、仮想光源情報を設定する際に、第二被写体を考慮するか否かを決めることを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記仮想光源情報設定手段は、仮想光源の位置、強度、拡散度合いの少なくとも一つ以上を設定することを特徴とする請求項１乃至請求項３の何れか一項に記載の画像処理装置。
【請求項５】
前記仮想光源情報設定手段は、仮想光源情報を仮設定した後に、前記第一被写体検出手段が検出した第一被写体と前記第二被写体検出手段が検出した第二被写体との位置関係に応じて、仮想光源情報を再設定することを特徴とする請求項１乃至請求項４の何れか一項に記載の画像処理装置。
【請求項６】
前記仮想光源情報設定手段は、仮想光源情報を再設定する際に、仮設定した仮想光源位置からの移動量が最も少なくなるように仮想光源位置を移動することを特徴とする請求項１乃至請求項５の何れか一項に記載の画像処理装置。
【請求項７】
前記画像処理装置は、更に環境光の位置を推定する環境光推定手段を備え、前記仮想光源情報設定手段は、仮想光源情報を再設定する際に、仮想光源を移動する方向が環境光に近づくか否かに応じて、仮想光源情報を再設定する際の強度・拡散度合いを調整することを特徴とする請求項１乃至請求項６の何れか一項に記載の画像処理装置。
【請求項８】
前記リライティング手段は、第二被写体検出手段が検出した第二被写体に対してもリライティング処理を行うことを特徴とする請求項１乃至請求項７の何れか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関するものであり、特に、仮想光源を配置し、画像に対して仮想光源からの光を照射する処理に関するものである。
【背景技術】
【０００２】
従来、撮影時の照明環境が撮影者の所望ではなく、撮影後に後処理として撮影時とは異なる照明環境で撮影したような画像を作成するリライティング処理が行われている。リライティング処理によって所望の画像を作成するためには仮想光源の強度や位置を適切に設定する必要があり、特許文献１で記載されているように、人物の顔の有無や位置に応じてリライティングの強度を変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４８５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の従来技術によれば、仮想光源を設定して人物の顔に対してリライティング処理を行うことは可能であるが、設定した仮想光源の位置と人物の顔との間に遮蔽物がある場合に、遮蔽物の影になり適切なリライティング結果が得られないという課題がある。
【０００５】
そこで、本発明の目的は、複数の被写体の位置関係を考慮してリライティングを行う画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明に係る画像処理装置は、
入力画像を撮像する画像撮像手段と、前記画像撮像手段が撮像した画像から第一の被写体を検出する第一被写体検出手段と、前記画像撮像手段が撮像した画像から第一被写体を含まない第二の被写体を検出する第二被写体検出手段と、距離情報を取得する距離情報取得手段と、前記画像撮像手段が撮像した画像に対して、仮想光源を配置し、仮想光源を前記第一被写体検出手段が検出した前記第一被写体に照射した画像を生成するリライティング手段と、前記リライティング手段で用いる仮想光源の情報を設定する仮想光源情報設定手段と、を備え、前記仮想光源情報設定手段は、前記距離情報取得手段が取得した距離情報と、前記第一被写体検出手段が検出した第一被写体及び前記第二被写体検出手段が検出した第二被写体の位置関係とに基づいて、仮想光源情報を設定することを特徴とする。
【発明の効果】
【０００７】
本発明に係る画像処理装置によれば、複数の被写体の位置関係を考慮して仮想光源のパラメータを設定することで、適切なリライティング結果を得ることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明におけるデジタルカメラの全体構成を示すブロック図である。
【図２】本発明における画像処理部の構成図である。
【図３】実施例１における処理の流れを示すフローチャートの図である。
【図４】実施例１における仮想光源の位置の仮設定を示す図である。
【図５】実施例１における顔領域の平均輝度の差分と仮想光源の奥行き方向の角度との関係を表す図である。
【図６】実施例１における仮想光源の位置の再設定を示す図である。
【図７】実施例２における処理の流れを示すフローチャートの図である。
【発明を実施するための形態】
【０００９】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【００１０】
＜実施例１＞
以下、図１〜図６を参照して、本発明の第１の実施例における、撮像装置について説明する。図１はデジタルカメラ１００の構成を示すブロック図である。
【００１１】
図１において、１００はデジタルカメラ全体、２００は外部モニタ、１０１はズームレンズ、フォーカスレンズを含むレンズ群、１０２は絞り機能を備えるシャッター、１０３は光学像を電気信号に変換するＣＣＤやＣＭＯＳ素子等で構成される撮像部、１０４は、アナログ信号をデジタル信号に変換するＡ／Ｄ変換器、１０５はＡ／Ｄ変換器１０４から出力される画像データに対し、ホワイトバランス処理や、γ処理、色補正処理などの各種画像処理を行う画像処理部である。１０６は画像メモリ、１０７は画像メモリ１０６を制御するメモリ制御部、１０８は入力デジタル信号をアナログ信号に変換するＤ／Ａ変換器、１０９はＬＣＤ等の表示器、１１０は画像データを圧縮符号化・復号化するコーデック部である。
【００１２】
１１１は記録媒体２００とのインタフェースＩ／Ｆ、１１２はメモリカードやハードディスク等の記録媒体、５０はデジタルカメラ１００のシステム全体を制御するシステム制御部である。
【００１３】
１２０は各種の操作指示を入力するための操作部、１２１は電源スイッチ、１２２は電池の装着の有無、電池の種類、電池残量の検出を行う電源制御部、１２３は電源部である。
【００１４】
１２４は電気的に消去・記録可能な不揮発性メモリであり、例えばＥＥＰＲＯＭ等が用いられる。
【００１５】
１２５は各種制御に用いる時間や、内蔵された時計の時間を計測するシステムタイマ、１２６はシステム制御部５０の動作用の定数、変数、不揮発性メモリ１２４から読みだしたプログラム等を展開するシステムメモリである。
【００１６】
次に、上記のように構成されたデジタルカメラ１００における被写体撮影時の基本的な処理の流れについて説明する。
【００１７】
撮像部１０３は、レンズ１０１及びシャッター１０２を介して入射した光を光電変換し、入力画像信号としてＡ／Ｄ変換器１０４へ出力する。Ａ／Ｄ変換器１０４は撮像部１０３から出力されるアナログ画像信号をデジタル画像信号に変換し画像処理部１０５に出力する。
【００１８】
画像処理部１０５は、Ａ／Ｄ変換器１０４からの画像データ、又は、メモリ制御部１０７から読み出した画像データに対し、ホワイトバランスなどの色変換処理、γ処理などを行い、ベイヤーＲＧＢデータ、輝度・色差信号Ｙ、Ｒ−Ｙ、Ｂ−Ｙの中で何れかの画像データを出力する。画像処理部１０５から出力された画像データは、メモリ制御部１０７を介して画像メモリ１０６に書き込まれる。また、画像処理部１０５では、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部５０が露光制御、測距制御を行う。これにより、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、などを行う。画像処理部１０５では更に、撮像した画像データを解析し、光源を推定し、推定した光源に基づきＡＷＢ（オートホワイトバランス）処理も行う。
【００１９】
画像メモリ１０６は、撮像部１０３から出力された画像データや、表示部１０９に表示するための画像データを格納する。
【００２０】
また、Ｄ／Ａ変換器１０８は、画像メモリ１０６に格納されている画像表示用のデータをアナログ信号に変換して表示部１０９に供給する。表示部１０９は、ＬＣＤ等の表示器上に、Ｄ／Ａ変換器１０８からのアナログ信号に応じた表示を行う。
【００２１】
コーデック部１１０は、画像メモリ１０６に記録された画像データをＭＰＥＧなどの規格に基づき圧縮符号化する。
【００２２】
上記の基本動作以外に、システム制御部５０は、前述した不揮発性メモリ１２４に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。ここでいうプログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムのことである。この際、システム制御部５０の動作用の定数、変数、不揮発性メモリ１２４から読み出したプログラム等をシステムメモリ１２６に展開する。
【００２３】
以上、デジタルカメラ１００のブロック構成と、基本動作について説明した。
【００２４】
次に、本実施例の処理の概要について図２の画像処理部の構成図、図３のフローチャートに基づいて説明する。
【００２５】
本実施例では、リライティング対象の顔に対してリライティングを行う際に、顔以外の遮蔽物が存在する場合について説明する。
【００２６】
ステップＳ３０１では、第一被写体検出部２０１が、撮影した画像から顔を検出する。顔の検出処理は既存の方法を用いるとする。例えば、目や口などの器官を検出して顔を検出する方法を用いるとする。
【００２７】
ステップＳ３０２では、第二被写体検出部２０２が、撮影した画像からステップＳ３０１で検出した顔以外の被写体を検出する。
【００２８】
ステップＳ３０３では、距離情報取得部２０３が、ステップＳ３０１で検出した顔及びステップＳ３０２で検出した顔以外の被写体の、カメラからの距離を取得する。距離情報としては、例えば、測距センサが出力する撮影画素の画素単位に対応する距離情報を用いるとする。
【００２９】
ステップＳ３０４では、仮想光源情報設定部２０４が、ステップＳ３０１で検出した顔に対してリライティング処理を行う際の仮想光源の情報を仮設定する。
【００３０】
ステップＳ３０５では、仮想光源情報設定部２０４が、ステップＳ３０３で取得した距離情報に基づいて、ステップＳ３０１で検出した顔とステップＳ３０４で仮設定した仮想光源との間にステップＳ３０２で検出した顔以外の被写体が存在するか否かを判断する。検出した顔と仮設定した仮想光源との間に被写体が存在すると判断した場合はステップＳ３０６に進み、存在しないと判断した場合は、ステップＳ３０７に進む。この処理では、例えばレイトレーシング法を用いるとする。
【００３１】
ステップＳ３０６では、仮想光源情報設定部２０４が、ステップＳ３０１で検出した顔に対して、ステップＳ３０２で検出した被写体に遮られずに仮想光源からの光が照射されるようにステップＳ３０４で仮設定した仮想光源情報の再設定を行う。
【００３２】
ステップＳ３０７では、リライティング処理部２０５が、ステップＳ３０４もしくはＳ３０６で設定した仮想光源情報に基づいて、ステップＳ３０１で検出した顔に対して、リライティング処理を行う。リライティング処理の方法については、例えば特開２０１０−１３５９９６で公開されている公知の技術を用いるとする。
【００３３】
以上、本実施例における処理の概要について説明した。
【００３４】
次に、ステップＳ３０４、Ｓ３０６の処理の詳細について説明する。
【００３５】
ステップＳ３０４では、仮想光源情報の仮設定を行う。この処理では、リライティング処理の対象の陰影の付き方が所望になるように仮想光源情報を設定する。リライティング処理の対象の陰影があまりついていない場合は陰影を強めるように仮想光源情報を設定し、反対にリライティング対象の陰影がつきすぎている場合は陰影を弱めるように仮想光源情報を設定する。
【００３６】
この処理は、例えば下記のように行う。図４ａのように人物の顔４０１が検出されているとする。まず、二次元平面上で仮想光源の位置を求める。図４ｂのように人物の顔を複数の領域に分割し、分割した領域毎に平均輝度を算出する。次に平均輝度が最も高い領域Ａｈ（図４ｂの４０２）の平均輝度Ｙｈと、平均輝度が最も低い領域Ａｌ（図４ｂの４０３）の平均輝度Ｙｌとの差分Ｄを求める（式（１））。
【００３７】
Ｄ  ＝  Ｙｈ  −  Ｙｌ                            ・・・（１）
求めた差分Ｄと所定の閾値Ｔ１とを比較して、陰影があまりついていないか、もしくは陰影がつきすぎているかを判断する。差分Ｄが所定の閾値Ｔ１よりも小さい場合は、陰影があまりついていないと判断し、陰影を強めるためにＡｈの中心とＡｌの中心とを結ぶ直線上で、仮想光源、Ａｈの中心、Ａｌの中心の順番に並ぶように仮想光源を配置する（図４ｃ参照）。反対に差分Ｄが所定の閾値Ｔ１以上の場合は、陰影がつきすぎていると判断し、陰影を弱めるためにＡｈの中心とＡｌの中心とを結ぶ直線上で、仮想光源、Ａｌの中心、Ａｈの中心の順番に並ぶように仮想光源を配置する。
【００３８】
次に奥行き方向について考える。奥行き方向については、図４ｄの角度θで表すとする。
【００３９】
なおθは、平均輝度が最も高い領域Ａｈと平均輝度が最も低い領域Ａｌとで、仮想光源に近い方の領域の中心からの仰角とする。仮想光源によって陰影を強めたい場合は、Ａｈの中心からの仰角をθで表すが、θが小さいほどより陰影が強まる。より陰影を強めたいのは、式（１）で求めた平均輝度の差分Ｄが小さい場合であり、例えば図５ａのようにＤの大きさに応じてθを決めるとする。反対に、仮想光源によって陰影を弱めたい場合は、Ａｌの中心からの仰角をθで表すが、θが小さいほどより陰影が弱まる。より陰影を弱めたいのは、式（１）で求めた平均輝度の差分Ｄが大きい場合であり、例えば図５ｂのようにＤの大きさに応じてθを決めるとする。
【００４０】
また、仮想光源の強度Ｓ１は下記の式（２）で求めるものとする。
【００４１】
Ｓ１  ＝  ｋ１  ×  （ＭａｘＹ  −  Ｙｈ）        ・・・（２）
ＭａｘＹは、輝度値としてとりうる範囲で最大の値とする。ｋ１は、１以下の正数とし、リライティング処理によって輝度値が飽和しないように適宜決めて良いものとする。
【００４２】
次にステップＳ３０６で、ステップＳ３０４で仮設定した仮想光源情報の再設定を行う処理について説明する。この処理では、仮設定した仮想光源の位置をずらすことによって、ステップＳ３０２で検出した被写体に遮られずに、仮想光源からの光がステップＳ３０１で検出した顔に照射されるようにする。
【００４３】
この処理は、例えば下記のように行う。図６のように二次元平面上においてステップＳ３０１で検出した顔と、ステップＳ３０２で検出した被写体とに外接する直線を求める。このとき、ステップＳ３０１で検出した顔と、ステップＳ３０２で検出した被写体とが外接する直線をはさんで同じ側にこない直線を求める。図６では、Ｌ１及びＬ２が該当する直線となる。次に、同じ二次元平面上において、Ｌ１もしくはＬ２のどちらかの直線上に仮想光源位置を再設定する。どちらの直線上に再設定するかは、仮設定した仮想光源とＡｈを結ぶ直線とＬ１とのなす角φ１、仮設定した仮想光源とＡｈを結ぶ直線とＬ２とのなす角φ２を比較して、なす角が小さくなる直線上に再設定する。この場合は、φ１＜φ２であるため、Ｌ１上に仮想光源を再設定する。なす角が小さくなる直線上を選択する理由は、仮想光源をずらすことによる影響を少なくするためである。
【００４４】
以上、本実施例における処理について説明した。
【００４５】
なお、第一被写体検出部２０１が検出した顔と第二被写体検出部２０２が検出した顔以外の被写体との距離が所定の距離Ｔ２以上離れている場合は顔以外の被写体に遮られないと判断し、ステップＳ３０５の判定処理及びステップＳ３０６の仮想光源を再設定する処理を行わずにステップＳ３０７に進みリライティング処理を行っても良い。
【００４６】
なお、仮想光源を再設定する際には、環境光の位置に応じて仮想光源の強度及び拡散度合いを変更しても良い。仮想光源の位置をずらすだけでは、ずらす前後でのコントラストの付き方が異なってしまう。そのため、仮想光源の強度及び拡散度合いを変更してコントラストの付き方を調整しても良い。仮想光源の強度及び拡散度合いが同じ場合、仮想光源の位置が環境光の位置に近いほどコントラストがついたリライティング結果となる。そのため、仮想光源を再設定する際に、仮想光源の位置が環境光の位置に近付く場合は、仮想光源の強度を弱める、または仮想光源の拡散度合いを強める、のいずれか１つ以上を実施し、コントラストがつきすぎないようにする。反対に、仮想光源の位置が環境光の位置から遠ざかる場合は、仮想光源の強度を強める、または仮想光源の拡散度合いを弱める、のいずれか１つ以上を実施し、コントラストがつくようにする。環境光の位置は、ＧＰＳの情報や検出した顔のコントラストの付き方から求めるものとする。
【００４７】
＜実施例２＞
第一の実施例では、遮蔽物が顔以外の被写体である場合について説明したが、第二の実施例では、遮蔽物が他の人物の顔である場合について説明する。
【００４８】
本実施例の処理の概要について図２の画像処理部のブロック図及び図７のフローチャートに基づいて説明する。
【００４９】
ステップＳ７０１では、第一被写体検出部２０１が、撮影した画像から第一の顔を検出する。顔の検出処理は既存の方法を用いるとする。例えば、目や口などの器官を検出して顔を検出する方法を用いるとする。
【００５０】
ステップＳ７０２では、第二被写体検出部２０２が、撮影した画像からステップＳ７０１で検出した顔以外の第二の顔を検出する。顔検出の方法は、ステップＳ７０１と同様の方法を用いるとする。
【００５１】
ステップＳ７０３では、距離情報取得部２０３が、ステップＳ７０１で検出した第一の顔及びステップＳ７０２で検出した第二の顔の、カメラからの距離を取得する。距離情報としては、例えば、測距センサが出力する撮影画素の画素単位に対応する距離情報を用いるとする。
【００５２】
ステップＳ７０４では、仮想光源情報設定部２０４が、ステップＳ７０１で検出した第一の顔に対してリライティング処理を行う際の仮想光源の情報を仮設定する。
【００５３】
ステップＳ７０５では、仮想光源情報設定部２０４が、ステップＳ７０３で取得した距離情報に基づいて、ステップＳ７０１で検出した第一の顔とステップＳ７０４で仮設定した仮想光源との間にステップＳ７０２で検出した第二の顔が存在するか否かを判断する。検出した第一の顔と仮設定した仮想光源との間に第二の顔が存在すると判断した場合はステップＳ７０６に進み、存在しないと判断した場合は、ステップＳ７０７に進む。この処理では、例えばレイトレーシング法を用いるとする。
【００５４】
ステップＳ７０６では、仮想光源情報設定部２０４が、ステップＳ７０１で検出した第一の顔に対して、ステップＳ７０２で検出した第二の顔に遮られずに仮想光源からの光が照射されるようにステップＳ７０４で仮設定した仮想光源情報の再設定を行う。
【００５５】
ステップＳ７０７では、リライティング処理部２０５が、ステップＳ７０４もしくはＳ７０６で設定した仮想光源情報に基づいて、ステップＳ７０１で検出した第一の顔に対して、リライティング処理を行う。リライティング処理の方法については、例えば特開２０１０−１３５９９６で公開されている公知の技術を用いるとする。
【００５６】
ステップＳ７０８では、リライティング処理部２０５が、ステップＳ７０４もしくはＳ７０６で設定した仮想光源情報に基づいて、ステップＳ７０２で検出した第二の顔に対して、リライティング処理を行う。リライティング処理の方法については、ステップＳ７０８と同様の方法を用いるとする。
【００５７】
以上、本実施例における処理の概要について説明した。
【００５８】
ステップＳ７０１〜ステップＳ７０７の処理については、実施例１と同様の処理であるため、詳細の説明は省略する。
【００５９】
次に、ステップＳ７０８の処理について説明する。ステップＳ７０８では、ステップＳ７０２で検出した第二の顔に対してリライティング処理を行う。リライティング処理の主となる対象は、ステップＳ７０１で検出した第一の顔であるが、ステップＳ７０２で検出した第二の顔に対して、設定した仮想光源の影響がないと不自然となるので、第二の顔に対してもリライティング処理を行う。ただし、リライティング処理の主対象ではないので、第一の顔に対するリライティングの強度Ｓ１よりも弱い強度Ｓ２でリライティング処理を行うものとする。例えば、Ｓ２は１未満の係数ｋ２を用いて、式（３）のように決める。
【００６０】
Ｓ２  ＝  ｋ２  ×  Ｓ１                        ・・・（３）
式（３）で決定した強度Ｓ２を用いて、第二の顔に対してリライティング処理を行う。
以上、本実施例における処理について説明した。
【００６１】
なお、第一被写体検出部２０１が検出した第一の顔と第二被写体検出部２０２が検出した第二の顔とが所定の距離Ｔ３以上離れている場合は、第二の顔はリライティング対象ではないと判断し、ステップＳ７０８の処理を行わなくても良い。
【００６２】
なお、第二の実施例では、第二被写体検出部２０２が検出した第二の顔に対してもリライティング処理を行う場合について説明したが、第一の実施例のように第二被写体検出部２０２が顔以外の被写体を検出した場合でも、その被写体に対してリライティング処理を行ってもよい。
【００６３】
なお、第一及び第二の実施例においては、仮想光源情報の再設定を行う際に二次元平面上で仮想光源の位置をずらす場合について説明した。ただし、仮想光源の位置をずらす方向としては、二次元平面に限らず奥行き方向を加味してずらしても良い。例えば、第二被写体検出部２０２が第二の顔を検出する場合を考えると、あらかじめ三次元の顔のモデルデータを所持し、検出した第二の顔に対してモデルフィッティングを行うことで奥行き情報を得ることができる。第二の顔の奥行き情報を用いることで、三次元上で第二の顔に遮られない位置に仮想光源をずらすことが可能になる。
【符号の説明】
【００６４】
１００  デジタルカメラ全体、２００  外部モニタ、１０１  レンズ群、
１０２  シャッター、１０３  撮像部
【図１】
2020010168.tif 000003
【図２】
2020010168.tif 000004
【図３】
2020010168.tif 000005
【図４】
2020010168.tif 000006
【図５】
2020010168.tif 000007
【図６】
2020010168.tif 000008
【図７】
2020010168.tif 000009