SAM 3: Segmenta tutto con i concetti
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.
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.
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
| Metrica | Risultato di SAM 3 |
|---|---|
| LVIS Zero-Shot Mask AP | 47.0 (contro il precedente miglior risultato di 38.5, +22% di miglioramento) |
| Benchmark SA-Co | 2× migliore dei sistemi esistenti |
| Velocità di inferenza (H200 GPU) | 30 ms per immagine con oltre 100 oggetti rilevati |
| Performance video | Quasi tempo reale per ~5 oggetti simultanei |
| Benchmark MOSEv2 VOS | 60.1 J&F (+25.5% rispetto a SAM 2.1, +17% rispetto al precedente SOTA) |
| Raffinamento interattivo | Miglioramento di +18.6 CGF1 dopo 3 prompt esemplificativi |
| Gap di performance umana | Raggiunge 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.
Innovazioni chiave
- 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.
- 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.
- 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.
- 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 dataset | Descrizione | Scala |
|---|---|---|
| SA-Co/HQ | Dati immagine di alta qualità annotati dall'uomo da un motore dati a 4 fasi | 5.2M di immagini, 4M di sintagmi nominali univoci |
| SA-Co/SYN | Dataset sintetico etichettato dall'IA senza coinvolgimento umano | 38M di sintagmi nominali, 1.4B di maschere |
| SA-Co/EXT | 15 dataset esterni arricchiti con negativi difficili | Variabile in base alla fonte |
| SA-Co/VIDEO | Annotazioni video con tracciamento temporale | 52.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:
- Annotatori IA: Modelli basati su Llama propongono sintagmi nominali diversificati inclusi negativi difficili
- Verificatori IA: Multimodal LLMs ottimizzati verificano la qualità e l'esaustività della maschera con prestazioni quasi umane
- Active Mining: Concentra lo sforzo umano sui casi critici di fallimento dove l'IA ha difficoltà
- 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 ultralyticsA 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.
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.gitCome 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 compito | Tipi di prompt | Output |
|---|---|---|
| Concept Segmentation (PCS) | Testo (sintagmi nominali), immagini esemplificative | Tutte le istanze che corrispondono al concetto |
| Visual Segmentation (PVS) | Punti, box, maschere | Singola istanza di oggetto (stile SAM 2) |
| Raffinamento interattivo | Aggiungi/rimuovi esempi o click in modo iterativo | Segmentazione raffinata con maggiore precisione |
Esempi di segmentazione dei concetti
Segmenta con prompt testuali
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
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
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
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 masksTraccia i concetti con prompt testuali
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:
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()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:
| Benchmark | Metrica | SAM 3 | Precedente migliore | Miglioramento |
|---|---|---|---|---|
| LVIS (zero-shot) | Mask AP | 47.0 | 38.5 | +22.1% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3 (OWLv2) | +89.5% |
| COCO (zero-shot) | Box AP | 53.5 | 52.2 (T-Rex2) | +2.5% |
| ADE-847 (seg semantica) | mIoU | 14.7 | 9.2 (APE-D) | +59.8% |
| PascalConcept-59 | mIoU | 59.4 | 58.5 (APE-D) | +1.5% |
| Cityscapes (seg semantica) | mIoU | 65.1 | 44.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:
| Benchmark | Metrica | SAM 3 | SAM 2.1 L | Miglioramento |
|---|---|---|---|---|
| MOSEv2 | J&F | 60.1 | 47.9 | +25.5% |
| DAVIS 2017 | J&F | 92.0 | 90.7 | +1.4% |
| LVOSv2 | J&F | 88.2 | 79.6 | +10.8% |
| SA-V | J&F | 84.6 | 78.4 | +7.9% |
| YTVOS19 | J&F | 89.6 | 89.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:
| Benchmark | 0-shot AP | 10-shot AP | Precedente migliore (10-shot) |
|---|---|---|---|
| ODinW13 | 59.9 | 71.6 | 67.9 (gDino1.5-Pro) |
| RF100-VL | 14.3 | 35.7 | 33.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 aggiunti | Punteggio CGF1 | Guadagno vs solo testo | Guadagno vs base PVS |
|---|---|---|---|
| Solo testo | 46.4 | baseline | baseline |
| +1 esemplare | 57.6 | +11.2 | +6.7 |
| +2 esemplari | 62.2 | +15.8 | +9.7 |
| +3 esemplari | 65.0 | +18.6 | +11.2 |
| +4 esemplari | 65.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:
| Benchmark | Accuratezza | MAE | vs Miglior MLLM |
|---|---|---|---|
| CountBench | 95.6% | 0.11 | 92.4% (Gemini 2.5) |
| PixMo-Count | 87.3% | 0.22 | 88.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 3 | SAM 2 | YOLO26n-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.0 | N/D | N/D |
| MOSEv2 J&F | 60.1 | 47.9 | N/D |
| Velocità (GPU, ms/im) | 2921 | 857 | 8.4 |
| Dimensione del modello | 3.45 GB | 162 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:
| Modello | Dimensioni (MB) | Parametri (M) | Velocità (GPU) (ms/im) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 1306 |
| Meta SAM2-b | 162 | 80.8 | 857 |
| Meta SAM2-t | 78.1 | 38.9 | 668 |
| Meta SAM3 | 3450 | 473.6 | 2921 |
| MobileSAM | 40.7 | 10.1 | 605 |
| FastSAM-s con backbone YOLOv8 | 23.7 | 11.8 | 55.9 |
| Ultralytics YOLOv8n-seg | 6.7 (515 volte più piccolo) | 3.4 (139.1 volte in meno) | 17.4 (167 volte più veloce) |
| Ultralytics YOLO11n-seg | 5.9 (585 volte più piccolo) | 2.9 (163.1 volte in meno) | 12.6 (231 volte più veloce) |
| Ultralytics YOLO26n-seg | 6.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:
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:
| Configurazione | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| Senza presence | 57.6 | 0.77 | 74.7 |
| Con presence | 63.3 | 0.82 | 77.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/Immagine | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 0 | 31.8 | 0.44 | 70.2 |
| 5 | 44.8 | 0.62 | 71.9 |
| 30 | 49.2 | 0.68 | 72.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 dati | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| Solo esterni | 30.9 | 0.46 | 66.3 |
| Esterni + Sintetici | 39.7 | 0.57 | 70.6 |
| Esterni + HQ | 51.8 | 0.71 | 73.2 |
| Tutti e tre | 54.3 | 0.74 | 73.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
| Benchmark | Metrica | SAM 3 Agent (Gemini 2.5 Pro) | Precedente migliore |
|---|---|---|---|
| ReasonSeg (validazione) | gIoU | 76.0 | 65.0 (SoTA) |
| ReasonSeg (test) | gIoU | 73.8 | 61.3 (SoTA) |
| OmniLabel (validazione) | AP | 46.7 | 36.5 (REAL) |
| RefCOCO+ | Acc | 91.2 | 89.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
@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?
| Caratteristica | SAM 2 | SAM 3 |
|---|---|---|
| Attività | Singolo oggetto per prompt | Tutte le istanze di un concetto |
| Tipi di prompt | Punti, box, maschere | Frasi di testo, esempi di immagini |
| Capacità di rilevamento | Richiede un rilevatore esterno | Rilevatore a vocabolario aperto integrato |
| Riconoscimento | Solo basato sulla geometria | Riconoscimento di testo e visivo |
| Architettura | Solo tracker | Rilevatore + Tracker con head di presenza |
| Prestazioni Zero-Shot | N/D (richiede prompt visivi) | 47.0 AP su LVIS, 2× migliore su SA-Co |
| Raffinamento interattivo | Solo clic | Clic + 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").