Saltar para o conteúdo

Ultralytics 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 caraterí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

Caraterí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 tendem a seguir direcções opostas. Mas o YOLOv5u desafia esta troca. Oferece um equilíbrio calibrado, assegurando 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, YOLOv5u fornece uma infinidade de modelos pré-treinados. Quer se esteja a concentrar na Inferência, Validação ou Treino, há um modelo feito à medida à sua espera. Esta variedade garante que não está apenas a utilizar uma solução única, mas um modelo especificamente ajustado ao seu 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 geral 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 ao máximo as capacidades dos modelos YOLOv5u numa vasta gama de cenários de deteção de objectos.

Métricas de desempenho

Desempenho

Consulte os Documentos de deteção para obter 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 documentação completa sobre estes e outros modos, consulte as páginas de documentação Prever, Treinar, Avaliar e Exportar.

Exemplo

PyTorch pré-treinado *.pt modelos, bem como a configuração *.yaml podem ser passados para os ficheiros 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

Ultralytics YOLOv5 Publicação

Ultralytics não publicou um documento de investigação formal para YOLOv5 devido à natureza em rápida evolução dos modelos. Concentramo-nos no avanço da tecnologia e em facilitar a sua utilização, em vez de produzir documentação estática. Para obter as informações mais actualizadas sobre a arquitetura, as funcionalidades e a utilização do YOLO , consulte o nosso repositório GitHub e a documentação.

Se utilizar YOLOv5 ou YOLOv5u na sua investigação, 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}
}

Tenha 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 é o 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 pormenorizadas sobre as suas caraterísticas, pode 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. Saiba mais sobre a sua arquitetura na secção Caraterísticas principais.

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

Sim, é possível 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 obter uma visão geral detalhada, consulte 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 valor de 34,3 mAP 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 ?

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 secção Exemplos de utilização.

📅C riado há 1 ano ✏️ Atualizado há 14 dias

Comentários