SAM 3

SAM 3 додає до звичайних точок і рамок SAM запит текстовим концептом, тому фраза на кшталт «yellow school bus» повертає всі відповідні екземпляри. LibreYOLO підтримує її шлях зображень через окрему фабрику LibreSAM, відмінну від фабрики детекторів LibreYOLO().

Задачі
instance segmentation
Розміри
large at 1008 px
Встановлення
pip install libreyolo
Рівень підтримки
Суміжний рівень, починаючи з v. Окремий інтерфейс продукту з власною фабрикою та контрактом.
Першоджерело
SAM 3, автори: Meta FAIR, ліцензія SAM License (Meta custom, gated). Стаття, джерело
Ліцензії
Код: MIT, ваги: SAM License (Meta custom, gated). Комерційне використання

Встановлення

SAM 3 потребує додаткового набору залежностей sam, який установлює transformers і timm.

bash
pip install "libreyolo[sam]"

Доступ до ваг обмежено: відвідайте huggingface.co/facebook/sam3, прийміть SAM License від Meta, а потім виконайте hf auth login (або задайте HF_TOKEN) до першого завантаження. Під час першого завантаження цього сімейства LibreYOLO показує повідомлення про ліцензію.

Передбачення

LibreSAM(...) (або фабрика конкретного сімейства LibreSAM3(...)) є окремою точкою входу від LibreYOLO(...): вона повертає сегментатор за запитами, а не детектор, оскільки прямий прохід тут не має сенсу без запиту. Для цього сімейства немає команди CLI libreyolo predict; використовуйте API Python. Підтримується лише інференс зображень; відеомоделі SAM 3 тут не охоплюються.

Запити точками та рамками
from libreyolo import LibreSAM, SAMPLE_IMAGE # "sam3" є єдиним розміром ("large"); псевдоніми: "sam3", "sam-3", "sam3-large".model = LibreSAM("sam3") # Запит точкою: [x, y] у піксельних координатах, мітка 1 означає передній план.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy)      # Полігон для кожної маскиprint(result.boxes.xyxy)    # Щільна рамка, отримана з маски # Запит рамкою замість точки.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700])
Запит текстом (концептом)
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Знаходить усі екземпляри, що відповідають фразі, а не один об'єкт.# text= не можна поєднувати з points, bboxes, labels і masks.result = model.predict(SAMPLE_IMAGE, text="a person")print(result.names)         # {0: "a person"}print(result.boxes.conf)    # Оцінка виявлення PCS для кожного екземпляра
Одне кодування, багато запитів
from libreyolo import LibreSAM3, SAMPLE_IMAGE model = LibreSAM3("large") # Енкодер зображення є найдорожчою частиною. set_image() запускає його один раз;# кожен наступний виклик predict() повторно використовує кешований ембединг.# Виклик text= повторно кодує всередині, оскільки трекер і енкодер# сегментації за концептом не мають спільного кешу.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()

Шлях точок і рамок відповідає решті сімейства SAM: запит точкою приймає [x, y] для одного об'єкта або [[x, y], ...] для кількох, labels позначає кожну точку як 1 (передній план) або 0 (тло), а запит рамкою приймає [x1, y1, x2, y2] або список рамок. На цьому шляху conf фільтрує за передбаченою якістю маски (IoU), а не за впевненістю виявлення.

Шлях text= є доповненням SAM 3: рядок концепту повертає всі відповідні екземпляри на зображенні через Promptable Concept Segmentation, і його не можна поєднувати з точками, рамками, мітками чи масками. Тут conf є оцінкою виявлення PCS замість IoU маски; типове значення застосовує власний поріг моделі 0.3, а conf=0.0 зберігає всіх кандидатів. Повернений names зіставляє ідентифікатор класу 0 із запитаним рядком концепту, оскільки в іншому разі маска за запитом не має фіксованого набору класів. device= переміщує модель і, якщо активний сеанс set_image(), кешований ембединг. train(), val(), export() і track() спричиняють NotImplementedError для цього сімейства: SAM 3 у LibreYOLO призначена лише для передбачення, а відстеження у відео не охоплюється. Типи джерел описано в розділі передбачення.

Варіанти

Доступний один розмір large із фіксованим входом 1008 px. SAM 3.1 не підтримується: її реалізація має власну ліцензію, яка не дозволяє включити код до цього репозиторію під MIT, а версія Transformers, від якої залежить LibreYOLO, ще не завантажує формат її контрольної точки.

Ліцензування

Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.

Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.

Оригінальна робота
SAM 3, Meta FAIR
Ліцензія першоджерела
SAM License (Meta custom, gated)
Джерело першоджерела
github.com/facebookresearch/sam3
Код LibreYOLO
MIT
Ваги
SAM License (Meta custom, gated), поширюється авторами. LibreYOLO не розміщує й не дублює ці ваги.
Тлумачення
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 не розміщує власної копії ваг SAM 3 і не розповсюджує їх. LibreSAM("sam3") завантажує їх безпосередньо з репозиторію Meta facebook/sam3 з обмеженим доступом на Hugging Face. До першого завантаження потрібно прийняти SAM License від Meta й автентифікуватися.

Цитування

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

Скопійовано з блоку цитування авторів на сторінці github.com/facebookresearch/sam3#citing-sam-3.

Перевірено з LibreYOLO v1.5.0. Таблиці підтримки, контрольні точки й результати бенчмарків на цій сторінці згенеровано з випущеної бібліотеки та опублікованих ваг, а не написано вручну.