SAM 2

SAM 2 розширює SAM архітектурою потокової пам'яті для відео й перетворює клік точкою або рамкою на маску об'єкта. LibreYOLO підтримує її шлях сегментації зображень через окрему фабрику LibreSAM, відмінну від фабрики детекторів LibreYOLO().

Задачі
instance segmentation
Встановлення
pip install "libreyolo[sam]"
Рівень підтримки
Суміжний рівень, починаючи з v1.3.1. Окремий інтерфейс продукту з власною фабрикою та контрактом.
Першоджерело
SAM 2, автори: Meta FAIR, ліцензія Apache-2.0. Стаття, джерело
Ліцензії
Код: MIT, ваги: Apache-2.0. Комерційне використання

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

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

bash
pip install "libreyolo[sam]"

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

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

Запити точками та рамками
from libreyolo import LibreSAM, SAMPLE_IMAGE # Псевдоніми розмірів: "sam2-tiny", "sam2-small", "sam2-base-plus",# "sam2-large" (також скорочені форми "sam2-t"/"sam2-s"/"sam2-bp"/"sam2-l").model = LibreSAM("sam2-large") # Запит точкою: [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]) # Без запиту сегментується все зображення (спрощений автоматичний# генератор масок, а не вичерпна еталонна реалізація).result = model.predict(SAMPLE_IMAGE)
Одне кодування, багато запитів
from libreyolo import LibreSAM2, SAMPLE_IMAGE # Клас конкретного сімейства приймає розмір без префікса "sam2-".model = LibreSAM2("large") # Енкодер зображення є найдорожчою частиною. set_image() запускає його один раз;# кожен наступний виклик predict() повторно використовує кешований ембединг.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()

Запит точкою приймає [x, y] для одного об'єкта, [[x, y], ...] для кількох або масиви numpy. labels позначає кожну точку як 1 (передній план) або 0 (тло), а типово всі точки належать до переднього плану. Запит рамкою приймає [x1, y1, x2, y2] або список рамок і повертає по одній масці на рамку. Якщо пропустити обидва запити, усе зображення сегментується через запити за щільною сіткою зі збереженням упевнених масок без перекриття. Цей режим «сегментувати все» спрощено порівняно з еталонним автоматичним генератором масок, і він може недостатньо сегментувати переповнені сцени. Точний результат дає справжній запит точкою або рамкою. conf фільтрує за передбаченою якістю маски (IoU), а не за впевненістю виявлення: передайте 0.0, щоб зберегти всіх кандидатів. multimask=True повертає всі три маски неоднозначності ціле-проти-частини від SAM для кожного запиту замість однієї найкращої. device= переміщує модель і, якщо активний сеанс set_image(), кешований ембединг. Кожна маска має ідентифікатор класу 0 із назвою "object", оскільки маска за запитом не має фіксованого набору класів. train(), val(), export() і track() спричиняють NotImplementedError для цього сімейства: LibreYOLO підтримує тут інференс зображень. Типи джерел описано в розділі передбачення.

Варіанти

Доступні чотири розміри бекбона Hiera: tiny, small, base-plus і large, усі з однаковою вхідною роздільною здатністю. Бенчмарків правильності чи затримки для цього сімейства ще не опубліковано, тому вибір розміру прямо зіставляє вагу енкодера з якістю масок: tiny кодує найшвидше, а large є найважчим.

Контрольні точки

Усі опубліковані файли ваг цього сімейства.

ФайлЛіцензія ваг

Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.

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

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

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

Оригінальна робота
SAM 2, Meta FAIR
Ліцензія першоджерела
Apache-2.0
Джерело першоджерела
github.com/facebookresearch/sam2
Код LibreYOLO
MIT
Ваги
Apache-2.0, повторно опубліковано на huggingface.co/LibreYOLO
Тлумачення
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 loads SAM 2 through the Apache-2.0 Transformers implementation and republishes Transformers-compatible snapshots of the tiny, small, base-plus and large checkpoints on its own Hugging Face org, tagged Apache-2.0 there as well. LibreYOLO ships image inference only; SAM 2's video-memory tracking is out of scope for this family.

Цитування

@article{ravi2024sam2,
  title={SAM 2: Segment Anything in Images and Videos},
  author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
  journal={arXiv preprint arXiv:2408.00714},
  url={https://arxiv.org/abs/2408.00714},
  year={2024}
}

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

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

Архітектура SAM 2

Виберіть варіант або огляд сімейства, а потім блок для перегляду подробиць. Відкрийте повну схему для масштабування або завантаження SVG і PNG. Схеми англійською мовою.