ANALISI DELLA TESSITURA Introduzione Nel campo della
Transcript
ANALISI DELLA TESSITURA Introduzione Nel campo della
1 ANALISI DELLA TESSITURA Introduzione Nel campo della elaborazione delle immagini si è consolidato con il termine TESSITURA una qualunque disposizione geometrica e ripetitiva dei livelli di grigio di una immagine. Il sistema visivo umano determina e riconosce facilmente diversi tipi di tessiture caratterizzandole in modo soggettivo. Infatti, non esiste una generale definizione di tessitura ed una metodologia di misura della tessitura accettata da tutti. Senza entrare nel merito della nostra capacità di percezione della tessitura, è noto comunque il nostro approccio qualitativo nella caratterizzazione della tessitura con attributi del tipo grossolana, granulare, casuale, ordinata, filiforme, punteggiate, a grana fine, ecc.. E` intuibile che l’analisi quantitativa della tessitura passa attraverso relazioni statistiche e strutturali tra gli elementi di basi (primitive della tessitura chiamate a volte anche texel) di ciò che noi chiamiamo tessitura. Il nostro sistema visivo determina facilmente le relazioni tra le strutture geometriche fondamentali che caratterizzano una determinata tessitura composta da macrostrutture come può essere il rivestimento regolare di un fabbricato o di un pavimento. Analogamente il nostro sistema visivo è abile ad interpretare facilmente una tessitura composta da microstrutture come si verifica osservando da una immagine da satellite vari tipi di coltivazioni di un territorio oppure le microstrutture associate ad un vestito e quelle osservate da una immagine al microscopio. Possiamo dire che il nostro sistema visivo descrive in modo rigoroso le microstrutture di una tessitura? La risposta non sembra ovvia visto che spesso la caratterizzazione di una tessitura risulta molto soggettiva. 2 Figura 1: Immagine telerilevata Figura 2: Immagini da miscropio 3 Figura 3: Mosaico di Brodatz texture Aggiungiamo inoltre che spesso la nostra soggettività dipende anche dalle condizioni di visibilità e dal particolare contesto. Infatti le caratteristiche di tessitura osservate dal rivestimento di un fabbricato dipende molto dalla distanza e dalle condizioni di illuminazione che influenzano la percezione e l’interpretazione di ciò che si osserva. In altre parole l’interpretazione della tessitura dipende molto dal fattore di scala con cui si osservano le primitive di tessitura, da come sono illuminate e dalle dimensioni dell’immagine considerata. Dal punto di vista di una macchina di visione possiamo associare la definizione di tessitura per una immagine come una particolare disposizione anche ripetitiva dei pixel con una data variazione locale dei livelli di grigio che identificano una o più regioni (regioni con tessitura). * Nella precedente figura sono evidenziate immagini con esempi di tessitura basata su microstrutture e macrostrutture. L’analisi della tessitura comprende tre aspetti: • classificazione • segmentazione • ricostruzione della superficie (shape from texture) 4 La classificazione della tessitura riguarda la ricerca di particolari regioni di tessitura tra varie classi di tessitura predefinite. Questo tipo di analisi, può essere vista in alternativa alle tecniche di classificazione supervisionata e di analisi dei cluster oppure come complementare per raffinare ulteriormente le classi trovate con tali tecniche. Per esempio una immagine da satellite può essere classificata con le tecniche associate all’analisi della tessitura, oppure, una regione classificata come bosco può essere ulteriormente investigata per ricercare particolari sottoclassi con una determinata tessitura. La classificazione della tessitura è realizzata utilizzando metodi statistici che definiscono i descrittori della tessitura, ossia, dalle immagini a livello di grigio, una misura delle caratteristiche di tessitura è valutata attraverso la matrice di co-occorrenza, contrasto, omogeneità, entropia, ecc.. L’approccio statistico è particolarmente adatto quando la tessitura si compone di primitive elementari molto piccole e complesse, tipiche delle microstrutture. Quando una tessitura è composta da primitive di grosse dimensioni (macrostrutture) è fondamentale prima identificare le primitive elementari, ossia la loro forma e la loro relazione spaziale spesso alterata dall’effetto prospettico che modifica la forma e la dimensione delle strutture elementari. Un altro metodo di classificazione della tessitura è quello di confrontare le caratteristiche della tessitura osservata con un modello di tessitura precedentemente sintetizzato. La segmentazione della tessitura determina invece i confini tra regioni che presentano tessiture diverse. Si ricorre alla segmentazione della tessitura quando gli approcci statistici precedenti non forniscono misure accurate delle caratteristiche di tessitura e pertanto sono insufficienti a caratterizzare la tessitura di una regione. 5 Inoltre, la segmentazione di una tessitura è indispensabile quando non si ha nessuna conoscenza sia sul numero delle classi di tessitura che sulle caratteristiche a priori. Gli algoritmi di shape from texture invece sono fondamentali per la ricostruzione della superficie degli oggetti partendo dalle informazioni associate alle macrostrutture quali densità, dimensione e loro orientazione. 6 METODI STATISTICI DELLA TESSITURA L’approccio statistico è particolarmente adatto per l’analisi delle microstrutture. Le primitive elementari delle microstrutture sono determinate analizzando le caratteristiche di tessitura associate a pochi pixel nell’immagine. Ricordiamo che per la caratterizzazione della tessitura è importante derivare la dipendenza spaziale dei pixel con i valori di livelli di grigio. La distribuzione dei livelli di grigio in un istogramma non costituisce una utile informazione per la tessitura poiché non contiene nessuna proprietà spaziale. La psicofisica ha studiato i meccanismi per i quali il sistema visivo umano in alcuni casi fallisce nel discriminare due regioni tessiturali differenti, per esempio una tigre in una foresta fitta (mimetizzazione). I motivi per i quali si è concentrati a studiare la psicofisica della percezione tessiturale è quella di misurare le performance di svariati algoritmi di tessitura con quelle del sistema visivo umano che compiono lo stesso task. Si consideri per esempio la Figura 4(a), in cui vi sono due regioni distinte che però non sono percettibili a prima vista a meno di uno sguardo più puntuale. Questo ci porta a formulare ipotesi su quali sono le proprietà dell’immagine importanti nella percezione umana della tessitura. Allo stesso tempo ci chiediamo come valutare le performance di algoritmi per l’analisi computerizzata della tessitura delle immagini. Supponiamo di avere un algoritmo in grado di discriminare le differenti regioni in Figura 4(a), possiamo dire che funziona bene? Chiaramente dipende dall’obbiettivo dell’algoritmo. Se il nostro obbiettivo è quello di discriminare le due regioni allora va bene, ma se dobbiamo sviluppare un modello computazionale del cervello umano allora non sarà corretto. Statistica del primo ordine Misura la verosimiglianza nell’osservare un valore di grigio in posizioni random nell’immagine. La statistica del primo ordine si può calcolare dall’istogramma dei livelli di grigio dei pixel dell’immagine. Questo dipende solo dal singolo livello di grigio del pixel e non dall’interazione 7 co-occorrente con i pixel dell’intorno. L’intensità media nell’immagine è un esempio di statistica del primo ordine. Statistica del secondo ordine Definita come la verosimiglianza nell’osservare una coppia di livelli di grigio misurati ai capi di un segmento posizionato in modo random nell’immagine con un’orientazione casuale. Lo scienziato Julesz [2] propose la teoria del textons per spiegare i meccanismi iniziali che avvengono nel cervello nel discriminare due coppie di regioni con tessitura differente. I textons sono eventi visuali (per esempio collinearità, terminazioni, chiusure, ecc.) la cui presenza viene rilevata ed usata per discriminare la tessitura. Le terminazioni sono i capi di un segmento o di un angolo. Infatti in figura 4(a) le terminazioni sono sempre tre e per questo non siamo in grado (a prima vista) di distinguere le due regioni. Al contrario in figura 4(b) le terminazioni nella parte alta sono tre mentre nella parte bassa sono 4, per cui siamo in grado di distinguere le differenti tessiture. Altri studi nel campo della psicofisiologia hanno suggerito che un approccio multi-canale, ossia l’analisi della frequenza e orientazione dell’immagine visiva formata sulla retina viene eseguita nel cervello. Cambell e Robson suggerirono che il sistema visivo decompone l’immagine in immagini filtrate a svariate frequenze ed orientazioni. Questi studi hanno portato gli scienziati ad applicare banchi di filtri multicanale per l’analisi della tessitura. (a) (b) 8 Figura 4 Coppie di tessitura con identiche statistiche del secondo ordine. In (a) un essere umano non può percepire le differenze tra la parte inferiore e quella superiore a meno che non scruta da vicino le differenze. In (b) le due regioni distinte si possono immediatamente discriminare da un osservatore. Applicazioni Svariate sono le applicazioni di computer vision con l’uso dell’analisi della tessitura. Inspezionamento Nel campo del tessile, sono stati utilizzati algoritmi per il riconoscimento automatico dei difetti. Sono stati rilevati sia difetti di punti che di linee nelle immagini. A partire da maschere di convoluzione sparse, i banchi di filtri vengono selezionati in modo adattivo in base all’immagine da analizzare. Le features tessiturali vengono quindi estratte dalle immagini filtrate e date in input ad un classificatore basato sulla distanza di Mahalanobis per ricercare le aree in cui è presente il difetto. Analisi nel contesto della Medicina Le applicazioni sono orientate alla discriminazione di tessuto normale rispetto a quello anomalo. In base al task dell’applicazione, le feature estratte catturano proprietà morfologiche, proprietà del colore o alcune proprietà dell’immagine. Elaborazione di documenti Per esempio l’uso dell’analisi della tessitura per la localizzazione di zone in cui è presente un codice a barre. MATRICE DI CO-OCCORRENZA DEI LIVELLI DI GRIGIO (STATISTICA 2° ORDINE) La relazione spaziale dei livelli di grigio è espressa dalla matrice di cooccorrenza PR(L1,L2) che rappresenta l’istogramma bidimensionale dei livelli di grigio dell’immagine, considerato come stima di probabilità congiunta che una coppia di pixel abbia livelli di grigio L1 ed L2 e che soddisfano una relazione di distanza R per esempio i due pixel si trovano tra loro ad una distanza d = (dx,dy) espressa in pixel. E` noto che ogni elemento dell’istogramma bidimensionale indica la frequenza congiunta (co-occorrenza) della presenza nell’immagine di 9 coppie di livello di grigio L1=I(i,j) ed L2=I(l,k) in cui i due pixel si trovano ad una distanza di (dx,dy) pixel. Per l’analisi della tessitura siamo interessati a matrici di co-occorrenza del tipo PR(L1,L2) dove R=(θ,d) indica la co-occorrenza di coppie di pixel a distanza d ed in direzione θ. Diverse di queste matrici possono essere calcolate per caratterizzare le microstrutture di tessitura ed alcune matrici di co-occorrenza di tipo simmetrico sono definite come segue: Pθ,d=(dx,dy)(L1=I(i,j),L2=I(l,k)) dove dx=|i-l| e dy=|j-k|. Alcune matrici significative sono: P0°,d(L1,L2) con (i-l) = 0 e |j-k| = d P45°,d(L1,L2) con (i-l) = d e (j-k) = -d P90°,d(L1,L2) con (i-l) = d e |j-k| = 0 P135°,d(or -d)(L1,L2) con (i-l) = d e (j-k) = d o (i-l) = -d e (j-k) = d o (i-l) = -d e (j-k) = -d Per esempio, calcoliamo P0°,1(L1,L2) per la seguente immagine che presenta massimo 4 livelli di grigio: 0 0 1 1 0 0 1 1 0 2 2 2 2 2 3 3 4 2 1 0 P0o ,1 = 2 4 0 0 1 0 6 1 0 0 1 2 2 1 3 0 P135o ,1 = 1 2 1 0 3 1 0 2 0 0 2 0 10 In generale per la descrizione della tessitura basata sulla matrice di cooccorrenza si calcolano le seguenti caratteristiche (features): 1- Energia o misura del grado di omogeneità della tessitura Energy = T1 = ∑ ∑ Pθ,2d ( L1 , L2 ) L1 L2 corrisponde al momento angolare del secondo ordine. Valori alti dell’energia corrispondono a tessitura molto omogenea ossia le differenze dei valori di grigio sono quasi zero nella maggior parte delle coppie di pixel per esempio con distanza di 1 pixel. Per valori bassi dell’energia si riscontrano differenze equamente distribuite spazialmente. 2- Entropia Entropia = T2 = − ∑ ∑ Pθ, d ( L1 , L2 ) ⋅ log[Pθ, d ( L1 , L2 )] L1 L2 Si osserva che l’entropia è alta quando ogni elemento della matrice di cooccorrenza ha valore uguale ossia quando le frequenze P(L1,L2) sono equidistribuite. L’entropia ha valori bassi se la matrice di co-occorrenza è diagonale ossia esistono coppie di livello di grigio dominanti spazialmente per una certa direzione e distanza. 3- Massima probabilità: T3 = max Pθ, d ( L1 , L2 ) ( L1 , L2 ) 4- Contrasto oppure misura della variazione locale di intensità: T4 = ∑∑ ( L1 − L2 ) 2 Pθ , d ( L1 , L2 ) L1 L2 11 Un basso valore del contrasto si ottiene se l’immagine ha livelli di grigio quasi costanti, viceversa presenta valori alti per immagini con forti variazioni locali di intensità ossia con tessitura molto pronunciata. 5- Momento della differenza inversa: T5 = ∑∑ L1 L2 Pθ ,d ( L1 , L2 ) 1 + ( L1 − L2 ) 2 con L1 ≠ L 2 6- Correlazione: ∑∑ [( L 1 T6 = L1 − μ x )( L2 − μ y ) Pθ ,d ( L1 , L2 )] L2 σ xσ y dove le medie sono calcolate con: μ x = ∑ L1 ∑ Pθ ,d ( L1 , L2 ) L1 L2 μ y = ∑ L2 ∑ Pθ ,d ( L1 , L2 ) L2 L1 e le varianze: σ x = ∑ ( L1 − μ x )2 ∑ Pθ, d ( L1 , L2 ) L1 L2 σ y = ∑ ( L2 − μ y )2 ∑ Pθ, d ( L1 , L2 ) L1 L2 Le medie e varianze sono calcolate rispetto a Pd ( x ) = ∑ Pθ,d ( x , L2 ) L2 Pd ( y ) = ∑ Pθ,d ( L1 , y ) L1 Le caratteristiche T=(T1,T2.......T6) calcolate basandosi sulla occorrenza dei livelli di grigio, risultano efficaci per microstrutture ma non risulta adeguata per descrivere primitive di grosse dimensioni dal momento che T informazioni di forma. matrice di codescrivere le tessiture con non include 12 Dal punto di vista implementativo si richiede molta memoria e calcolo comunque accessibili con le moderne piattaforme basate su processori Risc. Per limitare le richieste di memoria per la matrice P conviene ridurre i livelli di grigio L a 64 sempre verificando il livello di degradazione dell’immagine rispetto anche al tipo di applicazione. Caratteristiche di tessitura mediante autocorrelazione Una caratteristica della tessitura è valutata mediante l’analisi delle frequenze spaziali. In questo modo sono identificate le strutture spaziali ripetitive della tessitura. Primitive di tessitura caratterizzate da strutture fini presentano alti valori di frequenze spaziali, viceversa primitive con strutture più grossolane risultano con basse frequenze spaziali. La funzione di autocorrelazione di una immagine può essere utilizzata per valutare le frequenze spaziali ossia per misurare il livello di omogeneità o di ruvidità (fineness/corseness) della tessitura presente nell’immagine. Con la funzione di autocorrelazione, il singolo pixel coincide con la primitiva della tessitura ossia con il valore di livello di grigio. La disposizione spaziale della tessitura è descritta dal coefficiente di correlazione che misura la relazione spaziale tra i pixel (primitive). Per una immagine f(i,j) di dimensione N×N il coefficiente di correlazione ρff è dato da: ρ ff ( l , k ) = N −l N −k N2 ∑ ∑ f ( i, j ) ⋅ f ( i + l , j + k ) ( N − l )( N − k ) i=1 j=1 N N ∑ ∑ f 2 ( i, j ) i=1 j =1 dove 0 ≤ k,l ≤ N-1. 13 Se le primitive della tessitura sono piuttosto di grosse dimensioni il valore del coefficiente di correlazione decresce lentamente con l’aumentare della distanza d (presente tessitura grossolana con basse frequenze spaziali) se invece decresce rapidamente siamo in presenza di tessitura fine con alte frequenze spaziali (Figura 5). Figura 5 Funzione di autocorrelazione in funzione della distanza dei due pixel in elaborazione Un approccio alternativo per la misura delle frequenze spaziali è ottenuto mediante la trasformata di Fourier. I primi approcci che facevano uso di queste feature spettrali dividevano il dominio delle frequenze in anelli concentrici (in base al contenuto frequenziale) e spicchi (in base alle strutture orientate). Il dominio in frequenza è pertanto suddiviso in regioni e l’energia totale di ciascuna regione viene presa come feature caratterizzante la tessitura. Consideriamo con F(u,v) la trasformata di Fourier dell’immagine f(i,j) di cui si vuole misurare la tessitura e con |F(u,v)|2 lo spettro di potenza (il simbolo |.| rappresenta il modulo di un numero complesso), che sappiamo coincidere con la trasformata di Fourier della funzione di autocorrelazione ρff(l,k). In Figura 6 è mostrata una immagine con una tessitura verticale e lo spettro di potenza. 14 Figura 6 Feature tessiturali dallo spettro di potenza. In (a) l’immagine originale ed in (b) è rappresentato il suo spettro di potenza. La natura direzionale di questa tessitura si riflette nella distribuzione direzionale dell’energia nello spettro di potenza. Si può osservare come le strutture lineari verticali della tessitura si riflette nella distribuzione orizzontale dell’energia nello spettro di potenza. Questo dimostra che è possibile derivare le caratteristiche di tessitura in relazione alla distribuzione dell’energia nello spettro di potenza. In particolare le caratteristiche della tessitura in termini di caratteristiche spettrali sono ottenute dividendo il dominio di Fourier in regioni circolari concentrici di raggio r che racchiude l’energia che caratterizza il livello di finezza/ruvidità della tessitura (alta energia per grandi valori di r ossia alta frequenza implica presenza di strutture fini) mentre alta energia con valori piccoli di r ossia basse frequenze implica presenza di strutture grossolane. L’energia valutata in settori del dominio spettrale individuati da θ riflette le caratteristiche di direzionalità della tessitura. Infatti nell’esempio di Figura 6, tutta l’energia è localizzata nei settori orizzontali (θ=00) e la tessitura presente nell’immagine è verticale (θ+π/2). 15 Figura 7 Feature tessiturali calcolate dallo spettro di potenza dell’immagine, a sinistra per le caratteristiche di granularità ed il grafico di destra per quelle di direzionalità. Le feature che pertanto possono essere estratte per anello sono f r1r2 = 2π r1 ∫ ∫ | F (u, v) | 2 drdθ 0 r2 e per orientazione f θ1θ 2 = θ2 ∞ ∫θ ∫ | F (u, v) | 1 2 drdθ 0 dove r e θ rappresentano le coordinate polari dello spettro di potenza: r = u2 + v 2 θ = a tan( v / u) 16 In alternativa a Fourier, altre trasformate possono essere usate per caratterizzare la tessitura. La scelta deve essere fatta in relazione alla migliore invarianza delle caratteristiche di tessitura rispetto al rumore. La scelta più appropriata è quella di considerare caratteristiche combinate spaziali e spettrali per descrivere la tessitura. Tessitura della frequenza dei bordi Una caratteristica della tessitura può essere espressa in relazione al numero di bordi presenti in una finestra. Per tale scopo è necessario applicare all’immagine di input f(i,j) uno degli algoritmi già noti per l’estrazione dei bordi, per produrre una mappa di bordi B(i,j) con B(i,j)=1 se è presente un bordo e B(i,j)=0 nel caso contrario. Normalmente, la mappa B è binarizzata con valori di soglia molto bassi. Una misura di tessitura è data come segue: 1 T ( i, j ) = 2 W w w ∑ ∑ B( i + l , j + k ) l =− w k =− w dove W è la dimensione della finestra di interesse. Una variante a questo approccio si ottiene considerando il gradiente G(i,j) in alternativa alla mappa dei bordi B. Tessitura basata sui modelli mrf e frattali Quando è possibile una descrizione analitica della tessitura questa può essere modellata mediante alcuni parametri caratteristici che sono successivamente utilizzati per l’analisi della tessitura stessa. 17 Se ciò è possibile, tali parametri sono utilizzati per descrivere la tessitura e per avere una sua rappresentazione (sintesi). La modellazione di tessitura più diffusa è quella dei campi random di Markov (Markov Random Fields - MRF) discreti che sono ottimali per rappresentare le informazioni strutturali locali di una immagine. Tali modelli si basano sull’ipotesi che l’intensità in ciascun pixel dell’immagine dipende soltanto dalla intensità dei pixel nella sua vicinanza a meno di eventuale rumore aggiuntivo. Con tale modello, ciascun pixel dell’immagine f è modellato come una combinazione lineare dei valori di intensità dei pixel vicini e da un rumore aggiuntivo n: f (i, j ) = ∑ f (i − l , j − k ) ⋅ h(l , k ) + n(i, j ) ( l ,k )∈W dove W indica l’insieme dei pixel nelle vicinanze del pixel corrente (i,j). In questo modello MRF, i parametri sono rappresentati dai pesi h che sono calcolati con l’approccio ai minimi quadrati. La tessitura dell’immagine modello è completamente descritta con questi parametri, che sono successivamente confrontati con quelli stimati dall’immagine osservata per determinare la classe di tessitura. I modelli frattali sono utilizzati quando alcune strutture locali dell’immagine rimangono simili a se stessi (self-similarity) osservati a diversi cambiamenti di scala. Mandelbrot [1] ha proposto la geometria frattale per spiegare le strutture del mondo naturale. Dato un insieme chiuso A nello spazio Euclideo a dimensione n, si dice che ha la proprietà di essere self-similar quando A è l’unione di N distinte (non sovrapposte) copie di se stesso, ciascuna ridotta di scala di un fattore r. Con questo modello una tessitura è caratterizzata dalla dimensione frattale D che è data dalla equazione: 18 D= log N log(1 / r ) La dimensione frattale è utile per caratterizzare la tessitura, e D esprime una misura di ruvidità della superficie. Intuitivamente, più è grande la dimensione frattale D, più la superficie è ruvida. La tessitura relativa a molte superfici naturali non può essere modellata con modelli frattali deterministici poiché presentano variazioni statistiche. Da ciò consegue che la stima della dimensione frattale di una immagine risulta difficile. Vi sono diversi metodi per la stima del parametro D, uno di essi è descritto in [3] così di seguito indicato. Dato l’insieme A chiuso, si considerano finestre di dimensioni Lmax di lato, tale da ricoprire l’insieme A. Una versione ridotta di un fattore r di A risulterà di N = 1 / r D insiemi simili. Questo nuovo insieme può essere racchiuso da finestre di dimensioni L = rLmax , e pertanto, il loro numero è legato alla dimensione frattale: N ( L) = 1 ⎡ Lmax ⎤ = r D ⎢⎣ L ⎥⎦ (*) La dimensione frattale è pertanto stimata dalla equazione (*) come segue. Per un dato valore di L, si divide lo spazio n-dimensionale in quadrati di lato L e si contano il numero di quadrati che ricoprono A. Si ripete la procedura per diversi valori di L e quindi si stima il valore della dimensione frattale D con la pendenza della retta: ln( N ( L)) = − D ln( L) + D ln( Lmax ) che si può calcolare mediante una interpolazione lineare ai minimi quadrati dei dati disponibili, ossia un plot del ln(L) verso ln( N ( L)) . Un metodo migliorativo al precedente è suggerito in [4], in cui si assume di stimare la dimensione frattale di una superficie dell’immagine A. Sia P(m,L) la probabilità che vi sono m punti all’interno di una finestra di dimensione L centrata ad una posizione casuale sulla superficie A. Sia M il numero totale di punti nell’immagine. Quando si sovrappongono finestre di dimensione L sull’immagine, allora il valore ( M / m) P(m, L) rappresenta il numero atteso di finestre con all’interno m punti. Il numero atteso di finestre che ricopre l’intera immagine è dato da 19 N E[ N ( L)] = M ∑ (1 / m) P(m, L) . m =1 Il valore atteso di N(L) è proporzionale a per stimare la dimensione frattale D. L− D e pertanto può essere usato In [3] è stato dimostrato che la dimensione frattale non è sufficiente a catturare tutte le proprietà tessiturali di una immagine. Infatti, ci possono essere tessiture che visivamente risultano diverse ma che hanno dimensioni frattali simili. Per ovviare a questo inconveniente si è introdotta una misura, denominata lacunarità che cattura di fatto proprietà tessiturali in modo da essere in accordo con la percezione umana. La misura è definita da: 2 ⎡⎛ M ⎞ ⎤ Λ = E ⎢⎜⎜ − 1⎟⎟ ⎥ ⎢⎣⎝ E (M ) ⎠ ⎥⎦ con M la massa dell’insieme frattale ed E(M) il suo valore atteso. Questa quantità misura la discrepanza tra la massa attuale e quella attesa. Si hanno valori piccoli di lacunarità quando la tessitura è fine, mentre grandi quando è grossolana. La massa dell’insieme frattale è legata alla lunghezza L nel modo seguente: M ( L) = KLD . La distribuzione di probabilità P(m,L) può essere calcolata nel modo N N seguente. Siano M ( L) = ∑ mP(m, L) e M 2 ( L) = ∑ m 2 P(m, L) , si definisce la m =1 m =1 lacunarità nel modo seguente: Λ ( L) = M 2 ( L) − ( M ( L)) 2 ( M ( L)) 2 Con E[M(L)] il valore atteso di M(L). Questa misura di lacunarità dell’immagine viene usata come feature della tessitura per scopi di segmentazione e classificazione. Tessitura mediante filtraggio spaziale Le caratteristiche di tessitura possono essere determinate mediante il filtraggio spaziale scegliendo una risposta impulsiva del filtro che accentua in modo efficace le microstrutture della tessitura. 20 Allo scopo Laws ha proposto 9 misure di tessitura mediante la convoluzione dell’immagine f(i,j) con 9 maschere di filtraggio (3×3) che rappresentano le risposte impulsive del filtro per esaltare le microstrutture della tessitura. Dai risultati della convoluzione ge sono calcolate le relative dispersioni Te che costituiscono le caratteristiche di tessitura che esprimono la misura energetica delle microstrutture. Le maschere proposte da Laws sono le seguenti: ⎡1 2 1 ⎤ 1 ⎢ 2 4 2⎥⎥ ⎢ 36 ⎢⎣1 2 1 ⎥⎦ ⎡1 0 − 1 ⎤ 1 ⎢ 2 0 − 2⎥⎥ ⎢ 12 ⎢⎣1 0 − 1 ⎥⎦ ⎡ − 1 2 − 1⎤ 1 ⎢ − 2 4 − 2⎥⎥ ⎢ 12 ⎢⎣ − 1 2 − 1 ⎥⎦ ⎡− 1 − 2 − 1⎤ 1 ⎢ 0 0 0 ⎥⎥ ⎢ 12 ⎢⎣ 1 2 1 ⎥⎦ ⎡ 1 0 − 1⎤ 1⎢ 0 0 0 ⎥⎥ ⎢ 4 ⎢⎣− 1 0 1 ⎥⎦ ⎡− 1 2 − 1⎤ 1⎢ 0 0 0 ⎥⎥ ⎢ 4 ⎢⎣ 1 − 2 1 ⎥⎦ ⎡− 1 − 2 − 1⎤ ⎡− 1 0 1 ⎤ 1⎢ 1 ⎢ ⎥ 2 0 − 2⎥⎥ 2 4 2⎥ ⎢ ⎢ 12 4 ⎢⎣− 1 − 2 − 1⎥⎦ ⎢⎣− 1 0 1 ⎥⎦ Maschere delle risposte impulsive per i filtri di Laws ⎡ 1 −2 1 ⎤ 1⎢ − 2 4 − 2⎥⎥ ⎢ 4 ⎢⎣ 1 − 2 1 ⎥⎦ Le microstrutture sono inizialmente estratte dall’immagine di input f con le convoluzioni: ge(i,j) = f(i,j) * he(i,j) e = 1,9 21 mentre le misure di tessitura Te sono calcolate da 1 Te (i, j ) = 2 W w w ∑ ∑ [ g (i + m, j + n) − μ (i + m, j + n)] 2 m=− w n=− w e e che rappresenta la deviazione standard delle misure di tessitura ottenute dal processo di convoluzione, mentre μe(i,j) è la media locale sulla finestra W×W della misura di tessitura ge nelle vicinanze del pixel in elaborazione (i,j) stimata da: 1 μ e ( i, j ) = 2 W w w ∑ ∑ g e ( i + m, j + n) m=− w n=− w con W = 2w + 1. I risultati delle caratteristiche di tessitura con le maschere energetiche di Laws sono state applicate ad alcune immagini che rappresentano un mosaico campione dei campi di tessitura di Brodatz che sono identificati al 90%. Le maschere di filtraggio di LAWS sono generate dalle tre maschere monodimensionali di base: 1 h1 = 16 2 1 h2 = 1 2 1 1 0 h3 = 12 −2 −1 1 che possono essere convolute hi*hiT con se stesse una volta trasposte oppure con ciascuno delle altre maschere monodimensionali hi*hjT per produrre le maschere 3×3 bidimensionali hi di Laws. Per stimare caratteristiche di tessitura associate a microstrutture più grossolane possono essere utilizzate maschere di filtraggio più grandi (per esempio 5×5). Le maschere monodimensionali di base 5×1 sono ricavate mediante convoluzione di quelle 3×1 come segue: 5 h1 = 3h1 *3 h1 = [1 2 1] * [1 2 1] = [1 4 6 4 1] 22 analogamente per h2 ed h3, mentre per 5 5 h4 =3h1*3 h2 = [1 2 1] * [1 0 −1] = [ −1 −2 0 2 1] h5 =3h2 *3 h3 = [1 0 −1] * [1 −2 1] = [1 −2 0 2 −1] Da queste maschere di base 5×1 si possono derivare mediante convoluzione quelle bidimensionali 5×5 come segue: 5 hi = hiT * h j con i,j = 1,..,5 Ricordiamo che le maschere di base monodimensionali [1 2 1] rappresentano operatori di filtraggio per la stima della media, per l’estrazione dei bordi [1 0 -1] orizzontali e per rilevare punti isolati [1 -2 1]. In alternativa alle maschere di Laws, Haralick ha proposto quelle utilizzate per l’estrazione dei bordi per la misura della tessitura derivata con le seguenti maschere di base: ⎡1⎤ ⎡ 1⎤ ⎢⎥ ⎢ ⎥ h1 = 13 ⎢1⎥ h2 = 12 ⎢ 0⎥ h3 = ⎢⎣1⎥⎦ ⎢⎣ 1⎥⎦ ⎡1⎤ ⎥ 1⎢ 2 ⎢ −2 ⎥ ⎢⎣ 1 ⎥⎦ e le relative maschere bidimensionali sono: ⎡1 1 1⎤ 1⎢ 1 1 1⎥⎥ ⎢ 9 ⎢⎣1 1 1⎥⎦ ⎡− 1 − 1 − 1⎤ 1⎢ 0 0 0 ⎥⎥ ⎢ 6 ⎢⎣ 1 1 1 ⎥⎦ ⎡1 0 − 1⎤ 1⎢ 1 0 − 1⎥⎥ ⎢ 6 ⎢⎣1 0 − 1⎥⎦ 1 1 ⎤ ⎡1 1⎢ − 2 − 2 − 2⎥⎥ ⎢ 6 ⎢⎣ 1 1 1 ⎥⎦ ⎡− 1 0 1 ⎤ 1⎢ 0 0 0 ⎥⎥ ⎢ 4 ⎢⎣ 1 0 − 1⎥⎦ ⎡1 − 2 1⎤ 1⎢ 1 − 2 1⎥⎥ ⎢ 4 ⎢⎣1 − 2 1⎥⎦ 23 ⎡ 1 0 − 1⎤ 1⎢ − 2 0 2 ⎥⎥ 4⎢ ⎢⎣ 1 0 − 1⎥⎦ ⎡− 1 2 − 1⎤ 1⎢ 0 0 0 ⎥⎥ 4⎢ ⎢⎣ 1 − 2 1 ⎥⎦ ⎡ 1 −2 1 ⎤ 1⎢ − 2 4 − 2⎥⎥ 4⎢ ⎢⎣ 1 − 2 1 ⎥⎦ Anche queste maschere possono essere estese con dimensioni 5×5 analogamente a quelle calcolate in precedenza. Metodi sintattici per la tessitura La descrizione sintattica della tessitura si basa sull’analogia tra la relazione spaziale delle primitive di tessitura e la struttura di un linguaggio formale. Le descrizioni delle varie classi di tessiture formano un linguaggio che può essere rappresentato dalla sua grammatica che costituisce le sue regole analizzando le primitive delle tessiture campioni (training set) nella fase di apprendimento. La descrizione sintattica della tessitura è basata sull’idea che la tessitura si compone di primitive ripetute e disposte in modo regolare nell’immagine. I metodi sintattici della tessitura, per poterla completamente descrivere, devono determinare essenzialmente le primitive e le regole con cui tali primitive sono disposte spazialmente e come sono ripetute. Una tipica soluzione sintattica prevede di utilizzare una grammatica con delle regole che genera la tessitura delle primitive mediante regole di trasformazione per un numero limitato di simboli. I simboli rappresentano in pratica varie tipologie di primitive della tessitura mentre le regole di trasformazione rappresentano le relazioni spaziali tra le primitive. L’approccio sintattico deve comunque prevedere che le tessiture del mondo reale sono normalmente irregolari con la presenza di errori nelle strutture ripetute in modo non prevedibile e con notevole distorsioni. 24 Questo significa che le regole della grammatica possono non descrivere in modo efficiente le tessiture reali se non sono variabili e la grammatica deve essere di vario tipo (grammatica stocastica). Consideriamo una semplice grammatica per la generazione della tessitura partendo con un simbolo di partenza S ed applicando le regole di trasformazione chiamate regole di forma (shape rules). La tessitura è generata attraverso le varie fasi: 1-Attivare il processo di generazione della tessitura applicando alcune regole di trasformazione al simbolo di partenza S. 2-Trovare una parte della tessitura generata nel passo 1 che sia confrontabile con il primo membro di alcune tra le regole di trasformazione previste. Un corretto confronto deve essere verificato tra simboli terminali e non terminali che appaiono nel primo membro delle regole di trasformazione scelta con i corrispondenti simboli terminali e non terminali di parte della tessitura a cui la regola è stata applicata. Se parte di questa tessitura non è trovata l’algoritmo termina. 3-Trovare una trasformazione appropriata che può essere applicata al primo membro della regola scelta per farla coincidere perfettamente alla tessitura considerata. 4-Applicare questa trasformazione geometrica al secondo membro della regola di trasformazione. 5-Sostituire la parte specificata di tessitura (la porzione trasformata che coincide con il primo membro della regola scelta) con quella trasformata dal secondo membro della regola scelta. 6-Continua dal passo 2. Spieghiamo con un esempio l’algoritmo presentato per una grammatica G=[Vn,Vt,P,S]. 25 Siano Vn i simboli non terminali e Vt l’insieme dei simboli terminali, R l’insieme delle regole ed S il simbolo di partenza. Come esempio di grammatica consideriamo: utilizzata per generare una tessitura con primitive a forma geometrica esagonali. Con questa grammatica è possibile analizzare l’immagine seguente per riconoscere o rigettare la tessitura esagonale rappresentata. Il riconoscimento comporta di ricercare nell’immagine prima le primitive esagonali della tessitura e poi verificare se è confrontabile con alcune che si trovano al secondo membro delle regole di trasformazione R. Metodo per la descrizione di tessiture orientate In diverse applicazioni siamo di fronte a tessiture cosiddette orientate ossia le primitive sono rappresentate da una selettività di orientamento locale che varia nei vari punti dell’immagine. 26 In altre parole la tessitura si presenta con una orientazione locale dominante ed in questo caso si parla di tessitura con elevato grado di anisotropia locale. Per descrivere e visualizzare questa tipologia di tessitura è conveniente pensare all’immagine di livello di grigio come se rappresentasse una mappa di flusso dove ogni pixel rappresenta un elemento di fluido soggetto ad un moto nella direzione dominante della tessitura ossia nelle direzioni di massima variazione dei livelli di grigio. In analogia a quanto avviene nello studio della dinamica dei fluidi, dove ogni particella è soggetta ad un vettore velocità che è composto dal suo modulo e dalla direzione, anche nel caso di immagini con tessiture orientate, possiamo definire un campo di orientazione della tessitura chiamato semplicemente campo di tessitura orientato (Oriented Texture Field), che si compone in realtà di due immagini: immagine dell’orientazione e immagine di coerenza. L’immagine di orientazione comprende l’informazione locale di orientazione della tessitura per ciascun pixel, l’immagine di coerenza rappresenta il grado di anisotropia sempre in ciascun pixel dell’immagine. Le immagini dei campi di tessitura orientata (CTO) secondo quanto proposto da RAO sono calcolati con le seguenti cinque fasi: 1. Filtraggio Gaussiano per attenuare il rumore presente nell’immagine 2. Calcolo del gradiente dell’immagine Gaussiana 3. Stima dell’angolo di orientazione locale usando la funzione tangente inversa 4. Calcolo della media delle stime di orientazione locale per una data finestra centrata sul pixel in elaborazione 5. Calcolo di una stima della coerenza (informazione di flusso della tessitura) per ogni punto dell’immagine. Le prime due fasi come è noto sono realizzate con gli algoritmi standard di estrazione dei bordi. Ricordiamo inoltre che l’operatore di gradiente della Gaussiana risulta una soluzione ottimale per l’estrazione dei bordi. 27 Precisiamo inoltre che il filtro Gaussiano è caratterizzato dalla varianza σ che definisce il livello di dettaglio con cui sono estratte le figure geometriche della tessitura. Questo parametro indica pertanto il grado di dettaglio (scala) della tessitura da estrarre. Nella terza fase è calcolata l’orientazione locale di tessitura mediante la funzione tangente inversa che richiede in input un solo argomento e fornendo in output un risultato univoco nell’intervallo (-π/2, π/2). Con gli algoritmi di estrazione dei bordi normalmente la direzione di massimo gradiente è calcolata con la funzione arcotangente che richiede due argomenti e non fornisce un risultato univoco. Nella quarta fase le stime di orientazione sono livellate mediante un filtro gaussiano con varianza σ2. Questo secondo filtro deve avere una varianza più grande del precedente (σ2>>σ1), deve produrre un notevole livellamento tra le varie stime di orientazione. Il valore di σ2 deve essere comunque più piccolo della distanza entro cui le orientazioni della tessitura presentano le variazioni più ampie, ed infine, non deve attenuare (bluring) i dettagli della tessitura stessa. La quinta fase calcola la coerenza di tessitura che è la stima di orientazione locale dominante ossia la direzione normalizzata dove sono proiettati la maggior parte dei vettori di direzione dei pixel vicini. Se le orientazioni sono coerenti, poi le proiezioni normalizzate avranno valore vicino all’unità, nel caso contrario, le proiezioni tendono a cancellarsi producendo un risultato vicino a zero. Stima della direzione locale dominante Consideriamo una zona dell’immagine con diversi segmenti le cui orientazioni indicano la disposizione locale della tessitura. Si potrebbe calcolare come direzione dominante quella corrispondente al vettore risultante somma delle singole direzioni locali. 28 Questo approccio avrebbe l’inconveniente di non poter determinare una unica direzione in quanto si avrebbero due angoli θ e θ + π. Un altro inconveniente si verificherebbe se si considerassero segmenti orientati, in quanto, alcuni di questi con segno opposto si annullerebbero, invece di contribuire alla stima dell’orientazione dominante. Rao suggerisce la seguente soluzione. Siano N i segmenti locali, e consideriamo una retta orientata ad un angolo θ rispetto all’asse orizzontale x. Consideriamo un segmento j con angolo θj e con Rj indichiamo la sua lunghezza. La proiezione del segmento sulla linea considerata è Rjcos(θj - θ). La somma di valori assoluti di tutte le proiezioni di tutti gli altri segmenti è data da: N S1 = ∑ | R j ⋅ cos( θ j − θ)| j =1 dove S1 varia col variare dell’orientazione della linea θ. L’orientazione dominante si ottiene per un valore di θ dove S1 è massimo. In tal caso θ è calcolato ponendo a zero la derivata della funzione S1 rispetto a θ. 29 Per eliminare il problema di differenziazione della funzione valore assoluto (non differenziabile) è conveniente considerare e differenziare la seguente somma S2: N S2 = ∑ R2j ⋅ cos 2 ( θ j − θ) j =1 che derivando rispetto a θ si ottiene: N dS2 = −∑ 2 R 2j ⋅ cos( θ j − θ)sin( θ j − θ) dθ j =1 e ponendola uguale a zero, si ottengono le seguenti equazioni: N −∑ R ⋅ sin2( θ j − θ) = 0 j =1 2 j N N ∑ R ⋅ sin2θj cos 2θ = ∑ R2j ⋅ cos 2θj sin2θ j =1 2 j j =1 da cui N tan 2θ = ∑ R 2j ⋅ sin2θ j j =1 N ∑ R 2j ⋅ cos 2θ j j =1 Se indichiamo con θ ′ il valore di θ per cui si ottiene il massimo valore di S2 questo coincide con la stima migliore di orientazione locale dominante. Vediamo ora come viene utilizzata l’equazione precedente per il calcolo della orientazione dominante in ogni pixel dell’immagine. Consideriamo con gx e gy le componenti orizzontali e verticali del gradiente in ogni punto dell’immagine, e la quantità complessa gx + igy che costituisce la rappresentazione dello stesso pixel nel piano complesso. Il vettore gradiente in un punto (l,k) dell’immagine può essere rappresentato in coordinate polari con Rm,neiθm,n. A questo punto possiamo calcolare l’angolo θ di orientazione locale dominante per un intorno di (m,n) definita dalla finestra di N×N pixel come segue: 30 N θ= N ∑∑ Rm2 .n ⋅ sin 2θm, n 1 −1 m=1n =1 tan ( N N ) 2 2 ∑ ∑ Rm, n ⋅ cos 2θm, n m =1 n =1 L’orientazione dominante θ nel punto (m,n) è data da θ+π/2 poiché il vettore gradiente è perpendicolare alla direzione di anisotropia. Coerenza della tessitura Sia G(x,y) il modulo del gradiente calcolato nella fase 2 nel punto (x,y) del piano immagine. La misura della coerenza nel punto (x0,y0) è calcolata considerando in questo punto centrato una finestra di dimensioni W×W. Per ciascun punto (xi,yj) della finestra è proiettato il vettore gradiente G(xi,yj) considerato nella direzione θ(xi,yj) nel vettore unitario in direzione θ(x0,y0). In altre parole il vettore gradiente proiettato è dato da: G ( x i , y i ) ⋅ cos[θ( x 0 , y 0 ) − θ( x i , y i )] La somma normalizzata dei valori assoluti di tali proiezioni di vettori gradienti compresi nella finestra è considerata come stima κ della misura di coerenza: 31 κ= ∑ | G( xi , yi ) ⋅ cos[θ( x0 , y0 ) − θ( xi , yi )]| ( i , j ) ∈W ∑ G ( xi , yi ) ( i , j ) ∈W Questa misura è correlata con la dispersione della direzionalità dei dati. * Una migliore misura della coerenza è ottenuta pesando il valore dell’equazione precedente con il modulo del gradiente nel punto (x0,y0): ρ = G ( x0 , y0 ) ∑ | G( xi , yi ) ⋅ cos[θ( x0 , y0 ) − θ( xi , yi )]| ( i , j ) ∈W ∑ G ( xi , yi ) ( i , j ) ∈W In questo modo la coerenza si presenta con valori alti in corrispondenza di valori alti del gradiente ossia di forti variazioni d’intensità nell’immagine. Immagini intrinseche dalla tessitura orientata Le immagini di coerenza e dell’orientazione dominante calcolate in precedenza sono considerate come immagini intrinseche secondo il paradigma di Marr (primal sketch). Queste immagini sono ricavate con un approccio indipendente dal dominio di applicabilità. Sono anche indipendenti dalle condizioni di luce. Alcune condizioni possono essere imposte in relazione al tipo di applicazione per produrre immagini intrinseche appropriate. Queste immagini intrinseche trovano un campo di utilizzo per le ispezioni di difetti nell’ambito dell’automazione industriale (difetti del legno, pelli, tessuti, ecc.). Da queste immagini intrinseche è possibile modellare primitive di tessiture orientate (spirali, ellissi, strutture radiali) per facilitare la segmentazione dell’immagine e l’interpretazione. Riferimenti 32 [1] [2] [3] [4] Mandelbrot, B. B., The Fractal Geometry of Nature, Freeman, San Francisco, 1983. Julesz, B., “Textons, the Elements of Texture Perception, and Their Interactions,” Nature, 290, pp. 91-97, 1981. Keller, J. M., S. Chen, and R. M. Crownover, “Texture Description and Segmentation through Fractal Geometry,” Computer Vision, Graphics, and Image Processing, 45, pp. 150-166, 1989. Voss, R., “Random fractals: Characterization and measurement,” In Scaling Phenomena in Disordered Systems, R. Pynn and A. Skjeltorp, (Editors), Plenum, New York, 1986.