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