DexiNed

DexiNed (Dense Extreme Inception Network) est un réseau convolutif qui prédit une carte dense de probabilité de contours à partir d'une seule image RGB. LibreYOLO enveloppe son architecture pour la détection de contours uniquement ; aucun checkpoint n'est livré avec la bibliothèque.

Tâches
edge
Tailles
b 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
DexiNed par Xavier Soria, MIT. Article, source
Licences
Code MIT, poids MIT. Usage commercial

Installation

DexiNed ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.

bash
pip install libreyolo

Prédire

LibreYOLO ne fournit aucun checkpoint DexiNed. Les poids officiellement publiés sont entraînés sur BIPED, dont les conditions d'utilisation publiées limitent l'usage à des fins non commerciales, si bien que LibreYOLO ne les met pas en miroir. Convertissez un checkpoint que vous avez le droit d'utiliser avec weights/convert_dexined_weights.py, qui vérifie les clés des tenseurs face à l'architecture du runtime avant d'écrire un fichier que LibreYOLO peut charger directement :

bash
python weights/convert_dexined_weights.py upstream.pth weights/LibreDexiNedb-edge.pt --verify

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreDexiNedb-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())  # pixels de contour après seuillage
CLI
libreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

result.edges contient le résultat : un tableau float32 (H, W) dans [0, 1], avec .binary(threshold) qui renvoie un masque de contours booléen. Il n'y a pas de boîtes, donc conf, iou et max_det n'ont aucun effet. Voir la prédiction pour les sources, le streaming et le traitement des résultats.

Variantes

DexiNed est fourni en une seule taille dans LibreYOLO. Le harnais de benchmark de LibreYOLO n'a pas mesuré cette famille, il n'y a donc aucun chiffre publié auquel la comparer.

Valider

val() renvoie les F-mesures ODS et OIS de style BSDS face à un dataset de contours apparié : des images à côté de cartes de contours de même nom de base, avec un masque de validité optionnel pour que les pixels de padding ne comptent jamais. imgsz doit être divisible par le pas de sous-échantillonnage du réseau, et LibreYOLO lève une erreur claire si ce n'est pas le cas.

Python
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreDexiNedb-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"])   # F-mesure à l'échelle optimale du datasetprint(metrics["metrics/OIS"])   # F-mesure à l'échelle optimale de l'image
CLI
libreyolo val model=weights/LibreDexiNedb-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 de contours suit un contrat de runtime à résolution fixe et à batch 1 : dynamic et un batch autre que 1 sont refusés, et le graphe exporté produit une seule carte de probabilité fusionnée. Un artefact exporté se recharge via LibreYOLO() d'après l'extension de son fichier, si bien qu'un fichier .onnx se comporte comme un checkpoint et renvoie le même Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreDexiNedb-edge.pt")model.export(format="onnx", imgsz=352)model.export(format="tensorrt", imgsz=352, half=True)
CLI
libreyolo export model=weights/LibreDexiNedb-edge.pt format=onnx imgsz=352libreyolo export model=weights/LibreDexiNedb-edge.pt format=tensorrt imgsz=352 half=True
Utiliser le fichier exporté
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreDexiNedb-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
DexiNed, Xavier Soria
Licence du projet d'origine
MIT
Source du projet d'origine
github.com/xavysp/DexiNed
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 DexiNed 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_dexined_weights.py`; the MIT code license does not change the terms attached to whatever checkpoint you convert.

LibreYOLO ne publie aucun checkpoint DexiNed. Rien n'est mis en miroir sous l'organisation LibreYOLO ; convertissez plutôt, avec weights/convert_dexined_weights.py, un checkpoint pour lequel vous détenez une licence.

Citation

@INPROCEEDINGS {xsoria2020dexined,
author = {X. Soria and E. Riba and A. Sappa},
booktitle = {2020 IEEE Winter Conference on Applications of Computer Vision (WACV)},
title = {Dense Extreme Inception Network: Towards a Robust CNN Model for Edge Detection},
year = {2020},
volume = {},
issn = {},
pages = {1912-1921},
keywords = {image edge detection;convolution;training;feeds;machine learning;task analysis;kernel},
doi = {10.1109/WACV45572.2020.9093290},
url = {https://doi.ieeecomputersociety.org/10.1109/WACV45572.2020.9093290},
publisher = {IEEE Computer Society},
address = {Los Alamitos, CA, USA},
month = {mar}
}

@article{soria2023dexined_ext,
title = {Dense extreme inception network for edge detection},
journal = {Pattern Recognition},
volume = {139},
pages = {109461},
year = {2023},
issn = {0031-3203},
doi = {https://doi.org/10.1016/j.patcog.2023.109461},
url = {https://www.sciencedirect.com/science/article/pii/S0031320323001619},
author = {Xavier Soria and Angel Sappa and Patricio Humanante and Arash Akbarinia},
keywords = {Edge detection, Deep learning, CNN, Contour detection, Boundary detection, Segmentation}
}

Copié depuis le bloc de citation des auteurs sur github.com/xavysp/DexiNed#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.