论文阅读——Rethinking Atrous Convolution for Semantic Image Segmentation

论文阅读之DeepLabv3:ASPP

摘要

本文进一步利用空洞卷积用于语义分割,通过空洞卷积实现不同感受野、不同特征分辨率的控制。在ASPP基础上完成不同尺度的特征提取,详情参见在PASCAL VOC 2012的分割结果。
主要复习一下ASPP具体结构。

Section I Introduction

将DNN用于语义分割任务存在两大限制:

(1)连续池化操作导致特征分辨率下降。在DCNN中往往需要深层次卷积学习更加抽象的高级语义特征,但却会造成空间信息的丢失,对于分类没什么影响,却不适合需要密集预测的语义分割任务。因此本文提倡使用空洞卷积,可以再不增加额外参量的前提下提升特征分辨率用于分割。

(2)多尺度目标检测。为了检测到多尺度目标,目前主要有以下四种解决方案:

A.Image Paramid


图像金字塔是输出不同分辨率的图像,分别进行特征提取,最后将特征融合。


B.Encoder-Decoder



编解码结构则是通过Encoder网络提取不同尺度的特征,在Decoder网络对应层完成空间信息的恢复




C.Context Module.





在原始网络中增加额外模块,如DenseCRF中通过空洞卷积来捕获像素之间的长程依赖关系。





D.Spatial Pyramid Pooling.






空间金字塔池化则是使用不同感受野和采样率的卷积核完成多尺度特征的提取。






具体示意图参见Fig2.
具体还会在Section II继续介绍。

在这里插入图片描述





本文使用空洞卷积获得不同感受野,通过级联或并行的方式以及ASPP完成多尺度上下文信息的提取。

Section II Related Work

提取到全局特征或上下文的依赖信息对语义分割任务十分重要,下面介绍前文提及的4种利用上下文信息做分割的全卷积神经网络。


Part A Image Pyramid



图像金字塔的多尺度体现在多尺度的输入上,粒度由粗到细,而网络模型通常使用共享的权值,其中粗粒度输入用于细节特征的提取,细粒度输入用于语义信息的提取,最后将不同尺度的特征merge后获得最终的分割结果。但由于GPU资源有限,一些大型网络不适合用这种思路,通常仅限于网络推断阶段。




Part B Encoder-Decoder




编解码结构由编码网络和解码网络组成,其中编码网络负责不同尺度特征的提取,解码网络则会逐渐将编码网络提取的特征进行空间信息的恢复,比如通过上采样、转置卷积等途径;此外还会利用跃层连接skip connection(如UNet)将原始信息连接至解码网络辅助空间信息的重建。





Part C Context Module






这种结构的特点主要是在原始网络的基础上额外增加上下文模块,用于提取长程的上下万依赖关系。比如将DenseCRF级联进常规网络







Part D Spatial Pyramid Pooling








DeepLabv2中提出的ASPP使用并行化的不同扩张率的空洞卷积完成不同尺度的特征提取,这样可以完成不同尺度的目标检测。近期还有PSPNet在不同的网格尺度上进行池化,以及利用LSTM完成全局信息的汇聚。
本文的工作聚焦于将空洞卷积作为一个上下文提取模块,组成ASPP用于多尺度特征的提取和融合。

改进ASPP模块:采用不同扩张率的空洞卷积,以及验证了BN的必要性
在空洞卷积率的选取上,发现3x3卷积由于边界效应不适合捕捉长程信息,因此退化为使用1x1的conv。

Section III Methods

本节详细讲述如何将空洞卷积以并行或级联的方式完成密集特征提取从而用于语义分割任务。

Part A Atrous Convolution

语义分割网络的一大限制就是由于连续的池化操作导致特征图谱的分辨率逐级递减,比如通常在深层网络中压缩为原图的1/32。在空洞卷积中通过控制膨胀率r完成filter的扩张,这样就可以人为调控感受野的大小用于特征的提取,还不用引入额外的训练参数。

Part B Going Deeper with Atrous Concolution

级联空洞卷积:
最初将不同膨胀率的空洞卷积以级联方式组成module。具体结构如Fig3所示。
在这里插入图片描述
每一个block中包含3个3x3的卷积,不同之处在于block3之后的4个 block使用了不同扩张率的空洞卷积从而保持所需的output_stride,以及每一个block内部也使用了multi-grid,分别是r=(2,4,6,16),grid=(1,2,4)。
Part C Atrous Spatial Pyramid Pooling

ASPP结构中包含4路并行的不同膨胀率的空洞卷积,这样可以有效对特征进行不同尺度的采样用于任意尺度的分类或目标检测。

本文在实验中也发现随着膨胀率的增大,有效地filter权重逐渐减少。比如当使用3x3的空洞卷积用于65X65featuremap时,这个时候捕捉的不再是全局信息,而是退化为1x1conv的效果,只有中心的weight起到了作用。
在这里插入图片描述

为了克服这一问题,本文在模型最后一个feature map后使用了global-avg-pooling,获得256个通道1x1大小的图像级feature,随后再进行双线性插值恢复到想要的空间分辨率。
在这里插入图片描述

最终的ASPP结构如Fig5所示,包含4个分支,分别是1x1conv+r=(6,12,18)的空洞卷积+图像级特征,以上分支信息以级联的方式(concatenate)融合 用于最后得分的计算。
PS:如果需要output_stride=8则扩张率需要double。

Section IV Experiments

本文的backbone基于ImageNet预训练后的ResNet,向其中加入空洞卷积。

Output_stride的定义是输入分辨率/输出分辨率

实验是PASCAL VOC 2012做语义分割,包括20类前景物体和背景。train:val:test = 1464:1449:1456.

评价指标:mIoU
Part A 训练细节


poly-rate lr


BN的使用:ResNet中的module均使用了BN



Part B Atrous Convolution




主要测试级联多个不同膨胀率的空洞卷积模块对模型性能的影响。
从Table I可以看出在ResNet50中随着output_stride逐渐增大,由于信号抽取导致性能下降,而使用空洞卷积后可以有效抑制信息的丢失;另一方面将ResNet50替换为更深的ResNet101级联更多的block也可以进一步提升分割性能。



在这里插入图片描述




TableIII还展示了不同multi-grid组合对分割性能的影响,比标准的每个block使用(1,1,1)以及单纯更改为(2,2,2)的组合,实验中通过不同组合发现在block中使用(1,2,1)的组合分割性能是最佳的。





在这里插入图片描述
另一个细节是在训练时output_stride=16而推断时使用output_stride=8目的是为了包含更多细节信息。
Part C ASPP

对ASPP的实验围绕着增加了BN层以及增加分支来观察对分割性能的提升。
最终在PASCAL VOC 2012
的分割性能对比参见下表。
在这里插入图片描述
Fig6展示了基于改进的ASPP分割后的结果,主义没有经过DenseCRF后处理过程。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37151108/article/details/106280847