ICNet读书笔记

来源:互联网 发布:手机本地端口查看 编辑:程序博客网 时间:2024/06/05 16:52
本文主要提出了一个实时性的语义分割网络,兼顾速度的同时也保证了准确率。

本文提出的模型利用了低分辨率图片的高效处理和高分辨率图片的高推断质量两种优点。主要思想是:让低分辨率图像经过整个语义网络输出一个粗糙的预测,然后利用文中提出的cascade fusion unit来引入中分辨率和高分辨率图像的特征,从而逐渐提高精度。

本文首先分析了速度的分析。因为和PSPNet是同一个作者,所以他也是基于PSPNet进行了比较。经过分析,本文认为影响速度最重要的因素是图像分辨率,进而总结了提高速度的方法,分别是:对输入降采样,对特征降采样,或者进行模型压缩。

对于输入进行降采样主要是压缩图像的大小,将图片压缩到原来的1/4,1/2与原图的结果进行比较。

对于特征进行降采样主要是压缩前向卷积后的特征图,按比例1:8,1:16,1:32进行降采样。

对于模型进行压缩主要是减少每一层滤波器的个数,在本文中,对于每层每个滤波器(卷积核),我们首先计算其核权重L1的和。然后按照降序排列这些L1和,只保留最重要的。

通过分析,最后得到影响速度最重要的因素是图像分辨率。于是作者设计了一个结构,让低分辨率的图片作为输入进行预测,让中高分辨率的特征参与提升精度。
低分辨率图像:低分辨率图像首先通过一个基于FCN的PSPNet结构(卷积结构),最后输出原图1/32大小的featureMap,然后使用几个dilated convolution layer来扩大特征图个数但不减小特征图的大小。最后输出原图1/32大小的featureMap。
中分辨率图像:中分辨率图像同样先通过一些卷积层,得到原图1/16大小的featureMap,然后把这些featureMap和前面1/32大小的特征图进行融合,作者这里提出了一个cascade feature fusion (CFF) unit,在后续会讲到。最后这个单元输出一个原图1/16大小的融合特征。
高分辨率图像:同样进入一些卷积层,最后得到原图1/8大小的featureMap,由于前面的中分辨率图像已经补全了低分辨率中的一些有意义的细节特征,因此可以减小处理高分辨率的卷积层的数量。
这里使用了3层卷积层,其中每层都是3*3大小,步长为2的卷积核。同样的,我们把输出的原图1/8大小的featureMap同前面的融合特征通过CFF进行融合,最后得到原图1/8大小的融合特征。
级联的标签指导:为了加强学习过程,本文采用级联标签指导策略。它使用1/16,1/8和1/4的正确标签来指导低,中,高分辨率的特征学习。在测试阶段,简单地放弃了低和中分辨率的指导操作,只保留高分辨率的指导操作。这种级联标签指导对于减少时间成本是惊人的,而不会削弱最终结果的准确性。

本文还分析了低中高每一条分支的卷积层数量,其中低分辨率拥有最多的层,而中分辨率拥有大概17层,高分辨率只有3层。这大大节省了时间,并且在准确度上,也并没有很大的下滑。

介绍CFF结构:这个CFF单元有三个输入,两个特征图F1,F2以及级联标签。因为F2的空间维数是F1的两倍,所以先对F1进行上采样得到和F2同等大小。然后采用一个核大小为3×3dilated卷积层和delation1(不太懂这是啥)以改进F1上采样特征。这种dilated卷积层可以组合来自几个原始相邻像素的特征信息,而直接上采样使得每个像素仅依赖于一个位置。与对原始特征进行的反卷积操作相比,dilated卷积只需要很小的核。对于F2,使用核大小1×1的投影卷积层来投影其具有与特征F1的输出相同的大小。然后加入batch normalization layers来归一化这两个特征,最后在加入一个“相加”层和“ReLu”层,最后的输出F2'和F2具有相同的分辨率。为了强化F1特征的学习,加入级联标签来辅助F1特征的学习。

给出损失函数:L=λ1L1+λ2L2+λ3L3.

其中L1,L2,L3是每一分支的softmax交叉熵损失而λ1,λ2,λ3分别为他们的权重.

最后,文章还对网络进行了模型压缩,再次提速。最终,该模型能达到实时进行语义分割处理,同时有较高准确率。




0 0
原创粉丝点击