今天最好的表现,是明天的最低要求。
论文:DFANet: Deep Feature Aggregation for Real-Time Semantic Segmentation
github:https:///huaifeng1993/DFANet
论文提出了速度和精度完美平衡的新的语义分割网络结构DFANet,即Deep Feature Aggregation,也就是进行了深度的特征聚合的网络结构。DFANet比现有的语义分割网络减少了8倍的计算量,速度提升2倍。在Cityscapes测试集上取得了70.3%的mIOU。比ENet的速度要快,精度要高不少。
主要贡献:
- 刷新了实时的低计算量的实时语义分割的记录。比现有的工作减少8倍的计算量,速度快2倍。
- 提出了一个新的具有多次连接结构的语义分割编码模块。
- 该结构提供了一种更好的方法去最大化多尺度感受野的使用。多次的融合修正底层特征和高层特征,并且保证计算量增加很少。
- 更改Xception网络结构,增加FC通道的attention,从而确保感受野。而计算量增加很少。
特征重复利用模块:
(a)使用多个分支来进行多尺度的特征抽取并且保留图像的空间细节。但是这种方法缺乏对由并行分支结合而成的高级特征的处理,另外,并行分支的特征缺乏信息交流,还有,在高分辨率图像上额外添加分支对速度有影响。
(b)使用空间金字塔池化(SPP)模块来处理高级特征(图b)。但是这种方法非常耗时。
(c)对网络输出进行上采样,然后用另一个子网络对特征进行精炼,feature maps在更大的分辨率上进行精炼同时能够学到亚像素的细节。但是这种方法,随着整个结构深度的增长,高维度特征和感受野通常会出现精度损失。
(d)所有的子网络有相似的结构,stage-level方法通过conat相同分辨率的层精炼产生多阶段的上下文信息。
网络结构:
DFANet包含3个组成部分,
轻量化的基础结构(lightweight backbones)
子网络融合模块(sub-network aggregation)
子网络聚合在网络层级进行高级特征的结合。通过将上一个bacebone的输出上采样4倍,然后输入到下一个backbone中,实现子网络聚合。子网络聚合对高级特征进行处理,用以进一步评估和重新评估更高阶的空间关系。
子stage融合模块(sub-stage aggregation)
子阶段聚合在阶段层级进行语义合空间信息的融合。在子网络相同深度下对不同阶段进行特征融合。具体的,就是前一个子网络的某个阶段输出是下一个子网络对应阶段的输入。
网络输入为1024*1024,整个结构一共进行了6次的下采样。网络输出大小为256*256,经过双线性插值,还原为1024*1024。网络一共包含3个stage。各个层级的特征最后汇总到一个解码器(decoder)输出逐像素的结果。实际使用时可按需求定制输入分辨率与塔的级数,从而灵活调节计算量与效果。
Xception网络结构:
论文修改了2个版本的Xception结构,分别为Xception A,Xception B。
实验结果:
总结:
DFANet,一个轻量快速的实时语义分割网络结构,效果由于ENet,速度快于ENet。