SfM——八点法计算F矩阵(基础矩阵)与三角测量

时间:2024-04-01 20:46:20

1 八点法计算F矩阵(基础矩阵)

基础矩阵用于描述两个视图之间的几何关系

  1. 基础矩阵:基础矩阵 F F F 是描述两个视图之间相机投影关系的矩阵。对于两个对应的图像坐标点 ( x , y , 1 ) (x, y, 1) (x,y,1) ( u , v , 1 ) (u, v, 1) (u,v,1)​ 在两个视图上,基础矩阵满足以下方程:

    这个方程即对极约束,描述了图像中对应点的投影关系

[ u v 1 ] T ⋅ F ⋅ [ x y 1 ] = 0 \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}^T \cdot F \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = 0 uv1 TF xy1 =0

  1. 线性系统:对于多对对应点,可以构建一个线性方程系统 A f = 0 Af = 0 Af=0 ,其中 A A A 是由对应点生成的矩阵, f f f​ 是基础矩阵的扁平形式

    上述方程即:

[ u v 1 ] ⋅ [ f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 ] ⋅ [ x y 1 ] = 0 \begin{bmatrix} u & v & 1 \end{bmatrix} \cdot \begin{bmatrix} f_{11} & f_{12} & f_{13} \\ f_{21} & f_{22} & f_{23} \\ f_{31} & f_{32} & f_{33} \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} = 0 [uv1] f11f21f31f12f22f32f13f23f33 xy1 =0

​ 展开得到:

[ u x v x x u y v y y u v 1 ] ⋅ [ f 11 f 12 f 13 f 21 f 22 f 23 f 31 f 32 f 33 ] = 0 \begin{bmatrix} ux&vx&x&uy&vy&y&u&v&1 \end{bmatrix}\cdot \begin{bmatrix}f_{11} \\ f_{12} \\ f_{13} \\ f_{21} \\ f_{22} \\ f_{23} \\ f_{31} \\ f_{32} \\ f_{33} \\ \end{bmatrix} = 0 [uxvxxuyvyyuv1] f11f12f13f21f22f23f31f32f33 =0

​ 这个矩阵方程可以表示为 A i f = 0 A_if = 0 Aif=0

​ 为了解出这个9个未知数的 f f f ,我们至少需要8对点,所以叠加 A i A_i Ai 得到 A A A 矩阵

A = [ x 1 u 1 x 1 v 1 x 1 y 1 u 1 y 1 v 1 y 1 u 1 v 1 1 x 2 u 2 x 2 v 2 x 2 y 2 u 2 y 2 v 2 y 2 u 2 v 2 1 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ x 8 u 8 x 8 v 8 x 8 y 8 u 8 y 8 v 8 y 8 u 8 v 8 1 ] A = \begin{bmatrix} x_1u_1 & x_1v_1 & x_1 & y_1u_1 & y_1v_1 & y_1 & u_1 & v_1 & 1 \\ x_2u_2 & x_2v_2 & x_2 & y_2u_2 & y_2v_2 & y_2 & u_2 & v_2 & 1 \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ x_8u_8 & x_8v_8 & x_8 & y_8u_8 & y_8v_8 & y_8 & u_8 & v_8 & 1 \end{bmatrix} A= x1u1x2u2x8