La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Segmentazione delle immagini Università degli Studi di Bergamo Laurea Specialistica in Ingegneria Informatica Lezione 6.4 Corso di Robotica Prof. Davide."— Transcript della presentazione:

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

2 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 2/47 Introduzione I 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 nellottenere una rappresentazione compatta del contenuto di spicco dellimmagine 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 unimmagine 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

3 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 3/47 Introduzione II La forma di un oggetto può essere descritta in base: Alla regione occupata Le regioni dellimmagine di solito hanno caratteristiche omogenee intensità, colore texture Si basa sulla suddivisione dellimmagine 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

4 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 4/47 Types Region Growing and Shrinking Clustering grouping K-means Graph-Theoretic Clustering Normalized Cuts

5 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 5/47 Growing and Shrinking I Occorre trovare regioni che rappresentano oggetti o parti di oggetti Il dominio X dellimmagine deve essere segmentato in n regioni R(1),…,R(N) La regola di segmentazione è un predicato logico con la forma P(R)

6 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 6/47 Growing and Shrinking II La segmentazione dellimmagine partiziona linsieme 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

7 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 7/47 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

8 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 8/47 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)

9 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 9/47 Region Growing I Un semplice approccio alla segmentazione: partire da alcuni pixels (seeds) che rappresentano regioni distinte dellimmagine (istogramma!) accrescerli fino a che tutta limmagine risulta coperta Servono una regola che descrive il meccanismo di crescita una regola che controlla lomogeneità della regione dopo ciascuna fase verifica se è possibile unire due regioni distinte

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

11 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 11/47 Region Growing III Esempio di test di omogeneità: se lintensità del pixel è vicina al valore medio della regione |I(r,c) – M(i)| <= T(i) La soglia T i varia a seconda della regione R n e dellintensità del pixel I(r,c). Può essere data da: T(i) = { 1 – [s.d(i)/M(i)] } T

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

13 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 13/47 Split I Lapproccio opposto al region growing è il region shrinking (splitting) E un approccio top-down e incomincia con lipotesi che limmagine sia omogenea Se non è vero, limmagine viene suddivisa in 4 sotto-immagini Questa procedura di splitting viene ripetuta ricordivamente fino a che restano solo regioni omogenee

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

15 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 15/47 Split III Quadtree R0R1 R2 R3 R0 R1 R00R01R02R04

16 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 16/47 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

17 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 17/47 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 Lalgoritmo si ferma quando non è possibile operare alcuno splitting o merging successivo Lalgoritmo di split e merge produce regioni più compatte del algoritmo di solo splitting

18 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 18/47 Results – Region grow

19 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 19/47 Results – Region Split

20 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 20/47 Results – Region Split and Merge

21 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 21/47 Results – Region growing

22 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 22/47 Results – Region Split

23 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 23/47 Results – Region Split and Merge

24 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 24/47 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

25 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 25/47 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

26 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 26/47 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 X ij – il valore della j-esimo feature delli-esimo pixel p – numero di features

27 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 27/47 Clustering e distanza fra cluster

28 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 28/47 Clustering e centro di gravità Il centro di gravità è il punto con coordinate uguali alla media delle variabili dei pixel appartenenti al cluster

29 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 29/47 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 allaltro con qualche criterio (ad esempio la variabilità più bassa) K-means

30 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 30/47 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à Dove i,k=1,2,..,n d ik – distanza tra due oggetti

31 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 31/47 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

32 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 32/47 Clustering – Grouping example

33 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 33/47 Clustering – Grouping example Standardizziamo i dati (poiché corrispondono a grandezze diverse):

34 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 34/47 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à

35 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 35/47 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

36 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 36/47 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

37 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 37/47 Clustering – Grouping example Restano 8 clusters. Eseguiamo I restanti 7 step Lultimo step mostra cluster irregolari; rimane il pixel 9 rimane e luòtima matrice D Alla fine tutti gli oggetti stanno in un cluster

38 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 38/47 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)

39 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 39/47 Clustering – Grouping example Gli oggetti allinterno dei cluster sono simili? Rispetto a che cosa? Per rispondere, usiamo la media e la media globale

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

41 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 41/47 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

42 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 42/47 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

43 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 43/47 Graph Image Segmentation I Limmagine è 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 linsieme V negli insiemi disgiunti V 1,..,V n, dove la similarità tra i vertici di V i è alta e quella tra I vertici di V i e V j è bassa

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

45 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 45/47 Graph Image Segmentation III I pesi/affinità più comuni (W ij ) sono Luminosità Colore Coordinate spaziali Texture

46 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 46/47 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

47 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 47/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 allinterno 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

48 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 48/47 Normalized Cuts III: Matrix Form D is an n x n diagonal matrix with entries W is an n x n symmetrical matrix Subject to the constraints: y(i) ε {1,-b} dove 1 indica lappartenenza del vertice ad un insieme e –b allaltro y t D1=0

49 Davide Brugali – UniBG - Robotica L6.4: Segmentazione 49/47 Normalized Cuts IV Permettendo agli elementi di y di assumere valori reali, MinNcut(G) può essere risolto trovando lautovettore relativo al secondo più piccolo autovalore Si stabilisce una soglia T tale che Se yi=T appartiene allaltro 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


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

Presentazioni simili


Annunci Google