【実施例1】
【0017】
図1から
図4を用いて本発明の実施例1に係る画像のキャリブレーション装置及びキャリブレーション方法の詳細を説明する。
図1に示すように、本実施例に係る画像のキャリブレーション装置は、一台のラインセンサカメラ11Aと、直線マーカ12Aと、ラインセンサカメラ11Aにより取得した画像データを解析する画像処理装置13とを用いて、表面と裏面が平らで平行な透明板2の影響を透明板2のカメラ11に対する角度θ
g、厚さd、屈折率nを利用して求め、透明板2がない状態で撮影した場合と同等の画像を得るための装置である。なお本実施例に係る画像のキャリブレーション装置は、ラインセンサカメラ11Aと直線マーカ12Aの位置姿勢関係も同時に求めることが可能である。
【0018】
直線マーカ12Aは、棒状に形成されている。この直線マーカ12Aの表面には、
図2に示すように、長手方向の長さが既知である白帯(白色領域)12Aaと黒帯(黒色領域)12Abとが長手方向に沿って交互に配されている(以下、白帯12Aa及び黒帯12Abを総称する場合は白黒帯12Aa,12Abと称する)。
図2に示す例では、白帯12Aa及び黒帯12Abは、それぞれ四つずつ設けられている。
【0019】
ラインセンサカメラ11Aは、1ラインの撮像を行う機器である。ラインセンサカメラ11Aは、直線マーカ12Aの白帯12Aaと黒帯12Abの境界(以下、切り替え地点と称する)12Acを少なくとも三箇所以上撮影するように設置される。
【0020】
画像処理装置13は、ラインセンサカメラ11Aによって撮像した画像を解析して透明板キャリブレーションを実行するものである。
【0021】
図3に示すように、画像処理装置13は、画像入力部13a、計測座標算出部13b、外部パラメータ算出部13c、カメラ座標系変換部13d、透明板パラメータ算出部13e、キャリブレーション処理部13f、及び記憶部13gを備えている。
【0022】
画像入力部13aは、ラインセンサカメラ11Aで取得した画像データ(透明板2ありの場合、及び、透明板2なしの場合)を入力し、記憶部13gに保管する。
計測座標算出部13bは、記憶部13gから読み出した画像データから直線マーカ12Aの白黒帯12Aa,12Abを検出し、切り替え地点12Acの画像上の座標(ピクセル位置)を算出し、計測座標データとして記憶部13gに保管する。
【0023】
外部パラメータ算出部13cは、記憶部13gから読み出した透明板2なしの場合の計測座標データと、予め記憶部13gに保管した既知であるラインセンサカメラ11Aの内部パラメータ、直線マーカ12Aの切り替え地点12Acのマーカ座標系(マーカ長手方向にX軸、それに垂直な方向にY軸をとる座標系。座標原点はマーカ上の任意の点(例えばマーカの中央など))の座標であるマーカ座標系座標データ(真値座標(X
i,0))に基づいて、ラインセンサカメラ11Aと直線マーカ12Aとの位置姿勢関係を表す外部パラメータを求め、これを記憶部13gに保管する。
【0024】
カメラ座標系変換部13dは、記憶部13gから読み出した透明板2なしの場合の計測座標データ及び外部パラメータに基づいて、直線マーカ12Aの切り替え地点12Acのカメラ座標系(画像素子面と平行な方向にX軸、カメラ光軸方向にY軸をとる座標系。座標原点はカメラのピンホールモデルの原点(光線の集まる点)と同一の位置)の座標を算出し、カメラ座標系座標データとして記憶部13gに保管する。
【0025】
透明板パラメータ算出部13eは、記憶部13gから読み出した透明板2あり及び透明板2なしの場合の計測座標データ、ラインセンサカメラ11Aの内部パラメータ、及びカメラ座標系座標データに基づいて、透明板パラメータを算出し、これを記憶部13gに保管する。
【0026】
キャリブレーション処理部13fは、ラインセンサカメラ11Aを用いた計測を行う際に、記憶部13gから読み出した透明板2ありの場合の計測座標データ、予め求めた計測対象の高さ(ラインセンサカメラ11Aから直線マーカ12AまでのY
1軸方向の距離)、透明板パラメータに基づいて、計測対象の校正済み計測座標を算出し、校正済み計測座標データとして記憶部13gに保管する。
【0027】
記憶部13gは、画像データ、各撮影での直線マーカ12Aの白黒帯12Aa,12Abの計測座標データ、ラインセンサカメラ11Aの内部パラメータ、ラインセンサカメラ11Aと直線マーカ12Aとの位置姿勢関係を表す外部パラメータ、直線マーカ12Aの白黒帯12Aa,12Abのマーカ座標系座標、直線マーカ12Aの白黒帯12Aa,12Abのカメラ座標系座標、透明板パラメータ、計測対象の高さ、計測対象のキャリブレーション後の校正済み計測座標データ等を保管する。
【0028】
なお、構成済み計測座標データは図示しない表示部等に出力され、表示部では校正された画像が表示される。
【0029】
以下、
図4を用いて本実施例に係る画像のキャリブレーション装置によるキャリブレーション処理の流れを説明する。
【0030】
透明板キャリブレーションを行うためには、透明板2の厚さd[mm]、屈折率n、ラインセンサカメラ11Aに対する角度θ
g[rad]といったパラメータを求める必要がある。
そのためにまず、
図4に示すように、透明板2なしで長手方向の白黒帯12Aa,12Abの長さが既知である直線マーカ12Aをラインセンサカメラ11Aにより撮影する(ステップS1)。
なお、直線マーカ12Aはラインセンサカメラ11Aからみてほぼ正対するように設置する。また、ラインセンサカメラ11Aのレンズキャリブレーションはすでに行われており、焦点距離f、主点座標c、歪み係数といったカメラの内部パラメータは既知であり、歪みを除去した画像が得られていると仮定する。ラインセンサカメラ11Aによって撮影した画像は、画像入力部13aにより記憶部13gに保管される。
【0031】
続いて、直線マーカ12A及びラインセンサカメラ11Aの位置を動かさずに、直線マーカ12Aとラインセンサカメラ11Aとの間に透明板2を設置して透明板2ありの状態で直線マーカ12Aをラインセンサカメラ11Aにより撮影する(ステップS2)。ラインセンサカメラ11Aによって撮影した画像は、画像入力部13aにより記憶部13gに保管される。
【0032】
本実施例では、このようにして撮影した透明板2がない場合と透明板2がある場合の画像の写りの違いを利用して透明板2のパラメータを算出する。
【0033】
ステップS2に続いては、計測座標算出部13bにより、記憶部13gから読み出した画像データを用いて、透明板2なしで撮影した画像及び透明板2ありで撮影した画像から、それぞれ直線マーカ12Aの切り替え地点12Acのピクセル位置(計測座標)を検出する(ステップS3)。直線マーカ12Aの切り替え地点12Acのピクセル位置については、二値化処理やエッジ検出といった画像処理手法により検出する。
【0034】
続いて、外部パラメータ算出部13cにより、記憶部13gから読み出した、透明板2なしの画像から得た計測座標データ、ラインセンサカメラ11Aの内部パラメータ及びマーカ座標系座標データを用いて、ラインセンサカメラ11Aと直線マーカ12Aとの位置姿勢関係を表す外部パラメータとして後で説明する角度Θ、ベクトルt
11,t
12を求め(ステップS4)、カメラ座標系変換部13dにより、記憶部13gから読み出した透明板2なしの場合の計測座標データ及び外部パラメータから、カメラ座標系における直線マーカ12Aの切り替え地点12Acの座標(X
1',Y
1')を算出する(ステップS5)。
【0035】
カメラモデルにはピンホールモデルを用いる。ただし、ここではラインセンサカメラ11Aを使うため、通常のエリアカメラとは違い、三次元空間→二次元画像ではなく、二次元平面→一次元画像となる。この数式モデルを式(1)に示す。
【0036】
【数1】
【0037】
ラインセンサカメラ11Aは1ラインしか撮影されないが、この撮影範囲は三次元空間上では二次元平面となる。この二次元空間上のマーカ座標系のある座標をX
1,Y
1で、カメラ座標系の光軸方向の軸とその軸に直交する軸に平行な画像座標系(画像の左端を0原点とする画像素子面と平行な座標系であり、ラインセンサカメラ11Aにおける光線が、カメラ座標系原点より光軸方向に焦点距離f[pixel]離れた位置にある画像平面に投影されたピクセル座標を表す)のあるピクセル座標をu
1で表現している。マーカ座標系とカメラ座標系間の回転行列をR(回転軸は1軸でその角度はΘ)、並進ベクトルをt
1(二次元ベクトルでその要素はt
11、t
12)とする。
【0038】
また、s
1はスケーリング係数、u
1は画像座標系における位置(ピクセル座標、単位はpixel)、fは焦点距離(単位はpixel)、cは主点座標(単位はpixel)、X
1,Y
1はマーカ座標系における直線マーカ12Aの切り替え地点12Acのマーカ座標系における位置(単位はとくに決まっていないがmmとするのが一般的である)である。なお、この式(1)はラインセンサカメラ11Aのレンズの歪みはすでに校正済みとする。また、外部パラメータの単位は回転量がラジアン、並進移動量が特に決まっていないがmmとするのが一般的である。
【0039】
そして、透明板2なしの画像から特異値分解を用いてラインセンサカメラ11Aと直線マーカ12Aとの位置姿勢関係を表す外部パラメータとして角度Θ、ベクトルt
11,t
12を求める。
【0040】
以下に、外部パラメータである角度Θ、ベクトルt
11、t
12を求める方法について詳しく説明する。まず、ラインセンサカメラ11Aにより直線マーカ12Aを撮影しているため、直線マーカ12AのY座標は全て0になる。そこで以下の式(2)が得られる。
【0041】
【数2】
【0042】
この式を展開すると、以下の式(3)となる。
【0043】
【数3】
【0044】
これを展開、整理すると、以下の式(4)となる。
【0045】
【数4】
【0046】
ここで、式(4)はスケールが次数を一つ減らせる性質を利用し、三本以上の同時方程式を立てることで解くことができる。本実施例では、ラインセンサカメラ11Aにより直線マーカ12Aの切り替え地点12Acを三箇所以上撮影するようにしたため、当該切り替え地点12Acの座標は三点以上(X
11,X
12,…,X
1M,u
11,u
12,…,u
1M)(Mは3以上の整数)あるが、この場合、以下の式(5)に示すように方程式と未知数の数が一致しない。
【0047】
【数5】
【0048】
そこで最小二乗法を行う。この形から外部パラメータである角度Θ、ベクトルt
11、t
12を求める場合、例えば非特許文献1に記載されている特異値分解等を用いて算出することができる。
なお、実際の外部パラメータとするためには、スケール不定及び光軸の向きを固定するためベクトルt
12で正規化を行い、回転行列の性質よりsin
2Θ+cos
2Θ=1を使用して、角度Θ及びベクトルt
11、t
12を求める。このように画像上の位置u
1、真値座標(マーカ12Aの白黒帯12Aa,12Abの幅)、焦点距離f、主点座標cが分かっていれば線形解法で解を求めることができる。
【0049】
次に、透明板2なしの場合の計測座標データから特異値分解を用いてカメラ座標系における直線マーカ12Aの切り替え地点12Acの座標(X
1',Y
1')を求める。座標(X
1',Y
1')は以下の式(6)で算出することができる。
【0050】
【数6】
【0051】
次に、透明板パラメータ算出部13eにより、記憶部13gから透明板2ありの場合の計測座標データ、透明板2なしの場合の計測座標データ、ラインセンサカメラ11Aの内部パラメータ、及びカメラ座標系座標データを読み出し、この直線マーカ12Aの切り替え地点12Acのカメラ座標系の座標と、透明板2ありの画像から求めた計測座標データを用いて透明板2のパラメータ(厚さd、屈折率n、カメラ光軸に対する角度θ
g)を算出する(ステップS6)。具体的には、透明板2ありの画像から求めた計測座標データを用いて、直線マーカ12Aの切り替え地点12Acのピクセル位置と透明板2なしの画像から求めた直線マーカ12Aの切り替え地点12Acのピクセル位置との差が小さくなるように、レーベンバーグマーカート法などの最適化手法を用いて透明板2のパラメータを求める。
【0052】
図1に示すように、透明板2の有無によるある直線マーカ12Aの切り替え地点12Acからの光線の違いにより、透明板2がない場合は画像としてu
1の位置に写るケースであっても、透明板2がある場合は光の屈折があるため画像ではu
1'という異なる位置に写ることが分かる。透明板キャリブレーションとはu
1'の座標が得られたときに本来写るであろうu
1に座標を変換する処理である。
以下では、この変換のためのパラメータとして透明板2の厚さd、透明板2の屈折率n、透明板2のカメラ光軸に対する角度θ
gを算出する。
まず、透明板2の表面と裏面が平行であると仮定する。すると、スネルの法則より透明板2の表面への入射光と透明板2の裏面から出る出射光は平行になる。この性質を利用すると光線の変化は以下の式(7)〜(9)で表せる。
【0053】
【数7】
【0054】
ここで、e
1:透明板2を透過することによる出射光と光学軸とのズレ[mm]、(X
1',Y
1'):透明板2なしの場合のマーカのある1地点のカメラ座標系における座標[mm]、(X
1'',Y
1''):ピクセル位置u
1'への光線とマーカのある1地点から伸ばした画像平面と平行な軸との交点の座標[mm]、c:主点座標[pixel]、f:焦点距離[pixel]、u
1:透明板2なしの場合のマーカのある1地点のピクセル位置[pixel]、u
1':透明板2ありの場合のマーカのある1地点のピクセル位置[pixel]、θ
1:透明板2に垂直な軸と透明板2の出射光のなす角度[rad]、θ
01:透明板2なしの場合のマーカのある1地点からカメラへの光線とカメラ光軸との角度(u
1'からの光線とカメラ光軸との角度)[rad]、θ
1':透明板2に垂直な軸と透明板内の光線とのなす角度[rad]である。
【0055】
ここで、(X
1',Y
1')、(X
1'',Y
1'')はどちらもカメラ座標系のため、Y
1''=Y
1'、u
1':f=X
1'':Y
1''より、X
1''は以下の式(10)で表される。
【0056】
【数8】
【0057】
これにより、式(9)において未算出の変数は出射光と光学軸とのズレe
1だけとなった。ズレe
1の算出を
図1及び
図5を用いて説明する。まず、透明板2に垂直な軸と透明板2の出射光とがなす角度θ
1[rad]、u
1'からの光線とカメラ光軸との角度θ
01[rad]、透明板2に垂直な軸と透明板2内の光線とがなす角度θ
1'[rad]については以下の式(11)〜(13)で算出できる。
【0058】
【数9】
【0059】
次に、透明板2内の光線の長さ(以下、光路長)b
1を以下の式(14)により求める。
【0060】
【数10】
【0061】
この光路長b
1を用いて、当該光路長b
1のY
1軸方向の成分b
1'を求めると、以下の式(15)のようになる。
【0062】
【数11】
【0063】
光路長b及び当該光路長bの鉛直方向の成分b
1'から
図5に示す成分e1,e2(e1+e2=e
1)を算出する。
【0064】
【数12】
【0065】
よって、出射光と光学軸とのズレe
1は以下の式(18)で表される。
【0066】
【数13】
【0067】
ここで、透明板2の厚さd、透明板2のカメラ光軸に対する角度θ
g、透明板2の屈折率nがまだ未算出のパラメータとなる。そこで次の式(19)の二乗誤差を最小化するd,θ
g,nを求める。
【0068】
【数14】
【0069】
ここで、N1は直線マーカ12Aの切り替え地点12Acの数である。この数式は、透明板2ありの場合のピクセル位置u
1'からの変換結果と透明板2無しの場合のピクセル位置u
1との誤差を最小化するパラメータを算出するという意味になる。これにはレーベンバーグマーカート法などの最適化手法を用いる。
これで、透明板2のパラメータである厚さd、角度θ
g、屈折率nが算出される。
【0070】
次に、キャリブレーション処理部13fにより、計測される透明板2ありの場合のピクセル位置u
1'に対して以下の式(20)(式(9)に式(10)と式(18)を代入したもの)を用いることで、透明板2がない場合と同等のピクセル位置u
1を算出する(ステップS7)。すなわち、求めた透明板パラメータを用いて透明板2ありで撮影した画像から求めた計測座標(ピクセル位置)を、透明板2なしで撮影した状態と同等にするようにキャリブレーションを行う。
【0071】
【数15】
【0072】
なお、キャリブレーションにY
1'という計測対象の高さ(ラインセンサカメラ11Aから直線マーカ12AまでのY
1軸方向の距離)が必要になる。これには撮像するワーキングディスタンスを固定することで解決するか、別の手段で対象物までの距離を計測する必要がある。例えば、ラインセンサカメラを二台用いて三角測量を行うことで距離Y
1'を求めることが可能である。この場合ピクセル位置u
1'を初期値として三角測量を行い、求めた座標から角度θ
01及び距離Y
1'を算出する。そして求めたピクセル位置u
1を用いて再度角度θ
01及び距離Y
1'を算出することを繰り返すことで最適なu座標を算出できる。
【0073】
このように構成される本実施例に係る画像のキャリブレーション装置及び方法によれば、以下の作用効果が得られる。すなわち、
1)透明板2のパラメータを画像データとマーカ座標系座標データの真値のみで算出することが可能である。
2)透明板2や直線マーカ12Aの設置位置の制約が少ないキャリブレーション手法である。
3)透明板パラメータの算出と直線マーカ12Aのカメラ座標系座標の算出が可能である。
4)ラインセンサカメラ11Aでの透明板キャリブレーションが可能である。
【0074】
なお、本実施例では、直線マーカ12Aを、長手方向の長さが既知である白帯(白色領域)12Aaと黒帯(黒色領域)12Abとを長手方向に沿って交互に配したものとして説明したが、直線マーカ12Aの配色は上述した実施例に限定されるものではなく、淡色の領域と濃色の領域とを長手方向に沿って交互に配するなど、二つの領域の境界が明確に判断できる配色であればよい。
【実施例2】
【0075】
図3,4及び
図6,7を用いて本発明の実施例2に係る画像のキャリブレーション装置及びキャリブレーション方法の詳細を説明する。
【0076】
図6に示すように、本実施例に係るキャリブレーション装置は、平面マーカ12Bと、一台のエリアカメラ11Bと、表面と裏面が平らで平行な透明板2とを用いて、透明板2の影響を透明板2のエリアカメラ11Bに対する角度θ
g、厚さd、屈折率nから求めるものである。なお本実施例に係る画像のキャリブレーション装置は、平面マーカ12Bとエリアカメラ11Bの位置姿勢関係も同時に求めることが可能である。
【0077】
図7に示すように、平面マーカ12Bは、矩形状に形成された板体からなる。平面マーカ12Bには、大きさが既知である矩形状の白色領域12Baと黒色領域12Bbとがチェスボード型に配置されている。
図7に示す例では、白色領域12Ba及び黒色領域12Bbは、それぞれ八つずつ設けられている。
【0078】
エリアカメラ11Bは、二次元画像の撮影が可能な機器である。エリアカメラ11Bは、平面マーカ12Bの白色領域12Baと黒色領域12Bbの境界(白色領域12Baと白色領域12Baとの交点、又は黒色領域12Bbと黒色領域12Bbとの交点。以下、単に交点という)12Bcを少なくとも八か所以上撮影するように設置される。
【0079】
画像処理装置13の構成は実施例1で説明したものと概ね同様であり、
図3に示すように、画像入力部13a、計測座標算出部13b、外部パラメータ算出部13c、カメラ座標系変換部13d、透明板パラメータ算出部13e、キャリブレーション処理部13f、及び記憶部13gを備えている。
【0080】
画像入力部13aは、エリアカメラ11Bで取得した画像データ(透明板2ありの場合、及び、透明板2なしの場合)を入力し、記憶部13gに保管する。
計測座標算出部13bは、記憶部13gから読み出した画像データから平面マーカ12Bの白色領域12Baと黒色領域12Bbとを検出し、平面マーカ12Bの交点12Bcの画像上の座標を求め、計測座標データとして記憶部13gに保管する。
【0081】
外部パラメータ算出部13cは、記憶部13gから読み出した透明板2なしの場合の計測座標データと、予め記憶部13gに保管した既知であるエリアカメラ11Bの内部パラメータ、平面マーカ12Bの交点12Bcのマーカ座標系の座標であるマーカ座標系座標データ(真値座標)に基づいて、エリアカメラ11Bと平面マーカ12Bの位置姿勢関係を表す外部パラメータを求め、これを記憶部13gに保管する。
【0082】
カメラ座標系変換部13dは、記憶部13gから読み出した透明板2なしの場合の計測座標データ及び外部パラメータに基づいて、平面マーカ12Bの交点12Bcのカメラ座標系の座標を算出し、これをカメラ座標系座標データとして記憶部13gに保管する。
【0083】
透明板パラメータ算出部13eは、記憶部13gから読み出した透明板2あり及び透明板2なしの場合の計測座標データ、エリアカメラ11Bの内部パラメータ、及びカメラ座標系座標データに基づいて、透明板パラメータを算出し、これを記憶部13gに保管する。
【0084】
キャリブレーション処理部13fは、エリアカメラ11Bを用いた計測を行う際に、記憶部13gから読み出した透明板2ありの場合の計測座標データ、予め求めた計測対象の高さ(エリアカメラ11Bから平面マーカ12BまでのZ
2軸方向の距離)、透明板パラメータに基づいて、計測対象の校正済み計測座標を算出し、校正済み計測座標データとして記憶部13gに保管する。
【0085】
記憶部13gは、エリアカメラ撮像データ、各撮影での平面マーカ12Bの交点12Bcの計測座標データ、エリアカメラ11Bの内部パラメータ、エリアカメラ11Bと平面マーカ12Bとの位置姿勢関係を表す外部パラメータ、平面マーカ12Bの交点12Bcの座標であるマーカ座標系座標、平面マーカ12Bの交点12Bcの座標のカメラ座標系座標、透明板パラメータ、計測対象の高さ、計測対象のキャリブレーション後の校正済み座標計測座標データ等を保管する。
なお、構成済み計測座標データは図示しない表示部等に出力され、表示部では校正された画像が表示される。
【0086】
以下、
図4を用いて本実施例に係る画像のキャリブレーション装置によるキャリブレーション処理の流れを説明する。
【0087】
透明板キャリブレーションを行うためには、透明板2の厚さd[mm]、屈折率n、角度θ
g[rad]といったパラメータを求める必要がある。そのために、まず透明板2なしで
図7に示すような、白色領域12Baと黒色領域12Bbの交点12Bcの位置が既知である平面マーカ12Bを撮影する(ステップS1)。平面マーカ12Bはエリアカメラ11Bからみてほぼ正対するように設置する。
【0088】
その後、平面マーカ12Bの位置とエリアカメラ11Bの位置を動かさずに平面マーカ12Bとエリアカメラ11Bとの間に透明板2を設置し、透明板2ありの状態で平面マーカ12Bを撮影する(ステップS2)。本実施例では、この際に得られる写りの違いを用いて透明板2のパラメータを算出する。ここでエリアカメラ11Bのレンズキャリブレーションはすでに行われており、焦点距離f
u,f
v、主点座標c
u,c
v、歪み係数といったエリアカメラ11Bの内部パラメータは既知であり、歪みを除去した画像が得られていると仮定する。
【0089】
続いて、計測座標算出部13bにより、透明板2なしで撮影した画像から平面マーカ12Bの交点12Bcの画像上の座標を検出する(ステップS3)。平面マーカ12Bの交点12Bcのピクセル位置(計測座標)については二値化処理やエッジ検出といった画像処理手法により検出する。
【0090】
続いて、外部パラメータ算出部13cにより、記憶部13gから読み出した透明板2なしの場合の計測座標データ、エリアカメラ11Bの内部パラメータ、及びマーカ座標系座標データを用いて、エリアカメラ11Bと平面マーカ11Bとの位置姿勢関係を表す外部パラメータとして回転行列R及び並進ベクトルt
2を求め(ステップS4)、これらの値からカメラ座標系における平面マーカ12Bの交点12Bcの座標(X
2',Y
2',Z
2')を算出する(ステップS5)。
【0091】
カメラモデルにはピンホールモデルを用いる。この数式モデルを式(21)に示す。三次元空間上のマーカ座標系をX
2,Y
2,Z
2軸で、カメラ座標系を光軸方向の軸に直交する二次元平面のu
2,v
2軸で表現している。マーカ座標系とカメラ座標系間の回転行列をR(r
11〜r
33)、並進ベクトルをt
2(三次元ベクトルでその要素はt
21,t
22,t
23)とする。
【0092】
【数16】
【0093】
透明板2なしの画像から求めた計測座標から特異値分解を用いてエリアカメラ11Bと平面マーカ12Bとの位置姿勢関係を表す外部パラメータとして回転行列R及び並進ベクトルt
2を求める。
【0094】
また、s
2はスケーリング係数、f
u,f
vはu
2,v
2それぞれの焦点距離、c
u,c
vはu
2,v
2それぞれの主点座標、u
2,v
2は画像座標系におけるピクセル位置、X
2,Y
2,Z
2はマーカ座標系における平面マーカ12Bの交点12Bcのピクセル位置である。なお、この式(21)ではレンズの歪みはすでに校正済みとする。
【0095】
以下に、エリアカメラ11Bと平面マーカ12Bの位置姿勢関係を表す外部パラメータである回転行列R及び並進ベクトルt
2を求める方法について述べる。まず、エリアカメラ11Bにより平面マーカ12Bを撮影しているため、平面マーカ12BのZ
2座標は全て0になる。そこで以下の式(22)が得られる。
【0096】
【数17】
【0097】
この式を展開すると、以下の式(23),(24)となる。
【0098】
【数18】
【0099】
これを展開、整理すると、以下の式(25)になる。
【0100】
【数19】
【0101】
ここで、上記の式(25)は、スケールが次数を一つ減らせる性質を利用し、8本以上の同時方程式を立てることで解くことができる。実際には平面マーカ12Bの座標は8点以上((X
21,Y
21),(X
22,Y
22),…,(X
2L,Y
2L),(u
21,v
21),(u
22,v
22),…,(u
2L,v
2L))(Lは8以上の整数)あるが、この場合方程式と未知数の数が一致しない(式(26))。
【0102】
【数20】
【0103】
そこで最小二乗法を行う。この形から外部パラメータである回転行列R及び並進ベクトルt
2を求める場合、特異値分解を用いることが良く知られているため(非特許文献1)、ここでは特異値分解によって算出する。
【0104】
実際の外部パラメータとするためには、スケール不定及び光軸の向きを固定するためベクトルt
23で正規化を行い、回転行列の性質より回転行列Rが直交行列かつ行列式の値が1を使用して回転行列R及び並進ベクトルt
2を求める。このように画像上の計測座標(ピクセル位置)、真値座標(平面マーカ12Bの白色領域12Baと黒色領域12Bbの大きさ)、焦点距離、主点座標が分かっていれば線形解法で解を求めることができる。
【0105】
次に、透明板2なしの画像から求めた計測座標から、特異値分解を用いてカメラ座標系における平面マーカ12Bの交点12Bcの座標(X
2',Y
2',Z
2')を求める。この座標(X
2',Y
2',Z
2')は以下の式(27)で算出することができる。
【0106】
【数21】
【0107】
次に、透明板パラメータ算出部13eにより、この平面マーカ12Bの交点12Bcのカメラ座標系の座標と、透明板2を透過して撮像した画像を用いて透明板2のパラメータ(厚さd、屈折率n、カメラ光軸に対する角度θ
g)を算出する(ステップS6)。具体的には、透明板2ありの画像から取得した計測座標を用いて、平面マーカ12Bの交点12Bcのピクセル位置と透明板2なしの画像から取得した平面マーカ12Bの交点12Bcのピクセル位置との差が小さくなるように、レーベンバーグマーカート法などの最適化手法を用いて透明板2のパラメータを求める。
【0108】
図6に、透明板2の有無によるある平面マーカ12Bの交点12Bcからの光線の違いを示すように、透明板2がない場合、画像として(u
2,v
2)の位置に写るケースであっても、透明板2がある場合は光の屈折があるため画像では(u
2',v
2')という異なる位置に写ることが分かる。透明板キャリブレーションとは(u
2',v
2')の座標が得られたときに本来写るであろう(u
2,v
2)に座標を変換する処理である。
【0109】
以下では、この変換のためのパラメータとして透明板2の厚さd、透明板2の屈折率n、透明板2のカメラ光軸に対する角度θ
gを算出する。基本的な考え方は実施例1と同じになるが、ここでは対象となる画像が直線ではなく平面である。そこで、ある座標に対して放射状にある一面を区切ると、実施例1と同等の状態とみなせる。ここではこの傾向を利用して透明板2のパラメータを算出する。
【0110】
まず、透明板2の表面と裏面が平行であると仮定する。すると、スネルの法則より透明板2の表面への入射光と透明板2の裏面から出る出射光は平行になる。この性質を利用すると光線の変化は以下の式(28)〜(30)で表せる。
【0111】
【数22】
【0112】
ここで、d:透明板2の厚さ[mm]、e
2:透明板2を透過することによる出射光と光学軸とのズレ[mm]、n:透明板2の屈折率、(X
2',Y
2',Z
2'):透明板2なしの場合の平面マーカ12Bのある1地点のカメラ座標系における座標[mm]、(X
2'',Y
2'',Z
2''):ピクセル位置(u
2',v
2')への光線と平面マーカ12Bのある1地点から伸ばした画像平面と平行な軸との交点の座標[mm]、(c
u,c
v):主点座標[pixel]、(f
u,f
v):焦点距離[pixel]、(u
2,v
2):透明板2なしの場合の平面マーカ12Bのある1地点のピクセル位置[pixel]、(u
2',v
2'):透明板2ありの場合の平面マーカ12Bのある1地点のピクセル位置[pixel]、θ
2:透明板2に垂直な軸と透明板2の出射光のなす角度[rad]、θ
02:透明板2なしの場合の平面マーカ12Bのある1地点からエリアカメラ11Bへの光線とカメラ光軸との角度((u
2',v
2')からの光線とカメラ光軸とがなす角)[rad]、θ
g:カメラ光軸に対する透明板2に垂直な軸の角度[rad]、θ
2':透明板2に垂直な軸と透明板内の光線とのなす角度[rad]である。
ここで、(X
2',Y
2',Z
2')、(X
2'',Y
2'',Z
2'')はどちらもカメラ座標系のため、Z
2''=Z
2'、u
2':f
u=X
2'':Z
2''、v
2':f
v=Y
2'':Z
2''より、以下の式(31)が成り立つ。
【0113】
【数23】
【0114】
これにより、式(30)においてまだ未算出の変数は出射光と光学軸とのズレe
2だけとなった。以下に、ズレe
2を算出する手法について説明する。まず、透明板2に垂直な軸と透明板2の出射光のなす角θ
2[rad]、(u
2',v
2')からの光線とカメラ光軸とがなす角θ
02[rad]、透明板2に垂直な軸と透明板2内の光線とのなす角θ
2'[rad]については以下の式(32)〜(34)で算出できる。
【0115】
【数24】
【0116】
ここで、θ'
gは光軸に対して透明板2の光軸中心から光線への直線がどの程度傾いているかを表す角度であり、θ
gから求めることができる。まず、光軸ベクトルを透明板2に射影したベクトルを求める。次にこのベクトルを透明板2の法線ベクトルに対して回転させ、(X
2',Y
2',Z
2')を通る光線と交差するベクトルとする。最後にこのベクトルと光軸とのなす角がθ'
gとなる。
これ以降については実施例1と同様になる。よって、出射光と光学軸とのズレe
2は以下の式(35)で表される。
【0117】
【数25】
【0118】
ここで、透明板2の厚さd、透明板2のカメラ光軸に対する角度θ
g、透明板2の屈折率nがまだ未算出のパラメータとなる。そこで次の式(36)の二乗誤差を最小化するd,θ
g,nを求める。
【0119】
【数26】
【0120】
ここで、N2は平面マーカ12Bの交点12Bcの数である。この数式は、透明板2ありの場合のピクセル位置u
2'からの変換結果と透明板2無しの場合のピクセル位置u
2との誤差を最小化するパラメータを算出するという意味になる。これにはレーベンバーグマーカート法などの最適化手法を用いる。
これで、透明板2のパラメータである厚さd、角度θ
g、屈折率nが算出される。
【0121】
その後、実施例1と同様にキャリブレーション処理部13fにより、計測されるu
2'から透明板2がない場合と同等のピクセル位置u
2を算出する(ステップS7)。算出にはZ
2'という撮影対象の距離(エリアカメラ11Bから平面マーカ12BまでのZ軸方向の距離)が必要になるが、実施例1と同様に、これには撮像するワーキングディスタンスを固定することで解決するか、別の手段で対象物までの距離Z
2'を計測する。
【0122】
このように構成される本実施例に係る画像のキャリブレーション装置及びキャリブレーション方法によれば、以下の作用効果が得られる。すなわち、
1)透明板2のパラメータを画像データとマーカ座標系座標データの真値のみで算出することが可能である。
2)透明板2や平面マーカ12Bの設置位置の制約が少ないキャリブレーション手法である。
3)透明板パラメータの算出と平面マーカ12Bのカメラ座標系座標の算出が可能である。
4)エリアカメラ11Bでの透明板キャリブレーションが可能である。
【0123】
なお、本実施例では、平面マーカ12Bを、矩形状の白色領域12Baと黒色領域12Bbとをチェスボード型に配置したものとして説明したが、平面マーカ12Bの配色は上述した実施例に限定されるものではなく、淡色の領域と濃色の領域とをチェスボード型に配置するなど、二つの領域の境界が明確に判断できる配色であればよい。