Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дипломчик.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3.03 Mб
Скачать

4 Анализ видеоизображения. Слежение за лицом

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

Пусть – полученная прямоугольная область изображения лица от детектора лиц с камеры в момент времени t. Множество точек лица .

Пусть множество I= – это изображение в каждый момент времени t от 0 до k, где t дискретно.

Рассмотрим ,

где – изображение фона; (x,y) ∈ G – область определения изображения.

Задача: найти  на изображении  .

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

4.2 Метод Лукаса-Канаде

Рис. 15 Вычисление смещения

4.2.2 Одномерный случай

Для начала рассмотрим одномерный случай.

Представим себе два одномерных кадра 1 пиксель в высоту и 20 пикселей в ш ирину. На втором кадре изображение немного будет смещено вправо. Именно это

смещение мы и хотим найти. Для этого представим эти же кадры в виде функций (рисунок 15). На входе позиция пикселя, на выходе — его интенсивность. В таком представление искомое смещение (d) видно еще более наглядно. В соответствии с нашим предположением,   это просто смещенная   , то есть можем сказать, что  . Обратите внимание, что   и   при желании можно записать и в общем виде:   где y и t зафиксированы и равны нулю. Для каждой координаты нам известны значения   и   в этой точке, кроме того мы можем вычислить их производные. Свяжем известные значения со смещением d. Для этого запишем разложение в ряд Тейлора для  : Сделаем второе важное предположение: предположим, что   достаточно хорошо аппроксимируется первой производной. Сделав это предположение, отбросим всё, что после первой производной: Тут мы теряем в точности, если только наша функция/изображение не строго линейна, как в нашем искусственном примере. Зато это существенно упрощает метод, а для достижения требуемой точности можно сделать последовательное приближение, которое мы рассмотрим позже. Смещение d — это наша искомая величина, поэтому надо что-то сделать с  . Как мы условились ранее,  , поэтому просто перепишем: То есть:

4.2.2 Двумерный случай

Теперь перейдем от одномерного случая к двумерному. Запишем разложение в ряд Тейлора для   и сразу отбросим все старшие производные. Вместо первой производной появляется градиент: Где   — вектор смещения. В соответствии со сделанным допущением  . Обратите внимание, что это выражение эквивалентно  . Это то, что нам нужно. Перепишем:

Поскольку между двумя кадрами проходит единичный интервал времени, то можно сказать, что  есть не что иное, как производная по времени.  Перепишем: Перепишем ещё раз, раскрыв градиент: Мы получили уравнение, которое говорит нам о том, что сумма частных производных должны быть равна нулю. Проблема только в том, что уравнение у нас одно, а неизвестных в нем два:   и  . На этом моменте начинается полет фантазии и разнообразие подходов. Сделаем третье предположение: предположим, что соседние пиксели смещаются на одинаковое расстояние. Возьмем фрагмент изображения, скажем 5 на 5 пикселей, и условимся, что для каждого из 25 пикселей   и   равны. Тогда вместо одного уравнения мы получим сразу 25 уравнений! Очевидно, что в общем случае система не имеет решения, поэтому будем искать такие   и  , которые минимизируют ошибку: Здесь g — это функция, определяющая весовые коэффициенты для пикселей. Самые распространенный вариант — двухмерная гауссиана, которая дает наибольший вес центральному пикселю и все меньший по мере удаления от центра. Чтобы найти минимум   воспользуемся методом наименьших квадратов, найдем её частные производные по   и  : Перепишем в более компактной форме и приравняем к нулю: Перепишем эти два уравнения в матричной форме: где Если матрица М обратима (имеет ранг 2), можем вычислить   и  , которые минимизируют ошибку E: Вот собственно и все. Мы знаем приблизительное смещение пикселей между двумя соседними кадрами. Поскольку в нахождении смещения каждого пикселя участвуют также соседние с ним пиксели, при реализации данного метода целесообразно предварительно посчитать производные кадра по горизонтали и вертикали.