Início rápido da YOLOv5 🚀#
Este guia é um ponto de partida para a deteção de objetos em tempo real com Ultralytics YOLOv5. Aborda a instalação, a inferência com PyTorch Hub e detect.py, e o treino, para que possas aplicar este modelo de aprendizagem profunda aos teus próprios projetos.
Instalação#
Clona o repositório YOLOv5 e instala os respetivos requisitos num ambiente com Python>=3.8.0 e PyTorch>=1.8.
git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependenciesInferência com PyTorch Hub#
Executa a inferência YOLOv5 através do PyTorch Hub, que transfere automaticamente modelos da versão mais recente do YOLOv5. Este método utiliza PyTorch para carregar e executar o modelo, facilitando a obtenção de previsões.
import torch
# Carregamento do modelo
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Pode ser 'yolov5n' - 'yolov5x6' ou 'custom'
# Inferência em imagens
img = "https://ultralytics.com/images/zidane.jpg" # Pode ser um ficheiro, Path, PIL, OpenCV, numpy ou uma lista de imagens
# Executar inferência
results = model(img)
# Apresentar resultados
results.print() # ou .show(), .save(), .crop(), .pandas(), etc.Inferência com detect.py#
Usa detect.py para fazer inferência numa vasta gama de fontes. O script obtém automaticamente modelos da versão mais recente do YOLOv5 e guarda os resultados em runs/detect. Este script é ideal para utilização na linha de comandos e para integrar YOLOv5 em sistemas de maior dimensão, suportando entradas como imagens, vídeos, diretórios, câmaras Web e até transmissões em direto.
python detect.py --weights yolov5s.pt --source 0 # webcam
python detect.py --weights yolov5s.pt --source image.jpg # image
python detect.py --weights yolov5s.pt --source video.mp4 # video
python detect.py --weights yolov5s.pt --source screen # screenshot
python detect.py --weights yolov5s.pt --source path/ # directory
python detect.py --weights yolov5s.pt --source list.txt # list of images
python detect.py --weights yolov5s.pt --source list.streams # list of streams
python detect.py --weights yolov5s.pt --source 'path/*.jpg' # glob pattern
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # YouTube video
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP streamTreinamento#
Reproduz os benchmarks do conjunto de dados COCO do YOLOv5 seguindo as instruções de treino abaixo. Os modelos e conjuntos de dados necessários (como coco128.yaml ou o coco.yaml completo) são obtidos diretamente da versão mais recente do YOLOv5. O treino do YOLOv5n/s/m/l/x numa GPU V100 costuma demorar 1/2/4/6/8 dias, respetivamente (tem em conta que as configurações de treino com várias GPUs são mais rápidas). Maximiza o desempenho usando o --batch-size mais elevado possível ou usa --batch-size -1 para a funcionalidade AutoBatch do YOLOv5, que encontra automaticamente o tamanho do lote ideal. Os tamanhos de lote seguintes são ideais para GPUs V100 de 16 GB. Consulta o Resumo da arquitetura para obteres detalhes sobre os ficheiros de configuração do modelo (*.yaml).
# Train YOLOv5n on COCO128 for 3 epochs
python train.py --data coco128.yaml --epochs 3 --weights yolov5n.pt --batch-size 128
# Train YOLOv5s on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
# Train YOLOv5m on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
# Train YOLOv5l on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
# Train YOLOv5x on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
À medida que aplicas YOLOv5 aos teus projetos de visão computacional, o repositório GitHub é o local onde podes fazer perguntas e partilhar resultados com outros programadores e investigadores. Também podes utilizar a Ultralytics Platform para gerir conjuntos de dados e treinar modelos sem código, ou consultar a página de Soluções para ver aplicações reais.
Perguntas frequentes#
Não para inferência. O PyTorch Hub transfere o código e os pesos quando necessário com
torch.hub.load("ultralytics/yolov5", "yolov5s"). É necessário clonar o repositório para executar os scriptstrain.py,val.py,detect.pyeexport.py.yolov5s.ptoferece o melhor equilíbrio entre velocidade e precisão para a maioria dos projetos. Usayolov5n.ptpara dispositivos de borda,yolov5m.ptayolov5x.ptquando a precisão é mais importante do que a velocidade e as variantes P6, comoyolov5s6.pt, para treinar com 1280 píxeis. Consulta a tabela de checkpoints pré-treinados para ver a lista completa.Coloca as imagens e as etiquetas no formato YOLO em pastas paralelas
images/elabels/, descreve-as numdataset.yamle executapython train.py --data dataset.yaml --weights yolov5s.pt. O tutorial Treinar com dados personalizados explica cada etapa.YOLOv5 é estável e continua a ter suporte completo no repositório autónomo, mas já não é o modelo mais recente. Para novos projetos, YOLO26 no pacote
ultralyticsé mais rápido, mais preciso e exporta de ponta a ponta sem NMS, utilizando o mesmo fluxo de trabalhopip install ultralyticsdescrito no Guia de início rápido.
Comentários
Faz uma pergunta, partilha os teus resultados ou ajuda alguém.