説明

測距装置及び撮像装置

【課題】視差算出にかかる処理時間を高速化すること。
【解決手段】対象物までの距離を測定する測距装置であって、2つの撮像手段と、2つの撮像手段により撮像されたそれぞれの画像を複数の小画像に分割する分割手段と、2つの撮像手段のうち一方の撮像手段により撮像された画像の小画像に対し、視差算出画素を選択するためのテクスチャ検出処理、選択された視差算出画素と、他の撮像手段により撮像された画像のうち、選択された視差算出画素に対応する画素とを用いて視差データを算出する視差算出処理を少なくとも行う視差算出手段と、視差算出手段によるテクスチャ検出処理、視差算出処理を小画像毎に並列して処理するよう制御する制御手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、測距装置及び撮像装置に関する。
【背景技術】
【0002】
近年、デジタルカメラや車載カメラなどのリアルタイム処理が要求される組み込み環境で、ステレオカメラのような測距装置を利用することが実用化されてきている。例えば、デジタルカメラにおいて、ステレオカメラを高速オートフォーカスに利用するという技術がある。
【0003】
従来のデジタルカメラのオートフォーカスにおいては、少しずつフォーカスを変えてそのたびに画像を取得し、それらの画像のコントラストを比較して、最も高いコントラストを持つフォーカス位置を最適のフォーカス位置に決定していた。
【0004】
しかしながら、前述した方法では、フォーカス位置を変えて多くの画像を撮像しなければならないため、処理時間がかかるという問題がある。これに対して、ステレオカメラを測距装置としてオートフォーカス用に利用し、一度の撮像で被写体までの距離を取得することで、その距離にあわせたフォーカス位置を算出する方法がある。この方法を用いると、一度の撮像処理で最適のフォーカス位置を算出できるために、高速なオートフォーカス処理が可能になる。
【0005】
例えば、特許文献1(特開平7−225127)には、ステレオカメラとして測距精度を出しやすい縦に並んだ水平エッジ(以降、単に縦エッジと呼ぶ)を検出し、その縦エッジ部の視差データを算出する方法が開示されている。
【0006】
また、特許文献2(特開2009−14444)には、エッジ検出部が検出したエッジ情報を用いて、処理領域設定部が、物体が存在する可能性のある候補領域を切出し、その切出した候補領域に対して、対応領域探索部がPOC法などで視差を算出するという方法が開示されている。
【0007】
また、視差を算出する際に、画像を分割する技術もある。例えば、特許文献3(特開平11−14346号公報)には、ステレオカメラにおける一方の画像(基準画像)に対し、空などの区域を除いた所定域に所定サイズのウィンドウを設定し、そのウィンドウ単位で視差を算出する車載ステレオカメラが開示されている。
【0008】
また、特許文献4(特開2006−322795号公報)には、ステレオカメラにおける一方の画像(基準画像)に対して、所定の物体に対応する領域とこの物体の種別とをまず識別し、その識別結果を参照して視差演算を行う演算範囲を設定するステレオカメラが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、従来技術のように、ステレオカメラを用いる測距装置をデジタルカメラに適用すると、測距した結果でメインの撮像素子側を制御することになる。よって、デジタルカメラとしてのメインの撮像素子の撮像画角に、測距処理用の撮像画像の画角をあわせることが大きな課題になる。デジタルカメラでは、6°〜60°の大きな画角変動範囲をもつことが一般的である。このような画角変動(ズーム)は、筐体を動作させてレンズの焦点距離を動かす機械的な機構で実現される(光学ズーム)か、画像処理のような電子的処理によって実現される(電子ズーム)。
【0010】
しかしながら、オートフォーカス用の測距装置側に対しても光学ズーム機構を持たせようとすると、大きなコストアップにつながり、また筐体におけるスペースも必要になる。電子ズーム機構の場合は、処理時間がかかること、高速で実現しようとするとコストアップにつながることが問題になる。
【0011】
以上を踏まえると、オートフォーカス用の測距装置に対しては、ひとつの画角・焦点距離で、メインの撮像素子側の画角変動範囲全体をカバーできることが望ましい。ただし、そのような構成の場合、図1に示すように、メインの撮像画像のさまざまな画角に対して、対応するオートフォーカス撮像画像内の対応画像領域が大きく異なってしまう。
【0012】
図1は、オートフォーカス撮像画像内の対応画像領域が異なる例を示す図である。図1(A)は、オートフォーカス撮像画角<メイン撮像画角の場合のそれぞれの画像の例を示す。図1(A)に示すように、メイン撮像画角が大きい場合、つまり近傍撮影時には、メイン撮像画像は、オートフォーカス撮像画像の視差算出対象の対応画像よりも大きくなる。
【0013】
図1(B)は、オートフォーカス撮像画角=メイン撮像画角の場合のそれぞれの画像の例を示す。図1(B)に示すように、オートフォーカス撮像画像とメイン撮像画像とは同じ画像サイズになる。
【0014】
図1(C)は、オートフォーカス撮像画角>メイン撮像画角の場合のそれぞれの画像の例を示す。図1(C)に示すように、メイン撮像画角が小さい場合、つまり望遠撮影時には、オートフォーカス撮像画像の視差算出対象の対応画像領域は小さくなる。
【0015】
オートフォーカスにステレオカメラを利用することを考えた場合、これらの任意のサイズの画像エリア全体に対して、視差を算出できることが望ましい。これは、デジタルカメラの場合、被写体としてさまざまなものが想定され、被写体の画像内でのサイズもさまざまであるからである。ただし、視差として無効な値は不必要である。このため、メインの撮像系に対応した画像領域で、画像領域のエリア全体の有効な視差のマップが検出できることが要求される。
【0016】
一方、オートフォーカスでは、リアルタイム性が要求されるため、視差計算を高速化したいという要求もある。前述した特許文献3,4は、オートフォーカスに用いる技術ではないが、視差計算を実行する画像を、物体の有無によって画像を分割し、高速化を図る技術である。
【0017】
しかし、特許文献3,4では、視差計算を実施する前に、識別や認識処理を必要とするためにその分のオーバーヘッドがかかることや、識別処理の精度が問題となる。当然ながら、識別処理の精度を上げようとしたり、さまざまなシーンに対応したりすれば処理時間がかかるようになる。さらに、識別処理などを行う上では、識別する対象を想定することが必要となる。また、特許文献3には、撮像処理、識別処理、範囲設定処理、距離演算処理などをパイプラインで処理する方法が開示されているが、視差算出(距離演算処理の一部)自体にかかる処理を高速化する技術ではない。
【0018】
また、例えば上述したように、ステレオカメラをデジタルカメラのオートフォーカスに適用する場合などには、そのカメラが見る対象やシーンにはさまざまなものが想定される。そのような状況においては、むしろ、画像内のある領域における視差がどのように分布されているかの情報の方が必要になることが多い。
【0019】
図1に示すように、メイン撮像画像に対応したステレオカメラの画像サイズ内において、視差がどのように分布されているかが分かれば、オートフォーカスは可能になる。認識や識別などは、処理時間がかかっても許される場合が多く、そのため、算出された視差の分布と輝度情報とを用いて、別途行う方が効率的である。
【0020】
以上により、従来技術では、ステレオカメラをオートフォーカスに適用する場合、視差計算を高速に行うための認識処理やエッジ抽出処理に時間がかかってしまうという問題点があった。
【0021】
そこで、本発明は上記問題点に鑑みてなされたものであり、視差算出にかかる処理時間を高速化することができる測距装置及び撮像装置を提供することを目的とする。
【課題を解決するための手段】
【0022】
本発明の一観点における測距装置は、対象物までの距離を測定する測距装置であって、2つの撮像手段と、前記2つの撮像手段により撮像されたそれぞれの画像を複数の小画像に分割する分割手段と、前記2つの撮像手段のうち一方の撮像手段により撮像された画像の小画像に対し、視差算出画素を選択するためのテクスチャ検出処理、選択された視差算出画素と、他の撮像手段により撮像された画像のうち、前記選択された視差算出画素に対応する画素とを用いて視差データを算出する視差算出処理を少なくとも行う視差算出手段と、前記視差算出手段による前記テクスチャ検出処理、前記視差算出処理を前記小画像毎に並列して処理するよう制御する制御手段と、を備える。
【0023】
また、本発明の他の観点における撮像装置は、2つの撮像手段と、前記2つの撮像手段により撮像されたそれぞれの画像を複数の小画像に分割する分割手段と、前記2つの撮像手段のうち一方の撮像手段により撮像された画像の小画像に対し、視差算出画素を選択するためのテクスチャ検出処理、選択された視差算出画素と、他の撮像手段により撮像された画像のうち、前記選択された視差算出画素に対応する画素とを用いて視差データを算出する視差算出処理を少なくとも行う視差算出手段と、前記視差算出手段による前記テクスチャ検出処理、前記視差算出処理を前記小画像毎に並列して処理するよう制御する並列制御手段と、前記視差算出手段により算出された視差データに基づく距離を算出する距離算出手段と、前記距離算出手段により算出された距離に基づきオートフォーカスを制御するフォーカス制御手段と、を備える。
【発明の効果】
【0024】
本発明によれば、視差算出にかかる処理時間を高速化することができる。
【図面の簡単な説明】
【0025】
【図1】オートフォーカス撮像画像内の対応画像領域が異なる例を示す図。
【図2】測距装置の原理図。
【図3】本発明における測距装置の構成の一例を示すブロック図。
【図4】対象画像と小画像との関係を示す図。
【図5】視差算出部の機能の一例を示すブロック図。
【図6】テクスチャ検出部の機能の一例を示すブロック図。
【図7】テクスチャ特性値(その1)を説明するための図。
【図8】テクスチャ特性値(その2)を説明するための図。
【図9】相関の信頼度を説明するための図。
【図10】パイプライン並列処理の処理タイミングフローの一例を示す図。
【図11】処理ごとに異なるバッファサイズを説明するための図。
【図12】実施例1における視差データ算出処理の一例を示すフローチャート。
【図13】撮像装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【0026】
以下、添付図面を参照し、本発明の実施例について説明する。まず、測距装置における、画像内に含まれる対象物までの距離を検出する方法について説明する。測距装置は、例えばステレオカメラである。測距装置は、2つの撮像部により得られる2つの撮像画像に基づいて、撮像画像内に含まれる対象物までの距離を検出する装置である。
【0027】
図2は、測距装置の原理図である。図2に示すように、測距装置は、撮像部1と撮像部2とを有する。撮像部1,2は、例えばカメラである。図2では、ピンホールカメラを例に挙げて説明する。基線長(撮像部1と撮像部2の距離)をB、2つの撮像部の焦点距離をf、撮像部1,2から測定対象物3までの距離をZとする。
【0028】
2つの撮像部の光軸は、互いに平行であり、基線に対して垂直である。2つの撮像部の撮像面には測定対象物3がpだけずれた位置に映る。このpは、左右のカメラにおける対応する点間の距離であり視差と呼ぶ。視差の大きさは画素単位で表される事が多い。
【0029】
これらZ、B、f、pの値を用いて三角形の相似の関係から式(1)で撮像部1,2から測定対象物3までの距離Zが求まる。
Z=B×f/p ・・・式(1)
このとき、視差pは、視差を算出する画素ごとに1画素ずつずらして相関値を計算し、それを比較することによって算出される。そのため、処理に膨大な時間がかかることが知られている。例えば、1画素ごとに視差pを探索するための画素をずらして探索する長さ(探索幅)が64画素だとすると、ある画像を処理するための処理時間は、1画素分の視差を探索するために1クロックサイクルかかるとしても、1画像を処理するために64倍の処理時間がかかってしまう。
【0030】
一般に1画素分の相関値を計算するために1クロックサイクルで処理が実現されるということは不可能であり、これは相関をとるブロックサイズによって指数的にさらに増大する。このため、視差計算時間を短縮することは大きな課題となっている。この視差計算時間を算出する概算式を式(2)で表す。
1画像分の視差計算時間=視差算出画素数×(1画素の相関計算時間×探索幅)・・・式(2)
視差計算時間を減らす課題に対し、
・視差算出画素数を減らす
・1画素の相関計算時間を減らす
・探索幅を減らす
ことが考えられる。
【0031】
探索幅は、ターゲットとなる測距範囲によって決定されるものである。1画素の相関計算時間は、短縮するためにハードウェアのリソースが大きく必要となるためコストが高くなる。相関計算時間のアルゴリズムを短縮した場合は、精度が劣化する傾向にある。
【0032】
そこで、本発明では、視差算出画素数を効率よく減らし(視差算出画素を効率よく選択し)つつ、視差算出にかかる処理時間を高速化することを目的とする。また、本発明では、視差算出に含まれる処理をパイプライン処理することで、視差算出にかかる処理時間の高速化を図る。視差算出画素を選択するための処理を、以下ではテクスチャ検出処理、そのためのアルゴリズムを、テクスチャ検出アルゴリズムと呼ぶ。
【0033】
[実施例1]
<構成>
図3は、本発明における測距装置の構成の一例を示すブロック図である。図3に示す測距装置13は、撮像部1、撮像部2、画像取込部4、メモリ5、ステレオ処理部6、距離算出部12を含む。
【0034】
撮像部1,2は、予め基線間隔がBだけ離間し、かつ光軸が相互に平行になるように配置される。撮像部1,2は例えばカメラである。
【0035】
画像取込部4は、撮像部1,2により撮像された画像を取得し、メモリ5に出力する。メモリ5は、画像取込部4から入力された画像を記憶する。メモリ5は例えばRAM(Random Access Memory)などである。
【0036】
ステレオ処理部6は、2つの撮像部のうちの1つの撮像部により撮像された基準画像、他方の撮像部により撮像された比較画像に基づき、視差データを算出する。ステレオ処理部6は、分割部7、視差算出部10、並列制御部11を含む。
【0037】
分割部7は、基準画像のうち、視差算出の対象となる対象画像(以下、単に対象画像ともいう)を所定サイズの小画像に複数分割して取得し、バッファ8に記憶する。また、分割部7は、比較画像のうち、対象画像に対応する画像を所定サイズの小画像に複数分割して取得し、バッファ9に記憶する。
【0038】
図4は、対象画像と小画像との関係を示す図である。図4に示すように、対象画像15は、オートフォーカス撮像画像のうち、メイン撮像画像に対応する画像である。小画像16は、対象画像15が所定サイズに複数分割された画像である。所定サイズは例えば、64×42や64×64などである。
【0039】
分割部7は、基準画像内の対象画像15の小画像16を1つずつメモリ5から読み出して、バッファ8に記憶する。また、分割部7は、比較画像内の対象画像15に対応する画像の小画像を1つずつメモリ5から読み出して、バッファ9に記憶する。
【0040】
図3に戻り、視差算出部10は、基準画像と比較画像とに基づき視差データを算出する。視差算出部10の詳細は図5を用いて説明する。
【0041】
図5は、視差算出部10の機能の一例を示すブロック図である。図5に示す視差算出部10は、幾何補正部21,22、バッファ23,24、テクスチャ検出部25、バッファ26、視差データ算出部27、バッファ28、信頼度算出部29を含む。
【0042】
幾何補正部21は、バッファ8から取得した基準画像の小画像に対して画像ひずみ等を補正する。画像全体においては、樽型ひずみのように非線形である場合でも、小画像においては線形補正で十分な補正結果が得られる場合が多い。よって、幾何補正部21は、ルックアップテーブル用などのメモリ資源を節約することができる。幾何補正部21は、補正した小画像をバッファに23に出力する。
【0043】
幾何補正部22は、バッファ9から取得した比較画像の小画像に対して画像ひずみ等を補正する。幾何補正部22は、基本的な機能は幾何補正部21と同様である。幾何補正部22は、補正した小画像をバッファ24に出力する。
【0044】
バッファ23は、補正された小画像を、テクスチャ検出部25により読み出されるまで記憶する。
【0045】
バッファ24は、補正された小画像を、視差データ算出部27により読み出されるまで記憶する。
【0046】
テクスチャ検出部25は、バッファ23に記憶されている小画像を取得する。テクスチャ検出部25は、基準画像の視差算出に用いる対象画像などに基づき、視差算出画素を効率よく選択する。テクスチャ検出部25の詳細は、図6を用いて説明する。
【0047】
図6は、テクスチャ検出部25の機能の一例を示すブロック図である。図6に示すテクスチャ検出部25は、決定部31、切替部32、第1検出処理部33、第2検出処理部34、選択部35を含む。
【0048】
決定部31は、視差を算出するための対象画像に基づき、視差を算出するための画素を選択するための処理(テクスチャ検出処理)を決定する。以下、視差を算出するための画素を視差算出画素という。決定部31は、対象画像のサイズについて、メモリ5から直接取得してもよい。また、決定部31は、最初の小画像に、対象画像のサイズが含まれる場合、小画像から対象画像のサイズを取得するようにしてもよい。
【0049】
決定部31は、視差を算出するための対象画像が所定のサイズ(サイズ閾値)よりも大きければ第1検出処理部33に決定し、対象画像が所定のサイズ以下であれば第2検出処理部34に決定する。サイズ閾値は、例えば200×100である。また、決定部31は、サイズ閾値を複数記憶し、3以上の検出処理部の中から1つの検出処理部を選択するようにしてもよい。
【0050】
決定部31は、視差算出画素数によりテクスチャ検出アルゴリズムを決定してもよい。例えば、決定部31は、視差算出にかかった過去の処理時間に基づく今回要求される処理時間(例えば数ミリセック)により視差算出画素数を決定し、この視差算出画素数が所定数(画素閾値)よりも大きければ第2検出処理部34、所定数以下であれば第1検出処理部33に決定してもよい。要求される処理時間は、アプリケーションとデバイスの処理能力により決まる。例えば、高速オートフォーカスによれば、0.1秒〜0.7秒の処理時間が要求され、そのうちの所定数の時間が視差算出にかかる処理時間として要求される。
【0051】
これは、視差算出画素数が所定数以下であれば、それだけ多くの画素を間引くことになるので第1検出処理部33を適用し、所定数よりも視差算出画素数が大きければ、それほど画素を間引く必要がないので第2検出処理部34を適用するという考えに基づく。
【0052】
また、決定部31は、対象画像のサイズと、決定される視差算出画素数とに基づいて、対象画像から多くの画素を間引く必要があると判断すれば第1検出処理部33に決定し、対象画像から画素を間引く数が少ないと判断すれば第2検出処理部34に決定してもよい。
【0053】
切替部32は、決定部31の決定内容により、いずれかの検出処理部に接続する。この切替部32は、説明の便宜上ハードウェア的に説明するが、プログラムの条件分岐による切り替えを行うソフトウェアで実装してもよい。
【0054】
第1検出処理部33は、視差を算出するための対象画像が大きい場合に適用されるテクスチャ特性の検出処理である。第1検出処理部33は、バッファ8から取得した小画像に対し、高度なテクスチャ検出アルゴリズムを適用し、テクスチャ特性値を算出する。
【0055】
図7は、テクスチャ特性値(その1)を説明するための図である。図7に示す例では、視差計算を行うブロックサイズを9×9とした場合、テクスチャを検出するブロックサイズも9×9とした例である。なお、図7に示すテクスチャを検出するブロックサイズは、説明の便宜上9×9とするが、実際は小画像のサイズに合わせて小さくすると良い。
【0056】
第1検出処理部33は、図7に示す例によれば、テクスチャ特性値を式(3)により算出する。
【0057】
【数1】

ただし、(i,j):画素位置
x(i,j):(i,j)の輝度値
a:水平5TAP係数、a(0)が中心の係数とする
b:5×3ブロックフィルタ係数、b(0,0)が中心の係数とする
ω1:水平5TAP計算用重み係数
ω2:5×3ブロックフィルタ用重み係数
図7に示すテクスチャ特性値のテクスチャ検出アルゴリズムは、視差計算を行うブロック(9×9の画素ブロック)内で、水平エッジがどれくらい含まれているかという情報と、視差計算を行う中心の画素のまわりに縦ラインがどれくらい続くか(水平エッジがどれくらい縦に続いているか)という情報によって、テクスチャレベルを評価するアルゴリズムである。
【0058】
このアルゴリズムでは、たとえば5×3のブロックフィルタのパタンを変えることによって、縦エッジだけでなく、斜め線など、さまざまなパタンに対応することができる。対象画像のサイズが大きい場合は、多くの画素を間引く必要があるので、このようなアルゴリズムを使って、精度の高いテクスチャ特性値が算出される。これにより、視差算出を行うのに、精度の高いテクスチャ特性値に基づく理想的な画素を選択することができる。第1検出処理部33は、算出したテクスチャ特性値を小画像と共に選択部35に出力する。
【0059】
第2検出処理部34は、視差を算出するための対象画像のサイズが小さい場合に適用されるテクスチャ特性の検出処理である。第2検出処理部34は、バッファ9から取得した小画像に対し、処理速度優先の簡易的なテクスチャ検出アルゴリズムを適用し、テクスチャ特性値を算出する。
【0060】
図8は、テクスチャ特性値(その2)を説明するための図である。図8に示す例では、対象画像の中の画素に対し、シンプルなテクスチャ検出アルゴリズムでテクスチャ特性値を算出する。
【0061】
第2検出処理部34は、図8に示す例によれば、テクスチャ特性値を式(4)により算出する。
【0062】
【数2】

ただし、(i,j):画素位置
x(i,j):(i,j)の輝度値
図8に示す例では、隣接する画素の輝度値の差分の絶対値を算出してテクスチャ特性値とする。対象画像のサイズが小さい場合には、それほど画素を間引く必要がないので、処理速度を優先して簡易的にテクスチャ特性値が算出される。第2検出処理部34は、算出したテクスチャ特性値を小画像と共に選択部35に出力する。
【0063】
第1検出処理部33、第2検出処理部34は、1つの検出処理部36として構成されてもよい。この検出処理部36は、3つ以上の検出処理を備えてもよい。
【0064】
選択部35は、第1検出処理部33や第2検出処理部34により取得したテクスチャ特性値に基づいて、小画像から視差算出画素を選択する。選択部35は、例えば、第1検出処理部33からテクスチャ特性値を取得した場合、取得したテクスチャ特性値が第1閾値(テクスチャ閾値)以上であれば、そのテクスチャ特性値に対応する画素を視差算出画素として選択する。選択されなかった画素は間引かれることになる。
【0065】
選択部35は、例えば、第2検出処理部34からテクスチャ特性値を取得した場合、取得したテクスチャ特性値が第2閾値(テクスチャ特性値)以上であれば、そのテクスチャ特性値に対応する画素を視差算出画素として選択する。選択されなかった画素は間引かれることになる。
【0066】
選択部35は、第1閾値と第2閾値とをそれぞれに適するように異ならせてもよい。また、第1閾値及び第2閾値は、それぞれの小画像または直前の対象画像の輝度のヒストグラムに応じて適宜変更してもよい。小画像が明るめの画像であれば閾値は高くなり、暗めの小画像であれば閾値は低く設定される。この閾値は実験により最適な値に設定される。選択部35は、選択した視差算出画素(又はその輝度値)をバッファ26に出力する。
【0067】
図5に戻り、バッファ26は、視差データ算出部27により読み出されるまで、選択された視差算出画素を記憶する。
【0068】
視差データ算出部27は、テクスチャ検出部25により選択された視差算出画素をバッファ26から取得する。視差データ算出部27は、取得した視差算出画素に対応する画素である、比較画像の画素をバッファ24から取得する。
【0069】
視差データ算出部27は、基準画像の視差算出画素と、比較画像の視差算出画素に対応する画素とに基づいて、視差データを算出する。視差データ算出部27は、式(5)により視差データを算出する。式(5)では、図7に示す例に合わせて、視差計算を行うブロックサイズを9×9として視差データが算出される。
【0070】
【数3】

ただし、I(i,j):視差算出画素の輝度値
C(i,j):視差算出画素に対応する比較画像の画素の輝度値
なお、視差データ算出部27は、視差データ算出に用いるアルゴリズムは式(5)に示すようにSAD(Sum of Absolute Difference)に限らず、2つの画素ブロックの相関を比較するものであれば適用できる。視差データ算出部27は、算出した視差データ及び小画像をバッファ28に出力する。
【0071】
バッファ28は、信頼度算出部29により読み出されるまで視差データ及び小画像を記憶する。
【0072】
信頼度算出部29は、バッファ28から視差データ及び小画像を取得し、視差データの算出に用いた相関の画素の位置が、信頼できるか否かを判定する。ここで、信頼ができない場合とは、例えば、基準画像におけるあるテクスチャ有効画素位置について、上記式(5)によって、比較画像との相関値を探索幅分、計算していった結果、すべての相関値が似ていた場合、などである。
【0073】
図9は、相関の信頼度を説明するための図である。図9に示す横軸が探索幅、縦軸が相関計算値(例えばSAD値)を示す。信頼度算出部29により小画像の探索幅分、SAD値を計算した結果、式(5)によって計算された相関値が最も低かった値の部分が視差相当位置になる。
【0074】
一方、この視差相当位置の相関計算値(Min)と、相関計算最大値(Max)との差分(以下、相関差分ともいう)が、図9に示す例では閾値に達していない。この閾値は、相関値差の閾値(相関値差閾値)である。つまり、探索幅において、基準画像側の画素ブロックと、似たようなブロックがならんでいることを意味しており、視差としてはあまり信用できるとはいえないことになる。
【0075】
よって、信頼度算出部29は、前述したように、相関差分が相関値差閾値を超えた場合、その視差相当位置を用いて算出した視差データを距離計算部12に出力する。
【0076】
図3に戻り、並列制御部11は、分割部7、視差算出部10の各処理を並列パイプライン処理するよう制御する。
【0077】
距離算出部12は、信頼度算出部29から取得した視差データを視差pとし、式(1)により、距離Zを求める。この距離Zが、対象物までの距離を示す。
【0078】
<パイプライン処理>
本発明では、以上のようなステレオ処理部6における各処理を、パイプライン処理として、高速に並列計算することで、視差算出処理にかかる時間を高速化する。
【0079】
図10は、パイプライン並列処理の処理タイミングフローの一例を示す図である。図10に示す各エリア番号は、図4において分割された各小画像16に対応する。図10に示すように、テクスチャ検出や視差計算などの種々の処理を実施しても、視差算出結果としてはエリアごとに連続して出力され続けていることが分かる。
【0080】
また、図10に示す例では、処理ごとにバッファに処理結果が格納される様子を示す。図10に示すように、パイプライン処理を行うために、パイプラインステージごとに用意される。ただし、それぞれの処理ごとのバッファは、エリアごとに上書きされる。また、幾何補正までが、基準画像用、比較画像用で2系統必要であるが、他の処理については、1系統のバッファのみで十分である。
【0081】
また、各バッファのサイズは、図11に示すように、処理ごとに、異なったサイズでもよい。図11は、処理ごとに異なるバッファサイズを説明するための図である。図11に示すように、幾何補正に使用される画像41は、幾何補正を行うために余裕しろが必要である。
【0082】
図11に示すように、テクスチャ検出、視差算出に使用される画像42は、サブエリア内の端画素について、テクスチャ検出、及び視差算出用のブロックの余裕しろが必要になる。
【0083】
図11に示すように、視差算出の対象となる画像43は、最大で、この領域の全画素について、視差データを算出できるようになっている。図11に示すように、
幾何補正用の余裕しろ>テクスチャ検出、及び視差算出用の余裕しろ
の関係が成り立つ。
【0084】
以上より、最初に小画像をメモリ5からリードする場合には、余裕しろをもつために、最大のサイズでリードしてくる必要がある。
【0085】
なお、これらのパイプラインステージは、並列に実行させていくために、処理タイミングを同じにコントロールする必要がある。そのため、最も時間がかかると考えられる視差算出処理のサイクルに応じて、並列制御部11は、他の処理の処理時間をウェイト制御する。例えば、並列制御部11では、視差計算のブロックサイズや探索幅を入力として、いくつかの処理時間テーブルを設けておく。並列制御部11は、この処理時間テーブルに応じて、他の処理ステージ部のウェイトをコントロールする。
【0086】
<動作>
次に、実施例1における測距装置13の動作について説明する。図12は、実施例1における視差データ算出処理の一例を示すフローチャートである。図12に示す例は、一つの小画像を処理する例である。
【0087】
図12に示すステップS101で、分割部7は、基準画像の対象画像を小画像、比較画像を小画像に分割する。
【0088】
ステップS102で、幾何補正部21、22は、それぞれの小画像に対して幾何補正を行う。
【0089】
ステップS103で、決定部31は、視差算出画素数及び/又は対象画像のサイズを取得し、取得した対象画像のサイズ及び/又は視差算出画素数からテクスチャ検出アルゴリズムを決定する。決定の仕方は前述した通りである。
【0090】
ステップS104で、検出処理部36は、決定されたテクスチャ検出アルゴリズムによりテクスチャ特性値を算出する。例えば、テクスチャ特性値は、式(3)や式(4)により算出される。
【0091】
ステップS105で、選択部35は、算出されたテクスチャ特性値に基づき、視差算出画素を選択する。例えば、選択部35は、対象画像のサイズが大きければ、多くの画素を間引くようにして視差算出画素を選択する。このとき用いるテクスチャ特性値は精度の高いアルゴリズムにより求められた値である。また、選択部35は、対象画像のサイズが小さければ、間引く画素を少なくして視差算出画素を選択する。このとき用いるテクスチャ特性値は処理時間を優先した簡易的なアルゴリズムにより求められた値である。
【0092】
ステップS106で、視差データ算出部27は、選択された視差算出画素の輝度値と、比較画像のうち、視差算出画素に対応する画素の輝度とを用いて、視差データを算出する。
【0093】
ステップS107で、信頼度算出部29は、視差データを求めた画素が、相関計算をする場合に信頼できる画素か否かを判定する。信頼度算出については、前述した通りである。
【0094】
なお、信頼度算出処理として、テクスチャ検出処理を流用することも考えられる。テクスチャ検出処理では、大きな対象画像に対して多く画素を間引く場合には、テクスチャ検出処理として時間がかかるが精度の高い手法を適用し、小さな対象画像に対してはほとんど画素を間引かないためにシンプルな手法でテクスチャ検出を行う。
【0095】
ここで、小さな対象画像に対してほとんど画素を間引かずに視差計算を実施することになった場合、視差算出を行っている最中に、その画素に対して精度の高いテクスチャ検出方法を適用し、その結果を信頼度のひとつとして算出してもよい。
【0096】
上述したように、本処理においては、視差算出処理が処理時間において最も支配的と考えられるため、本発明のようなパイプライン処理を実現することで、その画素における高精度なテクスチャ検出処理を実施することも可能になる。つまり、画像エリア全体に対して高精度なテクスチャ検出処理を実行したのでは処理が重くなってしまうが、シンプルな方法で視差計算実施を決定した画素に対しては、視差計算を実施している間に、その画素における高精度なテクスチャ検出処理も計算することが可能になるのである。
【0097】
信頼度算出部29は、高精度なテクスチャ検出処理を行って算出したテクスチャ特性値が所定の閾値以上であれば、その視差データは信頼できると判定すればよい。
【0098】
以上、実施例1によれば、視差算出の対象となる任意のサイズの対象画像に対して、小画像に分割し、その小画像に対して、幾何補正、テクスチャ検出、視差算出、信頼度算出、といった視差算出を行う上で実施する処理をパイプライン処理で実行させる。
【0099】
これにより、対象画像における有効な視差の算出を高速化することができる。また、小画像の単位で処理が可能になるため、視差計算ハードウェアの内部に大きなラインメモリを持つ必要がなくなり、コスト削減が可能になる。
【0100】
なお、幾何補正処理、信頼度算出処理は、必ずしも必要な処理ではなく、少なくともテクスチャ検出処理、視差算出処理があれば視差データを算出できる。よって、本発明は、テクスチャ検出処理、視差算出処理をパイプライン処理すれば、本発明の目的を達成できる。
【0101】
さらに、任意の画像サイズに対して視差計算を実施する上で、小画像を単位にしてその倍数的な処理で実現できるために、さまざまな画像サイズごとに視差演算の制御を変更する必要がなくなり、シンプルな処理で実装することが可能になる。
【0102】
また、実施例1によれば、シーンや対象物に依存せず、安定して高速な視差計算を実現することができるようになる。
【0103】
また、実施例1は、テクスチャ検出処理について、既知のテクスチャ検出処理を用いてもよい。前述したテクスチャ検出処理を行えば、利用する対象画像サイズに応じて(対応画角)、適用するテクスチャ検出アルゴリズムを切り替えることができるため、光学ズームや電子ズームなしで広い画角範囲に対応する視差算出を効率的に実行することが可能になる。
【0104】
さらに、前述したテクスチャ検出処理を行えば、対象画像のサイズごとに、適用するテクスチャ検出アルゴリズムをあらかじめ規定しておくため、画像サイズが大きい場合には、数多くの画素を間引くことになり、テクスチャ検出アルゴリズムとして検出精度の高いアルゴリズムを採用することができる。一方、対象画像のサイズが小さい場合には、ほとんど画素を間引く必要がないため、シンプルなテクスチャ検出アルゴリズムで、すぐに視差計算の実効処理に移行することができる。
【0105】
また、実施例1では、光学ズームや電子ズームなしで広い画角範囲に対応する視差算出を利用可能にするとともに、その視差計算の処理速度、コスト削減、距離検出精度を考慮したステレオカメラを利用したオートフォーカス制御を可能とする。
【0106】
なお、分割部7、視差算出部10及び距離算出部12は、測距装置13内の例えば演算回路又はプロセッサ及び一時保存メモリにより実現され、並列制御部11は例えばプロセッサにより実現されうる。
【0107】
[実施例2]
次に、実施例2における撮像装置について説明する。実施例2における撮像装置は、実施例1における測距装置13を内蔵する撮像装置である。
【0108】
<構成>
図13は、撮像装置50の構成の一例を示すブロック図である。図13に示す撮像装置50は、例えばデジタルカメラである。撮像装置50は、電源51、被写体52を撮像する撮影光学系53、撮像手段54、プロセッサ55、測距装置13、制御手段57、オートフォーカス手段58、フォーカス駆動手段59を有する。
【0109】
撮像手段54は、撮影光学系53により撮像された被写体像を像形成信号に変換してプロセッサ55とオートフォーカス手段58とに向けて出力する。
【0110】
プロセッサ55は、撮像手段54からの像形成信号に所定の処理を行って、モニターに出力する。測距装置13は、実施例1で説明したように、被写体52までの距離を三角測距の原理に基づき測定する。
【0111】
制御手段57は、測距装置13の測距結果に基づいて後述する制御を行う。オートフォーカス手段58は、撮像手段54の像形成信号に基づき後述する制御を行う。
【0112】
フォーカス駆動手段59は、撮影光学系53の一部を光軸方向に移動させて撮像手段54に形成される被写体像のピント状態を変化させる。
【0113】
オートフォーカス手段58は、フォーカス駆動手段59を制御してピント状態を順次変化させつつ、ピント状態ごとに得られた像形成信号を逐次評価し、この評価値に基づいて所定のピント状態を得る。
【0114】
制御手段57は、測距装置13によって得られた距離に対応するピント状態の近傍のピント範囲で評価を行うようにオートフォーカス手段58を制御する。
【0115】
測距装置13は、実施例1で説明したように、視差算出の対象となる対象画像のサイズなどに応じて、テクスチャ検出アルゴリズムを決定する。測距装置13は、決定したテクスチャ検出アルゴリズムに基づいて画素を間引き、視差算出画素に基づいて視差データを算出し、視差データに基づき距離を算出する。測距装置13は、このアルゴリズムの決定、及び間引き処理を含むテクスチャ検出処理、視差算出処理をパイプライン処理で実行する。また、測距装置13は、小画像読出処理、幾何補正処理、信頼度算出処理をテクスチャ検出処理、視差算出処理に加えて、これらの処理をパイプライン処理で実行するようにしてもよい。
【0116】
オートフォーカス手段58は、撮影光学系53のフォーカスレンズ群を可動させてズーム全域を走査範囲として移動させつつ、各フォーカスレンズ群の各レンズ位置における被写体像のコントラストを算出し、全域走査後に最大のコントラストが得られる位置を最適ピント状態の位置すなわち最適焦点位置(合焦位置)として決定している。
【0117】
この方法は、コントラストAF方式又は山登りAF方式と呼ばれ、実際に被写体像を見ながらフォーカス合わせを行うため、高精度で正確なフォーカス検出を行うことができる。
【0118】
しかし、その反面、全域走査後に最適ピント位置(合焦位置)を求めるため、合焦するまでに時間がかかるという欠点がある。とりわけ、高倍率のズーム機能を持つ撮像装置50においてはフォーカスが合焦するまでに時間がかかる。
【0119】
そこで、制御手段57は、測距装置13によって得られた被写体52までの距離に対応するフォーカスレンズ群のレンズ位置Aを算出し、そのレンズ位置を中心として±ΔBの走査範囲(A−ΔB〜A+ΔB)を近傍のピント範囲に設定し、この近傍のピント範囲を走査範囲とするように、オートフォーカス手段58を制御する。すなわち、制御手段57は、距離に対応するレンズ位置を含む近傍が合焦検出の走査範囲となるようにオートフォーカス手段58を制御する。
【0120】
これにより、フォーカスが合うまでの時間が短縮され、かつ正確なフォーカス合わせも実現する。もちろん、測距装置13の測距情報(距離)だけでフォーカスレンズ群を可動させ、コントラストAFを行わずにフォーカス合わせを行っても良い。
【0121】
また、実施例2に係る測距装置を用いた撮像装置では、小型でかつ低コスト化を図ることができ、しかも、高速で高精度にフォーカス合わせを行うことができることになり、シャッターチャンスを逃すことなく画像を取り込むことができる。
【0122】
本発明の測距装置13は、車載用測距装置やビデオカメラの測距装置、携帯機器搭載用カメラや3次元デジタルカメラや監視用カメラ等の用途に応用することが可能である。
【0123】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、実施例以外にも種々の変形・変更が可能である。
【符号の説明】
【0124】
1、2 撮像部
4 画像取込部
5 メモリ
6 ステレオ処理部
7 分割部
8、9 バッファ
10 視差算出部
11 距離算出部
13 測距装置
21、22 幾何補正部
23、24、26、28 バッファ
25 テクスチャ検出部
27 視差データ算出部
29 信頼度算出部
31 決定部
32 切替部
33 第1検出処理部
34 第2検出処理部
35 選択部
36 検出処理部
50 撮像装置
55 プロセッサ
57 制御手段
58 オートフォーカス手段
59 フォーカス駆動手段
【先行技術文献】
【特許文献】
【0125】
【特許文献1】特開平7−225127号公報
【特許文献2】特開2009−14444号公報
【特許文献3】特開平11−14346号公報
【特許文献4】特開2006−322795号公報

【特許請求の範囲】
【請求項1】
対象物までの距離を測定する測距装置であって、
2つの撮像手段と、
前記2つの撮像手段により撮像されたそれぞれの画像を複数の小画像に分割する分割手段と、
前記2つの撮像手段のうち一方の撮像手段により撮像された画像の小画像に対し、視差算出画素を選択するためのテクスチャ検出処理、選択された視差算出画素と、他の撮像手段により撮像された画像のうち、前記選択された視差算出画素に対応する画素とを用いて視差データを算出する視差算出処理を少なくとも行う視差算出手段と、
前記視差算出手段による前記テクスチャ検出処理、前記視差算出処理を前記小画像毎に並列して処理するよう制御する制御手段と、
を備える測距装置。
【請求項2】
前記視差算出手段は、
前記それぞれの画像の小画像に対し、幾何補正を行う幾何補正処理と、前記視差データの信頼度を算出する信頼度算出処理とを有し、前記テクスチャ検出処理は幾何補正された小画像に対して行われ、
前記制御手段は、
前記幾何補正処理、前記テクスチャ検出処理、前記視差算出処理、及び前記信頼度算出処理を前記小画像毎に並列して処理するよう制御する請求項1記載の測距装置。
【請求項3】
前記テクスチャ検出処理は、
前記画像のうち、視差算出の対象画像のサイズに応じて、視差算出画素を選択するために、精度の高いテクスチャ特性を検出する第1検出処理、又は簡易的なテクスチャ特性を検出する第2検出処理のいずれか1つを決定し、決定された処理の検出結果に基づき、前記対象画像から視差算出画素を選択する請求項1又は2記載の測距装置。
【請求項4】
前記信頼度算出処理は、
前記テクスチャ検出処理で、前記第2検出処理が決定された場合、前記選択された視差算出画素に対して前記第1検出処理を行って、前記第1検出処理の結果に基づいて前記信頼度を算出する請求項3記載の測距装置。
【請求項5】
前記視差算出手段に含まれる各処理に対して設けられる、処理されたデータを保持する各バッファは、メモリサイズがそれぞれ異なる請求項1乃至4いずれか一項に記載の測距装置。
【請求項6】
前記制御手段は、
前記視差算出手段に含まれる各処理の処理開始タイミングを同じにするように制御する請求項1乃至5いずれか一項に記載の測距装置。
【請求項7】
2つの撮像手段と、
前記2つの撮像手段により撮像されたそれぞれの画像を複数の小画像に分割する分割手段と、
前記2つの撮像手段のうち一方の撮像手段により撮像された画像の小画像に対し、視差算出画素を選択するためのテクスチャ検出処理、選択された視差算出画素と、他の撮像手段により撮像された画像のうち、前記選択された視差算出画素に対応する画素とを用いて視差データを算出する視差算出処理を少なくとも行う視差算出手段と、
前記視差算出手段による前記テクスチャ検出処理、前記視差算出処理を前記小画像毎に並列して処理するよう制御する並列制御手段と、
前記視差算出手段により算出された視差データに基づく距離を算出する距離算出手段と、
前記距離算出手段により算出された距離に基づきオートフォーカスを制御するフォーカス制御手段と、
を備える撮像装置。

【図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

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−18014(P2012−18014A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−154256(P2010−154256)
【出願日】平成22年7月6日(2010.7.6)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】