图像分割
图像分割(Image Segmentation)是比目标检测更精细的视觉理解任务:不再用矩形框标注目标,而是对图像中的每个像素赋予语义标签或实例 ID,从而获得目标的精确轮廓。
三类分割任务
图像分割根据目标的不同分为三大类,各有不同的应用场景和技术挑战:
语义分割(Semantic Segmentation)
对每个像素分配一个类别标签,同类别的所有像素标注相同颜色,但不区分同类别的不同实例。
- 示例:道路场景中,所有像素被标为"道路"、"人行道"、"汽车"、"行人"、"天空"等类别
- 问题:图中有三辆车,语义分割只告诉你哪些像素是"车",不区分是第一辆还是第三辆
实例分割(Instance Segmentation)
在语义分割基础上进一步区分同类别的不同个体,每个目标实例有独立的掩码(Mask)。
- 示例:对三辆车分别生成三个独立的像素级掩码
- 比目标检测更精细(精确到像素),比全景分割处理的类别更少
全景分割(Panoptic Segmentation)
融合语义分割和实例分割:对"可数目标"(Stuff,如树木、草地、天空)做语义标注,对"可数目标"(Things,如人、车、动物)做实例标注,实现完整的场景理解。
语义分割经典方法
FCN(全卷积网络,2015)
FCN(Fully Convolutional Network) 是将 CNN 用于语义分割的开创性工作:
- 用卷积层替换全连接层,保留空间位置信息
- 使用**反卷积(转置卷积)**将低分辨率特征图上采样至原图大小
- 引入**跳跃连接(Skip Connection)**融合浅层细节特征和深层语义特征
输入 → [下采样特征提取] → [上采样还原] → 逐像素分类输出
U-Net(2015)
U-Net 最初为医学图像分割设计,现已成为通用分割架构,其对称的编码器-解码器结构配合长跳跃连接是核心设计:
编码器(下采样路径):
输入 → Conv Block → MaxPool → ... (特征压缩,感受野增大)
解码器(上采样路径):
... → 转置卷积 → 拼接编码器同级特征 → Conv Block → 输出
优点:在小数据集上也能取得良好效果;跳跃连接保留了高分辨率的位置细节,非常适合边界精度要求高的医学分割任务。
DeepLab 系列
DeepLab 系列(v1→v4)是语义分割领域精度最高的方法之一,关键创新包括:
- 空洞卷积(Atrous Convolution):在不增加参数的情况下扩大感受野,保留更高分辨率的特征图
- ASPP(Atrous Spatial Pyramid Pooling):用不同膨胀率的空洞卷积并行捕获多尺度上下文
- 条件随机场(CRF)后处理:(早期版本)精细化边界预测
DeepLabv3+ 将 Xception 作为 backbone,配合 ASPP 和解码器,在多个基准上取得顶尖精度。
实例分割:Mask R-CNN
Mask R-CNN(2017) 在 Faster R-CNN 的基础上新增了一个掩码预测分支,以极小的额外开销实现了实例分割:
输入图像
→ ResNet + FPN(多尺度特征)
→ RPN(候选区域)
→ RoIAlign(精确特征提取,改善边界精度)
→ 并行三个头部:
分类头(类别)
回归头(边界框)
掩码头(28×28 二值掩码)
RoIAlign 是 Mask R-CNN 相比 Faster R-CNN 的重要改进:使用双线性插值替代 RoI Pooling 的整数量化,消除了空间对齐误差,对掩码预测至关重要。
Mask R-CNN 是实例分割领域最广泛使用的基线,后续工作(CondInst、SOLOv2 等)在此基础上进一步改进。
全景分割
全景分割将语义分割(背景类别)和实例分割(前景目标)统一到一个框架:
- Panoptic FPN(2019):在 Mask R-CNN 框架上加入语义分割分支,共享 FPN 特征
- Panoptic-DeepLab:全底向上的全景分割方法
- MaskFormer / Mask2Former(2022):将所有三类分割统一为"掩码分类"问题,用 Transformer 解码器生成掩码,成为目前的主流方法
SAM:Segment Anything Model
2023 年 Meta 发布的 SAM(Segment Anything Model) 是图像分割领域的重大突破,旨在构建分割领域的"基础模型"。
核心能力
SAM 支持多种交互提示方式,实现高质量分割:
- 点提示:在目标上点击一个或多个点
- 框提示:提供一个大致的边界框
- 掩码提示:提供粗糙的初始掩码
- 文本提示(扩展版):通过自然语言描述目标
架构设计
图像 → Image Encoder(MAE 预训练的 ViT-H)→ 图像 Embedding
提示 → Prompt Encoder → 提示 Embedding
→ Mask Decoder(双向 Transformer)→ 三个候选掩码 + 置信度分数
SAM 在 1100 万张图像、11 亿个掩码的 SA-1B 数据集上训练,展现出强大的零样本泛化能力:无需针对特定场景微调即可分割医学影像、航拍图像、水下场景等各类图像。
SAM 2:视频分割
2024 年 Meta 发布 SAM 2,将 SAM 的能力扩展到视频域:
- 内存模块(Memory Bank):存储历史帧的目标状态,实现时序一致的跨帧分割
- 流式处理:支持实时视频流中的交互式目标跟踪与分割
- 用户只需在视频第一帧点击目标,SAM 2 自动在后续帧中追踪并分割
零样本分割能力
SAM 和 SAM 2 的核心优势在于零样本能力:
- 不需要针对新的目标类别重新训练
- 在从未见过的场景和目标上依然有效
- 可作为下游任务的"分割工具"被调用,结合 CLIP 等模型实现开放词汇分割
应用场景
医疗影像
- 病灶分割:肿瘤、结节、器官的精确轮廓提取,辅助外科规划和放疗计划
- 细胞分割:显微镜图像中的细胞计数和形态分析
- SAM 在医疗影像的应用:Med-SAM 等医疗专用版本,针对医学图像特点微调
自动驾驶
- 行车场景理解:区分可行驶区域、行人、骑手、路标
- 激光雷达+相机融合:将分割结果与 3D 点云结合,构建精确环境模型
- 数据标注自动化:用 SAM 辅助自动驾驶数据集的像素级标注,降低人工成本
其他场景
- 遥感图像:建筑物提取、植被覆盖统计、灾害评估
- 视频编辑:精确抠像、背景替换(需要实例分割支持)
- 工业质检:产品表面缺陷的精确定位和面积统计