My IBM Accedi Iscriviti

Home

topics

Segmentazione delle immagini

Cos'è la segmentazione delle immagini?

Cos'è la segmentazione delle immagini?

Scopri IBM Maximo Visual Inspection
Un progetto grafico di scatole 3D

La segmentazione delle immagini è una tecnica di computer vision che suddivide un'immagine digitale in gruppi di pixel (segmenti di immagine) per informare il rilevamento degli oggetti e le attività correlate. Analizzando i dati visivi complessi di un'immagine in segmenti appositamente modellati, la segmentazione delle immagini consente un'elaborazione delle immagini più rapida e avanzata.

Le tecniche di segmentazione dell'immagine vanno dall'analisi euristica semplice e intuitiva all'implementazione all'avanguardia del deep learning. Gli algoritmi convenzionali di segmentazione delle immagini elaborano funzioni visive di alto livello di ciascun pixel, come il colore o la luminosità, per identificare i confini degli oggetti e le regioni di sfondo. Il machine learning, che sfrutta i dataset annotati, viene utilizzato per addestrare i modelli a classificare con precisione i tipi specifici di oggetti e regioni contenuti in un'immagine.

Essendo un metodo altamente versatile e pratico di computer vision, la segmentazione delle immagini ha un'ampia varietà di casi d'uso dell'intelligenza artificiale, dall'aiuto alla diagnosi nell'imaging medico all'automazione della locomozione per la robotica e le auto a guida autonoma fino all'identificazione di oggetti di interesse nelle immagini satellitari.

Contenuti correlati Iscriviti alla newsletter IBM
Segmentazione delle immagini, rilevamento di oggetti e classificazione delle immagini

Segmentazione delle immagini, rilevamento di oggetti e classificazione delle immagini

La segmentazione delle immagini rappresenta un'evoluzione avanzata sia della classificazione delle immagini che del rilevamento degli oggetti, oltre a una serie distinta di funzionalità uniche di computer vision.

La classificazione delle immagini applica un'etichetta di classe a un'intera immagine. Ad esempio, un semplice modello di classificazione delle immagini potrebbe essere addestrato a classificare le immagini di veicoli come "auto" o "camion". I sistemi convenzionali di classificazione delle immagini hanno un livello di sofisticazione limitato, poiché non elaborano separatamente le singole caratteristiche dell'immagine.

Il rilevamento degli oggetti combina la classificazione delle immagini con la localizzazione degli oggetti, generando regioni rettangolari, chiamate "riquadri di delimitazione", in cui si trovano gli oggetti: piuttosto che etichettare semplicemente un'immagine di un veicolo come "auto" o "camion", un modello di rilevamento degli oggetti potrebbe indicare dove si trovano le auto o i camion nell'immagine. Anche se il rilevamento degli oggetti è in grado di classificare più elementi all'interno di un'immagine e approssimare la larghezza e l'altezza di ciascun elemento, non può rilevare confini o forme precisi. Ciò limita la capacità dei modelli di rilevamento degli oggetti convenzionali di delineare oggetti strettamente raggruppati con riquadri di delimitazione sovrapposti.

La segmentazione delle immagini elabora i dati visivi a livello di pixel, utilizzando diverse tecniche per annotare singoli pixel come appartenenti a una specifica classe o istanza. Le tecniche di segmentazione delle immagini "classiche" determinano le annotazioni analizzando le qualità intrinseche di ciascun pixel (chiamate "euristiche") come il colore e l'intensità, mentre i modelli di deep learning impiegano complesse reti neurali per un riconoscimento sofisticato dei modelli. I risultati di questa annotazione sono maschere di segmentazione, che rappresentano il confine e la forma specifica, pixel per pixel, di ciascuna classe, solitamente corrispondente a diversi oggetti, caratteristiche o regioni dell'immagine. 

In generale, la segmentazione delle immagini viene utilizzata per tre tipi di attività: segmentazione semantica, segmentazione delle istanze e segmentazione panottica.

Classi semantiche: "cose" ed "elementi"

Classi semantiche: "cose" ed "elementi"

La differenza tra ogni tipo di attività di segmentazione delle immagini risiede nel modo in cui trattano le classi semantiche: le categorie specifiche a cui può appartenere un determinato pixel.

Nel linguaggio della computer vision, esistono due tipi di classi semantiche. Ciascuna si presta a tecniche diverse per una segmentazione accurata ed efficace.

Per "thing" si intendono classi di oggetti con forme caratteristiche, come "auto" o "albero" o "persona". In genere, hanno istanze chiaramente definite che sono numerabili. Hanno variazioni di dimensioni relativamente piccole da un caso all'altro e parti costitutive distinte dalla cosa stessa: per esempio, tutte le auto hanno le ruote, ma una ruota non è un'auto.

Per "elemento" ci si riferisce a classi semantiche amorfe e dalle dimensioni molto variabili, come "cielo" o "acqua" o "erba". In genere, questi oggetti non hanno istanze individuali chiaramente definite e numerabili. A differenza delle cose, gli elementi non hanno parti distinte: un filo d'erba e un prato sono entrambi ugualmente "erba".

Alcune classi, in determinate condizioni di immagine, possono essere sia "cose" che "elementi". Ad esempio, un grande gruppo di gente può essere interpretato come più "persone" – ciascuna una cosadalla forma distinta e numerabile—o come un'unica "folla" di forma amorfa.

Sebbene la maggior parte degli sforzi di rilevamento degli oggetti si concentri principalmente sulle classi "cose", è importante considerare che gli oggetti "elementi" (cielo, muri, pavimenti, terreno) costituiscono la maggior parte del nostro contesto visivo. La classe "elementi" è un dato essenziale per identificare le cose e viceversa: una cosa metallica su una strada è di solito un'automobile; lo sfondo blu dietro una barca è probabilmente acqua, mentre lo sfondo blu dietro un aereo è probabilmente il cielo. Ciò è di particolare importanza per i modelli di deep learning.

Segmentazione semantica

Segmentazione semantica

La segmentazione semantica è il tipo più semplice di segmentazione delle immagini. Un modello di segmentazione semantica assegna una classe semantica a ogni pixel, ma non genera altri contesti o informazioni (come gli oggetti).

La segmentazione semantica tratta tutti i pixel come "elementi" ; non fa differenza tra "elementi" e "cose".

Ad esempio, un modello di segmentazione semantica addestrato per identificare determinate classi in una strada cittadina produrrebbe maschere di segmentazione che indicano i confini e i contorni per ciascuna classe rilevante di "cose" (come veicoli o pali della luce) ed "elementi" (come strade e marciapiedi), ma non creerebbe alcuna distinzione tra (o conterebbe il numero di) più istanze della stessa classe. Ad esempio, le auto parcheggiate una di fronte all'altra potrebbero essere trattate semplicemente come un unico, lungo segmento di "auto".

Segmentazione delle istanze

Segmentazione delle istanze

La segmentazione delle istanze inverte le priorità della segmentazione semantica: mentre gli algoritmi di segmentazione semantica prevedono solo la classificazione semantica di ciascun pixel (senza considerare le singole istanze), la segmentazione delle istanze delinea la forma esatta di ogni istanza di oggetto separata.

La segmentazione delle istanze isola le "cose" dagli "elementi",che ignora, e può quindi essere intesa come una forma evoluta di rilevamento degli oggetti che produce una maschera di segmentazione precisa invece di un riquadro di delimitazione approssimativo.

È un compito più difficile della segmentazione semantica: anche quando elementi della stessa classe si toccano o addirittura si sovrappongono, i modelli di segmentazione delle istanze devono essere in grado di separare e determinare la forma di ciascuno di essi, mentre i modelli di segmentazione semantica possono semplicemente raggrupparli insieme. Consideriamo, ad esempio, come i due diversi modelli trattano le auto parcheggiate in questa immagine di una strada di città.

Gli algoritmi di segmentazione delle istanze generalmente adottano un approccio al problema in due fasi o one-shot. I modelli a due stadi, come le reti neurali convoluzionali basate su regioni (R-CNN), eseguono il rilevamento convenzionale degli oggetti per generare riquadri di delimitazione per ogni istanza proposta, quindi eseguono una segmentazione e una classificazione più raffinate all'interno di ciascun riquadro di delimitazione. I modelli one-shot, come YOLO (You Only Look Once), consentono di segmentare le istanze in tempo reale eseguendo contemporaneamente il rilevamento, la classificazione e la segmentazione degli oggetti.

Gli approcci one-shot offrono una maggiore velocità (con un compromesso in termini di precisione), mentre gli approcci in due fasi offrono una maggiore precisione (con un compromesso in termini di velocità).

Segmentazione panottica

Segmentazione panottica

I modelli di segmentazione panottica determinano la classificazione semantica di tutti i pixel e differenziano ogni istanza di oggetto in un'immagine, combinando i vantaggi della segmentazione semantica e di istanza.

In un'attività di segmentazione panottica, ogni pixel deve essere annotato sia con un'etichetta semantica che con un "ID istanza". I pixel che condividono la stessa etichetta e lo stesso ID appartengono allo stesso oggetto; per i pixel determinati come "elementi", l'ID istanza viene ignorato.

La segmentazione panottica fornisce quindi ai sistemi di computer vision una comprensione completa e olistica di una determinata immagine. Sebbene la sua attrattiva sia ovvia, ottenere la segmentazione panottica in modo coerente ed efficiente dal punto di vista computazionale è una sfida imponente.

La sfida consiste nell'unificare due metodologie contraddittorie: i modelli di segmentazione semantica trattano tutti i pixel come "elementi", ignorando le singole istanze delle cose; i modelli di segmentazione dell'istanza isolano le singole cose, ignorando gli elementi. Nessuno dei due tipi di modello può assorbire adeguatamente le responsabilità dell'altro.

I tentativi iniziali di modelli di segmentazione panottica combinavano semplicemente i due modelli, eseguendo ogni compito separatamente e quindi combinando i risultati in una fase di post-elaborazione. Questo approccio presenta due principali inconvenienti: richiede un notevole sovraccarico di calcolo e presenta discrepanze tra i punti dati ottenuti dalla rete di segmentazione semantica e i punti dati ottenuti dalla rete di segmentazione delle istanze.

Le nuove architetture di segmentazione panottica mirano a evitare questi inconvenienti con un approccio più unificato al deep learning. La maggior parte di esse si basa su una rete "dorsale", come una rete di piramidi di caratteristiche (FPN), che estrae le caratteristiche dall'immagine di input, inserisce i dati estratti in rami paralleli, come un "ramo in primo piano" e un "ramo di sfondo", o una "testa semantica" e una "testa di istanza", e poi unisce il risultato di ciascun ramo utilizzando un sistema ponderato. Le architetture panottiche proposte includono EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet e SpatialFlow.

Tecniche tradizionali di segmentazione delle immagini

Tecniche tradizionali di segmentazione delle immagini

Le tecniche tradizionali di segmentazione delle immagini utilizzano le informazioni provenienti dai valori di colore di un pixel (e dalle caratteristiche correlate come luminosità, contrasto o intensità) per l'estrazione delle caratteristiche e possono essere rapidamente addestrate con semplici algoritmi di apprendimento automatico per attività come la classificazione semantica.

Sebbene i metodi di segmentazione basati sul deep learning siano in grado di fornire una maggiore precisione e un'analisi delle immagini più sofisticata (soprattutto attività come la segmentazione panottica che richiedono una grande quantità di informazioni contestuali), i metodi tradizionali sono molto meno costosi e impegnativi dal punto di vista computazionale e possono risolvere determinati problemi in modo più efficiente.

Le comuni tecniche di segmentazione delle immagini tradizionali (o "classiche") includono:

  • Soglia: i metodi di soglia creano immagini binarie, classificando i pixel in base al fatto che la loro intensità sia superiore o inferiore a un determinato "valore di soglia". Il metodo di Otsu viene spesso utilizzato per determinare il valore di soglia che minimizza la variazione all'interno della classe.
  • Istogrammi: gli istogrammi, che tracciano la frequenza di determinati valori di pixel in un'immagine, vengono spesso utilizzati per definire le soglie. Ad esempio, gli istogrammi possono dedurre i valori dei pixel di sfondo, contribuendo a isolare i pixel dell'oggetto.
  • Riconoscimento dei contorni: i metodi di riconoscimento dei contorni identificano i confini di oggetti o classi rilevando discontinuità nella luminosità o nel contrasto.
  • Spartiacque: gli algoritmi spartiacque trasformano le immagini in scala di grigi, quindi generano una mappa topografica in cui "l'elevazione" di ogni pixel è determinata dalla sua luminosità. Regioni, confini e oggetti possono essere dedotti da dove si formano "valli", "dorsali" e "bacini idrografici".
  • Segmentazione basata sulle regioni: a partire da uno o più "seed pixel", gli algoritmi di crescita delle regioni raggruppano pixel vicini con caratteristiche simili. Gli algoritmi possono essere agglomerativi o divisivi.
  • Segmentazione basata su cluster: metodo di apprendimento non supervisionato, gli algoritmi di clustering suddividono i dati visivi in cluster di pixel con valori simili. Una variante comune è il K-means clustering, in cui k è il numero di cluster: i valori di pixel sono tracciati come punti di dati e i punti casuali k sono selezionati come centro di un cluster ("centroide"). " Ogni pixel viene assegnato a un cluster in base al baricentro più vicino, ovvero quello più simile. I centroidi vengono quindi riposizionati sul punto medio di ciascun cluster e il processo viene ripetuto, riposizionando i centroidi ad ogni iterazione finché i cluster non si sono stabilizzati. Il processo è visualizzato qui (link esterno a ibm.com).
Modelli di segmentazione delle immagini con deep learning

Modelli di segmentazione delle immagini con deep learning

Addestrate su un dataset di immagini annotato, le reti neurali dei modelli di segmentazione delle immagini di deep learning scoprono i modelli sottostanti nei dati visivi e distinguono le caratteristiche salienti più rilevanti per la classificazione, il rilevamento e la segmentazione.

Nonostante i compromessi in termini di requisiti di elaborazione e tempi di addestramento, i modelli di deep learning superano costantemente i modelli tradizionali e costituiscono la base della maggior parte dei progressi continui nella computer vision.

I principali modelli di deep learning utilizzati nella segmentazione delle immagini includono:

  • Reti completamente convoluzionali (FCN): le FCN, spesso utilizzate per la segmentazione semantica, sono un tipo di rete neurale convoluzionale (CNN) senza livelli fissi. Una rete encoder passa i dati di input visivi attraverso livelli convoluzionali per estrarre le caratteristiche rilevanti per la segmentazione o la classificazione, e comprime (o sottocampiona) i dati di questa caratteristiche per rimuovere le informazioni non essenziali. Questi dati compressi vengono quindi inseriti nei livelli di decodifica , sovracampionando i dati delle caratteristiche estratte per ricostruire l'immagine di input con maschere di segmentazione.
  • U-Net: le U-Net modificano l'architettura FCN per ridurre la perdita di dati durante il downsampling con skip connection, preservando maggiori dettagli bypassando selettivamente alcuni strati convoluzionali mentre le informazioni e i gradienti si muovono attraverso la rete neurale. Il suo nome deriva dalla forma dei diagrammi che dimostrano la disposizione dei suoi livelli.
  • Deeplab: come le U-Net, Deeplab è un'architettura FCN modificata. Oltre a saltare le connessioni, utilizza la convoluzione dilatata (o "atrous") per ottenere mappe di output più grandi senza richiedere ulteriore potenza di calcolo.
  • Mask R-CNN: la rete Mask R-CNN è un modello leader per la segmentazione delle istanze. Le reti Mask R-CNN combinano una rete di proposta regionale (RPN) che genera riquadri di delimitazione per ogni potenziale istanza con una "testa maschera" basata su FCN che genera maschere di segmentazione all'interno di ciascun riquadro di delimitazione confermato.
Dataset di addestramento per modelli di deep learning

Dataset di addestramento per modelli di deep learning

Non solo per mappare i confini dei segmenti di immagini, ma anche per prevedere quale elemento o cosa rappresenta ciascun segmento, i modelli di deep learning vengono addestrati su set di dati di grandi dimensioni e annotati per riconoscere classi semantiche specifiche. Da queste immagini pre-etichettate, i modelli di deep learning deducono i modelli e i valori dei pixel tipici di ciascuna etichetta.

Compiti diversi richiedono dati di addestramento diversi: un sistema di computer vision per auto a guida autonoma viene addestrato su immagini etichettate con classi semantiche come "persona", "auto", "corsia" e "segnale di stop", mentre i modelli di imaging medico richiedono l’ottimizzazione per il riconoscimento di classi specifiche di tessuti fisici, oppure tumori e altre patologie.

I dataset di addestramento devono essere attentamente pre-etichettati da esperti umani, il che può essere estremamente laborioso. La maggior parte dei modelli di segmentazione delle immagini utilizza dataset di grandi dimensioni open source. Questi dataset pubblici fungono anche da "verità fondamentale" quando si valuta il successo dei modelli addestrati: le metriche delle prestazioni sono spesso espresse come percentuale di risultati che corrispondono accuratamente alle annotazioni nel dataset di addestramento.

I dataset di addestramento più diffusi per i modelli di segmentazione delle immagini di deep learning includono:

  • COCO (Common Objects in Context): un dataset su larga scala contenente oltre 330.000 immagini con segmenti annotati in 80 categorie di cose e 91 categorie di elementi.
  • ADE20K: un dataset di segmentazione della scena creato da MIT contenente oltre 20.000 immagini con oltre 150 classi semantiche.
  • Cityscapes: un dataset su larga scala incentrato sulle strade urbane. I suoi dati sono stati catturati in 50 città in vari giorni, periodi dell'anno e condizioni meteorologiche.
Casi d'uso per la segmentazione delle immagini

Casi d'uso per la segmentazione delle immagini

La segmentazione delle immagini è diventata uno strumento essenziale in una varietà di campi.

  • Imaging medico: la segmentazione delle immagini ha molte applicazioni tra radiografia, risonanza magnetica (MRI), ecografia e tomografia computerizzata (CT), facilitando attività come il rilevamento di tumore, la segmentazione del cervello, la diagnosi di malattie e la pianificazione chirurgica.
  • Veicoli autonomi: la segmentazione delle immagini consente alle auto a guida autonoma di evitare ostacoli come pedoni e altre auto, oltre a identificare corsie e segnali stradali. Viene utilizzata in modo analogo per informare la navigazione nella robotica.
  • Immagini satellitari: la segmentazione semantica e di istanza automatizza l'identificazione di diversi terreni e caratteristiche topografiche.
  • Città intelligenti: la segmentazione delle immagini consente attività come il monitoraggio e la sorveglianza del traffico in tempo reale.
  • Produzione: oltre a rendere possibili attività di robotica, la segmentazione delle immagini consente l'ordinamento dei prodotti e il rilevamento dei difetti.
  • Agricoltura: la segmentazione delle immagini aiuta gli agricoltori a stimare i rendimenti delle colture e a rilevare le erbacce da rimuovere.
Soluzioni correlate

Soluzioni correlate

IBM Maximo Visual Inspection

Libera la potenza della computer vision senza codice per un'ispezione visiva automatizzata con un set di strumenti intuitivo per l'etichettatura, la formazione e l'implementazione di modelli di visione artificiale dell'intelligenza artificiale.

Scopri IBM Maximo Visual Inspection

Risorse per la segmentazione delle immagini

Risorse per la segmentazione delle immagini

IBM research: Computer Vision

I moderni sistemi di computer vision hanno una precisione sovrumana quando si tratta di riconoscimento e analisi delle immagini, ma non capiscono veramente cosa vedono. Noi di IBM Research progettiamo sistemi di AI con la capacità di vedere il mondo come lo vediamo noi.

Introduzione alla computer vision e all'elaborazione delle immagini

Questo corso per principianti ti aiuta a comprendere la computer vision e le sue varie applicazioni in molti settori. Come parte del corso, utilizzerai Python, Pillow e OpenCV per l’elaborazione di base delle immagini ed eseguirai la classificazione delle immagini e il rilevamento degli oggetti.

Come iniziare con IBM Maximo Visual Inspection

Inizia a utilizzare IBM Maximo Visual Inspection per creare e addestrare modelli basati su AI per ispezionare gli asset e i prodotti e identificare i difetti che possono causare problemi di produzione e qualità.

Fasi successive

Libera la potenza della computer vision senza codice per un'ispezione visiva automatizzata con IBM Maximo Visual Inspection: un set di strumenti intuitivo per l'etichettatura, la formazione e l'implementazione di modelli di intelligenza artificiale.

Scopri IBM Maximo Visual Inspection Esplora la demo MVI