トップ :: G 物理学 :: G01 測定;試験




【発明の名称】 画像処理装置および方法、並びに記録媒体
【発明者】 【氏名】三輪 祥子

【氏名】横山 敦

【要約】 【課題】カラーカメラおよび白黒カメラにより撮像された画像から、対象物までの距離を正確に検出することができるようにする。

【解決手段】ステップS101で、2台の基準カメラ(カラーカメラ)および検出カメラ(白黒カメラ)で対象物が撮影される。ステップS102で、基準カメラ画像上の、対象物の点が投影されている点naを中心とする基準ブロックの輝度値r,g,bが検出される。ステップS103で、輝度補正テーブルBTが参照され、ステップS102で検出された輝度値r,g,bにより特定される要素点に設定されている輝度値yが検出される。ステップS104において、検出された輝度値yを利用して、エリアベースマッチングが行われ、対応点nbが検出される。ステップS105で、基準カメラ画像上の点naと、ステップS104で検出された対応点nbの間の視差が求められ、その視差および、基準カメラと検出カメラの位置関係に基づいて、対象物までの距離が求められる。
【特許請求の範囲】
【請求項1】 第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで前記対象物を撮像して得られる第2の画像の輝度値との対応関係を保持する保持手段と、前記第1の画像の色基底毎の輝度値と前記第2の画像の輝度値の一方を検出する第1の検出手段と、前記第1の検出手段により検出された前記第1の画像の色基底毎の輝度値と前記第2の画像の輝度値の一方に対応する他方を、前記保持手段に保持されている前記対応関係から検出し、検出した結果に基づいて、前記第1の画像または前記第2の画像の輝度値を補正する補正手段とを備えることを特徴とする画像処理装置。
【請求項2】 前記補正手段により輝度値が補正された前記第1の画像または前記第2の画像の画素と対応する、前記第2の画像または前記第1の画像の対応画素を検出する第2の検出手段と、前記第2の検出手段よる検出結果に基づいて、前記対象物までの距離に関する距離関係情報を生成する生成手段とをさらに備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】 前記保持手段に保持されている、前記第1の画像の色基底毎の輝度値に対応する前記第2の画像の輝度値は、保持されている隣接した前記第2の画像の輝度値と滑らかな値になるように補間されていることを特徴とする請求項1に記載の画像処理装置。
【請求項4】 第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで前記対象物を撮像して得られる第2の画像の輝度値との対応関係を保持する保持ステップと、前記第1の画像の色基底毎の輝度値と前記第2の画像の輝度値の一方を検出する検出ステップと、前記検出ステップの処理で検出された前記第1の画像の色基底毎の輝度値と前記第2の画像の輝度値の一方に対応する他方を、前記保持ステップの処理で保持された前記対応関係から検出し、検出した結果に基づいて、前記第1の画像または前記第2の画像の輝度値を補正する補正ステップとを含むことを特徴とする画像処理方法。
【請求項5】 第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで前記対象物を撮像して得られる第2の画像の輝度値との対応関係を入力する入力ステップと、前記第1の画像の色基底毎の輝度値と前記第2の画像の輝度値の一方を検出する検出ステップと、前記検出ステップの処理で検出された前記第1の画像の色基底毎の輝度値と前記第2の画像の輝度値の一方に対応する他方を、前記入力ステップの処理で入力された前記対応関係から検出し、検出した結果に基づいて、前記第1の画像または前記第2の画像の輝度値を補正する補正ステップとを含むことを特徴とする処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、画像処理装置および方法、並びに記録媒体に関し、特に、得られる画像の輝度状態が異なる場合であっても、正確な輝度情報を得ることができるようにした画像処理装置および方法、並びに記録媒体に関する。
【0002】
【従来の技術】2台以上のビデオカメラで撮像することより得た複数の画像の間で、互いに対応する画素の間の視差情報(視差)を得て、対象物上の各点の距離を求め、さらには、対象物の形状を計測する、いわゆるステレオ画像処理が開示されている。
【0003】図1は、ステレオ画像処理を実行して、対象物上の各点の距離またはその形状を計測する距離測定装置の構成例を示している。
【0004】ビデオカメラ1およびビデオカメラ2は、異なる位置に固定された、例えばCCD(Charge Coupled Device)ビデオカメラで、その異なる位置(異なる視線方向)から対象物3を撮影し、その結果得られる画像を、カメラインターフェイス4に出力する。なお、ビデオカメラ1またはビデオカメラ2は、それぞれ、いわゆる基準カメラまたは検出カメラとして機能する。そこで、以下、適宜、ビデオカメラ1またはビデオカメラ2を、それぞれ基準カメラ1または検出カメラ2と称するとともに、それぞれが出力する画像を、基準カメラ画像または検出カメラ画像と称する。
【0005】カメラインターフェイス4は、基準カメラ1または検出カメラ2それぞれからの基準カメラ画像または検出カメラ画像を受信し、フレームメモリ5に供給する。フレームメモリ5は、カメラインターフェイス4からの基準カメラ画像および検出カメラ画像を、例えば、フレーム単位などで記憶する。
【0006】演算処理回路6は、フレームメモリ5に記憶された基準カメラ画像および検出カメラ画像に基づいて、基準カメラ1または検出カメラ2のうちの、例えば、基準カメラ1から対象物3までの距離に関係する距離関係情報を求め、その距離関係情報に対応する画素値を有する画像を生成する。
【0007】即ち、演算処理回路6は、基準カメラ画像の画素と、検出カメラ画像の画素のとの間の対応をとり、基準カメラ画像の画素それぞれについて、対象物3までの距離を求めて、その距離に対応する画素値を有する画像(例えば、距離が大きいほど輝度値が大きい画像)(以下、適宜、距離画像という)を生成する。あるいは、演算処理回路6は、対応をとった画素間の視差ζを測定し、その視差ζに対応する画素値を有する画像(以下、適宜、視差画像という)を生成する。
【0008】記憶装置7は、例えば、HD(Hard Disk)や、CD−ROM(Compact DiscRead Only Memory)などで構成され、演算処理回路6が実行するOS(Operating System)のプログラムや、上述したような処理を行うためのアプリケーションプログラムなどを記憶する。また、記憶装置7は、演算処理回路6が出力する距離画像等を記憶する。出力装置8は、例えば、CRT(Cathode Ray Tube)や液晶パネルなどで構成され、演算処理回路6が出力する距離画像等を表示する。
【0009】以上のように構成される距離測定装置では、基準カメラ1および検出カメラ2によって対象物3が撮影される。さらに、その結果得られる基準カメラ画像および検出カメラ画像が、カメラインターフェイス4を介してフレームメモリ5に供給されて記憶される。そして、その基準カメラ画像および検出カメラ画像を用いて、演算処理回路6において、ステレオ処理が行われる。
【0010】ここで、ステレオ処理は、上述のように、2つ以上の方向(異なる視線方向)からカメラで同一対象物を撮影して得られる複数の画像間の画素同士を対応付けることで、対応する画素間の視差情報や、カメラから対象物までの距離、対象物の形状を求めるものである。
【0011】即ち、例えば、図2に示すように、2台の基準カメラ1および検出カメラ2で対象物3を撮影すると、基準カメラ1からは対象物3の投影像を含む基準カメラ画像が得られ、検出カメラ2からも対象物3の投影像を含む検出カメラ画像が得られる。いま、図2における対象物3上のある点Xが、基準カメラ画像および検出カメラ画像の両方に表示されているとすると、その点Xが表示されている基準カメラ画像上の位置と、検出カメラ画像上の位置(以下、検出カメラ画像上のこの位置を対応点(対応画素)と称する)とから、視差情報を求めることができ、さらに、三角測量の原理を用いて、点Xの3次元空間における位置(3次元位置)を求めることができる。
【0012】従って、ステレオ処理では、まず、対応点を検出することが必要となるが、その検出方法としては、例えば、エピポーラライン(Epipolar Line)を用いたエリアベースマッチング法などがある。
【0013】即ち、図3に示すように、基準カメラ1においては、対象物3上の点Xは、その点Xと基準カメラ1の光学中心(レンズ中心)O1とを結ぶ直線L上の、基準カメラ1の撮像面S1(基準カメラ画像が形成される撮像面)との交点naに投影される。
【0014】また、検出カメラ2においては、対象物3の点Xは、その点Xと検出カメラ2の光学中心(レンズ中心)O2とを結ぶ直線上の、検出カメラ2の撮像面S2(検出カメラ画像が形成される撮像面)との交点nbに投影される。すなわち、撮像面S2上に投影された交点nbが、この場合の対応点である。
【0015】この場合、直線Lは、光学中心O1および光学中心O2、並びに点na(または点X)の3点を通る平面と、撮像面S2との交線L2として、撮像面S2上に投影される。点Xは、直線L上の点であるので、対応点である点nbは、撮像面S2上の直線L2(直線Lを投影した直線)上に存在する。従って、対応点nbの探索は、この直線L2(以下、この直線をエピポーララインL2と称する)上を対象に行えば良い。
【0016】ここで、エピポーララインは、例えば、撮像面S1に形成される基準カメラ画像を構成する画素ごとに考えることができるが、基準カメラ1と検出カメラ2の位置関係が既知であれば、その画素ごとに存在するエピポーララインは求めることができる。
【0017】エピポーララインL2上の点からの対応点nbの検出は、例えば、次のようなエリアベースマッチングによって行うことができる。
【0018】即ち、エリアベースマッチングでは、図4(A)に示すように、基準カメラ画像上の点naを中心(例えば、対角線の交点)とする、例えば長方形状の小ブロック(以下、適宜、基準ブロックと称する)が、基準カメラ画像から抜き出されるとともに、図4(B)に示すように、検出カメラ画像に投影されたエピポーララインL2上の、ある点を中心とする、基準ブロックと同一の大きさの小ブロック(以下、適宜、検出ブロックと称する)が、検出カメラ画像から抜き出される。
【0019】ここで、図4(B)の例においては、エピポーララインL2上に、検出ブロックの中心とする点として、点nb1乃至nb6の6点が設けられている。この6点nb1乃至nb6は、図3に示した3次元空間における直線Lを、所定の一定距離ごとに区分する点、即ち、基準カメラ1からの距離が、例えば、1m,2m,3m,4m,5m,6mの点それぞれを、検出カメラ2の撮像面S2に投影した点で、従って、基準カメラ1からの距離が1m,2m,3m,4m,5m,6mの点にそれぞれ対応している。
【0020】エリアベースマッチングでは、検出カメラ画像から、エピポーララインL2上に設けられている点nb1乃至nb6それぞれを中心とする検出ブロックが抜き出され、各検出ブロックと、基準ブロックとの相関が、例えば、式(1)に示す評価関数を用いて演算される。そして、点naを中心とする基準ブロックとの相関が最も高い検出ブロックの中心の点nbが、点naの対応点として求められる。
【数1】

【0021】なお、式(1)において、xは、対応点を求めようとして注目している基準画像上の画素(注目画素)を表し、従って、基準ブロックを構成する中心の画素を表す。また、yは、検出ブロックを構成する中心の画素を表し、S(x,y)は、基準カメラ画像上の画素xを中心とする基準ブロックと、検出カメラ画像上の画素yを中心とする検出ブロックとの相関性を示す評価値を表す。さらに、WAまたはWBは、基準ブロックまたは検出ブロックをそれぞれ表し、j∈WA,WBであるから、x+jは、基準ブロックWAを構成する画素を表し、y+jは、画素x+jに対応する、検出ブロックWBを構成する画素を、それぞれ表す。また、YA(x+j)またはYB(y+j)は、それぞれ、画素(x+j)または画素(y+j)の例えば、輝度値を表す。
【0022】すなわち、例えば、画素yを、エピポーラライン上に設定された設定点に順次ずらしながら、評価値S(x,y)を計算し、その評価値S(x,y)を最も小さくする検出カメラ画像の画素y(=ymin)が、基準カメラ画像の画素xの対応点として検出される。例えば、図5に示すような評価値(評価関数の値)が得られたとすると、この場合、評価値が最も小さい(相関が最も高い)点nb3が、点naの対応点として検出される。なお、図5において、点nb1乃至nb6それぞれについて求められた評価値(図5において●印で示す)のうちの最小値付近のものを用いて補間を行い、評価値がより小さくなる点(図5において×印で示す)を求めて、その点を、最終的な対応点として検出することも可能である。
【0023】ところで、基準カメラ1および検出カメラ2それぞれの感度特性や絞り値などが異なる場合、上述した例においては、基準カメラ画像上の点naと検出カメラ画像上の対応点nbの輝度値が差が生じる場合がある。すなわち、この場合、図5に示す評価値とは異なる結果が得られ、対応点が正確に検出されない。
【0024】そこで、図6に示すような、輝度変換テーブル(後述)に基づいて、例えば、検出カメラ画像を構成する画素の輝度値を補正し、基準カメラ画像上の画素との輝度とを減少させた後、ステレオ画像処理を実行する必要がある。輝度値変換テーブルは、検出カメラ画像上の輝度値(例えば、値0乃至値255)と、その輝度値のそれぞれに対応する変換値(輝度値)から構成されている。
【0025】次に、輝度値変換テーブルの作成方法について説明する。
【0026】はじめに、図7(A)に示すような、無彩色(白色、灰色、または黒色)の明度が、X軸方向に段階的に変化するにn個のスケール1乃至色スケールnが配列されたグレースケールが、基準カメラ1および検出カメラ2により撮像される。そして、その結果得られた基準カメラ画像(図7(B))および検出カメラ画像(図7(C))上の各スケール毎の輝度値(各スケール毎の小面積の平均輝度値)が検出される。
【0027】このようにして、基準カメラ画像上の各スケールの輝度値(輝度値A1乃至An)と、検出カメラ画像上の各スケールの輝度値(輝度値B1乃至Bn)が検出されると、図8に示すような、スケール毎の基準カメラ画像および検出カメラ画像上の輝度値が得られる。
【0028】次に、図8に示した、スケール毎の基準カメラ画像および検出カメラ画像上の輝度値に対して、3次スプライン補間を用いて補間処理が施され、図9に示すように、検出カメラ画像上の輝度値(値0乃至値255)のそれぞれに対応する基準カメラ画像上の輝度値が算出され、その算出結果に基づいて、図6に示した輝度値変換テーブルが生成される。
【0029】このようにして生成された輝度値変換テーブルに基づいて、輝度値の補正が行われる。例えば、図4の例では、検出カメラ画像の点nb1乃至点nb6の輝度値が、図6の輝度値変換テーブルに示される、それぞれの輝度値に対応する変換値に変換される。これにより、基準カメラ画像上の点naと検出カメラ画像上の対応点nbのそれぞれの輝度値の差がなくなる。
【0030】
【発明が解決しようとする課題】しかしながら、例えば、基準カメラ1および検出カメラ2の一方が、得られる画像がカラー色で表されるカラービデオカメラで、他方が、得られる画像が白から黒にいたる灰色の濃淡のみで表される白黒ビデオカメラである場合など、基準カメラ1と検出カメラ2の機種が異なる場合、上述した輝度補正を行っても、正確な対応点nbが検出されず、結局、正確な距離情報が得られない場合がる。以下に、その理由を説明する。
【0031】なお、基準カメラ1が、カラービデオカメラであり、検出カメラ1が、白黒ビデオカメラであるとし、それぞれが、同一の撮像条件(同一の輝度条件)において、外観の色が異なる2つの対象物A,Bを撮像した場合を例として説明する。
【0032】基準カメラ1の撮像により得られたカラー画像の輝度情報のみからなる画像を、基準カメラ画像とすると、その基準カメラ画像上の対象物A,Bそれぞれの投影像の輝度値は、図10(A)に示すように、共に、輝度値Aaで同値である。
【0033】一方、検出カメラ2の撮像により得られた検出カメラ画像(白黒画像)上の対象物A,Bそれぞれの投影像の輝度値は、図10(B)に示すように、それぞれ異なる輝度値Bb1および輝度値Bb2となる場合がある。すなわち、この場合、上述した輝度値変換テーブルに基づいて、輝度値Bb1が輝度値Aaとなるように補正した場合、輝度値Bb2は、輝度値Aaに補正されず、他の輝度値Aa'に補正されてしまう。
【0034】すなわち、以上のように、基準カメラ1と検出カメラ2の機種が異なる場合、上述した輝度補正によっては、正確な対応点が得られず、その結局、ステレオ画像処理による距離検出および形状計測が正確に行われない課題があった。
【0035】本発明はこのような状況に鑑みてなされたものであり、基準カメラ1と検出カメラ2が、それぞれ異なる機種である場合においても、ステレオ画像処理による距離検出および形状計測が適切に行われるようにするものである。
【0036】
【課題を解決するための手段】 請求項1に記載の画像処理装置は、第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで対象物を撮像して得られる第2の画像の輝度値との対応関係を保持する保持手段と、第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方を検出する第1の検出手段と、第1の検出手段により検出された第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方に対応する他方を、保持手段に保持されている対応関係から検出し、検出した結果に基づいて、第1の画像または第2の画像の輝度値を補正する補正手段とを備えることを特徴とする。
【0037】補正手段により輝度値が補正された第1の画像または第2の画像の画素と対応する、第2の画像または第1の画像の対応画素を検出する第2の検出手段と、第2の検出手段よる検出結果に基づいて、対象物までの距離に関する距離関係情報を生成する生成手段とをさらに設けることができる。
【0038】保持手段に保持されている、第1の画像の色基底毎の輝度値に対応する第2の画像の輝度値が、保持されている隣接した第2の画像の輝度値と滑らかな値になるように補間することができる。
【0039】請求項4に記載の画像処理方法は、第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで対象物を撮像して得られる第2の画像の輝度値との対応関係を保持する保持ステップと、第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方を検出する検出ステップと、検出ステップの処理で検出された第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方に対応する他方を、保持ステップの処理で保持された対応関係から検出し、検出した結果に基づいて、第1の画像または第2の画像の輝度値を補正する補正ステップとを含むことを特徴とする。
【0040】請求項5に記載の記録媒体のプログラムは、第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで対象物を撮像して得られる第2の画像の輝度値との対応関係を入力する入力ステップと、第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方を検出する検出ステップと、検出ステップの処理で検出された第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方に対応する他方を、入力ステップの処理で入力された対応関係から検出し、検出した結果に基づいて、第1の画像または第2の画像の輝度値を補正する補正ステップとを含むことを特徴とする。
【0041】請求項1に記載の画像処理装置、請求項4に記載の画像処理方法、および請求項5に記載の記録媒体のプログラムにおいては、第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで対象物を撮像して得られる第2の画像の輝度値との対応関係が保持され、第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方が検出され、検出された第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方に対応する他方が、保持された対応関係から検出され、検出された結果に基づいて、第1の画像または第2の画像の輝度値が補正される。
【0042】
【発明の実施の形態】図11は、本発明を適用した距離測定装置20の構成例を示している。なお、図1における場合と対応する部分については、同一の符号を付してあり、以下では、その説明を適宜省略する。すなわち、演算処理回路6に代えて、演算処理回路21が設けられている。またこの例の場合、ビデオカメラ1(基準カメラ1)は、カラービデオカメラであり、ビデオカメラ2(検出カメラ2)は、白黒ビデオカメラである。
【0043】基準カメラ1は、対象物3を撮影し、その結果得られた基準カメラ画像(カラー画像)をカメラインターフェース4に出力する。検出カメラ2は、対象物3を撮影し、その結果得られた検出カメラ画像(白黒画像)をカメラインターフェース4に出力する。
【0044】演算処理回路21は、フレームメモリ5に記憶された、基準カメラ画像上の対象物3の投影像の輝度値を、検出カメラ画像上の対象物3の投影像の輝度値との差が十分小さくなるように、図12に示す輝度補正テーブルBTに基づいて補正し、その後、ステレオ画像処理を実行し、例えば、基準カメラ1から対象物3までの距離に対応する距離画像を生成したり、視差画像を生成する。
【0045】その詳細は後述するが、輝度補正テーブルBTは、カラー画像の色基底であるR(赤),G(緑),B(青)毎の輝度値r,g,bのそれぞれに対応する、3つの軸からなる3次元空間に存在し、座標(0,0,0)と座標(rz,gz,bz)の2つの点を対角線上の両端点とする直方体BTであり、その直方体BTの内部の、輝度値rの軸上の値r、輝度値gの軸上の値g、そして輝度値bの軸上の値bにより特定される点(以下、要素点と称し、座標(r,g,b)と表す)には、所定の輝度値y(この例の場合、値0乃至値255のいずれかの値)が設定されている。図中、rz,gz,bzは、輝度値r,g,bの最大値を示している。
【0046】すなわち、演算処理回路21は、基準カメラ画像の各画素(例えば、対象物3の投影像上の各画素)の輝度値r,g,bを検出した後、検出したそれらにより特定される要素点を検出し、さらに、検出した要素点に対応して設定されている輝度値yを、輝度補正テーブルBTから読み出す。そして演算処理回路21は、読み出したその輝度値yと、検出カメラ画像(白黒画像)の輝度値yを利用して、上述したエリアベースマッチングを実行し、対応点nbを検出し、その対応点nbに基づいて、距離情報および視差情報を生成する。
【0047】記録装置7には、輝度補正テーブルBTがさらに記憶されている。
【0048】次に、図13のフローチャートを参照して、輝度補正テーブルBTを生成するための処理手順を説明する。なお、この例の場合、輝度補正テーブルBTは、演算処理回路21により生成される。
【0049】ステップS1において、標本点Pが設定される。
【0050】具体的には、外観の色がそれぞれ異なる複数の対象物3(この例の場合、n個の対象物3)が、基準カメラ1および検出カメラ2によりそれぞれ撮影され、その結果得られた基準カメラ画像および検出カメラ画像がフレームメモリ5に記憶される。なお、この場合の対象物3は、距離情報等を得るための対象物ではなく、標本点Pを設定するために必要な画像を提供する対象物である。
【0051】演算処理回路21は、フレームメモリ5に記憶された、それぞれの対象物3の基準カメラ画像から輝度値r、輝度値g、および輝度値bを検出し、また検出カメラ画像から輝度値yを検出する。演算処理回路21はさらに、検出した輝度値r、輝度値g、および輝度値bにより特定される3次元空間上の位置に、検出した輝度値yを対応させて標本点Pを設定する。すなわち、この処理により、最終的に輝度補正テーブルBTになる直方体BTに、n個(撮像された対象物3の数分)の標本点Pが設定される。
【0052】なお、図12には、1つの検出カメラ画像上の対象物3の投影像から検出された輝度値y1が対応する、基準カメラ画像上のその対象物3の投影像から検出された輝度値r1、輝度値g1、および輝度値b1により特定される標本点P1が示されている。また、この対応関係を2次元的に示すと、図14に示すようになる。すなわち、輝度補正テーブルBTでは、各標本点Pに、輝度値r、輝度値g、輝度値b、および輝度値yのそれぞれが関連づけられている。
【0053】次に、ステップS2において、輝度補正テーブルBTの拘束条件が決定される。例えば、通常のRGB空間における座標(r,g,b)の各ボクセルの輝度値が、式(2)で示される場合、例えば、Rの値が固定されたときの2次元空間では、図15に示す、座標(r,g,b)のボクセルの輝度値yrgb、座標(r,g+1,b)のボクセルの輝度値yrg+1b、座標(r,g,b+1)のボクセルの輝度値yrgb+1、および座標(r,g+1,b+1)のボクセルの輝度値yrg+1b+1は、式(3)および式(4)に示す関係を満たす。
【0054】
輝度値yrgb=(r+g+b)/3・・・(2)
yrg+1b+1≧yrg+1b≧yrgb・・・(3)
yrg+1b+1≧yrgb+1≧yrgb・・・(4)
【0055】すなわち、R、G、およびBのうち、2つの値を固定した場合、残る1つの値が増大すれば、その座標で示されるボクセルの輝度値yrgbは、増大する。なお、ボクセルの輝度値yrgbが式(2)に基づいて算出される場合、座標(r,g+1,b)のボクセルの輝度値yrg+1bおよび座標(r,g,b+1)のボクセルの輝度値yrgb+1は等しくなるが、輝度値yrgbが式(5)に基づいて算出される場合、輝度値yrg+1bおよび輝度値yrgb+1の大小関係は特定されない。
輝度値yrgb=16+0.25679×r+0.50413×g+0.09791×b・・・(5)
【0056】以上においては、Rの値が固定された場合の2次元空間における輝度値yrgbの関係を示したが、Rの値も、任意とする3次元の空間においては、図16に示すように、式(6)および式(7)に示す関係が成り立つ。
【0057】
yr-1g-1b-1(図中、S-1で示されるボクセルの輝度値)≦yrgb yr-1gb-1(S-2)≦yrgb yr-1g-1b(S-3)≦yrgb yr-1gb(S-4)≦yrgb yrg-1b-1(S-5)≦yrgb yrgb-1(S-6)≦yrgb yrg-1b(S-7)≦yrgb ・・・(6)
yrg+1b(図中、L-1で示されるボクセルの輝度値)≧yrgb yrgb+1(L-2)≧yrgb yrg+1b+1(L-3)≧yrgb yr+1gb(L-4)≧yrgb yr+1g+1b(L-5)≧yrgb yr+1gb+1(L-6)≧yrgb yr+1g+1b+1(L-7)≧yrgb・・・(7)
【0058】以上のような、ボクセルの輝度値yrgbの大小関係を、輝度補正テーブルBTの場合に当てはめると、例えば、図17に示すように、輝度値y1が設定されている、補正輝度テーブルBTにおける座標(r1,g1,b1)の標本点P1、および輝度値y2が設定されている座標(r1,g2,b2)の標本点P2により形成される4つのボクセルA乃至ボクセルDの輝度値yは、式(8)に示すような関係を満たすことになる。
ボクセルA内の輝度値y≦輝度値y1 ボクセルB内の輝度値y≦輝度値y2 ボクセルCの輝度値y≦輝度値y2 輝度値y1≦ボクセルD内の輝度値y≦輝度値y2・・・(8)
【0059】すなわち、換言すれば、座標(r1,0,0)と標本点P(標本点P1)の2つの点を対角線上の両端点とするボクセル(ボクセルA)内の要素点に設定される輝度値yは、標本点P1に設定されている輝度値y1以下でなければならない。つまり、この場合、輝度値y1が、ボクセルA内の各要素点に設定され得る輝度値yの最大値であることが条件(以下、最大値拘束条件と称する)となる。また、標本点P1と、標本点P1に対して、座標(r1,0,0)と反対側に位置する他の標本点P(標本点P2)の2つの点を対角線上の両端点とするボクセル(ボクセルD)内の要素点に設定される輝度値yは、標本点P1に設定されている輝度値y1以上、かつ、標本点P2に設定されている輝度値y2以下でなければならない。つまり、この場合、輝度値y1が、ボクセルD内の要素点に設定され得る輝度値yの最小値であることが条件(以下、この条件を最小値拘束条件と称する)となる。
【0060】以上のように、RGB空間におけるボクセルの輝度値の大小関係を利用することより、輝度補正テーブルBTにおける拘束条件(最大値拘束条件および最小値拘束条件)が決定される。なお、ここでは、標本点Pが2つの場合における拘束条件を説明したが、ステップS1で設定された、全ての標本点P間で形成される各ボクセル内の輝度値yも、上述した拘束条件を満たす必要がある。
【0061】次に、ステップS3において、ステップS2で決定された最大値拘束条件に基づいて、最大値テーブルMAXTが生成される。この最大値テーブルMAXTの生成処理の詳細は、図18のフローチャートに示されている。
【0062】ステップS11において、最大値テーブルMAXTが初期化される。具体的には、輝度値rの軸、輝度値gの軸、および輝度値bの軸の3つの軸からなる3次元空間(図12に示した3次元空間とは別の空間)上に、原点(0,0,0)と座標(rz,gz,bz)の2つの点を対角線上の両端点とする直方体MAXT(図19中、点線で示されている直方体で、最終的に最大値テーブルMAXTとなる直方体)、すなわち、輝度補正テーブルBT(直方体BT)と同じ大きさ(体積)の直方体が生成される。
【0063】そして、その直方体MAXTの内部の、輝度値rの軸上の値r、輝度値gの軸上の値g、そして輝度値bの軸上の値bにより特定される要素点の全てに、輝度補正テーブルBTに設定され得る輝度値yの最大値(この例の場合、輝度値yは、値0乃至値255の範囲の値であるので、値255)が初期設定される。
【0064】以上のように、最大値テーブルMAXT(この時点において最大値テーブルMAXTは完成していないので、正確には直方体MAXT)が初期化されると、ステップS12において、輝度値yを示す変数wが0に初期化され、ステップS13において、ステップS1で設定された、輝度補正テーブルBT(この時点において輝度補正テーブルは完成していないので、正確には直方体BT)の標本点Pの個数を示す変数eが1に初期化される。
【0065】次に、ステップS14において、変数eで示される標本点Peの輝度値re、輝度値ge、輝度値be、および輝度値yeが、ステップS1で標本点Pが設定された直方体BTから読み出される。ステップS15において、ステップS14で読み出された輝度値yeが、変数wと等しいか否かが判定され、等しいと判定された場合、ステップS16に進む。
【0066】ステップS16乃至ステップS26の処理について、以下に説明するが、この処理により、直方体MAXT内部の、座標(0,0,0)および座標(re,ge,be)の2つの点を対角線上の両端点とするボクセル(図19中、影が付されている直方体)内の要素点に、そのボクセル内部で取り得る最大の輝度値が設定される(最大値拘束条件を満たす値が設定される)。
【0067】ステップS16において、輝度値rを表す変数iが、0に初期化され、ステップS17において、輝度値gを表す変数jが、0に初期化され、そして、ステップS18において、輝度値bを表す変数kが、0に初期化される。
【0068】次に、ステップS19において、直方体MAXT(図19)における座標(ri,gj,bk)の要素点に設定されている値が、値255(初期値)であるか否かが判定され、初期値であると判定された場合、ステップS20に進む。
【0069】ステップS20で、直方体MAXTにおける座標(ri,gj,bk)の要素点に設定されている値が、変数wの値に変更される。すなわち、この場合の変数wの値は、ステップS14で取得された輝度値yeと同値であるので(ステップS15)、輝度値yeに変更される。
【0070】ステップS19において、座標(ri,gj,bk)の要素点に設定されている値が値255(初期値)ではないと判定された場合、またはステップS20で、座標(ri,gj,bk)の要素点に設定されていた値が、ステップS14で読み出された輝度値yeに変更されたとき、ステップS21に進む。
【0071】ステップS21において、変数kの値で示される輝度値bkが、ステップS14で読み出された輝度値beと等しいか否かが判定され、等しくないと判定された場合、ステップS22に進み、変数kの値が1だけインクリメントされ、ステップS19に戻る。すなわち、ステップS21で、輝度値bkが輝度値beと等しいと判定されるまで、ステップS19乃至ステップS22の処理が繰り返し実行される。これにより、直方体MAXTにおける座標(0,0,0)乃至座標(0,0,be)の全ての要素点に対して、ステップS19,S20の処理が実行される(必要に応じて、設定されていた値が輝度値yeに変更される)。
【0072】ステップS21で、輝度値bkが輝度値beと等しいと判定された場合、ステップS23に進み、変数jの値で示される輝度値gjが輝度値geと等しいか否かが判定され、等しくないと判定された場合、ステップS24に進み、変数jの値が1だけインクリメントされ、ステップS18に戻る。すなわち、ステップS23で、輝度値gjが輝度値geと等しいと判定されるまで、ステップS18乃至ステップS24の処理が繰り返し実行される。これにより、座標(0,0,0)乃至座標(0,ge,be)の全ての要素点に対して、ステップS19,S20の処理が実行される(必要に応じて、設定されていた値が輝度値yeに変更される)。
【0073】ステップS23で、輝度値gjが輝度値geと等しいと判定された場合、ステップS25に進み、変数iの値で示される輝度値riが輝度値reと等しいか否かが判定され、等しくないと判定された場合、ステップS26に進み、変数iの値が1だけインクリメントされ、ステップS17に戻る。すなわち、ステップS25で、輝度値riが輝度値reと等しいと判定されるまで、ステップS17乃至ステップS26の処理が繰り返し実行される。これにより、座標(0,0,0)乃至座標(re,ge,be)の全ての要素点に対して、ステップS19,S20の処理が実行される(必要に応じて、設定されていた値が輝度値yeに変更される)。
【0074】ステップS15において、輝度値yeが変数wの値と等しくないと判定された場合、またはステップS25で、輝度値riが輝度値reと等しいと判定された場合、ステップS27に進む。
【0075】ステップS27において、標本点Peが、直方体BT(最終的に輝度補正テーブルBTになる直方体)(図12)に設定されている最後の標本点Pnであるかが判定され、最後の標本点Pnではないと判定された場合、ステップS28に進み、変数eが1だけインクリメントされ、ステップS14に戻る。そして、直方体BTの次の標本点Peに基づいて、それ以降の処理が実行される。
【0076】ステップS27において、標本点Peが、直方体BTに設定されている最後の標本点Pnであると判定された場合、ステップS29に進み、変数wの値が値254であるか否かが判定され、値254ではないと判定された場合、ステップS30に進み、変数wが1だけインクリメントされ、ステップS13に戻る。そして、新たな変数wに基づいて、それ以降の処理が実行される。
【0077】ステップS29で、変数wの値が値254であると判定された場合、直方体MAXTを構成する全ての要素点に、最大値拘束条件を満たす所定の値が設定されたとき、最大値テーブルMAXTは完成し、処理が終了する。その後、図13のステップS4に進む。
【0078】以上のようにして、最大値テーブルMAXTが生成されると、今度は、ステップS4において、ステップS2で決定された最小値拘束条件に基づいて、最小値テーブルMINTが生成される。この最小値テーブルMINTの生成処理の詳細は、図20のフローチャートに示されている。
【0079】ステップS41において、最小値テーブルMINTが初期化される。具体的には、輝度値rの軸、輝度値gの軸、および輝度値bの軸の3つの軸からなる3次元空間(図12および図19に示した3次元空間とは別の空間)上に、原点(0,0,0)と座標(rz,gz,bz)の2つの点を対角線上の両端点とする直方体MINT(図21中、点線で示されている直方体で、最終的に最小値テーブルMINTとなる直方体)、すなわち、輝度補正テーブルBT(直方体BT)および最大値テーブルMAXT(直方体MAXT)と同じ大きさ(体積)の直方体が生成される。
【0080】そして、その直方体MINTの内部の、輝度値rの軸上の値r、輝度値gの軸上の値g、そして輝度値bの軸上の値bにより特定される要素点の全てに、輝度補正テーブルBTに設定される得る輝度値yの最小値(この例の場合、輝度値yは、値0乃至値255の範囲の値であるので、値0)が初期設定される。
【0081】以上のように、最小値テーブルMINT(この時点において最小値テーブルMINTは完成していないので正確には直方体MINT)が初期化されると、ステップS42において、輝度値yを示す変数wが値255に初期化され、ステップS43において、直方体BTの標本点Pの個数を示す変数eが1に初期化される。
【0082】次に、ステップS44において、変数eで示される標本点Peの輝度値re、輝度値ge、輝度値be、および輝度値yeが、ステップS1で標本点Pが設定された直方体BTから読み出される。ステップS45において、ステップS44で読み出された輝度値yが、変数wと等しいか否かが判定され、等しいと判定された場合、ステップS46に進む。
【0083】ステップS46乃至ステップS56の処理について、以下に説明するが、この処理により、直方体MINT内部の、座標(re,ge,be)および座標(rz,gz,bz)の2点を対角線上の両端点とするボクセル(図21中、影が付されている直方体)内の要素点に、最小値拘束条件に従って、そのボクセル内部で取り得る最小の輝度値が設定される。
【0084】ステップS46において、輝度値rを表す変数iが、輝度値reを表す値に初期化され、ステップS47において、輝度値gを表す変数jが、輝度値geを表す値に初期化され、そして、ステップS48において、輝度値bを表す変数kが、輝度値beを表す値に初期化される。
【0085】次に、ステップS49において、直方体MINTにおける座標(ri,gj,bk)の要素点に設定されている値が、値0(初期値)であり、かつ、変数wの値が、ステップS3で生成された、最大値テーブルMAXTの座標(ri,gj,bk)の要素点に設定されている値(最大値)以下の値であるか否かが判定され、その条件を満たす場合、ステップS50に進み、座標(ri,gj,bk)の要素点に設定されている値が、変数wの値に変更される。すなわち、この場合の変数wの値は、ステップS44で取得された輝度値yeと同値であるので(ステップS45)、輝度値yeに変更される。
【0086】ステップS49において、その条件が満たされないと判定された場合、またはステップS50で、座標(ri,gj,bk)の要素点に設定されていた値が輝度値yeに変更されたとき、ステップS51に進み、変数kの値で示される輝度値bkが輝度値bzと等しいか否かが判定され、等しくないと判定された場合、ステップS52に進み、変数kの値が1だけインクリメントされ、ステップS49に戻る。すなわち、ステップS51で、輝度値bkが輝度値bzと等しいと判定されるまで、ステップS49乃至ステップS52の処理が繰り返し実行される。これにより、直方体MINTにおける座標(re,ge,be)乃至座標(re,ge,bz)の全ての要素点に対して、ステップS49,S50の処理が実行される(必要に応じて、設定されていた値が輝度値yeに変更される)。
【0087】ステップS51で、輝度値bkが輝度値bzと等しいと判定された場合、ステップS53に進み、変数jの値で示される輝度値giが輝度値gzと等しいか否かが判定され、等しくないと判定された場合、ステップS54に進み、変数jの値が1だけインクリメントされ、ステップS48に戻る。すなわち、ステップS53で、輝度値gjが輝度値gzと等しいと判定されるまで、ステップS48乃至ステップS54の処理が繰り返し実行される。これにより、座標(re,ge,be)乃至座標(re,gz,bz)の全ての要素点に対して、ステップS49,S50の処理が実行される(必要に応じて、設定されていた値が輝度値yeに変更される)。
【0088】ステップS53で、輝度値gjが輝度値gzと等しいと判定された場合、ステップS55に進み、変数iの値で示される輝度値riが輝度値rzと等しいか否かが判定され、等しくないと判定された場合、ステップS56に進み、変数iの値が1だけインクリメントされ、ステップS47に戻る。すなわち、ステップS55で、輝度値riが輝度値rzと等しいと判定されるまで、ステップS47乃至ステップS56の処理が繰り返し実行される。これにより、座標(re,ge,be)乃至座標(rz,gz,bz)の全ての要素点に対して、ステップS49,S50の処理が実行される(必要に応じて、設定されていた値が輝度値yeに変更される)。
【0089】ステップS45において、輝度値yeが変数wの値と等しくないと判定された場合、またはステップS55で、輝度値riが輝度値rzと等しいと判定された場合、ステップS57に進む。
【0090】ステップS57において、標本点Peが、直方体BT(最終的に輝度補正テーブルBTとなる直方体)に設定された最後の標本点Pnであるかが判定され、最後の標本点Pnではないと判定された場合、ステップS58に進み、変数eが1だけインクリメントされ、ステップS44に戻る。そして、直方体BTの次の標本点Peに基づいて、それ以降の処理が実行される。
【0091】ステップS57において、標本点Peが、直方体BTに設定された最後の標本点Pnであると判定された場合、ステップS59に進み、変数wの値が値1であるか否かが判定され、値1ではないと判定された場合、ステップS60に進み、変数wが1だけデインクリメントされ、ステップS43に戻る。そして、新たな変数wに基づいて、それ以降の処理が実行される。
【0092】ステップS59で、変数wの値が値1であると判定された場合、すなわち、直方体MINTを構成する全ての要素点に、最小値拘束条件を満たす所定の値が設定されとき、最小値テーブルMINTは完成し、処理が終了する。その後、図13のステップS5に進む。
【0093】なお、ステップS1で、直方体BTに設定された標本点Pに対応する輝度値yeと、同じ座標上に位置する、上述したように生成された最大値テーブルMAXTおよび最小値テーブルMINTそれぞれの要素点に設定された値は、式(9)に示すような、大小関係を満たす。
最小値テーブルMINTの要素点の値(最小値)≦要素点の輝度値ye 標本点Pの輝度値ye≦最大値テーブルの要素点の値(最大値)
・・・(9)
【0094】ステップS5において、ステップS1で、標本点Pが設定された輝度補正テーブルBT(この時点において輝度補正テーブルは完成していないので、正確には直方体BT)内部の各要素点に初期値が設定される。具体的には、直方体BTにおける座標(ri,gj,bk)の要素点の初期値が、式(10)に従って算出される。
初期値ijk=(最大値テーブルの座標(ri,gj,bk)の値+最小値テーブルの座標(ri,gj,bk)の値)/2 ・・・(10)
【0095】すなわち、直方体BTにおける座標(ri,gj,bk)の要素点の初期値は、その要素点と対応する位置に位置する、最大値テーブルMAXTの要素点に設定されている値と、最小値テーブルMINTの要素点に設定されている値との平均値である。
【0096】直方体BTの各要素点の初期値がそれぞれ算出されると、その算出結果が、直方体BTの各要素点に設定される。
【0097】このようにして、輝度補正テーブルBT(直方体BT)が初期化されると、ステップS6に進む。
【0098】ステップS6において、ステップS5で直方体BTの各要素点に設定された初期値が平滑化される。なお、以下に、輝度補正テーブルBT(直方体BT)に設定された初期値の平滑処理の説明を行うが、それに先だって、1次元の輝度補正テーブルの場合を例として説明する。
【0099】例えば、図22に示すように、所定の対象物H(図示せず)上の点Aが投影されている、基準カメラ画像上の点na1の輝度値が値0であり、点Aが投影されている、検出カメラ画像上の点na2の輝度値が値10であるものとする。さらに、対象物H上の他の点Bが投影されている、基準カメラ画像上の点nb1の輝度値が値7であり、検出カメラ画像上の点b2の輝度値が値30であるものとする。
【0100】この例の場合の最大値テーブルには、基準カメラ画像の輝度値を示す要素番号が設けられ、それらの要素番号に対応して輝度値の最大値が設定されている。図23(A)には、輝度値0乃至輝度値7を示す要素番号0乃至要素番号7とともに、それらに対応して設定されている最大値が示されている。要素番号1乃至要素番号6には、観測された、検出カメラ画像上の輝度値(値10または値30)の中の最大値である値30がそれぞれ対応して設定され、要素番号0または要素番号7には、実際に観測された、検出カメラ画像の値10または値30が対応して設定されている。
【0101】また、最小値テーブルには、基準カメラ画像の輝度値を示す要素番号が設けられ、それらの要素番号に対応して輝度値の最小値が設定されている。図23(B)には、輝度値0乃至輝度値7を示す要素番号0乃至要素番号7とともに、それらに対応して設定されている最小値が示されている。要素番号1乃至要素番号6には、観測された、検出カメラ画像上の輝度値(値10または値30)の中の最小値である値10がそれぞれ対応して設定され、要素番号0または要素番号7には、実際に観測された、検出カメラ画像の輝度値10または輝度値30が対応して設定されている。
【0102】次に、上述した式(10)に従って、輝度補正テーブルの各要素番号に対応する輝度値yの初期値が算出される。図24には、輝度補正テーブルの要素番号0乃至要素番号7に対応して設定された初期値が示されている。例えば、要素番号1には、最大値テーブルの要素番号1に対応して設定されている輝度値30と、最小値テーブルの要素番号1に対応して設定されている輝度値10の平均値(値20)が設定されている。なお、最大値テーブルおよび最小値テーブルにおける要素番号0および要素番号7に対応するそれぞれの値は、同値であるので、その平均値である初期値も同値である。
【0103】次に、図25に示すスムージングマスクを利用して、例えば、式(11)に従って、輝度補正テーブルの初期値が平滑化される。
【数2】

【0104】具体的には、2つのテーブルA,B(大きさが、輝度補正テーブルと同じ大きさのテーブル)が用意され、例えば、はじめに、テーブルAに、図24の輝度補正テーブルの初期値が、複製され、そのテーブルAが読み出し専用テーブルRに設定される。テーブルBは、このとき書き込み専用テーブルWに設定される。
【0105】次に、式(11)に従って、書き込み専用テーブルWに書き込まれる値(輝度値)が算出される。式中、lおよびqは、変数であり、変数lは、値1乃至(値m(輝度補正テーブルの要素番号の最大値)−1)の範囲内の値をとる。また、テーブルW[l]は、書き込み専用テーブルWの要素番号lに対応して設定される(書き込まれる)値を示し、テーブルR[q]は、読み出し専用テーブルRの要素番号qに対応して設定されている値を示す。
【0106】すなわち、式(11)により、変数q(=l−1,l,l+1)で示される、読み出し専用テーブルR(例えば、図24に示す輝度補正テーブルのデータが複製されたテーブルA)の、3つの要素番号(l−1),l,(l+1)のそれぞれに対応して設定されている輝度値の平均が算出され、その算出結果が、書き込み専用テーブルW(この場合、テーブルB)の要素番号lに対応して設定される(書き込まれる)。例えば、l=1の場合を例として説明すると、読み出し専用テーブルRの要素番号0(=1−1)、要素番号1、および要素番号2(=1+1)に対応して設定されている値10、値20、および値20の平均値17(=(10+20+20)/3)が算出され、書き込み専用テーブルWの要素番号1に対応して設定される。図26(A)に、この平滑処理の処理結果を示す。
【0107】ところで、通常、このような平滑処理は、例えば、式(12)で算出される、データの平滑度を示す評価値が、減少しなくなるまで、繰り返し実行される。この例の場合、上述した平滑処理が6回行われる。なお、この評価値は、値が小さければ小さいほど、データがより平滑であることを意味し、この例の場合、平滑処理が1回行われた場合(図26(A))の評価値は、値200であり、6回行われた場合の評価値は、値98である。そして、それ以上平滑処理が行われても、評価値は減少しない。
【数3】

【0108】そこで、上述した、1回目の平滑処理に引き続いて行われる、2回目の平滑処理を実行する場合の処理手順を説明する。1回目において読み出し専用テーブルRに設定されたテーブルAが、今度は、書き込み専用テーブルWに設定され、また1回目において書き込み専用テーブルWに設定されていたテーブルB(図26(A)のデータが格納されているテーブル)が読み出し専用テーブルRに設定される。そして、図25のスムージングマスクで式(11)に従い、演算が行われ、その演算結果が、要素番号に対応して、書き込み専用テーブルWに設定される。図26(B)は、2回目の平滑処理の処理結果を示す。
【0109】すなわち、読み出し専用テーブルRおよび書き込み専用テーブルWに設定されるそれぞれのテーブルが、平滑処理毎に入れ替られるようにして、平滑処理が繰り返し実行される。図26(C)は、このようにして、平滑処理が、6回繰り返し実行されたときの処理結果を示す。この場合の評価値は、上述したように値98となり、これ以上平滑処理が行われても、その値は減少しない。すなわち、輝度値補正テーブルの輝度値は、十分平滑であると判断される。
【0110】次に、輝度補正テーブルBT(この時点において輝度補正テーブルは完成していないので、正確には直方体BT)の各要素点に設定された初期値を平滑する場合の手順を、図27のフローチャートを参照して説明する。
【0111】ステップS71において、平滑処理の回数をカウントするカウンタWの値と、前回の平滑処理の処理結果に基づく評価値がレジストされるレジスタS1の値が、それぞれ0に初期化され、ステップS72に進む。ステップS72において、カウンタWの値が偶数(値0を含む)かまたは奇数であるかが判定され、偶数(0も含む)であると判定された場合、ステップS73に進む。
【0112】ステップS73において、テーブルAが読み出し専用テーブルRに、そしてテーブルBが書き込み専用テーブルWに設定される。なお、テーブルAおよびテーブルBは、輝度補正テーブルBT(直方体BT)と同じ大きさを有し、またカウンタWの値が0である場合、テーブルAには、ステップS5で、設定された輝度補正テーブルBT(直方体BT)の各要素点の初期値が複製されている。
【0113】ステップS72で、カウンタWの値が、奇数であると判定された場合、ステップS74に進み、テーブルAが書き込み専用テーブルWに、そしてテーブルBが、読み出し専用テーブルRに設定される。このようにして、読み出し専用テーブルRと書き込み専用テーブルWを、平滑処理毎に入れ替えることより、平滑処理を繰り返し実行することができる。
【0114】ステップS73またはステップS74で、読み出し専用テーブルRおよび書き込み専用テーブルWが設定されたとき、ステップS75に進み、今回の平滑処理の処理結果に基づく評価値をレジストする他のレジスタS2の値が0に初期化される。
【0115】ステップS76において、輝度値rを表す変数iが1に初期化され、ステップS77において、輝度値gを表す変数jが1に初期化され、そして、ステップS78において、輝度値bを表す変数kが1に初期化される。
【0116】次に、ステップS79において、直方体BTにおける座標(ri,gj,bk)の要素点が、標本点Pであるかが判定され、標本点Pであると判定された場合、ステップS80に進み、読み出し専用テーブルRにおける座標(ri,gj,bk)の要素点に設定されている値が読み出され、書き込み専用テーブルWに書き込まれる。
【0117】一方、ステップS79で、直方体BTにおける座標(ri,gj,bk)の要素点が、標本点Pではないと判定された場合、ステップS81に進み、式(13)の演算が行われる。
【数4】

なお、式中、テーブルW[ri][gj][bk]は、書き込み専用テーブルWにおける座標(ri,gj,bk)の要素点に設定される値を示し、テーブルR[rI][gJ][bK]は、読み出し専用テーブルRにおける座標(rI,gJ,bK)の要素点に設定されている値を示す。
【0118】次に、ステップS82において、ステップS81での演算結果が、最大値テーブルMAXTにおける座標(ri,gj,bk)の要素点に設定されている値より大きいか否かが判定され、大きいと判定された場合、すなわち、その値が、最大値拘束条件を満たさないとき、ステップS83に進み、最大値テーブルMAXTの要素点に設定されているその値が、書き込み専用テーブルWに書き込まれる値の候補(以下、平滑値候補と称する)とされる。一方、演算結果が、最大値テーブルMAXTのその要素点に設定されている値以下であると判定された場合、ステップS81での演算結果が、平滑値候補とされる。
【0119】ステップS82またはステップS83で、平滑値候補が決定されたとき、ステップS84に進み、ステップS82またはステップS83で決定された平滑値候補が、最小値テーブルMINTにおける座標(ri,gj,bk)の要素点に設定されている値より小さいかが判定される。
【0120】ステップS84で、平滑値候補が、最小値テーブルMINTにおける要素点に設定されているその値より小さいと判定された場合、すなわち、その平滑値候補が、最小値拘束条件を満たさないとき、ステップS85に進み、最小値テーブルMINTの要素点に設定されているその値が、平滑値に決定される。一方、ステップS84で、ステップS82またはステップS83での平滑値候補が、最小値テーブルの要素点に設定されているその値以上であると判定された場合、その平滑値候補が、そのまま平滑値に決定される。
【0121】ステップS84またはステップS85で、平滑値が決定されたとき、ステップS86に進み、書き込み専用テーブルWにおける座標(ri,gj,bk)の要素点に設定されている値が、ステップS84またはステップS85で決定された平滑値に変更される。
【0122】次に、ステップS87において、式(14)に従って、座標(ri,gj,bk)を中心とした評価値(以下、部分評価値と称する)が求められ、求められた部分評価値が、レジスタS2に、先にレジストされている値に加算されてレジストされる。
【数5】

【0123】ステップS88において、変数kで示される輝度値bkの値が、輝度値bzより1だけ小さい輝度値と等しいか否かが判定され、等しくないと判定された場合、ステップS89に進み、変数kの値が1だけインクリメントされ、ステップS79に戻る。一方、等しいと判定された場合、ステップS90に進む。
【0124】ステップS90において、変数jで示される輝度値gjの値が、輝度値gzより1だけ小さい値と等しいか否かが判定され、等しくないと判定された場合、ステップS91に進み、変数jの値が1だけインクリメントされ、ステップS78に戻る。一方、等しいと判定された場合、ステップS92に進む。
【0125】ステップS92において、変数iで示される輝度値riの値が、輝度値rzより1だけ小さい値と等しいか否かが判定され、等しくないと判定された場合、ステップS93に進み、変数iの値が1だけインクリメントされ、ステップS77に戻る。一方、等しいと判定された場合、ステップS94に進む。すなわち、このとき、ステップS87の処理により、式(15)の演算が完了したことになる。
【数6】

【0126】ステップS94において、カウンタWの値が0であるか否かが判定され、0であると判定された場合、すなわち、1回目の平滑処理が実行された場合、後述するステップS96がスキップされ、ステップS95に進み、カウンタWの値が1だけインクリメントされるとともに、またレジスタS2の値が、レジスタS1にそのままレジストされ、その後、ステップS72に戻る。
【0127】ステップS94で、カウンタWの値が0ではないと判定された場合、ステップS96に進み、レジスタS2の値(今回の評価値(式15)の演算結果)が、レジスタS1の値(前回の評価値(式15)の演算結果)より小さいか否かが判定され、小さいと判定された場合、ステップS95に進み、カウンタWの値が1だけインクリメントされるとともに、レジスタS1の値が、レジスタS2の値で入れ替えられ、ステップS72に戻り、もう一度、平滑処理が実行される。一方、レジスタS2の値(今回の評価値)が、レジスタS1の値(前回の評価値)より小さくないと判定された場合、データは十分に平滑され、処理は終了する。その結果、輝度補正テーブルは完成し、図13のフローチャートが終了する。
【0128】次に、以上のようにして生成された輝度補正テーブルBTに基づく、ステレオ画像処理について、図28のフローチャートを参照して説明する。
【0129】ステップS101において、図2に示した位置にそれぞれ配置された、2台の基準カメラ1および検出カメラ2で対象物3(この場合の対象物3は、その距離情報を得るための対象物)が撮影される。これにより、基準カメラ1から、対象物3の投影像を含む基準カメラ画像が得られ、検出カメラ2から、対象物3の投影像を含む検出カメラ画像が得られ、フレームメモリ5に供給され記憶される。
【0130】ステップS102において、演算処理回路21は、フレームメモリ5に記憶された基準カメラ画像上の、対象物3の点Xが投影されている点na(図4)を中心とする基準ブロックの輝度値r,g,bを検出する。
【0131】ステップS103において、演算処理回路21は、記憶装置7に記憶されている輝度補正テーブルBTを参照し、ステップS102で検出した輝度値r,g,bにより特定される要素点に設定されている輝度値yを検出する。
【0132】次に、ステップS104において、演算処理回路21は、エリアベースマッチングを行い、対応点nbを検出する。具体的には、ステップS103で検出された輝度値yと、検出カメラ画像の、基準カメラ画像上の点naに対応するエピポーラライン上の各検出ブロックの輝度値が、式(1)に代入され、それぞれの評価値が算出される。そして算出された評価値のうち、評価値が最も小さい点の検出ブロックの中心点が、対応点nbとして検出される。
【0133】ステップS105において、演算処理回路21は、基準カメラ画像上の点naと、ステップS104で検出した対応点nbの間の視差を求め、その視差および、基準カメラ1と検出カメラ2の位置関係に基づいて、対象物3までの距離を求める。演算処理回路21は、求めた距離に対応する距離情報を生成する。
【0134】このようにして、対象物3までの距離が検出される。
【0135】なお、基準カメラ画像のカラー画像の輝度値が、値0乃至値255の範囲である場合、輝度補正テーブルBTの大きさは、座標(0,0,0)と座標(255,255,255)の2つの点を、対角線上の両端点とする直方体となる。このとき、例えば、この直方体の1/4の大きさの輝度補正テーブルBT(座標(0,0,0)と座標(64,64,64)の2つの点を、対角線上の両端点とする輝度補正テーブルBT)を、はじめに生成し、その輝度補正テーブルを、2倍に拡張した後、平滑処理を行って、1/2の大きさの輝度補正テーブルを生成し、そして最終的に1/1の大きさの輝度補正テーブルを生成することもできる。
【0136】このように、輝度補正テーブルを、段階的に(階層的)に生成することにより、テーブルの大きさに対して、標本点Pが占める割合を大きくすることができる。通常、標本点Pの占める割合が大きければ大きいほど、輝度補正の補正結果が良好になる。また、階層的に生成することより、生成処理が短縮される。
【0137】また、以上においては、基準カメラ1がカラービデオカメラで、検出カメラ2が、白黒ビデオカメラである場合を例として説明したが、検出カメラ2が、基準カメラ1とその異種機器のカラービデオカメラである場合においても、本発明を適用することができる。この例の場合、3つの輝度補正テーブルBTが設けられる。
【0138】1つの輝度補正テーブルには、基準カメラ画像からの輝度値r,g,bにより特定される標本点Pに、検出カメラ画像からの輝度値rが対応して設定され、もう1つの輝度補正テーブルには、基準カメラ画像からの輝度値r,g,bにより特定される標本点Pに、検出カメラ画像からの輝度値gが対応して設定され、そしてもう1つの輝度補正テーブルには、基準カメラ画像からの輝度値r,g,bにより特定される標本点Pに、検出カメラ画像からの輝度値bが対応して設定される。このように、検出カメラ画像からの輝度値r,g,bのそれぞれが対応して設定される標本点Pが設けられている3つの輝度補正テーブルを設けることより、基準カメラ1および検出カメラ2が共にカラービデオカメラである場合においても、輝度補正を実行することができる。
【0139】また、以上においては、RGBの光学像の色基底を用いたが、例えば、YUVまたはHSIなどを利用して、輝度補正テーブルを生成することもできる。なお、この場合、初期値の設定方法、および拘束条件は、適宜適切に変更される。
【0140】また、以上においては、距離情報が生成される場合を例として説明したが、例えば、異なるカメラで撮像された複数の画像間の対応点を求めるためのマッチングを行い、その画像をつなぎ合わせる、いわゆるモザイギングを行う場合においても、応用することができる。
【0141】上述した一連の処理は、ハードウエアにより実現させることもできるが、ソフトウエアにより実現させることもできる。一連の処理をソフトウエアにより実現する場合には、そのソフトウエアを構成するプログラムがコンピュータにインストールされ、そのプログラムがコンピュータで実行されることより、距離測定装置20が機能的に実現される。
【0142】図29は、上述のような距離測定装置20として機能するコンピュータ101の一実施の形態の構成を示すブロック図である。CPU(Central Processing Unit)111にはバス115を介して入出力インタフェース116が接続されており、CPU111は、入出力インタフェース116を介して、ユーザから、キーボード、マウスなどよりなる入力部118から指令が入力されると、例えば、ROM(Read Only Memory)112、ハードディスク114、またはドライブ120に装着される磁気ディスク131、光ディスク132、光磁気ディスク133、若しくは半導体メモリ134などの記録媒体に格納されているプログラムを、RAM(Random Access Memory)113にロードして実行する。これにより、上述した各種の処理(例えば、図13,図18,図20,図27,図28のフローチャートが行われる。さらに、CPU111は、その処理結果を、例えば、入出力インタフェース116を介して、LCD(Liquid Crystal Display)などよりなる表示部117に必要に応じて出力する。なお、プログラムは、ハードディスク114やROM112に予め記憶しておき、コンピュータ101と一体的にユーザに提供したり、磁気ディスク131、光ディスク132、光磁気ディスク133,半導体メモリ134等のパッケージメディアとして提供したり、衛星、ネットワーク等から通信部119を介してハードディスク114に提供することができる。
【0143】なお、本明細書において、記録媒体により提供されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0144】
【発明の効果】請求項1に記載の画像処理装置、請求項4に記載の画像処理方法、および請求項5に記載の記録媒体のプログラムによれば、第1の特性のカメラで対象物を撮像して得られる第1の画像の色基底毎の輝度値と、第2の特性のカメラで対象物を撮像して得られる第2の画像の輝度値との対応関係を保持し、第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方を検出し、検出した第1の画像の色基底毎の輝度値と第2の画像の輝度値の一方に対応する他方を、保持した対応関係から検出するようにしたので、検出した結果に基づいて、第1の画像または第2の画像の輝度値を補正することができる。
【出願人】 【識別番号】000002185
【氏名又は名称】ソニー株式会社
【出願日】 平成11年12月15日(1999.12.15)
【代理人】 【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
【公開番号】 特開2001−174219(P2001−174219A)
【公開日】 平成13年6月29日(2001.6.29)
【出願番号】 特願平11−355745