Deformable DETR
Deformable DETR sostituisce la cross-attention densa di DETR con un campionamento sparso e multiscala attorno a ogni punto di riferimento, ed è questo che ha reso i detector transformer addestrabili nella pratica. LibreYOLO distribuisce cinque dimensioni per il rilevamento di oggetti, solo in inferenza.
- Task
- detection
- Dimensioni
- r50ss, r50ssdc5, r50, r50refine, r50twostage at 800 px
- Installa
pip install libreyolo- Livello di supporto
- Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
- Licenze
- Codice Apache-2.0, pesi Apache-2.0. Uso commerciale
Installazione
Deformable DETR non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione di base, con un core di attenzione deformabile multiscala in PyTorch puro.
pip install libreyoloInstallare libreyolo[hub-kernels] è opzionale. Quando il pacchetto kernels
è presente, LibreYOLO scarica a runtime un kernel compilato di attenzione
deformabile multiscala dall'Hugging Face Hub e lo usa al posto del core in
PyTorch puro; LIBREYOLO_HUB_KERNELS=0 lo disattiva di nuovo.
Predizione
I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache locale.
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=TrueL'oggetto Results restituito è lo stesso che restituiscono tutte le famiglie,
quindi passare a un altro detector è una modifica di una riga. conf e
max_det filtrano la selezione delle query; iou è accettato per parità di
API ma non ha effetto, perché il decoder è un predittore di insiemi senza
passaggio di NMS. Vedi predizione per sorgenti, streaming e
gestione dei risultati.
In LibreYOLO Deformable DETR è solo per l'inferenza. Upstream lo addestra con
matching ungherese e una focal loss di classificazione; quella ricetta non è
implementata qui, quindi train() solleva NotImplementedError.
Varianti
Cinque checkpoint coprono le configurazioni rilasciate, tutte alla stessa
risoluzione di input. r50ss limita l'attenzione a una sola scala di feature;
r50ssdc5 aggiunge sopra uno stadio C5 dilatato nel backbone. r50 è la
configurazione multiscala predefinita, che campiona su quattro livelli di
feature map. r50refine aggiunge il raffinamento iterativo dei bounding box
lungo i layer del decoder, e r50twostage genera le proposte di regione
iniziali dall'output dell'encoder invece che da query apprese.
Validazione
val() restituisce un dizionario di chiavi metrics/ che coprono precisione,
recall, mAP 50 e mAP 50-95, misurate su qualsiasi dataset nel formato con cui
hai addestrato.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeformableDETRr50.pt") # val() restituisce un semplice dict, non un oggettometrics = 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.yamlEsportazione
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: supportato | Detection to TorchScript: supportato | Detection to ExecuTorch: supportato | Detection to TensorRT: supportato | Detection to OpenVINO: supportato | Detection to Paddle: non supportato | Detection to MNN: non supportato | Detection to RKNN: non supportato | Detection to ncnn: non supportato | Detection to TFLite: non supportato | Detection to CoreML: non supportato | Detection to Core AI: non supportato |
Un artefatto esportato si ricarica con LibreYOLO() in base al suffisso del
file, quindi un file .onnx o .engine si comporta come un checkpoint e
restituisce lo stesso Results. Esportazione elenca gli
argomenti accettati da ogni formato.
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 # La factory smista in base al suffisso del file, quindi un artefatto# esportato si carica come qualsiasi checkpoint e restituisce lo stesso# oggetto Results.model = LibreYOLO("LibreDeformableDETRr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoint
Tutti i file di pesi pubblicati per questa famiglia.
| File | Ingresso (px) | Licenza dei pesi |
|---|---|---|
| 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 |
Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.
Licenze
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- Deformable DETR, SenseTime
- Licenza upstream
- Apache-2.0
- Sorgente upstream
- github.com/fundamentalvision/Deformable-DETR
- Codice LibreYOLO
- MIT
- Pesi
- Apache-2.0, ripubblicati su huggingface.co/LibreYOLO
- Interpretazione
- 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.
Citazione
@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}
}Copiato dal blocco di citazione degli autori disponibile su github.com/fundamentalvision/Deformable-DETR#citing-deformable-detr.