Segmentazione delle immagini

Slides:



Advertisements
Presentazioni simili
Analisi della Tessitura
Advertisements

Trasformazioni nel dominio spaziale
Corso di Percezione Robotica (PRo) A. A. 99/00 B
Modellistica e Gestione dei Sistemi Ambientali Equazioni di Reazione e Diffusione Modellistica e Gestione dei Sistemi Ambientali a.a Laurea.
BUMP MAPPING dott.ing.jun Alex Zupan –
STATISTICA DESCRITTIVA
STATISTICA DESCRITTIVA
Universita di Camerino
Reti neurali per la percezione dell’ambiente in robotica autonoma
Segmentazione Andrea Torsello
Trasformazioni nel dominio spaziale
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione 1, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
GLI INSIEMI.
Seminario su clustering dei dati – Parte I
Seminario su clustering dei dati – Parte II
Seminario su clustering dei dati – Parte II
Scene Modelling, Recognition and Tracking
BILAYER SEGMENTATION OF LIVE VIDEO
Marco CristaniTeoria e Tecniche del Riconoscimento1 Notizie preliminari Introduzione Facoltà di Scienze MM. FF. NN. Università di Verona A.A
Marco CristaniTeorie e Tecniche del Riconoscimento1 Notizie preliminari Introduzione Facoltà di Scienze MM. FF. NN. Università di Verona A.A
A cura Prof. Salvatore MENNITI
Segmentazione: Introduzione
Riconoscimento automatico di oggetti in immagini digitali
Clustering Mercoledì, 24 novembre 2004 Giuseppe Manco Readings: Chapter 8, Han and Kamber Chapter 14, Hastie, Tibshirani and Friedman Density-Based Clustering.
Elaborazione (digitale) delle immagini
Illustrazione opzionale qui in mezzo? (meglio se su fondo bianco)
Analisi di Immagini e Dati Biologici
APPLICAZIONI DI INTELLIGENZA ARTIFICIALE ALLA MEDICINA
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Sampling and Quantization
Trasformazioni di intensità Filtraggio spaziale
Histogram and region based processing
14 giugno 2011 Rasterizzazione Prof. Roberto Pirrone.
UNIVERSITÀ DEGLI STUDI DI CATANIA FACOLTÀ DI INGEGNERIA   CORSO DI LAUREA IN INGEGNERIA ELETTRONICA Dipartimento di Ingegneria Elettrica Elettronica e.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Efficient Region- Based Image Retrieval di Roger Weber e Michael Mlivoncic Swiss Federal Institute of Technology (ETH) Presentazione di Laura Galli, Mauro.
Shape-based visual information retrieval Enver Sangineto Dipartimento di Informatica
Enver Sangineto, Dipartimento di Informatica Annotazione Automatica di materiale multimediale.
Multimedia information retrieval. Problematica Materiale multimediale: non solo testo, ma audio (speech, musica..) immagini, video Retrieval basato su.
Shape-based visual information retrieval Enver Sangineto Dipartimento di Informatica
UNIVERSITÀ DI PISA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA PER LA GESTIONE D’AZIENDA Tesi di laurea: Progettazione.
Università degli Studi di Cagliari
Codifica dell’informazione
1 Sistemi Avanzati per il Riconoscimento (4S02792) Dr. Marco Cristani orario ricevimento: mer
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 -Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Algoritmi di classificazione e reti neurali Seminario su clustering dei dati Università Sapienza di Roma Dipartimento di ingegneria Informatica, Automatica.
Corso di Percezione Robotica (PRo) A.A. 99/00 B. Modulo di Percezione Artificiale Visione artificiale e tecniche di elaborazione delle immagini Parte 2/2.
Si basa sul concetto di USAN (Univalue segment Assimilating Nucleous). Filtro Susan SUSAN 1.
UNIVERSITA’ DEGLI STUDI DI PAVIA Facoltà di Economia, Giurisprudenza, Ingegneria, Lettere e Filosofia, Scienze Politiche Corso di Laurea Specialistica.
Analisi di Immagini e Dati Biologici Edge detection and sharpening L7 38.
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Trasformata di Hough.
Vincenza Ferrara Novembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi.
Analisi della similarità tra immagini.
DATA MINING PER IL MARKETING Andrea Cerioli Sito web del corso GLI ALBERI DI CLASSIFICAZIONE Introduzione alla metodologia Zani-Cerioli,
Università di Bologna Dipartimento di Fisica
Relatore: Prof. Vittorio Murino Correlatore: Dott. Andrea Fusiello Università degli Studi di Verona Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica.
Esempio di riconoscimento biometrico
Tipi di immagini. Vi sono 3 tipi di formati di immagini molto conosciuti Bitmap (bmp)  Bitmap (bmp)  Gif  Jpg.
Selezione del volume dei polmoni M. Antonelli, B. Lazzerini, F. Marcelloni Dipartimento Ingegneria dell’Informazione Pisa.
Lezioni di MANAGEMENT CONTROL per classi IV RIM Prof. Deborah Oldoni IIS V. BENINI – Melegnano.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Motori a Combustione Interna Università degli Studi di Modena e Reggio Emilia Corso di Laurea Triennale in Ingegneria Elettronica ed in Ingegneria Informatica.
Teoria computazionale della visione Marcello Demi CNR, Institute of Clinical Physiology, Pisa, Italy.
Transcript della presentazione:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Results – Region grow L6.4: Segmentazione

Results – Region Split L6.4: Segmentazione

Results – Region Split and Merge L6.4: Segmentazione

Results – Region growing L6.4: Segmentazione

Results – Region Split L6.4: Segmentazione

Results – Region Split and Merge L6.4: Segmentazione

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

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

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

Clustering e distanza fra cluster L6.4: Segmentazione

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

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

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

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

Clustering – Grouping example L6.4: Segmentazione

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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