
Perché le foto delle pagine dei libri non vengono riconosciute dall’OCR (e come una leggera inclinazione comprometta l’accuratezza)
Pubblicato il 24 lug 2026
Se hai mai provato a convertire online in testo la foto di una pagina di un libro e hai ottenuto come risultato un ammasso di caratteri incomprensibili, probabilmente hai dato la colpa alla cosa sbagliata. Si è tentati di pensare che la colpa sia della carta vecchia e ingiallita o della scarsa illuminazione, ma dai test è emerso che nessuno di questi fattori ha influito in modo significativo sul risultato. La vera causa è quasi sempre qualcosa che non si può vedere semplicemente guardando la foto: una leggera inclinazione della fotocamera.
Il test: stessa pagina, quattro condizioni
Per scoprire cosa comprometta effettivamente l’OCR (riconoscimento ottico dei caratteri) sulle foto di libri reali, abbiamo elaborato lo stesso blocco di testo con Tesseract — il motore OCR open source — in quattro condizioni: una scansione pulita e piana, una pagina ingiallita/sbiadita, una foto inclinata di circa 12 gradi e una foto inclinata con l’aggiunta di un riflesso luminoso.
| Condizione | Precisione delle parole |
|---|---|
| Scansione pulita e piana | 100% |
| Pagina ingiallita e sbiadita (senza inclinazione) | 100% |
| Inclinata di circa 12° (senza scolorimento) | 67,7% |
| Inclinata di circa 8° + riflesso | 71,0% |
La pagina ingiallita ha ottenuto lo stesso punteggio di quella in perfette condizioni: il massimo. Nel momento in cui è stata introdotta un’inclinazione, l’accuratezza è crollata di un terzo, producendo esattamente il tipo di risultato che chiunque abbia provato gli strumenti di “scansione di libri di testo in Word” ha già visto: "brow," al posto di «brown», "Chapte,." al posto di «Chapter.», "hidde,," al posto di «hidden».
Perché una minima inclinazione causa così tanti danni
I motori OCR leggono il testo scansionando le righe dell’immagine alla ricerca di bande orizzontali uniformi di inchiostro: è questo il meccanismo che utilizzano per distinguere una riga di testo dalla successiva. In una scansione perfettamente livellata, ogni riga di testo si trova in una banda orizzontale ben definita e il motore separa nettamente la riga 1 dalla riga 2 e dalla riga 3.
Se si inclina la pagina anche solo di 10 gradi, quella banda orizzontale nitida diventa una macchia diagonale che si estende su decine di righe di pixel. La logica di segmentazione delle righe del motore inizia a unire caratteri di quelle che dovrebbero essere due righe separate, oppure a dividere un singolo carattere tra quelle che ritiene essere due righe diverse. Il risultato non è “leggermente meno accurato”: si tratta di un output categoricamente diverso, perché l’unità fondamentale che il motore legge (una riga) non corrisponde più a ciò che è effettivamente presente nell’immagine.
Questo è anche il motivo per cui una foto che a te sembra perfettamente leggibile può comunque produrre un output OCR illeggibile. Il tuo sistema visivo compensa un’inclinazione di 10 gradi senza alcuno sforzo cosciente: non la percepisci nemmeno come un’inclinazione. Una pipeline OCR ingenua non ha una compensazione di questo tipo integrata e legge esattamente i pixel che le vengono forniti.
La soluzione: raddrizza prima del riconoscimento, non dopo
Il consiglio pratico non è «tenere il telefono con più attenzione»: un leggero inclinamento quando si fotografa un libro aperto è quasi inevitabile, dato che non si sta premendo la pagina contro uno scanner. La soluzione è automatica: rilevare l’angolo di inclinazione e correggerlo prima di eseguire il riconoscimento del testo, non dopo.
Un modo affidabile per rilevare l’angolo senza ricorrere a complessi modelli di machine learning è il metodo del profilo di proiezione: ruotare l’immagine attraverso una serie di angoli possibili e, per ciascuno di essi, misurare quanto sia “punta” la distribuzione dell’inchiostro riga per riga. All’angolo corretto, le righe di testo si allineano in bande ben definite (elevata varianza tra le righe); a qualsiasi altro angolo, l’inchiostro si sfuma tra le righe (bassa varianza). L’angolo che produce la varianza più elevata è l’angolo di raddrizzamento.
Eseguire prima questa correzione e poi riconoscere il testo ha riportato tutti i nostri casi di prova inclinati a una precisione delle parole del 100% — la stessa pagina, lo stesso motore OCR, con l’unica differenza di averla prima raddrizzata.
Cosa significa questo se state digitalizzando un libro
- Non preoccupatevi delle condizioni della carta. L’ingiallimento, lo sbiadimento lieve e la leggera perdita di contrasto dovuta all’invecchiamento della carta incidono a malapena sulla precisione. Un vecchio libro tascabile si digitalizza più o meno bene quanto uno nuovo.
- Presta attenzione all’inclinazione. Anche un’inclinazione che a occhio nudo non noteresti può fare la differenza tra un testo utilizzabile e dati inutilizzabili.
- Il riflesso del flash è meno importante dell’inclinazione, ma comunque influisce negativamente. Un punto luminoso su carta patinata può oscurare qualsiasi testo si trovi al di sotto: la correzione dell’angolazione non risolverà un punto in cui, in primo luogo, non c’è inchiostro leggibile.
- Uno strumento che corregge automaticamente l’inclinazione risolve il problema alla radice. Il nostro strumento per convertire le pagine di un libro in testo esegue proprio questa fase di rilevamento e correzione direttamente nel tuo browser prima del riconoscimento: nessun caricamento, nessun server, ed è progettato specificamente per risolvere il problema dell’inclinazione, anziché partire dal presupposto che tu stia inserendo una scansione perfettamente piana.
Se in passato hai provato l’OCR su una foto di un libro e hai rinunciato perché il risultato era illeggibile, probabilmente il problema non era la pagina, ma quasi certamente i pochi gradi di inclinazione della fotocamera.