Как понять файлы калибровки камеры KITTI?

Я работаю над набором данных KITTI.
Я загрузил набор данных объекта (левый и правый) и калибровочные матрицы камеры набора объектов.

Я хочу использовать информацию о стерео.
Но я не знаю, как получить Внутреннюю Матрицу и R|T Матрицу двух камер. И я не понимаю, что означают файлы калибровки.

Содержание файлов калибровки:

P0: 
7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 0.000000000000e+00 
0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 0.000000000000e+00 
0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P1: 
7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 -3.797842000000e+02 
0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 0.000000000000e+00 
0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P2: 
7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 4.575831000000e+01 
0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 -3.454157000000e-01 
0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 4.981016000000e-03
P3: 
7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 -3.341081000000e+02 
0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 2.330660000000e+00 
0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 3.201153000000e-03
R0_rect: 
9.999128000000e-01 1.009263000000e-02 -8.511932000000e-03 
-1.012729000000e-02 9.999406000000e-01 -4.037671000000e-03 
8.470675000000e-03 4.123522000000e-03 9.999556000000e-01
Tr_velo_to_cam: 
6.927964000000e-03 -9.999722000000e-01 -2.757829000000e-03 -2.457729000000e-02 
-1.162982000000e-03 2.749836000000e-03 -9.999955000000e-01 -6.127237000000e-02 
9.999753000000e-01 6.931141000000e-03 -1.143899000000e-03 -3.321029000000e-01
Tr_imu_to_velo: 
9.999976000000e-01 7.553071000000e-04 -2.035826000000e-03 -8.086759000000e-01 
-7.854027000000e-04 9.998898000000e-01 -1.482298000000e-02 3.195559000000e-01 
2.024406000000e-03 1.482454000000e-02 9.998881000000e-01 -7.997231000000e-01

1 ответ

От README,

Zip-архив калибровки датчика содержит файлы, хранящие матрицы в выровненном порядке, что означает, что первые значения соответствуют первой строке:

calib_cam_to_cam.txt: калибровка камеры от камеры


  • S_xx: размер изображения 1х2 хх до выпрямления
  • K_xx: 3х3 калибровочной матрицы камеры хх до выпрямления
  • D_xx: 1x5 вектор искажения камеры хх до выпрямления
  • R_xx: матрица вращения 3x3 камеры xx (внешняя)
  • T_xx: вектор трансляции 3x1 камеры xx (внешний)
  • S_rect_xx: 1x2 размер изображения xx после выпрямления
  • R_rect_xx: выпрямление вращения 3x3, чтобы сделать плоскости изображения копланарными
  • P_rect_xx: матрица проекции 3x4 после выпрямления

Примечание. При использовании этого набора данных вам, скорее всего, потребуется доступ только к P_rect_xx, поскольку эта матрица действительна для выпрямленных последовательностей изображений. поддерживается

См. https://medium.com/test-ttile/kitti-3d-object-detection-dataset-d78a762b5a4

Матрицы Px проецируют точку в ректифицированных координатах привязанной камеры на изображение camera_x. camera_0 координаты ссылка камеры. R0_rect является вращение выпрямляющего для справки координат (выпрямление делает изображения нескольких камер лежат на тот же план). Tr_velo_to_cam отображает точку в облаке точек координат ссылки координат.

Сделаю здесь 2 теста. Первый тест - проецировать трехмерные ограничивающие рамки из файла этикетки на изображение. Второй тест - спроецировать точку в координатах облака точек на изображение. Алгебра проста в следующем. Первое уравнение для проектирования коробки bouding 3D в ссылочной камере координате с camera_2 изображения. Второе уравнение проецирует координату велодина на изображение камеры_2.

y_image = P2 * R0_rect * R0_rot * x_ref_coord y_image = P2 * R0_rect * Tr_velo_to_cam * x_velo_coord

В приведенном выше примере R0_rot - это матрица вращения, отображающая координату объекта в координату ссылки ".

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