TEED

TEED (Tiny and Efficient Edge Detector) est un petit réseau convolutionnel qui prédit une carte dense de probabilité des contours à partir d'une image RGB. LibreYOLO encapsule son architecture uniquement pour la détection de contours ; aucun checkpoint n'est fourni avec la bibliothèque.

Tâches
edge
Tailles
t at 352 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
TEED par Xavier Soria, MIT. Article, source
Licences
Code MIT, poids MIT. Usage commercial

Installer

TEED ne nécessite aucun extra facultatif. Tous ses imports sont inclus dans l'installation de base.

bash
pip install libreyolo

Prédire

LibreYOLO ne fournit aucun checkpoint TEED. Les poids publiés officiellement sont entraînés sur BIPED, dont les conditions publiées limitent l'utilisation à des fins non commerciales. LibreYOLO ne les réplique donc pas. Convertissez un checkpoint que vous êtes autorisé à utiliser avec weights/convert_teed_weights.py, qui vérifie les clés des tenseurs par rapport à l'architecture du runtime avant d'écrire un fichier directement chargeable par LibreYOLO\u00a0:

bash
python weights/convert_teed_weights.py upstream.pth weights/LibreTEEDt-edge.pt --verify

Python
from 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 dans [0, 1]print(edges.binary(0.5).sum())  # nombre de pixels de contour après seuillage
CLI
libreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

result.edges contient le résultat\u00a0: un tableau float32 (H, W) dans [0, 1], dont .binary(threshold) renvoie un masque booléen des contours. Il n'y a aucune bounding box, donc conf, iou et max_det n'ont aucun effet. Consultez la prédiction pour les sources, le streaming et la gestion des résultats.

Variantes

LibreYOLO fournit une seule taille de TEED. Le banc de benchmark de LibreYOLO n'a pas mesuré cette famille, aucune valeur publiée ne permet donc de la comparer aux autres.

Valider

val() rapporte les mesures F ODS et OIS de type BSDS sur un dataset de contours apparié\u00a0: les images sont placées à côté de cartes de contours de même nom de base, avec un masque de validité facultatif pour que les pixels de remplissage ne soient jamais comptés. imgsz doit être divisible par le stride de sous-échantillonnage du réseau. LibreYOLO lève une erreur explicite si ce n'est pas le cas.

Python
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"])   # mesure F optimale à l'échelle du datasetprint(metrics["metrics/OIS"])   # mesure F optimale à l'échelle de l'image
CLI
libreyolo val model=weights/LibreTEEDt-edge.pt data=my-dataset.yaml imgsz=352

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
edgeedge to ONNX : pris en chargeedge to TorchScript : pris en chargeedge to ExecuTorch : pris en chargeedge to TensorRT : pris en chargeedge to OpenVINO : pris en chargeedge to Paddle : non pris en chargeedge to MNN : non pris en chargeedge to RKNN : non pris en chargeedge to ncnn : non pris en chargeedge to TFLite : pris en chargeedge to CoreML : non pris en chargeedge to Core AI : non pris en charge

L'export des contours suit un contrat de runtime à résolution fixe et avec un batch de 1\u00a0: dynamic et toute valeur de batch autre que 1 sont rejetés, et le graphe exporté produit une seule carte de probabilités fusionnée. Un artefact exporté se recharge dans LibreYOLO() grâce au suffixe de son fichier. Un fichier .onnx se comporte donc comme un checkpoint et renvoie les mêmes Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")model.export(format="onnx", imgsz=352)model.export(format="tensorrt", imgsz=352, half=True)
CLI
libreyolo export model=weights/LibreTEEDt-edge.pt format=onnx imgsz=352libreyolo export model=weights/LibreTEEDt-edge.pt format=tensorrt imgsz=352 half=True
Utiliser le fichier exporté
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreTEEDt-edge.onnx")result = model(SAMPLE_IMAGE) print(result.edges.array.shape)

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
TEED, Xavier Soria
Licence du projet d'origine
MIT
Source du projet d'origine
github.com/xavysp/TEED
Code de LibreYOLO
MIT
Poids
MIT, distribués par leurs auteurs. LibreYOLO ne les héberge pas et n'en fournit pas de miroir.
Interprétation
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 ne publie aucun checkpoint TEED. Rien n'est répliqué sous l'organisation LibreYOLO\u00a0; convertissez plutôt un checkpoint pour lequel vous possédez une licence avec weights/convert_teed_weights.py.

Citation

@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}
}

Copié depuis le bloc de citation des auteurs sur github.com/xavysp/TEED#citation.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.