以下、本発明に係る測距装置の実施形態について図面を用いながら説明する。図1は、本発明に係る測距装置の構成を模式的に表した縦断面図である。図1において測距装置1は、レンズアレイ11、撮像素子15、基板18を有してなる。
レンズアレイ11は、2つの測距用レンズ(レンズ12a、レンズ12b)が一体に形成されてなるものである。このレンズ12aとレンズ12bは、同形状かつ同焦点距離のものである。また、レンズ12aの光軸14aと、レンズ12bの光軸14bは平行であって、その間隔が基線長Dである。
本明細書において、測距装置1の方向を示すとき、光軸14aと光軸14bに沿う軸をZ軸とし、このZ軸に垂直かつ光軸14aから光軸14bに向かう方向をY軸とし、Z軸とY軸の両方に直交する方向をX軸としたとき、X軸の正方向を上向き、X軸の負方向を下向きと表記する。レンズ12aとレンズ12bはXY平面上に配置されており、両レンズの中心はY軸上に配置されている。よって、レンズ12aとレンズ12bがZ軸方向に向いている状態で、かつ、レンズ12aとレンズ12bがY軸上にある状態が、通常の使用状態である。レンズ12aとレンズ12bがZ軸方向に向いている状態で、かつ、レンズ12aとレンズ12bがX軸上にある状態は、測距装置1を90度傾けて使用する状態である。通常状態で、測距装置1の視差Δは、Y軸方向に発生する。
撮像素子15は、CMOSやCCD等の撮像素子であって、シリコンウェハ上に半導体プロセスにより形成された多数の受光素子(画素)からなる。本実施例では、撮像素子15にCCDを用いている。撮像素子15は、2つの受光面16aと受光面16bを有する。受光面16aには、レンズ12aを通過した対象の像が結像される。受光面16bには、レンズ12bを通過した対象の像が結像される。受光面16aと受光面16bは、レンズ12aとレンズ12bの基線長Dに応じた隔たりをもって配置されている。
受光面16aと受光面16bは同じ大きさの矩形からなり、受光面16aと受光面16bの対角中心が、レンズ12aとレンズ12bと光軸はほぼ一致するように配置されている。このように受光面16aと受光面16bを離間して配置することで、入射した光線が隣接する受光面へ漏れることを防止する壁などを設ける必要がない。
基板18は、撮像素子15が出力する画像信号に対して所定の画像処理を行うデジタル信号プロセッサ(DSP)を備えている。基板18が備えるDSPによって、レンズアレイ11を介して受光面16aと16bに結像した被写体像に基づく画像信号に所定の処理を行って、測距を行うことができるように構成されている。
次に、基板18が備える機能ブロックについて、図2を用いて説明する。図2において基板18は、測距用センサ1用F/E(フロントエンド)−IC181、測距用センサ2用F/E−IC182、プロセッサ183、SDRAM184、ROM185、加速度センサ186を有してなる。
基板18には撮像素子15である受光面16aおよび受光面16bから取り込まれる被写体像が画像信号に変換されて入力される。F/E−IC181は、撮像素子15の受光面16aにて結像した測距の対象の像に基づく画像信号に対応し、受光面16aに結像した対象に応じた画像信号をデジタルデ−タに変換するためのCDS(相関2重サンプリング回路)181−1、ADC(アナログ−デジタル変換回路)181−2、ADC181−3と、を有してなる。F/E−IC182は、撮像素子15の受光面16bにて結像した測距の対象の像に基づく画像信号に対応し、受光面16bに結像した対象に応じた画像信号をデジタルデ−タに変換するためのCDS182−1、ADC182−2、ADC182−3と、を有してなる。
F/E−IC181とF/E−IC182において画像信号から変換されたデジタルデ−タは、プロセッサ183のCCD信号処理ブロック183−1へと入力される。これらの信号処理動作はCCD信号処理ブロック183−1から出力されるVD/HD/CLK(垂直駆動/水平駆動/クロック)信号より、TG(タイミングジェネレータ)181−4およびTG182−4を介して制御される。
プロセッサ183は、測距装置1の全体制御を行い、CCD信号処理ブロック183−1、CPUブロック183−2、メモリコントロ−ラブロック183−3、外部インターフェース(I/F)ブロック183−4、加速度センサ186が接続されるI2Cブロック183−5を有し、これらは相互にバスラインで接続されてなる。プロセッサ183の外部には、YUV画像デ−タを保存するSDRAM184が備わり、プロセッサ183とバスラインによってつながっている。またプロセッサ183の外部には、制御プログラムが格納されたROM185が備わり、プロセッサ183とバスラインによってつながっている。
外部I/Fブロック183−4は、上記デジタルデ−タを用いた所定の演算処理によって算出される測距デ−タに基づく測距結果の出力と、測距のモ−ド設定に係る信号を受け取るインターフェースである。設定され得る測距モ−ドには、例えば「近距離優先モ−ド」、「遠距離優先モ−ド」などがある。設定モ−ドの変更は、外部I/Fブロック183−4を介して接続する図示しない外部装置からの指示による。外部装置は、例えばデジタルカメラなどの撮像装置である。
ROM185には、測距演算処理部185a、距離分布生成処理部185b、被写体位置選択処理部185cの各種制御プログラムが格納されている。被写体位置選択処理部185cは、屋内屋外判定処理部1851と、測距優先選択処理部1852と、合成エリア生成処理部1853の各プログラムから構成されている。
ROM185に格納されている各制御プログラムによって、CCD信号ブロック183−1が撮像素子15に対し、TG181−4やTG182−4を介して、VD信号に同期した画像信号を取り込む制御処理を行う。本実施例における取り込みタイミング(以下「フレームレート」という。)は、30fpsである。
図3に、画像信号の取り込みタイミングに係るタイミングチャ−トの例を示す。図3において、VD信号の立ち下がりをトリガとして、電子シャッタ動作が行われ、その後に露光処理が行われる。従って、撮像素子15は電子シャッタの設定によって、露光量を制御することができるように構成されている。
ここで、ラインセンサを用いて、視差を用いた測距方法について説明する。図4は、従来から知られているラインセンサを用いた測距装置の例を示す模式図である。図4において、測距の対象である符号111の像光が2つの光学系112aと112bに結像する位置を、符号114aと符号と114bによって示している。
ラインセンサ115aの結像位置114aと、ラインセンサ115bの結像位置114bの関係を、図5を用いて説明する。図5に示すように、結像位置114aと結像位置114bは、視差Δだけずれる。よって、ラインセンサ115aとラインセンサ115bから出力される画像信号に基づいて、視差Δを検出すれば、測距対象111までの距離A(図4参照)を算出することができる。
距離Aを算出する演算式について説明する。図4に示すように、レンズ113aとレンズ113bの光軸の距離を基線長D、レンズ113aおよびレンズ113bから測距対象111までの距離をA、各レンズのそれぞれの焦点距離をfとすると、距離A≫焦点距離fの関係が成り立つときには、距離Aは式1で求めることができる。
(式1) A=D・f/Δ
基線長Dと焦点距離fは測距装置の組み立て時において既知であるから、視差Δを検出して式1による演算処理を行うことで、測距対象111までの距離Aを算出することができる。このように2つのラインセンサによって結像位置の差(視差Δ)を検出することで、測距することができ、この方式を三角測量方式という。このような従来の測距装置116は、光学系の視野全体のうち、レンズ解像度の高い中心部にラインセンサ115aとラインセンサ115bを配置し、これによって、測距対象111の像を受光するため、視野の中心部において、焦点合わせが行われることになる。
次に、本発明に係る測距装置の実施形態について説明する。本発明に係る測距装置は、二次元センサを備えており、上記の三角測量方式を用いた測距処理を行う。本実施例に係る測距装置1が有する撮像素子15は、既に説明したように、2つの受光面16aおよび16bを有している。以下、本明細書において、受光面16aの全領域と、受光面16bの全領域をともに「撮像エリア40」として表記する。また、撮像エリア40を所定の大きさで分割して形成される各領域を「測距エリア50」として表記する。
図6において測距エリア50は、撮像エリア40を縦列5、横列5に分割して、25のエリアが形成されている。ただし、本発明に係る測距装置における測距エリアの形成において、この例に限ることはなく、任意の数で撮像エリア40を分割すればよい。なお、測距エリア50は物理的に形成されるものではなく、論理的な設定によって形成されるものである。
測距装置1は、測距エリア50毎に、上記にて説明した視差に基づく測距を行う。すなわち、各測距エリア50にて受光した測距対象の像に基づく画像信号によって、測距エリア50ごとの視差を検出し、測距エリアごとに距離デ−タを算出する。図6において、「a」で示す測距エリア50を、「A」で示す測距エリア50の視差によって、この位置(撮像エリア40の左上の位置)における距離デ−タを算出する。
具体的には、図7に示すように、「a」に対応する測距エリア50と「A」に対応する測距エリア50を水平方向に数画素ずらしながら、その画素差分を求めて、その差分が最も小さい位置を視差とする。この測距エリア50には例えば空の像が結像していて視差を判別できないときは、視差を「ゼロ」として、測距不能とする。
本発明に係る測距装置は、露光量を可変することができるので、簡易的に測光機能を備えている。多分割のセンサを用いて視野領域全体を複数に分割し、各領域の明るさを測定することができる。図8は撮像素子の受光面16a(16b)を分割した様子を示す図である。
図8のように分割された受光面16a(16b)に出力された信号が、F/E−IC181とF/E−IC182を介してCCD信号処理ブロック183−1へ入力され、SDRAM184に格納されたYUV信号から、これらの分割エリア内のY値(輝度)を用いて、Y値の加算と、対象画素数による乗算を行うことで、評価値を算出する。算出された評価値から得られる輝度分布によって適正露光量を算出し、測距対象の明るさを検知する。その結果に対して、TG181−4およびTG182−4を介して電子シャッタを変化させることで、測距対象が明るいときに応じた露光量や、測距対象が暗いときに応じた露光量など、露光量を変化させることができる。
次に、図2に戻り、I2Cブロック(183−4)に接続されている加速度センサ186について説明をする。加速度センサ186は、測距装置1に係る重力方向を検知するための水準器として機能し、測距装置1の向きを特定するために用いるものである。加速度センサは、3次元(X,Y,Z)の角度、温度デ−タを出力するセンサである。
ここで、加速度センサ186の出力から、測距装置1の傾き角度(θ)を算出する方法について説明する。ここではX軸、Y軸から求めるロ−ル角を例にする。ピッチ角に関しての軸が変わるだけで算出方法は同じである。加速度センサの出力デ−タについてX軸に係る重力による出力を「x」、Y軸に係る重力による出力を「y」、温度に係る出力を「t」、重力がゼロのときの出力を「g(t)」、X軸に係る重力とY軸に係る重力の比をR、検出角をθとすると、g(t)は式2によって、R(x,y,t)は式3によって、θは式4によって算出される。
(式2) g(t)=2048+0.4×t
(式3) R(x、y、t)=(y−g(t))/(x−g(t))
(式4) θ=180/π×arctan(R(x、y、t))−θ0
ここで、θが0°<θ<360°の範囲内であれば、θの候補は2つ存在するので、式3のx−g(t)の符号によって、いずれのθを採用するかを判断する。θが+90度近傍であれば、θ0ではなくθ90を用いて式4の演算を行う。このときの演算式は「θ=180/π×arctan(R(x、y、t))−θ90」となる。θが−90度近傍であれば、θ0ではなくθ270を用いて式4の演算を行う。このときの演算式は「θ=180/π×arctan(R(x、y、t))−θ270」となる。
ここで、θ0は、測距装置1が水平状態(0°)における撮像素子15と加速度センサ186の相対ロ−ル角となる。また、θ90は、測距装置1を縦にした状態(+90°)における撮像素子15と加速度センサ186の相対ロ−ル角となる。また、θ270は、測距装置1を縦にした状態(−90°)における撮像素子15と加速度センサ186の相対ロ−ル角となる。以上の式2乃至4を用いて測距装置1の傾き角度を算出することができる。
(実施例1)
次に、本発明に係る測距装置の実施形態について図を用いて説明する。本実施例に係る測距装置1の動作は、ROM185(図2参照)に格納された各制御プログラムによって実行されるものである。図9は、本実施例に係る撮像装置1にて実行される測距方法の例を示すフローチャートである。本発明に係る測距装置は、図9のフローチャートのように、先ず測光処理(9−1)を行い、その後に、測光処理の結果に応じた露光設定を用いて、測距処理(9−2)を行う。本発明に係る測距装置が実行する「測距方法」には、図9に示す測光処理(9−1)と測距処理(9−2)が含まれるものとする。
測光処理(9−1)について、図10のフローチャートを用いて説明する。まず、光学系を介して撮像素子15の受光面16aと受光面16bに結像した測距の対象物の像に応じて出力される画像信号を、CCD信号処理ブロック184−1にてYUV変換し、このYUV画像信号に基づいて、露光の評価値を算出する測光演算処理が行われる(10−1)。次に、算出された評価値に応じて測距対象のY値(輝度)を検知して、適正露光になる露光量(電子シャッタのシャッタ−スピ−ド)を設定する露光量設定処理が行われる(10−2)。次に、設定された露光量に基づいて撮像素子15のTGを設定するTG設定処理が行われる(10−3)。
図9に戻る。上記のように、露光量設定処理(10−2)において設定された露光量に基づいて撮像素子15の露光処理を行って画像信号を取得し、測距処理(9−2)を行う。測距処理(9−2)について、図11のフローチャートを用いて説明する。まず、2つの測距用センサである撮像素子15の露光のタイミングを取るためVD信号待ち処理を行う(11−1)。次に、露光した画像信号をCCD信号処理ブロック184−1にてYUV信号に変換した画像信号に基づいて、各測距エリア50における測距演算処理を行う(11−2)。測距演算処理(11−2)は、図7を用いて説明したとおり、2つの撮像エリア40内の同じ位置にある測距エリア50同士の視差によって、距離を算出する処理である。
ここで、測距エリア50の構成について説明をする。図6を用いて説明をしたとおり、測距エリア50は、撮像素子15の受光面上に設定された一定の大きさの画素の集合である。その例を図18に示す。図18は、測距装置1が備える撮像素子15の、2つの受光面エリア(16aと16b)における測距エリアの設定状態を模式的に示した図である。図18において、2つの撮像エリアには符号40を付している。撮像エリア40には、複数の測距エリア50が、縦5列と横5列の計25エリアが設定されている。
本明細書では、撮像エリア40を縦と横それぞれ5分割した測距エリア50を用いて説明を行うので、測距エリア50の縦列に対して符号A、B、C、D、Eを付し、横列には符号a、b、c、d、eを付しておく。以下の説明において、各測距エリア50を区別するときには、この符号を用いることとする。例えば、図面の左上の測距エリア50を示すときは、「測距エリア50Aa」と表記する。なお、図18おいて、隣接する測距エリア50には隙間が現されているが、実際の測距エリア50は、隣接する測距エリア50に隙間を設ける必要はない。
図11に戻る。測距演算処理(11−2)によって算出された各測距エリア50の距離デ−タを用いて、測距エリア50の縦ラインと、測距エリア50の横ラインごとに距離デ−タの分布を算出する距離分布生成処理を行う(11−3)。距離デ−タの分布は、測距対象の周囲環境によって大きく異なる。まず、測距対象が屋内にある場合について説明する。
図19は、測距対象が屋内環境にいる場合を想定した例である。図19(a)は、測距の対象60が、屋内かつ撮像エリア40の中央付近に存在している状態を表している。図19(b)は、図19(a)に測距エリア50を重ね合わせた状態を示している。
図19の状態における各測距エリア50の距離デ−タの例を図20に示す。図20において示されている各測距エリア50内の数字は、測距エリア50ごとに行われた距離演算処理(11−2)によって算出された距離デ−タの逆数を例示している。すなわち、図20において、数字が大きい測距エリア50ほど測距対象までの距離が近いことを表す。距離の逆数を用いることで、距離が算出できないとき(距離が「0」とされたとき)であっても、演算処理を行うことができる。
図20に例示した距離デ−タから、測距エリア50の縦列と横列ごとの距離デ−タの分布を生成する処理が距離分布生成処理(11−3)である。距離分布生成処理(11−3)の例として、測距エリア50の位置による距離デ−タの変位を示すグラフを生成する処理を用いる。図21は、距離分布生成処理(11−3)にて生成される距離デ−タの分布を示すグラフの例である。図21において、グラフの縦軸には距離デ−タの逆数を、横軸に測距エリア50の位置を用いている。
図21(a)は、AからEまでの縦列について距離データの分布を示したグラフであって、横軸には測距エリア50の横列の位置(aからe)を用いている。また、図21(b)は、aからeまでの横列についての距離データの分布を示したグラフであって、横軸には測距エリア50の縦列の位置(AからE)を用いている。以下、本明細書において、距離デ−タの分布の例を説明するグラフにおいて、図21と同じ縦軸と横軸を用いる。
図21に示すように、屋内環境において、かつ、測距の対象60が撮像エリア40の中央付近にのみあるときは、測距エリア50の左右方向中央の縦列であるC列において、測距デ−タの変化が大きい。測距エリア50の上下方向中央の横列であるc列において、距離デ−タの変化が大きい。
図11に戻る。次に、距離分布生成処理(11−3)よって生成された距離デ−タの分布に基づいて、対象60が測距エリア50内で存在する位置を選択する対象位置選択処理を行う(11−4)。この対象位置選択処理(11−4)の詳細な処理の流れについて図12のフローチャートを用いて説明する。先ず距離分布生成処理(11−3)で生成され測距エリア50毎の距離デ−タ分布に基づき、各列における距離デ−タの傾きを算出する。この傾きによって被写体が存在する測距エリア50を選択するエリア選択処理(12−1)を行う。エリア選択処理の詳細について、図13のフローチャートを用いて説明する。
まず、傾き検出処理(13−1)を行う。傾き検出処理(13−1)は、測距エリア50の縦列と横列毎に距離デ−タの傾きを算出する処理である。「距離デ−タの傾き」とは、隣接する測距エリア50の距離デ−タの差分の絶対値をいう。図20に示した距離デ−タを例に用いて説明する。例えば、測距エリア50Abの傾きは、測距エリアAb(0.26)と測距エリアAa(0.26)の差分であるから「傾きはゼロ」となる。同様に、測距エリア50Ccの傾きは、測距エリアCc(0.76)と測距エリアCb(0.25)の差分であるから「傾きは0.51」となる。
このように、傾きは、一つ隣の測距エリア50の距離デ−タの差分である。本実施例においては、縦A列の傾きと横a列の傾きの算出は、縦A列から縦B列の距離デ−タを減じ、その結果が負数となれば傾きをゼロとし、正数であれば絶対値を傾きとしている。また、横a列から横b列の距離デ−タを減じ、その結果が負数となれば傾きをゼロとし、正数であれば絶対値を傾きとしている。
図20に示した距離デ−タの傾きをグラフ化すると、図22に示す例のようになる。図22のグラフは、縦軸に傾きの大きさを示し、横軸に測距エリア50毎の位置を示している。図22(a)は、AからEまでの縦列について距離データの傾きを示したグラフであって、横軸には測距エリア50の横列(aからe)を用いている。図22(b)は、aからeの横列について距離データの傾きを示したグラフであって、横軸には測距エリア50の縦列(AからE)を用いている。
次に算出された傾きから、対象60が存在する測距エリア50の位置を検索するエリア検索処理を行う(13−2)。まず測距エリア50の縦列における傾き(横列方向の傾き)において、急激な変化を示す最初のポイントを抽出する。例えば、図22(a)に示すように、縦C列が横c列の位置において急激な変化を示している。また、縦A列、B列、D列、E列においては、横e列において急激な変化を示している。よって、抽出すべきポイントは、横c列と横e列となる。
また、図22(b)に示すように、横c列、横d列が縦C列において、急激な変化を示している。よって、抽出すべきポイントは、縦C列となる。
このように、隣接する測距エリア50の距離デ−タの差である傾きが急激に変化する箇所を、縦列と横列において抽出し、縦列と横列において共通して変化しているポイントを特定する。図22の例によれば、縦列と横列において共通して傾きが大きい測距エリア50は、図23(a)に示すように、測距エリア50Ccとなる。この測距エリア50Ccが、対象物60が存在するエリアの候補となる。
次に、エリア検索処理(13−2)において、上記のように候補エリアが特定された場合は(13−3のYES)、エリア判定処理(13−4)が行なわれる。エリア判定処理(13−4)について、図14のフローチャートを用いて説明する。まず、候補エリア(図20における測距エリア50Cc)の周辺検索処理を行う(14−1)。周辺検査処理(14−1)とは、対象60が1つの測距エリア50の範囲内に収まらず、複数の測距エリア50にまたがっていることがあるため候補エリアの距離デ−タと同じ値を有する周辺の測距エリア50を抽出する処理である。
図23(a)にて特定された候補エリア(測距エリア50Cc)の距離デ−タは「0.76」であるので、周辺検査処理(14−1)は、測距エリア50Ccの周囲に存在する測距エリア50において、距離デ−タが「0.76」である測距エリア50を抽出する。図23(b)にて示すように、測距エリア50Cdと測距エリア50Ceの距離デ−タがともに「0.76」であるので、これらが周辺エリアに該当する。
なお、周辺検査処理(14−1)では、候補エリアの距離デ−タと同値の隣接する測距エリア50を周辺エリアとするだけでなく、候補エリアの距離デ−タと所定の範囲内にあたる近似値をもって周辺エリアとしてもよい。この場合、近似値とする数値範囲は予め設定して、ROM(185)に記憶しておけばよい。
図14に戻る。周辺検査処理(14−1)によって周辺エリアが抽出されたとき(14−2のYES)、抽出された(特定された)周辺エリア(測距エリア50Cdと50Ce)も対象60が存在する測距エリア50としてエリア合成処理(14−3)が行われる。エリア合成処理(14−3)は、候補エリアである測距エリア50Ccと、周辺エリアである測距エリア50Cdと測距エリア50Ceを、対象60が存在するエリアとして、図示しない記憶手段に記憶する。周辺検索処理(14−1)において、周辺エリアが特定されないとき(14−2のNO)、候補エリアのみ(測距エリア50Cc)を対象60が存在するエリアとして図示しない記憶手段に記憶する。
図13に戻る。エリア判定処理(13−4)の後に、被写体エリア決定処理が行われる(13−5)。被写体エリア決定処理(13−5)は、エリア判定処理(13−4)の結果を用いて、被写体エリアを設定する処理である。具体的には、候補エリアと判定された測距エリア50Ccと、周辺エリアと特定された測距エリア50Cdと測距エリア50Ceを合成したエリアを、被写体エリア70として決定する(13−5)。被写体エリアとは、測距処理の後に行われる撮像処理において、AF処理を行うときに用いるエリアである。被写体エリア70の例を図24(b)に示す。
エリア検索処理(13−2)において、候補エリアがなかった場合(13−3のNO)、被写体が平面被写体であるか否かを判定する平面被写体判定処理(13−6)を行う。平面被写体判定処理(13−6)は、傾きの傾向を用いて平面被写体であるか否か判定する処理である。平面被写体判定処理(13−6)について、図25乃至28を用いて説明する。例えば、図25(a)に示すような画像が撮像エリア40に取り込まれているときは、人物や物がなく壁と天井、床のみが存在する状態であるから、各測距エリア50の距離デ−タは図25(c)のようになる。つまり、各測距エリア50の距離デ−タは、ほぼ一定になる。
図25(c)の距離デ−タの分布を図26に示す。平面被写体の場合、測距エリア50の縦列の分布(図26(a))は、どの列においても同じ傾向を示し、床面を含む横eに該当する測距エリア50Aeから50Eeの値は大きいが、それ以外の測距エリア50はほぼ同じ距離デ−タとなっている。また、横列の距離デ−タの分布(図26(b))は、床面を含むe列以外は、殆ど同じ値になっている。
傾き検出処理(図13の13−1)によって、距離デ−タの傾きを算出すると、図27に示すように、縦列の傾き(図27(a))は、横eの傾きのみが大きく、他の傾きはほぼゼロとなる。また、横列の傾き(図27(b)は、ほぼ一定かつ値が小さく、ゼロに近いものとなる。
このように、傾きが、縦列、または横列の一定の箇所においてのみ検出され、それ以外ではゼロに近いとき、平面被写体であると判定することができる。
平面被写体判定処理(13−6)において、平面被写体であると判定された場合は(13−7のYES)、撮像エリア40の中央にある測距エリア50Ccとその周囲の測距エリア50を平面エリアとして決定する(13−8)。図28は、平面エリアの例を示す。図28において、被写体エリア71が平面エリアである。
平面被写体判定処理(13−6)において、平面被写体であると判定されなかった場合は(13−7のNO)、被写体が存在するエリアを判定することができないとして、「判定不能」の決定をする(13−9)。以上のように、エリア選択処理(12−2)において、測距対象が存在する測距エリア50を選択することができる。
図12に戻る。エリア選択処理(12−1)において、被写体エリア70または71が決定している場合は(12−4のYES)、その被写体エリア70または71に対応する測距エリア50の測距デ−タから距離設定処理を行う(12−5)。距離設定処理(12−5)において、合成エリアや、平面エリアであった場合は、その複数あるエリアの測距結果の平均値を対象距離として設定する。エリア判定処理(12−2)において、エリアが決定しなかった場合は、距離設定不能処理(12−6)を行う。距離設定不能処理(12−6)においては、無限遠を対象の位置として設定する。測距装置1がデジタルカメラなどの撮像装置に適用されるときは、無限遠に設定するのではなく、当該撮像装置の過焦点距離に設定してもよい。
距離設定処理(12−5)、距離設定不能処理(12−6)のいずれかの後に、図9に示す測距処理(9−2)は終了する。以上の処理は、測距装置1が動作している間は繰り返し実行される。これによって、常に、被写体の環境に合わせた測距処理を行うことができる。
(実施例2)
次に、本発明に係る測距装置の別の実施例について説明する。本実施例は、撮像エリア40内に測距の対象が複数存在したときに実行される処理の例である。本実施例に係る測距装置1における各種の動作は、実施例1と同様に、ROM185(図2参照)に格納された各制御プログラムによって実行されるものである。
図9は、本実施例に係る撮像装置1にて実行される測距方法の流れの例を示すフローチャートである。本発明に係る測距装置は、図9のフローチャートに示すように、先ず測光処理(9−1)を行い、その後に、測光処理の結果に応じた露光設定を用いて、測距処理(9−2)を行う。本発明に係る測距装置が実行する「測距方法」には、図9に示す測光処理(9−1)と測距処理(9−2)が含まれるものとする。
測光処理(9−1)について、図10のフローチャートを用いて説明する。まず、光学系を介して撮像素子15の受光面16aと受光面16bに結像した測距の対象物の像に応じて出力される画像信号を、CCD信号処理ブロック184−1にてYUV変換し、このYUV画像信号に基づいて、露光の評価値を算出する測光演算処理が行われる(10−1)。次に、算出された評価値に応じて測距対象のY値(輝度)を検知して、適正露光になる露光量(電子シャッタのシャッタ−スピ−ド)を設定する露光量設定処理が行われる(181)。次に、設定された露光量に基づいて撮像素子15のTGを設定するTG設定処理が行われる(182)。
図9に戻る。上記のように、露光量設定処理(181)において設定された露光量に基づいて撮像素子15の露光処理を行って画像信号を取得し、測距処理(9−2)を行う。測距処理(9−2)について、図11のフローチャートを用いて説明する。まず、2つの測距用センサである撮像素子15の露光のタイミングを取るためVD信号待ち処理を行う(11−1)。次に、その露光した画像信号がCCD信号処理ブロック184−1にてYUV変換された画像信号に基づいて、各測距エリア50に対して測距演算処理を行う(11−2)。この測距演算処理(11−2)によって、測距エリア50ごとの距離デ−タが算出される。
測距演算処理(11−2)によって算出された各測距エリア50の距離デ−タを用いて、測距エリア50の縦ラインと、測距エリア50の横ラインごとに距離デ−タの分布を算出する距離分布生成処理を行う(11−3)。本実施例では、測距対象が屋内にあり、かつ、複数の場合について説明する。
図29は、測距対象が屋内環境にあり、かつ、複数の対象60aと60bが存在する場合を想定した例である。図29(a)において、測距の対象となる対象60aと60bは、撮像エリア40の中央を挟んで左右に存在している。図29(b)は、図29(a)に測距エリア50を重ね合わせた状態を示している。
図29に示した状態における各測距エリアの距離デ−タの例が図30である。この距離デ−タから、測距エリア50の縦列と横列を区別して距離データの分布を生成する処理が距離分布生成処理(11−3)である。距離分布生成処理(11−3)の例として、測距エリア50の位置によって変位する距離デ−タをグラフ化する処理を用いる。図31は、距離分布生成処理(11−3)において生成される距離デ−タの分布を示すグラフの例である。図31において、グラフの縦軸には距離デ−タの逆数を、横軸に測距エリア50の位置を用いている。
図31(a)は、縦列(A列からE列まで)の分布を示したグラフであって、横軸には測距エリア50の横列の位置(a列からe列まで)を用いている。また、図31(b)は、横列(a列からe列まで)の分布を示したグラフであって、横軸には測距エリア50の縦列の位置(A列からE列まで)を用いている。図31に示すように、図29に示した屋内環境であって、かつ、2つの測距の対象が(対象60aと60b)撮像エリア40内に分散して存在している環境では、測距エリア50の縦B列と縦D列において、測距デ−タの変化が大きく、また、横c列からe列の距離デ−タの変化が大きい。
図11に戻る。次に、距離分布生成処理(11−3)よって生成された距離デ−タの分布に基づいて、測距の対象60aと60bの測距エリア50内での位置を選択する対象位置選択処理を行う(11−4)。この対象位置選択処理(11−4)の詳細な処理の流れについて図12のフローチャートを用いて説明する。先ず距離分布生成処理(11−3)で生成され測距エリア50毎の距離デ−タ分布に基づく傾きを算出する。この傾きによって被写体が存在する測距エリア50を選択するエリア選択処理(12−1)が行われる。エリア選択処理の詳細について、図13のフローチャートを用いて説明する。
まず、距離デ−タの傾きを算出する処理(13−1)を行う。傾き検出処理(13−1)によって算出された傾きをグラフ化すると、図32に示す例のようになる。次に算出された傾きから、対象60がaと60bが存在する測距エリア50の位置を検索するエリア検索処理を行う(13−2)。まず測距エリア50の縦列における傾き(横列方向の傾き)において、急激な変化を示す最初のポイントを抽出する。例えば、図32(a)の場合は、縦B列が横d列の位置において急激な変化を示し、縦D列が横c列の位置において急激な変化を示している。よって、抽出すべきポイントは、縦B列と縦D列となる。
また、図32(b)に示すように、横b列が縦B列の位置において急激な変化を示し、横c列が縦D列の位置において急激な変化を示している。よって、抽出すべきポイントは、横b列と横c列となる。
図13に戻る。エリア検索処理(13−2)において候補エリアが特定できたとき(13−3のYES)、エリア判定処理(13−4)が行なわれる。エリア判定処理(13−4)について、図15のフローチャートを用いて説明する。図15において、エリア判定処理(13−4)は、まず、候補エリア(図30における測距エリア50Cc)の周辺検索処理を行う(15−1)。
図33(a)にて特定された候補エリアの一つである測距エリア50Bdの距離デ−タは「0.78」であり、測距エリア50Dcの距離デ−タは「0.5」である。そこで、周辺検索処理(15−1)では、測距エリア50Bdの周囲に存在する測距エリア50において、距離デ−タが「0.78」である測距エリア50を抽出する。また、測距エリア50Dcの周囲に存在する測距エリア50において、距離デ−タが「0.5」である測距エリア50を抽出する。
図33(b)にて示すように、測距エリア50Bdの周辺エリアとして、測距エリア50Beが該当する。また、測距エリア50Dcの周辺エリアとして、測距エリア50DdとDeが該当する。なお、周辺検索処理(15−1)において周辺エリアを特定する際に、候補エリアの距離デ−タと同値のみを、周辺エリアとするのではなく、候補エリアの距離デ−タの近似値を特定してもよい。近似値とする数値範囲は予め設定すればよい。
なお、周辺検索処理(15−1)では、候補エリアの距離デ−タと同値の隣接する測距エリア50を周辺エリアとするだけでなく、候補エリアの距離デ−タと所定の範囲内にあたる近似値をもって周辺エリアとしてもよい。この場合、近似値とする数値範囲は予め設定して、ROM(185)に記憶しておけばよい。
図15に戻る。周辺検索処理(15−1)によって周辺エリアが特定されたとき(15−2のYES)、特定された周辺エリアも被写体が存在する測距エリア50とするためのエリア合成処理(15−3)を行う。エリア合成処理によって、測距エリア50Bdの周辺エリアである測距エリア50Beを対象60aが存在するエリアとして図示しない記憶手段に記憶する。また、測距エリア50Dcの周辺エリアとして、測距エリア50Ddと測距エリア50Deを対象60aが存在するエリアとして図示しない記憶手段に記憶する。
周辺検索処理(15−1)において、周辺エリアが特定されれば(15−2のYES)、特定された周辺エリアも、被写体が存在する測距エリア50とするためのエリア合成処理(15−3)を行い、被写体エリアを決定する(15−4)。周辺検索処理(15−1)において、周辺エリアが特定されないとき(15−2のNO)、被写体は候補エリア内のみにあると判定し、被写体エリアを決定する(15−4)。
候補エリアとして判定された測距エリア50Bdとその周辺エリアである測距エリアBeを合成して測距エリア50と、候補エリア40Dcとその周辺エリアである測距エリア50DdおよびDeと測距エリア50Ceを合成した測距エリア50とを、被写体エリア70аおよび70bとして決定する(15−4)。被写体エリア72の例を図34(b)に示す。
次に、上記エリア検索処理において複数の候補エリアがあった場合(15−5のYES)、優先モ−ド判定処理(15−6)に入る。これは、外部I/Fによって(183−4)から受けた信号をもとに、「近距離優先」か、「遠距離優先」かを判定する処理である。デフォルトでは「近距離優先」とする。優先モ−ドが近距離優先モ−ドであった場合(15−7のYES)、複数の候補エリアのうち、より近いエリアであるエリアを選択(15−8)し、そうでない場合(15−7のNO)は、より遠いエリアであるエリアを選択(15−10)し、被写体エリアを決定する(15−9)。図35(a)は、「近距離優先」の際に選択される被写体72aを示している。図35(b)は「遠距離優先」の際に選択された被写体エリア72bを示している。
また複数候補エリアが無い場合は(15−5のNO)、優先モ−ドを選択する必要がないため、そのまま遠距離優先時の被写体エリア72bを被写体エリアとして決定する(15−9)。
図13に戻る。エリア判定処理(13−4)において決定されたエリアを被写体エリアとして決定する(13−5)。また、エリア検索処理(13−2)で候補エリアがなかった場合(13−3のNO)、被写体が平面被写体かどうかを判定する平面被写体判定処理(13−6)を行う。平面被写体判定処理は、実施例1と同様であるので説明は省略する。
図12に戻る。エリア選択処理(12−2)において、被写体エリアが決定されている場合は、その被写体エリアからの測距結果を設定し(12−5)、そうでない場合は測距不能と判定し、NG距離位置を設定する(12−6)。被写体距離設定処理(12−5)において、合成エリアや、平面エリアであった場合は、その複数あるエリアの測距結果の平均値を被写体距離として設定し、NG距離位置に関しては、無限遠位置を設定する。この測距装置自体がデジタルカメラに装着されるようならば、デジタルカメラの過焦点距離に設定するように変更しても良い。
被写体距離設定処理(12−5)または、被写体距離設定不能処理(12−6)のいずれかの後に、図9に示す測距処理(9−2)は終了する。以上の処理は、測距装置1が動作している間は繰り返し実行される。これによって、常に、被写体の環境に合わせた測距処理を行うことができる。実施例2においては、複数エリアがあった場合に、外部から「近距離優先モ−ド」、「遠距離優先」モ−ドを選択することによって、測距エリアを選択することで、ユ−ザの意図した測距結果を出力することが可能となる。
(実施例3)
次に、本発明に係る測距装置のさらに別の実施例について説明する。本実施例は、撮像エリア40内に複数の被写体があったときに実行される処理の別の例である。本実施例に係る測距装置1における各種の動作は、実施例1に係る測距装置1と同様に、ROM185(図2参照)に格納された各制御プログラムによって実行されるものである。
図9は、本実施例に係る撮像装置1にて実行される測距方法の流れの例を示すフローチャートである。本発明に係る測距装置は、図9のフローチャートのように、先ず測光処理(9−1)を行い、その後に、測光処理の結果に応じた露光設定を用いて、測距処理(9−2)を行う。本発明に係る測距装置が実行する「測距方法」には、図9に示す測光処理(9−1)と測距処理(9−2)が含まれるものとする。
測光処理(9−1)について、図10のフローチャートを用いて説明する。まず、光学系を介して撮像素子15の受光面16aと受光面16bに結像した測距の対象物の像に応じて出力される画像信号を、CCD信号処理ブロック184−1にてYUV変換し、このYUV画像信号に基づいて、露光の評価値を算出する測光演算処理が行われる(10−1)。次に、算出された評価値に応じて測距対象のY値(輝度)を検知して、適正露光になる露光量(電子シャッタのシャッタ−スピ−ド)を設定する露光量設定処理が行われる(181)。次に、設定された露光量に基づいて撮像素子15のTGを設定するTG設定処理が行われる(182)。
図9に戻る。上記のように、露光量設定処理(181)において設定された露光量に基づいて撮像素子15の露光処理を行って画像信号を取得し、測距処理(9−2)を行う。測距処理(9−2)について、図11のフローチャートを用いて説明する。まず、2つの測距用センサである撮像素子15の露光のタイミングを取るためVD信号待ち処理を行う(11−1)。次に、その露光した画像信号がCCD信号処理ブロック184−1にてYUV変換された画像信号に基づいて、各測距エリア50に対して測距演算処理を行う(11−2)。この測距演算処理(11−2)によって、測距エリア50ごとの距離デ−タが算出される。
測距演算処理(11−2)によって算出された各測距エリア50の距離デ−タを用いて、測距エリア50の縦ラインと、測距エリア50の横ラインごとに距離デ−タの分布を算出する距離分布生成処理を行う(11−3)。
図36は、測距対象が屋内環境にあり、かつ、複数の対象60cと60dが存在し、さらに、対象の一つが撮像エリア40からはみ出している(見切れている)場合を想定した例である。図36(a)において、測距対象の候補の一つである対象60cは撮像エリア40の端に存在し、対象60dは撮像エリア60bの中央やや右よりに存在している。図36(b)は、図36(a)に測距エリア50を重ね合わせた状態を図示している。
図36(a)に示した状態における各測距エリアの距離デ−タの例が図36(b)である。この距離デ−タから、測距エリア50の縦列と横列を区別して距離データの分布を生成する処理が距離分布生成処理(11−3)である。距離分布生成処理(11−3)の例として、測距エリア50の位置による距離デ−タの変位を示すグラフを生成する処理を用いる。図37は、距離分布生成処理(11−3)において生成される距離デ−タの分布を示すグラフの例である。
図37(a)は、縦列(A列からE列まで)の分布を示したグラフであって、横軸には測距エリア50の横列の位置(a列からe列まで)を用いている。横軸の左方向は撮像エリア40の上側を配置し、右方向には下側を配置されている。また、図37(b)は、横列(a列からe列まで)の分布を示したグラフであって、横軸には測距エリア50の縦列の位置(A列からE列まで)を用いている。横軸の左方向は撮像エリア40の左側を配置し、右方向には右側を配置している。図37に示すように、図36に示した屋内環境であって、かつ、2つの測距の対象(対象60cと60d)が撮像エリア40内に分散して存在している環境では、測距エリア50の縦B列と縦D列において、測距デ−タの変化が大きく、また、横c列からe列の距離デ−タの変化が大きい。
図11に戻る。次に、距離分布生成処理(11−3)よって生成された距離デ−タの分布に基づいて、測距の対象60aと60bの測距エリア50内での位置を選択する対象位置選択処理を行う(11−4)。この対象位置選択処理(11−4)の詳細な処理の流れについて図12のフローチャートを用いて説明する。先ず距離分布生成処理(11−3)で生成され測距エリア50毎の距離デ−タ分布に基づく傾きを算出する。この傾きによって被写体が存在する測距エリア50を選択するエリア選択処理(12−1)を行う。エリア選択処理の詳細について、図13のフローチャートを用いて説明する。
まず、測距演算処理(11−2)において算出された距離デ−タを用いて傾きを算出する傾き検出処理(13−1)を行う。傾き検出処理(13−1)によって算出された傾きをグラフ化すると、図38に示す例のようになる。次に算出された傾きから、対象60cと60dが存在する測距エリア50の位置を検索するエリア検索処理を行う(13−2)。まず測距エリア50の縦列における傾き(横列方向の傾き)において、急激な変化を示す最初のポイントを抽出する。例えば、図38(a)の場合は、縦A列が横d列の位置において急激な変化を示し、縦D列が横c列の位置において急激な変化を示している。よって、抽出すべきポイントは、縦B列と縦D列となる。
また、図38(b)に示すように、横c列が縦D列において急激な変化を示し、横d列が縦A列とD列において急激な変化を示し、横e列が縦A列と縦D列において急激な変化を示している。よって、抽出すべきポイントは、横c、d、e列となる。
図13に戻る。エリア検索処理(13−2)において、候補エリアが上記のように特定できた場合(13−3のYES)、エリア判定処理(13−4)が行なわれる。エリア判定処理に関しては、図16のフローチャートを用いて説明する。
先ず、屋内・屋外判定処理(16−1)を行う。屋内・屋外判定処理(16−1)は、測距の対象が屋内にあるか屋外にあるかを判定する処理である。屋内・屋外判定処理(16−1)の詳細について図17のフローチャートを用いて説明する。まず、重力確認処理(17−1)によって、測距装置1に係る重力方向を判定するために、加速度センサ(186)の出力によるロ−ル角とピッチ角を取得する。
次に、測距装置1の向きを判定する処理を行う。まず、測距装置1が上向きであるか否かの判定処理を行う(17−2)。「測距装置1が上向きである」とは、測距装置1が有する光学系が地面とは反対方向に向いている状態をいう。言い換えると、測距装置1は、通常の使用態様において、Y−Z面(図1参照)側に地面があるので、上に向いているときは、X−Y面側が地面となっている状態である。測距装置1が上向きではないとき(17−2のYES)、次に、測距装置1が下向きであるか否かの判定処理を行う。「測距装置1が下向きである」とは、測距装置1が有する光学系が地面に向いている状態をいう。測距装置1が下向きではないとき、測距装置1が横向きであるか否かの判定処理を行う(17−4)。
加速度センサ(186)から取得した測距装置1のロ−ル角によって、測距装置1が横位置であると判定されたときは(17−4のYES)、測距エリア50の縦列方向が重力方向であると判定し(17−5)、縦列AからEの距離デ−タ分布を用いて屋内・屋外判定処理を行う。加速度センサ(186)から取得した測距装置1のロ−ル角によって、測距装置1が縦位置であると判定されたときは(17−4のNO)、測距エリア50の横列方向が重力方向であると判定し(17−8)、横列aからeの距離デ−タ分布を用いて屋内・屋外判定処理(17−6)を行う。
「測距装置1が横位置である」とは、受光面16aと16bがX−Y面にある状態をいう。「測距装置1が縦位置である」とは、受光面16aと16bがX−Z面にある状態をいう。屋内・屋外判定処理(17−6)について、図42と図43を用いて説明する。図42(a)は、測距の対象61が屋外に存在する状態を示す図である。図42(b)は、図42(a)における測距エリア50の縦列ごとの距離分布を示す図である。撮像エリア40に縦3列の測距エリア50が設定されている状態を例としている。また、撮像エリア40の左側から右側に向けてA列、B列、C列として設定されている。図42(b)の横軸は、図42においては図示しない測距エリア50の横列を目盛りとしている。図42の例においては、横列は13列に区分されている。また、図42(b)に示すように、横軸の原点側が撮像エリア40の上側となっている。
図42(b)から明らかなように、対象60が屋外にあるとき、撮像エリア40の上側に位置する測距エリア50の距離デ−タはゼロになる傾向がある。これは、屋外においては、撮像エリア40の上側は空であることが多く、距離が検知できないために、無限遠になるからである。
図43(a)は、測距の対象60が屋内に存在する状態を示す図である。図43(b)は、図43(a)における測距エリア50の縦列ごとの距離分布を示す図である。撮像エリア40に縦3列の測距エリア50が設定されている状態を例としている。また、撮像エリア40の左側から右側に向けてA列、B列、C列として設定されている。図43(b)の横軸は、図43においては図示しない測距エリア50の横列を目盛りとしている。図43に示す例においては、横列は13列に区分されている。また、図43(b)に示すように、横軸の原点側が撮像エリア40の上側となっている。
図43(b)から明らかなように、対象62が屋内にあるとき、撮像エリア40に上側に位置する測距エリア50の距離デ−タはゼロではなく、所定の大きさになる傾向がある。屋内は、撮像エリア40の上側に天井や壁などが存在し、所定の距離が測定される状態になるので、撮像エリア40の上側に位置する測距エリア50の距離デ−タがゼロにはならない。
このように、屋内・屋外判定処理(17−6)は、加速度センサ(186)の出力よって判定される重力方向と反対側に位置している測距エリア50の距離デ−タがゼロであるか否かによって、測距装置1が屋内にあるか、屋外にあるかを判定する。測距装置1が屋内にあると判定されたとき(17−6のYES)、屋内判定処理(17−7)が行われる。測距装置1が屋外にあると判定されたときは、屋外判定処理(17−9)が行われる。
また、測距装置1が上向きであったとき(17−2のNO)、測距装置1が下向きであったとき(17−3のNO)は、重力方向の判断ができないため、測距エリア50から出力される距離が無限遠であるか否かを判定し(17−10)、無限遠でなければ(17−10のYES)、屋内であると判定し(17−7)、屋内判定処理(17−7)に移行する。無限遠であれば(17−10のNO)、屋外であると判定する(17−9)。
図16に戻る。屋内・屋外判定処理(16−1)において、屋内であると判定されたとき(16−2のYES)、エリア制限処理(16−3)を行う。エリア制限処理(16−3)とは、候補エリアの検索範囲を制限する処理である。特に屋内環境の場合、図36の例示のように複数の測距対象が存在すると、それら測距対象が近側に存在したり、遠側に存在したり、遠近混在状態となることがある。このような、「遠近混在状態」において、実施例1にて示したように、距離デ−タの傾きを元に候補エリアを検索すると、例えば、図36(a)の測距対象60cのように、「見切れている対象」が存在する測距エリア50を候補エリアとすることになる。
このように、屋内の場合は、撮像エリア40内に遠近が混在する測距対象が存在するので、単純に近側優先または遠側優先とすると、本来の測距対象としたい存在(図36(a)における60d)を、測距対象とすることができず、被写体エリアの設定を誤ることになる。図39(b)に制限エリアの例を示す。図39(b)において、制限エリア500は、撮像エリア40の中央付近の測距エリア50を候補エリアの対象として制限している。
図40(a)に示すように、制限エリア500内の候補エリアは測距エリア50Dcのみとなる。このように、制限エリア500を設定した中で測距デ−タの傾きによって候補エリアを決定すれば、見切れているような対象物に対する候補エリア判定を回避することができ、利用者が意図する場所を測距することができる。
次に候補エリアの周辺検索処理を行う(16−4)。周辺検索処理(16−4)は、対象60dが1つの測距エリア50の範囲内に収まらず、複数の測距エリア50にまたがっていることがあるため候補エリアの距離デ−タと同じ値を有する周辺の測距エリア50を抽出する処理である。図36(a)の例において周辺検索処理(16−4)を行うと、図36(a)の測距エリア50Ddが周辺エリアとなる。なお、周辺検査処理(16−4)では、候補エリアの距離デ−タと同値の隣接する測距エリア50を周辺エリアとするだけでなく、候補エリアの距離デ−タと所定の範囲内にあたる近似値をもって周辺エリアとしてもよい。この場合、近似値とする数値範囲は予め設定して、ROM(185)に記憶しておけばよい。
周辺検索処理(16−2)によって周辺エリアが抽出されたとき(16−5のYES)、抽出された特定された周辺エリア(測距エリア50Dcと50Dd)も対象60dが存在する測距エリア50としてエリア合成処理(16−6)が行われる。エリア合成処理(16−6)は、候補エリアである測距エリア50Dcと、周辺エリアである測距エリア50Ddを、対象60dが存在するエリアとして、図示しない記憶手段に記憶する。周辺検索処理(16−4)において、周辺エリアが特定されないとき(16−5のNO)、候補エリアのみ(測距エリア50Dc)を対象60dが存在するエリアとして図示しない記憶手段に記憶する。
図13に戻る。エリア判定処理(13−4)の後に、被写体エリア決定処理が行われる(13−5)。被写体エリア決定処理(13−5)は、エリア判定処理(13−4)の結果を用いて、被写体エリアを設定する処理である。具体的には、候補エリアと判定された測距エリア50Dcと、周辺エリアと特定された測距エリア50Ddを、被写体エリア70として決定する(13−5)。被写体エリアとは、測距処理の後に行われる撮像処理において、AF処理を行うときに用いるエリアである。被写体エリア73の例を図41(b)に示す。
エリア検索処理(13−2)において、候補エリアがなかった場合(13−3のNO)、被写体が平面被写体であるか否かを判定する平面被写体判定処理(13−6)を行う。平面被写体判定処理(13−6)は、実施例1にて説明した処理と同じであるから、説明は省略する。
図25(a)は平面被写体(特に物や人物がいない環境)での屋内環境である。そのときの距離分布、傾きは図25から図27となる。傾きをみると、縦ラインで傾向がほぼ同じ状態にあることがわかる。こういった場合は平面被写体である可能性が高く、上記平面被写体判定処理(13−6)では、これを平面被写体であると判定する。平面被写体判定処理(13−6)で平面被写体であると判定した場合(13−7のYES)、図28のような平面エリアに決定し、そうでない場合(13−7のNO)、エリアとして判定不能であると決定する(13−9)。
図12に戻る。エリア選択処理(12−1)において、被写体エリア70または71が決定している場合は(12−4のYES)、その被写体エリア70または71に対応する測距エリア40の測距デ−タから距離設定処理を行う(12−5)。距離設定処理(12−5)において、合成エリアや、平面エリアであった場合は、その複数あるエリアの測距結果の平均値を対象距離として設定する。エリア判定処理(12−2)において、エリアが決定しなかった場合は、距離設定不能処理(12−6)を行う。距離設定不能処理(12−6)においては、無限遠を対象の位置として設定する。なお、測距装置1がデジタルカメラなどの撮像装置に適用されるときは、無限遠に設定するのではなく、当該撮像装置の過焦点距離に設定してもよい。
距離設定処理(12−5)において、合成エリアや、平面エリアであった場合は、その複数あるエリアの測距結果の平均値を被写体距離と設定し、NG距離位置に関しては、例えば2.5m位置へ設定する。なお、この測距装置自体がデジタルカメラに装着されるようならば、デジタルカメラの過焦点距離に設定しても良い。最後に図11、図9のフロ−に戻り、終了する。この動作を測距が起動している間中行うことで、常時被写体の環境、距離を出力することが可能となる。
本実施例のように測距装置によって屋内・屋外判定をすることで測距エリアを限定させることで、見切れるような被写体を候補エリアから外すことができ、ユ−ザが意図した測距結果を出力することが可能となる。
次に、本発明に係る測距装置を備える撮像装置の実施形態について、図を用いて説明する。図44は、本発明に係る測距装置を備えた撮像装置の例であるデジタルカメラを示す正面図である。図44に示すように、本実施形態に係るデジタルカメラ100の正面(前面)側には、光学高倍ズ−ム機能を有する撮影レンズ2、測距装置1の前面側のレンズアレイ11等が配置されている。レンズアレイ11の表面には、所定の間隔で左右方向に設けた一対(2つ)の測距用レンズ12a,12bが一体に形成されている。撮像レンズ2と各測距用レンズ12a,12bの各光軸は平行である。
図45は、図44に示したデジタルカメラのシステム構成の概要を示す。デジタルカメラ100は、複数のレンズ群を有する撮影レンズ102、シャッタ機能を有する絞りユニット110、撮影レンズ102を通して入射される被写体像が受光面上に結像する固体撮像素子としてのCCDイメ−ジセンサ111、CCDイメ−ジセンサ111から出力される画素出力信号(電気信号)をデジタル処理して取り込み、表示や記録が可能な画像デ−タに変換処理する信号処理部112、操作部(レリ−ズボタン6、撮影モ−ド切換ボタン7(図1参照)等)113からの操作入力情報に基づき、図示しないROMに記憶された制御プログラムに基づいてデジタルカメラ100全体のシステム制御等を行う。
制御部114、信号処理部112で生成された画像デ−タを表示する液晶モニタ(LCD)115、撮影レンズ102のフォ−カスレンズ群を駆動するフォ−カスレンズ駆動部116、撮影レンズ102のズ−ムレンズ群を駆動するズ−ムレンズ駆動部117、絞りユニット110を駆動する絞りユニット駆動部118、及び被写体までの距離を測距する本発明に係る測距装置を備えている。信号処理部112で生成された画像デ−タは、着脱自在なメモリカ−ド119に記録される。
次に、デジタルカメラ100を用いて被写体を撮影する際における、測距装置1による測距動作について説明する。利用者が図示しない電源を投入し撮影モ−ドに設定すると、制御部114から測距装置1に測距開始指令信号が出力される。そして、一対の各測距用レンズ12a,12bに入射する被写体光が受光面16a、16bにそれぞれ結像される。その後、上記実施例1乃至3にて説明をした測距処理によって、測距対象までの距離が算出され、算出された距離デ−タは、外部I/Fブロック(184−4)を介して制御部114に出力される。
そして、制御部114は、入力された距離情報に基づいてフォ−カスレンズ駆動部116を駆動制御して、撮像レンズ102のフォ−カスレンズ群を合焦位置に移動させて、被写体像をCCDイメ−ジセンサ111の受光面に結像させる。
また、信号処理部112は、CCDイメ−ジセンサ111の各画素から出力される画素出力信号を取り込み、画素出力の大きさに基づいて被写体の輝度を算出する。算出された被写体の輝度情報は制御部114に出力される。そして、制御部114は、入力された輝度情報に基づいて、被写体に対して適正な露光量となるように絞りユニット110の開放状態(絞り値)と、CCDイメ−ジセンサ111の電子シャッタ回数等を設定する。絞りユニット110の開放状態は、絞りユニット駆動部118の駆動によって制御される。
レリ−ズボタン6が押圧操作されると、合焦状態でかつ適正な露光条件(CCDイメ−ジセンサ111の電子シャッタ回数、絞りユニット110の絞り値等)で被写体を撮影する。そして、信号処理部112は、CCDイメ−ジセンサ111から出力される画素出力信号をデジタル処理して取り込み、表示や記録が可能な画像デ−タに変換処理する。信号
処理部112で生成された画像デ−タは、メモリカ−ド119に記録され、また、液晶モニタ(LCD)115に画像として表示される。