# Riconoscimento ottico dei caratteri

I sistemi di riconoscimento ottico dei caratteri (ROC), detti anche OCR (dall'inglese optical character recognition), sono programmi dedicati al rilevamento dei caratteri contenuti in un documento e al loro trasferimento in testo digitale leggibile da una macchina. La conversione viene effettuata solitamente tramite uno scanner. Il testo può essere convertito in formato ASCII semplice, Unicode o, nel caso dei sistemi più avanzati, in un formato contenente anche l'impaginazione del documento stesso. L'utente può modificare il risultato ottenuto con un normale editor di testo.
L'OCR è un campo di ricerca dell'intelligenza artificiale, della visione artificiale e del riconoscimento di pattern, legati al riconoscimento delle immagini.

## Storia

I primi riconoscimenti ottici dei caratteri possono essere ricondotti a tecnologie che coinvolgono la telegrafia e la creazione di dispositivi di lettura per le persone ipovedenti. Nel 1914 Emanuel Goldberg sviluppò una macchina che leggeva i caratteri e li convertiva in codice telegrafico standard. Parallelamente, il fisico irlandese Edmund Edward Fournier d'Albe nel 1912 incominciò degli esperimenti che si muovevano nella direzione del riconoscimento ottico dei caratteri. Sfruttando le proprietà fotoelettriche di alcuni composti, come il selenio, costruì una macchina, denominata optofono, in grado di rilevare il nero di una stampa e convertirlo in un suono che potesse essere interpretato da una persona ipovedente. Con la scoperta delle celle al selenio vi furono molti inventori e scienziati che si cimentarono nel campo del riconoscimento ottico dei caratteri, come l'italiano Ciro Codelupi, docente in scienze fisico-matematiche, il quale brevettò una "macchina da lettura" capace di trasformare le sensazioni luminose in sensazioni tattili.
Nel giugno del 1916, la rivista scientifica italiana La scienza per tutti pubblicò un articolo nel quale descriveva una macchina, alquanto verosimile, capace di leggere e battere a macchina uno scritto. Si sa solo che si trattava di un brevetto di un giovane ingegnere statunitense, John B. Flowers, ma la "macchina che legge e che scrive" si basava su un principio semplice quanto geniale; consisteva nella constatazione che ogni lettera dell'alfabeto ha nella sua forma un punto caratteristico che non si confonde con nessun'altra lettera. Quindi, sovrapponendo tutte le lettere una sull'altra, era sempre possibile trovare almeno un punto che contraddistingueva ognuna delle lettere. L'utilità dell'invenzione, se pur molto audace, già all'epoca, era discutibile a causa di problemi quali le varie dimensioni e stili di caratteri.
A partire dal 1943, in un arco di tempo di circa 40 anni, sei aziende statunitensi lavorarono per sviluppare "macchine da lettura" per non vedenti, con vari tipi di sostegno del governo federale. Le ricerche furono condotte per il beneficio di veterani e civili non vedenti. La RCA Laboratory sviluppò un optofono aggiornato utilizzando fototubi e valvole denominato A-2 Reader. Nel frattempo, sotto il patrocinio della VV – Veterans Administration, i laboratori Battelle, Haskins e Mauch furono rispettivamente incaricati di riprogettare l'A-2 Reader con fotodiodi e transistor, sviluppare un dispositivo a sintesi vocale e sviluppare un dispositivo intermedio capace di convertire lettere in suoni vocali. Il risultato fu lo sviluppo di una serie di prototipi quali l'Optofono di Battelle Memorial Institute, l'FM-Slit System di Haskins Laboratory e Cognodictor, Visotactor, Visotoner e Stereotoner della Mauch Laboratory.
Negli anni settanta Telesensory Systems Inc. realizzò un sofisticato e pratico dispositivo denominato Optacon che riusciva a riprodurre la forma di qualsiasi carattere in un carattere a rilievo. Nello stesso periodo fu sviluppata la Macchina da lettura della Kurzweil Computer Products, il primo sistema basato su un software di riconoscimento di caratteri denominato omni-font: un programma in grado di riconoscere testo scritto con qualsiasi tipo di carattere.
Nel 1974, Ray Kurzweil, sviluppò quindi il software OCR omni-font, in grado di riconoscere il testo stampato in praticamente qualsiasi font. Kurzweil è spesso considerato l'inventore dell'omni-font OCR, ma in realtà il sistema era già in uso, dalla fine degli anni sessanta, da parte di aziende, tra cui la CompuScan.
Il sistema postale degli Stati Uniti d'America utilizza sistemi di OCR fin dal 1965. La necessità di riconoscere le destinazioni delle missive e di organizzarle in modo automatico ha spinto la ricerca nel settore dell'OCR. I sistemi OCR leggono il codice postale scritto sulle lettere e provvedono a stampare sulle missive un codice a barre che rappresenta la destinazione della lettera. Per impedire che il codice a barre disturbi la lettura dell'indirizzo e quindi complichi il lavoro dei postini, viene stampato con un inchiostro visibile solo se illuminato da una luce con lunghezza d'onda nell'ultravioletto. Il codice a barre viene utilizzato da macchine smistatrici per indirizzare la corrispondenza all'ufficio postale corrispondente che si preoccuperà di recapitarlo al destinatario. Un metodo analogo è in uso dalle Poste italiane per la gestione della corrispondenza.

## Lettura ottica vs. riconoscimento digitale dei caratteri

Originalmente, le distinzioni fra lettura ottica dei caratteri (usando le tecniche ottiche quali gli specchi e gli obiettivi) e il riconoscimento digitale dei caratteri (usando gli algoritmi di separazione e analisi del testo) erano notevoli e infatti erano considerati campi separati. Poiché non è rimasta più quasi nessuna applicazione legata alle tecniche di lettura ottica, il termine OCR si è esteso e ora indica il riconoscimento dei caratteri digitali indipendentemente dalla sorgente delle immagini.

## Tecnica
### Addestramento

I sistemi OCR per funzionare correttamente richiedono una fase di "addestramento". Durante questa fase al sistema vengono forniti degli esempi di immagini col corrispondente testo in formato ASCII o simile in modo che gli algoritmi si possano calibrare sul testo che usualmente andranno ad analizzare. Questo addestramento è fondamentale se si considera che gli elementi che analizzano il testo non sono altro che delle reti neurali e come tali richiedono un addestramento per funzionare. Gli ultimi software di OCR utilizzano algoritmi in grado di riconoscere i contorni e in grado di ricostruire oltre al testo anche la formattazione della pagina.

### Riconoscimento dei caratteri stampati

Il riconoscimento esatto di un testo scritto in alfabeto latino digitalmente (quale può essere un testo scritto a macchina e successivamente scansionato) oramai è considerato un problema risolto, con tassi di riconoscimento superiori al 99%. Il riconoscimento della scrittura a mano libera e il riconoscimento degli alfabeti non latini è un problema che ancora non ha trovato delle soluzioni realmente soddisfacenti ed è tuttora oggetto di studi e ricerche.

### Riconoscimento della scrittura a mano libera

Sistemi per riconoscere la scrittura a mano libera hanno avuto un discreto successo commerciale se integrati in prodotti come i palmari o i computer portatili. Il precursore di questi dispositivi è stato il dispositivo Newton prodotto dall'Apple. Gli algoritmi di questi dispositivi funzionano adeguatamente perché si impone all'utente di imparare a scrivere le lettere seguendo un certo schema predefinito in modo da minimizzare i possibili casi di ambiguità. Queste strategie non si possono applicare nei documenti scritti su carta; infatti, il riconoscimento a mano libera è un problema tutt'altro che risolto. I tassi di accuratezza dell'80-90% sui caratteri scritti a mano in modo accurato e pulito possono essere raggiunti in modo relativamente semplice. Ma un tasso di accuratezza così basso produce diverse decine di errori per pagina rendendo le tecniche di scrittura a mano libera poco utili nella maggior parte dei casi.

### Riconoscimento del corsivo

Il riconoscimento del testo scritto in corsivo è un campo di ricerca attivo, e l'accuratezza del riconoscimento è persino inferiore a quella di un testo scritto a mano: livelli più elevati di accuratezza, di fatto, non saranno possibili fino a che non si useranno informazioni aggiuntive derivate da un'analisi contestuale o grammaticale del testo.
Innanzitutto, riconoscere le parole intere da un dizionario è più facile che provando ad analizzare i diversi caratteri singolarmente; così sarà possibile escludere molte di quelle ambiguità legate al riconoscimento. Conoscere il contesto dello scritto consente di eliminare altre ambiguità: un documento che parla di storia, ad esempio, conterrà verosimilmente molte date; quindi una linea verticale seguita da un simbolo 9 consentirebbe di ipotizzare che la linea sia un 1 anziché una i minuscola o maiuscola.
Inoltre, la conoscenza della grammatica della lingua analizzata può contribuire a meglio determinare se una parola sia un verbo o un nome, consentendo un'accuratezza maggiore. Tuttavia, i caratteri corsivi di molte lettere non contengono abbastanza informazioni per effettuare un'analisi corretta (in realtà l'accuratezza difficilmente può superare il 98%).

### Aree di ricerca

Un problema particolarmente difficile per i calcolatori e gli esseri umani è quello del riconoscimento di documenti danneggiati contenenti molti nomi o comunque informazioni non deducibili dal contesto. Le pagine possono essere danneggiate dall'età, acqua o dal fuoco e dei nomi possono essere obsoleti o contenere errori d'ortografia. Le tecniche di elaborazione delle immagini dei calcolatori possono aiutare gli esseri umani nella lettura dei testi estremamente antichi come i documenti lasciati da Archimede o i rotoli del mar Morto. L'utilizzo del calcolatore come supporto all'uomo e viceversa è un ambito di ricerca molto interessante e potenzialmente prolifico.
Il riconoscimento dei caratteri è stato un settore soggetto a un'intensa ricerca fin dai tardi anni cinquanta. Inizialmente è stato percepito come problema semplice, ma col tempo è risultato essere un problema molto più complesso. L'introduzione dell'Intelligenza artificiale in tale campo ha permesso degli sviluppi significativi nel riconoscimento di testi ritenuti ad ora illegibili, caso significativo sono gli sforzi compiuti nella decifrazione dei testi contenuti nei papiri di Ercolano. Benché l'adozione di tale tecnica ha fornito risultati che risultano essere ancora in uno stato embrionale, essa ha l'ambizione di fornire una metodologia efficace ai fini dello studio dei testi antichi, molti dei quali ritenuti ad oggi perduti.

### Riconoscimento tramite inchiostro magnetico

Un'applicazione dove l'esattezza e la velocità di riconoscimento dei sistemi OCR sui caratteri supera quella umana è quella del riconoscimento dei caratteri tramite inchiostro magnetico, noto come MICR dall'inglese magnetic ink character recognition, dove l'accuratezza è molto elevata e gli errori variano intorno a un errore rilevato su 20 000 o 30 000 controlli. Questa precisione si ottiene grazie all'utilizzo di inchiostri speciali contenenti materiale magnetico (ossido di ferro).