SAM 3: Segment Anything with Concepts#
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, i prompt con immagini di esempio 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 da prompt di testo, esempi di immagini o entrambi. A differenza delle versioni precedenti di SAM che segmentano singoli oggetti per prompt, SAM 3 è in grado di trovare e segmentare ogni occorrenza di un concetto che appare ovunque in immagini o video, allineandosi con gli obiettivi del vocabolario aperto nella moderna segmentazione d'istanza.
Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos
SAM 3 è ora completamente integrato nel pacchetto ultralytics, offrendo supporto nativo per la segmentazione di concetti con prompt di testo, prompt con immagini di esempio e funzionalità di tracciamento video.
Panoramica#
SAM 3 ottiene un guadagno di prestazioni pari a 2× rispetto ai sistemi esistenti nella Promptable Concept Segmentation, mantenendo e migliorando le capacità di SAM 2 per la segmentazione visiva interattiva. Il modello eccelle nella segmentazione a vocabolario aperto, consentendo agli utenti di specificare concetti utilizzando semplici sintagmi nominali (ad es., "scuolabus giallo", "gatto striato") o fornendo immagini di esempio dell'oggetto di riferimento. Queste capacità completano i flussi di lavoro pronti per la produzione che si basano su operazioni di predict e track ottimizzate.

Che cos'è la Segmentazione di Concetti basata su Prompt (PCS)?#
Il task PCS accetta un concept prompt come input 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 che indossa un cappello", simili all'apprendimento zero-shot
- Esempi di immagini: Bounding box attorno a oggetti di esempio (positivi o negativi) per una rapida generalizzazione
- Combinati: Sia testo che esempi di immagini insieme per un controllo preciso
Ciò differisce dai tradizionali prompt visivi (punti, riquadri, maschere) che segmentano una sola specifica istanza di oggetto, come reso popolare dalla famiglia SAM originale.
Metriche chiave di prestazione#
| Metrica | Risultato SAM 3 |
|---|---|
| LVIS Zero-Shot Mask AP | 47.0 (contro il precedente migliore di 38.5, +22% di miglioramento) |
| Benchmark SA-Co | 2× migliore rispetto ai sistemi esistenti |
| Velocità di inferenza (GPU H200) | 30 ms per immagine con oltre 100 oggetti rilevati |
| Prestazioni video | Quasi in tempo reale per circa 5 oggetti simultanei |
| Benchmark MOSEv2 VOS | 60.1 J&F (+25.5% rispetto a SAM 2.1, +17% rispetto al precedente SOTA) |
| Raffinamento interattivo | +18.6 CGF1 di miglioramento dopo 3 prompt di esempio |
| Divario dalle prestazioni umane | Raggiunge l'88% del limite inferiore stimato su SA-Co/Gold |
Per un contesto sulle metriche del modello e sui compromessi in produzione, consulta le approfondimenti sulla valutazione del modello e le metriche di performance di YOLO.
Architettura#
SAM 3 è costituito da un rilevatore e un tracciatore che condividono una spina dorsale di visione Perception Encoder (PE). Questo design disaccoppiato evita conflitti di attività consentendo sia il rilevamento a livello di immagine che il tracciamento a livello di video, con un'interfaccia compatibile con l'utilizzo in Python e l'utilizzo da CLI di Ultralytics.
Componenti principali#
-
Rilevatore: Architettura basata su DETR per il rilevamento di concetti a livello di immagine
- Encoder di testo per prompt basati su sintagmi nominali
- Encoder di esempi per prompt basati su immagini
- Encoder di fusione per condizionare le caratteristiche dell'immagine in base ai prompt
- Nuova presence head che disaccoppia il riconoscimento ("cosa") dalla localizzazione ("dove")
- Mask head per generare maschere di segmentazione delle istanze
-
Tracciatore: Segmentazione video basata su memoria ereditata da SAM 2
- Prompt encoder, mask decoder, memory encoder
- Banca di memoria per archiviare l'aspetto dell'oggetto tra i frame
- Disambiguazione temporale coadiuvata 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: La presence head prevede la presenza del concetto a livello globale, mentre le proposal query si concentrano solo sulla localizzazione, evitando obiettivi contrastanti.
- Prompt concettuali e visivi unificati: Supporta sia PCS (prompt concettuali) che PVS (prompt visivi come i clic/box di SAM 2) in un unico modello.
- Raffinamento interattivo degli esempi: Gli utenti possono aggiungere esempi di immagini positivi o negativi per raffinare iterativamente i risultati, con il modello che generalizza su oggetti simili anziché limitarsi a correggere le singole istanze.
- Disambiguazione temporale: Utilizza i punteggi di rilevamento delle masklet e la riprompizzazione periodica per gestire occlusioni, scene affollate e guasti di tracciamento nei video, in linea con le migliori pratiche di segmentazione e tracciamento d'istanza.
Dataset SA-Co#
SAM 3 è addestrato su Segment Anything with Concepts (SA-Co), il set di dati di segmentazione più ampio 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 da esseri umani tramite un motore di 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 | Varia 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 di frasi univoche su 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 prestazioni 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 Data Engine#
Il motore di dati scalabile di SAM 3, basato su collaborazione umana e modelli, raggiunge un throughput di annotazione 2× grazie a:
- Annotatori di intelligenza artificiale: I modelli basati su Llama propongono diversi sintagmi nominali inclusi esempi negativi difficili
- Verificatori di intelligenza artificiale: LLM multimodali messi a punto verificano la qualità della maschera e l'esaustività a prestazioni vicine a quelle umane
- Active Mining: Focalizza lo sforzo umano sui casi di fallimento critici in cui l'IA ha difficoltà
- Basato su ontologie: Sfrutta un'ampia ontologia radicata in Wikidata per la copertura dei concetti
Installazione#
SAM 3 è disponibile nella versione 8.3.237 di Ultralytics 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. È necessario prima richiedere l'accesso per i pesi del modello sulla pagina del modello SAM 3 su Hugging Face e poi, una volta approvati, 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 riscontri l'errore precedente 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 task di Segmentazione di Concetti basata su Prompt (PCS) che di Segmentazione Visiva basata su Prompt (PVS) tramite diverse interfacce del predittore:
Task e modelli supportati#
| Tipo di task | Tipi di prompt | Output |
|---|---|---|
| Segmentazione di concetti (PCS) | Testo (sintagmi nominali), esempi di immagini | Tutte le istanze corrispondenti al concetto |
| Segmentazione visiva (PVS) | Punti, box, maschere | Singola istanza di oggetto (stile SAM 2) |
| Raffinamento interattivo | Aggiungi/rimuovi esempi o clic in modo iterativo | Segmentazione raffinata con precisione migliorata |
Esempi di segmentazione di concetti#
Segmenta con prompt testuali#
Trova e segmenta tutte le istanze di un concetto utilizzando una descrizione testuale. I prompt di testo richiedono l'interfaccia SAM3SemanticPredictor.
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor with configuration
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"model": "sam3.pt",
"quantize": 16, # 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"])Segmentazione con esemplari di immagine#
Usa i riquadri di delimitazione come prompt visivi per trovare tutte le istanze simili. Anche questo richiede SAM3SemanticPredictor per la corrispondenza basata sui concetti.
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "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 as exemplars of the same visual concept
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 query di segmentazione multiple per migliorare l'efficienza.
import cv2
from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors
# Initialize predictors
overrides = {"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 di concetti nei video#
Traccia i concetti attraverso il video con i bounding box#
Rileva e traccia le istanze degli oggetti attraverso i frame video utilizzando prompt a bounding box.
from ultralytics.models.sam import SAM3VideoPredictor
# Create video predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
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 attraverso i frame video.
from ultralytics.models.sam import SAM3VideoSemanticPredictor
# Initialize semantic video predictor
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"imgsz": 640,
"model": "sam3.pt",
"quantize": 16,
"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à SAM 2)#
SAM 3 mantiene la piena compatibilità con i prompt visivi di SAM 2 per la segmentazione di oggetti singoli:
L'interfaccia SAM di base si comporta esattamente come SAM 2, segmentando solo l'area specifica indicata dai prompt visivi (punti, riquadri 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()L'uso di SAM("sam3.pt") con prompt visivi (punti/riquadri/maschere) segmenterà solo l'oggetto specifico in quella posizione, proprio come SAM 2. Per segmentare tutte le istanze di un concetto, usa SAM3SemanticPredictor con prompt di testo o di esempio come mostrato sopra.
Benchmark delle prestazioni#
Segmentazione di immagini#
SAM 3 ottiene risultati allo stato dell'arte su molteplici benchmark, inclusi set di dati del mondo reale come LVIS e COCO per la segmentazione:
| Benchmark | Metrica | SAM 3 | Migliore precedente | 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 set di dati per una rapida sperimentazione nei set di dati di Ultralytics.
Prestazioni di segmentazione video#
SAM 3 mostra significativi miglioramenti rispetto a SAM 2 e al precedente 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 esempi minimi, rilevanti per i flussi di lavoro di IA incentrata sui dati:
| Benchmark | 0-shot AP | 10-shot AP | Migliore precedente (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 prompting basato sui concetti di SAM 3 con esemplari converge molto più velocemente del prompting visivo:
| Prompt aggiunti | Punteggio CGF1 | Guadagno vs solo testo | Guadagno vs base PVS |
|---|---|---|---|
| Solo testo | 46.4 | base | base |
| +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) |
Precisione nel conteggio degli oggetti#
SAM 3 fornisce conteggi accurati segmentando tutte le istanze, un requisito comune nel conteggio degli oggetti:
| Benchmark | Precisione | 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 SAM 3 vs SAM 2 vs YOLO#
Qui confrontiamo le capacità di SAM 3 con i modelli SAM 2 e YOLO26. Per il rilevamento e la segmentazione a vocabolario aperto in tempo reale dagli stessi tipi di prompt, vedi YOLOE:
| Capacità | SAM 3 | SAM 2 | YOLO26n-seg |
|---|---|---|---|
| Segmentazione dei concetti | ✅ Tutte le istanze da testo/esemplari | ❌ Non supportato | ❌ Non supportato |
| Segmentazione visiva | ✅ Istanza singola (compatibile con SAM 2) | ✅ Istanza singola | ✅ Tutte le istanze |
| Capacità zero-shot | ✅ Vocabolario aperto | ✅ Prompt geometrici | ❌ Set chiuso |
| Raffinamento interattivo | ✅ Esemplari + clic | ✅ Solo clic | ❌ Non supportato |
| Tracciamento video | ✅ 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: Ottimo per la segmentazione di concetti a vocabolario aperto, trovando tutte le istanze di un concetto con prompt di testo o esemplari
- SAM 2: Ottimo per la segmentazione interattiva di singoli oggetti in immagini e video con prompt geometrici
- YOLO26: Ottimizzato per la segmentazione in tempo reale 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 rispetto a YOLO#
Confronto tra SAM 3, SAM 2, SAM, MobileSAM, e FastSAM rispetto ai modelli di segmentazione Ultralytics YOLO (YOLOv8, YOLO11, YOLO26) in termini di dimensioni, 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 (515x più piccolo) | 3.4 (139.1x di meno) | 17.4 (167x più veloce) |
| Ultralytics YOLO11n-seg | 5.9 (585x più piccolo) | 2.9 (163.1x di meno) | 12.6 (231x più veloce) |
| Ultralytics YOLO26n-seg | 6.4 (539x più piccolo) | 2.7 (175.2x di meno) | 8.4 (347x 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 fornisce capacità di segmentazione automatica uniche, 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 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 l'attività PCS, che integrano misure familiari come punteggio F1, precisione e richiamo.
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 la precisione della classificazione binaria ("il concetto è presente?")
Perché queste metriche?#
Le metriche AP tradizionali non tengono conto della calibrazione, rendendo i modelli difficili da usare nella pratica. Valutando solo le previsioni superiori a 0.5 di confidenza, 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#
La 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 |
La presence head fornisce un boost del +5.7 CGF1 (+9.9%), migliorando principalmente la capacità di riconoscimento (IL_MCC +6.5%).
Effetto degli esempi negativi difficili#
| Esempi negativi difficili/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 fondamentali per il riconoscimento a vocabolario aperto, migliorando l'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 vantaggi rispetto ai soli dati sintetici o esterni. Per informazioni di background sulle pratiche di qualità dei dati, consultare 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 di contenuto specifici nelle librerie multimediali
- E-commerce: Segmenta tutti i prodotti di un certo tipo nelle immagini del catalogo, supportando l'auto-annotazione
- 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 abiti specifici o eseguono azioni
- Annotazione del set di dati: Annota rapidamente tutte le istanze di categorie di oggetti rari
- Ricerca scientifica: quantifica e analizza tutti i campioni che corrispondono a criteri specifici
Agente SAM 3: Ragionamento linguistico esteso#
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 sui task di ragionamento#
| Benchmark | Metrica | Agente SAM 3 (Gemini 2.5 Pro) | Migliore precedente |
|---|---|---|---|
| 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#
L'Agente SAM 3 può gestire query che richiedono ragionamento:
- "Persone sedute ma che non tengono una scatola regalo tra le mani"
- "Il cane più vicino alla fotocamera che non indossa un collare"
- "Oggetti rossi più grandi della mano della persona"
L'MLLM propone semplici query di sintagmi nominali a SAM 3, analizza le maschere restituite e itera fino al soddisfacimento.
Limitazioni#
Sebbene SAM 3 rappresenti un progresso importante, presenta alcune limitazioni:
- Complessità delle frasi: più adatto a semplici sintagmi nominali; espressioni di riferimento lunghe o ragionamenti complessi potrebbero richiedere l'integrazione con MLLM
- Gestione dell'ambiguità: alcuni concetti rimangono intrinsecamente ambigui (ad esempio, "piccola finestra", "stanza accogliente")
- Requisiti di calcolo: Più grande e più lento rispetto a modelli di rilevamento specializzati come YOLO
- Ambito 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#
SAM 3 è stato rilasciato da Meta il 20 novembre 2025 ed è completamente integrato in Ultralytics a partire dalla versione 8.3.237 (PR #22897). È disponibile il supporto completo per la modalità predict e la modalità track.
Sì! SAM 3 è completamente integrato nel pacchetto Python di Ultralytics, inclusa la segmentazione di concetti, i prompt visivi in stile SAM 2 e il tracciamento video multi-oggetto. SAM 3 alimenta anche la funzione di annotazione intelligente su Ultralytics Platform, dove puoi annotare immagini con pochi clic.
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 punta a una specifica istanza di oggetto, PCS trova ogni occorrenza di una categoria. Per esempio:
- Prompt testuale: "scuolabus giallo" → segmenta tutti gli scuolabus gialli nella scena
- Esemplare di immagine: riquadro attorno a un cane → segmenta tutti i cani nell'immagine
- Combinato: "gatto striato" + riquadro esemplificativo → segmenta tutti i gatti striati che corrispondono all'esempio
Vedi il background correlato su rilevamento di oggetti e segmentazione d'istanza.
Funzionalità SAM 2 SAM 3 Task Oggetto singolo per prompt Tutte le istanze di un concetto Tipi di prompt Punti, box, maschere + Frasi testuali, esempi di immagini Capacità di rilevamento Richiede un rilevatore esterno Rilevatore a vocabolario aperto integrato Riconoscimento Solo basato sulla geometria Riconoscimento testuale 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 di esemplari SAM 3 mantiene la retrocompatibilità con i prompt visivi di SAM 2 aggiungendo al contempo capacità basate sui concetti.
SAM 3 è addestrato sul dataset Segment Anything with Concepts (SA-Co):
Dati di addestramento:
- 5,2 milioni di immagini con 4 milioni di frasi nominali uniche (SA-Co/HQ) - annotazioni umane di alta qualità
- 52,5 mila video con 24,8 mila frasi nominali uniche (SA-Co/VIDEO)
- 1,4 miliardi di maschere sintetiche su 38 milioni di frasi nominali (SA-Co/SYN)
- 15 dataset esterni arricchiti con hard negative (SA-Co/EXT)
Dati di Benchmark:
- 214 mila concetti unici su 126 mila immagini/video
- 50 volte più concetti rispetto ai benchmark esistenti (ad esempio, LVIS ha ~4 mila 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.
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 sulla segmentazione di istanze LVIS zero-shot
Vantaggi di YOLO26:
- Velocità: inferenza ordini di grandezza più veloce con un design end-to-end senza NMS
- Efficienza: modelli 539 volte più piccoli (6,4 MB contro 3,45 GB)
- Adatto alle risorse: funziona su dispositivi edge e mobile
- Tempo reale: ottimizzato per implementazioni in produzione
Raccomandazione:
- 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 implementazioni 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 è progettato per semplici frasi nominali (ad esempio, "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 un pacco 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 precedente miglior risultato, +16,9% di miglioramento) combinando la segmentazione di SAM 3 con le capacità di ragionamento di un MLLM.
Sul benchmark SA-Co/Gold con tripla annotazione umana:
- Limite inferiore umano: 74,2 CGF1 (annotatore più conservativo)
- Prestazioni di SAM 3: 65,0 CGF1
- Risultato: 88% del limite inferiore umano stimato
- Limite superiore umano: 81,4 CGF1 (annotatore più liberale)
SAM 3 raggiunge prestazioni solide avvicinandosi all'accuratezza umana nella segmentazione di concetti a vocabolario aperto, con il divario dovuto principalmente a concetti ambigui o soggettivi (ad esempio, "piccola finestra", "stanza accogliente").