• DeepLab V1学习笔记


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

    摘要

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

    相关的工作

    遇到的问题和解决的方法

    信号下采样

    信号下采样 :在DCNN中重复最大池化和下采样带来的分辨率下降问题,分辨率的下降会丢失细节。max-pooling会降低特征图的分辨率,而利用反卷积等上采样方法会增加时空复杂度,也比较粗糙,因此利用空洞卷积来扩大感受野,相当于下采样-卷积-上采样的过程被一次空洞卷积所取代。空洞卷积可以扩展感受野,获取更多的上下文信息。

    解决方法 : 利用带孔的卷积(空洞卷积)

    空间不变性(spatial insensitivity/invariance)

    空间不敏感(invariance) :

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

    解决方法 : 使用Dense CRF解决空间不变性的问题

    论文的优点(贡献)

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

    网络的模型

    空洞卷积

    CRF

    参考资料:

    CRF的引入:

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

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

    多尺度预测

    在这里插入图片描述

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

    在输入图片与前四个max pooling后添加MLP(多层感知机,包括3 * 3 * 128以及1 * 1 * 128),得到预测结果。这四个预测结果与最终模型输出拼接(concatenate)到一起,相当于多了128*5=640个channel。

    总结:虽然最后的结果略有提升,但是相对于添加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倍。

    在这里插入图片描述

    • 把最后的全连接层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倍,得到预测结果。

    在这里插入图片描述
    使用dilated conv,还避开了层层上采样,直接用bilinear interpolation(双线性插值)恢复到原状,然后进行fully-connected conditional random fields 通过邻域之间的锐化,得到最终分割结果。

    实验结果

    模型的整体结构:
    在这里插入图片描述

    测试细节:

    项目设置
    数据集PASCAL VOC 2012 segmentation benchmark
    DCNN模型权重采用预训练的VGG16
    DCNN损失函数交叉熵
    训练器SGD,batch=20
    学习率初始为0.001,最后的分类层是0.01。每2000次迭代乘0.1
    权重0.9的动量, 0.0005的衰减

    最后的实验结果进行对比,发现最下边的那个对比当前主流的FCN-8S或者TTI—16都优秀很多

    在这里插入图片描述
    不同的组合在训练集和测试集的MIOU
    在这里插入图片描述
    又无CRF的对比在这里插入图片描述

    推荐视频讲解

  • 相关阅读:
    getid3 获取视频时长
    C++图书管理系统(管理员-读者)
    JVM学习-JMM
    C语言-二叉树的最大深度
    三、ECMAScript 6 语法简介(1)
    javaweb:springboot+vue实现在线点餐系统:ssm+mysql线上点餐
    Object.defineProperty()方法详解,了解vue2的数据代理
    Kong实现禁止国外IP访问
    iOS端如何实现MobLink的场景还原功能
    VSCode『SSH』连接服务器『GUI界面』传输
  • 原文地址:https://blog.csdn.net/passer__/article/details/127932497