Conheço o detector de canto Harris e entendo a idéia básica de sua matriz de segundo momento ,
, arestas e outros pontos instáveis podem ser removidos via .
Mas sobre o detector Hessian, ele usa a matriz Hessian para detectar pontos-chave e remover arestas,
, e eu não entendo como poderia remover arestas e detectar pontos estáveis? Qual é a idéia básica intuitiva por trás disso?
Respostas:
Vou tentar evitar a matemática, porque os tutoriais de matemática e "como fazê-lo" podem ser facilmente encontrados.
Então, começo apontando uma coisa MUITO importante: não se calcula Harris para um único pixel, mas para uma vizinhança (um pedaço de imagem) em torno desse pixel! DeixeiEu( i)x x, I( i)x y. . . ser seus derivados por um ponto Eu0 0 , então,
ow ( t ) é um núcleo gaussiano. O eq anterior diz para você integrar os valores derivativos nas proximidadesV em torno do pixel atual. Cada valor dos vizinhos é multiplicado por um valor que diminui à medida que a distância aumenta. A lei da diminuição segue uma gaussiana, porquew ( t ) é Gaussian centrado em Eu0 0 . E é isso com a matemática.
Agora, voltando às observações empíricas. Se você usar apenas as derivadas e esse pixel fizer parte de uma estrutura linear (aresta), obterá uma forte resposta para as derivadas. Por outro lado, se o pixel estiver em um canto (uma interseção de duas arestas), as respostas derivadas serão canceladas.
Dizendo isso, o Hessian é capaz de capturar a estrutura local naquela vizinhança sem o efeito de "cancelamento". MAS muito importante, você precisa se integrar para obter um Hessian adequado.
Tendo um Hessian, obtido usando o método Harris ou por outros meios, pode-se extrair informações sobre a vizinhança. Existem métodos para obter valores numéricos sobre a probabilidade de ter uma aresta no pixel atual, em um canto, etc. Verifique a teoria de detecção de canto.
Agora, sobre "pontos estáveis" ou pontos salientes. Imagine que você está em uma cidade estrangeira sem GPS e apenas com um bom mapa. Se você for "teleportado" no meio de uma rua, poderá localizá-la no mapa, mas não poderá dizer onde está exatamente nessa rua ou em que direção deve se mover para a esquerda ou para a direita (escrita no mapa ) Imagine agora que você está em um cruzamento. Então, você pode apontar sua posição no mapa com precisão! (Obviamente, suponha que duas ruas não se cruzem mais de uma vez).
Imagine agora que você deve combinar duas imagens. Um atua como um mapa e o outro como a cidade. Você deve encontrar pixels que possam ser descritos exclusivamente, para fazer a correspondência. Verifique as imagens nesta postagem, por exemplo, de correspondência. Esses pontos são chamados de pontos salientes. Além disso, os pontos dos cantos tendem a não alterar suas propriedades de "curvatura" quando a imagem é dimensionada, traduzida, girada, inclinada etc. (transformações afins) É por isso que são chamados de "estáveis".
Alguns pontos da imagem permitem identificá-los exclusivamente. Esses pixels estão localizados nos cantos ou na interseção de linhas. Imagine que sua vizinhançaV está em uma linha. Exceto pela orientação da linha, você não pode encontrar mais nada a partir dessa vizinhança. Mas seV está em uma esquina, você pode descobrir as direções das linhas que se cruzam, talvez o ângulo etc.
Nem todos os pontos de canto são salientes, mas apenas os pontos de canto têm grandes chances de serem salientes.
Espero que ajude!
ps Como descobrir se um ponto está no canto ou não, dê uma olhada no artigo de Harris.
pps Mais sobre correspondência, procure por SIFT ou SURF.
ppps Existe uma "generalização" do método Harris, chamado Structure Tensor. Confira o trabalho seminal de Knutsson !
fonte