Kitti 校准矩阵是如何计算的?

How Kitti calibration matrix was calculated?

我使用其他数据集(没有 kitti),但我需要将其转换为 kitti 数据集格式。我不明白如何在 kitti 中计算校准矩阵。示例:

相机 2 (P2) 校准矩阵来自 calib.txt:

[718.856     0     607.1928  -386.1448]
[   0     718.856  185.2157      0    ]
[   0        0        1          0    ]

我知道,那个

[718.856     0     607.1928]
[   0     718.856  185.2157]
[   0        0        1    ]

-- 是 K - 相机固有的。但是最后一列是什么意思?

我建议,它是第 0 个相机的偏移量,以像素为单位。 从 kitti sensor setup,我知道 Cam 2 从 Cam 0 沿 X 轴负偏移 0.06m。 Camera像素大小为4.65um。但是

0.06[m] / (4.65 * 10^(-6)[m]) != 386.1448 [pixels]

最后一列是什么意思?以及如何像kitti一样计算校准矩阵。

根据 Kitti 网站上提供的文件 calib_cam_to_cam.txt(calib_time: 09-Jan-2012 14:00:15) - http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d,上述矩阵用于 相机 01(P_rect_01)。正如论文Vision meets Robotics: The KITTI Dataset by Andreas Geiger, Philip Lenz, Christoph Stiller and Raquel Urtasun(第 IV B 节 - 相机校准),第 i 个相机的投影矩阵-

P(i)rect = [[fu 0  cx  -fu*bx],
            [0  fv  cy  0],
            [0   0   1  0]]

其中,bx 是以米为单位的基线 w.r.t。参考相机 0。 Kitti 网站上显示的传感器设置 - http://www.cvlibs.net/datasets/kitti/setup.php 表示凸轮 3 和凸轮 2 之间的基线为 0.54m,凸轮 0 和凸轮 2 以及凸轮 1 和凸轮 3 之间的基线为 0.06m。

现在,-fu*bx/fu = -386.1448/718.856 ~= -0.537165 ~= -0.54 (B3-2 - B 2-0 + B1-3 = B1-0)