TEED
TEED (Tiny and Efficient Edge Detector) è una piccola rete convoluzionale che predice una mappa densa di probabilità di bordo a partire da una sola immagine RGB. LibreYOLO ne include l'architettura solo per il rilevamento dei bordi; la libreria non distribuisce nessun checkpoint.
- Task
- edge
- Dimensioni
- t at 352 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 MIT, pesi MIT. Uso commerciale
Installazione
TEED non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione di base.
pip install libreyoloPredizione
LibreYOLO non distribuisce nessun checkpoint di TEED. I pesi rilasciati
ufficialmente sono addestrati su BIPED, i cui termini pubblicati del dataset
limitano l'uso a scopi non commerciali, quindi LibreYOLO non li rende
disponibili sui propri mirror. Converti un checkpoint per cui hai la licenza
d'uso con weights/convert_teed_weights.py, che controlla le chiavi dei
tensori rispetto all'architettura del runtime prima di scrivere un file che
LibreYOLO può caricare direttamente:
python weights/convert_teed_weights.py upstream.pth weights/LibreTEEDt-edge.pt --verifyfrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreTEEDt-edge.pt")result = model(SAMPLE_IMAGE, save=True) edges = result.edgesprint(edges.array.shape) # (H, W) float32 in [0, 1]print(edges.binary(0.5).sum()) # n. di pixel di bordo dopo la soglialibreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.edges contiene il risultato: un array float32 (H, W) in [0, 1],
con .binary(threshold) che restituisce una maschera booleana dei bordi. Non
ci sono box, quindi conf, iou e max_det non hanno alcun effetto. Vedi
predizione per sorgenti, streaming e gestione dei risultati.
Varianti
TEED è disponibile in un'unica taglia in LibreYOLO. Il sistema di benchmark di LibreYOLO non ha misurato questa famiglia, quindi non ci sono numeri pubblicati con cui confrontarla.
Validazione
val() riporta le F-measure ODS e OIS in stile BSDS rispetto a un dataset di
bordi accoppiato: immagini affiancate a mappe di bordi con lo stesso nome base,
con una maschera di validità opzionale in modo che i pixel di padding non
contino mai. imgsz deve essere divisibile per lo stride di downsample della
rete, e LibreYOLO solleva un errore chiaro se non lo è.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"]) # F-measure a scala ottimale sul datasetprint(metrics["metrics/OIS"]) # F-measure a scala ottimale sull'immaginelibreyolo val model=weights/LibreTEEDt-edge.pt data=my-dataset.yaml imgsz=352Esportazione
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| edge | edge to ONNX: supportato | edge to TorchScript: supportato | edge to ExecuTorch: supportato | edge to TensorRT: supportato | edge to OpenVINO: supportato | edge to Paddle: non supportato | edge to MNN: non supportato | edge to RKNN: non supportato | edge to ncnn: non supportato | edge to TFLite: supportato | edge to CoreML: non supportato | edge to Core AI: non supportato |
L'esportazione dei bordi usa un contratto di runtime a risoluzione fissa e
batch 1: dynamic e un batch diverso da 1 vengono rifiutati, e il grafo
esportato restituisce un'unica mappa di probabilità fusa. Un artefatto
esportato si ricarica con LibreYOLO() in base al suffisso del file, quindi un
file .onnx si comporta come un checkpoint e restituisce lo stesso Results.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")model.export(format="onnx", imgsz=352)model.export(format="tensorrt", imgsz=352, half=True)libreyolo export model=weights/LibreTEEDt-edge.pt format=onnx imgsz=352libreyolo export model=weights/LibreTEEDt-edge.pt format=tensorrt imgsz=352 half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreTEEDt-edge.onnx")result = model(SAMPLE_IMAGE) print(result.edges.array.shape)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
- TEED, Xavier Soria
- Licenza upstream
- MIT
- Sorgente upstream
- github.com/xavysp/TEED
- Codice LibreYOLO
- MIT
- Pesi
- MIT, distribuiti dai rispettivi autori. LibreYOLO non li ospita né ne mantiene una copia.
- Interpretazione
- MIT is a permissive license, so the TEED architecture LibreYOLO ports can be used in commercial and closed-source products, with the license text and copyright notice kept alongside any copy you redistribute. LibreYOLO ships no checkpoint for this family: the officially released weights are trained on BIPED, whose published dataset terms restrict use to non-commercial purposes, and mirroring them would carry that restriction into a nominally MIT-licensed download. Convert a checkpoint you hold a license for with `weights/convert_teed_weights.py`; the MIT code license does not change the terms attached to whatever checkpoint you convert.
LibreYOLO non pubblica nessun checkpoint di TEED. Non c'è niente sui mirror
dell'organizzazione LibreYOLO; converti invece un checkpoint per cui possiedi
una licenza con weights/convert_teed_weights.py.
Citazione
@InProceedings{Soria_2023teed,
author = {Soria, Xavier and Li, Yachuan and Rouhani, Mohammad and Sappa, Angel D.},
title = {Tiny and Efficient Model for the Edge Detection Generalization},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV) Workshops},
month = {October},
year = {2023},
pages = {1364-1373}
}Copiato dal blocco di citazione degli autori disponibile su github.com/xavysp/TEED#citation.