(57)【特許請求の範囲】
【請求項１】
複数の撮像装置によって撮像された画像に対して所定の画像処理を施す画像処理装置において、
前記撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力する基準画像入力手段と、
前記撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力する参照画像入力手段と、
基準点から所定の距離だけ離れた位置の被写体を撮像して得られる前記基準画像および前記参照画像を用いて、前記基準画像と、射影変換行列に基づく変換後の前記参照画像との輝度誤差が最小となるような射影変換を行う前記射影変換行列を算出する射影変換行列算出手段と、
前記基準画像上の点を、前記射影変換行列を用いて変換し、その点に対応する前記参照画像上の点を算出する点算出手段と、
前記点算出手段によって算出される前記参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する算出手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記射影変換行列の算出に用いられた前記基準画像とは別の基準画像上の前記対象点までの距離を算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、前記エピポーララインに沿って検索された、前記基準画像上の対称点に対応する前記参照画像上の対応点に基づいて、前記対象点までの距離を算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
複数の撮像装置によって撮像された画像に対して所定の画像処理を施す画像処理方法において、
前記撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力する基準画像入力ステップと、
前記撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力する参照画像入力ステップと、
基準点から所定の距離だけ離れた位置の被写体を撮像して得られる前記基準画像および前記参照画像を用いて、前記基準画像と、射影変換行列に基づく変換後の前記参照画像との輝度誤差が最小となるような射影変換を行う前記射影変換行列を算出する射影変換行列算出ステップと、
前記基準画像上の点を、前記射影変換行列を用いて変換し、その点に対応する前記参照画像上の点を算出する点算出ステップと、
前記点算出手段によって算出される前記参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する算出ステップと
を備えることを特徴とする画像処理方法。
【請求項５】
複数の撮像装置によって撮像された画像に対して所定の画像処理を施す画像処理装置において、
前記撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力する基準画像入力手段と、
前記撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力する参照画像入力手段と、
前記参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する算出手段
を備え、
前記エピポーララインは、
基準点から所定の距離だけ離れた位置の被写体を撮像して得られる前記基準画像および前記参照画像を用いて、前記基準画像と、射影変換行列に基づく変換後の前記参照画像との輝度誤差が最小となるような射影変換を行う前記射影変換行列を算出し、
前記基準画像上の点を、前記射影変換行列を用いて変換し、その点に対応する前記参照画像上の点を算出し、その参照画像上の点から生成されたものである。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置、画像処理方法、および、伝送媒体に関し、特に、ステレオ法に基づいて距離測定を行う画像処理装置、画像処理方法、および、伝送媒体に関する。
【０００２】
【従来の技術】
複数のカメラを用いて、対象までの距離を測定する方法としては、ステレオ法が知られている。ステレオ法は、複数の視点から撮影した画像を用いて、シーン内の各点までの距離を三角測量の原理により測定する方法である。
【０００３】
図１２は、ステレオ法の概略を説明する図である。この図に示すように、ステレオ法では、基準カメラと参照カメラの２台のカメラによって３次元シーンを観察し、測定しようとする対象の３次元空間における位置（基準点からの距離）を求める。
【０００４】
即ち、図１２に示す例では、３次元シーン中の対象点Ｐが基準カメラによって観察される観察点ｎbと、参照カメラによって観察される観察点ｎrとを求める。そして、これらの観察点ｎb，ｎrから対象点Ｐの三次元空間内の位置を求めることができる。
【０００５】
観察点ｎbに対応する観察点ｎrを検出する方法としては、エピポーラライン（Epipolar line）を用いた方法がある。即ち、図１２に示すように、参照カメラの観察点ｎrは、両カメラの光学中心（光軸）と基準カメラの観察点ｎbによって決まる平面と、参照カメラの画像面が交わる直線上に存在する。この直線をエピポーララインと呼ぶ。基準カメラと参照カメラの位置関係が既知であれば、基準カメラの各観察点毎に参照カメラの画像面上のエピポーララインを求めることができるので、このエピポーラライン上で対応点検索を行うことにより、所望の対応点を検出することができる。
【０００６】
一般的には、内部パラメータが等しい２台のカメラを、お互いの光軸が平行でかつ画像面が同一面上に存在するように配置すると、各カメラがラスタ走査する際の走査線とエピポーララインとを一致させることができるので、結果として、アドレス変換などに必要な計算を削減することが可能となる。
【０００７】
【発明が解決しようとする課題】
ところで、前述のように、基準カメラと参照カメラを高精度に位置決めして配置することは極めて困難であるという課題があった。
【０００８】
また、基準カメラと参照カメラの撮影画像の双方に含まれている範囲（どちらのカメラからでも観察できる範囲）を広くするために輻輳をつけた場合（２台のカメラの光軸が平行ではない場合）、エピポーララインと走査線とが一致しなくなるので、カメラの内部パラメータと外部パラメータを正確に求めなければならないという課題があった。
【０００９】
更に、基準カメラと参照カメラの内部パラメータが相互に異なっている場合においても、エピポーララインと走査線が一致しなくなるため、上述の場合と同様にカメラの内部パラメータと外部パラメータとを求めなければならないという課題があった。
【００１０】
なお、内部パラメータと外部パラメータには以下のようなものである。
【００１１】
内部パラメータ
ｆ（focal length）、Ｃx，Ｃy（center of image plane）、ｓｘ（digital scale factor）
【００１２】
外部パラメータ
Ｒｘ，Ｒｙ，Ｒｚ（rotational angle）、Ｔｘ，Ｔｙ，Ｔｚ（translational components）
【００１３】
従って、内部パラメータは個々のカメラ固有の特性を示しており、また、外部パラメータは、３次元空間内における２台のカメラの位置を示しているということができる。
【００１４】
ところで、これらの内部パラメータを正確に求める方法としては、Tsaiの方法（「R.Y.Tsai,A versatile camera calibration technique for high accuracy 3D machine vision metrology using off-the shelf TV cameras and lenses, IEEE journal of Robotics and Automation, Vol.RA-3, no.4,pp.323-344, Aug. 1987」参照）が有名である。
【００１５】
しかしながら、この方法を実際に実行するためには、参照点が正確な位置に描かれた校正パターンや参照点を正確に位置決めするための機構が必要になるという課題があった。
【００１６】
本発明は、以上のような状況に鑑みてなされたものであり、ステレオ法により対象点の位置を測定する場合に、基準カメラと参照カメラの内部または外部パラメータに影響されることなく、また、特殊な校正パターンを用いることなくキャリブレーションを行うことを可能とする。
【００１７】
【課題を解決するための手段】
請求項１に記載の画像処理装置は、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力する基準画像入力手段と、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力する参照画像入力手段と、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出する射影変換行列算出手段と、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出する点算出手段と、点算出手段によって算出される参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する算出手段とを備えることを特徴とする。
【００１８】
請求項４に記載の画像処理方法は、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力する基準画像入力ステップと、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力する参照画像入力ステップと、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出する射影変換行列算出ステップと、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出する点算出ステップと、点算出手段によって算出される参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する算出ステップとを備えることを特徴とする。
【００１９】
請求項５に記載の画像処理装置は、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力する基準画像入力手段と、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力する参照画像入力手段と、参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する算出手段を備えることを特徴とし、エピポーララインは、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出し、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出し、その参照画像上の点から生成されたものである。
【００２０】
請求項１に記載の画像処理装置、および請求項４に記載の画像処理方法においては、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力し、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力し、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出し、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出し、点算出手段によって算出される参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出する。
請求項５に記載の画像処理装置においては、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力し、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力し、参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出し、エピポーララインは、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出し、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出し、その参照画像上の点から生成される。
【００２１】
【発明の実施の形態】
図１は、本発明の実施の形態の構成例について説明する図である。この図において、ワークステーション１０は、ＣＰＵ１０ａ（変換手段、算定手段、算出手段）、ＲＯＭ１０ｂ、ＲＡＭ１０ｃ、および、ＩＦ１０ｄ（基準画像入力手段、参照画像入力手段）により構成されており、基準カメラ３０および参照カメラ３１から出力された画像信号に対して所定の処理を施すようになされている。
【００２２】
ＣＰＵ１０ａは、装置の各部を制御するとともに、プログラムに応じて所定の演算を行うようになされている。ＲＯＭ１０ｂは、ＣＰＵ１０ａが実行するプログラムや各種データなどを格納している。ＲＡＭ１０ｃは、ＣＰＵ１０ａが各種処理を実行する際の演算途中のデータやプログラムなどを格納するようになされている。ＩＦ１０ｄは、外部装置との間でデータを授受する場合において、データの表現形式を適宜変換するようになされている。
【００２３】
ＣＲＴモニタ２０は、ワークステーション１０から出力された画像を表示出力するようになされている。ＨＤＤ２１は、基準カメラ３０および参照カメラ３１から出力された画像信号や各種プログラム等を記録または再生するようになされている。
【００２４】
基準カメラ３０と参照カメラ３１は、被写体の光画像を対応する電気信号（画像信号）に変換して出力するようになされている。
【００２５】
なお、複数の参照カメラを設け、その中から所望の画像のみを選択して用いるようにしてもよい。
【００２６】
以下では、以上の実施の形態の動作について説明する前に、本実施の形態の動作原理について説明する。
【００２７】
図２は、本発明の動作原理を説明する図である。
【００２８】
本発明では、射影変換を用いて、参照画像を基準画像に変換した後、双方の画像の対応する位置から対象点までの距離を算出するようになされている。
【００２９】
即ち、３次元空間に置かれた平面を２台のカメラ（ステレオペアカメラ）で観察した場合、対応点のカメラ座標は射影変換により相互に変換可能である（「金谷，“画像理解，”森北出版，１９９０」参照）。つまり、図２に示すように、３次元空間に置かれた平面上の点Ｐが基準カメラ３０の画像（以下、基準画像と適宜略記する）でｎbに観察され、参照カメラ３１の画像（以下、参照画像と適宜略記する）でｎrに観察されたとすると、ｎbからｎrへの変換を３×３の射影変換行列をＨとすると、以下のように示すことができる。
【００３０】
【数１】
0004006657.tif 000002
【００３１】
ここでは、射影幾何における斉次座標系を用いているので、画像平面上の２次元の点は（ｘ，ｙ，ｗ）と表され、画像面上の直交座標系では（ｘ／ｗ，ｙ／ｗ）と表される。従って、式（１）は、以下のように表すことができる。
【００３２】
【数２】
0004006657.tif 000003
【００３３】
また、画像座標では、射影変換は以下のように表すことができる。
【００３４】
【数３】
0004006657.tif 000004
【００３５】
【数４】
0004006657.tif 000005
【００３６】
ここで、ｉは、画像を構成する画素の番号を示しており、例えば、１画面が６４０×４８０個の画素から構成されている画像では、ｉは０乃至６４０×４８０の値を取る。
【００３７】
射影変換行列Ｈは、ｍ0乃至ｍ8の合計９個のパラメータより構成されている。しかしながら、スケール因子に自由度が残るので、自由度は８となる。また、射影変換行列Ｈは、カメラの内部パラメータ、外部パラメータ、および、平面の方程式を暗黙的に含んだ行列である。
【００３８】
図３は、射影変換を施す対象となるテキスチャとカメラとの関係を示す図である。この図においては、基準点（所定の位置に選んでよい）からある距離Ｚ0だけ離れた位置に設置した１枚の平面を、相互に位置関係が固定された複数のカメラにより撮像するようになされている。なお、平面のカメラ側の面には、所定のテキスチャが形成されている。
【００３９】
中央のカメラを基準カメラ、その他を参照カメラとし、参照カメラのうちの何れか１つの画像と、基準カメラの画像とを組み合わせてステレオペアを形成する。
【００４０】
このとき、基準カメラの画像（基準画像）と、例えば、右端の参照カメラの画像（参照画像）は、図４（Ａ）のようになる。
【００４１】
このとき、参照画像に対して所定の射影変換を施し、これらの画像間の輝度の誤差が最初となるような射影変換行列Ｈを算出する。このような射影変換行列Ｈを求めることにより、基準画像の任意の点に対応する対応点を参照画像上から検索することが可能となる。なお、本実施の形態においては、変換後の参照画像と、基準画像とが正確に一致する射影変換行列Ｈを求める方法（画像合わせ込み方法）としては、Levenberg-Marquardt最小化法（以下、Ｌ−Ｍ法と略記する）を用いている。以下にその詳細について説明する。
【００４２】
基準画像をＩ、参照画像をＩ’とし、基準画像Ｉ上の座標ｘ，ｙにおける第ｉ番目の画素をＩ（ｘi，ｙi）、また、参照画像Ｉ’上の座標ｘ’，ｙ’における第ｉ番目の画素をＩ’（ｘ’i，ｙ’i）とする。このとき、第ｉ番目の画素の輝度誤差をｅiとすると、画像全体の輝度誤差Ｅは、次の式（５）により表すことができる。
【００４３】
【数５】
0004006657.tif 000006
【００４４】
このＥを最小化する射影変換行列を求めれば、画像の合わせ込み、即ち、基準画像と参照画像との関係式を導出することができる。
【００４５】
即ち、画像全体の輝度誤差Ｅは、未知パラメータ｛ｍ0，ｍ1，・・・，ｍ7｝によるｅiの偏微分を用いて導出する。前述したように、射影行列Ｈの自由度は８であるから、ここではｍ8＝１とする。すると、第ｋ番目のパラメータｍkによるｅiの偏微分は、以下の式により表すことができる。
【００４６】
【数６】
0004006657.tif 000007
【００４７】
この式を、それぞれの未知パラメータにより実際に偏微分を行ったものを以下の式（７）乃至（１４）に示す。
【００４８】
【数７】
0004006657.tif 000008
【００４９】
【数８】
0004006657.tif 000009
【００５０】
【数９】
0004006657.tif 000010
【００５１】
【数１０】
0004006657.tif 000011
【００５２】
【数１１】
0004006657.tif 000012
【００５３】
【数１２】
0004006657.tif 000013
【００５４】
【数１３】
0004006657.tif 000014
【００５５】
【数１４】
0004006657.tif 000015
【００５６】
但し、Ｄi＝ｍ6・ｘi＋ｍ7・ｙi＋１において、（  Ｉ’／  ｘ’，  Ｉ’／ｙ’）は、Ｉ’の（ｘ’i，ｙ’i）における輝度値の勾配（Gradient）である。これらの偏微分から、Ｌ−Ｍ法では近似Hessian Matrix A（以下、行列Ａと略記する）と、Weighted gradient vector b（以下、ベクトルｂと略記する）を計算する。なお、行列Ａとベクトルｂのそれぞれの構成要素は、次のように表すことができる。
【００５７】
【数１５】
0004006657.tif 000016
【００５８】
【数１６】
0004006657.tif 000017
【００５９】
そして、画像全体の輝度誤差Ｅの値が減少したか否かに応じて、行列Ａとベクトルｂを用いた次式に示すΔｍだけ未知パラメータｍの値を更新する。
【００６０】
【数１７】
0004006657.tif 000018
【００６１】
ここで、λは、time-varying stabilization parameterである。
【００６２】
以上のような処理を誤差の変化がなくなる（実際には、誤差の減少分が所定の閾値以下になる）まで繰り返すことにより、射影変換行列Ｈの未知のパラメータｍ0乃至ｍ7を求めることができる。
【００６３】
以上のようにして求めた射影変換行列Ｈを用いて、次に、エピポーララインを求める。
【００６４】
図５は、エピポーララインを求める方法を説明する図である。射影変換行列Ｈ0が決まると、距離Ｚ0における基準画像上の点ｎbに対応する参照画像上の点ｎr0が決定できる。点ｎbは任意であるので、その結果、基準画像上の全ての点に対応する対応点を算出することができる。
【００６５】
同様にして、観察する平面を距離Ｚ1の位置に、距離Ｚ0の位置に置かれていた平面と平行になるように置いた場合の射影変換行列Ｈ1を求める。
【００６６】
求めた射影変換行列Ｈ0，Ｈ1により、基準画像上の観察点ｎbは、対象が距離Ｚ0または距離Ｚ1にある場合には、参照画像上のｎr0，ｎr1にそれぞれ射影されることが分かる。従って、参照画像上の２点ｎr0，ｎr1を結んだ線分がエピポーララインとなる。
【００６７】
ところで、実際の対象物の距離を測定する場合においては、基準画像上の所定の点に対応する点（対応点）をエピポーラライン上で探索し、検出された対応点の位置（視差）を、３次元空間における実際の距離に変換する必要がある。しかし、本実施の形態においては射影変換を用いているので、視差と実際の距離とは正比例しない。従って、この視差を距離に変換する変換式を求めるために、本実施の形態においては、距離Ｚ0，Ｚ1とは異なる距離Ｚ2に前述の平面を再度設置してｎr2を求め、これらｎr0，ｎr1，ｎr2から複比を用いて視差と距離の変換を行うようにしている。
【００６８】
以下では、複比について説明する。
【００６９】
図６は、複比を説明するための図である。この図に示すように、３次元空間内の線分Ｌが画像面上の線分Ｌ’に投影されているとする。このとき、線分Ｌ上の４点Ａ，Ｂ，Ｃ，Ｄは、それぞれ、線分Ｌ’上のＡ’，Ｂ’，Ｃ’，Ｄ’に投影されているものとする。また、これらの線分Ｌ，Ｌ’を観察する視点Ｏと、線分Ｌ，Ｌ’とは同一平面上に配置されている。換言すると、点Ａ，Ｂ，Ｃ，Ｄ，Ａ’，Ｂ’，Ｃ’，Ｄ’と視点Ｏとは、同一の平面上に配置されている。これらの平面上における位置関係を書き直すと、図７のようになる。
【００７０】
この図において、ＯＡ＝ａ，ＯＢ＝ｂ，ＯＣ＝ｃ，ＯＤ＝ｄとおき、更に  ＡＯＣ＝α，  ＢＯＣ＝β，  ＡＯＤ＝γ，  ＢＯＤ＝δとおくと、これらの間の関係は、以下の式により表すことができる。
【００７１】
【数１８】
0004006657.tif 000019
【００７２】
【数１９】
0004006657.tif 000020
【００７３】
【数２０】
0004006657.tif 000021
【００７４】
従って、式（１９）と式（２０）を式（１８）に代入すると、以下の式を得る。
【００７５】
【数２１】
0004006657.tif 000022
【００７６】
同様の計算をＡＤとＢＤに対して施すと、以下の式を得る。
【００７７】
【数２２】
0004006657.tif 000023
【００７８】
式（２１）を式（２２）により除算することにより、以下の式（２３）を得る。
【００７９】
【数２３】
0004006657.tif 000024
【００８０】
以上の式（１８）乃至式（２３）の計算と同様の計算を、Ａ’Ｃ’，Ｂ’Ｃ’，Ａ’Ｄ’，Ｂ’Ｄ’に対して行うことにより、以下の式を得る。
【００８１】
【数２４】
0004006657.tif 000025
【００８２】
これら、式（２３）と式（２４）とから、以下の式を得る。
【００８３】
【数２５】
0004006657.tif 000026
【００８４】
以上の複比を用いて、以下のような手順により、所望の対象点の３次元空間内における基準点からの距離を求める。
【００８５】
いま、図７において、線分Ｌを基準画像上の点ｎbの視線に対応させ、また、線分Ｌ’をエピポーララインに対応させるとする。更に、点Ａ，Ｂ，Ｄをそれぞれ距離Ｚ0，Ｚ2，Ｚ1の３次元空間内の点に対応させ、また、点Ａ’，Ｂ’，Ｄ’を、射影変換行列Ｈ0，Ｈ2，Ｈ1でそれぞれ求めることができる参照画像上の点ｎr0，ｎr2，ｎr1に対応させるとする。これらの関係を改めて作図しなおしたのが図８である。
【００８６】
いま、距離Ｚsだけ離れた位置に、対象点Ｃが配置されているとする。このとき、エピポーララインＬ’上を探索して得られた対応点がｎrsであるとすると、式（２５）の各線分の値は、以下のようになる。
【００８７】
【数２６】
0004006657.tif 000027
【００８８】
従って、式（２６）を式（２５）に代入することにより、基準点から対象点Ｃまでの距離Ｚ3を求めることができる。ところで、実際の距離は線分Ｌに沿ったものではないが、別の線分に正射影されているので、各距離の比は正比例の関係となるので大きな問題は生じない。例えば、図８においては、ＡＤは光軸に正射影したＡcＤcの長さである。
【００８９】
また、以上の例では、ＡＤ間の内挿の場合（対象点ＣがＡＤの内側に存在する場合）について説明したが、外挿の場合（対象点がＡＤの外側に存在する場合）においても可能であることはいうまでもない。
【００９０】
次に、以上の説明を踏まえたうえで、図１に示す本発明の実施の形態の動作について図８に示すフローチャートを参照して説明する。
【００９１】
この処理は、図１に示す実施の形態において実行される処理の一例を説明するフローチャートである。この処理が実行されると、ステップＳ１において、ＣＰＵ１０ａは、距離Ｚ0における基準画像と参照画像を基準カメラ３０と参照カメラ３１からそれぞれ入力する。即ち、ＣＰＵ１０ａは、図８に示す距離Ｚ0の位置に、基準カメラ３０の光軸と垂直となるように配置された平面を、基準カメラ３０と参照カメラ３１により撮影させ、得られた画像をＩＦ１０ｄを介して読み込む。
【００９２】
ステップＳ２では、前述した式（５）乃至（１７）を用いて、得られた基準カメラ３０の画像と、参照カメラ３１の画像を処理し、射影変換行列Ｈ0を求める。なお、この処理の詳細については、図１０を参照して後述する。
【００９３】
ステップＳ３では、ＣＰＵ１０ａは、図８に示す距離Ｚ1の位置に、基準カメラ３０の光軸と垂直となるように配置された平面を、基準カメラ３０と参照カメラ３１により撮影させ、得られた画像をＩＦ１０ｄを介して読み込む。
【００９４】
ステップＳ４では、射影変換行列Ｈ1が算出される。そして、ステップＳ５に進む。
【００９５】
ステップＳ５では、ＣＰＵ１０ａは、図８に示す距離Ｚ2の位置に、基準カメラ３０の光軸と垂直となるように配置された平面を、基準カメラ３０と参照カメラ３１により撮影させ、得られた画像をＩＦ１０ｄを介して読み込む。
【００９６】
そして、ステップＳ６において、射影変換行列Ｈ2を算出し、処理を終了する（エンド）。
【００９７】
次に、図１０を参照して、ステップＳ２，Ｓ４，Ｓ６に示す射影変換行列を求める処理の詳細について説明する。
【００９８】
この処理が実行（コール）されると、ＣＰＵ１０ａは、ステップＳ１９において、変数ｔを値０に初期設定する。そして、ステップＳ２０において、変数ｊと変数ｋを値０にそれぞれ初期設定し、また、変数λを値１に初期設定する。そして、ステップＳ２１に進む。
【００９９】
ステップＳ２１では、ＣＰＵ１０ａは、変数ｉと変数Ｅを値０にそれぞれ初期設定する。そして、ステップＳ２２に進む。
【０１００】
ステップＳ２２では、ＣＰＵ１０ａは、第ｉ番目の画素の輝度誤差ｅiを算出する。即ち、式（５）に示すように、参照画像Ｉ’の第ｉ番目の画素の値（画素値）から、基準画像Ｉの第ｉ番目の画素値を減算してｅiを求める。
【０１０１】
続くステップＳ２３では、ＣＰＵ１０ａは、参照画像Ｉ’をｘとｙにより偏微分した結果である（  Ｉ’／  ｘ）と（  Ｉ’／  ｙ）をそれぞれ求める。そして、ステップＳ２４に進む。
【０１０２】
ステップＳ２４では、ＣＰＵ１０ａは（  ｅi／  ｍk）（ｋ＝０，１，・・・，７）を算出する。即ち、ＣＰＵ１０ａは、ステップＳ２４において算出した（Ｉ’／  ｘ）と（  Ｉ’／  ｙ）を、式（７）乃至式（１４）に代入することにより、  ｅi／  ｍkを算出する。
【０１０３】
続くステップＳ２５では、ＣＰＵ１０ａは、マトリクスＡとベクトルｂとをそれぞれ計算する。即ち、ＣＰＵ１０ａは、式（１５）と式（１６）に応じて、式（７）乃至式（１４）の結果を累積加算する。そして、ステップＳ２６に進む。
【０１０４】
ステップＳ２６では、ＣＰＵ１０ａは、変数Ｅに対して、第ｉ番目の画素の輝度誤差を２乗した値を加算する。その結果、変数Ｅには各画素の輝度誤差を２乗した値が累積加算されていくことになるので、最終的には変数Ｅには全画素の輝度誤差の２乗和が格納されることになる。
【０１０５】
ステップＳ２７では、ＣＰＵ１０ａは、変数ｉの値を１だけインクリメントし、ステップＳ２８に進む。
【０１０６】
ステップＳ２８では、ＣＰＵ１０ａは、変数ｉの値が画素の総数である６４０×４８０と等しくなったか否かを判定する。その結果、変数ｉの値が６４０×４８０と等しくない（ＮＯ）と判定した場合には、ステップＳ２２に戻り、前述の場合と同様の処理を繰り返す。また、変数ｉの値が６４０×４８０と等しい（ＹＥＳ）と判定した場合にはステップＳ２９に進む。
【０１０７】
ステップＳ２９では、ＣＰＵ１０ａは、行列Ａとベクトルｂを含む方程式（Ａ＋λＩ）Δｍ＝ｂを解き、Δｍを求める。ここで、λはtime-varying stabilizing parameterである。そして、ステップＳ３０に進み、現在のｍ(t)の値に対して、Δｍを加算して、新たなｍ(t+1)を生成し、ステップＳ３１に進む。
【０１０８】
ステップＳ３１では、ＣＰＵ１０ａは、ステップＳ３０において得られたｍ(t+1)を用いて、画像全体の輝度誤差Ｅ’を算出する。そして、ステップＳ３２に進み、Ｅ’がＥよりも小さいか否かを判定する。即ち、新たなｍ(t+1)により生成された画素全体の輝度誤差Ｅ’が、前回の画素全体の輝度誤差Ｅよりも小さいか否かを判定する。その結果、Ｅ’がＥよりも小さい（ＹＥＳ）と判定した場合には、ステップＳ３６に進み、変数ｔの値を１だけインクリメントし、ステップＳ２０に戻り、前述の場合と同様の処理を繰り返す。また、Ｅ’がＥ以上である（ＮＯ）と判定した場合にはステップＳ３３に進む。
【０１０９】
ステップＳ３３では、ＣＰＵ１０ａは、変数ｊの値を１だけインクリメントし、ステップＳ３４に進む。ステップＳ３４では、ＣＰＵ１０ａは、変数ｊの値が３０であるか否かを判定する。その結果、変数ｊの値が３０である（ＹＥＳ）と判定した場合には元の処理に復帰する。また、変数ｊの値が３０ではない（ＮＯ）と判定した場合には、ステップＳ３５に進む。
【０１１０】
ステップＳ３５では、ＣＰＵ１０ａは、変数λの値を１０倍して、ステップＳ２９に戻り、前述の場合と同様の処理を繰り返すことになる。
【０１１１】
以上の処理により、射影変換行列Ｈを求めることができる。
【０１１２】
なお、以上の実施の形態においては、画像全体に対して処理を行う場合について説明したが、例えば、画像の一部の領域のみに対して前述の処理を行うことも可能である。また、変換の結果、対象となるテキスチャが画面からはみ出した場合には、処理の繰り返し回数が全画素数よりも少ない回数に設定される。
【０１１３】
次に、このようにして得られた射影変換行列Ｈ0乃至Ｈ2を用いて、対象点までの距離を求める処理について図１１を参照して以下に説明する。
【０１１４】
図１１は、図８に示す対象点Ｃまでの距離を測定するための処理の一例を説明するフローチャートである。
【０１１５】
この処理が実行されると、ステップＳ５０において、ＣＰＵ１０ａは、基準画像上の対象点ｎb（画像上の対象点Ｃ）を入力する。
【０１１６】
続くステップＳ５１では、ＣＰＵ１０ａは、図９の処理において求めた射影変換行列Ｈ0乃至Ｈ2を用いて、参照画像上の対応点ｎr0乃至ｎr2を算出する。そして、ステップＳ５２に進む。
【０１１７】
ステップＳ５２では、ＣＰＵ１０ａは、ステップＳ５１において求めたｎr0とｎr1とを直線で結ぶことにより、エピポーララインを生成する。即ち、ＣＰＵ１０ａは、エピポーララインが通過する画素のアドレス値を生成し、ＲＡＭ１０ｃに格納する。
【０１１８】
ステップＳ５３では、ＣＰＵ１０ａは、基準カメラ３０から出力される画像をＲＡＭ１０ｃに一旦格納し、格納されている画像の点ｎbの近傍の画素群を抽出する。
【０１１９】
続くステップＳ５４では、ＣＰＵ１０ａは、抽出した画素群をテンプレートとし、マッチ度の高い点ｎrsをエピポーララインに沿って検索する。即ち、ＣＰＵ１０ａは、ステップＳ５２において生成され、ＲＡＭ１０ｃに格納されているエピポーララインに対応するアドレスに応じて、参照カメラ３１から出力される画像から画素群を読み出し、テンプレートと照合する。そして、最も近しい（誤差の少ない）画素群が存在する領域の中心を点ｎrsとする。
【０１２０】
ステップＳ５５では、ＣＰＵ１０ａは、ステップＳ５４で求めたｎrsと、ｎr0乃至ｎr2、および、Ｚ0乃至Ｚ2から、複比を用いて、ｎrsに対応する距離Ｚsを算出する。即ち、ＣＰＵ１０ａは、式（２５）および式（２６）に対して、以上の処理により得られたｎrsと、ｎr0乃至ｎr2、および、Ｚ0乃至Ｚ2を代入し、点ｎrsに対応する距離Ｚsを算出する。そして、処理を終了する（エンド）。
【０１２１】
このような処理により、対象点Ｃまでの距離Ｚsを算出することができる。
【０１２２】
以上の実施の形態によれば、特殊な校正パターンなどを必要としないため簡便な装置によりキャリブレーションを行うことが可能となる。また、画像合わせ込みを行うため、各カメラの光軸が任意の方向を向いている場合や、各カメラの間に輻輳がある場合においても、距離の計測が可能となる。
【０１２３】
なお、明細書中において、伝送媒体は、ＦＤ，ＣＤ−ＲＯＭなどの情報記録媒体の他、インターネット、ディジタル衛星などのネットワーク伝送媒体も含まれる。
【０１２４】
【発明の効果】
請求項１に記載の画像処理装置および請求項４に記載の画像処理方法によれば、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力し、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力し、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出し、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出し、点算出手段によって算出される参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出するようにしたので、キャリブレーションに必要な時間と手間を短縮することが可能となる。
請求項５に記載の画像処理装置によれば、撮像装置により撮像された画像のうちの少なくとも１つを基準画像として入力し、撮像装置により入力された画像のうちの少なくとも１つを参照画像として入力し、参照画像上の点から生成されるエピポーララインに応じて、対象点までの距離を算出し、エピポーララインは、基準点から所定の距離だけ離れた位置の被写体を撮像して得られる基準画像および参照画像を用いて、基準画像と、射影変換行列に基づく変換後の参照画像との輝度誤差が最小となるような射影変換を行う射影変換行列を算出し、基準画像上の点を、射影変換行列を用いて変換し、その点に対応する参照画像上の点を算出し、その参照画像上の点から生成されるようにしたので、必要な時間と手間を短縮するようにしたキャリブレーションで、対象点までの距離を求めることができる。
【図面の簡単な説明】
【図１】本実施の形態の構成例を示すブロック図である。
【図２】基準カメラと参照カメラの画像面に平面上の対象点Ｐが観察される様子を示す図である。
【図３】基準カメラ、参照カメラ、および、平面の配置例を示す図である。
【図４】参照カメラの画像が射影変換され、基準カメラの画像と重ね合わされた様子を示す図である。
【図５】対象物が距離Ｚ0とＺ1に存在する場合に参照カメラの画像面に観察される観察点ｎr0とｎr1を示す図である。
【図６】線分Ｌが画像面に投影されている場合の様子を説明する図である。
【図７】図６に示す線分Ｌ、線分Ｌ’、および、視点Ｏを１つの平面上に表した図である。
【図８】図７に示す図を本実施の形態に対応させて書き直した場合の図である。
【図９】射影変換行列Ｈ0乃至Ｈ2を求める処理の一例を説明するフローチャートである。
【図１０】図８に示すステップＳ２，４，６の処理の詳細を説明するフローチャートである。
【図１１】対象点Ｃまでの距離を算出する処理の一例を説明するフローチャートである。
【図１２】基準カメラと参照カメラの画像、対象点Ｐ、および、エピポーララインの関係を示す図である。
【符号の説明】
１０ａ  ＣＰＵ（変換手段、算定手段、算出手段），  １０ｄ  ＩＦ（基準画像入力手段、参照画像入力手段）
【図１】
0004006657.tif 000028
【図２】
0004006657.tif 000029
【図３】
0004006657.tif 000030
【図４】
0004006657.tif 000031
【図５】
0004006657.tif 000032
【図６】
0004006657.tif 000033
【図７】
0004006657.tif 000034
【図８】
0004006657.tif 000035
【図９】
0004006657.tif 000036
【図１０】
0004006657.tif 000037
【図１１】
0004006657.tif 000038
【図１２】
0004006657.tif 000039