SLAM面试题,单应矩阵基础矩阵F本质矩阵E之间的区别与联系

Posted guoben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SLAM面试题,单应矩阵基础矩阵F本质矩阵E之间的区别与联系相关的知识,希望对你有一定的参考价值。

要回答的几个问题

  1. 单应矩阵 H 和基础矩阵 F 的区别(至少两个方面),推导两者的求解过程及改进求解的方法
  2. 对于单目相机,F和H矩阵有何不同,E和F矩阵有何不同,只旋转不平移能不能求F、能不能求H?
  3. 本质矩阵E,基础矩阵F,单应矩阵H 自由度分别是多少?为什么?
    答:矩阵的自由度是指:想要解矩阵中的未知参数,需要通过列几个线性方程组?对于nn的矩阵,如果该矩阵存在k个约束,那么其自由度为nn-k。
    其中,基础矩阵7个自由度,本质矩阵5个自由度,单应性矩阵8个自由度。

本质矩阵E

自由度:5个(6-1=5)尺度等价性
求解:相机的内参K在slam中是已知的,E有五个自由度,所以最少用5对点求E,实际中经常使用8点法;

基础矩阵F (Fundamental Matrix)

定义(K^{-T}*E*K^{-1}),其中E为本质矩阵,E=t^*R
意义:F描述的实际是一种点和直线的映射关系,而不是一种点对点的约束关系,并不能给出另一个点的确切位置
应用:可通过E恢复出相机运动的R,t。如果初始化遇到了纯旋转的情况,t=(0,0,0),理论矩阵F为0矩阵,受到噪声影响,由匹配点对推算F矩阵不为0,分解后的R,t受到噪声影响大。
特征

  1. F是一个3*3且自由度为7的矩阵
  2. kF为基础矩阵,相差一个尺度自由度
  3. F矩阵的秩为2
  4. (F=inv(K)‘*E*inv(K))(F =K^{-T}*E*K^{-1})

H为单应矩阵 (Homography Matrix)

自由度:8个
求解:H 矩阵可通过4对匹配特征点算出(8点)。
意义:描述了两个平面的映射关系。准确的来说,H矩阵直接描述了图像坐标p1和p2之间的变换,p2等价于H*p1。(H=K(R-t*n^T/d)K^-1);也可以说是,单应矩阵反应的是世界坐标系下平面上的点之间的对应关系,就是现实平面上的点到相机平面上的点的射影变换矩阵,具有8个自由度,就是说单应矩阵就是射影变换。相反,本质矩阵或基础矩阵则没有这个限制。
应用:H不像对极约束,它需要场景的结构信息,它要求场景的点必须在同一个平面上,因此单应矩阵H也就能够对两图像上对应点的提供更多的约束,知道了某点在一幅图像的像点位置后,可以通过单应矩阵,求得其在另一幅图像中像点的确切位置。相机只有旋转而无平移的时候,两视图的对极约束不成立,基础矩阵F为零矩阵,这时候需要使用单应矩阵H,场景中的点都在同一个平面上,可以使用单应矩阵计算像点的匹配点。 相机的平移距离相对于场景的深度较小的时候,也可以使用单应矩阵H。

注意事项

  1. 特征点共面的时候,或者相机发生纯旋转的时候,基础矩阵的自由度下降,会出现退化现象。为了避免退化,会同时估计基础矩阵F和单应矩阵H,选择重投影误差较小的那个作为最终的运动估计矩阵。
  2. 遇到了纯旋转的情况,t=(0,0,0),H不为零,直接等于(KRK^{-1}),可以计算出旋转R。x`

总结

  • 基础矩阵F和单应矩阵H的区别为所求相机获取图像状态不同而选择的不同矩阵。
  • 本质矩阵E和基础矩阵F之间相差相机内参K的运算。
  • 只旋转不平移求出F并分解的R,t与真实差距大不准确,能求H并分解得R。

以上是关于SLAM面试题,单应矩阵基础矩阵F本质矩阵E之间的区别与联系的主要内容,如果未能解决你的问题,请参考以下文章

立体视觉入门指南:关键矩阵(本质矩阵,基础矩阵,单应矩阵)

立体视觉入门指南:关键矩阵(本质矩阵,基础矩阵,单应矩阵)

orbslam里为啥要分单应矩阵和本质矩阵来分别恢复R和T

单应矩阵是啥?怎么用呀

从零开始一起学习SLAM | 神奇的单应矩阵

特征提取与匹配基础矩阵单应矩阵极限约束