图像分割:语义、实例与全景

核心04-深度学习视觉预计 25 分钟分割语义分割实例分割DiceU-Net

前置知识点

kp-016 图像分类与 ImageNet 里程碑

一句话定义

分割把预测从「框」细化到「像素」:语义分割给每个像素一个类别、实例分割进一步区分同类别的不同个体、全景分割统一「东西(thing)」与「背景(stuff)」三类问题,掩码评测用 IoU/Dice。

为什么重要

凡是「边界即信息」的场景——医学影像勾画病灶、遥感提取地块、自动驾驶的可行驶区域、抠图与视频会议背景替换——都需要像素级答案;分割也是理解「检测器 + 像素分支」这类复合架构(Mask R-CNN、SAM)的必经站。

直观类比

语义分割像给地图上色:所有水都涂同一种蓝,不区分哪个湖;实例分割像点名每个湖各给一个编号;全景分割像一张完整地图,既给每个湖编号,也给「山脉」「森林」这类不可数背景整块上色。

前置知识

kp-016(分类框架与损失);kp-015 的 FPN 接口概念。

核心概念

原理与机制

U-Net 的关键洞察是「下采样换语义、跳跃连接保细节」:编码器四级下采样后感受野足够大,解码器逐级上采样,每级与编码器同分辨率特征拼接,边界精度由此恢复;医学影像小数据场景成功正是因为这一归纳偏置。Mask R-CNN 的关键工程点是 ROI Align——双线性插值替代取整量化,消除掩码分支的亚像素错位。SAM 路线则把分割重构为「可提示的掩码先验」:亿级掩码预训练后,对新类别零样本即可出掩码,常被用作自动标注工具(见 kp-025)。指标上掩码 IoU 与框 IoU 定义一致,Dice 与 F1 等价,医学论文惯用 Dice。

公式与模型

IoU = |A ∩ B| / |A ∪ B| Dice = 2|A ∩ B| / (|A| + |B|) (与 F1 等价;Dice = 2·IoU / (1 + IoU)) mIoU = (1/C) Σ_c IoU_c

图示

语义:像素分类 实例:同类分个体 全景:thing + stuff 两块区域同色 两个实例不同编号 灰区为背景 stuff 指标:mIoU(语义)、AP@掩码 IoU(实例)、PQ(全景)

实例与案例

医学勾画:U-Net + Dice 损失在器官/肿瘤勾画上是事实标准,标注由医生逐层手工完成、成本极高,因此半自动预标注 + 医生修正是主流流程。遥感地块提取:语义分割直接服务农险与国土调查,难点是类间光谱相近、需多光谱输入。会议抠图与视频背景替换:人像实例分割 + 时序平滑,逐帧掩码抖动会造成边缘闪烁。SAM 作为标注引擎:点一下目标出掩码,人工只做确认,使大规模实例标注成本下降一个量级。

# U-Net 形态的最小组合(伪代码骨架)
logits = model(images)                       # (B, C, H, W)
loss = torch.nn.functional.cross_entropy(logits, masks, ignore_index=255)
pred = logits.argmax(dim=1)

常见误区

与其他知识点的关系

掩码分支建在 kp-017 检测框架上;SAM 是 kp-021 基础模型范式在分割上的代表;姿态估计(kp-020)的人体区域常用分割先验;标注工作流(kp-025)受益于 SAM 辅助。

自测题

  1. 三类分割任务各自的输出形态是什么?

答案要点:语义输出 H×W 类别图;实例输出 N 个(掩码、类别)对;全景输出统一标签图(thing 带实例号 + stuff)。

  1. U-Net 跳跃连接解决什么问题?

答案要点:深层特征语义强但分辨率低,跳跃连接把浅层高分辨率细节直接送入解码器,恢复边界精度。

  1. Dice 与 IoU 数值关系如何?为什么医学文献偏爱 Dice?

答案要点:Dice = 2·IoU/(1+IoU),恒不小于 IoU;医学界习惯 F1 口径且小目标下数值更直观。

延伸阅读

相关知识点

kp-017 目标检测:IoU、mAP 与两阶段流程kp-020 关键点与人体姿态估计