Оптический поток
DESCRIPTION
Оптический поток. PDE = уравнения в частных производных. Видео = …. Компьютерное зрение. Одна из основных задач : Получить информацию о движении в кадре. Компьютерное зрение. Одна из основных задач : Получить информацию о движении в кадре. Идентифицировать движение - PowerPoint PPT PresentationTRANSCRIPT
Оптический поток
PDE = уравнения в частных производных
0))(div())(())((
,0))(div())(())((
3
2
3
2
3222
3
2
3
2
3222
vvuIIIIIIIII
uvuIIIIIIIII
xzxyyzyyzyyzxzz
yzxyxzxxzxyzxzz
Видео = …
Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре
Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре
•Идентифицировать движение•Определить его направление•Определить скорость
Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре
Положение и перемещения камеры обычно неизвестны
•Идентифицировать движение•Определить его направление•Определить скорость
Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре
Положение и перемещения камеры обычно неизвестны
•Идентифицировать движение•Определить его направление•Определить скорость
Ограничиваем задачу поиском относительного движения объектов в системе отсчета, связанной с камерой
Компьютерное зрениеОтносительное движение между двумя последовательными кадрами можно представить как векторное поле – оптический поток
Оптический потокПрименение•Визуальные эффекты•Отслеживание объектов•Автономная навигация роботов•Системы видеонаблюдения
Оптический поток
Методы нахождения• Фазовая корреляция• преобразование Фурье• только прямолинейное движение• все точки перемещаются одинаково
Взаимная корреляция сигналов
}{}){(}{
)()())((
*
*
gFfFgfF
dytygyftgf
Оптический поток
Методы нахождения• Фазовая корреляция• преобразование Фурье• только прямолинейное движение• все точки перемещаются одинаково
• Блочные методы• поиск похожих блоков• все точки блока перемещаются одинаково
Оптический поток
Методы нахождения• Фазовая корреляция• преобразование Фурье• только прямолинейное движение• все точки перемещаются одинаково
• Блочные методы• поиск похожих блоков• все точки блока перемещаются одинаково
• Вариационные методы• минимизация некоторого функционала
inf)(
0inf решение
0
bauuE
baxbauu
baxbax
x
inf),( vuE
Оптический поток
Вариационные методы•формулировка в виде задачи оптимизации•плотное поле скоростей• для каждого пикселя
•высокая точность• смещение не обязательно кратно размеру пикселя
Оптический поток
Построение модели•Дано:• Непрерывная последовательность изображений
•Надо найти:• Поле смещений
TyxtyxI ,0 t,),( ),,,( в точке в момент времени
1
),,(
),,(
),,( tyxv
tyxu
tyxw
яркость
Оптический поток
),,( tI )1,,( tI
vu
),,( tw
Построение моделиПредположение 1Постоянство яркости пикселей
0),,()1,,( tyxItvyuxI
Предположение 2 – малы, – гладкая функцияВ этом случае предыдущее равенство можно линеаризовать в точке
0
1),,(),,(),,(),,()1,,(
tyx
tyx
IvIuI
tyxIvtyxIutyxItyxItvyuxI
),,( tyxvu , I
Построение модели
0 tyx IvIuI
•Одно уравнение для двух неизвестных
•Некорректная задача с бесконечным числом решений
•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра
невозможно однозначно определить направление движения
Построение модели
0 tyx IvIuI
Как движется шаблон?
•Одно уравнение для двух неизвестных
•Некорректная задача с бесконечным числом решений
•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра
невозможно однозначно определить направление движения
Построение модели
0 tyx IvIuI
Как движется шаблон?По диагонали вправо?
•Одно уравнение для двух неизвестных
•Некорректная задача с бесконечным числом решений
•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра
невозможно однозначно определить направление движения
Построение модели
0 tyx IvIuI
Как движется шаблон?По диагонали вправо?Только вправо?
•Одно уравнение для двух неизвестных
•Некорректная задача с бесконечным числом решений
•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра
невозможно однозначно определить направление движения
Построение модели
0 tyx IvIuI
Как движется шаблон?По диагонали вправо?Только вправо?Или только вниз?
•Одно уравнение для двух неизвестных
•Некорректная задача с бесконечным числом решений
•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра
невозможно однозначно определить направление движения
Как визуализировать векторное поле
При помощи стрелок, предварительно понизив разрешение
При помощи цвета:•Направление – цвет•Абсолютное значение – яркость
Как оценить качество рассчитанного потока
twew
Настоящий поток (ground truth)Вычисленный поток (estimated)
Размер изображения NM
Средняя угловая ошибка (AAE – Average Angular Error)
Средняя ошибка по конечной точке (AEE – Average Endpoint Error)
M
i
N
j eji
eji
tji
Ttji
w
w
w
w
NMAAE
1 1,
,
,
,arccos1
M
i
N
j
eji
tji ww
NMAEE
1 1 ,,
1
Как оценить качество рассчитанного потока
AAE = 32.55AEE = 7.22
AAE = 2.76AEE = 0.37
AAE = 3.14AEE = 1.53
Ground truth
Вариационные методы
Основная идеяполе смещений минимизирует некоторый энергетический функционал
dxdyvuSvuDvuE ),(),(),(
(data term) – штраф за отклонения от предположений о постоянстве какой-либо величины (например, яркости)(smooth term) – штраф за отклонения от предположений гладкости векторного поля
параметр регуляризации – определяет гладкость получаемого векторного поля
),( vuD
),( vuS
МЕТОД HORN-SCHUNK
B.K.P. Horn and B.G. Schunck, "Determining optical flow." Artificial Intelligence, vol 17, pp 185-203, 1981
Метод Horn-Schunck
ПредположениеПоле смещений – гладкая функция в области
Поле смещений минимизирует функционал
dxdyvuIvIuIvuE tyx smooth
22
data
2),(
data term – штраф за отклонения от предположения постоянства яркостиsmooth term – штраф за отклонение от предположения гладкости поля
Минимизация функционала
Уравнения Эйлера-Лагранжа
dxdyvvuuvuyxFvuE yxyx ),,,,,,,(),(
yx
yx
vvv
uuu
Fy
Fx
F
Fy
Fx
F
0
0
С граничными условиями
0 ,0
y
x
y
x
v
vT
u
uT
F
F
F
Fnn
Метод Horn-Schunck
Уравнения Эйлера-Лагранжа
2
2
2
2
0)(
0)(
yx
vIvIuII
uIvIuII
tyxy
tyxx
0 ,0 vu TT nnГраничные условия
Метод Horn-Schunck
Аппроксимация оператора Лапласа
2
1,,1,
2
,1,,1,
22
h
uuu
h
uuuu jijijijijiji
ji
),( jiШ
Метод Horn-SchunckПространственные производные удобно вычислить заранее•свертка столбцов(строк) с ядром 5x1 (1x5)
h
yxfyxfyxfyxfyx
x
f jxjijijiji 12
),(),(8),(8),(),( 2112
ix 1ix 2ix1ix2ix
Ядро12
1
12
8 0
12
8
12
1
Метод Horn-Schunck
Дискретизация уравнений
),(),(2
,,,
2,
),(),(2
,,,,
2
0
0
jiШji
jijityjiyjiyx
jiШji
jijitxjiyxjix
h
vvIIvIuII
h
uuIIvIIuI
Граничные условия уже учтены в дискретизованном уравнении•Шаг сетки h обычно принимают равным 1
•Система с 2xNxM неизвестными – метод Гаусса неприменим из-за высокой сложности и плохой устойчивости
Метод Якоби для решения СЛАУ
Рассмотрим СЛАУ вида
Итерационный метод
bAx
UDLA
ij
kjiji
ii
ki
kk xaba
xxULbDx
x
1 ))((
0
111
0
Метод Гаусса-Зейделя для решения СЛАУ
ij
kiij
ij
kiiji
ii
ki
kk xaxaba
xUxbLDx
x
1111
0
1 )()(
0
Рассмотрим СЛАУ вида bAx
UDLA Итерационный метод
Метод релаксации (SOR) для решения СЛАУ
ij ij
kjij
kjiji
ii
ki
ki
kk
xaxaba
xx
xDUbLDx
x
11
11
0
)1(
)))1((()(
0
Рассмотрим СЛАУ вида bAx
UDLA Итерационный метод
Метод Horn-Schunck
Метод Якоби
),(),(2
2
),(),(,2,
1,
),(),(2
2
),(),(,2,
1,
1
1
1
1
jiШjiy
jiШji
kji
kjiyxty
kji
jiШjix
jiШji
kji
kjiyxtx
kji
hI
vh
uIIII
v
hI
uh
vIIII
u
Просто распараллеливаетсяПриближение на следующей итерации полностью определяется по приближению на текущей итерации – нет зависимости между разными пикселями
),(),(2
2
),(),(,2
),(),(
1,2
1,
1,
),(),(2
2
),(),(,2
),(),(
1,2,
1,
1
11
1
11
jiШjiy
jiШji
kji
jiШji
kji
kjiyxty
kji
jiШjix
jiШji
kji
jiШji
kji
kjiyxtx
kji
hI
vh
vh
uIIII
v
hI
uh
uh
vIIII
u
Метод Horn-Schunck
Метод Гаусса-Зейделя
i,j+1
i-1,j i,j i+1,j
i,j-1
),( jiШ
),( jiШ
Нельзя напрямую использовать для параллельных вычислений
Красно-черная схема Гаусса-Зейделя
•Новое значение в красном узле зависит только от текущих значений в самом узле и в его «черных соседях»•Новое значение в черном узле зависит только от текущих значений в самом узле и в его «красных соседях»Новые значения в узлах одного цвета можно вычислять параллельно
Схема одной итерации•Обновить значения в красных узлах•Обновить значения в черных узлах
Аналогично можно сделать параллельную версию SOR
Метод Horn-Schunck
Схема вычислений•Вычислить производные изображения (пространственные и временные)•Установить начальное приближение - нулевой поток•Выполнить некоторое количество итераций одного из итерационных методов
Новые значения сохраняются в массив, отличный от массива со старыми значениями. В противном случае возникает конфликт чтения-записи.
•Ядро выполняет одну итерацию итерационного метода
iin
i
ni
ni
i
bAx
xx
1
1
max
max критерий останова
МЕТОД BROX ET AL
T. Brox, A. Bruhn, N. Papenberg, J. WeickertHigh accuracy optical flow estimation based on a theory for warping, T. Pajdla and J. Matas (Eds.), European Conference on Computer Vision (ECCV) Prague, Czech Republic, Springer, LNCS, Vol. 3024, 25-36, May 2004
Метод Brox et al
Рассмотренные методы чувствительны к изменению освещения
Метод Brox et al
Рассмотренные методы чувствительны к изменению освещенияИдея•Рассмотреть другой data term
ПредположениеСохраняется градиент изображения
0),,()1,,( tyxItvyuxI
Плюс: •градиент не чувствителен к аддитивному изменению яркостиМинус: •чувствительность к шуму
Метод Brox et al
Рассмотренные методы чувствительны к изменению освещенияИдея•Рассмотреть другой data term
ПредположениеСохраняется градиент изображения
0),,()1,,( tyxItvyuxI
С самого начала ищутся только небольшие векторы смещения
Метод Brox et al
Рассмотренные методы чувствительны к изменению освещенияИдея•Рассмотреть другой data term
ПредположениеСохраняется градиент изображения
0),,()1,,( tyxItvyuxI
С самого начала ищутся только небольшие векторы смещенияИдеяИспользовать нелинеаризованное уравнение сохранения яркости
Метод Brox et al
Тогда штраф за отклонение от предположений о сохранении яркости и градиента яркости примет вид
dxdyIIIIvuEData22
)()()()(),( xwxxwx
Метод Brox et al
Проблема:•квадратичный штраф чувствителен к выбросам
Метод Brox et al
Проблема:•квадратичный штраф чувствителен к выбросам
ИдеяЗаменить квадратичный штраф выпуклой возрастающей функцией
222 )( ss
малый положительный параметр
Метод Brox et al
Получим новый функционал
dxdyIIIIvuEData22
)()()()(),( xwxxwx
Метод Brox et al
dxdyvuvuESmooth2
3
2
3),(
Штраф за отклонения от предположения о гладкости потока
ПредположениеПоток кусочно-гладкий
Метод Brox et al
),(),(),( vuEvuEvuE SmoothData
ЗадачаНайти u и v, минимизирующие функционал
dxdyvuvuESmooth2
3
2
3),(
dxdyIIIIvuEData22
)()()()(),( xwxxwx
Метод Brox et alУравнения Эйлера-ЛагранжаВведем обозначения:
)()(:
)()(:
)(:
)(:
)()(:
)(:
)(:
xwx
xwx
wx
wx
xwx
wx
wx
III
III
II
II
III
II
II
yyyz
xxxz
yyyy
xxxx
z
yy
xx
Использование z вместо t говорит о том, что соответствующее выражение НЕ производная, а разность, которую будем минимизировать
Метод Brox et alУравнения Эйлера-Лагранжа
0))(div(
))(())((
,0))(div(
))(())((
3
2
3
2
3
222
3
2
3
2
3
222
vvu
IIIIIIIII
uvu
IIIIIIIII
xzxyyzyyzyyzxzz
yzxyxzxxzxyzxzz
Граничные условия Неймана
Метод Brox et alЧисленный метод
•Уравнения Эйлера-Лагранжа нелинейные•Используем метод неподвижной точки для w•Если есть смещения на расстояние, большее размера пикселя, то функционал может иметь множество локальных минимумов
Идея•Использовать пирамиду изображений разного разрешения
Метод неподвижной точки
**
*1
1
)(
lim
)(
)(
xxf
xx
xfx
xxf
n
n
nn
Метод Brox et alЧисленный метод
•Совместим метод неподвижной точки с масштабированием
•Масштабировать будем с коэффициентом
•Для более плавного перехода от разрешения к разрешению коэффициент выберем близким к 1
•Используем полную пирамиду изображений, начиная с наименьшего возможного разрешения (например, с 10x10)
)1,0(
Метод Brox et alЧисленный методИтерации по разрешению назовем внешними
Пусть k – номер изображения в пирамиде (0 – самое низкое разрешение)
Tkkk vu )1,,(w – решение на k-ой внешней итерации
0))(div(
))(()))()(()(('
13
213
213
111212121
kkk
kyz
kxy
kxz
kxx
kz
kx
kyz
kxz
kz
uvu
IIIIIIIII
Осталась нелинейность в•
•
1*kI
Метод Brox et alЧисленный методУстранение нелинейности в производных изображения
kkkkkk
kkyy
kkxy
kyz
kyz
kkxy
kkxx
kxz
kxz
kky
kkx
kz
kz
dvvvduuu
dvIduIII
dvIduIII
dvIduIII
11
1
1
1
,
Метод Brox et alЧисленный методВведем обозначения
)))()((
)((:)(22
2
kkyy
kkxy
kyz
kkxy
kkxx
kxz
kky
kkx
kz
kData
dvIduIIdvIduII
dvIduII
))()((:)(2
3
2
3kkkkk
Smooth dvvduu
Метод Brox et alЧисленный методАппроксимация слагаемого с дивергенцией
h
uuk
h
uuk
h
h
uuk
h
uuk
h
uk
jiji
ji
jiji
ji
jiji
ji
jiji
ji
ji
1,,
,
,1,
,
,1,
,
,,1
,
,
2
1
2
1
2
1
2
1
1
1
)div(
Метод Brox et al
Численный методАппроксимация smooth term
Метод Brox et al
Численный методАппроксимация smooth term
Метод Brox et al
Численный методАппроксимация smooth term
Метод Brox et al
Численный методАппроксимация smooth term
Метод Brox et alЧисленный методАппроксимация smooth term
2
1,1,11,1,12,,1
2
,2
122
jijijiji
jijiji
uuuuuuu
2
,11,1,11,12,1,
2
2
1, 22
jijijiji
jijiji
uuuuuuu
Метод Brox et alЧисленный методОставшаяся нелинейность в Ѱ устраняется повторным применением метода неподвижной точки
Начальные значения
0 ,0 ,)1,0,0( 0,0,0 kkT dvduw
)()(div
))()(
)(()(0
1,3
,
1,1,1,1,
1,1,,
lkklkSmooth
lkkyy
lkkxy
kyz
kxy
lkkxy
lkkxx
kxz
kxx
lkky
lkkx
kz
kx
lkData
duu
dvIduIIIdvIduIII
dvIduIII
Полученная система уравнений •линейная•может быть решена одним из рассмотренных методов
)))()(()(()(
)(
))())((()(
)))()(()(()(
)(
)()()(
)1(
2,
2,
2,
,
)(
,
,,,,,,,,
,,,,,,
,
2,
2,
2,
,
)(
,
)( )(
,,,,
,.1,,
kixx
kixy
kix
lkiD
iШj
lkjiS
kiyz
kixy
kixz
kixx
kiz
kix
mlki
kiyy
kixy
kixy
kixx
kiy
kix
lkiD
kixx
kixy
kix
lkiD
iШj
lkjiS
iШj iШj
ki
lkjiS
mlkj
kj
lkjiS
mlki
mlki
III
IIIIIIdvIIIIII
III
uduu
dudu
Метод Brox et al
Решение линейной системыИспользуем красно-черный метод релаксации (Red-Black SOR)
Граничные условия
0 ,0 ,,,,
mlkmlk dvdu
)))()(()(()(
)(
))())((()(
)))()(()(()(
)(
)()()(
)1(
2,
2,
2,
,
)(
,
,,,,,,,,
,,,,,,
,
2,
2,
2,
,
)(
,
)( )(
,,,,
,.1,,
kixx
kixy
kix
lkiD
iШj
lkjiS
kiyz
kixy
kixz
kixx
kiz
kix
mlki
kiyy
kixy
kixy
kixx
kiy
kix
lkiD
kixx
kixy
kix
lkiD
iШj
lkjiS
iШj iШj
ki
lkjiS
mlkj
kj
lkjiS
mlki
mlki
III
IIIIIIdvIIIIII
III
uduu
dudu
Метод Brox et al
Решение линейной системыИспользуем красно-черный метод релаксации (Red-Black SOR)
Метод Brox et alБилинейная интерполяция для I(x+w)
Метод Brox et alРеализация•Кадры храним в виде текстур•Для продолжения решения с разрешения k на разрешение k+1 используем текстуры
Общая схема методаПодготовить текстуры с изображениямиЗадать начальное значения для u и v•Для каждого разрешения, начиная с наименьшего• Установить начальное значение du, dv
• Подготовить данные для итераций SOR• Выполнить некоторое число итераций SOR• Обновить u, v
• Продолжить решение на большее разрешение•Сохранить результат
Метод Brox et alРеализация•Кадры храним в виде текстур•Для продолжения решения с разрешения k на разрешение k+1 используем текстуры
Общая схема методаПодготовить текстуры с изображениямиЗадать начальное значения для u и v•Для каждого разрешения, начиная с наименьшего• Установить начальное значение du, dv
• Подготовить данные для итераций SOR• Выполнить некоторое число итераций SOR• Обновить u, v
• Продолжить решение на большее разрешение•Сохранить результат
warping FP iterationlagged nonlinearity FP iterationsolver FP iteration
Метод Brox et al
•Сложные шаблоны доступа к памяти•Большая часть данных не меняется во время итераций
Используем текстуры
Текстуры + shared memory работает медленнее чем просто текстуры
Для объединения запросов при записи индексы начала строк округляем до значений, кратных 16
?
Дополнительные материалы:
•http://www.google.com•http://www.mia.uni-saarland.de•http://vision.middlebury.edu/flow/