Формат параметров в файле калибровки KITTI

Я получил доступ к файлам калибровки из одометрии детали 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 ответ

В этих файлах 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Процитирую их статью:

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

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

Это базовые линии в метрах WRT эталонной камеры 0.

В этом посте есть более подробная информация: как рассчитывалась калибровочная матрица Kitti?

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