Segmentazione
Indice
Definizione di Segmentazione
Definizione
La segmentazione è il processo di partizionamento di un’immagine in regioni significative — tipicamente per separare gli oggetti di interesse dallo sfondo o tra di loro.
Due interpretazioni equivalenti:
- Separazione oggetti/sfondo: individuare cosa fa parte dell’oggetto e cosa no
- Partizionamento in regioni: dividere l’immagine in zone omogenee per colore, texture, intensità
In pratica: dopo la segmentazione, ogni pixel appartiene a una regione etichettata. Non è ancora classificazione (non diciamo “cos’è”), ma è il primo passo per capire cosa c’è nell’immagine.
Superpixel
Definizione
Un superpixel è un gruppo di pixel adiacenti con caratteristiche simili (colore, intensità), aggregati per ridurre la complessità dell’immagine mantenendo le strutture locali.
In pratica: invece di lavorare su milioni di pixel singoli, si lavora su qualche migliaio di superpixel. Ogni superpixel rappresenta una regione coerente dell’immagine.
Vantaggi:
- Riduzione del numero di unità da elaborare
- Preserva i bordi degli oggetti
- Utile come pre-processing per algoritmi più costosi
Binarizzazione con Soglia Globale
La binarizzazione trasforma un’immagine in scala di grigi in un’immagine binaria (bianco/nero) usando una soglia :
In pratica: ogni pixel sopra la soglia diventa bianco (oggetto), ogni pixel sotto diventa nero (sfondo). La scelta di è critica.
Come scegliere : si analizza l’istogramma dell’immagine. Se ci sono due picchi ben separati (uno per oggetti, uno per sfondo), la soglia va messa nella valle tra i due.
Problemi della Soglia Globale
Limitazioni
La soglia globale funziona bene solo se l’immagine ha condizioni di illuminazione uniformi.
Problemi comuni:
- Illuminazione non uniforme: una zona dell’immagine è più luminosa, la stessa soglia T non va bene ovunque
- Istogramma senza valle chiara: se gli oggetti e lo sfondo hanno intensità simili, non c’è un valore T ottimale
Soluzione: soglia adattiva — si calcola una soglia locale per ogni zona dell’immagine, adattandosi all’illuminazione locale.
Segmentazione Colore
Usa le informazioni di colore per separare gli oggetti. Tipicamente si lavora in uno spazio colore adatto (es. HSV, YCbCr) per separare l’informazione di luminosità da quella cromatica.
Tecniche Empiriche (Non Raccomandate)
Approccio Empirico
Consiste nel definire manualmente un intervallo di valori (es. “tutti i pixel con H tra 30 e 80 sono verdi”) basandosi sull’osservazione del singolo caso.
Problema: non generalizza. Se le condizioni di illuminazione cambiano, gli intervalli non funzionano più. È fragile e richiede riadattamento manuale per ogni nuovo scenario.
Classificatore Bayesiano
Approccio Consigliato
Si tratta i pixel come campioni da classificare usando un modello statistico addestrato su esempi.
Pipeline:
- Etichettatura — si raccolgono campioni di pixel appartenenti alle classi di interesse (es. “pelle”, “non pelle”)
- Stima della distribuzione — si modella la distribuzione di probabilità per ogni classe
- Classificazione Bayesiana — per ogni pixel nuovo, si assegna la classe con probabilità a posteriori maggiore:
Vantaggi rispetto all’approccio empirico:
- Più robusto alle variazioni di illuminazione (se il training set è vario)
- Generalizza meglio su nuove immagini
- Basato sui dati, non su regole manuali
Esempio pratico: rilevamento del verde pubblico nelle immagini aeree di Cesena — il classificatore viene addestrato su esempi di pixel “verde” e “non verde” e poi applicato all’intera immagine.
Morfologia Matematica
Definizione
La morfologia matematica è un insieme di operazioni che trasformano la forma degli oggetti binari (o in scala di grigi) in base alla loro struttura geometrica.
Nasce dalla teoria degli insiemi: un’immagine binaria è vista come un insieme di pixel attivi, e gli operatori morfologici applicano trasformazioni geometriche a questo insieme.
Elemento Strutturante
Definizione
L’elemento strutturante (structuring element, SE) è una forma geometrica piccola (es. disco, quadrato, croce) che definisce il tipo di trasformazione morfologica.
In pratica: è come uno “stampo” che si fa scorrere sull’immagine. La forma del SE determina cosa si preserva e cosa si elimina.
Dilatazione
In parole: un pixel è attivo nell’immagine risultante se l’elemento strutturante (centrato su quel pixel) tocca almeno un pixel attivo dell’immagine originale.
Effetto:
- Espande le regioni bianche
- Colma buchi e riempie discontinuità nei contorni
- Unisce oggetti vicini
Uso tipico: riparare contorni spezzati, connettere componenti separate.
Erosione
In parole: un pixel è attivo nell’immagine risultante se l’elemento strutturante (centrato su quel pixel) è completamente contenuto nell’immagine originale.
Effetto:
- Restringe le regioni bianche
- Elimina piccoli oggetti (più piccoli del SE)
- Separa oggetti che si toccano
Uso tipico: rimuovere rumore, separare oggetti adiacenti.
Apertura e Chiusura
Le due operazioni morfologiche principali si ottengono combinando erosione e dilatazione:
Apertura (erosione poi dilatazione):
- Effetto: rimuove piccoli oggetti e protuberanze sottili, mantenendo la forma generale
- Uso: eliminare rumore di foreground, levigare i contorni degli oggetti
Chiusura (dilatazione poi erosione):
- Effetto: riempie piccoli buchi e discontinuità, unisce parti vicine
- Uso: chiudere gap nei contorni, riempire fori interni agli oggetti
Regola mnemonica
Apertura = Apre (rimuove) le piccole protuberanze; Chiusura = Chiude (riempie) i piccoli buchi.
| Operazione | Formula | Effetto principale |
|---|---|---|
| Dilatazione | Espande oggetti, riempie discontinuità | |
| Erosione | Restringe oggetti, rimuove rumore | |
| Apertura | Rimuove piccoli oggetti/protuberanze | |
| Chiusura | Riempie buchi, unisce vicini |
Segmentazione tramite Edge
Un approccio alternativo alla segmentazione usa i bordi (edge) per delimitare le regioni. La pipeline tipica è:
- Calcolo del gradiente — applica un operatore di edge detection (es. Sobel) per trovare i bordi
- Binarizzazione — soglia sul gradiente per ottenere una mappa binaria dei bordi
- Dilatazione — espande leggermente i bordi per chiudere eventuali gap
- Riempimento — riempie le regioni chiuse dai bordi (flood fill)
- Erosione — rimuove l’effetto della dilatazione per tornare ai bordi originali
In pratica: questo approccio funziona bene quando gli oggetti hanno bordi netti e ben definiti. È problematico in presenza di texture complesse o bordi deboli.
Clustering
Il clustering raggruppa i pixel in base alla similitudine senza usare etichette. È un approccio non supervisionato: il sistema trova autonomamente i gruppi.
K-Means Clustering
Definizione
K-means partiziona i pixel in cluster, minimizzando la distanza intra-cluster.
Algoritmo:
- Scegli centroidi iniziali (casualmente o con euristica)
- Assegna ogni pixel al centroide più vicino
- Ricalcola i centroidi come media dei pixel assegnati
- Ripeti fino alla convergenza
Distanza: tipicamente euclidea nello spazio colore (es. RGB, Lab).
Vantaggi:
- Semplice e veloce
- Ben noto e ampiamente usato
Svantaggi:
- Bisogna scegliere a priori
- Sensibile ai centroidi iniziali
- Assume cluster sferici di dimensioni simili
- Non gestisce bene cluster di forma arbitraria
Mean Shift
Definizione
Mean shift è un algoritmo di clustering non parametrico che non richiede di specificare il numero di cluster a priori.
Idea: ogni punto si sposta iterativamente verso la zona di maggiore densità locale (il “picco” della distribuzione). I punti che convergono verso lo stesso picco appartengono allo stesso cluster.
Algoritmo:
- Per ogni punto, calcola la media dei punti vicini (in una finestra di raggio )
- Sposta il punto verso quella media
- Ripeti fino alla convergenza
- I punti che convergono verso lo stesso attractor formano un cluster
Parametro chiave: (bandwidth) — determina quanto è grande la finestra. Un piccolo trova molti cluster fini, un grande ne trova pochi grandi.
Vantaggi rispetto a K-Means:
- Non serve specificare — il numero di cluster emerge dai dati
- Trova cluster di forma arbitraria
- Robusto agli outlier
Svantaggi:
- Più lento di K-Means
- Sensibile alla scelta di
- Scala male con dataset molto grandi
| Metodo | K a priori | Forma cluster | Velocità |
|---|---|---|---|
| K-Means | Sì | Solo sferici | Veloce |
| Mean Shift | No | Qualsiasi | Lento |