DexiNed

DexiNed (Dense Extreme Inception Network) ist ein faltungsbasiertes Netzwerk, das aus einem einzelnen RGB-Bild eine dichte Kantenwahrscheinlichkeitskarte vorhersagt. LibreYOLO bindet seine Architektur ausschließlich für die Kantenerkennung ein. Die Bibliothek liefert keinen Checkpoint mit.

Aufgaben
edge
Größen
b at 352 px
Installation
pip install libreyolo
Supportstufe
Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
Upstream
DexiNed von Xavier Soria, MIT. Publikation, Quelle
Lizenzen
Code MIT, Gewichte MIT. Kommerzielle Nutzung

Installation

DexiNed benötigt kein optionales Zusatzpaket. Alle Importe sind in der Basisinstallation enthalten.

bash
pip install libreyolo

Vorhersage

LibreYOLO liefert keinen DexiNed-Checkpoint mit. Die offiziell veröffentlichten Gewichte wurden auf BIPED trainiert, dessen veröffentlichte Datensatzbedingungen die Verwendung auf nicht kommerzielle Zwecke beschränken. LibreYOLO spiegelt sie daher nicht. Konvertiere einen Checkpoint, für dessen Verwendung du eine Lizenz besitzt, mit weights/convert_dexined_weights.py. Das Skript prüft die Tensor-Schlüssel anhand der Runtime-Architektur, bevor es eine Datei schreibt, die LibreYOLO direkt laden kann:

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())  # Anzahl der Kantenpixel nach Schwellenwert
CLI
libreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

result.edges enthält das Ergebnis: ein (H, W)-Array vom Typ float32 im Bereich [0, 1]. .binary(threshold) gibt eine boolesche Kantenmaske zurück. Es gibt keine Boxen, daher haben conf, iou und max_det keine Wirkung. Unter Vorhersage findest du Quellen, Streaming und die Verarbeitung von Ergebnissen.

Varianten

LibreYOLO bietet DexiNed in einer Größe an. Der Benchmark-Testaufbau von LibreYOLO hat diese Familie noch nicht gemessen, daher gibt es keine veröffentlichten Vergleichswerte.

Validierung

val() meldet F-Maße für ODS und OIS im BSDS-Stil auf einem gepaarten Kantendatensatz. Dabei stehen Bilder neben gleichnamigen Kantenkarten. Eine optionale Gültigkeitsmaske verhindert, dass aufgefüllte Pixel gezählt werden. imgsz muss durch den Downsampling-Stride des Netzwerks teilbar sein. Andernfalls löst LibreYOLO einen eindeutigen Fehler aus.

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-Maß mit optimaler Datensatzskalaprint(metrics["metrics/OIS"])   # F-Maß mit optimaler Bildskala
CLI
libreyolo val model=weights/LibreDexiNedb-edge.pt data=my-dataset.yaml imgsz=352

Export

AufgabeONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
edgeedge to ONNX: unterstütztedge to TorchScript: unterstütztedge to ExecuTorch: unterstütztedge to TensorRT: unterstütztedge to OpenVINO: unterstütztedge to Paddle: nicht unterstütztedge to MNN: nicht unterstütztedge to RKNN: nicht unterstütztedge to ncnn: nicht unterstütztedge to TFLite: unterstütztedge to CoreML: nicht unterstütztedge to Core AI: nicht unterstützt

Der Kantenexport nutzt einen Runtime-Vertrag mit fester Auflösung und Batch 1: dynamic und ein anderer batch-Wert als 1 werden abgelehnt. Der exportierte Graph gibt eine einzelne zusammengeführte Wahrscheinlichkeitskarte aus. Ein exportiertes Artefakt wird anhand seiner Dateiendung wieder über LibreYOLO() geladen. Eine .onnx-Datei verhält sich daher wie ein Checkpoint und gibt dasselbe Results-Objekt zurück.

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
Exportierte Datei verwenden
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreDexiNedb-edge.onnx")result = model(SAMPLE_IMAGE) print(result.edges.array.shape)

Lizenzierung

Prüfe die Lizenz im Hugging-Face-Repository der konkreten Gewichte, die du herunterlädst. Jeder Checkpoint in der LibreYOLO-Organisation hat eine Lizenz, und sie ist innerhalb einer Familie nicht immer gleich. Dieses Repository ist die maßgebliche Quelle. Die Zusammenfassung unten beschreibt den Stand bei der letzten Verifizierung dieser Seite.

Dies ist eine Beschreibung der beteiligten Lizenzen und keine Rechtsberatung. Wenn die Antwort kommerziell relevant ist, lies die Lizenzen selbst und hole eigenen Rechtsrat ein.

Originalarbeit
DexiNed, Xavier Soria
Upstream-Lizenz
MIT
LibreYOLO-Code
MIT
Gewichte
MIT, von den Autoren verbreitet. LibreYOLO hostet oder spiegelt sie nicht.
Einordnung
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 veröffentlicht keinen DexiNed-Checkpoint. Unter der LibreYOLO-Organisation wird nichts gespiegelt. Konvertiere stattdessen mit weights/convert_dexined_weights.py einen Checkpoint, für den du eine Lizenz besitzt.

Zitieren

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

Aus dem Zitierblock der Autoren unter github.com/xavysp/DexiNed#citation kopiert.

Mit LibreYOLO v1.5.0 verifiziert. Supporttabellen, Checkpoints und Benchmarkwerte auf dieser Seite werden aus der veröffentlichten Bibliothek und den publizierten Gewichten generiert und nicht von Hand geschrieben.