Als Markdown anzeigen

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.

bash
pip install libreyolo

libreyolo[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.

Python
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)
CLI
libreyolo predict model=LibreDeformableDETRr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

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

Python
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"])
CLI
libreyolo val model=LibreDeformableDETRr50.pt data=my-dataset.yaml

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: unterstütztDetection to TorchScript: unterstütztDetection to ExecuTorch: unterstütztDetection to TensorRT: unterstütztDetection to OpenVINO: unterstütztDetection to Paddle: nicht unterstütztDetection to MNN: nicht unterstütztDetection to RKNN: nicht unterstütztDetection to ncnn: nicht unterstütztDetection to TFLite: nicht unterstütztDetection to CoreML: nicht unterstütztDetection 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeformableDETRr50.pt")model.export(format="onnx", imgsz=800)model.export(format="tensorrt", imgsz=800, half=True)
CLI
libreyolo export model=LibreDeformableDETRr50.pt format=onnx imgsz=800libreyolo export model=LibreDeformableDETRr50.pt format=tensorrt imgsz=800 half=True
Die exportierte Datei nutzen
from 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.

DateiEingabe (px)Lizenz der Gewichte
Detection
LibreDeformableDETRr50ss.pt800apache-2.0
LibreDeformableDETRr50ssdc5.pt800apache-2.0
LibreDeformableDETRr50.pt800apache-2.0
LibreDeformableDETRr50twostage.pt800apache-2.0
LibreDeformableDETRr50refine.pt800apache-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
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.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.