2D-2D位姿解算方法:本质矩阵或者基础矩阵(essential matrix or fundamental matrix)与单应矩阵(honmography)对比

一、本质矩阵或者基础矩阵算法来自于对极约束:

$$x_{2}^{T}t^{\wedge}Rx_{1}=0$$

也可以写成

$$p_{2}^{T}K^{-T}t^{\wedge}RK^{-1}p_{1}=0$$

其中间部分记为本质矩阵E和基础矩阵F:

$$E=t^{\wedge}R$$或者:$$F=K^{-T}t^{\wedge}RK^{-1}$$

本质矩阵E具有平移和旋转六个自由度,但是由于对极约束是等式为0的约束,所以具有尺度等价性。故具有5个自由度,理论上可以通过5组匹配点进行计算,但是过于复杂,实际上往往通过8点法进行求解。SVD分解往往会得到四个解,通过深度检验可以确定正确的解。

注意:对于约束由于t的存在,如果发生纯旋转,会导致无解。但是单应矩阵(homography)可以解决这个问题。纯旋转也会导致初始化问题。

二、单应矩阵来自于平面约束:

$$n^{T}P+d = 0$$

可得:

$$ -\frac{n^{T}P}{d}=1$$

又因为$$p_{2}=K(RP+t )=K(RP+t\cdot(-\frac{n^{T}P}{d}))=K(R-\frac{tn^{T}}{d})K^{-1}p_{1}$$

中间部分记为单应矩阵(homography)H:$$H=K(R-\frac{tn^{T}}{d})K^{-1}$$

H矩阵也是一个3X3的矩阵,但是每一组特征点都可以提供2个约束,所以只需要4对点就可以求解H。

对H进行分解有数值法和解析法,都可以得到4个解,通过深度验证和假设场景法向量可以排除解。

总结:

一般2D-2D都是同时估计基础矩阵和本质矩阵,选择重投影误差比较小的那个作为最终的估计

你可能感兴趣的:(特征点匹配)