Upload
computer-science-club
View
710
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Основы видеообработки
Видео
Последовательность изображений, полученных с одной камеры через небольшие промежутки времени
• Пользовательское видео – от 3-5 кадров/сек до 30-50 кадров/сек
• Работая с видео, мы предполагаем, что наблюдаемые объекты изменяются между кадрами незначительно
• «Незначительно» может сильно вариьироваться – от смещения на 1 пиксель, до смещения на десятки и более пикселей
Движение
• Движение – главное отличие видео от изображений• Движение само по себе является мощной визуальной подсказкой• Суть многих действий именно в динамике• Иногда достаточно отследить движение отдельных точек, чтобы
распознать событие
Что показано в видео?
Распознавание по движению
http://www.biomotionlab.ca/Demos/BMLwalker.html
Описание движения
• Точки наблюдаемой сцены движутся относительно камеры / изображения
• Векторное поле движения 2D проекций на изображение 3D точек объектов сцены называется полем движения (motion field)
• Нужно это движение как-то формализовать, описывать и измерять
Оптический поток
• Движение точек объектов по видео увидеть можно далеко не всегда• Пример:
• Серый матовый шар, освещается с одной стороны и вращается вокруг своей оси• Яркость всех пикселов изображения в этом случае будет постоянной
•Оптический поток (optical flow) – векторное поле видимого (apparent) движения пикселей между кадрами
• Вычисление оптического потока – одна из базовых задач анализа видео • Задача похоже на задачу попиксельного сопоставления двух изображений одной и той же сцены
Визуализация
Вектора движения для отдельных точек или всего
изображения
Цветовое кодирование вектора движения. Каждому направлению и
амплитуде свой цвет и яркость
Оптический поток
• Векторное поле движения пикселей между кадрами
• Задача - аналог задачи сопоставления изображений (dense matching)
• Один из базовых инструментов анализа изображений
Постановка задачи
• Как оценить движение пикселей от H в изображение I?• Проблема соответствия пикселей!
– Пусть дан пиксель H, наити близкие пиксели того же цвета в I
• Ключевые предположения• Константный цвет: точка в H выглядит также, как и в I
– Для изображения в градациях серого, это постоянная яркость• Малое движение: точки не уезжают далеко между кадрами
Ограничения на оптический поток
• Используем ограничения для формализации задачи• Постоянная яркость• Малое смещение: (u и v меньше 1-го пикселя)
– Разложим функцию картинки в ряд тейлора I:
Уравнение оптического потока• Объединим два ограничения
В пределе u и v стремятся к нулю, и получаем равенство:
Уравнение оптического потока
• Элементарное уравнение оптического потока:
• Вопрос: сколько неизвестных и уравнений для каждого пикселя?
• 1 уравнение, 2 неизвестных (u, v)
Дополнительные уравнения• Как можно получить больше уравнений?• Идея: наложить дополнительные ограничения
• Пусть оптический поток меняется плавно• Вариант: пусть для всех пикселей p из окрестности (x,y)
смещение (u,v) постоянно!– Для окна 5x5 получаем 25 уравнений для
каждого пикселя!
Цвет вместо яркости• При использовании окна 5x5 получается 25*3
уравнений на пиксель!
Алгоритм Лукаса-Канаде• Проблема: больше уравнений, чем неизвестных!
• Получаем задачу наименьших квадратов• Можем решить её через нормальные уравнения
• Суммируем по всем пикселям в окне K x K • Это метод был предложен Лукасом и Канаде в 1981 году
bAAAd TT 1)(
Алгоритм Лукаса-Канаде
B. D. Lucas and T. Kanade. An iterative image registration technique with an application to stereo vision. In DARPA Image Understanding Workshop, April 1981.
• Оптимальные (u, v) удовлетворяют уравнению
• Которое может быть решено через нормальные уравнения
bAAAd TT 1)(
Условия на разрешимость• Решение задачи оптического потока d = (u,v) может быть
найдено в виде
• Когда задача разрешима?• ATA должна быть обратимой• ATA не должна быть слишком близка к нулю
– С.значения l1 и l2 матрицы ATA не должны быть малы• ATA должна быть хорошо определима
– l1/ l2 не должно быть слишком велико– (l1 = наибольшее с.значение)
• ATA разрешима, когда нет апертурной проблемы
bAAAd TT 1)(
Проблема апертуры
Проблема апертуры
Анализ участка изображения
Края
– большие градиенты– большое l1, маленькое l l2
Слабоконтрастная текстура
– величина градиента мала– малое l1, малое l2
Текстурированная область
– градиенты разные, большая амплитуда– большое l1, большое l2
Замечание• Поиск оптического потока производится между
двумя изображениями, но: • Можем оценить качество оценки только по 1
изображению!• По 1 картинке можно сказать, в каких точках поток будет
считаться хорошо, а в каких - нет• На этом основаны методы выбора особенностей для
отслеживания• Фактически, поиск особых точек!
Jianbo Shi and Carlo Tomasi, "Good Features to Track," СVPR 1994
Погрешности метода Л-К• Каковы потенциальные источники ошибок?
• Предполагаем, что ATA обратима• Предполагаем, что в изображении мало шума
• Когда эти предположения нарушаются:• Яркость точки не постоянная• Движение между кадрами большое• Движение соседей отличается от движения точки
– Окно поиска слишком большое– Какой наилучший размер окна поиска?
Итеративное уточнение
• Итеративный вариант алгоритма Лукаса-Канаде1. Оценить движение в каждом пикселе, решив уравнения
Лукаса-Канаде2. Преобразовать изображение H используя вычисленное
движение3. Повторить 1-2 до сходимости
Пример
xx0
Initial guess: Estimate:
estimate update
0 = 퐼 + 퐼 푑 - Рассмотрим одномерный случай (d – cмещение)
Пример
xx0
estimate update
Initial guess: Estimate:
Пример
xx0
Initial guess: Estimate:Initial guess: Estimate:
estimate update
Пример
xx0
Замечания
• Сглаживаем изображения для более аккуратного вычисления градиентов
• Лучше градиенты вычислять по одному изображению, а преобразовывать другое
• Преобразование изображения приводит к ошибкам из-за дискретизации, можем потерять в точности
Проблема большого смещения
• Насколько мало движение в изображении?• Существенно больше 1-го пикселя• Как можно решить эту проблему?
Пирамида разрешений
Пирамиды изображений
• Известна как Пирамида Гауссиан • В компьютерной графике – “mip map” [Williams, 1983]
Slide by Steve Seitz
P. Burt and E. Adelson, “The Laplacian pyramid as a compact imagecode,” IEEE Trans. Commun., vol. 31, no. 4, pp. 532–540, 1983.
Построение пирамиды
Маска фильтра
• Повторяем до достижения минимального разрешения• Сглаживаем с помощью фильтра Гаусса текущее изображение• Сэмплируем – берём каждый k-ый пиксель (обычно, каждый 2ой)
Slide by Steve Seitz
image Iimage H
Гауссова пирамида для H Гауссова пирамида для I
image Iimage Hu=10 пикселей
u=5 пикселей
u=2.5 пикселей
u=1.25 пикселей
Иерархический метод
image Iimage J
Гауссова пирамида для H Гауссова пирамида для I
image Iimage H
Иерархический метод
итеративный L-K
итеративный L-K
масштабирование
.
.
.
Другие модели движения• В рассматриваемых алгоритмах модель движение –параллельный перенос (u,v)• Можно использовать другие модели
• поворот, аффинную, перспективную• Необходимо просто вычислить соответствующий Якобиан
it
i
I TTT
TTT
I)(JbA
JI)I(JAA
Проблемы:• Много параметров, столько же исходных данных• Меньшая устойчивость и надежность
Jianbo Shi and Carlo Tomasi, "Good Features to Track," СVPR 1994
Глобальный подход
• Зачем решать для каждого пикселя уравнение независимо?
• Зададим одну функцию качества оптического потока для всего изображения в целом (Horn, 1980)
• Оптимизировать её каким-нибудь методом оптимизации, например, методом сопряженных градиентов
Глобальный подход
• Первый член – задаёт условие «видимого движения», цвета пикселей после сдвига должны совпадать
• Второй член задаёт ограничения на изменение векторов оптического потока между пикселами
Штрафы на поток
• Квадратичный
• Charbonnier(дифференцируемый L1)
• Lorenzian
Sun, D., Roth, S., and Black, M. J., Secrets of optical flow estimation and their principles, CVPR, June 2010
Робастные метрики, устойчивые к разрывам оптического потока на границах объектов
Рейтинг алгоритмов
S.Baker et. Al. A Database and Evaluation Methodology for Optical Flow, IJCV, 92(1):1-31, March 2011
• Общий рейтинг алгоритмов вычисления оптического потока и набор сложных тестовых данных
• Как всегда, такой рейтинг и сложные данные стимулируют развитие алгоритмов
• http://vision.middlebury.edu/flow/
Создание сложных данных
• Для численной оценки алгоритмов нужны эталонные данные. • Вопрос, как их можно получить для реальных данных?• Подход:
• Съёмка в двух диапазонах• Флюоресцентная краска создает высокочастотную текстуру, позволяющую
оценить поле движения
• Плюс сложные синтетические данные
Синтетические данные
Интерполяция
Снимаем данные камерой 100Hz, оставляем каждый 4ый кадр. Задача – по оптическому потоку проинтерполировать промежуточные
Реализации
• OpenCV 2.0• GoodFeatureToTrack (Выбор особых точек (фактически,
Harris)• cvCalcOpticalFlowPyrLK (Иерархическое расширение
метода Lucas-Kanade для оптического потока)
• http://gpu4vision.icg.tugraz.at• Несколько алгоритмов оптического потока с ускорением
на GPU
• http://www.cs.brown.edu/~black/code.html• Несколько С++ и Матлаб реализаций
• http://people.csail.mit.edu/celiu/OpticalFlow/• С++ и MEX
Резюме
• «Оптический поток» формализует понятие движения в видео
• Алгоритмы его вычисления бывают локальные и глобальные
• Методы можно разделить на качественные (и медленные) и быстрые (но менее точные)
• Для сравнения методов используется база middleburry
• Есть целый ряд доступных реализаций
Система видеонаблюдения
• Камера, наблюдающая некоторую сцену (в закрытом или открытом пространстве)
• Необходимо выделить «объекты интереса» и отследить их движение в последующих кадрах
• Результат:• Ограничивающий прямоугольник• Попиксельая маска объекта интереса
Свойства задачи
• Ещё системы называют «детектор движения»• Упрощение 1: стационарная камера• Упрощение 2: стабильный фон, мало изменяющийся
между камера• Вывод – объекты должны отличаться от фона
Вычитание фона
• Метод «Background subtraction»:• Возьмем изображение без объектов – «фон» (background)• Вычтем фон из новых изображений с объектами• Сравним разницу для каждого пикселя с порогом
– Порог – параметр алгоритма• Если разница больше порога - то считаем пиксель
принадлежащим «переднему плану» (foreground)• Получаем бинарную маску «переднего плана»
– Фон (0), передний план (1)
- =
Обработка переднего плана
• Бинарная маска переднего плана обычно шумная• Нам нужно:
• Уменьшить шум в изображении• Выделить области, потенциально соответствующие
объектам (связанные компоненты)
Медианный фильтр
Фильтр с окрестностью 3x3
Выделение связных областей
• Определение связной области:
• Множество пикселей, у каждого пикселя которого есть хотя бы один сосед, принадлежащий данному множеству.
Соседи пикселей:
4-связность 8-связность
Разметка связных областей
1 12 2 2 1 12 22
3 4 45 4 4
46 66 6 6
7Бинарное изображение Размеченное изображение
Рекурсивный алгоритм
void Labeling(BIT* img[], int* labels[]){
// labels должна быть обнуленаL = 1;for(y = 0; y < H; y++)
for(x = 0; x < W; x++){Fill(img, labels, x, y, L++);
}}
Рекурсивный алгоритм
void Fill(BIT* img[], int* labels[], int x, int y, int L){
if( (labels[x][y] = = 0) && (img[x][y] = = 1) ){
labels[x][y] = L;if( x > 0 )
Fill(img, labels, x – 1, y, L);if( x < W - 1 )
Fill(img, labels, x + 1, y, L);if( y > 0 )
Fill(img, labels, x, y - 1, L);if( y < H - 1 )
Fill(img, labels, x, y + 1, L);}
}
Последовательное сканирование
Последовательно, сканируем бинарное изображение сверху вниз, слева направо:
if A = O do nothing
else if (not B labeled) and (not C labeled)increment label numbering and label A
else if B xor C labeledcopy label to A
else if B and C labeledif B label = C label
copy label to Aelse
copy either B label or C label to Arecord equivalence of labels
Последовательное сканирование
Случай конфликта:
Постобработка - переразметка с учетом эквивалентностей областей
(второй проход в алгоритме)
Выделенные связанные компоненты
Обработка маски переднего плана
• Отфильтруем маску переднего плана• Выделим отдельные объекты как связанные компоненты• «Блоб» («капля», blob) - связанная компоненты маски переднего
плана Каждый «блоб» - потенциальный объект, который нужно
дальше обрабатывать
Наблюдение за мышами
• Если объект в сцене может быть только один, то самый крупную связанную компоненту (блоб) будем считать объектом
• Получили «базовый» алгоритм вычитания фона, который работает в ряде лабораторных задач (отслеживание мышей)
• Схема:• Попиксельное вычитание изображения фона из текущего кадра• Сравнение попиксельной разницы с порогом• Фильтрация маски• Выделение связанных компонент
Реальная картина
В большинстве случае, фон существенно меняется со временем
Модель фона
• Будем рассматривать каждый пиксель изображения i независимо от остальных
• Яркость (цвет) xi каждого пикселя фона изменяется по времени t• Построим модель яркости(цвета) xi пикселя i фона• Если на новом кадре яркость (цвет) пикселя не удовлетворяет
модели фона - значит это пиксель принадлежит движущемуся объекту
Общая схема вычитания фона
- Initialize_background_model()- For t = 1:N
- Compute_frame_difference()- Threshold_frame_difference()- Noise_removal()- Update_background_model()
- end
Усреднение кадров
• Простейшая модель фона –одно изображение чистого фона
• Возьмем N кадров и попиксельно усредним интенсивности (цвета)
Модель фона - медиана
• Когда не работает усреднение:• Всегда в кадре движущиеся объекты• Случайные и резкие изменения яркости (блики, засветка)
• Вместо усреднения берем медиану
Среднее vs Медиана
Средний цвет Медиана
Вычитание медианного фона
-
=
Другие методы
• Во многих случаях медиана может не помогать• Пр.: когда мышь сидит в одном месте >50% кадров тестового
видеоролика
• Предлагаются другие методы, на основе оптимизации функции «стабильности» фона• Например, разобьём все изображения на прямоугольные
фрагменты• Будем выбирать сегменты из разных кадров, чтобы была
наиболее плавная и стабильная картинка• Требуют глобальной оптимизации, некоторые подходы
рассмотрим во второй части курса
Обновление модели фона
Что делать, если освещенность постепенно меняется?
Moving average – постоянное обновление фона Взвешенная сумма текущего и предыдущих N
кадров
Ещё один (или несколько) параметр – вес кадра
Виды помехи
Гауссиана
• Предположение:• Интенсивность меняется в небольших пределах вокруг
какого-то значения • «Шум камеры»• Нормальное распределение
Wren, Christopher R., Ali Azarbayejani, Trevor Darrell, and Alex Pentland. “Pfinder: Real-Time Tracking of the Human Body,” IEEE PAMI, 1997
Вычисление параметров
• Для одного канала:
• Вычисляем среднее
• Вычисляем дисперсию
• Правдоподобие x при вычисленных параметрах:
• Отсечение по порогу – обычно допускаем интервал (x-3σ,x+3σ)
N
iixN 1
1
N
iixN 1
22 )(1
1
2
2
2)(
21),|(
x
ex
Обновление параметров
11 )1( ttt x
211
21
21
21 ))(1())(( tttttt x
• Обновление матожидания
• Обновление дисперсии
а – скорость обновления (обучения)
Многоканальное изображение
• Можно рассчитать полную матрицу ковариации K• Обновлять полную матрицу сложно• Обновление только среднего, с сохранением
ковариации
11 )1( ttt x
Как настраивать модель?• Если есть размеченные данные:
• Оценка точности и полноты (precision/recall) на наборе видеороликов
• Выбор параметров, оптимизирующих желаемую точность
• Если нет размеченных данных• Можно взять видео без объектов• Настроить параметры таким образом,
чтобы получить заданное количество ложных обнаружений
• Минимальные пороги для достижения заданной «чувствительности»
Смесь гауссиан
• Один гауссиан – один кластер• Значения могут группироваться в несколько
кластеров
W.E.L.Grimson, C.Stauffer. Adaptive background mixture models for real-time tracking. CVPR 1999
Распределение интенсивности красного и зеленого каналов
Смесь гауссиан
- вес компоненты I в момент t
),,()( ,,1
, titit
K
itit xNxP
ti ,
Вероятность интенсивности y при модели смести К гауссиан
• Вычисление смеси требует EМ алгоритма (не в реальном времени), поэтому используем приближение
Смесь гауссиан
Обучение смеси на лету
• Пусть N – количество компонент в смеси• Инициализируем 1ую компоненту по первому
изображению, вес = 1, вес остальных – 0• Сравниваем пиксель с каждой компонентой, пока
не найдем совпадения• Обновляем матожидание и дисперсию совпавшей
компоненты• Если совпадения не найдено, то заменяем
компоненту с наименьшим весом • Обновляем веса
Обновление весов
tititi aMa ,1,, )1(
tiM ,
Обновление весов:
= 1, если интенсивность пикселя удовлетворяет i-ой компоненте
После обновления всех весов, они нормализуются
Моделирование фона
• Упорядочим все компоненты по критерию• Чем «стабильнее» компонента, тем выше• Чем больше вес (чаще встречается, тем тоже выше
• Определим порог T - какая доля выборки для каждого пикселя должна соответствовать фону
• Тогда фон для каждого пикселя:
• Все остальные компоненты - объекты
/i
b
ii
bTB
1)(minarg
Пример работы
(1) (2) (3) (4)
1. Исходный кадр2. Модель фона (старшая гауссиана)3. Мат.ожидания второй гауссианы4. Маска переднего плана
Поблочная обработка
• Вместо анализа каждого пикселя мы можем разбить всё изображение на блоки и анализировать блоки
• Точность сегментации получается хуже, зато считается статистика изображения в блоке, что повышает надежность
Статистики по окрестностям
Ko, T.[Teresa], Soatto, S.[Stefano], Estrin, D.[Deborah], Background Subtraction on Distributions, ECCV 2008
• Посчитаем статистику (гистограмму) по 3D окрестности пикселя (фон):
• Посчитаем статистику по 2д окрестности пикселя на текущем кадре:
• Вычислим разницу:
• Обновление модели:
Схема алгоритма
Результаты работы
Глобальные модели цветов
• Если у объекта и фона характерные цвета, то почему бы это не использовать?
• Построим цветовые модель объекта и модель фона
• Для каждого пикселя будем сравнивать вероятности принадлежности пиксела обоим моделям и выбирать ту, вероятность для которой будет выше
Модель фона
• Построим и глобальную, и локальную модели фона
• Глобальная: смесь гауссиан (GMM)
)1510( bK
bK
k
bk
bkr
bkrr INBxIp
1
),|()|(
• Построим и глобальную, и локальную модели фона
• Глобальная: смесь гауссиан (GMM)
• Локальная: один гауссиан
)1510( bK
Модель фона
• Глобальная: смесь гауссиан (GMM)
• Локальная: один гауссиан
• Объединенная:
bK
k
bk
bkr
bkrrglobal INBxIp
1),|()|(
),|()( Br
Brrrlocal INIp
)()1()|()( rlocalrrglobalrmix xpBxIpIp
)1510( bK
Общая модель фона
• Возьмём те пиксели, для которых вероятность фона низкая
• Обучим по ним смесь гауссиан (K=5)
Модель переднего плана
frB tIp )(
Соотношение моделей?
BxifIpFxifFxIp
rrmix
rrrglobal
)()|(
)()1()|()( rlocalrrglobalrmix xpBxIpIp
?
)()1()|()( rlocalrrglobalrmix xpBxIpIp
Адаптивная смесь
Если цветовые модели объекта и фона очень разные, то мы можем полностью положиться на них
Адаптивная модель
Дивергенция Kullback-Liebler
дает разницу между двумя смесями гауссин
fbKL
)log)||((min0
bi
fkb
ifk
K
k i
fkfb w
wNNKLwKL
fbKL0
0fbKL модели идентичные
Пощупать KL
http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_kullbak.htm
)|()( BxIpIp rrglobalrmix 1fbKL
KLfbKL
e
211
5.0
1fbKL
1
)()|()( 21
21
rlocalrrglobalrmix xpBxIpIp Только глобальная модель
Поровну локальная и глобальные модели
Адаптивная модель
Адаптивная модель
)()1()|()()( rlocalrrglobalrmix xpBxIpIp
• Параметр смешения моделей можно уточнять на каждом кадре, в т.ч. с учётом других факторов
• Глобальная модель позволит нам обрабатывать сложные случаи изменения фона, когда локальная модель срабатывает плохо и наоборот
BxifIpFxifFxIp
rrmix
rrrglobal
)()|(
Поддержка модели фона
Изменение освещенности• Автоподстройка камеры• Лампы дневного света
• Включение света
Небольшое изменение освещенности:• Преобразование цветовых моделей на основе преобразования
гистограмм
Резкие изменения• Перестройка цветовой модели фона и переднего плана
• Использование карты краёв как подсказки
}{}{ BII rBr
Поддержка модели фона
Поддержка модели фона• Движение в фоне
• Опираемся на глобальную модель
• Дрожание камеры• Применяем размытие по гауссу
• Уменьшаем вес локальной цветовой модели
• «Заснувшие» и «Пешеход» на заднем плане• Оставляем только самую большую связанную компоненту
Поддержка модели фона
Обнаружение носимых предметов
Dima Damen and David Hogg. Detecting Carried Objects in Short Video Sequences. ЕССV-2008
Любопытный пример использования сегментации для выделения специфических объектов в видео
Модели шаблонов движения
• EPFL база• 8 человек отсняли на беговой дорожке• Сопоставили модели из MAYA• База состоит из силуэтов модели с 8и точек зрения• Используется для оценки позы и т.д.
Схема метода
Пример работы
Резюме: видео
Данные
• На пути создания общедоступных тестовых баз два препятствия:• Приватность• Сложность разметки данных
• PETS Performance Evaluation of Tracking and Surveillance
• http://www.cvg.rdg.ac.uk/PETS2009/a.html
Пример
Пример слежения с реальной системы видеонаблюдения
Базовый метод видеонаблюдения
• Обучение модели фона• Для каждого кадра
• Вычитание фона• Обработка маски (фильтрация, морфологии)• Выделение связанных компонент• Ассоциация объектов между кадрами• Обновление фона
Резюме лекции
• Вычисление оптического потока и вычитание фона –два очень широко используемых инструмента при анализе видеоданных
• Ряд алгоритмов в обоих задачах уже сейчас активно используется в коммерческих системах
• Для обеих задач существуют алгоритмы на основе глобальных методов дискретной оптимизации на графических моделях