【语义分割—Deeplab V3】Rethinking Atrous Convolution for Semantic Image Segmentation

在这里插入图片描述

论文翻译

Rethinking Atrous Convolution for Semantic Image Segmentation

摘要

本文中,我们再次讨论atrous卷积,一个调整卷积核感受野的强大工具,并且可以控制深度卷积神经网络计算得到特征的分辨率,应用在图像语义分割上。为了处理在多尺度条件下的语义分割难题,我们设计了级联和并行的atrous卷积模块,采用多种不同的孔洞步长来获取多尺度的内容信息。除此之外,我们还提出了多层级空间金字塔式孔洞池化模块,挖掘多尺度卷积特征,以及编码了全局内容信息的图像层特征,提升分割效果。我们还详细阐述了实施细节,并分享了我们训练系统方面的经验。我们提出的“deeplabv3"系统比起我们以前的deeplab版本有了显著的提高,在没有使用全连接条件随机场做后置处理的情况下达到媲美与其他模型在PASCAL VOC2012图像语义分割的性能。

1 介绍

对于语义分割的任务,我们考虑了应用深度卷积神经网络(DCNNs)的两个挑战。第一个是由于连续的池化操作或卷积步幅导致的特征分辨率降低,这使DCNN能够学习越来越多的抽象特征表示。然而,这对局部图像变换的不变性可能妨碍精细的预测任务,这种任务需要详细的空间信息。为了克服这个问题,我们提倡使用atrous卷积,这种方法已被证明在图像语义分割中很有效。atrous卷积,也被称为扩张卷积,使我们能够通过去除最后几层的下采样操作和相应的上采样filter重新调整lmageNet之前训练好的网络来提取出更精细的特征映射,这就相当于在卷积核各个权重之间插入孔洞。使用atrous卷积,能够在深度卷积神经网络不需要学习额外的参数的情况下控制特征映射的分辨率。

另一个困难来自于如何获取尽可能多的目标的总体特征和细节特征,即不同尺度下的特征。已经提出了几种方法来处理这个问题,本文中我们主要提出四个方法,如图2所示。首先,DCNN是应用于图像金字塔从而在每个输入的尺度下提取特征,不同特征映射、不同尺度下目标都很突出。第二,编码器解码器结构在编码器部分就利用起多尺度的特征,解码器部分恢复图像同时保证空间分辨率。第三,用额外添加的模块级联在原来的网络上,从而捕获长跨度的信息。特别是DenseCRF用来编码相连像素的相似性,且开发了几个额外的卷积层级联处理,从而逐步捕获长范围上下文信息。第四,空间金字塔池化探索了用有着多种步长、多种有效感受野的filters或者池化操作处理输入特征映射,从而多尺度条件下捕获目标。

在这里插入图片描述(a)图像金字塔(b)编码解码方式(c)上下文模块(d)空间金字塔池化

图2。捕获多尺度上下文信息的几种方法

在这项工作中,我们重新研究atrous卷积的应用,在级联模块和空间金字塔池化的框架下,使我们能够有效地扩大filters的视野,以组合多尺度的图片信息。特别是,我们提出的atrous卷积模块中多种孔的步长和批次归一化层,发现在训练中也非常重要。我们的实验按级联或并行排列模块(特别实验了atrous的空间金字塔池化(ASPP)方法)。我们讨论一个重要的现实问题,当应用3×3atrous卷积时孔的步长非常大的时候,因为图像边界的影响就不能捕捉到长跨度的信息,事实上会退化为1×1的卷积,并提出将图像级特征纳入ASPP模块。此外,我们分享了精心设计的一些技术细节和模型的训练经验,包括简单而有效的自助抽样法处理标签稀少和标签精细对象。在最后,我们提出的“DeepLabv3"模型,超越了我们以前的工作,并且在没有使用DenseCRF做最后的处理的情况下在PASCAL VOC2012的测试集上达到了85.7%的正确率。

2 相关工作

从最近的像素级的分类上可以看出全局特征或上下文的相互作用对语义分割有好处。本文中,我们讨论了全卷积网络(FCNs)的四种方法(见图2说明)来获取语义分割中的上下文信息。

图像金字塔:相同的模型,共享的权重,适用于多尺度输入。特征响应在小尺寸输入时编码成长跨度的上下文,而大尺寸的输入还保存着小物体的细节。典型的例子有Farabet,它将输入图像通过一个金字塔结构的拉普拉斯算子,将每个尺寸的输入送到深度卷积神经网络中然后将多尺度的特征映射融合起来,利用多尺度输入把结果做到由粗到精,直接改变输入图像大小为特定的几个尺寸然后融合所有尺寸得到的特征。这种模型的主要缺点就是它在更大更深层的深度卷积神经网络中适应的不够好,受限于有限的GPU内存,这种方法主要应用在推理阶段。

编码解码方式:这种模型包括两部分:(1)编码部分将特征映射的空间维度逐渐减小因此更长跨度的信息会更容易被捕捉到在更深的编码输出中,(2)解码部分物体的细节和空间维度逐渐被恢复。例如,使用反卷积来学习低分辨率的特征响应的上采样。SegNet在编码阶段为池化做索引然后重复使用,并且学习额外的卷积层来使特征响应更加精细。U-Net则在编码特征到响应的解码操作之间添加了跳跃连接,并且使用了金字塔结构的拉普拉斯算子重新架构网络。更近的例子有,RefineNet和已经证明基于编码解码结构的模型在几种语义分割基准上的有效性。这种模型在目标检测上也有研究。

上下文模块:为了编码长跨度的上下文信息,这种模型包括级联的额外模块。其中一个有效的方法是加入一个全连接条件随机场(有效的高维滤波算法)到深度卷积神经网络之后。除此之外,提出了联合训练条件随机场和深度卷积神经网络部分,使用几个额外的卷积层在深度卷积神经网络的结果映射之上(结果映射是深度卷积神经网络最后的特征映射包含的输出通道和预测的种类数量相等)来捕获上下文信息。最近,提出了学习一个普遍又稀疏的高维卷积(双边卷积),并将高斯条件随机场与深度卷积神经网络相结合来处理语义分割。

空间金字塔池化:这种模型使用空间金字塔池化方法捕获上下文信息在几个层面。ParseNet研究了图像级别的特征包含全局上下文信息。DeepLabv2提出atrous卷积空间金字塔池化方法(ASPP),并行的atrous卷积层用不同的步长捕获多尺度的信息。最近,金字塔型场景分解模型(PSP)在几个栅格尺度下执行空间池化而且在几种语义分割基准上证明有突出的表现。还有其他基于LSTM方法收集全局上下文信息。空间金字塔池化也被应用在目标检测上。

本文中,我们主要探索atrous卷积作为一个上下文模块和一个空间金字塔池化的工具。我们提出的框架是在各种场景中通用的,可以被应用在任何网络当中。具体来说,我们复制了几个最初的ResNet的最后部分然后把它们级联在一起,而且也再次使用了包含几个并行的atrous卷积ASPP模块。注意我们级联的模块被直接应用在特征映射上而不是结果映射。对于提出的模块,我们经验化地发现批次正规化训练非常重要。为了更进一步捕获全局上下文,我们提出增加ASPP带有图像级别的特征。

Atrous 卷积:基于atrous卷积的模型已经在语义分割领域被研究很多了。例如,修改孔洞步长对捕获长跨度信息影响的实验。在ResNet的最后2块采用混合孔洞步长,而进一步提议学习可变形的卷积,对输入特征进行采样加上学习到的偏移,产生atrous卷积。为了进一步提高分割模型的准确率,利用图像标注,利用视频动作,结合深度信息。除此之外,atrous卷积被应用到目标检测上。

3 方法

在这一章,我们回顾atrous卷积是如何应用到语义分割提取精细特征。之后我们讨论提出的有atrous卷积的模块级联使用还是并行使用。

3.1 Atrous卷积提取精细特征

深度卷积神经网络(DCNNs)应用在全卷积结构上已经在语义分割中表现的效果卓越。然而,这些网络中连续几层中重复的max-pooling和striding结合的操作大大减小了结果特征映射的空间分辨率,最近的深度卷积神经网络中在每个方向上有32倍的缩小。反卷积层(或转置卷积)已经被使用来恢复空间分辨率。我们建议使用atrous卷积代替上文的操作,atrous卷积最初是为了在“algorithme atrous”高效计算非抽样小波变换而且这种方法在之前的深度卷积神经网络中已经被使用过。

假设2-d信号,针对每个位置 i i i,对应的输出 y y y,以及filter w w w,对于输入特征映射 x x x进行atrous卷积计算:

y [ i ] = ∑ k x [ i + r ⋅ k ] w [ k ] y[i]=\sum_{k}x[i+r\cdot k]w[k] y[i]=kx[i+rk]w[k]

其中,孔洞步长 r r r表示对输入信号进行采样的步长,等价于将输入 x x x和通过在两个连续的filters值间沿着各空间维度插入 r − 1 r-1 r1个零值得到的上采样filters进行卷积(因此atrous卷积中法语的trous在英语中意思是holes)。标准卷积即是一种 r = 1 r=1 r=1的特殊形式,而且atrous卷积允许我们通过改变步长的值,来修改卷积核的接受野,如图1所示。

在这里插入图片描述
图1。不同步长的3×3 atrous卷积。标准卷积与步长为1的atrous卷积相同。使用步长更大的atrous卷积会加大模型的感受野,对目标进行多尺度编码。

atrous卷积也允许我们明确控制全卷积神经网络计算的特征紧凑程度。这里,我们把输入图像空间分辨率与输出图像分辨率的比值记为输出步长。深度卷积神经网络在执行图像分割的任务时,最终的特征响应(在全连接或者全局池化之前)和输入图像维度相比缩小了32倍,因此输出步长为32。如果想要在深度卷积神经网络计算的特征响应上使空间分辨率加倍(输出步长为16),最后一个池化或者卷积层这种减小分辨率的操作的步长设置为1来避免信号的丢失。然后,所有随后的卷积层被步长 r = 2 r=2 r=2的atrous卷积层替换掉。这就允许我们在不需要学习任何额外的参数的情况下得到更精细的特征响应。

3.2 深入了解atrous卷积

首先我们探索atrous卷积模块串行级联的设计。具体来说,我们复制几份ResNet最后模块,在图3中记为模块4,并且将他们级联起来。在这些模块中有三个3×3的卷积,而且除去最后一个模块之外,所有的卷积最后一步步长为2,与初始的ResNet相似。这个模型的目的是介绍striding这种操作使得在更深模块中捕获长跨度的信息很容易。例如,整个图像的特征可以被集中在最后一个小分辨率的特征映射当中,正如图3(a)中展示的那样。然而,我们发现连续的striding操作对于语义分割是有害的(详见第四章的表1)因为细节信息丢失了,因此我们应用步长确定的atrous卷积,按照输出步长的要求而设计,如图3(b)中展示的,这里输出步长为16。

在这里插入图片描述
(a)没有atrous卷积的深度学习。(b)有atrous卷积的深度学习。输出步长为16在模块3之后使用步长大于1的atrous卷积

图3带有和没有atrous卷积的级联模型

在这个模型当中,我们实验了级联ResNet到第7个模块(额外的模块5,模块6,模块7是由模块4复制而来),在没有使用atrous卷积的情况下它的输出步长是256。

3.2.1 多网格方法

受多网格方法的驱动,使用不同尺寸网格的集合,我们在模型中对模块4到模块7采用不同的孔洞步长。特别是,我们定义了 M u l t i G r i d = ( r 1 , r 2 , r 3 ) Multi_Grid=(r_1, r_2, r3) MultiGrid=(r1,r2,r3),对于从模块4到模块7每个模块有着独立的单元步长。最终的atrous步长对于卷积层来说与单元步长和对应的步长相乘的值相等。例如,当输出步长为16, M u l t i G r i d = ( 1 , 2 , 4 ) Multi_Grid=(1, 2, 4) MultiGrid=(1,2,4),模块4中三个卷积的步长将会分别等于 2 × ( 1 , 2 , 4 ) = ( 2 , 4 , 8 ) 2×(1, 2, 4)=(2, 4, 8) 2×(1,2,4)=(2,4,8)

3.3 atrous空间金字塔池化

我们回顾之前提出的atrous空间金字塔池化,四个并行的atrous步长不同atrous卷积被应用在特征映射之上。ASPP是被空间金字塔池化的成功而想到的,空间金字塔池化在用不同尺度重复采样特征提高精确率方面是有效的而且任意的尺度都对分割很有效果。与之前的ASPP不同,本文我们的ASPP加入了批次归一化。

在这里插入图片描述
图4。随着孔洞步长的增加,归一化计算3×3filter的有效权重,此时特征映射为65×65。当孔洞步长比较小的时候,全部9个filter的权重在特征映射的大部分有效区内都有作用,而当孔洞步长增加的时候,3×3filter逐渐退化成一个1x1filter,因为只有中心的权重是有效的。

具有不同的孔洞步长的ASPP对捕获多尺度信息很有效果。然而,我们发现随着采样率的提高,有效的filter权重(即有效特征区域,而不是补零区域的权重)却在变小。这种影响如图4所示,当把一个3×3的filter用不同的atrous步长应用到65×65的特征映射当中。在极端情况下,步长增大到接近特征映射的尺寸,该3×3的filter 不能捕获整个图像内容,而退化成了一个简单的1×1 filter,因为只有中心filter权重才是有效的。

针对上面的问题,并将全局内容信息整合进模型中,我们采用图像级特征。特别是,我们应用了全局平均池化处理模型的特征映射,将得到的图像级特征输入到一个有256个filter的1×1卷积(加入批次归一化)中,然后将特征进行双线性上采样(bilinearly upsample)到特定的空间维度。最后,我们的改进的ASPP由一个1×1卷积,和三个3×3卷积组成,步长为(6,12,18),输出步长为16(所有的filter个数为256,并加入批次归一化),如图5所示,(b)是图像级的特征。需要注意的是,当输出步长为8时,步长将加倍。所有分支处理好的特征将会连接在一起通过另一个1×1卷积(也有着256个filter,加入批次归一化),最后还有一个1×1卷积产生最终的分类。

在这里插入图片描述

图5。并行的atrous卷积(ASPP)模块,得到图像级的特征。

4 实验验证

我们采用了在lmageNet上预训练的语义分割模型ResNet为框架,应用atrous卷积获取精细特征。回顾一下,输出步长定义为输入图像空间分辨率与输出分辨率的比值。例如,当输出步长为8的时候,最后两个模块(模块3和模块4先固定)在原来的ResNet中分别加入步长为2和步长为4的atrous卷积。我们在Tensorflow中实验。

我们在包含20个前景目标类别和1个背景类别的PASCAL VOC2012语义分割基准上测试了本文的模型,初始的数据集包括1464个训练集,1499个验证集,和1456个测试集,这些图片都有像素级的标注,数据集经过额外标注,现在有10582个训练图片。评价方法是计算平均21类的预测像素的准确率(IOU),即模型产生的目标窗口和原来标记窗口的交叠率。具体计算方法为:检测结果(DetectionResult)与Ground Truth的交集比上它们的并集。

4.1 训练规定

这部分我们讨论训练遵守的一些细节。

学习率公式:我们使用一个叫做“poly”的学习率公式,初始的学习率与 ( 1 − i t e r m a x i t e r ) p o w e r (1-\frac{iter}{max_iter})^{power} (1maxiteriter)power相乘,power=0.9。

裁剪尺寸:根据最开始的训练规定,每一批图片在训练之前都要裁剪。为了步长较大的atrous卷积能够发挥效果,需要裁剪出比较大的图片;否则的话,filter的权重将会主要乘在补零的区域中。因此我们在训练和测试PASCALVOC 2012数据集的时候使用513作为裁剪尺寸。

批次归一化:我们在ResNet上加入的模块都有批次归一化参数,我们发现这在训练中很有用。因为训练批次归一化参数需要每批的图片比较多,我们令输出步长为16。批次归一化参数训练得到衰减为0.9997。初始学习率为0.007,在训练集上训练3万次之后,我们固定了批次归一化参数,使用输出步长为8的时候,我们用小一点的初始学习率0.001,在离线的PASCAL VOC 2012 trainval上又训练了3万次。注意atrous卷积允许我们在不同的训练阶段控制输出步长的值,不需要学习额外的模型参数。还有注意当输出步长为16时训练速度要比输出步长为8时快好几倍因为中间的特征映射小了4倍,但是输出步长为16时特征映像会更粗糙,牺牲了精确率。

上采样预测结果:在我们之前的工作中,输出步长设置为8时,目标的真实结果被下采样了8倍。我们发现使真实结果保持原来的尺寸非常重要,因此需要上采样我们预测的结果,因为下采样真实结果会除去掉没有反向传播的很好的标注细节。

数据扩张:我们通过随机缩小或者放大输入图片(从0.5倍到2倍)和训练时随机左右反转图片来使数据扩张。

4.2 深入atrous卷积

首先我们实验了将更多的atrous卷积模块级联起来的效果。
ResNet-50:在表1,我们实验了输出步长改变对结果的影响。我们使用有7个模块的ResNet-50实验。正如表中所示的。当输出步长为256时(这时没有任何atrous卷积),因为信息的丢失,预测结果的表现比对照组差很多。当输出步长从256变到8的过程中,应用atrous卷积时,准确率就从20.29%提升到了75.18%,说明atrous卷积在语义分割中级联更多模块时非常重要。

在这里插入图片描述
表1。在将ResNet-50与block7和不同的output_stride配合使用时,通过无用的卷积进行深入研究。 采用output_stride= 8会导致更好的性能,但需要更多的内存使用量。

ResNet-50与ResNet-101对比:我们将ResNet-50换成更深的网络ResNet-101,改变了级联模块的数量。正如表2所示,随着级联更多的模块,准确率越来越好,但是效果提升速度是在下降的。注意,使用block7模块稍微降低了ResNet-50的表现,但对于ResNet-101的结果还是有提高的。

在这里插入图片描述
表2。使用ResNet-50和ResNet-101在输出步幅= 16时具有不同数量的级联块时,进行无穷卷积时会更深入。网络结构’block4’,‘block5’,'block6’和’block7’添加额外的0 ,1、2、3级联模块。 通常通过采用更多的级联块可以提高性能。

多网格:我们在ResNet-101上对几个级联的添加模块应用多网格方法,如表3所示。单元步长,Multi Grid= ( r 1 , r 2 , r 3 ) (r_1, r_2, r_3) (r1,r2,r3)被应用在所有添加的模块当中。正如表中所示,我们观察到使用多网格方法普遍比原来要好,单纯地加倍单元步长没有效果,同样使用多网格方法随着网络变深,效果也更好。我们最好的模型是7层 ( r 1 , r 2 , r 3 ) = ( 1 , 2 , 1 ) (r_1, r_2, r_3)=(1, 2, 1) (r1,r2,r3)=(1,2,1)
在这里插入图片描述
表3。在输出步幅= 16时使用具有不同级联块数的ResNet-101的多网格方法。最佳模型性能以粗体显示

在验证集上测试推广的策略:开始模型是在输出步长为16的基础上训练的,之后我们推断,用输出步长为8可以得到更多的特征映射的细节。如表4所示,当输出步长为8时,我们用之前表现最好的级联结构,7层 ( r 1 , r 2 , r 3 ) = ( 1 , 2 , 1 ) (r_1, r_2, r_3)=(1, 2, 1) (r1,r2,r3)=(1,2,1),准确率比步长为16时提高了1.39%。
加入缩小放大输入图片和左右翻转图片的操作之后,准确率进一步提高(放大比例有{0.5,
0.75,1.0,1.25,1.5,1.75})。特别地,我们将多个尺度和翻转图像计算出的平均值作为最终的计算结果。

在这里插入图片描述
表4.。验证集上的参考策略。 MG:多网格。 OS:输出步幅。 MS:测试期间的多量程输入。 Flip:添加左右翻转输入。

4.3 atrous空间金字塔池化

之后我们实验了实验了atrous空间金字塔池化(ASPP)模型,和之前模型的主要区别是这次我们使用了调好的批次归一化参数和图像尺度的特征。

ASPP:在表5中,我们实验了在第4模块包含多网格操作和图像级别特征的ASPP模型。首先我们固定ASPP=(6,12,18)(即在三个并行的3×3 atrous卷积分支规定步长分别为(6,12,18)),改变多网格的值。Multi_Grid=(1,2,1)的结果比Multi Grid=(1,1,1)
要好,不过这种步长下最好的MultiGrid=(1,2,4)。如果再加一个并行的步长为24的atrous卷积层来获取更大范围的上下文信息,准确率会稍微降低到0.12%。另一方面,在ASPP模型上加入图像级别的特征是有效的,最终准确率达到了77.21%。

在这里插入图片描述
表5。多网格方法和output_stride=16时的图像级特征的多孔空间金字塔池化。

在验证集上测试推广的策略:相似的,我们将模型的输出步长改为8。如表6所示,准确率增加了1.3%,加入缩小放大输入图片和左右翻转图片的操作之后,准确率进一步提高了0.94%和0.32%,ASPP最好的模型准确率为79.77%,比级联atrous卷积模型的最优值更高,因此选择ASPP作为我们最终的模型。

在这里插入图片描述
表6。 验证集上的参考策略:MG:多网格。 ASPP:Atrous空间金字塔池。 OS:输出步幅。 MS:测试期间的多量程输入。 Flip:添加左右翻转输入。 COCO:在MS-COCO上经过预训练的模型。

和DeepLabv2对比:v3的级联模型和ASPP模型在PASCAL VOC2012的验证集上表现都要比V2好,提升主要来自增加了调好的批次归一化参数和更好地编码多尺度上下文信息。

附录:附录中显示了更多的实验结果,例如超参数的影响和Cityscapes的结果。

定性结果:我们在图6中提供了最佳ASPP模型的定性视觉结果。如图所示,我们的模型能够很好地分割对象,而无需任何DenseCRF后处理。

Failure mode:如图6的下一行所示,我们的模型难以细分(a)沙发与椅子,(b)餐桌和椅子,以及(c)物体的稀有视图
在这里插入图片描述
图6。使用最佳ASPP模型时,val集合上的可视化结果。 最后一行显示failure mode。

测试集上的结果和有效的自助抽样法:我们注意到PASCALVOC2012数据集提供的标注信息比增加的数据集要更有质量,特别是自行车这一类。因此我们在测试集上测试之前先在PASCAL VOC 2012的训练集和验证集上进一步微调我们的模型。我们的模型是在输出步长为8的情况下训练的(因此标注细节得以保留),批次归一化参数固定。除此之外,与pixel hard example mining方法不同,我们用自助抽样法处理不好训练的图片。特别是,我们在训练集中复制了一些图片,包含的类别不好训练(自行车,椅子,桌子,盆栽和沙发)。如图7所示,自助抽样法对分割自行车很有效。最后,DeepLabv3在没有用全连接条件随机场预处理的情况下达到了85.7%的准确率,见表7。

在这里插入图片描述
图7。hard图像上的引导提高了稀有和带有注释的类(如自行车)的分割精度。

在这里插入图片描述

表7。PASCAL VOC 2012测试集的性能。

在JFT-300M上预训练模型:收到最近工作的启发,我们进一步使用了已经在ImageNet和FT-300M数据集上预训练的ResNet-101模型,结果在PASCAL VOC2012的测试集上达到了86.9%的准确率。

总结

我们的DeepLabv3模型使用了有着上采样filter的atrous卷积,来使特征映像更精确、捕获长跨度的上下文信息。特别是为了编码多尺度的信息,我们提出了级联模块使孔洞步长加倍,我们的atrous空间金字塔池化模型增大了图像级别的特征,探索filters的多个采样率和感受野。我们的实验结果表明DeepLabv3相较于之前的DeepLab模型有了极大的提高,达到媲美与其他模型在PASCAL VOC2012图像语义分割的性能。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值