top of page

Come estrarre testo da un'immagine utilizzando Python e Keras-OCR

Sebbene molte informazioni digitali siano disponibili per il consumo da parte delle aziende, i dipendenti devono comunque gestire fatture, volantini, brochure e moduli stampati in copie cartacee o immagini di testo salvate nei formati .jpg,.png o .pdf. La gestione manuale di tali dati in questi file è noiosa, dispendiosa in termini di tempo e soggetta a errori manuali. Tali file non possono essere modificati direttamente ed è necessario renderli prima modificabili o disporre di uno strumento in grado di leggere il contenuto dell'immagine ed estrarlo per un'ulteriore elaborazione. Tutti dobbiamo aver utilizzato strumenti online o offline per convertire le immagini in formati di testo modificabili per semplificare le cose. Ciò è possibile utilizzando l'OCR o il riconoscimento ottico dei caratteri.


Come estrarre testo da un'immagine utilizzando Python e Keras-OCR
Come estrarre testo da un'immagine utilizzando Python e Keras-OCR

Cos’è l’OCR (Riconoscimento Ottico dei Caratteri)?

Il riconoscimento ottico dei caratteri (OCR) è il processo che converte un'immagine di testo in un formato di testo leggibile dalla macchina. Ad esempio, se si esegue la scansione di un modulo o di una ricevuta, il computer salva la scansione come file immagine. Non sarà possibile utilizzare un editor di testo per modificare, cercare o contare le parole nel file immagine. Tuttavia, è possibile utilizzare l'OCR per convertire l'immagine in un documento di testo con i suoi contenuti archiviati come dati di testo.

Perché l’OCR è importante?

La maggior parte dei flussi di lavoro delle aziende riguarda la ricezione di informazioni da media stampati. Moduli cartacei, fatture, documenti legali scansionati e contratti stampati sono tutti parte dei processi aziendali. Questi ampi volumi cartacei richiedono tempo e spazio per essere archiviati e gestiti. Sebbene la gestione dei documenti paperless sia la strada da percorrere, la scansione dei documenti in immagini crea delle difficoltà. Il processo richiede un intervento manuale e può essere impegnativo e lento.

Inoltre, la digitalizzazione di questi contenuti di documenti crea file di immagini con il testo nascosto al suo interno. Il testo nelle immagini non può essere elaborato dal software di elaborazione di testi allo stesso modo dei documenti di testo. La tecnologia OCR risolve il problema convertendo immagini di testo in dati di testo che possono essere analizzati da altri software aziendali. Si possono dunque utilizzare i dati per eseguire analisi dei dati, semplificare le operazioni, automatizzare i processi e migliorare la produttività.

Come funziona l’OCR?

Il meccanismo OCR o software OCR funziona con i seguenti passaggi:

1. Acquisizione dell’immagine

Uno scanner legge i documenti e li converte in dati binari. Il software OCR analizza l’immagine scansionata e classifica le aree chiare come background e le aree scure come testo.

2. Pre-elaborazione

Il software OCR prima pulisce l’immagine e rimuove gli errori per prepararla alla lettura. Ecco alcune delle tecniche di pulizia:

  • Leggero raddrizzamento o ribaltamento del documento scansionato per sistemare i problemi di allineamento durante la scansione.

  • Smacchiatura o rimozione di qualsiasi chiazza sull’immagine digitale o smussatura dei bordi delle immagini di testo.

  • Eliminazione delle caselle e delle linee nell’immagine.

  • Riconoscimento dello script per la tecnologia OCR multi-lingua

3. Riconoscimento testuale

I due tipi principali di algoritmi OCR o processi software che un software OCR utilizza per il riconoscimento testuale sono detti pattern matching ed estrazione delle caratteristiche.

4. Pattern matching

Il pattern matching funziona isolando un'immagine di carattere, chiamata glifo, e confrontandola con un glifo simile archiviato. Il riconoscimento del pattern funziona solo se il glifo archiviato ha un font e una dimensione simile al glifo di input. Questo metodo funziona bene con le immagini scansionate di documenti che sono stati digitati in un font conosciuto.

5. Estrazione delle caratteristiche

L’estrazione delle caratteristiche scompone o decompone i glifi in caratteristiche come linee, cerchi chiusi, direzioni di linea e intersezioni di linea. Quindi utilizza queste caratteristiche per trovare l'abbinamento migliore o più vicino tra i vari glifi archiviati.

6. Post elaborazione

Dopo l’analisi, il sistema converte i dati testuali estratti in un file computerizzato. Alcuni sistemi OCR possono creare file PDF annotati che includono sia la prima che la seconda versione del documento scansionato.



Quali sono le tipologie di OCR?

I data scientist classificano diverse tipologie di tecnologie OCR basati sugli usi e le applicazioni. Ecco alcuni esempi:

Software di riconoscimento ottico dei caratteri (OCR) semplice

Un meccanismo OCR semplice funziona archiviando diversi font e pattern di immagini testuali sotto forma di modelli. Il software OCR utilizza algoritmi pattern-matching per confrontare immagini testuali, carattere per carattere, con il proprio database interno. Se il sistema abbina il testo parola per parola, è chiamato riconoscimento ottico delle parole. Questa soluzione ha dei limiti perché esistono font e calligrafie infiniti e ogni singolo carattere non può essere acquisito e archiviato nel database.

Software di riconoscimento dei caratteri intelligente

I moderni sistemi OCR utilizzano la tecnologia di riconoscimento intelligente dei caratteri (ICR) per leggere i testi allo stesso modo degli esseri umani. Utilizzano metodi avanzati che addestrano le macchine a comportarsi come gli umani attraverso l’utilizzo di software di machine learning. Un sistema di machine learning chiamato rete neurale analizza i testi a più livelli, processando ripetutamente l’immagine. Cerca diversi attributi dell’immagine, come curve, linee, intersezioni, cerchi, e combina i risultati di tutti questi livelli diversi di analisi per ottenere il risultato finale. Sebbene l’ICR elabori solitamente le immagini un carattere alla volta, il processo è veloce e restituisce risultati in pochi secondi.

Riconoscimento intelligente delle parole

Il sistema di riconoscimento intelligente delle parole funziona con gli stessi principi dell’ICR, ma elabora immagini di intere parole invece di pre-elaborare le immagini in caratteri.

Riconoscimento ottico dei segni

Il riconoscimento ottico dei segni identifica loghi, filigrane e altri simboli di testo in un documento.



Quali sono i vantaggi dell'OCR?

Di seguito sono illustrati i vantaggi maggiori della tecnologia OCR: Testo ricercabile

Le aziende possono convertire i propri documenti esistenti e nuovi in un archivio di conoscenze interamente ricercabile. Possono anche elaborare i database di testo automaticamente, utilizzando software di analisi dei dati per un'ulteriore elaborazione della conoscenza.

Efficienza operativa

Si può migliorare l’efficienza utilizzando il software OCR per integrare automaticamente flussi di lavoro di documenti e flussi di lavoro digitali all’interno della propria azienda. Ecco alcuni esempi di cosa può fare un software OCR:

  • Scansionare moduli riempiti a mano per verifiche automatiche, revisioni, editing e analisi. Ciò fa risparmiare il tempo necessario per l’elaborazione manuale del documento e l’inserimento dei dati.

  • Trovare i documenti richiesti ricercando rapidamente un termine nel database così da non dover scorrere manualmente attraverso i file di una finestra.

  • Convertire appunti scritti a mano in testi editabili e documenti.

Soluzioni di intelligenza artificiale

L'OCR è spesso parte di altre soluzioni di intelligenza artificiale che le aziende possono implementare. Ad esempio, scansiona e legge targhe e cartelli stradali nelle auto a guida autonoma, individua i loghi dei brand nei post sui social media o identifica l’imballaggio dei prodotti nelle immagini pubblicitarie. Tale tecnologia di intelligenza artificiale aiuta le aziende a prendere decisioni di marketing e operative migliori in grado di ridurre le spese e ottimizzare l’esperienza cliente.



Che cos'è Keras OCR?

L'acronimo 'OCR' sta per Optical Character Recognition. Comunemente noto come "riconoscimento del testo", è una tecnica popolare per estrarre il testo dalle immagini. Un programma OCR è uno strumento che estrae e riutilizza i dati da documenti scansionati, immagini della fotocamera e pdf di sole immagini. Un sistema OCR utilizza una combinazione di hardware, come scanner ottici e software in grado di elaborare le immagini. Per l'estrazione del testo, gli strumenti OCR (librerie OCR) utilizzano diversi algoritmi macchina per il riconoscimento dei modelli per identificare la presenza e il layout del testo in un file immagine.


Questi strumenti sono addestrati per identificare le forme di caratteri o numeri su un'immagine per riconoscere il testo nell'immagine. Successivamente questi possono ricostruire il testo estratto in un formato leggibile dalla macchina. Per questo motivo, il testo estratto può essere selezionato, modificato o incollato come testo normale. In un senso più semplice, l'OCR converte i dati digitali in formato immagine in documenti di elaborazione testi modificabili. Per fortuna, molti strumenti gratuiti e commerciali (offline e online) consentono alla tecnologia OCR di estrarre testo dalle immagini.


Attualmente, gli strumenti OCR sono piuttosto avanzati grazie all'implementazione di tecniche come il riconoscimento intelligente dei caratteri (ICR), in grado di identificare lingue, stili di scrittura, ecc.


In questo articolo discuteremo dell'OCR, dei vantaggi dell'OCR, del motivo per cui abbiamo bisogno dell'estrazione di testo dai documenti, delle librerie OCR disponibili in Python e di un esempio di estrazione di testo da un'immagine utilizzando la libreria Keras-OCR in Python.


Perché abbiamo bisogno di estrarre il testo dalle immagini?

Come accennato nella sezione precedente, il vantaggio principale della tecnologia OCR è che automatizza le attività di immissione dei dati manuali e dispendiose in termini di tempo. Questo perché utilizzando l'OCR possiamo creare documenti digitali che possono essere modificati e archiviati in base alle esigenze. Uno strumento OCR elabora l'immagine per identificare il testo e crea uno strato di testo nascosto dietro l'immagine. Questo livello aggiuntivo può essere facilmente letto da un computer, rendendo così l'immagine riconoscibile e ricercabile. Questo è fondamentale per le aziende in quanto hanno a che fare quotidianamente con media e contenuti. L'OCR offre anche i seguenti vantaggi:

  • Elaborazione e conversione automatizzate e più rapide di documenti cartacei in formati digitali che accelerano i flussi di lavoro

  • Risparmia tempo e riduce la portata degli errori manuali

  • Elimina il requisito per l'immissione manuale dei dati

  • La riduzione dell'immissione manuale dei dati indica una riduzione dei costi complessivi per l'azienda

  • Risparmia carta e spazio di archiviazione poiché più dati possono essere convertiti in formato elettronico

Un tipico esempio di domanda OCR può essere visto nell'elaborazione del modulo di richiesta di assicurazione medica. Con l'OCR è più facile confrontare il sinistro assicurativo con i dati dell'assicurato. I sistemi dotati di OCR possono segnalare eventuali anomalie nei dati ai team interessati e prevenire possibili frodi.


Anche se l'OCR può estrarre facilmente il testo dalle immagini, a volte deve affrontare delle sfide. Ciò accade quando il testo è disponibile in immagini che rappresentano ambienti naturali, distorsioni geometriche, troppo rumore o sfondi disordinati e complessi e caratteri diversi da quelli normali. Tuttavia, la tecnologia OCR ha un potenziale sempre più forte nelle applicazioni di deep learning per creare strumenti per leggere le targhe dei veicoli, digitalizzare fatture o menu, scansionare carte d'identità, confrontare moduli di richiesta e così via.


Librerie Python OCR disponibili

Ora che abbiamo compreso l'OCR e il suo utilizzo, diamo un'occhiata ad alcune librerie Python open source comunemente utilizzate per il riconoscimento e l'estrazione del testo.

  1. Pytesseract – Chiamato anche "Python-tesseract", è uno strumento OCR per Python che funziona come wrapper per il motore Tesseract-OCR. Questa libreria può leggere tutti i tipi di immagine (.jpeg,.png, .gif, .bmp, .tiff, ecc.) e riconoscere il testo nelle immagini. Quindi, è comunemente visto nei casi d'uso per la conversione da immagine a testo OCR.

  2. EasyOCR – Un'altra libreria Python abbastanza popolare è EasyOCR. Come suggerisce il nome, la libreria è progettata per i principianti ed è facile da usare. È un modulo Python OCR generale che supporta più di 80 lingue e può leggere scene naturali e testo denso nei documenti. Una volta installato, gli utenti devono inizializzare solo due classi: una reader() e un'altra tramite la funzione readtext() per leggere il testo nell'immagine.

  3. Keras-OCR – Questa è una libreria open source altrettanto potente come le due librerie sopra menzionate. La libreria Keras-OCR fornisce un'API di alto livello e una pipeline di formazione end-to-end per creare nuovi modelli OCR. Nella prossima sezione, vedremo un tutorial passo-passo che utilizza Keras-OCR per estrarre il testo da più immagini. Puoi trovare la documentazione qui .


Estrarre testo da un'immagine utilizzando Python e Keras-OCR

In questa sezione, costruiremo una pipeline Keras-OCR per estrarre il testo da alcune immagini di esempio. Sto usando Google Colab per questo tutorial.

Iniziamo installando la libreria keras-ocr (supporta Python >= 3.6 e TensorFlow >= 2.0.0) usando il seguente codice –

!pip install -q keras-ocr

Puoi anche utilizzare il comando seguente per installare il pacchetto dalla posizione principale.

pip install git+https://github.com/faustomorales/keras-ocr.git#egg=keras-ocr

Dobbiamo importare matplotlib e la libreria Keras-ocr appena installata per elaborare le immagini ed estrarre il testo da esse.

import keras_ocr
import matplotlib.pyplot as plt

Impostiamo una pipeline con Keras-ocr. Il modello è un modello di estrazione di testo pre-addestrato caricato con pesi pre-addestrati per il rilevatore e il riconoscitore.

pipeline = keras_ocr.pipeline.Pipeline()

Useremo due immagini per testare le capacità della libreria Keras-ocr. Puoi provare lo stesso con qualsiasi altra immagine con testo a tua scelta.

# Leggi le immagini dal percorso della cartella all'oggetto 
images = [
    keras_ocr.tools.read(img) for img in ['/content/Image1.png',
                                          '/content/Image2.png',]
]

Ecco le due immagini che abbiamo usato per questo tutorial sulla libreria Keras-ocr. Uno è un'immagine semplice con testo che utilizza un carattere in stile scrittura a mano e l'altro è un'immagine contenente testo.

Come estrarre testo da un'immagine utilizzando Python e Keras-OCR
Come estrarre testo da un'immagine utilizzando Python e Keras-OCR

Ora, eseguiamo il riconoscimento della pipeline sulle immagini e facciamo previsioni sul testo in queste immagini.

# genera previsioni di testo dalle immagini
prediction_groups = pipeline.recognize(images)

Possiamo tracciare le previsioni dal modello usando il codice seguente:

# traccia le previsioni del testo
fig, axs = plt.subplots(nrows=len(images), figsize=(10, 20))
for ax, image, predictions in zip(axs, images, prediction_groups):
    keras_ocr.tools.drawAnnotations(image=image, 
                                    predictions=predictions, 
                                    ax=ax)

Otteniamo l'output previsto :

Come estrarre testo da un'immagine utilizzando Python e Keras-OCR
Come estrarre testo da un'immagine utilizzando Python e Keras-OCR

La libreria Keras-OCR ha funzionato bene su entrambe le immagini. È stato in grado di identificare correttamente la posizione del testo ed estrarre le parole dalle immagini di input.


Possiamo anche stampare il testo identificato dalle immagini usando il seguente codice

predicted_image = prediction_groups[1]
for text, box in predicted_image:
    print(text)

Se necessario, il testo sopra riconosciuto dalle immagini sopra può essere convertito in formato .csv o .txt per un ulteriore utilizzo.


Conclusione

In questo tutorial abbiamo discusso dell'OCR, dei suoi vantaggi per le aziende per l'elaborazione delle immagini e delle diverse librerie OCR open source in Python. Successivamente, abbiamo imparato come estrarre il testo da più immagini utilizzando la libreria Keras-OCR. Ecco alcuni punti chiave dell'articolo

  • L'OCR ha semplificato l'elaborazione di immagini con testo e la loro conversione in documenti modificabili.

  • Può ridurre il lavoro di immissione manuale dei dati, accelerando i flussi di lavoro aziendali.

  • Diversi strumenti open source e commerciali utilizzano la tecnologia OCR per elaborare immagini e documenti più velocemente.

  • Keras-OCR è una libreria estremamente accurata per estrarre testo con poche righe di codice. È una buona opzione per i progetti di estrazione di testo di immagini open source.

Questo è tutto per questo tutorial. Prova la libreria Keras-ocr per vedere con quanta precisione può identificare il testo nelle tue immagini.

PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page