TEED
TEED (Tiny and Efficient Edge Detector) es una red convolucional pequeña que predice un mapa denso de probabilidad de borde a partir de una sola imagen RGB. LibreYOLO incluye su arquitectura solo para detección de bordes; la biblioteca no distribuye ningún checkpoint.
- Tareas
- edge
- Tamaños
- t at 352 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
- Licencias
- Código MIT, pesos MIT. Uso comercial
Instalación
TEED no necesita ningún extra opcional. Todo lo que importa está en la instalación base.
pip install libreyoloPredicción
LibreYOLO no distribuye ningún checkpoint de TEED. Los pesos publicados
oficialmente están entrenados sobre BIPED, cuyos términos de dataset publicados
restringen el uso a fines no comerciales, así que LibreYOLO no los replica.
Convierte un checkpoint que tengas licencia para usar con
weights/convert_teed_weights.py, que comprueba las claves de los tensores
contra la arquitectura del runtime antes de escribir un archivo que LibreYOLO
puede cargar directamente:
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 en [0, 1]print(edges.binary(0.5).sum()) # nº de píxeles de borde tras el umbrallibreyolo predict model=weights/LibreTEEDt-edge.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Trueresult.edges contiene el resultado: un array float32 (H, W) en [0, 1],
con .binary(threshold) devolviendo una máscara booleana de bordes. No hay
boxes, así que conf, iou y max_det no tienen ningún efecto. Consulta
predicción para fuentes, streaming y manejo de resultados.
Variantes
TEED incluye un único tamaño en LibreYOLO. El sistema de benchmarks de LibreYOLO no ha medido esta familia, así que no hay números publicados con los que compararla.
Validación
val() informa de las F-measures ODS y OIS al estilo de BSDS contra un dataset
emparejado de bordes: imágenes junto a mapas de bordes con el mismo nombre base,
con una máscara de validez opcional para que los píxeles de padding nunca
cuenten. imgsz debe ser divisible por el stride de downsample de la red, y
LibreYOLO lanza un error claro si no lo es.
from libreyolo import LibreYOLO model = LibreYOLO("weights/LibreTEEDt-edge.pt")metrics = model.val(data="my-dataset.yaml", imgsz=352) print(metrics["metrics/ODS"]) # F-measure a escala óptima de datasetprint(metrics["metrics/OIS"]) # F-measure a escala óptima de imagenlibreyolo val model=weights/LibreTEEDt-edge.pt data=my-dataset.yaml imgsz=352Exportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| edge | edge to ONNX: compatible | edge to TorchScript: compatible | edge to ExecuTorch: compatible | edge to TensorRT: compatible | edge to OpenVINO: compatible | edge to Paddle: no compatible | edge to MNN: no compatible | edge to RKNN: no compatible | edge to ncnn: no compatible | edge to TFLite: compatible | edge to CoreML: no compatible | edge to Core AI: no compatible |
La exportación de bordes usa un contrato de runtime de resolución fija y
batch 1: se rechazan dynamic y cualquier batch distinto de 1, y el grafo
exportado devuelve un único mapa de probabilidad fusionado. Un artefacto
exportado se vuelve a cargar con LibreYOLO() según su extensión de archivo,
así que un archivo .onnx se comporta como un checkpoint y devuelve el mismo
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)Licencia
Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.
Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.
- Trabajo original
- TEED, Xavier Soria
- Licencia del proyecto original
- MIT
- Fuente del proyecto original
- github.com/xavysp/TEED
- Código de LibreYOLO
- MIT
- Pesos
- MIT, distribuidos por sus autores. LibreYOLO no los aloja ni los replica.
- Interpretación
- 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 no publica ningún checkpoint de TEED. No hay nada replicado bajo la
organización LibreYOLO; convierte tú mismo un checkpoint del que tengas licencia
con weights/convert_teed_weights.py.
Cita
@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}
}Copiado del bloque de cita de los autores en github.com/xavysp/TEED#citation.