【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

1.前言

聊sim3之前需要聊聊单目视觉slam的尺度漂移问题:

单目尺度漂移问题
单目视觉里程计前端主要涉及以下内容:

  1. 单目初始化:选择满足条件的前后帧图像,进行特征点提取与匹配,借助对极几何求取本质矩阵E,将本质矩阵分解得到前后帧位姿的R、t分量,随后,对图像匹配上的特征点进行三角化,以恢复空间点。(ps:分解得到的t仅是满足极线约束的特解,t乘以任意缩放系数所得到的新值仍满足约束条件。)
  2. 初始化成功后,对新进来的每一帧图像仍进行特征点提取与匹配,其中,和前一帧图像匹配上的部分特征点已三角化成功,此时,可以利用运动模型+BA/IMU预积分+BA/PNP,解算新图像帧与上一阵的R,t关系,并利用R,t对剩余特征点进行三角化。

然而,在第二步解算的R,t始终存在误差,这造成利用三角化恢复的特征点空间位置不准确,对新来的每一帧图像均存在这一问题,误差通过图像传递并积累,最终造成一段时间后三角化出来的特征点和初始化时的尺度不一致,即造成尺度漂移问题。

2.相似变换 sim3

由于上述单目尺度漂移的问题,在单目视觉检测到闭环时,当前帧和闭环帧对应的空间点在各自相机坐标系下的坐标不仅存在旋转R、平移t关系,还存在缩放s的关系,这一对应关系称为相似变换(Similarity Transformation),简称sim3,sim3=【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

2.1 数学建模

给定匹配成功的两组三维点,分别记为{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}、{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记},需找到如下变换关系,以描述{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}到{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}相似变换关系:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
由于数据中不可避免存在噪声与误差,我们将上述任务转换为最小二乘求解问题,即寻找合适的尺度因子、旋转和平移,使得它在所有数据上的误差最小
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

在正式开始求解时,需先定义一些相关变量:
两个三维点集合的质心定义如下:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
每个{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}、{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}的去中心化坐标【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
其中:【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记满足:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

2.2 求解平移t

对(2)中的误差方程进行如下变换
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
简记:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
由等式(5)可知,(6)式中间项:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
故误差方程(6)进一步化简为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
(8)式仅有第二项与待求的平移t有关,易当平方项【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记=0时,误差方程取得最小值,即平移最优解【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
即,若我们已知旋转R与缩放系数s,即可求取平移最优解【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

2.3求解缩放因子

误差方程(8)可进一步简化为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
由于向量模长不受旋转的影响,故【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记,(10)式可进一步表示为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
式(11)是关于s的一元二次方程,其极小值点为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
注意上述s为的方向为{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}→{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记},然而按照此方法计算的
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
即按照上述求解的缩放因子不具备对称性,因此对式(10)重新简化为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
令第一项为0,可得满足对称性的缩放因子
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
此时,误差方程仅剩第二项,令【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记最大,即可使误差方程最小。

2.4 求解旋转R

由于旋转矩阵受制于矩阵正交性的约束,而四元数代替旋转矩阵R仅需保证模长为1的约束,故使用四元数代替矩阵进行旋转的求解。

  • 四元数的旋转计算:
    空间三维点 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记对应的四元数表示为 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
    旋转用一个单位四元数 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 来表示,则 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 旋转后的三维点用四元数表示为:
    【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
    四元数 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 的虚部即为旋转后的坐标。其中 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 表示取 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 的共轭。
  • 四元数的性质1
    三个四元数满足如下条件。直接相乘的形式,表示四元数乘法,中间的 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 表示向量点乘。
    【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
  • 四元数的性质2
    假设四元数 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 ,则有
    【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
    其中 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 都是 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 的对称矩阵。

下面进入旋转矩阵R的求解,求误差方程(13)的最小值等价于求下式的最大值:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
其中:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

我们定义
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
其中
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

式(14)等价于:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
依据拉格朗日法:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记计算偏导得:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

由(17)可知 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记是矩阵N特征值为【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记的特征向量
将(17)代入(15)式可得:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
因此,当【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记取最大值时,【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记取得最大值,此时x对应为【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记最大特征值对应的特征向量;
对N进行特征值分解,求得最大特征值对应的特征向量就是待求的用四元数表示的{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}到{ 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记}的旋转 。

3.总结

sim3计算步骤:
1、先计算旋转 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
具体来说,先构建 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 矩阵
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
然后得到矩阵 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 ,对 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 进行特征值分解,求得最大特征值对应的特征向量就是待求的用四元数表示的旋 转 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 。注意这里旋转的方向是 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
2、根据上面计算的旋转 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 来计算尺度 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
具体来说,可以使用以下两种方法来计算,第一种是具有对称性的尺度(推荐)
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
第二种是不具有对称性的尺度 (ORBSLAM使用)
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
3、根据旋转 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 和尺度 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记 计算平移 【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

Sim3的逆变换矩阵
假设Sim3的变换矩阵为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记
那么,它的逆变换矩阵为:
【ORB-SLAM3】sim3求解-论文Closed-form solution of absolute orientation using unit quaternions 的阅读笔记

ps:
本文部分内容参考《计算机视觉life》的ORB-SLAM2课程

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年5月30日 上午10:36
下一篇 2022年5月30日 上午10:38

相关推荐