¿Desea extraer datos de documentos escaneados? Tratar Nanonetas™ avanzado Escáner OCR basado en IA para extraer y organizar información de documentos escaneados automáticamente.
Introducción
A medida que el mundo ha pasado de papeles y escritos a mano a documentos digitales por conveniencia, la importancia de convertir imágenes y documentos escaneados en datos significativos se ha disparado.
Para mantenerse al día con la necesidad de una extracción de datos de documentos de alta precisión, numerosas instalaciones de investigación y corporaciones (es decir, Google, AWS, Nanonets, etc.) se centraron profundamente en las tecnologías en los campos de la visión artificial y el procesamiento del lenguaje natural (NLP).
El florecimiento de las tecnologías de aprendizaje profundo ha asegurado un gran salto en el tipo de datos que se pueden extraer; ya no estamos limitados a extraer solo texto, sino también otras estructuras de datos como tablas y pares clave-valor. Muchas soluciones ahora ofrecen varios productos para satisfacer las necesidades de individuos y dueños de negocios en la extracción de datos de documentos.
Este artículo se sumerge en la tecnología actual utilizada para la extracción de datos de documentos escaneados, seguido de un breve tutorial práctico en Python. También veremos algunas de las soluciones populares actualmente en el mercado que brindan las mejores ofertas en este campo.
¿Qué es la extracción de datos?
La extracción de datos es el proceso de convertir datos no estructurados en información interpretable por programas para permitir un mayor procesamiento de datos por parte de humanos. Aquí enumeramos varios de los tipos de datos más comunes que se extraen de los documentos escaneados.
Datos de texto
La tarea más común y más importante en la extracción de datos de documentos escaneados es la extracción de texto. Este proceso, aunque aparentemente sencillo, es de hecho muy difícil ya que los documentos escaneados a menudo se presentan en formato de imágenes. Además, los métodos de extracción dependen en gran medida de los tipos de texto. Si bien el texto está presente en formatos impresos densos la mayor parte del tiempo, la capacidad de extraer texto disperso de documentos escaneados peor o de cartas escritas a mano con estilos que varían drásticamente es igualmente importante. Dicho proceso permitirá que los programas conviertan imágenes en texto codificado por máquina, donde podemos organizarlas aún más a partir de datos no estructurados (sin cierto formato) en datos estructurados para su posterior análisis.
Mesas
Las formas tabulares son el enfoque más popular para el almacenamiento de datos, ya que el formato es fácilmente interpretable por los ojos humanos. El proceso de extracción de tablas de documentos escaneados requiere tecnología más allá de la detección de caracteres: se deben detectar las líneas y otras características visuales para realizar una extracción adecuada de la tabla y convertir esa información en datos estructurados para un cálculo posterior. Los métodos de visión por computadora (descritos en detalle en las siguientes secciones) se usan mucho para lograr una extracción de tablas de alta precisión.
Pares clave-valor
Un formato alternativo que a menudo adoptamos en los documentos para el almacenamiento de datos son los pares clave-valor (KVP).
Los KVP son esencialmente dos elementos de datos, una clave y un valor, vinculados como uno solo. La clave se utiliza como un identificador único para el valor que se va a recuperar. Un ejemplo clásico de KVP es el diccionario, donde los vocabularios son las claves y las definiciones correspondientes son los valores. Estos pares, aunque generalmente pasan desapercibidos, en realidad se utilizan con mucha frecuencia en los documentos: las preguntas de las encuestas, como el nombre, la antigüedad y los precios de los artículos en las facturas, son implícitamente KVP.
Sin embargo, a diferencia de las tablas, los KVP a menudo existen en formatos desconocidos y, a veces, incluso están parcialmente escritos a mano. Por ejemplo, las claves pueden estar preimpresas en las casillas y los valores se escriben a mano al completar el formulario. Por lo tanto, encontrar las estructuras subyacentes para realizar automáticamente la extracción de KVP es un proceso de investigación continuo, incluso para las instalaciones y laboratorios más avanzados.
Figuras
Finalmente, también es muy importante extraer o captura de datos de cifras dentro de un documento escaneado. Los indicadores estadísticos, como los gráficos circulares y los gráficos de barras, suelen incluir información crucial para los documentos. Un buen proceso de extracción de datos debería ser capaz de inferir de las leyendas y los números para extraer parcialmente los datos de las figuras para su uso posterior.
¿Desea extraer datos de documentos escaneados? dar nanoredes™ un giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.
Tecnologías detrás de la extracción de datos
La extracción de datos gira en torno a dos procesos principales: Reconocimiento óptico de caracteres (LOC) seguido por procesamiento de lenguaje natural (PNL).
La extracción OCR es el proceso de convertir imágenes de texto en texto codificado por máquina, mientras que este último es el análisis de las palabras para inferir significados. A menudo, junto con el OCR, se encuentran otras técnicas de visión por computadora, como la detección de cajas y líneas, para extraer los tipos de datos antes mencionados, como tablas y KVP, para una extracción más completa.
Las mejoras fundamentales detrás de la tubería de extracción de datos están estrechamente relacionadas con los avances en el aprendizaje profundo que contribuyeron en gran medida a los campos de la visión artificial y el procesamiento del lenguaje natural (NLP).
¿Qué es el aprendizaje profundo?
El aprendizaje profundo tiene un papel importante detrás de la exageración de la era de la inteligencia artificial y ha sido empujado constantemente a la vanguardia en numerosas aplicaciones. En la ingeniería tradicional, nuestro objetivo es diseñar un sistema/función que genere una salida a partir de una entrada dada; el aprendizaje profundo, por otro lado, se basa en las entradas y salidas para encontrar la relación intermedia que se puede extender a nuevos datos no vistos a través de los llamados red neural.
Una red neuronal o un perceptrón multicapa (MLP), es una arquitectura de aprendizaje automático inspirada en cómo aprenden los cerebros humanos. La red contiene neuronas, que imitan a las neuronas biológicas y se “activan” cuando se les da información diferente. Los conjuntos de neuronas forman capas, y varias capas se apilan juntas para formar una red que cumple los propósitos de predicción de múltiples formas (es decir, clasificaciones de imágenes o cuadros delimitadores para la detección de objetos).
En el campo de la visión por computadora, se aplica mucho un tipo de variación de red neuronal: redes neuronales convolucionales. (CNN). En lugar de las capas tradicionales, una CNN adopta núcleos convolucionales que se deslizan a través de tensores (o vectores de alta dimensión) para la extracción de características. Junto con las capas de red tradicionales al final, las CNN tienen mucho éxito en tareas relacionadas con imágenes y además formaron la base para la extracción de OCR y la detección de otras características.
Por otro lado, NLP depende de otro conjunto de redes, que se enfoca en datos de series temporales. A diferencia de las imágenes, donde una imagen es independiente una de otra, la predicción de texto se puede beneficiar en gran medida si también se tienen en cuenta las palabras anteriores o posteriores. En los últimos años, una familia de redes, a saber, memorias largas a corto plazo (LSTM), que toma los resultados anteriores como entradas para predecir los resultados actuales. Los LSTM bilaterales también se adoptaron a menudo para mejorar el resultado de la predicción, donde se consideraron los resultados anteriores y posteriores. En los últimos años, sin embargo, está comenzando a surgir un concepto de transformadores que utilizan un mecanismo de atención debido a su mayor flexibilidad que conduce a mejores resultados que las redes tradicionales que manejan series de tiempo secuenciales.
Aplicaciones de Extracción de Datos
El objetivo principal de la extracción de datos es convertir datos de documentos no estructurados a formatos estructurados, en los que una recuperación muy precisa de texto, figuras y estructuras de datos puede ser muy útil para el análisis numérico y contextual. Estos análisis pueden ser muy útiles especialmente para las empresas:
Empresa
Las corporaciones comerciales y las grandes organizaciones se ocupan de miles de documentos con formatos similares a diario: los grandes bancos reciben numerosas solicitudes idénticas y los equipos de investigación tienen que analizar montones de formularios para realizar análisis estadísticos. Por lo tanto, la automatización del paso inicial de extraer datos de documentos reduce significativamente la redundancia de recursos humanos y permite a los trabajadores concentrarse en analizar datos y revisar aplicaciones en lugar de ingresar información.
- Verificación de aplicaciones — Las empresas reciben toneladas de solicitudes, ya sea escritas a mano o solo a través de formularios de solicitud. En la mayoría de los casos, estas solicitudes pueden ir acompañadas de identificaciones personales con fines de verificación. Los documentos de identificación escaneados, como pasaportes o tarjetas, generalmente vienen en lotes con formatos similares. Por lo tanto, un extractor de datos bien escrito puede convertir rápidamente los datos (textos, tablas, figuras, KVP) en textos comprensibles por máquina, lo que podría reducir sustancialmente las horas de trabajo en estas tareas y centrarse en la selección de aplicaciones en lugar de la extracción.
- Conciliación de pagos — La conciliación de pagos es el proceso de comparar extractos bancarios para garantizar la coincidencia de números entre cuentas, que gira en gran medida en torno a la extracción de datos de documentos, un problema desafiante para una empresa con un tamaño considerable y varias fuentes de flujo de ingresos. La extracción de datos puede facilitar este proceso y permitir que los empleados se concentren en los datos defectuosos y exploren posibles eventos fraudulentos sobre el flujo de caja.
- Análisis estadístico — Las corporaciones y las organizaciones utilizan los comentarios de los clientes o de los participantes en los experimentos para mejorar sus productos y servicios, y una evaluación exhaustiva de los comentarios generalmente necesitará un análisis estadístico. Sin embargo, los datos de la encuesta pueden existir en numerosos formatos o estar ocultos entre el texto con varios formatos. La extracción de datos podría facilitar el proceso al señalar datos obvios de documentos en lotes, facilitar el proceso de encontrar procesos útiles y, en última instancia, aumentar la eficiencia.
- Compartir registros anteriores — Desde el cuidado de la salud hasta el cambio de servicios bancarios, las grandes industrias a menudo requieren nueva información de los clientes que puede que ya exista en otros lugares. Por ejemplo, un paciente que cambia de hospital debido a una mudanza puede tener registros médicos preexistentes que podrían ser útiles para el nuevo hospital. En tales casos, un buen software de extracción de datos es útil, ya que todo lo que se requiere es que la persona traiga un historial escaneado de registros al nuevo hospital para que completen automáticamente toda la información. Esto no solo sería conveniente, sino que también podría evitar grandes riesgos, especialmente en la industria de la salud, de que se pasen por alto registros importantes de pacientes.
¿Desea extraer datos de documentos escaneados? dar nanoredes™ un giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.
Tutoriales
Para proporcionar una visión más clara de cómo realizar la extracción de datos, mostramos dos conjuntos de métodos para realizar la extracción de datos de documentos escaneados.
Construyendo desde cero
Se puede construir un motor de OCR de extracción de datos simple a través del motor PyTesseract de la siguiente manera:
try: from PIL import Image
except ImportError: import Image
import pytesseract # If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:Program Files (x86)Tesseract-OCRtesseract' # Simple image to string
print(pytesseract.image_to_string(Image.open('test.png'))) # List of available languages
print(pytesseract.get_languages(config='')) # French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra')) # In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png')) # Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt')) # Timeout/terminate the tesseract job after a period of time
try: print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error: # Tesseract processing is terminated pass # Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png'))) # Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png'))) # Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png'))) # Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f: f.write(pdf) # pdf type is bytes by default # Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr') # Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')
Para obtener más información sobre el código, puede consultar su oficial documentación.
En palabras simples, el código extrae datos como textos y cuadros delimitadores de una imagen determinada. Si bien es bastante útil, el motor no es tan fuerte como los proporcionados por soluciones avanzadas debido a su poder computacional sustancial para el entrenamiento.
Uso de la API de documentos de Google
def async_detect_document(gcs_source_uri, gcs_destination_uri):
"""OCR with PDF/TIFF as source files on GCS""" import json import re from google.cloud import vision from google.cloud import storage # Supported mime_types are: 'application/pdf' and 'image/tiff' mime_type = 'application/pdf' # How many pages should be grouped into each json output file. batch_size = 2 client = vision.ImageAnnotatorClient() feature = vision.Feature( type_=vision.Feature.Type.DOCUMENT_TEXT_DETECTION) gcs_source = vision.GcsSource(uri=gcs_source_uri) input_config = vision.InputConfig( gcs_source=gcs_source, mime_type=mime_type) gcs_destination = vision.GcsDestination(uri=gcs_destination_uri) output_config = vision.OutputConfig( gcs_destination=gcs_destination, batch_size=batch_size) async_request = vision.AsyncAnnotateFileRequest( features=[feature], input_config=input_config, output_config=output_config) operation = client.async_batch_annotate_files( requests=[async_request]) print('Waiting for the operation to finish.') operation.result(timeout=420) # Once the request has completed and the output has been # written to GCS, we can list all the output files. storage_client = storage.Client() match = re.match(r'gs://([^/]+)/(.+)', gcs_destination_uri) bucket_name = match.group(1) prefix = match.group(2) bucket = storage_client.get_bucket(bucket_name) # List objects with the given prefix. blob_list = list(bucket.list_blobs(prefix=prefix)) print('Output files:') for blob in blob_list: print(blob.name) # Process the first output file from GCS. # Since we specified batch_size=2, the first response contains # the first two pages of the input file. output = blob_list[0] json_string = output.download_as_string() response = json.loads(json_string) # The actual response for the first page of the input file. first_page_response = response['responses'][0] annotation = first_page_response['fullTextAnnotation'] # Here we print the full text from the first page. # The response contains more information: # annotation/pages/blocks/paragraphs/words/symbols # including confidence scores and bounding boxes print('Full text:n') print(annotation['text'])
En última instancia, la IA de documentos de Google le permite extraer gran cantidad de información de documentos con gran precisión. Además, el servicio también se ofrece para usos específicos, incluida la extracción de texto para imágenes normales y salvajes.
Por favor, consulta nuestra esta página para más.
Soluciones actuales que ofrecen extracción de datos
Además de las grandes corporaciones con API para la extracción de datos de documentos, existen varias soluciones que brindan alta precisión PDF OCR servicios. Presentamos varias opciones de PDF OCR que se especializan en diferentes aspectos, así como algunos prototipos de investigaciones recientes que parecen brindar resultados prometedores*:
* Nota al margen: 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.
- API de Google — Como uno de los mayores proveedores de servicios en línea, Google ofrece resultados sorprendentes en la extracción de documentos con su tecnología pionera de visión artificial. Uno puede usar sus servicios de forma gratuita si el uso es bastante bajo, pero el precio se acumula a medida que aumentan las llamadas a la API.
- 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 coincidencia de documentos, recuperación de texto y eliminación de ruido de imágenes. Hay funciones adicionales, como tablas y extracción de pares clave-valor, que permiten recuperar y guardar datos de manera organizada.
- Nanonets ™ — Con un equipo de aprendizaje profundo altamente capacitado, Nanonets™ PDF OCR es completamente independiente de plantillas y reglas. Por lo tanto, Nanonets™ no solo puede funcionar en tipos específicos de archivos PDF, sino que también se puede aplicar a cualquier tipo de documento para la recuperación de texto.
¿Desea extraer datos de documentos escaneados? dar nanoredes™ un giro para una mayor precisión, mayor flexibilidad, posprocesamiento y un amplio conjunto de integraciones.
Conclusión
En conclusión, este artículo presenta una explicación detallada sobre la extracción de datos de documentos escaneados, incluidos los desafíos detrás de esto y la tecnología requerida para este proceso.
Se presentan dos tutoriales de diferentes métodos, y también se presentan como referencia las soluciones actuales que lo ofrecen de manera inmediata.
- 2019
- Acerca
- Absoluto
- Mi Cuenta
- preciso
- Lograr
- adición
- Adicionales
- avanzado
- avances
- AI
- algoritmos
- Todos
- ya haya utilizado
- alternativa
- analizar
- análisis
- Otra
- abejas
- API
- Aplicación
- aplicaciones
- enfoque
- arquitectura
- en torno a
- artículo
- artificial
- inteligencia artificial
- Automatización
- Hoy Disponibles
- AWS
- fondo
- Banca
- Bancos
- base
- "Ser"
- MEJOR
- Más allá de
- Mayor
- frontera
- Box
- build
- negocios
- Tarjetas
- cases
- efectivo
- flujo de fondos
- a ciertos
- retos
- desafiante
- Gráficas
- Pagar ahora
- clásico
- Soluciones
- CNN
- código
- cómo
- Algunos
- Empresas
- compañía
- completamente
- completando
- exhaustivo
- cálculo
- computadora
- concepto
- Congreso
- confianza
- conectado
- constantemente
- contiene
- contribuido
- comodidad
- Conveniente
- conversiones
- Core
- Corporaciones
- Correspondiente
- podría
- crucial
- Current
- En la actualidad
- cliente
- Clientes
- datos
- proceso de datos
- almacenamiento de datos
- acuerdo
- descrito
- Diseño
- detalle
- Detección
- una experiencia diferente
- difícil
- digital
- documentos
- pasan fácilmente
- eficiencia
- personas
- Motor
- Ingeniería
- especialmente
- esencialmente
- estima
- etc.
- evaluación
- Eventos
- ejemplo
- Excepto
- experimento
- explorar
- en los detalles
- Extractos
- familia
- Feature
- Caracteristicas
- realimentación
- Terrenos
- la búsqueda de
- Nombre
- Flexibilidad
- de tus señales
- Focus
- centrado
- se centra
- enfoque
- siguiendo
- primer plano
- formulario
- formato
- Formularios
- Gratuito
- Francés
- Cumplir
- ser completados
- promover
- objetivo
- candidato
- mayor
- muy
- Manejo
- emprendedor
- cabeza
- la salud
- industria de la salud
- serviciales
- esta página
- Alta
- más alto
- altamente
- historia
- hospitales
- Cómo
- Como Hacer
- Sin embargo
- HTTPS
- humana
- Recursos Humanos
- Humanos
- imagen
- importancia
- importante
- mejorar
- incluir
- Incluye
- por
- aumente
- INSTRUMENTO individual
- individuos
- industrias
- energético
- información
- Las opciones de entrada
- inspirado
- Intelligence
- IT
- Trabajos
- Clave
- claves
- labs
- idioma
- Idiomas
- large
- líder
- APRENDE:
- aprendizaje
- línea
- Lista
- Largo
- máquina
- máquina de aprendizaje
- gran
- Mayoría
- hombre
- manera
- Mercado
- Match
- pareo
- servicios
- métodos
- más,
- MEJOR DE TU
- Más popular
- emocionante
- múltiples
- a saber
- Natural
- del sistema,
- telecomunicaciones
- normal
- números
- numeroso
- LANZAMIENTO
- Ofrecido
- que ofrece
- Lista de ofrendas
- Ofertas
- oficial
- en marcha
- en línea
- Inteligente
- Opciones
- solicite
- para las fiestas.
- Organizado
- Otro
- los propietarios de
- Participantes
- pago
- (PDF)
- realizar
- período
- con
- Pioneros
- Popular
- posible
- industria
- predecir
- predicción
- presente
- bastante
- anterior
- precio
- en costes
- tratamiento
- Productos
- Programa
- Programas
- prometedor
- proporcionar
- proporcionando
- fines
- con rapidez
- RE
- Testimoniales
- Reading
- recepción
- reconciliación
- archivos
- reducir
- con respecto a
- relación
- solicita
- exigir
- Requisitos
- requiere
- la investigación
- Recursos
- respuesta
- Resultados
- volvemos
- riesgos
- exploración
- segundos
- de coches
- Servicios
- set
- Varios
- En Corto
- a corto plazo
- similares
- sencillos
- desde
- Tamaño
- Software
- sólido
- Soluciones
- algo
- especializado
- Girar
- el estado de la técnica
- declaraciones
- estadístico
- STORAGE
- stream
- fuerte
- estructurado
- sustancial
- exitosos
- Soportado
- Peritaje
- afectados
- tareas
- equipo
- técnicas
- Tecnologías
- Tecnología
- test
- el mundo
- por lo tanto
- miles
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- veces
- juntos
- TONS
- hacia
- tradicional
- Formación
- Tutoriales
- tipos
- entender
- único
- utilizan el
- generalmente
- propuesta de
- diversos
- Verificación
- Ver
- visión
- sean
- mientras
- dentro de
- sin
- palabras
- Actividades:
- los trabajadores.
- mundo
- se
- XML
- años