УДК 535.31
АЛГОРИТМЫ ПОЗИЦИОНИРОВАНИЯ МОБИЛЬНОГО УСТРОЙСТВА НА ОСНОВЕ ДАННЫХ ОТ ВСТРОЕННОЙ ФОТОКАМЕРЫ
А.В. Козырева
Институт систем информатики им. А.П. Ершова СО РАН, г. Новосибирск E-mail: alina.kozyreva@gmail.com
Изучена возможность создания программного продукта для позиционирования мобильного устройства в пространстве относительно окружающих объектов. Рассмотрены алгоритмы калибровки камеры, а также алгоритмы нахождения особенностей изображения и их дальнейшего отслеживания. Определение того, изменилось ли положение в пространстве или нет, производится путем поиска неизвестных коэффициентов в матрице вращения и векторе сдвига на основе полученных калибровочных данных и найденных особенностей. На основе результатов работы разных алгоритмов создана упрощенная техника для решения конкретных задач. Результаты ее работы показали неплохие результаты. Данные сочетания техник могут быть использованы для управления мобильными устройствами или в играх.
Ключевые слова:
Калибровка камеры, особенности изображения, угловые детекторы, алгоритмы слежения за особенностями.
Key words:
Camera calibration, feature detection, edge detection, feature point tracking.
Введение
В работе идет речь о возможности создания программного продукта для позиционирования мобильного устройства (смартфон или КПК) в пространстве относительно окружающих объектов на основе данных, полученных от установленной на нем фотокамеры. На данный момент аналогичные приложения существуют. Но они или разработаны для более мощных устройств, нежели мобильный телефон или КПК, или устройство обладает датчиками, способными решать данную проблему на основе других физических принципов. Данная работа рассматривает алгоритмы, позволяющие создать приложения, которые могли бы работать на большинстве мобильных устройств вне зависимости от их производителя. Хотя можно отметить, что цели такой разработки не совсем ясные, и это, в значительной мере, является экспериментом.
Поставленную задачу предлагается решать следующим образом. Найдя особые точки на первом изображении, необходимо отыскать их на втором. Здесь потребуются алгоритмы слежения за особенностями (опорными точками). Для решения задачи используем минимум четыре точки на одном изображении и соответствующие четыре точки на втором. Так как опорные точки на получаемых изображениях имеют две координаты, а соответствующая точка пространства - три координаты, то необходимо знать правила, по которым происходит данное преобразование. Эти правила зависят от внутренних параметров фотокамеры. Их определение осуществляется посредством калибровки камеры. Определение того, изменилось ли положение в пространстве или нет, производится путем поиска неизвестных коэффициентов в матрице вращения и векторе сдвига.
1. Процесс калибровки камеры
Рассмотрим рис. 1. Точка т=(х,у) в плоскости камеры и точка М=(Х, У, 7) в пространстве связанны следующим равенством:
7у=ЛМ, (1)
где М=(Х, У, 7Т - трехмерный вектор, соответствующий точке М, т=(х,у)Т - двумерный вектор, соответствующий точке т, \=(ы V 1)Т - вектор однородных [1] внутренних координат камеры, а матри-
ца
A =
f/w у 0 f/h
0
1
- матрица, известная
под названием матрицы внутренних параметров камеры, поскольку она содержит только параметры оптической системы и фотоприемника камеры.
Пусть задана точка т=(х,у) на плоскости, которая является проекцией некоторой точки М=(Х, У,7) в пространстве. Соотношение между этими двумя точками можно представить в следующем виде:
sm=Л[R ¡]М, (2)
где ^ - некоторый скаляр, пара ^ 0 - так называемые внешние параметры камеры, Л - матрица, представляющая собой внутренние параметры камеры. Получим новое соотношение из (2), использовав матрицу гомографии Н=Л[г{ г2 ¡]: ,ш=НМ. Матрицу гомографии можно вычислить различными способами [2], будем считать, что она уже есть. Положим, что Н=[Н{ Н2 й3], тогда из (2) получим:
[к 1 к2 к3] = ЯА[г1 г2 t ],
где Я - скаляр. Исходя из того, что г и г2 ортогональны, получаем
hT Ä-TÄ-1h2 = 0;
hTlA-TA-lhl = hTÄ~TÄ~ Положим
(3)
(4)
Vj =
hilhjl, hilhj 2
-ht 2hj!, h 2hj 2!
hi3hjl
■hnhjз, ht3hj2
• h h h h
ri 2'7 3’ 'h 3'j 3
тогда (3) и (4) можно переписать в следующем виде:
T
b = 0.
(5)
_ (Vii V22 )
В (5) b - это 6D вектор, равный [Bn,B12,B22,B13,B23,B33], где Bj — элементы матрицы B=AAl.
Тогда, используя n изображений шаблона, путем несложных преобразований [3] элементы матрицы внутренних параметров можно записать следующим образом:
V =(Bi2Bi3 -ВпВ2з)/(ВцB22 -BiU
Я = B33 - [Bi23 + Vo (Bi2Bi3 - BiiB23 )] /Bii ,
а = -у/А/Вц,
ß =л]яВп/(ВцB22 - B\2), у = -Bi2a2ß /Я, u0 = cv0 /а -Bi3a2 /Я,
где Bj — элементы матрицы B=ATAl.
Калибровку стационарной камеры можно провести также следующим образом [8]. Пусть даны перекрывающие друг друга изображения J0...JN, где N>2. Изображения получены при помощи одной камеры и регистрируют одну и ту же сцену. Тогда алгоритм самокалибровки следующий:
• установить соответствие между точками изображений;
• для каждого j=1...N вычислить преобразование Pj между J0 и J;
• найти верхнетреугольную матрицу К, такую что K1PjK=Rj, где Щ - это матрица вращения для всех7>0 (К - калибровочная матрица, Щ описывает ориентацию камеры в момент j по отношению к «нулевому» моменту);
• итеративно улучшить полученную оценочную калибровочную матрицу.
2. Вращение и сдвиг
Рассмотрим общий случай, когда оптические оси камер не параллельны, а направление смещения оптического центра одной камеры относительно оптического центра другой произвольно (рис. 2). Введем для каждой камеры свою стандартную систему координат. Пусть первой камере соответствует система координат 0'Х'У7', а второй -О'Т'Г'7" (рис. 2). Пусть вектор М=(0 ТГ7)Т характеризует координаты некоторой точки М трехмерного пространства в системе первой камеры, а вектор М''=(0"Х"У"7')Т - в системе второй. Легко показать, что связь между векторами М' и М " задается соотношением
М'=Щ М+, (6)
где Щ=Щ"ЩТ - ортогональная матрица, описывающая ориентацию системы координат второй камеры относительно первой, а ¡=-Щ"Щ^ - вектор
трансляции, определяющий положение оптического центра второй камеры в системе координат первой.
Рассмотрим пару камер, внутренние параметры которых известны, но неизвестны внешние параметры (матрица Щ и вектор /). Умножив обе части выражения (6) слева векторно на ¡, а затем скаляр-но - на М ", получим М”Т(/хЩМ)=0. Это соотношение формально выражает тот факт, что векторы М , М" и I лежат в одной плоскости, проходящей через три точки: оптические центры камер 0 и 0" и точку наблюдения М. Выражая М через V и учитывая свойства смешанного произведения векторов, получим:
(у" тл2-т х ял;-У )Tt = о.
(7)
Соотношение (7) является основой для оценки матрицы Щ и вектора ¡. Предположим, что известны координаты п пар сопряженных точек и, соответственно, п пар векторов V¡' и V", ¡=1, 2... п.
Рассмотрим метод оценивания Щ и ¡, использующий (7). Так как это соотношение справедливо для любой пары сопряженных точек, имеем систему из п уравнений относительно неизвестных Щ и которую можно представить в виде:
ВА = 0, где Вп =
(у; тл-т х ял; у )
-1 < \т
(^ Л-*' хялуп )т
(8)
Система (8) является однородной линейной по I. Это означает, что вектор трасляции можно оценить только с точностью до постоянного множителя. Вводя условие нормировки ||/||2=1, количество возможных решений можно ограничить двумя, отличающимися знаком. Система (8) содержит пять неизвестных, следовательно, и число пар известных сопряженных точек п должно быть не менее пяти.
Поскольку на практике в матрицу Бп входят не точные значения координат сопряженных точек, а результаты их измерений, которые могут содержать ошибки, то реально система (8) имеет ненулевую правую часть, т. е. Б/=е, где е - вектор невязки, обусловленный наличием ошибок измерений.
Согласно МНК в качестве оценок матрицы вращения и вектора трансляции следует выбрать такие
Щ и ¡, которые минимизируют значения функционала 72(Щ,/)=еТе=/ТБпТБп/. Как упоминалось ранее, при условии ||/||2=1 квадратичная форма tTБnTБnt достигает минимума 11=АШп по t (А^ - минимальное собственное число матрицы БпТБп), если t - собственный вектор матрицы, соответствующий Ашп. Поэтому процедуру оценивания Щ и t можно разбить на два этапа. На первом - находится матрица Щ, минимизирующая Ашп. На втором - оценивается собственный вектор матрицы БпТБп, соответствующий Ашш. Существует множество алгоритмов и их программных реализаций для вычисления собственных векторов, поэтому второй этап не вызывает трудностей.
Значительно более сложной задачей является задача оценивания матрицы Щ. Один из возможных алгоритмов состоит в следующем. Известно, что матрица Щ может быть представлена в виде Щ=Щх(юхЩ(юу)Цю), где
Я =
Яу =
Я =
1 о о
0 соб тх - Бт сях 0 ю соб ю
соб юу 0 б1п юу
- б1п юу 0 соб юу
соб ю - б1п ю 0
г г
б1п ю соб ю 0
г г
0 0 1
Углы (о„ озу и (oz - три неизвестных параметра, от которых зависит матрица R. На практике всегда известен диапазон, в котором они могут лежать. Выполняя в этом диапазоне полный перебор по всем углам с достаточно грубым шагом (например, 1°), можно приблизиться к значениям, удовлетворяющим требованиям минимизации функционала J2 по R. Затем в окрестности этих значений для уточнения положения минимума можно воспользоваться одним из известных методов минимизации (например, наискорейшего спуска, Ньютона, Маркуардта).
3. Опорные точки изображения
Введем понятие точечной особенности x изображения, как точки, чья окрестность отличается от окрестностей близлежащих точек по выбранной мере, т. е. {Vx:|x'-x|<r^p(Qx, Qx)>e|, где Qx -окрестность точки x, называемая окном поиска, а p(fix, Q) - функция близости окрестностей по некоторой мере.
Большинство детекторов точечных особенностей работают сходным образом: для каждой точки изображения вычисляется некоторая функция от ее окрестности. Точки, в которых эта функция достигает локального максимума, очевидно можно отличить от всех точек из некоторой ее окрестности.
Существует целый набор функций, которые можно использовать для обнаружения точечных особенностей. Чаще всего для задач отслеживания точек сцены применяются функции, находящие в изображении структуры, похожие на угол - уголки (corners). Детекторы, использующие такие функции, называются детекторами углов. Именно они чаще всего применяются для решения задач отслеживания точечных особенностей сцены.
3.1. Алгоритм Харриса и Стефенса/Плесси
Угловой детектор Харриса основывается на местной функции сигнала. Пусть у нас есть точка (x,y) и некоторое смещение (Ax, Ay), тогда функцию сигнала можно записать следующим образом:
с( y) = Xt7 (хг, Уг) (X + Ax, y. + Ay )]2, (9)
W
где I является функцией изображения, а (x;,y;) -точка в окне W с центром в точке (x,y). Разложив функцию I по Тейлору и подставив в (9), получим: Ах
c(X, y) = [Ax Ay]C(x, y)
Ay
где C(x,y) фиксирует
яркость в локальной окрестности.
Пусть А1, А2 являются собственными значениями матрицы С(х,у). Возможны три варианта.
1. Если оба значения А1 и А2 близки к 0, то это означает, что функция яркости в окрестности данной точки меняется незначительно, а значит, она не может быть точкой особенности.
2. Если одно собственное значение матрицы большое, а другое близко к нулю, то локальная функция яркости меняется в одном направлении; это «ребро».
3. Если оба значения высоки, то даже небольшое смещение точки (x, y) в сторону вызывает значительные изменения в яркости, что может быть особенностью изображения; это «угол». Точки изображения, соответствующие локальным максимумам функции Ä=detC-k(traceC)2, и признаются особенностями. Параметр к обычно полагается равным 0,04...0,15 (предложено Харрисом).
Для снижения влияния шумов на найденные особенности используется сглаживание по Гауссу, но не в самом изображении, а в картах частных производных.
Во многих случаях находится чересчур большое количество углов, из-за чего в дальнейшем их будет сложно отслеживать. Поэтому вводится ограничение на минимальное расстояние между найденными особенностями, и все лишние отбрасываются.
3.2. Угловой детектор SUSAN
Название SUSAN происходит от сокращения полного английского названия алгоритма: Smallest Univalue Segment Assimilating Nucleus.
Рассмотрим рис. 3 с изображенным темным прямоугольником на белом фоне. Круговая маска (с центром в точке, которую будем называть ядром) показана на рисунке в пяти возможных позициях. Если яркость каждого пикселя внутри маски сопоставима с яркостью ядра данной маски, то тогда область маски может быть определена как имеющая одинаковую (или очень близкую) яркость с ядром. Эта часть маски называется USAN, сокращенно от Univalue Segment Assimilating Nucleus, и закрашена на рисунке белым цветом.
Для обнаружения особенностей SUSAN использует круглую маску с центром в «подозрительной» точке, называемой ядром. Радиус маски обычно равен 3,4 пикселя, что дает маску из 37 точек. Пусть M - некоторая область маски, m - точка, принадлежащая данному региону, а m0 - ядро маски. Будем сравнивать яркость каждой точки маски с ядром, используя следующую функцию:
1 if \1 (m) -1(mo)\ ^ t
c(m, m0) =
0 if \ I (m) -1 (m0)| > t'
(10)
На основе данной функции, пройдя по всей маске, получим суммирующую функцию:
n(m) = £ c(m, m0).
(11)
Эта функция обозначает число точек в области USAN. Параметр t в уравнении (10) показывает минимальную границу контраста для выделения особенности.
Часть маски, где пиксели имеют ту же яркость, что и ядро Рис. 3. Круговые маски
Далее, значение функции (11) в каждой точке (ядра) сравнивается с фиксированным порогом g (геометрическим порогом). Значение этого порога рекомендуется устанавливать равным 3nmJ4, где игаах - максимальное значение функции n(m) на изображении.
Тогда SUSAN оператор вычисляется по следующей формуле:
R(mo) =
g - n(mo) if n(mo) < g 0 if n(mo) ^ g'
(12)
Значение оператора всегда положительное. Чем меньше USAN область, тем больше отклик угла.
Для более стабильного результата есть смысл заменить формулу (11) на следующую:
c(m, m0) = e
I (m )-I (mo)
(13)
Те точки, в которых оператор SUSAN принимает не нулевое значение, могут быть точками особенности.
3.3. Угловой детектор Хэдли и Трайкович
Этот детектор особенностей состоит из точек в так называемом круге Брезенхама [10] радиуса r с центром в предполагаемой точке особенности. Если непрерывная последовательность из n точек ярче, чем некое ядро, на некоторое число t или наоборот, темнее, то тогда точка ядра будет особенностью изображения. Радиус r может быть любым, однако лучше использовать значение, равное 3 (соответствует кругу из 16 точек окружности). Кроме того, экспериментально вычислено, что наилучшее значение n - это 9. При n меньше 9 - углы не обнаруживаются на изображении. Детектор прямо
проверяет точку с окружающим ее пространством. Если с - рассматриваемая точка, peP - точка в круге P с центром вокруг с, а точка p' противоположна p по линии диаметра, то функция отклика выглядит следующим образом:
г (с) = min[( I( p) -1 (с))2 +( I( p ') -1 (с))2].
peP
Точки, в которых значение функции г(с) будет больше заданного порога, определяются как потенциальные углы. Вычислить подлинные углы можно, использовав подавление в точках отсутствия максимума (non-maximum Suppression).
3.4. Развитие алгоритмов слежения
Все современные алгоритмы слежения за особенностями опираются на работу 1981 г. Лукаса и Канаде. В 1991 г. математическая формулировка этого алгоритма была изменена и стала основой для всех последующих обобщений с учетом аффинных искажений окрестности и освещенности.
• Lucas-Kanade - особенность считается только смещающейся, без искажений [5];
• Tomasi-Kanade - переформулирование Lucas-Kanade. Движение считается смещением, и рассчитывается путем итеративного решения построенной системы линейных уравнений [6];
• Shi-Tomasi-Kanade - учитывает аффинные искажения особенности [4].
3.4.1. Алгоритм Lucas-Kanade
Этот алгоритм в принципе применим для функций любой размерности п. Пусть х - особенность первой функции F. Необходимо найти такую точку х+h функции G, что разность окрестностей этих точек по мере минимальна.
Расстояние между окрестностями записывается в виде E = [F(x + h) - G(x)]2, где F(x), G(x) -
две функции, которые можно разложить в ряд Тейлора. Используя это приближение, ищем минимум E путем дифференцирования и приравнивания производной к нулю. Смещение h можно получить как
-1
h =
[G (x) - F (x)]
Sxl f Ilf
Как было указано ранее, задача слежения за особенностями без учета аффинных искажений является поиском величины оптического потока в наборе точек. Поэтому метод Lucas-Kanade часто применяется для поиска оптического потока во всем изображении.
3.4.2. Алгоритм ТотазиКапаСе
В этом алгоритме движение особых точек также описывается смещением вида: delta(x)=x+d. Как и в предыдущем алгоритме, задача заключается в поиске такого й, при котором минимизируется разность
окон особенностей: д = X [ / (х + d, t + т) -1 (х, t )]2.
Разложив функцию изображения в ряд Тейлора, разницу между окнами по мере можно переписать в виде Я~Х[^!(х,t)Td +1,(х,От]2. Продифференцировав это выражение по й и приравняв производную к нулю, получаем линейную систему относительно й: Cd=g, где
I..L
и g
=-■£ I tv.
4. Решение задачи и результаты
Предположим, что имеются два снимка какой-то сцены. Необходимо узнать, как изменился второй снимок относительно первого. Были опробованы все описанные выше методы. Приемлемое по качеству решение было получено на следующем пути.
Сначала будем искать опорные точки, т. е. такие точки изображения, которые можно отличить от всех соседних с ней точек изображения. Поделим изображение на 9 одинаковых частей, и в каждой части будем искать опорную точку. Таким образом найдем наиболее удаленные друг от друга точки. Для поиска будем использовать алгоритм Трайковича. Для второго изображения воспользуемся алгоритмом Shi-Tomasi-Kanade по причине возможного аффинного преобразования. Таким образом, получили в лучшем случае два набора по девять точек. Это избыточно, но дает шанс для более точных дальнейших вычислений.
Есть уравнения вида:
= R
V
x
= к-
i =
Из этой системы получаем й как dk=C^lg.
С учетом приближения функции изображения с помощью ряда Тейлора, решение получается неточным. Для его уточнения удобно применить итеративную процедуру Ньютона-Рафсона.
3.4.3. Алгоритм 5Ы-Тотаз1-КапаСе
В этом алгоритме учитываются аффинные искажения изображения окрестности особых точек, поэтому движение пикселей окна особенности описывается в виде Ах+й, где А - матрица 2x2, а й -смещение.
Задача слежения за особенностью сводится к проблеме определения параметров движения и искажения окна особенности, при которой минимизируется разность д=\\Ж[1(&х+й)-1(х)]1у(х)йх, где Ж - окно особенности, а V - весовая функция в окне, 1(х) и 1(х) - два изображения.
Выражение дифференцируется относительно параметров движения, и производная приравнивается к 0. Затем система линеаризуется с помощью разложения функции изображения в ряд Тейлора. Это дает нам линейную 6x6 систему, которая решается итеративно по методу Ньютона-Рафсона.
где (х,у)т - точка в плоскости первого изображения, являющаяся проекцией точки в пространстве (X, У,%)т, (вд)т - это точка в плоскости второго изображения, являющаяся проекцией точки (ЦУ^Щ)т в пространстве, К- - матрица внутренних параметров камеры, R и / - искомые матрица вращения и вектор сдвига соответственно. Каждое уравнение указано в «своих» координатах: первое - в глобальной системе, второе - в системе камеры в первом положении, третье в системе камеры, находящейся во втором положении.
С учетом того, что известны двумерные координаты точки на каждом изображении и матрица внутренних параметров, можем считать, что и трехмерные координаты также известны. Таким образом, получаем четыре уравнения вида
Г X^Л Г UЛ
Y i = R V +1.
1Z У IW j
Распишем их более подробно:
Х1 = riiUi + ^12V + ЬЩ + ti
X2 = ri1U2 + ri2V2 + ri3W2 + t1
X3 = ri1U3 + ri2V3 + Г13Щ3 + t1 „ X4 = ri1U4 + ri2V4 + Г13Щ4 + t1 Y1 = r21U1 + r22V1 + r23W1 + t2
Y2 = r21U2 + r22V2 + r23W2 + t2
Y3 = r21U3 + r22V3 + r23W3 + t2 Y4 = r21U4 + r22V4 + r23W4 + t2
^1 *31^1 ^ Г32 ^ Г33Ш ^ ,3
^2 = *31^2 ^ Г32 ^2 ^ ^3^2 ^ ,3
23 = г31и3 + г32К, + г33Ш + ,3
^4 = *31^4 ^ Г32^4 ^ ^33^4 ^ ,3
Видим, что неизвестные каждой системы не зависят от неизвестных других систем. В каждой системе четыре неизвестных: три из матрицы вращения и одна неизвестная из вектора сдвига. Поэтому и требовалось лишь четыре особых точки. Каждая система представляет линейные уравнения. Распишем более подробно первую систему:
Х1 = Г11и1 + Г12 + Г13Ш1 + ,1
Х2 = ^1^2 ^ Г12 ^2 ^ Г13Ш2 ^ ,1
Х3 = ^3 ^ Г12^3 ^ Г13Ш3 ^ ,1
Х4 = ^1^4 ^ Г12^4 ^ Г13Ш ^ ,1
Л
11
1
-1
= 0,
где А =
^3 V,
Ш3 1 х
4 У
Приведя А к верхне-треугольному виду, получим решение в общем виде:
,, = А45
Г'3 = — А35 — ,;
Г 2 = —А23Г13 — ^ — А25
Г'1 = А12Г2 — А13Г3 — ,1 — А15 , ' = 1---3-
Время работа алгоритмов проверялось на трех изображениях, заданных заранее. Изображения комбинировались различными способами, и замерялось время работы приложения. Среднее время работы оказалось равным 515,5 мс. Заметим, что аналогичная задача в литературе не рассматривалась, поэтому непосредственно сравнить эффективность нашего решения с подобной задачей невозможно. Однако, можно попытаться позиционировать нашу задачу среди аналогичных. Близкие, но более сложные задачи возникают при обработке
космических снимков и в других областях. Часто они имеют неприемлемо большие времена решения, десятки минут. Для того, чтобы их решить за приемлемое время, применяют параллельные вычислительные системы. С другой стороны, аналогичные задачи встречаются в робототехнике. Требования на время реакции таких систем - десятки миллисекунд. В реальных системах эти параметры достигаются, но при этом исключаются аффинные преобразования, используют только параллельный перенос, поворот и изменение масштаба.
5. Заключение
В значительной мере данная разработка является экспериментальной. Тестирование алгоритмов проводилось в условиях близких у идеальным. Не были учтены некоторые условия. Полученные с камеры снимки могут отличаться резкостью, это может происходить по разным причинам: не успела произойти фокусировка, или фокус сместился относительно предыдущего объекта фокусировки. В связи с этим, возникает проблема определения соответствия точечных особенностей между кадрами со значительно отличающейся резкостью изображения. Традиционные методы, как сопоставления особенностей между кадрами, так и отслеживания перемещения особенностей, не справляются с подобной ситуацией.
Может меняться и степень освещенности изображения. В этом случае также возможно использовать метод «усреднения» изображения, т. е. приводить все полученные с камеры изображения к заранее определенному образцу. Один из таких методов описан в [5] и [7]. Как и в любой работе с изображениями, мы не застрахованы от наличия шумов на них, избавиться от которых можно при помощи специальных фильтров. Множество таких фильтров описаны в [9]. Но любое дополнительное действие над изображениями будет замедлять общую работу.
Разработанные алгоритмы можно использовать при разработке систем управления мобильным устройством, а также при создании разнообразных игр для мобильных устройств.
и
СПИСОК ЛИТЕРАТУРЫ
1. Грузман И.С., Киричук В.С., Косых В.П., Перетягин Г.И., Спектор А.А. Цифровая обработка изображений в информационных системах. - Новосибирск: Изд-во НГТУ, 2000. -168 с.
2. Harker M., O’Leary P. Computation of Homographies // Austria, Leoben: Tech. Rep., Dep. of Product Engineering, Univ. of Leoben, 2005. - 10 p.
3. Zhengyou Z. A Flexible New Technique for Camera Calibration // Microsoft Research Tech. Rep. MS-98-71. - 1998. - 21 p.
4. Shi J., Tomasi C. Good Features to Track // Proc. IEEE Conf. on Computer Vision and Pattern Recognition. - Seattle, WA, USA, 1994. - P. 593-600.
5. Lucas B.D., Kanade T. An Iterative Image Registration Technique with an Application to Stereo Vision // International Joint Conf. on Artificial Intelligence. - 1981. - P. 674-679.
6. Tomasi C., Kanade T. Detection and Tracking of Point Features // Carnegie Mellon Univ., Tech. Rep. CMU-CS-91-132. - 1991. -20 p.
7. Jin H., Favaro P., Soatto S. Real-time tracking and outlier rejection with changes in illumination // Proc. IEEE Intern. Conf. on Computer Vision. - 2001. - P. 684-689.
8. Hartley R.I. Self-Calibration of Stationary Cameras // Intern. J. of Computer Vision. - 1997. - V. 22. - № 1. - P. 5-23.
9. Методы компьютерной обработки изображений / под ред. В.А. Сойфера. - М.: Физматлит, 2003. - 784 с.
10. Van Aken J.R. An Efficient Ellipse Drawing Algorithm // Computer Graphics & Artificial Intelligence. - 1984. - V. 4. - № 9. -P. 24-35.
Поступила 03.04.2010г.
УДК 519.688
АЛГОРИТМ РАСПАРАЛЛЕЛИВАНИЯ ОБРАБОТКИ ЦИФРОВОГО ВИДЕОПОТОКА
А.М. Кох
Томский университет систем управления и радиоэлектроники E-mail: alexander.koh@maiconcept.ru
Предложен новый алгоритм декодирования цифрового видеопотока, в котором использовано распараллеливание вычислений в сочетании с синхронизацией реконструкции опорных и предсказанных блоков видеоинформации. Алгоритм в два раза производительнее существующих аналогов для видеопотоков стандартного разрешения и на треть для видеопотоков высокой четкости.
Ключевые слова:
Цифровое видео, параллельные алгоритмы, компенсация движения, синхронизация, MPEG, VC-1.
Key words:
Digital video, parallel algorithms, motion compensation, synchronization, MPEG, VC-1.
Семейство MPEG-форматов, состоящее из MPEG-2, MPEG-4, H.264 (AVC) и VC-1, является наиболее распространенным, в связи с чем задача разработки модификаций, направленных на повышение производительности алгоритмов сжатия и декодирования, остается актуальной.
С увеличением разрешения и битрейта цифрового видеопотока (до 1920x1080 с битрейтом до 40 Мбит/с для видеопотока высокого разрешения) применение алгоритмов распараллеливания для обработки цифровой видеоинформации выходит на передний план, позволяя использовать все возможности и преимущества многопроцессорной техники.
Известно, что изображения в MPEG-последовательности подразделяются на следующие типы [1]:
• I (intra), играющие роль опорных при восстановлении остальных изображений по их разностям;
• Р (predicted), содержащие разность текущего изображения с предыдущим I или predicted с учетом смещений отдельных фрагментов;
• В (bidirectionallypredicted), содержащие разность текущего изображения с предыдущим и последующим изображениями типов I или Р с учетом смещений отдельных фрагментов.
Отдельные изображения состоят из макроблоков. Макроблок - основная структурная единица фрагментации изображения, он соответствует участку изображения размером 16x16 пикселей. Для них определяются векторы движения относительно I- или Р-изображений. В свою очередь каждый макроблок состоит из нескольких блоков, количество которых определяется форматом сжатия, несущих информацию о яркости Y, цветовых U- и F-компонентах. Блоки являются базовыми структурными единицами, над которыми осуществляются основные операции кодирования, в том числе выполняется дискретное косинусное преобразование (DCT - Discrete Cosine Transform) и квантование полученных коэффициентов [2]. Векторы движения определяют расстояние между двумя фрагментами на экране, основываясь на количестве пикселей между этими областями.