DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs

Abstract

DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第1张图片

DLsemantic image segmentation,本文有three main contributions:

  1. atrous convolution:提高feature map的分辨率 ,不增加参数的前提下增大感受野。
  2. Atrous Spatial Pyramid Pooling(ASPP):来对不同的尺度做分割.提高了效果。
  3. CRF:进一步提升localization的性能

INTRODUCTION

3个挑战和解决办法:

  1. 连续的max-pooling and downsampling 使得feature map的size减小太多,不利于后续处理.
    feature map减少太快的原因是因为max pooling,downsampling(striding)依次用在原图上面,导致feature map size迅速减少.为了克服这个问题,DeepLab对于网络的最后几层并没有再继续使用pooling,downsampling(striding),而是用upsample来替代。作者使用 atrous convolution来作为upsample的手段。之后再使用bilinear interpolation来恢复到原图大小。
  2. 多尺度的图片
    最直接的方法是利用原图的不同尺寸输入到针对不同尺寸的DCNN中,然后将这些CNN的feature map结合起来生成最后的结果,事实证明这样做效果很好,但是操作太麻烦,太耗时。受SPP的启发,作者提出了atrous spatial pyramid pooling直接在原图这一个input的基础上提取中多scale的信息。
  3. invariance to spatial transformations
    FCN是采取skip layer的措施,作者是采用 全连接的CRF 这样做的优势 是: 速度快,准确率高,结构简单

网络架构

DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第2张图片
先使用deep network抽取feature map,去掉deep network后面的全连接层,用atrous convolution层替代,用最原始的双线性插值恢复到原图大小,最后使用CRF平滑边界,得到最终语义分割结果.

METHODS

  1. Atrous Convolution for Dense Feature Extraction and Field-of-View Enlargement
    1-D :

    DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第3张图片

    2-D:
    DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第4张图片
    给定一张图片,首先一个下采样使其变成原来的一半,再来一个kernel_size = 7的convolution,(垂直高斯导数是什么东东),如果把特征图放到原图片中,发现得到的特征图只是原来图片的四分之一的响应。但是如果我们使用atrous convolution ,在整张图片上进行卷积运算,就能够得到整张图片的特征响应。其中,将原始的滤波器2倍的上采样,即在滤波器的值与值之间插入一个0。虽然滤波器变大了,但是我们只需要考虑非0值,因此滤波器的参数,每个位置的操作数并未改变。

    Atrous convolution 还能扩大感受野,当atrous convolution 的rate = r ,kernel size =k 时,在不增加参数和计算量的前提下,变相的扩大了kernel size.实际的kernel大小ke = k + (k-1)(r-1)。关于感受野扩大的解释的较清晰的,请移步here。
    实现Atrous convolution 方式有两种,具体的请看原论文。

  2. ASPP


    DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第5张图片

    在SPP中,是根据输入的size来确定池化的size,才能得到一样的特征图,但在这里,是利用不同rate的Atrous Convolution,再进一步的处理,从而得到一样的特征图。。。好吧,其实并不知道他怎么就能一致了,不同的输入size,即使经过不同rate的Atrous Convolution,得到的额feature map size还不是不同的么???

  3. Structured Prediction with Fully-Connected Conditional Random Fields for Accurate Boundary Recovery

DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第6张图片
可以看到,经过CRFs的处理,结果还是很棒的

CRF经常用于 pixel-wise的label 预测。把像素的label作为随机变量,像素与像素间的关系作为边,即构成了一个条件随机场且能够获得全局观测时,CRF便可以对这些label进行建模。全局观测通常就是输入图像。

DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs_第7张图片

令随机变量Xi是像素i的标签,Xi∈L=l1,l2,...,lL,令变量X是由X1,X2,...,XN组成的随机向量,N就是图像的像素个数。 假设图 G=(V,E),其中V=X1,X2,...,XN,全局观测为I 。条件随机场符合吉布斯分布,(I,X)可以被模型为CRF,



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


其中, θi(xi) 是一元能量项,代表着将像素 i分成label xi 的能量,二元能量项φp(xi,xj)是对像素点 i、j同时分割成xi、xj的能量。 二元能量项描述像素点与像素点之间的关系,鼓励相似像素分配相同的标签,而相差较大的像素分配不同标签,而这个“距离”的定义与颜色值和实际相对距离有关。所以这样CRF能够使图片尽量在边界处分割。最小化上面的能量就可以找到最有可能的分割。而全连接条件随机场的不同就在于,二元势函数描述的是每一个像素与其他所有像素的关系,所以叫“全连接”。
具体来说,在DeepLab中一元能量项直接来自于前端FCN的输出,计算方式如下:



而二元能量项的计算方式如下:


其中,μ(xi,xj)=1,当i≠j时,其他时候值为0。也就是说当标签不同时,才有惩罚。剩余表达式是在不同特征空间的两个高斯核函数,第一个基于双边高斯函数基于像素位置p和RGB值I,强制相似RGB和位置的像素分在相似的label中,第二个只考虑像素位置,等于施加一个平滑项。 超参数σα,σβ,σγ控制高斯核的权重。

REFERENCES

从FCN到DeepLab
董卓瑶 deeplab笔记
paper

你可能感兴趣的:(DeepLab: Semantic Images Segmentation with DCNNs,Atrous Convolution,and Fully connected CRFs)