SSD

O SSD (Single Shot MultiBox Detector) prevê cada caixa e cada score de classe a partir de uma grade densa de caixas padrão em uma única passagem para frente, sem uma etapa separada de proposta de regiões. O LibreYOLO inclui o checkpoint SSD300 baseado em VGG16 como um detector somente de inferência.

Tarefas
detection
Tamanhos
300 at 300 px
Instalação
pip install libreyolo
Nível de suporte
Somente inferência, desde a v. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
Origem
SSD por UNC Chapel Hill, Zoox, Google and University of Michigan, BSD-3-Clause. Artigo, código-fonte
Licenças
Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial

Instalação

O SSD não precisa de nenhum extra opcional. Tudo o que ele importa está na instalação base.

bash
pip install libreyolo

Predição

Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache local.

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

O objeto Results retornado é o mesmo que todas as famílias retornam, então trocar por outro detector é uma mudança de uma linha. O SSD decodifica sua grade de caixas padrão com scores por classe e depois roda a non-maximum suppression, então conf, iou e max_det têm efeito real aqui, ao contrário dos detectores baseados em queries desta biblioteca. Veja predição para fontes, streaming e tratamento de resultados.

Variantes

O SSD vem com um único checkpoint: a rede SSD300 baseada em VGG16, na sua tela nativa fixa. Não há escolha de tamanho ou escala nesta família; predição, validação e exportação usam esse mesmo grafo.

O arquivo de pesos é LibreSSD300.pt, o prefixo da família seguido da sua única chave de tamanho, "300". A classe por trás dele é LibreSSD, então a construção direta é LibreSSD(size="300"), e não uma classe com o nome do arquivo.

Validação

val() retorna um dicionário de chaves metrics/ cobrindo precisão, recall, mAP 50 e mAP 50-95, medidos contra qualquer dataset no formato em que você treinou.

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

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: compatívelDetection to TorchScript: incompatívelDetection to ExecuTorch: incompatívelDetection to TensorRT: incompatívelDetection to OpenVINO: incompatívelDetection to Paddle: incompatívelDetection to MNN: incompatívelDetection to RKNN: incompatívelDetection to ncnn: incompatívelDetection to TFLite: incompatívelDetection to CoreML: incompatívelDetection to Core AI: incompatível

O SSD exporta apenas para ONNX; todos os outros formatos estão bloqueados para esta família no momento. A exportação sempre usa a tela nativa do checkpoint, e o grafo expõe a cabeça bruta empacotada do SSD em vez de uma saída de non-maximum-suppression fundida, então nms=True não é aceito na hora da exportação. Os próprios backends do LibreYOLO rodam a etapa de decode e supressão depois de carregar o grafo de volta.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreSSD300.pt") # imgsz foi deixado de fora aqui de propósito: o SSD300 é traçado na# tela nativa do seu checkpoint, e qualquer outro valor gera um erro# antes de a exportação começar.model.export(format="onnx")
CLI
libreyolo export model=LibreSSD300.pt format=onnx
Usar o arquivo exportado
from libreyolo import LibreYOLO # A factory roteia pela extensão do arquivo, então um artefato# exportado carrega como qualquer checkpoint e retorna o mesmo# objeto Results.model = LibreYOLO("LibreSSD300.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
Detection
LibreSSD300.pt300bsd-3-clause

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
SSD, UNC Chapel Hill, Zoox, Google and University of Michigan
Licença original
BSD-3-Clause
Código-fonte original
github.com/pytorch/vision
Código do LibreYOLO
MIT
Pesos
BSD-3-Clause, republicado em huggingface.co/LibreYOLO
Interpretação
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.

O código do SSD300 do LibreYOLO não foi portado da versão em Caffe publicada pelos próprios autores do artigo; ele deriva da implementação SSD300 do torchvision, sob BSD-3-Clause, e é esse o repositório vinculado acima como fonte upstream. Os pesos VGG16 do backbone remontam ainda mais atrás ao VGGNet reduzido totalmente convolucional de Oxford, publicado sob CC BY 4.0 por Karen Simonyan e Andrew Zisserman.

Citação

@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 do bloco de citação dos autores em github.com/weiliu89/caffe/tree/ssd#citing-ssd.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.