SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
Современные
методы Optical Flow
с GPU реализацией
Максим Харенко
Video Group
CS MSU Graphics & Media Lab
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Содержание
 Введение
 Локальный метод
 Вариационный метод
 Фазовый метод
 Заключение
2
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Введение
Optical Flow — векторное поле, определяющее
скорость движения каждой точки изображения
 Первые публикации появились в 1980 г.
 Возможные применения:
 Построение карт глубины
 Сегментация
 Задача распознавания
 Точная компенсация движения
3
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Введение
 Проекция движения объектов
в 3D сцене на 2D плоскость —
real motion
 Real motion сложно оценить
из-за отличий от apparent
motion:
 Occlusion problem
 Wrong motion problem
 Aperture problem
 Texture problem
4
aperture problem
http://www.pc.rhul.ac.uk/st/J.Zanker/PS1061/L4/PS1061_4.htm
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
5
Постановка задачи
Даны два последовательных изображения:
5
Необходимо найти векторное поле u(x),
задающее соответствие точек изображений,
например:
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
6
Локальные методы
Условие Optical Flow (Gradient constraint equation):
6
Вектор смещения ищется в каждой точке независимо
Локальный метод Lucas & Kanade:
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
7
Глобальные методы
7
Глобальный метод Horn & Schunck:
Сглаживает поле независимо от структуры
движения
   2 2 22
2 2
( ) tE I I u v d

        
  v v x
( ) ( ( ), ( ))u vv x x x
,
u u
u
x y
  
   
  
,
v v
v
x y
  
   
  
— параметр модели
Условие optical flow Условие гладкости
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
8
Вариационные методы
8
1 2
( ) ( ) ( ) ( )D SDE E E E   u u u u
 1
2
( ) ( ) ( )DE I I d

  u x u x x
 2
2
( ) ( ) ( )DE I I d

   u x u x x
 2 2
( )SE u v d

   u x
, 0  
2 2 2
( )s s  
Цель — минимизация энергии:
— регуляризацонный параметр регуляризационный параметр
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
9
Фазовые методы
Основная идея — применить предварительную фильтрацию
изображений
9
( )( , ) ( )( , )I F t I F t t t     x x v
Фильтрация проводится в различных направлениях:
2 2
( ) Re( ( )) Im( ( )) — амплитудаR R  x x x
Im( ( ))
( ) arctan
Re( ( ))
— фаза
R
R

 
  
 
x
x
x
( ) — отфильтрованное изображениеR x
0    v
T
,
x y
 

  
   
  
( , )u vv
t





 
 
 

 
v
— проекция на  v v
Phase gradient constraint:
Realtime phase-based optical flow on the GPU. K. Pauwels,
M. M. Van Hulle. IEEE Computer Society Conference on
Computer Vision and Pattern Recognition Workshops, 2008
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Содержание
 Введение
 Локальный метод
 Вариационный метод
 Фазовый метод
 Заключение
10
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Используется модель Lucas & Kanade:
 Видимое смещение ищется в виде:
 Полученная система решается с помощью метода
наименьших квадратов с L2-нормой:
Локальный метод
Алгоритм
11Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Пирамидальный алгоритм
12
 Пирамиды строятся для
двух последовательных
кадров
 Каждый следующий
уровень - разрешение
уменьшается вдвое
 Optical Flow cчитается
на вернем уровне
 Используется как
начальное значение для
новой оценки
 Билинейная
интерполяция
Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Итеративное и временное улучшение
 На каждом уровне
пирамиды — итеративное
улучшение
 Текущий кадр
трансформируется с помощью
последнего посчитанного
потока: каждая точка
изображения сдвигается
на соответствующее смещение
посчитанное ранее
13Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Итеративное и временное улучшение
 Если смещение
не целое, используется
билинейная интерполяция
 Временное улучшение
заключается
в использовании
посчитанных между N-1 и N
кадрами полей скоростей,
как начальное значение для
расчета оптического потока
между N и N+1 кадрами
14Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Algorithm parallelization
Расчеты optical flow для одного
пикселя происходят независимо
друг от друга. Вычисляются
одновременно
 Построение пирамид, интерполяция
и расчет производных – не зависят
от соседних пикселей
 Вычисление смещений точки
выполняется, используя только
информацию из производной
На пиксель используется один CUDA
thread
15Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Результаты работы
 Время исполнения CUDA реализации на последовательности
316×252 Yosemite 21 ms per frame (47 fps)
 На реальной последовательности 640×480 время исполнения
на оптимизированной последовательной реализации на C
составило около 7 секунд на кадр
 На реальной последовательности 640×480 время исполнения
CUDA реализации — 67 ms per frame (15 fps)
16Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Результаты(1)
17Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Результаты(2)
18Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Результаты(3)
19Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Результаты(4)
20Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Локальный метод
Результаты(5)
21Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense
and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
кадр1 кадр2 кадр3
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Содержание
 Введение
 Локальный метод
 Вариационный метод
 Фазовый метод
 Заключение
22
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Алгоритм
 Вариационная формулировка optical flow
 Условие optical flow в области для каждого
24
— якобиан ; , — параметры
Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Т.к. в Е»(г не присутствуют производные по v, ее
минимизация сводится к точечной минимизации для
фиксированных х+v(х) и u(x) строго выпуклой функции
А – дифференциал I1 в точке
b – вещественное число
Минимизация сводится к подсчету остаточной проекции
25Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
В случае, если гладкая и может быть
минимизирована обычными методами
Иначе не являясь гладкой, достигает
минимума в
Где пи – проекция на выпуклое множество С
Вариационный метод
Предположение 1
26Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Реализация
28Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Проекция на эллиптический шар
29Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Реализация
 5 уровней пирамиды с уменьшением
разрешения вдвое
 На шаге проекции градиент оценивается
бикубическим подходом (bicubic
interpolation)
 Процедура минимизации (для
предположения 1) хорошо
распараллеливается
 Реализовано на CUDA C
30Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Входные данные
31
Color Gradient Laplacian
Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Результаты на dimetradon
32
Ground truth RGB-алгоритм
Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Результаты на dimetradon
33
Ground truth GCA-алгоритм
Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Результаты на groove3
34
Ground truth RGB-алгоритм
Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Результаты groove3
35
BCA-алгоритм RGB+MF-алгоритм
Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Average endpoint error
36Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-
L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Вариационный метод
Результаты
 Время расчета optical flow для пары 640x480 RGB кадров
около 0.5 секунды
 За счет небольшого снижения точности (снижение
количества итераций warps) RGB+MF алгоритм производит
расчет optical flow для 640x480 RGB кадров в реальном
времени
37
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Содержание
 Введение
 Локальный метод
 Вариационный метод
 Фазовый метод
 Заключение
38
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
 Каждый кадр в последовательности раскладывается
по направлениям набором фильтров направлений
 Для каждого направления считается величина и знак
скорости (component velocities)
39
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
Фазовый метод
Базовый алгоритм
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Базовый алгоритм
 Из системы линейных уравнений находятся начения х- и у-
компоненты векторов optical flow
40
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Пример ST-slice
 Объект на последовательности
кадров движется в направлении
0˚(вправо) на 1 пиксель за кадр
 Вдоль пунктирной линии
сделано 2 среза (по
направлениям 0˚ и 90˚)
последовательности кадров
 Пространственная координата
среза всегда соответствует
направлению
 Сomponent velocity для
заданного направления зависит
от tg a
41
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Фильтрация
Фильтр направлений состоит из двух частей: продольная
и поперечная
 Продольная часть – фильтр низких частот с узкой полосой
пропускания, пропускающий частотный спектр,
находящийся в направлении фильтра
 Поперечная часть – bandwidth filter с широкой полосой,
пропускающей всю часть спектра находящегося в заданной
области для данного направления. Такой тип сигналов
называется аналитическим (для негативных частот спектр
сигнала равен нулю)
42
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Фильтрация
Т.к. фильтр направлений производит analytic signal, то
опишем ST-slice как
 S – вектор состоящий из координаты s направленной вдоль
направления фильтра и временной координаты t
 – функция амплитуды
 – фазовая функция
43
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Мгновенное значение частота
 Сomponent velocity зависит от смещения
фазы на ST-slice
 Следовательно, важная информация
содержится в фазовом градиенте ,
называемом мгновенным значением
частоты (FM функция)
44
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Вращение
45
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Оценка мгновенных частот
 ----мы – комплексная
функция, получаемая
из фильтра направлений
 component velocity
получают, изучая смещение
фазы на ST-slice
46
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
 Чтобы посчитать направление движения (угол ) структуры
на ST-slice из мгновенного значения частоты, вводят тензор
 Тензор – матрица 2х2, описывающая структуру без ST-slice
 , – мгновенные значения частоты
Фазовый метод
Тензор
47
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Тензор
 – – собственный вектор, определяется
наименьшим собственным значением
 Тогда component velocities ищется как
48
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Алиасинг
49
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
В базовом алгоритме при высоких скоростях появляется алиасингом
пространственно временной срез
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Алиасинг
50
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
пространственно временной срез
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Pyramid algorithm
 Для лучшей оценки высоких
скоростей используется
пирамидальная схема
с множителем 2
 Изображение сглаживается и его
разрешение уменьшается вдвое
 Для грубой оценки используется
сглаженная последовательность
с низким разрешением
51
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Компенсация
52
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Реализация базового алгоритма(1)
 Передача данных между RAM
и global memory дорога, поэтому
вся последовательность
копируется в global memory
 Все промежуточные результаты
хранятся в GPU
 Текущий кадр загружается
в texture memory
 При подсчете мгновенных частот
кадра требуются результаты
работы фильтра направлений для
предыдущего, текущего
и следующего кадра
53
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Реализация базового алгоритма(2)
 При подсчете component velocities
для одного кадра необходим
набор мгновенных частот
(в зависимости от временного
радиуса ST-slice)
 Продольная и поперечная части
фильтра направлений
выполняются последовательно
 Вместо использования набора
фильтров направлений кадр
вращается. После подсчета
component velocities происходит
обратный поворот
54
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Оптимизация
 Transversal filtering kernel эффективен с shared memory
 Longitudinal filtering kernel эффективен с texture memory
 Использование векторного типа (float2) снижает
количество обращений к памяти, считывая и записывая
несколько переменных за одну транзакцию
 Например, используя векторный тип вместе с texture
memory, число обращений к back-rotating kernel
снижается на 50%
55
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Результаты(1)
56
Технические характеристики: Intel Core 2 Quad 2.4GHz,
2GB DDR2-SDRAM, NVIDIA GeForce GTX 260, CUDA compute capability
1.3, 27 multiprocessors, 216 cores, 896MB global memory
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Результаты(2)
57
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
average angle error
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Фазовый метод
Результаты Yosemite Cloudless
58
Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,”
Efficient Implementation of Optical Flow Algorithm Based on
Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Содержание
 Введение
 Локальный метод
 Вариационный метод
 Фазовый метод
 Заключение
59
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Заключение
 Алгоритмы с фильтрами направлений
хорошо распараллеливаются
 TV-L1 демонстрирует высокое качество
в реальном времени
 Для оценки сильного движения
современные методы часто используют
пирамидальные алгоритмы
60
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Литература
1. S. Baker, D. Scharstein, JP Lewis, S. Roth, M. Black, R. Szeliski.
A Database and Evaluation Methodology for Optical Flow, 2011
2. Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and
Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
3. Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient
Implementation of Optical Flow Algorithm Based on Directional Filters
on a GPU Using CUDA”, EUSIPCO, 2011
4. Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-L1
Optical Flow for Vector Valued Images”, EMMCVPR, 2011
5. Middlebury benchmark.
http://vision.middlebury.edu/flow/
61
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
62
?
CS MSU Graphics & Media Lab (Video Group)
www.compression.ru/video/
Only for
Maxus 
Лаборатория компьютерной
графики и мультимедиа
Видеогруппа — это:
 Выпускники в аспирантурах Англии,
Франции, Швейцарии (в России в МГУ и
ИПМ им. Келдыша)
 Выпускниками защищено 5 диссертаций
 Наиболее популярные в мире сравнения
видеокодеков
 Более 3 миллионов скачанных фильтров
обработки видео
63

Weitere ähnliche Inhalte

Was ist angesagt?

Обзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видеоОбзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видеоMSU GML VideoGroup
 
Некоторые методы матирования видео
Некоторые методы матирования видеоНекоторые методы матирования видео
Некоторые методы матирования видеоMSU GML VideoGroup
 
Метрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стереоМетрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стереоMSU GML VideoGroup
 
Исправление различий резкости в 3D видео
Исправление различий резкости в 3D видеоИсправление различий резкости в 3D видео
Исправление различий резкости в 3D видеоMSU GML VideoGroup
 
Некоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубиныНекоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубиныMSU GML VideoGroup
 
Методы повышения визуального качества восстановленного фона
Методы повышения визуального качества восстановленного фонаМетоды повышения визуального качества восстановленного фона
Методы повышения визуального качества восстановленного фонаMSU GML VideoGroup
 
Сегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shiftСегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shiftMSU GML VideoGroup
 
Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)MSU GML VideoGroup
 
Получение глубины из движения камеры
Получение глубины из движения камерыПолучение глубины из движения камеры
Получение глубины из движения камерыMSU GML VideoGroup
 
Некоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времениНекоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времениMSU GML VideoGroup
 
Некоторые методы повышения качества построения стерео
Некоторые методы повышения качества построения стереоНекоторые методы повышения качества построения стерео
Некоторые методы повышения качества построения стереоMSU GML VideoGroup
 
Некоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видеоНекоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видеоMSU GML VideoGroup
 
Некоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кодаНекоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кодаMSU GML VideoGroup
 
Исправление стерео видео
Исправление стерео видеоИсправление стерео видео
Исправление стерео видеоMSU GML VideoGroup
 
Некоторые методы сопоставления стерео
Некоторые методы сопоставления стереоНекоторые методы сопоставления стерео
Некоторые методы сопоставления стереоMSU GML VideoGroup
 
Обзор методов оценки True-motion
Обзор методов оценки True-motionОбзор методов оценки True-motion
Обзор методов оценки True-motionMSU GML VideoGroup
 
Вычитание фона с использованием карт глубины
Вычитание фона с использованием карт глубиныВычитание фона с использованием карт глубины
Вычитание фона с использованием карт глубиныMSU GML VideoGroup
 
Обзор стандарта H.265/HEVC
Обзор стандарта H.265/HEVCОбзор стандарта H.265/HEVC
Обзор стандарта H.265/HEVCMSU GML VideoGroup
 
Некоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображенийНекоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображенийMSU GML VideoGroup
 

Was ist angesagt? (20)

Обзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видеоОбзор алгоритмов генерации ракурсов для многоракурсных видео
Обзор алгоритмов генерации ракурсов для многоракурсных видео
 
Некоторые методы матирования видео
Некоторые методы матирования видеоНекоторые методы матирования видео
Некоторые методы матирования видео
 
Метрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стереоМетрики оценки качества конвертированного стерео
Метрики оценки качества конвертированного стерео
 
Исправление различий резкости в 3D видео
Исправление различий резкости в 3D видеоИсправление различий резкости в 3D видео
Исправление различий резкости в 3D видео
 
Некоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубиныНекоторые методы генерации многоракурсных изображений на основе карты глубины
Некоторые методы генерации многоракурсных изображений на основе карты глубины
 
Методы повышения визуального качества восстановленного фона
Методы повышения визуального качества восстановленного фонаМетоды повышения визуального качества восстановленного фона
Методы повышения визуального качества восстановленного фона
 
Сегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shiftСегментация видео на основе Mean-shift
Сегментация видео на основе Mean-shift
 
Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)Методы повышения визуального качества восстановленного фона (часть 2)
Методы повышения визуального качества восстановленного фона (часть 2)
 
Получение глубины из движения камеры
Получение глубины из движения камерыПолучение глубины из движения камеры
Получение глубины из движения камеры
 
Некоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времениНекоторые методы сопоставления и трекинга границ во времени
Некоторые методы сопоставления и трекинга границ во времени
 
Некоторые методы повышения качества построения стерео
Некоторые методы повышения качества построения стереоНекоторые методы повышения качества построения стерео
Некоторые методы повышения качества построения стерео
 
Некоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видеоНекоторые методы обнаружения артефактов 3D-видео
Некоторые методы обнаружения артефактов 3D-видео
 
Некоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кодаНекоторые методы проектирования и оптимизации кода
Некоторые методы проектирования и оптимизации кода
 
Deringing Cartoons
Deringing CartoonsDeringing Cartoons
Deringing Cartoons
 
Исправление стерео видео
Исправление стерео видеоИсправление стерео видео
Исправление стерео видео
 
Некоторые методы сопоставления стерео
Некоторые методы сопоставления стереоНекоторые методы сопоставления стерео
Некоторые методы сопоставления стерео
 
Обзор методов оценки True-motion
Обзор методов оценки True-motionОбзор методов оценки True-motion
Обзор методов оценки True-motion
 
Вычитание фона с использованием карт глубины
Вычитание фона с использованием карт глубиныВычитание фона с использованием карт глубины
Вычитание фона с использованием карт глубины
 
Обзор стандарта H.265/HEVC
Обзор стандарта H.265/HEVCОбзор стандарта H.265/HEVC
Обзор стандарта H.265/HEVC
 
Некоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображенийНекоторые алгоритмы многомерной обработки изображений
Некоторые алгоритмы многомерной обработки изображений
 

Ähnlich wie Современные методы Optical Flow c GPU реализацией

Вычисление глубины по одному изображению
Вычисление глубины по одному изображениюВычисление глубины по одному изображению
Вычисление глубины по одному изображениюMSU GML VideoGroup
 
Обзор докладов конференции IC3D 2012
Обзор докладов конференции IC3D 2012Обзор докладов конференции IC3D 2012
Обзор докладов конференции IC3D 2012MSU GML VideoGroup
 
Алгоритмы для задачи матирования
Алгоритмы для задачи матированияАлгоритмы для задачи матирования
Алгоритмы для задачи матированияMSU GML VideoGroup
 
Способы построения и оценки карт салиентности
Способы построения и оценки карт салиентностиСпособы построения и оценки карт салиентности
Способы построения и оценки карт салиентностиMSU GML VideoGroup
 
Новые методы деинтерлейсинга
Новые методы деинтерлейсингаНовые методы деинтерлейсинга
Новые методы деинтерлейсингаMSU GML VideoGroup
 
Способы построения saliency map
Способы построения saliency mapСпособы построения saliency map
Способы построения saliency mapMSU GML VideoGroup
 
Методы цветокоррекции стереовидео
Методы цветокоррекции стереовидеоМетоды цветокоррекции стереовидео
Методы цветокоррекции стереовидеоMSU GML VideoGroup
 
Обработка областей открытия при распространении карт глубины
Обработка областей открытия при распространении карт глубиныОбработка областей открытия при распространении карт глубины
Обработка областей открытия при распространении карт глубиныMSU GML VideoGroup
 
Обзор алгоритмов трекинга объектов
Обзор алгоритмов трекинга объектовОбзор алгоритмов трекинга объектов
Обзор алгоритмов трекинга объектовMSU GML VideoGroup
 
Восстановление старых фильмов
Восстановление старых фильмовВосстановление старых фильмов
Восстановление старых фильмовMSU GML VideoGroup
 
Обзор методов сегментации видео
Обзор методов сегментации видеоОбзор методов сегментации видео
Обзор методов сегментации видеоMSU GML VideoGroup
 
Поиск и удаление дефектов в старом видео
Поиск и удаление дефектов в старом видеоПоиск и удаление дефектов в старом видео
Поиск и удаление дефектов в старом видеоMSU GML VideoGroup
 
Методы деинтерлейсинга
Методы деинтерлейсингаМетоды деинтерлейсинга
Методы деинтерлейсингаMSU GML VideoGroup
 
Устранение размытости видео
Устранение размытости видеоУстранение размытости видео
Устранение размытости видеоMSU GML VideoGroup
 
Обработка границ объектов при генерации стерео
Обработка границ объектов при генерации стереоОбработка границ объектов при генерации стерео
Обработка границ объектов при генерации стереоMSU GML VideoGroup
 
Обзор артефактов стерео видео. Временная синхронизация
Обзор артефактов стерео видео. Временная синхронизацияОбзор артефактов стерео видео. Временная синхронизация
Обзор артефактов стерео видео. Временная синхронизацияMSU GML VideoGroup
 
Обзор методов стабилизации видео
Обзор методов стабилизации видеоОбзор методов стабилизации видео
Обзор методов стабилизации видеоMSU GML VideoGroup
 
Обзоры методов шумоподавления
Обзоры методов шумоподавленияОбзоры методов шумоподавления
Обзоры методов шумоподавленияMSU GML VideoGroup
 
Измерение качества видео
Измерение качества видеоИзмерение качества видео
Измерение качества видеоMSU GML VideoGroup
 

Ähnlich wie Современные методы Optical Flow c GPU реализацией (20)

Вычисление глубины по одному изображению
Вычисление глубины по одному изображениюВычисление глубины по одному изображению
Вычисление глубины по одному изображению
 
Обзор докладов конференции IC3D 2012
Обзор докладов конференции IC3D 2012Обзор докладов конференции IC3D 2012
Обзор докладов конференции IC3D 2012
 
Алгоритмы для задачи матирования
Алгоритмы для задачи матированияАлгоритмы для задачи матирования
Алгоритмы для задачи матирования
 
Способы построения и оценки карт салиентности
Способы построения и оценки карт салиентностиСпособы построения и оценки карт салиентности
Способы построения и оценки карт салиентности
 
Новые методы деинтерлейсинга
Новые методы деинтерлейсингаНовые методы деинтерлейсинга
Новые методы деинтерлейсинга
 
Способы построения saliency map
Способы построения saliency mapСпособы построения saliency map
Способы построения saliency map
 
Методы цветокоррекции стереовидео
Методы цветокоррекции стереовидеоМетоды цветокоррекции стереовидео
Методы цветокоррекции стереовидео
 
Обработка областей открытия при распространении карт глубины
Обработка областей открытия при распространении карт глубиныОбработка областей открытия при распространении карт глубины
Обработка областей открытия при распространении карт глубины
 
Обзор алгоритмов трекинга объектов
Обзор алгоритмов трекинга объектовОбзор алгоритмов трекинга объектов
Обзор алгоритмов трекинга объектов
 
Восстановление старых фильмов
Восстановление старых фильмовВосстановление старых фильмов
Восстановление старых фильмов
 
Optical Flow на GPU
Optical Flow на GPUOptical Flow на GPU
Optical Flow на GPU
 
Обзор методов сегментации видео
Обзор методов сегментации видеоОбзор методов сегментации видео
Обзор методов сегментации видео
 
Поиск и удаление дефектов в старом видео
Поиск и удаление дефектов в старом видеоПоиск и удаление дефектов в старом видео
Поиск и удаление дефектов в старом видео
 
Методы деинтерлейсинга
Методы деинтерлейсингаМетоды деинтерлейсинга
Методы деинтерлейсинга
 
Устранение размытости видео
Устранение размытости видеоУстранение размытости видео
Устранение размытости видео
 
Обработка границ объектов при генерации стерео
Обработка границ объектов при генерации стереоОбработка границ объектов при генерации стерео
Обработка границ объектов при генерации стерео
 
Обзор артефактов стерео видео. Временная синхронизация
Обзор артефактов стерео видео. Временная синхронизацияОбзор артефактов стерео видео. Временная синхронизация
Обзор артефактов стерео видео. Временная синхронизация
 
Обзор методов стабилизации видео
Обзор методов стабилизации видеоОбзор методов стабилизации видео
Обзор методов стабилизации видео
 
Обзоры методов шумоподавления
Обзоры методов шумоподавленияОбзоры методов шумоподавления
Обзоры методов шумоподавления
 
Измерение качества видео
Измерение качества видеоИзмерение качества видео
Измерение качества видео
 

Современные методы Optical Flow c GPU реализацией

  • 1. Современные методы Optical Flow с GPU реализацией Максим Харенко Video Group CS MSU Graphics & Media Lab
  • 2. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Локальный метод  Вариационный метод  Фазовый метод  Заключение 2
  • 3. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Введение Optical Flow — векторное поле, определяющее скорость движения каждой точки изображения  Первые публикации появились в 1980 г.  Возможные применения:  Построение карт глубины  Сегментация  Задача распознавания  Точная компенсация движения 3
  • 4. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Введение  Проекция движения объектов в 3D сцене на 2D плоскость — real motion  Real motion сложно оценить из-за отличий от apparent motion:  Occlusion problem  Wrong motion problem  Aperture problem  Texture problem 4 aperture problem http://www.pc.rhul.ac.uk/st/J.Zanker/PS1061/L4/PS1061_4.htm
  • 5. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  5 Постановка задачи Даны два последовательных изображения: 5 Необходимо найти векторное поле u(x), задающее соответствие точек изображений, например:
  • 6. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  6 Локальные методы Условие Optical Flow (Gradient constraint equation): 6 Вектор смещения ищется в каждой точке независимо Локальный метод Lucas & Kanade:
  • 7. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  7 Глобальные методы 7 Глобальный метод Horn & Schunck: Сглаживает поле независимо от структуры движения    2 2 22 2 2 ( ) tE I I u v d             v v x ( ) ( ( ), ( ))u vv x x x , u u u x y           , v v v x y           — параметр модели Условие optical flow Условие гладкости
  • 8. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  8 Вариационные методы 8 1 2 ( ) ( ) ( ) ( )D SDE E E E   u u u u  1 2 ( ) ( ) ( )DE I I d    u x u x x  2 2 ( ) ( ) ( )DE I I d     u x u x x  2 2 ( )SE u v d     u x , 0   2 2 2 ( )s s   Цель — минимизация энергии: — регуляризацонный параметр регуляризационный параметр
  • 9. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  9 Фазовые методы Основная идея — применить предварительную фильтрацию изображений 9 ( )( , ) ( )( , )I F t I F t t t     x x v Фильтрация проводится в различных направлениях: 2 2 ( ) Re( ( )) Im( ( )) — амплитудаR R  x x x Im( ( )) ( ) arctan Re( ( )) — фаза R R         x x x ( ) — отфильтрованное изображениеR x 0    v T , x y              ( , )u vv t               v — проекция на  v v Phase gradient constraint: Realtime phase-based optical flow on the GPU. K. Pauwels, M. M. Van Hulle. IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops, 2008
  • 10. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Локальный метод  Вариационный метод  Фазовый метод  Заключение 10
  • 11. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Используется модель Lucas & Kanade:  Видимое смещение ищется в виде:  Полученная система решается с помощью метода наименьших квадратов с L2-нормой: Локальный метод Алгоритм 11Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 12. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Пирамидальный алгоритм 12  Пирамиды строятся для двух последовательных кадров  Каждый следующий уровень - разрешение уменьшается вдвое  Optical Flow cчитается на вернем уровне  Используется как начальное значение для новой оценки  Билинейная интерполяция Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 13. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Итеративное и временное улучшение  На каждом уровне пирамиды — итеративное улучшение  Текущий кадр трансформируется с помощью последнего посчитанного потока: каждая точка изображения сдвигается на соответствующее смещение посчитанное ранее 13Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 14. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Итеративное и временное улучшение  Если смещение не целое, используется билинейная интерполяция  Временное улучшение заключается в использовании посчитанных между N-1 и N кадрами полей скоростей, как начальное значение для расчета оптического потока между N и N+1 кадрами 14Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 15. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Algorithm parallelization Расчеты optical flow для одного пикселя происходят независимо друг от друга. Вычисляются одновременно  Построение пирамид, интерполяция и расчет производных – не зависят от соседних пикселей  Вычисление смещений точки выполняется, используя только информацию из производной На пиксель используется один CUDA thread 15Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 16. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Результаты работы  Время исполнения CUDA реализации на последовательности 316×252 Yosemite 21 ms per frame (47 fps)  На реальной последовательности 640×480 время исполнения на оптимизированной последовательной реализации на C составило около 7 секунд на кадр  На реальной последовательности 640×480 время исполнения CUDA реализации — 67 ms per frame (15 fps) 16Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 17. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Результаты(1) 17Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 18. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Результаты(2) 18Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 19. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Результаты(3) 19Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 20. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Результаты(4) 20Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009
  • 21. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Локальный метод Результаты(5) 21Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009 кадр1 кадр2 кадр3
  • 22. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Локальный метод  Вариационный метод  Фазовый метод  Заключение 22
  • 23. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Алгоритм  Вариационная формулировка optical flow  Условие optical flow в области для каждого 24 — якобиан ; , — параметры Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 24. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Т.к. в Е»(г не присутствуют производные по v, ее минимизация сводится к точечной минимизации для фиксированных х+v(х) и u(x) строго выпуклой функции А – дифференциал I1 в точке b – вещественное число Минимизация сводится к подсчету остаточной проекции 25Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 25. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  В случае, если гладкая и может быть минимизирована обычными методами Иначе не являясь гладкой, достигает минимума в Где пи – проекция на выпуклое множество С Вариационный метод Предположение 1 26Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 26. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Реализация 28Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 27. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Проекция на эллиптический шар 29Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 28. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Реализация  5 уровней пирамиды с уменьшением разрешения вдвое  На шаге проекции градиент оценивается бикубическим подходом (bicubic interpolation)  Процедура минимизации (для предположения 1) хорошо распараллеливается  Реализовано на CUDA C 30Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 29. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Входные данные 31 Color Gradient Laplacian Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 30. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Результаты на dimetradon 32 Ground truth RGB-алгоритм Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 31. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Результаты на dimetradon 33 Ground truth GCA-алгоритм Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 32. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Результаты на groove3 34 Ground truth RGB-алгоритм Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 33. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Результаты groove3 35 BCA-алгоритм RGB+MF-алгоритм Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 34. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Average endpoint error 36Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV- L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011
  • 35. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Вариационный метод Результаты  Время расчета optical flow для пары 640x480 RGB кадров около 0.5 секунды  За счет небольшого снижения точности (снижение количества итераций warps) RGB+MF алгоритм производит расчет optical flow для 640x480 RGB кадров в реальном времени 37
  • 36. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Локальный метод  Вариационный метод  Фазовый метод  Заключение 38
  • 37. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus   Каждый кадр в последовательности раскладывается по направлениям набором фильтров направлений  Для каждого направления считается величина и знак скорости (component velocities) 39 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011 Фазовый метод Базовый алгоритм
  • 38. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Базовый алгоритм  Из системы линейных уравнений находятся начения х- и у- компоненты векторов optical flow 40 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 39. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Пример ST-slice  Объект на последовательности кадров движется в направлении 0˚(вправо) на 1 пиксель за кадр  Вдоль пунктирной линии сделано 2 среза (по направлениям 0˚ и 90˚) последовательности кадров  Пространственная координата среза всегда соответствует направлению  Сomponent velocity для заданного направления зависит от tg a 41 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 40. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Фильтрация Фильтр направлений состоит из двух частей: продольная и поперечная  Продольная часть – фильтр низких частот с узкой полосой пропускания, пропускающий частотный спектр, находящийся в направлении фильтра  Поперечная часть – bandwidth filter с широкой полосой, пропускающей всю часть спектра находящегося в заданной области для данного направления. Такой тип сигналов называется аналитическим (для негативных частот спектр сигнала равен нулю) 42 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 41. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Фильтрация Т.к. фильтр направлений производит analytic signal, то опишем ST-slice как  S – вектор состоящий из координаты s направленной вдоль направления фильтра и временной координаты t  – функция амплитуды  – фазовая функция 43 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 42. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Мгновенное значение частота  Сomponent velocity зависит от смещения фазы на ST-slice  Следовательно, важная информация содержится в фазовом градиенте , называемом мгновенным значением частоты (FM функция) 44 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 43. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Вращение 45 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 44. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Оценка мгновенных частот  ----мы – комплексная функция, получаемая из фильтра направлений  component velocity получают, изучая смещение фазы на ST-slice 46 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 45. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus   Чтобы посчитать направление движения (угол ) структуры на ST-slice из мгновенного значения частоты, вводят тензор  Тензор – матрица 2х2, описывающая структуру без ST-slice  , – мгновенные значения частоты Фазовый метод Тензор 47 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 46. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Тензор  – – собственный вектор, определяется наименьшим собственным значением  Тогда component velocities ищется как 48 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 47. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Алиасинг 49 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011 В базовом алгоритме при высоких скоростях появляется алиасингом пространственно временной срез
  • 48. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Алиасинг 50 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011 пространственно временной срез
  • 49. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Pyramid algorithm  Для лучшей оценки высоких скоростей используется пирамидальная схема с множителем 2  Изображение сглаживается и его разрешение уменьшается вдвое  Для грубой оценки используется сглаженная последовательность с низким разрешением 51 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 50. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Компенсация 52 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 51. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Реализация базового алгоритма(1)  Передача данных между RAM и global memory дорога, поэтому вся последовательность копируется в global memory  Все промежуточные результаты хранятся в GPU  Текущий кадр загружается в texture memory  При подсчете мгновенных частот кадра требуются результаты работы фильтра направлений для предыдущего, текущего и следующего кадра 53 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 52. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Реализация базового алгоритма(2)  При подсчете component velocities для одного кадра необходим набор мгновенных частот (в зависимости от временного радиуса ST-slice)  Продольная и поперечная части фильтра направлений выполняются последовательно  Вместо использования набора фильтров направлений кадр вращается. После подсчета component velocities происходит обратный поворот 54 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 53. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Оптимизация  Transversal filtering kernel эффективен с shared memory  Longitudinal filtering kernel эффективен с texture memory  Использование векторного типа (float2) снижает количество обращений к памяти, считывая и записывая несколько переменных за одну транзакцию  Например, используя векторный тип вместе с texture memory, число обращений к back-rotating kernel снижается на 50% 55 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 54. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Результаты(1) 56 Технические характеристики: Intel Core 2 Quad 2.4GHz, 2GB DDR2-SDRAM, NVIDIA GeForce GTX 260, CUDA compute capability 1.3, 27 multiprocessors, 216 cores, 896MB global memory Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 55. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Результаты(2) 57 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011 average angle error
  • 56. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Фазовый метод Результаты Yosemite Cloudless 58 Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011
  • 57. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Содержание  Введение  Локальный метод  Вариационный метод  Фазовый метод  Заключение 59
  • 58. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Заключение  Алгоритмы с фильтрами направлений хорошо распараллеливаются  TV-L1 демонстрирует высокое качество в реальном времени  Для оценки сильного движения современные методы часто используют пирамидальные алгоритмы 60
  • 59. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Литература 1. S. Baker, D. Scharstein, JP Lewis, S. Roth, M. Black, R. Szeliski. A Database and Evaluation Methodology for Optical Flow, 2011 2. Julien Marzat, Yann Dumortier, Andre Ducrot, “Real-Time Dense and Accurate Parallel Optical Flow using CUDA”, WSCG, 2009 3. Robert Hegner, Ivar Austvoll, Tom Ryen, Guido M. Schuster,” Efficient Implementation of Optical Flow Algorithm Based on Directional Filters on a GPU Using CUDA”, EUSIPCO, 2011 4. Lars Lau Rak, Lars Roholm, Mads Nielsen, Francois Lauze, “TV-L1 Optical Flow for Vector Valued Images”, EMMCVPR, 2011 5. Middlebury benchmark. http://vision.middlebury.edu/flow/ 61
  • 60. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  62 ?
  • 61. CS MSU Graphics & Media Lab (Video Group) www.compression.ru/video/ Only for Maxus  Лаборатория компьютерной графики и мультимедиа Видеогруппа — это:  Выпускники в аспирантурах Англии, Франции, Швейцарии (в России в МГУ и ИПМ им. Келдыша)  Выпускниками защищено 5 диссертаций  Наиболее популярные в мире сравнения видеокодеков  Более 3 миллионов скачанных фильтров обработки видео 63