DexiNed
DexiNed (Dense Extreme Inception Network) to sieć konwolucyjna, która przewiduje gęstą mapę prawdopodobieństwa krawędzi z jednego obrazu RGB. LibreYOLO otacza jej architekturę tylko w celu wykrywania krawędzi; żaden checkpoint nie jest dołączony do biblioteki.
- Zadania
- edge
- Rozmiary
- b 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
- DexiNed, autorzy: Xavier Soria, licencja: MIT. Publikacja, kod źródłowy
- Licencje
- Kod: MIT, wagi: MIT. Użycie komercyjne
Instalacja
DexiNed nie potrzebuje żadnych dodatkowych opcji. Wszystko, co importuje, znajduje się w instalacji bazowej.
pip install libreyoloPredykcja
LibreYOLO nie wysyła checkpointu DexiNed. Oficjalnie opublikowane wagi są trenowane na BIPED, którego opublikowane warunki użytkowania zbioru danych ograniczają wykorzystanie do celów niekomercyjnych, więc LibreYOLO ich nie odzwierciedla. Skonwertuj checkpoint, do którego masz licencję, aby używać go z weights/convert_dexined_weights.py, który sprawdza klucze tensorów w stosunku do architektury w czasie wykonania przed zapisaniem pliku, który LibreYOLO może wczytać bezpośrednio:
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 w [0, 1]print(edges.binary(0.5).sum()) # liczba pikseli krawędzi po progowaniulibreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.edges przechowuje wynik: tablicę (H, W) float32 w [0, 1], z .binary(threshold) zwracającą maskę krawędzi typu boolean. Nie ma żadnych pudełek, więc conf, iou i max_det nie mają wpływu. Zobacz predykcja dla źródeł, streaming i obsługi wyników.
Warianty
DexiNed jest wysyłany w jednym rozmiarze w LibreYOLO. Testowy pas LibreYOLO nie mierzył tej rodziny, więc nie ma opublikowanych wyników do porównania.
Walidacja
val() raportuje BSDS-style ODS i OIS miary F w odniesieniu do sparowanego zbioru danych krawędzi: obrazy obok map krawędzi tego samego pnia, z opcjonalną maską ważności, tak aby wypełnione piksele nigdy się nie liczyły. imgsz musi być podzielny przez współczynnik próbkowania sieci, a LibreYOLO rzuca wyraźny błąd, jeśli tak nie jest.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreDexiNedb-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"]) # optymalna skala zbioru danych miara Fprint(metrics["metrics/OIS"]) # miara F-skali optymalnego obrazulibreyolo val model=weights/LibreDexiNedb-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 brzegowy używa kontraktu uruchomieniowego o stałej rozdzielczości i partii 1: dynamic, a wartości inne niż 1 są odrzucane, a eksportowany graf generuje pojedynczą złączoną mapę prawdopodobieństwa. Eksportowany artefakt można ponownie załadować przez LibreYOLO() na jego sufiksie pliku, więc plik .onnx działa jak checkpoint i zwraca te same Results.
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)Licencjonowanie
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
- DexiNed, Xavier Soria
- Licencja projektu źródłowego
- MIT
- Kod źródłowy projektu
- github.com/xavysp/DexiNed
- 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 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 nie publikuje żadnego checkpointu DexiNed. Nic nie jest odwzorowane w organizacji LibreYOLO; zamiast tego skonwertuj checkpoint, na który posiadasz licencję w weights/convert_dexined_weights.py.
Cytowanie
@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}
}Skopiowano z bloku cytowania autorów w github.com/xavysp/DexiNed#citation.