介绍 Ultralytics YOLOv5 v7.0 中的实例分割
了解 YOLOv5 v7.0 及其全新的实例分割模型,在 SOTA 基准测试中表现出色,实现顶尖的 AI 精度与速度。加入我们的社区。

YOLOv5 v7.0 是我们 AI 架构的最新版本,现已发布,我们非常兴奋地推出全新的实例分割模型!

在开发这一最新版本时,我们始终将两个目标放在首位。第一个是让 AI 变得简单易用的使命,第二个是重新定义“state-of-the-art”真正含义的目标。
因此,凭借显著的改进、修复和升级,我们确实做到了这一点。沿用现有 Ultralytics YOLOv5 目标检测模型同样简单的工作流程,现在使用 YOLOv5 v7.0 训练、验证和部署你的模型比以往更加轻松。此外,我们超越了所有 SOTA 基准,使 YOLOv5 成为全球速度最快且精度最高的模型。
这是我们首次发布分割模型,我们为这一里程碑感到无比自豪。我们要特别感谢敬业的社区成员和贡献者,是他们帮助促成了此次发布。

那么,让我们从 YOLOv5 v7.0 的发布说明开始吧!
Ultralytics YOLOv5 重要更新#
以下是自 2022 年 8 月上次发布 YOLOv5 v6.2 以来 YOLOv5 的更新内容。
- 分割模型 ⭐ 新增:SOTA YOLOv5-seg COCO 预训练分割模型现已首次提供(由 @glenn-jocher、@AyushExel 和 @Laughing-q 提交的 #9052)
- PaddlePaddle 导出:使用 python export.py --include paddle 将任意 YOLOv5 模型(cls、seg、det)导出为 Paddle 格式 #9459,由 @glenn-jocher 提交)
- YOLOv5 AutoCache:现在使用 python train.py --cache ram 会扫描可用内存,并与预测的数据集 RAM 使用量进行比较。这降低了缓存风险,有助于提高数据集缓存功能的采用率,从而显著加快训练速度。(由 @glenn-jocher 提交的 #10027)
- Comet 日志记录和可视化集成:永久免费,Comet 让你能够保存 YOLOv5 模型、恢复训练,并以交互方式可视化和调试预测结果。(由 @DN6 提交的 #9232)
新增分割检查点#
我们使用 A100 GPU,在图像尺寸为 640 的情况下,于 COCO 上训练了 Ultralytics YOLOv5 分割模型,共训练 300 个 epoch。我们将所有模型导出为 ONNX FP32,以进行 CPU 速度测试;并导出为 TensorRT FP16,以进行 GPU 速度测试。我们在 Google Colab Pro 笔记本中完成了所有速度测试,以便轻松复现。
- 所有检查点均使用 SGD 优化器训练 300 个 epoch,lr0=0.01,weight_decay=5e-5,图像尺寸为 640,并采用所有默认设置。所有运行记录都保存在 Weights & Biases 训练日志中。
- 精度值对应于 COCO 数据集上单模型、单尺度的结果。使用 python segment/val.py --data coco.yaml --weights yolov5s-seg.pt 复现。
- 速度是使用 Colab Pro A100 High-RAM 实例对 100 张推理图像取平均得到的。数值仅表示推理速度(NMS 每张图像约增加 1ms)。使用 python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1 复现。
- 使用 export.py 将模型以 FP32 导出为 ONNX,并以 FP16 导出为 TensorRT。使用 python export.py --weights yolov5s-seg.pt --include engine --device 0 --half 复现。
新增分割使用示例#
训练#
Ultralytics YOLOv5 分割训练支持使用 --data coco128-seg.yaml 参数自动下载 COCO128-seg 分割数据集,也支持手动使用 bash data/scripts/get_coco.sh --train --val --segments 下载 COCO-segments 数据集,然后运行 python train.py --data coco.yaml。
单 GPU#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
多 GPU DDP#
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3
验证#
在 COCO 数据集上验证 YOLOv5m-seg 的精度:
bash data/scripts/get_coco.sh --val --segments # 下载 COCO val segments 划分(780MB,5000 张图像) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # 验证
预测#
使用预训练的 YOLOv5m-seg 预测 bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg
model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # 从 PyTorch Hub 加载(警告:尚不支持推理)

导出#
将 YOLOv5s-seg 模型导出为 ONNX 和 TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

有任何问题?请在 Ultralytics 论坛提问、提交 issue,或在代码仓库中提交 PR。你也可以从我们的 YOLOv5 分割 Colab 笔记本开始,快速学习入门教程。









