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