<第1実施形態>
以下、本発明の実施の形態について説明する。図1は、本発明の撮像装置の一例を示す機能ブロック図である。なお、撮像装置10としては、デジタルカメラの他、例えばカメラ機能を備えた携帯電話機やタブレットPCなどの携帯型端末機器が挙げられる。
撮像装置10は、撮像光学系15、光学系駆動部16、撮像部17、焦点調節部18、制御部19、第1メモリ20、第2メモリ21、メディアI/F22、表示部23及び操作部24を備えている。ここで、光学系駆動部16、撮像部17、焦点調節部18、第1メモリ20、第2メモリ21、メディアI/F22、表示部23及び操作部24は、制御部19にそれぞれ接続される。
撮像光学系15は、例えばズームレンズやフォーカスレンズを含む複数のレンズを有している。簡単のため、図1では、撮像光学系15を1枚のレンズで示す。撮像光学系15に含まれるズームレンズやフォーカスレンズの各レンズ位置は、光学系駆動部16によってそれぞれ光軸方向に調整される。この撮像光学系15は、一眼レフレックスカメラなどのビューファインダカメラに代表されるように、撮像装置10の装置本体に対して着脱自在となるレンズ鏡筒内に設けてもよいし、コンパクトカメラに代表されるように、撮像装置10の装置本体に一体に設けられるレンズ鏡筒内に設けてもよい。
撮像部17は、撮像光学系15を介して入射された光束による被写体の像を撮像(撮影)するモジュールである。撮像部17は、例えば、撮像光学系15により光電変換面に結像された光学像を撮像素子内でデジタル信号に変換して出力する撮像素子を備えてもよい。また、例えば、撮像部17は、撮像素子およびA/D変換部を備え、撮像素子は撮像光学系15により光電変換面に結像された光学像を電気信号に変換してA/D変換部に出力し、A/D変換部は、撮像素子によって変換された電気信号をデジタル化して、デジタル信号として出力する構成としてもよい。ここで、上述した撮像素子は、例えばCMOS(Complementary Metal Oxide Semiconductor)などの光電変換素子で構成される。この撮像素子の画素には、例えば公知のベイヤ配列に従ってRGBのカラーフィルタが配置されており、カラーフィルタでの色分解によって各色に対応する画像信号を出力することができる。なお、撮像素子は、光電変換面の一部の領域について被写体の像を電気信号に変換する、所謂画像の切り出しを行えるようにしてもよい。
ここで、撮像部17は、操作部24からの撮像指示に応じて、不揮発性の記憶媒体35への記録を伴う記録用の静止画像を撮影する。このとき、撮像部17は、記録用の静止画像を連写撮影することもできる。また、撮像部17は、撮影待機時において所定の時間間隔ごとに観測用の画像(スルー画像)を撮影する。スルー画像は、記録用の静止画像と比べて間引きにより解像度(画像サイズ)が低くなっている。時系列に取得されたスルー画像のデータは、制御部19による各種の演算処理や、表示部23での動画表示(ライブビュー表示)に使用される。なお、撮像部17で取得される画像を、撮像画像と称することもある。
焦点調節部18は、撮像部17の撮像範囲内に設定された焦点検出エリアの情報を用いて、フォーカスレンズの自動焦点調節(Auto Focus)を実行する。
例えば、焦点調節部18は、スルー画像を用いて公知のコントラスト検出によりAFを実行するものであってもよい。あるいは、焦点調節部18は、公知の位相差検出方式により、瞳分割された被写体像の像ズレ量からAFを実行するものであってもよい。位相差検出方式による場合、焦点調節部18は撮像光学系15から入射する光束の一部を用いて、撮像部17から独立して焦点検出を行うモジュール(例えば、一眼レフ形式のカメラに実装される焦点検出モジュール)であってもよい。あるいは、撮像部17の受光面に焦点検出用の受光素子を配置し、焦点調節部18が撮像面で位相差検出AFを行うようにしてもよい。
制御部19は、撮像装置10の動作を統括的に制御するプロセッサである。例えば、制御部19は、撮像部17での撮像画像の撮影制御、自動露出(Auto Exposure)制御、表示部23での画像の表示制御、第1メモリ20およびメディアI/F22での画像の記録制御を行う。この制御部19は、画像処理部31を有している。画像処理部31は、スルー画像や撮像画像のデータに対して、色補間、階調変換、ホワイトバランス補正、輪郭強調、ノイズ除去などの画像処理を施す。この画像処理部31は、上述した画像処理を行う機能の他に、被写体検出装置の一例としての被写体検出部32の機能を備えている。なお、第1の実施形態においては、被写体検出部32の機能を備えた画像処理部31の構成としているが、被写体検出部32は、画像処理部31とは異なる機能として設けることもできる。
被写体検出部32は、撮像部17で撮像された画像を用いて、画像に含まれる被写体の位置、形状および大きさを特定する。例えば、被写体検出部32は、カラーのスルー画像を用いて、画像に含まれる被写体の位置、形状および大きさを特定する。
ここで、図1に示す制御部19の各機能ブロックは、ハードウェア的には任意のプロセッサ、メモリ、その他の電子回路で実現でき、ソフトウェア的にはメモリにロードされたプログラムによって実現される。上述した画像処理部31、被写体検出部32は、制御部19によって処理されるプログラムモジュールである。しかし、画像処理部31、被写体検出部32の少なくとも一方は、ASIC(Application Specific Integrated Circuit)等であってもよい。
第1メモリ20は、画像処理の前工程や後工程で撮像画像のデータを一時的に記憶するバッファメモリである。例えば、第1メモリ20は、SDRAM等の揮発性メモリである。第2メモリ21は、制御部19で処理されるプログラムや、プログラムで使用される各種データを記憶するメモリである。例えば、第2メモリ21は、フラッシュメモリ等の不揮発性メモリである。
メディアI/F22は、不揮発性の記憶媒体35を接続するためのコネクタを有している。そして、メディアI/F22は、コネクタに接続された記憶媒体35に対してデータ(記録用画像)の書き込み/読み込みを実行する。記憶媒体35は、例えば、ハードディスクや、半導体メモリを内蔵したメモリカードである。なお、メディアI/F22が記憶媒体35に対して光学的にデータを読み取る又は書き込む場合には、記憶媒体35は、光学ディスクである。
次に、図2を用いて、被写体検出部32の構成について説明する。被写体検出部32は、色空間変換部41、解像度変換部42、差分画像生成部43、画像判定部44、二値化処理部45、マスク絞込部46、評価値算出部47及びマスク抽出部48を備えている。ここで、被写体検出部32の各機能ブロックは、制御部19によって処理されるプログラムモジュールであってもよいし、ASIC等であってもよい。
色空間変換部41は、入力されるスルー画像のデータに対して色空間変換処理を実行する。制御部19に入力される画像のデータは、例えばRGB色空間で表されるデータである。したがって、色空間変換部41は、入力される画像のデータを、RGB色空間で表されるデータから、YCbCr色空間で表されるデータに変換する。
解像度変換部42は、色空間変換処理が施されたスルー画像のデータに対して解像度変換処理を施す。この解像度変換処理により、入力されるスルー画像は、その解像度が元の解像度よりも低解像度となる、言い換えればスルー画像の画像サイズが小さくなる。
第1実施形態では、被写体検出部32として、色空間変換部41及び解像度変換部42を備えた構成としているが、色空間変換処理及び解像度変換処理が施されたスルー画像のデータが被写体検出部32に入力されることを前提とする場合には、色空間変換部41及び解像度変換部42の構成は省略することが可能である。また、色空間変換処理及び解像度変換処理を被写体検出処理における前処理として1処理でまとめて実行することを前提とするのであれば、色空間変換部41及び解像度変換部42の構成を1つの構成として(画像変換部の構成として)まとめることも可能である。
差分画像生成部43は、YCbCr色空間で表されるスルー画像の画素値の平均値を、Y成分、Cb成分及びCr成分毎に算出する。差分画像生成部43は、Y成分、Cb成分及びCr成分の各成分毎に算出された画素値の平均値を用いて、Y成分、Cb成分及びCr成分の各成分毎の基準濃度画像を生成する。ここで、Y成分、Cb成分及びCr成分の各成分毎の基準濃度画像は、解像度変換処理が施されたスルー画像の解像度と同一の解像度であり、各画素の画素値がいずれも共通する画像である。
ここで、Y成分、Cb成分及びCr成分のうち、Cb成分及びCr成分の画素値は、Y成分の画素値よりも小さいことがわかっている。つまり、二値化処理により得られる各成分のマスクのうち、Y成分のマスクは、その評価値が高い。ここで、評価値の高いY成分のマスクは、光が反射している領域や背景となる領域など、輝度が高い領域が多い。その結果、被写体がない領域が被写体の領域として特定されてしまう。したがって、各成分の二値化画像から生成されたマスクの評価値を適切に演算するために、Cb成分及びCr成分の画素値に対しては、予め所定の係数(例えば3など)を乗算しておくことも可能である。
差分画像生成部43は、解像度変換処理が施されたスルー画像と基準濃度画像とを用いて、Y成分、Cb成分及びCr成分の各成分毎に、2つの差分画像を生成する。この2つの差分画像は、正の差分画像と負の差分画像とからなる。ここで、正の差分画像は、解像度変換処理が施されたスルー画像において、基準濃度画像の画素値を超過する画素値を有する画素の分布を表す画像であり、負の差分画像とは、解像度変換処理が施されたスルー画像において、基準濃度画像の画素値未満となる画素値を有する画素の分布を表す画像である。
差分画像生成部43は、Y成分の正の差分画像を生成する際に、差分値が0を超過する画素の画素値を差分値に設定し、差分値が0以下となる画素の画素値を0に設定する。または、差分画像生成部43は、差分値が0以上となる画素の画素値を差分値に設定し、差分値が0未満となる画素については差分値はなしとしてもよい。いずれの場合においても、Y成分の正の差分画像では、Y成分の画像の画素値がY成分の基準濃度画像の画素値を超過する画素においては、その階調がそのまま保持される。ここで、Y成分の正の差分画像において、Y成分の画像の画素値がY成分の基準濃度画像の画素値を超過する画素の画素値の大きさは、Y成分の基準濃度画像からの乖離度合いを示している。
また、差分画像生成部43は、Y成分の負の差分画像を生成する際に、差分値が0以上となる画素の画素値を0に設定し、差分値が0未満となる画素の画素値を差分値の絶対値に設定する。または、差分画像生成部43は、差分値が0超過する画素の画素値においては差分値を0に設定し、差分値が0未満となる画素を、差分値の絶対値に設定する。いずれの場合についても、Y成分の負の差分画像では、Y成分の画素値がY成分の基準濃度画像の画素値未満となる画素においては、その階調がそのまま保持される。ここで、負の差分画像において、Y成分の画像の画素値がY成分の基準濃度画像の画素値未満となる画素の画素値の大きさは、基準濃度画像からの乖離度合いを示している。
差分画像生成部43は、上述した方法でY成分の正の差分画像及び負の差分画像を生成すると同時に、Cb成分の正の差分画像及び負の差分画像、及びCr成分の正の差分画像及び負の差分画像を生成する。したがって、差分画像生成部43は、計6個の差分画像を生成する。
上述した記載では、差分画像生成部43は、各成分の画像から対応成分の基準濃度画像を減じた結果を用いて、Y成分、Cb成分及びCr成分の負の差分画像をそれぞれ生成しているが、これに限定する必要はなく、基準濃度画像から対応成分の画像を減じた後、差分値が0を超過する画素の画素値を差分値に設定し、差分値が0以下となる画素の画素値を0に設定することで、負の差分画像を生成してもよい。
画像判定部44は、生成された6個の差分画像毎にヒストグラムを生成する。そして、画像判定部44は、生成したヒストグラム毎に、ヒストグラムの標準偏差σ及びピーク・ピーク値(peak to peak)ppを求める。ここで、ヒストグラムの標準偏差σ及びピーク・ピーク値ppは、ヒストグラムにおける画素値の分布のばらつき(または広がり)を示す指標となる。上述したように、差分値が0を超過する画素の画素値を差分値に設定し、差分値が0以下となる画素の画素値を0に設定した正の差分画像の場合、ピーク・ピーク値ppは、例えば度数が最も高くなる画素値から、度数が二番目に高くなる画素値までの幅である。また、差分値が0以上となる画素の画素値を差分値に設定し、差分値が0未満となる画素については差分値なしとした正の差分画像の場合、ピーク・ピーク値は、例えばヒストグラムの0から、最大値までの幅である。
なお、上述したピーク・ピーク値ppは一例であり、ヒストグラムにおける画素値及び度数の分布のばらつきを示す指標であれば、どのようなものであってもよい。例えば差分画像に代えて、YCbCr色空間で表されるスルー画像の各成分毎に対してヒストグラムを生成し、各成分毎のヒストグラムにおいて度数が最も高くなる値を基準として、ピーク・ピーク値ppを求めることも可能である。
画像判定部44は、ヒストグラム毎に生成した標準偏差σと閾値Th1とを比較する。また、画像判定部44は、ヒストグラム毎のピーク・ピーク値ppと閾値Th2とを比較する。ここで、閾値Th1及び閾値Th2は、差分画像に含まれる画素の画素値の分布のばらつきを判断するための閾値である。また、閾値Th1及び閾値Th2は異なる閾値であり、それぞれ独立に定められる。
例えば複数の花を撮影範囲としたスルー画像が取得した場合を考慮する。この場合、取り込まれるスルー画像においては、花の領域が画像の大部分を占める。したがって、色差成分の差分画像においては、花の色に基づく色差成分の度数が高く、また、色差成分の値のばらつきは小さい。
例えば複数の花が黄色の花であれば、Cb成分の負の差分画像から生成されるヒストグラムにおける標準偏差σ及びピーク・ピーク値ppは、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2となる。一方、Cb成分の正の差分画像や、Cr成分の正及び負の差分画像のヒストグラムにおける標準偏差σ及びピーク・ピーク値ppは、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2とはならない。このような場合、画像判定部44は、Cb成分の負の差分画像に対してのみ、被写体として特定できるオブジェクトが存在しないと判定し、Cb成分の負の差分画像を被写体を特定する際に用いる差分画像から除外する。
このように、花の色が他の単一色の場合には、Cb成分及びCr成分の差分画像のいずれかにおいて、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<Th2となる。したがって、画像判定部44は、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<Th2となる色差成分の差分画像を、被写体を特定する際に用いる差分画像から除外する。ここでは、複数の花の画像を例に挙げて説明しているが、森林の画像など、単一の色成分がスルー画像の大部分を占めている画像の場合には、いずれかの色差成分の差分画像において、上述した判定となりやすい。したがって、画像判定部44は、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2となるCb成分又はCr成分の差分画像を、被写体を特定する際に用いる差分画像から除外する。
一方、複数の花の他に、異なる被写体や背景部分を含めた撮像範囲のスルー画像では、複数の花が占める領域が、異なる被写体の領域や背景部分の領域と同一の大きさ又はそれ以下の大きさとなる、つまり、撮像範囲に占める割合が小さくなる。この場合、色差成分の差分画像のヒストグラムでは、特定色の画素値の度数は高くなるが、画素値のばらつきが大きい。このような画像では、標準偏差σの値は小さいが、ピーク・ピーク値ppの値は大きくなりやすい。このような差分画像は、標準偏差σ<閾値Th1、且つピーク・ピーク値pp≧閾値Th2、又は、標準偏差σ≧閾値Th1、且つピーク・ピーク値pp<閾値Th2であると判定される。したがって、画像判定部44は、該当する差分画像を、被写体を特定する際に用いる差分画像から除外することはせずに保持する。
さらに、突出した色差成分がないスルー画像の場合、差分画像のヒストグラムは、標準偏差σ≧閾値Th1、且つピーク・ピーク値pp≧閾値Th2となりやすい。この場合も、画像判定部44は、該当する差分画像を、被写体を特定する際に用いる差分画像から除外することはせずに保持する。
なお、色差成分の差分画像を対象にして説明しているが、上記判定は、Cb成分及びCr成分の差分画像の他、Y成分の差分画像に対しても実行される。
ここで、上記判定を行ったときに、生成した6個の差分画像の全ての差分画像が、被写体を特定する際に用いる差分画像から除外されてしまう場合もある。この場合、画像判定部44は、一旦除外された6個の差分画像を、被写体を特定する際に用いる差分画像として再度保持する。
二値化処理部45は、保持された差分画像を所定の閾値で二値化する二値化処理を行う。以下、保持される差分画像の種類に応じた二値化処理について説明する。
Y成分の正の差分画像に対する二値化処理を行う場合、二値化処理部45は、Y成分の正の差分画像のヒストグラムから求まる標準偏差σに、係数K1及びK2(K1<K2)を乗算した値を閾値K1σ、K2σとして設定する。これら閾値K1σ、K2σの設定の後、二値化処理部45は、Y成分の正の差分画像に対して、閾値K1σを用いて二値化処理を行う。次に、二値化処理部45は、Y成分の正の差分画像と、閾値K2σとを用いて二値化処理を行う。つまり、二値化処理部45は、Y成分の正の差分画像から2個の二値化画像を生成する。
また、Y成分の負の差分画像に対する二値化処理を行う場合、二値化処理部45は、Y成分の負の差分画像から求まる標準偏差σに係数K3を乗算した値を閾値K3σとして設定する。閾値K3σの設定の後、二値化処理部45は、Y成分の負の差分画像と、閾値K3σとを用いて二値化処理を行う。つまり、二値化処理部45は、Y成分の負の差分画像から、1個の二値化画像を生成する。ここで、上述した係数K1,係数K2,係数K3は、撮影シーンなどの撮影条件に応じて設定される値である。
Cb成分の正の差分画像に対する二値化処理を行う場合、二値化処理部45は、閾値として、閾値L1及び閾値L2(L1<L2)を設定する。二値化処理部45は、設定された閾値L1及び閾値L2と、Cb成分の正の差分画像とを用いて二値化処理を行う。つまり、二値化処理部45は、Cb成分の正の差分画像から、2個の二値化画像を生成する。
また、Cb成分の負の差分画像に対する二値化処理を行う場合、二値化処理部45は、閾値として、閾値L3を設定する。二値化処理部45は、設定された閾値L3と、Cb成分の正の差分画像とを用いて二値化処理を行う。つまり、二値化処理部45は、Cb成分の負の差分画像から、1個の二値化画像を生成する。ここで、上述した閾値L1,閾値L2,閾値L3は、撮影シーンなどの撮影条件に応じて設定される値である。
Cr成分の正の差分画像に対する二値化処理を行う場合、二値化処理部45は、Cr成分の正の差分画像に対して設定された閾値として、閾値M1及び閾値M2(M1<M2)を設定する。二値化処理部45は、設定された閾値M1及び閾値M2と、Cr成分の正の差分画像とを用いて二値化処理を行う。つまり、二値化処理部45は、Cr成分の正の差分画像から、2個の二値化画像を生成する。
また、Cr成分の負の差分画像に対する二値化処理を行う場合、二値化処理部45は、閾値として閾値M3を設定する。二値化処理部45は、設定された閾値M3を用いて二値化処理を行う。つまり、二値化処理部45は、Cr成分の負の差分画像から、1個の二値化画像を生成する。ここで、上述した閾値M1,閾値M2,閾値M3は、撮影シーンなどの撮影条件に応じて設定される値である。
第1実施形態では、各成分の正の差分画像に対しては、2つの閾値をそれぞれ用いて2つの二値化画像を、負の差分画像に対しては、1つの閾値を用いて1つの二値化画像を生成しているが、用いる閾値の数や、生成する二値化画像の数は、上記に限定されるものではなく、適宜設定してよい。
以下、各差分画像に対する二値化処理を行ったときに閾値以上となる画素を白画素とし、閾値未満となる画素を黒画素とする。二値化処理部45は、各差分画像に対する二値化処理を行って生成された二値化画像に対して、画素のまとまりを求めるラベリング処理を実行する。このラベリング処理を行った後、二値化処理部45は、白画素のかたまりをマスク(島領域)として抽出する。
マスク絞込部46は、二値化画像から抽出されたマスクのうち、被写体候補として用いるマスクを絞り込む。以下、被写体候補として用いるマスクを被写体候補のマスクと称する。
二値化画像から抽出されたマスクの中には、二値化画像に対するマスクの面積比が1%以下となるマスクが存在する。マスク絞込部46は、二値化画像から抽出されたマスクに対して、二値化画像に対するマスクの面積比が1%以下となるか否かを判定する。マスク絞込部46は、二値化画像に対するマスクの面積比が1%以下となるマスクをノイズであると判定し、被写体候補のマスクから除外する。
また、二値化画像から抽出されたマスクの中には、二値化画像に対するマスクの面積比が60%以上となるマスクが存在する。マスク絞込部46は、二値化画像から抽出されたマスクに対して、二値化画像に対するマスクの面積比が60%以上となるか否かを判定する。マスク絞込部46は、二値化画像に対するマスクの面積比が60%以上となるマスクを背景であると判定し、被写体候補のマスクから除外する。
また、二値化画像から抽出されたマスクの中には、マスクを含む矩形領域に対するマスクの面積比が所定の比率(例えば0.2)以下となるマスクもある。マスク絞込部46は、二値化画像から抽出されたマスクに対して、マスクを含む矩形領域に対するマスクの面積比が所定の比率以下となるか否かを判定する。マスク絞込部46は、マスクを含む矩形領域に対するマスクの面積比が所定の比率以下となるマスクを充填率が低いマスクであると判定し、被写体候補のマスクから除外する。
なお、二値化画像から抽出されたマスクの中には、二値化画像の外周に相当する4辺のうち、隣り合う2辺にかかるマスクや、マスクを含む矩形領域の縦横比が所定の範囲(例えば0.2以上5未満)に含まれないマスクもある。したがって、抽出されるマスクの中に、これらのマスクが存在している場合、マスク絞込部46は、これらマスクを被写体としては適していないマスクとして、被写体候補のマスクから除外してもよい。
また、マスク絞込部46は、二値化画像から抽出されるマスクの数を二値化画像毎に計数する。マスク絞込部46は、1個の二値化画像から抽出されるマスクの数が閾値Th3以上であるか否かを判定する。そして、同一の二値化画像から抽出されるマスクの数が閾値Th3以上であると判定された場合に、マスク絞込部46は、対象となるマスク全体の平均強度を求める。ここで、マスク全体の平均強度とは、差分画像中の全てのマスクに該当する画素の画素値の平均値(平均画素値)が挙げられる。マスク絞込部46は、求めたマスク全体の平均強度が閾値Th4以下となる場合には、元になる差分画像には被写体が含まれていないと判定し、該当する差分画像から抽出される全てのマスクを被写体候補のマスクから除外する。一方、マスク全体の平均強度が閾値Th4を超過する場合には、マスク絞込部46は、元になる差分画像には被写体が含まれていると判定する。この場合、対象となるマスクは、被写体候補のマスクとして保持される。
なお、マスク絞込部46は、同一の二値化画像から抽出されるマスクの数が閾値Th3以上で、且つマスク全体の平均強度が閾値Th4以下となるか否かを判定している。しかしながら、二値化画像から抽出されるマスクの数が閾値Th3以上となるか否かを判定し、二値化画像から抽出されるマスクの数が閾値Th3以上となる場合に、該当する二値化画像から抽出されるマスクを被写体候補のマスクから除外することも可能である。
評価値算出部47は、マスク絞込部46により絞り込まれた被写体候補のマスクのそれぞれに対して評価値を算出する。評価値は、一例として、マスクの面積、マスクに対する慣性モーメント、マスクの平均強度から求まる値である。ここで、マスクの平均強度としては、差分画像中のマスクに該当する画素の画素値の平均値が挙げられる。
まず、評価値算出部47は、各マスクの慣性モーメントを算出する。慣性モーメントは、マスクの重心からの画素距離の2乗×(0または1)の和により算出される。ここで、マスクの重心とは、同一の二値化画像から抽出される被写体候補のマスクの重心である。なお、マスクの重心を基準として慣性モーメントを求めるのではなく、二値化画像の中心を基準として慣性モーメントを求めることも可能である。
次に、評価値算出部47は、マスクの面積と、マスクの平均強度とをそれぞれ求める。なお、マスクの強度は、マスク抽出の元になる差分画像のうちマスクに対応する画素の画素値から求めることができる。マスクの平均強度は、マスク抽出の元になる差分画像のうちマスクに対応する各画素の平均画素値である。
最後に、以下の(1)式を用いて、マスクに対する評価値を求める。以下、マスクに対する評価値をEvと称する。
Ev=Ar^α/MOI+Av/β・・・(1)
ここで、「Ar」はマスクの面積、「MOI」はマスクの慣性モーメント、「Av」はマスクの平均強度を示す。また、「α」及び「β」は、チューニングパラメータとしての係数である。係数αは1.5〜2程度に、係数βは100程度に設定されるが、これら係数α、係数βは上記の例に限定されるものではない。
上記の評価値Evは、マスクの面積Arが大きくなるほど大きな値となり、マスクの慣性モーメントMOIが大きくなるほど小さな値となる。また、上記の評価値Evは、マスクの平均強度が大きくなるほど大きな値となる。
マスク抽出部48は、被写体候補のマスクから、被写体とするマスクを抽出する。まず、マスク抽出部48は、被写体候補のマスクのそれぞれに対して求めた評価値Evを用いて、被写体候補のマスクの順位付けを行う。マスク抽出部48は、順位付けされた被写体候補のマスクのうち、上位5位のマスクを最終候補のマスクとして選択する。マスク抽出部48は、最終候補として選択したマスクに対して、以下の処理を実行する。
マスク抽出部48は、最終候補となる上位5位のマスクの中に、Cb成分又はCr成分の差分画像を元にして抽出されたマスクがあるか否かを判定する。Cb成分又はCr成分の差分画像を元にして抽出されたマスクがあれば、マスク抽出部48は、該当するマスクの平均強度を求める。マスク抽出部48は、求めたマスクの平均強度が閾値Th5以下であるか否かを判定する。マスクの平均強度が閾値Th5以下の場合、マスク抽出部48は、該当するマスクを最終候補のマスクから除外する。例えば、スルー画像に含まれる背景の領域の色差成分には、黄色成分やシアンの成分が多く含まれる。したがって、この判定における閾値Th5は、黄色成分やシアン成分が多く含まれる背景部分のマスクを、被写体候補のマスクから除外するために設定される値となる。ここで、Cb成分又はCr成分の差分画像を元に抽出されたマスクで、且つマスクの平均強度が閾値Th5以下であるか否かの判定を、第1の抽出判定とする。
次に、マスク抽出部48は、最終候補となるマスクのうち、Cb成分又はCr成分の差分画像を元に抽出されたマスクの下位に、Y成分の差分画像を元に抽出されたマスクがあるか否かを判定する。そして、Cb成分及びCr成分の差分画像を元に抽出されたマスクの下位に、Y成分の差分画像を元に抽出されたマスクがあれば、マスク抽出部48は、該当するマスクの平均強度を求める。マスク抽出部48は、求めたマスクの平均強度が閾値Th6以下であるか否かを判定する。この閾値Th6は、例えば陰などの黒い領域や、色が抜けている白い領域などのマスクを、被写体候補のマスクから除外するために設定される値となる。ここで、Cb成分及びCr成分の差分画像を元に抽出されたマスクの下位に、Y成分の差分画像を元に抽出されたマスクがあるか否かの判定を第2の抽出判定とする。ここで、閾値Th6の値は、差分画像の種類に応じて異なる値を用いてもよいし、差分画像の種類に関係なく固定値であってもよい。
次に、マスク抽出部48は、最終候補となるマスクのうち、Y成分の正の差分画像を元に抽出されたマスクと、Y成分の負の差分画像を元に抽出されたマスクとがあるか否かを判定する。この判定でY成分の正の差分画像を元に抽出されたマスクとY成分の負の差分画像を元に抽出されたマスクがある場合には、マスク抽出部48は、これらマスクのうち、上位のマスクを保持し、下位のマスクを被写体候補のマスクから除外する。画像中に輝度の高い(ハイライト)領域と、画像中に輝度の低い(シャドー)領域とが混在している場合、具体的には、晴天時に撮影をした場合、被写体の輝度は高く、被写体の陰の輝度は低い。また、これらに相当するマスクの評価値Evは、被写体に相当するマスクの評価値Evは被写体の陰に相当するマスクの評価値Evよりも高い。したがって、これら領域に相当するマスクが最終候補のマスクとなる場合には、被写体に相当するマスクを残し、被写体の陰に相当するマスクを除外する。ここで、Y成分の正の差分画像及びY成分の負の差分画像を元に抽出されたマスクがそれぞれ最終候補のマスクにあるか否かの判定を第3の抽出判定とする。
上述した第1から第3の抽出判定の後、マスク抽出部48は、最終候補のマスクの中に、包含関係にあるマスクがあるか否かを判定する。包含関係にあるマスクがあれば、マスク抽出部48は、包含関係にあるマスクを統合する処理を行う。包含関係にあるマスクがあるか否かの判定を第4の抽出判定とする。
上述したように、二値化処理部45は、Y成分、Cb成分及びCr成分の正の差分画像のそれぞれに対して、異なる2つの閾値を用いた二値化処理を行っている。図3は、閾値Y成分の正の差分画像の一例を示す。図3に示すY成分の正の差分画像P1において、図3に示す領域A1は、含まれる画素の画素値が閾値K1σよりも高い領域を示す。閾値K1σを用いてY成分の正の差分画像P1に対する二値化処理を行うと、領域A1は白画素の領域、つまりマスクとなる。また、図3に示す領域A2は、領域A1に含まれる領域で、かつ領域A1に含まれる他の画素の画素値よりも高い画素値を有する画素の領域である。閾値K2σを用いてY成分の正の差分画像P1に対する二値化処理を行うと、領域A2が白画素の領域、つまりマスクとなる。ここで、領域A2は、閾値K1σを用いてY成分の正の差分画像P1に対する二値化処理においてもマスクとして抽出される領域である。したがって、領域A1と領域A2とは包含関係にあると言える。つまり、包含関係にあるとは、同一の差分画像を用いた異なる閾値を用いた二値化処理を実行したときに、一方の二値化画像から抽出されるマスクが他方の二値化画像から抽出されるマスクに含まれることを指している。このような包含関係にあるマスクが最終候補のマスクの中にある場合、マスク抽出部48は、これらマスクを統合する。ここで、マスクを統合するとは、包含関係にあるマスクのうち、一方のマスクが含まれる他方のマスクを保持し、該一方のマスクを除外することである。図3においては、マスク抽出部48は、領域A1及び領域A2に示すマスクのうち、領域A2に示すマスクを除外し、領域A1に示すマスクを保持する。なお、Y成分の正の差分画像から生成されるマスクについて説明しているが、Cb成分及びCr成分の正の差分画像から生成されるマスクについても同様である。
マスク抽出部48は、上述した第1から第4の抽出判定を行った後、保持されるマスクが3個を超過する場合には、保持されるマスクのうち、上位3位のマスクを被写体に相当するマスクとして抽出する。一方、保持されるマスクが3個以下の場合には、保持される全てのマスクを被写体に相当するマスクとして抽出する。マスク抽出部48は、スルー画像に対して、抽出したマスクに相当する領域を被写体の領域として特定する。そして、マスク抽出部48は、特定した被写体の領域を示す被写体領域データとして出力する。一方、上述した複数の判定で、全てのマスクが除外される場合、言い換えれば、保持されるマスクがない場合には、マスク抽出部48は、被写体に相当するマスクがないとする。
ここで、第1実施形態の撮像装置10は、動作モードとして、静止画像を撮影する静止画撮影モードの他、動画像を撮影する動画撮影モードや、取得した静止画像や動画像を表示部23にて再生する再生モードを備えている。以下、静止画撮影モードにおける処理の流れについて、図4のフローチャートを用いて説明する。
ステップS101は、スルー画像を取得する処理である。制御部19は、撮像部17を駆動させてスルー画像の撮像を行わせる。この撮像部17の駆動によりスルー画像が取得される。なお、撮像部17の駆動により取得されるスルー画像のデータは、撮像部17から制御部19に入力される。制御部19は、撮像部17からのスルー画像のデータに対して画像処理を実行する。ここで、制御部19は、画像処理が施されたスルー画像のデータを表示部23に出力し、表示部23に取得されたスルー画像を表示させることも可能である。
ステップS102は、被写体検出処理である。制御部19は、ステップS101にて取得したスルー画像を用いて被写体検出処理を実行する。これにより、撮像部17の撮像範囲内での被写体の領域が検出される。
ステップS103は、AF制御である。制御部19は、ステップS102で検出された被写体の領域を焦点検出エリアに設定したAF制御を実行する。ここで、ステップS102における被写体検出処理において被写体の領域が得られない場合には、制御部19は、撮像範囲の中心の領域を焦点検出エリアに設定したAF制御を実行する。ここで、撮像範囲の中心の領域としては、例えば風景撮影用に設定される領域が挙げられる。この風景撮影用に設定される領域は、撮像範囲の面積の60%の面積からなる領域である。このステップS103の処理を実行する際に、制御部19は、設定した焦点検出エリアを基準としたAE演算を行ってもよい。
ステップS104は、撮影指示があるか否かを判定する処理である。記録用の静止画像の撮影指示が操作部24の操作によって行われると、制御部19は、ステップS104の判定処理の結果をYesとする。この場合、ステップS105に進む。一方、記録用の静止画像の撮影指示が操作部24の操作により行われない場合、制御部19は、ステップS104の判定処理の結果をNoとする。この場合、ステップS106に進む。
ステップS105は、撮像処理である。制御部19は、撮像部17を駆動させて、記録用の静止画像の撮像処理を実行する。制御部19は、記録用の静止画像のデータに対して所定の画像処理を施す。制御部19は、画像処理を施した記録用の静止画像のデータを、メディアI/F22を介して記憶媒体35に書き込む。この処理が終了すると、ステップS106に進む。
ステップS106は、撮影を終了させるか否かを判定する処理である。記録用の静止画像の撮影終了の指示が操作部24の操作によって行われると、制御部19は、ステップS106の判定処理の結果をYesとする。この場合、図4のフローチャートの処理が終了する。
一方、記録用の静止画像の撮影終了の指示が操作部24の操作によって行われない場合、制御部19は、ステップS106の判定処理の結果をNoとする。この場合、ステップS101に戻る。したがって、ステップS106の判定処理がNoとなる場合には、ステップS101からステップS104の処理が繰り返し実行され、これら処理が繰り返し実行されるときに、必要に応じてステップS105の撮像処理が実行される。
次に、図4のフローチャートのステップS102に示した被写体検出処理を、図5のフローチャートに基づいて説明する。
ステップS201は、色空間変換処理である。制御部19は、画像処理が施されたスルー画像に対して色空間変換処理を実行する。これにより、RGB色空間で表されるスルー画像が、YCbCr色空間で表されるスルー画像に変換される。
ステップS202は、解像度変換処理である。制御部19は、ステップS201の色空間変換処理が施されたスルー画像に対して解像度変換処理を実行する。これにより、スルー画像が元の解像度よりも低い解像度に変換される。つまり、画像サイズが縮小されたスルー画像が生成される。
ステップS203は、差分画像を生成する処理である。制御部19は、ステップS202の解像度変換処理が施されたスルー画像を用いて、Y成分、Cb成分及びCr成分の各成分毎の基準濃度画像をそれぞれ生成する。そして、制御部19は、解像度変換処理が施されたスルー画像と基準濃度画像とを用いて、Y成分、Cb成分及びCr成分の各成分毎に、正の差分画像及び負の差分画像を生成する。なお、YCbCrの各成分で生成された正の差分画像及び負の差分画像は、制御部19の制御により、第1メモリ20または第2メモリ21に保持される。
ステップS204は、差分画像を絞り込む処理である。制御部19は、ステップS203にて生成した各成分の正の差分画像及び負の差分画像の計6個の差分画像のそれぞれからヒストグラムを生成する。制御部19は、生成したヒストグラムを用いて標準偏差σ及びピーク・ピーク値を求める。これら値を用いて、制御部19は、被写体を特定する際に用いる差分画像を絞り込む。このステップS204の処理については、後述する。
ステップS205は、二値化処理である。制御部19は、ステップS204の処理により絞り込まれた差分画像のそれぞれに対して二値化処理を行う。二値化画像を生成した後、制御部19は、生成された二値化画像に対してラベリング処理を行う。このラベリング処理を行うことで、制御部19は、二値化画像からマスクを抽出する。
ステップS206は、マスクを絞り込む処理である。制御部19は、二値化画像から抽出されたマスクから、被写体候補のマスクを絞り込む。このステップS206の処理については、後述する。
ステップS207は、評価値Evを算出する処理である。制御部19は、ステップS206の処理により絞り込まれたマスクに対する評価値Evを、上述した(1)式を用いて算出する。
ステップS208は、被写体に相当するマスクを抽出する処理である。制御部19は、ステップS207にて求めた各マスクの評価値Evに基づいて、被写体候補のマスクに対する順位付けを行う。制御部19は、順位付けされた被写体候補のマスクのうち、上位5位のマスクを最終候補のマスクとして選択する。そして、最終候補のマスクに対して上述した第1から第4の抽出判定を行う。そして、これら抽出判定の後に保持されるマスクを被写体に相当するマスクとして抽出する。なお、このステップS208の処理の詳細については、後述する。このステップS208の処理が終了すると、図5に示す被写体検出処理が終了する。
ここで、上述した被写体検出処理により、マスクが抽出されている場合には、制御部19は、抽出されたマスクに相当する領域を被写体の領域として設定する。その結果、スルー画像を表示部23に表示したときには、被写体の領域を含む矩形の枠(被写体枠)が、スルー画像に重畳して表示される。したがって、ステップS208の処理を行ったときにマスクが抽出されている場合には、撮影者は、スルー画像に重畳される被写体枠の表示により、撮像範囲に含まれる被写体の位置や大きさを認識することができる。
次に、図5におけるステップS204に示す差分画像を絞り込む処理について、図6のフローチャートを用いて説明する。
ステップS301は、ヒストグラムを生成する処理である。上述した図5におけるステップS203の処理を行うことで、制御部19は、Y成分、Cb成分及びCr成分毎の正の差分画像及び負の差分画像の計6個の差分画像を生成している。制御部19は、これら計6個の差分画像のそれぞれに対してヒストグラムを生成する。
ステップS302は、標準偏差σ及びピーク・ピーク値ppを算出する処理である。制御部19は、ステップS302にて生成した各差分画像のヒストグラム毎に、標準偏差σ及びピーク・ピーク値ppを算出する。このステップS302の処理により、各ヒストグラムにおける画素値の分布のばらつきを示す指標が算出される。
ステップS303は、標準偏差σと閾値Th1とを比較する処理である。制御部19は、ステップS302にて求めたヒストグラム毎の閾値σと、閾値Th1とを比較する。
ステップS304は、ピーク・ピーク値ppと閾値Th2とを比較する処理である。制御部19は、ステップS303にて求めたヒストグラム毎のピーク・ピーク値ppと、閾値Th2とを比較する。
ステップS305は、除外する差分画像があるか否かを判定する処理である。制御部19は、ステップS303及びステップS304の判定処理の結果をそれぞれ用いて、生成された計6個の差分画像のうち、除外する差分画像があるか否かを判定する。計6個の差分画像のうち、例えば標準偏差σ<閾値Th1、且つピーク・ピーク値pp<Th2となる差分画像があれば、制御部19は、この差分画像を除外する差分画像とする。この場合、制御部19は、ステップS305の判定処理の結果をYesとし、ステップS306とする。一方、計6個の差分画像のいずれもが、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<Th2とならない場合には、制御部19は、ステップS305の判定処理の結果をNoとする。この場合、除外する差分画像はないと判定される。したがって、ステップS305の判定処理の結果がNoとなる場合、制御部19は、計6個の差分画像をそのまま使用すると判定し、図6に示すフローチャートの処理を終了させる。
ステップS306は、差分画像を除外する処理である。ステップS305において除外する差分画像があると判定されている。したがって、制御部19は、対象となる差分画像を除外する。このステップS306の処理を行うことで、差分画像が絞り込まれる。このステップS306の処理を実行した後、制御部は、図6に示すフローチャートの処理を終了する。
図7は、鳥を撮像範囲に収めたときに得られるスルー画像の一例を、図8は図7に示すスルー画像から得られるY成分、Cb成分及びCr成分の正及び負の差分画像の一例を示す。ここで、図8(a)はY成分の正の差分画像、図8(b)はY成分の負の差分画像である。また、図8(c)はCb成分の正の差分画像、図8(d)はCb成分の負の差分画像である。また、図8(e)はCr成分の正の差分画像、図8(f)はCr成分の負の差分画像である。
上述したステップS301及びステップS302の処理が実行されると、制御部19は、生成された計6個の差分画像のそれぞれに対してヒストグラムを生成し、ヒストグラム毎に標準偏差σ及びピーク・ピーク値ppを算出する。ここで、図8(a)に示す差分画像に基づくヒストグラムの標準偏差σ及びピーク・ピーク値ppは、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2となる。したがって、制御部19は、図8(a)の差分画像中には被写体に該当するオブジェクトはないと判定し、この生成された6個の差分画像のうち、図8(a)に示す差分画像を、被写体を特定する際に用いる差分画像から除外する。したがって、被写体を特定する際に用いる差分画像が、図8(b)から図8(f)に示す計5個の差分画像に絞り込まれる。
そして、ステップS205の処理が実行されると、制御部19は、図8(b)から図8(f)の計5個の差分画像のそれぞれに対して二値化処理を実行する。この二値化処理により、図9(c)から図9(i)の計7個の二値化画像が生成される。この図9においては、各成分の正の差分画像に対して二値化処理を行うときの閾値を2σ及び3σに、各成分の負の差分画像に対して二値化処理を行うときの閾値を2σに設定した場合を示す。
なお、図9では、Y成分の正の差分画像から得られる2個の二値化画像を図9(a)及び図9(b)として便宜上記載しているが、図8(a)の差分画像が除外される場合、図9(a)及び図9(b)に示す二値化画像は生成されない。なお、図9(c)から図9(i)の二値化画像に示すグレイ及び白の領域が、各二値化画像から抽出されるマスクを示している。
ステップS206の処理が実行されると、制御部19は、図9(c)から図9(i)の二値化画像におけるマスクを用いてマスクを絞り込む処理を行う。そして、絞り込まれたマスクを用いて評価値Evを算出し、被写体に相当するマスクを抽出する。図9では、被写体に相当するマスクが抽出されない場合を示している。つまり、被写体に相当するマスクがない場合には、風景撮影時に用いる枠51をスルー画像P2に重畳して表示部23に表示する。
このように、上述した差分画像を絞り込む処理において、風景撮影を行うときに得られるスルー画像であれば、スルー画像の各画素の画素値は近似した値、つまり、画像中のコントラストは小さい。その結果、差分画像に基づくヒストグラムのいずれかは、その標準偏差σやピーク・ピーク値ppは小さい値をとる。一方、人物撮影を行うときに得られるスルー画像であれば、背景となる領域ではコントラストは小さいが、人物となる領域とのコントラストが大きくなる。その結果、差分画像に基づくヒストグラムでは、その標準偏差σやピーク・ピーク値ppは大きい値をとる。したがって、上述した標準偏差σと閾値Th1との比較や、ピーク・ピーク値ppと閾値Th2との比較を行った場合には、被写体が存在しないと想定される差分画像を除外することができる。その結果、後述する処理に係る処理負荷を軽減し、処理時間を短縮することができる。また、二値化処理の前に、被写体が存在しないと想定される差分画像を除外することで、被写体に相当するマスクの抽出精度を向上させ、的確に特定領域(例えば、被写体領域や注目領域など)の抽出を行うことができる。
なお、上述した差分画像を絞り込む処理は、特に、接写モード(マクロモード)による撮影時に有用である。したがって、接写モード(マクロモード)の設定に連動して差分画像を絞り込む処理を実行しても良いし、AF情報、AE情報、被写体解析の情報などに連動して差分画像を絞り込む処理を実行しても良い。
次に、図5のフローチャートに示すステップS206のマスクを絞り込む処理について、図10のフローチャートに基づき説明する。
ステップS401は、ノイズと認識されるマスクを除外する処理である。制御部19は、二値化画像から抽出されたマスクの面積を求めた後、二値化画像の面積とマスクの面積との面積比を求める。制御部19は、二値化画像の面積とマスクの面積との面積比を参照して、二値化画像の面積とマスクの面積との面積比が1%以下となるマスクがあるか否かを判定する。二値化画像の面積とマスクの面積との面積比が1%以下となるマスクがあれば、制御部19は、そのマスクをノイズとして、被写体候補のマスクから除外する。
ステップS402は、背景と認識されるマスクを除外する処理である。制御部19は、ステップS401の処理により、二値化画像の面積とマスクの面積との面積比をマスク毎に求めている。制御部19は、二値化画像の面積とマスクの面積との面積比を参照して、面積比が60%以上となるマスクがあるか否かを判定する。二値化画像の面積とマスクの面積との面積比が60%以上となるマスクがあれば、制御部19は、そのマスクを背景であるとして、被写体候補のマスクから除外する。
ステップS403は、充填率の低いマスクを除外する処理である。制御部19は、マスクを含む矩形領域の面積に対するマスクの面積の比率が所定の閾値(例えば0.2)以下となるか否かを判定する。この判定で、マスクを含む矩形領域の面積に対するマスクの面積の比率が所定の閾値以下となるマスクがあれば、制御部19は、該当するマスクを、被写体候補のマスクから除外する。
ステップS404は、二値化画像におけるマスクの数を計数する処理である。制御部19は、二値化画像から抽出されたマスクの数を計数する。
ステップS405は、マスクの数が閾値Th3以上であるか否かを判定する処理である。制御部19は、計数されたマスクの数が閾値Th3以上となる場合、制御部19は、ステップS405の判定処理の結果をYesとする。この場合、ステップS406に進む。一方、計数されたマスクの数が閾値Th3未満となる場合には、ステップS409に進む。
ステップS406は、マスク全体の平均強度を算出する処理である。制御部19は、二値化画像の元になる差分画像から、各マスクに該当する画素の画素値を読み出し、マスク全体の平均強度を算出する。
ステップS407は、マスク全体の平均強度が閾値Th4以下となるか否かを判定する処理である。ステップS406にて求めたマスク全体の平均強度が閾値Th4以下となる場合、制御部19は、ステップS407の判定処理の結果をYesとする。この場合、ステップS408に進む。一方、ステップS406にて求めたマスク全体の平均強度が閾値Th4を超過する場合、制御部19は、ステップS407の判定処理の結果をNoとする。この場合、ステップS409に進む。
ステップS408は、対象となるマスクを除外する処理である。ステップS407の判定処理でYesとなる場合、制御部19は、二値化画像から抽出されるマスクの中にはマスクが含まれていないと判断し、この二値化画像から抽出されたマスク全てを被写体候補のマスクから除外する。
ステップS409は、全ての二値化画像に対して実行したか否かを判定する処理である。全ての二値化画像に対してステップS405からステップS408の処理を行っている場合、制御部19は、ステップS409の判定処理の結果をYesとする。これにより、図10のフローチャートの処理を終了する。一方、全ての二値化画像に対してステップS404からステップS408の処理を行っていない場合、制御部19は、ステップS409の判定処理の結果をNoとする。この場合、ステップS404に戻る。したがって、全ての二値化画像に対して、ステップS404からステップS408の処理が実行される。
図11は、キリンを撮像範囲に収めたときのスルー画像P3を示す。ここで、図12(a)から図12(i)の二値化画像において、グレイ及び白で表される領域がマスクとして抽出される。また、図12においては、各成分の正の差分画像に対して二値化処理を行うときの閾値を2σ及び3σに、各成分の負の差分画像に対して二値化処理を行うときの閾値を2σに設定した場合を示す。
制御部19は、これら二値化画像から抽出されるマスクから、被写体候補のマスクを絞り込む。ここで、ステップS402及びステップS403の処理を行うことで、例えば図12(b)、図12(d)及び図12(e)のマスクが全て被写体候補のマスクから除外される。
ここで、図12(c)、図12(f)及び図12(i)の二値化画像からは、数多くのマスクが抽出されている。したがって、制御部19は、これら二値化画像に対しては、ステップS405の判定処理を行うと、その判定処理の結果がYesとなる。また、これら二値化画像から抽出されるマスクのマスク全体の平均輝度に対しても、ステップS407の判定処理の結果がYsとなる。したがって、図12(c)、図12(f)及び図12(i)の二値化画像のそれぞれから抽出されるマスクが全て除外される。したがって、マスクの絞り込み処理を実行すると、図12(a)の白の領域に示すマスク、図12(g)の白の領域に示す2つのマスク及び図12(h)の白の領域に示すマスクが被写体候補のマスクとして保持される。制御部19は、これら被写体候補のマスクに対して評価値Evを求め、求めた評価値Evを用いて、被写体候補のマスクの順位付けを行う。この順位付けの後、第1から第4の抽出判定が行われ、例えば図12(g)の白の領域に示す2つのマスクが、被写体に相当するマスクとして抽出される。したがって、図11のスルー画像を表示部23に表示すると、被写体枠52,53が重畳表示される。
このように、二値化画像から数多くのマスクが抽出される場合には、そのマスク全体の平均強度を判断することにより、数多くの島が抽出される領域が背景のテクスチャによるものであるか、被写体自身のテクスチャなのかを判別することができる。つまり、背景のテクスチャであればマスク全体の平均強度が低くなるので、抽出されたマスクは、背景に相当する領域であり、被写体に相当する領域は存在していないと判断できる。一方、被写体自身のテクスチャであれば、マスク全体の平均強度は高い。したがって、抽出されるマスクには、被写体に相当するマスクが存在すると判断できる。このように、上記判定を行うことで、不要なマスクを被写体候補のマスクから除外でき、被写体候補のマスクを適切に絞り込むことができる。
次に、図5のフローチャートに示すステップS208の被写体に相当するマスクを抽出する処理の流れについて、図13のフローチャートに基づいて説明する。
ステップS501は、最終候補のマスクを取得する処理である。制御部19は、ステップS207にて求めた、被写体候補のマスクに対する評価値Evを用いて、被写体候補のマスクの順位付けを行う。そして、制御部19は、順位付けされたマスクのうち、上位5位のマスクを最終候補のマスクとして選択する。
ステップS502は、Cr成分の差分画像又はCb成分の差分画像を元に抽出されたマスクがあるか否かを判定する処理である。最終候補のマスクのうち、Cr成分及びCb成分の差分画像を元に抽出されたマスクがあれば、制御部19は、ステップS502の判定処理の結果をYesとする。この場合、ステップS503に進む。一方、上位5位のマスクのうち、Cr成分及びCb成分の差分画像を元に抽出されたマスクがない場合、制御部19は、ステップS502の判定処理の結果をNoとする。この場合、ステップS505に進む。
ステップS503は、平均強度が閾値Th5以下となるマスクがあるか否かを判定する処理である。制御部19は、Cr成分又はCb成分の差分画像を元に抽出されたマスクの平均強度をマスク毎に求める。制御部19は、求めたマスクの平均強度と閾値Th5とを比較する。Cr成分又はCb成分の差分画像を元に抽出されたマスクの平均強度のいずれかが閾値Th5以下となる場合、制御部19は、ステップS503の判定処理の結果をYesとする。この場合、ステップS504に進む。一方、Cr成分又はCb成分の差分画像を元に抽出されたマスクの平均強度が全て閾値Th5を超過する場合、制御部19は、ステップS503の判定処理の結果をNoとする。この場合、ステップS505に進む。これらステップS502及びステップS503の処理が、第1の抽出判定に係る処理となる。
ステップS504は、対象となるマスクを除外する処理である。ステップS503の判定処理において、制御部19は、平均強度が閾値Th5以下となるマスクがあると判定している。したがって、制御部19は、平均強度が閾値Th5以下となるマスクを背景部分から得られたマスクであるとし、該当するマスクを最終候補のマスクから除外する。
ステップS505は、Cb成分又はCr成分の差分画像を元に抽出されたマスクの下位にY成分の差分画像を元に抽出されたマスクがあるか否かを判定する処理である。対象となるマスクは、ステップS504の処理によりマスクが除外されていない場合は、最終候補のマスク全てが該当する。一方、ステップS504の処理によりマスクが除外されている場合には、最終候補のマスクのうち、除外されたマスク以外のマスクが該当する。
制御部19は、被写体検出処理における処理の履歴を示す情報を第1メモリ20から読み出す。制御部19は、読み出した情報から、対象となるマスクが、Cb成分、Cr成分又はY成分の差分画像のいずれかの差分画像を元に抽出されたかを特定する。この特定の後、制御部19は、対象となるマスクのうち、Cb成分又はCr成分の差分画像を元に抽出されたマスクの下位にY成分の差分画像を元に抽出されたマスクがあるか否かを判定する。Cb成分又はCr成分の差分画像を元に抽出されたマスクの下位にY成分の差分画像を元に抽出されたマスクがある場合、制御部19は、ステップS505の判定処理の結果をYesとする。この場合、ステップS506に進む。一方、Cb成分又はCr成分の差分画像を元に抽出されたマスクの下位にY成分の差分画像を元に抽出されたマスクがない場合には、制御部19は、ステップS505の判定処理の結果をNoとする。この場合、ステップS508に進む。
ステップS506は、平均強度が閾値Th6以下となるマスクがあるか否かを判定する処理である。制御部19は、Cb成分又はCr成分の差分画像を元に抽出されたマスクの下位にY成分の差分画像を元に抽出されたマスクを対象にして、マスクの平均強度を求める。そして、制御部19は、求めたマスクの平均強度と閾値Th6とを比較する。対象となるマスクのうち、平均強度が閾値Th6以下となるマスクがあれば、制御部19は、ステップS506の判定処理の結果をYesとする。この場合、ステップS507に進む。対象となるマスクの全てが、平均強度が閾値Th6を超過する場合、制御部19は、ステップS506の判定処理の結果をNoとする。この場合、ステップS508に進む。これらステップS505及びステップS506の処理が、第2の抽出判定に係る処理となる。
ステップS507は、対象となるマスクを除外する処理である。制御部19は、平均強度が閾値Th6以下となるマスクを最終候補のマスクから除外する。
ステップS508は、Y成分の正の差分画像を元に抽出されたマスクと、Y成分の負の差分画像を元に抽出されたマスクとがあるか否かを判定する処理である。対象となるマスクは、最終候補のマスクのうち、ステップS504又はステップS507のいずれかの処理によって除外されたマスクを除いたマスクである。なお、ステップS504又はステップS507のいずれかの処理も行っていない場合には、最終候補のマスクの全てが、対象のマスクとなる。
対象となるマスクの中に、Y成分の正の差分画像を元に抽出されたマスク及びY成分の負の差分画像を元に抽出されたマスクがあれば、制御部19は、ステップS508の判定処理の結果をYesとする。この場合、ステップS509に進む。一方、対象となるマスクの中に、Y成分の正の差分画像を元に抽出されたマスク又はY成分の負の差分画像を元に抽出されたマスクの一方のマスクしかない場合や、Y成分の正の差分画像を元に抽出されたマスク及びY成分の負の差分画像を元に抽出されたマスクの両方のマスクがない場合には、制御部19はステップS508の判定処理の結果をNoとし、ステップS510に進む。なお、ステップS508の処理が、第3の抽出判定に係る処理となる。
ステップS509は、下位マスクを除外する処理である。ステップS508により、対象となるマスクには、Y成分の正の差分画像を元に抽出されたマスク及びY成分の負の差分画像を元に抽出されたマスクの両方のマスクがあると判定されている。したがって、制御部19は、これらマスクのうち、順位の高いマスクを最終候補のマスクとして保持し、順位の低いマスクを最終候補のマスクから除外する。
ステップS510は、同一成分の正の差分画像から生成されるマスクのうち、包含関係にあるマスクがあるか否かを判定する処理である。対象となるマスクは、最終候補のマスクのうち、ステップS504、ステップS507或いはステップS509のいずれかの処理によって除外されたマスクを除いたマスクである。なお、ステップS504、ステップS507或いはステップS509のいずれかの処理も行っていない場合には、最終候補のマスクの全てが、対象のマスクとなる。上述したように、Y成分、Cb成分及びCr成分の正の差分画像に対する二値化処理においては、異なる2つの閾値を用いている。したがって、包含関係にあるとは、同一成分の正の差分画像に対して閾値を用いた二値化処理により抽出されるマスクが、閾値を用いた二値化処理により抽出されるマスクに含まれる場合を指す。対象となるマスクの中に、包含関係にあるマスクがある場合には、制御部19は、ステップS510の判定処理の結果をYesとする。この場合、ステップS511に進む。一方、対象となるマスクの中に、包含関係にあるマスクがない場合には、制御部19は、ステップS510の判定処理の結果をNoとする。この場合、ステップS512に進む。
ステップS511は、包含関係にあるマスクを統合する処理である。制御部19は、例えば2つのマスクが包含関係にある場合、それらマスクを統合する。このステップS511の処理を実行することで、制御部19は、最終候補のマスクを絞ることができる。
ステップS512は、保持されるマスクの数が3を超過するか否かを判定する処理である。制御部19は、ステップS502からステップS511の処理を行うことで、最終候補のマスクに対して第1から第4の抽出判定を行っている。例えば最終候補のマスクが1個も除外されない場合や1個のみが除外された場合、最終候補として保持されるマスクの数は3個を超過している。したがって、制御部19は、ステップS512の判定処理の結果をYesとする。この場合、ステップS513に進む。
一方、2個以上のマスクが最終候補のマスクから除外されてしまった場合には、保持されるマスクの数は3個以下となる。したがって、制御部19は、ステップS512の判定処理の結果をNoとする。この場合、ステップS514に進む。
ステップS513は、上位3位までのマスクを抽出する処理である。制御部19は、最終候補として保持されるマスクのうち、評価値Evの順位が上位3位のマスクを被写体の領域に相当するマスクとして抽出する。このステップS513の処理が実行されると、制御部19は、図13におけるフローチャートの処理を終了させる。
ステップS514は、保持されたマスクがないか否かを判定する処理である。上述した第1から第4の抽出判定を行うことで、最終候補となるマスクが全て除外されてしまう場合がある。このような場合、制御部19はステップS514の判定処理の結果をYesとする。つまり、このような場合には、制御部19は、被写体の領域に相当するマスクはないとし、図13におけるフローチャートの処理を終了させる。
一方、第1から第4の抽出判定を行ったときに、2〜4個のマスクが最終候補のマスクから除外される場合、制御部19が保持するマスクは、1〜3個のマスクのいずれかである。したがって、制御部19は、ステップS514の判定処理の結果をNoとする。この場合ステップS515に進む。
ステップS515は、保持されたマスクを抽出する処理である。制御部19は、最終候補のマスクとして保持されるマスクの全てを被写体の領域に相当するマスクとして抽出する。このステップS515の処理が実行されると、制御部19は、図13におけるフローチャートの処理を終了させる。
以下、各成分の正の差分画像に対して二値化処理を行うときの閾値を2σ及び3σに、各成分の負の差分画像に対して二値化処理を行うときの閾値を2σに、それぞれ設定した場合について説明する。
図14は、赤い花を撮像範囲に収めたときのスルー画像を示す。上述したように、スルー画像P4が取得されると、制御部19は、Y成分、Cb成分及びCr成分の二値化画像を計9個生成する。図15(a)から図15(i)は、スルー画像P3から得られるY成分、Cb成分及びCr成分の二値化画像の一例を示す。図15では、各閾値の下に記載した「(正)」は、正の差分画像に基づいて生成された二値化画像であり、閾値の下に記載した「(負)」は、負の差分画像に基づいて生成された二値化画像であることを示している。
図15(a)から図15(i)は、Y成分、Cb成分及びCr成分の二値化画像であり、各二値化画像においてグレイ及び白で表される領域がマスクとして抽出される。抽出された各二値化画像のマスクから被写体候補となるマスクを絞り込むことでグレイで表されるマスクが除外され、図15(a)、図15(d)から図15(h)の二値化画像中の白の領域で示すマスクが被写体候補のマスクとして絞り込まれる。上述したように、被写体候補となるマスクが絞り込まれると、制御部19は、被写体候補のマスクのそれぞれに対して評価値Evを求める。ここで、図15(a)、図15(d)から図15(h)に示す「×」印はマスクの重心であり、マスクの慣性モーメントを求める場合に基準となる。各マスクに対する評価値Evを求めた後、制御部19は、求めた評価値Evを用いてマスクの順位付けを行う。ここでは、図15(a)の白の領域として示すマスク、図15(d)の白の領域として示すマスク、図15(f)の白の領域として示すマスク、図15(g)の白の領域に示すマスク及び図15(h)の白の領域として示すマスクが最終候補のマスクとなる。
制御部19は、最終候補のマスクに対して第1の抽出判定を行う。この第1の抽出判定で、Cb成分及びCr成分の差分画像を元に抽出されたマスクがあれば、そのマスクの平均強度が閾値Th5以下となるかを判定する。なお、図15においては、図15(d)の白の領域として示すマスク及び図15(f)の白の領域として示すマスクが、Cb成分の差分画像を元に抽出されたマスクである。また、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクがCr成分の差分画像を元に抽出されたマスクである。この第1の抽出判定で、例えば図15(d)の白の領域として示すマスク及び図15(f)の白の領域として示すマスクが最終候補のマスクから除外される。
次に、制御部19は、対象となるマスクに対して第2の抽出判定を行う。この第2の抽出判定では、まず、対象となるマスクの中にY成分のマスクがあれば、Cb成分又はCr成分のマスクの下位に、該Y成分のマスクが位置あるか否かが判定される。例えば、図15(a)の白の領域として示すマスクが、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクよりも下位の順位であれば、制御部19は、図15(a)の白の領域として示すマスクの平均強度が閾値Th6以下であるか否かを判定する。この判定で、図15(a)の白の領域として示すマスクの平均強度が閾値Th6以下であると判定された場合には、制御部19は、図14(a)の白の領域として示すマスクを最終候補のマスクから除外する。つまり、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクが最終候補のマスクとして保持される。
次に、制御部19は、第3の抽出判定を行う。ここでは、最終候補のマスクとして保持されているマスクは、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクである。これらマスクは、Cr成分の差分画像を元に抽出されたマスクであり、Y成分の正の差分画像及び負の差分画像を元に抽出されたマスクではない。したがって、第3の抽出判定により、最終候補のマスクから除外されるマスクはない。
最後に、制御部19は、第4の抽出判定を行う。図15の例では、第3の抽出判定を行った後に保持されるマスクは、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクである。これらマスクは、Cr成分の正の差分画像に対して異なる閾値を用いることで生成された二値化画像からそれぞれ抽出されている。また、図15(g)の白の領域として示すマスクに、図15(h)の白の領域として示すマスクが含まれる。したがって、制御部19は、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクは包含関係にあると判定する。そして、制御部19は、図15(g)の白の領域として示すマスク及び図15(h)の白の領域として示すマスクを、図15(g)の白の領域として示すマスクに統合する。ここで、第1から第4の抽出判定を行った結果、最終候補のマスクとして保持されるマスクは、図15(g)の白の領域として示すマスクのみである。制御部19は、図15(g)の白の領域として示すマスクを被写体に相当するマスクとして抽出する。
ここで、図15(g)の白の領域として示すマスクは、スルー画像においては花の領域に相当する。したがって、図14(a)に示すように、スルー画像を表示部23に表示すると、花の領域に対して、被写体枠55が重畳表示される。
例えば、従来の手法では、図15(a)の白の領域として示すマスク及び図15(g)の白の領域として示すマスクが上位3位までのマスクに入っていれば、制御部19は、図15(a)の白の領域として示すマスクに該当する領域と、図15(g)の白の領域として示すマスクに該当する領域を被写体の領域に特定する。なお、図15(a)の白の領域として示すマスクに該当する領域は、光が反射している領域である。また、図15(g)の白の領域として示すマスクに該当する領域は、花の領域である。したがって、図14(b)に示すように、スルー画像を表示部23に表示すると、花の領域と、光が反射している領域のそれぞれに対して、被写体枠55,56が重畳表示される。しかしながら、光が反射している領域は輝度が高い領域であり、被写体が位置する領域ではない。つまり、従来の手法では、被写体がない領域であっても輝度が高い領域であれば、被写体の領域に相当するマスクとして抽出されてしまう。
しかしながら、第1実施形態では、上述した評価値Evの順位付けにより、Cb成分又はCr成分の差分画像を元に抽出されたマスクよりも下位に、輝度成分の差分画像を元に抽出されたマスクが位置する場合には、そのマスクの平均強度に基づいて、輝度成分の差分画像を元に抽出されたマスクを除外している。したがって、輝度が高い領域がマスクとして抽出されたとしても、色度成分のマスクよりも順位が低いと判断されれば、そのマスクは除外されやすくなる。したがって、被写体がなく、単に輝度が高い領域であるマスクを被写体に相当する領域として特定することが防止される。
図16は、遊園地の乗り物を撮像範囲に収めたスルー画像P5である。この場合のY成分、Cb成分及びCr成分の二値化画像を、図17(a)から図17(i)に示す。ここで、図17(a)から図17(i)の二値化画像において、グレイ及び白で表される領域がマスクとして抽出される。各二値化画像から抽出されたマスクから被写体候補のマスクが絞り込まれる。なお、図17(f)の白の領域として示す2つのマスク、図17(g)の白の領域として示すマスク及び図17(h)の白の領域として示すマスクが、それぞれ被写体候補となるマスクである。
制御部19は、これら被写体候補のマスクに対して評価値Evを算出し、算出された評価値Evを用いて各マスクの順位付けを行う。この場合、被写体候補のマスクは、上述した4個のマスクであることから、これら4個のマスクが最終候補のマスクとなる。
制御部19は、最終候補となる4個のマスクに対して第1の抽出判定を行う。ここで、図17(f)の白の領域として示す2つのマスクは、Cb成分の負の差分画像を元に抽出されたマスクであり、図17(g)の白の領域として示すマスク及び図17(h)の白の領域として示すマスクは、Cr成分の正の差分画像を元に抽出されたマスクである。この例では、図17(f)の白の領域として示す2つのマスクが閾値Th5以下となるので、これらマスクが最終候補のマスクから除外される。したがって、図17(g)の白の領域として示すマスク及び図17(f)の白の領域として示すマスクが最終候補のマスクとして保持される。その後、第2の抽出判定や第3の抽出判定を行うが、これら判定では該当するマスクがないので、第1の抽出判定で絞り込まれたマスクが、そのまま最終候補のマスクとして保持される。
最後に、制御部19は、最終候補のマスクに対して第4の抽出判定を行う。上述した図17(g)の白の領域として示すマスク及び図17(h)の白の領域として示すマスクは、それぞれ、Cr成分の差分画像に対して異なる閾値を用いた二値化処理により抽出されるマスクである。したがって、これら2つのマスクは包含関係にある。したがって、制御部19はマスクを統合する処理を行う。これにより、図17(g)の白の領域として示すマスクが最終候補のマスクとして保持される。この場合、制御部19は、図17(g)の白の領域として示すマスクを被写体の領域に相当するマスクとして抽出する。ここで、図17(g)の白の領域として示すマスクは、乗り物の領域に相当する。したがって、スルー画像P5を表示部23に表示すると、スルー画像P5中の乗り物の領域に対して枠58が重畳表示される(図16(a)参照)。
ここで、従来の方法では、被写体候補のマスクのうち、評価値Evに基づいた順位付けで、上位3位までのマスクであれば、それらマスクが被写体に相当するマスクであると判断される。つまり、図17(f)の白の領域として示す2つのマスクは、被写体の領域に相当するマスクであると判定される。ここで、図17(f)の白の領域として示す2つのマスクは、それぞれ木の領域である。したがって、スルー画像P5を表示部23に表示すると、乗り物の領域に対して被写体枠58が重畳表示される他、木の領域に対しても被写体枠59,60が重畳表示されてしまう。(図16(b)参照)。
しかしながら、第1実施形態では、第1の抽出判定により平均強度が低いマスクがあれば、そのマスクが背景部分であると判断され、最終候補のマスクから除外される。したがって、被写体がない領域がマスクとして抽出された場合であっても、そのマスクを確実に除外することができ、被写体に相当するマスクのみを抽出することができる。
図18は、猫を被写体として撮像範囲内に収めたスルー画像P6である。ここで、図19(a)から図19(i)の二値化画像において、グレイ及び白で表される領域がマスクとして抽出される。この例では、各二値化画像から抽出されたマスクから、被写体候補のマスクが絞り込まれる。図19(a)の白の領域に示すマスク、図19(b)の白の領域に示すマスク、図19(c)の白の領域に示すマスク及び図19(d)の白の領域に示すマスクが、被写体候補のマスクとなる。
この例では、被写体候補のマスクの順位付けを行うと、図19(a)の白の領域に示すマスク、図19(b)の白の領域に示すマスク、図19(c)の白の領域に示すマスク、図19(d)の白の領域に示すマスクの順となる。また、この場合、被写体候補となるマスクは、上述した4個のマスクである。したがって、これら4個のマスクが最終候補のマスクとして選択される。制御部19は、これらマスクに対して第1の抽出判定を行う。ここで、図19(d)の白の領域に示すマスクは、Cb成分の差分画像を元に抽出されたマスクである。したがって、第1の抽出判定により、図19(d)の白の領域に示すマスクの平均強度が閾値Th3以下となれば、制御部19は、図19(d)の白の領域に示すマスクを、最終候補のマスクから除外する。次に、制御部19は、第2の抽出判定を行う。この場合、最終候補のマスクの中には、Cb成分及びCr成分の差分画像を元に抽出されたマスクの下位に、Y成分の差分画像を元に抽出されたマスクはないので、最終候補のマスクから除外されるマスクはない。
ここで、図19(a)の白の領域に示すマスク及び図19(b)の白の領域に示すマスクは、Y成分の正の差分画像を元に抽出されたマスクであり、図19(c)の白の領域に示すマスクは、Y成分の負の差分画像を元に抽出されたマスクである。したがって、制御部19が第3の抽出判定を行うと、これらマスクのいずれかが最終候補のマスクから除外される。ここで、図19(a)の白の領域に示すマスク及び図19(b)の白の領域に示すマスクは、それぞれ図19(c)の白の領域に示すマスクよりも評価値Evの順位が高い。したがって、制御部19は、図19(c)の白の領域に示すマスクを最終候補のマスクから除外する。
例えば輝度が高いマスクが輝度の低いマスクよりも上位となる場合、輝度の低いマスクは、被写体の黒い部分に該当していることが多く、不要なマスクとなる。したがって、Y成分の正の二値化画像から抽出されたマスクと、Y成分の負の二値化画像から抽出されたマスクとの両方のマスクが上位5位までのマスクとなる場合には、制御部19は、Y成分の正の二値化画像から抽出されたマスクと、Y成分の負の二値化画像から抽出されたマスクとのうち、上位に位置しているマスクを保持し、下位に位置しているマスクを除外する。
なお、Y成分の負の二値化画像から抽出されたマスクがY成分の正の二値化画像から抽出されたマスクよりも上位に位置している場合には、スルー画像においては、そのマスクに該当する被写体は被写体自体の色が濃いと想定でき、Y成分の正の二値化画像から抽出されたマスクに該当する領域は背景であることが多い。したがって、Y成分の正の二値化画像から抽出されたマスクと、Y成分の負の二値化画像から抽出されたマスクとの両方のマスクが上位5位までのマスクとなる場合には、制御部19は、上位に位置するマスクを保持し、下位に位置するマスクを除外する。
最後に、制御部19は、第4の抽出判定を行う。ここで、図19(a)の白の領域に示すマスクと、図19(b)の白の領域に示すマスクは、包含関係にある。したがって、制御部19は、これらマスクを統合する。その結果、図19(a)の白の領域に示すマスクが被写体の領域に相当するマスクとして抽出される。
図19(a)の白の領域に示すマスクは、猫の胴体及び足の領域である。したがって、スルー画像P6を表示部23に表示させたときには、猫の胴体及び足の領域に対して被写体枠61が重畳表示される。このように、輝度の高い領域と、輝度の低い領域との両方の領域がマスクとし抽出される場合には、評価の高いマスクのみを選択することで、被写体に相当する領域を適切に特定することが可能となる。
以下、上記実施形態での作用効果を述べる。上記実施形態の制御部19は、マスクの平均強度Avの値を用いて、マスクの評価値Evを算出する(S207)。そして、制御部19は、マスクの評価値Evに基づいて、被写体候補のマスクに対する順位付けを行うことで、被写体に相当するマスクを抽出する(S208)。
図20は、複数の二値化画像からそれぞれ抽出されたマスクの位置を写像した例を示す。また、図21は、図20に示す各マスクの平均強度を示す。
図20は、ステップS501にて、上位4位のマスクとしてマスク1〜4が取得された状態を示している。図20において、マスク4は、マスク1〜3と比べて画面の中心から離れた位置にある。また、図20において、マスク1,4は細長い形状をしており、マスク2,3と比べると慣性モーメントが大きくなる。一方、図21に示すように、各マスクの平均強度は、マスク4、マスク3、マスク2、マスク1の順に小さくなる。なお、図21において、マスク1,2間の平均強度の差はマスク3,2間の平均強度の差よりも小さく、マスク3,4の平均強度はマスク1,2の平均強度よりも十分に大きい。
図22(a)は、上記実施形態で最終的に抽出される上位2つのマスクを示す。また、図22(b)は、比較例として、マスクの形状および位置のみに基づいて最終的に抽出される上位2つのマスクを示す。
図22(b)に示す比較例の場合、マスクの平均強度は考慮されないので、画面中央に近く、形がまとまっている(慣性モーメントの小さい)マスク2,3が抽出される。しかし、形状のみに着目してマスクを抽出すると、画面中央近傍に周囲と異なる領域が存在すればその領域が抽出されやすくなる。そのため、目立ちにくく被写体にそぐわない対象のマスク(例えば画面中央部でのみ部分的に露出している地肌に対応したマスクなど)が誤って抽出される可能性もある。
一方、図22(a)に示す上記実施形態の場合、マスクの平均強度を考慮して評価値が算出されるため、マスクの平均強度が高いマスク3,4が抽出される。このように、上記実施形態では、マスクの抽出のときに各々の差分画像におけるマスクの強度(マスク自体の顕著性)が反映されるため、より人間の感覚に近い条件でマスクの抽出を行うことが可能となる。
<変形例1>
上記実施形態において、評価値算出部47は、マスクの平均強度の大きさに応じてマスクの評価値に重み付けをしてもよい。この変形例1の重み付けの処理は、例えば、S207の評価値の算出のときに行われてもよく、ステップS208で被写体に該当するマスクを抽出するときに、抽出された上位のマスクに対して行うものでもよい。
例えば、評価値算出部47は、マスクの平均強度Avが閾値γ1以上となるマスクには式(1)のAvの値が大きくように重み付けし、マスクの平均強度Avが閾値γ1未満となるマスクには式(1)のAvの値が小さくなるように重み付けする。この場合には、マスクの平均強度が閾値γ1以上となるマスクの評価値が閾値γ1未満のマスクよりも相対的に高くなり、平均強度の高いマスクが優先的に抽出されやすくなる。
また、評価値算出部47は、マスク間での平均強度の差が閾値γ2を超える場合には、マスクの平均強度Avの重み付けに差を与えてもよい。例えば、評価値算出部47は、基準となるマスクよりも平均強度が高く、基準となるマスクとの平均強度の差が閾値γ2を超えるマスクには式(1)のAvの値が大きくなるように重み付けする。あるいは、評価値算出部47は、基準となるマスクよりも平均強度が低く、基準となるマスクとの平均強度の差が閾値γ2を超えるマスクには式(1)のAvの値が小さくなるように重み付けする。これらの場合には、基準となるマスクに比べて平均強度が非常に高いマスクの評価値が相対的に高くなり、平均強度の高いマスクが抽出されやすくなる。
ここで、評価値算出部47は、例えば、重み付けの係数をAvの値に乗算することで上記の重み付けを行えばよい。上記の閾値γ1,γ2は、YCbCrの各成分でそれぞれ異なる値であってもよい。また、上記の閾値γ1,γ2は、同じ成分でも正の差分画像から抽出されたマスクと負の差分画像から抽出されたマスクとでそれぞれ異なる値であってもよい。
例えば、評価値算出部47は、Y成分についてCbCr成分と比べてマスクの平均強度による重み付けを小さくするか、重み付け自体を行わないようにする。Y成分の正の差分画像では、例えば白飛びしているハイライト領域で画素値が大きくなり、Y成分の負の差分画像では、例えば黒つぶれしているシャドー領域で画素値が大きくなる。ハイライト領域やシャドー領域は被写体としての特徴を有しない。そのため、Y成分についてマスクの平均強度による重み付けを抑制することで、ハイライト領域やシャドー領域に対応するマスクを抽出されにくくすることができる。
<変形例2>
上記実施形態において、評価値算出部47は、マスクの面積およびマスクの慣性モーメントを用いることなく、マスクの平均強度に基づいてマスクの評価値を算出してもよい。
また、上記の実施形態において、評価値算出部47は、マスクの平均強度に基づく第1の評価値と、マスクの面積およびマスクの慣性モーメントに基づく第2の評価値とを別々に算出してもよい。そして、マスク抽出部48は、第1の評価値で所定順位までのマスクを抽出した後、第2の評価値を用いて所定順位までのマスクのうちから最終的な被写体のマスクを抽出してもよい。
<第1実施形態の補足事項>
第1実施形態では、解像度変換処理が施されたスルー画像の各画素の画素値の平均値を算出し、算出した画素値の平均値を用いて基準濃度画像を生成しているが、これに限定される必要はなく、スルー画像の各画素の画素値の中央値を用いて、基準濃度画像を生成することも可能である。
第1実施形態では、Y成分、Cb成分及びCr成分の差分画像から、各成分の二値化画像を生成しているが、Y成分、Cb成分及びCr成分の画像から、各成分の二値化画像を生成することも可能である。この場合、各成分の画像に対して、異なる3以上の閾値を用いて、3以上の二値化画像を生成すればよい。また、この場合には、Y成分、Cb成分及びCr成分の画像毎にヒストグラムを生成し、生成したヒストグラムにおける標準偏差σやピーク・ピーク値ppを求め、これら標準偏差σやピーク・ピーク値ppを用いて、被写体候補を絞り込む際に使用する画像とするか否かを判定すればよい。
第1実施形態では、生成された差分画像に基づいたヒストグラムを生成し、生成したヒストグラムにおける標準偏差σやピーク・ピーク値ppを用いて、被写体候補を絞り込む際に使用する差分画像とするか否かを判定しているが、これに限定される必要はなく、差分画像から二値化画像を生成した後に、上記判定を行うことも可能である。
第1実施形態では、二値化画像から抽出されるマスクの数が閾値Th3以上で、且つマスク全体の平均強度が閾値Th4以下となるか否かを判定し、これら条件を満足する場合に、該当する二値化画像から抽出される全てのマスクを被写体候補のマスクから除外している。しかしながら、この判定においては、全ての二値化画像から抽出されるマスクの全てが被写体候補のマスクから除外されてしまう場合もある。したがって、このような場合、閾値の数を増やして二値化処理を行ってもよい。
第1実施形態では、全ての二値化画像のそれぞれでマスクの数を計数し、二値化画像から抽出されるマスクの数が閾値Th3以上となる場合に、マスク全体の平均強度が閾値Th4以下となるか否かを判定している。しかしながら、全ての二値化画像を用いる必要はなく、例えば差分画像から生成されるヒストグラムにおいて標準偏差σが小さい差分画像に基づく二値化画像に対してのみ、上記判定を行うことも可能である。つまり、上述した差分画像における標準偏差σが小さい場合、差分画像における画素値が平均に近い画素値となる、つまり差分画像中に目立つオブジェクトがないと判断できる。したがって、このような標準偏差σが小さい差分画像から求まる二値化画像に対して、上記判定を行うのが効果的である。
また、この判定は、二値化画像を対象に行っているが、これに限定される必要はなく、二値化画像を複数の領域に分割し、分割した複数の領域のそれぞれで行うことも可能である。
第1実施形態では、Y成分、Cb成分及びCr成分の正の差分画像及び負の差分画像をそれぞれ生成したときに標準偏差σを求めている。したがって、差分画像を生成したときに得られる標準偏差σの値から、二値化画像を生成する際に用いる差分画像を選択することも可能である。
第1実施形態では、抽出されるマスクの数に対する閾値を閾値Th3、マスク全体の平均強度に対する閾値を閾値Th4とし、これら閾値の値を固定としているが、これら閾値は、Y成分、Cb成分及びCr成分毎に異なる値としてもよい。この場合、例えば撮影シーンや、スルー画像における画像構成に基づいて、Y成分、Cb成分及びCr成分のそれぞれに対する閾値Th3及び閾値Th4を個別に設定することも可能である。
第1実施形態では、最終候補のマスクのうち、包含関係にあるマスクを統合している。この統合においては、2つのマスクが包含関係にある場合、一方のマスクに含まれる他方のマスクを最終候補のマスクから除外し、一方のマスクを最終候補のマスクから除外している。しかしながら、包含関係にある2つのマスクの両方をそれぞれ最終候補となるマスクとして保持しておき、被写体枠を表示する際に、一方のマスクに相当する被写体の領域に対してのみ被写体枠を表示することも可能である。
第1実施形態では、最終候補のマスクのうち、包含関係にあるマスクを統合しているが、これに限定する必要はなく、例えば二値化画像からマスクを抽出したときに、包含関係にあるマスクを統合する処理を行った後、被写体候補のマスクを絞り込む処理を行うことも可能である。
第1実施形態では、差分画像を絞り込む処理(図5に示すフローチャートのステップS204、図6に示すフローチャートの処理)、マスクを絞り込む処理(図5に示すフローチャートのステップS206、図10に示すフローチャートの処理)を行うようにしている。しかしながら、差分画像を絞り込む処理やマスクを絞り込む処理は、少なくともいずれか一方のみを行うようにしてもよいし、両方の処理を省略することが可能である。
第1実施形態では、被写体に相当するマスクを抽出する処理(図5に示すフローチャートのステップS208、図13に示すフローチャートの処理)として、第1から第4の抽出判定を行っている。しかしながら、第1から第4の抽出判定のうち、少なくとも1つの判定処理のみを行うようにすることも可能である。また、これら抽出判定を行わずに、最終候補のマスクのうち、評価値Evの最も高いマスクを被写体に相当するマスクとして抽出してもよい。
第1実施形態において、マスク絞込部46は、以下の基準を用いて被写体候補のマスクを絞り込んでもよい。
例えば、マスク絞込部46は、画像全体に対して面積が6割となり、その重心が画像中央と一致する矩形の足きり領域を設定し、この足きり領域に50%以上属しないマスクを被写体候補から除外してもよい。
また、例えば、マスク絞込部46は、連続して取得されたスルー画像間でマスクの動きベクトルを求め、他の条件で被写体候補から除外されるマスクのうち、動きベクトルのあるマスクは被写体候補として保持し、動きベクトルのないマスクはそのまま被写体候補から除外してもよい。
<第2実施形態>
図23は、第2実施形態の画像処理装置の構成例を示す図である。第2実施形態の画像処理装置90は、本発明の被写体検出装置として機能する。なお、画像処理装置90の具体例としては、コンピュータが挙げられる。
図23に示す画像処理装置90は、データ読込部91、記憶装置92、CPU93、メモリ94、出力I/F95及びバス96を備えている。データ読込部91、記憶装置92、CPU93、メモリ94及び入出力I/F95は、バス96を介して相互に接続されている。この画像処理装置90には、入出力I/F95を介して、キーボードや、マウスなどの入力デバイス97や、モニタ98がそれぞれ接続される。入出力I/F95は、入力デバイス97からの各種入力を受け付けるとともに、モニタ98に対して表示用のデータを出力する。
データ読込部91は、画像のデータやプログラムを外部から読み込むときに用いられる。データ読込部91は、例えば着脱自在な記憶媒体99からデータを取得する読込デバイス(光ディスク、磁気ディスク、光磁気ディスクなどの読込装置など)や、公知の通信規格に準拠して外部の装置と通信を行う通信デバイス(USBインターフェース、有線又は無線のLANモジュールなど)である。なお、図23においては、データ読込部91が、着脱自在な記憶媒体99からデータを取得する読込デバイスの場合を示している。
記憶装置92は、例えばハードディスクや不揮発性の半導体メモリなどの記憶媒体からなる。記憶装置92は、上記プログラムや、プログラムの実行に必要となる各種データを記憶する。なお、記憶装置92は、データ読込部91が読み込んだ画像のデータなどを記憶することができる。
CPU93は、画像処理装置90の各部を統括的に制御するプロセッサである。このCPU93は、プログラムを実行したときに画像処理部31の機能を有している。この画像処理部31の機能の1つとして、被写体検出部32が設けられる。ここで、画像処理部31及び被写体検出部32は、第1実施形態と同一の機能を有することから第1実施形態と同一の符号を付している。つまり、被写体検出部32は、第1実施形態と同一構成(色空間変換部41、解像度変換部42、差分画像生成部43、画像判定部44、二値化処理部45、マスク絞込部46、評価値算出部47及びマスク抽出部48)を備えている。なお、この第2実施形態においても、画像処理部31の1つの機能として被写体検出部32を設ける他、CPU93が画像処理部31の機能を実行するプログラムとは別のプログラムを実行することで、被写体検出部32の機能を有する形態としてもよい。
メモリ94は、CPU93がプログラムを実行したときの各種演算結果を一時的に記憶する。このメモリ94は、例えば揮発性のSDRAMである。
この第2実施形態の画像処理装置90は、データ読込部91又は記憶装置92から入力画像となる画像のデータを取得すると、CPU93が図4、図5、図10及び図13に示す被写体検出処理を実行する。この第2実施形態の画像処理装置90においても、第1実施形態の被写体検出処理と同様の効果を得ることができる。