SAM 3: Segmenta tutto con i concetti

Ora disponibile in Ultralytics

SAM 3 è completamente integrato nel pacchetto Ultralytics a partire dalla versione 8.3.237 (PR #22897). Installa o aggiorna con pip install -U ultralytics per accedere a tutte le funzionalità di SAM 3, inclusa la segmentazione di concetti basata su testo, esempi di immagini come prompt e il tracciamento video.

Panoramica della segmentazione dei concetti basata su prompt di SAM 3

SAM 3 (Segment Anything Model 3) è il modello di base rilasciato da Meta per la Promptable Concept Segmentation (PCS). Basandosi su SAM 2, SAM 3 introduce una capacità fondamentalmente nuova: rilevare, segmentare e tracciare tutte le istanze di un concetto visivo specificato tramite prompt testuali, immagini esemplificative o entrambi. A differenza delle versioni precedenti di SAM che segmentano singoli oggetti per prompt, SAM 3 può trovare e segmentare ogni occorrenza di un concetto che appare ovunque in immagini o video, allineandosi agli obiettivi open-vocabulary nella moderna instance segmentation.



Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos

SAM 3 è ora completamente integrato nel pacchetto ultralytics, fornendo supporto nativo per la segmentazione di concetti con prompt testuali, prompt basati su esempi di immagini e funzionalità di tracciamento video.

Panoramica

SAM 3 ottiene un guadagno di prestazioni di 2× rispetto ai sistemi esistenti nella Promptable Concept Segmentation, mantenendo e migliorando al contempo le capacità di SAM 2 per la visual segmentation interattiva. Il modello eccelle nella segmentazione open-vocabulary, consentendo agli utenti di specificare concetti usando semplici sintagmi nominali (ad es. "scuolabus giallo", "gatto striato") o fornendo immagini di esempio dell'oggetto target. Queste funzionalità completano pipeline pronte per la produzione che si basano su workflow ottimizzati di predict e track.

Esempi di segmentazione tramite prompt testuale di SAM 3

Cos'è la Promptable Concept Segmentation (PCS)?

Il compito PCS prende come input un concept prompt e restituisce maschere di segmentazione con identità univoche per tutte le istanze di oggetti corrispondenti. I concept prompt possono essere:

  • Testo: Semplici sintagmi nominali come "mela rossa" o "persona con cappello", simili al zero-shot learning
  • Immagini esemplificative: Bounding box attorno a oggetti di esempio (positivi o negativi) per una rapida generalizzazione
  • Combinati: Sia testo che immagini esemplificative insieme per un controllo preciso

Questo differisce dai tradizionali prompt visivi (punti, box, maschere) che segmentano solo una singola istanza di oggetto specifica, come reso popolare dalla famiglia SAM originale.

Principali metriche di performance

MetricaRisultato di SAM 3
LVIS Zero-Shot Mask AP47.0 (contro il precedente miglior risultato di 38.5, +22% di miglioramento)
Benchmark SA-Co2× migliore dei sistemi esistenti
Velocità di inferenza (H200 GPU)30 ms per immagine con oltre 100 oggetti rilevati
Performance videoQuasi tempo reale per ~5 oggetti simultanei
Benchmark MOSEv2 VOS60.1 J&F (+25.5% rispetto a SAM 2.1, +17% rispetto al precedente SOTA)
Raffinamento interattivoMiglioramento di +18.6 CGF1 dopo 3 prompt esemplificativi
Gap di performance umanaRaggiunge l'88% del limite inferiore stimato su SA-Co/Gold

Per il contesto sulle metriche dei modelli e i compromessi in produzione, vedi approfondimenti sulla valutazione dei modelli e metriche di performance YOLO.

Architettura

SAM 3 consiste in un detector e un tracker che condividono una dorsale di visione Perception Encoder (PE). Questo design disaccoppiato evita conflitti tra compiti consentendo sia il rilevamento a livello di immagine che il tracciamento a livello video, con un'interfaccia compatibile con l'utilizzo di Ultralytics tramite Python e CLI.

Componenti principali

  • Detector: Architettura basata su DETR per il rilevamento di concetti a livello di immagine

    • Encoder di testo per prompt basati su sintagmi nominali
    • Encoder esemplificativo per prompt basati su immagini
    • Encoder di fusione per condizionare le caratteristiche dell'immagine ai prompt
    • Nuovo presence head che disaccoppia il riconoscimento ("cosa") dalla localizzazione ("dove")
    • Mask head per generare maschere di istanza di segmentazione
  • Tracker: Segmentazione video basata sulla memoria ereditata da SAM 2

    • Encoder di prompt, decoder di maschere, encoder di memoria
    • Memory bank per memorizzare l'aspetto dell'oggetto tra i frame
    • Disambiguazione temporale aiutata da tecniche come un filtro di Kalman in contesti multi-oggetto
  • Presence Token: Un token globale appreso che prevede se il concetto target è presente nell'immagine/frame, migliorando il rilevamento separando il riconoscimento dalla localizzazione.

Diagramma dell'architettura del modello SAM 3

Innovazioni chiave

  1. Riconoscimento e localizzazione disaccoppiati: Il presence head prevede la presenza del concetto a livello globale, mentre le query di proposta si concentrano solo sulla localizzazione, evitando obiettivi in conflitto.
  2. Prompt concettuali e visivi unificati: Supporta sia PCS (concept prompts) che PVS (visual prompts come i click/box di SAM 2) in un unico modello.
  3. Raffinamento interattivo tramite esempi: Gli utenti possono aggiungere immagini di esempio positive o negative per affinare iterativamente i risultati, con il modello che generalizza verso oggetti simili invece di limitarsi a correggere le singole istanze.
  4. Disambiguazione temporale: Utilizza punteggi di rilevamento masklet e ri-prompt periodici per gestire occlusioni, scene affollate e fallimenti nel tracciamento video, allineandosi alle migliori pratiche di segmentazione e tracciamento delle istanze.

Dataset SA-Co

SAM 3 è addestrato su Segment Anything with Concepts (SA-Co), il dataset di segmentazione più grande e diversificato di Meta fino ad oggi, che si estende oltre i benchmark comuni come COCO e LVIS.

Dati di addestramento

Componente del datasetDescrizioneScala
SA-Co/HQDati immagine di alta qualità annotati dall'uomo da un motore dati a 4 fasi5.2M di immagini, 4M di sintagmi nominali univoci
SA-Co/SYNDataset sintetico etichettato dall'IA senza coinvolgimento umano38M di sintagmi nominali, 1.4B di maschere
SA-Co/EXT15 dataset esterni arricchiti con negativi difficiliVariabile in base alla fonte
SA-Co/VIDEOAnnotazioni video con tracciamento temporale52.5K di video, 24.8K di sintagmi nominali univoci

Dati di benchmark

Il benchmark di valutazione SA-Co contiene 214K frasi univoche in 126K immagini e video, fornendo oltre 50× più concetti rispetto ai benchmark esistenti. Include:

  • SA-Co/Gold: 7 domini, tripla annotazione per misurare i limiti delle performance umane
  • SA-Co/Silver: 10 domini, singola annotazione umana
  • SA-Co/Bronze e SA-Co/Bio: 9 dataset esistenti adattati per la segmentazione di concetti
  • SA-Co/VEval: Benchmark video con 3 domini (SA-V, YT-Temporal-1B, SmartGlasses)

Innovazioni del motore dati

Il motore dati scalabile con uomo e modello nel loop di SAM 3 raggiunge una velocità di annotazione 2× attraverso:

  1. Annotatori IA: Modelli basati su Llama propongono sintagmi nominali diversificati inclusi negativi difficili
  2. Verificatori IA: Multimodal LLMs ottimizzati verificano la qualità e l'esaustività della maschera con prestazioni quasi umane
  3. Active Mining: Concentra lo sforzo umano sui casi critici di fallimento dove l'IA ha difficoltà
  4. Ontology-Driven: Sfrutta una grande ontologia basata su Wikidata per la copertura dei concetti

Installazione

SAM 3 è disponibile in Ultralytics versione 8.3.237 e successive. Installa o aggiorna con:

pip install -U ultralytics
Pesi del modello SAM 3 richiesti

A differenza di altri modelli Ultralytics, i pesi di SAM 3 (sam3.pt) non vengono scaricati automaticamente. Devi prima richiedere l'accesso ai pesi del modello sulla pagina del modello SAM 3 su Hugging Face e poi, una volta approvato, scaricare sam3.pt da quella pagina. Posiziona il file sam3.pt scaricato nella tua directory di lavoro o specifica il percorso completo quando carichi il modello.

`TypeError: 'SimpleTokenizer' object is not callable`

Se ricevi l'errore sopra durante la previsione, significa che hai installato il pacchetto clip non corretto. Installa il pacchetto clip corretto eseguendo quanto segue:

pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.git

Come usare SAM 3: Versatilità nella segmentazione di concetti

SAM 3 supporta sia i compiti di Promptable Concept Segmentation (PCS) che di Promptable Visual Segmentation (PVS) tramite diverse interfacce di predizione:

Compiti e modelli supportati

Tipo di compitoTipi di promptOutput
Concept Segmentation (PCS)Testo (sintagmi nominali), immagini esemplificativeTutte le istanze che corrispondono al concetto
Visual Segmentation (PVS)Punti, box, maschereSingola istanza di oggetto (stile SAM 2)
Raffinamento interattivoAggiungi/rimuovi esempi o click in modo iterativoSegmentazione raffinata con maggiore precisione

Esempi di segmentazione dei concetti

Segmenta con prompt testuali

Segmentazione dei concetti basata sul testo

Trova e segmenta tutte le istanze di un concetto usando una descrizione testuale. I prompt testuali richiedono l'interfaccia SAM3SemanticPredictor.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=True,
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")

# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])

# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Query with a single concept
results = predictor(text=["a person"])

Segmenta con immagini di esempio

Segmentazione basata su immagini di esempio

Usa le bounding box come prompt visivi per trovare tutte le istanze simili. Questo richiede anche SAM3SemanticPredictor per l'abbinamento basato sui concetti.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True, save=True)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image
predictor.set_image("path/to/image.jpg")

# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Multiple bounding boxes for different concepts
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

Inferenza basata sulle caratteristiche per l'efficienza

Riutilizzo delle caratteristiche dell'immagine per query multiple

Estrai le caratteristiche dell'immagine una volta e riutilizzale per più query di segmentazione per migliorare l'efficienza.

import cv2

from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors

# Initialize predictors
overrides = dict(conf=0.50, task="segment", mode="predict", model="sam3.pt", verbose=False)
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Setup second predictor and reuse features
predictor2.setup_model()

# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualize results
if masks is not None:
    masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
    im = cv2.imread(source)
    annotator = Annotator(im, pil=False)
    annotator.masks(masks, [colors(x, True) for x in range(len(masks))])

    cv2.imshow("result", annotator.result())
    cv2.waitKey(0)

Segmentazione dei concetti nei video

Traccia i concetti nei video con bounding box

Tracciamento video con prompt visivi

Rileva e traccia le istanze degli oggetti nei fotogrammi video usando prompt con bounding box.

from ultralytics.models.sam import SAM3VideoPredictor

# Create video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True)
predictor = SAM3VideoPredictor(overrides=overrides)

# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Process and display results
for r in results:
    r.show()  # Display frame with segmentation masks

Traccia i concetti con prompt testuali

Tracciamento video con query semantiche

Traccia tutte le istanze dei concetti specificati dal testo nei fotogrammi video.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialize semantic video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=640, model="sam3.pt", half=True, save=True)
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Process results
for r in results:
    r.show()  # Display frame with tracked objects

# Alternative: Track with bounding box prompts
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Positive labels
    stream=True,
)

Prompt visivi (compatibilità con SAM 2)

SAM 3 mantiene la piena compatibilità con i prompt visivi di SAM 2 per la segmentazione di singoli oggetti:

Prompt visivi in stile SAM 2

L'interfaccia base SAM si comporta esattamente come SAM 2, segmentando solo l'area specifica indicata dai prompt visivi (punti, box o maschere).

from ultralytics import SAM

model = SAM("sam3.pt")

# Single point prompt - segments object at specific location
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Multiple points - segments single object with multiple point hints
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Box prompt - segments object within bounding box
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
Prompt visivi vs segmentazione dei concetti

Usare SAM("sam3.pt") con prompt visivi (punti/box/maschere) segmenterà solo l'oggetto specifico in quella posizione, esattamente come SAM 2. Per segmentare tutte le istanze di un concetto, usa SAM3SemanticPredictor con prompt testuali o di esempio come mostrato sopra.

Benchmark delle prestazioni

Segmentazione delle immagini

SAM 3 ottiene risultati allo stato dell'arte su molteplici benchmark, inclusi dataset del mondo reale come LVIS e COCO per la segmentazione:

BenchmarkMetricaSAM 3Precedente miglioreMiglioramento
LVIS (zero-shot)Mask AP47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zero-shot)Box AP53.552.2 (T-Rex2)+2.5%
ADE-847 (seg semantica)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (seg semantica)mIoU65.144.2 (APE-D)+47.3%

Esplora le opzioni di dataset per una sperimentazione rapida in Ultralytics datasets.

Prestazioni della segmentazione video

SAM 3 mostra miglioramenti significativi rispetto a SAM 2 e ai precedenti standard allo stato dell'arte su benchmark video come DAVIS 2017 e YouTube-VOS:

BenchmarkMetricaSAM 3SAM 2.1 LMiglioramento
MOSEv2J&F60.147.9+25.5%
DAVIS 2017J&F92.090.7+1.4%
LVOSv2J&F88.279.6+10.8%
SA-VJ&F84.678.4+7.9%
YTVOS19J&F89.689.3+0.3%

Adattamento Few-Shot

SAM 3 eccelle nell'adattarsi a nuovi domini con pochi esempi, utile per i flussi di lavoro di data-centric AI:

Benchmark0-shot AP10-shot APPrecedente migliore (10-shot)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

Efficacia del perfezionamento interattivo

Il prompt basato sui concetti con esempi di SAM 3 converge molto più velocemente rispetto ai prompt visivi:

Prompt aggiuntiPunteggio CGF1Guadagno vs solo testoGuadagno vs base PVS
Solo testo46.4baselinebaseline
+1 esemplare57.6+11.2+6.7
+2 esemplari62.2+15.8+9.7
+3 esemplari65.0+18.6+11.2
+4 esemplari65.7+19.3+11.5 (plateau)

Accuratezza nel conteggio degli oggetti

SAM 3 fornisce un conteggio accurato segmentando tutte le istanze, un requisito comune nel conteggio degli oggetti:

BenchmarkAccuratezzaMAEvs Miglior MLLM
CountBench95.6%0.1192.4% (Gemini 2.5)
PixMo-Count87.3%0.2288.8% (Molmo-72B)

Confronto tra SAM 3, SAM 2 e YOLO

Qui confrontiamo le capacità di SAM 3 con i modelli SAM 2 e YOLO26:

CapacitàSAM 3SAM 2YOLO26n-seg
Segmentazione di concetti✅ Tutte le istanze da testo/esemplari❌ Non supportato❌ Non supportato
Segmentazione visuale✅ Singola istanza (compatibile con SAM 2)✅ Singola istanza✅ Tutte le istanze
Capacità Zero-shot✅ Vocabolario aperto✅ Prompt geometrici❌ Insieme chiuso
Raffinamento interattivo✅ Esemplari + clic✅ Solo clic❌ Non supportato
Video Tracking✅ Multi-oggetto con identità✅ Multi-oggetto✅ Multi-oggetto
LVIS Mask AP (zero-shot)47.0N/DN/D
MOSEv2 J&F60.147.9N/D
Velocità (GPU, ms/im)29218578.4
Dimensione del modello3.45 GB162 MB (base)6.4 MB

Velocità testata su NVIDIA RTX PRO 6000 con torch==2.9.1 e ultralytics==8.4.19.

Punti chiave:

  • SAM 3: Migliore per la segmentazione di concetti a vocabolario aperto, trovando tutte le istanze di un concetto con prompt testuali o esemplari.
  • SAM 2: Migliore per la segmentazione interattiva di singoli oggetti in immagini e video con prompt geometrici.
  • YOLO26: Migliore per la segmentazione in tempo reale e ad alta velocità con inferenza end-to-end senza NMS, esportabile in molti formati per il deployment su GPU, CPU e dispositivi edge.

Confronto SAM vs YOLO

Confronto tra SAM 3, SAM 2, SAM, MobileSAM e FastSAM rispetto ai modelli di segmentazione Ultralytics YOLO (YOLOv8, YOLO11, YOLO26) per dimensione, parametri e velocità di inferenza su GPU:

ModelloDimensioni
(MB)
Parametri
(M)
Velocità (GPU)
(ms/im)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
FastSAM-s con backbone YOLOv823.711.855.9
Ultralytics YOLOv8n-seg6.7 (515 volte più piccolo)3.4 (139.1 volte in meno)17.4 (167 volte più veloce)
Ultralytics YOLO11n-seg5.9 (585 volte più piccolo)2.9 (163.1 volte in meno)12.6 (231 volte più veloce)
Ultralytics YOLO26n-seg6.4 (539 volte più piccolo)2.7 (175.2 volte in meno)8.4 (347 volte più veloce)

Questo confronto dimostra le sostanziali differenze nelle dimensioni e nelle velocità dei modelli tra le varianti SAM e i modelli di segmentazione YOLO. Mentre SAM offre funzionalità di segmentazione automatica uniche, i modelli YOLO, in particolare YOLOv8n-seg, YOLO11n-seg e YOLO26n-seg, sono significativamente più piccoli, veloci e computazionalmente più efficienti.

Test eseguiti su una NVIDIA RTX PRO 6000 con 96 GB di VRAM utilizzando torch==2.9.1 e ultralytics==8.4.19. Per riprodurre questo test:

Esempio
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM3, SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt", "sam3.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS)

Metriche di valutazione

SAM 3 introduce nuove metriche progettate per il compito PCS, che completano misure familiari come punteggio F1, precisione e recall.

Classification-Gated F1 (CGF1)

La metrica primaria che combina localizzazione e classificazione:

CGF1 = 100 × pmF1 × IL_MCC

Dove:

  • pmF1 (Positive Macro F1): Misura la qualità della localizzazione su esempi positivi
  • IL_MCC (Image-Level Matthews Correlation Coefficient): Misura l'accuratezza della classificazione binaria ("il concetto è presente?")

Perché queste metriche?

Le tradizionali metriche AP non tengono conto della calibrazione, rendendo i modelli difficili da usare nella pratica. Valutando solo le previsioni con confidenza superiore a 0.5, le metriche di SAM 3 impongono una buona calibrazione e imitano i pattern di utilizzo nel mondo reale nei cicli interattivi di predict e track.

Ablazioni chiave e approfondimenti

Impatto della Presence Head

Il presence head disaccoppia il riconoscimento dalla localizzazione, fornendo miglioramenti significativi:

ConfigurazioneCGF1IL_MCCpmF1
Senza presence57.60.7774.7
Con presence63.30.8277.1

Il presence head fornisce un incremento di +5.7 CGF1 (+9.9%), migliorando principalmente la capacità di riconoscimento (IL_MCC +6.5%).

Effetto degli Hard Negative

Hard Negative/ImmagineCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Gli hard negative sono cruciali per il riconoscimento a vocabolario aperto, migliorando IL_MCC del 54.5% (0.44 → 0.68).

Scaling dei dati di addestramento

Fonti datiCGF1IL_MCCpmF1
Solo esterni30.90.4666.3
Esterni + Sintetici39.70.5770.6
Esterni + HQ51.80.7173.2
Tutti e tre54.30.7473.5

Le annotazioni umane di alta qualità offrono grandi guadagni rispetto ai soli dati sintetici o esterni. Per informazioni sulle pratiche di qualità dei dati, consulta data collection and annotation.

Applicazioni

La capacità di segmentazione dei concetti di SAM 3 abilita nuovi casi d'uso:

  • Moderazione dei contenuti: Trova tutte le istanze di tipi di contenuto specifici nelle librerie multimediali
  • E-commerce: Segmenta tutti i prodotti di un certo tipo nelle immagini di catalogo, supportando la auto-annotation
  • Imaging medico: Identifica tutte le occorrenze di specifici tipi di tessuto o anomalie
  • Sistemi autonomi: Traccia tutte le istanze di segnali stradali, pedoni o veicoli per categoria
  • Analisi video: Conta e traccia tutte le persone che indossano abbigliamento specifico o compiono azioni
  • Annotazione del dataset: Annota rapidamente tutte le istanze di categorie di oggetti rare
  • Ricerca scientifica: Quantifica e analizza tutti gli esemplari che corrispondono a criteri specifici

SAM 3 Agent: Ragionamento linguistico esteso

SAM 3 può essere combinato con Multimodal Large Language Models (MLLM) per gestire query complesse che richiedono ragionamento, nello spirito dei sistemi a vocabolario aperto come OWLv2 e T-Rex.

Prestazioni in attività di ragionamento

BenchmarkMetricaSAM 3 Agent (Gemini 2.5 Pro)Precedente migliore
ReasonSeg (validazione)gIoU76.065.0 (SoTA)
ReasonSeg (test)gIoU73.861.3 (SoTA)
OmniLabel (validazione)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

Esempi di query complesse

SAM 3 Agent può gestire query che richiedono ragionamento:

  • "Persone sedute ma che non tengono in mano una scatola regalo"
  • "Il cane più vicino alla fotocamera che non indossa un collare"
  • "Oggetti rossi più grandi della mano della persona"

Il MLLM propone query con semplici sintagmi nominali a SAM 3, analizza le maschere restituite e itera fino a quando non è soddisfatto.

Limitazioni

Sebbene SAM 3 rappresenti un progresso importante, presenta alcune limitazioni:

  • Complessità delle frasi: Ideale per semplici sintagmi nominali; espressioni di riferimento lunghe o ragionamenti complessi potrebbero richiedere l'integrazione con MLLM
  • Gestione delle ambiguità: Alcuni concetti rimangono intrinsecamente ambigui (es. "finestra piccola", "stanza accogliente")
  • Requisiti computazionali: Più grande e lento rispetto a modelli di rilevamento specializzati come YOLO
  • Portata del vocabolario: Focalizzato su concetti visivi atomici; il ragionamento compositivo è limitato senza l'assistenza di un MLLM
  • Concetti rari: Le prestazioni potrebbero degradare su concetti estremamente rari o granulari non ben rappresentati nei dati di addestramento

Citazione

Citazione
@inproceedings{sam3_2025,
  title     = {SAM 3: Segment Anything with Concepts},
  author    = {Anonymous authors},
  booktitle = {Submitted to ICLR 2026},
  year      = {2025},
  url       = {https://openreview.net/forum?id=r35clVtGzw},
  note      = {Paper ID: 4183, under double-blind review}
}

FAQ

Quando è stato rilasciato SAM 3?

SAM 3 è stato rilasciato da Meta il 20 novembre 2025 ed è completamente integrato in Ultralytics a partire dalla versione 8.3.237 (PR #22897). Il supporto completo è disponibile per predict mode e track mode.

SAM 3 è integrato in Ultralytics?

Sì! SAM 3 è completamente integrato nel pacchetto Python di Ultralytics, inclusa la segmentazione dei concetti, i prompt visivi in stile SAM 2 e il tracciamento video multi-oggetto. SAM 3 alimenta anche la funzionalità di smart annotation sulla Ultralytics Platform, dove puoi annotare le immagini con pochi clic.

Cos'è la Promptable Concept Segmentation (PCS)?

PCS è una nuova attività introdotta in SAM 3 che segmenta tutte le istanze di un concetto visivo in un'immagine o in un video. A differenza della segmentazione tradizionale che mira a una specifica istanza di oggetto, PCS trova ogni occorrenza di una categoria. Ad esempio:

  • Prompt testuale: "scuolabus giallo" → segmenta tutti gli scuolabus gialli nella scena
  • Esemplare immagine: Riquadro attorno a un cane → segmenta tutti i cani nell'immagine
  • Combinato: "gatto a strisce" + riquadro esemplificativo → segmenta tutti i gatti a strisce che corrispondono all'esempio

Vedi il background correlato su object detection e instance segmentation.

In cosa differisce SAM 3 da SAM 2?

CaratteristicaSAM 2SAM 3
AttivitàSingolo oggetto per promptTutte le istanze di un concetto
Tipi di promptPunti, box, maschereFrasi di testo, esempi di immagini
Capacità di rilevamentoRichiede un rilevatore esternoRilevatore a vocabolario aperto integrato
RiconoscimentoSolo basato sulla geometriaRiconoscimento di testo e visivo
ArchitetturaSolo trackerRilevatore + Tracker con head di presenza
Prestazioni Zero-ShotN/D (richiede prompt visivi)47.0 AP su LVIS, 2× migliore su SA-Co
Raffinamento interattivoSolo clicClic + generalizzazione tramite esempi

SAM 3 mantiene la retrocompatibilità con i prompt visivi di SAM 2 aggiungendo al contempo capacità basate su concetti.

Quali dataset vengono utilizzati per addestrare SAM 3?

SAM 3 è addestrato sul dataset Segment Anything with Concepts (SA-Co):

Dati di addestramento:

  • 5.2M di immagini con 4M di frasi nominali uniche (SA-Co/HQ) - annotazioni umane di alta qualità
  • 52.5K di video con 24.8K di frasi nominali uniche (SA-Co/VIDEO)
  • 1.4B di maschere sintetiche su 38M di frasi nominali (SA-Co/SYN)
  • 15 dataset esterni arricchiti con negativi difficili (SA-Co/EXT)

Dati di benchmark:

  • 214K di concetti unici su 126K di immagini/video
  • 50× più concetti rispetto ai benchmark esistenti (es. LVIS ha ~4K concetti)
  • Tripla annotazione su SA-Co/Gold per misurare i limiti delle prestazioni umane

Questa scala e diversità massicce consentono la superiore generalizzazione zero-shot di SAM 3 su concetti a vocabolario aperto.

Come si confronta SAM 3 con YOLO26 per la segmentazione?

SAM 3 e YOLO26 servono casi d'uso diversi:

Vantaggi di SAM 3:

  • Vocabolario aperto: segmenta qualsiasi concetto tramite prompt testuali senza addestramento
  • Zero-shot: funziona immediatamente su nuove categorie
  • Interattivo: il perfezionamento basato su esempi si generalizza a oggetti simili
  • Basato su concetti: trova automaticamente tutte le istanze di una categoria
  • Accuratezza: 47.0 AP su segmentazione di istanze zero-shot LVIS

Vantaggi di YOLO26:

  • Velocità: inferenza ordini di grandezza più veloce con design end-to-end senza NMS
  • Efficienza: modelli 539× più piccoli (6.4MB contro 3.45GB)
  • Risorse limitate: funziona su dispositivi edge e mobile
  • Tempo reale: ottimizzato per distribuzioni in produzione

Consiglio:

  • Usa SAM 3 per una segmentazione flessibile a vocabolario aperto dove devi trovare tutte le istanze di concetti descritti da testo o esempi
  • Usa YOLO26 per distribuzioni in produzione ad alta velocità dove le categorie sono note in anticipo
  • Usa SAM 2 per la segmentazione interattiva di singoli oggetti con prompt geometrici

SAM 3 può gestire query linguistiche complesse?

SAM 3 è progettato per semplici frasi nominali (es. "mela rossa", "persona che indossa un cappello"). Per query complesse che richiedono ragionamento, combina SAM 3 con un MLLM come SAM 3 Agent:

Query semplici (SAM 3 nativo):

  • "scuolabus giallo"
  • "gatto striato"
  • "persona che indossa un cappello rosso"

Query complesse (SAM 3 Agent con MLLM):

  • "Persone sedute ma che non tengono in mano una scatola regalo"
  • "Il cane più vicino alla fotocamera senza collare"
  • "Oggetti rossi più grandi della mano della persona"

SAM 3 Agent raggiunge 76.0 gIoU sulla validazione di ReasonSeg (contro 65.0 del miglior precedente, +16.9% di miglioramento) combinando la segmentazione di SAM 3 con le capacità di ragionamento MLLM.

Quanto è accurato SAM 3 rispetto alle prestazioni umane?

Sul benchmark SA-Co/Gold con tripla annotazione umana:

  • Limite umano inferiore: 74.2 CGF1 (annotatore più conservativo)
  • Prestazioni SAM 3: 65.0 CGF1
  • Risultato: 88% del limite umano inferiore stimato
  • Limite umano superiore: 81.4 CGF1 (annotatore più liberale)

SAM 3 raggiunge prestazioni elevate avvicinandosi all'accuratezza umana nella segmentazione di concetti a vocabolario aperto, con il divario principale su concetti ambigui o soggettivi (es. "finestra piccola", "stanza accogliente").

Commenti