咨询两帧相机图像相对位姿变换:计算公式及正反变换差异
相机两帧相对位姿计算指南
前提说明
相机的3×4位姿矩阵[R | t]中,R是3×3正交旋转矩阵(表示相机相对于世界坐标系的朝向),t是3×1平移向量(表示相机相对于世界坐标系的位置)。位姿的核心作用是实现坐标转换:世界坐标系下的点P_w,转换到相机坐标系下为P_c = R·P_w + t。
帧1到帧2的相对位姿推导
设帧1位姿为T₁ = [R₁ | t₁],帧2位姿为T₂ = [R₂ | t₂]。我们需要求从帧1到帧2的相对位姿T₁→₂,它满足:帧2的世界位姿 = 相对位姿 × 帧1的世界位姿(对齐齐次变换的逻辑,需将3×4矩阵补为4×4齐次矩阵[[R, t], [0 0 0 1]]进行运算)。
拆解后得到:
- 旋转分量:
R₁→₂ = R₂·R₁ᵀ(旋转矩阵的逆等于其转置,这是正交矩阵的特性) - 平移分量:
t₁→₂ = t₂ - R₂·R₁ᵀ·t₁
最终相对位姿矩阵为T₁→₂ = [R₁→₂ | t₁→₂]
帧2到帧1的相对位姿推导
反过来,**从帧2到帧1的相对位姿T₂→₁**满足:帧1的世界位姿 = 相对位姿 × 帧2的世界位姿,计算得:
- 旋转分量:
R₂→₁ = R₁·R₂ᵀ = R₁→₂ᵀ(即R₁→₂的转置/逆) - 平移分量:
t₂→₁ = t₁ - R₁·R₂ᵀ·t₂ = -R₁→₂ᵀ·t₁→₂
两者的差异
帧1→帧2和帧2→帧1的相对位姿互为逆变换,具体差异体现在:
- 旋转部分:互为转置(因为旋转矩阵是正交矩阵,逆等于转置),对应旋转方向完全相反
- 平移部分:帧2→帧1的平移向量是帧1→帧2的平移向量经过反向旋转后取反,对应平移的方向和空间指向都发生了反转
举个直观例子:如果帧2相对于帧1沿x轴平移了2单位,那么帧1相对于帧2就是沿x轴平移-2单位;如果帧2相对于帧1绕z轴旋转90度,那么帧1相对于帧2就是绕z轴旋转-90度,同时平移向量也要做对应的反向旋转调整。
内容的提问来源于stack exchange,提问作者helloword
相关产品推荐
相关产品推荐

