第 6 章 統合に向けて
A.2 因子分解法
因子分解法とは 、連続画像上の複数の特徴点を並べた行列を作成し 、ある条件の元で因子 分解をおこなうことにより、カメラの姿勢と、特徴点の3次元位置を同時に求める方法であ る。本研究では 、カメラモデルを弱透視投影モデルに近似した手法を用いる。以下では 、因 子分解法の流れと、本研究での適用方法について説明する。
解法
F枚の画像があり、全ての画像間で対応付いている特徴点がP個あるとする。特徴点p のfフレーム目の画像上での位置を(ufp, vfp)としたとき、以下の行列W を定義する。
W=
u11 · · · u1P . ..
uF1 · · · uF P v11 · · · v1P
. ..
vF1 · · · vF P
(A.3)
この2F×Pの行列を、計測行列と呼ぶ。そしてWの各行毎に平均を求め、それをW から差し引いた行列Wをつくる。
¯ uf = 1
P P p=1
ufp , v¯f = 1 P
P p=1
vfp
W =W−
¯ u1
...
¯ uF
¯ v1
...
¯ vF
(A.4)
上記の式において画像上の特徴点の平均を求めることは、空間上の特徴点の重心を求め ることに等しい。そして、投影モデルを線形に近似し 、ワールド 座標系の原点をこの重 心に設定することで 、行列Wのrankが3になるという重要な関係が成り立つ。この 性質を利用し 、計測行列Wを特異値分解する。
W =UΣVT (A.5)
この分解結果と、Wのrankが3になるという性質から 、Uを2F ×3、Σを3×3、 VT を3×Pの行列とし 、以下のように2つの行列の積を得る。
UΣVT = (UΣ12)(Σ12VT) =MS (A.6) ここで、上記のMとSの間には 、任意の3×3の正則行列Cが存在する。
MS= (MC)(C−1S) (A.7)
次にこのCを算出し 、MとSから、カメラ姿勢を並べた行列Mと、特徴点の3次元 位置を並べた行列Sに変換する操作をおこなう。今、Mの要素を以下のように表す。
M =
m1 ... mF n1 ... nF
(A.8)
ここで、投影モデルが弱透視投影であることから、分解されたカメラ運動のx軸(mf)、 y軸(nf)は以下の式を満たす。
mf = if
zf,nf = jf
zf (A.9)
ここから、以下のような拘束条件が導かれる。
mfCCTmfT =mTfmf = 1 zf2
nfCCTnfT =nTfnf = 1 z2f
mfCCTnfT =mTfnf = 0 f = (1,· · ·, F)
(A.10)
特に、
mT1m1 =nT1n1 = 1 (A.11) 以上より、Mの各行がこの条件を満たすような条件式をたてる。すなわち、Mの行を a= (α, β, γ)、正則行列Cの積をB(=CCT)としたとき、
aTBa = α β γ
a b c
b d e
c e f
α β γ
=
z1f2 (a=a) 0 (a=a)
となるような対称行列Bの要素を計算すればよい。実際には 、Bの6個の要素を未知 数とし 、2F+ 1個の方程式を立てることで、最小自乗的に解を得ることができる。こ
のBをm1= (1,0,0)、n1 = (0,1,0)の条件のもとで固有値分解することで、Cを算出 できる。以上より、計測行列Wは、以下のように分解される。
W =MS=
mT1
... mTF
nT1 ... nTF
s1 · · · sP
(A.12)
この分解により、Mにはカメラの運動が 、Sには特徴点の3次元位置が含まれている ので、それぞれの要素を求めることができる。
因子分解法は 、多数枚の画像と多数の特徴点の推移情報を一括(バッチ的)で処理するた め、誤差が平均化され 、ロバストな手法と言える。また、本研究で用いている線形近似によ る手法では 、非常に高速に結果を得ることができる。一方で、バッチ処理であるため、利用 局面が制限されたり線形近似を用いたため復元結果が誤差が入る等の問題がある。これらに 対しては 、復元の要件に応じて他の手法と使い分けたり、非線形最小化により誤差を補正す る処理を加える等で対応する。