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