文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation

title

论文地址:APCNet:Adaptive Pyramid Context Network for Semantic Segmentation

项目代码基于Pytorch,但尚未开源


背景


最近的研究表明结合上下文特征能够显著的提升深度语义分割模型性能。这些模型的差异仅仅在于在实际中它们构造上下文特征的方式不同。这篇文章首先介绍了语义分割任务中上下文特征的三个理想特性。作者发现尽管Global-guided Local Affinity(GLA)在构建上下文特征时起这重要作用,但是之前的研究者却往往忽略了这一点。基于此,作者提出用于语义分割的Adaptive pyramid context network,APCNet,ACPNet构造的主体是多个Adaptive Context Modules,ACMS。每个ACM利用全局图像表示作为指导估计每个区域的Affinity系数,然后计算这些上下文Affinity的上下文向量。
本文的实验在PASCAL VOC 2012、Pascal-Context、ADE20K数据集上完成。实验表明,APCNet在上述三个数据集中都取得了SOTA性能,其中在PASCAL VOC 2012测试集上class-level的mIOU为84.2%.

语义分割任务中上下文特征的三个特性:

Multi-scale : 物体通常具有不同的大小和位置,所以有必要从不同尺度捕捉图像内容。没有多尺度上下文的方法只能捕获单尺度的对象,在其他尺度上会丢失细节。
Adaptive:并不是输入图像中的所有区域对给定像素的语义标签都有同等的作用。区域中包含相关物体的能够产生有效信息,而其他区域则只能产生少量信息。在实际中,与给定像素点相关的区域或者像素点既可能在该点附近,也有可能与该点相距较远,这和输入图片的内容及其分布有关。因此,自适应地识别这些重要因素非常重要。
Global-guided Local Affinity(GLA) :为了构建有效的上下文特征,应该整合相关像素点、相关区域的特征。在实际中,通常的做法是以相同的权重累加这些特征。如何估计整合时候的Affinity权重是一个问题。这些权重反映的是不同的区域在预测某一像素点标签时的差异。之前的模型在估计这些自适应权重时只考虑了局部像素、区域的表征。而在本文中结合局部、全局表征信息估计健壮的权值。全局特征表示的确有助于提升语义分割结果。【这里就是说结合全局表征之后,不同区域、像素点对某一像素点的标签预测任务,不再以完全相等的权重整合这些特征】
本文提到了几篇2018年的文章,是利用注意力机制完成语义分割任务,有DANet、PSANet.

作者对比了几种用于语义分割的模型,分析它们是否包含上述三个特性:

本文的主要贡献在于:

总结了语义分割任务中上下文特征向量的三个理想特性,并从这些特性的角度比较了近年基于深层次上下文信息的语义分割方法。
提出Adaptive Context模块,在估计局部区域权重时,利用局部和全局上下文特征表示的GLA特性。
在三个benchmark上取得SOTA性能。在不使用MS COCO做预训练的前提下,在PASCAL VOC 2012上取得84.2%的新纪录。


模型构架
model

当图片输入时,首先对图片经过CNN(本文多为ResNet)提取图像特征(Feature Map)X,将X分解为多尺度的金字塔(multi-scale pyramid)表示,每个尺度的表示被输入到自适应上下文模块(ACM)中,以估计每个局部位置的自适应上下文向量。本文提出的APCNet由多个并行的ACMs组成。每个ACM由两个分支组成,其中一个分支用于估计GLA亲和系数αs,另一个分支用于获得子区域自适应表示ys。将这两个分支的输出相乘得到自适应上下文向量zs,公式如下,APCNet将来自不同尺度的上下文向量和原始特征立方体X级联起来,用于预测输入像素的语义标签。

特别的是,在ACM模块中,上层分支,先经过1×1卷积对Feature Map进行降维,输出后的矩阵进行全局平均池化(GAP)输出1维向量,与降维后的矩阵进行求和,在经过卷积后输出αs,用以表征全局信息(Global Information);下层分支,先经过自适应池化(Adaptive pooling)后进行1×1降维输出ys,以表征子区域自适应信息。随后将两个权值相乘,得出自适应上下文向量zs以表征在全局下的每个区域的自适应程度,以体现每个特征块不同的重要性。

具体的步骤如下

特征图被分为了两个分支

  • 第一个分支
  1. 通过一个1 × 1 × 512 的卷积,以此来减小特征图的通道数量,得到特征图x
  2. 然后通过全局平均池化,得到一个有全局信息的512维的向量g ( x )
  3. 然后将g ( x ) 与x 相加,相当于给每一个像素加上了当前通道的全局信息,得到新的特征图 p
  4. 将 p通过一个1\times 1\times s^{^{^{2}}}的卷积,然后reshape成为一个hw\times s^{2}的矩阵A,aij​为亲和因子
  • 第二个分支
  1. 通过一个自适应池化层将原特征图变为s × s大小
  2. 通过一个1 × 1 × 512的卷积调整通道数
  3. 将调整后的特征图reshape成为的矩阵B以满足矩阵相乘的原理

将A ∗ B的结果作为新的特征图,新的特征图相当于融合了全局信息的特征图

然后还要加上最早的特征图x,这样得到了最后的特征图
 


实验结果

PASCAL VOC 2012

文章首先说明金字塔尺度pyramid scale对模型是有提升的。

文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation_第1张图片
然后对比了不同的backbone以及是否使用GLA对模型的影响:

文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation_第2张图片
然后测试了不同的设置对模型的影响,包括Deep supervision、数据增强、多尺度、微调模型,【上面的两张表的输入都是单一输入(没有对一张图进行flip等数据增强处理)】从下表可以看出的是微调模型对性能的提升还是比较大的。:

文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation_第3张图片
之后就是对比多模型对20类目标的分割性能:

pascal voc 2012

文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation_第4张图片
Pascal-Context

文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation_第5张图片

ADE20K

文献解读|CVPR2019|APCNet:Adaptive Pyramid Context Network for Semantic Segmentation_第6张图片
这里作者说明了为什么ADE20K数据集上的mIoU相对较低,因为其训练数据集的场景多样性和复杂性,很难实现细微的改进。


总结

这篇文章还是结合多尺度、局部全局特征提升语义分割模型性能,主要就是添加了自适应金字塔池化模块,其他的没有什么改变。还有一些名词文中没有解释,最后也没看太明白自适应模块是怎么自适应的

 

你可能感兴趣的:(文献解析paper,计算机视觉,机器学习,深度学习,人工智能)