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:
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?
Respostas:
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.
fonte
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 .
fonte