Florence-2

Florence-2 є фундаментальною візуальною моделлю Microsoft, якій передають токен завдання замість використання фіксованої голови детектора. LibreYOLO надає її як детектор об'єктів із відкритим словником: передайте список класів під час передбачення.

Задачі
detection
Розміри
base, large at 768 px
Встановлення
pip install libreyolo
Рівень підтримки
Суміжний рівень, починаючи з v. Окремий інтерфейс продукту з власною фабрикою та контрактом.
Першоджерело
Florence-2, автори: Microsoft, ліцензія MIT. Стаття, джерело
Ліцензії
Код: MIT, ваги: MIT. Комерційне використання

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

Florence-2 належить до рівня VLM-детекторів LibreYOLO, окремої від сімейств на основі контрольних точок частини продукту з власною фабрикою. Для неї потрібен додатковий набір залежностей vlm.

bash
pip install "libreyolo[vlm]"

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

Під час першого використання ваги завантажуються з Hugging Face і кешуються локально. LibreYOLO завантажує повторно вивантажену спільнотою florence контрольну точку, а не початковий репозиторій microsoft/Florence-2-*. Причину пояснено в розділі «Ліцензування».

Python
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
Відео
from libreyolo import LibreVLM model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"]) # Будь-яке підтримуване бібліотекою джерело: файл, папка, URL,# індекс вебкамери, потік RTSP або список .streamsfor result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

Це сімейство завантажується через фабрику LibreVLM(), а не LibreYOLO(): сімейства VLM не оголошують завантажувача контрольних точок, тому описана на інших сторінках моделей маршрутизація за суфіксом файлу тут не застосовується. set_classes() задає словник, об'єкти з якого Florence-2 має знайти на зображенні. Налаштування зберігається для всіх наступних викликів predict()/track(), доки ви знову його не зміните. Повернений об'єкт Results містить boxes тієї самої форми, що й для будь-якого іншого сімейства. Проте кожне виявлення має однакову службову оцінку впевненості, тому фільтрація за conf або пропускає всі результати, або відкидає їх усі, а не ранжує. Параметр iou не діє: обгортка Florence-2 створює список виявлень безпосередньо з розібраного виходу токена завдання, без етапу усунення дублікатів. chat() спричиняє NotImplementedError, оскільки Florence-2 використовує токен завдання <OPEN_VOCABULARY_DETECTION>, а не шаблон чату. CLI LibreYOLO не охоплює цей рівень: форми libreyolo predict model=... для нього немає. Типи джерел, потокове передбачення та обробку результатів описано в розділі передбачення.

Варіанти

Доступні два розміри: Florence-2-base і Florence-2-large, обидва з роздільною здатністю 768 px. Вони завантажуються як LibreVLM("florence-2-base") або LibreVLM("florence-2-large"). LibreYOLO не публікувала бенчмарк порівняння їхньої правильності.

LibreYOLO не навчає, не валідує та не експортує Florence-2: train(), val() і export() спричиняють NotImplementedError для кожного сімейства цього рівня (див. рівень підтримки вище). Якщо потрібен вбудований власний словник, донавчіть Florence-2 засобами початкового проєкту й завантажте отримані ваги. Перевіряйте вихід predict() візуально замість валідації у стилі COCO, оскільки кожне виявлення має однакову службову оцінку впевненості.

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

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

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

Оригінальна робота
Florence-2, Microsoft
Ліцензія першоджерела
MIT
Джерело першоджерела
huggingface.co/microsoft/Florence-2-large
Код LibreYOLO
MIT
Ваги
MIT, поширюється авторами. LibreYOLO не розміщує й не дублює ці ваги.
Тлумачення
MIT is a permissive license, so these weights can be used in commercial and closed-source products, provided the copyright notice and license text travel with any copy you redistribute. LibreYOLO downloads the florence-community re-upload of the checkpoint (florence-community/Florence-2-base and florence-community/Florence-2-large) rather than the original microsoft/Florence-2-* repositories, because those ship with custom remote code that no longer loads on current transformers releases. florence-community republishes the same weights through the native Florence2ForConditionalGeneration class, also under MIT, so nothing about the license changes.

Цитування

@article{xiao2023florence,
  title={Florence-2: Advancing a unified representation for a variety of vision tasks},
  author={Xiao, Bin and Wu, Haiping and Xu, Weijian and Dai, Xiyang and Hu, Houdong and Lu, Yumao and Zeng, Michael and Liu, Ce and Yuan, Lu},
  journal={arXiv preprint arXiv:2311.06242},
  year={2023}
}

Скопійовано з блоку цитування авторів на сторінці huggingface.co/microsoft/Florence-2-large#bibtex.

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