(58)【調査した分野】(Int.Cl.,DB名)
前記コントラスト検出法におけるレンズの位置の最近端側の点または最遠端側の点を順次基準点に設定し、前記基準点と、前記基準点に対応する検波領域以外の検波領域に対応しかつ前記基準点として未設定の点とを通る線を、前記点を2点通る線として抽出する請求項1または請求項2記載の面検出方法。
撮像部で得られた画像に設定された複数の検波領域毎に、コントラスト検出法による検波値のピークに基づいて合焦位置を検出し、前記画像内での前記複数の検波領域それぞれの水平方向の位置、垂直方向の位置、及び検出された前記合焦位置に対応する物体の奥行き方向の位置で表される点を2点通る線を計算し、前記奥行き方向の位置が異なる前記点を2点通る線を2つ以上含む面を検出する検出部
を含む面検出装置。
【発明を実施するための形態】
【0012】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【0013】
図1に、本実施形態に係る撮像装置10を示す。撮像装置10は、レンズ部11と、センサ12と、コントロール部13と、CPU(Central Processing Unit)14と、メモリ15と、DRAM(Dynamic Random Access Memory)16とを含む。また、撮像装置10は、画像取込部17と、画像処理部18と、AF/AE/AWB部19と、圧縮処理部20と、記録制御部21と、画像表示部22と、表示装置23と、入力装置24とを含む。
【0014】
レンズ部11は、複数の光学レンズを含むレンズ群、絞り調整機構、ズーム機構等を含み、撮像範囲の物体で反射した光をセンサ12に結像させる。センサ12は、例えばCCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子である。センサ12は、レンズ部11から入射された光を電気信号に変換して出力する。
【0015】
コントロール部13は、CPU14からの指示を受け、レンズ部11の各機構を駆動する。また、コントロール部13は、CPU14から指示された所定のタイミングでセンサ12を駆動し、センサ12から撮像画像を示す電気信号を出力させる。
【0016】
CPU14は、撮像装置10の各部を制御すると共に、各部へのデータの入出力を制御する。また、CPU14は、後述する面検出方法により撮像範囲に存在する面を検出する。
【0017】
メモリ15は、各部の処理に必要な各種データやプログラム等を記憶する。DRAM16は、後述する画像取込部17から出力された画像データを一時的に記憶するバッファメモリである。また、DRAM16は、各部における処理の際の作業領域としても利用される。
【0018】
画像取込部17は、センサ12から出力された電気信号を取り込む。画像処理部18は、画像取込部17から出力された画像データに対して、デモザイク処理、階調補正、色補正等の画像処理を行って出力する。AF/AE/AWB部19は、画像処理部18から出力された画像データに基づいて、オートフォーカス(Auto Focus、AF)、自動露出制御(Auto Exposure、AE)、及びオートホワイトバランス調整(Auto White Balance、AWB)の各処理を行う。圧縮処理部20は、画像処理部18から出力された画像データを、例えばJPEG(Joint Photographic Experts Group)等の所定の方式で圧縮して出力する。
【0019】
記録制御部21は、圧縮処理部20で圧縮された画像データのメモリカード25等の記録媒体への書き込み、及び記録媒体からの画像データの読み出しを制御する。画像表示部22は、画像処理部18で画像処理された画像データや、メモリカード25から読み込まれた画像データを、表示装置23に表示するように制御する。表示装置23は、例えば、液晶ディスプレイ等である。また、画像表示部22は、各種設定を行うためのメニュー画面等を、表示装置23に表示するように制御する。入力装置24は、シャッタスイッチ、ズームキー、各種設定を行うための操作キー、表示装置23と共に設けられたタッチパネル等、撮像装置10へ情報を入力するための装置である。入力された情報は、CPU14で受け付けられ処理される。
【0020】
ここで、CPU14により実行される面検出方法の概要について説明する。
【0021】
例えば、
図2に示すように、撮像装置10と被写体30との間に、柵32が存在する場合を考える。
図2は、撮像装置10と被写体30と柵32との位置関係を概略的に示す上面図である。柵32は、例えば、垂直方向または水平方向に等間隔に連続して配置された複数の支柱等の部材で構成されており、部材と部材間の空隙とを含めた柵面34が、本実施形態における検出対象の面となる。なお、ここでは、検出対象の面の一例として柵面34を用いて説明するが、檻、壁、ガラス等であっても、開示の技術の面検出方法を適用することができる。
【0022】
図3に、
図2に示す位置関係において、撮像装置10で撮像される画像の一例を示す。
図3の36は、画像領域を示す。また、
図3の網掛け部分は、柵面34を概略的に示しており、実際に撮像される像ではない。本実施形態における面検出方法では、まず、
図4に示すような複数の検波枠を設定し、
図3に示すような画像及び検波値を、レンズ部11の位置を、最近端から最遠端まで、または最遠端から最近端まで、所定ステップずつ移動させたレンズ位置毎に取得する。レンズ位置が近端側の場合には、撮像装置10から近い物体に検波値が高く算出され、遠端側の場合は、撮像装置10から遠い物体に検波値が高く算出される。
図4の例では、縦に5個、横に5個の計25個の検波枠を配置しているが、検波枠の配置、サイズ、数は適宜設定可能である。また、
図4において、各検波枠内に表記した記号は各検波枠の識別子である。
【0023】
図3に示す画像に、
図4に示す検波枠を対応させたイメージを、
図5に示す。
図5に示すように設定された各検波枠内の画素の画素値を用いて、コントラスト検出法によるコントラストの度合いを評価するための検波値を、検波枠毎に算出する。そして、レンズ位置毎に取得された画像の各々に設定した検波枠毎の検波値のピークを検出する。
図6に、検波枠毎の検波値を概略的に示す。
図6では、説明を簡単にするため、
図4に示す3行目の検波枠(A3、B3、C3、D3、E3)の検波値について示している。また、
図6では、各検波枠の画像上での水平方向の位置に応じた間隔となる水平方向の位置に、検波枠毎の検波値のベースライン(例えば、検波値=0)をとり、横軸を検波値の値、縦軸をレンズ位置としている。
【0024】
図6では、検波枠A3、B3、及びE3からは、柵32に対応するピークが検出され、検波枠C3及びD3からは、近端側に柵32に対応するピークが検出され、遠端側に被写体30に対応するピークが検出される。検波値のピークは、検波枠内に撮像された物体のコントラストが閾値(設定により可変)より大きい場合であるため、検波値のピークが検出されたレンズ位置(合焦位置)により、物体の奥行き方向の位置を表すことができる。そこで、
図6に示すように、検波値のピークが検出されたレンズ位置に対応するベースライン上に点(P1、P2、・・・、P7)をプロットし、各点の位置関係を解析する。
【0025】
具体的には、
図7に示すように、例えば、点P1を基準点に設定し、基準点と他の各点とを通る直線を引く(単位ベクトルを計算する)。
図7の楕円Q内には、点P1と点P2とを通る直線、点P1と点P4とを通る直線、点P1と点P6とを通る直線、及び点P1と点P7とを通る直線が含まれる。次に、基準点をP2、P3、・・・と順に設定して、同様に直線を引く。
図8に、全ての点を基準点に設定して引いた直線を示す。ただし、同一の検波枠に対して検出されたピークに対応する点同士を通る直線は除外する。同一の検波枠内から2つ以上のピークが検出されている場合には、その検波枠に対応する位置に奥行き方向の位置が異なる2つ以上の物体が存在することを表しており、本実施形態で検出対象とする柵面34のような面には該当しないからである。また、2点の組合せの重複を排除するため、先に基準点に設定された点は、他の点を基準点とした際に直線を引く対象から除外する。
【0026】
図8の楕円Q内には、他の箇所に比べ、多くの直線が重なっている。このように、検波値のピークに対応した2点を通る線が多く重なるということは、その箇所において物体が連続している可能性が高いことを示しており、面が存在すると判定することができる。特に、ここでは、2点を通る直線を引いているため、直線を多く含む位置に平面が存在すると判定することができる。
【0027】
従来技術では、レンズ位置が同じ位置において、複数の検波枠の各々の検波値のピークが集中しているか否かにより、柵や檻などを検出している。この場合、
図8に示すように、柵32が奥行き方向に斜めに傾いている場合には、検波枠毎の検波値のピークは、同じレンズ位置に対応して出現しないため、
図8のQの部分を平面として検出することができない。しかし、本実施形態の面検出方法によれば、ピークに対応する点を通る直線を解析することにより面を検出するため、奥行き方向も考慮することができ、奥行き方向に斜めに傾いた面も検出することができる。
【0028】
図6〜
図8の例では、説明を簡単にするため、3行目の検波枠のみを用いて説明したため、面が存在する位置に対応した直線上に、柵32の存在により検出された検波値のピークに対応した2点を通る直線が集中している。垂直方向の検波枠も考慮した場合、検波値のピークに対応した2点を通る直線群は、同一平面上に集中することになる。従って、本実施形態では、検波値のピークに対応した2点を通る直線を所定数以上含む面が存在するか否かを判定することにより、面を検出する。
【0029】
次に、本実施形態に係る撮像装置10の作用について説明する。撮像装置10では、柵32越しの被写体30を撮像する際に、柵32にフォーカスしないようにオートフォーカスの制御を行う柵除外モードが設けられている。例えば、ユーザの操作により柵除外モードが選択されると、撮像装置10において、
図9に示す柵除外オートフォーカス処理が実行される。なお、
図9に示す柵除外オートフォーカス処理のステップS11〜S19の処理は、開示の技術の面検出方法の一例である。
【0030】
図9に示す柵除外オートフォーカス処理のステップS11で、CPU14が、検波値を取得するための検波枠のサイズ、配置、個数等を設定する。この設定は、例えば、予め複数の検波枠のパターンを用意しておき、撮影シーンやユーザの指示等により、いずれかのパターンを選択することにより設定することができる。また、AF/AE/AWB部19における通常のオートフォーカス処理でコントラスト検出法によるオートフォーカスを行う際に用いる検波枠をそのまま設定してもよい。
【0031】
次に、ステップS12で、CPU14が、予め定めたレンズ位置の初期値をコントロール部13へ指示する。コントロール部13は、指示されたレンズ位置の初期値に基づいて、レンズ部11を初期位置へ移動させる。ここでは、初期位置を最近端の位置とする。
【0032】
次に、ステップS13で、CPU14が、コントロール部13に画像データの取り込みを指示する。コントロール部13は、撮像された画像を示す画像データを出力するように、センサ12を駆動する。センサ12から出力された画像データは、画像取込部17により取り込み、上記ステップS11で設定した検波枠を対応させて、各検波枠内の画素の画素値を用いて、検波枠毎の検波値を算出した上で、一旦DRAM16に記憶される。そして、画像処理部18が、DRAM16に記憶された画像データに対して、所定の画像処理を施す。なお、複数の検波枠の各々のサイズが異なる場合には、計算した検波値を単位面積当たりの値に正規化する。
【0033】
そして、CPU14は、検波枠の画像上での水平方向の位置を示すx座標、垂直方向の位置を示すy座標、及び現在のレンズ位置に対応したz座標に対応付けて、計算した検波値を記憶する。x座標は、例えば検波枠の水平方向の辺の中点の座標、y座標は、例えば検波枠の垂直方向の辺の中点の座標とすることができる。また、z座標は、例えば、被写体の奥行き方向の位置(z座標)を変化させた場合に、各位置に対して、どのレンズ位置のときに合焦したかを予め測定しておく。そして、例えば、
図10に示すような、レンズ位置とz座標との関係を示すデータシートとして定め、メモリ15に記憶しておく。CPU14は、現在のレンズ位置に対応したz座標を、メモリ15に記憶したデータシートから取得する。従って、各検波値は、{(x,y,z),検波値}のような形式で記憶される。
【0034】
次に、ステップS14で、CPU14が、レンズ位置を、予め定めた1ステップ分の移動させるようにコントロール部13へ指示する。コントロール部13は、レンズ部11を1ステップ分、最遠端側へ移動させる。次に、ステップS15で、CPU14が、レンズ部11が最遠端に到達したか否かを判定し、到達していない場合には、処理はステップS13に戻る。到達した場合には、処理はステップS16へ移行する。
【0035】
ステップS16では、CPU14が、レンズ位置毎に計算した検波値のピークを、検波枠毎に検出する。ピークの検出は、例えば、検波値が予め定めた閾値以上の場合に、ピークとして検出することができる。CPU14は、ピークとして検出した検波値に対応付けて記憶されたx座標、y座標、及びz座標を、ピーク座標として記憶する。
【0036】
次に、ステップS17で、CPU14は、ピーク座標で示される各点を始点とし、他のピーク座標で示される点へ向かう単位ベクトルを計算して、始点となるピーク座標、向きを定める他の点のピーク座標と共に記憶する。ピーク座標で示される各点を始点とする全てのベクトルを計算する。
【0037】
なお、上述したように、同一の検波枠に対して検出されたピークに対応する点に基づくベクトルは除外する。また、本実施形態では、ベクトルの向きは問題とならないため、一方の点を始点とし、他方の点へ向かうベクトルを計算した場合、重複を排除するため、他方の点を始点とし、一方の点へ向かうベクトルは除外する。
【0038】
これを実現するため、CPU14は、z座標が最小のピーク座標で示される点(レンズ位置の最近端側)を最初の始点に設定する。そして、始点に設定された点とx座標及びy座標が異なるピーク座標で示される点以外の点、すなわち始点とは異なる検波枠から検出されたピーク座標が示す点へ向かうベクトルを計算する。次に、CPU14は、z座標が2番目に小さいピーク座標で示される点を始点に設定し、同様にベクトルを計算する。この際、既に始点に設定されたことがある点へ向かうベクトルは除外する。z座標が最大のピーク座標で示される点(レンズ位置の最遠端側)が始点に設定されるまで上記処理を繰り返す。これにより、重複を排除してもれなく全てのベクトルを計算することができる。なお、z座標が最大のピーク座標で示される点から順次始点に設定してもよい。
【0039】
次に、ステップS18で、CPU14が、計算したベクトルのうち、共線条件を満たすベクトル群を探索し、共線条件を満たすベクトルにフラグを付与する。なお、共線条件を判定する際には、誤差を許容する設定としておいてもよい。
【0040】
次に、ステップS19で、CPU14が、フラグが付与されたベクトルが所定数以上存在するか否かを判定することにより、平面が検出されたか否かを判定する。「所定数」は、検出精度等に応じて適切な値を予め定めておく。平面が検出された場合には、処理はステップS20へ移行し、平面が検出されていない場合には、処理はステップS21へ移行する。
【0041】
ステップS20では、CPU14が、平面の検出の元となったフラグが付与されたベクトルに対応付けられたピーク座標のz座標に対応するレンズ位置をデータシートから取得する。そして、CPU14は、取得したレンズ位置の最小値から最大値までの範囲を、フォーカス処理から除外するようにAF/AE/AWB部19に通知する。AF/AE/AWB部19では、通知されたレンズ位置の範囲を除外してフォーカス位置を決定する。例えば、除外したレンズ位置以外でピークが検出されているレンズ位置をフォーカス位置として決定する。
【0042】
一方、ステップS21では、CPU14は、レンズ位置の除外範囲がないことをAF/AE/AWB部19に通知する。AF/AE/AWB部19では、検波枠が設けられた全範囲からフォーカス位置を決定する。
【0043】
次に、ステップS22で、AF/AE/AWB部19が、決定したフォーカス位置をコントロール部13に指示する。コントロール部13は、指示されたフォーカス位置にレンズ部11を移動させ、柵除外オートフォーカス処理は終了する。
【0044】
以上説明したように、本実施形態に係る撮像装置10によれば、レンズ位置を変化させながら取得した画像に設定した複数の検波枠の各々から検波値のピークを検出する。そして、ピークが検出されたレンズ位置に対応する物体の奥行き方向の位置と、検波値の水平方向及び垂直方向の位置とで表される2点を通る線が所定数以上含まれる面を検出する。このため、物体の奥行き方向の位置も考慮することができるため、奥行き方向に斜めに傾いた面も検出することができる。
【0045】
なお、上記実施形態における柵除外オートフォーカス処理で実行される面検出方法では、検波値のピークに対応する点に基づくベクトルのうち、共線条件を満たすベクトルの存在を判定する場合について説明したが、これに限定されない。2点を通る線が同一面上に存在するか否かを判定できればよいため、各点が共面条件を満たすか否かにより、面を検出するようにしてもよい。この場合、例えば、共線条件を判定した場合と同様に、各点に基づくベクトルを計算し、共面条件を満たすベクトルにフラグを付与するようにすることができる。また、ピークに対応する点から選択した3点により定まる平面上に、他の点が存在するか否かを順次判定することにより、共面条件を満たす点を判定してもよい。なお、上記実施形態のように、ベクトル間の共線条件を判定する場合は、簡易な計算により面を検出することができるため、計算コストを抑えることができる。
【0046】
また、上記実施形態では、平面を検出する場合について説明したが、これに限定されない。検波枠のサイズを小さくしたり、共線条件または共面条件の判定条件を緩和したり、2点を通る線に僅かな曲率を許容したりすることにより、連続性のあるカーブを有する面を検出することもできる。
【0047】
また、上記実施形態では、検出した面に対応するレンズ位置を除外してフォーカス位置を決定する場合について説明したが、検出した面の利用方法はこれに限定されない。逆に、検出した面にフォーカスするように、フォーカス位置を決定してもよい。また、本実施形態の面検出方法によれば、面が存在する位置は、撮像装置10と被写体30との位置関係に影響されない。従って、被写体30の後方に存在する面も検出することができる。このため、壁の前に被写体30が存在する場合に、壁に対してフォーカスされることを除外して、フォーカス位置を決定したり、逆に、壁にフォーカスするようにフォーカス位置を決定したりすることができる。
【0048】
また、上記実施形態では、単位ベクトルの共線条件を判定する場合について説明したが、この場合、
図11に示すように、不連続なベクトル同士でも、共線条件を満たす場合がある。なお、上記では単位ベクトルで説明したが、
図11では、一方の点を始点、他方の点を終点とするベクトルを表している。この場合、ベクトルV1とベクトルV2の間(点P2と点P3との間)では、面が途切れている可能性もある。この場合でも、ベクトルV1とベクトルV2とが共線条件を満たす場合には、そこに面が存在すると判定することができる。柵や壁の一部の窓や入り口が空いて開口部ができているために、ベクトルが不連続に現れる場合もあるが、開口部も含めて、面として検出することに問題はない。
【0049】
上記のように、ベクトルが不連続となっている場合には、面として検出したくない場合には、共線条件を満たすベクトルの始点及び終点の座標を比較して、ベクトルの連続性を判定し、不連続なベクトルは除外するようにしてもよい。
【0050】
また、上記実施形態では、検波枠を水平方向及び垂直方向の各々に並べる場合について説明したが、これに限定されない。検出対象の面の水平方向を軸とした傾きを考慮しない場合には、少なくとも水平方向に並んだ複数の検波枠を設定すればよい。また、検出対象の面の垂直方向を軸とした傾きを考慮しない場合には、少なくとも垂直方向に並んだ複数の検波枠を設定すればよい。また、検波枠を設定する範囲も、検出したい面に応じて適宜設定可能であり、検波枠を設定した範囲に存在する面を検出することができる。ただし、
図2及び
図3に示すように、撮像装置10と被写体30との間の柵32等の面を検出したい場合には、画像全面に検波枠を配置することが好ましい。
【0051】
以上の実施形態に関し、更に以下の付記を開示する。
【0052】
(付記1)
撮像部で得られた画像に設定された複数の検波領域毎に、コントラスト検出法による検波値のピークから合焦位置を検出し、
前記画像内での前記検波領域の水平方向の位置、垂直方向の位置、及び検出された合焦位置に対応する物体の奥行き方向の位置で表される点を2点通る線を所定数以上含む面を検出する
ことを含む処理を演算装置に実行させる面検出方法。
【0053】
(付記2)
前記面を検出する際に、前記線をベクトルで表し、共面条件または共線条件を満たすベクトルが所定数以上存在する場合に、前記面を検出する付記1記載の面検出方法。
【0054】
(付記3)
前記検波領域毎の合焦位置を、レンズ及び撮像素子を含む前記撮像部の前記撮像素子に対する前記レンズの位置を所定距離ずつ移動させながら得られた画像の各検波領域に含まれる画素の画素値に基づいて、コントラストに応じた合焦度合いを示す検波値を算出し、検波値がピークとなる前記レンズの位置に基づいて検出する付記1または付記2記載の面検出方法。
【0055】
(付記4)
前記複数の検波領域の各々を、水平方向に並べて配置した付記1〜付記3のいずれか1項記載の面検出方法。
【0056】
(付記5)
前記複数の検波領域の各々を、垂直方向に並べて配置した付記1〜付記4のいずれか1項記載の面検出方法。
【0057】
(付記6)
前記複数の検波領域の各々を、前記画像の全面に配置した付記1〜付記5のいずれか1項記載の面検出方法。
【0058】
(付記7)
最近端側の点または最遠端側の点から順次基準点に設定し、基準点と、前記基準点に対応する検波領域以外の検波領域に対応し、かつ基準点として未設定の点とを通る線を、前記点を2点通る線として抽出する付記1〜付記6のいずれか1項記載の面検出方法。
【0059】
(付記8)
共線条件を満たすベクトルの各々が不連続の場合には、前記共線条件を満たすベクトルから除外する付記1〜付記7のいずれか1項記載の面検出方法。
【0060】
(付記9)
撮像部で得られた画像に設定された複数の検波領域毎に、コントラスト検出法による検波値のピークから合焦位置を検出し、前記画像内での前記検波領域の水平方向の位置、垂直方向の位置、及び検出された合焦位置に対応する物体の奥行き方向の位置で表される点を2点通る線を所定数以上含む面を検出する検出部
を含む面検出装置。
【0061】
(付記10)
前記検出部は、前記線をベクトルで表し、共面条件または共線条件を満たすベクトルが所定数以上存在する場合に、前記面を検出する付記9記載の面検出装置。
【0062】
(付記11)
前記検出部は、前記検波領域毎の合焦位置を、レンズ及び撮像素子を含む前記撮像部の前記撮像素子に対する前記レンズの位置を所定距離ずつ移動させながら得られた画像の各検波領域に含まれる画素の画素値に基づいて、コントラストに応じた合焦度合いを示す検波値を算出し、検波値がピークとなる前記レンズの位置に基づいて検出する付記9または付記10記載の面検出装置。
【0063】
(付記12)
前記検出部は、前記複数の検波領域の各々を、水平方向に並べて配置する付記9〜付記11のいずれか1項記載の面検出装置。
【0064】
(付記13)
前記検出部は、前記複数の検波領域の各々を、垂直方向に並べて配置する付記9〜付記12のいずれか1項記載の面検出装置。
【0065】
(付記14)
前記検出部は、前記複数の検波領域の各々を、前記画像の全面に配置する付記9〜付記13のいずれか1項記載の面検出装置。
【0066】
(付記15)
前記検出部は、最近端側の点または最遠端側の点から順次基準点に設定し、基準点と、前記基準点に対応する検波領域以外の検波領域に対応し、かつ基準点として未設定の点とを通る線を、前記点を2点通る線として抽出する付記9〜付記14のいずれか1項記載の面検出装置。
【0067】
(付記16)
前記検出部は、共線条件を満たすベクトルの各々が不連続の場合には、前記共線条件を満たすベクトルから除外する付記9〜付記15のいずれか1項記載の面検出装置。
【0068】
(付記17)
撮像部と、
付記9〜付記16のいずれか1項記載の面検出装置と、
前記検出部により検出された面に含まれる前記点に対応する合焦位置を除いて、前記撮像部による撮像の際の合焦位置を決定するか、または、検出した面に含まれる前記点に対応する合焦位置から、前記撮像部による撮像の際の合焦位置を決定する決定部と、
を含む撮像装置。