Interactive Segmentation
La segmentazione interattiva trasforma clic, riquadri o tratti dell'utente in maschere di oggetti e le perfeziona con clic correttivi, da GrabCut a SAM di Meta.
La segmentazione interattiva produce una maschera di un oggetto precisa a livello di pixel a partire da pochi suggerimenti forniti da una persona, come clic, un riquadro di delimitazione o tratti disegnati a mano, e la perfeziona man mano che la persona aggiunge correzioni. Un clic positivo indica un punto appartenente all'oggetto, mentre uno negativo ne indica uno che non vi appartiene; dopo ogni passaggio, l'utente deve quindi indicare solo l'errore residuo più grande. L'approccio non dipende dalla classe: il modello segmenta qualsiasi elemento indicato dall'utente, compresi gli oggetti mai incontrati durante l'addestramento; per questo è uno strumento standard per l'annotazione dei dati, il fotoritocco e la delimitazione delle strutture nelle scansioni mediche. È una forma di apprendimento con intervento umano applicata alla segmentazione delle immagini.
Come funziona il ciclo di clic#
Il modello riceve l'immagine insieme a tutti i clic effettuati fino a quel momento e, in molti casi, anche la maschera precedente, quindi prevede una nuova maschera. Il ciclo si ripete finché la maschera non è sufficientemente accurata:
I benchmark simulano questo utente: ogni nuovo clic viene eseguito al centro della regione di errore più grande e il punteggio è il numero di clic necessari per raggiungere un’intersezione sull’unione dell’85% o del 90% rispetto alla ground truth, riportato come NoC@85 e NoC@90 su dataset come GrabCut, Berkeley e DAVIS.
Il pacchetto Ultralytics esegue i modelli SAM di Meta con prompt basati su punti, in cui l’etichetta 1 indica un clic positivo e 0 un clic negativo:
from ultralytics import SAM
# Meta's SAM 2.1 base model, run through the Ultralytics package
model = SAM("sam2.1_b.pt")
image = "https://ultralytics.com/images/bus.jpg"
# Round 1: a single positive click on the pedestrian's dark coat
results = model(image, points=[[[250, 620]]], labels=[[1]])
print(f"1 click: {int(results[0].masks.data.sum())} mask pixels")
# Round 2: add a positive click on the pedestrian's jeans and a negative click on the bus
results = model(image, points=[[[250, 620], [290, 760], [420, 560]]], labels=[[1, 1, 0]])
print(f"3 clicks: {int(results[0].masks.data.sum())} mask pixels")
results[0].save(filename="interactive_mask.jpg")Stampa 32.598 pixel di maschera dopo un clic e 33.120 dopo tre, quindi il singolo clic sul cappotto seleziona già quasi tutto il pedone e i clic aggiuntivi rifiniscono la maschera di circa 500 pixel. Ultralytics Platform esegue lo stesso ciclo nel proprio editor di annotazioni: in modalità Smart, un clic fuori dalla maschera SAM corrente aggiunge quella regione, mentre un clic al suo interno la sottrae; la maschera finale viene salvata come poligono, riquadro di delimitazione o riquadro orientato, in base al task del dataset.
Dai Graph Cut ai modelli basati su prompt#
I primi strumenti ottimizzavano direttamente i contorni. Intelligent Scissors (1995) agganciava il contorno tracciato ai bordi più netti, mentre GrabCut, pubblicato da Microsoft Research nel 2004 e incluso in OpenCV, segmenta l’oggetto all’interno di un riquadro disegnato dall’utente adattando iterativamente modelli di colore al primo piano e allo sfondo e risolvendo un graph cut. Dal 2016, i metodi di deep learning codificano i clic come canali di input aggiuntivi accanto all’immagine e apprendono la maschera con una rete neurale convoluzionale; i modelli successivi usano anche la maschera precedente come input per affinarla.
Il Segment Anything Model (SAM) di Meta, rilasciato nel 2023, ha suddiviso il lavoro in modo da rendere l’interazione quasi istantanea: un pesante vision transformer codifica l’immagine una sola volta, mentre un encoder di prompt leggero e un decoder di maschere trasformano ogni nuovo insieme di clic in una maschera in circa 50 millisecondi. SAM è stato addestrato anche con un proprio ciclo interattivo: durante la creazione del dataset SA-1B, gli annotatori cliccavano per segmentare gli oggetti usando versioni successive del modello e il tempo medio per maschera è sceso da 34 a 14 secondi. SAM 2 estende i clic ai video, propagando una maschera tra i fotogrammi, mentre SAM 3 aggiunge la segmentazione di concetti basata su prompt, individuando ogni istanza corrispondente a una breve frase di testo.
Segmentazione interattiva e automatica#
I modelli di segmentazione delle istanze segmentano automaticamente un insieme fisso di classi apprese, senza input umano; sono quindi adatti alle pipeline di produzione che devono elaborare ogni fotogramma. La segmentazione interattiva rinuncia a questa automazione in favore della flessibilità ed è il metodo con cui spesso vengono create le maschere di training per tali modelli, frequentemente all’interno di un ciclo di apprendimento attivo che invia agli annotatori le immagini di cui il modello è meno sicuro. Il prompting visivo è l’idea più ampia di guidare un modello visivo con punti, riquadri o immagini di esempio; la segmentazione interattiva ne è la forma iterativa che produce maschere.
Applicazioni nel mondo reale#
- Etichettatura dei dataset: Gli annotatori delineano gli oggetti con pochi clic invece di tracciare centinaia di vertici di un poligono; gli annotatori assistiti da SAM hanno impiegato 14 secondi per maschera, 6,5 volte meno del tempo necessario per l’annotazione manuale delle maschere di COCO.
- Imaging medico: I radiologi delineano tumori e organi nelle scansioni TC e MRI usando riquadri e clic correttivi; MedSAM ha adattato SAM alla medicina con il fine-tuning su 1.570.263 coppie di immagini e maschere mediche appartenenti a 10 modalità di imaging.










