Ultralytics YOLO27:
Get Started

Ultralytics YOLOv5#

Visão geral#

O YOLOv5u representa um avanço nas metodologias de deteção de objetos. Com origem na arquitetura fundamental do modelo YOLOv5, desenvolvido pela Ultralytics, o YOLOv5u integra a cabeça dividida sem âncoras e sem previsão de presença de objetos, uma funcionalidade introduzida anteriormente nos modelos YOLOv8. Esta adaptação aperfeiçoa a arquitetura do modelo, melhorando o equilíbrio entre precisão e velocidade nas tarefas de deteção de objetos. Com base nos resultados empíricos e nas funcionalidades derivadas, o YOLOv5u oferece uma alternativa eficiente para quem procura soluções robustas tanto na investigação como em aplicações práticas.

Arquitetura e desempenho do modelo de deteção de objetos YOLOv5

Os modelos treinados com o repositório original do YOLOv5 não são compatíveis com a biblioteca Ultralytics

A Ultralytics disponibiliza uma variante do modelo YOLOv5 sem âncoras. Não é possível carregar modelos treinados com o repositório ultralytics/yolov5 através da biblioteca ultralytics/ultralytics. Para usar o YOLOv5 aqui, treina um modelo novo a partir de um checkpoint Ultralytics YOLOv5u (por exemplo, yolov5su.pt).

Experimenta na plataforma Ultralytics

Explora e executa modelos YOLOv5 diretamente na Ultralytics Platform.

Principais funcionalidades#

  • Cabeça dividida sem âncoras da Ultralytics: Os modelos tradicionais de deteção de objetos dependem de caixas-âncora predefinidas para prever a localização dos objetos. No entanto, o YOLOv5u moderniza esta abordagem. Ao adotar uma cabeça dividida da Ultralytics sem âncoras, garante um mecanismo de deteção mais flexível e adaptável, melhorando assim o desempenho em diversos cenários.

  • Equilíbrio otimizado entre precisão e velocidade: A velocidade e a precisão são muitas vezes objetivos opostos. Mas o YOLOv5u desafia este compromisso. Oferece um equilíbrio calibrado, garantindo deteções em tempo real sem comprometer a precisão. Esta funcionalidade é particularmente valiosa 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: Reconhecendo que tarefas diferentes exigem conjuntos de ferramentas diferentes, o YOLOv5u disponibiliza uma grande variedade de modelos pré-treinados. Quer te concentres em inferência, validação ou treino, há um modelo feito à medida à tua espera. Esta variedade garante que não estás apenas a usar uma solução universal, mas um modelo ajustado especificamente ao teu desafio.

Tarefas e modos compatíveis#

Os modelos YOLOv5u, com vários pesos pré-treinados, destacam-se em tarefas de deteção de objetos. São compatíveis com uma vasta gama de modos, o que os torna adequados para diversas aplicações, desde o desenvolvimento até à implementação.

Tipo de modeloPesos pré-treinadosTarefaTreinamentoValidaçãoInferênciaExportar
YOLOv5uyolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6uDeteção de objetos✅✅✅✅

Esta tabela apresenta uma visão geral detalhada das variantes do modelo YOLOv5u, destacando a sua aplicabilidade em tarefas de deteção de objetos e a compatibilidade com vários modos operacionais, como inferência, validação, treino e exportação. Esta compatibilidade abrangente garante que os utilizadores podem aproveitar plenamente as capacidades dos modelos YOLOv5u em vários cenários de deteção de objetos.

Métricas de desempenho#

Desempenho

Consulta a documentação de deteção para ver exemplos de utilização destes modelos treinados no COCO, que incluem 80 classes pré-treinadas.

ModeloYAMLtamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
parâmetros
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.331.3
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.397.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.2261.3
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1549.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.51002.8

Exemplos de uso#

Este exemplo apresenta exemplos simples de treino e inferência com YOLOv5. Para consultar a documentação completa destes e de outros modos, vê as páginas de documentação de previsão, treino, validação e exportação.

Exemplo

Os modelos *.pt pré-treinados em PyTorch, assim como os ficheiros de configuração *.yaml, podem ser passados à classe YOLO() para criar uma instância do modelo em Python:

from ultralytics import YOLO

# Carregar um modelo YOLOv5nu pré-treinado no COCO
model = YOLO("yolov5nu.pt")

# Exibir informações do modelo (opcional)
model.info()

# Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Executar inferência com o modelo YOLOv5nu na imagem 'bus.jpg'
results = model("path/to/bus.jpg")

Citações e agradecimentos#

Publicação do Ultralytics YOLOv5

A Ultralytics não publicou um artigo de investigação formal sobre o YOLOv5, dada a rápida evolução dos modelos. O nosso foco é fazer avançar a tecnologia e torná-la mais fácil de usar, em vez de produzir documentação estática. Para obteres as informações mais recentes sobre a arquitetura, as funcionalidades e a utilização do YOLO, consulta o nosso repositório do GitHub e a nossa documentação.

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

Citação
@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 disponibilizados ao abrigo das licenças AGPL-3.0 e Enterprise.

Perguntas frequentes#

  • O Ultralytics YOLOv5u é uma versão avançada do YOLOv5 que integra uma cabeça dividida sem âncoras e sem previsão de presença de objetos, melhorando o equilíbrio entre precisão e velocidade nas tarefas de deteção de objetos em tempo real. Ao contrário do YOLOv5 tradicional, o YOLOv5u adota um mecanismo de deteção sem âncoras, o que o torna mais flexível e adaptável a diversos cenários. Para obteres informações mais detalhadas sobre as funcionalidades, consulta a visão geral do YOLOv5.

  • A cabeça da Ultralytics sem âncoras do YOLOv5u melhora o desempenho da deteção de objetos ao eliminar a dependência de caixas-âncora predefinidas. Isto resulta num mecanismo de deteção mais flexível e adaptável, capaz de lidar com objetos de vários tamanhos e formas 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. Aprende mais sobre a arquitetura na secção Principais funcionalidades.

  • Sim, podes usar modelos YOLOv5u pré-treinados para várias tarefas, como a deteção de objetos. Estes modelos são compatíveis com vários modos, incluindo inferência, validação, treino e exportação. Esta flexibilidade permite aos utilizadores aproveitar as capacidades dos modelos YOLOv5u para diferentes requisitos operacionais. Para uma visão geral detalhada, consulta a secção Tarefas e modos compatíveis.

  • As métricas de desempenho dos modelos YOLOv5u variam consoante a plataforma e o hardware utilizados. Por exemplo, o modelo YOLOv5nu alcança 34,3 mAP no conjunto de dados COCO, com uma velocidade de 73,6 ms na CPU (ONNX) e de 1,06 ms no A100 com TensorRT. Podes encontrar métricas de desempenho detalhadas para diferentes modelos YOLOv5u na secção Métricas de desempenho, que apresenta uma comparação abrangente entre vários dispositivos.

  • Podes treinar um modelo YOLOv5u carregando um modelo pré-treinado e executando o comando de treino com o teu conjunto de dados. Eis um exemplo rápido:

    Exemplo
    from ultralytics import YOLO
    
    # Carregar um modelo YOLOv5nu pré-treinado no COCO
    model = YOLO("yolov5nu.pt")
    
    # Exibir informações do modelo (opcional)
    model.info()
    
    # Treina o modelo no conjunto de dados de exemplo COCO8 durante 100 épocas
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Para instruções mais detalhadas, visita a secção Exemplos de utilização.

Comentários