La tecnologia OCR (Optical Character Recognition),è utilizzata per il riconoscimento di testo stampato o dattiloscritto, ed è indubbiamente la più nota delle tecnologie utilizzate nella lettura ottica.

In linea di massima i sistemi di riconoscimento OCR possono essere suddivisi in monofont, multifont ed omnifont.

Gli OCR monofont sono quelli che riescono a riconoscere una sola famiglia di caratteri, ma con il massimo dell’accuratezza possibile. Sono utilizzati ad esempio per leggere dati stampati con i font OCR A ed OCR B, appositamente disegnati per la lettura ottica, oppure per leggere dati stampati con font CMC7 ed E13B, concepiti per essere letti magneticamente e quindi riconoscibili otticamente solo con sistemi specifici.

Esempio di font OCR A per il quale è richiesto l’uso di un motore OCR specifico

Gli OCR omnifont sono quelli che teoricamente riescono a riconoscere qualsiasi famiglia di caratteri, prescindendo quindi da tipo, dimensioni ed attributi (grassetto, corsivo, sottolineato) dei font con cui sono stampati i testi.

Gli OCR multifont sono invece una via di mezzo tra i precedenti: riescono a riconoscere caratteri stampati con più di un font, ma solo se lo specifico font è tra quelli previsti.

Sostanzialmente il lavoro che fa un sistema OCR è suddivisibile in tre fasi: segmentazione, estrazione delle caratteristiche e classificazione.

La prima fase, la segmentazione, consiste nell’identificare i caratteri da leggere: qualora l’area da leggere sia ampia o sia costituita da un’intera pagina, può essere necessaria anche una fase di analisi del layout, che consiste nell’individuare colonne, paragrafi, linee di testo e parole.

La seconda fase è rappresentata dall’estrazione delle caratteristiche di ogni singolo carattere segmentato. Esistono diversi metodi per estrarre queste caratteristiche, alcuni basati su procedimenti statistici (es: istogrammi delle frequenze di pixel), altri su procedimento di tipo geometrico (es: curvatura e direzionalità delle linee). In ogni caso l’idea di base è che queste caratteristiche debbano essere presenti in ogni carattere dello stesso tipo, debbano essere sufficienti per identificarlo e che debbano tollerare rumore e distorsioni introdotte al processo di scansione.

La terza fase è quella della classificazione: le caratteristiche estratte sono analizzate in modo da risalire al carattere partendo dalla sua forma, usando una conoscenza a priori basata sui prototipi del set dei caratteri da riconoscere.

Un esempio di OCR eseguito su numeri seriali di banconote: si noti come per ciascun carattere è riportata anche la confidenza di lettura.

Il risultato di questo processo è quindi quello di attribuire a ciascun carattere il codice ASCII (o UNICODE) che lo rappresenta ed, eventualmente, una confidenza di lettura che indica quanto il sistema è certo di aver classificato correttamente il dato.

Per fare in modo da minimizzare il più possibile gli errori dovuti all’OCR in alcuni sistemi di lettura ottica è possibile fare in modo di limitare il set di caratteri che ci si aspetta di trovare: il tal modo, ad esempio, se si devono leggere dati costituiti solo da numeri, l’OCR non confonderà degli zero con delle lettere “O” oppure dei “2” con delle lettere “Z”, e così via.

Sebbene la tecnologia OCR sia molto progredita, talvolta i risultati ottenuti possono essere sotto le aspettative a causa della scarsa qualità di stampa o della scarsa qualità di scansione dei documenti processati: i maggiori problemi di riconoscimento, infatti, si incontrano laddove più caratteri risultino attaccati tra loro, oppure laddove un singolo carattere sia spezzettato in più parti.


Una scarsa qualità dell’immagine può compromettere il funzionamento di un sistema OCR poiché è difficile riconoscere sequenze di caratteri legati tra loro o singoli caratteri spezzettati.

In casi particolari, per massimizzare le prestazioni di lettura, è possibile utilizzare la tecnologia di voting che consiste nell’utilizzare simultaneamente più motori di riconoscimento, decidendo carattere per carattere quale è il dato più attendibile con una tecnica chiamata di riconciliazione dei risultati.

Tale sistema ha il vantaggio di poter ridurre drasticamente la quantità di errori di interpretazione, ma ha lo svantaggio di aumentare i tempi di elaborazione, la complessità del sistema di lettura ottica ed i suoi costi.