HeadlinesBriefing HeadlinesBriefing.com

Algoritmo SIFT: Transformação de Características Invariantes à Escala

Towards Data Science •
×

SIFT é um dos algoritmos mais conhecidos em visão computacional. Seu objetivo principal consiste em detectar pontos-chave de objetos, gerar descritores para eles e corresponder os mesmos objetos entre imagens. Como o nome sugere, SIFT é um algoritmo invariante à escala, o que significa que o mesmo objeto pode aparecer em diferentes escalas em um par de imagens, e SIFT ainda será capaz de detectar seus pontos-chave com sucesso. Além disso, SIFT é invariante à rotação, tornando a correspondência possível também para objetos rotacionados.

Em seu fluxo de trabalho, SIFT constrói várias versões da imagem original aplicando transformações de redimensionamento e desfoque gaussiano. Com valores escolhidos de k e σ1, SIFT constrói várias versões da imagem original aplicando suavização gaussiana com diferentes desvios padrão. Isso resulta em uma sequência de imagens chamada oitava. Em seguida, SIFT calcula as diferenças aos pares entre as imagens resultantes, conhecidas como diferença de gaussianos (DoG).

Depois disso, o algoritmo empilha as Di e tenta encontrar extremos locais nelas. Para cada ponto em Di(x, y), SIFT examina seus 26 vizinhos. Se Di(x, y) for maior ou menor que todos os seus 26 pontos vizinhos, SIFT o marca como máximo ou mínimo. Para levar em conta diferentes variações de escala, o mesmo processo é repetido para uma imagem inicial reduzida em largura e altura por um fator de dois, construindo uma nova oitava com valores σ como σ2 = 2σ1.

Fonte: Towards Data Science · Resumido por HeadlinesBriefing