Stai cercando di estrarre dati da documenti scansionati? Tentativo nanonet™ Avanzate Scanner OCR basato sull'intelligenza artificiale da cui estrarre e organizzare le informazioni documenti scansionati automaticamente.
Introduzione
Mentre il mondo passa dalla carta e dalla scrittura a mano ai documenti digitali per comodità, l’importanza di convertire immagini e documenti scansionati in dati significativi è salita alle stelle.
Per tenere il passo con la necessità di un'estrazione dei dati dei documenti altamente accurata, numerose strutture di ricerca e aziende (ad esempio Google, AWS, Nanonets ecc.) si sono concentrate profondamente sulle tecnologie nei campi della visione artificiale e dell'elaborazione del linguaggio naturale (NLP).
Lo sviluppo delle tecnologie di deep learning ha assicurato un passo da gigante nel tipo di dati che possono essere estratti; non siamo più vincolati solo all'estrazione del testo, ma anche ad altre strutture dati come tabelle e coppie chiave-valore. Molte soluzioni ora offrono vari prodotti per soddisfare le esigenze di privati e imprenditori nell'estrazione dei dati dei documenti.
Questo articolo approfondisce l'attuale tecnologia utilizzata per l'estrazione dei dati dai documenti scansionati, seguito da un breve tutorial pratico in Python. Esamineremo anche alcune delle soluzioni più popolari attualmente sul mercato che forniscono le migliori offerte in questo campo.
Che cos'è l'estrazione dei dati?
L'estrazione dei dati è il processo di conversione dei dati non strutturati in informazioni interpretabili da parte di programmi per consentire l'ulteriore elaborazione dei dati da parte degli esseri umani. Qui elenchiamo alcuni dei tipi più comuni di dati da estrarre dai documenti scansionati.
Dati di testo
L'attività più comune e importante nell'estrazione dei dati dai documenti scansionati è l'estrazione del testo. Questo processo, sebbene apparentemente semplice, è in realtà molto difficile poiché i documenti scansionati vengono spesso presentati sotto forma di immagini. Inoltre, i metodi di estrazione dipendono fortemente dai tipi di testo. Sebbene il testo sia presente nella maggior parte dei casi in formati stampati densi, la capacità di estrarre testo sparsi da documenti meno ben scansionati o da lettere scritte a mano con stili drasticamente diversi sono altrettanto importanti. Un tale processo consentirà ai programmi di convertire le immagini in testo codificato dalla macchina, dove potremo organizzarle ulteriormente da dati non strutturati (senza determinata formattazione) in dati strutturati per ulteriori analisi.
tavoli
I moduli tabulari rappresentano l'approccio più popolare per l'archiviazione dei dati, poiché il formato è facilmente interpretabile con gli occhi umani. Il processo di estrazione delle tabelle dai documenti scansionati richiede una tecnologia che va oltre il rilevamento dei caratteri: è necessario rilevare le linee e altre caratteristiche visive per eseguire un'estrazione corretta delle tabelle e convertire ulteriormente tali informazioni in dati strutturati per ulteriori calcoli. I metodi di visione artificiale (descritti in dettaglio nelle sezioni seguenti) sono ampiamente utilizzati per ottenere un'estrazione di tabelle ad alta precisione.
Coppie chiave-valore
Un formato alternativo che spesso adottiamo nei documenti per l'archiviazione dei dati sono le coppie chiave-valore (KVP).
I KVP sono essenzialmente due elementi di dati, una chiave e un valore, collegati insieme come uno solo. La chiave viene utilizzata come identificatore univoco per il valore da recuperare. Un classico esempio di KVP è il dizionario, dove i vocabolari sono le chiavi e le definizioni corrispondenti sono i valori. Queste coppie, anche se di solito passano inosservate, in realtà vengono utilizzate molto frequentemente nei documenti: domande nei sondaggi come nome, età e prezzi degli articoli nelle fatture sono tutte implicitamente KVP.
Tuttavia, a differenza delle tabelle, i KVP spesso esistono in formati sconosciuti e talvolta sono anche parzialmente scritti a mano. Ad esempio, le chiavi potrebbero essere prestampate in caselle e i valori potrebbero essere scritti a mano durante la compilazione del modulo. Pertanto, trovare le strutture sottostanti per eseguire automaticamente l’estrazione KVP è un processo di ricerca continuo anche per le strutture e i laboratori più avanzati.
Cifre
Infine, è anche molto importante estrarre o acquisire dati dalle figure all'interno di un documento scansionato. Gli indicatori statistici come i grafici a torta e i grafici a barre spesso includono informazioni cruciali per i documenti. Un buon processo di estrazione dei dati dovrebbe essere in grado di dedurre dalle legende e dai numeri per estrarre parzialmente i dati dalle cifre per un ulteriore utilizzo.
Stai cercando di estrarre dati da documenti scansionati? Regala Nanonet™ un giro per una maggiore precisione, maggiore flessibilità, post-elaborazione e un'ampia gamma di integrazioni!
Tecnologie dietro l'estrazione dei dati
L'estrazione dei dati ruota attorno a due processi principali: Riconoscimento ottico dei caratteri (OCR) seguito dall'elaborazione del linguaggio naturale (PNL).
L'estrazione OCR è il processo di conversione delle immagini di testo in testo codificato dalla macchina, mentre quest'ultimo consiste nell'analisi delle parole per dedurne i significati. Spesso accompagnate dall'OCR ci sono altre tecniche di visione artificiale come il rilevamento di box e linee per estrarre i tipi di dati sopra menzionati come tabelle e KVP per un'estrazione più completa.
I miglioramenti fondamentali alla base della pipeline di estrazione dei dati sono strettamente collegati ai progressi nel deep learning che hanno contribuito notevolmente ai campi della visione artificiale e dell’elaborazione del linguaggio naturale (NLP).
Che cos'è il deep learning?
L’apprendimento profondo ha un ruolo importante dietro il clamore dell’era dell’intelligenza artificiale ed è stato costantemente portato in prima linea in numerose applicazioni. Nell'ingegneria tradizionale, il nostro obiettivo è progettare un sistema/funzione che generi un output da un dato input; il deep learning, invece, si affida agli input e agli output per trovare la relazione intermedia che può essere estesa a nuovi dati invisibili attraverso i cosiddetti rete neurale.
Una rete neurale o un percettrone multistrato (MLP), è un'architettura di machine learning ispirata al modo in cui apprende il cervello umano. La rete contiene neuroni, che imitano i neuroni biologici e si “attivano” quando ricevono informazioni diverse. Insiemi di neuroni formano strati e più strati sono impilati insieme per formare una rete per servire agli scopi di previsione di più forme (ad esempio, classificazioni di immagini o riquadri di delimitazione per il rilevamento di oggetti).
Nel campo della visione artificiale, viene ampiamente applicato un tipo di variazione della rete neurale: le reti neurali convoluzionali (CNN). Invece dei livelli tradizionali, una CNN adotta kernel convoluzionali che scorrono attraverso tensori (o vettori ad alta dimensione) per l’estrazione delle caratteristiche. Alla fine, accompagnate dai tradizionali livelli di rete, le CNN hanno avuto molto successo nelle attività relative alle immagini e hanno ulteriormente costituito la base per l'estrazione OCR e il rilevamento di altre funzionalità.
D’altro canto, la PNL fa affidamento su un altro insieme di reti, che si concentra su dati di serie temporali. A differenza delle immagini, in cui un'immagine è indipendente l'una dall'altra, la previsione del testo può essere ampiamente avvantaggiata se vengono prese in considerazione anche le parole precedenti o successive. Negli ultimi anni, una famiglia di reti, vale a dire memorie a breve termine (LSTM), che prende i risultati precedenti come input per prevedere i risultati attuali. Gli LSTM bilaterali sono stati spesso adottati anche per migliorare l'output della previsione, dove venivano considerati sia i risultati precedenti che quelli successivi. Negli ultimi anni, tuttavia, sta iniziando a diffondersi un concetto di trasformatore che utilizza un meccanismo di attenzione grazie alla sua maggiore flessibilità che porta a risultati migliori rispetto alle reti tradizionali che gestiscono serie temporali sequenziali.
Applicazioni dell'estrazione dei dati
L'obiettivo principale dell'estrazione dei dati è convertire i dati da documenti non strutturati a formati strutturati, in cui un recupero estremamente accurato di testo, figure e strutture di dati può essere molto utile per l'analisi numerica e contestuale. Queste analisi possono essere molto utili soprattutto per le aziende:
Affari
Le aziende e le grandi organizzazioni si occupano quotidianamente di migliaia di documenti con formati simili: le grandi banche ricevono numerose applicazioni identiche e i team di ricerca devono analizzare pile di moduli per condurre analisi statistiche. Pertanto, l'automazione della fase iniziale di estrazione dei dati dai documenti riduce significativamente la ridondanza delle risorse umane e consente ai lavoratori di concentrarsi sull'analisi dei dati e sulla revisione delle applicazioni invece di inserire le informazioni.
- Verifica delle applicazioni — Le aziende ricevono tonnellate di domande, scritte a mano o solo tramite moduli di domanda. Nella maggior parte dei casi, queste domande possono essere accompagnate da ID personali a scopo di verifica. I documenti scansionati di identità come passaporti o carte di solito vengono forniti in lotti con formati simili. Pertanto, un estrattore di dati ben scritto può convertire rapidamente i dati (testi, tabelle, figure, KVP) in testi comprensibili dalla macchina, il che potrebbe ridurre sostanzialmente le ore di lavoro su queste attività e concentrarsi sulla selezione dell'applicazione anziché sull'estrazione.
- Riconciliazione dei pagamenti — La riconciliazione dei pagamenti è il processo di confronto degli estratti conto bancari per garantire la corrispondenza dei numeri tra i conti, che ruota fortemente attorno all'estrazione dei dati dai documenti: una questione impegnativa per un'azienda di dimensioni considerevoli e con diverse fonti di flusso di reddito. L'estrazione dei dati può facilitare questo processo e consentire ai dipendenti di concentrarsi su dati errati ed esplorare potenziali eventi fraudolenti sul flusso di cassa.
- Analisi statistica — Il feedback dei clienti o dei partecipanti all'esperimento viene utilizzato da aziende e organizzazioni per migliorare i propri prodotti e servizi e una valutazione completa del feedback richiede solitamente un'analisi statistica. Tuttavia, i dati del sondaggio possono esistere in numerosi formati o nascosti tra testi di vari formati. L'estrazione dei dati potrebbe facilitare il processo evidenziando dati evidenti dai documenti in batch, facilitare il processo di ricerca di processi utili e, in definitiva, aumentare l'efficienza.
- Condivisione dei record precedenti — Dall'assistenza sanitaria al cambio di servizi bancari, le grandi industrie spesso richiedono nuove informazioni sui clienti che potrebbero già esistere altrove. Ad esempio, un paziente che cambia ospedale a causa di un trasloco potrebbe avere cartelle cliniche preesistenti che potrebbero essere utili per il nuovo ospedale. In questi casi, un buon software di estrazione dati torna utile poiché tutto ciò che serve è che l'individuo porti una cronologia scansionata dei documenti al nuovo ospedale affinché possa inserire automaticamente tutte le informazioni. Ciò non solo sarebbe conveniente, ma potrebbe anche evitare rischi estesi, soprattutto nel settore sanitario, di trascurare importanti cartelle cliniche dei pazienti.
Stai cercando di estrarre dati da documenti scansionati? Regala Nanonet™ un giro per una maggiore precisione, maggiore flessibilità, post-elaborazione e un'ampia gamma di integrazioni!
Tutorial
Per fornire una visione più chiara su come eseguire l'estrazione dei dati, mostriamo due serie di metodi per eseguire l'estrazione dei dati dalla scansione di documenti.
Costruire da zero
È possibile creare un semplice motore OCR per l'estrazione dei dati tramite il motore PyTesseract come segue:
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')
Per ulteriori informazioni sul codice, puoi controllare il loro ufficiale documentazione.
In parole semplici, il codice estrae dati come testi e riquadri di delimitazione da una determinata immagine. Sebbene abbastanza utile, il motore non è potente quanto quelli forniti da soluzioni avanzate a causa della loro notevole potenza di calcolo per l'addestramento.
Utilizzo dell'API dei documenti di 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'])
In definitiva, l'intelligenza artificiale dei documenti di Google consente di estrarre numerose informazioni dai documenti con elevata precisione. Inoltre, il servizio è offerto anche per usi specifici, inclusa l'estrazione di testo sia per immagini normali che in the wild.
Si prega di fare riferimento a qui per saperne di più.
Soluzioni attuali che offrono l'estrazione dei dati
Oltre alle grandi aziende dotate di API per l'estrazione dei dati dei documenti, esistono diverse soluzioni che garantiscono un'elevata precisione PDF OCR Servizi. Presentiamo diverse opzioni di PDF OCR specializzate in diversi aspetti, nonché alcuni recenti prototipi di ricerca che sembrano fornire risultati promettenti*:
*Nota a margine: esistono più servizi OCR mirati ad attività come le immagini in natura. Abbiamo saltato questi servizi poiché attualmente ci stiamo concentrando solo sulla lettura di documenti PDF.
- API di Google — Essendo uno dei maggiori fornitori di servizi online, Google offre risultati sorprendenti nell'estrazione di documenti con la sua pionieristica tecnologia di visione artificiale. È possibile utilizzare i loro servizi gratuitamente se l'utilizzo è piuttosto basso, ma il prezzo aumenta con l'aumento delle chiamate API.
- Lettore profondo — Deep Reader è un lavoro di ricerca pubblicato alla conferenza ACCV 2019. Incorpora più architetture di rete all'avanguardia per eseguire attività come corrispondenza dei documenti, recupero del testo e rimozione del rumore dalle immagini. Esistono funzionalità aggiuntive come tabelle ed estrazione di coppie chiave-valore che consentono di recuperare e salvare i dati in modo organizzato.
- Nanonets ™ — Grazie a un team di deep learning altamente qualificato, Nanonets™ PDF OCR è completamente indipendente da modelli e regole. Pertanto, Nanonets™ non solo può funzionare su tipi specifici di PDF, ma può anche essere applicato a qualsiasi tipo di documento per il recupero del testo.
Stai cercando di estrarre dati da documenti scansionati? Regala Nanonet™ un giro per una maggiore precisione, maggiore flessibilità, post-elaborazione e un'ampia gamma di integrazioni!
Conclusione
In conclusione, questo articolo presenta una spiegazione approfondita sull'estrazione dei dati dai documenti scansionati, comprese le sfide che si celano dietro di essa e la tecnologia richiesta per questo processo.
Vengono presentati due tutorial di metodi diversi e vengono presentate anche le soluzioni attuali che lo offrono immediatamente come riferimento.
- 2019
- Chi siamo
- Assoluta
- Il mio account
- preciso
- Raggiungere
- aggiunta
- aggiuntivo
- Avanzate
- avanzamenti
- AI
- Algoritmi
- Tutti
- già
- alternativa
- analizzare
- .
- Un altro
- api
- API
- Applicazioni
- applicazioni
- approccio
- architettura
- in giro
- articolo
- artificiale
- intelligenza artificiale
- attenzione
- Automazione
- disponibile
- AWS
- sfondo
- Banca
- Banche
- base
- essendo
- MIGLIORE
- Al di là di
- Maggiore
- sistema
- Scatola
- costruire
- affari
- aziende
- Carte
- casi
- Contanti
- flusso di cassa
- certo
- sfide
- impegnativo
- Grafici
- Procedi all'acquisto
- classico
- Cloud
- CNN
- codice
- Venire
- Uncommon
- Aziende
- azienda
- completamente
- completando
- globale
- calcolo
- computer
- concetto
- Convegno
- fiducia
- collegato
- costantemente
- contiene
- contribuito
- comodità
- Comodo
- conversioni
- Nucleo
- Corporazioni
- Corrispondente
- potuto
- cruciale
- Corrente
- Attualmente
- cliente
- Clienti
- dati
- elaborazione dati
- memorizzazione dei dati
- affare
- descritta
- Design
- dettaglio
- rivelazione
- diverso
- difficile
- digitale
- documenti
- facilmente
- efficienza
- dipendenti
- motore
- Ingegneria
- particolarmente
- essenzialmente
- stime
- eccetera
- valutazione
- eventi
- esempio
- Tranne
- esperimento
- esplora
- estensivo
- estratti
- famiglia
- caratteristica
- Caratteristiche
- feedback
- campi
- ricerca
- Nome
- Flessibilità
- flusso
- Focus
- concentrato
- si concentra
- messa a fuoco
- i seguenti
- prima linea
- modulo
- formato
- forme
- Gratis
- Francese
- Adempiere
- pieno
- ulteriormente
- scopo
- buono
- maggiore
- molto
- Manovrabilità
- mani su
- capo
- assistenza sanitaria
- settore sanitario
- utile
- qui
- Alta
- superiore
- vivamente
- storia
- ospedali
- Come
- Tutorial
- Tuttavia
- HTTPS
- umano
- Risorse umane
- Gli esseri umani
- Immagine
- importanza
- importante
- competenze
- includere
- Compreso
- Reddito
- Aumento
- individuale
- individui
- industrie
- industria
- informazioni
- ingresso
- fonte di ispirazione
- Intelligence
- problema
- IT
- Lavoro
- Le
- Tasti
- Labs
- Lingua
- Le Lingue
- grandi
- principale
- IMPARARE
- apprendimento
- linea
- Lista
- Lunghi
- macchina
- machine learning
- maggiore
- Maggioranza
- uomo
- modo
- Rappresentanza
- partita
- corrispondenza
- medicale
- metodi
- Scopri di più
- maggior parte
- Più popolare
- in movimento
- multiplo
- cioè
- Naturale
- esigenze
- Rete
- reti
- normale
- numeri
- numerose
- offrire
- offerto
- offerta
- offerte
- Offerte
- ufficiale
- in corso
- online
- operazione
- Opzioni
- minimo
- organizzazioni
- Organizzato
- Altro
- proprietari
- partecipanti
- Pagamento
- esecuzione
- periodo
- cronologia
- pionieristico
- Popolare
- potenziale
- energia
- predire
- predizione
- presenti
- piuttosto
- precedente
- prezzo
- processi
- i processi
- lavorazione
- Prodotti
- Programma
- Programmi
- promettente
- fornire
- fornitura
- fini
- rapidamente
- RE
- Lettore
- Lettura
- ricevere
- riconciliazione
- record
- ridurre
- per quanto riguarda
- rapporto
- richiesta
- richiedere
- necessario
- richiede
- riparazioni
- Risorse
- risposta
- Risultati
- ritorno
- rischi
- scansione
- secondo
- servizio
- Servizi
- set
- alcuni
- Corti
- a breve scadenza
- simile
- Un'espansione
- da
- Taglia
- Software
- solido
- Soluzioni
- alcuni
- specializzata
- Spin
- state-of-the-art
- dichiarazioni
- statistiche
- conservazione
- ruscello
- forte
- strutturato
- sostanziale
- di successo
- supportato
- Indagine
- mirata
- task
- team
- tecniche
- Tecnologie
- Tecnologia
- test
- il mondo
- perciò
- migliaia
- Attraverso
- tempo
- volte
- insieme
- tonnellate
- verso
- tradizionale
- Training
- esercitazioni
- Tipi di
- capire
- unico
- uso
- generalmente
- APPREZZIAMO
- vario
- Convalida
- Visualizza
- visione
- se
- while
- entro
- senza
- parole
- Lavora
- lavoratori
- mondo
- sarebbe
- XML
- anni