(58)【調査した分野】(Int.Cl.,DB名)
撮影レンズの異なる瞳位置を通過した一対の被写体像を、対応する画素列を有する一対のラインセンサ上に投影し、該一対のラインセンサによる一対の画像信号列に係る画素信号値を相対的にシフトして相関量を算出し、該相関量が極値となるシフト位置に基づいて一対の画像信号列の位相差を求め、該位相差から前記撮影レンズのデフォーカス量を求める位相差方式の自動焦点検出方法において、
前記一対のラインセンサの対応する画素信号値の一方と他方の差信号値を求めるステップと、
2乗相関演算により前記差信号値の2乗の総和を求めて前記一対の画像信号列の2乗相関関数値を求めるステップと、
前記2乗相関関数値演算ステップで求めた前記2乗相関関数値を2次関数内挿演算して前記一対の画像信号列の一致度が最も高い2乗相関シフト位置を求めるステップと、
線形相関演算により前記差信号値の総和を求めて前記一対の画像信号列の線形相関関数値を求めるステップと、
前記線形相関関数値演算ステップで求めた前記線形相関関数値を線形相関内挿演算して前記一対の画像信号列の一致度が最も高い線形相関シフト位置を求めるステップと、
前記2乗相関シフト位置または線形相関シフト位置から前記位相差を求めるステップと、
を有することを特徴とする自動焦点検出方法。
請求項2記載の自動焦点検出方法において、前記2乗相関シフト位置は、前記2乗相関関数値の極小値を含む複数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られるシフト位置によって求められる自動焦点検出方法。
請求項10記載の自動焦点検出装置において、前記2乗相関シフト位置は、前記2乗相関関数値の極小値を含む複数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られるシフト位置によって求められる自動焦点検出装置。
請求項12または13記載の自動焦点検出装置において、前記焦点検出演算手段はさらに、前記2乗相関関数値を求めた後、前記2乗相関関数値の極小値を検出し、該検出した2乗相関関数値の極小値を含む所定数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られる2乗相関シフト位置を求める自動焦点検出装置。
請求項12または13記載の自動焦点検出装置において、前記焦点検出演算手段はさらに、前記2乗相関関数値を求めた後、前記2乗相関演算により求めた2乗相関関数値の極小値を検出できた場合、検出した2乗相関関数値の極小値を含む所定数の2乗相関関数値を用いて2次関数内挿演算を実施して2乗相関関数値の真の極小値が得られる2乗相関シフト位置を求め、2乗相関関数値の極小値を検出できなかった場合、前記線形相関関数値の極小値を含む所定数の線形相関関数値を用いて線形内挿演算を実施し、線形相関関数値の真の極小値が得られる線形相関シフト位置を求める自動焦点検出装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、相関関数として基準側出力と参照側出力の差信号値の絶対値の総和(線形相関関数値)を用いているため、比較的振幅の小さなノイズ成分も、比較的振幅の大きな信号成分と同じように相関関数に影響を及ぼすため、像ずれ量算出バラツキ(精度)に対するノイズ成分の影響が比較的大きかった。また、線形相関関数値を2次関数で3点内挿する方法は、適合性が良くない(焦点検出誤差、バラツキが大きくなる)ことがわかっている。
【0006】
本発明は上記の問題点に鑑み、ノイズ成分が焦点検出精度に及ぼす影響を軽減することができる自動焦点検出方法及び自動焦点検出装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、2乗相関演算したときは2次関数内挿演算することにより焦点検出精度及び正確さが高くなることを見出して完成されたものである。
【0008】
すなわち、本発明は、撮影レンズの異なる瞳位置を通過した一対の被写体像を、対応する画素列を有する一対のラインセンサ上に投影し、該一対のラインセンサによる一対の画像信号列に係る画素信号値を相対的にシフトして相関量を算出し、該相関量が極値となるシフト位置に基づいて一対の画像信号列の位相差を求め、該位相差から前記撮影レンズのデフォーカス量を求める位相差方式の自動焦点検出方法において、前記一対のラインセンサの対応する画素信号値の一方と他方の差信号値を求めるステップと、
2乗相関演算により前記差信号値の2乗の総和を求めて前記一対の画像信号列の2乗相関関数値を求めるステップと、前記求めた前記2乗相関関数値を2次関数内挿演算して前記一対の画像信号列の一致度が最も高い2乗相関シフト位置を求めるステップと、線形相関演算により前記差信号値の総和を求めて前記一対の画像信号列の線形相関関数値を求めるステップと、前記求めた前記線形相関関数値を線形相関内挿演算して前記一対の画像信号列の一致度が最も高い線形相関シフト位置を求めるステップと、前記2乗相関シフト位置または線形相関シフト位置から前記位相差を求めるステップと、を有することを特徴と
する。
【0009】
自動焦点検出装置に係る本発明は、撮影レンズの異なる瞳位置を通過した一対の被写体像を、対応する画素列を有する一対のラインセンサ上に投影する焦点検出光学系と、該一対のラインセンサによる一対の画像信号列に係る画素信号値を相対的にシフトして相関量を算出し、該相関量が極値となるシフト位置に基づいて一対の画像信号列の位相差を求め、該位相差から前記撮影レンズのデフォーカス量を求める焦点検出演算手段と、を有する位相差方式の自動焦点検出装置において、前記焦点検出演算手段は、前記一対のラインセンサの対応する画素信号値の一方と他方の差信号値を求め、
2乗相関演算により前記差信号値の2乗の総和を求めて前記一対の被写体画像信号列の2乗相関関数値を演算し、前記求めた2乗相関関数値を2次関数内挿演算して
前記一対の画像信号列の一致度が最も高い2乗相関シフト位置を求め
ること、
線形相関演算により前記差信号値の総和を求めて前記一対の画像信号列の線形相関関数値を演算し、前記求めた線形相関関数値から線形内挿演算により前記一対の画像信号列の一致度が最も高い
線形相関シフト位置を求め
ること、及び前記2乗相関シフト位置
または前記線形相関シフト位置から位相差を求めること、を特徴と
する。
【0010】
本発
明において、前記2乗相関
演算は、前記一対の画像信号列の一方と他方の差信号値の2乗の総和からなる2乗相関関数値を一対の画像信号列の一方に対して他方を初期位置から逐次シフトさせて複数のシフト位置で求める
演算であって、2乗相関関数値が小さいほど前記一対の画像信号列の一致度が高い
ことが実際的である。
【0011】
前記2乗相関シフト位置は、前記2乗相関関数値の極小値を含む複数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られるシフト位置によって求めることが好ましい。
【0012】
本発明の自動焦点検出方法
の前記線形相関演算は、前記一対の画像信号列の一方と他方の差信号値の総和からなる線形相関関数値を一対の画像信号列の一方に対して他方を逐次シフトさせて複数のシフト位置で求める
演算であって、前記線形相関演算によって前記複数のシフト位置で求めた線形相関関数値の中から極小値を検出
し、該極小値が得られた
線形相関シフト位置を含む所定数のシフト位置において前記2乗相関演算を実施して2乗相関関数値を求めることが好ましい。
【0013】
前記2乗相関関数値
演算ステップ
は、前記線形相関関数値の極小値が得られた
線形相関シフト位置で前記2乗相関関数値が極小値であるか否か判定するステップと、極小値であると判定した場合
に前記2乗相関関数値の極小値が得られる2乗関数シフト位置を求めるステップと、極小値であると判定しなかった場合
に前記線形相関関数値の極小値が得られた
線形相関シフト位置を含む所定数のシフト位置について再度2乗相関演算を実施
し、この2乗相関関数値の極小値が得られる2乗関数シフト位置を求めるステップを有することが好ましい。
【0014】
前記検出した線形相関関数値の極小値が得られた
線形相関シフト位置を含む所定数のシフト位置において2乗相関関数値を求める場合の所定数は、前記2次関数内挿演算または線
形内挿演算に用いる複数のシフト位置の数より多数であることが好ましい。
【0015】
本発明の自動焦点検出方法はさらに、前記2乗相関関数値を求めるステップの後、前記2乗相関関数値の極小値を検出するステップと、前記検出した2乗相関関数値の極小値を含む所定数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られる
2乗相関シフト位置を求めるステップを含めることが好ましい。
【0016】
本発明の自動焦点検出方法はさらに、前記2乗相関関数値を求めるステップの後、前記2乗相関演算により求めた2乗相関関数値の極小値を検出するステップと、極小値を検出できたか否か判定するステップと、極小値を検出できたと判定した場合、検出した2乗相関関数値の極小値を含む所定数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られるシフト位置を求めるステップと、2乗相関関数値の極小値を検出できなかったと判定した場合、前記線形相関関数値の極小値を含む所定数の線形相関関数値を用いて線形内挿演算を実施し、線形相関関数値の真の極小値が得られる
線形相関シフト位置を求めるステップを含めてもよい。
【0017】
本発明の自動焦点検出装置において、
前記線形相関演算は、前記一対の画像信号列の一方と他方の差信号値の総和からなる線形相関関数値を一対の画像信号列の一方に対して他方を逐次シフトさせて複数のシフト位置で求める
演算であって、前記焦点検出演算手段は、前記線形相関演算
によって前記複数のシフト位置で求めた線形相関関数値の中から極小値を検出
し、前記極小値が得られた線形相関シフト位置を含む所定数のシフト位置において前記2乗相関演算を実施して2乗相関関数値を求めることが好ましい。
【0018】
本発明の自動焦点検出装置において、前記焦点検出演算手段はさらに
、前記線形相関関数値の極小値が得られた
線形相関シフト位置で前記2乗相関関数値が極小値である場合
に前記2乗相関関数値の極小値が得られる2乗関数シフト位置を求め、極小値でなかった場合
に前記線形相関関数値の極小値が得られた
線形相関シフト位置を含む所定数のシフト位置について再度2乗相関演算を実施し、この2乗相関関数値の極小値が得られる2乗関数シフト位置を求めることが好ましい。
【0019】
前記検出した線形相関関数値の極小値が得られた
線形相関シフト位置を含む所定数のシフト位置において2乗相関関数値を求める場合の所定数は、前記2次関数内挿演算または線
形内挿演算に用いる複数のシフト位置の数より多数であることが好ましい。
【0020】
本発明の自動焦点検出装置において、前記焦点検出演算手段はさらに、前記2乗相関関数値を求めた後、前記2乗相関関数値の極小値を検出し、該検出した2乗相関関数値の極小値を含む所定数の2乗相関関数値を用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られる
2乗相関シフト位置を求
めることが好ましい。
【0021】
本発明の自動焦点検出装置において、前記焦点検出演算手段はさらに、前記2乗相関関数値を求めた後、前記2乗相関演算により求めた2乗相関関数値の極小値を検出できた場合、検出した2乗相関関数値の極小値を含む所定数の2乗相関関数値を用いて2次関数内挿演算を実施して2乗相関関数値の真の極小値が得られる
2乗相関シフト位置を求め、2乗相関関数値の極小値を検出できなかった場合、前記線形相関関数値の極小値を含む所定数の線形相関関数値を用いて線形内挿演算を実施し、線形相関関数値の真の極小値が得られる
線形相関シフト位置を求めてもよい。
【発明の効果】
【0022】
本発明
の自動焦点検出方法によれば、
2乗相関関数値の場合は2次関数内挿演算により一対の画像信号列の一致度が最も高い2乗相関シフト位置を求めるので、一対の画像信号列の画素信号値の差信号値を2乗することによ
り振幅の比較的小さいノイズ成分は抑圧され、振幅の大きい信号成分は強調され
てノイズによ
る検出値のバラツキを低減することが
可能になり、線形相関関数値の場合は線形内挿演算するので一致度が最も高い線形相関シフト位置を短時間で高精度に検出することが可能になる。
【発明を実施するための形態】
【0024】
図1は、本発明をAF一眼レフカメラの自動焦点検出装置に適用した実施形態であって、その主要構成をブロックで示した図である。このAF一眼レフカメラは、自動焦点検出装置としてAFモジュール(自動焦点検出モジュール)60を内蔵したカメラボディ11と、このカメラボディ11に着脱可能なAF対応の撮影レンズ51とを備えている。
【0025】
カメラボディ11は、カメラボディ11及び撮影レンズ51を総括的に制御し、相関演算手段、繰り返しパターン判定手段、コントラスト検出手段及び選択手段としても動作するボディCPU31を備えている。
【0026】
一方、撮影レンズ51は、レンズ機能を制御するレンズCPU57と、焦点調節用レンズ52を光軸方向に駆動するギヤブロック53と、撮影レンズ51のマウント部に設けられた、カメラボディ11のジョイント35と着脱自在に連結するジョイント55を備えている。レンズCPU57は、電気接点群56、36の接続を介してカメラボディ11の周辺制御回路21と接続されていて、この周辺制御回路21を介してボディCPU31との間で、開放、最大F値情報、焦点距離情報、レンズ位置(距離)情報などを通信する所定のデータ通信を行う。
【0027】
撮影レンズ51からカメラボディ11内に入射した被写体光束は、大部分がメインミラー13により、ファインダ光学系を構成するペンタプリズム17に向かって反射され、ペンタプリズム17で反射されてアイピースから射出する。ペンタプリズム17から射出された被写体光束の一部は測光IC18の受光素子に入射する。一方、メインミラー13の中央部に形成されたハーフミラー部14に入射した光束の一部はハーフミラー部14を透過し、メインミラー13の背面に設けられたサブミラー15により下方に反射され、AFモジュール60に入射する。
【0028】
測光IC18は、受光量に応じて光電変換した電気信号を、周辺制御回路21を介してボディCPU31に測光信号として出力する。ボディCPU31は、測光信号等に基づいて所定の露出演算を実施し、露出用の適正シャッタ速度及び絞り値を算出する。そして、撮影処理の際に周辺制御回路21は、ミラーモータドライバ24を介してミラーモータ25を駆動してメインミラー13をアップするとともに、絞り機構22を駆動して撮影レンズ51の絞り(図示せず)を算出した絞り値に設定し、算出したシャッタ速度に基づいて露光機構23を駆動して露光する。さらに露光終了後、周辺制御回路21は、ミラーモータドライバ24を介してミラーモータ25を駆動してメインミラー13をダウンする。
【0029】
ボディCPU31は、制御プログラム等をメモリしたROM31a、演算用、制御用の所定のデータ、変数を一時的にメモリするRAM31b、計時用のタイマ31c、カウンタ31d、AFモジュール60から入力した出力VOUT信号(ビデオ信号)をA/D変換するA/D変換器31e、AFモジュール60の積分終了を設定するモニタ基準VMS信号をD/A変換してAFモジュール60へ出力するD/A変換器31fを内蔵している。
【0030】
AFモジュール60は、いわゆる瞳分割位相差方式であって、CCDラインセンサと積分終了タイミングをモニタするモニタセンサを備えた焦点検出素子61と、図示していないが撮像面と等価な焦点検出面において、被写体像を形成する被写体光束を二分割に瞳分割して、対応するCCDラインセンサ上に投影するAF光学系とを備えている。
【0031】
この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を光軸方向に進退移動させる。
【0032】
ボディCPU31には、フォーカスモードをマニュアルモード、AF(ワンショット/コンティニュアスAF)モードの間で切り換えるフォーカススイッチSWAF、図示しないマニュアルレリーズ釦の半押しでオンする測光スイッチSWS及び全押しでオンするレリーズスイッチSWR、周辺制御回路21等への電源をオン/オフするメインスイッチSWMが接続されている。
【0033】
ボディCPU31には、設定されたAF、露出、撮影などのモード、シャッタ速度、絞り値などの各種撮影情報を表示する表示パネル39と、外部不揮発性メモリ手段としてカメラボディ11特有の各種定数などがメモリされたフラッシュメモリ38が接続されている。表示パネル39は、カメラボディ11の外面及びファインダ視野内の2ヶ所に設けられた表示器を含む。
【0034】
カメラボディ11には、撮像手段としてのイメージセンサ45が設けられている。イメージセンサ45による撮像面とAFモジュール60による焦点検出面は等価に設定されている。イメージセンサ45の出力信号は、AFE(アナログフロントエンド)46でデジタル化され、DSP41でディスプレイ(LCD)42に表示可能なビデオ信号に加工される。DSP41は、ボディCPU31との間で撮影に関する情報を授受する。
【0035】
図2は、焦点検出素子61の焦点検出エリアを説明する模式平面図である。焦点検出素子61は、瞳分割された一対の被写体像光が投影されるラインセンサIHを有するCCD焦点検出素子である。本実施形態では、撮影画面70内の中央に焦点検出エリアCCを設定し、この交差焦点検出エリアCC内の被写体像のうち、撮影レンズの異なる瞳位置を通過した一対の被写体像に瞳分割されて、それぞれ対応するラインセンサIHの異なる一方と他方の領域に投影される。
【0036】
前記ラインセンサIHは、基準ラインセンサAと参照ラインセンサBの二つの領域に区分けされているが(
図4参照)、
図3は、ラインセンサIHの基準ラインセンサ領域に対応する基準ラインセンサAの一例を示している。ラインセンサIHは、総数N(Nは正の整数)個の光電変換素子を水平方向(図の左右、横方向)に配列したCCDラインセンサであって、
図3に示すように左端から順に各画素に対して画素番号n=1〜Nを付してある。ラインセンサIHの参照ラインセンサBは、
図2の基準ラインセンサAと同様の構成である。
【0037】
前記ラインセンサIHには、それぞれの基準ラインセンサAと参照ラインセンサBに、瞳分割された一対の被写体像の一方と他方が投影され、それぞれのラインセンサ領域の画素(光電変換素子)が積分、つまり被写体像の照度に応じた電荷に光電変換して電気的な信号として蓄積する。ラインセンサIHは、積分が終了すると、積分した電荷を順番に、所定の画素信号に変換して、それぞれ一対の画像信号列として出力する。
【0038】
ボディCPU31は、AFモジュール60から画像信号列(ビデオ信号)を入力すると、ラインセンサIHからの一対の画像信号列について、像ずらし法により線形の相関関数SCO(i)を求める。相関関数SCO(i)は、ラインセンサIHの基準ラインセンサAと参照ラインセンサBの一致度を示すもので、基準ラインセンサAと参照ラインセンサBの画像信号列の画素信号値の差分(差信号値)の絶対値の総和である相関関数SCO(i)を求める演算を、基準ラインセンサAを基準として参照ラインセンサBを1画素分ずつシフトさせながら実施することで得られる。相関関数SCO(i)は、一対の画像信号列の一致度(波形の一致度)が高いほど小さくなる関数である。
図4(A)は、初期状態のシフト数I=0でラインセンサIHの基準ラインセンサAと参照ラインセンサB(の画素信号列の位相)が一致している状態を示している。最大シフト数を±imaxとすれば、
図4(A)の初期状態から
図4(B)、(C)に示すように基準ラインセンサAに対して参照ラインセンサBを±1画素分シフトさせながら演算する処理を、特定シフト位置からシフト数I=±imaxとなるまで繰り返す。
図4(D)、(E)は、シフト数I=±iの状態を示している。なお、特定シフト位置でラインセンサIHの基準ラインセンサAと参照ラインセンサB(の画素信号列の位相)が一致している状態が合焦状態である。
【0039】
線形の相関関数SCO(i)は、下記数1式で示すことができる。
【数1】
A
nは基準ラインセンサAの画素番号に対応する画像信号、B
n+iは参照ラインセンサBの画素番号に対応する画像信号である。
【0040】
一対の被写体像の位相差(ずれ量)は、基準ラインセンサAと参照ラインセンサBの像(画像信号列IH−AとIH−Bの波形)が一致したときの、特定シフト位置(i=0)からのシフト数(ずれ量)である。そこで、ボディCPU31は、線形相関関数SCO(i)の最も小さい極小値を検出し、この極小値をとるときの基準ラインセンサAに対する参照ラインセンサBの像のシフト数を、像ずれ量(シフト量)として検出する。なお、線形相関関数SCO(i)からはラインセンサIHの画素(光電変換素子)ピッチ単位でしか像ずれ量(シフト量)を求めることができないため、通常は、さらに、求めた線形相関関数SCO(i)について内挿演算を実施して、バラツキが小さく(精度が高く)、正確な極小値を求める。この極小値が得られたときのシフト数(シフト位置と特定シフト位置との差)から、撮影レンズ51のデフォーカス量を求める。
【0041】
図5は、線形内挿法(直線補間法)の実施形態を示している。線形内挿法は、シフト位置の間に存在する場合もある相関関数値
(相関値)の真の極小値
(が得られる線形相関シフト位置)を求める方法であって、極小値である相関関数値を含む2個の相関関数値を通る直線と、この直線と傾きが逆方向であって、他の相関関数値を通る直線の交点により相関関数
値の真の極小値を求める手法である。
図5は、線形相関関数SCO(i)によって演算した相関関数値から、極小値である相関関数値
(相関値)H
0及び相関関数値H
0を挟む前後の相関関数値
(相関値)H
−1とH
+1を求め、これらの相関関数値H
0、H
−1、H
+1に線形内挿法(線形内挿演算)を適用して真の像ずれ量を求める様子をグラフで示した図である。
図5(A)は、図において右側の相関関数値H
+1が左側の相関関数値H
-1以上の場合を、
図5(B)は、図において右側の相関関数値H
+1が左側の相関関数値H
-1未満の場合を示すグラフであって、横軸はシフト数、縦軸は相関関数値を示している。
【0042】
H
+1≧H
-1 の場合は、相関関数値H
0とH
+1を通る直線と、該直線と傾斜方向が逆であって、相関関数値H
−1を通る直線の交点のシフト位置を求める。この交点のシフト位置が、真のシフト位置または真のシフト位置により近いシフト位置である。極小値である相関関数値H
0のシフト位置と前記交点のシフト位置の差をシフト誤差βとすると、シフト誤差βは、下記数2式によって求めることができる(
図5(A))。
【数2】
【0043】
H
−1>H
+1 の場合は、相関関数値H
−1とH
0を通る直線と、該直線と傾斜方向が逆であって、相関関数値H
+1を通る直線の交点のシフト位置を求める。この交点のシフト位置が、真のシフト位置または真のシフト位置により近いシフト位置である。極小値である相関関数値H
0のシフト位置と前記交点のシフト位置の差をシフト誤差βとすると、シフト誤差βは、下記数3式によって求めることができる(
図5(B))。
【数3】
【0044】
以上の線形内挿演算により、真のシフト位置または真のシフト位置により近いシフト位置である像ずれ量i
0+βを求めることができる。この像ずれ量i
0+βは、相関関数のみによって求めた像ずれ量i
0よりも精度が高く、正確である。
【0045】
図6は、2次関数内挿法(放物線補間法)の実施形態を示している。この実施形態の2次関数内挿法は、極小値である相関関数値を含む3個以上の相関関数値が得られる2次関数(放物線)により、2乗相関シフト位置(ビット)間に存在する場合もある相関関数の真の極小値(極値)を求める手法である。
図6は、2乗相関関数SCO2(i)によって演算した2乗相関関数値から、極小値である2乗相関関数値H
0S及び2乗相関関数値H
0Sを挟む前後の2乗相関関数値H
−1SとH
+1Sを求め、これらの2乗相関関数値H
0S、H
−1S、H
+1Sに2次関数内挿法(2次関数内挿演算)を適用して真の極小値、つまり正確な位相差(像ずれ量)を求める様子をグラフで示した図である。
【0046】
この実施形態は、基準ラインセンサAと参照ラインセンサBの画像信号列IH−AとIH−Bの一致度を求めるために、下記数4式により、2乗相関関数SCO2(i)を求める。
【数4】
【0047】
以上の2乗相関関数SCO2(i)において、極小値となる2乗相関関数値H
0S及びこの2乗相関関数値H
0Sを挟む前後の2乗相関関数値H
−1SとH
+1Sを求め、さらに3点の2乗相関関数値H
0S、H
−1S、H
+1Sに2次関数内挿演算を適用して、より高精度で正確な極小値が得られる2乗相関シフト位置を求める。極小値の2乗相関関数値H
0Sと真の極小値の2乗相関関数値が得られるシフト位置との差をβ
Sとすると、シフト誤差β
Sは、下記数5式によって求めることができる(
図6)。
【数5】
【0048】
2乗相関関数SCO2(i)は、数4式から明らかな通り、基準ラインセンサAと参照ラインセンサBの画像信号列の各画素信号値の差(差信号値)の2乗の和である。2乗相関関数SCO2(i)により、比較的振幅が小さいノイズ成分が抑制され、比較的振幅が大きい信号成分が強調されるので、ノイズによる像ずれ量のバラツキを低減(精度の低下を抑止)することが可能になる。
本発明の実施形態は、算出した2乗相関関数SCO2(i)について、2次関数内挿演算を行うので、精度が高く、正確な像ずれ量を検出できる。
【0049】
図12は、複数の一般被写体について、線形相関関数と線形内挿演算の組み合わせ、及び、2乗相関関数と2次関数内挿演算の組み合わせとで、同一の被写体に対してそれぞれ位相差方式の焦点検出をしたときのデフォーカス量のバラツキ(精度)を比較した結果を示すグラフである。横軸は線形内挿演算により求めたデフォーカス量のバラツキ(a.u.)を、縦軸は2次関数内挿演算により求めたデフォーカス量のバラツキ(a.u.)を示している。なお、横軸及び縦軸は、同じスケールの任意単位(a.u.)で示してある。このグラフからも、2乗相関関数と2次関数内挿演算の組み合わせで焦点検出を行った方がデフォーカス量のバラツキが比較的小さくなり良好であることが分かる。
【0050】
図13は、線形相関関数SCO(i)について、線形内挿(線形補間)演算を行ったときと、2次関数内挿(2次関数補間)演算を行ったときの、極小値の
線形相関シフト位置と2乗相関シフト位置(ビット内ボトム位置)と焦点検出誤差(デフォーカス量誤差)を比較するグラフである。同グラフにおいて、菱型は線形内挿演算値、正方形は2次関数内挿演算値を示し、横軸は画素1ピッチ(画像信号列の1ビット)内における極小値のシフト位置(ビット内ボトム位置(bit))を、縦軸は焦点検出誤差(a.u.)を示している。
図13から、線形相関関数SCO(i)については、線形内挿演算したときの方が2次関数内挿演算したときより焦点検出誤差が小さいことが分かる。
【0051】
図14は、2乗相関関数SCO2(i)について、線形内挿(線形補間)演算を行ったときと、2次関数内挿(2次関数補間)演算を行ったときの、極小値のシフト位置(ビット内ボトム位置)と焦点検出誤差を比較するグラフである。同グラフにおいて、菱型は線形内挿演算値、正方形は2次関数内挿演算値を示し、破線は線形相関関数値、実線は2乗相関関数値であって、横軸は画素1ピッチ(画像信号列の1ビット)内における極小値のシフト位置(ビット内ボトム位置(bit))を、縦軸は焦点検出誤差(a.u.)を示している。
図14から、2乗相関関数SCO2(i)については、2次関数内挿演算したときの方が線形内挿演算したときより焦点検出誤差が小さいことが分かる。
【0052】
以上より、線形相関関数SCO(i)については線形内挿演算する方が精度が高く正確であること、2乗相関関数SCO2(i)については2次関数内挿演算する方が高精度かつ正確であることが分かる。そこで本発明の自動焦点検出装置は、所定条件下において、線形相関関数SCO(i)については線形内挿演算を実施し、2乗相関関数SCO2(i)については2次関数内挿演算を実施する。
【0053】
本発明の自動焦点検出動作について、
図7乃至
図11に示したフローチャートを参照してより詳細に説明する。
図7は、本発明の自動焦点検出装置の焦点検出動作の実施形態を示すメインフローチャートである。この焦点検出メインフローチャートには、メインスイッチSWMがONされ、測光スイッチSWSがオンされたときに入る。
【0054】
自動焦点検出動作を開始し、自動焦点検出1に入ると、ラインセンサIHから取得した一対の画像信号列をローパスフィルタに通して高周波のノイズ成分を除去し(S101)、ローパスフィルタに通した画像信号列(少なくとも基準ラインセンサAの画像信号列)、についてコントラストを演算する(S103)。コントラストOKか否かチェックし(S105)、コントラストOKでないと判定した場合(S105:NO)、焦点検出動作(自動焦点検出1)を終了する(END)。
【0055】
次に、コントラストOKと判定した場合(S105:YES)、一対の画像信号列をハイパスフィルタに通して直流ノイズ成分を除去する(S107)。
【0056】
ハイパスフィルタに通した一対の画像信号列について、像ずらし法による線形相関演算を実施して線形相関関数値を求める(S109)。次に、求めた線形相関関数値において、極小となる相関関数値H
0及びその相関関数値H
0が得られたボトム位置(シフト量)i
0を検出(探索)し、検出したボトム位置i
0及びこのボトム位置i
0を挟む3点の相関関数値H
0、H
−1、H
+1(
図5(A)、(B)参照)を記憶してステップS113に進む(S111、S113)。ステップS113では、ボトム位置i
0の信頼性を演算する。ボトム位置i
0の信頼性は、相関関数値H
−1とH
0を通る直線の傾斜角と相関関数値H
+1とH
0を通る直線の傾斜角、相関関数値H
0の大きさをしきい値と比較するなど、公知の方法によって求める。
【0057】
信頼性OK(有り)と判定した場合(S115:YES)、2乗方式ビット内挿演算1を実施して自動焦点検出1を終了し(S117、END)、信頼性OK(有り)と判定しなかった場合(S115:NO)、ステップS117をスキップして自動焦点検出1を終了する(END)。
【0058】
自動焦点検出1を終了したら、図示しない別のAFレンズ駆動スレッドにより、像ずれ量に基づいてデフォーカス量を演算し、デフォーカス量に基づいて焦点調節レンズ群52を合焦位置まで移動させるのに必要なレンズ駆動量(AFモータ33の回転方向、回転量)を演算し、演算したレンズ駆動量に基づいて、モータドライブ回路32を介してAFモータ33を駆動し、ギヤブロック34、ジョイント35、55及びギヤブロック54を介して焦点調節レンズ群52を合焦位置まで移動する。
【0059】
ステップS117で実施する2乗方式ビット内挿演算1について、
図8に示したフローチャートを参照してより詳細に説明する。2乗方式ビット内挿演算1では、先ず、ステップS111で検出した線形相関関数値のボトム位置i
0及びボトム位置i
0を挟む±2ビットのシフト位置、つまり、シフト位置i
0−2、i
0−1、i
0、i
0+1、i
0+2の5点について2乗相関演算を実施して2乗相関関数SCO2(i)を求める(S201)。続いて、2乗相関演算で求めた2乗相関関数SCO2(i)の2乗相関ボトム位置i
0S(
図6参照)を検出し(S203)、ステップS205に進む。2乗相関演算を実施するシフト範囲を5点まで絞ったので、最初から全シフト範囲について2乗相関演算して極小値を求める場合より演算時間が短縮される。
【0060】
ここで、ボトム位置i0を挟む±2ビットのシフト位置で2乗相関関数値を求める理由を説明する。
図15は、同一の被写体について線形相関関数SCO(i)と2乗相関関数SCO2(i)とでボトム位置(極小値のボトム位置
、線形相関シフト位置と2乗相関シフト位置)が異なる場合の例を示すグラフである。同グラフにおいて、菱型は線形相関関数SCO(i)、正方形は2乗相関関数SCO2(i)であり、横軸はシフト量(bit)、縦軸は線形相関関数値と2乗相関関数値である。この図の例に示すように、真のボトム位置がビットシフトの中央付近にあるような場合など、ボトム位置が変動しやすい状況においては、ノイズ等の影響によって、線形相関関数のボトム位置と2乗相関関数のボトム位置が必ずしも一致するとは限らないことがあるため、さらに1つ外側の2
乗相関関数値を求めることで2乗相関関数のボトムを見つけられるようにするためである。
つまり、線形相関関数値の極小値が得られた線形相関シフト位置を含む所定数のシフト位置において2乗相関関数値を求める場合の所定数は、2次関数内挿演算または線形内挿演算に用いる複数のシフト位置の数より多数である。
【0061】
ステップS205では、2乗相関関数のボトム(2乗相関ボトム位置i
0S)有り(検出できた)か否かチェックする。2乗相関ボトム位置i
0S有りと判定した場合(S205:YES)、3点の2乗相関関数値H
−1SとH
0SとH
+1Sを用いて2次関数内挿演算を実施し、
2乗相関関数
値の真の極小値が得られるボトム位置と2乗相関ボトム位置i
0Sとの誤差に対応するずれ量β
Sを算出し(S207)、さらに真のボトム位置に対応する像ずれ量i
0S+β
Sを算出してリターンする(S209、RET)(
図6参照)。2乗相関ボトム位置i
0S有りと判定できなかった場合(S205:NO)、ステップS111で検出した線形相関関数値の3点の相関関数値H
−1とH
0とH
+1を用いて線形内挿演算を実施し、線形相関関数値の真の極小値が得られるボトム位置とボトム位置i
0とのずれ量βを算出し(S211)、さらに真のボトム位置に相当する像ずれ量i
0+βを算出してリターンする(S213、RET)。
【0062】
本発明第1の実施形態の自動焦点検出1によれば、予め線形相関演算によって求めたボトム位置を基準とした±2ビットの範囲で2乗相関演算するので、最初から全てのシフト範囲について2乗相関演算する場合より演算時間が短縮される。2乗相関関数の2乗相関ボトム位置i
0Sを検出できた場合に2次関数内挿演算により像ずれ量i
0S+β
Sを求めるので、より精度の高い正確な像ずれ量i
0S+β
Sを、短時間で得ることができる。2乗相関関数の2乗相関ボトム位置i
0Sを検出できなかった場合、線形相関値の中から検出した相関関数値H
−1とH
0とH
+1を用いて線形内挿演算を実施して精度の高い正確な像ずれ量i
0+βを得ることができる。
【0063】
なお、自動焦点検出1を終了したら、図示しない別のAFレンズ駆動スレッドにより、像ずれ量に基づいてデフォーカス量を演算し、デフォーカス量に基づいて焦点調節レンズ群52を合焦位置まで移動させるのに必要なレンズ駆動量(AFモータ33の回転方向、回転量)を演算し、演算したレンズ駆動量に基づいて、モータドライブ回路32を介してAFモータ33を駆動し、ギヤブロック34、ジョイント35、55及びギヤブロック54を介して焦点調節レンズ群52を合焦位置まで移動する。
【0064】
図9は、本発明の自動焦点検出動作に関する第2の実施形態(自動焦点検出2)を示したフローチャートである。自動焦点検出2は、線形相関演算と2乗相関演算を同時に実施してから、線形相関関数値のボトム位置を検出することが第1の実施形態の自動焦点検出1と相違する。自動焦点検出2に入ると、ラインセンサIHから取得した一対の画像信号列をローパスフィルタに通してから(S301)、少なくとも基準ラインセンサAの画像信号列についてコントラストを演算する(S303)。続いてコントラストOKか否かチェックし(S305)、コントラストOKでないと判定した場合(S305:NO)、自動焦点検出動作(自動焦点検出2)を終了する(END)。
【0065】
コントラストOKと判定した場合(S305:YES)、一対の画像信号列をハイパスフィルタに通してステップS309に進む(S307、S309)。
【0066】
ステップS309では、一対の画像信号列について、像ずらし法による線形相関演算及び2乗相関演算を同時に行って、線形相関関数値及び2乗相関関数
値を求める(S309)。求めた線形相関関数値について、極小値が得られるボトム位置i
0を検出(探索)し、ボトム位置i
0及びボトム位置i
0を挟む計3点の相関関数値H
0、H
−1、H
+1(
図5(A)、(B)参照)を記憶して、ステップS313に進む(S311、S313)。ステップS313では、ボトム位置i
0の信頼性を演算する。ボトム位置i
0の信頼性は、相関関数値H
−1とH
0を通る直線の傾斜角と相関関数値H
+1とH
0を通る直線の傾斜角、あるいは相関関数値H
0の大きさをしきい値と比較するなど、公知の方法によって求める。
【0067】
信頼性OK(有り)と判定した場合(S315:YES)、2乗法式ビット内挿演算2を実施してリターンし(S317、RET)、信頼性OK(有り)と判定しなかった場合(S315:NO)、ステップS317をスキップしてリターンする(RET)。
【0068】
図10は、ステップS317で実施する2乗方式ビット内挿演算2の詳細を示すフローチャートである。2乗方式ビット内挿演算2に入ると、先ず、ステップS309で演算した2乗相関関数値が線形相関関数値のボトム位置i
0でボトムか否か(線形相関関数値のボトム位置における2乗相関関数値が極小値であるか否か)チェックする(S401、
図15)。ボトムでないと判定した場合(S401:NO)、線形相関関数値のボトム位置i
0を含む±2の各シフト位置i
0−2、i
0−1、i
0、i
0+1、i
0+2において2乗相関演算を実施してステップS405に進む(S403、S405)。2乗相関関数値が線形相関関数値のボトム位置i
0でボトムであると判定した場合(S401:YES)、ステップS403をスキップしてステップS405に進む。
【0069】
ステップS405では、2乗相関関数値の2乗相関ボトム位置i
0Sを検出し、2乗相関ボトム位置i
0Sの2乗相関関数値H
0Sを含む3点の2乗相関関数値H
0S、H
−1S、H
+1S(
図6参照)を求めて記憶し、ステップS407に進む。
【0070】
ステップS407では、2乗相関ボトム位置i
0S有り(極小値となる2乗相関関数値)を検出できた)か否かチェックする。2乗相関ボトム位置i
0S有りと判定した場合(S407:YES)、3点の2乗相関関数値H
−1SとH
0SとH
+1Sを用いて2次関数内挿演算を実施し、2乗相関関数値の真の極小値が得られるボトム位置と2乗相関ボトム位置i
0Sのずれ量β
Sを算出し(S409)、さらに真のボトム位置に対応する像ずれ量(i
0S+β
S)を演算してリターンする(S411、RET)。2乗相関ボトム位置i
0Sを検出できたと判定できなかった場合(S407:NO)、線形相関関数値の3点の相関関数値H
−1とH
0とH
+1を用いて線形内挿演算を実施し、線形相関関数値の真の極小値が得られるボトム位置とボトム位置i
0とのずれ量βを算出し(S413)、さらに真のボトム位置に対応する像ずれ量i
0+βを算出してリターンする(S415、RET)。
【0071】
本発明第2の実施形態の自動焦点検出2によれば、線形相関演算と2乗相関演算を同時に行うので、1回の相関演算(シフト演算)で線形相関関数と2乗相関関数を同時に求めることができるので、演算時間を短縮することができる。
【0072】
図11は、本発明の自動焦点検出動作の第3の実施形態(自動焦点検出3)を示したフローチャートである。自動焦点検出3は、2乗相関演算のみを実施して2乗相関関数値の2乗相関ボトム位置を検出することが第1、第2の実施形態の自動焦点検出1、2と相違する。
【0073】
自動焦点検出3に入ると、先ず、ラインセンサIHから取得した一対の画像信号列をローパスフィルタに通して(S501)、少なくとも基準ラインセンサAの画像信号列についてコントラストを演算する(S503)。続いてコントラストOKか否かチェックし(S505)、コントラストOKでないと判定した場合(S505:NO)、自動焦点検出動作(自動焦点検出3)を終了する(END)。
【0074】
コントラストOKと判定した場合(S505:YES)、一対の画像信号列をハイパスフィルタに通してステップS509に進む(S507、S509)。
【0075】
ステップS509では、一対の画像信号列について、像ずらし法による2乗相関演算を実施して2乗相関関数値を求める(S509)。求めた2乗相関関数値について、極小値となる2乗相関関数値H
0S及びその2乗相関関数値H
0Sが得られた2乗相関ボトム位置i
0Sを検出(探索)し、検出した2乗相関ボトム位置i
0S及びこの2乗相関ボトム位置i
0Sを挟む3点の2乗相関関数値H
0S、H
−1S、H
+1S(
図6参照)を記憶してステップS513に進む(S511、S513)。ステップS513では2乗相関ボトム位置i
0Sの信頼性を演算してステップS515に進む(S513、S515)。ボトム位置i
0Sの信頼性は、2乗相関関数値H
−1SとH
0Sを通る直線の傾斜角あるいは相関関数値H
+1SとH
0Sを通る直線の傾斜角、または2乗相関関数値H
0Sの大きさをしきい値と比較するなど、公知の方法によって求める。
【0076】
ステップS515では2乗相関ボトム位置i
0Sの信頼性OK(有り)か否か判定し、信頼性OK(有り)と判定した場合(S515:YES)、3点の2乗相関関数値H
0S、H
−1S、H
+1Sを用いた2次関数内挿演算によりずれ量β
Sを算出し(S517)、像ずれ量i
0S+β
Sを演算してリターンする(S519、RET)。信頼性OK(有り)と判定しなかった場合(S515:NO)、ステップS517及びS519をスキップしてリターンする(RET)。
【0077】
以上の通り、本発明の第3の実施形態としての自動焦点検出3処理によれば、線形相関演算をすることなく、2乗相関演算及び2次関数内挿演算により像ずれ量i
0S+β
Sを演算するので、焦点検出処理を簡素化することができる。
【0078】
以上、本発明の自動焦点検出方法及び自動焦点検出装置を一眼カメラに適用した実施形態について説明したが、本発明は、瞳分割位相差方式の光学系であれば適用可能である。