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.

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("LibreCenterNetresdcn18.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreCenterNetresdcn18.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
DLA-34
from 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.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreCenterNetresdcn18.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreCenterNetresdcn18.pt data=my-dataset.yaml

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: compatívelDetection to TorchScript: compatívelDetection to ExecuTorch: compatívelDetection to TensorRT: compatívelDetection to OpenVINO: compatí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

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.

Python
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")
CLI
libreyolo export model=LibreCenterNetresdcn18.pt format=onnx opset=18
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("LibreCenterNetresdcn18.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
LibreCenterNetresdcn18.pt512mit
LibreCenterNetdla34.pt512mit

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.

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.