APP下载

基于改进YOLOv3的装甲车辆检测方法

2021-05-06眸,张平,王

兵器装备工程学报 2021年4期
关键词:聚类卷积图像

丛 眸,张 平,王 宁

(1.长春理工大学 计算机科学技术学院, 长春 130022; 2.陆军装甲兵学院, 北京 100072;3.公安部第三研究所, 北京 100142)

基于图像的目标检测技术是指利用计算机视觉等相关技术,将既定类别的物体自动从图像中检测出来,并对物体的类别、位置、大小进行判断[1]。近年来,目标检测技术取得了巨大的成功,已在海防监视、精确制导、视频监控等多个领域得到广泛应用。装甲车辆作为地面战场最主要的作战力量,通过计算机视觉技术实现对装甲车辆目标的自动检测,有利于我方获取更准确的敌我双方战场态势情况,进而根据战场态势的变化做出准确灵活的作战策略,占据战场的主动性[2-3]。

当前,基于卷积神经网络的目标检测方法已成为目标检测领域的主流,这些方法主要可以分为基于建议区域提取的方法和基于回归的方法[4-5]。前者的代表作为有R-CNN[6]、faster R-CNN[7]等方法,其特点是检测精度较高,但检测速度较慢;后者的代表作有SSD[8]、YOLO[9]等方法,其特点是检测速度较快。YOLOv3[10]是在YOLO的基础上发展而来的,是YOLO系列方法的集大成者,具有检测精度高、速度快的优点。本研究以YOLOv3网络为基础,利用K-means++算法计算出适用于装甲车辆目标的锚框,然后利用空间金字塔池化(SPP)模块[11]丰富卷积特征的表达能力并结合卷积特征融合机制对多层级卷积特征进行融合,从而提高装甲车辆目标的检测效果。实验结果表明,改进的YOLOv3方法在本文构建的装甲车辆目标检测数据集上具有更好的检测精度,同时能满足实时性需求。

1 YOLOv3原理

YOLOv3使用Darknet53网络提取图像的卷积特征,而后通过yolo层实现多尺度预测。YOLOv3使用较多的CBR和Res结构,其中CBR表示将1×1或3×3的卷积核进行标准规范化操作,而后使用Leaky rule激活函数进行非线性化;Resn由CBR与n个Res unit组成,而Res unit由2个不同尺度的卷积核组成的CBR和短连接组成。为实现细粒度检测,YOLOv3使用了多尺度特征进行目标检测,而Darknet53最后的卷积层输出的卷积特征尺度为13×13×1 024,因此YOLOv3通过采用了上采样与浅层卷积特征图连接,输出3个不同尺度的卷积特征,并在不同尺度的应用不同尺度的锚框,从而得到最终的检测结果。YOLOv3借鉴了残差网络结构,从而形成了更深的网络层级,并结合多尺度检测,提升目标检测的性能,特别是对小目标检测的性能。此外,在整个YOLOv3网络舍弃了目标检测模型中经常使用的池化层,而是通过在前向传播过程中改变卷积的步长来实现卷积特征尺度的变化,降低了网络的计算量,使其具有较高的检测速度。

目标检测模型的损失通常由位置损失和分类损失组成,而YOLOv3的损失lall除了由分类损失lclass和位置损失lcoord之外,还增加了置信度损失lconf,其中置信度损失lconf由存在目标的网格的损失与不存在目标的网格的损失组成,其计算公式为:

(1)

2 改进的YOLOv3网络

本文在YOLOv3的基础上,针对装甲车辆数据集的特点对其进行改进。主要的改进点有三处:一是通过改进锚框设计方法来获取更精确的锚框尺度,从而加快网络的收敛速度;二是改进特征提取网络,通过在Darknet53的第5层与第6层之间集成SPP模块来丰富卷积特征的表达能力;三是在特征提取网络之后,结合卷积特征聚合机制来融合多层级卷积特征,从而提高目标检测的性能。改进后的网络结构如图1所示。

图1 本文方法的整体结构框图

2.1 锚框设计

网络模型能够通过不断的学习训练来调整边界框的大小,但合适的初始化边界框尺寸能够加快网络的训练并提高网络模型的性能。YOLOv3中引入了锚框的思想并通过K-means方法计算锚框的大小,即首先随机选取数据集中K个点作为聚类中心,然后针对数据集中的每个样本计算其到K个聚类中心的距离并将其分类到距离最小的聚类中心所对应的类别中,接着再针对每个类别重新计算聚类中心,最后重复上述2个步骤,直到聚类中心的位置不再变化。通过K-means得到的锚框尺度有效地提升了YOLOv3的性能,但直接使用已有的锚框尺度并不适用于本文数据集。此外,由于K-means的聚类结果受初始点的选取影响较大。为更好地选取锚框的尺寸,本文使用K-means++算法代替原有的K-means方法。与K-means相比,K-means++对初始点的选择进行了改进,放弃了原有的随机选择K个聚类中心的理念,而是通过随机选取一个聚类中心之后通过轮盘法选取后续的聚类中心,使得K个聚类中心的距离足够远。在得到K个聚类中心之后再继续原K-means计算锚框尺寸。与K-means相比,K-means++计算初始点的选择时耗费了一点的时间,但在迭代过程中能够更快地收敛,提高了网络训练速度。本文通过K-means++方法得到的9个锚框尺寸分别为(10,12),(13,20),(18,28),(22,35),(30,42),(37,55),(41,60),(55,75),(72,108)。

2.2 结合SPP模块的特征提取网络

SPP由微软研究院的何凯明提出,其最初目的是用于解决目标检测模型中对图像区域裁剪、缩放时图像失真问题以及对图像重复提取卷积特征的问题。随着研究的不断深入,SPP可以用于实现全局特征与局部特征的融合,从而丰富卷积特征的表达能力,更有利于实现对不同尺度目标的自动检测。SPP模块的结构如图2所示。

图2 SPP模块结构框图

本文在YOLOv3中的第5层与第6层之间集成了SPP模块。SPP模块有4个并行的分支组成,分别是卷积核尺度为5×5、9×9和13×13的池化操作以及一个短连接,其中池化操作采取的池化方式为步长为1的最大值池化,最后联合4个分支的卷积特征并通过1×1和3×3的卷积核进行再次融合。SPP模型能够有效地提升YOLOv3的检测效果,在后文的实验部分,本文比较了没有集成SPP模型与集成了SPP模型的检测效果。

2.3 卷积特征融合机制

随着深度卷积神经网络层级的不断提升,深层卷积特征的分辨率不断降低,但具有更好的特征表达能力,而浅层的卷积特征的分辨率较大,特征表达能力不如深层卷积特征。虽然YOLOv3利用了多层卷积特征来实现对目标的检测,但对于多层卷积特征没有进行较好地融合,本文通过在YOLOv3中结合特征聚合机制,使得输入到yolo检测层之前的卷积特征更好地融合了深度卷积特征与浅层卷积特征。卷积特征聚合主要分为2部分:自下而上的特征聚合以及自上而下的特征聚合,其结构图1中阴影框内所实话,具体实现方式如下:首先,将SPP模块得到的卷积特征进过CBR送入P1,并将其通过上采样增大一倍的分辨率,使其与darknet53的第5层卷积特征具有相同的尺寸;接着,将上采样后的卷积特征与第5层的卷积特征进行融合得到P2,将P2再次通过上采样增大一倍的分辨率并与darknet53的第4层卷积特征相融合得到P3,上述部分为自下而上的特征聚合;然后,将P3通过池化降低一倍的分辨率并与P2相融合,得到卷积特征N2;最后,按照同样得到步骤,将N2降低一倍的分辨率并与P1相融合,上述步骤为自上而下的特征聚合。至此,特征聚合步骤完成,而后将N1、N2以及P3分别送入YOLOv3原有的网络结构中,并完成后续的目标检测流程。相比于YOLOv3直接使用单层卷积特征(如Y1)或简单融合多层卷积特征,本文通过特征聚合机制能够更好对多层卷积特征进行融合,使得融合后的卷积特征同时具有浅层卷积特征与深层卷积特征的特点,有利于更好地实现对目标的自动检测。

3 实验与结果分析

3.1 装甲车辆目标检测数据集

通过多种途径获取2 156张装甲车辆图像,构建一个小型的装甲车辆目标检测数据集。该数据集中包含了坦克、步战车、自行火炮等不同类型的装甲车辆目标,同时考虑到了遮挡、气象、烟雾等多种地面战场复杂情况。随后,按照 Pascal VOC数据集[12]的格式对装甲车辆目标检测数据集进行标注,便于后期的网络训练与测试。最后,将数据集中的图像随机分为训练集与测试集,其中,训练集的图像数量为 1 600 张图像,共包含1 867个装甲车辆目标;测试集的图像数量为556张图像,共包含684个装甲车辆目标。

3.2 网络训练与测试

为验证本文方法的有效性,在装甲车辆目标检测数据集上进行了训练与测试。所有网络模型的训练与测试均在CPU:i7-8700/GPU:RTX 2080Ti的图像处理工作站上进行,操作系统为ubuntu16.04,采用的深度学习架构为keras。在训练时初始时学习率为0.001,在迭代次数为2 000时学习率降为0.000 1,并在迭代次数为3 000时学习率降为0.000 01,在迭代次数为4 000时训练终止,其他参数均相同。因本文构建的装甲车辆目标检测数据集中样本图像较少,因此在网络训练时使用了数据增强技术,如旋转、平移、缩放等,来提高模型的泛化能力。

3.3 结果分析

首先采用信息检索领域中对相关性的评价指标Precision-Recall曲线来反映各模型对检测出的目标准确程度与召回程度,即查准率P、查全率R以及综合指数F1分数。

(2)

式中:TP为正确检测出目标的数量;FP为没有检测出的目标数量;FN为错误检测出目标的数量。由于地面战场环境瞬息万变,对目标检测的速度具有一定的要求,因此本文将单帧图像的平均检测耗时作为一项评价指标。

与YOLOv3相比,本文提出的网络结构有多点改进之处,在测试时需要对各改进策略进行了单独测试,因此本文在装甲车辆目标检测数据集上的测试模型共有4种,分别是原YOLOV3、集成SPP模块的YOLOv3(YOLOv3-spp)、结合卷积特征聚合机制的YOLOv3(JH-YOLOv3)以及本文方法。各方法的测试结果如表1所示。

表1 各方法的测试结果

从表1可以看出,相比于YOLOv3,本文提出的改进措施均能够有效地提高查准率、查全率以及F1分数。通过在特征提取网络上集成SPP模块来丰富特征的表达能力,查准率与查全率分别提升了7.6%和2.0%;通过卷积特征聚合机制来融合多层级卷积特征,查准率与查全率分别提升了9.8%和1.0%;而综合使用上述2种改进措施,则查准率与查全率分别提升了14.5%和4.2%,综合指标F1分数提升了9.5%。在单帧图像检测耗时方面,YOLOv3的单帧图像平均检测耗时最低,只有31.8 ms,而本文方法的平均耗时最高,达到了38.9 ms,但本文方法仍然能够满足实时性需求(低于40 ms)。图3展示了本文方法取得的PR曲线。

本文还根据获得的PR曲线计算曲线下的面积,从而得到了各方法的平均精确度(AP)。各方法的AP值如表2所示。从表2可以看出,本文方法提出的2种改进措施分别将AP提升了3.1%和2.4%,综合2种改进措施则能够将AP从原来的80.3%提升至85.6%,证明了本文方法能够有效地提高对装甲车辆目标检测的能力。

图3 本文方法取得的PR曲线

表2 各方法取得的平均精确度

图4展示了本文方法的部分测试样本检测结果,其中,左上角的图片中存在2辆位于荒漠场景中的装甲车辆,展现了装甲车辆典型的正面和斜侧形象,本文方法能够精确检测到装甲车辆目标;右上角的图片中主要展现了装甲车辆背面具有的典型形象,本文方法也能准确地检测到目标;左下角的图片中存在3辆位于雪地场景中的装甲车辆,主要展现了目标反侧与背面具有的典型形象,本文方法也能检测到所有的目标;右下角的图片中存在3辆位于草原场景中的装甲车辆目标,本文方法检测到了这3个目标,但图片中左下角有2块的体积较大的岩石,本文方法将其中一块岩石误检成了一辆装甲车辆。

图4 典型样本的检测结果

4 结论

1) 针对装甲车辆目标检测任务,在YOLOv3的基础上,通过在特征提取网络上集成SPP模块来丰富卷积特征的表达能力以及使用卷积特征聚合机制来融合多层级卷积特征,提出了一种改进方法。

2) 在确保目标检测实时性需求的前提下,提出了两种改进措施能够有效地提升查准率、查全率、F1分数以及平均精确度。

3) 本文方法综合了两种改进措施,进一步地提升目标检测的性能。

4) 本文构建的装甲车辆目标检测数据集还存在样本图像不足的问题,在后续的研究过程中,还需要进一步补充完善。

猜你喜欢

聚类卷积图像
基于全卷积神经网络的猪背膘厚快速准确测定
一种傅里叶域海量数据高速谱聚类方法
基于知识图谱的k-modes文本聚类研究
基于生成对抗网络的CT图像生成
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
一种改进K-means聚类的近邻传播最大最小距离算法
浅析p-V图像中的两个疑难问题
巧用图像中的点、线、面解题