Ir para o conteúdo

Ultralytics YOLOv5

Visão geral

O YOLOv5u representa um avanço nas metodologias de detecção de objetos. Originário da arquitetura fundamental do modelo YOLOv5 desenvolvido pela Ultralytics, o YOLOv5u integra o split head anchor-free e objectness-free, um recurso introduzido anteriormente nos modelos YOLOv8. Essa adaptação refina a arquitetura do modelo, levando a uma melhor relação entre precisão e velocidade nas tarefas de detecção de objetos. Dados os resultados empíricos e seus recursos derivados, o YOLOv5u oferece uma alternativa eficiente para aqueles que buscam soluções robustas tanto em pesquisa quanto em aplicações práticas.

Ultralytics YOLOv5

Principais Características

  • Cabeçalho Ultralytics Dividido Sem Âncoras: Os modelos tradicionais de detecção de objetos dependem de caixas delimitadoras de âncora predefinidas para prever a localização de objetos. No entanto, o YOLOv5u moderniza essa abordagem. Ao adotar um cabeçalho Ultralytics dividido sem âncoras, garante um mecanismo de detecção mais flexível e adaptável, consequentemente melhorando o desempenho em diversos cenários.

  • Compromisso Otimizado entre Precisão e Velocidade: Velocidade e precisão geralmente puxam em direções opostas. Mas o YOLOv5u desafia esse compromisso. Ele oferece um equilíbrio calibrado, garantindo detecções em tempo real sem comprometer a precisão. Esse recurso é particularmente valioso para aplicações que exigem respostas rápidas, como veículos autônomos, robótica e análise de vídeo em tempo real.

  • Variedade de Modelos Pré-treinados: Entendendo que diferentes tarefas exigem diferentes conjuntos de ferramentas, o YOLOv5u oferece uma variedade de modelos pré-treinados. Quer se esteja a concentrar em Inferência, Validação ou Treino, existe um modelo feito à medida à sua espera. Esta variedade garante que não está apenas a usar uma solução única, mas um modelo especificamente ajustado para o seu desafio único.

Tarefas e Modos Suportados

Os modelos YOLOv5u, com vários pesos pré-treinados, se destacam em tarefas de Detecção de Objetos. Eles suportam uma gama abrangente de modos, tornando-os adequados para diversas aplicações, desde o desenvolvimento até a implementação.

Tipo de Modelo Pesos Pré-treinados Tarefa Inferência Validação Treinamento Exportar
YOLOv5u yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u Detecção de Objetos

Esta tabela fornece uma visão geral detalhada das variantes do modelo YOLOv5u, destacando sua aplicabilidade em tarefas de detecção de objetos e suporte para vários modos operacionais, como Inferência, Validação, Treinamento e Exportação. Este suporte abrangente garante que os usuários possam aproveitar ao máximo os recursos dos modelos YOLOv5u em uma ampla gama de cenários de detecção de objetos.

Métricas de Desempenho

Desempenho

Consulte a Documentação de Detecção para exemplos de uso com estes modelos treinados em COCO, que incluem 80 classes pré-treinadas.

Modelo YAML tamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
parâmetros
(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 uso

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

Exemplo

PyTorch pré-treinados *.pt modelos, bem como a configuração *.yaml os arquivos podem ser passados para o YOLO() classe 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")

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

# 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

Publicação Ultralytics YOLOv5

A Ultralytics não publicou um artigo de pesquisa formal para o YOLOv5 devido à natureza de rápida evolução dos modelos. Nós nos concentramos em avançar a tecnologia e torná-la mais fácil de usar, em vez de produzir documentação estática. Para obter as informações mais atualizadas sobre a arquitetura, os recursos e o uso do YOLO, consulte nosso repositório GitHub e documentação.

Se você usar YOLOv5 ou YOLOv5u em sua pesquisa, cite 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}
}

Por favor, note que os modelos YOLOv5 são fornecidos sob licenças AGPL-3.0 e Enterprise.

FAQ

O que é o Ultralytics YOLOv5u e como ele difere do YOLOv5?

O Ultralytics YOLOv5u é uma versão avançada do YOLOv5, integrando o head dividido sem âncoras e sem objectness que melhora a relação precisão-velocidade para tarefas de detecção de objetos em tempo real. Ao contrário do YOLOv5 tradicional, o YOLOv5u adota um mecanismo de detecção sem âncoras, tornando-o mais flexível e adaptável em diversos cenários. Para obter informações mais detalhadas sobre as suas funcionalidades, pode consultar a Visão Geral do YOLOv5.

Como o head Ultralytics sem anchor melhora o desempenho da detecção de objetos no YOLOv5u?

O head Ultralytics sem âncoras no YOLOv5u melhora o desempenho da detecção de objetos, eliminando a dependência de caixas delimitadoras de âncoras predefinidas. Isso resulta em um mecanismo de detecção mais flexível e adaptável que pode lidar com vários tamanhos e formas de objetos com maior eficiência. Essa melhoria contribui diretamente para um equilíbrio entre precisão e velocidade, tornando o YOLOv5u adequado para aplicações em tempo real. Saiba mais sobre sua arquitetura na seção Key Features.

Posso usar modelos YOLOv5u pré-treinados para diferentes tarefas e modos?

Sim, você pode usar modelos YOLOv5u pré-treinados para várias tarefas, como Object Detection (Detecção de Objetos). Esses modelos suportam vários modos, incluindo Inference (Inferência), Validation (Validação), Training (Treinamento) e Export (Exportação). Essa flexibilidade permite que os usuários aproveitem os recursos dos modelos YOLOv5u em diferentes requisitos operacionais. Para uma visão geral detalhada, consulte a seção Supported Tasks and Modes (Tarefas e Modos Suportados).

Como as métricas de desempenho dos modelos YOLOv5u se comparam em diferentes plataformas?

As métricas de desempenho dos modelos YOLOv5u variam dependendo da plataforma e do hardware utilizados. Por exemplo, o modelo YOLOv5nu atinge um mAP de 34,3 no conjunto de dados COCO com uma velocidade de 73,6 ms na CPU (ONNX) e 1,06 ms no A100 TensorRT. Métricas de desempenho detalhadas para diferentes modelos YOLOv5u podem ser encontradas na seção Métricas de Desempenho, que fornece uma comparação abrangente entre vários dispositivos.

Como posso treinar um modelo YOLOv5u usando a API Python Ultralytics?

Pode treinar um modelo YOLOv5u carregando um modelo pré-treinado e executando o comando de treino com o seu conjunto de dados. Aqui está um exemplo rápido:

Exemplo

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)
# 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

Para obter instruções mais detalhadas, visite a seção Exemplos de Uso.



📅 Criado há 1 ano ✏️ Atualizado há 3 meses

Comentários