説明

距離画像生成装置、距離画像生成方法及びプログラム

【課題】総処理時間の短縮を図りつつ、サブピクセルレベルの演算において高精度の演算結果を得て信頼性の高い距離画像を生成することのできる距離画像生成装置、距離画像生成方法及びプログラムを提供する。
【解決手段】第1画像情報と比較対象となる第2画像情報とを取得する画像取得手段と、SAD演算法により基準画像と参照画像とを照合して、ピクセルレベルにおける視差値の算出を行う第1演算部15と、SAD演算法よりも精度のPOC演算法により基準画像と参照画像とを照合して、サブピクセルレベルにおける視差値の算出を行う第2演算部16と、第1演算部15による視差値の算出結果に基づいて、第2演算部16により演算を行う対象領域を設定する対象領域設定部14と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は距離画像生成装置、距離画像生成方法及びプログラムに係り、特に、同一対象物について複数の画像を撮影することにより距離画像を生成する距離画像生成装置、距離画像生成方法及びプログラムに関する。
【背景技術】
【0002】
従来、複数の撮像手段により同一対象物(被写体)を異なる位置から撮像して複数の画像情報を得て、SAD(Sum of Absolute Difference)演算法、SSD(Sum of Squared Difference)演算法等による相関演算を行うことによりこの画像情報の相関度を算出し、相関度に基づいて同一対象物に対する視差値を求め、視差値から対象物の位置(距離値)を求めて距離画像を生成する装置が知られている。
【0003】
また、このような装置において、まず、ピクセルレベル(画素レベル)において複数の画像について小領域毎にシティブロック距離を計算して互いの相関を求め、対象物までの距離に応じて生じる画素のズレ(=視差)を距離データとして画像化した距離画像を生成した上で、基準画像及び比較画像のデータを用いてステレオマッチングを行い、1画素以下の視差(サブピクセル成分)を求めて、距離画像から得られる画素を単位とする視差を1画素以下の分解能で補間する技術が知られている(例えば、特許文献1参照)。
【特許文献1】特開2000−283753号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載された技術は、SAD演算法等のブロックを使った相関演算法を用いて視差を算出するものであるが、SAD演算法等の演算手法は、高速な演算処理が可能である半面、サブピクセルレベルの演算においては高精度に視差値を算出することは難しく、正確な距離画像を得ることができない。
SAD演算法等のブロックを使った相関演算法によってサブピクセルレベルの演算処理を行う場合には、特許文献1にも開示されているように、ブロック間の相関度(シティブロック距離)が、相関演算によって求められた極小点(対応点)を中心に対称になるという仮定(直線近似)のもとに演算が行われている。このため、このような仮定が当てはまらない画素においては誤った結果が得られてしまうおそれがある。
このように、SAD演算法等のブロックを使った相関演算法ではサブピクセルレベルでの処理において高精度の結果を得ることは困難であり、正確な距離画像を生成することができないとの問題があった。
【0005】
そこで、本発明は以上のような課題を解決するためになされたものであり、総処理時間の短縮を図りつつ、サブピクセルレベルの演算において高精度の演算結果を得て信頼性の高い距離画像を生成することのできる距離画像生成装置、距離画像生成方法及びプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の距離画像生成装置は、
第1画像情報と比較対象となる第2画像情報とを取得する画像取得手段と、
第1の演算手法により前記第1画像情報と前記第2画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第1の演算手段と、
前記第1の演算手法よりも精度の高い第2の演算手法により前記第1画像情報と前記第2画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第2の演算手段と、
前記第1の演算手段による視差値の算出結果に基づいて、第2の演算手段により演算を行う対象領域を設定する対象領域設定手段と、
を備えていることを特徴としている。
【0007】
請求項2に記載の発明は、請求項1に記載の距離画像生成装置であって、
前記第1の演算手段により行われる第1の演算手法は、SAD演算法、SSD演算法、NCC演算法のうちのいずれかであることを特徴としている。
【0008】
請求項3に記載の発明は、請求項1又は請求項2に記載の距離画像生成装置であって、
前記第2の演算手段により行われる第2の演算手法は、POC演算法であることを特徴としている。
【0009】
請求項4に記載の距離画像生成方法は、
第1画像情報と比較対象となる第2画像情報とを取得する画像取得工程と、
第1の演算手法により前記第1画像情報と前記第2画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第1の演算工程と、
前記第1の演算手法よりも精度の高い第2の演算手法により前記第1画像情報と前記第2画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第2の演算工程と、
前記第1の演算工程による視差値の算出結果に基づいて、第2の演算工程により演算を行う対象領域を設定する対象領域設定工程と、
を備えていることを特徴としている。
【0010】
請求項5に記載の発明は、請求項4に記載の距離画像生成方法であって、
前記第1の演算工程により行われる第1の演算手法は、SAD演算法、SSD演算法、NCC演算法のうちのいずれかであることを特徴とする。
【0011】
請求項6に記載の発明は、請求項4又は請求項5に記載の距離画像生成方法であって、
前記第2の演算工程により行われる第2の演算手法は、POC演算法であることを特徴とする。
【0012】
請求項7に記載の発明は、コンピュータ読取可能なプログラムであって、
第1の演算手法により第1画像情報と比較対象となる第2画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第1の演算機能と、
前記第1の演算手法よりも精度の高い第2の演算手法により前記第1画像情報と前記第2画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第2の演算機能と、
前記第1の演算機能による視差値の算出結果に基づいて、第2の演算機能により演算を行う対象領域を設定する対象領域設定機能と、
をコンピュータに実現させることを特徴とする。
【0013】
請求項8に記載の発明は、請求項7に記載のプログラムであって、
前記第1の演算手法は、SAD演算法、SSD演算法、NCC演算法のうちのいずれかであることを特徴とする。
【0014】
請求項9に記載の発明は、請求項7又は請求項8に記載のプログラムであって、
前記第2の演算手法は、POC演算法であることを特徴とする。
【発明の効果】
【0015】
請求項1、請求項4又は請求項7に記載の発明によれば、ピクセルレベル(画素レベル)における視差値の算出結果に基づいて、サブピクセルレベル(1画素以下レベル)における視差値の算出を行う対象領域を設定するので、サブピクセルレベル(1画素以下レベル)における視差値の算出を行う範囲を絞り込むことができ、効率よく演算処理を行うことができる。
【0016】
また、サブピクセルレベル(1画素以下レベル)における視差値の算出は、ピクセルレベル(画素レベル)における視差値の算出を行う第1の演算手法よりも精度の高い第2の演算手法によって行われるので、演算処理を効率的に行って、相関演算の総処理時間の短縮を図るとともに、高精度な処理を行うことができるとの効果を奏する。
【0017】
請求項2、請求項5又は請求項8に記載の発明によれば、高速で処理を行うことのできるSAD演算法、SSD演算法、NCC演算法のうちのいずれかによりピクセルレベル(画素レベル)における視差値の算出を行うので、対応点探索を効率的に行うことができ、相関演算の総処理時間の短縮を図ることができるとの効果を奏する。
【0018】
請求項3、請求項6又は請求項9に記載の発明によれば、高精度、かつ、外乱に強くロバストな演算手法であるPOC演算法によりサブピクセルレベル(1画素以下レベル)における視差値の算出を行うので、信頼性の高い高精度の演算結果を得ることができ、正確な距離画像を生成することができるとの効果を奏する。
【発明を実施するための最良の形態】
【0019】
以下、図1から図11を参照しつつ、本発明に係る距離画像生成装置の一実施形態について説明する。ただし、発明の範囲を図示例に限定するものではない。
【0020】
本実施形態に係る距離画像生成装置1は、2つの画像を照合して位置ずれ量を算出し、算出した位置ずれ量に基づいて対象物までの距離情報を得て距離画像を生成するものである。
【0021】
図1に示すように、距離画像生成装置1は、被写体(対象物)を撮像する2つの撮像装置2a,2bを備えている。
撮像装置2a,2bは、それぞれ撮像手段として撮像素子(光電変換素子)3とこの撮像素子3の結像面(図示せず)に被写体光像を結像させるレンズ4とを備えている。撮像素子3は、例えばCCD(Charge Coupled Device)、CMOS(Complementary Metal-Oxide Semiconductor)等のイメージセンサであり、撮像素子3は、レンズ4を透過した入射光を電気信号に光電変換して取り込むことにより、被写体光像をアナログ画像信号に変換するようになっている。また、距離画像生成装置1は、撮像素子3によって得られたアナログ画像信号をデジタル画像信号に変換するA/D変換部5を備えている。
【0022】
2つの撮像装置2a,2bは、同一対象物を異なる視点から撮像して画像情報としての画像データを取得するものであり、一方が基準となる基準画像に基づく基準画像データ(第1画像情報)を取得し、他方が比較対象となる画像(以下、「参照画像」とする)に基づく参照画像データ(第2画像情報)を取得する。このように、2つの撮像装置2a,2bは、基準画像及び参照画像の画像データを取得する画像取得手段として機能する。
【0023】
また、距離画像生成装置1は、各撮像装置2a,2bによって取得された画像データについて、画像処理を行い、視差値を算出して距離画像を生成する画像処理部10を備えている。
【0024】
画像処理部10は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)等の処理装置と、システムプログラム、後述する距離画像生成処理を行うための距離画像生成処理プログラム等、各種の制御プログラム等を格納するROM(Read Only Memory)と、各種データを一時記憶するRAM(Random Access Memory)と(いずれも図示せず)、等により構成されるコンピュータであり、画像のレンズ歪みを補正するレンズ歪み補正部11、各撮像装置2a,2bによって取得された画像の平行化処理を行う画像平行化処理部12、対応点探索を行う対象領域を設定する対象領域設定部14、ピクセルレベルでの視差算出処理を行う第1演算部15、サブピクセルレベルでの視差算出処理を行う第2演算部16、距離画像を生成する距離画像生成部17等を備えている。
【0025】
レンズ歪み補正部11は、レンズ4を用いて結像させる場合に発生する歪み(レンズ歪み)を補正するものである。レンズ4には歪みがあるため、正しく画像を生成することができず、特に端部において画像が歪んでしまう。レンズ歪み補正部11は、このようなレンズ歪みの補正を行うものであり、例えば、予めレンズ歪み補正用のパラメータを作成、記憶しておき、これに基づいて画像を補正する処理等を行う。なお、レンズ歪み補正部11による補正の手法はここに例示したものに限定されず、各種公知の手段を用いることができる。
【0026】
画像平行化処理部12は、各撮像装置2a,2bによって取得された2つの画像について、あたかも平行移動したカメラから撮影したかのように変換してエピ極線が平行になるようにする画像の平行化処理を行うものである。画像の平行化処理は、2つの撮像装置2a,2bを厳密に正しく設置することは困難であるため、2つの撮像装置2a,2bの設置位置ずれ等により生じる画像の歪みを補正するために行われる。
【0027】
画像について平行化処理を施すことにより、2つの画像は、縦方向(図2におけるY軸方向)においてずれのないものとなり、後述する相関演算処理を行う場合に、横方向(図2におけるX軸方向)のずれのみを検出すれば足りることとなる。なお、画像平行化処理部12による画像平行化処理の手法はここに例示したものに限定されず、各種公知の手段を用いることができる。
【0028】
対象領域設定部14は、第2演算部16による視差算出処理における演算の対象領域を設定するものである。
本実施形態においては、後述するように、第1演算部15によるピクセルレベルでの視差算出処理が終了すると、その算出結果が対象領域設定部14に出力されるようになっており、対象領域設定部14は、このピクセルレベルにおける算出結果に基づいて第2演算部16によるサブピクセルレベルでの視差算出処理における演算の対象領域を設定する。
【0029】
すなわち、第2演算部16による視差算出処理の際には、対象領域設定部14は、第1演算部15によるピクセルレベルでの視差算出処理で得られた対応点(候補座標(x0,y0))を中心としてその周辺の領域を、第1照合部6による視差算出処理の対象領域として設定する。本実施形態においては、例えば、対象領域設定部14は、(x0,y0)を中心として32画素×32画素分の領域を抽出し対象領域として設定するようになっている。なお、対象領域設定部14により設定される対象領域の範囲はここに例示したものに限定されない。
【0030】
第1演算部15は、基準画像データと参照画像データのそれぞれから抽出、設定された対象領域について、SAD(Sum of Absolute Difference)演算法(第1の演算手法)により相関度を求めてピクセルレベル(画素レベル)における視差値を算出する視差算出処理を行う第1の演算手段である。
【0031】
以下、第1演算部15による視差算出処理について具体的に説明する。
第1演算部15は、画像取得手段2によって取得された画像データのうち、いずれか一方を基準画像とし、他方を参照画像とした場合に、基準画像と参照画像との相関度をSAD(Sum of Absolute Differences:絶対誤差合計)演算法により相関演算して対応点を探索し、参照画像中、基準画像の対象領域と相関度の最も高かった領域について、基準画像と参照画像とのずれ量(視差値)を求める視差算出処理を行う。
【0032】
基準画像と参照画像との相関演算について図2を参照しつつ説明する。図2(a)は基準画像を表し、図2(b)は参照画像を表している。図2において、各マスは1画素を表しており、基準画像及び参照画像の全画面は、ともに、X軸方向(横方向)が26画素、Y軸方向(縦方向)が20画素で構成されている場合を例としている。
【0033】
相関演算を行う場合には、第1演算部15は、基準画像を所定の単位面積に分割し、基準画像中のある領域を視差値を算出する位置(対象領域)として設定する。対象領域の設定は、例えば図2(a)の左上(X=1,Y=20)を基点として所定の範囲の領域が順次設定される。
【0034】
すなわち、ある領域(例えばX=1〜5,Y=16〜20の25画素)が対象領域として設定され、当該対象領域についての相関演算が完了すると、例えばX軸方向(画像の水平方向)に1画素ずつ順次ずらして次の対象領域(例えばX=2〜6,Y=16〜20の25画素)が設定され、相関演算が行われる。X軸方向の全画素(図2(a)において26画素)についてすべての相関演算が完了すると、Y軸方向に1画素ずらして次の対象領域(例えばX=1〜5,Y=15〜19の25画素)が設定され、相関演算が行われる。当該対象領域について相関演算が完了すると、さらに、対象領域をX軸方向に1画素ずつ順次ずらして次の対象領域(例えばX=2〜6,Y=15〜19の25画素)が設定され、相関演算が行われる。
このように、画面の左上から右下にかけて、X軸方向、Y軸方向それぞれ1画素ずつずらして順次対象領域が設定され、全画面の全画素について相関演算が完了するまで、各対象領域についての相関演算が繰り返される。なお、相関演算を行う順序(対象領域の設定の仕方)は、ここに例示したものに限定されない。
【0035】
次に、相関演算の具体的手法について説明する。
例えば、図2(a)に示すように、基準画像中の破線で囲んだ範囲(X=9〜13,Y=9〜13の25画素)が対象領域として設定され、相関演算が行われる場合、第1演算部15は、参照画像中、対象領域と同じY軸範囲(Y=9〜13)についてX軸方向(画像の水平方向)に順次比較対照領域を設定し、順次相関演算を行うことにより、対象領域と各比較対照領域との相関度を算出する。これにより参照画像中、対象領域と最も相関度の高い領域、対応点を探索する。
【0036】
すなわち、第1演算部15は、まず、対象領域を構成する各画素(図2(a)中のX=9,Y=13、X=10,Y=13・・・の全25画素)の画像データ値を算出する。また、参照画像の中で対象領域に対照させるものとして設定した比較対照領域内の各画素(例えば、図2(b)中の破線で囲んだ範囲(X=9,Y=13、X=10,Y=13・・・の全25画素))の画像データ値を算出する。そして、対象領域を構成する各画素の画像データ値から、比較対照領域を構成する各画素の画像データ値を減算して、その絶対値を算出する。
例えば、対象領域内のある画素(図2(a)中のX=9,Y=10)の画像データ値が100であり、これに対応する比較対照領域内の画素が図2(b)におけるX=9,Y=10の画像データ値が50である場合には、100−50=50となり、絶対値50となる。
また例えば、対象領域内のある画素(図2(a)中のX=13,Y=10)の画像データ値が50であり、これに対応する比較対照領域内の画素が図2(b)におけるX=13,Y=10の画像データ値が90である場合には、50−90=−40となり、絶対値40となる。
このような画像データ値の減算及び絶対値の算出を対象領域及び比較対照領域を構成する25画素全てについて行う。なお、この演算は、各画素について順次行われてもよいし、当該領域内の全画素について同時進行的に行われてもよい。
【0037】
さらに、第1演算部15は、算出された結果(絶対値)を全て加算する。そして加算後の値が小さければ小さいほど相関度が高く、同じ画像である場合には、限りなく0に近づく。例えば、図2の場合、図2(a)中の破線で囲んだ範囲(X=9〜13,Y=9〜13の25画素)と、図2(b)中の一点鎖線で囲んだ範囲(X=12〜16,Y=9〜13の25画素)とは同じ画像であり、前者を構成する各画素の画像データ値から後者を構成する各画素のうち対応するものの画像データ値をそれぞれ減算して絶対値を求め、算出結果を加算すると、限りなく0に近づく。
【0038】
このようにして、参照画像中、基準画像の対象領域と相関度の最も高い領域(相関演算により相関度の極値が得られた領域)を検索すると、第1演算部15は、当該相関度の最も高い領域が、基準画像の対象領域とどの程度ずれているかのずれ量(視差値)を算出し、図3に示すように、相関度の最も高い領域がどの視差値に対応するかを求める。
すなわち、図2の例によれば、対象領域(図2(a)中のX=9〜13,Y=9〜13の25画素)と、相関度の最も高い領域である図2(b)中の一点鎖線で囲んだ範囲(X=12〜16,Y=9〜13の25画素)とは、X軸方向に3画素ずれている。したがって、この場合の視差値は3となる。
第1演算部15は、算出結果をピクセルレベル(画素レベル)における視差値として対象領域設定部14に出力するようになっている。
【0039】
なお、視差値と距離値との関係は、距離値=定数/視差値であり、距離値は視差値の逆数に比例するとの関係にある。すなわち、視差値が小さくなるほど距離は遠くなり、視差値が大きくなるほど距離が近くなるという関係にある。このため、第1演算部15は、前記相関演算により視差値を求め、視差値の逆数を求めることにより、距離値を取得することができる。
【0040】
また、第2演算部16は、基準画像データと参照画像データのそれぞれから抽出、設定された対象領域について、POC(Phase-Only Correlation;位相限定相関)演算法(第2の演算手法)により、相関度を求めてサブピクセルレベル(1画素以下レベル)における視差値を算出する視差算出処理を行う第2の演算手段である。
第2演算部16は、POC演算法による視差算出処理を行う第1照合部6と、第1照合部6により得られた演算結果に基づいて非線形フィッティング処理を行う第2照合部7とを備えている。
【0041】
POC演算法は、基準画像データとこれと照合すべき参照画像データとをフーリエ変換で数学的に処理して、振幅(濃淡データ)と位相(像の輪郭データ)とに分解し、このうち位相情報のみを用いて、両画像の相関を求めるアルゴリズムであり、SAD演算法等の振幅情報を用いた相関演算法と異なって、外乱に強く、高精度な演算結果を得られるものである。
【0042】
以下、第2演算部16による視差算出処理について具体的に説明する。
第2演算部16の第1照合部6には、図4に示すように、窓関数部61a,61b、FFT(Fast Fourier Transform:高速フーリエ変換)部62a,62b、位相情報抽出部63a,63b、合成部64、IFFT(Inverse Fast Fourier Transform:逆高速フーリエ変換)部65、及び相関値演算部66が備えられている。
【0043】
窓関数部61a,61bは、基準画像データと参照画像データの対象領域に対応する信号に窓関数をかけるものである。窓関数の種類に特に制限はなく適宜変更可能である。ここで、基準画像データに基づく信号に対して窓関数をかけたものをf1、参照画像データに基づく信号に対して窓関数をかけたものをf2とする。窓関数部61a,61bは、窓関数をかけた信号f1、f2をそれぞれFFT部62a,62bに出力するようになっている。
【0044】
FFT部62a,62bは、信号f1、f2に対してフーリエ変換処理を施して位相情報抽出部63a,63bに出力するものである。詳しくは、FFT部62aは、信号f1に対して2次元離散的フーリエ変換を施し、基準画像に基づくフーリエ画像データF1を得る。また、FFT部62bは、信号f2に対して2次元離散的フーリエ変換を施して参照画像に基づくフーリエ画像データF2を得るようになっている。なお、フーリエ変換処理に特に制限は無く、2次元離散的フーリエ変換については、「コンピュータ画像処理入門、日本工業技術センター編、総研出版(株)発行、P44〜45」を参照した。
【0045】
位相情報抽出部63a,63bは、FFT部62a,62bから出力された信号に対して振幅成分を除去して位相情報を抽出するものである。つまり、位相情報抽出部63a,63bは、フーリエ変換された信号F1、F2に対して位相限定処理を行ない、フーリエ画像データF3,F4を得るものである。位相情報抽出部63a,63bは、得られたフーリエ画像データF3,F4を合成部64に出力する。
なお、位相情報抽出部63a,63bが位相情報のみを抽出する手法は特に限定されず、振幅を1として位相のみを抽出するものであってもよいし、log処理や√処理等によって振幅成分を除去することとしてもよい。
【0046】
合成部64は、フーリエ変換された信号F1、F2から位相情報のみを抽出して得られたフーリエ画像データF3,F4を合成し、合成フーリエ画像データF5(u,v)=F3(u,v)・F4(u,v)を得るものである。なお、式中「*」は複素共役を表し、(u,v)はフーリエ空間の座標を示す。合成部64は、得られた合成フーリエ画像データF5をIFFT部65に出力するようになっている。
【0047】
IFFT部65は、合成部64で得られた合成フーリエ画像データF5に対して逆フーリエ変換を施し合成逆フーリエ画像データf5を得るものである。IFFT部65は、合成逆フーリエ画像データf5を相関値演算部66に出力するようになっている。
【0048】
相関値演算部66は、合成逆フーリエ画像データf5より、各画像間の相関演算を行い、相関値(POC値)を得るものである。
図5に、POC演算法によって各画像間の相関演算を実施することにより得られる結果(相関強度画像データ)の例を示す。図5は、基準画像上及び参照画像上にN1×N2画素の探索領域及び比較対象領域を設定した場合の例であり、N1×N2画素の領域内で相関が高い箇所の相関値(POC値)が大きくなっている。このPOC値のピーク(図5においてJc)に対応する参照画像上の比較対象領域内の位置が、基準画像上の探索領域における中心点に対応した参照画像上の対応点(候補座標)に相当することとなる。
【0049】
以上のようなPOC演算法を用いた演算処理によれば、画像の振幅成分を除去し画像の位相成分のみで相関演算が行われるため、輝度変動やノイズの影響を抑制して参照画像上の対応点を精度良く探索できる。
【0050】
相関値演算部66は、演算結果(相関強度画像データ)を得ると、これを第2照合部7に出力する。
【0051】
第2照合部7は、第1照合部6によって得られた相関強度画像データに基づいてサブピクセルレベルの位置ずれ量を検出するものである。具体的には、第2照合部7は、相関強度画像のピークの現れる位置(相関強度画像データの中心位置:図5においてJc)を中心として5画素×5画素分の範囲の相関強度画像データを用いて非線形フィッティングを行う。
図6に示すように、第2照合部7には、窓関数部71と非線形フィッティング部72が備えられており、第2照合部7は、非線形フィッティング部72で検出される位置ずれ量が閾値以下となるまで位置ずれ量を検出するものである。
【0052】
窓関数部71は、相関強度画像データに対して窓関数をかけるものである。窓関数の種類に特に制限はないが、本実施形態においてはHanning窓を適用するものとする。窓関数部71は、相関強度画像データの中心位置を非線形フィッティング部72で検出された位置ずれ量に基づいて定めるようになっている。
【0053】
非線形フィッティング部72は、窓関数をかけた相関強度画像データに対してLevenberg-Merquardt法(非線形演算としての非線形最小二乗法)によりサブピクセルレベルの位置ずれ量を近似計算するものである。詳しくは、非線形フィッティング部72は5画素×5画素分の相関強度画像データ(図7参照)にピークモデル(図8参照)をあてはめ、非線形演算としての非線形最小二乗法により位置ずれ量を求めるようになっている。非線形演算としての制限はなく、複雑な条件分岐処理を施すもの等に適宜変更可能である。
また、非線形フィッティング部72は、検出した位置ずれ量が所定の閾値以下か否かを判断し、閾値より大きい場合は窓関数部71に検出結果を出力するようになっている。また、非線形フィッティング部72は、検出した位置ずれ量が所定の閾値以下の場合、それ以前の検出結果全てを加算した値をサブピクセルレベルの位置ずれ量として距離画像生成部17に出力するようになっている。ここで、所定の閾値とはユーザが任意に設定できる値であり、精密な照合を要求するほど閾値は小さくなる。
【0054】
距離画像生成部17は、第2演算部16によるサブピクセルレベルでの視差算出処理が終了すると、当該視差算出処理における基準画像データと参照画像データとの位置ずれ量(視差値)の演算結果に基づいて距離画像データを生成する。
【0055】
また、距離画像生成装置1には、距離画像生成部17によって生成された距離画像を出力する出力部20が設けられている。出力部20は、例えば、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)等のモニタ(表示手段)であり、距離画像を表示させるようになっている。なお、出力部20は、モニタに限定されず、例えば、プリンタ等の外部機器(出力手段)と接続するための通信部であり、生成された距離画像を外部機器に送信して出力可能に構成されていてもよい。
【0056】
次に、図9から図11を参照して本実施形態における距離画像生成装置1によって行われる距離画像生成方法について説明する。なお、距離画像生成処理は、コンピュータである画像処理部10と前記距離画像生成処理プログラムとの協働により実現されるものである。
【0057】
図9に示すように、距離画像生成装置1によって距離画像を生成するための相関演算を行う場合には、まず、撮像装置2a,2bは、2つの撮像手段2a,2bにより対象物を撮像し、基準画像、参照画像の画像データを取得する(ステップS1)。
【0058】
撮像手段2a,2bにより取得された基準画像、参照画像の画像データは、A/D変換部5によりA/D変換され、画像処理部10に送られる。基準画像、参照画像の画像データが画像処理部10に送られると、各画像データについて、レンズ歪み補正部11による歪み補正及び画像平行化処理部12による画像平行化処理が施される(ステップS2)。
【0059】
次に、歪み補正処理及び画像平行化処理の施された基準画像、参照画像の画像データについて、第1演算部15によりピクセルレベルの視差値を算出する演算処理(第1の演算処理)が行われ(ステップS3)、その結果が対象領域設定部14に出力される。
そして、対象領域設定部14により、ピクセルレベルの視差値の算出結果に基づいて演算を行う対象領域が設定される(ステップS4)。さらに、この設定された対象領域について第2演算部16によりサブピクセルレベルの視差値を算出する演算処理(第2の演算処理)が行われる(ステップS5)。
【0060】
ここで、図10を参照しつつ、第1演算部15によりピクセルレベルの視差値を算出する演算処理(図9のステップS3)について、具体的に説明する。なお、以下においては、画像の全画面を測距の対象とし(すなわち、全画素を測距点とし)、1つの対象領域について、X軸方向のすべての画素について対応点探索を行う場合を例として説明する。
【0061】
図10に示すように、第1演算部15は、基準画像内に測距点を設定し(ステップS11)、この測距点を中心とした所定の対象領域が設定される(ステップS12)。
対象領域が設定されると、第1演算部15は参照画像内に対象領域と同じサイズの比較対象領域を設定し(ステップS13)、SAD演算法により相関演算を行うことにより、対象領域と比較対象領域との相関度を算出する(ステップS14)。
【0062】
第1演算部15は当該対象領域について、比較対象画像のX軸方向のすべての画素について視差算出処理が終了したかを判断する(ステップS15)。終了していない場合(ステップS15;NO)には、第1演算部15は、参照画像内の比較対象領域をX軸方向に1画素ずらして(ステップS16)、ステップ14に戻り、視差算出処理を繰り返す。X軸方向のすべての画素について視差算出処理が終了した場合(ステップS15;YES)には、当該視差算出処理において最も相関度の高い画素を検索して、視差値を算出する(ステップS17)。
【0063】
第1演算部15は当該対象領域について視差値を算出すると、さらに、基準画像内の全測距点(測距を行うべきすべての画素)についての視差算出処理が終了したかを判断する(ステップS18)。本実施形態では、画像の全画素について視差算出処理を行うので、全画素について処理が終了したかを判断する。
そして、画像中に、測距を行うべき画素であって未処理のものがある場合(ステップS18;NO)には、当該未処理の画素を新たな測距点として設定し(ステップS19)、この測距点を中心とした対象領域を設定して(ステップS12)以下ステップS13からステップS17の処理を繰り返す。他方、画像中に未処理の測距点がない場合(ステップS18;YES)には、ピクセルレベルの視差算出処理(第1の演算処理)を終了する。
【0064】
次に、図11を参照しつつ、第2演算部16によりサブピクセルレベルの視差値を算出する演算処理(図9のステップS5)について、具体的に説明する。
【0065】
第1演算部15によるピクセルレベルの視差値の算出結果に基づいて対象領域設定部14により対象領域が設定されると(図9のステップS4参照)、まず、窓関数部61a,61bが画像データに基づく信号に対して窓関数を掛け、FFT部62a,62bが、中心画素を中心とした32×32画素のブロックサイズの2次元フーリエ変換処理を行う。
すなわち、図11に示すように、窓関数部61aが基準画像に基づく信号f1を作成し、この信号f1について62aがフーリエ変換処理を行って信号f1を信号F1に変換する(ステップS21)。また、窓関数部61bが基準画像に基づく信号f2を作成し、この信号f2について62bがフーリエ変換処理を行って信号f2を信号F2に変換する。(ステップS22)。
【0066】
その後、位相情報抽出部63a,63bは、信号F1,F2に基づき、その振幅成分を除去して信号F1から位相情報F3を、信号F2から位相情報F4をそれぞれ抽出する(ステップS23)。さらに、位相情報のみの信号F3,F4は、合成部64によって合成され、合成信号F5が生成される(ステップS24)。合成信号F5は合成部64からIFFT部65に出力され、IFFT部65はこの合成信号F5に対して、逆フーリエ変換処理を施しf5に変換する(ステップS25)。その後、相関値演算部76は、f5に基づいて相関値maxx,yf5(u,v)を算出し(ステップS26)、演算結果(相関強度画像データ)を第2照合部7に出力する(ステップS27)
【0067】
第2照合部7では、サブピクセルレベルの位置ずれ量を検出するようになっている。詳しくは、まず、窓関数部71が第1照合部6から出力された相関強度画像データにHanning窓をかける。その後、非線形フィッティング部72は、窓関数部71からの信号(5画素×5画素分の相関強度画像データ(図7参照))に対してピークモデル(図8参照)をあてはめ、Levenberg-Merquardt法(非線形演算としての非線形最小二乗法)によりずれ量を近似計算する(ステップS28:非線形フィッティング処理)。非線形フィッティング部72は、近似計算の結果が所定の閾値以下か否かを判断し(ステップS29)、閾値より大きい場合(ステップS29;NO)は、窓関数部71に検出結果を出力する(ステップS30)。そして再度非線形フィッティング処理(ステップS28)が行われる。また、非線形フィッティング部72は、検出結果が所定の閾値以下の場合(ステップS29;YES)には、それ以前の検出結果を全て加算してサブピクセルレベルの位置ずれ量として距離画像生成部17に出力する(ステップS31)。これにより、第2演算部16によるサブピクセルレベルの視差算出処理が終了する。
【0068】
図9に戻って、第2演算部16による視差算出処理が終了し、第2照合部7による演算結果がサブピクセルレベルの演算結果として距離画像生成部17に出力されると(図11のステップS31)、距離画像生成部17は、この演算結果に基づいて距離画像を生成する(ステップS6)。そして、距離画像生成部17によって生成された距離画像は、必要に応じて出力部20から出力される。
【0069】
以上のように、本実施形態によれば、ピクセルレベルの視差算出処理においては、高速で演算処理を行うことのできる第1演算部15により処理を行い、サブピクセルレベルの視差算出処理においては、第1演算部15による演算結果を用いて演算を行う対象領域を決定して、高精度の演算処理を行うことのできる第2演算部16による演算処理を行うので、視差算出処理を効率的に行って、相関演算の総処理時間の短縮と、高精度な距離画像の生成との両立を図ることができる。
【0070】
なお、本実施形態においては、2つの撮像手段2a,2bを備えて各撮像手段2a,2bにより同一対象物を撮像して基準画像データ(第1画像情報)と参照画像データ(第2画像情報)とを取得する構成としたが、撮像装置2a,2bの構成はこれに限定されない。撮像装置2a,2bは少なくとも1つの撮像手段を備えて構成されていればよく、1つの撮像手段により同一対象物を異なるタイミングで撮像して基準画像データと参照画像データとを取得するものでもよいし、2つ以上の撮像手段を備えて各撮像手段により同一対象物を撮像して基準画像データと参照画像データとを取得するものでもよい。
【0071】
また、本実施形態においては、距離画像生成装置1の構成要素として撮像装置2a,2bを備える場合について説明したが、画像取得部を距離画像生成装置1の外部に設けて、距離画像生成装置1に外部から基準画像データ(第1画像情報)と参照画像データ(第2画像情報)が入力され、この画像データに基づいて相関演算等の処理が行われるようにしてもよい。
【0072】
また、本実施形態においては、第1演算部15において、相関値に基づく候補座標の算出を行い、算出された候補座標を探索結果として対象領域設定部14に出力するように構成したが、対象領域設定部14に出力される探索結果はこれに限定されない。例えば、対象領域設定部14には、探索結果として第1演算部15から相関値を示す演算結果が出力され、対象領域設定部14が、この演算結果に基づいて、最も相関度の高かった点(候補座標)を算出し、この候補座標の周辺を対象領域として設定してもよい。
【0073】
また、本実施形態においては、画像の全画面を測距の対象とする(すなわち、全画素を測距点とする)場合を例として説明したが、ユーザの用途等により、例えば画像内の人物部分についてだけ測距を行いたい場合等であれば、測距を行いたい対象部分のみに測距点を設定して視差算出処理を行う等、視差算出処理を行う範囲を限定してもよい。
【0074】
また、本実施形態においては、1つの対象領域について、X軸方向のすべての画素について対応点探索を行う場合を例として説明したが、ユーザの用途等により一定の限定された距離値の範囲のみ距離を求めることができればよい場合もある。このような場合には、用途に応じた距離範囲に対応する視差値の範囲を演算範囲とし、比較対象領域をこの範囲で移動させて視差算出処理を行うようにしてもよい。
例えば、100m以上離れた距離にあるものの距離のみを求めれば足りる場合には、100m以上の距離値に対応する視差値の範囲で比較対象領域をこの範囲で移動させる。これにより、視差算出処理において、相関演算の処理時間を短縮することができる。
【0075】
また、本実施形態においては、基準画像を25画素ずつの単位面積に分割して対象領域を設定し、この対象領域ごとに相関演算を行う場合を例として説明したが、対象領域の範囲は、25画素ずつに限定されず、任意の範囲に設定することができる。
また、本実施形態においては、対象領域を25画素ずつの所定の領域とし、この領域ごとに相関演算を行うものとしたが、例えば1画素ごとに基準画像と参照画像の相関度を算出するようにしてもよい。
【0076】
また、本実施形態においては、第1の演算手段として、SAD演算法により距離値を求める第1演算部15を設けたが、第1の演算手段は高速に距離値を求める処理を行うことができるものであればよく、これに限定されない。例えば、第1の演算手段として、SSD(Sum of Squared Differences)演算法や、NCC(Normalized Cross-Correlation)演算法により距離値を求める演算部を設けてもよい。
【0077】
また、本実施形態においては、第2の演算手段として、POC演算法により対応点を探索する第2演算部16を設けたが、第2の演算手段は高精度に対応点の探索を行うことのできるものであればよく、POC演算法によるものに限定されない。
【0078】
また、本実施形態においては、画像処理部10が、CPU等とROM、RAM等のメモリで構成されるコンピュータである場合を例として説明したが、画像処理部10の全体又は一部を専用ハードウェアで構成してもよい。
すなわち、例えば第2演算部16は、位相限定相関処理を行なう専用のハードウェアで構成されていることが好ましい。専用のハードウェアとしては、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等が適用可能である。
【0079】
また、基準画像及び参照画像について解像度の異なる複数の階層画像からなる多重解像度画像を生成し、第1演算部15における演算において、低解像度の階層画像から高解像度の階層画像に向かって順次対応点の探索処理を繰り返すとともに、低解像度の階層画像について得られた探索結果を次階層における探索に反映させるようにしてもよい。このような手法をとることにより、より高速で高精度の演算処理を行うことができる。
【0080】
その他、本発明が上記実施の形態に限らず適宜変更可能であるのは勿論である。
【図面の簡単な説明】
【0081】
【図1】本実施形態に係る相関演算装置の全体構成を示すブロック図である。
【図2】図2(a)は、本実施形態における基準画像の例を示した図であり、図2(b)は、本実施形態における参照画像の例を示した図である。
【図3】相関度と視差値との関係を示す説明図である。
【図4】図1に示す第2演算部の構成を示すブロック図である。
【図5】第1照合部による演算処理によって得られる結果の例を示す説明図である。
【図6】第2照合部の構成を示すブロック図である。
【図7】相関強度画像データの一例を示す図である。
【図8】ピークモデルの一例を示す図である。
【図9】本実施形態における距離画像生成処理を表すフローチャートである。
【図10】図9に示す第1演算部による演算処理を表すフローチャートである。
【図11】図9に示す第2演算部による演算処理を表すフローチャートである。
【符号の説明】
【0082】
1 距離画像生成装置
2a,2b 撮像装置(画像取得手段)
6 第1照合部
7 第2照合部
10 画像処理部
11 レンズ歪み補正部
12 画像平行化処理部
14 対象領域設定部(対象領域設定手段)
15 第1演算部(第1の演算手段)
16 第2演算部(第2の演算手段)
17 距離画像生成部(距離画像生成手段)
61a,61b 窓関数部
62a,62b FFT部
63a,63b 位相情報抽出部
64 合成部
65 IFFT部
66 相関演算部

【特許請求の範囲】
【請求項1】
第1画像情報と比較対象となる第2画像情報とを取得する画像取得手段と、
第1の演算手法により前記第1画像情報と前記第2画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第1の演算手段と、
前記第1の演算手法よりも精度の高い第2の演算手法により前記第1画像情報と前記第2画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第2の演算手段と、
前記第1の演算手段による視差値の算出結果に基づいて、第2の演算手段により演算を行う対象領域を設定する対象領域設定手段と、
を備えていることを特徴とする距離画像生成装置。
【請求項2】
前記第1の演算手段により行われる第1の演算手法は、SAD演算法、SSD演算法、NCC演算法のうちのいずれかであることを特徴とする請求項1に記載の距離画像生成装置。
【請求項3】
前記第2の演算手段により行われる第2の演算手法は、POC演算法であることを特徴とする請求項1又は請求項2に記載の距離画像生成装置。
【請求項4】
第1画像情報と比較対象となる第2画像情報とを取得する画像取得工程と、
第1の演算手法により前記第1画像情報と前記第2画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第1の演算工程と、
前記第1の演算手法よりも精度の高い第2の演算手法により前記第1画像情報と前記第2画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第2の演算工程と、
前記第1の演算工程による視差値の算出結果に基づいて、第2の演算工程により演算を行う対象領域を設定する対象領域設定工程と、
を備えていることを特徴とする距離画像生成方法。
【請求項5】
前記第1の演算工程により行われる第1の演算手法は、SAD演算法、SSD演算法、NCC演算法のうちのいずれかであることを特徴とする請求項4に記載の距離画像生成方法。
【請求項6】
前記第2の演算工程により行われる第2の演算手法は、POC演算法であることを特徴とする請求項4又は請求項5に記載の距離画像生成方法。
【請求項7】
第1の演算手法により第1画像情報と比較対象となる第2画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第1の演算機能と、
前記第1の演算手法よりも精度の高い第2の演算手法により前記第1画像情報と前記第2画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第2の演算機能と、
前記第1の演算機能による視差値の算出結果に基づいて、第2の演算機能により演算を行う対象領域を設定する対象領域設定機能と、
をコンピュータに実現させることを特徴とするコンピュータ読取可能なプログラム。
【請求項8】
前記第1の演算手法は、SAD演算法、SSD演算法、NCC演算法のうちのいずれかであることを特徴とする請求項7に記載のコンピュータ読取可能なプログラム。
【請求項9】
前記第2の演算手法は、POC演算法であることを特徴とする請求項7又は請求項8に記載のコンピュータ読取可能なプログラム。

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


【公開番号】特開2008−216127(P2008−216127A)
【公開日】平成20年9月18日(2008.9.18)
【国際特許分類】
【出願番号】特願2007−55837(P2007−55837)
【出願日】平成19年3月6日(2007.3.6)
【出願人】(000001270)コニカミノルタホールディングス株式会社 (4,463)
【Fターム(参考)】