Ultralytics YOLO27:
Get Started

SAM 3: segmentare qualsiasi cosa con i concetti#

Panoramica della segmentazione di concetti tramite prompt con SAM 3

SAM 3 (Modello di segmentazione di qualsiasi cosa 3) è il modello di base di Meta per la segmentazione di concetti tramite prompt (PCS). Basato 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 di esempio o entrambi. A differenza delle versioni precedenti di SAM, che segmentano un singolo oggetto per prompt, SAM 3 può individuare e segmentare ogni occorrenza di un concetto in qualsiasi punto di immagini o video, in linea con gli obiettivi del vocabolario aperto nella moderna segmentazione di istanze.



Guarda: Come usare Segment Anything 3 di Meta con Ultralytics | Segmentazione tramite prompt testuali su immagini e video

SAM 3 è completamente integrato nel pacchetto ultralytics e offre supporto nativo per la segmentazione di concetti con prompt testuali, prompt basati su immagini di esempio e tracciamento video. Il checkpoint più recente SAM 3.1 è supportato per la predizione su immagini.

Panoramica#

SAM 3 offre un miglioramento delle prestazioni di 2× rispetto ai sistemi esistenti nella segmentazione di concetti tramite prompt, mantenendo e migliorando al contempo le capacità di SAM 2 per la segmentazione visiva interattiva. Il modello eccelle nella segmentazione a vocabolario aperto: gli utenti possono specificare concetti con semplici sintagmi nominali (ad es. "autobus scolastico giallo", "gatto a strisce") oppure fornendo immagini di esempio dell'oggetto target. Queste capacità completano le pipeline pronte per la produzione che si basano su workflow semplificati di predizione e tracciamento.

Esempi di segmentazione con prompt testuali in SAM 3

Che cos'è la segmentazione di concetti tramite prompt (PCS)?#

L'attività PCS riceve in input un prompt concettuale e restituisce maschere di segmentazione con identificativi univoci per tutte le istanze degli oggetti corrispondenti. I prompt concettuali possono essere:

  • Testo: semplici sintagmi nominali come "mela rossa" o "persona con un cappello", simili a quelli usati nell'apprendimento zero-shot
  • Immagini di esempio: bounding box intorno a oggetti di esempio (positivi o negativi) per una generalizzazione rapida
  • Combinati: testo e immagini di esempio insieme per un controllo preciso

Questo approccio differisce dai prompt visivi tradizionali (punti, riquadri, maschere), che segmentano una sola istanza specifica di un oggetto, come reso popolare dalla famiglia SAM originale.

Metriche chiave delle prestazioni#

MetricaRisultato di SAM 3
AP delle maschere zero-shot su LVIS47.0 (rispetto al precedente valore migliore di 38.5, miglioramento del +22%)
Benchmark SA-Co2× migliore rispetto ai sistemi esistenti
Velocità di inferenza (GPU H200)30 ms per immagine con oltre 100 oggetti rilevati
Prestazioni videoQuasi in tempo reale per ~5 oggetti simultanei
Benchmark MOSEv2 VOS60.1 J&F (+25.5% rispetto a SAM 2.1, +17% rispetto al precedente stato dell'arte)
Raffinamento interattivoMiglioramento di +18.6 CGF1 dopo 3 prompt con immagini di esempio
Divario rispetto alle prestazioni umaneRaggiunge l'88% del limite inferiore stimato su SA-Co/Gold

Per informazioni sul contesto delle metriche dei modelli e sui compromessi in produzione, consulta approfondimenti sulla valutazione dei modelli e metriche delle prestazioni di YOLO.

SAM 3.1#

SAM 3.1, rilasciato da Meta il 27 marzo 2026, è un nuovo checkpoint di SAM 3 che aggiunge Object Multiplex, un approccio basato sulla memoria condivisa per il tracciamento video di più oggetti. Invece di elaborare ogni oggetto tracciato in modo indipendente, SAM 3.1 raggruppa gli oggetti in bucket di capacità fissa e li elabora insieme; secondo Meta, su una singola GPU H100 questo consente un aumento della velocità di ~7× con 128 oggetti. Il rilevatore di immagini e la head interattiva basata su prompt puntuali mantengono l'architettura di SAM 3.

BenchmarkMetricaSAM 3SAM 3.1
SA-Co/VEval SA-V (test)cgF130.330.5
SA-Co/VEval YT-Temporal-1B (test)cgF150.852.9
SA-Co/VEval SmartGlasses (test)cgF136.436.3
MOSEv1 (val)J&F78.479.6
DAVIS17 (val)J&F92.292.7
SA-V (test)J&F84.485.1
YTVOS19 (val)G89.789.3
MOSEv2 (val)J&Ḟ60.362.3

Ultralytics carica il checkpoint SAM 3.1 (sam3.1_multiplex.pt) nei predittori di immagini SAM 3: SAM("sam3.1_multiplex.pt") per i prompt puntuali e a riquadro e SAM3SemanticPredictor per i prompt testuali e con immagini di esempio. Il tracciamento video Object Multiplex non è ancora supportato, quindi continua a usare sam3.pt con SAM3VideoPredictor e SAM3VideoSemanticPredictor.

Architettura#

SAM 3 è composto da un rilevatore e un tracker che condividono un backbone visivo Perception Encoder (PE). Questo design disaccoppiato evita conflitti tra attività e consente sia il rilevamento a livello di immagine sia il tracciamento a livello video, con un'interfaccia compatibile con l'uso di Python e l'uso della CLI di Ultralytics.

Componenti principali#

  • Rilevatore: architettura basata su DETR per il rilevamento di concetti a livello di immagine

    • Encoder testuale per i prompt con sintagmi nominali
    • Encoder di immagini di esempio per i prompt basati su immagini
    • Encoder di fusione per condizionare le feature dell'immagine in base ai prompt
    • Nuova head di presenza che disaccoppia il riconoscimento ("cosa") dalla localizzazione ("dove")
    • Head delle maschere per generare maschere di segmentazione delle istanze
  • Tracker: segmentazione video basata sulla memoria, derivata da SAM 2

    • Encoder dei prompt, decoder delle maschere, encoder della memoria
    • Banca di memoria per memorizzare l'aspetto degli oggetti tra i fotogrammi
    • Disambiguazione temporale supportata da tecniche come il filtro di Kalman in scenari con più oggetti
  • Token di presenza: token globale appreso che predice se il concetto target è presente nell'immagine o nel fotogramma, migliorando il rilevamento separando il riconoscimento dalla localizzazione.

Diagramma dell'architettura del modello SAM 3

Innovazioni chiave#

  1. Riconoscimento e localizzazione disaccoppiati: la testa di presenza predice globalmente la presenza dei concetti, mentre le query delle proposte si concentrano solo sulla localizzazione, evitando obiettivi in conflitto.
  2. Prompt concettuali e visivi unificati: supporta sia PCS (prompt concettuali) sia PVS (prompt visivi come clic/riquadri di SAM 2) in un unico modello.
  3. Affinamento interattivo con esempi: gli utenti possono aggiungere esempi positivi o negativi di immagini per affinare iterativamente i risultati; il modello generalizza a oggetti simili invece di correggere solo singole istanze.
  4. Disambiguazione temporale: usa i punteggi di rilevamento dei masklet e il riprompting periodico per gestire occlusioni, scene affollate e problemi di tracking nei video, in linea con le best practice di segmentazione e tracking delle istanze.

Dataset SA-Co#

SAM 3 viene addestrato su Segment Anything with Concepts (SA-Co), il dataset di segmentazione più grande e diversificato mai realizzato da Meta, che va oltre i benchmark comuni come COCO e LVIS.

Dati di addestramento#

Componente del datasetDescrizioneDimensioni
SA-Co/HQDati di immagini di alta qualità annotati da persone, ottenuti con un motore di dati in 4 fasi5,2 M di immagini, 4 M di sintagmi nominali distinti
SA-Co/SYNDataset sintetico etichettato dall'IA senza intervento umano38 M di sintagmi nominali, 1,4 mld di maschere
SA-Co/EXT15 dataset esterni arricchiti con esempi negativi difficiliVaria in base alla fonte
SA-Co/VIDEOAnnotazioni video con tracking temporale52,5 mila video, 24,8 mila sintagmi nominali distinti

Dati di benchmark#

Il benchmark di valutazione SA-Co contiene 214 mila espressioni distinte in 126 mila immagini e video e offre oltre 50× più concetti rispetto ai benchmark esistenti. Include:

  • SA-Co/Gold: 7 domini, con tripla annotazione per misurare i limiti delle prestazioni umane
  • SA-Co/Silver: 10 domini, con un'unica annotazione umana
  • SA-Co/Bronze e SA-Co/Bio: 9 dataset esistenti adattati per la segmentazione concettuale
  • SA-Co/VEval: benchmark video con 3 domini (SA-V, YT-Temporal-1B, SmartGlasses)

Innovazioni del motore di dati#

Il motore di dati scalabile di SAM 3, con intervento umano e del modello nel ciclo, raggiunge una capacità di annotazione 2× superiore grazie a:

  1. Annotatori IA: modelli basati su Llama propongono sintagmi nominali diversificati, inclusi esempi negativi difficili
  2. Verificatori IA: gli LLM multimodali ottimizzati verificano la qualità e la completezza delle maschere con prestazioni quasi umane
  3. Estrazione attiva: concentra il lavoro umano sui casi di errore complessi in cui l'IA ha difficoltà
  4. Basato su un'ontologia: sfrutta un'ampia ontologia fondata su Wikidata per coprire i concetti

Installazione#

Installa o aggiorna il pacchetto ultralytics:

pip install -U ultralytics
Sono necessari i pesi del modello SAM 3

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

I pesi di SAM 3.1 (sam3.1_multiplex.pt) sono soggetti alle stesse restrizioni nella pagina del modello SAM 3.1. Passa sam3.1_multiplex.pt ovunque negli esempi con immagini qui sotto venga usato sam3.pt.

`TypeError: 'SimpleTokenizer' object is not callable`

Se ricevi l'errore riportato sopra durante la predizione, significa che hai installato il pacchetto clip sbagliato. Installa il pacchetto clip corretto eseguendo il comando seguente:

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

Come usare SAM 3: versatilità nella segmentazione concettuale#

SAM 3 supporta le attività di segmentazione concettuale tramite prompt (PCS) e segmentazione visiva tramite prompt (PVS) attraverso interfacce predittive diverse:

Attività e modelli supportati#

Tipo di attivitàTipi di promptOutput
Segmentazione concettuale (PCS)Testo (sintagmi nominali), esempi di immaginiTutte le istanze che corrispondono al concetto
Segmentazione visiva (PVS)Punti, riquadri, maschereSingola istanza di oggetto (stile SAM 2)
Raffinamento interattivoAggiungi/rimuovi esempi o clic in modo iterativoSegmentazione affinata con maggiore accuratezza

Esempi di segmentazione concettuale#

Segmenta con prompt testuali#

Segmentazione concettuale basata su 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

# Inizializza il predittore con la configurazione
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "model": "sam3.pt",
    "quantize": 16,  # Usa FP16 per un'inferenza più rapida
    "save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Imposta l'immagine una sola volta per più query
predictor.set_image("path/to/image.jpg")

# Esegui query con più prompt testuali
results = predictor(text=["person", "bus", "glasses"])

# Funziona con descrizioni dettagliate
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Esegui una query con un singolo concetto
results = predictor(text=["a person"])

Segmenta con esempi di immagini#

Segmentazione basata su esempi di immagini

Usa i riquadri di delimitazione come prompt visivi per trovare tutte le istanze simili. Anche questa operazione richiede SAM3SemanticPredictor per la corrispondenza basata sui concetti.

from ultralytics.models.sam import SAM3SemanticPredictor

# Inizializza il predittore
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Imposta l'immagine
predictor.set_image("path/to/image.jpg")

# Fornisci esempi di riquadri di delimitazione per segmentare oggetti simili
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Più riquadri di delimitazione come esempi dello stesso concetto visivo
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

Inferenza basata sulle caratteristiche per una maggiore efficienza#

Riutilizzo delle caratteristiche dell'immagine per più query

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

import cv2

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

# Inizializza i predittori
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Estrai le caratteristiche dal primo predittore
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Configura il secondo predittore e riutilizza le caratteristiche
predictor2.setup_model()

# Esegui l'inferenza usando le caratteristiche condivise con un prompt testuale
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Esegui l'inferenza usando le caratteristiche condivise con un prompt basato su un riquadro di delimitazione
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualizza i risultati
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 concettuale nei video#

Traccia i concetti nei video con i riquadri di delimitazione#

Tracking video con prompt visivi

Rileva e traccia le istanze degli oggetti nei fotogrammi del video usando prompt basati su riquadri di delimitazione.

from ultralytics.models.sam import SAM3VideoPredictor

# Crea il predittore video
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)

# Traccia gli oggetti usando prompt basati su riquadri di delimitazione
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Elabora e visualizza i risultati
for r in results:
    r.show()  # Mostra il fotogramma con le maschere di segmentazione

Traccia i concetti con prompt testuali#

Tracking video con query semantiche

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

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Inizializza il predittore video semantico
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "imgsz": 640,
    "model": "sam3.pt",
    "quantize": 16,
    "save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Traccia i concetti usando prompt testuali
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Elabora i risultati
for r in results:
    r.show()  # Mostra il fotogramma con gli oggetti tracciati

# Alternativa: traccia con prompt basati su riquadri di delimitazione
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Etichette positive
    stream=True,
)

Prompt visivi (compatibilità con SAM 2)#

SAM 3 mantiene la piena retrocompatibilità con i prompt visivi di SAM 2 per la segmentazione di un singolo oggetto:

Prompt visivi in stile SAM 2

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

from ultralytics import SAM

model = SAM("sam3.pt")

# Prompt con un singolo punto: segmenta l'oggetto in una posizione specifica
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Più punti: segmenta un singolo oggetto usando più punti guida
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Prompt con riquadro: segmenta l'oggetto all'interno del riquadro di delimitazione
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
Prompt visivi vs segmentazione per concetto

L'uso di SAM("sam3.pt") con prompt visivi (punti/riquadri/maschere) segmenta solo l'oggetto specifico in quella posizione, proprio come SAM 2. Per segmentare tutte le istanze di un concetto, usa SAM3SemanticPredictor con prompt testuali o basati su esempi, come mostrato sopra.

Benchmark delle prestazioni#

Segmentazione delle immagini#

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

BenchmarkMetricaSAM 3Miglior risultato precedenteMiglioramento
LVIS (zero-shot)AP delle maschere47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zero-shot)AP dei riquadri53.552.2 (T-Rex2)+2.5%
ADE-847 (segmentazione semantica)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (segmentazione semantica)mIoU65.144.2 (APE-D)+47.3%

Esplora le opzioni di dataset per sperimentare rapidamente in dataset Ultralytics.

Prestazioni di segmentazione video#

SAM 3 mostra miglioramenti significativi rispetto a SAM 2 e ai precedenti risultati allo stato dell'arte nei 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 con pochi esempi#

SAM 3 eccelle nell'adattarsi a nuovi domini con pochi esempi, una capacità utile nei flussi di lavoro di IA incentrata sui dati:

BenchmarkAP con 0 esempiAP con 10 esempiMiglior risultato precedente (10 esempi)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

Efficacia del perfezionamento interattivo#

Il prompting basato sui concetti di SAM 3 con esempi converge molto più rapidamente del prompting visivo:

Prompt aggiuntiPunteggio CGF1Incremento rispetto ai soli prompt testualiIncremento rispetto alla baseline PVS
Solo testo46.4baselinebaseline
+1 esempio57.6+11.2+6.7
+2 esempi62.2+15.8+9.7
+3 esempi65.0+18.6+11.2
+4 esempi65.7+19.3+11.5 (plateau)

Precisione del conteggio degli oggetti#

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

BenchmarkPrecisioneMAErispetto al 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 SAM 2 e i modelli YOLO26. Per il rilevamento e la segmentazione in tempo reale a vocabolario aperto usando gli stessi tipi di prompt, consulta YOLOE:

CapacitàSAM 3SAM 2YOLO26n-seg
Segmentazione per concetto✅ Tutte le istanze da testo/esempi❌ Non supportata❌ Non supportata
Segmentazione visiva✅ Singola istanza (compatibile con SAM 2)✅ Singola istanza✅ Tutte le istanze
Capacità zero-shot✅ Vocabolario aperto✅ Prompt geometrici❌ Insieme chiuso
Raffinamento interattivo✅ Esempi + clic✅ Solo clic❌ Non supportata
Tracciamento video✅ Più oggetti con identità✅ Più oggetti✅ Più oggetti
AP delle maschere LVIS (zero-shot)47.0N/DN/D
MOSEv2 J&F60.147.9N/D
Velocità (GPU, ms/immagine)29218578.4
Dimensione del modello3.45 GB162 MB (base)6.4 MB

Benchmark della velocità eseguito su NVIDIA RTX PRO 6000 con torch==2.9.1 e ultralytics==8.4.19.

Punti chiave:

  • SAM 3: ideale per la segmentazione di concetti a vocabolario aperto e per trovare tutte le istanze di un concetto con prompt testuali o basati su esempi
  • SAM 2: ideale per la segmentazione interattiva di un singolo oggetto in immagini e video con prompt geometrici
  • YOLO26: ideale per la segmentazione in tempo reale ad alta velocità, con inferenza end-to-end opzionale senza NMS, esportabile in molti formati per la distribuzione su GPU, CPU e dispositivi edge

Confronto tra SAM e YOLO#

Confronto tra SAM 3, SAM 2, SAM, MobileSAM e FastSAM e i modelli di segmentazione YOLO di Ultralytics (YOLOv8, YOLO11, YOLO26) in termini di dimensioni, parametri e velocità di inferenza su GPU:

ModelloDimensione
(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 evidenzia le notevoli differenze nelle dimensioni e nella velocità dei modelli tra le varianti SAM e i modelli di segmentazione YOLO. Sebbene SAM offra capacità uniche di segmentazione automatica, i modelli YOLO, in particolare YOLOv8n-seg, YOLO11n-seg e YOLO26n-seg, sono significativamente più piccoli, più veloci e più efficienti dal punto di vista computazionale.

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

Esempio
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profilo 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)

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

# Profilo dei modelli YOLO
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS, nms=False)  # Head senza NMS di YOLO26; non fa nulla per YOLOv8/YOLO11

Metriche di valutazione#

SAM 3 introduce nuove metriche progettate per il task PCS, che si affiancano a misure note come F1 score, precisione e richiamo.

F1 con classificazione condizionata (CGF1)#

La metrica principale che combina localizzazione e classificazione:

CGF1 = 100 × pmF1 × IL_MCC

Dove:

  • pmF1 (F1 macro positivo): misura la qualità della localizzazione sugli esempi positivi
  • IL_MCC (coefficiente di correlazione di Matthews a livello di immagine): misura l'accuratezza della classificazione binaria ("il concetto è presente?")

Perché queste metriche?#

Le metriche AP tradizionali non tengono conto della calibrazione, rendendo difficile usare i modelli nella pratica. Valutando solo le predizioni con confidenza superiore a 0.5, le metriche di SAM 3 favoriscono una buona calibrazione e riproducono le modalità d'uso reali nei cicli interattivi di predizione e tracciamento.

Ablation e approfondimenti principali#

Impatto della head di presenza#

La head di presenza separa il riconoscimento dalla localizzazione, apportando miglioramenti significativi:

ConfigurazioneCGF1IL_MCCpmF1
Senza presenza57.60.7774.7
Con presenza63.30.8277.1

La head di presenza offre un incremento di +5.7 CGF1 (+9.9%), migliorando principalmente la capacità di riconoscimento (IL_MCC +6.5%).

Effetto degli esempi negativi difficili#

Esempi negativi difficili/immagineCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Gli esempi negativi difficili sono fondamentali per il riconoscimento a vocabolario aperto e migliorano IL_MCC del 54.5% (0.44 → 0.68).

Scalabilità dei dati di addestramento#

Fonti dei datiCGF1IL_MCCpmF1
Solo esterni30.90.4666.3
Esterni + sintetici39.70.5770.6
Esterni + alta qualità51.80.7173.2
Tutte e tre54.30.7473.5

Le annotazioni umane di alta qualità offrono notevoli miglioramenti rispetto ai soli dati sintetici o esterni. Per informazioni sulle pratiche di qualità dei dati, consulta raccolta e annotazione dei dati.

Applicazioni#

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

  • Moderazione dei contenuti: trova tutte le istanze di tipi specifici di contenuti nelle raccolte multimediali
  • E-commerce: segmenta tutti i prodotti di un certo tipo nelle immagini dei cataloghi, supportando l'annotazione automatica
  • 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 determinati vestiti o compiono determinate azioni
  • Annotazione dei dataset: annota rapidamente tutte le istanze di categorie di oggetti rare
  • Ricerca scientifica: quantifica e analizza tutti gli esemplari che soddisfano criteri specifici

Agente SAM 3: ragionamento linguistico avanzato#

SAM 3 può essere combinato con modelli linguistici multimodali di grandi dimensioni (MLLM) per gestire query complesse che richiedono ragionamento, in modo simile a sistemi a vocabolario aperto come OWLv2 e T-Rex.

Prestazioni nei task di ragionamento#

BenchmarkMetricaAgente SAM 3 (Gemini 2.5 Pro)Miglior risultato precedente
ReasonSeg (validazione)gIoU76.065.0 (stato dell'arte)
ReasonSeg (test)gIoU73.861.3 (stato dell'arte)
OmniLabel (validazione)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

Esempi di query complesse#

L'agente SAM 3 è in grado di gestire query che richiedono ragionamento:

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

L'MLLM propone a SAM 3 semplici query basate su sintagmi nominali, analizza le maschere restituite e ripete il processo finché il risultato non è soddisfacente.

Limitazioni#

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

  • Complessità delle frasi: è più adatto a semplici sintagmi nominali; le espressioni referenziali lunghe o il ragionamento complesso possono richiedere l'integrazione di un MLLM
  • Gestione dell'ambiguità: alcuni concetti restano intrinsecamente ambigui (ad es. "finestra piccola", "stanza accogliente")
  • Requisiti computazionali: è più grande e più lento dei modelli di rilevamento specializzati come YOLO
  • Ampiezza del vocabolario: si concentra su concetti visivi atomici; il ragionamento composizionale è limitato senza l'assistenza di un MLLM
  • Concetti rari: le prestazioni possono diminuire con concetti estremamente rari o granulari, non rappresentati adeguatamente nei dati di addestramento

Citazione#

Citazione
@misc{carion2025sam3,
  title         = {SAM 3: Segment Anything with Concepts},
  author        = {Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman R{\"a}dle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Doll{\'a}r and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
  year          = {2025},
  eprint        = {2511.16719},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CV},
  url           = {https://arxiv.org/abs/2511.16719}
}

Domande frequenti#

  • SAM 3 è stato rilasciato da Meta il 19 novembre 2025 ed è completamente integrato nel pacchetto ultralytics, con supporto per la modalità di predizione e la modalità di tracciamento.

  • Sì! SAM 3 è completamente integrato nel pacchetto Python di Ultralytics e include la segmentazione dei concetti, prompt visivi in stile SAM 2 e il tracciamento video di più oggetti. SAM 3 e SAM 3.1 alimentano anche la funzionalità di annotazione intelligente su Ultralytics Platform, dove SAM 3.1 è il modello predefinito e puoi annotare immagini con pochi clic.

  • Sì, per la predizione delle immagini. Carica sam3.1_multiplex.pt ovunque negli esempi di immagini di questa pagina sia usato sam3.pt: SAM("sam3.1_multiplex.pt") per i prompt basati su punti e riquadri, e SAM3SemanticPredictor per i prompt testuali e basati su esempi. Il tracciamento video Object Multiplex non è ancora supportato, quindi continua a usare sam3.pt con i predittori video. Consulta SAM 3.1 per i benchmark di Meta.

  • PCS è un nuovo task introdotto 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 ha come obiettivo una specifica istanza di oggetto, PCS individua ogni occorrenza di una categoria. Ad esempio:

    • Prompt testuale: "autobus scolastico giallo" → segmenta tutti gli autobus scolastici gialli nella scena
    • Esempio di immagine: riquadro attorno a un cane → segmenta tutti i cani nell'immagine
    • Combinazione: «gatto tigrato» + riquadro di esempio → segmenta tutti i gatti tigrati simili all'esempio

    Consulta le informazioni correlate su rilevamento degli oggetti e segmentazione delle istanze.

  • CaratteristicaSAM 2SAM 3
    AttivitàUn singolo oggetto per promptTutte le istanze di un concetto
    Tipi di promptPunti, riquadri, maschere+ Frasi di testo, immagini di esempio
    Capacità di rilevamentoRichiede un rilevatore esternoRilevatore integrato a vocabolario aperto
    RiconoscimentoBasato solo sulla geometriaRiconoscimento testuale e visivo
    ArchitetturaSolo trackerRilevatore + tracker con testa di presenza
    Prestazioni zero-shotN/D (richiede prompt visivi)47,0 AP su LVIS, prestazioni 2× superiori su SA-Co
    Raffinamento interattivoSolo clicClic + generalizzazione basata su esempi

    SAM 3 mantiene la compatibilità con i prompt visivi di SAM 2, aggiungendo al contempo funzionalità basate sui concetti.

  • SAM 3 è addestrato sul dataset Segment Anything con concetti (SA-Co):

    Dati di addestramento:

    • 5,2 M di immagini con 4 M di sintagmi nominali univoci (SA-Co/HQ) - annotazioni umane di alta qualità
    • 52,5 K di video con 24,8 K di sintagmi nominali univoci (SA-Co/VIDEO)
    • 1,4 miliardi di maschere sintetiche per 38 M di sintagmi nominali (SA-Co/SYN)
    • 15 dataset esterni arricchiti con esempi negativi difficili (SA-Co/EXT)

    Dati di benchmark:

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

    Questa enorme scala e varietà consente a SAM 3 di generalizzare meglio zero-shot tra concetti a vocabolario aperto.

  • SAM 3 e YOLO26 rispondono a esigenze diverse:

    Vantaggi di SAM 3:

    • Vocabolario aperto: segmenta qualsiasi concetto tramite prompt testuali, senza addestramento
    • Zero-shot: funziona subito con nuove categorie
    • Interattivo: il perfezionamento basato su esempi si generalizza a oggetti simili
    • Basato sui concetti: individua automaticamente tutte le istanze di una categoria
    • Precisione: 47,0 AP nella segmentazione zero-shot delle istanze su LVIS

    Vantaggi di YOLO26:

    • Velocità: inferenza di ordini di grandezza più rapida, con una testa end-to-end opzionale senza NMS
    • Efficienza: modelli 539× più piccoli (6,4 MB contro 3,45 GB)
    • Adatto a risorse limitate: funziona su dispositivi edge e mobili
    • In tempo reale: ottimizzato per le distribuzioni in produzione

    Consiglio:

    • Usa SAM 3 per una segmentazione flessibile a vocabolario aperto, quando devi individuare tutte le istanze dei concetti descritti tramite testo o esempi
    • Usa YOLO26 per distribuzioni in produzione ad alta velocità, quando le categorie sono note in anticipo
    • Usa SAM 2 per la segmentazione interattiva di singoli oggetti con prompt geometrici
  • SAM 3 è progettato per sintagmi nominali semplici (ad es., «mela rossa», «persona con 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 tigrato»
    • «persona con cappello rosso»

    Query complesse (SAM 3 Agent con MLLM):

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

    SAM 3 Agent ottiene 76,0 gIoU sul set di validazione di ReasonSeg (contro il precedente risultato migliore di 65,0, con un miglioramento del +16,9%), combinando la segmentazione di SAM 3 con le capacità di ragionamento degli MLLM.

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

    • Limite inferiore umano: 74,2 CGF1 (annotatore più prudente)
    • Prestazioni di SAM 3: 65,0 CGF1
    • Risultato: 88% del limite inferiore umano stimato
    • Limite superiore umano: 81,4 CGF1 (annotatore più permissivo)

    SAM 3 ottiene prestazioni elevate, avvicinandosi alla precisione umana nella segmentazione di concetti a vocabolario aperto; il divario riguarda soprattutto i concetti ambigui o soggettivi (ad es., «finestra piccola», «stanza accogliente»).

Commenti