TEED
TEED (Tiny and Efficient Edge Detector) ist ein kleines konvolutionales Netzwerk, das aus einem RGB-Bild eine dichte Karte von Kantenwahrscheinlichkeiten vorhersagt. LibreYOLO bindet seine Architektur ausschließlich für die Kantenerkennung ein. Die Bibliothek enthält keinen Checkpoint.
- Aufgaben
- edge
- Größen
- t at 352 px
- Installation
pip install libreyolo- Supportstufe
- Nur Inferenz, seit v. Nur Vorhersage, Validierung und Export. Trainingsfunktionen sind nicht verfügbar.
- Upstream
- TEED von Xavier Soria, MIT. Publikation, Quelle
- Lizenzen
- Code MIT, Gewichte MIT. Kommerzielle Nutzung
Installation
TEED benötigt kein optionales Extra. Alle Importe sind in der Basisinstallation enthalten.
pip install libreyoloVorhersage
LibreYOLO stellt keinen TEED-Checkpoint bereit. Die offiziell veröffentlichten Gewichte wurden auf BIPED trainiert, dessen publizierte Datensatzbedingungen die Nutzung auf nicht kommerzielle Zwecke beschränken. Daher spiegelt LibreYOLO diese Gewichte nicht. Konvertiere einen Checkpoint, für dessen Nutzung du eine Lizenz besitzt, mit weights/convert_teed_weights.py. Das Skript prüft die Tensorschlüssel gegen die Laufzeitarchitektur, bevor es eine Datei schreibt, die LibreYOLO direkt laden kann:
python weights/convert_teed_weights.py upstream.pth weights/LibreTEEDt-edge.pt --verifyfrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreTEEDt-edge.pt")result = model(SAMPLE_IMAGE, save=True) edges = result.edgesprint(edges.array.shape) # (H, W) float32 im Bereich [0, 1]print(edges.binary(0.5).sum()) # Anzahl der Kantenpixel nach Schwellenwertanwendunglibreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.edges enthält das Ergebnis als float32-Array der Form (H, W) mit Werten in [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 Informationen zu Quellen, Streaming und Ergebnisverarbeitung.
Varianten
LibreYOLO bietet TEED in einer Größe an. Die Benchmark-Infrastruktur von LibreYOLO hat diese Familie noch nicht gemessen, daher gibt es keine veröffentlichten Vergleichswerte.
Validierung
val() meldet ODS- und OIS-F-Maße im BSDS-Stil für einen gekoppelten Kantendatensatz. Dabei liegen 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 verständlichen Fehler aus.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"]) # F-Maß mit optimalem Schwellenwert auf Datensatzebeneprint(metrics["metrics/OIS"]) # F-Maß mit optimalem Schwellenwert auf Bildebenelibreyolo val model=weights/LibreTEEDt-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 verwendet einen Laufzeitvertrag mit fester Auflösung und Batchgröße 1. dynamic und ein anderer Wert für batch als 1 werden abgelehnt. Der exportierte Graph gibt eine einzige zusammengeführte Wahrscheinlichkeitskarte aus. Ein exportiertes Artefakt wird über seine Dateiendung wieder durch LibreYOLO() geladen, sodass sich eine .onnx-Datei wie ein Checkpoint verhält und dasselbe Results-Objekt zurückgibt.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")model.export(format="onnx", imgsz=352)model.export(format="tensorrt", imgsz=352, half=True)libreyolo export model=weights/LibreTEEDt-edge.pt format=onnx imgsz=352libreyolo export model=weights/LibreTEEDt-edge.pt format=tensorrt imgsz=352 half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreTEEDt-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
- TEED, Xavier Soria
- Upstream-Lizenz
- MIT
- Upstream-Quelle
- github.com/xavysp/TEED
- LibreYOLO-Code
- MIT
- Gewichte
- MIT, von den Autoren verbreitet. LibreYOLO hostet oder spiegelt sie nicht.
- Einordnung
- MIT is a permissive license, so the TEED 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_teed_weights.py`; the MIT code license does not change the terms attached to whatever checkpoint you convert.
LibreYOLO veröffentlicht keinen TEED-Checkpoint. Innerhalb der LibreYOLO-Organisation werden keine Gewichte gespiegelt. Konvertiere stattdessen einen Checkpoint, für den du eine Lizenz besitzt, mit weights/convert_teed_weights.py.
Zitieren
@InProceedings{Soria_2023teed,
author = {Soria, Xavier and Li, Yachuan and Rouhani, Mohammad and Sappa, Angel D.},
title = {Tiny and Efficient Model for the Edge Detection Generalization},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV) Workshops},
month = {October},
year = {2023},
pages = {1364-1373}
}Aus dem Zitierblock der Autoren unter github.com/xavysp/TEED#citation kopiert.