如何从两个外部相机矩阵中导出相对平移和旋转?

How can I derive relative translation and rotation from two extrinsic camera matrices?

我有两组与视频序列相关的数据。一个包含使用一种算法生成的相对旋转和平移数据。另一个由与每一帧相关联的真实外在矩阵组成。

我想比较数据集以确定它们之间的差异。我的问题是,如何从两个外部相机矩阵推导出相对平移和旋转?

外部矩阵由旋转矩阵 3x3 和平移向量 3x1 组成。

所以,M 3x4,只是两个 [R t] 的串联。除非我误解了你的问题,否则旋转和平移是微不足道的。

如果你有 camera1 姿势 P1 = [R1|T1]camera2 姿势 P2 = [R2|T2] 那么 P1to2 = P2 * P1^-1.

直观地,想象一个简单的情况,其中两个相机的平移为零,camera1 X 轴旋转 +30 度,camera2 X 轴旋转 +60 度。

P1 = [R1|0] P2 = [R2|0]

所以它们都在 X 轴上旋转 +30 度不同:

P1to2 = P2 * P1^-1 = [R2|0] * [R1|0]^-1 = [R2|0] * [R1^1|0]

R2 * R1^1 = 60 - 30 on X = rotation of +30 degrees on X