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 не требует ничего сверх базового пакета.
pip install libreyoloПредсказание
Это семейство доступно только для инференса: train() выбрасывает
NotImplementedError, поэтому на этой странице нет раздела об обучении.
Предсказание, валидация и экспорт поддерживаются. Веса скачиваются с
Hugging Face при первом запуске и кэшируются локально.
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)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, на котором обучался чекпойнт.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO1b.pt data=my-dataset.yamlЭкспорт
| Задача | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection 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, тоже поддерживается, но тогда предобработку и
постобработку придётся писать самостоятельно.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO1b.pt format=onnxlibreyolo export model=LibreYOLO1b.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Фабрика выбирает путь по суффиксу файла, поэтому экспортированный# артефакт загружается как любой чекпойнт и возвращает тот же объект Results.model = LibreYOLO("LibreYOLO1b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Чекпойнты
Все опубликованные файлы весов этого семейства.
| Файл | Вход (пикс.) | Лицензия весов |
|---|---|---|
| Detection | ||
| LibreYOLO1b.pt | 448 | other |
Все перечисленные выше файлы уже доступны в организации 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.