OMDet-Turbo

OMDet-Turbo є детектором об'єктів із відкритим словником у реальному часі від Om AI Lab, який відокремлює ембединги класів від мовного запиту завдання. LibreYOLO надає його як сімейство лише для передбачення на рівні детекторів із відкритим словником.

Задачі
detection
Розміри
t at 640 px
Встановлення
pip install libreyolo
Рівень підтримки
Суміжний рівень, починаючи з v. Окремий інтерфейс продукту з власною фабрикою та контрактом.
Першоджерело
OMDet-Turbo, автори: Om AI Lab, ліцензія Apache-2.0. Стаття, джерело
Ліцензії
Код: MIT, ваги: Apache-2.0. Комерційне використання

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

OMDet-Turbo завантажується через рівень детекторів LibreYOLO з відкритим словником, для якого потрібен додатковий набір залежностей openvocab:

bash
pip install "libreyolo[openvocab]"

Цей набір установлює transformers і timm, бібліотеки Hugging Face, які використовує цей рівень. Бекбон Swin моделі OMDet-Turbo завантажується через обгортку TimmBackbone із бібліотеки transformers.

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

OMDet-Turbo не є контрольною точкою, яку LibreYOLO завантажує через LibreYOLO(). Вона завантажується через споріднену фабрику LibreOpenVocab, яка під час першого використання отримує знімок із Hugging Face і кешує його в weights/.

Python
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.3)for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
Власний поріг NMS
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["traffic light", "bicycle"]) # OMDet-Turbo є єдиним сімейством цього рівня, яке враховує iou=:# його власна подальша обробка приймає поріг придушення як аргумент,# типовим значенням якого є 0.5, якщо iou= не задано.result = model.predict(SAMPLE_IMAGE, conf=0.3, iou=0.7)print(result.names, len(result))

set_classes() задає текстовий словник, який зберігається для наступних викликів. Викличте метод знову, щоб повністю замінити список, або не викликайте його, щоб залишити типові мітки COCO-80. Порожній результат є допустимим і не вважається помилкою. На відміну від Grounding DINO, OMDet-Turbo відокремлює ембединги класів від мовного запиту завдання, тому подальша обробка transformers повертає мітки, які без етапу усунення неоднозначності фраз безпосередньо зіставляються із запитаним списком класів.

OMDet-Turbo не має порога для текстових токенів: виявлення фільтрує лише conf, а передавання text_threshold спричиняє помилку. Це єдине сімейство цього рівня, яке виконує власне немаксимальне придушення всередині post_process_grounded_object_detection, тому iou тут ураховується без попередження. imgsz та augment=True одразу відхиляються: за зміну розміру відповідає процесор transformers, а аугментація під час тестування не належить до можливостей цього рівня. predict() для одного зображення повертає один об'єкт Results, а не список. Передайте каталог, список зображень або stream=True для джерела відео, щоб отримати кілька результатів. Для цього сімейства немає шляху через CLI: libreyolo predict завантажує лише контрольні точки .pt через LibreYOLO(), тому сімейства LibreOpenVocab запускаються з Python. Типи джерел і потокове передбачення описано в розділі передбачення.

Варіанти

Доступна одна контрольна точка t, єдиний розмір рівня. Вона відтворює omlab/omdet-turbo-swin-tiny-hf у зафіксованій початковій редакції через OmDetTurboForObjectDetection із бібліотеки transformers. Дзеркальний файл ваг побайтово ідентичний початковому знімку. Показники правильності та затримки для цього сімейства ще не опубліковано.

Навчання, валідація на датасеті та експорт не належать до можливостей цього рівня: train(), val() і export() завжди спричиняють NotImplementedError. Це обгортка опублікованої контрольної точки лише для передбачення.

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

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

ФайлВхід (пікс.)Ліцензія ваг
Detection
LibreOMDetTurbot.pt640apache-2.0

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

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

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

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

Оригінальна робота
OMDet-Turbo, Om AI Lab
Ліцензія першоджерела
Apache-2.0
Джерело першоджерела
github.com/om-ai-lab/OmDet
Код LibreYOLO
MIT
Ваги
Apache-2.0, повторно опубліковано на huggingface.co/LibreYOLO
Тлумачення
Apache-2.0 is a permissive license, so this checkpoint can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. LibreYOLO vendors no OMDet-Turbo model source of its own: LibreOMDetTurbo calls the Apache-2.0 `transformers` implementation, `OmDetTurboForObjectDetection`, directly. The mirrored checkpoint is a byte-identical copy of `omlab/omdet-turbo-swin-tiny-hf` at a pinned upstream revision, verified against a recorded SHA-256 checksum before it is used.

Цитування

@article{zhao2024real,
  title={Real-time Transformer-based Open-Vocabulary Detection with Efficient Fusion Head},
  author={Zhao, Tiancheng and Liu, Peng and He, Xuan and Zhang, Lu and Lee, Kyusong},
  journal={arXiv preprint arXiv:2403.06892},
  year={2024}
}

Скопійовано з блоку цитування авторів на сторінці github.com/om-ai-lab/OmDet#citation.

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