您好, 访客   登录/注册

改进的基于元学习的小样本目标检测法在废品识别分类中的应用研究

来源:用户上传      作者:孟青, 于�|

  摘要:针对传统R-CNN泛化能力弱等问题,首先对传统的R-CNN算法进行改进,运用元学习的方法,将从数据丰富的基类中学习到的元知识转移到数据稀缺的新类中。对粗粒度原型匹配网络进行改进,它使用基于度量学习的非线性分类器而不是传统的线性目标分类器来处理查询图像中锚和新类之间的相似度,从而提高了小样本新类候选框的召回率。对细粒度原型匹配网络进行改进,添加了一个带有空间特征区域匹配和前景关注模块来处理噪候选框和小样本新类的相似度,以解决候选框特征和类原型之间的空间区域不匹配,从而提高整体检测精度。然后设计了一个小样本分类器,将softmax分类器和设计的小样本分类器放在一起考虑,利用这两种检测器的优势,通过使用小样本检测器的来共享特征主干网络,联合学习一个Faster R-CNN检测头。而不是像以前的方法那样只使用softmax分类器。做到了在保持原有检测精度的基础上,扩大了检测范围。
  关键词: 粗粒度原型匹配网络;细粒度原型匹配网络;度量学习;空间特征区域匹配;前景关注模块
  中图分类号:TP301.6 文献标识码:A
  文章编号:1009-3044(2022)32-0009-04
  1 概述
  时代在发展,社会在进步。废品分类也成为势在必行的举措。在将废品分类的同时,如何将废品正确地分类开始困扰着居民的正常生活。现在主流废品识别分类系统是使用R-CNN来做识别,但R-CNN泛化能力弱,相对于困难样本(例如:遮挡、形变等),R-CNN只能通过增多训练样本来提高检测精度。再加上现实生活中的场景长尾效应,需要更多训练样本。鉴于训练数据的缺乏,这些模型存在着过拟合和泛化能力差的风险。这促使对小样本目标检测进行研究[1]。首先,对于候选框的生成,目前许多方法是使用在基类数据上训练的RPN来生成新类的候选框[2],这就漏掉了一些新类的高重叠度框,因为在对基类的RPN训练中,新类框被视为背景区域。微调新类的RPN确实能改善表现,但其对未知类型的泛化能力是有限的。其他方法提出用小样本类来调制查询图像特征,以便产生特定类的候选框[3]。但是,RPN中简单的目标/非目标线性分类在小样本目标检测需要高质量候选框时往往缺乏健壮性。其次,对于候选框的分类和边界框回归,是通过引入小样本学习方法,特别是原型网络,以提取每个类的原型表征[4]。然后可以通过使用神经网络来衡量候选框特征和类原型之间的相似度来进行分类。这已被证明在小样本目标检测中是有效的。但是之前的研究中忽略了空间区域不匹配的问题:这是由类似的语义区域不会出现在噪声候选框和小样本支持图像之间的相同空间位置所导致的[5]。
  为解决上述问题,本文在基于元学习的小样本目标检测方法的基础上进行改进。首先,本文对粗粒度原型匹配网络进行改进,以快速有效的方式为小样本新类生成候选框。在原始的RPN中,通常是一个小的子网在CNN特征图的锚上进行测试,进行目标/非目标二元分类和边界框回归。所以,为了提高对新类的泛化能力。本文关键思想是学习一个基于度量学习的非线性分类器,而不是传统的简单的线性目标/非目标分类器,从而产生特定类的候选框,同时也提高了新类的平均召回率。其次,对细粒度原型匹配网络进行改进,添加了一个带有空间特征区域匹配和前景关注模块来处理噪声候选框和小样本新类的相似度,以解决候选框特征和类原型之间的空间区域不匹配,从而提高整体检测精度。在小样本目标检测基准的广泛测试表明,本文改进的算法在小样本学习设置中取得了最佳结果。
  2 模型结构
  改进的模型由四个部分组成:特征提取部分、对基类的目标检测部分、新类的候选框生成部分、新类的候选框分类和边界框回归部分,如图1所示。
  (1)特征提取部分。该模型使用孪生神经网络[6]去提取查询图像和支持图像特征。对于查询图像[Iq∈RHq×Wq×3],[fq=FIq∈RH×W×C]作为一个深度特征主干网络被用来提取CNN特征,其中[H,W,C]分别代表被提取特征中的高度,宽度,通道维度,通常使用ResNet-50层/101层[7]中[res4]块之后的输出作为默认的图像特征。对于支持图像,本文首先用一些周围的上下文区域来扩展原始目标的边界框,这也是以前工作中的常见做法,然后对目标区域进行裁剪,再将裁剪后的图像调整到相同的大小,并将裁剪后的图像送入共享特征主干来提取每个支持图像的[Ici]的CNN特征[F(Ici)]。
  (2)对基类的目标检测部分。在特征提取网络的基础上,RPN用于生成图像中所有基类的未知类型的候选框。之后,对于每个候选框,使用R-CNN分类器生成所有基类[Cbase]加上一个“背景”类的softmax概率和边界框回归[8]。
  (3)新类的候选框生成部分。本文的目标是有效地生成小样本新类的候选框。与RPN类似,本文在 [fq]上面附加一个小的子网来生成以[fq]的每个空间位置为中心的候选框。具体来说,查询图像特征经过一个3×3卷积层和ReLu层处理,用于提取以每个空间位置为中心的多尺度锚的特征。对于每个新类,本文使用K个样本支持图像的平均CNN特征作为类原型:
  [fc=1Ki=1KFIci, c∈Cnovel] (1)
  然后,为了获得与锚相同的特征大小,进行空间平均池化,以获得全局池化原型:
  [fcpool=1H*Wh,wfc] (2)
  那么,与在RPN中的简单的线性目标/非目标分类器不同的是,本文对其改进,采用基于度量学习的非线性分类器和一个轻量级的特征聚合网络以更好地计算类原型和锚之间的相似度,基于之前的研究[21],本文对特征聚合网络进行改进,使其更加强大,包括乘法([Mult])、减法([Sub])和拼接( [Cat])子网络。前两个是基础的逐元素聚合操作。[Mult]可以突出显示相关和常见的特征,[Sub]可以直接测量两个输入之间的距离。[Cat]可以被看作是一种可以学习的操作,尽管[Sub]可以通过[Cat]和卷积层来学习,但本文通过实验表明,直接[Cat]子网络学习是困难的,而另外两个可以作为捷径,而且所有三个子网都是互补学习,如下所示:

nlc202301131531



  [fcq=ΦMultfq⊙fcpool,ΦSubfq-fcpool,ΦCat[fq,fcpool]]
  其中[ΦMult]、[ΦSub]和[ΦCat]都有卷积层和ReLu层, [[,]]代表通道级连接,然后[fcq]被送入二元分类和边界框回归层来预测候选框。所提出的特征聚合网络可以用卷积层实现,而且计算效率高,可以使用候选框来提高新类候选框的召回率。
  (4)新类的候选框分类和边界框回归部分。在本文中,为了计算产生的候选框与新类之间的相似度,首先通过利用孪生网络来提取相同大小[RH'×W'×C']的候选框特征[fp]和类原型[fc],其中[H'=W'=7,C'=2048]。与改进的粗粒度原型匹配网络中使用空间平均池化的类原型不同,由于采用了串联设计,本文使用高分辨率特征进行细粒度匹配。然而,由于对新类的候选框定位不准确,候选框和类原型之间的空间区域不匹配对小样本分类产生了负面影响。
  本文为了解决空间区域不匹配问题添加了基于注意力的特征区域匹配方法。本文首先通过计算相似度矩阵在两个输入特征之间建立软对应关系。然后,相似度矩阵被用来计算与候选框一致的原型,并定位前景区域。最后,再用非线性分类器计算相似度分数。
  空间区域匹配模块:公式(4)计算候选框特征和类原型之间的相似度,[fp]和[fc]为一对输入特征,两个特征图都有许多[H'×W']CNN网格特征,每个特征图都有个[RC']的嵌入维度,计算相似度矩阵[A∈RH'W'×H'W'],每个相似度矩阵是两个嵌入维度的点积。[Ai,j]表示候选框特征的空间位置 [i]和类原型的空间位置[j]之间的相似度。
  [Ai,j=fp(i)fc(j)T] (4)
  接下来是计算候选框区域匹配的类原型。根据相似度矩阵 [A]中密集语义对应关系,通过对原型中所有CNN网格特征的加权平均来实现特征区域匹配。为了在两个特征之间进行特征区域匹配。对于[fp]中的每个空间位置[i∈RH'×W'],[fc(j)]所有空间位置进行softmax归一化,分母为与所有类原型的空间位置进行比较的总和,求出它与这个类原型的不同空间位置的相似度,作为权重系数。
  [Ai,j'=exp (A(i,j))kexp (A(i,k)) ] [ (5)]
  然后,可以通过使用聚合归一化的相似度,计算出与候选框的空间位置[i∈RH'×W']相对应的类原型[fc]:
  [fci=jAi,j'fc(i) ] [(6)]
  前景关注模块:由于候选框可能包含不期望的背景区域,所以生成一个前景关注掩码[M∈RH'×W']用于突出相应的目标区域,对于[fp]中的空间位置 [i],本文使用相似度矩阵[A]总结了[fp(i)]与[fc]中的每个空间位置的相似度。然后对[fp]中的所有空间位置进行softmax归一化。[M]值越高,表示[fp]中的相应空间位置[i]与区域匹配原型[fc]的位置越相似,越有可能是同一语义部分。另一方面,候选框中的背景区域在相似度高的类原型中很难找到对应位置,所以[M]值很低。
  [Mi=jexp (Ai,j)i,jexp (jA(i,j)) ] [(7)]
  因此,在本文中,关注掩码[M]乘以[fp]和[fc]来关注于相应的前景区域。
  [fc=Mfc,fp=Mfp ] [(8)]
  非线性分类模块:为了测量最终特征 [fc]和[fp]之间的相似度,本文采用特征聚合网络以高分辨率聚合这两个特征,其中[ΨMult]、[ΨSub]和[ΨCat]是三个相似的CNN网络,每个都有三个卷积层和一个Relu层用来非线性聚合,之后被送入二元分类和边界框回归进行最终检测。
  [f=[ΨMultfcfp,ΨSubfc-fp,ΨCat[fc,fp]]] [(9)]
  2 模型训练
  本文的模型训练有以下三个步骤。用基类进行元学习:本文使用元训练来学习改进的粗粒度原型匹配网络和改进的细粒度原型匹配网络。在每个训练集中,本文从基类中采样了一些类,这些类中的每个类用k个样本组成,作为新类来模拟小样本检测场景。而且,本文还用真值框标签采样了一些查询图像,并使用二元交叉熵损失和平滑L1损失进行模型训练。为了防止大量的负匹配对使得检测器不堪重负,本文的正负匹配对保持1:3的比例以平衡模型训练。在元训练之后,该模型可以在元测试中直接适用于新类,而不需要任何训练。具体来说,在这一步中,使用改进的粗粒度原型匹配网络和改进的细粒度原型匹配网络对基类执行小样本目标检测,并通过情景训练学习这两个模块。损失函数定义为:
  [L1=Lr+Lc ] [ (10)]

nlc202301131531



  其中,[Lr]表示改进的粗粒度的原型匹配网络的损失函数,[Lc]表示改进的细粒度的原型匹配网络的损失函数。这两者都是由二进制交叉熵损失和边界框回归损失组成的。
  [Lr=LBcls+Lloc,Lc=LBcls+Lloc ] [ (11)]
  其中,[LBcls]表示两个输入之间相似度得分的二元交叉熵损失。[Lloc]表示使用之前研究[6]中定义的平滑 L1 损失的边界框回归损失。
  对于在Microsoft Common Objects in Context数据集上的模型训练,本文使用 SGD优化器,初始学习率为0.004,动量为0.9,权重衰减为0.0001,批尺寸为 8。60000 次迭代后学习率除以10。总训练迭代次数为 80000。同样的,本文在The PASCAL Visual Object Classes数据集上使用较小的训练迭代进行元训练。初始学习率为0.004,10000次迭代后除以10。总的训练迭代次数为15000次。
  学习基类的检测头:元训练后,本文便固定了主干特征提取器的参数。具体来说,在这一步,本文在基类上学习物体检测模型(包括RPN和R-CNN分类器)。损失函数定义为:
  [L2=Lrpn+Lrcnn ] [(12)]
  其中,[Lrpn]和[Lrcnn]两者都包含分类损失和一个边界框回归损失如下所示:
  [Lrpn=LBcls+Lloc,Lrcnn=LMcls+Lloc ] [ (13)]
  其中,[LBcls]表示“前景”类(所有基类的联合)和“背景”类的二元交叉熵损失, [LMcls]表示所有基类加上“背景”类的多类交叉熵损失。
  在Microsoft Common Objects in Context数据集上的模型训练,本文使用SGD优化器,初始学习率为0.001,动量为0.9,权重衰减为0.0001,批尺寸为16。在60000次和80000次迭代后,学习率被除以10。在这一步中,本文固定了主特征提取器的参数,以便在这一步中不改变在第一步中学习到的小样本检测模型。
  在The PASCAL Visual Object Classes数据集上的模型训练,本文使用与Microsoft Common Objects in Context数据集相同的超参数,除了使用较少的训练迭代次数。初始学习率为0.001,在12000和16000次迭代后除以10。总的训练迭代次数为18000次。
  结合基类和新类进行微调:在前两个步骤中,本文只使用基类数据进行训练。而在微调步骤中,沿用以往研究中的做法采样了一个小型的结合了基类和新类的原始图像的平衡数据集。确保每个新类的实例总数正好是采样数据集中的k个样本,而这相同的k个样本也被用来在测试中作为支持集。具体来说在这一步中,模型是用一个平衡数据集来微调的,这个数据集既有基也有新类。使用在前两个步骤中相同的损失函数进行模型优化。
  用Microsoft Common Objects in Context和The PASCAL Visual Object Classes数据集进行模型训练,本文使用SGD优化器,初始学习率为0.001,动量为0.9,权重衰减为0.0001,批尺寸为8。对30 个样本进行微调,学习率在2000次迭代后除以10,总训练迭代次数为3000。对于10个或更小样本的微调,学习率在1000次迭代后除以10,总训练迭代数为1500。
  3 与最先进算法模型的比较
  本文在表1中将本文的最终模型与以The PASCAL Visual Object Classes数据集为基准的最先进算法模型进行比较。在The PASCAL Visual Object Classes数据集的大部分样本和指标中,本文改进的算法比以前最先进算法的性能高出3.0mAP50以上。
  4 结论
  本文在模型设计方面确实做了很多考虑和创新的工作。本文对基于元学习的小样本目标检测模型进行了改进。改进的模型由以下两个模块组成,以解决小样本类候选框质量低的问题。首先,改进了一个轻量级的粗粒度原型匹配网络,以高效的方式为小样本目标生成候选框。然后,对具有细致的特征区域匹配的细粒度原型匹配网络做出改进,以解决噪声候选框和小样本类之间的空间区域不匹配问题。在多个小样本目标检测基准的实验证明本文改进的模型的有效性。
  参考文献:
  [1] 张娟,毛晓波,陈铁军.运动目标跟踪算法研究综述[J].计算机应用研究,2009,26(12):4407-4410.
  [2] 尹宏鹏,陈波,柴毅,等.基于视觉的目标检测与跟踪综述[J].自动化学报,2016,42(10):1466-1489.
  [3] 赵凯琳,靳小龙,王元卓.小样本学习研究综述[J].软件学报,2021,32(2):349-369.
  [4] 谭东宁,谭东汉.小样本机器学习理论:统计学习理论[J].南京理工大学学报,2001,25(1):108-112.
  [5] 潘兴甲,张旭龙,董未名,等.小样本目标检测的研究现状[J].南京信息工程大学学报(自然科学版),2019,11(6):698-705.
  [6] 杨康,宋慧慧,张开华.基于双重注意力孪生网络的实时视觉跟踪[J].计算机应用,2019,39(6):1652-1656.
  [7] 陈云芳,吴懿,张伟.基于孪生网络结构的目标跟踪算法综述[J].计算机工程与应用,2020,56(6):10-18.
  [8] 任珈民,宫宁生,韩镇阳.一种改进的基于孪生卷积神经网络的目标跟踪算法[J].小型微型计算机系统,2019,40(12):2686-2690.
  【通联编辑:朱宝贵】

nlc202301131531




转载注明来源:https://www.xzbu.com/8/view-15444100.htm

相关文章