Uma coisa importante a entender é que, após extrair os pontos-chave, você obtém apenas informações sobre sua posição e, às vezes, sua área de cobertura (geralmente aproximada por um círculo ou elipse) na imagem. Embora as informações sobre a posição do ponto-chave possam às vezes ser úteis, ela não diz muito sobre os próprios pontos-chave.
Dependendo do algoritmo usado para extrair o ponto-chave (SIFT, cantos de Harris, MSER), você conhecerá algumas características gerais dos pontos-chave extraídos (por exemplo, eles estão centrados em torno de bolhas, bordas, cantos proeminentes ...), mas você não saberá o quão diferente ou um ponto-chave semelhante é o outro.
Aqui estão dois exemplos simples em que apenas a posição e a área do ponto-chave não nos ajudarão:
Se você tiver uma imagem A (de um urso em fundo branco) e outra imagem B, cópia exata de A, mas traduzida por alguns pixels: os pontos-chave extraídos serão os mesmos (na mesma parte desse urso). Essas duas imagens devem ser reconhecidas como iguais ou semelhantes.
Mas, se a única informação que temos é a posição deles, e isso mudou por causa da tradução, você não pode comparar as imagens.
Se você tiver uma imagem A (digamos, de um pato desta vez) e outra imagem B, exatamente o mesmo pato que em A, exceto duas vezes o tamanho: os pontos-chave extraídos serão os mesmos (mesmas partes do pato). Essas também são as mesmas imagens (semelhantes).
Mas todos os seus tamanhos (áreas) serão diferentes: todos os pontos-chave da imagem B terão o dobro do tamanho da imagem A.
Então, aqui estão os descritores : eles são o caminho para comparar os pontos-chave. Eles resumem, em formato vetorial (de comprimento constante), algumas características dos pontos-chave. Por exemplo, poderia ser sua intensidade na direção de sua orientação mais pronunciada. Ele está atribuindo uma descrição numérica à área da imagem à qual o ponto-chave se refere.
Algumas coisas importantes para os descritores são:
eles devem ser independentes da posição do ponto-chave
Se o mesmo ponto-chave for extraído em posições diferentes (por exemplo, devido à tradução), o descritor deve ser o mesmo.
eles devem ser robustos contra transformações de imagem
Alguns exemplos são mudanças de contraste (por exemplo, imagem do mesmo local durante um dia ensolarado e nublado) e mudanças de perspectiva (imagem de um edifício do centro-direita e centro-esquerda, ainda gostaríamos de reconhecê-lo como o mesmo prédio) .
Obviamente, nenhum descritor é completamente robusto contra todas as transformações (nem contra uma única, se for forte, por exemplo, grandes mudanças de perspectiva).
Diferentes descritores são projetados para serem robustos contra diferentes transformações, que às vezes se opõem à velocidade necessária para calculá-las.
eles devem ser independentes de escala
Os descritores devem levar em consideração a escala. Se a parte "proeminente" de um ponto-chave for uma linha vertical de 10px (dentro de uma área circular com raio de 8px) e a parte proeminente de outra linha vertical de 5px (dentro de uma área circular com raio de 4px) - esses pontos-chave devem receber descritores semelhantes.
Agora, que você calculou os descritores para todo o keypoinst, é possível comparar esses pontos-chave . Para um exemplo simples de correspondência de imagens (quando você sabe que as imagens são do mesmo objeto e gostaria de identificar as partes em imagens diferentes que representam a mesma parte da cena, ou gostaria de identificar a mudança de perspectiva entre duas imagens) , você compararia todos os descritores de pontos-chave de uma imagem com todos os descritores de pontos-chave da outra imagem. Como os descritores são vetores de números, você pode compará-los com algo tão simples quanto a distância euclidiana . Existem algumas distâncias mais complexas que podem ser usadas como uma medida de similaridade, é claro. Mas, no final, você diria queos pontos-chave cujos descritores têm a menor distância entre eles são correspondências , por exemplo, os mesmos "locais" ou "partes de objetos" em imagens diferentes.
Para um uso mais complexo de pontos-chave / descritores, você deve dar uma olhada nesta pergunta - especialmente a "abordagem local de baixo nível" na minha resposta e a abordagem "Palavras-chave" na resposta do @Maurits . Além disso, os links fornecidos nessas respostas são úteis.