EfficientDet
O EfficientDet combina um backbone EfficientNet com uma rede piramidal de características bidirecional repetida (BiFPN) e escala profundidade, largura e resolução em conjunto ao longo de cinco tamanhos. O LibreYOLO o inclui como detector somente de inferência.
- Tarefas
- detection
- Tamanhos
- 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
- EfficientDet por Google Research, Apache-2.0. Artigo, código-fonte
- Licenças
- Código Apache-2.0, pesos Apache-2.0. Uso comercial
Instalação
O EfficientDet 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 local.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreEfficientDetd0.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreEfficientDetd0.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueO objeto Results retornado é o mesmo que todas as famílias retornam, então
trocar por outro detector é uma mudança de uma linha. O EfficientDet decodifica
candidatos baseados em âncoras e depois roda non-maximum suppression por
classe, então conf, iou e max_det têm efeito real aqui. Veja
predição para fontes, streaming e tratamento de resultados.
Variantes
Cinco tamanhos, do D0 ao D4. Cada passo adiante combina um backbone EfficientNet maior com uma BiFPN mais profunda e mais larga e uma cabeça de predição mais profunda, então a contagem de parâmetros e o custo computacional crescem juntos, seguindo a regra de compound scaling do artigo.
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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreEfficientDetd0.pt data=my-dataset.yamlExportação
| Tarefa | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: compatível | Detection to TorchScript: compatível | Detection to ExecuTorch: compatível | Detection to TensorRT: compatível | Detection to OpenVINO: compatível | Detection to Paddle: incompatível | Detection to MNN: incompatível | Detection to RKNN: incompatível | Detection to ncnn: compatível | Detection to TFLite: incompatível | Detection to CoreML: incompatível | Detection to Core AI: incompatível |
Um artefato exportado carrega de volta por LibreYOLO() pela extensão do
arquivo, então um arquivo .onnx ou .engine se comporta como um checkpoint e
retorna o mesmo Results.
from libreyolo import LibreYOLO model = LibreYOLO("LibreEfficientDetd0.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreEfficientDetd0.pt format=onnxlibreyolo export model=LibreEfficientDetd0.pt format=tensorrt half=Truefrom 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("LibreEfficientDetd0.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Todos os arquivos de pesos publicados desta família.
| Arquivo | Entrada (px) | Licença dos pesos |
|---|---|---|
| Detection | ||
| LibreEfficientDetd0.pt | apache-2.0 | |
| LibreEfficientDetd1.pt | apache-2.0 | |
| LibreEfficientDetd2.pt | apache-2.0 | |
| LibreEfficientDetd3.pt | apache-2.0 | |
| LibreEfficientDetd4.pt | apache-2.0 | |
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
- EfficientDet, Google Research
- Licença original
- Apache-2.0
- Código-fonte original
- github.com/rwightman/efficientdet-pytorch
- Código do LibreYOLO
- MIT
- Pesos
- Apache-2.0, republicado em huggingface.co/LibreYOLO
- Interpretação
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code. LibreYOLO's D0-D4 checkpoints are converted from Google's official TensorFlow-trained release assets through the Apache-2.0 rwightman/efficientdet-pytorch project; those release assets carry no separate per-checkpoint license, so redistribution here rests on Apache-2.0 implied by the releasing project, the same basis rwightman/efficientdet-pytorch itself uses for its own converted weights.
Os checkpoints D0-D4 do LibreYOLO são convertidos por meio do projeto rwightman/efficientdet-pytorch, sob licença Apache-2.0, que por sua vez espelha os pesos oficiais treinados em TensorFlow do google/automl sem alterar tensores aprendidos. Nenhum código do projeto zylo117/Yet-Another-EfficientDet-Pytorch, licenciado sob LGPL, foi consultado ou usado.