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,如下圖,可以看到也是正確的。
因此,物體的位姿是和物體本身的座標系相關的,同一個相機系下,不同物體的位姿是不一樣的;如果保持物體和相機的相對位置不變,則物體的位姿是不變的;如果物體不動,相機系發生了移動,則新的物體位姿需要在原來的基礎上再疊加相機系的相對移動位姿和。