Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.