Формат параметров в файле калибровки KITTI - PullRequest
0 голосов
/ 07 мая 2018

Я получил доступ к файлам калибровки из части одометрии KITTI , где содержимое одного файла калибровки выглядит следующим образом:

P0: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 0.000000000000e+00 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P1: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 -3.861448000000e+02 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P2: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 4.538225000000e+01 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 -1.130887000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 3.779761000000e-03
P3: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 -3.372877000000e+02 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 2.369057000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 4.915215000000e-03
Tr: 4.276802385584e-04 -9.999672484946e-01 -8.084491683471e-03 -1.198459927713e-02 -7.210626507497e-03 8.081198471645e-03 -9.999413164504e-01 -5.403984729748e-02 9.999738645903e-01 4.859485810390e-04 -7.206933692422e-03 -2.921968648686e-01

Я могу получить, что P0, P1 представляют монохромную камеру и P2, P3 цветную камеру. Насколько я понимаю, общая форма камеры является

fx 0  cx
0  fy cy
0  0  1 .

Таким образом, я не могу понять значение оставшихся трех параметров (я полагаю, использовался для устранения искажений) в каждой строке и последней строке после метки Tr.

Подобный вопрос можно найти в этого поста , но ответы на него до сих пор мне неочевидны. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 07 мая 2018

В этих файлах P1, P0 и т. Д. Не являются внутренними характеристиками камеры, а представляют собой матрицы проекций, определяемые чем-то вроде

P1=calibration_matrix * [R_1 | T_1]  

, что означает, что они имеют размер 3*4. Я не совсем уверен, является ли соответствующее определение приведенным выше или вам придется использовать (ну, это эквивалентное определение, более или менее ...)

P1=calibration_matrix*[R_1.transpose() | -R_1.transpose()*T_1] 

но я думаю, что это легко проверить, просто прочитав / отобразив данные.

Что касается Tr, это объединение всех положений камеры. У вас есть четыре камеры P0, ..., P3, а Tr имеет 12 элементов, поэтому первые три - это перевод P0, следующие три - это перевод P1 и так далее. В чем я не уверен, так это в том, выражается ли каждый из них как T_i или -R_i.transpose()*T_i. Я думаю, что самый безопасный способ - попытаться проверить это, поиграв с данными.

Что касается четырех камер P0, ...,P3, то их paper :

Здесь, я ∈ { 0 , 1 , 2 , 3 } индекс камеры, где 0 представляет собой левая шкала серого, 1 правильная шкала серого, 2 левый цвет и 3 правильная цветная камера.

Я думаю, это также объясняет, почему их матрицы проекций близки друг к другу.

...