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.
pip install libreyoloVorhersage
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:
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 in [0, 1]print(edges.binary(0.5).sum()) # Anzahl der Kantenpixel nach Schwellenwertlibreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.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.
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 Bildskalalibreyolo val model=weights/LibreDexiNedb-edge.pt data=my-dataset.yaml imgsz=352Export
| Aufgabe | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| edge | edge to ONNX: unterstützt | edge to TorchScript: unterstützt | edge to ExecuTorch: unterstützt | edge to TensorRT: unterstützt | edge to OpenVINO: unterstützt | edge to Paddle: nicht unterstützt | edge to MNN: nicht unterstützt | edge to RKNN: nicht unterstützt | edge to ncnn: nicht unterstützt | edge to TFLite: unterstützt | edge to CoreML: nicht unterstützt | edge 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.
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)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
- Upstream-Quelle
- github.com/xavysp/DexiNed
- 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.