Processamento de imagem antes da detecção de recursos

9

Eu implementei um detector de recurso baseado nos cantos de Harris . Funciona bem na maioria das vezes, mas há casos em que o desempenho é ruim. Preciso fazê-lo funcionar em muitas imagens diferentes sem configurá-lo individualmente.

O problema está no valor limite do detector. Se ajustado muito baixo, o detector dispara muitas vezes, resultando em um grande número de recursos. Se definido muito alto, há muito menos recursos.

Resolvi isso parcialmente pelo ANMS ( Supressão Adaptativa Não Máxima) para reduzir o número de recursos antes de atribuir um vetor de descritor a eles.

No entanto, imagens como esta são o problema:

insira a descrição da imagem aqui

Eles têm baixo contraste e não posso "pagar" o limite de configuração muito baixo para todas as imagens. Isso faria com que o detector funcionasse nessas imagens, mas outras imagens conteriam centenas de milhares de recursos, o que demoraria a filtrar com o ANMS e isso prejudicaria o desempenho geral.

Eu estava pensando em ajustar a imagem antes da detecção de recursos. Talvez a equalização do histograma faça o trabalho. Esta pode ser uma operação válida, pois a mudança global de contraste não afeta os descritores de recursos (eles são invariantes a alterações de brilho e contraste).

Talvez trabalhar com limiar adaptativo ou alguma heurística funcionaria melhor.

Alguma outra sugestão?

Libor
fonte
@Seyhmus Güngören: Oh. Aceitei as respostas que obtive até agora desde que encontrei soluções suficientes o suficiente, mas continuo aguardando respostas melhores ou mais elaboradas.
Libor
@Libor É bom para suas novas perguntas, porque pode ser mais atraente resolver suas perguntas no caso atual.
Seyhmus Güngören 23/08/12
@ Libor você considerou a correspondência do histograma escolher um gaussiano como o histograma, que tem uma média em torno de 128?
Seyhmus Güngören
@ SeyhmusGüngören Sim, eu estava pensando sobre isso. Provavelmente tentarei isso com poucas outras idéias.
Libor
@ Libro Você pode dizer como planeja usar os recursos detectados? Minhas únicas idéias são a recuperação ou correspondência de imagens com base em conteúdo (por exemplo, para estimativa de homografia), mas como essa é a única coisa que já fiz com elas, posso estar errado :) Se, por outro lado, é isso que você planeja usar para eles, talvez eu possa contribuir.
Penelope

Respostas:

1

Uma possibilidade seria fazer uma simples detecção de borda (como Laplace) e usar a intensidade média do resultado como base para o limiar dos cantos de Harris. Quando você tem baixo contraste, obtém menos arestas e com menor intensidade; com alto contraste, obtém mais arestas e com intensidades mais altas.

Você não é o único lutando com esse problema. Se você tiver acesso aos bancos de dados em papel, isso pode ser interessante:

Pode valer a pena procurar mais pela detecção de canto de harris (auto) adaptável.

Geerten
fonte
Isso não é uma contradição. O detector possui dois estágios: 1) detectar recursos, 2) descrever recursos. A equalização do histograma deve ter efeito no estágio 1 (mais recursos detectados), não no estágio 2. Preciso que uma quantidade moderada de recursos seja detectada, portanto eles não precisam ser muito filtrados.
Libor
Ok, pensei nisso, mas não ficou completamente claro em sua pergunta. Não pretendo usar a imagem de borda como entrada para o detector de recursos, mas como sua própria medida de qual deve ser o valor do limite.
Geerten
Obrigado, esse é um pensamento interessante. O detector de canto Harris usa imagens derivadas (dx, dy, dxy) para construir a medida do canto em cada ponto. Como isso já é baseado em medidas de borda, agora estou pensando em usar o histograma da função de resposta de canto e o limiar de computação desse histograma. Você me inspirou, graças :)
Libor
Estou feliz por inspirar você;) Adicionou um artigo que pode ser útil.
Geerten
2

Você realmente tem que usar os cantos da Harris? Existem muitos recursos desenvolvidos após as curvas de Harris, com melhores propriedades. Uma boa visão geral pode ser encontrada neste artigo:

Com base nesse artigo, bem como em minha experiência pessoal, eu sugeriria mudar para o MSER (regiões extremas maximamente estáveis) ou mesmo combiná-las com o DoG (diferença de Gaussianos) - os recursos apresentados pela primeira vez como parte do pipeline do SIFT.

Se o problema realmente estiver em baixo contraste , os recursos do MSER realmente o deixarão feliz: eles são (razoavelmente) invariáveis ​​a mudanças na iluminação. Em resumo, elas são regiões conectadas da imagem estáveis ​​por meio de uma série de diferentes binarizações de limite.

O processo de extração de recursos é independente do cálculo dos descritores; portanto, não deve ser muito difícil integrar novas formas de extração de recursos ao seu processo.

Além disso, ouvi falar (mas nunca realmente trabalhei com) cantos de Harris em escala múltipla como uma extensão dos cantos de Harris. Eu não sei muito sobre eles e, pessoalmente, não posso recomendar nenhum material de leitura sobre esse tópico, então deixo a pesquisa de artigos e escolho os materiais mais interessantes para você.


Além disso, posso sugerir que a imagem que você postou pode ter outros problemas além do baixo contraste . Na minha experiência pessoal, vegetação como arbustos ou possivelmente o campo que você possui, bem como as adoráveis ​​nuvens borbulhantes, tendem a produzir "características genéricas" - características que tendem a ter descritores igualmente semelhantes (ou diferentes) como muitas outras características.

Na prática, isso significa que, ao fazer a correspondência de recursos em duas imagens de uma perspectiva diferente, os recursos extraídos desses tipos de superfícies tendem a corresponder falsamente. Fiz uma tese de mestrado que, em grande parte, lida com a extração de recursos a ser usada na correspondência de recursos mais usada para calcular uma transformação de homografia entre duas imagens quando me deparei com esse problema. Não encontrei nenhum outro artigo descrevendo esse problema no momento, mas minha tese pode ser útil para sua abordagem geral.

Por fim, conforme você definiu, os limites e as técnicas que funcionam bem na maioria das imagens são extraídos para pequenos recursos nesse tipo de imagem, devido às suas áreas principalmente homogêneas. Esse tipo de imagem apresenta problemas na correspondência de recursos (que pode ser estendida à junção de imagens), na recuperação de imagens com base em conteúdo, e eu presumiria o rastreamento, assim como em aplicativos similares. Atualmente, nenhum método funciona muito bem neles.

Os métodos que funcionam bem nesse tipo de imagem, bem como nos casos típicos, estão sendo explorados e pesquisados ​​atualmente, como uma abordagem na qual comecei a trabalhar brevemente descrita nesta resposta .

Penélope
fonte
Obrigado pela resposta detalhada, examinarei os papéis quando tiver algum tempo livre. Eu estava implementando um detector de recursos enfrentando dois problemas: complexidade da implementação e questões de patentes. Minha aplicação é uma biblioteca comercial de alinhamento e costura de imagens e, portanto, tenho recursos e tempo limitados para implementação e não posso pagar por SIFT ou SURF. Provavelmente mudarei para o MSER ou outro detector / descritor avançado, mas até agora os cantos da Harris funcionam bem, com exceção das imagens com pouca iluminação.
Libor
@ Libor Essa é a beleza disso: você não precisa mudar. Você pode apenas adicionar os novos recursos ao seu pipeline de detecção-> descrição existente. Não importa como os recursos são extraídos, você sempre pode calcular seus descritores com a mesma tática. De todas as coisas que escrevi, talvez o primeiro artigo mencionado, comparando várias opções de detecção / descrição, possa ser o mais útil.
Penelope #
Eu usei reunir descritores grandes e depois usei o PCA para melhorar a velocidade e o poder discriminativo dos descritores. O PCA, no entanto, é bastante caro para grandes conjuntos de dados. Este trabalho me atraiu por causa do aprimoramento genérico dos descritores. Até agora, tudo o que eu uso é a "Rejeição de outlier de espaço de recurso", que simplesmente limita as correspondências de recurso com base na distância de 1 nn / 2-nn. Isso é descrito por D. Lowe em seus artigos e possui um poder discriminativo muito bom, pois explora a propriedade de concha das distâncias em espaços com pouca luminosidade.
Libor
Quanto aos detectores, grandes mudanças no ponto de vista e invariância na escala não são um problema, pois no mosaico de imagens (panoramas, microscópios) o zoom geralmente é mantido inalterado e as deformações afins ou projetivas são muito pequenas entre as imagens correspondentes. O principal problema é realmente muito menos ou muitos recursos detectados e descritores ruins.
Libor
Pessoalmente, não sei muito sobre a escolha do descritor, trabalhei apenas com o SIFT. Mas o link que você forneceu mencionou que eles são semelhantes aos descritores DAISY, dos quais também me lembro de ter sido avaliado como muito bom. A combinação de mais extratores de recursos deve fornecer mais recursos, e a invariância de escala pode ser apenas uma vantagem, mesmo que você não precise. Li alguns trabalhos mencionando que trabalhar com vários extratores de recursos aumenta os poderes discriminativos (posso procurar os links, se desejar).
Penelope #