2 puntos por GN⁺ 2024-05-14 | 1 comentarios | Compartir por WhatsApp

Corrección de deformación de páginas (Page Dewarping)

  • Aborda la tarea de enderezar imágenes de páginas curvadas como un problema de optimización

Contexto

  • Los métodos existentes de corrección de deformación, como la biblioteca Leptonica o el método Coordinate Transform Model (CTM), usan un enfoque de descomposición jerárquica del problema
    1. Separar el texto por líneas
    2. Encontrar un warping o una transformación de coordenadas para que las líneas queden paralelas y horizontales
  • A partir de la idea del enfoque basado en el modelo de cilindro 3D de CTM, se creó un modelo paramétrico propio usando parámetros que determinan la forma de la página
    • Vector de rotación/traslación 3D, pendiente de curvatura de la página, desplazamiento de la línea horizontal, etc.
  • Se define como un problema de optimización
    • Se buscan puntos clave a lo largo de las regiones de texto horizontales en la foto original
    • Partiendo de una estimación inicial, se optimizan los parámetros del modelo para minimizar el error de reproyección de los puntos clave

Procedimiento

  1. Extracción de los bordes de la página
  2. Detección de contornos de texto
  • Uso de binarización, operaciones morfológicas y análisis de componentes conectados
  • Especializado para detectar también tablas de texto vertical
  1. Agrupación de contornos de texto en regiones horizontales
  2. Muestreo de puntos clave en regiones horizontales
  3. Estimación inicial de los parámetros del modelo
  4. Minimización del error de reproyección mediante optimización
  • Uso del solver Powell de scipy.optimize.minimize
  • Consume la mayor parte del tiempo de ejecución
  1. Transformación de coordenadas con el modelo óptimo, seguida de remapeo de la imagen y binarización

Resultados

  • Funciona bien en varios videos de ejemplo
  • La optimización toma tiempo porque hay muchos parámetros del modelo
  • No se consideró la distorsión en dirección horizontal

Cierre

  • Un flujo de trabajo típico de construir conocimiento previo y formularlo como un problema de optimización
  • Un enfoque similar a Deformable Part Model y Active Appearance Model
  • También se obtuvieron aprendizajes prácticos sobre herramientas como Emacs y Pylint
  • No hay planes de seguir desarrollándolo, pero es un proyecto que puede servir de referencia al enseñar visión por computadora

Opinión de GN⁺

  • Para una usabilidad real, parece necesario corregir también la distorsión en dirección horizontal. Para eso, probablemente se necesite un modelo más sofisticado, como CTM.
  • Mejorar la velocidad de optimización parece importante. Reducir la cantidad de parámetros o usar técnicas de optimización más rápidas podría ayudar.
  • Sería interesante compararlo con métodos basados en deep learning. Tal vez el deep learning pueda resolver al mismo tiempo la extracción de características y el modelado.
  • Para aplicarlo a tareas como la digitalización de documentos en entornos industriales, parece necesario asegurar mayor robustez frente a documentos con diseños variados.
  • Es positivo que se haya publicado como open source, pero para uso real probablemente sería mejor distribuirlo como un programa independiente en lugar de un script de Python.

1 comentarios

 
GN⁺ 2024-05-14
Opiniones de Hacker News

Resumen:

  • Hay que tener cuidado al aplicar un umbral alto al binarizar imágenes
    • Suele funcionar bien con texto normal, pero puede dañar ilustraciones o notas al pie hasta volverlas ilegibles
    • Si el escaneo de Google Books es la única copia disponible, puede tocarte mala suerte
  • Aun en 2024, las apps de escáner de documentos no traen esta función integrada
  • El ex CEO de Adobe, John Warnock, se esforzó por preservar libros históricos raros
    • El de-curling de páginas escaneadas que no se podían abrir por completo era un desafío
    • Proyecto relacionado: Rare Book Room
  • Este texto puede servir como referencia en el trabajo como ejemplo de cómo documentar eficazmente proyectos técnicos y decisiones
  • En la universidad, al crear una app para escanear apuntes con códigos de color, me topé con un problema de distorsión del color
    • Como el color de la parte superior e inferior de la página era distinto, costaba diferenciar entre plumas azules y verdes
  • El resultado se ve razonable, pero el modelo de warp es algo global
    • No logra capturar toda la complejidad de la distorsión del papel, así que se nota distorsión residual en el resultado final
  • Un texto interesante que da pena no haber visto en 2016
    • Describe muy bien todo el proceso: definir el problema, aplicar técnicas ingeniosas y llegar a una solución que funciona bien
    • Probablemente nunca lo use directamente, pero es un gran ejemplo de resolución de problemas
  • Me salió un error de instalación; ya abrí un issue en GitHub
  • Estaría bien probar también de-wrinkling para recibos
  • Si solo necesitas OCR, quizá puedas saltarte este paso
  • Google ya había resuelto este problema hace 10 años
  • Si se trata de libros o documentos valiosos, el de-warping sin contacto con tomografía de rayos X es posible