(57)【特許請求の範囲】
【請求項１】
所定の対象物を撮影した第１および第２の画像に基づいて、前記対象物までの距離に関係する距離関係情報を求める画像処理装置であって、
前記第１の画像の画素と対応する、前記第２の画像の対応画素を検出する検出手段と、
前記検出手段により検出された前記対応画素に基づき、前記第１の画像の画素について、前記距離関係情報を求める処理手段と、
前記処理手段により求められた前記距離関係情報を画素値とする距離関係情報画像の画素のうち、前記検出手段により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、前記距離関係情報の補正を行う対象とする補正対象画素として選択する選択手段と、
前記距離関係画像のうち、前記選択手段により選択された前記補正対象画素を含む所定の領域を検索ブロックとして、前記検索ブロック内の複数の画素の中から、前記確実性が所定の条件を満たす画素を検索し、前記補正対象画素についての前記距離関係情報を、検索された前記画素についての前記距離関係情報に置換することにより、前記補正対象画素についての前記距離関係情報を補正する補正手段と
を備える画像処理装置。
【請求項２】
前記処理手段は、前記第１の画像の画素とその対応画素との間の視差を、前記距離関係情報として求める
請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、前記第１および第２の画像の画素の画素値を用いて、所定の評価関数を演算し、その演算結果に基づいて、前記対応画素を検出し、
前記選択手段は、前記所定の評価関数の演算結果に基づいて、前記確実性を評価する
請求項１に記載の画像処理装置。
【請求項４】
前記選択手段は、前記第１の画像の画素の画素値に基づいて、前記補正対象画素を選択する
請求項１に記載の画像処理装置。
【請求項５】
前記補正手段は、前記検索ブロック内の画素のうち、最外周に位置する画素を検索の対象とする
請求項１に記載の画像処理装置。
【請求項６】
前記検出手段は、前記第１の画像の画素の画素値と、その画素に対応する可能性のある前記第２の画像の画素群それぞれの画素値とについて、所定の評価関数をそれぞれ演算し、その演算結果に基づき、前記第２の画像の画素群の中から、前記対応画素を検出する
請求項１に記載の画像処理装置。
【請求項７】
前記検出手段は、前記第１の画像の画素を含む第１の画素ブロックと、その画素に対応する可能性のある前記第２の画像の画素群それぞれの画素を含む第２の画素ブロックとを用いて、所定の評価関数をそれぞれ演算し、その演算結果に基づいて、前記第２の画像の画素群の中から、前記対応画素を検出し、
前記補正手段により利用される前記所定の条件として、前記検索ブロックの中で前記確実性が最も高いという条件が採用されている
請求項１に記載の画像処理装置。
【請求項８】
前記所定の対象物を撮影し、前記第１および第２の画像を出力する撮像手段をさらに備える
請求項１に記載の画像処理装置。
【請求項９】
所定の対象物を撮影した第１および第２の画像に基づいて、前記対象物までの距離に関係する距離関係情報を求める画像処理方法であって、
前記第１の画像の画素と対応する、前記第２の画像の対応画素を検出する検出ステップと、
前記検出ステップの処理により検出された前記対応画素に基づき、前記第１の画像の画素について、前記距離関係情報を求める処理ステップと、
前記処理ステップの処理により求められた前記距離関係情報を画素値とする距離関係情報画像の画素のうち、前記検出ステップの処理により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、前記距離関係情報の補正を行う対象とする補正対象画素として選択する選択ステップと、
前記距離関係画像のうち、前記選択ステップの処理により選択された前記補正対象画素を含む所定の領域を検索ブロックとして、前記検索ブロック内の複数の画素の中から、前記確実性が所定の条件を満たす画素を検索し、前記補正対象画素についての前記距離関係情報を、検索された前記画素についての前記距離関係情報に置換することにより、前記補正対象画素についての前記距離関係情報を補正する補正ステップと
を含む画像処理方法。
【請求項１０】
所定の対象物を撮影した第１および第２の画像に基づいて、前記対象物までの距離に関係する距離関係情報を求める処理を、コンピュータに行わせるためのプログラムが記録されているコンピュータ読み取り可能な記録媒体であって、
前記第１の画像の画素と対応する、前記第２の画像の対応画素を検出する検出ステップと、
前記検出ステップの処理により検出された前記対応画素に基づき、前記第１の画像の画素について、前記距離関係情報を求める処理ステップと、
前記処理ステップの処理により求められた前記距離関係情報を画素値とする距離関係情報画像の画素のうち、前記検出ステップの処理により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、前記距離関係情報の補正を行う対象とする補正対象画素として選択する選択ステップと、
前記距離関係画像のうち、前記選択ステップの処理により選択された前記補正対象画素を含む所定の領域を検索ブロックとして、前記検索ブロック内の複数の画素の中から、前記確実性が所定の条件を満たす画素を検索し、前記補正対象画素についての前記距離関係情報を、検索された前記画素についての前記距離関係情報に置換することにより、前記補正対象画素についての前記距離関係情報を補正する補正ステップと
を含むプログラムが記録されている
コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および画像処理方法、並びに記録媒体に関し、特に、例えば、所定の対象物を、複数のカメラで撮影して得られる複数の画像の画素それぞれを相互に対応付け、対象物に対する視差や、対象物までの距離などを、画素ごとに求める、いわゆるステレオ画像処理を行う画像処理装置および画像処理方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
例えば、文献「解説，ビデオレート・ステレオマシン（A Video-rate Stereomachine；金出(Kanade)，木村  著、日本ロボット学会誌("Journal of the Robotics Society of Japan (JRSJ)")vol.13 No.3, pp.322〜pp.326, 1995）」などには、２箇所以上から同一の対象物を撮影することにより、あるいは、２台以上のカメラで撮影することにより得た複数の画像の間で、互いに対応する画素の間の視差情報（視差）を得て、対象物上の各点の距離を求め、さらには、対象物の形状を計測する、いわゆるステレオ画像処理が開示されている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のステレオ画像処理では、背景と対象物との位置関係によっては、対象物の輪郭の近傍において、複数の画像間での画素の対応付けが不正確になり、画素間の視差情報や、対象物までの距離、あるいはその形状を正しく計測できないことがある。
【０００４】
本発明は、このような状況に鑑みてなされたものであり、複数の画像間での画素の対応付けを正確に行うことができなかった場合であっても、比較的正確な視差情報や距離等を得ることができるようにするものである。
【０００５】
【課題を解決するための手段】
請求項１に記載の画像処理装置は、第１の画像の画素と対応する、第２の画像の対応画素を検出する検出手段と、検出手段により検出された対応画素に基づき、第１の画像の画素について、距離関係情報を求める処理手段と、処理手段により求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、検出手段により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、距離関係情報の補正を行う対象とする補正対象画素として選択する選択手段と、距離関係画像のうち、選択手段により選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素を検索し、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報を補正する補正手段とを備える。
【０００６】
請求項９に記載の画像処理方法は、第１の画像の画素と対応する、第２の画像の対応画素を検出する検出ステップと、検出ステップの処理により検出された対応画素に基づき、第１の画像の画素について、距離関係情報を求める処理ステップと、処理ステップの処理により求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、検出ステップの処理により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、距離関係情報の補正を行う対象とする補正対象画素として選択する選択ステップと、距離関係画像のうち、選択ステップの処理により選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素を検索し、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報を補正する補正ステップとを含む。
【０００７】
請求項１０に記載の記録媒体は、第１の画像の画素と対応する、第２の画像の対応画素を検出する検出ステップと、検出ステップの処理により検出された対応画素に基づき、第１の画像の画素について、距離関係情報を求める処理ステップと、処理ステップの処理により求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、検出ステップの処理により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、距離関係情報の補正を行う対象とする補正対象画素として選択する選択ステップと、距離関係画像のうち、選択ステップの処理により選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素を検索し、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報を補正する補正ステップとを含むプログラムが記録されている。
【０００９】
請求項１に記載の画像処理装置においては、検出手段は、第１の画像の画素と対応する、第２の画像の対応画素を検出し、処理手段は、検出手段により検出された対応画素に基づき、第１の画像の画素について、距離関係情報を求めるようになされている。選択手段は、処理手段により求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、検出手段により対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、距離関係情報の補正を行う対象とする補正対象画素として選択し、補正手段は、距離関係画像のうち、選択手段により選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素を検索し、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報を補正するようになされている。
【００１０】
請求項９に記載の画像処理方法においては、第１の画像の画素と対応する、第２の画像の対応画素を検出し、検出された対応画素に基づき、第１の画像の画素について、距離関係情報を求めるようになされている。求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、距離関係情報の補正を行う対象とする補正対象画素として選択し、距離関係画像のうち、選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素を検索し、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報を補正するようになされている。
【００１１】
請求項１０に記載の記録媒体に記録されるプログラムにおいては、第１の画像の画素と対応する、第２の画像の対応画素を検出し、検出された対応画素に基づき、第１の画像の画素について、距離関係情報を求めるようになされている。求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、対応画素として検出された画素が真の対応点である確実性が一定以下の画素を、距離関係情報の補正を行う対象とする補正対象画素として選択し、距離関係画像のうち、選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素を検索し、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報を補正するようになされている。
【００１３】
【発明の実施の形態】
図１は、本発明を適用した距離測定装置の一実施の形態の構成例を示している。
【００１４】
カメラ１および２（撮像手段）は、異なる位置に固定された、例えばＣＣＤ（Charge Coupled Device）ビデオカメラで、その異なる位置（異なる視線方向）から対象物３を撮影し、その結果得られる画像を、カメラインターフェイス４に出力するようになされている。ここで、カメラ１または２は、それぞれ、いわゆる基準カメラまたは検出カメラとして機能する。そこで、以下、適宜、カメラ１または２を、それぞれ基準カメラ１または検出カメラ２というとともに、それぞれが出力する画像を、基準カメラ画像（第１の画像）または検出カメラ画像（第２の画像）という。
【００１５】
カメラインターフェイス４は、基準カメラ１または検出カメラ２それぞれからの基準カメラ画像または検出カメラ画像を受信し、フレームメモリ５に供給するようになされている。フレームメモリ５は、カメラインターフェイス４からの基準カメラ画像および検出カメラ画像を、例えば、フレーム単位などで記憶するようになされている。
【００１６】
演算処理回路６は、フレームメモリ５に記憶された基準カメラ画像および検出カメラ画像に基づいて、基準カメラ１または検出カメラ２のうちの、例えば、基準カメラ１から対象物３までの距離に関係する距離関係情報を求め、その距離関係情報に対応する画素値を有する画像を生成するようになされている。
【００１７】
即ち、演算処理回路６は、基準カメラ画像の画素と、検出カメラ画像の画素のとの間の対応をとり、基準カメラ画像の画素それぞれについて、対象物３までの距離を求めて、その距離に対応する画素値を有する画像（例えば、距離が大きいほど輝度値が大きい画像）（以下、適宜、距離画像という）を生成するようになされている。あるいは、演算処理回路６は、対応をとった画素間の視差ζを測定し、その視差ζに対応する画素値を有する画像（以下、適宜、視差画像という）を生成するようになされている。なお、演算処理回路６においては、視差ζから、距離画像を求めたり、さらに、距離画像から、対象物３の３次元形状の解析を行うようにすること等も可能である。
【００１８】
具体的には、演算処理回路６は、制御用のＣＰＵ(Central Processing Unit)６Ａ，ＲＯＭ(Read Only Memory)６Ｂ，ＲＡＭ(Random Access Memory)６Ｃ、および画像処理用のＤＳＰ(Digital Signal Processor)６Ｄなどから構成されている。そして、ＣＰＵ６Ａは、記憶装置７に記憶されたアプリケーションプログラムを実行することで、距離測定装置を構成する各ブロックを制御するとともに、後述するようなステレオ処理や、補正処理等を行うことにより、距離画像等を生成するようになされている。
【００１９】
なお、ＲＯＭ６Ｂは、例えば、ＩＰＬ（Initial Program Loading）用のプログラムその他の必要なデータを記憶している。ＲＡＭ６Ｃは、ＣＰＵ６Ａが実行するプログラムや、ＣＰＵ６Ａの処理上必要なデータなどを一時記憶するようになされている。ＤＳＰ６Ｄは、ＣＰＵ６Ａの制御の下、必要な積和演算その他を行うようになされている。
【００２０】
記憶装置７は、例えば、ＨＤ（Hard Disk）や、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などで構成され、演算処理回路６が実行するＯＳ（Operating System）のプログラムや、上述したような処理を行うためのアプリケーションプログラムなどを記憶している。また、記憶装置７は、演算処理回路６が出力する距離画像等を記憶するようにもなされている。出力装置８は、例えば、ＣＲＴ（Cathode Ray Tube）や液晶パネルなどで構成され、演算処理回路６が出力する距離画像等を表示するようになされている。
【００２１】
以上のように構成される距離測定装置では、基準カメラ１および検出カメラ２によって対象物３が撮影される。さらに、その結果得られる基準カメラ画像および検出カメラ画像が、カメラインターフェイス４を介してフレームメモリ５に供給されて記憶される。そして、その基準カメラ画像および検出カメラ画像を用いて、演算処理回路６において、ステレオ処理が行われる。
【００２２】
ここで、ステレオ処理は、上述のように、２つ以上の方向（異なる視線方向）からカメラで同一対象物を撮影して得られる複数の画像間の画素同士を対応付けることで、対応する画素間の視差情報や、カメラから対象物までの距離、対象物の形状を求めるものである。
【００２３】
即ち、例えば、図２に示すように、２台の基準カメラ１および検出カメラ２で対象物３を撮影すると、基準カメラ１からは対象物３の投影像を含む基準カメラ画像が得られ、検出カメラ２からも対象物３の投影像を含む検出カメラ画像が得られる。いま、図２における対象物３上のある点Ｐが、基準カメラ画像および検出カメラ画像の両方に表示されているとすると、その点Ｐが表示されている基準カメラ画像上の位置と、検出カメラ画像上の位置、つまり対応点（対応画素）とから、視差情報を求めることができ、さらに、三角測量の原理を用いて、点Ｐの３次元空間における位置（３次元位置）を求めることができる。
【００２４】
従って、ステレオ処理では、まず、対応点を検出することが必要となるが、その検出方法としては、例えば、エピポーラライン（Epipolar Line）を用いたエリアベースマッチング法などがある。
【００２５】
即ち、図３に示すように、基準カメラ１においては、対象物３上の点Ｐは、その点Ｐと基準カメラ１の光学中心（レンズ中心）Ｏ1とを結ぶ直線Ｌ上の、基準カメラ１の撮像面Ｓ1との交点ｎaに投影される。
【００２６】
また、検出カメラ２においては、対象物３の点Ｐは、その点Ｐと検出カメラ２の光学中心（レンズ中心）Ｏ2とを結ぶ直線上の、検出カメラ２の撮像面Ｓ2との交点ｎbに投影される。
【００２７】
この場合、直線Ｌは、光学中心Ｏ1およびＯ2、並びに点ｎa（または点Ｐ）の３点を通る平面と、検出カメラ画像が形成される撮像面Ｓ2との交線Ｌ2として、撮像面Ｓ2上に投影される。点Ｐは、直線Ｌ上の点であり、従って、撮像面Ｓ2において、点Ｐを投影した点ｎbは、直線Ｌを投影した直線Ｌ2上に存在し、この直線Ｌ2はエピポーララインと呼ばれる。即ち、点ｎaの対応点ｎbが存在する可能性のあるのは、エピポーララインＬ2上であり、従って、対応点ｎbの探索は、エピポーララインＬ2上を対象に行えば良い。
【００２８】
ここで、エピポーララインは、例えば、撮像面Ｓ1に形成される基準カメラ画像を構成する画素ごとに考えることができるが、基準カメラ１と検出カメラ２の位置関係が既知であれば、その画素ごとに存在するエピポーララインは求めることができる。
【００２９】
エピポーララインＬ2上の点からの対応点ｎbの検出は、例えば、次のようなエリアベースマッチングによって行うことができる。
【００３０】
即ち、エリアベースマッチングでは、図４（Ａ）に示すように、基準カメラ画像上の点ｎaを中心（例えば、対角線の交点）とする、例えば長方形状の小ブロック（以下、適宜、基準ブロックという）（第１のブロック）が、基準カメラ画像から抜き出されるとともに、図４（Ｂ）に示すように、検出カメラ画像に投影されたエピポーララインＬ2上の、ある点を中心とする、基準ブロックと同一の大きさの小ブロック（以下、適宜、検出ブロックという）（第２のブロック）が、検出カメラ画像から抜き出される。
【００３１】
ここで、図４（Ｂ）の実施の形態においては、エピポーララインＬ2上に、検出ブロックの中心とする点として、点ｎb1乃至ｎb6の６点が設けられている。この６点ｎb1乃至ｎb6は、図３に示した３次元空間における直線Ｌを、所定の一定距離ごとに区分する点、即ち、基準カメラ１からの距離が、例えば、１ｍ，２ｍ，３ｍ，４ｍ，５ｍ，６ｍの点それぞれを、検出カメラ２の撮像面Ｓ2に投影した点で、従って、基準カメラ１からの距離が１ｍ，２ｍ，３ｍ，４ｍ，５ｍ，６ｍの点にそれぞれ対応している。
【００３２】
エリアベースマッチングでは、検出カメラ画像から、エピポーララインＬ2上に設けられている点ｎb1乃至ｎb6それぞれを中心とする検出ブロックが抜き出され、各検出ブロックと、基準ブロックとの相関が、所定の評価関数を用いて演算される。そして、点ｎaを中心とする基準ブロックとの相関が最も高い検出ブロックの中心の点ｎbが、点ｎaの対応点として求められる。
【００３３】
即ち、例えば、いま、評価関数として、相関が高いほど小さな値をとる関数を用いた場合に、エピポーララインＬ2上の点ｎb1乃至ｎb6それぞれについて、例えば、図５に示すような評価値（評価関数の値）が得られたとする。この場合、評価値が最も小さい（相関が最も高い）点ｎb3が、点ｎaの対応点として検出される。なお、図５において、点ｎb1乃至ｎb6それぞれについて求められた評価値（図５において●印で示す）のうちの最小値付近のものを用いて補間を行い、評価値がより小さくなる点（図５において×印で示す）を求めて、その点を、最終的な対応点として検出することも可能である。
【００３４】
図４の実施の形態では、上述したように、３次元空間における直線Ｌを所定の等距離ごとに区分する点を、検出カメラ２の撮像面Ｓ2に投影した点が設定されているが、この設定は、例えば、基準カメラ１および検出カメラ２のキャリブレーション時に行うことができる。そして、このような設定を、基準カメラ１の撮像面Ｓ1を構成する画素ごとに存在するエピポーララインごとに行い、図６（Ａ）に示すように、エピポーラライン上に設定された点（以下、適宜、設定点という）と、基準カメラ１からの距離とを対応付ける設定点／距離テーブルをあらかじめ作成しておけば、対応点となる設定点を検出し、設定点／距離テーブルを参照することで、即座に、基準カメラ１からの距離（対象物３までの距離）を求めることができる。即ち、いわば、対応点から、直接、距離を求めることができる。
【００３５】
一方、基準カメラ画像上の点ｎaについて、検出カメラ画像上の対応点ｎbを検出すれば、その２点ｎaおよびｎbの間の視差（視差情報）を求めることができる。さらに、基準カメラ１と検出カメラ２の位置関係が既知であれば、２点ｎaおよびｎbの間の視差から、三角測量の原理によって、対象物３までの距離を求めることができる。視差から距離の算出は、所定の演算を行うことによって行うことができるが、あらかじめその演算を行っておき、図６（Ｂ）に示すように、視差ζと距離との対応付ける視差／距離テーブルをあらかじめ作成しておけば、対応点を検出し、視差を求め、視差／距離テーブルを参照することで、やはり、即座に、基準カメラ１からの距離を求めることができる。
【００３６】
ここで、視差と、対象物３までの距離とは一対一に対応するものであり、従って、視差を求めることとと、対象物３までの距離を求めることとは、いわば等価である。
【００３７】
また、対応点の検出に、基準ブロックおよび検出ブロックといった複数画素でなるブロックを用いるのは、ノイズの影響を軽減し、基準カメラ画像上の画素（点）ｎaの周囲の画素のパターンの特徴と、検出カメラ画像上の対応点（画素）ｎbの周囲の画素のパターンの特徴との相関性を明確化して判断することにより、対応点の検出の確実を期すためであり、特に、変化の少ない基準カメラ画像および検出カメラ画像に対しては、画像の相関性により、ブロックの大きさが大きければ大きいほど対応点の検出の確実性が増す。
【００３８】
次に、エリアベースマッチングにおいて、例えば、基準ブロックと検出ブロックとの相関性を評価する評価関数としては、基準ブロックを構成する画素と、それぞれの画素に対応する、検出ブロックを構成する画素の画素値の差分の絶対値の総和や、その差分の自乗和、正規化された相互相関(normalized cross correlation)などを用いることができる。
【００３９】
基準ブロックを構成する画素と、それぞれの画素に対応する、検出ブロックを構成する画素の画素値の差分の絶対値の総和を評価関数として用いる場合、その評価値（評価関数の値）は、例えば、次式で計算することができる。
【００４０】
【数１】
0004296617.tif 000002
・・・（１）
なお、式（１）において、ｘは、対応点を求めようとして注目している基準画像上の画素（注目画素）を表し、従って、基準ブロックを構成する中心の画素を表す。また、ｙは、検出ブロックを構成する中心の画素を表し、Ｓ（ｘ，ｙ）は、基準カメラ画像上の画素ｘを中心とする基準ブロックと、検出カメラ画像上の画素ｙを中心とする検出ブロックとの相関性を示す評価値を表す。さらに、ＷAまたはＷBは、基準ブロックまたは検出ブロックをそれぞれ表し、ｊ  ＷA，ＷBであるから、ｘ＋ｊは、基準ブロックＷAを構成する画素を表し、ｙ＋ｊは、画素ｘ＋ｊに対応する、検出ブロックＷBを構成する画素を、それぞれ表す。また、ＹA（ｘ＋ｊ）またはＹB（ｙ＋ｊ）は、それぞれ、画素ｘ＋ｊまたはｙ＋ｊの画素値を表す。
【００４１】
式（１）を用いる場合においては、例えば、画素ｙを、エピポーラライン上に設定された設定点に順次ずらしながら、評価値Ｓ（ｘ，ｙ）を計算し、その評価値Ｓ（ｘ，ｙ）を最も小さくする検出カメラ画像の画素ｙ（＝ｙmin）が、基準カメラ画像の画素ｘの対応点として検出される。なお、視差は、画素ｘとｙminとの位置から計算される。
【００４２】
また、例えば、基準ブロックを構成する画素と、それぞれの画素に対応する、検出ブロックを構成する画素の画素値の差分の自乗和を評価関数として用いる場合、その評価値は、例えば、次式で計算することができる。
【００４３】
【数２】
0004296617.tif 000003
・・・（２）
なお、式（２）において、ｘ，ｙは、画素のｘ座標、ｙ座標をそれぞれ表し、η，ξは、ｘ方向の視差、ｙ方向の視差をそれぞれ表す。そして、ＳＳＤ（ｘ，ｙ，η，ξ）は、視差が（η，ξ）であると仮定した場合の評価値、即ち、基準カメラ画像上の座標（ｘ，ｙ）に位置する画素を中心とする基準ブロックと、検出カメラ画像上の座標（ｘ−η，ｙ−ξ）に位置する画素を中心とする検出ブロックとの相関性を示す評価値を表す。また、ＷAまたはＷBは、基準ブロックまたは検出ブロックをそれぞれ表し、ｉ，ｊ  ＷA，ＷBであるから、（ｘ＋ｉ，ｙ＋ｊ）または（ｘ＋ｉ−η，ｙ＋ｊ−ξ）は、基準カメラ画像または検出カメラ画像上の座標をそれぞれ表す。そして、ＹA（ｘ＋ｉ，ｙ＋ｊ）は、基準カメラ画像上の座標（ｘ＋ｉ，ｙ＋ｊ）に位置する画素の画素値を表し、ＹB（ｘ＋ｉ−η，ｙ＋ｊ−ξ）は、検出カメラ画像上の座標（ｘ＋ｉ−η，ｙ＋ｊ−ξ）に位置する画素の画素値を表す。
【００４４】
式（２）を用いる場合には、視差（η，ξ）を変化させならが、評価値ＳＳＤ（ｘ，ｙ，η，ξ）を計算し、その評価値ＳＳＤ（ｘ，ｙ，η，ξ）を最も小さくする検出カメラ画像の画素（ｘ−η，ｙ−ξ）が、基準カメラ画像の画素（ｘ，ｙ）の対応点として検出される。なお、評価値ＳＳＤ（ｘ，ｙ，η，ξ）を最も小さくするときの視差（η，ξ）を、（ηmin，ξmin）と表すと、基準カメラの画素と、その対応点との距離としての視差ζは、次式で求められる。
【００４５】
【数３】
0004296617.tif 000004
・・・（３）
【００４６】
ここで、式（１）および（２）に示した評価値は、基準ブロックを構成する画素と、それぞれの画素に対応する、検出ブロックの画素との画素値の差が少ないほど小さくなる。従って、基準カメラ画像の画素ｎaについての評価値を最も小さくする検出カメラ画像の画素ｎbについては、その評価値が小さいほど、画素ｎaの対応点であることの確実性が大きく、逆に、その評価値が大きいほど、画素ｎaの対応点であることの確実性が低くなることになる。
【００４７】
次に、例えば、図７（Ａ）に示すように、背景となる壁の前方（基準カメラ１および検出カメラ２から見て手前）に置かれた対象物３を、基準カメラ１および検出カメラ２で撮影し、エピポーララインを用いてエリアベースマッチングを行うことにより、対応点の検出を行う場合を考える。
【００４８】
ここで、上述したように、視差を求めることとと、対象物３までの距離を求めることとは等価であり、以下では、対応点から、例えば、図６（Ａ）に示したような設定点／距離対応テーブルを参照して、距離を求めるものとして、説明を行う。さらに、以下では、例えば、式（１）の評価値を用いることとする。
【００４９】
図７（Ａ）に示した場合においては、基準カメラ１または検出カメラ２それぞれから、例えば、図７（Ｂ）に示すような基準カメラ画像または検出カメラ画像が得られる。
【００５０】
そして、いま、図７（Ｂ）に示した基準カメラ画像において、図８（Ａ）に示すように、対象物３の投影像である前景に接する背景の画素ｋ（図８（Ａ）において、■印で示す）の対応点ｋ’を検出することを考える。
【００５１】
この場合、例えば、画素ｋと対応点ｋ’との間の視差ζが大きいと、図８（Ｂ）に示すように、基準カメラ画像において前景に接する背景の画素ｋの、検出カメラ画像上の真の対応点ｋ’が、対象物３の投影像である前景から離れた位置に観察されることがある。
【００５２】
このような場合においては、基準カメラ画像の画素ｋを中心画素とする基準ブロックは、図８（Ｃ）に示すように、一部に前景の画素を含み、残りに背景の画素を含むものとなる。なお、図８（Ｃ）の実施の形態では、画素ｋを中心とする５×５画素（横×縦）が、基準ブロックとして構成されており、左側の２列が前景の画素で、右側の３列が背景の画素で、それぞれ構成されている。
【００５３】
図８（Ｃ）に示した場合において、基準ブロックの左側の２列と、右側の３列にそれぞれ対応する検出カメラ画像の画素は、図８（Ｄ）に示すように、２カ所に分かれる。即ち、基準ブロックの、前景の画素でなる左側の２列は、検出カメラ画像における前景の画素群Ａに対応する。一方、基準ブロックの、背景の画素でなる右側の３列は、検出カメラ画像における真の対応点ｋ’の部分の背景の画素群Ｂに対応する。
【００５４】
そして、このように、基準ブロックを構成する画素に対応する検出カメラ画像の画素が分かれる場合においては、基準ブロックについて計算される評価値が、画素群Ｂを含む検出ブロックを対象としたときよりも、画素群Ａを含む検出ブロックを対象としたときの方が小さくなることがある。即ち、図８（Ｅ）に示すように、検出カメラ画像において、前景に接する背景の画素ｋ’’を中心として構成される検出ブロックが、基準ブロックとの間の評価値を最も小さくすることがある。この場合、真の対応点ｋ’ではない点ｋ’’が、画素ｋの対応点として検出され、従って、対応点を誤検出することになり、その誤検出に起因して、画素ｋに対応する３次元空間上の点までの距離も、誤った値が求められることになる。即ち、上述のような対応点の誤検出があると、画素ｋに対応する３次元空間上の点までの距離は、前景を構成する対象物３までの距離に近い値となって求められる。そして、その結果、そのような距離を画素値とする距離画像は、対象物３の横幅が広がったようなものとなる。
【００５５】
ここで、以上のような対応点の誤検出は、前景と背景の絵柄が異なっている場合に比較的生じやすく、さらに、その絵柄が大きく異なっている場合には、特に生じやすい。
【００５６】
上述のような対応点の誤検出は、基準ブロック（従って、検出ブロックも）を小さくする（基準ブロックを構成する画素数を少なくする）ことにより低減することができるが、これでは、エリアベースマッチングによる対応点の検出の確実性が低下する。
【００５７】
そこで、図１の距離測定装置の演算処理回路６では、次のような距離の補正処理を行うことで、エリアベースマッチングによる対応点の検出の確実性を保ちつつ、上述のような前景と背景の境界部分、即ち、エッジ部分で生じる対応点の誤検出に起因する距離への影響を低減するようになされている。
【００５８】
即ち、演算処理回路６では、まず最初に、上述したようなステレオ処理により、基準カメラ画像の各画素について、検出カメラ画像の各画素が、式（１）に示した評価関数による評価値を用いてエリアベースマッチング法により対応付けられ（対応点が検出され）、基準カメラ画像の各画素に対応する３次元空間上の点までの距離が求められる。これにより、その距離を画素値とする距離画像が生成される。
【００５９】
次に、図９（Ａ）に示すように、基準カメラ画像の画素ｋを中心とする、その画素ｋの距離を補正するのに最適な画素（以下、適宜、最尤画素という）を検索する領域（範囲）としての小ブロック（以下、適宜、検索ブロックという）（図９（Ａ）において点線で囲んで示す）（第３のブロック）が構成される。なお、図９（Ａ）では、検索ブロックは、画素ｋについて構成される基準ブロックと同一とされている。
【００６０】
さらに、検索ブロックを構成する画素のうち、評価値の最小値が最も小さいものが、最尤画素として選択（検出）される。即ち、基準カメラ画像の画素ｋを中心とする検索ブロックに含まれる画素それぞれを中心とする基準ブロックそれぞれと、その検索ブロックに含まれる画素それぞれについて検出された検出カメラ画像上の対応点それぞれを中心とする検出ブロックそれぞれとの間の評価値の中で、最も小さい値が得られている検索ブロック内の画素が、対応点との対応付けが最も確からしく行われているものであるとして、その画素が、最尤画素として検出される。なお、図９（Ａ）では、画素ｋを中心とする検索ブロックの最も右上の画素ｋ2が、最尤画素として検出されている。
【００６１】
そして、距離画像の画素ｋの画素値としての距離を、その画素ｋについて検出された最尤画素の画素値となっている距離で、例えば置換することで、画素ｋの画素値としての距離が補正される。即ち、図９（Ａ）では、画素ｋについての距離（画素値）は、その検索ブロックの最も右上の画素ｋ2を最尤画素として、その最尤画素ｋ2についての距離（画素値）に置き換えられる。
【００６２】
従って、この補正処理では、基準カメラ画像における前景と背景との境界（エッジ）部分の画素ｋについて誤検出された、検出カメラ画像の対応点ｋ’’（図８）を無視する一方、例えば、図９（Ｂ）に示すように、対応点の誤検出が生じやすいエッジ部分を避けて、背景の画素と前景の画素とが混在しない基準ブロックを用いてエリアベースマッチングを行うことにより検出された対応点から求められた距離が、画素ｋの真の対応点ｋ’から求められる距離にほぼ等しいと推定し、そのような、いわば、より確からしい距離で、対応点が誤検出された画素についての距離が置き換えられる。
【００６３】
即ち、図９において、画素ｋについては、前景の画素と背景の画素とを含む基準ブロックが構成されるが（図９（Ａ））、その近くにある画素ｋ2については、背景の画素だけで基準ブロックが構成される（図９（Ｂ））。このため、画素ｋの対応点が誤検出される可能性は高い一方で、画素ｋ2の対応点が誤検出される可能性は低いため、画素ｋについての距離は、より正確である可能性が高い画素ｋ2についての距離に置き換えられる。
【００６４】
なお、検索ブロックの大きさは特に限定されるものではないが、あまり大きいと、画素ｋからの距離が遠い位置にある画素についての距離による置き換えが行われる場合がある。そして、そのような遠い位置にある画素についての距離が、画素ｋについての真の距離にほぼ等しいとは推定し難いため、検索ブロックの大きさはあまり大きくしない方が望ましい。一方、検索ブロックの大きさが小さすぎると、基準カメラ画像において、背景の画素と前景の画素とが混在しない基準ブロック（対応点の誤検出が生じやすいエッジ部分を避けた基準ブロック）が構成される画素が、画素ｋの検索ブロックに含まれなくなる。即ち、検索ブロックに、対応点の誤検出の可能性の低い画素が含まれなくなり、その結果、誤った対応点から求められた誤った距離による置き換えが行われる場合が生じる。従って、検索ブロックの大きさは、あまり小さくしない方が望ましい。即ち、検索ブロックは、以上のような不都合が生じないように、適切な大きさとするのが望ましい。
【００６５】
また、距離画像を構成する画素の画素値としての距離の補正は、その距離画像を構成する画素すべてを、順次、補正の対象として行うことも可能であるが、補正の対象とする画素（以下、適宜、補正対象画素という）を選択して行うことも可能である。この点については、後述する。
【００６６】
次に、図１０は、上述のようなステレオ処理および補正処理を行う図１の演算処理回路６の機能的構成例を示している。なお、この機能的構成は、例えば、演算処理回路６が、記憶装置７に記憶されたアプリケーションプログラムを実行することで実現される。
【００６７】
ステレオ処理部１１（検出手段）（処理手段）は、フレームメモリ５に記憶された基準カメラ画像および検出カメラ画像を読み出し、ステレオ処理を行うことで、距離画像等を求めるようになされている。即ち、ステレオ処理部１１は、エピポーララインを用いてエリアベースマッチングを行うことにより、基準カメラ画像の画素それぞれと対応する、検出カメラ画像の対応点を検出し、その対応点に基づき、基準カメラ画像の各画素について、その画素に投影された３次元空間上の点までの距離を求める。そして、ステレオ処理部１１は、その距離を画素値とする距離画像や、対応点を検出するときに得られた評価値を、距離画像記憶部１２に供給する。
【００６８】
距離画像記憶部１２は、ステレオ処理部１１から供給される距離画像および評価値を記憶するようになされている。
【００６９】
補正対象画素選択部１３（選択手段）は、距離画像記憶部１２に記憶された距離画像を構成する画素から、その画素値となっている距離の補正を行う対象（補正処理の対象）とする補正対象画素を選択し、補正部１４に指示するようになさている。補正部１４（補正手段）は、距離画像記憶部１２に記憶された距離画像を構成する画素のうち、補正対象画素選択部１３から補正対象画素として指示のあったものを対象に、その画素値としての距離を補正するようになされている。
【００７０】
距離画像記憶部１５は、距離画像記憶部１２に記憶された距離画像の、補正部１４による補正後のものを記憶するようになされている。
【００７１】
次に、図１１のフローチャートを参照して、図１０の演算処理回路６が行うステレオ処理について説明する。なお、ステレオ処理は、上述のように、ステレオ処理部１１で行われる。
【００７２】
上述のように、基準カメラ１または検出カメラ２それぞれでは、対象物３が撮影され、その結果得られる、例えば１フレームの基準カメラ画像または検出カメラ画像がフレームメモリ５に供給されて記憶される。
【００７３】
フレームメモリ５に、基準カメラ画像および検出カメラ画像が記憶されると、ステップＳ１において、基準カメラ画像（および距離画像）を構成する画素を表す変数ｉが、例えば、１に初期化され（ｉ＝１は、例えば、基準カメラ画像の最も左上の画素を表す）、ステップＳ２に進む。ステップＳ２では、基準カメラ画像の画素ｉについてのエピポーラライン（３次元空間の対象物上の点と、基準カメラ１の光学中心Ｏ1とを結ぶ直線を、検出カメラ画像（撮像面Ｓ2）上に投影したもの）上にあらかじめ設定された設定点に対応する距離番号ｊが、例えば、１に初期化され、ステップＳ３に進む。
【００７４】
ここで、基準カメラ画像の各画素についての、検出カメラ画像上におけるエピポーララインの検出や設定点の設定は、例えば、基準カメラ１および検出カメラ２のキャリブレーション時に行われているものとする。なお、３次元空間におけるエピポーラライン上の、距離番号ｊとｊ＋１に対応する設定点どうし（隣接する設定点どうし）の距離は、例えば、図１の距離測定装置に対して要求される距離分解能にしたがって決定される。
【００７５】
ステップＳ３では、基準カメラ画像の画素ｉについてのエピポーラライン上の距離番号ｊに対応する設定点の画素ｎ（ｉ，ｊ）が、検出カメラ画像から検出される。なお、画素ｎ（ｉ，ｊ）は、サブピクセルの精度とすることもできる。また、距離番号ｊと、それに対応する設定点ｎ（ｉ，ｊ）との関係は、例えば、キャリブレーション時に求めておき、テーブル（ルックアップテーブル）にしておくことで、距離番号ｊに対応する設定点の画素ｎ（ｉ，ｊ）は即座に求めることができる。
【００７６】
そして、ステップＳ４に進み、基準カメラ画像の画素ｉを中心とする基準ブロックＷＡ（ｉ）が、基準カメラ画像から抽出される（切り出される）とともに、検出カメラ画像の画素ｎ（ｉ，ｊ）を中心とする検出ブロックＷＢ（ｉ，ｊ）が、検出カメラ画像から抽出され、ステップＳ５に進む。
【００７７】
ステップＳ５では、基準ブロックＷＡ（ｉ）を構成する画素と、検出ブロックＷＢ（ｉ，ｊ）を構成する画素とを用い、例えば、式（１）で定義される評価値Ｓ（ｉ，ｎ（ｉ，ｊ））が計算され、ステップＳ６に進む。ここで、以下、適宜、評価値Ｓ（ｉ，ｎ（ｉ，ｊ））を、Ｓ（ｊ）と表す。なお、式（１）では、画素の輝度値を用いて、評価値Ｓ（ｊ）が計算されるから、評価値Ｓ（ｊ）は、基準ブロックＷＡ（ｉ）を構成する画素と、検出ブロックＷＢ（ｉ，ｊ）を構成する画素との間の輝度値に関する類似性を表すということができる。また、このように、評価値Ｓ（ｊ）を、輝度値を用いて計算する場合には、基準カメラ画像および検出カメラ画像は、輝度成分を有すれば良いから、基準カメラ１および検出カメラ２としては、輝度信号のみでなる濃淡画像を出力する（色信号を出力しない）、いわゆる白黒カメラを用いることができる。但し、式（１）による評価値の計算には、輝度信号だけでなく、色差信号も用いるようにすることが可能である。
【００７８】
ステップＳ６では、距離番号ｊが、その最大値Ｊに等しいかどうかが判定され、等しくないと判定された場合、ステップＳ７に進み、距離番号ｊが１だけインクリメントされる。そして、ステップＳ３に戻り、以下、ステップＳ３乃至Ｓ７の処理が繰り返される。即ち、これにより、画素ｉについてのエピポーラライン上に設定されたすべての設定点について、画素ｉとの相関（ここでは、式（１）で表される評価値）が計算される。
【００７９】
一方、ステップＳ６において、距離番号ｊが最大値Ｊに等しいと判定された場合、即ち、画素ｉについてのエピポーラライン上に設定されたすべての設定点について、画素ｉとの評価値Ｓ（ｊ）が計算された場合、ステップＳ８に進み、評価値Ｓ（ｊ）を最小にする（相関を最大にする）距離番号ｊが求められる。ここで、この評価値Ｓ（ｊ）を最小にする（相関を最大にする）距離番号ｊを、以下、適宜、最小距離番号ｊmaxと表す。
【００８０】
なお、最小距離番号ｊmaxに対応する設定点ｎ（ｉ，ｊmax）が、画素ｉの対応点であり、従って、最小距離番号ｊmaxを求めることは、対応点ｎ（ｉ，ｊmax）を検出することと等価である。
【００８１】
また、距離番号ｊは、ここでは、整数の値をとるが、図５で説明したような補間を行うことで、小数の値をとる最小距離番号ｊmaxを求めるようにすることも可能である。
【００８２】
その後、ステップＳ９に進み、最小距離番号ｊmaxから特定される距離が、距離画像を構成する画素ｉについての画素値として、ステレオ処理部１１から距離画像記憶部１２に供給されて記憶される。さらに、ステップＳ１０に進み、評価値Ｓ（ｊmax）が、距離画像記憶部１２に供給され、画素ｉの最終的な評価値Ｓ（ｉ）として、その画素ｉについての距離と対応付けられて記憶され、ステップＳ１１に進む。
【００８３】
ステップＳ１１では、画素ｉが、基準カメラ画像を構成する最後の画素（例えば、基準カメラ画像の最も右下の画素）Ｉに等しいかどうかが判定され、等しくないと判定された場合、ステップＳ１２に進み、変数ｉが１だけインクリメントされ、ステップＳ２に戻る。そして、次に処理すべき画素（例えば、いま処理対象とされていた画素の、ラインスキャン順で次の画素）ｉを対象に、以下、同様の処理が繰り返される。
【００８４】
また、ステップＳ１１において、画素ｉが、基準カメラ画像を構成する最後の画素Ｉに等しいと判定された場合、即ち、基準カメラ画像を構成する画素すべてについて距離と評価値（最終的な評価値）Ｓ（ｊmax）が求められた場合、ステレオ処理を終了する。
【００８５】
なお、図１１では、基準カメラ画像を構成するすべての画素について、ステレオ処理を行うようにしたが、ステレオ処理は、基準カメラ画像を構成する一部の画素のみを対象に行うようにすることも可能である。
【００８６】
次に、図１２のフローチャートを参照して、図１０の演算処理回路６が行う補正処理について説明する。なお、補正処理は、ステレオ処理が行われた後、補正対象画素選択部１３および補正部１４において行われる。
【００８７】
補正処理では、まず最初に、ステップＳ２１において、距離画像（および基準カメラ画像）を構成する画素を表す変数ｉが、例えば、１に初期化され、ステップＳ２２に進む。ステップＳ２２では、補正対象画素選択部１３において、距離画像記憶部１２に記憶されている、画素ｉの評価値Ｓ（ｉ）（図１１のステップＳ１０で記憶された最終的な評価値Ｓ（ｉ））が読み出され、その評価値Ｓ（ｉ）が、所定の閾値εよりも小さいかどうかが判定される。
【００８８】
ステップＳ２２において、画素ｉの評価値Ｓ（ｉ）が閾値εより小さいと判定された場合、即ち、基準カメラ画像の画素ｉについて、対応点を検出した際の評価値の最小値Ｓ（ｉ）（図１１で説明したＳ（ｊmax）に等しい）が、所定の閾値εより小さく、従って、検出した対応点が、真の対応点である確実性が高い場合、ステップＳ３１に進む。ステップＳ３１では、補正部１４は、画素ｉの距離Ｚ（ｉ）を距離画像記憶部１２から読み出して、距離画像記憶部１５に供給して記憶させ、ステップＳ２９に進む。従って、この場合、ステレオ処理で求められた、画素ｉについての距離Ｚ（ｉ）の補正は行われない。
【００８９】
一方、ステップＳ２２において、画素ｉの評価値Ｓ（ｉ）が閾値εより小さくないと判定された場合、即ち、基準カメラ画像の画素ｉについて、対応点を検出した際の評価値の最小値Ｓ（ｉ）が、所定の閾値ε以上であり、従って、検出した対応点が、真の対応点である確実性が低い場合、ステップＳ２３に進み、以下、ステレオ処理で求められた、画素ｉについての距離の補正が、図９で説明したようにして行われる。
【００９０】
即ち、補正対象画素選択部１３では、画素ｉが補正対象画素として選択され、補正部１４に知らされる。補正部１４は、補正対象画素選択部１３から、画素ｉが補正対象画素であるとの知らせを受けると、ステップＳ２３において、画素ｉを中心とする検索ブロックＷ内の画素を表す変数ｊが、例えば、その検索ブロックＷ内の最も左上の画素を表す値ｊ0に初期化される。さらに、ステップＳ２３では、補正部１４において、距離画像記憶部１２を参照することで、検索ブロックＷ内の画素の最小の評価値を保持する変数Ｓminが、例えば、画素ｊ0の評価値Ｓ（ｊ0）に初期化されるとともに、距離を保持する変数Ｚが、例えば、画素ｊ0についての距離Ｚ（ｊ0）に初期化される。
【００９１】
そして、ステップＳ２４に進み、補正部１４は、画素ｊについての評価値Ｓ（ｊ）を、距離画像記憶部１２から読み出し、変数Ｓminが、評価値Ｓ（ｊ）より小さいかどうかを判定する。ステップＳ２４において、変数Ｓminが、評価値Ｓ（ｊ）より小さくないと判定された場合、即ち、評価値Ｓ（ｊ）が、変数Ｓmin以下である場合、ステップＳ２５に進み、補正部１４は、変数Ｓminに、評価値Ｓ（ｊ）を新たにセットするとともに、変数Ｚに、画素ｊについての距離Ｚ（ｊ）を新たにセットし、ステップＳ２６に進む。
【００９２】
また、ステップＳ２４において、変数Ｓminが、評価値Ｓ（ｊ）より小さいと判定された場合、ステップＳ２５をスキップして、ステップＳ２６に進み、画素ｊが、検索ブロックＷ内の最後の画素（例えば、検索ブロックＷの最も右下の画素）であるかどうかが判定される。ステップＳ２６において、画素ｊが、検索ブロックＷ内の最後の画素でないと判定された場合、ステップＳ２７に進み、変数ｊに、検索ブロックＷ内の画素の中で、まだ、評価値が、変数Ｓminと比較されていないものを表す値がセットされ（例えば、検索ブロックＷの画素のうち、いま処理の対象となっている画素の、ラインスキャン順で次の画素を表す値がセットされ）、ステップＳ２４に戻る。そして、ステップＳ２６において、画素ｊが、検索ブロックＷ内の最後の画素であると判定されるまで、ステップＳ２４乃至Ｓ２７の処理が繰り返される。即ち、これにより、変数Ｓminには、検索ブロックＷ内の画素の評価値のうちの最小値、つまり最尤画素の評価値がセットされ、変数Ｚには、その最尤画素についての距離がセットされる。
【００９３】
そして、ステップＳ２６において、画素ｊが、検索ブロックＷ内の最後の画素であると判定されると、ステップＳ２８に進み、補正部１４は、距離画像記憶部１２に記憶された画素ｉについての距離Ｚ（ｉ）を、最尤画素の距離Ｚに置き換えることで補正し、ステップＳ２９に進む。即ち、補正部１４は、距離画像記憶部１５に、画素ｉの距離として、最尤画素の距離Ｚを書き込み、ステップＳ２９に進む。
【００９４】
ステップＳ２９では、図１１のステップＳ１１における場合と同様に、画素ｉが、距離画像を構成する最後の画素Ｉに等しいかどうかが判定され、等しくないと判定された場合、ステップＳ３０に進み、変数ｉが１だけインクリメントされ、ステップＳ２２に戻る。従って、この場合、次に処理すべき画素ｉを対象に、以下、同様の処理が繰り返される。
【００９５】
また、ステップＳ２９において、画素ｉが、距離画像を構成する最後の画素Ｉに等しいと判定された場合、補正処理を終了する。
【００９６】
以上のように、評価値が所定の閾値εをより小さくない画素を補正対象画素として選択し、その補正対象画素の距離を、検索ブロック内で評価値が最小の画素の距離に置き換えることで補正するようにした場合には、検出された対応点が真の対応点である確実性が低い画素の距離が、その画素の近傍の画素であって、検出された対応点が真の対応点である確実性が最も高いものの距離に置き換えられるので、エリアベースマッチングによる対応点の検出の確実性を保ちつつ、図８で説明したような前景と背景の境界部分、即ち、エッジ部分で生じる対応点の誤検出に起因する距離への影響を低減し、比較的正確な距離を得ることができる。
【００９７】
なお、距離画像を構成する画素を、補正対象画素とするか否かの判定に用いる評価値の閾値εは、例えば、実験等により最適な値に設定する。あるいは、また、閾値εは、フレームメモリ５に記憶された基準カメラ画像および検出カメラ画像の画素値から、適応的に設定するようにすることも可能である。
【００９８】
次に、上述のように、評価値が所定の閾値εより小さくない画素を補正対象画素として選択し、その補正対象画素の距離を、検索ブロック内で評価値が最小の画素（最尤画素）の距離に置き換える場合には、評価値にそれほど大きな差がないのに、その最尤画素を含んで構成される検索ブロックの中心に位置する画素の距離が、その最尤画素の距離に置き換えられることがある。従って、例えば、あるひとかたまりの画素それぞれの評価値が、いずれも、閾値εより幾分大きく、かつ、そのひとかたまりの画素の周辺に、評価値が閾値εより幾分小さい画素が存在すると、そのひとかたまりの画素それぞれの距離が、その周辺にある評価値の小さな画素の距離に置き換えられる。この場合、そのひとかたまりの画素それぞれの距離が、同一の距離とされるため、距離画像に、ブロック状の歪みが生じる。
【００９９】
即ち、図１３に示すように、例えば、円柱などの、距離（奥行き）が連続して変化する対象物３について得られた距離画像に対して、図１２で説明した補正処理を施した場合には、円柱の側面のある点を投影した点が補正対象画素とされ、その補正対象画素とされた画素の距離と最尤画素の距離とが連続して変化していても（その２つの距離の間に大きな差はないが、幾分かの差がある）、その補正対象画素の距離が、それを中心とする検索ブロック内の最尤画素の距離に置換されることがある。この場合、補正対象画素とされた画素の距離と、最尤画素の距離とが同一となるため、円柱の側面における距離の滑らかな変化（距離の連続性）が失われる。
【０１００】
そこで、補正処理は、ある画素の距離と、その画素を中心とする検索ブロック内の最尤画素との距離との差が、ある程度大きい場合に、その画素を補正対象画素として行うようにすることができる。この場合、ある画素の距離と、その画素を中心とする検索ブロック内の最尤画素との距離との差が小さいときには、その画素は補正対象画素とされなくなり、その結果、例えば、上述したような円柱の側面などにおける距離の連続性が失われることを防止し、エッジ部分で生じる対応点の誤検出に起因する距離への影響のみを低減することが可能となる。
【０１０１】
即ち、図１４は、図１０の演算処理回路６に、そのような補正処理を行わせる場合のフローチャートを示している。
【０１０２】
この場合、まず最初に、ステップＳ４１において、距離画像（および基準カメラ画像）を構成する画素を表す変数ｉが、例えば、１に初期化され、ステップＳ４３に進む。ステップＳ４３では、図１２のステップＳ２３における場合と同様に、画素ｉを中心とする検索ブロックＷ内の画素を表す変数ｊが、例えば、その検索ブロックＷ内の最も左上の画素を表す値ｊ0に初期化され、検索ブロックＷ内の画素の最小の評価値を保持する変数Ｓminが、例えば、画素ｊ0の評価値Ｓ（ｊ0）に初期化されるとともに、距離を保持する変数Ｚが、例えば、画素ｊ0についての距離Ｚ（ｊ0）に初期化される。
【０１０３】
そして、ステップＳ４４に進み、以下、ステップＳ４４乃至４７において、図１２のステップＳ２４乃至Ｓ２７それぞれにおける場合と同様の処理が行われることで、変数Ｓminには、検索ブロックＷ内の画素の評価値のうちの最小値、即ち、最尤画素の評価値がセットされ、変数Ｚには、その最尤画素についての距離がセットされる。
【０１０４】
変数Ｓminに、最尤画素の評価値がセットされるとともに、変数Ｚに、その最尤画素についての距離がセットされると、ステップＳ４６からステップＳ４８に進み、補正対象画素選択部１３において、距離画像記憶部１２から、画素ｉの距離Ｚ（ｉ）が読み出され、その距離Ｚ（ｉ）と変数Ｚとの差の絶対値（＝｜Ｚ（ｉ）−Ｚ｜）が、所定の閾値Ｔｈより小さいかどうかが判定される。
【０１０５】
ステップＳ４８において、画素ｉの距離Ｚ（ｉ）と変数Ｚとの差の絶対値が、閾値Ｔｈより小さくないと判定された場合、即ち、画素ｉの距離Ｚ（ｉ）と、その画素ｉを中心とする検索ブロックＷ内の最尤画素との距離Ｚとの差が、ある程度大きい場合、補正対象画素選択部１３は、画素ｉを補正対象画素として選択し、その旨を、補正部１４に知らせる。補正部１４は、補正対象画素選択部１３から、画素ｉが補正対象画素であるとの知らせを受けると、ステップＳ４９に進み、距離画像記憶部１２に記憶された画素ｉについての距離Ｚ（ｉ）を、最尤画素の距離Ｚに置き換えることで補正し、即ち、距離画像記憶部１５に、画素ｉの距離として、最尤画素の距離Ｚを書き込み、ステップＳ５０に進む。
【０１０６】
また、ステップＳ４８において、画素ｉの距離Ｚ（ｉ）と変数Ｚとの差の絶対値が、閾値Ｔｈより小さいと判定された場合、補正対象画素選択部１３は、画素ｉを補正対象画素として選択しないで、ステップＳ５２に進む。ステップＳ５２では、補正部１４は、画素ｉの距離Ｚ（ｉ）を距離画像記憶部１２から読み出して、距離画像記憶部１５に供給して記憶させ、ステップＳ５０に進む。従って、この場合、ステレオ処理で求められた、画素ｉについての距離Ｚ（ｉ）の補正は行われない。
【０１０７】
ステップＳ５０では、図１２のステップＳ２９における場合と同様に、画素ｉが、距離画像を構成する最後の画素Ｉに等しいかどうかが判定され、等しくないと判定された場合、ステップＳ５１に進み、変数ｉが１だけインクリメントされ、ステップＳ４３に戻る。そして、次に処理すべき画素ｉを対象に、以下、同様の処理が繰り返される。
【０１０８】
また、ステップＳ５０において、画素ｉが、距離画像を構成する最後の画素Ｉに等しいと判定された場合、補正処理を終了する。
【０１０９】
なお、距離画像を構成する画素を、補正対象画素とするか否かの判定に用いる距離の閾値Ｔｈは、例えば、実験等により最適な値に設定し、あるいは、距離画像記憶部５に記憶された距離画像の画素の画素値としての距離から、適応的に設定することが可能である。
【０１１０】
また、図１４の実施の形態では、ある画素ｉの距離Ｚ（ｉ）と、その画素ｉを中心とする検索ブロックＷ内の最尤画素との距離との差が、閾値Ｔｈ以上の場合にのみ、その画素ｉを補正対象画素として選択するようにしたが、ある画素ｉの距離Ｚ（ｉ）と、その画素ｉを中心とする検索ブロックＷ内の最尤画素との距離との差が、閾値Ｔｈ以上であり、かつ画素ｉの評価値Ｓ（ｉ）が閾値ε以上の場合に、その画素ｉを補正対象画素として選択することも可能である。この場合の補正処理は、図１５のフローチャートに示すようになる。即ち、そのような補正対象画素の選択は、図１４のステップＳ４１の処理後に、図１２のステップＳ２２と同様に、画素ｉの評価値Ｓ（ｉ）が、閾値εよりも小さいかどうかを判定するステップＳ４２を設け、画素ｉの評価値Ｓ（ｉ）が、閾値εよりも小さくない場合には、ステップＳ４３に進み、小さい場合には、ステップＳ５２に進むようにすれば良い。
【０１１１】
次に、図１４の実施の形態では、ある画素ｉを中心とする検索ブロックＷを構成する画素の評価値どうしを比較し、検索ブロックＷの中で、最小の評価値を有する画素（最尤画素）を見つけてから（ステップＳ４４乃至Ｓ４７）、距離の差を考慮して、画素ｉを、補正対象画素として選択するかどうかを判定するようにしたが（ステップＳ４８）、その他、例えば、距離の差を考慮して、検索ブロックの中で、最尤画素となり得る画素を、あらかじめ選択し、その選択された画素についてだけ、評価値どうしの比較を行うようにすることが可能である。
【０１１２】
さらに、図１４の実施の形態では、画素ｉの距離Ｚ（ｉ）と、その画素ｉを中心とする検索ブロックＷの中の最尤画素の距離Ｚとの差（の絶対値）に基づいて、画素ｉを、補正対象画素として選択するかどうかを判定するようにしたが（ステップＳ４８）、その他、例えば、画素ｉの、基準カメラ画像における輝度や色情報（例えば、彩度や色相など）などの画素値にも基づいて、画素ｉを、補正対象画素として選択するかどうかを判定するようにすることが可能である。
【０１１３】
即ち、図１６は、図１０の演算処理回路６に、そのような補正処理を行わせる場合のフローチャートを示している。
【０１１４】
この場合、まず最初に、ステップＳ６１において、距離画像（および基準カメラ画像）を構成する画素を表す変数ｉが、例えば、１に初期化され、ステップＳ６２に進む。ステップＳ６２では、補正対象画素選択部１３において、画素ｉの基準カメラ画像上の画素値としての、例えば、輝度Ｙ（ｉ）が、フレームメモリ５から、図１０において点線で示すように読み出される。さらに、補正対象画素選択部１３は、ステップＳ５２において、距離画像記憶部１２から、画素ｉの距離Ｚ（ｉ）を読み出し、ステップＳ６３に進む。
【０１１５】
ステップＳ６３では、補正対象画素選択部１３において、図１２のステップＳ２３における場合と同様に、画素ｉを中心とする検索ブロックＷ内の画素を表す変数ｊが、例えば、その検索ブロックＷ内の最も左上の画素を表す値ｊ0に初期化される。さらに、補正対象画素選択部１３は、ステップＳ６３において、変数ＳminまたはＺを、評価値または距離としてそれぞれ取り得ない値である、例えば、−１に初期化し、ステップＳ６４に進む。
【０１１６】
ステップＳ６４では、補正対象画素選択部１３において、画素ｊの、基準カメラ画像上の輝度Ｙ（ｊ）が、フレームメモリ５から読み出されるとともに、その距離Ｚ（ｊ）が、距離画像記憶部１２から読み出される。さらに、ステップＳ６４では、補正対象画素記憶部１３において、画素ｉの輝度Ｙ（ｉ）と、画素ｊの輝度Ｙ（ｊ）との差の絶対値（＝｜Ｙ（ｉ）−Ｙ（ｊ）｜）が、所定の閾値ＴｈYより小さく、かつ画素ｉの距離Ｚ（ｉ）と、画素ｊの距離Ｚ（ｊ）との差の絶対値（＝｜Ｚ（ｉ）−Ｚ｜）が、所定の閾値ＴｈZより大きいかどうかが判定される。
【０１１７】
ここで、閾値ＴｈYは、例えば、実験等により最適な値に設定し、あるいは、フレームメモリ５に記憶された基準カメラ画像および検出カメラ画像の画素値から、適応的に設定することが可能である。また、閾値ＴｈZは、図１４で説明した閾値Ｔｈと同様に設定することが可能である。
【０１１８】
ステップＳ６４において、画素ｉの輝度Ｙ（ｉ）と、画素ｊの輝度Ｙ（ｊ）との差の絶対値が、所定の閾値ＴｈYより小さくないか、または画素ｉの距離Ｚ（ｉ）と、画素ｊの距離Ｚ（ｊ）との差の絶対値が、所定の閾値ＴｈZより大きいくないと判定された場合、ステップＳ６５乃至Ｓ６８をスキップして、ステップＳ６９に進む。
【０１１９】
また、ステップＳ６４において、画素ｉの輝度Ｙ（ｉ）と、画素ｊの輝度Ｙ（ｊ）との差の絶対値が、所定の閾値ＴｈYより小さく、かつ画素ｉの距離Ｚ（ｉ）と、画素ｊの距離Ｚ（ｊ）との差の絶対値が、所定の閾値ＴｈZより大きいと判定された場合、ステップＳ６５に進み、補正対象画素選択部１３において、変数Ｓmin（またはＺ）が、初期値である−１に等しいかどうかが判定される。
【０１２０】
ステップＳ６５において、変数Ｓminが−１に等しいと判定された場合、ステップＳ６６に進み、補正対象画素選択部１３は、画素ｊについての評価値Ｓ（ｊ）を、距離画像記憶部１２から読み出し、変数Ｓminにセットするとともに、画素ｊの距離Ｚ（ｊ）を、変数Ｚにセットし、ステップＳ６９に進む。
【０１２１】
また、ステップＳ６５において、変数Ｓminが−１に等しくないと判定された場合、ステップＳ６７に進み、補正対象画素選択部１３において、変数Ｓminが、画素ｊについての評価値Ｓ（ｊ）より小さいかどうかが判定される。ステップＳ６７において、変数Ｓminが、評価値Ｓ（ｊ）より小さいと判定された場合、ステップＳ６８に進み、補正対象画素選択部１３は、変数Ｓminに、画素ｊについての評価値Ｓ（ｊ）をセットするとともに、変数Ｚに、画素ｊの距離Ｚ（ｊ）をセットし、ステップＳ６９に進む。
【０１２２】
また、ステップＳ６７において、変数Ｓminが、評価値Ｓ（ｊ）より小さくないと判定された場合、ステップＳ６８をスキップして、ステップＳ６９に進み、図１２のステップＳ２６における場合と同様に、画素ｊが、検索ブロックＷ内の最後の画素であるかどうかが判定される。ステップＳ６９において、画素ｊが、検索ブロックＷ内の最後の画素でないと判定された場合、ステップＳ７０に進み、図１２のステップＳ２７における場合と同様に、変数ｊに、検索ブロックＷ内の画素の中で、まだ、評価値が、変数Ｓminと比較されていないものを表す値がセットされ、ステップＳ６４に戻る。そして、ステップＳ６９において、画素ｊが、検索ブロックＷ内の最後の画素であると判定されるまで、ステップＳ６４乃至Ｓ７０の処理が繰り返される。
【０１２３】
即ち、これにより、検索ブロックＷ内に、その中心に位置する画素ｉの輝度Ｙ（ｉ）との差が、閾値ＴｈY未満の輝度を有し、かつ画素ｉの距離Ｚ（ｉ）との差が、閾値ＴｈZより大きい画素ｊが存在すれば、その画素ｊが、画素ｉの距離Ｚ（ｉ）の補正に用いるのに適切な画素（以下、適宜、適切画素という）として選択される。そして、検索ブロックＷの中の適切画素のうち、評価値が最も小さいものが、最尤画素として選択され、その最尤画素の評価値または距離が、変数ＳminまたはＺに、それぞれセットされる。
【０１２４】
そして、ステップＳ６９において、画素ｊが、検索ブロックＷ内の最後の画素であると判定されると、ステップＳ７１に進み、補正対象画素選択部１３は、変数Ｓmin（またはＺ）が、初期値である−１に等しいかどうかを判定する。ステップＳ７１において、変数Ｓminが−１に等しくないと判定された場合、即ち、変数minに、検索ブロックＷ内のいずれかの画素（最尤画素）についての評価値がセットされている場合、補正対象画素選択部１３は、画素ｉを、補正対象画素として選択し、補正部１４に知らせ、ステップＳ７２に進む。
【０１２５】
補正部１４は、補正対象画素選択部１３から、画素ｉが補正対象画素であるとの知らせを受けると、ステップＳ７２において、距離画像記憶部１２に記憶された画素ｉについての距離Ｚ（ｉ）を、最尤画素の距離（変数）Ｚに置き換えることで補正し、即ち、距離画像記憶部１５に、画素ｉの距離として、最尤画素の距離Ｚを書き込み、ステップＳ７３に進む。
【０１２６】
また、ステップＳ７１において、変数Ｓminが−１に等しいと判定された場合、即ち、検索ブロックＷ内に、その中心に位置する画素ｉの輝度Ｙ（ｉ）との差が、閾値ＴｈY未満の輝度を有し、かつ画素ｉの距離Ｚ（ｉ）との差が、閾値ＴｈZより大きい画素ｊが存在しない場合、つまり、適切画素が存在しない場合、ステップＳ７５に進み、補正部１４は、画素ｉの距離Ｚ（ｉ）を距離画像記憶部１２から読み出して、距離画像記憶部１５に供給して記憶させ、ステップＳ７３に進む。従って、この場合、画素ｉは補正対象画素として選択されず、その結果、その距離Ｚ（ｉ）は補正されない。
【０１２７】
ステップＳ７３では、図１１のステップＳ１１における場合と同様に、画素ｉが、距離画像を構成する最後の画素Ｉに等しいかどうかが判定され、等しくないと判定された場合、ステップＳ７４に進み、変数ｉが１だけインクリメントされ、ステップＳ６２に戻る。そして、次に処理すべき画素ｉを対象に、以下、同様の処理が繰り返される。
【０１２８】
また、ステップＳ７３において、画素ｉが、距離画像を構成する最後の画素Ｉに等しいと判定された場合、補正処理を終了する。
【０１２９】
従って、図１６の実施の形態によれば、検索ブロックＷ内に、その中心に位置する画素ｉの輝度Ｙ（ｉ）との差が、閾値ＴｈY未満の輝度を有し、かつ画素ｉの距離Ｚ（ｉ）との差が、閾値ＴｈZより大きい適切画素が存在すれば、画素ｉが補正対象画素として選択される。そして、適切画素の中で、評価値が最も小さい画素が最尤画素として選択され、その最尤画素の距離への置換が行われることで、補正対象画素ｉの距離Ｚ（ｉ）が補正される。
【０１３０】
次に、図１７は、補正処理の他の実施の形態を示すフローチャートであり、この補正処理によっても、図１６のフローチャートに示した場合と同様の補正処理を行うことができる。
【０１３１】
即ち、この場合、まず最初に、ステップＳ８１において、距離画像（および基準カメラ画像）を構成する画素を表す変数ｉが、例えば、１に初期化され、ステップＳ８２に進む。ステップＳ８２では、補正対象画素選択部１３において、画素ｉの基準カメラ画像上の画素値としての、例えば、輝度Ｙ（ｉ）が、フレームメモリ５から、図１０において点線で示すように読み出される。さらに、補正対象画素選択部１３は、ステップＳ８２において、距離画像記憶部１２から、画素ｉの距離Ｚ（ｉ）を読み出し、ステップＳ８３に進む。
【０１３２】
ステップＳ８３では、補正対象画素選択部１３において、図１２のステップＳ２３における場合と同様に、画素ｉを中心とする検索ブロックＷ内の画素を表す変数ｊが、例えば、その検索ブロックＷ内の最も左上の画素を表す値ｊ0に初期化される。さらに、補正対象画素選択部１３は、ステップＳ８３において、変数ＳminまたはＺを、画素ｉの評価値Ｓ（ｉ）または距離Ｚ（ｉ）にそれぞれ初期化し、ステップＳ８４に進む。
【０１３３】
ステップＳ８４では、補正対象画素選択部１３において、画素ｊの、基準カメラ画像上の輝度Ｙ（ｊ）が、フレームメモリ５から読み出されるとともに、その距離Ｚ（ｊ）が、距離画像記憶部１２から読み出される。さらに、ステップＳ８４では、補正対象画素記憶部１３において、画素ｉの輝度Ｙ（ｉ）と、画素ｊの輝度Ｙ（ｊ）との差の絶対値（＝｜Ｙ（ｉ）−Ｙ（ｊ）｜）が、所定の閾値ＴｈYより小さく、かつ画素ｉの距離Ｚ（ｉ）と、画素ｊの距離Ｚ（ｊ）との差の絶対値（＝｜Ｚ（ｉ）−Ｚ｜）が、所定の閾値ＴｈZより大きいかどうかが判定される。
【０１３４】
ステップＳ８４において、画素ｉの輝度Ｙ（ｉ）と、画素ｊの輝度Ｙ（ｊ）との差の絶対値が、所定の閾値ＴｈYより小さくないか、または画素ｉの距離Ｚ（ｉ）と、画素ｊの距離Ｚ（ｊ）との差の絶対値が、所定の閾値ＴｈZより大きいくないと判定された場合、ステップＳ８５および８６をスキップして、ステップＳ８７に進む。
【０１３５】
また、ステップＳ８４において、画素ｉの輝度Ｙ（ｉ）と、画素ｊの輝度Ｙ（ｊ）との差の絶対値が、所定の閾値ＴｈYより小さく、かつ画素ｉの距離Ｚ（ｉ）と、画素ｊの距離Ｚ（ｊ）との差の絶対値が、所定の閾値ＴｈZより大きいと判定された場合、ステップＳ８５に進み、補正対象画素選択部１３において、変数Ｓminが、画素ｊについての評価値Ｓ（ｊ）より小さいかどうかが判定される。ステップＳ８５において、変数Ｓminが、評価値Ｓ（ｊ）より小さいと判定された場合、ステップＳ８６に進み、補正対象画素選択部１３は、変数Ｓminに、画素ｊについての評価値Ｓ（ｊ）をセットするとともに、変数Ｚに、画素ｊの距離Ｚ（ｊ）をセットし、ステップＳ８７に進む。
【０１３６】
また、ステップＳ８５において、変数Ｓminが、評価値Ｓ（ｊ）より小さくないと判定された場合、ステップＳ８６をスキップして、ステップＳ８７に進み、図１２のステップＳ２６における場合と同様に、画素ｊが、検索ブロックＷ内の最後の画素であるかどうかが判定される。ステップＳ８７において、画素ｊが、検索ブロックＷ内の最後の画素でないと判定された場合、ステップＳ８８に進み、図１２のステップＳ２７における場合と同様に、変数ｊに、検索ブロックＷ内の画素の中で、まだ、評価値が、変数Ｓminと比較されていないものを表す値がセットされ、ステップＳ８４に戻る。そして、ステップＳ８７において、画素ｊが、検索ブロックＷ内の最後の画素であると判定されるまで、ステップＳ８４乃至Ｓ８８の処理が繰り返される。
【０１３７】
即ち、これにより、検索ブロックＷの中から適切画素が選択され、その適切画素のうち、評価値が最も小さいものが、最尤画素として選択され、その最尤画素の評価値または距離が、変数ＳminまたはＺに、それぞれセットされる。なお、検索ブロックＷの中に適切画素が存在しない場合には、変数ＳminまたはＺそれぞれは、ステップＳ８３でセットされた画素ｉの評価値Ｓ（ｉ）または距離Ｚ（ｉ）がセットされたままの状態になっている。
【０１３８】
そして、ステップＳ８７において、画素ｊが、検索ブロックＷ内の最後の画素であると判定されると、ステップＳ８９に進み、補正部１４は、距離画像記憶部１２に記憶された画素ｉについての距離Ｚ（ｉ）を、変数Ｚに置き換えることで補正し、即ち、変数Ｚを、画素ｉの距離として、距離画像記憶部１５に供給して記憶させ、ステップＳ９０に進む。
【０１３９】
ここで、上述したように、検索ブロックＷの中に適切画素が存在する場合には、そのうちの評価値が最小のものが最尤画素として選択され、その距離が変数Ｚにセットされるから、その場合の検索ブロックＷの中心にある画素ｉの距離Ｚ（ｉ）が、変数Ｚに置き換えられるということは、実質的に、画素ｉが補正対象画素として選択され、その距離Ｚ（ｉ）の補正が行われたことになる。一方、検索ブロックＷの中に適切画素が存在しない場合には、変数Ｚには、画素ｉの距離Ｚ（ｉ）がセットされた状態となっているから、その場合の検索ブロックＷの中心にある画素ｉの距離Ｚ（ｉ）が、変数Ｚに置き換えられるということは、実質的に、何らの補正も行われていないのと等価であり、従って、画素ｉは、補正対象画素として選択されていないことになる。
【０１４０】
ステップＳ９０では、図１１のステップＳ１１における場合と同様に、画素ｉが、距離画像を構成する最後の画素Ｉに等しいかどうかが判定され、等しくないと判定された場合、ステップＳ９１に進み、変数ｉが１だけインクリメントされ、ステップＳ８２に戻る。そして、次に処理すべき画素ｉを対象に、以下、同様の処理が繰り返される。
【０１４１】
また、ステップＳ９０において、画素ｉが、距離画像を構成する最後の画素Ｉに等しいと判定された場合、補正処理を終了する。
【０１４２】
以上のように、画素ｉの距離Ｚ（ｉ）との差だけでなく、その基準カメラ画像上の画素値との差に基づいて、画素ｉを補正対象画素とするかどうかの選択を行い、さらに、画素値の差が小さい画素である適切画素から、最尤画素を選択し、画素ｉの距離を、最終画素の距離で補正することにより、画素ｉについて、誤った補正が行われるのを防止することが可能となる。
【０１４３】
即ち、基準カメラ画像および検出カメラ画像として、例えば、前景の輝度が低く、かつ背景の輝度が高い画像（前景が暗く、背景が明るい画像）が得られた場合においても、上述したように、エッジ部分では、背景を構成するある画素ｉについて、対応点が誤検出され、これにより、その距離として、前景の距離が誤って求められることがある。
【０１４４】
画素ｉを中心とする検索ブロックを構成する画素の中では、一般に、背景の画素のみで基準ブロックが構成されるものについての評価値の方が、前景および背景の両方の画素で基準ブロックが構成されるものについての評価値より小さくなるので、図１２で説明したように、そのような小さい評価値が得られる背景の画素の距離で、画素ｉの距離を置換することにより、画素ｉの距離は、誤った前景の距離から、正しい背景の距離に補正されることになる。
【０１４５】
しかしながら、前景の輝度が低く、かつ背景の輝度が高い場合には、上述の場合とは逆に、前景および背景の両方の画素で基準ブロックが構成される画素についての評価値の方が、背景の画素のみで基準ブロックが構成される画素についての評価値より小さくなることがある。従って、そのような小さな評価値が得られる画素が、前景の画素である場合には、図１２で説明したように、小さい評価値が得られる前景の画素の距離で、画素ｉの距離を置換すると、画素ｉの距離は、誤った前景の距離から、やはり、誤った前景の距離に補正されることになる。
【０１４６】
そこで、図１６や図１７で説明したように、検索ブロック内に、その中心に位置する画素ｉの輝度との差が、閾値ＴｈY未満の輝度を有する画素である適切画素が存在する場合には、画素ｉを補正対象画素として選択するとともに、その適切画素のうちの評価値が最小のものの距離で、補正対象画素ｉの距離を置換することで、前景の輝度が低く、かつ背景の輝度が高いときであっても、画素ｉについて、誤って求められた前景の距離を、正しい背景の距離に置換することができる。
【０１４７】
即ち、適切画素は、画素ｉとの輝度が近いものであり、従って、検索ブロックの中で、適切画素は、画素ｉと同一の背景を構成している可能性が高く、それ以外の画素は、前景を構成している可能性が高い。従って、前景を構成している可能性が高い画素を無視し、背景を構成している可能性が高い適切画素だけを対象に、その中から、評価値の最も小さいものを最尤画素として選択し、その最尤画素の距離で、補正対象画素ｉの距離を置換することで、画素ｉについては、誤って求められた前景の距離が、正しい背景の距離に補正されることになり、これにより、誤った補正が行われるのを防止することが可能となる。
【０１４８】
なお、補正処理は、ステレオ処理によって求められた距離画像に対して、ノイズ除去または穴埋め等を行った後に行うのが望ましい。これは、基準カメラ画像や検出カメラ画像が、輝度の変化が少ないものである場合には、ステレオ処理において、対応点の誤検出が生じやすくなる一方で、各画素について求められる最終的な評価値は小さくなることが多いため、そのようなステレオ処理の結果得られる距離画像をそのまま用いて補正処理を行うと、ノイズが広がるような悪影響を生じることがあるからである。
【０１４９】
ここで、距離画像に対して、ノイズ除去または穴埋めを施す方法としては、例えば、距離の値が近い隣接する画素の集合を、１単位として、その１単位の面積が小さい部分をノイズと判定し、そのノイズと判定された画素の集合のうち、ノイズでない画素に隣接している画素にメディアンフィルタをかけて補正し、ノイズの部分を徐々に狭くして、最終的にはなくすようなものがある。なお、この方法の詳細については、例えば、本件出願人が先に出願した特願平９−２８８４７９号に記載されている。
【０１５０】
以上、本発明を、距離を測定する距離測定装置に適用した場合について説明したが、本発明は、上述したように、視差を測定する場合、その視差から、さらに距離を求める場合、対象物の３次元形状を解析する場合等にも適用可能である。ここで、視差から距離を求める場合には、視差に対して補正処理を施した後に距離を求めても、また、視差から距離を求め、その距離に対して補正処理を施しても、同様の効果を得ることができる。
【０１５１】
なお、本実施の形態では、ステレオ処理の終了後に、補正処理を行うようにしたが、補正処理が可能となるまでステレオ処理を行い、その後は、ステレオ処理と補正処理とを並列に行うようにすることが可能である。
【０１５２】
また、本実施の形態では、検索ブロックからの最尤画素の検出を、その検索ブロックを構成するすべての画素を対象に行うようにしたが、最尤画素の検出は、その他、例えば、検索ブロックの外周に位置する画素のみを対象としたり、検索ブロックを構成する画素のうちの１つおきの画素のみを対象とすることなどが可能である。この場合、最尤画素の検出を、高速に行うことが可能となる。
【０１５３】
さらに、本実施の形態では、演算処理回路６に、コンピュータプログラムを実行させることにより、ステレオ処理および補正処理を行わせるようにしたが、ステレオ処理および補正処理は、それ専用のハードウェアによって行うことも可能である。
【０１５４】
また、本実施の形態では、ステレオ処理および補正処理を行うためのアプリケーションプログラムを、記憶装置７に記憶させて提供するようにしたが、このようなアプリケーションプログラムは、例えば、インターネットその他の伝送媒体を介して伝送して提供することも可能である。
【０１５５】
さらに、本実施の形態では、基準ブロック、検出ブロック、および検索ブロックとして、長方形状のブロックを構成するようにしたが、基準ブロック、検出ブロック、および検索ブロックは、長方形状のブロックに限定されるものではなく、例えば、ある画素から一定距離内にある画素でなる円形状のブロックを、基準ブロックや、検出ブロック、検索ブロックとして採用することも可能である。また、基準ブロック、検出ブロック、および検索ブロックは、隣接している画素で構成する必要はなく、例えば、１画素おきの画素の集合などで構成することも可能である。
【０１５６】
さらに、本実施の形態では、基準カメラとして機能する１台のカメラ１と、検出カメラとして機能する１台のカメラ２を用いるようにしたが、検出カメラは、複数台用いるようにすることが可能である。また、カメラは１台だけ用意し、それを移動させることにより、その１台のカメラを、基準カメラおよび検出カメラの両方として使用することも可能である。
【０１５７】
また、本実施の形態では、ステレオ処理および補正処理により得られた距離画像を、出力装置８に表示し、あるいは、記憶装置７に記憶させるようにしたが、その他、距離画像は、例えば、インターネット等の伝送媒体を介して伝送して他の装置等に提供するようにすることが可能である。
【０１５８】
さらに、本実施の形態では、補正対象画素の距離を、１の最尤画素の距離に置換することによって補正を行うようにしたが、補正対象画素の距離は、その他、例えば、評価値の小さい順に、複数の最尤画素を選択し、その複数の最尤画素の距離の平均値などに基づいて補正したり、また、その複数の最尤画素の距離を用いて補間を行うことにより補正することなどが可能である。
【０１５９】
また、本実施の形態では、補正後の距離画像を、距離画像記憶部１２とは別の距離画像記憶部１５に記憶させるようにしたが、補正後の距離画像は、補正前の距離画像が記憶されている距離画像記憶部１２に、いわば上書きする形で記憶させるようにすることも可能である。
【０１６０】
さらに、本実施の形態では、ステレオ処理後の距離画像に対して、１度だけ補正処理を施すようにしたが、補正処理は、補正処理を施した距離画像に対して、さらに施すようにすることも可能である。
【０１６１】
【発明の効果】
請求項１に記載の画像処理装置および請求項９に記載の画像処理方法、並びに請求項１０に記載の記録媒体によれば、第１の画像の画素と対応する、第２の画像の対応画素が検出され、その対応画素に基づき、第１の画像の画素について、距離関係情報が求められる。さらに、求められた距離関係情報を画素値とする距離関係情報画像の画素のうち、対応画素として検出された画素が真の対応点である確実性が一定以下の画素が、距離関係情報の補正を行う対象とする補正対象画素として選択され、距離関係画像のうち、選択された補正対象画素を含む所定の領域を検索ブロックとして、検索ブロック内の複数の画素の中から、確実性が所定の条件を満たす画素が検索され、補正対象画素についての距離関係情報を、検索された画素についての距離関係情報に置換することにより、補正対象画素についての距離関係情報が補正される。従って、第１および第２の画像どうしでの画素の対応付けを正確に行うことができなかった場合であっても、精度の高い距離関係情報を得ることが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した距離測定装置の一実施の形態の構成例を示すブロック図である。
【図２】基準カメラ１および検出カメラ１で、対象物３を撮影している状態を示す図である。
【図３】エピポーララインを説明するための図である。
【図４】基準カメラ画像および検出カメラ画像を示す図である。
【図５】評価値の推移を示す図である。
【図６】設定点／距離テーブルおよび視差／距離テーブルを示す図である。
【図７】壁の手前に配置された対象物３を撮影している状態を示す図である。
【図８】エッジ部分で生じる対応点の誤検出を説明するための図である。
【図９】対応点の誤検出に起因する距離の誤りの補正方法を説明するための図である。
【図１０】図１の演算処理回路６の機能的構成例を示すブロック図である。
【図１１】ステレオ処理を説明するためのフローチャートである。
【図１２】補正処理の第１の実施の形態を説明するためのフローチャートである。
【図１３】距離の連続性が失われる場合を説明するための図である。
【図１４】補正処理の第２の実施の形態を説明するためのフローチャートである。
【図１５】補正処理の第３の実施の形態を説明するためのフローチャートである。
【図１６】補正処理の第４の実施の形態を説明するためのフローチャートである。
【図１７】補正処理の第５の実施の形態を説明するためのフローチャートである。
【符号の説明】
１  基準カメラ（撮像手段），  ２  検出カメラ（撮像手段），  ３  対象物，  ４  カメラインターフェイス，  ５  フレームメモリ，  ６  演算処理回路，  ６Ａ  ＣＰＵ，  ６Ｂ  ＲＯＭ，  ６Ｃ  ＲＡＭ，  ６Ｄ  ＤＳＰ，  ７  記憶装置，  ８  出力装置，  １１  ステレオ処理部（検出手段）（処理手段），  １２  距離画像記憶部，  １３  補正対象画素選択部（選択手段），  １４補正部（補正手段），  １５  距離画像記憶部
【図１】
0004296617.tif 000005
【図２】
0004296617.tif 000006
【図３】
0004296617.tif 000007
【図４】
0004296617.tif 000008
【図５】
0004296617.tif 000009
【図６】
0004296617.tif 000010
【図７】
0004296617.tif 000011
【図８】
0004296617.tif 000012
【図９】
0004296617.tif 000013
【図１０】
0004296617.tif 000014
【図１１】
0004296617.tif 000015
【図１２】
0004296617.tif 000016
【図１３】
0004296617.tif 000017
【図１４】
0004296617.tif 000018
【図１５】
0004296617.tif 000019
【図１６】
0004296617.tif 000020
【図１７】
0004296617.tif 000021