第 6 章 結論
B.3 マーカの3次元位置推定
向と見なす。
s(l)=
PN
i=1(xi¡x)~ ¢(x(l)i ¡x~(l))
qPN
i=1(xi¡x)~ 2¢qPNi=1(x(l)j ¡x~(l)))2 (B.2) ここでxiは画像ベクトルのi番目の要素を示す。x~は要素の平均値で、N は画素の 階調数、この場合は256となる。xlはl番目のテンプレート画像を意味する。この式は 明るさの正規化された2つの画像ベクトルの余弦を求めることになる。
B.2.4 4頂点位置検出
マーカの各辺に対応する輪郭線データに最小2乗法で直線当てはめを行い、それら 直線の交点を頂点座標値とする。この直線当てはめの際、以下の歪み関数による変換 を行い、理想スクリーン座標系における頂点座標値を求める。
zd
zc =f1¡pzc2g;
zc2 = (xc¡xc0)2+ (yc¡yc0)2; zd2 = (xd ¡xc0)2+ (yd¡yc0)2 xd = zzdc(xc ¡xc0) +xc0; yd = zzdc(yc¡yc0) +yc0
(B.3)
ここで(xc; yc)は理想スクリーン座標系での座標値、(xd; yd)は観測スクリーン座標 値である。また、pは歪み率、(xc0; yc0)は歪み中心座標値で、この3パラメータはカメ ラキャリブレーションによって求めておく。ここでの計算では、式(B.3)の逆変換が 必要となるが、その計算は初期値を(xd; yd)としたニュートン法の4回の繰り返しで十 分な精度が得られる。観測された正方形マーカ画像では樽型歪みでの影響でその辺は 曲線となるが、この変換によって辺は直線として扱うことができる。
0 BB BB BB BB
@
Xc
Yc
Zc
1
1 CC CC CC CC A
=Tcm
0 BB BB BB BB
@
Xm
Ym
Zm
1
1 CC CC CC CC A
=
0
B@ R3£3 T3£1
0 0 0 1
1 CA
0 BB BB BB BB
@
Xm
Ym
Zm
1
1 CC CC CC CC A
=
0 BB BB BB BB
@
R11 R12 R13 T1 R21 R22 R23 T2
R31 R32 R33 T3
0 0 0 1
1 CC CC CC CC A
0 BB BB BB BB
@
Xm Ym
Zm
1
1 CC CC CC CC A
(B.4)
0 BB BB BB BB
@
hxc hyc
h 1
1 CC CC CC CC A
=P
0 BB BB BB BB
@
Xc Yc
Zc
1
1 CC CC CC CC A
=
0 BB BB BB BB
@
P11 P12 P13 0 0 P22 P23 0
0 0 1 0
0 0 0 1
1 CC CC CC CC A
0 BB BB BB BB
@
Xc Yc
Zc
1
1 CC CC CC CC A
(B.5)
マーカ座標系におけるマーカの4頂点の座標値は図B.3に示すように設定されてお り、これらに対応する理想スクリーン座標系における座標値もこれまでの処理で得ら れている。これらの情報から式(B.4)におけるTcmを求めるが、その手順は、
1. 回転移動成分R3£3の推定 2. 平行移動成分T3£1の推定 3. 変換行列Tcmの修正 となる。
B.3.1 回転移動成分 R
3£3の推定
理想スクリーン座標系におけるマーカの頂点位置から向かい合う2辺の直線の方程 式が得られる。それを式(B.6)のように表し、式(B.5)のxc,ycをこれに代入すること で式(B.7)が得られる。
a1x+b1y+c1 = 0; a2x+b2y+c2 = 0 (B.6) a1P11Xc+ (a1P12+b1P22)Yc+ (a1P13+b1P23+c1)Zc = 0
a2P11Xc+ (a2P12+b2P22)Yc+ (a2P13+b2P23+c2)Zc = 0 (B.7)
図 B.3: マーカの例
この式はカメラ座標系によって表現される3次元空間中の平面の方程式であり、3次 元空間中のマーカの辺がこの平面内に存在することを意味する。マーカの向かい合う 2辺は平行なのでその方向ベクトルは一致し、式(B.7)の2平面の面内方向となる。つ
まり、式(B.7)の2平面の各法線ベクトルの外積として計算されるベクトルが、平行2
辺のカメラ座標系における方向ベクトルとなる。この計算を2組の平行2辺に対して 行うことでマーカの隣り合う2辺の方向ベクトルU1,U2を求めることできる。
B.3.2 平行移動成分 T
3£1の推定
式(B.4)(B.5)を結合し、マーカの4頂点のマーカ座標系での座標値、理想スクリー
ン座標系での座標値を代入すると、T1,T2,T3に関するi次方程式が8個得られる。行列 P,Rが既知なので、これらの式からT1,T2,T3を計算できる。
B.3.3 変換行列 T
cmの修正
上の計算でTcmが計算されるが,回転行列の計算においてしばしば大きな誤差を伴 う.そこで,再度,画像情報を利用し回転行列の修正を行う.(式4)においては回転行 列は9個のパラメータで表現されているが,これを3つの回転角(a: Zm 軸の傾斜方 向,b: Zm 軸の傾斜角度,c: Xm-Ym平面のZm軸周りの回転角)で表現する.これは ZYZオイラー角表現を修正したものである.通常のオイラー角表現ではベクトルの微 少変動が回転角に大きな変化を及ぼす場合があるが,この表現ではそのような影響が 小さい.(式8)に回転行列を回転角で表した式を示す.
R=
2 66 66 4
cosacosbcos(c¡a)¡sinasin(c¡a) ¡cosacosbsin(c¡a)¡sinacos(c¡a) cosasinb
sinacosbcos(c¡a)+cosasin(c¡a) ¡sinacosbsin(c¡a)+cosacos(c¡a) sinasinb
¡sinacos(c¡a) sinasin(c¡a) cosb
3 77 77 5
(B.8)
この式より(式9)が導出でき,回転行列R3×3 から各回転角を求めることができる.
cosb =R33
cosa =R13=sinb
sina =R23=sinb (B.9)
sinc = (R32R13¡R31R23)=(R213+R232 ) cosc =¡(R13R31+R23R32)=(R213+R223)
そこで,これまでに求めたTcmを用いて,マーカー4頂点の座標値を(式4,5)に代 入することで,その理想スクリーン座標値を計算できる.この計算値と実際に画像処 理によって求められた値の誤差の2乗和が少なくなるようにa,b,cの値を修正する.具 体的には,山登り法を用いて10回の繰り返し処理により新たな回転成分R3×3を求め る.さらに2.3.2 の処理を再適用し平行移動成分T3×1も更新する.この処理の理論的 な収束性は証明していないが,初期値が適切に与えられること,回転ベクトルの微小 変化が3つの回転角abc に対しても微小変化しか与えないことから,妥当なものと考 え,実験的に問題がないことを確認した.