基于MM-YOLOv4的无人机目标检测算法
2022-11-03程千顷王红军
程千顷,王红军
(国防科技大学电子对抗学院,合肥,230037)
无人机类目标有飞行高度低、慢速以及小型化的特点[1],这使得传统的雷达、无线电方法对其检测难度巨大,性价比不高[2-3],而基于声音的检测手段存在受噪声干扰大的缺点[4]。因此一种新的无人机目标检测方法的研究需十分迫切。
随着深度学习技术的成熟以及图像运算设备的更新换代,基于图像的目标检测方法逐渐成为目标检测领域的主流热点[5]。其中具有代表性的算法有基于二阶段检测机制的Faster R-CNN和基于一阶段检测机制的SSD(single shot multibox detector,SSD)以及YOLO(you only look once,YOLO)系列等算法。YOLOv4[6]算法是开创性地使用了CSPDarkNet-53网络作为主干网络提取图像特征,PANet(path aggregation network,PANet)作为特征融合结构以及使用SPP(spatial pyramid pooling,SPP)结构加强特征提取[7],使得一阶段检测算法在精度和速度上赶超了大部分二阶段算法。
虽然目标检测算法凭借良好的性能深受广大研究者喜爱,但较大的模型体量和计算开销使得快速检测成为一个难题。文献[8]针对航拍目标检测问题,通过对YOLOv4的主干网络进行轻量化改造,精简模型结构,提升了0.008 s的检测速度以及减少了13 M的参数量,但算法对模型改造不彻底,提升效果并不明显。文献[9]中使用基于迁移学习的YOLOv3算法在自建无人机数据集上实现了精准检测,平均准确率达到了88.9%,但未对YOLOv3算法进行过多改进,准确率仍有提升空间,实时性也没有体现。文献[10]使用卷积神经网络对无人机进行检测,在自建数据集上达到了93%的识别准确率,但实验使用早期的支持向量机和K最近邻方法,难以体现算法的先进性。文献[11]针对检测模型内存占用大、检测实时性差的问题,提出了一种改进双尺度的YOLOv4算法,通过裁剪通道和稀疏训练的方法,减少了60%的内存占用,提升了35%的FPS,达到了58帧/s,但mAP精度有所下降。
针对算法参数量过大以及小目标检测精度低的问题,本文提出了一种结合轻量级网络MobileNet V3和改进多尺度结构PANet的无人机目标检测算法MM-YOLOv4(mobilenetV3-mutlscale-YOLOv4,MM-YOLOv4)。
1 MM-YOLOv4算法模型
1.1 模型架构
MM-YOLOv4是在YOLOv4基础上进行改进的算法。算法模型的图像输入尺寸为416×416×3,输出为3种尺度大小的预测结果,其网络架构主要由主干网络MBNNet16和特征融合网络Mutlscale-PANet以及预测模块Yolohead 3部分组成。见图1。
图1 MM-YOLOv4网络模型架构图
MBNNet16由CBH(conv+batchnorm+h-wish,CBH)模块和MBN(moblie bottleneck,MBN)模块堆叠构成,共计16层。其作用是输出不同尺度的卷积特征图,以适应不同大小目标的检测。在图1中MBNNet16以输出特征图的节点为分割点,将MBN模块进行叠加表示,例如MBN×3,表示为3个MBN模块叠加。Mutlscale-PANet主要由CBL(conv +batchnorm+leakyrelu,CBL)模块以及SPP模块搭建而成。其作用是对输入的特征图进行融合叠加,丰富特征图信息。Yolohead由CBL模块和卷积层组成,其作用是检测目标的位置和类别并输出。
1.2 模型轻量化改进
轻量级网络以其精简的网络结构和快速提取图像特征的优点被广泛应用。
MobileNetV3网络是Andrew Howard等学者提出的第3个版本的轻量级网络[12]。它结合了V1版本的深度可分离卷积和V2版本的线性瓶颈逆残差结构,并引入h-swish激活函数以节省计算开销,因此算法使用MobileNetV3作为YOLOv4轻量化改进的主干网络[13],来减少模型复杂度和提升检测速度。
主干网络的替换主要是使用剪枝后的MobileNetV3网络作为模型的起始部分,对输入图像进行卷积运算,并输出4种尺度特征图,其大小为104×104、52×52、26×26以及13×13,兼顾了大、中、小3种尺度目标的全局和局部特征,可以为后续的分类和定位预测提供了充足的信息。MobileNetV3网络在充当主干时剪除了最后的Classifier(分类层),由输出第4尺度特征图的MBN层作为主干结构的最后一层,MBNNet16具体结构见表1。operator表示本层所用模块及卷积核大小;exp size 表示在MBN模块中增加的通道数;out size表示输出的通道数;SE表示是否在深度可分离卷积块中增加SE(squeeze- and-excite,SE)结构;s表示步长。
表1 MBNNet16网络结构
1.3 模型多尺度结构改进
PANet网络是用于实例分割的路径聚合网络[6]。部分结构示意图见图2。
图2 PANet网络部分结构图
YOLOv4算法的特征融合网络应用了PANet网络的部分结构,在进行特征融合时使用了3个尺度的特征图,这种方式增强了算法对图像特征的提取和整合能力,但在一定程度上损失了部分小目标的特征信息。本文为了加强对小尺度目标的定位和图像特征提取能力,通过改进PANet网络作为颈部特征融合结构的功能,增加一个特征输出分支,来丰富浅层网络提取的目标特征信息。改进后的具体结构如图1中Mutlscale-PANet模块所示。
1.4 K-means算法锚框改进
锚框是目标检测算法用来遍历图像中感兴趣区域并进行预测识别的像素框。MM-YOLOv4使用K-means算法对数据集进行聚类分析,以得到适合目标数据集训练的锚框大小,自适应能力强且可以针对不同的数据集进行不同的锚框设计。
K-means算法是通过选取距离度量和准则函数不断进行迭代最终选取k个聚类中心的聚类算法[16]。论文选用真实框和预测锚框之间的面积交并比IoU作为度量进行聚类。公式为:
(1)
式中:B为真实框;A为预测锚框;k为聚类中心(预测锚框)的个数;nk为第k个聚类中心中的真实框的数量;N为真实框的总个数;IIoU(B,A)为真实框和预测锚框的面积交并比;i代表聚类中心序号;j表示聚类中心中真实框的序号。
表2为YOLOv4算法的默认锚框和MM-YOLOv4算法使用K-means算法对Drone-dataset数据集进行锚框聚类得出的最佳锚框对比表。
表2 默认锚框和K-means算法锚框
2 数据集与数据增强
本文通过结合文献[15]中的公开数据集和自主拍摄无人机目标图像的方式构建了数据集Drone-dataset。Drone-dataset中包含了大、中、小3种尺度的无人机目标,图像数量为3 698张,其中2 664张为原公开数据集图像,其余1 034张为后续扩充图像。表3为Drone-dataset数据集的详细信息以及训练集、验证集和测试集划分情况。
表3 Drone-dataset数据集信息表
为了测试MM-YOLOv4算法的可行性,文中还选用了PASCAL VOC2012公开数据集作为实验的检测基准。
3 实验
3.1 实验环境与配置
实验环境基于深度学习框架PyTorch且配有CUDA10.2平台作为并行运算结构,计算机环境为Windows 10操作系统Intel(R) Core(TM) i9-10900F CPU @ 2.80 GHz 2.81 GHz,内存为64 G,GPU为NVIDIA Quadro P4000,8 G显存。
模型训练的超参数设置如下:训练的初始学习率为0.01,最低学习率为0.000 1,并使用余弦退火的学习率衰减方法,模型的图像输入大小为416×416,Epoch次数为200,Batch size为16。
3.2 评价指标
实验选取目标检测精度mAP(mean average precision,mAP)、检测速度FPS(frames per ssecond,FPS)和模型参数量作为评价指标,来检验模型的整体性能。
mAP可以全方面地评价模型对多类别和多目标任务的定位和分类效果。计算mAP需要计算识别任务中每个类别的average precision (AP)然后取其平均值,其公式为:
(2)
式中:C为总类别数目;APi为第i类的AP值。
AP由精确率(precision)和召回率(recall)计算得来:
(3)
(4)
(5)
式中:TP(true positive)即实际输入为正样本,预测结果也为正样本;FP(false positive)即实际输入为负样本,预测结果为正样本;FN(false negative)即实际输入为正样本,预测结果为负样本;TN(true negative)即实际输入为负样本,预测结果为负样本;P代表precision,R代表recall。
3.3 实验结果与分析
3.3.1 可行性与先进性实验
为验证MM-YOLOv4算法的可行性,本实验使用Faster R-CNN、SSD、YOLOv3、YOLOv4、MobileNetV3-YOLOv4和MM-YOLOv4算法在PASCAL VOC2012数据集上进行对比实验,PASCAL VOC2012数据集包含20个类别的大中小尺度目标,能综合反映算法的检测性能。表4为各算法在PASCAL VOC2012数据集上各性能指标的检测结果对比。
表4结果表明,在检测精度方面,MM- YOLOv4在众多算法中的mAP指标最高,达到了90.69%;在检测速度FPS和模型参数量方面,MM-YOLOv4的性能略差于MobileNetV3-YOLOv4,但优于其它算法,FPS指标达到了55帧/s,参数值仅有44.39 M,略优于SSD算法46帧/s的FPS和99.76 M的参数值。此外相较于YOLOv4、Faster R-CNN等算法不到30帧/s的检测速度和200 M以上的参数量,MM-YOLOv4算法则更占优势。
表4 PASCAL VOC2012数据集各算法检测结果对比
综上,MM-YOLOv4算法在YOLOv4的基础上结合MobileNetV3轻量级网络和改进多尺度PANet结构,大幅度缩减了参数量,加快了检测速度,在PASCAL VOC 2012数据集得到了不错的检测结果,相较于YOLOv3、YOLOv4和Faster R-CNN等二阶段检测算法,MM-YOLOv4算法表现出更大优势,体现出了算法的可行性以及有效性。
为验证算法的先进性,实验基于Drone-dataset数据集开展对比实验。该数据集包含了大、中、小3种尺度的无人机目标,可以全面检验算法对多尺度无人机目标检测的适应能力。表5为各算法的训练验证结果对比,实验指标使用COCO检测指标,其中检测精度mAP特指在IoU=0.5下的值,单位为%,其余的APsmall、APmedium、APlarge分别是3种尺度目标的平均精度值。
结果表明,MM-YOLOv4算法在IOU=0.5下的mAP精度指标达到了91.58%,优于除Faster R-CNN以外的其他算法。此外,在AP精度指标上MM-YOLOv4表现良好,由小尺度目标到大尺度目标的精度值分别为22.92%、37.43%和56.00%。尤其是对小尺度目标检测的AP精度,相较于YOLOv4和Mobilev3-YOLOv4分别提升了4.4%和5.15%,体现出改进多尺度结构对小目标检测的提升效果。
表5 Drone-dataset数据集各算法检测结果对比 单位:%
3.3.2 消融实验
为了体现MM-YOLOv4的改进策略相比于YOLOv4的提升,对算法开展消融实验,实验通过使用Drone-dataset数据集对MM-YOLOv4算法的每一部分改进策略进行训练并记录其mAP(IoU=0.5)、FPS以及参数量指标,查看其改进效果。表6为各部分改进策略在Drone-dataset数据集上的指标对比。
由表6可知,本文算法在3个指标的性能上均有不同程度的提升,其中基于主干结构的轻量级网络改进对模型性能的提升效果比较明显,在mAP精度仅下降0.23%的代价下,将FPS提升到了65帧/s,并且参数量降到了43.51 M;基于PANet改进的多尺度结构表现尚可,提升了模型1.94%的mAP,但是FPS下降了15帧/s,同时参数量增加了3.64 M;基于K-means的锚框聚类方法提升了模型0.86%的mAP精度以及1帧/s的检测速度。最终,结合了这3种改进策略的MM-YOLOv4算法mAP精度达到了最高的91.58%,提高了0.52%;FPS值达到了55帧/s,提高了28帧/s;参数量降到44.39 M仅为YOLOv4算法的1/6,这体现出MM-YOLOv4算法在检测精度、检测速度以及模型参数量上的高效平衡以及针对无人机目标检测任务的优异性能。
表6 基于Drone-dataset数据集的消融实验
4 结语
针对无人机目标的快速检测问题,论文在YOLOv4算法的基础上采取多种改进策略,提出了MM-YOLOv4无人机目标检测算法。首先,使用MobileNetV3轻量级网络作为YOLOv4的主干特征提取模块,精简模型结构,提升检测速度;然后采用改进多尺度结构的PANet网络作为特征融合模块,充分利用浅层网络提取的目标特征信息,增强对小尺度目标的鉴别能力;最后采用K-means聚类方法对目标数据集进行聚类分析,优化锚框参数,增强检测效率。实验结果表明,MM-YOLOv4算法在Drone-dataset和PASCAL VOC2012这两类目标复杂的数据集上,表现出比常见算法更高的检测精度和更快的检测速度,为无人机目标的快速检测提供了一种实用可行的研究思路。下一步的研究将针对PANet网络改进造成的检测速度下降问题,选取合适的特征金字塔结构,优化特征融合通道,以适应更快的无人机目标检测需求。