slchen
泡芙6级
泡芙6级
  • UID113
  • 粉丝1
  • 关注0
  • 发帖数25
  • 社区居民
  • 忠实会员
阅读:1565回复:3

相似变换sim中尺度的疑问

楼主#
更多 发布于:2019-03-31 21:33
为什么相似变换sim的尺度因子s乘在R上,而不是t?


按照我的理解单目之所以丢失尺度是因为没有像双目一样固定的基线,而在sim中t已相当于基线,为什么尺度因子s没有和t相乘呢?

最新喜欢:

happybaolianghappyb...
slchen
泡芙6级
泡芙6级
  • UID113
  • 粉丝1
  • 关注0
  • 发帖数25
  • 社区居民
  • 忠实会员
沙发#
发布于:2019-04-07 15:53
wds910
泡芙1级
泡芙1级
  • UID8098
  • 粉丝0
  • 关注0
  • 发帖数1
板凳#
发布于:2020-05-18 21:02
ORBSLAM相似变换用的是Sim3,这个数据类定义在Thirdparty/g2o/g2o/types/sim3.h中,这个类重载了乘法,代码如下:

Sim3 operator *(const Sim3& other) const {
      Sim3 ret;
      ret.r = r*other.r;
      ret.t=s*(r*other.t)+t;
      ret.s=s*other.s;
      return ret;
    }
对于三个Sim3变量A,S,B,若A=S*B则展开为。

A.r = S.r * B.r

A.t = S.s * (S.r * B.t)+S.t

A.s = S.s * B.s



对于刚性变换,若A=S*B,则:

A.r = S.r * B.r

A.t = (S.r * B.t)+S.t

对于,R与t两种变换仅差了一个尺度s。因此,如果A与B用SE3表示,那么相似变换可以认为是在S.r=S.s*S.r条件下的下的刚性变换。
slchen
泡芙6级
泡芙6级
  • UID113
  • 粉丝1
  • 关注0
  • 发帖数25
  • 社区居民
  • 忠实会员
地板#
发布于:2020-10-06 09:20
wds910:ORBSLAM相似变换用的是Sim3,这个数据类定义在Thirdparty/g2o/g2o/types/sim3.h中,这个类重载了乘法,代码如下:

Sim3 operator *(const Sim3& other) const {
 ...
回到原帖
游客