Home
Login

YOLOv5, o modelo de detecção de objetos em tempo real de última geração baseado em PyTorch, suporta tarefas de detecção de objetos, segmentação de imagens e classificação de imagens.

AGPL-3.0Python 54.3kultralyticsyolov5 Last Updated: 2025-06-21

Introdução Detalhada ao Projeto YOLOv5

Visão Geral do Projeto

Ultralytics YOLOv5 🚀 é um modelo de visão computacional de ponta (SOTA) desenvolvido pela Ultralytics. Baseado no framework PyTorch, o YOLOv5 é conhecido por sua facilidade de uso, velocidade e precisão. Ele incorpora insights e melhores práticas de extensa pesquisa e desenvolvimento, tornando-o uma escolha popular para diversas tarefas de IA visual.

Endereço do Projeto: https://github.com/ultralytics/yolov5

Características Principais

Suporte Multitarefa

O YOLOv5 suporta várias tarefas de visão computacional:

  • Detecção de Objetos: Identificação e localização de múltiplos objetos em imagens.
  • Segmentação de Instâncias: Segmentação de objetos em nível de pixel.
  • Classificação de Imagens: Classificação de categorias de imagens individuais.

Vantagens Técnicas

As características principais incluem inferência em tempo real, suporte para várias técnicas de treinamento, como aumento de tempo de teste (TTA) e integração de modelos, e compatibilidade com formatos de exportação como TFLite, ONNX, CoreML e TensorRT.

Arquitetura e Desempenho do Modelo

Especificações do Modelo

O YOLOv5 oferece vários tamanhos de modelo para atender a diferentes necessidades:

Modelo Parâmetros (M) Velocidade Precisão Cenários de Aplicação
YOLOv5n 1.9 Mais Rápido Mais Baixa Dispositivos móveis, computação de borda
YOLOv5s 7.2 Rápido Média Aplicações gerais
YOLOv5m 21.2 Médio Mais Alta Desempenho equilibrado
YOLOv5l 46.5 Mais Lento Alta Requisitos de alta precisão
YOLOv5x 86.7 Mais Lento Mais Alta Requisitos de precisão máxima

Métricas de Desempenho

Desempenho no conjunto de dados COCO:

  • YOLOv5s: mAP@0.5:0.95 = 37.4%, velocidade 6.4ms (V100)
  • YOLOv5m: mAP@0.5:0.95 = 45.4%, velocidade 8.2ms (V100)
  • YOLOv5l: mAP@0.5:0.95 = 49.0%, velocidade 10.1ms (V100)
  • YOLOv5x: mAP@0.5:0.95 = 50.7%, velocidade 12.1ms (V100)

Instalação e Início Rápido

Requisitos de Ambiente

  • Python >= 3.8.0
  • PyTorch >= 1.8

Passos de Instalação

# Clonar o repositório
git clone https://github.com/ultralytics/yolov5
cd yolov5

# Instalar as dependências
pip install -r requirements.txt

Usando o PyTorch Hub para Inferência

import torch

# Carregar o modelo YOLOv5
model = torch.hub.load("ultralytics/yolov5", "yolov5s")

# Definir a fonte da imagem de entrada
img = "https://ultralytics.com/images/zidane.jpg"

# Executar a inferência
results = model(img)

# Processar os resultados
results.print()  # Imprimir os resultados no console
results.show()   # Exibir os resultados em uma janela
results.save()   # Salvar os resultados em runs/detect/exp

Inferência na Linha de Comando

# Inferência usando a câmera
python detect.py --weights yolov5s.pt --source 0

# Inferência em um arquivo de imagem local
python detect.py --weights yolov5s.pt --source img.jpg

# Inferência em um arquivo de vídeo
python detect.py --weights yolov5s.pt --source vid.mp4

# Inferência em um diretório de imagens
python detect.py --weights yolov5s.pt --source path/to/images/

# Inferência em um vídeo do YouTube
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'

Treinando um Modelo Personalizado

Exemplo de Comando de Treinamento

# Treinar o YOLOv5s no conjunto de dados COCO, 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64

# Treinar o YOLOv5m
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40

# Treinar o YOLOv5l
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24

Treinamento Multi-GPU

# Usar treinamento distribuído multi-GPU
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 train.py --data coco.yaml --weights '' --cfg yolov5s.yaml --batch-size 64 --device 0,1,2,3

Funcionalidade de Segmentação de Instâncias

A versão 7.0 do YOLOv5 introduziu a funcionalidade de segmentação de instâncias, alcançando desempenho de ponta no conjunto de dados COCO.

Desempenho do Modelo de Segmentação

Modelo mAP^box mAP^mask Parâmetros (M) Velocidade (ms)
YOLOv5n-seg 27.6 23.4 2.0 59.2
YOLOv5s-seg 37.6 32.0 7.6 63.7
YOLOv5m-seg 45.0 37.1 22.0 89.5
YOLOv5l-seg 49.0 39.9 47.8 168.4
YOLOv5x-seg 50.7 41.4 88.8 265.7

Exemplo de Treinamento de Segmentação

# Treinar o modelo de segmentação
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640

# Validar o modelo de segmentação
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640

# Usar o modelo de segmentação para previsão
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg

Funcionalidade de Classificação de Imagens

A versão 6.2 do YOLOv5 adicionou a funcionalidade de classificação de imagens, com resultados de treinamento de 90 epochs no conjunto de dados ImageNet:

Desempenho do Modelo de Classificação

Modelo Precisão Top1 Precisão Top5 Parâmetros (M) Velocidade (ms)
YOLOv5s-cls 71.5% 90.2% 5.5 1.7
YOLOv5m-cls 75.9% 92.9% 13.0 2.8
YOLOv5l-cls 78.0% 94.0% 27.4 4.9
YOLOv5x-cls 79.0% 94.4% 55.4 8.7

Exemplo de Treinamento de Classificação

# Treinar no conjunto de dados CIFAR-100
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128

# Validar o modelo ImageNet
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224

# Previsão de classificação de imagem
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg

Exportação e Implantação de Modelos

O YOLOv5 suporta vários formatos de implantação:

# Exportar para o formato ONNX
python export.py --weights yolov5s.pt --include onnx

# Exportar para o formato TensorRT
python export.py --weights yolov5s.pt --include engine

# Exportar para o formato CoreML (adequado para iOS)
python export.py --weights yolov5s.pt --include coreml

# Exportar para o formato TFLite (adequado para dispositivos móveis)
python export.py --weights yolov5s.pt --include tflite

Funcionalidades Avançadas

Aumento de Tempo de Teste (TTA)

Melhorar a precisão da previsão por meio de reflexão e aumento de escala:

python val.py --data coco.yaml --img 1536 --iou 0.7 --augment

Integração de Modelos

Combinar vários modelos para obter melhor desempenho:

python val.py --data coco.yaml --weights yolov5s.pt yolov5m.pt yolov5l.pt yolov5x.pt

Evolução de Hiperparâmetros

Encontrar automaticamente os melhores hiperparâmetros de treinamento:

python train.py --data coco.yaml --evolve 300

Integração e Ecossistema

O YOLOv5 está profundamente integrado com várias plataformas de IA convencionais:

  • Weights & Biases: Rastreamento e visualização de experimentos
  • Comet ML: Gerenciamento e monitoramento de experimentos
  • Roboflow: Anotação e gerenciamento de dados
  • Intel OpenVINO: Otimização e implantação de modelos
  • Neural Magic: Esparsificação e aceleração de modelos
  • Ultralytics HUB: Plataforma completa de treinamento e implantação

Comunidade e Suporte

Resumo

Como um marco importante no campo da detecção de objetos, o YOLOv5 se tornou a estrutura preferida para pesquisa acadêmica e aplicações industriais devido ao seu excelente desempenho, facilidade de uso e recursos avançados. Sejam iniciantes ou desenvolvedores profissionais, todos podem encontrar soluções adequadas no ecossistema YOLOv5.

Star History Chart