前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVPR2020 | SANet:视觉注意力SE模块的改进,并用于语义分割

CVPR2020 | SANet:视觉注意力SE模块的改进,并用于语义分割

作者头像
AI算法修炼营
发布2020-06-24 16:39:33
4.6K0
发布2020-06-24 16:39:33
举报
文章被收录于专栏:AI算法修炼营AI算法修炼营

本文是一篇关于注意力机制的用于语义分割领域的文章,收录于CVPR2020。主要的思想是通过对视觉注意力模块SE模块进行改进得到了SA模块,同时捕获全局和局部上下文信息,并构建了SANet来完成语义分割任务。文章中对SE模块的改进思想可以学习,并可以迁移到backbone设计等其他领域。

论文地址:https://arxiv.org/pdf/1909.03402.pdf

由于注意力机制能够捕获更多信息特征来提高其表示能力,从而被广泛应用于语义分割网络中。但是,这些注意力机制忽略了语义分割的隐式子任务(像素分组),并受到卷积内核的网格结构的约束。在本文中,提出了一种新颖的压缩注意力网络(SANet)架构,该架构利用有效的压缩注意力(SA)模块来说明两种截然不同的细分特征:i) pixel-group attention ii)pixel-wise prediction。具体而言,所提出的SA模块通过引入“注意力”卷积通道将 pixel-group attention强加于常规卷积上,从而以有效的方式考虑了空间通道的相互依赖性。最终的分割结果是通过合并来自SANet的四个层次结构的输出以集成多尺度上下文信息从而获得增强的逐像素预测。最后,在两个具有挑战性的公共数据集上验证了所提出的SANet的有效性,具体地,在PASCAL VOC上达到了83.2% mIoU(无COCO预训练),而在PASCAL Context上达到了54.4% mIoU。

简介

目前,语义分割方法的进步主要是通过改进逐像素表示以进行精确标记来驱动的。但是,语义分割并不完全等同于逐像素预测。在本文中,认为语义分割可以分解为两个独立的维度:逐像素预测(pixel-wise prediction)和像素分组(pixel grouping)。具体来说,逐像素预测解决了每个像素的预测问题,而像素分组强调了像素之间的联系。先前的分割工作主要集中于从像素级别提高分割性能,但很大程度上忽略了像素分组的隐式任务。

通过将语义分割分解为两个子任务,可以发现像素分组中被很大程度上忽略。如图1所示,第一个子任务需要精确的逐像素标注,并将空间约束引入图像分类。最近的分割模型通过使用金字塔池和空洞卷积层聚合上下文特征以进行像素化标记而取得了重大进展,但是空洞卷积的内核限制了在分割网络中学习到的空间特征的形状。多尺度特征聚合策略增强了逐像素的预测结果,但图像的全局信息仍未得到充分利用。

为此,本文介绍了语义分割的第二个子任务——像素分组,该任务直接鼓励将属于同一类的像素分组在一起而没有空间限制。本文设计了一种新颖的SA(squeeze-and-attention)模块来减轻卷积核的局部约束,并专门负责像素分组。SA模块包含能够下采样但不完全压缩的注意力通道,以有效地产生非局部空间注意力,同时避免在输出中使用繁重的空洞卷积。具体来说,注意力卷积用于生成注意力mask,因为每个卷积内核会在输入特征图上进行扫描。与SE模块增强主干网络不同,SA模块整合了空间注意力和head单元,其输出通常被整合在一起以提高分割性能。SA模块引入的空间注意力机制强调的是不同空间尺度下属于同一类的像素组的注意力。此外,被squeeze的通道还可以作为global attention masks。

图1:语义分割可以分解为两个子任务:显式像素预测和隐式像素分组。这两个任务将语义分割与图像分类区别开。为了设计负责像素分组的模块,本文提出了一种新颖的suqueeze和Attention(SA)模块以及一个SANet,以提高密集预测的性能并解决很大程度上被忽略的像素分组。

本文设计了具有四个SA模块的SANet来完成以上两个分割任务。SA模块学习多尺度空间特征和非局部特征,因此克服了用于分割的卷积层的约束。首先,使用带有空洞卷积的ResNet和EfficientNets作为主干网络,以利用其强大的特征提取的能力。为了聚合多级非局部特征,本文在主干网络的多级输出上采用SA模块,从而获得更好的目标对象边界和场景解析结果。SANets可以简单地推广到其他相关的视觉识别任务。

SE模块与SA模块

图2:(a)残留块;(b)SE模块;(c)SA模块;为简单起见,仅展示了卷积层(CONV),完全连接(FC),平均池化层(AvgPool),同时省略了归一化和激活层。SA模块的结构与SE模块相似,它包含一条额外的路径来学习权重,以重新校准输出特征图Xout的通道。区别在于,SA模块的注意力通道使用平均池化来缩小样本特征图,但没有像SE模块中那样完全压缩。因此,将此通道称为注意力卷积(ACONV)通道。

经典卷积主要集中在空间局部特征编码和SE(Squeeze-and-Excitation)模块上,通过使用全局图像信息选择性地对特征图通道进行加权来增强其功能。受到此简单但有效的SE模块进行图像级分类的启发,本文设计了一种SA(Squeeze-and-Attention)模块,该模块融合了全卷积层的优势,可进行密集的像素级预测,此外还添加了另一种局部形式的特征图加权,称为像素组注意力(pixel-group attention)。与提高分类性能的SE模块类似,SA模块是专门为改善分割结果而设计的。

1、Squeeze-and-excitation module(SE)

残差网络(ResNets)由于其在图像识别方面的强大性能而被广泛用作分割网络的主干网络,并且在大型图像数据集ImageNet上进行预训练的ResNets可以很好地转移到其他视觉任务,包括语义分割。由于经典卷积可视为一种空间注意机制,因此本文从作为ResNets基本组件的残差块开始。如图2(a)所示,可以将常规残差公式表示为:

SE模块通过重新校准特征图通道来改善残差块,本文采用了SE模块的更新版本,其性能与SE模块中的原始版本等效。如图2(b)所示,SE模块可以表示为

其中学习的权重w用于重新校准输入特征图Xin的通道,计算公式为

其中Φ(·)表示S形函数,而σ(·)表示ReLU激活函数。首先,使用一个平均池化层来“压缩”输入特征图Xin。然后,由W1和W2参数组成的两个全连接层来获取“激励Excitation”权重。通过添加这种简单的重新加权机制,SE模块有效地增加了残差块的表示能力。

2、Squeeze-and-attention module(SA)

语义分割的有用表示形式出现在图像的全局和局部level。在像素级别,卷积层会根据局部信息生成特征图,因为卷积是在每个像素周围进行局部计算的。像素级卷积奠定了所有语义分割模块的基础,并且以各种方式增加了卷积层的感受野,从而提高了分割性能。

全局图像level可以利用上下文来确定激活特征图的哪些部分,因为上下文特征指示哪些类别可能会一起出现在图像中。同样,全局上下文提供了更广阔的视野,这对于语义分割是有益的。全局上下文特征是对这些区域进行整体编码,而不是针对图像的每个部分独立地学习重新加权。

为此,本文设计了一个SA模块,以通过考虑局部和全局方面的重新加权机制来学习语义分割任务的更多代表性特征。如图2(b)所示,SA模块扩展了SE模块的重新加权通道,其空间信息未完全压缩。因此,如图2(c)所示,SA模块可以表达为:

其中,

,Up(·)是上采样函数,用于扩展关注通道的输出。

其中Xattn表示注意卷积通道Fattn(·)的输出,该输出由Θattn和注意卷积层的结构attn作为参数。平均池化层APool(·)用于执行未完全压缩(not-fully-squeezed)的操作,然后对注意力通道Xattn的输出进行上采样,以匹配主卷积通道Xres的输出。

这样,SA模块使用所保留的空间信息来扩展SE模块,并且注意通道X进行上采样后输出在主要通道上来聚集非局部的特征。

本文方法:Squeeze-and-attention network

图3:SANet具体结构。SANet聚合来自多个分层SA head的输出,以生成多尺度的类别mask,从而解决了语义分割在很大程度上被忽略的像素分组任务。这些mask的训练由标签真值中的相应分类区域来监督。而且,这些mask用于指导逐像素预测,同时也是FCN head的输出。这样,利用了SA模块的像素组注意力提取能力,并同时聚合了多尺度上下文特征。

在SA模块的顶部构建用于语义分割的SANet。具体来说,使用SA模块作为head来从主干网络的四个阶段提取特征,以充分利用它们的多尺度性。如图3所示,总损失函数包括三个部分:dense损失(交叉熵CE损失),mask损失(CE损失)和类别损失(二进制CE损失)。表示为:

具体来说,

带有空洞卷积的FCN被用作SANets的主干网络。假设输入图像的大小为3×512×512。SA模块与注意模块的通道数相同,并且与输入特征图的通道数一致。根据经验,将主通道和注意力通道的输入通道大小均减小为四分之一,将注意力通道的下采样(最大池化)和上采样率设置为8,并将SE模块的中间完全连接层的通道数设置为4。同时,采用两个分组卷积在主通道和注意力通道上进行第一次卷积操作。同样,将SA head的输出调整为分割数据集的类别数。

实验与结果

数据集: PASCAL Context , PASCAL VOC

评价指标:mIoU、pixel-wise accu-racy (PAcc)

1、Results on PASCAL Context

消融实验包括三个部分。首先,测试权重α和β对总训练损失的影响。如图4所示。从0到1.0测试α,并发现α= 0.2的SANet效果最佳。类似地,固定α= 0.2,发现β= 0.8产生最佳分割效果。其次,比较分类损失和密集预测损失的影响。表1显示,与FCN baseline相比,使用ResNet50作为主干网络的SANet(包含四个双重使用的SA模块)分割性能显着改善(PAcc分别增加了2.7%和6.0%mIoU)。而且,分类损失和辅助损失提高了分割性能。

将SANet与最新模型进行比较以验证其有效性,如表2所示,使用ResNet101作为其主干的SANet实现了53.0%的mIoU。此外,使用EfficientNet作为主干网络,获得了54.4%mIoU,达到了PASCAL Context数据集新记录。图5显示了使用相同主干的ResNet50 FCN和SANet的分割结果。在前三行中,SANet生成更好的目标对象边界和更高的分割精度。但是,对于像最后一行这样的复杂图像,两个模型都无法生成清晰的解析结果。

另外,还通过将SA模块与baseline中带空洞卷积的FCN(包括ResNet50和ResNet101)之上的SE模块进行比较来验证SA模块的有效性。表3显示,在两种设置下,SANet都达到了最佳精度,并且性能显着提高(mIoU分别提高了4.1%和4.5%),而FCN-SE模型几乎没有改善分割结果。

2、Attention and Feature Maps

有趣的是,如图6所示,SA head1和SA head4中的注意力通道扮演着不同的角色。在低层阶段,注意力通道的注意图具有广阔的感受野,主通道的特征图着重于局部特征提取,并保留了对象边界。相比之下,在高级阶段,注意通道的注意图主要集中在所选点周围的区域,并且主通道的特征图比head1呈现出更均匀,更清晰的语义。

3、Results on PASCAL VOC

对比实验

更多实验细节,可以参考原文。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI算法修炼营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档