陈 瀚,雷 亮,朱锦相,王 冬
(广东工业大学 物理与光电工程学院,广东 广州 510006)
目前,深度学习技术的成熟使目标检测领域取得了质的发展。这些模型的成功很大程度上归功于目标检测器能够吸纳和处理大规模的标注数据。少样本目标检测(few-shot object detection,FSOD)旨在解决传统检测器需要大量训练数据的劣势。在FSOD任务中,建立基类和新类特征相关性以及提高特征筛选的匹配能力是提高模型性能的关键[1,2]。因此,前人提出了很多特征迁移的方法[3-5],用于衡量特征之间的相似性[6,7]。然而,这些方法大多关注于表层特征学习,容易忽略类与类之间的深层映射联系。在实际场景中,目标分布可能会散乱交织、尺度不一、存在遮挡残缺、特征混淆等情况,容易导致漏检、误检以及假阳性率过高的情况发生[8]。
针对以上不足,提出了一种递归投影融合对比机制的FSOD方法。该方法利用一个多尺度递归投影的正则化分支网络减少特征尺度差异性,丰富特征表示。并且,在两阶段检测器基础上,增加了余弦分类编码器,结合新类与基类特征共享的对比机制,实现了类别之间深浅层尺度信息的交流和特征匹配,直接有效地提高了模型检测率。同时保证了新类与基类在空间上的特征对齐,采用共享权重的方式提高了知识迁移效率。该方法在PASCAL VOC和MS COCO数据集的广泛实验中,均取得了显著的检测结果,验证了该模型的先进性。
近年来出现很多关于FSOD的方法,如数据增强[9,10]、元学习(Meta-learning)[11,12]、度量学习(Metric-lear-ning)[13,14]、基于微调范式(Fine-tuning)[15]等。利用特征迁移的方法能够从基类源域空间获取目标前景特征信息,并转移至新类域空间。LSTD[16]首次将迁移学习应用于FSOD任务,通过背景抑制(background depression,BD)和迁移知识(transfer knowledge,TK)正则化消除了分类任务和检测任务之间的差距。目前主流方案主要基于元学习方法和微调范式。Meta-learning只进行一次性学习,从预训练模型中推断相似性[17]。例如,RepMet[18]设计了重生特定类的激活函数,提取原型空间中的图像特征,通过计算与支持特征的欧氏距离以表示相似度,虽提升了迁移能力但精度有待提高。Meta-RCNN[19]和FsDetView[20]通过提取RoI(region of interest)特征对新类进行重新加权,提高了检测性能。与之相比,Metric-learning方法性能更加优越,尤其是TFA[21],甚至在经过基类充分训练后,加入新类后简单微调检测器,即能获得可观的结果。MPSR[22]认为原始检测器仅增加尺度,不考虑尺度关联性的方法存在局限性,难以在稀疏尺度信息中判断阳性或者阴性建议,虽解决了尺度方差问题,但由于网络构造复杂和人工调参干预导致过于繁琐。
由于特征相关性和有效匹配性[23]是决定目标特征迁移效率的关键因素。然而,仅整体微调的方法存在一个本质的缺点——对于实例的迁移过于仓促,只能依赖增加迭代次数的经验来加强迁移效果[24]。而加入新类的二次训练会导致已学习的分类器置信度和定位精度产生偏差。在优先样本的前提下,RoI难以提供强有力的特征表示[25]。当样本稀疏时,决策最值分类器的作用不够显著。
因此本文致力于构建少样本特征空间关联性,如图1所示,充分调用基类和新类特征关联性以保持尺度不变性。同时使用余弦分类器[26]取缔传统的线性分类器,结合对比学习机制[27,28]重构特征分布区域,在迁移过程中准确地划分簇空间,保证特征空间对齐,扩大类间间距,缩小类内间隙。
图1 少样本特征空间分布
针对上述理论,构造了一种基于Faster-RCNN检测框架的新颖模型CM-FSOD(contrastive mechanism fused multi-scale recursive projection for FSOD)。采用尺度投影对齐与对比机制相互结合,引导支持特征与查询特征信息传递的有效化进程。通过重构空间特征分布[29],最大程度上挖掘基类和新类特征映射关系。本章节将详细介绍该方法原理。
CM-FSOD方法主要采用微调范式进行训练,以TFA为基准线(Baseline)。如图2所示,训练过程主要分为基础训练阶段和微调阶段,并设定两个训练集,分别为样本充足的基类Cbase和仅含少量样本的新类Cnovel。Cbase∩Cnovel=∅,C={(x,y)|x∈X,y∈Y}, 其中X指目标对象,Y是标签信息。从这两个类中选取部分样本作为支持集(包含标签)和另一部分样本作为查询集(不含标签),通过学习基类的泛化知识,得到一个能够检测新类的检测器Dnovel。在基础阶段,训练方式与Faster-RCNN相同。而在微调阶段,输入K张带标签的支持集和无标签的查询集,然后微调分类器和回归器,重新计算损失以表示新类。其余特征组件参数则被冻结固定不变。
图2 基于微调范式
CM-FSOD算法体系结构如图3所示。首先在原始特征提取器中加入了自适应正样本特征细化分支MRP-FPN。然后,利用对比机制调用RoI特征池化,采用共享的对比分支对查询和支持特征进行特征编码,优化损失函数,并使用正交映射的方式对编码特征进行加权。值得注意的是,在微调阶段,没有完全冻结参数,而是保留了RPN(region proposal network)建议框对查询特征预判,引导特征有效化匹配。
图3 CM-FSOD算法体系结构
本节内容介绍了多尺度递归投影机制MRP-FPN(multi-scale recursive projection feature pyramid network)。MRP-FPN是一种尺度间的正样本细化分支,由多尺度金字塔网络、特征尺度加强模块FEM(feature enhancement module)和递归尺度映射门路RPG(recursive projection gateway)组成。如图4所示,首先在主干网络上对特征空间进行压缩,使用全局池化层GAP(global average pooling)保留大量的空间信息,使输入尺寸更加灵活。其中FEM采取了通道级注意力机制的经典结构,对各个尺度的特征进行采样。自适应池化层的卷积核数是可变的,能够贴合各尺度输出。
图4 MRP-FPN结构
其感知特征由多个3×3卷积层和ReLU激活函数组成的模块生成,其过程如式(1)所示
V=RC×Hi×Wi(Fc,ω)
(1)
其中,R为激活函数,Fc是C×Hi×Wi格式的输入特征,ω为卷积函数。与此同时,支持集与查询集共享Backbone,其在各尺度之间通道对齐,映射关系可以用正交关系如式(2)所示
Fn(VSi,VQi)=θ(VSi)θ′(VQi)
(2)
其中,θ与θ′表示反向传播函数。Si和Qi分别表示支持和查询特征。采用残差结构对目标线索捕获局部特征,获取能够产生尺度感知的上下文特征Fn*,其过程如式(3)所示
Fn*=(1+Ak)⊙Fn
(3)
其中,Ak为第k层特征图,⊙表示通道级点积。FEM层对特定尺度的物体前景进行索引,以获取目标感知特征ωij,其过程如式(4)所示
(4)
其中,Vij表示特定像素的特征向量,Wij是压缩池化的向量值,σ是sigmoid激活函数,沿空间维度k进行权值转化,Ω表示特征分布。RPG采用递归式投影的方法,在相邻尺度之间设置自适应的融合模块将Fn*投影至高层尺度,缩短跨尺度的空间差异,尺度间的投影信息传递用非线性映射的多元特征融合方式,如式(5)所示,其投影过程Pij为
(5)
ωqj,ωsj分别为查询感知特征和支持感知特征。利用卷积层实现了向高阶尺度输送特征信息。同时能更深层过滤和抹除背景噪声,对区分前背景也有帮助。在无大量筛除支持信息的前提下,增加了足够有效的查询特征以供匹配。
前文提及了仅微调检测器只能更多地在表层特征上计算匹配程度。自监督学习中的对比损失可以弥补决策不够的缺陷。由于一般对比机制只加入类的嵌入向量辅助损失函数计算,并不适用于元学习。因此本文采取选择先为每个类优先提取特定的特征编码,再创建类嵌入向量,如图5所示。经过基类训练后,RoI特征会被计算成初始基类的分布,其分布一般用高斯分布 {Ω=(μb,σb)} 表示,均值和方差分别为μb和σb。
图5 共享元对比损失机制
微调阶段采用动态的相关特征生成新的锚点,由查询特征和支持特征共享特征编码器,进行后续的分布匹配与较准。在RoI头中嵌入数层MLP编码器将特征信息转为特征编码。同时将每一批查询图像与支持图像之间的相关性组成一个基本单元,测量提案嵌入之间的相似性,并通过移位补偿更新已累积的特征分布,缓解了因过度对比增加的不确定性,避免匹配得分因相似特征而被放大的风险。
采用余弦相似度优化了匹配方式,防止提案向量值被激活后截断的问题,把输出的查询向量与关联映射的累积类权重做相似度计算,如式(6)所示,其相似度sim为
(6)
其中,qi为第i个查询实例,wj为RoI的类特征权重,β为映射函数,用于梯度缩放。如式(7)所示,用此方法控制校准新类分布的离散度H(i)
(7)
如式(8)所示,然后在微调阶段使用基于距离的损失函数Lsml
(8)
其中,P为匹配批次,N(i)为查询值qi提案与支持特征的匹配个数,H(i)包含了锚框zj的特征分布,且数值上设定H(i)=|N/zj|,τ为对比机制超参数的温度系数,提高类特征间的分离性。最后损失计算如式(9)所示
Ltotal=LRPN+Lcls+Lreg+λLsml
(9)
其中,LRPN为前背景框建议损失,Lcls为分类损失,两者均采用二元交叉熵Cross-entropy损失,Lreg为边框回归损失采用Smooth-L1损失。微调阶段加入元对比损失Lscl进行联合优化,其中多任务检测中一般设定λ为0.05~0.1,负责控制补偿程度,使模型输出最优效果。
本模型在PASCAL VOC和MS COCO数据集进行了详细实验,并与现有的先进模型进行比较,其评估标准主要是新类的检测精度nAP(novel average precision),主要衡量了模型从基类特征迁移知识的能力。实验设置多组类型的分割数据集,并在PASCAL VOC数据集进行详细的消融对比实验。本章节将全面分析该模型的先进性。
3.1.1 PASCAL VOC
PASCAL VOC数据集由VOC 07和VOC 12组成。采用3个不同的分割集(分别称为split 1,2,3),均包含20个类别。训练集均由15个数据充足的基类和5个仅含K个样本(也称为K-Shot)的新类组成。并在VOC 07测试集评估了K=1,2,3,5,10 shots的新类检测值nAP50 (nAP50指IoU阈值设为0.5的新类平均检测精度)。为了增加检测的有效性,设置了10个以上的随机种子计算平均检测结果。
3.1.2 MS COCO
MS COCO数据集含80个类别,其中与VOC相同的20个类别作为新类,其余60个类作为基类。COCO测试集包含近5000张待测样本,检测规模更大,因而实验测试了K=10,30 shots并报告nAP,nAP75检测值作为评估标准(nAP,nAP75分别指标准平均精度AP和IoU阈值设为0.75的新类平均检测精度)。nAP75通常被认为是更加苛刻的评估指标,被用来衡量模型在少样本情况下的泛化能力和性能表现。
采用PyTorch深度学习框架开发,在NVIDA GeForce 3090 GPU进行测试,以TFA作为Baseline。其框架主要基于Faster R-CNN结合ResNet特征提取器。批量大小bs设置为4,基础阶段学习率为0.01,微调阶段初始学习率为0.005。优化器采用随机梯度下降SGD,其动量值为0.9,衰减系数为1e-4。
3.3.1 PASCAL VOC实验
VOC实验设置了10次随机重复测试求平均值的做法,分别对3个分割集KShots情景进行测试,对比以往10个相关的先进方法,并报告了nAP50的平均性能。如表1所示,展示了检测结果,其中该方法对比前者,均取得了最佳和次佳的检测结果。结果显示,该模型在3个不同分割集上均显著优于Baseline TFA,获得了比以前方法更全面的性能。例如split 2,在K=1,2,3,10 Shots的检测中均取得了最先进的结果。在极低样本K=1,2 Shots情景中nAP50提升尤为明显,为该方法提供了一个强有力的证据。与TFA相比,在3个分割集的1-Shot检测中平均提升了3.6%,并且在3个分割集上均表现最佳。极低样本的检测结果反映了模型对局部和零散信息的捕捉能力更加突出,更能解决关于随机采样的不确定性。同时较稳定的10-Shot也表现出了不俗的性能。
表1 PASCAL VOC测试模型检测对比/%
3.3.2 MS COCO实验
为了公平评估模型性能,本文进一步在MS COCO上测试10,30 Shots的检测表现。实验结果表明,该模型的表现同样卓越。与VOC相比,MS COCO具有更稳定和更丰富的源数据集。因此检测率的提升不像VOC那样显著。尽管MS COCO具有挑战性,但该方法对检测结果的提升依然可观。如表2所示,采用了不同的检测方式,并报告了nAP,nAP75检测值。在10-Shot下nAP从原来的10%提升到了11.5%,nAP75从原来的9.7%提升到10.2%。随着样本数量增加,检测结果会更加稳定,而该方法在30-Shot下的检测结果同样有所提高,这种程度的提高表明该模型更具有泛化性和鲁棒性。
表2 MS COCO测试模型检测对比/%
本节内容对这些组件产生的影响和贡献分别进行了测试和分析,并报告了在VOC 07测试集的评估结果。
3.4.1 MRP-FPN模块实验
如表3所示,逐一测试了该模块中的FEM和RPG组件及其组合方式,并报告了1,3-Shot的nAP检测结果。尽管仅使用原始FPN已有所提升,但总体检测率仍然不够高。表格No.2,3分别展示了FEM和RPG的独立测试结果,其中FEM的效果略优于RPG,在1-Shot情况下,FEM将nAP50提升至 39.6%,RPG则为45.1%。而从No.4中可以看出,两者组合的效果更佳,3-Shot情况下 nAP50提高了2.6%。表明了FEM有效地聚焦了前景信息,保留了特征细节。而RPG实现了特征的深浅层交流以保持空间对齐。
表3 MRP-FPN消融实验测试结果/%
为了挖掘组件潜能,充分解决RPN不确定性和提高RoI头新类知识提取能力,进一步测试了MRP-FPN对RPN和RoI的影响。如No.5~7所示,微调阶段尝试解冻RPN和RoI,结果表明,合理解冻RPN能有效提升检测率。这是因为组件鼓励模型利用更多低质量的建议框。在以往测试中这些框容易被RPN筛除,而解冻的方法有助于优化少样本场景设置中有限的数据,提供更多前景知识以供判断。
3.4.2 SCL模块实验
对SCL组件聚合查询和支持特征以生成相关特征的能力进行测试,并列举了部分基类和全部新类的检测结果,并增加测试了基类检测率Base AP50(bAP50),其主要是指IoU阈值设为0.5的基类平均检测精度,反映了基础训练阶段对基类特征分布构造的能力。此外,还测试了传统对比机制与共享对比机制对生成类功能的影响。如表4所示,两种对比方式均提升了检测率,尤其是在充分样本下,基类检测率分别提升了0.6%和1.1%,而采用查询特征和支持特征共享fc层的做法对新类的提升更加明显,说明这种类型的对比策略值得尝试和拓展,尤其是对每个类的低维空间特征迁移和嵌入,有助于元学习对比查询和支持图像,并在同类之间创建相似的嵌入向量。No.4则直观地展示了多尺度投影和共享元对比机制结合的优势,几乎对所有新类均有提升。
表4 SCL消融实验测试结果/%
3.4.3 迁移效率与稳定性测试
前文实验已经测试相应组件功能,上述表4也反映了CM-FSOD与基线模型的性能。在此基础上,进一步测试该模型的整体训练效率。由于训练样本稀缺,每一次的样本方差测试均比较大,容易造成性能差异,很难公平比较其它方法。因此对Baseline和CM-FSOD进行了多次极低样本K=1情景进行30次重复运行,最后绘制了具有95%置信区间的nAP50(/%)的累积平均值。如图6所示,splitn_O,splitn_B分别表示本文方法和Baseline方法在分割集n(n=1,2,3) 上测试。多次运行后的平均值始终低于首次运行时的值,尤其在一次性运行情况下,随着随机样本输入增加,模型平均性能会出现显著下降。进行了30次重复运行的模型,结果显示前10次运行的置信区间比较大,当重复次数增加至在20~30次区间,性能普遍趋向稳定,从而允许进行更公平比较。
图6 多次运行累积平均值
如图7所示,为了测试模型稳定性,对VOC的基类和新类检测性能进行了广泛地评估,并报告了平均值AP、bAP以及nAP,其中K_Ours、K_Bs分别表示K-Shot情景下本文方法和Baseline方法的检测结果 (K=1,2)。 综上所 述,该方法稳定性可以媲美,甚至比原有的方法更加出色。侧面反映了该方法有助于特征对齐,使模型趋向于稳定。
图7 关于VOC的广义目标检测基准测试
我们通过定性可视化展示了在VOC数据集新类检测的部分样本实际检测效果,包括遮挡、多物体、小目标等场景。如图8(a)所示,相较于基线模型,该模型表现出更好的检测效果,提升了置信分数,减少了错误分类。此外,我们还对执行投影机制前后的特征效果进行了可视化,如图8(b)所示。通过投影前后的特征热力图比较,该模型能够激活查询特征,从而挖掘更多的细粒度信息,进一步提升了后续的检测过程。这进一步验证了该模型在全局和局部搜索能力上的提升,以及其对查询特征的有效性。
图8 测试结果可视化对比
本文提出了一种解决少样本目标检测中尺度关联性差、空间不对齐等问题的算法。该方法通过正样本细化分支修复空间错位和特征不确定性,保证了尺度不变性。并利用共享对比机制为新类提供了更稳定的匹配方式。与先前方法相比,广泛实验验证了该方法适应性更强、准确率更高,具有更强的应用性。在尚未解决的问题方面,本研究将探索该算法在具体场景和模型效率等方面的应用,并研究在其它下游任务(如细粒度检测和显著性检测)的可行性。