轻量化分割模型-RTSEG
摘要
本文针对于实时网络分割,针对于编码和解码模块设计出了可以灵活替换的子模块,方便大家可以方便的替换编码或者解码模块,从而针对不同任务设计不同的网络结构。
Fig.1 RTseg结构图如图1所示,文章提出的实时的语义分割基准测试框架是一个编码-解码结构。作者指出之前的研究都是将网络作为一个整体来进行对比研究,而没有比较不同的模块之间的效果,因此不能使得研究者和网络搭建者去针对任务需求选择最适合的网络设计。通过将编码器和解码器进行解耦设计来分别对编码器和解码器进行设计。图1可以看出,作者在编码器模块,采用了VGG16、ResNet18、MobileNet和ShuffleNet。在解码器模块上使用的是UNet、SkipNet和Dilation Fronted。
解码器模块介绍
Fig.2 利用MobileNet作为编码器的不同解码器结构图2中是以MobileNet为编码器的不同解码结构,所有的网络结构中的下采样率都是32,下采样实现的方式是通过池化或者是改变卷积的步长实现的,这确保了不同的解码器结构具有统一的下采样率,以仅评估解码方法的效果。
图2(a)是SkipNet的解码结构,类似于FCN8s的结构,其中较高高分辨率的特征图通过1x1卷积来将通道数量减少到最终的类别数量,每一个通道都对应着一个类别。
图2(b)是UNet的解码结构,Unet结构提供的解码方式为:利用反卷积,将与下采样阶段对应的特征图进行上采样。上采样的特征图与下采样中有相同分辨率的特征图进行融合。逐级向上采样提供的精度比一次8倍向上采样的精度更高。目前采用的融合方法是逐元素相加,concatenation的方法可以提供更高的准确率,因为其确保了网络能够学习特征的加权融合,但是这样会增加计算量(concatenation会改变通道数量)。上采样之后的特征最后会接一个1x1的卷积来输出最后的逐元素分类。
对于Dilation Frontend的解码结构,文中并没有给出示意图,Dilation Frontend结构利用了空洞卷积来取代下采样。空洞卷积确保了网络能够保留足够的感受野的同时,不会降低特征图的分辨率。但是副作用就是计算量的增加,修改编码器网络使得下采样率从32变为8。下采样的减少是通过删除池化层或将步幅为2的卷积转换为步幅为1的卷积来完成的。然后,将池化或正常的卷积替换为两个空洞率为2和4的空洞卷积[3]。
实验结果
Fig.3SkipNet-MobileNet和UNet-MobileNet的速度对比 Fig.4 不同的解码-编码模块组合在cityscapes validation数据集上的对比从图4的实验结果可以看出,Dilation Frontend解码器的表现不如UNet,是因为Unet采用的是逐级向上采样,而DF采用的是一次性的八倍上采样。就网络而言,采用UNet进行增量上采样的方法可提供最佳的准确性。 但是,图3中的表2清楚地表明,SkipNet体系结构的计算效率更高,GFLOP减少了4倍。 这可以通过以下事实来解释:与SkipNet中只是将反卷积用在了最后的类比特征输出中,而UNet中的反卷积则是应用于特征空间中。 图4显示,粗略的预训练可将总体mIoU提高1-4%。 表现力不足的类别是受益于预训练模型的代表之一。
Fig.5不同网络在cityscappe测试集上的对比图5表明,在准确率上,Deeplab依旧是拥有最好的结果,但是在计算速度上却非常差,SkipNet-ShuffleNet相比于ENet,在准确率相差不大的同时,拥有更快的推理速度。SkipNet-ShuffleNet和SkipNet-MobileNet在速度和精度上都要完胜SegNet。