RetinaNet

RetinaNet — одностадийный детектор, который обучается с функцией потерь focal loss: она снижает вклад простых отрицательных примеров, поэтому плотной сетке якорей больше не нужен отдельный этап генерации предложений, чтобы оставаться точной. LibreYOLO переносит реализацию из torchvision для детекции.

Задачи
detection
Размеры
r50, r50v2 at 800 px
Установка
pip install libreyolo
Уровень поддержки
Только инференс, начиная с v. Только предсказание, валидация и экспорт. Функции обучения неприменимы.
Исходный проект
RetinaNet от PyTorch, BSD-3-Clause. Статья, исходный код
Лицензии
Код: BSD-3-Clause, веса: BSD-3-Clause. Коммерческое использование

Установка

RetinaNet не нужны опциональные extra. Всё, что он импортирует, входит в базовую установку.

bash
pip install libreyolo

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

Веса скачиваются с Hugging Face при первом запуске и кэшируются локально.

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

Возвращаемый объект Results — тот же, что возвращают все семейства, поэтому замена на другой детектор — правка в одну строку. conf и iou задают пороги уверенности и NMS; RetinaNet сохраняет шаг NMS из оригинальной реализации по плотной сетке якорей. Про источники, стриминг и обработку результатов — в разделе предсказание.

Варианты

Два размера, оба на ResNet-50 с пирамидой признаков: r50 — оригинальная голова, а r50v2 заменяет её головой с GroupNorm и более широким блоком P6, который питается с последней стадии бэкбона, а не с выхода FPN.

Валидация

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

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRetinaNetr50v2.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreRetinaNetr50v2.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: не поддерживается

RetinaNet экспортируется только в ONNX и только с размером батча 1. RetinaNet масштабирует вход к переменному размеру с сохранением пропорций, поэтому LibreYOLO принудительно ставит dynamic=True независимо от переданного значения — так граф остаётся корректным для источников разной формы. Экспортированный файл .onnx загружается обратно через LibreYOLO() по суффиксу файла и возвращает тот же Results.

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

Чекпойнты

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

ФайлВход (пикс.)Лицензия весов
Detection
LibreRetinaNetr50.pt800bsd-3-clause
LibreRetinaNetr50v2.pt800bsd-3-clause

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

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

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

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

Оригинальная работа
RetinaNet, PyTorch
Лицензия исходного проекта
BSD-3-Clause
Исходный код проекта
github.com/pytorch/vision
Код LibreYOLO
MIT
Веса
BSD-3-Clause, повторно опубликованы на huggingface.co/LibreYOLO
Толкование
BSD-3-Clause is a permissive license, so this code can be used in commercial and closed-source products with no obligation on your own application code. It asks only that you keep the copyright notice and disclaimer with any copy you redistribute, and it carries no patent grant. The two published checkpoints used for parity testing are not distributed in the LibreYOLO source tree: torchvision's own documentation notes that a pretrained model's terms may depend on its training data, so each Hugging Face mirror ships the BSD text on that implied basis and repeats the caveat rather than issuing an explicit checkpoint-specific grant.

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