EdgeTAM
EdgeTAM to wariant SAM 2 przeznaczony do pracy na urządzeniu. Zapewnia szybką inferencję mobilną, zachowując ten sam pipeline segmentacji sterowanej punktami i ramkami. LibreYOLO obsługuje jego ścieżkę segmentacji obrazów przez osobną fabrykę LibreSAM, niezależną od fabryki detektorów LibreYOLO().
- Zadania
- instance segmentation
- Rozmiary
- Instalacja
pip install libreyolo- Poziom obsługi
- Poziom siostrzany, od wersji v. Osobna część produktu z własną fabryką i kontraktem.
- Projekt źródłowy
- EdgeTAM, autorzy: Meta Reality Labs, licencja: Apache-2.0. Publikacja, kod źródłowy
- Licencje
- Kod: MIT, wagi: Apache-2.0. Użycie komercyjne
Instalacja
EdgeTAM wymaga dodatku sam, który instaluje pakiety transformers i timm.
pip install "libreyolo[sam]"Predykcja
LibreSAM(...) (lub właściwa dla tej rodziny klasa LibreEdgeTAM(...)) jest
osobnym punktem wejścia niż LibreYOLO(...). Zwraca segmenter sterowany
promptami, a nie detektor, ponieważ przejście w przód nie ma tutaj znaczenia bez
promptu przestrzennego. Dla tej rodziny nie ma polecenia CLI
libreyolo predict; należy użyć API Pythona. Obsługiwana jest tylko segmentacja
obrazów. Śledzenie wideo z EdgeTAM nie jest tu dostępne.
from libreyolo import LibreSAM, SAMPLE_IMAGE # EdgeTAM ma jeden rozmiar, "edge". Aliasy: "edgetam", "edge-tam",# "edgetam-edge".model = LibreSAM("edgetam") # Prompt punktowy: [x, y] we współrzędnych pikselowych, etykieta 1 = pierwszy plan.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy) # wielokąt dla każdej maskiprint(result.boxes.xyxy) # ciasna ramka wyznaczona z maski # Prompt ramkowy zamiast punktowego.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700]) # Brak promptu powoduje segmentację całego obrazu (uproszczony automatyczny# generator masek, a nie pełna implementacja referencyjna).result = model.predict(SAMPLE_IMAGE)from libreyolo import LibreEdgeTAM, SAMPLE_IMAGE model = LibreEdgeTAM() # Koder obrazu jest kosztowną częścią. set_image() uruchamia go raz;# każde późniejsze wywołanie predict() korzysta z embeddingu w pamięci podręcznej.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()Prompt punktowy przyjmuje [x, y] dla jednego obiektu, [[x, y], ...] dla
kilku obiektów albo tablice numpy. Argument labels oznacza każdy punkt jako
1 (pierwszy plan) lub 0 (tło), a domyślnie wszystkie punkty należą do
pierwszego planu. Prompt ramkowy przyjmuje [x1, y1, x2, y2] albo listę ramek
i zwraca po jednej masce na ramkę. Pominięcie obu promptów powoduje segmentację
całego obrazu przez użycie gęstej siatki promptów i zachowanie pewnych,
niezachodzących na siebie masek. Ten tryb „segmentuj wszystko” jest uproszczony
względem referencyjnego automatycznego generatora masek i może dzielić zatłoczone
sceny na zbyt małą liczbę segmentów, dlatego dokładną ścieżką jest prawdziwy
prompt punktowy lub ramkowy. Argument conf filtruje według przewidywanej
jakości maski (IoU), a nie pewności detekcji. Wartość 0.0 zachowuje wszystkich
kandydatów. Ustawienie multimask=True zwraca dla każdego promptu wszystkie
trzy maski SAM reprezentujące niejednoznaczność całość-część, zamiast tylko
najlepszej. Argument device= przenosi model, a podczas aktywnej sesji
set_image() również embedding zapisany w pamięci podręcznej. Każda maska ma
identyfikator klasy 0 o nazwie "object", ponieważ maska sterowana promptem
nie ma stałego zestawu klas. Metody train(), val(), export() i track()
zgłaszają NotImplementedError dla tej rodziny. LibreYOLO obsługuje tutaj
inferencję obrazów. Typy źródeł opisano na stronie
predykcji.
Warianty
Dostępny jest jeden rozmiar, edge, ze stałą rozdzielczością wejściową. Wybór tej rodziny zamiast pozostałych modeli z grupy SAM jest więc decyzją sprzętową, a nie wyborem rozmiaru. EdgeTAM zaprojektowano specjalnie do inferencji na urządzeniach o ograniczonych zasobach.
Checkpointy
Wszystkie opublikowane pliki wag dla tej rodziny.
| Plik | Wejście (px) | Licencja wag |
|---|---|---|
| Instance segmentation | ||
| LibreEdgeTAM.pt | apache-2.0 | |
Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.
Licencjonowanie
Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.
To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.
- Oryginalna praca
- EdgeTAM, Meta Reality Labs
- Licencja projektu źródłowego
- Apache-2.0
- Kod źródłowy projektu
- github.com/facebookresearch/EdgeTAM
- Kod LibreYOLO
- MIT
- Wagi
- Apache-2.0, ponownie opublikowane w huggingface.co/LibreYOLO
- Interpretacja
- 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.
Cytowanie
@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}
}Skopiowano z bloku cytowania autorów w github.com/facebookresearch/EdgeTAM#citing-edgetam.