Atualmente, estou trabalhando e comparando o desempenho de vários detectores de recursos fornecidos pelo OpenCV como base para a correspondência visual de recursos.
Eu estou usando descritores SIFT . Consegui uma correspondência satisfatória (após rejeitar correspondências incorretas) ao detectar os recursos MSER e DoG (SIFT) .
Atualmente, estou testando meu código com o GFTT (Bons recursos para rastrear - cantos de Harris) para obter uma comparação e também porque na aplicação final, um conjunto de recursos do GFTT estará disponível no processo de rastreamento de recursos visuais.
Estou usando o cv::FeatureDetector::detect(...)
que me fornece um std::vector<cv::KeyPoint>
preenchido com os recursos / pontos-chave / regiões de interesse detectados . A estrutura cv::KeyPoint
contém informações básicas sobre a localização do recurso, bem como informações sobre size
e octave
em que o ponto-chave foi detectado.
Meus primeiros resultados com o GFTT foram terríveis até comparar os parâmetros size
e típicos octave
em diferentes tipos de recursos:
- MSER define o tamanho (entre 10 e 40 px) e deixa a oitava em 0
- DoG (SIFT) define o tamanho e a oitava ( proporção tamanho / oitava entre 20 e 40)
- GFTT os parâmetros são sempre : tamanho = 3 , oitava = 0
Presumo que isso ocorra porque o objetivo principal dos recursos GFTT não era para ser usado na correspondência, mas apenas no rastreamento. Isso explica a baixa qualidade dos resultados da correspondência, uma vez que os descritores extraídos desses recursos minúsculos deixam de ser discriminatórios e invariantes para muitas coisas , incluindo pequenas mudanças de 1 pixel.
Se eu definir manualmente a size
de GFTT de 10-12 , eu obter bons resultados, muito semelhantes ao usar MSER ou cão (SIFT) .
Minha pergunta é: existe uma maneira melhor de determinar quanto aumentar o size
(e / ou octave
) do que apenas ir-com-10-ver-se-funciona ? Quero evitar a codificação do size
aumento, se possível, e determiná-lo programaticamente, mas a codificação está correta , desde que eu tenha argumentos sólidos para fazer backup das minhas escolhas do novo algoritmosize
/ size
aumentar / size
estimar .