【图像语义分割】DeepLab V2: CNN + Atrous Convolution + Fully Connected CRF

本博客主要是针对DeepLab v2《DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs》
做的记录,其中还略微涉及DeepLab v1 《Semantic Image Segmentation with Deep Convolution Nets and Fully Connected CRFS》dilated ConvOverfeat的一些内容

自从FCN打开了DNN在Semantic Segment上的应用后,在这方向的DL文章就如雨后春笋般的冒出来了。总结一下当前DCNN在Sementic Segment上的应用主要有三大困难:
1)用classification Network fine-tuning的话,会导致feature map的尺寸缩水,而Semantic Segment是一种dense predict的task。
2)多尺度目标的类别预测
3)DCNN在classification中良好的平移不变性在Semantic Segment上是一个麻烦事。

本文应对这三种情况,分别提出了解决方案:
1) feature map的缩水 —》 采用 atrous convolution
2)多尺度的目标类别预测 —-》 采用ASPP(atrous Spatial Pyramid Pooling)
3)由于DCNN的平移不变性导致的边界精确度问题 –》 采用fully connected CRF

Atrous convolution

注明:atrous convolution 与 dilated convolution本质上是一回事,
原文有提示:

Atrous convolution is a term we first used in [6]. The same operation
was later called dilated convolution by [76], a term they coined
motivated by the fact that the operation corresponds to regular
convolution with upsampled (or dilated in the terminology of [15])
filters

feature map尺寸为什么会缩水呢?究其原因是因为conv的stride和max-pooling导致的,

However, the repeated combination of max pooling and striding at
consecutive layers of these networks reduces significantly the spatial
resolution of the resulting feature maps

一个简单的方法就是把downsample和pooling去掉。然而pooling的去掉会导致后半个CNN结构发生变化,以至于不能fine-tuning。 详细见Deeplab v1, 这里在简单概括下:
原文给出的一维Atrous convolution示意图:
这里写图片描述
这里我个人觉得其实这个图还不是特别清晰,这里附上另一位博主的图:
http://blog.csdn.net/c_row/article/details/52161394
下图是原先classification Net的示意:
这里写图片描述
将pooling Layer的stride改为1,如下图所示
这里写图片描述
采用atrous convolution
这里写图片描述
通过这三张图片,可以看到当把pooling改为1,通过往一维kernel中插入0的操作可以保持原有网络的感受野(最底下的蓝色的结点所示,往前推到第一层发现作用的结点与之前未改变网络结构的结点一样,然而多 了红色的结点,这就意味着输出较之前的dense)

一维信号下的atrous conv输出所示为:
这里写图片描述
一般的卷积,则r = 1,通过改变r的值,来增加atrous conv的核大小。

文章最后将pool4和pool5的stride改为1,将FCN的32倍的尺寸缩水变为目前的8倍。

在实施atrous conv的细节上,文章提供了两个版本:
1,直接往kernel中插入0来upsample 原始kernel, 由于caffe中已经将这种方式集成了,所以caffe版本直接采用该种方法
2,类似于Overfeat的方法:

subsample the input feature map by a factor equal to the atrous
convolution rate r, deinterlacing it to produce r2 reduced resolution
maps, one for each of the r×r possible shifts

大概类似于下图的实现方式,这里不详细展开:
这里写图片描述

Atrous Spatial Pyramid Pooling(ASPP)

实际上DCNNs已经有remarkable的implicitly ability来检测目标varying size。然而现实的目标multi-scale可以进一步提升DCNN的识别能力

DCNNs have shown a remarkable ability to implicitly represent scale,
simply by being trained on datasets that contain objects of varying
size. Still, explicitly accounting for object scale can improve the
DCNN’s ability to successfully handle both large and small objects

本文给出了两种方法来处理尺度变化带来的问题:
1)standard multiscale processing:通过选择3种不同尺度的原图像进行输入,最后将这三种的score map插值到原图的大小,然后进行融合
2)通过对atrous conv的尺寸进行变化:
这里写图片描述

Fully-connected CRF

主要处理DCNN的pooling带来的平移不变性而导致的location 精确度问题。
这里不进行详细解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值