Как рассчитывалась калибровочная матрица Kitti?

Я работаю с другим набором данных (без 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 я знаю, что Cam 2 смещается от Cam 0 на 0,06 м отрицательно по оси X. Размер пикселя камеры составляет 4,65 мкм. Но

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

Итак, что означает последний столбец? А как рассчитать калибровочную матрицу прямо как в kitti.

1 ответ

Согласно файлу calib_cam_to_cam.txt(calib_time: 09 января 2012 14:00:15), представленному на веб-сайте Китти - http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d, приведенное выше указанная матрица предназначена для камеры 01(P_rect_01). Как упоминалось в документе " Видение встречает робототехнику": набор данных KITTI от Андреаса Гейгера, Филиппа Ленца, Кристофа Стиллера и Ракель Уртасун(Раздел 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 м, а базовая линия между кулачком 0 и кулачком 2, а также кулачком 1 и кулачком 3 составляет 0,06 м.

Теперь -fu*bx/fu = -386,1448/718,856 ~= -0,537165 ~= -0,54 (B3-2 - B2-0 + B1-3 = B1-0)

Другие вопросы по тегам