您的位置:首页 > 其它

Learning Deconvolution Network for Semantic Segmentation

2017-03-21 22:08 375 查看
Learning Deconvolution Network for Semantic Segmentation

摘要

1. 提出新的语义分割算法:深度反卷积网络;
2. 在VGG-16卷积层上学习网络;
3. 反卷积组成:deconvolution and unpooling layers,识别逐像素的类别标签和预测的分割mask;
4. 将object proposal(edge box)送入训练后的网络,然后整幅图像是这些proposal的分割结果的组合,这样就可以解决物体太大或者太小所带来的分割问题;
5. 这种算法缓和了基于全卷积网络的现存的方法,通过整合 deep deconvolution network and proposal-wise prediction
6. 我们的算法能识别精细的结构和handles


引言

CNN被广泛的应用在各种视觉识别问题,例如图像分类,物体检测,语义分割,视觉追踪,动作识别。现在开始应用在结构预测问题,例如语义分割,人体姿态估计等等。

开始基于CNN解决语义分割逐像素分类的问题,将现存的用于分类的CNN结构转换成FCN。通过分类图像中的局部区域,获得粗糙的label map,然后执行反卷积,(双线性插值),for pixel-level labeling。CRF进行后处理。FCN的最大优势:输入整张图像,获得较快,准确的推理。

FCN缺点:

*   第一,感受野为固定大小;物体大于或小于感受野会被 fragmented or mislabeled,大物体,分割不连续;小物体被忽视,分类为背景。下图所示,虽然FCN【19】加入skip architecturer,但是不是根本的解决方案,根本问题--详细的边界和语义;
![这里写图片描述](http://img.blog.csdn.net/20170321220407519?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2dmNTg0NTIwMTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)




*   第二,输入反卷积层的label map太粗糙,反卷积过程太简单,使得物体的细节信息丢失或被平滑;由于缺少深度的反卷积网络,很难精确重建物体边界这种高度非线性结构。但是CRF解决这个问题;                                                  为了克服这个问题,我们用了一个完全不同的策略进行语义分割,主要贡献如下:
*     首次提出用深度反卷积-----反卷积,unpooling,ReLU层
*     训练好network,应用在单个object proposal,to 获得instance-wise segmentions,再将这些单个的分割结果combined for最终的语义分割;解决了原始的FCN存在的物体尺度问题,能够识别细小的结构;
*    获得最好的结果


2.相关工作

【27】提出反卷积网络,并提出unpooling operation 通过存储池化位置来解决最大池化带来的挑战;

3.系统结构



3.1

训练网络包含:卷积网络,反卷积网络

卷积网络:将输入图像转换成多维度特征表示;

反卷积:产生物体分割的shape generator;

网络输出:概率图,和输入图像大小相同,每个像素属于预定义类别的概率;

卷积层: VGG-16(去除分类层),13个卷几层,Relu, pooling , 在end出增加2个fc to impose 特定类别的映射。

反卷积:是卷积层的镜像,unpooling,反卷积,Relu



3.2 反卷积网络

3.2.1 Unpooling

在卷积网络中,池化作用:通过在一个感受野提取代表性的激活值,来过滤激活噪音;

池化优点:在上层保留鲁棒的激活值,有利于分类;

pooling缺点:缺少空间信息,不利于精确定位;

解决办法:反卷积层加入unpooling layers—-与pooling操作相反,重建原始大小;

Unpooling:首先subpooling的时候记住max pooling layer选择的最大值的location,然后在Unpooling层还原回原location,其它像素应该是用0代替,得到sparse的map:

3.2.2反卷积

通过类似于卷积的操作,使unpooing稀疏的输出变得密集with 多个可学习的滤波器;

*   卷积和反卷积区别:卷积:输入多个---输出一个

反卷积:输入1个---输出多个; 输出:扩大,密集的activation map。

* crop扩大的activation map的边界===unpooling layers的输出大小
*   层级的反卷积作用:扑捉不同level的形状信息。
* lower layer:扑捉物体总体的形状;

higher layers:编码了特定类别的细节信息;

* 反卷积作用:可以利用形状信息。


3.2.3反卷积网络的分析





unpooling 和反卷积层的roles:

unpoling:扑捉example-specific 结构,

反卷积:扑捉class-specific shape.激活值和目标类别相近的,得到增强。噪音激活值得到抑制。



3.3系统综述

* 我们的算法,提出语义分割as instance-wise 分割问题。即sub-image,可能包含物体的子图像,称为instance。

输入:instance
输出:产生pixel-wise prediction

* instance-wise 分割  VS  image-level prediction 有优势:

instance-wise :能处理不同尺度大小的物体:识别细节信息;减少搜索空间,减少训练的复杂度减少存储需       求;
image-level prediction:固定大小感受野,不能解决上述问题;


4.训练

特点:deep,包含大量参数,训练数据集也很少

4.1Batch Normalization

众所周知,由于internal-covariate-shift 问题,优化一个深度神经网络很难;由于每层参数随训练迭代更新,输入分布也在变化。由于分布变化,通过层间的传播分布变化变大。

减少internal-covariate-shift 问题措施:

执行batch normalization—-把每层的输入分布规范为标准的高斯分布; a batch normalization layer被添加到每个卷积和反卷积层的输出;有利于局部优化;

4.2 两阶段训练

*  先用easy examples train
* 再用更具挑战性的examples fine-tune


构造第一阶段的训练样本:用ground-truth标注crop object instances ,使得物体位于裁剪的bbox的中心。通过减少物体位置和大小的变化,可以减少语义分割搜索空间,减少训练样本的数量;

第二阶段构造挑战性样本:

5.infernce

步骤:

*       提取候选区域
*       每个候选区域投入网络训练语义分割maps;
*       整合所有候选区域的 分割map,产生整个图像的分割;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐