代码地址1:LEDNet official
代码地址2:LEDNet unofficial
1. 概述
导读:这篇文章提出的方法LEDNet是用于解决实时场景下的分割任务的,该网络是采用非对称的编解码器结构。具体的,采用ResNet网络作为主干网络,在每个残差块中使用channel split与shuffle减少计算量(shufflenet的思想);在解码器中使用attention pyramid work(APN)来降低网络的复杂度。最后得到的网络参数量少于1M,在CityScapes数据集上单GPU上能够飚到71FPS。
这篇文章的主要贡献:
- 1)提出了非对称的网络结构LEDNet,减少了网络的参数同时也加快了运行时间;
- 2)残差块中的channel split与shuffle操作利用了网络的大小与强大的空间表达能力,并且channel shuffle是可微的,也就能端到端训练;
- 3)在解码器中采用attention机制的Attention Pyramid Network(APN),减少了整个网络的复杂度;
2. 网络设计
2.1 网络结构
文章提出的网络结构见下图所示,很明显是一个非对称的编解码器结构。
详细的网络设计见下表所示:
其中,Downsampling Unit是将stride为2,kernel大小为
3
∗
3
3*3
3∗3的卷积输出与Max Pooling的输出叠加起来实现下采样的。在解码器的APN模块中使用参数设置为
3
∗
3
,
5
∗
5
,
7
∗
7
+
s
t
r
i
d
e
为
2
3*3,5*5,7*7+stride为2
3∗3,5∗5,7∗7+stride为2的三个卷积去产生特征金字塔,之后金字塔特征与编码器输出特征进行点乘融合,再经过Attention操作使得特征得到增强,最后通过上采样得到分割的结果。
2.2 Split与Shuffle的残差块
一般来讲高精度语义分割是计算密集的而且需要较大的memory,对此现有的现有的克服方法大概有两种:网络剪裁压缩与卷积因式分解。文章针对残差块的问题(bottleneck)与channel shuffle(并不适用于轻量级网络)做出了改进得到下图中(d)的残差块结构:
使用SS-nbt模块带来的好处是:
- 1)模块的计算高效,使得可以增加更多的特征的channel数量,
- 2)该模块在输出端才进行channel shuffle可以被认为是一种feature reuse,这样可以在不显著增加网络复杂度的同时提升网络的表达能力。
3. 实验结果
网络的性能与现有的实时分割网络的性能比较:
各个分类的分割性能比较: