(57)【要約】【課題】総処理時間の短縮を図りつつ、サブピクセルレベルの演算において高精度の演算結果を得て信頼性の高い距離画像を生成することのできる距離画像生成装置、距離画像生成方法及びプログラムを提供する。【解決手段】第１画像情報と比較対象となる第２画像情報とを取得する画像取得手段と、ＳＡＤ演算法により基準画像と参照画像とを照合して、ピクセルレベルにおける視差値の算出を行う第１演算部１５と、ＳＡＤ演算法よりも精度のＰＯＣ演算法により基準画像と参照画像とを照合して、サブピクセルレベルにおける視差値の算出を行う第２演算部１６と、第１演算部１５による視差値の算出結果に基づいて、第２演算部１６により演算を行う対象領域を設定する対象領域設定部１４と、を備えている。【選択図】図１
2008216127.tif 000002
【特許請求の範囲】
【請求項１】
第１画像情報と比較対象となる第２画像情報とを取得する画像取得手段と、
第１の演算手法により前記第１画像情報と前記第２画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第１の演算手段と、
前記第１の演算手法よりも精度の高い第２の演算手法により前記第１画像情報と前記第２画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第２の演算手段と、
前記第１の演算手段による視差値の算出結果に基づいて、第２の演算手段により演算を行う対象領域を設定する対象領域設定手段と、
を備えていることを特徴とする距離画像生成装置。
【請求項２】
前記第１の演算手段により行われる第１の演算手法は、ＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかであることを特徴とする請求項１に記載の距離画像生成装置。
【請求項３】
前記第２の演算手段により行われる第２の演算手法は、ＰＯＣ演算法であることを特徴とする請求項１又は請求項２に記載の距離画像生成装置。
【請求項４】
第１画像情報と比較対象となる第２画像情報とを取得する画像取得工程と、
第１の演算手法により前記第１画像情報と前記第２画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第１の演算工程と、
前記第１の演算手法よりも精度の高い第２の演算手法により前記第１画像情報と前記第２画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第２の演算工程と、
前記第１の演算工程による視差値の算出結果に基づいて、第２の演算工程により演算を行う対象領域を設定する対象領域設定工程と、
を備えていることを特徴とする距離画像生成方法。
【請求項５】
前記第１の演算工程により行われる第１の演算手法は、ＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかであることを特徴とする請求項４に記載の距離画像生成方法。
【請求項６】
前記第２の演算工程により行われる第２の演算手法は、ＰＯＣ演算法であることを特徴とする請求項４又は請求項５に記載の距離画像生成方法。
【請求項７】
第１の演算手法により第１画像情報と比較対象となる第２画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第１の演算機能と、
前記第１の演算手法よりも精度の高い第２の演算手法により前記第１画像情報と前記第２画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第２の演算機能と、
前記第１の演算機能による視差値の算出結果に基づいて、第２の演算機能により演算を行う対象領域を設定する対象領域設定機能と、
をコンピュータに実現させることを特徴とするコンピュータ読取可能なプログラム。
【請求項８】
前記第１の演算手法は、ＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかであることを特徴とする請求項７に記載のコンピュータ読取可能なプログラム。
【請求項９】
前記第２の演算手法は、ＰＯＣ演算法であることを特徴とする請求項７又は請求項８に記載のコンピュータ読取可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は距離画像生成装置、距離画像生成方法及びプログラムに係り、特に、同一対象物について複数の画像を撮影することにより距離画像を生成する距離画像生成装置、距離画像生成方法及びプログラムに関する。
【背景技術】
【０００２】
従来、複数の撮像手段により同一対象物（被写体）を異なる位置から撮像して複数の画像情報を得て、ＳＡＤ（Sum of Absolute Difference）演算法、ＳＳＤ（Sum of Squared Difference）演算法等による相関演算を行うことによりこの画像情報の相関度を算出し、相関度に基づいて同一対象物に対する視差値を求め、視差値から対象物の位置（距離値）を求めて距離画像を生成する装置が知られている。
【０００３】
また、このような装置において、まず、ピクセルレベル（画素レベル）において複数の画像について小領域毎にシティブロック距離を計算して互いの相関を求め、対象物までの距離に応じて生じる画素のズレ（＝視差）を距離データとして画像化した距離画像を生成した上で、基準画像及び比較画像のデータを用いてステレオマッチングを行い、１画素以下の視差（サブピクセル成分）を求めて、距離画像から得られる画素を単位とする視差を１画素以下の分解能で補間する技術が知られている（例えば、特許文献１参照）。
【特許文献１】特開２０００−２８３７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された技術は、ＳＡＤ演算法等のブロックを使った相関演算法を用いて視差を算出するものであるが、ＳＡＤ演算法等の演算手法は、高速な演算処理が可能である半面、サブピクセルレベルの演算においては高精度に視差値を算出することは難しく、正確な距離画像を得ることができない。
ＳＡＤ演算法等のブロックを使った相関演算法によってサブピクセルレベルの演算処理を行う場合には、特許文献１にも開示されているように、ブロック間の相関度（シティブロック距離）が、相関演算によって求められた極小点（対応点）を中心に対称になるという仮定（直線近似）のもとに演算が行われている。このため、このような仮定が当てはまらない画素においては誤った結果が得られてしまうおそれがある。
このように、ＳＡＤ演算法等のブロックを使った相関演算法ではサブピクセルレベルでの処理において高精度の結果を得ることは困難であり、正確な距離画像を生成することができないとの問題があった。
【０００５】
そこで、本発明は以上のような課題を解決するためになされたものであり、総処理時間の短縮を図りつつ、サブピクセルレベルの演算において高精度の演算結果を得て信頼性の高い距離画像を生成することのできる距離画像生成装置、距離画像生成方法及びプログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の距離画像生成装置は、
第１画像情報と比較対象となる第２画像情報とを取得する画像取得手段と、
第１の演算手法により前記第１画像情報と前記第２画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第１の演算手段と、
前記第１の演算手法よりも精度の高い第２の演算手法により前記第１画像情報と前記第２画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第２の演算手段と、
前記第１の演算手段による視差値の算出結果に基づいて、第２の演算手段により演算を行う対象領域を設定する対象領域設定手段と、
を備えていることを特徴としている。
【０００７】
請求項２に記載の発明は、請求項１に記載の距離画像生成装置であって、
前記第１の演算手段により行われる第１の演算手法は、ＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかであることを特徴としている。
【０００８】
請求項３に記載の発明は、請求項１又は請求項２に記載の距離画像生成装置であって、
前記第２の演算手段により行われる第２の演算手法は、ＰＯＣ演算法であることを特徴としている。
【０００９】
請求項４に記載の距離画像生成方法は、
第１画像情報と比較対象となる第２画像情報とを取得する画像取得工程と、
第１の演算手法により前記第１画像情報と前記第２画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第１の演算工程と、
前記第１の演算手法よりも精度の高い第２の演算手法により前記第１画像情報と前記第２画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第２の演算工程と、
前記第１の演算工程による視差値の算出結果に基づいて、第２の演算工程により演算を行う対象領域を設定する対象領域設定工程と、
を備えていることを特徴としている。
【００１０】
請求項５に記載の発明は、請求項４に記載の距離画像生成方法であって、
前記第１の演算工程により行われる第１の演算手法は、ＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかであることを特徴とする。
【００１１】
請求項６に記載の発明は、請求項４又は請求項５に記載の距離画像生成方法であって、
前記第２の演算工程により行われる第２の演算手法は、ＰＯＣ演算法であることを特徴とする。
【００１２】
請求項７に記載の発明は、コンピュータ読取可能なプログラムであって、
第１の演算手法により第１画像情報と比較対象となる第２画像情報とを照合して、ピクセルレベルにおける視差値の算出を行う第１の演算機能と、
前記第１の演算手法よりも精度の高い第２の演算手法により前記第１画像情報と前記第２画像情報とを照合して、サブピクセルレベルにおける視差値の算出を行う第２の演算機能と、
前記第１の演算機能による視差値の算出結果に基づいて、第２の演算機能により演算を行う対象領域を設定する対象領域設定機能と、
をコンピュータに実現させることを特徴とする。
【００１３】
請求項８に記載の発明は、請求項７に記載のプログラムであって、
前記第１の演算手法は、ＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかであることを特徴とする。
【００１４】
請求項９に記載の発明は、請求項７又は請求項８に記載のプログラムであって、
前記第２の演算手法は、ＰＯＣ演算法であることを特徴とする。
【発明の効果】
【００１５】
請求項１、請求項４又は請求項７に記載の発明によれば、ピクセルレベル（画素レベル）における視差値の算出結果に基づいて、サブピクセルレベル（１画素以下レベル）における視差値の算出を行う対象領域を設定するので、サブピクセルレベル（１画素以下レベル）における視差値の算出を行う範囲を絞り込むことができ、効率よく演算処理を行うことができる。
【００１６】
また、サブピクセルレベル（１画素以下レベル）における視差値の算出は、ピクセルレベル（画素レベル）における視差値の算出を行う第１の演算手法よりも精度の高い第２の演算手法によって行われるので、演算処理を効率的に行って、相関演算の総処理時間の短縮を図るとともに、高精度な処理を行うことができるとの効果を奏する。
【００１７】
請求項２、請求項５又は請求項８に記載の発明によれば、高速で処理を行うことのできるＳＡＤ演算法、ＳＳＤ演算法、ＮＣＣ演算法のうちのいずれかによりピクセルレベル（画素レベル）における視差値の算出を行うので、対応点探索を効率的に行うことができ、相関演算の総処理時間の短縮を図ることができるとの効果を奏する。
【００１８】
請求項３、請求項６又は請求項９に記載の発明によれば、高精度、かつ、外乱に強くロバストな演算手法であるＰＯＣ演算法によりサブピクセルレベル（１画素以下レベル）における視差値の算出を行うので、信頼性の高い高精度の演算結果を得ることができ、正確な距離画像を生成することができるとの効果を奏する。
【発明を実施するための最良の形態】
【００１９】
以下、図１から図１１を参照しつつ、本発明に係る距離画像生成装置の一実施形態について説明する。ただし、発明の範囲を図示例に限定するものではない。
【００２０】
本実施形態に係る距離画像生成装置１は、２つの画像を照合して位置ずれ量を算出し、算出した位置ずれ量に基づいて対象物までの距離情報を得て距離画像を生成するものである。
【００２１】
図１に示すように、距離画像生成装置１は、被写体（対象物）を撮像する２つの撮像装置２ａ，２ｂを備えている。
撮像装置２ａ，２ｂは、それぞれ撮像手段として撮像素子（光電変換素子）３とこの撮像素子３の結像面（図示せず）に被写体光像を結像させるレンズ４とを備えている。撮像素子３は、例えばＣＣＤ（Charge Coupled Device）、ＣＭＯＳ（Complementary Metal-Oxide Semiconductor）等のイメージセンサであり、撮像素子３は、レンズ４を透過した入射光を電気信号に光電変換して取り込むことにより、被写体光像をアナログ画像信号に変換するようになっている。また、距離画像生成装置１は、撮像素子３によって得られたアナログ画像信号をデジタル画像信号に変換するＡ／Ｄ変換部５を備えている。
【００２２】
２つの撮像装置２ａ，２ｂは、同一対象物を異なる視点から撮像して画像情報としての画像データを取得するものであり、一方が基準となる基準画像に基づく基準画像データ（第１画像情報）を取得し、他方が比較対象となる画像（以下、「参照画像」とする）に基づく参照画像データ（第２画像情報）を取得する。このように、２つの撮像装置２ａ，２ｂは、基準画像及び参照画像の画像データを取得する画像取得手段として機能する。
【００２３】
また、距離画像生成装置１は、各撮像装置２ａ，２ｂによって取得された画像データについて、画像処理を行い、視差値を算出して距離画像を生成する画像処理部１０を備えている。
【００２４】
画像処理部１０は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）等の処理装置と、システムプログラム、後述する距離画像生成処理を行うための距離画像生成処理プログラム等、各種の制御プログラム等を格納するＲＯＭ（Read Only Memory）と、各種データを一時記憶するＲＡＭ（Random Access Memory）と（いずれも図示せず）、等により構成されるコンピュータであり、画像のレンズ歪みを補正するレンズ歪み補正部１１、各撮像装置２ａ，２ｂによって取得された画像の平行化処理を行う画像平行化処理部１２、対応点探索を行う対象領域を設定する対象領域設定部１４、ピクセルレベルでの視差算出処理を行う第１演算部１５、サブピクセルレベルでの視差算出処理を行う第２演算部１６、距離画像を生成する距離画像生成部１７等を備えている。
【００２５】
レンズ歪み補正部１１は、レンズ４を用いて結像させる場合に発生する歪み（レンズ歪み）を補正するものである。レンズ４には歪みがあるため、正しく画像を生成することができず、特に端部において画像が歪んでしまう。レンズ歪み補正部１１は、このようなレンズ歪みの補正を行うものであり、例えば、予めレンズ歪み補正用のパラメータを作成、記憶しておき、これに基づいて画像を補正する処理等を行う。なお、レンズ歪み補正部１１による補正の手法はここに例示したものに限定されず、各種公知の手段を用いることができる。
【００２６】
画像平行化処理部１２は、各撮像装置２ａ，２ｂによって取得された２つの画像について、あたかも平行移動したカメラから撮影したかのように変換してエピ極線が平行になるようにする画像の平行化処理を行うものである。画像の平行化処理は、２つの撮像装置２ａ，２ｂを厳密に正しく設置することは困難であるため、２つの撮像装置２ａ，２ｂの設置位置ずれ等により生じる画像の歪みを補正するために行われる。
【００２７】
画像について平行化処理を施すことにより、２つの画像は、縦方向（図２におけるＹ軸方向）においてずれのないものとなり、後述する相関演算処理を行う場合に、横方向（図２におけるＸ軸方向）のずれのみを検出すれば足りることとなる。なお、画像平行化処理部１２による画像平行化処理の手法はここに例示したものに限定されず、各種公知の手段を用いることができる。
【００２８】
対象領域設定部１４は、第２演算部１６による視差算出処理における演算の対象領域を設定するものである。
本実施形態においては、後述するように、第１演算部１５によるピクセルレベルでの視差算出処理が終了すると、その算出結果が対象領域設定部１４に出力されるようになっており、対象領域設定部１４は、このピクセルレベルにおける算出結果に基づいて第２演算部１６によるサブピクセルレベルでの視差算出処理における演算の対象領域を設定する。
【００２９】
すなわち、第２演算部１６による視差算出処理の際には、対象領域設定部１４は、第１演算部１５によるピクセルレベルでの視差算出処理で得られた対応点（候補座標（ｘ０，ｙ０））を中心としてその周辺の領域を、第１照合部６による視差算出処理の対象領域として設定する。本実施形態においては、例えば、対象領域設定部１４は、（ｘ０，ｙ０）を中心として３２画素×３２画素分の領域を抽出し対象領域として設定するようになっている。なお、対象領域設定部１４により設定される対象領域の範囲はここに例示したものに限定されない。
【００３０】
第１演算部１５は、基準画像データと参照画像データのそれぞれから抽出、設定された対象領域について、ＳＡＤ（Sum of Absolute Difference）演算法（第１の演算手法）により相関度を求めてピクセルレベル（画素レベル）における視差値を算出する視差算出処理を行う第１の演算手段である。
【００３１】
以下、第１演算部１５による視差算出処理について具体的に説明する。
第１演算部１５は、画像取得手段２によって取得された画像データのうち、いずれか一方を基準画像とし、他方を参照画像とした場合に、基準画像と参照画像との相関度をＳＡＤ（Sum of Absolute Differences：絶対誤差合計）演算法により相関演算して対応点を探索し、参照画像中、基準画像の対象領域と相関度の最も高かった領域について、基準画像と参照画像とのずれ量（視差値）を求める視差算出処理を行う。
【００３２】
基準画像と参照画像との相関演算について図２を参照しつつ説明する。図２（ａ）は基準画像を表し、図２（ｂ）は参照画像を表している。図２において、各マスは１画素を表しており、基準画像及び参照画像の全画面は、ともに、Ｘ軸方向（横方向）が２６画素、Ｙ軸方向（縦方向）が２０画素で構成されている場合を例としている。
【００３３】
相関演算を行う場合には、第１演算部１５は、基準画像を所定の単位面積に分割し、基準画像中のある領域を視差値を算出する位置（対象領域）として設定する。対象領域の設定は、例えば図２（ａ）の左上（Ｘ＝１，Ｙ＝２０）を基点として所定の範囲の領域が順次設定される。
【００３４】
すなわち、ある領域（例えばＸ＝１〜５，Ｙ＝１６〜２０の２５画素）が対象領域として設定され、当該対象領域についての相関演算が完了すると、例えばＸ軸方向（画像の水平方向）に１画素ずつ順次ずらして次の対象領域（例えばＸ＝２〜６，Ｙ＝１６〜２０の２５画素）が設定され、相関演算が行われる。Ｘ軸方向の全画素（図２（ａ）において２６画素）についてすべての相関演算が完了すると、Ｙ軸方向に１画素ずらして次の対象領域（例えばＸ＝１〜５，Ｙ＝１５〜１９の２５画素）が設定され、相関演算が行われる。当該対象領域について相関演算が完了すると、さらに、対象領域をＸ軸方向に１画素ずつ順次ずらして次の対象領域（例えばＸ＝２〜６，Ｙ＝１５〜１９の２５画素）が設定され、相関演算が行われる。
このように、画面の左上から右下にかけて、Ｘ軸方向、Ｙ軸方向それぞれ１画素ずつずらして順次対象領域が設定され、全画面の全画素について相関演算が完了するまで、各対象領域についての相関演算が繰り返される。なお、相関演算を行う順序（対象領域の設定の仕方）は、ここに例示したものに限定されない。
【００３５】
次に、相関演算の具体的手法について説明する。
例えば、図２（ａ）に示すように、基準画像中の破線で囲んだ範囲（Ｘ＝９〜１３，Ｙ＝９〜１３の２５画素）が対象領域として設定され、相関演算が行われる場合、第１演算部１５は、参照画像中、対象領域と同じＹ軸範囲（Ｙ＝９〜１３）についてＸ軸方向（画像の水平方向）に順次比較対照領域を設定し、順次相関演算を行うことにより、対象領域と各比較対照領域との相関度を算出する。これにより参照画像中、対象領域と最も相関度の高い領域、対応点を探索する。
【００３６】
すなわち、第１演算部１５は、まず、対象領域を構成する各画素（図２（ａ）中のＸ＝９，Ｙ＝１３、Ｘ＝１０，Ｙ＝１３・・・の全２５画素）の画像データ値を算出する。また、参照画像の中で対象領域に対照させるものとして設定した比較対照領域内の各画素（例えば、図２（ｂ）中の破線で囲んだ範囲（Ｘ＝９，Ｙ＝１３、Ｘ＝１０，Ｙ＝１３・・・の全２５画素））の画像データ値を算出する。そして、対象領域を構成する各画素の画像データ値から、比較対照領域を構成する各画素の画像データ値を減算して、その絶対値を算出する。
例えば、対象領域内のある画素（図２（ａ）中のＸ＝９，Ｙ＝１０）の画像データ値が１００であり、これに対応する比較対照領域内の画素が図２（ｂ）におけるＸ＝９，Ｙ＝１０の画像データ値が５０である場合には、１００−５０＝５０となり、絶対値５０となる。
また例えば、対象領域内のある画素（図２（ａ）中のＸ＝１３，Ｙ＝１０）の画像データ値が５０であり、これに対応する比較対照領域内の画素が図２（ｂ）におけるＸ＝１３，Ｙ＝１０の画像データ値が９０である場合には、５０−９０＝−４０となり、絶対値４０となる。
このような画像データ値の減算及び絶対値の算出を対象領域及び比較対照領域を構成する２５画素全てについて行う。なお、この演算は、各画素について順次行われてもよいし、当該領域内の全画素について同時進行的に行われてもよい。
【００３７】
さらに、第１演算部１５は、算出された結果（絶対値）を全て加算する。そして加算後の値が小さければ小さいほど相関度が高く、同じ画像である場合には、限りなく０に近づく。例えば、図２の場合、図２（ａ）中の破線で囲んだ範囲（Ｘ＝９〜１３，Ｙ＝９〜１３の２５画素）と、図２（ｂ）中の一点鎖線で囲んだ範囲（Ｘ＝１２〜１６，Ｙ＝９〜１３の２５画素）とは同じ画像であり、前者を構成する各画素の画像データ値から後者を構成する各画素のうち対応するものの画像データ値をそれぞれ減算して絶対値を求め、算出結果を加算すると、限りなく０に近づく。
【００３８】
このようにして、参照画像中、基準画像の対象領域と相関度の最も高い領域（相関演算により相関度の極値が得られた領域）を検索すると、第１演算部１５は、当該相関度の最も高い領域が、基準画像の対象領域とどの程度ずれているかのずれ量（視差値）を算出し、図３に示すように、相関度の最も高い領域がどの視差値に対応するかを求める。
すなわち、図２の例によれば、対象領域（図２（ａ）中のＸ＝９〜１３，Ｙ＝９〜１３の２５画素）と、相関度の最も高い領域である図２（ｂ）中の一点鎖線で囲んだ範囲（Ｘ＝１２〜１６，Ｙ＝９〜１３の２５画素）とは、Ｘ軸方向に３画素ずれている。したがって、この場合の視差値は３となる。
第１演算部１５は、算出結果をピクセルレベル（画素レベル）における視差値として対象領域設定部１４に出力するようになっている。
【００３９】
なお、視差値と距離値との関係は、距離値＝定数／視差値であり、距離値は視差値の逆数に比例するとの関係にある。すなわち、視差値が小さくなるほど距離は遠くなり、視差値が大きくなるほど距離が近くなるという関係にある。このため、第１演算部１５は、前記相関演算により視差値を求め、視差値の逆数を求めることにより、距離値を取得することができる。
【００４０】
また、第２演算部１６は、基準画像データと参照画像データのそれぞれから抽出、設定された対象領域について、ＰＯＣ（Phase-Only Correlation；位相限定相関）演算法（第２の演算手法）により、相関度を求めてサブピクセルレベル（１画素以下レベル）における視差値を算出する視差算出処理を行う第２の演算手段である。
第２演算部１６は、ＰＯＣ演算法による視差算出処理を行う第１照合部６と、第１照合部６により得られた演算結果に基づいて非線形フィッティング処理を行う第２照合部７とを備えている。
【００４１】
ＰＯＣ演算法は、基準画像データとこれと照合すべき参照画像データとをフーリエ変換で数学的に処理して、振幅（濃淡データ）と位相（像の輪郭データ）とに分解し、このうち位相情報のみを用いて、両画像の相関を求めるアルゴリズムであり、ＳＡＤ演算法等の振幅情報を用いた相関演算法と異なって、外乱に強く、高精度な演算結果を得られるものである。
【００４２】
以下、第２演算部１６による視差算出処理について具体的に説明する。
第２演算部１６の第１照合部６には、図４に示すように、窓関数部６１ａ，６１ｂ、ＦＦＴ（Fast Fourier Transform：高速フーリエ変換）部６２ａ，６２ｂ、位相情報抽出部６３ａ，６３ｂ、合成部６４、ＩＦＦＴ（Inverse Fast Fourier Transform：逆高速フーリエ変換）部６５、及び相関値演算部６６が備えられている。
【００４３】
窓関数部６１ａ，６１ｂは、基準画像データと参照画像データの対象領域に対応する信号に窓関数をかけるものである。窓関数の種類に特に制限はなく適宜変更可能である。ここで、基準画像データに基づく信号に対して窓関数をかけたものをｆ１、参照画像データに基づく信号に対して窓関数をかけたものをｆ２とする。窓関数部６１ａ，６１ｂは、窓関数をかけた信号ｆ１、ｆ２をそれぞれＦＦＴ部６２ａ，６２ｂに出力するようになっている。
【００４４】
ＦＦＴ部６２ａ，６２ｂは、信号ｆ１、ｆ２に対してフーリエ変換処理を施して位相情報抽出部６３ａ，６３ｂに出力するものである。詳しくは、ＦＦＴ部６２ａは、信号ｆ１に対して２次元離散的フーリエ変換を施し、基準画像に基づくフーリエ画像データＦ１を得る。また、ＦＦＴ部６２ｂは、信号ｆ２に対して２次元離散的フーリエ変換を施して参照画像に基づくフーリエ画像データＦ２を得るようになっている。なお、フーリエ変換処理に特に制限は無く、２次元離散的フーリエ変換については、「コンピュータ画像処理入門、日本工業技術センター編、総研出版（株）発行、Ｐ４４〜４５」を参照した。
【００４５】
位相情報抽出部６３ａ，６３ｂは、ＦＦＴ部６２ａ，６２ｂから出力された信号に対して振幅成分を除去して位相情報を抽出するものである。つまり、位相情報抽出部６３ａ，６３ｂは、フーリエ変換された信号Ｆ１、Ｆ２に対して位相限定処理を行ない、フーリエ画像データＦ３，Ｆ４を得るものである。位相情報抽出部６３ａ，６３ｂは、得られたフーリエ画像データＦ３，Ｆ４を合成部６４に出力する。
なお、位相情報抽出部６３ａ，６３ｂが位相情報のみを抽出する手法は特に限定されず、振幅を１として位相のみを抽出するものであってもよいし、ｌｏｇ処理や√処理等によって振幅成分を除去することとしてもよい。
【００４６】
合成部６４は、フーリエ変換された信号Ｆ１、Ｆ２から位相情報のみを抽出して得られたフーリエ画像データＦ３，Ｆ４を合成し、合成フーリエ画像データＦ５（ｕ，ｖ）＝Ｆ３＊（ｕ，ｖ）・Ｆ４（ｕ，ｖ）を得るものである。なお、式中「＊」は複素共役を表し、（ｕ，ｖ）はフーリエ空間の座標を示す。合成部６４は、得られた合成フーリエ画像データＦ５をＩＦＦＴ部６５に出力するようになっている。
【００４７】
ＩＦＦＴ部６５は、合成部６４で得られた合成フーリエ画像データＦ５に対して逆フーリエ変換を施し合成逆フーリエ画像データｆ５を得るものである。ＩＦＦＴ部６５は、合成逆フーリエ画像データｆ５を相関値演算部６６に出力するようになっている。
【００４８】
相関値演算部６６は、合成逆フーリエ画像データｆ５より、各画像間の相関演算を行い、相関値（ＰＯＣ値）を得るものである。
図５に、ＰＯＣ演算法によって各画像間の相関演算を実施することにより得られる結果（相関強度画像データ）の例を示す。図５は、基準画像上及び参照画像上にＮ1×Ｎ2画素の探索領域及び比較対象領域を設定した場合の例であり、Ｎ1×Ｎ2画素の領域内で相関が高い箇所の相関値（ＰＯＣ値）が大きくなっている。このＰＯＣ値のピーク（図５においてＪｃ）に対応する参照画像上の比較対象領域内の位置が、基準画像上の探索領域における中心点に対応した参照画像上の対応点(候補座標)に相当することとなる。
【００４９】
以上のようなＰＯＣ演算法を用いた演算処理によれば、画像の振幅成分を除去し画像の位相成分のみで相関演算が行われるため、輝度変動やノイズの影響を抑制して参照画像上の対応点を精度良く探索できる。
【００５０】
相関値演算部６６は、演算結果（相関強度画像データ）を得ると、これを第２照合部７に出力する。
【００５１】
第２照合部７は、第１照合部６によって得られた相関強度画像データに基づいてサブピクセルレベルの位置ずれ量を検出するものである。具体的には、第２照合部７は、相関強度画像のピークの現れる位置（相関強度画像データの中心位置：図５においてＪｃ）を中心として５画素×５画素分の範囲の相関強度画像データを用いて非線形フィッティングを行う。
図６に示すように、第２照合部７には、窓関数部７１と非線形フィッティング部７２が備えられており、第２照合部７は、非線形フィッティング部７２で検出される位置ずれ量が閾値以下となるまで位置ずれ量を検出するものである。
【００５２】
窓関数部７１は、相関強度画像データに対して窓関数をかけるものである。窓関数の種類に特に制限はないが、本実施形態においてはHanning窓を適用するものとする。窓関数部７１は、相関強度画像データの中心位置を非線形フィッティング部７２で検出された位置ずれ量に基づいて定めるようになっている。
【００５３】
非線形フィッティング部７２は、窓関数をかけた相関強度画像データに対してLevenberg-Merquardt法（非線形演算としての非線形最小二乗法）によりサブピクセルレベルの位置ずれ量を近似計算するものである。詳しくは、非線形フィッティング部７２は５画素×５画素分の相関強度画像データ（図７参照）にピークモデル（図８参照）をあてはめ、非線形演算としての非線形最小二乗法により位置ずれ量を求めるようになっている。非線形演算としての制限はなく、複雑な条件分岐処理を施すもの等に適宜変更可能である。
また、非線形フィッティング部７２は、検出した位置ずれ量が所定の閾値以下か否かを判断し、閾値より大きい場合は窓関数部７１に検出結果を出力するようになっている。また、非線形フィッティング部７２は、検出した位置ずれ量が所定の閾値以下の場合、それ以前の検出結果全てを加算した値をサブピクセルレベルの位置ずれ量として距離画像生成部１７に出力するようになっている。ここで、所定の閾値とはユーザが任意に設定できる値であり、精密な照合を要求するほど閾値は小さくなる。
【００５４】
距離画像生成部１７は、第２演算部１６によるサブピクセルレベルでの視差算出処理が終了すると、当該視差算出処理における基準画像データと参照画像データとの位置ずれ量（視差値）の演算結果に基づいて距離画像データを生成する。
【００５５】
また、距離画像生成装置１には、距離画像生成部１７によって生成された距離画像を出力する出力部２０が設けられている。出力部２０は、例えば、ＣＲＴ（Cathode Ray Tube）やＬＣＤ（Liquid Crystal Display）等のモニタ（表示手段）であり、距離画像を表示させるようになっている。なお、出力部２０は、モニタに限定されず、例えば、プリンタ等の外部機器（出力手段）と接続するための通信部であり、生成された距離画像を外部機器に送信して出力可能に構成されていてもよい。
【００５６】
次に、図９から図１１を参照して本実施形態における距離画像生成装置１によって行われる距離画像生成方法について説明する。なお、距離画像生成処理は、コンピュータである画像処理部１０と前記距離画像生成処理プログラムとの協働により実現されるものである。
【００５７】
図９に示すように、距離画像生成装置１によって距離画像を生成するための相関演算を行う場合には、まず、撮像装置２ａ，２ｂは、２つの撮像手段２ａ，２ｂにより対象物を撮像し、基準画像、参照画像の画像データを取得する（ステップＳ１）。
【００５８】
撮像手段２ａ，２ｂにより取得された基準画像、参照画像の画像データは、Ａ／Ｄ変換部５によりＡ／Ｄ変換され、画像処理部１０に送られる。基準画像、参照画像の画像データが画像処理部１０に送られると、各画像データについて、レンズ歪み補正部１１による歪み補正及び画像平行化処理部１２による画像平行化処理が施される（ステップＳ２）。
【００５９】
次に、歪み補正処理及び画像平行化処理の施された基準画像、参照画像の画像データについて、第１演算部１５によりピクセルレベルの視差値を算出する演算処理（第１の演算処理）が行われ（ステップＳ３）、その結果が対象領域設定部１４に出力される。
そして、対象領域設定部１４により、ピクセルレベルの視差値の算出結果に基づいて演算を行う対象領域が設定される（ステップＳ４）。さらに、この設定された対象領域について第２演算部１６によりサブピクセルレベルの視差値を算出する演算処理（第２の演算処理）が行われる（ステップＳ５）。
【００６０】
ここで、図１０を参照しつつ、第１演算部１５によりピクセルレベルの視差値を算出する演算処理（図９のステップＳ３）について、具体的に説明する。なお、以下においては、画像の全画面を測距の対象とし（すなわち、全画素を測距点とし）、１つの対象領域について、Ｘ軸方向のすべての画素について対応点探索を行う場合を例として説明する。
【００６１】
図１０に示すように、第１演算部１５は、基準画像内に測距点を設定し（ステップＳ１１）、この測距点を中心とした所定の対象領域が設定される（ステップＳ１２）。
対象領域が設定されると、第１演算部１５は参照画像内に対象領域と同じサイズの比較対象領域を設定し（ステップＳ１３）、ＳＡＤ演算法により相関演算を行うことにより、対象領域と比較対象領域との相関度を算出する（ステップＳ１４）。
【００６２】
第１演算部１５は当該対象領域について、比較対象画像のＸ軸方向のすべての画素について視差算出処理が終了したかを判断する（ステップＳ１５）。終了していない場合（ステップＳ１５；ＮＯ）には、第１演算部１５は、参照画像内の比較対象領域をＸ軸方向に１画素ずらして（ステップＳ１６）、ステップ１４に戻り、視差算出処理を繰り返す。Ｘ軸方向のすべての画素について視差算出処理が終了した場合（ステップＳ１５；ＹＥＳ）には、当該視差算出処理において最も相関度の高い画素を検索して、視差値を算出する（ステップＳ１７）。
【００６３】
第１演算部１５は当該対象領域について視差値を算出すると、さらに、基準画像内の全測距点（測距を行うべきすべての画素）についての視差算出処理が終了したかを判断する（ステップＳ１８）。本実施形態では、画像の全画素について視差算出処理を行うので、全画素について処理が終了したかを判断する。
そして、画像中に、測距を行うべき画素であって未処理のものがある場合（ステップＳ１８；ＮＯ）には、当該未処理の画素を新たな測距点として設定し（ステップＳ１９）、この測距点を中心とした対象領域を設定して（ステップＳ１２）以下ステップＳ１３からステップＳ１７の処理を繰り返す。他方、画像中に未処理の測距点がない場合（ステップＳ１８；ＹＥＳ）には、ピクセルレベルの視差算出処理（第１の演算処理）を終了する。
【００６４】
次に、図１１を参照しつつ、第２演算部１６によりサブピクセルレベルの視差値を算出する演算処理（図９のステップＳ５）について、具体的に説明する。
【００６５】
第１演算部１５によるピクセルレベルの視差値の算出結果に基づいて対象領域設定部１４により対象領域が設定されると（図９のステップＳ４参照）、まず、窓関数部６１ａ，６１ｂが画像データに基づく信号に対して窓関数を掛け、ＦＦＴ部６２ａ，６２ｂが、中心画素を中心とした３２×３２画素のブロックサイズの２次元フーリエ変換処理を行う。
すなわち、図１１に示すように、窓関数部６１ａが基準画像に基づく信号ｆ１を作成し、この信号ｆ１について６２ａがフーリエ変換処理を行って信号ｆ１を信号Ｆ１に変換する（ステップＳ２１）。また、窓関数部６１ｂが基準画像に基づく信号ｆ２を作成し、この信号ｆ２について６２ｂがフーリエ変換処理を行って信号ｆ２を信号Ｆ２に変換する。（ステップＳ２２）。
【００６６】
その後、位相情報抽出部６３ａ，６３ｂは、信号Ｆ１，Ｆ２に基づき、その振幅成分を除去して信号Ｆ１から位相情報Ｆ３を、信号Ｆ２から位相情報Ｆ４をそれぞれ抽出する（ステップＳ２３）。さらに、位相情報のみの信号Ｆ３，Ｆ４は、合成部６４によって合成され、合成信号Ｆ５が生成される（ステップＳ２４）。合成信号Ｆ５は合成部６４からＩＦＦＴ部６５に出力され、ＩＦＦＴ部６５はこの合成信号Ｆ５に対して、逆フーリエ変換処理を施しｆ５に変換する（ステップＳ２５）。その後、相関値演算部７６は、ｆ５に基づいて相関値ｍａｘｘ，ｙｆ５（ｕ，ｖ）を算出し（ステップＳ２６）、演算結果（相関強度画像データ）を第２照合部７に出力する（ステップＳ２７）
【００６７】
第２照合部７では、サブピクセルレベルの位置ずれ量を検出するようになっている。詳しくは、まず、窓関数部７１が第１照合部６から出力された相関強度画像データにHanning窓をかける。その後、非線形フィッティング部７２は、窓関数部７１からの信号（５画素×５画素分の相関強度画像データ（図７参照））に対してピークモデル（図８参照）をあてはめ、Levenberg-Merquardt法（非線形演算としての非線形最小二乗法）によりずれ量を近似計算する（ステップＳ２８：非線形フィッティング処理）。非線形フィッティング部７２は、近似計算の結果が所定の閾値以下か否かを判断し（ステップＳ２９）、閾値より大きい場合（ステップＳ２９；ＮＯ）は、窓関数部７１に検出結果を出力する（ステップＳ３０）。そして再度非線形フィッティング処理（ステップＳ２８）が行われる。また、非線形フィッティング部７２は、検出結果が所定の閾値以下の場合（ステップＳ２９；ＹＥＳ）には、それ以前の検出結果を全て加算してサブピクセルレベルの位置ずれ量として距離画像生成部１７に出力する（ステップＳ３１）。これにより、第２演算部１６によるサブピクセルレベルの視差算出処理が終了する。
【００６８】
図９に戻って、第２演算部１６による視差算出処理が終了し、第２照合部７による演算結果がサブピクセルレベルの演算結果として距離画像生成部１７に出力されると（図１１のステップＳ３１）、距離画像生成部１７は、この演算結果に基づいて距離画像を生成する（ステップＳ６）。そして、距離画像生成部１７によって生成された距離画像は、必要に応じて出力部２０から出力される。
【００６９】
以上のように、本実施形態によれば、ピクセルレベルの視差算出処理においては、高速で演算処理を行うことのできる第１演算部１５により処理を行い、サブピクセルレベルの視差算出処理においては、第１演算部１５による演算結果を用いて演算を行う対象領域を決定して、高精度の演算処理を行うことのできる第２演算部１６による演算処理を行うので、視差算出処理を効率的に行って、相関演算の総処理時間の短縮と、高精度な距離画像の生成との両立を図ることができる。
【００７０】
なお、本実施形態においては、２つの撮像手段２ａ，２ｂを備えて各撮像手段２ａ，２ｂにより同一対象物を撮像して基準画像データ（第１画像情報）と参照画像データ（第２画像情報）とを取得する構成としたが、撮像装置２ａ，２ｂの構成はこれに限定されない。撮像装置２ａ，２ｂは少なくとも１つの撮像手段を備えて構成されていればよく、１つの撮像手段により同一対象物を異なるタイミングで撮像して基準画像データと参照画像データとを取得するものでもよいし、２つ以上の撮像手段を備えて各撮像手段により同一対象物を撮像して基準画像データと参照画像データとを取得するものでもよい。
【００７１】
また、本実施形態においては、距離画像生成装置１の構成要素として撮像装置２ａ，２ｂを備える場合について説明したが、画像取得部を距離画像生成装置１の外部に設けて、距離画像生成装置１に外部から基準画像データ（第１画像情報）と参照画像データ（第２画像情報）が入力され、この画像データに基づいて相関演算等の処理が行われるようにしてもよい。
【００７２】
また、本実施形態においては、第１演算部１５において、相関値に基づく候補座標の算出を行い、算出された候補座標を探索結果として対象領域設定部１４に出力するように構成したが、対象領域設定部１４に出力される探索結果はこれに限定されない。例えば、対象領域設定部１４には、探索結果として第１演算部１５から相関値を示す演算結果が出力され、対象領域設定部１４が、この演算結果に基づいて、最も相関度の高かった点（候補座標）を算出し、この候補座標の周辺を対象領域として設定してもよい。
【００７３】
また、本実施形態においては、画像の全画面を測距の対象とする（すなわち、全画素を測距点とする）場合を例として説明したが、ユーザの用途等により、例えば画像内の人物部分についてだけ測距を行いたい場合等であれば、測距を行いたい対象部分のみに測距点を設定して視差算出処理を行う等、視差算出処理を行う範囲を限定してもよい。
【００７４】
また、本実施形態においては、１つの対象領域について、Ｘ軸方向のすべての画素について対応点探索を行う場合を例として説明したが、ユーザの用途等により一定の限定された距離値の範囲のみ距離を求めることができればよい場合もある。このような場合には、用途に応じた距離範囲に対応する視差値の範囲を演算範囲とし、比較対象領域をこの範囲で移動させて視差算出処理を行うようにしてもよい。
例えば、１００ｍ以上離れた距離にあるものの距離のみを求めれば足りる場合には、１００ｍ以上の距離値に対応する視差値の範囲で比較対象領域をこの範囲で移動させる。これにより、視差算出処理において、相関演算の処理時間を短縮することができる。
【００７５】
また、本実施形態においては、基準画像を２５画素ずつの単位面積に分割して対象領域を設定し、この対象領域ごとに相関演算を行う場合を例として説明したが、対象領域の範囲は、２５画素ずつに限定されず、任意の範囲に設定することができる。
また、本実施形態においては、対象領域を２５画素ずつの所定の領域とし、この領域ごとに相関演算を行うものとしたが、例えば１画素ごとに基準画像と参照画像の相関度を算出するようにしてもよい。
【００７６】
また、本実施形態においては、第１の演算手段として、ＳＡＤ演算法により距離値を求める第１演算部１５を設けたが、第１の演算手段は高速に距離値を求める処理を行うことができるものであればよく、これに限定されない。例えば、第１の演算手段として、ＳＳＤ（Sum of Squared Differences）演算法や、ＮＣＣ（Normalized Cross-Correlation）演算法により距離値を求める演算部を設けてもよい。
【００７７】
また、本実施形態においては、第２の演算手段として、ＰＯＣ演算法により対応点を探索する第２演算部１６を設けたが、第２の演算手段は高精度に対応点の探索を行うことのできるものであればよく、ＰＯＣ演算法によるものに限定されない。
【００７８】
また、本実施形態においては、画像処理部１０が、ＣＰＵ等とＲＯＭ、ＲＡＭ等のメモリで構成されるコンピュータである場合を例として説明したが、画像処理部１０の全体又は一部を専用ハードウェアで構成してもよい。
すなわち、例えば第２演算部１６は、位相限定相関処理を行なう専用のハードウェアで構成されていることが好ましい。専用のハードウェアとしては、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）等が適用可能である。
【００７９】
また、基準画像及び参照画像について解像度の異なる複数の階層画像からなる多重解像度画像を生成し、第１演算部１５における演算において、低解像度の階層画像から高解像度の階層画像に向かって順次対応点の探索処理を繰り返すとともに、低解像度の階層画像について得られた探索結果を次階層における探索に反映させるようにしてもよい。このような手法をとることにより、より高速で高精度の演算処理を行うことができる。
【００８０】
その他、本発明が上記実施の形態に限らず適宜変更可能であるのは勿論である。
【図面の簡単な説明】
【００８１】
【図１】本実施形態に係る相関演算装置の全体構成を示すブロック図である。
【図２】図２（ａ）は、本実施形態における基準画像の例を示した図であり、図２（ｂ）は、本実施形態における参照画像の例を示した図である。
【図３】相関度と視差値との関係を示す説明図である。
【図４】図１に示す第２演算部の構成を示すブロック図である。
【図５】第１照合部による演算処理によって得られる結果の例を示す説明図である。
【図６】第２照合部の構成を示すブロック図である。
【図７】相関強度画像データの一例を示す図である。
【図８】ピークモデルの一例を示す図である。
【図９】本実施形態における距離画像生成処理を表すフローチャートである。
【図１０】図９に示す第１演算部による演算処理を表すフローチャートである。
【図１１】図９に示す第２演算部による演算処理を表すフローチャートである。
【符号の説明】
【００８２】
１  距離画像生成装置
２ａ，２ｂ  撮像装置（画像取得手段）
６  第１照合部
７  第２照合部
１０  画像処理部
１１  レンズ歪み補正部
１２  画像平行化処理部
１４  対象領域設定部（対象領域設定手段）
１５  第１演算部（第１の演算手段）
１６  第２演算部（第２の演算手段）
１７  距離画像生成部（距離画像生成手段）
６１ａ，６１ｂ  窓関数部
６２ａ，６２ｂ  ＦＦＴ部
６３ａ，６３ｂ  位相情報抽出部
６４  合成部
６５  ＩＦＦＴ部
６６  相関演算部
【図１】
2008216127.tif 000003
【図２】
2008216127.tif 000004
【図３】
2008216127.tif 000005
【図４】
2008216127.tif 000006
【図５】
2008216127.tif 000007
【図６】
2008216127.tif 000008
【図７】
2008216127.tif 000009
【図８】
2008216127.tif 000010
【図９】
2008216127.tif 000011
【図１０】
2008216127.tif 000012
【図１１】
2008216127.tif 000013