实时语义分割对比_实时语义分割对比


论文地址 :FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation 工程地址:github 链接

1. 摘要

  时下的语义分割模型通常在主干网络中使用扩展卷积来获得高分辨率的特征图,但是这样做会增加计算复杂度和内存占用。该论文提出了一种新型的联合上采样模块JPU(Joint Pyramid Upsampling)以取代扩张卷积,该方法有效降低了计算复杂度和内存占用,能够在多种已有模型中应用,并且不损失甚至会对最终精度有一定的提升。

2. 简介

  语义分割时计算机视觉的基本任务之一,其目标是为图像的每一个像素点进行。现有方法大多应用了全卷积神经网络(FCN)来完成这一任务,但是全卷积网络的原始网络是为图像分类任务设计的,通过逐步下采样(stride conv和池化层)得到一个富含语义信息但是分辨率很低的特征图,如下图所示,全卷积网络对原始图片进行五次典型的下采样得到原始图片实时语义分割对比_语义分割_02大小的特征图。

实时语义分割对比_深度学习_03

  为了获得最终的高分辨率特征图,一些方法将原始的FCN作为编码器来获取深层语义信息,增加解码器模块以融合来自编码器的多各层次的特征图以获取高分辨率特征图,如下图所示,如Unet,SegNet等。

实时语义分割对比_深度学习_04

  更进一步的,DeepLab方法一处FCN最后两层下采样操作并引入扩张卷积来保持特征图感受野不变,后跟一个多尺度的语义模块从而得到最终效果,如下图所示,其中扩张卷积在保持最终特征图的分辨率方面作用明显,大大提升了编解码语义分割方法的分割精度,然而正如摘要中提到,扩展卷积大大增加了计算复杂度和内存占用,限制了其在实时问题上的应用。

实时语义分割对比_计算机视觉_05

  该论文针对这一问题对出了新型的联合上采样模块JPU,在OS=32的FCN上应用得到了OS=8的高分辨率特征图,通过一系列的实验证明,在计算复杂度和内存占用都显著减少的同时模型精度并无明显降低。
  综合来看论文的主要贡献在于:

  • 新型的JPU模块来取代时空复杂度较高的扩张卷积
  • 计算时间和内存显著降低的同时模型精度有所上升
  • 在多个通用数据集上取得了SOTA效果

3. 方法

3.1 DilatedFCN

  

3.2 论文中使用的方法的框架

  为了获得分辨率更高的最终特征图,DilatedFCN移除了原始FCN中后两层下采样操作,并添加扩张卷积。该论文则要寻找能够取代这种操作并且在不损精度的条件下提速的方法来获得与DilatedFCN相同的高分辨率特征图,为此,论文首相将DialtedFCN移除的下采样层还原,如下图所示,文中方法的主干网络和原始FCN相同,五次下采样操作每次都缩小两倍,为了获得和DilatedFCN相同尺寸的特征图,应用JPU模块,它融合Conv3,4,5三层特征图,通过多尺度语义模块后得到最终的预测结果。

实时语义分割对比_语义分割_06

3.3 Joint Pyramid Upsampling

  论文提出的JPU模块用于生成与DilatedFCN相通尺寸的特征图,该问题可以视为联合上采样,这样可以通过CNN来解决这一问题。

3.3.1 背景

联合上采样 给定一个低分辨率的目标图实时语义分割对比_实时语义分割对比_07和一个高分辨率的引导图实时语义分割对比_实时语义分割对比_08,联合上采样的作用是将引导图中的细节和结构信息转化到目标图中以生成高分辨率的目标图。形式化来说,实时语义分割对比_实时语义分割对比_07是有低分辨率的引导图实时语义分割对比_实时语义分割对比_10通过转化实时语义分割对比_卷积_11实现的,即实时语义分割对比_深度学习_12。给定实时语义分割对比_实时语义分割对比_10实时语义分割对比_实时语义分割对比_07,需要一个实时语义分割对比_计算机视觉_15来逼近实时语义分割对比_卷积_11,其中实时语义分割对比_计算机视觉_15的计算复杂度要远低于实时语义分割对比_卷积_11,比如说实时语义分割对比_计算机视觉_15是多层感知机,那么实时语义分割对比_卷积_11就是线性变换。高分辨率目标图实时语义分割对比_实时语义分割对比_21则通过实时语义分割对比_计算机视觉_15来获得,即实时语义分割对比_语义分割_23,最终联合上采样模块可以定义为:
实时语义分割对比_卷积_24

实时语义分割对比_语义分割_25是所有可能转化的集合,||实时语义分割对比_实时语义分割对比_26||是预定义的距离矩阵。

实时语义分割对比_计算机视觉_27

扩张卷积 如上图所示,是一维的扩张率等于2的空洞卷积,1) 将输入特征实时语义分割对比_实时语义分割对比_28根据索引分为两组实时语义分割对比_深度学习_29实时语义分割对比_卷积_30;2) 用相同的卷积分别处理输出得到输出实时语义分割对比_计算机视觉_31实时语义分割对比_语义分割_32;3) 将两个输出融合得到实时语义分割对比_卷积_33

带有stride的卷积 如下图所示:

实时语义分割对比_语义分割_34

3.3.2 重新定义联合上采样

实时语义分割对比_实时语义分割对比_35,通过如下公式得到DilatedFCN的输出实时语义分割对比_卷积_36
实时语义分割对比_深度学习_37

实时语义分割对比_计算机视觉_38
实时语义分割对比_计算机视觉_39

实时语义分割对比_卷积_40分别代表普通卷积,扩张卷积和带有stride的卷积,实时语义分割对比_实时语义分割对比_41是n层普通卷积,实时语义分割对比_计算机视觉_42分别代表split,merge和reduce操作。
  综上,给定实时语义分割对比_实时语义分割对比_35实时语义分割对比_计算机视觉_38,与实时语义分割对比_卷积_36相同的特征图实时语义分割对比_计算机视觉_46可以由如下公式得到:
实时语义分割对比_语义分割_47

3.3.3 使用CNN来解决这一问题

实时语义分割对比_实时语义分割对比_35的条件下生成实时语义分割对比_深度学习_49,然后实时语义分割对比_语义分割_50的特征聚合在一起去学习一个映射实时语义分割对比_计算机视觉_51,最后,通过卷积模块得到最终预测实时语义分割对比_计算机视觉_46,由此设计了如下图所示的JPU模块,首先每一个输入特征图都通过一个普通卷积块(a)以:1)通过实时语义分割对比_实时语义分割对比_35生成实时语义分割对比_深度学习_49;2)将实时语义分割对比_卷积_55进行降维。这样所有的结果维度相同以更好地融合和降低计算复杂度。

实时语义分割对比_计算机视觉_56

实时语义分割对比_卷积_57(b),实时语义分割对比_卷积_57通过多尺度语义模块,其中空洞率为1的平行连接用于捕获实时语义分割对比_卷积_59其他部分的关系,如下图所示,其他空洞率的平行连接用于学习用于将实时语义分割对比_卷积_60转化为实时语义分割对比_计算机视觉_38的映射实时语义分割对比_计算机视觉_51,如下图中的绿色部分。这样JPU就可以学习多尺度的特征以获得更好的性能,这与ASPP不同,在于该方法只利用了最后一个特征图的信息。

实时语义分割对比_语义分割_63

实时语义分割对比_深度学习_64的映射关系与实时语义分割对比_卷积_59其他部分的映射关系,之后通过又一个普通卷积块将特征图转化为最终的预测结果,即c过程。
  该论文提出的JPU模块解决了两个问题:

  • 根据Conv3对Conv4进行上采样
  • 根据采样之后的Conv4对Conv5进行上采样。

4.实验结果

实时语义分割对比_语义分割_66


  

实时语义分割对比_语义分割_67


  

实时语义分割对比_计算机视觉_68


  

实时语义分割对比_计算机视觉_69


  

实时语义分割对比_深度学习_70


  

5. 结论

  论文比较了扩张卷积和带有stride的卷积,将获取高分辨率的图像的任务转化为联合上采样问题,并用JPU代替扩张卷积在不损失精度的情况下大幅度降低了计算复杂度和内存占用,在两个语义分割通用数据集ADE20K和Pascal Context上都取得了STOA效果。