Riconoscimento ottico dei caratteri

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Optical character recognition)
Esempio di testo riconosciuto con un software OCR

I sistemi di riconoscimento ottico dei caratteri, detti anche OCR (dall'inglese optical character recognition) sono programmi dedicati alla conversione di un'immagine contenente testo, solitamente acquisite tramite scanner, in testo digitale modificabile con un normale editor. 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.

L'OCR è un campo di ricerca dell'intelligenza artificiale, della visione artificiale e del pattern recognition, legati al riconoscimento delle immagini.

Storia[modifica | modifica sorgente]

Optofono di Fournier d'Albe

Il pioniere delle tecniche per il riconoscimento dei caratteri stampati è stato il fisico irlandese Edmund Edward Fournier d'Albe che, nel 1912, iniziò degli esperimenti in tal senso. 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 non vedente[1]. 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[2]. Nel giugno del 1916, la rivista scientifica italia "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 americano, 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 ogn'una 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[3]

Kurzweil Reading Machine

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 sviluppo 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 lOptofono di Battelle Memorial Institute, lFM-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[4].

Exquisite-kfind.png Per approfondire, vedi Optofono.

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 gia in uso, dalla fine degli anni sessanta, da parte di aziende, tra cui la CompuScan[5].)

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 il codice a barre 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[modifica | modifica sorgente]

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 ed analisi del testo) erano notevoli ed infatti erano considerati campi separati. Poiché non è rimasta più quasi nessuna applicazione legata alle tecniche di lettura ottica si è esteso il termine OCR che ora indica il riconoscimento dei caratteri digitali indipendentemente dalla sorgente delle immagini.

Tecnica[modifica | modifica sorgente]

Addestramento[modifica | modifica sorgente]

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.

OCR di caratteri stampati[modifica | modifica sorgente]

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.

OCR a mano libera[modifica | modifica sorgente]

Sistemi per riconoscere della scrittura a mano libera hanno avuto un discreto successo commerciale se integrati in prodotti come PDA o 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.

OCR del corsivo[modifica | modifica sorgente]

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

Aree di ricerca[modifica | modifica sorgente]

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 ad un'intensa ricerca fin dai tardi anni cinquanta. Inizialmente è stato percepito come problema semplice, ma è risultato essere un problema molto più interessante. 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.

MICR[modifica | modifica sorgente]

Un'applicazione dove l'esattezza e la velocità di riconoscimento dei sistemi OCR sui caratteri supera quella umana è quella dei MICR, dove l'accuratezza è molto elevata e gli errori variano intorno a un errore rilevato su 20.000 - 30.000 controlli. Questa precisione si ottiene grazie all'utilizzo di inchiostri speciali contenenti materiale magnetico (ossido di ferro).

OCR-Software[modifica | modifica sorgente]

  • Adobe Acrobat Professional (Windows, Mac OS)
  • BIT-Alpha (Windows)
  • ExactScan Pro (Mac OS)
  • FineReader (Unix, Windows)
  • Neoptec (Windows, Mac OS, Unix)
  • OCRKit (Mac OS)
  • OCRopus (Linux, Mac OS X)
  • Readiris (Unix, Windows, Mac OS)
  • Scansoft Omnipage (Windows)
  • Tesseract (Linux, OpenBSD, Mac OS X, Windows)
  • FreeOCR (Windows)
  • Nicomsoft OCR (Windows, Unix)
  • Recogniform OCR Server (Windows)

Note[modifica | modifica sorgente]

  1. ^ The Type-Reading Optophone, Our Surplus, Our Ships, and Europe's Need, and more in Scientific American, vol. 123, nº 19, New York, Scientific American Publishing Co., 6 novembre 1920, pp. 463-465.
  2. ^ Macchina per leggere pei ciechi in La scienza per tutti, Anno XXVIII, nº 2, Milano, Casa Editrice Sozogno, 15 gennaio 1921, p. 20.
  3. ^ La macchina che legge e che scrive in La scienza per tutti, Anno XXIII, nº 11, Milano, Casa Editrice Sozogno, 1º giugno 1916, p. 166.
  4. ^ (EN) J. Scott Hauger, Reading Machines for the Blind, Blacksburg, Virginia, Faculty of the Virginia Polytechnic Institute and State University, aprile 1995, pp. I-II,11-13.
  5. ^ Data processing magazine, vol. 12, 1970, p. 46.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

  • 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
Informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica