OCR para archivos PDF

Nodo de origen: 879686

Introducción

Desde el uso generalizado de las computadoras en la década de 1970 seguido de la invención de los archivos PDF en 1993, el almacenamiento de archivos de texto en formatos digitales ha dominado de manera gradual pero constante sobre los documentos tradicionales. Esta ventaja inmejorable se creó y mejoró aún más al hacer autostop en la conveniencia de Internet que permite que los archivos de texto digital se envíen fácilmente a todo el mundo en cuestión de segundos. Hoy en día, los textos codificados por máquina no solo se guardan y comparten a través de archivos PDF, sino que incluso los documentos escritos a mano se escanean en dichos formatos para su posterior procesamiento y distribución.

Sin embargo, esta tendencia emergente ha arrojado luz sobre un dominio de investigación nuevo y actualmente en curso: el reconocimiento óptico de caracteres (OCR) en PDF. OCR es el proceso de convertir texto escaneado o escrito a mano en texto codificado por máquina, de modo que pueda ser utilizado por los programas para su posterior procesamiento y análisis. Si bien la aplicación de OCR es amplia (desde imágenes de señales de tráfico hasta documentos de texto formales), este artículo se sumerge específicamente en el dominio de PDF OCR, en particular PDF de papel escaneado y escrito a mano, y analiza la tecnología y los programas en varios idiomas para realizar la tarea. A modo de referencia, se presenta una descripción general detallada y una comparación entre varios software en el mercado para PDF OCR.


¿Busca una solución de OCR para extraer información de archivos PDF? Dar nanorredun giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.


Avances en soluciones de OCR

Antes de discutir los códigos, los detalles y los beneficios de los OCR, primero explicamos el concepto de cómo funciona el OCR al presentar los avances en la tecnología involucrada.

OCR tradicional

La conversión electrónica de documentos escaneados para su posterior cálculo, antes de que el aprendizaje profundo alcance la precisión requerida para tales tareas, generalmente se realiza con cuatro simples pasos:

  1. Recopila una base de datos de personajes conocidos.
  2. Utilice fotosensores para recopilar y separar letras individuales de documentos escaneados.
  3. Compare el conjunto de atributos recuperados de los fotosensores con los atributos físicos de la base de datos.
  4. Convierta cada conjunto de atributos en consecuencia en el carácter conocido con la mayor similitud.

Si bien el enfoque tradicional parece ser efectivo la mayoría de las veces, es vulnerable a sus restricciones inherentes basadas en reglas. Un paso intermedio crucial de OCR es extraer con éxito letras o signos individuales de un conjunto / grupo de textos. Esta extracción requiere ciertas plantillas o reglas (es decir, tamaños / estilos de fuente preestablecidos) para que sea altamente precisa. La imposición de más y más reglas para aumentar la precisión creará un dilema de sobreajuste de OCR, o se corregirá solo en estilos específicos de escritura. Cualquier inconsistencia de iluminación durante el proceso de escaneo también conduciría a errores cuando el OCR se basa completamente en reglas.

Además, las comparaciones de atributos basadas en reglas también se quedan cortas cuando se trata de escritura a mano. Las fuentes generadas por computadora son en su mayoría fijas con atributos a menudo obvios y fáciles de comparar; las fuentes escritas a mano son exactamente lo contrario, con variaciones ilimitadas y, por lo tanto, son mucho más difíciles de clasificar. Dado que cada vez que un personaje hecho a mano es ligeramente diferente, tampoco es posible incluirlos a todos como parte de la base de datos. Esto a menudo requiere que los OCR realicen algoritmos más sofisticados además de la coincidencia de atributos ingenua.

Finalmente, la barrera de múltiples idiomas también existe en el enfoque tradicional. Numerosos idiomas adoptan símbolos similares o incluso idénticos; Si almacenamos todos los símbolos en la base de datos, no podríamos distinguir la diferencia entre dos símbolos simplemente realizando una comparación de atributos, lo que en última instancia hace que el enfoque tradicional se limite a menudo a un solo idioma por modelo.

A la luz de la era reciente del aprendizaje profundo, afortunadamente surgida por las capacidades de computación de hardware en rápido crecimiento, los OCR más nuevos han incorporado modelos de aprendizaje tanto durante el proceso de extracción de texto como en la fase de interpretación.

Motores de OCR basados ​​en aprendizaje profundo

El aprendizaje profundo, una rama importante del ámbito del aprendizaje automático, ha ganado una gran popularidad con la ayuda de numerosos científicos de renombre que lo llevan a un primer plano. En la ingeniería tradicional, nuestro objetivo es diseñar un sistema / función que genere una salida a partir de una entrada determinada; el aprendizaje profundo, por otro lado, se basa en las entradas y salidas para encontrar la relación intermedia que puede extenderse a nuevos datos invisibles a través de los llamados red neural.

Arquitectura de red neuronal

Una red neuronal, o un perceptrón de múltiples capas, imita la forma en que aprenden los cerebros humanos. Cada nodo, es decir, las neuronas, dentro de la red son como neuronas biológicas de modo que reciben información para "activarse". Los conjuntos de neuronas forman capas y varias capas se apilan para convertirse en una red, que utiliza la información para generar una predicción. La predicción puede ser de todas las formas, desde una predicción de clase para problemas de clasificación hasta los cuadros delimitadores de elementos en tareas de detección de objetos, todos los cuales han alcanzado el estado de la técnica en comparación con la literatura anterior. En la tarea de OCR, se aplican en gran medida dos tipos de salida, junto con dos géneros de redes.

  • Redes neuronales convolucionales (CNN) - Las CNN son uno de los conjuntos de redes más dominantes que se utilizan en la actualidad, particularmente en el ámbito de la visión por computadora. Comprende múltiples núcleos convolucionales que se deslizan a través de la imagen para extraer características. Acompañado con capas de red tradicionales al final, las CNN son muy exitosas en la recuperación de características de una imagen determinada para realizar predicciones. Este proceso se puede transferir además a la tarea de encontrar cuadros delimitadores y detectar atributos de caracteres para una clasificación adicional en el proceso de OCR.
  • Memorias a corto plazo (LSTM) - Los LSTM son una familia de redes que se aplican principalmente a las entradas de secuencia. La intuición es simple: para cualquier dato secuencial (es decir, clima, existencias), los nuevos resultados pueden depender en gran medida de los resultados anteriores y, por lo tanto, sería beneficioso alimentar constantemente los resultados anteriores como parte de las características de entrada al realizar nuevas predicciones. . En el caso de OCR, las letras detectadas previamente podrían ser de gran ayuda para ayudar a predecir la siguiente, ya que un conjunto de caracteres generalmente debe tener sentido cuando se junta (por ejemplo, es más probable que una letra en inglés "g" venga después de "do" que un número "9", a pesar de sus atributos similares).

Además de las tareas principales en OCR que incorporan el aprendizaje profundo, muchas etapas de preprocesamiento para eliminar los enfoques basados ​​en reglas también se han beneficiado de las prósperas tecnologías de redes neuronales:

  • eliminación de ruido - Cuando un documento se escanea incorrectamente, los métodos basados ​​en reglas pueden quedarse cortos fácilmente. Un enfoque reciente adoptado por las tecnologías OCR es aplicar una Red Adversarial Generativa (GAN) para "eliminar el ruido" de la entrada. GAN comprende dos redes, un generador y un discriminador. El generador genera constantemente nuevas entradas para que el discriminador distinga entre las entradas reales y las generadas, lo que permite que el generador mejore constantemente en la creación de contenidos ideales. En este caso, el GAN ​​se entrena a partir de un par de documentos sin ruido y con ruido, y el objetivo del generador es generar un documento sin ruido lo más cerca posible de la verdad sobre el terreno. Durante la fase de aplicación, el GAN, si está bien entrenado, se puede utilizar en cada entrada para ajustar cualquier documento escaneado deficientemente.
  • Identificación de documentos - Las tareas de OCR, en particular las tareas de OCR en archivos PDF, se utilizan a menudo con el fin de extraer correctamente datos de formularios y documentos. Por lo tanto, conocer el tipo de documento que la máquina de OCR está procesando actualmente puede aumentar significativamente la precisión de la extracción de datos. Las artes recientes han incorporado una red siamesa, o una red de comparación, para comparar los documentos con formatos de documentos preexistentes, lo que permite que el motor OCR realice una clasificación de documentos de antemano. Se ha demostrado empíricamente que este paso adicional mejora la precisión en las recuperaciones de texto.

En resumen, la progresión de OCR se ha beneficiado bien del crecimiento exponencial de las capacidades de hardware y el aprendizaje profundo. Los PDF OCR ahora han alcanzado una precisión de un estándar asombroso para numerosas aplicaciones.


¿Busca una solución de OCR para extraer información de archivos PDF? Dar nanorredun giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.


Aplicaciones del software PDF OCR

El objetivo principal de OCR es recuperar datos de formatos no estructurados, ya sean cifras numéricas o números reales. Si la recuperación es exitosa y altamente precisa, los programas pueden utilizar OCR para tareas laborales como reconocer e interpretar texto, específicamente para análisis numérico y contextual.

Análisis de datos numéricos

Cuando los archivos PDF contienen datos numéricos, el OCR ayuda a extraerlos para realizar análisis estadísticos. Específicamente, se puede aplicar OCR con la ayuda de extracciones de tablas o pares clave-valor (KVP) para encontrar números significativos de diferentes regiones de un texto dado. Luego, podemos adoptar métodos estadísticos o incluso de aprendizaje automático (es decir, KNN, K-Means, Regresión lineal / logística) a modelos de varias aplicaciones.

Interpretación de datos de texto

Por otro lado, el procesamiento de datos de texto puede requerir más etapas de cálculo, con el objetivo final de que los programas comprendan los "significados" detrás de las palabras. Este proceso de interpretación de datos de texto en sus significados semánticos se conoce como procesamiento del lenguaje natural (PNL).

Beneficios de PDF OCR

PDF OCR sirve para numerosos propósitos a nivel de aplicación. Las siguientes secciones describen algunos ejemplos de casos de uso, desde un uso tan pequeño como personal hasta tan grande como el de una corporación.

Casos de uso personal

Los PDF OCR brindan una inmensa comodidad cuando se trata de tareas molestas como escanear identificaciones y financiamiento personal.

A menudo se requiere que las identificaciones personales se conviertan a formatos PDF para enviarlas a varias aplicaciones. Estos documentos de identificación contienen información como la fecha de nacimiento y los números de identificación que a menudo se requiere que se ingresen repetidamente para diferentes propósitos y, por lo tanto, un PDF OCR de alta precisión que encuentre los campos coincidentes y los valores correspondientes en la identificación sería de gran utilidad. ayuda en la realización de tareas manuales triviales. El único trabajo requerido sería simplemente verificar dos veces para detectar cualquier inconsistencia.

El financiamiento personal es otro proceso que requiere toneladas de trabajo manual. Aunque los desarrollos en Excel y las hojas de cálculo ya han facilitado tareas como la elaboración de presupuestos personales, el OCR y la extracción de datos en facturas en PDF podrían acelerar aún más el proceso. Estos datos se pueden poner automáticamente en hojas de cálculo para su análisis como se menciona en los apartados anteriores a realizar. Uno puede utilizar fácilmente el tiempo de entrada original para pensar en mejores planes financieros.

Casos de uso empresarial

Tanto las grandes corporaciones como las organizaciones más pequeñas tienen que lidiar con miles de trámites que siguen formatos similares, que requieren mucha mano de obra y, sin embargo, son improductivos (es decir, todo el trabajo se utiliza para algo que requiere menos lluvia de ideas). Las clasificaciones automatizadas de documentos y las recopilaciones / análisis de encuestas es donde el OCR resulta útil.

Los OCR permiten a las computadoras convertir textos escaneados en textos codificados por máquina. El contenido de los textos convertidos se puede utilizar para clasificar documentos, ya sean solicitudes para diferentes roles o formularios que esperan ser aprobados. Si se entrena bien, los OCR pueden provocar errores mínimos que podrían ser frecuentes debido a la inevitable fatiga humana. Desde una perspectiva empresarial, el gasto laboral también puede reducirse enormemente.

En términos de encuestas o comentarios, que a menudo son requeridos por las organizaciones para mejorar sus productos o planes actuales, el OCR también juega un papel vital. Los datos se pueden extraer rápidamente y evaluar exhaustivamente para el análisis estadístico. Si está bien diseñado, incluso el texto escrito a mano puede extraerse y analizarse automáticamente.


¿Busca una solución de OCR para extraer información de archivos PDF? Dar nanorredun giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.


Un tutorial sencillo

Los PDF OCR se pueden programar fácilmente personalmente. A continuación, se muestra una sencilla canalización para realizar OCR en archivos PDF.

Conversión de PDF a imágenes

Existen numerosas bibliotecas y API en varios idiomas que admiten OCR previamente entrenados. Sin embargo, la mayoría procesa con imágenes y no directamente con PDF. Por lo tanto, para simplificar los siguientes pasos, podemos preprocesar los PDF en formatos de imagen antes de realizar reconocimientos de caracteres.

Una de las bibliotecas más utilizadas para hacerlo es la pdf2imagen biblioteca para Python, que simplemente se puede instalar mediante el siguiente comando:

pip install pdf2image

Posteriormente, se puede importar la biblioteca y usar cualquiera de las dos líneas de código para obtener una imagen en formato PIL como se muestra a continuación:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Para obtener más información sobre el código, puede consultar la documentación oficial en https://pypi.org/project/pdf2image/

OCR de imagen

Existen numerosas API de grandes empresas tecnológicas con OCR de alta precisión. Debido a la presunción de que los PDF suelen estar muy empaquetados con datos de texto densos, la forma más adecuada de realizar dicho OCR sería utilizar la API de Google Vision, en particular la Documento_Texto_Anotación funcionar, ya que está diseñado especialmente para tales fines. Específicamente, Documento_Texto_Anotación envía el código al motor de OCR que Google diseñó para textos densos, incluidas las escrituras a mano en varios idiomas.

Toda la API de Google Vision es fácil de configurar, se puede consultar su guía oficial sobre https://cloud.google.com/vision/docs/quickstart-client-libraries para conocer el procedimiento de configuración detallado.

Luego, podemos usar los siguientes códigos para la recuperación de OCR:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Alternativamente, la API de Google Vision también es compatible con varios idiomas, como Java y Go. Puede obtener más códigos sobre el uso de la API de Google aquí: https://cloud.google.com/vision  

También hay otros servicios / API de OCR de Amazon y Microsoft, y siempre puede utilizar el PyTesseract biblioteca para entrenar en su modelo para propósitos específicos.


¿Busca una solución de OCR para extraer información de archivos PDF? Dar nanorredun giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.


Comparación

Existen numerosos PDF OCR actualmente disponibles en el mercado. Si bien algunos son gratuitos, rápidos y se pueden usar instantáneamente en línea, otros brindan productos más precisos y mejor diseñados para uso profesional. Aquí describimos algunas opciones, así como sus pros y contras.

OCR de PDF en línea

Al utilizar PDF OCR para uso personal en conversiones rápidas, puede ser más deseable que la precisión sea gratuita y rápida. Existen numerosos servicios de PDF OCR en línea que satisfacen estas necesidades. Uno puede simplemente cargar documentos PDF y convertirlos en texto escrito de una manera rápida y conveniente.

Sin embargo, el principal problema con esto es el control de calidad del OCR. Estos software de OCR gratuitos en línea, aunque funcionan bien la mayor parte del tiempo, no están destinados a ofrecer resultados de la mejor calidad cada vez en comparación con otro software fuera de línea que requiere un mantenimiento constante

Software sin conexión

Actualmente, hay varias empresas que brindan servicios de OCR de PDF de alta precisión. Aquí analizamos varias opciones de PDF OCR que se especializan en diferentes aspectos, así como algunos prototipos de investigación recientes que parecen brindar resultados prometedores:

Hay varios servicios de OCR que están dirigidos a tareas como imágenes en la naturaleza. Omitimos esos servicios ya que actualmente nos estamos enfocando solo en la lectura de documentos PDF.

  • ABBYY - ABBYY FineReader PDF es un OCR desarrollado por ABBYY. El software tiene una interfaz de usuario amigable que se utiliza para la lectura de PDF y la conversión de texto. Sin embargo, debido a su naturaleza no relacionada con la ingeniería (los clientes objetivo son especialistas no técnicos en otros campos que necesitan PDF OCR), sería más difícil incorporarlo en otros programas para su posterior procesamiento.
  • cofax - Al igual que ABBYY, Kofax es un lector de PDF amigable que requiere compra. El precio es fijo para uso individual, con descuentos para grandes corporaciones. También está disponible asistencia 24 horas al día, 7 días a la semana en caso de dificultades técnicas.
  • Lector profundo - Deep Reader es un trabajo de investigación publicado en ACCV Conference 2019. Incorpora múltiples arquitecturas de red de última generación para realizar tareas como la coincidencia de documentos, la recuperación de texto y la eliminación de ruido de imágenes. Hay características adicionales como tablas y extracciones de pares clave-valor que permiten recuperar y guardar datos de manera organizada.
  • Nanonets ™ - Nanonets ™ PDF OCR utiliza aprendizaje profundo y, por lo tanto, es completamente independiente de las plantillas y las reglas. Las nanorredes no solo pueden funcionar en tipos específicos de archivos PDF, sino que también se pueden aplicar a cualquier tipo de documento para la recuperación de texto.

Conclusión

En conclusión, en este artículo analizamos los conceptos básicos de cómo funciona un OCR, así como la línea de tiempo del desarrollo de OCR seguido de tutoriales simples y casos de uso. También presentamos un conjunto de opciones viables para PDF OCR, así como sus ventajas y desventajas para su uso posterior.

Fuente: https://nanonets.com/blog/pdf-ocr/

Sello de tiempo:

Mas de IA y aprendizaje automático