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.
pip install libreyoloPredykcja
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:
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 w zakresie [0, 1]print(edges.binary(0.5).sum()) # liczba pikseli krawędzi po progowaniulibreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.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.
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 obrazulibreyolo val model=weights/LibreTEEDt-edge.pt data=my-dataset.yaml imgsz=352Eksport
| Zadanie | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| edge | edge to ONNX: obsługiwane | edge to TorchScript: obsługiwane | edge to ExecuTorch: obsługiwane | edge to TensorRT: obsługiwane | edge to OpenVINO: obsługiwane | edge to Paddle: brak obsługi | edge to MNN: brak obsługi | edge to RKNN: brak obsługi | edge to ncnn: brak obsługi | edge to TFLite: obsługiwane | edge to CoreML: brak obsługi | edge 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.
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)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.