论文笔记:ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation

1 摘要

语义分割的落地(应用于嵌入式设备如手机、可穿戴设备等低功耗移动设备)是一个很重要的问题,而最近提出的网络中,虽然有着较高的准确率,但是其实时性不强,也就是训练、推理的速度太慢,无法应用于真实的应用场景中。针对以上问题,作者提出了ENet,在保证较高准确率的基础上还能保证网络更轻量,更快,适合部署在手机等可移动嵌入式设备。经过测试,ENet在CamVid, Cityscapes 和 SUN等数据集中均达到当时的SOTA( state-of-the-art:最好效果)。

2 亮点

2.1 initial模块和bottlebeck模块

本文中,构成ENet的基本单元是initial模块和bottlebeck模块。

2.1.1 initial模块

initial模块作为图像输入先进行处理的模块,可以说是一个图像的前处理模块。如下图:
在这里插入图片描述
原始输入图像为3x512x512,分别经过13x3x3的卷积核以步长为2的方式去提取特征图;一个最大池化层,一开始就使用池化层进行下采用目的是刚开始的输入图像存在很多冗余信息,池化前后对最终的准确率影响不大但是却能一开始就避免使用很多冗余的信息。然后一个经过13x3x3的卷积核+池化后3x256x256的图像进行通道数的拼接得到16x256x256的特征图,初始化模块的作用更多的是进行了提前下采样。

2.1.2 bottlebeck模块

网络的编码和解码部分都是由bottlebeck模块基本组成。如下图:在这里插入图片描述
bottlebeck模块分成两个分支,主分支由一个带填充的最大池化层组成;次分支由1x1卷积核、PReLU、conv(conv代表普通卷积、对称卷积、空洞卷积中的任意一个)、Regularizer(文中尝试使用过多种正则化方法,包括L2、stochastic depth、Spatial Dropout等,最终使用Spatial Dropout效果最好)。主分支和次分支分别得到的结果最终进行融合则为一个bottlebeck模块。

2.2 PReLU

在每一层后面使用ReLU有时候并不一定都能提高准确率,在ENet中,使用ReLU反而使得准确率变低,作者分析了ReLU没有起作用的原因是网络架构深度,ENet层数很少,较少的层需要快速过滤信息,所以作者换了一个激活函数——PReLU。
在这里插入图片描述
在上图显示的是随着层数深度的增加,PReLU的权值的变化趋势,大概到了76层,权重会上升,也就是效果慢慢变差,所以PReLU在浅层网络更能发挥作用。

2.3 普通卷积、非对称卷积、空洞卷积混合使用

在编码器结构中,不同的bottleneck所使用的conv类型不同,主要由普通卷积、空洞卷积、非对称卷积。
在这里插入图片描述
在ENet结构中交叉使用各个卷积可以相互弥补各个卷积的缺点,如普通卷积感受野小但是采集小尺寸特征更有优势。空洞卷积能够以普通卷积同样的参数获得更大的感受野,更适合提取大尺寸的特征,但是对小尺寸特征不敏感而且容易损失信息的连续性。非对称卷积就是对一个nxn的卷积进行拆解成为先进行 n×1 卷积再进行 1×n 卷积,这两个结果是等价的但是能降低一定的运算量。关于非对称卷积可以参考:

为什么非对称卷积减少了运算量?

2.4 ENet总体结构

ENet的总体结构如下图:
在这里插入图片描述
为了节省处理冗余信息的计算资源,输入图片经过initial模块先把图片进行一个下采样,再经过后面的bottleneck模块处理。其中在编码器阶段,也就是bottleneck2.x阶段,混合使用了各种卷积。在之前的网络中,编码器和解码器通常是对称的,但是作者指出,编码器的作用是特征提取,而解码器的作用是对解码器的结果进行放大和一些细节的精调,因此解码器的规模可以相对减小,因此ENet的解码器相对来说规模较小。在解码阶段,也就是bottleneck4.x和bottleneck5.x阶段,上采用的方式使用的是反池化方式,就是SegNet中使用的通过记录池化的位置进行位置上的最大值的恢复。而最后的使用fullconv为全卷积。

3 效果

在这里插入图片描述
因为SegNet是当时最轻量和最快的网络了,所以作者选择ENet与SegNet进行比较,可见ENet在fps和推理速度都更快。
在这里插入图片描述
上图为网络大小以及参数的对比,ENet都更轻量。
在这里插入图片描述
上面为I在Cityscapes中,IoU方面的对比。
在这里插入图片描述
上图为ENet在Cityscapes数据集的分割效果。

4 结论

相比与DeepLab,SegNet等网络,虽然有着较高的准确率,但是却由于其参数量比较大,训练推理的速度相对较慢,可移动设备比较难跑等,而ENet这种轻量快速且有不错准确率的结构更适合部署在可移动低功耗设备中。

5 参考资料

(1)ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation
(2)【图像分割模型】快速道路场景分割—ENet
(3)为什么非对称卷积减少了运算量?

发布了24 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gyyu32g/article/details/104355183