FreePDF logoFreePDF

OCR con testo incomprensibile? Come ottenere un risultato pulito

Dal team di FreePDF ·

Hai passato una scansione nell'OCR, copiato un paragrafo e incollato qualcosa come «Il rnotivo dclla qucstione». Oppure le parole sono giuste, ma mezza frase della quarta riga è finita nella seconda. L'OCR indovina le lettere partendo dai pixel, e quando sbaglia la colpa di solito è dell'immagine della pagina, non di un'impostazione nascosta. Per un testo italiano c'è anche un secondo motivo, e ci arriviamo tra poco.

Prima guarda tutto il testo riconosciuto

La ricerca in un lettore PDF ti dice solo se una parola è stata trovata. Per vedere tutto quello che l'OCR ha prodotto, passa il file già riconosciuto in PDF in testo e leggi il .txt che ottieni. Di solito salta fuori uno di questi casi:

  • Una pagina vuota. Era girata, troppo chiara, oppure è stata saltata.
  • Parole giuste nell'ordine sbagliato. È un problema di impaginazione: colonne, tabelle o una pagina storta.
  • Parole piene di lettere sbagliate. Qui c'entrano la qualità dell'immagine, il carattere o la lingua.

PDF in testo ha anche una sua casella Esegui OCR, che usa lo stesso motore di OCR PDF: se ti basta il .txt, dalla scansione al testo arrivi in un passaggio solo.

Il documento è in italiano

Il nostro OCR dispone solo dei dati per l'inglese, e non c'è un'opzione per cambiare lingua. Un testo italiano esce in buona parte leggibile, perché l'alfabeto è lo stesso, ma le vocali accentate ne fanno le spese: à, è, é, ì, ò e ù possono perdere l'accento o essere scambiate con un segno che gli somiglia, così «perché» diventa «perche» e «città» qualcosa di peggio. Per una ricerca veloce spesso basta. Per un testo da riusare no.

La soluzione è un OCR con il pacchetto della lingua giusta. Se usi ocrmypdf (lo strumento open source su cui si basa il nostro) sul tuo computer, installa i dati italiani di Tesseract, che su Debian e Ubuntu stanno nel pacchetto tesseract-ocr-ita, e lancia ocrmypdf -l ita+eng scansione.pdf risultato.pdf. L'aggiunta dell'inglese aiuta quando nel documento compaiono termini o nomi inglesi.

La pagina aveva già del testo

Il nostro OCR salta le pagine che contengono già testo, così non scrive mai sopra parole esistenti. Quasi sempre è quello che vuoi. Diventa un problema quando il testo esistente è proprio la spazzatura: alcuni scanner fanno un loro OCR approssimativo, e alcuni PDF hanno caratteri che, copiati, escono come simboli perché il file non ha mai registrato a quale lettera corrisponde ogni forma. Il nostro strumento vede del testo, lascia stare la pagina e ti restituisce lo stesso pasticcio.

Per aggirarlo, trasforma prima le pagine in semplici immagini:

  1. Converti il PDF con PDF in JPG scegliendo Alta (300 DPI).
  2. Rimetti le JPG in un unico PDF con JPG in PDF. Controlla l'ordine prima di convertire, perché Ordina per nome mette page_10 prima di page_2; le frecce su e giù accanto a ogni file lo sistemano.
  3. Passa il nuovo file in OCR PDF.

La copia appiattita perde link e campi dei moduli, quindi conserva l'originale. Se te la cavi con la riga di comando, ocrmypdf ha le opzioni --force-ocr e --redo-ocr pensate proprio per questo caso.

Sistema la scansione, non le impostazioni

Tesseract, il motore che fa il riconoscimento, rende al meglio su pagine pulite e dritte a circa 300 dpi. Quasi tutto il testo storpiato nasce da uno di questi problemi:

  • Risoluzione bassa o immagine mossa. Riscansiona a 300 dpi, o a 400 per i caratteri piccoli. Ingrandire dopo un'immagine sfocata non recupera il dettaglio.
  • Pagina storta. Non raddrizziamo le pagine prima di leggerle, e bastano pochi gradi di inclinazione per spezzare le righe e incollare tra loro pezzi di righe diverse. Riscansiona dritto, o usa un'app di scansione che ritaglia e raddrizza da sola.
  • Pagine di lato o capovolte. Nemmeno queste vengono girate in automatico. Passa prima il file in Ruota PDF, ricordando che ruota tutte le pagine.
  • Poco contrasto. Copie a carta carbone sbiadite, matita e carta colorata rendono più difficile separare le lettere dallo sfondo.

Cosa l'OCR legge male comunque

La scrittura a mano, prima di tutto. Tesseract è fatto per il testo stampato, e gli appunti in corsivo a margine diventano rumore. Caratteri calligrafici o molto decorativi danno problemi simili, come il testo stampato sopra una foto o uno sfondo a motivi. Tabelle e pagine a più colonne spesso hanno ogni carattere giusto ma vengono lette di traverso, saltando da una colonna all'altra: il testo è ricercabile, ma copiato non ha senso. In casi del genere l'OCR ti dà la ricerca, e per il testo esatto tocca ancora riscrivere.

Domande frequenti

Se rifaccio l'OCR una seconda volta migliora?

No. Il secondo passaggio trova il livello di testo del primo e salta tutte le pagine. Appiattisci il file come spiegato sopra o, meglio ancora, riparti da una scansione più pulita.

Perché confonde di continuo 0 e O, o 1 e l?

A bassa risoluzione sono forme quasi identiche e il motore deve sceglierne una. Una scansione più nitida aiuta parecchio. Per totali di fattura, IBAN, codici fiscali e tutto ciò in cui una cifra sbagliata pesa, confronta il testo riconosciuto con l'immagine della pagina prima di fidarti.

Strumenti gratuiti correlati