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.

bash
pip install libreyolo

Vorhersage

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:

bash
python weights/convert_teed_weights.py upstream.pth weights/LibreTEEDt-edge.pt --verify

Python
from 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 Schwellenwertanwendung
CLI
libreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

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

Python
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 Bildebene
CLI
libreyolo val model=weights/LibreTEEDt-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 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")model.export(format="onnx", imgsz=352)model.export(format="tensorrt", imgsz=352, half=True)
CLI
libreyolo export model=weights/LibreTEEDt-edge.pt format=onnx imgsz=352libreyolo export model=weights/LibreTEEDt-edge.pt format=tensorrt imgsz=352 half=True
Exportierte Datei verwenden
from 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.

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.