My IBM Accedi Iscriviti

Cos'è la segmentazione delle istanze?

Autori

Dave Bergmann

Senior Writer, AI Models

IBM

Cole Stryker

Editorial Lead, AI Models

Gather

Cos'è la segmentazione delle istanze?

La segmentazione delle istanze è un'attività basata sul deep learning di computer vision che prevede i confini esatti, in termini di pixel, di ogni singola istanza di oggetto in un'immagine.

La segmentazione delle istanze, che è un sottoinsieme del campo più ampio della segmentazione delle immagini, fornisce un output più dettagliato e sofisticato rispetto agli algoritmi di rilevamento degli oggetti convenzionali. Altre attività di segmentazione delle immagini includono la segmentazione semantica, che classifica ogni pixel di un'immagine per classe semantica, la categoria di "oggetti" o "cose" che rappresenta, e la segmentazione panottica, che combina gli obiettivi della segmentazione delle istanze e della segmentazione semantica.

La segmentazione delle istanze ha un'ampia varietà di casi d'uso dell' elaborazione delle immagini in molti settori, dall'analisi delle immagini mediche al rilevamento di oggetti di interesse nelle immagini satellitari fino all'abilitazione della navigazione in auto a guida autonoma.

Segmentazione delle istanze e rilevamento degli oggetti

La differenza primaria tra le attività di segmentazione dell'istanza e il rilevamento convenzionale degli oggetti è che la segmentazione dell'istanza prevede confini a livello di pixel di ciascun oggetto, mentre il rilevamento degli oggetti prevede solo la posizione approssimativa di un oggetto.

I metodi convenzionali di rilevamento degli oggetti sono una combinazione evoluta di classificazione delle immagini e localizzazione degli oggetti. Addestrato con vari algoritmi di machine learning per riconoscere i modelli visivi di categorie rilevanti di oggetti (ad esempio, un modello di guida autonoma potrebbe essere addestrato a riconoscere cose come "auto" o "pedone"), un modello di rilevamento di oggetti analizza i dati visivi di un input immagine per annotare eventuali istanze di oggetti rilevanti e generare regioni rettangolari, chiamate "riquadri di delimitazione", in cui si trova ciascuna istanza.

Anche i sistemi di segmentazione delle istanze rilevano gli oggetti in un'immagine, ma in modo molto più dettagliato: anziché un riquadro di delimitazione che approssima la posizione di un'istanza di oggetto, gli algoritmi di segmentazione delle istanze generano una "maschera di segmentazione" pixel-by-pixel della forma e dell'area precise di ogni istanza.

Molte delle principali architetture di modelli di segmentazione delle istanze, come Mask R-CNN, eseguono il rilevamento degli oggetti convenzionali come un passo preliminare nel processo di generazione di maschere di segmentazione. Tali modelli "a due stadi" in genere forniscono una precisione all'avanguardia, anche se con un compromesso in termini di velocità.

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 istanze e segmentazione semantica

La segmentazione semantica è un compito meno complesso rispetto alla segmentazione delle istanze. A differenza della segmentazione delle istanze, la segmentazione semantica non riguarda il conteggio o la distinzione tra istanze diverse: l'unico scopo della segmentazione semantica è quello di annotare ogni pixel in un'immagine con etichetta di classe semantica.

I modelli di segmentazione semantica non fanno distinzione tra le oggetti (classi di entità numerabili con forme distinte, come "macchina" o "persona) e le cose (cioè classi di entità non numerabili con forme variabili, come "cielo" o "strada").

Se più istanze di oggetti della stessa classe sono strettamente adiacenti o sovrapposte l'una all'altra, un modello di segmentazione semantica le raggrupperà semplicemente all'interno di un segmento di immagine singolo. Consideriamo, ad esempio, come un modello di segmentazione semantica tratta le auto parcheggiate vicine tra loro su ciascun lato della strada in questa immagine.

Al contrario, i modelli di segmentazione delle istanze si concentrano esclusivamente sul rilevamento e sulla generazione di maschere di segmentazione per singoli oggetti. Un modello di segmentazione delle istanze deve essere in grado di delineare ogni diversa istanza dell'oggetto, anche per le istanze occluse della stessa classe di oggetti.

Segmentazione delle istanze e segmentazione panottica

La segmentazione panottica implica sia la classificazione semantica di ogni pixel in un'immagine sia la delineazione di ogni diversa istanza di oggetto.

I modelli di segmentazione panottica possono teoricamente eseguire la segmentazione delle istanze, ma lo fanno a un costo computazionale molto maggiore (poiché il loro output include informazioni aggiuntive non necessariamente rilevanti per le attività di segmentazione delle istanze).

I tentativi iniziali di segmentazione panottica hanno semplicemente eseguito separatamente sia la segmentazione delle istanze che la segmentazione semantica, quindi hanno combinato i loro output in una fase di post-elaborazione. Questo metodo è inefficiente da punto di vista computazionale e si sforza di risolvere discrepanze tra output di dati dal modello semantico e output di dati dal modello di istanza.

Approcci più recenti collegano una "testa" di segmentazione semantica e una "testa" di segmentazione di istanze a una "struttura" condivisa, spesso una rete piramidale di funzionalità (FPN), per l'estrazione di caratteristiche: l'isolamento di dati visivi pertinenti. Ciò aumenta l'efficienza ed elimina le discrepanze.

Casi d'uso della segmentazione delle istanze

La segmentazione delle istanze è essenziale per una serie di attività di computer vision.

  •  Imaging medico: la segmentazione delle istanze viene utilizzata per rilevare i confini specifici dei tessuti e delle patologie, come i tumori
  • Guida autonoma: la segmentazione delle istanze consente alle auto a guida autonoma di rilevare e classificare con precisione auto, oggetti, persone e caratteristiche stradali (come i semafori).
  • Immagini satellitari: la segmentazione delle istanze può aiutare a identificare e isolare oggetti di interesse, ad esempio distinguere più edifici lungo una strada per scopi GPS.
  • Robotica: la segmentazione delle istanze consente lo smistamento degli oggetti, il rilevamento di difetti e, analogamente alle auto a guida autonoma, consente ai robot di discernere e muoversi intorno agli oggetti nel loro ambiente.
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.

Come funziona la segmentazione delle istanze?

Il deep learning è diventato fondamentale per la segmentazione delle istanze: quasi tutti i moderni metodi di segmentazione delle immagini utilizzano reti neurali. Sebbene negli ultimi anni i modelli di trasformatori siano emersi come una valida alternativa, la maggior parte dei metodi di segmentazione delle immagini (compresi quelli utilizzati per la segmentazione delle istanze) sfruttano una qualche forma di reti neurali convoluzionali (CNN).

I modelli di segmentazione delle istanze basati su CNN rientrano in due categorie:

  • I modelli a due stadi , come Mask R-CNN, eseguono prima il rilevamento degli oggetti e poi generano maschere di segmentazione degli oggetti
  • I modelli one-shot (o monostadio), come YOLACT, eseguono entrambe le attività in parallelo.

Sia i modelli di segmentazione delle istanze basati su CNN che quelli basati su trasformatori utilizzano una struttura encoder-decoder, in cui una rete di decoder viene utilizzata per estrarre i dati rilevanti dall'immagine di input e una rete di decodificatori utilizza i dati delle funzioni estratti per ricostruire l'immagine con una mappa di segmentazione.

Per comprendere i modelli di segmentazione delle istanze, è utile comprenderne le parti costitutive.

Reti neurali convoluzionali (CNN)

Le CNN semplici possono eseguire la classificazione delle immagini e (per le immagini contenenti un singolo oggetto) la classificazione degli oggetti.

Affinché gli algoritmi matematici siano compatibili con un'immagine, devono rappresentare l'immagine in formato numerico. Le CNN elaborano un'immagine di input RGB come array tridimensionale (3D) di pixel, in cui le tre dimensioni del pixel rappresentano rispettivamente i valori R(ed), G(reen) e (B)lue.

Esistono tre tipi di strati in una CNN convenzionale:

  • layer convoluzionali utilizzano filtri bidimensionali, chiamati kernel, per estrarre funzioni rilevanti dall'immagine eseguendo convoluzioni. Dopo ogni convoluzione, il kernel si sposta su una regione adiacente, ripetendo questo processo fino a quando non ha attraversato l'intera immagine. L'output di questa estrazione di funzioni è una mappa di funzioni.

  • I layer di pooling comprimono i dati della mappa delle funzioni. Questo processo, chiamato anche riduzione di downsampling o dimensionalità, aumenta l'efficienza computazionale e riduce il rischio di overfitting nell'addestramento del modello.

  • I layer completamente connessi ricevono e raccolgono dati visivi da ogni nodo della rete neurale, quindi "completamente connessi", e prevedono se l'immagine corrisponde a qualche categoria che sono stati addestrati a riconoscere.

Mentre ulteriori layer convoluzionali possono migliorare la precisione, l'aggiunta di troppi layer porta a gradienti scomparsi, impedendo l'ottimizzazione del modello. L'architettura ResNet ha risolto questo problema, aprendo la strada a CNN con centinaia (o addirittura migliaia) di strati.

CNN basata sulla regione (R-CNN)

R-CNN è stata sviluppata per risolvere complesse attività di rilevamento di più oggetti non realizzabili con le CNN standard. La sua evoluzione successiva, Faster R-CNN, è un componente integrante di molti modelli di segmentazione delle istanze.

Per fare previsioni a livello di oggetto (piuttosto che a livello di immagine), R-CNN ha introdotto proposte di regione: R-CNN utilizza ricerca selettiva per proporre circa 2.000 caselle sovrapposte che possono contenere un oggetto, quindi inserisce ogni "proposta di oggetto" in una CNN per l'estrazione delle caratteristiche. Gli algoritmi delle macchine a vettori di supporto SVM classificano quindi gli oggetti e generano riquadri di delimitazione.

Fast R-CNN ha migliorato notevolmente la velocità di R-CNN alimentando prima l'intera immagine in una CNN per l'estrazione di funzioni, quindi utilizzando la mappa di funzioni risultante per identificare le regioni di interesse (RoI). Poco dopo, Faster R-CNN ha ulteriormente migliorato la velocità e la precisione introducendo una rete di proposte di regioni addestrabili (RPN) per sostituire l'algoritmo di ricerca selettiva più lento e non addestrabile.

Reti completamente convoluzionali (FCN)

Le FCN sostituiscono gli strati fissi e completamente connessi di una semplice CNN con ulteriori strati convoluzionali e di pooling, quindi "completamente convoluzionali". L'avvento delle FCN ha inaugurato l'era moderna della segmentazione delle immagini.

Come le CNN convenzionali, le FCN utilizzano una rete di encoder, come ResNet o VGG, per l'estrazione e il downsampling delle funzioni. Invece di trasferire i dati codificati a uno strato completamente connesso per classificare l'intera immagine, le FCN passano i dati codificati attraverso layer di una rete "decoder" che classifica e aggiorna i dati delle funzioni compressi per ricostruire l'immagine originale con maschere di segmentazione pixel-by-pixel.

Naturalmente, alcuni dati vengono persi durante il processo di downsampling. Le successive varianti FCN, come U-Net, hanno introdotto connessioni skip che bypassano selettivamente alcuni layer convoluzionali per preservare maggiori dettagli.

Mask R-CNN

L'architettura Mask R-CNN ha abbinato il rilevamento di oggetti di una R-CNN più veloce con la funzionalità di segmentazione di una FCN per ottenere una svolta nella segmentazione delle istanze.

Dopo che l'RPN ha generato i riquadri di delimitazione per gli oggetti proposti e il resto della rete R-CNN più veloce ha confermato quali proposte di regione contengono oggetti (ed eseguito regressioni per migliorare la precisione dei riquadri di delimitazione degli oggetti), una FCN crea una maschera di segmentazione degli oggetti contenuti all'interno di ciascun riquadro di delimitazione.

Questo processo è efficace anche quando gli oggetti sono occlusi, poiché la rete R-CNN più veloce è in grado di distinguere tra ogni istanza dell'oggetto per garantire che ciascuna sia segmentata individualmente.

Modelli one-shot (monostadio)

Alcune applicazioni di segmentazione delle istanze, come il rilevamento di articoli difettosi in una catena di montaggio di produzione, richiedono risultati in tempo reale. Sono stati sviluppati modelli monostadio per casi d'uso in cui la velocità è una priorità assoluta.

I modelli a due stadi come Mask R-CNN sono estremamente accurati, ma il loro approccio intrinsecamente sequenziale è difficile da accelerare. I modelli di segmentazione delle istanze one-shot come YOLACT (You Only Look At CoefficienTs) si basano invece su modelli di rilevamento di oggetti a fase singola come YOLO (You Only Look Once).

In YOLACT, un FPN crea mappe di funzioni ad alta risoluzione, che vengono inserite in due rami paralleli: un ramo FCN propone k "maschere prototipo" di potenziali istanze di oggetti; contemporaneamente, un ramo di strati completamente connessi produce molte "scatole di ancoraggio", simili alle proposte di regione, e predice anche k "coefficienti di maschera", uno per ogni maschera prototipo, che rappresentano la probabilità che un oggetto proposto si allinei con una maschera di segmentazione proposta. La soppressione non massima (NMS) viene utilizzata per filtrare le istanze proposte con i coefficienti di maschera più elevati.

Modelli trasformatori

Recenti innovazioni nella segmentazione delle istanze e panottica hanno esplorato i modelli di trasformazione, ispirati dal loro successo in campi come l'elaborazione del linguaggio naturale. Modelli come Vision Transformers (ViT) utilizzano l'auto-attenzione al posto della convoluzione, consentendo un'analisi olistica del contesto visivo di un'immagine.

La sfida principale da superare sono state le esigenze computazionali: la complessità computazionale dell'auto-attenzione aumenta in modo quadratico con la dimensione dell'immagine. I trasformatori Swin utilizzano finestre spostate (invece dei convenzionali passi scorrevoli) per creare strati di auto-attenzione non sovrapposti, facendo aumentare la complessità computazionale in modo lineare, non quadratico, con la dimensione dell'immagine. I modelli basati su Swin ora competono con l'accuratezza dei principali framework basati sulla CNN.

Modelli di segmentazione delle istanze di formazione

Gli algoritmi di machine learning, compresi gli algoritmi di deep learning utilizzati per la segmentazione delle istanze, devono essere addestrati. Sia i modelli basati su CNN che quelli basati su trasformatori sono addestrati con la retropropagazione: i modelli decodificano le immagini di addestramento annotate per apprendere i pesi e i bias appropriati per l'attività da svolgere.

L'annotazione dei dati di addestramento deve essere molto accurata per massimizzare il corretto machine learning e fungere da benchmark "di base" rispetto al quale i modelli addestrati possono essere valutati e ottimizzati. Poiché le capacità umane superano di gran lunga anche i modelli di computer vision più precisi, questa annotazione viene eseguita a mano, rendendolo un processo costoso e laborioso.

Per evitare i tempi e i costi di set di dati personalizzati, la maggior parte dei modelli utilizza set di dati di addestramento di grandi dimensioni e open source o mette a punto una rete di encoder preaddestrati per attività visive più specifiche. I set di dati di immagini open source comuni includono:

  • COCO (Common Objects in Context): un enorme set di dati contenente oltre 330.000 immagini con segmenti annotati in 80 categorie di oggetti e 91 categorie di cose

  • ADE20K: un set di dati di segmentazione della scena creato dal MIT contenente oltre 20.000 immagini con oltre 150 classi semantiche

  • Cityscapes: un set di dati su larga scala incentrato sulle strade urbane, con immagini di 50 città in vari orari del giorno, stagioni e condizioni meteorologiche.

Valutazione dei modelli di segmentazione delle istanze

Le misure più comunemente applicate per la segmentazione delle istanze e le prestazioni di rilevamento degli oggetti sono Intersection over Union (IoU) e Average Precision (AP). Queste metriche sono generalmente espresse in termini di prestazioni rispetto a un set di dati di riferimento, come "un AP di 54,4 sul set di dati COCO".

Intersezione sull'Unione (IoU)

L'IoU misura la sovrapposizione dei pixel tra una maschera di verità di base e la previsione di un modello, espressa come percentuale o numero intero compreso tra 0 e 1. Per le immagini con più istanze, viene utilizzato l'IoU medio (mIoU).

Sebbene l'IoU sia intuitivo, presenta importanti limitazioni:

  • Premia le previsioni troppo generiche. Anche se una maschera di segmentazione è troppo grande, otterrà un IoU perfetto pari a 1 se contiene la maschera di verità di base al suo interno.
  • Non può essere utilizzato come funzione di perdita. Per le previsioni errate senza sovrapposizioni, leggermente o totalmente sbagliate, IoU=0. Ciò significa che l'IoU non è differenziabile e quindi non può aiutare un algoritmo a ottimizzare un modello. Generalized Intersection over Union (o GIoU) modifica l'IoU per renderlo differenziabile.

Precisione media (AP)

L'AP viene calcolata come l'area sotto la curva di richiamo di precisione. Bilancia i compromessi tra due metriche, precisione e richiamo, calcolati utilizzando valori di risultato discreti come veri positivi (TP), veri negativi (TN), falsi positivi (FP) e falsi negativi (FN).

  • La precisione misura la frequenza con cui le previsioni positive, in questo caso i pixel di un'istanza segmentata, sono corrette: TP/(TP+FP). Ha lo svantaggio di premiare i falsi negativi.
  • Il richiamo misura la frequenza con cui vengono catturate le previsioni positive: TP/(TP+FN). Ha lo svantaggio di premiare i falsi positivi.

Per massimizzare la pertinenza, l'AP viene spesso calcolata all'interno di soglie di IoU specifiche. Ad esempio, "AP50" calcola l'AP solo per le stime con un IoU superiore al 50%. La Mean average precision (mAP) viene utilizzata a livello situazionale come valore AP medio su tutte le soglie calcolate.

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