¿Cuál es la mejor manera de detectar las esquinas de una factura / recibo / hoja de papel en una foto? Esto se utilizará para la corrección de perspectiva posterior, antes del OCR.
Mi enfoque actual ha sido:
RGB> Gray> Canny Edge Detection con umbralización> Dilate (1)> Elimina objetos pequeños (6)> clear boarder objects> elige un blog grande basado en el área convexa. > [detección de esquinas - No implementado]
No puedo evitar pensar que debe haber un enfoque "inteligente" / estadístico más sólido para manejar este tipo de segmentación. No tengo muchos ejemplos de entrenamiento, pero probablemente podría juntar 100 imágenes.
Contexto mas amplio:
Estoy usando matlab para crear prototipos y planeo implementar el sistema en OpenCV y Tesserect-OCR. Este es el primero de una serie de problemas de procesamiento de imágenes que necesito resolver para esta aplicación específica. Así que estoy buscando desarrollar mi propia solución y volver a familiarizarme con los algoritmos de procesamiento de imágenes.
Aquí hay una imagen de muestra que me gustaría que manejara el algoritmo: Si desea aceptar el desafío, las imágenes grandes están en http://madteckhead.com/tmp
(fuente: madteckhead.com )
(fuente: madteckhead.com )
(fuente: madteckhead.com )
(fuente: madteckhead.com )
En el mejor de los casos, esto da:
(fuente: madteckhead.com )
(fuente: madteckhead.com )
(fuente: madteckhead.com )
Sin embargo, falla fácilmente en otros casos:
(fuente: madteckhead.com )
(fuente: madteckhead.com )
(fuente: madteckhead.com )
¡Gracias de antemano por todas las grandes ideas! ¡Me gusta tanto!
EDITAR: Hough Transform Progress
P: ¿Qué algoritmo agruparía las suficientes líneas para encontrar esquinas? Siguiendo los consejos de las respuestas, pude usar la transformación de Hough, seleccionar líneas y filtrarlas. Mi enfoque actual es bastante tosco. Supuse que la factura siempre estará a menos de 15 grados fuera de alineación con la imagen. Termino con resultados razonables para las líneas si este es el caso (ver más abajo). Pero no estoy completamente seguro de un algoritmo adecuado para agrupar las líneas (o votar) para extrapolar las esquinas. Las líneas de Hough no son continuas. Y en las imágenes ruidosas, puede haber líneas paralelas, por lo que se requiere alguna forma o distancia de las métricas del origen de la línea. ¿Algunas ideas?
(fuente: madteckhead.com )