文章标题:Saliency Guided Self-attention Network for Weakly and Semi-supervised Semantic Segmentation
文章来源:ICCV2019
研究内容:两阶段弱监督语义分割
1. 主要创新
- 提出用以弱监督分割的saliency guided self-attention network(SGAN),主要目的是生成高质量的种子
- 融合种子分割分支和图像分类分支,以提高种子的质量
- 通过对saliency map的简单替换,本文方法可以用以半监督语义分割
2. 提出方法
论文方法分为两个部分:学习一个Saliency Guided self-attention网络来生成密集且准确的分割种子(seeds);利用这些高质量的种子作为近似ground-truth,训练语义分割模型。
2.1 Saliency Guided self-attention Network
由三部分组成:
- 一个学习图像深度特征表示的CNN骨架
- 一个Saliency guided self-attention模块通过获取大范围的上下文依赖关系将注意力从小的descriminative部分传播到non-discriminative部分
- 与seed segmentation分支一起的一个图像分类分支对整个网络的训练进行监督。
框架图像如图2.
1)骨架网络
论文中采用VGG-16作为特征提取骨架网络,并将最后两个pooling操作去掉以提高输出特征图的分辨率。论文中没有在Conv5中使用膨胀卷积,而是使用self-attention 模块来获取更丰富的上下文信息。
2) Saliency Guided self-attention Module
使用该模块的目的:利用自注意机制获取发现覆盖完整目标范围的丰富的上下文信息;获取高质量的种子(seeds)。作者提出集成class-agnostic saliency的方式来禁止注意力从图像的可判别区域(discriminative object regions)传播到背景区域。
形式化描述:
- 两个输入:(1)VGG的Conv5输出
;(2)saliency map
- 输出:通过一些列的空间矩阵操作,生成空间注意力图(spatial attention map)
,其中
。
- 具体描述:
step1. X通过两个的卷积进行线性嵌入(linear embedding),分别生成一个关键特征图(key feature map)
和一个查询特征图(Query feature map)
,K和Q进一步reshape成
;
Step2. 通过计算K和Q任意两个位置的通道级特征的内积生成空间注意力图P。即,,其中
为位置索引,
为通道级特征。
Step3. 对于输入的saliency map,首先使用阈值进行二值化,得到二值mask ,并reshape成
的大小。
Step4. 显著注意图(saliency attention map)可以通过下式进行计算:
。这意味着,两个位置同时为salient或non-salient的时候,取值为1。
Step5. 上下文注意力图(context attention map)可以通过P和S的逐元素相乘获得,乘积的结果需进行线性标准化:
。
Step6. 用D对X进行强化。具体来说,将 X reshape成,计算X与D的转置的矩阵乘积,将结果重新reshape为
,得到的结果与X进行逐元素求和,从而获得强化后的feature map
,即
,其中,
初始化为0,并在训练中逐步学习。该式子表明,E的每一位置是具有相似特征的所有位置特征的加权值与原始特征之和。因此,该特征获取了整幅图像的上下文信息。因此,因为saliency的guided, 目标小的discriminative部分的注意力能够传播到目标的non-discriminative部分,但不能传播到背景区域。
3)Integrating Class-specific Attention Cues
为了避免注意力在不同类别之间的错误传播,文章集成了有CAM方法计算的类别注意力线索信息(class-specific attention cues)。
具体来说,在SGAN中执行了一个分割分支。输入为E,经过一个卷积层,生成M个分割图,每个分割图对应一个前景类别。同时,通过设置一个高置信度阈值(0.3),对从VGG-16分类网络中获取的的CAM图进行二值化,从而获得可靠但分布稀疏的种子区域(reliable but sparse foreground object seeds),并利用这些种子进行监督分割。对应的种子损失定义为:
其中,Z表示出现在图像中的前景类别集合,为类别z对应的种子位置集合,
表示集合的基数。
为位置u上为类别z的前景目标的概率。
4)Training SGAN
该网络还存在一个由图像标记监督的分类分支。记:
为分类概率;
为对应的图像标记,表示对应类别在图像中是否存在。
分类损失定义为sigmoid交叉熵:
训练saliency guided self-attention netword的整体损失定义为:
其中,为平衡两项的加权因子。
5)Generating High-quality Seeds
一旦SGAN训练完成,就存在两种获取CAM的方法:
- 与常见方法类似,从图像分类分支推导CAM;
- 使用Seed分割分支的输出作为CAM图。
作者发现,两种方法得到的CAM图具有互补性,因此,文章中对两种方法得到的CAM图进行逐元素求和来生成最终的CAM图。接着,作者使用高阈值(0.2)对CAM图进行二值化,使用低阈值(0.06)对背景进行阈值化,从而获取前景和背景区域的种子像素。
2.2 训练分割网路
获取高质量种子后,可以使用这些种子作为近似ground-truth标记来训练任意的语义分割网络。文章中作者使用平衡种子损失(balanced seed loss)作为监督信息,
其中,表示背景区域种子。
论文进一步使用边界约束损失(boundary constraint loss)来促使分割结果能与物体边界匹配。假设I为输入图像,为全连接CRF的输出概率图。边界约束损失可以定义为分割图和CRF输出的平均KL距离:
这样,训练分割网络模型的整体损失为:
2.3 SGAN Under Semi-supervision
在半监督分割中,有一小部分的图像具有像素级的标注信息,而剩余的仅有图像级的标记。对具有像素级标记的图像,将saliency map替换为ground-truth标记,并使用ground=truth监督种子分割分支。这种替换可以使得SGAN能够学习到更优的模型并产生更高质量的种子。
在训练分割网络阶,依然使用ground-truth替换生成的种子。除此之外,使用与弱监督分割完全相同的损失函数。
3. Experiments
3.1 试验建立
3.1.1 数据集及评价指标
(1)PASCAL VOC:该数据集提供了20类目标的像素级标注和一个类别的背景标注。含有1464幅训练图像、1449幅验证图像和1456幅测试图像。作者对训练数据进行了增广处理,训练集大小为10582幅。在训练集上训练网络时,只使用了图像级的标注,并使用mean intersection-over-union(mIoU)进行验证级的评价。测试集的评价通过将结果提交给PASCAL VOC的官方评价服务器进行。
(2)COCO:该数据集包含80000张训练图像和40000张验证图像。训练和验证采用PASCL VOC相同的设置,针对81个类别计算mIoU。
3.1.2 训练细节
(1)SGAN训练
- SGAN的骨架网络VGG-16通过ImageNet进行预训练。SGAN的其余参数随机进行初始化。
- 根据参考文献[14]的S-Net获取每一幅图像的class-agnostic saliency map。
- 采用mini-batch SGD算法进行优化,batch size为15,moment为0.9,weight decay为0.0005.
- 所有输入图像全部resize为321*312,只采用随机水平翻转进行增广。
- SGAN迭代了8000次,学习率为0.001,并在每2000次迭代后以因子10递减。
(2)分割网络训练
- 使用Deeplab-ASPP网络进行语义分割,主要目的是与其他WSSS分割进行对比。
- 分别使用VGG-16和ResNet-101骨架进行了研究。
- batch size为15, moment为0.9, weight decay为0.0005.输入图像resize为353*353后随即裁剪为321*321.
- 水平翻转和颜色抖动用以进行数据增广。
- 分割模型迭代了12000次,学习率为0.001,并以每2000次迭代以0.33的因子降低。
(3)可复制性
SGAN的实现代码为Pytorch,Deeplab-ASPP代码为Caffe的官方实现。下载地址为:https://github.com/yaoqi-zd/SGAN
3.2 Comparison to the State of the art
3.2.1 Weakly-supervised Semantic Segmentation
PASCAL VOC:为了公平比较,依据分割模型的backbone对方法分为两组。大部分现有方法使用saliency map进行背景甚至前景种子的检索。表1表明,论文方法优于其他方法。
- ASE-PSL[12]、GAIN[17]、SeeNet[18]使用擦除技术获取密集定位线索,这些方法倾向于发现true negative regions
- AffinityNet[39]、DSRG[13]、SGDN[21]和SSDD[22]采用区域增长来扩展种子
- OAA[20]在训练过程中积累注意图
- MDC[14]、DFPN[16]、FickleNet[15]使用扩张卷积检索密集种子
- DSNA[40]使用空间注意力机制
- AISI[30]利用strong示例级信息
- CIAN[23]使用cross-image亲近关系
- SSNet[41]使用额外的saliency监督联合学习saliency和分割结果。
COCO:除了DSRG[13]之外,大部分现有方法没有在COCO上进行验证。论文与DSRG进行了对比:
3.2.2 Semi-supervised Semantic Segmentation
与state-of-the-art的半监督分割方法进行了对比,使用的数据集为PASCAL VOC 2012,包含14000张具有像素级标记的图像和9000张仅有图像标签的图像。对比结果如表3所示
3.2.3 Qualitative Results
PASCAL VOC数据集上的分割结果如图3所示。
3.2.4 Ablation Studies
(1)SGAN Components的有效性
VGG-16为骨架网络,在不同的设置中保持不变,考虑如下几种设置:1)完整模型,记为SGAN;2)仅仅使用图像分类分支的CAM图的完整模型,记为;(3)仅仅使用种子分割分支的CAM图的完整模型,记为
;(4)去掉分割分支和种子损失的模型,记为SGAN-SEED;(5)去掉分割分支、种子损失、和saliency guidance,相当于仅仅将self-attention机制集成在修改过的VGG-16分类模型的网络,记为SGAB-SAL-SEED;(6)仅仅使用修改的VGG-16的模型,记为baseline。
VOC-2012的对比结果如表IV所示:
从表中,可以看到:
- SGAN-SAL-SEED:使分割结果退化了。该模型使得注意力从前景目标传播到了共同出现的背景区域,获得不准确的种子
- SGAN-SEED:在每个类别上都比baseline要好
和
因集成了class-specific注意力线索,均能生成高质量的种子,SGAN对两种CAM的集成进一步提升的结果
- 与baseline相比,文中方法对大的目标(bus、train)和大尺度变化的目标(person)等目标类别具有明显的性能提升。
每种模型的CAM图,如图4所示:
(2)Evaluation of Seed's quality
高质量种子通过对CAM图的阈值化获得。使用precision、recall和F-measure评价SGAN的不同变形。F-measure的定义如下:
其中,设置为0.4以提高precision的影响。评价结果如表5所示。
从表中可以看大:
- SGAN-SAL-SEED的种子precision下降最大,质量不高
- SGAN能获取高质量的种子
- F-measure取值与最终分割结果具有强相关性。取值越高,分割结果越好。
(3)Visualization of Context Attention Maps
图5展示了不同上下文注意图。从图中可以看出,在弱监督分割中简单实用self-attention机制会是的注意力变得一团糟。而saliency先验信息能够阻止注意力从目标转移到背景。进一步集成class-specific注意线索,SGAN能够约束不同类别目标的注意力相互传播
(4)Influnence of the weifht factor
如果没有种子损失,将会损失class-specific注意力线索,SGAN也将难以解决不同前景目标的注意力之间互相影响的问题。而因为种子的稀疏性,对种子约束赋予过大的权重也有可能会导致训练不凑效。论文对设置的不同的取值进行验证,结果如图6所示。表明在0.15时能达到最优性能。
(5)Influence of Saliency Detectors
近来,在弱监督分割领域中,提出了多个saliency检测器,如DHSNet、DSS、和S-Net。作者使用S-Net生成saliency mask。表7表明SGAN对saliency detector并不敏感,因为这些检测器对室外景物性能近似,而室内景物都存在困难。