SEGMENTAZIONE DI IMMAGINI Elaborazione dei Segnali Multimediali Raffaele Gaetano 06 Maggio 2014 DEFINIZIONE • La segmentazione è un processo di basso livello utile a molte applicazioni basate sull’elaborazione delle immagini. • Effettua un partizionamento dell’immagine identificandone le regioni (oggetti) costituenti, sulla base di criteri specifici per ogni applicazione. RAPPRESENTAZIONE • Mappa di etichette • Gli elementi della mappa sono in corrispondenza univoca con i pixel dell’immagine e ne identificano un “segmento” (regione) di appartenenza. RAPPRESENTAZIONE • Mappa di contorni • Gli elementi non nulli della mappa identificano il contorno tra le varie regioni di interesse. DEFINIZIONE • Una segmentazione tipicamente gode di quattro proprietà fondamentali: Nessun pixel è condiviso tra due o più regioni. Tutti i pixel dell’immagine sono associati ad una regione. Tutte le regioni sono omogenee (rispetto a criteri specifici per ogni applicazione). Due regioni diverse non sono «omogenee». POSSIBILI APPLICAZIONI • Tecniche di codifica ad oggetti (Region-based Image Coding) Shape-Adaptive Wavelet KLT adattativa • Image Analysis Analisi di immagini telerilevate (classificazione dei terreni, monitoraggio ambientale, …) Analisi di immagini medicali (telemedicina, …) • Content-based Image Retrieval Riconoscimento dei contenuti delle immagini (data-mining) Archiviazione “intelligente” • Computer Vision DEFINIZIONE • Data l’eterogeneità delle possibili applicazioni, è evidente che non possa esistere una tecnica di segmentazione che sia “universalmente” buona. • Esistono però concetti di base del trattamento di immagini che sono comuni a molte tecniche di segmentazione. • Nel caso generale, si fa riferimento a due proprietà fondamentali delle immagini: discontinuità e similarità. TECNICHE DI BASE EDGE-BASED • Si basano sull’idea che tra diverse regioni d’interesse si riscontrano rapidi cambiamenti nei valori di intensità/colore. • Lo scopo dunque è il rilevamento (e la “classificazione”) delle discontinuità (edges) dell’immagine (livelli di grigio). • Il prodotto della segmentazione sarà chiaramente una mappa di contorni. TECNICHE DI BASE EDGE-BASED (esempio) RILEVAMENTO DELLE DISCONTINUITA’ • Un modo semplice ed efficace per rilevare le discontinuità prevede un approccio locale. Una maschera (finestra) opportunamente progettata è fatta scorrere sull’immagine. La sua risposta in ogni blocco è memorizzata in una nuova immagine. w1 w2 w3 w4 w5 w6 w7 w8 w9 9 R = ∑ wi xi i =1 ALCUNI ESEMPI: POINT DETECTION (1) • Un punto isolato è un punto il cui valore di intensità è sensibilmente diverso da quello del suo vicinato. • Può essere rilevato utilizzando una maschera e seguita da una sogliatura della risposta: -1 -1 -1 -1 8 -1 -1 -1 -1 R > Tp ALCUNI ESEMPI: POINT DETECTION (2) ALCUNI ESEMPI: LINE DETECTION (1) • Una linea è un insieme di punti contigui i cui valori di intensità sono simili tra loro e diversi da quelli dei pixel di “sfondo”. • Necessario definire più maschere per catturare linee al variare della loro direzione: -1 -1 -1 -1 -1 2 -1 2 -1 2 -1 -1 2 2 2 -1 2 -1 -1 2 -1 -1 2 -1 -1 -1 -1 2 -1 -1 -1 2 -1 -1 -1 2 ALCUNI ESEMPI: LINE DETECTION (2) • 4 risposte per ogni punto. • Un punto è individuato come possibile linea nella direzione della maschera i–esima se: Ri > R j ∀j ≠ i EDGE DETECTION • Edge Detection rappresenta l’approccio più comune per il rilevamento delle discontinuità significative in immagini a livelli di grigio. 200 100 • Basato sul modello di edge “a rampa”. 0 50 100 150 200 250 50 100 150 200 250 50 100 150 200 250 6 4 2 0 • Gran parte delle tecniche di edge detection utilizza soprattutto le derivate prima e seconda dell’immagine. -2 5 0 -5 GRADIENTE DI UN’IMMAGINE • Le derivate di una immagine si ottengono in generale attraverso un’approssimazione dell’operatore gradiente bidimensionale: I x ∂I ∂x ∇I = = I y ∂I ∂y • In edge detection se ne utilizzano in particolare due quantità derivate, l’intensità e l’orientazione: ∇I = I x + I y 2 2 Iy α (∇I ) = arctan Ix OPERATORI GRADIENTE PER IMMAGINI DIGITALI • Utilizzando apposite maschere, è possibile stimare le quantità Ix e Iy in corrispondenza di ciascun pixel. • Diverse approssimazioni possibili: Roberts “cross-gradient” operators (2x2) Prewitt operators (3x3) Sobel operators (3x3) OPERATORI GRADIENTE PER IMMAGINI DIGITALI - ROBERTS x1 x2 x3 x4 x5 x6 x7 x8 x9 Roberts “cross-gradient” operators: I x = x9 − x5 I y = x8 − x6 • Si implementa dunque tramite maschere 2x2: -1 0 0 -1 0 1 1 0 • Implementazione non “immediata” per l’assenza di un centro proprio nella maschera. OPERATORI GRADIENTE PER IMMAGINI DIGITALI - PREWITT x1 x2 x3 Prewitt operators: x4 x5 x6 I x = ( x7 + x8 + x9 ) − ( x1 + x2 + x3 ) x7 x8 x9 I y = ( x3 + x6 + x9 ) − ( x1 + x4 + x7 ) • Implementazione tramite maschere 3x3: -1 -1 -1 -1 0 1 0 0 0 -1 0 1 1 1 1 -1 0 1 OPERATORI GRADIENTE PER IMMAGINI DIGITALI - SOBEL x1 x2 x3 x4 x5 x6 I x = ( x7 + 2 x8 + x9 ) − ( x1 + 2 x2 + x3 ) x7 x8 x9 I y = ( x3 + 2 x6 + x9 ) − ( x1 + 2 x4 + x7 ) Sobel operators: • Implementazione tramite maschere 3x3: -1 -2 -1 -1 0 1 0 0 0 -2 0 2 1 2 1 -1 0 1 Combinano l’azione di derivazione in una direzione (Prewitt) con un’azione di smoothing nella direzione ortogonale. EDGE DETECTION TECNICHE BASATE SU DERIVATA PRIMA • Nei casi più semplici, articolate in 3 fasi: • Smoothing (l’operazione di derivazione è tipicamente piuttosto sensibile al rumore): Ad es. ~ I = I ∗ Gσ nel caso di filtraggio Gaussiano • Derivazione (nel caso del gradiente di Sobel l’azione di smoothing è inclusa in questa fase): ~ ~2 ~2 ∇I = I x + I y • Thresholding: ( ~ M = ∇I > Te ) EDGE DETECTION TECNICHE BASATE SU DERIVATA PRIMA DERIVATA SECONDA DI UN’IMMAGINE LAPLACIANO x1 x2 x3 x4 x5 x6 x7 x8 x9 Laplacian operator: 2 2 ∂ I ∂ I 2 ∇ I = 2 + 2 ≈ 4 x5 − ( x2 + x4 + x6 + x8 ) ∂x ∂y • Implementazione tramite maschere 3x3: 0 -1 0 -1 4 -1 0 -1 0 Una approssimazione alternativa considera anche i vicini nelle direzioni “diagonali”: -1 -1 -1 -1 8 -1 -1 -1 -1 EDGE DETECTION TECNICHE BASATE SU DERIV. SECONDA • Si basano sulla proprietà di zero-crossing della derivata seconda in corrispondenza degli edge. 200 100 • Producono contorni “fini”, cioè dello spessore di un pixel. 0 50 100 150 200 250 50 100 150 200 250 50 100 150 200 250 6 4 2 0 • Hanno diversi aspetti negativi: • Sensibilità al rumore • Implementazione non banale del calcolo dei zero-crossing -2 5 0 -5 EDGE DETECTION OPERATORE “LoG” • Una semplice tecnica di edge detection basata sul Laplaciano può essere articolata in 4 fasi: smoothing, calcolo della derivata seconda, thresholding e calcolo dei zero-crossing. • Un operatore, noto come Laplacian of a Gaussian (LoG), realizza le prime due fasi con un’unica operazione di filtraggio: h( r ) = e r2 − 2 2σ con r 2 = x2 + y2 2 2 2 − 2σ 2 σ r − 2 ∇ h( r ) = − e 4 σ r 0 0 -1 0 0 0 -1 -2 -1 0 -1 -2 16 -2 -1 0 -1 -2 -1 0 0 0 0 -1 0 EDGE DETECTION CALCOLO DEI ZERO-CROSSING • Una volta calcolato il laplaciano dell’immagine, bisogna rilevarne i passaggi per zero • Una soluzione semplice è quella di effettuare una sogliatura (thresholding): 0 se ∇ 2 I <= 0 I th = 2 1 se ∇ I >0 • I passaggi per zero corrisponderanno dunque alle transizioni tra 0 e 1 sull’immagine Ith EDGE DETECTION TECNICHE BASATE SU DERIV. SECONDA Immagine Sorgente Thresholded LoG LoG Mappa dei Contorni EDGE DETECTION OPERAZIONI DI POST-PROCESSING • La maggior parte delle tecniche di edge detection non garantiscono una segmentazione consistente. • Con alcune di esse, i contorni rilevati sono spessi procedure di assottigliamento (thinning). • Disturbi quali il rumore, le variazioni di illuminazione ed altri fenomeni causano il rilevamento di contorni incompleti procedure di Edge Linking. • Regioni dell’immagine possono essere rilevate solo se i contorni si chiudono su se stessi. CANNY EDGE DETECTOR/LINKER • Edge detector basato sulla derivata prima (Roberts). • Prevede l’assottigliamento (thinning) dei contorni direttamente sull’immagine gradiente, attraverso una procedura chiamata Nonmaxima Suppression. • Utilizza una strategia di thresholding basata su due soglie, nota come Hysteresis Thresholding. CANNY EDGE DETECTOR/LINKER NONMAXIMA SUPPRESSION • A partire dal gradiente dell’immagine, vengono annullati (soppressi) tutti i valori dei pixel che non sono più elevati dei due vicini nella direzione del gradiente. CANNY EDGE DETECTOR/LINKER HYSTERESIS THRESHOLDING • Basato su una doppia soglia: • A partire da ogni pixel al di sopra della soglia alta, Thigh ,il relativo contorno viene “seguito”, finchè i pixel hanno un valore superiore alla sogli bassa, Tlow. TECNICHE DI BASE REGION-BASED • Si basano sulla progressiva aggregazione di pixel in regioni connesse. • Tale aggregazione avviene sulla base di uno o più criteri di similarità. • Il prodotto della segmentazione sarà stavolta una mappa di etichette. REGION GROWING (1) • Proposto da Haralick, fa uso di descrittori statistici. • I pixel dell’immagine sono progressivamente raggruppati fino a quando media e varianza della regione ottenuta restano stabili. Sia R una regione di N R pixel: 1 XR = NR ∑ I ( x, y ) ( x , y )∈R media SR = 2 2 ( I ( x , y ) − X ) ∑ R ( x , y )∈R scatter REGION GROWING (2) • Partendo da un punto qualsiasi dell’immagine vengono aggregati tutti i pixel del suo vicinato per i quali la statistica: ( N R − 1) N R 2 2 T = (x − X R ) / S NR +1 1/ 2 < Th • Le statistiche della regione vengono aggiornate: X R = ( N R X R + x) /( N R + 1) S R = S R + ( x − X R ) 2 + N R ( X R − X R old ) 2 2 2 • La procedura è ripetuta per ogni punto aggiunto. WATERSHED TRANSFORM (1) • Trasformata basata sui DEM (Digital Elevation Model): I valori di un blocco di dati sono interpretati come altitudini. A partire dai minimi locali, vi si associano gli elementi del vicinato che sono collegati ad essi da una traiettoria in ascesa (criterio di similarità). Si determinano così dei bacini di attrazione (catchment basin) separati da linee di separazione dette watershed. WATERSHED TRANSFORM (2) • E’ implementata attraverso algoritmi di flooding: Si simula il riempimento con acqua dei bacini di attrazione. La crescita delle regioni nelle varie direzioni viene arrestata quando più bacini si fondono. • Per la segmentazione, la trasformata si applica al gradiente dell’immagine. Watershed Line Catchment Basin WATERSHED TRANSFORM (3) • La mappa è generalmente molto frammentata (oversplitting). TECNICHE DI BASE CLASS-BASED • In queste tecniche, l’analisi dell’immagine non è più effettuata su base locale ma sull’intera immagine. • In generale, ai pixel dell’immagine vengono associati dei valori caratteristici detti “features” Valori di intensità per immagini monocromatiche Terne di valori (R,G,B) per immagini a colori, ecc.. • La segmentazione consiste nel raggruppare i pixel attraverso operazioni di sogliatura o di clustering. • Mappe di etichette e regioni non connesse. SOGLIATURA (1) • Tecnica basata sull’analisi dell’istogramma dell’immagine. • Applicabile ad immagini a livelli di grigio, particolarmente indicata per segmentazioni binarie. Immagine sorgente Soglia I ( x, y ) T Immagine thresholded 0 se I ( x, y ) < T I th ( x, y ) = 1 se I ( x, y ) ≥ T SOGLIATURA (2) • Nel caso più generale, la soglia può dipendere, oltre che dall’intensità, anche da altre proprietà associate ai pixel (thesholding locale): T = T [ I ( x, y ), p ( x, y )] • Inoltre, se la soglia dipende anche dalla posizione del pixel si parla di thresholding adattativo o dinamico: T = T [ x, y, I ( x, y ), p ( x, y )] SOGLIATURA (3) 140 120 100 Threshold 80 60 40 20 0 0 50 100 150 200 250 300 CLUSTERING • Insieme di tecniche il cui scopo è di raggruppare i pixel dell’immagine in cluster, sulla base di vettori caratteristici (feature vector) ad essi associati. • I vettori caratteristici determinano lo spazio di rappresentazione (feature space) dei pixel dell’immagine. • I vettori caratteristici dei pixel appartenenti ad un cluster sono “vicini” l’un l’altro nel corrispondente spazio di rappresentazione. K-MEANS CLUSTERING (1) • Si suddividono i pixel nello spazio di rappresentazione in K gruppi: C1 , C2 ,..., C K con medie m1 , m2 ,..., mK • L’errore quadratico medio (LSE) è utilizzato per determinare la distanza dei feature vector dalle medie dei rispettivi cluster: K D=∑ ∑ x −m k =1 xi ∈C K i 2 k • L’obiettivo è il clustering che minimizza D. K-MEANS CLUSTERING (2) ALGORITMO 1. Si sceglie in modo casuale un set di K medie (m1,…,mk) 2. Per ogni vettore xi si calcola la distanza dalle K medie: D ( xi , mk ) = xi − mk 2 ∀k = 1,..., K 3. Si assegna il pixel xi al cluster Cj a cui corrisponde la media più vicina 4. Si effettua l’aggiornamento delle medie 5. Si ripetono i punti 3 e 4 fino a convergenza: Ck it ≡Ck it −1 ∀k K-MEANS CLUSTERING (3) APPLICAZIONE 300 200 100 300 0 0 250 200 50 100 150 150 100 200 50 250 300 0 ISODATA CLUSTERING (1) • Si suddividono i pixel nello spazio di rappresentazione in K gruppi: C1 , C2 ,..., C K con medie m1 , m2 ,..., mK • Si considerano anche le matrici di covarianza: σ 11 σ 12 σ σ 22 12 Σk = ... ... σ 1n σ 2 n ... σ 1n ... σ 2 n ... ... ... σ nn • Si basa sulla fusione/suddivisione di cluster. ISODATA CLUSTERING (2) ALGORITMO 1. Si assegna xi al cluster l che minimizza: −1 DΣ = [ xi − ml ]' Σ l [ xi − ml ] 2. Si fondono tutte le coppie di cluster Ci e Cj per cui vale: mi − m j < τ υ 3. Si suddividono (2-means) tutti i cluster k per cui vale: max i λi (Σ k ) > τ υ 1. Si ripetono i punti 1,2 e 3 fino a convergenza. ISODATA CLUSTERING (3) APPLICAZIONE Immagine Sorgente Segmentazione K-Means Segmentazione ISODATA
© Copyright 2024 Paperzz