<第1実施形態の説明>
以下、図面を参照しつつ、第1実施形態を説明する。
図1は、第1実施形態の撮像装置の一例を示す機能ブロック図である。なお、撮像装置としては、デジタルカメラの他、例えばカメラ機能を備えた携帯電話機やタブレットPCなどの携帯型電子機器端末が挙げられる。
図1に示す撮像装置10は、撮像光学系15、光学系駆動部16、撮像部17、制御部19、第1メモリ20、第2メモリ21、メディアI/F22、表示部23および操作部24を備えている。ここで、光学系駆動部16、撮像部17、第1メモリ20、第2メモリ21、メディアI/F22、表示部23および操作部24は、制御部19にそれぞれ接続される。表示部23は、各種の画像を表示する表示デバイスを含む。また、操作部24は、ユーザからの各種操作を受け付ける。
撮像光学系15は、例えばズームレンズやフォーカスレンズを含む複数のレンズを有している。簡単のため、図1では、撮像光学系15を1枚のレンズで示す。撮像光学系15に含まれるズームレンズやフォーカスレンズの各レンズ位置は、光学系駆動部16によってそれぞれ光軸方向に調整される。撮像光学系15は、一眼レフレックスカメラなどのビューファインダカメラに代表されるように、撮像装置10の装置本体に対して着脱自在となるレンズ鏡筒内に設けられていてもよい。あるいは、撮像光学系15は、コンパクトカメラに代表されるように、撮像装置10の装置本体に一体に設けられたレンズ鏡筒内に設けられていてもよい。
撮像部17は、撮像光学系15を介して入射された光束による被写体の像を撮像(撮影)するモジュールである。撮像部17は、例えば、撮像光学系15により光電変換面に結像された光学像を撮像素子内でデジタル信号に変換して出力する撮像素子を備えてもよい。また、例えば、撮像部17は、撮像素子およびA/D変換部を備え、撮像素子は撮像光学系15により光電変換面に結像された光学像を電気信号に変換してA/D変換部に出力し、A/D変換部は、撮像素子によって変換された電気信号をデジタル化して、デジタル信号として出力する構成であってもよい。ここで、上述した撮像素子は、例えばCMOS(Complementary Metal Oxide Semiconductor)イメージセンサなどの光電変換素子で構成される。この撮像素子の画素には、例えば公知のベイヤ配列に従ってR(赤色)、G(緑色)、B(青色)のカラーフィルタが配置されており、カラーフィルタでの色分解によって各色に対応する画像信号を出力できる。なお、撮像素子は、光電変換面の一部の領域について被写体の像を電気信号に変換する、所謂画像の切り出しを行えるようにしてもよい。
ここで、撮像部17は、操作部24からの撮像指示に応じて、不揮発性の記憶媒体35への記録を伴う記録用の静止画像を撮影する。このとき、撮像部17は、記録用の静止画像を連写撮影することもできる。また、撮像部17は、撮影待機時において所定の時間間隔ごとに観測用の画像(スルー画像)を撮影する。スルー画像は、記録用の静止画像と比べて間引きにより解像度(画像サイズ)が低くなっている。時系列に取得されたスルー画像のデータは、制御部19による各種の演算処理や、表示部23での動画表示(ライブビュー表示)に使用される。なお、撮像部17で取得される画像を、撮像画像と称することもある。
制御部19は、撮像装置10の動作を統括的に制御するプロセッサである。例えば、制御部19は、撮像部17での撮像画像の撮影制御、自動露出(Auto Exposure)制御、表示部23での画像の表示制御、第1メモリ20およびメディアI/F22での画像の記録制御を行う。この制御部19は、画像処理部31、焦点調節装置の一例としての焦点調節部32を有している。なお、本実施形態では、画像処理部31と焦点調節部32との構成を個別に設けた場合を説明しているが、画像処理部31および焦点調節部32は1つの機能ブロックであってもよい。
画像処理部31は、スルー画像や撮像画像のデータに対して、色補間、階調変換、ホワイトバランス補正、輪郭強調、ノイズ除去などの画像処理を施す。
焦点調節部32は、撮像部17の撮像範囲内に設定された焦点検出エリアの情報を用いて、公知のコントラスト検出によりフォーカスレンズの自動焦点調節(Auto Focus)を実行する。このとき、焦点調節部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、合焦制御部49を備えている。ここで、焦点調節部32の各機能ブロックは、制御部19によって処理されるプログラムモジュールであってもよいし、ASIC等であってもよい。
色空間変換部41は、入力されるスルー画像のデータに対して色空間変換処理を実行する。制御部19に入力される画像のデータは、例えばRGB色空間で表されるデータである。したがって、色空間変換部41は、入力される画像のデータを、RGB色空間で表されるデータから、YCbCr色空間で表されるデータに変換する。
解像度変換部42は、色空間変換処理が施されたスルー画像のデータに対して解像度変換処理を施す。この解像度変換処理により、入力されるスルー画像は、その解像度が元の解像度よりも低解像度となる。言い換えれば、解像度変換処理により、スルー画像の画像サイズが小さくなる。
本実施形態では、焦点調節部32として、色空間変換部41及び解像度変換部42を備えた構成としている。しかし、色空間変換処理及び解像度変換処理が施されたスルー画像のデータが焦点調節部32に入力される場合には、色空間変換部41及び解像度変換部42の構成は省略することが可能である。また、色空間変換部41及び解像度変換部42を1つの機能ブロックにまとめてもよい。
差分画像生成部43は、YCbCr色空間で表されるスルー画像の画素値の平均値を、Y成分、Cb成分及びCr成分毎に算出する。差分画像生成部43は、Y成分、Cb成分及びCr成分の各成分で算出された画素値の平均値を用いて、Y成分、Cb成分及びCr成分の各成分の基準濃度画像をそれぞれ生成する。ここで、Y成分、Cb成分及びCr成分の各成分の基準濃度画像は、解像度変換処理が施されたスルー画像の解像度と同一の解像度であり、各画素の画素値がいずれも共通する画像である。
差分画像生成部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成分の負の差分画像をそれぞれ生成しているが、これに限定する必要はない。例えば、差分画像生成部43は、基準濃度画像から対応成分の画像を減じた後、差分値が0を超過する画素の画素値を差分値に設定し、差分値が0以下となる画素の画素値を0に設定することで、負の差分画像を生成してもよい。
画像判定部44は、生成された6個の差分画像毎にヒストグラムを生成する。そして、画像判定部44は、生成したヒストグラム毎に、ヒストグラムの標準偏差σ及びピーク・ピーク値(peak to peak)ppを求める。ここで、ヒストグラムの標準偏差σ及びピーク・ピーク値ppは、ヒストグラムにおける画素値の分布のばらつき(または広がり)を示す指標となる。上述したように、差分値が0を超過する画素の画素値を差分値に設定し、差分値が0以下となる画素の画素値を0に設定した正の差分画像の場合、ピーク・ピーク値ppは、例えば度数が最も高くなる画素値から、度数が二番目に高くなる画素値までの幅である。また、差分値が0以上となる画素の画素値を差分値に設定し、差分値が0未満となる画素については差分値なしとした正の差分画像の場合、ピーク・ピーク値は、例えばヒストグラムの0から、最大値までの幅である。
なお、上述したピーク・ピーク値ppは一例であり、ヒストグラムにおける画素値及び度数の分布のばらつきを示す指標であれば、どのようなものであってもよい。例えば、画像判定部44は、差分画像に代えて、YCbCr色空間で表されるスルー画像の各成分に対してそれぞれヒストグラムを生成してもよい。そして、画像判定部44は、各成分のヒストグラムにおいて度数が最も高くなる値を基準として、ピーク・ピーク値ppを求めてもよい。
そして、画像判定部44は、ヒストグラム毎に生成した標準偏差σおよびピーク・ピーク値ppを用いて、被写体を特定する際に用いる差分画像を選択する。
例えば、多数の花や森林を撮影した場合のように、所定の色の色成分が撮影範囲の大部分を占める画像の場合を考える。この場合、いずれかの色差成分の差分画像では、所定の色に対応する色差成分の度数が高く、また、所定の色に対応する色差成分の値のばらつきが小さくなる。このとき、画像判定部44は、標準偏差σ<閾値Th1、且つピーク・ピーク値pp<閾値Th2となる色差成分の差分画像を、被写体を特定する際に用いる差分画像から除外する。なお、閾値Th1及び閾値Th2は、差分画像に含まれる画素の画素値の分布のばらつきを判断するための閾値である。また、閾値Th1及び閾値Th2は異なる閾値であり、それぞれ独立に定められる。
一方、突出した色差成分がない画像の場合、差分画像のヒストグラムは、標準偏差σ≧閾値Th1、且つピーク・ピーク値pp≧閾値Th2となりやすい。この場合には、画像判定部44は、該当する差分画像を、被写体を特定する際に用いる差分画像から除外せずに保持する。
なお、色差成分の差分画像を対象にして説明しているが、上記判定は、Cb成分及びCr成分の差分画像の他、Y成分の差分画像に対しても実行される。
ここで、上記判定を行ったときに、生成した6個の差分画像の全ての差分画像が、被写体を特定する際に用いる差分画像から除外されてしまう場合もある。この場合、画像判定部44は、一旦除外された6個の差分画像を、被写体を特定する際に用いる差分画像として再度保持する。
二値化処理部45は、保持された差分画像を所定の閾値で二値化する二値化処理を行う。以下、各差分画像に対する二値化処理を行ったときに閾値以上となる画素を白画素とし、閾値未満となる画素を黒画素とする。そして、二値化処理部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は、例えば、上位3位のマスクを被写体のマスクとして抽出する。なお、被写体候補のマスクがない場合には、マスク抽出部48は、被写体のマスクがないと判定する。なお、評価値算出部47およびマスク抽出部48は、抽出部の一例である。
合焦制御部49は、撮像部の撮像範囲内に焦点検出エリア(焦点調節領域)を設定する。そして、合焦制御部49は、焦点検出エリアにピントが合うように焦点検出エリアの情報を用いてフォーカスレンズの焦点調節を行う。ここで、合焦制御部49は、被写体のマスクの形状に基づいて初期の第1焦点検出エリアを設定し、この第1焦点検出エリアのサイズを変形することで、最終的なAF制御に適用される第2焦点検出エリアを設定する。
ここで、本実施形態の撮像装置10は、動作モードとして、静止画像を撮影する静止画撮影モード、動画像を撮影する動画撮影モード、取得した静止画像や動画像を表示部23で再生する再生モードを備えている。以下、静止画撮影モードにおける処理の流れについて、図3のフローチャートを用いて説明する。なお、図3の処理は、例えば、撮影モードの起動時に制御部19がプログラムを実行することで開始される。
ステップS101は、スルー画像を取得する処理である。制御部19は、撮像部17を駆動させてスルー画像の撮像を行わせる。この撮像部17の駆動によりスルー画像が取得される。なお、撮像部17の駆動により取得されるスルー画像のデータは、撮像部17から制御部19に入力される。制御部19は、撮像部17からのスルー画像のデータに対して画像処理を実行する。ここで、制御部19は、画像処理が施されたスルー画像のデータを表示部23に出力し、取得されたスルー画像を表示部23に表示させることも可能である。
ステップS102は、被写体検出処理である。制御部19は、ステップS101にて取得したスルー画像を用いて被写体検出処理を実行する。これにより、撮像部17の撮像範囲内での被写体の領域が検出される。
ステップS103は、AF制御である。制御部19は、ステップS102で検出された被写体の領域を焦点検出エリアに設定したAF制御を実行する。ここで、ステップS102における被写体検出処理において被写体の領域が得られない場合には、制御部19は、撮像範囲の中心に焦点検出エリアに設定したAF制御を実行する。
なお、このステップ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とする。この場合、図3のフローチャートの処理が終了する。
一方、記録用の静止画像の撮影終了の指示が操作部24の操作によって行われない場合、制御部19は、ステップS106の判定処理の結果をNoとする。この場合、ステップS101に戻る。したがって、ステップS106の判定処理がNoとなる場合には、ステップS101からステップS104の処理が繰り返し実行され、これらの処理が繰り返し実行されるときに、必要に応じてステップS105の撮像処理が実行される。
次に、図3のステップS102に示した被写体検出処理の例を、図4のフローチャートに基づいて説明する。
ステップS201は、色空間変換処理である。制御部19の色空間変換部41は、画像処理が施されたスルー画像に対して色空間変換処理を実行する。これにより、RGB色空間で表されるスルー画像が、YCbCr色空間で表されるスルー画像に変換される。
図5は、処理対象となるスルー画像の一例を示している。図5のスルー画像は、例えば、草原を背景に蝶と花を撮影した絵柄である。
ステップS202は、解像度変換処理である。制御部19の解像度変換部42は、ステップS201の色空間変換処理が施されたスルー画像に対して解像度変換処理を実行する。これにより、スルー画像が元の解像度よりも低い解像度に変換される。つまり、画像サイズが縮小されたスルー画像が生成される。
ステップS203は、差分画像を生成する処理である。制御部19の差分画像生成部43は、ステップS202の解像度変換処理が施されたスルー画像を用いて、Y成分、Cb成分及びCr成分の各成分の基準濃度画像をそれぞれ生成する。そして、差分画像生成部43は、解像度変換処理が施されたスルー画像と基準濃度画像とを用いて、Y成分、Cb成分及びCr成分の各成分に、正の差分画像及び負の差分画像を生成する。
図6(a)〜(c)は、図5に対応する正の差分画像の例を示している。図6(a)はY成分の正の差分画像であり、図6(b)はCb成分の正の差分画像であり、図5(c)はCr成分の正の差分画像である。図6の例では、正の差分画像で画素値が大きい部分がそれぞれ白色となる。
また、図7(a)〜(c)は、図5に対応する負の差分画像の例を示している。図7(a)はY成分の負の差分画像であり、図7(b)はCb成分の負の差分画像であり、図7(c)はCr成分の負の差分画像である。図7の例では、第2画像での画素値が大きい部分がそれぞれ白色となる。
ステップS204は、差分画像を絞り込む処理である。制御部19の画像判定部44は、ステップS203にて生成した各成分の正の差分画像及び負の差分画像の計6個の差分画像のそれぞれからヒストグラムを生成する。画像判定部44は、生成したヒストグラムを用いて標準偏差σ及びピーク・ピーク値を求める。画像判定部44は、これらの値を用いて、上述の処理により被写体を特定する際に用いる差分画像を絞り込む。
ステップS205は、二値化処理である。制御部19の二値化処理部45は、ステップS204の処理により絞り込まれた差分画像のそれぞれに対して二値化処理を行う。例えば、二値化処理部45は、二値化の閾値を差分画像の画素値の標準偏差によって決定する。例えば、二値化処理部45は、正の差分画像について、標準偏差の2σ、3σに対応する画素値を閾値として二値化画像を生成する。また、二値化処理部45は、負の差分画像について、標準偏差の2σに対応する画素値を閾値として二値化画像を生成する。二値化処理部45は、YCbCrの各成分でそれぞれ上記の二値化処理を実行する。すなわち、ステップS205での二値化処理では、各成分でそれぞれ3枚の二値化画像が生成され、1枚のスルー画像につき合計9枚の2値化画像が生成される。
また、二値化処理部45は、二値化画像を生成した後、生成された二値化画像に対してそれぞれラベリング処理を行う。このラベリング処理を行うことで、制御部19は、二値化画像からマスクを抽出する。
図8(a)〜(i)は、ステップS205のラベリング処理後の2値化画像の例を示している。図8(a)はY成分の正の差分画像から生成された二値化画像(閾値2σ)であり、図8(b)はCb成分の正の差分画像から生成された二値化画像(閾値2σ)であり、図8(c)はCr成分の正の差分画像から生成された二値化画像(閾値2σ)である。また、図8(d)はY成分の正の差分画像から生成された二値化画像(閾値3σ)であり、図8(e)はCb成分の正の差分画像から生成された二値化画像(閾値3σ)であり、図8(f)はCr成分の正の差分画像から生成された二値化画像(閾値3σ)である。図8(g)はY成分の負の差分画像から生成された二値化画像(閾値2σ)であり、図8(h)はCb成分の負の差分画像から生成された二値化画像(閾値2σ)であり、図8(i)はCr成分の負の差分画像から生成された二値化画像(閾値2σ)である。図8において、被写体候補のマスクは白色で示し、後述のステップS206の処理で被写体候補から除外されるマスクはグレーで示している。
ステップS206は、マスクを絞り込む処理である。制御部19のマスク絞込部46は、上述のように、二値化画像から抽出されたマスクから、被写体候補のマスクを絞り込む。
ステップS207は、評価値Evを算出する処理である。制御部19の評価値算出部47は、ステップS206の処理により絞り込まれたマスクに対する評価値Evを、上述した(1)式を用いて算出する。
ステップS208は、被写体のマスクを抽出する処理である。制御部19のマスク抽出部48は、ステップS207にて求めた各マスクの評価値Evに基づいて、被写体候補のマスクに対する順位付けを行う。そして、マスク抽出部48は、例えば、上位3位のマスクを被写体のマスクとして抽出する。このステップS208の処理が終了すると、図4に示す被写体検出処理が終了する。
図9(a)〜(i)は、被写体のマスクを抽出するときの二値化画像の例を示している。図9(a)〜(i)は、図8(a)〜(i)の二値化画像にそれぞれ対応している。
図9の例では、被写体候補として残されたマスクのうち、被写体らしさを示す評価値の高さが上から2番目までのマスクを示すようにしている。以下、或る二値化画像で評価値が1番目に高いマスクを第1位のマスクとも称し、或る二値化画像で評価値が2番目に高いマスクを第2位のマスクとも称する。図9の(a)、(c)の例では、被写体候補として残されたマスクが1つのため、二値化画像には第1位のマスクのみが示されている。図9の(d)〜(h)の例では、被写体候補として残されたマスクがないため、図9の(d)〜(h)の二値化画像にはマスクが示されていない。なお、図8の例では、被写体候補のマスクに対する評価値の記載は省略している。
図9の例では、図9(b)に示したCb成分の正の差分画像から生成された二値化画像(閾値2σ)が1番目に評価値が高く、図9(a)に示したY成分の正の差分画像から生成された2値化画像(閾値2σ)が2番目に評価値が高く、図9(c)に示したCr成分の正の差分画像から生成された二値化画像(閾値2σ)が3番目に評価値が高い。上記の場合、マスク抽出部48は、図9(b)、図9(a)、図9(c)のマスクを被写体のマスクとして抽出する。
次に、図3のステップS103に示したAF制御の例を、図10のフローチャートに基づいて説明する。
ステップS301は、第1の焦点検出エリアの設定処理である。制御部19の合焦制御部49は、ステップS102で抽出された被写体のマスクの形状および位置に基づいて、第1の焦点検出エリアを設定する。例えば、合焦制御部49は、被写体のマスクを取り囲み、被写体のマスクが内接する矩形の枠を設定し、この矩形の枠内を第1の焦点検出エリアとする。
このとき、制御部19は、第1の焦点検出エリアを示す枠表示を重畳させたスルー画像を表示部23に表示させる。
図11は、図5に対応する第1の焦点検出エリアの設定例を示す。簡単のため、図11では、一番評価値の高い二値化画像(図9(b))から抽出された被写体のマスクに第1の焦点検出エリアを設定した例を示している。図9(b)の被写体のマスクは、蝶の形状によく一致する。そのため、ステップS301で合焦制御部49が初期設定する第1の焦点検出エリアは、図11に示すように、蝶の部分に対応する位置に設定される。なお、合焦制御部49は、上位3つの被写体のマスクの位置にそれぞれ第1の焦点検出エリアを設定してもよい。
ステップS302は、スルー画像の解析対象の色成分を選択する処理である。合焦制御部49は、スルー画像の色空間のうちから、第1の焦点検出エリアを設定したときの被写体のマスクと相関の高い色成分を解析対象として選択する。例えば、合焦制御部49は、第1の焦点検出エリアに対応する被写体のマスクを抽出した二値化画像の色成分に応じて、以下のようにスルー画像のRGB成分のうちから解析対象の色成分を選択する。
例えば、Y成分の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、スルー画像のG成分を解析対象として選択する。
例えば、Cb成分の正の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、スルー画像のB成分を解析対象として選択する。
例えば、Cb成分の負の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、スルー画像のG成分およびR成分を解析対象として選択する。
例えば、Cr成分の正の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、スルー画像のR成分を解析対象として選択する。
例えば、Cr成分の負の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、スルー画像のG成分およびB成分を解析対象として選択する。
ステップS303は、第1の焦点検出エリアでの画素値のヒストグラムを生成する処理である。合焦制御部49は、ステップS302で選択された色成分について、第1の焦点検出エリアでの画素値のヒストグラム(度数分布)を生成する。例えば、Y成分の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、第1の焦点検出エリアでのGの画素値のヒストグラムを生成する。なお、ステップS303で生成されるヒストグラムを第1のヒストグラムとも称する。ステップS303で生成された第1のヒストグラムの情報は、制御部19の制御により、例えば第1メモリ20に保持される。
ステップS304は、閾値を変化させて二値化画像を生成する処理である。
二値化処理部45は、合焦制御部49の指示により、被写体のマスクを抽出した二値化画像の元となる差分画像を対象として、ステップS102でマスクを抽出したときと異なる閾値で複数の二値化画像をそれぞれ生成する。
例えば、二値化処理部45は、対象の差分画像について、ステップS102でマスクを抽出したときよりも小さな閾値と、ステップS102でマスクを抽出したときよりも大きな閾値とでそれぞれ二値化画像を生成する。このとき、二値化処理部45は、ステップS102でマスクを抽出したときよりも小さな複数種類の閾値で、対象の差分画像から複数の二値化画像を生成してもよい。同様に、二値化処理部45は、ステップS102でマスクを抽出したときよりも大きな複数種類の閾値で、対象の差分画像から複数の二値化画像を生成してもよい。例えば、本実施形態での二値化処理部45は、ステップS304において、ステップS102でマスクを抽出したときよりも小さい2種類の閾値と、ステップS102でマスクを抽出したときよりも大きい2種類の閾値とで、合計4つの二値化画像を生成する。
上記の閾値は差分画像での画素値の標準偏差に基づいて例えば合焦制御部49により決定されるが、閾値の数および閾値の間隔(ステップ幅)は適宜変更できる。
例えば、合焦制御部49は、マスクを抽出したときよりも閾値を小さくする場合と、マスクを抽出したときよりも閾値を大きくする場合とで、両者のステップ幅を相違させてもよい。
また、合焦制御部49は、第1の焦点検出エリアに対するマスクの充填率に応じて閾値のステップ幅を変更してもよい。例えば、第1の焦点検出エリアに対するマスクの充填率が低い場合、合焦制御部49は閾値のステップ幅を大きくし、第1の焦点検出エリアに対するマスクの充填率が高い場合、合焦制御部49は閾値のステップ幅を小さくしてもよい。
ステップS305は、ステップS304で生成した各々の二値化画像から被写体のマスクを抽出する処理である。
例えば、マスク絞込部46、評価値算出部47、マスク抽出部48は、合焦制御部49の指示により、ステップS206〜S208と同様の処理で、ステップS304で生成した各々の二値化画像から被写体のマスクをそれぞれ抽出する。なお、ステップS305の場合、マスク絞込部46、評価値算出部47、マスク抽出部48は、ステップS206〜S208と比べて一部の処理を省略して被写体のマスクを抽出してもよい。
ステップS306は、後述する第2の焦点検出エリアの候補となる仮の焦点検出エリアを設定する処理である。
合焦制御部49は、ステップS305でそれぞれ抽出された被写体のマスクの形状および位置に基づいて、仮の焦点検出エリアを設定する。ステップS306で仮の焦点検出エリアを設定する処理は、ステップS301の処理と同様である。なお、ステップS306で設定される仮の焦点検出エリアは、ステップS305で抽出された被写体のマスクごとにそれぞれ設定される。
図12は、第1の焦点検出エリアおよび仮の焦点検出エリアの設定例を示す。図12(a)は、ステップS102で抽出されたマスク1に基づいて設定された第1の焦点検出エリアの例を示す。図12(b)は、ステップS305で抽出されたマスク2に基づいて設定された仮の焦点検出エリアの例を示す。図12(b)のマスク2は、マスク1の場合と比べて小さな閾値で生成された二値化画像から抽出されたマスクである。図12(c)は、ステップS305で抽出されたマスク3に基づいて設定された仮の焦点検出エリアの例を示す。図12(c)のマスク3は、マスク1の場合と比べて大きな閾値で生成された二値化画像から抽出されたマスクである。
ステップS307は、仮の焦点検出エリアを絞り込む処理である。合焦制御部49は、ステップS306で設定された仮の焦点検出エリアのうち、第1の焦点検出エリアと比べて撮像範囲での位置が大きく異なるものを処理対象から除外する。この場合には、例えば、ステップS102で当初に抽出されたマスクとは異なる被写体に仮の焦点検出エリアが設定された可能性があるからである。例えば、合焦制御部49は、第1の焦点検出エリアと仮の焦点検出エリアとの間で、焦点検出エリアの重心位置や面積を比較する。そして、合焦制御部49は、これらの相違が閾値以上となるときに仮の焦点検出エリアを処理対象から除外する。
ステップS308は、仮の焦点検出エリアでの画素値のヒストグラムをそれぞれ生成する処理である。合焦制御部49は、ステップS302で選択された色成分について、仮の焦点検出エリアでの画素値のヒストグラムをそれぞれ生成する。例えば、Y成分の差分画像に基づく二値化画像から被写体のマスクが抽出された場合、合焦制御部49は、仮の焦点検出エリアでのGの画素値のヒストグラムを生成する。なお、ステップS308で生成されるヒストグラムを第2のヒストグラムとも称する。ステップS308で生成された第2のヒストグラムの情報は、制御部19の制御により、例えば第1メモリ20に保持される。
ステップS309は、第1のヒストグラムおよび第2のヒストグラムの解析処理である。まず、合焦制御部49は、第1のヒストグラムについて、ヒストグラムの標準偏差σ1及びピーク・ピーク値pp1を求める。次に、合焦制御部49は、複数の第2のヒストグラムについて、ヒストグラムの標準偏差σ2及びピーク・ピーク値pp2をそれぞれ求める。そして、合焦制御部49は、例えば、以下の(条件1)、(条件2)のいずれかの抽出条件を満たす第2のヒストグラムを抽出する。なお、合焦制御部49は、第2のヒストグラムのσ2、pp2を求めるときに、第1のヒストグラムに合わせて第2のヒストグラムを正規化してもよい。
(条件1)σ2がσ1以下(σ2≦σ1)で、pp2がpp1よりも大きい(pp2>pp1)第2のヒストグラム。
(条件2)σ2がσ1未満(σ2<σ1)で、pp2がpp1以上である(pp2≧pp1)第2のヒストグラム。
図13は、第1のヒストグラムと第2のヒストグラムとの一例を示す。図13の横軸は画素値であり、図13の縦軸は度数である。図13の場合、第2のヒストグラムのpp2の大きさは、第1のヒストグラムのpp1の大きさとほぼ同じである。一方、図13の場合、第2のヒストグラムでのσ2の値はσ1よりも小さい。
ここで、ヒストグラムの標準偏差は、焦点検出エリア内で画素値が近似する画素が多いほど小さくなる。例えば、図13のように、第2のヒストグラムでのσ2の値がσ1より小さくなることは、第1の焦点検出エリアよりも仮の焦点検出エリアの方が適切に被写体を捉えていることを意味する。
また、図14は、第1のヒストグラムと第2のヒストグラムとの別例を示す。図14の横軸は画素値であり、図14の縦軸は度数である。図14の場合、第2のヒストグラムのσ2の大きさは、第1のヒストグラムのσ1の大きさとほぼ同じである。一方、図14の場合、第2のヒストグラムでのpp2の値はpp1よりも大きい。
ヒストグラムのピーク・ピーク値は、焦点検出エリア内で画素値の分布幅が広いほど大きな値となる。コントラストの生じる被写体のエッジの部分では、コントラストのない平坦な部分と比べて画素値の分布幅が広くなる。例えば、図14のように、第2のヒストグラムでのpp2の値がpp1より大きくなることは、仮の焦点検出エリアの方が第1の焦点検出エリアよりも高いコントラストが生じ、被写体のエッジが検出しやすい状態にあることを意味する。
上記の処理により、合焦制御部49は、第1の焦点検出エリアと比べて、被写体領域と背景とのエッジ部分または被写体領域内でのエッジ部分に合致するように設定された仮の焦点検出エリアを選択することが可能である。
ステップS310は、第2の焦点検出エリアの決定処理である。ステップS309で抽出された第2のヒストグラムがある場合、合焦制御部49は、抽出された第2のヒストグラムに対応する仮の焦点検出エリアを第2の焦点検出エリアに決定する。なお、ステップS309で抽出された第2のヒストグラムがない場合、合焦制御部49は、第1の焦点検出エリアを第2の焦点検出エリアとして扱う。
ここで、ステップS309の抽出条件を満たす第2のヒストグラムが複数ある場合、合焦制御部49は、例えば、σ2が最も小さくなる第2のヒストグラムに対応する仮の焦点検出エリアを第2の焦点検出エリアとしてもよい。あるいは、合焦制御部49は、抽出された第2のヒストグラムをσ2およびpp2の値で総合評価し、総合評価が最も高い第2のヒストグラムから第2の焦点検出エリアを決定してもよい。なお、第2のヒストグラムを総合評価する場合、σ2の値が小さいほどヒストグラムの評価が高くなり、pp2の値が大きいほどヒストグラムの評価が高くなるものとする。
ここで、ステップS310において、制御部19は、第2の焦点検出エリアを示す枠表示を重畳させたスルー画像を表示部23に表示させる。これにより、表示部23では、第1の焦点検出エリアを示す枠表示を重畳させたスルー画像が表示された後に、第2の焦点検出エリアを示す枠表示を重畳させたスルー画像が表示されることとなる。
なお、本実施形態において、制御部19は、第2の焦点検出エリアを示す枠表示を行わずに、第1の焦点検出エリアを示す枠表示を重畳させたスルー画像を表示部23に継続的に表示させてもよい。あるいは、制御部19は、第1の焦点検出エリアを示す枠表示を行わずに、第2の焦点検出エリアを示す枠表示を重畳させたスルー画像を表示部23に表示させてもよい。なお、図15は、図5に対応する第2の焦点検出エリアの設定例を示す。図15では、比較のために、第1の焦点検出エリアを破線で示す。
ステップS311は、コントラストAFの処理である。合焦制御部49は、フォーカスレンズのスキャン方向を決定し、光学系駆動部16を介してフォーカスレンズをスキャン方向に移動させる。このとき、合焦制御部49は、フォーカスレンズの各レンズ位置で撮像部17により第2の焦点検出エリアの画像情報をそれぞれ取得し、これらの画像情報からフォーカスレンズの各レンズ位置における焦点評価値を求める。なお、合焦制御部49は、RGBのすべての色成分の情報を用いてコントラストAFを行ってもよく、上記の解析対象の色成分の情報のみを用いてコントラストAFを行ってもよい。
ステップS312は、焦点評価値が減少したか否かを判定する処理である。合焦制御部49は、スキャン方向にフォーカスレンズを移動させたときに、前のレンズ位置よりも焦点評価値が減少したか否かを判定する。
焦点評価値が減少した場合(Yes)には、合焦制御部49は、前のレンズ位置が焦点評価値のピークであるため、フォーカスレンズを前のレンズ位置に移動させてAF制御を終了させる。
一方、焦点評価値が増加した場合(No)には、合焦制御部49は、ステップS311の処理に移行し、再びスキャン方向にフォーカスレンズを移動させて次のレンズ位置の焦点評価値を求める。これにより、合焦制御部49は、焦点評価値がピークとなるレンズ位置を探索する。以上で、図10のフローチャートの説明を終了する。
以下、第1実施形態での作用効果を述べる。第1実施形態の制御部19は、被写体検出処理で抽出されたマスクに基づいて第1の焦点検出エリアを設定する(S301)。そして、制御部19は、第1の焦点検出エリアに基づいて第1の焦点検出エリアとは形状の異なる第2の焦点検出エリアを設定し(S303〜S310)、第2の焦点検出エリアの情報を用いてフォーカスレンズの焦点調節を行う(S311、S312)。
これにより、第1実施形態の制御部19は、被写体検出処理で抽出されたマスクを用いた第1の焦点検出エリアに基づいて、第1の焦点検出エリアよりもAFに適した第2の焦点検出エリアを設定することができる。
また、第1実施形態での制御部19は、第1の焦点検出エリアでの画素値の第1のヒストグラム(S303)と、仮の焦点検出エリアでの画素値の第2のヒストグラム(S308)とを比較し、第2の焦点検出エリアとなる仮の焦点検出エリアを決定する(S309、S310)。特に、制御部19は、ヒストグラムの標準偏差やヒストグラムのピーク・ピーク値に基づいて第2の焦点検出エリアを決定する(S309、S310)。
これにより、第1実施形態での第2の焦点検出エリアには、所望の被写体と背景とのエッジ部分、または所望の被写体上でコントラストを生じさせるエッジ部分が、第1の焦点検出エリアと比較して高い精度で含まれる。すなわち、第1実施形態では、所望の被写体と背景とのエッジ部分等を高い精度で含む範囲に絞り込んでコントラストAFを行うので、その結果として第2の焦点検出エリアでの焦点評価値の分布は単純な1つの山の形状となりやすい。したがって、第1実施形態でコントラストAFを行うときに、合焦評価値が単純増加しない場合(前のレンズ位置よりも焦点評価値が減少する場合)には、焦点評価値のピークであると判断できるので、従来と比べてコントラストAFに要するスキャン時間を短縮できる。
<第1実施形態の変形例>
第1実施形態では、被写体のマスクを取り囲み、被写体のマスクが内接する矩形の枠で第2の焦点検出エリアを設定する例を説明した。しかし、合焦制御部49は、第2の焦点検出エリアを、被写体のマスクの輪郭に沿った形状に設定してもよい。
図16は、第2の焦点検出エリアの設定の別例を示す図である。この変形例での合焦制御部49は、図10のステップS310の処理において以下の処理を行う。
まず、合焦制御部49は、ステップS309で抽出された第2のヒストグラムに対応する被写体のマスクの輪郭を、例えば公知のエッジ検出処理で抽出する。そして、合焦制御部49は、格子状に配列された焦点検出エリアを撮像範囲に設定する。そして、合焦制御部49は、格子状に配列された焦点検出エリアのうち、抽出されたマスクの輪郭と重なるものを第2の焦点検出エリアとして決定すればよい(図16)。なお、エッジと重なる焦点検出エリアと隣り合う焦点検出エリアも、第2焦点検出エリアに含めてもよい。
この変形例の場合、第2の焦点検出エリアが、所望の被写体と背景とのエッジ部分、または所望の被写体上でコントラストを生じさせるエッジ部分そのものに近くなる。
<第2実施形態の説明>
図17は、第2実施形態でのAF制御の例を説明するフローチャートである。図17のフローチャートの処理は、図3のステップS103に対応するものであって、図10に示したAF制御の別例である。なお、第2実施形態の撮像装置の構成は、第1実施形態と同一または同様であるので、第1実施形態と同一または同様の要素には同じ符号を付して重複説明を省略する。
図17の例では、図10のステップS304からステップS307の代わりに、ステップS320の処理が実行される。その他の処理は、図10と同様である。なお、図17の説明で、図10と同一または同様の処理には同じ符号を付して、詳細な説明を省略する。
ステップS301は、第1の焦点検出エリアの設定処理であり、ステップS302は、スルー画像の解析対象の色成分を選択する処理である。また、ステップS303は、第1の焦点検出エリアでの画素値のヒストグラムを生成する処理である。
ステップS320は、第1の焦点検出エリアのサイズを拡大または縮小して仮の焦点検出エリアを設定する処理である。
図18は、図17のステップS320での仮の焦点検出エリアの設定例を示す図である。合焦制御部49は、第1の焦点検出エリアの枠のサイズを所定の倍率で拡大(例えば1.2倍、1.4倍等)または縮小(例えば0.6倍、0.8倍等)する。これにより、合焦制御部49は、第1の焦点検出エリアと重心が重なり各々のサイズが異なる仮の焦点検出エリアを複数設定する。
そして、ステップS320の後、合焦制御部49は、ステップS320で設定された仮の焦点検出エリアでの画素値のヒストグラムをそれぞれ生成し(S308)、第1のヒストグラムおよび第2のヒストグラムの解析処理を行う(S309)。そして、合焦制御部49は、第2の焦点検出エリアの決定処理を行い(S310)、第2の焦点検出エリアの情報を用いてコントラストAFを行う(S311、S312)。
上記の第2実施形態によっても、第1実施形態と同様の効果を得ることができる。また、第2実施形態の場合には、仮の焦点検出エリアを抽出するときに枠のサイズを拡大・縮小すればよく、第1実施形態のように被写体検出処理を行わずに済む。したがって、第2実施形態の場合には、第1実施形態よりも演算負荷を小さくすることができる。例えば、動画撮影時のAFの場合のように、短時間での処理が要求される場合には第2実施形態の構成が有益である。
<実施形態の補足事項>
上記実施形態では、Y成分、Cb成分及びCr成分の差分画像から、各成分の二値化画像を生成しているが、Y成分、Cb成分及びCr成分の画像から、各成分の二値化画像を生成することも可能である。この場合、各成分の画像に対して、異なる3以上の閾値を用いて、3以上の二値化画像を生成すればよい。また、この場合には、Y成分、Cb成分及びCr成分の画像毎にヒストグラムを生成し、生成したヒストグラムにおける標準偏差σやピーク・ピーク値ppを求め、標準偏差σやピーク・ピーク値ppを用いて、被写体候補を絞り込む際に使用する画像とするか否かを判定すればよい。
また、上記実施形態において、図3に示すステップS102の被写体検出処理は、例えば、ガボールマップや顕著性マップ等を用いた手法によって行われるものであってもよい。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲が、その精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。