Por que usamos descritores de ponto-chave?

16

Eu apenas estudei sobre o SURF e estou indo para sua implementação, mas ainda não entendi por que usamos descritores.

Entendo o que são os pontos-chave e seu objetivo, mas quando extraímos os pontos-chave, por que precisamos usar descritores? Qual é a importância e o papel deles no reconhecimento?

ARG
fonte
Ei, você quer saber especificamente sobre o SURF ou sua pergunta é mais geral: "por que precisamos de descritores para pontos-chave?" (apenas inspirada por aprender sobre SURF)
penelope
@penelope A minha pergunta é mais geral sobre os descritores
ARG
3
Espero que você não se importe de ter tornado sua pergunta mais geral antes de responder.
Penelope

Respostas:

21

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.

Penélope
fonte
melhor resposta e boa explicação, usar o termo recurso é o mesmo que descritores? ambos são iguais ou diferentes? e o que o termo orientação significa no surf?
ARG
1
O termo "recurso" é o mesmo que "ponto-chave" - ​​é um ponto de destaque na imagem. O descritor é então um "descritor de ponto-chave" ou um "descritor de recurso". Infelizmente, eu não sei muito sobre o SURF, é por isso que perguntei se você deseja saber sobre descritores em geral ou especificamente sobre o SURF. Eu sei que para a SIFT, a orientação é muito importante.
Penelope
A orientação prazo não é específica utilizada para SURF, a sua também usar em SIFT, eu só quero saber sobre isso, o que é isso
ARG
Você calcula a "orientação principal" do ponto-chave, com base no gradiente local. Então, essa direção fica "para cima" para o ponto-chave ao calcular o gradiente para obter invariância rotacional. Para SIFT, você tem uma boa explicação na wikipedia
penelope
:) minha pergunta é o que é orientação? não em peneirar ou surfar
ARG
2

Vamos pensar no descritor ideal para entender a ideia. Um descritor ideal é uma função do espaço de pixel para outro espaço, de modo que os mesmos objetos tenham o mesmo resultado , enquanto objetos diferentes têm resultados diferentes.

Por exemplo, se você capturasse duas imagens com o mesmo objeto, mas com um nível de exposição diferente, obteria uma versão multiplicada da imagem. Um descritor que pegue os pixels e os normalize pela média e nível de desvio padrão teria o mesmo resultado, dizendo que esses dois objetos são iguais. Isso é bom, porque nos permite a correspondência correta

insira a descrição da imagem aqui insira a descrição da imagem aqui

Portanto, seu descritor é necessário para corresponder corretamente aos mesmos objetos.

Andrey Rubshtein
fonte