Deformable DETR
Deformable DETR ersetzt die dichte Cross-Attention von DETR durch spärliches, mehrskaliges Sampling rund um jeden Referenzpunkt, und genau das hat Transformer-Detektoren praktisch trainierbar gemacht. LibreYOLO liefert fünf Größen für die Erkennung, nur für die Inferenz.
- Aufgaben
- detection
- Größen
- r50ss, r50ssdc5, r50, r50refine, r50twostage at 800 px
- Installation
pip install libreyolo- Supportstufe
- Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
- Upstream
- Deformable DETR von SenseTime, Apache-2.0. Publikation, Quelle
- Lizenzen
- Code Apache-2.0, Gewichte Apache-2.0. Kommerzielle Nutzung
Installation
Deformable DETR braucht kein optionales Extra. Alles, was es importiert, steckt in der Basis-Installation, mit einem reinen PyTorch-Kern für die mehrskalige Deformable Attention.
pip install libreyololibreyolo[hub-kernels] zu installieren ist optional. Sobald das Paket
kernels vorhanden ist, holt LibreYOLO zur Laufzeit einen kompilierten Kernel
für die mehrskalige Deformable Attention vom Hugging Face Hub und nutzt ihn
anstelle des reinen PyTorch-Kerns; LIBREYOLO_HUB_KERNELS=0 schaltet das
wieder ab.
Vorhersage
Die Gewichte werden beim ersten Aufruf von Hugging Face geladen und lokal zwischengespeichert.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDeformableDETRr50.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreDeformableDETRr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueDas zurückgegebene Results-Objekt ist dasselbe, das jede Familie liefert, der
Wechsel zu einem anderen Detektor ist also eine Änderung von einer Zeile.
conf und max_det filtern die Auswahl der Queries; iou wird aus Gründen
der API-Parität akzeptiert, hat aber keine Wirkung, weil der Decoder ein
Set-Predictor ohne NMS-Schritt ist. Siehe Vorhersage für
Quellen, Streaming und die Weiterverarbeitung der Ergebnisse.
Deformable DETR ist in LibreYOLO reine Inferenz. Upstream wird mit Hungarian
Matching und einem Focal-Loss für die Klassifikation trainiert; dieses Rezept
ist hier nicht implementiert, deshalb löst train() einen
NotImplementedError aus.
Varianten
Fünf Checkpoints decken die veröffentlichten Konfigurationen ab, alle bei
derselben Eingabeauflösung. r50ss beschränkt die Attention auf eine einzige
Feature-Skala; r50ssdc5 ergänzt darüber hinaus eine dilatierte C5-Stufe im
Backbone. r50 ist die mehrskalige Standardkonfiguration und samplet über vier
Feature-Map-Ebenen. r50refine ergänzt eine iterative Verfeinerung der
Bounding Boxes über die Decoder-Schichten hinweg, und r50twostage erzeugt
seine ersten Regionsvorschläge aus der Encoder-Ausgabe statt aus gelernten
Queries.
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("LibreDeformableDETRr50.pt") # val() liefert ein einfaches dict, kein Objektmetrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])libreyolo val model=LibreDeformableDETRr50.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 |
Ein exportiertes Artefakt lädt über LibreYOLO() anhand seiner Dateiendung
wieder zurück, eine .onnx- oder .engine-Datei verhält sich also wie ein
Checkpoint und liefert dasselbe Results. Export listet die
Argumente auf, die jedes Format akzeptiert.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeformableDETRr50.pt")model.export(format="onnx", imgsz=800)model.export(format="tensorrt", imgsz=800, half=True)libreyolo export model=LibreDeformableDETRr50.pt format=onnx imgsz=800libreyolo export model=LibreDeformableDETRr50.pt format=tensorrt imgsz=800 half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Die Factory entscheidet anhand der Dateiendung, ein exportiertes# Artefakt lädt also wie jeder Checkpoint und liefert dasselbe Results.model = LibreYOLO("LibreDeformableDETRr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Jede veröffentlichte Gewichtsdatei dieser Familie.
| Datei | Eingabe (px) | Lizenz der Gewichte |
|---|---|---|
| Detection | ||
| LibreDeformableDETRr50ss.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50ssdc5.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50twostage.pt | 800 | apache-2.0 |
| LibreDeformableDETRr50refine.pt | 800 | apache-2.0 |
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
- Deformable DETR, SenseTime
- Upstream-Lizenz
- Apache-2.0
- Upstream-Quelle
- github.com/fundamentalvision/Deformable-DETR
- LibreYOLO-Code
- MIT
- Gewichte
- Apache-2.0, erneut unter huggingface.co/LibreYOLO veröffentlicht
- Einordnung
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. The five checkpoints are converted from SenseTime's own Hugging Face mirrors, each of which declares apache-2.0 in its model card; that declaration, not the original repository's Google Drive release links, is the redistribution basis.
Zitieren
@article{zhu2020deformable,
title={Deformable DETR: Deformable Transformers for End-to-End Object Detection},
author={Zhu, Xizhou and Su, Weijie and Lu, Lewei and Li, Bin and Wang, Xiaogang and Dai, Jifeng},
journal={arXiv preprint arXiv:2010.04159},
year={2020}
}Aus dem Zitierblock der Autoren unter github.com/fundamentalvision/Deformable-DETR#citing-deformable-detr kopiert.