2D-2D
应用场景
根据两相机图片,进行匹配求解相机的旋转变换阵。大致两个过程:1)特征对匹配 2)利用匹配的特征点对求解相机的转换矩阵。下面是稍微具体的方法。
求解方法
对极约束
方程:
x
T
2
t
∧
R
x
i
=
0
o
r
p
2
T
K
−
T
p
1
=
0
x_T^2t^{\land}Rx_i=0\ \ or \ \ p_2^TK^{-T}p_1=0
xT2t∧Rxi=0 or p2TK−Tp1=0
本质矩阵
求本质矩阵 t ∧ R t^{\land}R t∧R(一共6个自由度+1尺度不变性,即5个自由度),一个点能决定一个约束方程,最少可以用5个点解方程。但是一般8点法,最终求解出 t ∧ R t^{\land}R t∧R,最后用奇异值分解(SVD) 求 t ∧ R t^{\land}R t∧R。
单应矩阵
对于特征点在或近似在同一平面的特殊情况,可求解其单应矩阵H,随后用数值法或解析法求解 R , t R,t R,t。
使用重投影误差
通常,同时使用极约束和单应矩阵进行估计,取重投影误差最小的。
2D-3D
应用场景
知道点的世界坐标系坐标,及其在图片中的像素坐标,求相机的世界坐标系下旋转变换阵。
求解方法
PnP
- 转换成线性方程组(1个点2个约束方程,有12个未知数,匹配对需 ≥ 6 \ge6 ≥6),如果匹配对为6个,用直接线性法,;如果大于6对,为超定方程,使用最小二乘法求解,用SVD求解最小二乘问题;
- 随后用QR分解得R,t;
- 用BA方法优化解;
P3P
根据三角形关系,写出关于点坐标的二元二次方程,然后用吴消元法,得到点A、B、C在相机中的坐标,最后用SVD求解R,t。
3D-3D
应用场景
对于两坐标系中2片点云,求解两坐标系的转换矩阵。
求解方法
- 找到 ≥ 3 \ge3 ≥3对匹配点对,构建最小二乘问题
- 利用SVD求解转换矩阵R,t
Bundle Adjustment
是一个最小化重投影误差,构建最小二乘问题,然后用高斯牛顿法或列文伯格-马奈尔特方法求解。