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 — это отдельная часть продукта со своей фабрикой, а не одно из семейств на основе чекпойнтов. Ему нужен extra vlm.

bash
pip install "libreyolo[vlm]"

Предсказание

Веса скачиваются с Hugging Face при первом запуске и кэшируются локально. LibreYOLO скачивает перезалитый чекпойнт от florence-community, а не оригинальный репозиторий 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. Таблицы поддержки, чекпойнты и результаты бенчмарков на этой странице сгенерированы из выпущенной библиотеки и опубликованных весов, а не написаны вручную.