Salta para o conteúdo

YOLOv5

Visão geral

O YOLOv5u representa um avanço nas metodologias de deteção de objectos. Com origem na arquitetura fundamental do modelo YOLOv5 modelo desenvolvido por Ultralytics, o YOLOv5u integra a cabeça dividida sem âncoras e sem objectos, uma caraterística anteriormente introduzida nos YOLOv8 modelos. Esta adaptação aperfeiçoa a arquitetura do modelo, conduzindo a uma melhor relação precisão-velocidade em tarefas de deteção de objectos. Tendo em conta os resultados empíricos e as suas características derivadas, o YOLOv5u constitui uma alternativa eficiente para quem procura soluções robustas tanto na investigação como em aplicações práticas.

Ultralytics YOLOv5

Características principais

  • Split sem âncoras Ultralytics Head: Os modelos tradicionais de deteção de objectos baseiam-se em caixas de âncoras predefinidas para prever a localização dos objectos. No entanto, o YOLOv5u moderniza esta abordagem. Ao adotar uma cabeça dividida sem âncoras Ultralytics , assegura um mecanismo de deteção mais flexível e adaptável, melhorando consequentemente o desempenho em diversos cenários.

  • Troca optimizada entre precisão e velocidade: A velocidade e a precisão são muitas vezes opostas. Mas o YOLOv5u desafia esta troca. Oferece um equilíbrio calibrado, garantindo detecções em tempo real sem comprometer a precisão. Esta caraterística é particularmente valiosa para aplicações que exigem respostas rápidas, tais como veículos autónomos, robótica e análise de vídeo em tempo real.

  • Variedade de modelos pré-treinados: Compreendendo que diferentes tarefas requerem diferentes conjuntos de ferramentas, o YOLOv5u fornece uma infinidade de modelos pré-treinados. Quer te estejas a concentrar na Inferência, Validação ou Treino, há um modelo feito à medida à tua espera. Esta variedade garante que não estás apenas a utilizar uma solução única, mas um modelo especificamente ajustado ao teu desafio único.

Tarefas e modos suportados

Os modelos YOLOv5u, com vários pesos pré-treinados, são excelentes em tarefas de deteção de objectos. Suportam uma gama abrangente de modos, o que os torna adequados para diversas aplicações, desde o desenvolvimento até à implementação.

Tipo de modelo Pesos pré-treinados Tarefa Inferência Validação Formação Exportação
YOLOv5u yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u Deteção de objectos

Esta tabela fornece uma visão detalhada das variantes do modelo YOLOv5u, destacando a sua aplicabilidade em tarefas de deteção de objectos e suporte para vários modos operacionais, tais como Inferência, Validação, Treino e Exportação. Este suporte abrangente garante que os utilizadores podem aproveitar totalmente as capacidades dos modelos YOLOv5u numa vasta gama de cenários de deteção de objectos.

Métricas de desempenho

Desempenho

Consulta os Documentos de deteção para obteres exemplos de utilização com estes modelos treinados em COCO, que incluem 80 classes pré-treinadas.

Modelo YAML tamanho
(pixéis)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
yolov5nu.pt yolov5n.yaml 640 34.3 73.6 1.06 2.6 7.7
yolov5su.pt yolov5s.yaml 640 43.0 120.7 1.27 9.1 24.0
yolov5mu.pt yolov5m.yaml 640 49.0 233.9 1.86 25.1 64.2
yolov5lu.pt yolov5l.yaml 640 52.2 408.4 2.50 53.2 135.0
yolov5xu.pt yolov5x.yaml 640 53.2 763.2 3.81 97.2 246.4
yolov5n6u.pt yolov5n6.yaml 1280 42.1 211.0 1.83 4.3 7.8
yolov5s6u.pt yolov5s6.yaml 1280 48.6 422.6 2.34 15.3 24.6
yolov5m6u.pt yolov5m6.yaml 1280 53.6 810.9 4.36 41.2 65.7
yolov5l6u.pt yolov5l6.yaml 1280 55.7 1470.9 5.47 86.1 137.4
yolov5x6u.pt yolov5x6.yaml 1280 56.8 2436.5 8.98 155.4 250.7

Exemplos de utilização

Este exemplo fornece exemplos simples de treinamento e inferência em YOLOv5 . Para obter a documentação completa sobre estes e outros modos, consulta as páginas de documentação Predict, Train, Val e Export.

Exemplo

PyTorch pré-treinado *.pt modelos, bem como a configuração *.yaml podem ser passados para o YOLO() para criar uma instância de modelo em python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv5n model
model = YOLO('yolov5n.pt')

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')

CLI estão disponíveis para executar diretamente os modelos:

# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg

Citações e agradecimentos

Se utilizares YOLOv5 ou YOLOv5u na tua investigação, cita o repositório Ultralytics YOLOv5 da seguinte forma:

@software{yolov5,
  title = {Ultralytics YOLOv5},
  author = {Glenn Jocher},
  year = {2020},
  version = {7.0},
  license = {AGPL-3.0},
  url = {https://github.com/ultralytics/yolov5},
  doi = {10.5281/zenodo.3908559},
  orcid = {0000-0001-5950-6979}
}

Tem em atenção que os modelos YOLOv5 são fornecidos ao abrigo das licenças AGPL-3.0 e licenças Enterprise.



Criado em 2023-11-12, Atualizado em 2024-04-17
Autores: glenn-jocher (9)

Comentários