YOLOv1

O YOLOv1 é o detector original de 2016 que deu nome à família YOLO: uma única rede convolucional com uma cabeça totalmente conectada prediz todas as caixas e pontuações de classe em uma só passada, sem anchor boxes. O LibreYOLO o mantém como uma peça de museu congelada e somente de inferência.

Tarefas
detection
Tamanhos
t, b at 448 px
Instalação
pip install libreyolo
Nível de suporte
Museu, desde a v. Exposição congelada. Somente correções de bugs.
Origem
YOLOv1 por Joseph Redmon, Public domain (Darknet "YOLO LICENSE"). Artigo, código-fonte
Licenças
Código MIT, pesos Public domain (Darknet "YOLO LICENSE"). Uso comercial

Instalação

O YOLOv1 não precisa de nenhum extra além do pacote base.

bash
pip install libreyolo

Predição

Esta família é somente de inferência: train() levanta NotImplementedError, então esta página não tem seção de treinamento. Predição, validação e exportação são todas suportadas. 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("LibreYOLO1b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreYOLO1b.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. Duas coisas são específicas desta família. O checkpoint publicado é treinado no Pascal VOC (2007+2012), não no COCO, então box.cls indexa as 20 categorias do VOC (aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor) em vez das 80 do COCO. E a cabeça de detecção totalmente conectada aceita uma imagem por vez, então uma lista de fontes é percorrida em laço em vez de rodar como um batch de verdade. Veja predição para fontes, streaming e tratamento de resultados.

Validação

val() retorna um dicionário de chaves metrics/ cobrindo precisão, recall, mAP 50 e mAP 50-95, medidos contra um dataset no mesmo espaço de rótulos estilo VOC em que o checkpoint foi treinado.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreYOLO1b.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: compatívelDetection to TFLite: incompatívelDetection to CoreML: incompatívelDetection to Core AI: compatí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. Rodar o grafo em um runtime puro, sem o LibreYOLO instalado, também é suportado, mas aí o pré-processamento e o pós-processamento ficam por sua conta.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO1b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreYOLO1b.pt format=onnxlibreyolo export model=LibreYOLO1b.pt format=tensorrt half=True
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("LibreYOLO1b.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
LibreYOLO1b.pt448other

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
YOLOv1, Joseph Redmon
Licença original
Public domain (Darknet "YOLO LICENSE")
Código-fonte original
github.com/pjreddie/darknet
Código do LibreYOLO
MIT
Pesos
Public domain (Darknet "YOLO LICENSE"), republicado em huggingface.co/LibreYOLO
Interpretação
Darknet's bundled NOTICE quotes its own license in full: "Darknet is public domain. Do whatever you want with it." That covers both the architecture and the pretrained weights LibreYOLO converts from it, with no attribution requirement and no restriction on commercial use. LibreYOLO's own code around this architecture is MIT. One thing to know before deploying this checkpoint: it is trained on Pascal VOC 2007+2012, not COCO, so it detects and names the 20 VOC categories rather than the 80 COCO ones.

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.