开始之前

从已安装 Python>=3.8PyTorch>=1.7 的环境开始。要安装 PyTorch,请参阅 https://pytorch.ac.cn/get-started/locally/。要安装 YOLOv5 依赖项

pip install -U ultralytics

模型描述

YOLO Model Comparison

Ultralytics YOLOv5 🚀 是一个前沿的、最先进 (SOTA) 的模型,它建立在先前 YOLO 版本的成功基础上,并引入了新特性和改进以进一步提升性能和灵活性。YOLOv5 设计快速、准确且易于使用,使其成为广泛应用于目标检测、实例分割和图像分类任务的绝佳选择。

我们希望这里的资源能帮助您充分利用 YOLOv5。请查阅 YOLOv5 文档 获取详情,在 GitHub 上提交问题以获得支持,并加入我们的 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](https://github.com/ultralytics/yolov5/blob/master/data/hyps/hyp.scratch-low.yaml) 超参数,所有其他模型使用 [hyp.scratch-high.yaml](https://github.com/ultralytics/yolov5/blob/master/data/hyps/hyp.scratch-high.yaml)。- **mAPval** 值是针对 [COCO val2017](http://cocodataset.org) 数据集上的单模型单尺度测试结果。
通过 `python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65` 复现 - **速度** 是在 [AWS p3.2xlarge](https://aws.amazon.com/ec2/instance-types/p3/) 实例上对 COCO val 图像进行平均计算得出的。不包含 NMS 时间 (~1 毫秒/图像)。
通过 `python val.py --data coco.yaml --img 640 --task speed --batch 1` 复现 - **TTA** [测试时增强](https://docs.ultralytics.com/yolov5/tutorials/test_time_augmentation) 包括反射和尺度增强。
通过 `python val.py --data coco.yaml --img 1536 --iou 0.7 --augment` 复现

从 PyTorch Hub 加载

此示例加载预训练的 YOLOv5s 模型并传入图像进行推理。YOLOv5 接受 URL文件名PILOpenCVNumpyPyTorch 输入,并以 torchpandasJSON 输出格式返回检测结果。详情请参阅 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 仓库

DOI

@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 的 bug 报告和功能请求,请访问 GitHub Issues,并加入我们的 Discord 社区进行提问和讨论!