开始之前
从安装了 **Python>=3.8** 和 **PyTorch>=1.7** 的环境开始。要安装 PyTorch,请参阅 https://pytorch.ac.cn/get-started/locally/。要安装 YOLOv5 依赖项
pip install -U ultralytics
模型描述
Ultralytics YOLOv5 🚀 是一款前沿的、最先进 (SOTA) 的模型,它建立在先前 YOLO 版本的成功基础上,并引入了新功能和改进,以进一步提升性能和灵活性。YOLOv5 被设计为快速、准确且易于使用,使其成为各种目标检测、实例分割和图像分类任务的绝佳选择。
我们希望这里的资源能帮助您充分利用 YOLOv5。请浏览 YOLOv5 文档了解详情,在 GitHub 上提出 issue 以获得支持,并加入我们的 Discord 社区进行提问和讨论!
模型 | 尺寸 (像素) |
mAPval 50-95 |
mAPval 50 |
速度 CPU b1 (毫秒) |
速度 V100 b1 (毫秒) |
速度 V100 b32 (毫秒) |
参数量 (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 + [TTA] |
1280 1536 |
55.0 55.8 |
72.7 72.7 |
3136 - |
26.2 - |
19.4 - |
140.7 - |
209.8 - |
表格注释
- 所有检查点均使用默认设置训练 300 个 epoch。Nano 和 Small 模型使用 hyp.scratch-low.yaml hyps,所有其他模型使用 hyp.scratch-high.yaml。 - **mAPval** 值是针对 COCO val2017 数据集上的单模型单尺度。通过
python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
复现 - **速度** 是在 AWS p3.2xlarge 实例上对 COCO val 图像取平均值。不包括 NMS 时间(约 1 毫秒/图像)。通过
python val.py --data coco.yaml --img 640 --task speed --batch 1
复现 - **TTA** [测试时增强] 包括反射和尺度增强。通过
python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
复现从 PyTorch Hub 加载
此示例加载一个预训练的 **YOLOv5s** 模型并传递图像以进行推理。YOLOv5 接受 **URL**、**文件名**、**PIL**、**OpenCV**、**Numpy** 和 **PyTorch** 输入,并以 **torch**、**pandas** 和 **JSON** 输出格式返回检测结果。有关详细信息,请参阅 YOLOv5 PyTorch Hub 教程。
import torch
# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
# Images
imgs = ['https://ultralytics.com/images/zidane.jpg'] # batch of images
# Inference
results = model(imgs)
# Results
results.print()
results.save() # or .show()
results.xyxy[0] # img1 predictions (tensor)
results.pandas().xyxy[0] # img1 predictions (pandas)
# xmin ymin xmax ymax confidence class name
# 0 749.50 43.50 1148.0 704.5 0.874023 0 person
# 1 433.50 433.50 517.5 714.5 0.687988 27 tie
# 2 114.75 195.75 1095.0 708.0 0.624512 0 person
# 3 986.00 304.00 1028.0 420.0 0.286865 27 tie
引用
如果您在研究中使用 YOLOv5 或 YOLOv5u,请按如下方式引用 Ultralytics YOLOv5 仓库
@software{yolov5,
title = {YOLOv5 by Ultralytics},
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}
}
联系方式
对于 YOLOv5 错误报告和功能请求,请访问 GitHub Issues,并加入我们的 Discord 社区进行提问和讨论!