美文网首页深度学习
【转载】论文阅读:《DeepLab-v2: Semantic I

【转载】论文阅读:《DeepLab-v2: Semantic I

作者: dopami | 来源:发表于2018-12-20 12:01 被阅读0次

    https://blog.csdn.net/qq_36165459/article/details/78340094

    论文地址:https://arxiv.org/pdf/1606.00915.pdf

    概述

    DeepLabv2 是在DeeplabV1 的基础上又做了改进的。Deeplabv1 主要是在FCN 的基础上对vgg 网络进行fine tuning,并加上一个全连接的CRF,这样可以保证对FCN 得到的结果在局部细节上进行优化,从而实现在PASCALVOC 数据集上达到71.6%的准确率,成为当时的state-of-the-art。

    Deeplabv2 在之前的基础上又给出了三个方面的贡献:

    一是使用Atrous Convolution 代替原来上采样的方法,比之前得到更高像素的score map,并且增加了感受野的大小;

    二是使用ASPP 代替原来对图像做预处理resize 的方法,使得输入图片可以具有任意尺度,而不影响神经网络中全连接层的输入大小;

    三是使用全连接的CRF,利用低层的细节信息对分类的局部特征进行优化。

    Pipeline

    亮点

    论文采用全连接的CRF 的原因是对于深度神经网络,在分类的准确率上比较好,意味着其在高层的语义上是有明显优势的,但是对于像素级的分类,是属于低层的语义信息,因此在局部细节上显得非常模糊,由此作者希望通过CRF 来提升优化细节信息。

    FCN 改进

    之前的FCN 是用500*500 的图像,在第一层卷积层上conv1_1 进行大小为100 的padding,最终在fc7 层勉强得到一个16*16 的score map。这样的处理稍显粗糙,但是FCN 是第一次将CNN 应用到图像分割领域,并且是end-to-end,而且在当时也是state-of-the-art。

    Deeplab 是将VGG 网络的pool4 和pool5 层的步长由2 改为1,这样的改动使得vgg 网络总的步长由原来的32 变为了8,进而使得输入图像变为514*514,正常padding 的时候,fc7 能得到67*67 的score map,比FCN得到的要多很多。这种调整同时又导致了想要继续使用vgg model 进行fine tuning,会导致感受野发生变化,作者使用Atrous Convolution(Hog 算法)解决这个问题。

    Atrous Convolution

    在以往的卷积或者pooling 中,一个filter 中相邻的权重作用在feature map上的位置都是物理上连续的。Kernel size 表示卷积核的大小,即下一层中的每一个结点对应上一层中Kernel size 个结点(感受野)。Stride 步长表示每经过stride 个神经元再次做一次卷积。如图(a)(b)所示。

    现在,为了保证感受野不发生变化,某一层的stride 由2 变为1 以后,后面的层需要采用hole 算法,具体来讲就是将连续的连接关系是根据hole size大小变成skip 连接的。即kernel size 的大小虽然还是3,但是这三个是经过hole size 的跳跃性的构成的。pool4 的stride 由2 变为1,则紧接着的conv5_1,conv5_2 和conv5_3 中hole size 为2。接着pool5 由2 变为1, 则后面的fc6中hole size 为4。

    这个问题实际上就是解决了DCNN 特征的分辨率比较小的问题,这里的hole size 也可以叫rate。之前的方法使用卷积和下采样得到score map,再利用上采样得到和原来一样大小的图片,但是这样得到的图片比较模糊。使用Atrous Convolution 代替这两个过程,使得参数量减少,计算量也减少了,增加了感受野的大小。

    ASPP(Atrous spatial pyramid pooling)

    传统方法是把图像强行resize 成相同尺寸,但是这样会导致某些特征扭曲或者消失,这里联想到在SIFT 特征提取的时候用到过图像金字塔,将图像scale到不同的尺度,再提取的SIFT 特征点具有旋转,放缩不变性。因此这里也是借鉴这种方式使用空间金字塔池化的方法,来实现对图像大小和不同长宽比的处理。这样产生的新的网络,叫做SPP-Net,可以不论图像的大小产生相同大小长度的表示特征。ASPP 实际上就是通过不同的atrous convolution 来对图像进行不同程度的缩放,得到不同大小的input feature map,因为deeplab-ASPP拥有不同rate 的滤波器,再把子窗口的特征进行池化就生成了固定长度的表示。

    之前DCNN 需要固定输入图像的大小是因为卷积部分不需要固定图像的大小(它的输出大小是跟输入图像的大小相关的),真正有固定输入图像大小需求的是全连接部分,全连接部分的参数的个数是需要固定的。将SPP 层接到最后一个卷积层后面,SPP 层池化特征并且产生固定大小的输出,它的输出然后再送到第一个全连接层。这样就可以避免在网络的输入口处就要求它们大小相同。

    CRF

    以分类为中心的DCNN 学习了位置不变的特征,但是在做分割的时候,必须要位置相关。越深的层,它的位置信息可能越少,要恢复出位置,必须去前面层找。在FCN 使用的是skip layer。论文中使用的是dense CRF,具体确定了该使用多少低层的信息。

    当把像素的label 作为形成,马尔科夫场随机变量且能够获得全局观测时,CRF 便可以对这些label 进行建模。这种全局观测通常就是输入图像。令随机变量Xi 是像素i 的标签。

    令变量X 是由X1,X2,…,XN 组成的随机向量,N 就是图像的像素个数。假设图G=(V,E),其中V={X1,X2,…,XN},全局观测为I 。使用Gibbs 分布,(I,X)可以被模型为CRF,

    在全连接的CRF 模型中,标签x 的能量可以表示为:

    其中φu(xi)是一元能量项,代表着将像素i 分成label xi 的能量。φp(xi,xj)是对像素点i、j 同时分割成xi、xj 的能量,是一个二元能量项。最小化上面的能量就可以找到最有可能的分割。

    实验结果

    通过以下表格数据对比,可以看到CRF 对准确率有较大提升。

    通过以下表格数据对比,可以看到较小的batch_size 能够更好的拟合模型,虽然训练次数会增加,因为小的batch_size 学习的过程比较缓慢,迭代次数多一些。

    通过以下表格数据对比,可以看到ASPP 对于准确率提升是有贡献的。其中ASSP-L 的效果最好。

    通过以下表格数据对比,可以看到在ResNet-101 网络上的效果比在vgg16上的效果要更好一些,可见VGG16 网络也不是万能的。

    ---------------------

    作者:桃木子

    来源:CSDN

    原文:https://blog.csdn.net/qq_36165459/article/details/78340094

    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

        本文标题:【转载】论文阅读:《DeepLab-v2: Semantic I

        本文链接:https://www.haomeiwen.com/subject/otcykqtx.html