DexiNed

DexiNed (Dense Extreme Inception Network) è una 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
b 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.
Origine
DexiNed di Xavier Soria, MIT. Articolo, sorgente
Licenze
Codice MIT, pesi MIT. Uso commerciale

Installazione

DexiNed non richiede nessun extra opzionale. Tutto ciò che importa è già nell'installazione di base.

bash
pip install libreyolo

Predizione

LibreYOLO non distribuisce nessun checkpoint di DexiNed. 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_dexined_weights.py, che controlla le chiavi dei tensori rispetto all'architettura del runtime prima di scrivere un file che LibreYOLO può caricare direttamente:

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 in [0, 1]print(edges.binary(0.5).sum())  # n. di pixel di bordo dopo la soglia
CLI
libreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

result.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

DexiNed è 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 è.

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-measure a scala ottimale sul datasetprint(metrics["metrics/OIS"])   # F-measure a scala ottimale sull'immagine
CLI
libreyolo val model=weights/LibreDexiNedb-edge.pt data=my-dataset.yaml imgsz=352

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
edgeedge to ONNX: supportatoedge to TorchScript: supportatoedge to ExecuTorch: supportatoedge to TensorRT: supportatoedge to OpenVINO: supportatoedge to Paddle: non supportatoedge to MNN: non supportatoedge to RKNN: non supportatoedge to ncnn: non supportatoedge to TFLite: supportatoedge to CoreML: non supportatoedge 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.

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
Usare il file esportato
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreDexiNedb-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
DexiNed, Xavier Soria
Licenza upstream
MIT
Sorgente upstream
github.com/xavysp/DexiNed
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 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 non pubblica nessun checkpoint di DexiNed. Non c'è niente sui mirror dell'organizzazione LibreYOLO; converti invece un checkpoint per cui possiedi una licenza con weights/convert_dexined_weights.py.

Citazione

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

Copiato dal blocco di citazione degli autori disponibile su github.com/xavysp/DexiNed#citation.

Verificato con LibreYOLO v1.5.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.