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:
- Converti il PDF con PDF in JPG scegliendo Alta (300 DPI).
- 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.
- 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.