Ultralytics YOLO27 :
Get Started

SAM 3 : segmenter tout avec des concepts#

Présentation 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 de segmentation de concepts guidée par invite (PCS) publié par Meta. En 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 exemples d’images 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 n’importe où dans des images ou des vidéos, conformément aux objectifs du vocabulaire ouvert en segmentation d’instances moderne.



Regarder : Comment utiliser Segment Anything 3 de Meta avec Ultralytics | Segmentation guidée par texte sur des images et des vidéos

SAM 3 est entièrement intégré au package ultralytics et prend nativement en charge la segmentation de concepts à partir d’invites textuelles, d’exemples d’images et du suivi vidéo. Le nouveau checkpoint SAM 3.1 est pris en charge pour la prédiction sur les images.

Présentation#

SAM 3 offre un gain de performances de 2× par rapport aux systèmes existants en segmentation de concepts guidée par invites, tout en préservant et en améliorant les capacités de SAM 2 en matière de segmentation visuelle interactive. Le modèle excelle en segmentation à vocabulaire ouvert, permettant aux utilisateurs de spécifier des concepts à l’aide de simples groupes nominaux (par exemple, « bus scolaire jaune », « chat tigré ») ou en fournissant des images d’exemple de l’objet cible. Ces capacités complètent les pipelines prêts pour la production qui s’appuient sur des workflows simplifiés de prédiction et de suivi.

Exemples de segmentation de SAM 3 à partir d’invites textuelles

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 dotés d’identifiants uniques pour toutes les instances d’objet correspondantes. Les invites de concept peuvent être :

  • Texte : de simples groupes nominaux comme « pomme rouge » ou « personne portant un chapeau », à l’instar de l’apprentissage zéro-shot
  • Exemples d’images : des boîtes englobantes autour d’objets d’exemple (positives ou négatives) pour une généralisation rapide
  • Combinées : du texte et des exemples d’images réunis pour un contrôle précis

Cette approche diffère des invites visuelles traditionnelles (points, boîtes, masques), qui segmentent uniquement une instance d’objet spécifique, comme l’a popularisé la famille SAM d’origine.

Principales mesures de performance#

MesureRésultat de SAM 3
AP des masques en zéro-shot sur LVIS47.0 (contre 38.5 précédemment, soit une amélioration de +22 %)
Benchmark SA-Co2× mieux que les systèmes existants
Vitesse d’inférence (GPU H200)30 ms par image avec plus de 100 objets détectés
Performances vidéoQuasi temps réel pour ~5 objets simultanés
Benchmark MOSEv2 VOS60.1 J&F (+25.5 % par rapport à SAM 2.1, +17 % par rapport à l’état de l’art précédent)
Affinage interactifAmélioration de +18.6 CGF1 après 3 invites par exemples
Écart par rapport aux performances humainesAtteint 88 % de la borne inférieure estimée sur SA-Co/Gold

Pour mieux comprendre les mesures et les compromis des modèles en production, consulte les analyses de l’évaluation des modèles et les mesures de performance YOLO.

SAM 3.1#

SAM 3.1, publié par Meta le 27 mars 2026, est un nouveau checkpoint de SAM 3 qui ajoute Object Multiplex, une approche à mémoire partagée pour le suivi vidéo multi-objets. Au lieu de traiter chaque objet suivi de manière indépendante, SAM 3.1 regroupe les objets dans des compartiments de capacité fixe et les traite conjointement. Selon Meta, cela permet d’obtenir une accélération de ~7× avec 128 objets sur un seul GPU H100. Le détecteur d’images et la tête interactive à invites ponctuelles conservent l’architecture de SAM 3.

BenchmarkMesureSAM 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 checkpoint 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 par boîtes, et SAM3SemanticPredictor pour les invites textuelles et par exemples. Le suivi vidéo Object Multiplex n’est pas encore pris en charge ; continue donc à 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 les 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 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’exemples pour les invites basées sur des images
    • Encodeur de fusion pour conditionner les caractéristiques de l’image à partir des invites
    • Nouvelle tête de présence qui dissocie la reconnaissance (« quoi ») de la localisation (« où »)
    • Tête de masque pour générer des 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 d’une image à l’autre
    • Désambiguïsation temporelle facilitée par des techniques comme le filtre de Kalman dans les configurations 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

Principales innovations#

  1. Découplage de la reconnaissance et de la localisation : la tête de présence prédit globalement la présence d’un concept, tandis que les requêtes de proposition se concentrent uniquement sur la localisation, ce qui évite les objectifs contradictoires.
  2. Prompts unifiés pour les concepts et les éléments visuels : prend en charge à la fois PCS (prompts conceptuels) et PVS (prompts visuels, comme les clics et les cadres de SAM 2) au sein d’un seul modèle.
  3. Affinement interactif par exemples : les utilisateurs peuvent ajouter des exemples d’images positifs ou négatifs pour affiner les résultats de manière itérative ; le modèle généralise alors à des objets similaires au lieu de corriger uniquement des instances individuelles.
  4. Désambiguïsation temporelle : utilise les scores de détection des masklets et un nouveau prompt périodique 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 d’instances et de suivi.

Jeu de données SA-Co#

SAM 3 est entraîné sur Segment Anything with Concepts (SA-Co), le jeu de données de segmentation de Meta le plus vaste et le plus diversifié à ce jour, 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 exemples 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 expressions 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, avec trois annotations par élément pour mesurer les limites des performances humaines
  • SA-Co/Silver : 10 domaines, avec 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 avec 3 domaines (SA-V, YT-Temporal-1B, SmartGlasses)

Innovations du moteur de données#

Le moteur de données évolutif de SAM 3, avec intervention humaine et du modèle dans la boucle, atteint un débit d’annotation 2× supérieur grâce aux éléments suivants :

  1. Annotateurs IA : des modèles basés sur Llama proposent des groupes nominaux variés, y compris des exemples 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 package 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 ta demande approuvée, 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 d’accès complet lors du chargement du modèle.

L’accès aux poids de SAM 3.1 (sam3.1_multiplex.pt) est également soumis à une autorisation 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 la version du package clip installée est incorrecte. Installe la version correcte du package clip 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 PCS (segmentation de concepts guidée par prompts) et PVS (segmentation visuelle guidée par prompts) au moyen de différentes interfaces de prédiction :

Tâches et modèles pris en charge#

Type de tâcheTypes de promptsSortie
Segmentation de concepts (PCS)Texte (groupes nominaux), exemples d’imagesToutes les instances correspondant au concept
Segmentation visuelle (PVS)Points, cadres, masquesInstance d’un seul objet (style SAM 2)
Affinage interactifAjoute ou supprime des exemples ou des clics de manière itérativeSegmentation affinée et plus précise

Exemples de segmentation de concepts#

Segmenter avec des prompts textuels#

Segmentation de concepts à partir de 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

# Initialiser le prédicteur avec la configuration
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "model": "sam3.pt",
    "quantize": 16,  # Utiliser FP16 pour accélérer l’inférence
    "save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Définir l’image une seule fois pour plusieurs requêtes
predictor.set_image("path/to/image.jpg")

# Effectuer une requête avec plusieurs prompts textuels
results = predictor(text=["person", "bus", "glasses"])

# Fonctionne avec des expressions descriptives
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Effectuer une requête avec un seul concept
results = predictor(text=["a person"])

Segmenter avec des exemples d’images#

Segmentation à partir d’exemples d’images

Utilise des cadres de délimitation comme prompts visuels pour trouver toutes les instances similaires. Cela nécessite également SAM3SemanticPredictor pour la mise en correspondance par concept.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialiser le prédicteur
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Définir l’image
predictor.set_image("path/to/image.jpg")

# Fournir des exemples de cadres de délimitation pour segmenter des objets similaires
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Plusieurs cadres de délimitation comme exemples d’un même concept visuel
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

Inférence fondée sur les caractéristiques pour gagner en efficacité#

Réutiliser les caractéristiques des images 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

# Initialiser les prédicteurs
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extraire les caractéristiques avec le premier prédicteur
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Configurer le deuxième prédicteur et réutiliser les caractéristiques
predictor2.setup_model()

# Effectuer l’inférence avec les caractéristiques partagées et un prompt textuel
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Effectuer l’inférence avec les caractéristiques partagées et un prompt par cadre de délimitation
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualiser les résultats
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 dans les vidéos#

Suivre des concepts dans une vidéo à l’aide de cadres de délimitation#

Suivi vidéo avec des prompts visuels

Détecte et suis les instances d’objets sur les différentes images d’une vidéo à l’aide de prompts par cadre de délimitation.

from ultralytics.models.sam import SAM3VideoPredictor

# Créer le prédicteur vidéo
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)

# Suivre les objets à l’aide de prompts par cadre de délimitation
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Traiter et afficher les résultats
for r in results:
    r.show()  # Afficher l’image avec les masques de segmentation

Suivre des concepts à l’aide de prompts textuels#

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

Suis toutes les instances des concepts spécifiés par le texte sur les différentes images d’une vidéo.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialiser le prédicteur vidéo sémantique
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "imgsz": 640,
    "model": "sam3.pt",
    "quantize": 16,
    "save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Suivre les concepts à l’aide de prompts textuels
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Traiter les résultats
for r in results:
    r.show()  # Afficher l’image avec les objets suivis

# Autre possibilité : effectuer le suivi avec des prompts par cadre de délimitation
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Étiquettes positives
    stream=True,
)

Prompts visuels (compatibilité avec SAM 2)#

SAM 3 assure une rétrocompatibilité 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 fonctionne exactement comme SAM 2 : elle segmente uniquement la zone précise indiquée par les prompts visuels (points, cadres ou masques).

from ultralytics import SAM

model = SAM("sam3.pt")

# Invite avec un seul point - segmente l’objet à un emplacement précis
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Plusieurs points - segmente un seul objet à l’aide de plusieurs indications de points
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Invite par boîte - segmente l’objet dans une boîte englobante
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
Invites visuelles ou segmentation par concept

L’utilisation de SAM("sam3.pt") avec des invites visuelles (points/boîtes/masques) segmente uniquement l’objet spécifique à cet emplacement, tout comme SAM 2. Pour segmenter toutes les instances d’un concept, utilise SAM3SemanticPredictor avec des invites textuelles ou des exemples, comme indiqué ci-dessus.

Bancs d’essai de performances#

Segmentation d’images#

SAM 3 obtient des résultats de pointe sur plusieurs bancs d’essai, notamment sur des jeux de données du monde réel comme LVIS et COCO pour la segmentation :

BenchmarkMesureSAM 3Meilleur résultat précédentAmélioration
LVIS (zéro-shot)AP des masques47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zéro-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 les options de jeux de données pour mener rapidement des expérimentations 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 meilleures méthodes précédentes sur des bancs d’essai vidéo tels que DAVIS 2017 et YouTube-VOS :

BenchmarkMesureSAM 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 à quelques exemples#

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

BenchmarkAP à 0 exempleAP à 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 par concept de SAM 3 avec des exemples converge beaucoup plus rapidement que le prompting visuel :

Invites ajoutéesScore 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 (palier)

Précision du comptage d’objets#

SAM 3 permet un comptage précis en segmentant toutes les instances, un besoin courant 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 des modèles SAM 2 et YOLO26. Pour la détection et la segmentation en temps réel à vocabulaire ouvert à partir des mêmes types d’invites, consulte YOLOE :

CapacitéSAM 3SAM 2YOLO26n-seg
Segmentation par concept✅ Toutes les instances à partir de texte/d’exemples❌ Non pris en charge❌ Non pris en charge
Segmentation visuelle✅ Instance unique (compatible avec SAM 2)✅ Instance unique✅ Toutes les instances
Capacité zéro-shot✅ Vocabulaire ouvert✅ Invites géométriques❌ Ensemble fermé
Affinage interactif✅ Exemples et clics✅ Clics uniquement❌ Non pris en charge
Suivi vidéo✅ Plusieurs objets avec identifiants✅ Plusieurs objets✅ Plusieurs objets
AP des masques LVIS (zéro-shot)47.0S. O.S. O.
MOSEv2 J&F60.147.9S. O.
Vitesse (GPU, ms/image)29218578.4
Taille du modèle3.45 GB162 MB (base)6.4 MB

Vitesse mesuré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 et pour trouver toutes les instances d’un concept à l’aide d’invites textuelles ou d’exemples
  • SAM 2 : Idéal pour la segmentation interactive d’un seul objet dans des images et des vidéos à l’aide d’invites géométriques
  • YOLO26 : Idéal pour une segmentation rapide en temps réel, avec inférence de bout en bout sans NMS en option, exportable dans de nombreux formats pour un déploiement sur GPU, CPU et appareils en périphérie

Comparaison de SAM et 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 nombre de paramètres et de vitesse d’inférence sur GPU :

ModèleTaille
(MB)
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 réseau de base YOLOv823.711.855.9
Ultralytics YOLOv8n-seg6.7 (515x plus petit)3.4 (139.1x de moins)17.4 (167x plus rapide)
Ultralytics YOLO11n-seg5.9 (585x plus petit)2.9 (163.1x de moins)12.6 (231x plus rapide)
Ultralytics YOLO26n-seg6.4 (539x plus petit)2.7 (175.2x de moins)8.4 (347x 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. SAM offre des capacités uniques de segmentation automatique, mais les modèles YOLO, en particulier YOLOv8n-seg, YOLO11n-seg et YOLO26n-seg, sont nettement plus petits, plus rapides et plus efficaces sur le plan des calculs.

Tests effectués sur une NVIDIA RTX PRO 6000 dotée de 96 Go de VRAM, avec torch==2.9.1 et ultralytics==8.4.19. Pour reproduire ce test :

Exemple
from ultralytics import ASSETS, SAM, YOLO, FastSAM

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

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

# Profiler les modèles YOLO
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS, nms=False)  # Tête sans NMS de YOLO26 ; sans effet pour 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 seuil de classification (CGF1)#

La métrique principale combinant localisation et classification :

CGF1 = 100 × pmF1 × IL_MCC

Où :

  • pmF1 (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 l’étalonnage, ce qui rend les modèles difficiles à utiliser en pratique. En évaluant uniquement les prédictions dont le niveau de confiance dépasse 0,5, les métriques de SAM 3 favorisent un bon étalonnage et reproduisent les conditions d’utilisation réelles dans les boucles interactives de prédiction et de suivi.

Principales études d’ablation 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 %), principalement en améliorant la capacité de reconnaissance (IL_MCC +6,5 %).

Effet des exemples négatifs difficiles#

Exemples négatifs difficiles par imageCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Les exemples négatifs difficiles sont essentiels à la reconnaissance à vocabulaire ouvert : ils améliorent IL_MCC de 54,5 % (0,44 → 0,68).

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

Sources de donnéesCGF1IL_MCCpmF1
Données externes uniquement30.90.4666.3
Données externes + synthétiques39.70.5770.6
Données 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 page sur la collecte et l’annotation des données.

Applications#

La capacité de segmentation de concepts de SAM 3 ouvre la voie à de nouveaux cas d’utilisation :

  • Modération de contenu : trouver toutes les occurrences de types de contenu spécifiques dans des bibliothèques multimédias
  • Commerce en ligne : segmenter tous les produits d’un type donné dans les images de catalogues, pour faciliter l’annotation automatique
  • Imagerie médicale : identifier toutes les occurrences de types de tissus ou d’anomalies spécifiques
  • Systèmes autonomes : suivre toutes les occurrences 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 effectuant certaines actions
  • Annotation de jeux de données : annoter rapidement toutes les occurrences de catégories d’objets rares
  • Recherche scientifique : quantifier et analyser tous les spécimens répondant à des critères spécifiques

Agent SAM 3 : raisonnement linguistique étendu#

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

Performances sur les tâches de raisonnement#

BenchmarkMesureAgent SAM 3 (Gemini 2.5 Pro)Meilleur résultat précédent
ReasonSeg (validation)gIoU76.065.0 (état de l’art)
ReasonSeg (test)gIoU73.861.3 (état de l’art)
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 un raisonnement :

  • « Des personnes assises qui ne tiennent pas de boîte cadeau dans leurs mains »
  • « Le chien le plus proche de la caméra qui ne porte pas de collier »
  • « Des objets rouges plus grands que la main de la personne »

Le MLLM propose à SAM 3 des requêtes simples sous forme de groupes nominaux, analyse les masques obtenus et recommence jusqu’à obtenir le résultat souhaité.

Limites#

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

  • Complexité des expressions : convient surtout aux groupes nominaux simples ; les expressions référentielles longues ou les raisonnements complexes peuvent nécessiter l’intégration d’un MLLM
  • Gestion de l’ambiguïté : certains concepts restent intrinsèquement ambigus (par ex. « petite fenêtre », « pièce accueillante »)
  • Besoins en calcul : plus volumineux et plus lent que les modèles de détection spécialisés comme YOLO
  • Étendue du vocabulaire : axé sur des concepts visuels élémentaires ; le raisonnement compositionnel est limité sans l’aide d’un MLLM
  • Concepts rares : les performances peuvent diminuer pour les concepts extrêmement rares ou très précis, 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é au package ultralytics, qui prend en charge le mode prédiction et le mode suivi.

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

  • Oui, pour la prédiction sur des 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 par boîtes, et SAM3SemanticPredictor pour les invites textuelles et par exemples. Le suivi vidéo Object Multiplex n’est pas encore pris en charge ; continue donc d’utiliser sam3.pt avec les prédicteurs vidéo. Consulte SAM 3.1 pour découvrir les benchmarks de Meta.

  • PCS est une nouvelle tâche introduite dans SAM 3 qui segmente toutes les occurrences d’un concept visuel dans une image ou une vidéo. Contrairement à la segmentation traditionnelle, qui cible une instance d’objet spécifique, PCS détecte 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 : encadre un chien → segmente tous les chiens de l’image
    • Combiné : « chat tigré » + boîte d’exemple → segmente tous les chats tigrés correspondant à l’exemple

    Consulte les informations générales connexes sur la détection d’objets et la segmentation d’instances.

  • FonctionnalitéSAM 2SAM 3
    TâcheUn objet par inviteToutes les instances d’un concept
    Types d’invitesPoints, cadres, masques+ Expressions textuelles, exemples d’images
    Capacité de détectionNécessite un détecteur externeDétecteur intégré à vocabulaire ouvert
    ReconnaissanceBasée uniquement sur la géométrieReconnaissance textuelle et visuelle
    ArchitectureSuivi uniquementDétecteur + suivi avec tête de présence
    Performances sans apprentissage préalableSans objet (nécessite des invites visuelles)47,0 AP sur LVIS, 2× meilleur sur SA-Co
    Affinage interactifClics uniquementClics + généralisation à partir d’exemples

    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 Segmentation universelle avec concepts (SA-Co) :

    Données d’entraînement :

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

    Données d’évaluation :

    • 214 K concepts uniques répartis sur 126 K images/vidéos
    • 50× plus de concepts que les benchmarks existants (par exemple, LVIS compte ~4 K concepts)
    • Triple annotation sur SA-Co/Gold pour mesurer les limites des performances humaines

    Cette ampleur et cette diversité considérables permettent à SAM 3 de généraliser sans apprentissage préalable de manière supérieure à travers des concepts à vocabulaire ouvert.

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

    Avantages de SAM 3 :

    • Vocabulaire ouvert : segmente n’importe quel concept à partir d’invites textuelles, sans entraînement
    • Sans apprentissage préalable : fonctionne immédiatement sur de nouvelles catégories
    • Interactif : l’affinage à partir d’exemples se généralise à des objets similaires
    • Basé sur les concepts : détecte automatiquement toutes les instances d’une catégorie
    • Précision : 47,0 AP en segmentation d’instances sans apprentissage préalable sur LVIS

    Avantages de YOLO26 :

    • Vitesse : inférence bien plus rapide, avec une tête de bout en bout sans NMS en option
    • Efficacité : modèles 539× plus petits (6,4 Mo contre 3,45 Go)
    • Adapté aux ressources limitées : fonctionne sur les appareils de périphérie et les appareils 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 à grande 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 expressions nominales simples (par exemple, « 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) :

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

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

    • « Les personnes assises qui ne tiennent pas de boîte cadeau »
    • « Le chien le plus proche de la caméra qui ne porte pas de collier »
    • « Des objets rouges plus grands que la main de la personne »

    SAM 3 Agent atteint 76,0 gIoU sur l’ensemble de validation de ReasonSeg (contre 65,0 pour le précédent meilleur résultat, 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 triple annotation humaine :

    • Limite basse humaine : 74,2 CGF1 (annotateur le plus conservateur)
    • Performances de SAM 3 : 65,0 CGF1
    • Résultat : 88 % de la limite basse humaine estimée
    • Limite haute humaine : 81,4 CGF1 (annotateur le plus permissif)

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

Commentaires