Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 429 / 54 | Длительность: 19:27:00

Лекция 4: Отслеживание движения и алгоритмы сопровождения ключевых точек

2.4. Методы сопровождения объектов, основанные на вычислении оптического потока

С каждым пикселем изображения можно связать некоторый вектор скорости, который определяет, какое расстояние "прошел" пиксель в течение временного промежутка между предыдущим и текущим кадрами. Такая конструкция, построенная для каждого пикселя изображения, представляет собой плотный оптический поток. Одним из наиболее известных алгоритмов сопровождения, основанных на вычислении плотного оптического потока, является метод Хорна (Horn-Schunk method) [8, 25]. По существу данный метод предполагает решение системы дифференциальных уравнений, полученных в задаче математического программирования (раздел 1.6), с помощью итерационных методов для построения компонент вектора скорости в каждой точке изображения.

Другой класс алгоритмов, использующих плотный оптический поток, – алгоритмы сопоставления блоков (block matching algorithms, [8]). Идея состоит в том, что предыдущее и текущее изображения разбиваются на блоки, как правило, квадратные и перекрывающиеся, а затем определяется движение этих блоков посредством сопоставления. Поскольку алгоритмы сопоставления работают с блоками, то изображение поля скоростей обычно имеет меньшее разрешение по сравнению с исходным изображением.

Алгоритм Лукаса-Канаде (Lucas-Kanade) основан на вычислении разреженного оптического потока, т.е. на построении векторного поля скоростей для выделенного набора точек. Задача слежения без учета аффинных искажений с помощью данного алгоритма сводится к поиску оптического потока в особых точках [26]. Впоследствии появились модификации данного алгоритма Томаши-Канаде (Tomasi-Kanade) и Ши- Томаши-Канаде (Shi-Tomasi-Kanade). Трекер Ши-Томаши-Канаде впервые учитывает аффинные искажения окрестных точек. Также существует модификация метода для случая переменного освещения [27].

В литературе можно обнаружить различные модификации перечисленных методов. В [28] предлагается сравнение производительности различных алгоритмов сопровождения с использованием оптического потока.

2.5. Применение метода "сдвиг среднего" к решению задачи сопровождения

Несколько в стороне стоят методы сопровождения, основанные на использовании техники "сдвиг среднего" (mean shift) [8, 23, 24]. Идея методов состоит в том, что для каждой особой точки (в общем случае, для каждого объекта) выбирается окно поиска, вычисляется центр масс распределения интенсивностей (гистограммы). Соответственно центр окна смещается в центр масс, который представляет собой положение точки на текущем кадре. Определение положения точки на последующих кадрах сводится к применению очередного шага метода "сдвига среднего". Метод останавливается, когда центр масс перестает смещаться.

2.6. Применение фильтра Кальмана для оценки положения объекта

Задачу сопровождения можно рассматривать как хорошо изученную проблему теории управления, которая состоит в том, чтобы оценить состояние системы на основании последовательности зашумленных измерений [9]. Формально имеется модель объекта, которая наблюдается в зашумленном пространстве сцены. Обозначим через x – модель объекта, z – наблюдение объекта. В общем случае x,z – вектора признаков, которые вполне могут иметь разную размерность. В процессе сопровождения объекта модели и наблюдения могут использоваться двумя способами:

  1. Последовательность наблюдений z_1,z_2,... применяется для уточнения базовой модели x . Заметим, что модель с течением времени также может изменяться, поэтому каждое новое наблюдение z_k может давать новую оценку модели x_k.
  2. Построенная оценка модели x_k используется для предсказания модели x_{k+1} и наблюдения z_{k+1}.

В результате получаем механизм обратной связи: наблюдаем z_k, оцениваем x_k, предсказываем x_{k+1} и z_{k+1} , обновляем x_{k+1} на основании z_{k+1}. Такой механизм лежит в основе методов сопровождения, основанных на фильтрах Кальмана и фильтрах частиц. В данном разделе остановимся на применении фильтра Кальмана.

Фильтр работает в предположении, что система является линейной (наблюдение являются линейной функции состояния) и шумы описываются Гауссовым распределением с математическим ожиданием, равным нулю. Тогда модель обратной связи может быть описана векторными уравнениями (4.40) и (4.41).

x_{k+1}=F_kx_k+w_k, ( 4.40)
z_k=H_kx_k+v_k, ( 4.41)

где F_k– матрица преобразования состояния системы; w_k – "белый" шум с нормальным распределением N(0,Q_k) с математическим ожиданием, равным 0, и матрицей ковариации Q_k;H_k– матрица связи модели и наблюдения; v_k – "белый" шум с нормальным распределением N(0,R_k). Заметим, что по определению матрицы ковариации Q_k=M(w_kw^T_k),, (Q_k)_{ij}=M(w^i_kw^j_k),.5Если X,Y – две случайные величины, определенные на одном и том же вероятностном пространстве, тогда ковариация численно равна математическому ожиданию от произведения случайных величин X-MX и Y-MY , где MX,MY – математическое ожидание случайных величин X,Y , т.о. cov(x,Y)=M((x-MX)(Y-MY)).

Приведем пример модели для случая равномерного движения [8]. Состояние системы определяется положением и скоростью точки, тогда состояние может быть представлено вектором вида (4.42).

x_k=\begin{bmatrix}
x \\
y \\
v_x \\
v_y
\end{bmatrix}_k ( 4.42)

Матрица преобразования состояния F_k=F и, исходя из физических соображений, может быть записана согласно (4.43).

F=\begin{bmatrix}
1 & 0 & dt & 0\\
0 & 1 & 0 & dt\\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix} ( 4.43)

Поскольку при сопровождении камера регистрирует только координаты положения объекта, то z_k=\begin{bmatrix}
z_x \\
z_y 
\end{bmatrix}_k Поэтому матрицу связи наблюдения и предсказания H_k=H можно записать в соответствии с (4.44).

H=\begin{bmatrix}
1 & 0 \\
0 & 1 \\
0 & 0 \\
0 & 0 
\end{bmatrix} ( 4.44)

Т.к. в реальных условиях нельзя наблюдать равномерное движение, то вводится Гауссов шум с матрицей ковариации Q_k . Матрица ковариации R_k строится, исходя из того, насколько точно выполняются измерения положения объекта.

Теперь необходимо получить обобщенные уравнения для обновления состояния и модели. Идея состоит в том, что сначала строится априорная оценка \tilde{x}^-_k состояния согласно (4.40):

\tilde{x}^-_k=F_{k-1}x_{k-1}+w_{k-1}. ( 4.45)

Затем с использованием построенной оценки вычисляется наблюдение

z_k=H_k\tilde{x}^-_k+v_k. ( 4.46)

Также можно определить апостериорную оценку \tilde{x}^+ состояния, которая строится после наблюдения. Введем ошибки e^-_k(4.47) и e^+_k(4.48), связанные с каждой оценкой состояния.

e^-_k=x_k-\tilde{x}^-_k ( 4.47)
e^+_k=x_k-\tilde{x}^+_k ( 4.48)

Фильтр Кальмана оперирует разностью z_k-H_k\tilde{x}^-_k , в которую вносит вклад ошибка e^-_k и случайный шум v_k . В идеальном случае шум отсутствует и оценка состояния идеальна, поэтому указанная разность обращается в ноль. Задача состоит в том, чтобы построить матричный коэффициент Кальмана K_k с целью обновления апостериорной оценки согласно (4.49). Отсюда, если K_k известен, то известен закон получения обновленной модели x_k .

\tilde{x}^+_k=\tilde{x}^-_k+K_k(z_k-H_k\tilde{x}^-_k) ( 4.49)

Уравнения (4.47) – (4.49) позволяют получить выражение связи априорной и апостериорной ошибки (4.50).

e^+_k=x_k-\tilde{x}^+_k=x_k-((E-K_kH_k)\tilde{x}^-_k-K_kz_k)=x_k-(E-K_kH_k)\tilde{x}^-_k+K_k(H_kx_k+v_k)= ( 4.50)
=(E-K_kH_k)e^-_k+K_kv_k

Из определения матрицы ковариации пары случайных величин следуют выражения (4.51).

P^-_k=M(e^-_ke^{-T}_k),\,\,\,\,P^+_k=M(e^+_ke^{+^T}_k),\,\,\,\,R_k=M(v_k,v^T_k) ( 4.51)

Вследствие независимости ошибок e^-_k и e^+_k получаем нулевую ковариацию для величин e^-_k и v_k (4.52).

M(e^-_kv^T_k)=M(v_ke^{-T}_k)=0 ( 4.52)

Проделав несложные преобразования (4.53) (умножение (4.50) на e^{+^T}_k и определение математического ожидания от полученного выражения), можно перейти к уравнению с матрицами ковариации (4.54).

e^+_ke^{+^T}_k=(E-K_kH_k)e^-_ke^{+^T}+K_kv_ke^{+^T}
=(E-K_kH_k)e^-_k((E-K_kH_k)e^-_k+K_kv_k)^T
+K_kv_k((E-K_kH_k)e^-_k+K_kv_k)^T
=(E-K_kH_k)e^-_ke^{-T}_k(E-K_kH_k)^T+(E-K_kH_k)e^-_kv^T_kK^T_k
+K_kv_ke^{-T}_k(E-K_kH_k)^T+K_kv_kv^T_kK^T_k ( 4.53)
P^+_k=(E-K_kH_k)P^-_k(E-K_kH_k)^T+K_kR_kK^T_k ( 4.54)

Отсюда получаем, что матрицу K_k необходимо выбрать так, чтобы сумма диагональных элементов (след) матрицы P^+_k был минимален.

trace(p^+_k) \rightarrow min_{K_k} ( 4.55)

Решение данной задачи определяется посредством дифференцирования функции trace(p^+_k) по K_k(4.56)6Результат дифференцирования получается благодаря применению свойства \frac {\delta} {\delta A} (trace(ABA^T))=2AB при условии, что матрица B является симметричной..

-2(E-K_kH_k)P^-_kH^T_k+2K_kR_k=0 ( 4.56)

Как следствие, получаем формулу (4.57) для вычисления матрицы K_k.

K_k=P^-_kH^T_k(R_k+H_kP^-_kH^T_k)^{-1}, ( 4.57)

где

P^-_k=F_kP^+_{k-1}F^T_k+Q_{k-1}. ( 4.58)

Заметим, что посредством несложных математических выкладок можно вывести формулу (4.59) для вычисления

P^+_k=(E-K_kH_k)P^-_k ( 4.59)

Подводя итог, более четко выделим схему работы фильтра:

  1. Предсказание. Предполагает вычисление априорной оценки состояния \tilde{x}^-_k (4.45) и наблюдения z_k (4.46).
  2. Коррекция. Включает определение матричного коэффициента Кальмана K_k (4.57) и построение апостериорной оценки состояния \tilde{x}^+_k согласно (4.49).
Андрей Терёхин
Андрей Терёхин

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

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "