Посмотреть как Markdown

Установка

LibreYOLO публикуется на PyPI под именем libreyolo. Базовый пакет закрывает предсказание, обучение, валидацию и те семейства моделей, которым не нужно ничего, кроме PyTorch; опциональные extra добавляют остальное.

Пакет
libreyolo
Python
3.10 или новее
Лицензия кода
MIT
Основная зависимость
PyTorch 2.4 или новее

Установка

pip
pip install libreyolo
С extra-пакетами
# Через запятую можно объединить несколько в одной установке.pip install "libreyolo[rfdetr,onnx]"
Всё сразу
pip install "libreyolo[all]"
Из исходников
git clone https://github.com/LibreYOLO/libreyolo.gitcd libreyolopip install -e .

Нужен Python 3.10 или новее. Базовая установка подтягивает PyTorch, torchvision, NumPy, Pillow, OpenCV, PyYAML, requests, mss, tqdm, pycocotools, typer, click, safetensors и SciPy, поэтому YOLOv9 и остальные семейства, которым больше ничего не нужно, работают сразу после pip install libreyolo.

Клон переключается на release — стабильную ветку, код которой совпадает с этой документацией. Интеграционная ветка, где лежат ещё не вышедшие наработки, — dev.

Опциональные extra

Extra — это имя в квадратных скобках, которое добавляет зависимости, нужные одному семейству моделей или одной цели экспорта. Больше ничего не меняется: API одинаков и с extra, и без него.

Семейства моделей

ExtraЧто добавляет
rfdetrtransformers, откуда берётся бэкбон RF-DETR
eomttransformers
midastimm 1.0.x, откуда берутся энкодеры ViT-L/16 и EfficientNet-Lite3 для MiDaS
vlmtransformers, num2words, decord, lmdb, peft
samtransformers, timm
openvocabtransformers, timm, regex, ftfy
sensenovatransformers, accelerate, а вне macOS ещё и bitsandbytes
modustransformers, accelerate
clipregex и ftfy, нужные встроенному в пакет текстовому токенизатору CLIP
siglip2sentencepiece, нужный многоязычному токенизатору SigLIP 2
gazegdown, который включает автоскачивание чекпойнта L2CS
rtdetrНичего. RT-DETR не нужна дополнительная зависимость; имя сохраняется ради стабильности

Экспорт и среды выполнения

ExtraЧто добавляет
onnxonnx, onnxsim, onnxruntime
tensorrttensorrt-cu12 10.16.1.11 и pycuda, вне macOS
openvinoopenvino
coremlcoremltools
coreaicoreai-torch, только macOS
tflite, псевдоним litertlibreyolo[onnx] плюс onnx2tf, ai-edge-litert, onnx-graphsurgeon и onnx-simplifier
mnnlibreyolo[onnx] плюс MNN
ncnnpnnx и ncnn
paddlelibreyolo[onnx] плюс paddlepaddle 2.6.2 и x2paddle 1.6.0
executorchexecutorch
tritontritonclient[http] для инференса V2 по HTTP и HTTPS

Обучение, оценка и логирование

ExtraЧто добавляет
loralibreyolo[rfdetr] плюс peft, для дообучения с lora=True
plotsmatplotlib
fast-evalfaster-coco-eval, бэкенд оценки COCO на C++
tensorboardtensorboard
mlflowmlflow
wandbwandb
cometcomet-ml
clearmlclearml
neptuneneptune-scale
dvclive, псевдоним dvcdvclive

fast-eval подключается по желанию и не входит в жёсткие зависимости, чтобы платформа без готового wheel-пакета не ломала обычную установку. Если пакета нет, оценка COCO откатывается на pycocotools и запуск продолжается.

Инструменты

ExtraЧто добавляет
streamyt-dlp, нужен только для разбора URL страниц YouTube
trackingНичего. Все зависимости трекинга уже входят в основные
labellibreyolo[sam], который включает режим «клик — маска» в libreyolo label
hub-kernelskernels, опциональный загрузчик скомпилированных ядер с Hub. См. kernels, где отмечено, что его установка может сдвинуть предсказания RF-DETR в пределах точности float
clip-convertlibreyolo[clip] плюс open_clip_torch, для конвертации весов и проверок паритета
siglip2-convertlibreyolo[siglip2] плюс transformers, по той же причине

Для веб-камер, RTSP, RTMP, TCP, UDP, HLS и локальных списков из нескольких потоков extra не нужен. Нужен он только для URL страниц YouTube.

Сводный extra

libreyolo[all] ставит extra моделей, экспорта, трекинга и логирования одной командой. Некоторые намеренно оставлены за его пределами. neptune исключён, потому что стабильный neptune-scale требует protobuf ниже 7, а путь TFLite требует protobuf 7. executorch исключён, потому что ExecuTorch ограничивает, с какой версией PyTorch он сочетается, а coreai — потому что coreai-torch фиксирует PyTorch на 2.11.x и утянул бы на эту версию всё окружение. fast-eval, hub-kernels, clip-convert и siglip2-convert тоже оставлены за бортом. Любой из них ставится по имени.

Ограничения платформ

Три extra ограничены платформой через маркеры своих зависимостей, поэтому установка проходит везде и просто ставит меньше там, где wheel-пакета не существует.

ExtraОграничение
coreaiТолько macOS. Инструментарий Core AI нигде больше не конвертирует и не запускает модели
tensorrtПропускается на macOS, где нет CUDA
tflite, litertonnx2tf и ai-edge-litert требуют Python 3.12 или новее

sensenova пропускает bitsandbytes на macOS, где wheel-пакет не публикуется; остальная часть extra ставится как обычно.

Если ограничение — место на диске, то большую его часть занимает PyTorch, а большую часть PyTorch — CUDA-составляющая, которую по умолчанию тянет за собой его wheel-пакет. Wheel-пакет только для CPU убирает её, и при этом ничего не теряется. Для детекции через ONNX на машине, где torch не должно быть вовсе, см. облегчённую установку.

GPU и CUDA

Устройство выбирается при создании модели. При значении по умолчанию device="auto" берётся CUDA, когда torch.cuda.is_available() истинно, затем Metal Performance Shaders, когда истинно torch.backends.mps.is_available(), и CPU во всех остальных случаях. Больше ничто в библиотеке не проверяет железо, поэтому если PyTorch не видит GPU, то не видит её и LibreYOLO.

Чтобы вместо этого зафиксировать устройство, передайте device модели или в predict, train, val и export. Параметр принимает "cpu", "cuda", "cuda:0", "mps", голое целое число вроде 0 или строку из цифры вроде "0"; последние два разворачиваются в cuda:<n>.

Начните с libreyolo checks: команда печатает версию Torch, версии CUDA и cuDNN, с которыми Torch был собран, и каждую видимую GPU с её памятью. Если она сообщает, что CUDA нет, а в машине стоит карта NVIDIA, значит, pip выбрал wheel-пакет PyTorch со сборкой под CPU. Сначала поставьте сборку с CUDA из индекса PyTorch, а потом LibreYOLO:

bash
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
pip install libreyolo

Это тот же индекс, который репозиторий фиксирует для собственного окружения под управлением uv на Linux и Windows. Ему нужен драйвер NVIDIA 555 или новее — это требование среды выполнения CUDA 12.8. На macOS остаётся wheel-пакет с PyPI, поскольку хост загрузок PyTorch не публикует сборок под Darwin.

Проверка установки

CLI
# Python, Torch, CUDA, cuDNN, все видимые GPU и то, какие# опциональные пакеты установлены.libreyolo checks
Python
import libreyolo print(libreyolo.__version__)
Перечень моделей
# Все зарегистрированные семейства с их задачами, размерами и# входными разрешениями. Семейства, у которых не хватает extra,# выводятся вместе с командой pip, которая их включает.libreyolo models

libreyolo models — самый быстрый способ увидеть, подействовал ли extra: семейство, у которого не хватает зависимости, печатается с точной командой pip, которая его включает. Обе команды также принимают --json, который печатает те же данные в виде машиночитаемого объекта в stdout.

Проверено с LibreYOLO v1.5.0.