视觉SLAM十四讲学习5 位姿估计(1)ORB特征,对极几何与本质矩阵

视觉SLAM十四讲学习5 (1)ORB特征,对极几何与本质矩阵

前言

《十四讲》基础篇还剩下非线性优化,不过我在数值计算中已经把牛顿法、LM法这些记录过了,因此先跳过非线性优化,从位姿估计开始。

ORB特征

通过图像还原相机相邻位姿之间的变化,首先需要确定相邻图像上哪一对点是空间中的同一点,通常采用特征点匹配的方法,比如FAST、SIFT、SURF、ORB等。

特征点匹配包括特征点提取,描述子计算,特征匹配三个步骤。

目前,ORB(Oriented FAST and Rotated BRIEF)由于其提取速度快,匹配准确性较好的原因,是最常用的特征提取方法。ORB实际上是具有方向的FAST角点+旋转BRIEF描述子,具有一定的旋转不变性和尺度不变性(原始ORB并没有尺度不变性,OpenCV实现中加入了特征金字塔弥补了这个缺点)。大致效果如下图。
在这里插入图片描述
具体的ORB算法实现流程这里就不深入了。除了传统特征点法,目前也有使用深度特征点匹配方法做位姿估计的论文。

对极几何

通过ORB在相邻帧匹配到一对点后,接下来就是通过匹配点的图像坐标恢复相机位姿,即相对位姿估计,可以通过对极几何实现,如下图。

在这里插入图片描述
图中, O 1 , O 2 O_1,O_2 O1,O2是相机中心, P P P是匹配点在空间中的三维坐标,蓝色平面是成像面(将成像平面从相机中心后方放置到前方), p 1 , p 2 p_1,p_2 p1,p2 P P P在成像平面的像素坐标。

根据图中的几何关系进行推理。

O 1 , O 2 , P O_1,O_2,P O1,O2,P都在同一平面上,假设 P P P点在 O 1 O_1 O1的相机坐标为 P 1 P_1 P1,在 O 2 O_2 O2的相机坐标为 P 2 P_2 P2,相机从 O 1 O_1 O1运动到 O 2 O_2 O2,相对位姿变换记为 R , t R,t R,t,则有:
( O 1 O 2 → × O 2 P → ) ⋅ O 2 P → = 0 → ( O 1 O 2 → × O 2 P 2 → ) ⋅ O 2 P 2 → = 0 O 1 O 2 → = t O 1 P 1 → = P 1 = s 1 K − 1 p 1 O 2 P 2 → = P 2 = s 2 K − 1 p 2 = R P 1 + t t × ( R P 1 + t ) ⋅ P 2 = 0 → P 2 T t ∧ R P 1 = 0 P 2 T E P 1 = 0 , E = t ∧ R p 2 T F p 1 = 0 , F = K − T t ∧ R K − 1 (\overrightarrow {O_1O_2}\times \overrightarrow {O_2P})\cdot \overrightarrow {O_2P}=0 \to (\overrightarrow {O_1O_2}\times \overrightarrow {O_2P_2})\cdot \overrightarrow {O_2P_2}=0 \\ \quad \\ \overrightarrow {O_1O_2} = t \\ \overrightarrow {O_1P_1} = P_1=s_1K^{-1}p_1 \\ \overrightarrow {O_2P_2} = P_2 = s_2K^{-1}p_2=RP_1+t \\ \quad \\ t \times (RP_1+t) \cdot P_2 =0 \to P_2^Tt^\land RP_1=0 \\ \quad \\ P_2^TEP_1=0, E=t^\land R \\ p_2^TFp_1=0, F=K^{-T}t^\land RK^{-1} (O1O2 ×O2P )O2P =0(O1O2 ×O2P2 )O2P2 =0O1O2 =tO1P1 =P1=s1K1p1O2P2 =P2=s2K1p2=RP1+tt×(RP1+t)P2=0P2TtRP1=0P2TEP1=0,E=tRp2TFp1=0,F=KTtRK1
其中, s 1 , s 2 s_1,s_2 s1,s2在计算等式的过程中丢失,因此基于单目的位姿估计缺乏真实的尺度。矩阵 E E E称为本质矩阵, F F F称为基础矩阵。本质矩阵给出了下相机坐标系下,匹配点坐标与相对位姿的关系,基础矩阵给出了像素坐标系下,匹配点坐标与相对位姿的关系。

因此,求解位姿分为两步:①根据匹配点坐标求本质矩阵;②根据本质矩阵求位姿 R , t R,t R,t.

后记

下篇记录本质矩阵与位姿的计算过程,以及单应矩阵的概念与计算。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视觉SLAM十四》的第七章主要介绍了ORB特征的手写实现。ORB特征是一种基于FAST角点检测和BRIEF描述子的特征提取方法,它在计算效率和鲁棒性上表现出色,被广泛应用于视觉SLAM中。 第七章还介绍了ORB特征的主要步骤,包括角点检测、特征描述子计算和特征匹配。在角点检测中,通过FAST算法检测图像中的角点位置。然后,利用BRIEF描述子计算对应角点位置的特征描述子。最后,通过特征匹配算法将当前帧的ORB特征与地图中的ORB特征进行匹配,从而实现相机的位姿估计和地图构建。 除了手写ORB特征的实现,第七章还介绍了ORB-SLAM系统的整体框架和关键技术。该系统结合了特征点法和直接法,实现了在无GPS和IMU信息的情况下进行实时的视觉SLAM。通过利用ORB特征进行初始化、追踪和建图,ORB-SLAM系统在室内和室外环境下都取得了良好的效果。 总而言之,视觉SLAM的第七章《视觉SLAM十四》介绍了手写ORB特征的实现方法,并介绍了ORB-SLAM系统的整体框架和关键技术。这些内容对于理解和应用视觉SLAM具有重要意义。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [视觉SLAM十四——ch7](https://blog.csdn.net/weixin_58021155/article/details/123496372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [《视觉slam十四学习笔记——ch7实践部分 比较opencv库下的ORB特征的提取和手写ORB的区别](https://blog.csdn.net/weixin_70026476/article/details/127415318)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值