EdgeTAM
EdgeTAM est une variante de SAM 2 pensée pour tourner sur l'appareil, construite pour la vitesse d'inférence sur mobile tout en conservant le même flux de travail guidé par prompts de point et de boîte. LibreYOLO prend en charge son chemin de segmentation d'images via une factory LibreSAM dédiée, distincte de la factory de détecteurs LibreYOLO().
- Tâches
- instance segmentation
- Tailles
- Installer
pip install libreyolo- Niveau de support
- Niveau parallèle, depuis v. Une interface produit distincte avec sa propre factory et son propre contrat.
- Licences
- Code MIT, poids Apache-2.0. Usage commercial
Installation
EdgeTAM demande l'extra sam, qui installe transformers et timm.
pip install "libreyolo[sam]"Prédire
LibreSAM(...) (ou le LibreEdgeTAM(...) propre à la famille) est un point
d'entrée distinct de LibreYOLO(...) : il renvoie un segmenteur guidé par
prompts plutôt qu'un détecteur, parce qu'ici une passe avant n'a aucun sens
sans prompt spatial. Il n'existe pas de commande CLI libreyolo predict pour
cette famille ; utilisez l'API Python. Seule la segmentation d'images est prise
en charge ; le suivi vidéo d'EdgeTAM sort du cadre ici.
from libreyolo import LibreSAM, SAMPLE_IMAGE # EdgeTAM a une seule taille, "edge". Alias: "edgetam", "edge-tam",# "edgetam-edge".model = LibreSAM("edgetam") # Un prompt de point: [x, y] en pixels, label 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 # Un prompt de boîte au lieu d'un point.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700]) # Sans aucun prompt, l'image entière est segmentée (un générateur# automatique de masques simplifié, pas celui de référence).result = model.predict(SAMPLE_IMAGE)from libreyolo import LibreEdgeTAM, SAMPLE_IMAGE model = LibreEdgeTAM() # L'encodeur d'image est la partie coûteuse. set_image() le lance une# fois; chaque predict() ensuite réutilise l'embedding mis en 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()Un prompt de point accepte [x, y] pour un objet, [[x, y], ...] pour
plusieurs, ou des tableaux numpy ; labels marque chaque point 1 (premier
plan) ou 0 (arrière-plan) et vaut par défaut tout en premier plan. Un prompt
de boîte prend [x1, y1, x2, y2] ou une liste de boîtes, un masque par boîte.
Omettre les deux prompts segmente l'image entière en soumettant une grille
dense de prompts et en gardant les masques confiants qui ne se recouvrent pas ;
ce mode « tout segmenter » est simplifié par rapport au générateur automatique
de masques de référence et peut sous-segmenter les scènes chargées, si bien
qu'un vrai prompt de point ou de boîte reste le chemin précis. conf filtre
sur la qualité de masque prédite (IoU), pas sur une confiance de détection :
passez 0.0 pour conserver tous les candidats. multimask=True renvoie les
trois masques d'ambiguïté tout-contre-partie de SAM pour chaque prompt au lieu
du seul meilleur. device= déplace le modèle et, si une session set_image()
est active, son embedding mis en cache. Chaque masque porte l'id de classe 0,
nommé "object", puisqu'un masque guidé par prompts n'a pas d'ensemble de
classes fixe. train(), val(), export() et track() lèvent tous
NotImplementedError pour cette famille : l'inférence sur images est ce que
LibreYOLO prend en charge ici. Voir la prédiction pour les
types de sources.
Variantes
Une seule taille, edge, à une résolution d'entrée fixe, si bien que choisir cette famille plutôt que le reste du niveau SAM est une décision matérielle plus qu'une question de taille : EdgeTAM existe spécifiquement pour l'inférence sur l'appareil, sous contraintes de ressources.
Checkpoints
Tous les fichiers de poids publiés de cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Instance segmentation | ||
| LibreEdgeTAM.pt | apache-2.0 | |
Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.
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
- EdgeTAM, Meta Reality Labs
- Licence du projet d'origine
- Apache-2.0
- Source du projet d'origine
- github.com/facebookresearch/EdgeTAM
- Code de LibreYOLO
- MIT
- Poids
- Apache-2.0, republiés sur huggingface.co/LibreYOLO
- Interprétation
- Apache-2.0 is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy you redistribute, and it grants a patent license. LibreYOLO does not vendor EdgeTAM's model source: it calls the Apache-2.0 Transformers adapter and reproduces the pinned upstream image and prompt-coordinate transforms from facebookresearch/EdgeTAM commit 7711e012a30a2402c4eaab637bdb00a521302c91. The republished LibreYOLO/LibreEdgeTAM snapshot is converted from facebook/EdgeTAM revision 14d7ecc48c656b94e5184519f698cd5386c5a2bf, checked tensor-by-tensor against a Transformers-format reference before publication, and tagged Apache-2.0 on the LibreYOLO Hugging Face org. LibreYOLO ships image inference only; EdgeTAM's video tracking is out of scope for this family.
Citation
@article{zhou2025edgetam,
title={EdgeTAM: On-Device Track Anything Model},
author={Zhou, Chong and Zhu, Chenchen and Xiong, Yunyang and Suri, Saksham and Xiao, Fanyi and Wu, Lemeng and Krishnamoorthi, Raghuraman and Dai, Bo and Loy, Chen Change and Chandra, Vikas and Soran, Bilge},
journal={arXiv preprint arXiv:2501.07256},
year={2025}
}Copié depuis le bloc de citation des auteurs sur github.com/facebookresearch/EdgeTAM#citing-edgetam.