Ultralytics YOLOv5#
概述#
YOLOv5u 代表了目标检测方法论的一项进展。YOLOv5u 源自 Ultralytics 开发的YOLOv5模型的基础架构,整合了无锚框(anchor-free)、无目标性(objectness-free)的分离头,这一特性此前已在YOLOv8模型中引入。这种改进优化了模型的架构,从而在目标检测任务中实现了更出色的准确率与速度权衡。结合实验结果及其衍生特性,YOLOv5u 为在研究和实际应用中寻求稳健解决方案的用户提供了一个高效的替代方案。

Ultralytics 提供了YOLOv5 模型的无锚框变体。使用 ultralytics/yolov5 仓库训练的模型无法直接加载到 ultralytics/ultralytics 库中。若要在此处使用 YOLOv5,请从 Ultralytics YOLOv5u 检查点训练一个新模型(例如 yolov5su.pt)。
直接在Ultralytics 平台上探索和运行 YOLOv5 模型。
主要特性#
-
无锚点分离式 Ultralytics 检测头: 传统的目标检测模型依赖预定义的锚框来预测物体位置。然而,YOLOv5u 对这一方法进行了现代化升级。通过采用无锚点分离式 Ultralytics 检测头,它确保了更灵活、更具自适应性的检测机制,从而在多种场景中提升了性能。
-
优化的准确率与速度权衡: 速度和准确率往往背道而驰。但 YOLOv5u 改变了这种权衡。它提供了经过精细校准的平衡,在不牺牲准确率的前提下确保了实时检测。对于自动驾驶汽车、机器人技术和实时视频分析等对响应速度要求极高的应用而言,这一特性尤为宝贵。
-
多种预训练模型: 考虑到不同任务需要不同的工具集,YOLOv5u 提供了丰富的预训练模型。无论你专注于推理 (Inference)、验证 (Validation) 还是训练 (Training),总有一款量身定制的模型在等你。这种多样性确保了你使用的不再是“万金油”式的通用方案,而是针对你独特挑战专门微调过的模型。
支持的任务和模式#
带有各种预训练权重的 YOLOv5u 模型在目标检测任务中表现出色。它们支持全面的模式,使其适用于从开发到部署的各种应用场景。
| 模型类型 | 预训练权重 | 任务 | 训练 | 验证 | 推理 | 导出 |
|---|---|---|---|---|---|---|
| YOLOv5u | yolov5nu, yolov5su, yolov5mu, yolov5lu, yolov5xu, yolov5n6u, yolov5s6u, yolov5m6u, yolov5l6u, yolov5x6u | 目标检测 | ✅ | ✅ | ✅ | ✅ |
本表详细概述了 YOLOv5u 模型变体,重点介绍了它们在目标检测任务中的适用性,以及对推理、验证、训练和导出等各种操作模式的支持。这种全面的支持确保用户能够在广泛的目标检测场景中充分发挥 YOLOv5u 模型的潜力。
性能指标#
请参阅检测文档了解在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
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("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 和企业版许可证提供。
常见问题解答#
YOLOv5u 中的无锚框 Ultralytics 检测头通过消除对预定义锚框的依赖,改善了目标检测性能。这带来了更灵活、更具适应性的检测机制,能够以更高的效率处理各种大小和形状的目标。这种改进直接促成了准确率与速度之间的平衡权衡,使 YOLOv5u 适用于实时应用。在核心功能部分了解有关其架构的更多信息。
YOLOv5u 模型的性能指标因所使用的平台和硬件而异。例如,YOLOv5nu 模型在 COCO 数据集上实现了 34.3 的 mAP,在 CPU (ONNX) 上速度为 73.6 毫秒,在 A100 TensorRT 上速度为 1.06 毫秒。不同 YOLOv5u 模型的详细性能指标可以在性能指标部分找到,该部分提供了跨各种设备的全面比较。
你可以通过加载预训练模型并使用你的数据集运行训练命令来训练 YOLOv5u 模型。以下是一个简单的示例:
示例from ultralytics import YOLO # Load a COCO-pretrained YOLOv5n model model = YOLO("yolov5n.pt") # Display model information (optional) model.info() # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)有关更详细的说明,请访问用法示例部分。