OWLv2
OWLv2 є детектором об'єктів із відкритим словником від Google Research, який зіставляє області зображення з текстовими ембедингами енкодера на кшталт CLIP. LibreYOLO надає його як сімейство лише для передбачення на рівні детекторів із відкритим словником.
- Задачі
- detection
- Розміри
- b16, l14 at 960 to 1008 px
- Встановлення
pip install libreyolo- Рівень підтримки
- Суміжний рівень, починаючи з v. Окремий інтерфейс продукту з власною фабрикою та контрактом.
- Ліцензії
- Код: MIT, ваги: Apache-2.0. Комерційне використання
Встановлення
OWLv2 завантажується через рівень детекторів LibreYOLO з відкритим словником,
для якого потрібен додатковий набір залежностей openvocab:
pip install "libreyolo[openvocab]"Цей набір установлює transformers і timm, бібліотеки Hugging Face, які
використовує цей рівень.
Передбачення
OWLv2 не є контрольною точкою, яку LibreYOLO завантажує через LibreYOLO().
Вона завантажується через споріднену фабрику LibreOpenVocab, яка під час
першого використання отримує знімок із Hugging Face і кешує його в weights/.
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("owlv2-b16")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.1)for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreOpenVocab, SAMPLE_IMAGE # Якщо пропустити set_classes(), залишиться типовий словник COCO-80 цього рівня.model = LibreOpenVocab("owlv2-l14")result = model.predict(SAMPLE_IMAGE, conf=0.1)print(result.names)set_classes() задає текстовий словник, який зберігається для наступних
викликів. Викличте метод знову, щоб замінити список, або не викликайте його,
щоб залишити типові мітки COCO-80. Перед надходженням до текстової гілки кожна
мітка вкладається у фіксований шаблон запиту відповідно до способу навчання
Owlv2ForObjectDetection із бібліотеки transformers.
OWLv2 не має порога для текстових токенів: виявлення фільтрує лише conf,
а передавання text_threshold спричиняє помилку. Параметр iou приймається
для сумісності API, але видає попередження й нічого не робить, оскільки тут не
виконується немаксимальне придушення. imgsz та augment=True одразу
відхиляються: за зміну розміру відповідає процесор transformers, а
аугментація під час тестування не належить до можливостей цього рівня.
predict() для одного зображення повертає один об'єкт Results, а не
список. Передайте каталог, список зображень або stream=True для джерела
відео, щоб отримати кілька результатів. Для цього сімейства немає шляху через
CLI: libreyolo predict завантажує лише контрольні точки .pt через
LibreYOLO(), тому сімейства LibreOpenVocab запускаються з Python. Типи
джерел і потокове передбачення описано в розділі
передбачення.
Варіанти
Доступні дві контрольні точки: b16 (базова, розмір патча 16) і l14
(велика, розмір патча 14). Якщо розмір не вказано, типовим для цього рівня є
b16. Обидві відтворюють офіційний реліз Google Research через
Owlv2ForObjectDetection із бібліотеки transformers і одноразово
завантажуються у розміщений LibreYOLO знімок Hugging Face, який зберігає
початкові файли. Показники правильності та затримки для цього сімейства ще не
опубліковано.
Навчання, валідація на датасеті та експорт не належать до можливостей цього
рівня: train(), val() і export() завжди спричиняють
NotImplementedError. Це обгортка опублікованої контрольної точки лише для
передбачення.
Контрольні точки
Усі опубліковані файли ваг цього сімейства.
| Файл | Вхід (пікс.) | Ліцензія ваг |
|---|---|---|
| Detection | ||
| LibreOWLv2b16.pt | 960 | apache-2.0 |
| LibreOWLv2l14.pt | 1008 | apache-2.0 |
Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.
Ліцензування
Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.
Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.
- Оригінальна робота
- OWLv2, Google Research
- Ліцензія першоджерела
- Apache-2.0
- Джерело першоджерела
- github.com/google-research/scenic/tree/main/scenic/projects/owl_vit
- Код LibreYOLO
- MIT
- Ваги
- Apache-2.0, повторно опубліковано на huggingface.co/LibreYOLO
- Тлумачення
- Apache-2.0 is a permissive license, so these checkpoints 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 OWLv2 model source of its own: LibreOWLv2 calls the Apache-2.0 `transformers` implementation, `Owlv2ForObjectDetection`, directly, and downloads the official checkpoints into a LibreYOLO-hosted mirror repository that preserves the upstream snapshot files.
Цитування
@article{minderer2023scaling,
title={Scaling Open-Vocabulary Object Detection},
author={Matthias Minderer, Alexey Gritsenko, Neil Houlsby},
journal={NeurIPS},
year={2023},
}Скопійовано з блоку цитування авторів на сторінці github.com/google-research/scenic/blob/main/scenic/projects/owl_vit/README.md#references.