J'utilise l' algorithme RANSAC pour l'estimation d'homographie entre des paires d'images prises avec des caméras qui n'ont pas de translation entre elles (rotation pure et changement d'échelle / zoom). Cela fonctionne bien dans la moitié des cas. La sortie correcte ressemble à ceci:
Les lignes rouges sont des correspondances filtrées et les quadrilatères illustrent comment l'homographie déforme la perspective.
Parfois, cependant, de nombreux mauvais cas se produisent, comme ceux-ci:
J'ai déjà un test simple dans la boucle RANSAC. Il fait un simple quadrilatère (un carré d'unité) et le transforme avec la transformation d'échantillon. Ensuite, il regarde si la transformation a conservé sa convexité.
Cependant, des grappes de quadrilatères concaves sortent.
Avez-vous une idée de comment tester correctement l'homographie, si elle se comporte "bien" et filtre les solutions incorrectes?
J'ai trouvé du code où ils testent qu'aucun des trois points transformés n'est colinéaire. Mais cela ne semble pas suffisant car il ne filtrera pas les deltoïdes et autres quadrilatères "invalides" ...