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.

bash
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.

Prompty punktowe i ramkowe
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)
Jedno kodowanie, wiele promptów
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.

PlikWejście (px)Licencja wag
Instance segmentation
LibreEdgeTAM.ptapache-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.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.