DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully CRFs

基于深度卷积网络,空洞卷积和全连接CRFs的图像语义分割(Deeplabv2)学习总结

Abstract

本文主要强调了基于深度学习语义分割的三大贡献:1.atrous convolution(空洞卷积)能明确控制特征响应分辨率和在不增大参数运算量的情况下增大卷积感受野获得更多的上下文信息;2.atrous spatial pyramid pooling(空洞空间金字塔池化)探索了一种采用多采样率和有效视野滤波器的输入卷积特征层,从而在多个尺度捕获对象及其上下文信息。3.通过结合DCNNs和CRFs进行对象边界定位。

1.Introduction

DCNNs图像语义分割的三个挑战:1.特征分辨率的降低;2.对象存在多尺度;3.由于DCNNs不变性导致的定位精度下降。

第一个挑战是由重复的max-pooling和downsampling(stride)产生的。为了解决这一问题,我们移除了DCNNs最后几层的max-pooling并在接下来的几层中使用upsampling filter(相当于在非零滤波器抽头之间插入孔,速记为atrous convolution空洞卷积)替代。在实践中,我们采用空洞卷积恢复了全分辨率的特征图,空洞卷积能够更加密集的计算特征图,随后对特征响应进行简单的双线性插值到原始图像大小。空洞卷积方案提供了一个简单并有效的反卷积替代品,与更大的卷积滤波器相比,空洞卷积有效增大了感受野而又不增加参数数量和运算量。

第二个挑战是对象存在多尺度,受到空间金字塔池化的启发,我们提出了一种就计算而言很高效的方案,即在卷积之前以多种采样率重新采样给定特征层。这相当于多个滤波器探索原始图像获得互补的视野,从而在多个尺度捕获对象及其有用的上下文信息。事实上,我们采用了多个并行不同采样率的空洞卷积层,称之为ASPP。

第三个挑战是由于对象为中心的分类器需要空间变换不变性,因而限制了DCNN的空间准确度。我们的方法是提出了一个全连接条件随机场(fcCRFs)来提升模型捕获细节的能力。在这部分工作中我们证明了fcCRFs和DCNN-based像素级分类器的级联使用使得我们的图像分割达到了顶尖水准。

实现过程(Figure1):一个DCNN(VGG-16 or ResNet-101用于图像分类任务)应用于图像分割任务(1)将所有全连接层转换为卷积层(FCN);(2)通过空洞卷积层增加特征分辨率(由原来的每32像素计算特征响应改为每8像素),之后再采用因子为8的双线性插值算法将其还原为原图大小,之后再采用CRFs修正分割结果。

从实际应用角度来讲我们的Deeplab系统有三大优势:(1)快速;(2)精准;(3)简单

2.Related Work(略)

3.Methods

3.1 Atrous Convolution for Dense Feature Extraction and Field-of-View Enlargement(空洞卷积用于密集特征提取和增大感受野)

DCNNs每层重复的max-pooling(stride)严重地降低了输出特征图的分辨率(目前最流行的趋势是降低32倍),一种治标不治本的方法“反卷积”被提出,然而它需要额外的内存和时间。我们采用空洞卷积来代替传统的方法,其优势所在如下图所示。

DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully CRFsDeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully CRFs

Figure2在一维角度论证了了空洞卷积的密集特征提取(然而并没有看出他的密集特征提取表现在哪儿,高分辨率输入图采用传统卷积也是5个卷积核,画的密集就是密集特征提取了?这个地方不太懂);Figure3在二维角度上对空洞卷积的优势进行论证,如图中例子,传统的方法为了增大感受野的同时不增大运算量,先进行downsampling(stride=2)将图像缩小为原先的四分之一,然后采用7*7的卷积核卷积输出分数图,之后再通过upsampling(stride=2)将分数图还原到原先大小。而采用空洞卷积直接对原图进行空洞卷积,增大了卷积核的感受野,整合了更多的上下文信息,同时虽然看起来卷积核尺寸变大,但由于空洞卷积的每一个hole填充的为0,不参与计算,因此运算量不变,没有下采样也不会丢失信息,从最终输出的分数图来看,空洞卷积的优势不言而喻。

为了将VGG-16和ResNet-101网络输出特征图密度翻倍,我们发现最后一个池化或卷积层降低了分辨率(分别是pool5和conv_5),我们将其步长设置为1从而避免信息丢失,然后将后面的卷积层用rate r=2的空洞卷积替代。如果将空洞卷积应用于整个网络我们能够得到与原图大小相同的特征图,但最终成本太大。因此我们采用了一种折中的方法,通过空洞卷积将最终的特征图提升4倍,之后再通过一个8倍的双线性插值将特征图还原到原图大小。

3.2 Multiscale Image Representations using Atrous Spatial Pyramid Pooling(使用ASPP的多尺度图像表示)
我们尝试了两种方法来处理语义分割中的尺度变化。
第一种方法是标准多尺度处理:我们使用共享参数的平行DCNN分支从原始图像中的多尺度版本(我们的实验用的是3种)提取DCNN分数图。为了去生成最后的结果,我们将来自平行DCNN分支的特征图通过双线性插值算法还原到原图大小并融合它们(融合方法是取不同尺度下对应每个位置的最大值)。这种方法确实能够提升性能,但是运算代价太大。

第二种方法是受到R-CNN空间金字塔的启发,该方法表明任意尺度的区域可以通过对以单一尺度提取的卷积特征进行重采样来准确而有效地分类。我们采用了一种不同于他们的方案,采用多个不同采样率的平行空洞卷积层。对每个采样率提取到的特征在不同的分支中进一步处理后融合从而产生最后的结果。

DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully CRFs DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution,and Fully CRFs3.3 Structured Prediction with Fully-Connected Conditional Random Fields for Accurate Boundary Recovery(采用fcCRFs结构预测的准确边缘恢复)

目标定位精准度和分类性能之间的权衡和制约似乎是DCNN所固有的:模型越深max-pooling越多分类任务越成功,然而随之增长的空间不变性和*神经元节点的大感受野只能产生光滑的响应,如图5所示,DCNN输出分数图能够预测目标的存在和大致位置但不能真正描绘出目标的轮廓。

传统的方法有两个方向来处理定位挑战:第一种方法是利用卷积网络的多层信息去更好的估计目标边缘;第二中方法是超像素表示法,实质是将定位任务委托给低级别分割方法。

我们提出了一种基于DCNNs识别能力和fcCRFs的细粒度定位能力的方法,最终产生精准的语义分割结果并在一定细节程度上恢复出了目标边缘,其结果优于目前存在的任何方法。以往条件随机场(CRFs)常常用于平滑噪声分割图。典型的做法是这些模型对相邻的节点进行耦合,支持空间近端像素的相同标签分配。从本质上讲,short-range CRFs的主要功能是为了清除基于本地手工工程的弱分类器的虚假预测。

与这些若分类器相比,我们所采用的DCNN完全不同。如Figure5所示,DCNN输出分数图已经足够平滑,此时使用short-range CRFs反而不利,因为我们的目标是恢复出细节的定位结构而不是使其更平滑。而使用local-range CRFs虽然可以潜在的改进定位能力,但仍然会丢失一些细微结构并且通常需要解决昂贵的离散优化问题。为了解决short-range CRFs的限制,我们采用了fcCRFS整合进了我们的系统并取得了不错的结果。

4.Experimental Results