La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Segmentazione delle immagini

Presentazioni simili


Presentazione sul tema: "Segmentazione delle immagini"— Transcript della presentazione:

1 Segmentazione delle immagini
Lezione 6.4 Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo Laurea Specialistica in Ingegneria Informatica

2 Introduzione I L6.4: Segmentazione
La visione è un problema di inferenza: abbiamo delle misure e un modello vogliamo capire cosa ha causato le misure Caratteristiche/problemi cruciali grande quantità di dati quali dati (pixel) sono buoni e quali no? dal singolo pixel è difficile capire a che struttura appartiene La soluzione sta nell’ottenere una rappresentazione compatta del contenuto di spicco dell’immagine che evidenzi tali caratteristiche Segmentazione è il processo con cui si ottiene tale rappresentazione Tale rappresentazione dovrebbe Contenere un numero di componenti gestibile Tali componenti dovrebbero essere indicativi Segmentazione come decomposizione di un’immagine in superpixels: non interessa tanto la forma quanto la coerenza Ambiguità del termine segmentazione Tecniche di clustering dei dati (anche edge detection lo è) Specifiche tecniche di decomposizione in super-pixels omogenei L6.4: Segmentazione

3 Introduzione II La forma di un oggetto può essere descritta in base:
Alla regione occupata Le regioni dell’immagine di solito hanno caratteristiche omogenee intensità, colore texture Si basa sulla suddivisione dell’immagine in regioni significative e omogenee Ai bordi fra gli oggetti richiede la edge detection Gli oggetti possono essere estratti In seguito a segmentazione Dopo averne estratto i bordi L6.4: Segmentazione

4 Types Region Growing and Shrinking Clustering
grouping K-means Graph-Theoretic Clustering Normalized Cuts L6.4: Segmentazione

5 Growing and Shrinking I
Occorre trovare regioni che rappresentano oggetti o parti di oggetti Il dominio X dell’immagine deve essere segmentato in n regioni R(1),…,R(N) La regola di segmentazione è un predicato logico con la forma P(R) L6.4: Segmentazione

6 Growing and Shrinking II
La segmentazione dell’immagine partiziona l’insieme X in sottoinsiemi R(i), i=1,…,N tali che: 1. X = i=1,..N U R(i) 2. R(i) ∩ R(j) = 0 for I ≠ j 3. P(R(i)) = TRUE for i = 1,2,…,N 4. P(R(i) U R(j)) = FALSE for i ≠ j L6.4: Segmentazione

7 Growing and Shrinking III
Il risultato della segmentazione è un predicato logico che ha la forma P(R,x,t) x è un vettore di caratteristiche associato ad un pixel Coordinate spaziali Intensità Colore Texture t è un insieme di parametri (di solito dei valori di soglia) Una semplice regola di segmentazione ha la forma: P(R) : I(r,c) < T L6.4: Segmentazione

8 Growing and Shrinking IV
In the case of color images the feature vector x can be three RGB image components {IR(r,c),IG(r,c),IB(r,c) A simple segmentation rule may have the form: P(R,x,t) : (IR(r,c) <T(R)) && (IG(r,c)<T(G))&& (IB(r,c) < T(B)) L6.4: Segmentazione

9 Region Growing I Un semplice approccio alla segmentazione: Servono
partire da alcuni pixels (seeds) che rappresentano regioni distinte dell’immagine (istogramma!) accrescerli fino a che tutta l’immagine risulta coperta Servono una regola che descrive il meccanismo di crescita una regola che controlla l’omogeneità della regione dopo ciascuna fase verifica se è possibile unire due regioni distinte L6.4: Segmentazione

10 Region Growing II Meccanismo di crescita: ad ogni fase k e per ciascuna regione Ri(k), i = 1,…,N, si controlla se ci sono pixel non classificati nell’intorno 8-connesso di ciascun pixel del bordo della regione Prima di assegnare tale pixel a una regione Ri(k), si controlla se la regione è ancora omogenea : P(Ri(k) U {x}) = TRUE L6.4: Segmentazione

11 Region Growing III Esempio di test di omogeneità: se l’intensità del pixel è vicina al valore medio della regione |I(r,c) – M(i)| <= T(i) La soglia Ti varia a seconda della regione Rn e dell’intensità del pixel I(r,c). Può essere data da: T(i) = { 1 – [s.d(i)/M(i)] } T L6.4: Segmentazione

12 Region Growing IV: Merging
Date la media e la deviazione standard dalla media di una regione Ri con n pixel: M = (1/n)(r,c)€Ri ∑ I(r,c) s.d = Square root((1/n)(r,c)€Ri ∑[I(r,c)-M]2) Can be used to decide if the merging of the two regions R1,R2 is allowed, if |M1 – M2| < (k)s.d(i) , i = 1, 2 , two regions are merged L6.4: Segmentazione

13 Split I L’approccio opposto al region growing è il region shrinking (splitting) E’ un approccio top-down e incomincia con l’ipotesi che l’immagine sia omogenea Se non è vero, l’immagine viene suddivisa in 4 sotto-immagini Questa procedura di splitting viene ripetuta ricordivamente fino a che restano solo regioni omogenee L6.4: Segmentazione

14 Split II Supponiamo che l’immagine originale sia un quadrato N x N, con N potenza di 2(N = 2n): Tutte le regioni prodotte dall’algoritmo di splitting sono quadrati di dimensione M x M , dove M è pure una potenza di 2 (M=2m,m<=n). Poiché la procedura è ricorsiva, produce una rappresentazione che può essere descritta da un albero i cui nodi hanno quattro figli ciascuno L6.4: Segmentazione

15 Split III Quadtree L6.4: Segmentazione R0 R1 R0 R3 R1 R2 R00 R01 R02

16 Split / Merge I Svantaggio delle tecniche di splitting:
Creano regioni adiacenti e omogenee che risultano distinte Metodo Split and Merge– Ad ogni iterazione lo splitting è seguito da un merging L6.4: Segmentazione

17 Split / Merge II Se una regione R non è omogenea (P(R)= False) viene suddivisa in 4 sotto regioni Se due regioni adiacenti Ri,Rj sono omogenee (P(Ri U Rj) = TRUE), esse vengono unite L’algoritmo si ferma quando non è possibile operare alcuno splitting o merging successivo L’algoritmo di split e merge produce regioni più compatte del algoritmo di solo splitting L6.4: Segmentazione

18 Results – Region grow L6.4: Segmentazione

19 Results – Region Split L6.4: Segmentazione

20 Results – Region Split and Merge
L6.4: Segmentazione

21 Results – Region growing
L6.4: Segmentazione

22 Results – Region Split L6.4: Segmentazione

23 Results – Region Split and Merge
L6.4: Segmentazione

24 Clustering I La CLUSTER ANALYSIS viene usata per determinare gruppi di dati/oggetti simili Gli oggetti sono descritti da coordinate/features Viene usata in molti campi Visione artificiale Analisi socio-economiche Ovunque si debbano individuare gruppi distinti di dati L6.4: Segmentazione

25 Clustering II Cluster (gruppo) – Insieme di oggetti simili
La somiglianza fra una coppia di oggetti dello stesso gruppo è maggiore della somiglianza fra oggetti di gruppi diversi I cluster sono disgiunti – gli oggetti appartengono ad uno solo di essi L6.4: Segmentazione

26 Clustering e distanza Distanza – la distanza euclidea può essere usata x calcolare la distanza/somiglianza Oggetti distanti sono poco simili Le coordinate usate per il calcolo sono I valori dei feature di ciascun pixel L6.4: Segmentazione Xij – il valore della j-esimo feature dell’i-esimo pixel p – numero di features

27 Clustering e distanza fra cluster
L6.4: Segmentazione

28 Clustering e centro di gravità
Il centro di gravità è il punto con coordinate uguali alla media delle variabili dei pixel appartenenti al cluster L6.4: Segmentazione

29 Clustering - Metodi Gerarchici – gli oggetti vengono raggruppati, creando una gerarchia di cluster basata sulle distanze tra gli oggetti e gli oggetti e i cluster Raggruppamento o agglomerative clustering Grouping Suddivisione o divisive clustering Non-gerarchici – gli oggetti vengono spostati da un cluster all’altro con qualche criterio (ad esempio la variabilità più bassa) K-means L6.4: Segmentazione

30 Clustering – Grouping I
Si ha una matrice di n oggetti e p variabili Si costruisce la matrice delle distanze tra gli oggetti Troviamo due oggetti simili (vicini) e li uniamo in un cluster. I due oggetti sono sostituiti con uno che ha le coordinate del centro di gravità L6.4: Segmentazione Dove i,k=1,2,..,n dik – distanza tra due oggetti

31 Clustering – Grouping II
La dimensione della matrice D viene ridotta di 1 (due oggetti sono rimpiazzati dal centro di gravità). Si calcolano le distanze tra il nuovo cluster e I restanti oggetti Gli step precedenti devono essere ripetuti fino a che rimane solo un cluster L6.4: Segmentazione

32 Clustering – Grouping example
L6.4: Segmentazione

33 Clustering – Grouping example
Standardizziamo i dati (poiché corrispondono a grandezze diverse): L6.4: Segmentazione

34 Clustering – Grouping example
Determiniamo la matrice delle distanze La distanza minima è quella fra i pixels 5 e 8 – il primo cluster! Si calcola il loro centro di gravità L6.4: Segmentazione

35 Clustering – Grouping example
5 e 8 sono sostituiti– X1, X2, e X3 sono le medie relative a questi 2 oggetti e danno il centro di gravità; Nella prima colonna ci sono I numeri dei pixels, nella seconda quelli dei cluster L6.4: Segmentazione

36 Clustering – Grouping example
La distanza minima è tra i pixels 2 and 4: il nuovo cluster di cui va calcolato il centro che sostituisce i dati dei pixels 2 e 4 L6.4: Segmentazione

37 Clustering – Grouping example
Restano 8 clusters. Eseguiamo I restanti 7 step L’ultimo step mostra cluster irregolari; rimane il pixel 9 rimane e l’uòtima matrice D Alla fine tutti gli oggetti stanno in un cluster L6.4: Segmentazione

38 Clustering – Grouping example
Come scegliamo i cluster? Consideriamo la minima distanza tra clusters. Il dendrogramma illustra gli oggetti e le distanze minime tra di essi secondo la procedura di grouping Tagliamo le braccia del dendrogramma in qualche punto e otteniamo cluster diversi (è una nostra scelta) L6.4: Segmentazione

39 Clustering – Grouping example
Gli oggetti all’interno dei cluster sono simili? Rispetto a che cosa? Per rispondere, usiamo la media e la media globale L6.4: Segmentazione

40 Clustering – K-means Lo scopo è creare k cluster situati il più lontano possibile, mentre i cluster contengono pixel simili Vengono scelti k pixel, come se fossero i centri di gravità (ad esempio, quelli più lontani tra di loro o basandosi sull’istogramma) Ciascun pixel viene associato al centro più vicino, assicurandosi che non vi siano cluster vuoti Vengono calcolati i centri di gravità dei cluster così creati Le fasi 2 e 3 devono essere ripetute finché non si hanno più spostamenti dei pixel fra cluster o dei centri di gravità Tali spostamenti sono sotto una soglia prestabilita L6.4: Segmentazione

41 Clustering – Esempio K-means
A and E sono scelti a caso come centri C è più vicino ad A che ad E, così il cluster 1 consiste di A, B, e C mentre il 2 consiste di D e E. I punti rossi sono i centri di gravità C è più vicino al centro del cluster 2. Pertanto sarà spostato dal cluster 1 al 2 L6.4: Segmentazione

42 Clustering by K-means Il risultato di tale algoritmo è trovare un minimo locale della seguente funzione detta objective function Dove x indica il vettore di caratteristiche del pixel e c quello del centro di un cluster I segmenti possono non essere connessi e sparpagliati  bisogna introdurre le corodinate spaziali nel vettore delle caratteristiche L6.4: Segmentazione

43 Graph Image Segmentation I
L’immagine è rappresentata da un grafo G = (V,E) I veritici sono punti dello spazio dei features Il grafo è completamente connesso Ad ogni lato è associato un peso w(i,j) che è funzione della similarità fra i vertici i and j. Obiettivo: Partizionare l’insieme V negli insiemi disgiunti V1,..,Vn, dove la similarità tra i vertici di Vi è alta e quella tra I vertici di Vi e Vj è bassa L6.4: Segmentazione

44 Graph Image Segmentation II
L6.4: Segmentazione G = {V,E} V: nodi/vertici del grafo E: lati/archi che connettono i vertici Pixels Similarità fra Pixel Slides from Jianbo Shi

45 Graph Image Segmentation III
I pesi/affinità più comuni (Wij) sono Luminosità Colore Coordinate spaziali Texture L6.4: Segmentazione

46 Normalized Cuts I Decomponiamo il grafo in 2 due insiemi disgiunti A e B Cut(A,B) è una misura della similarità tra i due gruppi Minimizzare Cut(A,B) dà una partizione col massimo di disassociazione Esistono algoritmi efficienti e “veloci” Tuttavia L6.4: Segmentazione

47 Normalized Cuts II Data una partizione (A,B) di V, definiamo
Ncut(A,B) misura la similarità tra due gruppi, normalizzandola sul “volume” occupato dai due gruppi all’interno del grafo Ncut(A,B) ha un valore minimo se A e B condividono lati con pesi bassi al proprio interno hanno lati con pesi alti L6.4: Segmentazione

48 Normalized Cuts III: Matrix Form
D is an n x n diagonal matrix with entries W is an n x n symmetrical matrix L6.4: Segmentazione Subject to the constraints: y(i) ε {1,-b} dove 1 indica l’appartenenza del vertice ad un insieme e –b all’altro ytD1=0

49 Normalized Cuts IV Permettendo agli elementi di y di assumere valori reali, MinNcut(G) può essere risolto trovando l’autovettore relativo al secondo più piccolo autovalore Si stabilisce una soglia T tale che Se yi<T appartiene ad un insieme Se yi>=T appartiene all’altro insieme Come scegliere la soglia? Costante, ad esempio (0, or 0.5). Il valore mediano Cercare il valore di soglia cui corrisponde il valore minimo di Ncut: Scegliere n soglie possibili Calcolare Ncut Scegliere la soglia che dà il valore minimo di Ncut L6.4: Segmentazione


Scaricare ppt "Segmentazione delle immagini"

Presentazioni simili


Annunci Google