视觉SLAM笔记--第5篇: 基础矩阵F和单应矩阵H的推导过程,区别分析

参考博客

参考博客:https://blog.****.net/try_again_later/article/details/88655563

1. 基础矩阵F

1.1 Essential Matrix

已知:坐标系o, oo^{'},世界坐标点P在o下相机坐标x,在oo^{'}下相机坐标xx^{'}
求解:坐标系o到oo^{'}的旋转矩阵R,和平移矩阵t。
坐标系的刚体变换:
x=R(xt)x^{'}=R(x-t) 根据共平面:
(xt)T(t×x)=0(x-t)^{T}(t \times{x})=0说明:由于txt与x共平面,且外积t×xt\times {x}的方向同时垂直于t,xt, x,即垂直于平面oPooPo^{'},又(xt)(x-t)向量在平面oPooPo^{'}内,因此(xt)T(t×x)=0(x-t)^{T}(t \times{x})=0成立。

结合上面两个公式,可以得到:
(R1x)T([t]×x)=0(R^{-1}x^{'})^{T}([t]_{\times}x)=0转换之后得到:
xTR[t]×x=0x^{'T}R[t]_{\times}x=0E=R[t]×E=R[t]_{\times} 得到:
xTEx=0x^{'T}Ex=0其中x,xx,x^{'}为P在两个相机坐标系下的坐标。

  • E=E= t ^ R 为3*3的矩阵,奇异值为(u,u,0)T(u,u,0)^{T} 的形式, 为本质矩阵的内在性质。
  • 性质:理论上综合旋转、平移共有6个*度,因尺度等价,E有5个*度。
  • 求解:一般使用8点法,通过SVD分解,恢复出R,t 。

1.2 Fundamental Matrix

利用前面的公式,将相机坐标转换为像素坐标,E便可以转换为F,需要知道两个相机的内参K,KK, K^{'}.

  • 基本矩阵F和E只差了一个相机内参 F=KTEK1F=K^{-T}EK^{-1} ,可以直接带入求解。
  • 基础矩阵F表明一个图像点xx 到另一图像上对极线L上的映射。

1.3 两者区别

本质矩阵则是基本矩阵的一种特殊情况,是在归一化图像坐标下的基本矩阵,可以理解为本质矩阵对应的坐标位于相机坐标系,基础矩阵对应的坐标位于图像平面坐标系。

2. 单应矩阵H

求解公式:
x=(R+tnTd)x=Hxx^{'}=(R+\frac{tn^{T}}{d})x=Hx由公式可知,当坐标系到固定平面的深度dd远大于平移矩阵tt时,相机为纯旋转,即相机在纯旋转后仍然可以通过单应矩阵H分解出RtR,t

  • 单应矩阵的定义与RtR、t、平面参数相关,单应矩阵为3*3的矩阵,*度为8,求解的思路和EFE、F相似。
  • 单应矩阵表明两个点之间变换H, x=Hxx^{'}=Hx
  • 求解:可用一组不共线的4个匹配点来计算矩阵H。

3. 基础与单应矩阵区别

  • 单应矩阵适用于特征点在同一平面上的运动估计场景, 而基础矩阵则适用于空间中的特征点运动估计,两者适用的场景不相同,但是两者都是表示两帧图像像素点的相对运动映射关系。
  • 单应矩阵在纯旋转情况下仍然适用,但是在纯旋转情况下,由基础矩阵恢复分解得到的RtR,t有很大的误差。

4. 详细推导求解

视觉SLAM笔记--第5篇: 基础矩阵F和单应矩阵H的推导过程,区别分析
视觉SLAM笔记--第5篇: 基础矩阵F和单应矩阵H的推导过程,区别分析