SIFT (Scale-Invariant Feature Transform)

1.1.2.4.1 – Extração de Caracteristicas (Feature Extraction)
1.1.2.4.1.1 – Descritores Manuais (Engineered Features)
1.1.2.4.1.1.1 – SIFT (Scale-Invariant Feature Transform)
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

O SIFT é um algoritmo robusto para extração de características locais. Ele foi desenvolvido por David Lowe no início dos anos 2000. Primeiramente, o SIFT detecta pontos de interesse invariantes à escala. Em seguida, ele calcula descritores locais para cada ponto. Estes descritores são invariantes à rotação e à mudança de iluminação. Consequentemente, o SIFT é muito usado em casamento de imagens. Por exemplo, ele permite costurar fotos em um panorama. O algoritmo também é útil para reconhecimento de objetos em diferentes vistas. Portanto, o SIFT é uma ferramenta fundamental em visão computacional.

construção do espaço-escala (scale-space)

Primeiramente, o SIFT constrói um espaço-escala da imagem. Ele utiliza o filtro Gaussiano para suavizar a imagem. Varia-se o parâmetro σ (desvio padrão) sucessivamente. As imagens suavizadas são organizadas em oitavas (octaves). Cada oitava reduz a resolução pela metade. Por exemplo, a primeira oitava tem a resolução original. A segunda oitava é subamostrada pela metade. Este processo simula diferentes distâncias de visualização. A diferença de Gaussianas (DoG) é então calculada. Ela aproxima o Laplaciano da Gaussiana (LoG). Os extremos (máximos e mínimos) da DoG indicam candidatos a pontos-chave.

localização precisa e eliminação de bordas

Após detectar candidatos, o SIFT refina suas localizações. Ele utiliza uma expansão em série de Taylor da DoG. Este ajuste alcança precisão subpixel. Pontos com baixo contraste são descartados. Uma expansão de Taylor de segunda ordem é utilizada. Além disso, o algoritmo elimina respostas de bordas indesejadas. Uma borda tem alta curvatura em uma direção. Na direção perpendicular, a curvatura é baixa. O SIFT usa a matriz Hessiana para medir estas curvaturas. Ele calcula o traço e o determinante da Hessiana. Pontos com alta razão entre os autovalores são removidos. Portanto, apenas cantos e manchas (blobs) estáveis permanecem.

atribuição de orientação e geração do descritor

Cada ponto-chave recebe uma orientação dominante. O SIFT calcula a magnitude e a direção do gradiente local. Um histograma de 36 bins acumula as orientações dos gradientes. O pico do histograma define a orientação principal do ponto. Em seguida, o algoritmo gera o descritor propriamente dito. Uma região de 16×16 pixels ao redor do ponto é selecionada. Esta região é dividida em 16 sub-regiões de 4×4 pixels. Cada sub-região gera um histograma de 8 direções. O resultado é um vetor de 128 números reais (16×8). Finalmente, o vetor é normalizado para garantir invariância à iluminação. Este descritor final é único e robusto.

Deixe um comentário