面向天基监视的红外弱小飞行目标识别算法
2022-11-21乔梦雨谭金林刘亚虎徐其志万生阳
乔梦雨,谭金林,刘亚虎,徐其志,万生阳
1. 陕西航天技术应用研究院有限公司,西安 710100 2. 北京理工大学 机电学院,北京 100081
1 引言
在天基光学监控系统中,目标容易受到环境因素的干扰导致检测率低下,针对大气层中的小型飞行目标,目标在运动过程中必然会释放热量,使用天基红外探测技术可以有效规避这一问题,并且红外探测距离远覆盖范围广,测量精度高[1]。在实际情况中,红外弱小目标检测也存在以下难点:目标本身特征匮乏,在图像中缺乏角点及纹理信息;由于天基成像平台自身的原因,不可避免存在一些噪点和坏点,噪点与目标接近容易产生误检。
早期的天基红外弱小目标识别采用传统的图像处理算法,文献[2]提出一种基于多尺度匹配的红外变分辨率弱小目标检测方法,通过建立高斯参数模型,使用核函数的方法生成待检测图像的尺度空间,接着进行匹配选取潜在的目标区域,通过阈值进行筛选。文献[3]提出一种基于背景自适应的多特征融合的复杂背景下弱小目标的检测算法,首先通过滤波算子剔除空域噪点,接着通过连通域剔除大范围区域,最后根据先验知识筛选目标。文献[4]提出了一种基于结构张量分析的弱小目标单帧检测方法,通过构造不同的张量描述目标的特征,计算结构张量到目标的响应,使用自适应阈值分割筛选目标。
采用传统的处理方法,需要手动设计特征提取器,当目标发生较大形态学变化时不能准确识别出目标,基于深度学习的方法可以通过复杂的神经网络拟合出目标的各种特征[5]。文献[6]提出一种基于深度学习的空间红外弱小目标状态感知方法,分析了空间红外弱小目标的状态,构建了特殊的卷积神经网络框架,以目标高程信息和辐射强度作为输入,输出目标的标注信息。文献[7]提出一种基于深度神经网络的空间目标结构算法,利用分形分析提取序列的分数维特征,利用Fisher判决完成对特征的筛选。相比于传统的图像处理方法基于深度学习的方法可以更好地拟合特征,检测效果也更好,但是也存在以下问题:①无法分辨出重点感兴趣区域与背景,对整幅影像进行检测耗费计算资源;②初始设定的候选框大多不能完全匹配目标大小需求;③成像中会产生一些噪点与坏点,使用最大值池化会影响到周围像素点。
基于此在现有YOLOv4模型的基础上,针对天基成像中的红外弱小飞行目标,为了使神经网络更准确地提出感兴趣区域,引入卷积注意力模块,可以更好地将红外弱小飞行目标与背景区分。统计出红外成像数据集里小型飞行目标的大小,使用K-means++算法计算出更合适的先验候选框。天基成像平台中或多或少会存在一些噪点及坏点,这些噪点会对神经元造成较大的干扰。于是在空间金字塔池化模块中使用平均池化层,这样使感受野的灰度值更加平均,降低噪点及坏点的影响。
2 卷积神经网络模型
YOLOv4是现阶段兼顾实时性与准确率的一种One-Stage目标检测算法。算法主要由3部分构成,包括骨干特征提取网络Backbone、用于融合各个特征层提取出的特征的颈部网络Neck,以及最终输出特征并进行分类与回归的检测头YoloHead。YOLOv4算法不仅继承了YOLO算法[8]的框架,保持原有的大结构,借鉴了近些年来卷积神经网络应用在目标检测领域中一些新的思路。在骨干提取网络借鉴了CSPNet[9]的思想,改进了密集块和过渡层的信息流,并且优化了梯度反向的传播路径,构建了CSPDarkNet;在颈部网络优化原有的特征金字塔提取结构,加入空间金字塔池化层构建了路径聚合网络PANet[10];检测头保持不变,使用YoloHead。图1所示为YOLOv4模型结构。
图1 YOLOv4 模型结构Fig.1 YOLOv4 model structure diagram
Yolov4算法中各个模块构成如图2所示,CBM是经过批量归一化(batch normalization,BN)使用Mish[11]激活函数的卷积层;CBL是经过批量归一化(batch normalization,BN)使用leaky relu激活函数的卷积层;ResUnit是残差模块,“Add”是将尺寸大小相同的特征图之间的信息直接叠加,“Concat”是将尺寸大小相同的特征图进行特征联合;CSP是堆叠若干个CBM及ResUnit模块的残差结构。
图2 模块结构Fig.2 Module structure diagram
3 算法改进
3.1 卷积注意力模块
为了提高卷积神经网络的特征表征能力,在每个预测分支后增加卷积注意力模块(Convolutional Block Attention Module,CBAM)如图3所示,Neck表示颈部网络,最终达到对特征选择的作用。
图3 CBAM位置图Fig.3 CBAM location map
在整张特征图中,对感兴趣的区域着重学习,对大部分没有意义的区域减轻权重节约参数和计算量。卷积注意力模块包含两个子模块,分别是通道注意力模块及空间注意力模块,如图4所示。
图4 卷积注意力模块Fig.4 Convolutional attention module diagram
(1)通道注意力模块
通过骨干提取网络所提取的特征是角点及细节信息的高维多通道特征图,各个通道所提取的特征含义就是该输入在设计的不同卷积结构中进行若干卷积池化操作后得到的矩阵分量。在整幅图中,有用的目标信息只占很小一部分,所以对整幅图都进行同样的学习会大大增加计算量,通过通道注意力模块可以对有用的特征赋予更大的权重,对无用的背景信息减少权重。
通道注意力模块的原理受信号处理启发,任意一个在时域中连续的正弦波信号通过若干次的卷积计算,都可以用几个频率信号的线性组合来代替。在深度学习网络中,借鉴了SENet[12]的思想,在各个通道的特征图中首先进行空间上的维度进行降维处理,然后进行特征图的计算。
具体计算公式如下:
Mc(F)=σ(MLP(AvgPool(F)))+
MLP(MaxPool(F))
(1)
(2)
(2)空间注意力模块
具体计算公式:
(3)
3.2 筛选Anchor大小
传统的聚类算法通过各种随机初始化的方法来确定聚类的中心,这种方法容易使算法的求解陷入局部最优,达不到最好的效果。因此为了更好地适配应用场景,本文提出对训练集使用K-means++方法计算出anchor大小,从而调整预设的anchor参数。聚类的衡量标准是通过计算各个目标大小与设置的聚类中心框大小越接近越好,采用交并比函数来度量,计算公式:
dIoU(box,centroid)=1-IoU(box,centroid)
(4)
式中:IoU(box,centroid)表示某一个目标的候选框大小和聚类候选框大小的损失;dIou(box,centroid)表示计算出的交并比损失大小。
具体计算各个类别中心的步骤如下:
1)在测试集中的目标中随机选取K个目标的大小作为“种子点”,如图5(a)所示。
2)计算其余目标到和它最近“种子点”的距离D(x),把这些距离累加起来得到Sum[D(x)]。
3)设定一个概率Px用来描述每个候选目标被选作中心的概率:
(5)
4)重复第2步及第3步,直到确定出K个中心如图5(b)所示。
5)将第4步计算得到的中心作为初始的中心如图5(c)所示,代入K-means算法进行求解,直到求出最合适的中心点。
K-means++算法的改进在于选取初始中心时并不是没有约束的随机初始化,而是以当前数据集中的某个目标作为中心点,并且用距离作为度量依据,和中心点距离较远的点属于该簇的概率就降低,它更有可能是一个新的簇的中心,这样更加合理。
图5 聚类示意Fig.5 Cluster diagram
模型训练预设参数里对目标大小预设了9种大小的候选框(Anchor box)分别是(12,16)、(19,36)、(40,28)、(35,75)、(76,55)、(72,146)、(142,110)、(192,243)、(459,401)用于检测预测头输出的预测结果。这些预设的Anchor box大小来源于对PASCAL VOC数据集[13]上数以万计的目标通过聚类计算出的回归框大小,该数据集包含了飞机、自行车、小鸟、船等各种尺度大小的目标。预设的Anchor大小可以适用于各种常见的待检测目标,但是针对具体应用场景,如卫星拍摄的红外成像中的小目标,目标的变化范围从几个像素变化到几百个像素,原先预设的Anchor大小并不能完全匹配,较小的(12,16)、(19,36)可以勉强适用,其他的Anchor尺寸太大使模型的检测头计算交并比损失时会将大部分候选框筛除掉,造成计算资源的浪费也会影像模型的检测性能。
3.3 空间金字塔平均池化模块
YOLOv4模型在骨干提取网络(backbone)之后引入了空间金字塔池化模块(spatial pyramid pooling,SPP),该模块可以增加整个模型的感受野,并且将全局特征与局部特征进行融合,提高特征的信息量,SPP模块如图6所示。
图6 SPP模块结构图Fig.6 SPP module structure diagram
在卷积神经网络中,最大池化操作(Max pooling)可以对特征图进行降采样处理,减少多余的特征信息,从而达到减少计算量的效果。池化层除了最大值池化的方式,还有均值池化。均值池化关注的每个感受野的平均值,这样在处理背景信息噪点较多的情况下可以保留更多的目标信息,有较好的处理结果,最大值池化与均值池化示意如图7所示。
图7 池化示意Fig.7 Pooling diagram
在最大值池化时,如果成像的噪点或坏点如图8中红圈所示,由于只保留每个感受野的最大值信息,噪点和坏点灰度值接近于真实目标灰度值,容易被当作是目标,造成误检。采用平均值池化时,噪点范围较小,它的灰度值会被周围较暗的背景平均下来,而目标的辐射范围较大,通过均值池化后仍可保留灰度峰值。
图8 噪点示意Fig.8 Noise diagram
针对上述问题,将原SPP模块中的最大值池化进行改进,使用平均池化来进行操作,步长和池化层大小不变,只改变提取特征方式。这样可以有效降低成像噪点和坏点产生的影响,减少误检提升检测的准确率。
4 实验结果与分析
4.1 实验环境介绍
本算法在Windows10操作系统,采用深度学习框架Pytorch,实现了基于改进YOLOv4的红外弱小目标识别算法。实验平台采用CPU:Intel(R)Xeon(R)E5-2699 v4 2.20 GHz;内存128 G:GPU:NVIDIA Quadro P6000 24 GB。在上述环境中进行训练及测试算法模型。为了验证算法的准确率和实时性,首先选取了当前目标检测领域较为先进的几种算法模型,进行对比的有RefineDet[14]、DSSD[15]、YOLOv3 三种算法,接着设计了消融实验证明改进SPP模块及CBAM模块的效果,以上测试均在上述环境中进行测试,训练集是从数据集中随机抽取70%的样本构建而成,测试集是从数据集中随机抽取30%样本构建而成。
本文所要检测的目标是通过天基平台拍摄的红外波段的小型飞行目标,由于应用领域特殊,公开数据集资源较少,数据集主要来源于内部资料,目标类型只有一种就是小型飞行目标,数据集总计28 732张图片,每一张均按照PASCAL VOC格式进行了人工标注。
4.2 聚类算法对比
表1为不同算法的得到的Anchor大小。
表1 聚类结果
本文对标注好的测试集进行聚类,较少的簇类个数不能准确描述目标框的分布,过多的簇类个数会极大增加模型训练的计算量,并且会导致模型过拟合,所以预先确定簇类个数K=9,为了对比不同聚类算法的性能,保证其余参数不变的情况下,采用K-means和K-means++方法对训练集的目标框的大小进行聚类。
最终测得的平均准确率mAP如图9所示,从图中可以看出,采用K-means++算法得到的Anchor聚类结果最高精确度达到了80.13%优于K-means算法77.05%。
图9 Anchor准确率Fig.9 Anchor accuracy map
4.3 模型对比
为了量化评价各个算法的能力,使用平均准确率作为评价指标[16],该指标综合考虑了算法的精确率与召回率,精确率是指在被分类器判定为正确的样本中有多少是真正正确的,召回率是指真正为正确样本中有多少被分类器判定为正确样本,计算公式如下:
(6)
(7)
(8)
式中:TP是正确样本被判断为正确;FP是正确样本被判断为错误;TN是错误样本被判断为正确;FN错误样本被判断为错误。
为了验证算法的识别准确率,将本文的算法模型与当前主流的目标检测模型对比,所对比的性能参数有FPS(每秒帧率)、AP(平均正确率)、AP50和 AP75(以0.5 和 0.75为IoU临界值分别估计出平均准确度),如表2所示。
表2 识别准确率
由表2中数据可知,DSSD算法的每秒帧数和平均正确率均低于本文方法;RefineDet平均正确率优于Yolov3并且接近于Yolov4,但FPS较低检测速度较慢;Yolov3算法是上一代的Yolo系列检测算法,在检测速度及准确率均低于Yolov4算法;添加了本文所提的均值池化模块的Yolov4-SPP算法在速度上与Yolov4接近,但是由于使用了均值池化替代了原来的最大值池化,减少了噪点的影响使准确率有所提升;添加了卷积注意力模块CBAM的Yolov4-CBAM,检测速度基本持平,检测准确率略高于原版Yolov4;添加了CBAM和均值池化SPP的Yolov4-SPP-CBAM与其他几种算法对比中检测准确率最高,相比于初始的Yolov4提升了5%,检测速度也有所提升但效果欠佳。部分测试结果如图10所示,包含4个序列,序列左侧为待检测影像,右侧为本文所提方法的检测结果。
图10 实验结果Fig.10 Experimental results
5 结论
依据红外弱小飞行目标在天基成像系统中的特点和卷积神经网络对目标特征的较好拟合性,提出了面向天基监视的红外弱小飞行目标识别算法。首先使用K-means++算法对训练集候选框大小进行学习聚类出9种大小的候选框,使候选框的大小更接近于真实目标的大小。在模型中添加卷积注意力模块,对感兴趣的区域着重学习,对大部分没有意义的区域减轻权重节约参数和计算量。使用空间金字塔池化模块扩大感受野,并针对天基成像中的噪点和坏点,将最大值池化优化为平均池化,减少噪点及坏点的影响。通过实验表明,采用K-means++方法对候选框进行聚类,准确率达到了80.13%。集成了SPP和CBAM模块后的算法识别准确率达到了83.3%,相比于原本算法提高了5.5%。本文所提方法可以有效地识别出红外弱小飞行目标,骨干网络仍使用CSPDarkNet,后续研究重点应放在骨干网络结构的优化,采用更加高效和轻量化的骨干网络。