La segmentazione delle immagini nella visione artificiale

La segmentazione delle immagini è uno dei passaggi più importanti per l’analisi e per l’elaborazione delle immagini digitali. Permette di semplificare l’immagine dividendola in parti disgiunte oppure omogenee. In questo modo è possibile estrarre informazioni che, una volta analizzate, sono in grado di riprodurre artificialmente la vista umana.

Introduzione

Le immagini sono la rappresentazione visiva degli oggetti, ecco perché, se la capacità di vedere attraverso di esse viene applicata alle moderne tecnologie, è possibile progettare e sviluppare sistemi avanzati ed innovativi sempre più utili e precisi. Un vantaggio che interessa tanti campi di applicazione, sia in ambiti industriali o scientifici, che più comunemente in ciò che riguarda la vita di tutti noi. Un esempio, ormai comune, di tecnologia già in uso che appartiene all’Intelligenza Artificiale ed è strettamente legato alla Computer Vision, è il riconoscimento dei volti nelle immagini.

LA VISIONE ARTIFICIALE

Per computer vision si intende il processo di estrazione di informazioni da immagini statiche o video. Tipicamente si basa su reti neurali (deep learning) o altri algoritmi di AI (un approfondimento interessante è l'articolo Fondamenti di deep learning per la visione artificiale). L'obiettivo principale della computer vision non è solo “vedere”, ma anche elaborare e fornire risultati su quanto osservato. Lo sviluppo di metodologie in grado di estrarre informazioni dalle immagini del mondo reale, parallelamente all’utilizzo di tecniche per lo sviluppo di algoritmi che permettono ai calcolatori di svolgere compiti intelligenti in modo automatico, ha inizio già negli anni sessanta ma solo successivamente a partire dagli anni ottanta in poi queste metodologie si sono concretizzate in prodotti hardware e software.

Oggi, i campi di applicazione sono tanti e trasversali, così come le finalità che spaziano dalla guida autonoma dei veicoli o l’analisi nel monitoraggio del traffico, alla diagnostica per immagini nella radiologia medica o alle analisi istologiche nella biomedica, al tele rivelamento per il monitoraggio ambientale e per i settori che includono le geo informazioni o, più in generale, alla visione industriale e alla robotica. Questi sono solo alcuni dei campi e delle finalità possibili.  

Un sistema di visione artificiale elabora le immagini in modi spesso complessi a seconda dell’ambito di applicazione e della complessità stessa delle immagini e viene raggruppato in fasi: 

  • Acquisizione di immagini
  • Pre-processing: generalmente, consiste nel compiere alcune operazioni sulle immagini acquisite, come ad esempio l'eliminazione di “rumore”, l’applicazione di filtri, il ridimensionamento dell’immagine
  • Feature extraction: l’estrazione di particolari caratteristiche contenute nelle immagini come linee, contorni o punti particolari
  • Segmentation: il processo di selezione delle aree di interesse all’interno delle immagini
  • Training: la fase di apprendimento e validazione del modello utilizzando data set composti dalle immagini dopo che hanno attraversato le fasi precedenti

Uno dei passaggi di questo processo più importante è rappresentato dalla segmentazione delle immagini.

LA SEGMENTAZIONE DELLE IMMAGINI

La segmentazione è la tecnica che durante l'elaborazione e l'analisi delle immagini digitali permette di suddividere un'immagine in parti o regioni, spesso in base alle caratteristiche dei pixel. Questa tecnica è nata principalmente per risolvere in modo efficace problemi e criticità che richiedono informazioni dettagliate sugli oggetti presenti in un'immagine. Dettagli che non possono essere assolutamente forniti classificando l'intera immagine o parti di essa corrispondenti ad un semplice riquadro. Un processo importante che termina solo quando gli oggetti o meglio le regioni di interesse, sono state individuate e si passa all’estrazione e analisi delle informazioni ottenute. Ci sono due approcci alla segmentazione: per discontinuità che si ha, ad esempio, quando i bordi di una regione di interesse sono sufficientemente diversi l’uno dall’altro e anche dallo sfondo, e per similarità quando le regioni anche se distanti sono simili.

Se si fa specifico riferimento ai pixel si parla di segmentazione semantica: gli oggetti classificati con gli stessi valori di pixel vengono segmentati con le stesse mappe di colori. Al contrario, la segmentazione delle istanze differisce dalla segmentazione semantica perché diverse istanze dello stesso oggetto sono segmentate con mappe di colori differenti. La segmentazione può comportare la separazione del primo piano dallo sfondo di immagine o parte di essa o il raggruppamento di regioni di pixel in base a somiglianze di colore o forma. Esistono molte tecniche che spesso si combinano anche tra loro e negli anni sono stati sviluppati diversi algoritmi in base alla specifica area di applicazione.

TECNICHE DI SEGMENTAZIONE DELLE IMMAGINI

Bisogna ricordare che la segmentazione di un'immagine non è univoca. Infatti, se si va alla ricerca di caratteristiche diverse si otterranno segmentazioni molto diverse così come utilizzando algoritmi diversi si ottengono risultati diversi. Esistono molti approcci e molte tecniche.

Segmentazione basata su sogliatura

Separa gli oggetti in diverse regioni in base ad alcuni valori di soglia. Si parla di threshold segmentation, un modo molto semplice per segmentare oggetti diversi, ad esempio, utilizzando i valori dei pixel. I valori di pixel sono diversi per gli oggetti e per lo sfondo dell’immagine se c’è un forte contrasto tra loro. In questo caso si può impostare un valore di soglia. I valori dei pixel che cadono al di sotto o al di sopra di quella soglia possono essere classificati come un oggetto o come sfondo. Nel caso di immagine in due regioni, oggetto e sfondo, si definisce un solo valore di soglia, global threshold o soglia globale. Se insieme allo sfondo ci sono più oggetti, allora occorre definire più soglie creando delle soglie locali: local threshold. Questa tecnica permette calcoli molto semplici e funziona bene e velocemente quando l’oggetto e lo sfondo hanno un contrasto elevato. Mentre, quando non c'è una differenza significativa nella scala di grigi o una sovrapposizione dei valori dei pixel in scala di grigi, diventa molto difficile ottenere segmenti precisi. L’immagine di input è spesso una immagine a toni di grigio, l’output è una immagine binaria. I pixel neri identificano lo sfondo e i pixel bianchi gli oggetti e viceversa. 

Immagine f(x,y) in bianco e nero e soglia di intensità T. Si può calcolare l’immagine di soglia g(x,y) determinando per ogni pixel (x,y) il valore.

I pixel 1 corrispondono agli oggetti dell’immagine (object points) mentre i pixel 0 allo sfondo (background points). Il risultato dipende dalla scelta del parametro T che può essere sempre costante (sogliatura globale) oppure variare da pixel a pixel (sogliatura locale).

Figura 1

Edge segmentation

Si tratta di una tecnica del rilevamento dei bordi di un oggetto. Utilizzando le caratteristiche locali discontinue di un'immagine vengono rilevati i bordi e definito un confine dell'oggetto. Gli oggetti all’interno di una immagine sono sempre divisi da un bordo che può essere considerato ciò che rende discontinua un’immagine creando regioni diverse. In pratica, un bordo tra due regioni adiacenti ha diversi valori dei pixel ovvero diversi valori di scala di grigi. La discontinuità permette così di rilevare i bordi e definire un confine dell’oggetto o di più oggetti all’interno di una immagine. Per rilevare i bordi si utilizzano filtri all'immagine oppure una matrice di convoluzione.

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2083 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend