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. Всё, что он импортирует, входит в базовую установку.
pip install libreyoloПредсказание
Веса скачиваются с Hugging Face при первом запуске и кэшируются локально.
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)libreyolo predict model=LibreCenterNetresdcn18.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom 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, измеренные на любом датасете в том формате, в
котором вы обучали модель.
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreCenterNetresdcn18.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: не поддерживается |
Для экспорта в ONNX нужен opset 16 или новее: стадия апсемплинга на
деформируемых свёртках в обоих бэкбонах разворачивается в ONNX-оператор
GridSample, который появился в opset 16. Запрос более старого opset вызывает
ошибку ещё до начала трассировки.
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # Для экспорта в ONNX нужен opset 16 или новее: стадия апсемплинга# на деформируемых свёртках разворачивается в GridSample, который появился в opset 16.model.export(format="onnx", opset=18)model.export(format="tensorrt")libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18from libreyolo import LibreYOLO # Фабрика выбирает путь по суффиксу файла, поэтому экспортированный артефакт# загружается как любой чекпойнт и возвращает тот же объект Results.model = LibreYOLO("LibreCenterNetresdcn18.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Чекпойнты
Все опубликованные файлы весов этого семейства.
| Файл | Вход (пикс.) | Лицензия весов |
|---|---|---|
| Detection | ||
| LibreCenterNetresdcn18.pt | 512 | mit |
| LibreCenterNetdla34.pt | 512 | mit |
Все перечисленные выше файлы уже доступны в организации 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.