Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs论文地址 : Deep Lab V1
ICLR 2015收录

摘要

本文结合了深度卷及网络(DCNN)和CRF两个已经比较成熟的模块,在实验过程中发现单纯的使用DCNN的效果不是那么的丝滑(DCNN对于高层语义信息拥有很好的能力,但是对于低级的位置信息不足。),做语义分割不够那么精准,根本原因是DCNN的高级特征的平移不变形。
我们通过将DCNN的最后一层和CRF结合,解决了定位准确率低的问题。

相关的工作

遇到的问题和解决的方法

信号下采样

空间不变性(spatial insensitivity/invariance)

  • 以获取图像中物体为核心的决策,必然需要空间不变性/不敏感。换句话说,对于同一张图片进行空间变换(如平移、旋转),其图片分类结果是不变的。
  • 但对于图像分割等,对于一张图片进行空间变换后,其结果是改变的。

论文的优点(贡献)

  • 速度:带atrous算法的DCNN可以保持8FPS的速度,全连接CRF平均推断需要0.5s
  • 准确:在PASCAL语义分割挑战中获得了第一(当时)的成绩,准确率超过第二好的方法7.2%
  • 简单:DeepLab是由两个非常成熟的模块(DCNN和CRFs)级联而成。

网络的模型

空洞卷积

CRF

参考资料:

CRF的引入:

  • CRF在传统图像处理上主要做平滑处理,但对于CNN来说,short-range CRFs可能会起到反作用,因为我们的目标是恢复局部信息,而不是进一步平滑图像。
  • 引入fully connected CRF来解决这个问题,考虑全局的信息。

后边DeepLab V3就不再用了,暂时先鸽子。

多尺度预测

DeepLab V1学习笔记-LMLPHP

类似于FCN的多尺度的拼接,不过最后的结果类似于Unet是将所有的拼接起来了不是FCN的相加。
实现:

总结:虽然最后的结果略有提升,但是相对于添加CRF还是有差距

模型总结

主要是对原有VGG网络进行了一些变换:

  • 将原先的全连接层通过卷基层来实现。
  • VGG网络中原有5个max pooling,先将后两个max pooling去除(看别的博客中说,其实没有去除,只是将max pooling的stride从2变为1),相当于只进行了8倍下采样。将后两个max pooling后的普通卷基层,改为使用空洞卷积。
  • 为了控制视野域(同时减少计算量),对于VGG中的第一个fully connected convlution layer,即77的卷基层,使用33或4*4的卷积来替代。计算时间减少了2-3倍。

DeepLab V1学习笔记-LMLPHP

  • 把最后的全连接层FC6、7、8改造成卷积层
  • pool4的stride由2变为1,则紧接着的conv5_1, conv5_2和conv5_3中hole size为2。
  • 接着pool5由2变为1, 则后面的fc6中hole size为4。
  • fc7,8为标准卷积
  • 由于Hole算法让feature map更加dense,所以网络直接用差值升采样就能获得很好的结果,而不用去学习升采样的参数了(FCN中采用了de-convolution)

其他训练信息
损失函数:交叉熵之和。
训练数据label:对原始Ground Truth进行下采样8倍,得到训练label。
预测数据label:对预测结果进行双线性上采样8倍,得到预测结果。

DeepLab V1学习笔记-LMLPHP
使用dilated conv,还避开了层层上采样,直接用bilinear interpolation(双线性插值)恢复到原状,然后进行fully-connected conditional random fields 通过邻域之间的锐化,得到最终分割结果。

实验结果

模型的整体结构:
DeepLab V1学习笔记-LMLPHP

测试细节:

最后的实验结果进行对比,发现最下边的那个对比当前主流的FCN-8S或者TTI—16都优秀很多
DeepLab V1学习笔记-LMLPHP
DeepLab V1学习笔记-LMLPHP
不同的组合在训练集和测试集的MIOU
DeepLab V1学习笔记-LMLPHP
又无CRF的对比DeepLab V1学习笔记-LMLPHP

11-20 07:25