Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Guias

O que é a transformação de características invariante à escala (SIFT)?

Saiba como o algoritmo SIFT detecta e descreve pontos-chave invariantes à escala e à rotação, como funcionam as quatro etapas e onde ele é usado em visão computacional.

Abirami VinaAbirami Vina16 min de leitura
O algoritmo de transformação de características invariante à escala (SIFT) em visão computacional

Para ver uma apresentação visual dos conceitos abordados neste artigo, assista ao vídeo abaixo.

Hoje em dia, muitos dispositivos inteligentes que usamos, de celulares e câmeras a sistemas domésticos inteligentes, vêm com soluções de IA capazes de reconhecer rostos, objetos e até cenas visuais inteiras. Essa capacidade vem da visão computacional, um campo da inteligência artificial que permite às máquinas compreender e interpretar imagens e vídeos.

Por exemplo, se você tirar uma foto da Torre Eiffel de qualquer ângulo ou distância, seu dispositivo geralmente ainda consegue reconhecê-la usando visão computacional e organizá-la na pasta correta da galeria. Embora isso pareça simples, reconhecer objetos nem sempre é fácil. As imagens podem ter aparências muito diferentes dependendo do tamanho, do ângulo, da escala ou da iluminação, o que dificulta a identificação consistente pelas máquinas.

Para ajudar a resolver esse problema, pesquisadores desenvolveram um algoritmo de visão computacional chamado Transformada de Características Invariantes à Escala, ou SIFT. Esse algoritmo permite detectar objetos em diferentes condições de visualização. Criado por David Lowe em 1999, o SIFT foi projetado para encontrar e descrever pontos-chave únicos em uma imagem, como cantos, bordas ou padrões que continuam reconhecíveis mesmo quando a imagem é redimensionada, girada ou iluminada de outra forma.

Antes de os modelos de visão computacional baseados em aprendizado profundo, como o Ultralytics YOLO11, se popularizarem, o SIFT era uma técnica amplamente usada em visão computacional. Era uma abordagem padrão para tarefas como reconhecimento de objetos, que busca identificar um item específico em uma foto, e correspondência de imagens, que alinha fotos encontrando características de imagem sobrepostas.

Neste artigo, vamos explorar o SIFT com uma visão geral rápida do que é, como funciona em linhas gerais e por que é importante na evolução da visão computacional.

Por que o algoritmo SIFT é essencial para a visão computacional#

Em uma imagem, um objeto pode aparecer de muitas maneiras diferentes. Por exemplo, uma caneca de café pode ser fotografada de cima, de lado, sob a luz forte do sol ou sob uma lâmpada de luz quente. A mesma caneca também pode parecer maior quando está perto da câmera e menor quando está mais distante.

Todas essas diferenças tornam complexa a tarefa de ensinar um computador a reconhecer um objeto. Essa tarefa de visão computacional, conhecida como detecção de objetos, exige que modelos de IA visual identifiquem e localizem objetos com precisão, mesmo quando seu tamanho, ângulo ou condições de iluminação mudam.

Para tornar isso possível, a visão computacional se baseia em um processo chamado extração de características ou detecção. Em vez de tentar compreender a imagem inteira de uma só vez, um modelo procura características visuais distintas, como cantos acentuados, padrões únicos ou texturas que permanecem reconhecíveis em diferentes ângulos, escalas e condições de iluminação.

Em particular, foi para isso que a Transformada de Características Invariantes à Escala, ou SIFT, foi projetada. O SIFT é um algoritmo de detecção e descrição de características que consegue identificar objetos em imagens com confiabilidade, independentemente de como foram capturados.

Como obter invariância à escala#

O algoritmo SIFT tem algumas propriedades importantes que o tornam útil para o reconhecimento de objetos. Uma das principais é chamada invariância à escala. Isso significa que o SIFT consegue reconhecer várias partes de um objeto, esteja ele grande e perto da câmera ou pequeno e distante. Mesmo que o objeto não esteja totalmente visível, o algoritmo ainda consegue identificar os mesmos pontos-chave.

Ele faz isso usando um conceito chamado teoria do espaço de escala. Em termos simples, a imagem é desfocada em diferentes níveis para criar várias versões. Em seguida, o SIFT percorre essas versões em busca de padrões e detalhes que permaneçam iguais, independentemente das mudanças no tamanho ou na nitidez da imagem.

Por exemplo, uma placa de trânsito fotografada a poucos metros de distância parecerá muito maior do que a mesma placa capturada de longe, mas o SIFT ainda consegue detectar as mesmas características distintas. Isso permite corresponder corretamente as duas imagens, embora a placa apareça em escalas muito diferentes.

Como garantir a invariância à rotação#

Os objetos nas imagens também podem aparecer girados, às vezes até de cabeça para baixo. O SIFT lida com isso por meio de uma propriedade chamada invariância à rotação. Para cada ponto-chave detectado, o algoritmo atribui uma orientação consistente com base nos gradientes locais da imagem. Assim, o mesmo objeto pode ser reconhecido independentemente de como foi girado.

Você pode imaginar isso como marcar cada ponto-chave com uma pequena seta que indica para que lado ele está voltado. Ao alinhar as características com essas orientações, o SIFT garante que os pontos-chave correspondam corretamente mesmo quando o objeto está girado. Por exemplo, um ponto de referência capturado em uma foto horizontal ainda pode ser identificado corretamente mesmo que outra foto dele seja tirada com a câmera inclinada.

Resistência a outras variações da imagem#

Além do tamanho e da rotação, as imagens também podem mudar de outras maneiras, como com alterações na iluminação. A iluminação de um objeto pode passar de intensa a fraca, o ângulo da câmera pode mudar um pouco ou a imagem pode ficar desfocada ou com ruído.

O SIFT foi desenvolvido para lidar com esses tipos de variação. Para isso, concentra-se em pontos-chave distintos e de alto contraste, pois essas características são menos afetadas por mudanças na iluminação ou pequenas alterações no ponto de vista. Como resultado, o SIFT tende a ser mais confiável do que métodos simples de detecção de bordas ou cantos, que muitas vezes falham quando as condições mudam.

Pontos-chave SIFT extraídos de uma imagem chuvosa e de sua imagem de entrada sem chuva

Fig. 1. Pontos-chave SIFT extraídos de (a) uma imagem chuvosa e (b) sua imagem de entrada correspondente sem chuva. (Fonte)

Considere uma pintura em uma galeria. Ela ainda pode ser reconhecida quando fotografada sob a luz suave do dia, sob refletores artificiais intensos ou até com um leve desfoque de movimento causado por uma câmera na mão. Os pontos-chave permanecem estáveis o suficiente para permitir uma correspondência precisa apesar dessas diferenças.

Como funciona o algoritmo Transformada de Características Invariantes à Escala (SIFT)#

Agora, vamos ver como funciona o algoritmo SIFT. O processo pode ser dividido em quatro etapas principais: detecção de pontos-chave, localização de pontos-chave, atribuição de orientação e descrição de pontos-chave.

Etapa 1: detecção de extremos no espaço de escala#

A primeira etapa é encontrar e detectar pontos-chave, que são pontos distintivos da imagem, como cantos ou mudanças acentuadas de textura, que ajudam a rastrear ou reconhecer um objeto.

Para garantir que esses possíveis pontos-chave possam ser reconhecidos em qualquer tamanho, o SIFT constrói o que é chamado de espaço de escala. Trata-se de um conjunto de imagens criado ao desfocar gradualmente a imagem original com um filtro gaussiano, uma técnica de suavização, e agrupar os resultados em camadas chamadas oitavas. Cada oitava contém a mesma imagem com níveis crescentes de desfoque, enquanto a oitava seguinte é uma versão menor da imagem.

Ao subtrair uma imagem desfocada de outra, o SIFT calcula a Diferença de Gaussianas (DoG), que destaca as áreas onde o brilho muda bruscamente. Essas áreas são escolhidas como candidatas a pontos-chave porque permanecem consistentes quando a imagem é ampliada ou reduzida.

A DoG destaca estruturas importantes subtraindo imagens desfocadas em diferentes níveis

Fig. 2. A DoG destaca estruturas importantes subtraindo imagens desfocadas em diferentes níveis. (Fonte)

Etapa 2: localização de pontos-chave#

Nem todos os pontos-chave candidatos são úteis, pois alguns podem ser fracos ou instáveis. Para refiná-los, o SIFT usa um método matemático chamado expansão em série de Taylor, que ajuda a estimar com mais precisão a posição exata de um ponto-chave.

Durante essa etapa, os pontos não confiáveis são removidos. Os pontos-chave com baixo contraste, que se confundem com o entorno, são descartados, assim como os que estão diretamente sobre as bordas, pois podem se deslocar com facilidade. Essa etapa de filtragem deixa apenas os pontos-chave mais estáveis e distintos.

Etapa 3: atribuição de orientação#

Depois de identificar pontos-chave estáveis, o SIFT os torna invariantes à rotação, o que significa que ainda podem ser correspondidos mesmo se a imagem estiver de lado ou de cabeça para baixo. Para isso, o SIFT analisa como o brilho muda ao redor de cada ponto-chave, o que é conhecido como gradiente. Os gradientes mostram tanto a direção quanto a intensidade da mudança na intensidade dos pixels e, juntos, representam a estrutura local ao redor do ponto.

Para cada ponto-chave, o SIFT considera os gradientes de uma região ao redor e os agrupa em um histograma de orientações. O pico mais alto desse histograma indica a direção predominante da mudança de intensidade, que é então atribuída como orientação do ponto-chave. Para criar esse histograma, são usadas tanto as direções dos gradientes, que mostram onde a intensidade está mudando, quanto as magnitudes dos gradientes, que indicam a intensidade dessa mudança.

Se houver outros picos quase tão fortes, o SIFT atribui várias orientações ao mesmo ponto-chave. Isso evita que características importantes se percam quando os objetos aparecem em ângulos incomuns. Ao alinhar cada ponto-chave com sua orientação, o SIFT garante que os descritores gerados na etapa seguinte permaneçam consistentes.

Em outras palavras, mesmo que duas imagens do mesmo objeto estejam giradas de maneiras diferentes, os pontos-chave alinhados pela orientação ainda corresponderão corretamente. Essa etapa confere ao SIFT sua grande capacidade de lidar com rotações e o torna muito mais robusto do que os métodos anteriores de detecção de características.

Um olhar mais detalhado sobre a etapa 3 do algoritmo SIFT

Fig. 3. Um olhar mais detalhado sobre a etapa 3 do algoritmo SIFT (Fonte)

Etapa 4: descritor de pontos-chave#

A última etapa do SIFT consiste em criar uma descrição de cada ponto-chave para que ele possa ser reconhecido em outras imagens.

O SIFT faz isso analisando uma pequena região quadrada ao redor de cada ponto-chave, com cerca de 16 por 16 pixels. Primeiro, essa região é alinhada à orientação do ponto-chave para que a rotação não a afete. Em seguida, a região é dividida em uma grade de 4 por 4 quadrados menores.

Em cada quadrado menor, o SIFT mede como o brilho muda em diferentes direções. Essas mudanças são armazenadas em algo chamado histograma, que funciona como um gráfico que mostra quais direções são mais comuns. Cada quadrado recebe seu próprio histograma e, juntos, os 16 quadrados produzem 16 histogramas.

Por fim, esses histogramas são combinados em uma única lista de números, 128 ao todo. Essa lista é chamada de vetor de características e funciona como uma impressão digital do ponto-chave. Como captura a textura e a estrutura únicas ao redor do ponto, essa impressão digital permite corresponder o mesmo ponto-chave em diferentes imagens, mesmo que elas sejam redimensionadas, giradas ou iluminadas de outra forma.

Visão geral de como o SIFT funciona

Fig. 4. Visão geral de como o SIFT funciona (Fonte)

Principais aplicações do SIFT em visão computacional#

Agora que entendemos melhor o que é o SIFT e como funciona, vamos explorar algumas de suas aplicações reais em visão computacional.

Reconhecimento e detecção de objetos#

Um dos principais usos do SIFT é no reconhecimento e na detecção de objetos. Isso envolve ensinar um computador a reconhecer e localizar objetos em imagens, mesmo quando eles não têm sempre a mesma aparência. Por exemplo, o SIFT consegue detectar um livro esteja ele perto da câmera, mais distante ou girado em um ângulo.

Isso funciona porque o SIFT extrai pontos-chave altamente distintos e estáveis. Quando esses pontos-chave são combinados com descritores SIFT, eles formam características SIFT, que oferecem uma maneira confiável de corresponder o mesmo objeto em diferentes imagens. Essas características capturam detalhes únicos do objeto que permanecem consistentes, permitindo a correspondência confiável de características entre imagens mesmo quando o tamanho, a posição ou a orientação do objeto mudam.

Uso do SIFT para reconhecer a capa de um livro em uma nova imagem capturada em outra orientação

Fig. 5. Uso do SIFT para reconhecer a capa de um livro em uma nova imagem capturada em uma orientação diferente da original. Imagem do autor.

Antes de o deep learning se popularizar, o SIFT era um dos métodos mais confiáveis para criar sistemas de reconhecimento de objetos. Foi amplamente usado em pesquisas e aplicações que exigiam a correspondência de objetos em grandes conjuntos de dados de imagens, embora muitas vezes demandasse recursos computacionais significativos.

Costura de imagens e criação de panoramas#

O SIFT também pode ser usado para criar imagens panorâmicas, que são fotos largas produzidas pela junção de várias imagens. Com o SIFT, pontos-chave distintos são encontrados nas partes sobrepostas de diferentes imagens e, em seguida, correspondidos entre si. Essas correspondências funcionam como âncoras, orientando o processo de costura sobre como as fotos devem ser alinhadas.

Depois que a correspondência é concluída, algoritmos de costura podem calcular o alinhamento correto, muitas vezes usando transformações geométricas que mapeiam uma imagem sobre outra. Em seguida, as imagens são mescladas para que as emendas desapareçam. O resultado final é um panorama contínuo que parece uma única foto panorâmica, embora tenha sido criado a partir de várias capturas.

Reconstrução 3D e robótica#

Outra aplicação interessante do SIFT é a reconstrução 3D, em que várias fotos 2D tiradas de ângulos diferentes são combinadas para criar um modelo tridimensional. O SIFT funciona encontrando e correspondendo os mesmos pontos nessas imagens.

Depois que as correspondências são estabelecidas, as posições 3D desses pontos podem ser estimadas por triangulação, um método que calcula a profundidade a partir de diferentes pontos de vista. Esse processo faz parte da estrutura a partir do movimento (SfM), uma técnica que usa várias imagens sobrepostas para estimar a forma 3D de uma cena, além das posições das câmeras que tiraram as fotos.

O resultado geralmente é uma nuvem de pontos 3D, um conjunto de pontos no espaço que delineia o objeto ou ambiente. O SIFT foi uma das primeiras ferramentas que tornaram prática a estrutura a partir do movimento. Embora as técnicas mais recentes sejam hoje mais rápidas e comuns, o SIFT continua sendo aplicado quando a precisão é mais importante do que a velocidade.

O SIFT também foi usado em robótica, especialmente em SLAM visual (localização e mapeamento simultâneos). O SLAM permite que um robô descubra onde está enquanto constrói um mapa do ambiente ao mesmo tempo.

Os pontos-chave do SIFT funcionam como marcos confiáveis que um robô pode reconhecer entre quadros, mesmo quando a iluminação ou os ângulos mudam. Ao rastrear esses marcos, o robô pode estimar sua posição e atualizar o mapa em tempo real. Embora os detectores de características mais rápidos sejam usados com mais frequência na robótica atual, o SIFT teve um papel importante nos primeiros sistemas SLAM e ainda é fundamental nos casos em que a robustez é mais importante que a velocidade.

Vantagens e considerações sobre o SIFT#

Embora o algoritmo SIFT tenha sido amplamente usado em visão computacional e seja conhecido como um método confiável, ele também apresenta algumas compensações. Por isso, é importante avaliar seus prós e contras antes de decidir se é adequado para um projeto. A seguir, vamos conhecer seus principais pontos fortes e limitações.

Principais vantagens do SIFT#

Estes são alguns dos benefícios de usar o algoritmo SIFT:

  • Invariância a escala e rotação: O SIFT fornece pontos-chave invariantes à escala que permanecem relativamente estáveis quando os objetos aparecem em tamanhos ou orientações diferentes, o que representa um avanço significativo em relação aos detectores de características anteriores.
  • Robustez moderada a mudanças de iluminação e ponto de vista: O SIFT consegue lidar com mudanças de brilho, contraste ou pequenos deslocamentos do ponto de vista, embora seja menos confiável em condições mais extremas.
  • Capacidade de funcionar em cenas complexas ou parcialmente ocultas: Como o SIFT detecta muitos pontos-chave locais, muitas vezes ainda consegue identificar um objeto mesmo que parte dele esteja coberta ou que o plano de fundo seja complexo.

Considerações sobre desempenho e alternativas#

Estes são alguns dos pontos negativos de usar o algoritmo SIFT:

  • Alto custo computacional: O processo de várias etapas do SIFT e seus descritores detalhados tornam-no mais lento e exigente em recursos do que os detectores de características modernos. Para aprimorá-lo, pesquisadores desenvolveram o algoritmo SURF (características robustas aceleradas), que usa cálculos mais rápidos para encontrar e descrever características. Em alguns casos, o SURF é menos preciso que o SIFT, mas é muito mais rápido, o que o torna mais prático para tarefas sensíveis ao tempo.
  • Não é ideal para uso em tempo real: Devido ao seu custo computacional, o SIFT tem dificuldade em aplicações que exigem velocidade, como rastreamento em tempo real ou robótica móvel.
  • Versatilidade limitada: Embora seja robusto em muitos casos, o SIFT é menos eficaz diante de mudanças extremas de iluminação, grandes mudanças no ponto de vista ou cenas altamente dinâmicas, nas quais algoritmos mais recentes ou métodos de aprendizado de máquina apresentam melhor desempenho.

Ao analisar os prós e contras do SIFT, talvez você perceba que muitas de suas limitações abriram caminho para técnicas mais avançadas. Especificamente, as redes neurais convolucionais (CNNs) surgiram como uma alternativa poderosa.

Uma CNN é um tipo de modelo de aprendizado profundo inspirado no funcionamento do sistema visual humano. Ela processa uma imagem em camadas, começando por padrões simples, como bordas e texturas, e avançando gradualmente para formas e objetos mais complexos. Ao contrário das regras de características criadas manualmente do SIFT, as CNNs aprendem representações de características diretamente dos dados.

Esse aprendizado baseado em dados permite que as CNNs superem o SIFT em tarefas de correspondência de descritores e classificação. As CNNs também são mais expressivas e robustas, adaptando-se melhor à variabilidade e à complexidade dos dados visuais.

Por exemplo, modelos baseados em CNNs alcançaram resultados revolucionários no ImageNet, um enorme conjunto de dados de referência que contém milhões de imagens rotuladas em milhares de categorias. Criado para testar a capacidade dos algoritmos de reconhecer e classificar objetos, o ImageNet consegue evidenciar a diferença entre os métodos mais antigos baseados em características e o aprendizado profundo.

As CNNs rapidamente superaram o SIFT ao aprender representações muito mais ricas e flexíveis, o que lhes permite reconhecer objetos sob diferentes condições de iluminação e pontos de vista, e até mesmo quando estão parcialmente ocultos — cenários em que o SIFT costuma ter dificuldade.

Principais conclusões#

O algoritmo Scale Invariant Feature Transform ocupa um lugar importante na história da visão computacional. Ele ofereceu um método confiável para detectar características mesmo em ambientes variáveis e influenciou muitos dos métodos usados atualmente.

Embora as técnicas mais recentes sejam mais rápidas e eficientes, o SIFT abriu caminho para elas. O SIFT mostra onde começou o progresso atual da visão computacional e destaca o quanto os sistemas modernos de IA avançaram.

Junte-se à nossa comunidade global e confira nosso repositório no GitHub para saber mais sobre visão computacional. Explore nossas páginas de soluções para conhecer inovações como IA na agricultura e visão computacional no varejo. Confira nossas opções de licenciamento e comece a criar seu próprio modelo de visão computacional.

Escrito por

Abirami Vina
Abirami Vina

Criador de conteúdo · Ultralytics

Ao iniciar a carreira como engenheira de visão computacional, Abirami Vina construiu uma base sólida em IA de visão e machine learning. Ela é criadora de conteúdo da Ultralytics e fundadora e redatora-chefe da Scribe of AI, onde produz conteúdo técnico de alta qualidade para empresas focadas em IA. Movida pela paixão por tornar a IA compreensível e envolvente, seu trabalho aproxima a tecnologia de ponta do impacto no mundo real.

Comentários

Faça uma pergunta, compartilhe seus resultados ou ajude alguém.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina