Encoder-Decoder with Atrous Separable Convolution for Semantic ImageSegmentation 论文精读

用于语义图像分割的可分离空洞卷积编解码器

摘要

深度神经网络采用空间金字塔池模块或编解码结构进行语义分割。前一种网络能够通过以多种速率和多个有效视场探测传入特征,对多尺度上下文信息进行编码,而后一种网络可以通过逐渐恢复空间信息来捕获更清晰的对象边界。在这项工作中,我们建议结合两种方法的优点。具体来说,我们提出的模型DeepLabv3+通过添加一个简单但有效的解码器模块来细化分割结果,尤其是沿着对象边界的分割结果,从而扩展了DeepLabv3。我们进一步探索了异常模型,并将深度可分离卷积应用于空洞空间金字塔池和解码器模块,从而形成更快、更强的编解码网络。我们在PASCAL VOC 2012语义图像分割数据集上验证了该模型的有效性,在测试集上实现了89%的性能,无需任何后处理。我们的论文附带了Tensorflow中提出的模型的公开参考实现。

1、导言

语义分割的目标是为图像中的每个像素分配语义标签[17,52,13,83,5],这是计算机视觉的基本主题之一。基于全卷积神经网络[64,49]的深度卷积神经网络[41,38,64,68,70]在基准任务上比依赖手工特征[28,65,36,39,22,79]的系统有显著改进。在这项工作中,我们考虑两种类型的神经网络,使用空间金字塔池模块(23, 40, 26)或编码器解码器结构(61, 3)进行语义分割,其中前者通过汇集不同分辨率的特征,而后者能够获得清晰的对象边界来捕获丰富的上下文信息。

为了在多个尺度上捕获上下文信息,DeepLabv3[10]采用了几种不同rate的并行空洞卷积(称为空洞空间金字塔池,简称ASPP),而PSPNet[81]在不同的网格尺度上执行池操作。尽管在最后一个特征映射层中编码了丰富的语义信息,但由于网络主干内的步长大于1的卷积和池化操作,造成了对象边界相关的详细信息丢失。这可以通过应用空洞卷积来提取更密集的特征图来缓解。然而,考虑到最先进的神经网络[38、68、70、27、12]的设计和有限的GPU内存,从计算上禁止提取比输入分辨率小8倍甚至4倍的输出特征图。以ResNet-101[27]为例,当应用空洞卷积提取比输入分辨率小16倍的输出特征时,最后3个剩余块(9层)内的特征必须放大。更糟糕的是,有26个剩余块(78层!)如果需要比输入小8倍的输出特性,则会受到影响。因此,如果为这类模型提取更密集的输出特征,则计算量会更大。另一方面,编码器-解码器模型[61,3]有助于加快编码器路径中的计算速度(因为没有特征被扩展),并逐渐恢复解码器路径中尖锐的对象边界。为了结合这两种方法的优点,我们建议通过合并多尺度上下文信息来丰富编码器-解码器网络中的编码器模块。

特别是,我们提出的名为DeepLabv3+的模型通过添加一个简单但有效的解码器模块来恢复对象边界,从而扩展了DeepLabv3[10],如图1所示。丰富的语义信息被编码在DeepLabv3的输出中,通过阿托斯卷积可以根据计算资源的预算控制编码器特征的密度。此外,解码器模块允许详细的对象边界恢复。

图1. 我们建议用编码器-解码器结构(b)改进采用空间金字塔池模块(a)的DeepLabv3。所提出的模型DeepLabv3+包含来自编码器模块的丰富语义信息,而详细的对象边界由简单但有效的解码器模块恢复。编码器模块允许我们通过应用阿托斯卷积以任意分辨率提取特征。

受最近深度可分离卷积[67,71,12,31,80]的成功启发,我们也探索了这一操作,并通过采用类似于[60]的异常模型[12]来改进语义分割任务,从而在速度和准确性方面取得了改进,以及对ASPP和解码器模块应用空洞可分离卷积。最后,我们在PASCAL VOC 2012语义切分基准上验证了该模型的有效性,在测试集上实现了89.0%的性能,无需任何后处理,开创了新的技术水平。

总之,我们的贡献是:

•我们提出了一种新的编码器-解码器结构,它使用DeepLabv3作为一个强大的编码器模块和一个简单但有效的解码器模块。 •在我们提出的编码器-解码器结构中,可以通过阿托斯卷积来任意控制提取的编码器特征的分辨率,以权衡精度和运行时间,这在现有编码器模型中是不可能的。 •我们为分段任务调整了异常模型,并将深度可分离卷积应用于ASPP模块和解码器模块,从而形成更快、更强的编解码网络。 •我们提出的模型在PASCAL VOC 2012数据集上取得了最新的性能。我们还提供了设计选择和模型变体的详细分析。 •我们公开了基于Tensorflow的拟议模型实施。

2、相关工作

基于完全卷积网络(FCN)的模型[64,49]已经证明在几个分割基准[17,52,13,83,5]上有显著改进。有几个模型变体被提议利用上下文信息进行分割[28,65,36,39,22,79,51,14],包括那些采用多尺度输入(即图像金字塔)[18,16,58,44,11,9]正交集采用概率图形模型(如DenseCRF[37]和高效推理算法[2])[8,4,82,44,48,55,63,34,72,6,7,9]。在这项工作中,我们主要讨论使用空间金字塔池和编解码器结构的模型。

空间金字塔池:

PSPNet[81]或DeepLab[9,10]等模型在多个网格尺度上执行空间金字塔池[23,40](包括图像级池[47]),或以不同速率应用多个平行的萎缩卷积(称为萎缩空间金字塔池,或ASPP)。通过利用多尺度信息,这些模型在多个分割基准上显示了有希望的结果。

编码器-解码器:

编码器-解码器网络已成功应用于许多计算机视觉任务,包括人体姿势估计[53]、目标检测[45,66,19]和语义分割[49,54,61,3,43,59,57,33,76,20]。通常,编码器-解码器网络包含(1)逐渐减少特征映射并捕获更高语义信息的编码器模块,以及(2)逐渐恢复空间信息的解码器模块。基于这个想法,我们建议使用DeepLabv3[10]作为编码器模块,并添加一个简单但有效的解码器模块,以获得更清晰的分段。

深度可分离卷积:

深度可分离卷积[67,71]或组卷积[38,78],这是一种强大的操作,可以在保持类似(或略好)性能的同时减少计算成本和参数数量。最近的许多神经网络设计中都采用了这种操作。特别是,我们探索了与[60]相似的异常模型[12],用于提交COCO 2017检测挑战,并在语义分割任务的准确性和速度方面显示了改进。

3、方法

在本节中,我们将简要介绍萎缩卷积[30,21,64,56,8]和深度可分离卷积[67,71,74,12,31]。然后,在讨论附加到编码器输出的拟议解码器模块之前,我们回顾了用作编码器模块的DeepLabv3[10]。我们还提出了一种改进的异常模型[12,60],它通过更快的计算进一步提高了性能。

3.1、 空洞卷积编码器-解码器

空洞卷积:

Atrus卷积是一种强大的工具,它允许我们显式地控制由深度卷积神经网络计算的特征的分辨率,并调整滤波器的视场以捕获多尺度信息,它概括了标准卷积运算。具体而言,在二维信号的情况下,对于输出特征映射y和卷积滤波器w上的每个位置i,对输入特征映射x应用阿托斯卷积,如下所示:

 其中,衰减率r决定了我们采样输入信号的步幅。我们请感兴趣的读者参考[9]了解更多细节。请注意,标准卷积是速率r=1的一种特殊情况。通过改变速率值,自适应地修改过滤器的视野。

深度可分卷积:

深度可分离卷积,将标准卷积分解为深度卷积,然后再进行逐点卷积(即1×1卷积),大大降低了计算复杂度。具体而言,深度卷积对每个输入通道独立执行空间卷积,而点式卷积用于组合深度卷积的输出。在TensorFlow[1]实现的深度可分离卷积中,深度卷积(即空间卷积)支持阿托斯卷积。在这项工作中,我们将产生的卷积称为阿托斯可分离卷积,并发现阿托斯可分离卷积在保持相似(或更好)性能的同时显著降低了所提出模型的计算复杂度。

DeepLabv3作为编码器:

DeepLabv3[10]采用阿托拉斯卷积[30,21,64,56]来提取由深度卷积神经网络以任意分辨率计算的特征。这里,我们将输出步幅表示为输入图像空间分辨率与最终输出分辨率的比率(在全局池或完全连接层之前)。对于图像分类任务,最终特征图的空间分辨率通常比输入图像分辨率小32倍,因此输出步长=32。对于语义分割任务,可以采用输出步幅=16(或8)进行更密集的特征提取,方法是去除Lastone(或两个)块中的跨步,并相应地应用热卷积(例如,我们对输出步幅=8的最后两个块分别应用rate=2和rate=4)。此外,DeepLabv3增强了空洞空间金字塔池模块,该模块通过以不同速率应用Atrus卷积,以图像级特征在多个尺度上探测卷积特征[47]。在我们提出的编码器-解码器结构中,我们使用原始DeepLabv3中logits之前的最后一个特征映射作为编码器输出。注:编码器输出特征图包含256个通道和丰富的语义信息。此外,根据计算预算,可以通过应用阿托斯卷积以任意分辨率提取特征。

拟议解码器:

来自DeepLabv3的编码器功能通常是在输出步幅=16的情况下计算的。在[10]的工作中,特征被双线性上采样16倍,这可以被认为是一个幼稚的解码器模块。然而,这种简单的解码器模块可能无法成功恢复对象分割细节。因此,我们提出了一个简单但有效的解码器模块,如图2所示。编码器特征首先以4的系数进行双线性上采样,然后与网络主干中具有相同空间分辨率的相应低级特征[25]连接(例如,在ResNet-101[27]中跨步之前的Conv2)。我们在低层特征上应用另一个1×1卷积来减少通道数量,因为相应的低层特征通常包含大量通道(例如256或512),这可能会超过丰富编码器特征(在我们的模型中只有256个通道)的重要性,并使训练更加困难。在级联之后,我们应用一些3×3卷积来细化特征,然后再进行一次简单的双线性上采样,采样倍数为4。我们以秒为单位展示。4.编码器模块使用输出步幅=16在速度和精度之间达成最佳平衡。当编码器模块使用output stride=8时,性能略有提高,但代价是额外的计算复杂度。

 图2。我们提出的DeepLabv3+通过采用编码器-解码器结构来扩展DeepLabv3。编码器模块通过在多个尺度上应用阿托斯卷积对多尺度上下文信息进行编码,而简单而有效的解码器模块则沿着对象边界细化分割结果。

3.2、修正对齐异常

在[60]中,除了我们没有为了快速计算和内存效率而修改入口流网络结构外,(2)所有的最大池运算都被带跨步的深度可分离卷积所取代,这使我们能够应用Atrus可分离卷积以任意分辨率提取特征图(另一个选项是将Atrus算法扩展到最大池操作),并且(3)在每3×3深度卷积之后添加额外的批处理规范化[32]和重新激活,类似于MobileNet design[31]。修改后的异常结构如图3所示。在[60]中,除了我们没有为了快速计算和内存效率而修改入口流网络结构外,(2)所有的最大池运算都被带跨步的深度可分离卷积所取代,这使我们能够应用Atrus可分离卷积以任意分辨率提取特征图(另一个选项是将Atrus算法扩展到最大池操作),并且(3)在每3×3深度卷积之后添加额外的批处理规范化[32]和重新激活,类似于MobileNet design[31]。修改后的异常结构如图3所示。

 图3. 异常模型的修改如下:(1)更多层(与MSRA的修改相同,除了入口流的变化),(2)所有最大池操作都被带跨步的深度可分离卷积所取代,以及(3)在每3×3深度卷积之后添加额外的批标准化和ReLU,类似于MobileNet。

猜你喜欢

转载自blog.csdn.net/XDH19910113/article/details/123262272
今日推荐