SAM 3

SAM 3 étend SAM en ajoutant une requête par concept textuel aux points et boîtes habituels. Une expression comme « yellow school bus » renvoie ainsi toutes les instances correspondantes. LibreYOLO prend en charge son chemin image par une factory LibreSAM dédiée, distincte de la factory de détecteurs LibreYOLO().

Tâches
instance segmentation
Tailles
large at 1008 px
Installer
pip install libreyolo
Niveau de support
Niveau parallèle, depuis v. Une interface produit distincte avec sa propre factory et son propre contrat.
Origine
SAM 3 par Meta FAIR, SAM License (Meta custom, gated). Article, source
Licences
Code MIT, poids SAM License (Meta custom, gated). Usage commercial

Installer

SAM 3 nécessite l'extra sam, qui installe transformers et timm.

bash
pip install "libreyolo[sam]"

L'accès aux poids est restreint : rendez-vous sur huggingface.co/facebook/sam3, acceptez la SAM License de Meta, puis exécutez hf auth login (ou définissez HF_TOKEN) avant le premier téléchargement. LibreYOLO journalise un avis de licence lors du premier téléchargement de cette famille.

Prédire

LibreSAM(...) (ou LibreSAM3(...), propre à la famille) constitue un point d'entrée distinct de LibreYOLO(...) : il renvoie un segmenteur guidable et non un détecteur, car une passe n'a ici aucun sens sans requête. Il n'existe pas de commande CLI libreyolo predict pour cette famille ; utilisez l'API Python. Seule l'inférence sur image est prise en charge ; les modèles vidéo de SAM 3 dépassent ici le périmètre.

Requêtes par point et par boîte
from libreyolo import LibreSAM, SAMPLE_IMAGE # "sam3" est la seule taille ("large") ; alias : "sam3", "sam-3", "sam3-large".model = LibreSAM("sam3") # Requête par point : [x, y] en coordonnées pixel, étiquette 1 = premier plan.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy)      # un polygone par masqueprint(result.boxes.xyxy)    # boîte ajustée dérivée du masque # Requête par boîte au lieu d'un point.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])
Requête textuelle (concept)
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Recherche toutes les instances correspondant à l'expression, pas une seule.# text= est mutuellement exclusif avec points, bboxes, labels et masks.result = model.predict(SAMPLE_IMAGE, text="a person")print(result.names)         # {0: "a person"}print(result.boxes.conf)    # score de détection PCS par instance
Encoder une fois, fournir plusieurs requêtes
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # L'encodeur d'image est la partie coûteuse. set_image() l'exécute une fois ;# chaque appel predict() suivant réutilise l'embedding en cache. Un appel# text= réencode en interne, car le tracker et l'encodeur de segmentation# par concept ne partagent pas de cache.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()

Le chemin par point ou boîte correspond au reste de la famille SAM : une requête par point accepte [x, y] pour un objet ou [[x, y], ...] pour plusieurs, labels marque chaque point par 1 (premier plan) ou 0 (arrière-plan), et une requête par boîte prend [x1, y1, x2, y2] ou une liste de boîtes. Sur ce chemin, conf filtre selon la qualité prédite du masque (IoU), et non une confiance de détection.

Le chemin text= est l'ajout de SAM 3 : une chaîne de concept renvoie chaque instance correspondante dans l'image au moyen de Promptable Concept Segmentation et ne peut pas être combinée avec des points, boîtes, étiquettes ou masques. Dans ce cas, conf correspond au score de détection PCS plutôt qu'à l'IoU du masque. Conserver sa valeur par défaut applique le propre seuil de 0.3 du modèle, tandis que conf=0.0 garde chaque candidat. Le dictionnaire names renvoyé associe l'identifiant de classe 0 à la chaîne de concept demandée, puisqu'un masque guidable ne possède autrement aucun ensemble de classes fixe. device= déplace le modèle et, si une session set_image() est active, son embedding mis en cache. train(), val(), export() et track() lèvent tous NotImplementedError pour cette famille : SAM 3 est réservé à la prédiction dans LibreYOLO et le suivi vidéo dépasse le périmètre. Consultez la prédiction pour les types de sources.

Variantes

Une seule taille, large, avec une entrée fixe de 1008 px. SAM 3.1 n'est pas pris en charge : son implémentation possède une licence personnalisée qui ne peut pas être intégrée à ce dépôt MIT, et la version de Transformers dont dépend LibreYOLO ne charge pas encore son format de checkpoint.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
SAM 3, Meta FAIR
Licence du projet d'origine
SAM License (Meta custom, gated)
Source du projet d'origine
github.com/facebookresearch/sam3
Code de LibreYOLO
MIT
Poids
SAM License (Meta custom, gated), distribués par leurs auteurs. LibreYOLO ne les héberge pas et n'en fournit pas de miroir.
Interprétation
The SAM License is Meta's own agreement, not an OSI-approved license like MIT or Apache-2.0. It grants a worldwide, royalty-free license to use, reproduce, distribute and create derivative works, and does not itself say the weights are non-commercial. It does add terms Apache and MIT do not: publications that use the results must acknowledge SAM Materials, reverse engineering is prohibited, use is subject to export-control and sanctions compliance, filing IP litigation against Meta over the materials terminates your license, and Meta may amend the agreement. Weights are gated on facebook/sam3 on Hugging Face: you must accept the terms there and authenticate before downloading. LibreYOLO calls SAM 3 through the Apache-2.0 Transformers implementation and vendors none of Meta's model source, but does not redistribute the weights themselves; read the license yourself before relying on it commercially.

LibreYOLO n'héberge aucune copie des poids SAM 3 et ne les redistribue pas. LibreSAM("sam3") les télécharge directement depuis le dépôt à accès restreint facebook/sam3 de Meta sur Hugging Face, qui exige l'acceptation de la SAM License de Meta et une authentification avant le premier téléchargement.

Citation

@misc{carion2025sam3segmentconcepts,
      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ä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á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},
}

Copié depuis le bloc de citation des auteurs sur github.com/facebookresearch/sam3#citing-sam-3.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.