APP下载

基于结构化剪枝的遥感飞机检测算法

2022-06-23王成龙

电光与控制 2022年6期
关键词:剪枝聚类精度

王成龙, 赵 倩, 赵 琰, 郭 彤

(上海电力大学电子与信息工程学院,上海 201000)

0 引言

随着现代交通、航空航天以及现代军事等各个领域的快速发展,遥感飞机目标检测算法的应用场景也越来越广阔[1]。但在遥感飞机目标检测中存在以下两个问题:首先,遥感影像中的物体尺度变化大,飞机小目标所占像素少[2],对应区域的信息量不足,存在误检、漏检的现象;其次,在实际检测过程中,设备的资源需要合理利用,复杂的神经网络模型所需要的计算量大,对设备资源的占用率高,许多设备难以达到模型对高算力的要求。

为了解决上述问题,国内外学者做了许多研究,其中:文献[3]针对航天卫星场景提出了基于DenseNet[4]改进YOLOv3[5]的遥感目标检测算法,通过改进主干网络结构提升遥感目标的检测精度,但是基于DenseNet的网络结构复杂、参数量多,复杂的特征融合会造成特征冗余;与之不同,文献[6]则通过引入空间金字塔池化结构,使用Inception结构实现降维过渡,增强网络特征信息的提取,减少了模型的参数量;文献[7]则对YOLOv4[8]进行改进,改进损失函数并引入注意力机制来抑制不重要的特征,在检测精度与原有检测方法相近时取得了更快的检测速度。以上两种算法虽然在一定程度上实现了轻量化,但对设备的算力要求依然很高。

针对上述问题,提出了一种基于YOLOv4结构化剪枝的模型压缩方法。综合权重级、内核级、通道级、层级等不同级别剪枝的优缺点,最终采用对通道进行剪枝的方案压缩模型参数量,减少内存消耗,这样做的优点在于既不需要特殊软件和硬件加速器的辅助,也不需要较深的网络层数设计[9]。实验在遥感飞机数据集上进行对比测试,验证了该网络设计的有效性。

1 遥感飞机检测算法的改进

1.1 K-means++锚框聚类及注意力机制

许多目标检测算法为了加速网络对定位信息的检索、提升定位的准确性,采用K-means算法对锚框进行聚类。但是针对遥感飞机目标的实际情况,若直接采用K-means算法进行聚类会造成锚框冗余,而且,K-means算法聚类时随机抽取初始簇心的方式可能给最后的聚类结果造成较大误差[10-11],所以本文使用K-means++算法进行锚框聚类。K-means++算法采用概率抽取簇心的方式代替随机抽取,避免聚类时对初始簇心敏感的问题,减少了聚类过程造成的误差,K-means++算法在聚类算法的实现过程中,采用平均交并比(Avg IOU)代替传统的欧氏距离作为目标函数[10],目标函数d为

d(box,centroid)=1-UIOU(box,centroid)

(1)

式中:box为数据集标签的聚类框;centroid为聚类中心。实验分别选取了K的值为1~10进行对比实验,K为聚类的锚框数量,得到聚类结果对比如图1所示。

图1 聚类结果对比图

从聚类结果对比中可以看出,随着K值的增大,目标函数的值也在增大,且在目标函数增大的过程中,采用K-means++算法的聚类效果更加稳定,准确性更高。

针对遥感飞机数据集中小目标较多,聚类后锚框冗余,无法充分发挥网络多尺度检测性能的问题,对聚类后的锚框设计尺度自适应调整,找出更适合遥感飞机目标检测的锚框。锚框尺度自适应调整算式为

(2)

(3)

(4)

(5)

式中:xi为聚类锚框的第i个值;x′i为调整后第i个锚框的值;θ与ω分别为边界框尺度调整参数,θ取0.7,ω取1.2。尺度调整后的锚框结果分别为(5,5),(8,8),(11,14),(16,14),(21,20),(24,28),(34,33),(42,44)和(58,63)。

为了进一步解决遥感飞机目标较小,对应区域信息量不足导致的误检、漏检问题,实验设计中使用SENet[12]通道注意力机制对CSPDarknet53与SPP(Spatial Pyramid Pooling)[13]结构连接处进行加权调整,利用通道间的依赖性重新校准通道的权重,使网络在有限的感受野中更加关注遥感飞机的物体特征。经过SENet时,对特征矩阵U进行处理,首先,对U进行压缩(Squeeze)操作,将每个W*H的矩阵映射成一个1*1 的通道描述符[13],使网络全局感受野中的信息能够被较低的卷积层利用,然后对U进行激励(Excitation)操作,使用sigmoid激活函数对每个通道进行激活,获得不同的通道权重后作用到各个通道中,通道描述符为

(6)

式中:U为输入的特征矩阵;C为通道数;H,W分别为特征图的长和宽;Fsq为压缩操作。

1.2 模型结构化剪枝

1.2.1 模型稀疏

稀疏程度决定模型剪枝能否达到预期效果,因而,稀疏因子s的设置至关重要,稀疏因子过大会导致模型在稀疏过程中性能急剧下降,而稀疏因子过小则会使稀疏不完全,导致剪枝时模型精度损失过大。实验经过多轮测试最终选取0.000 3作为稀疏因子对YOLOv4模型进行稀疏,实际稀疏策略为稀疏因子s乘以当前学习率。实验总共设置300个epoch,最小批次设置为16,初始学习率设置为0.002,动量为0.97,优化器选择为SGD(Stochastic Gradient Descent)。为了直观区分不同稀疏因子在模型稀疏中的效果,实验分别抽取稀疏因子s为0.000 2和0.000 3进行对比,模型稀疏对比如图2所示。从图2中可以看出,随着训练的进行模型逐渐被稀疏,且稀疏因子为0.000 3的稀疏训练中,模型稀疏更加充分。

图2 模型稀疏对比图

1.2.2 模型剪枝及微调

利用BN(Batch Normalization)[14]层缩放因子作为依据对网络进行剪枝的优点在于可以避免引入其他参数量以及卷积层,提升剪枝效率。BN层本质上是归一化网络层,具有加快训练速度、提升网络泛化能力的作用,BN层所执行的变换为

(7)

式中:Zin与Zout分别表示BN层的输入与输出;μB和σB表示在BN层上激活输入的平均值和标准差值;γ和β是可训练的仿射变换参数。实验使用BN层中的缩放因子γ作为依据对网络进行剪枝,利用γ与通道输出的乘积判断通道的重要程度,然后将得分低的通道进行过滤、删减,达到压缩模型的效果[9],模型剪枝整体设计流程如图3所示。

图3 结构化剪枝流程图

评估通道重要程度的目标函数L为

(8)

式中:x,y分别为训练的输入与目标;M为网络可训练权重;目标函数的前一项对应网络正常的训练损失;g(·)是缩放因子上的惩罚项;λ是用来约束两项的超参数。

实验过程中分别使用(0.1,0.9)的不同剪枝率对稀疏模型进行剪枝,经过多轮实验比较模型参数与模型精度变化,最终确定剪枝率为0.75。当剪枝率较高时,可能会暂时出现精度损失,但通常可以通过对剪枝后的模型进行微调来恢复模型精度。

由于YOLOv4结构与剪枝后的模型结构相似度极高,为确保模型精度,使用YOLOv4作为教师模型进行微调,用软标签辅助真实标签重新训练剪枝后的模型,使剪枝后的模型得到更好的预测效果。微调的目标是将复杂模型中的知识提炼到剪枝模型中,在训练过程中使剪枝模型的输出拟合复杂模型的输出,降低剪枝模型的预测结果和真实标签之间的损失[15],微调框架中损失函数Lloss为

(9)

式中:|X|表示X中元素数量;Xn是X的一个数据节点;yn是Xn的类别标签;f是T的预测函数;πj(xn,yn)是教师模型的软标签;Pj(xn)是剪枝模型的软标签[15];φ是用来调节模型侧重于软标签或真实标签的参数,φ∈[0,1]。微调过程中剪枝后模型的损失(CIOU)[16]变化如图4所示。

图4 微调loss变化图

从图4中可以看出,剪枝后模型在微调初始阶段时Lloss略有增加,随着训练的进行Lloss逐渐降低,微调效果良好。

2 实验环境及对比分析

2.1 数据集及实验环境

在多个公开遥感数据集中进行飞机目标提取,同时通过平移、反转、旋转等仿射变换进行数据扩充组成新的遥感飞机数据集,并按照8∶1∶1划分训练集、验证集和测试集,部分数据集如图5所示。

图5 数据集示例

实验硬件环境为Intel(R)Core(TM)i7-10700k,16 GiB RAM,NVIDIA GeForce RTX 2080super,对比实验硬件环境配置相同。

2.2 改进前后算法对比

为了验证本文算法的性能,将其与YOLOv4算法进行对比,对比实验以准确率(Precision)、召回率(Recall)、AP@0.5(Average Precision)、AP误差作为评价标准,即

(10)

(11)

(12)

式中:TP为真正例;FP为假正例;FN为假反例;AAP则为Precision与Recall在0~1区间范围内绘制曲线围成的面积[17]。AP@0.5是在置信度为0.5时测试所得的AP值,AP误差是相较原模型剪枝及微调模型精度的变化值。

对比结果如表1所示,从中可以看出,剪枝模型各项性能有所降低,但剪枝前后AP误差变化较小。经过YOLOv4模型微调后,剪枝模型的性能有所回升,模型参数量没有增加,精度相比剪枝模型提升3.1%。最终微调模型相比YOLOv4算法模型参数量减少了93.1%,虽然检测精度下降1.4%,但仍然能够实现遥感目标的准确检测。

表1 结果对比表

2.3 与主流算法对比

为验证最终轻量级模型的检测效果,将本文算法与YOLOv3[6],SSD[18],Mobilenet SSD,YOLOv3-tiny,YOLOv4-tiny以及YOLOv3-Mobilenet[19]等主流轻量级目标检测算法进行对比,以AP@0.5、参数量、检测速度和检测时间作为检测效果的评价指标,结果如表2所示。

表2 检测结果对比表

通过表2数据分析可以看出,在检测速度及检测时间两项对比中,本文算法明显优于其他主流轻量级算法,在准确性与实时性上均能达到要求,有较好的实际应用价值。YOLO系列算法在遥感飞机目标中的检测效果优于SSD算法。而本文算法比YOLOv3-tiny,YOLOv4-tiny检测精度分别提高了9.6%,6.2%。YOLOv4-tiny作为YOLOv4算法轻量化中效果较好的版本,有较强的对比性,从对比结果中可以看出,在模型检测精度、参数量、检测速度等方面,本文算法的表现都更好,更加符合实际遥感检测场景的需要。近年来,许多针对YOLO的改进算法取得了较好的检测效果,其中,文献[19]使用Mobilenet代替YOLOv3原始的主干提取网络,实现了模型轻量化的效果,但通过测试对比分析可以看出,使用轻量级Mobilenet作为主干提取网络仍然存在特征冗余,参数量也明显高于本文算法,在测试AP@0.5相近的情况下,YOLOv3-Mobilenet算法参数量为本文算法的5.53倍,进一步验证了本文算法的优势。

为了直观区分不同算法对遥感飞机目标的检测效果,实验抽取部分轻量级算法同张图片的检测结果进行对比分析,如图6所示。

图6 部分算法检测对比图

由上述不同算法的检测效果对比可以看出,Mobilenet SSD算法对遥感飞机目标的检测效果较差,YOLOv4-tiny相比Mobilenet SSD效果更好,但是在小目标检测上也难以达到要求,图6中,YOLOv4-tiny算法检测结果中存在许多没有检测出的小目标,而本文算法都有较好的检测效果。YOLOv3-Mobilenet算法实现了较为精准的检测效果,同时降低了参数量,但相比本文算法,参数量仍然较多,轻量化效果较差。通过上述对比分析可以看出,本文算法在检测效果与参数量两方面均能达到较好的效果,能够对遥感飞机目标实现准确实时检测。

3 结束语

本文从减少模型参数量提升模型实时检测性能的角度,提出了一种基于YOLOv4模型结构化剪枝的遥感飞机目标检测算法。模型参数量压缩93.1%,检测速度提升2.46倍,相比于对主干网络进行轻量化的方法,使用模型结构化剪枝的方法压缩率更高,有更好的实际应用性。经过实验对比分析,验证了本文算法在检测精度、检测速度、参数量等方面均能满足遥感检测场景的需要。在未来的研究中,将尝试进一步扩展遥感飞机目标数据库,优化检测算法,进一步提升算法的泛化能力。

猜你喜欢

剪枝聚类精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于梯度追踪的结构化剪枝算法
一种傅里叶域海量数据高速谱聚类方法
人到晚年宜“剪枝”
基于知识图谱的k-modes文本聚类研究
利用KL散度度量通道冗余度的深度神经网络剪枝方法
一种改进K-means聚类的近邻传播最大最小距离算法
基于模糊聚类和支持向量回归的成绩预测
近似边界精度信息熵的属性约简