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

作者: 孟青, 于瓅

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

摘要:针对传统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]子网络学习是困难的,而另外两个可以作为捷径,而且所有三个子网都是互补学习,如下所示:

[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=M☉fc,fp=M☉fp           ]      [(8)]

非线性分类模块:为了测量最终特征 [fc]和[fp]之间的相似度,本文采用特征聚合网络以高分辨率聚合这两个特征,其中[ΨMult]、[ΨSub]和[ΨCat]是三个相似的CNN网络,每个都有三个卷积层和一个Relu层用来非线性聚合,之后被送入二元分类和边界框回归进行最终检测。

[f=[ΨMultfc☉fp,ΨSubfc-fp,ΨCat[fc,fp]]]      [(9)]

2 模型训练

本文的模型训练有以下三个步骤。用基类进行元学习:本文使用元训练来学习改进的粗粒度原型匹配网络和改进的细粒度原型匹配网络。在每个训练集中,本文从基类中采样了一些类,这些类中的每个类用k个样本组成,作为新类来模拟小样本检测场景。而且,本文还用真值框标签采样了一些查询图像,并使用二元交叉熵损失和平滑L1损失进行模型训练。为了防止大量的负匹配对使得检测器不堪重负,本文的正负匹配对保持1:3的比例以平衡模型训练。在元训练之后,该模型可以在元测试中直接适用于新类,而不需要任何训练。具体来说,在这一步中,使用改进的粗粒度原型匹配网络和改进的细粒度原型匹配网络对基类执行小样本目标检测,并通过情景训练学习这两个模块。损失函数定义为:

[L1=Lr+Lc        ]                     [ (10)]

上一篇 点击页面呼出菜单 下一篇