My IBM Accedi Iscriviti

Cos'è la segmentazione delle immagini?

Cos'è la segmentazione delle immagini?

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 le caratteristiche 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 set di dati 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.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI 


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

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 combinando la classificazione delle immagini con la localizzazione degli oggetti, produce regioni rettangolari denominate "bounding boxes" nelle quali sono localizzati gli oggetti: piuttosto che etichettare semplicemente un'immagine di un veicolo come "auto" o "camion", un modello di rilevamento degli oggetti può indicare dove nell'immagine si trovano le auto o i camion. 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. Gli output 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.

Mixture of Experts | Podcast

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Classi semantiche: "Oggetti" e "cose"

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.

Cose

Le cose sono 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.

Elementi

Gli elementi sono una classe semantica dalle forme amorfe e dalle dimensioni altamente variabili, come il "cielo", "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 persone può essere interpretato come più "persone", ciascuna una cosadalla forma distinta e numerabile, oppure come una singola "folla" dalla 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

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

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 a due stadi o one-shot al problema. 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

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 elemento, 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 si basa su una rete "dorsale", come una Feature Pyramid Network (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 "head di semantica" e una "head di istanza") e quindi combina l'output di ogni 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

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 riduce al minimo 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 una scala di grigi, quindi generano una mappa topografica in cui "l'elevazione" di ogni pixel è determinata dalla sua luminosità. Le regioni, i confini e gli oggetti possono essere dedotti in base a dove si formano "valli", "creste" e "bacini imbriferi".
  • Segmentazione delle 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 dei cluster: un metodo di apprendimento non supervisionato, nel quale 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.

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 di encoder trasmette i dati di input visivi attraverso livelli convoluzionali per estrarre caratteristiche rilevanti per la segmentazione o la classificazione e comprime (o sottocampiona) questi dati delle caratteristiche per rimuovere le informazioni non essenziali. Questi dati compressi vengono quindi inseriti nei livelli di decoder , 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

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 "stop", mentre i modelli di diagnostica per immagini richiedono l'ottimizzazione al fine di riconoscere classi specifiche di tessuti del corpo umano, come 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

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 watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda con l'esperienza leader di settore e il portfolio di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live