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.

bash
pip install libreyolo

Predizione

I pesi si scaricano da Hugging Face al primo utilizzo e restano in cache in locale.

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'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.

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

Esportazione

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: supportatoDetection to TorchScript: non supportatoDetection to ExecuTorch: non supportatoDetection to TensorRT: non supportatoDetection to OpenVINO: non supportatoDetection to Paddle: non supportatoDetection to MNN: non supportatoDetection to RKNN: non supportatoDetection to ncnn: non supportatoDetection to TFLite: non supportatoDetection to CoreML: non supportatoDetection 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.

Python
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")
CLI
libreyolo export model=LibreSSD300.pt format=onnx
Usare il file esportato
from 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.

FileIngresso (px)Licenza dei pesi
Detection
LibreSSD300.pt300bsd-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.

Verificato con LibreYOLO v1.5.0. Le tabelle di supporto, i checkpoint e i dati dei benchmark in questa pagina vengono generati dalla libreria rilasciata e dai pesi pubblicati, non scritti a mano.