LW-DETR
Un detection transformer a ViT puro che Baidu ha posizionato come alternativa in tempo reale ai rilevatori YOLO. LibreYOLO ne include cinque dimensioni per il rilevamento, solo in inferenza.
- Task
- detection
- Dimensioni
- t, s, m, l, x at 640 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
LW-DETR non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione di base.
pip install libreyoloPredizione
I pesi vengono scaricati da Hugging Face al primo utilizzo e restano nella cache locale.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreLWDETRt.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreLWDETRt.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueL'oggetto Results restituito è quello che restituisce ogni famiglia, quindi
passare a un rilevatore diverso è 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, LW-DETR è solo per inferenza. L'upstream lo addestra con la
supervisione uno-a-molti di Group-DETR su più gruppi di query e una loss di
classificazione consapevole dell'IoU; quella ricetta non è collegata qui, quindi
train() solleva NotImplementedError.
Varianti
Cinque dimensioni, che condividono tutte l'encoder a ViT puro, il proiettore multi-scala e il decoder di deformable DETR, e girano tutte alla stessa risoluzione di input. Le due più piccole condividono la larghezza dell'encoder e si distinguono per la profondità in blocchi; le due successive condividono un encoder più largo e si distinguono per quanti livelli del proiettore alimentano il decoder; la più grande sale all'encoder più largo di tutti.
Validazione
val() restituisce un dizionario di chiavi metrics/ che coprono precisione,
recall, mAP 50 e mAP 50-95, misurate su qualsiasi dataset nel formato in cui hai
addestrato.
from libreyolo import LibreYOLO model = LibreYOLO("LibreLWDETRt.pt") # val() restituisce un dict semplice, 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=LibreLWDETRt.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 che ogni formato accetta.
from libreyolo import LibreYOLO model = LibreYOLO("LibreLWDETRt.pt")model.export(format="onnx", imgsz=640)model.export(format="tensorrt", imgsz=640, half=True)libreyolo export model=LibreLWDETRt.pt format=onnx imgsz=640libreyolo export model=LibreLWDETRt.pt format=tensorrt imgsz=640 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("LibreLWDETRt.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 | ||
| LibreLWDETRt.pt | 640 | apache-2.0 |
| LibreLWDETRs.pt | 640 | apache-2.0 |
| LibreLWDETRm.pt | 640 | apache-2.0 |
| LibreLWDETRl.pt | 640 | apache-2.0 |
| LibreLWDETRx.pt | 640 | 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
- LW-DETR, Baidu
- Licenza upstream
- Apache-2.0
- Sorgente upstream
- github.com/Atten4Vis/LW-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 published checkpoints are converted from the upstream Apache-2.0 Hugging Face release (xbsu/LW-DETR) and rehosted under the same license.
Citazione
@article{chen2024lw,
title={LW-DETR: A Transformer Replacement to YOLO for Real-Time Detection},
author={Chen, Qiang and Su, Xiangbo and Zhang, Xinyu and Wang, Jian and Chen, Jiahui and Shen, Yunpeng and Han, Chuchu and Chen, Ziliang and Xu, Weixiang and Li, Fanrong and others},
journal={arXiv preprint arXiv:2406.03459},
year={2024}
}Copiato dal blocco di citazione degli autori disponibile su github.com/Atten4Vis/LW-DETR#10-citation.