CenterNet
CenterNet modelliert ein Objekt als Mittelpunkt seiner Bounding Box und regressiert jede weitere Eigenschaft aus einem Heatmap-Peak, braucht also keine Anchors und keinen Non-Maximum-Suppression-Schritt. LibreYOLO liefert es als reinen Inferenz-Detektor aus.
- Aufgaben
- detection
- Größen
- resdcn18, dla34 at 512 px
- Installation
pip install libreyolo- Supportstufe
- Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
- Upstream
- CenterNet von UT Austin and UC Berkeley, MIT. Publikation, Quelle
- Lizenzen
- Code MIT, Gewichte MIT. Kommerzielle Nutzung
Installation
CenterNet braucht kein optionales Extra. Alles, was es importiert, steckt in der Basisinstallation.
pip install libreyoloVorhersage
Die Gewichte werden beim ersten Aufruf von Hugging Face geladen und lokal zwischengespeichert.
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)Das zurückgegebene Results-Objekt ist dasselbe, das jede Familie zurückgibt,
ein anderer Detektor ist also eine Änderung von einer Zeile. conf und
max_det filtern die nach Rang sortierten Heatmap-Peaks; iou wird aus
Gründen der API-Parität akzeptiert, hat aber keine Wirkung, weil das
Top-k-Peak-Decoding von CenterNet keinen Schritt zur Box-IoU-Unterdrückung
braucht. Siehe Vorhersage für Quellen, Streaming und die
Verarbeitung der Ergebnisse.
Varianten
Zwei Backbones. resdcn18 kombiniert einen ResNet-18-Trunk mit Upsampling per
Deformable Convolution; dla34 kombiniert einen DLA-34-Trunk mit iterativem
Deep-Aggregation-Upsampling. Beide speisen dieselben drei dichten Heads
(Heatmap, Breite/Höhe, Offset) und arbeiten auf derselben Eingabefläche.
Validierung
val() liefert ein Dictionary mit metrics/-Schlüsseln für Precision, Recall,
mAP 50 und mAP 50-95, gemessen an jedem Datensatz in dem Format, auf dem du
trainiert hast.
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.yamlExport
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: unterstützt | Detection to TorchScript: unterstützt | Detection to ExecuTorch: unterstützt | Detection to TensorRT: unterstützt | Detection to OpenVINO: unterstützt | Detection to Paddle: nicht unterstützt | Detection to MNN: nicht unterstützt | Detection to RKNN: nicht unterstützt | Detection to ncnn: nicht unterstützt | Detection to TFLite: nicht unterstützt | Detection to CoreML: nicht unterstützt | Detection to Core AI: nicht unterstützt |
Der ONNX-Export verlangt Opset 16 oder neuer: die Upsampling-Stufe mit
Deformable Convolution wird in beiden Backbones auf den ONNX-Operator
GridSample abgebildet, den Opset 16 eingeführt hat. Forderst du ein älteres
Opset an, bricht der Export ab, bevor das Tracing beginnt.
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # ONNX-Export braucht Opset 16 oder neuer: die Upsampling-Stufe mit# Deformable Convolution wird zu GridSample, neu in Opset 16.model.export(format="onnx", opset=18)model.export(format="tensorrt")libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18from libreyolo import LibreYOLO # Die Factory routet über die Dateiendung, ein exportiertes Artefakt# lädt wie jeder Checkpoint und liefert dasselbe Results-Objekt.model = LibreYOLO("LibreCenterNetresdcn18.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Jede veröffentlichte Gewichtsdatei dieser Familie.
| Datei | Eingabe (px) | Lizenz der Gewichte |
|---|---|---|
| Detection | ||
| LibreCenterNetresdcn18.pt | 512 | mit |
| LibreCenterNetdla34.pt | 512 | mit |
Jede oben aufgeführte Datei ist heute in der LibreYOLO-Organisation verfügbar und wird bei der ersten Verwendung heruntergeladen.
Lizenzierung
Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.
Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.
- Originalarbeit
- CenterNet, UT Austin and UC Berkeley
- Upstream-Lizenz
- MIT
- Upstream-Quelle
- github.com/xingyizhou/CenterNet
- LibreYOLO-Code
- MIT
- Gewichte
- MIT, erneut unter huggingface.co/LibreYOLO veröffentlicht
- Einordnung
- 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.
Der ResDCN-18-Graph nennt zusätzlich Microsofts MIT-lizenziertes
human-pose-estimation.pytorch, und der DLA-34-Graph nennt Fisher Yus
DLA-Implementierung unter BSD-3-Clause. LibreYOLO liefert die ursprüngliche
DCNv2-Erweiterung des Upstream-Projekts nicht mit; die native Ausführung nutzt
stattdessen deform_conv2d aus torchvision unter BSD-3-Clause, und die
portable Implementierung nur für den Export wurde eigens für LibreYOLO
geschrieben.
Zitieren
@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}
}Aus dem Zitierblock der Autoren unter github.com/xingyizhou/CenterNet#citation kopiert.