Sei sulla pagina 1di 28

Segmentazione I (discontinuit)

Elaborazione dei dati multimediali a.a. 2009/10

Image segmentation
!! !! !! !! !!

Image analysis: techniques for extracting information from an image. Segmentation subdividesd an image into its constituent parts or objects. The level of subdivision depends on the probelm being solved Autonomous segmentation is one of the most diffucult tasks in IP Segmentation algorithms are based on properties of gray-level values: ! Discontinuity ! Similarity

Image segmentation (cont.)


!!

Discontinuity (this lecture)


! Partition the image based on abrupt changes in gray levels ! Detection of edges and lines in the image

!!

Similarity (next lecture)


! Thresholding ! Region growing ! Region splitting and merging

Estrazione di edge
!!

Edge : forte variazione locale dei livelli di grigio, tipicamente associata al confine tra due regioni livelli di grigio diversi.

!!

Pb.: data unimg corrotta da rumore, rilevare gli edge derivanti dalla struttura della scena e non dal rumore

Estrazione di edge
!!

Il problema risulta di difficile soluzione in quanto il rumore maschera gli edge, cos come esistono falsi edge dovuti a ombre e variazioni di luminosit.

Estrazione di edge
!!

Tipologie di variazione dei ldg:

step

ramp roof ideali reali

line

!!

Definizioni ! un punto di edge un punto dellimg in cui presente una variazione significativa locale dellintensit ! un contorno una lista di punti di edge o una curva analitica che modella la lista degli edge ! la connessione di edge (edge linking) il processo di formazione di una lista di edge ordinata

Estrazione di edge
!!

Problema della localizzazione:


! posizione del punto di edge ! a risoluzione maggiore (subpixel resolution)

!!

NB: Ledge pu avere come attributo lorientazione Classificazione degli edge:


! corretti: edge della scena ! falsi: non esistono nella scena (false positives) ! mancanti: presenti nella scena, ma non rilevati (false negatives)

!!

Estrazione di edge
!!

Tre fasi fondamentali:


1.! Filtraggio (noise smoothing): si vuol ridurre il rumore preservando gli edge reali. Selezione della scala. 2.! Rinforzo (enhancement): facilita il rilevamento delledge, evidenziando le variazioni locali. 3.! Rilevamento (detection): decisione binaria sulla presenza o meno dei punti di edge.

Gradiente
!!

!!

Il gradiente una misura della variazione in una funzione (ie., limg, campioni discreti di una funzione continua di intensit) Nel caso monodimensionale corrisponde al picco della derivata prima

Gradiente
!!

Assumendo una funzione f(x,y), allora

!! !!

Il vettore !f punta nella direzione di massimo scarto di f. Il modulo pari al massimo scarto di f per unit di distanza nella direzione di !f:

!!

Approssimazioni del modulo

Gradiente
!!

Lorientazione data da (misurata rispetto allasse x):

!!

Approssimazioni numeriche
-1 1 1 -1

Sx = Sy =

-1 1 0 1 0 0

-1 0

Operatore di Roberts
!!

Approssimazione con differenze incrociate |![f(i,j)]| = !f(i,j) - f(i+1,j+1)! + !f(i,j+1) - f(i+1,j)!

!!

convoluzione dellimg con 2 maschere del tipo


(i,j)

S1 =

0 -1

S2 =

-1 0

!!

La convoluzione con maschere pari scomoda da implementare!

Operatore di Prewitt
!!

Approssimazione con vicinato 3x3

a0 a1 a2 a7 (i,j) a3 a6 a5 a4

|![f(i,j)]| = !(a2+a3+a4) (a0+a7+a6)! + ! (a0+a1+a2) (a6+a5+a4) !

-1 0 1 Sx = -1 0 1 -1 0 1

1 Sy = 0

1 1 0 0

-1 -1 -1

Operatore di Sobel
!!

Loperatore di Sobel introduce anche un effetto di smoothing (quindi da preferire)


-1 0 1 0 0 2 1 Sy = 1 0 2 0 1 0 dove a0 a1 a2

Sx =

-2 -1

a7 (i,j) a3 a6 a5 a4

-1 -2 -1

Sx = (a2 + 2a3 + a4) - (a0 + 2a7 + a6) Sy = (a0 + 2a1 + a2) - (a6 + 2a5 + a4),
!!

In ciascuna delle due direzioni, loperatore di Sobel pu essere implementato con una passata della maschera di smoothing [1 2 1] seguito dalla maschera di derivazione [-1 0 1]

Operatore di Sobel
!!

!!

Esistono estensioni degli operatori di Sobel (cos come per altri operatori). Sobel 7x7, coefficienti a piramide troncata:

Immagine originale

Immagine di contorni estratti mediante filtro di Sobel

Operatore di Robinson
!!

Operatore di Robinson
! 8 maschere direzionali, ognuna risponde massimamente per edge in una certa direzione ! il valore massimo tra gli 8 valori stimati il valore di output del gradiente in quel punto, mentre lindice della maschera codifica le direzione delledge

Operatore di Robinson
-1 0 1 -1 0 1 -1 0 1 1 S4 = 1 0 1 0 0 -1 -1 -1 0 S2 = 1 1 -1 0 1 -1 -1 0 0 -1 0 -1 0 -1 1 1 1 0 0

S1 =

S3 = 0 -1 -1 -1 0 S6 = 1 1 -1 -1 0 -1 1 0

1 S5 = 1 1

S7 =

-1 -1 -1 0 0 0 1 1 1

-1 -1 0 S8 = -1 0 1 0 1 1

Sobel

Prewitt

Roberts

Kirsch

Robinson

Sobel 3x3

Sobel 7x7

Prewitt 3x3

Prewitt 7x7

10

Selezione della scala


!!

!! !!

Applicare un filtro di smoothing prima (o durante) della derivazione e doveroso, per evitare lamplificazione del rumore ma quanto filtrare? La scelta della ampiezza della maschera di smoothing determina la scala dei dettagli che si vogliono rilevare

Selezione della scala

11

Selezione della scala

Selezione della scala

12

Selezione della scala

Operatore di Canny

13

Operatori derivata seconda


!!

!!

Gli operatori di derivata seconda rilevano il punto di edge mediante il passaggio per lo zero (zero crossing) del valore calcolato, e per questo motivo sono pi precisi (non necessitano di soglia) Per sono pi sensibili al rumore!

f'

14

Laplaciano
!!

Operatore isotropico, scalare, del II ordine:

!!

Si approssima con lequazione alla differenze:

Laplaciano
!!

Centrando la stima nel pixel (i,j) si ha:

!!

Combinando in un singolo operatore: 0

1 0 "2 = 1 -4 1 0 1 0

Laplaciano

15

Filtro Laplaciano di Gaussiana (LoG)


!!

Operatore LoG consiste di


! 1) filtraggio Gaussiano ! 2) Laplaciano

!!

Caratteristiche:
! ! ! ! il filtro di smoothing Gaussiano la fase di rinforzo la derivata seconda (Laplaciano) il rilevamento la fase di attraversamento per lo zero la localizzazione fatta mediante interpolazione lineare

!!

Si applica il filtro Gaussiano per


! Ridurre rumore (punti isolati e piccole configurazioni) ! Selezionare la scale di dettaglio

Filtro LoG
!!

Uscita delloperatore LoG, h(x,y):

Gaussiana

"2g(x)

16

Filtro LoG
!!

Quindi le procedure 1 e 2 sono equivalenti:


1) convoluire limg con un filtro Gaussiano di smoothing e calcolare il laplaciano del risultato 2) convoluire limg con il laplaciano della gaussiana (filtro LoG)

!!

Per esempio, una maschera 5 # 5 :

Filtro LoG

17

Filtro DoG
!!

!!

Il filtro LoG si pu anche approssimare come differenza di due Gaussiane (Difference of Gaussians) Qualcosa di simile accade nella corteccia visiva umana
+

Filtro DoG

Filtro DoG
!!

Scelta della varianza del filtro Gaussiano:


! $ grande: miglior riduzione del rumore, ma perde informazione utile (ie., fusione edge vicini, presenza di edge falsi, localizzazione imprecisa) ! $ piccolo: minor riduzione del rumore, minor perdita di informazione utile (ie., molti edge spuri)

!!

Possibile soluzione: filtraggio a diversa scala (diverse varianze)


! $ grande: pochi edge robusti, ma mal localizzati ! $ piccolo: miglior localizzazione degli edge robusti

18

Estrazione di contorni mediante operatore differenziale del 2o ordine

a) Immagine originale

b) Filtraggio laplaciano

c) Binarizzazione

Laplaciano

19

Sommario
!!

!!

Gli operatori gradiente funzionano bene nel caso di immagini con poco rumore e transizioni nette Il LoG (+ zero crossing) offre una alternativa quando il rumore elevato e le transizioni non sono nette.
! Lo zero crossing offre un modo affidabile per localizzare ledge e le propriet di smoothing del LoG riducono gli effetti del rumore. ! Si paga in termini di maggiore complessit

20

Edge linking
!!

!!

!!

Le tecniche discusse fin qui rilevano discontinuit dei livelli di grigio Idealmente dovrebbero restituire tutti e soli i pixel che giacciono sul confine tra le regioni In pratica i pixel restituiti non caratterizzano i contorni, a causa di
! Rumore ! Illuminazione non uniforme ! Altri effetti che introducono cambi di ldg spuri

!!

Quindi gli algoritmi di Edge Detection devono essere seguiti da una fase di Linking che riunisce i pixel di edge in contorni connessi e sottili.

Edge linking
!! !! !!

Linking by similarity (local processing) ! Alg. Canny Fit di curve (global processing) ! Hough transform Ricerca su grafi (global processing)

21

Linking by similarity
!! !! !!

!!

Analyze a small neighborhood of an edge pixel Link all edge points that are similar In this way a boundary is formed composed by edge points that share some common properties Similarity is based on
! Gradient magnitude ! Gradient direction

!!

Remember that the direction of the gradient is perpendicular to the edge Il principio del edge linking trova applicazione nellalgoritmo di Canny.

!!

Algoritmo di Canny
!!

Dati in ingresso: I img (1) Applicare il Filtro di Rinforzo ad I; (2) Applicare lalgoritmo Non-Maxima Suppression alloutput di (1); (3) Applicare la Sogliatura ad Isteresi alloutput di (2)

22

Filtro di Rinforzo
!!

!!

Applicare allimg I il filtro di smoothing Gaussiano J = G*I con G Gaussiana con media nulla e varianza $ Calcolare il gradiente !J=[Jx,Jy] e stimarne modulo e direzione:

!!

Il valore di $ da utilizzare dipende dalla lunghezza dei contorni, il livello di rumore e il compromesso tra localizzazione e rilevamento

Non-Maxima Suppression
Produce edge di un solo pixel scartando i massimi locali Algoritmo !! Dati in ingresso:
!!

!!

% pixel (i,j):

! Es img della forza degli edge ! Eo img orientazione gradiente ! d1, d2, d3, d4: direzioni edge (tip. 0o, 45o, 90o, 135o). ! trovare la direzione dk che approssima meglio la direzio ne ortogonale a Eo(i,j); ! se Es(i,j) minore di almeno uno dei suoi 2 vicini lungo dk, allora assegna IN(i,j) = 0, altrimenti IN(i,j) = Es(i,j)

!!

Loutput IN(i,j), img con edge pi sottili

23

Sogliatura ad isteresi
!!

Dati in ingresso:
! IN, img di uscita dallalgoritmo non-maxim. suppr.; ! Eo, img orientazioni; ! TL, TH soglie (TH & 2TL) ! localizzare il prossimo punto di edge IN(i,j) t.c. IN(i,j)> TH; ! partendo da IN(i,j) si segua la catena di massimi locali connessi nelle due direzioni perpendicolari alla normale delledge finch IN(i,j) > TL (memorizzando opportunamente i risultati);

!!

% punto di edge in IN:

!!

Il risultato finale un insieme di liste, ognuna descrivente la posizione degli edge, la forza e lorientazione.

Immagine originale

Immagine di contorni senza isteresi

Immagine di contorni con isteresi (soglia bassa)

Immagine di contorni con isteresi (soglia alta)

24

Trasformata di Hough
!!

Tecnica di voting:
! ogni punto della curva vota per un certo sottoinsieme di parametri; ! i parametri che hanno il maggior numero di voti vincono.

Trasformata di Hough per rette


!! !!

Un punto P vota per il fascio di rette che passano per P. Due punti P e Q votano ciascuno per un fascio diverso, e vi una sola retta in comune ai due fasci (che prende due voti): quella passante per P e Q. I parametri che indentificano una retta sono m e q nellequazione: y=mx+q Un fascio individuato da un insieme di valori m e q. Dunque un punto P=(x,y) vota per un insieme di valori p,q che rappresentano il fascio di rette passanti per P.

!! !! !!

25

Trasformata di Hough per rette


!! !! !!

P vota per tutti i valori di p e q che soddisfano: y=mx +q (con x,y fissati) P vota per retta nello spazio m-q dove il coefficiente angolare e il termine noto sono dati da x e y. Quindi si passa da una rappresentazione nello spazio cartesiano x-y ad unaltra rappresentazione nello spazio dei parametri m-q y m

Trasformata di Hough per rette


!!

!!

Nel caso n punti giacenti su una retta, essi vengono mappata in un insieme di rette nello spazio dei parametri, tutte passanti per il punto (m,c) che quindi sar maggiormente votato, Il problema si trasforma da:
! line detection ! peak detection nello spazio dei parametri

!!

Questo implica:
! Delimitazione e discretizzazione dello spazio dei parametri ! La ricerca di max assoluti per trovare le rette ! Soppressione dei max locali per far fronte a picchi spuri nellintorno di quelli veri.

26

Trasformata di Hough per rette


!!

In pratica si usa la forma polare per la parametrizzazione, perch pi comoda:


! ' naturalmente delimitato ! ( si pu delimitare specificando una regione circolare attorno allorigine (sensato)

(x,y) ) ((,')
y ( ( ' x '

Trasformata di Hough per rette


!!

Algoritmo

! Input: I img binaria M#N (1 edge, 0 no edge) ! Spazio dei parametri ! Si discretizzi ((,') in ((d,'d) usando un passo accettabili per il problema da risolvere (precisione vs. computazione). ! Sia A la matrice R"T risultante, inizializzata a zero. ! Per ogni pixel I(x,y)= 1 e per h = 1,...,T:
! sia ( = x cos 'd(h) + y sin 'd(h) ! trovare lindice k t.c. (d(k) lelemento pi vicino a ( ! incrementare A(k,h) di una unit

! Trovare tutti i max locali (kp,hp) t.c. A(kp,hp) > * soglia

27

Trasformata di Hough per rette


!! !! !!

!!

!!

Loutput un insieme di coppie [(d(kp),'d(hp)] che identificano le rette. La HT non richiede una fase di linking (o raggruppamento) preliminare ed robusta al rumore. A causa del rumore e discretizzazione non esiste tipicamente un picco ben marcato, ma un piccolo insieme di accumulatori con valore elevato + calcolo del centroide Un ulteriore problema riguarda lo spazio dei parametri che cresce col numero dei parametri (computazionalmente oneroso per modelli complessi) Una possibile soluzione consiste nelluso del gradiente per ridurre lo spazio dei parametri.

Immagine originale

Trasformata di Hough per rette

Visualizzazione dello spazio accumulatore con evidenziati i picchi

28