APP下载

多阶段特征重分布算法的小样本目标检测

2023-02-15刘露露贺占庄

电子科技大学学报 2023年1期
关键词:源域类别精度

刘露露,贺占庄,马 钟,刘 彬,王 莉

(西安微电子技术研究所 西安 710065)

近年来,深度神经网络已广泛应用于多个计算机视觉任务,如图像识别、目标检测等。深度神经网络的成功依赖于大量有标签的数据进行训练,然而大量标签数据的获取在许多实际应用场景,如军事、医疗等是非常昂贵、甚至不可能的。因此,如何利用少量标签数据实现对目标任务的学习,即小样本学习(few-shot learning, FSL),已成为目前深度学习的一个热点及难点。

根据网络学习方式不同,目前小样本学习算法主要有以下几类:数据增广、迁移学习、元学习和度量学习。基于数据增广的小样本学习算法利用数据增广策略以扩充样本数据,主要包括在图像层进行增广和在图像特征层进行增广两种方式[1-4]。基于数据增广的方法通过增加数据量的方式缓解样本不足的问题,通常与其他小样本学习算法结合起来应用,因此本文不做特别研究。基于迁移学习的小样本学习算法,通过在大量训练数据下学习相关域的知识,获取一个性能较好的初始化模型,并将学习到的知识快速迁移到小样本任务中,如IFT[5],TransMatch[6]及LST[7]等。自文献[8]提出MAML算法后,元学习算法就已广泛应用于小样本任务中[9-12]。基于元学习的小样本学习算法是一种与模型无关的方法,因而可以应用于任何采用基于梯度下降算法优化的模型中。元学习是一种特殊的迁移学习,算法针对小样本任务对大量训练数据不断进行重采样,以学习任务相关的元知识,然后利用元学习的思想设计网络结构及训练模式,将学习到的元知识快速泛化到小样本任务中,如NTM[10]、MANN[11]及Reptile[12]等。基于度量学习的小样本学习算法则是根据图像特征间的相似性程度实现对图像的分类,算法通常结合元学习的思想利用大量数据训练一个特征提取网络,然后对特征采取某种相似性度量方式来获取不同的度量表示,如孪生网络[13]、匹配网络[14]、原型网络[15]及关系网络[16]等。

小样本学习的研究在近年来取得了不错的进展,然而仍存在一些挑战:1)目前针对小样本学习的研究主要集中于图像分类任务,对小样本目标检测任务的研究较少;2)小样本目标检测任务较之小样本图像分类任务有更大的挑战。现有小样本目标检测算法大部分借助于小样本图像分类算法,如元学习[17-20]、迁移学习[21-24]等来实现对目标的检测。然而这两种算法在小样本目标检测任务上均存在一些问题:基于元学习的目标检测算法优化难度较大,同时舍弃了对源域数据的检测能力;基于迁移学习的算法需要源域数据和目标域数据有一定的相似性,即小样本目标数据与大量训练数据有类似的分布,相似性越高,迁移效率越好。此外,基于元学习和迁移学习的算法在面对小样本任务时均未考虑源域数据与小样本目标域数据间的分布差异,知识迁移效率较差,因而检测精度较低。

因此,为了更好地将先验知识迁移到目标任务中,提升小样本目标检测任务的检测性能,同时对源域类别仍有较好的检测性能,本文提出了一种多阶段特征向量重分布的小样本目标检测算法。针对特征分布不一致的问题,本文提出了一种重分布变换算法,通过对特征向量进行变换,使得源域特征和小样本目标域特征有相同或相似的分布;为了进一步提高域知识的迁移效率,提出了一种多阶段逐步微调的策略,将知识逐步迁移到目标域中,从而实现对小样本目标任务的高精度检测。

1 本文算法总体结构

1.1 小样本目标检测定义

小样本任务旨在从源域数据集Db中学习域相关的知识,并利用少量目标域数据集Ds将知识迁移到目标域任务中。Ds为 目标任务的训练集,Dq为目标任务的测试集,用于衡量算法对小样本任务的泛化能力。因此,小样本任务的数据集D包含3 个部分:Db,Ds和Dq。 其 中,Ds和Dq共 同组成小样本 目 标 任 务 的 目 标 域 数 据 集Dn。Db、Ds和Dq定义为:

式中,C表示数据集D的全部目标类别;Cb为源域目标类别;Cn为目标域待检测类别;x为输入图像;y表示每个候选区域ci及 其对应的目标类别li。若目标域训练数据集Ds中 待检测类别Cn包 含有N个类别,每个类别有K张图像,则将该任务记为N−wayK−shot任务。小样本目标检测任务中,通常取N=5,K={1,2,3,5,10}。

为了更加准确地测试算法性能,减小数据泄露的风险,Db、Ds和Dq应满足:

1.2 方法概述

本文提出一种面向小样本目标检测任务的域知识迁移模型,模型对候选区域特征进行重分布变换以使得源域和目标域有相似的特征分布,利用源域数据集Db和 目标域数据集Dn进行多阶段学习,实现小样本下域知识的高效迁移。本文选取广泛使用的目标检测网络Faster RCNN[25]作为基础网络结构。

本文提出的算法模型MSFR 结构如图1 所示。第一阶段利用大量源域数据Db学习域相关的知识,需对网络的所有模块进行学习。后续阶段训练旨在将学习到的源域知识逐步迁移到目标域中,因而在知识迁移的过程中需冻结相关模块的参数:其中,灰色部分和短线点部分表示在不同训练阶段所需冻结参数的模块;长短线部分表示该阶段需额外使用的数据,分类模块使用余弦分类器。具体学习过程将在下面详细介绍。

图1 本文算法模型结构图

原Faster RCNN 网络的候选区域分类模块cls 使用全连接层分类器来实现,然而全连接层分类器旨在寻找类别间的最佳分类面,当训练样本较少时难以实现。为了更好地适用于小样本任务,本文提出使用余弦相似性度量分类器代替原网络中的全连接层分类器。设目标类别数为c,则候选区域分类器需将候选区域分为c+1类(包含背景目标),分类器cls 的权重矩阵W可以写为[w1,w2,w3,···,wc+1], 其中wj表 示类别j的权重向量。余弦分类器的计算如下:

式中,x表示输入图像;xi表 示输入图像的第i个候选区域;j表示目标类别;fROI(xi) 表 示第i个候选区域的特征;di,j表 示候选区域xi与 目标类别j的余弦相似性距离。

为了便于表述,本文将模型θ 记 为θ=θbc+θRPN+θcls+θReg, 其中, θbc表示特征提取模块, θRPN表示候选区域提取模块, θcls和 θReg表示分类模块及回归模块。

2 特征向量重分布

根据中心极限定理,在许多实际应用场景中,当统计数据足够多的情况下,许多统计变量都可近似用高斯分布来表示。同时,目前的深度学习算法都遵循数据独立同分布这一基本假设,然而,在面对小样本任务时,难以估计出样本真正的分布。同时,在知识迁移过程中,若源域数据与目标域数据的分布相同或相似,迁移效率会得到有效提升;若二者的分布差异较大,则迁移效果较差。现有小样本目标检测算法均是将大量源域数据上学习到的知识迁移到小样本目标域任务中,但无法保证源域数据与目标域数据有相同的数据分布。因此,本文提出一种特征向量重分布算法,将特征向量分布变换为高斯分布或类高斯分布,然后进行后续的处理。

特征重分布变换函数需满足以下条件:1)该变换函数为一个严格递增的函数,即在变换后仍保持原数据的大小关系,只是数据的相对大小发生了改变。2)该变换函数是一个连续函数,使得原始数据中比较集中的数据在变换后仍比较集中。3)该变换函数是一个可导函数。

因此本文提出的重分布变换方式如式(4)所示,设原特征向量为x,重分布后的特征向量为y:

式中,x为 向量x的平均值;g=xλ+1;c为一个常数,用以保证输入为一个恒大于零的数;λ ∈[−2,2]为一个超参,用于调整变换后的分布。

该变换的基本原理是:若向量x的各元素与向量均值x¯间的差异较小,则减小元素间的相对距离;若向量x的各元素与向量均值x¯间的差异较大,则增大元素间的相对距离;通过改变向量间元素的相对距离来改变其分布。参数 λ直接作用于变换后元素间的相对距离,因此 λ对变换后的分布有着直接影响。

为了选取合适的 λ以得到最好的检测精度,本文对λ ∈[−2,2]进行遍历,步长为0.1。

3 多阶段微调训练

Faster RCNN 网 络 主 要 包 括 θbc、 θRPN、 θcls及θReg。其中, θbc用 于提取图像特征; θRPN用于提取包含目标的候选区域,该模块仅对候选框中是否包含目标进行判断,并不关心候选框包含何种目标,因而这两部分与具体检测类别相关性较小;候选框分类模块 θcls、 候选框回归模块 θReg则需识别候选框包含何种目标并对目标进行精确定位,与待检测类别密切相关[21]。因此,本文提出了一种多阶段微调训练策略,以使得将学习到的域知识更好地迁移到目标任务中。

3.1 第一阶段基类模型训练

第一阶段基类网络学习过程中,利用源域数据集Db用于训练一个泛化能力较强的特征提取模块和目标候选区域提取模块。在Faster RCNN 的基础上,结合本文提出的特征向量重分布算法对网络结构进行改进,改进后其网络结构如图2 所示。算法对候选区域特征进行重分布变换,使得同一类别间的特征分布保持一致或类似,以提高目标检测精度,候选区域分类器使用余弦相似性度量分类器。

图2 第一阶段基类模型训练

该阶段网络的损失函数L与文献[25]保持一致,为:

式中,LRPN为 候选区域提取模块的损失函数;Lcls为候选区域分类模块的交叉熵损失函数;LReg为Smooth L1 损失函数。

3.2 第二阶段微调训练

在基类模型训练完成后,特征提取模块 θbc、候选区域提取模块θRPN具有非常好的性能,且具有较好的泛化能力,因此在第二阶段微调训练时将这几个模块的参数冻结(即参数在训练过程中不进行更新),只对候选区域分类 θcls及 回归模块 θReg进行训练,其流程如图3 所示。图中,灰色部分表示在训练中需冻结的模块,即冻结θbc+θRPN, 只对 θcls和θReg进行微调训练。

图3 第二阶段微调训练

第二阶段微调过程中使用目标域数据Ds训练,对于N−wayK−shot任 务,Ds数 据集包含N个类别,每个类别均只有K张图像。

该阶段微调训练的损失函数与基类训练的损失函数保持一致。但由于微调训练数据集Ds数量较少、微调过程只对模型的少数参数进行更新等原因,若采用与第一阶段训练过程中相同的学习率,微调模型难以跳出鞍点,使得模型难以收敛。因此,在该阶段训练中,学习率设置为第一阶段基类训练学习率的0.1 倍。

3.3 第三阶段微调训练

在第二阶段训练结束后,网络对目标类别Cn有了一定的检测能力,但却舍弃了对源域类别Cb的检测性能;此外,虽然Faster RCNN 网络的最后一层(分类、回归模块)对小样本任务有非常重要的作用,但是对于新类别,候选区域提取模块也起着至关重要的作用。因此本文提出在第二阶段微调模型的基础上进行进一步地学习,将候选区域提取模块学习到的知识更好地迁移到小样本任务中。该阶段的网络流程如图4 所示。

图4 第三阶段微调训练

第三阶段微调使用的数据Df由两部分构成,Ds和Db_f,其中,Ds为 第二阶段训练数据,Db_f为对源域数据集Db进行重采样后组成的基类小样本数据集。Db_f的采样过程如下:针对N−wayK−shot任务,对源域数据集Db中 的每个类别li∈Cb随机选取K个样本,若源域类别Cb有Nb个 类别,则Db_f共有Nb×K张图像。

同样地,图4 中灰色部分表示在训练中冻结θbc的参数。该阶段微调训练的学习率设置为第一阶段基类训练学习率的0.05 倍。

本文的算法流程实现如下:

1) 数据集准备。源域训练集Db, 对Db进行重采样的少量数据集Db_f,目标域数据集Ds。

2) 第一阶段训练。训练过程如3.1 节所述,所得模型记为θ1=θbc_1+θRPN_1+θcls_1+θReg_1。

3) 第二阶段训练。将 θ1的最后一层删除并根据Ds的 类别数对最后一层进行随机赋值,记为 θ1′;冻结 θ1′中 θbc和 θRPN的 参数,使用数据Ds对 θ1′进行训练。训练过程如3.2 节所述,所得模型记为θ2=θbc_1+θRPN_1+θcls_2+θReg_2。

4) 第三阶段训练。将 θ1和 θ2进行融合做为第三阶 段 训 练 的 初 始 模 型 θ2′, 即θ2′=θbc_1+θRPN_1+(θcls_1+θcls_2)+(θReg_1+θReg_2) , 可以看出, θ2′对源域类别和目标域类别已具有一定的检测能力;为了进一步提高模型的检测性能,进行进一步的微调训练:冻 结 θ2′中 的 θbc_1,对 其 余 模 块 参 数 进 行 训练。训练过程如3.3 节所示。所得模型记为θ3=θbc_1+θRPN_3+θcls_3+θReg_3。

4 实验结果及分析

为了评估本文算法的有效性,在VOC 数据集上与目前多个小样本目标检测方法进行对比。

4.1 数据集及实验设置

本节使用的VOC 数据集包括2007 和2012 两个版本。VOC2007 包含20 类图像共9 963 张,其中训练集5 011 张,测试集4 952 张。VOC2012 是VOC2007 数据集的升级版,共20 类11 530 张。本文主要研究N−wayK−shot任务下小样本目标检测的精度,其中,N=5,K={1,2,3,5,10}。为了验证算法的鲁棒性,本文对VOC 数据集进行划分,以构造小样本任务,划分方式与文献[14-20]保持一致。数据集的划分共有3 种分组方式,每次划分从VOC 数据集的20 个类别中选取15 类作为源域数据集Db进行第一阶段训练,其余5 类作为目标域数据Dn, 小样本待检测目标类别记为Cn。每个类从2007 和2012 版本的集合中随机采样K张图像作为目标域训练数据集Ds,该类别的其余图像作为目标域测试集Dq。精度衡量指标使用AP50,置信度为0.5。本文实验环境为Ubuntu18.04,编程语言为Python1.6、Pytorch1.6 深度学习框架,显卡为Nvidia v100s,显卡支持为CUDA10.0。

特征提取网络模块使用在ImageNet 数据集上预训练的ResNet101 模型。多阶段训练时batchsize设置为16,优化算法使用SDG。第一阶段基类模型训练时,初始学习率设置为0.02,训练次数为20 000 次;第二阶段微调训练时,初始学习率设置为0.002;第三阶段微调训练时,初始学习率设置为0.000 1。

文献[26]表明,当 λ =0.7时,该变换在小样本图像分类任务中取得了最好的效果。因此,本文在后续实验中,均选取上述超参。

4.2 精度分析

本节实验将对VOC 数据集3 种不同划分方式分别记为Novel1、Novel2、Novel3。为了更好地衡量算法的整体检测性能,本文采用文献[18]中的评价指标:其中,对源域类别的平均检测精度记为bAp,目标类别的平均检测精度记为nAp,对VOC 数据集全部20 个类别的检测精度记为Ap。

在不同划分下,首先利用源域数据集Db进行第一阶段训练,算法对源域类别Cb的检测精度如表1 所示。由表1 可知,特征重分布算法在大量训练数据下对目标检测精度略有影响,较之原Faster RCNN 网络对源域类别的检测精度提升约0.15%。

表1 第一阶段源域类别检测精度 %

在完成第一阶段训练后,分别对不同划分进行第二、三阶段的微调训练,对比结果如表2 所示,其中加黑部分为各任务下的最优精度。

从表2 可以看出,本文算法在3 个划分方式上对多个任务都达到了最好精度,较其余算法均有明显提升,尤其是样本少的时候提升更为明显(如对1-3 shot 任务)。在多个任务上,较其余最好精度提升了0.42%~9.06%,验证了本文算法的有效性;此外,在不同划分下,随着样本数的增加,目标检测精度也随之不断提升。表3 为不同算法在VOC 数据集不同划分不同任务下对新类别的检测精度,其中加黑部分为各任务下对新类别的最优精度。由表3 可以看出,各任务下本文算法对多数类别的检测精度都有明显提升。Meta-RCNN 对某些类别的检测精度可以达到最优,然而会损耗对其余类别的检测精度。如对于Novel2 划分下5-shot 任务,Meta-RCNN 对cow、horse 两个类别达到了最优精度,然而对bottle 的检测精度最低,只有0.3%。此外,对于Novel2 划分,本文算法和对比算法的检测精度较之Novel1 和Novel3 均有较大差距。这是由于Novel2 中,新类别的形状、颜色、尺寸等变化较大,目标尺寸较小,仅使用5 个样本难以学习到表征能力足够的类别相关特征。而对于类间变化较小的类别,仅使用少量样本如1-shot、2-shot,即可达到50%左右的精度。

表2 本文算法与现有算法在VOC 数据集不同任务上的精度对比 %

表3 本文算法与现有算法在VOC 数据集不同划分不同任务下对新类别的检测精度 %

%续表

由于本文算法在微调训练的数据集Df不仅包含目标域数据集Ds,也包含源域数据Db_f,因此与基于元学习的算法在训练完成后只保留对新类别数据的检测能力相比,本文算法在大幅提升对新类别检测精度的同时,仍保留了对源域数据类别的检测能力。3 种不同划分 5−shot任务下对源域类别、目标类别、全部类别的检测精度如表4所示。

表4 同划分方式下在5-shot 任务下的检测性能 %

通过表3 和表4 可知,在不同划分下本文算法对源域类别的检测精度基本一致,平均可达到78.72%,较第一阶段精度仅下降约3%左右,有效证明了本文算法在提升小样本目标检测精度的同时,仍保持了对源域类别的检测性能。

4.3 计算复杂度分析

与Faster RCNN 相比,本文提出的MSFR 网络结构有两点改进:特征重分布模块和余弦相似度分类模块。因此,本文针对这两个模块分别进行复杂度分析。设候选区域特征维度为N,本实验中N=512。

特征重分布模块:由式(4)可知,特征重分布模块中包含加法、幂运算、减法、除法4 种运算,因此该模块的计算量为FLOPs=4N=2 048

余弦相似度分类模块:为了简化余弦相似度计算过程,本实验在进行余弦相似度计算过程时,首先对wj和fROI(xi)进行标准化处理,则式(3)简化为di,j=wj fROI(xi)。可以看出,简化后的余弦相似度计算与全连接层的计算一致。因此,该模块中增加的计算量在于特征向量标准化计算过程。标准化计算包含减法、除法两种运算,则该模块较之全连接分类器增加的计算量为F LOPs=2×2N=2 048。

MSFR 增 加 的 计 算 量 为 FLOPs=4 096。与Faster RCNN 相比,MSFR 额外增加的计算量可以忽略不计。

4.4 消融实验

为了验证特征向量重分布算法的有效性,本文对该模块进行了消融实验,实验结果如表2 所示。其中,MS 表示无特征重分布模块的多阶段学习算法,可以看出,特征向量重分布算法对小样本目标类别的检测精度有着直接影响。较之无特征向量重分布模块,本文算法在不同任务上对目标类别的平均检测精度提高了4.62%,样本数量越少,提升越显著,如对于K≤3的任务,精度提升最高达10.67%,平均提升5.89%。

为了验证特征重分布变换对特征分布的影响,本文在测试过程中提取重分布变换层输入和输出的特征向量,并对其特征分布进行可视化分析,如图5 所示。其中,图5a 为特征变换前分布,图5b为变换后的特征分布。可以看出,特征向量在变换前是一种长尾分布,而经重分布变换后的特征分布为一个类高斯分布。

图5 VOC 数据集上5-shot 检测结果示意图

图6 展示了本文算法在VOC 数据集上5-shot任务下对不同划分中新类别的检测结果示意图。可以看出,本文算法在不同场景下对目标类别都具有较好的检测能力。

图6 特征向量重分布变换

5 结 束 语

针对现有小样本目标检测的研究未考虑数据分布知识迁移效率的影响及检测精度较低的问题,本文提出了一种多阶段特征重分布的小样本目标检测算法,在VOC 数据集的大量实验都取得了较高的检测精度。本文结论如下:1)提出了基于特征重分布算法的小样本目标检测算法。该方法将特征向量分布变换为高斯分布或类高斯分布,以保证小样本目标域数据和源域数据有相同或相似的数据分布。2)提出了一种多阶段微调训练策略,提高了知识迁移效率。该方法通过分阶段冻结不同模块参数,将不同模块知识逐步迁移到小样本任务中。本文算法在不同任务下对小样本目标域类别的检测精度提高了0.42%~9.06%。尤其对典型的5-shot 任务,本文算法对源域类别的平均检测精度达78.72%,较第一阶段检测精度仅下降2.60%;对小样本目标域类别的最高检测精度可达56.66%。大量实验表明,本文算法在提升小样本目标检测精度的同时,对源域类别的检测性能未有显著降低。

实验结果表明,本文算法对于尺寸较小的目标检测精度较差。因此在将来的研究工作中,考虑使用注意力机制来抑制背景区域特征对目标的干扰,以提高模型对小目标的检测性能,同时将本文算法推广到红外、遥感等图像的小样本目标检测任务中。

猜你喜欢

源域类别精度
多源域适应方法综述
基于参数字典的多源域自适应学习算法
基于DSPIC33F微处理器的采集精度的提高
GPS/GLONASS/BDS组合PPP精度分析
服务类别
可迁移测度准则下的协变量偏移修正多源集成方法
改进的Goldschmidt双精度浮点除法器
论类别股东会
中医类别全科医师培养模式的探讨
巧用磨耗提高机械加工精度