YOLOv1

YOLOv1 — оригинальный детектор 2016 года, давший имя всему семейству YOLO: одна свёрточная сеть с полносвязной головой предсказывает все рамки и оценки классов за один проход, без якорей. LibreYOLO хранит его как замороженный экспонат только для инференса.

Задачи
detection
Размеры
t, b at 448 px
Установка
pip install libreyolo
Уровень поддержки
Музей, начиная с v. Замороженный экспонат. Только исправления ошибок.
Исходный проект
YOLOv1 от Joseph Redmon, Public domain (Darknet "YOLO LICENSE"). Статья, исходный код
Лицензии
Код: MIT, веса: Public domain (Darknet "YOLO LICENSE"). Коммерческое использование

Установка

YOLOv1 не требует ничего сверх базового пакета.

bash
pip install libreyolo

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

Это семейство доступно только для инференса: train() выбрасывает NotImplementedError, поэтому на этой странице нет раздела об обучении. Предсказание, валидация и экспорт поддерживаются. Веса скачиваются с Hugging Face при первом запуске и кэшируются локально.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO1b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreYOLO1b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Возвращаемый объект Results — тот же, что возвращают все семейства, поэтому замена на другой детектор — правка в одну строку. У этого семейства есть две особенности. Опубликованный чекпойнт обучен на Pascal VOC (2007+2012), а не на COCO, поэтому box.cls индексирует 20 категорий VOC (aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor), а не 80 категорий COCO. А полносвязная голова детекции принимает по одному изображению за раз, поэтому список источников обрабатывается в цикле, а не как настоящий батч. Об источниках, стриминге и обработке результатов см. предсказание.

Валидация

val() возвращает словарь с ключами metrics/, покрывающими точность, полноту, mAP 50 и mAP 50-95, измеренные на датасете в том же пространстве меток в стиле VOC, на котором обучался чекпойнт.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreYOLO1b.pt data=my-dataset.yaml

Экспорт

ЗадачаONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: поддерживаетсяDetection to TorchScript: поддерживаетсяDetection to ExecuTorch: поддерживаетсяDetection to TensorRT: поддерживаетсяDetection to OpenVINO: поддерживаетсяDetection to Paddle: не поддерживаетсяDetection to MNN: не поддерживаетсяDetection to RKNN: не поддерживаетсяDetection to ncnn: поддерживаетсяDetection to TFLite: не поддерживаетсяDetection to CoreML: не поддерживаетсяDetection to Core AI: поддерживается

Экспортированный артефакт загружается обратно через LibreYOLO() по суффиксу файла, поэтому файл .onnx или .engine ведёт себя как чекпойнт и возвращает тот же Results. Запуск графа в чистой среде выполнения, без установленной библиотеки LibreYOLO, тоже поддерживается, но тогда предобработку и постобработку придётся писать самостоятельно.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreYOLO1b.pt format=onnxlibreyolo export model=LibreYOLO1b.pt format=tensorrt half=True
Использование экспортированного файла
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Фабрика выбирает путь по суффиксу файла, поэтому экспортированный# артефакт загружается как любой чекпойнт и возвращает тот же объект Results.model = LibreYOLO("LibreYOLO1b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Чекпойнты

Все опубликованные файлы весов этого семейства.

ФайлВход (пикс.)Лицензия весов
Detection
LibreYOLO1b.pt448other

Все перечисленные выше файлы уже доступны в организации LibreYOLO и скачиваются при первом использовании.

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

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

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

Оригинальная работа
YOLOv1, Joseph Redmon
Лицензия исходного проекта
Public domain (Darknet "YOLO LICENSE")
Исходный код проекта
github.com/pjreddie/darknet
Код LibreYOLO
MIT
Веса
Public domain (Darknet "YOLO LICENSE"), повторно опубликованы на huggingface.co/LibreYOLO
Толкование
Darknet's bundled NOTICE quotes its own license in full: "Darknet is public domain. Do whatever you want with it." That covers both the architecture and the pretrained weights LibreYOLO converts from it, with no attribution requirement and no restriction on commercial use. LibreYOLO's own code around this architecture is MIT. One thing to know before deploying this checkpoint: it is trained on Pascal VOC 2007+2012, not COCO, so it detects and names the 20 VOC categories rather than the 80 COCO ones.

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