Skip to content

YOLOv5

概述

YOLOv5u代表了目标检测方法的进步。源自Ultralytics开发的YOLOv5模型的基础架构,YOLOv5u集成了无锚点、无目标分割头部,这一特性在YOLOv8模型中首次引入。这一改进优化了模型的架构,从而在目标检测任务中实现了更好的准确性与速度平衡。鉴于其实证结果及其衍生特性,YOLOv5u为寻求在研究和实际应用中提供强大解决方案的用户提供了一个高效的选择。

Ultralytics YOLOv5

关键特性

  • 无锚点分割Ultralytics头部: 传统目标检测模型依赖于预定义的锚框来预测目标位置。然而,YOLOv5u采用了无锚点分割Ultralytics头部,确保了更灵活和自适应的检测机制,从而在各种场景中提升了性能。

  • 优化的准确性-速度平衡: 速度和准确性往往相互制约。但YOLOv5u挑战了这一平衡。它提供了精确的平衡,确保实时检测而不牺牲准确性。这一特性对于需要快速响应的应用尤为宝贵,如自动驾驶车辆、机器人和实时视频分析。

  • 多种预训练模型: 理解不同任务需要不同的工具集,YOLOv5u提供了丰富的预训练模型。无论您专注于推理、验证还是训练,都有量身定制的模型等待您。这种多样性确保您不仅使用的是一种通用解决方案,而是针对您独特挑战特别调优的模型。

支持的任务和模式

YOLOv5u模型,具备多种预训练权重,在目标检测任务中表现出色。它们支持广泛的模式,适用于从开发到部署的各种应用。

模型类型 预训练权重 任务 推理 验证 训练 导出
YOLOv5u yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u 目标检测

此表详细概述了YOLOv5u模型的变体,突出了它们在目标检测任务中的适用性以及对各种操作模式的支持,如推理验证训练导出。这种全面的支持确保用户可以在广泛的目标检测场景中充分利用YOLOv5u模型的能力。

性能指标

Performance

请参阅检测文档,了解在这些模型上训练的使用示例,这些模型在COCO上进行了训练,包含80个预训练类别。

模型 YAML 尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
A100 TensorRT
(ms)
参数
(M)
FLOPs
(B)

| yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 | | yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 | | yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 | | yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 | | yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 | | | | | | | | | | | yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 | | yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 | | yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 | | yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 | | yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |

使用示例

本示例提供了简单的YOLOv5训练和推理示例。有关这些模式和其他模式的完整文档,请参阅预测训练验证导出文档页面。

示例

PyTorch预训练的*.pt模型以及配置*.yaml文件可以传递给YOLO()类,以在Python中创建模型实例:

from ultralytics import YOLO

# 加载一个COCO预训练的YOLOv5n模型
model = YOLO("yolov5n.pt")

# 显示模型信息(可选)
model.info()

# 在COCO8示例数据集上训练模型100个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 在'bus.jpg'图像上使用YOLOv5n模型进行推理
results = model("path/to/bus.jpg")

CLI命令可直接运行模型:

# 加载一个COCO预训练的YOLOv5n模型并在COCO8示例数据集上训练100个epoch
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

# 加载一个COCO预训练的YOLOv5n模型并在'bus.jpg'图像上进行推理
yolo predict model=yolov5n.pt source=path/to/bus.jpg

引用和致谢

如果您在研究中使用YOLOv5或YOLOv5u,请按如下方式引用Ultralytics YOLOv5仓库:

@software{yolov5,
  title = {Ultralytics YOLOv5},
  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模型在AGPL-3.0企业许可下提供。

常见问题

Ultralytics YOLOv5u是什么,它与YOLOv5有何不同?

Ultralytics YOLOv5u是YOLOv5的高级版本,集成了无锚点、无目标分割头,增强了实时目标检测任务的准确性-速度权衡。与传统的YOLOv5不同,YOLOv5u采用了无锚点检测机制,使其在不同场景中更加灵活和适应。有关其功能的更多详细信息,请参阅YOLOv5概述

无锚点的Ultralytics头如何提高YOLOv5u中的目标检测性能?

YOLOv5u中的无锚点Ultralytics头通过消除对预定义锚框的依赖来提高目标检测性能。这导致了一个更灵活和适应性更强的检测机制,能够更高效地处理各种物体大小和形状。这一改进直接有助于在准确性和速度之间取得平衡,使YOLOv5u适用于实时应用。有关其架构的更多信息,请参阅关键功能部分。

我可以将预训练的YOLOv5u模型用于不同的任务和模式吗?

是的,您可以将预训练的YOLOv5u模型用于各种任务,如目标检测。这些模型支持多种模式,包括推理验证训练导出。这种灵活性允许用户在不同的操作需求中利用YOLOv5u模型的能力。有关详细概述,请查看支持的任务和模式部分。

YOLOv5u模型在不同平台上的性能指标如何比较?

YOLOv5u模型的性能指标因使用的平台和硬件而异。例如,YOLOv5nu模型在COCO数据集上达到34.3 mAP,在CPU(ONNX)上的速度为73.6毫秒,在A100 TensorRT上的速度为1.06毫秒。不同YOLOv5u模型的详细性能指标可以在性能指标部分找到,该部分提供了在各种设备上的全面比较。

如何使用Ultralytics Python API训练YOLOv5u模型?

您可以通过加载预训练模型并使用您的数据集运行训练命令来训练YOLOv5u模型。以下是一个快速示例:

Example

from ultralytics import YOLO

# 加载一个COCO预训练的YOLOv5n模型
model = YOLO("yolov5n.pt")

# 显示模型信息(可选)
model.info()

# 在COCO8示例数据集上训练模型100个epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 加载一个COCO预训练的YOLOv5n模型并在COCO8示例数据集上训练100个epoch
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640

有关更多详细说明,请访问使用示例部分。 ```


📅 Created 11 months ago ✏️ Updated 20 days ago

Comments