(58)【調査した分野】(Int.Cl.,DB名)
上記検出手段は、上記基準部の複数の画素データのうちの最大値と最小値の差と上記参照部の複数の画素データのうちの最大値と最小値の差との加算値を検出することを特徴とする請求項1または2に記載の焦点検出装置。
【発明を実施するための形態】
【0013】
以下、図面に従って本発明に係る焦点検出装置を適用したデジタルカメラ(以下、「カメラ」と略記する)を用いて好ましい実施形態について説明する。このデジタルカメラは、2像に分割された被写体像を受光して光電変換し(後述する
図4等参照)、所定のAFエリアに対応する基準部と参照部の画素データに基づいて相関演算を行い、デフォーカス量を演算する(後述する
図5、
図2のデフォーカス量演算部/信頼性評価部37等参照)。
【0014】
図1は、本発明の一実施形態に係るカメラの主として電気的構成を示すブロック図である。本実施形態に係るカメラは、交換レンズ鏡筒10とカメラ本体20から構成されている。本実施形態においては、交換レンズ鏡筒10とカメラ本体20を別体に構成しているが、一般的なコンパクトカメラのように一体に構成しても勿論かまわない。
【0015】
交換レンズ鏡筒10内には、撮影レンズ11が配置されている。撮影レンズ11は、被写体Sの光学像を形成するためのフォーカスレンズを含む複数の光学レンズから構成される。また、交換レンズ鏡筒10内には、アクチュエータ12およびレンズ制御部13が設けられている。レンズ制御部13は、カメラ本体20内のAF演算部23から、デフォーカス量を受信し、これらの情報に基づいて、アクチュエータ12の制御を行う。アクチュエータ12は、撮影レンズ11内のフォーカスレンズを光軸方向に移動し、ピント合わせを行う。なお、フォーカスレンズの位置は、レンズ位置検出部(不図示)によって検出され、通信部(不図示)を介してカメラ本体20に送信される。
【0016】
カメラ本体20内には、撮像素子21、画像処理部22、AF演算部23、記録部24が設けられている。撮像素子21は、撮影レンズ11の光軸上であって、被写体像の結像位置付近に配置されている。撮像素子21は、被写体像(光学像)を電気信号に変換する光電変換部を有する複数の画素を備えている。複数の画素は、画素へ入射する光束の入射方向を制限するよう構成された位相差AF検出用画素(焦点検出用画素とも称す)と、画素へ入射する光束が位相差AF検出用画素よりも制限されないように構成された撮像用画素(通常画素とも称す)を含み、複数の画素は2次元的に配列されている。撮像素子21の位相差AF検出用画素および撮像用画素の配置については、
図3および
図4を用いて後述する。
【0017】
撮像素子21は、位相差AF検出用画素と撮像用画素から出力される画素値を画像処理部22およびAF演算部23に出力する。画像処理部22は、画素値の内、撮像用画素からの画素値を入力し、ライブビュー表示用画像および記録用画像のための画像処理を行う。また、画像処理部22は、記録用に処理された画像データを記録部24に出力する。記録部24は、電気的書き換え可能な不揮発性メモリを有し、記録用の画像データを入力し、記録する。また、画像処理部22は、画素値を用いて、被写体の顔を検出し、この顔の中心座標位置を出力し、また顔の中の目等の器官を検出し、この器官の特定座標位置を出力する。また、画像処理部22は、画素値を用いて、被写体追尾を行う。
【0018】
AF演算部23は、画素値の内、位相差AF検出用画素からの画素値を入力し、位相差AFに基づくAF演算を行う。AF演算にあたって、画像処理部22から取得した中心座標位置、特定座標位置に基づいて、位相差AF検出用画素の位置に対応する測距エリアを設定し、この設定した測距エリアについて、デフォーカス量やコントラスト評価値を演算する。この演算されたデフォーカス量やコントラスト評価値に基づいて、撮影レンズ11内のフォーカスレンズを合焦位置に駆動させる。また、AF演算部23は、被写体が周期性の場合には、真の合焦位置に駆動できるようにデフォーカス量を演算するための相関値の極値の選択を行う。
【0019】
次に、
図2を用いてAF演算部23の詳細について説明する。画素値21aは、撮像素子21から出力された画素値であり、SDRAM(不図示)等に一時記憶される。
【0020】
また、画像処理部22内には、顔検出部22aが設けられている。この顔検出部22aは、撮像素子21からの撮像用画素(通常画素)の画素値に基づいて、被写体像の中に顔があるか否かを判定し、顔が含まれている場合には、その位置(中心座標位置)や大きさ等を検出する。さらに、右目、左目、鼻等の器官の検出を行い、その器官の特定座標位置も検出する。顔検出部22aで検出された中心座標や特定座標位置は、AF演算部23内のAF測距点設定部33に出力する。
【0021】
また、画像処理部22内には、追尾部22bが設けられている。この追尾部22bは、撮像素子21からの撮像用画素の画素値に基づいて、被写体の追尾を行う。例えば、顔検出部22aによって検出された顔の位置や、撮影者によって指定された被写体の位置について、撮像素子21から画素値が出力されるたびに、画素値を比較することにより、同一の被写体がどこに移動したかを検出し、これによって追尾を行う。追尾部22bによって検出された追尾対象の中心座標や特定座標位置は、AF演算部23内のAF測距点設定部33に出力する。
【0022】
AF測距点設定部33は、顔検出部22aまたは追尾部22bで検出された中心座標位置や特定座標位置に基づいて、これに対応する測距点を設定する。撮像素子21は複数の測距点に分けられており、この複数の測距点の中から、中心座標位置や特定座標位置の近傍にある測距点を設定し、設定した各測距点の中心座標を、測距エリア設定部35に出力する。
【0023】
位相差画素生成部34は、画素値21aの内、位相差AF検出用画素の画像データを入力し、位相差AF検出用の画素列を生成し、デフォーカス量演算部/信頼性評価部37に出力する。
【0024】
測距エリア設定部35は、AF測距点設定部33からの各測距エリアの中心座標を入力し、測距エリアを設定し、コントラスト値判定部/フィルタ選択部36に出力する。本実施形態においては複数の測距エリアが設けられており、各測距エリアの位置は予め固定されている。AF測距点設定部33からの中心エリアや主被写体(例えば、顔)のサイズ等の情報に基づいて、最も適切な測距エリアを設定する。但し、中心エリアや主被写体のサイズ等によっては、主被写体が複数の測距エリアに跨る場合があり、その場合には複数の測距エリアが設定される。
【0025】
コントラスト値判定部/フィルタ選択部36は、画素値21aから焦点検出用画素の画素値を入力し、また、AF測距点設定部33から各測距エリアの中心座標を入力する。これらの情報を用いて、設定されている測距エリアのコントラスト評価値を演算し、このコントラスト値の判定を行う。そして、この判定結果を用いて、後述するようにフィルタ処理に使用するフィルタの選択を行う。このコントラスト値判定部/フィルタ選択部36は、基準部と参照部の複数の画素データよりなる被写体像データのコントラストを検出する検出手段として機能する。コントラスト評価値の判定結果とフィルタの選択結果は、デフォーカス量演算部/信頼性評価部37に出力する。
【0026】
デフォーカス量演算部/信頼性評価部37は、位相差AF法によるデフォーカス量の演算にあたって、コントラスト値判定部/フィルタ選択部36によって選択されたフィルタを用いて、位相差画素生成部34からの位相差AF検出用画素列の画像データに対してフィルタ処理を行う。このため、デフォーカス量演算部/信頼性評価部37は、複数のフィルタを有する。この複数のフィルタは、異なる周波数特性を有し、画素データに対してフィルタ処理を行う複数のフィルタ手段として機能する。フィルタについては、
図8ないし
図11を用いて後述する。
【0027】
デフォーカス量演算部/信頼性評価部37は、フィルタ処理された画像データを用いて、位相差AF法によってデフォーカス量を演算し、各測距エリアの相関演算結果やデフォーカス量をレンズ駆動選択部38に出力する。このデフォーカス量演算部/信頼性評価部37は、検出手段の出力に応じて複数のフィルタ手段のうちのいずれか1個を選択し、基準部と参照部の画素データに対して選択したフィルタ手段によりフィルタ処理を行った画素データに基づいて相関演算を行い、デフォーカス量を演算する演算手段として機能する。また、デフォーカス量演算部/信頼性評価部37は、演算手段の出力の信頼性を判定する信頼性判定手段として機能する。位相差AFによるデフォーカス量の演算および信頼性の判定については、
図5ないし
図7を用いて後述する。
【0028】
レンズ駆動選択部38は、デフォーカス量演算部/信頼性評価部37から相関演算結果とデフォーカス量を入力し、レンズ駆動方法の選択と、レンズ駆動方向の選択を行う。レンズ駆動方法としては、本実施形態においては、入力したデフォーカス量に対応したレンズ位置にフォーカスレンズを駆動するデフォーカス駆動と、フォーカスレンズを至近端と無限遠端の間でスキャンしながらコントラスト評価値を取得するレンズスキャン駆動がある。レンズ駆動選択部38は、相関演算結果等に基づいて、いずれかのレンズ駆動方法を選択する。また、レンズ駆動方向としては、至近端方向と無限遠方向があり、相関演算結果に基づいて決定する。レンズ駆動選択部38は、デフォーカス量を出力し、レンズ制御部13(
図1参照)は、このデフォーカス量を用いて撮影レンズ11内のフォーカスレンズの駆動制御を行う。
【0029】
次に、撮像素子21および測距エリアについて、
図3および
図4を用いて説明する。
図3に示す例では、撮像素子21は、列方向X1−X7、行方向Y1−Y7に分割され、これらの49エリアの1つ1つが、測距エリアになる。符号21bで示すエリアは、(X1、Y1)で表す。各エリアの各測距エリアの中心点21cを測距エリアの中心座標とする。
【0030】
図4は、1つの測距エリアの画素の配置例を示す。
図3に示した各測距エリアの内部は、
図4に示すように、位相差AF検出用画素と撮像用画素から構成されている。
【0031】
図4に示す測距エリアの中に、左開口位相差AF検出用画素21d、撮像用画素21e、右開口位相差AF用画素21fが列方向に交互に並んでいる。すなわち、一番左側の列では、L11、L21、L31、L41が左開口位相差AF用画素21dであり、R11、R21、R31、R41が右開口位相差AF画素21fであり、これらの間に撮像用画素21eが並んでいる。そして、一番左側から2列目は、撮像用画素21eのみである。以後、位相差AF検出用画素を含む列と、撮像用画素のみからなる列が交互に繰り返して配置される。
【0032】
なお、本実施形態においては、位相差AF検出用画素を含む列と撮像用画素のみからなる列が1列おきであったが、位相差AF検出用画素を含む列と位相差AF検出用画素を含む列の間に2列以上の撮像用画素のみからなる列を配置するようにしても勿論かまわない。
【0033】
位相差画素生成部34(
図2参照)によって生成されるAF画素列は、各画素列毎に、左開口AF検出用画素からの画素値の平均値、または右開口AF検出用画素からの画素値の平均値を算出する。本実施形態においては、各画素列は4画素となることから、各画素列毎に加算した上で、4で除算している。すなわち、以下のような演算によって生成される。
【0034】
左開口AF検出用画素列:
L1=(L11+L21+L31+L41)/4
L2=(L12+L22+L32+L42)/4
L3=(L13+L23+L33+L43)/4
・・・
Ln=(L1(n)+L2(n)+L3(n)+L4(n))/4
【0035】
右開口AF検出用画素列:
R1=(R11+R21+R31+R41)/4
R2=(R12+R22+R32+R42)/4
R3=(R13+R23+R33+R43)/4
・・・
Rn=(R1(n)+R2(n)+R3(n)+R4(n))/4
【0036】
また、
図4に示す例では、左上座標は(X1,Y1)であり、右下座標は(Xr,Yr)であり、測距エリア中心座標21cは(Xk,Yk)である。測距エリアの中心座標(Xc[k],Yc[k])は、顔中心座標/特定座標(Xco,Yco)から各々測距エリア毎に任意の長さ(a[k],b[k])を付加した位置(本実施形態においては、k=1〜7)となるので、
Xc[k]=Xco+a[k]、 Yc[k]=Yco+b[k]
となる。なお、kは測距エリアの番号であり、k=0、1、2、・・・・、Area_num−1 (Area_num:測距エリア数)とする。
【0037】
デフォーカス量演算部/信頼性評価部37は、測距エリアの中心(Xc[k],Yc[k])から(c[k],d[k])(c[k]、d[k]は、各エリアごとに予め決めた数値、相関演算のx、y方向範囲)加減算し、左上座標(X1[k],Y1[k])=(Xc[k]−c[k],Yc[k]−d[k])、右下座標(Xr[k],Yr[k])=(Xc[k]+c[k],Yc[k]+d[k])を定義し、この範囲内において、
図5ないし
図7を用いて説明する位相差AFに基づくデフォーカス量を求める演算を行う。
【0038】
図6は、位相差AFの測距原理を示す図である。撮影レンズ11の光束中に右開口Rと左開口Lを設け、撮像素子21上で右開口Rのみの光束に基づく画素出力に相当する像ORと、左開口Lのみの光束に基づく画素出力に相当する像OLを比較すると、ピントが合っていない場合には、両像OR、OLはシフト量ZR分だけずれている。また、デフォーカス量dだけ離れた合焦位置では、両像INは一致している。したがって、シフト量ZRを求め、シフト量ZRに基づいてデフォーカス量dを求め、デフォーカス量dに基づいて撮影レンズ11を合焦位置に移動させればよい。なお、
図6中の符号Gは、左右開口の重心間の距離を示し、Fは、撮像面から瞳までの距離を示す。
【0039】
図5(a)(b)は、左開口位相差AF検出用画素列L1〜L(n)の配列位置と対応する画素値(画素エッジ成分)を示す(
図6の像OLに相当する)。また
図5(c)(d)は、右開口位相差AF検出用画素列R1〜R(n)の配列位置と対応する画素値(画素エッジ成分)を示す(
図6の像ORに相当する)。これから、左右開口の画素列に投影された被写体像の相関を求める。被写体像の形状が最も類似している位相差AF検出用画素位置の差がシフト量(視差)ZRとなる。
【0040】
シフト量は、例えば、左開口の画素列に対応するウインドウを固定し、右開口の画素列に対応するウインドウを1画素ずつずらし、右開口の画素列に対応するウインドウについて移動し終わると、次に、右開口の画素列に対応するウインドウを固定し、左開口の画素列に対応するウインドウを1画素ずつずらす。このときのウインドウ内の左開口位相差AF検出用画素値と右開口位相差AF検出用画素の差分の累積値から評価値Fmを求める。この評価値Fmが最小値となるときのずらし量がシフト量ZRである。
【0041】
図7は、評価値Fmが最小値となる付近における位相差AF検出用画素の位置とFmを示すグラフである。このグラフで位相差AF検出用画素の位置がminにおいて評価値Fmは最小となっている。ここで、評価値Fmは離散的なデータであるので、最小値近傍の複数の評価値Fmを用いて補間処理を行い、真の最小値を求めてシフト量ZRを算出する。
【0042】
シフト量ZRを求めると、シフト量ZRからデフォーカス量dは下記式(1)により算出できる。すなわち、
図6に示した関係から、
G:ZR=(F+d):d
(F+d)*ZR−dG=0
d=F*ZR/(G−ZR) ・・・(1)
ここで、d:デフォーカス量
F:撮像素子から瞳までの距離
ZR:シフト量
G:左右開口の重心間の距離
【0043】
デフォーカス量演算部/信頼性評価部37は、位相差AFの信頼値として、評価値Fmの相関値傾きFsを使用する。すなわち、
図7に示す例において、評価値Fmの最小値(FMIN)とこの最小値の前後の2個のFmのうちで大きい方の評価値FMを通る直線の傾きFs[k]を、信頼性を表す評価値として演算し、出力する。傾きFs[k]で近似した極小値ans1が、左開口と右開口の2像が最も相関が高くなるシフト量を示し、この値が2像間値となる。上記(1)式のZRにシフト量ans1を代入し、デフォーカス量dを算出する。
【0044】
次に、
図8ないし
図11を用いて、本実施形態におけるフィルタについて説明する。
図8(a)はフィルタAの構成を示すブロック図であり、
図8(b)はフィルタAの周波数特性を示す図である。フィルタAは、
図8(a)に示すように、遅延回路Delay1〜Delay5、ゲイン1/3のアンプ0〜5、3つの加算回路から構成される。入力Inに位相差画素生成部34からの位相差AF検出用画素列の画像データを入力すると、フィルタ処理がなされ、出力Out1から、
図8(b)に示す周波数特性を作用された信号を出力する。
【0045】
このフィルタAは、高周波成分だけを強調しており、測距精度を重視する場合に使用する。すなわち、フィルタAは、
図8(b)において、高周波領域Rにおけるゲインが0dB(1倍)を超えている。
【0046】
図9(a)はフィルタBの構成を示すブロック図であり、
図9(b)はフィルタBの周波数特性を示す図である。フィルタBは、
図9(a)に示すように、遅延回路Delay1〜Delay2、ゲイン1/3のアンプ0〜2、1つの加算回路から構成される。入力Inに位相差画素生成部34からの位相差AF検出用画素列の画像データを入力すると、フィルタ処理がなされ、出力Out1から、
図9(b)に示す周波数特性が作用された信号を出力する。
【0047】
フィルタBは、高周波だけではなく、低周波の成分を残すことで、測距精度は不足するが、広いデフォーカス範囲でデフォーカス量を検出することができる。すなわち、フィルタBは、
図9(b)に示すように、ゲインが0dB(1倍)で低周波から高周波にかけて略フラットの周波数特性を有している。
【0048】
図10はフィルタCの構成を示すブロック図であり、
図11はフィルタCの周波数特性を示す図である。フィルタCは、
図10に示すように、遅延回路Delay1〜Delay14、ゲイン1/3のアンプ0〜5、3つの加算回路から構成される。入力Inに位相差画素生成部34からの位相差AF検出用画素列の画像データを入力すると、フィルタ処理がなされ、出力Out1から、
図11に示す周波数特性が作用された信号を出力する。
【0049】
フィルタCは、フィルタAと同様に、高周波成分をより強調しており、測距精度を重視する場合に使用する。ただし、フィルタCは、フィルタAとは違った周波数特性であり、異なる周波数領域においてゲイン0dB(1倍)を超えている。
【0050】
このように、本実施形態においては、フィルタA〜Cのように、複数のフィルタを備えている。これらの複数のフィルタは、所定の周波数特性を有する第1のフィルタ処理手段(例えば、フィルタA、C)と、第1のフィルタ処理手段の周波数特性よりも低周波成分により大きい利得を持つ周波数特性を有する第2のフィルタ処理手段(例えば、フィルタB)として機能する。
【0051】
次に、
図12ないし
図14を用いて、位相差AF検出用画素列の画像データを入力した際のフィルタ処理について説明する。
【0052】
図12は、大デフォーカス状態(大ボケ状態)の低コントラスト被写体を撮像素子している際に、左右位相差AF画素データ(位相差画素生成部34から出力される左右開口画素列)の一例を示す。
図12において、横軸は画素座標であり、縦軸は画素値であり、右開口画素DRと左開口画素DLの画素値は、フォーカスレンズが合焦状態でないことから、一致していない。AF測距エリア範囲Rafは、測距エリア設定部35によって設定される測距エリアを示す。コントラスト値判定部/フィルタ選択部36は、AF測距エリア範囲Raf内の右開口画素DRの最大値と最小値の差分D1と、AF測距エリア範囲Raf内の左開口画素DLの最大値と最小値の差分D2を算出し、D1とD2の加算値を、コントラスト値Dcとして取得する。
【0053】
図13は、
図12に示す左右位相差AF画素データに対して、フィルタAによってフィルタ処理を施した画像データを示す。フィルタAは高域成分が強調され、低域成分は抑圧されることから、
図12の画素データにおける低周波の成分が除去され、逆に高周波の成分のみとなり、被写体像のエッジが判別できなくなっている。このため、フィルタAによってフィルタ処理を行う場合は、現在のフォーカスレンズ位置が被写体の合焦位置に近く高周波成分が大きい画像データの場合には、高精度の測距を行うことができる。しかし、
図12に示したような大デフォーカス状態の被写体の画像データに対しては、効果が小さく測距することができない。
【0054】
図14は、
図12に示す左右位相差AF画素データに対して、フィルタBによってフィルタ処理を施した画像データを示す。フィルタBはフィルタAに比較すると低域成分に対しても画像データを通過させることから、
図12の画素データにおける低周波の成分も残り、被写体像のエッジの判別を行うことができ、測距が可能である。このため、フォーカスレンズ位置が被写体の合焦位置に近い場合の測距精度は、フィルタAの場合より劣るが、
図12に示したような大デフォーカス状態の被写体に対しては十分に測距することができる。
【0055】
本実施形態においては、複数のフィルタを備え、被写体像に応じて、フィルタを切り換えている。フィルタの切り換え方法としては、左右位相差AF画素列の画像データのコントラスト値Dcが、所定の閾値1より下回れば、通常使用するフィルタAからフィルタCに変更する。さらに、閾値2より下回れば、通常使用するフィルタAからフィルタBに変更する。
【0056】
このように、本実施形態においては、画像データのコントラスト値に応じて、フィルタの切り換えを行っている。すなわち、演算手段(例えば、デフォーカス量演算部/信頼性評価部37)は、検出手段(例えば、コントラス値判定部/フィルタ選択部36)の出力するコントラストが所定値よりも小さい場合に、低周波成分により大きい利得を持つ周波数特性を有する第2のフィルタ処理手段(例えば、フィルタB)を選択して演算を行う。
【0057】
なお、本実施形態においては、コントラスト値Dcとして、AF測距エリア範囲Rafの範囲内における左右位相差AF画素列の最大値と最小値の差分の加算値としている(Dc=D1+D2)。すなわち、位相差AFの相関演算の際、撮像素子21の基準部の複数の画素データのうちの最大値と最小値の差と参照部の複数の画素データのうちの最大値と最小値の差との加算値を検出している。しかし、これに限らず、他の方法によって求めてもよい。例えば、Dc=D1+D2の代わりに、D1、またはD2を使用してもよい。また、AF測距エリア内の中央部分(両端画素を除く)の最大値と最小値の差を使用してもよい。
【0058】
次に、
図15ないし
図17を用いて、レンズ駆動選択部38におけるレンズ駆動方法の選択について説明する。
図15は、現在のフォーカスレンズ位置が合焦位置から遠い場合の相関演算の結果の一例を示し、横軸はシフト量、縦軸は相関値を示す。この例では、シフト量S1において、相関値は最小値であるFMINとなり、また、FMINにおける左右の傾きの内、右側の傾きFs[k]の方が左側の傾きよりも大きい。
【0059】
本実施形態においては、相関値の最小値FMINにおける左右の傾きの内、大きい方の傾き(Fs[k])に基づいて、レンズ駆動方法を選択する。すなわち、大きい方の傾き(Fs[k])と、所定の閾値を比較し、傾きFs[k]が所定の閾値を下回れば、合焦位置まで遠いと判断し、レンズスキャンを行う。レンズスキャンについては、
図17を用いて後述する。
【0060】
図16は、合焦位置が近い場合の相関演算の結果の一例を示す。この例では、シフト量S2において、相関値は最小値であるFMINとなり、また、FMINにおける左右の傾きの内、右側の傾きFS(k)の方が左側の傾きよりも大きい。
図16に示す例では、大きい方の傾き(FS(k))と、所定の閾値を比較し、傾きFS(k)が所定の閾値を上回れば、合焦位置まで近いと判断し、デフォーカス駆動を行う。デフォーカス駆動は、相関演算により算出したデフォーカス量分だけ、フォーカスレンズを駆動することをいう。
【0061】
測距結果の信頼性が低いためにAFできない場合や、周期性被写体が検出された場合には、レンズスキャンを実施する。レンズスキャンは、フォーカスレンズの駆動範囲の端点から端点に向けて、フォーカスレンズを一定速度で動かす動作である。
図17に示す例は、現在位置Paから至近端点Pnに向けてフォーカスレンズを駆動し、さらに至近端点(至近位置)Pnから無限端点(無限位置)Pfに向けて駆動する様子を示している。フォーカスレンズを駆動しながら、位相差AF検出用画素や撮像用画素から画素値を取得し、位相差AFによる測距結果やコントラスト評価値をレンズ位置に関連付けて取得し記憶しておく。例えば、
図11中、逆三角形を付した位置において、画素値を取得して、測距結果やコントラスト評価値を取得する。測距結果の信頼性が高い位置でフォーカスレンズを停止して、再測距する。
【0062】
次に、
図18を用いて、被写体が動体時の撮影の際、またはカメラを動かしての撮影の際におけるフィルタの切り換えについて説明する。
【0063】
図18(a)は、動体の被写体を撮影している様子を示す。すなわち、カメラのフレームFは固定した状態で、動く被写体Obに対して位置O1で合焦させた後、被写体Obは位置O2に移動している。一定時間、測距不能状態が続いた場合、デフォーカス量が大きいため位相差AFが困難になってしまう。このような場合には、フィルタAからフィルタBに変更することにより、再び測距可能とすることができる。
【0064】
また、レンズスキャン駆動は、何度も繰り返すと、撮影者に不快感を与えることから、一般には、レンズスキャンは一度完了すると、その状態を示すフラグをセットし、再度、レンズスキャンを行わないようにしている。しかし、
図18(a)に示すような状態では、一度完了している場合だとしても、その状態を示すフラグをクリアすることにより、もう一度レンズスキャンを可能とするようにしてもよい。
【0065】
図18(b)は、動体の被写体Obを撮影している時に、被写体Obの動きに合わせてカメラをパンし、フレームF1からフレームF2に変化させている。このような場合には、合焦できずに測距不能が続く場合がある。一定時間、測距不能が続いた場合は、被写体が低コントラストであるか、デフォーカス量が大きいために位相差AFが困難になっていると考えられる。このような場合には、フィルタAからフィルタBに変更することで、再び、測距可能とすることができる場合がある。
【0066】
また、フィルタを変更してからも、一定時間、測距不能となる場合は、レンズスキャン完了状態を示すフラグをクリアすることにより、もう一度レンズスキャンを可能とするようにしてもよい。なお、フラグクリアまでに、一定時間待つのは、ユーザを不愉快にさせないためである。
【0067】
次に、本実施形態における位相差AFの動作について、
図19および
図20を用いて説明する。なお、このフローは、不揮発性メモリ(不図示)に記憶されたプログラムに基づいて図示しないCPU等が
図1、2に示す各部を制御することにより実行する。
【0068】
図19に示す位相差AFのフローに入ると、まず、1Rがオンか否かの判定を行う(S1)。1Rは、レリーズ釦の半押し操作に応じてオンとなるスイッチである。このステップでは、このスイッチの状態に基づいて判定する。この判定の結果、1Rがオンでない場合には、位相差AFのフローを終了する(S3)。
【0069】
ステップS1における判定の結果、1Rがオンとなると、位相差AF画素の取得を行う(S5)。前述したように、撮像素子21は、位相差AF検出用画素と撮像用画素を有している。このステップでは、位相差AF検出用画素からの画素値を取得する。
【0070】
位相差AF画素を取得すると、次に、コントラスト値の判定を行う(S7)。ここでは、コントラスト値判定部/フィルタ選択部36が、位相差画素生成部34からの位相差AF検出用画素の画素値を用いて、コントラスト値を算出する。コントラスト値としては、例えば、
図12を用いて説明したように、測距エリア内の、最大値と最小値の差分の和Dcを算出してもよく、その他にも、例えば、隣接画素の差分の累積和等、公知の方法によって算出してもよい。
【0071】
ステップS7においてコントラスト値を取得すると、次に、コントラスト値が所定の閾値未満か否かを判定する(S9)。ここでは、ステップS7において取得したコントラスト値と所定の閾値を比較して判定する。この判定は、フィルタA、Bの選択をするために、行うことから、フィルタの特性に応じて閾値を設定すればよい。
【0072】
なお、
図19に示すフローでは、フィルタAとフィルタBの2種類を選択するために、閾値は1つであるが、
図10、11を用いて説明したフィルタCも選択可能であれば、閾値は2つ用意する。すなわち、用意できるフィルタの数に合わせればよい。また、ステップS9では、「未満」か否かを判定しているが、これに限らず、「以下」でもよい。この点については、後述するステップS17においても同様である。
【0073】
ステップS9における判定の結果、コントラスト値が所定の閾値未満であった場合には、フィルタBに変更する(S11)。コントラスト値が所定の閾値未満であったことから、コントラストが低く、大ボケ(大デフォーカス量)の場合であることから、
図9に示したような周波数特性を有するフィルタBに変更する。フィルタBは、フィルタAに比較して画像データの低周波成分も残すことから、大ボケの被写体であっても、位相差AFによってデフォーカス量を算出しやすくなる。
【0074】
一方、ステップS9における判定の結果、コントラスト値が所定の閾値以上であった場合には、フィルタAのままとする(S13)。コントラスト値が所定の閾値以上であったことから、被写体像にコントラストがあることから、
図8に示したような周波数特性を有するフィルタAを引き続き使用する。フィルタAは、フィルタBに比較して画像データの高周波成分が強調されることから、デフォーカス量を高精度で算出することができる。
【0075】
ステップS11またはS13においてフィルタの選択を行うと、次に、相関演算を行う(S15)。ここでは、デフォーカス量演算部/信頼性評価部37が、ステップS11、S13において選択されたフィルタによって、位相差画素生成部34からの位相差AF検出用画素列の画像データ(画素値)に対してフィルタ処理を施した後に、相関演算を行う。
【0076】
相関演算を行うと、次に、所定の閾値未満か否かを判定する(S17)。ここでは、ステップS15における相関演算の際に演算した信頼性を表す傾きFs[k]が、所定の閾値未満か否かを判定する。
図7を用いて上述したように、相関演算値の最小値の前後の傾きの内の最大値を、信頼性を表わす傾きFs[k]とする。また、
図15および
図16を用いて説明したように、傾きFs[k]と、所定の閾値を比較し、傾きFs[k]が所定の閾値を下回れば、現在のフォーカスレンズ位置が合焦位置まで遠いと判断し、一方、傾きFs[k]が所定の閾値を下回れば、合焦位置まで近いと判断する。なお、相関演算の信頼性を表わす指標は様々な検出方法があり、複数の相関演算値の差分を採用したり、さらに、この差分を相関演算値の最小値Fminで除算して正規化した数値を採用してもよい。
【0077】
ステップS17における判定の結果、所定の閾値以上の場合には、デフォーカス駆動を行う(S19)。ここでは、ステップS15における相関演算で求めたデフォーカス量に基づいて、レンズ制御部13がデフォーカス量分、撮影レンズ11内のフォーカスレンズの駆動を行う。
【0078】
ステップS17における判定の結果、所定の閾値未満であった場合には、レンズスキャン駆動済みか否かを判定する(S21)。相関演算の結果、傾きFs[k]が所定値未満であることから、現在のフォーカスレンズ位置が合焦位置まで遠いと判断される場合である。この場合には、レンズスキャンによって合焦位置を探すが、レンズスキャンを繰り返すことは、撮影者にとって不快である。そこで、本実施形態においては、動体被写体の場合とカメラを動かした場合を除いて、レンズスキャンは1Rオン後、1回のみ行うことにしている。
【0079】
ステップS21における判定の結果、レンズスキャン駆動済でなかった場合には、レンズスキャン駆動を行う(S23)。ここでは、例えば、
図17を用いて説明したように、フォーカスレンズの駆動範囲の端点から端点に向けて、フォーカスレンズを一定速度で動かしながら、位相差AF検出用画素や撮像用画素から画素値を取得し、位相差AFによる測距結果やコントラスト評価値をレンズ位置に関連付けて取得し記憶する動作を行う。
【0080】
一方、ステップS21における判定の結果、レンズスキャン駆動済でなかった場合には、動体か否か判定する(S41)。ここでは、画像処理部22が撮像用画素(通常画素)の画素列を用いて、被写体が動体であるか否かを判定する。上述の
図18(a)に示す被写体Obは動体の例である。
【0081】
ステップS41における判定の結果、動体でなかった場合には、パン・チルトであるか否かを判定する(S43)。パンは、カメラを横に振る動作を言い、チルトはカメラを上下に振る動作をいう。カメラ内には、ジャイロセンサ(不図示)等、カメラの動きを検出するセンサを設けておき、このセンサからの出力に基づいて、パンまたはチルト操作を行っているか否かを判定する。上述の
図18(b)は、パン・チルトの例である。
【0082】
ステップS41において動体と判定された場合、またはステップS43においてパン・チルトと判定された場合には、信頼性の低い状態が所定時間継続したか否かを判定する(S45)。
図18を用いて説明したように、動体被写体の場合やパン・チルト操作を行っている場合には、測距不能が続くおそれがある。そこで、このステップでは、相関演算における傾Fs[k]に基づいて、このような信頼性の低い状態が所定時間の間、継続しているか否かを判定する。
【0083】
ステップS43における判定の結果、パン・チルトでなかった場合、またはステップS45における判定の結果、信頼性の低い状態が所定時間の間、続いていない場合には、ステップS1に戻り、前述の動作を行う。
【0084】
一方、ステップS45における判定の結果、信頼性の低い状態が所定時間の間、続いていた場合には、ステップS11と同様に、フィルタBに変更する(S47)。フィルタBによる処理は、フィルタAによる処理に比較して位相差AF検出画素列の画像データ(画素値)に低周波成分も十分残すことから、大ボケの被写体であっても、位相差AFによってデフォーカス量を算出しやすくなる。
【0085】
ステップS47においてフィルタBに変更すると、ステップS23に進み、レンズスキャン駆動を行う。前述したように、動体被写体の場合と、パン・チルト操作を行っている場合には、レンズスキャン駆動を繰り返すことを許容している。
【0086】
ステップS23においてレンズスキャン駆動を行うと、またはステップS19においてデフォーカス駆動を行うと、次に、ステップS1と同様に、1Rオンか否かを判定する(S25)。この判定の結果、1Rがオフであった場合には、レリーズ釦から指が離れた状態であり、位相差AFのフローを終了する(S29)。
【0087】
ステップS25における判定の結果、1Rがオンであった場合には、次に、2Rがオンか否かを判定する(S27)。2Rは、レリーズ釦の全押し操作に応じてオンとなるスイッチである。このステップでは、このスイッチの状態に基づいて判定する。この判定の結果、2Rがオンでない場合には、ステップS1に戻り、前述の動作を行う。
【0088】
一方、ステップS27における判定の結果、2Rがオンの場合には、撮影動作を行う(S31)。ここでは、シャッタ速度で決まる露光時間の間、撮像素子21は被写体像を露光し、露光時間の経過後に撮像素子21から撮像用画素(通常画素)の画素値を読み出し、画像処理部22において画像処理を行った後、記録部24に画像処理を施した画像データを記録する。
【0089】
このように、本実施形態における位相差AFのフローにおいては、コントラスト値に基づいて、複数のフィルタの中から最適なフィルタを選択している(S7〜S13)。すなわち、コントラスト値が所定値よりも小さい場合には、低周波成分により大きい利得を持つ周波数特性のフィルタBを選択している。このため、被写体像の状態に応じて、十分な精度を確保しつつ、最適な相関演算用の画素データを生成することができる。
【0090】
また、本フローにおいては、相関演算結果の信頼性に応じて、デフォーカス駆動を行うか、レンズスキャン駆動を行うかを切り換えている(S15〜S23)。すなわち、信頼性の高い場合にはデフォーカス駆動を行い(S19)、信頼性が低い場合にはレンズスキャン駆動を行うようにしている(S23)。このため、信頼性に応じたレンズ駆動を行うことができ、精度と合焦速度を最適化している。
【0091】
また、本フローにおいては、動体被写体の場合やパン・チルト操作を行っている場合には、低周波成分により大きな利得を持つ周波数特性のフィルタBを選択している。
【0092】
すなわち、本実施形態においては、被写体が動体であるか否かを判別する動体判別手段と、焦点検出装置のパンまたはチルト動作を検出するパン・チルト検出手段を有し、動体被写体であるか否か(
図18(a)の例)、またパン・チルト操作のようにカメラが動いている(
図18(b)の例)か否かを判定する。本実施形態においては、動体判別手段によって、動体と判定し、かつ第1のフィルタ処理手段(例えば、フィルタA)を選択して演算を行っている場合に、信頼性判定手段(デフォーカス量演算部/信頼性評価部37)により信頼性が低いと所定時間以上判定され続けた場合に、第2のフィルタ処理手段(例えば、フィルタB)を選択して演算を行うようにしている(例えば、S41、S45、S47)。
【0093】
また、本実施形態においては、焦点検出装置のパンまたはチルト動作を検出するパン・チルト検出手段を有し、パン・チルト操作のようにカメラが動いている(
図18(b)の例)か否かを判定する。本実施形態においては、パン・チルト検出手段がパン・チルト動作と判定し、かつ第1のフィルタ処理手段(例えば、フィルタA)を選択して演算を行っている場合に、信頼性判定手段(デフォーカス量演算部/信頼性評価部37)により信頼性が低いと所定時間以上判定され続けた場合に、第2のフィルタ処理手段(例えば、フィルタB)を選択して演算を行うようにしている(例えば、S43〜S47)。
【0094】
このように、本実施形態においては、被写体が動体の場合や、カメラが動いている場合であっても、測距不能となり難くすることができる。また、この場合には、レンズスキャン駆動を行うことにより、合焦点を探し易くしている。
【0095】
以上説明したように、本発明の一実施形態においては、画素データのコントラスト値に基づいて複数のフィルタ手段のうちのいずれか1個を選択し、この選択されたフィルタ手段によってフィルタ処理された画素データに基づいて相関演算を行い、デフォーカス量を演算している。このため、大ボケの被写体であっても、フィルタが適切に選択されることから、迅速に合焦を可能とすることができる。すなわち、デフォーカス量を演算するために、一旦、フォーカスレンズを移動させる必要がなく、この分、焦点検出に掛かる時間を短縮することができる。
【0096】
なお、本発明の一実施形態においては、判定用のコントラスト値は位相差AF検出用画素の画素値を使用していたが、これに限らず、例えば、撮像用画素(通常画素)の画素値を用いて算出しても勿論かまわない。また、2像に分割した被写体像を生成するために、撮像素子21面上に位相差AF検出用画素を設けていたが、これに限らず、ハーフミラー等を用いて、被写体光束を分割し、この分割した被写体光束を2像に分割するようしても勿論かまわない。
【0097】
また、本発明の一実施形態においては、フィルタA〜Cは、遅延回路等の回路素子を用いて構成していたが、異なる周波数特性を有する回路であれば、
図8〜
図10に示した回路に限られない。また、フィルタとしては、ハードウエアに限らず、ソフトウエアによって構成しても勿論かまわない。さらに、フィルタの数は、複数であればよく、3以上でも構わない。
【0098】
また、本発明の一実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォーン、携帯情報端末(PDA:Personal Digital Assist)、パーソナルコンピュータ(PC)、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラでも構わない。いずれにしても、位相差AF方式を採用する機器であれば、本発明を適用することができる。
【0099】
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
【0100】
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
【0101】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。