Повышение точности калибровки внешних параметров видеокамеры
Аннотация
Дата поступления статьи: 14.09.2013Описана модель идеальной видеокамеры, показан вид внешних и внутренних параметров камеры. Приведены соотношения, связывающие координаты точки в мировой системе координат с координатами проекции этой точки на изображение. Поставлена задача определения внешних параметров камеры по набору соответствий точек в мировой системе координат и их проекций на изображение. С помощью моделирования оценены погрешности определения внешних параметров камеры для различных конфигураций калибровочных объектов. По результатам моделирования даны рекомендации по выбору параметров калибровочного объекта с целью увеличения точности калибровки внешних параметров видеокамеры.
Ключевые слова: калибровка видеокамеры, внешние параметры камеры, оценка положения и ориентации, калибровочный объект
05.13.18 - Математическое моделирование, численные методы и комплексы программ
Во многих задачах компьютерного зрения, например при построении систем стереовидения [1], систем видеорегистрирования, а также при визуализации моделируемых объектов на изображении [2], возникает необходимость оценки положения видеокамеры в пространстве по полученным ею изображениям известного калибровочного объекта. Стремительное развитие фото - и видеорегистрирующей аппаратуры повышает требования к точности определения калибровочных параметров и вызывает необходимость произвести исследование влияния выбора параметров калибровочного объекта на точность калибровки.
Связь между координатами точки в мировой системе координат (СК) x = (x, y, z) и ее проекции на изображение p = (u, v) описывается с помощью выражения
,
где K – матрица внутренних параметров камеры, позволяющая перейти от координат точки в СК камеры к координатам проекции этой точки на изображении; [R | t] – внешние параметры камеры, определяющие переход из мировой СК к СК камеры, – однородные координаты точки на изображении.
Внутренние параметры уникальны для каждой камеры и не зависят от других камер и положения в пространстве. Их можно определить индивидуально для каждой камеры с помощью геометрической калибровки по методике, описанной в [3, 4]. При отсутствии геометрических искажений внутренние параметры камеры записываются в виде матрицы камеры:
где fx, fy – фокусные расстояния камеры, px, py – координаты точки пересечения оптической оси и плоскости изображения в системе координат изображения.
Внешние параметры камеры имеют вид
где R = [rij] – матрица поворота размера 3 × 3, задающая ориентацию камеры и имеющая три степени свободы; t = (tx, ty, tz) – вектор переноса, совмещающий начала мировой СК и СК камеры.
Для определения внешних параметров камеры после калибровки внутренних параметров достаточно иметь набор как минимум из четырех соответствий между координатами точек в пространстве xi = (xi, yi, zi) и координатами точек на изображении pi = (ui, vi). Такая задача популярна в области компьютерного зрения и может решаться различными методами, в основном отличающимися вычислительной сложностью [5–7].
В библиотеке OpenCV также имеется реализация такой функции с именем cv::solvePnP или cvFindExtrinsicCameraParams2 в случае старого интерфейса [8, с. 395]. В качестве входных параметров в эту функцию поступают: массив трехмерных точек пространства, соответствующий этим точкам массив двумерных точек на изображении, внутренние параметры камеры (матрица камеры и коэффициенты дисторсии). Выходными параметры этой функции являются вектор переноса t = (tx, ty, tz) и вектор вращения w = (wx, wy, wz) . Вектор вращения является описанием поворота в пространстве на угол θ = ||w|| вокруг единичного вектора u = w / θ. Матрица вращения может быть получена из u и θ с помощью формулы Родрига [9, с. 38]:
R(u, θ) = I + sin θ [u]× + (1 – cos θ) [u]×2,
где I – единичная матрица 3×3, а [u]× – кососимметричная матрица, используемая для обозначения векторного произведения:
На практике вместо вектора переноса t удобно оперировать положением камеры c = (cx, cy, cz) , которое при известных R и t находится по следующей формуле (обратная матрица поворота получается транспонированием матрицы прямого поворота R−1 = RT):
с = − RT t.
Ориентацию камеры удобно задавать в виде последовательности элементарных вращений r = (λ, φ, θ) на углы азимута, высоты и крена соответственно, которые для известной матрицы поворота R = [rij] можно найти по следующим формулам [10]:
λ = arctan2(r31, r32),
φ = arcsin(r33),
θ = arctan2(–r13, –r23),
где arctan2(x, y) – двухаргументная функция арктангенса, эквивалентная функции arctan(y / x) с учетом четверти, в которой находится точка (x, y), принимающая значения в интервале (–π, π].
При помощи моделирования выполнено исследование того, как влияет выбор и погрешность измерения пространственных координат x и соответствующих двумерных координат p на точность оценки положения камеры. Моделировалась камера с углом обзора по горизонтали α = 68° и разрешением изображения w × h = 704 × 576 пикселей. Внутренние параметры камеры, таким образом, были приняты следующими:
fx = fy = w / (2 tan(α/2) ) ≈ 521,9;
px = (w – 1) / 2 = 351,5;
py = (h – 1) / 2 = 288,5;
Внешние параметры камеры задавались следующим образом: камера располагалась в начале координат c0 = (0, 0, 0), а углы ее ориентации были приняты нулевыми c0 = (0, 0, 0) (направление оси Z СК камеры совпадает с направлением оси Y мировой СК):
Точки в мировой СК определяются выбором калибровочного объекта. Исследовалось несколько конфигураций точек xi калибровочного объекта с различными расстояниями от камеры и различными угловыми размерами (таблица 1):
1. Конфигурация из четырех точек, проекции которых разнесены друг от друга и расположены в угловых областях изображения.
2. Конфигурация из четырех точек, проекции которых не сильно разнесены друг от друга.
3. Конфигурация из восьми точек, полученная объединением 1-й и 2-й конфигурации.
4. Конфигурация из четырех точек, расположенных дальше от камеры, чем во второй конфигурации, проекции которых также расположены по углам изображения.
5. Конфигурация из четырех точек, составленная из 1-й и 4-й конфигураций (из каждой взято по две точки).
Таблица №1
Конфигурации точек и их проекции
x, м |
p, пикс. |
x, м |
p, пикс. |
||||||
Конфигурация № 1 |
Конфигурация № 2 |
||||||||
Конфигурация № 3 |
|||||||||
−1 |
2 |
1 |
90,6 |
26,6 |
−0,5 |
2 |
0,5 |
221,0 |
157,0 |
1 |
2 |
1 |
612,4 |
26,6 |
0,5 |
2 |
0,5 |
482,0 |
157,0 |
−1 |
2 |
−1 |
90,6 |
548,4 |
−0,5 |
2 |
−0,5 |
221,0 |
418,0 |
1 |
2 |
−1 |
612,4 |
548,4 |
0,5 |
2 |
−0,5 |
482,0 |
418,0 |
Конфигурация № 4 |
Конфигурация № 5 |
||||||||
−2 |
4 |
2 |
90,6 |
26,6 |
−2 |
4 |
2 |
90,6 |
26,6 |
2 |
4 |
2 |
612,4 |
26,6 |
2 |
4 |
2 |
612,4 |
26,6 |
−2 |
4 |
−2 |
90,6 |
548,4 |
−1 |
2 |
−1 |
90,6 |
548,4 |
2 |
4 |
−2 |
612,4 |
548,4 |
1 |
2 |
−1 |
612,4 |
548,4 |
Моделировалась погрешность оценки пространственных координат ±ex = 1, 5 и 10 мм и погрешность определения координат на изображении ±ep= 1 пиксель. Для этого к каждой пространственной координате x добавлялась случайная ошибка ξ с нормальным законом распределения и среднеквадратичным отклонением σx = ex/2, что соответствует доверительному интервалу 95% для заданного ex. Затем полученные зашумленные координаты xξ = x + ξ(σx) проецировались на изображение, и к найденным проекциям добавлялся гауссов шум с среднеквадратичным отклонением σp = ep/2:
.
Для полученных таким образом соответствий и x с помощью функции solvePnP библиотеки OpenCV определялись внешние параметры камеры, а затем находились положение ci и ориентация ri камеры, где i = 0, 1, … N, N = 1000 – число, достаточное для статистически достоверной оценки погрешности.
Ошибка определения положения камеры для 95-процентного доверительного интервала находилась как два среднеквадратичных отклонения xi от x0:
аналогично определялась ошибка определения ориентации Δr = (Δλ, Δφ, Δθ). Рассчитанные таким образом погрешности приведены в таблице 2.
Таблица № 2
Значения ошибки определения положения Δx и ориентации Δr камеры в зависимости от ошибки измерения пространственных координат ex для различных конфигураций.
ex, мм |
Δx, мм |
Δr |
||||
Конфигурация № 1 |
||||||
1 |
5,6 |
5,6 |
1,6 |
0,13° |
0,13° |
0,04° |
5 |
14,6 |
14,4 |
4,5 |
0,34° |
0,33° |
0,11° |
10 |
26,9 |
27,9 |
8,8 |
0,62° |
0,65° |
0,21° |
Конфигурация № 2 |
||||||
1 |
18,8 |
18,3 |
3,1 |
0,50° |
0,49° |
0,09° |
5 |
47,8 |
45,2 |
8,2 |
1,28° |
1,22° |
0,21° |
10 |
91,6 |
88,6 |
15,3 |
2,48° |
2,40° |
0,43° |
Конфигурация № 3 |
||||||
1 |
4,4 |
4,5 |
1,5 |
0,11° |
0,11° |
0,04° |
5 |
12,0 |
12,0 |
4,0 |
0,30° |
0,30° |
0,10° |
10 |
23,8 |
23,1 |
7,8 |
0,59° |
0,58° |
0,18° |
Конфигурация № 4 |
||||||
1 |
10,3 |
10,2 |
2,8 |
0,12° |
0,12° |
0,04° |
5 |
16,5 |
16,0 |
5,3 |
0,19° |
0,18° |
0,06° |
10 |
29,2 |
28,1 |
9,5 |
0,34° |
0,33° |
0,11° |
Конфигурация № 5 |
||||||
1 |
4,4 |
4,1 |
2,3 |
0,08° |
0,07° |
0,05° |
5 |
9,2 |
10,4 |
6,1 |
0,14° |
0,16° |
0,09° |
10 |
16,8 |
19,4 |
11,9 |
0,26° |
0,29° |
0,17° |
По результатам моделирования можно сделать следующие рекомендации:
1. Для уменьшения погрешностей необходимо увеличивать угловое расстояние между проекциями точек (конфигурации №1 и №2)
2. Добавление дополнительных точек позволяет уменьшить погрешность (конфигурации №1 и №3)
3. Отдаление точек в пространстве без изменения их угловых расстояний уменьшает погрешность определения ориентации камеры, но увеличивает погрешность определения положения камеры (конфигурации №1 и №4)
4. Предпочтительно располагать точки в пространстве так, чтобы они имели различные дальностные координаты. В этом случае погрешности распределяются более равномерно для различных координат или осей поворота, и их суммарное значение в этом случае наименьшее (конфигурации №1 и №5).
5. Предполагается достаточно точным определение положения и ориентации камер с точностью измерения пространственных координат 10 мм, для конфигурации из четырех разноудаленных от камеры точек (конфигурация №5).
Литература:
1. Лахов, А.Я. Программное обеспечение для стереовизуализации результатов конечно-элементного моделирования [Электронный ресурс] // «Инженерный вестник Дона», 2013, №1. – Режим доступа: http://ivdon.ru/magazine/archive/n1y2013/1501 (доступ свободный) – Загл. с экрана. – Яз. рус.
2. Рачковская Г.С. Математическое моделирование и компьютерная визуализации сложных геометрических форм // «Инженерный вестник Дона», 2013, №1. – Режим доступа: http://ivdon.ru/magazine/archive/n1y2013/1498 (доступ свободный) – Загл. с экрана. – Яз. рус.
3. Sturm Peter F, Maybank Stephen J. On plane-based camera calibration: A general algorithm, singularities, applications // Computer Vision and Pattern Recognition, 1999. IEEE Computer Society Conference on. / IEEE. –Vol. 1. – 1999.
4. Zhang Zh. A Flexible New Technique for Camera Calibration // IEEE Transactions on Pattern Analysis and Machine Intelligence. – 2000. – Vol. 22(11). – P. 1330– 1334.
5. Complete Solution Classification for the Perspective-Three-Point Problem / XiaoShan Gao, Xiao-Rong Hou, Jianliang Tang, Hang-Fei Cheng // IEEE Transactionson Pattern Analysis and Machine Intelligence. – 2003. – Vol. 25, no. 8. – P. 930–943.
6. Moreno-Noguer F., Lepetit V., Fua P. Accurate Non-Iterative O(n) Solution to the PnP Problem // Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on. – 2007. – P. 1–8.
7. Schweighofer Gerald, Pinz Axel. Globally Optimal O(n) Solution to the PnPProblem for General Camera Models. // BMVC. – 2008. – P. 1–10.
8. Bradski Gary, Kaehler Adrian. Learning OpenCV. – Sebastopol: O’Reilly, 2008. – 555 p.
9. Szeliski R. Computer Vision. Algorithms and Applications / Ed. by D. Gries, F. B. Schneider. – Springer, 2011. – 812 p.
10. Толкачев Д.С. Преобразования координат, связанные с вращением камеры, при формировании панорамы. – Материалы Всероссийской научной конференции «Инновационные процессе в гуманитарных, естественных и технических системах» – часть 3 – Таганрог: Изд-во ТТИ ЮФУ, 2012 г, с. 68–72.