6
1.1 Introduzione
Da tempo, in molti campi, sta nascendo l’esigenza di automatizzare alcuni
processi al fine di migliorarli e renderli più efficienti. Tra questi, soprattutto sta
assumendo molta importanza il riconoscimento automatico di caratteri
manoscritti . Il riconoscimento del testo manoscritto è un problema tanto
complesso quanto strategicamente importante. Si considerino ad esempio
l'archiviazione e la ricerca automatica di documenti manoscritti, la lettura e il
controllo incrociato di moduli compilati manualmente, nell’ambito
dell’automazione d’ufficio, dello smistamento della posta e nell’ambito
bancario e assicurativo, il riconoscimento automatico dell'indirizzo o del
C.A.P. sulle buste, l'interfaccia utente dei computer tipo\pen-point", ecc.
Nonostante i progressi tecnologici avuti in questo campo non si è ancora
riusciti a simulare la capacità di riconoscimento dell’uomo; ciò porta il
riconoscimento automatico ad avere un ruolo, sì importante, ma ancora di
secondo piano nelle attività umane. Questo è dovuto alla parziale capacità delle
macchine di distinguere gli stili di scrittura che cambiano da persona a persona.
In questo lavoro di ricerca si cerca di analizzare i metodi esistenti nel
riconoscimento automatico e di trovare nuove soluzioni affinché il gap
esistente tra uomo e macchina si riduca.
La complessità del problema è dovuta a diversi fattori, fra cui: l'estrema
variabilità delle calligrafie di mani diverse, la variabilità col tempo della
calligrafia di una stessa mano, l'elevata similitudine di alcune lettere fra loro e
7
la dimensione variabile dei caratteri scritti a mano. Finora il problema e stato
affrontato con le tecniche più svariate, che prevedono comunque di spezzare il
problema in sottoproblemi più semplici e quindi di complessità più trattabile.
Solitamente un testo viene letto sotto forma di bit-map da uno scanner, le
parole vengono isolate e segmentate in singole lettere e riconosciute tramite o
tecniche neuronali o tecniche di analisi delle caratteristiche morfologiche e dei
grafi di connessione dei singoli tratti elementari. Tutte queste tecniche danno
risultati assai variabili a seconda della calligrafia esaminata. Errori vengono
introdotti sia dal processo di segmentazione che da quello di riconoscimento.
Sono stati studiati metodi per migliorare i risultati ottenuti, ma in ogni caso il
tasso di riconoscimento e sempre minore del 100%. I motivi di tali prestazioni
ridotte risultano evidenti esaminando un qualunque alfabeto manoscritto, pur
"facile", da cui appare evidente come alcune lettere risultino indistinguibili
anche dall'occhio umano stesso . Risultati migliori si possono ottenere nel caso
si addestri il sistema a riconoscere una calligrafia particolare (ad es. nel caso di
computer pen -point ), ma in questo modo si perde molto in generalità.
Essendo spesso necessario riconoscere un testo senza commettere errori,
occorre adottare altre tecniche di riduzione dell'errore, ad esempio sfruttando la
ridondanza presente nella maggior parte dei testi manoscritti (tipicamente tutti i
testi di tipo discorsivo), ovvero la ridondanza dovuta all'utilizzo di un
vocabolario di dimensione finita e di una certa serie di regole grammaticali.
Diversi lavori hanno analizzato la possibilità di sfruttare la ridondanza lessicale
8
e grammaticale per migliorare il tasso di riconoscimento di un sistema di
lettura automatica. Scopo di questo lavoro e quello di integrare i vari metodi
proposti in un sistema unico,che da un lato riconosca il testo di un qualunque
scrittore e dall'altro impari dal testo stesso a riconoscere le particolarità della
calligrafia specifica , aumentando di conseguenza il grado di affidabilità di
ogni ulteriore riconoscimento. Per fare ciò e stato necessario far interagire
strettamente le varie tecniche utilizzate e, in particolare, un complesso di reti
neuronali ed un analizzatore lessicale e grammaticale. Un intenso uso di dati
fra i due sistemi e necessario per trasferire la maggior quantità di informazione
dal modulo neuronale all'analizzatore e per permettere che quest'ultimo, sulla
base delle sue ipotesi, possa addestrare le reti neuronali alla particolare
calligrafia. I risultati ottenuti, anche se preliminari, sono assai confortanti e
giustificano la prosecuzione del lavoro.
In un sistema di riconoscimento di pattern c’è un oggetto sconosciuto fornitogli
in input; in output al sistema c’è un insieme predefinito di classi. Il compito
del sistema è quello di assegnare l’oggetto ad una delle classi. La lista delle
classi contiene anche una classe speciale (reject class) per gli oggetti che il
sistema non è in grado di classificare. L’assegnazione dell’oggetto alle classi è
basata su un processo di riduzione dell’informazione cioè si analizzano le
caratteristiche (feature) del pattern e le interrelazioni tra queste in modo da
classificare esattamente il pattern.
9
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 (detti pattern) 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
0
, C
1
, ..., C
m
sono le classi di interesse, o classi proprie. In
una applicazione di riconoscimento dei caratteri, C
0
, 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 reject class : se un oggetto è classificato come appartenente a C0,
significa che il riconoscitore non è riuscito ad assegnarlo esattamente ad una
delle classi proprie C
0
, C
1
, ..., C
m
. X1, ..., Xn 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
10
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. 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 (ai, 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]: 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|ai)P(ai) sia massima. Per la regola di Bayes , p(x|ai)P(ai) è proporzionale
alla probabilità a posteriori p(ai|x) della classe w
i
dato il pattern x in input.
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 di neuroni sono sufficienti per
approssimare qualunque superficie di separazione fra le classi . Inoltre è stato
dimostrato che qualunque applicazione continua tra due spazi Euclidei può
essere, approssimativamente, realizzata da reti con almeno uno strato nascosto
11
e funzioni di trasferimento sigmoidali . Infine è stato dimostrato che con un
solo livello nascosto si possono approssimare anche regioni sconnesse. 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 nascosti 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. Tuttavia, quando si tratta di pattern
reali, i risultati possono essere abbastanza sorprendenti: una rete piccola é
addestrata su un numero limitato di campioni può fornire (in alcuni casi) buoni
risultati di generalizzazione.
Le proprietà che deve possedere un sistema di riconoscimento di caratteri sono
le seguenti:
indipendenza dallo stile di scrittura
il sistema deve prendere in considerazione anche caratteri di dimensioni
diverse
robustezza in presenza di rumore esterno nell’acquisizione dei caratteri
da riconoscere
basso tasso di errore
12
alte velocità per applicazioni commerciali
Figura 1:Un tipico processo di riconoscimento di caratteri
Il processo di riconoscimento di caratteri è un processo molto complesso. Esso,
infatti, si suddivide in varie fasi ciascuna con una sua specifica caratteristica.
La prima fase è quella del data acquisition . In questa fase si passa dal formato
cartaceo dei pattern ad un formato elettronico utilizzando i dispositivi
predisposti a tale operazione (es. Scanner). Nell’acquisizione dei dati ci
possono essere dei problemi come ad esempio rumore, inclinazione
dell’immagine, ecc. E’ necessaria, quindi, una ulteriore fase (preprocessing)
che prepari l’immagine del pattern alle successive elaborazioni eliminando così
molte delle inefficienze dovute all’acquisizione dei dati.
13
Successivamente si procede alla features extraction con la quale è possibile
estrarre dal pattern le caratteristiche principali necessarie successivamente alla
sua classificazione. La fase di classificazione comprende tutti quei metodi che
grazie alle informazioni fornite dalle features e dalla loro combinazione
consentono di classificare al meglio i pattern.
I problemi più importanti e non ancora del tutto risolti per la comunità
scientifica riguardano le ultime due fasi; al contrario, i problemi legati alle fasi
di acquisizione e preprocessing hanno trovato soluzioni largamente accettate.
Per colmare il gap tra la capacità di riconoscimento dell’uomo e quella delle
macchine si è pensato di studiare il processo di riconoscimento degli esseri
umani e di implementarlo nelle macchine. L’uomo effettua il riconoscimento
combinando le informazioni globali, derivanti dall’intera forma del carattere e
quelle locali, derivanti da parti specifiche del carattere. E’ stato dimostrato che
anche se in alcuni casi le informazioni globali sono sufficienti per determinare
una differenza fra classi di caratteri, le informazioni locali sono di grandissima
rilevanza nell’assegnare un pattern ad una classe specifica.
Allo scopo di migliorare la capacità di riconoscimento delle macchine, molti
sforzi sono stati indirizzati all’analisi delle caratteristiche locali dei caratteri
manoscritti.
Una semplice strategia per ottenere informazioni locali è attraverso lo zoning.
Lo zoning è una partizione del control box (il più piccolo rettangolo contenente
14
il pattern) del pattern: l’area del pattern di input viene divisa in sottozone,
ciascuna delle quali fornisce informazioni parziali relative al pattern in esame.
Figura 2: Esempi di zoning e control box
Ci sono innumerevoli tecniche di zoning a seconda del tipo di suddivisione del
control box. Con tale tecnica si vuole migliorare l’efficacia dello zoning nel
riconoscimento: tale efficacia dipende non solo dalla capacità di ogni zona di
esprimere informazioni discriminanti ma anche come tali informazioni locali si
vadano a complementare.
Quando viene usata una tecnica di zoning, infatti, ogni regione può essere
considerata come una singola sorgente di informazione che deve essere
combinata con le altre mediante un opportuno meccanismo di combinazione, in
modo da classificare correttamente il pattern.
In questo lavoro, inoltre, partendo dallo zoning ottenuto con questa nuova
tecnica, si cerca di dare più importanza ad alcune regioni dello zoning rispetto
ad altre ai fini del riconoscimento: ciò deriva dalla constatazione che alcune
regioni sono molto complementari tra di loro e quindi sono più discriminanti
nella classificazione dei pattern manoscritti incogniti. Tali regioni hanno,
quindi, una maggiore capacità informativa che da sole possono bastare a