説明

測距装置、撮像装置、測距方法、プログラム

【課題】測距装置として、被写体距離の二次元分布データを実用的な速度で演算取得できるようにする。
【解決手段】被写体距離測定に必要な距離範囲として最短距離Zminと最長距離Zmaxを設定する。測距ラインのうち、上記Zmin、Zmax、及び画角設定に応じて決まる撮像視野範囲を通過する測距ラインのうちから、実際に測距に使用する有効測距ラインを選択する。そして、選択した測距ラインに対応するラインセンサから取り込んだセンサデータのみによって、測距演算を実行し、被写体距離の二次元的分布の情報を持つ測距データを得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、撮影装置における自動焦点調整のために使用される測距装置及びその方法に関する。また、このような測距装置が実行するプログラムに関する。
【背景技術】
【0002】
特にスチルカメラなどの撮像装置のオートフォーカス(自動焦点調整)機能を実現するために測距装置を備えるものが広く知られている。つまり、合焦させるべき測距装置により、被写体までの距離を測定し、この測定された距離に対して合焦するようにしてフォーカスレンズを駆動する。このようして測距装置は、距離を測定するためのセンサとして機能することから、AF(Auto Focus)センサともいわれている。
【0003】
測距装置が採る測距方式としてはアクティブ方式とパッシブ方式が知られている。
アクティブ方式は、測距装置側から被写体側に投光を行って得られた反射光の入射位置を検出し、この検出情報に基づいて被写体までの距離を測定する。また、パッシブ方式の1つである位相差検出方式では、被写体の像を複数の光学系を用いて、例えば、それぞれ異なる水平位置に結像させる。被写体像が結像される位置にはそれぞれラインセンサが配置されており、これらのラインセンサにより結像光に応じた信号が得られる。従って、これらのラインセンサも、同一水平軸に沿って配置される。これらのラインセンサによっては、例えば視野内における或る高さの1水平ラインの結像光を検出することになる。このようにして検出出力が得られる1水平ラインを、ここでは測距ラインという。そして、この1測距ライン分のラインセンサから得られた信号に基づいて、光学系ごとに対応する像についての相互の位相差を検出する。この位相差の検出には、ラインセンサから得られた信号を利用した所定の演算(相関演算)を実行する。そして、この検出結果に基づいて被写体までの距離が測定されることになる。
【0004】
位相差検出方式による測距の構成として、特許文献1には、相関演算のための処理についての記載がされている。また、特許文献2には、測距に用いるセンサ(受光手段)の構成例が記載されている。
【0005】
【特許文献1】特公平7−54371号公報
【特許文献2】特開2001−4367号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記パッシブ方式に関すれば、現状においては、測距のためのラインセンサは、1つの測距ラインに対応する1組のみを備えることが一般的である。このために、撮像視野における被写体距離については、ラインセンサの配置方向に沿った水平又は垂直方向のいずれか一方における一次元的な分布しか検出できない。
そこで、測距装置について、それぞれ異なる測距ラインを平行に形成することとして、これらの測距ラインに対応する複数組のラインセンサを備えることとすれば、検出される被写体距離について、水平/垂直両方向の二次元的な分布を得ることができる。これにより、例えば撮像視野内の広い範囲における所望の位置での測距を行うことが可能になる。
【0007】
しかし、測距のためには先に述べたように相関演算を実行する必要があるが、この相関演算は、繰り返し演算となって計算量が非常に多いことが知られている。この計算のアルゴリズムに関しては、その原理からも簡易なものとすることは困難とされている。そのうえで、上記しているように、測距装置について、複数の測距ラインに対応して複数のラインセンサを備えて二次元的な距離分布を検出しようとすると、相関演算の処理は、著しく重いものとなり、測距ライン数によっては、測距処理についての実用的な速度を維持することができなくなる。つまり、現状の処理能力環境では、複数の測距ラインに対応する複数組のラインセンサにより二次元的な被写体距離分布の情報を得るようにした測距装置を実用化することは困難な状況にある。
【課題を解決するための手段】
【0008】
そこで本発明は上記した課題を考慮して、撮像装置として次のように構成する。
つまり、1測距ラインに対応するラインセンサ部を、複数の異なる視野角の測距ラインごとに対応して複数備える測距センサ手段と、複数のラインセンサ部のうちから、撮像視野内での被写体距離測定が可能とされる測距ラインに対応するラインセンサ部を、有効ラインセンサ部として選択するラインセンサ部選択手段と、このラインセンサ部選択手段により選択された有効ラインセンサ部の出力を利用して測距演算を実行する測距演算手段とを備えて測距装置を構成することとした。
【0009】
上記構成では、測距センサ手段としては、複数の異なる測距ラインごとに対応した複数のラインセンサ部を備える。このことは、これらの測距ラインごとのラインセンサ部からの出力を利用して測距演算を実行すれば、被写体までの距離について二次元的な分布を得るのが可能であることを意味する。
そのうえで、本発明では、上記複数のラインセンサ部のうちから有効ラインセンサ部を選択して、この有効ラインセンサ部の出力のみを利用して測距演算を実行するようにされる。有効ラインセンサ部は、撮像視野内での被写体距離測定が可能とされる測距ラインに対応するラインセンサ部である。このことを換言すれば、本発明では、撮像視野内での被写体距離測定には使用できない測距ライン、つまり撮像視野から外れる測距ラインに対応するラインセンサ部の出力については、測距演算に使用しないようにしている、ということになる。
【発明の効果】
【0010】
上記のようにして、撮像視野内の被写体距離を測定するのに不要なラインセンサ部の出力が測距演算には使用されないことで、測距演算の処理は、常に必要最小限のラインセンサ部の出力を使用して実行することになり、余剰な処理負担が生じない。なおかつ、撮像視野内の被写体距離を測定するのに必要なラインセンサ部の出力は確保されているから、撮像視野内の被写体距離の測定結果としては二次元的な分布が正常に得られる。
つまり、本発明では、複数のラインセンサ部を設けることのメリットである被写体距離の二次元的分布を得た上で、必要最小限とされる処理負担による測距演算が実行されるようにしている。このようにして測距演算の処理が軽減されることで、被写体距離の二次元的分布を得る測距装置の実用化が容易に実現されることになる。
【発明を実施するための最良の形態】
【0011】
図1のブロック図は、本発明の実施の形態としての測距装置を備えるデジタルスチルカメラ1の全体構成を示している。
先ず、カメラ部10は、レンズ光学系により撮像して得られた画像光を信号に変換するための部位であり、光学ブロック11、CCD(Charge Coupled Device)12、前処理回路13、光学ブロック用ドライバ14、CCDドライバ15、及びタイミング生成回路16とを備えて成る。
【0012】
光学ブロック11は、レンズ光学系、フォーカス機構、シャッター機構、絞り(アイリス)機構などを備えて成り、入射された光を撮像光としてCCD12の受光面に結像させる。
また、光学ブロック11におけるフォーカス制御、シャッター制御、絞り値の可変制御などは、この場合には、制御部5の制御に応じて光学ブロック用ドライバ14から出力される所定の駆動信号によって行われるものとしている。つまり、光学ブロック用ドライバ14は、制御部5の制御に応じて、フォーカス機構、シャッター機構、及び絞り機構などを駆動するための駆動信号を生成して出力する。この駆動信号に応じて、フォーカス機構、シャッター機構、及び絞り機構が動作することで、フォーカス状態、シャッター動作、シャッター速度、及び絞り値などが適切な状態に制御される。
【0013】
CCD12は、上記のようにして受光面にて受光した撮像光について光電変換を行うもので、受光面にて受光された撮像光に応じて蓄積された信号電荷を、タイミング生成回路16からの出力されるタイミング信号に基づいて順次出力することで、撮像光に対応した電気信号を出力する。
タイミング生成回路16は、制御部5の制御に応じて必要とされるタイミング信号を形成する。また、CCDドライバ15は、タイミング生成回路16からのタイミング信号に基づいて、CCD12に対して駆動信号を出力する。
なお、光電変換素子(撮像素子)としては、CCDに限定されるものではなく、例えばCMOSセンサなどをはじめ他の素子を採用してもよい。
【0014】
前処理回路13は、CCD12から出力された信号を入力して、例えばCDS(Correlated Double Sampling)処理、AGC(Automatic Gain Control)処理などを実行したうえで、A/D(Analog/Digital)変換処理を行って、デジタル信号に変換する。
前処理回路13から出力されたデジタル信号は、カメラDSP2に供給される。カメラDSP2は、入力されたデジタル信号から、必要に応じて、動画又は静止画としてのデジタル画像データを生成する。また、このデジタル画像データに対して、AE(Auto Exposure)、AWB(Auto White Balance)などのカメラ信号処理を施す。
このようにして得られたデジタル画像データは、例えば、所定の圧縮方式による圧縮符号化、さらには記録符号化を施したうえで、システムバス55、媒体インターフェイス4を介して記録媒体30に転送し、ファイルとして管理される形式で記録を行うことができる。
また、撮像画像のモニタ映像をLCD8にて表示出力させるためのビデオ信号処理なども実行するようにされる。この処理によって得られた表示用画像データは、システムバス55を介してLCDコントローラ7に入力される。LCDコントローラ7は、入力される表示用画像データに応じてLCD8を駆動する。これにより、LCD8には、例えばモニタ画像が表示される。
また、記録媒体30に記録された画像データのファイルは、制御部5の制御により読み出しを行って、媒体インターフェイス4、システムバス55を介してカメラDSP2に入力される。この場合、カメラDSP2は、入力された画像データについて、記録符号化に対する復調処理、データ圧縮に対する復調処理(伸張処理)を実行したうえで、所定の信号処理により、上記と同様に表示用画像データを得て、LCD8にて表示させることができる。
【0015】
カメラDSP2は、上記した各種の信号処理を実行するのにあたって、例えばSDRAM3を作業領域として使用する。SDRAM3に対するデータの書き込み/読み出し制御は、カメラDSP2内に備えられるSDRAMコントローラが実行する。
【0016】
制御部5は、撮像装置1における各部を制御するもので、CPU(Central Processing Unit)51、RAM(Random Access Memory)52、フラッシュROM(Read Only Memory)53、時計回路54をシステムバス55経由で接続して成るマイクロコンピュータとして構成される。
RAM52は、CPU51の演算結果を一時記憶するなど、主としてCPU51の作業領域として用いられる。また、フラッシュROM53は、CPU51が実行すべきプログラムや、各種処理に必要とされる設定データなどが記憶される。また、時計回路54は、計時を行うことで、現在年月日、現在曜日、現在時刻などの情報を出力可能とされる。
【0017】
この場合の操作部6は、撮像装置1の筐体の所要位置に備えられる各種操作子、タッチパネルなどの入力操作手段を一括して示している。操作部6では、操作結果に応じた操作情報信号をCPU51に出力する。CPU51は、入力された操作情報信号に応じて所要の制御、処理を実行する。
【0018】
外部インターフェイス9は、所定のデータインターフェイスを経由して、撮像装置1と他の外部機器とを相互通信可能に接続するために設けられる。
この場合において、外部インターフェイス9に適用される実際のデータインターフェイスとしては特に限定されるべきものではないが、例えばIEEE(Institute of Electrical and Electronics Engineers)1394、USB(Universal Serial Bus)などの有線によるデータインターフェイスを採用することが考えられる。また、Bluetoothなどの無線データインターフェイスでもよい。
さらに、インターネット、LANなどのネットワーク接続に対応した有線、無線のネットワークインターフェイスが採用されてもよい。
【0019】
また、本実施の形態のデジタルスチルカメラ1は、自動的に焦点調整を行うオートフォーカス(AF: Automatic Focus)機能(装置)を有する。この場合のオートフォーカス機能は、被写体までの距離を測定した結果に応じてフォーカスレンズを駆動制御する測距方式を採る。また、測距方式としては、パッシブ方式の1つである位相差検出方式を採ることとする。
位相差検出方式を採ることに応じて、デジタルスチルカメラ1には、レンズ光学系から被写体までの距離(被写体距離)の測定に用いる測距センサ20が設けられる。測距センサ20は、例えば制御部5の制御によりセンサドライバ21から出力される所定の駆動信号により、位相差検出方式に応じた検出動作を実行する。測距センサ20の検出出力は、この場合にはアナログ値として出力されるので、A/Dコンバータ22によりデジタル値に変換される。制御部5においては、このデジタル値に変換された検出出力をシステムバス55を経由して取り込み、測距処理に使用する。つまり、被写体距離を測定する。そして、制御部5は、測定された被写体距離の値に基づいて、先に説明したようにして、光学ブロック用ドライバ14を制御してフォーカスレンズを駆動する。この結果、被写体に対して自動的に合焦させる動作が得られることになる。つまりオートフォーカス動作が実行される。
【0020】
図2は、上記した測距センサ20の構成を模式的に示している。なお、この図においては、測距センサ20とともに、センサドライバ21及びA/Dコンバータ22も示している。
この図に示す測距センサ20は、受光レンズ100a,100bと、センサ部101とを備えるものとされる。
受光レンズ100a,100bは対を成すもので、基線長といわれる距離を隔てて配置される。
ここでのセンサ部101における最小構成単位は、ラインセンサ103(103a−1〜103a−n、103b−1〜103b−n)とされる。ラインセンサ103は、それぞれ同じ所定数の光センサを一方向(図では水平方向となる)に沿って配列して形成され、各光センサにおける受光光量に応じた電荷がシフトレジスタ的に順次読み出しされる構成を採る。
そのうえで、センサ部101においては、対となる2本のラインセンサから成る所定数のラインセンサユニット102−1〜102−nを、この図では行方向に配列している。
例えばラインセンサユニット102−1であれば、一対のラインセンサ103a−1,103b−1を備え、ラインセンサ103a−1は、受光レンズ100aの焦点位置に配置され、ラインセンサ103b−1は、受光レンズ100bの焦点位置に配置される。
また、残るラインセンサユニット102−2〜102−nも、同様にして、それぞれ、一対のラインセンサ103a−2〜103a−n,103b−2〜103b−nを備え、ラインセンサ103a−2〜103a−nについては、受光レンズ100aの焦点位置に配置し、ラインセンサ103b−2〜103b−nについては、受光レンズ100bの焦点位置に配置するようにされる。
【0021】
なお、測距センサとして、従来から広く知られている構成は、受光レンズ100a,100bに対して1組のラインセンサユニット101を備えたものである。本実施の形態では、このラインセンサユニットが複数組備えられる構成を採る。後述するようにして、1組のラインセンサユニット101は、1つの決まった仰角に対応した距離測定のために想定されるライン(測距ライン)を形成する。本実施の形態では、ラインセンサユニット101の数に応じて、それぞれ異なる特定の仰角に対応した測距ラインが形成されることになる。
【0022】
上記したように、ラインセンサ103の各々は複数の光センサが1方向に配列されて成る。そして、各光センサに蓄積された電荷に応じた電流値若しくは電圧値は、所定のクロックタイミングに応じて順次シフトされるようにして出力される。センサドライバ21は、このようなラインセンサ103からの光センサ出力の読み出しについて、制御部5の制御に応じて、1つのラインセンサユニット102におけるタイミングと、ラインセンサユニット102−1〜102−nの間でのタイミングとが適正なものとなるようにして、ラインセンサ103を駆動するように構成される。なお、このようにして得られる出力は、1(水平)ライン分の輝度信号となる。
A/Dコンバータ22は、上記センサドライバ21の駆動により読み出される輝度信号としての検出出力について、デジタル値に変換する。先にも説明したようにして、制御部5は、この検出出力を評価値として利用してオートフォーカス制御を実行する。
【0023】
図3は、上記図2に示す構成の測距センサ20を使用した測距の手法を、受光レンズ100a,100bとラインセンサユニット102との位置関係とともに概念的に示している。また、ここでは、説明を簡単にするために、ラインセンサユニット102は1組の場合についての説明を行う。1組のラインセンサユニット102を使用する測距は、位相差検出方式としての基本となる。
【0024】
対を成す受光レンズ100a,100bは、それぞれの光軸Pa,Pb間の距離である基線長Bを隔てるようにして配置される。また、ラインセンサユニット102を成すラインセンサ103a,103bのうち、ラインセンサ103aは、受光レンズ100aから焦点距離fだけ隔てた位置にて、受光レンズ100aからの出射光が受光されるようにして配置される。また、ラインセンサ103bは、受光レンズ100bから焦点距離fだけ隔てた位置にて、受光レンズ100bからの出射光が受光されるようにして配置される。
このとき、ラインセンサ103a,103bは、同一(水平)線上に在るような位置関係により配置される。
受光レンズ100a,100b、及びラインセンサ103a,103bが、このようにして配置されることで、被写体Sbの像光は、受光レンズ100aを介してラインセンサ103a上に結像される。また、受光レンズ100bを介してラインセンサ103b上に結像される。
【0025】
ここで、ラインセンサ103a上での被写体3の結像した位置(結像位置)についての光軸Pbに対する変位量をδLとし、ラインセンサ103b上での被写体3の結像した位置(結像位置)についての光軸Pbに対する変位量をδRとする。すると、ラインセンサ103a,103bのそれぞれにおける光軸に対する結像位置の変位量の総和であるδは、
δ=δL+δR・・・(式1)
で表される。なお、上記δL、δRは、ラインセンサ103,103bから出力される信号(輝度を示す)波形の位相差であるものとみることができる。そして、図3において示される距離Lを、受光レンズ100a,100bから被写体Sbまでの、光軸に沿った距離(被写体距離)としてみた場合には、この被写体距離Lは、三角測量の原理に基づいて、
L=Bf/δ・・・(式2)
で表される。このようにして位相差検出方式によって、被写体距離Lが算出される。
なお、上記変位量δを取得するためには、実際には、対となる2つのラインセンサの検出出力(輝度信号波形)をそれぞれ一定区間により区切るようにして分割し、これらの分割区間の波形値を利用して、いわゆる相関演算によって、波形の相関が最大となるようなδを求めるようにされる。そして、このような相関演算を、例えば上記のようにして区切りを行った区間をずらしていくようにして繰り返していくことで、視野を水平に横切るとされる1ライン相当の投影ライン(測距ライン)に位置する被写体までの距離の分布を得ることができる。つまり、視野内における被写体距離を一次元的な分布により検出できる。なお、本実施の形態では、この相関演算についてはこれまでに知られている演算手法が採用されればよい。
【0026】
図4は、本実施の形態の測距センサ20と、デジタルスチルカメラ1のレンズ光学系(鏡筒)との位置関係例、及び測距センサ20とレンズ光学系の垂直方向における視野角(垂直視野角)を例示している。つまり、測距センサ20とレンズ光学系を水平方向からみるようにしていることで垂直視野角をみている。
この図において鏡筒11Aは、例えば図1に示した光学ブロック11の外筐部分に対応するものとされる。つまり、デジタルスチルカメラ1における撮像のためのレンズ光学系を示す。
本実施の形態では、デジタルスチルカメラ1を通常に正立させた状態において、鏡筒11Aの鉛直上方に対して一定の距離(高さH)だけ離れた位置に設けられるものとする。また、この状態において、測距センサ20が備えるラインセンサユニット102−1〜102−nの各々における対のラインセンサは、その光センサの配列方向が水平方向となるようにして配置される。また、ラインセンサユニット102の単位では、ラインセンサユニット102−1〜102−nの順で垂直方向に沿って配列される。これらラインセンサユニット102−1〜102−nの配置位置が、各ラインセンサユニットに対応する測距ラインの視野角を決定する。
また、以降においては説明の便宜上、ラインセンサユニット102については、15組であることとする。つまり、ラインセンサユニット102−1〜102−15を、上記した形態により配置する。
【0027】
ここで、図4において、レンズ光学系の垂直(撮像)視野角は、鏡筒11Aの光軸P2上の主点S2にて、それぞれ所定の絶対値角度による仰角/俯角を成す直線Ln1,Ln2により示されるものであるとする。
一方、測距センサ20の垂直視野角を示すラインとしては、それぞれ異なる視野角を持つ15本の測距ラインmL−1〜mL−15が示されている。これらの測距ラインmL−1〜mL−15は、それぞれ、ラインセンサユニット102−1〜102−15に対応するものとする。図3により説明したように、1組のラインセンサユニット102によっては、1本の(水平)ラインに沿った一次元的な被写体距離の分布を得ることができる。この一次元的な被写体距離の分布が1つの測距ラインに対応する。つまり、測距ラインは、1組のラインセンサユニット102に対応して検出される被写体距離のデータを、ラインセンサ103の光センサの配列方向に対応させて配置して形成される1水平ラインに対応するものとしてみることができる。そして、測距ラインは、測距センサ20の光軸P1に対する、ラインセンサユニット102ごとの仰角/俯角にも対応する。
【0028】
この場合には、測距ラインが15本とされていることで、中間となる測距ラインmL−8を光軸P1とほぼ一致させている。そして、測距ラインmL−7〜mL−1が光軸P1に対して仰角となる視野角を持ち、測距ラインmL−8〜mL−15が光軸P1に対して俯角となる視野角を持つようにして設定している。なお、ここでは、測距ライン[mL−7,mL−9]、[mL−6,mL−10]、[mL−5,mL−11]、[mL−4,mL−12]、[mL−3,mL−13]、[mL−2,mL−14]、[mL−1,mL−15]の各組については、その光軸P1に対する仰角/俯角の値は同一となるようにしている。
【0029】
先の図3の説明から理解されるように、1組のラインセンサユニット102によっては、撮像視野における一次元的な被写体距離の分布を得ることになる。本実施の形態の測距センサ20は複数組(例えば15組)のラインセンサユニット102を備えることから、上記した一次元的な被写体距離分布のパターンを、垂直方向において異なる高さ位置でもって、複数取得することが可能であることになる。この結果、撮像視野における被写体距離の情報について、水平/垂直の両方向において得ることが可能になる。つまり、撮像視野における被写体距離分布を二次元的に得ることが可能になる。
このことは、図4においても示されている。例えば鏡筒11Aの主点S2から距離1を隔てたときに形成される視野の垂直方向幅(高さ)は、線分h1で示されるが、この線分h1を横切るようにして通過する測距ラインは、測距ラインmL−1〜mL−15のうち、測距ラインmL−8〜mL−15の8本となっている。同様に、鏡筒11Aの主点S2から距離2を隔てたときに形成される視野の垂直方向の幅を示す線分h2を横切るようにして通過する測距ラインは、測距ラインmL−1〜mL−15のうち、測距ラインmL−6〜mL−15の10本となっている。このようにして、主点S2からの距離に応じて撮像視野内に存在する測距ライン数は異なってくる(主点S2に近くなるほど減少する)ものの、撮像視野内に複数の測距ラインが存在する状態となり得る。そして、これらの複数の測距ラインごとに対応した被写体距離のデータを集合させれば、撮像視野における被写体距離の二次元分布にとしてみることができる。
【0030】
ところで、前述もしたように、測距センサ20は鏡筒11Aの上部に配置される。このために、それぞれの主点S1,S2は異なるものとなる。つまり、測距センサ20と鏡筒11Aとの間には視差が存在する。この視差は、測距センサ20と鏡筒11Aの光軸P1,P2が一致するような配置の仕方とすれば解消されることになるが、デジタルスチルカメラ1の物理的な形態などの都合で、このような配置とすることは現実には不可能であり、従って、測距センサ20と鏡筒11A(撮影用のレンズ光学系)との視差は必然的に存在する。
【0031】
仮に光軸P1,P2を一致させて上記のような視差を解消できるのであれば、例えば、
測距ラインの数にかかわらず、これら測距ラインの垂直視野角を、鏡筒11A側の撮像視野の垂直視野角内に納めることが可能である。つまり、距離にかかわらず、常に全ての測距ラインを撮像視野内に在るようにすることが可能である。従って、この場合には、撮像視野において実用上充分とされる被写体距離の二次元的分布の密度(分解能)が得られるのに足る、必要最小限の数のラインセンサユニット102を設けることが可能である。
これに対して、現実に視差が存在する場合においては、図4からも分かるように、測距ラインの全てが、常に撮像視野内に在るようにすることはできない。具体的には、距離1のときには、測距ラインmL−1〜mL−7の7本が撮像視野(線分h1に対応する)を完全に通過することなく外れる。距離2のときには、測距ラインmL−1〜mL−5が撮像視野(線分h2に対応する)を通過することなく外れる。つまり、図4の場合では、測距センサ20が鏡筒11Aの上側に配置されていることで、仰角が大きいほうの測距ラインが視野から外れる傾向となっている。また、視野に含まれる測距ラインの数は、被写体距離に応じて増減してしまう(距離が短くなるほど減少する)。
従って、現実に視差が存在する状況の下で、できるだけ広い距離の範囲において、実用上充分とされる被写体距離の二次元的分布の分解能を得ようとすれば、実際に設けるべきラインセンサユニット102の数を、視差が存在しないと仮定した場合の必要最小限数に対して、さらに必要なだけ増加させればよい、ということになる。本実施の形態の実際としても、このことに基づいて、ラインセンサユニット102の数が決定されるものであり、説明上の例としては、その数を15としているものである。
【0032】
通常、複数のラインセンサユニットを備える測距センサを用いて測距を実行する場合には、これらのラインセンサユニットの各々から検出信号を出力させ、この出力を利用して先に説明した相関演算を実行して、視野における被写体距離の二次元的分布の情報を得ることになる。しかしながら、従来の課題としても述べているように、相関演算は非常に重い処理である。このために、現状における制御部5の実際の処理能力によっては、ラインセンサユニット102が一定数以上となると、実用が困難になる程度に処理速度が低下するという問題を抱える。
本実施の形態では、このような問題に対応して、比較的多数のラインセンサユニットを備えて二次元分布による被写体距離の情報を取得しようとするのにあたり、被写体距離の二次元分布の分解能、及び処理速度を両立させ、その実用化を図る。以降、この点について説明していく。
【0033】
ここで、先に図4により例説したように、測距対象とする距離1,距離2に応じて、これらの距離により決まる撮像視野(線分h1、h2が対応する)に収まる測距ラインは異なってくる。このときに、撮像視野から外れた測距ラインに対応して得られる被写体距離の情報は、オートフォーカス制御には使用されることはない。このことは換言すれば、オートフォーカス制御には無効となってしまう測距ラインが存在する場合があり、また、このような無効な測距ラインは、測距対象の距離に応じて異なってくる、ということにつながる。
本実施の形態では、このことに着目して、少なくとも、オートフォーカス制御に無効な測距ラインに対応するラインセンサユニット102の検出出力は、測距演算には使用しないこととする。このように、実際のオートフォーカス制御には無効なラインセンサユニット102の検出出力を測距演算に使用しないことで、先に説明した相関演算に要する処理負担も軽減されることになる。また、これらのラインセンサユニット102の検出出力は、元来、オートフォーカス制御には無効である(測距の対象とならない)から、残る無効ではないラインセンサユニット102の検出出力を利用すれば、被写体距離の二次元分布についても充分な分解能を得ることが可能となる。
【0034】
このための具体的な手法概念について、さらに図4を参照して説明する。
本実施の形態では、撮像視野から外れることをもってオートフォーカス制御に無効とされる測距ライン(ラインセンサユニット102)を次のように特定する。
ここで、垂直方向における撮像視野高は、そこまでの距離と撮像視野角とによって決まる。例えば、線分h1、h2により表される撮像視野高は、それぞれ直線Ln1,Ln2により形成される撮像視野角の設定と、距離1,距離2によって決まる。
また、測距センサ20と鏡筒11Aの配置は、実際のデジタルスチルカメラ1にて固定で決まっているものであり、また、測距センサ20における測距ラインmL−1〜mL−15(ラインセンサユニット102−1〜102−15)の視野角(光軸P1に対する仰角/俯角)も測距センサ20の構造により固定的に決まる。鏡筒11A(撮像用のレンズ光学系)側の撮像視野角(光軸P2に対する仰角/俯角)は、鏡筒11Aにおいて設定されるズーム設定により可変であるが、そのときのズーム設定状態に応じて一義的に求めることができる。なお、ズーム機能などを持たないデジタルスチルカメラなどの場合には、撮像視野角は固定設定されるので、固定値として得られることになる。
このことから、距離と撮像視野角が決定されさえすれば、そのときに形成される撮像視野の範囲に収まる測距ラインと撮像視野の範囲から外れる測距ラインとについては一義的に特定することが可能であるということになる。
【0035】
そこで、本実施の形態としては、先ず、被写体距離の測定に必要な距離として、その最短となる距離(最短距離Zmin)と、最長となる距離(最長距離Zmax)との2つの距離を設定(決定)こととする。ここでは、図4においては、これまで説明した距離1,距離2について、それぞれ最短距離Zmin、最長距離Zmaxとする。撮像視野角は、上記しているように、そのときに設定されているズーム状態に応じて決まる。また、最短距離Zmin、最長距離Zmaxは、後述するようにして、被写体距離に関する撮像モード設定についてのユーザ操作に適応させるようにして変更設定される。
そして、本実施の形態では、上記最短距離Zmin(及び画角)に対応して決まる撮像視野(撮像視野光h1により示される)と、最長距離Zmax(及び画角)に対応して決まる撮像視野(撮像視野光h2により示される)との間で得られる視野範囲(測距対象撮像視野範囲)を通過せずに、ここから外れている測距ラインを、先ず、無効な測距ラインとして特定するようにされる。ちなみに、図4では、測距対象撮像視野範囲は、直線Ln1,Ln2と、撮像視野高h1,h2に対応する4つの直線により囲まれた台形形状として示される。
図4の場合には、上記無効な測距ラインとして、測距ラインmL−1〜mL−5の5本が特定される。なお、測距ラインmL−6,mL−7は、最短距離Zminの位置では、直線Ln1の上側にあって撮像視野高(h1)範囲から外れているが、ここから距離が遠くなって最長距離Zmaxに近づいていく過程で、直線Ln1の下側に位置することとなって測距対象撮像視野範囲に入る。従って、これら測距ラインmL−1〜mL−5は、無効な測距ラインとしては見なされない。
また、図4には示されていないが、上記とは逆に、測距ラインは、最長距離Zmaxの位置では測距対象撮像視野範囲外であるのに、最短距離Zminに近づく過程で測距対象撮像視野範囲内になる場合もある。例えば、図4に示す位置から最長距離Zmaxのみを遠ざけていく(図の右方向にシフトさせていく)と、最長距離Zmaxに対応する撮像視野高(h2)からは、先ず、測距ラインmL−15が通過しないこととなって外れ、以降、測距ラインmL−14、mL−13・・・の順で外れていく。しかしながら、これらの測距ラインは、最短距離Zminに対応する撮像視野高(h1)に対しては、完全に通過した状態で収まっている。これらの測距ラインも、無効な測距ラインとしてはみなされない。
【0036】
ここまでの段階で、最短距離Zmin〜最長距離Zmaxの距離範囲内に対応する測距対象撮像視野範囲から外れる測距ラインが無効であるとして特定され、残りの、最短距離Zmin〜最長距離Zmaxの距離範囲内に対応する測距対象撮像視野範囲を通過する全ての測距ラインが、「無効ではない測距ライン(非無効測距ライン)」として特定されたことになる。図4では、この無効ではない測距ラインは、測距ラインmL−6〜mL−15の10本となる。
【0037】
例えば本実施の形態としては、上記した測距対象撮像視野範囲を通過する全ての測距ラインを「有効測距ライン」として扱い、これらの有効測距ラインに対応するラインセンサユニット102の検出出力を利用して、被写体距離の二次元分布を得るための測距演算を行うようにすることができる。この場合においては、測距対象撮像視野範囲から外れている無効な測距ラインに対応するラインセンサユニット102の検出出力を測距演算に使用しないこととなり、この分の処理負担の軽減が図られることになる。
【0038】
しかしながら、実際においては、上記のようにして測距対象撮像視野範囲を通過する全ての測距ラインを有効として測距を実行しなくとも、より少ない測距ラインによっても、被写体距離の二次元分布としては充分な分解能が得られる場合のあることが考えられる。このような場合には、測距対象撮像視野範囲を通過する全ての測距ラインのうちから適切に間引きを行って、有効とする測距ラインの数をさらに絞り込んだうえで測距を実行させることとすれば、測距演算のための処理負担はさらに軽減されることになる。この測距ラインの間引きについての具体例を下記に示す。
【0039】
ここでは、必要最小限で4〜5本程度の有効な測距ラインがあれば、被写体距離の二次元分布として充分な分解能を与えることができるものとする。そこで、測距対象撮像視野範囲を通過する全ての測距ラインが9以上であるという条件を満たせば間引きを行うものとする。間引きをどのような規則により行うのかについてはいくつか考えられるが、ここでは、測距ラインにライン番号を付したうえで、偶数(奇数でもよい)の番号の測距ラインを有効なものとして残し、奇数(偶数)番号の測距ラインを間引くこととする。
これを図4に対応させると、この図では、測距対象撮像視野範囲を通過する全ての測距ラインとしては、測距ラインmL−6〜mL−15の10本となっている。測距ラインの番号は、測距ラインに付された符号mL−nにおける変数nを対応させる。そのうえで、偶数番号の測距ラインを有効にして、奇数の測距ラインを間引いて無効としたとする。すると、この場合において、有効となるのは、測距ラインmL−6、mL−8、mL−10、mL−12、mL−14の5本にまで削減されることになる。そして、これら測距ラインmL−6、mL−8、mL−10、mL−12、mL−14に対応するラインセンサユニット102の検出出力を利用して測距演算を行って、視野における被写体距離の二次元分布の情報を得るようにされる。このようにして得られた被写体距離の二次元分布の情報が、充分な分解能を有しているのは、これまでの説明のとおりである。そして、測距演算のための処理負担は、測距対象撮像視野範囲を通過する全ての測距ラインを対象とした場合と比較して、演算に利用するラインセンサユニット102の検出信号の情報量がほぼ1/2となる分、大幅に軽減される。
【0040】
ところで、特許文献2として挙げた特開2001−4367号公報には、本実施の形態のラインセンサユニットに相当する部位を複数組設けた構成が記載されている。しかしながら、特許文献2では、注目領域としての視野全体における一部領域を設定し、この設定された注目領域のみに対応したラインセンサから出力される検出信号を取り込んで測距演算をするという構成を採る。このような構成は、特許文献2にも記載されるように、自動車の衝突防止のために前方車両との距離を測定するなどの用途であれば、カメラ視野の一部のみが一定的に重点的な領域となり得るために有効である。しかしながら、この構成では、撮像視野全域を対象として効率良く被写体距離の二次元分布を得ることはできない。従って、特許文献1の構成を、本実施の形態のようにして撮像視野の任意の位置での焦点調整が要求される一般のデジタルスチルカメラなどの撮像装置に適用することは不可能であろうと考えられる、
【0041】
ここで、補足として、本実施の形態において、撮像視野角(ズーム設定)が変更されるのに応じて有効な測距ラインが変化することを、図5及び図6を参照して説明しておくこととする。なお、図5、図6において、図4と同一部分については同一符号を付して説明を省略する。
【0042】
図5(a)においては、撮像視野角はθaで表されている。この撮像視野角θaと、最短距離Zmin〜最長距離Zmaxにより決まる測距対象撮像視野範囲に対して、測距ラインmL−6〜mL−15までが収まっており、測距ラインmL−1〜mL−5が全く通過せずに外れて無効な状態にある。つまり、非無効測距ラインは、測距ラインmL−6〜mL−15の10本となる。そのうえで、先の説明に準じて、非無効測距ラインが9本以上であるとの条件を満たしたとして、偶数のライン番号のみを有効とする間引きを実行したとすると、最終的に、有効測距ラインは、測距ラインmL−6、mL−8、mL−10、mL−12、mL−14の5本であることになる。
【0043】
これに対して、図6(a)に示される撮像視野角θbは、図5(a)における撮像視野角はθaよりも小さいものとなっている。つまり、図6(a)の視野角は、図5(a)の場合よりも狭いものとなっている。
この状態に対応しては、撮像視野角θaと、最短距離Zmin〜最長距離Zmaxとの関係により決まる測距対象撮像視野範囲に対して、測距ラインmL−8〜mL−14までが収まっており、測距ラインmL−1〜mL−7、ml−15が通過せずに外れて無効な状態にある。この場合、非無効測距ラインは、測距ラインmL−8〜mL−14の7本となり、図5の場合よりも3本少なくなる。この結果に対して上記と同様の間引きの処理を適用したとする。この場合、非無効測距ラインは7本であり9本未満であることから特に間引きは実行しない。従って、間引きのアルゴリズムが有効であるとしても、この場合の有効測距ライン数は7で変わることがない。
【0044】
また、図5(b)、図6(b)には、それぞれ、上記図5(a)、図6(a)の状態に対応した視野を画像として示している。これらの視野の画像は、例えばモニタ画像としてLCD8(あるいはファインダなど)に表示される画像としてもみてよい。図5(a)、図6(a)には、測距対象撮像視野範囲に対応させて、前方に人物の被写体Sb1を配置し、後方に樹木の被写体Sb2を置いている。図5(a)、図6(a)における測距ラインと各被写体Sb1,Sb2の関係は、視野画像(モニタ画像)においては、図5(b)、図6(b)に示すものとなる。
【0045】
これまでの説明のようにして、本実施の形態のデジタルスチルカメラ1においては、上記図4〜図6により説明したラインセンサユニット102(有効測距ライン)の選択手順を含めて測距の処理を実行する。以降、このような本実施の形態としての測距処理を実現するための技術構成について説明していく。
【0046】
図7は、本実施の形態のデジタルスチルカメラ1における、測距のためのハードウェア構成及びソフトウェア構成を抜き出して機能ブロックとして示している。
測距センサ20は、図2にて説明したように、複数のラインセンサユニット102を備えた構成とされて、ここでは図示していないセンサドライバ21により駆動される。これにより、有効測距ラインに対応するラインセンサユニット102を成すラインセンサ103にて得られた検出信号(1ライン分の輝度信号)を出力する。A/Dコンバータ22は、測距センサ20から出力されるラインセンサ103からの検出信号をデジタル信号に変換して出力する。
A/Dコンバータ22にて得られたデジタル信号としてのラインセンサ103の出力(1ライン分の輝度信号データ)は、センサデータとして扱われ、制御部5内のRAM52に確保したセンサデータバッファ52aとしての記憶領域に対して書き込んで保持するようにされる。従って、センサデータバッファ52aには、1回の測距処理にあたり、有効測距ラインに対応するラインセンサユニット102に対応するラインセンサ103ごとの検出出力に応じたセンサデータが保持されることとなる。
【0047】
上記のようにしてセンサデータバッファ52aに保持されたセンサデータは、測距演算処理モジュール201が測距演算を実行するのにあたって利用することになる。測距演算処理モジュール201は、制御部5(CPU51)が、測距演算のためのプログラムを実行して得られる機能である。また、これまでにも説明した相関演算は、この測距演算処理モジュール201の一部処理として実行される。
【0048】
測距演算処理モジュール201は、上記センサデータを適宜利用して所要の演算処理等を実行し、有効測距ラインごとに対応する被写体距離の情報を得る。これら有効測距ラインごとの被写体距離の情報は、ここでは、1ライン単位の情報であり一次元的な被写体距離分布を示す。測距演算処理モジュール201では、さらに、これらの有効測距ラインごとの被写体距離の情報を利用して所定の演算を実行することで、視野範囲における被写体距離の二次元分布の情報を得る。このようにして得られた被写体距離の二次元分布の情報は、距離分布データとして扱われ、RAM52内にて確保した距離分布データバッファ52bに対して保持される。
【0049】
視差補正モジュール202は、上記測距演算処理モジュール201により得られた距離分布データについて、後述するようにして視差補正処理を実行する。これにより、測距演算処理モジュール201が求めた距離分布データと、撮像画像(モニタ画像)上の位置との対応がとられる。また、補間処理モジュール203は、測距演算処理モジュール201により得られた距離分布データ(若しくは視差補正モジュール202による視差補正処理後の距離分布データでもよい)を対象として、測距ライン間の被写体距離の値を補間する処理を実行する。この補間処理によって、例えば少ない有効測距ライン数に関わらず実用上充分な被写体距離の二次元分布の分解能を得ることが可能になる。逆にいえば、補間処理を行うことによって、必要な有効測距ライン数を低減することが可能となる。また、補間処理のための処理負担は、測距のための相関演算と比較して著しく軽い。つまり、測距の手順に補間処理を加えることによっては、測距演算に利用するラインセンサユニット102の数を減らして、相関演算の処理をさらに軽減することが可能となる。
なお、視差補正モジュール202、及び補間処理モジュール203も、制御部5(CPU51)、測距演算のためのプログラムを実行して得られる機能である。
【0050】
図8は、本実施の形態としての測距ための処理シーケンスを示すフローチャートである。この図に示す処理は、制御部5内のCPU51が、例えばROM53に記憶されるプログラムを実行することで得られるものとされる。また、図8の説明の流れにおいて、必要に応じて、図9,図10、図11及びこれまでに示した各図を参照することとする。
【0051】
例えば、操作部6に対する操作として、シャッターボタンの半押し操作などのオートフォーカスの起動に対応する操作が行われる、あるいは、定常的に合焦状態を得るようにされたコンティニュアスAFモードにおいて、オートフォーカス動作を起動させるべきタイミングに至るなどして、オートフォーカス動作が起動されると、図8に示す測距のための処理に移行することになる。
【0052】
図8に示す処理によっては、先ず、有効測距ラインを決定することが行われる。このために、最初のステップS101では、先に図4により説明した最短距離Zmin及び最長距離Zmaxを設定する。
【0053】
一般によく知られているように、スチルカメラでは被写体距離に応じた撮像モードの切り換えを行うものが広く普及している。このような撮像モードには、例えば、マクロモードなどといわれる接写に対応するモード(ここでは「接写モード」という)、カメラから数メートル程度離れた対象を被写体として撮影するもので、しばしば人物をクローズアップして撮影するときに使用するモード(ここでは「人物モード」という)、遠くの風景を撮影するときに使用するモード(ここでは「風景」モードという)などが知られている。カメラ装置では、これらの撮像モードの間での切り換え操作が行われるのに応じて、切り換えられた撮像モードに適合して想定する被写体距離に応じて、露光やレンズ光学系の位置などについての変更設定を行う。
【0054】
本実施の形態のステップS101としては、このような撮像モードの設定状況に対応させて、最短距離Zmin及び最長距離Zmaxを設定するようにされる。このためには、例えば図9に示すような撮像モードと、最短距離Zmin及び最長距離Zmaxとの対応関係を示すテーブル情報を、フラッシュROM53に保持させておくようにする。ちなみに、図9においては、撮像モードとして、接写モード、人物モード、風景モードがあるものとされる。そして、接写モードについては最短距離Zmin=30cm、最長距離Zmax=1mを対応させるものとして予め定めている。また、人物モードについては最短距離Zmin=1m、最長距離Zmax=4mを対応させ、風景モードについては最短距離Zmin=10m、最長距離Zmax=∞を対応させるものとして予め定めている。なお、この図に示す撮像モードと最短距離Zmin,最長距離Zmaxとの対応は、あくまでも一例であり、実際に応じて適宜変更されるべきものである。
そして、ステップS101の処理として、現在設定されている撮像モードを認識したうえで上記テーブル情報を参照することで、認識した撮像モードに対応する最短距離Zmin,最長距離Zmaxの各値を取得するようにされる。これにより、今回の測距処理に応じた最短距離Zmin,最長距離Zmaxが設定されたこととなる。
なお、テーブル情報に基づいて最短距離Zmin,最長距離Zmaxを設定する以外にも、例えば、完全なマニュアル操作に応じて、最短距離Zmin,最長距離Zmaxをユーザが任意に設定できるようにすることも考えられる。これは、各種の設定をユーザの操作設定に委ねる、マニュアルモードといわれる撮影モードに対して適用すると、有効な場合があると考えられる。
【0055】
次のステップS102においては、現在のズーム位置の情報を取得する。このズーム位置の情報は、光学ブロック11におけるズームレンズのレンズ位置を示すセンサなどの検出信号、あるいは、光学ブロック11においてズームレンズを駆動する駆動機構を形成するモータの回転位置情報などに基づいて取得することが可能である。
【0056】
次のステップS103においては、上記ステップS102により取得したズーム位置情報に基づいて、撮像視野の垂直視野角2θ(2×θ)を取得する。この垂直視野角2θは、図10に示すように、鏡筒11Aの主点S2を起点する直線Ln1,Ln2により形成される角度である。θは、光軸P2と直線Ln1により形成される仰角、あるいは、光軸P2と直線Ln2により形成される俯角となる。
光学系についてのズーム位置(ズーム倍率)の変更は、すなわち画角の変更である。従って、ズーム位置が特定されることで、光学系の画角、つまり、垂直視野角2θは一義的に求めることができる。
【0057】
ステップS104においては、垂直視野高ymax、yminをそれぞれ取得する。図10に示すように、垂直視野高ymaxは、最長距離Zmaxの位置において得られる、光軸P2を基準とした場合の視野の高さとなる。垂直視野高yminは、最長距離Zminの位置において得られる光軸P2を基準とした場合の視野の高さとなる。
これら垂直視野高ymax、yminは、先のステップS101にて設定した最短距離Zmax、最短距離Zminと、ステップS103にて取得した垂直視野角2θを利用して、次の式により算出することで取得できる。
ymax=Zmax tanθ・・・(式1)
ymin=Zmin tanθ・・・(式2)
【0058】
次のステップS105においては、現在設定されているズーム位置(垂直視野角2θ)と、最長距離Zmax、最短距離Zminにより決まる測距対象撮像視野範囲に入るとされる測距ラインの最大仰角ψupと最大俯角ψdnを取得する。確認のために述べておくと、測距対象撮像視野範囲とは、図10においては、直線Ln1と、直線Ln2と、最短距離Zminの位置に対応する垂直方向の線分h1、最長距離Zmaxの位置に対応する垂直方向の線分h2とにより囲まれる台形形状の領域となる。
この場合の最大仰角ψupとしては、この最大仰角ψupに対応するラインLn11が垂直視野高ymaxで示される位置(Pn1)を通過するような角度を設定すればよい。また、最大俯角ψdnとしては、この最大俯角ψdnに対応するラインが垂直視野高yminで示される位置(Pn2)を通過するような角度を設定すればよい。
そして、これら最大仰角ψup及び最大俯角ψdnは、ステップS101にて設定した最長距離Zmax、最短距離Zmin、上記ステップS104にて取得した垂直視野高ymax、yminを利用し、測距センサ20の光軸P1と鏡筒11Aの光軸P2間の距離をH、測距センサ20の主点S1と鏡筒11Aの主点S2との間の光軸方向における距離をDとして、次のようにして算出することができる。
ψup=(ymax−H)/(Zmax+D)・・・(式3)
ψdn=(ymin+H)/(Zmin+D)・・・(式4)
【0059】
続いては、ステップS106において、測距ラインの番号を示す変数nについて、初期値としてn=1を設定する。ここでも、測距ラインの番号としては、例えば図4などにおいて測距ラインに付したmL−nの符号における変数nの部分を対応させるものとして考える。
【0060】
次のステップS107では、測距ラインmL−nについての仰角/俯角ψnを算出する。ちなみに、ステップS106の処理を経て最初に実行されるステップS107においては、変数n=1が設定されているので、測距ラインmL−1についての仰角/俯角ψ1を取得することになる。
測距ラインの仰角/俯角は、対応するラインセンサユニット102におけるラインセンサ103の取り付け角に対応して一義的に決まるものであり、予め求めておくこともできる。そこで、例えば、測距ラインの各々と仰角/俯角との対応を示すテーブル情報をフラッシュROM53に記憶保持させておき、ステップS107の処理を実行するときには、現在設定される変数nに対応するライン番号の測距ラインに対応する仰角/俯角ψnの値を読み出して取得するように構成することが考えられる。また、所定の演算パラメータを用いて所定の演算式による演算を逐次実行して仰角/俯角ψnの値を算出して取得することも考えられる。
【0061】
ステップS108においては、上記ステップS107により取得した測距ラインmL−nについての仰角/俯角ψnについて、最大仰角ψupから最大俯角ψdnまでの角度範囲内にあるか否かについての判別を行う。このためには、取得したψnが仰角(光軸P1に対して上向きとなる角度)であるならば、ψup≧ψnが成立するか否かについて判別するようにされる。また、取得したψnが俯角(光軸P1に対して下向きとなる角度)であるならば、ψdn≧ψnが成立するか否かについて判別する。
ここで、否定の判別結果が得られた場合、その測距ラインmL−nは、測距対象撮像視野範囲を通過しない、つまり、オートフォーカス制御に無効な測距ラインであることになる。この場合においては、ステップS109の処理をスキップしてステップS110の処理に進む。
これに対して、肯定の判別結果が得られた場合には、その測距ラインmL−nは測距対象撮像視野範囲を通過しているものであることになる。従って、この測距ラインは、図4などにより説明した非無効測距ラインであることになる。非無効測距ラインは、オートフォーカス制御に無効な測距ラインではなく、有効測距ラインの候補となり得る測距ラインである。そこで、ステップS109においては、この非無効とされた測距ラインmL−nについて、有効測距ラインの候補として設定する。この設定結果は、例えばRAM52に保持しておくようにされる。
このステップS109の処理を終了すると、ステップS110の処理に進む。
【0062】
ステップS110では、現在設定されている変数nが最大値であるか否かについて判別する。図4の例では、測距ラインmL−1〜mL−15までの15本が存在するので、変数nの最大値は15となる。
ステップS110において否定の判別結果が得られた場合には、ステップS111の処理に進んで、変数nについて1インクリメントしたうえで、ステップS107からの処理を再度実行する。そして、このステップS107〜ステップS111までの処理を、ステップS110において肯定の判別結果が得られるまで繰り返す。ステップS110にて肯定の判別結果が得られた段階では、全ての測距ラインについて、測距対象撮像視野範囲から外れる無効な測距ラインであるか、あるいは無効でない測距ラインであるのかの振り分けが行われ、無効でない測距ラインについては、有効測距ラインの候補として設定されている。
【0063】
ステップS110において肯定の判別結果が得られると、ステップS112以降の処理に進む。ステップS112においては、RAM52に保持している有効測距ラインの候補についての設定内容を参照して、有効測距ラインの候補として設定されている測距ライン数を先ず取得する。そして、この取得した測距ライン数について、所定の閾値m(mは自然数)以上であるか否かについて判別する。この処理は、例えば図4にて説明した測距ラインの間引きを行うか否かを決定するための条件判断であり、先の図4の説明との対応では、測距対象撮像視野範囲を通過する全ての測距ラインが9以上(つまりm=9となる)であることの条件を満たすか否かを判別することになる。
【0064】
ステップS112にて肯定の判別結果が得られた場合には、ステップS113に進んで間引き処理を実行する。具体的には、候補として設定されている測距ラインのうちで、ライン番号(符号mL−nにおけるn)が偶数の測距ラインを、有効測距ラインとして決定する。一方、ステップS112にて否定の判別結果が得られた場合には、ステップS114により、候補として設定されている全ての測距ラインを、有効測距ラインとして設定する。つまり、測距ラインの間引きは実行しない。このステップS114までの処理により、有効測距ラインの選択決定が完了する。
【0065】
ステップS113、又はステップS114の処理を実行した後は、ステップS115に進む。ステップS115においては、例えば先に図7にて説明したように、有効測距ラインごとに対応したセンサデータを取得して、センサデータバッファ52aに保持させるための制御処理を実行する。
そして、続くステップS116においては、上記ステップS115の処理によって取得されたセンサデータを利用した測距演算処理を実行する。これは、図7の構成では、測距演算処理モジュール201により実行されるもので、この処理によって得られた測距ラインごとの被写体距離のデータは、二次元分布による被写体距離のデータ(距離分布データ)として、距離分布データバッファ52bに保持される。
本実施の形態では、このステップS116の測距演算処理にあたって実行する相関演算の処理負担が軽減される。また、先のステップS115までの処理によれば、有効測距ラインとして選択決定した測距ラインに対応するラインセンサのみからセンサデータの取り込みを行うようにしているので、全てのラインセンサからセンサデータを取り込む場合と比較して、取り込みに要する時間、処理負担も、短縮、軽減されることになる。
【0066】
続くステップS117では視差補正処理を実行する。この処理は、図7では、視差補正処理モジュール202により実行されるものとなる。
【0067】
先ず、ステップS117での視差補正処理がどのようなことを目的として行われるものであるかについて説明しておく。
ここで、再度、図5を参照する(図6でもよい)。
図5(a)に示すようにして、測距対象撮像視野範囲において、最短距離Zminに近い手前側に人物の被写体Sb1が存在し、最長距離Zmaxに近い後方側に樹木の被写体Sb2が存在するものとする。このようにして、被写体Sb1は、被写体Sb2よりも前方に位置している。そのうえで、各測距ラインは、主点S1の位置を起点として所定の視野角で放射状に延びる。このために、測距ラインmL−11などを見て分かるように、同じ1つの測距ラインが当たる高さ(垂直方向における位置)は、被写体Sb1よりも被写体Sb2のほうが低くなっていることがわかる。
このような測距ラインの位置関係は、モニタ画像上では図5(b)のようにして現れる。ここでも、例えば測距ラインmL−11に着目してみると、この測距ラインmL−11は、被写体Sb1に対しては、ほぼ目の位置あたりの高さにて水平にかかっている。しかし、これより後方に位置しているとされる被写体Sb2では、同じ測距ラインmL−11は、被写体Sb1にかかっている位置よりも低い位置にかかっている。
【0068】
このことは、測距ラインは、本来は1つの水平の直線としてみなせるが、モニタ画像上では、被写体の距離が異なってくることに応じて、垂直方向における位置(高さ)が異なってくるものであることを示している。この場合おける測距ラインのずれ方は、測距センサ20の主点S1と、鏡筒11Aの主点S2との視差により生じる。
また、本実施の形態のようにして視野における被写体距離の情報が二次元分布として得られる場合において、実際にオートフォーカスを動作させるときには、ユーザがモニタ画像における任意の位置(領域)を指定することになる。デジタルスチルカメラ1としては、この指定された領域について合焦状態が得られるようにしなければならない。このためには、指定された領域に対応する被写体距離の情報を得ることが必要となる。
これに対して、上記ステップS116の測距演算処理によって得られる被写体距離の二次元分布の情報(距離分布データ)は、1測距ラインに対応する1ラインごとの被写体距離の情報を、選択された有効測距ライン数分集めて、測距ラインの相対的位置関係に対応させて例えばマトリクス状に配列した形式のものとなっている。つまり、この段階での距離分布データは、モニタ画像上における高さ位置との対応はとれていない内容となっている。従って、ステップS116の測距演算処理によって得られた距離分布データのままでは、モニタ画像上の指定領域に対応した被写体距離を的確に得ることはできず、正常なオートフォーカス動作を期待することもできなくなる。
【0069】
ステップS117としての視差補正処理は、ステップS116により得られた距離分布データを形成する被写体距離データと、モニタ画像上の位置との対応をとるための処理となる。距離分布データについてモニタ画像上の位置との対応が得られれば、モニタ画像上で指定した領域に対応する被写体距離データが適正に得られることになり、オートフォーカス制御も正常で良好な動作が期待できる。
【0070】
この視差補正処理の概念を図11に示す。
ここでは、俯角ψxを有する測距ラインmL−xについての被写体距離Lが測定されているものとする。すると、この距離Lとして測定された被写体部分は、撮像視野の垂直視野内(モニタ画像の垂直方向に対応する)において点aに位置することになる。この点aを、鏡筒11Aの主点Sを原点とする座標(被写体座標)として扱うと、この被写体座標aは、横軸(x座標)方向における主点S2までの距離Zfと、縦軸(y座標)における主点Sまでの距離yfによって表される。つまり、a(Zf,yf)と表記できる。そして、これら距離Zf,yfは、被写体距離Lと、この被写体距離Lが測定された測距ラインmL−xの俯角(仰角)ψxとを利用し、測距センサ20の光軸P1と鏡筒11Aの光軸P2間の距離をH、測距センサ20の主点S1と鏡筒11Aの主点S2との間の光軸方向における距離をDとして、次のようにして算出することができる。
Zf=Lcosψx−D・・・(式5)
yf=Lsinψx−H・・・(式6)
このようにして被写体座標a(Zf,yf)を求めることは、距離Zfに対応する上記距離yfと、同じ距離Zfに対応する撮像視野の垂直視野高yf1を求めたうえで、これら距離yfと距離yf1の比(yf/yf1)を求めることに相当する。垂直視野高yf1は、距離Zfが決まれば、(式1)又は(式2)に準じて算出できる。撮像視野はモニタ画像の垂直方向幅に対応する。従って、この距離yfと距離yf1の比が求められれば、モニタ画像において、その高さ(垂直方向)方向における中間位置に対する点aの距離は算出できる。つまり、視差補正処理としての演算が実現される。
【0071】
説明を図8に戻す。上記した概念に従って、ステップS117では視差補正処理を実行し、モニタ画像上の位置との対応付けが行われた距離分布データを得る。この距離分布データも、距離分布データバッファ52bに保持するようにされる。
【0072】
さらに本実施の形態では、次のステップS118として示すようにして、補間処理を実行する。この処理は、図7にても説明したように、有効測距ラインごとに対応して実際に得られた被写体距離のデータ値について、2つの有効測距ラインの間にあるとされる画像領域の被写体距離データを補間生成する処理である。この処理は、最も簡単な例としては、例えば垂直方向において隣り合うとされる位置にあるとされる被写体距離のデータ値についての平均(単なる平均でも、加重平均などでもよい)を求めるようにするアルゴリズムを考えることができる。このようにして補間処理を行った距離分布データについても距離分布データバッファ52bに書き込んで保持しておくようにされる。
ここまでの処理を以て、本実施の形態としての測距のための処理が完了する。以降は、距離分布データバッファ52bに保持されている距離分布データを利用して、オートフォーカス制御を実行することになる。
【0073】
ところで、これまでの説明においては、ラインセンサユニットの各々を水平方向のラインとして扱い、これに応じて各測距ラインも、視野を水平方向に沿って直線的に横切るものとするイメージで説明しているが、ここでの水平/垂直方向の概念は絶対的なものではなく、あくまでも相対的なものである。従って、説明上、ラインセンサユニットの各々を垂直方向のラインとして扱ったとしても、本実施の形態としての技術内容に破綻はない。
また、本発明としては、結果として所定複数の測距ラインのうちから撮像視野における測距に使用する測距ラインを選択できればよく、そのための処理手順の詳細などは適宜変更されてよい。例えば、測距ラインについての間引きの処理は、実施の形態では、奇数(偶数でも良い)のライン番号の測距ラインを間引くこととしている。しかしながら、例えば一定の規則に従って、2測距ラインおき、3測距ラインおきのようにして、中間で間引く測距ライン数を増加させていくことも考えられる。どのような間引きのパターンを採用し、また、間引きのためにどのような規則を設定するのかについては多様に考えることができ、どれを採用することも本発明の下で妨げられるものではない。ただし、間引きが行われた結果、隣り合う測距ライン間の距離は、できるだけ等間隔に近いほうが、均一な分布をえることができて好ましい。実施の形態では、このことを考慮して、例えば、奇数(偶数でも良い)のライン番号の測距ラインを間引くこととして、間引きが1測距ラインおきとなるようにしている。
また、本発明の測距装置はデジタルスチルカメラに適用しているが、一般の銀塩スチルカメラにおけるオートフォーカス機能のための測距装置としても好適である。またスチルカメラ以外の撮像装置などオートフォーカス機能が必要とされる機器にも適用が可能とされる。
【図面の簡単な説明】
【0074】
【図1】本発明の実施の形態としての測距装置を備えるデジタルスチルカメラの構成例を示すブロック図である。
【図2】測距センサの構造を概念的に示す図である。
【図3】測距センサによる測距の基本原理を示す図である。
【図4】本実施の形態の測距センサ、デジタルスチルカメラのレンズ光学系(鏡筒)との位置関係例、及び測距センサとレンズ光学系の垂直方向における視野角(垂直視野角)を示す図である。
【図5】本実施の形態の測距センサとレンズ光学系の垂直方向における視野角(垂直視野角)についての画角に応じた相違を図6と比較して示す図である。
【図6】本実施の形態の測距センサとレンズ光学系の垂直方向における視野角(垂直視野角)についての画角に応じた相違を図5と比較して示す図である。
【図7】本実施の形態のデジタルスチルカメラ1における測距のための構成を抜き出して示すブロック図である。
【図8】本実施の形態の測距のための処理動作を示すフローチャートである。
【図9】撮像モードと最短距離Zmin,最長距離Zmaxとの対応を示すテーブル情報の内容例を示す図である。
【図10】図8に示す所定の処理における取得パラメータ、演算パラメータの意義を説明するための図である。
【図11】図8に示す視差補正処理に関して、取得パラメータ、演算パラメータの意義を説明するための図である。
【符号の説明】
【0075】
1 デジタルスチルカメラ、2 カメラDSP、3 SDRAM、4 媒体インターフェイス、5 制御部、6 操作部、7 LCDコントローラ、8 LCD、9 外部インターフェイス、10 カメラ部、11 光学ブロック、11A 鏡筒、12 CCD、13 前処理回路、14 光学ブロック用ドライバ、15 CCD用ドライバ、16 タイミング生成回路、20 測距センサ、21 センサドライバ、22 A/Dコンバータ、30 記録媒体、51 CPU、52 RAM、52a センサデータバッファ、52b 距離分布データバッファ、53 フラッシュROM、54 時計回路、55 システムバス、100(100a,100b) 受光レンズ、101 センサ部、102(102−1〜1−2−n) ラインセンサユニット、103(103a−1〜103a−n,103b−1〜103b−n) ラインセンサ、201 測距演算処理モジュール、202 視差補正処理モジュール、203 補間処理モジュール

【特許請求の範囲】
【請求項1】
1測距ラインに対応するラインセンサ部を、複数の異なる視野角の測距ラインごとに対応して複数備える測距センサ手段と、
上記複数のラインセンサ部のうちから、撮像視野内での被写体距離測定が可能とされる測距ラインに対応するラインセンサ部を、有効ラインセンサ部として選択するラインセンサ部選択手段と、
上記ラインセンサ部選択手段により選択された有効ラインセンサ部の出力を利用して測距演算を実行する測距演算手段と、
を備えることを特徴とする測距装置。
【請求項2】
上記ラインセンサ選択手段は、
測定距離の最長として設定される最長距離と画角とに基づいて決まる撮像視野と、測定距離の最短として設定される最短距離と画角に基づいて決まる撮像視野との間の視野範囲を通過するとされる非無効測距ラインを特定し、この特定した非無効測距ラインのうちから選択した測距ラインに対応するラインセンサ部を、選択された上記有効ラインセンサ部とする、
ことを特徴とする請求項1に記載の測距装置。
【請求項3】
合焦させるべき被写体までの距離に対応する撮像モードの設定操作に応じて上記最長距離及び/又は最短距離を設定する測距対象距離設定手段をさらに備える、
ことを特徴とする請求項2に記載の測距装置。
【請求項4】
上記ラインセンサ選択手段は、
撮像視野内での被写体距離測定が可能とされる全ての測距ラインに対応するラインセンサ部のうちから、所定規則に従って選択した所要のラインセンサ部を有効ラインセンサ部とするようにされている、
ことを特徴とする請求項1に記載の測距装置。
【請求項5】
上記測距演算手段により得られた距離情報について、上記撮像視野に対応する画像の位置との対応をとるための補正処理を実行する視差補正手段をさらに備える、
ことを特徴とする請求項1に記載の測距装置。
【請求項6】
上記有効ラインセンサ部に対応する測距ライン間の距離情報を、複数の有効ラインセンサ部の距離情報を使用して所定の補間処理を行うことで得るための補間処理手段をさらに備える、
ことを特徴とする請求項1に記載の測距装置。
【請求項7】
撮像された被写体についての焦点調整のために被写体距離測定を実行する測距手段を備え、
上記測距手段は、
1測距ラインに対応するラインセンサ部を、複数の異なる視野角の測距ラインごとに対応して複数備える測距センサ手段と、
上記複数のラインセンサ部のうちから、撮像視野内での被写体距離測定が可能とされる測距ラインに対応するラインセンサ部を、有効ラインセンサ部として選択するラインセンサ部選択手段と、
上記ラインセンサ部選択手段により選択された有効ラインセンサ部の出力を利用して測距演算を実行する測距演算手段とを備える、
ことを特徴とする撮像装置。
【請求項8】
個々が1測距ラインに対応し、所定複数の異なる視野角の測距ラインごとに対応して測距センサに設けられる複数のラインセンサ部のうちから、撮像視野内での被写体距離測定が可能とされる測距ラインに対応するラインセンサ部を、有効ラインセンサ部として選択するラインセンサ部選択手順と、
上記ラインセンサ部選択手順により選択された有効ラインセンサ部の出力を利用して測距演算を実行する測距演算手順と、
を実行することを特徴とする測距方法。
【請求項9】
個々が1測距ラインに対応し、所定複数の異なる視野角の測距ラインごとに対応して測距センサに設けられる複数のラインセンサ部のうちから、撮像視野内での被写体距離測定が可能とされる測距ラインに対応するラインセンサ部を有効ラインセンサ部として選択するラインセンサ部選択手順と、
上記ラインセンサ部選択手順により選択された有効ラインセンサ部の出力を利用して測距演算を実行する測距演算手順と、
を測距装置に実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2006−226878(P2006−226878A)
【公開日】平成18年8月31日(2006.8.31)
【国際特許分類】
【出願番号】特願2005−42038(P2005−42038)
【出願日】平成17年2月18日(2005.2.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】