Estoy usando el algoritmo RANSAC para la estimación de la homografía entre pares de imágenes tomadas con cámaras que no tienen ninguna traducción entre ellas (rotación pura y cambio de escala / zoom). Funciona bien en la mitad de los casos. La salida correcta se ve así:
Las líneas rojas son correspondencias filtradas y los cuadriláteros ilustran cómo la homografía distorsiona la perspectiva.
A veces, sin embargo, ocurren muchos casos graves, como estos:
Ya tengo una prueba simple en el bucle RANSAC. Forma un cuadrilátero simple (una unidad cuadrada) y lo transforma con la muestra de transformación. Luego se ve si la transformación mantuvo su convexidad.
Aún así, sin embargo, salen racimos de cuadriláteros cóncavos.
¿Tiene alguna idea de cómo probar adecuadamente la homografía, si se comporta "bien" y filtra las soluciones incorrectas?
Encontré un código donde prueban que ninguno de los tres puntos transformados son colineales. Pero esto no parece suficiente, ya que no filtrará los deltoides y otros cuadriláteros "inválidos" ...
fuente