以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
画像処理装置の一例であるデジタルカメラを用いて、第1の実施形態を説明する。本実施形態では、画像処理装置は、撮像光学系により形成された被写体像を撮像素子により撮像して得られた位相差検出用の一対の像信号に対してバンドパスフィルタ処理を行う。そして、画像処理装置は、フィルタ処理後の一対の像信号を相対的にシフトさせて一対の像信号の相関度が最大となるシフト量を一対の像信号の位相差として算出し、位相差に基づいて撮像光学系のデフォーカス量を算出する。そして、画像処理装置は、撮影画面全体のデフォーカス量を算出することで、被写体の距離分布に関連する情報としてデフォーカス量分布を取得する。以下の説明において、デフォーカス量分布をデフォーカスマップと呼ぶ場合もある。そして、画像処理装置は、デフォーカスマップから着目する被写体のデフォーカス量の範囲を抜き出すことで着目被写体領域を抽出する。
また、画像処理装置は、元の一対の像信号に対して、着目被写体領域を抽出したときとは異なる周波数特性のバンドパスフィルタ処理を行う。そして、画像処理装置は、フィルタ処理後の像信号に基づいて生成したデフォーカスマップを参照して、着目被写体ではない領域(非着目領域)を抽出する。そして、画像処理装置は、着目被写体領域の抽出結果を、非着目領域の抽出結果を参照して補正する。これにより、着目被写体の領域を高精度で抽出することができる。
図1は、第1の実施形態に係る画像処理装置100の機能構成を示すブロック図である。図1に示すように、画像処理装置100は、システム制御部101と、ROM102と、RAM103とを有している。また、画像処理装置100は、光学系104と、撮像部105と、A/D変換部106と、画像処理部107と、記録媒体108と、ユーザ操作部109と、表示部110と、バス111とを有している。システム制御部101、ROM102、RAM103、撮像部105、A/D変換部106、画像処理部107、記録媒体108、ユーザ操作部109、及び表示部110は、それぞれバス111に接続されている。
システム制御部101は、画像処理装置100全体を制御するものであり、例えばCPUである。システム制御部101は、画像処理装置100が備える各ブロックの制御プログラムをROM102より読み出し、RAM103に展開して実行することにより画像処理装置100が備える各ブロックの動作を制御する。
ROM102は、書き換え可能な不揮発性メモリであり、例えばフラッシュROM等が用いられている。ROM102は、画像処理装置100が備える各ブロックの制御プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。
RAM103は、書き換え可能な揮発性メモリであり、画像処理装置100が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。システム制御部101及び画像処理部107は、RAM103をワークメモリとして使用する。
光学系104は、被写体像を撮像部105に結像する。光学系104には、例えば、固定レンズ、焦点距離を変更する変倍レンズ、焦点調節を行うフォーカスレンズ等が含まれている。光学系104には絞りも含まれており、絞りにより光学系の開口径を調節することで撮影時の光量調節を行う。
撮像部105は、例えばCCDイメージセンサやCMOSイメージセンサ等の撮像素子を含む。撮像部105は、光学系104により撮像素子に結像された光学像を光電変換してアナログ画像信号を得る。撮像部105は、得られたアナログ画像信号をA/D変換部106に出力する。
A/D変換部106は、入力されたアナログ画像信号にA/D変換処理を適用してデジタル画像データを得る。A/D変換部106は、得られたデジタル画像データをRAM103に出力して記憶させる。
画像処理部107は、RAM103に記憶されている画像データに対して画像処理を行う。例えば、画像処理部107は、ホワイトバランス調整、色補間、縮小/拡大等の処理を行う。また、画像処理部107は、バンドパスフィルタ処理、デフォーカスマップの生成、着目被写体領域の抽出及び補正、ぼかし処理等の、様々な画像処理を行う。画像処理部107は、画像処理後の画像を記録媒体108に記録する。
記録媒体108は、例えば、画像処理装置100に対して着脱可能なメモリカード等である。記録媒体108には、RAM103に記憶されている画像処理部107で処理された画像や、A/D変換部106でA/D変換された画像等が、記録画像として記録される。
ユーザ操作部109は、ユーザからの指示を受け付ける操作部である。表示部110は、LCD等の表示器上に、撮像部105で撮像された画像を表示するように構成される。また、表示部110は、ユーザ操作を受け付ける機能も有していて、ユーザは、例えば表示部110をタッチすることで表示部110に写っている被写体の中から着目被写体を指定することができる。
バス111は、画像処理装置100の各ブロックを接続する。各ブロックは、バス111を介して信号のやり取りを行う。
図2(a)は、図1の撮像部105の画素の配列構成を示す図である。図2(a)に示すように、撮像部105では、複数の画素200が二次元的に規則的に配列されている。具体的には、複数の画素200は、例えば二次元格子状に配列されている。なお、画素200の配列構成は、格子状の配列構成に限定されるものではなく、他の配列構成を採用することもできる。
図2(b)は、画素200を拡大して示す図である。図2(b)に示すように、各画素200は、マイクロレンズ201と、一対の光電変換部である瞳分割画素202A、203Bを有している。瞳分割画素202A、203Bは、互いに同一の平面形状を有しており、それぞれy軸方向を長手方向とする長方形状の平面形状を有している。各画素200において、瞳分割画素202A、203Bは、マイクロレンズ201のy軸方向に沿った垂直二等分線を対称軸として、線対称に配置されている。なお、瞳分割画素202A、203Bの平面形状は、これに限定されるものではなく、他の平面形状を採ることができる。また、瞳分割画素202A、203Bの配置の態様も、これに限定されるものではなく、他の配置の態様を採ることができる。
本実施形態においては、二次元的に規則的に配列された瞳分割画素202A、203Bから、視差画像としてそれぞれA像、B像が出力されるものとする。撮像部105を図2(a)及び図2(b)に示すように構成することで、光学系104の瞳の異なる領域を通過する一対の光束を一対の光学像として結像させて、それらをA像、B像として出力することができる。画像処理部107は、このA像、B像を参照して、後述する位相差検出を行い、デフォーカスマップを生成する。
なお、A像、B像の取得方法は、上記に限られず、種々の方法を採ることができる。例えば、空間的に間隔をあけて設置した複数台のカメラ等の撮像装置により取得された互いに視差のついた画像をA像、B像としてもよい。また、複数の光学系と撮像部とを有する1台のカメラ等の撮像装置により取得された視差画像をそれぞれA像、B像としてもよい。
図3は、第1の実施形態に係る画像処理装置100が備える画像処理部107の具体的な構成の一例を示すブロック図である。図3に示すように、画像処理部107は、フィルタ処理部300と、デフォーカスマップ生成部301と、被写体領域抽出部302と、抽出領域補正部303と、ぼかし処理部304とを有している。
以下、図4を参照して、画像処理部107の処理内容を含むシステム制御部101の動作について説明する。図4は、第1の実施形態に係る画像処理のフローチャートである。本フローチャートの各ステップの処理は、システム制御部101が制御プログラムに従って画像処理装置100の各部を制御することにより実現される。
まず、S400で、システム制御部101は、撮像部105を用いて被写体を撮像する。これにより、画像処理部107は、一対の視差画像(相互に視差を持つ複数の視差画像)であるA像及びB像を取得する。なお、予めA像及びB像を記録媒体108に記録しておき、それら予め記録されたA像及びB像を画像処理部107が読み出して取得する構成としてもよい。また、画像処理部107は、A像とB像を加算して静止画記録用の画像(撮像画像)として記録媒体108に記録してもよい。
図5を参照して、静止画記録用の画像を図5に示す。図5は、撮影したA像及びB像を加算した画像である。手を挙げた状態の合焦している人物500、及び、人物500よりも背景側に存在し、デフォーカスしている木501が写っている。以下の説明において、ユーザは、このシーンで人物500を着目被写体とし、着目被写体領域以外の領域に対してぼかしを付与し、撮影時よりも更に被写界深度の浅い画像を生成しようとしているものとする。
S401で、フィルタ処理部300は、S400で取得したA像及びB像に対して、瞳分割方向(ここでは水平方向とする)に対応するバンドパスフィルタ処理を行う。
図6は、バンドパスフィルタ処理におけるバンドパスフィルタ特性(振幅周波数特性)を示す図である。横軸はサンプリング周波数で正規化された周波数を示し、縦軸はピーク振幅で正規化された振幅を示している。符号600、601は、バンドパスフィルタ特性(以下、単に「フィルタ特性」と呼ぶ)である。フィルタ特性600は、高周波数帯域を通過させるフィルタ特性であり、フィルタ特性601は、低周波数帯域を通過させるフィルタ特性である。フィルタ特性600は、フィルタ特性601に比べて、ピーク周波数が高いことがわかる。S401では、フィルタ処理部300は、フィルタ特性600を持つバンドパスフィルタを選択し、バンドパスフィルタ処理を行うものとする。なお、バンドパスフィルタのフィルタ特性は、上記に限定されるものではない。様々な帯域を制限することができるフィルタ特性を設定できるものとする。
S402で、デフォーカスマップ生成部301は、バンドパスフィルタ処理後のA像及びB像を用いて、被写体の距離分布に関連する情報として、着目画素位置におけるデフォーカス量を計算する。A像及びB像の位相差を検出してデフォーカス量を計算する手法については、例えば特許文献1に開示されている方法を用いることができる。
まず、デフォーカスマップ生成部301は、撮像素子(撮像範囲)の全体を複数の微小ブロックに分割し、A像を構成する画素値データE(1)~E(m)(mは副画素の画素値のデータ数)と、B像を構成する画素値データF(1)~F(m)とを得る。そして、画素値データE(1)~E(m)に対して画素値データF(1)~F(m)を相対的にずらしながら、式(1)により2つの画素値データ間のずらし量kにおける相関量C(k)を演算する。
C(k)=Σ|E(n)―F(n+k)| ・・・(1)
式(1)において、Σ演算はnについて計算される。このΣ演算において、n、n+kの取る範囲は、1~mの範囲に限定される。また、ずらし量kは、整数であり、一対の画像データの検出ピッチを単位とした相対的シフト量である。
図7は、式(1)の演算結果の例を示す図である。図7において、横軸はずらし量kに対応し、縦軸は相関量C(k)に対応する。図7から、A像及びB像の相関度が高いずらし量k(=kj=2)において相関値C(k)が最小になることがわかる。
そして、下記の式(2)~(5)による3点内挿の手法を用い、連続的な相関量に対する最小値C(ks)を与えるずらし量ksを求める。
ks=kj+D/SLOP ・・・(2)
C(ks)=C(kj)-|D| ・・・(3)
D={C(kj-1)-C(kj+1)}/2 ・・・(4)
SLOP=MAX{C(kj+1)-C(kj),C(kj-1)-C(kj)}
・・・(5)
このようにして、一対の画像データの検出ピッチ以下の単位(精度)で最小相関値C(ks)を与えるずらし量ksが推定される。以降の説明においては、推定されたずらし量を推定ずらし量と呼ぶこととする。また、推定ずらし量はA像とB像の視差を表しているので、単に視差と呼ぶこともあるとする。
式(2)で求めた推定ずらし量ksより、被写体像面の予定結像面に対するデフォーカス量DEFを、下記の式(6)に従って求めることができる。
DEF=KX・PY・ks ・・・(6)
式(6)において、PYは検出ピッチ(撮像素子を構成する画素間距離、単位[mm/pixel])であり、KXは一対の瞳を通過する光束の重心の開き角の大きさによって決まる変換係数である。なお、一対の瞳を通過する光束の重心の開き角の大きさは、レンズの絞り開口の大きさ(F値)に応じて変化するため、撮像時の設定の情報に応じて決定されるものとする。
また、デフォーカスマップ生成部301は、前述した微小ブロックごとのデフォーカス量から撮像範囲内のデフォーカス量分布の情報を取得し、デフォーカス量分布の情報から撮像範囲内での被写体距離分布の情報(デフォーカスマップ)を取得する。
なお、デフォーカスマップを含む被写体の距離分布に関連する情報を予め記録媒体108に記録しておき、画像処理部107が読み出して取得する構成としてもよい。
図8は、S402において生成したデフォーカスマップの例を示す図である。図8では、デフォーカスマップを8bitのグレースケールで表現するため、式(6)にて算出したデフォーカス量に対し、デフォーカス量がゼロとなる値が128になるようにオフセットが加算され、距離が手前ほど白く(画素値が高く)なっている。そのため、合焦している人物500は灰色になっている。なお、デフォーカスマップを、反対に手前ほど黒く(画素値が低く)なる構成としてもかまわない。
図8に示すように、人物500よりも背景側に存在する木501において、デフォーカス量が周囲と異なる複数の画素800が点在している。これは、高周波数帯域を通過させるフィルタでは、合焦領域における急峻に変化する模様を高精度で捉えることができるが、デフォーカス領域におけるぼけた模様の変化は高精度で検出できないことが原因である。以降、説明の都合上、デフォーカス量が周囲と異なる複数の画素800をエラー画素と呼ぶこととする。
再び図4を参照すると、S403で、被写体領域抽出部302は、S402で得たデフォーカスマップを参照して、着目被写体が存在するデフォーカス量を抜き出すことで、着目被写体領域を抽出する。デフォーカスマップを参照して被写体領域を抽出する方法は、例えば特許文献1に開示されている方法を用いる。
具体的には、被写体領域抽出部302は、得られたデフォーカスマップから図9に示すようなヒストグラムを取得する。図9は、図8のデフォーカスマップに対するヒストグラムを表している。ヒストグラムグループ900は、人物500のデフォーカス量に対するヒストグラムの山を、ヒストグラムグループ901は、木501のデフォーカス量に対するヒストグラムの山を表している。なお、ヒストグラムグループ900には、木501におけるエラー画素も含まれているものとする。そして、特許文献1と同様に、被写体領域抽出部302は、ヒストグラムに基づいて頻度が所定の閾値(図9の頻度閾値902)よりも少ないデフォーカス量を境界として、デフォーカス量閾値d1及びd2を設定する。被写体領域抽出部302は、d1とd2の範囲のデフォーカス量を有する画素をグループとしてまとめ、グループごとに領域を抜き出す。
なお、d1及びd2の設定に際して、被写体領域抽出部302は、合焦を示すデフォーカス量の値である128を含むヒストグラムグループ900を、着目被写体(即ち、人物500)に対応するヒストグラムグループとして判定する。そして、被写体領域抽出部302は、人物500に対応するヒストグラムグループ900において、頻度が頻度閾値902を超えるデフォーカス量範囲の下限及び上限を、それぞれデフォーカス量閾値d1及びd2とする。
図10は、図8のデフォーカスマップから、図9のデフォーカス量閾値d1及びd2に対応する範囲(合焦被写体の距離範囲)のデフォーカス量のみを抜き出した結果である。図10では、抜き出した領域を白色(画素値255)、それ以外の領域を黒色(画素値0)の2値で表現している。図10より、ユーザが着目している人物500については、人物500と同じ距離範囲に存在する領域を抽出することができていることがわかる。
このように、デフォーカスマップのヒストグラムは、輝度や色のヒストグラムとは異なり同一の被写体が1つの山としてかたまる傾向があり、同一被写体を漏れなく抽出することができる。そのため、図5において人物500が挙げている手や体の領域まで一緒に抽出することができる。
しかし、図10に示すように、抜き出した領域には、ユーザが着目している人物500の距離範囲よりも離れた距離の被写体(木501)の一部まで一緒に抽出されている。従って、図10に示す抽出結果に基づいて画像にぼかし処理を施すと、木501にぼかしのムラが発生してしまう。
そこで、本実施形態では以下に詳述するように、画像処理装置100は、S400で取得したA像及びB像に対して、着目被写体領域を抽出したとき(即ち、S401)とは異なる周波数特性のバンドパスフィルタ処理を行う。そして、画像処理装置100は、フィルタ処理後のA像及びB像に基づいて生成したデフォーカスマップを参照して、非着目領域を抽出する。そして、画像処理装置100は、着目被写体領域の抽出結果を非着目領域の抽出結果を参照して補正する。
なお、本実施形態においては、図9において合焦を示すデフォーカス量の値である128を含むヒストグラムグループ900に属する被写体(即ち、合焦被写体である人物500)が、着目被写体として指定されるものとするが、着目被写体の指定方法はこれに限定されない。ヒストグラムグループ901に属する被写体(即ち、木501)を着目被写体として指定することも可能であり、この場合、デフォーカス量閾値d1及びd2は、ヒストグラムグループ901に基づいて設定される。
再び図4を参照すると、S404で、フィルタ処理部300は、S400で取得したA像及びB像に対して、S401とは異なるフィルタ特性を持つバンドパスフィルタを用いてフィルタ処理を行う。つまり、フィルタ処理部300は、低周波数帯域を通過させるフィルタ特性601を持つバンドパスフィルタを用いる(S401のフィルタ処理よりも通過帯域の低いフィルタ処理を行う)。
S405で、デフォーカスマップ生成部301は、S402と同じ方法でデフォーカスマップを生成する。図11(a)は、S405において生成したデフォーカスマップの例を示す図である。デフォーカスマップの表現方法は図8と同じである。
図11(a)では、図8の場合よりも低周波数帯域を通過させるバンドパスフィルタ処理が行われたので、デフォーカス領域での模様の変化を検出できるようになり、エラー画素は発生していない。しかし、フィルタ処理後の像信号が水平方向に広がるため、デフォーカスマップにおける被写体の輪郭が、静止画記録用の画像(図5)における被写体の輪郭に対応する輪郭1100及び輪郭1101よりも外側に膨張していることがわかる。そのため、図11(a)のデフォーカスマップを参照して、S403と同じ方法で着目被写体領域を抽出すると、図11(b)に示すように人物500の境界付近の背景まで一緒に抽出してしまう。この抽出結果を参照して画像にぼかし処理を施す場合、人物500の境界付近の背景をぼかすことができない。
S406で、被写体領域抽出部302は、S405で得たデフォーカスマップを参照して、非着目領域を抽出する。具体的には、被写体領域抽出部302は、S403と同じ方法で、まずは着目被写体領域を抜き出す。その後、被写体領域抽出部302は、白黒の2値の値を反転させることにより、非着目領域を抽出する。
図12は、非着目領域の抽出結果を示す図である。輪郭1200は、静止画記録用の画像(図5)における人物500の輪郭を表している。図12においては、人物500の距離範囲よりも離れた距離の被写体である木501も、背景と同様に非着目領域として抽出されている。
S407で、抽出領域補正部303は、S403で得た着目被写体領域を、S406で得た非着目領域を参照して補正する。具体的には、抽出領域補正部303は、着目被写体領域の画素(図10における白の画素)のうち、非着目領域(図10における白の画素の領域)に含まれる画素を、黒の画素に置換する。
図13は、非着目領域に基づいて補正された着目被写体領域(着目被写体領域と他の領域とを画素値の相違により識別する被写体領域画像)を示す図である。図13の例では、着目被写体領域が白(第1の画素値)で示され、他の領域が黒(第1の画素値よりも小さい第2の画素値)で示されている。補正後の着目被写体領域においては、ユーザが着目している人物500の距離範囲よりも離れた距離の被写体(木501)が除去されている。また、高周波数帯域を通過させるバンドパスフィルタを施した結果から生成したデフォーカスマップを基に合焦している人物500の領域を抽出しているので、静止画記録用の画像における人物被写体の輪郭を高精度で再現できていることがわかる。このように、S402で生成されたデフォーカスマップにおいて合焦被写体に対応する距離範囲に含まれる領域(図10の白領域)に対応し、かつS405で生成されたデフォーカスマップにおいて合焦被写体に対応する距離範囲に含まれる領域(図11(b)の白領域)に対応する、撮影範囲の領域が、撮影範囲において合焦被写体が存在する被写体領域(図13の白領域)として識別される。
ここで、本実施形態のようにデフォーカスマップからの着目被写体領域及び被着目領域の抽出結果を2値で扱うことで、2値化した画素のうち一方の画素値をもう一方の画素値に置き換えるという簡単な処理で、着目被写体領域の補正を行うことができる。また、2値化により、着目被写体領域に対してメディアンフィルタを施す際に、2値化した画素のうち一方の画素値の数をカウントし、多い方の画素値を出力するだけで、メディアンフィルタの効果が得られる。そのため、多値のデフォーカスマップに対してメディアンフィルタを適用する場合と異なり、参照するすべての画素の画素値を降順又は昇順に並び替える必要がないので、演算にかかる負荷を削減することができる。
S408で、ぼかし処理部304は、図5の静止画記録用の画像における、補正後の着目被写体領域(図13の白の領域)に対応するデータ部分を抽出する。
S409で、静止画記録用の画像における、S408で抽出した領域以外の箇所に対して、公知のローパスフィルタを施すことでぼかし処理を行う。このようにすることで、着目被写体領域以外の領域に対してぼかしを付与し、撮影時よりも被写界深度の浅い画像を生成することができる。
なお、本実施形態において、静止画記録用の画像に対する画像処理は、ぼかし処理に限定されない。例えば、補正された着目被写体領域以外の領域(又は補正された着目被写体領域)に対して、明るさ補正やコントラスト補正を行うことも可能である。このように、着目被写体領域を高精度で抽出することで、さまざまな画像表現を容易に実現することができる。
ここで、補正後の着目被写体領域(図13)における被写体の輪郭を、静止画記録用の画像(図5)における被写体の輪郭に更に近づけるための整形処理について説明する。具体的な整形処理として、特開2017-11652号公報に開示されているバイラテラルフィルタ処理を補正後の着目被写体領域に対して施す。
着目画素位置pのフィルタ結果をJpと記すと、バイラテラルフィルタ処理は下記の式(7)で表される。
Jp=(1/Kp)ΣI1q・f(|p-q|)・g(|I2p-I2q|)
・・・(7)
なお、式(7)中の各記号の意味は以下のとおりである。
q :周辺画素位置
Ω :着目画素位置pを中心とする積算対象領域
Σ :q∈Ω範囲の積算
I1q:周辺画素位置qにおける着目被写体領域の画素値
f(|p-q|):着目画素位置pを中心とするガウシアン関数
I2p :着目画素位置pでの静止画記録用の画像の画素値
I2q :周辺画素位置qでの静止画記録用の画像の画素値
g(|I2p-I2q|):静止画記録用の画像の画素値I2pを中心とするガウシアン関数
Kp :正規化係数であり、f・g重みの積算値
式(7)より、着目画素位置pでの画素値I2pと周辺画素位置qでの画素値I2qとの差が小さい場合(即ち、静止画記録用の画像において着目画素の画素値と周辺画素の画素値が近い場合)、その周辺画素のf・g重み(平滑化の重み)は大きくなる。一般的に、同一の被写体における着目画素とその周辺画素の画素値は近い傾向にある。一方、周辺画素が異なる被写体(背景領域など)であると、着目画素の画素値との乖離が大きい傾向にあるので、式(7)の演算を行うことで、同一被写体の領域抽出結果のみを参照して、画素値を生成する効果がある。そのため、抽出領域補正部303において、補正後の着目被写体領域に対して、上記整形処理を施すことで、形状が複雑であっても画素単位に領域の抽出を行うことができる。
ここで、S405で説明したように、静止画記録用の画像における被写体の輪郭よりも外側に膨張する幅は、バンドパスフィルタのフィルタ特性に応じて変化する。そこで、式(7)における積算対象領域Ω(平滑化処理において着目画素の周辺を参照する範囲)を、S401においてフィルタ処理部300が選択したバンドパスフィルタのフィルタ特性(通過帯域)に応じて設定する構成を採用してもよい。これにより、適した演算量で被写体の輪郭を再現することができる。
或いは、図13の被写体領域画像に対して最小値フィルタ処理を適用する構成を採用してもよい。この場合、最小値フィルタ処理において着目画素の周辺を参照する範囲を、外側に膨張する幅に応じて(即ち、S401においてフィルタ処理部300が選択したバンドパスフィルタのフィルタ特性(通過帯域)に応じて)決定してもよい。これにより、より演算量の少ないフィルタ処理で被写体の輪郭の膨張を補正することができる。
或いは、下で詳しく記述しているユーザが指定した領域か、一般物体検出結果(例えば、顔のサイズ)に応じて、式(7)における積算対象領域Ω、又は最小値フィルタの幅を決める構成としてもよい。そうすることにより、ユーザが着目している被写体において簡易な演算で被写体の輪郭の膨張を補正することができる。
なお、本実施形態において、抽出領域補正部303が、着目被写体領域を非着目領域の画素値を参照して補正した結果を生成し、ぼかし処理部304がその補正後の着目被写体領域以外の領域に対してぼかし処理を行う構成について説明した。しかしながら、補正後の着目被写体領域を生成せずに、静止画記録用の画像における各画素について、着目被写体領域と非着目領域に基づいてぼかし処理を施すか否かを判断する構成を採用してもよい。そうすることにより、補正後の着目被写体領域という中間画像信号を生成する負荷を削減することができる。
また、上の説明では、合焦を示すデフォーカス量の値である128を含むヒストグラムグループに属する被写体を着目被写体としたが、本実施形態はこれに限定されるものではない。例えば、画像処理装置100のユーザ操作部109と表示部110を用いて、ユーザが検出したい物体領域を指定する構成としてもよい。そうすることで、画像処理装置100は、ユーザが着目している被写体をより正確に把握することができる。
或いは、公知の一般物体検出技術を用いて、画面内に写っている一般物体の検知結果を表示し、ユーザが検知結果の中から着目被写体を選択する構成を採用しても構わない。なお、公知の一般物体検出では、人物の顔や、人物の体、乗用車、ペットの犬、植物なども検出することができ、非人物であっても抽出対象とすることができる。そのため、ユーザは好みの被写体を着目被写体として選択することができる。
いずれの構成についても、画素単位で指定した被写体の輪郭を抽出するほどの精度はなく、被写体が存在する大まかな位置を指定するものであるとする。その際、画像処理装置100は、ユーザが指定した領域に対し、フィルタ特性601を持つバンドパスフィルタでフィルタ処理を行い、デフォーカス量を事前に算出する。画像処理装置100は、そのデフォーカス量の値に応じて、S401で選択するバンドパスフィルタのフィルタ特性を決める構成とするのがよい。具体的には、事前に算出したデフォーカス量が合焦を示すデフォーカス量の値である128から離れていた場合、ユーザが選択した被写体はデフォーカスしてぼけているので、画像処理装置100は、フィルタ特性601を選択する。そうすることで、着目被写体領域にエラー画素が発生することなく、着目被写体領域の距離範囲を高精度で抽出することができる。
また、S400において被写体を撮像する際の撮像条件によっても、S401及びS404で選択するバンドパスフィルタのフィルタ特性を変更する構成を採用してもよい。
ここで言う撮像条件の一例として、ISO感度(撮像感度)が挙げられる。ISO感度が高くなると得られる画像のS/N比が低下するため、バンドパスフィルタ後に出力される信号がノイズに埋もれやすく、エラー画素が発生しやすい。そこで、S404において、ISO感度が高くなるほど、ピーク周波数がより低い周波数帯域を通過させるフィルタ特性(通過帯域がより低いフィルタ特性)を選択することで、エラー画素の発生を抑制するようにする。例えば、A像及びB像の撮像感度が第1の撮像感度の場合、第1の通過帯域を持つフィルタ特性が選択され、A像及びB像の撮像感度が第1の撮像感度よりも高い第2の撮像感度の場合、第1の通過帯域よりも低い第2の通過帯域を持つフィルタ特性が選択される。
撮像条件の他の例として、被写界深度が挙げられる。被写界深度が深い場合、非着目領域である背景被写体も深度内に入ってくるので、S401において高周波数帯域を通過させるフィルタ特性(通過帯域が高いフィルタ特性)を選択するのがよい。例えば、A像及びB像の被写界深度が第1の被写界深度の場合、第3の通過帯域を持つフィルタ特性が選択され、A像及びB像の被写界深度が第1の被写界深度よりも深い第2の被写界深度の場合、第3の通過帯域よりも高い第4の通過帯域を持つフィルタ特性が選択される。そのようにすることで、非着目領域も高精度に推定ずらし量を算出することができ、着目被写体領域を高精度で抽出することができる。
また、本実施形態においては、画像処理装置100において補正された着目被写体領域を参考に静止画記録用の画像に対してぼかし処理を施したが、本実施形態はこれに限定されるものではない。例えば、図1の記録媒体108に補正された着目被写体領域を記録しておき、外部の画像処理装置において、補正された着目被写体領域をもとに画像データに対してぼかし処理などの画像処理を施す構成としてもよい。
また、本実施形態においては、視差のついたA像及びB像からデフォーカスマップを生成した場合を例に説明したが、本実施形態はこれに限定されるものではない。例えば、デフォーカスマップの生成方法として、ピントや絞り値が異なる2枚の画像の相関からデフォーカスマップを取得するDFD(Depth From Defocus)方式を用いる構成としてもよい。DFD方式においても、合焦領域と非合焦領域の変化を高精度で捉えるため、バンドパスフィルタを施すことが有効である。更に、DFD方式においても、合焦領域と非合焦領域とでバンドパスフィルタのフィルタ特性を変えて抽出した非着目領域を参照し、着目被写体領域を補正することで、着目被写体領域を高精度で抽出することができる。
また、本実施形態において、被写体の距離分布に関連する情報としてデフォーカス分布を用いたが、被写体の距離分布に関連する情報はデフォーカス分布に限定されるものではない。例えば、被写体の距離分布に関連する情報として、式(2)で求めたずらし量xの分布(視差分布)を用いてもよい。或いは、光学系の情報からデフォーカス分布を撮像装置(画像処理装置100)から被写体までの実際の距離を表す実距離の分布に換算する構成を採用し、被写体の距離分布に関連する情報として実距離を用いてもよい。また、これまでに説明した被写体の距離分布に関連する情報を、「距離情報分布」と総称する。ずらし量x(視差)の分布を使用する場合、画像処理装置100が式(6)のKX・PYを保持する必要がないので、ROM102に記録しておく情報量を減らすことができる。また、撮像装置(画像処理装置100)から被写体までの実際の距離を表す実距離の分布を使用する場合、ユーザが認識しやすい数値を表示することができるようになる。
なお、上では、画像処理装置100がデジタルカメラである場合を例に説明を行ったが、画像処理装置100は例えば画像処理部107を備えるパーソナルコンピュータであってもよい。
以上説明したように、第1の実施形態によれば、画像処理装置100は、フィルタ特性600を持つフィルタ処理が適用されたA像及びB像に基づいてデフォーカスマップを生成する(S402)。また、画像処理装置100は、フィルタ特性600よりも通過帯域の低いフィルタ特性601を持つフィルタ処理が適用されたA像及びB像に基づいてデフォーカスマップを生成する(S405)。そして、画像処理装置100は、S402で生成されたデフォーカスマップにおいて着目被写体(例えば、合焦被写体)に対応する距離範囲に含まれる領域(図10の白領域)に対応し、かつS405で生成されたデフォーカスマップにおいて着目被写体に対応する距離範囲に含まれる領域(図11(b)の白領域)に対応する、撮影範囲の領域を、撮影範囲において着目被写体が存在する被写体領域(図13の白領域)として識別する。これにより、被写体領域の検出精度を向上させることが可能になる。
[第2の実施形態]
印象的な画像表現の1つとして、注目したい被写体の距離範囲にのみ合焦し、その他の領域がボケた状態となっている、所謂、被写界深度の浅い表現がある。特許文献1の技術でも、所望の被写体の含まれる領域のデフォーカス範囲以外の画素に対してボケ付加処理を行うことで、同様の表現の画像を生成することができる。
しかしながら、特許文献1のようにデフォーカス量で画素を特定して処理を行う方式では、被写体の分布によっては、所望の表現の画像が生成されない可能性がある。例えば、グループ写真のように略同等の距離範囲に複数の所望の被写体が存在し、更に所望の被写体とは異なる被写体が、所望の被写体の被写体距離を含む、奥行き方向に拡がった距離範囲に配置されているような分布を考える。この場合、上述の画像処理を行った場合に、特許文献1の方式では所望の被写体を分離して特定することができない。即ち、例えば被写界深度の浅い表現の画像を生成しようとした場合に、所望の被写体だけでなく、所望の被写体とは異なる被写体も含んだ距離範囲も合焦した状態で画像に現れることになり、意図した表現が実現されない可能性がある。
第2の実施形態はこのような状況に鑑みてなされたものであり、デフォーカスマップなどの距離情報分布において、所定の距離関係を満たす所定の種類の2以上の被写体が存在する領域を検出する処理における、検出精度を向上させる技術を提供する。
第2の実施形態では、画像処理装置の一例としての、撮影範囲の被写体の奥行き方向(深度方向)の距離情報の分布を示す情報(距離情報分布)を取得可能なデジタルカメラを例に説明を行う。しかし、第2の実施形態は、撮像画像と、撮像画像の撮影範囲に係る距離情報分布とを取得することが可能な任意の機器に適用可能である。
第2の実施形態において、「距離情報分布」とは、撮像画像の各画素の像のデフォーカス量分布(デフォーカス分布)を示す2次元情報であるものとし、以下では「デフォーカスマップ」として言及する。しかしながら、距離情報分布は、上述したように撮影範囲の被写体の奥行き方向の距離情報の分布と対応する情報であればよい。例えば、距離情報分布は、各画素の被写体距離を示す深度マップ(撮像装置(画像処理装置100)から被写体までの実際の距離を表す実距離の分布)であってもよいし、デフォーカス量の導出に用いられた像ずれ量を示す2次元情報(視差分布)であってもよい。即ち、距離情報分布は、奥行き方向の距離情報の分布に応じた変化を示す情報であれば、これらに限られず該当する。
第2の実施形態において、画像処理装置100及び撮像部105の基本的な構成は第1の実施形態と同様である(図1及び図2参照)。
図14は、第2の実施形態に係る画像処理部107の構成を示すブロック図である。画像処理部107は、撮像を行った撮像範囲(撮影範囲)について、デフォーカス量の分布を示すデフォーカスマップ(距離情報分布)を生成する生成部1400と、撮像範囲中の被写体を検出する被写体検出部1401とを含む。また、画像処理部107は、被写体検出部1401が検出した被写体について、解析用の領域を設定する領域設定部1402と、設定された領域についてのデフォーカス量の頻度マップ(ヒストグラム)を構成する構成部1403とを含む。また、画像処理部107は、被写体の領域を抽出する領域抽出部1404と、構成部1403が構成した被写体ごとの頻度マップを基に被写体どうしの距離関係を判定する被写体グループ検出部1405とを含む。また、画像処理部107は、判定結果に応じて領域抽出部1404の抽出結果を補正する合成部1406と、撮像画像を所望の画像表現を示す態様にするための画像処理を行う効果処理部1407とを含む。
生成部1400は、撮像範囲の奥行き方向における被写体の距離分布を示す情報として、撮像画像に含まれる各被写体の像のデフォーカス量を含む、撮像画像と対応する画素構造を有したデフォーカスマップを生成する。デフォーカス量は、例えば以下のように、取得した視差を有する画像群(A像及びB像)に基づいて導出することができる。
デフォーカス量の導出は、例えば図17に示されるように画像1700(A像及びB像)を、破線で示される微小ブロック1701に分割する処理を含む。微小ブロック1701は、例えば対象であるA像の各画素を着目画素とした場合に、着目画素を中心とする予め定められたサイズの領域に対して設定されるものであってよい。
なお、以下の説明では微小ブロック1701は、着目画素を中心とするm×m画素の正方領域として設定されるものとして説明するが、微小ブロック1701の形状やサイズは特に限定されない。また、微小ブロック1701は、着目画素ごとに設定されるものであり、異なる着目画素間で微小ブロック1701の重複が生じてもよい。また、生成部1400は、位相差を検出するA像とB像に対して、予めバンドパスフィルタをかける処理を適用した後に、デフォーカス量の導出を行うものとしてもよい。
例えばA像及びB像の各画素について微小ブロック1701が設定されると、生成部1400は、両画像間で画素(着目画素)ごとに相関演算処理を行い、着目画素に対応する微小ブロック1701に含まれる像のずれ量(像ずれ量)を導出する。A像とB像とで同一位置の着目画素について定められた(一対の)微小ブロック1701のデータ数(画素数)がmである場合、微小ブロック1701の画素データをそれぞれE(1)~E(m)、F(1)~F(m)として表現する。
この場合、(データの)ずらし量をk(整数)[pixel]とすると、相関量C(k)は、第1の実施形態で説明した式(1)に従って導出することができる。また、第1の実施形態において図7及び式(2)~式(5)を参照して説明した方法と同様の方法により、ずらし量ks(推定ずらし量)を取得することができる。更に、第1の実施形態において式(6)を参照して説明した方法と同様の方法により、デフォーカス量DEFを取得することができる。
このように、生成部1400は、着目画素位置を1画素ずつずらしながら繰り返し計算することで、撮像画像の各画素における被写体のデフォーカス量を導出することができる。生成部1400は、各画素のデフォーカス量を導出すると、これを画素値とする、撮像画像と同一の構造の2次元情報であるデフォーカスマップを、距離情報分布として生成する。即ち、デフォーカス量は、撮像画像において合焦している被写体距離からの奥行き方向の位置のずれ量に応じて変化する値であるため、デフォーカスマップは、撮像時の被写体の奥行き方向の距離分布と等価な情報である。
以下、本実施形態の画像処理装置100において、撮像画像とデフォーカスマップとに基づいて、略同等の距離範囲に存在する複数の被写体の距離範囲のみに合焦した、撮像時よりも被写界深度の浅い画像を生成する画像加工処理について説明する。
図15は、第2の実施形態に係る画像加工処理のフローチャートである。本フローチャートの各ステップの処理は、システム制御部101が制御プログラムに従って画像処理装置100の各部を制御することにより実現される。画像加工処理は、例えば、画像処理装置100が撮像後に表現を変更した画像を生成する撮影モードに設定され、撮像指示に係る操作入力が検出された際に開始される。
S1501で、撮像部105はシステム制御部101の制御の下、被写体の撮像を行う。撮像によりアナログ画像信号が得られると、A/D変換部106はこれをA/D変換し、RAM103に格納する。画像加工処理においてRAM103に格納される画像データは、瞳分割画素202Aにより撮像されたA像及び瞳分割画素203Bにより撮像されたB像、並びにA像とB像とを加算することで構成された撮像画像(瞳分割していない状態に対応する画像)である。
以下の説明では、撮像範囲において被写体は図16に示されるように分布しているものとする。図示されるように、撮像範囲には、手を挙げた状態の人物被写体1600、及び、画像処理装置100からの距離が人物被写体1600と略同等の位置に存在する人物被写体1602が含まれる。また、撮像範囲には、人物被写体1600及び人物被写体1602よりも画像処理装置100に近い位置から、人物被写体1600及び人物被写体1602よりも遠い位置にかけて延びた生垣1601も含まれる。
なお、人物被写体1602は、カメラに正対して立っておらず、斜め方向に角度がついた状態で写っているものとする。また、撮像画像は、人物被写体1600に合焦する撮像設定で撮像されているものとする。ここで説明する画像加工処理では、後述のステップにおいて人物被写体1600と人物被写体1602とが検出されるものとする。そして、人物被写体1600と人物被写体1602とが存在する距離範囲にのみ合焦し、他の距離範囲の被写体についてはぼかしを付与することで、被写界深度の浅い画像を生成するものとして説明を行う。また、簡単のため、奥行き方向の距離分布は、撮像範囲に分布する地面については除外し、人物被写体1600、生垣1601、及び人物被写体1602についてのみ導出されるものとして説明を行う。
S1502で、生成部1400はシステム制御部101の制御の下、S1501においてRAM103に格納されたA像及びB像に基づき、撮像画像と対応するデフォーカスマップを生成する。
図18は、S1502において生成されるデフォーカスマップの概念図である。ここでは、画素値であるデフォーカス量をグレースケール値に変換することによりデフォーカスマップを可視化して例示する。説明をわかりやすくするため、図18の例では、被写体距離が近い画素ほど白に近い値(画素値が高い)を有し、遠離するほど黒に近い値(画素値が低い)となるように変換されているものとする。
ところで、上述の分布で人物被写体1600、生垣1601、及び人物被写体1602が配置されている場合、特許文献1の技術のようにデフォーカスマップのデフォーカス量に基づくヒストグラム(頻度分布/度数分布)を構成した場合、図19のような分布が得られる。図19は、撮像画像の全域についてのデフォーカス量に基づいて構成したヒストグラムを示す図であり、階調数はM階調である。図19におけるヒストグラムの山は、人物被写体1600、生垣1601、及び人物被写体1602に係る画素群におけるデフォーカス量の分布を示している。
ここで、特許文献1に記載のように所定の閾値1900を上回る頻度を示すd1~d2のデフォーカス範囲の画素を抽出した場合を考える。この場合、図20に示されるように、人物被写体1600、生垣1601、及び人物被写体1602に係る領域(図中の白領域)が抽出されるだけである。従って、このような抽出結果に基づいてぼかし処理を行った場合、人物被写体1600、及び略同等の距離範囲に存在する人物被写体1602の距離範囲にのみ合焦させる、被写界深度の浅い表現の画像を得ることはできない。換言すれば、生垣1601が、奥行き方向に広く延びた形状をしており、人物被写体1600及び人物被写体1602の被写体距離の範囲を含んで配置されている態様において特許文献1の技術を用いる場合、人物被写体1600及び人物被写体1602の距離範囲のみを分離して抽出することができない。それゆえ、抽出された領域外についてぼかし処理を適用したとしても、生垣1601の奥行き方向の距離範囲について合焦してしまうため、被写界深度を十分に狭めることができず、所望の表現の画像とならない。
このため、本実施形態では、デフォーカス量のヒストグラムに基づいて抽出するデフォーカス量の値範囲を特定する際に、撮像画像の全域についてのヒストグラムではなく、検出した被写体の領域に基づいて、検出した被写体ごとにヒストグラムを構成する。また、検出した被写体が複数であるので、被写体どうしの距離関係に基づいて被写体領域の抽出結果に補正を施す。以下、詳細について更に説明する。
S1503で、被写体検出部1401はシステム制御部101の制御の下、撮像画像中に含まれる所定の種類の被写体を検出する処理を行う。本実施形態では、人物被写体1600と人物被写体1602が検出されるものとする。具体的には、被写体検出部1401は、撮像画像に含まれる人物の顔領域を検出し、顔領域の位置及びサイズ(FACE_SIZE_X, FACE_SIZE_Y)の情報を取得する。
なお、本実施形態では、被写体検出部1401は所定の種類の被写体として人物の顔領域を検出するものとして説明するが、本実施形態はこれに限られるものではない。例えば人物の胴体、乗用車、ペット、植物等が検出対象として設定されるものであってもよい。
また、本実施形態では、被写体検出部1401が、予め定められた種類の被写体が撮像画像に含まれるか否かを検出し、検出結果に基づいて被写体を抽出するものとして説明するが、本実施形態はこれに限られるものではない。即ち、撮像画像中から抽出する被写体を指定する方法は、画像解析に基づくものである必要はなく、例えばユーザによる被写体の選択操作に基づいて設定されるものであってもよいし、撮像画像中の特定の領域について設定されるものとして定められていてもよい。
S1504で、領域設定部1402はシステム制御部101の制御の下、S1503における被写体検出部1401の検出結果に基づいて、撮像画像に対応するデフォーカスマップ中のヒストグラムを構成する解析領域を設定する。以降の説明では、人物被写体1600に対する説明を行うが、人物被写体1602に対しても同様の処理が行われる。
本実施形態では、人物の顔領域が被写体検出部1401により検出されるため、領域設定部1402は、例えば図21に示されるように、顔領域2100のサイズに対して相対的に定められた解析領域2102を、ヒストグラムを構成する解析領域として設定する。図21の例では、解析領域2102は、人物被写体1600の顔領域2100のサイズ(FACE_SIZE_X, FACE_SIZE_Y)に対して、予め設定した拡大率(MAG_X, MAG_Y)を乗じたサイズとなっている。解析領域2102の配置位置は、顔領域2100の上端から、顔領域2100のサイズに応じたマージン2101(FACE_MARGIN)分だけY軸方向に移動した位置を上端とするように決定される。
なお、本実施形態では人物の顔領域を検出するため、顔領域2100と解析領域2102を図21のような態様で設定するものとして説明するが、ヒストグラムを構成する解析領域の設定は、これに限られるものではない。例えば、人物の胴体も検出する態様においては、人体の検出結果に基づいて、被写体により合致した領域を設定することができる。
また、ヒストグラムを構成する解析領域は、検出する被写体の種類に応じて動的にサイズが変更され、設定されるものであってもよい。ここで、図示されるように解析領域2102は、厳密に被写体の輪郭に合致するよう設定される必要はない。
S1505で、構成部1403はシステム制御部101の制御の下、S1504において設定された解析領域2102において、デフォーカスマップに基づくヒストグラムを構成する。S1505において生成されるヒストグラムは、図21で示したように、人物被写体1600について設定された解析領域2102に含まれる画素のみで構成されるため、例えば図22に示すように構成される。換言すれば、S1505によれば、単純にデフォーカスマップの全域についてヒストグラムを生成する場合よりも、より人物被写体1600に合わせた領域でヒストグラムを構成できる。このため、人物被写体1600と共通する被写体距離に存在する他の被写体が存在していても、他の被写体の距離範囲に依らず、人物被写体1600に係る画素が分布するデフォーカス量の範囲を取得することができる。
S1506で、システム制御部101は、解析領域2102についてのデフォーカス量のヒストグラムに基づいて、閾値2200を上回る頻度(度数)を持つデフォーカス量の範囲(最小デフォーカス量d1及び最大デフォーカス量d2)を特定する。システム制御部101は、特定したデフォーカス量の範囲の情報を、RAM103に格納する。
なお、本実施形態では被写体の存在するデフォーカス量の範囲をヒストグラムに基づいて決定したが、これに限られるものではない。例えば、S1504で設定した解析領域におけるデフォーカス量の最大値と最小値を被写体の存在するデフォーカス量の範囲とすることもできる。このように構成することで、ヒストグラムを構成する際の画素値の頻度の算出処理にかかる負荷を軽減することができる。
S1507で、領域抽出部1404はシステム制御部101の制御の下、デフォーカスマップの全域から、S1506において特定した範囲に含まれるデフォーカス量を示す画素(領域)を抽出する。このようにして、人物被写体1600の顔領域2100に合わせて設定された解析領域2102に基づいて特定したデフォーカス量の範囲に含まれる画素を抽出すると、図23(a)の白領域が抽出される。図示されるように、解析領域2102に基づいて特定したデフォーカス量の範囲に含まれる画素のみを抽出すると、人物被写体1600、生垣1601、及び人物被写体1602のうちの、この範囲に含まれる位置の像のみが抽出される。
本実施形態の画像処理装置100は、輝度情報や色情報のヒストグラムとは異なり、デフォーカス量に係るヒストグラムに基づいて被写体領域の抽出を行うため、1つの被写体は一定の距離範囲に分布するという傾向を生かした抽出を行うことができる。故に、解析領域2102に基づいてデフォーカス量の範囲を設定したとしても、図23(a)に示されるように、人物被写体1600が挙げている手や胴体の下部など、解析領域2102に含まれない部位も抽出され得る。一方、人物被写体1602に着目すると、半分の領域しか抽出されていない。これは、人物被写体1602がカメラに対して斜めに立っているので、人物被写体1602において奥行方向が変化しており、その距離範囲の一部のみが人物被写体1600の距離範囲に含まれるためである。従って、この時点の抽出結果に基づいて画像加工処理をしたとしても、人物被写体1602の半分はボケた状態になってしまうので、違和感のある画像となってしまう。
このため、本実施形態の画像加工処理では、検出した被写体が複数である場合、被写体どうしの距離関係に基づいて被写体領域の抽出結果に補正を施している。以下にその処理の詳細説明を行う。
なお、デフォーカスマップのヒストグラムの山は、被写界深度が深い撮像条件で撮像画像が取得されている場合ほど、山の裾野が狭くなり、それに伴い各デフォーカス量の頻度の値が大きくなる傾向にある。このため、被写界深度が深い撮像条件の場合には、システム制御部101は、デフォーカス量の範囲抽出に用いる閾値を増加させることにより、より狭い範囲の領域を抽出できるようにしてもよい。換言すると、撮像画像の被写界深度が第1の深度の場合、閾値として第1の値が用いられ、撮像画像の被写界深度が第1の深度よりも深い第2の深度の場合、閾値として第1の値よりも大きい第2の値が用いられる。このように構成することで、例えばF値を絞った状態で手前の人物と背景の風景を一緒に撮像した画像について、手前の人物と背景の風景とをデフォーカス量のヒストグラムから分離しやすくすることができ、手前の人物の領域を高精度に抽出することができる。そのため、背景の風景にのみボケ付加処理を行う場合に、被写界深度を高精度に狭めることができ、ユーザに所望の表現の画像を提供することができる。
S1508で、システム制御部101は、S1503において検出した全ての被写体について、デフォーカス量を示す画素(領域)の抽出が完了したかを判定する。抽出が完了している場合、処理はS1509に進む。抽出が完了していない場合、処理はS1504に戻り、次の被写体について同様にS1504~S1507の処理が行われる。人物被写体1602については、S1507において例えば図23(b)に示す白領域が抽出される。
S1509で、被写体グループ検出部1405はシステム制御部101の制御の下、検出した全ての被写体における距離関係を判定し、所定の距離関係を満たす被写体グループを検出する。以下の説明においては、「所定の距離関係を満たす」ことの一例として、略同等の距離範囲に存在することを用いる。即ち、被写体グループ検出部1405は、略同等の距離範囲に存在する2以上の被写体から成る被写体グループを検出する。距離関係の判定には、S1505で構成したヒストグラムの類似度を用いる。具体的には、第1の被写体のヒストグラムを
P(m)=[P(0)、P(1)、・・・P(M-1)]
とし、第2の被写体のヒストグラムを
Q(m)=[Q(0)、Q(1)、・・・Q(M-1)]
とすると、類似度Dは次の式(8)で計算することができる。
類似度Dは、被写体どうしの距離関係を表していて、類似度Dの値が大きいほど、2つの被写体が存在する距離範囲が近いということ表現している。そこで、予め設定した閾値よりも類似度Dの値が大きければ、略同等の距離範囲に存在する被写体であると判定することができる。換言すると、複数の被写体に対応する複数のヒストグラムの中で、2以上のヒストグラムの相互の類似度が閾値以上の場合、これら2以上のヒストグラムに対応する2以上の被写体が、所定の距離関係を満たす2以上の被写体(被写体グループ)として検出される。
なお、ヒストグラムの類似度Dを算出する方法として式(8)を用いる例を説明したが、ヒストグラムインタセクション等の異なる公知の演算式を用いてもよい。また、以下の説明では、人物被写体1600及び人物被写体1602のヒストグラムの類似度を比較した結果、人物被写体1600及び人物被写体1602は略同等の距離範囲に存在する被写体であるという判定がなされたものとする。
なお、上述の説明では、S1503で検出した被写体の各々で類似度を算出するものとしたが、本実施形態はこれに限られるものではない。例えば、第1の被写体をユーザが選択した被写体に固定し、その被写体とその被写体とは異なる各被写体とが、略同等の距離範囲に存在するかどうかを類似度Dにより判定する構成としてもよい。そのように構成することで、よりユーザの意図を反映した距離範囲に対して画像加工処理を施すことが可能となる。
また、所定の距離関係を満たす被写体グループが複数検出された場合、被写体グループ検出部1405は、複数の被写体グループのうちの注目被写体を含む被写体グループを最終的な被写体グループとして検出する。注目被写体の選択方法は特に限定されないが、例えば、ユーザ操作部109を介するユーザ操作により注目被写体を選択する構成を採用可能である。
S1510で、合成部1406は、システム制御部101の制御の下、S1507で抽出した各被写体に対するデフォーカス量を示す画素(領域)に対して、S1509の判定結果に基づいて合成処理を行う。ここでは、S1509において人物被写体1600及び人物被写体1602が所定の距離関係を満たす(略同等の距離範囲に存在する)被写体グループとして検出されたものとする。この場合、合成部1406は、人物被写体1600の顔領域2100に合わせて設定された解析領域2102に基づいて特定したデフォーカス量の範囲に含まれる画素を抽出した図23(a)と、同様の方法で人物被写体1602について抽出した図23(b)とを比較明合成する。これにより、図24に示す画像が生成される。図24に示されるように、本実施形態で抽出した結果では、人物被写体1600及び人物被写体1602の全領域が途切れることなく抽出され、生垣1601については人物被写体1600及び人物被写体1602の範囲に含まれる位置の像のみが抽出されている。
S1511で、領域抽出部1404はシステム制御部101の制御の下、撮像画像のうちの、S1510において合成された抽出領域に対応する画像を分離する。即ち、領域抽出部1404は、デフォーカスマップに対応する撮像画像から、図24において白色で示した領域の部分画像を分離する。
なお、S1509において被写体グループが検出されなかった場合(いずれの被写体間でも所定の距離関係が満たされなかった場合)、S1510における合成処理は行われない。この場合、S1511において、領域抽出部1404は、注目被写体の抽出領域(例えば、図23(a))に基づいて画像の分離を行う。
また、本実施形態では、人物被写体1600及び人物被写体1602の距離範囲に合焦する表現の画像を生成するものとしたため、この距離範囲に存在する生垣1601の領域についても分離するものとして説明を行った。しかしながら、例えば、S1503で検出した人物に対してのみ画像加工処理を行いたい場合、生垣1601の領域も除外してよい。この場合、領域抽出部1404は、例えば人物被写体1600の距離範囲に対応する領域のうち、解析領域2102の基準となった顔領域2100と連続性のない領域を除外するよう処理する。領域抽出部1404は、同様の処理を人物被写体1602に対しても行う。その後、合成部1406が抽出された領域を比較明合成することで、図25に示すように人物被写体1600及び人物被写体1602の領域のみを分離することができる。
S1512で、効果処理部1407はシステム制御部101の制御の下、撮像画像のうちのS1511において分離されなかった領域に対して、例えばローパスフィルタを適用することでぼかし処理を行う。また、画像処理部107は、ぼかし処理が適用された画像とS1511において分離された画像とを合成することで、撮像時よりも被写界深度の浅い表現の加工画像を生成して記録媒体108に記録させる。
なお、本実施形態では、略同等の距離範囲に存在する複数の被写体の距離範囲にのみ合焦し、その他の距離範囲の被写体はぼけた状態の、被写界深度の浅い表現の画像を生成するものとして説明を行ったが、本実施形態はこれに限られるものではない。即ち、分離した領域又は分離しなかった領域(分離した領域以外の領域)に対して、効果処理部1407が適用する画像処理は、ぼかし処理に限らず、例えば明るさ補正やコントラスト補正等、種々の画像処理を含むものであってよい。換言すれば、本実施形態は、注目被写体の距離範囲内にあるか範囲外であるかに応じて、画像処理の適用を分けることで実現される表現であれば、任意の表現を実現するために適用可能である。
また、本実施形態では、画像処理装置100が撮像面位相差測距方式の測距機能を有する撮像素子を有し、撮像画像とともに視差を有する関係の画像群を取得し、デフォーカスマップを生成するものとして説明を行ったが、本実施形態はこれに限られない。撮像範囲に係るデフォーカスマップは、撮像画像と同時に取得されるものでなく、予め記録媒体108等に記録されているものであってもよい。
また、本実施形態では、デフォーカスマップは視差を有する関係にある画像群に基づいて生成されるものとして説明したが、撮像画像に対応し、撮像範囲における被写体の距離分布を取得可能であれば、この方式に限られるものではない。デフォーカスマップの生成方式は、例えばピントや絞り値が異なる2枚の画像の相関からデフォーカス量を導出するDFD(Depth From Defocus)方式であってもよい。あるいは、被写体の距離分布は、TOF(Time of Flight)方式等の測距センサモジュールから得た距離分布に関連する情報を用いて導出されるものであってもよい。いずれの方式で得た距離分布であっても、距離分布に係るヒストグラムを取得する領域を、注目被写体に係る領域に限定する態様とすることで、同様に本実施形態を実現することができる。
また、本実施形態では、撮像範囲における被写体の距離情報の分布を示す距離情報分布として、デフォーカス量を参照するデフォーカスマップを用いるものとして説明したが、本実施形態はこれに限られるものではない。即ち、被写体の距離分布を示す情報は、デフォーカス量ではなく、例えばデフォーカス量の導出において導出されたずらし量(像ずれ量)や、デフォーカス量にもとづいて導出される被写体距離を値として格納するものであってもよい。前者の場合、撮像素子の画素ピッチPYや一対の測距瞳を通過する光束の重心の開き角で定まる変換係数KXを保持しておく必要がなく、情報量を減らすことができる。また後者の場合は、ユーザが把握しやすい数値となっているため、例えば表示部110を介して処理の過程で提示することで、どのような表現の画像が生成されるかをユーザに好適に伝えることができる。
また、本実施形態の画像加工処理では、人物被写体1600に合焦している条件で撮像が行われた態様について説明を行ったが、本実施形態はこれに限られるものではない。即ち、本実施形態によれば、合焦していない状態の被写体であっても、該被写体の領域のデフォーカス量を参照して被写体の距離範囲に存在する画素を特定することができるため、撮像時における合焦の有無は本実施形態に無関係である。
また、本実施形態ではS1510において、S1509で略同等の距離範囲に存在する被写体として特定された被写体において、S1507で抽出した領域の画像を比較明合成したが、本実施形態はこれに限られるものではない。例えば、領域を抽出した画像を生成するよりも前に、所定の距離関係を満たす被写体グループの各被写体のヒストグラムを合成する構成を用いてもよい。この変形例について、図26を参照して説明する。
図26は、第2の実施形態に係る画像加工処理の変形例のフローチャートである。本フローチャートにおいて、図15と同一又は同様の処理が行われるステップには図15と同一の符号を付す。
図26から理解できるように、S1509までの処理は図15と同様であるが、S1506及びS1507の処理(デフォーカス量の範囲の特定、及び画素の抽出)は行われない。S1509における被写体グループの検出に続いて、S2601で、合成部1406はシステム制御部101の制御の下、被写体グループの各被写体のヒストグラムを合成する。ここでは、S1509において人物被写体1600及び人物被写体1602が所定の距離関係を満たす(略同等の距離範囲に存在する)被写体グループとして検出されたものとする。この場合、合成部1406は、人物被写体1600に対応するヒストグラム(図27(a))と、人物被写体1602に対応するヒストグラム(図27(b))とを合成(加算)することにより、合成ヒストグラム(図27(c))を生成する。
S2602で、システム制御部101は、図27(c)の合成ヒストグラム(合成頻度分布)に基づいて、所定の閾値2700を上回る頻度を示すデフォーカス範囲(d1~d2)を特定する。
S2603で、領域抽出部1404はシステム制御部101の制御の下、デフォーカスマップの全域から、S2602において特定した範囲に含まれるデフォーカス量を示す画素(領域)を抽出する。
S2604で、領域抽出部1404は、システム制御部101の制御の下、撮像画像のうちの、S2603において取得された抽出領域に対応する画像を分離する。
このような構成とすることで、S1507における各被写体の抽出画像の取得を省略することができ、データ量を低減することができる。
なお、システム制御部101は、合成ヒストグラム(図27(c))からデフォーカス範囲(d1~d2)を特定する代わりに、被写体グループの各被写体のヒストグラムについてデフォーカス範囲(d1’~d2’)を算出する構成を採用してもよい。この場合、システム制御部101は、各被写体のヒストグラムに対応するd1’のうちの最小値をd1とし、各被写体のヒストグラムに対応するd2’のうちの最大値をd2として取得する。これにより、ヒストグラムの合成を行わずに、S2603で用いるデフォーカス範囲(d1、d2)を取得することができる。
また、図15及び図26の例では、各被写体のヒストグラムに基づいて所定の距離関係を満たす被写体グループを検出する構成について説明したが、本実施形態はこれに限られるものではない。
例えば、S1503で行った、撮像画像に含まれる人物の顔領域の検出の結果である、顔のサイズを比較することで所定の距離関係を満たす(例えば、略同等の距離範囲に存在する)被写体から成る被写体グループを検出することも可能である。カメラから所定の距離における人物の顔のサイズはおおよそ一定の範囲内に収まるという仮定を設けることで、検出した顔のサイズから、略同等の距離範囲にいるかどうかを判定することができる。換言すると、複数の被写体に対応する複数のサイズの中で、2以上のサイズの相互の差が所定の範囲内に収まる場合、これら2以上のサイズに対応する2以上の被写体が、所定の距離関係を満たす2以上の被写体(被写体グループ)として検出される。顔のサイズの比較における「所定の範囲内」は、「所定の距離関係を満たす」の内容に応じて適宜変更する。そして、略同等の距離範囲に存在する被写体グループに限定して、S1504以降の処理を行うように構成するのがよい。このように構成することで、ヒストグラムの構成にかかる処理負荷やヒストグラム自体のデータ量を削減することができる。
なお、「所定の距離関係を満たす」ための顔のサイズの関係は、「所定の距離関係を満たす」の内容に応じて適宜変更する。上記の通り、「略同等の距離範囲に存在する」の場合には、顔のサイズがおおよそ一定の範囲内に収まる場合に、これらの顔に対応する被写体が、所定の距離関係を満たす被写体グループを構成する。
或いは、撮像画像に含まれる人物の顔領域の検出結果である顔の位置と領域とを参照し、その領域におけるデフォーカス量の平均値を比較することで、所定の距離関係を満たす(例えば、略同等の距離範囲に存在する)被写体かどうかを判定することもできる。予め設定した閾値内に互いのデフォーカス量の平均値が収まっている場合は、略同等の距離範囲に存在する被写体どうしであると判定することができる。換言すると、複数の被写体に対応する複数の平均値の中で、2以上の平均値の相互の差が所定の範囲内に収まる場合、これら2以上の平均値に対応する2以上の被写体が、所定の距離関係を満たす2以上の被写体(被写体グループ)として検出される。デフォーカス量の平均値の比較における閾値(所定の範囲内)は、「所定の距離関係を満たす」の内容に応じて適宜変更する。このように構成することで、ヒストグラムの構成にかかる処理負荷やヒストグラム自体のデータ量を削減することができる。
なお、上では、画像処理装置100がデジタルカメラである場合を例に説明を行ったが、画像処理装置100は例えば画像処理部107を備えるパーソナルコンピュータであってもよい。
以上説明したように、第2の実施形態によれば、画像処理装置100は、撮像画像と、撮像画像における奥行き方向の距離情報の分布を示す距離情報分布(例えば、図18に示すデフォーカスマップ)とを取得する。そして、画像処理装置100は、撮像画像から、所定の距離関係を満たす、所定の種類の2以上の被写体を検出する。そして、画像処理装置100は、距離情報分布において2以上の被写体に対応する2以上の領域それぞれにおける距離情報に基づいて、距離情報分布において2以上の被写体が存在する距離範囲に含まれる距離情報を持つ第1の領域を識別する。
ここで、距離情報分布において2以上の被写体に対応する2以上の領域とは、例えば、図21に示す解析領域2102である(この場合、解析領域2102は2以上の領域のうちの1つである)。また、距離情報分布において2以上の被写体に対応する2以上の領域それぞれにおける距離情報とは、例えば、図22に示すヒストグラムである(この場合、図22に示すヒストグラムは2以上の領域のうちの1つに対応する)。また、距離情報分布において2以上の被写体が存在する距離範囲に含まれる距離情報を持つ第1の領域とは、例えば、図24における白色の領域である。
これにより、デフォーカスマップなどの距離情報分布において、所定の距離関係を満たす所定の種類の2以上の被写体が存在する領域を検出する処理における、検出精度を向上させることが可能となる。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。