Rethinking Atrous Convolution for Semantic Image Segmentation(deeplabv3) 论文精读

基于空洞卷积的语义图像分割的再思考

摘要

在这项工作中,我们重新讨论了空洞卷积,这是一种在语义图像分割应用中显式调整滤波器视野以及控制深度卷积神经网络计算的特征响应分辨率的工具。为了解决多尺度下的目标分割问题,我们设计了级联或并行使用空洞卷积的模块,通过采用多个空洞比例来捕获多尺度背景。此外,我们还建议增强我们之前提出的空洞空间金字塔池模块,该模块在多个尺度上探测卷积特征,并使用图像级特征编码全局上下文,进一步提高性能。我们还详细介绍了实施细节,并分享了培训系统的经验。拟议的“DeepLabv3”系统在没有DenseCRF后处理的情况下,比我们之前的DeepLab版本有了显著改进,并在PASCAL VOC 2012语义图像分割基准上实现了与其他最先进模型相当的性能。

1、介绍

对于语义分割的任务[20,63,14,97,7],我们考虑两个挑战应用深度卷积神经网络(DCNNs)[50]。第一种是连续池运算或卷积跨步导致的特征分辨率降低,这使得DCNN能够学习越来越抽象的特征表示。然而,这种对局部图像变换的不变性可能会妨碍密集预测任务,因为在密集预测任务中需要详细的空间信息。为了克服这个问题,我们提倡使用空洞卷积[36,26,74,66],它已被证明对语义图像分割有效[10,90,11]。空洞卷积,也称为扩张卷积,允许我们重新利用ImageNet[72]预训练网络,通过移除最后几层的下采样操作,并对相应的滤波器核进行上采样,来提取更密集的特征图,相当于在滤波器权重之间插入孔(“trous”)。通过空洞卷积,可以控制在DCNN内计算特征响应的分辨率,而无需学习额外的参数。

另一个困难来自多尺度物体的存在。已经提出了几种方法来处理这个问题,并且我们主要考虑在这项工作中的四个类别,如图2所示。首先,将DCNN应用于图像金字塔,以提取每个比例输入[22、19、69、55、12、11]的特征,其中不同比例的对象在不同的特征地图上变得突出。其次,编码器-解码器结构[3,71,25,54,70,68,39]利用编码器部分的多尺度特征,并从解码器部分恢复空间分辨率。第三,额外的模块级联在原始网络之上,用于捕获远程信息。特别是,DenseCRF[45]被用于编码像素级的成对相似性[10,96,55,73],而[59,90]则以级联方式开发多个额外的卷积层,以逐渐捕获远程上下文。第四,空间金字塔池[11,95]以多种速率和多个有效视场通过过滤器或池操作探测传入的特征地图,从而在多个尺度上捕获对象。

在这项工作中,我们重新探讨了应用空洞卷积,这使我们能够在级联模块和空间金字塔池的框架内,有效地扩大滤波器的视野,以纳入多尺度上下文。特别是,我们提出的模块由具有不同间隔的空洞卷积和批量标准化层组成,我们发现这些层也需要训练。我们尝试以级联或并行方式布置模块(具体来说,是Atrus Spatial Pyramid Pooling(ASPP)方法[11])。我们讨论了一个重要的实际问题,即当应用3×3空洞卷积时,由于图像边界效应,它无法捕获远程信息,有效地简单地退化为1×1卷积,并建议将图像级特征合并到ASPP模块中。此外,我们还详细介绍了实现细节,并分享了培训所提出模型的经验,包括一种简单但有效的引导方法,用于处理罕见且注释精细的对象。最后,我们提出的模型“DeepLabv3”比我们之前的工作[10,11]有所改进,在PASCAL VOC 2012测试集上实现了85.7%的性能,无需DenseCRF后处理。

 图1. 核大小为3×3且速率不同的空洞卷积。标准卷积对应于间隔为1的空洞卷积。使用较大的空洞卷积间隔值可以扩大模型的视野,从而实现多尺度的对象编码。

2、相关工作

研究表明,全局特征或上下文交互[33,76,43,48,27,89]有助于正确分类像素进行语义分割。在这项工作中,我们讨论了四种类型的完全卷积网络(FCN)[74,60](见图2)利用上下文信息进行语义分割[30,15,62,9,96,55,65,73,87]。

 图2. 用于捕获多尺度上下文的替代体系结构。

图像金字塔:

同一模型(通常具有共享权重)应用于多尺度输入。来自小规模输入的特征响应编码了长范围的上下文,而大规模输入保留了小对象的细节。 典型的例子包括Farabet等人[22],他们通过拉普拉斯金字塔变换输入图像,将每个尺度输入馈送到DCNN,并合并所有尺度的特征地图。[19,69]从粗到细依次应用多尺度输入,而[55,12,11]直接调整多尺度输入的大小,并融合所有尺度的特征。这类模型的主要缺点是,由于GPU内存有限,对于较大/较深的DCNN(例如[32,91,86]等网络),它不能很好地扩展,因此通常在推理阶段应用[16]。

编码器-解码器:

该模型由两部分组成:(a)编码器,其中特征地图的空间维度逐渐减小,因此在更深的编码器输出中更容易捕获更长范围的信息;(b)解码器,其中对象细节和空间维逐渐恢复。例如,[60,64]利用反卷积[92]来学习低分辨率特征响应的上采样。SegNet[3]重用来自编码器的池索引,并学习额外的卷积层以加密特征响应,而U-Net[71]将编码器特征的跳转连接添加到相应的解码器激活,并且[25]采用拉普拉斯金字塔重建网络。最近,RefineNet[54]和[70,68,39]在几个语义分割基准上证明了基于编码器-解码器结构的模型的有效性。这种类型的模型也在目标检测的背景下进行了探索[56,77]。

上下文模块:

该模型包含级联布置的额外模块,用于对远程上下文进行编码。一种有效的方法是将DenseCRF[45](与高效的高维滤波算法[2])合并到DCNNs[10,11]。此外,[96,55,73]建议联合训练CRF和DCNN组件,而[59,90]在DCNN的置信度图(置信度图是最终的DCNN特征图,其中包含与预测类数量相等的输出通道)之上使用几个额外的卷积层来捕获上下文信息。最近,[41]提出学习一种通用且稀疏的高维卷积(双边卷积),并且[82,8]结合高斯条件随机场和DCNN进行语义分割。

空间金字塔池:

该模型使用空间金字塔池[28,49]来捕获多个范围内的上下文。ParseNet[58]利用图像级功能获取全局上下文信息。DeepLabv2[11]提出了Atrus spatial pyramid pooling(ASPP),其中具有不同速率的并行空洞卷积层捕获多尺度信息。最近,金字塔场景解析网(PSP)[95]在多个网格尺度上执行空间池,并在多个语义分割基准上展示了出色的性能。还有其他基于LSTM[35]的方法来聚合全局上下文[53,6,88]。空间金字塔池也被应用于目标检测[31]。

在这项工作中,我们主要探索空洞卷积[36,26,74,66,10,90,11]作为空间金字塔池的上下文模块和工具。我们提出的框架是通用的,因为它可以应用于任何网络。具体来说,我们复制了ResNet[32]中原始最后一个块的几个副本,并将它们级联排列,还重新访问了ASPP模块[11],它包含几个并行的空洞卷积。请注意,我们的级联模块直接应用于特征图,而不是置信度图。对于提出的模块,我们在实验中发现,使用批量标准化进行训练非常重要[38]。为了进一步捕获全局上下文,我们建议使用图像级功能来增强ASPP,类似于[58,95]。

空洞卷积:

基于空洞卷积的模型已被积极探索用于语义分割。例如,[85]对修改空洞间隔以捕获远程信息的效果进行了实验,[84]在ResNet的最后两个块内采用了混合空洞间隔,而[18]进一步提出学习可变形卷积,该卷积使用学习的偏移量对输入特征进行采样,推广了空洞卷积。为了进一步提高分割模型的准确性,[83]利用图像字幕,[40]利用视频运动,[44]结合深度信息。此外,空洞卷积已被[66,17,37]应用于目标检测。

3、方法

在本节中,我们将回顾如何应用空洞卷积来提取语义分割的密集特征。然后,我们讨论了所提出的模块,以及级联或并行使用的空洞卷积模块。

3.1、空洞卷积用于稠密特征提取

深度卷积神经网络(DCNN)[50]以全卷积的方式部署[74,60]已证明对语义分割任务是有效的。然而,在这些网络的连续层中,最大池和跨步的重复组合显著降低了生成的特征图的空间分辨率,在最近的DCNN中,每个方向上的分辨率通常为32。反卷积层(或转置卷积)[92,60,64,3,71,68]已被用于恢复空间分辨率。相反,我们提倡使用“空洞卷积”,最初是为了有效计算[36]的“空洞算法”模式中的非抽取小波变换而开发的,并在[26,74,66]的CNN文本之前使用。

考虑二维信号,对于输出Y上的每个位置I和滤波器W,在输入特征映射X上应用空洞卷积:

其中,衰减率r对应于我们采样输入信号的步长,这相当于用插入r产生的上采样滤波器卷积输入x−1沿每个空间维度在两个连续的滤波器值之间取零(因此命名为Atrus卷积,法语单词trous在英语中表示孔)。标准卷积是间隔r=1的特例,而空洞卷积允许我们通过改变间隔值来自适应地修改滤波器的视场。如需说明,请参见图1。

空洞卷积还允许我们明确控制在全卷积网络中计算特征响应的密度。这里,我们用输出步长表示输入图像空间分辨率与最终输出分辨率的比率。对于部署用于图像分类任务的DCNN[47、78、32],最终特征响应(在全连接层或全局池之前)比输入图像尺寸小32倍,因此输出步长=32。如果想要将DCNN中计算出的特征响应的空间密度加倍(即,输出步长=16),则将降低分辨率的最后一个池或卷积层的步长设置为1,以避免信号抽取。然后,所有后续卷积层被替换为间隔r=2的空洞卷积层。这允许我们提取更密集的特征响应,而不需要学习任何额外的参数。有关更多详细信息,请参阅[11]。

3.2、更深层的空洞卷积

我们首先探索设计以级联方式排列的空洞卷积模块。具体来说,我们复制了最后一个ResNet块的几个副本,在图3中表示为block4,并将它们串联排列。这些块中有三个3×3卷积,最后一个卷积包含步幅2,除了最后一个块中的一个,类似于原始ResNet。该模型背后的动机是,引入的跨步使得在更深的区块中捕获远程信息变得更容易。例如,如图3(a)所示,可以在最后的小分辨率特征图中总结整个图像特征。然而,我们发现连续跨步对语义分割是有害的(见第4节中的表1),因为细节信息是抽取的,因此我们应用了空洞卷积,其速率由期望的输出步幅值确定,如图3(b)所示,其中输出步幅=16。

 (a)在没有空洞卷积情况下的深层卷积

 (b) 有空洞卷积情况下的深层卷积。当输出尺寸=16时,在block3之后应用间隔>1的空洞卷积

图3. 无空洞卷积和有空洞卷积的级联模块

在这个提出的模型中,我们用级联的ResNet块(即额外的block5、block6、block7作为block4的副本)进行实验,如果没有应用空洞卷积,其输出步长为256。

3.2.1、多重网格法

受多重网格方法的启发,该方法采用了不同大小的网格层次[4,81,5,67],并遵循[84,18],我们在所提出的模型中采用了block4到block7中不同的空洞率。特别是,我们将区块4到区块7内三个卷积层的单位速率定义为多重网格=(R1,R2,R3)。卷积层的最终衰减率等于单位速率与相应速率的乘积。例如,当输出步幅=16且多重网格=(1,2,4)时,三个卷积在块4中的速率分别为=2·(1,2,4)=(2,4,8)。

3.3. 空洞的空间金字塔池(ASPP)

我们回顾了[11]中提出的空洞空间金字塔池,其中在特征图的顶部应用了四个具有不同空洞间隔的平行空洞进化。ASPP的灵感来源于空间金字塔池[28,49,31]的成功,它表明在不同尺度下对特征进行重采样是有效的,可以准确有效地对任意尺度的区域进行分类。与[11]不同的是,我们在ASPP中包含了批处理规范化。

具有不同衰减率的ASPP有效地捕获多尺度信息。然而,我们发现,随着采样率变大,有效滤波器权重的数量(即,应用于有效特征区域的权重,而不是填充零)变小。当以不同的衰减率将3×3滤波器应用于65×65特征映射时,该效应如图4所示。在速率值接近特征图大小的极端情况下,3×3滤波器不是捕获整个图像上下文,而是退化为简单的1×1滤波器,因为只有中心滤波器权重有效。

 图4. 在65×65特征图上,使用3×3过滤器,随着间隔率的变化,有效权重的归一化计数。当衰减率较小时,所有9个滤波器权值都应用于特征图上的大部分有效区域,而衰减率较大时,3×3滤波器退化为1×1滤波器,因为只有中心权值有效。

为了克服这个问题并将全局上下文信息纳入模型,我们采用了图像级特征,类似于[58,95]。具体来说,我们在模型的最后一个特征映射上应用全局平均池,将生成的图像级特征与256个过滤器进行1×1卷积(以及批标准化[38]),然后将特征双线性上采样到所需的空间维度。最后,我们改进的ASPP包括(a)一个1×1卷积和三个3×3卷积,当输出步幅=16时,间隔=(6,12,18)(全部带有256个过滤器和批量标准化),以及(b)图像级特征,如图5所示。请注意,当输出步幅=8时,速率加倍。然后,将所有分支的结果特征连接起来,并在最终1×1卷积生成最终logit之前,通过另一个1×1卷积(也包括256个过滤器和批量标准化)。

图5 带有空洞卷积(ASPP)的并行模块,并增加了图像级功能

猜你喜欢

转载自blog.csdn.net/XDH19910113/article/details/123214221