2016-12-22 3 views
0

Я выполнил калибровку камеры с помощью маркеров 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 - несоответствие на 10x.

Я рекомендую попробовать несколько наборов инструментов для калибровки и искать консенсус между любыми двумя из них (например, попросить нескольких механиков взглянуть на ваш автомобиль). Я рекомендую Jean-Yves Bouguet's calibration toolbox, который был предшественником подхода OpenCV.

+0

Спасибо за информацию. Но хотите, чтобы трек был маркером aruco, и поэтому я использую калибровку aruco. – Reddy2810

+0

Я использую фокусный объектив, который работает на более длительное расстояние, а фокусное расстояние около 35 мм. – Reddy2810

0

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

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

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

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

+0

Спасибо за информацию. Обнаруженная плата идеальна, и ошибка повторного проецирования составляет менее 0,2 пикселя, что является показателем хорошей калибровки. Я даже выполнил многократную калибровку, но я не получил fx или fy в терминах 2x. – Reddy2810

+0

Если вы используете opencv 'calibrateCamera (..)' function ([здесь] (http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#calibratecamera), есть флаг для использования начальное предположение для внутренней матрицы, 'CV_CALIB_USE_INTRINSIC_GUESS'.Это может помочь вам, если у вас есть представление о том, чего вы ожидаете. По крайней мере, вы можете попробовать несколько начальных значений. Я не сталкивался с правилом 2x. Значит, я об этом мало знаю. –

+0

Спасибо. Калибровка камеры, которая не имеет эффекта рыбьего глаза, приведет к большему искажению? или улучшить изображение? – Reddy2810