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. Serviranno ancora decenni di studi prima che il calcolatore sia in grado di riconoscere un testo con la stessa accuratezza di un essere umano, sempre che ciò sia possibile.

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  o  controlli. Questa precisione si ottiene grazie all'utilizzo di inchiostri speciali contenenti materiale magnetico (ossido di ferro).

Note

Voci correlate 

 CAPTCHA
 Sistemi di visione artificiale
 Linguistica computazionale
 Apprendimento automatico
 Riconoscimento delle immagini
 Riconoscimento della voce
 Codice a barre
 Scansionatore d'immagine
 Raymond Kurzweil
 MICR
 OCR-A
 OCR-B
 OCRopus
 Optofono
 Paradosso di Sayre

Altri progetti

Collegamenti esterni 
 LAperLA progetto OCR per il recupero testi in cattivo stato di conservazione dell'Istituto di Linguistica Computazionale
 Bioemulation Esempio di OCR in codice Visual Basic
 MoreData Un programma gratuito di ricognizione ottica dei caratteri che supporta la lingua italiana per piattaforma windows - il motore utilizzato è tesseract (opensource di google, progetto originariamente sviluppato dall'R&D di HP)
 MoreDataFast Evoluzione di MoreData semplificato e multithreading per una maggiore velocità su gruppi di immagini
 FreeOCR  Versione precompilata dell'engine Tesseract sviluppato da Google.

 
Ausili per le disabilità sensoriali