Riconoscimento ottico dei caratteri

Disambiguazione – "Optical Character Recognition" rimanda qui. Se stai cercando l'omonimo blocco Unicode, vedi Optical Character Recognition (Unicode).
Esempio di testo riconosciuto con un software OCR

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.[1] 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[modifica | modifica wikitesto]

Optofono di Fournier d'Albe
One-Eyed Machine Stenographer di John B. Flowers

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.[2] Nel 1914 Emanuel Goldberg sviluppò una macchina che leggeva i caratteri e li convertiva in codice telegrafico standard.[3] 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.[4] 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.[5]

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.[6]

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.[7]

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.[8]

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.[9]

Lettura ottica vs. riconoscimento digitale dei caratteri[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

Addestramento[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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.[10] 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[modifica | modifica wikitesto]

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[modifica | modifica wikitesto]

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'IA 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 [11]. Benché tali tecniche possano ancora essere considerate in uno stato embrionale, hanno l'ambizione di fungere d'apripista ad eventuali sviluppi futuri.

Riconoscimento tramite inchiostro magnetico[modifica | modifica wikitesto]

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).

Note[modifica | modifica wikitesto]

  1. ^ pattern recognition in "Enciclopedia della Matematica", su www.treccani.it. URL consultato il 22 novembre 2022.
  2. ^ Herbert F. Internet Archive, The history of OCR, optical character recognition, [Manchester Center, Vt.] : Recognition Technologies Users Association, 1982, ISBN 978-0-943072-01-2. URL consultato il 22 novembre 2022.
  3. ^ (EN) Dhavale, Sunita Vikrant, Advanced Image-Based Spam Detection and Filtering Techniques, IGI Global, 10 marzo 2017, ISBN 978-1-68318-014-2. URL consultato il 22 novembre 2022.
  4. ^ E. E. Fournier, The Type-Reading Optophone, Our Surplus, Our Ships, and Europe's Need, and more (PDF), in Scientific American, vol. 123, n. 19, New York, Scientific American Publishing Co., 6 novembre 1920, pp. 463-465. URL consultato il 6 gennaio 2014 (archiviato dall'url originale il 26 aprile 2012).
  5. ^ Macchina per leggere pei ciechi (PDF), in La scienza per tutti, Anno XXVIII, n. 2, Milano, Casa Editrice Sozogno, 15 gennaio 1921, p. 20.
  6. ^ La macchina che legge e che scrive (PDF), in La scienza per tutti, Anno XXIII, n. 11, Milano, Casa Editrice Sozogno, 1º giugno 1916, p. 166.
  7. ^ (EN) J. Scott Hauger, Reading Machines for the Blind, Blacksburg, Virginia Polytechnic Institute and State University, aprile 1995, pp. I-II,11-13. URL consultato il 14 giugno 2022 (archiviato il 28 dicembre 2013).
  8. ^ Data processing magazine, vol. 12, 1970, p. 46.
  9. ^ (EN) Optical Character Recognition: A Backbone for Postal and Mail Sorting Applications, su mailingsystemstechnology.com. URL consultato il 22 novembre 2022.
  10. ^ Inc Apple Computer, Apple Newton Technology - June 1992 booklet (L0275LL/A), 1º giugno 1992. URL consultato il 22 novembre 2022.
  11. ^ (EN) Vesuvius Challenge, su scrollprize.org. URL consultato il 7 dicembre 2023.

Voci correlate[modifica | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]

  • 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.
Controllo di autoritàLCCN (ENsh85095140 · GND (DE4310936-6 · J9U (ENHE987007548413805171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica