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

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

Upload: sidonia-orsin

Post on 01-Jan-2016

83 views

Category:

Documents


0 download

DESCRIPTION

Оптический поток. PDE = уравнения в частных производных. Видео = …. Компьютерное зрение. Одна из основных задач : Получить информацию о движении в кадре. Компьютерное зрение. Одна из основных задач : Получить информацию о движении в кадре. Идентифицировать движение - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Оптический  поток

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

Page 2: Оптический  поток

PDE = уравнения в частных производных

0))(div())(())((

,0))(div())(())((

3

2

3

2

3222

3

2

3

2

3222

vvuIIIIIIIII

uvuIIIIIIIII

xzxyyzyyzyyzxzz

yzxyxzxxzxyzxzz

Видео = …

Page 3: Оптический  поток

Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре

Page 4: Оптический  поток

Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре

•Идентифицировать движение•Определить его направление•Определить скорость

Page 5: Оптический  поток

Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре

Положение и перемещения камеры обычно неизвестны

•Идентифицировать движение•Определить его направление•Определить скорость

Page 6: Оптический  поток

Компьютерное зрениеОдна из основных задач:Получить информацию о движении в кадре

Положение и перемещения камеры обычно неизвестны

•Идентифицировать движение•Определить его направление•Определить скорость

Ограничиваем задачу поиском относительного движения объектов в системе отсчета, связанной с камерой

Page 7: Оптический  поток

Компьютерное зрениеОтносительное движение между двумя последовательными кадрами можно представить как векторное поле – оптический поток

Page 8: Оптический  поток
Page 9: Оптический  поток
Page 10: Оптический  поток
Page 11: Оптический  поток

Оптический потокПрименение•Визуальные эффекты•Отслеживание объектов•Автономная навигация роботов•Системы видеонаблюдения

Page 12: Оптический  поток

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

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

Page 13: Оптический  поток

Взаимная корреляция сигналов

}{}){(}{

)()())((

*

*

gFfFgfF

dytygyftgf

Page 14: Оптический  поток

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

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

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

Page 15: Оптический  поток

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

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

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

• Вариационные методы• минимизация некоторого функционала

inf)(

0inf решение

0

bauuE

baxbauu

baxbax

x

inf),( vuE

Page 16: Оптический  поток

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

Вариационные методы•формулировка в виде задачи оптимизации•плотное поле скоростей• для каждого пикселя

•высокая точность• смещение не обязательно кратно размеру пикселя

Page 17: Оптический  поток

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

Построение модели•Дано:• Непрерывная последовательность изображений

•Надо найти:• Поле смещений

TyxtyxI ,0 t,),( ),,,( в точке в момент времени

1

),,(

),,(

),,( tyxv

tyxu

tyxw

яркость

Page 18: Оптический  поток

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

),,( tI )1,,( tI

vu

),,( tw

Page 19: Оптический  поток

Построение моделиПредположение 1Постоянство яркости пикселей

0),,()1,,( tyxItvyuxI

Предположение 2 – малы, – гладкая функцияВ этом случае предыдущее равенство можно линеаризовать в точке

0

1),,(),,(),,(),,()1,,(

tyx

tyx

IvIuI

tyxIvtyxIutyxItyxItvyuxI

),,( tyxvu , I

Page 20: Оптический  поток

Построение модели

0 tyx IvIuI

•Одно уравнение для двух неизвестных

•Некорректная задача с бесконечным числом решений

•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра

невозможно однозначно определить направление движения

Page 21: Оптический  поток

Построение модели

0 tyx IvIuI

Как движется шаблон?

•Одно уравнение для двух неизвестных

•Некорректная задача с бесконечным числом решений

•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра

невозможно однозначно определить направление движения

Page 22: Оптический  поток

Построение модели

0 tyx IvIuI

Как движется шаблон?По диагонали вправо?

•Одно уравнение для двух неизвестных

•Некорректная задача с бесконечным числом решений

•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра

невозможно однозначно определить направление движения

Page 23: Оптический  поток

Построение модели

0 tyx IvIuI

Как движется шаблон?По диагонали вправо?Только вправо?

•Одно уравнение для двух неизвестных

•Некорректная задача с бесконечным числом решений

•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра

невозможно однозначно определить направление движения

Page 24: Оптический  поток

Построение модели

0 tyx IvIuI

Как движется шаблон?По диагонали вправо?Только вправо?Или только вниз?

•Одно уравнение для двух неизвестных

•Некорректная задача с бесконечным числом решений

•Известно как проблема апертуры(aperture problem)• наблюдая лишь за небольшой частью кадра

невозможно однозначно определить направление движения

Page 25: Оптический  поток

Как визуализировать векторное поле

При помощи стрелок, предварительно понизив разрешение

При помощи цвета:•Направление – цвет•Абсолютное значение – яркость

Page 26: Оптический  поток
Page 27: Оптический  поток

Как оценить качество рассчитанного потока

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

Page 28: Оптический  поток

Как оценить качество рассчитанного потока

AAE = 32.55AEE = 7.22

AAE = 2.76AEE = 0.37

AAE = 3.14AEE = 1.53

Ground truth

Page 29: Оптический  поток

Вариационные методы

Основная идеяполе смещений минимизирует некоторый энергетический функционал

dxdyvuSvuDvuE ),(),(),(

(data term) – штраф за отклонения от предположений о постоянстве какой-либо величины (например, яркости)(smooth term) – штраф за отклонения от предположений гладкости векторного поля

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

),( vuD

),( vuS

Page 30: Оптический  поток

МЕТОД HORN-SCHUNK

B.K.P. Horn and B.G. Schunck, "Determining optical flow." Artificial Intelligence, vol 17, pp 185-203, 1981

Page 31: Оптический  поток

Метод Horn-Schunck

ПредположениеПоле смещений – гладкая функция в области

Поле смещений минимизирует функционал

dxdyvuIvIuIvuE tyx smooth

22

data

2),(

data term – штраф за отклонения от предположения постоянства яркостиsmooth term – штраф за отклонение от предположения гладкости поля

Page 32: Оптический  поток

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

Уравнения Эйлера-Лагранжа

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

Page 33: Оптический  поток

Метод Horn-Schunck

Уравнения Эйлера-Лагранжа

2

2

2

2

0)(

0)(

yx

vIvIuII

uIvIuII

tyxy

tyxx

0 ,0 vu TT nnГраничные условия

Page 34: Оптический  поток

Метод Horn-Schunck

Аппроксимация оператора Лапласа

2

1,,1,

2

,1,,1,

22

h

uuu

h

uuuu jijijijijiji

ji

),( jiШ

Page 35: Оптический  поток

Метод 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

Page 36: Оптический  поток

Метод Horn-Schunck

Дискретизация уравнений

),(),(2

,,,

2,

),(),(2

,,,,

2

0

0

jiШji

jijityjiyjiyx

jiШji

jijitxjiyxjix

h

vvIIvIuII

h

uuIIvIIuI

Граничные условия уже учтены в дискретизованном уравнении•Шаг сетки h обычно принимают равным 1

•Система с 2xNxM неизвестными – метод Гаусса неприменим из-за высокой сложности и плохой устойчивости

Page 37: Оптический  поток

Метод Якоби для решения СЛАУ

Рассмотрим СЛАУ вида

Итерационный метод

bAx

UDLA

ij

kjiji

ii

ki

kk xaba

xxULbDx

x

1 ))((

0

111

0

Page 38: Оптический  поток

Метод Гаусса-Зейделя для решения СЛАУ

ij

kiij

ij

kiiji

ii

ki

kk xaxaba

xUxbLDx

x

1111

0

1 )()(

0

Рассмотрим СЛАУ вида bAx

UDLA Итерационный метод

Page 39: Оптический  поток

Метод релаксации (SOR) для решения СЛАУ

ij ij

kjij

kjiji

ii

ki

ki

kk

xaxaba

xx

xDUbLDx

x

11

11

0

)1(

)))1((()(

0

Рассмотрим СЛАУ вида bAx

UDLA Итерационный метод

Page 40: Оптический  поток

Метод 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

Просто распараллеливаетсяПриближение на следующей итерации полностью определяется по приближению на текущей итерации – нет зависимости между разными пикселями

Page 41: Оптический  поток

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

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

Page 42: Оптический  поток

Красно-черная схема Гаусса-Зейделя

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

Схема одной итерации•Обновить значения в красных узлах•Обновить значения в черных узлах

Аналогично можно сделать параллельную версию SOR

Page 43: Оптический  поток

Метод Horn-Schunck

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

Новые значения сохраняются в массив, отличный от массива со старыми значениями. В противном случае возникает конфликт чтения-записи.

•Ядро выполняет одну итерацию итерационного метода

iin

i

ni

ni

i

bAx

xx

1

1

max

max критерий останова

Page 44: Оптический  поток

МЕТОД 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

Page 45: Оптический  поток

Метод Brox et al

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

Page 46: Оптический  поток

Метод Brox et al

Рассмотренные методы чувствительны к изменению освещенияИдея•Рассмотреть другой data term

ПредположениеСохраняется градиент изображения

0),,()1,,( tyxItvyuxI

Плюс: •градиент не чувствителен к аддитивному изменению яркостиМинус: •чувствительность к шуму

Page 47: Оптический  поток

Метод Brox et al

Рассмотренные методы чувствительны к изменению освещенияИдея•Рассмотреть другой data term

ПредположениеСохраняется градиент изображения

0),,()1,,( tyxItvyuxI

С самого начала ищутся только небольшие векторы смещения

Page 48: Оптический  поток

Метод Brox et al

Рассмотренные методы чувствительны к изменению освещенияИдея•Рассмотреть другой data term

ПредположениеСохраняется градиент изображения

0),,()1,,( tyxItvyuxI

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

Page 49: Оптический  поток

Метод Brox et al

Тогда штраф за отклонение от предположений о сохранении яркости и градиента яркости примет вид

dxdyIIIIvuEData22

)()()()(),( xwxxwx

Page 50: Оптический  поток

Метод Brox et al

Проблема:•квадратичный штраф чувствителен к выбросам

Page 51: Оптический  поток

Метод Brox et al

Проблема:•квадратичный штраф чувствителен к выбросам

ИдеяЗаменить квадратичный штраф выпуклой возрастающей функцией

222 )( ss

малый положительный параметр

Page 52: Оптический  поток

Метод Brox et al

Получим новый функционал

dxdyIIIIvuEData22

)()()()(),( xwxxwx

Page 53: Оптический  поток

Метод Brox et al

dxdyvuvuESmooth2

3

2

3),(

Штраф за отклонения от предположения о гладкости потока

ПредположениеПоток кусочно-гладкий

Page 54: Оптический  поток

Метод Brox et al

),(),(),( vuEvuEvuE SmoothData

ЗадачаНайти u и v, минимизирующие функционал

dxdyvuvuESmooth2

3

2

3),(

dxdyIIIIvuEData22

)()()()(),( xwxxwx

Page 55: Оптический  поток

Метод 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 говорит о том, что соответствующее выражение НЕ производная, а разность, которую будем минимизировать

Page 56: Оптический  поток

Метод 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

Граничные условия Неймана

Page 57: Оптический  поток

Метод Brox et alЧисленный метод

•Уравнения Эйлера-Лагранжа нелинейные•Используем метод неподвижной точки для w•Если есть смещения на расстояние, большее размера пикселя, то функционал может иметь множество локальных минимумов

Идея•Использовать пирамиду изображений разного разрешения

Page 58: Оптический  поток

Метод неподвижной точки

**

*1

1

)(

lim

)(

)(

xxf

xx

xfx

xxf

n

n

nn

Page 59: Оптический  поток

Метод Brox et alЧисленный метод

•Совместим метод неподвижной точки с масштабированием

•Масштабировать будем с коэффициентом

•Для более плавного перехода от разрешения к разрешению коэффициент выберем близким к 1

•Используем полную пирамиду изображений, начиная с наименьшего возможного разрешения (например, с 10x10)

)1,0(

Page 60: Оптический  поток

Метод 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

Page 61: Оптический  поток

Метод Brox et alЧисленный методУстранение нелинейности в производных изображения

kkkkkk

kkyy

kkxy

kyz

kyz

kkxy

kkxx

kxz

kxz

kky

kkx

kz

kz

dvvvduuu

dvIduIII

dvIduIII

dvIduIII

11

1

1

1

,

Page 62: Оптический  поток

Метод Brox et alЧисленный методВведем обозначения

)))()((

)((:)(22

2

kkyy

kkxy

kyz

kkxy

kkxx

kxz

kky

kkx

kz

kData

dvIduIIdvIduII

dvIduII

))()((:)(2

3

2

3kkkkk

Smooth dvvduu

Page 63: Оптический  поток

Метод 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(

Page 64: Оптический  поток

Метод Brox et al

Численный методАппроксимация smooth term

Page 65: Оптический  поток

Метод Brox et al

Численный методАппроксимация smooth term

Page 66: Оптический  поток

Метод Brox et al

Численный методАппроксимация smooth term

Page 67: Оптический  поток

Метод Brox et al

Численный методАппроксимация smooth term

Page 68: Оптический  поток

Метод 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

Page 69: Оптический  поток

Метод 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

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

Page 70: Оптический  поток

)))()(()(()(

)(

))())((()(

)))()(()(()(

)(

)()()(

)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

Page 71: Оптический  поток

)))()(()(()(

)(

))())((()(

)))()(()(()(

)(

)()()(

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

Page 72: Оптический  поток

Метод Brox et alБилинейная интерполяция для I(x+w)

Page 73: Оптический  поток

Метод Brox et alРеализация•Кадры храним в виде текстур•Для продолжения решения с разрешения k на разрешение k+1 используем текстуры

Общая схема методаПодготовить текстуры с изображениямиЗадать начальное значения для u и v•Для каждого разрешения, начиная с наименьшего• Установить начальное значение du, dv

• Подготовить данные для итераций SOR• Выполнить некоторое число итераций SOR• Обновить u, v

• Продолжить решение на большее разрешение•Сохранить результат

Page 74: Оптический  поток

Метод Brox et alРеализация•Кадры храним в виде текстур•Для продолжения решения с разрешения k на разрешение k+1 используем текстуры

Общая схема методаПодготовить текстуры с изображениямиЗадать начальное значения для u и v•Для каждого разрешения, начиная с наименьшего• Установить начальное значение du, dv

• Подготовить данные для итераций SOR• Выполнить некоторое число итераций SOR• Обновить u, v

• Продолжить решение на большее разрешение•Сохранить результат

warping FP iterationlagged nonlinearity FP iterationsolver FP iteration

Page 75: Оптический  поток

Метод Brox et al

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

Используем текстуры

Текстуры + shared memory работает медленнее чем просто текстуры

Для объединения запросов при записи индексы начала строк округляем до значений, кратных 16

Page 76: Оптический  поток

?

Page 77: Оптический  поток

Дополнительные материалы:

•http://www.google.com•http://www.mia.uni-saarland.de•http://vision.middlebury.edu/flow/