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.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face à la première utilisation et mis en cache localement.
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=TrueL'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.
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.yamlExporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX : pris en charge | Detection to TorchScript : non pris en charge | Detection to ExecuTorch : non pris en charge | Detection to TensorRT : non pris en charge | Detection to OpenVINO : non pris en charge | Detection to Paddle : non pris en charge | Detection to MNN : non pris en charge | Detection to RKNN : non pris en charge | Detection to ncnn : non pris en charge | Detection to TFLite : non pris en charge | Detection to CoreML : non pris en charge | Detection 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.
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")libreyolo export model=LibreSSD300.pt format=onnxfrom 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.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Detection | ||
| LibreSSD300.pt | 300 | bsd-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.