参考吴博的ORB讲解,以及 这个网页:
https://blog.csdn.net/weixin_39373577/article/details/86030981
需要注意的一点是:orb代码中 虽然只有三个点,但是还是采用 特征向量的办法, 像吴博 讲解中说的。 而且,orb 代码中计算尺度的时候,使用的是非对称性的结果。
!!!!!!
sim3 求解结果中的 t 包含 s .
这取决于sim3的求解过程,因此 g2o 中sim3 类的定义中,t 也是包含s 的。
为啥呢?
假设:我们希望将KF1对齐到KF2, 因此,需要求解 R12 t12 S12。这三个变量是什么意思呢?
1) 我们想要的结果是:R12 t12代表 对齐之后的,KF12之间的se3关系。 因此 t12 是表示在 KF2系的尺度下的。
2) S12 表示 在 KF2 中的 点,经过这个尺度缩放后,可以和 KF1中的点尺度一样。简单表示为: P1 = S12*P2.
所以,基于以上两点,空间点P ”在KF2系的表示P2“ 与 “在KF1系的表示P1 ”之间有啥联系呢?
P1 = s12(R12*P2+t12);
分两部:1)先进行se3变换到 KF1_temp系 。 现在 KF1_temp系与KF1系已经重合了,只是差一个尺度 2)然后进行尺度缩放,变换到KF1系。
所以才会得到sim3解算过程中的公式: P1 = s12R12*P2+t.
t = s12*t12