〔実施形態1〕
以下、図面を参照しながら本発明の一実施形態について説明する。
(ステレオカメラシステム1)
図1は、本実施形態に係るステレオカメラシステム(カメラシステム)1の一構成例を示すブロック図である。図1に示すように、ステレオカメラシステム1は、撮像装置(カメラ)200a、200b、制御装置300および記憶部400を備えている。
制御装置300は、撮像装置200a、200bを制御して、校正器(被写体)201(図2参照)を撮像させる。制御装置300は、撮像装置200a、200bの各々が撮像した校正器201の撮像画像をそれぞれ入力画像として取得し、当該入力画像に基づいて、最適なカメラパラメータを算出する。記憶部400には、制御装置300が算出したカメラパラメータの情報が記憶される。
制御装置300は、画像取得部301、特徴点抽出部302、内部パラメータ算出部303、画像補正部304、外部パラメータ算出部305および撮像装置制御部306を含んでいる。制御装置300の各部が行う処理については、後述する。なお、図1には、制御装置300と記憶部400がステレオカメラシステムに含まれる構成を示すが、カメラパラメータ算出に関連する画像取得部301、特徴点抽出部302、内部パラメータ算出部303、画像補正部304、外部パラメータ算出部305、記憶部は400は、ステレオカメラシステム内に含まれない構成でもよく、予めステレオカメラで撮像した画像を、ステレオカメラ外の制御装置、例えば、PC内に備わる制御装置でカメラパラメータを算出してもよい。
(校正器201)
図2は、校正器201の一例を示す図である。図2に示すように、校正器201は、一例において、白色の正方形と黒色の正方形とが、市松模様状に上下左右に等間隔に交互に配置された模様を有する。各正方形の頂点は、明るさのコントラストが大きく、校正器201を撮像した画像の特徴点になる。校正器201において、頂点間の相対的な位置関係は既知である。
(カメラパラメータ算出処理)
次に、本実施形態におけるカメラパラメータ算出処理について説明する。図3(A)は、カメラパラメータ算出処理の一例を示すフローチャートである。
一例において、カメラパラメータ算出処理では、まず、撮像装置制御部306により撮像装置200a、200bを制御し校正器201を撮像し、画像取得部301が、撮像装置200a、200bの各々で撮像された校正器201の撮像画像をそれぞれ入力画像として取得する(S101)。特徴点抽出部302は、画像取得部301が取得した入力画像から、特徴点(第一特徴点)を抽出し、当該画像内における第一特徴点の座標(第一特徴点座標)を算出する(S102)。
次に、内部パラメータ算出部303は、特徴点抽出部302が算出した第一特徴点座標に基づいて、撮像装置200a、200bの内部パラメータを算出する内部パラメータ算出処理を実行する(S103)。内部パラメータ算出部303は、算出した内部パラメータを記憶部400に記憶する。
次に、特徴点抽出部302は、内部パラメータ算出部303が算出した内部パラメータを用いて画像補正部304が補正した入力画像から、特徴点(第二特徴点)を抽出し、当該画像内における第二特徴点の座標(第二特徴点座標)を算出する(S104)。
次に、外部パラメータ算出部305は、特徴点抽出部302が算出した第二特徴点座標に基づいて、撮像装置200a、200bの外部パラメータを算出する(S105)。外部パラメータ算出部305は、算出した外部パラメータを記憶部400に記憶する。以上で、カメラパラメータ算出処理は終了する。
(内部パラメータ算出処理)
続いて、カメラパラメータ算出処理のS103として実行される内部パラメータ算出処理の詳細について述べる。内部パラメータ算出部303および画像補正部304が、内部パラメータ算出処理を実行する。
一例において、内部パラメータ算出処理において算出される内部パラメータには、焦点距離、主点位置、歪み係数などが含まれる。内部パラメータは、各撮像装置200a、200b各々に固有の特性を表すパラメータであるため、撮像装置200a、200bごとに独立して算出することができる。
図3(B)は、内部パラメータ算出処理のフローを示している。内部パラメータ算出部303は、まず、歪み係数および主点位置を算出する(S103_1、詳細は後述)。
次に、画像補正部304は、内部パラメータ算出部303が算出した歪み係数および主点位置に基づいて、入力画像の歪みを補正する(S103_2)。歪みを補正された入力画像は、ピンホールカメラで撮像した歪みのない画像401(図4の(a)参照)に近似する。したがって、S103_3以降の各処理においては、入力画像にピンホールカメラモデルを適用することが可能となる。
最後に、補正後の入力画像を用いて、撮像装置200a、200bの焦点距離を算出する(S103_3、詳細は後述)。このとき、さらに主点位置を再計算してもよい(詳細は後述)。
以上で、内部パラメータ算出処理は終了する。
(S103_1;歪み係数kiおよび主点位置(cx、cy)の算出方法)
ここでは、内部パラメータ算出処理のS103_1(図3(B)参照)における歪み係数および主点位置の算出方法を具体的に説明する。まず、歪みのある画像と歪みのない画像とは具体的にどのような画像であるのかを、具体例を示して説明する。
図4の(a)は、ピンホールカメラで校正器201を撮像した歪みのない画像を示す図である。また、図4の(b)は、レンズを備える撮像装置で校正器201を撮像した歪みのある画像を示す図である。
図4の(a)(b)に示すように、レンズを備える撮像装置によって撮像された画像402は、レンズの収差により、ピンホールカメラで撮像した理想的な画像401に対して歪んでいる。そこで、S103_1において、内部パラメータ算出部303は、レンズを備える撮像装置200a、200bによって撮像された歪みのある入力画像を、理想的なピンホールカメラで撮像されるような歪みのない画像へと歪み補正するためのパラメータを以下の示す方法で算出する。
ピンホールカメラで撮像した画像から算出される理想的な第一特徴点座標を理想座標(xpin,ypin)とし、当該理想座標を歪ませた(歪み逆補正を行った)座標を歪み座標(xdis,ydis)とすると、
と表わされる。
なお、式(1)(2)において、係数x、yは、
である。ここで、位置(cx、cy)は、撮像装置200a、200bの光軸と、撮像装置200a、200bの撮像素子(CCDまたはCMOSなど)との交点を表わす主点位置を表す。また、rは、主点位置(cx、cy)から理想座標(xpin,ypin)までの画像上の距離を示し、係数x、yと距離rとは、
の関係を満たす。
また、kiは、放射歪曲の歪みを表す歪み係数であり、放射歪曲の歪みを2n次多項式で近似したときの係数である。
なお、式(1)(2)は、放射歪曲のみを考慮した歪み座標(xdis,ydis)を表しているが、偏心歪曲も考慮すると、歪み座標(xdis,ydis)は、
と表わすことができる。このとき、piは、偏心歪曲の歪みを表す歪み係数であり、偏心歪曲の歪みを2n次多項式で近似したときの係数である。
また、式(1)(2)(6)(7)は、レンズに起因する歪みを考慮した式であるが、更に撮像素子の歪みも考慮することによって、より好適な歪み補正が可能となる。
次に、S103_1における理想座標の設定方法について述べる。図5は、正方形501を、ピンホールカメラによって撮像して画像401を得る様子を示す。図5において、z=f(fはピンホールカメラの焦点距離)で表される位置に、ピンホールカメラの撮像素子が配置されている。Q0(X0,Y0,Z0)、Q1(X1,Y1,Z1)、Q2(X2,Y2,Z2)、Q3(X3,Y3,Z3)は、正方形501の4つの頂点の3次元座標である。また、P0(x0,y0,f)、P1(x1,y1,f)、P2(x2,y2,f)、P3(x3,y3,f)は、それぞれ、正方形501の各頂点の位置Q0、Q1、Q2、Q3に対応する画像401上の位置(正方形501の各頂点の撮像素子上の投影位置)を示す3次元座標であり、P0、P1、P2、P3の各々のx座標およびy座標は、P0、P1、P2、P3の各々の画像401上の座標となる。
図5に示す正方形501が、図2に示す校正器201の1つの正方形に対応するとすれば、校正器201の各正方形の頂点(第一特徴点に対応)の位置を示す3次元座標(Xpin,Ypin,Zpin)は、Q0、Q1、Q3の3次元座標と、整数である係数u、vとを用いて、
と表わされる。
また、式(8)(9)(10)で表わされる正方形の頂点(第一特徴点に対応)の3次元座標(Xpin,Ypin,Zpin)に対応する画像401上の座標、すなわち、理想座標(xpin,ypin)は、P0、P1、P3の画像上401上の座標と、係数u、vと、下記式(11)(12)で表わされる係数s、tとを用いて、
と表わされる。
そして、内部パラメータ算出処理のS103_1において、内部パラメータ算出部303は、式(13)(14)で表わされる理想座標(xpin,ypin)を、式(1)(2)(6)(7)を用いて歪ませた(歪み逆補正した)歪み座標(xdis,ydis)と、撮像装置200a、200bによって実際に撮像された入力画像から算出された第一特徴点座標との差を最小化するように、歪み係数、および、主点位置(cx,cy)を算出する。上記差を最小化するパラメータは、例えば、ニュートン法などの既知の最適化アルゴリズムを用いて算出することができる。これによって、上述した歪み補正に必要なパラメータを算出することができる。
なお、理想座標(xpin,ypin)は、式(13)(14)で表わされることから、校正器201は、図2に示すような正方形が交互に配置された模様を有している必要はなく、その形状が既知であれば、例えば、ひし形や長方形などの任意の形状が配置された模様であってもよい。また、内部パラメータを算出するためには、校正器201の特徴点間の距離は未知であってもよいが、外部パラメータを算出するためには、特徴点間の距離は既知である必要がある。そのため、外部パラメータを算出する際に、校正器201を使用する場合、校正器201の特徴点間の距離は既知である必要がある。
また、上述した方法で歪み座標(xdis,ydis)および主点位置(cx,cy)を算出する場合、画像402の歪みが大きいならば、歪みの中心、すなわち主点位置(cx,cy)を精度良く算出することができる。しかしながら、画像402の歪みが小さい場合、算出された主点位置(cx,cy)が実際の主点位置からずれていたとしても、精度良く歪みを補正することができるため、算出した主点位置(cx,cy)と実際の主点位置とがずれている可能性がある。そこで、主点位置(cx,cy)については、内部パラメータ算出部303が、後述する焦点距離算出時に再算出すると好適である。
また、校正器201を撮像した入力画像の全体に特徴点が均等に分布している方が、最適化の際に入力画像の各位置における重みが均等になるため好適である。そのために、撮像装置200a、200bが校正器201を撮像する際、光軸と校正器201とが略垂直になり、画面全体に特徴点が撮像されるように撮像装置200a、200b等を設定することが望ましい。
(S103_3;焦点距離fの算出方法)
次に、内部パラメータ算出処理のS103_3(図1B参照)における焦点距離fの算出方法を具体的に説明する。
図6は、正方形をピンホールカメラで撮像した画像601上における当該正方形の各頂点の座標P60(x60,y60)、P61(x61,y61)、P62(x62,y62)、P63(x63,y63)と、主点位置(cx,cy)とを示している。
図7は、図6に示す画像601およびP60、P61、P62、P63を、主点位置(cx,cy)を原点とするように平行移動した画像701および座標P70、P71、P72、P73を示している。P70の座標(x70,y70)は、
と表わされる。他の座標P71(x71,y71)、P72(x72,y72)、P73(x73,y73)も、座標P70と同様に、座標P61(x61,y61)、P62(x62,y62)、P63(x63,y63)を平行移動した座標で表される。
また、焦点距離fは、P70、P71、P73の座標と、下記式(17)(18)で表わされる係数s7、t7とを用いて、下記式(19)から算出することが出来る。
ここで、撮像装置200a、200bが校正器201に対して略垂直な状態で校正器201を撮像した場合、式(17)(18)のs7およびt7が共に小さな値となり、式(19)の分母も小さな値となるので、s7やt7の誤差が焦点距離fの算出結果に与える影響が大きくなる。すなわち、式(19)による焦点距離fの算出精度が低下する。
これを図面を用いて説明すると、図8は、焦点距離がf1である撮像装置801および焦点距離がf2である撮像装置802で同じ校正器201をそれぞれ撮像した場合を示す図である。ここで、撮像装置801および撮像装置802は、どちらも、校正器201に対して略垂直な状態で校正器201を撮像する。撮像装置801から校正器201までの距離はZ1、撮像装置802から校正器201までの距離はZ2である。図8において、f2=2×f1、Z2=2×Z1である場合、撮像装置801で撮像された画像402上の校正器201と撮像装置802で撮像された画像402上の校正器201とは区別が付け難くなる。したがって、焦点距離fの算出に用いる入力画像は、校正器201に対して光軸を傾けて撮像した画像が焦点距離fの算出精度が高くなり好適である。
図9は、撮像装置が、校正器201に対して光軸を傾けた状態で、校正器201を撮像した画像を示す図である。内部パラメータ算出部303は、撮像装置が撮像した画像402の中の任意の正方形を選択し、その正方形が有する4つの頂点P70、P71、P72、P73の座標を算出する。そして、式(17)(18)(19)を用いて、P70、P71、P72、P73の座標から焦点距離fを算出する。ここで、前述したように、式(17)(18)のs7の絶対値とt7の絶対値との差が小さい場合、式(19)の分母の誤差も小さくなり、式(19)に基づく焦点距離fの算出精度が低下する。そのため、内部パラメータ算出部303は、s7の絶対値とt7の絶対値との差が大きくなるように、前記正方形を適切に選択することが望ましい。また、内部パラメータ算出部303は、複数の画像を用いて、焦点距離fを算出することによって、焦点距離fの算出精度をさらに向上させることができる。
(S103_3;主点位置(cx,cy)の再計算方法)
ここでは、内部パラメータ算出処理のS103_3(図1B参照)における主点位置(cx,cy)の再計算方法を具体的に説明する。前述のように、主点位置(cx,cy)は、S103_1で既に算出されているが、撮像装置200a、200bが撮像した画像402(図4の(b)参照)の歪みが小さい場合、S103_1で算出された主点位置(cx、cy)は、実際の主点位置からずれている可能性がある。式(15)(16)に示すように、正方形の各頂点の座標P70、P71、P72、P73は、主点位置(cx,cy)を中心とした座標で表されるため、主点位置(cx,cy)を示す座標が実際の主点位置とずれていた場合、座標P70、P71、P72、P73に基づいて算出される焦点距離fも、実際の焦点距離とずれる可能性がある。そこで、S103_3において、焦点距離fを算出する際に、内部パラメータ算出部303が改めて主点位置(cx,cy)を算出することにより、焦点距離fおよび主点位置(cx,cy)の算出精度を向上させることができる。
式(19)から算出される焦点距離fは、主点位置(cx,cy)と、校正器201の格子の各頂点の座標P70、P71、P72、P73とが正しければ、選択された正方形に依らず同じ値になる。そこで、内部パラメータ算出部303は、異なる複数の正方形を選択し、それぞれの正方形の各頂点の位置を示す座標に基づいて焦点距離fi(i=1,2,・・・)をそれぞれ算出し、焦点距離fiが正方形に依らず同じ値となるように主点位置(cx,cy)を算出し、算出した主点位置(cx,cy)に基づいて、焦点距離fを算出する。主点位置(cx,cy)の最適化は、ニュートン法などの既知の最適化アルゴリズムを用いて行うことができる。例えば、各正方形の頂点座標から算出した焦点距離fiの平均値faveと、主点位置(cx,cy)の評価値Efとをそれぞれ、
とし、内部パラメータ算出部303は、評価値Efが最小となる主点位置(cx,cy)を算出すればよい。また、内部パラメータ算出部303は、評価値Efが最小となるときの平均値faveを焦点距離fとすればよい。
上述の方法によれば、内部パラメータ算出部303による主点位置(cx,cy)の算出精度が向上するとともに、焦点距離fの算出精度も向上する。その理由は以下のとおりである。
まず、理想的なピンホールカメラでは、主点位置(cx,cy)が正しければ、選択した正方形によらず、算出される焦点距離fは同じ値になる。ただし、実際には、特徴点抽出部302が抽出した頂点の座標には誤差が含まれることがあるため、内部パラメータ算出部303は、焦点距離fの正しい値を算出することができるとは限らない。1つの正方形の各頂点(第一特徴点)の座標から焦点距離fを算出した場合、第一特徴点の座標の計算誤差が、焦点距離fの計算誤差に反映される。
一方、上記構成によれば、複数の正方形について、第一特徴点の座標をそれぞれ算出し、その座標の算出結果ごとに焦点距離fiを算出して、複数の焦点距離fi(i=1,2,・・・)の平均値faveを焦点距離fとして算出する。これにより、第一特徴点の座標の算出結果に含まれる誤差が焦点距離fの算出結果に与える影響を低減することができる。すなわち、焦点距離fの算出精度が向上する。
また、内部パラメータ算出部303は、前述した歪み係数の算出結果に基づいて、画像402上から正方形を選択する位置を制限してもよい。これにより、焦点距離fの算出精度をさらに向上させることができる。前述したように、歪み係数は、歪み座標(xdis,ydis)と、実際の第一特徴点座標との差を評価することによって算出されるため、内部パラメータ算出部303は、当該差を指標として、各第一特徴点座標について歪み補正の精度を知ることができる。そして、内部パラメータ算出部303は、歪み補正の精度が不十分である第一特徴点周辺の第一特徴点の位置を、前記正方形の選択範囲から除外することにより、歪み補正精度の高い第一特徴点のみを含む正方形から焦点位置を算出することができる。特に、式(19)は、ピンホールカメラモデルを想定した式であるから、歪み補正の精度が高い第一特徴点、すなわち、ピンホールカメラモデルを適用可能な第一特徴点のみを用いて、焦点距離を算出することは好適である。
また、内部パラメータ算出部303は、複数の焦点距離fi(i=1,2,・・・)の平均値faveを焦点距離fとして算出する場合、複数の焦点距離fi(i=1,2,・・・)のうちの最大値と最小値とを除外して、平均値faveを計算してもよい。これにより、焦点距離fの算出精度をさらに向上させることができる。誤差の大きな頂点座標を含む正方形から算出された焦点距離は、実際の焦点距離からのずれが大きい可能性が高い。そのため、内部パラメータ算出部303は、最大値と最小値を除外した複数の焦点距離fi(i=1,2,・・・)を用いて、平均値faveを計算することによって、誤差の大きな頂点座標を含む正方形を除外して焦点距離を算出できる可能性が高く、焦点距離fの算出精度を向上させることができる。
また、内部パラメータ算出部303は、校正器201を撮像した複数の画像を用いて、焦点距離fを算出することによって、焦点距離fの算出精度をさらに向上させることができる。図10は、図9と同様に校正器201に対して光軸を傾けた状態で、図9とは異なる方向から、校正器201を撮像した画像を示す。内部パラメータ算出部303は、図9の画像402と、図10の画像402との各々を用いて、前述したように焦点距離fi(i=1,2,・・・)を算出し、算出した焦点距離fi(i=1,2,・・・)を平均することによって、精度の高い焦点距離fを算出することができる。このように、異なる方向から校正器を撮像した複数の画像を用いることで、各正方形の頂点座標から算出した焦点距離に含まれる誤差が平均化され精度を向上させることができる。
なお、本実施形態では、正方形でその模様が構成されている校正器201を用いて、焦点距離fを算出する方法を説明したが、正方形以外でその模様が構成されている校正器201を使用してもよい。
例えば、縦横比がN:1(Nは自然数)の長方形から焦点距離fを算出する場合、図7に示す線分P70−P71に対応する辺の長さと、線分P71−P72に対応する辺の長さとの比をN:1とすると、内部パラメータ算出部303は、焦点距離fを、
として算出することができる。
以上のように、内部パラメータ算出部303は、校正器201を撮像した入力画像から第一特徴点座標を算出し、算出した第一特徴点座標に基づいて、歪み係数kiと主点位置(cx,cy)とを算出する(S103_1)。そして、画像補正部304は、内部パラメータ算出部303が算出した歪み係数kiおよび主点位置(cx,cy)を用いて、入力画像を歪み補正して焦点距離算出用画像とする(S103_2)。そして、内部パラメータ算出部303は、画像補正部304が補正した焦点距離算出用画像から複数の正方形を選択し、選択した正方形の頂点座標に基づいて、焦点距離fを算出するとともに、主点位置(cx,cy)を再計算する(S103_3)。
(S105;外部パラメータの算出方法)
ここでは、カメラパラメータ算出処理のS105(図1A参照)における外部パラメータの算出方法を具体的に説明する。外部パラメータとは、ステレオカメラシステム1が備える複数の撮像装置200a、200bの位置関係を表すパラメータである。
外部パラメータ算出部305は、長さが既知である被写体(例えば、校正器201の任意の正方形)をステレオカメラ(撮像装置200aおよび撮像装置200bの組)で撮像した2枚の入力画像(ステレオ画像)に基づいて、被写体の長さを計測する(ステレオ計測)。そして、外部パラメータ算出部305は、被写体の長さの計測結果と、被写体の実際の長さとを比較することによって、撮像装置200aと撮像装置200bとの位置関係を表す外部パラメータを算出する。ここで、外部パラメータ算出部305は、外部パラメータを算出するために用いるステレオ画像として、カメラパラメータ算出処理のS103において、画像補正部304が歪み補正した入力画像(焦点距離算出用画像)を用いる。
図11は、ステレオカメラシステムを構成する撮像装置200aおよび撮像装置200bで被写体を撮像する場合における被写体と画像402a、402bの結像位置との位置関係の一例を示す図である。図11は、左側に配置された撮像装置200aと、右側に配置された撮像装置200bとを上(y方向)から見た図である。撮像装置200aのx方向の基線長tx(外部パラメータ)は、ゼロでない。また、y方向の基線長ty(外部パラメータ)とz方向のずれtzとはともにゼロである。ここで、本明細書において、「特定の方向における基線長」は、撮像装置200aと撮像装置200bとの間の最短距離の特定の方向における成分を意味する。例えば、x方向の基線長txは、撮像装置200aと撮像装置200bとを結ぶ線分のx方向の長さであり、y方向の基線長tyは、撮像装置200aと撮像装置200bとを結ぶ線分のy方向の長さである。2つの撮像装置200a、200bの焦点距離はともにfであり、主点位置はともに撮像装置200a、200bの中心であるとする。
図11において、外部パラメータ算出部305は、被写体上のある点P1103の3次元座標(X1101,Y1101,Z1101)を、ステレオ画像(画像402a、402b)から以下の式に基づいて算出する。ここで、撮像装置200a、200bで撮像した画像402a、402bにおける被写体上の点P1103に対応する特徴点(第二特徴点)p1103a、p1103bのx座標をそれぞれ、dx1、dx2とする。また、撮像装置200a、200bの焦点距離をfとする。撮像装置200a、200b間のx方向の基線長をtxとする。画像402a、402bにおける被写体上の点P1103に対応する特徴点(第二特徴点)p1103a、p1103bのy座標をdy1(図示せず)とする。画像402aと画像402bとの間におけるx方向の視差をdx=dx2−dx1とする。
ここで、本明細書において、「視差」は、異なる撮像装置200a、200bによって撮像したステレオ画像402a、402b間における同一の特徴点の位置座標の差分を意味する。また、「特定の方向における視差」は、視差の特定の方向の成分を意味する。例えば、画像402aと画像402bとを同じスケールにした場合、x方向の視差(第1の視差)dxは、画像402aにおける特徴点p1103aの位置座標と、画像402bにおける特徴点p1103bの位置座標とを結ぶベクトルのx成分を意味する。また、y方向の視差(第2の視差)dyは、同じベクトルのy成分を意味する。
式(23)(24)(25)において、未知数はx方向の基線長txのみであるので、外部パラメータ算出部305は、基線長txを決定した場合、P1103の3次元座標(X1101,Y1101,Z1101)を算出することができる。外部パラメータ算出部305は、未知数であるx方向(第1方向)の基線長txを決定するため、被写体上の2つの点P1103、Q1103に対応する画像402a、402b上の2点の特徴点(第二特徴点)を抽出し、式(23)(24)(25)を用いて、2つの第二特徴点に対応する点P1103、Q1103の3次元座標をそれぞれ算出し、算出した点P1103、Q1103の3次元座標から計測した被写体上の距離と、実際の距離との誤差(第1の計測誤差)を算出する(第1評価ステップ)。そして、当該誤差がゼロまたは最小になる基線長txを算出する(校正ステップ)。例えば、図11において、点P1103と点Q1103との間の距離Dstereoは、
で表される。一方、上記2つの点P−Q間の実際の距離をDrealとすると、距離Dstereoと距離Drealとの差ΔD(第1の計測誤差)は、下記の(27)または(28)によって表される。
ここで、被写体を撮像するステレオカメラは、ピンホールカメラのモデルを適用することができる(すなわち、内部パラメータ算出部303は内部パラメータを正確に算出することができ、画像補正部304によって補正された入力画像は、完全に歪み補正されているものとする)から、外部パラメータである基線長txが正しい場合、ステレオカメラを用いて撮像された画像402a、402bに基づいて計測される被写体上の点P1103、Q1103間の距離Dstereoと、被写体上の点P1103、Q1103間の実際のDrealとが等しくなる。したがって、式(27)または式(28)において、差ΔDがゼロとなるときの基線長txが、最適な外部パラメータである。ただし、入力画像から第二特徴点座標を算出するときに誤差が含まれる場合があるため、差ΔDがゼロにならない可能性がある。この場合、外部パラメータ算出部305は、差ΔDを最小化するtxを外部パラメータとして決定する(校正ステップ)。
以上、図11を例に挙げて、外部パラメータの算出方法を説明した。式(23)(24)(25)は、図11に示す構成のステレオカメラで撮像された場合に適用可能である。一方、例えば、撮像装置200a、200b間に光軸のずれがある場合、式(23)(24)(25)に基づいて特定の特徴点に対応する被写体上の点の3次元座標の算出を行うと、誤った3次元座標が算出される。この場合、差ΔDが最小になるtxは、求めるべき正しい外部パラメータの値ではない。
そこで、上記の場合、外部パラメータ算出部305は、ステレオカメラが撮像した入力画像を、式(23)(24)(25)を適用可能な画像に変換する。この画像変換をレクティフィケーション(詳細を後述)と呼ぶ。そして、外部パラメータ算出部305は、レクティフィケーション後の画像402a、402bにおける2つの第二特徴点に対応する被写体上の2点間の距離Dstereoを算出し、算出結果である距離Dstereoと実際の被写体における2点間の距離Drealとを比較し、両者の差ΔDを最小化するように、外部パラメータを算出する。
ここで、レクティフィケーションに必要な外部パラメータは未知数であるので、外部パラメータ算出部305は、ニュートン法などの既知の最適化アルゴリズムを用いた方法により、レクティフィケーション後の入力画像を用いて計測した被写体上の2点間の距離と、実際の当該2点間の距離との差ΔDを最小化するように外部パラメータを最適化する。ただし、上述のように、特定の2点間の距離のみに基づいて最適化を行った場合、ある外部パラメータの誤りを、他の外部パラメータを修正すること補償して、上記差ΔDが最小化してしまうケースがあり、誤った外部パラメータが算出される可能性がある。その誤った外部パラメータを適用して、別の2点間の距離を計測した場合、実際の2点間の距離との差が大きくなる。従って、外部パラメータ算出部305は、正しい外部パラメータを算出するために、被写体上の任意の2点間の計測距離と実際の距離との差を最小化する外部パラメータを算出すればよい。内部パラメータおよび外部パラメータが共に正しい場合、画像上のどの2点から計測される被写体上の距離も、実際の距離に等しくなる。そこで、外部パラメータ算出部305は、複数の組の第二特徴点に関して、画像に基づいて計測される被写体上の2点間の距離Dstereoと実際の距離Drealとの差を算出し、当該差を最小化するように、外部パラメータを算出することが好適である。
外部パラメータの算出に用いる入力画像は、例えば、図9や図10に示すように、校正器201に対して光軸を傾けて校正器201を撮像した画像であってよい。これらの画像は、3次元空間において様々な方向に第二特徴点に対応する点を分布させることができ、また、条件の異なる複数の第二特徴点の組み合わせを選択することができるので、外部パラメータの算出に用いる画像として好適である。また、撮像装置200a、200bから校正器201までの距離を変えて校正器201を撮像した複数の画像からは、距離(z座標)の条件が異なる複数の第二特徴点の組み合わせを選択することができる。そのため、そのような画像も、外部パラメータの算出に用いる画像として好適である。なお、レクティフィケーションは、画像から算出した第二特徴点座標に対してのみ適用すればよい。上述の構成では、外部パラメータ算出部305は、画像に含まれる第二特徴点の座標に基づいて外部パラメータを算出するために、画像全体をレクティフィケーションする必要はなく、第二特徴点座標に対してのみ適用することで処理量を低減できる。
(レクティフィケーション)
ここでは、レクティフィケーションの方法を具体的に説明する。
図12(A)は、ステレオカメラシステムを構成する1台の撮像装置200aに対し、他方の撮像装置200bの光軸が傾いており、またz方向における位置がずれている状態を示す図である。ここで、撮像装置200aの焦点距離はf1、撮像装置200bの焦点距離はf2である。また、x方向の基線長はtxであり、y方向の基線長はty(図示せず)である。撮像装置200aと撮像装置200bとのz方向のずれはtzである。図12(A)に示すように、撮像装置200bの光軸は、撮像装置200aの光軸に対して、y軸を中心する角度が−θy、x軸を中心とする角度が−θx(図示せず)だけ傾いている。また、図12(B)は、図12(A)に示す状態にあるステレオカメラシステムにおいて、撮像装置200a、200bが撮像する画像402a、402aを示す図である。図12(B)には、撮像装置200aの主点位置(cx1,cy1)および撮像装置200bの主点位置(cx2,cy2)が示されている。図12(B)に示すように、撮像装置200aの光軸に対して、撮像装置200bの光軸は、z軸を中心に−θzだけ傾いている。
以下、図12(A)(B)において、外部パラメータ算出部305が、撮像装置200bが撮像した画像402bを、撮像装置200aが撮像した画像402aを基準にレクティフィケーションする場合を説明する。
図13(A)は、被写体上の点P13(X1301,Y1301,Z1301)と、撮像装置200bが撮像する画像402b上における対応する特徴点p13との位置関係を示す図である。また、図13(B)は、図13(A)に示す撮像装置200bが撮像した画像402bを示す図である。図13(B)において、特徴点p13(x1301,y1301)は、図13(A)に示す画像402b上の特徴点を示している。特徴点p13は、図13(A)に示す被写体上の点P13(X1301,Y1301,Z1301)に対応する。
レクティフィケーションでは、まず、外部パラメータ算出部305は、撮像装置200aの焦点距離f1と、撮像装置200bの焦点距離f2との差を補正する。補正後の点p13の位置を示す座標(x1302,y1302)は、
と表わされる。次に、撮像装置200aおよび撮像装置200bの光軸の方向を揃えるために、外部パラメータ算出部305は、x軸周りにθx、y軸周りにθy、z軸周りにθz、点p13の位置を回転する。回転後の点p13の位置を示す座標(x1303,y1303)は、
と表わされる。ここで、式(31)(32)において、r1からr9は、
である。次に、外部パラメータ算出部305は、撮像装置200aと、撮像装置200bとの間における主点位置のずれを補正する。補正後の点p13の位置を示す座標(x1304,y1304)は、
となる。以上のように、外部パラメータ算出部305は、式(29)から式(35)までの変換により、レクティフィケーションされた点p13の位置を示す座標(x1304,y1304)を算出することができ、さらに式(23)(24)(25)を用いて、対応する被写体上の点P13の3次元座標を算出することができる。ただし、式(23)(24)(25)は、z方向のずれtzがゼロの場合に成立する。
続いて、z方向のずれtzがゼロではない場合について説明する。図14は、ステレオカメラシステム1を構成する1台の撮像装置200bの位置(z方向における位置)が基線(x軸)からずれている状態を示す図である。すなわち、図14は、ずれtzがゼロでない場合のステレオカメラシステムを示す。図14に示すように、画像402a上の特徴点p1403aのx座標がdx1であり、画像402b上の特徴点p1403bのx座標がdx2であり、x方向の視差がdx=dx1−dx2であるとき、特徴点p1403a、p1403bに対応する被写体上の点P1403の3次元座標(X1401,Y1401,Z1401)は、
と表される。
ここで、上述した方法と同じように、外部パラメータ算出部305は、基準とする撮像装置200aで撮像した画像402a上における第二特徴点の位置を示す座標と、撮像装置200bで撮像した画像上における同じ第二特徴点の座標をレクティフィケーションした座標とから、被写体上の点の3次元座標を算出する。そして、外部パラメータ算出部305は、算出した3次元座標から計測した被写体上の2点間の距離Dstereoと、当該2点間の実際の距離Dreal(既知)との差を最小化する外部パラメータを算出する。このとき、外部パラメータ算出部305は、複数の組の第二特徴点から計測される各距離Dstereoと実際の距離Drealとの差をそれぞれ算出し、これらの差が最小になるように外部パラメータを算出することによって、精度の高い外部パラメータを算出することができる。
以上、外部パラメータの算出方法について説明したが、式(23)(24)(25)、(36)(37)(38)に示すように、3次元座標を算出する式には、y方向の基線長tyが含まれない。しかしながら、tx、ty、tz、θx、θy、θzは互いに影響するため、外部パラメータを正しく算出するためには、tyも含めて最適化する必要がある。
そこで、外部パラメータ算出部305は、x方向の視差(第1の視差)に基づく評価値(計測誤差)だけでなく、y方向の視差(第2の視差)に基づく評価値も最小化するように、外部パラメータを算出する。具体的には、図11において、y方向の視差がdyであるとき、特徴点(dx1、dy1)に対応する被写体上の3次元座標(X1102,Y1102,Z1102)は、
と表される。外部パラメータ算出部305は、視差dxを用いて被写体上の2点の3次元座標を算出し、当該2点間の距離を計測して、実際の距離との差(第1の評価値)を算出する(第1評価ステップ)と共に、式(39)(40)(41)および視差dyを用いて被写体上の2点の3次元座標を算出し、当該2点間の距離を計測して、実際の距離との差(第2の評価値)を算出し(第2評価ステップ)、それぞれの評価値を最小化するように外部パラメータを算出する(校正ステップ)ことにより、すべての外部パラメータを最適化することができる。
ここで、x方向の視差dxを用いて計測した被写体上の2点間の距離をDstereo_x、y方向の視差dyを用いて計測した被写体上の2点間の距離をDstereo_yとすれば、実際の距離Drealとの差ΔDは、下記式(42)または(43)のように表される。外部パラメータ算出部305は、この差ΔDを最小化するように外部パラメータを算出すればよい。差ΔDを最小化する外部パラメータの算出には、例えば、ニュートン法のような既知の最適化アルゴリズムを用いることができる。
以上のように、本実施形態の構成によれば、x方向の視差(第1の視差)dxおよびy方向の視差(第2の視差)dyを考慮して算出した被写体(例えば、校正器201)上の2点間の距離と、実際の距離との差を評価することで、すべての外部パラメータを最適化することができる。これにより、より精度よく外部パラメータを算出することができる。
(変形例1)
なお、一変形例では、外部パラメータ算出部305は、前述した歪み係数kiの算出結果に基づいて、画像中から選択する第二特徴点の位置を限定してもよい。これにより、外部パラメータの算出精度をさらに向上させることができる。前述のように、歪み係数算出時、内部パラメータ算出部303は、理想座標を歪ませた歪み座標(xdis,ydis)と、実際の特徴点の座標との差を評価している。したがって、各特徴点の座標についての歪み補正の精度が既知であり、外部パラメータ算出部305は、歪み補正の精度が不十分である特徴点、およびその特徴点の周辺の特徴点を含む領域を除いた領域(特定画像領域)から、特徴点を抽出する(画像領域抽出ステップ)。これにより、歪み補正精度の高い特徴点のみを用いて外部パラメータの最適化を行うことができるので、外部パラメータを高精度に算出することができる。上述した外部パラメータの最適化のために用いる式は、ピンホールカメラモデルを想定した式であるから、歪み補正の精度が高くなる第二特徴点、すなわち、ピンホールカメラモデルを適用可能な第二特徴点のみを用いて、被写体上の2点間の距離を計測し、実際の距離と比較することができ好適である。また、計測した被写体上の2点間の距離と、実際の距離との差が大きい第二特徴点の組み合わせを評価対象から除外することによって、外部パラメータの精度をさらに向上させることができる。
(変形例2)
本実施形態では、内部パラメータと外部パラメータを独立に算出する方法で説明した。しかし、x方向の視差dxとy方向の視差dyを考慮してカメラパラメータを算出する方法は、内部パラメータと外部パラメータとを同時に算出する方法にも適用可能である。内部パラメータと外部パラメータとを同時に算出する場合におけるカメラパラメータ算出方法の一例を以下で説明する。
図15は、本変形例に係るカメラパラメータ算出方法のフローチャートである。図15に示すカメラパラメータ算出方法では、まず、画像取得部301は、ステレオカメラ(撮像装置200aおよび200b)によって、各特徴点の相対的な位置関係が既知の校正器201を撮像した画像(入力画像)を取得する(S1501)。次に、特徴点抽出部302は、校正器201が撮像された入力画像から、特徴点の座標を抽出する(S1502)。
次に、内部パラメータ算出部303および外部パラメータ算出部305は、算出された特徴点の座標に基づいて、x方向の視差(第1の視差)およびy方向の視差(第2の視差)を算出する。そして、内部パラメータ算出部303および外部パラメータ算出部305は、x方向の視差を用いて計測した校正器201上の2点間の距離と、当該2点間の実際の距離との差、および、y方向の視差を用いて計測した校正器201上の2点間の距離と、当該2点間の実際の距離との差をともに最小化することによって、内部パラメータと外部パラメータとを同時に最適化する(S1503)。ただし、内部パラメータおよび外部パラメータをより正確に算出する場合、前述のように、内部パラメータと外部パラメータとを独立に算出するべきである。これにより、内部パラメータと外部パラメータとの間の相互の影響を低減することができるからである。
以上説明したように、ステレオ計測による計測距離と実際の距離との差を最小化するカメラ校正方法では、x方向の視差とy方向の視差をともに考慮してカメラパラメータを最適化することによって、すべてのカメラパラメータを精度よく算出することができる。また、内部パラメータと外部パラメータとを独立に算出することで、内部パラメータに起因する誤差と外部パラメータに起因する誤差とが相互に影響することを防止しつつ、それぞれのパラメータを精度よく算出することができる。また、歪み補正の結果に基づいて、ピンホールカメラモデルを適用可能な特徴点のみを用いてカメラパラメータを算出することによって、カメラパラメータの算出精度を向上させることができる。
〔第2の実施形態〕
本発明の他の実施形態について、図16、17、18を参照して説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
前記実施形態1に係るステレオカメラシステム1(図3参照)において、2台の撮像装置200a、200b間のy方向の基線長tyが小さい場合、y方向の視差dyがゼロに近い値となる。そのため、基線長tyおよび視差dyが小さい場合において、視差dyに誤差が含まれる場合、前記実施形態1で説明した式(39)で算出される特徴点Qのz座標Z1102の値に大きく影響する。
式(39)において、基線長tyおよび視差dyが小さい場合、例えば、tz=0、f=5000、dy=1、ty=1、dy=1である場合、Z1102=5000となる。この場合、dyに1を加算して、dy=2とした場合、Z1102=2500となり、Z1102の値が大きく変化する。一方、基線長tyおよび視差dyが大きい場合、例えば、ty=100、dy=100の場合、Z1102=5000となる。この場合、dyに1を加算して、dy=101とした場合、Z1102≒4950となり、Z1102の値はあまり変化しない。
そこで、本実施形態では、基線長tyおよび視差dyが小さい場合、外部パラメータ算出部305は、基線長tyおよび視差dyを増大させるために、y軸をy’軸に座標変換する(座標変換ステップ)。
図16は、ステレオカメラシステム1を構成する一つの撮像装置200aで撮像した画像402aにおいて基準とする点p16と、他の撮像装置200bで撮像した画像402bにおける対応する点q16とを示す。dxおよびdyは、点p16と点q16との間のx方向、y方向それぞれにおける視差である。図16に示すように、基線長tyが小さい場合、外部パラメータ算出部305は、座標変換後の点p16、q16の座標を算出することによって、座標変換後の視差を拡大する。
図17は、図16に示すxy座標系内の画像402a、402bを、xy平面内で45度回転したx’y’座標系内の画像402a’、402b’に座標変換した図である。図16に示す点p16および点q16の位置を示す座標は、座標変換によって、それぞれ、点p17(x1701,y1701)と点q17(x1702,y1702)に変化する。回転角度をθとすると、
となる。
図17に示すように、座標変換後のy’方向の視差dy’(第2の視差)は、図16に示す視差dyに比べて十分大きくなる。式(39)(40)(41)に、視差dyの代わりに、視差dy’を代入することによって、特徴点に対応する被写体上の3次元座標(X1102’,Y1102’,Z1102’)を算出すると、
となる。なお、式(48)(49)(50)において、dx’、dy’は、それぞれx’方向、y’方向の視差を表し、dx1’、dy1’はそれぞれ、x’y’座標系における特徴点のx座標、y座標を表し、ty’はy’方向の基線長を表す。
図18(A)は、ステレオカメラシステム1を構成する1台の撮像装置200bのy方向における位置がずれており(ty≠0)、2台の撮像装置200a、200bの間にy方向の視差が存在する状態を示す図である。txはx方向の基線長を表し、tyはy方向の基線長を表す。
図18(B)は、図18(A)に示すxy座標系をxy平面内で45度回転した後のx’y’座標系における2台の撮像装置200a、200b間の基線長tx’、ty’を示している。図17および図18(B)に示すように、座標変換(xy軸の回転)によって、x方向がx’方向に、y方向がy’方向にそれぞれ回転するとともに、基線長tx、tyも視差dx’、dy’も同じように変化するため、座標変換後の基線長tx’、ty’は、座標変換前の基線長tx、tyから計算することができる。
外部パラメータ算出部305は、座標変換後に、特徴点に対応する被写体上の3次元座標を算出する。これにより、視差dy’が視差dyに比べて十分に大きくなるので、視差dy’に含まれる誤差が、被写体上の3次元座標の算出結果におけるz座標に与える影響が小さくなり、より高い信頼度で、特徴点に対応する被写体上の3次元座標を算出することができる。したがって、x’方向、y’方向ともに、精度の高い外部パラメータを算出することができる。
なお、座標の回転角度は、45度でなくてもよく、基線長tx、tyに基づいて、最適な角度に設定すればよい。例えば、回転角度θを、
とすると、座標変換後のx’方向の視差dx’とy’方向の視差dy’とが同程度の大きさとなり好適である。なお、式(51)のmax(|tx|,|ty|)は、基線長txの絶対値と基線長tyの絶対値とのうち、大きい方を意味する。また、式(51)のmin(|tx|,|ty|)は、基線長txおよび基線長tyのうち、小さい方を意味する。
また、図17に示す例では、y方向の基線長tyは、座標変換によって長くなる一方、x方向の基線長txは、座標変換によって短くなる。そのため、座標変換後のx´方向の視差dx’の誤差が被写体上の3次元座標の算出結果に与える影響は、座標変換前よりも大きくなる。そこで、外部パラメータ算出部305は、基線長txの長いx方向に関して座標変換せずに、被写体上の3次元座標を算出してもよい。これにより、x方向の視差dxの誤差が被写体上の点のx座標に与える影響が座標変換によって大きくなることを防止しつつ、y方向の視差dyの誤差が被写体上の点のy座標に与える影響を、座標変換によって小さくすることができ好適である。
以上説明したように、本実施形態では、y方向の基線長tyが短い場合、外部パラメータ算出部305は、短い基線長tyが長くなり、かつ視差dyが拡大するように、座標変換を行う。そして、座標変換後に、画像に基づいて計測される被写体上の距離Dstereoと、実際の距離Drealとの差ΔDを最小化する外部パラメータを算出する。これにより、視差dx、dyに誤差が含まれる場合であっても、その誤差が被写体上の3次元座標の算出結果に与える影響を低減することができる。したがって、すべての外部パラメータを精度よく算出することができる。
〔第3の実施形態〕
本発明の他の実施形態について説明する。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
前記実施形態2で説明したように、y方向の基線長tyが短く、視差dyが小さい場合、視差dyの誤差は、被写体上の3次元座標の算出結果に大きな影響を与える。
そこで、本実施形態では、基線長tyの短いy方向に関する視差dyを評価値とし、外部パラメータ算出部305は、視差dyの誤差を評価値として評価する(第2評価ステップ)。これにより、視差dyの誤差が被写体上の3次元座標の算出結果に大きな影響を与えることを抑制することができる。
式(36)を用いて、x方向の視差を用いて特徴点に対応する被写体上の点のz座標Z1401を算出し、算出したZ1401から、y方向の視差dyの推定値を算出する。視差dyは、
で表される。外部パラメータが正しい場合、式(36)、(52)から算出した視差dyの推定値と、画像から算出した視差dyとは等しい。そこで、本実施形態では、外部パラメータ算出部305は、第1の視差を用いて式(36)(37)(38)から算出した被写体上の3次元座標に基づいて計測した被写体上の2点間の距離と、被写体上の2点間の実際の距離との差(第1の評価値)、および第1の視差を用いて式(36)から算出した被写体上の3次元座標に基づいて式(52)から算出した視差dyの推定値と、画像から算出したy方向の視差dyとの差(第2の評価値)を最小化するように、外部パラメータtyを算出する。例えば、評価値Δは、定数k、x方向の視差を用いて計測した被写体上の2点間の距離の誤差Δd、およびy方向の視差dyの誤差Δdisparity_yを用いて、
で表される。ここで、定数kは、x方向の視差を用いて計測した被写体上の2点間の距離の誤差Δdの重み(大きさ)と、y方向の視差dyの誤差Δdisparity_yの重み(大きさ)との差が小さくなるよう設定すればよい。
以上説明したように、本実施形態では、x方向の基線長txが長く、y方向の基線長tyが短い場合、外部パラメータ算出部305は、x方向の視差dxに基づいて第二特徴点に対応する被写体上の点のz座標を算出し、算出したz座標から想定されるy方向の視差dyを算出する。そして、算出したy方向の視差と、レクティフィケーション後のステレオ画像上でのy方向の視差との差、および、x方向の視差に基づく計測距離と実際の距離との差を最小化するように外部パラメータを算出する。これにより、すべての外部パラメータを精度よく算出することができる。
なお、上述したカメラ校正をコンピュータで実現するようにしても良い。その場合、上述したカメラ校正を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。ここでいう「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
また、上述した実施形態におけるカメラ校正の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現しても良い。カメラ校正の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化しても良い。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現しても良い。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いても良い。
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
〔ソフトウェアによる実現例〕
ステレオカメラシステム1の制御装置300(特に外部パラメータ算出部305)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、ステレオカメラシステム1は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係るカメラ校正方法は、ステレオカメラで被写体を撮像したステレオ画像から前記ステレオカメラのカメラパラメータを算出するカメラ校正方法であって、
前記ステレオカメラの第1の方向における前記ステレオ画像間の視差である第1の視差に基づき算出される前記ステレオ画像上の2点に対応する前記被写体上の2点間の距離と、前記被写体上の2点間の実際の距離との差である第1の評価値を算出する第1評価ステップと、
前記第1の方向とは異なる第2の方向における前記ステレオ画像間の視差である第2の視差に基づく第2の評価値を算出する第2評価ステップと、
前記第1の評価値、および前記第2の評価値を最小化するように、前記カメラパラメータを算出する校正ステップと、を備える。
上記の構成によれば、ステレオカメラのカメラパラメータを算出する際に、第1の方向における視差に基づく距離の第1の評価値に加えて、(第1の方向とは異なる)第2の方向における視差に基づく第2の評価値も考慮される。そのため、単一の方向における視差に基づく評価値のみに基づいてカメラパラメータを算出するカメラ校正方法と比較して、カメラパラメータをより精度よく算出することができる。
本発明の態様2に係るカメラ校正方法は、上記態様1において、前記第2評価ステップは、前記第2の視差に基づき算出される前記画像上の2点に対応する前記被写体上の2点間の距離と、前記被写体上の2点間の実際の距離との差を、前記第2の評価値として算出してもよい。
上記の構成によれば、第1の視差に基づいて算出される2点間の距離と2点間の実際の距離との差である第1の評価値、および、第2の視差に基づいて算出される2点間の距離と2点間の実際の距離との差である第2の評価値を最小化するように、カメラパラメータが算出される。それゆえ、単一の方向における視差計測のみに基づいてカメラパラメータを算出するカメラ校正方法と比較して、カメラパラメータをより精度よく算出することができる。
本発明の態様3に係るカメラ校正方法は、上記態様1において、前記第2評価ステップは、前記第2の視差と、前記第1の視差に基づき算出される前記第2の視差の推定値との差を、前記第2の評価値として算出してもよい。
上記の構成によれば、第1の視差に基づいて算出される2点間の距離と2点間の実際の距離との差である第1の評価値、および、第2の視差と、第1の視差に基づいて算出される第2の視差の推定値との差を最小化するように、カメラパラメータが算出される。それゆえ、第2の視差が小さい場合であっても、カメラパラメータをより精度よく算出することができる。
本発明の態様4に係るカメラ校正方法は、上記態様1〜3において、前記第1の視差および前記第2の視差のうち、小さい方の視差を増大させるように座標変換する座標変換ステップを備え、前記座標変換ステップで座標変換した前記ステレオ画像からカメラパラメータを算出してもよい。
上記の構成によれば、例えば、第1の方向および第2の方向の少なくとも一方を回転することによって、第1の視差および第2の視差のうち小さい方の視差が増大する。視差に基づく距離の計測方法では、通常、視差が大きいほど、視差の揺らぎ(誤差)が距離の計測結果に与える影響が小さくなる。そのため、上記の構成によれば、カメラパラメータをより精度よく算出することができる。
本発明の態様5に係るカメラ校正方法は、上記態様1〜4において、前記カメラパラメータは、前記ステレオカメラの外部パラメータあってよい。
上記の構成によれば、外部パラメータを算出することによって、カメラシステムによる距離の計測精度を向上させることができる。
本発明の態様6に係るカメラ校正方法は、上記態様1〜5において、前記ステレオ画像から、前記ステレオカメラのレンズ歪みが少ない特定画像領域を抽出する画像領域抽出ステップを備え、前記第1の視差および前記第2の視差は、前記画像領域抽出ステップで抽出した前記特定画像領域内の視差であってよい。
上記の構成によれば、第1の視差および第2の視差は、レンズの収差に基づく歪みのない画像領域内の視差である。そのため、画像の歪みを考慮せずに、第1の視差および第2の視差に基づいて、2点間の距離およびその計測誤差を算出することができる。
本発明の各態様に係るカメラ校正方法をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
〔本発明の別の側面〕
本発明の一様態は、ステレオ画像を撮像したステレオカメラの基線長が長い方向の視差に基づく3次元座標から前記ステレオ画像内の2点間距離を算出した計測距離と、前記2点間の実際の距離との差を最小化するとともに、基線長の短い方向の視差に基づく評価値を最小化するカメラパラメータを算出することを特徴とする。
本発明の他の様態は、前記基線長が短い方向の視差に基づく評価値は、前記基線長が短い方向の視差に基づく3次元座標から前記被写体の距離を算出した計測距離と、前記既知の距離との差であることを特徴とする。
本発明の他の様態は、前記基線長が短い方向の視差が大きくなるよう座標変換し、前記基線長が長い方向の座標変換後の視差に基づく3次元座標から前記被写体の距離を算出した計測距離と、前記既知の距離との差を最小化するとともに、前記基線長が短い方向の座標変換後の視差に基づく3次元座標から前記被写体の距離を算出した計測距離と、前記既知の距離との差を最小化するカメラパラメータを算出することを特徴とする。
本発明の他の様態は、前記基線長が短い方向の視差に基づく評価値は、前記基線長が長い方向の視差に基づいて算出した3次元座標に基づいて算出される前記基線長が短い方向の視差と、前記ステレオ画像から算出した前記基線長が短い方向の視差との差であることを特徴とする。
本発明の他の様態は、内部パラメータを独立に算出し、ステレオ画像を撮像したステレオカメラの基線長が長い方向の視差に基づく3次元座標から前記ステレオ画像内の2点間距離を算出した計測距離と、前記2点間の実際の距離との差を最小化するとともに、基線長の短い方向の視差に基づく評価値を最小化する外部パラメータを算出することを特徴とする。
本発明の他の様態は、内部パラメータを独立に算出し、前記基線長が短い方向の視差に基づく評価値は、前記基線長が短い方向の視差に基づく3次元座標から前記被写体の距離を算出した計測距離と、前記既知の距離との差であることを特徴とする。
本発明の他の様態は、内部パラメータを独立に算出し、前記基線長が短い方向の視差が大きくなるよう座標変換し、前記基線長が長い方向の座標変換後の視差に基づく3次元座標から前記被写体の距離を算出した計測距離と、前記既知の距離との差を最小化するとともに、前記基線長が短い方向の座標変換後の視差に基づく3次元座標から前記被写体の距離を算出した計測距離と、前記既知の距離との差を最小化するカメラパラメータを算出することを特徴とする。
本発明の他の様態は、内部パラメータを独立に算出し、前記基線長が短い方向の視差に基づく評価値は、前記基線長が長い方向の視差に基づいて算出した3次元座標に基づいて算出される前記基線長が短い方向の視差と、前記ステレオ画像から算出した前記基線長が短い方向の視差との差であることを特徴とする。
本発明の他の様態は、内部パラメータを独立に算出し、前記内部パラメータ算出時の歪み補正結果に基づき特徴点選択領域を限定し、前記特徴点選択領域内から選択した特徴点座標に基づいて他のパラメータを算出することを特徴とする。