TEED

TEED (Tiny and Efficient Edge Detector) to mała sieć konwolucyjna, która przewiduje gęstą mapę prawdopodobieństwa krawędzi na podstawie jednego obrazu RGB. LibreYOLO udostępnia jej architekturę wyłącznie do detekcji krawędzi. Biblioteka nie zawiera checkpointu.

Zadania
edge
Rozmiary
t at 352 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
TEED, autorzy: Xavier Soria, licencja: MIT. Publikacja, kod źródłowy
Licencje
Kod: MIT, wagi: MIT. Użycie komercyjne

Instalacja

TEED nie wymaga żadnego opcjonalnego dodatku. Wszystkie importowane elementy znajdują się w instalacji podstawowej.

bash
pip install libreyolo

Predykcja

LibreYOLO nie udostępnia checkpointu TEED. Oficjalnie opublikowane wagi wytrenowano na BIPED, którego warunki udostępnienia ograniczają użycie do celów niekomercyjnych, dlatego LibreYOLO nie tworzy ich kopii lustrzanej. Checkpoint, na którego użycie zezwala posiadana licencja, należy przekonwertować za pomocą weights/convert_teed_weights.py. Skrypt przed zapisaniem pliku, który LibreYOLO może bezpośrednio wczytać, sprawdza klucze tensorów względem architektury środowiska uruchomieniowego:

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 w zakresie [0, 1]print(edges.binary(0.5).sum())  # liczba pikseli krawędzi po progowaniu
CLI
libreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

result.edges zawiera wynik: tablicę float32 (H, W) z wartościami w zakresie [0, 1]. Metoda .binary(threshold) zwraca logiczną maskę krawędzi. Model nie zwraca ramek, dlatego conf, iou i max_det nie mają wpływu na wynik. Więcej informacji o źródłach, streamingu i obsłudze wyników zawiera strona predykcji.

Warianty

W LibreYOLO model TEED jest dostępny w jednym rozmiarze. Zestaw testowy LibreYOLO nie wykonał pomiarów tej rodziny, dlatego nie ma opublikowanych wyników, z którymi można ją porównać.

Walidacja

val() zwraca miary F ODS i OIS w stylu BSDS, obliczone względem sparowanego zbioru danych krawędzi. Obrazy są umieszczone obok map krawędzi o tej samej nazwie bazowej. Opcjonalna maska poprawności sprawia, że dopełnione piksele nie są nigdy uwzględniane. imgsz musi być podzielne przez krok zmniejszania rozdzielczości sieci. Jeśli tak nie jest, LibreYOLO zgłasza czytelny błąd.

Python
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"])   # miara F w optymalnej skali zbioru danychprint(metrics["metrics/OIS"])   # miara F w optymalnej skali obrazu
CLI
libreyolo val model=weights/LibreTEEDt-edge.pt data=my-dataset.yaml imgsz=352

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
edgeedge to ONNX: obsługiwaneedge to TorchScript: obsługiwaneedge to ExecuTorch: obsługiwaneedge to TensorRT: obsługiwaneedge to OpenVINO: obsługiwaneedge to Paddle: brak obsługiedge to MNN: brak obsługiedge to RKNN: brak obsługiedge to ncnn: brak obsługiedge to TFLite: obsługiwaneedge to CoreML: brak obsługiedge to Core AI: brak obsługi

Eksport krawędzi korzysta z kontraktu środowiska uruchomieniowego o stałej rozdzielczości i rozmiarze batcha 1. Argument dynamic oraz batch inny niż 1 są odrzucane, a wyeksportowany graf zwraca jedną scaloną mapę prawdopodobieństwa. Wyeksportowany artefakt jest ponownie ładowany przez LibreYOLO() na podstawie rozszerzenia pliku, dlatego plik .onnx zachowuje się jak checkpoint i zwraca ten sam obiekt Results.

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
Użycie wyeksportowanego pliku
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("weights/LibreTEEDt-edge.onnx")result = model(SAMPLE_IMAGE) print(result.edges.array.shape)

Licencja

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
TEED, Xavier Soria
Licencja projektu źródłowego
MIT
Kod źródłowy projektu
github.com/xavysp/TEED
Kod LibreYOLO
MIT
Wagi
MIT, rozpowszechniane przez autorów. LibreYOLO ich nie hostuje ani nie udostępnia kopii.
Interpretacja
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 nie publikuje checkpointu TEED. Organizacja LibreYOLO nie tworzy lustrzanej kopii żadnego checkpointu. Zamiast tego należy przekonwertować checkpoint objęty posiadaną licencją za pomocą weights/convert_teed_weights.py.

Cytowanie

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

Skopiowano z bloku cytowania autorów w github.com/xavysp/TEED#citation.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.