好长一段时间没有和大家见面,但是在学习群里,大家每天都是非常活跃的进行着学术邻域的探讨,今天算是四月的初始,又是一个清爽明媚的季节,在这个样的季节中,大家一定都有很大的动力,去学习去科研去努力去进步!今天给大家分享的是这个系列的最后一篇——DeepLab V3。
论文下载地址:http://arxiv.org/abs/1706.05587
代码地址:https://github.com/tensorflow/models/tree/master/research/deeplab.
简要介绍
接下来简单介绍下带孔卷积的内容。
带孔卷积(Atrous convolution)
Atrous convolution, 即dilated convolution, 它主要是通过移除网络最后几层的降采样操作以及对应的滤波器核的上采样操作,来提取更紧凑的特征,相当于在不同的滤波器权重之间插入holes,其决定了DCNNs计算的特征的分辨率,而不增加新的额外学习参数。
常见的多尺度处理如下:
DeeplabV3
接下来我们来主要讲讲主要的方法内容。
主要方法
这里主要回顾如何应用atrous convolution来提取紧凑的特征,以进行语义分割; 然后介绍在串行和并行中采用atrous convolution的模块。
假设2维信号,针对每个位置i,对应的输出y, 以及filter w,对于输入feature map x进行 atrous convlution 计算:
其中,atrous rate r表示对输入信号进行采样的步长(stride),等价于将输入x 和通过在两个连续的filters值间沿着各空间维度插入r−1个零值得到的上采样filters进行卷积。通过改变Atrous convolution 的rate值,来修改filter的感受野,也可以控制FCN网络(fully convolutional networks)计算的特征紧凑程度。如上面图中提及到的。标准卷积即是atrous convlution的一种rate r=1的特殊形式。
以串行方式设计atrous convolution 模块,复制ResNet的最后一个block,如下图的block4,并将复制后的blocks以串行方式级联。
其中,各block中有三个convolutions, 除了最后一个block, 其它block的最后一个convolution的步长都为2, 类似于原来的ResNet(残差网络)。
这种网络模型设计的动机,引入的stride能更容易的捕获较深的blockes中的大范围信息。例如,整体图像feature可以融合到最后一个小分辨率的feature map中,如上图(a)。
不过,这种连续的步长式设计,对于语义分割是不利的,会破坏图像的细节信息。因此,这里采用由期望outpur_stride值来确定rates的atrous convolution 进行模型设计,如上图(b)。
采用串行的ResNet,级联block为block5、block6、block7,均为block4的复制,如果没有 atrous convolution, 其output_stride=256。
对block4~block7 采用不同atrous rates.。即,定义Multi_Grid=(r1,r2,r3)为block4~block7的三个convolutional layers的 unit rates。
convolutional layer最终的atrous rate等于unit rate与对应的rate的乘积。例如,当output_stride=16, Multi_Grid=(1,2,4)时, block4中three convolutions的rate分别为:rates=2∗(1,2,4) = (2,4,8)。
Atrous Spatial Pyramid Pooling
针对上面的问题,并将全局内容信息整合进模型中,则采用图像级特征。
采用全局平均池化(global average pooling)对模型的feature map进行处理,将得到的图像级特征输入到一个1×1 convolution with 256 filters(加入 batch normalization)中,然后将特征进行双线性上采样(bilinearly upsample)到特定的空间维度。
改进了ASPP, 即:
连接所有分支的最终特征,输入到另一个1×1 convolution(所有的filter个数也为256,并加入batch normalization),再进入最终的1×1 convolution,得到 logits 结果。
实验结果
最后还给出了可视化的效果,如下:
但是实验过程中,也出现了一些错的案例,比如:
小结一下:
提出的模型”DeepLab v3”采用atrous convolution的上采样滤波器提取稠密特征映射和去捕获大范围的上下文信息。具体来说,编码多尺度信息,提出的级联模块逐步翻倍的atrous rates,提出的atrous spatial pyramid pooling模块增强图像级的特征,探讨了多采样率和有效视场下的滤波器特性。实验结果表明,该模型在Pascalvoc 2012语义图像分割基准上比以前的DeppLab版本有了明显的改进,并取得了与其他先进模型相当的性能。