Научная статья на тему 'Описание и программное устранение дисторсии объективов'

Описание и программное устранение дисторсии объективов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2513
468
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КАЛИБРОВКА ВИДЕОКАМЕРЫ / OPENCV / ДИСТОРСИЯ / ОБЪЕКТИВ / МАТРИЦА / КАЛИБРОВОЧНЫЙ ШАБЛОН / МАТРИЦА КАМЕРЫ / КОЭФФИЦИЕНТЫ ДИСТОРСИИ / CAMERA CALIBRATION / DISTORTION / LENS / MATRIX / CALIBRATION TEMPLATE / CAMERA MATRIX / DISTORTION COEFFICIENTS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Глаголев Владислав Максимович

Рассмотрен наиболее распространённый метод калибровки видеокамеры с целью обеспечения геометрического подобия реальных объектов и объектов на изображении с видеокамеры. Приведён алгоритм компенсации искажений для координат точки на искаженном изображении.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Глаголев Владислав Максимович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DESCRIPTION AND SOFTWARE CORRECTION OF LENS DISTORTION

This paper examines the most common method for video camera calibration. The aim of calibration is to reach the geometric similarity of real objects ’ shape and the shape of objects on the planar image from the camera. The paper contains an algorithm used to correct the coordinates of a single point acquiredfrom the distorted image.

Текст научной работы на тему «Описание и программное устранение дисторсии объективов»

Data on direct experimental observation of gravitational waves are given. The principles of constructing laser interferential observables of gravitational waves are considered. The focus is on the construction of Michelson's interferometer, integrated with the Fabry-Perot interferometer. The possibilities of sharing dual-beam and multi-beam interference in optical gyroscopes are considered.

Key words: gravitational waves, two-beam and multi-beam interference, optical gyroscope.

Filatov Yuri Vladimirovich, doctor of technical sciences, professor, yvfulatov@,etu. ru, Russia, St. Petersburg, St. Petersburg State ElectrotechnicalUniversity "LETI" of V.I. Ulya-nov (Lenin)

Рассмотрен наиболее распространённый метод калибровки видеокамеры с целью обеспечения геометрического подобия реальных объектов и объектов на изображении с видеокамеры. Приведён алгоритм компенсации искажений для координат точки на искаженном изображении.

Ключевые слова: калибровка видеокамеры, OpenCV, дисторсия, объектив, матрица, калибровочный шаблон, матрица камеры, коэффициенты дисторсии.

В задачах, связанных с вычислениями каких-либо численных параметров по изображению с фото- или видеокамеры, очень часто решающим фактором является геометрическое подобие реальных объектов и объектов на изображении. Идеальный объектив не подвергает искажениям исходную форму объектов, а проецирует на матрицу их двумерную проекцию всего с двумя линейными преобразованиями - уменьшением масштаба и переворачиванием (рис. 1).

УДК 004.42; 681.78/006.78

ОПИСАНИЕ И ПРОГРАММНОЕ УСТРАНЕНИЕ ДИСТОРСИИ ОБЪЕКТИВОВ

В.М. Глаголев

if

Рис. 1. Идеальный объектив

188

Однако в реальных (в особенности, простых) видеокамерах ситуация отличается от идеальной: изображение на матрице искажается. Искажение, которое наиболее значительно влияет на геометрию объектов, называется дисторсией.

В данной статье рассматриваются механизмы возникновения, а также способ математического описания и программной компенсации дис-торсии.

По наиболее широко распространённой модели дисторсии Brown-Conrady [1, 2] выделяют две составляющие дисторсии.

1. Радиальная дисторсия (Radial distortion) характерна для объективов простых конструкций. При таком виде искажения все прямые линии изображаются кривыми, кроме тех, которые лежат в одной плоскости с оптической осью. Различают бочкообразную дисторсию (barrel distortion, рис. 2, б) и подушкообразную дисторсию (pincushion distortion, рис. 2, в).

2. Тангенциальная дисторсия (Tangential distortion) вызвана несовпадением оптических осей линз объектива и неперпендикулярностью их к матрице (рис. 2, г).

Радиальная и тангенциальная дисторсия в той или иной степени влияют на результирующее изображение одновременно.

а

б

в г

Рис. 2. Виды дисторсии по модели Вго^>п-Сопгайу: а - изображение без дисторсии; б - радиальная бочкообразная; в - радиальная подушкообразная; г - тангенциальная

189

Математическое описание дисторсии. Модель Brown-Conrady

описывает переход от неискаженного изображения к изображению с дис-торсией следующими преобразованиями координат (хи, уи) точки на неискаженном изображении:

9 А

х^ = хи1 + ^г + &2 г + •

+

+(Р2 (г2 + 2 х2)+ 2 рхХи у и )1 + Рзг 2 + Р4 г 4 +

9 А

Уё = Уи1 + к\Г + к 2 г + ■

+

+

Уи К1

1 (г2 + 2 уи)+ 2 Р2 Хи Уи) 1 + РзГ2 + Р4 г4 +

(1)

где (х^, у^)- координаты точки (хи, уи) на искажённом дисторсией изо-

бражении; г = д|(хи - сх) + (уи - Су) - расстояние от оптического центра (сх, Су) до точки (хи, уи); к- коэффициенты радиальной дисторсии; р-

коэффициенты тангенциальной дисторсии.

В практических задачах, коэффициенты тангенциальной дисторсии рассматриваются до коэффициента Р2 включительно, а радиальной — до коэффициента кз или к6 включительно. Таким образом, радиальная составляющая в тангенциальной дисторсии практически всегда опускается.

В библиотеке ОРвпСУ [3] (которая является мировым стандартом для компьютерной обработки изображений и видео в сфере свободного программного обеспечения) используется следующая модель дисторсии

(3).

Следует особо отметить, что в ОРвпСУ коэффициенты радиальной дисторсии к4 6 используются не в качестве коэффициентов при высших степенях полинома (как в классическом описании [1]), а в качестве коэффициентов аналогичного полинома в знаменателе. Такой вид функции радиальной дисторсии уменьшает вероятность превышения максимально возможного значения переменной при расчёте двенадцатой степени числа г:

■С,

хи

х = и

х

у и - С

у

(2)

у р ? /у

х = А г х + Ах^-; у = Аг у + Ау^

хё = х/х + Сх;

уа = у/у +

190

(3)

1 + hr2 + k2r4 + h3r6 где Ar = 1 2 3

1 + ^4 r 2 + h^r 4 + кб r 6

смещение координат, вызванное радиаль-

2 2

ной дисторсией; Axt = p2(r + 2x ) + 2pixy - смещение координаты x, вы-

22

званное тангенциальной дисторсией; Ayt = pi(r + 2y ) + 2p2xy - смеще-

22

ние координаты y, вызванное тангенциальной дисторсией; r = ^ x + y .

Таким образом, для моделирования (с целью последующей компенсации) дисторсии необходимы следующие входные данные (5). Их можно получить с помощью функции calibrateCamera библиотеки OpenCV по изображениям калибровочного шаблона, полученным с калибруемой камеры:

A =

fx 0

0 fy

0 0

"X

cy 1

D =

'кР h2

pi p2

кз

(5)

где A - матрица камеры (используется для нормализации координат пикселов); D - вектор коэффициентов дисторсии; (fx, fy) - приведённые фокусные расстояния объектива по двум осям.

Калибровка видеокамеры. Задача калибровки видеокамеры состоит в определении матрицы камеры и коэффициентов дисторсии (5). Наиболее простой и часто применяемый путь решения этой задачи - применение алгоритма Zhengyou Zhang [4], который реализован в библиотеке OpenCV.

Данный алгоритм применяется следующим образом.

1. Вначале необходимо изготовить максимально плоский шаблон с нанесённым на него изображением. OpenCV поддерживает распознавание шаблонов двух типов: черно-белая шахматная доска (рис. 3, а) и массив черных кругов на белом фоне (рис. 3, б).

а

б

Рис. 3. Виды калибровочных шаблонов: а - шахматная доска 7 х 9; б - асимметричный массив точек 4 х 11

2. Далее производится от 7 до 50 фотографий этого шаблона калибруемой видеокамерой с разных ракурсов.

3. Каждое изображение передается в функцию findChessboardCorners библиотеки ОРвпСУ, которая возвращает координаты углов шахматной доски. При использовании шаблона с кругами необходимо использовать функцию findCirclesGrid.

3.1. (необязательно) Функция findChessboardCorners находит координаты пиксела, который располагается наиболее близко к искомому углу, однако, эти координаты можно сделать точнее путём применения функции cornerSubPix. Эта функция рассчитывает вещественные координаты угла на основе изображения в окрестностях найденного угла.

3.2. (необязательно) Чтобы убедиться, что шаблон найден корректно, можно отобразить найденные углы на изображениях с помощью функции drawChessboardCorners.

4. Далее необходимо сохранить полученные координаты углов на всех изображениях в один массив imagePoints.

5. Сформировать массив objectPoints/ в который для каждого изображения добавляется вектор Я (6). Каждый элемент вектора имеет три координаты, поскольку библиотека поддерживает калибровку по трёхмерным шаблонам, а в случае с шахматной доской, п2 = 0:

Я = [ (0,0,0), (1,0,0), (2,0,0), ■■■, (пх,0,0), (0,1,0), (1,1,0), (2,1,0), ■■■, (пх,1,0), (0,2,0), (1,2,0), (2,2,0), ■■■, (пх,2,0), (6)

(0, пу,0), (1, пу,0), (2, пу,0), ■■■, (пх, пу,0) ],

где (пх,Пу) - количество углов шахматной доски по двум координатам.

6. Передать массивы objectPoints и imagePoints в функцию calibrateCamera библиотеки ОРвпСУ.

7. Сохранить матрицу А и вектор В, возвращаемые данной функцией.

Компенсация дисторсии. Модель Brown-Conrady позволяет получить искажённые координаты точки из неискажённых, и этого достаточно для получения изображения со скомпенсированной дисторсией из искажённого изображения.

Чтобы устранить дисторсию на изображении, можно смоделировать дисторсию на равномерной прямоугольной карте точек (рис. 2, а), ассоциировать её с искаженным изображением (рис. 4, а), а затем преобразовать изображение так, чтобы карта точек вновь стала равномерно прямоугольной (рис. 4, б).

а б

Рис. 4. Компенсация дисторсии на изображении: а - изображение с наложенной картой точек; б - компенсация дисторсии

по карте точек

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Однако часто возникает задача получить координаты точки на изображении со скомпенсированной дисторсией по координатам точки на искажённом изображении без преобразования всего изображения (поскольку эта операция обладает высокой вычислительной сложностью).

В идеальном случае необходимо найти решение полинома, однако его степень слишком высока, что делает невозможным аналитическое решение. Однако можно найти численное решение по итеративному алгоритму, представленному на рис. 5. С каждой итерацией значения х и у приближаются к хи и уи .

( Конец )

Рис. 5. Блок-схема алгоритма компенсации дисторсии для точки

193

На практике выполняются пять итераций, однако точность, достаточную для пиксельного соответствия, в большинстве случаев, можно получить за три.

Список литературы

1. Brown D.C. Decentering distortion of lenses // Photometric Engineering. 1966. I. 32. № 3. P. 444-462.

2. Conrady A.E. Decentred Lens-Systems // Monthly Notices of the Royal Astronomical Society. 1919. V. 79. № 5. P. 384.

3. OpenCV: Open Source Computer Vision Library / GitHub. 2017. [Электронный ресурс] URL: https://github.com/opencv/opencv (дата обращения 10.07.2017).

4. Zhang Z. A Flexible New Technique for Camera Calibration // IEEE Trans. PatternAnal. Mach. Intell. Washington. DC, USA, 2000. V. 22. № 11. P. 1330-1334.

Глаголев Владислав Максимович, асп., glagol15@,gmail. com, Россия, Тула, Тульский государственный университет

DESCRIPTION AND SOFTWARE CORRECTION OF LENS DISTORTION

V.M. Glagolev

This paper examines the most common method for video camera calibration. The aim of calibration is to reach the geometric similarity of real objects' shape and the shape of objects on the planar image from the camera. The paper contains an algorithm used to correct the coordinates of a single point acquiredfrom the distorted image.

Key words: camera calibration, OpenCV, distortion, lens, matrix, calibration template, camera matrix, distortion coefficients.

Glagolev Vladislav Maximovich, postgraduate, glagol15@ gmail. com, Russia, Tula, Tula State University

i Надоели баннеры? Вы всегда можете отключить рекламу.