Ultralytics YOLO27 :

SAM 3 : segmenter n'importe quoi avec des concepts#

Vue d'ensemble de la segmentation de concepts guidée par invite avec SAM 3

SAM 3 (Modèle Segment Anything 3) est le modèle de fondation publié par Meta pour la segmentation de concepts guidée par invite (PCS). S'appuyant sur SAM 2, SAM 3 introduit une capacité fondamentalement nouvelle : détecter, segmenter et suivre toutes les instances d'un concept visuel spécifié par des invites textuelles, des images exemplaires ou les deux. Contrairement aux versions précédentes de SAM, qui segmentent un seul objet par invite, SAM 3 peut trouver et segmenter chaque occurrence d'un concept apparaissant n'importe où dans des images ou des vidéos, conformément aux objectifs de vocabulaire ouvert de la segmentation d'instances moderne.



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

SAM 3 est entièrement intégré dans le paquet ultralytics, offrant un support natif pour la segmentation de concepts avec des invites textuelles, des invites d'exemples d'images et le suivi vidéo. Le point de contrôle plus récent SAM 3.1 est pris en charge pour la prédiction d'images.

Présentation#

SAM 3 atteint un gain de performance de 2× par rapport aux systèmes existants en segmentation de concepts guidée par invite, tout en conservant et en améliorant les capacités de SAM 2 pour la segmentation visuelle interactive. Le modèle excelle en segmentation à vocabulaire ouvert, ce qui te permet de spécifier des concepts à l'aide de simples groupes nominaux (par exemple, « bus scolaire jaune », « chat tigré ») ou de fournir des images d'exemple de l'objet cible. Ces capacités complètent les pipelines prêts pour la production qui reposent sur des workflows rationalisés de prédiction et de suivi.

Exemples de segmentation avec invite textuelle de SAM 3

Qu'est-ce que la segmentation de concepts guidée par invite (PCS) ?#

La tâche PCS prend en entrée une invite de concept et renvoie des masques de segmentation avec des identités uniques pour toutes les instances d'objets correspondantes. Les invites de concept peuvent être :

  • Texte : des groupes nominaux simples comme « pomme rouge » ou « personne portant un chapeau », comme dans l'apprentissage zéro-shot
  • Images exemplaires : des BBox autour d'objets d'exemple (positifs ou négatifs) pour une généralisation rapide
  • Combinées : le texte et les images exemplaires ensemble pour un contrôle précis

Cela diffère des invites visuelles traditionnelles (points, boîtes, masques), qui segmentent une seule instance d'objet spécifique, comme l'a popularisé la famille SAM originale.

Principales métriques de performance#

MétriqueRésultat de SAM 3
AP de masque zéro-shot sur LVIS47,0 (contre 38,5 précédemment, amélioration de +22 %)
Benchmark SA-Co2× supérieur aux systèmes existants
Vitesse d'inférence (GPU H200)30 ms par image avec plus de 100 objets détectés
Performance vidéoQuasi temps réel pour ~5 objets simultanés
Benchmark VOS MOSEv260,1 J&F (+25,5 % par rapport à SAM 2.1, +17 % par rapport à l'état de l'art précédent)
Affinement interactifAmélioration de +18,6 CGF1 après 3 invites par images exemplaires
Écart par rapport aux performances humainesAtteint 88 % de la borne inférieure estimée sur SA-Co/Gold

Pour comprendre le contexte des métriques des modèles et des compromis en production, consulte les résultats de l'évaluation des modèles et les métriques de performance de YOLO.

SAM 3.1#

SAM 3.1, publié par Meta le 27 mars 2026, est un nouveau point de contrôle SAM 3 qui ajoute Object Multiplex, une approche de mémoire partagée pour le suivi vidéo de plusieurs objets. Au lieu de traiter chaque objet suivi indépendamment, SAM 3.1 regroupe les objets dans des compartiments à capacité fixe et les traite conjointement, ce qui, selon Meta, représente une accélération d'environ 7× à 128 objets sur un seul GPU H100. Le détecteur d'images et la tête interactive d'invite par point conservent l'architecture SAM 3.

BenchmarkMétriqueSAM 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 charge le point de contrôle SAM 3.1 (sam3.1_multiplex.pt) dans les prédicteurs d'images SAM 3 : SAM("sam3.1_multiplex.pt") pour les invites par points et boîtes, et SAM3SemanticPredictor pour les invites textuelles et d'exemples. Le suivi vidéo Object Multiplex n'est pas encore pris en charge, alors continue d'utiliser sam3.pt avec SAM3VideoPredictor et SAM3VideoSemanticPredictor.

Architecture#

SAM 3 se compose d'un détecteur et d'un suiveur qui partagent un backbone de vision Perception Encoder (PE). Cette conception découplée évite les conflits entre tâches tout en permettant la détection au niveau de l'image et le suivi au niveau de la vidéo, avec une interface compatible avec l'utilisation de Python et l'utilisation de la CLI d'Ultralytics.

Composants principaux#

  • Détecteur : architecture basée sur DETR pour la détection de concepts au niveau de l'image

    • Encodeur de texte pour les invites sous forme de groupes nominaux
    • Encodeur d'exemplaires pour les invites basées sur des images
    • Encodeur de fusion pour conditionner les caractéristiques de l'image sur les invites
    • Nouvelle tête de présence qui découple la reconnaissance (« quoi ») de la localisation (« où »)
    • Tête de masques pour générer les masques de segmentation d'instances
  • Suiveur : segmentation vidéo basée sur la mémoire, héritée de SAM 2

    • Encodeur d'invites, décodeur de masques, encodeur de mémoire
    • Banque mémoire pour stocker l'apparence des objets au fil des images
    • Désambiguïsation temporelle assistée par des techniques comme un filtre de Kalman dans les environnements multi-objets
  • Jeton de présence : un jeton global appris qui prédit si le concept cible est présent dans l'image ou l'image vidéo, améliorant la détection en séparant la reconnaissance de la localisation.

Schéma de l'architecture du modèle SAM 3

Innovations clés#

  1. Reconnaissance et localisation découplées : la tête de présence prédit globalement la présence du concept, tandis que les requêtes de proposition se concentrent uniquement sur la localisation, évitant ainsi les objectifs contradictoires.
  2. Invites de concepts et visuelles unifiées : prend en charge à la fois PCS (invites de concepts) et PVS (invites visuelles, comme les clics et les boîtes de SAM 2) dans un modèle unique.
  3. Affinement interactif par images exemplaires : tu peux ajouter des images exemplaires positives ou négatives pour affiner progressivement les résultats, le modèle se généralisant à des objets similaires plutôt que de simplement corriger des instances individuelles.
  4. Désambiguïsation temporelle : utilise les scores de détection des masklets et la relance périodique des invites pour gérer les occultations, les scènes encombrées et les échecs de suivi dans les vidéos, conformément aux bonnes pratiques de segmentation et de suivi d'instances.

Jeu de données SA-Co#

SAM 3 est entraîné sur Segment Anything avec concepts (SA-Co), le jeu de données de segmentation le plus vaste et le plus diversifié jamais créé par Meta, qui va au-delà des benchmarks courants comme COCO et LVIS.

Données d'entraînement#

Composant du jeu de donnéesDescriptionÉchelle
SA-Co/HQDonnées d'images de haute qualité annotées par des humains, issues d'un moteur de données en 4 phases5,2 M d'images, 4 M de groupes nominaux uniques
SA-Co/SYNJeu de données synthétique annoté par l'IA sans intervention humaine38 M de groupes nominaux, 1,4 Md de masques
SA-Co/EXT15 jeux de données externes enrichis avec des négatifs difficilesVarie selon la source
SA-Co/VIDEOAnnotations vidéo avec suivi temporel52,5 k vidéos, 24,8 k groupes nominaux uniques

Données de benchmark#

Le benchmark d'évaluation SA-Co contient 214 k phrases uniques réparties sur 126 k images et vidéos, soit plus de 50× plus de concepts que les benchmarks existants. Il comprend :

  • SA-Co/Gold : 7 domaines, annoté trois fois pour mesurer les limites des performances humaines
  • SA-Co/Silver : 10 domaines, une seule annotation humaine
  • SA-Co/Bronze et SA-Co/Bio : 9 jeux de données existants adaptés à la segmentation de concepts
  • SA-Co/VEval : benchmark vidéo couvrant 3 domaines (SA-V, YT-Temporal-1B, SmartGlasses)

Innovations du moteur de données#

Le moteur de données évolutif avec intervention humaine et intervention du modèle de SAM 3 atteint un débit d'annotation 2× supérieur grâce à :

  1. Annotateurs IA : les modèles basés sur Llama proposent des groupes nominaux variés, y compris des négatifs difficiles
  2. Vérificateurs IA : des LLM multimodaux affinés vérifient la qualité et l'exhaustivité des masques avec des performances proches de celles des humains
  3. Exploration active : concentre les efforts humains sur les cas d'échec difficiles où l'IA rencontre des difficultés
  4. Piloté par une ontologie : exploite une vaste ontologie fondée sur Wikidata pour couvrir les concepts

Installation#

Installe ou mets à niveau le paquet ultralytics :

pip install -U ultralytics
Poids du modèle SAM 3 requis

Contrairement aux autres modèles Ultralytics, les poids de SAM 3 (sam3.pt) ne sont pas téléchargés automatiquement. Tu dois d'abord demander l'accès aux poids du modèle sur la page du modèle SAM 3 sur Hugging Face, puis, une fois l'accès approuvé, télécharger sam3.pt depuis cette page. Place le fichier sam3.pt téléchargé dans ton répertoire de travail ou indique le chemin complet lors du chargement du modèle.

Les poids SAM 3.1 (sam3.1_multiplex.pt) sont soumis à des restrictions de la même manière sur la page du modèle SAM 3.1. Passe sam3.1_multiplex.pt partout où les exemples d'images ci-dessous utilisent sam3.pt.

`TypeError: 'SimpleTokenizer' object is not callable`

Si tu obtiens l'erreur ci-dessus pendant la prédiction, cela signifie que le package clip installé n'est pas le bon. Installe le package clip correct en exécutant la commande suivante :

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

Comment utiliser SAM 3 : polyvalence de la segmentation de concepts#

SAM 3 prend en charge les tâches de segmentation de concepts guidée par invite (PCS) et de segmentation visuelle guidée par invite (PVS) via différentes interfaces de prédicteur :

Tâches et modèles pris en charge#

Type de tâcheTypes d'invitesSortie
Segmentation de concepts (PCS)Texte (groupes nominaux), images exemplairesToutes les instances correspondant au concept
Segmentation visuelle (PVS)Points, boîtes, masquesInstance d'objet unique (style SAM 2)
Affinement interactifAjout ou suppression itérative d'images exemplaires ou de clicsSegmentation affinée avec une précision améliorée

Exemples de segmentation de concepts#

Segmenter avec des prompts textuels#

Segmentation de concepts basée sur le texte

Trouve et segmente toutes les instances d’un concept à l’aide d’une description textuelle. Les prompts textuels nécessitent l’interface 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"])

Segmenter avec des exemples d’images#

Segmentation basée sur des exemples d’images

Utilise des boîtes englobantes comme prompts visuels pour trouver toutes les instances similaires. Cela nécessite également SAM3SemanticPredictor pour la mise en correspondance basée sur les concepts.

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]])

Inférence basée sur les caractéristiques pour plus d’efficacité#

Réutiliser les caractéristiques d’image pour plusieurs requêtes

Extrais les caractéristiques de l’image une seule fois et réutilise-les pour plusieurs requêtes de segmentation afin d’améliorer l’efficacité.

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)

Segmentation de concepts vidéo#

Suivre des concepts dans une vidéo avec des boîtes englobantes#

Suivi vidéo avec des prompts visuels

Détecte et suis les instances d’objets entre les images vidéo à l’aide de prompts de boîtes englobantes.

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 masks

Suivre des concepts avec des prompts textuels#

Suivi vidéo avec des requêtes sémantiques

Suis toutes les instances des concepts spécifiés par le texte entre les images vidéo.

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,
)

Prompts visuels (compatibilité avec SAM 2)#

SAM 3 conserve une compatibilité descendante complète avec les prompts visuels de SAM 2 pour la segmentation d’un seul objet :

Prompts visuels de style SAM 2

L’interface de base SAM se comporte exactement comme SAM 2 et segmente uniquement la zone précise indiquée par les prompts visuels (points, boîtes ou masques).

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()
Prompts visuels ou segmentation de concepts

L’utilisation de SAM("sam3.pt") avec des prompts visuels (points/boîtes/masques) segmente uniquement l’objet précis situé à cet emplacement, comme SAM 2. Pour segmenter toutes les instances d’un concept, utilise SAM3SemanticPredictor avec des prompts textuels ou des exemples, comme indiqué ci-dessus.

Benchmarks de performance#

Segmentation d’images#

SAM 3 atteint des résultats de pointe sur plusieurs benchmarks, notamment sur des jeux de données réels comme LVIS et COCO pour la segmentation :

BenchmarkMétriqueSAM 3Meilleur résultat précédentAmélioration
LVIS (zero-shot)AP des masques47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zero-shot)AP des boîtes53.552.2 (T-Rex2)+2.5%
ADE-847 (segmentation sémantique)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (segmentation sémantique)mIoU65.144.2 (APE-D)+47.3%

Découvre des options de jeux de données pour expérimenter rapidement dans les jeux de données Ultralytics.

Performances de segmentation vidéo#

SAM 3 affiche des améliorations significatives par rapport à SAM 2 et aux précédents modèles de pointe sur des benchmarks vidéo tels que DAVIS 2017 et YouTube-VOS :

BenchmarkMétriqueSAM 3SAM 2.1 LAmélioration
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%

Adaptation few-shot#

SAM 3 excelle dans l’adaptation à de nouveaux domaines avec un minimum d’exemples, ce qui est pertinent pour les workflows d’IA centrée sur les données :

BenchmarkAP zero-shotAP avec 10 exemplesMeilleur résultat précédent (10 exemples)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

Efficacité du raffinement interactif#

Le prompting basé sur les concepts de SAM 3 avec des exemples converge beaucoup plus rapidement que le prompting visuel :

Prompts ajoutésScore CGF1Gain par rapport au texte seulGain par rapport à la référence PVS
Texte seul46.4référenceréférence
+1 exemple57.6+11.2+6.7
+2 exemples62.2+15.8+9.7
+3 exemples65.0+18.6+11.2
+4 exemples65.7+19.3+11,5 (plateau)

Précision du comptage des objets#

SAM 3 fournit un comptage précis en segmentant toutes les instances, une exigence courante en comptage d’objets :

BenchmarkPrécisionMAEpar rapport au meilleur MLLM
CountBench95.6%0.1192.4 % (Gemini 2.5)
PixMo-Count87.3%0.2288,8 % (Molmo-72B)

Comparaison entre SAM 3, SAM 2 et YOLO#

Nous comparons ici les capacités de SAM 3 à celles de SAM 2 et des modèles YOLO26. Pour la détection et la segmentation en temps réel avec un vocabulaire ouvert à partir des mêmes types de prompts, consulte YOLOE :

CapacitéSAM 3SAM 2YOLO26n-seg
Segmentation de concepts✅ Toutes les instances à partir du texte ou d’exemples❌ Non pris en charge❌ Non pris en charge
Segmentation visuelle✅ Instance unique (compatible avec SAM 2)✅ Instance unique✅ Toutes les instances
Capacité zero-shot✅ Vocabulaire ouvert✅ Prompts géométriques❌ Ensemble fermé
Affinement interactif✅ Exemples + clics✅ Clics uniquement❌ Non pris en charge
Suivi vidéo✅ Objets multiples avec identités✅ Objets multiples✅ Objets multiples
AP des masques LVIS (zero-shot)47.0N/AN/A
J&F de MOSEv260.147.9N/A
Vitesse (GPU, ms/im)29218578.4
Taille du modèle3.45 GB162 Mo (base)6,4 Mo

Vitesse évaluée sur NVIDIA RTX PRO 6000 avec torch==2.9.1 et ultralytics==8.4.19.

Points clés :

  • SAM 3 : idéal pour la segmentation de concepts à vocabulaire ouvert, en trouvant toutes les instances d’un concept à l’aide de requêtes textuelles ou d’exemples
  • SAM 2 : idéal pour la segmentation interactive d’un objet unique dans les images et les vidéos à l’aide de requêtes géométriques
  • YOLO26 : idéal pour une segmentation haute vitesse en temps réel avec inférence de bout en bout optionnelle sans NMS, exportable vers de nombreux formats pour le déploiement sur GPU, CPU et appareils de périphérie

Comparaison de SAM avec YOLO#

Comparaison de SAM 3, SAM 2, SAM, MobileSAM et FastSAM avec les modèles de segmentation YOLO d’Ultralytics (YOLOv8, YOLO11, YOLO26) en termes de taille, de paramètres et de vitesse d’inférence sur GPU :

ModèleTaille
(Mo)
Paramètres
(M)
Vitesse (GPU)
(ms/im)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
FastSAM-s avec le backbone de YOLOv823.711.855.9
Ultralytics YOLOv8n-seg6,7 (515 fois plus petit)3,4 (139,1 fois de moins)17,4 (167 fois plus rapide)
Ultralytics YOLO11n-seg5,9 (585 fois plus petit)2,9 (163,1 fois de moins)12,6 (231 fois plus rapide)
Ultralytics YOLO26n-seg6,4 (539 fois plus petit)2,7 (175,2 fois moins)8,4 (347 fois plus rapide)

Cette comparaison met en évidence les différences considérables de taille et de vitesse entre les variantes de SAM et les modèles de segmentation YOLO. Bien que SAM offre des capacités uniques de segmentation automatique, les modèles YOLO, notamment YOLOv8n-seg, YOLO11n-seg et YOLO26n-seg, sont nettement plus petits, plus rapides et plus efficaces sur le plan des calculs.

Tests exécutés sur une NVIDIA RTX PRO 6000 avec 96 Go de VRAM à l’aide de torch==2.9.1 et ultralytics==8.4.19. Pour reproduire ce test :

Exemple
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, nms=False)  # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11

Métriques d’évaluation#

SAM 3 introduit de nouvelles métriques conçues pour la tâche PCS, qui complètent des mesures connues comme le score F1, la précision et le rappel.

F1 avec classification comme filtre (CGF1)#

Métrique principale combinant la localisation et la classification :

CGF1 = 100 × pmF1 × IL_MCC

Où :

  • pmF1 (score F1 macro positif) : mesure la qualité de la localisation sur les exemples positifs
  • IL_MCC (coefficient de corrélation de Matthews au niveau de l’image) : mesure la précision de la classification binaire (« le concept est-il présent ? »)

Pourquoi ces métriques ?#

Les métriques AP traditionnelles ne tiennent pas compte de la calibration, ce qui rend les modèles difficiles à utiliser en pratique. En évaluant uniquement les prédictions dont la confiance est supérieure à 0,5, les métriques de SAM 3 imposent une bonne calibration et reproduisent les modes d’utilisation réels dans les boucles interactives de prédiction et de suivi.

Principales ablations et conclusions#

Impact de la tête de présence#

La tête de présence dissocie la reconnaissance de la localisation, ce qui apporte des améliorations significatives :

ConfigurationCGF1IL_MCCpmF1
Sans présence57.60.7774.7
Avec présence63.30.8277.1

La tête de présence apporte un gain de +5,7 en CGF1 (+9,9 %), améliorant principalement la capacité de reconnaissance (IL_MCC +6,5 %).

Effet des négatifs difficiles#

Images à négatifs difficilesCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Les négatifs difficiles sont essentiels pour la reconnaissance à vocabulaire ouvert et améliorent l’IL_MCC de 54,5 % (0,44 → 0,68).

Mise à l’échelle des données d’entraînement#

Sources de donnéesCGF1IL_MCCpmF1
Externes uniquement30.90.4666.3
Externes + synthétiques39.70.5770.6
Externes + haute qualité51.80.7173.2
Les trois54.30.7473.5

Les annotations humaines de haute qualité apportent des gains importants par rapport aux données synthétiques ou externes utilisées seules. Pour en savoir plus sur les pratiques de qualité des données, consulte la collecte et l’annotation des données.

Applications#

La capacité de segmentation de concepts de SAM 3 permet de nouveaux cas d’utilisation :

  • Modération de contenu : trouver toutes les instances de types de contenu spécifiques dans des bibliothèques multimédias
  • E-commerce : segmenter tous les produits d’un certain type dans des images de catalogue, avec prise en charge de l’auto-annotation
  • Imagerie médicale : identifier toutes les occurrences de types de tissus ou d’anomalies spécifiques
  • Systèmes autonomes : suivre toutes les instances de panneaux de signalisation, de piétons ou de véhicules par catégorie
  • Analyse vidéo : compter et suivre toutes les personnes portant des vêtements spécifiques ou exécutant certaines actions
  • Annotation de jeux de données : annoter rapidement toutes les instances de catégories d’objets rares
  • Recherche scientifique : quantifier et analyser tous les spécimens correspondant à des critères spécifiques

Agent SAM 3 : raisonnement linguistique étendu#

SAM 3 peut être combiné à de grands modèles de langage multimodaux (MLLM) pour traiter des requêtes complexes nécessitant du raisonnement, dans un esprit similaire à celui de systèmes à vocabulaire ouvert comme OWLv2 et T-Rex.

Performances sur les tâches de raisonnement#

BenchmarkMétriqueAgent SAM 3 (Gemini 2.5 Pro)Meilleur résultat précédent
ReasonSeg (validation)gIoU76.065,0 (SoTA)
ReasonSeg (test)gIoU73.861,3 (SoTA)
OmniLabel (validation)AP46.736,5 (REAL)
RefCOCO+Acc91.289,3 (LISA)

Exemples de requêtes complexes#

L’agent SAM 3 peut traiter des requêtes nécessitant du raisonnement :

  • « Personnes assises, mais ne tenant pas de boîte-cadeau dans leurs mains »
  • « Le chien le plus proche de la caméra qui ne porte pas de collier »
  • « Objets rouges plus grands que la main de la personne »

Le MLLM propose à SAM 3 des requêtes sous forme de groupes nominaux simples, analyse les masques renvoyés et itère jusqu’à obtenir un résultat satisfaisant.

Limites#

Bien que SAM 3 représente une avancée majeure, il présente certaines limitations :

  • Complexité des formulations : convient surtout aux groupes nominaux simples ; les expressions référentielles longues ou le raisonnement complexe peuvent nécessiter une intégration avec un MLLM
  • Gestion de l’ambiguïté : certains concepts restent intrinsèquement ambigus (par ex. « petite fenêtre », « pièce chaleureuse »)
  • Exigences de calcul : plus volumineux et plus lent que les modèles de détection spécialisés comme YOLO
  • Étendue du vocabulaire : se concentre sur des concepts visuels atomiques ; le raisonnement compositionnel est limité sans l’aide d’un MLLM
  • Concepts rares : les performances peuvent se dégrader sur des concepts extrêmement rares ou très fins, peu représentés dans les données d’entraînement

Citation#

Citation
@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}
}

FAQ#

  • SAM 3 a été publié par Meta le 19 novembre 2025 et est entièrement intégré dans le paquet ultralytics, avec un support pour le mode prédiction et le mode suivi.

  • Oui ! SAM 3 est entièrement intégré au package Python d'Ultralytics, incluant la segmentation de concepts, les invites visuelles de style SAM 2 et le suivi vidéo multi-objet. SAM 3 et SAM 3.1 alimentent également la fonctionnalité de smart annotation sur Ultralytics Platform, où SAM 3.1 est le modèle par défaut et où tu peux annoter des images en quelques clics seulement.

  • Oui, pour la prédiction d'images. Charge sam3.1_multiplex.pt partout où les exemples d'images de cette page utilisent sam3.pt : SAM("sam3.1_multiplex.pt") pour les invites par points et boîtes, et SAM3SemanticPredictor pour les invites textuelles et par exemples. Le suivi vidéo Object Multiplex n'est pas encore pris en charge, alors continue d'utiliser sam3.pt avec les prédicteurs vidéo. Consulte SAM 3.1 pour les benchmarks de Meta.

  • PCS est une nouvelle tâche introduite dans SAM 3 qui segmente toutes les instances d’un concept visuel dans une image ou une vidéo. Contrairement à la segmentation traditionnelle, qui cible une instance d’objet spécifique, PCS trouve chaque occurrence d’une catégorie. Par exemple :

    • Invite textuelle : « autobus scolaire jaune » → segmente tous les autobus scolaires jaunes de la scène
    • Exemple d’image : cadre autour d’un chien → segmente tous les chiens de l’image
    • Combiné : « chat tigré » + cadre d’exemple → segmente tous les chats tigrés correspondant à l’exemple

    Consulte le contexte associé sur la détection d’objets et la segmentation d’instances.

  • FonctionnalitéSAM 2SAM 3
    TâcheUn seul objet par inviteToutes les instances d’un concept
    Types d’invitesPoints, boîtes, masques+ Formulations textuelles, exemples d’images
    Capacité de détectionNécessite un détecteur externeDétecteur à vocabulaire ouvert intégré
    ReconnaissanceUniquement basée sur la géométrieReconnaissance textuelle et visuelle
    ArchitectureSuiveur uniquementDétecteur + suiveur avec tête de présence
    Performances zero-shotN/A (nécessite des invites visuelles)47.0 AP sur LVIS, 2× meilleures sur SA-Co
    Affinement interactifClics uniquementClics + généralisation à partir d’un exemple

    SAM 3 conserve la compatibilité ascendante avec les invites visuelles de SAM 2, tout en ajoutant des capacités basées sur les concepts.

  • SAM 3 est entraîné sur le jeu de données Segmenter n’importe quoi avec des concepts (SA-Co) :

    Données d’entraînement :

    • 5,2 M d’images avec 4 M de groupes nominaux uniques (SA-Co/HQ) - annotations humaines de haute qualité
    • 52,5 k vidéos avec 24,8 k groupes nominaux uniques (SA-Co/VIDEO)
    • 1,4 Md de masques synthétiques couvrant 38 M de groupes nominaux (SA-Co/SYN)
    • 15 jeux de données externes enrichis avec des négatifs difficiles (SA-Co/EXT)

    Données d’évaluation :

    • 214 k concepts uniques sur 126 k images/vidéos
    • 50× plus de concepts que les benchmarks existants (par ex. LVIS compte ~4 k concepts)
    • Annotation triple sur SA-Co/Gold pour mesurer les limites des performances humaines

    Cette échelle et cette diversité considérables permettent à SAM 3 d’offrir une généralisation zero-shot supérieure sur les concepts à vocabulaire ouvert.

  • SAM 3 et YOLO26 répondent à des cas d’utilisation différents :

    Avantages de SAM 3 :

    • Vocabulaire ouvert : segmente n’importe quel concept à l’aide d’invites textuelles, sans entraînement
    • Zero-shot : fonctionne immédiatement sur de nouvelles catégories
    • Interactif : le raffinement basé sur un exemple se généralise à des objets similaires
    • Basé sur les concepts : trouve automatiquement toutes les instances d’une catégorie
    • Précision : 47.0 AP en segmentation d’instances zero-shot sur LVIS

    Avantages de YOLO26 :

    • Vitesse : une inférence des ordres de grandeur plus rapide, dotée d'une tête de bout en bout optionnelle sans NMS
    • Efficacité : modèles 539× plus petits (6,4 Mo contre 3,45 Go)
    • Adapté aux ressources limitées : fonctionne sur les appareils edge et mobiles
    • Temps réel : optimisé pour les déploiements en production

    Recommandation :

    • Utilise SAM 3 pour une segmentation flexible à vocabulaire ouvert lorsque tu dois trouver toutes les instances de concepts décrits par du texte ou des exemples
    • Utilise YOLO26 pour les déploiements en production à haute vitesse lorsque les catégories sont connues à l’avance
    • Utilise SAM 2 pour la segmentation interactive d’un seul objet avec des invites géométriques
  • SAM 3 est conçu pour les groupes nominaux simples (par ex. « pomme rouge », « personne portant un chapeau »). Pour les requêtes complexes nécessitant du raisonnement, combine SAM 3 avec un MLLM sous la forme de SAM 3 Agent :

    Requêtes simples (SAM 3 natif) :

    • « autobus scolaire jaune »
    • « chat tigré »
    • « personne portant un chapeau rouge »

    Requêtes complexes (SAM 3 Agent avec MLLM) :

    • « Personnes assises, mais ne tenant pas de boîte-cadeau »
    • « Le chien le plus proche de la caméra, sans collier »
    • « Objets rouges plus grands que la main de la personne »

    SAM 3 Agent atteint 76.0 gIoU sur la validation de ReasonSeg (contre 65.0 pour le meilleur résultat précédent, soit une amélioration de +16,9 %) en combinant la segmentation de SAM 3 avec les capacités de raisonnement d’un MLLM.

  • Sur le benchmark SA-Co/Gold avec une annotation humaine triple :

    • Limite inférieure humaine : 74.2 CGF1 (annotateur le plus conservateur)
    • Performances de SAM 3 : 65.0 CGF1
    • Résultat : 88 % de la limite inférieure humaine estimée
    • Limite supérieure humaine : 81.4 CGF1 (annotateur le plus libéral)

    SAM 3 affiche de solides performances, proches de la précision humaine en segmentation de concepts à vocabulaire ouvert, l’écart se concentrant principalement sur les concepts ambigus ou subjectifs (par ex. « petite fenêtre », « pièce chaleureuse »).

Commentaires