Калибровочные основы подозрительного взгляда

Калибровка фотоаппарата является процессом вычисления внешних и внутренних параметров камеры. Если вы калибруете камеру, можно использовать данные изображения, чтобы восстановить 3-D информацию с 2D изображений. Можно также не исказить изображения, взятые fisheye-камерой.

Fisheye-камеры используются в одометрии и решать задачи одновременной локализации и отображения (SLAM) визуально. Другие приложения включают, системы наблюдения, GoPro, виртуальная реальность (VR), чтобы получить 360 полей зрения степени (fov) и сшивание алгоритмов. Эти камеры используют комплексную серию линз, чтобы увеличить поле зрения камеры, позволяя ему получить широкие панорамные или полусферические изображения. Однако линзы достигают этого чрезвычайно широкоугольного представления путем искажения линий перспективы в изображениях

Из-за экстремального искажения линза подозрительного взгляда производит, модель крошечного отверстия не может смоделировать fisheye-камеру.

Модель fisheye-камеры

Калибровочный алгоритм Computer Vision Toolbox™ использует модель fisheye-камеры, предложенную Scaramuzza[1]. Можно использовать эту модель с камерами до поля зрения (FOV) 150 градусов. Модель использует всенаправленную модель камеры. Процесс обрабатывает систему обработки изображений как компактную систему. Для того, чтобы связать 3-D мировую точку на 2D изображении, необходимо получить значение внешних параметров камеры и внутренние параметры. Мировые точки преобразовываются к координатам камеры с помощью параметров значений внешних параметров. Координаты камеры сопоставлены в плоскость изображения с помощью параметров внутренних параметров.

Внешние параметры

Внешние параметры состоят из вращения, R, и перевода, t. Источник системы координат камеры в ее оптическом центре и ее x - и y - ось задает плоскость изображения.

Преобразование от мировых точек до точек камеры:

Внутренние параметры

Для модели fisheye-камеры внутренние параметры включают коэффициенты отображения полинома функции проекции. Коэффициенты выравнивания связаны с выравниванием датчика и преобразованием от плоскости датчика до пиксельного местоположения в плоскости изображения камеры.

Следующее уравнение сопоставляет точку изображений в свой соответствующий 3-D вектор.

  • идеальные проекции изображений реальных точек.

  • представляет скалярный фактор.

  • полином coefficents описанный моделью Scaramuzza, где.

  • функция (u, v) и зависит только от расстояния точки от центра изображения:.

Внутренние параметры также составляют протяжение и искажение. Матрица фрагмента компенсирует неточное совмещение датчика к линзе, и вектор искажения настраивает (0,0) местоположение плоскости изображения.

Следующее уравнение связывает действительные искаженные координаты (u'', v'') к идеалу исказил координаты (u, v).

Калибровка fisheye-камеры в MATLAB

Чтобы удалить искажение объектива из изображения подозрительного взгляда, можно обнаружить калибровочный шаблон шахматной доски и затем калибровать камеру. Можно найти точки шахматной доски с помощью detectCheckerboardPoints и generateCheckerboardPoints функции. estimateFisheyeParameters функционируйте использует обнаруженные точки и возвращает fisheyeParameters объект, который содержит внутренние и внешние параметры fisheye-камеры. Можно использовать fisheyeCalibrationErrors проверять точность калибровки.

Корректировка fisheye изображения для искажения линзы

Удалите искажение объектива из изображения подозрительного взгляда путем обнаружения checkboard калибровочного шаблона и калибровки камеры. Затем отобразите результаты.

Соберите набор калибровочных изображений шахматной доски.

images = imageDatastore(fullfile(toolboxdir('vision'),'visiondata', ...
    'calibration','gopro'));

Обнаружьте калибровочный шаблон от изображений.

[imagePoints,boardSize] = detectCheckerboardPoints(images.Files);

Сгенерируйте мировые координаты для углов квадратов шахматной доски.

squareSize = 29; % millimeters
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

Оцените калибровочные параметры fisheye-камеры на основе изображения и мировых точек. Используйте первое изображение, чтобы получить размер изображения.

I = readimage(images,1); 
imageSize = [size(I,1) size(I,2)];
params = estimateFisheyeParameters(imagePoints,worldPoints,imageSize);

Удалите искажение объектива из первого изображения I и отобразите результаты.

J1 = undistortFisheyeImage(I,params.Intrinsics);
figure
imshowpair(I,J1,'montage')
title('Original Image (left) vs. Corrected Image (right)')

J2 = undistortFisheyeImage(I,params.Intrinsics,'OutputView','full');
figure
imshow(J2)
title('Full Output View')

Ссылки

[1] Scaramuzza, D., А. Мартинелли и Р. Сигварт. "Тулбокс для легких калибрующих всенаправленных камер". Продолжения к международной конференции IEEE по вопросам интеллектуальных роботов и систем, (IROS). Пекин, Китай, 7-15 октября 2006.

Смотрите также

| | | | | |

Похожие темы