1. 引言
一张数字图像中往往包括丰富的语义信息,包括不同种类的物体、背景等等,通过将图像中的每一个像素划分为不同的区域,来区分出图片中的不同主体类别,从而为后续的图像处理提供便利。这种为图像语义信息提供像素级标注的任务称为图像语义分割,其建立在更简单的视觉任务(例如图像分类和目标检测)的基础上,提供了更为精确的判别信息。
得益于大规模高精度标注数据集的出现和深度模型语义表征能力的不断增强,基于深度学习的图像语义分割方法已经取得了显著的性能提升,能够在标注样本充足的情况下实现准确分割。与传统的语义分割算法相比,现有的基于卷积神经网络的语义分割算法具有表征能力优越、分割性能良好等优势。然而,全监督图像语义分割算法对数据高度依赖,需要大规模、高质量的标注数据进行模型的监督训练,且现有的图像语义分割算法在泛化能力不足的问题,严重阻碍了分割算法在实际场景中的应用。
针对上述问题,基于多种学习方式的语义分割相继被提出,包括半监督、弱监督、小样本、零样本语义分割等等。其中小样本语义分割旨在利用少量的标注数据对未知类别实现预测,并且在训练和测试过程中都有少量标注数据可供学习,比较符合实际应用场景。然而可学习样本量较少,对模型的学习和泛化能力提出了很高的要求,小样本语义分割目前仍是一个充满挑战性的任务。
在目前的小样本分割研究中,研究人员利用元学习 [1] ,原型网络 [2] 等方法实现了较为可靠的分割结果。但目前的研究仍受限于两个因素,即支持集和查询集之间的类内差异,以及训练集和测试集之间的类间差异。较大的数据差异导致模型的类别表征能力,以及由支持集向查询集,训练集向测试集的知识迁移能力下降,削弱了分割性能。
本文提出了一种基于多尺度先验信息融合的小样本语义分割方法,通过利用高级特征提取多尺度先验掩码,并添加尺度间信息交互和加权组合,为模型学习补充类别相关信息,降低类内差异的影响,在主流数据集上取得了更好的分割性能。
2. 小样本语义分割算法基础
2.1. 元学习
为了提高小样本限制条件下模型的泛化能力,现有小样本语义分割算法通常采用元学习范式。元学习(Meta-Learning)也被称为“学会学习(Learning-to-Learn)”。元学习本质上是双层优化问题(Bilevel Optimization Problem),其中一个优化问题嵌套在另一个优化问题中。其核心思想是在多个学习阶段改进学习算法的过程。
元学习有两个层面的含义。第一层指的是让模型学会如何学习,从而具备分析和解决问题的能力,提高在任务处理方面的能力。第二层指的是元学习旨在使机器学习模型更好地适应新领域,使其能够成功处理具有较大差异性的新任务。因此元学习非常适合解决小样本语义分割问题。
在任务上,与一般深度学习过程类似,元学习主要分为元训练和元测试两个阶段。元学习的基本单位是样本集(Episode)。元训练集、元验证集和元测试集都是由抽样样本组成的样本集集合。在元训练阶段,利用元训练集和元验证集去学习类别变化的情况下模型的泛化能力。在元测试阶段,面对全新的类别,无需变动已有的模型,只需要通过一部或者少数几步训练,就可以完成需求。
2.2. 任务设定
小样本语义分割和一般的语义分割的任务设定不同,一般的语义分割任务是分割出多种类别的物体。而当前小样本语义分割任务的研究重点是二类分割,只分割前景类别和背景类别。
基于元学习的小样本分割算法设计中,引入大量训练类别的带标签图片样本构造训练任务集。在每个训练任务上通过训练阶段和测试阶段用带标签图片来训练和测试模型。这里的测试图片和训练图片(也被称为未见过类和已见过类)来自同一数据集C。按照未见过类和已见过类划分数据集C为两个数据集,分别为Cunseen和Cseen,且二者交集为空。
与小样本图像分类任务类似,小样本语义分割任务采用N-way K-shot设定,即在数据集中采样选取N个类别,每个类别包含K个样本的样本集来作为一个基本单位。来自Cunseen和Cseen的采样分别作为训练集Dtrain和测试集Dtest。其中,
,
和S,Q,Ntrain,Ntest分别代指支持集、查询集、训练阶段和测试阶段的需要抽取的批次数。每一个支持集查询集对
作为一个基本的分割样本集,每个
中包含K个带标注的图片,而每个
只包含一个带标注图片。
在训练过程中,模型利用支持集中的信息来指导查询集上的分割任务,多次不同的采样使得训练过程中包含多个不同的分割任务,因此可以泛化到其他分割任务中。模型训练完成后,在测试集中进行类似的过程,根据测试集对其进行微调,使得模型可以完成新类中的分割任务。
3. 基于多尺度先验融合的小样本语义分割算法
3.1. 网络架构
Figure 1. Overview of the few-shot semantic segmentation model proposed in this paper
图1. 本文提出的小样本语义分割模型架构
本文模型主要包括特征提取骨干网络,掩码平均池化,多尺度权重自适应特征融合模块,多尺度先验掩码生成模块,分类器。
其中,模型以数据划分的样本集作为元训练或元测试的基本单位,样本集中包含的支持集图片和查询集图片分别使用基于特征提取骨干网络进行特征提取,并将中层特征保留;支持集图片的中层特征经过掩码平均池化提取原型,用以后续指导分割;支持集图片的高层特征作为多尺度先验掩码生成模块的输入,计算其与查询集图片高层特征的相似度,得到多个尺度的先验掩码;最后,查询集图片中层特征、支持集原型、多尺度先验掩码共同送入多尺度特征融合模块,综合信息;最后使用分类器对融合特征进行分类,得到查询图片预测,并与查询集掩码计算交叉熵损失。整体网络架构如图1所示。
在特征提取上,本研究使用基于ImageNet [3] 预训练的ResNet骨干网络提取支持集和查询集图片特征。参考CANet [4] 和PANet [5] 的设置,在元训练和元测试阶段,本研究将使用ImageNet预训练后的ResNet骨干网络的参数冻结,使用权重共享的网络对支持集和查询集进行特征提取,从而避免模型过拟合,偏向于基类。对于K-shot场景,本方法将多张支持特征求和取平均值作为输出特征。
Figure 2. Convolutional classifier network structure
图2. 卷积分类器网络结构
首先,对于支持图片Is和查询图片Iq进行中层特征提取,获得支持特征
和查询特征
。骨干网络为使用经过ImageNet预训练的ResNet骨干网络进行中层特征提取。该中层特征是将ResNet的layer2和layer3的输出特征按通道维度串联得到的。
使用掩码平均池化获得支持集前景原型后,由多尺度先验掩码生成模块利用支持集和查询集的高层特征生成多尺度先验掩码,然后共同送入多尺度特征融合模块,获得融合特征。
经过上述过程处理后,模型得到了融合查询集特征、支持集特征、多尺度类别信息的融合特征,需要最后对该特征进行像素级分类,得到最终的分割结果。
本研究中选择以使用卷积作为分类工具。该卷积分类器由一个卷积块和一个分类头组成。卷积块由两个3 × 3卷积组成,并添加了残差连接。分类头依次由3 × 3卷积、1 × 1卷积、Softmax激活函数组成。该卷积分类器如图2所示。
使用卷积分类器对特征进行分类后,得到最终的查询集预测图Mpre。将该预测图Mpre与数据集中的查询集掩码Mq计算交叉熵损失,作为模型训练的主要损失函数。
3.2. 多尺度先验掩码生成
出现类内差异的很大原因之一是同一类物体的大小尺寸差异,为了模型在类内差异较大的场景下的性能,需要提高模型对于多尺度信息的学习能力。此外,使用CNN网络提取的高层特征能够更好的反应物体的类别信息,因此为模型增加对高层特征的学习能够增强类相关信息,增强对同类物体的识别能力。
基于上述问题,本章节提出了多尺度先验掩码生成模块。该模块的流程如图3所示。
Figure 3. Multi-scale prior mask generation module structure
图3. 多尺度先验掩码生成模块结构
具体而言,为了增强模型对于前景类别的信息的辨别能力,本研究选择在ResNet的最后一层前为支持集特征增加掩码过滤,其公式表达如下:
(1)
其中,
为ResNet网络的layer-4,
通过插值将
上采样或下采样至与
相同的大小。
得到支持集输入特征
和查询集输入特征
之后,需要计算二者的余弦相似度作为
的先验掩码。此时,
,将二者按照像素划分为
个向量,则对于向量
和
计算相似度后求取平均值,其公式表达如下:
(2)
然后将相似度组合拼接为相似度图,其公式表达如下:
(3)
其中
,为了使先验掩码的像素数值归一化,使用min-max标准化对概率图进行处理,使其像素数值在[0,1]范围内,其公式表达如下:
(4)
此处ϵ为一个极小值,防止分母为0导致计算失败,在本实验中ϵ = 1e−7。
得到第一层的先验掩码后,为了拓展到下一个尺度的先验掩码生成,首先对上一层的查询集输入特征使用池化操作进行下采样。同时为了增强不同尺度之间的信息交互,减少池化操作带来的信息损失,本研究在池化操作之前使用上一层的先验掩码对查询集特征进行过滤,其公式表达如下:
(5)
获得下一层的查询集输入特征之后,使用双线性下采样将上一层的支持集输入特征变换为相同尺寸,与第一层的操作类似,同样为支持集特征进行掩码过滤,其公式表达如下:
(6)
得到第二层的输入特征后,采用相同的操作进行后三层的先验掩码生成,合并第一层的结果后,输出最终的多尺度先验掩码。
3.3. 多尺度权重自适应特征融合
为了进一步增强模型对于多尺度物体的学习能力,融合所得特征以及先验掩码,直接利用原型进行度量匹配不能满足小样本语义分割的需求。在提控多尺度空间信息上,为模型添加ASPP (Atrous Spatial Pyramid Pooling)模块 [6] 是一个合理的选择,然而直接使用这些模块处理特征存在一些问题:1) 这些模块可以为合并后的融合特征提供空间信息,但无法在每个尺度内进行特定的细化过程。2) 没有考虑到不同尺度之间的层次关系。3) 没有考虑到不同尺度信息的权重问题。
为了解决上述这些问题,本研究借鉴PFENet [7] 的特征丰富模块,融合多尺度先验掩码,并为每个尺度增添自适应权重,提出了多尺度权重自适应特征融合模块。模块的整体架构如图4所示。
Figure 4. Multi-scale weighted adaptive feature fusion module structure.
图4. 多尺度权重自适应特征融合模块结构
具体而言,本模块的算法流程如下:
1) 特征融合
为了进行多尺度的信息融合,并对每一个尺度信息进行细化和加权,首先需要对每一个尺度的特征分别进行融合。对于查询特征
首先使用平均池化生成对应尺度的查询特征
,其公式表达如下:
(7)
其中Hi和Wi为第i层多尺度特征的高度和宽度。
对于支持集前景原型
将其扩张为对应的尺度大小
,其中
。
将拓展至四个尺度的查询特征
、支持集前景原型
,以及由多尺度先验掩码生成模块提取的多尺度先验掩码
三者按照通道维度串联,并使用1 × 1卷积进行特征融合,其公式表达如下:
(8)
其中
为融合后的多尺度特征,其中
,concat为按通道维度串联。
通过扩展特征到多个尺度,这种自上而下的合成路径能够自适应地将信息从精细特征传递到粗略特征,可以在特征融合模块中更好的建立层次关系,减少不同尺寸物体带来的类间差异影响。
2) 尺度间连接
特征融合模块将多个尺度的特征信息水平的融合在一起,为了增加尺度间信息的交互能力,即在垂直方向上进行信息融合,需要进行尺度间的信息连接。
首先将第一层融合
特征使用两层3 × 3卷积进行转换,其公式表达如下:
(9)
其中:
(10)
其中
为3 × 3卷积,
为跨尺度融合的中间结果。
接下来将后续的每一尺度的融合特征与上一层次的特征进行融合,其公式表达如下:
(11)
将尺度信息由上自下完成后,为每一个尺度的融合特征添加残差连接,其公式表达如下:
(12)
其中,
为该模块第i个尺度的最终输出结果。
融合后的特征可以看作代表了各个尺度的完整特征信息,对这些特征进行分类后得到的预测图与数据集掩码进行对比,设置辅助损失函数,可以更好地约束模型在各个尺度的特征生成质量。在这里,本文对每个尺度使用与前文相同网络架构的分类头进行预测,其公式表达如下:
(13)
3) 加权组合
在得到上一个模块的多尺度特征
后,为了进行后续融合和分割,需要首先将各尺度特征统一至查询集图片的大小。经过上采样后得到融合特征
。本研究认为,对于不同的物体,不同尺度的特征的重要性不同,因此需要对每个尺度的特征赋予自适应权重,作为一种注意力机制,使模型更加关注于重要的信息。因此,为了生成权重,首先将各层特征沿通道维度串联,其公式表达如下:
(14)
接下来使用1 × 1卷积降低通道数,融合各层特征,其公式表达如下:
(15)
之后使用3 × 3卷积进一步降低通道数,并使用sigmoid函数进行标准化处理,为每一层特征生成权重矩阵,其公式表达如下:
(16)
得到的权重矩阵的每一个通道都代表着对其中一个维度的权重图,我们将其划分为四张权重图
,使用矩阵乘法依次为每一层特征加权,最后直接将各层特征相加,得到最终的输出结果,即将查询集特征,支持集前景原型以及代表了类别信息的查询集多尺度先验掩码三者融合,并在尺度内和尺度间丰富了特征信息后的融合特征。
4. 实验结果
4.1. 对比实验
为了证明算法的改进效果,本次实验中在PASCAL-5i和COCO-20i数据集上分别完成训练和测试,通过实际分割将改进前后的模型效果进行对比。在本实验中,本文采用ResNet-50 [8] 作为特征提取模块。本实验使用SGD作为优化器,动量设置为0.9,权重衰减设置为1e−4。对于PASCAL-5i,本实验对每个子集训练200个epoch,初始学习率为5e−3,批处理大小设置为4。对于COCO-20i,本实验对每个子集训练50个epoch,初始学习率为5e−3,批处理大小设置为8。
为了确定基线模型,本实验将所提出的多尺度先验掩码模块替换为单一尺度先验掩码生成,并将该掩码通过下采样方式插入至多尺度权重自适应特征融合模块中的特征融合模块,最后将多尺度权重自适应特征融合模块中特征融合模块意外的部分替换为ASPP模块 [4] 以获取多尺度信息。该基线模型的基本架构如图5所示。
Figure 5. Baseline model structure using the ASPP module
图5. 使用ASPP模块的基线模型架构
为了量化所提出模型的改进效果,本章节首先在PASCAL-5i数据集1-shot场景下完成了训练和测试,使用ResNet-50作为特征提取骨干网络,使用mIoU作为评价指标,并与当今主流方法相对比。具体的实验数据如表1所示,其中“-”表示原论文未给出数据。
Table 1. Comparative experiments on PASCAL-5i
表1. PASCAL-5i数据集上的分割对比实验
根据本文还在COCO-20i数据集上完成测试,相比于PASCAL-5i数据集该数据集包含的类别更多,更具有挑战性。具体实验结果如表2所示。
Table 2. Comparative experiments on COCO-20i
表2. COCO-20i数据集上的分割对比实验
4.2. 消融实验
为了证明本文提出的各个模块的实际作用,本章节针对模块的每个组成部分在PASCAL-5i数据集的第0子集上进行小样本语义分割测试,对比不同设置以及功能应用的情况下对分割性能的影响。
对于基于多尺度先验信息合成的小样本语义分割模型,本文首先对多尺度先验掩码生成模块和多尺度权重自适应特征融合的使用效果进行消融实验。具体的实验数据如表3所示,其中ASPP [4] 模块为基类方法中替代多尺度特征融合模块的方法并去除辅助损失。不使用多尺度掩码生成模块时,使用单尺度掩码生成进行替代。
Table 3. Ablation experiments on each module
表3. 各模块消融实验
在先验掩码生成模块上,本文添加尺度间连接,在多尺度权重自适应特征融合模块上,本文添加了尺度纵向和横向信息交互,并为各尺度生成权重。为了验证这些信息交互的作用,本文为其进行了消融实验。具体的试验结果如表4所示。其中,去除尺度权重时,本文选择用直接相加的方式进行最终特征融合。从实验结果可以看出,同时使用多种尺度交互,并为其赋予权重时分割效果最好。
Table 4. Ablation experiments on inter-scale information interaction
表4. 尺度间信息交互消融实验
对于尺度间连接模块中使用的辅助损失函数,本文也进行了消融实验。实验结果如表5所示。从实验结果中可以看出,同时使用分割损失和辅助损失时的分割效果最好。
Table 5. Ablation experiments on loss functions
表5. 损失函数消融实验
5. 总结
为了降低类内差异对小样本语义分割模型的影响,本文在基于原型提取和卷积分类的基础架构上提出了两个模块。多尺度先验掩码生成模块生成多尺度先验掩码,代表类别相关信息,增强类内的信息交互。为了融合多尺度特征,多尺度权重自适应特征融合模块为各个尺度进行加权融合,并增加尺度间和尺度内信息交互。在多个对比实验和消融实验中,证明了本文提出方法的有效性。