SAM 2 (2024): segmentare qualsiasi cosa, anche nei video

Nel 2023 SAM aveva imparato a ritagliare qualsiasi oggetto in una foto con un clic. La versione 2, firmata Meta, estende quel gesto ai video: un solo tocco e l'oggetto resta selezionato mentre si muove, sparisce e riappare. Rileggiamo il paper.

Immaginate di guardare il video di un acquario e di voler ritagliare un singolo pesce arancione dal resto della scena. Con il mouse gli date un colpetto sopra, una volta sola. Da quel momento il contorno del pesce resta acceso: lo segue mentre nuota dietro uno scoglio, scompare per un secondo, riappare dall’altra parte, e il ritaglio è ancora lì, incollato addosso all’animale giusto e non a quello che gli somiglia due centimetri più in là. Questo gesto — un tocco che diventa una selezione persistente nel tempo — è ciò che nell’agosto 2024 un gruppo di ricercatori di Meta ha impacchettato in un modello chiamato SAM 2, presentato nel paper SAM 2: Segment Anything in Images and Videos.

Prima veniva SAM, e ritagliava le foto

Per capire cosa aggiunge la versione 2 serve ricordare la prima. Nel 2023 lo stesso laboratorio aveva pubblicato SAM, Segment Anything Model, con un’idea che sembra ovvia solo a cose fatte: un modello di segmentazione «promptabile». La segmentazione è il compito di dire, pixel per pixel, quali appartengono a un oggetto e quali no — il ritaglio pulito attorno a una persona, a una tazza, a un’ombra. Fino ad allora ogni modello veniva addestrato per una lista chiusa di categorie: sapeva ritagliare «auto» e «pedone» perché qualcuno gliele aveva insegnate, e su tutto il resto era cieco. SAM ribaltò l’impostazione: invece di indovinare la categoria, aspetta un prompt — un clic, un rettangolo, un punto — e ritaglia qualunque cosa ci sia sotto, anche un oggetto che non aveva mai visto. Funziona come un evidenziatore che, appena lo appoggi, si allarga da solo fino ai bordi esatti della figura. Restava però confinato alle immagini ferme.

Un video non è una pila di foto

La tentazione, per passare al video, è ovvia: applicare SAM a ogni fotogramma, uno alla volta. Non funziona, per una ragione semplice. SAM ritaglia benissimo il pesce nel fotogramma 1 e nel fotogramma 2, ma non sa che sono lo stesso pesce. Non ha memoria: ogni immagine è un mondo a sé. Se due pesci si incrociano, il ritaglio può saltare sull’altro senza accorgersene; se l’oggetto sparisce dietro uno scoglio e riemerge, il modello lo tratta come una comparsa nuova. Il video introduce una dimensione che la foto non ha, il tempo, e con essa problemi che la foto non pone: l’occlusione, il movimento, l’identità che deve restare la stessa mentre l’aspetto cambia.

La risposta di SAM 2 è dotare il modello di una memoria. L’architettura resta un transformer, la stessa famiglia dei modelli linguistici, ma accanto vi aggiunge tre pezzi che il paper chiama memory encoder, memory bank e memory attention. In pratica: ogni volta che elabora un fotogramma, il modello ne conserva un riassunto — com’era fatto l’oggetto, dove si trovava — in una specie di taccuino. Quando arriva il fotogramma successivo, prima di decidere cosa ritagliare consulta il taccuino. È la differenza tra un usciere che a ogni persona chiede di nuovo il nome, e uno che ha in mente la faccia di chi sta aspettando e la riconosce da lontano, anche di spalle. Su un’immagine sola quel taccuino resta vuoto e SAM 2 si comporta come SAM; su un video si riempie fotogramma dopo fotogramma. Il ritaglio che così persiste nel tempo, nel gergo del paper, si chiama masklet.

Un prompt, esteso dal fermo-immagine al video IMMAGINE prompt: 1 clic la maschera ritaglia l’oggetto indicato stesso gesto VIDEO — la maschera segue nel tempo t t + 1 t + 2 memoria (memory bank) ricorda com’è fatto l’oggetto tra un fotogramma e l’altro nessun nuovo clic: dopo il primo prompt, la maschera si propaga da sola lungo la clip

A sinistra il modo di lavorare ereditato da SAM: un clic sull’immagine e la maschera ritaglia l’oggetto. A destra la novità di SAM 2: lo stesso ritaglio viene propagato lungo i fotogrammi del video grazie al banco di memoria, che tiene traccia dell’oggetto anche quando si sposta o scompare. Un solo prompt iniziale, nessuna nuova indicazione a ogni fotogramma.

Il modello che si costruisce i propri dati

Un modello così ha bisogno di esempi: video in cui gli oggetti siano già ritagliati fotogramma per fotogramma. Annotarli a mano è lentissimo, perché bisogna ridisegnare il contorno a ogni singolo fotogramma. Qui il paper riprende un’idea già presente in SAM e la porta al video: il data engine, un circolo in cui il modello aiuta a creare i dati che serviranno a migliorarlo. Gli annotatori umani non partono da zero: lasciano che sia una versione preliminare di SAM 2 a proporre il ritaglio, poi correggono solo dove sbaglia. Ogni correzione diventa un nuovo esempio, il modello riaddestrato sbaglia meno, e il giro successivo è più rapido. Meta riporta che annotare con SAM 2 nel circuito è 8,4 volte più veloce che ritagliare a mano fotogramma per fotogramma.

Il prodotto di questo mulino è SA-V, il dataset che accompagna il modello: più di 600.000 maschere temporali su circa 51.000 video. Il paper lo descrive come il più grande dataset di segmentazione video mai raccolto — nell’ordine di 4,5 volte più video del più ampio disponibile prima, e con decine di volte più annotazioni. È il vero motore dietro le prestazioni di SAM 2: non un trucco di architettura, ma la scala e la varietà degli esempi su cui ha imparato.

La svolta non è un’idea nuova di segmentazione, ma una memoria che tiene insieme l’oggetto mentre il tempo scorre.

I numeri, letti con onestà

Le cifre che il paper mette in prima fila sono tre. Sulle immagini, SAM 2 è più accurato del SAM originale ed è sei volte più veloce: lo stesso ritaglio, in un sesto del tempo. Sui video, raggiunge una precisione migliore dei metodi precedenti usando circa un terzo delle interazioni umane, cioè servono meno clic di correzione per ottenere un ritaglio pulito lungo tutta la clip. E gira in tempo reale, intorno ai 44 fotogrammi al secondo, abbastanza da seguire un video mentre scorre senza scatti percepibili.

Vale la pena leggere questi numeri per quello che sono. «Sei volte più veloce» non vuol dire sei volte più intelligente: vuol dire che lo stesso compito costa meno, il che conta enormemente quando devi ritagliare migliaia di ore di video, ma è un guadagno di efficienza, non un salto di comprensione. E «segmentare qualsiasi cosa» resta un titolo con un asterisco: SAM 2 ritaglia l’oggetto che gli indichi, non sa cosa sia — non vi dirà mai che quel ritaglio è un pesce pagliaccio. La semantica, il nome delle cose, resta un altro problema, da risolvere con altri modelli.

Perché riguarda anche voi

Il gesto che SAM 2 rende banale — indicare una cosa e averla ritagliata, ovunque vada — è l’ingranaggio invisibile sotto molte applicazioni che non assomigliano affatto a un acquario. Il montaggio video, dove isolare un soggetto per cambiargli lo sfondo era lavoro da professionisti. L’imaging medico, dove seguire un organo o una lesione lungo una sequenza di scansioni è ripetitivo e prezioso. La robotica e i veicoli, che devono tenere lo stesso oggetto «in vista» mentre la scena si muove. E, a monte di tutto, la creazione di dati: molti sistemi di visione artificiale si addestrano su immagini ritagliate a mano, e un modello che dimezza quel lavoro sposta il collo di bottiglia di un intero settore. Ma la lezione più generale è di metodo, la stessa di SAM prima e dei modelli linguistici in parallelo: invece di costruire cento modelli specializzati, se ne costruisce uno che risponde a un prompt e lo si lascia generalizzare a compiti mai visti. Un tocco al posto di una tassonomia.

Il paper

Nikhila Ravi, Valentin Gabeur, Yuan-Ting Hu, Ronghang Hu, Chaitanya Ryali e altri (Meta FAIR), SAM 2: Segment Anything in Images and Videos, 2024. Disponibile su arXiv: arxiv.org/abs/2408.00714. Modello, codice e dataset SA-V sono rilasciati pubblicamente.

I commenti sono riservati agli iscritti.

Accedi per commentare