SEAM:Self-supervised Equivariant Attention Mechanism for Weakly Supervised Semantic Segmentation
基于自监督的理念,通过观察发现同一图像经过不同的仿射变换所产生的 CAM 不一致这一特点,利用隐式的等变换约束的方式建立类似自监督对比学习的一致性正则化学习机制,减少这种不一致程度来优化 CAM,从而得到高精度的种子区域
什么是 SEAM ?
- 引入大火的自监督学习理念,通过观察发现同一图像经过不同的仿射变换所产生的 CAM 不一致这一特点,利用隐式的等变换约束的方式建立类似自监督对比学习的一致性正则化学习机制,减少这种不一致程度来优化 CAM,从而得到高精度的种子区域
- 通俗理解:图片 I 直接输入网络 F 得到结果后,然后做仿射变换 A 得到 A (F (I))和先进行仿射变换再输入网络的结果 F (A (I)))应该是比较一致的结果,如果不一样就是神经网络没训练好,通过减少这种不一致,达到训练网络的目的
- 上图是不同尺度的图片输入网络,a 是传统的 CAM,它受尺度影响较大,以至于后面已经分不清是目标形状;b 是 SEAM 的结果,可以看出不同尺度下目标依然保持较好的形状,这对分割很友好
SEAM 的网络结构?
- SEAM 使用孪生网络判别先仿射变换和后仿射变换的 CAM 相似程度,通过减少不一致性来训练网络
SEAM 的 PCM 模块?
- PCM 提出是为了细化 CAM,在 CAM 的基础上增加“自注意力”机制
- PCM 输入是原始特征和原始 CAM,使用原始特征求取自注意力权重,然后用于加权原始 CAM,得到修改后的 CAM
SEAM 的损失函数?
- SEAM 的损失分为三部分,其中 cls 分类损失用于大致定位对象,而 ER 损失用于缩小像素级和图像级监控之间的差距。 ECR 损失用于将 PCM 与网络集成在一起,以对各种仿射变换做出一致的预测
- 类别损失 :多标签分类函数multi-label soft margin loss。具体操作就是特征图经过全局平均池化后与分类标签计算损失,这是网络能够完成分类任务以及进行 CAM 操作的基础。也就是这个损失函数是基础损失,与评价两个输入的相似度无关
- 相似度损失 :一个原图的CAM与仿射变换后图像的CAM之间相似度的指标。评价的标准选用1范数
- 相似度损失 :1)原图经过 PCM 修正后的的 CAM 与仿射变换后图像的 CAM 的一范数;2)原图的 CAM 与仿射变换后图像经过 PCM 修正后的 CAM 的一范数
- 、 用于监督 CAM 部分网络, 用于监督 PCM 自注意力网络
SEAM 最后输入如何整理两个网络的结果?
- 孪生网络就一个结构,一套权重,直接输入网络得到两个输出 CAM 和 PCM,直接拿 PCM 输出就是最后的结果
什么是孪生网络?
- 两个结构一模一样,而且共享权值的网络。它会衡量两个输入的相似程度。孪生神经网络有两个输入(Input1 and Input2), 将两个输入 feed 进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过 Loss 的计算,评价两个输入的相似度
什么是自监督(Self-supervised learning)?
- 在深度学习模型中,通常会通过 BackBone 提取特征,这些 BackBone 通常使用大量的人工标注数据训练得到,但是人工标注成本很高,能不能在没有标注数据的情况下,训练得到一个预训练模型呢?
- 预训练(pre-train)模型: 自监督学习可以解决这个问题,它的目标是基于无标注的数据,设计辅助任务来将数据本身的某一部分的信息作为监督信号,从而基于这个监督信号来训练模型
- 微调(fine-tuning): 去掉 decoder 解码器部分,将 encoder 编码器使用到下游任务,并进行训练的过程
- SEAM、MAE、全卷积掩码自编码器(FCMAE) 都是属于自监督模型