《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记

代码地址:ICNet

1. 概述

导读:这篇文章主要研究的是实时场景下的分割任务,现有的方法对于像素级分割是很难在较大比例上减少运算的计算量的。这篇文章对此提供了解决办法,提出了图像级联网络(Image cascade network,ICNet)去解决该问题,这里将输入图像按照尺寸划分为三个支路的输入,分辨率最小的支路的输出开始不断细化分割的结果,引入特征级联混合单元与cascade label guidance strategy快速实现分割,在Cityscapes、CamVideo与COCO-Stuff数据集上实现了单GPU实时分割。

文章中将文章提出的实时分割算法与现有的分割网络进行对比,得出的结果见下图,ICNet在速度与准确度上取得了较好的折中,达到了实时的需求,并且IoU>70IoU\gt70
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记
这篇文章提出的网络结构ICNet,该模型兼顾了低分辨下分割的效率与高分辨率下分割的质量。思想:首先让低分辨的图像经过语义分割网络产生粗糙的分割结果;之后特征级联混合单元(cascade label guidance)与标签引导的级联策略(cascade label guidance strategy)将中分辨率和高分辨率的特征整合,逐步地优化之前生成的粗糙分割结果

文章的主要贡献归纳如下:

  • 1)提出了新的单输入图像级联网络用于图像分割,它使用低分辨率的语义信息与高分辨的细节;
  • 2)使用特征级联混合单元与级联标签引导,在较低计算开销的情况下优化了结果;
  • 3)ICNet在推断速度上提升了5倍,所需要的内存开销也缩小了5倍,在分辨率为102420481024*2048的分辨率下也能实现帧率为30FPS的分割;

2. 网络结构设计

2.1 影响分割速度的原因分析

这里使用Φ\Phi来表示卷积操作,输入为VRchwV\in R^{c*h*w},输出为URchwU\in R^{c^{'}*h^{'}*w^{'}},卷积核大小为kk,其中满足:h=h/s,w=w/sh^{'}=h/s,w^{'}=w/s,那么总的计算量可以描述为:
O(Φ)=ck2wh/s2O(\Phi)=c^{'}k^2wh/s^2
因而对于PSPNet50中各个阶段的计算时间统计如下图所示,高分辨率预示着需要更多的计算量。stage5比stage4用时多是因为在channel上翻倍了。
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记

2.2 网络结构

《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记
文章提出的网络结构见上图所示,这里使用级联图像输入,输入在三个分支上逐渐减小。在结构的最上面的分支是使用PSPNet的特征提取网络,该网络是稠密的,但是由于网络的输入图像较小(产生的是原始图像132\frac{1}{32}大小的特征图),使得其计算量较少,花费19ms,0.6G显存。中间的分支与下面的分支由于采用的是轻量级的网络因而其花费的时间也并不是很长,而且中间分支与最上面的分支在一些层上实现了参数与计算的共享。

2.3 Cascade Feature Fusion

文中使用到的级联特征混合单元结构如下图所示:特征混合与特征校准。这里假设F1是网络结构如中的最上面的那条支路,F2就是中间的支路。这里首先F1支路经过上采样得到与F2与LABEL相同的特征分辨率。采样得到的结果首先经过一个分类卷积与LABEL分支进行特征校准;经过stride=2的膨胀卷积扩大感受野以和F2进行融合。F2经过一个映射卷积将其channel数目与F1持平,这样再将F1与F2的特征叠加起来得到的融合之后的特征。
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记

2.4 Cascade Label Guidance

这部分个人理解是用来做特征校准与网路训练,它们的分辨率是原始图像的116,18,14\frac{1}{16},\frac{1}{8},\frac{1}{4}大小。假设每个阶段的分辨率为ytxty_t*x_t,预测的结果用Fn,y,xtF_{n,y,x}^t表示,对应的标注结果用Fn^,y,xtF_{\hat{n},y,x}^t,这里的损失函数可以使用如下的形式表示:
L=t=1τλt1ytxty=1ytx=1xtlogeFn^,y,xtn=1NeFn,y,xtL=-\sum_{t=1}^{\tau}\lambda_t \frac{1}{y_t x_t}\sum_{y=1}^{y_t}\sum_{x=1}^{x_t}log\frac{e^{F_{\hat{n},y,x}^t}}{\sum_{n=1}^{N}e^{F_{n,y,x}^t}}

2.5 网络结构分析

文章提出的ICNet由于将低分辨率的图像输入到PSPNet这样的计算密集型网络中,从而减少计算量,之后再通过两个支路不断去精细化分割结果,这里将网络的结构与现有的一些网络结构进行对比:
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记

3. 实验结果

分割性能:
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记
消融实验:
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》论文笔记