minilogo.gif (2094 bytes)

Reti neurali e riconoscimento di caratteri

left.gif (1019 bytes) up.gif (1014 bytes) right.gif (1020 bytes)

6. Problematiche e limitazioni dei sistemi OCR

Lo stato attuale della tecnologia non consente ancora ad alcun sistema di lettura, per quanto sofisticato, di essere del tutto esente da errori di riconoscimento o da limitazioni sui testi accettabili. E' chiaro tuttavia che questa lontananza dalle prestazioni ideali, essendo dovuta a fattori puramente tecnologici, diventa tanto maggiore quanto più bassa è la classe del sistema, e che questa circostanza contribuisce dunque a limitare la diffusione della tecnologia OCR e anche, in un certo senso, a scoraggiare la massa dei potenziali utenti. Deve essere altrettanto chiaro, peraltro, che l'importanza di tali limitazioni è variamente legata al tipo di testo sottoposto a lettura come pure alle condizioni operative del sistema, e può allo stato attuale essere in gran parte circoscritta sottoponendo testi di adeguata qualità ed ottemperando alle raccomandazioni dei produttori relativamente alle condizioni di impiego, tenendo tuttavia sempre presente che deviazioni anche minime dalle condizioni specificate possono produrre facilmente degradazioni significative delle prestazioni del sistema (Schurmann, 1982).

Vogliamo qui passare brevemente in rassegna i principali tra questi problemi e discuterne sia la natura sia i modi -- quando esistono -- per superarli o per limitarne gli effetti.

La pagina

Un primo importante problema è quello legato all'allineamento della pagina, e più in generale, della riga di testo. Molti sistemi OCR identificano le interlinee, e quindi le singole righe, attraverso l'analisi dell'istogramma delle proiezioni dei pixel su un asse verticale (Fig. 5); poiché questa operazione ha significato solo se le righe sono disposte in direzione pressoché perfettamente orizzontale, è possibile che l'algoritmo fallisca se al momento della scansione i bordi della pagina non risultano rigorosamente allineati ai bordi dell'immagine equivalente usata come base per le elaborazioni. Diverse prove eseguite su sistemi OCR di varia sofisticazione hanno dimostrato come una rotazione della pagina di anche soli 5-6 gradi provochi un aumento sorprendente del numero di errori (Kahan et al., 1987). In via generale, il requisito del corretto allineamento può essere abbastanza facilmente soddisfatto nella scansione di documenti costituiti da singoli fogli, sebbene venga richiesta in ogni caso un'attenzione particolare da parte dell'operatore; tuttavia, è praticamente impossibile ottenere un allineamento preciso ai bordi del campo di ripresa dello scanner quando si voglia sottoporre a lettura un libro, soprattutto se voluminoso.

Fig. 5

Esempio di uso dell'istogramma della distribuzione orizzontale dei pixel per l'identificazione delle righe di testo.

Una seconda conseguenza di questo tipo di limitazione è che risulta di solito molto difficile leggere dei testi il cui allineamento non è perfettamente orizzontale, soprattutto quando si trovino frammisti a testi con allineamento standard, come può avvenire ad esempio in testi pubblicitari (Fig. 6). Questa limitazione è poi anche la ragione per cui molti sistemi OCR di basso costo accettano soltanto testi di tipo portrait (cioè con le righe allineate al bordo orizzontale della pagina) ma non testi di tipo landscape (allineati cioè al bordo verticale), se non a condizione che l'operatore specifichi manualmente prima della scansione il tipo di testo da leggere.

Fig. 6

Esempio di testo con orientamento obliquo misto a testo con orientamento orizzontale.

Un altro importante problema è costituito dai testi organizzati su più colonne, come avviene per esempio nei quotidiani. Molti sistemi OCR di classe medio-alta sono in grado di riconoscere automaticamente la presenza di più colonne di testo, magari a condizione di un aumento significativo dei tempi di lettura; viceversa, molti sistemi economici esigono che l'operatore specifichi manualmente il numero di colonne su cui è organizzato il testo, o addirittura pretendono che l'operatore delimiti manualmente, nella fase di preview, le aree di testo da sottoporre a lettura.

Un terzo problema è costituito dalle porzioni di pagina il cui contenuto non è assimilabile a un testo. Un tipico esempio è costituito da una pagina di quotidiano, in quelle aree dove sono presenti fotografie o disegni, ma un esempio probabilmente ancora più comune (e certamente più frequente negli ambienti di ufficio) è dato dalle lettere scritte su carta intestata, dove solitamente nella parte alta della pagina è presente un logo aziendale con scritte in font particolarmente elaborati spesso ornate con disegni. Alcuni sistemi OCR di basso costo richiedono che l'operatore delimiti manualmente le aree grafiche da ignorare, o arrivano addirittura al punto di bloccarsi irrimediabilmente in loro presenza; ma in generale, se la sofisticazione del sistema è sufficientemente elevata, le regioni grafiche possono essere individuate automaticamente e ignorate, mentre sistemi di alta classe sono addirittura in grado di ritenerne le informazioni relative e, analogamente a quanto avviene per i testi, di generare un file grafico in formato standardizzato, compatibile con diversi prodotti software commerciali mediante i quali sia possibile non solo ricostruire la grafica presente nell'area interessata, ma anche sottoporla a editing e modifiche a piacimento dell'operatore.

Un'altra classe di complicazioni è dovuta alla qualità tipografica della pagina. Poiché l'immagine del foglio viene digitalizzata su due soli livelli mediante confronto dell'intensità luminosa con un valore di soglia, può accadere che testi stampati in particolari colori diventino del tutto invisibili ai fotosensori dello scanner, o che il livello di contrasto tra un testo e il suo sfondo sia talmente basso da renderne praticamente impossibile la lettura, o ancora che una pagina prodotta da una fotocopiatrice presenti uno sfondo suddiviso in bande di varia luminosità. In linea di principio, situazioni del genere potrebbero essere trattate con successo solo digitalizzando l'immagine su un numero sufficientemente elevato di livelli di grigio, applicando opportune operazioni di filtraggio per l'esaltazione locale dei contrasti e procedendo quindi alla sogliatura; tuttavia, la grande quantità di elaborazioni necessarie per l'esecuzione di tali processi, unita alle particolari caratteristiche di ripresa richieste allo scanner, rendono improponibile una tale soluzione se non nell'ambito dei lettori di classe elevatissima. In genere, i problemi di contrasto citati vengono aggirati dai costruttori lasciando all'utente la possibilità di alterare manualmente i controlli di contrasto dello scanner e di visionare preventivamente l'immagine ripresa prima di sottoporla al processo di lettura.

Il tipo di carta su cui è stampato il testo da riconoscere può delle volte comportare degli inconvenienti: se la carta non è perfettamente liscia, il processo di digitalizzazione può produrre dei pixel neri isolati più o meno fittamente distribuiti. Questo fenomeno, che può essere descritto come rumore presente sull'immagine equivalente della pagina, può verificarsi anche in presenza di macchioline o di granelli di polvere sul foglio, sul piano di vetro dello scanner o sui filtri delle sue ottiche. Gli effetti possono essere di vario tipo, a seconda della densità e della posizione dei pixel estranei, fino a giungere in determinati casi anche ad una alterazione dei pattern (Fig. 7) tale da indurre in errore il classificatore dei caratteri. Oltre all'ovvio accorgimento di mantenere sempre perfettamente pulito il pianale di vetro e i filtri dello scanner, gli inconvenienti dovuti al rumore potrebbero essere di frequente minimizzati sottoponendo l'immagine prodotta dalla digitalizzazione a un processo di filtraggio; tale processo, che può essere realizzato o per via manuale mediante alcuni prodotti software commerciali per disegno pittorico o per via automatica mediante appositi programmi di utilità, è tuttavia in ogni caso piuttosto pesante dal punto di vista computazionale, e tende ad essere evitato nei sistemi OCR di classe non eccelsa.

Fig. 7

Influenza del rumore sul pattern dei caratteri.

La fotocopiatura di una fotocopia, se iterata più e più volte, degrada progressivamente la qualità del testo per via di un processo di erosione essenzialmente casuale del pattern che costituisce i caratteri; oltre un certo limite, anche se l'originale è di ottima qualità, è possibile che tale degradazione arrivi a produrre delle fratture, cioè delle interruzioni nei tratti che costituiscono il pattern di un carattere, fino al punto che alcuni caratteri diventano praticamente irriconoscibili o addirittura possono essere interpretati in maniera completamente errata (Fig. 8). Difetti di questo genere, che possono anche aver luogo in certa misura in una singola fotocopia non ben contrastata, diventano poi sistematici anche in un originale quando il testo risulti prodotto mediante una stampante ad aghi con caratteri draft, nei quali ciascun pattern è costituito essenzialmente da pixel o gruppi di pixel isolati, e viene interpretato dal classificatore come un normale pattern affetto da un gran numero di fratture (Fig. 9). Pochissimi tra i sistemi OCR di classe medio-bassa riescono a trattare correttamente testi di questo tipo, che hanno bisogno di particolari accorgimenti nella fase di classificazione dei caratteri per non incorrere in una grande quantità di errori.

Fig. 8

Esempio di frattura: il carattere m può essere interpretato come una sequenza in.

 

Fig. 9

Fratture nei caratteri prodotti da una stampante ad aghi: il carattere o può essere interpretato come ci.

Il testo

Un'altra sorgente di frequenti errori di lettura e' costituita da determinate caratteristiche stilistiche del testo. Ad esempio, quando la pagina è eccessivamente contrastata o la risoluzione dello scanner è insufficiente, i caratteri boldface (in grassetto) possono risultare a contatto tra di loro e diventare praticamente illegibili (Fig. 10). Anche a livelli corretti di contrasto, i serif dei caratteri boldface contigui tendono a toccarsi portando ancora allo stesso inconveniente; su caratteri di corpo relativamente piccolo, può anche accadere che le aree bianche all'interno di determinati caratteri risultino pressoché totalmente annerite (Fig. 11), inducendo in errore il classificatore. I caratteri corsivi o comunque fortemente stilizzati solitamente hanno diversi punti di contatto tra di loro, e nella maggior parte dei casi il quadrilatero che li circoscrive ha due lati inclinati, anziché verticali come nei caratteri diritti; questi fattori possono nel loro complesso contribuire a rendere poco affidabile la separazione dei caratteri al momento della classificazione.

Fig. 10

Caratteri normalmente distinti possono venire a contatto quando stampati in grassetto (GG, ES).

 

Fig. 11

Un valore eccessivo di contrasto nella scansione può comportare il riempimento delle aree bianche interne a determinati caratteri (P, A, a, e).

Indipendentemente dalla posizione relativa di caratteri contigui, è spesso difficile discriminare la versione minuscola di un carattere dalla sua versione maiuscola (è il caso, ad esempio, dei caratteri o c p s v w x z); in una situazione del genere, il classificatore si deve basare non soltanto sul pattern del carattere, ma anche sulle sue dimensioni e sulla sua posizione rispetto agli altri caratteri della stessa riga di testo.

I testi sottolineati creano difficoltà a molti sistemi OCR, dal momento che la sottolineatura può interferire col pattern dei caratteri che presentano tratti discendenti (g j p q), in maniera largamente indipendente dal font; quando la risoluzione è bassa e il corpo del carattere piuttosto piccolo, la sottolineatura può addirittura entrare in contatto anche con caratteri privi di tratti discendenti, alterando così in maniera sostanziale il pattern di quasi tutti i caratteri.

Ben pochi sistemi sono in grado di leggere correttamente caratteri bianchi su fondo nero in maniera automatica; altri accettano questo tipo di testo solo se l'utente attiva esplicitamente una specifica modalità di lettura, ma la maggior parte dei sistemi, soprattutto quelli di classe modesta, sono assolutamente incapaci di procedere al riconoscimento.

Contrariamente ai testi con spaziatura fissa, come quelli battuti a macchina, in cui i caratteri sono sempre circoscritti da una quantità significativa di spazio bianco e possono sempre essere considerati inclusi in un rettangolo di dimensioni fisse, nei testi a spaziatura proporzionale il rettangolo circoscritto ha dimensioni variabili, e spesso, se la risoluzione della scansione è insufficiente, si può verificare il contatto tra due caratteri contigui; quest'ultimo effetto è poi regolarmente presente in presenza di kerning (spaziatura differenziata tra varie coppie di caratteri, Fig. 12). Nella spaziatura proporzionale è molto più frequente la presenza di giunture, soprattutto se i caratteri sono dotati di serif (Fig. 13); particolarmente fuorviante può poi essere la presenza delle legature, nelle quali in certi casi si ha addirittura un unico pattern per più caratteri (Fig. 14): i sistemi più sofisticati non tentano di isolare i caratteri costituenti ma li trattano come un unico pattern producendo direttamente la sequenza corretta di caratteri, e un accorgimento analogo può di solito essere adottato anche nei sistemi che ammettono il training.

Fig. 12

Il kerning può rendere impossibile l'inclusione di determinati caratteri (WA) all'interno di aree rettangolari.

 

Fig. 13

Esempio di contatto tra caratteri con serif (nni).

 

Fig. 14

Esempi di legature: ff, fi, ffi.

Un'ultima classe di problemi è quella dovuta alla simbologia. Alcuni sistemi tra i più economici non sono in grado di leggere tutti i possibili simboli non alfanumerici, e questo può indurre seri problemi su testi di particolare natura. Un cenno a parte meritano i testi di tipo matematico, per i quali è praticamente impossibile, per via della grande quantità di simboli speciali utilizzati e della loro organizzazione tipografica, trovare un sistema che sia in grado di leggerli correttamente. I simboli speciali di certi alfabeti internazionali, pur se derivati dall'alfabeto latino, come ad esempio i caratteri ç ¿ ñ dello spagnolo, ä ö ü ß del tedesco, é è ò ó dell'italiano, ê ô del francese, å dello svedese sono in genere difficilmente leggibili se non dai sistemi di classe elevata. Il problema dei font speciali, infine, è stato brillantemente risolto in una gran quantità di casi mediante la tecnologia Omnifont; tuttavia, dal momento che la fantasia dei grafici non conosce limiti, è facile incontrare, soprattutto in testi di tipo pubblicitario o nei logo aziendali, dei font estremamente fantasiosi (Fig. 15) che continuano a costituire una sfida anche ai migliori sistemi OCR -- e delle volte anche allo stesso occhio umano. E' chiaro che di solito, almeno in linea di principio, è possibile addestrare il sistema a riconoscere anche questi font speciali, ma è altrettanto evidente come queste procedure siano estremamente lente, e come nelle normali applicazioni dell'OCR l'apparizione di tali font sia talmente infrequente da non giustificare il tempo necessario all'esecuzione e al completamento delle procedure di training.

Fig. 15

Esempi di font molto complessi.

Conclusioni

Possiamo pertanto concludere affermando che la capacità di lettura di un testo da parte di una macchina, con la medesima accuratezza che un essere umano raggiunge senza apparenti difficoltà, rimane ancora un traguardo lontano, e occorreranno ancora molti sforzi, al livello sia teorico che tecnologico, perché tale traguardo possa essere anche soltanto intravisto. Le tecniche di classificazione mediante template matching sono abbastanza veloci, ma introducono forti limitazioni sui font riconosciuti. Le tecniche basate sull'analisi delle feature sono molto meno sensibili al font, ma devono ancora essere grandemente migliorate in accuratezza: molti dei metodi pubblicati vantano tassi di riconoscimento che sono ancora troppo bassi per la gran parte delle applicazioni pratiche: una pagina stampata contiene in media 3000 caratteri circa, sicché anche un tasso del 95% comporta 150 errori per pagina, circa tre per ogni riga di testo.

Mentre i problemi di riconoscimento legati alla pagina nella sua globalità (orientamento, rumore, variazione del contrasto) possono essere ridotti o eliminati da opportune pre-elaborazioni, possiamo benissimo supporre che i problemi legati alla pessima qualità del singolo carattere possano essere ridotti anche in maniera sostanziale ricorrendo ad algoritmi di riconoscimento più sofisticati ed efficienti, ma che non possano essere mai completamente eliminati senza tener conto in qualche modo del contesto in cui si inserisce il carattere medesimo: tale contesto va esteso alla parola, col ricorso ad una qualche forma di spelling check (controllo ortografico) assistito da un dizionario, come avviene in molti sistemi OCR di una certa classe, o addirittura all'intera frase, col ricorso ad una qualche forma di analisi sintattica del testo. Un tasso di riconoscimento minimo accettabile è il 99.9%, con tutti gli errori costituiti da pattern rifiutati anziché da classificazioni errate; in tal modo, si incorrerebbe in circa 3 errori per pagina, ossia quanti è ragionevole aspettarsene nella battitura manuale di un testo.

E' chiaro che, con questi requisiti, il carico computazionale necessario può diventare anche molto pesante; tuttavia, il conseguimento di tali risultati sembra legato più alla soluzione di problemi tecnologici che non alla necessità di conoscenze del tutto nuove; e in definitiva, va sempre tenuto presente che le tecniche ipotizzate sono proprio quelle a cui, in presenza di testi degradati o imperfetti, ricorre l'uomo, che rimane a tutt'oggi il miglior sistema OCR conosciuto.

Riferimenti bibliografici

  1. S. Kahan, T. Pavlidis, H. S. Baird, "On the recognition of printed characters of any font and size,"  IEEE Trans. Pattern Anal. Machine Intell., vol. 9, no. 2, pp. 274-288, March 1987.
  2. J. Schurmann, "Reading machines," Proc. 6th Int. J. Conf. Pattern Recognition, Munich, F.R.G., pp. 1031-1044, Oct. 1982.
minilogo.gif (2094 bytes)

Reti neurali e riconoscimento di caratteri

left.gif (1019 bytes) up.gif (1014 bytes) right.gif (1020 bytes)

© 1997-2003 Paolo Marincola (Rome, Italy)
e-mail:
pmaNOSPAM@acm.org (eliminare i caratteri "NOSPAM" per ottenere l'indirizzo esatto)
Commenti, osservazioni e suggerimenti sono estremamente graditi.

Last revised: 2003-11-09 00:30