6D是指6个自由度,代表了3个自由度的位置(也叫平移(Translation)),以及3个自由度的空间旋转。那么具体是如何变换的呢?

如果了解相机的内外参,就可以得到下面的表示:Tc=RcwTw+tcwT_c = R_{cw} * T_w + t_{cw},其中RcwR_{cw}代表由世界系到相机系的旋转,tcwt_{cw}代表由世界系到相机系的平移。

而物体的6D位姿,是指相机系下物体的RtRt,也即将物体本身的坐标系当成世界系,变换到相机系的RtRt,则可以得到下面的表示:Tc=RcmTm+tcmT_c = R_{cm} * T_m + t_{cm},其中RcmR_{cm}代表由物体的世界系到相机系的旋转,tcmt_{cm}代表由物体的世界系到相机系的平移。

具体一个例子,数据来自LineMod数据集,
物体本身的坐标系,当成世界系,其坐标值为TmT_m
物体6D位姿的含义
相机坐标系,此时物体的坐标为TcT_c
物体6D位姿的含义
基于给定的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],
使用Tc=RcmTm+tcmT_c = R_{cm} * T_m + t_{cm},将物体变换到相机系下如下图:
物体6D位姿的含义
此时可以看到,根据物体的位姿RcmR_cmtcmt_cm将物体由本身的世界系变换到了相机系下,叠加在一起的效果如下:
物体6D位姿的含义
此时,也可以结合相机的内参K, cam_K: [572.4114, 0.0, 325.2611, 0.0, 573.57043, 242.04899, 0.0, 0.0, 1.0],将物体投影到2d,如下图,可以看到也是正确的。
物体6D位姿的含义

因此,物体的位姿是和物体本身的坐标系相关的,同一个相机系下,不同物体的位姿是不一样的;如果保持物体和相机的相对位置不变,则物体的位姿是不变的;如果物体不动,相机系发生了移动,则新的物体位姿需要在原来的基础上再叠加相机系的相对移动位姿R△Rt△t

相关文章: