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

For*_*ell 7 image-processing calibration kitti

我使用其他数据集(没有 kitti),但我需要将其转换为 kitti 数据集格式。我无法理解 kitti 中的校准矩阵是如何计算的。例子:

calib.txt 中的相机 2 (P2) 校准矩阵:

[718.856     0     607.1928  -386.1448]
[   0     718.856  185.2157      0    ]
[   0        0        1          0    ]
Run Code Online (Sandbox Code Playgroud)

我知道

[718.856     0     607.1928]
[   0     718.856  185.2157]
[   0        0        1    ]
Run Code Online (Sandbox Code Playgroud)

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

我建议,它是与第 0 个摄像机的偏移,以像素为单位测量。从kitti传感器设置中,我知道Cam 2相对于Cam 0在X轴上负偏移0.06m。 相机像素尺寸为4.65um。但

0.06[m] / (4.65 * 10^(-6)[m]) != 386.1448 [pixels]
Run Code Online (Sandbox Code Playgroud)

那么最后一栏是什么意思呢?以及如何计算校准矩阵,就像在 kitti 中一样。

小智 5

根据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,上述上述矩阵适用于Camera 01(P_rect_01)正如Andreas Geiger、Philip Lenz、Christoph Stiller 和 Raquel Urtasun 的论文《视觉遇见机器人:KITTI 数据集》(第 IV B 节 - 相机校准)中提到的,第 i 个相机的投影矩阵 -

P(i)rect = [[fu 0  cx  -fu*bx],
            [0  fv  cy  0],
            [0   0   1  0]]
Run Code Online (Sandbox Code Playgroud)

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

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