Определение положения камеры относительно плоского маркера



Скачать 65,65 Kb.
Дата20.10.2016
Размер65,65 Kb.

  1. Санкт-Петербургский Государственный Университет

  2. Математико-механический факультет



  3. Кафедра системного программирования
    1. Отчёт о проделанной курсовой работе

    2. по теме:


«Определение положения камеры относительно плоского маркера»

Выполнил студент 345 группы,

Петров Николай

Научный руководитель:

к. ф.-м. н. Вахитов А. Т.

Санкт-Петербург

2011

Оглавление:



Введение 3

Постановка задачи 3

Описание метода решения 4

Заключение 8

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

Введение.

Пусть у нас есть камера с фокусным расстоянием f. Плоскость, расположенная на расстоянии f от центра проекции, и перпендикулярная оптической оси называется плоскостью изображения. Оптическая ось пересекает плоскость изображения в точке с, называемой принципиальной точкой. Обозначим размеры пикселя матрицы цифровой камеры за p­x, py, угол наклона пикселя за φ, а принципиальную точку за [u0, v0, 1].

Теперь обозначим через αx = f / px фокусное расстояние, измеренное в ширинах пикселя, через αy = f / py – фокусное расстояние, измеренное в высотах пикселя, а через γ: Тогда введем матрицу внутренней калибровки камеры K:

В большинстве случаев у реальных цифровых камер угол наклона пикселей близок к прямому, поэтому параметр γ = 0, а если ширина и высота пикселя равны, то αx = αy.

Для представления 2D-координат точки на плоскости будем использовать вектор-столбец вида [x y 1]T, а для задания положения 3D-точки в мировых координатах : [u v w 1]T. Нужно отметить, что эти выражения записаны в нотации однородных координат. Для проецирования точек трёхмерного пространства на плоскость изображения используется матрица калибровки, матрица поворота и вектор переноса:

Где α - коэффициент масштаба.

Постановка задачи:

Пусть у нас есть фотография, содержащая плоский маркер известных размеров. Пусть нам известна матрица калибровки камеры K. Зададим соответствие между координатами точек на маркере на фотографии и этими же точками в координатах плоскости маркера (таких пар должно быть, как минимум, четыре). С такими начальными данными найдём матрицу проектирования, подробнее о которой будет ниже.

Решение:

По соответствию между координатами точек на фотографии и в координатах маркера найдем гомографию (аффинное преобразование R­­3 в R3), переводящую плоскость маркера в плоскость на картинке. Пусть она задается матрицей H.

Здесь и далее u, v — координаты точки в координатах маркера

x, y — координаты точки в координатах картинки.

Тогда такое равенство выполняется для всех пар точек из соответствия:

где α – коэффициент масштаба.

Матрица H находится по алгоритму прямой линейной трансформации:


  • Для каждого соответствия вычисляется матрица A­i, задаваемая



Где h1, h2, h3столбцы матрицы H, h1= (h1, h2, h3), h2=(h4, h5, h6), h3=(h7, h8, h9).

  • Сложить n матриц 2x9 Ai в одну матрицу 2n x 9 A.

  • Получить разложение по сингулярным числам матрицы A. Единичный сингулярный вектор, соответствующий наименьшему сингулярному числу является решением h. Точнее, если A = UDVT, где D диагональная положительная матрица, в которой элементы на диагонали расположены в порядке убывания, тогда h - последний столбец матрицы V.

Этот метод нахождения матрицы гомографии заключается в минимизации так называемого алгебраического расстояния.

Пусть R – матрица поворота, а t – вектор сдвига. Обозначим через P матрицу проектирования. Это матрица перехода от однородных мировых координат к однородным координатам камеры. R и t задают насколько надо повернуть одни оси координат и сдвинуть начало координат, чтобы получить систему координат камеры.



, тогда выполняется равенство

Полученную выше матрицу гомографии H домножим слева на обратную матрицу к матрице калибровки K. И из равенств выше для матрицы P логично обозначить столбцы как



По первым двум столбцам восстановим матрицу поворота, так что:




// так получим ортогональный к r’1 вектор по процессу ортогонализации Грамма-Шмидта


Третий столбец возьмем ортогонально первым двум:



Таким образом, получили три ортонормированных столбца матрицы R:



Каждой матрице поворота соответствует ось поворота и величина угла поворота, на который надо повернуть вокруг этой оси. Найдем их из уже известной матрицы R. Ось задается 3 параметрами, можно нормализовать этот вектор, а потом каждую координату умножить на величину угла поворота.



Угол поворота вычисляется по формуле:

А ось поворота задается:

Чтобы получить матрицу поворота из оси и угла поворота можно воспользоваться формулой поворота Родригеса:



, где
а k = (k1, k2, k3) – вектор, задающий ось поворота, а θ – угол поворота.

Введем функцию, так называемое геометрическое расстояние, на вход которой подается матрица K, пары точек маркера в разных координатах, ось и величина угла поворота, вектор сдвига. Ось и угол поворота задается тремя коэффициентами: берем единичный вектор и умножаем все составляющие на величину угла поворота. Чтобы из этих трёх аргументов получить обратно ось и угол поворота достаточно посчитать норму этого вектора и взять её за угол поворота. А нормализованный вектор будет задавать ось поворота. Из оси и угла поворота найдем матрицу поворота. Введем вспомогательные u’i, v’I, w’i , такие что:





Эта функция явно записывается так:

Как видно, она зависит от координат точек на маркере, координат точек на картинке, матрицы K, вектора сдвига, оси и угла поворота.

Пусть x = {(x1, y1), … , (xn, yn)} , u = {(u1, v1), … , (un, vn)} a = {a1, a2, a3, t1, t2, t3},

Где n – количество пар соответствующих точек, t1, t2, t3 – вектор переноса, а a1, a2, a3 задают ось и угол поворота. Тогда f = f(K, x, u, a)

Будем оптимизировать эту функцию по параметру a, то есть находить при каких параметрах a данная функция f достигает минимума. Нелинейная оптимизация сойдется к нужному значению, потому что функция локально выпукла, ибо функция, у которой существует вторая производная в точке минимума, локально выпукла в ней. После оптимизации получим набор параметров, из которых восстановим матрицу поворота и вектор переноса, зная которые можно по формуле для матрицы проектирования найти её.

Изучение погрешности функции f.

Пусть при оптимальном значении a функция принимает какое-то значение C, и достигается оно при a = a~. Это значение C получается близким к нулю из-за выбора начальных параметров способом, описанным выше. Оценим погрешность получающегося а при небольшом изменении x.

На тестовом примере, если изменять отмечаемые точки на 1 пиксель, то получаемые параметры изменятся в среднем на 0.0163. Если изменять на 2 пикселя, то параметры изменятся в среднем на 0.0327, на 3 пикселя – 0.049, на 4 пикселя – 0.0654. То есть эмпирически прослеживается линейная зависимость изменения выходных параметров, задающих проективную матрицу, от изменения отмечаемых точек на картинке.

Заключение.

В ходе курсовой работы исследован и реализован метод нахождения матрицы проектирования путём оптимизации функции геометрического расстояния. Таким образом, имея фотографию с плоским маркером известных размеров, сделанную на камеру с известной матрицей калибровки, можно получить проективную матрицу, переводящие точки пространства в координатах маркера в координаты камеры. Это бывает полезно в 3d реконструкции, если есть еще фотографии, содержащие этот же маркер. Также это широко используется в области дополненной реальности, ведь именно для этой области и создавались маркеры.


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

  1. Multiple View Geometry in Computer Vision 2ed - Hartley R., Zisserman A

  2. http://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula

  3. Геометрические свойства нескольких изображений - Антон Конушин. Компьютерная графика и мультимедиа. Выпуск №4(3)/2006.


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©grazit.ru 2017
обратиться к администрации

    Главная страница