端侧实例分割实战:YOLO26-seg 与 MobileSAM 部署到 iPhone
从检测框到像素级轮廓
目标检测输出的是矩形框,实例分割输出的则是物体轮廓的像素级掩码。同一个画面,检测告诉你这里有个人,分割告诉你这个人具体占哪些像素。多出的这层信息,直接解锁三类端侧应用:
- 抠图与编辑:按 mask 抠出主体,替换背景、加滤镜
- AR 与交互:把虚拟物体精确叠在真实物体表面,或做手势识别
- 质检与辅助:工业缺陷面积测量、医学影像病灶标注、儿童教育里把绘本里的动物圈出来
上一篇文章讲了 YOLOv8 检测模型的 Core ML 部署,这篇把分割链路走通:选型对比、模型导出、Swift 集成、mask 后处理。
端侧分割方案怎么选(截至 2026-08-24 验证)
| 方案 | 参数量 | 特点 | 适合场景 |
|---|---|---|---|
| YOLO26-seg(n 规格) | 2.7M | 实例分割,可训练任意业务类别,端到端无 NMS | 类别明确的自动分割(人、车、缺陷、动物) |
| MobileSAM | 9.66M | 点或框提示引导的通用分割,不支持训练新类别 | 交互式抠图、辅助标注 |
| SAM 2.1(hiera-tiny) | 38.9M | 图像与视频分割,精度最强 | 服务器或桌面端,移动端需蒸馏量化 |
选型口诀:业务类别明确(比如只分割鸟类、只分割缺陷)用 YOLO26-seg,能自己训练且模型最小;交互式任意物体抠图用 MobileSAM;视频分割或追求极致精度用 SAM 2.1,再考虑蒸馏成小模型。
YOLO26-seg:2.7M 参数的分割主力
YOLO26 是 Ultralytics 2026 年 1 月发布的最新模型系列(官方文档 docs.ultralytics.com/models/yolo26),默认端到端推理(无 NMS),实例分割相对 YOLO11 的 box AP 提升最多 2.5、mask AP 提升最多 3.7。官方数据(截至 2026-08-24):
| 模型 | 参数量 | mAPbox | mAPmask | CPU ONNX | T4 TensorRT |
|---|---|---|---|---|---|
yolo26n-seg |
2.7M | 39.6 | 33.9 | 53.3ms | 2.1ms |
yolo26s-seg |
10.4M | 47.3 | 40.0 | 118.4ms | 3.3ms |
yolo26m-seg |
23.6M | 52.5 | 44.1 | 328.2ms | 6.7ms |
n 规格只有 2.7M 参数、9.1 GFLOPs,是 iPhone 上可实时运行的最小分割模型。
导出 Core ML:一行命令
|
|
产物是 yolo26n-seg.mlpackage。两个官方文档强调的坑:
- 分割任务导出 Core ML 时强制
nms=False(嵌入式 NMS 只支持检测任务),拿到的是无 NMS 的原始模型,mask 解码逻辑要自己在 App 里写 quantize可选 16(FP16)、8(INT8)、w8a16(INT8 权重加 FP16 激活);要在 Xcode 里做模型预览的话用 FP16 更稳
想跳过全部集成工作,Ultralytics 官方 iOS SDK(github.com/ultralytics/yolo-ios-app)支持所有任务开箱即用,包括相机实时推理。
Swift 集成:解码 mask
Core ML 模型输出的是低分辨率 prototype mask 加每个实例的 mask 系数,需要一次矩阵乘法把 mask 还原到原图尺寸:
|
|
完整实现参考官方 yolo-ios-app 里的 YOLO 与 YOLOProcessor 类,mask 解码和叠加逻辑都是现成的。
MobileSAM 路线:交互式抠图
MobileSAM(github.com/ChaoningZhang/MobileSAM,Apache-2.0)用 5M 的 TinyViT 替换 SAM 的 611M ViT-H 编码器,整管线 9.66M 参数,官方数据单 GPU 12ms 一张图(编码器 8ms 加 mask 解码器 4ms),Mac i5 CPU 上约 3 秒。它保留 SAM 的提示机制:点一下、画个框,就分割出对应物体。
|
|
拿到 ONNX 后用 coremltools 转成 mlpackage,Swift 侧用 MLModel 加载,把用户点击的坐标编码成 prompt 张量输入即可。
开源方案汇总
| 项目 | 一句话说明 |
|---|---|
| ultralytics/ultralytics | YOLO26-seg 的训练、验证、导出一体(活跃维护) |
| ChaoningZhang/MobileSAM | 轻量级提示式分割,9.66M 参数(维护节奏慢但可用) |
| facebookresearch/sam2 | 图像与视频分割 SOTA(活跃维护,移动端偏重) |
| ultralytics/yolo-ios-app | 官方 iOS SDK,Core ML 开箱即用(活跃维护) |
| ultralytics/yolo-flutter-app | 官方 Flutter 插件,跨平台端侧推理(活跃维护) |
小结
分割等于检测加一层 mask 解码,原型 mask 还原是端侧集成的关键成本。业务类别明确优先 YOLO26-seg(2.7M 参数可实时),交互式场景用 MobileSAM,追求视频级精度再考虑 SAM 2.1 蒸馏。以上模型与性能数据均截至 2026-08-24 官方文档验证。