李丽芬,范新烨
1(华北电力大学(保定) 计算机系,河北 保定 071000) 2(华北电力大学(保定) 复杂能源系统智能计算教育部工程研究中心,河北 保定 071000)
如今,基于深度学习的目标检测方法取得了巨大成功,其中重要的促成因素之一是准确注释的丰富数据.与之相比,人类智能的显著特征是可以依赖少量样本学习的能力,这促使小样本目标检测越来越受到关注.就物体自身和外界环境来讲,物体之间存在巨大的差异,这使小样本学习更加具有挑战性.近些年,小样本目标检测成为研究热潮,出现了很多小样本目标检测方法.Cai等[1]提出了类特征增强的方法,通过相似类获得类特征,实现对图像的特征增强.LSTD[2]提出了迁移知识正则化和背景抑制正则化,以促进知识从源域到目标域的迁移.Peng等[3]提出在模型训练和高置信度样本选择之间进行迭代.多尺度选择金字塔网络[4]采用正交映射损失函数使模型在分类层前约束特征,采用特征减法(Feature Subtraction,FS)滤除特征图像中的杂波,提升模型对新类参数的敏感度.Dong等[5]通过改进VGG16网络,用fine-tuning和分段训练的策略实现小样本目标检测,但是对于小目标漏检率高.Wu等[6]提出一种元学习方法,以使对象检测器能够从少数未见类别的样本中逐步学习,同时有效克服灾难性遗忘的问题,但是特征提取器会对基类样本产生过拟合,导致输出特征的泛化不足.
目前,小样本学习大多基于元学习方法,元学习方法包括MAML[7]、原型网络[8]、关系网络[9]、匹配网络[10]等.虽然这些方法在小样本学习方向取得了重大研究和进展,但是这些方法大都专注于图像分类,很少涉及小样本目标检测的问题.与图像分类不同,目标检测不仅需要模型识别目标类型,还需要在数百万个候选区域中定位目标,这大大增加了模型的复杂性.
为此,本文提出了一种结合元学习和多尺度特征融合的方法进行小样本目标检测.模型采用VGG16[11]的前5个卷积块作为骨干网络,并将空洞卷积代替第5个卷积块的常规卷积,且保留第3个卷积块提取的特征作为中间层特征,利用特征金字塔网络(Feature Pyramid Networks,FPN)和像素聚合网络(Pixel Aggregaion Networks,PAN)实现多尺度特征融合.同时,经过挤压和激励模块(Squeeze-and-Excitation block)得到经过加权处理的特征图.将经过加权处理的特征图输入到注意力区域建议网络以获得目标区域.与此同时,考虑到对于小样本目标检测任务,神经网络很难根据几个支持集学习到可靠的特征参数,以此给小样本目标检测带来了检测困难.本文使用MAML双层优化的思想实现自动寻找最优参数结果,并计算使用原型网络得到支持集多尺度原型和经过ROI Align处理得到查询集ROI 特征向量之间的欧氏距离,对目标进行分类,从而提升模型对于不同类别的区分能力.
本文主要创新和贡献如下:
1)在VGG16网络的基础上进行改进,并通过引入注意力机制来增强图像中目标的显著性,实现检测网络前期特征的有效提取;
2)在Faster R-CNN检测框架的特征金字塔网络(FPN)后加入像素聚合网络(PAN),将低层位置特征与转置卷积处理后的高层语义特征融合,实现语义信息和位置信息更好的融合;
3)针对候选区域分类问题,采用原型网络计算欧氏距离的方法,实现对新目标的精准分类.
在深度学习飞速发展的时代,深度学习模型的设计至关重要.但训练模型和人为调参需要大量的计算,且在大量数据训练的模型中切换任务模型需要重新训练.元学习(Meta-Learning[12])可以有效的缓解大量调参和任务切换重新训练带来的计算成本问题.
元学习又称“学会学习(Learning to learn)”,使其可以根据已获得知识快速学习新任务,使网络具备学会学习的能力,是解决小样本问题(Few-shot Learning)常用的方法之一.元学习的本质是让学习器遇到未出现过的任务时仍然可以有更好的性能.因此学习到的可以在未出现的任务中依赖很少的样本迅速建立起feature map.机器学习是先人为调参,之后直接训练特定任务下的深度模型.元学习则是先通过其他的任务训练出一个较好的超参数,然后再对特定任务进行训练.具体过程如图1所示.
图1 元学习结构图Fig.1 Meta-Learning structure diagram
在元学习中,训练的单元是任务,任务包括训练任务和测试任务,通过训练多个子任务来学习到对于模型来说更好的参数,测试任务则是根据训练得来的超参数来训练特定任务.区别于机器学习的数据,元学习的数据分为支持集、查询集,且在训练的每个任务中都包含支持集和查询集.
Faster R-CNN是由Ross B.Girshick[13]在2016年提出的.Faster R-CNN在一个网络中集成了特征提取、区域建议框提取、校正,如图2所示.整体性能大大提高,尤其是在检测速度方面.Faster R-CNN使用区域建议网络(Region Proposal Network,RPN)生成建议框,候选区域被合并到深度网络中,在不占用更多资源的情况下大大提高了检测速度和准确率.
图2 Faster R-CNN网络架构Fig.2 Faster R-CNN network architecture
与Fast R-CNN相比,RPN替换掉原来的区域候选Selective Search方法,通过Faster R-CNN生成的建议窗口,物体检测和建议窗口共享卷积神经网络.
空洞卷积[14](Atrous Convolution)最初被应用在语义分割中,其主要作用是可以在扩大感受野的同时不丢失图像清晰度,且在像素上可以保持空间对应位置不变.空洞卷积比常规卷积增加了扩张率(dilation rate)r的概念,r用来控制卷积核扩张的幅度,即采样间隔.且当时,与普通卷积等价.空洞卷积增加了感受野,但不改变卷积核的有效计算点,不增加计算复杂度.此外,空洞卷积可以根据扩张率的大小不同得以提供大小不同的感受野,从而得到图像不同的特征信息.有助于小样本条件下的目标检测.但是对小目标来说,本身不需要太大的感受野,太大的感受野会使目标丢失,对于如何解决此问题,Wang等[15]提出了HDC(Hybrid Dilated Convolution)原则,使用混合空洞卷积,即在每一层中使用不同的扩张率,从而使最后接收野全覆盖整张图片,保证在增强特征信息同时,获取不同大小的感受野,从而提取到多尺度的特征.在设计扩张率时,相邻卷积层扩张率的公约数最大为1,否则会让有的点永远不会被考虑.扩张率的分配遵循以下规则:许多层被组合在一起形成“上升边缘”增长的波,下一组重复同样的模式.通过此种方法,可以有效的覆盖所有点.
在设计扩张率时要满足以下公式,M<=K
Mi=max[Mi+1-2ri,Mi+1-2(Mi+1-ri)]
(1)
其中ri表示空洞卷积率,K是卷积核尺寸,得到扩张率rn=Mn.
小样本条件下的目标检测主要目的是开发一个具有效率高、鲁棒性强的检测模型.仅给出一个或几个样本,该模型就可以产生像素级的预测,对新的类别有足够的准确性和高效性.
本文在Faster R-CNN模型的基础上,引入元学习的相关思想,设计了一种应用于样本数量少的情况下目标检测网络FRML(Faster R-CNN+Meta Learning),FRML网络的整体架构如图3所示.FRML网络首先经过改进的VGG16网络实现特征提取,并通过FPN+PAN模块融合支持集特征和特征提取网络第3个卷积块保留的中间特征;利用支持集和查询集信息,采用深度互相关的方法得到支持集和查询集二者的相似关系,依赖计算得出的带有相似性分数得到注意力特征图;将得到的注意力特征图传递给区域建议网络,以框选出图像中目标区域,然后利用ROI Align模块得到ROI特征向量;使用欧氏距离公式计算经过原型网络得到的支持集多尺度原型向量和查询图像生成的ROI特征向量之间的距离,得到的距离由Softmax函数进行概率计算,得到小样本目标检测结果的分类概率.同时,使用全局平均池化替换全连接层,进行边界框回归,实现目标的准确定位.减少了网络模型的参数数量,并提升计算效果,从而提高网络模型健壮性和抗过拟合效果.
图3 FRML网络的模型结构 Fig.3 Model structure of FRML network
与Faster R-CNN 相比,本文设计的FRML算法改进了RPN模块以适应小样本目标区域候选框的生成;同时利用FPN+PAN模块,实现查询集图像和支持集图像多尺度特征融合;最后使用原型网络完成目标检测的分类任务.
特征提取模型的主干网络为VGG16.本文选择VGG16的前5个卷积块作为骨干网络,其中第5个卷积块被替换为空洞卷积,扩张率分别设为R=(1,3,5).引入空洞卷积的主要目的,是在不减少图像清晰度的同时,得到更多的目标图像信息.而在此基础上,保留第3个卷积块的输出作为中间特征,用于进一步的多尺度特征融合.
本文中使用的扩张率组合为R=(r1,r2,r3),其中r1、r2、r3分别3种不同的扩张率,对于扩张率为r,卷积核为k的空洞卷积,扩张后的卷积核大小k′,则k′=k+(k-1)*(r-1),当前层的感受野计算公式为((r-1)*(k-1)+k+2)2,在实验中将扩张率组合设置为R=(1,3,5)来获得更多的空间和背景信息.本文空洞卷积结构如图4所示.
图4 空洞卷积结构Fig.4 Atrous convolution structure
由于受到小样本条件下目标检测算法和YOLOv4的启发,采用了FPN+PAN网络进行特征的融合.
特征金字塔网络是一种获取金字塔特征表示的有效模型,它分为自底向上、自顶向下、横向连接3部分的路径.在自底向上的路径中,各个阶段获得的是卷积层最后一层的目标特征(去掉第1阶段).而自顶向下路径的主要功能则是合并各个阶段的特征图.对于低层的特征来讲,其具有更强的空间信息,而对于高层的特征来讲,语义性会更好.在FPN模块中,每个阶段的最终特征图都是通过上采样特征图和VGG16下采样各阶段的特征图通过特征图合并获得.特征图既含有大量语义信息,又含有若干具体的低级位置信息.通过这样的方式,相对于使用一个较高层特征进行预测可以获得较高的检测准确度.
目标检测任务中除了要满足目标分类的要求,还需要完成精确的目标定位,因此更需要目标中低层的特征中所包含的位置和轮廓信息,本文利用FPN网络实现自顶向下路径信息的增强,然后再利用PAN网络自底向上的结构获取中低层的位置轮廓特征.具体的结构如图5所示.
图5 特征融合结构Fig.5 Feature fusion structure
支持集图像和查询集图像,经过特征提取网络提取到各个卷积块的特征,将低层位置特征Flow、中间层特征Fmid与高层语义特征Fhigh进行特征融合.Flow与Fmid的转置FmidT经过矩阵乘法得到矩阵Flm,Flm与Fhigh的转置FhighT经过矩阵乘法的到矩阵Ψ.
Flm=Flow×FmidT
(2)
Ψ=Flm×FhighT
(3)
人类在查看事物的过程中,可以很快地从图像中获得感兴趣区域,并能够从该区域内获得目标信息,同时还可以抑制其他类别信息及无用背景信息.人类视觉注意力机制极大提升视觉信息处理的效果和准确度[16].为增强小样本条件下目标特征的表达能力,更好地提取特征,本文使用通道注意力机制和空间注意力机制以提升小样本目标分类和定位的准确性.
首先,支持集和查询集样本经过FPN+PAN模型实现从多个角度融合样本特征,对得到的特征图加入通道注意力.并非所有通道信息都对表示目标特征有用,且某些通道的特征对目标的检测相比于其他背景和不同类的特征更重要.通道注意力对全部特征进行学习,选择对目标检测更重要的特征,并抑制不相关功能.其原理如图6所示.
图6 通道注意力机制Fig.6 Channel attention mechanism
为得到引入权重的特征图,对经过卷积处理得到的特征图做GAP-FC-ReLU-Sigmoid一系列操作,从而得到特征图各个通道上的权重,将得到的各通道权重与输入特征图的各个通道进行相乘,从而得到特征加权的特征图.整个过程如下所示:
(4)
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(5)
(6)
其中δ表示ReLU函数,σ表示Sigmoid函数,z代表输入特征,W1,W2代表两个全连接层的权重,Fscate代表特征映射uc和标量sc之间的对应通道乘积.
当获得通道注意力加权特征图后,将该特征图直接导入注意力RPN网络.注意力RPN(如图7所示)可以使用支持信息过滤掉大多数背景框和不匹配类别中的背景框,从而解决RPN在每一个具有高目标性得分的潜在对象中无目的的活动,给检测器的分类任务带来大量无关对象的负担问题.
图7 注意力RPNFig.7 Attention RPN
利用注意力机制将支持目标定位的信息输入到RPN网络,以引导RPN网络生成目标建议框,同时抑制不匹配类别框的生成.经过通道注意力后,引入空间注意力机制[17],计算支持集平均特征作为支持特征,支持特征通过平均池化方法和深度卷积算法生成向量,同样,查询集也经过深度卷积,并通过深度互相关的方式估计支持集与查询集特征之间的相似性,其输出作为注意特征输入RPN生成建议框.相似性定义为:
(7)
其中X为支持特征,Y为查询特征,G是合成的注意特征图.
本文基于度量的元学习方法,提出利用原型网络完成目标检测的分类,进而训练出针对小样本目标检测分类能力更强的检测模型,以满足于针对小样本定义新的目标类型实现精准测试.
原型网络可以通过嵌入函数fφ了解图像中所有的嵌入特性,进而计算支持图像所有类别的均值向量,以此作为代表,作为各类的原型.
(8)
其中,N表示支持集的样本数量,xi表示支持集的样本图像,fφ表示嵌入函数,ck为第k个类别的原型表示.
根据嵌入函数fφ得到查询集样本xj的特征fφ(xj),通过计算支持集原型向量与查询图像ROI向量两者之间的欧氏距离,以此来预测查询样本的类别.
在度量学习中,通常使用欧氏距离来表示两点之间的距离,其距离公式为:设两个n维空间的点分别为a(x11,x12,…,x1n)与b(x21,x22,…,x2n)则a与b的欧氏距离为:
(9)
通过Softmax函数可以获得查询图像x为每一个类别的概率分布,从而实现小样本目标的分类.
(10)
di为计算的查询集样本与支持集样本类原型的距离,C为维度,S(di)为预测对象所属类别的概率.
本文实验使用的数据集为PASCAL VOC07[18]和MS COCO[19],其中PASCAL VOC07共9963张图片,20个类别,选择12类作为支持集,其余8类作为查询集;MS COCO中用于检测任务的有80个对象类别,与PASCAL VOC重叠的有20个类别.
实验运行环境为Ubuntu操作系统,内存32GB,GPU为Geforce GTX 2080.
设计宽高比不同的9个anchor在Faster RCNN中是目标检测定位的首要方法,但是人工设计的anchor不能保证大小与目标尺寸相适应,如果差距过大,则使用该anchor实现目标检测的定位,会出现较大误差.
本文使用K-means聚类的方法,根据数据集的分布,合理生成anchor.通过对anchor box的宽高和图片的宽高做归一化,获得相同大小.
(11)
anchor box的宽和高分别表示为wbox和hbox,图片的宽和高分别表示为wimg和himg,w和h为归一化后的结果.
本文在Faster R-CNN模型的基础上,选用VGG16网络的前5个卷积块作为主干,利用MAML算法双层优化的思想对模型参数更新,以学习更好的参数.ROI Align作为ROI特征提取器,在对基类进行训练之后,全连接层被删去,并被全局平均池化层替代.训练过程主要分为两个阶段,第1阶段训练数据标注丰富的数据集,并利用MAML算法训练模型的最优参数,初始学习率设为10-3,批量大小为4,训练20个轮次,每轮次迭代5000次,而每训练5个轮次学习率都衰减10%.在第2个阶段使用的数据包含了基类和未见过的小样本新类,初始学习率为10-3,批量大小为4,训练12个轮次,在训练10个轮次后学习率衰减为10-5,然后再训练剩余的2个轮次.本文的实验结果都是运行10次得到的平均性能.
为评价本文方法的检测效果,选择近年来提出的相关算法与本文算法进行比较.
4.4.1 定量评价
在对本文提出模型进行训练后,对VOC07数据集中部分类别进行类别检测测试,测试结果如图8所示.测试样本被分类器分类正确的使用TP表示,测试样本被分类器分类错误的使用FP表示.
图8 基于Faster R-CNN的样本分类结果Fig.8 Sample classification results based on Faster R-CNN
从图8中可知对于Cat类别的TP是最高的,显著高于排名第2的Aeroplane类别,对于Cow的TP数值最小.同时对Cat类别,其FP也达到了最小.在12个类别中,TP大于FP个数的类别达到6个,分别为Sheep、Train、Aeroplane、Cat、Motorbike、Bus.其余6种均为FP大于TP情况.且Cow、Boat、TV monitor类别中TP与FP个数差距较小.
与原始模型相比,基于元学习与多尺度特征融合的Faster R-CNN模型(如图9所示)在TP和FP的数值个数上都有所下降,但是TP下降速度明显小于FP下降速度.TP个数最多仍为Cat类别,第2名为Aeroplane类别,可以发现,相比于图8、图9中各个类别TP与FP差距更大,说明模型的准确率有所上升.其中差距最大为Cat类别,即在本模型中对Cat类别的准确率最高,对Horse的准确率最低.总之,提出的模型在样本类别测试中略胜一筹.
图9 基于元学习与多尺度特征融合的Faster R-CNN样本分类结果Fig.9 Faster R-CNN sample classification results based on meta-learning and multi-scale feature fusion
4.4.2 对比实验
实验选择VOC07数据集的20个类别,进行N-way K-shot小样本学习的训练,将15个类别随机分为3组数据进行训练,剩余5类作为测试集,其中N为15,K属于{1,3,5,10}.
由图10可知,0~2000次训练过程中,4种算法并没有明显差异,本文所提出的方法并不明显优于其他3种方法,Meta-YOLO[20]方法在前2000次训练中有着不错的性能,准确率可以达到20%~30%,优于Meta-RCNN[21]方法以及MPSR[22]方法,但是本文所提出方法与其没有明显差异;在2000次训练之后,本文所提出方法与其他3种方法相比有着显著的提升,但Meta-YOLO方法与MPSR方法的差距不明显,本文所提出方法虽然有上下波动但是训练过程相对平稳,峰值误差不超过5%;在2000次训练之后,Meta-YOLO方法虽然一直处于上升趋势,但在性能上明显落后于其他3种算法,而Meta-RCNN算法和MPSR方法在不同阶段无法比较优劣,最后MPSR方法准确率达到56.61%,Meta-RCNN准确率达到55.20%,本文所提出方法优于其他算法,准确率达到57.11%.相比于Meta-RCNN算法有了1.91%的提升.
图10 迭代轮次对模型准确率的影响Fig.10 Effect of iteration rounds on model accuracy
从表1的测试结果来看,本文提出算法的检测性能优于Meta R-CNN,在各个测试集上都得到了最佳性能.与MPSR相比,当标注类别K比较少(K=1,3,5)时,该模型在不同的类别上会存在略低的检测性能,但是随着K的增加,本模型可以有更好的性能,且在Novel Set3测试集上,本模型相比其他算法都达到了最佳性能,优势更加明显.
表1 不同模型在VOC07测试集上检测的mAPTable 1 mAP detected by different models on the VOC07 test set
表2展示了不同模型在VOC测试集新类和基类上,3shot、10shot条件下得到的各个类别的AP和mAP,可以看出,Meta-YOLO模型在“boat”类别上的检测性能较差,在3shot条件下,本文模型对“boat”类别的检测性能提高了5.5%;而在10shot条件下,检测性能提高了11.9%.总体可以看出,本模型在对新类进行小样本目标检测时,平均准确率在3shot和10shot条件下分别可以达到51.08%、58.04%,相比于MPSR算法有了6.12%、1.86%的提升.
表2 不同模型在 VOC07 测试集上的AP 和 mAPTable 2 AP and mAP of different models on VOC07 test set
利用训练好的模型在MS COCO数据集上进行训练,选择MS COCO 数据集中与VOC不重叠的60个类别作为支持集进行训练,重叠的20个类作为测试集进行测试,其中K=10,30.对于MS COCO的评价,使用标准的MS COCO 评价指标:AP、AP50、AP75、APS、APM、APL.其中AP50代表新类别的IoU阈值为0.5的平均精度,AP75代表IoU阈值为0.75的平均精度,且AP75是比AP50更严格的度量标准.APS、APM、APL中的S代表图像中物体面积小于32×32、M代表图像中物体面积大于32×32小于96×96、L代表图像中物体面积大于96×96.
从表3的测试结果来看,在10shot条件下,本模型的AP、AP50、AP75都达到了最佳15.2%、28.4%和12.8%,在APM和APL上也达到了最佳性能.在30shot条件下,AP50达到了33%.
表3 MS COCO测试集上的AP和mAPTable 3 AP and mAP on MS COCO test set
4.4.3 消融实验
针对VOC数据集,可以分析各个模块的增加以及给模型总体特性所产生的改变.通过逐个添加并应用于各个模块来测试各个模块所为模型整体提供的效能.在VOC07数据集拆分的第一组数据中评价不同模块给模型带来的整体性能.实验结论如表4所给出.
表4 不同模块在VOC07 Split1测试集上的小样本检测的mAPTable 4 mAP for few-shot detection of different modules on the VOC07 Split1 test set
从表4中可以看出,对于K=10来说,实验结果由53.45%经过不断增加相关方法,平均准确率逐步上升.由表4可以明显看出,多尺度特征融合模块对性能检测影响较大,模型性能提升了6.2%,通过融合低级的位置信息、中级信息和高级的语义信息可以增强目标的显著性.同时,将融合的特征引入注意力RPN可以更精准的选定区域候选框.且随着K的增大,模型的检测性能逐渐上升.故引入FPN+PAN多尺度特征融合和注意力RPN模块可以提升模型在小样本条件下的检测性能.
本文基于Faster R-CNN模型,引入空洞卷积,提高了模型对目标不同尺度的特征的提取能力,且保留VGG16第3个卷积块的特征进行低级位置信息、中级信息和高级语义信息在FPN+PAN模块中实现多尺度特征融合.同时引入原型网络完成目标的分类任务,提高了图像分类的准确率.在PASCAL VOC 和MS COCO数据集上的实验结果表明,本文提出的算法在样本量较小的情况下有效提高了Faster R-CNN模型的目标检测精度.小样本条件下的目标检测对军事、特定场景下的图像检索、工业生产残次品的检测和无人驾驶方面都有很大的研究价值,下一步的工作将研究引入类别语义信息提升小样本目标检测的泛化能力.