Home topics Segmentazione delle istanze Cos'è la segmentazione delle istanze?
Scopri IBM Maximo Visual Inspection
Una griglia di contenitori di spedizione

La segmentazione delle istanze è un'attività di computer vision basata sul deep learning che prevede i limiti esatti in pixel di ogni singola istanza dell'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 per 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 delle obiezioni 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à.

Contenuti correlati

Iscriviti alla newsletter IBM

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 risultati in una fase di post-elaborazione. Questo metodo è computazionalmente inefficiente 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 "spina dorsale" condivisa, spesso una rete piramidale di funzionalità (FPN), per l'estrazione di funzionalità: 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 articoli, il rilevamento di difetti e, analogamente alle auto a guida autonoma, consente ai robot di discernere e navigare intorno agli oggetti nel loro ambiente.

 

 

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) 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 codificatori 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. CNN elabora 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 un 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 nella formazione 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 qualsiasi categoria che è stato addestrato 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.

Guarda il video: "Cosa sono le reti neurali convoluzionali (CNN)?" su YouTube
CNN basato sulla regione (R-CNN)

R-CNN è stato sviluppato per risolvere complesse attività di rilevamento di più oggetti non realizzabili con le CNN standard. La sua evoluzione successiva, Faster R-CNN, è parte 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 la ricerca selettiva (il link risiede al di fuori di ibm.com) 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. Supporta gli algoritmi SVM (vector machine), quindi classifica gli oggetti e genera riquadri di delimitazione.

Fast R-CNN ha migliorato notevolmente la velocità di R-CNN alimentando prima l'intera immagine in un 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.

Leggi l'articolo: "R-CNN più veloce: verso il rilevamento di oggetti in tempo reale con reti di proposte di regioni"
Reti completamente convoluzionali

Gli 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 i CNN convenzionali, i 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, i 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.

Leggi l'articolo: "Reti completamente convoluzionali per la segmentazione semantica"
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), un 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.

Leggi il documento: "Mask R-CNN"
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 migliaia di "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 migliaia di "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.

Leggi il documento: "YOLACT++: Migliore segmentazione delle istanze in tempo reale"
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 quadrato 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.

Leggi il documento: "Swin Transformer: trasformatore di visione gerarchico che utilizza finestre spostate"
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 le distorsioni 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 punto di riferimento "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ù accurati, questa annotazione viene eseguita a mano, 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 codificatori 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 dataset di segmentazione della scena creato da 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".

Intersection over Union (IoU)
L'IoU misura la sovrapposizione pixel per 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 ampie. Anche se una maschera di segmentazione è troppo grande, otterrà un IoU perfetto di 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 sbagliate o nemmeno vicine, 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) (link esterno a ibm.com) modifica l'IoU per renderlo differenziabile.

Average Precision (AP)
L'AP viene calcolato 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 calcolato 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
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 di segmentazione delle istanze 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