一、sim3的应用场景
1.1 slam中sim3的应用
sim3简单来说,就是使用3对匹配点来进行相似变换(similarity transformation)的求解,进而解出两个坐标系之间的旋转矩阵、平移向量和尺度。ORB-SLAM2中使用的sim3求解方法来自 Horn 1987, Closed-form solution of absolute orientation using unit quaternions 这篇论文。
ORB-SLAM2系统在LoopClosing线程中,当检测到闭环候选帧的时候,就需要对当前关键帧和对应的闭环候选帧之间计算其变换关系。意思就是说,这些关键帧本来应该是连续的,但由于累计误差的存在,现在不连续了,需求求解出他们的偏差出来,需要计算出来他们之间的旋转和平移,然后使他们连续。
这时需要用当前关键帧和其对应的闭环候选帧进行sim3求解,这里的sim3求解是对当前关键帧和闭环候选帧之间匹配的MapPoint进行sim3求解。
通过sim3变换解出当前关键帧和闭环候选帧的匹配MapPoint之间的旋转矩阵R、平移向量t、尺度变换s,也就得到了当前关键帧到闭环关键帧之间的sim3变换 gScm。
使用这个sim3变换gScm乘上闭环关键帧的sim3位姿 gSmw,
mg2oScw=gScm*gSmw
的乘积mg2oScw就是当前关键帧的sim3位姿,之后在闭环校正中就可