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.

FAQ

O que é Ultralytics YOLOv5u e em que é que difere de YOLOv5?

Ultralytics YOLOv5u é uma versão avançada de YOLOv5, integrando a cabeça dividida sem âncoras e sem objectos que melhora a relação precisão-velocidade para tarefas de deteção de objectos em tempo real. Ao contrário do tradicional YOLOv5, o YOLOv5u adopta um mecanismo de deteção sem âncoras, tornando-o mais flexível e adaptável a diversos cenários. Para obter informações mais detalhadas sobre as suas características, podes consultar a YOLOv5 Overview.

Como é que a cabeça Ultralytics sem âncoras melhora o desempenho da deteção de objectos no YOLOv5u?

A cabeça Ultralytics sem âncoras do YOLOv5u melhora o desempenho da deteção de objectos ao eliminar a dependência de caixas de âncoras predefinidas. Isto resulta num mecanismo de deteção mais flexível e adaptável que pode lidar com vários tamanhos e formas de objectos com maior eficiência. Esta melhoria contribui diretamente para um equilíbrio entre precisão e velocidade, tornando o YOLOv5u adequado para aplicações em tempo real. Sabe mais sobre a sua arquitetura na secção Características principais.

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

Sim, podes utilizar modelos YOLOv5u pré-treinados para várias tarefas, como a Deteção de Objectos. Estes modelos suportam vários modos, incluindo Inferência, Validação, Treino e Exportação. Esta flexibilidade permite aos utilizadores tirar partido das capacidades dos modelos YOLOv5u em diferentes requisitos operacionais. Para uma visão geral detalhada, consulta a secção Tarefas e Modos Suportados.

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

As métricas de desempenho dos modelos YOLOv5u variam consoante a plataforma e o 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 em CPU (ONNX) e 1,06 ms em A100 TensorRT. As métricas de desempenho detalhadas para diferentes modelos YOLOv5u podem ser encontradas na secção Métricas de desempenho, que fornece uma comparação abrangente entre vários dispositivos.

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

Podes treinar um modelo YOLOv5u carregando um modelo pré-treinado e executando o comando de treino com o teu conjunto de dados. Vê aqui 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, visita a secção Exemplos de utilização.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (15), Burhan-Q (1)

Comentários