弱监督语义分割:用图像级标签实现像素级预测

FreeGuideOnline 最新 2026-06-20

弱监督语义分割:用图像级标签实现像素级预测

什么是弱监督语义分割

语义分割的目标是为图像中的每一个像素分配一个语义类别标签。传统全监督方法依赖大量像素级精确标注,成本高昂且难以扩展。弱监督语义分割(Weakly Supervised Semantic Segmentation, WSSS) 则试图摆脱这一限制,仅使用更容易获取的弱标注来训练分割模型,最常见的弱标注形式是图像级标签——即只告知一张图像中包含哪些类别,而不提供任何位置信息。

图像级标签本质上是一个多标签二值向量,例如 [猫, 狗, 背景] → [1,1,0] 表示图像存在猫和狗。从如此粗糙的信号中恢复精细的像素级预测,是该领域的核心挑战。

为什么需要弱监督方法

监督类型 标注成本 信息量 典型应用场景
像素级标注 极高 完整位置 医学图像、自动驾驶
边界框标注 物体区域 检测转分割、辅助标注
涂鸦标注 中等 稀疏位置 快速标注工具
图像级标注 极低 仅类别存在 互联网规模数据、众包
无监督 聚类、自监督预训练

图像级标签可以通过关键词搜索、用户标签、商品分类等方式近乎零成本获取。这使得弱监督分割可以充分利用海量网络图片,大大降低进入门槛,尤其适合类别繁多的场景。

核心思路:从分类到定位

弱监督语义分割的通用范式是两阶段训练

  1. 种子定位阶段:使用分类网络(如卷积神经网络)在仅提供图像级标签的条件下,生成初始的、不完整但较可靠的物体位置线索(通常称为种子、激活图或伪标签)。
  2. 伪标签精炼与全监督训练:将种子作为初始伪标签,结合一些精炼策略(如条件随机场、多尺度推理、边界约束)迭代提升伪标签质量,然后像全监督一样训练分割网络。

关键技术一:类激活图

类激活图(Class Activation Map, CAM) 是弱监督定位的基石。以全局平均池化(GAP)后的分类网络为例:

  • 最后一层卷积特征图每个通道经过 GAP 后得到一个值,再通过全连接层输出类别 logits。
  • 类别 ( c ) 的激活图由该类别对应的全连接权重乘以特征图通道,再求和得到: [ \text{CAM}c = \sum{k} w_k^c \cdot f_k ] 其中 ( f_k ) 是第 ( k ) 个特征图,( w_k^c ) 是类别 ( c ) 对应的全连接权重。

CAM 能粗略高亮出分类网络决定类别时所关注的区域,但往往只激活物体最显著的部分(如猫的脸),难以覆盖完整物体区域。

改进 CAM 的常用手段

  • 去除 GAP 结构:使用更大的池化或全局最大池化部分保留空间分辨率。
  • 多尺度融合:输入图像多尺度测试,融合激活图,缓解漏检。
  • 切分擦除学习:如 DropBlockHide-and-Seek,迫使网络学习区分相邻相似区域。
  • 自注意力与 Transformer:利用 ViT 的自注意力直接生成更完整的注意力图。

关键技术二:伪标签生成与精炼

直接从 CAM 二值化得到的种子通常只覆盖物体的判别部分,遗漏大量像素。因此必须通过传播、优化或训练额外网络来补全。

常用精炼方法

  1. 条件随机场(CRF)迭代
    将 CAM 作为一元势,结合图像颜色和位置作为二元势,通过 DenseCRF 可以使激活区域向边缘扩散,但容易受图像纹理误导,过分生长到背景。

  2. PSA(Pixel-adaptive Synchronous Activation)与边界挖掘
    如 PSA 模块在分类网络中引入跨类别关系,利用图像内物体的共现上下文扩展激活区域。

  3. 自训练与迭代训练

    • 用初始伪标签训练一个全监督分割网络(如 DeepLab),然后用该网络重新预测训练集,生成更高质量的伪标签,反复迭代。
    • 结合混合数据增强(如 CutMix)迫使模型从部分遮挡中学习完整物体。
  4. 辅助监督信号

    • 显著性检测:使用预训练显著性模型提供物体边界先验。
    • 类别无关边缘检测:强化物体边界一致性。
    • 图文多模态:如 CLIP 的视觉-语言对齐帮助激活图扩散。

一个典型训练流程(伪代码)

# 阶段一:训练分类网络,生成种子
model_cls = ResNet50_with_GAP_CAM()
train_classification(model_cls, image_loader, multi_label=True)

for img, label in train_loader:
    cam_maps = generate_cam(model_cls, img)  # shape: C x H' x W'
    # 多尺度融合、二值化、CRF后处理
    pseudo_mask = postprocess(cam_maps, label)
    save_pseudo_mask(pseudo_mask)

# 阶段二:使用伪标签训练分割网络
model_seg = DeepLabv3plus(num_classes)
train_segmentation(model_seg, train_with_pseudo_masks)

# 可选迭代优化
for _ in range(num_rounds - 1):
    new_pseudo_masks = predict(model_seg, train_loader)
    update_pseudo_masks(new_pseudo_masks)
    fine_tune(model_seg, updated_masks)

常见评估指标与基准

在弱监督语义分割中,模型的性能通过标准语义分割指标衡量:

  • mIoU(mean Intersection over Union):计算每个类别预测区域与真值区域的交并比,再对所有类取平均。这是最核心的指标。
  • Pixel Accuracy(像素精度):正确分类的像素占总像素比例。
  • 常用数据集:PASCAL VOC 2012(20前景类+背景)、MS COCO(80类)、ADE20K 等。

研究者通常报告在 VOC 验证集上的 mIoU,传统全监督方法可达 80% 以上,而顶尖的图像级弱监督方法已能将差距缩小到 70% 左右(不借助额外显著数据)。

挑战与进阶方向

当前主要瓶颈

  • 显著区域偏差(Salient region bias):分类网络天然关注最具判别力的部位,难以激活全部物体像素,尤其是物体非特征区域(如汽车的轮胎、动物的四肢末端)。
  • 类别混淆与共现:某些类别常一起出现(如餐桌与椅子),分类网络可能只激活其中一类,或将背景误认为关联类别。
  • 小目标与多实例:图像级标签无法区分同一类别的多个实例,CAM 容易只响应面积最大的实例。

前沿探索

  • 视觉-语言预训练模型(CLIP、Grounded DINO 等):利用文本监督生成更细粒度的注意力图,甚至直接预测伪掩码。
  • 基于生成模型的方法:用 GAN 或扩散模型补全不完整种子。
  • 点监督与图像级混合监督:在极少量点标注帮助下大幅提升伪标签质量,保持总标注成本仍远低于全标注。
  • 域自适应与半监督结合:从源域全标注到目标域仅图像级标注,迁移知识。
  • 自监督预训练 + 弱监督微调:利用 MAE、DINO 等预训练习得的良好特征表达,提升弱监督幻觉的完整性。

实践建议

  • 入手可先复现经典方法 CAM + CRF 基线,理解激活图的分布特性。
  • 尝试加入 多尺度测试在线难例挖掘(OHEM) 抑制背景。
  • 利用现成的 显著性检测模型 作为辅助可以有效提升边界质量。
  • 迭代训练时注意控制伪标签噪声积累,可引入标签平滑和置信度阈值过滤。
  • 监控每类别 IoU,找出弱点类别(往往是细长或小物体)做针对性数据增强。

弱监督语义分割正在逐步降低高精度分割的门槛,通过理解其原理与局限,你可以更有效地利用互联网规模的数据,构建成本可控的视觉理解系统。