(58)【調査した分野】(Int.Cl.,DB名)
瞳分割された一対の被写体像が異なる領域に投影される、一方向に並ぶ第1のラインセンサと、前記第1のラインセンサとは異なる一方向に並ぶ第2のラインセンサとを備えた自動焦点検出装置であって、
前記第1のラインセンサから出力された一対の画像信号列及び前記第2のラインセンサから出力された一対の画像信号列についてそれぞれ相関演算を実行して相関関数を算出し、相関関数から像ずれ量を求める相関演算手段を備え、
前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求め、該極値が得られたときの像ずれ量に基づいて、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列について相関演算を実行して像ずれ量を求めること、
を特徴とする自動焦点検出装置。
請求項1記載の自動焦点検出装置において、前記相関関数は、前記第1、第2のラインセンサの一対の画像信号列の一方に対して他方を逐次シフトさせて複数のシフト位置で相関演算値の積を得る関数であって、相関演算値の積が小さいほど前記一対の画像信号列の一致度が高い像ずれ量に対応する自動焦点検出装置。
請求項7記載の自動焦点検出装置において、前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積の逆数の最大の極大値が得られるシフト位置を検出したとき、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列のうち、コントラストが大きい方の一対の画像信号列を使用する自動焦点検出装置。
請求項1記載の自動焦点検出装置において、前記相関演算手段は、前記第1のラインセンサから出力された一対の画像信号列のコントラスト及び前記第2のラインセンサから出力された一対の画像信号列のコントラストが所定値以上であったとき、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求める自動焦点検出装置。
瞳分割された一対の被写体像が異なる領域に投影される、一方向に並ぶ第1のラインセンサと、前記第1のラインセンサとは異なる一方向に並ぶ第2のラインセンサとを備えた自動焦点検出装置の焦点検出方法であって、
前記第1のラインセンサから出力された一対の画像信号列について相関演算を実行して相関関数を求めるステップと、
前記第2のラインセンサから出力された一対の画像信号列について相関演算を実行して第2のラインセンサの相関関数を求めるステップと、
前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求めるステップと、
前記極値が得られた像ずれ量に基づいて、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列について相関演算を実行して像ずれ量を求めるステップと、
を含むことを特徴とする焦点検出方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、前記従来技術の構成では、縦横ラインセンサから出力される各一対の画像信号列の両方が繰り返しパターンの場合には、真の像ずれ量を求めることが困難であった。
【0005】
本発明は前記の問題点に鑑み、横縦ラインセンサから出力された各一対の画像信号列の両方が繰り返しパターンの場合であっても真の像ずれ量を求めることを可能にし、焦点検出精度、正確さを向上させることができる自動焦点検出装置及び焦点検出方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、横縦クロスラインセンサを使用すれば、各ラインセンサから出力される各一対の画像信号列の双方が繰り返しパターンであっても横と縦で繰り返しパターンの周期が異なり、相関演算により得られる横方向の相関関数及び縦方向の相関関数の周期が異なるであろうことより、2つの相関関数の極値が一致する相関演算値を求めれば、真の像ずれ量または真のずれ量に近い値を検出できることに着目して完成されたものである。
【0007】
すなわち、本発明は、瞳分割された一対の被写体像が異なる領域に投影される、一方向に並ぶ第1のラインセンサと、前記第1のラインセンサとは異なる一方向に並ぶ第2のラインセンサとを備えた自動焦点検出装置であって、前記第1のラインセンサから出力された一対の画像信号列及び前記第2のラインセンサから出力された一対の画像信号列についてそれぞれ相関演算を実行して相関関数を算出し、相関関数から像ずれ量を求める相関演算手段を備え、前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求め、該極値が得られたときの像ずれ量に基づいて、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列について相関演算を実行して像ずれ量を求めることを特徴としている。
【0008】
本発明の焦点検出方法は、瞳分割された一対の被写体像が異なる領域に投影される、一方向に並ぶ第1のラインセンサと、前記第1のラインセンサとは異なる一方向に並ぶ第2のラインセンサとを備えた自動焦点検出装置の焦点検出方法であって、前記第1のラインセンサから出力された一対の画像信号列について相関演算を実行して相関関数を求めるステップと、前記第2のラインセンサから出力された一対の画像信号列について相関演算を実行して第2のラインセンサの相関関数を求めるステップと、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求めるステップと、前記極値が得られた像ずれ量に基づいて、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列について相関演算を実行して像ずれ量を求めるステップと、を含むことを特徴としている。
【0009】
本発明にあっては、前記相関関数として、前記第1、第2のラインセンサの一対の画像信号列の一方に対して他方を逐次シフトさせて複数のシフト位置で相関演算値を得る関数であって、相関演算値が小さいほど前記一対の画像信号列の一致度が高い像ずれ量に対応するものを使用することが実際的である。
【0010】
前記相関演算手段は、
前記第1のラインセンサの
相関関数と
前記第2のラインセンサの
相関関数の積を
、特定シフト位置
及びこの特定シフト位置から一方の相関関数を他方の相関関数に対して逐次シフトさせて複数のシフト位置
で求め、前記積の最小の極小値が得られるシフト位置を検出することができる。
【0011】
前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積の
最小の極小値が得られるシフト位置を検出したとき、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列を使用して、前記検出したシフト位置を含む所定範囲のシフト位置について相関演算を実行して像ずれ量を求めることが好ましい。
【0012】
前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積の極小値が得られるシフト位置を検出したとき、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列のうち、コントラストが大きい方の一対の画像信号列を使用することが実際的である。
【0013】
前記相関演算手段
は、前記第1のラインセンサの
相関関数と
前記第2のラインセンサの
相関関数の積の逆数を
、特定シフト位置
及びこの特定シフト位置から一方の相関関数を他方の相関関数に対して逐次シフトさせて複数のシフト位置
で求め、前記積の逆数の極大値が得られるシフト位置を検出する
ことができる。
【0014】
前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積の逆数の
最大の極大値が得られるシフト位置を検出したとき、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列を使用して、前記検出したシフト位置を含む所定範囲のシフト位置について相関演算を実行して像ずれ量を求め、デフォーカス量を算出することが好ましい。
【0015】
前記相関演算手段は、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積の逆数の極大値が得られるシフト位置を検出したとき、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列のうち、コントラストが大きい方の一対の画像信号列を使用する。
【0016】
前記相関演算手段は、前記第1のラインセンサから出力された一対の画像信号列のコントラスト及び前記第2のラインセンサから出力された一対の画像信号列のコントラストが所定値以上であったとき、前記第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求める。
【発明の効果】
【0017】
本発明によれば、第1のラインセンサの相関関数と第2のラインセンサの相関関数の積を算出して該積の極値を求め、該極値が得られた像ずれ量に基づいて、前記第1と第2のラインセンサのいずれか一方の一対の画像信号列について相関演算を実行して像ずれ量を求め、デフォーカス量を算出するので、第1、第2のラインセンサの一対の画像信号列が両方繰り返しパターンであっても、真の像ずれ量を求めることが可能になり、焦点検出精度および正確さを向上させることができる。
【発明を実施するための形態】
【0019】
図1は、本発明をAF一眼レフカメラの自動焦点検出装置に適用した実施形態であって、その主要構成をブロックで示した図である。このAF一眼レフカメラは、自動焦点検出装置としてAFモジュール(自動焦点検出モジュール)60を内蔵したカメラボディ11と、このカメラボディ11に着脱可能なAF対応の撮影レンズ51とを備えている。
【0020】
カメラボディ11は、カメラボディ11及び撮影レンズ51を総括的に制御し、相関演算手段、繰り返しパターン判定手段、コントラスト検出手段及び選択手段としても動作するボディCPU31を備えている。
【0021】
一方、撮影レンズ51は、レンズ機能を制御するレンズCPU57と、焦点調節用レンズ52を光軸方向に駆動するギヤブロック53と、撮影レンズ51のマウント部に設けられた、カメラボディ11のジョイント35と着脱自在に連結するジョイント55を備えている。レンズCPU57は、電気接点群56、36の接続を介してカメラボディ11の周辺制御回路21と接続されていて、この周辺制御回路21を介してボディCPU31との間で、開放、最大F値情報、焦点距離情報、レンズ位置(距離)情報などを通信する所定のデータ通信を行う。
【0022】
撮影レンズ51からカメラボディ11内に入射した被写体光束は、大部分がメインミラー13により、ファインダ光学系を構成するペンタプリズム17に向かって反射され、ペンタプリズム17で反射されてアイピースから射出する。ペンタプリズム17から射出された被写体光束の一部は測光IC18の受光素子に入射する。一方、メインミラー13の中央部に形成されたハーフミラー部14に入射した光束の一部はハーフミラー部14を透過し、メインミラー13の背面に設けられたサブミラー15により下方に反射され、AFモジュール60に入射する。
【0023】
測光IC18は、受光量に応じて光電変換した電気信号を、周辺制御回路21を介してボディCPU31に測光信号として出力する。ボディCPU31は、測光信号等に基づいて所定の露出演算を実行し、露出用の適正シャッタ速度及び絞り値を算出する。そして、撮影処理の際に周辺制御回路21は、ミラーモータドライバ24を介してミラーモータ25を駆動してメインミラー13をアップするとともに、絞り機構22を駆動して撮影レンズ51の絞り(図示せず)を算出した絞り値に設定し、算出したシャッタ速度に基づいて露光機構23を駆動して露光する。さらに露光終了後、周辺制御回路21は、ミラーモータドライバ24を介してミラーモータ25を駆動してメインミラー13をダウンする。
【0024】
ボディCPU31は、制御プログラム等をメモリしたROM31a、演算用、制御用の所定のデータを一時的にメモリするRAM31b、計時用のタイマ31c、カウンタ31d、AFモジュール60から入力した出力VOUT信号(ビデオ信号)をA/D変換するA/D変換器31e、AFモジュール60の積分終了を設定するモニタ基準VMS信号をD/A変換してAFモジュール60へ出力するD/A変換器31fを内蔵している。
【0025】
AFモジュール60は、いわゆる瞳分割位相差方式であって、CCDラインセンサと積分終了タイミングをモニタするモニタセンサを備えた焦点検出素子61と、図示していないが撮像面と等価な焦点検出面において、被写体像を形成する被写体光束を二分割に瞳分割して、対応するCCDラインセンサ上に投影するAF光学系とを備えている。
【0026】
このAFモジュール60は、被写体の焦点状態を検出して画素単位のビデオ信号(一対の画像信号列)をボディCPU31に出力する。ボディCPU31は、AFモジュール60から入力したビデオ信号を内蔵A/D変換器31eでデジタル信号に変換し、焦点検出エリアに対応するデジタル信号に基づいて所定の演算を実行してデフォーカス量を算出する。さらにボディCPU35は、算出したデフォーカス量に基づいてAFモータ33の回転方向を決定し、回転数を、AFモータ33の回転数を検出するエンコーダ37が出力するAFパルス数として算出し、内蔵のカウンタ31dにセットする。そしてボディCPU31は、その回転方向及びパルス数に基づき、AFモータドライバ32を介してAFモータ33を駆動する。この駆動に際してボディCPU31は、AFモータ33の回転に連動してエンコーダ37が出力するパルスを内蔵のカウンタ31dでダウンカウントし、カウント値が0になったらAFモータ33を停止させる。AFモータ33の回転は、ギヤブロック34により減速され、カメラボディ11のマウント部に設けられたジョイント35と撮影レンズ51のマウント部に設けられたジョイント55との接続を介して撮影レンズ51のギヤブロック54に伝達され、ギヤブロック54を介して焦点調節用レンズ52を進退移動させる。
【0027】
ボディCPU31には、フォーカスモードをマニュアルモード、AF(ワンショット/コンティニュアスAF)モードの間で切り換えるフォーカススイッチSWAF、図示しないマニュアルレリーズ釦の半押しでオンする測光スイッチSWS及び全押しでオンするレリーズスイッチSWR、周辺制御回路21等への電源をオン/オフするメインスイッチSWMが接続されている。
【0028】
ボディCPU31には、設定されたAF、露出、撮影などのモード、シャッタ速度、絞り値などの各種撮影情報を表示する表示パネル39と、外部不揮発性メモリ手段としてカメラボディ11特有の各種定数などがメモリされたフラッシュメモリ38が接続されている。表示パネル39は、カメラボディ11の外面及びファインダ視野内の2ヶ所に設けられた表示器を含む。
【0029】
カメラボディ11には、撮像手段としてのイメージセンサ45が設けられている。イメージセンサ45による撮像面とAFモジュール60による焦点検出面は等価に設定されている。イメージセンサ45の出力信号は、AFE(アナログフロントエンド)46でデジタル化され、DSP41でディスプレイ(LCD)42に表示可能なビデオ信号に加工される。DSP41は、ボディCPU31との間で撮影に関する情報を授受する。
【0030】
図2は、焦点検出素子61の焦点検出エリアを説明する模式平面図である。焦点検出素子61は、ラインセンサとして、横ラインセンサIH(Hセンサ)及び縦ラインセンサIV(Vセンサ)を有する縦横検出型のCCD焦点検出素子である。本実施形態では、撮影画面70内の中央に交差焦点検出エリアCCを設定し、この交差焦点検出エリアCCが得られるように、一方向(横、水平方向)に横ラインセンサIHを配置し、一方向とは異なる一方向(縦、垂直方向)に縦ラインセンサIVを配置してある。
図2のクロスハッチング領域は、交差焦点検出エリアCCの縦焦点検出エリアと横焦点検出エリアが重複する重複領域CCHVを示している。つまり、重複領域CCHV内の被写体光束は、瞳分割されて、横ラインセンサIHと縦ラインセンサIVの両方に投影される。
【0031】
前記横ラインセンサIH及び縦ラインセンサIVはそれぞれ、基準ラインセンサAと参照ラインセンサBの二つの領域に区分けされており、それぞれの領域に二分割された一対の被写体像の一方が投影される。
図3は、横ラインセンサIH及び縦ラインセンサIVの基準ラインセンサAの一例を示している。横ラインセンサIHは、総数4N(Nは正の整数)個の光電変換素子を水平方向(図の左右、横方向)に配列したCCDラインセンサであって、
図3(A)に示すように左端から順に各画素に対して画素番号n=1〜4Nを付してある。同様に、縦ラインセンサIVは、総数4N(Nは正の整数)個の光電変換素子を垂直方向(図の上下、縦方向)に配列したCCDラインセンサであって、
図3(B)に示すように上端から順に各画素に対して画素番号n=1〜4Nを付してある。横ラインセンサIH及び縦ラインセンサIVの参照ラインセンサBの詳細は図示しないが、
図3(A)、(B)の基準ラインセンサAと同様の構成である。
【0032】
前記横ラインセンサIH及び縦ラインセンサIVには、それぞれの基準ラインセンサAと参照ラインセンサBに、瞳分割された一対の被写体像の一方が投影され、それぞれの領域の画素(光電変換素子)が積分、つまり被写体像の照度に応じた電荷に光電変換して電気的な信号として蓄積する。横ラインセンサIHに投影される瞳分割された一対の被写体像と、縦ラインセンサIVに投影される瞳分割された一対の被写体像は、一部が重複している。この実施形態では、交差焦点検出エリアCC内の被写体像が重複している。横ラインセンサIH及び縦ラインセンサIVの積分が終了すると、横ラインセンサIH及び縦ラインセンサIVが積分した電荷を順番に、所定の画素信号に変換して、それぞれ一対の画像信号列(IH−A及びIH−B(
図5(A)参照)、IV−A及びIV−B(
図5(B)参照))として出力する。
【0033】
ボディCPU31は、AFモジュール60から画像信号列(ビデオ信号)を入力すると、横ラインセンサIHからの一対の画像信号列(IH−A、IH−B)及び縦ラインセンサIVからの一対の画像信号列(IV−A、IV−B)について、像ずらし法により相関関数H_SCO(i)、V_SCO(i)を求める。相関関数H_SCO(i)とV_SCO(i)は、横ラインセンサIHと縦ラインセンサIVの基準ラインセンサAと参照ラインセンサBの一対の画像信号列(IH−AとIH−B、IV−A、IV−B)の一致度を示すもので、基準ラインセンサAと参照ラインセンサBの各画素信号の差分の絶対値の総和である相関関数H_SCO、V_SCOを求める演算を、基準ラインセンサAを基準として参照ラインセンサBを1画素分ずつシフトさせながら実行することで得られる。相関関数H_SCO、V_SCOは、一対の画像信号列の一致度(波形の一致度)が高いほど小さくなる関数である。
図4(A)は、特定のシフト位置であるシフト数I=0で横ラインセンサIHの基準ラインセンサAの領域と参照ラインセンサBの領域が一致している状態を示している。最大シフト数を±imaxとすれば、
図4(A)の初期状態から
図4(B)、(C)に示すように基準ラインセンサAに対して参照ラインセンサBを±1画素分シフトさせながら相関関数H_SCO(i)、V_SCO(i)を求める処理を、特定シフト位置からシフト数I=±imaxとなるまで繰り返す。
図4(D)、(E)は、特定シフト位置からシフト数I=±iだけシフトさせたシフト位置における状態を示している。なお、特定シフト位置で横ラインセンサIHの基準ラインセンサAと参照ラインセンサB(の画素信号列の位相)が一致している状態がデフォーカス量0の合焦状態である。
【0034】
ここで、相関関数SCO(i)(H_SCO(i)、V_SCO(i))は数式1で示すことができる。
【数1】
A
nは基準ラインセンサAの画素番号に対応する画像信号、B
n+iは参照ラインセンサBの画素番号に対応する画像信号である。
【0035】
一対の被写体像の特定シフト位置からの相対的なずれ量は、基準ラインセンサAと参照ラインセンサBの像(画像信号列IH−AとIH−B、画像信号列IV−AとIV−Bの波形)が一致したときの、特定シフト位置からのずれ量(シフト数)である。そこで、ボディCPU31は、相関関数H_SCO(i)、V_SCO(i)の極小値のなかで最も小さい極小値を検出し、この極小値をとるときの基準ラインセンサAに対する参照ラインセンサBの像のシフト数を、像ずれ量として検出する。なお、相関関数H_SCO(i)、V_SCO(i)からは横、縦ラインセンサIH、IVの画素(光電変換素子)単位でしか像ずれ量を求めることができないため、通常は、さらに、求めた相関関数H_SCO(i)、V_SCO(i)について補間演算を実行して、より精度が高く、正確な極小値を求める。このような補間演算は周知であるから、その説明は省略する。
【0036】
ここで、本発明の特徴部分である、コントラストが横方向と縦方向に周期的に変化している被写体について焦点検出する場合について説明する。例えばビルの窓や格子、タイル壁、市松模様のような格子模様等、横と縦方向に一定の規則性を持った繰り返しパターンを含む被写体である。
【0037】
図5(A)及び(B)は、横及び縦方向にコントラストが周期的に変化する横縦繰り返しパターン(市松模様などの格子模様)について焦点検出した場合に、AFモジュール60の横ラインセンサIH及び縦ラインセンサIVから出力される一対の画像信号列(IH−AとIH−B、IV−AとIV−B)の一例をグラフにして示している。図中の実線は基準ラインセンサA(基準ラインセンサ領域)に対応する画像信号列(IH−A、IV−A)を、破線は参照ラインセンサB(参照ラインセンサ領域)に対応する画像信号列(IH−B、IV−B)を示している。また図の縦軸は画像信号列レベル(輝度値、任意単位(a.u.))であり、横軸は画素番号である。このように被写体が横縦繰り返しパターンの場合、
図5(A)の横ラインセンサIHから出力された一対の画像信号列IH−A、IH−Bは、コントラストが周期的に変化する繰り返しパターンになる。同様に、
図5(B)の縦ラインセンサIVから出力された一対の画像信号列IV−A、IV−Bは、コントラストが周期的に変化する繰り返しパターンになる。
【0038】
図5(A)の一対の画像信号列IH−A、IH−Bについて相関演算を実行し、この一対の画像信号列IH−A、IH−Bの一致度を示す相関関数H_SCO(i)をグラフ化して
図6(A)に示した。
図5(B)の一対の画素信号列IV−A、IV−Bについて相関演算を実行し、この一対の画素信号列IV−A、IV−Bの一致度を示す相関関数V_SCO(i)をグラフ化して
図6(B)に示した。
図6(A)、(B)において、縦軸は相関関数H_SCO(i)、V_SCO(i)であり、横軸はシフト数i(画素数、bit)である。
【0039】
これらの
図6(A)、(B)から分かるように、
図6(A)の相関関数H_SCO(i)は、シフト数iが−26、−18、−11、−3、+5、+13、+21、+28のときに極小値になり、
図6(B)の相関関数V_SCO(i)は、シフト数iが−26、−18、−11、−2、+5、+13、+18、+25のときに極小値になっている。以上の極小値のいずれかが、真のずれ量または真のずれ量に近いずれ量である。
【0040】
本発明者は、横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサの相関関数V_SCO(i)の積を算出すれば、積の極小値、または積の逆数の極大値が真のずれ量または真のずれ量に近い量になることを見出した。そこで本発明は、第1の実施形態では、横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサIVの相関関数V_SCO(i)の積関数HV_SCO(i)(H_SCO(i)×V_SCO(i))を算出し、積関数HV_SCO(i)から得られる複数の極小値の中で最小の極小値を求める。第2の実施形態では、横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサIVの相関関数V_SCO(i)の積の逆数の関数1/HV_SCO(i)を求め、積の逆数の関数から得られる複数の極大値の中で最大の極大値を求める。以上の演算処理は、相関演算手段としてのボディCPU31が担っている。
【0041】
図7(A)及び(B)は、横ラインセンサIHの相関関数と縦ラインセンサVIの相関関数の積を示すグラフである。
図7(A)及び(B)において、縦軸は相関関数の積、横軸はシフト数i(シフト位置ずれ量、位相差)である。
図7(A)及び(B)の相違は、
図7(A)の積を示す縦軸が対数軸であるのに対して、
図7(B)の積を示す縦軸が線形軸であることである。この第1の実施形態では、積の最小の極小値が、横と縦ラインセンサIHとVHの相関関数H_SCO(i)とV_SCO(i))の一致度が最も高いシフト数i(真のシフト数または真のシフト数の近似値)になる。
【0042】
図8は、横ラインセンサIHの相関関数と縦ラインセンサVIの相関関数の積の逆数を示すグラフである。
図8において、縦軸は相関関数の積の逆数、横軸はシフト数iである。この第2の実施形態では、積の逆数の最大の極大値が横と縦ラインセンサIHとVHの相関関数H_SCO(i)とV_SCO(i))の一致度が最も高いシフト数i(真のシフト数または真のシフト数の近似値)になる。
【0043】
図7(A)及び(B)または
図8より、横と縦ラインセンサIHとVHの相関関数H_SCO(i)とV_SCO(i))の一致度が最も高いのは、シフト数iが+5のときであることが分かる。つまりこの被写体の真の像ずれ量は、シフト数iが+5またはその付近にあることが分かる。そこで本実施形態では、横、縦ラインセンサIH、VHの一方、この実施形態ではコントラストが高い方について、シフト数iが+5を含む所定シフト数範囲内について像ずらし法による相関演算を実行する。
【0044】
この一眼レフカメラの自動焦点検出処理について、
図9乃至
図12に示したフローチャートを参照してより詳細に説明する。
図9は、本発明の自動焦点検出処理の実施形態を示すメインフローチャートである。この焦点検出メインフローチャートには、メインスイッチSWMがONされ、測光スイッチSWSがオンされたときに入る。
【0045】
自動焦点検出処理を開始すると、先ず、焦点検出素子61を動作させて、横と縦のラインセンサIHとIVのそれぞれについて画像信号列を取得し、横と縦のラインセンサIHとIVのそれぞれの画像信号列についてコントラストを算出する(S11)。コントラストは、画像信号列の隣り合う画像信号列の輝度差の和である。所定値以上のコントラストが得られたラインセンサについてコントラストOK(フラグ)をセットしてもよい。
【0046】
続いて、ステップS11で算出した横と縦ラインセンサIHとIVのコントラストが両方OKか否かチェックする(S13)。両方のコントラストがOKと判定した場合(S13:YES)に、HV相関測距演算処理を実行して自動焦点検出処理を終了する(S15、END)。
【0047】
ステップS13において、横と縦ラインセンサIHとIVのコントラストの少なくとも一方がOKでないと判定した場合(S13:NO)に、横ラインセンサIHがコントラストOKか否かチェックする(S17)。横ラインセンサIHがコントラストOKと判定した場合(S17:YES)に、横ラインセンサIHについて測距演算処理を実行して自動焦点検出処理を終了する(S19、END)。
【0048】
ステップS17において、横ラインセンサIHがコントラストOKでないと判定した場合(S17:NO)に、縦ラインセンサIVがコントラストOKか否かチェックする(S21)。縦ラインセンサIVがコントラストOKと判定した場合(S21:YES)に、縦ラインセンサIVについて測距演算処理を実行して自動焦点検出処理を終了する(S23、END)。
【0049】
ステップS21において、縦ラインセンサIVがコントラストOKでないと判定した場合(S21:NO)に、コントラストNG処理を実行して自動焦点検出処理を終了する(S25、END)。所定値以上のコントラストが得られていない場合は、精度が高く正確な像ずれ量算出、測距演算が困難だからである。コントラストNG処理は、表示パネル36、LCD42に測距不能表示をするなどの表示処理を含む。
【0050】
ステップS19とS23で実行する横と縦ラインセンサIHとIVについて行う測距演算処理について、
図10に示したフローチャートを参照して説明する。横と縦ラインセンサIHとIVとで同一の測距演算処理なので、横ラインセンサIHの測距演算処理について説明する。
【0051】
横ラインセンサIHから画像信号列を取得する(S51)。取得した画像信号列に像ずらし法による相関演算を適用して相関関数を算出し(S53)、相関演算値の極小値(最小の極小値)が得られる像ずらし量(初期位置からのずらし量、位相差)を算出する(S55)。この実施形態は、相関関数(相関演算値)が極小値をとるとき、相関(一致度)が最大になる(
図6(A)、(B)参照)。相関が最大となる像ずらし量を算出したら(S55)、補間演算を行なってより正確な像ずれ量を算出し(S57)、その像ずれ量の信頼性を算出してステップS61に進む(S59、S61)。信頼性は、極小値の相関演算値の大きさ、極小値と極小値を挟む2つの相関演算値との差または傾きから求めるなど、公知の方法によって求める。
【0052】
ステップS61では、ステップS59で算出した像ずれ量が信頼性OK(信頼性あり)か否かチェックする(S61)。信頼性OKと判定した場合(S61:YES)に、ステップS57で算出した像ずれ量を有効な像ずれ量として設定し、設定した像ずれ量から距離(デフォーカス量)を算出してリターンする(S63、RET)。この距離(デフォーカス量)が、測距演算値である。
【0053】
ステップS61において信頼性OKでない(信頼性が無い)と判定した場合(S61:NO)は、信頼性NG(フラグ)をセットしてリターンする(S65、RET)。
【0054】
ステップS15で実行するHV相関測距演算の第1の実施形態の詳細について、
図11に示したフローチャートを参照して説明する。HV相関測距演算フローチャートに入ると、先ず、横ラインセンサIHの画像信号列を取得し、基準ラインセンサAに対して参照ラインセンサBを特定シフト位置(シフト数0)と、特定シフト位置から逐次シフトさせたシフト位置iで相関演算を実行して横ラインセンサIHの相関関数H_SCO(i)を求める(S101)。同様に縦ラインセンサIVの画像信号列を取得し、基準ラインセンサAに対して参照ラインセンサBを所定シフト数iシフトさせた所定のシフト位置iで相関演算を実行して縦ラインセンサIVの相関関数V_SCO(i)を求める(S103)。続いて、ステップS101およびステップS103で求めたシフト位置iにおける横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサIVの相関関数V_SCO(i)の積(積関数HV_SCO(i))を算出する(S105)。
図7の(A)、(B)は、積関数HV_SCO(i)の一例を示している。
【0055】
続いて、積関数HV_SCO(i)が極小値か否かチェックし(S107)、積関数HV_SCO(i)が極小値でないと判定したら(S107:NO)、所定のシフト位置iが最大シフト量かどうかチェックし(S117)、最大シフト量でないと判定した場合(S117:NO)に、シフト位置iをずらしてステップS101に戻る(S119、S101)。以上のS101乃至S107、S117、S119の処理を、積関数HV_SCO(i)の極小値を得るか(S107:YES)、所定のシフト位置iが最大シフト量になるまで(S117:YES)繰り返す。積関数HV_SCO(i)の極小値を得た場合(S107:YES)に、ステップS109に進む。積関数HV_SCO(i)の極小値が得られず(S107:NO)に、所定のシフト位置iが最大シフト量になると(S117:YES)、リターンする(RET)。なお、積関数HV_SCO(i)の極小値は、積関数HV_SCO(i)をシフト位置iが最大シフト量になるまで演算してから検出してもよい。
【0056】
ステップS109では、積関数HV_SCO(i)の極小値の信頼性OKかどうかチェックする。信頼性OKと判定しなかった場合(S109:NO)にステップS117に戻り、信頼性OKと判定した場合(S109:YES)にステップS111に進む。
【0057】
ステップS111では、横ラインセンサIHのコントラストの方が縦ラインセンサIVのコントラストより大きいか否かチェックする(S111)。横ラインセンサIHのコントラストの方が大きいと判定した場合(S111:YES)にステップS113に進み、横ラインセンサIHの画像信号列を使用して現在のシフト位置i及びその前後シフト位置で測距演算を行ない、リターンする(S113、RET)。ステップS111において横ラインセンサIHのコントラストの方が大きいと判定しなかった場合(S111:NO)にステップS115に進み、縦ラインセンサIVの画像信号列を使用して、現在のシフト位置iを中心とした前後所定シフト位置で像ずらし法による相関演算及び測距演算を行なってリターンする(S115、RET)。ステップS113及びステップS115の測距演算処理は、
図10に示した測距演算処理と同一の処理である。
【0058】
なお、測距演算処理またはH、V相関測距演算処理からリターンしたら、図示しない別のAFレンズ駆動スレッドにより、デフォーカス量に基づいて焦点調節レンズ群52を合焦位置まで移動させるのに必要なレンズ駆動量(AFモータ33の回転方向、回転量)を演算し、演算したレンズ駆動量に基づいて、モータドライブ回路32を介してAFモータ33を駆動し、ギヤブロック34、ジョイント35、55及びギヤブロック54を介して焦点調節レンズ群52を合焦位置まで移動する。なお、レンズ駆動量は、ステップS63、S113またはS115において演算してもよい。また、ステップS65で信頼性NGをセットしてリターンすると、表示パネル36及びLCD42の少なくとも一方に焦点検出ができなかったことを表示してAF動作を終了するか、焦点調節レンズ群52を光軸方向に移動して再度AF動作を行うなどの、信頼性NGに対応した動作をする。
【0059】
HV相関測距演算の第2の実施形態について、
図12に示したフローチャートを参照して説明する。この第2の実施形態は、第1の実施形態のステップS105の相関関数の積を求める処理を、相関関数の積の逆数(積の逆関数)を求めるステップS205に、ステップS107の極小値かどうか判定する処理を、極大値かどうか判定するステップS207に置き換えたものであって、他の処理は第1の実施形態と同一なので、同一処理内容のステップには同一のステップ番号を付して説明を省略する。
【0060】
ステップS205では、ステップS101およびステップS103で求めたシフト位置iにおける横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサIVの相関関数V_SCO(i)の積関数HV_SCO(i)の逆数(逆関数1/HV_SCO(i))を算出する(S205)。
図8は、横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサIVの相関関数V_SCO(i)の積関数HV_SCO(i)の逆数(積の逆関数1/HV_SCO(i))をグラフで示している。ステップS207では、逆関数1/HV_SCO(i)が極大値であるか否かチェックし(S207)、極大値であると判定しない場合(S207:NO)にステップS117に進んでシフト位置iが最大シフト量か否かチェックし(S117)、積の逆関数1/HV_SCO(i)が極大値であると判定した場合(S207:YES)に、ステップS109の信頼性チェック処理に進む。
【0061】
HV相関測距演算の第2の実施形態は、横ラインセンサIHの相関関数H_SCO(i)と縦ラインセンサIVの相関関数V_SCO(i)の積関数HV_SCO(i)の逆関数1/HV_SCO(i)を求めて極大値を検出しているので、最大の極大値(信頼性の高い極大値)の前後で値の変化が大きく、最大の極大値の判別(極大値の信頼性の判定)が比較的容易に行うことができる。
【0062】
本実施形態では、横方向及び縦方向に繰り返しパターンを有する被写体に対する自動焦点検出処理について説明したが、本発明は、一方ののみ繰り返しパターンを有する被写体や、繰り返しパターンを有しない通常の被写体に対しても焦点検出できることはいうまでもない。
【0063】
本実施形態では、交差焦点検出エリアCCが得られるように直交する十字形に配置した横ラインセンサIH及び縦ラインセンサIVを用いているが、横ラインセンサIH及び縦ラインセンサIVは互いに異なる別の一方向に並んでいればよく、例えばL字形やT字形で配置する態様にも適用可能である。