SSD
SSD (Single Shot MultiBox Detector) predice todas las cajas y las puntuaciones de clase a partir de una rejilla densa de cajas por defecto en una sola pasada hacia delante, sin una etapa aparte de propuesta de regiones. LibreYOLO incluye el checkpoint SSD300 con backbone VGG16 como detector solo de inferencia.
- Tareas
- detection
- Tamaños
- 300 at 300 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.
- Proyecto original
- SSD de UNC Chapel Hill, Zoox, Google and University of Michigan, BSD-3-Clause. Artículo, fuente
- Licencias
- Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial
Instalación
SSD no necesita ningún extra opcional. Todo lo que importa está en la instalación base.
pip install libreyoloPredicción
Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreSSD300.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreSSD300.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueEl objeto Results devuelto es el mismo que devuelven todas las familias, así
que cambiar a otro detector es un cambio de una línea. SSD decodifica su rejilla
de cajas por defecto con puntuaciones por clase y después aplica non-maximum
suppression, así que aquí conf, iou y max_det tienen todos un efecto real,
a diferencia de los detectores basados en queries de esta biblioteca. Consulta
predicción para fuentes, streaming y manejo de resultados.
Variantes
SSD incluye un único checkpoint: la red SSD300 con backbone VGG16 en su lienzo nativo fijo. En esta familia no hay elección de tamaño ni de escala; la predicción, la validación y la exportación usan todas ese mismo grafo.
El archivo de pesos es LibreSSD300.pt, el prefijo de la familia seguido de su
única clave de tamaño, "300". La clase que hay detrás es LibreSSD, así que
una construcción directa es LibreSSD(size="300") y no una clase con el nombre
del archivo.
Validación
val() devuelve un diccionario de claves metrics/ que cubren precisión,
recall, mAP 50 y mAP 50-95, medidas contra cualquier dataset en el formato con
el que entrenaste.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreSSD300.pt data=my-dataset.yamlExportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: compatible | Detection to TorchScript: no compatible | Detection to ExecuTorch: no compatible | Detection to TensorRT: no compatible | Detection to OpenVINO: no compatible | Detection to Paddle: no compatible | Detection to MNN: no compatible | Detection to RKNN: no compatible | Detection to ncnn: no compatible | Detection to TFLite: no compatible | Detection to CoreML: no compatible | Detection to Core AI: no compatible |
SSD solo exporta a ONNX; el resto de formatos están bloqueados actualmente para
esta familia. La exportación usa siempre el lienzo nativo del checkpoint, y el
grafo expone la cabeza empaquetada en bruto de SSD en lugar de una salida con
non-maximum suppression fusionada, así que nms=True no se acepta en el momento
de exportar. Los propios backends de LibreYOLO ejecutan el paso de decodificado
y supresión después de volver a cargar el grafo.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt") # imgsz se omite aquí a propósito: SSD300 se traza en el lienzo nativo# de su checkpoint, y cualquier otro valor lanza un error antes de que# empiece la exportación.model.export(format="onnx")libreyolo export model=LibreSSD300.pt format=onnxfrom libreyolo import LibreYOLO # La factoría enruta según la extensión del archivo, así que un artefacto# exportado se carga como cualquier checkpoint y devuelve el mismo objeto Results.model = LibreYOLO("LibreSSD300.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Todos los archivos de pesos publicados de esta familia.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| Detection | ||
| LibreSSD300.pt | 300 | bsd-3-clause |
Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.
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
- SSD, UNC Chapel Hill, Zoox, Google and University of Michigan
- Licencia del proyecto original
- BSD-3-Clause
- Fuente del proyecto original
- github.com/pytorch/vision
- Código de LibreYOLO
- MIT
- Pesos
- BSD-3-Clause, republicados en huggingface.co/LibreYOLO
- Interpretación
- BSD-3-Clause is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its copyright notice and disclaimer with any copy you redistribute, and it places no obligation on your own application code. The official SSD300 COCO checkpoint carries no separate, checkpoint-specific license: LibreYOLO's mirror applies BSD-3-Clause on an explicitly disclosed implied basis, the same basis torchvision states for its own pretrained SSD300 weights. The VGG16 backbone the graph is built on traces back to Oxford's fully convolutional reduced VGGNet, released under CC BY 4.0 by Karen Simonyan and Andrew Zisserman.
El código de SSD300 de LibreYOLO no está portado de la propia versión en Caffe de los autores del paper; deriva de la implementación de SSD300 de torchvision, con licencia BSD-3-Clause, y ese es el repositorio enlazado arriba como fuente upstream. Los pesos VGG16 del backbone se remontan además a la VGGNet reducida totalmente convolucional de Oxford, publicada bajo CC BY 4.0 por Karen Simonyan y Andrew Zisserman.
Cita
@inproceedings{liu2016ssd,
title = {{SSD}: Single Shot MultiBox Detector},
author = {Liu, Wei and Anguelov, Dragomir and Erhan, Dumitru and Szegedy, Christian and Reed, Scott and Fu, Cheng-Yang and Berg, Alexander C.},
booktitle = {ECCV},
year = {2016}
}Copiado del bloque de cita de los autores en github.com/weiliu89/caffe/tree/ssd#citing-ssd.