YOLO Vision 2026:

Ultralytics YOLOv5#

Visão geral#

O YOLOv5u representa um avanço nas metodologias de object detection. Originário da arquitetura fundamental do modelo YOLOv5 desenvolvido pela Ultralytics, o YOLOv5u integra a cabeça dividida (split head) sem âncoras e sem objetividade, um recurso introduzido anteriormente nos modelos YOLOv8. Esta adaptação refina a arquitetura do modelo, resultando em uma relação precisão-velocidade aprimorada em tarefas de deteção de objetos. Dados os resultados empíricos e suas características derivadas, o YOLOv5u fornece uma alternativa eficiente para quem procura soluções robustas tanto em investigação quanto em aplicações práticas.

YOLOv5 object detection model architecture and performance

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

A Ultralytics fornece uma anchor-free variant of YOLOv5 model. Os modelos treinados com o repositório ultralytics/yolov5 não podem ser carregados com a biblioteca ultralytics/ultralytics. Para usar o YOLOv5 aqui, treina um novo modelo a partir de um checkpoint do Ultralytics YOLOv5u (por exemplo, yolov5su.pt).

Experimenta na Ultralytics Platform

Explora e executa modelos YOLOv5 diretamente na Ultralytics Platform.

Principais recursos#

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

  • Relação Otimizada entre Precisão e Velocidade: Velocidade e precisão muitas vezes puxam emdireções opostas. Mas o YOLOv5u desafia este compromisso. Oferece um equilíbrio calibrado, garantindo detecções em tempo real sem comprometer a precisão. Este recurso é particularmente inestimável para aplicações que exigem respostas rápidas, tais como autonomous vehicles, robotics e análise de vídeo em tempo real.

  • Variedade de modelos pré-treinados: Entendendo que diferentes tarefas exigem conjuntos de ferramentas diferentes, o YOLOv5u oferece uma infinidade de modelos pré-treinados. Esteja você focado em Inferência, Validação ou Treinamento, há um modelo feito sob medida esperando por você. Essa variedade garante que você não esteja apenas usando uma solução única para todos, mas um modelo especificamente ajustado para seu desafio exclusivo.

Tarefas e modos suportados#

Os modelos YOLOv5u, com vários pesos pré-treinados, destacam-se em tarefas de Object Detection. Suportam uma gama abrangente de modos, tornando-os 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, yolov5x6uDetecção de Objetos

Esta tabela fornece uma visão geral detalhada das variantes do modelo YOLOv5u, destacando a sua aplicabilidade em tarefas de deteção de objetos e suporte a vários modos operacionais, como Inference, Validation, Training e Export. Este suporte abrangente garante que os utilizadores possam aproveitar ao máximo as capacidades dos modelos YOLOv5u numa ampla gama de cenários de deteção de objetos.

Métricas de desempenho#

Desempenho

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

ModeloYAMLtamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(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.37.8
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.324.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.265.7
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1137.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.4250.7

Exemplos de uso#

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

Exemplo

Modelos *.pt pré-treinados em PyTorch, bem como ficheiros de configuração *.yaml, podem ser passados para a classe 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")

Citações e Agradecimentos#

Publicação Ultralytics YOLOv5

A Ultralytics não publicou um artigo de investigação formal para o YOLOv5 devido à natureza em rápida evolução dos modelos. Concentramo-nos em 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 atualizadas sobre a arquitetura, recursos e utilização do YOLO, consulta o nosso GitHub repository e a documentation.

Se você usar o YOLOv5 ou o YOLOv5u em sua pesquisa, cite 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 fornecidos sob as licenças AGPL-3.0 e Enterprise.

FAQ#

  • O Ultralytics YOLOv5u é uma versão avançada do YOLOv5, integrando a cabeça dividida sem âncoras e sem objetividade que melhora o compromisso entre accuracy e velocidade para 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, tornando-o mais flexível e adaptável em diversos cenários. Para obter informações mais detalhadas sobre os seus recursos, podes consultar o YOLOv5 Overview.

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

  • Sim, podes usar modelos YOLOv5u pré-treinados para várias tarefas, tais como Object Detection. Estes modelos suportam múltiplos modos, incluindo Inference, Validation, Training e Export. Esta flexibilidade permite aos utilizadores aproveitar as capacidades dos modelos YOLOv5u em diferentes requisitos operacionais. Para uma visão geral detalhada, consulta a secção Supported Tasks and Modes.

  • 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 no CPU (ONNX) e 1.06 ms no A100 TensorRT. As métricas de desempenho detalhadas para diferentes modelos YOLOv5u podem ser encontradas na secção Performance Metrics, que fornece uma comparação abrangente entre vários dispositivos.

  • Você pode treinar um modelo YOLOv5u carregando um modelo pré-treinado e executando o comando de treinamento com 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)

    Para obteres instruções mais detalhadas, visita a secção Usage Examples.

Comentários