Introduzione al riconoscimento ottico dei caratteri [OCR] per principianti

Pubblicato: 2021-02-08

L'OCR o il riconoscimento ottico dei caratteri (OCR) viene utilizzato per estrarre informazioni dalle immagini di fatture e ricevute o da qualsiasi cosa su cui sia scritto del contenuto. Per sviluppare questa soluzione, OpenCV può essere utilizzato per elaborare le immagini che possono essere ulteriormente inserite in un motore OCR Tesseract in grado di estrarre il testo da quelle immagini.

Tuttavia, il processo di rimozione del testo può essere efficiente solo se l'immagine è chiara e i testi sono sufficientemente visibili. Nelle applicazioni di vendita al dettaglio, per estrarre testi dalle fatture, la fattura può essere inondata di filigrane, oppure può esserci un'ombra sulla fattura che ostacola l'acquisizione delle informazioni.

Anche l'acquisizione di informazioni da pagine di testo più lunghe può essere un compito arduo. Per affrontare questi problemi, è prudente che nella pipeline di estrazione delle informazioni ci sia un posto dal modulo di elaborazione delle immagini che si occupi delle suddette difficoltà.

Comprende diversi sottoprocessi, cioè la localizzazione dei testi, la segmentazione dei caratteri e il riconoscimento di quei caratteri. Sebbene pochi sistemi gestiscano senza segmentazione. Tali metodi vengono prodotti utilizzando diverse procedure, come l'applicazione del metodo dei minimi quadrati per ridurre il tasso di errore e supportare le macchine vettoriali per abbinare i caratteri.

Tuttavia, spesso per identificare l'occupazione di un personaggio in un'immagine, vengono utilizzate le reti neurali convoluzionali (CNN). I testi possono essere visualizzati come una sequenza coerente di caratteri. Rilevare e identificare questi caratteri con maggiore precisione è una difficoltà che può essere risolta utilizzando un tipo speciale di rete neurale, vale a dire, reti neurali ricorrenti (RNN) e memoria a lungo termine (LSTM).

Le parole vengono raccolte adattando i testi in blob. Queste righe e regioni sono inoltre esaminate per testo equivalente. Le righe di testo sono divise in parole solo in base al tipo di spaziatura tra di loro. Il metodo di identificazione è suddiviso in due fasi. In primo luogo, ogni parola è identificata. Ogni parola perfetta o identificata correttamente viene inoltre passata a un classificatore adattivo come dati di addestramento.

L'immagine ricevuta come input viene esaminata ed elaborata in parti. Il testo viene inserito riga per riga nel modello LSTM. Tesseract, che è un motore di riconoscimento ottico dei caratteri, è disponibile per vari sistemi operativi. Utilizza una combinazione di architettura CNN e LSTM per identificare e derivare con precisione i testi dai dati dell'immagine. Tuttavia, le immagini con rumore o ombre ostacolano la precisione di recupero.

Per ridurre al minimo il rumore o migliorare la qualità dell'immagine, è possibile eseguire la preelaborazione dell'immagine utilizzando la libreria OpenCV. Tali fasi di pre-elaborazione possono comprendere la scoperta della ROI o della regione di interesse, il ritaglio dell'immagine, la rimozione del rumore (o delle regioni indesiderate), la soglia, la dilatazione e l'erosione, il rilevamento di contorni o bordi. Dopo che questi passaggi sono stati completati, i motori OCR possono leggere l'immagine e districarne perfettamente i testi pertinenti.

Sommario

Strumenti utilizzati

1. Apri CV

OpenCV è una libreria originariamente compatibile con i linguaggi C/C++ e python. Viene comunemente utilizzato per l'elaborazione di dati con campioni di immagini. Nella libreria è presente una pletora di funzioni utili predefinite che implementa le trasformazioni necessarie sui campioni di immagini. Tutte le funzioni di cui sopra come dilatazione, erosione, affettatura, rilevamento dei bordi e molte altre possono essere eseguite facilmente utilizzando questa libreria.

2. Motore OCR Tesseract

Rilasciato da Google, è una libreria open source ampiamente utilizzata per il riconoscimento del testo. Può essere utilizzato per rilevare e identificare testi in varie lingue. L'elaborazione è abbastanza veloce e fornisce l'output testuale di un'immagine quasi immediatamente. Molte applicazioni di scansione sfruttano questa libreria e si affidano alle sue tecniche di estrazione.

Passaggi coinvolti nel processo di estrazione del testo

(1) In primo luogo, al campione di immagine disturbata in ingresso vengono applicate le possibili tecniche di elaborazione delle immagini come il rilevamento del contorno, la rimozione del rumore e le funzioni di erosione e dilatazione.

(2) Dopo questo passaggio, viene eseguita la rimozione di filigrane e ombre dal conto.

(3) Inoltre, il conto è suddiviso in parti.

(4) Le parti segmentate vengono passate attraverso il motore Tesseract OCR per ottenere il testo completo.

(5) Infine, utilizzando Regex, otteniamo tutte le informazioni vitali come l'importo totale, la data di acquisto e le spese per articolo.

lasciatemi parlare di un'immagine specifica con testi – fatture e bollette. Di solito hanno filigrane su di loro, la maggior parte della società che emette le bollette. Come accennato in precedenza, queste filigrane sono impedimenti nel modo di un'estrazione efficiente del testo. Spesso, queste stesse filigrane contengono il testo.

Questi possono essere considerati rumori poiché il motore Tesseract riconosce testi di ogni dimensione in una riga. Come le filigrane, anche le ombre inibiscono la precisione del motore per estrarre i testi in modo efficiente. Le ombre vengono rimosse migliorando il contrasto e la luminosità dell'immagine.

Per le immagini che hanno adesivi o filigrane, viene eseguito un processo in più fasi. Il processo prevede la conversione di un'immagine in scala di grigi, l'applicazione di trasformazioni morfologiche, l'applicazione della soglia (può essere un'inversione binaria o una trasformazione otsu), l'estrazione dei pixel più scuri nella regione più scura e, infine, l'incollaggio dei pixel più scuri nella regione della filigrana. Tornando al processo di rimozione delle ombre.

In primo luogo, la dilatazione viene applicata all'immagine in scala di grigi. Sopra questo, un blu medio con un kernel appropriato sopprime il testo. L'output di questo passaggio è un'immagine che contiene porzioni di ombre e qualsiasi altro scolorimento presente. Ora viene calcolata una semplice operazione di differenza tra l'immagine originale e l'immagine ottenuta. Infine, dopo aver applicato la soglia, otteniamo un'immagine senza ombre.

Riconoscimento ed estrazione del testo

Un modello di rete neurale convoluzionale può essere costruito e addestrato sul testo stampato che si trova nelle immagini. Il modello può inoltre essere utilizzato per rilevare il testo da altre immagini simili con lo stesso carattere. Un motore Tesseract OCR viene utilizzato per recuperare il testo dalle immagini che sono state elaborate utilizzando gli algoritmi di visione artificiale.

Per il riconoscimento ottico dei caratteri, dobbiamo eseguire la localizzazione del testo, seguita dalla segmentazione dei caratteri e quindi dal riconoscimento dei caratteri. Tutti questi passaggi vengono eseguiti dal Tesseract OCR. Il motore Tesseract OCR si rivela estremamente accurato se utilizzato su testo stampato piuttosto che su testo scritto a mano.

Ottenere informazioni rilevanti

Parlando in particolare delle fatture, da tutto il testo estratto, è possibile ottenere facilmente informazioni vitali come la data di acquisto, l'importo totale, ecc. utilizzando più espressioni regolari. L'importo totale che viene impresso sulla fattura può essere estratto applicando espressioni regolari poiché solitamente compare alla fine della fattura. Molte di queste informazioni utili possono essere archiviate in base alle loro date in modo che siano facilmente accessibili.

Precisione

La precisione per il recupero del testo può essere definita come il rapporto tra il numero corretto di informazioni che si ottiene dal Tesseract OCR e che sono già presenti in fattura al numero cumulativo di parole effettivamente presenti nell'immagine testuale. Una maggiore precisione significa una maggiore efficienza delle tecniche di pre-elaborazione e la capacità del Tesseract OCR di estrarre informazioni.

Cosa succede dopo?

Se sei interessato a saperne di più sull'apprendimento automatico, dai un'occhiata al Diploma PG di IIIT-B e upGrad in Machine Learning e AI, progettato per i professionisti che lavorano e offre oltre 450 ore di formazione rigorosa, oltre 30 casi di studio e incarichi, IIIT- B Stato di ex alunni, oltre 5 progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Impara il corso ML dalle migliori università del mondo. Guadagna master, Executive PGP o programmi di certificazione avanzati per accelerare la tua carriera.

Guida la rivoluzione tecnologica guidata dall'intelligenza artificiale

Richiedi il programma di certificazione avanzato in Machine Learning e NLP