一篇CVPR2022上的论文,用于弱监督分割
论文标题:
Self-supervised Image-specific Prototype Exploration for Weakly Supervised Semantic Segmentation
作者信息:
代码地址:
https://github.com/chenqi1126/SIPE
论文链接:
https://openaccess.thecvf.com/content/CVPR2022/papers/Chen_Self-Supervised_Image-Specific_Prototype_Exploration_for_Weakly_Supervised_Semantic_Segmentation_CVPR_2022_paper.pdf
Abstract
现有的WSSS方法通常依赖于类激活映射(CAM),它度量图像像素和分类器权重之间的相关性。然而,分类器只关注鉴别区域,而忽略了每幅图像中的其他有用信息,导致了不完整的定位映射。作者提出了一种自监督的Self-supervised Image-specific Prototype Exploration (SIPE)模型,包括一个Image-specific Prototype Exploration (IPE)模块(获得精细化的IS-CAM) 和 General-Specific Consistency (GSC) 损失函数(度量CAM和IS-CAM的差距)。
1.Introduction
现有的方法: WSSS非常节省标注资源,大多数现有的方法都是利用类激活映射(CAM)[53]技术来提供目标对象的定位线索。这些方法训练一个分类器,并将其学习到的权重视为每个类的一般表示,即类中心(作者给出的自己的一个解释)。然后,利用该类中心与图像像素进行关联,得到定位图。
现有方法的缺点: CAM倾向于专注于一些主要区域(猫的头部),而忽略了其他有用的线索(猫的身体)。(这个缺点经常在很论文中提到)。
作者的motivation: 作者使用 t-SNE可视化相关方法,从训练好的分类网络中提取的前景的像素级特征可视化(Figure1),作者发现类中心(CAM)总是给离得近得像素(对应于一些主要区域)的高激活,而忽略了远处的像素。不平衡的激活导致了不完整的定位图。作者提出通过特征的中心(Figure1粉色,通过IPE模块提取原型获得)来辅助进行激活。
作者的方法: 作者提出了SIPE模型,包括提出了图像原型探索模型(IPE),获得图像的"原型"。IPE模块包括两步,第一步,利用像素间语义来探索空间结构线索,定位每个类的鲁棒种子区域。第二步,给定种子区域,提取特定于图像的原型,然后通过原型相关性生成的IS-CAM。另外,作者提出了一个通用特定一致性(GSC)损失来有效地规范原始的CAM和ISCAM,增强特征表示(监督refine CAM)。
2.Related Work
现有的方法大多采用类激活映射(CAM)来生成定位映射,然后将其细化为伪标签,以训练一个完全监督的分割模型。目前又这样几种策略来提高CAM的质量(具体不详细写了):
- Erasure and accumulation.
- Cross-image mining.
- Background Modeling.
- Self-supervised Learning
作者的这个方法也属于Self-supervised Learning,引入特定图像的原型来发现完整的区域,并构建自监督方式来增强特征表示(CAM)。
3. Approach
整体的方法的思路如下图:
3.1. Class Activation Mapping
常规的CAM的公式如下:
公式(1)Mk表示对第k个特定类别激活获得的CAM,对于背景采用下列公式进行激活:
公式(2)即减去所有的1减去其他类最大的
M
k
M_k
Mk,然后乘以一个稀疏,得到对于背景的CAM。
总的激活即concat
M
k
M_k
Mk 和
M
b
M_b
Mb 即可获得。
3.2. Image-specific Prototype Exploration
IPE模块,主要包括两步:1.获取seeds区域。2.获取原型和更精细的IS-CAM。
Structure-aware Seed Locating:
作者认为尽管CAM比较注重关键的区分区域,但是仍在其余区域也能产生弱激活。作者提出了一种结构化的seeds处理方法,并以cam作为模板来匹配每个像素的最优类别。
具体做法如下图figure3所示:
首先对于任意像素
i
i
i,将其和其他像素
j
j
j计算相关性,这个是计算它们所对应的语义特征的相关性,即从Figure2中获得Semantic features,在对应的每个像素出求余弦相似度。即:
上述公式中的
f
i
f^i
fi和
F
s
(
j
)
F_s(j)
Fs(j)在代码里面是一样的,relu是取非负。公式(3)就表示各个像素之间的相似度。作者认为高相关的像素可以突出空间结构。这里的
S
S
S作者称为struction map。
接着作者定义了一种评估方式,类似于 structure similarity,对于每一类,将器CAM和公式计算的
S
i
(
j
)
S^i(j)
Si(j)计算其IOU(可以理解为CAM和这个结构相似性
S
i
(
j
)
S^i(j)
Si(j)的重叠度),即:
那么对一个具体的像素
i
i
i和类别
k
k
k,
C
k
i
C_k^i
Cki它们结构相似性。Figure3就想表达这个含义(前景像素(绿星)与猫的身体相关,与猫类的CAM达到最高的IoU,背景像素(红星)与前景像素没有关联,因此它更有可能属于背景类)
对于每个像素而言,根据公式(4)计算的最大的miou来确定该像素的类别,即:
这里的
R
R
R作者称为seeds region(效果见figure 2)
Background-aware Prototype Modeling
作者改变了原resnet骨干网络的特征提取方式,用了类似于FPN(金字塔池化)那种多层次的方式,如下图:
这样提取到的多层次的特征记为
F
h
F_h
Fh,作者认为图像的原型就是表示为在种子区域上的多层次特征的中心。用公式表示如下:
公式中的双
L
L
L符号表示取真符号。(这个公式描述的是这个意思,但是代码里面用的两者相乘,然后再GAP)。(这里可以这样理解,这个就是一个原型就是按照seeds region所处位置,对特征的加权平均,像是一个关键点(中心点)代码中的格式是:prototypes:[n,21,c,1,1],c:768),总共输出有
k
k
k个类别原型和一个背景原型。)
接下来作者求取精细化的IS-CAM,利用公式:
公式(7)是计算特征图在原型上的余弦相似度(从figure1来看,可以理解为特征图和图像中心点(原型)的相似程度),作者将其作为更加精细化的CAM(IS-CAM)。
简单总结一下作者获取IS-CAM的过程: backbone特征---->structure map(两两像素的余弦相似度)----->seeds region(计算和CAM的miou,按照最大的miou给像素分配类别)---->图像原型Prototype(分层特征在seeds region上取加权平均)—>IS-CAM(Prototype和分层特征的余弦相似度。
3.3 Self-supervised Learning with GSC
作者自监督过程中的损失函数,主要有两个:
一个是CAM获得过程中的分类损失,如下公式:
另外一个损失是评估IS-CAM和CAM差距损失,使用L1损失并进行norm归一化,作者称为General-Specific Consistency (GSC)损失,计算方式如下:
文章来源:https://www.toymoban.com/news/detail-513064.html
4. Experiments
在各种算法面前取得了sota的结果:
文章来源地址https://www.toymoban.com/news/detail-513064.html
到了这里,关于【论文阅读】Self-supervised Image-specific Prototype Exploration for WSSS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!