【图像分割论文阅读】ICNet for Real-Time Semantic Segmentation on High-Resolution Images
文章由香港中文大学、腾讯优图实验室、SenseTime研究院联合完成,发表于2018ECCV
论文地址:ICNet for Real-Time Semantic Segmentation on High-Resolution Images
背景
这篇文章聚焦于具有挑战性的实时图像分割任务。实际的应用中如何减少像素级的标签预测时的大量冗余计算仍然十分困难的。作者提出一种Image cascade network,ICNet
图像级联网络,通过综合多分辨率支路以及合适的标签指导信息解决这个问题。
作者开篇指出:相较于高质量的语义分割任务所取得的非凡成就,研究如何使语义分割任务在不过多牺牲精度的前提下使它更快却已落在后头
。但是对于许多实际问题在评估系统性能的时候确实非常关键的,如自动驾驶、人机交互、在线视频处理甚至是移动计算等领域。
文章中有一些图片非常实在,信息量非常大。如图:
作者在实验中发现,处理一张resolution=1024 X 2048
的图像,使用精度很高的模型如ResNet38
和PSPNet
,在Nvidia TitianX GPU
上需要大约1s中。上图横坐标代表每秒能够处理的图片张数,纵坐标代表分割精度,对于当下现存的模型,如精度较高的模型。如PSPNet、ResNet38
虽然精度高,但是处理速度不够高;另一方面,处理图像的速度较高的模型,如SegNet、ENet、SQ
等,它们的分割精确的在60%以下,相对来说精度在实时分割任务中很低。而作者本文提出的方法ICNet
能够在保持30+fps
处理速度的前提下得到高达70%+
分割精确度的效果。模型是准确度和效率之间的权衡
。
本文的贡献在于:
- 提出
ICNet
模型,有效整合了低分辨率和高分辨率的语义信息。 - 通过级联特征融合以及级联标签指导,能够以较低的计算开销重建并优化分割预测。
- 推理速度提升5倍,存储开销减少5倍。对于高分辨率
1024*208
大小分辨率的图片,处理速度高达30FPS+
并取得高精度的分割结果。
相关研究
作者从三个角度分析图像分割任务:
- 高质量的语义分割:
主要是以FCN
为基础模型,通过使用dilated convolution
提升感受野,如deepLab系列
。编解码器结构整合高层次的语义信息以及低层的空间信息,主要有SegNet、DeconvNet
等。也有不少人通过整合多尺度的特征信息提升分割精确度。此外,通过CRF、MRF
等概率图模型作为后处理手段提升边框的精细程度。凡此种种,还有许多… - 高效语义分割:
主要是指在处理速度上的高效。包含目标检测领域中的典型模型。如YOLO系列、SSD
,指出图像分割领域的发展滞后。其中ENet
以丢失精度的前提下,提升了图像的处理速度。
视频语义分割:
视频的每一帧中包含许多减少计算开销的冗余信息。常用的模型有:ClockLock、FSO、NetWrap
等方法。[没看过这方面的论文,所以不赘述]
模型设计
PSPNet的时间开销
首先阐明本文中使用的baseline=PSPNet
。作者通过分析PSPNet模型各阶段的处理时间提出了自己的方法。如下图:
可以看到的是,PSPNet
模型中第五阶段的运行时间开销是第四阶段的4倍,这两个阶段的特征图大小均为原始图像大小的1/8.。出现上图的原因是第五阶段中的input-channel以及倍增了kernel数
,使得该阶段的卷积核数量为第四阶段的4倍。作者分析模型的时间复杂度为:
作者实验中通过调整下采样输入、下采样特征、以及模型压缩试图缩减PSPNet
的运行速度。
网络框架
整体过程
注意到上图中有三个通道组成了cascade image input
,自顶而下分别是低分辨率、中分辨率、高分辨率图像
,分别由原始图像经过1/4、1/2、1下采样得到。
1)从上到下第一个通道,将原始图像下采样得到的1/4
大小的图像输入PSPNet
中经过下采样率=8
的网络后得到大小为原始图像的1/32
大小的特征图。
2)从上到下第二个通道,将原始图像下采样得到的1/2
大小的图像输入PSPNet
中经过下采样率=8
的网络后得到大小为原始图像的1/16
大小的特征图。
3)从上到下第一个通道,将原始图像输入PSPNet
中经过下采样率=8
的网络后得到大小为原始图像的1/8
大小的特征图。
注意到第一层得到的原始图像1/32
大小的特征图以及1/16
大小的label guidance
输入到CFF
模块中;以及第二层得到的原始图像1/16
大小的特征图以及1/8
大小的label guidance
输入到CFF
模块中.最后的第三层中经过的二个CFF
得到的特征图经过经过系数为2的上采样后得到原始分辨率1/4
大小的特征图,此时参考大小为1/4
的label guidance
之后以系数为4进行上采样得到最终结果。这里的CFF = csacade-feature-fusion
,意为级联特征融合。
整个模型中只有最上层的通道,也就是低分辨率的输入大大减少了计算量。而高分辨率的输入是为了重建以及修正模糊边界以及丢失的细节信息。
cascade-feature-fusion,CFF
CFF模块用以整合级联特征。级联融合单元和级联标签指导策略将中高分辨率特征融合,逐步细化粗粒度语义图。
对F1层代表的是上一层得到的特征图,F2代表本层CFF
操作前得到的特征图。这里CFF
的内部操作是对上一层的大的特征图进行采样率为2的上采样,然后使用kernel=3x3,d=2
的空洞卷积,然后于本层的特征图融合作为CFF
模块的输出;另一方面,利用这个上层特征图和label guidance
进行一个softmax操作
,生成loss值,指导网络学习过程。其中loss定义如下:
实验
作者在三个数据集上验证了其方法的有效性。包含Cityscapes、Cam Vid、COCO-Stuff
。其中三个数据集中的图像分辨率为:Cityscapes = 1024x2048;Cam Vid = 720x960;COCO-Stuff = 640x640
.,实验环境:MaxWell TitianX GPU、CUDA 7.5、CUDNN V5
intuitive speedup
作者通过尝试着通过输入降采样、分辨率降采样以及模型压缩三种方式减少PSPNet-50
处理时间。
- 输入降采样:
作者采用了三种降采样系数,0.25、0.5、1。得到的结果如下图,输入下采样系数高的话,速度快但是得到的特征图稀疏并且丢失了许多小而重要的信息。如,降采样率为4时,丢失了图中的交通灯、人群。 - 特征图下采样
对特征图降采样时,纵然会加速运行速度,但是mIoU
下降很明显。另外,即使是对特征图进行1:32的降采样,其推理速度也仅仅是131ms,这还不够。
级联支路
下图对比使用不同级联支路在各项指标上得到的结果。其中sub4、sub24、sub124
分别代表使用低、低中、低中高分辨率支路的预测结果。
级联结构
作者分析级联过程中的具体操作,包括卷积核、CFF
单元、cascade label guidance
的作用,如下:
方法对比
与其他方法的比较;
起始最开始的图已经反映出了ICNet的效果.