深度学习论文(九)---DeepLabV2-Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,

DeepLabV2对主要在V1的基础上做了一些改进。

1.回顾Atrous Convolution

作者先回顾了一下V1里面讲到的内容

Atrous Convolution 也就是V1那篇论文里面的hole algorithm,本篇论文依然先叙述了一下这个方法:

一维时,就如下这个公式所述,

The rate parameter r corresponds to thestride with which we sample the input signal.

r表征了要填进去的0的个数,个数为(r-1)个,所以标准的卷积是r=1,也就是不插0;

二维时如下图所示:

上面一行表示原来的一些方法比如FCN这种,图像的分辨率缩小了,就算增采样之后,最终也只能获取部分的像素点的位置信息。 下面一行,表示采用插了0的卷积核去对原图像进行卷积,尽管filter的size变大了,但是他们只考虑卷积核中非零的值,所以其实the number of filter parameters and the number of operations per position stay constant。 然后作者说的确可以使用一连串的Atrous Convolution来使网络最后输出的结果feature map的分辨率和原始图像的分辨率一样大,但是这样计算量就显得有点大,所以他们是采用了一种混合的方法: …but this ends up being too costly. We have adopted instead a hybrid approach that strikes a good efficiency/accuracy trade-off, using atrous convolution to increase by a factor of 4 the density of computed feature maps, followed by fast bilinear interpolation by an additional factor of 8 to recover feature maps at the original image resolution. 上面这段话的意思是,他们并不是把整个网络都运用成Atrous Convolution,而是既用了Atrous Conv, 也用了传统的思路—增采样。

所以他称之为混合的方法(a hybrid approach)。 具体来讲,就是只运用Atrous Conv使得feature map能够达到原来的密度的4倍就ok了,然后使用双线性插值法来进行插值处理(也就是简单的增采样),再把feature map放大8倍,这样就使得分辨率恢复到原来的大小了(4x8=32)。 (注,作者举这样说是因为他基于的VGG16Layer模型,这个模型的5个pooling层让图片总共缩小了2^5=32倍.详见DeepLabV1的论文,我上篇博文也讲了)

2、Atrous Convolution的变动

Atrous Convolution也能使得我们能扩大卷积核的感受野!

Atrous convolution with rate r introduces r-1 zerosbetween consecutive filter values, effectively enlarging the kernel size of a kxk filter to ke= k + (k - 1)(r - 1) without increasing the numberof parameters or the amount of computation.

然后作者提到有两种方法来实现Atrous Convolution:

The first is to implicitly upsample the filters by inserting holes (zeros), or equivalently sparsely sample the input feature maps

第一个是通过插入空洞(零)来隐式地对kernel进行上采样,或者等效稀疏地对输入特征图进行采样。他们在之前的工作中用的就是这种方法,比如DeepLabV1中用的就是这个方法。

to 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 x r possible shifts.

对输入feature map进行降采样,降采样率设置为 atrous convolution rate r,对其进行去隔行操作以获得r^2大小的分辨率减小的maps,……

然后用这种方式进行操作,我们的卷积kernel就不用进行改变,还是用标准的kernel。

3、Multiscale ImageRepresentations using Atrous Spatial Pyramid Pooling

多尺度处理

这里他们也提及两个方法:

The first approach amounts to standardmultiscale processing.

第一个是标准的多尺度处理。我们使用共享相同参数的并行DCNN分支从多个(我们的实验中有三个)提取原始图像的重新定标版本的DCNN分数图。

We extract DCNN score maps from multiple(three in our experiments) rescaled versions of the original image usingparallel DCNN branches that share the same parameters.

他们从多个(他们的实验中是3个)经过重新缩放过的原始图像来提取DCNN得分图,利用多个并行的、共享相同参数的DCNN分支。

简单点说就是把原来的图像缩放一下得到几个尺寸不同的图,然后把这些图都各自送进相同的DCNN处理。

为了产生最终的结果,他们对各个分支的输出map都采用双线性插值的方法来恢复到原始图像的分辨率大小,然后融合他们,

融合的办法是对于每个点都取这些不同的map中的最大的那个值就ok。

The second approach is inspired by thesuccess of the R-CNN spatial pyramid pooling method.

第二中方法是收到R-CNN中的空间金字塔池化方法的启发:

这种方法显示,对于任意尺度的一块区域,都能通过重采样 在单一尺度提取的卷积特征 来准确的且有效的被分类。

因此他们提出了“atrousspatial pyramid pooling” (DeepLab-ASPP)

具体来说,就是使用多个不同采样率的atrous conv layers,被不同的采样率提取出的feature会进一步在各自独立的分支中进行处理,最后融合到一起,得到最终的结果。如图所示:

4、总结

所以DeepLabV2相较于V1来说,做了两个改动:

①atrous的方法改了一下;

②提出了ASPP方法,这个是重点,

做实验的对比如下:

图7,左侧是原来的单尺度处理,右侧是V2的多尺度处理

表3:显示了添加CRF前后准确度的提升,以及是否采用ASPP和ASPP的采样率的大小(也就是感受野的大小)对结果的影响。

然后就没了,谢谢观看。╰( ̄▽ ̄)╮

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

DeepMind新论文:基于变分方法的自编码生成对抗网络

王小新 编译自 Arxiv 量子位 出品 | 公众号 QbitAI 最近,DeepMind公司的Mihaela Rosca、Balaji Lakshminara...

3076
来自专栏专知

【AAAI2018 Oral】基于Self-attention的文本向量表示方法,悉尼科技大学和华盛顿大学最新工作(附代码)

【导读】循环神经网络(RNN)与卷积神经网络(CNN)被广泛使用在深度神经网络里来解决不同的自然语言处理(NLP)任务,但是受限于各自的缺点(即,RNN效果较好...

4246
来自专栏机器学习算法全栈工程师

基础|认识机器学习中的逻辑回归、决策树、神经网络算法

作者:石文华 编辑:田 旭 逻辑回归 1 逻辑回归。它始于输出结果为有实际意义的连续值的线性回归,但是线性回归对于分类的问题没有办法准确而又具备鲁棒性地分割,...

3458
来自专栏机器之心

基于注意力机制,机器之心带你理解与训练神经机器翻译系统

3608
来自专栏大数据文摘

利用 Scikit Learn的Python数据预处理实战指南

2276
来自专栏专知

深度学习文本分类方法综述(代码)

【导读】本文是数据科学家Ahmed BESBES的一篇博文,主要内容是探索不同NLP模型在文本分类的性能,围绕着文本分类任务,构建当前主流的七种不同模型:用词n...

1513
来自专栏人工智能

Python中Keras深度学习库的回归教程

Keras 是一个深度学习库,它封装了高效的数学运算库 Theano 和 TensorFlow。

1.2K10
来自专栏Coding迪斯尼

用深度学习实现自然语言处理:word embedding,单词向量化

前几年,腾讯新闻曾发出一片具有爆炸性的文章。并不是文章的内容有什么新奇之处,而是文章的作者与众不同,写文章的不是人,而是网络机器人,或者说是人工智能,是算法通过...

541
来自专栏素质云笔记

python︱imagehash中的四种图像哈希方式(phash/ahash/dhash/小波hash)

code来源:https://github.com/JohannesBuchner/imagehash 外文原文:https://fullstackml.c...

5617
来自专栏人工智能头条

优秀的排序算法如何成就了伟大的机器学习技术(视频+代码)

【导读】在机器学习中,支持向量机(SVM)算法是针对二分类任务设计的,可以分析数据,识别模式,用于分类和回归分析。训练算法构建一个模型,将新示例分配给一个类别或...

672

扫码关注云+社区