ICNet for Real-Time Semantic Segmentation on High-Resolution Images

代码地址:https://github.com/hszhao/ICNet
论文地址:https://arxiv.org/abs/1704.08545

1. Introduction

  本文的贡献是利用低分辨率图像的处理效率和高分辨率图像的高推断质量,并提出图像级联框架来逐步细化分段预测。这个想法是首先让低分辨率图像通过完整的语义感知网络来获得粗略的预测图。然后提出的级联融合单元引入中高分辨率图像特征,并逐步改进粗略语义映射。

  • ·提出了图像级联网络(ICNet),该网络利用低分辨率的语义信息以及高分辨率图像的细节。
  • ICNet实现了5倍以上的推理加速,并将内存消耗减少了5倍以上。
  • 提出的快速语义分割系统可以以30.3 fps的速度以1024×2048的分辨率运行,同时实现高质量的结果。

2. Related Work

Fast Semantic Segmentation

  快速语义分割在对象检测中,速度成为系统设计中的一个重要因素。近来 Yolo 和SSD 大大改善了它。相反,在语义分割中研究高推断速度的研究刚刚开始。 SegNet 放弃一些层来减少层参数,ENet是一个轻量级的网络。这些方法大大提高了效率。但准确性令人担忧。

Video Segmentation Architectures

  最近的Clockwork 给出了稳定的视频输入,重用了特征图。深层特征流是基于小规模光流网络将特征从关键帧传播到其他特征流。我们注意到当一个高精度的快速图像语义分割框架出现时,视频分割也将受益。
  本文的工作为快速的语义分割提供了分层结构。它本质上与 Refinenet中的方法不同,后者侧重于在单个正向通道中融合来自不同层的特征以提高性能。相反,我们的图像级联网络采用级联图像作为输入来加速推理并构建实时分割系统。

3. Time Analysis

3.1. Time Budget

  除了图像分辨率,网络的宽度和卷积核数量也影响着运行时间,比如在stage4和stage5特征图的空间分辨率一样,但是stage5 的运行时间是stage4的4倍,因为stage5的卷积核数量是stage4的两倍。

3.2 Intutive SpeedUp

  输入下采样:图像分辨率是影响速度的最关键因素,因为以上分析显示,与全分辨率图像相比,半分辨率图像仅使用四分之一时间。一种简单的方法是将小分辨率图像用作输入,我们测试比例为1/2和1/4的下采样图像,并将生成的图像输入基于FCN的框架,如PSPNet。获得预测后,我们直接将其上采样到原始大小。
  特征下采样: 除了直接对输入图像进行降采样以外,另一个直接的选择是在推理过程中按较大的比例缩小功能图。 FCN 对其进行了32倍取样,DeepLab 进行了8倍下采样。我们使用1:8,1:16和1:32的下采样比测试PSPNet50。较小的特征映射可以以牺牲预测准确度为代价产生更快的推断。丢失的信息同样包含在低层次的信息中。另外,考虑到即使使用1:32比例的最小特征图,系统在推断中仍然需要大约131ms。实时分割的目标仍然存在差距。

ICNet for Real-Time Semantic Segmentation on High-Resolution Images_第1张图片

   模型压缩: 对于每个滤波器,首先计算滤波核权重weights的L1的和;然后,对L1和进行降序排序,仅保留前k个更有意义的值.试验对比如表2所示:
ICNet for Real-Time Semantic Segmentation on High-Resolution Images_第2张图片

4. Our Image Cascade Network

4.1. Main structures and Branches

ICNet for Real-Time Semantic Segmentation on High-Resolution Images_第3张图片

低分辨率

  低分辨率所提出的框架如图所示。缩放1的输入全分辨率图像在缩放1/2和1/4的缩放后生成两个较低分辨率的图像。这些级联图像分三路输入我们的ICNet。对于最低分辨率输入,它通过顶级分支,这是一个基于FCN的PSPNet架构。由于输入尺寸仅为原始尺寸的四分之一,因此卷积层相应地缩小了1/8的比例尺特征贴图,并且产生了原始空间尺寸的1/32。然后使用几个膨胀的卷积层来放大接收场而不下采样空间尺寸,输出具有原始尺寸1/32尺寸的特征图。

中分辨率

  对于1/2尺寸的中分辨率图像,它在第二个分支中处理。通过几个降采样率为8的卷积层,输出特征图的大小为原始图的1/16。为了将1/16大小的特征图与顶部分支中的1/32大小的特征图融合,我们提出了一个将在本文后面讨论的级联特征融合(CFF)单元。这种融合产生了具有原始分辨率1/16的组合特征映射。值得注意的是,卷积参数可以在1/4和1/2分辨率输入之间共享,从而节省了计算量并减少了参数数量。

高分辨率

  对于高分辨率图像,与第二个分支中的操作类似,它由几个卷积层处理,降采样率为8,得到1 / 8尺寸特征图。由于中分辨率图像已经恢复了低分辨率图像中缺失的大部分语义上有意义的细节,因此我们可以安全地限制处理高分辨率输入时的卷积图层数量。
  这里我们只使用三个卷积层,每个卷积层的内核大小为3×3,步幅2将分辨率减小到原始输入的1/8。与分支2中描述的融合类似,我们使用CFF单元在第三分支中以全分辨率合并先前CFF单元的输出和当前特征地图。最后,我们得到原始地图尺寸的1/8。

级联标签引导

  对于每个分辨率下的输出特征映射,我们首先将其上采样2倍,这将在稍后描述CFF单元时详述。为了加强学习过程,我们采用级联标签引导策略。它使用1 / 16,1 / 8和1/4的地面真值标签来指导低,中和高分辨率输入的学习阶段。在测试阶段,简单地放弃低和中指导操作,只保留高分辨率分支。这种级联标签指导在降低推理成本的同时不会降低我们的最终结果的准确性非常有效。
  该级联标签制导策略授予每个分支的辅助学习促进,使得梯度优化更加平滑以便于训练迭代。随着每个分支学习能力的增强,最终的预测图远没有被任何一个分支支配。同时,在测试期间放弃引导部分是效率方面的一种收益。

4.2. Branch Analysis

ICNet for Real-Time Semantic Segmentation on High-Resolution Images_第4张图片

  同时,在我们的ICNet中,最深层的网络结构最多只适用于低分辨率数据,能够有效地提取大多数语义信息。因此,即使超过50层,推理操作和内存消耗也不大,分别为18ms和0.6GB。以下部分的实验分析将说明更多的统计数据。
  分支2中有17个卷积层,分支3中只有3个卷积层。通过这些少量的控制层来处理中值和高分辨率的输入数据,来自分支2和3的推理操作总数受到很好的约束。与此同时,分支2中的卷积层与第一分支共享权重和计算。因此,使用两个分支仅花费6ms来构建融合特征映射。
  第三分支层次更少。虽然分辨率很高,但分支三的推断时间仅为9毫秒。通过所有这三个分支,我们提出的ICNet成为一个非常高效和内存友好的体系结构

4.3. Difference from Other Cascade Structures

  其他几个分割框架也纳入了多尺度结构。 FCN 和DeepLab-MSC 对多分辨率预测图进行求和以生成最终得分图。 SegNet 和UNet在去卷积过程中采用跳跃连接来开发中层特征.LRR 应用了金字塔重建架构,其中特征地图从下到上重建。RefineNet 使用远程剩余连接融合来自不同层的多路径特征映射。
  我们注意到这些方法专注于融合来自单一尺度输入或多尺度输入的不同层的特征。所有输入数据都通过整个网络。考虑到高分辨率输入,它们都面临着昂贵计算的同样问题。我们的ICNet使用低分辨率输入通过主语义分割分支并采用高分辨率信息来帮助细化,这些方法在性质上与所有这些方法都不同。重新绘制的特征地图大大减少,同时仍然保持必要的细节。

5. Cascade Feature Fusion and Final Model

ICNet for Real-Time Semantic Segmentation on High-Resolution Images_第5张图片

  为了结合来自不同分辨率图像的级联特征,我们最终提出了如图6所示的级联特征融合(CFF)单元。该单元的输入包含三个分量:分辨率为H1×Wi×C1和H2×W2×C2的两个特征地图Fi和F2,真实标签分辨率为H2×W2×1.F2的尺寸是 F1的尺寸的2倍。上采样应用于使Fi尺寸与F2相同。然后应用一个尺寸为3×3和膨胀1的扩张卷积层来改善上采样特征。
  这种扩张卷积可以组合来自多个原始相邻像素的特征信息,而直接上采样使得每个像素仅取决于一个位置。与原始特征的去卷积操作相比,扩张卷积只需要小的内核。在我们的实现中,对于特征F2,利用具有内核大小1×1的投影卷积层以与特征Fi的输出相同的尺寸来投影它。
  然后使用两个批处理标准化层来标准化这两个特征。接着是具有'SUM'操作和'ReLU'层的元素层,我们得到融合特征F,其具有与F2相同的分辨率。为了加强对Fi的学习,我们对上采样的Fi使用辅助标签指导。如[33]中的辅助损失权重设置为0.4。

5.1. The Loss Function

  三个分支分别由三个损失:L1,L2,L3


6. Experimental Evaluation

  我们的网络结构对PSPNet进行修改。我们将金字塔池模块中的拼接操作改为求和,从而将特征长度从4096减少到2048.我们将金字塔合并后的卷积层中的内核大小从原始3×3更改为1×1。它对最终准确度影响不大,但可以大量节省计算量。为了训练超参数,最小批量大小设置为16.基本学习率为0.01,采用“聚”学习速率策略,power为0.9,最大迭代次数为30k。动量为0.9,weight decay为0.0001。数据增加包含随机镜像和调整大小在0.5和2之间。

你可能感兴趣的:(ICNet for Real-Time Semantic Segmentation on High-Resolution Images)