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. Таблиці підтримки, контрольні точки й результати бенчмарків на цій сторінці згенеровано з випущеної бібліотеки та опублікованих ваг, а не написано вручну.