Articolo
Migliorare l'accuratezza dell'OCR: prepara l'immagine prima del riconoscimento testo
L'OCR vale quanto l'immagine che gli viene fornita. Una scansione storta, a basso contrasto e rumorosa produce testo incomprensibile indipendentemente dalla qualità del motore. Ecco cosa fa davvero la differenza, nell'ordine in cui va fatto, tutto in esecuzione locale nel browser.
Perché l'OCR fatica con le scansioni reali
Un motore OCR come Tesseract è stato addestrato su testo pulito, orizzontale e ad alto contrasto. Segmenta una pagina in righe, le righe in parole e le parole in forme di caratteri, poi confronta ciascuna forma con il suo modello addestrato. Le scansioni reali violano queste ipotesi: la pagina è inclinata di qualche grado, l'illuminazione è disomogenea, la risoluzione è bassa, e il bordo del piano dello scanner o la pagina affiancata aggiungono disturbi scuri. Ognuno di questi problemi fa sbagliare la fase di segmentazione di righe e caratteri, e un'errata segmentazione si propaga in caratteri errati. La soluzione è raramente un motore diverso: si tratta di preparare l'immagine in modo che le ipotesi del motore reggano. In pratica, la preelaborazione incide sull'accuratezza più della scelta del motore OCR.

Inizia dalla risoluzione: punta a 300 DPI
Tesseract funziona meglio a circa 300 DPI per il testo corporale normale. Al di sotto di circa 200 DPI i tratti di ogni glifo si confondono con quelli vicini e l'accuratezza cala nettamente. Se controlli la scansione, imposta lo scanner a 300 DPI prima di tutto il resto, poiché è la scelta con il maggiore impatto. Se hai solo un'immagine a bassa risoluzione, ingrandirla non inventa dettagli mai catturati, ma un ingrandimento moderato può comunque aiutare il motore a separare i caratteri a contatto fornendo alla segmentazione più pixel su cui lavorare. I caratteri molto piccoli traggono beneficio da 400 a 600 DPI; oltre questo limite il file cresce senza alcun guadagno in accuratezza. Quando la sorgente è un PDF, rasterizza prima ogni pagina in un'immagine al DPI desiderato, poi esegui l'OCR su quell'immagine.
Correggi l'orientamento
Se la pagina è ruotata di 90, 180 o 270 gradi, il motore legge di lato o capovolto e restituisce testo senza senso. Tesseract dispone di un passaggio di rilevamento dell'orientamento e dello script (OSD) che può stimare la rotazione, ma non è affidabile su testo scarso, moduli o pagine dominate da immagini. Ruotare la pagina in posizione verticale da soli elimina l'incertezza. Questo passaggio è privo di perdite e istantaneo: ruotare di un multiplo di 90 gradi rimappa semplicemente i pixel esistenti in nuove posizioni, senza alcun costo in qualità né ricampionamento. Fallo prima della correzione dell'inclinazione, perché quella fase presuppone che il testo sia già approssimativamente orizzontale.
Correzione inclinazione: raddrizza la lieve torsione
Anche un'inclinazione di 2 o 3 gradi, del tipo che si ottiene alimentando una pagina leggermente storta, danneggia l'OCR: il passaggio di individuazione delle righe orizzontali divide una riga di testo in due, o unisce due righe in una. La correzione dell'inclinazione misura l'angolo dominante delle righe di testo (comunemente tramite analisi del profilo di proiezione o della trasformata di Hough) e ruota la pagina per riportarla in piano. A differenza di una rotazione di 90 gradi, la correzione dell'inclinazione è una piccola rotazione ad angolo arbitrario, che ricampiona i pixel e aggiunge una minima sfocatura. Questo compromesso è quasi sempre conveniente, perché le righe in piano si segmentano correttamente e il guadagno in accuratezza supera di gran lunga il leggero ammorbidimento. Correggi l'inclinazione dopo aver sistemato l'orientamento e prima del ritaglio.

Ritaglia il testo ed elimina il rumore
Tutto ciò che non è il testo cercato è rumore che il motore può leggere erroneamente: il bordo scuro del piano dello scanner, parte della pagina affiancata, un angolo pinzato, un dito o un foro di perforazione. Ritagliare l'area fino al solo blocco di testo rimuove questi bersagli falsi, migliorando sia l'accuratezza sia la velocità di riconoscimento perché il motore ha una superficie minore da analizzare. Per un documento multicolonna, il ritaglio (o l'esecuzione dell'OCR colonna per colonna) impedisce anche al motore di leggere di traverso il margine e di interlacciare due colonne in un'unica riga incomprensibile. Ritaglia dopo la correzione dell'inclinazione, in modo che il contenuto sia allineato nel frame.
Contrasto, scala di grigi e come funziona davvero la binarizzazione
L'OCR opera in ultima analisi su un'immagine binaria: ogni pixel viene classificato come inchiostro o carta. Tesseract esegue questa operazione internamente usando il metodo di Otsu, che sceglie una soglia globale unica dall'istogramma dell'immagine. Questo funziona bene quando la pagina ha un'illuminazione uniforme e un buon contrasto, e fallisce quando un'ombra o uno sfondo colorato rende un angolo più scuro di quanto la soglia si aspetti. I miglioramenti affidabili sono convertire in scala di grigi, così una dominante cromatica non può confondere la soglia, e uniformare l'illuminazione in modo che l'intera pagina si trovi da un lato di essa. Aumentare moderatamente il contrasto aiuta il testo sbiadito. Ciò che di solito si rivela controproducente è la binarizzazione manuale forzata: se si imposta la soglia a puro bianco e nero con il valore sbagliato, si cancellano i tratti deboli che il passaggio interno del motore avrebbe conservato. Lascia binarizzare al motore e fornisci un'immagine uniforme in scala di grigi come punto di partenza. Sunasty offre la conversione in scala di grigi per i PDF; per una messa a punto fine del contrasto un editor desktop è ancora migliore, ma un'illuminazione omogenea al momento della scansione conta più di qualsiasi cursore.
Scegli la lingua giusta e verifica l'output
Tesseract carica un file di dati addestrato separato per ogni lingua e script. Eseguire un modello in inglese su testo francese o greco produce errori evitabili, soprattutto sui caratteri accentati o non latini, quindi seleziona la lingua corrispondente al documento. Infine, tratta l'output OCR come una bozza, non una risposta definitiva: il motore non può sapere se un nome è scritto correttamente o se uno 0 non è una O. Correggi manualmente numeri, nomi propri e tutto ciò che è importante dal punto di vista legale o finanziario. Per tabelle e layout multicolonna, aspettati di dover sistemare la struttura a mano, perché l'OCR restituisce un flusso di testo riconosciuto, non un layout ricostruito.
Strumenti citati in questo articolo
- OCR · immagine/PDF in testoEstrai testo da immagini scansionate o PDF interamente nel tuo browser, funziona offline, nessun upload.
- Raddrizza pagine scansionateRaddrizza PDF o immagini scansionati e inclinati interamente nel tuo browser, nessun upload.
- Ruota e capovolgi immaginiRuota le immagini di 90/180/270° o capovolgile orizzontalmente e verticalmente, senza caricare.
- Ritaglia immagineRitaglia le tue immagini con un'anteprima interattiva, trascina e ridimensiona l'area di ritaglio. Nessun upload.
- PDF in scala di grigiConverti un PDF a colori in scala di grigi interamente nel tuo browser, nessun upload.
- Ridimensiona immaginiRidimensiona e converti le tue immagini (JPEG, PNG, WebP) senza caricarle.
- PDF in immaginiConverti ogni pagina PDF in PNG o JPG direttamente nel tuo browser.
Domande frequenti
L'ingrandimento di una scansione sfocata migliora l'OCR?
Non molto da solo. L'ingrandimento non può recuperare i dettagli mai catturati dalla scansione, quindi un'immagine sfocata a 100 DPI rimane sfocata. Un ingrandimento moderato può aiutare il motore a separare i caratteri a contatto fornendo alla segmentazione più pixel, ma riscansionare a 300 DPI è molto più efficace di qualsiasi ingrandimento.
Devo convertire l'immagine in puro bianco e nero prima?
Di solito no. Tesseract binarizza internamente con il metodo di Otsu, e una soglia manuale forzata con il valore sbagliato cancella i tratti deboli che il motore avrebbe conservato. Converti invece in scala di grigi e uniforma l'illuminazione, poi lascia che sia il motore a scegliere la propria soglia.
Il mio testo è di lato. L'OCR lo ruoterà automaticamente?
A volte. Tesseract dispone di un passaggio di rilevamento dell'orientamento, ma non è affidabile su moduli, testo scarso o pagine con molte immagini. Ruotare la pagina in posizione verticale di 90, 180 o 270 gradi è privo di perdite ed elimina l'incertezza, quindi è la scelta più sicura.
Tutto ciò carica il mio documento?
No. La rotazione, la correzione dell'inclinazione, il ritaglio, la conversione in scala di grigi e l'OCR stesso vengono eseguiti tutti nel browser. L'OCR utilizza una versione WebAssembly di Tesseract, e i dati linguistici addestrati vengono scaricati una volta e memorizzati nella cache. Il tuo file non lascia mai il dispositivo.