目录
3.4.Attention Module Embedding with Networks
4.1.Datasets and Implementation Details
4.2.Results on Cityscapes Dataset
4.2.1.Ablation Study for Attention Modules
4.2.2.Ablation Study for Improvement Strategies
4.2.3.Visualization of Attention Module
4.2.4.Comparing with the-state-of-art
4.3.Results on PASCAL VOC 2012 Dataset
4.4. Results on PASCAL context Dataset
4.5. Results on COCO Stuff Dataset
paper:https://arxiv.org/pdf/1809.02983.pdf
code:https://github.com/junfu1115/DANet
1.Introduction
场景分割
- 特点:基本的,有挑战性的
- 目的:将图片分割成不同的区域并理解它,这些区域与语义类别有关,包括stuff(sky、road、grass)和不连续的对象(person、car、bocycle)
- 应用:自动驾驶、机器视觉、图像编辑
- 实现要求:区分混淆的类别、考虑不同外观的对象 ————>> 场景分割
- 结论(提出问题):增强像素级识别特征表示的判别能力很有必要。
- 发展历史(解决问题):FCNs
方法一: utilize the multi-scale context fusion:
文献列举+指出问题( Although the context fusion helps to capture different scales objects, it can not leverage the relationship between objects or stuff in a global view, which is also essential to scene segmentation. )
方法二: employs recurrent neural networks to exploit long-range dependencies
文献列举+指出问题( these methods capture the global relationship implicitly with recurrent neural networks, whose effectiveness reliesheavilyonthelearningoutcomeofthelong-termmemorization. )
提出DNNet(解决问题):总体(引入 self-attention mechanism)+具体(position attention module+ channel attention module+融合)
- DNNet的优势:处理复杂多样的场景时更加有效灵活,如图1:
first:第一行中的一些人和交通灯由于光照和视野的影响,不明显或不完整。如果探索简单的上下文嵌入,那么主要的显眼目标的上下文将会影响不明显的对象标签。 相反,attention 模块选性的聚合了不显眼目标的相似特征以增强他们的特征表达,避免了显眼目标的影响。
second:car和person的大小不同,辨认这种不同大小的目标需要不同尺度上的上下文信息。也即是:平等的对待不同尺度上的特征以表示相同的语义。我们带有注意机制的model目标仅在于:从全局视角上,自适应性的聚合任意尺寸的相似特征。这可以在某种程度上解决上述问题。
third:我们明确的考虑空间和位置之间的关系,使得场景理解从long-range 依赖中获益。
- 主要贡献
1、DANet的提出:提出带注意机制的DANet,增强了场景分割特征表示的判别能力;
2、两个模块:位置注意模块用来学习特征的空间依赖性,通道注意模块用来模拟通道依赖性。对局部特征模拟大量的上下文依赖显著的提高了分割结果。
3、测试:在三个流行的基准测试中获得了最新的结果,Cityscapes、PASCAL Context、COCO Stuff。
2.Related Work
- Semantic Segmentation. 基于FCNs的方法在语义分割方面取得了很大进展。以下几种模型的变体以增强上下文融合。
first:Deeplabv2、v3 采用带孔的金字塔池化来嵌入上下文信息,由不同扩张率的并行扩张卷积组成。
PSPnet 金字塔池化模块来收集有效的上下文先验,包括不同尺寸的信息。
编解码器结构 融合中高级语义特征,来获得不同尺寸的上下文。
second:学习局部特征的上下文依赖关系有助于特征表达。
DAG-RNN 利用循环神经网络建立有向无环图模型(??),以获取丰富的上下文依赖关系。
PSANet 用卷积层和空间维度的相关位置信息 来获取像素间的关系。
OCNet 带ASPP的自我注意机制 来挖掘上下文依赖关系。
EncNet 引入通道注意机制 来获取全局上下文。
- Self-attention Modules. 注意模块对long-range 依赖关系建立模型,被广泛应用在很多任务中。
[1]中首先提出自我注意机制来获取输入的全局依赖,并应用在机器翻译中。同时,attention module也逐渐应用在图像视觉领域。
[29]引入自我注意机制来学习更好的图像生成器。
[23] 与自我关注模块有关,主要探讨视频和图像在时空维度上的非本地操作的有效性。
- 与前者不同,我们将自我注意机制推广到场景分割任务中。精心设计了两种注意模块来获取丰富的上下文关系,以便用类内紧凑性实现更好的特征表达。 综合实验结果验证了我们提出的方法的有效性。
3.Dual Attention Network
3.1.Overview
- 指出问题:给定一幅场景分割的图片,物体或物体在尺度、光照和视图上是不同的(!?)。卷积操作会导致局部感受野,对于具有相同标签像素的特征会存在差异。 这些差异引入了类内不一致性并影响了识别准确性。
- 解决问题:用注意机制建立特征之间的关联性,探索全局上下文信息。这种方法可以自适应地聚合远程上下文信息,从而改善场景分割的特征表示。
- DANet整体框架:设计两种注意模块来从局部特征中获取全局上下文信息,这种局部信息由带扩张卷积的残差网络输出。(1)我们采用带扩张策略的预训练残差网络作为backbone(主干?)。移除了最后两个残差块的下采样,并采用扩张卷积。因此将feature map扩大为输入图像的1/8。没有增加参数但获得了更多的细节。 (2)将扩张残差网络后的feature map喂入两个相似的注意模块。 (3)上半部分的空间注意模块:采用卷积层获得降维后的 features,将其喂入位置注意模块,再通过以下3步输出大范围空间上下文信息的的features。 第一步:输出空间注意矩阵,这种矩阵对features的任意两个像素之间的空间关系进行建模。 第二步:对注意矩阵和原始features执行矩阵乘法。 第三步:将以上乘法的结果和原始features对应元素相加,得到可以反映大范围上下文信息的最终表示。 (4)与此同时,通道维的大范围上下文信息通过通道注意模块获取。获取通道关系的过程与位置注意模块相似,除了第一步,通道注意矩阵由通道维计算出。 (5)最后,融合两个注意模块的输出获得像素级别预测更好的特征表示。
3.2.Position Attention Module
判别特征表示对于场景理解至关重要,可以通过抓取long-range上下文信息得到。然而,一些研究显示由传统FCNS产生的局部特征可能导致对对象和物体的错误分类。为了对局部特征的大量上下文关系建模,我们引入了位置attention模块。该模块将广泛的上下文信息编码进局部特征,因此增强了特征表示能力。
下面详细阐述了自适应地集合空间上下文的过程。
如图3A,局部特征A属于 R(C×H×W),经过卷积层,产生两个新的teature map B、C(也属于R)。B、C经过reshape为C×N(N = H × W 像素数)。C的转置×B(??图中为B的转置×C??)。然后利用softmax层计算出空间attention map :S(属于R(N×N))
公式中,Sji表示第i个位置对第j个位置的影响。两个位置的特征表示越相似度,它对两者关系的贡献越大。两个位置越相似的特征表示有助于它们之间更大的相关性。
与此同时,A经过卷积层后产生新的feature map D(属于R(C×H×W)),reshape为R(C×N),然后乘以(S的转置),再reshape为R( C×H×W)。接着乘以参数α,最后与A对应元素相加得到E(∈ R C×H×W),如下公式:
公式中,α初始值为0,逐渐从更多的权重中学习。由式2可知,每个位置的最终特征E是所有位置的特征与原始特征的加权和。因此,它具有全局上下文视图,并根据空间attention map 有选择性的聚合上下文。相似的语义特征实现了相互的收获(互惠互利),因此,提高了类内紧凑和语义一致性。
3.3.Channel Attention Module
可以将高级特征的每个通道图看作一个特定类别的响应,且不同语义的响应是互相联系的。通过利用通道图之间的相互依赖性,可以强调相互独立的feature map,并且改善特定语义的特征表示。因此,我们构建了通道attention 模块对通道之间的相互依赖性进行精确建模。
图3B为通道attention 模块的结构,与位置attention 模块不同,直接通过原始特征A(∈ R C×H×W)计算通道attention map X(∈ R (C×C)),具体来说,将reshape A为R(C×N),然后A乘以A的转置,最后通过softmax层达到通道attention map X(∈ R (C×C))。
Xji衡量了第i个通道对第j个通道的影响,另外,X的转置乘以A,接着,reshape 结果为R(C×H×W),然后,乘以参数β,最后,和A对应元素相加,,得到最后的输出E(∈ R (C×H×W))
β,从0开始并逐渐从参数中学习。等式4可知:每个通道最后的特征,为所有通道的特征和原始特征的加权和。他对long-range 的feature map 之间的语义依赖性建模。有助于增强特征判别。
在计算两个通道关系之前没有使用卷积层嵌入特征,这样可以维持不同通道特征映射之间的关系。另外,最近的研究中通过全局池化或编码层来探索通道关系,与之不同,我们利用所有对应位置的空间信息去模拟通道相关性。
3.4.Attention Module Embedding with Networks
为充分利用大范围上下文信息,汇总两个注意模块的features。 具体而言,通过卷积层转换两个注意模块的输出,并执行对应元素加和来实现特征融合。紧接着一个卷积层用来输出最终的预测图。我们没有采用跳层操作,它需要更多的GPU资源。我们的注意模块很简单,可以直接嵌入已有的FCN。而且没有增加太多的参数,但有效增强了特征表达能力。
4.Experiments
在这些数据集上做了全面的实验:Cityscapes dataset 、PASCAL VOC2012、 PASCAL Context dataset 、and COCO Stuff dataset. 实验结果证明DNANet在三个数据集上实现了最先进的性能。
4.1.Datasets and Implementation Details
- Cityscapes :50个城市、5000图像(2048×1024)、19个语义类别标签、训练集2979、验证集500、测试集1525
- PASCAL VOC 2012 :训练集10582、验证集1449、测试集1456、20+1类别(目标+背景)
- PASCAL Context :整个场景的详细语义标签、4998训练集、5105测试集、参考[10.28],我们使用最常见的59个类别+背景做评估。
- COCO Stuff:9000训练、1000测试、参考[6,10],我们报告了171个类别的结果(80个objects,91个stuff)
4.1.1.Implementation Details
- 框架:Pytorch
- 多元(poly?)learing rate:初始学习率✖
- base learning rate:0.01(Cityscapes)
- momentum:0.9
- weight decay:0.0001
- train:Synchronized BN
- batch size:8(Cityscapes);16(other)
- epoch:180(COCO stuff);240(other)
- Multi-loss
- data augmentation:random cropping (cropsize 768) 、 random left-right flipping (during training in the ablation study for Cityscapes datasets. )
4.2.Results on Cityscapes Dataset
4.2.1.Ablation Study for Attention Modules
我们在扩张网络顶部使用双重注意模块来获得大范围依赖关系,以便更好地理解场景。table1的实验结果证明了注意模块的性能:
表1中,注意模块极大地提高了性能。与baseline FCN (ResNet-50)相比,采用位置注意模块(PAM)miou:75.74%,提高了5.71%。采用通道注意模块(CAM)提高了4.25%。采用两者,miou:76.34%。采用更深得预训练模型(resnet101),采用两者比FCN提高了5.04%。证明:注意模块为场景分割带来了极大的益处。
图4中可以看出PAM的效果:使用PAM可以使一些细节和目标边界更清晰,比如第一行的杆,第二行的人行道。对局部特征的选择性融合增强了对细节的识别。
图5证明:使用CAM,一些错误识别的类别可以被正确分类。例如第一行和第三行的bus。通道图之间的选择性集成有助于获取上下文信息。 语义一致性(??)明显提高。
4.2.2.Ablation Study for Improvement Strategies
采用与[4]相同的策略来提高性能:
- DA:random scalin
- Multi-Grid: 在最后的 残差块采用不同大小的 hierarchy of grids
- MS:平均分割概率图(来自8个图像尺度{0.5 0.75 1 1.25 1.5 1.75 2 2.2})进行推断。?????
实验结果表2:
- DA:提高1.26%,证明丰富训练数据的尺寸多样性有益于网络。
- Multi-Grid: 为获得更好的预训练网络特征表示,提高1.11%。
- 总提高到81.50%,超过了著名的deeplabv32.20%(79.30% on Cityscape val set)
4.2.3.Visualization of Attention Module
位置attention,self-attention map大小为(H ×W)×(H ×W),这意味着image的每一个点在map中都有一个对应的(H×W)大小的sub-attention map。图6中,对每个输入图像,我们选择两个点(标记为#1,#2),在第2,3列分别展示出对应的sub-attention。可以观察到:位置attention模块可以获得清晰的语义相似性和long-range关系。例如,第一行,1号点标记在建筑物上,它的attention map(第二列)突出显示了建筑物所在的大部分区域。并且,在sub-attention map中边界非常清晰,尽管一些点距离#1很远。点2的attention map集中在标记为car的大部分位置。第二行的“信号灯”和“人”亦然,尽管他们的像素少一些。第三行为“植物”和“人”,特别的是,2号点对近处的骑手没有响应,但对远处的人由响应(请看第三列左半部分高亮处)。
对于通道attention 模块很难直接给出便于理解attention map的可视化。作为替代,我们展示出一些参与的通道,来看看他们是否突出显示了清晰的语义区域。图6第4,5列展示了第11、第4个参与的通道(???)。可以发现:特定的语义响应在通道attention模块增强之后是能够看到的。例如,在这三个例子中,第11个通道map对“car”类有响应;第4个通道对“植物”类有响应,这对两种类别的分割是有益的。简而言之:以上可视化进一步证明了在场景分割时,抓取long-range 依赖性对于提高特征表达很有必要。
4.2.4.Comparing with the-state-of-art
进一步在cityscapes测试集上与已有方法比较:只用精化的标注数据训练DANet101,并把测试结果提交到官方评估服务器。结果如下表3.DANeet的表现超过了有主要优势的已有方法。!!?尤其,我们的方法在很大程度上优于有相同主干的PSANet。再者,它也优于使用更强大预训练模型的DenseASPP。
4.3.Results on PASCAL VOC 2012 Dataset
我们用VOC2012数据集进行实验进一步评估效果,定量结果如表4.Attention模块显著提高了性能,DANet-50提高了3.3%。采用更深的网络resnet-101,模型达到了80.4%的mIOU。参考[4,28,30],我们使用trainval进一步优化模型。VOC2012测试集上的结果如表5。
4.4. Results on PASCAL context Dataset
在PASCAL context Dataset评估:在VOC2012上 采用相同的训练、测试设置,PASCAL context的定量结果如表6.Dilated FCN-50 miou:44.3%。DAnet-50提高到50.1%。DANet-101:52.6%,这远超之前的方法。在之前的研究中,Deeplabv2、Refinenet通过不同的孔卷积和编码器的不同阶段,采用Multi-scale特征融合。另外,他们用额外的COCO数据集训练模型,或采用更深的model(resnet152)来提高分割结果。与这些不同,我们引入了attention模块精确的获取全局依赖性。并且这种方法实现了更优的性能。
4.5. Results on COCO Stuff Dataset
用COCO Stuff Dataset数据集验证网络。与之前先进的方法比较如表7.我们的model达到了39.7%的MIOU,在和大程度上优于其他。DAG-RNN利用chain-Rnns对2D图像空间依赖性进行建模;[6]在解码器阶段使用gating 机制(门控机制)以改善不明显的对象与背景的分割。本文方法可以更高效地获取大范围上下文信息,场景分割时学习到更好的特征表达。
5.Conclusion
本文提出了DANet进行场景分割,该方法使用self-attention 机制有选择性地集合了局部语义特征。具体来说,我们引入了position attention module 和 channel attention module,分别从空间和通道维获取全局依赖性。ablation实验证明两个模块可以有效获取大范围的上下文信息,并得到精确分割结果。我们的网络在Cityscapes, Pascal VOC 2012, Pascal Context, and COCO Stuff据集上均达到了出色的性能。另外,降低计算复杂性,提高模型鲁棒性也是很重要的,未来工作中将进一步研究。