在 Ultralytics YOLOv5 v7.0 中引入实例分割
探索具备全新实例分割模型的 YOLOv5 v7.0,其性能超越了 SOTA 基准,可提供顶级的 AI 精度和速度。加入我们的社区。

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

在开发此最新版本时,我们始终关注两个核心目标。第一个是实现我们让 AI 变得简单的使命,第二个是重新定义“最先进”的真正含义。
因此,凭借重大的改进、修复和升级,我们做到了这一点。YOLOv5 v7.0 延续了我们现有的 Ultralytics YOLOv5 目标检测模型简单的工作流程,现在训练、验证和部署模型比以往任何时候都更加容易。最重要的是,我们超越了所有 SOTA 性能基准,实际上使 YOLOv5 成为世界上速度最快、最准确的模型。
由于这是我们的首个分割模型版本,我们对这一里程碑感到无比自豪。我们要向积极奉献的社区和贡献者们表示诚挚的感谢,是你们帮助实现了这一版本。

那么,让我们从 YOLOv5 v7.0 release notes 开始吧!
重要的 Ultralytics YOLOv5 更新#
以下是自 2022 年 8 月发布 YOLOv5 v6.2 以来 YOLOv5 所做的更新。
- Segmentation Models ⭐ NEW: 经过 COCO 预训练的 SOTA YOLOv5-seg 分割模型首次正式发布 (#9052 作者:@glenn-jocher、@AyushExel 和 @Laughing-q)
- PaddlePaddle Export: 通过 python export.py --include paddle 将任意 YOLOv5 模型(分类、分割、检测)导出为 Paddle 格式 (#9459 作者:@glenn-jocher)
- YOLOv5 AutoCache: 使用 python train.py --cache ram 现在会扫描可用内存并与预测的数据集 RAM 使用量进行比较。这降低了缓存的风险,并有助于提高对数据集缓存功能的采用率,从而显著加快训练速度。(#10027 作者:@glenn-jocher)
- Comet 日志和可视化集成: 永久免费的 Comet 允许你保存 YOLOv5 模型、恢复训练,以及以交互方式可视化和调试预测结果。(#9232 作者:@DN6)
新的分割检查点#
我们在 COCO 上使用 A100 GPU 以 640 的图像尺寸训练了 Ultralytics YOLOv5 分割模型 300 个 epoch。我们将所有模型导出到用于 CPU 速度测试的 ONNX FP32 以及用于 GPU 速度测试的 TensorRT FP16。我们在 Google Colab Pro 笔记本上运行了所有速度测试,以便于复现。
- 所有检查点均使用 SGD 优化器(lr0=0.01 且 weight_decay=5e-5)、图像尺寸 640 以及所有默认设置训练 300 个 epoch。所有运行结果均记录在 Weights & Biases training logs 中。
- 精度值为 COCO 数据集上的单模型单尺度结果。复现方法:python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- 速度取自使用 Colab Pro A100 大内存实例对 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
验证#
验证 YOLOv5m-seg 在 COCO 数据集上的精度:
bash data/scripts/get_coco.sh --val --segments # 下载 COCO val 分割集(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 forum 上提问、在代码库中提交 issue 或提交 PR。你还可以通过我们的 YOLOv5 segmentation Colab notebook 开始快速上手教程。






