轻松玩转YOLO11:两个类别的图像分割也能高性能输出
本文介绍了如何在星图GPU平台上自动化部署YOLO11镜像,高效实现人与车双类别的图像实例分割。该镜像预装PyTorch、Ultralytics及Labelme等工具,开箱即用,适用于智能交通监控、工业质检等需像素级目标识别的典型场景。
轻松玩转YOLO11:两个类别的图像分割也能高性能输出
1. 为什么选择YOLO11做图像分割?
你是不是也遇到过这样的问题:想做个图像分割项目,但模型太复杂、环境难配、训练费时?尤其是只针对“人”和“车”这两个常见类别,难道非得上重型框架不可吗?
其实完全不必。今天我们就用 YOLO11 来告诉你:即使是轻量级的双类别图像分割任务,也能做到高效部署 + 快速训练 + 高质量输出。
YOLO11 是 Ultralytics 推出的新一代 YOLO 架构,在保持高速推理的同时,进一步提升了分割精度。更重要的是,它提供了完整的开箱即用环境——我们使用的这个镜像已经集成了所有依赖项,包括 PyTorch、Ultralytics 库、Labelme 标注工具等,省去了繁琐的配置过程。
这意味着什么?意味着你可以跳过“装包三天”的痛苦阶段,直接进入“建数据→训模型→看效果”的正向循环。
本文将带你从零开始,完成一个基于 YOLO11 的“人”与“车”图像实例分割全流程,涵盖:
- 数据准备与标注
- 标签格式转换
- 模型训练配置
- 实际推理展示
整个过程小白友好,代码可运行,结果看得见。
2. 环境准备与项目结构说明
2.1 镜像环境简介
本次实验基于官方提供的 YOLO11 完整可运行环境镜像,内置以下核心组件:
- Python 3.10 + PyTorch 2.0+
- Ultralytics 8.3.9(YOLO11 支持版本)
- Jupyter Notebook 可视化开发支持
- SSH 远程连接能力
- Labelme 图像标注工具预装
无需手动安装任何库,开箱即用。
提示:可通过 Jupyter 或 SSH 登录方式进行操作。推荐使用 Jupyter 查看中间结果更直观。
2.2 项目目录结构
进入容器后,默认工作路径下包含如下关键目录:
ultralytics-8.3.9/
├── resources/
│ ├── images/seg/json/ # 原图与 labelme 标注文件
│ └── config/
│ ├── data/yolo11-seg.yaml # 数据集配置
│ └── model/yolo11-seg.yaml # 模型结构定义
├── tool/
│ ├── tool_json2label_seg.py # labelme json → YOLO 分割标签
│ └── tool_seg2datasets.py # 划分训练/验证集
└── segment/ # 训练输出保存路径
这些脚本和配置文件都已经为你准备好,只需要按步骤调用即可。
3. 数据制作:从原始图片到可用标签
3.1 准备原始图像
我们在 resources/images/seg/json 目录下放入了 5 张包含“人”和“车”的街景照片作为示例数据。虽然数量不多,但对于演示流程足够,并且后续可以轻松扩展。
每张图都需要进行精确的像素级多边形标注,用于生成高质量的分割掩码。
3.2 使用 Labelme 进行标注
执行以下命令启动标注工具:
labelme
在界面中选择“Create Polygon”模式,依次框选出每个“person”和“car”的轮廓,并输入对应类别名称。
标注完成后,会生成同名 .json 文件,内容包含:
- 图像路径
- 多边形顶点坐标
- 类别标签(person / car)

小贴士:建议统一使用英文小写命名类别,避免后期解析出错。
3.3 转换为 YOLO 分割专用格式
YOLO 系列模型不直接读取 JSON 格式,需要将其转换为 .txt 标签文件,每行代表一个目标,格式如下:
<class_id> <x1> <y1> <x2> <y2> ... <xn> <yn>
其中 (x1,y1)...(xn,yn) 是归一化后的多边形顶点坐标。
使用提供的转换脚本一键处理:
python tool/tool_json2label_seg.py
该脚本会自动读取 json 目录下的所有 .json 文件,提取信息并生成对应的 .txt 标签文件,存放于指定输出路径。
3.4 划分训练集与验证集
接下来运行数据集划分脚本:
python tool/tool_seg2datasets.py
此脚本会:
- 将图像与标签打乱顺序
- 按比例(如 8:2)拆分为
train和val子集 - 在
resources/images/seg/datasets/images/下建立相应子目录
最终得到标准的数据组织方式,符合 YOLO 训练要求。
4. 数据配置与模型设定
4.1 编写数据配置文件
创建 resources/config/data/yolo11-seg.yaml,内容如下:
path: ../ultralytics-yolo11/resources/images/seg/datasets/images
train: train
val: val
test: test
names:
0: person
1: car
这是训练时指定数据来源的核心配置,YOLO 会根据这里的路径自动加载图像和标签。
4.2 模型结构简析
YOLO11-seg 使用的是轻量化设计,主干网络(backbone)采用 C3k2 模块构建,头部(head)则引入 Segment 模块实现像素级预测。
以下是关键部分节选:
head:
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
- [[-1, 6], 1, Concat, [1]]
- [-1, 2, C3k2, [512, False]]
...
- [[16, 19, 22], 1, Segment, [nc, 32, 256]]
其中 Segment 层负责输出分割掩码,nc=2 表示两个类别,“32”是掩码原型通道数,“256”是掩码分辨率。
我们使用的是
yolo11n-seg小模型,参数量仅约 280 万,适合边缘设备部署。
5. 开始训练:配置参数详解
新建 train_seg.py 文件,编写训练逻辑。
5.1 加载模型与预训练权重
model = YOLO("resources/config/model/yolo11-seg.yaml").load("weights/seg/yolo11n-seg.pt")
这里做了两件事:
- 加载自定义模型结构(支持双类别)
- 导入官方在 COCO 上预训练的权重,实现迁移学习
这能显著加快收敛速度,尤其在小样本情况下优势明显。
5.2 关键训练参数设置
results = model.train(
data="resources/config/data/yolo11-seg.yaml",
epochs=1000,
patience=100,
batch=16,
imgsz=640,
workers=4,
optimizer='AdamW',
lr0=1e-3,
hsv_h=0.9,
hsv_s=0.9,
hsv_v=0.9,
degrees=0.2,
mosaic=1.0,
scale=0.5,
shear=0.2,
augment=True,
agnostic_nms=True,
pretrained=True,
cos_lr=True,
resume=True
)
我们来逐个解释几个影响较大的参数:
| 参数 | 作用说明 |
|---|---|
imgsz=640 |
输入图像尺寸,越大细节越丰富,但显存占用高 |
batch=16 |
批次大小,根据 GPU 显存调整 |
mosaic=1.0 |
启用马赛克增强,提升小物体检测能力 |
hsv_* |
颜色空间扰动,增强模型鲁棒性 |
cos_lr=True |
余弦退火学习率,平稳下降更易收敛 |
resume=True |
支持断点续训,不怕意外中断 |
即使只有几张图,通过强数据增强也能模拟出多样场景,防止过拟合。
5.3 训练过程观察
运行脚本后,系统会在 segment/train/ 下生成日志和权重文件:
weights/best.pt:最佳性能模型weights/last.pt:最后一次保存的模型results.png:各项指标变化曲线(mAP、loss、precision 等)
可以看到,即使数据量有限,模型仍能在短时间内达到较高 mAP 值,证明其强大的泛化能力。
6. 模型推理:看看分割效果如何
训练结束后,下一步就是检验成果。新建 predict_seg.py 进行推理测试。
6.1 推理代码实现
from ultralytics import YOLO
model = YOLO("segment/train/weights/best.pt")
results = model.predict(
source='resources/images/seg/datasets/images/val',
imgsz=640,
project='segment/predict',
name='exp',
save=True,
conf=0.4,
iou=0.7,
device='cpu'
)
参数说明:
source:指定验证集图片路径save=True:保存带分割掩码的可视化结果conf=0.4:置信度阈值,过滤低质量预测device='cpu':可在无 GPU 环境运行(速度稍慢)
6.2 效果展示与分析
推理完成后,在 segment/predict/exp 中查看输出图像。

可以看到:
- “人”的轮廓被完整勾勒,连手臂、腿部细节都清晰可见
- “车”的边界贴合良好,即使部分遮挡也能准确识别
- 不同实例之间区分明确,没有粘连现象
颜色掩码叠加透明显示,便于人工检查。
虽然只是简单训练,但得益于预训练+数据增强策略,模型已具备不错的实际应用潜力。
7. 总结:轻量任务也能有高性能表现
7.1 关键收获回顾
通过本次实践,我们验证了一个重要结论:即使是两个类别的图像分割任务,只要方法得当,也能获得高性能输出。
具体来说,我们完成了以下几步:
- 快速搭建环境:利用预置镜像免去配置烦恼
- 规范数据制作:用 Labelme 标注 → 自动转换 → 划分数据集
- 合理配置模型:选用轻量级 yolo11n-seg,结合预训练加速收敛
- 科学训练调参:启用数据增强、余弦学习率、早停机制
- 直观效果验证:生成带掩码的可视化结果,便于评估
整个流程不到半天即可走通,非常适合教学、原型验证或小型项目落地。
7.2 实际应用场景拓展
这套方案不仅适用于“人车分割”,还可以快速迁移到其他领域,例如:
- 工业质检:缺陷区域分割
- 医疗影像:病灶区域提取
- 农业监测:作物与杂草分离
- 自动驾驶:道路参与者识别
只需更换标注类别和数据,就能复用现有流程。
7.3 给初学者的几点建议
- 从小做起:先跑通一个小例子,再逐步扩大规模
- 善用预训练:迁移学习是小数据集成功的秘诀
- 重视数据质量:标注不准,模型再强也没用
- 多看可视化结果:不要只盯着 loss 曲线,眼见为实
YOLO11 正在成为新一代计算机视觉开发者的首选工具,而你现在就已经掌握了它的基本玩法。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)