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

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

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

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

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

Калибровочный алгоритм Computer Vision Toolbox использует модель fisheye-камеры, предложенную Scaramuzza [1]. Модель использует всенаправленную модель камеры. Процесс обрабатывает систему обработки изображений как компактную систему. Для того, чтобы связать 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('calibrationImages');

Обнаружьте калибровочный шаблон от изображений. Аргумент 'PartialDetections' Name-Value установлен в истину обнаружением разрешения значения по умолчанию частичных шахматных досок.

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

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

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

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

I = readimage(images,10); 
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)')

Figure contains an axes object. The axes object with title Original Image (left) vs. Corrected Image (right) contains an object of type image.

J2 = undistortFisheyeImage(I,params.Intrinsics,'OutputView','same', 'ScaleFactor', 0.2);
figure
imshow(J2)
title('Output View with low Scale Factor')

Figure contains an axes object. The axes object with title Output View with low Scale Factor contains an object of type image.

Ссылки

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

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

Функции

Объекты

Похожие темы