En visión artificial o procesamiento del lenguaje natural , el análisis del diseño de documentos es el proceso de identificar y categorizar las regiones de interés en la imagen escaneada de un documento de texto. Un sistema de lectura requiere la segmentación de las zonas de texto de las no textuales y la disposición en su orden de lectura correcto. [1] La detección y etiquetado de las diferentes zonas (o bloques) como cuerpo de texto , ilustraciones , símbolos matemáticos y tablas incrustadas en un documento se denomina análisis de diseño geométrico . [2] Pero las zonas de texto juegan diferentes roles lógicos dentro del documento (títulos, subtítulos, notas al pie, etc.) y este tipo de etiquetado semántico es el alcance del análisis de diseño lógico .
El análisis del diseño de documentos es la unión del etiquetado geométrico y lógico. Normalmente se realiza antes de enviar una imagen de documento a un motor de OCR , pero también se puede utilizar para detectar copias duplicadas del mismo documento en archivos grandes o para indexar documentos por su estructura o contenido gráfico.
El diseño del documento está definido formalmente en la norma internacional ISO 8613-1:1989 .
Descripción general de los métodos
Existen dos enfoques principales para el análisis del diseño de documentos. En primer lugar, existen enfoques ascendentes que analizan iterativamente un documento basándose en los datos de píxeles sin procesar. Estos enfoques suelen analizar primero un documento en regiones conectadas de blanco y negro, luego estas regiones se agrupan en palabras, luego en líneas de texto y, finalmente, en bloques de texto. [3] [4] En segundo lugar, existen enfoques descendentes que intentan dividir iterativamente un documento en columnas y bloques basándose en el espacio en blanco y la información geométrica. [4]
Los enfoques de abajo a arriba son los tradicionales y tienen la ventaja de que no requieren suposiciones sobre la estructura general del documento. Por otro lado, los enfoques de abajo a arriba requieren una segmentación y agrupamiento iterativos, lo que puede llevar mucho tiempo. [4] Los enfoques de arriba a abajo tienen la ventaja de que analizan la estructura global de un documento directamente, eliminando así la necesidad de agrupar iterativamente los posibles cientos o incluso miles de caracteres/símbolos que aparecen en un documento. Suelen ser más rápidos, pero para que funcionen de manera robusta, normalmente requieren que se hagan una serie de suposiciones sobre el diseño del documento. [4] Algunos ejemplos de enfoques de arriba a abajo incluyen el algoritmo de corte recursivo XY, que descompone el documento en secciones rectangulares. [5]
Existen dos problemas comunes a cualquier enfoque de análisis de diseño de documentos: el ruido y la distorsión. El ruido se refiere al ruido de la imagen, como el ruido de sal y pimienta o el ruido gaussiano . La distorsión se refiere al hecho de que una imagen de un documento puede rotarse de manera que las líneas de texto no sean perfectamente horizontales. Es una suposición común tanto en los algoritmos de análisis de diseño de documentos como en los algoritmos de reconocimiento óptico de caracteres que los caracteres en la imagen del documento están orientados de manera que las líneas de texto sean horizontales. Por lo tanto, si hay distorsión, es importante rotar la imagen del documento para eliminarla.
De ello se deduce que los primeros pasos en cualquier código de análisis de diseño de documento son eliminar el ruido de la imagen y obtener una estimación del ángulo de inclinación del documento.
Ejemplo de un enfoque de abajo hacia arriba
En esta sección repasaremos los pasos de un algoritmo de análisis de diseño de documentos de abajo hacia arriba desarrollado en 1993 por O`Gorman. [3] Los pasos de este enfoque son los siguientes:
Preprocese la imagen para eliminar el ruido gaussiano y el ruido de sal y pimienta. Tenga en cuenta que algunos filtros de eliminación de ruido pueden considerar las comas y los puntos como ruido, por lo que debe tener cuidado.
Convertir la imagen en una imagen binaria , es decir convertir cada valor de píxel a completamente blanco o completamente negro.
Segmenta la imagen en componentes conectados de píxeles negros. Estos son los símbolos de la imagen. Para cada símbolo, calcula un cuadro delimitador y un centroide.
Para cada símbolo, determine sus k vecinos más cercanos , donde k es un número entero mayor o igual a cuatro. O`Gorman sugiere k=5 en su artículo como un buen compromiso entre robustez y velocidad. La razón para usar al menos k=4 es que para un símbolo en un documento, los dos o tres símbolos más cercanos son los que están justo al lado en la misma línea de texto. El cuarto símbolo más cercano generalmente está en una línea justo encima o debajo, y es importante incluir estos símbolos en el cálculo del vecino más cercano para lo siguiente.
Cada par de símbolos vecinos más próximos está relacionado por un vector que apunta desde el centroide de un símbolo al centroide del otro símbolo. Si se trazan estos vectores para cada par de símbolos vecinos más próximos, se obtiene lo que se denomina el docstrum del documento (consulte la figura siguiente). También se puede utilizar el ángulo Θ desde la horizontal y la distancia D entre dos símbolos vecinos más próximos y crear un histograma de ángulo vecino más próximo y distancia vecino más próximo.
Utilizando el histograma de ángulos del vecino más próximo, se puede calcular la inclinación del documento. Si la inclinación es aceptablemente baja, continúe con el siguiente paso. Si no lo es, gire la imagen para eliminar la inclinación y vuelva al paso 3.
El histograma de distancia al vecino más cercano tiene varios picos, que normalmente representan el espacio entre caracteres, entre palabras y entre líneas. Calcule estos valores a partir del histograma y déjelos a un lado.
Para cada símbolo, observe sus vecinos más cercanos y marque cualquiera de ellos que se encuentre a una distancia que esté dentro de cierta tolerancia de la distancia de espaciado entre caracteres o entre palabras. Para cada símbolo vecino más cercano que esté marcado, dibuje un segmento de línea que conecte sus centroides.
Los símbolos conectados a sus vecinos mediante segmentos de línea forman líneas de texto . Si se utilizan todos los centroides de una línea de texto, se puede calcular un segmento de línea real que represente la línea de texto con regresión lineal. Esto es importante porque es poco probable que todos los centroides de los símbolos de una línea de texto sean realmente colineales.
Para cada par de líneas de texto, se puede calcular una distancia mínima entre sus segmentos de línea correspondientes. Si esta distancia se encuentra dentro de cierta tolerancia del espaciado entre líneas calculado en el paso 7, entonces las dos líneas de texto se agrupan en el mismo bloque de texto .
Finalmente, se puede calcular un cuadro delimitador para cada bloque de texto y el análisis del diseño del documento estará completo.
Software de análisis de diseño
OCRopus : un sistema gratuito de análisis de diseño de documentos y OCR, implementado en C++ y Python y para FreeBSD, Linux y Mac OS X. Este software admite una arquitectura de complemento que permite al usuario seleccionar entre una variedad de diferentes algoritmos de análisis de diseño de documentos y OCR.
OCRFeeder : una suite de reconocimiento óptico de caracteres para Linux, escrita en Python, que también admite el análisis del diseño de documentos. Este software se encuentra en desarrollo activo y es gratuito y de código abierto.
Análisis de diseño de documentos de alto rendimiento por Thomas M. Breuel, en PARC, Palo Alto, CA, EE. UU., 2003
Técnicas de análisis de diseño geométrico para la comprensión de imágenes de documentos: una revisión, ITC-primer informe técnico TR#9703-09, 1998.
Lectura adicional
O'Gorman, L. (1993). "El espectro del documento para el análisis del diseño de páginas". IEEE Transactions on Pattern Analysis and Machine Intelligence . 15 (11): 1162–1173. doi :10.1109/34.244677.
Simon, A.; Pret, J.-C.; Johnson, AP (1997). "Un algoritmo rápido para el análisis de diseño de documentos de abajo a arriba". IEEE Transactions on Pattern Analysis and Machine Intelligence . 19 (3): 273–277. doi :10.1109/34.584106.
Seong-Whan Lee; Dae-Seok Ryu (2001). "Análisis de diseño geométrico de documentos sin parámetros". IEEE Transactions on Pattern Analysis and Machine Intelligence . 23 (11): 1240–1256. doi :10.1109/34.969115.
Dengel, Andreas; Barth, Gerhard (1989). "ANASTASIL: sistema híbrido basado en conocimiento para el análisis del diseño de documentos". Ijcai'89: 1249–1254. {{cite journal}}: Requiere citar revista |journal=( ayuda )
Referencias
^ Baird, KS (julio de 1992). "Anatomía de un lector de páginas versátil". Actas del IEEE . 80 (7): 1059–1065. CiteSeerX 10.1.1.40.8060 . doi :10.1109/5.156469.
^ Cattoni, R.; Coianiz, T.; Messelodi, S.; Modena, CM "Técnicas de análisis de diseño geométrico para la comprensión de imágenes de documentos: una revisión. ITC-primer informe técnico TR#9703-09".{{cite journal}}: Requiere citar revista |journal=( ayuda )
^ ab O'Gorman, L. (1993). "El espectro del documento para el análisis del diseño de página". IEEE Transactions on Pattern Analysis and Machine Intelligence . 15 (11): 1162–1173. doi :10.1109/34.244677.
^ abcd Seong-Whan Lee; Dae-Seok Ryu (2001). "Análisis de diseño geométrico de documentos sin parámetros". IEEE Transactions on Pattern Analysis and Machine Intelligence . 23 (11): 1240–1256. CiteSeerX 10.1.1.574.7875 . doi :10.1109/34.969115.
^ Ha, Jaekyu; Haralick, Robert M.; Phillips, Ihsin T. (1995). "Corte recursivo XY utilizando cuadros delimitadores de componentes conectados" (PDF) . Actas de la Tercera Conferencia Internacional sobre Análisis y Reconocimiento de Documentos (ICDAR '95) .