SlideShare a Scribd company logo
1 of 111
Download to read offline
Основы видеообработки
Видео


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




•   Пользовательское видео – от 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
  уравнений на пиксель!
Алгоритм Лукаса-Канаде
•   Проблема: больше уравнений, чем неизвестных!



•   Получаем задачу наименьших квадратов
•   Можем решить её через нормальные уравнения
                                             T     1   T
                                      d  ( A A) A b




     • Суммируем по всем пикселям в окне K x K
     • Это метод был предложен Лукасом и Канаде в 1981 году
Алгоритм Лукаса-Канаде
   • Оптимальные (u, v) удовлетворяют уравнению




   • Которое может быть решено через нормальные уравнения


                         d  ( AT A) 1 AT b




B. D. Lucas and T. Kanade. An iterative image registration technique with an
application to stereo vision. In DARPA Image Understanding Workshop, April 1981.
Условия на разрешимость
    •    Решение задачи оптического потока d = (u,v) может быть
         найдено в виде



                 T    1   T
         d  ( A A) A b                     

• Когда задача разрешима?
         • ATA должна быть обратимой
         • ATA не должна быть слишком близка к нулю
             – С.значения l 1 и l 2 матрицы ATA не должны быть малы
         • ATA должна быть хорошо определима
             – l 1/ l 2 не должно быть слишком велико
             – (l 1 = наибольшее с.значение)
•       ATA разрешима, когда нет апертурной проблемы
Проблема апертуры
Проблема апертуры
Анализ участка изображения
Края




  –  большие градиенты
  – большое l 1, маленькое l l 2
Слабоконтрастная текстура




  –  величина градиента мала
  – малое l 1, малое l 2
Текстурированная область




  –  градиенты разные, большая амплитуда
  – большое l 1, большое l 2
Замечание
• Поиск оптического потока производится между
  двумя изображениями, но:
   • Можем оценить качество оценки только по 1
     изображению!
   • По 1 картинке можно сказать, в каких точках поток будет
     считаться хорошо, а в каких - нет
   • На этом основаны методы выбора особенностей для
     отслеживания
   • Фактически, поиск особых точек!




Jianbo Shi and Carlo Tomasi, "Good Features to Track," СVPR 1994
Погрешности метода Л-К
• Каковы потенциальные источники ошибок?
  • Предполагаем, что ATA обратима
  • Предполагаем, что в изображении мало шума

• Когда эти предположения нарушаются:
  • Яркость точки не постоянная
  • Движение между кадрами большое
  • Движение соседей отличается от движения точки
     – Окно поиска слишком большое
     – Какой наилучший размер окна поиска?
Итеративное уточнение

•   Итеративный вариант алгоритма Лукаса-Канаде
    1. Оценить движение в каждом пикселе, решив уравнения
       Лукаса-Канаде
    2. Преобразовать изображение H используя вычисленное
       движение
    3. Повторить 1-2 до сходимости
Пример




         estimate             Initial guess:
          update
                              Estimate:




                    x0                     x

0=   +    -   Рассмотрим одномерный
              случай (d – cмещение)
Пример




         estimate        Initial guess:
          update
                         Estimate:




                    x0                x
Пример




         estimate        Initial guess:
          update
                         Estimate:




                    x0                x
Пример




         x0   x
Замечания
• Сглаживаем изображения для более аккуратного
  вычисления градиентов
• Лучше градиенты вычислять по одному
  изображению, а преобразовывать другое
• Преобразование изображения приводит к
  ошибкам из-за дискретизации, можем потерять в
  точности
Проблема большого смещения




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




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


P. Burt and E. Adelson, “The Laplacian pyramid as a compact image
code,” IEEE Trans. Commun., vol. 31, no. 4, pp. 532–540, 1983.      Slide by Steve Seitz
Построение пирамиды




                                          Маска фильтра

•   Повторяем до достижения минимального разрешения
    • Сглаживаем с помощью фильтра Гаусса текущее изображение
    • Сэмплируем – берём каждый k-ый пиксель (обычно, каждый 2ой)




                                                           Slide by Steve Seitz
Иерархический метод


                          u=1.25 пикселей


                          u=2.5 пикселей


                          u=5 пикселей



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


Гауссова пирамида для H                  Гауссова пирамида для I
Иерархический метод



                      итеративный L-K
                            масштабирование

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




       image J
       image H                                  image II
                                                image


Гауссова пирамида для H                 Гауссова пирамида для I
Другие модели движения
 • В рассматриваемых алгоритмах модель движение –
 параллельный перенос (u,v)
 • Можно использовать другие модели
     • поворот, аффинную, перспективную
 • Необходимо просто вычислить соответствующий Якобиан
            T                      T   T
          A A   JI( I) J
                     i

          A Tb   J T I t ( I) T
                         i
Проблемы:
• Много параметров, столько же исходных данных
• Меньшая устойчивость и надежность


 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
Рейтинг алгоритмов




•     Общий рейтинг алгоритмов вычисления оптического потока и
      набор сложных тестовых данных
•     Как всегда, такой рейтинг и сложные данные стимулируют
      развитие алгоритмов
•     http://vision.middlebury.edu/flow/




    S.Baker et. Al. A Database and Evaluation Methodology for Optical Flow, IJCV,
    92(1):1-31, March 2011
Создание сложных данных




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




Снимаем данные камерой 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-связность
Разметка связных областей


                                      11
                            222       11
                            22
                            2
                                  3    44
                        5             44
                                       4
                            66
                            666
                                      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 labeled
                   copy label to A

              else if B and C labeled
                   if B label = C label
                        copy label to A
                   else
                        copy either B label or C label to A
                        record 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
Вычисление параметров
• Для одного канала:
                                                N
                                    1
  • Вычисляем среднее            
                                    N
                                              x
                                               i 1
                                                      i



                                  2  1 N
  • Вычисляем дисперсию                     ( xi   ) 2
                                    N  1 i 1
  •   Правдоподобие x при вычисленных параметрах:
                                        ( x   )2
                               1      
                                          2 2
              ( x | , )       e
                              2

  • Отсечение по порогу – обычно допускаем интервал (x-3σ,x+3σ)
Обновление параметров

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

   t 1  t  (1   ) xt 1

• Обновление дисперсии
      2                2                    2                               2
     t 1     (   t 1    ( t1  t ) )  (1   )( xt1  t 1 )
 а – скорость обновления (обучения)
Многоканальное изображение

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


   t 1  t  (1   ) xt 1
Как настраивать модель?
• Если есть размеченные данные:
  • Оценка точности и полноты
    (precision/recall) на наборе
    видеороликов
  • Выбор параметров, оптимизирующих
    желаемую точность


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

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




W.E.L.Grimson, C.Stauffer. Adaptive background mixture models for real-time
tracking. CVPR 1999
Смесь гауссиан




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

   Вероятность интенсивности y при модели смести К
    гауссиан
                     K
        P( xt )   i ,t N (xt , i ,t ,  i ,t )
                    i 1

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


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

• Пусть N – количество компонент в смеси
   • Инициализируем 1ую компоненту по первому
     изображению, вес = 1, вес остальных – 0
   • Сравниваем пиксель с каждой компонентой, пока
     не найдем совпадения
   • Обновляем матожидание и дисперсию совпавшей
     компоненты
   • Если совпадения не найдено, то заменяем
     компоненту с наименьшим весом
   • Обновляем веса
Обновление весов


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

    i,t  (1  a )i ,t 1  aM i ,t
    M i ,t   = 1, если интенсивность пикселя
             удовлетворяет i-ой компоненте

После обновления всех весов, они нормализуются
Моделирование фона
• Упорядочим все компоненты по критерию        i / 
  • Чем «стабильнее» компонента, тем выше
  • Чем больше вес (чаще встречается, тем тоже выше
• Определим порог T - какая доля выборки для
  каждого пикселя должна соответствовать фону
• Тогда фон для каждого пикселя:
                            b
         B  arg min (  i  T )
                    b      i 1
• Все остальные компоненты - объекты
Пример работы




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




                                                             ( K b  10  15)
                               Kb
         p ( I r | xr  B )    kb N ( I r |  k ,  b )
                                                 b
                                                       k
                               k 1
Модель фона

• Построим и глобальную, и локальную модели фона
• Глобальная: смесь гауссиан (GMM)   ( Kb  10  15)
• Локальная: один гауссиан
Общая модель фона

• Глобальная: смесь гауссиан (GMM) ( Kb  10  15)
                                         Kb
             pglobal ( I r | xr  B )   kb N ( I r |  kb ,  b )
                                                                 k
                                         k 1


• Локальная: один гауссиан
                                                B      B
              plocal ( I r )  N ( I r |  ,  )r      r


• Объединенная:
   pmix ( I r )    p global ( I r | xr  B)  (1   )  plocal ( xr )
Модель переднего плана
•   Возьмём те пиксели, для которых вероятность фона низкая
      pB ( I r )  t f
•   Обучим по ним смесь гауссиан (K=5)
Соотношение моделей?

              pglobal ( I r | xr  F ) if xr  F
                    pmix ( I r )       if xr  B

 pmix ( I r )    pglobal ( I r | xr  B)  (1   )  plocal ( xr )




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




       pmix ( I r )    p global ( I r | x r  B )  (1   )  plocal ( xr )

Если цветовые модели объекта и фона очень разные, то мы можем
полностью положиться на них
Адаптивная модель
Дивергенция Kullback-Liebler   KL fb
         K
                                             wkf
KL fb   wkf min ( KL ( N kf || N ib )  log b )
        k 0
               i                             wi


0  KL fb  
дает разницу между двумя смесями гауссин

    KL fb  0       модели идентичные
Пощупать KL




http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm
                      _kullbak.htm
Адаптивная модель

                                    KL fb
                                  
                     1 1 e
                          2
                                       KL


                                              KL fb  1
                                                1
 KL fb  1
                      pmix ( I r )  pglobal ( I r | xr  B)
   0.5             Только глобальная модель

  pmix ( I r )  1  p global ( I r | xr  B)  1  plocal ( xr )
                 2                              2

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

             pglobal ( I r | xr  F ) if xr  F
                   pmix ( I r )       if xr  B

pmix ( ) ( I r )    p global ( I r | xr  B )  (1   )  plocal ( xr )

• Параметр смешения моделей можно уточнять на
  каждом кадре, в т.ч. с учётом других факторов
• Глобальная модель позволит нам обрабатывать
  сложные случаи изменения фона, когда локальная
  модель срабатывает плохо и наоборот
Поддержка модели фона
Изменение освещенности
•   Автоподстройка камеры
•   Лампы дневного света
•   Включение света




Небольшое изменение освещенности:
•   Преобразование цветовых моделей на основе преобразования
                  B
    гистограмм {I r }  {I r  B}
Резкие изменения
•   Перестройка цветовой модели фона и переднего плана
•   Использование карты краёв как подсказки
Поддержка модели фона
Поддержка модели фона
•   Движение в фоне
     • Опираемся на глобальную модель

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

• «Заснувшие» и «Пешеход» на заднем плане
     • Оставляем только самую большую связанную компоненту
Поддержка модели фона
Обнаружение носимых предметов




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

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
Пример




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

• Обучение модели фона
• Для каждого кадра
  •   Вычитание фона
  •   Обработка маски (фильтрация, морфологии)
  •   Выделение связанных компонент
  •   Ассоциация объектов между кадрами
  •   Обновление фона
Резюме лекции

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



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

More Related Content

What's hot

CV2011-2. Lecture 06. Structure from motion.
CV2011-2. Lecture 06.  Structure from motion.CV2011-2. Lecture 06.  Structure from motion.
CV2011-2. Lecture 06. Structure from motion.Anton Konushin
 
CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.Anton Konushin
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.Anton Konushin
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionAnton Konushin
 
CV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionCV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionAnton Konushin
 
CV2011-2. Lecture 09. Single view reconstructin.
CV2011-2. Lecture 09.  Single view reconstructin.CV2011-2. Lecture 09.  Single view reconstructin.
CV2011-2. Lecture 09. Single view reconstructin.Anton Konushin
 
CV2011-2. Lecture 12. Face models.
CV2011-2. Lecture 12.  Face models.CV2011-2. Lecture 12.  Face models.
CV2011-2. Lecture 12. Face models.Anton Konushin
 
CV2011-2. Lecture 07. Binocular stereo.
CV2011-2. Lecture 07.  Binocular stereo.CV2011-2. Lecture 07.  Binocular stereo.
CV2011-2. Lecture 07. Binocular stereo.Anton Konushin
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.Anton Konushin
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03Computer Science Club
 
CV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionCV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionAnton Konushin
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.Anton Konushin
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02Computer Science Club
 
CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.Anton Konushin
 
CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.Anton Konushin
 
CV2011 Lecture 2. Image processing
CV2011 Lecture 2. Image processingCV2011 Lecture 2. Image processing
CV2011 Lecture 2. Image processingAnton Konushin
 
CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.Anton Konushin
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видеоVictor Kulikov
 
CV2011 Lecture 1. Part 2. Light & Color
CV2011 Lecture 1. Part 2. Light & ColorCV2011 Lecture 1. Part 2. Light & Color
CV2011 Lecture 1. Part 2. Light & ColorAnton Konushin
 

What's hot (20)

CV2011-2. Lecture 06. Structure from motion.
CV2011-2. Lecture 06.  Structure from motion.CV2011-2. Lecture 06.  Structure from motion.
CV2011-2. Lecture 06. Structure from motion.
 
CV2011-2. Lecture 03. Photomontage, part 2.
CV2011-2. Lecture 03.  Photomontage, part 2.CV2011-2. Lecture 03.  Photomontage, part 2.
CV2011-2. Lecture 03. Photomontage, part 2.
 
CV2011-2. Lecture 05. Video segmentation.
CV2011-2. Lecture 05.  Video segmentation.CV2011-2. Lecture 05.  Video segmentation.
CV2011-2. Lecture 05. Video segmentation.
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
CV2011 Lecture 8. Detection
CV2011 Lecture 8. DetectionCV2011 Lecture 8. Detection
CV2011 Lecture 8. Detection
 
CV2011-2. Lecture 09. Single view reconstructin.
CV2011-2. Lecture 09.  Single view reconstructin.CV2011-2. Lecture 09.  Single view reconstructin.
CV2011-2. Lecture 09. Single view reconstructin.
 
CV2011-2. Lecture 12. Face models.
CV2011-2. Lecture 12.  Face models.CV2011-2. Lecture 12.  Face models.
CV2011-2. Lecture 12. Face models.
 
CV2011-2. Lecture 07. Binocular stereo.
CV2011-2. Lecture 07.  Binocular stereo.CV2011-2. Lecture 07.  Binocular stereo.
CV2011-2. Lecture 07. Binocular stereo.
 
CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.CV2015. Лекция 2. Основы обработки изображений.
CV2015. Лекция 2. Основы обработки изображений.
 
20120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture0320120414 videorecognition konushin_lecture03
20120414 videorecognition konushin_lecture03
 
CV2011 Lecture 7. Recognition
CV2011 Lecture 7. RecognitionCV2011 Lecture 7. Recognition
CV2011 Lecture 7. Recognition
 
CV2011-2. Lecture 10. Pose estimation.
CV2011-2. Lecture 10.  Pose estimation.CV2011-2. Lecture 10.  Pose estimation.
CV2011-2. Lecture 10. Pose estimation.
 
20100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture0220100919 computer vision_konushin_lecture02
20100919 computer vision_konushin_lecture02
 
CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.CV2011-2. Lecture 11. Face analysis.
CV2011-2. Lecture 11. Face analysis.
 
CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.CV2011-2. Lecture 01. Segmentation.
CV2011-2. Lecture 01. Segmentation.
 
CV2011 Lecture 2. Image processing
CV2011 Lecture 2. Image processingCV2011 Lecture 2. Image processing
CV2011 Lecture 2. Image processing
 
CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.CV2011-2. Lecture 08. Multi-view stereo.
CV2011-2. Lecture 08. Multi-view stereo.
 
Лекция 07 Обработка видео
Лекция 07 Обработка видеоЛекция 07 Обработка видео
Лекция 07 Обработка видео
 
L05 features
L05 featuresL05 features
L05 features
 
CV2011 Lecture 1. Part 2. Light & Color
CV2011 Lecture 1. Part 2. Light & ColorCV2011 Lecture 1. Part 2. Light & Color
CV2011 Lecture 1. Part 2. Light & Color
 

Viewers also liked

Batman o longo dia das bruxas 05
Batman   o longo dia das bruxas 05Batman   o longo dia das bruxas 05
Batman o longo dia das bruxas 05Marcos Donato
 
LifeGuard license
LifeGuard licenseLifeGuard license
LifeGuard licenseYu-Jen Wang
 
Kultura na křižovatce
Kultura na křižovatceKultura na křižovatce
Kultura na křižovatceKISK FF MU
 
20120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-0420120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-04Computer Science Club
 
20080413 machine learning_nikolenko_lecture08
20080413 machine learning_nikolenko_lecture0820080413 machine learning_nikolenko_lecture08
20080413 machine learning_nikolenko_lecture08Computer Science Club
 

Viewers also liked (7)

Science3
Science3Science3
Science3
 
Pdf.ex.bag.720x720
Pdf.ex.bag.720x720Pdf.ex.bag.720x720
Pdf.ex.bag.720x720
 
Batman o longo dia das bruxas 05
Batman   o longo dia das bruxas 05Batman   o longo dia das bruxas 05
Batman o longo dia das bruxas 05
 
LifeGuard license
LifeGuard licenseLifeGuard license
LifeGuard license
 
Kultura na křižovatce
Kultura na křižovatceKultura na křižovatce
Kultura na křižovatce
 
20120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-0420120512 repeatsinsymbolicsequences shur_lecture03-04
20120512 repeatsinsymbolicsequences shur_lecture03-04
 
20080413 machine learning_nikolenko_lecture08
20080413 machine learning_nikolenko_lecture0820080413 machine learning_nikolenko_lecture08
20080413 machine learning_nikolenko_lecture08
 

Similar to 20120413 videorecognition konushin_lecture02

20120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture0420120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture04Computer Science Club
 
Humane Interface (Гуманный интерфейс)
Humane Interface (Гуманный интерфейс)Humane Interface (Гуманный интерфейс)
Humane Interface (Гуманный интерфейс)Andrey Bibichev
 
20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01Computer Science Club
 
CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.Anton Konushin
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.Anton Konushin
 
20100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture0320100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture03Computer Science Club
 
Этапы моделирования
Этапы моделированияЭтапы моделирования
Этапы моделированияstudent_SSGA
 
20120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture0520120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture05Computer Science Club
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVPavel Tsukanov
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.Anton Konushin
 
Kirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of ModelingKirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of ModelingSergey Arkhipov
 

Similar to 20120413 videorecognition konushin_lecture02 (12)

20120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture0420120414 videorecognition konushin_lecture04
20120414 videorecognition konushin_lecture04
 
Humane Interface (Гуманный интерфейс)
Humane Interface (Гуманный интерфейс)Humane Interface (Гуманный интерфейс)
Humane Interface (Гуманный интерфейс)
 
20120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture0120120413 videorecognition konushin_lecture01
20120413 videorecognition konushin_lecture01
 
CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.CV2015. Лекция 2. Простые методы распознавания изображений.
CV2015. Лекция 2. Простые методы распознавания изображений.
 
CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.CV2015. Лекция 7. Поиск изображений по содержанию.
CV2015. Лекция 7. Поиск изображений по содержанию.
 
20100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture0320100919 computer vision_konushin_lecture03
20100919 computer vision_konushin_lecture03
 
Этапы моделирования
Этапы моделированияЭтапы моделирования
Этапы моделирования
 
20120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture0520120415 videorecognition konushin_lecture05
20120415 videorecognition konushin_lecture05
 
L06 detection
L06 detectionL06 detection
L06 detection
 
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCVМАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
МАШИННОЕ ЗРЕНИЕ С ИСПОЛЬЗОВАНИЕ OPENCV
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
Kirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of ModelingKirill Rozin - Computer Vision. Alchemy of Modeling
Kirill Rozin - Computer Vision. Alchemy of Modeling
 

More from Computer Science Club

20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugsComputer Science Club
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugsComputer Science Club
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12Computer Science Club
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11Computer Science Club
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10Computer Science Club
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09Computer Science Club
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02Computer Science Club
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01Computer Science Club
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04Computer Science Club
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01Computer Science Club
 

More from Computer Science Club (20)

20141223 kuznetsov distributed
20141223 kuznetsov distributed20141223 kuznetsov distributed
20141223 kuznetsov distributed
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs20140531 serebryany lecture02_find_scary_cpp_bugs
20140531 serebryany lecture02_find_scary_cpp_bugs
 
20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs20140531 serebryany lecture01_fantastic_cpp_bugs
20140531 serebryany lecture01_fantastic_cpp_bugs
 
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture1220140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
 
20140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture1120140427 parallel programming_zlobin_lecture11
20140427 parallel programming_zlobin_lecture11
 
20140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture1020140420 parallel programming_kalishenko_lecture10
20140420 parallel programming_kalishenko_lecture10
 
20140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture0920140413 parallel programming_kalishenko_lecture09
20140413 parallel programming_kalishenko_lecture09
 
20140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture0220140329 graph drawing_dainiak_lecture02
20140329 graph drawing_dainiak_lecture02
 
20140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture0120140329 graph drawing_dainiak_lecture01
20140329 graph drawing_dainiak_lecture01
 
20140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-0420140310 parallel programming_kalishenko_lecture03-04
20140310 parallel programming_kalishenko_lecture03-04
 
20140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-0320140223-SuffixTrees-lecture01-03
20140223-SuffixTrees-lecture01-03
 
20140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture0120140216 parallel programming_kalishenko_lecture01
20140216 parallel programming_kalishenko_lecture01
 
20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich20131106 h10 lecture6_matiyasevich
20131106 h10 lecture6_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich20131013 h10 lecture4_matiyasevich
20131013 h10 lecture4_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 
20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich20131006 h10 lecture3_matiyasevich
20131006 h10 lecture3_matiyasevich
 

20120413 videorecognition konushin_lecture02

  • 2. Видео Последовательность изображений, полученных с одной камеры через небольшие промежутки времени • Пользовательское видео – от 3-5 кадров/сек до 30-50 кадров/сек • Работая с видео, мы предполагаем, что наблюдаемые объекты изменяются между кадрами незначительно • «Незначительно» может сильно вариьироваться – от смещения на 1 пиксель, до смещения на десятки и более пикселей
  • 3. Движение Что показано в видео? • Движение – главное отличие видео от изображений • Движение само по себе является мощной визуальной подсказкой • Суть многих действий именно в динамике • Иногда достаточно отследить движение отдельных точек, чтобы распознать событие
  • 4. Распознавание по движению http://www.biomotionlab.ca/Demos/BMLwalker.html
  • 5. Описание движения • Точки наблюдаемой сцены движутся относительно камеры / изображения • Векторное поле движения 2D проекций на изображение 3D точек объектов сцены называется полем движения (motion field) • Нужно это движение как-то формализовать, описывать и измерять
  • 6. Оптический поток • Движение точек объектов по видео увидеть можно далеко не всегда • Пример: • Серый матовый шар, освещается с одной стороны и вращается вокруг своей оси • Яркость всех пикселов изображения в этом случае будет постоянной •Оптический поток (optical flow) – векторное поле видимого (apparent) движения пикселей между кадрами • Вычисление оптического потока – одна из базовых задач анализа видео • Задача похоже на задачу попиксельного сопоставления двух изображений одной и той же сцены
  • 7. Визуализация Вектора движения для Цветовое кодирование вектора отдельных точек или всего движения. Каждому направлению и изображения амплитуде свой цвет и яркость
  • 8. Оптический поток • Векторное поле движения пикселей между кадрами • Задача - аналог задачи сопоставления изображений (dense matching) • Один из базовых инструментов анализа изображений
  • 9. Постановка задачи • Как оценить движение пикселей от H в изображение I? • Проблема соответствия пикселей! – Пусть дан пиксель H, наити близкие пиксели того же цвета в I • Ключевые предположения • Константный цвет: точка в H выглядит также, как и в I – Для изображения в градациях серого, это постоянная яркость • Малое движение: точки не уезжают далеко между кадрами
  • 10. Ограничения на оптический поток • Используем ограничения для формализации задачи • Постоянная яркость • Малое смещение: (u и v меньше 1-го пикселя) – Разложим функцию картинки в ряд тейлора I:
  • 11. Уравнение оптического потока • Объединим два ограничения В пределе u и v стремятся к нулю, и получаем равенство:
  • 12. Уравнение оптического потока • Элементарное уравнение оптического потока: • Вопрос: сколько неизвестных и уравнений для каждого пикселя? • 1 уравнение, 2 неизвестных (u, v)
  • 13. Дополнительные уравнения • Как можно получить больше уравнений? • Идея: наложить дополнительные ограничения • Пусть оптический поток меняется плавно • Вариант: пусть для всех пикселей p из окрестности (x,y) смещение (u,v) постоянно! – Для окна 5x5 получаем 25 уравнений для каждого пикселя!
  • 14. Цвет вместо яркости • При использовании окна 5x5 получается 25*3 уравнений на пиксель!
  • 15. Алгоритм Лукаса-Канаде • Проблема: больше уравнений, чем неизвестных! • Получаем задачу наименьших квадратов • Можем решить её через нормальные уравнения T 1 T d  ( A A) A b • Суммируем по всем пикселям в окне K x K • Это метод был предложен Лукасом и Канаде в 1981 году
  • 16. Алгоритм Лукаса-Канаде • Оптимальные (u, v) удовлетворяют уравнению • Которое может быть решено через нормальные уравнения d  ( AT A) 1 AT b B. D. Lucas and T. Kanade. An iterative image registration technique with an application to stereo vision. In DARPA Image Understanding Workshop, April 1981.
  • 17. Условия на разрешимость • Решение задачи оптического потока d = (u,v) может быть найдено в виде T 1 T d  ( A A) A b  • Когда задача разрешима? • ATA должна быть обратимой • ATA не должна быть слишком близка к нулю – С.значения l 1 и l 2 матрицы ATA не должны быть малы • ATA должна быть хорошо определима – l 1/ l 2 не должно быть слишком велико – (l 1 = наибольшее с.значение) • ATA разрешима, когда нет апертурной проблемы
  • 21. Края – большие градиенты – большое l 1, маленькое l l 2
  • 22. Слабоконтрастная текстура – величина градиента мала – малое l 1, малое l 2
  • 23. Текстурированная область – градиенты разные, большая амплитуда – большое l 1, большое l 2
  • 24. Замечание • Поиск оптического потока производится между двумя изображениями, но: • Можем оценить качество оценки только по 1 изображению! • По 1 картинке можно сказать, в каких точках поток будет считаться хорошо, а в каких - нет • На этом основаны методы выбора особенностей для отслеживания • Фактически, поиск особых точек! Jianbo Shi and Carlo Tomasi, "Good Features to Track," СVPR 1994
  • 25. Погрешности метода Л-К • Каковы потенциальные источники ошибок? • Предполагаем, что ATA обратима • Предполагаем, что в изображении мало шума • Когда эти предположения нарушаются: • Яркость точки не постоянная • Движение между кадрами большое • Движение соседей отличается от движения точки – Окно поиска слишком большое – Какой наилучший размер окна поиска?
  • 26. Итеративное уточнение • Итеративный вариант алгоритма Лукаса-Канаде 1. Оценить движение в каждом пикселе, решив уравнения Лукаса-Канаде 2. Преобразовать изображение H используя вычисленное движение 3. Повторить 1-2 до сходимости
  • 27. Пример estimate Initial guess: update Estimate: x0 x 0= + - Рассмотрим одномерный случай (d – cмещение)
  • 28. Пример estimate Initial guess: update Estimate: x0 x
  • 29. Пример estimate Initial guess: update Estimate: x0 x
  • 30. Пример x0 x
  • 31. Замечания • Сглаживаем изображения для более аккуратного вычисления градиентов • Лучше градиенты вычислять по одному изображению, а преобразовывать другое • Преобразование изображения приводит к ошибкам из-за дискретизации, можем потерять в точности
  • 32. Проблема большого смещения • Насколько мало движение в изображении? • Существенно больше 1-го пикселя • Как можно решить эту проблему?
  • 34. Пирамиды изображений • Известна как Пирамида Гауссиан • В компьютерной графике – “mip map” [Williams, 1983] P. Burt and E. Adelson, “The Laplacian pyramid as a compact image code,” IEEE Trans. Commun., vol. 31, no. 4, pp. 532–540, 1983. Slide by Steve Seitz
  • 35. Построение пирамиды Маска фильтра • Повторяем до достижения минимального разрешения • Сглаживаем с помощью фильтра Гаусса текущее изображение • Сэмплируем – берём каждый k-ый пиксель (обычно, каждый 2ой) Slide by Steve Seitz
  • 36. Иерархический метод u=1.25 пикселей u=2.5 пикселей u=5 пикселей u=10 пикселей image H image H image II image Гауссова пирамида для H Гауссова пирамида для I
  • 37. Иерархический метод итеративный L-K масштабирование итеративный L-K . . . image J image H image II image Гауссова пирамида для H Гауссова пирамида для I
  • 38. Другие модели движения • В рассматриваемых алгоритмах модель движение – параллельный перенос (u,v) • Можно использовать другие модели • поворот, аффинную, перспективную • Необходимо просто вычислить соответствующий Якобиан T T T A A   JI( I) J i A Tb   J T I t ( I) T i Проблемы: • Много параметров, столько же исходных данных • Меньшая устойчивость и надежность Jianbo Shi and Carlo Tomasi, "Good Features to Track," СVPR 1994
  • 39. Глобальный подход • Зачем решать для каждого пикселя уравнение независимо? • Зададим одну функцию качества оптического потока для всего изображения в целом (Horn, 1980) • Оптимизировать её каким-нибудь методом оптимизации, например, методом сопряженных градиентов
  • 40. Глобальный подход • Первый член – задаёт условие «видимого движения», цвета пикселей после сдвига должны совпадать • Второй член задаёт ограничения на изменение векторов оптического потока между пикселами
  • 41. Штрафы на поток • Квадратичный • Charbonnier (дифференцируемый L1) • Lorenzian Робастные метрики, устойчивые к разрывам оптического потока на границах объектов Sun, D., Roth, S., and Black, M. J., Secrets of optical flow estimation and their principles, CVPR, June 2010
  • 42. Рейтинг алгоритмов • Общий рейтинг алгоритмов вычисления оптического потока и набор сложных тестовых данных • Как всегда, такой рейтинг и сложные данные стимулируют развитие алгоритмов • http://vision.middlebury.edu/flow/ S.Baker et. Al. A Database and Evaluation Methodology for Optical Flow, IJCV, 92(1):1-31, March 2011
  • 43. Создание сложных данных • Для численной оценки алгоритмов нужны эталонные данные. • Вопрос, как их можно получить для реальных данных? • Подход: • Съёмка в двух диапазонах • Флюоресцентная краска создает высокочастотную текстуру, позволяющую оценить поле движения • Плюс сложные синтетические данные
  • 45. Интерполяция Снимаем данные камерой 100Hz, оставляем каждый 4ый кадр. Задача – по оптическому потоку проинтерполировать промежуточные
  • 46. Реализации • 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
  • 47. Резюме • «Оптический поток» формализует понятие движения в видео • Алгоритмы его вычисления бывают локальные и глобальные • Методы можно разделить на качественные (и медленные) и быстрые (но менее точные) • Для сравнения методов используется база middleburry • Есть целый ряд доступных реализаций
  • 48. Система видеонаблюдения • Камера, наблюдающая некоторую сцену (в закрытом или открытом пространстве) • Необходимо выделить «объекты интереса» и отследить их движение в последующих кадрах • Результат: • Ограничивающий прямоугольник • Попиксельая маска объекта интереса
  • 49. Свойства задачи • Ещё системы называют «детектор движения» • Упрощение 1: стационарная камера • Упрощение 2: стабильный фон, мало изменяющийся между камера • Вывод – объекты должны отличаться от фона
  • 50. Вычитание фона - = • Метод «Background subtraction»: • Возьмем изображение без объектов – «фон» (background) • Вычтем фон из новых изображений с объектами • Сравним разницу для каждого пикселя с порогом – Порог – параметр алгоритма • Если разница больше порога - то считаем пиксель принадлежащим «переднему плану» (foreground) • Получаем бинарную маску «переднего плана» – Фон (0), передний план (1)
  • 51. Обработка переднего плана • Бинарная маска переднего плана обычно шумная • Нам нужно: • Уменьшить шум в изображении • Выделить области, потенциально соответствующие объектам (связанные компоненты)
  • 52. Медианный фильтр Фильтр с окрестностью 3x3
  • 53. Выделение связных областей • Определение связной области: • Множество пикселей, у каждого пикселя которого есть хотя бы один сосед, принадлежащий данному множеству. Соседи пикселей: 4-связность 8-связность
  • 54. Разметка связных областей 11 222 11 22 2 3 44 5 44 4 66 666 7 Бинарное изображение Размеченное изображение
  • 55. Рекурсивный алгоритм 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++); } }
  • 56. Рекурсивный алгоритм 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); } }
  • 57. Последовательное сканирование Последовательно, сканируем бинарное изображение сверху вниз, слева направо: 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 labeled copy label to A else if B and C labeled if B label = C label copy label to A else copy either B label or C label to A record equivalence of labels
  • 58. Последовательное сканирование Случай конфликта: Постобработка - переразметка с учетом эквивалентностей областей (второй проход в алгоритме)
  • 60. Обработка маски переднего плана • Отфильтруем маску переднего плана • Выделим отдельные объекты как связанные компоненты • «Блоб» («капля», blob) - связанная компоненты маски переднего плана  Каждый «блоб» - потенциальный объект, который нужно дальше обрабатывать
  • 61. Наблюдение за мышами • Если объект в сцене может быть только один, то самый крупную связанную компоненту (блоб) будем считать объектом • Получили «базовый» алгоритм вычитания фона, который работает в ряде лабораторных задач (отслеживание мышей) • Схема: • Попиксельное вычитание изображения фона из текущего кадра • Сравнение попиксельной разницы с порогом • Фильтрация маски • Выделение связанных компонент
  • 62. Реальная картина В большинстве случае, фон существенно меняется со временем
  • 63. Модель фона • Будем рассматривать каждый пиксель изображения i независимо от остальных • Яркость (цвет) xi каждого пикселя фона изменяется по времени t • Построим модель яркости(цвета) xi пикселя i фона • Если на новом кадре яркость (цвет) пикселя не удовлетворяет модели фона - значит это пиксель принадлежит движущемуся объекту
  • 64. Общая схема вычитания фона - Initialize_background_model() - For t = 1:N - Compute_frame_difference() - Threshold_frame_difference() - Noise_removal() - Update_background_model() - end
  • 65. Усреднение кадров • Простейшая модель фона – одно изображение чистого фона • Возьмем N кадров и попиксельно усредним интенсивности (цвета)
  • 66. Модель фона - медиана • Когда не работает усреднение: • Всегда в кадре движущиеся объекты • Случайные и резкие изменения яркости (блики, засветка) • Вместо усреднения берем медиану
  • 67. Среднее vs Медиана Средний цвет Медиана
  • 69. Другие методы • Во многих случаях медиана может не помогать • Пр.: когда мышь сидит в одном месте >50% кадров тестового видеоролика • Предлагаются другие методы, на основе оптимизации функции «стабильности» фона • Например, разобьём все изображения на прямоугольные фрагменты • Будем выбирать сегменты из разных кадров, чтобы была наиболее плавная и стабильная картинка • Требуют глобальной оптимизации, некоторые подходы рассмотрим во второй части курса
  • 70. Обновление модели фона  Что делать, если освещенность постепенно меняется?  Moving average – постоянное обновление фона  Взвешенная сумма текущего и предыдущих N кадров  Ещё один (или несколько) параметр – вес кадра
  • 72. Гауссиана • Предположение: • Интенсивность меняется в небольших пределах вокруг какого-то значения • «Шум камеры» • Нормальное распределение Wren, Christopher R., Ali Azarbayejani, Trevor Darrell, and Alex Pentland. “Pfinder: Real-Time Tracking of the Human Body,” IEEE PAMI, 1997
  • 73. Вычисление параметров • Для одного канала: N 1 • Вычисляем среднее  N x i 1 i 2 1 N • Вычисляем дисперсию    ( xi   ) 2 N  1 i 1 • Правдоподобие x при вычисленных параметрах: ( x   )2 1  2 2  ( x | , )  e  2 • Отсечение по порогу – обычно допускаем интервал (x-3σ,x+3σ)
  • 74. Обновление параметров • Обновление матожидания t 1  t  (1   ) xt 1 • Обновление дисперсии 2 2 2 2  t 1   ( t 1  ( t1  t ) )  (1   )( xt1  t 1 ) а – скорость обновления (обучения)
  • 75. Многоканальное изображение • Можно рассчитать полную матрицу ковариации K • Обновлять полную матрицу сложно • Обновление только среднего, с сохранением ковариации t 1  t  (1   ) xt 1
  • 76. Как настраивать модель? • Если есть размеченные данные: • Оценка точности и полноты (precision/recall) на наборе видеороликов • Выбор параметров, оптимизирующих желаемую точность • Если нет размеченных данных • Можно взять видео без объектов • Настроить параметры таким образом, чтобы получить заданное количество ложных обнаружений • Минимальные пороги для достижения заданной «чувствительности»
  • 77. Смесь гауссиан • Один гауссиан – один кластер • Значения могут группироваться в несколько кластеров W.E.L.Grimson, C.Stauffer. Adaptive background mixture models for real-time tracking. CVPR 1999
  • 78. Смесь гауссиан Распределение интенсивности красного и зеленого каналов
  • 79. Смесь гауссиан  Вероятность интенсивности y при модели смести К гауссиан K P( xt )   i ,t N (xt , i ,t ,  i ,t ) i 1 i ,t - вес компоненты I в момент t • Вычисление смеси требует EМ алгоритма (не в реальном времени), поэтому используем приближение
  • 80. Обучение смеси на лету • Пусть N – количество компонент в смеси • Инициализируем 1ую компоненту по первому изображению, вес = 1, вес остальных – 0 • Сравниваем пиксель с каждой компонентой, пока не найдем совпадения • Обновляем матожидание и дисперсию совпавшей компоненты • Если совпадения не найдено, то заменяем компоненту с наименьшим весом • Обновляем веса
  • 81. Обновление весов Обновление весов: i,t  (1  a )i ,t 1  aM i ,t M i ,t = 1, если интенсивность пикселя удовлетворяет i-ой компоненте После обновления всех весов, они нормализуются
  • 82. Моделирование фона • Упорядочим все компоненты по критерию i /  • Чем «стабильнее» компонента, тем выше • Чем больше вес (чаще встречается, тем тоже выше • Определим порог T - какая доля выборки для каждого пикселя должна соответствовать фону • Тогда фон для каждого пикселя: b B  arg min (  i  T ) b i 1 • Все остальные компоненты - объекты
  • 83. Пример работы (1) (2) (3) (4) 1. Исходный кадр 2. Модель фона (старшая гауссиана) 3. Мат.ожидания второй гауссианы 4. Маска переднего плана
  • 84. Поблочная обработка • Вместо анализа каждого пикселя мы можем разбить всё изображение на блоки и анализировать блоки • Точность сегментации получается хуже, зато считается статистика изображения в блоке, что повышает надежность
  • 85. Статистики по окрестностям Ko, T.[Teresa], Soatto, S.[Stefano], Estrin, D.[Deborah], Background Subtraction on Distributions, ECCV 2008
  • 86. Схема алгоритма • Посчитаем статистику (гистограмму) по 3D окрестности пикселя (фон): • Посчитаем статистику по 2д окрестности пикселя на текущем кадре: • Вычислим разницу: • Обновление модели:
  • 88. Глобальные модели цветов • Если у объекта и фона характерные цвета, то почему бы это не использовать? • Построим цветовые модель объекта и модель фона • Для каждого пикселя будем сравнивать вероятности принадлежности пиксела обоим моделям и выбирать ту, вероятность для которой будет выше
  • 89. Модель фона • Построим и глобальную, и локальную модели фона • Глобальная: смесь гауссиан (GMM) ( K b  10  15) Kb p ( I r | xr  B )    kb N ( I r |  k ,  b ) b k k 1
  • 90. Модель фона • Построим и глобальную, и локальную модели фона • Глобальная: смесь гауссиан (GMM) ( Kb  10  15) • Локальная: один гауссиан
  • 91. Общая модель фона • Глобальная: смесь гауссиан (GMM) ( Kb  10  15) Kb pglobal ( I r | xr  B )   kb N ( I r |  kb ,  b ) k k 1 • Локальная: один гауссиан B B plocal ( I r )  N ( I r |  ,  )r r • Объединенная: pmix ( I r )    p global ( I r | xr  B)  (1   )  plocal ( xr )
  • 92. Модель переднего плана • Возьмём те пиксели, для которых вероятность фона низкая pB ( I r )  t f • Обучим по ним смесь гауссиан (K=5)
  • 93. Соотношение моделей? pglobal ( I r | xr  F ) if xr  F pmix ( I r ) if xr  B pmix ( I r )    pglobal ( I r | xr  B)  (1   )  plocal ( xr )  ?
  • 94. Адаптивная смесь pmix ( I r )    p global ( I r | x r  B )  (1   )  plocal ( xr ) Если цветовые модели объекта и фона очень разные, то мы можем полностью положиться на них
  • 95. Адаптивная модель Дивергенция Kullback-Liebler KL fb K wkf KL fb   wkf min ( KL ( N kf || N ib )  log b ) k 0 i wi 0  KL fb   дает разницу между двумя смесями гауссин KL fb  0  модели идентичные
  • 97. Адаптивная модель KL fb    1 1 e 2 KL KL fb  1  1 KL fb  1 pmix ( I r )  pglobal ( I r | xr  B)   0.5 Только глобальная модель pmix ( I r )  1  p global ( I r | xr  B)  1  plocal ( xr ) 2 2 Поровну локальная и глобальные модели
  • 98. Адаптивная модель pglobal ( I r | xr  F ) if xr  F pmix ( I r ) if xr  B pmix ( ) ( I r )    p global ( I r | xr  B )  (1   )  plocal ( xr ) • Параметр смешения моделей можно уточнять на каждом кадре, в т.ч. с учётом других факторов • Глобальная модель позволит нам обрабатывать сложные случаи изменения фона, когда локальная модель срабатывает плохо и наоборот
  • 99. Поддержка модели фона Изменение освещенности • Автоподстройка камеры • Лампы дневного света • Включение света Небольшое изменение освещенности: • Преобразование цветовых моделей на основе преобразования B гистограмм {I r }  {I r  B} Резкие изменения • Перестройка цветовой модели фона и переднего плана • Использование карты краёв как подсказки
  • 101. Поддержка модели фона • Движение в фоне • Опираемся на глобальную модель • Дрожание камеры • Применяем размытие по гауссу • Уменьшаем вес локальной цветовой модели • «Заснувшие» и «Пешеход» на заднем плане • Оставляем только самую большую связанную компоненту
  • 103. Обнаружение носимых предметов Любопытный пример использования сегментации для выделения специфических объектов в видео Dima Damen and David Hogg. Detecting Carried Objects in Short Video Sequences. ЕССV-2008
  • 104. Модели шаблонов движения • EPFL база • 8 человек отсняли на беговой дорожке • Сопоставили модели из MAYA • База состоит из силуэтов модели с 8и точек зрения • Используется для оценки позы и т.д.
  • 108. Данные • На пути создания общедоступных тестовых баз два препятствия: • Приватность • Сложность разметки данных • PETS Performance Evaluation of Tracking and Surveillance • http://www.cvg.rdg.ac.uk/PETS2009/a.html
  • 109. Пример Пример слежения с реальной системы видеонаблюдения
  • 110. Базовый метод видеонаблюдения • Обучение модели фона • Для каждого кадра • Вычитание фона • Обработка маски (фильтрация, морфологии) • Выделение связанных компонент • Ассоциация объектов между кадрами • Обновление фона
  • 111. Резюме лекции • Вычисление оптического потока и вычитание фона – два очень широко используемых инструмента при анализе видеоданных • Ряд алгоритмов в обоих задачах уже сейчас активно используется в коммерческих системах • Для обеих задач существуют алгоритмы на основе глобальных методов дискретной оптимизации на графических моделях