Kosmos-2

Kosmos-2 — модель Microsoft для привязки текста к изображению: она составляет описание картинки, а затем находит каждую именную группу из этого описания и обводит её рамкой. LibreYOLO оборачивает её как детектор объектов с открытым словарём: список классов передаётся во время предсказания.

Задачи
detection
Размеры
224 at 224 px
Установка
pip install libreyolo
Уровень поддержки
Смежный уровень, начиная с v. Отдельная часть продукта со своей фабрикой и контрактом.
Исходный проект
Kosmos-2 от Microsoft, MIT. Статья, исходный код
Лицензии
Код: MIT, веса: MIT. Коммерческое использование

Установка

Kosmos-2 относится к уровню «VLM как детектор» в LibreYOLO — это отдельная часть продукта со своей фабрикой, а не одно из семейств на основе чекпойнтов. Ему нужен extra vlm.

bash
pip install "libreyolo[vlm]"

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

Веса скачиваются с Hugging Face при первом запуске и кэшируются локально. LibreYOLO загружает напрямую собственный репозиторий Microsoft microsoft/kosmos-2-patch14-224; в отличие от Florence-2, перезалив от сообщества здесь не нужен.

Python
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("kosmos-2")model.set_classes(["boat", "person"])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("kosmos-2")model.set_classes(["boat", "person"]) # Любой источник, который принимает библиотека: файл, папка, URL, индекс# веб-камеры, RTSP-поток или список .streamsfor result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

Это семейство загружается через фабрику LibreVLM(), а не LibreYOLO(): у VLM-семейств нет загрузчика чекпойнтов, поэтому маршрутизация по суффиксу файла, описанная на страницах других моделей, здесь не работает. set_classes() задаёт словарь, который Kosmos-2 просят найти на изображении; значение запоминается, поэтому оно действует во всех последующих вызовах predict()/track(), пока вы не зададите его снова. Kosmos-2 привязывает к изображению именные группы, а не сопоставляет метку точь-в-точь, поэтому обёртка LibreYOLO допускает частичное совпадение: класс с именем "boat" совпадёт и со сгенерированной фразой вроде «the boats». У каждой детекции одна и та же уверенность-заглушка, поэтому фильтрация по conf работает по принципу «всё или ничего», а не как ранжирование, и iou здесь ни на что не влияет: обёртка строит список детекций напрямую из привязанных сущностей, без шага удаления дубликатов. chat() выбрасывает NotImplementedError, потому что Kosmos-2 управляется промптом <grounding>, а не шаблоном чата. CLI LibreYOLO этот уровень не покрывает: формы libreyolo predict model=... для него нет. Про источники, стриминг и обработку результатов см. предсказание.

Варианты

Один размер: kosmos-2-patch14-224, на 224 px, загружается как LibreVLM("kosmos-2"). Это модель 2023 года, и в самой обёртке LibreYOLO отмечено, что привязка у неё грубее, чем у более новых детекторов этого уровня.

LibreYOLO не обучает, не валидирует и не экспортирует Kosmos-2: train(), val() и export() выбрасывают NotImplementedError для каждого семейства этого уровня (см. уровень поддержки выше). Если нужен свой словарь, запечённый в модель, дообучите Kosmos-2 в исходном проекте и загрузите получившиеся веса; вывод predict() проверяйте глазами, а не прогоном валидации в стиле COCO, поскольку у каждой детекции одна и та же уверенность-заглушка.

Лицензирование

Проверяйте лицензию в репозитории конкретных весов на Hugging Face. Она указана для каждого чекпойнта в организации LibreYOLO и может различаться даже внутри одного семейства. Этот репозиторий считается авторитетным источником, а сводка ниже описывает условия на момент последней проверки страницы.

Это описание соответствующих лицензий, а не юридическая консультация. Если ответ важен для коммерческого использования, прочитайте лицензии самостоятельно и проконсультируйтесь с юристом.

Оригинальная работа
Kosmos-2, Microsoft
Лицензия исходного проекта
MIT
Исходный код проекта
github.com/microsoft/unilm/tree/master/kosmos-2
Код 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 Microsoft's own microsoft/kosmos-2-patch14-224 repository directly; unlike Florence-2, no community re-upload is needed for it to load on current transformers.

Цитирование

@article{kosmos-2,
  title={Kosmos-2: Grounding Multimodal Large Language Models to the World},
  author={Zhiliang Peng and Wenhui Wang and Li Dong and Yaru Hao and Shaohan Huang and Shuming Ma and Furu Wei},
  journal={ArXiv},
  year={2023},
  volume={abs/2306}
}

Скопировано из блока цитирования авторов на странице github.com/microsoft/unilm/blob/master/kosmos-2/README.md#citation.

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