6D是指6个自由度,代表了3个自由度的位置(也叫平移(Translation)),以及3个自由度的空间旋转。那么具体是如何变换的呢?
如果了解相机的内外参,就可以得到下面的表示:,其中代表由世界系到相机系的旋转,代表由世界系到相机系的平移。
而物体的6D位姿,是指相机系下物体的,也即将物体本身的坐标系当成世界系,变换到相机系的,则可以得到下面的表示:,其中代表由物体的世界系到相机系的旋转,代表由物体的世界系到相机系的平移。
具体一个例子,数据来自LineMod数据集,
物体本身的坐标系,当成世界系,其坐标值为:
相机坐标系,此时物体的坐标为:
基于给定的GT的物体6D位姿:
cam_R_m2c: [0.09630630, 0.99404401, 0.05100790, 0.57332098, -0.01350810, -0.81922001, -0.81365103, 0.10814000, -0.57120699],
cam_t_m2c: [-105.35775150, -117.52119142, 1014.87701320],
使用,将物体变换到相机系下如下图:
此时可以看到,根据物体的位姿和将物体由本身的世界系变换到了相机系下,叠加在一起的效果如下:
此时,也可以结合相机的内参K, cam_K: [572.4114, 0.0, 325.2611, 0.0, 573.57043, 242.04899, 0.0, 0.0, 1.0],将物体投影到2d,如下图,可以看到也是正确的。
因此,物体的位姿是和物体本身的坐标系相关的,同一个相机系下,不同物体的位姿是不一样的;如果保持物体和相机的相对位置不变,则物体的位姿是不变的;如果物体不动,相机系发生了移动,则新的物体位姿需要在原来的基础上再叠加相机系的相对移动位姿和。