中文 | 한국어 | 日本語 | Russo | Alemão | Français | Espanhol | Português | Turquia | Tiếng Việt | العربية
YOLOv5 ? é a IA de visão mais amada do mundo, representando a pesquisa de código aberto da Ultralytics sobre métodos de IA de visão futura, incorporando lições aprendidas e melhores práticas desenvolvidas ao longo de milhares de horas de pesquisa e desenvolvimento.
Esperamos que os recursos aqui ajudem você a aproveitar ao máximo o YOLOv5. Consulte os documentos YOLOv5 para obter detalhes, levante um problema no GitHub para obter suporte e junte-se à nossa comunidade Discord para perguntas e discussões!
Para solicitar uma licença empresarial, preencha o formulário em Licenciamento Ultralytics.
YOLO11? NOVO
Temos o prazer de revelar o lançamento do Ultralytics YOLO11?, o mais recente avanço em nossos modelos de visão de última geração (SOTA)! Disponível agora no GitHub , o YOLO11 se baseia em nosso legado de velocidade, precisão e facilidade de uso. Esteja você lidando com detecção de objetos, segmentação ou classificação de imagens, o YOLO11 oferece o desempenho e a versatilidade necessários para se destacar em diversas aplicações.
Comece hoje e libere todo o potencial do YOLO11! Visite o Ultralytics Docs para guias e recursos completos:
pip instalar ultralíticos
Documentação
Consulte a documentação YOLOv5 para documentação completa sobre treinamento, teste e implantação. Veja abaixo exemplos de início rápido.
Clone o repositório e instale requisitos.txt em um ambiente Python>=3.8.0 , incluindo PyTorch>=1.8 .
clone git https://github.com/ultralytics/yolov5 # clonecd yolov5 pip instalar -r requisitos.txt # instalar
Inferência do YOLOv5 PyTorch Hub. Os modelos são baixados automaticamente da versão mais recente do YOLOv5.
importar tocha# Modelmodel = torch.hub.load("ultralytics/yolov5", "yolov5s") # ou yolov5n - yolov5x6, custom# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # ou arquivo, Caminho, PIL, OpenCV, numpy, lista# Inferenceresults = model(img)# Resultsresults.print() # ou .show(), .save(), .crop(), .pandas(), etc.
detect.py
executa inferência em uma variedade de fontes, baixando modelos automaticamente da versão mais recente do YOLOv5 e salvando os resultados em runs/detect
.
python detect.py --weights yolov5s.pt --source 0 # webcam img.jpg #imagem vid.mp4 # vídeo tela # captura de tela caminho/# diretório list.txt # lista de imagens list.streams # lista de streams 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # RTSP, RTMP, fluxo HTTP
Os comandos abaixo reproduzem os resultados do YOLOv5 COCO. Modelos e conjuntos de dados são baixados automaticamente da versão mais recente do YOLOv5. Os tempos de treinamento para YOLOv5n/s/m/l/x são 1/2/4/6/8 dias em uma GPU V100 (Multi-GPU vezes mais rápido). Use o maior --batch-size
possível ou passe --batch-size -1
para YOLOv5 AutoBatch. Tamanhos de lote mostrados para V100-16GB.
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 Yolov5s 64 Yolov5m 40 yolov5l 24 yolov5x 16
Treinar dados personalizados? RECOMENDADO
Dicas para melhores resultados de treinamento ☘️
Treinamento Multi-GPU
Hub PyTorch? NOVO
Exportação TFLite, ONNX, CoreML, TensorRT?
Implantação da plataforma NVIDIA Jetson? NOVO
Aumento do tempo de teste (TTA)
Conjunto de modelos
Poda/Disparidade do Modelo
Evolução do hiperparâmetro
Transferir aprendizagem com camadas congeladas
Resumo da arquitetura? NOVO
Ultralytics HUB para treinar e implantar YOLO? RECOMENDADO
Registro ClearML
YOLOv5 com Deepsparse do Neural Magic
Registro de cometa? NOVO
Integrações
Nossas principais integrações com as principais plataformas de IA ampliam a funcionalidade das ofertas da Ultralytics, aprimorando tarefas como rotulagem de conjuntos de dados, treinamento, visualização e gerenciamento de modelos. Descubra como o Ultralytics, em colaboração com W&B, Comet, Roboflow e OpenVINO, pode otimizar seu fluxo de trabalho de IA.
HUB ultralítico? | W&B | Cometa ⭐ NOVO | Magia Neural |
---|---|---|---|
Simplifique os fluxos de trabalho YOLO: rotule, treine e implante sem esforço com o Ultralytics HUB. Experimente agora! | Acompanhe experimentos, hiperparâmetros e resultados com pesos e preconceitos | Gratuito para sempre, o Comet permite salvar modelos YOLOv5, retomar o treinamento e visualizar e depurar previsões de forma interativa | Execute a inferência YOLO11 até 6x mais rápido com Neural Magic DeepSparse |
HUB Ultralítico
Experimente IA perfeita com Ultralytics HUB ⭐, a solução completa para visualização de dados, YOLOv5 e YOLOv8 ? treinamento e implantação de modelo, sem qualquer codificação. Transforme imagens em insights acionáveis e dê vida às suas visões de IA com facilidade usando nossa plataforma de ponta e o aplicativo Ultralytics fácil de usar. Comece sua jornada gratuitamente agora!
Por que YOLOv5
O YOLOv5 foi projetado para ser super fácil de começar e simples de aprender. Priorizamos resultados do mundo real.
COCO AP val denota a métrica mAP@0,5:0,95 medida no conjunto de dados COCO val2017 de 5.000 imagens em vários tamanhos de inferência de 256 a 1536.
A velocidade da GPU mede o tempo médio de inferência por imagem no conjunto de dados COCO val2017 usando uma instância AWS p3.2xlarge V100 em tamanho de lote 32.
Dados EfficientDet do google/automl no tamanho de lote 8.
Reproduzir por python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
Modelo | tamanho (pixels) | valor mAP 50-95 | valor mAP 50 | Velocidade CPU b1 (EM) | Velocidade V100 b1 (EM) | Velocidade V100 b32 (EM) | parâmetros (M) | FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n | 640 | 28,0 | 45,7 | 45 | 6.3 | 0,6 | 1,9 | 4,5 |
YOLOv5s | 640 | 37,4 | 56,8 | 98 | 6.4 | 0,9 | 7.2 | 16,5 |
YOLOv5m | 640 | 45,4 | 64,1 | 224 | 8.2 | 1.7 | 21.2 | 49,0 |
YOLOv5l | 640 | 49,0 | 67,3 | 430 | 10.1 | 2.7 | 46,5 | 109.1 |
YOLOv5x | 640 | 50,7 | 68,9 | 766 | 12.1 | 4.8 | 86,7 | 205,7 |
YOLOv5n6 | 1280 | 36,0 | 54,4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
YOLOv5s6 | 1280 | 44,8 | 63,7 | 385 | 8.2 | 3.6 | 12.6 | 16,8 |
YOLOv5m6 | 1280 | 51.3 | 69,3 | 887 | 11.1 | 6.8 | 35,7 | 50,0 |
YOLOv5l6 | 1280 | 53,7 | 71,3 | 1784 | 15,8 | 10,5 | 76,8 | 111,4 |
YOLOv5x6 + TT | 1280 1536 | 55,0 55,8 | 72,7 72,7 | 3136 - | 26.2 - | 19.4 - | 140,7 - | 209,8 - |
Todos os pontos de verificação são treinados para 300 épocas com configurações padrão. Os modelos Nano e Small usam hyp.scratch-low.yaml, todos os outros usam hyp.scratch-high.yaml.
Os valores mAP val são para escala única de modelo único no conjunto de dados COCO val2017.
Reproduzir por python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
Média de velocidade em imagens COCO val usando uma instância AWS p3.2xlarge. Tempos NMS (~1 ms/img) não incluídos.
Reproduzir por python val.py --data coco.yaml --img 640 --task speed --batch 1
O aumento do tempo de teste TTA inclui aumentos de reflexão e escala.
Reproduzir por python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
Segmentação
Nossos novos modelos de segmentação de instância YOLOv5 versão v7.0 são os mais rápidos e precisos do mundo, superando todos os benchmarks SOTA atuais. Nós os tornamos super simples de treinar, validar e implantar. Veja todos os detalhes em nossas notas de versão e visite nosso YOLOv5 Segmentation Colab Notebook para tutoriais de início rápido.
Treinamos modelos de segmentação YOLOv5 em COCO por 300 épocas em tamanho de imagem 640 usando GPUs A100. Exportamos todos os modelos para ONNX FP32 para testes de velocidade de CPU e para TensorRT FP16 para testes de velocidade de GPU. Executamos todos os testes de velocidade em notebooks Google Colab Pro para facilitar a reprodutibilidade.
Modelo | tamanho (pixels) | caixa mapa 50-95 | máscara mAP 50-95 | Hora do trem 300 épocas A100 (horas) | Velocidade CPU ONNX (EM) | Velocidade TRT A100 (EM) | parâmetros (M) | FLOPs @640 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-seg | 640 | 27,6 | 23.4 | 80:17 | 62,7 | 1.2 | 2,0 | 7.1 |
YOLOv5s-seg | 640 | 37,6 | 31,7 | 88:16 | 173,3 | 1.4 | 7.6 | 26,4 |
YOLOv5m-seg | 640 | 45,0 | 37.1 | 108:36 | 427,0 | 2.2 | 22,0 | 70,8 |
YOLOv5l-seg | 640 | 49,0 | 39,9 | 66:43 (2x) | 857,4 | 2.9 | 47,9 | 147,7 |
YOLOv5x-seg | 640 | 50,7 | 41,4 | 62:56 (3x) | 1579.2 | 4,5 | 88,8 | 265,7 |
Todos os pontos de verificação são treinados para 300 épocas com otimizador SGD com lr0=0.01
e weight_decay=5e-5
no tamanho de imagem 640 e todas as configurações padrão.
Execuções registradas em https://wandb.ai/glenn-jocher/YOLOv5_v70_official
Os valores de precisão são para modelo único em escala única no conjunto de dados COCO.
Reproduzir por python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
A velocidade média foi de mais de 100 imagens de inferência usando uma instância Colab Pro A100 High-RAM. Os valores indicam apenas a velocidade de inferência (NMS adiciona cerca de 1 ms por imagem).
Reproduzir por python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
Exporte para ONNX em FP32 e TensorRT em FP16 feito com export.py
.
Reproduzir por python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
O treinamento de segmentação YOLOv5 suporta download automático do conjunto de dados de segmentação COCO128-seg com o argumento --data coco128-seg.yaml
e download manual do conjunto de dados de segmentos COCO com bash data/scripts/get_coco.sh --train --val --segments
e então python train.py --data coco.yaml
.
# Segmento GPUpython único/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# Multi-GPU DDPpython -m torch.distributed.run --nproc_per_node 4 --master_port 1 segmento /train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3
Valide o mAP da máscara YOLOv5s-seg no conjunto de dados COCO:
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 imagens)python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validar
Use YOLOv5m-seg.pt pré-treinado para prever bus.jpg:
python segmento/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
model = torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # carregamento do PyTorch Hub (AVISO: inferência ainda não suportada)
Exporte o modelo YOLOv5s-seg para ONNX e TensorRT:
python export.py --weights yolov5s-seg.pt --include motor onnx --img 640 --device 0
Classificação
A versão YOLOv5 v6.2 traz suporte para treinamento, validação e implantação de modelo de classificação! Veja todos os detalhes em nossas Notas de Lançamento e visite nosso YOLOv5 Classification Colab Notebook para tutoriais de início rápido.
Treinamos modelos de classificação YOLOv5-cls no ImageNet por 90 épocas usando uma instância 4xA100 e treinamos modelos ResNet e EfficientNet junto com as mesmas configurações de treinamento padrão para comparação. Exportamos todos os modelos para ONNX FP32 para testes de velocidade de CPU e para TensorRT FP16 para testes de velocidade de GPU. Executamos todos os testes de velocidade no Google Colab Pro para facilitar a reprodutibilidade.
Modelo | tamanho (pixels) | conta topo1 | conta cinco principais | Treinamento 90 épocas 4xA100 (horas) | Velocidade CPU ONNX (EM) | Velocidade TensorRT V100 (EM) | parâmetros (M) | FLOPs @224 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-cls | 224 | 64,6 | 85,4 | 7:59 | 3.3 | 0,5 | 2,5 | 0,5 |
YOLOv5s-cls | 224 | 71,5 | 90,2 | 8:09 | 6.6 | 0,6 | 5.4 | 1.4 |
YOLOv5m-cls | 224 | 75,9 | 92,9 | 10:06 | 15,5 | 0,9 | 12,9 | 3.9 |
YOLOv5l-cls | 224 | 78,0 | 94,0 | 11:56 | 26,9 | 1.4 | 26,5 | 8,5 |
YOLOv5x-cls | 224 | 79,0 | 94,4 | 15:04 | 54,3 | 1,8 | 48,1 | 15,9 |
ResNet18 | 224 | 70,3 | 89,5 | 6:47 | 11.2 | 0,5 | 11.7 | 3.7 |
ResNet34 | 224 | 73,9 | 91,8 | 8:33 | 20.6 | 0,9 | 21.8 | 7.4 |
ResNet50 | 224 | 76,8 | 93,4 | 11:10 | 23.4 | 1,0 | 25,6 | 8,5 |
ResNet101 | 224 | 78,5 | 94,3 | 17:10 | 42.1 | 1,9 | 44,5 | 15,9 |
EficienteNet_b0 | 224 | 75,1 | 92,4 | 13:03 | 12,5 | 1.3 | 5.3 | 1,0 |
EficienteNet_b1 | 224 | 76,4 | 93,2 | 17:04 | 14,9 | 1.6 | 7,8 | 1,5 |
EficienteNet_b2 | 224 | 76,6 | 93,4 | 17:10 | 15,9 | 1.6 | 9.1 | 1.7 |
EficienteNet_b3 | 224 | 77,7 | 94,0 | 19:19 | 18,9 | 1,9 | 12.2 | 2.4 |
Todos os pontos de verificação são treinados para 90 épocas com otimizador SGD com lr0=0.001
e weight_decay=5e-5
no tamanho de imagem 224 e todas as configurações padrão.
Execuções registradas em https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2
Os valores de precisão são para modelo único em escala única no conjunto de dados ImageNet-1k.
Reproduzir por python classify/val.py --data ../datasets/imagenet --img 224
A velocidade média foi de mais de 100 imagens de inferência usando uma instância Google Colab Pro V100 High-RAM.
Reproduzir por python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
Exporte para ONNX em FP32 e TensorRT em FP16 feito com export.py
.
Reproduzir por python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
O treinamento de classificação YOLOv5 suporta download automático de conjuntos de dados MNIST, Fashion-MNIST, CIFAR10, CIFAR100, Imagenette, Imagewoof e ImageNet com o argumento --data
. Para iniciar o treinamento no MNIST, por exemplo, use --data mnist
.
# Single-GPUpython classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# Multi-GPU DDPpython -m torch.distributed.run --nproc_per_node 4 - -master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
Valide a precisão do YOLOv5m-cls no conjunto de dados ImageNet-1k:
bash data/scripts/get_imagenet.sh --val # download ImageNet val split (6.3G, 50000 imagens)python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # validar
Use YOLOv5s-cls.pt pré-treinado para prever bus.jpg:
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # carregamento do PyTorch Hub
Exporte um grupo de modelos treinados YOLOv5s-cls, ResNet e EfficientNet para ONNX e TensorRT:
python export.py --weights yolov5s-cls.pt resnet50.pt eficientenet_b0.pt --incluir motor onnx --img 224
Ambientes
Comece em segundos com nossos ambientes verificados. Clique em cada ícone abaixo para obter detalhes.
Contribuir
Adoramos sua contribuição! Queremos tornar a contribuição para o YOLOv5 o mais fácil e transparente possível. Consulte nosso Guia de Contribuição para começar e preencha a Pesquisa YOLOv5 para nos enviar feedback sobre suas experiências. Obrigado a todos os nossos colaboradores!
Licença
Ultralytics oferece duas opções de licenciamento para acomodar diversos casos de uso:
Licença AGPL-3.0 : Esta licença de código aberto aprovada pela OSI é ideal para estudantes e entusiastas, promovendo colaboração aberta e compartilhamento de conhecimento. Consulte o arquivo LICENSE para obter mais detalhes.
Licença Empresarial : Projetada para uso comercial, esta licença permite a integração perfeita do software Ultralytics e modelos de IA em bens e serviços comerciais, ignorando os requisitos de código aberto do AGPL-3.0. Se o seu cenário envolve a incorporação de nossas soluções em uma oferta comercial, entre em contato por meio do Licenciamento Ultralytics.
Contato
Para relatórios de bugs e solicitações de recursos do YOLOv5, visite GitHub Issues e junte-se à nossa comunidade Discord para perguntas e discussões!