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.