简述:
image-level弱监督语义分割是近年来深入研究的一个具有挑战性的问题。大多数的解决方案都利用了类激活特征图( CAM [1] )。然而,由于CAM只能发现目标最具判别力的部分的缘故,利用CAM作为监督信息训练出的语义分割网络始终与真正的ground truth作为监督信息的网络存在较大差距。在这篇论文中,作者提出了一个自监督的等变注意机制(SEAM)来缩小CAM与ground truth差距。
论文地址:
https://arxiv.org/pdf/2004.04581.pdfarxiv.org
代码地址:
YudeWang/SEAMgithub.com
一、背景简述
语义分割是一项基础的计算机视觉任务,其目的是预测图像的像素级分类结果。然而,与其他的分类和检测任务相比,语义分割需要收集像素级的类标签,这既耗时又昂贵。近年来,人们对弱监督语义分割(WSSS)进行了大量的研究,利用image-level分类标签、涂鸦和边界框等弱监督手段,试图实现与全监督方法相当的分割性能。本文主要研究image-level分类标签的语义分割。
大多数先进的WSSS方法都是基于类激活特征图(CAM)的,这是一种通过图像分类标签对目标进行定位的有效方法。然而,CAM通常只覆盖了对象中最具识别性的部分,在背景区域激活不正确,这可以分别概括为目标的激活不足和背景的激活过度。此外,如图1所示,当图像被仿射变换增强时,生成的CAM不一致。
图1:比较由不同尺度的输入图像生成的CAM。(一)传统的CAM。(b)作者提出的SEAM预测的CAM。可以看出,SEAM在不同尺度上的定位更加一致而全面。
作者认为,导致上述问题的根本原因是全监督和弱监督语义分割之间的监督差距。
为了减小上一差距,作者提出通过自监督的思想来为image-level的弱监督提供额外的监督以缩小上述弱监督与全监督之间的差距,这个方法称为自监督等变注意力机制(Self-supervised Equivariant Attention Mechanism,SEAM)。在SEAM中,作者引入了像素相关模块(pixel correlation module, PCM),该模块为每个像素捕获上下文外观信息,并通过习得的关联注意图对原始CAM进行修改。
二、方法详解
图2:SEAM的网络结构
图3:PCM模块结构
PS:对这篇论文还没有做过实验,所以不敢说从原理的角度去阐述方法,这里还只能浮在表面上每每一步是怎么做的上面来表达,后续如果有了深入的理解再更新。
作者认为,在进行数据增强的时候 ,会用到各种仿射变换。在全监督的情况下,由于会同时给ground truth做数据增强,这就隐式的给网络加上了等变化的约束,使得其在各种尺度下的分割都保持一定的一致性,但是,弱监督的监督信息只有分类标签,原图做了仿射变化之后,分类标签不可能做同样的变化,这样就失去了原有的隐式约束,导致了图1所展示的问题。所以作者引入了孪生网络(Siamese Network)。
何为孪生网络?就是两个结构一模一样,而且共享权值的网络。它会衡量两个输入的相似程度。孪生神经网络有两个输入(Input1 and Input2),将两个输入feed进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。
那么作者这里引入孪生网络的目的就出来了。两个网络的的输入分别是原图和经过仿射变换之后的图,通过孪生网络的映射,形成新的表示,然后再设计Loss使得这两个表示尽可能的小,也就是loss尽可能的小,从而显性的给网络加上前面所提到的等变约束。
再来看作者是怎么设计loss的,文中loss一共分为三个:
- :
这个就是正常的多标签分类函数,论文中使用的是multi-label soft margin loss。具体操作就是特征图经过全局平均池化后与分类标签计算损失,这是网络能够完成分类任务以及进行CAM操作的基础。也就是这个损失函数是基础损失,与评价两个输入的相似度无关
这个是一个原图的CAM与仿射变换后图像的CAM之间相似度的指标。评价的标准选用1范数。具体来说,如下:
A表示仿射变换,即,将原图的CAM经过仿射变换之后与仿射变换后图像的CAM求一范数。当然,该值越小越好
这同样是一个评价相似度的指标。对象变为求:1)原图经过PCM修正后的的CAM与仿射变换后图像的CAM的一范数;2)原图的CAM与仿射变换后图像经过PCM修正后的CAM的一范数。具体如下:
同样,这项指标也是越小越好
最后再来说一下PCM模块,也就是Pixel Correlation Module。它其实就是self-attention。对于self-attention参见我公众号的一篇文章:
self-attention在语义分割中的发展mp.weixin.qq.com
但是,与self-attention不同:1)激活函数没有用sigmoid而是用的Relu;2)去掉了跳层连接(可能是觉得原始的CAM加上反而增加更多的错误信息)。总而言之,它通过学习上下文关系修正了原始的CAM模块。
三、实验
消融实验:
作者使用训练得到修正后的CAM,去训练了CVPR2018一篇论文 [2]
四、总结
实际上这篇文章的根本动机与魏云超CVPR2018年一篇文章Revisiting Dilated Convolution [3]一样,都认为CAM是很多弱监督语义分割模型的基础,提升CAM的效果就能改进弱监督语义分割模型的性能。实际上也没错,好的CAM是能够起到上述作用的。但是个人愚见,使用分类网络得到的CAM终究还是和ground truth之间有着不可逾越的鸿沟,因为终究分类和分割之间还是有着本质的矛盾。并且这篇文章的CAM不见得比Revisiting Dilated Convolution的CAM好,只是因为这篇文章使用了更好的训练模型[2] 最终性能上才能超过Revisiting Dilated Convolution。
参考文献:
[1] CVPR2016_Learning Deep Features for Discriminative Localization
[2] Jiwoon Ahn and Suha Kwak. Learning pixel-level semantic affinity with image-level supervision for weakly supervised semantic segmentation. In Proc. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
[3] CVPR2018_Revisiting Dilated Convolution: A Simple Approach for Weakly- and Semi-Supervised Semantic Segmentation