Processamento de Imagens COS756 / COC603 aula 08 - deteção de características de baixo-nível (low-level feature detection) parte II Antonio Oliveira Ricardo Marroquim 1 / 1
aula de hoje feature detection overview Laplaciano da Gaussiana pontos de interesse método de Harris curvatura 2 / 1
LoG Laplaciano derivada de segunda ordem (progressiva e regressiva) f (x 0 + x) = f (x 0 )+f (x 0 ) x + f (x 0 ) x 2 + f (x 0 ) x 3 +O( x 4 ) 2! 3! f (x 0 x) = f (x 0 ) f (x 0 ) x + f (x 0 ) x 2 f (x 0 ) x 3 +O( x 4 ) 2! 3! somando temos a diferança central (e fazendo x = 1): f (x 0 ) = f (x 0 + x) + f (x 0 x) 2f (x 0 ) 3 / 1
Laplaciano operador isotrópico arestas se encontram nos zero-crossings 0 1 0 1 1 1 1-4 1 1-8 1 0 1 0 1 1 1 4 / 1
Laplaciano Laplaciano da Gaussiana (LoG) segunda derivada do filtro Gaussiano 2 (g(x, y) I ) = ( 2 g(x, y)) I 2 g(x, y, σ) x 2 + 2 g(x, y, σ) g(x, y, σ) y 2 = x 2 + g(x, y, σ) = ( x 2 + y 2 ) 1 σ 2 2 σ 2 e g(x, y, σ) y 2 x 2 +y 2 2σ 2 5 / 1
keypoint features problemas a serem resolvidos: quais pontos são bons? como representar esta informação? como procurar a correspondência em outra imagem? 6 / 1
panorâmica 7 / 1
panorâmica 8 / 1
panorâmica 9 / 1
objetivo encontrar o pixel correspondente em duas imagens dificilmente terá exatamente mesmos valores RGB ex. diferença de iluminação entre as fotos mesmo assim, estaria sujeito a erros (dois pixels iguais em uma mesma imagem) 10 / 1
cantos variação de intensidade em qualquer direção arestas: problema de abertura regiões homogêneas: difícil fazer o matching 11 / 1
panorâmica 12 / 1
solução simples summed square difference: SSD(x, y) = i [I 1 (x + x, y + y) I 0 (x, y)] 2 onde ( x, y) é um deslocamento e i são os pixels dentro de uma janela de busca podemos também usar uma média ponderada SSD() = i w(x i )[I 1 (x + x, y + y) I 0 (x, y)] 2 ] 13 / 1
solução simples summed square difference: SSD(x, y) = i [I 1 (x + x, y + y) I 0 (x, y)] 2 onde ( x, y) é um deslocamento e i são os pixels dentro de uma janela de busca podemos também usar uma média ponderada SSD() = i w(x i )[I 1 (x + x, y + y) I 0 (x, y)] 2 ] problema onde procurar na imagem I 1? se a janela de busca for grande, o custo será alto 13 / 1
Harris detector mas quais são bons pontos a serem utilizados? auto-correlação AC(x, y) = w(x, y)[i (x, y) I (x + x, y + y)] 2 intuitivamente, quão diferente o pixel é dos seus vizinhos 14 / 1
15 / 1
Harris detector utilizando a aproximação quadrática pela série de Taylor I (x + x, y + y) = I (x, y) + xi x (x, y) + yi y (x, y) substituindo na equação anterior e passando para forma matricial temos: AC [ x y ] [ w i i I x (x i, y i ) 2 I x (x i, y i )I y (x i, y i ) I x (x i, y i )I y (x i, y i ) I y (x i, y i ) 2 ] [ x y ] 16 / 1
cônica matriz representa uma seção cônica na sua forma central Ax 2 + Bxy + Cy 2 + Dx + Ey + F = 0 M = [ A B/2 B/2 C ] 17 / 1
cônica análise do determinante detm < 0 hipérbola detm = 0 parábola detm > 0 elipse nossa matriz 18 / 1
cônica análise do determinante detm < 0 hipérbola detm = 0 parábola detm > 0 elipse nossa matriz simétrica positiva definida detm > 0 elipse autovalores positivos : λ 0, λ 1 > 0 18 / 1
Harris detector análise dos autovetores e autovalores (variação) o que podemos concluir a partir dos autovalores? 19 / 1
Harris detector o que podemos concluir a partir dos autovalores? 20 / 1
Harris detector o que podemos concluir a partir dos autovalores? dois autovalores pequenos pouca variação, área de intensidade mais ou menos constante 20 / 1
Harris detector o que podemos concluir a partir dos autovalores? dois autovalores pequenos pouca variação, área de intensidade mais ou menos constante um autovalor grande e um pequeno aresta 20 / 1
Harris detector o que podemos concluir a partir dos autovalores? dois autovalores pequenos pouca variação, área de intensidade mais ou menos constante um autovalor grande e um pequeno aresta dois autovalores grandes ponto, quina 20 / 1
Harris detector Harris (1988) usou a medida: det(m) αtrace(m) 2 = λ 0 λ 1 α(λ 0 + λ 1 ) 2 com α = 0.06 Triggs (2004) usou a medida (onde λ 0 < λ 1 ): λ 0 αλ 1 com α = 0.05 21 / 1
algoritmo 1. calcular I x e I y : gradiente na direção x e y pode usar por exemplo: convolução da derivada de uma Gaussiana 2. calcular os produtos I 2 x = I x I x, I 2 y = I y I y e I xy = I x I y 3. convoluir as três imagens com uma Gaussiana 4. para cada pixel: encontrar os autovalores e utilizar uma das medidas 5. limiarizar para encontrar máximos 6. limitar número de máximos por região 22 / 1
23 / 1
24 / 1