Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLOv5#

Link to this section概述#

YOLOv5u 代表了目标检测方法论的一项进步。YOLOv5u 源自 Ultralytics 开发的 YOLOv5 模型基础架构,集成了此前在 YOLOv8 模型中引入的无锚点 (anchor-free)、无目标性 (objectness-free) 分离头。这一改进优化了模型架构,从而在目标检测任务中实现了更佳的精度与速度权衡。鉴于其经验证的结果和衍生特性,对于那些在研究和实际应用中寻求稳健解决方案的用户,YOLOv5u 提供了一种高效的替代方案。

YOLOv5 目标检测模型架构与性能

使用原始 YOLOv5 仓库训练的模型与 Ultralytics 库不兼容

Ultralytics 提供了 YOLOv5 模型的无锚点变体。使用 ultralytics/yolov5 仓库训练的模型无法直接由 ultralytics/ultralytics 库加载。若要在此处使用 YOLOv5,请通过 Ultralytics YOLOv5u 检查点(例如 yolov5su.pt)训练一个新模型。

在 Ultralytics Platform 上试用

直接在 Ultralytics Platform 上探索并运行 YOLOv5 模型。

Link to this section主要特性#

  • 无锚点分离式 Ultralytics 检测头: 传统的目标检测模型依赖预定义的锚框来预测物体位置。然而,YOLOv5u 对这一方法进行了现代化升级。通过采用无锚点分离式 Ultralytics 检测头,它确保了更灵活、更具自适应性的检测机制,从而在多种场景中提升了性能。

  • 优化的精度与速度权衡: 速度和精度往往是此消彼长的。但 YOLOv5u 挑战了这一权衡。它提供了经过校准的平衡,在确保实时检测的同时不牺牲精度。对于自动驾驶机器人以及实时视频分析等需要快速响应的应用场景,该特性尤为宝贵。

  • 多种预训练模型: 考虑到不同任务需要不同的工具集,YOLOv5u 提供了丰富的预训练模型。无论你专注于推理 (Inference)、验证 (Validation) 还是训练 (Training),总有一款量身定制的模型在等你。这种多样性确保了你使用的不再是“万金油”式的通用方案,而是针对你独特挑战专门微调过的模型。

Link to this section支持的任务和模式#

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

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

本表提供了 YOLOv5u 模型变体的详细概览,突显了它们在目标检测任务中的适用性,并支持包括推理验证训练导出在内的各种操作模式。这种全面的支持确保了用户可以在广泛的目标检测场景中充分发挥 YOLOv5u 模型的潜力。

Link to this section性能指标#

性能

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

模型YAML尺寸
(像素)
mAPval
50-95
速度
CPU ONNX
(ms)
速度
A100 TensorRT
(ms)
参数量
(M)
FLOPs
(B)
yolov5nu.ptyolov5n.yaml64034.373.61.062.67.7
yolov5su.ptyolov5s.yaml64043.0120.71.279.124.0
yolov5mu.ptyolov5m.yaml64049.0233.91.8625.164.2
yolov5lu.ptyolov5l.yaml64052.2408.42.5053.2135.0
yolov5xu.ptyolov5x.yaml64053.2763.23.8197.2246.4
yolov5n6u.ptyolov5n6.yaml128042.1211.01.834.37.8
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.324.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.265.7
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1137.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.4250.7

Link to this section使用示例#

此示例提供了简单的 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")

Link to this section引用与致谢#

Ultralytics YOLOv5 出版物

由于模型发展迅速,Ultralytics 并未针对 YOLOv5 发表正式的研究论文。我们专注于推动技术进步并使其更易于使用,而不是制作静态文档。有关 YOLO 架构、特性和用法的最新信息,请参考我们的 GitHub 仓库文档

如果你在研究中使用 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企业级许可下提供的。

Link to this section常见问题解答#

Link to this section什么是 Ultralytics YOLOv5u?它与 YOLOv5 有何不同?#

Ultralytics YOLOv5u 是 YOLOv5 的高级版本,集成了无锚点、无目标性的分离头,增强了实时目标检测任务中的精度-速度权衡。与传统的 YOLOv5 不同,YOLOv5u 采用了无锚点检测机制,使其在不同场景中更具灵活性和自适应性。如需了解其特性的更多详细信息,可以参阅 YOLOv5 概览

Link to this section无锚点 Ultralytics 检测头如何提高 YOLOv5u 的目标检测性能?#

YOLOv5u 中的无锚点 Ultralytics 检测头通过消除对预定义锚框的依赖来提高目标检测性能。这带来了一种更灵活、更具自适应性的检测机制,能够以更高的效率处理各种物体尺寸和形状。这一增强功能直接有助于在精度和速度之间取得平衡,使 YOLOv5u 适用于实时应用。在关键特性部分了解更多关于其架构的信息。

Link to this section我可以使用预训练的 YOLOv5u 模型进行不同的任务和模式吗?#

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

Link to this sectionYOLOv5u 模型的性能指标在不同平台上如何对比?#

YOLOv5u 模型的性能指标会根据所使用的平台和硬件而变化。例如,YOLOv5nu 模型在 COCO 数据集上实现了 34.3 的 mAP,在 CPU (ONNX) 上的速度为 73.6 ms,在 A100 TensorRT 上的速度为 1.06 ms。不同 YOLOv5u 模型的详细性能指标可以在性能指标部分找到,该部分提供了跨不同设备的全面对比。

Link to this section我该如何使用 Ultralytics Python API 训练 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)

如需更详细的说明,请访问使用示例部分。

评论