Основы...

92
Основы видеообработки http://courses.graphicon.ru/main/vision Антон Конушин

Upload: duongtu

Post on 23-Feb-2018

237 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Основы видеообработки

http://courses.graphicon.ru/main/vision Антон Конушин

Page 2: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Видеокамеры

• Наиболее близкий аналог «человеческого глаза» из доступных компьютеру

• Широкое распространение: • Видеокамеры в смартфонах, планшетах, ноутбуках • ~200 000 камер видеонаблюдения в одном Лондоне!

Page 3: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Состояние и перспективы

• Сейчас большинство видеокамер работают в режиме «регистрации» • Видеорегистраторы в автомобилях • Видеокамеры для любительской съёмки • Видеозапись с камер наблюдения

• Количество информации огромное, управлять её без анализа очень сложно

• «Видеоаналитика» - все алгоритмы для извлечения информации из видео • Есть ряд практически работающих систем

Page 4: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Чего мы хотим достичь?

Извлечение данных из видеопотока: • Разметить все объекты, людей, и происходящие

события • Определить позу людей, распознать жесты

Page 5: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Чего мы хотим достичь?

• «Situation awareness» • Свойство систем и класс приложений,

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

Page 6: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Очень сложно!

• Огромный поток информации • Быстрое принятие решения • Изменчивость и сложность

мира! • 100000 категорий разных

объектов!

• Система должна уметь больше, чем умеет человек

Page 7: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

План

• Лекция 11 (25-04-2012) • Оптический поток • Вычитание фона

• Лекция 12 (2-05-2012)

• Отслеживание объектов • Распознавание событий

• Лекция 13 (16-05-2012) • Решающий лес и дополненная

реальность • Kinect и распознавание позы

человека

Page 8: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Движение

• Движение – главное отличие видео от изображений • Движение само по себе является мощной визуальной подсказкой • Суть многих действий именно в динамике • Иногда достаточно отследить движение отдельных точек, чтобы

распознать событие

Что показано в видео?

Page 9: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Распознавание по движению

http://www.biomotionlab.ca/Demos/BMLwalker.html

Page 10: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Описание движения

• Точки наблюдаемой сцены движутся относительно камеры / изображения

• Векторное поле движения 2D проекций на изображение 3D точек объектов сцены называется полем движения (motion field)

• Нужно это движение как-то формализовать, описывать и измерять

Page 11: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Оптический поток

• Движение точек объектов по видео увидеть можно далеко не всегда • Пример:

• Серый матовый шар, освещается с одной стороны и вращается вокруг своей оси • Яркость всех пикселов изображения в этом случае будет постоянной

•Оптический поток (optical flow) – векторное поле видимого (apparent) движения пикселей между кадрами

• Вычисление оптического потока – одна из базовых задач анализа видео • Задача похоже на задачу попиксельного сопоставления двух изображений одной и той же сцены

Page 12: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Визуализация

Вектора движения для отдельных точек или всего

изображения

Цветовое кодирование вектора движения. Каждому направлению и

амплитуде свой цвет и яркость

Оптический поток - векторное поле (uij,vij) видимого (наблюдаемого) движения пикселей между кадрами

Page 13: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

• Как оценить движение пикселей от I1 в изображение I2?

• Нам нужно всем пикселям из I1 найти соответствующие пиксели в I2

• Предположение – пиксель при перемещении не меняет цвет!

• Запишем это условие для всего изображения: E(u,v) – целевая функция, pD – функция вычисления ошибки

Ключевое предположение №1

• Сколько будет минимумов у этой функции?

Page 14: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

• У такой функции очень много минимумов • Глобальный минимум тоже может быть ложным, когда

мы найдём похожие по яркости пиксели где угодно по изображению.

• Нужны ещё предположения!

Минимизация функции

Page 15: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Посмотрим пример

• Что можно сказать про смещение пикселей? • Пиксели смещаются на небольшое расстояние

(предположение N2) • Можно наложить порог на длину вектора (uij,vij)

Page 16: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Посмотрим пример

• Что можно ещё сказать про движение пикселей? • Соседние пиксели чаще всего двигаются похоже! • Т.е. вектора оптического потока близки у близких пикселей!

Page 17: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Ключевое предположение №3

Добавим в нашу целевую функцию штрафы за изменение векторов оптического потока:

где pS(x) – штрафная функция, например, квадратичная

Получили глобальную целевую функцию для вычисления оптического потока между двумя кадрами

Page 18: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Глобальный подход

• Это первая формулировка задачи оптического потока для всего изображения в целом (Horn, 1981)

• Будем оптимизировать её каким-нибудь методом оптимизации

• Такой подход для оценки оптического потока называют глобальным

Horn, B., Schunck, B.: Determining optical flow. Artificial Intelligence 17 (1981) 185–203

Page 19: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Развитие глобальных методов

• Глобальные методы обеспечивают сейчас наилучшее качество оптического потока

• Отличаются друг от друга: • Функциями штрафов за изменение вида пикселей (яркость,

цвет, градиенты и т.д.) • Функциями штрафов за разницу в векторах потока у соседних

пикселей • Методами оптимизации (непрерывные, дискретные,

стохастические) • Дополнительными эвристиками и ограничениями, например,

регулярным применением медианной фильтрации

Page 20: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Посмотрим пример ещё раз

• Что можно ещё сказать про движение пикселей? • В некоторых случаях разница между векторами движения очень

большая и оправданная (разные объекты)

Page 21: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Робастные штрафы

• Штрафы должны быть «устойчивы» к разрывами в карте оптического потока на границах объектов

• Штраф должен ещё не «портить» функцию • Чтобы мы могли её хорошо

оптимизировать

Charbonnier (дифференцируемый L1)

Sun, D., Roth, S., and Black, M. J., Secrets of optical flow estimation and their principles, CVPR, June 2010

Lorenzian

Page 22: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Резюме глобальных методов

• Оптимизируем одну целевую функцию для всего векторного поля

• Медленные, но качественные методы • Сейчас, в основном развивается именно этот подход

Page 23: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Локальный подход

• Попробуем вычислить вектор движения для одного пикселя (x,y) из изображения I в изображение H

• Используем ограничения для формализации задачи • Постоянная яркость • Малое смещение

Page 24: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Локальный подход

С учётом малого смещения, разложим I(x+u,y+v) в ряд Тейлора:

Page 25: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Уравнение оптического потока • Объединим с условием постоянной яркости:

В пределе u и v стремятся к нулю, и получаем равенство:

Page 26: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Уравнение оптического потока

• Элементарное уравнение оптического потока:

• Вопрос: сколько неизвестных и уравнений для каждого пикселя?

• 1 уравнение, 2 неизвестных (u, v)

Page 27: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Дополнительные уравнения • Как можно получить больше уравнений? • Воспользуемся предположением о близости векторов

движения для соседних пикселей • Пусть для всех пикселей p из окрестности (x,y) смещение

(u,v) одинаковое!! • Для окна 5x5 получаем 25 уравнений для каждого

пикселя!

Page 28: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Цвет вместо яркости • При использовании окна 5x5 получается 25*3

уравнений на пиксель!

Page 29: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Алгоритм Лукаса-Канаде • Проблема: больше уравнений, чем неизвестных!

• Получаем задачу наименьших квадратов • Можем решить её через нормальные уравнения

• Суммируем по всем пикселям в окне K x K • Это метод был предложен Лукасом и Канаде в 1981 году

bAAAd TT 1)(

Page 30: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Алгоритм Лукаса-Канаде

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)(

Page 31: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Условия на разрешимость • Решение задачи оптического потока d = (u,v) может быть

найдено в виде

• Когда задача разрешима? • ATA должна быть обратимой • ATA не должна быть слишком близка к нулю (вырожденной) • ATA должна быть хорошо определена

bAAAd TT 1)(

Page 32: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Что это напоминает?

Матрица хорошо определена в окрестности локальных особенностей изображения

1 и 2 малы; E не меняется по всем направлениям

1

2

“плоская” область

“Угол” 1 и 2 велики, 1 ~ 2; E растет во всех направлениях

“край” 2 >> 1

“край” 1 >> 2

RRAAT

2

11

00

Матрица для нахождения локальных особенностей детектором Харриса!

Page 33: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Замечание • Поиск оптического потока производится между

двумя изображениями, но: • Можем оценить качество оценки только по 1

изображению! • По 1 картинке можно сказать, в каких точках поток будет

считаться хорошо, а в каких - нет • На этом основаны методы выбора особенностей для

отслеживания • Фактически, поиск особых точек!

Jianbo Shi and Carlo Tomasi, "Good Features to Track," СVPR 1994

Page 34: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Проблема большого смещения

• Насколько мало движение в изображении? • Существенно больше 1-го пикселя • Как можно решить эту проблему?

Page 35: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Итеративное уточнение

• Когда нарушается предположение о малом смещение между кадрами локальный алгоритм за один проход не справляется

• Итеративный вариант алгоритма Лукаса-Канаде

1. Оценить движение в каждом пикселе, решив уравнения Лукаса-Канаде

2. Преобразовать изображение H используя вычисленное движение

3. Повторить 1-2 до сходимости

Page 36: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пример

x x0

Initial guess: Estimate:

estimate update

0 = 퐼 + 퐼 푑 • Рассмотрим одномерный случай (d-

cмещение) • Сдвиг по градиенту должен быть равен

изменению значения (яркости).

Page 37: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пример

x x0

estimate update

Initial guess: Estimate:

Page 38: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пример

x x0

Initial guess: Estimate: Initial guess: Estimate:

estimate update

Page 39: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пример

x x0

Page 40: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Замечания

• Сглаживаем изображения для более аккуратного вычисления градиентов

• Лучше градиенты вычислять по одному изображению, а преобразовывать другое

• Преобразование изображения приводит к ошибкам из-за дискретизации, можем потерять в точности

Page 41: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пирамида разрешений

Page 42: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пирамиды изображений

• Известна как Пирамида Гауссиан • Сглаживаем фильтром Гаусса и берём каждый k-ый пиксель • В компьютерной графике – “mip map” [Williams, 1983]

Slide by Steve Seitz

P. Burt and E. Adelson, “The Laplacian pyramid as a compact image code,” IEEE Trans. Commun., vol. 31, no. 4, pp. 532–540, 1983.

Page 43: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

image I image H

Гауссова пирамида для H Гауссова пирамида для I

image I image H u=10 пикселей

u=5 пикселей

u=2.5 пикселей

u=1.25 пикселей

Иерархический метод

Page 44: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

image I image J

Гауссова пирамида для H Гауссова пирамида для I

image I image H

Иерархический метод

итеративный L-K

итеративный L-K

масштабирование

.

.

.

Page 45: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Резюме локального метода

• Локальный метод Лукаса-Канаде позволяет надежно оценивать поток для отдельных пикселей, но только в окрестности особых точек

• Для повышения качества для больших смещений используется итеративная и многомасштабная версия алгоритма

Page 46: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Рейтинг алгоритмов

S.Baker et. Al. A Database and Evaluation Methodology for Optical Flow, IJCV, 92(1):1-31, March 2011

• Общий рейтинг алгоритмов вычисления оптического потока и набор сложных тестовых данных

• Как всегда, такой рейтинг и сложные данные стимулируют развитие алгоритмов

• http://vision.middlebury.edu/flow/

Page 47: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Создание сложных данных

• Для численной оценки алгоритмов нужны эталонные данные. • Вопрос, как их можно получить для реальных данных? • Подход:

• Съёмка в двух диапазонах • Флюоресцентная краска создает высокочастотную текстуру, позволяющую

оценить поле движения

• Плюс сложные синтетические данные

Page 48: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Синтетические данные

Page 49: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Интерполяция

Снимаем данные камерой 100Hz, оставляем каждый 4ый кадр. Задача – по оптическому потоку проинтерполировать промежуточные

Page 50: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Реализации

• 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

Page 51: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Резюме

• «Оптический поток» формализует понятие движения в видео

• Алгоритмы его вычисления бывают локальные и глобальные

• Методы можно разделить на качественные (и медленные) и быстрые (но менее точные)

• Для сравнения методов используется база Middlebury

• Есть целый ряд доступных реализаций

Page 52: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Система видеонаблюдения

• Камера, наблюдающая некоторую сцену (в закрытом или открытом пространстве)

• Необходимо выделить «объекты интереса» на каждом кадре

• Результат: • Ограничивающий прямоугольник • Попиксельая маска объекта интереса

Page 53: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Свойства задачи

• Камеру считаем стационарной, не меняющей ракурса • Фон считаем «стабильным», малоподвижным,

незначительно меняющимся между кадрами • Вывод – объекты должны отличаться от фона • Ещё системы называют «детектор движения»

Page 54: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Вычитание фона

• Метод «Background subtraction»: • Возьмем «чистое» изображение без объектов – «фон»

(background) • Вычтем фон из новых изображений с объектами • Сравним разницу для каждого пикселя с порогом

– Порог – параметр алгоритма • Если разница больше порога - то считаем пиксель

принадлежащим «переднему плану» (foreground) • Получаем бинарную маску «переднего плана»

– Фон (0), передний план (1)

- =

Page 55: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Обработка переднего плана

• Бинарная маска переднего плана обычно шумная и пиксели не связаны между собой

• Нам нужно: • Уменьшить шум в изображении (фильтрация) • Выделить области, потенциально соответствующие объектам

(связанные компоненты) • «Блоб» («капля», blob) - связанная компоненты маски переднего

плана, потенциальный объект

Page 56: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Наблюдение за мышами

• Если объект в сцене может быть только один, то самый крупную связанную компоненту (блоб) будем считать объектом

• Получили «базовый» алгоритм вычитания фона, который работает в ряде лабораторных задач (отслеживание мышей)

• Схема: • Попиксельное вычитание изображения фона из текущего кадра • Сравнение попиксельной разницы с порогом • Фильтрация маски • Выделение связанных компонент и выбор самой большой

Page 57: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Если объектов много?

• Случай множества связанных компонент – это уже задача отслеживания объекта

• Некоторые подходы к ней рассмотрим на следующей лекции

Page 58: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Реальная картина

В большинстве случае, фон существенно меняется со временем

Page 59: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Проблемы вычитания фона

Page 60: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Моделирование фона

• Будем рассматривать каждый пиксель изображения i независимо от остальных

• Яркость (цвет) xi каждого пикселя фона изменяется по времени t • Построим модель яркости(цвета) xi пикселя i фона по

обучающему видеролику • Если на новом кадре яркость (цвет) пикселя не удовлетворяет

модели фона - значит это пиксель принадлежит движущемуся объекту

• На каждом кадре будем обновлять модель фона

Page 61: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Общая схема вычитания фона

- Initialize_background_model() - For t = 1:N

- Compute_frame_difference() - Threshold_frame_difference() - Noise_removal() - Update_background_model()

- end

Page 62: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Гауссиана

• Предположение: • Интенсивность меняется в небольших пределах вокруг

какого-то значения • «Шум камеры» • Нормальное распределение

Wren, Christopher R., Ali Azarbayejani, Trevor Darrell, and Alex Pentland. “Pfinder: Real-Time Tracking of the Human Body,” IEEE PAMI, 1997

Page 63: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Вычисление параметров модели

• Для одного канала: • Вычисляем среднее

• Вычисляем дисперсию

N

iixN 1

1

N

iixN 1

22 )(1

1

Page 64: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Вычитание фона

• Вероятность x при вычисленных параметрах модели фона:

• Проще использовать сравнение с порогом • Считаем, что все пиксели фона должны попасть в

интервал (u-3σ,u+3σ) • Если |x-u|>3σ, тогда x – пиксель переднего плана

2

2

2)(

21),|(

x

ex

Page 65: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Обновление параметров модели

11 )1( ttt x

211

21

21

21 ))(1())(( tttttt x

• Обновление матожидания

• Обновление дисперсии

а – скорость обновления (обучения)

Page 66: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Многоканальное изображение

• Можно рассчитать полную матрицу ковариации K • Обновлять полную матрицу сложно • Обновление только среднего, с сохранением

ковариации

11 )1( ttt x

Page 67: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Как настраивать модель? • Если есть размеченные данные:

• Оценка точности и полноты (precision/recall) на наборе видеороликов

• Выбор параметров, оптимизирующих желаемую точность

• Если нет размеченных данных • Можно взять видео без объектов • Настроить параметры таким образом,

чтобы получить заданное количество ложных обнаружений

• Минимальные пороги для достижения заданной «чувствительности»

Page 68: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Смесь гауссиан

• Один гауссиан – один кластер • Значения могут группироваться в несколько

кластеров

W.E.L.Grimson, C.Stauffer. Adaptive background mixture models for real-time tracking. CVPR 1999

Page 69: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Распределение интенсивности красного и зеленого каналов

Смесь гауссиан

Page 70: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

- вес компоненты I в момент t

),,()( ,,1

, titit

K

itit xNxP

ti ,

Вероятность интенсивности y при модели смести К гауссиан

• Вычисление смеси требует сложного EМ алгоритма (не в реальном времени), поэтому предложен приближенный алгоритм

Смесь гауссиан

Page 71: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Обучение смеси на лету

• Пусть N – количество компонент в смеси • Инициализируем 1ую компоненту по первому

изображению, вес = 1, вес остальных – 0 • Сравниваем пиксель с каждой компонентой, пока

не найдем совпадения • Обновляем матожидание и дисперсию совпавшей

компоненты • Если совпадения не найдено, то заменяем

компоненту с наименьшим весом • Обновляем веса

),,()( ,,1

, titit

K

itit xNxP

Page 72: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Обновление весов

tititi aMa ,1,, )1(

tiM ,

Обновление весов:

= 1, если интенсивность пикселя удовлетворяет i-ой компоненте

После обновления всех весов, они нормализуются

Page 73: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Моделирование фона

• Упорядочим все компоненты по критерию • Чем «стабильнее» компонента, тем выше • Чем больше вес (чаще встречается, тем тоже выше)

• Определим порог T - какая доля выборки для каждого пикселя должна соответствовать фону

• Тогда фон для каждого пикселя:

• Все остальные компоненты - объекты

/i

b

ii

bTB

1)(minarg

Page 74: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пример работы

(1) (2) (3) (4)

1. Исходный кадр 2. Модель фона (старшая гауссиана) 3. Мат.ожидания второй гауссианы 4. Маска переднего плана

Page 75: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Поблочная обработка

• Вместо анализа каждого пикселя мы можем разбить всё изображение на блоки и анализировать блоки

• Точность сегментации получается хуже, зато считается статистика изображения в блоке, что повышает надежность

Page 76: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Статистики по окрестностям

Ko, T.[Teresa], Soatto, S.[Stefano], Estrin, D.[Deborah], Background Subtraction on Distributions, ECCV 2008

Page 77: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

• Посчитаем статистику (гистограмму) по 3D окрестности пикселя (фон):

• Посчитаем статистику по 2д окрестности пикселя на текущем кадре:

• Вычислим разницу:

• Обновление модели:

Схема алгоритма

Page 78: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Результаты работы

Page 79: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Глобальные модели цветов

• Если у объекта и фона характерные цвета, то почему бы это не использовать?

• Построим цветовые модель объекта и модель фона

• Для каждого пикселя будем сравнивать вероятности принадлежности пиксела обоим моделям и выбирать ту, вероятность для которой будет выше

Page 80: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Модель фона

• Построим и глобальную, и локальную модели фона

• Глобальная: смесь гауссиан (GMM)

)1510( bK

bK

k

bk

bkr

bkrr INBxIp

1

),|()|(

Page 81: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

• Построим и глобальную, и локальную модели фона

• Глобальная: смесь гауссиан (GMM)

• Локальная: один гауссиан

)1510( bK

Модель фона

Page 82: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

• Глобальная: смесь гауссиан (GMM)

• Локальная: один гауссиан

• Объединенная:

bK

k

bk

bkr

bkrrglobal INBxIp

1),|()|(

),|()( Br

Brrrlocal INIp

)()1()|()( rlocalrrglobalrmix xpBxIpIp

)1510( bK

Общая модель фона

Page 83: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

• Возьмём те пиксели, для которых вероятность фона низкая

• Обучим по ним смесь гауссиан (K=5)

Модель переднего плана

frB tIp )(

Page 84: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Соотношение моделей?

BxifIpFxifFxIp

rrmix

rrrglobal

)()|(

)()1()|()( rlocalrrglobalrmix xpBxIpIp

?

Page 85: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

)()1()|()( rlocalrrglobalrmix xpBxIpIp

Адаптивная смесь

Если цветовые модели объекта и фона очень разные, то мы можем полностью положиться на них

Page 86: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Адаптивная модель

Дивергенция Kullback-Liebler

дает разницу между двумя смесями гауссин

fbKL

)log)||((min0

bi

fkb

ifk

K

k i

fkfb w

wNNKLwKL

fbKL0

0fbKL модели идентичные

Page 87: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пощупать KL

http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_kullbak.htm

Page 88: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

)|()( BxIpIp rrglobalrmix 1fbKL

KLfbKL

e

211

5.0

1fbKL

1

)()|()( 21

21

rlocalrrglobalrmix xpBxIpIp Только глобальная модель

Поровну локальная и глобальные модели

Адаптивная модель

Page 89: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Адаптивная модель

)()1()|()()( rlocalrrglobalrmix xpBxIpIp

• Параметр смешения моделей можно уточнять на каждом кадре, в т.ч. с учётом других факторов

• Глобальная модель позволит нам обрабатывать сложные случаи изменения фона, когда локальная модель срабатывает плохо и наоборот

BxifIpFxifFxIp

rrmix

rrrglobal

)()|(

Page 90: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Данные

• На пути создания общедоступных тестовых баз два препятствия: • Приватность • Сложность разметки данных

• PETS Performance Evaluation of Tracking and Surveillance

• http://www.cvg.rdg.ac.uk/PETS2009/a.html

Page 91: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Пример

Пример слежения с реальной системы видеонаблюдения

Page 92: Основы видеообработкиcourses.graphicon.ru/files/courses/vision/2012/lectures/cv2012_11... · • OpenCV 2.0 • GoodFeatureToTrack (Выбор особых точек

Резюме лекции

• Вычисление оптического потока и вычитание фона – два очень широко используемых инструмента при анализе видеоданных

• Ряд алгоритмов в обоих задачах уже сейчас активно используется в коммерческих системах