CenterNet

CenterNet моделирует объект как центральную точку его ограничивающей рамки и регрессирует все остальные свойства из пика тепловой карты, поэтому ему не нужны ни якоря, ни шаг non-maximum-suppression. В LibreYOLO он поставляется как детектор только для инференса.

Задачи
detection
Размеры
resdcn18, dla34 at 512 px
Установка
pip install libreyolo
Уровень поддержки
Только инференс, начиная с v. Только предсказание, валидация и экспорт. Функции обучения неприменимы.
Исходный проект
CenterNet от UT Austin and UC Berkeley, MIT. Статья, исходный код
Лицензии
Код: MIT, веса: MIT. Коммерческое использование

Установка

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

bash
pip install libreyolo

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

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

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

Возвращаемый объект Results — тот же, что возвращают все семейства, поэтому замена на другой детектор — правка в одну строку. conf и max_det фильтруют отранжированные пики тепловой карты; iou принимается ради совместимости API, но ни на что не влияет, потому что декодированию top-k пиков в CenterNet не нужен шаг подавления по IoU рамок. Про источники, стриминг и обработку результатов — в разделе предсказание.

Варианты

Два бэкбона. resdcn18 соединяет ствол ResNet-18 с апсемплингом на деформируемых свёртках; dla34 соединяет ствол DLA-34 с апсемплингом через итеративную глубокую агрегацию. Оба питают одни и те же три плотные головы (тепловая карта, ширина/высота, смещение) и один и тот же входной холст.

Валидация

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

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

Для экспорта в ONNX нужен opset 16 или новее: стадия апсемплинга на деформируемых свёртках в обоих бэкбонах разворачивается в ONNX-оператор GridSample, который появился в opset 16. Запрос более старого opset вызывает ошибку ещё до начала трассировки.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # Для экспорта в ONNX нужен opset 16 или новее: стадия апсемплинга# на деформируемых свёртках разворачивается в GridSample, который появился в opset 16.model.export(format="onnx", opset=18)model.export(format="tensorrt")
CLI
libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18
Использование экспортированного файла
from libreyolo import LibreYOLO # Фабрика выбирает путь по суффиксу файла, поэтому экспортированный артефакт# загружается как любой чекпойнт и возвращает тот же объект Results.model = LibreYOLO("LibreCenterNetresdcn18.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Чекпойнты

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

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

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

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

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

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

Оригинальная работа
CenterNet, UT Austin and UC Berkeley
Лицензия исходного проекта
MIT
Исходный код проекта
github.com/xingyizhou/CenterNet
Код LibreYOLO
MIT
Веса
MIT, повторно опубликованы на huggingface.co/LibreYOLO
Толкование
MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the copyright notice and license text with any copy you redistribute, and it places no obligation on your own application code. The official ResDCN-18 and DLA-34 COCO checkpoints were published by the MIT-licensed CenterNet project but carry no separate per-checkpoint license file; LibreYOLO's mirror states MIT as implied by the releasing project rather than a publisher-confirmed, checkpoint-specific grant.

Граф ResDCN-18 дополнительно ссылается на human-pose-estimation.pytorch от Microsoft под лицензией MIT, а граф DLA-34 — на реализацию DLA от Fisher Yu под BSD-3-Clause. LibreYOLO не поставляет в своём составе оригинальное расширение DCNv2 из исходного проекта; нативное выполнение вместо него запускает deform_conv2d из torchvision под BSD-3-Clause, а переносимая реализация только для экспорта написана для LibreYOLO отдельно.

Цитирование

@inproceedings{zhou2019objects,
  title={Objects as Points},
  author={Zhou, Xingyi and Wang, Dequan and Kr{\"a}henb{\"u}hl, Philipp},
  booktitle={arXiv preprint arXiv:1904.07850},
  year={2019}
}

Скопировано из блока цитирования авторов на странице github.com/xingyizhou/CenterNet#citation.

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