码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-04-26 09:13:40      阅读:627      评论:0      收藏:0      [点我收藏+]

标签:一个   映射   inline   区别   影响   出现   坐标   运动   方法   

要回答的几个问题

  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之间的区别与联系

标签:一个   映射   inline   区别   影响   出现   坐标   运动   方法   

原文地址:https://www.cnblogs.com/guoben/p/12768000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!