Ultralytics YOLO27:
Get Started

Ultralytics YOLOv5#

概述#

YOLOv5u 代表了目标检测方法的进步。YOLOv5u 源自 Ultralytics 开发的 YOLOv5模型基础架构,并集成了无锚框、无目标性分支头部——这一特性此前已在 YOLOv8模型中引入。这种改进优化了模型架构,使目标检测任务在准确率与速度之间取得更好的平衡。根据实测结果及其衍生特性,YOLOv5u 为寻求稳健解决方案的用户提供了高效选择,适用于研究和实际应用。

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

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

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

在 Ultralytics Platform 上试用

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

主要功能#

  • 无锚框 Ultralytics 分支头:传统目标检测模型依赖预定义锚框来预测目标位置。而 YOLOv5u 对这种方法进行了现代化改进。它采用无锚框 Ultralytics 分支头,确保检测机制更加灵活、适应性更强,从而提升模型在多种场景下的性能。

  • 优化准确率与速度的平衡:速度与准确率往往此消彼长,但 YOLOv5u 挑战了这种权衡。它实现了经过校准的平衡,确保实时检测的同时不牺牲准确率。这一特性对于需要快速响应的应用尤为重要,例如自动驾驶汽车、机器人和实时视频分析。

  • 多种预训练模型:YOLOv5u 深知不同任务需要不同工具,因此提供了丰富的预训练模型。无论你专注于推理、验证还是训练,都能找到为你量身打造的模型。这些选择确保你用的不是一刀切的解决方案,而是专门针对你的独特挑战微调的模型。

支持的任务和模式#

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

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

此表详细概述了 YOLOv5u 的模型变体,重点介绍它们在目标检测任务中的适用性,以及对推理、验证、训练和导出等多种运行模式的支持。这种全面的支持确保用户能够在各种目标检测场景中充分发挥 YOLOv5u 模型的能力。

性能指标#

性能

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

模型YAML尺寸
(像素)
mAP验证集
50-95
速度
CPU ONNX
(毫秒)
速度
A100 TensorRT
(毫秒)
参数
(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.331.3
yolov5s6u.ptyolov5s6.yaml128048.6422.62.3415.397.6
yolov5m6u.ptyolov5m6.yaml128053.6810.94.3641.2261.3
yolov5l6u.ptyolov5l6.yaml128055.71470.95.4786.1549.4
yolov5x6u.ptyolov5x6.yaml128056.82436.58.98155.51002.8

使用示例#

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

示例

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

from ultralytics import YOLO

# 加载使用 COCO 预训练的 YOLOv5nu 模型
model = YOLO("yolov5nu.pt")

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

# 使用 COCO8 示例数据集训练模型 100 个 epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 使用 YOLOv5nu 模型对“bus.jpg”图像运行推理
results = model("path/to/bus.jpg")

引用与致谢#

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 和企业版许可证提供。

常见问题#

  • Ultralytics YOLOv5u 是 YOLOv5 的高级版本,集成了无锚框、无目标性的分支头,提升了实时目标检测任务中准确率与速度之间的平衡。与传统 YOLOv5 不同,YOLOv5u 采用无锚框检测机制,在各种场景中更加灵活且适应性更强。如需详细了解其功能,请参阅 YOLOv5 概览。

  • YOLOv5u 中的无锚框 Ultralytics 头部通过消除对预定义锚框的依赖来提升目标检测性能。这带来了更加灵活且适应性更强的检测机制,能够更高效地处理各种尺寸和形状的目标。这一改进直接促成了准确率与速度之间的平衡,使 YOLOv5u 适用于实时应用。你可以在主要特性部分详细了解其架构。

  • 可以,你可以将预训练的 YOLOv5u 模型用于各种任务,例如目标检测。这些模型支持多种模式,包括推理、验证、训练和导出。这种灵活性让用户能够根据不同的运行需求充分利用 YOLOv5u 模型的能力。如需详细概览,请查看支持的任务和模式部分。

  • YOLOv5u 模型的性能指标会因所用平台和硬件而异。例如,YOLOv5nu 模型在 COCO 数据集上达到 34.3 mAP,在 CPU (ONNX) 上的速度为 73.6 ms,在 A100 TensorRT 上则为 1.06 ms。你可以在性能指标部分查看不同 YOLOv5u 模型的详细性能指标,其中全面比较了各种设备上的表现。

  • 你可以通过加载预训练模型并使用自己的数据集运行训练命令来训练 YOLOv5u 模型。下面是一个简要示例:

    示例
    from ultralytics import YOLO
    
    # 加载使用 COCO 预训练的 YOLOv5nu 模型
    model = YOLO("yolov5nu.pt")
    
    # 显示模型信息(可选)
    model.info()
    
    # 使用 COCO8 示例数据集训练模型 100 个 epoch
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

评论