DexiNed
DexiNed (Dense Extreme Inception Network) є згортковою мережею, яка передбачає щільну карту ймовірності країв з одного зображення RGB. LibreYOLO обгортає її архітектуру лише для виявлення країв; контрольна точка не постачається з бібліотекою.
- Задачі
- edge
- Розміри
- b at 352 px
- Встановлення
pip install libreyolo- Рівень підтримки
- Лише інференс, починаючи з v. Лише передбачення, валідація та експорт. Функції навчання не застосовуються.
- Ліцензії
- Код: MIT, ваги: MIT. Комерційне використання
Встановлення
DexiNed не потребує додаткових залежностей. Усе, що вона імпортує, входить до базового встановлення.
pip install libreyoloПередбачення
LibreYOLO не постачає контрольної точки DexiNed. Офіційно випущені ваги
навчено на BIPED, опубліковані умови датасету якого обмежують використання
некомерційними цілями, тому LibreYOLO не створює їхнього дзеркала. Перетворіть
контрольну точку, на використання якої маєте ліцензію, за допомогою
weights/convert_dexined_weights.py. Скрипт перевіряє ключі тензорів
відносно архітектури середовища виконання, перш ніж записати файл, який
LibreYOLO може завантажити безпосередньо:
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 у діапазоні [0, 1]print(edges.binary(0.5).sum()) # Кількість пікселів країв після порогуванняlibreyolo predict model=weights/LibreDexiNedb-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.edges містить результат: масив float32 (H, W) у діапазоні
[0, 1]; .binary(threshold) повертає булеву маску країв. Рамок немає,
тому conf, iou і max_det не впливають на результат. Типи джерел,
потокове передбачення та обробку результатів описано в розділі
передбачення.
Варіанти
LibreYOLO постачає DexiNed в одному розмірі. Засоби бенчмарків LibreYOLO не вимірювали це сімейство, тому опублікованих показників для порівняння немає.
Валідація
val() повідомляє F-міри ODS і OIS у стилі BSDS для парного датасету країв:
зображення поруч із картами країв з однаковою основою назви й необов'язковою
маскою дійсності, щоб доповнені пікселі ніколи не враховувалися. imgsz має
ділитися на крок зменшення мережі, а в іншому разі LibreYOLO показує зрозумілу
помилку.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreDexiNedb-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"]) # F-міра в оптимальному масштабі датасетуprint(metrics["metrics/OIS"]) # F-міра в оптимальному масштабі зображенняlibreyolo val model=weights/LibreDexiNedb-edge.pt data=my-dataset.yaml imgsz=352Експорт
| Задача | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| edge | edge to ONNX: підтримується | edge to TorchScript: підтримується | edge to ExecuTorch: підтримується | edge to TensorRT: підтримується | edge to OpenVINO: підтримується | edge to Paddle: не підтримується | edge to MNN: не підтримується | edge to RKNN: не підтримується | edge to ncnn: не підтримується | edge to TFLite: підтримується | edge to CoreML: не підтримується | edge to Core AI: не підтримується |
Експорт країв використовує контракт середовища виконання з фіксованою
роздільною здатністю та розміром батча 1: dynamic і batch зі значенням,
відмінним від 1, відхиляються, а експортований граф виводить одну об'єднану
карту ймовірностей. Експортований артефакт знову завантажується через
LibreYOLO() відповідно до суфікса файлу, тому файл .onnx поводиться як
контрольна точка й повертає той самий об'єкт 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)Ліцензування
Перевіряйте ліцензію в репозиторії Hugging Face конкретних ваг, які завантажуєте. Кожна контрольна точка в організації LibreYOLO має ліцензію, і вона не завжди однакова для всього сімейства. Цей репозиторій є авторитетним джерелом, а наведене нижче резюме описує умови на момент останньої перевірки сторінки.
Це опис відповідних ліцензій, а не юридична консультація. Якщо відповідь має комерційне значення, самостійно прочитайте ліцензії та зверніться по юридичну консультацію.
- Оригінальна робота
- DexiNed, Xavier Soria
- Ліцензія першоджерела
- MIT
- Джерело першоджерела
- github.com/xavysp/DexiNed
- Код LibreYOLO
- MIT
- Ваги
- MIT, поширюється авторами. LibreYOLO не розміщує й не дублює ці ваги.
- Тлумачення
- 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 не публікує контрольної точки DexiNed. Організація LibreYOLO не
розміщує жодного дзеркала; натомість перетворіть контрольну точку, на яку
маєте ліцензію, за допомогою weights/convert_dexined_weights.py.
Цитування
@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}
}Скопійовано з блоку цитування авторів на сторінці github.com/xavysp/DexiNed#citation.