SAM 3

SAM 3 rozszerza SAM o prompt pojęcia tekstowego obok zwykłych punktów i ramek, dzięki czemu fraza taka jak „yellow school bus” zwraca każdą pasującą instancję. LibreYOLO obsługuje jego ścieżkę obrazową przez osobną fabrykę LibreSAM, niezależną od fabryki detektorów LibreYOLO().

Zadania
instance segmentation
Rozmiary
large at 1008 px
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
SAM 3, autorzy: Meta FAIR, licencja: SAM License (Meta custom, gated). Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: SAM License (Meta custom, gated). Użycie komercyjne

Instalacja

SAM 3 wymaga dodatku sam, który instaluje zależności transformers i timm.

bash
pip install "libreyolo[sam]"

Dostęp do wag jest kontrolowany. Należy odwiedzić stronę huggingface.co/facebook/sam3, zaakceptować licencję SAM License firmy Meta, a następnie uruchomić hf auth login (lub ustawić HF_TOKEN) przed pierwszym pobraniem. LibreYOLO wypisuje informację o licencji przy pierwszym pobraniu tej rodziny.

Predykcja

LibreSAM(...) (lub właściwy dla tej rodziny LibreSAM3(...)) jest osobnym punktem wejścia niż LibreYOLO(...). Zwraca segmenter sterowany promptami, a nie detektor, ponieważ przebieg w przód nie ma tu znaczenia bez promptu. Dla tej rodziny nie istnieje polecenie CLI libreyolo predict. Należy użyć API Pythona. Obsługiwana jest tylko inferencja obrazów. Modele wideo SAM 3 pozostają poza zakresem tej implementacji.

Prompty punktowe i ramkowe
from libreyolo import LibreSAM, SAMPLE_IMAGE # "sam3" to jedyny rozmiar ("large"). Aliasy: "sam3", "sam-3", "sam3-large".model = LibreSAM("sam3") # Prompt punktowy: [x, y] we współrzędnych pikseli, 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])
Prompt tekstowy (pojęcie)
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Znajduje każdą instancję pasującą do frazy, a nie tylko jeden obiekt.# text= wzajemnie wyklucza się z points, bboxes, labels i masks.result = model.predict(SAMPLE_IMAGE, text="a person")print(result.names)         # {0: "a person"}print(result.boxes.conf)    # wynik detekcji PCS dla każdej instancji
Jedno kodowanie, wiele promptów
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Enkoder obrazu jest kosztowną częścią. set_image() uruchamia go raz,# a każde kolejne wywołanie predict() ponownie wykorzystuje embedding z pamięci podręcznej.# Wywołanie text= ponownie koduje dane wewnętrznie, ponieważ tracker i enkoder# segmentacji pojęć nie współdzielą 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()

Ścieżka punktów i ramek odpowiada pozostałym modelom rodziny SAM. Prompt punktowy przyjmuje [x, y] dla jednego obiektu lub [[x, y], ...] dla kilku, labels oznacza każdy punkt jako 1 (pierwszy plan) lub 0 (tło), a prompt ramkowy przyjmuje [x1, y1, x2, y2] lub listę ramek. conf w tej ścieżce filtruje według przewidywanej jakości maski (IoU), a nie pewności detekcji.

Ścieżka text= jest rozszerzeniem SAM 3. Ciąg pojęcia zwraca każdą pasującą instancję na obrazie przez Promptable Concept Segmentation i nie może być łączony z punktami, ramkami, etykietami ani maskami. conf oznacza w niej wynik detekcji PCS zamiast IoU maski. Pozostawienie wartości domyślnej stosuje własny próg modelu 0.3, a conf=0.0 zachowuje każdego kandydata. Zwracane names mapuje identyfikator klasy 0 na żądany ciąg pojęcia, ponieważ maska sterowana promptem nie ma innego stałego zbioru klas. Argument device= przenosi model oraz, jeśli sesja set_image() jest aktywna, jej embedding z pamięci podręcznej. Wywołania train(), val(), export() i track() zawsze zgłaszają dla tej rodziny NotImplementedError. SAM 3 służy w LibreYOLO wyłącznie do predykcji, a śledzenie wideo pozostaje poza zakresem. Informacje o typach źródeł zawiera strona predykcji.

Warianty

Dostępny jest jeden rozmiar, large, ze stałym wejściem 1008 px. SAM 3.1 nie jest obsługiwany. Jego implementacja podlega niestandardowej licencji, która nie może zostać dołączona do tego repozytorium MIT, a wersja Transformers, od której zależy LibreYOLO, nie wczytuje jeszcze formatu jego checkpointu.

Licencja

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
SAM 3, Meta FAIR
Licencja projektu źródłowego
SAM License (Meta custom, gated)
Kod źródłowy projektu
github.com/facebookresearch/sam3
Kod LibreYOLO
MIT
Wagi
SAM License (Meta custom, gated), rozpowszechniane przez autorów. LibreYOLO ich nie hostuje ani nie udostępnia kopii.
Interpretacja
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 nie hostuje własnej kopii wag SAM 3 ani ich nie redystrybuuje. LibreSAM("sam3") pobiera je bezpośrednio z kontrolowanego repozytorium Meta facebook/sam3 na Hugging Face, które wymaga zaakceptowania licencji SAM License firmy Meta oraz uwierzytelnienia przed pierwszym pobraniem.

Cytowanie

@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},
}

Skopiowano z bloku cytowania autorów w github.com/facebookresearch/sam3#citing-sam-3.

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.