Ultralytics YOLOv5
概述
YOLOv5u 代表了物体检测方法的进步。YOLOv5u 源自 开发的 YOLOv5Ultralytics 开发的模型的基础结构,YOLOv5u 整合了无锚点、无对象性的分割头,这是以前的 YOLOv8模型中引入的功能。这一调整完善了模型的架构,从而提高了物体检测任务中的精度-速度权衡。鉴于经验结果及其衍生特征,YOLOv5u 为那些在研究和实际应用中寻求稳健解决方案的人提供了一种高效的替代方案。
主要功能
-
无锚点分割Ultralytics Head:传统的物体检测模型依赖于预定义的锚点框来预测物体位置。然而,YOLOv5u 将这种方法现代化。通过采用无锚分Ultralytics 头,它确保了一种更加灵活和自适应的检测机制,从而提高了在不同场景下的性能。
-
优化准确性与速度之间的权衡:速度与准确性往往背道而驰。但 YOLOv5u 挑战了这种取舍。它提供了一个经过校准的平衡点,在确保实时检测的同时不影响精度。这一功能对于自动驾驶汽车、机器人和实时视频分析等需要快速响应的应用尤为重要。
-
多种预训练模型:由于不同的任务需要不同的工具集,YOLOv5u 提供了大量预训练模型。无论您是专注于推理、验证还是训练,都有一个量身定制的模型在等着您。这种多样性可确保您使用的不仅仅是一个放之四海而皆准的解决方案,而是一个专门针对您的独特挑战进行微调的模型。
支持的任务和模式
YOLOv5u 模型具有各种预训练权重,在物体检测任务中表现出色。它们支持各种模式,适合从开发到部署的各种应用。
型号 | 预训练重量 | 任务 | 推论 | 验证 | 培训 | 出口 |
---|---|---|---|---|---|---|
YOLOv5u | yolov5nu , yolov5su , yolov5mu , yolov5lu , yolov5xu , yolov5n6u , yolov5s6u , yolov5m6u , yolov5l6u , yolov5x6u |
物体检测 | ✅ | ✅ | ✅ | ✅ |
本表提供了 YOLOv5u 模型变体的详细概述,强调了它们在物体检测任务中的适用性以及对推理、验证、训练和导出等各种操作模式的支持。这种全面的支持可确保用户在各种对象检测场景中充分利用 YOLOv5u 模型的功能。
性能指标
性能
有关在COCO 上训练的这些模型的使用示例,请参见检测文档,其中包括 80 个预先训练的类别。
模型 | YAML | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 A100 TensorRT (毫秒) |
params (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")
CLI 命令可直接运行模型:
引用和致谢
Ultralytics YOLOv5 出版物
Ultralytics 由于模型的快速发展,YOLOv5 还没有发表正式的研究论文。我们专注于推进技术发展,使其更易于使用,而不是制作静态文档。有关YOLO 架构、功能和使用方法的最新信息,请参阅我们的GitHub 存储库和文档。
如果您在研究中使用YOLOv5 或 YOLOv5u,请按如下方式引用Ultralytics YOLOv5 储存库:
请注意,YOLOv5 型号是根据 AGPL-3.0和企业许可证提供。
常见问题
Ultralytics YOLOv5u 是什么,与YOLOv5 有什么区别?
Ultralytics YOLOv5u 是YOLOv5 的高级版本,集成了无锚点、无对象性分割头,提高了实时对象检测任务的精度-速度权衡。与传统的YOLOv5 不同,YOLOv5u 采用了无锚点检测机制,使其在不同场景下更具灵活性和适应性。有关其功能的详细信息,请参阅YOLOv5 Overview。
无锚Ultralytics 头如何提高 YOLOv5u 的物体检测性能?
YOLOv5u 的无锚点Ultralytics 头消除了对预定义锚点框的依赖,从而提高了物体检测性能。这使得检测机制更加灵活和自适应,可以更高效地处理各种物体尺寸和形状。这一改进直接促进了准确性和速度之间的平衡,使 YOLOv5u 适用于实时应用。有关其架构的更多信息,请参阅 "主要功能"部分。
我可以将预先训练好的 YOLOv5u 模型用于不同的任务和模式吗?
是的,您可以将预先训练好的 YOLOv5u 模型用于对象检测等各种任务。这些模型支持多种模式,包括推理、验证、训练和导出。这种灵活性使用户能够在不同的操作要求中充分利用 YOLOv5u 模型的功能。有关详细概述,请查看 "支持的任务和模式"部分。
YOLOv5u 机型在不同平台上的性能指标如何比较?
YOLOv5u 模型的性能指标因所使用的平台和硬件而异。例如,YOLOv5nu 模型在 COCO 数据集上实现了 34.3 mAP,在CPU (ONNX) 上的速度为 73.6 ms,在 A100TensorRT 上的速度为 1.06 ms。不同 YOLOv5u 模型的详细性能指标可在 "性能指标 "部分找到,该部分对各种设备进行了全面比较。
如何使用Ultralytics Python API 训练 YOLOv5u 模型?
您可以通过加载预先训练好的模型并使用数据集运行训练命令来训练 YOLOv5u 模型。下面是一个快速示例:
示例
有关更详细的说明,请访问 "使用示例"部分。