以下、実施形態について図面を参照して詳細に説明する。
本実施形態では、図1に示すようなレンズ鏡筒10と、撮像装置20と、記録媒体40とからなる装置を例に挙げて説明する。
撮像装置20は、レンズ鏡筒10から入射される光学像を撮像する。得られた画像は静止画又は動画の画像として、記憶媒体40に記憶される。
レンズ鏡筒10は、焦点調整レンズ(以下、「AF(Auto Focus)レンズ」と称する)11と、レンズ駆動部12と、AFエンコーダ13と、鏡筒制御部14とを備える。なお、レンズ鏡筒10は、撮像装置20に着脱可能に接続されてもよいし、撮像装置20と一体であってもよい。
撮像装置20は、撮像部21と、画像処理装置22と、表示部23と、バッファメモリ部24と、記憶部25と、CPU26と、操作部27と、通信部28とを備える。撮像部21は、撮像素子29と、A/D(Analog/Digital)変換部30とを備える。撮像部21は、設定された撮像条件(例えば絞り値、露出値等)に従って、CPU26により制御される。
レンズ鏡筒10において、AFレンズ11は、レンズ駆動部12により駆動され、撮像装置20の撮像素子29の受光面(光電変換面)に、光学像を導く。AFエンコーダ13は、AFレンズ11の移動を検出し、AFレンズ11の移動量に応じた信号を、鏡筒制御部14に出力する。ここで、AFレンズ11の移動量に応じた信号とは、例えば、AFレンズ11の移動量に応じて位相が変化するサイン(sin)波信号であってもよい。
鏡筒制御部14は、撮像装置20のCPU26から入力される駆動制御信号に応じて、レンズ駆動部12を制御する。ここで、駆動制御信号とは、AFレンズ11を光軸方向に駆動させる制御信号である。鏡筒制御部14は、駆動制御信号に応じて、例えば、レンズ駆動部12に出力するパルス電圧のステップ数を変更する。また、鏡筒制御部14は、AFレンズ11の移動量に応じた信号に基づいて、レンズ鏡筒10におけるAFレンズ11の位置(フォーカスポジション)を、撮像装置20のCPU26に出力する。ここで、鏡筒制御部14は、例えば、AFレンズ11の移動量に応じた信号を、AFレンズ11の移動方向に応じて積算することで、レンズ鏡筒10におけるAFレンズ11の移動量(位置)を算出してもよい。レンズ駆動部12は、鏡筒制御部14の制御に応じてAFレンズ11を駆動し、AFレンズ11をレンズ鏡筒10内で光軸方向に移動させる。
撮像装置20において、撮像素子29は、光電変換面を備え、レンズ鏡筒10(光学系)により光電変換面に結像された光学像を電気信号に変換して、A/D変換部30に出力する。撮像素子29は、例えば、CMOS(Complementary Metal Oxide Semiconductor)などの光電変換素子で構成される。また、撮像素子29は、光電変換面の一部の領域について、光学像を電気信号に変換するようにしてもよい(画像切り出し)。また、撮像素子29は、操作部27を介してユーザからの撮影指示を受け付けた際に得られる画像を、A/D変換部30および通信部28を介して記憶媒体40に出力する。一方、撮像素子29は、操作部27を介してユーザからの撮影指示を受け付ける前の状態において、連続的に得られる画像をスルー画像として、バッファメモリ部24及び表示部23に、A/D変換部30を介して出力する。
A/D変換部30は、撮像素子29によって変換された電気信号をデジタル化して、デジタル信号である画像をバッファメモリ部24等に出力する。
画像処理装置22は、記憶部25に記憶されている画像処理条件に基づいて、バッファメモリ部24に一時的に記憶されている画像に対する画像処理を行う。そして、画像処理後の画像は、通信部28を介して記憶媒体40に記憶される。また、画像処理装置22は、バッファメモリ部24に一時的に記憶されている画像に対して、マスク抽出処理を行う(詳細は後述する)。そして、抽出したマスクに関する情報は、CPU26に出力されるとともに、記憶部25や記憶媒体40等に記憶される。
表示部23は、例えば液晶ディスプレイであって、撮像部21によって生成された画像、及び操作画面等を表示する。バッファメモリ部24は、撮像部21によって生成された画像を一時的に記憶する。記憶部25は、撮像条件や、各種判定の際にCPU26によって参照される判定条件などを記憶する。
CPU26は、画像処理部22や記憶部25などから適宜必要な情報を取得し、取得した情報に基づいて、撮像装置20内の各部を統括的に制御する。CPU26による制御には、焦点調整(AF)の設定、露出調整(AE)の設定、ホワイトバランス調整(AWB)の設定、閃光の発光量の変更の設定、被写体追尾の設定、各種撮影モードの設定、各種画像処理の設定、各種表示の設定、ズーム倍率に連動した明るさの最適化の設定などが含まれる。また、CPU26は、操作部27の操作状態を監視するとともに、表示部23への画像データの出力を行う。
操作部27は、例えば、電源スイッチ、シャッタボタン、マルチセレクタ(十字キー)、又はその他の操作キーを備え、ユーザによって操作されることでユーザの操作入力を受け付け、操作入力に応じた信号をCPU26に出力する。
通信部28は、カードメモリ等の取り外しが可能な記憶媒体40と接続され、この記憶媒体40への情報(画像データ、領域の情報など)の書込み、読み出し、あるいは消去を行う。
記憶媒体40は、撮像装置20に対して着脱可能に接続される記憶部であって、情報(画像データ、領域の情報など)を記憶する。なお、記憶媒体40は、撮像装置20と一体であってもよい。
撮像装置20は、撮影時に、焦点調節情報に基づいて主要被写体領域を検出する通常モードの他に、自動で主要被写体領域を検出する自動検出モードを備える。自動検出モードは、構図確認用のスルー画像等に基づいて、主要被写体領域を自動で継続的に検出し、検出した主要被写体領域の情報を表示部23に表示するとともに、バッファメモリ部24や記憶部25等に記憶するモードである。この自動検出モードは操作部27を介したユーザ操作により設定可能であっても良いし、CPU26により自動で設定可能であっても良い。
以下、自動検出モード実行時のCPU26の動作の概要について、図2のフローチャートを参照して説明する。
ステップS101において、CPU26は、撮像部21を制御して、スルー画像の取得を開始する。取得されたスルー画像の画像情報はバッファメモリ部24に一時的に記憶される。このスルー画像は、所定の時間間隔で連続して生成される。そして、CPU26によるスルー画像の取得は、時間的に連続して順次行われる。
ステップS102において、CPU26は、画像処理装置22を制御して通常の画像処理を行う。通常の画像処理とは、ホワイトバランス調整、補間処理、色調補正処理、階調変換処理などである。各処理の具体的な方法は公知技術と同様であるため説明を省略する。画像処理装置22は、バッファメモリ部24から対象となる画像の画像データを取得し、画像処理を施した後に、再びバッファメモリ部24に出力する。
ステップS103において、CPU26は、参照情報があるか否かを判定する。CPU26は、参照情報があると判定すると後述するステップS105に進む。一方、参照情報がないと判定すると、CPU26は、ステップS104に進む。
参照情報とは、過去の被写体検出の結果に応じて、被写体の検出方法(マスクの抽出方法)を変更する際に参照する情報である。参照情報には、例えば、過去の被写体検出において、安定して検出された被写体の情報や、過去の被写体検出において、検出に関する評価値の高い被写体の情報などが含まれる。参照情報の具体例、および、被写体の検出方法の変更の具体例については後述する。
ステップS104において、CPU26は、画像処理装置22を制御してマスク抽出処理(I)を行う。マスク抽出処理とは、画像における特徴量を算出し、特徴量に基づいて被写体領域を検出するための一手法である。例えば、画像処理装置22は、画像における特徴量を求め、同様の特徴量を有する連続領域を求めることによりマスク抽出を行う。また、マスク抽出処理(I)とは、ステップS103において参照情報がないと判定された場合に行われるマスク抽出処理である。画像処理装置22は、例えば、ステップS102で通常の画像処理を施した画像をバッファメモリ部24から読み出し、適宜リサイズ処理および色空間変換処理を行い、YUV(例えば、YCbCr)画像を生成する。そして、生成したYUV画像に基づいて複数のマスク画像を作成し、作成した複数のマスクに対して、不要なマスクを排除する。なお、この際に、画像処理装置22は、各処理後の各マスクに優先度を決定しても良い。優先度とは、作成した複数のマスクから、実際に被写体領域の抽出に用いるマスクを決定する際の優先度合を示す。優先度の具体例は後述する。そして、画像処理装置22は、一定評価値以上のマスクを求め、被写体領域を抽出するためのマスクとする。なお、被写体領域を抽出するためのマスクを選択する方法は、公知技術などどのような方法であっても良い。また、上述した優先度が決定されている場合、画像処理装置22は、これらの優先度に応じて、優先度の高い各マスクを優先しつつ、一定評価値以上のマスクを求め、被写体領域を抽出するためのマスクとする。そして、画像処理装置22は、選択したマスクに基づいて被写体領域を抽出する。
ステップS105において、CPU26は、画像処理装置22を制御してマスク抽出処理(II)を行う。マスク抽出処理(II)とは、ステップS103において参照情報があると判定された場合に行われるマスク抽出処理であり、上述した参照情報に基づいて行われるマスク抽出処理である。
CPU26は、参照情報に基づいて、画像処理装置22によるマスク抽出処理の方法を変更する。具体的には、CPU26は、参照情報に基づいて、過去に検出した被写体をより安定して継続的に検出できるように、マスク抽出において算出する特徴量の算出方法や、算出した特徴量に基づく被写体の検出方法を決定し、画像処理装置22によるマスク抽出処理を行う。マスク抽出処理(II)の具体例については後述する。
ステップS106において、CPU26は、ステップS104のマスク抽出処理(I)またはステップS105のマスク抽出処理(II)により抽出した被写体領域に関する被写体情報を、バッファメモリ部24や記憶部25等に記録する。なお、この被写体情報には、ステップS104またはステップS105のマスク抽出処理の抽出条件(色区分やマスク区分など)、マスクの位置、マスクの大きさや形状などの情報が含まれる。
ステップS107において、CPU26は、ステップS104のマスク抽出処理(I)またはステップS105のマスク抽出処理(II)により被写体領域を抽出できたか否かを判定する。CPU26は、被写体領域を抽出できたと判定するとステップS108に進む。一方、被写体領域を抽出できないと判定すると、CPU26は、ステップS102に戻り、次のフレームの画像に対してステップS102以降の処理を行う。
被写体領域を抽出できたか否かとは、すなわち、ステップS104のマスク抽出処理(I)またはステップS105のマスク抽出処理(II)によりマスク抽出が成功したか否かということである。例えば、ステップS104のマスク抽出処理(I)またはステップS105のマスク抽出処理(II)において、特徴量が算出できなかったり、評価値が低すぎたりした場合には、マスク抽出が失敗し、被写体領域を抽出できないことになる。被写体領域を抽出できない場合、CPU26は、以降の処理を行わずに、被写体領域を抽出できるまで、ステップS102からステップS106の処理を繰り返す。
ステップS108において、CPU26は、新たな参照情報があるか否かを判定する。CPU26は、新たな参照情報があると判定するとステップS109に進む。一方、新たな参照情報がないと判定すると、CPU26は、後述するステップS110に進む。
新たな参照情報とは、ステップS104のマスク抽出処理(I)またはステップS105のマスク抽出処理(II)の結果に基づく情報であり、以降の処理において参照情報と成り得る情報である。ステップS103で説明したように、参照情報には、過去の被写体検出において安定して検出された被写体の情報や、過去の被写体検出において検出に関する評価値の高い被写体の情報などが含まれる。そのため、ステップS104のマスク抽出処理(I)またはステップS105のマスク抽出処理(II)によって、新たに、ある被写体が安定して検出された場合や、評価値の高い被写体が検出された場合には、新たな参照情報があると判定することができる。
ステップS109において、CPU26は、新たな参照情報をバッファメモリ部24や記憶部25等に記録する。
ステップS110において、CPU26は、撮影指示が行われたか否かを判定する。CPU26は、撮影指示が行われたと判定するとステップS111に進む。一方、撮影指示が行われないと判定すると、CPU26は、ステップS102に戻り、次のフレームの画像に対してステップS102以降の処理を行う。撮影指示は、操作部27のシャッタボタンを介したユーザ操作により行われる。このユーザ操作は、いわゆる半シャッタと全シャッタの何れであっても良い。
ステップS111において、CPU26は、各部を制御して撮影を実行する。このとき、CPU26は、ステップS106で記録した被写体情報に基づいて、焦点調整(AF)の設定処理、露出調整(AE)の設定処理、ホワイトバランス調整処理(AWB)の3A処理を行うとともに、画像処理装置22における各種画像処理の条件等を決定する。なお、被写体情報が記録される前に撮影指示が行われた場合や、記録された撮影情報が撮影に用いるのに不適当な情報である場合には、CPU26は、通常の3A処理を行って、焦点調整(AF)の設定処理、露出調整(AE)の設定処理、ホワイトバランス調整処理(AWB)の3A処理を行うとともに、画像処理装置22における各種画像処理の条件等を決定すると良い。
ステップS111において、CPU26は、撮像により生成した画像を、通信部28を介して記憶媒体40に記録して一連の処理を終了する。
次に、参照情報が、「安定マスク情報」である場合のCPU26の具体的な動作について、図3のフローチャート、および図4から図11の模式図を参照して説明する。
ステップS201およびステップS202において、CPU26は、図2のステップS101およびステップS102と同様の処理を行う。
ステップS203において、CPU26は、動き量を検出する。動き量の検出は、どのように行われても良い。例えば、撮像装置20により連続して取得された少なくとも2枚の画像に基づいて、公知技術と同様に、画像解析、フレーム差分、マッチング誤差、動きベクトルなどによって動き量を検出しても良い。また、撮像装置20自体の動きを検出する動きセンサ(例えば、加速度センサ)を撮像装置20に予め備え、この動きセンサの出力に応じて動き量を検出しても良い。
ステップS204において、CPU26は、ステップS203で検出した動き量が所定の閾値Ta以上であるか否かを判定する。CPU26は、ステップS203で検出した動き量が所定の閾値Ta以上であると判定するとステップS202に戻る。一方、ステップS203で検出した動き量が所定の閾値Ta未満であると判定すると、CPU26は、ステップS205に進む。
この判定は、撮像装置20自体の動きや主要被写体の動きがある程度少ないか否かを判定するためのものである。動き量が多い場合には、撮像装置20が速い速度で動いている可能性や、急速なズームが行われている可能性や、主要被写体の動きが大きい可能性が高い。このような場合には、自動検出に相応しい状態でないため、CPU26は、以降の処理を行わずにステップS202に戻る。
ステップS205において、CPU26は、ステップS203で検出した動き量を、バッファメモリ部24や記憶部25等に記録する。なお、ここで記録した動き量を、後述するステップS207のマスク抽出処理(I)またはステップS208のマスク抽出処理(II)に利用しても良い。
ステップS206において、CPU26は、安定マスク情報があるか否かを判定する。CPU26は、安定マスク情報があると判定すると後述するステップS208に進む。一方、安定マスク情報がないと判定すると、CPU26は、ステップS207に進む。
安定マスク情報とは、参照情報の一つである。安定マスク情報とは、安定マスクが(過去に)存在することを示す情報であり、その安定マスクのマスク情報も含む。マスク情報には、例えば、マスク抽出処理の抽出条件(色区分やマスク区分など)、マスクの位置、マスクの大きさや形状などの情報が含まれる。過去のマスク抽出処理において、連続あるいは間欠連続の複数のフレームにおいて、略同色、略同サイズ、略同じ位置の被写体が検出された場合には、検出に用いたマスクを、上述した「安定マスク」と見なす。
安定マスクであるか否かの判定は、どのような方法を用いても良い。例えば、n回(nフレーム)以上連続して同一のマスクを抽出したか否かに基づいて、安定マスクであるか否かを判定しても良い。なお、上述したnは所定の閾値(例えば、n=7)であり、撮像部21による撮像時のフレームレート、レンズ鏡筒10におけるズーム倍率、操作部27を介したユーザ操作などに基づいて適宜変更可能としても良い。さらに、上述したマスク情報等に基づいて、さらに過去に行われたマスク抽出の傾向(抽出されたマスクの種類、出現頻度など)を求め、この傾向に応じて上述したnの値を適宜変更可能としても良い。例えば、過去に高い頻度で抽出されたマスクについては、nの値を小さめに変更しても良い。
また、例えば、前回まで連続して同一のマスクを抽出したか否かを加味して安定マスクであるか否かの判定を行っても良い。このような判定を行うことにより、一時の未抽出が発生した場合については、それまでの蓄積を単純に無効にしてしまうことがない。
このように安定マスクが存在する場合には、CPU26は、安定マスクが存在することと、その安定マスクのマスク情報とを、参照情報としてバッファメモリ部24や記憶部25等に記録する。安定マスク情報の記録については、後述するステップS212で説明する。
ステップS207において、CPU26は、画像処理装置22を制御してマスク抽出処理(I)を行う。マスク抽出処理(I)とは、図2のステップS104で説明した通り、ステップS103において参照情報がない(ここでは安定マスク情報がない)と判定された場合に行われるマスク抽出処理である。
画像処理装置22は、図4に示すように、上述したYUV画像のY画像、Cb画像およびCr画像のそれぞれからYマスクM[Y]、CbマスクM[Cb]およびCrマスクM[Cr]を作成する。画像処理装置22は、Y画像から、例えば、Y画像の中心の4画素における平均画素値Yaveに対して、所定の範囲(例えば、Yave+K・σ)の2値化画像を生成する。そして、生成したY2値化画像に対してラベリング処理を施すことによりYマスクM[Y]を作成する。なお、上述したKは所定の係数(例えば、K=0.6)であり、σはYaveからの偏差である。また、2値化処理およびラベリング処理は公知技術と同様であるため説明を省略する。画像処理装置22は、同様の処理を行ってCb画像からCbマスクM[Cb]を作成し、Cr画像からCrマスクM[Cr]を作成する。
また、画像処理装置22は、図4に示すように、作成したYマスクM[Y]、CbマスクM[Cb]およびCrマスクM[Cr]から中心マスクM[a]を作成する。中心マスクM[a]は、YマスクM[Y]、CbマスクM[Cb]およびCrマスクM[Cr]が重なる重複領域からなるマスクである。なお、中心マスクM[a]を作成する際には、領域を例えば所定の中央領域に限定して重複領域を求める。中央領域は、図4に示すようにAcとする。以降の処理では、最終的に作成した中心マスクM[a]のみを使用する。
また、画像処理装置22は、図5に示すように、Y画像から3種類の輝度マスクを作成する(ただし、Y画像から4種類以上のマスクを作成しても良い。)。画像処理装置22は、Y画像の各画素値を入力値とし、補正(例えばガンマ補正)後の各画素値を出力値とする。そして、出力値に応じて3つの区分の2値化画像を生成する。図5に示すように、Y画像のハイライト部分からはYハイライト2値化画像が生成され、Y画像の中間以上の部分からはY中間以上2値化画像が生成され、Y画像のシャドー部分からはYシャドー2値化画像が生成される。そして、画像処理装置22は、生成した3種類の2値化画像のそれぞれに対してラベリング処理を施すことにより、YハイライトマスクM[Y1]、Y中間以上マスクM[Y2]およびYシャドーマスクM[Y3]の各輝度マスクを作成する。
また、画像処理装置22は、図6に示すように、Cb画像およびCr画像のそれぞれから、3種類ずつの色マスクを作成する。画像処理装置22は、Cb画像に対して、上述した図5の例と同様に、出力値に応じて3つの所定区分の2値化画像を生成する。図6に示すように、Cb画像からは、青側を中心としたCb青側2値化画像、中間成分を中心としたCb中間2値化画像、黄側を中心としたCb黄側2値化画像が生成される。同様に、Cr画像からは、赤側を中心としたCr赤側2値化画像、中間成分を中心としたCr中間2値化画像、緑側を中心としたCr緑側2値化画像が生成される。そして、画像処理装置22は、生成した6種類の2値化画像のそれぞれに対してラベリング処理を施すことにより、Cb青側マスクM[Cb1]、Cb中間マスクM[Cb2]、Cb黄側マスクM[Cb3]、Cr赤側マスクM[Cr1]、Cr中間マスクM[Cr2]、Cr緑側マスクM[Cr3]の6種類の色マスクを作成する。
また、画像処理装置22は、図7に示すように、Cb画像およびCr画像から例えば、純色赤マスクM[R]を作成する。なお、純色赤マスクM[R]以外の純色マスクをさらに作成しても良い。純色マスクとは、任意の一定の領域を有する「絶対的に純度の高い被写体」を抽出したマスクである。純色マスクの作成は、公知技術と同様に行われるため説明を省略する。
なお、上述した各マスクの作成時には、適宜2値化画像を生成する例を示したが、2値化画像を生成することなく、各画像から多値化画像に対するラベリングマスクを直接作成する構成としても良い。
以上説明した処理により、画像処理装置22は、図4に示した1種類のマスク(中心マスクM[a])と、図5に示した3種類の輝度マスクと、図6に示した6種類の色マスクと、図7に示した1種類の純色マスクの合計11種類のマスクを作成する。
次に、画像処理装置22は、作成した11種類のマスクに対して、不要なマスクを排除する。なお、この際に、画像処理装置22は、各処理後の各マスクに優先度を決定しても良い。優先度とは、11種類のマスクから、実際に被写体領域の抽出に用いるマスクを決定する際の優先度合を示す。
一般的な画像を対象とした通常のマスク抽出処理であるマスク抽出処理(I)においては、例えば、図8に示すように、3段階の優先度が予め定められる。優先度1位は、4種類の純色マスクである純色赤マスクM[R]であり、優先度2位は、色マスクのうちCb青側マスクM[Cb1]およびCb黄側マスクM[Cb3]であり、優先度3位はその他のマスクである。なお、図8に示す優先度は一例であり、複数段階であれば何段階であっても良い。また、図8における各マスクの各優先度への振り分けは一例である。図8に示すように、優先度は、色情報に関するマスクの優先度が相対的に高く決定されている。
最後に、画像処理装置22は、上述した11種類のマスクのうち、一定評価値以上のマスクを求め、被写体領域を抽出するためのマスクとする。なお、被写体領域を抽出するためのマスクを選択する方法は、公知技術などどのような方法であっても良い。なお、上述した優先度が決定されている場合、画像処理装置22は、これらの優先度に応じて、優先度の高い各マスクを優先しつつ、一定評価値以上のマスクを求め、被写体領域を抽出するためのマスクとする。そして、画像処理装置22は、選択したマスクに基づいて被写体領域を抽出し、後述するステップS209に進む。
ステップS208において、CPU26は、画像処理装置22を制御してマスク抽出処理(II)を行う。マスク抽出処理(II)とは、図2のステップS105で説明した通り、ステップS103において参照情報がある(ここでは安定マスク情報がある)と判定された場合に行われるマスク抽出処理である。マスク抽出処理(II)は、参照情報に基づいて行われるマスク抽出処理である。
CPU26は、安定マスク情報に基づいて、画像処理部22によるマスク抽出処理の方法を変更する。具体的には、CPU26は、安定マスク情報に基づいて、過去に検出した被写体をより安定して継続的に検出できるように、マスク抽出において算出する特徴量の算出方法や、算出した特徴量に基づく被写体の検出方法をステップS207で説明したマスク抽出処理(I)から変更し、画像処理部22によるマスク抽出処理を行う。画像処理装置22は、下記の(a)から(d)のうち、少なくとも1つを実行することにより、マスク抽出処理の内容をマスク抽出処理(I)から変更し、マスク抽出処理(II)を行う。
(a)新たな区分のマスクの追加
画像処理装置22は、ステップS207で説明した11種類のマスクを作成する際に、さらに、安定マスク情報に基づいて、新たな区分のマスクを作成する。例えば、安定マスクがCr赤側マスクM[Cr1]である場合には、画像処理装置22は、図9に示すように、Cr画像のうち、Cr赤側マスクM[Cr1]により抽出される被写体領域Aeに相当する画素における平均画素値Craveに対して、所定の範囲(例えば、Crave±K1・σ)の2値化画像を生成する。そして、生成したCr安定2値化画像に対してラベリング処理を施すことによりCr安定マスクM[Cr−S]を作成する。なお、上述したK1は所定の係数(例えば、K=3.0)であり、σはCraveからの偏差である。
上述した新しい区分は、過去の検出において、安定マスクにより抽出された被写体領域を、より確実かつ安定して検出するための新たな区分である。画像処理装置22は、このような新しい区分を設けることにより、参照情報である安定マスク情報に基づいて、特徴量を算出する際に用いる画像の色情報を決定している。
なお、上述した新たな区分マスクの作成方法は一例であり、本発明はこの例に限定されない。安定マスク情報に基づいて、一度検出された被写体を、より安定して検出することが可能と考えられるマスクであれば、どのようなマスクをどのような方法で作成しても良い。
(b)優先度の変更
マスク抽出において、上述した優先度が決定されている場合、画像処理装置22は、
安定マスク情報に基づいて、ステップS207および図8で説明した優先度を変更する。例えば、安定マスクがY中間以上マスクM[Y2]である場合には、画像処理装置22は、このマスクの優先度を、マスク抽出処理(I)の場合よりも上げ、例えば、色マスクのうちCb青側マスクM[Cb1]およびCb黄側マスクM[Cb3]と同様の優先度2位とする。このように優先度を決定するのは、過去の検出において、安定マスクにより抽出された被写体領域を、より確実かつ安定して検出するためである。画像処理装置22は、このように優先度を決定することにより、参照情報である安定マスク情報に基づいて、複数の特徴量における優先度を決定している。
なお、上述した優先度の変更方法は一例であり、本発明はこの例に限定されない。安定マスク情報に基づいて、一度検出された被写体を、より安定して検出することが可能と考えられる優先度の変更であれば、どのような方法でも良い。
(c)モーメント評価値に関する基準点の変更
マスク抽出処理(I)およびマスク抽出処理(II)において特徴量を算出する際に、いわゆるモーメント評価値を算出する場合、画像処理装置22は、マスク抽出処理(II)において、モーメント評価値の算出の基準となる基準点を変更する。モーメント評価値とは、画像内の所定の基準点からの距離に基づく特徴量である。マスク抽出処理(I)において、画像処理装置22は、図10Aに示すように、画像内の所定の位置(例えば、中心位置)を基準点B1としてモーメント評価値を算出する。一方、マスク抽出処理(II)において、画像処理装置22は、図10Bに示すように、基準点をB2に変更する。なお、基準点B2は、安定マスク情報に基づいて決定される。例えば、安定マスクにより抽出される被写体領域が、図10Aに示した被写体領域Afである場合、画像処理装置22は、図10Bに示すように、被写体領域Afの中心位置を基準点B2とする。このように基準点B2を決定することにより、過去のマスク抽出処理に基づいて検出した被写体が多少変化しても、その変化を吸収することができるので、ノイズとして除外されることがない。
ただし、基準点を変更する際に、変更後の基準点が中心から大きく離れてしまうと、正しい特徴量の算出を行うことができない。例えば、図10Cに示すように、基準点B3が画像内の中心位置から大きく離れている場合、例えば、被写体領域Agのように、画像の周辺部分に存在するが、面積が比較的大きい被写体領域が検出されてしまう場合がある。このような問題を回避するために、画像処理装置22は、基準点の位置を変更する際に、画像の中心部の一部の領域に限定して変更後の基準点の位置を決定する。画像処理装置22は、例えば、安定マスクにより抽出される被写体領域の位置や大きさなどに応じて、図10Bの範囲L1のように制限領域を設け、その領域内で基準位置を変更する。なお、画像処理装置22は、範囲L1を設定する際に、レンズ鏡筒10におけるズーム倍率を加味しても良い。例えば、レンズ鏡筒10におけるズーム倍率がテレ側の時には、範囲L1を広めに設定し、ワイド側の時には、範囲L1を狭めに設定すると良い。
(d)重点評価領域の変更
マスク抽出処理(I)およびマスク抽出処理(II)において特徴量を算出する際、または、作成した複数のマスクから実際に被写体領域の抽出に用いるマスクを決定する際に、重点評価領域が設定されている場合、画像処理装置22は、マスク抽出処理(II)において、上述した重点評価領域を変更する。重点評価領域とは、特徴量を算出する際や複数のマスクから実際に被写体領域の抽出に用いるマスクを決定する際に優先される領域である。マスク抽出処理(I)において、画像処理装置22は、図11Aに示すように、画像内の所定の位置(例えば、中心位置)に重点評価領域E1を設ける。一方、マスク抽出処理(II)において、画像処理装置22は、図11Bに示すように、優先される領域を重点評価領域E2に変更する。なお、重点評価領域E2は、安定マスク情報に基づいて変更される。また、重点評価領域E2は、重点評価領域E1と比較して、位置と大きさと形状とのうち少なくとも1つが異なる。なお、大きさについては、より安定したマスク抽出処理を行うために拡張するのが好ましい。例えば、安定マスクにより抽出される被写体領域が、図11Aに示した被写体領域Ahである場合、画像処理装置22は、図11Bに示すように、被写体領域Ahの位置や大きさ等に基づいて重点評価領域E2を決定する。このように重点評価領域E2を決定することにより、過去のマスク抽出処理に基づいて検出した被写体が多少変化しても、その変化を吸収することができるので、ノイズとして除外されることがない。
ただし、重点評価領域を変更する際に、変更後の重点評価領域が中心から大きく離れた画像の周辺部に存在すると、正しい特徴量の算出や、実際に被写体領域の抽出に用いるマスクの正しい決定を行うことができない。そこで、画像処理装置22は、重点評価領域を決定する際に、重点評価領域の位置と大きさと形状との少なくとも一つに制限を設ける。例えば、位置については、上述した(c)の場合と同様に、画像の中心部の一部の領域に限定し、大きさについては、画像サイズに対する比率(例えば、80%未満など)で限定する。
さらに、中心マスクM[a]については、マスク抽出処理(I)およびマスク抽出処理(II)において重点評価領域を変更しない。図4で説明したように、中心マスクM[a]は、YマスクM[Y]、CbマスクM[Cb]およびCrマスクM[Cr]が重なる重複領域のうち、中央領域Acに存在するマスクである。したがって、この中央領域Acは重点評価領域の1つである。しかし、この中央領域の位置、大きさ、形状などを変更してしまうと、正しい中心マスクM[a]を作成することができなくなる。そこで、画像処理装置22は、中心マスクM[a]については、マスク抽出処理(I)およびマスク抽出処理(II)において重点評価領域である中央領域Acを変更しない。
なお、ステップS207またはステップS208で説明した各マスク抽出処理において、画像処理装置22は、1つの被写体領域のみ抽出しても良いし、複数の被写体領域を抽出しても良い。
ステップS209において、CPU26は、ステップS207のマスク抽出処理(I)またはステップS208のマスク抽出処理(II)により抽出した被写体領域に関する被写体情報を、バッファメモリ部24や記憶部25等に記録する。なお、この被写体情報には、ステップS207またはステップS208のマスク抽出処理の抽出条件(色区分やマスク区分など)、マスクの位置、マスクの大きさや形状などの情報が含まれる。
ステップS210において、CPU26は、ステップS207のマスク抽出処理(I)またはステップS208のマスク抽出処理(II)により被写体領域を抽出できたか否かを判定する。CPU26は、被写体領域を抽出できたと判定するとステップS211に進む。一方、被写体領域を抽出できないと判定すると、CPU26は、ステップS202に戻り、次のフレームの画像に対してステップS202以降の処理を行う。
ステップS211において、CPU26は、安定マスクがあるか否かを判定する。CPU26は、安定マスクがあると判定するとステップS212に進む。一方、安定マスクがないと判定すると、CPU26は、後述するステップS213に進む。
安定マスクとは、上述したステップS206で説明したものである。CPU26は、マスク抽出処理において、連続あるいは間欠連続の複数のフレームにおいて、略同色、略同サイズのマスクが、略同じ位置の被写体が検出されると、安定マスクがあると判定する。
ステップS212において、CPU26は、安定マスク情報をバッファメモリ部24や記憶部25等に記録する。安定マスク情報には、安定マスクが(過去に)存在することを示す情報と、その安定マスクのマスク情報(例えば、マスク抽出処理の抽出条件(色区分やマスク区分など)、マスクの位置、マスクの大きさや形状などの情報)が含まれる。
ステップS213において、CPU26は、撮影指示が行われたか否かを判定する。CPU26は、撮影指示が行われたと判定するとステップS214に進む。一方、撮影指示が行われないと判定すると、CPU26は、ステップS202に戻り、次のフレームの画像に対してステップS202以降の処理を行う。撮影指示は、操作部27のシャッタボタンを介したユーザ操作により行われる。このユーザ操作は、いわゆる半シャッタと全シャッタの何れであっても良い。
ステップS214において、CPU26は、各部を制御して撮影を実行する。このとき、CPU26は、ステップS209で記録した被写体情報に基づいて、焦点調整(AF)の設定処理、露出調整(AE)の設定処理、ホワイトバランス調整処理(AWB)の3A処理を行うとともに、画像処理装置22における各種画像処理の条件等を決定する。なお、被写体情報が記録される前に撮影指示が行われた場合や、記録された撮影情報が撮影に用いるのに不適当な情報である場合には、CPU26は、通常の3A処理を行って、焦点調整(AF)の設定処理、露出調整(AE)の設定処理、ホワイトバランス調整処理(AWB)の3A処理を行うとともに、画像処理装置22における各種画像処理の条件等を決定すると良い。
ステップS215において、CPU26は、撮像により生成した画像を、通信部28を介して記憶媒体40に記録して一連の処理を終了する。
<変形例>
なお、上述した例では、過去のマスク抽出処理において、連続あるいは間欠連続の複数のフレームにおいて、略同色、略同サイズのマスクが、略同じ位置の被写体が検出された場合に、検出に用いたマスクを上述した「安定マスク」と見なすものとし、具体例として、n回(nフレーム)以上連続して同一のマスクを抽出したか否かや、前回まで連続して同一のマスクを抽出したかなどの判定を行う例を示したが、本発明はこの例に限定されない。
例えば、一旦安定マスクが検出された後は、数フレーム(例えば、2〜3フレーム)において安定マスクが検出されなくても、対象の安定マスクを継続的に利用しても良い。
ただし、このような場合には、所定のタイミングでマスク抽出処理(II)の内容を初期化する構成とすると良い。例えば、一定以上の数のフレームに渡って安定マスクが検出できない場合、対象の被写体が消失したか、マスク抽出処理の条件が適切でないと考えられる。このような場合には、マスク抽出処理(II)の内容を初期化し、マスク抽出処理(I)の内容の処理を行うことにより、被写体の検出を再度はじめから行うと良い。また、マスク抽出処理(II)により、安定マスクのみならず、その他のどのようなマスクも適切に抽出できない場合にも、マスク抽出処理の条件が適切でないと考えられる。したがって、このような場合にも、マスク抽出処理(II)の内容を初期化し、マスク抽出処理(I)の内容の処理を行うことにより、被写体の検出を再度はじめから行うと良い。
また、上述した例では、安定マスク情報を参照情報とする例を示したが、少なくとも1回の過去のマスク抽出処理の結果に基づくものであれば、どのような参照情報であっても良い。例えば、過去のマスク抽出処理において、抽出対象の被写体領域に関する評価値を求め、その評価値が所定の閾値以上のマスクが存在する場合には、そのマスクの情報を参照情報としても良い。
また、上述した例では、マスク抽出処理(II)の例として、図3のステップS208において、(a)から(d)のうち、少なくとも1つを実行する例を示したが、本発明はこの例に限定されない。過去の被写体検出に関する参照情報に基づいて、被写体領域の検出方法を決定するものであれば、どのような処理であっても良い。例えば、どのような特徴量をどのように算出しても良いし、複数のマスクから被写体領域を抽出するためのマスクをどのように選択しても良い。
以上説明したように、本実施形態によれば、取得した画像データにより示される画像の特徴量を算出し、算出した特徴量に基づいて定まる被写体領域を検出する領域検出部を備える。そして、過去の検出結果に応じた参照情報に基づいて、次回の領域検出部による被写体領域の検出方法を決定する。
通常、撮影において画角がほぼ変わらず、被写体自体の変化も少ない場合には、主要被写体領域の抽出が安定して継続的に行われることが望ましい。本実施形態によれば、上述の構成により、多少の画角変化や手ぶれなどの外乱に対する耐性を向上させつつ、継続的な主要被写体領域の抽出を、容易かつ的確に行うことができる。また、参照情報を用いて、統計的な観点を加味して処理を行うことにより、継続的な主要被写体領域の抽出を行うことができるので、被写体領域の抽出がコマ飛びしたり、抽出される被写体領域がばらつくという問題を抑えることができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
また、上記の各実施形態においては、構図確認用のスルー画像に基づいて、一連の処理を行う例を示したが、本発明はこの例に限定されない。例えば、一眼レフカメラなどにおいて生成される構図確認用のライブビュー画像を対象とする場合にも、本発明を同様に適用することができる。また、記録媒体40等に記録された動画像を対象とする場合にも、本発明を同様に適用することができる。
また、上記の各実施形態においては、すべてのフレームを対象として一連の処理を行う例を示したが、本発明はこの例に限定されない。例えば、時間的に離散して生成された複数の画像を対象としても良い。具体的には、適宜フレーム間引きを行った複数の画像を対象としても良い。この場合、上記の各実施形態における一連の処理は間引きされた複数の画像を対象として実行しつつ、すべての画像について表示を行っても良い。このような処理を行うことにより、処理負荷を軽減することができる。
また、コンピュータと画像処理プログラムとからなる「コンピュータシステム」により、上述した各実施形態で説明した画像処理をソフトウェア的に実現しても良い。この場合、各実施形態で説明したフローチャートの処理の一部または全部をコンピュータシステムで実行する構成とすれば良い。例えば、図2のステップS101からステップS111の処理の一部または全部をコンピュータで実行しても良い。また、図3のステップS201からステップS212の処理の一部または全部をコンピュータで実行しても良い。このような構成とすることにより、上述した各実施形態と同様の処理を実施することが可能になる。
また、「コンピュータシステム」は、wwwシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらにコンピュータ読み取り可能な記録媒体とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。