金字塔原型对齐的轻量级小样本语义分割网络

2021-05-26 01:13贾熹滨
北京工业大学学报 2021年5期
关键词:池化分支金字塔

贾熹滨, 李 佳

(1.北京工业大学信息学部, 北京 100124; 2.多媒体与智能软件技术北京市重点实验室, 北京 100124;3.北京人工智能研究院, 北京 100124)

深度神经网络是解决计算机视觉问题[1-3]的有力工具. 图像语义分割是计算机视觉中一个经典难题,它的目的是对于图像中的每个像素都预测出其对应的类别,由于所有的像素都要考虑到,该任务也被认为是密集预测任务中的一种. 从20世纪70年代起图像分割问题就吸引了很多研究人员付出巨大的努力,然而,该领域的研究需要大量带密集标注的训练数据集进行支撑,这些数据集的收集成本高昂、耗时长,而目前的方法很难以数据有效的方式推广到不可见的对象类别. 因此,如何在数据集图片较少的情况下,对其进行图像语义分割,提高分割的效率以及分割结果的准确性,具有很大的研究价值.

由于人们对使用小样本学习方法从有限的数据中快速学习新的概念感兴趣[4-5],因此只需要几个带标签的样本就可以学会执行语义分割的小样本图像语义分割问题被提出[6-7]. 该研究的输入输出都是像素级别的,用于将任何像素注释集合从图像内部或跨图像类别传播到未注释的像素,以便进行推断. 近年来,小样本图像分割越来越受到人们的关注.

目前的小样本图像语义分割主要是采用双分支方法来进行像素的密集预测类别的. Shaban等[8]从小样本学习中获得灵感,首次提出了一种双分支方法来训练小样本图像分割模型. 第1个分支将标记的图像作为输入,并生成一个参数向量作为输出. 第2个分支将这些参数和新图像作为输入,新类生成图像的分割掩码作为输出. 同时,在PASCAL数据集上建立了具有挑战性的K-shot[9]语义分割任务的基准(PASCAL- 5i). Rakelly等[10]提出的co-FCN也包含了2条分支,调节分支将提取的支持特征与查询特征按通道连接起来,并将它们编码为特征或参数,语义分割分支根据这种编码条件生成查询集的分割结果. 这2个分支是共同学习并且端到端的. Hu等[11]探索了在网络的多个阶段进行引导,提出了一种多上下文引导结构,将支持分支和查询分支之间的从小到大的上下文特征融合起来,从而在全局上指导查询分支的分割. 同时引入了注意力模块,嵌入了Conv-LSTM模块进入网络端,更好地将特征图从支持集中融合到小样本语义分割中. Dong等[12]采用了原型网络的思想,并使用度量学习解决了小样本分割问题. 然而,该模型过于复杂,涉及3个训练阶段和复杂的训练配置,包括原型学习分支、分割分支以及计算在融合中使用的权重. 该方法基于图像级丢失提取原型,并以原型为指导调整查询集的分割,而不是直接从度量学习中获得分割.

根据对相关文献的分析,目前,基于小样本学习的图像语义分割算法研究较少,方法还不十分完善,特征融合方法较为单一,先前的研究没有考虑到全局上下文特征的关系,低级信息和高层信息息息相关,使得其错过很多细节信息. 语境关系在生活中是很重要的方面,科研中也具有普遍的关系,特别是对于复杂情景的理解,例如,“一只猫只可能在家里或者树上,不可能在天上飞”. 缺乏收集上下文信息的能力增加了错误分类的机会,需要充分利用多尺度[13]的语义信息以及支持集的信息进行语义分割. 同时,相关研究模型参数量较大,不利于实际的落地部署,在现实场景下,更加需要的是轻量级的模型.

在此基础上,本文提出了基于PANet[14]改进的轻量级金字塔原型对齐的小样本语义分割网络框架来解决这些问题. 同样采用双分支架构,第1个分支是条件分支,它以支持图像和注释作为输入,生成各类的原型向量作为输出. 第2个分支是分割分支,它以查询图像和原型作为输入,输出预测的分割掩模. 基础网络引用了MobileNetV2[15]的深度可分离卷积与倒残差结构,在不降低网络精度的情况下进一步减少了参数量,提高了算法的性能. 通过利用特征之间互补关系,使用空间金字塔池化模块[16]作为网络的基本组件,对多种不同金字塔尺度的特征进行融合,进行特征提取的操作,在提高性能的同时,也提升模型的分割准确率.

1 问题定义

深度神经网络对于推动计算机视觉领域中的图像分割问题的进步具有重要的作用,这在一定程度上是通过大型标记数据集实现的. 然而,在许多实际生活的任务中,这种大规模的注释获取是不实际的,甚至是不可行的.

本文的目标是获得一个轻量级小样本图像语义分割模型,该模型可以从少数带注释的图像对来自相同类的新图像进行快速执行分割操作. 与之前的工作[17]一样,本文采用以下模型训练和测试协议. 假设得到了来自2个不重叠类的集合的图像. 训练集是由训练过程中见过的类别集合构成的,测试集是由训练过程没有见过的类别集合构造的. 在训练集上对分割模型进行训练,并且在测试集上进行评估.

训练集和测试集都由若干个集合组成的. 每个集合由一组带注释的支持集图像和查询集图像组成. 每个训练和测试验证过程都相当于实例化了一个N-wayK-shot分割学习任务. 具体来说,支持集每个语义类都包含了K个图像及其对应的分割掩码标签,并且总共有N个不同的语义类别来自训练集和测试集. 查询集也包含来自与支持集类别相同的图像和分割掩码. 该模型首先从支持集中提取了N个类别的相关语义知识,然后应用所学知识对查询集进行分割.

由于每一个训练过程都包含了不同的语义类别,使得模型具有较好的泛化能力. 从训练集中经过训练,获得分割模型后,对其在所有片段的测试集上的小样本分割性能进行评估. 特别是,对于每个测试场景,在给定支持集的查询集上评估分割模型.

本文提出的方法对于只有少数具有密集注释的类,也可以有效地执行分割操作,不需要大量标记的数据集.

2 网络结构

本文设计了一个高效准确的轻量级金字塔原型对齐网络结构来解决小样本语义分割问题,详细的网络总体结构如图1所示,它包含的2条分支分别是支持分支和查询分支,这2条分支分别输入支持集图像对和查询集图像,通过深度可分离卷积和倒残差结构组成的基础网络以及金字塔池化模块进行特征提取,对于提取出的特征向量进行原型对齐操作,从而获得查询图像的分割预测结果. 损失函数通过在预测的分割结果和标注的分割掩码之间进行计算. 在接下来的内容中,本文先从特征提取模块进行说明,然后详细介绍原型对齐是如何操作的.

图1 轻量级金字塔原型对齐的小样本语义分割网络结构Fig.1 Architecture of lightweight pyramid prototype alignment network for few-shot semantic segmentation

2.1 特征提取模块

2.1.1 基础网络结构

目前为了获得更高的精度,基于深度学习的网络结构的发展趋势是越来越深入和复杂的. 但是这种精度提高的方式带来的问题也随之出现,网络的规模都较大,并且效率不高. 在一些现实世界的应用如自动驾驶、机器人等落地过程中,模型需要在计算量有限制的硬件平台上运行.

因此在搭建基础网络结构过程中,考虑到这些问题,本文参考高效的轻量级网络MobileNetV2作为进行特征提取的基础网络结构,将部分基础卷积替换为深度可分离卷积,它是由深度卷积和点卷积这两部分组成的. 深度卷积可以将多通道的图像转成单通道的图像,后面接一个点卷积,解决了信息流通不畅的问题. 同时还使用了具有线性瓶颈的逆残差结构,在进行深度可分离卷积之前先进行1×1的卷积增加特征通道数,实现特征维度的扩张,使得特征在高维运行. 具体网络结构如图2所示,左边是步长为1的模块,右边是步长为2的模块. 通过采用该结构,本文训练了高效准确的轻量级网络模型进行小样本图像分割,该模型大小为12 MB,第3.2节中对该方法与不同方法的复杂度进行了对比分析和讨论.

图2 MobileNetV2基本模块结构Fig.2 Architecture of MobileNetV2

2.1.2 金字塔池化结构

在图像分割工作中,目标物体的大小会影响分割的结果,对于某些较大的物体,它可能会超过接收域,从而影响到预测结果的连续性. 另一方面,如果图中某些东西过小,虽然它们很重要,但是还是很难找到它们. 因此为了在非常小或非常大的对象上提高性能,应该对包含不重要类内容的不同子区域给予足够的重视. 不同层次、不同尺度的图像特征通常反映了不同的语义信息. 应考虑不同像素之间的联系,结合不同区域的上下文信息,进行特征融合.

为了进一步减少不同子区域之间的上下文信息丢失,本文使用金字塔池模块[16],它是一种包含不同尺度的信息,并且在不同子区域之间变化的层次全局先验. 在深度神经网络的最后一层特征图上进行全局场景先验构建,如图1(a)所示.

本文采用的金字塔池模块融合了3种不同金字塔尺度下的特征. 对于输入的特征向量,分别进入不同层级的池化模块,其输出的大小各不相同. 为了保证全局特征的权重,将对特征进行降维,若金字塔共有N个级别,则在每个级别后使用1×1的卷积将对应级别的通道分别降为原本的1/N. 接下来采用双线性插值进行上采样,获得与原始特征图相同尺寸的输出. 最后,将不同层次的特征拼接在一起,输出最终的金字塔池化全局特征.

需要注意的是金字塔层级的数量和每个级别的大小都可以修改,它们与馈入金字塔池化层的特征向量的大小有关. 该结构通过采用大小不等的池化核,在很短的时间内抽象出不同的子区域. 因此,应该确保多阶段内核在表示上保持合理的差距. 本文采用的金字塔池模块是一个三级模块,池化尺度分别为2×2、3×3和6×6,第3.2节的实验中证明了该方法的有效性.

2.2 原型对齐正则化结构

在之前的工作中,支持集的注释仅用于条件分支,这实际上并没有充分利用支持信息来进行小样本学习[18-21]. 在本节中将详细介绍原型对齐正则化结构[14],该结构可以更好地利用支持信息来指导小样本学习过程,并且有助于增强从少量样本中训练得出的模型的通用性和鲁棒性.

直观地说,如果模型能够利用从支持集中提取的原型对查询集图像进行良好的分割,那么对从查询集学习到预测出的掩模原型也能够很好地分割支持集图像. 因此,原型对齐正则化结构将所得到的分割模型在相反的方向上执行小样本学习,即以查询集和预测的掩模作为新的支持集,学习对支持集图像进行分割的操作. 这在支持集原型和查询图像之间强加了一种相互对齐,并且从支持集中学习了更加丰富的知识. 注意,这里的所有支持集和查询集图像都来自于训练集.

度量方式在网络结构中是非常重要的,本文采用的是进行余弦距离的计算,即对于2个向量,计算二者的夹角余弦值,根据余弦值对相关度进行评估. 例如常见的二维空间,根据坐标值,把向量映射到空间向量中,然后求出夹角以及相对应余弦值. 获得的余弦值即为2个向量的相关度.

图1(b)详细说明了原型对齐正则化结构. 首先,获得查询集和支持集提取出的特征后,对支持集特征计算掩码平均池化,获得一组支持集的原型;然后,通过非参数度量学习计算查询集特征和支持集原型的余弦值,获得其与各类别原型的相关度,从而对查询集图像进行相应的分割. 由于分割可以看作是在每个空间位置上的分类,因此使用每个计算原型计算每个空间位置上的查询特征向量之间的距离. 当对查询集图像进行分割预测后,同样,对查询集特征也进行掩模平均池化计算,得到了另一组原型,接下来采用非参数度量学习方法来学习最优原型并对支持图像通过softmax产生图像不同语义类的概率分布,对分割掩模进行相应的预测.

对于分割分支,本文计算出分割损失Losss如下:

同样,在条件分支中将对支持集图像预测出的分割结果与其标注的分割掩码进行比较,以计算Lossp的损失. 实现原型对齐正则化的整个过程可以看作是支持集和查询集的交换. 具体来说,在原型对齐正则化过程中,损失Lossp为

式中:C为类别个数;K为支持集图像数量. 如果没有原型对齐正则化过程,信息只能从支持集单向流动到查询集. 本文通过将信息流回支持集,使得模型学习一致的嵌入空间,使查询集原型和支持集原型对齐. 第3.2节通过实验验证了使用原型对齐正则化的效果.

在本文的训练过程中,模型的总损失L为

L=Losss+λLossp

式中λ为正则化强度,当λ=0时,即相当于训练没有加原型对齐正则化结构的模型. 经过实验比较,λ为不同值时对结果没有什么改善,因此本文的损失为λ=1时的总损失.

3 实验分析

3.1 实验数据和评估标准

本文遵循文献[10]中提出的小样本图像语义分割评估方案,并在PASCAL- 5i[14]数据集上评估模型. 该数据集是通过PASCAL VOC 2012[23]和SBD[24]扩充而成的. 将PASCAL VOC的20个类别平均分为4个部分,每个部分包含5个类别. 具体的类别划分如表1所示. 模型在其中3个部分上进行训练,然后以交叉验证的方式在其余1个部分上进行评估. 在测试过程中,以往的方法随机抽取1 000个样本集进行评估,但该方法不足以给出稳定的结果. 在本文的实验中,使用不同的随机种子对5次运行的结果进行平均,每次运行包含1 000集,使得获得的结果更加具有稳定性.

模型采用mean-IoU和binary-IoU两个评估指标对其进行评估. Mean-IoU是通过计算每个前景类的交并比,并在所有类上求平均值得出的[17],具体的公式定义为

式中:TP、FP和FN分别是分割掩码集合中的真正例、假正例和假负例的个数;Nl是测试集中类别的数目.

表1 数据集及其类别划分

而binary-IoU是将所有的对象类别作为一个前景类,并对前景和背景的交并比进行平均[11]. 本文主要使用mean-IoU进行模型评估,因为它考虑了前景类别之间的差异,因此更准确地反映了模型的性能. 同时本文也计算了模型的binary-IoU值,与以前的一些方法进行了比较.

3.2 实验结果分析

本文在PASCAL- 5i数据集上验证所提出的网络结构在图像分割的有效性,并且实验过程均在一张显卡1080Ti上进行. 与之前的研究一样,本文同样使用ILSVRC[2]上的预训练权重来初始化基础网络[4,7]. 输入图像的大小均被调整为(417,417),同时使用了一个随机的水平翻转进行数据增强. 该模型是使用SGD进行端到端训练优化的,优化器的动量为0.9,迭代次数30 000次. 权重衰减和批量大小分别为0.000 5和1.

由于金字塔层级的数量和每个级别池化核的大小与网络分割性能息息相关,本文对金字塔池化结构中不同池化核大小对分割结果的影响进行了多个实验,结果如表2所示. 首先,训练了不加金字塔池化的结果作为Baseline以方便试验结果的比较. 然后,增加了金字塔池化结构,分别采用了池化核为2×2、3×3和3×3、6×6的两级模块对特征进行提取,发现由于分别缺失了部分低级和高级特征,性能提升效果并不明显. 接下来,采用了三级模块进行特征提取,该模块池化核大小分别为2×2、3×3、6×6,有效地提升了网络的分割性能. 随着模块的增加,继续实验了四级模块的效果,发现提升效果反而有所下降,说明并不是模块层数越多对分割的性能提升越高. 因此本文选择三级金字塔池模块,池化核大小分别为2×2、3×3和6×6.

表2 不同池化核大小在PASCAL- 5i上的分割结果比较

为保证优化性能及优化收敛速率,本文分别采用了2种调整方法,等间隔调整学习率和预热学习率. 等间隔调整学习率是先将学习率初始化为1×10-3,并且每10 000次迭代降低10%. 本文中,预热学习率是将学习率初始化为1×10-6,每隔2 000次升高10%,当它升高至1×10-3时,开始每隔10 000次迭代降低10%. 试验结果如表3所示,发现预热学习率对小样本图像分割任务中效果提升不明显,本文选择等间隔调整学习率方法.

表3 不同学习率方法在PASCAL- 5i上的分割结果比较

表4给出了本文所提方法与其他方法在PASCAL- 5i数据集上使用mean-IoU度量1-way 1-shot和1-way 5-shot分割的比较结果. 本文提出的方法优于所有比较模型,如OSLSM[8]、co-FCN[10]、SG-One[22]和PANet[14]. 本文的方法在4次不同训练集和测试集中,1-shot分割的平均交并比达到49.5%,明显超过了OSLSM[8]8.7%、co-FCN[10]8.4%、SG-One[22]3.2%、PANet[14]1.4%. 与此同时,本文的方法在有5张支持集图像时,可以获得56.6%的准确率,明显优于最近的方法,平均交并比超过OSLSM[8]12.7%、co-FCN[10]15.2%、SG-One[22]9.5%、PANet[14]0.9%,取得了显著提升. 通过这样的对比,本文可以看到金字塔池化模块和原型对准正则化对于提高性能都起到了重要的作用. 值得注意的是,本文的方法比之前的方法参数量明显更少,在2.1.1中已经进行了比较.

表4 1-way 1-shot和1-way 5-shot在PASCAL- 5i上使用mean-IoU的不同方法分割结果比较

本文还与OSLSM[8]、co-FCN[10]、PL[12]、SG-One[22]、PANet[14]和所提方法用binary-IoU进行了评估比较. 该度量方法计算了背景和前景的平均交并比,首先计算了PASCAL- 5i中4个部分的前景的平均交并比,然后通过这2个值的平均值得到了平均的binary-IoU. 表5给出了在4部分数据集上进行交叉验证的评价结果,其中Δ为1-shot与5-shot的差值. 本文所提出的方法实现了67.1%的1-shot分割和74.6%的5-shot分割,优于之前所有的方法.

本文在多分类小样本分割任务上评估了所提出的模型. 评估了2-way 1-shot和2-way 5-shot的分割任务,结果显示,该模型没有丧失一般性,表6总结了实验结果. 在这2个指标上,本文所提出的方法都比以前所有的方法要高.

模型复杂度是衡量模型好坏的一个非常重要的标准,而复杂度可以从2个方面来进行讨论分析. 首先是空间复杂度,在网络模型中表示为模型参数量总和. 其次是时间复杂度,它代表的是模型的运算次数,可以采用每秒浮点运算次数来衡量计算性能. 本文计算了不同方法在同等条件下的参数量、浮点计算量和模型大小,如表7所示. 可以看出本文采用的方法参数量为3.0 MB,远少于之前的OSLSM[8]、co-FCN[10]、SG-One[22]和PANet[14]等小样本分割方法的参数量. 同时,本文提出的方法浮点计算量为11 182 MB,在相同条件下,计算速度有明显提升,时间复杂度远小于PANet[14]. 模型大小为12 MB,约为PANet[14]的1/6. 本文提出的方法在空间复杂度和时间复杂度方面均获得了有效改善,实现了高效准确的轻量级金字塔原型对齐网络.

表5 1-way 1-shot和1-way 5-shot在PASCAL- 5i上使用binary-IoU的不同方法分割结果比较

图3 1-way 1-shot图像语义分割可视化结果Fig.3 Visualization of results using our model for 1-way 1-shot image semantic segmentation

表6 2-way 1-shot和2-way 5-shot在PASCAL- 5i上 使用Mean-IoU的不同方法分割结果比较

表7 网络复杂度对比

使用本文提出的小样本分割模型的1-shot部分可视化结果如图3所示. 可以看出自行车、猫头鹰、飞机、汽车等类别都被较准确地分割出来. 实验表明,该方法能够成功地从图像中分割出目标物体.

本文提出的小样本语义分割模型不仅可以从带有密集注释的图像标签中学习知识进行指导小样本分割,也可以从稀疏的注释中,对从未见过的类别进行准确预测. 本文的工作还需要从弱监督方向对小样本学习进行进一步的实验研究.

4 结论

1) 本文针对小样本图像语义分割问题,提出了一种基于金字塔原型对齐的轻量级网络,在数据集样本较少的情况下,能够对样本图片进行分割. 通过利用深度可分离卷积和逆残差结构,在不影响模型分割分支精度的前提下,达到了参数量减小的效果,与以往同类型的主流小样本图像分割方法对比,有效地降低了网络的空间复杂度和计算复杂度,提高了自动分割的效率,证明了本文提出的方法能够进行高效、快速的图像分割.

2) 本文提出的网络结构充分利用了上下文先验知识和支持集中的语义信息,融合了不同金字塔尺度的特征,保证了网络具有全局上下文信息. 同时通过在支持原型和查询之间进行的相互对齐,帮助网络能够从支持集中学到更多的信息. 在PASCAL- 5i数据集上进行实验测试,使用2种分割评估指标进行评估,精度均高于多个主流小样本语义分割网络,同时对可视化结果分析,证明了本文所提出的轻量级金字塔原型对齐网络在小样本图像语义分割应用中的显著有效性.

猜你喜欢
池化分支金字塔
基于高斯函数的池化算法
“金字塔”
一类离散时间反馈控制系统Hopf分支研究
卷积神经网络中的自适应加权池化
软件多分支开发代码漏合问题及解决途径①
Great Vacation Places
巧分支与枝
用于手写汉字识别的文本分割方法
金字塔是用金子造的吗
硕果累累