2. 不可視マーカを用いた位置・姿勢推定のための環境構築 25
2.3 不可視マーカのキャリブレーション
2.3.2 マーカのキャリブレーション手法
キャリブレーションツールにおける具体的な処理の流れを図31に示す.まず最 初に入力された画像から,形状が四角形であるマーカ領域を探索し,IDを認識す
表 3 カメラの内部・外部パラメータ 内部パラメータ
焦点距離[mm] F CCDのサイズ [mm] ccdx×ccdy
画像サイズ [画素] scrx×scry 投影中心座標[画素] (cx, cy)
スケール係数 sx
レンズ歪み係数[mm−2, mm−4] k1,k2 外部パラメータ
姿勢成分 [radian] (r1, r2,r3) 平行移動成分[mm] (t1,t2, t3)
る.IDを構成するビットコードに対してCRCによる誤り検出を行い,誤りの無 かったマーカの4隅の点およびマーカ内部の格子点を特徴点として抽出する.次 に基準マーカの座標系を世界座標系とし,マーカの特徴点の再投影誤差(画像上 での特徴点の座標と特徴点の三次元座標を画像上に投影した座標との距離の2乗 誤差)の和を最小化することにより,基準マーカを写したカメラの世界座標系に おける位置・姿勢を推定する.さらに位置・姿勢が推定されたカメラに写るマー カの世界座標系における位置・姿勢を推定し,そのマーカを写したカメラの位置・
姿勢を推定する.この処理を繰り返すことにより,全てのマーカの世界座標系に おける位置・姿勢を推定する.その際,誤差の蓄積の軽減のため,マーカ設計情 報を利用してマーカの位置・姿勢を補正する.最後に,全ての入力画像を通して 再投影誤差が最小になるようにマーカとカメラの位置・姿勢を最適化し,得られ たマーカの三次元位置・姿勢をマーカの配置情報として出力する.
以下にカメラ位置・姿勢推定とマーカ位置・姿勢推定の処理について詳述する.
カメラ位置・姿勢推定: まず,本システムにおけるカメラ座標系と世界座標系 の関係について述べる.本システムではカメラの内部・外部パラメータとして表
Y’
Z’
X’ Y
Z
X o
世界座標系 世界座標系 世界座標系 世界座標系 カメラ
カメラカメラ カメラ座標系座標系座標系座標系
画像面
s c
マーカ上の特徴点p
特徴点pの画像面への 投影座標x = (x, y)
世界座標系からカメラ座標系への変換行列M マーカ
マーカ マーカ マーカ座標系座標系座標系座標系
Y’’
Z’’
X’’
マーカ座標系からカメラ座標系 への変換行列MMC
Y’
Z’
X’ Y
Z
X o
世界座標系 世界座標系 世界座標系 世界座標系 カメラ
カメラカメラ カメラ座標系座標系座標系座標系
画像面
s c
マーカ上の特徴点p
特徴点pの画像面への 投影座標x = (x, y)
世界座標系からカメラ座標系への変換行列M マーカ
マーカ マーカ マーカ座標系座標系座標系座標系
Y’’
Z’’
X’’
マーカ座標系からカメラ座標系 への変換行列MMC
図 32 カメラ座標系と世界座標系の関係
3に示す項目を利用する. カメラの内部パラメータである焦点距離F, CCDのサ イズccdx,ccdy,画像サイズscrx,scry,投影中心座標cx, cy,画像スケール係数sx, およびレンズ歪み率k1, k2 はTsaiの手法[Tsa86]を用いて,事前に計測しておく.
カメラの位置・姿勢を表すカメラの外部パラメータは,図32に示すように,実世 界に設定されている世界座標系からカメラ座標系への変換行列Mで表すことが できる. 本システムでは, カメラ座標系の3軸に対する回転角(r1, r2, r3)とカメ ラ座標系におけるカメラの平行移動成分であるt = (t1, t2, t3)T を用いて, カメラ の外部パラメータMを以下のように定義する.
M =
m11 m12 m13 m14 m21 m22 m23 m24 m31 m32 m33 m34
0 0 0 1
(9)
=
c2c3+s1s2s3 c1s3 −s2c3+s1c2s3 t1
−c2s3+s1s2c3 c1c3 s2s3 +s1c2c3 t2 c1s2 −s1 c1c2 t3
0 0 0 1
(10)
ただし,
s1 = sinr1, s2 = sinr2, s3 = sinr3
c1 = cosr1, c2 = cosr2, c3 = cosr3 (11) である.また, 図32に示すように,マーカ上の特徴点pの世界座標系における三 次元座標をs= (X, Y, Z)T,カメラ座標系における三次元座標をc= (X′, Y′, Z′)T とすると,世界座標系とカメラ座標系の変換は以下の式で表される.
X′ Y′ Z′ 1
=M
X Y Z 1
(12)
レンズ歪みが無い場合の,マーカ上の特徴点pの三次元座標cの画像上への投影 座標ˆx= (ˆx,y)ˆ は以下のように定義される.
(ˆx,y) =ˆ
Ã
−scrxX′
ccdxZ′F sx+cx,−scryY′
ccdyZ′F +cy
!
(13) このˆxを用いて,レンズ歪みを考慮した際のマーカ上の特徴点pの三次元座標c の画像上への投影座標x= (x, y)は以下の式で定義される[Tsa86].
(x, y) = ³(1 +k1r2+k2r4)(ˆx−cx) +cx,(1 +k1r2+k2r4)(ˆy−cy) +cy´(14)
r =
vu utÃ
ccdx scrxsx
(ˆx−cx)
!2
+
Ãccdy scry
(ˆy−cy)
!2
(15) 次にカメラ位置・姿勢推定処理の詳細について述べる.本システムでは,マー カ撮影画像fから検出したマーカの4隅の点およびマーカ内部の格子点の中心を 特徴点pとして抽出し,三次元位置が推定されたマーカの特徴点の再投影誤差の
和を表す誤差関数(式(17))を最小化することにより,カメラの外部パラメータ M,すなわちカメラの位置・姿勢を推定する.
Rf p = X|x˜f p−xf p|2 (16)
Ef = X
p
Rf p (17)
ここで,図33に示すように,˜xf pは入力画像f上で検出された特徴点pの二次元 座標,xf pは特徴点pの三次元座標を画像f上に投影した座標を表す.また,画像 fの外部パラメータMf の自由度は6とし,カメラ座標系の基底ベクトルは単位 直交条件を満たすものとする.本システムでは出口らの手法[出口90]を利用し,
最小自乗法によって外部パラメータの初期値を線型演算によって推定し,補正を 行った後に,非線型最適化を行う.以下に外部パラメータの推定手順を示す.
1. 出口らの手法[出口90]を利用し,線型最小自乗法によってカメラの外部パ ラメータの初期値を推定する.
2. ステップ 1 で推定された初期値を補正し,外部パラメータの自由度を6に 補正する.
3. ステップ 2で求まった外部パラメータを初期値とし,Levenberg-Marquardt 法[Mor78]によりEfを最小化する.これにより,再投影誤差の和であるEf を最小化するMfを求める.
マーカ位置・姿勢推定: マーカの大きさやマーカの格子点の間隔などは入力し た不可視マーカ壁紙の設計情報から与えられているため,マーカ座標系での特徴 点pの座標は既知である.よって,マーカ上の特徴点pのマーカ座標系での三次 元位置と入力画像f上での二次元位置を用いて,前述のカメラ位置・姿勢推定処 理と同様の処理により,マーカ座標系からカメラ座標系への変換行列MMCを算 出する.これを画像fの外部パラメータMf を用いて以下の式により変換するこ とで,マーカの位置・姿勢を表す外部パラメータMMを求める.
MM =MMC−1·Mf (18)
画像面
c
マーカ上の特徴点p の3次元座標:s
p
特徴点pの3次元位置を 画像上へ投影した座標:xfp
画像f を撮影した カメラの投影中心
特徴点pの 画像上での座標
:
:
:
:
再投影誤差:
xfp
~
~ 2 fp fp
Rfp= x −x
図 33 特徴点の再投影誤差
マーカ設計情報にはマーカ間の間隔やマーカの並びが記述されているため,位 置・姿勢が推定されたマーカに隣接するマーカの位置・姿勢も推定可能である.
ただし,不可視マーカ壁紙が切断されて貼られる場合があるため,上記のマーカ 位置・姿勢推定処理で推定された位置・姿勢と隣接するマーカから設計情報に基 づいて計算された位置・姿勢の差がある閾値以下であれば,マーカ設計情報を元 にした位置・姿勢の方が正しいとしてこれを利用する.このようにマーカ設計情 報を利用することにより誤差の蓄積の軽減を図る.