基本行列 (コンピュータビジョン)
MATLABでの基本行列推定(Manolis Lourakis)。
ここまでで、 E {\displaystyle \mathbf {E} } が与えられた場合に R {\displaystyle \mathbf {R} } と t {\displaystyle \mathbf {t} } の1つの可能な解を求める手段が確立されている。しかし、これは唯一の可能な解ではなく、実用の観点からは有効な解でない可能性さえある。まず、 E {\displaystyle \mathbf {E} } のスケーリングが定義されていないため、 t {\displaystyle \mathbf {t} } のスケーリングも定義されていない。次の式が成り立つため、これは E {\displaystyle \mathbf {E} } の零空間にある必要がある。
E t = R [ t ] × t = 0 {\displaystyle \mathbf {E} \,\mathbf {t} =\mathbf {R} \,[\mathbf {t} ]_{\times }\,\mathbf {t} =\mathbf {0} }
しかしこの後の解の分析のためには t {\displaystyle \mathbf {t} } の厳密なスケーリングは、その「符号」、つまりどの方向を指しているかほど重要ではない。 t ^ {\displaystyle {\hat {\mathbf {t} }}} を E {\displaystyle \mathbf {E} } の零空間で正規化されたベクトルとする。
対応する正規化された画像座標 ( y 1 , y 2 ) {\displaystyle (y_{1},y_{2})} と ( y 1 ′ , y 2 ′ ) {\displaystyle (y'_{1},y'_{2})} が与えられた場合、基本行列が既知であり対応する回転および平行移動が決定されていれば、 ( x 1 , x 2 , x 3 ) {\displaystyle (x_{1},x_{2},x_{3})} を計算する多くの方法が存在する。
ここではロンゲ・ヒギンズによる論文に従って導出を行う。
正規化済みの2つのカメラが、それぞれの画像平面に3次元世界を投影しているとする。点Pの3次元座標を各カメラの座標系に対して ( x 1 , x 2 , x 3 ) {\displaystyle (x_{1},x_{2},x_{3})} と ( x 1 ′ , x 2 ′ , x 3 ′ ) {\displaystyle (x'_{1},x'_{2},x'_{3})} とする。カメラは正規化済みであるからピンホールカメラモデルが適用でき、対応する画像座標は
( y 1 y 2 ) = 1 x 3 ( x 1 x 2 ) {\displaystyle {\begin{pmatrix}y_{1}\\y_{2}\end{pmatrix}}={\frac {1}{x_{3}}}{\begin{pmatrix}x_{1}\\x_{2}\end{pmatrix}}} と ( y 1 ′ y 2 ′ ) = 1 x 3 ′ ( x 1 ′ x 2 ′ ) {\displaystyle {\begin{pmatrix}y'_{1}\\y'_{2}\end{pmatrix}}={\frac {1}{x'_{3}}}{\begin{pmatrix}x'_{1}\\x'_{2}\end{pmatrix}}}
と表せる。
2つの画像座標の同次表現は、次の式で与えられる。