CenterNet
O CenterNet modela um objeto como o ponto central do seu bounding box e regride todas as demais propriedades a partir de um pico do mapa de calor, então não precisa de âncoras nem de uma etapa de non-maximum-suppression. O LibreYOLO o inclui como detector somente de inferência.
- Tarefas
- detection
- Tamanhos
- resdcn18, dla34 at 512 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
- CenterNet por UT Austin and UC Berkeley, MIT. Artigo, código-fonte
- Licenças
- Código MIT, pesos MIT. Uso comercial
Instalação
O CenterNet 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("LibreCenterNetresdcn18.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreCenterNetresdcn18.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreCenterNetdla34.pt")result = model(SAMPLE_IMAGE, 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 max_det
filtram os picos do mapa de calor já ordenados; iou é aceito por paridade de
API, mas não tem efeito, porque o decode top-k de picos do CenterNet não
precisa de nenhuma etapa de supressão por IoU de caixas. Veja
predição para fontes, streaming e tratamento de resultados.
Variantes
Dois backbones. resdcn18 combina um tronco ResNet-18 com upsampling por
convolução deformável; dla34 combina um tronco DLA-34 com upsampling por
agregação profunda iterativa. Ambos alimentam as mesmas três cabeças densas
(mapa de calor, largura/altura, offset) e a mesma tela de entrada.
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("LibreCenterNetresdcn18.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreCenterNetresdcn18.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: incompatível | Detection to TFLite: incompatível | Detection to CoreML: incompatível | Detection to Core AI: incompatível |
A exportação para ONNX exige opset 16 ou superior: a etapa de upsampling por
convolução deformável de ambos os backbones baixa para o operador GridSample
do ONNX, introduzido no opset 16. Pedir um opset anterior gera um erro antes de
o traçado começar.
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt") # A exportação para ONNX precisa de opset 16 ou superior: a etapa de# upsampling por convolução deformável baixa para GridSample, que o# opset 16 introduziu.model.export(format="onnx", opset=18)model.export(format="tensorrt")libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18from 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("LibreCenterNetresdcn18.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 | ||
| LibreCenterNetresdcn18.pt | 512 | mit |
| LibreCenterNetdla34.pt | 512 | mit |
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
- CenterNet, UT Austin and UC Berkeley
- Licença original
- MIT
- Código-fonte original
- github.com/xingyizhou/CenterNet
- Código do LibreYOLO
- MIT
- Pesos
- MIT, republicado em huggingface.co/LibreYOLO
- Interpretação
- MIT is a permissive license, so these weights can be used in commercial and closed-source products. It asks only that you keep the copyright notice and license text with any copy you redistribute, and it places no obligation on your own application code. The official ResDCN-18 and DLA-34 COCO checkpoints were published by the MIT-licensed CenterNet project but carry no separate per-checkpoint license file; LibreYOLO's mirror states MIT as implied by the releasing project rather than a publisher-confirmed, checkpoint-specific grant.
O grafo do ResDCN-18 também credita o human-pose-estimation.pytorch da
Microsoft, licenciado sob MIT, e o grafo do DLA-34 credita a implementação DLA
de Fisher Yu, sob BSD-3-Clause. O LibreYOLO não incorpora a extensão DCNv2
original que o projeto upstream usava; a execução nativa roda o
deform_conv2d do torchvision, sob BSD-3-Clause, em vez dela, e a
implementação portátil, apenas para exportação, foi escrita separadamente para
o LibreYOLO.
Citação
@inproceedings{zhou2019objects,
title={Objects as Points},
author={Zhou, Xingyi and Wang, Dequan and Kr{\"a}henb{\"u}hl, Philipp},
booktitle={arXiv preprint arXiv:1904.07850},
year={2019}
}Copiado do bloco de citação dos autores em github.com/xingyizhou/CenterNet#citation.