RetinaNet

O RetinaNet é um detector one-stage treinado com focal loss, que reduz o peso dos negativos fáceis para que uma grade densa de âncoras não precise mais de uma etapa separada de propostas para continuar acurada. O LibreYOLO porta a implementação do torchvision para detecção.

Tarefas
detection
Tamanhos
r50, r50v2 at 800 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
RetinaNet por PyTorch, BSD-3-Clause. Artigo, código-fonte
Licenças
Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial

Instalação

O RetinaNet 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("LibreRetinaNetr50v2.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreRetinaNetr50v2.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. conf e iou definem os limiares de confiança e de NMS; o RetinaNet mantém a etapa de NMS do upstream sobre a grade densa de âncoras. Veja predição para fontes, streaming e tratamento de resultados.

Variantes

Dois tamanhos, ambos ResNet-50 com uma pirâmide de características: r50 é a cabeça original, e r50v2 a substitui por uma cabeça com GroupNorm e um bloco P6 mais largo alimentado pelo último estágio do backbone em vez da saída da FPN.

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("LibreRetinaNetr50v2.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreRetinaNetr50v2.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 RetinaNet exporta apenas para ONNX, com tamanho de batch 1. O RetinaNet redimensiona para uma entrada de tamanho variável que preserva a proporção, então o LibreYOLO força dynamic=True independentemente do que for passado, para manter o grafo válido para fontes de formatos diferentes. Um arquivo .onnx exportado carrega de volta por LibreYOLO() pela extensão do arquivo e retorna o mesmo Results.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreRetinaNetr50v2.pt")model.export(format="onnx", imgsz=800)
CLI
libreyolo export model=LibreRetinaNetr50v2.pt format=onnx imgsz=800
Usar o arquivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE # 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("LibreRetinaNetr50v2.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
LibreRetinaNetr50.pt800bsd-3-clause
LibreRetinaNetr50v2.pt800bsd-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
RetinaNet, PyTorch
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 this code can be used in commercial and closed-source products with no obligation on your own application code. It asks only that you keep the copyright notice and disclaimer with any copy you redistribute, and it carries no patent grant. The two published checkpoints used for parity testing are not distributed in the LibreYOLO source tree: torchvision's own documentation notes that a pretrained model's terms may depend on its training data, so each Hugging Face mirror ships the BSD text on that implied basis and repeats the caveat rather than issuing an explicit checkpoint-specific grant.

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.