改进YOLOv5的军事飞机检测算法
2024-03-05胡益民
王 杰,张 上*,张 岳,胡益民
(1.三峡大学 水电工程智能视觉监测湖北省重点实验室,湖北 宜昌 443002;2.三峡大学 湖北省建筑质量检测装备工程技术研究中心,湖北 宜昌 443002;3.三峡大学 计算机与信息学院,湖北 宜昌 443002)
0 引言
遥感影像(Sensing Image)是指通过具有摄影成像能力的飞机或卫星获取到的地球表面图像,具有丰富的背景信息。随着军工武器装备的迭代升级,军用飞机家族成员日益壮大,高效的遥感图像军用飞机目标检测能够快速获取军事目标信息,提升作战时的态势感知能力,助力科技强军。传统的遥感图像检测方法使用固定的尺度对目标进行特征提取,再通过机器学习来对目标进行分类,存在检测速度慢、误检率高和复杂背景下识别准确率低等问题[1-3]。由于遥感影像具有采集范围广、目标像素占比少和特征表达不明显等特点,使得遥感影像中军用飞机的目标检测任务具有更大挑战[4-5]。
随着深度学习的快速发展,基于深度学习的目标检测算法得到了快速发展。目前,大部分目标检测算法都使用卷积神经网络来提取目标特征,基于卷积神经网络的目标检测算法被分为2类:一类是以SSD[6]、YOLO[7-8]、YOLOv3[9]和YOLOv4[10]等为代表的单阶段目标检测算法,此类算法可直接从网络中获取特征信息,来预测目标的类别和位置,具有检测速度快、占用资源少等优点;另一类是以R-CNN[11]、Fast R-CNN[12]、Faster R-CNN[13]和Mask R-CNN[14]等为代表的双阶段目标检测算法,这类算法需要先生成预选框,再对目标进行分类,具有检测精度高等优点。目前已有大批学者在飞机的目标检测领域做出了贡献,杨予昊等[15]提出基于卷积神经网络迁移学习的HRRP识别方法,飞机目标的平均识别准确率提高了10%以上。祝文韬等[16]提出改进的ROI Pooling方案,解决了目标区域失配问题。王冰等[17]提出飞机目标多尺度检测方法(AFSSD),有效检测了不同尺度飞机目标并提升了检测精度。杨钧智等[18]提出MSCFF+CNN飞机目标自动检测算法,在提取目标候选区前滤除了图像的复杂背景,目标检测的精确率得到了大幅提高。
目前,军用飞机目标检测领域的发展仍较为缓慢,在众多相对成熟的目标检测算法中,军用飞机的目标检测效果仍存在着诸多问题:
① 军用飞机目标检测的平均准确率较低,对不同目标型号的识别误差较大,并且普遍存在飞机目标漏检的情况;
② 模型训练的速度较慢、泛化能力弱,模型推理效果差;
③ 训练后的模型体积和计算量较大,无法实现轻量化的军用飞机目标检测。
本文贡献如下:
① 为解决军用飞机目标检测的精度低、漏检和虚警率高等问题,基于YOLOv5s提出了YOLO-MAR网络结构,对原模型进行重构,调整了小尺度目标特征的表达能力,改进后的模型检测效果较好,平均检测精度可达91.7%;
② 为解决模型训练速度慢等问题,在YOLO-MAR中加入了SIoU Loss函数,重新定义惩罚指标,提高函数回归效率和推理的准确性;
③ 为实现模型轻量化,使用FPGM对模型进行剪枝,修剪后的模型计算量(GFLOPs)低至0.5,体积最小可达0.2 MB,相较YOLOv5降低了约98%。
1 YOLO-MAR算法架构
YOLOv5作为YOLO系列中较为成熟的一代,因较高的检测精度,在目标检测领域得到了大量运用。但YOLOv5在检测特定尺度目标时效果一般,如遥感影像中的军用飞机目标,YOLOv5就无法完成高质量的检测任务,因此,本文提出了YOLO-Military Aircraft Recognition(YOLO-MAR)算法。
YOLO-MAR算法的核心在于,针对遥感图像中军用飞机目标较小的特性,轻量化重构原网络结构模型,使新改进的模型更适用于检测军用飞机目标。YOLO-MAR由轻量化重构网络结构和SIoU组成。从长度和宽度2个方向同时对网络结构进行调整,去除冗余模块,实现轻量化特征融合网络架构和改变感受野尺度;使用SIoU来替代CIoU,使模型的收敛速度加快并提升检测的精度。YOLO-MAR网络架构如图1所示,经过轻量化处理的YOLO-MAR网络架构在体积、计算量、检测精度和推理速度等方面均有较好的表现。
图1 YOLO-MAR网络架构Fig.1 YOLO-MAR network architecture
2 YOLO-MAR实现
2.1 网络结构
原YOLOv5中通过特征融合输出的特征图有80×80、40×40和20×20三个尺度,虽然这些特征图能够兼顾到小尺度目标的检测,但在执行遥感图像中军用飞机这些目标为主的检测任务时,YOLOv5的检测效果并不理想。本文根据检测遥感图像军用飞机目标来调整感受野尺度,去除20×20的感受野尺寸,提高了小尺度目标特征表达能力,此改进方法使得YOLO-MAR更适配遥感图像军用飞机目标检测任务。
在遥感图像丰富的背景信息中,飞机目标往往只占用图像的一小部分。在目标检测任务中,多次的卷积迭代和与下采样融合会导致少许目标的特征信息丢失,当卷积到一定尺度后,图像中的特征信息量将出现断崖式下滑。因此,YOLO-MAR为防止飞机目标特征信息丢失,减少了卷积和下采样的次数,调整骨干网络结构,去除大感受野尺度,在降低了网络结构运算量的同时保证了飞机目标特征的表达能力。
YOLO-MAR中特征融合网络结构的改进方法是:首先,将浅层特征和深层特征融合,分别与80×80、40×40感受野尺度的特征图融合;然后,再将深层特征和浅层特征融合,分别与40×40、80×80感受野尺度的特征图融合;最后,对融合后的特征图进行预测。通过突出浅层特征信息,能够有效降低飞机目标特征信息的损失。
YOLO-MAR的网络结构通过分别重构特征提取网络和特征融合网络,调整感受野尺度得以实现。YOLO-MAR算法的网络结构如图2所示。
图2 YOLO-MAR详细网络结构Fig.2 Detailed network structure of YOLO-MAR
先剔除特征提取主干网络的冗余参数,并调整模块位置,再对应改进的特征提取网络,将调整特征融合网络实现80×80、40×40两种尺度的深层特征和浅层特征融合,最后得到轻量化的网络结构模型。
2.2 SIoU Loss应用
回归损失函数作为目标检测算法中衡量检测精度的一种方式,在原YOLOv5中使用CIoU作为损失函数,包含预测框和真实框的重叠面积、中心点距离和纵横比3个方面。SIoU Loss函数首次引入角度损失成本概念,能够加快模型收敛的速度并提高检测精度,角度损失示意如图3所示。
图3 角度损失示意Fig.3 Angle loss
SIoU损失函数由角度成本损失、距离成本损失、形状成本损失和IoU成本损失4个部分组成。SIoU Loss函数计算如下:
(1)
(2)
式中:IoU为真实框与预测框之间的交并比,B为预测框,BGT为真实框,Δ为距离成本损失,Ω为形状成本损失。Δ、Ω的计算如下:
(3)
(4)
式中:cw、ch为预测框与真实框的损失距离,Λ为SIoU引入的角度成本损失,θ为形状损失的关注度,取值为2~6,当取4时为最优结果。Λ计算如下:
(5)
参数α越接近于0,角度成本损失越小,当α取π/4时,角度成本损失最大。角度成本损失Λ的加入,使得预测框能够更快地向真实框收敛,提高函数回归效率。
SIoU与CIoU损失函数在训练过程中损失的贡献对比如图4所示,在训练轮数超过200后SIoU计算的损失贡献要优于CIoU。
图4 SIoU与CIoU对比Fig.4 Comparison of SIoU and CIoU
2.3 FPGM剪枝
模型剪枝能够在保持模型性能的前提下压缩模型体积、减少模型参数和计算量,在边缘化部署方面有广泛应用。传统的模型剪枝算法,使用范数来衡量过滤器(Filter)的贡献度,对那些贡献度相对小的Filter进行修剪。在每一个Filter的范数都相近或Filter的最小范数较大的场景中,剪枝效果不佳。FPGM[19]剪枝算法提出基于几何中值的可替代Filter剪枝方法,打破了范数的制约,在大多数场景中,FPGM剪枝算法均能够保留更多的特性信息。不同的Filter剪枝效果对比[20]如图5所示。
图5 滤波器剪枝对比Fig.5 Filter pruning comparison
几何中值剪枝算法的基本思想是在d维空间中,找到一个与其他点欧式距离之和最小的点x*(几何中位数点):
(6)
(7)
由于几何中值求解的过程十分繁琐,可将求解问题简化为找出与其他滤波器欧氏距离最小的滤波器:
(8)
(9)
FPGM剪枝算法的基本流程:在神经网络的卷积层中,计算出每一层的任一卷积核与当前层中其他卷积核的欧几里得距离之和,按照预先设定的剪枝率R,依次剪掉最小欧几里得距离对应的卷积核,得到初步剪枝过的网络模型;对模型进行训练,并通过不断迭代裁剪,直至模型收敛,将收敛的模型剔除梯度为零的卷积核和BN层的冗余参数,得到最终的剪枝模型。FPGM算法如下所示。
算法1 FPGM算法输入:训练数据集 1:设定剪枝率R 2:初始化网络模型参数W3:for epoch=1;epoch≤epochmax;epoch++ do4: 迭代更新模型参数W 5: for i-1;i≤L;i++ do6: 找到最小欧氏距离之和的滤波器 7: end for8:end for9:裁剪带有冗余信息的滤波器输出:剪枝后的模型和参数
3 实验与结果分析
3.1 实验环境
本文所使用的实验配置环境为:CPU AMD Ryzen 7 5800H 3.19 GHz;GPU NVIDIA GeForce GTX 1650,4 GB显存;操作系统Windows 10;深度学习框架PyTorch1.8、CUDA11.3;调用GPU进行训练,模型学习率(lr0)为0.01,学习动量(Momentum)为0.937,训练选用的batch-size为4,epoch为300。
3.2 MAR20数据集
为检验YOLO-MAR算法的可行性,本文选用数据集MAR20。MAR20是目前规模最大的遥感图像军用飞机目标识别数据集,包含3 842张图像、20种军用飞机型号以及22 341个实例[21]。实验所用的训练集、验证集划分比例为1∶2,数据集中每种飞机类型编号和实例数如表1所示。MAR20数据集中飞机类型编号为A1~A20,分别代表SU-35战斗机、C-130运输机、C-17运输机、C-5运输机、F-16战斗机、TU-160轰炸机、E-3预警机、B-52轰炸机、P-3C反潜机、B-1B轰炸机、E-8监视机、TU-22轰炸机、F-15战斗机、KC-135加油机、F-22战斗机、FA-18攻击机、TU-95轰炸机、KC-10加油机、SU-34战斗轰炸机和SU-24战斗轰炸机共计20款军用型飞机。
表1 MAR20数据集实例分布
3.3 评价指标
目标检测算法评估的指标主要有准确率(Precision,P)、召回率(Recall,R)和平均准确率(mean Average Precision,mAP)。准确率是预测为正且实际为正的样本所占比例,召回率为正样本中被正确检测所占比例。其中,准确率、召回率和平均准确率的计算如下:
(10)
(11)
(12)
式中:TP为检测结果为真的正样本,FN为检测结果非真的正样本,FP为检测结果为真的负样本,AP为单个类别的准确率,mAP为所有类别准确率的均值。
3.4 实验结果与分析
为检验FPGM剪枝和SIoU损失函数的实际效果,本文在MAR20数据集上对改进YOLOv5算法前后做了对比实验,实验结果如表2所示。结果表明,改进后的YOLO-MAR算法在20种目标类别中的mAP均高于原YOLOv5,数据集整体的mAP由89.36%提升至91.7%,提升了2.34%。
表2 YOLOv5s与YOLO-MAR检测效果对比
不同迭代次数下mAP指标的变化对比如图6所示,在迭代训练到80次前,YOLOv5算法的检测效果更好;在训练超过80次后,模型开始出现收敛,此时YOLO-MAR算法的检测效果更好,并且在训练230次左右mAP达到最高的91.7%。
图6 不同迭代次数对比Fig.6 Comparison of mAP index of different algorithms
为验证本文提出的YOLO-MAR算法的先进性,设计了对比试验,与当前较为主流的YOLOv5和YOLOv7目标检测算法做对比实验,实验结果如表3所示。与YOLOv5s和YOLOv7-tiny相比,YOLO-MAR网络的模型体积更小、模型检测精度更高;与YOLOv7相比,虽然YOLO-MAR网络的检测精度略低,但模型的体积下降较大,下降了约94.5%。由此可见,在保证模型性能的前提下,YOLO-MAR在轻量级目标检测任务上具有先进性。
表3 对比实验
使用FPGM剪枝后的实验结果如表4所示。可以看出,随着剪枝率的不断增大,2种模型的体积和精度均有所下降。其中,模型的计算量(GFLOPs)和模型体积均呈现线性下滑趋势,且在剪枝率大于50%时,模型精度下滑明显。在剪枝率相同时,拥有SIoU损失函数的YOLO-MAR的模型精度相对于原网络模型均有所提高,平均提高约0.16%,表明SIoU能够有效提高函数回归效率。可见YOLO-MAR在检测效果、模型体积和计算量上均有先进性。
表4 FPGM剪枝效果对比
为验证YOLO-MAR在军用飞机目标检测领域的有效性,本文使用MAR20数据集设计了消融实验,实验结果如表5所示。可以看出,YOLOv5中加入SIoU后,模型的准确率、召回率和平均准确率均有所提升,分别提升了0.67%、0.37%和0.36%;在重构后的网络中使用SIoU损失函数,得到了同样的效果,表明SIoU能够提升模型函数回归的效率、提高准确率。重构后的网络增强了较小尺度目标的特征表达能力,平均准确率提高约1.5%。当模型经过重构并加入SIoU后,模型的检测效果有较大提升,准确率提升约2.8%,召回率提升约11.3%,平均准确率提升约2.4%,在模型重构后,SIoU对于召回率的提升更为明显,平均精度最高可达91.75%。剪枝率为30%时,重构后的模型的平均精度仍高于YOLOv5,达到89.93%,同时模型的体积大幅下降,达到了1.8 MB,极限剪枝下,模型体积可缩减至0.2 MB。当剪枝率为50%和80%时,模型的检测精度有所下降。
表5 消融实验
3.5 实验效果展示
为更加直观地检验YOLO-MAR用于军用飞机目标检测的效果,本文采取随机抽样的方式在验证集中选取出多张图片,这些图片包含单一目标、小目标、稠密目标和稀疏目标等特征。本文共设置2组效果图对比:MAR20数据集在不同的网络模型下的检测效果对比,YOLO-MAR在不同剪枝率下对检测效果影响的可视化对比。
不同网络模型下的检测效果对比如图7所示,其中包含单目标、小目标、稠密目标和稀疏目标等特征。可以看出,使用YOLO-MAR对军用飞机目标的检测效果更好,平均检测精度更高,并且在稀疏飞机目标检测时,原YOLOv5中存在的漏检与虚警等问题得到了较好的改善。
(a)原始标注图像
(b)YOLOv5检测
(c)YOLO-MAR检测
不同剪枝率下的检测效果对比如图8所示。在剪枝率为30%时,仅仅存在个别稠密飞机目标检测精度稍微下降,但整体精度仍高于YOLOv5,且未出现漏检的情况。当剪枝率达到50%时,模型的检测精度开始整体下降;当剪枝率达到80%时,检测精度下降明显,模型开始出现误检和漏检的情况。
(a)剪枝率30%
(b)剪枝率50%
(c)剪枝率80%
4 结束语
军用飞机由于其具有独特的战略属性成为了未来战争中掌握制空权的利器,高效的遥感图像军用飞机目标检测能够快速获取军事目标信息,提升作战时的态势感知能力。本文提出YOLO-MAR算法,重构YOLOv5s的网络模型,设计了一种二尺度网络结构;使用FPGM剪枝算法,剪掉冗余的模型参数;用SIoU Loss来提升模型函数回归的效率。经实验,在MAR20数据集中,YOLO-MAR的模型体积低至3.95 MB,能够提升检测精确度到91.7%,经FPGM剪枝后的模型体积最小可压缩至0.2 MB,YOLO-MAR整体效果要优于YOLOv5与YOLOv7等主流目标检测算法。由于受数据集的限制,YOLO-MAR能识别出的军用飞机种类十分有限,为使YOLO-MAR更加健壮,后续还需对数据集进行适当扩充。