<第1実施形態>
以下、本発明の第1の実施形態について説明する。図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にそれぞれ接続される。なお、表示部23は、例えば液晶表示パネルが挙げられる。また、操作部24は、レリーズボタンや十字キーなどの操作ボタンが挙げられる。
撮像光学系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及び情報取得部33の機能を備えている。なお、第1の実施形態においては、被写体検出部32及び情報取得部33の機能を備えた画像処理部31の構成としているが、被写体検出部32及び情報取得部33は、画像処理部31とは異なる機能として設けることもできる。
被写体検出部32は、スルー画像に含まれる被写体を検出する。この被写体検出部32の構成については、後述する。
情報取得部33は、被写体検出部32により実行された被写体検出処理における情報やスルー画像のデータ(以下、スルー画像データ)を用いて、撮像画像のデータ(以下、撮像画像データ)に付帯するタグ情報を生成する。ここで、タグ情報としては、撮像装置10の機種、撮影条件(撮影シーンや撮影倍率など)の情報の他に、被写体検出処理により検出される被写体の領域に関する情報が挙げられる。なお、被写体検出処理においては、被写体に相当するマスクを検出している。したがって、被写体の領域に関する情報は、マスクの情報と言い換えることができる。以下、マスクの情報としては、マスクの基本情報、マスクの動き情報、マスクの抽出方法、マスクの距離情報などが挙げられる。
マスクの基本情報は、マスクの位置、形状及び強度などの情報が挙げられる。マスクの位置は、画像におけるマスクの重心の位置(座標)が挙げられる。なお、マスクの位置としては、例えば画像を複数の領域に分割したときに、マスクが分割された複数の領域のいずれかに含まれるかを示すものであってもよい。
マスクの形状としては、例えば円形、楕円形、多角形などである。なお、このマスクの形状を特定する方法としては、例えば代表的な形状(三角形、多角形、円形など)の画像データと、抽出されるマスクのデータとのマッチングを行い、類似度の高い形状をマスクの形状とする。したがって、マスクの形状によっては、代表的な形状で表せない場合もある。このような場合には、「その他形状」とする。また、マスクの形状として、マスクの画像データを生成してもよい。マスクの強度は、マスクに相当する領域に含まれる画素の画素値の平均値、最大値、最頻値などが挙げられる。これら値は、スルー画像における値であってもよいし、被写体検出処理の際に得られる差分画像における値であってもよい。
マスクの動き情報は、所定数のスルー画像から得られる同一のマスクの位置の移動量や動きベクトル、所定数のスルー画像から得られる同一のマスクの位置(座標)の平均値などが挙げられる。例えば動く被写体を撮影する場合には、画像内での被写体の位置は変化する。したがって、動く被写体をマスクとして抽出している場合に、マスクの動き情報が取得される。
マスクの距離情報は、撮像装置10からマスクに相当する被写体までの距離を示す情報である。なお、この距離は、撮像光学系15の撮影倍率や焦点距離などから求めることができる。したがって、マスクの距離情報には、マスクを焦点検出領域としたAF処理をおこなったか否かの情報も含まれる。
マスクの抽出方法の情報は、被写体検出部32にて実行される被写体検出処理で使用した方法である。なお、マスクの抽出方法の情報には、差分画像を生成する方法や、二値化処理を行う方法、マスクを絞り込む方法などの情報が含まれる。
ここで、図1に示す制御部19の各機能ブロックは、ハードウェア的には任意のプロセッサ、メモリ、その他の電子回路で実現でき、ソフトウェア的にはメモリにロードされたプログラムによって実現される。上述した画像処理部31は、制御部19によって処理されるプログラムモジュールであるが、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は、差分画像生成部43において生成された6個の差分画像の各画像からヒストグラムを生成する。画像判定部44は、生成されたヒストグラムに基づいて、ヒストグラムの元になる差分画像を被写体の検出に用いるか否かを判定する。この判定は、まずヒストグラムの標準偏差σ及びピーク・ピーク値(peak to peak)ppが、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2を満足するか否かにより行われる。例えばヒストグラムの標準偏差σ及びピーク・ピーク値(peak to peak)ppが、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2となる場合、画像判定部44は、対象となる差分画像を被写体の検出に用いる差分画像から除外する。ヒストグラムの標準偏差σ及びピーク・ピーク値(peak to peak)ppが、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2とならない場合には、画像判定部44は、対象となる差分画像を被写体の検出に用いる差分画像として保持する。
なお、第1実施形態では、画像判定部44が輝度成分及び色差成分のそれぞれにて生成される差分画像から被写体の検出の際に用いる差分画像から除外するか否かの判定を行った上で、被写体の検出に用いる差分画像を絞り込んでいるが、画像判定部44における処理は必ずしも設ける必要はない。
二値化処理部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は、閾値として、閾値K4σ及び閾値K5σ(K4<K5)を設定する。二値化処理部45は、設定された閾値K4σ及び閾値K5σと、Cb成分の正の差分画像とを用いて二値化処理を行う。つまり、二値化処理部45は、Cb成分の正の差分画像から、2個の二値化画像を生成する。
Cb成分の負の差分画像に対する二値化処理を行う場合、二値化処理部45は、閾値として、閾値K6σを設定する。二値化処理部45は、設定された閾値K6σと、Cb成分の正の差分画像とを用いて二値化処理を行う。つまり、二値化処理部45は、Cb成分の負の差分画像から、1個の二値化画像を生成する。ここで、上述した係数K4,係数K5,係数K6は、撮影シーンなどの撮影条件に応じて設定される値である。
Cr成分の正の差分画像に対する二値化処理を行う場合、二値化処理部45は、Cr成分の正の差分画像に対して設定された閾値として、閾値K7σ及び閾値K8σ(K7<K8)を設定する。二値化処理部45は、設定された閾値K7σ及び閾値K8σと、Cr成分の正の差分画像とを用いて二値化処理を行う。つまり、二値化処理部45は、Cr成分の正の差分画像から、2個の二値化画像を生成する。
Cr成分の負の差分画像に対する二値化処理を行う場合、二値化処理部45は、閾値として閾値K9σを設定する。二値化処理部45は、設定された閾値K9σを用いて二値化処理を行う。つまり、二値化処理部45は、Cr成分の負の差分画像から、1個の二値化画像を生成する。ここで、上述した係数K7,係数K8,係数K9は、撮影シーンなどの撮影条件に応じて設定される値である。
第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は、これらマスクを被写体としては適していないマスクとして、被写体候補のマスクから除外する。
評価値算出部47は、マスク絞込部46により絞り込まれた被写体候補のマスクのそれぞれに対して評価値を算出する。評価値は、一例として、マスクの面積、マスクに対する慣性モーメント、マスクの平均強度から求まる値である。ここで、マスクの平均強度としては、差分画像中のマスクに該当する画素の画素値の平均値が挙げられる。
まず、評価値算出部47は、各マスクの慣性モーメントを算出する。慣性モーメントは、マスクの重心からの画素距離の2乗×(0または1)の和により算出される。ここで、マスクの重心とは、同一の二値化画像から抽出される被写体候補のマスクの重心である。なお、マスクの重心を基準として慣性モーメントを求めるのではなく、二値化画像の中心を基準として慣性モーメントを求めることも可能である。
次に、評価値算出部47は、マスクの面積と、マスクの平均強度とをそれぞれ求める。最後に、以下の(1)式を用いて、マスクに対する評価値を求める。以下、マスクに対する評価値をEvと称する。
Ev=Ar^α/MOI+Av/β・・・(1)
ここで、「Ar」はマスクの面積、「MOI」はマスクの慣性モーメント、「Av」はマスクの平均強度を示す。また、「α」及び「β」は、チューニングパラメータとしての係数である。係数αは1.5〜2程度に、係数βは100程度に設定されるが、これら係数α、係数βは上記の例に限定されるものではない。
マスク抽出部48は、被写体候補のマスクから、被写体とするマスクを抽出する。まず、マスク抽出部48は、被写体候補のマスクのそれぞれに対して求めた評価値Evを用いて、被写体候補のマスクの順位付けを行う。マスク抽出部48は、順位付けされた被写体候補のマスクから、例えば上位2位までのマスクを被写体に相当するマスクとして抽出する。一方、保持されるマスクが2個以下の場合には、保持される全てのマスクを被写体に相当するマスクとして抽出する。一方、全てのマスクが除外される場合、言い換えれば、保持されるマスクがない場合には、マスク抽出部48は、被写体に相当するマスクがないとする。
上述した撮像装置10は、動作モードとして、静止画像を撮影する静止画撮影モードの他、動画像を撮影する動画撮影モードや、取得した静止画像や動画像を表示部23にて再生する再生モードを備えている。以下、静止画撮影モードにおける処理の流れについて、図3のフローチャートを用いて説明する。
ステップ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とする。この場合、ステップS108に進む。
ステップS105は、撮像処理である。制御部19は、撮像部17を駆動させて、撮像処理を実行する。制御部19は、撮像処理により得られた撮像画像データに対して所定の画像処理を施す。このステップS105の処理が行われると、ステップS106に進む。
ステップS106は、タグ情報生成処理である。制御部19は、ステップS102の被写体検出処理における情報やスルー画像データから得られるマスクの情報や、ステップS105の撮像処理に用いた撮影条件の情報、さらには、カメラの機種情報などを用いて、撮像画像データに付帯するタグ情報を生成する。
ステップS107は、撮像画像データを書き込む処理である。制御部19は、第1メモリ20に書き込まれた撮像画像データを読み出す。制御部19は、ステップS106にて生成したタグ情報を撮像画像データのヘッダに付帯する。最後に、制御部19は、タグ情報が付帯された撮像画像データを記憶媒体35に書き込む。
ステップS108は、撮影を終了するか否かを判定する処理である。記録用の静止画像の撮影終了の指示が操作部24の操作によって行われると、制御部19は、ステップS108の判定処理の結果をYesとする。この場合、図4のフローチャートの処理が終了する。
一方、記録用の静止画像の撮影終了の指示が操作部24の操作によって行われない場合、制御部19は、ステップS108の判定処理の結果をNoとする。この場合、ステップS101に戻る。したがって、ステップS108の判定処理がNoとなる場合には、ステップS101からステップS104の処理が繰り返し実行され、これら処理が繰り返し実行されるときに、必要に応じてステップS105の撮像処理が実行される。
次に、図4のフローチャートのステップS102に示した被写体検出処理を、図5のフローチャートに基づいて説明する。
ステップS201は、色空間変換処理である。制御部19は、画像処理が施されたスルー画像に対して色空間変換処理を実行する。これにより、RGB色空間で表されるスルー画像が、YCbCr色空間で表されるスルー画像に変換される。
ステップS202は、解像度変換処理である。制御部19は、ステップS201の色空間変換処理が施されたスルー画像に対して解像度変換処理を実行する。これにより、スルー画像が元の解像度よりも低い解像度に変換される。つまり、画像サイズが縮小されたスルー画像が生成される。
ステップS203は、差分画像を生成する処理である。制御部19は、ステップS202の解像度変換処理が施されたスルー画像を用いて、Y成分、Cb成分及びCr成分の各成分毎の基準濃度画像をそれぞれ生成する。そして、制御部19は、解像度変換処理が施されたスルー画像と基準濃度画像とを用いて、Y成分、Cb成分及びCr成分の各成分毎に、正の差分画像及び負の差分画像を生成する。
ステップS204は、差分画像を絞り込む処理である。制御部19は、ステップS203にて生成した各成分の正の差分画像及び負の差分画像の計6個の差分画像のそれぞれからヒストグラムを生成する。制御部19は、生成したヒストグラムを用いて標準偏差σ及びピーク・ピーク値ppを求める。これら値を用いて、制御部19は、被写体を特定する際に用いる差分画像を絞り込む。
制御部19は、生成されたY成分、Cb成分及びCr成分毎の正の差分画像及び負の差分画像の計6個の差分画像のそれぞれに対してヒストグラムを生成する。そして、制御部19は、各差分画像に対して、標準偏差σ及びピーク・ピーク値ppを算出する。そして、制御部19は、標準偏差σと閾値Th1とを比較する。また、制御部19は、ピーク・ピーク値ppと閾値Th2とを比較する。標準偏差σ及び閾値Th1の比較、ピーク・ピーク値pp及び閾値Th2の比較を行った後、制御部19は、除外する差分画像があるか否かを判定する。6個の差分画像のうち、例えば標準偏差σ<閾値Th1、且つピーク・ピーク値pp<Th2となる差分画像があれば、制御部19は、対象となる差分画像を除外する差分画像と判定する。一方、6個の差分画像のいずれもが、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<Th2とならない場合、制御部19は、6個の差分画像のうち、除外する差分画像はないと判定する。そして、制御部は、6個の差分画像から、上記条件を満足していない差分画像を除外することで、使用する差分画像を絞り込む。
ステップS205は、二値化処理である。制御部19は、ステップS204の処理により絞り込まれた差分画像のそれぞれに対して二値化処理を行う。二値化画像を生成した後、制御部19は、生成された二値化画像に対してラベリング処理を行う。このラベリング処理を行うことで、制御部19は、二値化画像からマスクを抽出する。
ステップS206は、マスクを絞り込む処理である。制御部19は、二値化画像から抽出されたマスクのうち、二値化画像に対するマスクの面積比が1%以下となるマスクをノイズのマスクであると判定し、被写体候補のマスクから除外する。
次に、制御部19は、二値化画像に対するマスクの面積比が60%以上となるマスクを背景であると判定し、被写体候補のマスクから除外する。
次に、制御部19は、二値化画像から抽出されたマスクのうち、マスクを含む矩形領域に対するマスクの面積比が所定の比率(例えば0.2)以下となるマスクを充填率が低いマスクであると判定し、被写体候補のマスクから除外する。
最後に、制御部19は、二値化画像から抽出されたマスクのうち、二値化画像の外周に相当する4辺のうち、隣り合う2辺にかかるマスクや、マスクを含む矩形領域の縦横比が所定の範囲(例えば0.2以上5未満)に含まれないマスクを被写体としては適していないマスクとして、被写体候補のマスクから除外する。
ステップS207は、評価値Evを算出する処理である。制御部19は、ステップS206の処理により絞り込まれたマスクに対する評価値Evを、上述した(1)式を用いて算出する。
ステップS208は、被写体に相当するマスクを抽出する処理である。制御部19は、ステップS207にて求めた各マスクの評価値Evに基づいて、被写体候補のマスクに対する順位付けを行う。制御部19は、順位付けされた被写体候補のマスクのうち、例えば上位2位までのマスクを被写体に相当するマスクとして抽出する。このステップS208の処理が終了すると、図4に示す被写体検出処理が終了する。
ここで、上述した被写体検出処理により、マスクが抽出されている場合には、制御部19は、抽出されたマスクに相当する領域を被写体の領域として設定する。その結果、スルー画像を表示部23に表示したときには、被写体の領域を含む矩形の枠(被写体枠)が、スルー画像に重畳して表示される。したがって、ステップS208の処理を行ったときにマスクが抽出されている場合には、撮影者は、スルー画像に重畳される被写体枠の表示により、撮像範囲に含まれる被写体の位置や大きさを認識することができる。
次に、図3に示すフローチャートのステップS106に示すタグ情報生成処理について、図5に示すフローチャートに基づいて説明する。
ステップS301は、撮影情報をタグ化する処理である。制御部19は、記録画像の取得時の撮影条件や、撮像装置10の機種、撮像光学系15の種類、撮影日時などの情報を読み出し、これら情報をタグ化する。
ステップS302は、マスクの基本情報をタグ化する処理である。制御部19は、被写体検出処理において得られるマスクの基本情報を第2メモリ21から読み出す。そして、制御部19は、読み出したマスクの基本情報をタグ化する。
ステップS303は、マスクの動き情報をタグ化する処理である。被写体検出処理は、所定時間間隔で取り込まれるスルー画像のそれぞれに対して実行される。また、動く被写体を撮影する場合には、取り込まれる複数のスルー画像における被写体の位置は移動している。したがって、制御部19は、各スルー画像から検出される被写体の領域として検出されるマスクの位置から、位置(座標)の変化量、移動方向、動きベクトルなどを求める。そして、制御部19は、求めた情報をマスクの動き情報とし、これら情報をタグ化する。なお、これら情報を求める場合に必要となるスルー画像のフレーム数は、例えば15〜20フレームが挙げられる。
ステップS304は、マスクの距離情報をタグ化する処理である。被写体検出処理により検出される被写体の領域は、AF制御の際に、焦点検出領域として使用される。したがって、制御部19は、AF制御時に焦点検出領域として使用されたマスクであるか否かの情報とともに、AF制御時に得られる被写体までの距離の情報を取得する。そして、制御部19は、これら情報をタグ化する。
ステップS305は、マスクの抽出方法に関わる情報をタグ化する処理である。上述した被写体検出処理においては、差分画像を求める際に用いる画像の色空間や差分画像を求める方法、差分画像を絞り込む方法、二値化処理の方法、マスクを絞り込む方法の各方法においては、上述した手法に限定される訳ではない。したがって、制御部19は、被写体検出方法に用いた方法に関する情報をタグ化する。
上述したステップS301からS305を実行することにより、撮像画像データに付帯するタグ情報が生成される。
図6は、湖面に浮かぶヨットを被写体としたときの撮影により得られるスルー画像を示す。上述したように、制御部19は、取得されたスルー画像P1に対して被写体検出処理を行う。図7(a)から図7(i)は、図6に示すスルー画像P1から生成される二値化画像を示す。図7(a)はY成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図7(b)はY成分の正の差分画像に対して閾値3σを用いて二値化処理を行うことで得られた二値化画像、図7(c)はY成分の負の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像である。また、図7(d)はCb成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図7(e)はCb成分の正の差分画像に対して閾値3σを用いて二値化処理を行うことで得られた二値化画像、図7(f)はY成分の負の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像である。さらに、図7(g)はCr成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図7(h)はCr成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図7(i)はCr成分の負の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像である。これら図7(a)から図7(i)に示す二値化画像において、グレイ及び白色で示す領域がそれぞれの二値化画像からマスクとして抽出される。
制御部19は、上述した二値化画像から抽出されるマスクを用いて被写体候補となるマスクの絞り込みを行う。この絞り込みにより、例えば図7(a)に示される二値化画像に含まれる白色で示される領域のマスク、図7(b)に示される二値化画像に含まれる白色で示される領域のマスク及び図7(f)に示される二値化画像に含まれる白色で示される領域のマスクが被写体候補のマスクとして抽出される。制御部19は、絞り込まれたマスクに対して評価値Evを求める。例えば図7(a)に示すマスク及び図7(f)に示すマスクが評価値が上位2位に入るマスクとなる。したがって、制御部19は、図7(a)に示すマスク及び図7(f)に示すマスクを被写体の領域として特定する。その結果、図6に示すスルー画像P1を表示部23に表示すると、図7(a)に示すマスクに相当する領域を含む矩形の被写体枠54と、図7(f)に示すマスクに相当する領域を含む矩形の被写体枠55がスルー画像P1に重畳表示される。
被写体の領域が検出されると、制御部19は、被写体の領域を焦点検出エリアに設定したAF制御を実行する。そして、撮影が指示されると、制御部19は撮像処理を実行する。撮像処理の後、制御部19は取得された撮像画像データに対してデータ処理を施す。制御部19は、マスクの基本情報を取得する。
撮影指示を受けて実行される撮像処理により図6に示す画像を取得する場合について考慮する。制御部19は、撮像装置10の機種、撮影条件(撮影シーンや撮影倍率など)の情報の他に、図7(a)に示すマスク及び図7(f)に示すマスクのそれぞれに対するマスクの基本情報を取得する。
まず、制御部19は、図7(a)に示すマスクに対して、マスクの位置情報を取得する。この場合、制御部19は、図7(a)に示すマスクの位置情報を「画像の中央部」とする。また、制御部19は、図7(a)に示すマスクに対して、マスクの形状情報を取得する。この場合、制御部19は、図7(a)に示すマスクの形状情報を「三角形」とする。制御部19は、図7(a)に示すマスクに相当する画素の画素値を読み出し、マスクの強度情報を取得する。
次に、制御部19は、図7(f)に示すマスクに対して、マスクの位置情報を取得する。この場合、制御部19は、図7(f)に示すマスクの位置情報を「画像の中央部」とする。制御部19は、図7(f)に示すマスクに対して、マスクの形状情報を取得する。この場合、制御部19は、図7(f)に示すマスクの形状情報を「その他形状」とする。制御部19は、図7(f)に示すマスクに相当する画素の画素値を読み出し、マスクの強度情報を取得する。
上述した情報を取得した後、制御部19は、取得した情報をまとめることで、マスクの基本情報を生成する。
次に、制御部19は、所定のフレーム数のスルー画像を読み出し、図7(a)に示すマスクの動き情報及び図7(f)に示すマスクの動き情報を取得する。また、制御部19は、図7(a)に示すマスクの動き情報及び図7(f)に示すマスクに対する距離情報を取得する。また、制御部19は、マスクの抽出方法に関する情報を取得する。
制御部19は、取得したマスクの基本情報、マスクの動き情報、マスクの距離情報、マスクの抽出方法に関する情報をそれぞれタグ化してタグ情報を生成した後、タブ情報を撮像画像データのヘッダに付帯する。制御部19は、タグ情報が付帯された撮像画像データを記憶媒体35に書き込む。したがって、記憶媒体35に記憶される撮像画像データには、被写体検出処理により特定されるマスクの情報が付帯される。
同様にして、撮影指示を受けて実行される撮像処理により図8に示す画像を取得する場合について考慮する。図8は、犬を撮影する場合に得られるスルー画像である。制御部19は、図8に示すスルー画像に対して被写体検出処理を行い、図9(a)〜図9(i)に示す二値化画像を生成する。ここで、図9(a)はY成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図9(b)はY成分の正の差分画像に対して閾値3σを用いて二値化処理を行うことで得られた二値化画像、図9(c)はY成分の負の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像である。また、図9(d)はCb成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図9(e)はCb成分の正の差分画像に対して閾値3σを用いて二値化処理を行うことで得られた二値化画像、図9(f)はY成分の負の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像である。さらに、図9(g)はCr成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図9(h)はCr成分の正の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像、図9(i)はCr成分の負の差分画像に対して閾値2σを用いて二値化処理を行うことで得られた二値化画像である。これら図9(a)から図9(i)に示す二値化画像において、グレイ及び白色で示す領域がそれぞれの二値化画像からマスクとして抽出される。
制御部19は、上述した二値化画像から抽出されるマスクを用いて被写体候補となるマスクの絞り込みを行う。この絞り込みにより、図9(a)、図9(b)及び図9(c)に示される二値化画像に含まれる白色で示される領域のマスクが被写体候補のマスクとして抽出される。制御部19は、絞り込まれたマスクに対して評価値Evを求める。ここで、図9(a)に示すマスク及び図9(c)に示すマスクの評価値が、上位2位までのマスクとなる。したがって、制御部19は図9(a)に示すマスク及び図9(c)に示すマスクを被写体の領域として特定する。その結果、図8に示すスルー画像を表示部23に表示すると、検出されたマスクを含む矩形の被写体枠56,57がスルー画像に重畳表示される。
制御部19は、ステップS102の処理により得られるマスクの情報や、ステップS105の撮像処理における撮影条件の情報、さらには、撮像装置10の機種や撮影日時などの情報などを用いて、撮像画像データに付帯するタグ情報を生成する。
制御部19は、図9(a)に示すマスクに対して、マスクの位置情報を取得する。この場合、制御部19は、図9(a)に示すマスクの位置情報を「画像の中央部」とする。制御部19は、図9(a)に示すマスクに対して、マスクの形状情報を取得する。この場合、制御部19は、図9(a)に示すマスクの形状情報を「その他形状」とする。制御部19は、図9(a)に示すマスクに相当する画素の画素値を読み出し、マスクの強度情報を取得する。
次に、制御部19は、図9(c)に示すマスクに対して、マスクの位置情報を取得する。この場合、制御部19は、図9(c)に示すマスクの位置情報を「画像の中央部」とする。制御部19は、図9(c)に示すマスクに対して、マスクの形状情報を取得する。この場合、制御部19は、図9(c)に示すマスクの形状情報を「その他形状」とする。制御部19は、図9(c)に示すマスクに相当する画素の画素値を読み出し、マスクの強度情報を取得する。
上述した情報を取得した後、制御部19は、取得した情報をまとめることで、マスクの基本情報を生成する。
次に、制御部19は、所定のフレーム数のスルー画像を読み出し、図9(a)に示すマスクの動き情報及び図9(c)に示すマスクの動き情報を取得する。また、制御部19は、図9(a)に示すマスク及び図9(c)に示すマスクの距離情報を取得する。また、制御部19は、マスクの抽出方法に関する情報を取得する。
制御部19は、取得したマスクの基本情報、マスクの動き情報、マスクの距離情報、マスクの抽出方法に関する情報をそれぞれタグ化してタグ情報を生成した後、タブ情報を撮像画像データのヘッダに付帯する。制御部19は、タグ情報が付帯された撮像画像データを記憶媒体35に書き込む。したがって、記憶媒体35に記憶される撮像画像データには、被写体検出処理により特定されるマスクの情報が付帯される。
次に、記憶媒体35に書き込まれた撮像画像データから、ユーザの意図する撮像画像データを検索する場合について説明する。なお、撮像画像データを検索することができるように、撮像装置の第2メモリ21には、画像検索プログラムが記憶されている。ここで、撮像装置10の動作モードとして、静止画撮影や動画撮影を行う撮影モードや、画像を再生する再生モードの他に、記憶された画像検索プログラムを実行して画像を検索する検索モードを備えている。なお、記憶された画像検索プログラムを実行して画像を検索する機能は、再生モード時に実行できるようにしてもよい。
ここで、制御部19が画像検索プログラムを実行すると、表示部に画像検索条件を入力する画面が表示される。なお、画像の検索は、例えばマスクの情報から検索するか、撮影日時情報から検索するか、撮影条件から検索するかをユーザが入力することで実行される。この入力は、操作部24の操作で行ってもよいし、表示部23の表面に設けられるタッチパネルの操作により行ってもよい。例えばマスク情報から検索する場合には、マスクの形状、位置、大きさ、被写体までの位置などを入力する。この入力により、制御部19は、記憶媒体35に記憶される撮像画像データのヘッダに付帯されるタグ情報を参照して、入力された検索条件に合致する撮像画像データを読み出す。そして、制御部19は、検索条件に合致する撮像画像データに基づいた画像を表示部に表示させる。
例えば図6に示す画像を検索する場合、ユーザは、画像の検索条件として、例えば、「三角形」、「画像の中央部」など、マスクの基本情報を検索条件として入力する。このような検索条件が入力されると、制御部19は記憶媒体35に記憶された撮像画像データのヘッダ情報を参照して、検索条件に合致するマスクの形状や位置の情報を有する撮像画像データを特定する。したがって、表示部23には、図6に示す画像が表示される。同様に、図6に示す画像を検索する場合、ユーザは、検索条件として、例えば、「三角形」、画像の中央部などのマスクに関する情報を入力する。このような検索条件が入力されると、制御部19は記憶媒体に記憶された撮像画像データのヘッダ情報を参照して、検索条件に合致するマスクの形状や位置の情報を有する撮像画像データを特定する。したがって、図6に示す画像が表示部23に表示される
例えば図8に示す画像を検索する場合、ユーザは、検索条件として、例えば、「その他形状」や「画像の中央部」など、マスクの基本情報を入力する。この場合も、制御部19は記憶媒体35に記憶された撮像画像データのヘッダ情報を参照して、検索条件に合致するマスクの形状や位置の情報を有する撮像画像データを特定する。したがって、表示部23には、図8に示す画像が表示される。
なお、表示部23にタッチパネルを備えている場合には、ユーザは、タッチパネルの操作により、被写体の形状や位置を手書き入力する。制御部19は、タッチパネルの操作により入力された被写体の形状や位置に基づいたタグ情報を有する撮像画像データを記憶媒体35に記憶された撮像画像データから検索することも可能である。
したがって、ユーザが被写体の形状や画面上の位置、大きさなどを覚えている場合には、その情報に基づいて画像検索を行うことができる。したがって、撮影日時や撮影条件などを覚えていなくとも、ユーザの記憶する感覚的な検索条件を用いた画像検索を実行することが可能となる。
第1の実施形態においては、被写体検出処理により検出される被写体の領域の元になるマスクの基本情報を、撮像画像データのヘッダに付帯している。しかしながら、マスクの基本情報をそのまま付帯するのではなく、マスクに相当する領域やマスク以外の領域に関する情報を解析し、解析した情報を撮像画像データのヘッダに付帯することも可能である。
以下、抽出されるマスクから画像に関する情報を解析し、解析した情報を撮像画像データのヘッダに付帯する場合の実施形態を、第2実施形態と称して説明する。
<第2実施形態>
図10は、第2実施形態を示す撮像装置60の構成を示す機能ブロック図である。第2実施形態に示す撮像装置60は、情報取得部の機能が異なる。したがって、情報取得部に対しては、符号61を付して説明する。第2実施形態に示す撮像装置60において、第1実施形態に示す撮像装置10と同一の構成となる箇所に対しては、第1実施形態と同一の符号を付して説明する。また、第1実施形態と同一の構成については、説明を省略する。
第2実施形態における情報取得部61は、被写体検出処理により求めたマスクの基本情報の他、後述する色解析情報、形状解析情報及びテクスチャ解析情報を生成する。情報取得部61は、色解析情報、形状解析情報及びテクスチャ解析情報を取得する解析部62の機能を有している。
図11に示すように、解析部62は、色解析部63、形状解析部64、テクスチャ解析部65を有している。色解析部63は、被写体検出処理の情報と、スルー画像データとを用いて、マスクに相当する領域の色相の情報を取得する。なお、被写体検出処理の情報としては、例えば、二値化処理により得られるマスク全ての情報や、被写体検出処理により検出される被写体に相当するマスクの情報を含む。まず、色解析部63は、二値化処理を行うことで得られるマスクに相当する領域に含まれる画素の画素値を取得する。そして、色解析部63は、取得した画素の画素値から、マスクに相当する領域の代表色を、マスクの色相として取得する。ここで、代表色としては、取得した画素の画素値の最頻値、平均値、最大値などが挙げられる。
次に、色解析部63は、取得した画素の画素値を用いてヒストグラムを生成する。そして、色解析部63は、生成されたヒストグラムから、マスクに相当する領域の色相分布を取得する。色解析部63は、上記に説明したマスクの色相や色相分布を取得する処理を、二値化処理を行うことで得られる全てのマスクに対して実行する。
次に、色解析部63は、スルー画像のうち、二値化処理を行うことで得られる全てのマスク以外の領域の色相を取得する。この場合も、色解析部63は、二値化処理を行うことで得られる全てのマスクを除いた領域に含まれる画素の画素値を取得し、取得した画素の画素値から、全てのマスクを除いた領域の色相を取得する。次に、色解析部63は、全てのマスクを除いた領域に含まれる画素の画素値を用いてヒストグラムを生成する。色解析部63は、生成されたヒストグラムから色相分布を取得する。
次に、色解析部63は、被写体検出処理により検出された被写体の領域を除いた領域に含まれる画素の画素値を取得する。色解析部63は、取得した画素の画素値から、被写体検出処理により検出された被写体の領域を除いた領域の代表色を取得する。また、色解析部63は、取得した画素の画素値を用いてヒストグラムを生成し、生成されたヒストグラムから被写体を除いた領域の色相分布を取得する。
上述した処理を行うことで得られる情報を用いて、色解析部63は、被写体の領域における色相と、被写体以外の領域における色相との組み合わせを示す画像全体の色構図の情報を生成する。そして、色解析部63は、被写体の領域における色相及び色相分布、被写体以外の領域における色相及び色相分布、及び画像の色構図の情報をまとめた色解析情報を生成する。
形状解析部64は、被写体の形状を解析する。マスクの形状を解析する方法としては、例えばモルフォロジー演算処理が挙げられる。このモルフォロジー演算処理は、周知であることから、その詳細を省略する。形状解析部64は、被写体の領域に対してマスクモルフォロジー演算を行い、被写体の領域の形状や、被写体の領域に含まれる線(エッジ)の種類(太さなど)や線の方向(角度など)の情報を取得する。形状解析部64は、取得された被写体の形状の情報を用いて、被写体の領域が代表的な形状(三角形、四角形以上の多角形のいずれか、円形、楕円形、星形、など)に当てはまるか否かを解析する。なお、取得された被写体の外周形状が代表的な形状に当てはまらない場合、形状解析部64は、その他形状とする。この場合、取得された被写体の外周形状を示す画像データを生成する。形状解析部64は、被写体の領域が代表的な形状の情報と、外周形状を示す画像データとをまとめた形状解析情報として生成する。
テクスチャ解析部65は、形状解析部64により実行されるモルフォロジー演算処理により得られる線(エッジ)の種類(太さなど)や線の方向(角度など)の情報を用いて、被写体の領域の構造に関わる情報を取得する。例えばモルフォロジー演算処理により得られる線の方向が一定で線の太さが一定であれば、テクスチャ解析部65は、被写体の構造が人工物であると判断する。また、モルフォロジー演算処理により得られる線の方向が不規則で、線の太さも不規則であれば、テクスチャ解析部65は、被写体の構造が自然物であると判断する。なお、自然物としては、例えば木や花や動物などが挙げられる。また、テクスチャ解析部65は、被写体の領域に含まれる画素の画素値を用いて、被写体の領域に含まれるスペキュラー成分の情報を取得する。テクスチャ解析部65は、被写体の領域に含まれるスペキュラー成分の情報から、被写体表面の質感(つるつる、ぴかぴか、ざらさらなど)の情報を取得する。テクスチャ解析部65は、これら情報を用いて被写体の領域におけるテクスチャの解析情報を生成する。
また、テクスチャ解析部65は、二値化処理により得られるマスクの数や分布状態の他、二値化処理により得られるマスクに相当する領域の色相や色相分布状態や、マスクに相当する領域以外の領域の色相や色相分布状態から、被写体の領域を除いた領域に含まれるテクスチャの解析情報を生成する。例えば二値化処理により得られるマスクの数が多く、マスクが不均一に分布している場合、テクスチャ解析部65は、例えば風景などに示されるように、被写体の領域を除いた領域が雑多であると判断する。一方、例えば二値化処理により得られるマスクの数が多いが、マスクが均一に分布している場合には、テクスチャ解析部65は、集合写真などに示されるように、被写体の領域を除いた領域が雑多であると判断する。したがって、テクスチャ解析部65は、これら情報を用いて被写体の領域以外の領域におけるテクスチャの解析情報を生成する。
そして、テクスチャ解析部65は、被写体の領域におけるテクスチャの解析情報や、被写体を除いた領域におけるテクスチャの解析情報をまとめたテクスチャ解析情報を生成する。
次に、第2実施形態の撮像装置60を用いて撮影を行う場合の処理の流れを図12のフローチャートを用いて説明する。
ステップS401は、スルー画像を取得する処理である。制御部19は、撮像部17を駆動させてスルー画像の撮像を行わせる。この撮像部17の駆動によりスルー画像が取得される。なお、撮像部17の駆動により取得されるスルー画像のデータは、撮像部17から制御部19に入力される。制御部19は、撮像部17からのスルー画像のデータに対して画像処理を実行する。ここで、制御部19は、画像処理が施されたスルー画像のデータを表示部23に出力し、表示部23に取得されたスルー画像を表示させることも可能である。
ステップS402は、被写体検出処理である。制御部19は、ステップS401にて取得したスルー画像を用いて被写体検出処理を実行する。これにより、撮像部17の撮像範囲内での被写体の領域が検出される。なお、このステップS402の処理は、ステップS102と同様の処理であり、詳細には、図4のフローチャートに示す処理が行われる。
ステップS403は、AF制御である。制御部19は、ステップS402で検出された被写体の領域を焦点検出エリアに設定したAF制御を実行する。ここで、ステップS402における被写体検出処理において被写体の領域が得られない場合には、制御部19は、撮像範囲の中心の領域を焦点検出エリアに設定したAF制御を実行する。ここで、撮像範囲の中心の領域としては、第1実施形態と同様に、例えば風景撮影用に設定される領域が挙げられる。この風景撮影用に設定される領域は、撮像範囲の面積の60%の面積からなる領域である。このステップS403の処理を実行する際に、制御部19は、設定した焦点検出エリアを基準としたAE演算を行ってもよい。
ステップS404は、撮影指示があるか否かを判定する処理である。記録用の静止画像の撮影指示が操作部24の操作によって行われると、制御部19は、ステップS404の判定処理の結果をYesとする。この場合、ステップS405に進む。一方、記録用の静止画像の撮影指示が操作部24の操作により行われない場合、制御部19は、ステップS404の判定処理の結果をNoとする。この場合、ステップS409に進む。
ステップS405は、撮像処理である。制御部19は、撮像部17を駆動させて、記録用の静止画像の撮像処理を実行する。制御部19は、記録用の静止画像のデータに対して所定の画像処理を施す。このステップS405の処理が行われると、ステップS406に進む。
ステップS406は、画像を解析する処理である。制御部19は、ステップS402における被写体検出処理により得られるマスクの情報及びスルー画像データを用いて、マスクの情報及び画像全体に関わる情報を取得する。
ステップS407は、タグ情報を生成する処理である。制御部19は、ステップS405の撮像処理により得られる撮像画像データや撮像処理に用いた撮影条件の情報、さらには、カメラの機種情報などの情報の他、ステップS406より取得したマスクの情報及び画像全体に関わる情報を用いて、撮像画像データに付帯するタグ情報を生成する。
ステップS408は、撮像画像データを書き込む処理である。制御部19は、ステップS407の処理により生成したタグ情報を、ステップS405の撮像処理により取得した撮像画像データのヘッダに付帯する。そして、制御部19は、タグ情報が付帯された撮像画像データを記憶媒体35に書き込む。
ステップS409は、撮影を終了するか否かを判定する処理である。撮影を終了するか否かを判定する処理である。記録用の静止画像の撮影終了の指示が操作部24の操作によって行われると、制御部19は、ステップS409の判定処理の結果をYesとする。この場合、図12のフローチャートの処理が終了する。
一方、記録用の静止画像の撮影終了の指示が操作部24の操作によって行われない場合、制御部19は、ステップS409の判定処理の結果をNoとする。この場合、ステップS401に戻る。したがって、ステップS407の判定処理がNoとなる場合には、ステップS401からステップS404の処理が繰り返し実行され、これら処理が繰り返し実行されるときに、必要に応じてステップS405からステップS408の処理が実行される。
次に、図12のステップS406の画像解析処理について、図13のフローチャートを用いて説明する。
ステップS501は、色解析処理である。制御部19は、被写体検出処理の情報と、スルー画像データとを用いて、被写体検出処理により検出されるマスクに相当する被写体の領域における色相及び色相分布の情報や、被写体以外の領域における色相及び色相分布の情報を取得する。そして、制御部19は、被写体の領域における色相と被写体以外の領域における色相とからなる色構図の情報を生成する。そして、制御部19は、マスクに相当する被写体の領域における色相及び色相分布の情報、被写体以外の領域における色相及び色相分布の情報、及び色構図の情報をまとめた色解析情報を生成する。
ステップS502は、形状解析処理である。制御部19は、被写体検出処理の情報と、スルー画像データとを用いて、被写体の形状が代表的な形状に該当するか否かを解析する。被写体の形状が代表的な形状のいずれかの場合には、制御部19は、被写体の形状を示す情報を生成する。また、被写体の形状が代表的な形状のいずれにも該当しない場合には、被写体の形状を「その他形状」とする情報を生成し、また、該当するマスクの画像データを生成する。そして、制御部19は、被写体の形状を特定する情報と、マスクの画像データとをまとめた、形状解析情報を生成する。
ステップS503は、テクスチャ解析処理である。制御部19は、被写体の領域に含まれる線(エッジ)の種類(太さなど)や線の方向(角度など)の情報と、被写体の領域に含まれるスペキュラー成分の情報を取得し、被写体の領域におけるテクスチャの解析情報を生成する。また、制御部19は、被写体の領域を除いた領域におけるテクスチャの解析情報を生成する。制御部19は、これら解析情報をまとめたテクスチャ解析情報を生成する。
次に、図12のステップS407に示すタグ情報生成処理の流れを図14のフローチャートに基づいて説明する。
ステップS601は、撮影情報をタグ化する処理である。制御部19は、記録画像の取得時の撮影条件や、撮像装置10の機種、撮像光学系15の種類、撮影日時などの情報を読み出し、これら情報をタグ化する。
ステップS602は、マスクの基本情報をタグ化する処理である。制御部19は、被写体検出処理において得られるマスクの基本情報を第2メモリ21から読み出す。そして、制御部19は、読み出したマスクの基本情報をタグ化する。ここで、マスクの基本情報としては、第1実施形態に示すように、被写体に相当するマスクの位置や強度が挙げられる。
ステップS603は、色解析情報をタグ化する処理である。制御部19は、画像解析処理から求められる色解析情報を第2メモリ21から読み出す。そして、制御部19は、読み出した色解析情報をタグ化する。
ステップS604は、形状解析情報をタグ化する処理である。制御部19は、画像解析処理から求められる形状解析情報を第2メモリ21から読み出す。そして、制御部19は、読み出した形状解析情報をタグ化する。
ステップS605は、テクスチャ解析情報をタグ化する処理である。制御部19は、画像解析処理から求められるテクスチャ解析情報を第2メモリ21から読み出す。そして、制御部19は、読み出したテスクチャ解析情報をタグ化する。
ステップS606は、マスクの動き情報をタグ化する処理である。制御部19は、各スルー画像から検出される被写体の領域として検出されるマスクの位置情報から、位置(座標)の変化量、移動方向などのマスクの動きの履歴をまとめたマスクの動き情報を生成している。したがって、制御部19は、マスクの動き情報をタグ化する。
ステップS607は、マスクの距離情報をタグ化する処理である。被写体検出処理により検出される被写体の領域は、AF制御の際に、焦点検出領域として使用される。したがって、制御部19は、AF制御時に焦点検出領域として使用されたマスクであるか否かの情報とともに、AF制御時に得られる被写体までの距離の情報を取得する。そして、制御部19は、これら情報をタグ化する。
ステップS608は、マスクの抽出方法に関わる情報をタグ化する処理である。制御部19は、被写体検出方法に用いた方法に関する情報をタグ化する。
上述したステップS601からS608を実行することにより、撮像画像データに付帯するタグ情報が生成される。
図6に示す湖畔に浮かぶヨットを撮影する場合、被写体検出処理により検出される被写体の領域は、被写体枠及び被写体枠内に含まれる。例えば、被写体枠に含まれる被写体は、ヨットの帆である。上述した色解析処理を行うと、被写体の領域における色相は白色、また、被写体を除く領域における色相は青色となる。撮像画像データに付帯される色解析情報は、被写体の色相は「白色」、背景は「青色」、そして、画像の色相構成は「白色/青色」となる。
また、被写体枠に含まれる被写体は、2隻のヨットと陸地とからなる。マスクに相当する領域の画素の画素値の代表色は、白色となる。したがって、撮像画像データに付帯される色解析情報は、被写体の色相は「白色」、背景は「青色」、そして、画像の色相構成は「白色/青色」となる。また、マスクの形状は複雑となるので、代表的な形状は該当しないので、「その他形状」が選択される。したがって、この場合には、図7(f)の白色に示すマスクの画像データが生成される。
図6に示す画像では、差分画像に対する二値化処理を行ったときには、複数の細かいマスクが取得される。また、これらマスクに相当する領域の色相は青色又は緑色で、且つ色相分布も青色及び緑色を示す色相分布となる。したがって、テクスチャ解析処理を行うと、テクスチャとして「水面」であることを示す情報がテクスチャ解析情報として生成される。
したがって、図6に示す画像を撮影した場合には、上述した情報が撮像画像データのヘッダに付帯される。
また、図8に示す2匹の犬を撮影する場合、被写体検出処理により検出される被写体の領域は、被写体枠及び被写体枠内に含まれる。例えば、被写体枠に含まれる被写体は、犬の芦毛の領域となる。この場合、したがって、撮像画像データに付帯される色解析情報は、被写体の色相は「白色」となる。また、被写体を除いた領域の色相は「灰色」となる。したがって、画像の色相構成は「白色/灰色」となる。この場合、被写体検出処理により検出されるマスクの形状は、マスクの形状は複雑となるので、代表的な形状は該当しないので、「その他形状」が選択される。したがって、この場合には、図9(a)及び図9(c)の白色に示すマスクの画像データが生成される。
図8に示す被写体枠に含まれる被写体に対するテクスチャ解析処理を行うと、その解析により、犬の毛並みに合わせたエッジが得られる。また、エッジの方向は、一定であることから、この場合には、被写体に含まれるテクスチャは一定のパターンがあると判定される。したって、テクスチャ解析処理を行うことで、この画像の被写体のテクスチャは、エッジの向きや大きさや一定であるテクスチャとなることを示すテクスチャ解析情報が生成される。
次に、記憶媒体35に書き込まれた撮像画像データから、ユーザの意図する撮像画像データを検索する場合について説明する。なお、撮像装置60の第2メモリ21には、撮像画像データを検索するための画像検索プログラムが記憶されている。ここで、撮像装置60の動作モードとして、静止画撮影や動画撮影を行う撮影モードや、画像を再生する再生モードの他に、記憶された画像検索プログラムを実行して画像を検索する検索モードを備えている。なお、記憶された画像検索プログラムを実行して画像を検索する機能は、再生モード時に実行できるようにしてもよい。
ここで、制御部19が画像検索プログラムを実行すると、表示部23に画像検索条件を入力する画面が表示される。なお、画像の検索は、例えば画像の色相を入力することで開始される。
操作部24の操作により、ユーザが意図する画像に関する被写体の領域の色相や被写体以外の領域の色相の情報が入力されると、制御部19は、記憶媒体35に記憶された撮像画像データのヘッダを参照し、入力された色相に一致する色解析情報を有する撮像画像データを検索する。そして、制御部19は、入力された色相に一致する色解析情報を有する撮像画像データを読み出す。そして、制御部19は、読み出した撮像画像データに基づく画像を表示部23に表示する。
次に、操作部24の操作により、ユーザが意図する画像に関する被写体の形状についての情報が入力されると、制御部19は、第1メモリ20に書き込まれた撮像画像データのタグ情報を参照し、入力された被写体の形状の情報と一致する形状解析情報を有する撮像画像データの有無を判定する。この場合、検索対象となる撮像画像データは、表示部23に表示される画像の元になる撮像画像データである。そして、制御部19は、入力された被写体の形状の情報と一致する形状解析情報を有する撮像画像データに基づく画像を表示部23に表示する。したがって、表示部23に表示される画像は、検索条件を入力する毎に絞り込まれて表示される。
なお、タッチパネルを前面に備えた表示部23の場合には、被写体の形状を言葉で入力するのではなく、形状そのものを入力してもよい。
次に、操作部24の操作により、ユーザが意図する画像に関する被写体のテクスチャについての情報が入力されると、制御部19は、入力されたテクスチャの情報と一致するテクスチャ解析情報を有する撮像画像データの有無を判定する。この場合も、検索対象となる撮像画像データは、表示部23に表示される画像の元になる撮像画像データである。制御部19は、入力された被写体の形状の情報と一致する形状解析情報を有する撮像画像データに基づく画像を、表示部23に表示する。したがって、表示部23に表示される画像は、検索条件を入力する毎に絞り込まれて表示される。
このように、ユーザが意図する画像に対する情報を入力することで、記憶媒体35に記憶される撮像画像データから、該当する撮像画像データが絞り込まれる。したがって、最終的にユーザが意図している構成からなる画像が選択され、その画像が表示部に表示される。したがって、撮影日時情報や、撮影条件を入力することで画像検索しなくとも、ユーザの意図する画像を、ユーザの感覚で検索することができる。
なお、画像検索における入力順序は、色相、形状、テクスチャの順に限定する必要はなく、ユーザの意図する入力順序としてもよい。また、色相、形状、テクスチャを全て検索条件として、検索することも可能である。
上述した第1実施形態及び第2実施形態においては、撮像処理の後にタグ情報を生成する処理を行っているが、これに限定する必要はなく、被写体検出処理を行った後にタグ情報を生成する処理を行うことも可能である。
被写体検出処理を行った後に、タグ情報を生成する処理を行う場合、生成されたタグ情報を表示部に表示させることも可能である。この場合、ユーザは、表示部に表示されるタグ情報と、スルー画像とを同時に確認することができる。したがって、このような動作を行わせる場合には、表示部23に表示されるタグ情報は、ユーザによる操作部の操作により変更する(書き換える)ことを可能としてもよい。
また、このようなタグ情報は、スルー画像に重畳表示させるだけでなく、撮像処理により取得される記録用の静止画像を表示したときに重畳表示させることも可能である。この場合、ユーザが操作部24を操作してタグ情報を編集することも可能である。
<第3実施形態>
図15は、第3実施形態の画像処理装置の構成例を示す図である。第3実施形態の画像処理装置90の具体例としては、コンピュータが挙げられる。
図15に示す画像処理装置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モジュールなど)である。なお、図15においては、データ読込部91が、着脱自在な記憶媒体99からデータを取得する読込デバイスの場合を示している。
記憶装置92は、例えばハードディスクや不揮発性の半導体メモリなどの記憶媒体からなる。記憶装置92は、上記プログラムや、プログラムの実行に必要となる各種データを記憶する。なお、記憶装置92は、データ読込部91が読み込んだ画像のデータなどを記憶することができる。
CPU93は、画像処理装置90の各部を統括的に制御するプロセッサである。このCPU93は、プログラムを実行したときに画像処理部31の機能を有している。この画像処理部31の機能として、被写体検出部32や、第1実施形態の情報取得部33又は第2実施形態の情報取得部61が設けられる。被写体検出部32は、第1実施形態と同一構成(色空間変換部41、解像度変換部42、差分画像生成部43、画像判定部44、二値化処理部45、マスク絞込部46、評価値算出部47及びマスク抽出部48)を備えている。 メモリ94は、CPU93がプログラムを実行したときの各種演算結果を一時的に記憶する。このメモリ94は、例えば揮発性のSDRAMである。
この第2実施形態の画像処理装置90は、例えば第1実施形態の画像処理部31の機能と同一であれば、データ読込部91又は記憶装置92から入力画像となる画像のデータを取得すると、CPU93が図4に示す被写体検出処理や図5に示すタグ情報生成処理を実行する。また、例えば第2実施形態の画像処理部31の機能と同一であれば、データ読込部91又は記憶装置92から入力画像となる画像のデータを取得すると、CPU93が図4に示す被写体検出処理、図13に示す画像解析処理や図14に示すタグ情報生成処理を実行する。
したがって、第3実施形態の画像処理装置90においても、第1実施形態の被写体検出処理や第2実施形態の被写体検出処理と同様の効果を得ることができる。