Semantic Segmentation---DenseASPP for Semantic Segmentation in Street Scenes(论文解读十一)

Title:DenseASPP for Semantic Segmentation in Street Scenes

From:CVPR2018

Note data:2019/06/05
Abstract:ASPP基础上提出密集连接扩张空间金字塔池
Code :pytorch


目录

DenseASPP论文解读

1 Abstract

2 Introduction

3 Related work

4 Architecture

4.1 密集特征金字塔

4.2 更密集像素采样

4.3 更大的感受野

4.4 控制模型大小

5 Experiment

6 Conclusion


DenseASPP论文解读

1 Abstract

论文提出一种Street Scenes Segmentation模型:DenseASPP

网络结构:ASPP基础上提出密集连接扩张空间金字塔池

创新:类似与DenseNet将网络以密集方式进行连接,使得更大范围覆盖多尺度特征,且覆盖比例范围密集。

动机:提升街景分割准确率

由于街景的物体差异性大,正确编码对尺度信息的意义上的高级特征是非常困难的。使用扩张卷积(Atrous Convolution)能够在不牺牲特征空间分辨率的同时扩大特征接收野,DeepLab系列工作结合多尺度信息和扩张卷积的特点提出了ASPP模块,将不同扩张率的扩张卷积特征结合到一起。但对于街景分类任务来说,并不能达到很好的效果,所以提出了密集型的ASPP,DenseASPP模型。


2 Introduction

从FCN在语义分割任务中取得的优异表现说起,使用池化层导致特征图减小,再用上采样恢复分辨率 。扩展卷积的出现解决了在特征图尺寸与感受野之间的矛盾问题。多尺度信息有助于解决模糊情况并有助于图像分类。 为此,ASPP(如下图) 提出连接由不同扩张速率的卷积生成的特征图,以便输出特征图中的神经元包含多个感知字段大小,这些字段大小编码多尺度信息并最终提高性能。  

                   

论文中提出高分辨的街景图像要求更大的感受野,以此同时需要足够大的不同尺度的扩张率。但随着扩张率增加(d>24),扩张卷积的衰退衰减无效了(deeplab3中提到)。所以利用densenet编码多尺度信息的同时获得足够大的感受野的表现,将其融合进ASPP网络中。(Densent论文解读

                                          

但因为密集连接,特征的通道数会急速上升,DenseNet中使用1×1的卷积用于降低通道数,限制了模型大小和计算量,同样的,在本文中也使用了多个1×1卷积用于降低参数,限制计算量。

DenseASPP包含了一个基础网络,后面接了一个多级的扩张卷积层,如下图所示:

            

使用密集连接的方式将每个扩张卷积输出结合到一起,论文使用扩张率(d<24),通过一系列的扩张卷积组合级联,后面的神经元会获得越来越大的感受野,同步也避免了过大扩张率的卷积导致的卷积退化。

并且通过一系列的扩张卷积组合,特征图上的神经元对多个尺度的语义信息做编码,不同的中间特征图对来自不同尺度的信息做编码,DenseASPP的最终输出特征不仅覆盖了大范围的语义信息,并且还以非常密集的方式覆盖了做了信息编码。

总结,论文的主要贡献在于:

  • DenseASPP能够生成覆盖非常大的范围的接收野特征
  • DenseASPP能够以非常密集的方式生成的特征

需要注意的是,上述两个特性不能通过简单的并行或级联堆叠扩张卷积实现。


3 Related work

在introduction中介绍了一些相关的工作,主要是围绕着感受野与特征图之间的矛盾展开。之前的工作为了获取更大感受野的特征会使用下采样(或池化),但这会降低特征的分辨率,虽然获得特征的内部不变性但丢失了很多细节。DeepLab系列使用了扩张卷积获取更大感受野的同时保持图像的分辨率,并进一步提出了ASPP模块结合了多尺度信息,与此类似有PSPNet结合了不同尺度的池化信息。论文提出的DenseASPP结合了平行和级联的扩张卷积优点,在更大范围内生成更多尺度的特征。

DenseASPP是DenseNet的特例,可以看做是所有扩张率设置为1,这分享了DenseNet的优点,包括缓解了梯度消失的问题和大幅度减少参数。


4 Architecture

街景环境中不同尺度的目标需要捕捉不同尺度的特征。DeepLabv3给出了两个策略:

  • backbone:级联的扩张卷积(这和DRN,HDC是一个思想),逐渐获取到大的感受野特征
  • ASPP:同一输入上并行的扩张卷积组合,将输出级联到一起

ASPP表示如下:  

                                   

可以看到扩张卷积级联起来,并且扩张率逐渐的增加,前面的层扩张率较低,后面的层扩张率较大。这和DenseNet的连接非常相似,DenseASPP的最终输出是由多扩张率、多尺度的扩张卷积生成的特征组成。可以将DenseASPP用如下公式表示: 

                                               

其中dl表示l层的扩张率,[...]表示级联concat操作。表示连接来自前面所有层的输出。与原先的ASPP模块相比,DenseASPP堆叠了所有扩张卷积并做了密集连接。这主要能带来2个收益:

  • 密集的特征金字塔(denser feature pyramid)
  • 更大的接收野(larger receptive field.)

4.1 密集特征金字塔

更密集的采样: DenseASPP的一个关键设计是使用密集连接,以实现具有不同扩张率的各种层的集合。 每个集合相当于不同规模的核,即不同的感受野。 因此,我们得到的特征图比ASPP中有更多的尺度。 扩张能够增加卷积核的感受野。 对于具有膨胀率d和核大小K的卷积层,等效的感受野大小为:

                                                    

假设我们有两个卷积层,滤波器大小分别为K 1和K 2,新的感知域是:

DenseASPP由包含扩张率为3,6,12,18的扩张卷积,每组数字的表示扩张率的组合,长度表示等效的卷积核大小,kk表示实际的接收野,如下所示:

                                   

4.2 更密集像素采样

下图(a)显示了一个传统的一维扩张卷积,扩张率为6,接收野为13:       

                        

这么大的接收野条件下,只有3个像素被采样了用于计算,这样的情况下二维的情况下会更糟,虽然得到了更大的接收野,但是在计算的过程中丢弃了大量的信息。

上图(b)是扩张率3和扩张率为6的组合,和原先的扩张率为6的卷积(a)相比,(b)有7个像素参与了计算,计算更加密集。这在二维的情况下(c)有49个像素有助于计算。较大扩张率的卷积可从较小扩张率卷积中获得帮助,使得采样更为密集。

DenseASPP的情况大不相同。在DenseASPP中,扩张率逐层增加,上层中的卷积可以采用来自较低层的特征,并使像素采样更密集。图4(b)说明了这个过程:膨胀率为3的扩张层放在具有膨胀率6的层下面。对于扩张率为6的原始扩张层,7个像素的信息将有助于最终计算,比原来的3个像素更密集。在二维情况下,49个像素将有助于最终预测,而在标准的单层扩张卷积中,仅贡献9个像素。
当扩张率变大时,这种现象变得更加明显。图4(c)示出了2D版本的现象。具有较大膨胀率的卷积层可以从具有较小膨胀率的滤波器获得帮助,并以更密集的方式对像素进行采样。

4.3 更大的感受野

原先的ASPP是四个分支并行处理前馈,而densenetASPP模块通过跳层共享了连接信息,大和小扩展率的卷积相互依赖,构成密集特征金字塔的同时也获得了更大的感受野。

Rmax表示特征金字塔最大感受野,函数Rkd表示卷积核带下为K的扩张率为d,那么ASPP(6,8,12,24)最大的感受野有:

                                          

而相对的DenseASPP(6,12,18,24)的最大接收野为: 

                                        

4.4 控制模型大小

前面我们提到关于DenseNet通过使用1*1卷积减少通道数来降低扩张卷积带来的弊端。作者将这个也引入DenseASPP中来减少特征图数。假设每个扩张卷积输出n 的特征图,DenseASPP有C0个特征图作为输入,在第 的1*1的卷积之前的第Cl个输入特征图,则:

                                                              

在扩张卷积之前的1×1卷积将通道数降低为c0/2个通道,论文对DenseASPP中所有的扩张卷积层设置了n=c0/8。DenseASPP中所有参数可计算为:

                                      

其中L表示扩张卷积的层数,K表示卷积核大小。例如DenseNet121有512个通道,则n设置为64。又因为每个扩张卷积之前都会有一个1×1的卷积层用于减少通道数到256。因此,DenseASPP输出具有832个通道,参数比相应的DenseNet121要小很多。


5 Experiment

实验细节:

论文在PyTorch上实现,基本主干是在ImageNet上预训练,论文移除了后面两个池化层和分类层,对后面的层使用可扩张率为2和4的扩张卷积(这和DRN的处理方式一样)。修改后的ConvNet的输出是原输入的1818,后面接DenseASPP然后上采样与ground truth做cross entropy。

           

各个模型中各类别分类结果

DenseASPP

论文使用了ResNet101为主干,配合DenseASPP(6,12,18,24)模块,在验证集上的结果如下,可以看到DenseASPP显著的提升了结果:

                                 

可视化结果:

Detailed study on DenseASPP components

不同的DenseASPP设置得到的结果如下:

                                  

Comparing with state-of-the-art
论文在DenseNet161的基础上在精标签的数据上做训练,使用了多尺度{0.5,0.8,1.0,1.2,1.5,2.0}{0.5,0.8,1.0,1.2,1.5,2.0},与现有的先进模型对比,最终的结果如下:

                                      

Ablation Studies
论文研究了接收野大小和尺度/像素的采样率。                         

Feature similarities
可以看到下面两个例子,有足够的上下问才能够准确分类:

                             

Visualization of receptive field
配合的移除后续池化层的可视化结果:

DenseASPP和ASPP对比的接收野如下:

                                         

6 Conclusion

论文融合了DenseNet与ASPP两个经典网络的优点,在Cityscapes上取得了最优的结果。也给我们一种启示,每个模型提出的方法解决的问题也可能用在自己的工作中,在别人模型基础上利用其他模型idea上搭建自己的模型或许取得更加好的效果!

发布了106 篇原创文章 · 获赞 158 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_41997920/article/details/90903830