Immagine in testo (OCR): come funziona e come ottenere un testo pulito

Aggiornato:

L’OCR, riconoscimento ottico dei caratteri, trasforma l’immagine di un testo in testo da copiare, cercare e modificare. È ciò che legge lo screenshot di un messaggio di errore, la foto di una lettera o un contratto scansionato. La maggior parte dei suoi errori viene dall’immagine, non dal motore: qualche minuto dedicato alla foto di solito fa risparmiare più tempo che correggere il risultato.

Come l’OCR legge un’immagine

Tesseract, il motore open source dietro la maggior parte degli strumenti OCR gratuiti, lavora in tre passi. Prima trasforma l’immagine in bianco e nero, decidendo per ogni pixel se è inchiostro o carta. Poi trova i blocchi, le colonne e le righe di testo. Infine, dalla versione 4.00, una rete neurale legge ogni riga intera in una volta, non lettera per lettera, e i dati della lingua la aiutano a scegliere tra forme simili.

Ogni passo può sbagliare a modo suo: un’ombra sulla pagina rovina il bianco e nero, una foto storta rovina le righe e la lingua sbagliata rovina le lettere.

Immagine in testo (OCR)

Cosa conta di più

Problemi comuni e cosa fare

Cosa vediCosa fare
Lettere mancanti o spezzateFai la foto con luce uniforme, senza ombre; aumenta il contrasto o scansiona a 300 dpi
Righe mescolate o in disordineRaddrizza l’immagine; per scontrini e tabelle leggi riga per riga
Segni senza senso sui bordiRitaglia i bordi scuri dello scanner lasciando un sottile margine bianco
Accenti persiScegli la lingua del testo prima di leggere
Testo chiaro su fondo scuro letto maleInverti prima i colori: il motore si aspetta testo scuro su fondo chiaro
0 e O, 1 e l, 5 e S confusiControlla a occhio codici, importi e nomi: nessuna parola aiuta il motore a indovinare

Gli errori nei numeri sono i più gravi, perché niente nel testo li tradisce. Confronta sempre importi, date e numeri di riferimento con l’immagine.

Screenshot, foto e scansioni

Uno screenshot è il caso facile: nitido, dritto e con luce uniforme. Il suo unico problema è il testo piccolo delle interfacce, che lo strumento di nTools ingrandisce prima di leggere. La foto di una pagina porta i casi difficili: prospettiva, ombre, sfocatura e sfondo carico. Una scansione con scanner piano a 300 dpi è la fonte migliore per i documenti lunghi.

PDF scansionati

Un PDF nato da una scansione è un insieme di immagini: il testo non si può selezionare, una ricerca non trova nulla e un lettore di schermo non ha niente da leggere. Le linee guida per l’accessibilità del W3C (WCAG) trattano quel PDF come immagini di testo e raccomandano di applicare l’OCR e poi controllare il testo riconosciuto e il suo ordine di lettura. Se puoi selezionare il testo di un PDF, è già testo, e copiarlo è più preciso di qualsiasi OCR.

PDF in Word legge le pagine scansionate con l’OCR e restituisce un documento modificabile; puoi anche trasformare le pagine in immagini e leggerle in Immagine in testo.

PDF in Word

Dove va l’immagine

Molti servizi OCR caricano l’immagine su un server. Tesseract può anche funzionare dentro il browser, compilato in WebAssembly: così funziona lo strumento di nTools, quindi l’immagine e il testo restano sul tuo dispositivo. Il browser scarica solo il motore e i dati della lingua scelta.

Domande frequenti

L’OCR sa leggere la scrittura a mano?

Male. Tesseract è addestrato sul testo stampato; uno stampatello curato a volte funziona, la scrittura normale no. Per la scrittura a mano servono motori addestrati apposta.

Quanto è preciso l’OCR?

Su una pagina stampata pulita scansionata a 300 dpi quasi ogni carattere è giusto. Foto, testo piccolo e caratteri insoliti portano più errori. La confidenza mostrata dallo strumento è una stima del motore stesso, un segnale d’allarme più che una garanzia.

Perché 0 e O, o 1 e l, vengono confusi?

In molti caratteri hanno forme quasi uguali. Nelle parole normali i dati della lingua aiutano a scegliere; in codici, numeri di serie e password no, quindi controllali carattere per carattere.

Quali lingue sa leggere?

Per Tesseract esistono dati per più di 100 lingue. Lo strumento di nTools offre inglese, spagnolo, francese, tedesco, italiano e portoghese; scegli la lingua prima di leggere, perché cambia le lettere che il motore si aspetta.

L’OCR conserva tabelle e formattazione?

No. Il risultato è testo semplice con gli a capo. Le tabelle sono un punto debole noto di Tesseract: leggile riga per riga, così ogni riga resta unita, e ricostruisci le colonne dopo.

Riferimenti

  1. Tesseract documentation — Improving the quality of the output
  2. Tesseract documentation — Neural nets in Tesseract 4.00
  3. Tesseract.js — Pure JavaScript OCR for more than 100 languages
  4. W3C — WCAG 2.2 technique PDF7: performing OCR on a scanned PDF document
  5. W3C — Understanding WCAG 2.2: Images of Text (1.4.5)

Guide correlate