• Nenhum resultado encontrado

SURF Speeded-Up Robust Features

3.2 Pontos de Interesse

3.2.2 SURF Speeded-Up Robust Features

Desenvolvido a partir do legado iniciado pelo seu antecessor direto, o SIFT (LOWE, 1999), o algoritmo SURF (Speeded-Up Robust Features) foi desenvolvido por Bay et al. (2008) e possui as mesmas etapas que o SIFT: a etapa de detec¸c˜ao de pontos de interesse, descri¸c˜ao destes pontos e correla¸c˜ao.

Com o objetivo de reduzir drasticamente o custo computacional, Bay et al. (2008) utilizam o conceito de imagens integrais, apresentado por Viola e Jones (2004). O uso de imagens integrais resulta em um r´apido tempo de processamento ao utilizar filtros de convolu¸c˜ao no formato de caixa. Uma imagem integral IP(w) na posi¸c˜ao w = (x, y), representa a soma de todos os valores dos pixels em uma regi˜ao retangular entre a origem e w. IP(w) = i≤x X i=0 j≤y X j=0 I(i, j) (13)

Com todos os valores da imagem integral calculados, s˜ao necess´arias apenas 3 opera¸c˜oes simples para sumarizar as intensidades dos pixels em uma ´area retangular da imagem, independente de tamanho (Figura 12).

3.2.2.1 Detec¸c˜ao dos pontos de interesse O detector de pontos de interesse do algoritmo SURF trabalha com uma matriz hessiana, que ´e a matriz da derivada parcial da segunda ordem, aplicada no resultado da pirˆamide de filtros obtida a partir da imagem

Figura 12: Representa¸c˜ao do c´alculo da imagem integral.

Fonte: (BAY et al., 2008)

original e que serve como uma etapa para supress˜ao de pontos n˜ao m´aximos. Os pontos s˜ao escolhidos de acordo com o determinante dessa matriz hessiana. Dado um ponto w = (x, y) em uma imagem I, a matriz hessiana H(w, σ) no ponto w e na escala σ ser´a:

H(w, σ) = 2 4 Lxx(w, σ) Lxy(w, σ) Lxy(w, σ) Lyy(w, σ) 3 5 (14)

Onde, Lxx(w, σ) representa a convolu¸c˜ao da derivada parcial de segunda ordem da

gaussiana com a imagem I no ponto w e na dire¸c˜ao horizontal, ou seja, a derivada de x em rela¸c˜ao a x que mostra o quanto a fun¸c˜ao varia na dire¸c˜ao horizontal, j´a Lyy(w, σ)

indica a varia¸c˜ao para a dire¸c˜ao vertical e Lxy(w, σ) a varia¸c˜ao na diagonal. Atrav´es disso

ser´a poss´ıvel descrever a curvatura local necess´aria para sele¸c˜ao dos pontos.

Segundo Bay et al. (2008), o SURF ´e um algoritmo que tenta detectar os pontos de forma eficiente, para isso ´e utilizada uma aproxima¸c˜ao atrav´es da Laplaciana da Gaussiana fazendo uma convolu¸c˜ao nos pontos da imagem nas dire¸c˜oes X, Y e XY (diagonal). Os filtros utilizados nas matrizes de convolu¸c˜ao s˜ao apresentados na figura 13, da esquerda para a direita: derivada parcial de segunda ordem da gaussiana na dire¸c˜ao Y e XY respectivamente e aproxima¸c˜ao para a derivada parcial de segunda ordem da gaussiana na dire¸c˜ao Y e XY. As partes em cinza s˜ao iguais a zero. Estes filtros resultam em um baixo custo computacional quando utilizados com imagens integrais, o tempo de processamento independe do tamanho do filtro.

Figura 13: Filtros utilizados nas matrizes de convolu¸c˜ao do SURF.

Fonte: (BAY et al., 2008)

Assim como no algoritmo SIFT (LOWE, 1999), o SURF (BAY et al., 2008) utiliza uma pirˆamide de escalas para detectar as varia¸c˜oes de diferentes magnitudes na imagem, ou seja, os pontos s˜ao detectados em diferentes escalas que representam diferentes valores de σ. No entanto, o SIFT gera uma pirˆamide de escalas para a imagem, j´a o SURF gera uma pirˆamide de escalas para os filtros utilizados (Figura 14). O filtro de tamanho 9x9 mostrado na figura 13, representa a menor escala da pirˆamide e equivale a um valor de σ = 1, 2.

Figura 14: Pirˆamide de escalas utilizada nos filtros do SURF.

Fonte: (BAY et al., 2008)

Para verificar se o ponto ser´a considerado um ponto de interesse, o SURF aplica uma supress˜ao de n˜ao-m´aximos em torno de uma vizinhan¸ca de 3 pixels para cada lado, onde no total s˜ao verificados os 26 pixels nas dire¸c˜oes X e Y e nas escalas superior e inferior, assim como ´e feito no algoritmo SIFT (Figura 9). Aplicando esse processo de detec¸c˜ao dos pontos, ser˜ao capturados os pontos com grandes varia¸c˜oes de intensidade.

3.2.2.2 Descri¸c˜ao dos pontos de interesse Na etapa de descri¸c˜ao dos pontos de interesse, o algoritmo SURF cria um vetor que descreve a distribui¸c˜ao da intensidade em uma regi˜ao de pixels vizinha ao ponto considerado (BAY et al., 2008), uma abordagem similar a forma como a informa¸c˜ao do gradiente ´e extra´ıda pelo algoritmo SIFT (LOWE,

1999). A partir desta regi˜ao ´e realizada a extra¸c˜ao da orienta¸c˜ao dominante da imagem, que torna o algoritmo invariante a rota¸c˜ao.

Segundo Bay et al. (2008), para encontrar o vetor que descreve a distribui¸c˜ao de intensidades na regi˜ao de pixels vizinhos ao ponto de interesse, o algoritmo faz uma convolu¸c˜ao com dois filtros que representam as dire¸c˜oes X e Y, apresentados na figura 15, onde a parte escura possui o valor -1 e a parte clara possui o valor +1. Utiliza-se o conceito de imagens integrais e um vetor de 64 posi¸c˜oes para obter um processamento mais r´apido.

Figura 15: Filtros da transformada de Haar utilizados pelo SURF.

Fonte: (BAY et al., 2008)

Assim que as respostas para os filtros s˜ao calculadas em torno do ponto de interesse, estas s˜ao representadas como pontos no espa¸co, com a resposta horizontal e vertical ao longo da abcissa e ordenada. A orienta¸c˜ao dominante ´e sumarizada percorrendo uma vizinhan¸ca circular com um intervalo de π/3 em torno do ponto de interesse. O vetor com maior valor define a orienta¸c˜ao do ponto de interesse, conforme apresentado na figura 16.

Figura 16: Atribui¸c˜ao da orienta¸c˜ao do ponto no algoritmo SURF.

Fonte: (BAY et al., 2008)

Tendo o vetor resultante, o pr´oximo passo consiste em obter a distribui¸c˜ao de respostas da transformada de Haar em cada ponto de interesse, mas dessa vez em rela¸c˜ao a esse vetor

que indica a orienta¸c˜ao. O atributo de cada posi¸c˜ao ´e considerado mais uma vez realizando a convolu¸c˜ao com os filtros X e Y (Figura 15) e somam-se os resultados da dire¸c˜ao destes quadrantes. Em um grid quadrado com 4x4 sub-regi˜oes em torno do ponto, ´e calculada a resposta da transformada de Haar e cada 2x2 sub-divis˜oes de cada quadrado corresponde ao campo atual do descritor. Essas s˜ao as somas dx, |dx|, dy e |dy|, calculadas em rela¸c˜ao a orienta¸c˜ao do grid. Com isso, para cada ponto de interesse tem-se um vetor de 64 posi¸c˜oes descrevendo a forma como a imagem varia nesse ponto, conforme apresentado na figura 17.

Figura 17: Descritor do ponto de interesse do SURF.

Fonte: (BAY et al., 2008)

Documentos relacionados