DeepLab系列语义分割模型论文阅读笔记

1.DeepLabv2

DeepLabv2是DeepLab系列的早期版本。论文作者注意到,普通的卷积神经网络能够胜任高级别的图片分类任务,然而对于图像语义分割这种精细的像素级分类而言,效果却不是很好。作者认为,阻碍传统DCNN网络进行精细分类的因素有两个:第一个是DCNN网络内部不断重复的卷积和池化操作,这使得网络学习到的特征图的分辨率过低,特征内涵不够丰富;第二个是卷积操作本身的平移不变性,这对于需要高度抽象、模糊特征的图片分类任务而言是有益的,对于需要精确位置信息的语义分割任务却是有害的。

针对上述问题,结合以及前人对语义分割任务的已有研究,作者的团队提出了DeepLab语义分割模型。DeepLab模型的主体神经网络采用了针对语义分割任务设计的全卷积网络结构,即将传统DCNN最后的全连接层替换成了卷积层;此外,在整个网络后端级联了CRF (Conditional Random Field, 条件随机场)模块,对提取到的语义特征进行进一步的处理。

 我认为,DeepLabv2里面比较具有借鉴意义的是它提出的空洞算法(hole algorithm), 即整个DeepLab系列都在使用的空洞卷积结构(Atrous Convolution),它很好地解决了传统DCNN网络中特征分辨率低、计算复杂度高的问题。此外,DeepLabv2也探索了在语义分割任务中提取多尺度(multi-scale)特征、采用多尺度图片输入进行预测的可能性,这些都被证实是很好的能够提高模型性能的方法。在作者的原文中,花了大量篇幅去描述阐明CRF模块的原理及作用,然而在DeepLab系列后续的改进模型中,CRF很快就因其耗费算力大、对模型提升几乎无益而被抛弃,因此不是一个很值得借鉴的想法与思路。最后,DeepLabv2模型在测试集上达到了71.6%的IOU指标。

 

 

2.DeepLabv3

DeepLabv3是DeepLab系列的第二个版本,相较于前版,最大的改动之一在于抛弃了CRF后端处理模块。此外,论文着重阐明了空洞卷积能够在不降低特征图分辨率的条件下提取大范围特征(大感受野)的能力;基于提取多尺度特征的思想,作者充分利用了空洞卷积的优势,提出级联和并联两种形式的、能够提取多尺度特征的DeepLab模型。

如原文图1所示,空洞卷积的基本原理就是在传统卷积核的卷积平面上进行不同程度的补零,用膨胀率rate来衡量空洞卷积的视野大小。具体地,在每两个有效位置之间会补上rate-1个零,从直观上看,空洞卷积将卷积核的有效位置分散到一个更大的区域内。通过改变rate值,same padding下的Atrous convolution能很轻易地实现无需下采样的多级特征提取。

如原文的图3从上到下依次是传统的DCNN网络、级联的空洞卷积网络。从图示可以直观看到,如果用output_stride定义输入图像大小与最终输出的特征图的平面大小的比值,传统的DCNN网络为了实现高级抽象特征的提取,最后的输出特征图被压缩得很小;对比之下,采用了空洞卷积的级联DCNN网络,在不过分压缩特征图大小的情况下,采用不同rate的级联空洞卷积层,同样提取到了不同层次的特征,而且最终输出了内涵更加丰富的特征图(denser feature maps)。

 如原文图5所示,论文作者借鉴了已有的空洞卷积金字塔池化结构 (Atrous Spatial Pyramid Pooling, ASPP), 提出了并联的DeepLabv3模型。这种模型的优越性在于,极大地利用了对多尺度特征的挖掘,在前面的卷积层提到到部分低层次特征后,以不同rate的空洞卷积进一步提取不同尺度的特征,并将多尺度特征一并连接在一起,作为最后卷积层的输入。此处的一个细节在于,论文作者充分考虑了空洞卷积的边缘效应,即当rate极大时,空洞卷积将退化成1*1卷积而失效。因此作者在ASPP模块中加入了Global Average Pooling后的特征,以代替高膨胀率的空洞卷积对全局特征进行提取。

论文中还针对空洞卷积模块提出了multi-grid的概念。由于DeepLabv3的主体网络是ResNet, ResNet由一个个残差模块构成,而每一个残差模块里面包含了3个Convolution Layer。作者在原有网络的基础上,用空洞卷积代替传统的卷积。具体地,一个rate=2的Block,采用(1, 2, 4)的multi-grid,这就意味着里面三个层的空洞卷积rate为2*(1, 2, 4) = (2, 4, 8)。作者通过实验发现,改变某个Block的multi-grid会对模型性能造成影响,也就是说通过精巧地微调multi-grid还可以进一步改善整个模型的性能。

在实验部分,论文作者对多个参数进行了调参实验,包括output_stride、multi-grid、multi-scale inference、left-right flipped inference等等,最终在Pascal VOC 2012数据集上达到了85.7%的IOU指标。

 

3.DeepLabv3+

DeepLabv3+是DeepLab系列的最新版本,v3+版本并没有对v3版本的网络内部结构进行修改,而是采用了Encoder-Decoder的思想,在原有特征提取网络的后端级联了一个精心设计的Decoder结构。此外作者还在文中讨论了Depthwise Separable Convolution以及Xception-based DeepLab Model。

    如原文图2所示,DeepLabv3+的Decoder结构将Encoder最终输出的高级语义特征与Encoder前端输出的低级特征连接在一起,再次经过一些卷积层的提取和整合,最终上采样为含Logits的Belief Maps。作者认为,DeepLabv3版本将Encoder输出的特征图直接上采样为Logits相当于连接了一个很粗糙的Decoder,不能很好地利用Encoder提取到的特征信息,而DeepLabv3+的Decoder则充分整合利用了高级和低级的语义特征,因此能够明显提高模型性能。

如原文图3所示,作者考虑到仅仅将传统的卷积核替换为空洞卷积核,虽然能够很好地提高模型的性能,却带来了很大的计算开销,尤其是我们常常需要利用rate值比较大的空洞卷积核。作者提出可以借鉴现有的Depthwise Separable Convolution结构,假定每个卷积核的通道之间是互不关联的,那么对于传统的卷积核来说,每一个卷积核的参数都是不共享的;而对于Depthwise Separable Convolution来说,所有的卷积核都共用同一组卷积核参数,区别在于传统卷积会把各个通道的卷积结果在相同位置上简单累加起来,而Depthwise Separable Convolution则会在平面卷积后,针对不同的卷积核采用多组不同的1*1卷积参数实现通道间的特征累加。更加简单地说,Depthwise Separable Convolution得到的不同feature map,是通过对同一组平面卷积结果的不同线性加权得到的,而非对不同组的平面卷积结果进行简单累加。

 最后,为了提高DeepLabv3+的模型竞争力,作者用Xception代替了原来的ResNet作为主干网络,最终在Pascal VOC 2012数据集上达到了87.8%的IOU指标。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值