SSD

SSD (Single Shot MultiBox Detector) prédit toutes les bounding boxes et tous les scores de classes depuis une grille dense de bounding boxes par défaut, en une seule passe forward et sans étape distincte de proposition de régions. LibreYOLO fournit le checkpoint SSD300 basé sur VGG16 comme détecteur réservé à l'inférence.

Tâches
detection
Tailles
300 at 300 px
Installer
pip install libreyolo
Niveau de support
Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
Origine
SSD par UNC Chapel Hill, Zoox, Google and University of Michigan, BSD-3-Clause. Article, source
Licences
Code BSD-3-Clause, poids BSD-3-Clause. Usage commercial

Installer

SSD ne nécessite aucun extra facultatif. Tous ses imports sont inclus dans l'installation de base.

bash
pip install libreyolo

Prédire

Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.

Python
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)
CLI
libreyolo predict model=LibreSSD300.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

L'objet Results renvoyé est celui de toutes les familles, le remplacement du détecteur ne demande donc de modifier qu'une ligne. SSD décode sa grille de bounding boxes par défaut avec des scores par classe, puis exécute la suppression non maximale. conf, iou et max_det ont ainsi tous un effet réel ici, contrairement aux détecteurs basés sur des requêtes de cette bibliothèque. Consultez la prédiction pour les sources, le streaming et la gestion des résultats.

Variantes

SSD fournit un seul checkpoint\u00a0: le réseau SSD300 basé sur VGG16, avec son canevas natif fixe. Cette famille ne propose aucun choix de taille ou d'échelle\u00a0; la prédiction, la validation et l'export utilisent tous ce même graphe.

Le fichier de poids est LibreSSD300.pt, soit le préfixe de la famille suivi de son unique clé de taille, "300". La classe correspondante est LibreSSD, une construction directe s'écrit donc LibreSSD(size="300") plutôt qu'avec une classe portant le nom du fichier.

Valider

val() renvoie un dictionnaire de clés metrics/ couvrant la précision, le rappel, la mAP 50 et la mAP 50-95, mesurés sur tout dataset au format utilisé pour l'entraînement.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreSSD300.pt data=my-dataset.yaml

Exporter

TâcheONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX : pris en chargeDetection to TorchScript : non pris en chargeDetection to ExecuTorch : non pris en chargeDetection to TensorRT : non pris en chargeDetection to OpenVINO : non pris en chargeDetection to Paddle : non pris en chargeDetection to MNN : non pris en chargeDetection to RKNN : non pris en chargeDetection to ncnn : non pris en chargeDetection to TFLite : non pris en chargeDetection to CoreML : non pris en chargeDetection to Core AI : non pris en charge

SSD s'exporte uniquement vers ONNX\u00a0; tous les autres formats sont actuellement bloqués pour cette famille. L'export utilise toujours le canevas natif du checkpoint et le graphe expose la tête brute compactée de SSD plutôt qu'une sortie avec suppression non maximale fusionnée. nms=True n'est donc pas accepté au moment de l'export. Les backends propres à LibreYOLO exécutent les étapes de décodage et de suppression après le rechargement du graphe.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt") # imgsz est volontairement omis ici : SSD300 est tracé sur le canevas natif# de son checkpoint et toute autre valeur lève une erreur avant le début de l'export.model.export(format="onnx")
CLI
libreyolo export model=LibreSSD300.pt format=onnx
Utiliser le fichier exporté
from libreyolo import LibreYOLO # La fabrique détermine le chemin selon le suffixe du fichier ; un artefact exporté se charge# donc comme tout checkpoint et renvoie le même objet Results.model = LibreYOLO("LibreSSD300.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

Tous les fichiers de poids publiés pour cette famille.

FichierEntrée (px)Licence des poids
Detection
LibreSSD300.pt300bsd-3-clause

Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.

Licence

Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.

Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.

Travail d'origine
SSD, UNC Chapel Hill, Zoox, Google and University of Michigan
Licence du projet d'origine
BSD-3-Clause
Source du projet d'origine
github.com/pytorch/vision
Code de LibreYOLO
MIT
Poids
BSD-3-Clause, republiés sur huggingface.co/LibreYOLO
Interprétation
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.

Le code SSD300 de LibreYOLO n'est pas porté depuis la version Caffe des auteurs de l'article\u00a0; il dérive de l'implémentation SSD300 sous licence BSD-3-Clause de torchvision, dont le dépôt est indiqué ci-dessus comme source upstream. Les poids VGG16 du backbone remontent eux-mêmes au VGGNet réduit et entièrement convolutionnel d'Oxford, publié sous licence CC BY 4.0 par Karen Simonyan et Andrew Zisserman.

Citation

@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}
}

Copié depuis le bloc de citation des auteurs sur github.com/weiliu89/caffe/tree/ssd#citing-ssd.

Vérifié avec LibreYOLO v1.5.0. Les tableaux de support, les checkpoints et les chiffres de benchmark de cette page sont générés à partir de la bibliothèque publiée et des poids publiés, et non rédigés à la main.