一种RetinaNet 与SE 融合的航空取证目标检测算法*
2022-05-19刘克潘广煜郑大国顾佼佼孟春英
刘克,潘广煜,郑大国,顾佼佼,孟春英
(1. 海军航空大学,山东 烟台 264001;2. 中国人民解放军92318 部队,北京 100000;3. 中国航天科工集团有限公司 第二研究院,北京 100854)
0 引言
在航空侦察取证场景中,双方之间是会存在靠近与远离的过程,取证时需尽量获取对方机型、编号、挂载装备等信息,以开展事后分析或舆论管控等[1-2]。
为减少航空取证操作负担,提高侦察取证设备智能化水平,提出采用深度学习技术开展侦察取证目标的自动检测。主要基于RetinaNet 与SE 模块融合进行航空取证目标检测,可以解决目标尺寸变化幅 度 大[3]、样 本 不 均 衡[4]的 问 题。另 外,Squeezeexcitation(SE)模块引入的通道注意力机制加强通道特征针对性[5-6],在可控计算量前提下进一步提高检测模型的表征能力。
目标检测中存在多种不平衡现象,文献[4]对目标检测中的不均衡问题进行了分析与综述,将之分为四类:类别不平衡、尺度不平衡、空间不平衡、多任务损失优化之间的不平衡。对于本文来说,类别不平衡是最为突出的问题,主要由样本数量上的差别引起。即训练使用的正例数量远远小于负例数量,影响最终的检测精度,现有的许多研究可以归结为解决这些不平衡的方法。
可将现有目标检测算法粗分为二阶段与一阶段算法:二阶段算法典型代表是基于Region Proposal 的R-CNN(region-convoluntional neural network)系列算法(R-CNN,Fast R-CNN,Faster R-CNN[7]);一阶段算法 典 型 代 表 是RetinaNet[8],YOLO(you only look once)系列[9],SSD(single shot multibox detector)[10]等。
在航空取证场景中,视景内的目标数量一般较少,Faster R-CNN 等二阶段模型中,第1 阶段的RPN(region proposal network)可以过滤掉很大一部分负样本,第2 阶段的检测模块只需处理少量的候选框,而且检测模块还采用正负样本固定比例抽样(比如1∶3)或者OHEM 方法[11]进一步解决正负样本不平衡问题。
单阶段目标检测方法中,检测部分要直接处理大量的候选位置,其中负样本占据绝大部分,SSD 的策略是从大量的负样本中选出损失最大的前k个负样本以保证正负样本比例为1:3。RPN 本质上也是单阶段检测模型,训练时采取的策略也是抽样,从一张图像中抽取固定数量的样本,正负样本分开来随机抽样N/2,如果正样本不足就用负样本填充。
RetinaNet 与YOLO 和SSD 是单阶段目标检测模型,主要特点是采用特征金字塔网络FPN(feature pyramid networks)应对目标多尺度变化问题,以及采用Focal Loss 有效应对正负样本不均衡的问题。
SE[12]模块是一个子结构,引入通道注意力机制重新校准特征图,学习每个特征通道的作用程度,让网络利用全局信息有选择地增强有用特征通道并抑制对当前任务作用不大的特征通道,使得有效特征图权重大,无效或效用小的特征图权重小,训练模型达到更好的结果。
经实验验证,在综合考虑准确率与计算复杂度前提下,采用RetinaNet+SE 改进方式进一步提高了检测准确率,辅以目标跟踪可有效减少设备操控对飞行员操作带来的压力。
1 基础理论
1.1 RetinaNet 目标检测模型
RetinaNet 目标检测模型主要特点是具有特征金字塔网络FPN,Focal Loss 处理,以及基于Anchor的检测机制。
(1)特征金字塔网络FPN
目标检测领域普遍存在目标尺度变化大的难题,本场景如图1 所示,双方距离较近时,对方军机在取证设备中占据较大视野,在双方距离较远时目标飞机可能只占据少数像素。
图1 目标尺度(大与小)变化示意图Fig.1 Schematic diagram of the change of target scale(large and small)
解决方式是生成多尺度特征,SSD,MSCNN(multi⁃scale convolutional neural network)[13]利 用 不同层的特征图进行不同尺寸的目标预测,二阶段目标检测模型中基于候选框的方法也参考这个思路在不同深度的特征层上预测不同尺寸的目标。大尺寸的物体检测效果已比较理想,小目标在较低卷积层可见性强,但较低卷积层语义信息较弱,对后续的分类性能弱,导致小目标检测性能较差。
由于CNN(convolutional neural network)通过前向传播自然形成一个多尺度、多层级的特征金字塔结构,具有从低到高级的语义。FPN[14]改进CNN 特征提取如图2 所示,构建横向连接结构,在所有尺度充实特征图的语义信息:把高层的特征传下来,用高层语义补充低层的语义特征,把低分辨率、高语义信息的高层特征和高分辨率、低语义信息的低层特征进行特征融合,使得所有尺度下都获得高分辨率、强语义的特征,然后在不同特征层进行检测。既兼顾不同尺寸物体,又控制了计算量。
图2 FPN 示意图Fig.2 FPN schematic diagram
FPN 机制大幅提升了小像素目标检测的效果,在检测具有多种尺度的目标时效果明显。
(2)Focal Loss
常用的损失函数如交叉熵在训练目标检测模型时存在问题,如果定义置信度值pt> 0.5 为容易样本,容易样本的损失值依然不低,而且这部分样本占很大比例,将淹没难样本的损失。
Focal Loss 引入调制因子(1 -pt)γ与类别权重系数α 构建损失函数为
式中:超参数γ表示更多关注难样本的程度,用于调整简单样本的加权速率,当γ增加时,调制因子的影响同样增加;α,1 -α为正例、负例的权重系数。被错分类的样本pt一般很小,调制因子接近1;已经能正确分类的简单样例的pt趋近于1,此时调节因子接近0,该部分损失的权重大大降低,其可视化如图3所示。
图3 调制因子示意图Fig.3 Modulation factor diagram
Focal Loss 可根据置信度动态调整交叉熵损失来解决样本不平衡问题。当预测正确的置信度增加时,loss 的权重系数会衰减至接近0,大量容易样本的损失贡献很低,损失集中在难样本上,模型训练损失更关注难例,从而提高预测精度。
1.2 SE 模块
SE 模块引入一种通道注意力机制重新校准特征图,显示地建模特征通道之间相关性,学习不同通道特征的重要程度,对每个输出通道预测一个常数权重后进行加权。
这个子结构示意如图4 所示,并未引入新的空间维度来进行特征通道间的融合,而是采用了一种特征重标定策略,利用全局信息对原特征图重新校准,自适应地重新校准通道方向的特征响应。具体就是学习获得每个特征通道的作用程度,让网络利用全局信息有选择地增强有用特征通道并抑制对当前任务用处不大的特征通道。
图4 加入SE 模块前后的ResNet 示意图Fig.4 Schematic diagram of SE-ResNet module
这会使得模型中各个通道的特征更有辨别能力,理论上对小目标的检测有促进作用。此处不展开论述其数学理论。
2 SE-RetinaNet 融合的网络架构
SE-RetinaNet 结 构 如 图5 所 示,在SE-ResNet 结构上构建FPN 骨干网络,生成多尺度卷积特征金字塔FPN,最后附加2 个子网络,分别用于anchor 边界框分类和用于anchor 边界框回归。
图5 SE-RetinaNet 模型示意图Fig.5 Schematic diagram of SE-RetinaNet model
2.1 特征提取网络
此处使用的特征提取网络中,SE-ResNet 用于提取特征,FPN 用于在SE-ResNet 上构建多尺度特征金字塔,在所有尺度上语义都很强,并且计算速度很快。以ResNet-50 和SE-ResNet-50 为例,其网络结构对比如表1 所示。
表1 ResNet-50 和SE-ResNet-50 网络结构对比Table 1 Comparison of ResNet-50 SE-ResNet-50
使用5 个尺度特征P3,P4,P5,P6,P7构建特征金字塔,其stride分别为8,16,32,64,128。
2.2 Anchor 设定
此 处 每 级 anchor 尺 度 分 别 为322,642,1282,2562,5122;长 宽 比 的 设 定 为{1/2,1,21/3,2,22/3},这 样 每 个 位 置 共 有9 个anchor,所有层中anchor size 的最小值是32 pt,最大值是813 pt。在训练过程中采用基于IoU(intersection over union)的双阈值anchor 匹配策略,即计算anchor与所有真实目标框的IoU。设定的阈值为0.5,0.4,阈值在0.5 以上就将anchor 分配给真实目标框;如果IoU 在[0,0.4)之间则分配为背景;IoU 在[0.4,0.5)中则不参与训练。
每个anchor 最多分配一个目标框,每个真实框可能与多个anchor 匹配,但可能某个真实框与所有anchor 的IoU 最大值小于0.5,尽管不满足阈值条件,此时也应该保证这个真实框被IoU 值最大的an⁃chor 匹配。最终得到anchor 数量个匹配,表示与每个anchor 匹配的真实框,计算loss 时就可以找到对应的类别及其边界框。
2.3 检测模块
如图5 中所示,检测模块主要包括分类子网络(c)和box 回归子网络(d)。分类子网络用来预测每个空间位置的各个anchor(数量为A)的类别概率(类别数为K)。这是一个FCN(fully convolutional networks),包括4 个3×3 的卷积层,每个层都有C个滤波器,(ReLU 激活函数,channel 是256),最后是一个3×3 的卷积,输出通道数为KA,得到各个anchor预测每个类别的概率。
框回归子网络用来预测每个位置各个anchor 和真实目标框之间的偏移量,在每个金字塔级别展开的FCN 目的是将每个锚框的偏移量回归到附近的真实对象。它与分类子网相同,只是最后输出的是每个空间位置的4A个输出,最后输出通道是4A。这表明是一个类别无关的边界框回归器,使用更少的参数,同样有效。
3 模型训练与测试
3.1 速度与准确率权衡
SE 模块嵌在原有的网络结构中不可避免地增加了一些参数和计算量,增加的参数主要来自2 个全连接层,维度都是C×C/r,2 个全连接层的参数量就是2 × C ×C/r。 SE-ResNet增加的参数量为C2s,r为降维系数;S表示层数;Cs为第s层的通道数;Ns为第s层堆叠的残差模块数。
以ResNet-50 和SE-ResNet-50 为例对比如表2 所示,各方面相当,r=16 时只增加了约10%的参数量。推理时间上,GPU 训练时间多了5.26%,CPU 推理时间多了不到2%。
表2 ResNet-50 和SE-ResNet-50 指标对比Table 2 ResNet-50 SE-ResNet-50 indicators
3.2 仿真结果
在航空侦察取证场景中,以50 000 样本量构建训练集,以SE-ResNet-50-FPN,SE-ResNet-101-FPN,SE-ResNet-1521-FPN 为SE-RetinaNet 骨干网络开展训练,测得测试准确性如表3 所示,各训练50 次迭代。其中,SE-ResNet-50 准确率与原ResNet-101 相当,提升很大统计各机型AP(average precision)如表4 所示。
表3 SE 模块对原模型的改进效果Table 3 Improvement effect of the SE module on the original model
表4 各机型AP 统计Table 4 AP statistics of each model
在测试集测试各机型检测平均准确率AP如表,各机型测试数量不等(随机划分数据集),均在200以上。
对以SE-ResNet-50-FPN 为骨干网络的4 个指标可视化如图6 所示,迭代次数为50,总损失、分类损失与回归损失基本呈现单调平稳递减的趋势。mAP(mean average precision)是评估检测效果的重要综合指标指标[15],从图6 中可见mAP 基本在0.97上震荡,检测效果较好。
图6 4 个指标可视化图Fig.6 Visualization of 4 indicators
3.3 结果分析
测试结果中可见,SE-RetinaNet 模型能够应对目标尺度变化较大的情况如图7 a)~d),并可从飞机局部特征中判断机型。但若局部特征不够明显,尽管像素较多仍无法有效地检测目标如图7 e)。在应对极小目标时仍存在分类错误情况如图7 f),图像分辨率为1 280×720,目标占据像素为12×8,检测到目标但分类错误。
图7 检测结果分析Fig.7 Analysis of test results
可继续改进SE 等模块提取有效特征,并尝试引入细分类子网络进一步提高分类与检测性能。
4 结束语
针对航空侦察取证,本文提出基于SERetinaNet 的目标自动检测方法。该改进算法中的特征金字塔网络FPN 可有效应对目标尺寸变化较大问题,Focal Loss 可有效应对数据均衡性问题,SE模块引入通道注意力机制对特征图进行加强,可进一步利用提取的通道间相关性增强有效特征并抑制无效特征。实验表明,该模块能够进一步增强模型的表征能力,有效提高目标检测效率。后续可进一步改进模型结构以提高识别与检测准确率。