Semantic Segmentation---DFANet:Deep Feature Aggregation for Real-Time Semantic Segmentation(论文解读十)

Title:DFANet:Deep Feature Aggregation for Real-Time Semantic Segmentation
Note data:2019/06/05
Abstract:提出的网络从单个轻量级骨干网开始,分别通过子网和子站级联聚合判别特征。基于多尺度特征传播,DFANet大大减少了参数的数量,但仍然获得了足够的感受野,提高了模型学习能力,在速度和分割性能之间取得了平衡。
Code :pytorch


目录

DANet论文解读

1 Abstract 

2 Introduction

3 Related work

4 Architecture

4.1 概况

4.2 深度特征聚合

4.3 网络结构

5 Experiment

6 Conclusion


 

DANet论文解读

1 Abstract 

论文提出一种Real-Time Semantic Segmentation模型:DFANet

网络结构:基于CNN架构的一种实时语义分割网络DFANet

创新:提出的网络从单个轻量级骨干网开始,分别通过子网和子站级联聚合判别特征。

动机:在速度和分割性能之间取得了平衡

本文介绍了一种极为有效的CNN架构DFANet,用于资源约束下的语义分割。我们提出的网络从单个轻量级骨干网开始,分别通过子网和子站级联聚合判别特征。基于多尺度特征传播,DFANet大大减少了参数的数量,但仍然获得了足够的感受野,提高了模型学习能力,在速度和分割性能之间取得了平衡。 Cityscapes和CamVid数据集上的实验证明了DFANet的优越性能,其FLOP比现有的最先进的实时语义分割方法少8倍,速度提高了2倍,同时提供了相当的精度。具体而言,它达到了70.3%的平均IOU城市风景
测试数据集在一块NVIDIA Titan X卡上只有1.7 GFLOP和160 FPS的速度,在更高分辨率的图像上推断时,具有3.4 GFLOP的71.3%平均IOU。


2 Introduction

语义分割任务中精度跟速度是我们要求的。在之前的一些工作中,浅层高分辨率特征图在U型结构上耗时过多,有些工作尝试缩小输入图像尺寸或者减少通道数来提速,有效但是损失了边界和小物体的位置细节信息,而且较浅的网络得到的特征图上有判别力的信息不足,为了克服这些问题,有些方法采用了多分支的结构组织空间细节和上下文信息。但是在浅层高分特征图上还是速度过低,而且各分支相互独立,造成学习能力的不足。
论文中作者使用两种策略来在模型中实现跨级别的特征聚合。 首先,重用从骨干中提取的高级特征来弥合语义信息和结构细节之间的差距。 其次,将网络体系结构处理路径中不同阶段的特征结合起来,以增强特征表示能力。

 论文复制轻量级框架以验证了特征聚合方法。提出的深度特征聚合网络(DFANet)包含三个部分:

  • 轻量级网络框架,
  • 子网络聚合
  • 子阶段聚合模块。

由于深度可分卷积被证明是实时推理中最有效的操作之一,因此作者将Xception网络修改为backbone结构。为了追求更高的准确性,在backbone末端添加了一个基于注意力机制的全连接模块,以保留最大的感受野。子网络聚合侧重于将先前backbone的高级特征映射上采样到下一个backbone的输入以改进预测结果。从另一个角度来看,子网络聚合可以被视为在像素分类中由粗略到精细的过程。子阶段聚合通过“粗略”部分和“精细”部分组装相应阶段之间的特征表示。它通过组合具有相同尺寸的层来提供感受野和高维结构细节。在这三个模块之后,采用由卷积和双线性上采样操作组成的轻量解码器来组合每个阶段的输出以生成粗略到精细的分割结果。所提出的网络的体系结构如图3所示。

论文主要贡献:

  • 获得了实时和低计算量的语义分割上的新记录。与现有工作相比,网络可以提供高达8倍的FLOP和2倍的更快速度,并且具有更高的准确性。
  • 提供了一个全新的分段网络结构,其中包含多个互连的编码流,以将高级上下文合并到编码的功能中。
  • 提供了一种更好的方法,可以最大限度地利用多尺度感知字段并多次优化高级特征,同时计算负担略有增加。
  • 通过添加FC感知层来修改Xception backbone,以增加感受野,几乎不需要额外的计算。

                                 


3 Related work

从实时分割,深度可分卷积,高级特征,上下文编码,特征聚合几个方面介绍相关的一些工作。

实时分割

SegNet 利用小型架构和汇集指数策略来减少网络参数。 ENet考虑在追求极其紧凑的框架时减少下采样次数。 由于它会丢弃模型的最后阶段,因此该模型的感知区域太小,无法正确分割较大的对象。 ESPNet 执行新的空间金字塔模块以提高计算效率。 ICNet 使用多尺度图像作为输入和级联网络来提高效率。 BiSeNet 引入了空间路径和语义路径来减少计算。 在ICNet和BiSeNet中,只有一个分支是用于特征提取的深度CNN,而其他分支用于构成分辨率细节。 与这些方法不同,我们在特征空间中增强单个模型容量以保留更多详细信息。

深度可分卷积

深度可分卷积(深度卷积后跟逐点卷积)是最近许多神经网络设计中采用的有力操作。 该操作降低了计算成本和参数数量,同时保持了相似(或略微更好)的性能。 特别是,我们的backbone网络基于Xception模型,它表现出了语义分割任务的准确性和速度方面的效率。

高级特征

在通用编码器 - 解码器结构中,编码器输出的高级特征描绘了输入图像的语义信息。主要由于空间金字塔的广泛应用在场景中,适用于对尺度的各种对象。

上下文编码

SE-Net以学习渠道关注并在图像分类中取得优异表现,使得注意力机制成为深度学习有力的工具。在近期的论文中出现的大多数模型也都将注意力机制应用在模型中并取得了优异的表现。

特征聚合

  • 在编码器和解码器之间的每个上采样阶段引入一个复杂的细化模块,提取多尺度特征;
  • 另外一种方法就是密集连接

在图二中说明了这几种较为经典的模型方法结构。


4 Architecture

4.1 概况

之前的一些工作应用多个分支来执行多尺度提取并保留图像空间细节。 例如,BiSeNet 提出了一种用于高分辨率图像的浅层网络过程和一种具有快速下采样的深度网络,以在分类能力和接收域之间取得平衡。 结构如图2(a)所示。 然而,这些方法的缺点显而易见,这些模型缺乏处理由并行分支组合的高级特征,因为它仅仅实现了卷积层以融合特征。 此外,功能缺乏并行分支之间的通信。 此外,高分辨率图像上的附加分支限制了速度的加速。

在之前的介绍中说到金字塔池化模块对处理高级语义特征有显著的效果,图二(b),其主要是提取语义上下文并增加感受野。但这个过程使得网络更加耗时!所以在这篇论文中,通过对网络输出进行上采样并用另一个子网络优化特征映射来替代高级操作,图二(c)。与金字塔模块(SPP)不同,特征图在更大的分辨率上得到细化,并且同时学习子像素细节。但这种处理随着网络结构深度的加深,高维特征和感受长会损失,因为特征流是单一路径的!

基于这些提出了阶段极的方法(图二(d)),以便将低级特征和空间信息传递给语义理解。由于这些子网络都具有相似的结构,因此可以通过相同的分辨率连接层来生成阶段级细化,以生成多阶段上下文。提出的深度特征聚合网络目的就是利用网络级和阶段级结合的功能。

4.2 深度特征聚合

聚合策略由子网络聚合和子阶段聚合方法组成。

子网络聚合   子网络聚合在网络级别实现了高维特征的组合。基于上述分析,我们通过将前一个backbone的输出提供给下一个backbone,将我们的体系结构实现为一堆backbone。 从另一个角度来看,子网络聚合可以被视为一种细化过程。 backbone运行过程可定义为y =Φ(x),编码器Φn的输出是编码器Φn+ 1的输入,因此子网聚合可以表示为:Y =Φn(Φn-1(...Φ1( X)))。子网络聚合允许再次处理这些高级特征,以进一步评估和重新评估更高阶的空间关系。

子阶段聚合  子阶段聚合侧重于在多个网络之间的阶段级融合语义和空间信息。 随着网络的深度增长,空间细节遭受损失。 常见的方法,如U形状,实现了跳过连接以恢复解码器模块中的图像细节。 然而,较深的编码器块缺乏低级特征和空间信息,无法在大规模的各种对象和精确的结构边缘进行判断。 并行分支设计使用原始和降低的分辨率作为输入,输出是大规模分支和小规模分支结果的融合,而这种设计缺乏并行分支之间的信息通信。我们提出的子阶段聚合通过编码周期来组合特征。 我们在相同深度的子网络中进行不同阶段的融合。 详细地说,前一子网中某一级的输出有助于相应级位置中下一个子网的输入。

对于单个backboneΦn(x),阶段过程可以定义为\Phi_{n}^{i}。 前一个骨干网的阶段是\Phi_{n-1}^{i}。 i表示stage的索引。子阶段聚合方法可以表述为:

                                 x_n^i=\left\{\begin{matrix} x_n^{i-1}+\Phi_n^i(x_{n}^{i-1}) &n=1 \\ [x_{n}^{i-1}, x_{n-1}^{i}]+\Phi_n^i( [x_{n}^{i-1}, x_{n-1}^{i}])& otherwise \end{matrix}\right.

                                    x_{n-1}^i=x_{n-1}^{i-1}+\Phi_{n-1}^{i}(x_{n-1}^{i-1})

传统方法是学习F(x)+x对x_{n}^{i-1}的映射。在我们提出的方法中,子阶段聚合方法是在每个阶段的开始学习[x_{n}^{i-1}, x_{n-1}^{i}]的残差公式。

对于n> 1的情况,在第n层网络的第i阶段的输入是通过将第(n-1)层网络中的第i级输出与第n层网络中的第(i-1)级输出相结合得到的,然后第i阶段学习[x_{n}^{i-1}, x_{n-1}^{i}]的残差表示。 x_{n}^{i-1}具有与x_{n-1}^{i}相同的分辨率,并且我们实现级联操作以融合特征。

我们始终保持特征从高分辨率流向低分辨率。 我们的公式不仅学习了第n个特征图的新映射,还保留了(n  -  1)个特征和感受野。 信息流可以通过多个网络传输。

4.3 网络结构

基本的网络结构还是以往的分割常用的编码解码结构,再将我们前面说的子网聚合和子阶段聚合堆积而成。这里没有太多需要解释的,在以往的语义分割论文中多次提及这种结构!


5 Experiment

实验细节:

项目                                                         属性
数据集                     Cityscapes (2048*1024) CamVid(960*720)
优化器                                                        SGD
batchsize                                                         48
学习率与权重衰减      初始2e-1 ,momentum 0.9  weight decay 1e − 5
损失函数                                                 cross-entropy
数据增强                               水平翻转,随机裁剪(0.75-1.75)
Xception预训练                                               ImageNet-1k

在不同的骨干网络实验:

                            

模型间的对比:

                              

特征聚合

                             

                              

与其他模型的比较:

在其他数据集上与其他模型的比较

                                          

6 Conclusion

尽管DFANet在不同数据集上表现优异,且在分割的准确率与速度上取得了最优的表现。但给人一种模型堆叠的感觉,且模型的灵感给自动化出身的我来说这就是控制系统里的反馈网络的结构,不断的反馈,网络自适应的调整。思考会不会最后发展成经典控制那样。。。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值