SAM 3 : Segmentation de tout avec des concepts

Maintenant disponible dans Ultralytics

SAM 3 est entièrement intégré au package Ultralytics depuis la version 8.3.237 (PR #22897). Installe ou mets à jour avec pip install -U ultralytics pour accéder à toutes les fonctionnalités de SAM 3, y compris la segmentation de concepts basée sur le texte, les exemples d'images et le suivi vidéo.

Aperçu de la segmentation de concepts par prompt SAM 3

SAM 3 (Segment Anything Model 3) est le modèle de fondation publié par Meta pour la Segmentation de Concepts par Prompt (PCS). 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 prompts textuels, des exemples d'images, ou les deux. Contrairement aux versions précédentes de SAM qui segmentaient des objets individuels par prompt, SAM 3 peut trouver et segmenter chaque occurrence d'un concept apparaissant n'importe où dans des images ou des vidéos, s'alignant sur les 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 désormais entièrement intégré au package ultralytics, offrant un support natif pour la segmentation de concepts avec des prompts textuels, des prompts d'exemples d'images et des capacités de suivi vidéo.

Présentation

SAM 3 obtient un gain de performance de 2× par rapport aux systèmes existants en segmentation de concepts par prompt tout en conservant et améliorant les capacités de SAM 2 pour la segmentation visuelle interactive. Le modèle excelle dans la segmentation à vocabulaire ouvert, permettant aux utilisateurs de spécifier des concepts en utilisant de simples groupes nominaux (par ex. "bus scolaire jaune", "chat rayé") 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 de prédiction et de suivi simplifiés.

Exemples de segmentation par prompt textuel SAM 3

Qu'est-ce que la Segmentation de Concepts par Prompt (PCS) ?

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

  • Texte : De simples groupes nominaux comme "pomme rouge" ou "personne portant un chapeau", similaire à l'apprentissage zéro-shot
  • Exemples d'images : Boîtes englobantes autour d'objets exemples (positifs ou négatifs) pour une généralisation rapide
  • Combiné : À la fois du texte et des exemples d'images pour un contrôle précis

Cela diffère des prompts visuels traditionnels (points, boîtes, masques) qui segmentent uniquement une instance d'objet spécifique, comme popularisé par la famille SAM originale.

Indicateurs de performance clés

IndicateurPerformance SAM 3
mAP de masque Zero-Shot LVIS47,0 (contre 38,5 précédemment, +22 % d'amélioration)
Benchmark SA-Co2× meilleur que les systèmes existants
Vitesse d'inférence (GPU H200)30 ms par image avec plus de 100 objets détectés
Performance vidéoPresque en temps réel pour ~5 objets simultanés
Benchmark MOSEv2 VOS60,1 J&F (+25,5 % par rapport à SAM 2.1, +17 % par rapport au SOTA précédent)
Raffinement interactifAmélioration de +18,6 CGF1 après 3 prompts d'exemples
Écart de performance humaineAtteint 88 % de la borne inférieure estimée sur SA-Co/Gold

Pour le contexte sur les indicateurs de modèle et les compromis en production, consulte les idées sur l'évaluation des modèles et les indicateurs de performance YOLO.

Architecture

SAM 3 se compose d'un détecteur et d'un suiveur qui partagent une dorsale de vision Perception Encoder (PE). Cette conception découplée évite les conflits de tâches tout en permettant à la fois la détection au niveau de l'image et le suivi au niveau de la vidéo, avec une interface compatible avec l'utilisation Python et l'utilisation 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 prompts de groupes nominaux
    • Encodeur d'exemples pour les prompts basés sur des images
    • Encodeur de fusion pour conditionner les caractéristiques de l'image sur les prompts
    • Nouvelle tête de présence qui découple 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 de prompt, décodeur de masque, encodeur de mémoire
    • Banque de mémoire pour stocker l'apparence de l'objet à travers les images
    • Désambiguïsation temporelle aidée par des techniques comme un filtre de Kalman dans des configurations multi-objets
  • Token de présence : Un token global appris qui prédit si le concept cible est présent dans l'image/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 la présence du concept globalement, tandis que les requêtes de proposition se concentrent uniquement sur la localisation, évitant les objectifs contradictoires.
  2. Prompts de concept et visuels unifiés : Supporte à la fois le PCS (prompts de concept) et le PVS (prompts visuels comme les clics/boîtes de SAM 2) dans un seul modèle.
  3. Raffinement d'exemples interactif : 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 se généralisant à des objets similaires plutôt qu'à la simple correction d'instances individuelles.
  4. Désambiguïsation temporelle : Utilise des scores de détection de masques et un re-prompting périodique pour gérer les occlusions, les scènes encombrées et les échecs de suivi dans la vidéo, conformément aux meilleures pratiques de segmentation et suivi d'instances.

Dataset SA-Co

SAM 3 est entraîné sur Segment Anything with Concepts (SA-Co), le dataset de segmentation le plus vaste et le plus diversifié de Meta à ce jour, s'étendant au-delà des benchmarks courants comme COCO et LVIS.

Données d'entraînement

Composant du datasetDescriptionÉchelle
SA-Co/HQDonnées d'images de haute qualité annotées par des humains provenant d'un moteur de données en 4 phases5,2 M d'images, 4 M de groupes nominaux uniques
SA-Co/SYNDataset synthétique étiqueté par IA sans intervention humaine38 M de groupes nominaux, 1,4 Md de masques
SA-Co/EXT15 datasets 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 phrases uniques à travers 126 K images et vidéos, fournissant plus de 50× plus de concepts que les benchmarks existants. Il comprend :

  • SA-Co/Gold : 7 domaines, triple annotation pour mesurer les bornes de performance humaine
  • SA-Co/Silver : 10 domaines, annotation humaine unique
  • SA-Co/Bronze et SA-Co/Bio : 9 datasets existants adaptés pour 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 avec humain et modèle dans la boucle de SAM 3 atteint un débit d'annotation 2× grâce à :

  1. Annotateurs IA : Les modèles basés sur Llama proposent divers groupes nominaux incluant des exemples négatifs difficiles
  2. Vérificateurs IA : Des LLM multimodaux affinés vérifient la qualité et l'exhaustivité des masques à une performance proche de celle de l'humain
  3. Exploitation active : Concentre l'effort humain sur les cas d'échec difficiles où l'IA peine
  4. Axé sur l'ontologie : Tire parti d'une grande ontologie fondée sur Wikidata pour la couverture des concepts

Installation

SAM 3 est disponible dans Ultralytics version 8.3.237 et ultérieure. Installe ou mets à jour avec :

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 approuvé, télécharger sam3.pt depuis cette page. Place le fichier sam3.pt téléchargé dans ton répertoire de travail ou spécifie le chemin complet lors du chargement du modèle.

`TypeError: 'SimpleTokenizer' object is not callable`

Si tu obtiens l'erreur ci-dessus pendant la prédiction, cela signifie que tu as installé le mauvais package clip. Installe le bon package clip en exécutant ce qui suit :

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

Comment utiliser SAM 3 : Polyvalence dans la segmentation de concepts

SAM 3 prend en charge à la fois les tâches de Segmentation de Concepts par Prompt (PCS) et de Segmentation Visuelle par Prompt (PVS) via différentes interfaces de prédicteur :

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, boîtes, masquesInstance d'objet unique (style SAM 2)
Raffinement interactifAjouter/supprimer des exemples ou des clics de manière itérativeSegmentation affinée avec une précision améliorée

Exemples de segmentation de concepts

Segmenter avec des invites textuelles

Segmentation de concepts basée sur le texte

Trouve et segmente toutes les instances d'un concept à l'aide d'une description textuelle. Les invites textuelles nécessitent l'interface SAM3SemanticPredictor.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=True,
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")

# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])

# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Query with a single concept
results = predictor(text=["a person"])

Segmenter avec des exemples d'images

Segmentation basée sur des exemples d'images

Utilise des boîtes englobantes comme invites visuelles 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 = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True, save=True)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image
predictor.set_image("path/to/image.jpg")

# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Multiple bounding boxes for different concepts
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

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

Réutilisation des caractéristiques d'image pour des requêtes multiples

Extrais les caractéristiques d'une 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 = dict(conf=0.50, task="segment", mode="predict", model="sam3.pt", verbose=False)
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Setup second predictor and reuse features
predictor2.setup_model()

# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualize results
if masks is not None:
    masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
    im = cv2.imread(source)
    annotator = Annotator(im, pil=False)
    annotator.masks(masks, [colors(x, True) for x in range(len(masks))])

    cv2.imshow("result", annotator.result())
    cv2.waitKey(0)

Segmentation de concepts vidéo

Suivre des concepts à travers une vidéo avec des boîtes englobantes

Suivi vidéo avec des invites visuelles

Détecte et suis des instances d'objets à travers les images vidéo à l'aide d'invites sous forme de boîtes englobantes.

from ultralytics.models.sam import SAM3VideoPredictor

# Create video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True)
predictor = SAM3VideoPredictor(overrides=overrides)

# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Process and display results
for r in results:
    r.show()  # Display frame with segmentation masks

Suivre des concepts avec des invites textuelles

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

Suis toutes les instances de concepts spécifiés par du texte à travers les images vidéo.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialize semantic video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=640, model="sam3.pt", half=True, save=True)
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Process results
for r in results:
    r.show()  # Display frame with tracked objects

# Alternative: Track with bounding box prompts
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Positive labels
    stream=True,
)

Invites visuelles (Compatibilité SAM 2)

SAM 3 maintient une compatibilité ascendante totale avec les invites visuelles de SAM 2 pour la segmentation d'objet unique :

Invites visuelles de style SAM 2

L'interface SAM de base se comporte exactement comme SAM 2, segmentant uniquement la zone spécifique indiquée par des invites visuelles (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()
Invites visuelles vs segmentation de concepts

Utiliser SAM("sam3.pt") avec des invites visuelles (points/boîtes/masques) segmentera 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.

Benchmarks de performance

Segmentation d'image

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

BenchmarkIndicateurSAM 3Meilleur précédentAmélioration
LVIS (zero-shot)Mask AP47.038,5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (zero-shot)Box AP53.552.2 (T-Rex2)+2.5%
ADE-847 (seg sémantique)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (seg sémantique)mIoU65.144.2 (APE-D)+47.3%

Explore les options de jeux de données pour une expérimentation rapide dans Ultralytics datasets.

Performance de segmentation vidéo

SAM 3 montre des améliorations significatives par rapport à SAM 2 et aux meilleurs résultats précédents sur des benchmarks vidéo tels que DAVIS 2017 et YouTube-VOS :

BenchmarkIndicateurSAM 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, pertinent pour les flux de travail IA centrée sur les données :

Benchmark0-shot AP10-shot APMeilleur précédent (10-shot)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

Efficacité du raffinement interactif

L'invitation basée sur les concepts de SAM 3 avec des exemples converge beaucoup plus rapidement que l'invitation visuelle :

Invites ajoutéesScore CGF1Gain vs texte seulGain vs base de référence PVS
Texte seul46,4référenceréférence
+1 exemplaire57.6+11,2+6,7
+2 exemplaires62,2+15,8+9,7
+3 exemplaires65.0+18,6+11,2
+4 exemplaires65.7+19,3+11,5 (plateau)

Précision du comptage d'objets

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

BenchmarkPrécisionMAEvs Meilleur MLLM
CountBench95,6 %0,1192,4 % (Gemini 2.5)
PixMo-Count87,3 %0,2288,8 % (Molmo-72B)

Comparaison SAM 3 vs SAM 2 vs YOLO

Nous comparons ici les capacités de SAM 3 avec les modèles SAM 2 et YOLO26 :

CapacitéSAM 3SAM 2YOLO26n-seg
Segmentation de concepts✅ Toutes les instances à partir de texte/exemplaires❌ Non pris en charge❌ Non pris en charge
Segmentation visuelle✅ Instance unique (compatible SAM 2)✅ Instance unique✅ Toutes les instances
Capacité Zero-shot✅ Vocabulaire ouvert✅ Prompts géométriques❌ Ensemble fermé
Raffinement interactif✅ Exemplaires + clics✅ Clics uniquement❌ Non pris en charge
Suivi vidéo✅ Multi-objets avec identités✅ Multi-objets✅ Multi-objets
LVIS Mask AP (zero-shot)47.0N/AN/A
MOSEv2 J&F60.147.9N/A
Vitesse (GPU, ms/im)29218578,4
Taille du modèle3,45 Go162 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 : Le meilleur pour la segmentation de concepts à vocabulaire ouvert, trouvant toutes les instances d'un concept avec des prompts textuels ou par exemplaires
  • SAM 2 : Le meilleur pour la segmentation interactive d'objets uniques dans des images et des vidéos avec des prompts géométriques
  • YOLO26 : Le meilleur pour une segmentation haute vitesse en temps réel avec une inférence de bout en bout sans NMS, exportable vers de nombreux formats pour un déploiement sur GPU, CPU et appareils périphériques

Comparaison SAM vs YOLO

Comparaison de SAM 3, SAM 2, SAM, MobileSAM et FastSAM avec les modèles de segmentation Ultralytics YOLO (YOLOv8, YOLO11, YOLO26) en termes de taille, paramètres et vitesse d'inférence 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 backbone YOLOv823,711.855,9
Ultralytics YOLOv8n-seg6,7 (515x plus petit)3,4 (139,1x moins)17,4 (167x plus rapide)
Ultralytics YOLO11n-seg5,9 (585x plus petit)2,9 (163,1x moins)12,6 (231x plus rapide)
Ultralytics YOLO26n-seg6,4 (539x plus petit)2,7 (175,2x moins)8,4 (347x plus rapide)

Cette comparaison démontre les différences substantielles de tailles et de vitesses de modèles entre les variantes de SAM et les modèles de segmentation YOLO. Bien que SAM offre des capacités de segmentation automatique uniques, les modèles YOLO, en particulier YOLOv8n-seg, YOLO11n-seg et YOLO26n-seg, sont significativement plus petits, plus rapides et plus efficaces sur le plan computationnel.

Tests effectués sur une NVIDIA RTX PRO 6000 avec 96 Go de VRAM en utilisant 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)

Métriques d'évaluation

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

F1 classée par classification (CGF1)

La métrique principale combinant localisation et classification :

CGF1 = 100 × pmF1 × IL_MCC

Où :

  • pmF1 (F1 Macro Positive) : Mesure la qualité de la localisation sur des 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 du calibrage, ce qui rend les modèles difficiles à utiliser en pratique. En évaluant uniquement les prédictions au-dessus de 0,5 de confiance, les métriques de SAM 3 imposent un bon calibrage et imitent les modèles d'utilisation réels dans les boucles interactives de prédiction et de suivi.

Ablations clés et insights

Impact de la tête de présence

La tête de présence découple la reconnaissance de la localisation, offrant des améliorations significatives :

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

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

Effet des exemples négatifs difficiles (Hard Negatives)

Exemples négatifs difficiles/ImageCGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

Les exemples négatifs difficiles sont cruciaux pour la reconnaissance à vocabulaire ouvert, améliorant l'IL_MCC de 54,5% (0,44 → 0,68).

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

Sources de donnéesCGF1IL_MCCpmF1
Externe seulement30.90.4666.3
Externe + Synthétique39.70.5770.6
Externe + HQ51.80.7173.2
Les trois54.30.7473.5

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

Applications

La capacité de segmentation de concepts de SAM 3 permet de nouveaux cas d'usage :

  • Modération de contenu : Trouve toutes les instances de types de contenu spécifiques dans les bibliothèques multimédias
  • E-commerce : Segmente tous les produits d'un certain type dans les images de catalogue, en prenant en charge l'auto-annotation
  • Imagerie médicale : Identifie toutes les occurrences de types de tissus ou d'anomalies spécifiques
  • Systèmes autonomes : Suis toutes les instances de panneaux de signalisation, piétons ou véhicules par catégorie
  • Analyse vidéo : Compte et suis toutes les personnes portant des vêtements spécifiques ou effectuant des actions
  • Annotation de jeu de données : Annote rapidement toutes les instances de catégories d'objets rares
  • Recherche scientifique : Quantifie et analyse tous les spécimens correspondant à des critères spécifiques

Agent SAM 3 : Raisonnement linguistique étendu

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

Performances sur les tâches de raisonnement

BenchmarkIndicateurAgent SAM 3 (Gemini 2.5 Pro)Meilleur 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 gérer des requêtes nécessitant un 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 des requêtes de phrases nominales simples à SAM 3, analyse les masques retournés et itère jusqu'à satisfaction.

Limitations

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

  • Complexité des phrases : Mieux adapté aux phrases nominales simples ; les expressions référentielles longues ou le raisonnement complexe peuvent nécessiter une intégration MLLM
  • Gestion de l'ambiguïté : Certains concepts restent intrinsèquement ambigus (par ex., "petite fenêtre", "chambre confortable")
  • Exigences de calcul : Plus grand et plus lent que les modèles de détection spécialisés comme YOLO
  • Portée du vocabulaire : Focalisé sur des concepts visuels atomiques ; le raisonnement compositionnel est limité sans l'assistance d'un MLLM
  • Concepts rares : Les performances peuvent se dégrader sur des concepts extrêmement rares ou très spécifiques qui ne sont pas bien représentés dans les données d'entraînement

Citation

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

Quand SAM 3 a-t-il été publié ?

SAM 3 a été publié par Meta le 20 novembre 2025 et est entièrement intégré dans Ultralytics depuis la version 8.3.237 (PR #22897). Un support complet est disponible pour le mode predict et le mode track.

SAM 3 est-il intégré dans Ultralytics ?

Oui ! SAM 3 est entièrement intégré dans le package Python Ultralytics, incluant la segmentation de concepts, les invites visuelles de style SAM 2 et le suivi vidéo multi-objets. SAM 3 alimente également la fonctionnalité d'annotation intelligente sur Ultralytics Platform, où tu peux annoter des images en quelques clics.

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

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 : "bus scolaire jaune" → segmente tous les bus scolaires jaunes dans la scène
  • Exemple d'image : Boîte autour d'un chien → segmente tous les chiens dans l'image
  • Combiné : "chat rayé" + boîte exemple → segmente tous les chats rayés correspondant à l'exemple

Consulte le contexte connexe sur la détection d'objets et la segmentation d'instance.

En quoi SAM 3 diffère-t-il de SAM 2 ?

FonctionnalitéSAM 2SAM 3
TâcheUn seul objet par inviteToutes les instances d'un concept
Types d'invitesPoints, boîtes, masquesPhrases textuelles, exemples d'images
Capacité de détectionNécessite un détecteur externeDétecteur à vocabulaire ouvert intégré
ReconnaissanceBasée uniquement 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× meilleur sur SA-Co
Raffinement interactifClics uniquementClics + généralisation par exemples

SAM 3 conserve la compatibilité descendante avec l'invite visuelle de SAM 2 tout en ajoutant des capacités basées sur les concepts.

Quels jeux de données sont utilisés pour entraîner SAM 3 ?

SAM 3 est entraîné sur le jeu de données Segment Anything with Concepts (SA-Co) :

Données d'entraînement :

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

Données de référence :

  • 214K concepts uniques sur 126K images/vidéos
  • 50× plus de concepts que les références existantes (par exemple, LVIS possède ~4K concepts)
  • Triple annotation sur SA-Co/Gold pour mesurer les limites de la performance humaine

Cette échelle massive et cette diversité permettent une généralisation zero-shot supérieure de SAM 3 à travers des concepts à vocabulaire ouvert.

Comment SAM 3 se compare-t-il à YOLO26 pour la segmentation ?

SAM 3 et YOLO26 servent des cas d'utilisation différents :

Avantages de SAM 3 :

  • Vocabulaire ouvert : segmente n'importe quel concept via des invites textuelles sans entraînement
  • Zero-shot : fonctionne immédiatement sur de nouvelles catégories
  • Interactif : le raffinement basé sur l'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 sur la segmentation d'instance LVIS zero-shot

Avantages de YOLO26 :

  • Vitesse : inférence des ordres de grandeur plus rapide avec une conception de bout en bout sans NMS
  • Efficacité : modèles 539× plus petits (6,4 Mo contre 3,45 Go)
  • Économe en ressources : fonctionne sur les appareils de périphérie et mobiles
  • Temps réel : optimisé pour les déploiements en production

Recommandation :

  • Utilise SAM 3 pour une segmentation flexible à vocabulaire ouvert où tu dois trouver toutes les instances de concepts décrits par du texte ou des exemples
  • Utilise YOLO26 pour des déploiements en production à haute vitesse où 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 peut-il gérer des requêtes linguistiques complexes ?

SAM 3 est conçu pour des syntagmes nominaux simples (par exemple, "pomme rouge", "personne portant un chapeau"). Pour des requêtes complexes nécessitant du raisonnement, combine SAM 3 avec un MLLM en tant que SAM 3 Agent :

Requêtes simples (SAM 3 natif) :

  • "bus scolaire jaune"
  • "chat rayé"
  • "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 ReasonSeg (contre 65.0 pour le précédent record, +16,9 % d'amélioration) en combinant la segmentation de SAM 3 avec les capacités de raisonnement du MLLM.

Quelle est la précision de SAM 3 par rapport à la performance humaine ?

Sur la référence SA-Co/Gold avec une triple annotation humaine :

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

SAM 3 atteint une performance solide approchant la précision humaine sur la segmentation de concepts à vocabulaire ouvert, l'écart se situant principalement sur des concepts ambigus ou subjectifs (par exemple, "petite fenêtre", "pièce confortable").

Commentaires