Panoptic Segmentation
La segmentazione panottica assegna una classe a ogni pixel e un ID distinto a ogni oggetto numerabile, unificando la segmentazione semantica e quella delle istanze. Modelli, PQ e codice.
La segmentazione panottica è un’attività di visione artificiale che assegna a ogni pixel di un’immagine due valori: un’etichetta di classe e, per i pixel appartenenti a un oggetto conteggiabile, un ID di istanza. Combina la segmentazione semantica, che assegna una classe a ogni pixel ma unisce gli oggetti della stessa classe, con la segmentazione delle istanze, che separa i singoli oggetti ma lascia lo sfondo senza etichetta. Il risultato è una singola mappa senza sovrapposizioni dell’intera scena, in cui strada, cielo ed erba sono etichettati come regioni e ogni auto e persona costituisce il proprio segmento. Alexander Kirillov e i suoi colleghi di Facebook AI Research e dell’Università di Heidelberg hanno definito l’attività e la relativa metrica nell’articolo Panoptic Segmentation, pubblicato a CVPR 2019. Il nome scelto riflette la definizione: includere tutto ciò che è visibile in un’unica inquadratura.
Stuff e things#
La segmentazione panottica suddivide le classi in due tipi:
- Things: Oggetti conteggiabili con una forma definita, come persone, auto, animali e borse. Ognuno riceve il proprio ID di istanza, quindi due persone una accanto all’altra diventano due segmenti.
- Stuff: Regioni amorfe con texture o materiale simili, come strade, cielo, erba, acqua e pareti. Tutti i pixel di una classe stuff formano un unico segmento, perché non ha senso suddividere il cielo in istanze.
Il benchmark panottico COCO usa 133 classi: 80 things e 53 stuff; il benchmark di guida Cityscapes valuta 19 classi: 8 things e 11 stuff. I pixel ambigui o non appartenenti ad alcuna classe sono contrassegnati come void e ignorati durante la valutazione. Il formato panottico COCO memorizza ogni immagine come PNG in cui ogni segmento ha un ID univoco, insieme a un file JSON che associa ogni ID alla relativa categoria.
Come funzionano i modelli panottici#
I primi sistemi eseguivano un ramo semantico e un ramo per le istanze su una backbone condivisa e univano i risultati con regole fisse. Panoptic FPN, per esempio, risolve le sovrapposizioni tra istanze in base alla confidenza, dà priorità alle istanze rispetto alle regioni stuff e poi rimuove le regioni stuff al di sotto di una soglia di area:
I modelli bottom-up come Panoptic-DeepLab prevedono una mappa semantica insieme al centro di ciascun oggetto e a un offset da ogni pixel al relativo centro, quindi raggruppano i pixel things in base al centro verso cui puntano. I modelli universali usano un’unica architettura di classificazione delle maschere per la segmentazione semantica, delle istanze e panottica. Mask2Former prevede un insieme fisso di query, ognuna delle quali produce una maschera e una classe; così tratta allo stesso modo things e stuff e ha raggiunto un PQ di 57.8 sul benchmark panottico COCO nell’articolo presentato a CVPR 2022. La pipeline di Hugging Face Transformers qui sotto esegue un checkpoint Mask2Former addestrato sul benchmark panottico COCO:
import numpy as np
from transformers import pipeline
# Load Mask2Former trained on COCO panoptic: 80 thing and 53 stuff classes
segmenter = pipeline("image-segmentation", model="facebook/mask2former-swin-tiny-coco-panoptic")
# Each returned segment is one non-overlapping region with a class label and a binary mask
segments = segmenter("https://ultralytics.com/images/bus.jpg", subtask="panoptic")
for segment in segments:
share = np.array(segment["mask"]).mean() / 255
print(f"{segment['label']}: {share:.1%} of pixels")L’output elenca 10 segmenti. Le quattro persone, le due borse e l’autobus (il 30,7% dell’immagine) compaiono ciascuno come segmenti things separati, accanto a un segmento stuff ciascuno per pavement-merged (30,9%), building-other-merged (19,5%) e tree-merged (4,8%); il suffisso «-merged» indica le classi stuff di COCO ottenute combinando etichette più specifiche. Nessun pixel appartiene a due segmenti e lo 0,4% dei pixel non assegnato ad alcun segmento è void.
Qualità panottica (PQ)#
Le previsioni panottiche vengono valutate con la qualità panottica. Un segmento previsto corrisponde a un segmento di riferimento della stessa classe quando la loro intersezione sull’unione (IoU) supera 0.5; poiché i segmenti non si sovrappongono, ogni segmento può avere al massimo una corrispondenza. Le corrispondenze sono veri positivi (TP), le previsioni senza corrispondenza sono falsi positivi (FP) e i segmenti di riferimento senza corrispondenza sono falsi negativi (FN). PQ è la somma delle IoU di tutte le corrispondenze divisa per TP + ½FP + ½FN e si scompone in due parti:
- Qualità della segmentazione (SQ): L’IoU media dei segmenti corrispondenti, che misura quanto bene si adattano le maschere.
- Qualità del riconoscimento (RQ): TP / (TP + ½FP + ½FN), ovvero il punteggio F1 del rilevamento dei segmenti.
PQ viene calcolato per ogni classe e poi mediato; i benchmark lo riportano anche separatamente per things e stuff.
Segmentazione panottica, semantica e delle istanze#
- Segmentazione semantica: Risponde alla domanda «a quale classe appartiene questo pixel?» per ogni pixel. Tre auto adiacenti diventano un’unica regione auto.
- Segmentazione delle istanze: Risponde alla domanda «di quale oggetto fa parte questo pixel?» solo per gli oggetti rilevati. I pixel dello sfondo non ricevono etichette e le maschere di oggetti diversi possono sovrapporsi.
- Segmentazione panottica: Risponde a entrambe le domande per ogni pixel, assegnando esattamente un segmento a ciascun pixel.
Ultralytics YOLO26 offre le due componenti come attività separate: i modelli -seg restituiscono una maschera e una classe per ogni oggetto, mentre i modelli -sem di segmentazione semantica restituiscono una classe per ogni pixel e sono preaddestrati sulle 19 classi di Cityscapes o sulle 150 classi di ADE20K.
Applicazioni nel mondo reale#
- Veicoli autonomi: Un singolo output rappresenta come stuff la strada percorribile e i marciapiedi, e come things distinti ogni pedone e veicolo che un tracker può seguire.
- Robotica: Un robot mobile ha bisogno di una mappa coerente che mostri il pavimento su cui può spostarsi e ogni oggetto che può raccogliere o evitare.
- Analisi delle immagini mediche: L’istopatologia digitale segmenta le regioni di tessuto come stuff e conta i singoli nuclei e le singole cellule come things.
- 3D e video: La segmentazione panottica video mantiene coerenti gli ID delle istanze tra i fotogrammi, mentre la segmentazione panottica LiDAR, valutata sui benchmark SemanticKITTI e nuScenes, assegna a ogni punto 3D di una scansione una classe e un ID di istanza.










