CenterNet
CenterNet modélise un objet comme le point central de sa bounding box et régresse toutes ses autres propriétés à partir d'un pic de heatmap, si bien qu'il n'a besoin ni d'ancres ni d'étape de non-maximum suppression. LibreYOLO le fournit comme détecteur en inférence seule.
- Tâches
- detection
- Tailles
- resdcn18, dla34 at 512 px
- Installer
pip install libreyolo- Niveau de support
- Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
- Licences
- Code MIT, poids MIT. Usage commercial
Installation
CenterNet ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.
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)L'objet Results renvoyé est celui que renvoient toutes les familles, si bien
que passer à un autre détecteur ne demande qu'une ligne de changement. conf et
max_det filtrent les pics de heatmap déjà classés ; iou est accepté par
parité d'API mais n'a aucun effet, car le décodage top-k des pics de CenterNet
n'a besoin d'aucune étape de suppression par IoU de boîtes. Voir
la prédiction pour les sources, le streaming et le traitement
des résultats.
Variantes
Deux backbones. resdcn18 associe un tronc ResNet-18 à un upsampling par
convolution déformable ; dla34 associe un tronc DLA-34 à un upsampling par
agrégation profonde itérative. Les deux alimentent les mêmes trois têtes denses
(heatmap, largeur/hauteur, offset) et le même canevas d'entrée.
Valider
val() renvoie un dictionnaire de clés metrics/ couvrant la précision, le
rappel, la mAP 50 et la mAP 50-95, mesurées sur n'importe quel dataset dans le
format avec lequel vous avez entraîné.
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.yamlExporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX : pris en charge | Detection to TorchScript : pris en charge | Detection to ExecuTorch : pris en charge | Detection to TensorRT : pris en charge | Detection to OpenVINO : pris en charge | Detection to Paddle : non pris en charge | Detection to MNN : non pris en charge | Detection to RKNN : non pris en charge | Detection to ncnn : non pris en charge | Detection to TFLite : non pris en charge | Detection to CoreML : non pris en charge | Detection to Core AI : non pris en charge |
L'export ONNX exige l'opset 16 ou plus récent : dans les deux backbones, l'étage
d'upsampling par convolution déformable se traduit par l'opérateur ONNX
GridSample, introduit par l'opset 16. Demander un opset antérieur lève une
erreur avant le début du tracé.
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # L'export ONNX exige l'opset 16 ou plus, car l'upsampling par# convolution déformable se traduit par GridSample, arrivé en opset 16.model.export(format="onnx", opset=18)model.export(format="tensorrt")libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18from libreyolo import LibreYOLO # La factory s'appuie sur l'extension du fichier, donc un artefact# exporté se charge comme un checkpoint et renvoie le même Results.model = LibreYOLO("LibreCenterNetresdcn18.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Tous les fichiers de poids publiés de cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Detection | ||
| LibreCenterNetresdcn18.pt | 512 | mit |
| LibreCenterNetdla34.pt | 512 | mit |
Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.
Licence
Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.
Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.
- Travail d'origine
- CenterNet, UT Austin and UC Berkeley
- Licence du projet d'origine
- MIT
- Source du projet d'origine
- github.com/xingyizhou/CenterNet
- Code de LibreYOLO
- MIT
- Poids
- MIT, republiés sur huggingface.co/LibreYOLO
- Interprétation
- 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.
Le graphe ResDCN-18 crédite également human-pose-estimation.pytorch de
Microsoft, sous licence MIT, et le graphe DLA-34 crédite l'implémentation DLA de
Fisher Yu, sous licence BSD-3-Clause. LibreYOLO n'embarque pas l'extension DCNv2
d'origine qu'utilisait le projet upstream ; l'exécution native passe à la place
par le deform_conv2d de torchvision, sous licence BSD-3-Clause, et
l'implémentation portable réservée à l'export a été écrite séparément pour
LibreYOLO.
Citation
@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}
}Copié depuis le bloc de citation des auteurs sur github.com/xingyizhou/CenterNet#citation.