Как мы можем подтвердить, что внутренняя матрица верна?

Я выполнил калибровку камеры, используя маркеры Aruco. Поскольку внутренняя матрица K = [fx 0 cx; 0 fy cy; 0 0 1] и где fx = image_width/2 and fy = image_height/2, Я выполнил калибровку дважды, и результаты:

СЛУЧАЙ 1

camera_matrix: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 1.7837087835808685e+004, 0., 9.4648597205501767e+002, 0.,
1.7846680517567835e+004, 6.2655678552312384e+002, 0., 0., 1. ]
distortion_coefficients: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [ 1.3214125616841757e-001, 1.3720591379476604e+001,
4.1379706976846960e-003, 3.2630160993931338e-002,
7.2446581087476508e-002 ]

ДЕЛО 2

camera_matrix: !!opencv-matrix
rows: 3
cols: 3
dt: d
data: [ 3.9925887362481939e+004, 0., 9.6015637557091463e+002, 0.,
3.5268399261164773e+003, 5.9886507612381956e+002, 0., 0., 1. ]
distortion_coefficients: !!opencv-matrix
rows: 1
cols: 5
dt: d
data: [ 4.4338539084399781e-001, 4.9217843346948866e+000,
5.8004377137432547e-002, 1.1762688789809046e-004,
-5.4097967557812456e+002 ]

Разрешение изображения составляет 1920 * 1200, поэтому cx а также cy должно быть 960 и 600.
Во втором случае cx а также cy как и ожидалось; ошибка перепроецирования большая. В другом случае cx а также cy не совпадают, но ошибка перепроецирования довольно низкая (менее 1).

Так что теперь, какие результаты можно считать лучшими и как можно fx а также fy быть определенным в целом?

0

Решение

Вы правы, что cx и cy должны быть близки к 960 и 600. С этой точки зрения случай 2 кажется несколько более вероятным, но случай 1, безусловно, вероятен с центральной точкой (946,626).

Что более важно для поднятия бровей, так это полученные параметры фокусного расстояния. Ни (17837,17846), ни (39925,3526) не представляется правдоподобным для пары фокусных расстояний. Как правило, параметр fx должен соответствовать ширине пикселя (в данном случае 1920) с точностью до коэффициента 2x (например, iPhone 5S имеет fx ~ = 0,8 * pixelWidth). И fy должно соответствовать fx с коэффициентом 1,2x или около того. Для случая 1 fx отклоняется от ширины в 10 раз, а для случая 2 fx и fy не совпадают в 10 раз.

Я рекомендую попробовать несколько наборов инструментов для калибровки и найти консенсус между любыми двумя из них (например, попросить нескольких механиков посмотреть на ваш автомобиль). рекомендую Набор инструментов для калибровки Жан-Ива Буге, который был предшественником подхода OpenCV.

0

Другие решения

Если у вас все еще есть доступ к камере, я бы сказал, попробуйте сделать еще несколько снимков и повторите процедуру калибровки несколько раз.

Как упоминалось в ответе @willem, используя Jean-Yves ‘Toolbox Позволит вам визуализировать угол обнаружения, 3d расположение досок и поможет вам выбросить шумные изображения. Но Jean-Yves ‘Toolbox работает только на шахматных досках, и нужно вручную вводить ROI, который имеет квадраты.

Если вы чувствуете, что плата aruco не дает высокой точности, вы можете попробовать Доска Charuco тоже в opencv.

Я бы сказал, что фокусное расстояние в мм сложно соотнести с фокусным расстоянием в пикселях, потому что для этого вам понадобится размер тепловизора камеры. Обычно это недоступно.

0

По вопросам рекламы [email protected]