VGG
VGG é um classificador de imagens convolucional construído com pilhas uniformes de pequenas convoluções 3x3 em vez de filtros maiores. O LibreYOLO traz os tamanhos de 16 e 19 camadas, simples e com batch normalization, para classificação de imagens.
- Tarefas
- classify
- Tamanhos
- 16, 19, 16bn, 19bn at 224 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
- VGG por Visual Geometry Group, University of Oxford, BSD-3-Clause. Artigo, código-fonte
- Licenças
- Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial
Instalação
O VGG não precisa de nenhum extra opcional. Tudo o que ele importa está na instalação base.
pip install libreyoloPredição
Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache localmente.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreVGG16-cls.pt")result = model(SAMPLE_IMAGE, save=True) probs = result.probsprint(probs.top1, probs.top1conf)print(probs.top5, probs.top5conf)libreyolo predict model=LibreVGG16-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueUm classificador retorna result.probs em vez de result.boxes: top1
e top5 dão os índices das classes, e top1conf e top5conf dão as
confianças correspondentes. A predição roda com entrada fixa de 224px e levanta
um erro se você passar um imgsz diferente. Veja predição para
fontes, streaming e tratamento de resultados.
Variantes
Quatro tamanhos: 16 e 19 camadas convolucionais, cada um com uma variante simples e uma com batch normalization. Os pesos distribuídos vêm do treinamento posterior do torchvision na ImageNet, feito do zero, e não de conversões da versão Caffe original de 2014 publicada pelo grupo de Oxford. O LibreYOLO distribui esta família apenas para inferência: predição, validação top-1/top-5 no estilo ImageNet e exportação são suportadas, e o fine-tuning não está implementado.
Validação
val() roda sobre um split no formato ImageFolder (um diretório com as
subpastas train/ e val/, uma pasta por classe) e retorna a acurácia top-1 e
top-5.
from libreyolo import LibreYOLO model = LibreYOLO("LibreVGG16-cls.pt") # data é um diretório raiz com os splits train/ e val/ em pastas por# classe (layout ImageFolder), não um YAML de dataset.metrics = model.val(data="imagenet-1k/") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])libreyolo val model=LibreVGG16-cls.pt data=imagenet-1k/Exportação
| Tarefa | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| classify | classify to ONNX: compatível | classify to TorchScript: compatível | classify to ExecuTorch: compatível | classify to TensorRT: compatível | classify to OpenVINO: compatível | classify to Paddle: incompatível | classify to MNN: incompatível | classify to RKNN: incompatível | classify to ncnn: compatível | classify to TFLite: incompatível | classify to CoreML: incompatível | classify to Core AI: incompatível |
Um artefato exportado é recarregado por LibreYOLO() pelo sufixo do arquivo,
então um arquivo .onnx ou .engine se comporta como um checkpoint e retorna
o mesmo Results. Exportação lista os argumentos que todo
formato aceita e os extras que alguns deles adicionam.
from libreyolo import LibreYOLO model = LibreYOLO("LibreVGG16-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreVGG16-cls.pt format=onnxlibreyolo export model=LibreVGG16-cls.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # A factory decide o caminho pelo sufixo do arquivo, então um artefato# exportado carrega como qualquer checkpoint e retorna o mesmo Results.model = LibreYOLO("LibreVGG16-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)Checkpoints
Todos os arquivos de pesos publicados desta família.
| Arquivo | Entrada (px) | Licença dos pesos |
|---|---|---|
| classify | ||
| LibreVGG16-cls.pt | 224 | bsd-3-clause |
| LibreVGG19bn-cls.pt | 224 | bsd-3-clause |
| LibreVGG19-cls.pt | 224 | bsd-3-clause |
| LibreVGG16bn-cls.pt | 224 | bsd-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
- VGG, Visual Geometry Group, University of Oxford
- 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 the copyright notice, the list of conditions and the disclaimer with any copy you redistribute, and it forbids using the contributors' names to endorse a derived product without permission; it carries no explicit patent grant. LibreYOLO's code and the four shipped checkpoints (16, 19, 16-BN, 19-BN) are both derived from torchvision, not from the Oxford group's original 2014 Caffe release, which is a separate model under Creative Commons Attribution and is not what LibreYOLO redistributes. Torchvision itself notes that BSD-3-Clause redistribution of a pretrained checkpoint is an implied basis rather than a grant written for that specific checkpoint, and that pretrained-model terms can depend on the data a model was trained on; LibreYOLO repeats that caveat on each hosted weights repository.