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

基础矩阵F和单应矩阵H的推导过程,区别分析

  • 参考博客
  • 1. 基础矩阵F
    • 1.1 Essential Matrix
    • 1.2 Fundamental Matrix
    • 1.3 两者区别
  • 2. 单应矩阵H
  • 3. 基础与单应矩阵区别
  • 4. 详细推导求解

参考博客

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

1. 基础矩阵F

1.1 Essential Matrix

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

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

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

自由度:E有五个自由度,所以最少用5对点求E,实际中经常使用8点法。

1.2 Fundamental Matrix

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

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

自由度:F自由度为7。

应用:可通过E恢复出相机运动的R,t。如果初始化遇到了纯旋转的情况,t=(0,0,0),理论矩阵F为0矩阵,受到噪声影响,由匹配点对推算F矩阵不为0,分解后的R,t受到噪声影响大。

1.3 两者区别

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

2. 单应矩阵H

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

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

自由度:H自由度为8,可通过4对匹配特征点算出(8点)。

应用:H不像对极约束,它需要场景的结构信息,它要求场景的点必须在同一个平面上,因此单应矩阵H也就能够对两图像上对应点的提供更多的约束,知道了某点在一幅图像的像点位置后,可以通过单应矩阵,求得其在另一幅图像中像点的确切位置。相机只有旋转而无平移的时候,两视图的对极约束不成立,基础矩阵F为零矩阵,这时候需要使用单应矩阵H,场景中的点都在同一个平面上,可以使用单应矩阵计算像点的匹配点。 相机的平移距离相对于场景的深度较小的时候,也可以使用单应矩阵H。

3. 基础与单应矩阵区别

  • 单应矩阵适用于特征点在同一平面上的运动估计场景, 而基础矩阵则适用于空间中的特征点运动估计,两者适用的场景不相同,但是两者都是表示两帧图像像素点的相对运动映射关系。
  • 单应矩阵在纯旋转情况下仍然适用,但是在纯旋转情况下,两视图的对极约束不成立,基础矩阵F为零矩阵,而由于噪声存在,基础矩阵一般不为0,其分解得到的 R , t R,t Rt有很大的误差。

4. 详细推导求解

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

你可能感兴趣的:(SLAM学习,计算机视觉)