张灵灵,王 鹏,李晓艳,吕志刚,邸若海
1.西安工业大学 兵器科学与技术学院,西安 710021
2.西安工业大学 发展规划处,西安 710021
3.西安工业大学 电子信息工程学院,西安 710021
随着无人机技术的发展和低空领域的逐步开放,无人机已在农林植保、海岸管理以及军事战争等领域取得了较为突出的成绩。由于缺少有效手段实施监测,导致对无人机的监管力度明显滞后,并由此对国家安全和社会安全产生负面影响[1-3]。特别在我国的国家保密部门和军队涉密场所,长期有被无人机非法入侵和侦查盗取重要军事信息的风险存在[4]。因此,作为无人机反制与管控的重要环节,对低空无人机的有效探测成为亟待解决的问题[5]。
目前,常用的无人机探测技术包括声波探测[6]、无线电探测[7-8]和雷达探测[9-10],但是这些技术往往需要昂贵的设备和特定的环境。基于机器视觉的方法[11-12]能够摄像取证,成本低并且使用方便,随着深度学习技术的发展,已逐步应用于无人机检测任务中[13]。基于卷积神经网络的检测算法可以分为两类:双阶段目标检测算法和单阶段目标检测算法。双阶段目标检测算法将检测问题划分为产生包含目标大致位置信息的候选区域和对候选区域进行分类、位置精修这两个阶段,典型代表有R-CNN(region-based convolutional neural networks)[14]、Faster R-CNN[15]等。单阶段目标检测算法不用产生候选区域,可以直接从图片中获得目标的检测结果,比较典型的算法有YOLO(you only look once)系列[16-17]和SSD(single shot multibox detector)[18]。对于无人机的检测,往往需要在提高检测精度的同时兼顾检测速度,因此很多学者选择SSD 算法及其改进来完成低空无人机目标的检测任务。Chen 等人[19]利用SSD 算法融合雷达、RGB相机等多源信息对入侵的无人机进行检测,但只能识别常规大小的无人机目标。Liu等人[20]提出基于SSD算法的无人机识别方法,将无人机目标的检测和分类分开实现,但存在识别准确率低、定位不准确等问题。Zhou 等人[21]将SSD 算法主干网络替换为MobileNetv2,并引入特征金字塔网络来提高无人机目标的检测精度,但对复杂场景下的无人机目标检测效果不佳,鲁棒性较差。Wang等人[22]通过削剪骨干网络的卷积通道数目提高SSD算法的检测速度,并引入特征增强模块提高检测性能,检测速度有较大提升,但检测精度较低。
综上,针对现有算法对复杂背景下的无人机目标检测效果不佳、小目标定位不准确等问题,现基于SSD 算法进行改进,引入一种多尺度特征融合模块,丰富特征图多尺度语义信息,并在网络特征图输出处引入轻量级的高效通道注意力机制,在不增加计算量的同时使网络优先将注意力放在有用信息上,并抑制复杂背景等无用信息,最后优化默认框参数,进一步提升小目标检测精度。
SSD是典型的一阶段检测算法,整体结构包含了基础网络、辅助卷积层和预测卷积层。SSD 算法结合了YOLO 模型的回归思想和Faster R-CNN 的锚框机制思想,确保检测精度和推断速度。同时,也采用了特征金字塔网络“分而治之”的思想,即分别在不同尺度的特征图上进行预测,利用较高分辨率的浅层特征图来检测小物体,而利用较低分辨率的深层特征图检测大物体,其算法框架如图1所示。
图1 SSD算法框架Fig.1 SSD algorithm framework
SSD 采用VGG16 作为骨干网络,并将其FC6 和FC7转化为卷积层,去掉所有的Dropout层和FC8层,同时 增 加Conv8、Conv9、Conv10 和Conv11 这4 个 卷 积层。使用改进后的模型对输入图片进行特征提取,并生成多个特征图,分别为Conv4_3、FC7、Conv8_2、Conv9_2、Conv10_2 和Conv11_2,大小分别为38×38、19×19、10×10、5×5、3×3 和1×1。网络在这些特征图上的每个点生成长宽比例不同的锚框,适应多尺度检测,每层特征图上产生n×n个中心点,每个中心点产生k个默认框,六层特征图中每层的每个中心点产生的k值分别为4、6、6、6、4、4。其中Conv4_3 层的默认框大小为30,其他先验框的尺度遵守一个线性递增规则:
其中,m为特征图个数,smin和smax通常取值0.2与0.9,分别代表最底层特征图以及最高层特征图占原始图像比例,候选框的长宽比ar∈{1,2,3,1/2,1/3},则先验框的长和宽可由下式表达:
默认框中心点的位置可由式(4)计算:
其中,|fk|表示k个特征的尺寸。
为改善SSD 算法对复杂背景下小目标检测困难等问题,在原始网络中融入多尺度特征融合模块和注意力机制模块,为使先验框和感受野有效匹配,对先验框的大小和数量进行了优化。首先,将深层特征和浅层特征相融合,使每层特征图之间具有上下文信息。其次,将融合后的特征图输入到注意力机制模块中,增强特征图对关键信息的提取能力。最后,针对无人机数据集尺度偏小问题,对默认框的尺度和数量进行优化,网络结构如图2 所示,其中MSFFM(multi-scale feature fusion module)为提出的一种多尺度特征融合模块,ECA(efficient channel attention)为高效通道注意力模块。
SSD 模型中Conv4_3 层至Conv7 层这些较浅层的特征图分辨率高,包含丰富的细节纹理信息,适合检测小目标;Conv8_2 层至Conv11_2 层这些深层的特征图分辨率低,但是具备充足的语义信息,适合检测大目标,但是网络深层特征的语义信息与底层特征的细节纹理信息之间并未得到充分利用。特征金字塔网络就是为了增强浅层特征和深层特征之间的联系,它从顶层的每一层都进行上采样,获取更准确的像素位置信息。借鉴特征金字塔网络、FSSD[23]、FA-SSD[24]和受文献[25]的启发,提出一种多尺度特征融合模块(MSFFM),可以表述为式(5):
式中,Xi为将要融合的源特征图,Ti表示融合前的转换函数,Φf表示特征融合函数。本算法获取三个特征图之间的互补信息进行深层次融合,从而来缓解不同尺度特征图的信息差异带来的融合负面影响。具体的融合过程为:选取X2作为优化层时,X1、X2和X3特征图先经过1×1 卷积进行通道降维,X2特征图的通道降维至原通道数目的1/2,X1和X3的通道数目降维至X2原通道数目的1/4,再分别对X1和X3进行扩张卷积和双线性插值,使X1和X3的特征图尺寸变为和X2一样。其次,对修改后的X1、X2和X3进行Φf融合操作,采用concat 融合方式,直接对原始特征进行串联,让网络去学习融合特征,不会造成信息的损失。改进的特征图经过BN 层和ReLU 激活函数,激活函数有利于神经网络学习到更多非线性关系,融合之后还会再经过3×3的卷积,目的是消除上采样的混叠效应。最后将其经过非局部通道注意力模块来挖掘网络通道有用的上下文信息,抑制噪音等无效信息,并送入非极大抑制网络进行检测输出。
在原SSD 模型特征层的基础上加入Conv3_3 层和Conv4_3 层这两个浅层特征,其特征图尺寸大,小目标特征提取更充分。Conv10_2 和Conv11_2 层特征图所包含信息少,融合之后对目标定位与分类精度并没有什么提升,反而使模型的训练与检测速度变慢。Conv4_3层负责检测小目标,考虑到小目标需要更多的表观特征信息,融合具有更大特征图Conv3_3层和具有一定语义信息的Conv7 层。考虑融合应尽量减少不同尺度特征图信息差异带来的负面影响和融合后的特征图尽可能包含高层信息和低层信息,当Conv7 层作为优化层时,融合包含较多纹理信息的Conv4_3 层和它的相邻层Conv8_2 层;当Conv8_2 层作为优化层时,融合包含较多纹理信息的Conv5_3 层和它的相邻层Conv9_2 层。结合图2、图3 所示,当选取Conv8_2 作为优化层时,对于10×10×512 的特征图Conv8_2 使用1×1 卷积降维成256 通道,对5×5×256 的特征图Conv9_2 采用双线性插值上采样将特征图变为10×10大小,并使用1×1卷积将通道数目降维为128,对19×19×512 的特征图Conv5_3进行扩张卷积,并将通道数目变为128,然后将三层特征图分别经过BN 层和ReLU 激活函数再进行concat 融合操作。其他两个融合模块同理。
图2 本文算法整体框架Fig.2 Overall framework of proposed algorithm
图3 多尺度特征融合模块Fig.3 Multi-scale feature fusion module
图4为原SSD算法与改进SSD算法在Conv4_3层、Conv7层和Conv8_2层输出的特征对比图。图4(b)(c)(d)为原算法输出的特征热力图,图4(e)(f)(g)为改进算法经过多尺度特征融合模块输出的特征热力图。显然图4(e)相对于图4(b)更加清晰,关注了更多的细节信息,适合检测小目标。图4(f)相比于图4(c)能更加匹配无人机目标,较小的目标仍高亮显示。图4(g)相比于图4(d)具有更强的语义信息,无人机的特征信息更为丰富,经过多次下采样之后网络仍可以注意到小目标。结果表明本文提出的多尺度特征融合模块更加适合低空无人机目标的检测。
图4 多尺度特征融合前后特征图对比Fig.4 Comparison of feature images before and after multi-scale feature fusion
在进行多尺度特征融合时只是将特征图在通道维度上进行拼接,不能反映不同通道间特征的重要性和相关性[26]。为了能使网络自动学习特征图通道之间的重要性和相关性,引入了一种轻量级高效注意力机制(ECA-Net)[27],在不增加网络计算量的同时使网络增强有用信息,去除冗余特征。该网络是对裁剪-权重分配网络(squeeze-and-excitation networks,SE-Net)[28]提出的改进网络。SE-Net涉及降维,降维会对通道注意预测带来副作用。因此ECA-Net 提出了一种不降维的局部跨信道交互策略和核大小自适应选择方法,同时以极其轻量级的方式获取跨通道的交互信息。该网络首先对输入特征图的每个通道进行池化操作,获得全局感受野,然后直接进行局部跨通道连接,即通过考虑由池化操作得到的每个通道及其k个邻近通道来进行一维卷积操作,k的取值通过通道数C自适应确定:
其中,|· |odd表示取离结果近的奇数,γ和b 表示常量,分别取值为2和1。ECA-Net网络模型的结构图如图5所示。
图5 ECA-Net注意力模块Fig.5 ECA-Net attention module
使用Grad-CAM[29]技术来直观地展示模型中引入轻量化注意力模块的有效性。热力图颜色区域越深说明该区域对类别识别的影响越大。图6(a)为原始图片,图6(b)为普通卷积热力图输出,图6(c)为ECA-Net 热力图。观察第一列可以看出注意力机制使模型也关注到无人机的旋翼信息,第二列可以看出模型关注无人机的整体信息,有利于模型对无人机目标的检测,第三列可以看出,模型注意到了小目标。从这些结果可以看出引入ECA-Net 使模型更加注意到了对检测有用的细节信息,而抑制忽略背景等这些无用的信息。
图6 热图可视化Fig.6 Visualization of heat maps
SSD 模型利用每一层特征图上不同尺寸和数量的先验框对目标进行检测。每层特征图上的先验框和数量如表1所示。锚框的尺寸和长宽比是固定的,因此检测器在处理形变较大的候选对象时比较困难,尤其是对于小目标。原SSD 模型设定的默认框对于低空无人机检测任务的感受野区域明显偏大且带来复杂背景的干扰信息,导致检测精度降低。图7(a)为无人机数据集真实框的宽高比,可以看到大部分集中在0.7左右,但也有部分在0~0.5之间,少部分在1.0~1.5之间。图7(b)为目标真实框在原图的大小比例,可以看到大部分框只占到了原图的0.001~0.075,甚至更小,因此基本都是很小的目标。针对数据集的特点,将原始SSD网络的smin设置为0.15,此时最低层先验框的大小为22.5×22.5,基本上可以覆盖输入图像中的各种形状和大小的目标。为了保证改进网络Step 和原网络一样,将smax设置为0.87,并将用于检测小目标的Conv4_3 层的特征映射中添加至6个默认框,提高检测精度的同时避免小占比的目标被漏检。通过重新设置默认框的数量和大小,可以有效改善漏检和避免低空无人机因尺度小而无法与默认框匹配的问题。
表1 每层特征图上的先验框和数量Table 1 Prior boxes and numbers on layer of feature maps
图7 数据集分布可视化Fig.7 Visualization of data set distribution
为验证改进SSD 模型在低空无人机检测任务中的有效性,在相同运行环境及无人机数据集的前提下,将原SSD 模型和改进SSD 模型进行对比实验。本实验基于Windows10 操作系统,CPU 为AMD Ryzen 5 5600X 6-Core Processor,内存为16 GB;GPU为NVIDIA GeForce RTX 2060。优化算法采用SGD,动量因子参数为0.9,批处理大小为8,初始学习率为0.000 1,衰减系数为0.1,最大迭代次数为120 000次。
为了评估改进后的算法检测性能,自行在网上搜集不同场景下无人机图片共4 688张,如图8所示,按照7∶1∶2的比例划分成训练集、验证集和测试集。无人机数据集按照Pascal VOC2012的格式建立,大多数都是小目标。
图8 数据集部分图片及标注Fig.8 Partial images and annotations of data set
检测速度的评价指标为FPS(frame per second),定义为网络每秒处理图像的帧数。可以根据准确率(Precision)和召回率(Recall)制成一条曲线,在0到1范围内绘制的曲线与坐标间的面积即为精度(AP),AP=,准确率和召回率的定义如下[30]:
式中,TP为正样本中的正例,FP为负样本中的正例,FN为负样本中的负例。
3.3.1 与其他算法对比
为了评估改进SSD算法性能,选取几种典型目标检测算法进行对比。为保证结果的公平性,所有模型均在本实验平台进行训练,所有结果记录在表2中。从检测精度上看,改进SSD 算法的检测精度均优于其他模型。另外将输入图像放大能够显著提高小目标的检测效果,Faster R-CNN、YOLOv3、CenterNet 和DSSD 输入图像尺寸远大于SSD,但是改进SSD算法相对于这些大尺寸输入图像模型的检测效果更好,AP 分别提高了3.40 个百分点、7.85 个百分点、4.64 个百分点和2.61 个百分点。其次,CenterNet和DSSD的骨干网络采用更深层次的ResNet,相比于VGG16具有更强的特征表达能力,但CenterNet 和DSSD 模型并没有改进SSD 算法更适合无人机数据集。与采用轻量级的特征融合模块FSSD 相比,AP 提升了2.15 个百分点。从推断速度上看,改进SSD算法推断速度略有降低,但也基本符合实时测试的要求。实验结果表明,改进后算法能够在实时测试的基础上有效地提高复杂背景下无人机目标检测的准确率,特别是对小目标物体的检测更具优势。
表2 各算法在无人机数据集的检测精度Table 2 Detection accuracy of each algorithm in UAV data set
图9为IOU=0.5(intersection over union)时各目标检测算法的PR 曲线。从图中的PR 曲线可以直观看出,本文所提算法的Precision和Recall两个性能指标均优于其他检测模型,即改进SSD算法对低空无人机目标位置的回归能力优于其他模型。
图9 各算法的PR曲线(IOU=0.5)Fig.9 PR curve of each algorithm(IOU=0.5)
3.3.2 消融实验
为了进一步验证本文模型设计策略的有效性,在无人机数据集上运行具有不同设置的模型,进行了消融实验,此时最大迭代次数为120 000 次。实验内容包括MSFFM 多尺度特征融合模块的使用与否,ECA-Net 注意力机制的使用与否,SE-Net 注意力机制的使用与否,anchor 是否优化,Fusion method 特征融合方法的选择,有concat和add两种融合方式,以及ECA-Net注意力机制邻近通道k的大小选择,所有的实验数据记录在表3中。
表3 各独立模块对无人机目标检测的影响Table 3 Influence of each independent module on UAV target detection
表格中第一行为原SSD模型的检测精度为76.26%,对比表格中第一行和第二行、第三行和第五行、第四行和第六行、第七行和第九行的数据可以发现,在SSD 算法的基础上引入多尺度特征融合模块确实带来了精度的提升,分别提升了3.35 个百分点、3.63 个百分点、2.21个百分点和2.61个百分点,证明了该多尺度特征融合模块使融合后新的特征图具备小目标的上下文信息。其中同时添加多尺度特征融合模块和注意力模块提升效果最为明显,因为融合只是通道维度上的拼接并不能反映特征通道的重要性,添加注意力模块可以学习不同特征通道间的权重分配,使模型更加关注有用信息。对比第一行和第四行、第二行和第六行、第五行和第九行、第三行和第七行可以发现,改进anchor可以显著提升模型的精度,分别提升了4.58 个百分点、3.44 个百分点、3.62个百分点和4.64个百分点,原因在于本实验所用数据集都是很小的目标,改进anchor可以改变感受野的大小使其与目标大小更匹配并且抑制背景信息的干扰。对比第一行和第三行、第二行和第五行、第四行和第七行、第六行和第九行,模型中加入ECA-Net 注意力机制后,分别提升了0.56 个百分点、0.84 个百分点、0.62 个百分点和1.02个百分点,说明ECA-Net注意力机制能帮助模型增强有用特征,去除冗余特征,使网络更加关注有利于检测的有用信息。其中模型添加多尺度特征融合模块和改进anchor 时,注意力机制效果最好,这是因为多尺度特征融合模块将浅层信息和语义信息得到了充分的融合,再加上优化anchor使得有效感受野匹配利于信息的提取。由第九、第十和第十一行可以看出,随着邻近通道数目的增加,模型的精度有所降低,说明过多的通道之间的交互确实是低效且不必要的,本模型选取k值为3 可以取得最优结果。对比第八行和第九行可以发现,多尺度特征融合模块选取concat融合方式的精度高于add融合方式,这是因为concat融合方式是特征图信息的串联,不会造成信息的损失。对比第九行和第十二行可以发现,相同实验环境下模型使用ECA-Net的检测精度比使用SE-Net 的检测精度高,说明ECA-Net 的性能更优,更适合本文所提算法。
训练过程中的原模型损失和改进模型损失如图10(a)所示,横轴表示迭代次数,纵轴表示损失值的大小。在无人机数据集上经过120 000 次训练,损失值和精度值达到稳定状态。图中Loss 值为置信损失和定位损失两部分的带权加和。从图10(a)可以看出,改进模型损失比原模型损失低1~2 个百分点,模型收敛在损失值1左右。原模型在迭代90 000 次之后损失函数值基本趋于平稳,而改进网络在迭代80 000次之后损失函数值趋于平稳,明显比原模型收敛更快。在训练过程中,原模型精度、改进模型精度和迭代次数之间的趋势变化对比如图10(b)所示,可以看到随着迭代步数的更新,整体识别正确率最终达到80%以上。改进模型在保持一定计算效率的情况下,检测精度大幅提升,收敛速度最快,收敛值最优。
图10 训练过程模型变化Fig.10 Model changes during training
图11为IOU=0.5 时目标检测算法的PR 曲线,从图中可以直观看出,改进SSD 算法在Precision和Recall两个性能指标上均优于原SSD算法,即改进算法对目标位置的回归能力优于原模型,证明了该模型的有效性。
图11 模型PR曲线(IOU=0.5)Fig.11 Model PR curve(IOU=0.5)
3.4.1 不同场景下检测结果
图12给出了8种场景下的检测实例,通过直观地对比可以看出,改进后的算法对各种场景下无人机目标检测结果和置信度都优于原模型。其中图12(a)是在云背景下,无人机特别小且待检测目标和背景相近。图12(b)是在建筑背景下,有货架和楼宇等干扰物,背景较为复杂。图12(c)为无人机飞行在山间,背景噪声很大。图12(d)为无人机飞在海平面上,背景较为干净但光线弱。图12(e)为傍晚情况下,待检测目标不明显。图12(f)为无人机飞行在路灯旁,存在部分遮挡情况。图12(g)为强光背景下,检测目标极不明显。图12(h)为亮度不均情况下,无人机飞行在亮度暗且目标和背景相近区域。这些复杂场景下无人机均能被检测出来,且不存在漏检误检情况,证明了该算法的有效性。
图12 不同场景下的目标检测结果Fig.12 Target detection results in different scenarios
3.4.2 与改进算法测试结果对比
为了更直观地显示本文算法的有效性,选取测试数据集中的图片对原算法和改进后算法的检测效果进行对比,结果如图13所示。图(a)为原始SSD算法检测结果,图(b)为改进的SSD 算法检测结果。通过图中第一列的对比可以看出,当目标与背景颜色很接近的时候,改进的算法可以精准检测到目标,并且置信度很高。图中第二列中红色椭圆为错误检测目标示例,原算法将树林中的飞鸟识别为无人机,而改进的算法能准确识别出来。通过图中第三列、第四列的对比可以看出,原算法存在漏检情况,由于改进的算法在Conv4_3层设置了更多的先验框,有效避免了漏检情况的发生。综上,改进后的算法对小目标的检测效果更为显著。
图13 检测结果对比Fig.13 Comparison of detection results
为解决不同角度下无人机所处背景复杂多变、尺度偏小等问题,通过引入多尺度特征融合模块,添加注意力机制和优化先验框等措施,提出了一种改进的低空无人机SSD 检测算法。改进后的SSD 算法在自制无人机数据集上进行训练和验证,实验结果表明,算法平均精度由原来的76.26%提升到84.07%,且对不同场景下的无人机目标均有比较好的检测结果,充分证明了方法的有效性。对比其他几种经典的目标检测算法,改进后模型在无人机目标检测任务中具有更高的综合性能。在下一步的研究中,将对数据集进行扩增获取更多类别的无人机,减少网络的计算量提高模型的检测速度。