DFAnet:Deep Feature Aggregation for Real-time Semantic Segmentation自己翻译的

DFANet是为实时语义分割设计的一种新方法,通过深度特征聚合策略融合不同深度的特征。它采用轻量级主干网络,结合子网络和子级聚合模块,实现高分辨率图像的快速且精确分割。实验表明,DFANet在Cityscapes和CamVid数据集上与现有方法相比,以更低的计算量和更快的速度实现了相当的准确率。
摘要由CSDN通过智能技术生成

DFAnet:Deep Feature Aggregation for Real-time Semantic Segmentation

原始论文Li H, Xiong P, Fan H, et al. Dfanet: Deep feature aggregation for real-time semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 9522-9531.

Abstract

一、从单一的轻量级主干出发,通过子网络和子级连接分别聚合识别特征
二、基于多尺度特征传播,DFANet极大的减少了参数数量,同时保持了有效的感受野,并且增强了模型的学习能力
三、在数据集Cityscapes 和 CamVid 进行测试,与state-of-art方法比较,以少于8倍的计算量和两倍快的速度提供了相当的准确率
四、在Cityscapes上实现了70.3%的平均IOU,同时只有1.7GFLOPS,在一块NVIDIA Titan X上达到了160FPS,当图片分辨率更高时,能以3.4GFLOPs达到71.3%的平均IOU

1 Introduction

语义分割:目的是给图片中所有的像素赋予密集标签
之前的语义分割方法:
1、A deep convolutional encoder-decoder architecture for image segmentation.
2、Speeding up semantic segmentation for autonomous driving
3、Real-time semantic image segmentation via spatial sparsity.
4、Bisenet: Bilateral segmentation network for real-time semantic segmentation
5、Icnet for real-time semantic segmentation on high-resolution images.
6、Enet: A deep neural network architecture for real-time semantic segmentation.

动机(motivation):在高分辨率地形图上的操作在U型结构中花费了大量的时间,一些工作通过限制输入图片的size来减小计算复杂度,或者通过减少冗余通道,虽然有效,但是会损失边界和小物体周围的空间细节,同时浅层网络也会削弱特征识别能力
其他方法采用多分支框架结合空间细节和上下文信息。然而,在高分辨率图像上的额外分支限制了速度,分支之间的相互独立性限制了这些方法的模型学习能力。
在主流的语义分割架构中,采用金字塔式的特征组合步骤,如空间金字塔池[34][5],利用高层上下文来丰富特征,同时导致计算成本的急剧增加。
此外,传统方法通常从单个路径体系结构的最终输出中丰富特征映射。在这种设计中,高层上下文缺乏与前面的层特征的结合,而前面的层也保留了网络路径中的空间细节和语义信息。
为了同时增加模型的学习能力和感受野,特征重复利用是一个非常自然的想法,这促使我们去寻找一个轻量级的方法,将多层级上下文合并到编码特征中

我们的工作:在我们的模型中部署了两个策略去实现层级间的特征聚合,第一,我们重用从主干提取的高级特征来弥补语义信息和结构细节间的差距;第二,我们结合网络结构处理路径不同阶段的特征来增强特征的表达能力。

DFANet包含三个部分:
轻量级主干、子网络聚合和子级聚合模块。
轻量级主干:由于depthwise separable卷积被证明在实时推断中是最有效的,因此我们修改Xception网络作为主干网络,为了追求更好的准确性,我们在主干网络的尾部附加了一个全连接的注意模块,以保留最大的接受域。
子网络聚合:子网络聚合的重点是将前一个主干的高级特征映射上采样到下一个主干的输入,以细化预测结果。
子级聚合模块:子阶段聚合通过“粗”部分和“细”部分组装对应阶段之间的特征表示。
在这三个模块之后,采用卷积和双线性上采样操作组成的小型解码器,将各个阶段的输出结合起来,得到由粗到精的分割结果。

主要贡献:
1、创造了实时语义分割计算量的最低记录,与已存在的最好的网络相比,有少于8倍的FLOPs并且快两倍
2、提出了一个全新的分割网络结构,有多个相互连接的编码流,以纳入高层次的上下文编码的特点。
3、的结构提供了一种更好的方法来最大限度地利用多尺度接受域,并在计算量略有增加的情况下多次细化高级特性。
4、修改了Xception中枢,增加了FC的注意层,以增加接收区,而不增加额外的运算。

2 Related work

实时语义分割:SegNet利用一个小的架构和池化指示策略来减少网络参数;ENet考虑减少下采样次数,以追求一个非常紧凑的框架。由于它忽略了模型的最后阶段,所以该模型的接受域太小,无法正确地分割较大的对象;ESPNet利用新的空间金字塔模块;ICNet使用多尺度输入图片和级连网络来增加有效性;BiSeNet引入了空间路径和语义路径来减少计算量;我们在特征空间中增强了单一模型的能力来保留更多的细节信息

深度分离卷积:(深度卷积紧接着点卷积)此操作减少了计算成本和参数数量,同时保持了类似(或稍好一些)的性能。

高层特征:分割任务中的关键问题是接受域和分类能力,在一般的编码器-解码器结构中,编码器输出的高级特征描述了输入图像的语义信息。PSPNet、DeepLab series、PAN应用一个额外的操作来结合更多的上下文信息和多尺度特征表示。空间金字塔汇聚已经被广泛地应用于为整体场景解释提供良好的描述符,特别是对多尺度的各种对象。这些模型在多个基准上显示了高质量的分割结果,但通常需要大量的计算资源。

上下文编码:SE-Net通过对信道信息的挖掘来学习信道级的注意,在图像分类方面取得了很好的效果,注意机制成为深度神经网络[3]的有力工具。可以将其视为一种信道选择,以改进模块的特征表示。EncNet[32][20][6]引入了上下文编码来增强基于编码语义的逐像素预测。在本文中,我们还提出了一个全连接模块来提高骨干性能,这对计算影响很小

特征聚合:传统方法采用单路编解码器网络来解决像素间的预测问题。随着网络深度的增加,如何在块与块之间聚合特征值得进一步关注。RefineNet[17]不是简单的跳过连接设计,而是在编码器和解码器之间的每个上采样阶段引入一个复杂的细化模块来提取多尺度特征。另一种聚合方法是实现密集连接。最近在[13]中提出了密集连接的概念用于图像分类,并将其扩展到[14][28]中的语义分割。DLA[31]扩展了该方法,开发了更深层次的聚合结构,增强了特征表示能力。

3 Deep Feature Aggregation Network

在实时语义分割任务中应用最近的语义分割方法时,我们首先对计算量进行观察和分析,这促使我们的聚合策略需要结合特征提取网络的不同深度位置的细节和空间信息,DFANet结构如下所示(img-oB3NJMW2-1571837203133)(media/15717121061376/15717969442153.jpg)]
###3.1 观察
首先简要看一下分割网络的结构
在这里插入图片描述
对于实时推理,[33][29]应用多分枝来实现多尺度提取并保证图像空间细节,如BiSeNet[29]提出用浅层网络处理高分辨率图片,同时利用快速向下采样的深度网络来平衡分类能力和接受野的关系,这种架构如图2(a)所示。这种方法的缺点非常明显,这些模型缺乏对来自并行分支的高级特征的处理,因为它仅仅实现了卷积层来融合特征,此外平行分支间的特征缺乏交流,而且在高分辨率图片中额外的分支会限制速度的提升。
在语义分割任务中,空间金字塔模块是一个处理高层特征常用的方法(图2b)。空间金字塔的能力是提取高层语义上下文并增加感受野。但是空间金字塔通常很消耗时间。
通过上面方法的启发,首先用上采样网络的输出并用一个子网络来细化特征图来替换高层操作,如图2c所示。与空间金字塔模块不同,特征映射在更大的分辨率上进行细化,同时学习子像素的细节。然而,当整体架构变深时,由于特征流是单路径的,高维特征和接受域往往会出现精度损失。
因此,我们提出了阶段级方法来传递低层特征和空间信息以进行语义理解,如图2d所示。因为这些子网络具有相似的结构,因此可以通过将具有相同分辨率的层连接起来来生成多级上下文,从而产生阶段级细化。我们提出的深度特征聚合网络旨在利用网络级和阶段级的特征。

3.2深度特征聚合

我们的关注点是融合网络中不同深度的特征,我们的聚合策略由子网络聚合和子阶段聚合。
子网络聚合:子网络聚合在网络层级实现高层特征的结合。根据上面的分析,我们通过主干网络的堆叠来实现我们的架构,即将前面主干网络的输出输入到下一个主干网络。另一方面,子网络聚合可以被看为一个细化处理。主干网络定义为: y = Φ ( x ) y=\Phi(x) y=Φ(x) ,编码输出 Φ n \Phi_{n} Φn是编码 Φ n + 1 \Phi_{n+1} Φn+1的输入,因此子网络聚合可以表示为:
Y = Φ n ( Φ n − 1 ( … Φ 1 ( X ) ) ) Y=\Phi_{n}\left(\Phi_{n-1}\left(\ldots \Phi_{1}(X)\right)\right) Y=Φn(Φn1(Φ1(X)))
相似的想法在[21]中也有介绍,网络结构由堆叠的编码-解码器构成的沙漏网络。子网络聚合允许这些高层特征被再次处理来进一步评估和重新评估高阶空间关系。
子阶段聚合:子阶段聚合的关注点是融合多个网络间阶段级语义和空间信息,随着网络深度的增加,空间细节的精度会有损失。通常的方法,像U型结构在解码器模块中实现跳跃连接来恢复图像细节。然而,编码器模块越深越会损失低层特征和空间信息,无法对大尺度的各种对象和精确的结构边缘进行判断。并行分支设计采用原始分辨率和降低分辨率作为输入,输出是大规模分支和小规模分支结果的融合,而这种设计缺乏并行分支之间的信息通信。
我们的子阶段聚合通过编码周期来合并特征。我们在相同深度的子网络中进行不同阶段的融合。前一个子网络中某一阶段的输出贡献给下一个子网络相应阶段位置的输入。
对于一个主干 Φ n ( x ) \Phi_{n}(x) Φn(x),一个阶段处理可以被定义为 ϕ n i \phi_{n}^{i} ϕni

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值