Fluxo Ótico - parte I

Transcrição

Fluxo Ótico - parte I
Processamento de Imagens
COS756 / COC603
aula 15 - Fluxo Ótico - parte I
Antonio Oliveira
Ricardo Marroquim
1/1
aula de hoje
fluxo ótico
estimando movimentos em imagens
2/1
motivação
para que serve?
encontrar objetos de um quadro em outro quadro (rastrear)
determinar velocidade e direção do movimento de um objeto
determinar a estrutura de um ambiente
3/1
primeira ideia
subtrair dois quadros
D(t) = P(t) − P(t − 1)
4/1
primeira ideia
problemas
sombras
movimento da câmera
mudança de iluminação
não tem estrutura do movimento
vamos ver maneiras melhores
block matching
método diferencial
5/1
suposições
intensidade constante
a intensidade em uma pequena janela da imagem é constante
apesar da localização não ser
6/1
suposições
intensidade constante
7/1
suposições
persistência temporal
o movimento é gradual em relação ao tempo (suave)
8/1
suposições
coerência espacial
pontos vizinhos geralmente pertencem a mesma superfı́cie
pontos vizinhos devem ter movimentação parecida
9/1
block matching
modo trivial
comparar janelas entre imagens
alguns critérios possı́veis
soma do quadrado das diferenças (SSD)
soma das diferenças absolutas (SAD)
correlação cruzada normalizada (NCC)
existem vários outros critérios ...
10 / 1
block matching
limitações
block matching não é invariante a
escala
rotação
distorção perspectiva ...
mas é simples e funciona bem em alguns casos bem comportados
11 / 1
métodos diferenciais
intensidade constante
I (x, y , t) é um pixel no instante de tempo t
que se move para I (x + δx, y + δy , t + δt)
se o ponto não mudou de intensidade, então
I (x, y , t) = I (x + δx, y + δy , t + δt)
12 / 1
métodos diferenciais
intensidade constante
se δx, δy e δt são pequenos
podemos fazer uma aproximação de primeira ordem
I (x + δx, y + δy , t + δt) = I (x, y , t) +
∂I
∂I
∂I
δx +
δy + δt
∂x
∂y
∂t
e como
I (x, y , t) = I (x + δx, y + δy , t + δt)
temos que
∂I
∂I
∂I
δx +
δy + δt = 0
∂x
∂y
∂t
13 / 1
métodos diferenciais
fluxo
∂I
∂I
∂I
δx +
δy + δt = 0
∂x
∂y
∂t
podemos rescrever como
∂I δx
∂I δy
∂I δt
+
+
=0
∂x δt
∂y δt
∂t δt
ou
∂I
∂I
∂I
vx +
vy +
=0
∂x
∂y
∂t
vx e vy são as componentes do fluxo ótico
∂I
∂I
∂x , ∂y
e
∂I
∂t
são as derivadas da intensidade da imagem
14 / 1
métodos diferenciais
fluxo
rescrevendo
Ix =
∂I
∂I
∂I
, Iy =
, It =
∂x
∂y
∂t
de forma mais compacta
(Ix , Iy ) · (vx , vy ) = −It
e ainda mais compacta
OI · ~v = −It
OI = (Ix , Iy ) : gradiente da intensidade da imagem
~v = (vx , vy ) : fluxo ótico
15 / 1
métodos diferenciais
fluxo
porém temos uma equação e duas incógnitas (vx e vy )
no espaço referente a velocidade, temos uma linha, mas não um
ponto
velocidade normal
a velocidade é definida na direção normal, mas não na direção
tangente
aperture problem
velocidade normal neste caso é um fenômeno local
velocidade normal → menor magnitude no espaço de velocidade
16 / 1
métodos diferenciais
velocidade normal
vn =
−It
OI
, n̂ =
|OI |
|OI |
~vn = vn n̂
~vn =
−It OI
2
|OI |
a velocidade é definida na direção normal
17 / 1
métodos diferenciais
Lucas-Kanade
como resolver esse problema?
[Ix Iy ]
u
v
= −It
usando a suposição de coerência espacial
fluxo é constante em uma pequena vizinhança

Ix1
 Ix2

..
.


Iy 1 u

Iy 2 
 v = −
..
.

It1
It2 

..
.
18 / 1
métodos diferenciais
Lucas-Kanade
sistema do tipo
A~u = b
T
A A~u = AT b
~u = (AT A)−1 AT b
agora só resolver com uma estratégia de mı́nimos quadrados
geralmente adiciona-se um peso Gaussiano
19 / 1
métodos diferenciais
Lucas-Kanade
repare que as matrizes são pequenas
(AT A) é facilmente inversı́vel (quando possı́vel)
P 2 P
Ix
Ix Iy
T
P
P
(A A)2x2 =
Ix Iy
Iy2
P
I
I
x
t
T
(A b)2x1 = P
Iy It
20 / 1
métodos diferenciais
Lucas-Kanade
o que acontece quando o ponto está em uma região homogênea
(sem variação)?
21 / 1
métodos diferenciais
Lucas-Kanade
o que acontece quando o ponto está em uma região homogênea
(sem variação)?
(AT A) = 0, não é inversı́vel
determinante igual a zero!
21 / 1
métodos diferenciais
Lucas-Kanade
o que acontece quando o ponto está em uma região homogênea
(sem variação)?
(AT A) = 0, não é inversı́vel
determinante igual a zero!
o que acontece quando o ponto está em uma aresta?
21 / 1
métodos diferenciais
Lucas-Kanade
o que acontece quando o ponto está em uma região homogênea
(sem variação)?
(AT A) = 0, não é inversı́vel
determinante igual a zero!
o que acontece quando o ponto está em uma aresta?
matriz tem posto 1, singular, não é inversı́vel
determinante igual a zero!
21 / 1
métodos diferenciais
Lucas-Kanade
o que acontece quando o ponto está em uma região homogênea
(sem variação)?
(AT A) = 0, não é inversı́vel
determinante igual a zero!
o que acontece quando o ponto está em uma aresta?
matriz tem posto 1, singular, não é inversı́vel
determinante igual a zero!
Lucas-Kanade
o que acontece quando o ponto está em uma região com variação
dos gradientes?
21 / 1
métodos diferenciais
Lucas-Kanade
o que acontece quando o ponto está em uma região homogênea
(sem variação)?
(AT A) = 0, não é inversı́vel
determinante igual a zero!
o que acontece quando o ponto está em uma aresta?
matriz tem posto 1, singular, não é inversı́vel
determinante igual a zero!
Lucas-Kanade
o que acontece quando o ponto está em uma região com variação
dos gradientes?
matriz definida, inversı́vel!
21 / 1
métodos diferenciais
Lucas-Kanade
Lucas-Kanade só é valido para pequenos deslocamentos
como fazer quando isso não é verdade?
22 / 1
métodos diferenciais
Lucas-Kanade
Lucas-Kanade só é valido para pequenos deslocamentos
como fazer quando isso não é verdade?
multi-resolução
uma opção é utilizar uma estratégia em multi-resolução
calcula o fluxo em um nı́vel de baixa resolução e propaga a
informação para os demais
22 / 1
métodos diferenciais
pirâmide
cada nı́vel possui metade da resolução do nı́vel anterior (nı́vel 0 =
original)
fluxo em um nı́vel L da pirâmide
vL =
v
2L
para um nı́vel L − 1 usar o fluxo do nı́vel L como estimativa inicial
offset para os vizinhos
I (x, y , t)L−1 = I (x + 2vxL + δx, y + 2vyL + δy , t + δt)
no final o fluxo do nı́vel L − 1 é a soma do nı́vel L com o incremento
atual rL
vL−1 = 2vL + rL
23 / 1
Lucas-Kanade pirâmide
OpenCV
uma das implentações de fluxo ótico do OpenCV é o
Lucas-Kanade-Pyramidal
CalcOpticalFlowPyrLK
precisão sub-pixel!
http://isa.umh.es/pfc/rmvision/opencvdocs/
appPage/LKTracker/LKTracker.htm
24 / 1