Oggi, il riconoscimento dei caratteri scritti a macchina è diventato una realtà commerciale, e la
tendenza di tutti i progressi è verso una sempre meno stringente classe di input: da font (tipi di
carattere stampati) singoli stilizzati a multifont (caratteri di tipi, forme e dimensioni diverse), da
copie di alta qualità alle normali impressioni dei nastri dattilografici e perfino a multicopie carbone
di qualità sorprendentemente bassa.
In contrasto con la manoscrittura, gli approcci degli OCR in questo campo hanno potuto contare
sulla mancanza di grosse distorsioni spaziali nell'immagine dei caratteri e fare quindi considerevole
uso di sagome campione (templates).
I progressi nel riconoscimento off-line (riconoscimento in tempo differito rispetto alla scrittura) dei
caratteri manoscritti sono stati più lenti. Il problema è intrinsecamente più difficile, rispetto a quello
dell'OCR per i caratteri stampati o dattiloscritti, ed è riflesso nel fatto che anche la percentuale di
errori umani, per caratteri manoscritti isolati, è molte volte più alta di quella dei caratteri scritti a
macchina. La grande variabilità spaziale dei caratteri scritti a mano, ha spinto molti ricercatori a
studiare metodi di riconoscimento che non faccessero uso di sagome campione.
Così, i maggiori sforzi di molti ricercatori sono stati rivolti all'esplorazione di metodi di
preprocessing unificati ed all' estrazione di caratteristiche.
CLASSIFICAZIONE DEL RICONOSCIMENTO DEI CARATTERI:
Ci sono comunque una infinità di problemi che riguardano il riconoscimento dei caratteri, e i
risultati del riconoscimento sono spesso senza senso perchè riportati in letteratura senza una
adeguata descrizione del problema di partenza.
Dobbiamo inizialmente distinguere tra riconoscimento dei caratteri da una pagina precedentemente
stampata (off-line) e riconoscimento on-line, in cui i caratteri sono generati mediante una penna
ottica, tavoletta grafica o dispositivi simili. Il riconoscimento on-line è più semplice, perchè i dati
forniscono una esatta traccia dei movimenti dello strumento scrivente, danno accurate informazioni
sulla posizione del tratto e sulla loro sequenza temporale. Ulteriormente, può essere considerata
accettabile anche una percentuale di errore quale il 5%; perchè ogni carattere può essere
classificato, mostrato e corretto immediatamente dallo scrivente se è sbagliato.
Il riconoscimento di caratteri manoscritti dovrebbe essere a sua volta distinto in: scrittura in
stampatello e scrittura in corsivo (caratteri collegati insieme). La separazione dei caratteri
stampatelli ovvia al problema della segmentazione, che rende il riconoscimento della scrittura in
corsivo ben più difficile.
All'interno della struttura di un blocco off-line di caratteri manoscritti, la difficoltà di un
problema particolare è determinata da molte variabili:
• la misura dell'alfabeto;
• le forme standard dei caratteri individuali e il grado di mancanza di naturalezza messa nella loro
formazione;
• la grandezza, la spaziatura e l'impaginazione del testo;
• gli strumenti di scrittura;
• il numero degli scriventi;
• il loro addestramento e motivazione;
• le caratteristiche (fisse e variabili nel tempo) di ogni scrivente.
Per illustrare la variabilità della scrittura manoscritta possiamo citare alcune percentuali di
riconoscimento umano di tali campioni, nei quali i caratteri individuali non possono essere
riconosciuti con alta accuratezza dalle macchine, ma neanche dall'uomo. Infatti, è provato che
lettori umani non possono riconoscere caratteri isolati, prodotti da una popolazione non addestrata,
con una accuratezza superiore ad un certo limite. La comprensione del testo è dovuta, infatti, alla
capacità umana dell'analisi contestuale: ogni forma del testo ha una sua propria struttura
contestuale, che è utilizzata dagli umani in un complesso processo largamente inconscio. Neisser e
Weene riportano una percentuale media di errore del 4,1% su caratteri scritti da visitatori sulla
facciata d'ingresso del Lincoln Laboratory [19]. Con tutti i soggetti che decidevano insieme la
percentuale d'errore fu del 3,2%.
PRINCIPALI APPLICAZIONI DELL'OCR
Quanto grande sia l'importanza di ogni lavoro nel campo del riconoscimento dei caratteri può
essere capito dalla molteplice varietà di applicazioni pratiche, per le quali sono state utilizzate le
tecniche di riconoscimento. Alcune delle letterature in questo campo sono, oltre che in lingua
inglese, anche in tedesco, in giapponese, ecc. Si elencano di seguiti alcune delle applicazioni per le
quali i ricercatori hanno usato gli OCR o ne hanno proposto l'uso:
• uso da parte delle persone cieche, come aiuto per la lettura usando fotosensori e simulatori tattili
o sensori con uscita sonora. Anche usati per leggere e riprodurre da originali braille;
• uso come aiuto nelle telecomunicazioni per i sordi;
• uso nei dipartimenti postali, per la lettura degli indirizzi e come lettore per i codici postali
stampati o manoscritti;
• per la misura o l'analisi della qualità di stampa dei caratteri, lettura e ordinamento di documenti,
nella prenotazione di posti, negli uffici delle Motorizzazioni (come lettore automatico di sigle
numeriche e registratore per il controllo del traffico);
• uso nella industria editoriale e come lettore per terminali di comunicazione dati;
• uso nei servizi di distribuzione per la lettura e l'ordinamento degli ordini e delle bolle;
• per il processo diretto di documenti, per l'adattamento di grafici/testi in una forma leggibile dal
computer, come lettore elettronico di pagine per grandi volumi di posta;
• per la fatturazione a clienti come nei sistemi di ordinazione telefonica, nel caricamento
automatico degli ordini, nell'identificazione automatica delle impronte digitali, nei sistemi
automatici di ispezione (per l'ispezione delle maschere per circuiti integrati e scopritori di difetti
nei microcircuiti), per la scansione delle carte di credito nei sistemi di identificazione personale
per i crediti;
• per applicazioni finanziarie, come l'ordinamento degli assegni;
• per la lettura dei codici a barre digitali, negli analizzatori di manoscritti, per la verifica
automatica delle firme e il riconoscimento degli scrittori;
• per l'aquisizione dei dati nelle assicurazioni sulla vita;
• per la lettura meccanizzata di documenti nella industria, per i lettori dei prezzi e dei nomi dei
prodotti;
• nelle applicazioni legali, nelle scuole (valutazione dei compiti e dei voti), come lettori di fogli
marcati per accreditamenti di pagamenti e tenuta di libri contabili;
• per censimenti ottici e per il controllo dei lavoratori in uscita in vendite e distribuzioni;
• nella cartografia automatica, nelle industrie metallurgiche, nei sistemi di assistenza
computerizzata linguistica nei tribunali, nella posta elettronica, nelle librerie e per i facsimile;
• per trascrizioni stenografiche.
VANTAGGI DELL'ELABORAZIONE AUTOMATICA DEI DOCUMENTI
L' evoluzione tecnica dei sistemi OCR, per l'archiviazione e la gestione automatica dei documenti, è
rivolta non solo al conseguimento di obiettivi prestazionali, ma anche a ricercare quelle forme di
tutela e "salvaguardia giuridica" per il documento elettronico (indispensabili per ottenere il
riconoscimento legislativo). Il modo di ragionare e di operare sui problemi si basa, oggi, su
soluzioni tecnologiche che riescono a vincere, grazie alla loro potenzialità, anche le resistenze
'abitudinarie' più consolidate.
Per esempio, come controbattere con i sistemi tradizionali ai seguenti vantaggi operativi,
facilmente quantizzabili in termini di risparmio sui costi, offerti da un sistema di archiviazione e
gestione elettronica dei documenti?
• Riduzione degli spazi necessari per l'archivio che, liberati dalla carta, potranno essere indirizzati
ad attività più proficue: in un jukebox (dispositivo per la ricerca automatica e la lettura delle
immagini memorizzate nei dischi ottici) di dimensioni inferiori a quelle di un normale armadio
di ufficio, possono essere memorizzate le immagini di 15 milioni di pagine formato A4, i cui
originali occupano almeno 200 metri cubi e pesano 100 tonnellate.
• Velocità di reperimento di una pratica: il tempo necessario a visualizzare un documento su una
stazione di lavoro si misura in secondi, contro i minuti o le ore spese per trovare l'originale in un
archivio cartaceo.
• Sicurezza di reperimento dell'informazione, requisito basilare in una attività di organizzazione.
Quante volte è andato perso un fascicolo consultato e poi mal riposto? Una volta archiviata una
immagine elettronica di un documento, non esiste il rischio di smarrimento.
• Disponibilità della stessa pratica per più utenti: l'archivio elettronico, a differenza di quello
cartaceo, rappresenta una risorsa disponibile contemporaneamente a più persone.
• Semplicità d'uso dei sistemi: la maggioranza dei sistemi in commercio presenta una interfaccia
"amichevole" che guida l'Utente in tutte le fasi di lavoro.
TIPI DI METODOLOGIE:
Nell'OCR, si sono ormai affermate tre principali metodologie:
• il metodo che si basa sulla estrazione di caratteristiche, il più possibile individuali del carattere;
è il metodo ampiamente più usato e studiato ma è euristico senza una vera formalizzazione;
• il metodo del 'contour follower' ( inseguimento del contorno, ad esempio quello basato sui
coefficienti di Fourier);
• il metodo delle reti neurali.
CARATTERISTICHE TEORICHE DEL RICONOSCIMENTO DEI CARATTERI
Un riconoscitore generale di caratteri, che possa essere tanto sofisticato da performare ogni
funzione arbitraria, è solo una possibilità teorica. Attualmente i sistemi di riconoscimento possono
trattare soltanto limitate e ben definite classi di caratteri.
Un riconoscitore, da un punto di vista puramente teorico, è un apparato che deve performare una
serie di operazioni allo scopo di assegnare certi oggetti (patterns) ad una serie data di classi C
0
, C
1
,
..., C
m
,
in accordo con il valore di certe caratteristiche X
1
, ..., X
n
. E' chiaro che gli oggetti, che
devono essere riconosciuti, posseggono intrinsecamente dei "valori" individuali X
1
, ..., X
n,
che
devono poter essere calcolati o computati in ognuno di essi.
C
1
, ..., C
m
sono le classi di interesse, o classi proprie. In una applicazione di riconoscimento dei
caratteri, C
1
, ..., C
m
rappresentano le differenti forme che devono essere discriminate (ciascun
carattere o simbolo, normalmente, corrisponde a più di una forma). C
0
è una classe speciale,
chiamata classe di reject: se un oggetto è classificato come appartenente a C
0
, significa che il
riconoscitore non è riuscito ad assegnarlo esattamente ad una delle classi proprie C
1
, ..., C
m
.
X
1
, ..., X
n
possono essere considerate come coordinate in uno spazio n-dimensionale (spazio delle
caratteristiche); e gli oggetti, che devono essere riconosciuti, possono essere rappresentati da punti
in questo spazio. In questa ottica, costruire un riconoscitore significa definire gli m sottoinsiemi
dello spazio delle caratteristiche (non necessariamente disgiunti) che devono essere utilizzati come
regioni di decisione per le proprie classi. Un oggetto è classificato come appartenente ad una
propria classe se il suo punto rappresentativo P appartiene solo alla corrispondente regione di
decisione. Se P appartiene a più regioni di decisione, o a nessuna, il riconoscitore realizza che non è
possibile assegnare all'oggetto la sua propria classe, e allora lo rigetta.
RETI NEURALI E RICONOSCIMENTO DEI CARATTERI
Vari paradigmi del riconoscimento dei caratteri possono essere messi in relazione, dal punto di vista
teorico, con le reti neurali.
Consideriamo, di nuovo, il problema di classificazione a M classi (a
i
, i=1, ..., M) unitamente ad un
sistema di classificazione che ripartisca lo spazio dei pattern in M regioni di decisione R
i
. La
probabilità di corretta classificazione di un pattern x incognito è [20]:
P correct p x a P a dxii
Ri
i
M
() ()()=
z
∑
=1
Il classificatore Bayesiano massimizza la probabilità selezionando le regioni che massimizzano
l'integrando, cioè assegnando un pattern alla classe a
i
(ovvero alla regione R
i
) tale che p(x|a
i
)P(a
i
)
sia massima. Per la regola di Bayes, p(x|a
i
)P(a
i
) è proporzionale alla probabilità a posteriori p(a
i
|x)
della classe w
i
dato il pattern x in input.
Poichè è stato dimostrato che reti del tipo Perceptron possono stimare le densità di probabilità di
una distribuzione a partire da un insieme finito di esempi [21, 22], un Perceptron può essere una
buona approssimazione di un classificatore Bayesiano.
Da un altro punto di vista, si può interpretare l'elaborazione, operata da una rete neurale nella
soluzione di un problema di Pattern Recognition, come approssimazione successiva delle
ipersuperfici di separazione fra le classi. E' stato dimostrato che due livelli nascosti (hidden) di
neuroni sono sufficienti per approssimare qualunque superficie di separazione fra le classi [23].
Inoltre è stato dimostrato [24] che qualunque applicazione continua tra due spazi Euclidei può
essere, approssimativamente, realizzata da reti con almeno uno strato hidden e funzioni di
trasferimento sigmoidali.
Infine è stato dimostrato che con un solo livello hidden si possono approssimare anche regioni
sconnesse [25]
Poichè è impensabile ottenere la soluzione generale esatta del problema di 'discriminazione tra M
classi', il quesito viene tradotto in quello di cercare una buona soluzione approssimata. Quindi uno o
due strati hidden sono sufficienti per risolvere (in approssimazione) qualunque problema di
classificazione.
Per quanto riguarda il numero di nodi della rete, la topologia del problema specifico gioca un ruolo
fondamentale. Esistono teorie applicabili alla definizione dei requisiti minimali sulle dimensioni
della rete, e sul numero di campioni che essa è in grado di apprendere [26]
Tuttavia, quando si tratta di pattern reali, i risultati possono essere abbastanza sorprendenti: una rete
piccola e addestrata su un numero limitato di campioni può fornire (in alcuni casi) buoni risultati di
generalizzazione.
Questo problema, cioè trovare il numero ottimale dei neuroni di una rete, ha portato a sviluppare
algoritmi che, oltre ad addestrare la rete, la 'costruiscano' passo-passo. Infatti questi algoritmi,
sfruttando la topologia del problema stesso, aggiungono via via neuroni fino al soddisfacimento di
determinate condizioni. Con questo tipo di algoritmi, di cui l'OILSPOT è un esempio, alla fine del
procedimento ci si trova con una rete completamente definita sia in termini di pesi e soglie che
anche in termini di numero di neuroni necessari.