La segmentazione di un'immagine nell'elaborazione digitale delle immagini è il processo di partizione di un'immagine in regioni significative. Viene utilizzata per ottenere una rappresentazione più compatta, per estrarre degli oggetti o come strumento per l'analisi delle immagini e permette di partizionare le immagini digitali in insiemi di pixel. Lo scopo della segmentazione è semplificare e/o cambiare la rappresentazione delle immagini in qualcosa che è più significativo e facile da analizzare.
La segmentazione è di solito utilizzata per localizzare oggetti e bordi (linee, curve, ecc.). Più precisamente, la segmentazione è il processo con il quale si classificano i pixel dell'immagine che hanno caratteristiche comuni, pertanto ciascun pixel in una regione è simile agli altri della stessa regione per una qualche proprietà o caratteristica (colore, intensità o texture). Regioni adiacenti sono significativamente differenti rispetto ad almeno una di queste caratteristiche. Il risultato di un'immagine segmentata è un insieme di segmenti che, collettivamente, coprono l'intera immagine.
Esistono tre tipologie principali di algoritmo per segmentare un'immagine: basati sull'istogramma, basati sulla crescita/divisione delle regioni e basati sulla tecnica del rilassamento. Metodologie di segmentazione Di seguito un elenco dei metodi di segmentazione:
Sogliatura (Thresholding) Metodi di raggruppamento Metodi basati sulla compressione Metodi basati sull'istogramma Riconoscimento dei contorni Metodo di raggruppamento duale Metodo di crescita della regione Metodi basati su equazioni differenziali parziali Metodi parametrici Metodi ad impostazione del livello Metodi di riscontro rapido Metodi variazionali Metodi di partizione a grafo Campi casuali markoviani Segmentazione dell'immagine supervisionata usando MRF e MAP Algoritmi di ottimizzazione Iterated conditional modes/gradient descent Annealing simulato (SA) Algoritmi alternanti Segmentazione dell'immagine non supervisionata usando MRF e massimizzazione dell'aspettazione Segmentazione d'immagini basati sull'implementazione di MRF Trasformazione di Watershed Segmentazione basata sul modello Segmentazione multi-scala Segmentazione del segnale gerarchico monodimensionale Segmentazione semi-automatica Segmentazione allenabile
Region growing
Tali meccanismi si basano sull'idea che bisogna trovare regioni che rappresentano oggetti o parti di essi; per questo motivo, il dominio dell'immagine deve essere diviso in regioni e la regola di segmentazione è un predicato logico . La procedura di segmentazione partiziona l'insieme dell'immagine in sottoinsiemi tali che: l'unione di tali sottoinsiemi corrisponda con l'insieme , i sottoinsiemi siano disgiunti, il predicato assuma valore di verità positivo per ciascuno di tali sottoinsiemi e che non sia possibile che venga verificato il predicato per una regione corrispondente all'unione di più sottoinsiemi . Il risultato della segmentazione è un predicato logico avente la forma , in cui è un vettore delle caratteristiche associate al pixel (luminosità, texture, colore, coordinate spaziali), è un vettore di parametri (generalmente dei valori di soglia).
Il cosiddetto region growing utilizza un semplice approccio, cioè parte da alcuni pixel (seeds) che rappresentano regioni distinte dell'immagine (per fare ciò ci si può basare sulle informazioni fornite dall'istogramma) e li "accresce" fino a che tutta l'immagine risulta coperta. Per fare ciò servono una regola che descriva il meccanismo di crescita ed una regola che controlla l'omogeneità di ogni regione dopo ogni "accrescimento" e che verifica se è possibile unire due regioni distinte. Il meccanismo di crescita funziona in questa maniera: ad ogni passo e per ciascuna regione , si controlla se ci sono pixel non classificati nel vicinato 8-connesso (in poche parole gli otto pixel che circondano quello in esame) di ciascun pixel del bordo della regione; nel caso, prima di assegnare tale pixel alla regione , si verifica se la regione è ancora omogenea, ovvero se .
Un possibile esempio di test di omogeneità è il seguente: se l'intensità del pixel è vicina al valore medio della regione, cioè .
La soglia varia a seconda della regione e dell'intensità del pixel , una possibile soglia è: = – . Un meccanismo simile può essere usato per fare il merging, ovvero la fusione, di regione distinte: date le deviazioni standard dei valori presenti nelle due regioni, se | – | < , con , le due regioni sono fuse insieme.
Split Un approccio differente al region growing e di tipo top-down è quello dello splitting: esso parte dall'ipotesi che l'immagine sia omogenea; se ciò non è verificato l'immagine viene suddivisa in altre sottoimmagini (generalmente 4, per creare un cosiddetto quad-tree). Tale procedura viene ripetuta ricorsivamente fino a che restano esclusivamente regioni omogenee. Poiché la procedura è ricorsiva, produce una rappresentazione che può essere descritta da un albero i cui nodi hanno quattro (o comunque il numero di sottoimmagini che vengono ottenute suddividendo) figli ciascuno. Un problema che si pone a questo punto con la tecnica di split è come unire le regioni adiacenti ed omogenee che risultano distinte: per tale motivazione ad ogni iterazione è seguito un merging; proceduralmente, ciò significa che date due regioni e , se esse vengono fuse.
Clustering
Una procedura più elaborata per effettuare l'image segmentation è quella di utilizzare la tecnica del clustering, peraltro usata in moltissimi ambiti applicativi. Questa tecnica consente di determinare, a partire da un insieme di dati, gruppi con caratteristiche "simili", connotando ovviamente in modo matematico questa affermazione (distanza euclidea, distanza in termini di colore, ecc). Per una spiegazione elaborata si fa riferimento alla voce corrispondente, tuttavia bisogna ricordare che nel caso specifico dell'image processing, tra le caratteristiche da tenere in considerazione devono esservi anche le coordinate spaziali, per evitare che vengano rilevate regioni omogenee ed uniche ma che di fatto sono distinte nell'immagine.
Segmentazione basata su deep learning Negli ultimi anni, la segmentazione di immagini mediante apprendimento profondo (deep learning) ha rivoluzionato il campo della visione artificiale, superando molte tecniche tradizionali basate su sogliatura, clustering o morfologia matematica.
Uno dei modelli più influenti è la U-Net, introdotta da Ronneberger et al. per la segmentazione di immagini biomediche, basata su un'architettura encoder–decoder con connessioni di salto per preservare l'informazione spaziale.
Successivamente sono stati sviluppati numerosi modelli derivati, come SegNet, DeepLab, PSPNet e Mask R-CNN, che hanno ampliato le capacità di segmentazione semantica e di istanza in vari domini applicativi, dall’elaborazione di immagini naturali a quella biomedica.
Nel campo delle immagini biomediche e patologiche, il deep learning ha consentito la segmentazione automatica di organi, lesioni e nuclei cellulari in immagini TC, RM, ecografiche e di vetrini digitali (Whole Slide Images).
Le sfide includono la necessità di grandi quantità di dati annotati, la generalizzazione tra domini (scanner o protocolli diversi) e la segmentazione di strutture complesse o di piccole dimensioni. Sono state proposte soluzioni come l’uso di dati sintetici, l’apprendimento debole o semi-supervisionato e i modelli transformer-based.
Note
Voci correlate GIMP ImageJ Mappatura statistica parametrica (SPM) Morfometria basata sui voxel (VBM) 3DSlicer
Altri progetti
Categoria:Bioinformatica Categoria:Elaborazione digitale delle immagini Categoria:Imaging biomedico