YOLOv4
YOLOv4 поєднує бекбон CSPDarknet-53, блок SPP і neck PANet з активаціями Mish. LibreYOLO зберігає її як заморожений експонат лише для інференсу в розмірах tiny і base.
- Задачі
- detection
- Розміри
- t, b at 416 to 608 px
- Встановлення
pip install libreyolo- Рівень підтримки
- Музейний, починаючи з v. Заморожений експонат. Лише виправлення помилок.
- Першоджерело
- YOLOv4, автори: Alexey Bochkovskiy, ліцензія Public domain (Darknet "YOLO LICENSE"). Стаття, джерело
- Ліцензії
- Код: MIT, ваги: Public domain (Darknet "YOLO LICENSE"). Комерційне використання
Встановлення
Для YOLOv4 не потрібні додаткові залежності понад базовий пакет.
pip install libreyoloПередбачення
Це сімейство призначене лише для інференсу: train() спричиняє
NotImplementedError, тому на цій сторінці немає розділу «Навчання».
Передбачення, валідація та експорт підтримуються. Під час першого використання
ваги завантажуються з Hugging Face і кешуються локально.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO4b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO4b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueПовернений об'єкт Results є однаковим для всіх сімейств, тому заміна
детектора потребує зміни одного рядка. conf фільтрує за порогом упевненості,
а iou задає поріг NMS. Обидва параметри застосовуються після власного
масштабування центра scale_x_y кожної голови. Типи джерел, потокове
передбачення та обробку результатів описано в розділі
передбачення.
Валідація
val() повертає словник ключів metrics/ із точністю, повнотою, mAP 50 та
mAP 50-95, виміряними на будь-якому датасеті у форматі, на якому виконується
валідація.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO4b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO4b.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("LibreYOLO4b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO4b.pt format=onnxlibreyolo export model=LibreYOLO4b.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Фабрика маршрутизує за суфіксом файлу, тому експортований артефакт# завантажується як будь-яка контрольна точка й повертає той самий об'єкт Results.model = LibreYOLO("LibreYOLO4b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Контрольні точки
Усі опубліковані файли ваг цього сімейства.
| Файл | Вхід (пікс.) | Ліцензія ваг |
|---|---|---|
| Detection | ||
| LibreYOLO4t.pt | 416 | other |
| LibreYOLO4b.pt | 608 | other |
Кожен наведений вище файл уже доступний у організації LibreYOLO і завантажується під час першого використання.
Ліцензування
Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.
Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.
- Оригінальна робота
- YOLOv4, Alexey Bochkovskiy
- Ліцензія першоджерела
- Public domain (Darknet "YOLO LICENSE")
- Джерело першоджерела
- github.com/AlexeyAB/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.
Цитування
@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Скопійовано з блоку цитування авторів на сторінці github.com/AlexeyAB/darknet#citation.