描述

原文:Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs

系列文章的第一篇,发表在2014年CVPR。

在语义分割中,通常会使用分类网络作为backbone。通过backbone之后会对特征图进行一系列的下采样,之后再进行一系列的上采样还原原图的大小

Abstract

深度卷积神经网络(deep Convolutional Neural Networks, DCNN)最近在高级视觉任务(如图像分类和目标检测)方面表现出了最先进的性能。

本篇文章结合了 DCNN 和概率图形模型的方法,来解决像素级分类任务(也称为“语义图像分割”)。作者认为,DCNN最后一层的响应无法在位置上进行准确的对象分割。这是因为使 DCNN 的非常不变性属性是适用于更高级任务的。作者通过将最终 DCNN 层的响应与完全连接的条件随机场 (CRF) 相结合,来克服深度网络的这种定位很差的缺点。

提出的“DeepLab”系统能够以超出先前方法的准确度,来进行语义分割。在数量上,在 PASCAL VOC-2012 语义图像分割任务测试集中达到了 71.6% 的 IOU 准确率。在GPU 上可以达到每秒 8 帧。

1.INTRODUCTION

DCNN在图像分类、目标检测等任务上,比人为设计特征(SIFT或HOG)等有着更优秀的表现。原因是,DCNN对局部图像发生变换有很好的适应性,支持了网络可以学到更高级的特征。但是对于低级视觉任务,如姿态识别、语义分割等,需要更精确的定位,而不是对空间信息的抽象表征。

标准DCNN的结构,对于执行语义分割任务,有两个设计缺陷:

1.不断的最大池化和下采样,导致分辨率不断下降,位置信息丢失。

参考DCNN的网络结构,特征层尺寸越来越小,深度越来越深。

2.DCNN为获得以对象为中心的决策,需要有针对空间变换的不变性,限制了模型的空间精度。

针对分类任务的DCNN,具备空间不变性。图像中狗的位置随机,网络分类结果不变。但分割等任务,是不具备空间不变性的。狗在图像上变化位置,分割的结果就应该不一样

DeepLabV1的提出有三个优点:1.速度快:即使CRF很耗时,但采用了空洞卷积。2.准确:比当时最好的方法准确率提升了7.2%。3.简单:主要由DCNNs和CRFs构成。

2.RELATED WORK

依旧跳过

3.CONVOLUTIONAL NEURAL NETWORKS FOR DENSE IMAGE LABELING

作者采用了开源的VGG16作为特征提取器

3.1 空洞卷积(the hole algorithm)

DeepLabv1使用了空洞卷积的思想,文中称为’hole algorithm’ (‘atrous algorithm’),也就是后来的空洞卷积 。作者在文中针对空洞卷积的图示也并不清晰,可以去看后人专门发表的空洞卷积论文:MULTI -SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS。这里我们简单按照Deeplabv1的思路来学习。

“Dense spatial score evaluation is instrumental in the success of our dense CNN feature extractor.” 第一句话怎么理解呢?

我们都知道VGG16的网络结构,最后有着3个全连接层。由于我们的任务是语义分割,需要得到“更密集”(或者说是更多)的代表位置的特征信息,如果网络能够让VGG16网络输出的特征图更大,对语义分割是更好的。VGG16在全连接层前得到的结果是7×7×512的,输入像素为224×224,意味着该层的感受野是32×32的。作者说了,为了更密集的检测结果(期望是感受野为8×8),需要对VGG16网络做出调整。

1.将VGG16最后的三个全连接层,替换为卷积层。

2.VGG16网络结构最后的两个maxpooling层,步长从2改为1,也就是不进行下采样了。

3.VGG16最后的三个卷积层用空洞率为2的空洞卷积,第一个全连接层改成空洞率为4的空洞卷积。

4.VGG16最后softmax后有1000个分类结果,DeepLabv1替换为了21路分类结果。

5.DeepLabv1最后的特征图大小为28×28×1024,经过softmax得到28×28×21。损失函数设置为,ground truth进行尺寸为8的下采样(因为感受野范围为8),每个位置的预测值与真值的交叉熵,再对交叉熵求和得到损失函数。ground truth下采样时,所有位置和标签的权重是相同的。

最后作者说,特征层28×28×21的结果如图2所示,非常平滑。所以可以用简单的双线性插值,上采样回原图大小。

3.2 控制感受野大小和加速密度计算

控制网络的感受野大小,是DeepLabv1另外一个重要的点。

作者认为,DCNN一般有非常大的感受野,而且其中的全连接层计算量很大,限制了它成为语义分割的可能性。

而上一节作者所提出的修改,降低了感受野的大小,306×306像素大小的输入图片,在最后可以得到39×39大小的更“密”的特征图。同时减少了计算量,使得计算加快了。

4. 详细的边界恢复:完全约束条件条件随机场和多尺度预测(CRF条件随机场)

4.1 深度卷积网络与定位挑战

如下图所示,DCNN可以预测出图像上的物体和大概位置,但不能给出精确位置及轮廓。这是因为,卷积神经网络的定位精度和分类精度存在天然的trade-off(权衡)。因为卷积神经网络中的最大池化层,在分类任务中会表现的更好。但是这种更好的空间不变性及更大的感受野,使得我们很难从网络输出层的结果中,得到物体的准确位置。

目前主流有两种做法:1.融合多个特征层来提高对边界的估计。2.用超像素的方法,本质上属于采用低级的分割方法来解决定位问题。作者采用了CRF,下面介绍

4.2全连接(FULLY-CONNECTED)的条件随机场( CONDITIONAL RANDOM FIELDS)

第一张图上面是输入图像,下面是分割真值。剩下四张图,第一行是DCNN进行softmax之前的结果,被称作“score map”。第二行是进行softmax之后的结果,被称作“belief map”。可以看出CRF迭代次数从1、2再到10次,分割效果的准确度越来越好。

之前,条件随机场 (CRF)用于平滑分割图的噪声 。通常,这些模型包含了耦合相邻节点的能量项,有利于对空间位置相近的像素进行相同的标签分配。可以这么说,小范围的CRF,可以消除一些由于手工设计特征带来的虚假预测。

与之前那些性能较弱的分类器相比,DCNN 的架构得到的score map和语义标签预测,已经大为不同。如图 2 所示,score map的结果通常已经相当平滑了,而且产生了类似的分类结果。在这种情况下,使用小范围CRF 可能让结果更糟。因为我们的目标是恢复详细的局部信息,而不是进一步平滑它。有些学者提出的local-range的CRF,又会丢掉一些细长形状的物体分割,同时求解优化问题代价大。

作者利用了全连接的CRF,模型采用的是类似于势能的公式,如下:

x代表像素点的标签。第一项是每个像素自身势能的求和,第二项是像素两两之间的相对势能的求和。具体可以去看论文原文。

有关条件随机场的内容可以自行去学习。总结一下DeepLabv1中的CRF

基本思想

  • CRF是一种概率图模型,用于对结构化输出(如序列或图像)进行建模。在图像语义分割中,CRF用于建模图像中相邻像素之间的依赖关系。
  • 在DeepLabv1中,CRF被用作DCNN模型的一个后处理步骤,旨在捕获像素之间的空间上下文信息,并优化分割结果。

模型结构

  • CRF定义了一个能量函数$$E(x)$$,该函数衡量了给定输入图像I和对应分割结果x的条件概率P(x|I)。
  • 能量函数$$E(x)$$包括一元势能和二元势能两部分。一元势能通常来自DCNN的输出,表示每个像素属于某个类别的概率;二元势能则定义了相邻像素之间的关系,反映了它们是否应该被赋予相同的标签。

优化过程

  • 在DeepLabv1中,CRF的优化过程通常通过迭代算法(如均值场算法或图割算法)来实现。这些算法通过迭代地调整每个像素的标签分配,以最小化能量函数。
  • 在每次迭代中,算法会根据当前的标签分配和CRF定义的能量函数,计算每个像素属于不同类别的概率,并根据这些概率更新标签分配。
  • 经过多次迭代后,算法将收敛到一个稳定的标签分配,该分配对应于能量函数的最小值或局部最小值。

作用与优势

  • CRF在DeepLabv1中的主要作用是优化DCNN的初始分割结果,特别是在边缘和细节方面。由于DCNN在处理图像时通常会丢失一些空间信息,导致分割结果的边缘不够准确或平滑,CRF通过建模像素之间的空间依赖关系,可以有效地改善这些问题。
  • 此外,CRF还可以捕获不同尺度上的上下文信息,从而进一步提高分割结果的准确性。在DeepLabv1中,这通过结合不同尺度的DCNN特征图来实现。

与DCNN的结合

  • 在DeepLabv1中,CRF被用作DCNN的一个后处理步骤,这意味着DCNN首先生成一个初始的分割结果,然后CRF对该结果进行优化。这种结合方式可以充分利用DCNN在特征提取方面的优势以及CRF在空间建模方面的优势,从而实现更准确的图像语义分割。

整个DeepLabv1的架构如下图:

输入图片,经过本文更改后的VGG16网络,得到了score map。在经过双线性插值的方法,上采样8倍恢复到了原图大小。随后经过全连接CRF,得到了语义分割图。

4.3 MULTI-SCALE PREDICTION 多尺度预测

DeepLabv1中又利用了一下多尺度预测是,目的是在处理不同大小的目标时,能够进一步提高图像语义分割的精度。这种技术允许模型在不同的特征尺度上进行预测,而不是仅在最顶层的特征图上进行预测。这样做的好处是,模型能够同时考虑到全局和局部的信息,从而更准确地分割图像中的不同目标。

作者给输入图像,和前四个最大池化层中的每一个,都加了一个两层 MLP感知机(第一层:128个 3x3 卷积滤波器,第二层:128个1x1 卷积滤波器),得到的新特征图直接连接到主网络的最后一层特征图。因此,传送到 softmax 层的聚合特征图会被 5 * 128 = 640 个通道增强。我们只调整新添加的权重,网络其他的参数仍继续用第3节提到的方法学习。

实验表面,这些额外的直接连接可以提高定位性能,但效果不如全连接CRF得到的结果那么显著。

5.实验

由于还有更新的DeepLab,这里只简单说几句:

1.多尺度预测虽然有效果,但没有CRF效果明显

2.调整空洞卷积的空洞率,和卷积核大小,可以在兼顾训练速度时达到较好的平均IOU准确度

3.对比已有方法,已经提升了,但是比ground truth在边界分割上还是有差距

总结

DeepLabv1,提出了空洞卷积的方法,得到了尺寸更大的score map。又用双线性差值恢复到了原图大小,利用了CRF进一步优化了结果。