深度学习论文翻译 -- Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFS

本文翻译论文为深度学习经典模型系列:DeepLab-V1

论文链接:https://arxiv.org/pdf/1412.7062.pdf

摘要:深度卷积网络(DCNNs)在高层次(high level)视觉任务中表现突出,比如图像分类和目标检测。本文结合DCNNs和概率图模型,解决像素级分类任务(semantic image segmentation)。实验发现,DCNNs最后一层的输出特征不足以对目标进行精确分割。DCNNs的空间不变性使其适合高层次任务(分类,目标检测),但不适合精细的分割任务,为此,我们引入CRF。我们的方法在PASCAL VOC-2012 语义分割任务中获得最好的结果,达到71.6%的IOU。仔细的网络设计以及新的卷积结构(hole algorithm)使得我们的网络效率很高,单GPU上可以达到8FPS。

1、Introduction

1998年,LeCun将DCNNs仅用于文本识别,直到最近才成为高层次视觉研究的主流。过去的两年,DCNNs将高层次视觉任务推向新的高度,比如图像分类(Krizhevsky2013,Sermanet2013,Simonyan2014等),目标检测(Grishick2014),细粒度分类(zhang2014),以及其它等。相比于人工设计的特征(SIFT,HOG),他们都使用的端到端的训练方式表现尤为突出。DCNNs表现优异的部分原因是其内在的不变性,因此非常适合学习抽象的数据特征。虽然不变性(invariance)是学习高层抽象特征必要特性,但是它确很难学习低层次的特征,比如姿态估计(Chen and Yuille2014,Tompson2014)以及语义分割,而这类任务需要精准的定位信息,不是抽象的空间细节。

DCNNs中有两方面技术妨碍标注级图像任务(比如上述姿态估计,分割等细节任务):信号降采样(signal downpling)和空间不敏感性(spatial insensitivity or invariance)。第一个技术是DCNNs中反复的Max-Pooling以及降采样(striding)。如Papandreou2014中建议的方法,我们采用空洞算法(atrous with holes),可以高效的进行卷积操作,并且比之前的方法简单。

第二个技术DCNNs非常适合学习目标级结果(空间不变性),本质上限制了其空间上的精确度。我们通过结合CRF来获得更加精细的细节信息。它被广泛应用于将DCNNs的结果与点、线或者超像素获取的局部低层次信息结合,进而得到精确度语义分割信息。尽管越来越复杂的算法被用来对层次依赖性建模(hierarchical dependency)或者分割块的高阶相关性,我们使用效率更高的全连接CRF算法(Krahenbuhl and Koltun2011),不仅能够获取更优的边界细节,同时还能够提供长距离的依赖关系。Krahenbuhl and Koltun2011 提出的算法在像素级分类中获得惊人的效果,在我们的工作中,我们通过与基于DCNN的分类器结合,获得了最好的结果。

我们提出的DeepLab系统有三方面的优势:(i)速度:由于空洞算法(atrous algorithm)的内在优势,我们的DCNN获得8FPS,同时全连接CRF的Mean Field Inference需要0.5s;(ii)精度:我们在PASCAL语义分割数据集上获得最好的结果,超出第二名7.2%;(iii)简单:我们的系统包含两个模型(DCNN and CRFs)。

2、Related Word

与Long2014类似,我们的工作主要研究像素表达(pixel representation)。当前比较普遍的语义分割研究方法是基于DCNNs的两阶段(two-stage)算法:将自下而上的图像分割与基于DCNN的区域分类器结合,那么这种front-end系统自然会出现潜在的错误。例如,将包围盒预选框和掩码区域当做DCNN的输入,也就将形状信息引入分类过程。类似地,Mostajabi2014依赖超像素表达。著名的非DCNN方法是第二顺序的池化方法,并将标签赋给区域的候选。理解了单个分割的风险,CogsWell2014探索了基于CRF的分割方法。然后使用DCNN对这些分割候选进行排序。尽管这类方法只是临时处理了front-end分割算法,但是没有明确探索具体的应用细节:DCNN仅仅是后处理方法,直接将其结果进行分割是非常有意义的。

现在讨论与我们的工作相似的几种算法,很多研究员使用DCNN的特征进行密集像素预测。Farabet2013将DCNNs应用于多分辨率图像,然后借助分割树对预测结果进行平滑。最近,Hariharan2014a提出将不同层次的特征进行融合分类,借助区域候选,Dai 2014提出融合中级特征。尽管他们的方法同样是将分割算法与DCNNs分开处理,但是我们相信将分割应用于后期阶段是有优势的,避免前一阶段造成的误差对后续任务带来的影响。

最近,自由分割技术直接将DCNNs应用于整个图像(in a sliding window fashion),并且将最后的全连接层替换为卷积层。为了处理空间定位的问题,Long 2014通过上采样以及与中层特征进行融合,Eigen and Fergus2014使用额外的DCNN对预测结果进行修正。

与经典方法不同的是,我们结合像素层面的CRFs和DCNN。与我们比较接近的工作,Cogswell在DCNN-Based重排序系统中将CRFs当做是候选机制,但是Farabet2013将超像素当做节点(for a local pairwise CRF),并且使用图割算法进行离散的推断。但是他们的结果对超像素的计算结果比较敏感,忽视了超像素的长距离依赖。我们的方法是将每一个像素当做是CRF节点,并且探究长距离的依赖性,然后使用CRF的推断直接优化DCNN的代价函数。我们注意到,平均域(mean field)经常用于图像分割或者边界检测任务。

3、Convolutional Neural Networks for Dense Image Labeling

这里,我们描述了如何重新设计和微调公开的ImageNet预训练模型(VGG16),使其能够有效的提取密集特征,并用于图像语义分割。

3.1、Efficient Dense Sliding Window Feature Extraction with the Hole Algorithm

密集空间分数评估(dense spatial score evalution)对于密集CNN特征提取器是很有效的。应用此方法的第一步是:将VGG-16的全连接层转为卷积层,并且以原始图像分辨率进行卷积操作。但是,它产生比较稀疏的检测分数(with stride of 32 pixels),所以仍是不满足实际的需要。为了计算更加密集的分数(at a stride of 8 pixels),我们将之前的方法进行修改(Gisusti,Sermanet)。我们忽略VGG-16最后两层池化层,并且通过引入零值来提高他们的长度(2x in the last three convolution and 4x 第一层FC),修改池化层后的卷积核。我们通过保证卷积核的完整以及稀疏的特征图卷积采样(分别 stide 2 or 4)来保证计算效率。Figure 1 展示了这种方法,称之为“hole algorithm”(atrous algorithm)。我们使用Caffe框架,添加了im2col函数(可以将多通道特征图转化为向量块)。这种方法可以通用,并且可以在任何目标下采样比率下高效的计算稠密CNN特征图(without introducing any approximations)。

我们微调了VGG-16的预训练权重,使其能够直接进行分类任务,类似FCN模型。我们将1000类的分类器替换为21类。我们的损失函数是计算输出特征图每一个位置交叉熵之和(原图最终进行到8倍的降采样)。标签同样进行8倍降采样,优化器使用SGD。

测试过程中,我们需要原图大小的类分数图。在 Figure 2以及Section4.1中,类分数图(class score maps)十分平滑,允许我们使用简单的双线性插(乘以8)值将其分辨率提高到原图大小。值得注意的是,FCN没有使用空洞算法,产生粗糙的分数图(降采样因子为32)。这就使得必须学习上采样层,极大提高了系统的复杂度和训练时间:微调网络,我们需要10个小时,但是他们需要数天。

3.2、Controlling the Receptive Filed Size and Acceleratiing Dense Computation with Convolutional Nets

我们在重新设计网络进行密集分数计算时,需要明确控制网络的感受域大小(receptive filed size)。现在很多基于DCNN的图像识别方法都是依赖与ImageNet上预训练的分类网络。那些网络都有较大的感受野:比如VGG-16,考虑网络的卷积部分,它的感受野是224x224(with zero-padding)和404x404像素。如果将网络转为全卷积网络,那么第一层全连接有4096个7x7的卷积,也会为密集分数图(dense score map)的带来计算瓶颈。

我们通过空间将采用来解决这个问题,也即是将第一层FC大小变为4x4或者3x3。这会降低网络的感受野到128x128(with zero-padding)或者308x308(全卷积模式下),那么会使得第一层FC的计算时间降低2-3倍。使用caffe以及Titan GPU,使得基于VGG的网络训练很高效:给定306x306大小的输入图像,产生39x39密集的特征图,测试速度达到8FPS,训练速度3FPS。我们也尝试降低全连接的通道,从4096到1024,但是并没有降低太多的计算时间和内存,见Section5。使用更小的AlexNet网络,可以达到实时的速度。

4、Detailed Boundary Reconvery: Fully-Connected Conditional Random Fields and Multi-Scale Prediction

4.1、Deep Convolutional Networks and the Localization Challenge

如 Figure 2 所示,DCNN特征图可以反应目标的大概位置和形状,但是不能获取到像素点级的轮廓。卷积网络在分类精度和定位精度存在平衡点:带有很多池化层的深度网络适合分类任务,但是分类网络的不变性以及大的感受野使得不适合得到更加精确的信息。

最近的工作提出两个方向来研究定位问题。第一个方法是利用网络不同层次的信息来估计更精确的目标边界。第二个方法是借助超像素表达,使用低层次的分割方法估计边界。

在Section4.2中,我们提出新的方法:结合DCNN的识别能力和CRFs的精确定位能力,实验表明该方法对于定位问题非常适合,获得精确的分割结果,并且恢复了目标比较清晰的细节结构。

4.2、Fully-Connected Conditional Random Fileds for Accurate Localization

传统上,条件随机场(CRFs)被用于平滑有噪声的分割图。一般情况下,这些模型包含一项能量项:结合临近的节点,将空间临近的点标注为同样的标签。定性的说,短距离的CRFs的主要功能是将错误的预测(建立在人工设计特征上的弱分类器)剔除。

与这些弱分类器相比,现代的DCNN结构产生的特征图和分类标签更好。如图2所示,这些分数图非常平滑,并且产生了均匀的分类结果。这种情况下,使用短距离的(short-range)CRFs不是很有效,因为我们的目标是恢复局部的细节结构,而不是进一步平滑。使用对比度敏感的能量以及local-range CRFs能够提高定位结果,但是仍然丢失了细节结构,并且需要解决高代价的优化问题。

为了克服short-range CRFs,我们使用fully connected CRF模型,该模型的能量函数如下:

x是像素点的标签,我们使用一元对数函数表示,这里是由DCNN计算的赋给像素i的标签概率。成对的能量表达为:,这里,否则就是0。对于图像的每一对像素点,无论他们空间上的距离多远,有约束项进行限制,模型的关键图是全连接的。高斯核的每一个依赖于对像素对(i,j)提取的特征,权重参数为。我们采用双边位置和颜色项,尤其,核函数如下:

公式中,第一个核函数依赖于一对像素位置(p)和像素的颜色强度(I),第二个核函数仅仅依赖像素的位置。超参数控制高斯核的尺度。

关键的,模型必须能够高效的逼近概率推断。信息的更新是通过一个可以完全分解的平均域,它可以再特征空间表达带有高斯核的卷积。高维的滤波算法可以极大的加速这种计算,在PASCAL VOC平均达到0.5s。

4.3、Multi-Scale Prediction

基于最近比较好的研究(Hariharan2014,Long2014),我们提出一个多尺度预测方法,可以提高边界的定位精度。值得注意的是,我们在前四层最大池化层后面添加两层MLP(第一层:128 3x3卷积核,第二层:128 1x1卷积核),然后将所有的特征图连接到网络最后一层特征图。那么最终输入到softmax的特征图总共5*128=640个通道。我们仅仅调整最新的权重,其它部分的权重使用预训练部分的。如实验中讨论的,引入额外的来自最好分辨率层的直连有助于提高定位的结果,但是效率没有全连接的CRF好。

5、Experimental Evaluation

Dataset 测试DeepLab模型的数据集为 PASCAL VOC2012 分割标准数据集,包含20个前景类和一个背景类。数据集分布:训练集、验证集和测试集分别为1464,1449,1456。同时,我们也添加了额外标注的数据,包含10582个数据。评价标准是21类上的像素IOU。

Training 我们采用最简单的分段训练的方式,分为DCNN和CRF的训练,在训练CRF的过程中,固定DCNN的网络。

训练DCNN过程中,我们采用的是预训练的VGG-16。在该网络上进行微调,优化器为SGD,损失函数为交叉熵。batch size为20,初始学习率为0.001(0.01 for the final classifier layer),每2000步学习率乘以0.1。momentum为0.9,权重衰减为0.0005。

当微调DCNN之后,根据方程 2,我们交叉验证全连接CRF。使用默认的超参数值,然后再100张图上搜索最优的参数。我们使用从粗到精的策略。

Evaluation on Validatiion Set  大部分验证集在PASCAL数据上,在增强的PASCAL训练集上。如Table.1(a)所示,合并全连接CRF到我们的模型中(DeepLoab-CRF),相比于DeepLab产生较好的结果,提升4%。

从视觉层面来说,我们提供了DeepLab和DeepLab-CRF的图像对比,见图7。添加CRF能极大提高结果,获得更好的边界。下图,第一行是DeepLab,第二行是DeepLab-CRF。

Multi-Scale Features 我们同样融合了中间层的特征,如Table.1(a)所示,添加多尺度的特征的模型(DeepLab-MSc),准确度提升1.5%,而进一步添加CRF(DeepLab-MSc-CRF)后,精度提升4%。DeepLab和DeepLab-MSc参考Fig.4。

Field of View  借助空洞算法(atrous algorithm),我们可以通过调整输入滑动(input stride)来控制FOV(Field of View),见 Figure 1。Table.2中,第一层全连接层中,给出了不同卷积核和输入滑动大小的结果。DeepLab-CRF-7x7直接对VGG-16进行修改,卷积核大小为7x7,输入滑动为4。该模型在验证集上产生67.64%的准确度,但是训练速度很慢(每秒训练1.44张图)。通过将卷积核大小改为4x4,训练速度提高到2.9张图片。我们对比了不同版本的FOV网络,DeepLab-CRF和DeepLab-CRF-4x4。后者拥有更大的FOV,并且获得更好的结果。最终我们采用卷积核大小为3x3,输入滑动为12,并且将最后两层的卷积核个数从4096变为1024。有趣的是,DeepLab-CRF-LargeFOV和DeepLab-CRF-7x7模型效果一样。与此同时,训练速度更快,参数更少。

Comparison with State of Art:图6中,我们与FCN-8s和TTI-Zoomout-16作了对比,我们的模型能够获得更加复杂的边界。

Reproducibility 我们使用Caffe框架,并且公布了我们的代码,配置文件和训练的模型,链接:https://bitbucket.org/deeplab/deeplab-public

Test Set Result 我们在官方的测试集上评测了我们的模型。其中,DeepLab-CRF和DeepLab-MSc-CRF分别获得了66.4%和67.1%的平均IOU,并且都优于之前的的最好的模型。其中,DeepLab-CRF-LargeFOV获得70.3%,与DeepLab-CRF-7x7结果相当,但是速度更快。更进一步,我们最好的模型,DeepLab-MSc-CRF-LargeFOV获得71.6%。

6、Conclusion

本文结合DCNN和CRF思想,提出新的语义分割方法,并且获得相对精确的结果,并且计算效率高。我们的算法优于之前最好的模型。我们的模型由很多可以优化的地方,比如将DCNN和CRF合并,形成端到端的训练模式,而不是分开训练。我们也在尝试实验更多的数据集,并且将我们的方法用在深度图和视频中。最近,我们使用弱监督训练,应用在包围盒和图像层面的标签。

 

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值