语义分割可学习反卷积网络
摘要
本文通过可学习的深度反卷积网络提出了一种新的语议分割算法。本文的网络是在VGG16基础上开发的。反卷积网络由反卷积和反池化层组成,主要完成像素级分割和预测分割蒙板。我们训练好的网络框出输入图片和使用简单的方法把所有框出来的结果结合起来最终完成分割。本文提出的算法减轻了已经存在的基于框级预测和深度反卷积的限制。我们的分割方法本质上可以分析出细节结构和处理物体的多尺度。我们的网络在PASCAL VOC2012数据集上有很好的表现,与现有的除了使用 微软COCO数据集的其它集成全卷积网的方法相比我们获得了72.5%的良好效果。
引言
卷积网络在图像分类,目标检测,语义分割,视觉跟踪和行为识别方面都得到了广泛的应用。CNN的表现能力已经得到了巨大的成功。从CNN提取特征和简单的分类合并使用得到了很好的表现。受到在分类问题成功表现的鼓舞,许多研究者研开始着手进行结构预测问题,例如,语义分割,人姿势估计等等。
最近基于CNN的语义分割算法已经开始被用于解决结构化像素级标签问题。他们他们转换现有的CNN结构形成全卷积网络(FCN网络)。他们从每个小区域中得到粗糙的标签,并且利用双线性插值形成简单的反卷积,最终得到像素级预测。使用CRF对于输出的图的后处理会得到细致的分割。基于FCN方法的主要优势是能输入全尺寸的原图,而且还能快速准确的分割。
基于FCN的语义分割有一系列限制。第一,网络刚开始就需要用到固定尺寸的感受野。因此比感受野大或小的目标就会形成错分或漏分。换句话说,本来是一个东西,结果分成了多个。同样,有些小目标容易被分成背景。尽管有人使用跳连结构去解决这种限制,但是并不是简单的把局部信息与全局信息结合就能解决的。
第二,目标的细致结构会因为输入特征图太粗糙或过程太过简单造成损失或光滑。
值得注意的是,在原FCN中,分割通常是使用简单的双线性插值完成图像还原的。另外一个,深度反卷积网络很难在大数据集上得到边界的精确的分割。然后,最近的有些人用CRF去解决这个问题。
这个解决这些限制,我们开发了一种基于CNN不同的方法,我们的贡献如下:
我们开发的反卷积网络主要由反卷积,反池化和激活函数组成。这种用于语义分割的可学习的深度反卷积网络是非常有意义的,据我说知,还没有人开发。
使用已经训练的网络对单独目标进行标注并框出,并得到实例级分割,并和最后的语义分割的结果进行融合,这样可以解决原FCN的尺度问题和得到更出细了的问题。
我们在PASCAL VOC2012数据集上进行训练得到了很好的结果,并且通过融合在FCN上改进的算法得到更好地精确效果。
我们相信这3个贡献,可以让PASCAL VOC2012 的结果到达一个更高的高度。
2. 相关工作
CNN在许多视觉问题中都得到了广泛的应用,并且在语义分割中也使用的很广泛。我们首先总结一下目前基于监督学习的语义分割的算法。
下面先介绍几种基于分割的语义分割的方法。Mostajabi和Farabet等人把多尺度超分辨率图像分类成预定义的几个类,并且把像素级分类的结果合并起来。一些算法把目标分为区域框,并且把图像级分割结果通过映射得到最终的分割。
在语义分割方面应用的全卷积网络FCN也得到重大的突破。在FCN中,在标准CNN中的全连接层被大感受野卷积代替,并且通过前馈一个输入图像,得到粗糙的分类评分映射,最终得到分割。在图像分割领域中,现在比较热门的思想是在反卷积中使用单层插值,并且只有通过网络中的CNN部分被精细训练从而直接得到反卷积。上面提出的网络在PASCAL VOC中得到了非常好的结果。Chen等人使用FCN框架,并且预测像素级标签和使用全连接CRF重新下义标签映射,从而得到更密集分数映射。而在我们的工作中对浅层的编码器和解码器模型进行研究,但是其结果并不太好,和没有用深度学习的方法差不多。
除了监督学习方法,还有几种弱监督学习方法现在也在使用。当输入图像只有边界箱辅助时,通过迭代重新定义辅助方法,从而获得更精确的分割结果。另一方面,在多实例学习框架中只用了图像级辅助的语义分割方法。我们的方法中使用了全部辅助中的小部分去解决语义分割问题。
语义分割用到了反卷积,但是可学习的反卷积网络目前研究的比较少。反卷积网络可以通过从特征中得到图像的重构。通过存储池化定位来解决由最大池化所引起的问题,从而形成了反池化操作。这种方法也被用于在训练好的CNN中的特征,并也可以更新网络架构使其表现更好。这种可视对于训练好的CNN模型的理解是非常用的。另外一个比较有意思的有关于反卷积的工作是使用很少关于椅子类别,视解和转换的参数就可以产生椅子。
3. 系统架构
这部分将会讨论反卷积网络,描述全部语义算法。
3.1 架构
我们的网络主要由2部分组成:卷积和反卷积网络。卷积网络主要完成特征提取,将输入图像转换为多维特征,而反卷积网络是一个形状形成器,它主要把卷积网络中得到的特征用于目标分割。网络的最终输出是与输入图像相同的概率图,它指示了某一像素属于某一个预分类的概率图。
我们的网络框架中卷积部分主要用的是VGG16,但是最后的分类层被去掉了。我们的卷积网络共有13层,在卷积层之间有时会用到池化操作,并做了一些小改动。2个全连联层在最后用于分类预测。我们的反卷积网络在卷积网络的镜像,并有多个反池化、反卷积层、和一种变种层。与通过前馈实现的激活层的尺寸缩小的卷积网络相反,反卷积网络通过合并反池化和反卷积操作,增大了激活特征。提出的反卷积网络更多细节将会在下面被说明。
3.2 分割反卷积网络
我们讨论主要两操作,反池化和反卷积,在我们反卷积网络中详细介绍。
3.2.1 分割的反卷积网络
在卷积网络中的池化主要功能是在带有单个表达值的感受野中通过抽像激活过滤低层噪声。尽管它可以通过保留上采样层中的健康的特征进行有效的分类,但是使用感受野的空间信息会在池化过程中丢失,这可能是在语义分割中精确得到结果的关键因素。
为了解决这个问题,我们利用在反卷积层中反池化层,它主要是对池化的反向操作,重构特征的原始尺寸。为了利用反池化操作,我们也参考了别人的相似的操作,它记录了在池化操作过程中最大特征的选择的定位,之后我们再把每个特征点放回原始的位置。这样的反池化的方法对于重构原始输入图像的结构是非常有用的。
3.2.2 反卷积
反池化的输出会使特征图变大,然后却是稀疏的。反卷积层可以使把这些稀疏特征图变得密集想起来。其主要操作是通过带有多个训练的卷积核进行类似的卷积操作。然而,卷积是使用一个卷积核对应多个输入特征输入,结果输出1个特征图,与卷积层相反,反卷积是1个输入对应多个输出。反卷积层会使特征图变得更大,变得更密集。 我们裁剪激活图的边界去保持输出图的尺寸等同于反池化层的大小。
这个在反卷积层可学习的卷积核主要是完成重构输入特征的形状。因此,与卷积网络相似,反卷积层的层次结构被用于捕获不同的形状细节信息。在低层的卷积核通常用于获得全局形状,而精细的类信息一般是在更高层。以这种方式,网络把类的精细的特殊形状的信息考虑到语义分割中,这点在其它的方法中的网络层中通常容易被忽略。
3.2.3 反卷积分析
在提出的网络中,反卷积网络是精准分割的关键点。与实现粗糙的特征的简单的反卷积网络相反,我们的算法,我们的网络使用深度反卷积网络产生目标分割蒙版,并且通过一系列的反池化,反卷积,改造得到密集的像素级的类概率图。
我们可以得到在反卷积传播过程中得到粗糙到精细的目标结构;低层通常获得粗糙的信息(位置,形状和区域),而更多细节信息主要是在高层中获得。注意反池化和反卷积对于构造分割蒙版起到了关键性的作用。反池化主要是通过保存在原图中的位置从而获得实际结构。那么,这样可以使用更精细的分辨率来重构更细节的信息。另一方面,在反卷积层中的可能学的卷积核主要是获得类的形状。通过反卷积,目标类的相关特征被放大,而其它区域没用的信息则被有效的压制。通过反池化和反卷积的合并,我们的网络产生了精确的分割图。
通过与FCN-8S相比,我们的网络更加密集,更加准确。
3.3 系统总体
我们的算法主要是解决语义分割中的实例分割的问题。考虑到我们的网络,在整个图上的语义分割是从图像上的每个后选框上提取征特征,并且在原始图像空间上把所有的框中的输出进行汇总。
实例级分割在图像级预测中基本没什么优势。它可以有效的处理各种尺度的目标,而带有固定感受野的方法,还是有一些问题的。并且,它可以通过减少预测的搜索空间和减少对内存的需求,从而减轻训练的复杂度。
4. 训练
全部网络在前已经介绍完了,并且包含了大量的参数。除此之外,语义分割的训练的参数是非常少的,在PASCAL中训练和验证图像总共是12031个。训练例子的总数如果是受限的,那是没有必要的,我们使用下面的思想成功训练网络的。
4.1 批量正则化
由于内部相关变量转移问题,优化网络是比较难的,在每层的输入分布在训练期间经常要改变迭代,并且把前面层的参数进行更新。在通过层之间的传播,在分布上中的改变也会放大。
我们通过使用标准高斯分布对每层实现批量正则化去减少内部相关变量转移问题。这了实现这样的效果,在每个卷积和反卷积层后加上了批量正则化层。我们得到批量正则化是优化我们网络的关键,如果没有批量正则化,局部优化将是非常差的。
4.2 两个阶段训练
尽量批量正则化可以实现局部优化,但是语义分割的空间相对于训练的图像的数仍然是非常大的,使用反卷积网络去实例级分割将不在起作用。这样,我们使用两个阶段的训练去解决这个问题,首先我们使用简单的例子去训练这个网络,然后使用更复杂的图像去精细化训练这个网络。
为了实现第一阶段的训练,我们使用真实数据辅助去裁剪我们的图片,以致于,我们的目标就是裁剪后的框中间。通过限制目标位置和大小的变化,我们明显减少了语义分割的搜索空间,并且使用更少的训练例子去训练网络。在第二阶段,我们利用目标框去构建更有挑战的例子。使用充分的候选框(有部分重叠的真实图)去训练。使用候选框去构建训练数据使用网络更加健壮,而不会在测试时发生错位,但是因为明显不同的跨训练集的位置和尺度的问题,训练变得更难。
5. 推断
网络训练主要是训练去完成个体实例的语义分割。考虑到输入图像,我们首先产生足够数量的候选框,并且应用训练的网络去个体框的语义分割映射。然后我们统计所有后选框的输出去产生全图的语义分割。我们把我们的方法与FCN相结合去改善效果,我们在下面具体讲一下。
5.1 总结实例级的分割图
因为一些框由于目标或者与背景太紧密容易产生不正确的预测,我们应该减少在统计期间产生的噪声。相对于所有类的像素级的最大或平均评分映射,充分的证明我们的结果是健壮的。
定义第i框的评分映射为 。其中 WXH和C分别是框的大小和所属分类数。我们首先在gi外边进行补0操作。我们在原始图中中的对应于gi分割映射乘以Gi。然后我们构建像素级类评分映射,最终得到全部框的统计输出如下:
或者
在原始图像空间中的类条件概率映射通过应用softmax函数获得。最终,我们应用全连接CRF输出最终像素级的分类,其中,一元势函数是从像素级条件概率映射中获得。
5.2 与FCN融合
基于反卷积网络的算法对于FCN来说有互补的特性,我们的反卷积网络主要是捕获目标的细节,而FCN更擅长提取全局目标的全局形状。除此之外,实例级预测对于处理各种各样尺度的目标是非常有用的,而带有粗糙范围的全卷积网络可能对于捕助图像内容更有优势。利用这些各种各样属性可能会得到更好的结果,我们通过把这些算法进行融合得到更好的结果。
我们开发了一个简单的方法把这些算法的结果进行了融合。通过将一张输入图片通过提出的方法和FCN两种方法进行分别的计算,并得到两套类条件概率映射,我们计算出输出图的均值和使用CRF获得的最后语义分割。
6. 实验
这部分首先描述了我们的固体实现细节和实验设置。然后我们分析和评估了各方面的效果。
6.1 实现细节
数据集
我们使用了PASCAL VOC2012分割数据集去完成训练和测试。对于训练,我们使用了[9]中提到的分割辅助,其中所有训练和验证图像用于训练我们的网络。我们的网络的使用测试图像进行了评估。注意在训练时才使用PASCAL VOC2012扩大数据集,而一些知名的算法用的是Microsoft COCO改善效果。
训练数据构造
我们利用两个阶段的策略和在每个阶段分别对数据集进行训练。为了对第一阶段构造训练数据集,我们得到了一个比较准确的边界箱,并且拓展这个箱1.2倍大去包括局部内容,然后我们裁剪方型窗口让其更加贴紧边界框从而获得训练结果。对于每个裁剪区域的裁剪区域的类标签都是基于图像中心定位的,而所有其它的像素标签都被定义为背景。在第二阶段,每个训练实例都是从第一阶段的目标框中提取的,而所有相关的类标签都被用做辅助。我们利用相同的后处理去包括内容。对于数据集,我们通过增加有限的各类的冗余的数据维持各层数据的平衡。
优化
我们利用基于Caffe框架的框网络。网络采用带有动量的标准的随机梯度下降方法实现优化。初始学习率为0.01,动量为.9,权重衰减率为0.0005。我们使用在ILSVRC数据集中VGG16预训练的初始权重,而在反卷积网络中的权重以0均值的高斯分布进行初始化。我们移除drop-out层,这是因为[14]文章中批量归一化中提出的,并且为了量级的顺序而减少学习率,而验证准确率并没有得到改善。尽量我们最后的网络有训练和验证数据集,基于验证的准确率的学习率的调整还是根据经验进行调整的。
推断
我们利用边界箱去产生目标框。对于每个测试图像,我们产生大经销商2000个目标框,并且基于他们的目标评分选择前50个目标框。我们得到在实际上应用,这些数据量对于得到精准的分割还是充足的。为了获得全图像素级的类条件概率映射,我们计算像素级最大值去统计框级预测,使用的是公式(1)。
6.2 在Pascal VOC 上的评测
我们在PASCAL VOC2012评估我们的网络的分割效果,其中包括1456图片和有20个目标分类。我们选择comp6评价协议,对Iou进行真实值和预测分割效果进行评价。
提出算法和其它算法的定量结果在表1中展出,其中我们的方法叫DeconvNet。DeconvNet的效果是非常好的。CRF的后处理的确增加了1%的准确率。我们通过融合FCN-8s进一步的改善结果。融合FCN-8s和DeconvNet改善MIoU为10.3%和3.1%,其中如果单独用FCN-8s准确率还是比较低。我们相信这是由于我们的方法和FCN是互补的。一种融合的方法称为EDeconvNet在PASCAL VOC2012数据集上获得了最优秀的结果。
图6 证明了实例级的精准分割的效率。我们总结了在减少他们尺寸的框并且观察分割的过程。随着总结框的增加算法分辨精细物体的结构,这些典型的通过小框进行的捕获。
DeconvNet的定量结果,FCN和他们的融合方法在图7中展示出来。最后,DeconvNet比FCN更精确的分割,并且通过像素级预测处理多尺度。FCN在目标过大或过小在分类时容易失败,这是由于固定的感受野。当框错误或者定位为背景时,我们的网络有时也会产生噪声预测。集成FCN-8s的算法产生最好的结果。值得注意的是通过集成FCN和DeconvNet的融合不精确的预测有时会被改正。加上CRF改善了定量的效果,尽量效果不明显。
7. 结论
我们通过可学习的反卷积网络提供了一个新的语义分割算法。因为反卷积操作的一系列由粗糙和精细的构的重构,这种算法可以产生密集的精确的语义模板。基于实例级的预测算法通过消除FCN中固定感受野的限帽对于处理尺度变换进行处理。我们进一步做了集成算法,这种方法合并了基于FCN的相关算法,并且在由于算法之间的互补,在本质上获得了更好的效果。我们的方法在PASCAL VOC2012分割得到了很好的效果。