Capitolo V
CLASSIFICAZIONE TOPOGRAFICA
5.1 Algoritmo di Classificazione
Nei precedenti capitoli si sono affrontati gli aspetti teorici dell’analisi topografica e gli
aspetti teorici riguardo all’utilizzo dei filtri di Chebyshev e Krawtchouk, per le
approssimazioni delle derivate di funzioni bidimensionali discrete.
In questo capitolo si collegheranno i risultati fin qui ottenuti al fine di classificare i punti
di un'immagine secondo criteri topografici fino a costruire lo scheletro sfruttando tutte
le informazioni legate alla struttura tridimensionale del segno grafico.
Come si può evincere dagli esempi del capitolo precedente, i punti che si trovano sulla
“cresta” della figura tridimensionale sono dei buoni candidati per rappresentare lo
scheletro del segno grafico di interesse.
Il problema è quello di identificare in modo sicuro e possibilmente veloce tali punti
sfruttando le informazioni fin qui presentate.
Si prenderanno in considerazione, come punti appartenenti allo scheletro, tutti i Ridge
(spigoli), i Peak (picchi) e i Saddle (punti di sella) mentre si potranno scartare i punti
classificati come Ravine, Flat ed Hillside.
Per poter assegnare una etichetta di classificazione ad un generico punto (m,n) della
immagine bisognerà valutare le derivate prime e seconde parziali della immagine
discreta. Per fare questo ci si servirà di una funzione continua f(x,y) che interpoli i valori
discreti nella maschera NxN centrata sul punto (m,n) secondo il metodo dei minimi
quadrati. Per fare ciò si useranno le approssimazioni ricavate tramite i filtri costruiti sui
polinomi di Chebyshev e di Krawtchouk di grado superiore al terzo così come si è visto
nel precedente capitolo. Si noti che le derivate parziali di ordine (p+q) possono essere
facilmente valutate tramite una convoluzione 2D discreta tra l’immagine ed un filtro
conosciuto a priori.
Dopo aver ricavato questi valori si possono calcolare semplicemente gli autovalori e gli
autovettori della matrice Hessiana.
Si ricordi che essendo questa simmetrica e reale il calcolo degli autovalori si riduce a
valutare le seguenti espressioni:
Classificazione Topografica
∂ 2 f ( x, y )
∂x 2
λ1 =
+
∂ 2 f ( x, y )
∂y 2
V-2
2
æ ∂ 2 f ( x, y ) ö
æ ∂ 2 f ( x, y ) ∂ 2 f ( x , y ) ö
÷
ç
+ 4ç
−
+
2
÷
ç ∂x∂y
ç ∂x 2
∂
y
è
è
2
2
(6.1)
e
∂ 2 f ( x, y )
λ2 =
∂x 2
+
∂ 2 f ( x, y )
∂y 2
2
æ ∂ 2 f ( x, y ) ö
æ ∂ 2 f ( x , y ) ∂ 2 f ( x, y ) ö
÷
ç
+ 4ç
+
+
2
÷
ç ∂x∂y
ç ∂x 2
y
∂
è
è
2
2
(6.2)
essendo per definizione gli autovalori le soluzioni dell’equazione caratteristica
det[H-λI]=0,
ottenuta eguagliando a zero il polinomio caratteristico, in questo caso un polinomio di
grado 2 i cui coefficienti sono espressi in termini del determinante di H e della traccia di
H (somma degli elementi della diagonale principale):
det[H-λI]= λ2-trHλ+detH=0,
ovvero
æ ∂ 2 f ( x, y ) ∂ 2 f ( x, y ) ∂ 2 f ( x, y ) 2 ö
æ ∂ 2 f ( x, y ) ∂ 2 f ( x, y ) ö
÷λ + ç
λ − çç
+
−
2
2
2
ç ∂x 2
÷
∂x∂y
x
y
y
∂
∂
∂
è
è
2
.
H
H
Ai due autovalori così determinati corrispondono due autovettori u 1 e u 2.
In generale un autovettore di una matrice è un vettore che individua esclusivamente una
direzione, se gli viene applicata la matrice stessa può cambiare la lunghezza o il verso
H
H
ma non può ruotare su stesso. In altre parole vale la relazione H u = λ u dove λ è
H
H
l’autovalore corrispondente all’autovettore u . Per un qualunque scalare α il vettore α u
è ancora un autovettore di H corrispondente a λ infatti vale ancora la relazione
H
H
H
H(α u )= α H u = λα u .
In altri termini dallo scalamento di un autovettore si ottiene ancora un autovettore.
Per una generica matrice simmetrica di dimensione n agli n autovalori corrispondono n
autovettori linearmente indipendenti. Essendo la matrice hessiana H una matrice
simmetrica ai due autovalori reali corrispondono una coppia di autovettori linearmente
H
indipendenti. L’autovettore u corrispondente all’autovalore λ si ottiene dalla
definizione
H
(H- λI) u =0.
Classificazione Topografica
V-3
Nel caso specifico, individuato l’autovalore λ1 dalla risoluzione dell’equazione
H
caratteristica le componenti dell’autovettore corrispondente u 1=<u11, u12> si ottengono
come soluzione del sistema:
æ ∂ 2 f ( x, y )
ç
− λ1
ç ∂x 2
ç ∂ 2 f ( x, y )
ç
ç
∂x∂y
è
∂ 2 f ( x, y ) ö÷
∂x∂y
÷æ u11 ö
=0
2
÷çç u
∂ f ( x, y )
è
12
− λ1 ÷
÷
∂y 2
(6.3)
Essendo il sistema singolare di rango 1 le soluzioni sono linearmente dipendenti e
possono essere determinate a meno di uno scalare.
Si può dunque esprimere
∂2 f
∂y∂x
u12 =
λ1 −
∂2 f
u11
∂y 2
oppure
u12 =
λ1 −
∂2 f
∂x 2 u
11
∂2 f
∂y∂x
Ponendo quindi u11=1 si ricava facilmente u12.
Nel caso limite in cui si abbia
æ ∂ 2 f ( x, y )
ç
−λ
ç ∂x 2
ç
ç
0
ç
è
∂2 f
= 0 il sistema (6.3) si presenta nella forma generica
∂x∂y
ö
÷
÷æ u1 ö
÷çç u = 0
∂ 2 f ( x, y )
− λ ÷è 2
2
÷
∂y
0
cioè
æ ∂ 2 f ( x, y )
ö
ç
− λ ÷u1 = 0
2
ç ∂x
÷
è
ö
æ ∂ 2 f ( x, y )
ç
λ
−
u2 = 0
ç ∂y 2
è
Le cui soluzioni sono una coppia di autovettori aventi, uno la prima componente nulla,
H
u1 =< 0,1 > , e l’altro la seconda componente nulla u 2 =< 1,0 > .
Classificazione Topografica
V-4
Nel seguire la procedura per la classificazione dei punti critici si può presentare il caso
in cui i punti di ridge, ravine, pit, peak, saddle non corrispondano esattamente al centro
di un pixel.
Haralick [1] propone come metodo di risoluzione quello di classificare un pixel
studiando l’andamento della funzione underlying approssimante l’immagine discreta nel
H H
continuo lungo le direzioni individuate dagli autovettori u 1, u 2. Tale strategia tuttavia
risulta essere troppo pesante dal punto di vista computazionale per cui si predilige un
H
altro approccio per determinare gli autovalori λ1, λ2 e gli autovettori corrispondenti u 1,
H
u 2, per il centro di un pixel.
Se si verifica che il gradiente è zero nel centro del pixel P, allora si rientra direttamente
nella classificazione vista precedentemente, altrimenti si approssimano le direzioni degli
autovettori con due delle quattro direzioni naturali individuate dalla griglia
dell’immagine, vale a dire le direzioni verticale e orizzontale e le due corrispondenti a
45° e -45°.
H H
Siano d 1, d 2 le due direzioni approssimanti rispettivamente u 1, u 2. Ogni d i, i=1,2
individua due pixel, Pi1 e Pi2, confinanti con P nelle direzioni di.
Si procede quindi con il calcolo delle derivate direzionali prime in Pi1 , P e Pi2 nelle
H
direzioni u i per verificare se P è un punto di zero crossing delle derivate direzionali. Si
intende per zero crossing l’approssimazione del punto di annullamento ovvero, nel
discreto, uno zero crossing è un punto P compreso nell’intervallo [P1, P2] per cui si
abbia f(P1)f(P2)<0.
In relazione al fatto che P sia un punto di zero crossing per nessuna delle due derivate,
per una di esse o per entrambe si rientra in uno dei seguenti tre casi.
1)
P non è uno zero crossing in nessuna delle due direzioni d 1, d 2. Quindi il
gradiente non si annulla, dunque P è un hillside.
2)
P è uno zero crossing in una delle due direzioni d 1, d 2: P potrebbe essere un
ravine o un ridge. Se la direzione in cui P è uno zero crossing è d 1, allora P è un
ravine se λ1 è positivo ed è un ridge se λ1 è negativo. Se λ1 è nullo si deve
confrontare il valore del livello di grigio in P con la media dei valori
corrispondenti ai due pixel confinanti nelle direzioni d 1, d 2. Se la prima
Classificazione Topografica
V-5
quantità è più grande si dirà che P è un ridge altrimenti si classificherà come
ravine.
3)
P è uno zero crossing in entrambe le due direzioni d 1, d 2. In tal caso P è un
peak se λ1, λ2 sono negativi (o pit se positivi), un ridge se λ1 è negativo e λ2 è
zero (o ravine viceversa), un saddle se i segni di λ1 λ2 sono discordi.
Classificazione Topografica
V-6
5.2 Realizzazione dell’algoritmo e valutazione delle prestazioni
Si presenta ora una possibile implementazione dell’algoritmo sotto la forma di schema
logico a blocchi.
Classificazione Topografica
V-7
Nello schema precedente i simboli A e B fanno riferimento alle formule di
classificazione teorica (Capitolo IV pagine 11, 12, 13, 14, 15) e alle forme di
classificazione basate sulla approssimazione dello zero crossing (Capitolo V pagine 4,
5) rispettivamente.
Tale algoritmo è stato testato su alcuni caratteri manoscritti acquisiti con uno scanner
lineare a 200x200 dpi. Una risoluzione di questo tipo non è particolarmente accurata
ma è tipica di buona parte dei dispositivi di acquisizione utilizzati, per esempio, in
ambiente bancario per la valutazione dei caratteri scritti sugli assegni.
Un metodo tanto accurato fornirebbe risultati sicuramente migliori con risoluzioni
maggiori.
Come primo passo si consideri il risultato della classificazione topografica ottenuto su
una funzione nota. Ci si riferisce nel caso particolare alla funzione test
f ( x, y ) :=
(5⋅ x⋅ y − 2⋅ x3 − 3⋅ y3)
(1 + x4 + y4)
usata nell’esempio 2 del capitolo IV che ha il comportamento
evidenziato nella figura. Applicando alla funzione l’algoritmo di classificazione
topografica dei punti, si ottiene il seguente risultato in cui sono messi in evidenza in
diversi colori le etichette caratteristiche dei singoli punti in cui la funzione è stata
approssimata.
Figura 5.1: Rappresentazione tridimensionale della funzione test e classificazione topografica dei punti. Le
colorazioni assumono i seguenti significati: Giallo: peak, Verde: saddle, Rosso: Ridge con curvatura
massima, Blue: Ridge con curvatura minima, Grigio chiaro: Hillside, Grigio Scuro: Ravine
Classificazione Topografica
V-8
L’esempio analitico riportato è particolarmente significativo in quanto mette bene in
mostra la effettiva capacità dell’algoritmo di classificazione di riconoscere le regioni in
base alle loro caratteristiche topografiche. Si noti per esempio la individuazione dei
picchi della immagine (punti gialli) e del punto di sella (punto verde). Ciò che risulta
più interessante ai fini della scheletrizzazione è tuttavia la capacità di individuare i
Ridge ovvero le “creste” della immagine. Nella rappresentazione grafica i ridge sono
identificati con punti rossi o blu a seconda della loro importanza. Sono infatti indicati
con il colore rosso tutti i punti che sono ridge e che hanno una curvatura
significativamente alta. Questo significa che ai punti colorati in rosso corrispondo dei
ridge particolarmente “ripidi”. Sono stati invece colorati in blu tutti quei punti
appartenenti ai ridge ma con una curvatura meno significativa. Tali caratteristiche sono
bene riscontrabili nel disegno tridimensionale dell’andamento della funzione test.
E’ altresì importante notare come i punti grigio scuro, ovvero i punti appartenenti ai
ravine, corrispondano effettivamente alle “valli” della funzione test.
Nei seguenti esempi si mettono in evidenza i risultati ottenuti dall’algoritmo di analisi
topografica, su alcuni caratteri di test.
a)
b)
c)
d)
Figura 5.2: a) immagine campione, b) Rappresentazione 3D c) Classificazione Topografica dei punti
d) Scheletro ottenuto da c
Classificazione Topografica
V-9
a)
b)
c)
d)
Figura 5.3: a) immagine campione, b) Rappresentazione 3D c) Classificazione Topografica dei punti
d) Scheletro ottenuto da c
Classificazione Topografica
V-10
a)
b)
c)
d)
Figura 5.4: a) immagine campione, b) Rappresentazione 3D c) Classificazione Topografica dei punti
d) Scheletro ottenuto da c
I risultati ottenuti sui campioni degli esempi sono stati estrapolati dopo il calcolo delle
derivate parziali ottenute tramite filtro di Krawtchouk con griglia di campionamento di
7x7 elementi. Per quanto riguarda il significato delle colorazioni si rimanda alla Figura
5.1.
Si nota immediatamente, dalle figure sopra riportate, che in prossimità dei bordi dei
caratteri sono presenti alcuni punti classificati come picchi o creste che però non fanno
parte dello scheletro ideale che si vuole ricercare. Tali punti, che non sono quindi di
interesse, possono essere eliminati tramite una operazione di raffinamento dei risultati
considerando l’intensità del colore di ciascuno di essi. Infatti essendo questi dei punti di
frontiera tra lo sfondo ed il tratto di carattere, essi avranno una colorazione intermedia
tra il bianco dello sfondo e il nero del segno grafico. Un altro criterio per un successivo
raffinamento può essere quello di eliminare tutti quei punti che non risultano connessi o
che fanno parte di aree di superficie minima.
Classificazione Topografica
V-11
Va considerato, come accennato in precedenza, che la classificazione topografica negli
esempi precedenti è stata effettuata su una griglia di campionamento quadrata di lato 7.
Questo è una griglia di campionamento ragionevole in quanto non prende in
considerazione un numero troppo elevato di punti ed inoltre il lato della griglia è
all’incirca uguale allo spessore del tratto. Negli esempi successivi si mostrano i risultati
ottenibili effettuando la classificazione topografica su una griglia di 9 e di 11 elementi.
a)
c)
b)
d)
Figura 5.5: a) Classificazione topografica ottenuta con polinomi di Krawtchouk su griglia di 9x9 elementi b)
Scheletro ottenuto da a c) Classificazione topografica ottenuta con polinomi di Krawtchouk su griglia di
11x11 elementi d) Scheletro ottenuto da c
Classificazione Topografica
V-12
Aumentare il numero di punti della griglia non è una operazione indolore in quanto i
tempi di elaborazione per classificare i punti cresce in maniera significativa come si può
intuire dal grafico qui riportato.
Andamento dei tempi
Tempi in millisecondi
1600
1400
1200
1000
800
600
400
200
0
7
9
11
13
Grandezza della griglia
Figura 5.6
Come si osserva in Figura 5.5, all’aumentare dei punti della griglia di campionamento
non corrisponde un miglioramento della qualità dello scheletro, tale operazione va
invece a scapito dell’aspetto più prettamente prestazionale. La scelta poi di utilizzare
griglie di campionamento grandi quanto lo spessore del carattere risulta quindi essere
corretta. Se si utilizza altresì una griglia di campionamento più piccola dello spessore
del tratto, si ottengono dei risultati insoddisfacenti come si nota nel seguente esempio.
Classificazione Topografica
V-13
a)
b)
c)
Figura 5.7: a) Immagine campione b) Classificazione topografica con grigia 7x7 c) Classificazione
topografica con griglia 11x11
Come si può immediatamente osservare, nel caso di un carattere particolarmente spesso
e non perfettamente contrastato, il risultato dell’algoritmo di classificazione non è
particolarmente buono. Si nota subito che la classificazione con griglia di
campionamento 7x7 presenta, nella parte centrate del carattere, un gran numero di punti
etichettati come peak, ridge, saddle. Nel caso della classificazione con maschera 11x11
essi sono in numero molto minore e sono concentrati nella parte centrale della
immagine, costituendo dei buoni candidati per estrarre lo scheletro. Questo
comportamento si verifica perché con la maschera 11x11 si diminuisce la località per
l’approssimazione delle derivate parziali miste. La precisione, infatti, aumenta poiché
vengono usati un numero maggiore di punti di interpolazione.
Bisogna sottolineare alcuni aspetti inerenti la qualità dello scheletro ottenibile con
l’approccio di tipo topografico. Se si considerano come elementi appartenenti allo
scheletro i punti classificati come ridge, peak, e saddle si ottengono dei buoni risultati in
quanto tali punti rendono molto bene l’idea della forma e della struttura essenziale del
carattere. Tuttavia è importante notare che, al fine di ottenere uno scheletro minimo,
bisogna effettuare alcune elaborazioni, per ottimizzare i risultati ottenuti con questa
tecnica. I punti ottenuti, infatti, possono non essere sempre contigui, per cui si viene a
formare più una “nebulosa” di elementi utili, che un tratto continuo. Questa
caratteristica è dovuta al fatto che vi possono essere delle “zone piane” che uniscono i
Classificazione Topografica
V-14
punti di ridge, peak, saddle, in cui la derivata parziale si annulla. Per ottenere uno
scheletro più soddisfacente bisognerà tenere conto di questo importante aspetto.
L’articolo [4] propone un’interessante soluzione al problema.
La classificazione topografica e la definizione di uno scheletro a partire da questo tipo
di analisi fornisce risultati particolarmente apprezzabili specialmente se messi in
confronto con algoritmi di scheletrizzazione classica di tipo morfologico erosiva.
Si prenda per esempi in esame la seguente figura in cui, all’interno della immagine è
presente un disturbo di tipo gaussiano.
a)
b)
c)
d)
Figura 5.8: a) Immagine campione originale b) Scheletro della immagine campione originale ottenuto con
l’algoritmo di Zhang c) Immagine originale affetta da disturbo gaussiano d) Scheletro ottenuto da c con
l’algoritmo di Zhang
Come si vede dalla Figura 5.8.c la presenza di alcuni pixel bianchi all’interno del tratto
causano una scheletrizzazione errata in cui compaiono alcuni cicli spuri dovuti alla fase
di erosione. Si osservi, invece, il comportamento dell’algoritmo di classificazione
topografica che produce uno scheletro sostanzialmente uguale sia con l’immagine
campione originale, sia con quella con disturbo gaussiano.
Classificazione Topografica
V-15
a)
b)
Figura 5.9: a) Rappresentazione tridimensionale della Figura 5.8.a b) Rappresentazione tridimensionale
della Figura 5.8.c. Si notino le differenze in corrispondenza delle aree cerchiate in cui è presente il
disturbo.
a)
b)
Figura 5.10: a) Scheletro ottenuto da 9.9.a b) Scheletro ottenuto da 9.9.b
E’ importante mettere in evidenza come, nel caso di intersezione di linee di un certo
spessore, gli algoritmi di analisi topografica si comportino meglio di quelli erosivi
classici. Si veda per esempio il caso proposto.
La scheletrizzazione erosiva classica ha la tendenza a creare dei tratti di collegamento,
che chiameremo bridge, in corrispondenza delle intersezioni di segmenti rettilinei, in
particolare quando questi formano degli angoli acuti. L’algoritmo di scheletrizzazione
topografico invece, tende a fornire uno scheletro migliore, in cui l’angolo di
intersezione tra le linee è più simile alla immagine originale.
Classificazione Topografica
a)
V-16
b)
c)
Figura 5.11: a) Immagine originale b) Scheletro ottenuto con Zhang c) Scheletro ottenuto con la tecnica
topografica. Le zone cerchiate in rosso mostrano la differenza della rappresentazione delle intersezioni
delle linee.
Nella Figura 5.11.b si nota come il tratto obliquo sia sostituito con componenti
orizzontali e verticali dando origine ai bridge. Tale comportamento è dovuto al
procedimento di erosione insito nell’algoritmo di Zhang che elimina i pixel del bordo
percorrendo l’immagine con una maschera quadrata non orientata secondo la
inclinazione del tratto. La Figura 5.11.c, invece, mostra bene come negli incroci la
rappresentazione delle linee non si distacchi dall’originale.
Un’altra considerazione va fatta in merito alla qualità della classificazione ottenuta con
le due tipologie di polinomi, quelli di Chebyshev e quelli di Krawtchouk I secondi
hanno dato origine ad una classificazione migliore ed ha scheletri più fedeli alla forma
del carattere. Per questo motivo la tendenza generale è quella di utilizzare quest’ultima
base di polinomi per questo tipo di elaborazione.
In questo lavoro si sono classificati i punti di interesse seguendo uno schema proposto
da Li Wang e Theo Pavlidis [1] tuttavia la classificazione proposta da questi autori non
è esaustiva di tutti i possibili casi di singolarità. Nell’articolo di Øivind Due Trier,
Torfinn Taxt, and Anil K. Jain, si propone un altro tipo di classificazione, che prende in
considerazione un maggior numero di possibili etichette come riportato nella Figura
5.12. Tale tipo di classificazione fornisce un risultato migliore a scapito però della
semplicità dell’algoritmo.
Classificazione Topografica
V-17
Figura 5.12: Il pixel centrale in ciscuno degli esempi ha la seguente etichetta (a) peak; (b) pit; (c) ridge;
(d) ravine; (e) ridge saddle; (f) ravine saddle; (g) convex hill; (h) concave hill; (i) convex saddle hill; (j)
concave saddle hill; (k) slope hill; e (l) flat. La classificazione di Wang and Pavlidis [1] non distingue i
ridge saddle (c) dai ravine saddle (g). Analogamente non classifica i cinque hillside denotati (g)–(k).
Classificazione Topografica
V-18
Riferimenti bibliografici
[1] Li Wang, Theo Pavlidis “Direct Gray-Scale extraction of features for Character
Recognition” , IEEE TRANSACTION ON IMAGE PROCESSING, VOL 15, NO 10,
OCTOBER 1993
[2] Øivind Due Trier, Torfinn Taxt, and Anil K. Jain “Recognition of Digits in
Hydrographic Maps: Binary vs. Topographic Analysis” TECH. REP., DEPARTMENT
OF INFORMATICS, UNIVERSITY OF OSLO, NORWAY, SEPT. 1996
[3] Peter Meer and Isaac Weiss, “Smoothed differentiation filters for images”,
JOURNAL OF VISUAL COMMUNICATION AND IMAGE REPRESENTATION,
VOL. 3, NO. 1, PP. 58–72, MAR. 1992
[4] Robert A. McLaughlin and Michael D.Alder “The Houg Transform Versus the
UpWrite” IEEE TRANSACTION ON PATTERN ANALYSIS AND MACHINE
INTELLIGENCE, VOL 20, NO 4, APRIL 1998
[5] Shy-Shyan Chen, Frank Y. Shih “Skeletonization for Fuzzy Character Images”
IEEE TRANSACTIONS ON IMAGE PROCESSING VOL 5, NO 10, OCTOBER 1996
[6] Shigeru Ando “Image Field Categorization and Edge/Corner Detection from
Gradient Covariance” IEEE TRANSACTIONS ON PATTERN ANALYSIS AND
MACHINE INTELLIGENCE, VOL 22, NO 2, FEBRUARY 2000