SEGMENTAZIONE DI
IMMAGINI
Elaborazione dei Segnali Multimediali
Raffaele Gaetano
06 Maggio 2014
DEFINIZIONE
• La segmentazione è un processo di
basso livello utile a molte applicazioni
basate sull’elaborazione delle immagini.
• Effettua un partizionamento
dell’immagine identificandone le regioni
(oggetti) costituenti, sulla base di criteri
specifici per ogni applicazione.
RAPPRESENTAZIONE
• Mappa di etichette
• Gli elementi della mappa sono in corrispondenza univoca
con i pixel dell’immagine e ne identificano un “segmento”
(regione) di appartenenza.
RAPPRESENTAZIONE
• Mappa di contorni
• Gli elementi non nulli della mappa identificano il
contorno tra le varie regioni di interesse.
DEFINIZIONE
• Una segmentazione tipicamente gode di
quattro proprietà fondamentali:
Nessun pixel è condiviso tra due o più regioni.
Tutti i pixel dell’immagine sono associati ad
una regione.
Tutte le regioni sono omogenee (rispetto a
criteri specifici per ogni applicazione).
Due regioni diverse non sono «omogenee».
POSSIBILI APPLICAZIONI
• Tecniche di codifica ad oggetti (Region-based Image
Coding)
Shape-Adaptive Wavelet
KLT adattativa
• Image Analysis
Analisi di immagini telerilevate (classificazione dei terreni,
monitoraggio ambientale, …)
Analisi di immagini medicali (telemedicina, …)
• Content-based Image Retrieval
Riconoscimento dei contenuti delle immagini (data-mining)
Archiviazione “intelligente”
• Computer Vision
DEFINIZIONE
• Data l’eterogeneità delle possibili applicazioni,
è evidente che non possa esistere una tecnica di
segmentazione che sia “universalmente” buona.
• Esistono però concetti di base del trattamento
di immagini che sono comuni a molte tecniche di
segmentazione.
• Nel caso generale, si fa riferimento a due
proprietà fondamentali delle immagini:
discontinuità e similarità.
TECNICHE DI BASE
EDGE-BASED
• Si basano sull’idea che tra diverse regioni
d’interesse si riscontrano rapidi cambiamenti
nei valori di intensità/colore.
• Lo scopo dunque è il rilevamento (e la
“classificazione”) delle discontinuità (edges)
dell’immagine (livelli di grigio).
• Il prodotto della segmentazione sarà
chiaramente una mappa di contorni.
TECNICHE DI BASE
EDGE-BASED (esempio)
RILEVAMENTO DELLE
DISCONTINUITA’
• Un modo semplice ed efficace per rilevare le
discontinuità prevede un approccio locale.
Una maschera (finestra) opportunamente progettata
è fatta scorrere sull’immagine.
La sua risposta in ogni blocco è memorizzata in una
nuova immagine.
w1
w2
w3
w4
w5
w6
w7
w8
w9
9
R = ∑ wi xi
i =1
ALCUNI ESEMPI:
POINT DETECTION (1)
• Un punto isolato è un punto il cui valore di
intensità è sensibilmente diverso da quello del
suo vicinato.
• Può essere rilevato utilizzando una maschera e
seguita da una sogliatura della risposta:
-1
-1
-1
-1
8
-1
-1
-1
-1
R > Tp
ALCUNI ESEMPI:
POINT DETECTION (2)
ALCUNI ESEMPI:
LINE DETECTION (1)
• Una linea è un insieme di punti contigui i cui
valori di intensità sono simili tra loro e diversi da
quelli dei pixel di “sfondo”.
• Necessario definire più maschere per catturare
linee al variare della loro direzione:
-1
-1
-1
-1
-1
2
-1
2
-1
2
-1
-1
2
2
2
-1
2
-1
-1
2
-1
-1
2
-1
-1
-1
-1
2
-1
-1
-1
2
-1
-1
-1
2
ALCUNI ESEMPI:
LINE DETECTION (2)
• 4 risposte per ogni punto.
• Un punto è individuato come possibile linea nella
direzione della maschera i–esima se:
Ri > R j
∀j ≠ i
EDGE DETECTION
• Edge Detection rappresenta
l’approccio più comune per il
rilevamento delle discontinuità
significative in immagini a livelli di
grigio.
200
100
• Basato sul modello di edge “a
rampa”.
0
50
100
150
200
250
50
100
150
200
250
50
100
150
200
250
6
4
2
0
• Gran parte delle tecniche di edge
detection utilizza soprattutto le
derivate prima e seconda
dell’immagine.
-2
5
0
-5
GRADIENTE DI UN’IMMAGINE
• Le derivate di una immagine si ottengono in generale
attraverso un’approssimazione dell’operatore gradiente
bidimensionale:
 I x  ∂I ∂x 
∇I =   = 

I
 y  ∂I ∂y 
• In edge detection se ne utilizzano in particolare due
quantità derivate, l’intensità e l’orientazione:
∇I = I x + I y
2
2
 Iy
α (∇I ) = arctan
 Ix



OPERATORI GRADIENTE PER
IMMAGINI DIGITALI
• Utilizzando apposite maschere, è possibile
stimare le quantità Ix e Iy in corrispondenza di
ciascun pixel.
• Diverse approssimazioni possibili:
Roberts “cross-gradient” operators (2x2)
Prewitt operators (3x3)
Sobel operators (3x3)
OPERATORI GRADIENTE PER
IMMAGINI DIGITALI - ROBERTS
x1
x2
x3
x4
x5
x6
x7
x8
x9
Roberts “cross-gradient” operators:
I x = x9 − x5
I y = x8 − x6
• Si implementa dunque tramite maschere 2x2:
-1
0
0
-1
0
1
1
0
• Implementazione non “immediata” per l’assenza di un
centro proprio nella maschera.
OPERATORI GRADIENTE PER
IMMAGINI DIGITALI - PREWITT
x1
x2
x3
Prewitt operators:
x4
x5
x6
I x = ( x7 + x8 + x9 ) − ( x1 + x2 + x3 )
x7
x8
x9
I y = ( x3 + x6 + x9 ) − ( x1 + x4 + x7 )
• Implementazione tramite maschere 3x3:
-1
-1
-1
-1
0
1
0
0
0
-1
0
1
1
1
1
-1
0
1
OPERATORI GRADIENTE PER
IMMAGINI DIGITALI - SOBEL
x1
x2
x3
x4
x5
x6
I x = ( x7 + 2 x8 + x9 ) − ( x1 + 2 x2 + x3 )
x7
x8
x9
I y = ( x3 + 2 x6 + x9 ) − ( x1 + 2 x4 + x7 )
Sobel operators:
• Implementazione tramite maschere 3x3:
-1
-2
-1
-1
0
1
0
0
0
-2
0
2
1
2
1
-1
0
1
Combinano l’azione di
derivazione in una
direzione (Prewitt) con
un’azione di smoothing
nella direzione ortogonale.
EDGE DETECTION
TECNICHE BASATE SU DERIVATA PRIMA
• Nei casi più semplici, articolate in 3 fasi:
• Smoothing (l’operazione di derivazione è
tipicamente piuttosto sensibile al rumore):
Ad es.
~
I = I ∗ Gσ
nel caso di filtraggio Gaussiano
• Derivazione (nel caso del gradiente di Sobel
l’azione di smoothing è inclusa in questa fase):
~
~2 ~2
∇I = I x + I y
• Thresholding:
(
~
M = ∇I > Te
)
EDGE DETECTION
TECNICHE BASATE SU DERIVATA PRIMA
DERIVATA SECONDA DI UN’IMMAGINE
LAPLACIANO
x1
x2
x3
x4
x5
x6
x7
x8
x9
Laplacian operator:
2
2
∂
I
∂
I
2
∇ I = 2 + 2 ≈ 4 x5 − ( x2 + x4 + x6 + x8 )
∂x
∂y
• Implementazione tramite maschere 3x3:
0
-1
0
-1
4
-1
0
-1
0
Una approssimazione
alternativa considera anche
i vicini nelle direzioni
“diagonali”:
-1
-1
-1
-1
8
-1
-1
-1
-1
EDGE DETECTION
TECNICHE BASATE SU DERIV. SECONDA
• Si basano sulla proprietà di
zero-crossing della derivata
seconda in corrispondenza degli
edge.
200
100
• Producono contorni “fini”, cioè
dello spessore di un pixel.
0
50
100
150
200
250
50
100
150
200
250
50
100
150
200
250
6
4
2
0
• Hanno diversi aspetti negativi:
• Sensibilità al rumore
• Implementazione non banale
del calcolo dei zero-crossing
-2
5
0
-5
EDGE DETECTION
OPERATORE “LoG”
• Una semplice tecnica di edge detection basata sul
Laplaciano può essere articolata in 4 fasi: smoothing,
calcolo della derivata seconda, thresholding e
calcolo dei zero-crossing.
• Un operatore, noto come Laplacian of a Gaussian
(LoG), realizza le prime due fasi con un’unica operazione
di filtraggio:
h( r ) = e
r2
− 2
2σ
con
r 2 = x2 + y2
2
2
2

 − 2σ 2
σ
r
−
2
∇ h( r ) = − 
e
4
 σ

r
0
0 -1
0
0
0
-1 -2 -1 0
-1 -2 16 -2 -1
0 -1 -2 -1
0
0
0
0 -1
0
EDGE DETECTION
CALCOLO DEI ZERO-CROSSING
• Una volta calcolato il laplaciano dell’immagine,
bisogna rilevarne i passaggi per zero
• Una soluzione semplice è quella di effettuare
una sogliatura (thresholding):
0 se ∇ 2 I <= 0
I th = 
2
1
se
∇
I >0

• I passaggi per zero corrisponderanno dunque
alle transizioni tra 0 e 1 sull’immagine Ith
EDGE DETECTION
TECNICHE BASATE SU DERIV. SECONDA
Immagine
Sorgente
Thresholded
LoG
LoG
Mappa dei
Contorni
EDGE DETECTION
OPERAZIONI DI POST-PROCESSING
• La maggior parte delle tecniche di edge detection non
garantiscono una segmentazione consistente.
• Con alcune di esse, i contorni rilevati sono spessi
procedure di assottigliamento (thinning).
• Disturbi quali il rumore, le variazioni di illuminazione ed altri
fenomeni causano il rilevamento di contorni incompleti
procedure di Edge Linking.
• Regioni dell’immagine possono essere rilevate solo se i
contorni si chiudono su se stessi.
CANNY EDGE DETECTOR/LINKER
• Edge detector basato sulla derivata prima
(Roberts).
• Prevede l’assottigliamento (thinning) dei
contorni direttamente sull’immagine gradiente,
attraverso una procedura chiamata
Nonmaxima Suppression.
• Utilizza una strategia di thresholding basata su
due soglie, nota come Hysteresis
Thresholding.
CANNY EDGE DETECTOR/LINKER
NONMAXIMA SUPPRESSION
• A partire dal gradiente dell’immagine, vengono
annullati (soppressi) tutti i valori dei pixel che
non sono più elevati dei due vicini nella
direzione del gradiente.
CANNY EDGE DETECTOR/LINKER
HYSTERESIS THRESHOLDING
• Basato su una doppia soglia:
• A partire da ogni pixel al di sopra della soglia
alta, Thigh ,il relativo contorno viene “seguito”,
finchè i pixel hanno un valore superiore alla
sogli bassa, Tlow.
TECNICHE DI BASE
REGION-BASED
• Si basano sulla progressiva aggregazione di
pixel in regioni connesse.
• Tale aggregazione avviene sulla base di uno o
più criteri di similarità.
• Il prodotto della segmentazione sarà stavolta
una mappa di etichette.
REGION GROWING (1)
• Proposto da Haralick, fa uso di descrittori
statistici.
• I pixel dell’immagine sono progressivamente
raggruppati fino a quando media e varianza
della regione ottenuta restano stabili.
Sia
R
una regione di N R pixel:
1
XR =
NR
∑ I ( x, y )
( x , y )∈R
media
SR =
2
2
(
I
(
x
,
y
)
−
X
)
∑
R
( x , y )∈R
scatter
REGION GROWING (2)
• Partendo da un punto qualsiasi dell’immagine
vengono aggregati tutti i pixel del suo vicinato
per i quali la statistica:
 ( N R − 1) N R
2
2
T =
(x − X R ) / S 
 NR +1

1/ 2
< Th
• Le statistiche della regione vengono aggiornate:
X R = ( N R X R + x) /( N R + 1)
S R = S R + ( x − X R ) 2 + N R ( X R − X R old ) 2
2
2
• La procedura è ripetuta per ogni punto aggiunto.
WATERSHED TRANSFORM (1)
• Trasformata basata sui DEM
(Digital Elevation Model):
I valori di un blocco di dati sono interpretati
come altitudini.
A partire dai minimi locali, vi si associano gli
elementi del vicinato che sono collegati ad
essi da una traiettoria in ascesa (criterio di
similarità).
Si determinano così dei bacini di attrazione
(catchment basin) separati da linee di
separazione dette watershed.
WATERSHED TRANSFORM (2)
• E’ implementata
attraverso algoritmi di
flooding:
Si simula il riempimento
con acqua dei bacini di
attrazione.
La crescita delle regioni
nelle varie direzioni viene
arrestata quando più
bacini si fondono.
• Per la segmentazione, la
trasformata si applica al
gradiente dell’immagine.
Watershed Line
Catchment
Basin
WATERSHED TRANSFORM (3)
• La mappa è generalmente molto frammentata
(oversplitting).
TECNICHE DI BASE
CLASS-BASED
• In queste tecniche, l’analisi dell’immagine non è più
effettuata su base locale ma sull’intera immagine.
• In generale, ai pixel dell’immagine vengono associati dei
valori caratteristici detti “features”
Valori di intensità per immagini monocromatiche
Terne di valori (R,G,B) per immagini a colori, ecc..
• La segmentazione consiste nel raggruppare i pixel
attraverso operazioni di sogliatura o di clustering.
• Mappe di etichette e regioni non connesse.
SOGLIATURA (1)
• Tecnica basata sull’analisi dell’istogramma
dell’immagine.
• Applicabile ad immagini a livelli di grigio,
particolarmente indicata per segmentazioni
binarie.
Immagine
sorgente
Soglia
I ( x, y )
T
Immagine
thresholded
0 se I ( x, y ) < T
I th ( x, y ) = 
1 se I ( x, y ) ≥ T
SOGLIATURA (2)
• Nel caso più generale, la soglia può dipendere,
oltre che dall’intensità, anche da altre
proprietà associate ai pixel (thesholding
locale):
T = T [ I ( x, y ), p ( x, y )]
• Inoltre, se la soglia dipende anche dalla
posizione del pixel si parla di thresholding
adattativo o dinamico:
T = T [ x, y, I ( x, y ), p ( x, y )]
SOGLIATURA (3)
140
120
100
Threshold
80
60
40
20
0
0
50
100
150
200
250
300
CLUSTERING
• Insieme di tecniche il cui scopo è di raggruppare
i pixel dell’immagine in cluster, sulla base di
vettori caratteristici (feature vector) ad essi
associati.
• I vettori caratteristici determinano lo spazio di
rappresentazione (feature space) dei pixel
dell’immagine.
• I vettori caratteristici dei pixel appartenenti ad
un cluster sono “vicini” l’un l’altro nel
corrispondente spazio di rappresentazione.
K-MEANS CLUSTERING (1)
• Si suddividono i pixel nello spazio di
rappresentazione in K gruppi:
C1 , C2 ,..., C K
con medie
m1 , m2 ,..., mK
• L’errore quadratico medio (LSE) è utilizzato
per determinare la distanza dei feature vector
dalle medie dei rispettivi cluster:
K
D=∑
∑ x −m
k =1 xi ∈C K
i
2
k
• L’obiettivo è il clustering che minimizza D.
K-MEANS CLUSTERING (2)
ALGORITMO
1. Si sceglie in modo casuale un set di K medie (m1,…,mk)
2. Per ogni vettore xi si calcola la distanza dalle K medie:
D ( xi , mk ) = xi − mk
2
∀k = 1,..., K
3. Si assegna il pixel xi al cluster Cj a cui corrisponde la
media più vicina
4. Si effettua l’aggiornamento delle medie
5. Si ripetono i punti 3 e 4 fino a convergenza:
Ck it ≡Ck
it −1
∀k
K-MEANS CLUSTERING (3)
APPLICAZIONE
300
200
100
300
0
0
250
200
50
100
150
150
100
200
50
250
300
0
ISODATA CLUSTERING (1)
• Si suddividono i pixel nello spazio di
rappresentazione in K gruppi:
C1 , C2 ,..., C K
con medie
m1 , m2 ,..., mK
• Si considerano anche le matrici di covarianza:
σ 11 σ 12
σ
σ 22
12

Σk =
 ...
...

σ 1n σ 2 n
... σ 1n 
... σ 2 n 
... ... 

... σ nn 
• Si basa sulla fusione/suddivisione di cluster.
ISODATA CLUSTERING (2)
ALGORITMO
1. Si assegna xi al cluster l che minimizza:
−1
DΣ = [ xi − ml ]' Σ l [ xi − ml ]
2. Si fondono tutte le coppie di cluster Ci e Cj per cui vale:
mi − m j < τ υ
3. Si suddividono (2-means) tutti i cluster k per cui vale:
max i λi (Σ k ) > τ υ
1. Si ripetono i punti 1,2 e 3 fino a convergenza.
ISODATA CLUSTERING (3)
APPLICAZIONE
Immagine
Sorgente
Segmentazione
K-Means
Segmentazione
ISODATA