基于改进多级特征金字塔的陆战场目标检测算法

2020-10-15 11:01乔梦雨贺咪咪
计算机应用与软件 2020年10期
关键词:金字塔尺度模块

吴 娇 王 鹏 乔梦雨 贺咪咪

(西安工业大学电子信息工程学院 陕西 西安 710021)

0 引 言

由于现代战争更加信息化、立体化,战场信息瞬息万变。所获得的感知情报数量急剧膨胀,给利用情报进行目标的探测与识别造成了困难,仅仅通过人工判断无法保证情报关联的正确率和实时性[1]。因此,在新的作战思想和作战模式下,必须进一步提高系统的识别能力,增强现代陆战场侦察与反侦察的能力和手段,以适应未来形势发展的需要。尤其在反侦察过程中,陆战场目标(如火炮、坦克、装甲车、单兵)作为陆战场中的信息感知和火力打击的终端,在陆战中有着重要的作用[2]。这些目标通常执行毁伤、侦察、潜伏等任务,而能否准确快速检测出敌方目标不仅决定了我方战斗力强弱,还影响着战场态势,因此指挥中心需要密切关注目标终端的检测状态,根据目标检测状态实时调整作战策略[3]。针对陆战场反侦察系统,如何准确快速地检测出目标成为提升陆战场上感知能力所亟待解决的关键问题,同时引起学者的广泛关注[4]。

当前目标检测领域主要有三大分支。第一种是基于候选区域的深度学习目标检测算法,也称为Two-stage目标检测器,例如:R-CNN通过生成候选区域,可以保证在选取较少窗口的情况下保持较高的召回率,并提升特征鲁棒性,但训练分为多个阶段,导致训练耗时、占用磁盘空间大、速度慢等[5];SPP-NET算法解决了输入图片尺度限制的问题,加快目标检测的速率,但训练仍为多个阶段,固定了卷积层,无法完全适用新任务[6];使用最广泛的Faster-RCNN通过引入区域生成网络来去除低层次的候选框算法,使检测器更加高效[7],通过RPN与检测网络的联合训练,可实现端到端训练,然而Faster R-CNN还是达不到实时的目标检测[8];R-FCN将全连接子检测网络替换为完全卷积子检测网络,进一步提高了Faster R-CNN的检测效率,但是检测速度仍然不满足需求[9]。第二种是基于回归方法的深度学习目标检测算法,也称为One-stage目标检测器。例如:YOLO算法将目标检测转换成一个回归问题,大大加快了检测速度,但没有了候选区域机制,目标不能被非常准确定位,导致检测精度不高[10];SSD(Single Shot MultiBox Detector)结合了YOLO中的回归思想和Faster R-CNN中的锚机制,使用全图各个位置的多尺度区域特征进行回归,相对地提高了速度与精度[11]。第三种是基于残差方法的深度学习目标检测算法,使用残差学习的思想学习更深的网络,从而学习到更好的特征,以提升准确率,例如:COCO2015竞赛中,提出的152层的深度残差网络ResNet,实现了高准确率的目标检测;将残差网络运用于困难样本挖掘的目标检测中,在提高精度的同时使学习到的网络模型有更强的泛化能力[12]。

针对上述问题,本文基于多层特征金字塔网络(MLFPN)[13]提出一种更有效的改进的多层次特征金字塔网络(Improved Multi-level Feature Pyramid Network,I-MLFPN),用于检测不同尺度的物体,运用Focal loss损失函数解决正负样本不均衡问题,同时避免上述现有方法的局限性。

本文的主要贡献如下:

1)在多层次特征金字塔MLFPN的基础上,提出了运用通道混洗模块ShuffleNet[14]代替MLFPN网络模型中的简化U型模块(TUM),用于生成一组多尺度特征,然后交替连接ShuffleNet和FFMv2s提取多级多尺度特征。运用尺度的特征聚合模块SFAM将特征聚合为多级特征金字塔,以此提高目标准确率与检测速率。

2)使用一种新的Focal loss损失函数进行训练[15],解决正负样本不均衡的问题,最后用非最大抑制(NMS)操作以产生最终结果从而提高精度[16]。

1 相关工作

实例之间的尺度差异是对象检测任务的主要挑战之一,通常有两种策略来解决由此挑战引起的问题[17]。第一种是检测图像金字塔中的对象,如SNIP[18],这种方法只能在测试时使用,大大增加内存和计算复杂性,效率急剧下降。第二种是检测从输入图像中提取的特征金字塔中的对象,如FPN[19],可以在训练和测试阶段进行利用。与使用图像金字塔的第一种解决方案相比,第二种方案需要更少的内存和计算成本。此外,特征金字塔构建模块可以很容易地嵌入到基于深度神经网络的最先进检测器中,从而产生端到端的解决方案。

尽管具有特征金字塔的物体检测器取得了不错的结果[20],但由于它们只是根据内在多尺度金字塔结构的骨架网络构建了特征金字塔,这种骨架网络实际上是为物体分类任务设计的,因此这些方法仍然存在以下两个局限[21]:金字塔中的特征图对于对象检测任务而言不够典型,它们只是简单地从为对象分类任务设计的骨干网络的特征中构造;金字塔中的每个特征图主要或甚至仅从骨干网络的单层构建,它仅包含单层信息。通常,较深层中的高级特征对分类子任务更具区别性,而较浅层中的低级特征可有助于对象位置回归子任务。此外,低级特征更适合于表征具有简单外观的对象,而高级特征适合于具有复杂外观的对象[22]。实际上,在相同尺寸(例如460×460)的图像中,实际对象的外观可能完全不同。例如,陆战场中的坦克、火炮和单兵可能具有相同的尺寸,但是单兵的外观要复杂得多(如单兵五官、肢体姿态等),其特征更难以提取。因此,金字塔中的每个特征图(用于检测特定尺寸范围内的对象)主要或仅由单级特征组成将致使检测性能欠佳。

本文提出的改进多层次特征金字塔网络模型(I-MLFPN)将网络中的不同深度的特征信息进行提取并融合,不仅解决了小目标特征信息遗漏问题,也很大程度上提高了目标检测的识别精度,通过运用Focal loss函数进一步提高目标的识别率。

2 改进多层次特征金字塔网络

2.1 多层次特征金字塔模型

本文模型架构如图1所示。

图1 模型网络结构图

本文在MLFPN的基础上,提出了运用通道混洗ShuffleNet模块代替MLFPN网络模型中的TUM模块,优化了网络的检测精度与速度。使用骨干网和改进的多级特征金字塔网络(I-MLFPN)从输入图像中提取特征,其中I-MLFPN由三个模块组成,即特征融合模块(FFM)、通道混洗ShuffleNet模块和基于尺度的特征聚合模块(SFAM);通过FFMv1融合骨干网络的特征图,将语义信息丰富为基本特征;将基本信息输入给ShuffleNet和FFMv2,FFMv2融合了基本特征和前一个ShuffleNet的最大输出特征图,将每个ShuffleNet提取出的具有多级多尺度的若干特征图送入SFAM模块,SFAM通过按比例缩放的特征连接操作和通道注意力机制将特征聚合到多级特征金字塔中,得出不同尺度的图像特征;根据学习的特征生成密集的边界框和类别分数;通过Focal loss损失函数进行训练,用非最大抑制(NMS)操作以产生最终结果。

2.2 特征融合模块FFM

FFM融合了图像中不同层次的特征,这对于构建最终的多级特征金字塔至关重要。它们使用1×1卷积层来压缩输入特征的通道,并使用连接操作来聚合这些特征图。特别地,由于FFMv1以骨干网络中不同比例的两个特征图作为输入,因此它采用一个上采样操作,在连接操作之前将深度特征重新缩放到相同的尺度。FFMv1融合浅和深的特征以产生基本特征。同时,FFMv2采用基本特征和前一个ShuffleNet的最大输出特征图融合,融合后的最大特征图作为输入,并产生下一个ShuffleNet的融合特征。FFMv1和FFMv2的结构细节如图2所示。

图2 FFM结构

2.3 通道混洗ShuffleNet模块

ShuffleNet模块用于对不同深度层次的特征信息进行提取,生成多级多尺度特征。该模块主要进行两个操作:逐点群卷积和通道混洗(channel shuffle),与现有先进模型相比在类似的精度下大大降低了计算量。逐点群卷积帮助降低计算复杂度,但昂贵的逐点卷积造成有限的通道之间充满约束,这会显著地损失精度,降低通道组之间的信息流通和信息表示能力,故提出通道混洗帮助信息流通。基于这两种技术构建的高效架构为ShuffleNet,相比于其他先进模型,对于给定的计算复杂度预算,ShuffleNet允许使用更多的特征映射通道,有助于编码更多信息。

若允许组卷积能够得到不同组的输入数据,那么输入和输出通道会是全关联的。具体来说,对于上一层输出的通道,可做一个混洗(Shuffle)操作(如图3所示),再分成几个组,提供给下一层,ShuffleNet可以允许使用更多的特征映射通道,这样就可以编码更多信息。

图3 通道混洗结构图

图4为构建的一个ShuffleNet 单元,便于实现实际模型。

图4 混洗单元

图4是做降采样的ShuffleNet 单元,主要做了两点修改:(1)在辅分支加入步长为2的3×3平均池化;(2)原本做元素相加的操作转化为了通道级联,扩大了通道维度,增加的计算成本却很少。

ShuffleNet 单元可以高效地计算,归功于逐点卷积和通道混洗。相比于其他先进单元,在相同设置下复杂度降低,网络模型速率得到提升。

第一个ShuffleNet没有任何其他ShuffleNet的先验知识,因此它只从Xbase学习。输出多级多尺度特征的计算如下:

(1)

2.4 特征聚合模块SFAM

图5 按缩放比例的特征聚合模块

s=Fex(z,W)=σ(W2δ(W1z))

(2)

(3)

2.5 Focal loss函数

针对一阶段检测器提出Focal Loss函数,训练过程中有前景和背景类别之间的完全不平衡存在,这会主导交叉熵损失。难分负样本在梯度和损失中占据主导地位,将损失函数变形降低易分样本的权重,专注于训练难分负样本。Focal loss加了(1-mt)β到交叉熵上,β是可以调节的专注参数β>0,mt是不同类别的分类概率,则Focal loss定义为:

FL(mt)=-(1-mt)βlog(mt)

(4)

在实际中,可以运用添加一个权重wt平衡的变体的Focal loss 函数:

FL(mt)=-wt(1-mt)βlog(mt)

(5)

Focal loss通过调整loss的计算公式使单级结构达到和Faster RCNN一样的准确度。1-mt为调制因子,当mt很小时,那么调制因子1-mt接近1,损失不受影响,当mt→1,因子1-mt接近0,那么分的比较好的样本的权值就被调低。专注参数β平滑地调节了易分样本调低权值的比例,β增大能增强调制因子的影响。

3 实 验

3.1 实验环境

本文算法在Ubuntu 16.04 操作系统,采用深度学习框架Pytorch,实现了基于多层次特征金字塔的陆战场目标检测算法。实验平台采用CPU:Intel(R)Core(TM)i5-8600 3.10 GHz;内存:16 GB;GPU:NVIDIA GTX 1080Ti。为了验证算法的准确率和实时性,选取了当前性能较好的几种算法在同样的环境下进行对比测试。训练集是随机从数据集中抽取的70%的数据,测试集是从数据集中抽取的30%的数据。

3.2 实验数据集

考虑到实际陆战场中所包含的目标种类,本文所要识别的目标种类包含坦克(Tank)、坦克炮塔(Cannon)、装甲车辆(Car)、人(Person)和枪(Gun)。

由于目标种类特殊,公开资源较少。因此数据集一部分来自于内部资料,包含上述所提目标的图片9 000幅。数据通过添加噪声,以及一定程度上的尺度变换进行扩充后达到27 000幅。为了使数据更多样化,自行从网络上寻找包含目标的相关视频图像制作数据集,采集了3 000幅。

经过扩充的原始资料以及网络上的图像,数据集一共有30 000幅图片。每一幅图片按照PASCAL VOC数据集的格式进行了人工标注,数据集部分图片如图6所示。

图6 部分数据集

3.3 损失函数对比

本文将Focal loss作为模型的损失函数。为了证明使用Focal loss的优越性,将本文所提目标识别算法的其他部分保持不变,使用深度学习中其他常用的损失函数Cross entry和Center loss,在同样环境下进行训练和测试。

(1)Cross Entry 损失函数:

(6)

交叉熵是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率。式中:p(x)是指真实分布的概率;q(x)是模型通过数据计算出来的概率估计。

(2)Center loss 损失函数:

(7)

式中:cyi表示第yi个类别的特征中心;xi表示全连接层之前的特征;m表示小批梯度下降的大小。因此式(7)就是希望一批中的每个样本的特征离特征的中心的距离的平方和要越小越好,也就是类内距离要越小越好。

ROC曲线又称接收者操作特性曲线,用来评价分类器的性能。横坐标:伪正类率(False Positive Rate,FPR),预测为正但实际为负的样本占所有负例样本的比例;纵坐标:真正类率(True Positive Rate,TPR),预测为正且实际为正的样本占所有正例样本的比例,运用ROC曲线绘制三种损失函数,如图7所示。

图7 ROC测试曲线图

可以看出,在二分类模型中,Focal loss损失函数性能更好,使得分类器效果最优。

3.4 算法对比

为了验证算法的识别准确率,将本文算法模型与当前主流的目标检测模型对比,所对比的性能参数由FPS(每秒帧率)、AP(平均正确率)、AP50和 AP75(以0.5和0.75为IoU临界值分别估计出平均准确度),结果如表1所示。

表1 不同算法精度比较表

表1中:方法1为DSSD,添加了反卷积层融合多层特征的SSD网络;方法2为RefineDet,引入类似FPN网络的特征融合操作用于检测网络,检测框架还是SSD;方法3为Cascade R-CNN,采用级联结构的RCNN网络;方法4为本文算法,其中骨干网络采用ResNet-101;方法5为本文算法,其中骨干网络采用VGG-16。

为了验证本文模型的速度,实验环境均采用GPU加速,读取20 000幅图片,图片大小为460×460。采用FPS(每秒帧率)作为评价标准,一帧即读取一幅图片的时间,FPS就是一秒读取的帧数。本文采用的ResNet-101网络模型的FPS可以达到24.8,优于采用同样骨干网络的DSSD、RefineDet以及Cascade R-CNN算法。同时,保持其他网络参数与结构不变,采用VGG-16作为骨干网络进行实验,模型参数更少,相对于采用ResNet-101作为骨干网络的方法,其检测速度提升了1%,FPS达到25.1。

由表1可知,DSSD算法的平均正确率低于本文算法,由于通道混洗模块减少参数,本文算法正确率高出12.4%;RefineDet平均正确率接近于采用VGG-16作为特征提取网络的本文算法;Cascade R-CNN方法平均正确率略高于采用VGG-16作为特征提取网络的本文方法,但检测速度更慢;采用ResNet-101作为骨干特征提取网络的本文方法在平均正确率上优于使用VGG-16方法,检测精度提升了6%,检测速度仅低了0.3帧/s。在每秒帧率与平均正确率上,本文算法均优于现有其他主流目标识别算法。综合识别准确率与目标检测速度的情况下,使用ResNet-101作为骨干提取网络优于使用VGG-16的方法。部分测试结果如图8所示。

图8 部分测试结果图

4 结 语

本文提出了基于多层次特征金字塔的陆战场目标检测算法。将骨干网提取的多层特征融合为基本特征,然后将其馈入交替连接的ShuffleNet模块和特征融合模块,以提取更具代表性的多层次多尺度特征。显然,这些ShuffleNet层比主干中的层深得多,因此用于物体检测时可以表现出更多的特征。运用Focal loss 函数可以较好地处理正负样本不均衡的问题。与现有其他检测算法相比,本文算法目标检测准确率更优,但本文的整体网络模型架构较复杂,如果对模型进行修建,未来可以实现嵌入式终端的移植。

猜你喜欢
金字塔尺度模块
“金字塔”
28通道收发处理模块设计
“选修3—3”模块的复习备考
论社会进步的评价尺度
Great Vacation Places
金字塔是用金子造的吗
宇宙的尺度
必修模块相关知识过关训练
9
室外雕塑的尺度