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.
- 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.
pip install libreyoloPré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 :
python weights/convert_dexined_weights.py upstream.pth weights/LibreDexiNedb-edge.pt --verifyfrom 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 seuillagelibreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.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.
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'imagelibreyolo val model=weights/LibreDexiNedb-edge.pt data=my-dataset.yaml imgsz=352Exporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| edge | edge to ONNX : pris en charge | edge to TorchScript : pris en charge | edge to ExecuTorch : pris en charge | edge to TensorRT : pris en charge | edge to OpenVINO : pris en charge | edge to Paddle : non pris en charge | edge to MNN : non pris en charge | edge to RKNN : non pris en charge | edge to ncnn : non pris en charge | edge to TFLite : pris en charge | edge to CoreML : non pris en charge | edge 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.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreDexiNedb-edge.pt")model.export(format="onnx", imgsz=352)model.export(format="tensorrt", imgsz=352, half=True)libreyolo export model=weights/LibreDexiNedb-edge.pt format=onnx imgsz=352libreyolo export model=weights/LibreDexiNedb-edge.pt format=tensorrt imgsz=352 half=Truefrom 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.