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.
Origine
CenterNet par UT Austin and UC Berkeley, MIT. Article, source
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.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.

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)

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é.

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

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX : pris en chargeDetection to TorchScript : pris en chargeDetection to ExecuTorch : pris en chargeDetection to TensorRT : pris en chargeDetection to OpenVINO : pris en chargeDetection to Paddle : non pris en chargeDetection to MNN : non pris en chargeDetection to RKNN : non pris en chargeDetection to ncnn : non pris en chargeDetection to TFLite : non pris en chargeDetection to CoreML : non pris en chargeDetection 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é.

Python
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")
CLI
libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18
Utiliser le fichier exporté
from 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.

FichierEntrée (px)Licence des poids
Detection
LibreCenterNetresdcn18.pt512mit
LibreCenterNetdla34.pt512mit

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.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.