3

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

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

[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 传感器设置中,我知道 Cam 2 从 Cam 0 偏移 0.06m,沿 X 轴负向偏移。 相机像素大小为 4.65um。但

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

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

4

1 回答 1

3

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

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

其中,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)

于 2020-02-24T10:36:22.133 回答