SSD
SSD (Single Shot MultiBox Detector) predice ogni box e ogni punteggio di classe da una griglia densa di box predefiniti in un solo passaggio in avanti, senza uno stadio separato di proposta delle regioni. LibreYOLO include il checkpoint SSD300 basato su VGG16 come rilevatore solo per inferenza.
- Task
- detection
- Dimensioni
- 300 at 300 px
- Installa
pip install libreyolo- Livello di supporto
- Solo inferenza, dalla v. Solo predizione, validazione ed esportazione. Le funzionalità di addestramento non si applicano.
- Origine
- SSD di UNC Chapel Hill, Zoox, Google and University of Michigan, BSD-3-Clause. Articolo, sorgente
- Licenze
- Codice BSD-3-Clause, pesi BSD-3-Clause. Uso commerciale
Installazione
SSD non richiede nessun extra opzionale. Tutto quello che importa è nell'installazione base.
pip install libreyoloPredizione
I pesi si scaricano da Hugging Face al primo utilizzo e restano in cache in locale.
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'oggetto Results restituito è lo stesso che restituisce ogni famiglia, quindi
passare a un rilevatore diverso è una modifica di una riga. SSD decodifica la
sua griglia di box predefiniti con punteggi per classe e poi esegue la
non-maximum suppression, quindi qui conf, iou e max_det hanno tutti un
effetto reale, a differenza dei rilevatori basati su query presenti in questa
libreria. Vedi predizione per sorgenti, streaming e gestione
dei risultati.
Varianti
SSD include un solo checkpoint: la rete SSD300 basata su VGG16 al suo canvas nativo fisso. In questa famiglia non c'è nessuna scelta di dimensione o scala; predizione, validazione ed esportazione usano tutte quell'unico grafo.
Il file di pesi è LibreSSD300.pt, il prefisso della famiglia seguito dalla sua
unica chiave di dimensione, "300". La classe sottostante è LibreSSD, quindi
una costruzione diretta è LibreSSD(size="300") e non una classe che prende il
nome dal file.
Validazione
val() restituisce un dizionario di chiavi metrics/ che coprono precisione,
recall, mAP 50 e mAP 50-95, misurate su qualsiasi dataset nel formato con cui
hai addestrato.
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.yamlEsportazione
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: supportato | Detection to TorchScript: non supportato | Detection to ExecuTorch: non supportato | Detection to TensorRT: non supportato | Detection to OpenVINO: non supportato | Detection to Paddle: non supportato | Detection to MNN: non supportato | Detection to RKNN: non supportato | Detection to ncnn: non supportato | Detection to TFLite: non supportato | Detection to CoreML: non supportato | Detection to Core AI: non supportato |
SSD esporta solo in ONNX; ogni altro formato è al momento bloccato per questa
famiglia. L'esportazione usa sempre il canvas nativo del checkpoint e il grafo
espone la testa grezza compattata di SSD invece di un output con
non-maximum-suppression fusa, quindi nms=True non viene accettato quando
esporti. I backend di LibreYOLO eseguono il passaggio di decode e soppressione
dopo aver ricaricato il grafo.
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt") # imgsz è omesso di proposito: SSD300 viene tracciato sul canvas nativo# del suo checkpoint e qualsiasi altro valore solleva un errore prima# che l'esportazione inizi.model.export(format="onnx")libreyolo export model=LibreSSD300.pt format=onnxfrom libreyolo import LibreYOLO # La factory instrada in base al suffisso del file, quindi un artefatto# esportato si carica come qualsiasi checkpoint e restituisce lo stesso# oggetto Results.model = LibreYOLO("LibreSSD300.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoint
Tutti i file di pesi pubblicati per questa famiglia.
| File | Ingresso (px) | Licenza dei pesi |
|---|---|---|
| Detection | ||
| LibreSSD300.pt | 300 | bsd-3-clause |
Oggi tutti i file elencati sopra sono presenti nell<link>organizzazione LibreYOLO</link> e vengono scaricati al primo utilizzo.
Licenza
Controlla la licenza nel repository Hugging Face degli specifici pesi che scarichi. Ogni checkpoint nell<link>organizzazione LibreYOLO</link> ne include una e non è sempre la stessa per tutta la famiglia. Quel repository è la fonte autorevole; il riepilogo seguente descrive le condizioni applicabili al momento dellultima verifica di questa pagina.
Questa è una descrizione delle licenze coinvolte, non una consulenza legale. Se la risposta è importante a fini commerciali, leggi personalmente le licenze e chiedi una consulenza indipendente.
- Lavoro originale
- SSD, UNC Chapel Hill, Zoox, Google and University of Michigan
- Licenza upstream
- BSD-3-Clause
- Sorgente upstream
- github.com/pytorch/vision
- Codice LibreYOLO
- MIT
- Pesi
- BSD-3-Clause, ripubblicati su huggingface.co/LibreYOLO
- Interpretazione
- 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.
Il codice SSD300 di LibreYOLO non è portato dalla release Caffe degli autori dell'articolo; deriva dall'implementazione SSD300 di torchvision, con licenza BSD-3-Clause, ed è quello il repository indicato sopra come sorgente upstream. I pesi VGG16 del backbone risalgono a loro volta alla VGGNet ridotta e completamente convoluzionale di Oxford, distribuita con licenza CC BY 4.0 da Karen Simonyan e Andrew Zisserman.
Citazione
@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}
}Copiato dal blocco di citazione degli autori disponibile su github.com/weiliu89/caffe/tree/ssd#citing-ssd.